From 77ee6c7ab19d1c45206253a054f2756a845e9444 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Tue, 29 Jan 2019 13:25:51 +0100 Subject: [PATCH 001/139] Philippe 29/01/2019: bug corrections + missing zero-size allocations (detected with NAG compiler) --- src/LIB/SURCOUCHE/src/fmread_ll.f90 | 11 +- src/LIB/SURCOUCHE/src/mode_field.f90 | 25 +-- src/MNH/ini_micron.f90 | 43 ++--- src/MNH/ini_modeln.f90 | 249 +++++++++++++++++++-------- src/MNH/read_field.f90 | 7 +- src/MNH/set_perturb.f90 | 4 +- src/MNH/write_aircraft_balloon.f90 | 9 +- 7 files changed, 227 insertions(+), 121 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/fmread_ll.f90 b/src/LIB/SURCOUCHE/src/fmread_ll.f90 index 10c862803..2efa39b22 100644 --- a/src/LIB/SURCOUCHE/src/fmread_ll.f90 +++ b/src/LIB/SURCOUCHE/src/fmread_ll.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- @@ -18,7 +18,8 @@ MODULE MODE_FMREAD ! J.Escobar : 13/01/2015 : remove comment on BCAST(IRESP in FMREADX2_ll ! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! J.Escobar : 17/07/2018 : reintroduce needed MPI_BARRIER in IO_READ_FIELD_BYFIELD_X3 +! J.Escobar : 17/07/2018 : reintroduce needed MPI_BARRIER in IO_READ_FIELD_BYFIELD_X3 +! P.Wautelet: 29/01/2019 : small bug correction in time measurement in IO_READ_FIELD_BYFIELD_X2 ! USE MODD_IO_ll, ONLY : NVERB_FATAL,NVERB_ERROR,NVERB_WARNING,NVERB_INFO,NVERB_DEBUG,TFILEDATA USE MODD_MPIF @@ -452,9 +453,9 @@ IF (IRESP==0) THEN ELSE CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF + CALL SECOND_MNH2(T2) + TIMEZ%T_READ2D_SCAT=TIMEZ%T_READ2D_SCAT + T2 - T1 END IF - CALL SECOND_MNH2(T2) - TIMEZ%T_READ2D_SCAT=TIMEZ%T_READ2D_SCAT + T2 - T1 END IF ! IF (GALLOC) DEALLOCATE (ZFIELDP) diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90 index 8dce892d6..475b028fe 100644 --- a/src/LIB/SURCOUCHE/src/mode_field.f90 +++ b/src/LIB/SURCOUCHE/src/mode_field.f90 @@ -1,10 +1,12 @@ -!MNH_LIC Copyright 2016-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2016-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Original version: ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! Modifications: +! Philippe Wautelet: 29/01/2019 : small bug correction (null pointers) in FIELDLIST_GOTO_MODEL if NESPGD or PGD !----------------------------------------------------------------- MODULE MODE_FIELD ! @@ -3806,18 +3808,17 @@ END IF ! ! Initialize some pointers ! +!PW: TODO: check if still necessary as XRHODREFZ and XTHVREFZ are now initialiazed in ini_modeln even for KMI/=1 (29/01/2019) IF (KFROM == KTO) THEN - IF (.NOT.ALLOCATED(XRHODREFZ) .AND. CPROGRAM/='NESPGD' .AND. CPROGRAM/='PGD') THEN - CALL PRINT_MSG(NVERB_FATAL,'GEN','FIELDLIST_GOTO_MODEL','XRHODREFZ not yet allocated') + IF ( CPROGRAM/='NESPGD' .AND. CPROGRAM/='PGD' ) THEN + IF (.NOT.ALLOCATED(XRHODREFZ)) CALL PRINT_MSG(NVERB_FATAL,'GEN','FIELDLIST_GOTO_MODEL','XRHODREFZ not yet allocated') + CALL FIND_FIELD_ID_FROM_MNHNAME('RHOREFZ',IID,IRESP) + TFIELDLIST(IID)%TFIELD_X1D(KFROM)%DATA=>XRHODREFZ + ! + IF (.NOT.ALLOCATED(XTHVREFZ)) CALL PRINT_MSG(NVERB_FATAL,'GEN','FIELDLIST_GOTO_MODEL','XTHVREFZ not yet allocated') + CALL FIND_FIELD_ID_FROM_MNHNAME('THVREFZ',IID,IRESP) + TFIELDLIST(IID)%TFIELD_X1D(KFROM)%DATA=>XTHVREFZ END IF - CALL FIND_FIELD_ID_FROM_MNHNAME('RHOREFZ',IID,IRESP) - TFIELDLIST(IID)%TFIELD_X1D(KFROM)%DATA=>XRHODREFZ - ! - IF (.NOT.ALLOCATED(XTHVREFZ) .AND. CPROGRAM/='NESPGD' .AND. CPROGRAM/='PGD') THEN - CALL PRINT_MSG(NVERB_FATAL,'GEN','FIELDLIST_GOTO_MODEL','XTHVREFZ not yet allocated') - END IF - CALL FIND_FIELD_ID_FROM_MNHNAME('THVREFZ',IID,IRESP) - TFIELDLIST(IID)%TFIELD_X1D(KFROM)%DATA=>XTHVREFZ END IF ! ! diff --git a/src/MNH/ini_micron.f90 b/src/MNH/ini_micron.f90 index 67bce21b6..e77c68926 100644 --- a/src/MNH/ini_micron.f90 +++ b/src/MNH/ini_micron.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################## @@ -51,6 +51,7 @@ END MODULE MODI_INI_MICRO_n !! Modification 01/2016 (JP Pinty) Add LIMA !! C.LAc 10/2016 Add budget for droplet deposition !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! P.Wautelet 01/2019: bug: add missing allocations !! !! -------------------------------------------------------------------------- ! @@ -220,15 +221,13 @@ IF(LBLOWSNOW) THEN IF(CSNOWSEDIM=='TABC') THEN !Read in look up tables of snow particles properties !No arguments, all look up tables are defined in module -!mode_snowdrift_sedim_lkt - CALL BLOWSNOW_SEDIM_LKT_SET +!mode_snowdrift_sedim_lkt + CALL BLOWSNOW_SEDIM_LKT_SET END IF ELSE ALLOCATE(XSNWSUBL3D(0,0,0)) END IF ! -IF(SIZE(XINPRR) == 0) RETURN -! !* 2b. ALLOCATION for Radiative cooling ! ------------------------------ IF (LACTIT .OR. MACTIT) THEN @@ -236,12 +235,11 @@ IF (LACTIT .OR. MACTIT) THEN ALLOCATE( XRCM(IIU,IJU,IKU) ) XTHM = XTHT XRCM(:,:,:) = XRT(:,:,:,2) - ELSE +ELSE ALLOCATE( XTHM(0,0,0) ) ALLOCATE( XRCM(0,0,0) ) END IF ! -! !* 2.bis ALLOCATE Module MODD_PRECIP_SCAVENGING_n ! ------------------------------ ! @@ -249,16 +247,21 @@ IF ( (CCLOUD=='LIMA') .AND. LSCAV ) THEN ALLOCATE(XINPAP(IIU,IJU)) ALLOCATE(XACPAP(IIU,IJU)) XINPAP(:,:)=0.0 - XACPAP(:,:)=0.0 + XACPAP(:,:)=0.0 +ELSE + ALLOCATE(XINPAP(0,0)) + ALLOCATE(XACPAP(0,0)) END IF ! +IF(SIZE(XINPRR) == 0) RETURN +! !* 3. INITIALIZE MODD_PRECIP_n variables ! ---------------------------------- ! CALL READ_PRECIP_FIELD(TPINIFILE,CLUOUT,CPROGRAM,CCONF, & CGETRCT,CGETRRT,CGETRST,CGETRGT,CGETRHT, & XINPRC,XACPRC,XINDEP,XACDEP,XINPRR,XINPRR3D,XEVAP3D,& - XACPRR,XINPRS,XACPRS,XINPRG,XACPRG, XINPRH,XACPRH ) + XACPRR,XINPRS,XACPRS,XINPRG,XACPRG, XINPRH,XACPRH ) ! ! !* 4. INITIALIZE THE PARAMETERS FOR THE MICROPHYSICS @@ -287,13 +290,13 @@ ELSE IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') THEN IF (CCLOUD == 'C3R5') THEN CALL INI_ICE_C1R3(XTSTEP,ZDZMIN,NSPLITG) ! 1/2 spectral cold cloud END IF -ELSE IF (CCLOUD == 'LIMA') THEN - IF (CGETCLOUD /= 'READ') THEN - CALL INIT_AEROSOL_CONCENTRATION(XRHODREF, & - XSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END), & - XZZ(:,:,:) ) - END IF - CALL INI_LIMA(XTSTEP,ZDZMIN,NSPLITR, NSPLITG) ! 1/2 spectral warm cloud +ELSE IF (CCLOUD == 'LIMA') THEN + IF (CGETCLOUD /= 'READ') THEN + CALL INIT_AEROSOL_CONCENTRATION(XRHODREF, & + XSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END), & + XZZ(:,:,:) ) + END IF + CALL INI_LIMA(XTSTEP,ZDZMIN,NSPLITR, NSPLITG) ! 1/2 spectral warm cloud END IF ! IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') THEN @@ -313,9 +316,9 @@ IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') THEN ENDIF ! IF (CCLOUD == 'LIMA') THEN - IF (CGETCLOUD/='READ') THEN - CALL SET_CONC_LIMA(CGETCLOUD,XRHODREF,XRT,XSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END)) - END IF + IF (CGETCLOUD/='READ') THEN + CALL SET_CONC_LIMA(CGETCLOUD,XRHODREF,XRT,XSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END)) + END IF END IF ! ! diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index ce192d434..f8e8ac5c5 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -129,10 +129,10 @@ END MODULE MODI_INI_MODEL_n !! Module MODD_CH_MNHC_n : contains the control parameters for chemistry !! Module MODD_DEEP_CONVECTION_n: contains declaration of the variables of !! the deep convection scheme -!! -!! -!! -!! +!! +!! +!! +!! !! Module MODN_CONF_n : contains declaration of namelist NAM_CONFn and !! uses module MODD_CONF_n (configuration variables) !! Module MODN_LUNIT_n : contains declaration of namelist NAM_LUNITn and @@ -151,7 +151,7 @@ END MODULE MODI_INI_MODEL_n !! REFERENCE !! --------- !! Book2 of documentation (routine INI_MODEL_n) -!! +!! !! !! AUTHOR !! ------ @@ -278,6 +278,7 @@ END MODULE MODI_INI_MODEL_n !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! V. Vionnet : 18/07/2017 : add blowing snow scheme !! 01/18 J.Colin Add DRAG +!! P.Wautelet 29/01/2019: bug: add missing zero-size allocations !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -331,7 +332,7 @@ USE MODD_DIM_n USE MODD_BUDGET USE MODD_RADIATIONS_n USE MODD_SHADOWS_n -USE MODD_PARAM_RAD_n, ONLY : CLW, CAER, CAOP +USE MODD_PARAM_RAD_n, ONLY : CLW, CAER, CAOP USE MODD_VAR_ll, ONLY : IP ! USE MODD_STAND_ATM, ONLY : XSTROATM, XSMLSATM, XSMLWATM, XSPOSATM, XSPOWATM @@ -692,8 +693,10 @@ IF (LMEAN_FIELD) THEN ALLOCATE(XTHM_MEAN(IIU,IJU,IKU)) ; XTHM_MEAN = 0.0 ALLOCATE(XTEMPM_MEAN(IIU,IJU,IKU)) ; XTEMPM_MEAN = 0.0 IF (CTURB/='NONE') THEN - ALLOCATE(XTKEM_MEAN(IIU,IJU,IKU)) - XTKEM_MEAN = 0.0 + ALLOCATE(XTKEM_MEAN(IIU,IJU,IKU)) + XTKEM_MEAN = 0.0 + ELSE + ALLOCATE(XTKEM_MEAN(0,0,0)) END IF ALLOCATE(XPABSM_MEAN(IIU,IJU,IKU)) ; XPABSM_MEAN = 0.0 ! @@ -710,10 +713,35 @@ IF (LMEAN_FIELD) THEN ALLOCATE(XTHM_MAX(IIU,IJU,IKU)) ; XTHM_MAX = 0.0 ALLOCATE(XTEMPM_MAX(IIU,IJU,IKU)) ; XTEMPM_MAX = 0.0 IF (CTURB/='NONE') THEN - ALLOCATE(XTKEM_MAX(IIU,IJU,IKU)) - XTKEM_MAX = 0.0 + ALLOCATE(XTKEM_MAX(IIU,IJU,IKU)) + XTKEM_MAX = 0.0 + ELSE + ALLOCATE(XTKEM_MAX(0,0,0)) END IF ALLOCATE(XPABSM_MAX(IIU,IJU,IKU)) ; XPABSM_MAX = 0.0 +ELSE + ALLOCATE(XUM_MEAN(0,0,0)) + ALLOCATE(XVM_MEAN(0,0,0)) + ALLOCATE(XWM_MEAN(0,0,0)) + ALLOCATE(XTHM_MEAN(0,0,0)) + ALLOCATE(XTEMPM_MEAN(0,0,0)) + ALLOCATE(XTKEM_MEAN(0,0,0)) + ALLOCATE(XPABSM_MEAN(0,0,0)) +! + ALLOCATE(XU2_MEAN(0,0,0)) + ALLOCATE(XV2_MEAN(0,0,0)) + ALLOCATE(XW2_MEAN(0,0,0)) + ALLOCATE(XTH2_MEAN(0,0,0)) + ALLOCATE(XTEMP2_MEAN(0,0,0)) + ALLOCATE(XPABS2_MEAN(0,0,0)) +! + ALLOCATE(XUM_MAX(0,0,0)) + ALLOCATE(XVM_MAX(0,0,0)) + ALLOCATE(XWM_MAX(0,0,0)) + ALLOCATE(XTHM_MAX(0,0,0)) + ALLOCATE(XTEMPM_MAX(0,0,0)) + ALLOCATE(XTKEM_MAX(0,0,0)) + ALLOCATE(XPABSM_MAX(0,0,0)) END IF ! IF ((CUVW_ADV_SCHEME(1:3)=='CEN') .AND. (CTEMP_SCHEME == 'LEFR') ) THEN @@ -731,6 +759,13 @@ IF ((CUVW_ADV_SCHEME(1:3)=='CEN') .AND. (CTEMP_SCHEME == 'LEFR') ) THEN XDVM = 0.0 XDWM = 0.0 END IF +ELSE + ALLOCATE(XUM(0,0,0)) + ALLOCATE(XVM(0,0,0)) + ALLOCATE(XWM(0,0,0)) + ALLOCATE(XDUM(0,0,0)) + ALLOCATE(XDVM(0,0,0)) + ALLOCATE(XDWM(0,0,0)) END IF ! ALLOCATE(XUT(IIU,IJU,IKU)) ; XUT = 0.0 @@ -760,6 +795,7 @@ IF (CTURB /= 'NONE') THEN ELSE ALLOCATE(XTKET(0,0,0)) ALLOCATE(XRTKES(0,0,0)) + ALLOCATE(XRTKEMS(0,0,0)) ALLOCATE(XWTHVMF(0,0,0)) ALLOCATE(XDYP(0,0,0)) ALLOCATE(XTHP(0,0,0)) @@ -806,9 +842,8 @@ ALLOCATE(XRSVS_CLD(IIU,IJU,IKU,NSV)); XRSVS_CLD = 0.0 IF (LPASPOL) THEN ALLOCATE( XATC(IIU,IJU,IKU,NSV_PP) ) XATC = 0. - ELSE +ELSE ALLOCATE( XATC(0,0,0,0)) - XATC = 0. END IF ! IF(LBLOWSNOW) THEN @@ -856,6 +891,8 @@ ALLOCATE(XDZZ(IIU,IJU,IKU)) ! IF (KMI == 1) THEN ALLOCATE(XRHODREFZ(IKU),XTHVREFZ(IKU)) +ELSE + ALLOCATE(XRHODREFZ(0),XTHVREFZ(0)) END IF ALLOCATE(XRHODREF(IIU,IJU,IKU)) ALLOCATE(XTHVREF(IIU,IJU,IKU)) @@ -891,7 +928,7 @@ CALL GET_DIM_EXT_ll('Y',IIY,IJY) IF (L2D) THEN ALLOCATE(XBFY(IIY,IJY,IKU)) ELSE - ALLOCATE(XBFY(IJY,IIY,IKU)) ! transposition needed by the optimisition of the + ALLOCATE(XBFY(IJY,IIY,IKU)) ! transposition needed by the optimisation of the ! FFT solver END IF CALL GET_DIM_EXT_ll('B',IIU_B,IJU_B) @@ -1070,7 +1107,7 @@ ELSE ! 3D case " change relaxation parameters or number of processors " !callabortstop CALL ABORT - STOP + STOP END IF END IF IF ( CLBCY(1) /= 'CYCL' ) THEN @@ -1082,7 +1119,7 @@ ELSE ! 3D case " change relaxation parameters or number of processors " !callabortstop CALL ABORT - STOP + STOP END IF END IF IF ( LHORELAX_UVWTH ) THEN @@ -1194,6 +1231,23 @@ IF ( KMI > 1 ) THEN ALLOCATE( NKLIN_LBXW(SIZE(XLBXWM,1),SIZE(XLBXWM,2),SIZE(XLBXWM,3))) ALLOCATE(XCOEFLIN_LBYW(SIZE(XLBYWM,1),SIZE(XLBYWM,2),SIZE(XLBYWM,3))) ALLOCATE( NKLIN_LBYW(SIZE(XLBYWM,1),SIZE(XLBYWM,2),SIZE(XLBYWM,3))) +ELSE + ALLOCATE(XCOEFLIN_LBXM(0,0,0)) + ALLOCATE( NKLIN_LBXM(0,0,0)) + ALLOCATE(XCOEFLIN_LBYM(0,0,0)) + ALLOCATE( NKLIN_LBYM(0,0,0)) + ALLOCATE(XCOEFLIN_LBXU(0,0,0)) + ALLOCATE( NKLIN_LBXU(0,0,0)) + ALLOCATE(XCOEFLIN_LBYU(0,0,0)) + ALLOCATE( NKLIN_LBYU(0,0,0)) + ALLOCATE(XCOEFLIN_LBXV(0,0,0)) + ALLOCATE( NKLIN_LBXV(0,0,0)) + ALLOCATE(XCOEFLIN_LBYV(0,0,0)) + ALLOCATE( NKLIN_LBYV(0,0,0)) + ALLOCATE(XCOEFLIN_LBXW(0,0,0)) + ALLOCATE( NKLIN_LBXW(0,0,0)) + ALLOCATE(XCOEFLIN_LBYW(0,0,0)) + ALLOCATE( NKLIN_LBYW(0,0,0)) END IF ! ! allocation of the LS fields for vertical relaxation and numerical diffusion @@ -1257,11 +1311,10 @@ END IF ! Initialization of SW bands NSWB_OLD = 6 ! Number of bands in ECMWF original scheme (from Fouquart et Bonnel (1980)) ! then modified through INI_RADIATIONS_ECMWF but remains equal to 6 practically - IF (CRAD == 'ECRA') THEN - NSWB_MNH = 14 + NSWB_MNH = 14 ELSE - NSWB_MNH = NSWB_OLD + NSWB_MNH = NSWB_OLD END IF NLWB_MNH = 16 ! For XEMIS initialization (should be spectral in the future) @@ -1373,9 +1426,25 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN ALLOCATE(NCLBASCONV(0,0)) END IF ELSE + ALLOCATE(NCOUNTCONV(0,0)) + ALLOCATE(XDTHCONV(0,0,0)) + ALLOCATE(XDRVCONV(0,0,0)) + ALLOCATE(XDRCCONV(0,0,0)) + ALLOCATE(XDRICONV(0,0,0)) ALLOCATE(XPRCONV(0,0)) ALLOCATE(XPACCONV(0,0)) ALLOCATE(XPRSCONV(0,0)) + ALLOCATE(XIC_RATE(0,0)) + ALLOCATE(XCG_RATE(0,0)) + ALLOCATE(XIC_TOTAL_NUMBER(0,0)) + ALLOCATE(XCG_TOTAL_NUMBER(0,0)) + ALLOCATE(XUMFCONV(0,0,0)) + ALLOCATE(XDMFCONV(0,0,0)) + ALLOCATE(XPRLFLXCONV(0,0,0)) + ALLOCATE(XPRSFLXCONV(0,0,0)) + ALLOCATE(XCAPE(0,0)) + ALLOCATE(NCLTOPCONV(0,0)) + ALLOCATE(NCLBASCONV(0,0)) END IF ! IF ((CDCONV == 'KAFR' .OR. CSCONV == 'KAFR') & @@ -1416,7 +1485,7 @@ IF (KMI == 1) THEN ALLOCATE(XGYTHFRC(IKU,NFRC)) ALLOCATE(XPGROUNDFRC(NFRC)) ALLOCATE(XTENDUFRC(IKU,NFRC)) - ALLOCATE(XTENDVFRC(IKU,NFRC)) + ALLOCATE(XTENDVFRC(IKU,NFRC)) ELSE ALLOCATE(TDTFRC(0)) ALLOCATE(XUFRC(0,0)) @@ -1441,6 +1510,23 @@ IF (KMI == 1) THEN ALLOCATE(XUFRC_PAST(0,0,0)) ALLOCATE(XVFRC_PAST(0,0,0)) END IF +ELSE + ALLOCATE(TDTFRC(0)) + ALLOCATE(XUFRC(0,0)) + ALLOCATE(XVFRC(0,0)) + ALLOCATE(XWFRC(0,0)) + ALLOCATE(XTHFRC(0,0)) + ALLOCATE(XRVFRC(0,0)) + ALLOCATE(XTENDTHFRC(0,0)) + ALLOCATE(XTENDRVFRC(0,0)) + ALLOCATE(XGXTHFRC(0,0)) + ALLOCATE(XGYTHFRC(0,0)) + ALLOCATE(XPGROUNDFRC(0)) + ALLOCATE(XTENDUFRC(0,0)) + ALLOCATE(XTENDVFRC(0,0)) + ALLOCATE(XWTFRC(0,0,0)) + ALLOCATE(XUFRC_PAST(0,0,0)) + ALLOCATE(XVFRC_PAST(0,0,0)) END IF ! ---------------------------------------------------------------------- ! @@ -1471,25 +1557,31 @@ ENDIF !* 4.11 BIS: Eddy fluxes allocation ! IF ( LTH_FLX ) THEN - ALLOCATE(XVTH_FLUX_M(IIU,IJU,IKU)) ; XVTH_FLUX_M = 0. - ALLOCATE(XWTH_FLUX_M(IIU,IJU,IKU)) ; XWTH_FLUX_M = 0. - IF (KMI /= 1) THEN - ALLOCATE(XRTHS_EDDY_FLUX(IIU,IJU,IKU)) - XRTHS_EDDY_FLUX = 0. - ENDIF + ALLOCATE(XVTH_FLUX_M(IIU,IJU,IKU)) ; XVTH_FLUX_M = 0. + ALLOCATE(XWTH_FLUX_M(IIU,IJU,IKU)) ; XWTH_FLUX_M = 0. + IF (KMI /= 1) THEN + ALLOCATE(XRTHS_EDDY_FLUX(IIU,IJU,IKU)) + XRTHS_EDDY_FLUX = 0. + ELSE + ALLOCATE(XRTHS_EDDY_FLUX(0,0,0)) + ENDIF ELSE - ALLOCATE(XVTH_FLUX_M(0,0,0)) ; XVTH_FLUX_M = 0. - ALLOCATE(XWTH_FLUX_M(0,0,0)) ; XWTH_FLUX_M = 0. + ALLOCATE(XVTH_FLUX_M(0,0,0)) + ALLOCATE(XWTH_FLUX_M(0,0,0)) + ALLOCATE(XRTHS_EDDY_FLUX(0,0,0)) END IF ! IF ( LUV_FLX) THEN - ALLOCATE(XVU_FLUX_M(IIU,IJU,IKU)) ; XVU_FLUX_M = 0. - IF (KMI /= 1) THEN - ALLOCATE(XRVS_EDDY_FLUX(IIU,IJU,IKU)) - XRVS_EDDY_FLUX = 0. - ENDIF + ALLOCATE(XVU_FLUX_M(IIU,IJU,IKU)) ; XVU_FLUX_M = 0. + IF (KMI /= 1) THEN + ALLOCATE(XRVS_EDDY_FLUX(IIU,IJU,IKU)) + XRVS_EDDY_FLUX = 0. + ELSE + ALLOCATE(XRVS_EDDY_FLUX(0,0,0)) + ENDIF ELSE - ALLOCATE(XVU_FLUX_M(0,0,0)) ; XVU_FLUX_M = 0. + ALLOCATE(XVU_FLUX_M(0,0,0)) + ALLOCATE(XRVS_EDDY_FLUX(0,0,0)) END IF ! !* 3.11 Module MODD_ICE_CONC_n @@ -1506,6 +1598,11 @@ IF ( CCLOUD == 'KHKO' .OR. CCLOUD == 'C2R2') THEN ALLOCATE(XNACT(IIU,IJU,IKU)) ALLOCATE(XNPRO(IIU,IJU,IKU)) ALLOCATE(XSSPRO(IIU,IJU,IKU)) +ELSE + ALLOCATE(XSUPSAT(0,0,0)) + ALLOCATE(XNACT(0,0,0)) + ALLOCATE(XNPRO(0,0,0)) + ALLOCATE(XSSPRO(0,0,0)) END IF ! !* 3.12 Module MODD_TURB_CLOUD @@ -1532,17 +1629,23 @@ IF (LUSECHAQ.AND.(CPROGRAM == 'DIAG '.OR.CPROGRAM == 'MESONH')) THEN XACPRAQ(:,:,:) = 0. ENDIF ENDIF +IF (.NOT.(ASSOCIATED(XPHC))) ALLOCATE(XPHC(0,0,0)) +IF (.NOT.(ASSOCIATED(XPHR))) ALLOCATE(XPHR(0,0,0)) +IF (.NOT.(ASSOCIATED(XACPHR))) ALLOCATE(XACPHR(0,0)) +IF (.NOT.(ASSOCIATED(XACPRAQ))) ALLOCATE(XACPRAQ(0,0,0)) IF ((LUSECHEM).AND.(CPROGRAM == 'DIAG ')) THEN ALLOCATE(XCHFLX(IIU,IJU,NSV_CHEM)) XCHFLX(:,:,:) = 0. +ELSE + ALLOCATE(XCHFLX(0,0,0)) END IF ! !* 3.14 Module MODD_DRAG ! IF (LDRAG) THEN - ALLOCATE(XDRAG(IIU,IJU)) + ALLOCATE(XDRAG(IIU,IJU)) ELSE - ALLOCATE(XDRAG(0,0)) + ALLOCATE(XDRAG(0,0)) ENDIF ! !------------------------------------------------------------------------------- @@ -1642,14 +1745,10 @@ IF ( LUSECHEM .OR. LCHEMDIAG ) THEN ! IF (LORILAM) THEN CALL CH_AER_MOD_INIT - ELSE - IF (.NOT.(ASSOCIATED(XSOLORG))) ALLOCATE(XSOLORG(0,0,0,0)) - IF (.NOT.(ASSOCIATED(XMI))) ALLOCATE(XMI(0,0,0,0)) ENDIF -ELSE - IF (.NOT.(ASSOCIATED(XMI))) ALLOCATE(XMI(0,0,0,0)) - IF (.NOT.(ASSOCIATED(XSOLORG))) ALLOCATE(XSOLORG(0,0,0,0)) END IF +IF (.NOT.(ASSOCIATED(XMI))) ALLOCATE(XMI(0,0,0,0)) +IF (.NOT.(ASSOCIATED(XSOLORG))) ALLOCATE(XSOLORG(0,0,0,0)) ! IF (CCLOUD=='LIMA') CALL INIT_AEROSOL_PROPERTIES ! @@ -2325,16 +2424,16 @@ CALL INI_AEROSET6 ! Coupling with ForeFire if resolution is low enough !--------------------------------------------------- IF ( LFOREFIRE .AND. 0.5*(XXHAT(2)-XXHAT(1)+XYHAT(2)-XYHAT(1)) < COUPLINGRES ) THEN - FFCOUPLING = .TRUE. + FFCOUPLING = .TRUE. ELSE - FFCOUPLING = .FALSE. + FFCOUPLING = .FALSE. ENDIF ! Initializing the ForeFire variables !------------------------------------ IF ( LFOREFIRE ) THEN - CALL INIT_FOREFIRE_n(KMI, ILUOUT, IP & - , TDTCUR%TDATE%YEAR, TDTCUR%TDATE%MONTH, TDTCUR%TDATE%DAY, TDTCUR%TIME, XTSTEP) + CALL INIT_FOREFIRE_n(KMI, ILUOUT, IP & + , TDTCUR%TDATE%YEAR, TDTCUR%TDATE%MONTH, TDTCUR%TDATE%DAY, TDTCUR%TIME, XTSTEP) END IF #endif @@ -2343,19 +2442,19 @@ END IF !* 30. Total production/Loss for chemical species ! IF (LCHEMDIAG) THEN - CALL CH_INIT_PRODLOSSTOT_n(ILUOUT) - IF (NEQ_PLT>0) THEN - ALLOCATE(XPROD(IIU,IJU,IKU,NEQ_PLT)) - ALLOCATE(XLOSS(IIU,IJU,IKU,NEQ_PLT)) - XPROD=0.0 - XLOSS=0.0 - ELSE - ALLOCATE(XPROD(0,0,0,0)) - ALLOCATE(XLOSS(0,0,0,0)) - END IF + CALL CH_INIT_PRODLOSSTOT_n(ILUOUT) + IF (NEQ_PLT>0) THEN + ALLOCATE(XPROD(IIU,IJU,IKU,NEQ_PLT)) + ALLOCATE(XLOSS(IIU,IJU,IKU,NEQ_PLT)) + XPROD=0.0 + XLOSS=0.0 + ELSE + ALLOCATE(XPROD(0,0,0,0)) + ALLOCATE(XLOSS(0,0,0,0)) + END IF ELSE - ALLOCATE(XPROD(0,0,0,0)) - ALLOCATE(XLOSS(0,0,0,0)) + ALLOCATE(XPROD(0,0,0,0)) + ALLOCATE(XLOSS(0,0,0,0)) END IF ! !------------------------------------------------------------------------------- @@ -2363,24 +2462,24 @@ END IF !* 31. Extended production/loss terms for chemical species ! IF (LCHEMDIAG) THEN - CALL CH_INIT_BUDGET_n(ILUOUT) - IF (NEQ_BUDGET>0) THEN - ALLOCATE(IINDEX(2,NNONZEROTERMS)) - ALLOCATE(IIND(NEQ_BUDGET)) - CALL CH_NONZEROTERMS(KMI,IINDEX,NNONZEROTERMS) - ALLOCATE(XTCHEM(NEQ_BUDGET)) - DO JM=1,NEQ_BUDGET - IIND(JM)=COUNT((IINDEX(1,:))==NSPEC_BUDGET(JM)) - ALLOCATE(XTCHEM(JM)%NB_REAC(IIND(JM))) - ALLOCATE(XTCHEM(JM)%XB_REAC(IIU,IJU,IKU,IIND(JM))) - END DO - DEALLOCATE(IIND) - DEALLOCATE(IINDEX) - ELSE - ALLOCATE(XTCHEM(0)) - END IF + CALL CH_INIT_BUDGET_n(ILUOUT) + IF (NEQ_BUDGET>0) THEN + ALLOCATE(IINDEX(2,NNONZEROTERMS)) + ALLOCATE(IIND(NEQ_BUDGET)) + CALL CH_NONZEROTERMS(KMI,IINDEX,NNONZEROTERMS) + ALLOCATE(XTCHEM(NEQ_BUDGET)) + DO JM=1,NEQ_BUDGET + IIND(JM)=COUNT((IINDEX(1,:))==NSPEC_BUDGET(JM)) + ALLOCATE(XTCHEM(JM)%NB_REAC(IIND(JM))) + ALLOCATE(XTCHEM(JM)%XB_REAC(IIU,IJU,IKU,IIND(JM))) + END DO + DEALLOCATE(IIND) + DEALLOCATE(IINDEX) + ELSE + ALLOCATE(XTCHEM(0)) + END IF ELSE - ALLOCATE(XTCHEM(0)) + ALLOCATE(XTCHEM(0)) END IF END SUBROUTINE INI_MODEL_n diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90 index 10730a3ea..83febd489 100644 --- a/src/MNH/read_field.f90 +++ b/src/MNH/read_field.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -237,6 +237,7 @@ END MODULE MODI_READ_FIELD !! 09/2017 Q.Rodier add LTEND_UV_FRC !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! V. Vionnet 07/17 add blowing snow scheme +!! P. Wautelet 01/2019 corrected intent of PDUM,PDVM,PDWM (OUT->INOUT) !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -319,8 +320,8 @@ INTEGER, INTENT(IN) :: KSIZELBY_ll,KSIZELBYV_ll ! for T,U,W and v INTEGER, INTENT(IN) :: KSIZELBYTKE_ll ! for TKE INTEGER, INTENT(IN) :: KSIZELBYR_ll,KSIZELBYSV_ll ! for Rx and SV ! -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PUM,PVM,PWM ! U,V,W at t-dt -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PDUM,PDVM,PDWM ! Difference on U,V,W +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PUM1,PVM,PWM ! U,V,W at t-dt +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PDUM,PDVM,PDWM ! Difference on U,V,W ! between t+dt and t-dt REAL, DIMENSION(:,:), INTENT(OUT) :: PBL_DEPTH ! BL depth REAL, DIMENSION(:,:), INTENT(OUT) :: PSBL_DEPTH ! SBL depth diff --git a/src/MNH/set_perturb.f90 b/src/MNH/set_perturb.f90 index 8bc9b5cd6..866feb3ba 100644 --- a/src/MNH/set_perturb.f90 +++ b/src/MNH/set_perturb.f90 @@ -273,7 +273,7 @@ SELECT CASE(CPERT_KIND) END DO ! CALL MPPDB_CHECK3D(ZDIST,"SET_PERTURB::ZDIST",PRECISION) - CALL MPPDB_CHECK3D(XTHM,"SET_PERTURB::XTHM",PRECISION) + !CALL MPPDB_CHECK3D(XTHM,"SET_PERTURB::XTHM",PRECISION) ! IF ( LSET_RHU) THEN ZT(:,:,:) = 0.0 @@ -309,7 +309,7 @@ SELECT CASE(CPERT_KIND) END WHERE END IF CALL MPPDB_CHECK3D(XRT(:,:,:,1),"SET_PERTURB::XRT",PRECISION) - CALL MPPDB_CHECK3D(XTHM,"SET_PERTURB::XTHM",PRECISION) + !CALL MPPDB_CHECK3D(XTHM,"SET_PERTURB::XTHM",PRECISION) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/write_aircraft_balloon.f90 b/src/MNH/write_aircraft_balloon.f90 index b9cd28388..3d021974a 100644 --- a/src/MNH/write_aircraft_balloon.f90 +++ b/src/MNH/write_aircraft_balloon.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2000-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################### @@ -63,9 +63,10 @@ END MODULE MODI_WRITE_AIRCRAFT_BALLOON !! Oct 2016 : G.Delautier LIMA !! August 2016 (M.Leriche) Add mass concentration of aerosol species !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! P. Wautelet 29/01/2019: bug: moved an instruction later (to prevent access to a not allocated array) !! !! -------------------------------------------------------------------------- -! +! !* 0. DECLARATIONS ! ------------ ! @@ -210,12 +211,12 @@ INTEGER :: JLOOP ! !---------------------------------------------------------------------------- ! -IKU = SIZE(TPFLYER%RTZ,2) !number of vertical levels IF (TPFLYER%NMODEL==0) RETURN IF (ALL(TPFLYER%X==XUNDEF)) RETURN IF (COUNT(TPFLYER%X/=XUNDEF)<=1) RETURN IF ( IMI /= TPFLYER%NMODEL ) RETURN ! +IKU = SIZE(TPFLYER%RTZ,2) !number of vertical levels ! IPROC = 20 + SIZE(TPFLYER%R,2) + SIZE(TPFLYER%SV,2) & + 2 + SIZE(TPFLYER%SVW_FLUX,2) -- GitLab From 30b22f42a0ba0ca6a81c4807a5a7fd3ca77eb90f Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Tue, 29 Jan 2019 13:28:33 +0100 Subject: [PATCH 002/139] Philippe 29/01/2019: SURFEX: bug corrections + missing zero-size allocations (detected with NAG compiler) --- src/SURFEX/modd_pgd_grid.F90 | 9 +++++---- src/SURFEX/modn_isban.F90 | 20 +++++++++++--------- src/SURFEX/writesurf_pgd_isba_parn.F90 | 7 +++++-- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/src/SURFEX/modd_pgd_grid.F90 b/src/SURFEX/modd_pgd_grid.F90 index 106a7f634..e9e91a16f 100644 --- a/src/SURFEX/modd_pgd_grid.F90 +++ b/src/SURFEX/modd_pgd_grid.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. ! ################## MODULE MODD_PGD_GRID @@ -17,7 +17,7 @@ !! REFERENCE !! --------- !! -!! +!! !! AUTHOR !! ------ !! V. Masson *Meteo France* @@ -25,6 +25,7 @@ !! MODIFICATIONS !! ------------- !! Original 10/2003 +!! P. Wautelet 01/2019: nullify XGRID_PAR at declaration !------------------------------------------------------------------------------- ! IMPLICIT NONE @@ -35,7 +36,7 @@ IMPLICIT NONE CHARACTER(LEN=10) :: CGRID ! type of grid INTEGER :: NL ! number of points of the surface fields LOGICAL, DIMENSION(720,360) :: LLATLONMASK ! mask where data are to be read -REAL, POINTER, DIMENSION(:) :: XGRID_PAR ! lits of parameters used to define the grid +REAL, POINTER, DIMENSION(:) :: XGRID_PAR => NULL() ! list of parameters used to define the grid INTEGER :: NGRID_PAR ! size of XGRID_PAR REAL :: XMESHLENGTH ! average mesh length/width (decimal degre) ! diff --git a/src/SURFEX/modn_isban.F90 b/src/SURFEX/modn_isban.F90 index 7d7e56434..2ea5770de 100644 --- a/src/SURFEX/modn_isban.F90 +++ b/src/SURFEX/modn_isban.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. !################## MODULE MODN_ISBA_n @@ -27,10 +27,11 @@ MODULE MODN_ISBA_n !! !! MODIFICATIONS !! ------------- -!! Original 01/2004 +!! Original 01/2004 !! Modified 08/2009 by B. Decharme : LSURF_BUDGETC for all tiles !! Modified by A.L. Gibelin, 04/2009: add carbon spinup !! P. Tulet & M. Leriche 06/2017 : coupling megan online +!! P. Wautelet 01/2019: initialize XDROUGHT, XDAILYPAR, XDAILYTEMP, XMODPREC to prevent not initialized errors later on !! !------------------------------------------------------------------------------- ! @@ -38,8 +39,9 @@ MODULE MODN_ISBA_n ! ------------ ! ! -USE YOMHOOK ,ONLY : LHOOK, DR_HOOK -USE PARKIND1 ,ONLY : JPRB +USE MODD_SURF_PAR, ONLY : XUNDEF +USE YOMHOOK , ONLY : LHOOK, DR_HOOK +USE PARKIND1 , ONLY : JPRB ! IMPLICIT NONE ! @@ -90,10 +92,10 @@ LOGICAL :: LSURF_VARS LOGICAL :: LCH_BIO_FLUX LOGICAL :: LSOILNOX LOGICAL :: LCH_NO_FLUX -REAL :: XDROUGHT -REAL :: XDAILYPAR -REAL :: XDAILYTEMP -REAL :: XMODPREC +REAL :: XDROUGHT = XUNDEF +REAL :: XDAILYPAR = XUNDEF +REAL :: XDAILYTEMP = XUNDEF +REAL :: XMODPREC = XUNDEF LOGICAL :: LGLACIER LOGICAL :: LVEGUPD LOGICAL :: LNITRO_DILU diff --git a/src/SURFEX/writesurf_pgd_isba_parn.F90 b/src/SURFEX/writesurf_pgd_isba_parn.F90 index 381db556a..5b9fa2248 100644 --- a/src/SURFEX/writesurf_pgd_isba_parn.F90 +++ b/src/SURFEX/writesurf_pgd_isba_parn.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. ! ######### SUBROUTINE WRITESURF_PGD_ISBA_PAR_n (HSELECT, DTV, HPROGRAM) @@ -35,6 +35,7 @@ !! Original 01/2003 !! P. Le Moigne 12/2004 : add type of photosynthesis !! P. Samuelsson 10/2014: MEB +!! P. Wautelet 01/2019: bug: write L_STRESS only if it exists !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -499,6 +500,7 @@ DO JV=1,DTV%NVEGTYPE ENDIF ENDDO ! +IF (ASSOCIATED(DTV%LPAR_STRESS)) THEN YRECFM='L_STRESS' YCOMMENT=YRECFM CALL WRITE_SURF(HSELECT,HPROGRAM,YRECFM,DTV%LDATA_STRESS,IRESP,HCOMMENT=YCOMMENT,HDIR='-') @@ -513,6 +515,7 @@ DO JV=1,DTV%NVEGTYPE ENDIF ENDDO DEALLOCATE(ZWORK) +END IF ! YRECFM='L_H_TREE' YCOMMENT=YRECFM -- GitLab From c0abe2ef8a565c36652655c88aa0ede5ffa54b36 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Tue, 29 Jan 2019 14:23:56 +0100 Subject: [PATCH 003/139] Philippe 29/01/2018: typo correction in variable name --- src/MNH/read_field.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90 index 83febd489..da3a813fc 100644 --- a/src/MNH/read_field.f90 +++ b/src/MNH/read_field.f90 @@ -320,7 +320,7 @@ INTEGER, INTENT(IN) :: KSIZELBY_ll,KSIZELBYV_ll ! for T,U,W and v INTEGER, INTENT(IN) :: KSIZELBYTKE_ll ! for TKE INTEGER, INTENT(IN) :: KSIZELBYR_ll,KSIZELBYSV_ll ! for Rx and SV ! -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PUM1,PVM,PWM ! U,V,W at t-dt +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PUM,PVM,PWM ! U,V,W at t-dt REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PDUM,PDVM,PDWM ! Difference on U,V,W ! between t+dt and t-dt REAL, DIMENSION(:,:), INTENT(OUT) :: PBL_DEPTH ! BL depth -- GitLab From 0c22830cb106177e88330279e3eab65d495019fc Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 30 Jan 2019 09:35:48 +0100 Subject: [PATCH 004/139] Philippe 30/01/2019: bug: remove double allocates for non 'n' variables --- src/MNH/ini_modeln.f90 | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index f8e8ac5c5..1bbb5cf60 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -892,7 +892,7 @@ ALLOCATE(XDZZ(IIU,IJU,IKU)) IF (KMI == 1) THEN ALLOCATE(XRHODREFZ(IKU),XTHVREFZ(IKU)) ELSE - ALLOCATE(XRHODREFZ(0),XTHVREFZ(0)) + !Do not allocate XRHODREFZ and XTHVREFZ because they are the same on all grids (not 'n' variables) END IF ALLOCATE(XRHODREF(IIU,IJU,IKU)) ALLOCATE(XTHVREF(IIU,IJU,IKU)) @@ -1511,22 +1511,7 @@ IF (KMI == 1) THEN ALLOCATE(XVFRC_PAST(0,0,0)) END IF ELSE - ALLOCATE(TDTFRC(0)) - ALLOCATE(XUFRC(0,0)) - ALLOCATE(XVFRC(0,0)) - ALLOCATE(XWFRC(0,0)) - ALLOCATE(XTHFRC(0,0)) - ALLOCATE(XRVFRC(0,0)) - ALLOCATE(XTENDTHFRC(0,0)) - ALLOCATE(XTENDRVFRC(0,0)) - ALLOCATE(XGXTHFRC(0,0)) - ALLOCATE(XGYTHFRC(0,0)) - ALLOCATE(XPGROUNDFRC(0)) - ALLOCATE(XTENDUFRC(0,0)) - ALLOCATE(XTENDVFRC(0,0)) - ALLOCATE(XWTFRC(0,0,0)) - ALLOCATE(XUFRC_PAST(0,0,0)) - ALLOCATE(XVFRC_PAST(0,0,0)) + !Do not allocate because they are the same on all grids (not 'n' variables) END IF ! ---------------------------------------------------------------------- ! -- GitLab From 643728eb1e95df11b263cdc2199ead880a6a6d81 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 30 Jan 2019 09:42:24 +0100 Subject: [PATCH 005/139] Quentin 29/01/2019: SURFEX: bug: remove obsolete variable and use the correct one --- src/SURFEX/prep_grib_grid.F90 | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/SURFEX/prep_grib_grid.F90 b/src/SURFEX/prep_grib_grid.F90 index 9461f2e40..de1b37958 100644 --- a/src/SURFEX/prep_grib_grid.F90 +++ b/src/SURFEX/prep_grib_grid.F90 @@ -115,8 +115,6 @@ INTEGER :: JLOOP1 ! Dummy counter !JUAN !JUAN INTEGER :: INFOMPI, J -INTEGER(KIND=kindOfInt),DIMENSION(:),ALLOCATABLE :: INLO_GRIB ! Number of points along a parallel - ! REAL(KIND=JPRB) :: ZHOOK_HANDLE ! @@ -495,7 +493,7 @@ SELECT CASE (HGRIDTYPE) CALL GRIB_IS_MISSING(IGRIB,'pl',IMISSING,IRET) IF (IRET == 0 .OR. IMISSING/=1) THEN ! quasi-regular CALL GRIB_GET(IGRIB,'pl',ININLO_GRIB) - XILO2=360.-360./(MAXVAL(INLO_GRIB)) + XILO2=360.-360./(MAXVAL(ININLO_GRIB)) print*,"XILO2=",XILO2 ENDIF DEALLOCATE(ININLO_GRIB) -- GitLab From 483442e2f33e8c6620de7bc7cea1b05dc55a22a9 Mon Sep 17 00:00:00 2001 From: Juan Escobar <escj@aero.obs-mip.fr> Date: Wed, 30 Jan 2019 17:30:08 +0100 Subject: [PATCH 006/139] Juan 30/01/2018: Minor modification to test IOZ by uncommenting NAM_CONFZ lines in namelist files --- MY_RUN/KTEST/002_3Drelief/002_mesonh/run_mesonh_xyz | 2 +- MY_RUN/KTEST/003_KW78/002_mesonh/run_mesonh_xyz | 2 +- MY_RUN/KTEST/003_KW78/006_diag/run_diag_xyz | 2 +- MY_RUN/KTEST/004_Reunion/001_prep_pgd/PRE_PGD1.nam | 2 +- MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/PRE_IDEA1.nam | 2 +- MY_RUN/KTEST/004_Reunion/003_mesonh/run_mesonh_xyz | 2 +- MY_RUN/KTEST/007_16janvier/004_arp2lfi/PRE_REAL1.nam | 2 +- MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/SPAWN1.nam | 4 ++++ MY_RUN/KTEST/007_16janvier/006_preal/PRE_REAL1.nam | 3 +++ MY_RUN/KTEST/007_16janvier/006_preal/run_preal_xyz | 4 ++-- MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src | 2 +- MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz | 4 ++-- 12 files changed, 19 insertions(+), 12 deletions(-) diff --git a/MY_RUN/KTEST/002_3Drelief/002_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/002_3Drelief/002_mesonh/run_mesonh_xyz index 88fee2ebc..97878c3aa 100755 --- a/MY_RUN/KTEST/002_3Drelief/002_mesonh/run_mesonh_xyz +++ b/MY_RUN/KTEST/002_3Drelief/002_mesonh/run_mesonh_xyz @@ -4,6 +4,6 @@ #MNH_LIC for details. version 1. set -x set -e -ln -fs ../001_prep_ideal_case/RELIEF3D.{des,lfi,nc} . +ln -fs ../001_prep_ideal_case/RELIEF3D*.{des,lfi,nc} . rm -f REL3D.1* OUT* time ${MPIRUN} MESONH${XYZ} diff --git a/MY_RUN/KTEST/003_KW78/002_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/003_KW78/002_mesonh/run_mesonh_xyz index cfee5d165..e86549305 100755 --- a/MY_RUN/KTEST/003_KW78/002_mesonh/run_mesonh_xyz +++ b/MY_RUN/KTEST/003_KW78/002_mesonh/run_mesonh_xyz @@ -4,6 +4,6 @@ #MNH_LIC for details. version 1. set -x set -e -ln -fs ../001_prep_ideal_case/KWRAIN.{des,lfi,nc} . +ln -fs ../001_prep_ideal_case/KWRAIN*.{des,lfi,nc} . rm -f KWRAI.1.* OUT* time ${MPIRUN} MESONH${XYZ} diff --git a/MY_RUN/KTEST/003_KW78/006_diag/run_diag_xyz b/MY_RUN/KTEST/003_KW78/006_diag/run_diag_xyz index 99484f493..dae2b32d9 100755 --- a/MY_RUN/KTEST/003_KW78/006_diag/run_diag_xyz +++ b/MY_RUN/KTEST/003_KW78/006_diag/run_diag_xyz @@ -9,7 +9,7 @@ rm -f KWRAI* OUT* # # ln -sf ../002_mesonh/KWRAI.1.SEG01.004.des . -ln -sf ../002_mesonh/KWRAI.1.SEG01.004.nc . +ln -sf ../002_mesonh/KWRAI.1.SEG01.004.*nc . time ${MPIRUN} DIAG${XYZ} diff --git a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/PRE_PGD1.nam b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/PRE_PGD1.nam index a44162511..8c6897877 100644 --- a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/PRE_PGD1.nam +++ b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/PRE_PGD1.nam @@ -3,7 +3,7 @@ !JPHEXT = 3 , NHALO_MNH = 3 / &NAM_CONFZ - ! NZ_VERB=5 , NB_PROCIO_W=8 + !NZ_VERB=5 , NB_PROCIO_W=1 / &NAM_PGDFILE CPGDFILE='REUNION_PGD_1km5' / &NAM_CONF_PROJ diff --git a/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/PRE_IDEA1.nam b/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/PRE_IDEA1.nam index a30e8bbc6..76198aa8a 100644 --- a/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/PRE_IDEA1.nam +++ b/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/PRE_IDEA1.nam @@ -1,6 +1,6 @@ &NAM_CONFIO LCDF4=T, LLFIOUT=T, LLFIREAD=F / &NAM_CONFZ - ! NZ_VERB=5 , NB_PROCIO_R=8 , NB_PROCIO_W=8 + !NZ_VERB=5 , NB_PROCIO_R=1 , NB_PROCIO_W=8 / &NAM_REAL_PGD CPGD_FILE = 'REUNION_PGD_1km5', LREAD_ZS= T, LREAD_GROUND_PARAM= T / diff --git a/MY_RUN/KTEST/004_Reunion/003_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/004_Reunion/003_mesonh/run_mesonh_xyz index 20bd41ff7..ce9bd3dc3 100755 --- a/MY_RUN/KTEST/004_Reunion/003_mesonh/run_mesonh_xyz +++ b/MY_RUN/KTEST/004_Reunion/003_mesonh/run_mesonh_xyz @@ -6,7 +6,7 @@ set -x set -e -ln -fs ../002_prep_ideal_case/REUNION_IDEA.{des,lfi,nc} . +ln -fs ../002_prep_ideal_case/REUNION_IDEA*.{des,lfi,nc} . ln -sf ../001_prep_pgd/REUNION_PGD_1km5.{des,lfi,nc} . if [ "x${MNH_ECRAD}" != "x" ] ; then diff --git a/MY_RUN/KTEST/007_16janvier/004_arp2lfi/PRE_REAL1.nam b/MY_RUN/KTEST/007_16janvier/004_arp2lfi/PRE_REAL1.nam index 681314cdd..48e51ec56 100644 --- a/MY_RUN/KTEST/007_16janvier/004_arp2lfi/PRE_REAL1.nam +++ b/MY_RUN/KTEST/007_16janvier/004_arp2lfi/PRE_REAL1.nam @@ -1,6 +1,6 @@ &NAM_CONFIO LCDF4=T, LLFIOUT=T, LLFIREAD=F / &NAM_CONFZ - ! NZ_VERB=5 , NZ_PROC=0 , NB_PROCIO_R=1 , NB_PROCIO_W=1 + !NZ_VERB=5 , NZ_PROC=0 , NB_PROCIO_R=1 , NB_PROCIO_W=8 / &NAM_REAL_CONF NVERB=5 , CPRESOPT='ZRESI' !JPHEXT=3 , NHALO=3 diff --git a/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/SPAWN1.nam b/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/SPAWN1.nam index fe0169861..379402143 100644 --- a/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/SPAWN1.nam +++ b/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/SPAWN1.nam @@ -1,4 +1,8 @@ &NAM_CONFIO LCDF4=T, LLFIOUT=T, LLFIREAD=F / +&NAM_CONFZ + !NZ_VERB=5 , NZ_PROC=0 , NB_PROCIO_R=8 , NB_PROCIO_W=8 +/ + &NAM_LUNIT2_SPA CINIFILE = "16JAN_06_MNH", CINIFILEPGD="16JAN98_36km.neste1", YDOMAIN = "16JAN98_9km.neste1", diff --git a/MY_RUN/KTEST/007_16janvier/006_preal/PRE_REAL1.nam b/MY_RUN/KTEST/007_16janvier/006_preal/PRE_REAL1.nam index 963196cc0..25d4ccf12 100644 --- a/MY_RUN/KTEST/007_16janvier/006_preal/PRE_REAL1.nam +++ b/MY_RUN/KTEST/007_16janvier/006_preal/PRE_REAL1.nam @@ -1,4 +1,7 @@ &NAM_CONFIO LCDF4=T, LLFIOUT=T, LLFIREAD=F / +&NAM_CONFZ + !NZ_VERB=5 , NZ_PROC=0 , NB_PROCIO_R=8 , NB_PROCIO_W=8 +/ &NAM_FILE_NAMES HATMFILE ='16JAN_06_MNH.spa04' , HATMFILETYPE='MESONH', HPGDFILE ='16JAN98_9km.neste1' , CINIFILE='16JAN_06_MNH2' / &NAM_REAL_CONF NVERB=5 diff --git a/MY_RUN/KTEST/007_16janvier/006_preal/run_preal_xyz b/MY_RUN/KTEST/007_16janvier/006_preal/run_preal_xyz index 56c362fd8..0c88f2ff3 100755 --- a/MY_RUN/KTEST/007_16janvier/006_preal/run_preal_xyz +++ b/MY_RUN/KTEST/007_16janvier/006_preal/run_preal_xyz @@ -8,8 +8,8 @@ set -e rm -f 16JAN* OUTPUT_LISTING* pipe* *.tex ln -sf ../003_nest/16JAN98_9km.neste1.{des,lfi,nc} . ln -sf ../003_nest/16JAN98_36km.neste1.{des,lfi,nc} . -ln -sf ../004_arp2lfi/16JAN_06_MNH.{des,lfi,nc} . -ln -sf ../005_spa_mod1_mod2/16JAN_06_MNH.spa04.{des,lfi,nc} . +ln -sf ../004_arp2lfi/16JAN_06_MNH*.{des,lfi,nc} . +ln -sf ../005_spa_mod1_mod2/16JAN_06_MNH.spa04*.{des,lfi,nc} . #exit time ${MPIRUN} PREP_REAL_CASE${XYZ} #ddd --directory=~/DEV/MNH.V4.6.2/src/dir_obj_bug2 PREP_REAL_CASE diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src index 43a028c9c..7040ceed9 100644 --- a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src +++ b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src @@ -2,7 +2,7 @@ ! , NIO_VERB=5, NGEN_VERB=5 / &NAM_CONFZ - ! NZ_VERB=5 , NZ_PROC=0 , NB_PROCIO_R=1 , NB_PROCIO_W=8 + !NZ_VERB=5 , NZ_PROC=0 , NB_PROCIO_R=8 , NB_PROCIO_W=8 / &NAM_LUNITn CINIFILE = "16JAN_06_MNH",CINIFILEPGD="16JAN98_36km.neste1" / &NAM_DYNn XTSTEP = 60., diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz b/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz index 056e03e5d..654ba1e18 100755 --- a/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz +++ b/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz @@ -8,8 +8,8 @@ set -e rm -f 16JAN* OUT* EXSEG?.nam -ln -sf ../004_arp2lfi/16JAN_06_MNH.{des,lfi,nc} . -ln -sf ../006_preal/16JAN_06_MNH2.{des,lfi,nc} . +ln -sf ../004_arp2lfi/16JAN_06_MNH*.{des,lfi,nc} . +ln -sf ../006_preal/16JAN_06_MNH2*.{des,lfi,nc} . ln -sf ../003_nest/16JAN98_36km.neste1.{des,lfi,nc} . ln -sf ../003_nest/16JAN98_9km.neste1.{des,lfi,nc} . -- GitLab From 26e7454ea715259e009077b847b00c736ad2f39a Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 31 Jan 2019 16:12:32 +0100 Subject: [PATCH 007/139] Philippe 31/01/2019: removed transfer_file subroutine (useless) --- src/MNH/mnhclose_write_cover_tex.f90 | 3 - src/MNH/transfer_file.f90 | 92 ---------------------------- src/MNH/write_ts1d.f90 | 5 -- 3 files changed, 100 deletions(-) delete mode 100644 src/MNH/transfer_file.f90 diff --git a/src/MNH/mnhclose_write_cover_tex.f90 b/src/MNH/mnhclose_write_cover_tex.f90 index ec04cd869..7415fd379 100644 --- a/src/MNH/mnhclose_write_cover_tex.f90 +++ b/src/MNH/mnhclose_write_cover_tex.f90 @@ -45,8 +45,6 @@ USE MODD_IO_ll, ONLY: TFILEDATA USE MODE_FM, ONLY: IO_FILE_CLOSE_ll USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME ! -USE MODI_TRANSFER_FILE -! ! IMPLICIT NONE ! @@ -72,7 +70,6 @@ TZFILE => NULL() IF (TRIM(CPROGRAM)=='PGD') THEN CALL IO_FILE_FIND_BYNAME(YTEX,TZFILE,IRESP) CALL IO_FILE_CLOSE_ll(TZFILE) - CALL TRANSFER_FILE('fujitransfer.x','NIL',YTEX) END IF !------------------------------------------------------------------------------- ! diff --git a/src/MNH/transfer_file.f90 b/src/MNH/transfer_file.f90 deleted file mode 100644 index 0fe173610..000000000 --- a/src/MNH/transfer_file.f90 +++ /dev/null @@ -1,92 +0,0 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! masdev4_7 BUG1 2007/06/15 17:47:18 -!----------------------------------------------------------------- -!######################### -MODULE MODI_TRANSFER_FILE -!######################### -! -INTERFACE - SUBROUTINE TRANSFER_FILE(HTRANS,HCPIO,HFILENAME) -! -CHARACTER(LEN=*), INTENT(IN) :: HTRANS ! unix command for transfer -CHARACTER(LEN=*), INTENT(IN) :: HCPIO ! CPIO option -CHARACTER(LEN=*), INTENT(IN) :: HFILENAME ! name of the file to transfer -! -END SUBROUTINE TRANSFER_FILE -END INTERFACE -END MODULE MODI_TRANSFER_FILE -! -! ################################################ - SUBROUTINE TRANSFER_FILE(HTRANS,HCPIO,HFILENAME) -! ################################################ -! -!!**** *TRANSFER_FILE* - writes transfer.x command for a file in the pipe_name -!! -!! PURPOSE -!! ------- -!! This subroutine writes the unix command line HTRANS HCPIO HFILENAME -!! in the file pipe_name and flushes the buffer. -!! -!!** METHOD -!! ------ -!! -!! EXTERNAL -!! -------- -!! -!! Routine FLUSH : to flush the buffer -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -!! -!! REFERENCE -!! --------- -!! -!! Book 2 -!! -!! AUTHOR -!! ------ -!! -!! V.Masson Meteo-France -!! -!! MODIFICATIONS -!! ------------- -!! Original 10/04/95 -!! modified by E.pesin 03/98 (for FUJITSU machine) -!------------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! ------------ -! -IMPLICIT NONE -! -!* 0.1 Declaration of arguments -! ------------------------ -! -CHARACTER(LEN=*), INTENT(IN) :: HTRANS ! unix command for transfer -CHARACTER(LEN=*), INTENT(IN) :: HCPIO ! CPIO option -CHARACTER(LEN=*), INTENT(IN) :: HFILENAME ! name of the file to transfer -! -!* 0.2 Declaration of local variables -! ------------------------------ -! -CHARACTER(LEN=100) :: YCOMMAND ! command writen in pipe_name -! -!------------------------------------------------------------------------------- -! -WRITE(YCOMMAND,'(A," ",A," ",A," >> OUTPUT_TRANSFER 2>&1 &")') TRIM(HTRANS),TRIM(HCPIO),TRIM(HFILENAME) -PRINT *,'YCOMMAND =',YCOMMAND -! -print*, 'WARNING: routine TRANSFER_FILE DOES NOT WORK' -!!!!!CALL SYSTEM(YCOMMAND) -print*, 'WARNING: "CALL SYSTEM(YCOMMAND)" is not called in TRANSFER_FILE routine' -! -!------------------------------------------------------------------------------- -! -END SUBROUTINE TRANSFER_FILE diff --git a/src/MNH/write_ts1d.f90 b/src/MNH/write_ts1d.f90 index df0cd10bd..a022f4a0a 100644 --- a/src/MNH/write_ts1d.f90 +++ b/src/MNH/write_ts1d.f90 @@ -70,7 +70,6 @@ !! !! EXTERNAL !! -------- -!! OPEN_ll and CLOSE_ll ! attribute a free I/O unit and close it again !! IMPLICIT ARGUMENTS @@ -121,7 +120,6 @@ USE MODD_CH_JVALUES_n, ONLY: XJVALUES ! Jvalues and USE MODD_CH_INIT_JVALUES, ONLY:JPJVMAX ! their number USE MODD_PARAMETERS, ONLY: XUNDEF USE MODD_DIAG_FLAG, ONLY: LCHEMDIAG, XCHEMLAT, XCHEMLON -USE MODI_TRANSFER_FILE IMPLICIT NONE !! EXPLICIT ARGUMENTS @@ -278,7 +276,6 @@ DO JN=1,NBPROF CALL IO_FILE_CLOSE_ll(TZFILE) TZFILE => NULL() - CALL TRANSFER_FILE('fujitransfer.x','NIL',YSIO1DDEF) ! open picasso dat-file CALL IO_FILE_ADD2LIST(TZFILE,YSIO1DDAT,'TXT','WRITE') @@ -392,12 +389,10 @@ DO JN=1,NBPROF IF ((CPROGRAM =='DIAG ').AND.(LCHEMDIAG)) THEN CALL IO_FILE_CLOSE_ll(TZFILE) TZFILE => NULL() - CALL TRANSFER_FILE('fujitransfer.x','NIL',YSIO1DDAT) END IF IF (L1D) THEN GSFIRSTCALL = .FALSE. - CALL TRANSFER_FILE('fujitransfer.x','NIL',YSIO1DDAT) END IF END IF -- GitLab From 1bdeab403c577e60f1e383b0ff40a71c1713223e Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 31 Jan 2019 16:15:30 +0100 Subject: [PATCH 008/139] Philippe 31/01/2019: remove MNH_LINUX, MNH_SGI and MNH_VPP keys --- src/LIB/SURCOUCHE/src/mode_fm.f90 | 24 +------ src/LIB/SURCOUCHE/src/mode_io.f90 | 98 ---------------------------- src/LIB/SURCOUCHE/src/system_mnh.f90 | 10 +-- src/Makefile.MESONH.mk | 2 +- src/Rules.AIX64.mk | 2 +- src/Rules.BG.mk | 4 +- src/Rules.BGQ.mk | 4 +- src/Rules.LXNAGfor.mk | 2 +- src/Rules.LXarm.mk | 2 +- src/Rules.LXcray.mk | 2 +- src/Rules.LXg95.mk | 2 +- src/Rules.LXgfortran.mk | 2 +- src/Rules.LXifort.mk | 2 +- src/Rules.LXpathf95.mk | 2 +- src/Rules.LXpgi.mk | 2 +- 15 files changed, 20 insertions(+), 140 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index 02265538c..aad356646 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -452,9 +452,7 @@ SUBROUTINE FMCLOS_ll(TPFILE,KRESP,OPARALLELIO,HPROGRAM_ORIG) USE MODD_CONF, ONLY : CPROGRAM USE MODD_IO_ll, ONLY : TFILEDATA USE MODE_IO_ll, ONLY : CLOSE_ll,UPCASE -#if !defined(MNH_SGI) USE MODI_SYSTEM_MNH -#endif use mode_io_file_lfi, only: io_close_file_lfi #if defined(MNH_IOCDF4) use mode_io_file_nc4, only: io_close_file_nc4 @@ -509,15 +507,13 @@ IF (TPFILE%LMASTER) THEN #endif IF (IRESP == 0 .AND. CPROGRAM/='LFICDF') THEN !! Write in pipe -#if defined(MNH_LINUX) || defined(MNH_SP4) - YTRANS='xtransfer.x' -#elif defined(MNH_SX5) +#if defined(MNH_SX5) YTRANS='nectransfer.x' #else - YTRANS='fujitransfer.x' + YTRANS='xtransfer.x' #endif IFITYP = TPFILE%NLFITYPE - + SELECT CASE (IFITYP) CASE(:-1) IRESP=-66 @@ -534,19 +530,10 @@ IF (TPFILE%LMASTER) THEN GOTO 500 END SELECT ! WRITE (YCOMMAND,*) YTRANS,' ',YCPIO,' ',YFILEM -#if defined(MNH_LINUX) || defined(MNH_VPP) || defined(MNH_SX5) || defined(MNH_SP4) ICPT=ICPT+1 WRITE (YCOMMAND,'(A," ",A," ",A," >> OUTPUT_TRANSFER",I3.3," 2>&1 &")') TRIM(YTRANS),TRIM(YCPIO),TRIM(YFILEM),ICPT -!JUAN jusqu'a MASDEV4_4 WRITE (YCOMMAND,'(A," ",A," ",A," ")') TRIM(YTRANS),TRIM(YCPIO),TRIM(YFILEM) -#endif -#if defined(MNH_SGI) - WRITE (YCOMMAND,'(A," ",A," ",A," &")') TRIM(YTRANS),TRIM(YCPIO),TRIM(YFILEM) -#endif - PRINT *,'YCOMMAND =',YCOMMAND -#if !defined(MNH_SGI) CALL SYSTEM_MNH(YCOMMAND) -#endif END IF END IF @@ -564,11 +551,6 @@ END IF IF (PRESENT(KRESP)) KRESP=IRESP -! format: 14c for fujitransfer.x and mesonh/nil -! 32c for file name -! if you have to change this format one day, don't forget the blank after 1H -! 20 FORMAT(A14,1H ,A10,1H ,A32,1H ,A1) -! END SUBROUTINE FMCLOS_ll END MODULE MODE_FM diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 0434b5ea1..8c6f81e38 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -186,8 +186,6 @@ CONTAINS ! CHARACTER(len=5) :: CFILE INTEGER :: IFILE, IRANK_PROCIO - -#if defined(MNH_SX5) || defined(MNH_SP4) || defined(MNH_LINUX) CHARACTER(len=20) :: YSTATUS CHARACTER(len=20) :: YACCESS CHARACTER(len=20) :: YFORM @@ -197,8 +195,6 @@ CONTAINS CHARACTER(len=20) :: YPOSITION CHARACTER(len=20) :: YDELIM CHARACTER(len=20) :: YPAD - !JUAN -#endif CHARACTER(len=20) :: YACTION CHARACTER(len=20) :: YMODE CHARACTER(LEN=256) :: YIOERRMSG @@ -217,16 +213,6 @@ CONTAINS GPARALLELIO = .TRUE. ENDIF -#ifdef MNH_VPP - !! BUG Fuji avec RECL non fourni en argument de MYOPEN - INTEGER :: IRECSIZE - IF (PRESENT(RECL)) THEN - IRECSIZE = RECL - ELSE - IRECSIZE = 2147483647 ! Default value for FUJI RECL - END IF -#endif - IOS = 0 IF (PRESENT(COMM)) THEN ICOMM = COMM @@ -257,8 +243,6 @@ CONTAINS RETURN END IF -#if defined(MNH_SX5) || defined(MNH_SP4) || defined(MNH_LINUX) - !JUAN IF (PRESENT(STATUS)) THEN YSTATUS=STATUS ELSE @@ -299,7 +283,6 @@ CONTAINS ELSE YPAD='YES' ENDIF -#endif IF (ALLOCATED(TPFILE%CDIRNAME)) THEN IF(LEN_TRIM(TPFILE%CDIRNAME)>0) THEN @@ -339,23 +322,6 @@ CONTAINS IF (TPFILE%LMASTER) THEN !! I/O processor case -#ifdef MNH_VPP - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME),& - STATUS=STATUS, & - ACCESS=ACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=FORM, & - RECL=IRECSIZE, & - BLANK=BLANK, & - POSITION=POSITION, & - ACTION=YACTION, & - DELIM=DELIM, & - PAD=PAD) - -#else -#if defined(MNH_SX5) || defined(MNH_SP4) || defined(MNH_LINUX) !JUAN : 31/03/2000 modif pour acces direct IF (YACCESS=='STREAM') THEN OPEN(NEWUNIT=TPFILE%NLU, & @@ -421,37 +387,6 @@ CONTAINS ENDIF ENDIF - - !print*,' OPEN_ll' - !print*,' OPEN(NEWUNIT=',TPFILE%NLU - !print*,' FILE=',TRIM(YPREFILENAME) - !print*,' STATUS=',YSTATUS - !print*,' ACCESS=',YACCESS - !print*,' IOSTAT=',IOS - !print*,' FORM=',YFORM - !print*,' RECL=',YRECL - !print*,' BLANK=',YBLANK - !print*,' POSITION=',YPOSITION - !print*,' ACTION=',YACTION - !print*,' DELIM=',YDELIM - !print*,' PAD=',YPAD -#else - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME),& - STATUS=STATUS, & - ACCESS=ACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=FORM, & - RECL=RECL, & - BLANK=BLANK, & - POSITION=POSITION, & - ACTION=YACTION, & - DELIM=DELIM, & - PAD=PAD) -#endif - -#endif IF (IOS/=0) CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','Problem when opening '//TRIM(YPREFILENAME)//': '//TRIM(YIOERRMSG)) ELSE !! NON I/O processors case @@ -466,23 +401,6 @@ CONTAINS TPFILE%LMULTIMASTERS = .TRUE. TPFILE%NSUBFILES_IOZ = 0 -#ifdef MNH_VPP - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & - STATUS=STATUS, & - ACCESS=ACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=FORM, & - RECL=IRECSIZE, & - BLANK=BLANK, & - POSITION=POSITION, & - ACTION=YACTION, & - DELIM=DELIM, & - PAD=PAD) - -#else -#if defined(MNH_SX5) || defined(MNH_SP4) || defined(MNH_LINUX) IF (ACCESS=='DIRECT') THEN OPEN(NEWUNIT=TPFILE%NLU, & FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & @@ -524,23 +442,7 @@ CONTAINS PAD=YPAD) ENDIF ENDIF -#else - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & - STATUS=STATUS, & - ACCESS=ACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=FORM, & - RECL=RECL, & - BLANK=BLANK, & - POSITION=POSITION, & - ACTION=YACTION, & - DELIM=DELIM, & - PAD=PAD) -#endif -#endif IF (IOS/=0) CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','Problem when opening '//TRIM(YPREFILENAME)//': '//TRIM(YIOERRMSG)) diff --git a/src/LIB/SURCOUCHE/src/system_mnh.f90 b/src/LIB/SURCOUCHE/src/system_mnh.f90 index ef39625e4..ccdcc751d 100644 --- a/src/LIB/SURCOUCHE/src/system_mnh.f90 +++ b/src/LIB/SURCOUCHE/src/system_mnh.f90 @@ -26,14 +26,10 @@ SUBROUTINE SYSTEM_MNH(HCOMMAND) ! !* 0.2 Declaration of local variables ! ------------------------------ -#if defined(MNH_LINUX) || defined(MNH_SP4) - CHARACTER(LEN=*),PARAMETER :: CFILE="file_for_xtransfer" -#else -#if !defined(MNH_SX5) - CHARACTER(LEN=*),PARAMETER :: CFILE="file_for_fujitransfer" -#else +#ifdef MNH_SX5 CHARACTER(LEN=*),PARAMETER :: CFILE="file_for_nectransfer" -#endif +#else + CHARACTER(LEN=*),PARAMETER :: CFILE="file_for_xtransfer" #endif INTEGER :: IUNIT ! diff --git a/src/Makefile.MESONH.mk b/src/Makefile.MESONH.mk index bda290237..dec8ef951 100644 --- a/src/Makefile.MESONH.mk +++ b/src/Makefile.MESONH.mk @@ -106,7 +106,7 @@ endif # PRE_BUG TEST !!! # DIR_SURCOUCHE += LIB/SURCOUCHE/src -#CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_MPI_BSEND -DNAGf95 +#CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_MPI_BSEND -DNAGf95 # ifdef DIR_SURCOUCHE DIR_MASTER += $(DIR_SURCOUCHE) diff --git a/src/Rules.AIX64.mk b/src/Rules.AIX64.mk index b4de87fcf..c4ef4492e 100644 --- a/src/Rules.AIX64.mk +++ b/src/Rules.AIX64.mk @@ -84,7 +84,7 @@ endif CPP = /usr/lib/cpp -C -P -qlanglvl=classic # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_SP4 -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DAMAX1=MAX -DMNH -DSFX_MNH diff --git a/src/Rules.BG.mk b/src/Rules.BG.mk index d3d34f3f6..27714a08a 100644 --- a/src/Rules.BG.mk +++ b/src/Rules.BG.mk @@ -94,8 +94,8 @@ CPP = cpp -P -traditional -Wcomment CC = mpixlc_r # CPPFLAGS_SURFEX = -#CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_ISEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_BSEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +#CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_SP4 -DMNH_MPI_ISEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_SP4 -DMNH_MPI_BSEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DAMAX1=MAX -DMNH -DSFX_MNH diff --git a/src/Rules.BGQ.mk b/src/Rules.BGQ.mk index e1e735144..ae3daf277 100644 --- a/src/Rules.BGQ.mk +++ b/src/Rules.BGQ.mk @@ -143,8 +143,8 @@ CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -#CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_ISEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_BSEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) -DSNGL=REAL +#CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_SP4 -DMNH_MPI_ISEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_SP4 -DMNH_MPI_BSEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) -DSNGL=REAL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DAMAX1=MAX -DMNH -DSFX_MNH diff --git a/src/Rules.LXNAGfor.mk b/src/Rules.LXNAGfor.mk index d7a8adf96..9a4061046 100644 --- a/src/Rules.LXNAGfor.mk +++ b/src/Rules.LXNAGfor.mk @@ -72,7 +72,7 @@ FX90FLAGS = $(OPT) -fixed CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE += -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH diff --git a/src/Rules.LXarm.mk b/src/Rules.LXarm.mk index 7622b6807..9e9599942 100644 --- a/src/Rules.LXarm.mk +++ b/src/Rules.LXarm.mk @@ -88,7 +88,7 @@ FX90FLAGS = $(OPT) CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE += -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH diff --git a/src/Rules.LXcray.mk b/src/Rules.LXcray.mk index 1fbd6578c..5898140d2 100644 --- a/src/Rules.LXcray.mk +++ b/src/Rules.LXcray.mk @@ -84,7 +84,7 @@ LDFLAGS = -Wl,-warn-once $(PAR) $(OPT_BASE) CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH diff --git a/src/Rules.LXg95.mk b/src/Rules.LXg95.mk index fa86c4daf..f326e14f5 100644 --- a/src/Rules.LXg95.mk +++ b/src/Rules.LXg95.mk @@ -66,7 +66,7 @@ CPP = cpp -P -traditional -Wcomment LFI_INT ?=4 LFI_RECL ?=512 CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_MPI_BSEND -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_MPI_BSEND -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DAINT=INT -DAMOD=MOD -DMNH -DSFX_MNH diff --git a/src/Rules.LXgfortran.mk b/src/Rules.LXgfortran.mk index 26ff8eee5..e182448b3 100644 --- a/src/Rules.LXgfortran.mk +++ b/src/Rules.LXgfortran.mk @@ -79,7 +79,7 @@ FX90FLAGS = $(OPT) CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE += -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH diff --git a/src/Rules.LXifort.mk b/src/Rules.LXifort.mk index 48b9c5c99..8321534b0 100644 --- a/src/Rules.LXifort.mk +++ b/src/Rules.LXifort.mk @@ -176,7 +176,7 @@ LDFLAGS = -Wl,-warn-once $(PAR) -Wl,-rpath=$(LD_LIBRARY_PATH) $(OPT_BASE) CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE += -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH diff --git a/src/Rules.LXpathf95.mk b/src/Rules.LXpathf95.mk index 014fcbaf4..79a8e1c75 100644 --- a/src/Rules.LXpathf95.mk +++ b/src/Rules.LXpathf95.mk @@ -42,7 +42,7 @@ LDFLAGS = -Wl,-noinhibit-exec -Wl,-warn-once CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_MPI_BSEND -DDEV_NULL +CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_MPI_BSEND -DDEV_NULL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX CPPFLAGS_MNH = -DAINT=INT -DAMOD=MOD -DMNH -DSFX_MNH diff --git a/src/Rules.LXpgi.mk b/src/Rules.LXpgi.mk index 9b53a87c3..4bb43023e 100644 --- a/src/Rules.LXpgi.mk +++ b/src/Rules.LXpgi.mk @@ -100,7 +100,7 @@ CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE += -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DMNH_PGI -DSFX_MNH -- GitLab From d145088e2d527393462e35252af3104cdc138a4d Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 31 Jan 2019 16:25:11 +0100 Subject: [PATCH 009/139] Philippe 31/01/2019: minor: remove references to OPEN_ll and CLOSE_ll where not used anymore --- src/LIB/SURCOUCHE/src/mode_init_ll.f90 | 14 ++------------ src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 | 20 ++------------------ src/MNH/ch_emission_flux0d.f90 | 5 ++--- src/MNH/ch_init_constn.f90 | 5 ++--- src/MNH/ch_open_input.f90 | 11 +++++------ src/MNH/pressurez.f90 | 1 - src/MNH/write_lbn.f90 | 6 +++--- src/MNH/write_lfin.f90 | 2 +- 8 files changed, 17 insertions(+), 47 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_init_ll.f90 b/src/LIB/SURCOUCHE/src/mode_init_ll.f90 index 6cd17f9c6..257cc2b9c 100644 --- a/src/LIB/SURCOUCHE/src/mode_init_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_init_ll.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- @@ -560,14 +560,6 @@ ! !------------------------------------------------------------------------------- ! - !* 2. SET OUTPUT FILE : - ! --------------- - - ! CALL OPEN_ll(UNIT=NIOUNIT,FILE=YOUTPUTFILE,ACTION='write',form& - ! &='FORMATTED',MODE=SPECIFIC,IOSTAT=IRESP) - ! - !------------------------------------------------------------------------------- - ! !* 3. ALLOCATION : ! ---------- ! @@ -776,8 +768,6 @@ USE MODE_GA ! !* 1. CALL TO MPI_FINALIZE ! -! CALL CLOSE_ll(YOUTPUTFILE) - #ifdef MNH_GA if (.not. GFIRST_GA ) then call ga_sync() diff --git a/src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 b/src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 index 754a30d12..7b1b5680a 100644 --- a/src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2011-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- @@ -188,14 +188,6 @@ CONTAINS #ifndef MNH_USE_MPI_STATUSES_IGNORE ALLOCATE(MNH_STATUSES_IGNORE(MPI_STATUS_SIZE,NPROC*2)) #endif - ! - !------------------------------------------------------------------------------- - ! - !* 2. SET OUTPUT FILE : - ! --------------- - - ! CALL OPEN_ll(UNIT=NIOUNIT,FILE=YOUTPUTFILE,ACTION='write',form& - ! &='FORMATTED',MODE=SPECIFIC,IOSTAT=IRESP) ! !------------------------------------------------------------------------------- ! @@ -591,14 +583,6 @@ CONTAINS ! !------------------------------------------------------------------------------- ! - !* 2. SET OUTPUT FILE : - ! --------------- - - ! CALL OPEN_ll(UNIT=NIOUNIT,FILE=YOUTPUTFILE,ACTION='write',form& - ! &='FORMATTED',MODE=SPECIFIC,IOSTAT=IRESP) - ! - !------------------------------------------------------------------------------- - ! !* 3. ALLOCATION : ! ---------- ! diff --git a/src/MNH/ch_emission_flux0d.f90 b/src/MNH/ch_emission_flux0d.f90 index f3ba65ed1..2cbcf2ff6 100644 --- a/src/MNH/ch_emission_flux0d.f90 +++ b/src/MNH/ch_emission_flux0d.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1999-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !! ############################ @@ -107,7 +107,6 @@ CHARACTER*80 :: YFORMAT ! format of the input data INTEGER :: ICHEMIS ! number of variables for which a flux is given ! in the input file INTEGER :: IIO ! I/O channel -INTEGER :: IFAIL ! return code from CLOSE_ll REAL :: ZALPHA ! interpolation weight ! CHARACTER(LEN=3) :: YUNIT diff --git a/src/MNH/ch_init_constn.f90 b/src/MNH/ch_init_constn.f90 index 4e306a0d0..4d5dc7882 100644 --- a/src/MNH/ch_init_constn.f90 +++ b/src/MNH/ch_init_constn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2001-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !! ################################ @@ -111,7 +111,6 @@ CHARACTER(LEN=40), DIMENSION(:), ALLOCATABLE :: YHENRYNAME !species names REAL , DIMENSION(:,:), ALLOCATABLE :: ZHENRYVAL !chemical Henry constant value ! -INTEGER :: IFAIL ! return code from CLOSE_ll INTEGER :: JI, JN, JNREAL ! loop control variables INTEGER :: INACT ! array pointer TYPE(TFILEDATA),POINTER :: TZFILE diff --git a/src/MNH/ch_open_input.f90 b/src/MNH/ch_open_input.f90 index 86faf3c6f..95f17a316 100644 --- a/src/MNH/ch_open_input.f90 +++ b/src/MNH/ch_open_input.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !! ######################### @@ -39,13 +39,12 @@ SUBROUTINE CH_OPEN_INPUT(HCHEM_INPUT_FILE,HKEYWORD,TPFILE,KLUOUT,KVERB) !! !!** METHOD !! ------ -!! An unused input channel is selected using OPEN_ll. !! The file HCHEM_INPUT_FILE will be rewinded !! at each call and data will be read in using (A8)-format until the !! given keyword is found. The following comment line will then !! be read and printed and the input channel number will be returned. -!! After reading the needed data, the user must assure that the file -!! will be closed and that the unit will be freed using CLOSE_ll. +!! After reading the needed data, the user must ensure that the file +!! will be closed. !! !! REFERENCE !! --------- @@ -92,7 +91,7 @@ INTEGER, INTENT(IN) :: KVERB ! verbosity level ! CHARACTER(LEN=79) :: YIN ! character string for line-by-line read INTEGER :: ILU -INTEGER :: IRESP ! return code from OPEN_ll +INTEGER :: IRESP ! return code from IO_FILE_OPEN_ll ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/pressurez.f90 b/src/MNH/pressurez.f90 index ae75dc536..12396af04 100644 --- a/src/MNH/pressurez.f90 +++ b/src/MNH/pressurez.f90 @@ -233,7 +233,6 @@ USE MODD_PARAMETERS USE MODD_REF, ONLY: LBOUSS USE MODD_VAR_ll, ONLY: MPI_PRECISION, NMNH_COMM_WORLD , NPROC ! -USE MODE_IO_ll, ONLY: CLOSE_ll USE MODE_ll USE MODE_MPPDB USE MODE_MSG diff --git a/src/MNH/write_lbn.f90 b/src/MNH/write_lbn.f90 index b4044c86b..b9378bd92 100644 --- a/src/MNH/write_lbn.f90 +++ b/src/MNH/write_lbn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1998-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -94,7 +94,7 @@ USE MODD_PARAM_n ! USE MODE_FMWRIT USE MODE_ll -USE MODE_IO_ll, ONLY: UPCASE, CLOSE_ll +USE MODE_IO_ll, ONLY: UPCASE USE MODE_MSG USE MODE_MODELN_HANDLER ! diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90 index 43257ca72..6ae1a2e70 100644 --- a/src/MNH/write_lfin.f90 +++ b/src/MNH/write_lfin.f90 @@ -242,7 +242,7 @@ USE MODE_FM, ONLY: IO_FILE_CLOSE_ll USE MODE_FMWRIT USE MODE_ll USE MODD_IO_ll, ONLY: TFILEDATA -USE MODE_IO_ll, ONLY: UPCASE,CLOSE_ll +USE MODE_IO_ll, ONLY: UPCASE USE MODE_FIELD USE MODE_GATHER_ll USE MODE_GRIDPROJ -- GitLab From cc45fa0208abd89181aa686fc18f81686c361eb7 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Feb 2019 09:30:20 +0100 Subject: [PATCH 010/139] Philippe 01/02/2019 : IO_WRITE_COORDVAR_NC4: bug: use of non-associated pointers (PIOCDF%DIM_Nx_y) --- src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 | 36 ++++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 index eb032d9af..c6837768f 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 @@ -10,6 +10,7 @@ ! P. Wautelet : 13/12/2018 : split of mode_netcdf into multiple modules/files ! Philippe Wautelet: 10/01/2019: replace handle_err by io_handle_err_nc4 for better netCDF error messages ! P. Wautelet : 11/01/2019 : NVERB_INFO->NVERB_WARNING for zero size fields +! P. Wautelet : 01/02/2019 : IO_WRITE_COORDVAR_NC4: bug: use of non-associated pointers (PIOCDF%DIM_Nx_y) !----------------------------------------------------------------- #if defined(MNH_IOCDF4) module mode_io_write_nc4 @@ -1475,6 +1476,7 @@ USE MODD_CONF, ONLY: CPROGRAM, LCARTESIAN USE MODD_CONF_n, ONLY: CSTORAGE_TYPE USE MODD_GRID, ONLY: XLATORI, XLONORI USE MODD_GRID_n, ONLY: LSLEVE, XXHAT, XYHAT, XZHAT +use modd_netcdf, only: dimcdf USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT USE MODE_FIELD, ONLY: TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME @@ -1495,7 +1497,8 @@ LOGICAL,POINTER :: GSLEVE REAL,DIMENSION(:),POINTER :: ZXHAT, ZYHAT, ZZHAT REAL,DIMENSION(:),ALLOCATABLE :: ZXHATM, ZYHATM,ZZHATM !Coordinates at mass points in the transformed space REAL,DIMENSION(:,:),POINTER :: ZLAT, ZLON -TYPE(IOCDF), POINTER :: PIOCDF +type(dimcdf), pointer :: tzdim_ni, tzdim_nj, tzdim_ni_u, tzdim_nj_u, tzdim_ni_v, tzdim_nj_v +TYPE(IOCDF), POINTER :: PIOCDF CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_COORDVAR_NC4','called for '//TRIM(TPFILE%CNAME)) @@ -1554,17 +1557,34 @@ IF (LCARTESIAN) THEN ELSE YSTDNAMEPREFIX = 'projection' ENDIF -CALL WRITE_HOR_COORD(PIOCDF%DIM_NI,'x-dimension of the grid',TRIM(YSTDNAMEPREFIX)//'_x_coordinate','X',0.,JPHEXT,JPHEXT,ZXHATM) -CALL WRITE_HOR_COORD(PIOCDF%DIM_NJ,'y-dimension of the grid',TRIM(YSTDNAMEPREFIX)//'_y_coordinate','Y',0.,JPHEXT,JPHEXT,ZYHATM) -CALL WRITE_HOR_COORD(PIOCDF%DIM_NI_U,'x-dimension of the grid at u location', & + +if(associated(piocdf)) then +tzdim_ni => piocdf%dim_ni +tzdim_nj => piocdf%dim_nj +tzdim_ni_u => piocdf%dim_ni_u +tzdim_nj_u => piocdf%dim_nj_u +tzdim_ni_v => piocdf%dim_ni_v +tzdim_nj_v => piocdf%dim_nj_v +else +tzdim_ni => null() +tzdim_nj => null() +tzdim_ni_u => null() +tzdim_nj_u => null() +tzdim_ni_v => null() +tzdim_nj_v => null() +end if + +CALL WRITE_HOR_COORD(tzdim_ni,'x-dimension of the grid',TRIM(YSTDNAMEPREFIX)//'_x_coordinate','X',0.,JPHEXT,JPHEXT,ZXHATM) +CALL WRITE_HOR_COORD(tzdim_nj,'y-dimension of the grid',TRIM(YSTDNAMEPREFIX)//'_y_coordinate','Y',0.,JPHEXT,JPHEXT,ZYHATM) +CALL WRITE_HOR_COORD(tzdim_ni_u,'x-dimension of the grid at u location', & TRIM(YSTDNAMEPREFIX)//'_x_coordinate_at_u_location','X',-0.5,JPHEXT,0, ZXHAT) -CALL WRITE_HOR_COORD(PIOCDF%DIM_NJ_U,'y-dimension of the grid at u location', & +CALL WRITE_HOR_COORD(tzdim_nj_u,'y-dimension of the grid at u location', & TRIM(YSTDNAMEPREFIX)//'_y_coordinate_at_u_location','Y', 0., JPHEXT,JPHEXT,ZYHATM) -CALL WRITE_HOR_COORD(PIOCDF%DIM_NI_V,'x-dimension of the grid at v location', & +CALL WRITE_HOR_COORD(tzdim_ni_v,'x-dimension of the grid at v location', & TRIM(YSTDNAMEPREFIX)//'_x_coordinate_at_v_location','X', 0., JPHEXT,JPHEXT,ZXHATM) -CALL WRITE_HOR_COORD(PIOCDF%DIM_NJ_V,'y-dimension of the grid at v location', & +CALL WRITE_HOR_COORD(tzdim_nj_v,'y-dimension of the grid at v location', & TRIM(YSTDNAMEPREFIX)//'_y_coordinate_at_v_location','Y',-0.5,JPHEXT,0, ZYHAT) -! + IF (.NOT.LCARTESIAN) THEN ALLOCATE(ZLAT(IIU,IJU),ZLON(IIU,IJU)) ! -- GitLab From 4d513302a7dcf21a8b7e5f5a258e1fdd8608bf7a Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Feb 2019 10:32:06 +0100 Subject: [PATCH 011/139] Philippe 01/02/2019: ZRSMIN is now allocatable (instead of size of XRTMIN which was sometimes not allocated) --- src/MNH/resolved_cloud.f90 | 68 ++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90 index 20c640164..7713aeb71 100644 --- a/src/MNH/resolved_cloud.f90 +++ b/src/MNH/resolved_cloud.f90 @@ -1,8 +1,7 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. -! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/resolved_cloud.f90,v $ !----------------------------------------------------------------- ! ########################## MODULE MODI_RESOLVED_CLOUD @@ -265,49 +264,49 @@ END MODULE MODI_RESOLVED_CLOUD !! S.Riette : 11/2016 : ice_adjust before and after rain_ice !! ICE3/ICE4 modified, old version under LRED=F !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! P. Wautelet: 01/02/2019: ZRSMIN is now allocatable (instead of size of XRTMIN which was sometimes not allocated) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ -USE MODE_ll -USE MODE_FM +USE MODD_BUDGET, ONLY: LBUDGET_TH, LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS, LBUDGET_RV, & + LBUDGET_SV +USE MODD_CH_AEROSOL, ONLY: LORILAM +USE MODD_DUST, ONLY: LDUST +USE MODD_CST, ONLY: XCI, XCL, XCPD, XCPV, XLSTT, XLVTT, XMNH_TINY, XP00, XRD, XRHOLW, XTT +USE MODD_DUST , ONLY: LDUST +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_NSV, ONLY: NSV_C1R3END, NSV_C2R2BEG, NSV_C2R2END, & + NSV_LIMA_BEG, NSV_LIMA_END, NSV_LIMA_CCN_FREE, NSV_LIMA_IFN_FREE, & + NSV_LIMA_NC, NSV_LIMA_NI, NSV_LIMA_NR +USE MODD_PARAM_C2R2, ONLY: LSUPSAT +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT +USE MODD_PARAM_ICE, ONLY: CSEDIM, LADJ_BEFORE, LADJ_AFTER, CFRAC_ICE_ADJUST, LRED +USE MODD_PARAM_LIMA, ONLY: LCOLD, XCONC_CCN_TOT, NMOD_CCN, NMOD_IFN, NMOD_IMM, LPTSPLIT, & + YRTMIN=>XRTMIN, YCTMIN=>XCTMIN +USE MODD_RAIN_ICE_DESCR, ONLY: XRTMIN +USE MODD_SALT, ONLY: LSALT ! -USE MODD_CONF -USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_PARAMETERS -USE MODD_PARAM_ICE, ONLY : CSEDIM, LADJ_BEFORE, LADJ_AFTER, CFRAC_ICE_ADJUST, LRED -USE MODD_RAIN_ICE_DESCR -USE MODD_PARAM_C2R2 -USE MODD_BUDGET -USE MODD_NSV -USE MODD_CH_AEROSOL , ONLY : LORILAM -USE MODD_DUST , ONLY : LDUST -USE MODD_SALT , ONLY : LSALT -! -USE MODD_PARAM_LIMA, ONLY : LCOLD, XCONC_CCN_TOT, NMOD_CCN, NMOD_IFN, NMOD_IMM, LPTSPLIT, & - YRTMIN=>XRTMIN, YCTMIN=>XCTMIN - +USE MODE_ll ! -USE MODI_SLOW_TERMS +USE MODI_BUDGET +USE MODI_C2R2_ADJUST +USE MODI_C3R5_ADJUST USE MODI_FAST_TERMS +USE MODI_GET_HALO USE MODI_ICE_ADJUST -USE MODI_RAIN_ICE -USE MODI_RAIN_ICE_RED -USE MODI_RAIN_C2R2_KHKO USE MODI_ICE_C1R3 -USE MODI_C2R2_ADJUST USE MODI_KHKO_NOTADJUST -USE MODI_C3R5_ADJUST -USE MODI_SHUMAN -USE MODI_BUDGET -USE MODI_GET_HALO -! USE MODI_LIMA USE MODI_LIMA_WARM USE MODI_LIMA_COLD USE MODI_LIMA_MIXED USE MODI_LIMA_ADJUST +USE MODI_RAIN_C2R2_KHKO +USE MODI_RAIN_ICE +USE MODI_RAIN_ICE_RED +USE MODI_SHUMAN +USE MODI_SLOW_TERMS ! IMPLICIT NONE ! @@ -453,10 +452,10 @@ REAL :: ZRATIO ! ZMASSTOT / ZMASSCOR ! INTEGER :: ISVBEG ! first scalar index for microphysics INTEGER :: ISVEND ! last scalar index for microphysics +REAL, DIMENSION(:), ALLOCATABLE :: ZRSMIN ! Minimum value for tendencies REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZSVT ! scalar variable for microphysics only REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZSVS ! scalar tendency for microphysics only LOGICAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2),SIZE(PZZ,3)):: LLMICRO ! mask to limit computation -REAL, DIMENSION(SIZE(XRTMIN)) :: ZRSMIN ! Minimum value for tendencies REAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2),SIZE(PZZ,3), KRR) :: ZFPR ! INTEGER :: JMOD, JMOD_IFN @@ -493,7 +492,10 @@ IF (HCLOUD=='C2R2' .OR. HCLOUD=='C3R5' .OR. HCLOUD=='KHKO' .OR. HCLOUD=='LIMA') ZSVT(:,:,:,:) = PSVT(:,:,:,ISVBEG:ISVEND) ZSVS(:,:,:,:) = PSVS(:,:,:,ISVBEG:ISVEND) END IF -IF (HCLOUD(1:3)=='ICE') ZRSMIN(:) = XRTMIN(:) / PTSTEP +IF (HCLOUD(1:3)=='ICE') THEN + ALLOCATE(ZRSMIN(SIZE(XRTMIN))) + ZRSMIN(:) = XRTMIN(:) / PTSTEP +END IF ! !* 2. TRANSFORMATION INTO PHYSICAL TENDENCIES ! --------------------------------------- -- GitLab From 9dd496fe4e767c3ad18d6caba5302ac80d8380c3 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Feb 2019 10:57:59 +0100 Subject: [PATCH 012/139] Philippe 01/02/2019: SURFEX: bug: KI->KSIZE for size of KMASK argument in TREAT_SURF --- src/SURFEX/coupling_surf_atmn.F90 | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/SURFEX/coupling_surf_atmn.F90 b/src/SURFEX/coupling_surf_atmn.F90 index f9fdb2f8e..9ee9651c2 100644 --- a/src/SURFEX/coupling_surf_atmn.F90 +++ b/src/SURFEX/coupling_surf_atmn.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. ! ################################################################################# SUBROUTINE COUPLING_SURF_ATM_n (YSC, HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, KMONTH, & @@ -38,6 +38,7 @@ SUBROUTINE COUPLING_SURF_ATM_n (YSC, HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, !! B. Decharme 04/2013 new coupling variables and replace RW_PRECIP_n by CPL_GCM_n !! Modified 06/2013 by J.Escobar : replace DOUBLE PRECISION by REAL to handle problem for promotion of real on IBM SP !! R. Séférian 03/2014 Adding decoupling between CO2 seen by photosynthesis and radiative CO2 +!! P. Wautelet 02/2019 bug correction KI->KSIZE for size of KMASK argument in TREAT_SURF !!------------------------------------------------------------- ! ! @@ -450,9 +451,9 @@ SUBROUTINE TREAT_SURF(KTILE,KSIZE,KMASK) ! IMPLICIT NONE ! -INTEGER, INTENT(IN) :: KTILE -INTEGER, INTENT(IN) :: KSIZE -INTEGER, INTENT(IN), DIMENSION(KI) :: KMASK +INTEGER, INTENT(IN) :: KTILE +INTEGER, INTENT(IN) :: KSIZE +INTEGER, INTENT(IN), DIMENSION(KSIZE) :: KMASK ! REAL, DIMENSION(KSIZE) :: ZP_TSUN ! solar time (s from midnight) REAL, DIMENSION(KSIZE) :: ZP_ZREF ! height of T,q forcing (m) -- GitLab From a1a849103473e1b992f5322d656d11644134b896 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Feb 2019 11:20:10 +0100 Subject: [PATCH 013/139] Philippe 01/02/2019: SURFEX: bug in intent of PDEEP_FLUX OUT->INOUT --- src/SURFEX/e_budget.F90 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/SURFEX/e_budget.F90 b/src/SURFEX/e_budget.F90 index a717d91e8..0615f6428 100644 --- a/src/SURFEX/e_budget.F90 +++ b/src/SURFEX/e_budget.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. ! ######### SUBROUTINE E_BUDGET(IO, KK, PK, PEK, DK, DMK, HIMPLICIT_WIND, & @@ -76,6 +76,7 @@ !! (B. Decharme) 10/14 Bug in DIF composite budget !! Use harmonic mean to compute interfacial thermal conductivities !! "Restore" flux computed here +!! (P. Wautelet) 02/19 Bug in intent of PDEEP_FLUX OUT->INOUT !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -183,7 +184,7 @@ REAL, DIMENSION(:), INTENT(OUT) :: PALBT, PEMIST, PDQSAT REAL, DIMENSION(:), INTENT(IN) :: PQSAT ! PQSAT = saturation vapor humidity ! -REAL, DIMENSION(:), INTENT(OUT) :: PDEEP_FLUX ! Heat flux at bottom of ISBA (W/m2) +REAL, DIMENSION(:), INTENT(INOUT) :: PDEEP_FLUX ! Heat flux at bottom of ISBA (W/m2) ! REAL, DIMENSION(:), INTENT(OUT) :: PRESTORE ! PRESTORE = surface restore flux (W m-2) -- GitLab From 637ad89eb7e1e7a69fd3167d6a2fbb2bc2009817 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Feb 2019 14:13:07 +0100 Subject: [PATCH 014/139] Philippe 01/02/2019: bug: forgotten if for iib=iie and XX (same as for YY) --- src/MNH/write_surf_mnh.f90 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/MNH/write_surf_mnh.f90 b/src/MNH/write_surf_mnh.f90 index 9455eaa0a..7d54e17b0 100644 --- a/src/MNH/write_surf_mnh.f90 +++ b/src/MNH/write_surf_mnh.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1997-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1997-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- MODULE MODE_WRITE_SURF_MNH_TOOLS @@ -276,6 +276,7 @@ END SUBROUTINE WRITE_SURFX0_MNH !! !! original 01/08/03 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! P. Wautelet 01/02/2019: bug: forgotten if for iib=iie and XX (same as for YY) !---------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -412,7 +413,7 @@ END IF CALL GET_SURF_UNDEF(ZUNDEF) WHERE (ZWORK==ZUNDEF) ZWORK=XUNDEF -! + ! !! Add cases in 2D (IJB=IJE) and 1D (IJB=IJE and IIB=IIE) !! to write the correct mesh IF ( (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU') & @@ -425,7 +426,7 @@ IF ( (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU') & ZW1D( J1D) = 2. * ZW1D(J1D+1) - ZW1D(J1D+2) ZW1D(IIU+1-J1D) = 2. * ZW1D(IIU-J1D) - ZW1D(IIU-J1D-1) END DO - ELSE IF (IIB==IIE .AND. HREC=='DX') THEN + ELSE IF (IIB==IIE .AND. (HREC=='DX' .OR. HREC=='XX')) THEN ZW1D(IIB-1) = - 0.5 * ZWORK(IIB,1+JPHEXT) ZW1D(IIB) = 0.5 * ZWORK(IIB,1+JPHEXT) ZW1D(IIB+1) = 1.5 * ZWORK(IIB,1+JPHEXT) -- GitLab From 63a045819238ba58e700467c88fefea90af975f4 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Feb 2019 14:29:39 +0100 Subject: [PATCH 015/139] Philippe 01/02/2019: rain_ice: add missing initialization for PFPR --- src/MNH/rain_ice.f90 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90 index ed45479df..06f621435 100644 --- a/src/MNH/rain_ice.f90 +++ b/src/MNH/rain_ice.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ######spl MODULE MODI_RAIN_ICE @@ -237,6 +237,7 @@ END MODULE MODI_RAIN_ICE !! J.Escobar : 10/2017 : for real*4 , limit exp() in RAIN_ICE_SLOW with XMNH_HUGE_12_LOG !! (C. Abiven, Y. Léauté, V. Seigner, S. Riette) Phasing of Turner rain subgrid param !! J.Escobar : 8/2018 : for real*4 , bis => limit exp() in RAIN_ICE_SLOW with XMNH_HUGE_12_LOG +!! P.Wautelet 01/02/2019: add missing initialization for PFPR ! !* 0. DECLARATIONS ! ------------ @@ -1142,6 +1143,7 @@ PINPRR3D (:,:,:) = 0. PINPRS (:,:) = 0. PINPRG (:,:) = 0. IF ( KRR == 7 ) PINPRH (:,:) = 0. +IF (PRESENT(PFPR)) PFPR(:,:,:,:) = 0. ! !* 1. Parameters for cloud sedimentation ! -- GitLab From 49ca8bb0a3a39e6a0e2229a3235ecb987e28cef6 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Feb 2019 14:51:59 +0100 Subject: [PATCH 016/139] Philippe 01/02/2019: added missing initialization to NULL for files with OUT intent --- src/MNH/open_prc_files.f90 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/MNH/open_prc_files.f90 b/src/MNH/open_prc_files.f90 index 5f60cc3da..5e8436d87 100644 --- a/src/MNH/open_prc_files.f90 +++ b/src/MNH/open_prc_files.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -90,6 +90,7 @@ END MODULE MODI_OPEN_PRC_FILES !! J.ESCOBAR 12/11/2008 Improve checking --> add STATUS=OLD in open_ll(PRE_REAL1.nam,... !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! P. Wautelet 01/02/2019 added missing initialization to NULL for files with OUT intent !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -181,6 +182,7 @@ IF (NVERB>=5) WRITE(ILUOUT0,*) 'Routine OPEN_PRC_FILES started' !* 3. OPENNING OF PRE_REAL1.nam ! ------------------------- ! +TPPRE_REAL1FILE => NULL() CALL IO_FILE_ADD2LIST(TPPRE_REAL1FILE,'PRE_REAL1.nam','NML','READ') CALL IO_FILE_OPEN_ll(TPPRE_REAL1FILE,KRESP=IRESP) IPRE_REAL1=TPPRE_REAL1FILE%NLU @@ -266,6 +268,7 @@ ELSE !* 5. OPENING THE PHYSIOGRAPHIC DATA FILE ! ----------------------------------- ! + TPPGDFILE => NULL() CALL IO_FILE_ADD2LIST(TPPGDFILE,TRIM(HPGDFILE),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB) CALL IO_FILE_OPEN_ll(TPPGDFILE,IRESP,OPARALLELIO=.FALSE.) IF (IRESP/=0) THEN -- GitLab From d56f17e72af8ed719f1c331053e9e32dde586efb Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Feb 2019 16:06:34 +0100 Subject: [PATCH 017/139] Philippe 01/02/2019: bug correction in case XRT is not associated --- src/LIB/SURCOUCHE/src/mode_field.f90 | 151 ++++++++++++++++++--------- 1 file changed, 104 insertions(+), 47 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90 index 475b028fe..e0858d4b3 100644 --- a/src/LIB/SURCOUCHE/src/mode_field.f90 +++ b/src/LIB/SURCOUCHE/src/mode_field.f90 @@ -7,6 +7,7 @@ ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! Modifications: ! Philippe Wautelet: 29/01/2019 : small bug correction (null pointers) in FIELDLIST_GOTO_MODEL if NESPGD or PGD +! Philippe Wautelet: 01/02/2019 : bug correction in case XRT is not associated !----------------------------------------------------------------- MODULE MODE_FIELD ! @@ -3840,26 +3841,51 @@ CALL FIND_FIELD_ID_FROM_MNHNAME('TKET', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(K CALL FIND_FIELD_ID_FROM_MNHNAME('PABST',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XPABST CALL FIND_FIELD_ID_FROM_MNHNAME('RT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X4D(KFROM)%DATA => XRT ! -IF (CONF_MODEL(KFROM)%IDX_RVT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RVT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RVT) -END IF -IF (CONF_MODEL(KFROM)%IDX_RCT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RCT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RCT) -END IF -IF (CONF_MODEL(KFROM)%IDX_RRT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RRT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RRT) -END IF -IF (CONF_MODEL(KFROM)%IDX_RIT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RIT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RIT) -END IF -IF (CONF_MODEL(KFROM)%IDX_RST>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RST', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RST) -END IF -IF (CONF_MODEL(KFROM)%IDX_RGT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RGT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RGT) -END IF -IF (CONF_MODEL(KFROM)%IDX_RHT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RHT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RHT) +IF (ASSOCIATED(XRT)) THEN + IF (CONF_MODEL(KFROM)%IDX_RVT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RVT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RVT) + END IF + IF (CONF_MODEL(KFROM)%IDX_RCT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RCT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RCT) + END IF + IF (CONF_MODEL(KFROM)%IDX_RRT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RRT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RRT) + END IF + IF (CONF_MODEL(KFROM)%IDX_RIT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RIT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RIT) + END IF + IF (CONF_MODEL(KFROM)%IDX_RST>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RST', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RST) + END IF + IF (CONF_MODEL(KFROM)%IDX_RGT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RGT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RGT) + END IF + IF (CONF_MODEL(KFROM)%IDX_RHT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RHT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RHT) + END IF +ELSE + IF (CONF_MODEL(KFROM)%IDX_RVT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RVT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>NULL() + END IF + IF (CONF_MODEL(KFROM)%IDX_RCT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RCT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>NULL() + END IF + IF (CONF_MODEL(KFROM)%IDX_RRT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RRT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>NULL() + END IF + IF (CONF_MODEL(KFROM)%IDX_RIT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RIT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>NULL() + END IF + IF (CONF_MODEL(KFROM)%IDX_RST>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RST', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>NULL() + END IF + IF (CONF_MODEL(KFROM)%IDX_RGT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RGT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>NULL() + END IF + IF (CONF_MODEL(KFROM)%IDX_RHT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RHT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>NULL() + END IF + END IF ! CALL FIND_FIELD_ID_FROM_MNHNAME('SUPSATMAX',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XSUPSAT @@ -4126,33 +4152,64 @@ CALL FIND_FIELD_ID_FROM_MNHNAME('TKET', IID,IRESP); XTKET => TFIELDLIST(IID)%TF CALL FIND_FIELD_ID_FROM_MNHNAME('PABST',IID,IRESP); XPABST => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA CALL FIND_FIELD_ID_FROM_MNHNAME('RT', IID,IRESP); XRT => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA ! -IF (CONF_MODEL(KTO)%IDX_RVT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RVT',IID2,IRESP) - TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RVT) -END IF -IF (CONF_MODEL(KTO)%IDX_RCT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RCT',IID2,IRESP) - TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RCT) -END IF -IF (CONF_MODEL(KTO)%IDX_RRT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RRT',IID2,IRESP) - TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RRT) -END IF -IF (CONF_MODEL(KTO)%IDX_RIT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RIT',IID2,IRESP) - TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RIT) -END IF -IF (CONF_MODEL(KTO)%IDX_RST>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RST',IID2,IRESP) - TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RST) -END IF -IF (CONF_MODEL(KTO)%IDX_RGT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RGT',IID2,IRESP) - TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RGT) -END IF -IF (CONF_MODEL(KTO)%IDX_RHT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RHT',IID2,IRESP) - TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RHT) +IF (ASSOCIATED(XRT)) THEN + IF (CONF_MODEL(KTO)%IDX_RVT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RVT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RVT) + END IF + IF (CONF_MODEL(KTO)%IDX_RCT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RCT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RCT) + END IF + IF (CONF_MODEL(KTO)%IDX_RRT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RRT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RRT) + END IF + IF (CONF_MODEL(KTO)%IDX_RIT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RIT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RIT) + END IF + IF (CONF_MODEL(KTO)%IDX_RST>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RST',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RST) + END IF + IF (CONF_MODEL(KTO)%IDX_RGT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RGT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RGT) + END IF + IF (CONF_MODEL(KTO)%IDX_RHT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RHT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RHT) + END IF +ELSE + IF (CONF_MODEL(KTO)%IDX_RVT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RVT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => NULL() + END IF + IF (CONF_MODEL(KTO)%IDX_RCT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RCT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => NULL() + END IF + IF (CONF_MODEL(KTO)%IDX_RRT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RRT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => NULL() + END IF + IF (CONF_MODEL(KTO)%IDX_RIT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RIT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => NULL() + END IF + IF (CONF_MODEL(KTO)%IDX_RST>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RST',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => NULL() + END IF + IF (CONF_MODEL(KTO)%IDX_RGT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RGT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => NULL() + END IF + IF (CONF_MODEL(KTO)%IDX_RHT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RHT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => NULL() + END IF END IF ! CALL FIND_FIELD_ID_FROM_MNHNAME('SUPSATMAX',IID,IRESP); XSUPSAT => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA -- GitLab From d1a4f8ad2a11f26be16a70d8cafe6950a8c75b1b Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 4 Feb 2019 09:16:59 +0100 Subject: [PATCH 018/139] Philippe 04/02/2019: minor bug: remove a MPPDB_CHECK3D for XLSWM which is not allocated in some cases --- src/MNH/ver_dyn.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MNH/ver_dyn.f90 b/src/MNH/ver_dyn.f90 index 5b6911d3e..b3ddda0d0 100644 --- a/src/MNH/ver_dyn.f90 +++ b/src/MNH/ver_dyn.f90 @@ -383,7 +383,7 @@ END IF ! !20131126 add check on XWM,XLSWM CALL MPPDB_CHECK3D(XWT,"VER_DYN5::XWT",PRECISION) -CALL MPPDB_CHECK3D(XLSWM,"VER_DYN5::XLSWM",PRECISION) +! CALL MPPDB_CHECK3D(XLSWM,"VER_DYN5::XLSWM",PRECISION) ! DEALLOCATE(NKLIN) DEALLOCATE(XCOEFLIN) -- GitLab From 27205b9265801e229ddd2ca8dfff8c2d7e1d5083 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Tue, 5 Feb 2019 16:57:25 +0100 Subject: [PATCH 019/139] Philippe 05/02/2019: ada: use intel/2018.2 (intel/2013.1 has problems with newunit) and Intel MPI environment (POE not compatible with Intel from intel/2015.2) --- src/configure | 5 ++--- src/job_make_examples_IBM_ada | 16 ++++++---------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/configure b/src/configure index ad0fab6be..4dfbf2c9a 100755 --- a/src/configure +++ b/src/configure @@ -186,10 +186,9 @@ module load ga/\${VER_GA} export MVWORK=${MVWORK:-YES} export VER_CDF=${VER_CDF:-CDFAUTO} export MNHENV=${MNHENV:-" -#export OBJDIR_PATH=$WORKDIR/DIR_OBJ_ADA -export MP_MPILIB=pempi +#export MP_MPILIB=pempi module purge -module load intel/2013.1 +module load intel/2018.2 "} ;; AIX*) diff --git a/src/job_make_examples_IBM_ada b/src/job_make_examples_IBM_ada index 1dda93499..d21cac773 100755 --- a/src/job_make_examples_IBM_ada +++ b/src/job_make_examples_IBM_ada @@ -1,11 +1,11 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. # Nom arbitraire du travail LoadLeveler # @ job_name = Sortie_examples_ada # Type de travail -# @ job_type = parallel +# @ job_type = mpich # Fichier de sortie standard du travail # @ output = $(job_name).$(jobid) # Fichier de sortie d'erreur du travail @@ -14,7 +14,7 @@ # @ wall_clock_limit = 3600 # Nombre de processus demande (ici 1) # @ total_tasks = 4 -# @ environment = $DISPLAY +# @ environment = NB_TASKS=$(total_tasks) # @ queue cd $LOADL_STEP_INITDIR @@ -26,13 +26,10 @@ set -x #001_2Drelief 002_3Drelief 003_KW78 004_Reunion 007_16janvier -export MONORUN="Poe -world_sizes 1 " -export MPIRUN="Poe -world_sizes 4 " +export MONORUN="Mpirun -np 1 " +export MPIRUN="Mpirun -prepend-rank -np $NB_TASKS " export POSTRUN=" echo " -export MP_MPILIB=pempi -export MP_LABELIO=yes - time make -k 001_2Drelief time make -k 002_3Drelief time make -k 003_KW78 @@ -48,4 +45,3 @@ make -k << EOF EOF # - -- GitLab From d2f0a1cb3581654614fa11b14daf20eb2d45c300 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 6 Feb 2019 12:36:00 +0100 Subject: [PATCH 020/139] Philippe 06/02/2019: minor: standardize 2 units in written/read fields --- src/MNH/lima_ccn_activation.f90 | 2 +- src/MNH/lima_warm_nucl.f90 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/MNH/lima_ccn_activation.f90 b/src/MNH/lima_ccn_activation.f90 index 884c98379..fd2a2282a 100644 --- a/src/MNH/lima_ccn_activation.f90 +++ b/src/MNH/lima_ccn_activation.f90 @@ -472,7 +472,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%CMNHNAME ='NACT' TZFIELD%CSTDNAME = '' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = '/kg' + TZFIELD%CUNITS = 'kg-1' TZFIELD%CDIR = 'XY' TZFIELD%CCOMMENT = 'X_Y_Z_NACT' TZFIELD%NGRID = 1 diff --git a/src/MNH/lima_warm_nucl.f90 b/src/MNH/lima_warm_nucl.f90 index 66b235e48..046ceeaea 100644 --- a/src/MNH/lima_warm_nucl.f90 +++ b/src/MNH/lima_warm_nucl.f90 @@ -540,7 +540,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%CMNHNAME ='NACT' TZFIELD%CSTDNAME = '' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = '/kg' + TZFIELD%CUNITS = 'kg-1' TZFIELD%CDIR = 'XY' TZFIELD%CCOMMENT = 'X_Y_Z_NACT' TZFIELD%NGRID = 1 -- GitLab From 73fade71f53dd0c2cab3628a9d754e7969e32a3d Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Feb 2019 09:30:20 +0100 Subject: [PATCH 021/139] Philippe 01/02/2019 : IO_WRITE_COORDVAR_NC4: bug: use of non-associated pointers (PIOCDF%DIM_Nx_y) --- src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 | 36 ++++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 index eb032d9af..c6837768f 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 @@ -10,6 +10,7 @@ ! P. Wautelet : 13/12/2018 : split of mode_netcdf into multiple modules/files ! Philippe Wautelet: 10/01/2019: replace handle_err by io_handle_err_nc4 for better netCDF error messages ! P. Wautelet : 11/01/2019 : NVERB_INFO->NVERB_WARNING for zero size fields +! P. Wautelet : 01/02/2019 : IO_WRITE_COORDVAR_NC4: bug: use of non-associated pointers (PIOCDF%DIM_Nx_y) !----------------------------------------------------------------- #if defined(MNH_IOCDF4) module mode_io_write_nc4 @@ -1475,6 +1476,7 @@ USE MODD_CONF, ONLY: CPROGRAM, LCARTESIAN USE MODD_CONF_n, ONLY: CSTORAGE_TYPE USE MODD_GRID, ONLY: XLATORI, XLONORI USE MODD_GRID_n, ONLY: LSLEVE, XXHAT, XYHAT, XZHAT +use modd_netcdf, only: dimcdf USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT USE MODE_FIELD, ONLY: TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME @@ -1495,7 +1497,8 @@ LOGICAL,POINTER :: GSLEVE REAL,DIMENSION(:),POINTER :: ZXHAT, ZYHAT, ZZHAT REAL,DIMENSION(:),ALLOCATABLE :: ZXHATM, ZYHATM,ZZHATM !Coordinates at mass points in the transformed space REAL,DIMENSION(:,:),POINTER :: ZLAT, ZLON -TYPE(IOCDF), POINTER :: PIOCDF +type(dimcdf), pointer :: tzdim_ni, tzdim_nj, tzdim_ni_u, tzdim_nj_u, tzdim_ni_v, tzdim_nj_v +TYPE(IOCDF), POINTER :: PIOCDF CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_COORDVAR_NC4','called for '//TRIM(TPFILE%CNAME)) @@ -1554,17 +1557,34 @@ IF (LCARTESIAN) THEN ELSE YSTDNAMEPREFIX = 'projection' ENDIF -CALL WRITE_HOR_COORD(PIOCDF%DIM_NI,'x-dimension of the grid',TRIM(YSTDNAMEPREFIX)//'_x_coordinate','X',0.,JPHEXT,JPHEXT,ZXHATM) -CALL WRITE_HOR_COORD(PIOCDF%DIM_NJ,'y-dimension of the grid',TRIM(YSTDNAMEPREFIX)//'_y_coordinate','Y',0.,JPHEXT,JPHEXT,ZYHATM) -CALL WRITE_HOR_COORD(PIOCDF%DIM_NI_U,'x-dimension of the grid at u location', & + +if(associated(piocdf)) then +tzdim_ni => piocdf%dim_ni +tzdim_nj => piocdf%dim_nj +tzdim_ni_u => piocdf%dim_ni_u +tzdim_nj_u => piocdf%dim_nj_u +tzdim_ni_v => piocdf%dim_ni_v +tzdim_nj_v => piocdf%dim_nj_v +else +tzdim_ni => null() +tzdim_nj => null() +tzdim_ni_u => null() +tzdim_nj_u => null() +tzdim_ni_v => null() +tzdim_nj_v => null() +end if + +CALL WRITE_HOR_COORD(tzdim_ni,'x-dimension of the grid',TRIM(YSTDNAMEPREFIX)//'_x_coordinate','X',0.,JPHEXT,JPHEXT,ZXHATM) +CALL WRITE_HOR_COORD(tzdim_nj,'y-dimension of the grid',TRIM(YSTDNAMEPREFIX)//'_y_coordinate','Y',0.,JPHEXT,JPHEXT,ZYHATM) +CALL WRITE_HOR_COORD(tzdim_ni_u,'x-dimension of the grid at u location', & TRIM(YSTDNAMEPREFIX)//'_x_coordinate_at_u_location','X',-0.5,JPHEXT,0, ZXHAT) -CALL WRITE_HOR_COORD(PIOCDF%DIM_NJ_U,'y-dimension of the grid at u location', & +CALL WRITE_HOR_COORD(tzdim_nj_u,'y-dimension of the grid at u location', & TRIM(YSTDNAMEPREFIX)//'_y_coordinate_at_u_location','Y', 0., JPHEXT,JPHEXT,ZYHATM) -CALL WRITE_HOR_COORD(PIOCDF%DIM_NI_V,'x-dimension of the grid at v location', & +CALL WRITE_HOR_COORD(tzdim_ni_v,'x-dimension of the grid at v location', & TRIM(YSTDNAMEPREFIX)//'_x_coordinate_at_v_location','X', 0., JPHEXT,JPHEXT,ZXHATM) -CALL WRITE_HOR_COORD(PIOCDF%DIM_NJ_V,'y-dimension of the grid at v location', & +CALL WRITE_HOR_COORD(tzdim_nj_v,'y-dimension of the grid at v location', & TRIM(YSTDNAMEPREFIX)//'_y_coordinate_at_v_location','Y',-0.5,JPHEXT,0, ZYHAT) -! + IF (.NOT.LCARTESIAN) THEN ALLOCATE(ZLAT(IIU,IJU),ZLON(IIU,IJU)) ! -- GitLab From ee14c8cd79975f7db4af3029bc32524b3cc3cf39 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Feb 2019 10:32:06 +0100 Subject: [PATCH 022/139] Philippe 01/02/2019: ZRSMIN is now allocatable (instead of size of XRTMIN which was sometimes not allocated) --- src/MNH/resolved_cloud.f90 | 68 ++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90 index 20c640164..7713aeb71 100644 --- a/src/MNH/resolved_cloud.f90 +++ b/src/MNH/resolved_cloud.f90 @@ -1,8 +1,7 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. -! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/resolved_cloud.f90,v $ !----------------------------------------------------------------- ! ########################## MODULE MODI_RESOLVED_CLOUD @@ -265,49 +264,49 @@ END MODULE MODI_RESOLVED_CLOUD !! S.Riette : 11/2016 : ice_adjust before and after rain_ice !! ICE3/ICE4 modified, old version under LRED=F !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! P. Wautelet: 01/02/2019: ZRSMIN is now allocatable (instead of size of XRTMIN which was sometimes not allocated) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ -USE MODE_ll -USE MODE_FM +USE MODD_BUDGET, ONLY: LBUDGET_TH, LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS, LBUDGET_RV, & + LBUDGET_SV +USE MODD_CH_AEROSOL, ONLY: LORILAM +USE MODD_DUST, ONLY: LDUST +USE MODD_CST, ONLY: XCI, XCL, XCPD, XCPV, XLSTT, XLVTT, XMNH_TINY, XP00, XRD, XRHOLW, XTT +USE MODD_DUST , ONLY: LDUST +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_NSV, ONLY: NSV_C1R3END, NSV_C2R2BEG, NSV_C2R2END, & + NSV_LIMA_BEG, NSV_LIMA_END, NSV_LIMA_CCN_FREE, NSV_LIMA_IFN_FREE, & + NSV_LIMA_NC, NSV_LIMA_NI, NSV_LIMA_NR +USE MODD_PARAM_C2R2, ONLY: LSUPSAT +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT +USE MODD_PARAM_ICE, ONLY: CSEDIM, LADJ_BEFORE, LADJ_AFTER, CFRAC_ICE_ADJUST, LRED +USE MODD_PARAM_LIMA, ONLY: LCOLD, XCONC_CCN_TOT, NMOD_CCN, NMOD_IFN, NMOD_IMM, LPTSPLIT, & + YRTMIN=>XRTMIN, YCTMIN=>XCTMIN +USE MODD_RAIN_ICE_DESCR, ONLY: XRTMIN +USE MODD_SALT, ONLY: LSALT ! -USE MODD_CONF -USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_PARAMETERS -USE MODD_PARAM_ICE, ONLY : CSEDIM, LADJ_BEFORE, LADJ_AFTER, CFRAC_ICE_ADJUST, LRED -USE MODD_RAIN_ICE_DESCR -USE MODD_PARAM_C2R2 -USE MODD_BUDGET -USE MODD_NSV -USE MODD_CH_AEROSOL , ONLY : LORILAM -USE MODD_DUST , ONLY : LDUST -USE MODD_SALT , ONLY : LSALT -! -USE MODD_PARAM_LIMA, ONLY : LCOLD, XCONC_CCN_TOT, NMOD_CCN, NMOD_IFN, NMOD_IMM, LPTSPLIT, & - YRTMIN=>XRTMIN, YCTMIN=>XCTMIN - +USE MODE_ll ! -USE MODI_SLOW_TERMS +USE MODI_BUDGET +USE MODI_C2R2_ADJUST +USE MODI_C3R5_ADJUST USE MODI_FAST_TERMS +USE MODI_GET_HALO USE MODI_ICE_ADJUST -USE MODI_RAIN_ICE -USE MODI_RAIN_ICE_RED -USE MODI_RAIN_C2R2_KHKO USE MODI_ICE_C1R3 -USE MODI_C2R2_ADJUST USE MODI_KHKO_NOTADJUST -USE MODI_C3R5_ADJUST -USE MODI_SHUMAN -USE MODI_BUDGET -USE MODI_GET_HALO -! USE MODI_LIMA USE MODI_LIMA_WARM USE MODI_LIMA_COLD USE MODI_LIMA_MIXED USE MODI_LIMA_ADJUST +USE MODI_RAIN_C2R2_KHKO +USE MODI_RAIN_ICE +USE MODI_RAIN_ICE_RED +USE MODI_SHUMAN +USE MODI_SLOW_TERMS ! IMPLICIT NONE ! @@ -453,10 +452,10 @@ REAL :: ZRATIO ! ZMASSTOT / ZMASSCOR ! INTEGER :: ISVBEG ! first scalar index for microphysics INTEGER :: ISVEND ! last scalar index for microphysics +REAL, DIMENSION(:), ALLOCATABLE :: ZRSMIN ! Minimum value for tendencies REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZSVT ! scalar variable for microphysics only REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZSVS ! scalar tendency for microphysics only LOGICAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2),SIZE(PZZ,3)):: LLMICRO ! mask to limit computation -REAL, DIMENSION(SIZE(XRTMIN)) :: ZRSMIN ! Minimum value for tendencies REAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2),SIZE(PZZ,3), KRR) :: ZFPR ! INTEGER :: JMOD, JMOD_IFN @@ -493,7 +492,10 @@ IF (HCLOUD=='C2R2' .OR. HCLOUD=='C3R5' .OR. HCLOUD=='KHKO' .OR. HCLOUD=='LIMA') ZSVT(:,:,:,:) = PSVT(:,:,:,ISVBEG:ISVEND) ZSVS(:,:,:,:) = PSVS(:,:,:,ISVBEG:ISVEND) END IF -IF (HCLOUD(1:3)=='ICE') ZRSMIN(:) = XRTMIN(:) / PTSTEP +IF (HCLOUD(1:3)=='ICE') THEN + ALLOCATE(ZRSMIN(SIZE(XRTMIN))) + ZRSMIN(:) = XRTMIN(:) / PTSTEP +END IF ! !* 2. TRANSFORMATION INTO PHYSICAL TENDENCIES ! --------------------------------------- -- GitLab From 7640c255d0a7eed22fcf5055e4b558286a189f29 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Feb 2019 10:57:59 +0100 Subject: [PATCH 023/139] Philippe 01/02/2019: SURFEX: bug: KI->KSIZE for size of KMASK argument in TREAT_SURF --- src/SURFEX/coupling_surf_atmn.F90 | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/SURFEX/coupling_surf_atmn.F90 b/src/SURFEX/coupling_surf_atmn.F90 index f9fdb2f8e..9ee9651c2 100644 --- a/src/SURFEX/coupling_surf_atmn.F90 +++ b/src/SURFEX/coupling_surf_atmn.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. ! ################################################################################# SUBROUTINE COUPLING_SURF_ATM_n (YSC, HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, KMONTH, & @@ -38,6 +38,7 @@ SUBROUTINE COUPLING_SURF_ATM_n (YSC, HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, !! B. Decharme 04/2013 new coupling variables and replace RW_PRECIP_n by CPL_GCM_n !! Modified 06/2013 by J.Escobar : replace DOUBLE PRECISION by REAL to handle problem for promotion of real on IBM SP !! R. Séférian 03/2014 Adding decoupling between CO2 seen by photosynthesis and radiative CO2 +!! P. Wautelet 02/2019 bug correction KI->KSIZE for size of KMASK argument in TREAT_SURF !!------------------------------------------------------------- ! ! @@ -450,9 +451,9 @@ SUBROUTINE TREAT_SURF(KTILE,KSIZE,KMASK) ! IMPLICIT NONE ! -INTEGER, INTENT(IN) :: KTILE -INTEGER, INTENT(IN) :: KSIZE -INTEGER, INTENT(IN), DIMENSION(KI) :: KMASK +INTEGER, INTENT(IN) :: KTILE +INTEGER, INTENT(IN) :: KSIZE +INTEGER, INTENT(IN), DIMENSION(KSIZE) :: KMASK ! REAL, DIMENSION(KSIZE) :: ZP_TSUN ! solar time (s from midnight) REAL, DIMENSION(KSIZE) :: ZP_ZREF ! height of T,q forcing (m) -- GitLab From 33fdea3d1a134a81339bc80579f65117e0149ff3 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Feb 2019 11:20:10 +0100 Subject: [PATCH 024/139] Philippe 01/02/2019: SURFEX: bug in intent of PDEEP_FLUX OUT->INOUT --- src/SURFEX/e_budget.F90 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/SURFEX/e_budget.F90 b/src/SURFEX/e_budget.F90 index a717d91e8..0615f6428 100644 --- a/src/SURFEX/e_budget.F90 +++ b/src/SURFEX/e_budget.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. ! ######### SUBROUTINE E_BUDGET(IO, KK, PK, PEK, DK, DMK, HIMPLICIT_WIND, & @@ -76,6 +76,7 @@ !! (B. Decharme) 10/14 Bug in DIF composite budget !! Use harmonic mean to compute interfacial thermal conductivities !! "Restore" flux computed here +!! (P. Wautelet) 02/19 Bug in intent of PDEEP_FLUX OUT->INOUT !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -183,7 +184,7 @@ REAL, DIMENSION(:), INTENT(OUT) :: PALBT, PEMIST, PDQSAT REAL, DIMENSION(:), INTENT(IN) :: PQSAT ! PQSAT = saturation vapor humidity ! -REAL, DIMENSION(:), INTENT(OUT) :: PDEEP_FLUX ! Heat flux at bottom of ISBA (W/m2) +REAL, DIMENSION(:), INTENT(INOUT) :: PDEEP_FLUX ! Heat flux at bottom of ISBA (W/m2) ! REAL, DIMENSION(:), INTENT(OUT) :: PRESTORE ! PRESTORE = surface restore flux (W m-2) -- GitLab From 7bfde9a5dc3c05e95998e6612a941ccd3a9c1b55 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Feb 2019 14:13:07 +0100 Subject: [PATCH 025/139] Philippe 01/02/2019: bug: forgotten if for iib=iie and XX (same as for YY) --- src/MNH/write_surf_mnh.f90 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/MNH/write_surf_mnh.f90 b/src/MNH/write_surf_mnh.f90 index 9455eaa0a..7d54e17b0 100644 --- a/src/MNH/write_surf_mnh.f90 +++ b/src/MNH/write_surf_mnh.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1997-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1997-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- MODULE MODE_WRITE_SURF_MNH_TOOLS @@ -276,6 +276,7 @@ END SUBROUTINE WRITE_SURFX0_MNH !! !! original 01/08/03 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! P. Wautelet 01/02/2019: bug: forgotten if for iib=iie and XX (same as for YY) !---------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -412,7 +413,7 @@ END IF CALL GET_SURF_UNDEF(ZUNDEF) WHERE (ZWORK==ZUNDEF) ZWORK=XUNDEF -! + ! !! Add cases in 2D (IJB=IJE) and 1D (IJB=IJE and IIB=IIE) !! to write the correct mesh IF ( (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU') & @@ -425,7 +426,7 @@ IF ( (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU') & ZW1D( J1D) = 2. * ZW1D(J1D+1) - ZW1D(J1D+2) ZW1D(IIU+1-J1D) = 2. * ZW1D(IIU-J1D) - ZW1D(IIU-J1D-1) END DO - ELSE IF (IIB==IIE .AND. HREC=='DX') THEN + ELSE IF (IIB==IIE .AND. (HREC=='DX' .OR. HREC=='XX')) THEN ZW1D(IIB-1) = - 0.5 * ZWORK(IIB,1+JPHEXT) ZW1D(IIB) = 0.5 * ZWORK(IIB,1+JPHEXT) ZW1D(IIB+1) = 1.5 * ZWORK(IIB,1+JPHEXT) -- GitLab From b8a23107cc0e6156e0e47fd9fc19a0a9f242b0fc Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Feb 2019 14:29:39 +0100 Subject: [PATCH 026/139] Philippe 01/02/2019: rain_ice: add missing initialization for PFPR --- src/MNH/rain_ice.f90 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90 index ed45479df..06f621435 100644 --- a/src/MNH/rain_ice.f90 +++ b/src/MNH/rain_ice.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ######spl MODULE MODI_RAIN_ICE @@ -237,6 +237,7 @@ END MODULE MODI_RAIN_ICE !! J.Escobar : 10/2017 : for real*4 , limit exp() in RAIN_ICE_SLOW with XMNH_HUGE_12_LOG !! (C. Abiven, Y. Léauté, V. Seigner, S. Riette) Phasing of Turner rain subgrid param !! J.Escobar : 8/2018 : for real*4 , bis => limit exp() in RAIN_ICE_SLOW with XMNH_HUGE_12_LOG +!! P.Wautelet 01/02/2019: add missing initialization for PFPR ! !* 0. DECLARATIONS ! ------------ @@ -1142,6 +1143,7 @@ PINPRR3D (:,:,:) = 0. PINPRS (:,:) = 0. PINPRG (:,:) = 0. IF ( KRR == 7 ) PINPRH (:,:) = 0. +IF (PRESENT(PFPR)) PFPR(:,:,:,:) = 0. ! !* 1. Parameters for cloud sedimentation ! -- GitLab From 284de270e320142b38ed889f3a37db10034fceb9 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Feb 2019 14:51:59 +0100 Subject: [PATCH 027/139] Philippe 01/02/2019: added missing initialization to NULL for files with OUT intent --- src/MNH/open_prc_files.f90 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/MNH/open_prc_files.f90 b/src/MNH/open_prc_files.f90 index 5f60cc3da..5e8436d87 100644 --- a/src/MNH/open_prc_files.f90 +++ b/src/MNH/open_prc_files.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -90,6 +90,7 @@ END MODULE MODI_OPEN_PRC_FILES !! J.ESCOBAR 12/11/2008 Improve checking --> add STATUS=OLD in open_ll(PRE_REAL1.nam,... !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! P. Wautelet 01/02/2019 added missing initialization to NULL for files with OUT intent !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -181,6 +182,7 @@ IF (NVERB>=5) WRITE(ILUOUT0,*) 'Routine OPEN_PRC_FILES started' !* 3. OPENNING OF PRE_REAL1.nam ! ------------------------- ! +TPPRE_REAL1FILE => NULL() CALL IO_FILE_ADD2LIST(TPPRE_REAL1FILE,'PRE_REAL1.nam','NML','READ') CALL IO_FILE_OPEN_ll(TPPRE_REAL1FILE,KRESP=IRESP) IPRE_REAL1=TPPRE_REAL1FILE%NLU @@ -266,6 +268,7 @@ ELSE !* 5. OPENING THE PHYSIOGRAPHIC DATA FILE ! ----------------------------------- ! + TPPGDFILE => NULL() CALL IO_FILE_ADD2LIST(TPPGDFILE,TRIM(HPGDFILE),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB) CALL IO_FILE_OPEN_ll(TPPGDFILE,IRESP,OPARALLELIO=.FALSE.) IF (IRESP/=0) THEN -- GitLab From b4b3e46c68dbc304e8a6add90599dc6c79206d20 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Feb 2019 16:06:34 +0100 Subject: [PATCH 028/139] Philippe 01/02/2019: bug correction in case XRT is not associated --- src/LIB/SURCOUCHE/src/mode_field.f90 | 151 ++++++++++++++++++--------- 1 file changed, 104 insertions(+), 47 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90 index 475b028fe..e0858d4b3 100644 --- a/src/LIB/SURCOUCHE/src/mode_field.f90 +++ b/src/LIB/SURCOUCHE/src/mode_field.f90 @@ -7,6 +7,7 @@ ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! Modifications: ! Philippe Wautelet: 29/01/2019 : small bug correction (null pointers) in FIELDLIST_GOTO_MODEL if NESPGD or PGD +! Philippe Wautelet: 01/02/2019 : bug correction in case XRT is not associated !----------------------------------------------------------------- MODULE MODE_FIELD ! @@ -3840,26 +3841,51 @@ CALL FIND_FIELD_ID_FROM_MNHNAME('TKET', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(K CALL FIND_FIELD_ID_FROM_MNHNAME('PABST',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XPABST CALL FIND_FIELD_ID_FROM_MNHNAME('RT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X4D(KFROM)%DATA => XRT ! -IF (CONF_MODEL(KFROM)%IDX_RVT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RVT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RVT) -END IF -IF (CONF_MODEL(KFROM)%IDX_RCT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RCT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RCT) -END IF -IF (CONF_MODEL(KFROM)%IDX_RRT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RRT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RRT) -END IF -IF (CONF_MODEL(KFROM)%IDX_RIT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RIT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RIT) -END IF -IF (CONF_MODEL(KFROM)%IDX_RST>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RST', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RST) -END IF -IF (CONF_MODEL(KFROM)%IDX_RGT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RGT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RGT) -END IF -IF (CONF_MODEL(KFROM)%IDX_RHT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RHT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RHT) +IF (ASSOCIATED(XRT)) THEN + IF (CONF_MODEL(KFROM)%IDX_RVT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RVT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RVT) + END IF + IF (CONF_MODEL(KFROM)%IDX_RCT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RCT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RCT) + END IF + IF (CONF_MODEL(KFROM)%IDX_RRT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RRT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RRT) + END IF + IF (CONF_MODEL(KFROM)%IDX_RIT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RIT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RIT) + END IF + IF (CONF_MODEL(KFROM)%IDX_RST>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RST', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RST) + END IF + IF (CONF_MODEL(KFROM)%IDX_RGT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RGT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RGT) + END IF + IF (CONF_MODEL(KFROM)%IDX_RHT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RHT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RHT) + END IF +ELSE + IF (CONF_MODEL(KFROM)%IDX_RVT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RVT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>NULL() + END IF + IF (CONF_MODEL(KFROM)%IDX_RCT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RCT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>NULL() + END IF + IF (CONF_MODEL(KFROM)%IDX_RRT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RRT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>NULL() + END IF + IF (CONF_MODEL(KFROM)%IDX_RIT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RIT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>NULL() + END IF + IF (CONF_MODEL(KFROM)%IDX_RST>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RST', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>NULL() + END IF + IF (CONF_MODEL(KFROM)%IDX_RGT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RGT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>NULL() + END IF + IF (CONF_MODEL(KFROM)%IDX_RHT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RHT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>NULL() + END IF + END IF ! CALL FIND_FIELD_ID_FROM_MNHNAME('SUPSATMAX',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XSUPSAT @@ -4126,33 +4152,64 @@ CALL FIND_FIELD_ID_FROM_MNHNAME('TKET', IID,IRESP); XTKET => TFIELDLIST(IID)%TF CALL FIND_FIELD_ID_FROM_MNHNAME('PABST',IID,IRESP); XPABST => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA CALL FIND_FIELD_ID_FROM_MNHNAME('RT', IID,IRESP); XRT => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA ! -IF (CONF_MODEL(KTO)%IDX_RVT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RVT',IID2,IRESP) - TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RVT) -END IF -IF (CONF_MODEL(KTO)%IDX_RCT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RCT',IID2,IRESP) - TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RCT) -END IF -IF (CONF_MODEL(KTO)%IDX_RRT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RRT',IID2,IRESP) - TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RRT) -END IF -IF (CONF_MODEL(KTO)%IDX_RIT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RIT',IID2,IRESP) - TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RIT) -END IF -IF (CONF_MODEL(KTO)%IDX_RST>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RST',IID2,IRESP) - TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RST) -END IF -IF (CONF_MODEL(KTO)%IDX_RGT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RGT',IID2,IRESP) - TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RGT) -END IF -IF (CONF_MODEL(KTO)%IDX_RHT>0) THEN - CALL FIND_FIELD_ID_FROM_MNHNAME('RHT',IID2,IRESP) - TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RHT) +IF (ASSOCIATED(XRT)) THEN + IF (CONF_MODEL(KTO)%IDX_RVT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RVT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RVT) + END IF + IF (CONF_MODEL(KTO)%IDX_RCT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RCT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RCT) + END IF + IF (CONF_MODEL(KTO)%IDX_RRT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RRT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RRT) + END IF + IF (CONF_MODEL(KTO)%IDX_RIT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RIT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RIT) + END IF + IF (CONF_MODEL(KTO)%IDX_RST>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RST',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RST) + END IF + IF (CONF_MODEL(KTO)%IDX_RGT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RGT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RGT) + END IF + IF (CONF_MODEL(KTO)%IDX_RHT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RHT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RHT) + END IF +ELSE + IF (CONF_MODEL(KTO)%IDX_RVT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RVT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => NULL() + END IF + IF (CONF_MODEL(KTO)%IDX_RCT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RCT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => NULL() + END IF + IF (CONF_MODEL(KTO)%IDX_RRT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RRT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => NULL() + END IF + IF (CONF_MODEL(KTO)%IDX_RIT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RIT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => NULL() + END IF + IF (CONF_MODEL(KTO)%IDX_RST>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RST',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => NULL() + END IF + IF (CONF_MODEL(KTO)%IDX_RGT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RGT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => NULL() + END IF + IF (CONF_MODEL(KTO)%IDX_RHT>0) THEN + CALL FIND_FIELD_ID_FROM_MNHNAME('RHT',IID2,IRESP) + TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => NULL() + END IF END IF ! CALL FIND_FIELD_ID_FROM_MNHNAME('SUPSATMAX',IID,IRESP); XSUPSAT => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA -- GitLab From 49e1c3821a74c7023b1efe5d617c4cae6b150893 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 4 Feb 2019 09:16:59 +0100 Subject: [PATCH 029/139] Philippe 04/02/2019: minor bug: remove a MPPDB_CHECK3D for XLSWM which is not allocated in some cases --- src/MNH/ver_dyn.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MNH/ver_dyn.f90 b/src/MNH/ver_dyn.f90 index 5b6911d3e..b3ddda0d0 100644 --- a/src/MNH/ver_dyn.f90 +++ b/src/MNH/ver_dyn.f90 @@ -383,7 +383,7 @@ END IF ! !20131126 add check on XWM,XLSWM CALL MPPDB_CHECK3D(XWT,"VER_DYN5::XWT",PRECISION) -CALL MPPDB_CHECK3D(XLSWM,"VER_DYN5::XLSWM",PRECISION) +! CALL MPPDB_CHECK3D(XLSWM,"VER_DYN5::XLSWM",PRECISION) ! DEALLOCATE(NKLIN) DEALLOCATE(XCOEFLIN) -- GitLab From 8077673d354eeb9fb4736f94211f4e8f53111f46 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 6 Feb 2019 13:56:23 +0100 Subject: [PATCH 030/139] Philippe 06/02/2019: IO: simplify OPEN_ll and do somme assignments at a more logical place --- src/LIB/SURCOUCHE/src/modd_io.f90 | 2 +- src/LIB/SURCOUCHE/src/mode_fm.f90 | 40 +++--- src/LIB/SURCOUCHE/src/mode_io.f90 | 132 +++++------------- .../SURCOUCHE/src/mode_io_manage_struct.f90 | 28 +++- 4 files changed, 77 insertions(+), 125 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90 index 62a02bf94..48a8f51fb 100644 --- a/src/LIB/SURCOUCHE/src/modd_io.f90 +++ b/src/LIB/SURCOUCHE/src/modd_io.f90 @@ -112,7 +112,7 @@ TYPE TFILEDATA INTEGER :: NLU = -1 !Logical unit number INTEGER :: NRECL = -1 !Fortran RECL (record length) CHARACTER(LEN=11) :: CFORM = "UNKNOWN" !Fortran FORM (FORMATTED/UNFORMATTED) - CHARACTER(LEN=10) :: CACCESS = "UNKNOWN" !Fortran ACCESS (DIRECT/SEQUENTIAL) + CHARACTER(LEN=10) :: CACCESS = "UNKNOWN" !Fortran ACCESS (DIRECT/SEQUENTIAL/STREAM) ! TYPE(TFILEDATA),POINTER :: TDADFILE => NULL() !Corresponding dad file TYPE(TFILEDATA),POINTER :: TDESFILE => NULL() !Corresponding .des file diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index aad356646..f8d071b9f 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -13,6 +13,8 @@ ! of NNCID and NLFIFLU to the nc4 and lfi subroutines ! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll ! to allow to disable writes (for bench purposes) +! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !----------------------------------------------------------------- MODULE MODE_FM @@ -95,22 +97,22 @@ IF (IRESP/=0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_OPEN_ll','file '//TRIM(TP SELECT CASE(TPFILE%CTYPE) !Chemistry input files CASE('CHEMINPUT') - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,FORM='FORMATTED',POSITION='REWIND',STATUS='OLD',MODE='GLOBAL') + CALL OPEN_ll(TPFILE,IOSTAT=IRESP,POSITION='REWIND',STATUS='OLD',MODE='GLOBAL') !Chemistry tabulation files CASE('CHEMTAB') - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,FORM='FORMATTED',MODE='GLOBAL') + CALL OPEN_ll(TPFILE,IOSTAT=IRESP,MODE='GLOBAL') !GPS files CASE('GPS') - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,FORM='FORMATTED',MODE='SPECIFIC') + CALL OPEN_ll(TPFILE,IOSTAT=IRESP,MODE='SPECIFIC') !Meteo files CASE('METEO') - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,FORM='UNFORMATTED',MODE='GLOBAL',RECL=100000000) + CALL OPEN_ll(TPFILE,IOSTAT=IRESP,MODE='GLOBAL') !Namelist files @@ -120,27 +122,17 @@ SELECT CASE(TPFILE%CTYPE) !OUTPUTLISTING files CASE('OUTPUTLISTING') - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,FORM='FORMATTED',MODE='GLOBAL') + CALL OPEN_ll(TPFILE,IOSTAT=IRESP,MODE='GLOBAL') !SURFACE_DATA files CASE('SURFACE_DATA') - IF (TPFILE%CFORM=='FORMATTED') THEN - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,FORM=TPFILE%CFORM,MODE='GLOBAL') - ELSE IF (TPFILE%CACCESS=='DIRECT') THEN - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,FORM=TPFILE%CFORM,ACCESS=TPFILE%CACCESS,RECL=TPFILE%NRECL,MODE='GLOBAL') - ELSE - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,FORM=TPFILE%CFORM,MODE='GLOBAL') - END IF + CALL OPEN_ll(TPFILE,IOSTAT=IRESP,MODE='GLOBAL') !Text files CASE('TXT') - IF(TPFILE%NRECL>0) THEN - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,FORM='FORMATTED',POSITION=HPOSITION,STATUS=HSTATUS,RECL=TPFILE%NRECL,MODE='GLOBAL') - ELSE - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,FORM='FORMATTED',POSITION=HPOSITION,STATUS=HSTATUS,MODE='GLOBAL') - END IF + CALL OPEN_ll(TPFILE,IOSTAT=IRESP,POSITION=HPOSITION,STATUS=HSTATUS,MODE='GLOBAL') CASE DEFAULT @@ -148,7 +140,7 @@ SELECT CASE(TPFILE%CTYPE) IF(TPFILE%CTYPE/='OUTPUT' .AND. CPROGRAM/='LFICDF') THEN CALL IO_FILE_ADD2LIST(TZFILE_DES,TRIM(TPFILE%CNAME)//'.des','DES',TPFILE%CMODE,TPDATAFILE=TPFILE,OOLD=.TRUE.) !OOLD=T because the file may already be in the list CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_OPEN_ll','OPEN_ll for '//TRIM(TPFILE%CNAME)//'.des') - CALL OPEN_ll(TZFILE_DES,FORM='FORMATTED',DELIM='QUOTE',IOSTAT=IRESP,RECL=1024*8,OPARALLELIO=OPARALLELIO) + CALL OPEN_ll(TZFILE_DES,IOSTAT=IRESP,DELIM='QUOTE',OPARALLELIO=OPARALLELIO) TZFILE_DES%LOPENED = .TRUE. TZFILE_DES%NOPEN_CURRENT = TZFILE_DES%NOPEN_CURRENT + 1 TZFILE_DES%NOPEN = TZFILE_DES%NOPEN + 1 @@ -221,7 +213,8 @@ ENDIF CASE('WRITE') INB_PROCIO = NB_PROCIO_W END SELECT -CALL OPEN_ll(TPFILE,STATUS="UNKNOWN",MODE='IO_ZSPLIT',IOSTAT=IRESP, & + +CALL OPEN_ll(TPFILE,IOSTAT=IRESP,MODE='IO_ZSPLIT', & KNB_PROCIO=INB_PROCIO,OPARALLELIO=GPARALLELIO,HPROGRAM_ORIG=HPROGRAM_ORIG) IF (IRESP /= 0) GOTO 1000 @@ -459,7 +452,7 @@ USE MODI_SYSTEM_MNH use mode_io_write_nc4, only: io_write_coordvar_nc4 #endif TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure -INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! return-code if problems araised +INTEGER, INTENT(OUT) :: KRESP ! return-code if problems araised LOGICAL, INTENT(IN), OPTIONAL :: OPARALLELIO CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program @@ -523,16 +516,15 @@ IF (TPFILE%LMASTER) THEN CASE(1) YCPIO='MESONH' CASE(2) - PRINT *,'FILE ',YFILEM,' NOT TRANSFERED' + CALL PRINT_MSG(NVERB_INFO,'IO','FMCLOS_ll','file '//TRIM(YFILEM)//' not transferred') GOTO 500 CASE(3:) IRESP=-66 GOTO 500 END SELECT -! WRITE (YCOMMAND,*) YTRANS,' ',YCPIO,' ',YFILEM ICPT=ICPT+1 WRITE (YCOMMAND,'(A," ",A," ",A," >> OUTPUT_TRANSFER",I3.3," 2>&1 &")') TRIM(YTRANS),TRIM(YCPIO),TRIM(YFILEM),ICPT - PRINT *,'YCOMMAND =',YCOMMAND + CALL PRINT_MSG(NVERB_INFO,'IO','FMCLOS_ll','YCOMMAND='//TRIM(YCOMMAND)) CALL SYSTEM_MNH(YCOMMAND) END IF END IF @@ -549,7 +541,7 @@ IF (IRESP.NE.0) THEN CALL PRINT_MSG(NVERB_ERROR,'IO','FMCLOS_ll',TRIM(YFILEM)//': exit with IRESP='//TRIM(YRESP)) END IF -IF (PRESENT(KRESP)) KRESP=IRESP +KRESP=IRESP END SUBROUTINE FMCLOS_ll diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 8c6f81e38..56fa4322e 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -25,6 +25,7 @@ ! Philippe Wautelet: 10/01/2019: bug: modify some metadata before open calls ! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll to allow ! to disable writes (for bench purposes) +! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place ! MODULE MODE_IO_ll @@ -142,17 +143,11 @@ CONTAINS SUBROUTINE OPEN_ll(& TPFILE, & + IOSTAT, & MODE, & - COMM, & STATUS, & - ACCESS, & - IOSTAT, & - FORM, & - RECL, & - BLANK, & POSITION,& DELIM, & - PAD, & KNB_PROCIO,& OPARALLELIO, & HPROGRAM_ORIG) @@ -167,17 +162,11 @@ CONTAINS use mode_io_tools, only: io_rank TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE + INTEGER, INTENT(OUT) :: IOSTAT CHARACTER(len=*),INTENT(IN), OPTIONAL :: MODE CHARACTER(len=*),INTENT(IN), OPTIONAL :: STATUS - CHARACTER(len=*),INTENT(IN), OPTIONAL :: ACCESS - INTEGER, INTENT(OUT) :: IOSTAT - CHARACTER(len=*),INTENT(IN), OPTIONAL :: FORM - INTEGER, INTENT(IN), OPTIONAL :: RECL - CHARACTER(len=*),INTENT(IN), OPTIONAL :: BLANK CHARACTER(len=*),INTENT(IN), OPTIONAL :: POSITION CHARACTER(len=*),INTENT(IN), OPTIONAL :: DELIM - CHARACTER(len=*),INTENT(IN), OPTIONAL :: PAD - INTEGER, INTENT(IN), OPTIONAL :: COMM INTEGER, INTENT(IN), OPTIONAL :: KNB_PROCIO LOGICAL, INTENT(IN), OPTIONAL :: OPARALLELIO CHARACTER(LEN=*),INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program @@ -187,19 +176,14 @@ CONTAINS CHARACTER(len=5) :: CFILE INTEGER :: IFILE, IRANK_PROCIO CHARACTER(len=20) :: YSTATUS - CHARACTER(len=20) :: YACCESS - CHARACTER(len=20) :: YFORM INTEGER :: YRECL INTEGER ,PARAMETER :: RECL_DEF = 10000 - CHARACTER(len=20) :: YBLANK CHARACTER(len=20) :: YPOSITION CHARACTER(len=20) :: YDELIM - CHARACTER(len=20) :: YPAD CHARACTER(len=20) :: YACTION CHARACTER(len=20) :: YMODE CHARACTER(LEN=256) :: YIOERRMSG INTEGER :: IOS,IRESP - INTEGER :: ICOMM LOGICAL :: GPARALLELIO TYPE(TFILEDATA),POINTER :: TZSPLITFILE CHARACTER(LEN=:),ALLOCATABLE :: YPREFILENAME !To store the directory + filename @@ -214,11 +198,6 @@ CONTAINS ENDIF IOS = 0 - IF (PRESENT(COMM)) THEN - ICOMM = COMM - ELSE - ICOMM = NMNH_COMM_WORLD ! Default communicator - END IF IF (PRESENT(MODE)) THEN YMODE = MODE @@ -236,7 +215,7 @@ CONTAINS RETURN END IF - IF (.NOT. ANY(YMODE == (/'GLOBAL ','SPECIFIC ','DISTRIBUTED' , 'IO_ZSPLIT '/))) THEN + IF (.NOT. ANY(YMODE == (/'GLOBAL ','SPECIFIC ', 'IO_ZSPLIT '/))) THEN IOSTAT = 99 TPFILE%NLU = -1 CALL PRINT_MSG(NVERB_ERROR,'IO','OPEN_ll','ymode='//TRIM(YMODE)//' not supported') @@ -248,26 +227,13 @@ CONTAINS ELSE YSTATUS='UNKNOWN' ENDIF - IF (PRESENT(ACCESS)) THEN - YACCESS=ACCESS - ELSE - YACCESS='SEQUENTIAL' - ENDIF - IF (PRESENT(FORM)) THEN - YFORM=FORM - ELSE - YFORM='FORMATTED' - ENDIF - IF (PRESENT(RECL)) THEN - YRECL=RECL - ELSE - YRECL=RECL_DEF - ENDIF - IF (PRESENT(BLANK)) THEN - YBLANK=BLANK + + IF (TPFILE%NRECL == -1) THEN + YRECL = RECL_DEF ELSE - YBLANK='NULL' - ENDIF + YRECL = TPFILE%NRECL + END IF + IF (PRESENT(POSITION)) THEN YPOSITION=POSITION ELSE @@ -278,11 +244,6 @@ CONTAINS ELSE YDELIM='NONE' ENDIF - IF (PRESENT(PAD)) THEN - YPAD=PAD - ELSE - YPAD='YES' - ENDIF IF (ALLOCATED(TPFILE%CDIRNAME)) THEN IF(LEN_TRIM(TPFILE%CDIRNAME)>0) THEN @@ -323,64 +284,60 @@ CONTAINS IF (TPFILE%LMASTER) THEN !! I/O processor case !JUAN : 31/03/2000 modif pour acces direct - IF (YACCESS=='STREAM') THEN + IF (TPFILE%CACCESS=='STREAM') THEN OPEN(NEWUNIT=TPFILE%NLU, & FILE=TRIM(YPREFILENAME),& STATUS=YSTATUS, & - ACCESS=YACCESS, & + ACCESS=TPFILE%CACCESS, & IOSTAT=IOS, & IOMSG=YIOERRMSG, & - FORM=YFORM, & + FORM=TPFILE%CFORM, & ACTION=YACTION) - ELSEIF (YACCESS=='DIRECT') THEN + ELSEIF (TPFILE%CACCESS=='DIRECT') THEN OPEN(NEWUNIT=TPFILE%NLU, & FILE=TRIM(YPREFILENAME),& STATUS=YSTATUS, & - ACCESS=YACCESS, & + ACCESS=TPFILE%CACCESS, & IOSTAT=IOS, & IOMSG=YIOERRMSG, & - FORM=YFORM, & + FORM=TPFILE%CFORM, & RECL=YRECL, & ACTION=YACTION) ELSE - IF (YFORM=="FORMATTED") THEN + IF (TPFILE%CFORM=="FORMATTED") THEN IF (YACTION=='READ') THEN OPEN(NEWUNIT=TPFILE%NLU, & FILE=TRIM(YPREFILENAME),& STATUS=YSTATUS, & - ACCESS=YACCESS, & + ACCESS=TPFILE%CACCESS, & IOSTAT=IOS, & IOMSG=YIOERRMSG, & - FORM=YFORM, & + FORM=TPFILE%CFORM, & RECL=YRECL, & - BLANK=YBLANK, & POSITION=YPOSITION, & - ACTION=YACTION, & + ACTION=YACTION) !DELIM=YDELIM, & !Philippe: commented because bug with GCC 5.X - PAD=YPAD) ELSE OPEN(NEWUNIT=TPFILE%NLU, & FILE=TRIM(YPREFILENAME),& STATUS=YSTATUS, & - ACCESS=YACCESS, & + ACCESS=TPFILE%CACCESS, & IOSTAT=IOS, & IOMSG=YIOERRMSG, & - FORM=YFORM, & + FORM=TPFILE%CFORM, & RECL=YRECL, & - BLANK=YBLANK, & POSITION=YPOSITION, & ACTION=YACTION, & - DELIM=YDELIM, & - PAD=YPAD) + DELIM=YDELIM) ENDIF ELSE OPEN(NEWUNIT=TPFILE%NLU, & FILE=TRIM(YPREFILENAME),& STATUS=YSTATUS, & - ACCESS=YACCESS, & + ACCESS=TPFILE%CACCESS, & IOSTAT=IOS, & IOMSG=YIOERRMSG, & - FORM=YFORM, & + FORM=TPFILE%CFORM, & RECL=YRECL, & POSITION=YPOSITION, & ACTION=YACTION) @@ -401,14 +358,14 @@ CONTAINS TPFILE%LMULTIMASTERS = .TRUE. TPFILE%NSUBFILES_IOZ = 0 - IF (ACCESS=='DIRECT') THEN + IF (TPFILE%CACCESS=='DIRECT') THEN OPEN(NEWUNIT=TPFILE%NLU, & FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & STATUS=YSTATUS, & - ACCESS=YACCESS, & + ACCESS=TPFILE%CACCESS, & IOSTAT=IOS, & IOMSG=YIOERRMSG, & - FORM=YFORM, & + FORM=TPFILE%CFORM, & RECL=YRECL, & ACTION=YACTION) ELSE @@ -416,30 +373,26 @@ CONTAINS OPEN(NEWUNIT=TPFILE%NLU, & FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & STATUS=YSTATUS, & - ACCESS=YACCESS, & + ACCESS=TPFILE%CACCESS, & IOSTAT=IOS, & IOMSG=YIOERRMSG, & - FORM=YFORM, & + FORM=TPFILE%CFORM, & RECL=YRECL, & - BLANK=YBLANK, & POSITION=YPOSITION, & - ACTION=YACTION, & + ACTION=YACTION) !DELIM=YDELIM, & !Philippe: commented because bug with GCC 5.X - PAD=YPAD) ELSE OPEN(NEWUNIT=TPFILE%NLU, & FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & STATUS=YSTATUS, & - ACCESS=YACCESS, & + ACCESS=TPFILE%CACCESS, & IOSTAT=IOS, & IOMSG=YIOERRMSG, & - FORM=YFORM, & + FORM=TPFILE%CFORM, & RECL=YRECL, & - BLANK=YBLANK, & POSITION=YPOSITION, & ACTION=YACTION, & - DELIM=YDELIM, & - PAD=YPAD) + DELIM=YDELIM) ENDIF ENDIF @@ -447,19 +400,6 @@ CONTAINS - CASE('DISTRIBUTED') - TPFILE%NMASTER_RANK = ISIOP - TPFILE%LMASTER = (ISP == ISIOP) - TPFILE%LMULTIMASTERS = .FALSE. - TPFILE%NSUBFILES_IOZ = 0 - - IF (.NOT.TPFILE%LMASTER) THEN - !! NON I/O processors case - IOS = 0 - END IF - - - CASE('IO_ZSPLIT') TPFILE%NMASTER_RANK = ISIOP TPFILE%LMASTER = (ISP == ISIOP) @@ -518,7 +458,7 @@ CONTAINS TPFILE%TFILES_IOZ(IFILE)%TFILE => TZSPLITFILE !Done outside of the previous IF to prevent problems with .OUT files - TZSPLITFILE%NMPICOMM = ICOMM + TZSPLITFILE%NMPICOMM = NMNH_COMM_WORLD TZSPLITFILE%NMASTER_RANK = IRANK_PROCIO TZSPLITFILE%LMASTER = (ISP == IRANK_PROCIO) TZSPLITFILE%LMULTIMASTERS = .FALSE. @@ -559,7 +499,7 @@ CONTAINS END SELECT - TPFILE%NMPICOMM = ICOMM + TPFILE%NMPICOMM = NMNH_COMM_WORLD IOSTAT = IOS diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 index 8745773f0..fcaa58292 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 @@ -11,6 +11,8 @@ ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll ! to allow to disable writes (for bench purposes) +! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !----------------------------------------------------------------- MODULE MODE_IO_MANAGE_STRUCT ! @@ -642,7 +644,7 @@ CHARACTER(LEN=*), INTENT(IN) :: HNAME !Filename CHARACTER(LEN=*), INTENT(IN) :: HTYPE !Filetype (backup, output, prepidealcase...) CHARACTER(LEN=*), INTENT(IN) :: HMODE !Opening mode (read, write...) CHARACTER(LEN=*), OPTIONAL,INTENT(IN) :: HFORM !Formatted/unformatted -CHARACTER(LEN=*), OPTIONAL,INTENT(IN) :: HACCESS !Direct/sequential +CHARACTER(LEN=*), OPTIONAL,INTENT(IN) :: HACCESS !Direct/sequential/stream CHARACTER(LEN=*), OPTIONAL,INTENT(IN) :: HFORMAT !Fileformat (NETCDF4, LFI, LFICDF4...) CHARACTER(LEN=*), OPTIONAL,INTENT(IN) :: HDIRNAME !File directory INTEGER(KIND=LFI_INT), OPTIONAL,INTENT(IN) :: KLFINPRAR !Number of predicted articles of the LFI file (non crucial) @@ -713,8 +715,8 @@ IF( PRESENT(HACCESS) .AND. TRIM(HTYPE)/='SURFACE_DATA') & IF(.NOT.PRESENT(HACCESS) .AND. TRIM(HTYPE)=='SURFACE_DATA') & CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','optional argument HACCESS is necessary for '//TRIM(HTYPE)//' files') IF(PRESENT(HACCESS)) THEN - IF(HACCESS/='DIRECT' .AND. HACCESS/='SEQUENTIAL') & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','HACCESS should be DIRECT or SEQUENTIAL and not '//TRIM(HACCESS)) + IF(HACCESS/='DIRECT' .AND. HACCESS/='SEQUENTIAL' .AND. HACCESS/='STREAM') & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','HACCESS should be DIRECT, SEQUENTIAL or STREAM and not '//TRIM(HACCESS)) END IF ! IF (PRESENT(HFORMAT)) THEN @@ -785,6 +787,8 @@ SELECT CASE(TPFILE%CTYPE) CASE('CHEMINPUT') IF (TRIM(HMODE)/='READ') & !Invalid because not (yet) necessary CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + TPFILE%CACCESS = 'SEQUENTIAL' + TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' @@ -792,12 +796,17 @@ SELECT CASE(TPFILE%CTYPE) CASE('CHEMTAB') IF (TRIM(HMODE)/='READ') & !Invalid because not (yet) necessary CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + TPFILE%CACCESS = 'SEQUENTIAL' + TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' !DES files CASE('DES') + TPFILE%CACCESS = 'SEQUENTIAL' + TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' + TPFILE%NRECL = 8*1024 IF (.NOT.PRESENT(TPDATAFILE)) THEN CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','missing TPDATAFILE argument for DES file '//TRIM(HNAME)) ELSE @@ -815,6 +824,8 @@ SELECT CASE(TPFILE%CTYPE) CASE('GPS') IF (TRIM(HMODE)/='WRITE') & !Invalid because not (yet) necessary CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + TPFILE%CACCESS = 'SEQUENTIAL' + TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' @@ -822,13 +833,18 @@ SELECT CASE(TPFILE%CTYPE) CASE('METEO') IF (TRIM(HMODE)/='WRITE') & !Invalid because not (yet) necessary CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + TPFILE%CACCESS = 'SEQUENTIAL' + TPFILE%CFORM = 'UNFORMATTED' TPFILE%CFORMAT = 'BINARY' + TPFILE%NRECL = 100000000 !Namelist files CASE('NML') IF (TRIM(HMODE)/='READ') & !Invalid because not (yet) necessary CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + TPFILE%CACCESS = 'SEQUENTIAL' + TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' @@ -836,6 +852,8 @@ SELECT CASE(TPFILE%CTYPE) CASE('OUTPUTLISTING') IF (TRIM(HMODE)/='WRITE') & !Invalid because not (yet) necessary CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + TPFILE%CACCESS = 'SEQUENTIAL' + TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' @@ -846,11 +864,13 @@ SELECT CASE(TPFILE%CTYPE) TPFILE%CFORMAT = 'SURFACE_DATA' TPFILE%CFORM = HFORM TPFILE%CACCESS = HACCESS - IF(TRIM(HACCESS)=='DIRECT') TPFILE%NRECL = KRECL + IF(TRIM(HACCESS)=='DIRECT') TPFILE%NRECL = KRECL !Text files CASE('TXT') + TPFILE%CACCESS = 'SEQUENTIAL' + TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' IF(PRESENT(KRECL)) TPFILE%NRECL = KRECL -- GitLab From a283513093387aa4f6b61120f3d128b03a3daf79 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 7 Feb 2019 13:40:26 +0100 Subject: [PATCH 031/139] Philippe 07/02/2019: IO: force TYPE to a known value for IO_FILE_ADD2LIST --- LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 | 15 ++++++----- src/LIB/SURCOUCHE/src/modd_io.f90 | 3 ++- src/LIB/SURCOUCHE/src/mode_fm.f90 | 2 +- .../SURCOUCHE/src/mode_io_manage_struct.f90 | 26 ++++++++++++------- src/MNH/compare_dad.f90 | 7 ++--- src/MNH/compute_r00.f90 | 7 ++--- src/MNH/diag.f90 | 9 ++++--- src/MNH/ini_cpl.f90 | 7 ++--- src/MNH/ini_modeln.f90 | 11 ++++---- src/MNH/ini_prog_var.f90 | 7 ++--- src/MNH/ini_segn.f90 | 9 ++++--- src/MNH/ini_size_spawn.f90 | 5 ++-- src/MNH/latlon_to_xy.f90 | 7 ++--- src/MNH/mnh2lpdm.f90 | 9 ++++--- src/MNH/mnhopen_aux_io_surf.f90 | 9 ++++--- src/MNH/open_nestpgd_files.f90 | 11 ++++---- src/MNH/open_prc_files.f90 | 3 ++- src/MNH/prep_ideal_case.f90 | 11 ++++---- src/MNH/prep_nest_pgd.f90 | 11 ++++---- src/MNH/prep_pgd.f90 | 9 ++++--- src/MNH/prep_real_case.f90 | 7 ++--- src/MNH/prep_surfex.f90 | 7 ++--- src/MNH/spawn_model2.f90 | 9 ++++--- src/MNH/xy_to_latlon.f90 | 7 ++--- src/MNH/zoom_pgd.f90 | 9 ++++--- 25 files changed, 124 insertions(+), 93 deletions(-) diff --git a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 index 0f55191e7..7fe27b75a 100644 --- a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 +++ b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 @@ -3,6 +3,9 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- +! Modifications: +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +!----------------------------------------------------------------- MODULE mode_util USE MODD_IO_ll, ONLY: TFILE_ELT USE MODD_NETCDF, ONLY: DIMCDF, IDCDF_KIND @@ -977,7 +980,7 @@ END DO ! ! NetCDF ! - CALL IO_FILE_ADD2LIST(INFILES(1)%TFILE,HINFILE,'UNKNOWN','READ',HFORMAT='NETCDF4') + CALL IO_FILE_ADD2LIST(INFILES(1)%TFILE,HINFILE,'MNH','READ',HFORMAT='NETCDF4') CALL IO_FILE_OPEN_ll(INFILES(1)%TFILE) nbvar_infile = INFILES(1)%TFILE%NNCNAR @@ -985,7 +988,7 @@ END DO ! ! LFI ! - CALL IO_FILE_ADD2LIST(INFILES(1)%TFILE,HINFILE,'UNKNOWN','READ', & + CALL IO_FILE_ADD2LIST(INFILES(1)%TFILE,HINFILE,'MNH','READ', & HFORMAT='LFI',KLFIVERB=0) CALL IO_FILE_OPEN_ll(INFILES(1)%TFILE) @@ -1056,7 +1059,7 @@ END DO KNFILES_OUT = KNFILES_OUT + 1 idx = KNFILES_OUT - CALL IO_FILE_ADD2LIST(outfiles(idx)%TFILE,HOUTFILE,'UNKNOWN','WRITE', & + CALL IO_FILE_ADD2LIST(outfiles(idx)%TFILE,HOUTFILE,'MNH','WRITE', & HFORMAT='NETCDF4',OOLD=.TRUE.) CALL IO_FILE_OPEN_ll(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) @@ -1078,7 +1081,7 @@ END DO ! KNFILES_OUT = KNFILES_OUT + 1 idx = KNFILES_OUT - CALL IO_FILE_ADD2LIST(outfiles(idx)%TFILE,houtfile,'UNKNOWN','WRITE', & + CALL IO_FILE_ADD2LIST(outfiles(idx)%TFILE,houtfile,'MNH','WRITE', & HFORMAT='LFI',KLFIVERB=0,OOLD=.TRUE.) LIOCDF4 = .FALSE. !Necessary to open correctly the LFI file CALL IO_FILE_OPEN_ll(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) @@ -1090,7 +1093,7 @@ END DO KNFILES_OUT = KNFILES_OUT + 1 idx = KNFILES_OUT - CALL IO_FILE_ADD2LIST(outfiles(idx)%TFILE,'dummy_file','UNKNOWN','WRITE', & + CALL IO_FILE_ADD2LIST(outfiles(idx)%TFILE,'dummy_file','MNH','WRITE', & HFORMAT='NETCDF4',OOLD=.TRUE.) CALL IO_FILE_OPEN_ll(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) END IF @@ -1145,7 +1148,7 @@ END DO DO ji = 1,nbvar filename = trim(houtfile)//'.'//TRIM(YVARS(ji)) - CALL IO_FILE_ADD2LIST(outfiles(ji)%TFILE,filename,'UNKNOWN','WRITE', & + CALL IO_FILE_ADD2LIST(outfiles(ji)%TFILE,filename,'MNH','WRITE', & HFORMAT='NETCDF4') CALL IO_FILE_OPEN_ll(outfiles(ji)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90 index 48a8f51fb..f21469986 100644 --- a/src/LIB/SURCOUCHE/src/modd_io.f90 +++ b/src/LIB/SURCOUCHE/src/modd_io.f90 @@ -7,6 +7,7 @@ ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN (removed ISTDOUT, ISTDERR, added NNULLUNIT, CNULLFILE) ! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll to allow to disable writes (for bench purposes) +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !----------------------------------------------------------------- MODULE MODD_IO_ll @@ -70,7 +71,7 @@ END TYPE TOUTBAK TYPE TFILEDATA CHARACTER(LEN=NFILENAMELGTMAX) :: CNAME = '' !Filename CHARACTER(LEN=:),ALLOCATABLE :: CDIRNAME !Directory name - CHARACTER(LEN=13) :: CTYPE = "UNKNOWN" !Filetype (backup, output, prepidealcase...) + CHARACTER(LEN=13) :: CTYPE = "UNKNOWN" !Filetype (PGD, MNH, DES, NML...) CHARACTER(LEN=7) :: CFORMAT = "UNKNOWN" !Fileformat (NETCDF4, LFI, LFICDF4...) CHARACTER(LEN=7) :: CMODE = "UNKNOWN" !Opening mode (read, write...) LOGICAL :: LOPENED = .FALSE. !Is the file opened diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index f8d071b9f..7c51d0a53 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -137,7 +137,7 @@ SELECT CASE(TPFILE%CTYPE) CASE DEFAULT !Do not open '.des' file if OUTPUT - IF(TPFILE%CTYPE/='OUTPUT' .AND. CPROGRAM/='LFICDF') THEN + IF(TPFILE%CTYPE/='MNHOUTPUT' .AND. CPROGRAM/='LFICDF') THEN CALL IO_FILE_ADD2LIST(TZFILE_DES,TRIM(TPFILE%CNAME)//'.des','DES',TPFILE%CMODE,TPDATAFILE=TPFILE,OOLD=.TRUE.) !OOLD=T because the file may already be in the list CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_OPEN_ll','OPEN_ll for '//TRIM(TPFILE%CNAME)//'.des') CALL OPEN_ll(TZFILE_DES,IOSTAT=IRESP,DELIM='QUOTE',OPARALLELIO=OPARALLELIO) diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 index fcaa58292..fc9a50c92 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 @@ -197,8 +197,8 @@ DO IMI = 1, NMODEL ALLOCATE(OUT_MODEL(IMI)%TBACKUPN(IBAK_NUMB)) ALLOCATE(OUT_MODEL(IMI)%TOUTPUTN(IOUT_NUMB)) ! - CALL POPULATE_STRUCT(TFILE_FIRST,TFILE_LAST,IBAK_STEP,"BACKUP",OUT_MODEL(IMI)%TBACKUPN) - CALL POPULATE_STRUCT(TFILE_FIRST,TFILE_LAST,IOUT_STEP,"OUTPUT",OUT_MODEL(IMI)%TOUTPUTN) + CALL POPULATE_STRUCT(TFILE_FIRST,TFILE_LAST,IBAK_STEP,"MNHBACKUP",OUT_MODEL(IMI)%TBACKUPN) + CALL POPULATE_STRUCT(TFILE_FIRST,TFILE_LAST,IOUT_STEP,"MNHOUTPUT",OUT_MODEL(IMI)%TOUTPUTN) ! !* Find dad output number ! @@ -531,7 +531,7 @@ SUBROUTINE POPULATE_STRUCT(TPFILE_FIRST,TPFILE_LAST,KSTEPS,HFILETYPE,TPBAKOUTN) TPBAKOUTN(IPOS)%TFILE%CTYPE=HFILETYPE TPBAKOUTN(IPOS)%TFILE%CMODE="WRITE" WRITE (YNUMBER,FMT="(I3.3)") IPOS - IF (TRIM(HFILETYPE)=='OUTPUT') THEN + IF (TRIM(HFILETYPE)=='MNHOUTPUT') THEN ! Add a "OUT" suffix for output files TPBAKOUTN(IPOS)%TFILE%CNAME=ADJUSTL(ADJUSTR(IO_SURF_MNH_MODEL(IMI)%COUTFILE)//'.OUT.'//YNUMBER) !Reduce the float precision if asked @@ -549,7 +549,7 @@ SUBROUTINE POPULATE_STRUCT(TPFILE_FIRST,TPFILE_LAST,KSTEPS,HFILETYPE,TPBAKOUTN) ELSE IF (LEN_TRIM(CIO_DIR)>0) THEN TPBAKOUTN(IPOS)%TFILE%CDIRNAME=TRIM(CIO_DIR) END IF - ELSE IF (TRIM(HFILETYPE)=='BACKUP') THEN + ELSE IF (TRIM(HFILETYPE)=='MNHBACKUP') THEN TPBAKOUTN(IPOS)%TFILE%CNAME=ADJUSTL(ADJUSTR(IO_SURF_MNH_MODEL(IMI)%COUTFILE)//'.'//YNUMBER) IF (LEN_TRIM(CBAK_DIR)>0) THEN TPBAKOUTN(IPOS)%TFILE%CDIRNAME=TRIM(CBAK_DIR) @@ -559,7 +559,7 @@ SUBROUTINE POPULATE_STRUCT(TPFILE_FIRST,TPFILE_LAST,KSTEPS,HFILETYPE,TPBAKOUTN) ELSE CALL PRINT_MSG(NVERB_FATAL,'IO','POPULATE_STRUCT','unknown filetype ('//TRIM(HFILETYPE)//')') ENDIF - TPBAKOUTN(IPOS)%TFILE%NLFITYPE=1 !1: to be transfered + TPBAKOUTN(IPOS)%TFILE%NLFITYPE=1 !1: to be transferred !PW: TODO: set NLFIVERB only when useful (only if LFI file...) TPBAKOUTN(IPOS)%TFILE%NLFIVERB=NVERB IF (LIOCDF4) THEN @@ -567,11 +567,11 @@ SUBROUTINE POPULATE_STRUCT(TPFILE_FIRST,TPFILE_LAST,KSTEPS,HFILETYPE,TPBAKOUTN) TPBAKOUTN(IPOS)%TFILE%CFORMAT='NETCDF4' ELSE TPBAKOUTN(IPOS)%TFILE%CFORMAT='LFICDF4' - IF (TRIM(HFILETYPE)=='BACKUP') TPBAKOUTN(IPOS)%TFILE%NLFINPRAR= 22+2*(4+NRR+NSV) + IF (TRIM(HFILETYPE)=='MNHBACKUP') TPBAKOUTN(IPOS)%TFILE%NLFINPRAR= 22+2*(4+NRR+NSV) END IF ELSE IF (LLFIOUT) THEN TPBAKOUTN(IPOS)%TFILE%CFORMAT='LFI' - IF (TRIM(HFILETYPE)=='BACKUP') TPBAKOUTN(IPOS)%TFILE%NLFINPRAR= 22+2*(4+NRR+NSV) + IF (TRIM(HFILETYPE)=='MNHBACKUP') TPBAKOUTN(IPOS)%TFILE%NLFINPRAR= 22+2*(4+NRR+NSV) ELSE CALL PRINT_MSG(NVERB_FATAL,'IO','POPULATE_STRUCT','unknown backup/output fileformat') ENDIF @@ -594,7 +594,7 @@ SUBROUTINE POPULATE_STRUCT(TPFILE_FIRST,TPFILE_LAST,KSTEPS,HFILETYPE,TPBAKOUTN) TPBAKOUTN(IPOS)%TFILE%TFILES_IOZ(JI)%TFILE%CNAME = TRIM(TPBAKOUTN(IPOS)%TFILE%CNAME)//'.Z'//YNUMBER IF(ALLOCATED(TPBAKOUTN(IPOS)%TFILE%CDIRNAME)) & TPBAKOUTN(IPOS)%TFILE%TFILES_IOZ(JI)%TFILE%CDIRNAME = TRIM(TPBAKOUTN(IPOS)%TFILE%CDIRNAME) - IF (TRIM(HFILETYPE)=='OUTPUT') THEN + IF (TRIM(HFILETYPE)=='MNHOUTPUT') THEN !Reduce the float precision if asked TPBAKOUTN(IPOS)%TFILE%TFILES_IOZ(JI)%TFILE%LNCREDUCE_FLOAT_PRECISION = LOUT_REDUCE_FLOAT_PRECISION(IMI) !Set compression if asked @@ -605,7 +605,7 @@ SUBROUTINE POPULATE_STRUCT(TPFILE_FIRST,TPFILE_LAST,KSTEPS,HFILETYPE,TPBAKOUTN) END IF TPBAKOUTN(IPOS)%TFILE%TFILES_IOZ(JI)%TFILE%NNCCOMPRESS_LEVEL = NOUT_COMPRESS_LEVEL(IMI) END IF - TPBAKOUTN(IPOS)%TFILE%TFILES_IOZ(JI)%TFILE%NLFITYPE=1 !1: to be transfered + TPBAKOUTN(IPOS)%TFILE%TFILES_IOZ(JI)%TFILE%NLFITYPE=1 !1: to be transferred !PW: TODO: set NLFIVERB only when useful (only if LFI file...) TPBAKOUTN(IPOS)%TFILE%TFILES_IOZ(JI)%TFILE%NLFIVERB=NVERB IF (LIOCDF4) THEN @@ -875,7 +875,9 @@ SELECT CASE(TPFILE%CTYPE) IF(PRESENT(KRECL)) TPFILE%NRECL = KRECL - CASE DEFAULT + !MesoNH files + !Remark: 'MNH' is more general than MNHBACKUP and could be in fact a MNHBACKUP file + CASE ('MNH', 'MNHBACKUP', 'MNHDIACHRONIC', 'MNHDIAG', 'MNHOUTPUT', 'PGD') IF (TRIM(HMODE)=='READ') THEN IF (PRESENT(HFORMAT)) THEN TPFILE%CFORMAT = TRIM(HFORMAT) @@ -919,6 +921,10 @@ SELECT CASE(TPFILE%CTYPE) ELSE TPFILE%TDADFILE => NULL() END IF + + + CASE default + call print_msg(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','invalid type '//trim(tpfile%ctype)//' for file '//trim(hname)) END SELECT ! IF(PRESENT(KMODEL)) TPFILE%NMODEL = KMODEL diff --git a/src/MNH/compare_dad.f90 b/src/MNH/compare_dad.f90 index 5446348ef..8c2662bb7 100644 --- a/src/MNH/compare_dad.f90 +++ b/src/MNH/compare_dad.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -58,6 +58,7 @@ END MODULE MODI_COMPARE_DAD !! !! Original O8/04/04 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -136,7 +137,7 @@ ZLATORI_2=0. !* 2. Read DAD of initial file ! ------------------------ ! -CALL IO_FILE_ADD2LIST(TZDADINIFILE,TRIM(HDADINIFILE),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB) +CALL IO_FILE_ADD2LIST(TZDADINIFILE,TRIM(HDADINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) CALL IO_FILE_OPEN_ll(TZDADINIFILE) ! CALL IO_READ_FIELD(TZDADINIFILE,'IMAX',IIMAX_1) @@ -192,7 +193,7 @@ CALL IO_FILE_CLOSE_ll(TZDADINIFILE) !* 3. Read DAD of spawning file ! ------------------------ ! -CALL IO_FILE_ADD2LIST(TZDADSPAFILE,TRIM(HDADSPAFILE),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB) +CALL IO_FILE_ADD2LIST(TZDADSPAFILE,TRIM(HDADSPAFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) CALL IO_FILE_OPEN_ll(TZDADSPAFILE) ! CALL IO_READ_FIELD(TZDADSPAFILE,'IMAX',IIMAX_2) diff --git a/src/MNH/compute_r00.f90 b/src/MNH/compute_r00.f90 index 81249e665..2c76d7f39 100644 --- a/src/MNH/compute_r00.f90 +++ b/src/MNH/compute_r00.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################### @@ -56,6 +56,7 @@ END MODULE MODI_COMPUTE_R00 !! change of YCOMMENT !! Mai 2016 (G.Delautier) replace LG?M by LG?T !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -238,7 +239,7 @@ END IF ! is performed DO JFILECUR=1,NFILES ! - CALL IO_FILE_ADD2LIST(TZTRACFILE,CFILES(NBRFILES(JFILECUR)),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_FILE_ADD2LIST(TZTRACFILE,CFILES(NBRFILES(JFILECUR)),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) CALL IO_FILE_OPEN_ll(TZTRACFILE) ! !* 4.1 check if this file is a start instant diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90 index 35bf35b9a..f05ff2240 100644 --- a/src/MNH/diag.f90 +++ b/src/MNH/diag.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1999-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############ @@ -88,6 +88,7 @@ !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! V.Vionnet 07/2017 add LWIND_CONTRAV !! 11/2017 (D. Ricard, P. Marquet) add diagnostics for THETAS +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -458,7 +459,7 @@ ENDIF ! INPRAR = 24 +2*(4+NRR+NSV) ! -CALL IO_FILE_ADD2LIST(TOUTDATAFILE,TRIM(CINIFILE)//YSUFFIX,'DIAG','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) +CALL IO_FILE_ADD2LIST(TOUTDATAFILE,TRIM(CINIFILE)//YSUFFIX,'MNHDIAG','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) ! CALL SECOND_MNH2(ZTIME2) ZSTART=ZTIME2-ZTIME1 @@ -521,7 +522,7 @@ ZTIME1=ZTIME2 ! IF ( LAIRCRAFT_BALLOON ) THEN ! - CALL IO_FILE_ADD2LIST(TZDIACFILE,TRIM(CINIFILE)//'BAL','DIACHRONIC','WRITE', & + CALL IO_FILE_ADD2LIST(TZDIACFILE,TRIM(CINIFILE)//'BAL','MNHDIACHRONIC','WRITE', & HDIRNAME=CIO_DIR,KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) ! CALL IO_FILE_OPEN_ll(TZDIACFILE) diff --git a/src/MNH/ini_cpl.f90 b/src/MNH/ini_cpl.f90 index 5f7909787..a53e37642 100644 --- a/src/MNH/ini_cpl.f90 +++ b/src/MNH/ini_cpl.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -209,6 +209,7 @@ END MODULE MODI_INI_CPL !! (J.Escobar) 26/03/2014 bug in init of NSV_USER on RESTA case !! (P.Wautelet)28/03/2018 replace TEMPORAL_DIST by DATETIME_DISTANCE !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -343,7 +344,7 @@ ILUOUT = TLUOUT%NLU ! DO JCI=1,NCPL_NBR WRITE(YCI,'(I2.0)') JCI - CALL IO_FILE_ADD2LIST(TCPLFILE(JCI)%TZFILE,CCPLFILE(JCI),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_FILE_ADD2LIST(TCPLFILE(JCI)%TZFILE,CCPLFILE(JCI),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) CALL IO_FILE_OPEN_ll(TCPLFILE(JCI)%TZFILE,KRESP=IRESP) IF (IRESP /= 0) THEN CALL PRINT_MSG(NVERB_FATAL,'IO','INI_CPL','problem when opening coupling file '//TRIM(YCI)) diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index 1bbb5cf60..efe5d36da 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -279,6 +279,7 @@ END MODULE MODI_INI_MODEL_n !! V. Vionnet : 18/07/2017 : add blowing snow scheme !! 01/18 J.Colin Add DRAG !! P.Wautelet 29/01/2019: bug: add missing zero-size allocations +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -1663,7 +1664,7 @@ IF (KMI == 1) THEN DO IMI = 1 , NMODEL WRITE(IO_SURF_MNH_MODEL(IMI)%COUTFILE,'(A,".",I1,".",A)') CEXP,IMI,TRIM(ADJUSTL(CSEG)) WRITE(YNAME, '(A,".",I1,".",A)') CEXP,IMI,TRIM(ADJUSTL(CSEG))//'.000' - CALL IO_FILE_ADD2LIST(LUNIT_MODEL(IMI)%TDIAFILE,YNAME,'DIACHRONIC','WRITE', & + CALL IO_FILE_ADD2LIST(LUNIT_MODEL(IMI)%TDIAFILE,YNAME,'MNHDIACHRONIC','WRITE', & HDIRNAME=CIO_DIR, & KLFINPRAR=INT(50,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=NVERB, & TPDADFILE=LUNIT_MODEL(NDAD(IMI))%TDIAFILE ) @@ -2140,8 +2141,8 @@ END IF IF (CSURF=='EXTE' .AND. (CPROGRAM=='MESONH' .OR. CPROGRAM=='DIAG ')) THEN ! ouverture du fichier PGD IF ( LEN_TRIM(CINIFILEPGD) > 0 ) THEN - CALL IO_FILE_ADD2LIST(TINIFILEPGD,TRIM(CINIFILEPGD),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TINIFILEPGD,OPARALLELIO=.FALSE.,KRESP=IRESP) + CALL IO_FILE_ADD2LIST(TINIFILEPGD,TRIM(CINIFILEPGD),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_FILE_OPEN_ll(TINIFILEPGD,KRESP=IRESP) LUNIT_MODEL(KMI)%TINIFILEPGD => TINIFILEPGD IF (IRESP/=0) THEN WRITE(ILUOUT,FMT=*) "INI_MODEL_n ERROR TO OPEN THE FILE CINIFILEPGD=",CINIFILEPGD @@ -2183,8 +2184,8 @@ ELSE END IF IF (CSURF=='EXTE' .AND. (CPROGRAM=='SPAWN ')) THEN ! ouverture du fichier PGD - CALL IO_FILE_ADD2LIST(TINIFILEPGD,TRIM(CINIFILEPGD),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TINIFILEPGD,OPARALLELIO=.FALSE.,KRESP=IRESP) + CALL IO_FILE_ADD2LIST(TINIFILEPGD,TRIM(CINIFILEPGD),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_FILE_OPEN_ll(TINIFILEPGD,KRESP=IRESP) LUNIT_MODEL(KMI)%TINIFILEPGD => TINIFILEPGD IF (IRESP/=0) THEN WRITE(ILUOUT,FMT=*) "INI_MODEL_n ERROR TO OPEN THE FILE CINIFILEPGD=",CINIFILEPGD diff --git a/src/MNH/ini_prog_var.f90 b/src/MNH/ini_prog_var.f90 index 182752bc2..30d9a922a 100644 --- a/src/MNH/ini_prog_var.f90 +++ b/src/MNH/ini_prog_var.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################## @@ -94,6 +94,7 @@ END MODULE MODI_INI_PROG_VAR !! Mai 2017 (M. Leriche) read aerosol namelists before call ini_nsv !! Mai 2017 (M. Leriche) Get wet dep. sv in Meso-NH init file !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -216,7 +217,7 @@ ALLOCATE(XSVT(0,0,0,0)) IF(PRESENT(HCHEMFILE)) THEN WRITE(ILUOUT,*) 'Routine INI_PROG_VAR: CHEMical species read in ',TRIM(HCHEMFILE) ! Read dimensions in chem file and checks with output file - CALL IO_FILE_ADD2LIST(TZCHEMFILE,TRIM(HCHEMFILE),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_FILE_ADD2LIST(TZCHEMFILE,TRIM(HCHEMFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) CALL IO_FILE_OPEN_ll(TZCHEMFILE) ! ILUDES = TZCHEMFILE%TDESFILE%NLU diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90 index a41ba0c46..ba3fb3458 100644 --- a/src/MNH/ini_segn.f90 +++ b/src/MNH/ini_segn.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -163,6 +163,7 @@ END MODULE MODI_INI_SEG_n !! 04/2016 add ABORT if CINIFILEPGD is not specified (G.Delautier) !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! 07/2017 add GBLOWSNOW (V. Vionnet) +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -282,7 +283,7 @@ IF (CPROGRAM=='MESONH') THEN ELSE IF (CPROGRAM=='SPAWN ' .OR. CPROGRAM=='REAL '.OR. CPROGRAM=='SPEC ') THEN YINIFILE = CINIFILE_n HINIFILEPGD = CINIFILEPGD_n - CALL IO_FILE_ADD2LIST(TPINIFILE,TRIM(YINIFILE),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_FILE_ADD2LIST(TPINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) CALL IO_FILE_OPEN_ll(TPINIFILE) TZFILE_DES => TPINIFILE%TDESFILE ! @@ -291,7 +292,7 @@ ELSE IF (CPROGRAM=='SPAWN ' .OR. CPROGRAM=='REAL '.OR. CPROGRAM=='SPEC ') THEN ELSE IF (CPROGRAM=='DIAG ') THEN YINIFILE = CINIFILE_n HINIFILEPGD = CINIFILEPGD_n - CALL IO_FILE_ADD2LIST(TINIFILE_n,TRIM(YINIFILE),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_FILE_ADD2LIST(TINIFILE_n,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) CALL IO_FILE_OPEN_ll(TINIFILE_n) TPINIFILE => TINIFILE_n TZFILE_DES => TPINIFILE%TDESFILE @@ -340,7 +341,7 @@ IF (CPROGRAM=='MESONH') THEN HINIFILEPGD=CINIFILEPGD_n YINIFILE=CINIFILE_n - CALL IO_FILE_ADD2LIST(TPINIFILE,TRIM(YINIFILE),'PREPIDEALCASE','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_FILE_ADD2LIST(TPINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) TINIFILE_n => TPINIFILE !Necessary because TINIFILE was initially pointing to NULL CALL IO_FILE_OPEN_ll(TPINIFILE) END IF diff --git a/src/MNH/ini_size_spawn.f90 b/src/MNH/ini_size_spawn.f90 index ad4c604b0..d6881971c 100644 --- a/src/MNH/ini_size_spawn.f90 +++ b/src/MNH/ini_size_spawn.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1999-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -67,6 +67,7 @@ END MODULE MODI_INI_SIZE_SPAWN !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -224,7 +225,7 @@ IF (LEN_TRIM(CDOMAIN)>0) THEN ! initialize grid2 dims, xor, xend and ratio so to initialize in INI_CHILD ! structures TCRRT_COMDATA%T_CHILDREN%T_SPLITB and TCRRT_PROCONF%T_CHILDREN !$20140602 add condition on npproc - CALL IO_FILE_ADD2LIST(TZDOMAIN,TRIM(CDOMAIN),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_FILE_ADD2LIST(TZDOMAIN,TRIM(CDOMAIN),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) CALL IO_FILE_OPEN_ll(TZDOMAIN,OPARALLELIO=.FALSE.) ! CALL IO_READ_FIELD(TZDOMAIN,'DXRATIO',NDXRATIO) diff --git a/src/MNH/latlon_to_xy.f90 b/src/MNH/latlon_to_xy.f90 index eea3c591e..c79760c69 100644 --- a/src/MNH/latlon_to_xy.f90 +++ b/src/MNH/latlon_to_xy.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -55,6 +55,7 @@ !! no transfer of the file when closing Dec. 09, 1996 (V.Masson) !! + changes call to READ_HGRID !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !---------------------------------------------------------------------------- ! !* 0. DECLARATION @@ -132,7 +133,7 @@ CALL IO_FILE_CLOSE_ll(TZNMLFILE) !* 1. Opening of MESONH file ! ---------------------- ! -CALL IO_FILE_ADD2LIST(TZINIFILE,TRIM(YINIFILE),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=2) +CALL IO_FILE_ADD2LIST(TZINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=2) CALL IO_FILE_OPEN_ll(TZINIFILE) ! !* 2. Reading of MESONH file diff --git a/src/MNH/mnh2lpdm.f90 b/src/MNH/mnh2lpdm.f90 index 0392d5c3b..77ff393c7 100644 --- a/src/MNH/mnh2lpdm.f90 +++ b/src/MNH/mnh2lpdm.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2002-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ######spl PROGRAM MNH2LPDM @@ -13,6 +13,7 @@ ! Modification : 07.01.2006 (T.LAUVAUX, adaptation LPDM) ! Modification : 04.01.2009 (F. BONNARDOT, DP/SER/ENV ) ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST ! !----------------------------------------------------------------------------- ! @@ -107,10 +108,10 @@ CALL IO_FILE_CLOSE_ll(TZNMLFILE) ! IF (LEN_TRIM(CFMNH(1))>0) THEN NBMNH=1 - CALL IO_FILE_ADD2LIST(TZFMNH(1)%TZFILE,TRIM(CFMNH(1)),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=IVERB) + CALL IO_FILE_ADD2LIST(TZFMNH(1)%TZFILE,TRIM(CFMNH(1)),'MNH','READ',KLFITYPE=2,KLFIVERB=IVERB) DO WHILE (CFMNH(NBMNH+1).NE.'VIDE') NBMNH=NBMNH+1 - CALL IO_FILE_ADD2LIST(TZFMNH(NBMNH)%TZFILE,TRIM(CFMNH(NBMNH)),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=IVERB) + CALL IO_FILE_ADD2LIST(TZFMNH(NBMNH)%TZFILE,TRIM(CFMNH(NBMNH)),'MNH','READ',KLFITYPE=2,KLFIVERB=IVERB) END DO print *,NBMNH,' fichiers a traiter.' ELSE diff --git a/src/MNH/mnhopen_aux_io_surf.f90 b/src/MNH/mnhopen_aux_io_surf.f90 index 5e6e4e954..bd94f0332 100644 --- a/src/MNH/mnhopen_aux_io_surf.f90 +++ b/src/MNH/mnhopen_aux_io_surf.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ######################### MODULE MODI_MNHOPEN_AUX_IO_SURF @@ -42,7 +42,7 @@ END MODULE MODI_MNHOPEN_AUX_IO_SURF !! !! AUTHOR !! ------ -!! S.Malardel *Meteo France* +!! S.Malardel *Meteo France* !! !! MODIFICATIONS !! ------------- @@ -52,6 +52,7 @@ END MODULE MODI_MNHOPEN_AUX_IO_SURF !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! J.Escobar : 02/06/2016 : abort MNHOPEN with STOP if problem with OPEN of INPUT/READ file !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -137,7 +138,7 @@ ELSE END IF ! IF (HFILE/=YFILE .AND. HFILE/=YPGDFILE) THEN - CALL IO_FILE_ADD2LIST(TPINFILE,TRIM(HFILE),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=5,OOLD=.TRUE.) + CALL IO_FILE_ADD2LIST(TPINFILE,TRIM(HFILE),'PGD','READ',KLFITYPE=2,KLFIVERB=5,OOLD=.TRUE.) CALL IO_FILE_OPEN_ll(TPINFILE,KRESP=IRESP,OPARALLELIO=.FALSE.) ! IF (IRESP .NE. 0) THEN diff --git a/src/MNH/open_nestpgd_files.f90 b/src/MNH/open_nestpgd_files.f90 index 9147b1635..de2efc608 100644 --- a/src/MNH/open_nestpgd_files.f90 +++ b/src/MNH/open_nestpgd_files.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !############################# @@ -67,6 +67,7 @@ END MODULE MODI_OPEN_NESTPGD_FILES !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -302,15 +303,15 @@ ALLOCATE(TPFILEPGD (NMODEL)) ALLOCATE(TPFILENESTPGD(NMODEL)) ! DO JPGD=1,NMODEL - CALL IO_FILE_ADD2LIST(TPFILEPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD)),'PREPPGD','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_FILE_ADD2LIST(TPFILEPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD)),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) ! IF (NDAD(JPGD)>=1) THEN TZDADFILE => TPFILENESTPGD(NDAD(JPGD))%TZFILE - CALL IO_FILE_ADD2LIST(TPFILENESTPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD))//'.nest'//ADJUSTL(YNEST),'PREPNESTPGD', & + CALL IO_FILE_ADD2LIST(TPFILENESTPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD))//'.nest'//ADJUSTL(YNEST),'PGD', & 'WRITE',KLFITYPE=1,KLFIVERB=NVERB,KMODEL=JPGD,TPDADFILE=TZDADFILE) ELSE NULLIFY(TZDADFILE) - CALL IO_FILE_ADD2LIST(TPFILENESTPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD))//'.nest'//ADJUSTL(YNEST),'PREPNESTPGD', & + CALL IO_FILE_ADD2LIST(TPFILENESTPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD))//'.nest'//ADJUSTL(YNEST),'PGD', & 'WRITE',KLFITYPE=1,KLFIVERB=NVERB,KMODEL=JPGD) END IF END DO diff --git a/src/MNH/open_prc_files.f90 b/src/MNH/open_prc_files.f90 index 5e8436d87..b3cb79f98 100644 --- a/src/MNH/open_prc_files.f90 +++ b/src/MNH/open_prc_files.f90 @@ -91,6 +91,7 @@ END MODULE MODI_OPEN_PRC_FILES !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! P. Wautelet 01/02/2019 added missing initialization to NULL for files with OUT intent +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -269,7 +270,7 @@ ELSE ! ----------------------------------- ! TPPGDFILE => NULL() - CALL IO_FILE_ADD2LIST(TPPGDFILE,TRIM(HPGDFILE),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_FILE_ADD2LIST(TPPGDFILE,TRIM(HPGDFILE),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) CALL IO_FILE_OPEN_ll(TPPGDFILE,IRESP,OPARALLELIO=.FALSE.) IF (IRESP/=0) THEN !callabortstop diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index eb97a9091..d6f245f7b 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -311,6 +311,7 @@ !! P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define !! 01/2018 (G.Delautier) SURFEX 8.1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -710,7 +711,7 @@ CALL INI_FIELD_SCALARS() ! IF( LEN_TRIM(CPGD_FILE) /= 0 ) THEN ! open the PGD_FILE - CALL IO_FILE_ADD2LIST(TPGDFILE,TRIM(CPGD_FILE),'UNKNOWN','READ',KLFINPRAR=NNPRAR,KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_FILE_ADD2LIST(TPGDFILE,TRIM(CPGD_FILE),'PGD','READ',KLFINPRAR=NNPRAR,KLFITYPE=2,KLFIVERB=NVERB) CALL IO_FILE_OPEN_ll(TPGDFILE) ! read the grid in the PGD file @@ -1730,7 +1731,7 @@ NNPRAR = 22 + 2*(NRR+NSV) & ! 22 = number of grid variables + reference ! variables at time t and t-dt NTYPE=1 ! -CALL IO_FILE_ADD2LIST(TINIFILE,TRIM(CINIFILE),'PREPIDEALCASE','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB) +CALL IO_FILE_ADD2LIST(TINIFILE,TRIM(CINIFILE),'MNH','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB) ! CALL IO_FILE_OPEN_ll(TINIFILE) ! @@ -1770,7 +1771,7 @@ IF (CSURF =='EXTE') THEN TPGDFILE => TINIFILE CALL PGD_GRID_SURF_ATM(YSURF_CUR%UG, YSURF_CUR%U,YSURF_CUR%GCP,'MESONH',TINIFILE%CNAME,'MESONH',.TRUE.,HDIR='-') CALL PGD_SURF_ATM (YSURF_CUR,'MESONH',TINIFILE%CNAME,'MESONH',.TRUE.) - CALL IO_FILE_ADD2LIST(TINIFILEPGD,TRIM(CINIFILEPGD),'PREPIDEALCASE','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB) + CALL IO_FILE_ADD2LIST(TINIFILEPGD,TRIM(CINIFILEPGD),'PGD','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB) CALL IO_FILE_OPEN_ll (TINIFILEPGD) TPGDFILE => TINIFILEPGD ELSE diff --git a/src/MNH/prep_nest_pgd.f90 b/src/MNH/prep_nest_pgd.f90 index 7d9b2ae94..8e7270040 100644 --- a/src/MNH/prep_nest_pgd.f90 +++ b/src/MNH/prep_nest_pgd.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ##################### @@ -91,6 +91,7 @@ !! 06/2016 (G.Delautier) phasage surfex 8 !! P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -334,7 +335,7 @@ DO JPGD=1,NMODEL TOUTDATAFILE => TZFILENESTPGD(JPGD)%TZFILE CALL GOTO_MODEL(JPGD) !Open done here because grid dimensions have to be known - CALL IO_FILE_OPEN_ll(TZFILENESTPGD(JPGD)%TZFILE,OPARALLELIO=.FALSE.) + CALL IO_FILE_OPEN_ll(TZFILENESTPGD(JPGD)%TZFILE) CALL GOTO_SURFEX(JPGD) TFILE_SURFEX => TZFILENESTPGD(JPGD)%TZFILE CALL WRITE_PGD_SURF_ATM_n(YSURF_CUR,'MESONH') @@ -369,8 +370,8 @@ END DO ! -------------------- ! DO JPGD=1,NMODEL - CALL IO_FILE_CLOSE_ll(TZFILEPGD(JPGD)%TZFILE, OPARALLELIO=.FALSE.) - CALL IO_FILE_CLOSE_ll(TZFILENESTPGD(JPGD)%TZFILE,OPARALLELIO=.FALSE.) + CALL IO_FILE_CLOSE_ll(TZFILEPGD(JPGD)%TZFILE) + CALL IO_FILE_CLOSE_ll(TZFILENESTPGD(JPGD)%TZFILE) END DO ! !* loop to spare enough time to transfer commands before end of program diff --git a/src/MNH/prep_pgd.f90 b/src/MNH/prep_pgd.f90 index d7b5899bc..a58862491 100644 --- a/src/MNH/prep_pgd.f90 +++ b/src/MNH/prep_pgd.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ################ PROGRAM PREP_PGD @@ -73,7 +73,8 @@ !! 01/2018 (G.Delautier) SURFEX 8.1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! Q. Rodier 01/2019 : add a new filtering for very high slopes in NAM_ZSFILTER -!! +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +!! !---------------------------------------------------------------------------- ! !* 0. DECLARATION @@ -244,7 +245,7 @@ CALL PGD_SURF_ATM(YSURF_CUR,'MESONH',' ',' ',.FA !* 3. Writes the physiographic fields ! ------------------------------- ! -CALL IO_FILE_ADD2LIST(TZFILE,CPGDFILE,'PREPPGD','WRITE',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=5) +CALL IO_FILE_ADD2LIST(TZFILE,CPGDFILE,'PGD','WRITE',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=5) ! CALL IO_FILE_OPEN_ll(TZFILE,OPARALLELIO=.FALSE.) ! diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90 index a11651b58..9caff1432 100644 --- a/src/MNH/prep_real_case.f90 +++ b/src/MNH/prep_real_case.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -379,6 +379,7 @@ !! P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define !! B.VIE 2016 : LIMA !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -745,7 +746,7 @@ CALL SECOND_MNH(ZTIME2) ZREAD = ZTIME2 - ZTIME1 - ZHORI !------------------------------------------------------------------------------- ! -CALL IO_FILE_ADD2LIST(TINIFILE,CINIFILE,'PREPREALCASE','WRITE',KLFITYPE=1,KLFIVERB=NVERB) +CALL IO_FILE_ADD2LIST(TINIFILE,CINIFILE,'MNH','WRITE',KLFITYPE=1,KLFIVERB=NVERB) CALL IO_FILE_OPEN_ll(TINIFILE) ! ZTIME1=ZTIME2 diff --git a/src/MNH/prep_surfex.f90 b/src/MNH/prep_surfex.f90 index 1bf961ea0..06ea465e8 100644 --- a/src/MNH/prep_surfex.f90 +++ b/src/MNH/prep_surfex.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2004-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -26,6 +26,7 @@ !! 10/10/2011 J.Escobar call INI_PARAZ_ll !! 06/2016 (G.Delautier) phasage surfex 8 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -155,7 +156,7 @@ CALL INI_PARAZ_ll(IINFO_ll) !* reading of date ! IF (YATMFILETYPE=='MESONH') THEN - CALL IO_FILE_ADD2LIST(TZATMFILE,TRIM(YATMFILE),'UNKNOWN','READ',KLFITYPE=1,KLFIVERB=1) + CALL IO_FILE_ADD2LIST(TZATMFILE,TRIM(YATMFILE),'MNH','READ',KLFITYPE=1,KLFIVERB=1) CALL IO_FILE_OPEN_ll(TZATMFILE) CALL IO_READ_FIELD(TZATMFILE,'DTCUR',TDTCUR) CALL IO_FILE_CLOSE_ll(TZATMFILE) @@ -171,7 +172,7 @@ YSURF_CUR => YSURF_LIST(1) CALL READ_ALL_NAMELISTS(YSURF_CUR,'MESONH','PRE',.FALSE.) CALL GOTO_SURFEX(1) ! -CALL IO_FILE_ADD2LIST(TINIFILE,TRIM(CINIFILE),'PREPSURFEX','WRITE',KLFITYPE=1,KLFIVERB=1) +CALL IO_FILE_ADD2LIST(TINIFILE,TRIM(CINIFILE),'PGD','WRITE',KLFITYPE=1,KLFIVERB=1) !The open is done later in PREP_SURF_MNH when domain dimensions are known ! TFILE_SURFEX => TINIFILE diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90 index d920dbc0c..38dd08f61 100644 --- a/src/MNH/spawn_model2.f90 +++ b/src/MNH/spawn_model2.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !######################## MODULE MODI_SPAWN_MODEL2 @@ -191,6 +191,7 @@ END MODULE MODI_SPAWN_MODEL2 !! Modification 01/2016 (JP Pinty) Add LIMA !! 10/2016 (C.Lac) Add droplet deposition !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -489,7 +490,7 @@ IF (LEN_TRIM(HSONFILE) /= 0 ) THEN ! 3.3.1 Opening the son input file and reading the grid ! WRITE(ILUOUT,*) 'SPAWN_MODEL2: spawning with a SON input file :',TRIM(HSONFILE) - CALL IO_FILE_ADD2LIST(TZSONFILE,TRIM(HSONFILE),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_FILE_ADD2LIST(TZSONFILE,TRIM(HSONFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) CALL IO_FILE_OPEN_ll(TZSONFILE) CALL IO_READ_FIELD(TZSONFILE,'DAD_NAME',YDAD_SON) CALL IO_READ_FIELD(TZSONFILE,'IMAX', IIMAXSON) @@ -1436,7 +1437,7 @@ ELSE CMY_NAME(2)=ADJUSTL(ADJUSTR(CINIFILE)//'.spr'//ADJUSTL(HSPANBR)) END IF ! -CALL IO_FILE_ADD2LIST(TZFILE,CMY_NAME(2),'SPAWNING','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) +CALL IO_FILE_ADD2LIST(TZFILE,CMY_NAME(2),'MNH','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) ! CALL IO_FILE_OPEN_ll(TZFILE) ! diff --git a/src/MNH/xy_to_latlon.f90 b/src/MNH/xy_to_latlon.f90 index 606aa70aa..e5e264332 100644 --- a/src/MNH/xy_to_latlon.f90 +++ b/src/MNH/xy_to_latlon.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2006-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -54,6 +54,7 @@ !! no transfer of the file when closing Dec. 09, 1996 (V.Masson) !! + changes call to READ_HGRID !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !---------------------------------------------------------------------------- ! !* 0. DECLARATION @@ -130,7 +131,7 @@ CALL IO_FILE_CLOSE_ll(TZNMLFILE) !* 1. Opening of MESONH file ! ---------------------- ! -CALL IO_FILE_ADD2LIST(TZINIFILE,TRIM(YINIFILE),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=2) +CALL IO_FILE_ADD2LIST(TZINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=2) CALL IO_FILE_OPEN_ll(TZINIFILE) ! !* 2. Reading of MESONH file diff --git a/src/MNH/zoom_pgd.f90 b/src/MNH/zoom_pgd.f90 index af620d5b8..e00cc34e6 100644 --- a/src/MNH/zoom_pgd.f90 +++ b/src/MNH/zoom_pgd.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2005-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2005-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################ @@ -40,6 +40,7 @@ !! 06/2016 (G.Delautier) phasage surfex 8 !! 08/07/2016 P.Wautelet Removed MNH_NCWRIT define !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !! !---------------------------------------------------------------------------- ! @@ -148,7 +149,7 @@ CALL SET_CONFIO_ll() !* 2.1 Open PGD file ! ------------- ! -CALL IO_FILE_ADD2LIST(TZPGDFILE,TRIM(CPGDFILE),'UNKNOWN','READ',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=2,KLFIVERB=5) +CALL IO_FILE_ADD2LIST(TZPGDFILE,TRIM(CPGDFILE),'PGD','READ',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=2,KLFIVERB=5) CALL IO_FILE_OPEN_ll(TZPGDFILE) ! !* 2.2 Reading of initial grid @@ -194,7 +195,7 @@ IF ( (LEN_TRIM(YZOOMFILE) == 0) .OR. (ADJUSTL(YZOOMFILE) == ADJUSTL(CPGDFILE)) ) YZOOMFILE=ADJUSTL(ADJUSTR(CPGDFILE)//'.z'//ADJUSTL(YZOOMNBR)) END IF ! -CALL IO_FILE_ADD2LIST(TZZOOMFILE,TRIM(YZOOMFILE),'ZOOMPGD','WRITE',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=5) +CALL IO_FILE_ADD2LIST(TZZOOMFILE,TRIM(YZOOMFILE),'PGD','WRITE',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=5) !PW: TODO: points to dad file (if existing) ! TZZOOMFILE%TDADFILE => ! CALL IO_FILE_OPEN_ll(TZZOOMFILE) -- GitLab From f690e611c61fb4e3f2b7880fa910adf42b9f19c1 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 7 Feb 2019 14:59:09 +0100 Subject: [PATCH 032/139] Philippe 07/02/2019: IO: remove OPARALLELIO argument from open and close files subroutines (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) --- src/LIB/SURCOUCHE/src/modd_io.f90 | 2 +- src/LIB/SURCOUCHE/src/mode_fm.f90 | 41 +++------- src/LIB/SURCOUCHE/src/mode_io.f90 | 76 +++++++------------ .../SURCOUCHE/src/mode_io_manage_struct.f90 | 57 ++++++++++---- src/LIB/SURCOUCHE/src/modi_fm.f90 | 10 +-- src/LIB/SURCOUCHE/src/modi_io.f90 | 26 ++----- src/MNH/ini_size_spawn.f90 | 6 +- src/MNH/mnhclose_aux_io_surf.f90 | 13 ++-- src/MNH/mnhopen_aux_io_surf.f90 | 4 +- src/MNH/modeln.f90 | 8 +- src/MNH/open_nestpgd_files.f90 | 4 +- src/MNH/open_prc_files.f90 | 4 +- src/MNH/prep_pgd.f90 | 10 ++- src/MNH/spawning.f90 | 6 +- 14 files changed, 127 insertions(+), 140 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90 index f21469986..d304f439d 100644 --- a/src/LIB/SURCOUCHE/src/modd_io.f90 +++ b/src/LIB/SURCOUCHE/src/modd_io.f90 @@ -95,7 +95,7 @@ TYPE TFILEDATA ! Fields for LFI files INTEGER(KIND=LFI_INT) :: NLFININAR = 0 !Number of articles of the LFI file (only accurate if file opened in read mode) INTEGER(KIND=LFI_INT) :: NLFINPRAR = 0 !Number of predicted articles of the LFI file (non crucial) - INTEGER :: NLFITYPE = -1 !Type of the file (used to generate list of files to transfers) + INTEGER :: NLFITYPE = -1 !Type of the file (used to generate list of files to transfer) INTEGER :: NLFIVERB = 1 !LFI verbosity level INTEGER(KIND=LFI_INT) :: NLFIFLU = -1 !File identifier ! diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index 7c51d0a53..760c8710d 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -15,6 +15,8 @@ ! to allow to disable writes (for bench purposes) ! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines +! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) !----------------------------------------------------------------- MODULE MODE_FM @@ -49,7 +51,7 @@ IF ( IP .EQ. 1 ) PRINT *,'INIT L1D,L2D,LPACK = ',L1D,L2D,LPACK END SUBROUTINE SET_FMPACK_ll -SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,OPARALLELIO,HPOSITION,HSTATUS,HPROGRAM_ORIG) +SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,HPOSITION,HSTATUS,HPROGRAM_ORIG) ! USE MODD_CONF, ONLY: CPROGRAM USE MODD_IO_ll, ONLY: LIO_NO_WRITE, TFILEDATA @@ -59,7 +61,6 @@ USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST,IO_FILE_FIND_BYNAME ! TYPE(TFILEDATA),POINTER,INTENT(INOUT) :: TPFILE ! File structure INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! Return code -LOGICAL, INTENT(IN), OPTIONAL :: OPARALLELIO CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPOSITION CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HSTATUS CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program @@ -140,13 +141,13 @@ SELECT CASE(TPFILE%CTYPE) IF(TPFILE%CTYPE/='MNHOUTPUT' .AND. CPROGRAM/='LFICDF') THEN CALL IO_FILE_ADD2LIST(TZFILE_DES,TRIM(TPFILE%CNAME)//'.des','DES',TPFILE%CMODE,TPDATAFILE=TPFILE,OOLD=.TRUE.) !OOLD=T because the file may already be in the list CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_OPEN_ll','OPEN_ll for '//TRIM(TPFILE%CNAME)//'.des') - CALL OPEN_ll(TZFILE_DES,IOSTAT=IRESP,DELIM='QUOTE',OPARALLELIO=OPARALLELIO) + CALL OPEN_ll(TZFILE_DES,IOSTAT=IRESP,DELIM='QUOTE') TZFILE_DES%LOPENED = .TRUE. TZFILE_DES%NOPEN_CURRENT = TZFILE_DES%NOPEN_CURRENT + 1 TZFILE_DES%NOPEN = TZFILE_DES%NOPEN + 1 ENDIF ! - CALL FMOPEN_ll(TPFILE,IRESP,OPARALLELIO=OPARALLELIO,HPROGRAM_ORIG=HPROGRAM_ORIG) + CALL FMOPEN_ll(TPFILE,IRESP,HPROGRAM_ORIG=HPROGRAM_ORIG) END SELECT ! @@ -154,7 +155,7 @@ IF (PRESENT(KRESP)) KRESP = IRESP ! END SUBROUTINE IO_FILE_OPEN_ll -SUBROUTINE FMOPEN_ll(TPFILE,KRESP,OPARALLELIO,HPROGRAM_ORIG) +SUBROUTINE FMOPEN_ll(TPFILE,KRESP,HPROGRAM_ORIG) USE MODD_IO_ll, ONLY: TFILEDATA USE MODE_IO_ll, ONLY: OPEN_ll,GCONFIO !JUANZ @@ -168,7 +169,6 @@ use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure INTEGER, INTENT(OUT) :: KRESP ! return-code -LOGICAL, INTENT(IN), OPTIONAL :: OPARALLELIO CHARACTER(LEN=*),INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program ! ! Local variables @@ -178,19 +178,12 @@ CHARACTER(LEN=7) :: YACTION ! Action upon the file ('READ' or 'WRITE') CHARACTER(LEN=8) :: YRESP INTEGER :: IERR INTEGER :: INB_PROCIO -LOGICAL :: GPARALLELIO LOGICAL :: GEXIST_LFI, GEXIST_NC4 YACTION = TPFILE%CMODE CALL PRINT_MSG(NVERB_DEBUG,'IO','FMOPEN_ll','opening '//TRIM(TPFILE%CNAME)//' for '//TRIM(YACTION)) -IF ( PRESENT(OPARALLELIO) ) THEN - GPARALLELIO = OPARALLELIO -ELSE !par defaut on active les IO paralleles en Z si possible - GPARALLELIO = .TRUE. -ENDIF - IF (.NOT. GCONFIO) THEN PRINT *, 'FMOPEN_ll Aborting... Please, ensure to call SET_CONFIO_ll before & &the first FMOPEN_ll call.' @@ -214,8 +207,7 @@ ENDIF INB_PROCIO = NB_PROCIO_W END SELECT -CALL OPEN_ll(TPFILE,IOSTAT=IRESP,MODE='IO_ZSPLIT', & - KNB_PROCIO=INB_PROCIO,OPARALLELIO=GPARALLELIO,HPROGRAM_ORIG=HPROGRAM_ORIG) +CALL OPEN_ll(TPFILE,IOSTAT=IRESP,MODE='IO_ZSPLIT',HPROGRAM_ORIG=HPROGRAM_ORIG) IF (IRESP /= 0) GOTO 1000 @@ -301,7 +293,7 @@ KRESP=IRESP END SUBROUTINE FMOPEN_ll -SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,OPARALLELIO,HPROGRAM_ORIG) +SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,HPROGRAM_ORIG) ! USE MODD_CONF, ONLY: CPROGRAM USE MODD_IO_ll, ONLY: TFILEDATA @@ -310,7 +302,6 @@ USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME ! TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! Return code -LOGICAL, INTENT(IN), OPTIONAL :: OPARALLELIO CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program ! INTEGER :: IRESP, JI @@ -377,7 +368,7 @@ SELECT CASE(TPFILE%CTYPE) !OUTPUTLISTING files CASE('OUTPUTLISTING') - CALL CLOSE_ll(TPFILE,IOSTAT=IRESP,OPARALLELIO=.FALSE.) + CALL CLOSE_ll(TPFILE,IOSTAT=IRESP) ! TPFILE%NLU = -1 @@ -412,7 +403,7 @@ SELECT CASE(TPFILE%CTYPE) END IF ENDIF ! - CALL FMCLOS_ll(TPFILE,KRESP=IRESP,OPARALLELIO=OPARALLELIO,HPROGRAM_ORIG=HPROGRAM_ORIG) + CALL FMCLOS_ll(TPFILE,KRESP=IRESP,HPROGRAM_ORIG=HPROGRAM_ORIG) ! DO JI = 1,TPFILE%NSUBFILES_IOZ TZFILE_IOZ => TPFILE%TFILES_IOZ(JI)%TFILE @@ -435,7 +426,7 @@ IF (PRESENT(KRESP)) KRESP=IRESP ! END SUBROUTINE IO_FILE_CLOSE_ll -SUBROUTINE FMCLOS_ll(TPFILE,KRESP,OPARALLELIO,HPROGRAM_ORIG) +SUBROUTINE FMCLOS_ll(TPFILE,KRESP,HPROGRAM_ORIG) ! !! MODIFICATIONS !! ------------- @@ -453,7 +444,6 @@ USE MODI_SYSTEM_MNH #endif TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure INTEGER, INTENT(OUT) :: KRESP ! return-code if problems araised -LOGICAL, INTENT(IN), OPTIONAL :: OPARALLELIO CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program INTEGER :: IRESP,IROWF @@ -464,18 +454,11 @@ CHARACTER(LEN=14) :: YTRANS CHARACTER(LEN=100) :: YCOMMAND INTEGER :: IERR, IFITYP INTEGER, SAVE :: ICPT=0 -LOGICAL :: GPARALLELIO YFILEM = TPFILE%CNAME CALL PRINT_MSG(NVERB_DEBUG,'IO','FMCLOS_ll','closing '//TRIM(YFILEM)) -IF ( PRESENT(OPARALLELIO) ) THEN - GPARALLELIO = OPARALLELIO -ELSE - GPARALLELIO = .TRUE. !par defaut on active les IO paralleles en Z si possible -ENDIF - IRESP = 0 IROWF = 0 @@ -532,7 +515,7 @@ END IF 500 CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) IF (IRESP /= 0) GOTO 1000 -CALL CLOSE_ll(TPFILE,IOSTAT=IRESP,OPARALLELIO=GPARALLELIO) +CALL CLOSE_ll(TPFILE,IOSTAT=IRESP) 1000 CONTINUE diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 56fa4322e..f42f0b08e 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -26,7 +26,10 @@ ! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll to allow ! to disable writes (for bench purposes) ! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place +! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines +! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) ! +!----------------------------------------------------------------- MODULE MODE_IO_ll USE MODD_MPIF @@ -148,8 +151,6 @@ CONTAINS STATUS, & POSITION,& DELIM, & - KNB_PROCIO,& - OPARALLELIO, & HPROGRAM_ORIG) USE MODD_IO_ll @@ -167,8 +168,6 @@ CONTAINS CHARACTER(len=*),INTENT(IN), OPTIONAL :: STATUS CHARACTER(len=*),INTENT(IN), OPTIONAL :: POSITION CHARACTER(len=*),INTENT(IN), OPTIONAL :: DELIM - INTEGER, INTENT(IN), OPTIONAL :: KNB_PROCIO - LOGICAL, INTENT(IN), OPTIONAL :: OPARALLELIO CHARACTER(LEN=*),INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program ! ! local var @@ -184,18 +183,11 @@ CONTAINS CHARACTER(len=20) :: YMODE CHARACTER(LEN=256) :: YIOERRMSG INTEGER :: IOS,IRESP - LOGICAL :: GPARALLELIO TYPE(TFILEDATA),POINTER :: TZSPLITFILE CHARACTER(LEN=:),ALLOCATABLE :: YPREFILENAME !To store the directory + filename CHARACTER(LEN=:),ALLOCATABLE :: YFORSTATUS ! Status for open of a file (for LFI) ('OLD','NEW','UNKNOWN','SCRATCH','REPLACE') CALL PRINT_MSG(NVERB_DEBUG,'IO','OPEN_ll','opening '//TRIM(TPFILE%CNAME)//' for '//TRIM(TPFILE%CMODE)) - ! - IF ( PRESENT(OPARALLELIO) ) THEN - GPARALLELIO = OPARALLELIO - ELSE !par defaut on active les IO paralleles en Z si possible - GPARALLELIO = .TRUE. - ENDIF IOS = 0 @@ -404,12 +396,6 @@ CONTAINS TPFILE%NMASTER_RANK = ISIOP TPFILE%LMASTER = (ISP == ISIOP) TPFILE%LMULTIMASTERS = .FALSE. - TPFILE%NSUBFILES_IOZ = 0 - IF ( GPARALLELIO .AND. PRESENT(KNB_PROCIO) ) THEN - IF (KNB_PROCIO>1) THEN - TPFILE%NSUBFILES_IOZ = KNB_PROCIO - END IF - END IF #if defined(MNH_IOCDF4) IF (TPFILE%LMASTER .AND. (TPFILE%CFORMAT=='LFI' .OR. TPFILE%CFORMAT=='LFICDF4') ) THEN @@ -425,7 +411,7 @@ CONTAINS IF (.NOT.ALLOCATED(TPFILE%TFILES_IOZ)) THEN ALLOCATE(TPFILE%TFILES_IOZ(TPFILE%NSUBFILES_IOZ)) ELSE IF ( SIZE(TPFILE%TFILES_IOZ) /= TPFILE%NSUBFILES_IOZ ) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','SIZE(PFILE%TFILES_IOZ) /= TPFILE%NSUBFILES_IOZ for '//TRIM(TPFILE%CNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','SIZE(TPFILE%TFILES_IOZ) /= TPFILE%NSUBFILES_IOZ for '//TRIM(TPFILE%CNAME)) END IF DO IFILE=1,TPFILE%NSUBFILES_IOZ IRANK_PROCIO = 1 + IO_RANK(IFILE-1,ISNPROC,TPFILE%NSUBFILES_IOZ) @@ -515,7 +501,7 @@ CONTAINS END SUBROUTINE OPEN_ll - SUBROUTINE CLOSE_ll(TPFILE,IOSTAT,OPARALLELIO,HPROGRAM_ORIG) + SUBROUTINE CLOSE_ll(TPFILE,IOSTAT,HPROGRAM_ORIG) USE MODD_IO_ll USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME @@ -526,24 +512,15 @@ CONTAINS #endif TYPE(TFILEDATA), INTENT(IN) :: TPFILE INTEGER, INTENT(OUT), OPTIONAL :: IOSTAT - LOGICAL, INTENT(IN), OPTIONAL :: OPARALLELIO CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program - INTEGER :: IERR, IGLOBALERR, IGLOBALERR2, IRESP, IRESP2 - - INTEGER :: IFILE - LOGICAL :: GPARALLELIO - TYPE(TFILEDATA),POINTER :: TZFILE + character(len=256) :: yioerrmsg + INTEGER :: IERR, IGLOBALERR, IGLOBALERR2, IRESP, IRESP2 + INTEGER :: IFILE + TYPE(TFILEDATA),POINTER :: TZFILE CALL PRINT_MSG(NVERB_DEBUG,'IO','CLOSE_ll','closing '//TRIM(TPFILE%CNAME)) - IF ( PRESENT(OPARALLELIO) ) THEN - GPARALLELIO = OPARALLELIO - ELSE !par defaut on active les IO paralleles en Z si possible - GPARALLELIO = .TRUE. - ENDIF - !JUANZ - IRESP = 0 IRESP2 = 0 IGLOBALERR = 0 @@ -551,29 +528,30 @@ CONTAINS IF (TPFILE%LMASTER) THEN IF (TPFILE%NLU/=-1 .AND. TPFILE%NLU/=NNULLUNIT) THEN - CLOSE(UNIT=TPFILE%NLU, IOSTAT=IRESP,STATUS='KEEP') + CLOSE(UNIT=TPFILE%NLU, STATUS='KEEP', IOSTAT=IRESP, IOMSG=yioerrmsg) END IF END IF - ! - IF( GPARALLELIO ) THEN - DO IFILE=1,TPFILE%NSUBFILES_IOZ - TZFILE => TPFILE%TFILES_IOZ(IFILE)%TFILE + + !Warning and not error or fatal if close fails to allow continuation of execution + IF (IRESP/=0) CALL PRINT_MSG(NVERB_WARNING,'IO','CLOSE_ll','Problem when closing '//TRIM(TPFILE%CNAME)//': '//TRIM(YIOERRMSG)) + + DO IFILE=1,TPFILE%NSUBFILES_IOZ + TZFILE => TPFILE%TFILES_IOZ(IFILE)%TFILE #if defined(MNH_IOCDF4) - !Write coordinates variables in netCDF file - IF (TZFILE%CMODE == 'WRITE' .AND. (TZFILE%CFORMAT=='NETCDF4' .OR. TZFILE%CFORMAT=='LFICDF4')) THEN - CALL IO_WRITE_COORDVAR_NC4(TZFILE,HPROGRAM_ORIG=HPROGRAM_ORIG) - END IF + !Write coordinates variables in netCDF file + IF (TZFILE%CMODE == 'WRITE' .AND. (TZFILE%CFORMAT=='NETCDF4' .OR. TZFILE%CFORMAT=='LFICDF4')) THEN + CALL IO_WRITE_COORDVAR_NC4(TZFILE,HPROGRAM_ORIG=HPROGRAM_ORIG) + END IF #endif - IF (TZFILE%LMASTER) THEN - if (tzfile%cformat == 'LFI' .or. tzfile%cformat == 'LFICDF4') call io_close_file_lfi(tzfile,iresp2) + IF (TZFILE%LMASTER) THEN + if (tzfile%cformat == 'LFI' .or. tzfile%cformat == 'LFICDF4') call io_close_file_lfi(tzfile,iresp2) #if defined(MNH_IOCDF4) - if (tzfile%cformat == 'NETCDF4' .or. tzfile%cformat == 'LFICDF4') call io_close_file_nc4(tzfile,iresp2) + if (tzfile%cformat == 'NETCDF4' .or. tzfile%cformat == 'LFICDF4') call io_close_file_nc4(tzfile,iresp2) #endif - END IF - END DO - ! - CALL MPI_ALLREDUCE(IRESP2,IGLOBALERR2,1,MPI_INTEGER,MPI_BOR,TPFILE%NMPICOMM,IERR) - END IF + END IF + END DO + ! + IF (TPFILE%NSUBFILES_IOZ>0) CALL MPI_ALLREDUCE(IRESP2,IGLOBALERR2,1,MPI_INTEGER,MPI_BOR,TPFILE%NMPICOMM,IERR) ! CALL MPI_ALLREDUCE(IRESP, IGLOBALERR, 1,MPI_INTEGER,MPI_BOR,TPFILE%NMPICOMM,IERR) diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 index fc9a50c92..b9472afd3 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 @@ -13,6 +13,8 @@ ! to allow to disable writes (for bench purposes) ! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines +! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) !----------------------------------------------------------------- MODULE MODE_IO_MANAGE_STRUCT ! @@ -287,20 +289,24 @@ DO IMI = 1, NMODEL DEALLOCATE(IOUT_STEP) ! IF (IP==1) THEN - PRINT *,'-------------------------' + PRINT *,'-------------------------------' PRINT *,'Model number: ',IMI PRINT *,'Number of backups: ',IBAK_NUMB - PRINT *,'Timestep Time' - DO JOUT = 1,IBAK_NUMB - WRITE(*,'( I9,F12.3 )' ) OUT_MODEL(IMI)%TBACKUPN(JOUT)%NSTEP,OUT_MODEL(IMI)%TBACKUPN(JOUT)%XTIME - END DO - PRINT *,'-------------------------' + if ( ibak_numb > 0 ) then + PRINT *,'Timestep Time' + DO JOUT = 1,IBAK_NUMB + WRITE(*,'( I9,F12.3 )' ) OUT_MODEL(IMI)%TBACKUPN(JOUT)%NSTEP,OUT_MODEL(IMI)%TBACKUPN(JOUT)%XTIME + END DO + end if + PRINT *,'-------------------------------' PRINT *,'Model number: ',IMI PRINT *,'Number of outputs: ',IOUT_NUMB - PRINT *,'Timestep Time' - DO JOUT = 1,IOUT_NUMB - WRITE(*,'( I9,F12.3 )' ) OUT_MODEL(IMI)%TOUTPUTN(JOUT)%NSTEP,OUT_MODEL(IMI)%TOUTPUTN(JOUT)%XTIME - END DO + if ( iout_numb > 0 ) then + PRINT *,'Timestep Time' + DO JOUT = 1,IOUT_NUMB + WRITE(*,'( I9,F12.3 )' ) OUT_MODEL(IMI)%TOUTPUTN(JOUT)%NSTEP,OUT_MODEL(IMI)%TOUTPUTN(JOUT)%XTIME + END DO + end if ! IF (IOUT_NUMB>0) THEN PRINT *,'Field list:' @@ -310,7 +316,7 @@ DO IMI = 1, NMODEL END DO END IF ! - PRINT *,'-------------------------' + PRINT *,'-------------------------------' END IF ! END DO ! IMI=1,NMODEL @@ -632,10 +638,11 @@ END SUBROUTINE IO_PREPARE_BAKOUT_STRUCT SUBROUTINE IO_FILE_ADD2LIST(TPFILE,HNAME,HTYPE,HMODE, & HFORM,HACCESS,HFORMAT,HDIRNAME, & KLFINPRAR,KLFITYPE,KLFIVERB,KRECL,KMODEL, & - TPDADFILE,TPDATAFILE,OOLD) + TPDADFILE,TPDATAFILE,OOLD,OSPLIT_IOZ) ! USE MODD_BAKOUT, ONLY: LOUT_COMPRESS,LOUT_REDUCE_FLOAT_PRECISION,NOUT_COMPRESS_LEVEL USE MODD_CONF, ONLY: CPROGRAM +use modd_confz, only: nb_procio_r,nb_procio_w ! USE MODE_MODELN_HANDLER, ONLY: GET_CURRENT_MODEL_INDEX ! @@ -657,15 +664,19 @@ TYPE(TFILEDATA),POINTER,OPTIONAL,INTENT(IN) :: TPDATAFILE!Corresponding data LOGICAL, OPTIONAL,INTENT(IN) :: OOLD !FALSE if new file (should not be found) !TRUE if the file could already be in the list ! (add it only if not yet present) +logical, optional,intent(in) :: osplit_ioz !Is the file split vertically ! INTEGER :: IMI,IRESP INTEGER(KIND=LFI_INT) :: ILFINPRAR INTEGER :: ILFITYPE INTEGER :: ILFIVERB LOGICAL :: GOLD +logical :: gsplit_ioz ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_ADD2LIST','called for '//TRIM(HNAME)) ! +IMI = GET_CURRENT_MODEL_INDEX() +! IF (PRESENT(OOLD)) THEN GOLD = OOLD ELSE @@ -699,8 +710,6 @@ IF (IRESP==0) THEN END IF END IF ! -IMI = GET_CURRENT_MODEL_INDEX() -! IF( PRESENT(HFORM) .AND. TRIM(HTYPE)/='SURFACE_DATA') & CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST','optional argument HFORM is not used by '//TRIM(HTYPE)//' files') IF(.NOT.PRESENT(HFORM) .AND. TRIM(HTYPE)=='SURFACE_DATA') & @@ -782,6 +791,26 @@ END IF ! TPFILE%CMODE = HMODE ! +if ( present(osplit_ioz) ) then + gsplit_ioz = osplit_ioz +else + gsplit_ioz = .false. + if ( len_trim(htype) >= 3 ) then + if ( htype(1:3) == 'MNH' ) then + ! MNH/MNHBACKUP/MNHOUTPUT + !Remark: 'MNH' is more general than MNHBACKUP and could be in fact a MNHBACKUP file + gsplit_ioz = .true. + select case (hmode) + case('READ') + tpfile%nsubfiles_ioz = nb_procio_r + case('WRITE') + tpfile%nsubfiles_ioz = nb_procio_w + end select + if (tpfile%nsubfiles_ioz == 1) tpfile%nsubfiles_ioz = 0 + end if + end if +end if +! SELECT CASE(TPFILE%CTYPE) !Chemistry input files CASE('CHEMINPUT') diff --git a/src/LIB/SURCOUCHE/src/modi_fm.f90 b/src/LIB/SURCOUCHE/src/modi_fm.f90 index ad1466bd8..c64838a04 100644 --- a/src/LIB/SURCOUCHE/src/modi_fm.f90 +++ b/src/LIB/SURCOUCHE/src/modi_fm.f90 @@ -1,10 +1,12 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications: ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: OPARALLELIO argument from open and close files subroutines +! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) !----------------------------------------------------------------- MODULE MODI_FM_ll @@ -15,21 +17,19 @@ SUBROUTINE SET_FMPACK_ll(O1D,O2D,OPACK) LOGICAL, INTENT(IN) :: O1D,O2D,OPACK END SUBROUTINE SET_FMPACK_ll ! -SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,OPARALLELIO,HPOSITION,HSTATUS,HPROGRAM_ORIG) +SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,HPOSITION,HSTATUS,HPROGRAM_ORIG) USE MODD_IO_ll, ONLY: TFILEDATA TYPE(TFILEDATA),POINTER,INTENT(INOUT) :: TPFILE ! File structure INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! Return code -LOGICAL, INTENT(IN), OPTIONAL :: OPARALLELIO CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPOSITION CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HSTATUS CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program END SUBROUTINE IO_FILE_OPEN_ll ! -SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,OPARALLELIO,HPROGRAM_ORIG) +SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,HPROGRAM_ORIG) USE MODD_IO_ll, ONLY: TFILEDATA TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! Return code -LOGICAL, INTENT(IN), OPTIONAL :: OPARALLELIO CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program END SUBROUTINE IO_FILE_CLOSE_ll ! diff --git a/src/LIB/SURCOUCHE/src/modi_io.f90 b/src/LIB/SURCOUCHE/src/modi_io.f90 index 6136b47f5..b4fee82f8 100644 --- a/src/LIB/SURCOUCHE/src/modi_io.f90 +++ b/src/LIB/SURCOUCHE/src/modi_io.f90 @@ -1,10 +1,13 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications: ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place +! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines +! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) !----------------------------------------------------------------- MODULE MODI_IO_ll @@ -16,18 +19,10 @@ INTERFACE SUBROUTINE OPEN_ll(& TPFILE, & MODE, & - COMM, & STATUS, & - ACCESS, & IOSTAT, & - FORM, & - RECL, & - BLANK, & POSITION,& DELIM, & - PAD, & - KNB_PROCIO,& - OPARALLELIO, & HPROGRAM_ORIG) USE MODD_IO_ll, ONLY : TFILEDATA @@ -35,26 +30,17 @@ INTERFACE TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE CHARACTER(len=*),INTENT(IN), OPTIONAL :: MODE CHARACTER(len=*),INTENT(IN), OPTIONAL :: STATUS - CHARACTER(len=*),INTENT(IN), OPTIONAL :: ACCESS INTEGER, INTENT(OUT) :: IOSTAT - CHARACTER(len=*),INTENT(IN), OPTIONAL :: FORM - INTEGER, INTENT(IN), OPTIONAL :: RECL - CHARACTER(len=*),INTENT(IN), OPTIONAL :: BLANK CHARACTER(len=*),INTENT(IN), OPTIONAL :: POSITION CHARACTER(len=*),INTENT(IN), OPTIONAL :: DELIM - CHARACTER(len=*),INTENT(IN), OPTIONAL :: PAD - INTEGER, INTENT(IN), OPTIONAL :: COMM - INTEGER, INTENT(IN), OPTIONAL :: KNB_PROCIO - LOGICAL, INTENT(IN), OPTIONAL :: OPARALLELIO CHARACTER(LEN=*),INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program END SUBROUTINE OPEN_ll - SUBROUTINE CLOSE_ll(TPFILE,IOSTAT,OPARALLELIO,HPROGRAM_ORIG) + SUBROUTINE CLOSE_ll(TPFILE,IOSTAT,HPROGRAM_ORIG) USE MODD_IO_ll, ONLY : TFILEDATA TYPE(TFILEDATA), INTENT(IN) :: TPFILE INTEGER, INTENT(OUT), OPTIONAL :: IOSTAT - LOGICAL, INTENT(IN), OPTIONAL :: OPARALLELIO CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program END SUBROUTINE CLOSE_ll diff --git a/src/MNH/ini_size_spawn.f90 b/src/MNH/ini_size_spawn.f90 index d6881971c..e8707b14f 100644 --- a/src/MNH/ini_size_spawn.f90 +++ b/src/MNH/ini_size_spawn.f90 @@ -68,6 +68,8 @@ END MODULE MODI_INI_SIZE_SPAWN !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines +! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -226,7 +228,7 @@ IF (LEN_TRIM(CDOMAIN)>0) THEN ! structures TCRRT_COMDATA%T_CHILDREN%T_SPLITB and TCRRT_PROCONF%T_CHILDREN !$20140602 add condition on npproc CALL IO_FILE_ADD2LIST(TZDOMAIN,TRIM(CDOMAIN),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TZDOMAIN,OPARALLELIO=.FALSE.) + CALL IO_FILE_OPEN_ll(TZDOMAIN) ! CALL IO_READ_FIELD(TZDOMAIN,'DXRATIO',NDXRATIO) CALL IO_READ_FIELD(TZDOMAIN,'DYRATIO',NDYRATIO) @@ -283,7 +285,7 @@ IF (LEN_TRIM(CDOMAIN)>0) THEN !* 1.4 read grid in file CDOMAIN if available : ! CALL READ_HGRID(2,TZDOMAIN,YMY_NAME,YDAD_NAME,YSTORAGE_TYPE) - CALL IO_FILE_CLOSE_ll(TZDOMAIN,OPARALLELIO=.FALSE.) + CALL IO_FILE_CLOSE_ll(TZDOMAIN) CALL RETRIEVE1_NEST_INFO_n(1,2,NXOR,NYOR,NXSIZE,NYSIZE,NDXRATIO,NDYRATIO) DEALLOCATE(XZS,XZSMT,XXHAT,XYHAT) ! diff --git a/src/MNH/mnhclose_aux_io_surf.f90 b/src/MNH/mnhclose_aux_io_surf.f90 index 79d262791..6a1b88477 100644 --- a/src/MNH/mnhclose_aux_io_surf.f90 +++ b/src/MNH/mnhclose_aux_io_surf.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2003-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -49,11 +49,8 @@ END MODULE MODI_MNHCLOSE_AUX_IO_SURF !! ------------- !! Original 09/2003 !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 surfex 2006/05/23 15:47:28 -!----------------------------------------------------------------- +! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines +! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -82,7 +79,7 @@ INTEGER :: IRESP ! return-code if a problem appears !------------------------------------------------------------------------------- ! IF (CACTION=='OPEN ') THEN - CALL IO_FILE_CLOSE_ll(TPINFILE,OPARALLELIO=.FALSE.) + CALL IO_FILE_CLOSE_ll(TPINFILE) CACTION=' ' END IF ! diff --git a/src/MNH/mnhopen_aux_io_surf.f90 b/src/MNH/mnhopen_aux_io_surf.f90 index bd94f0332..0bf06bb0f 100644 --- a/src/MNH/mnhopen_aux_io_surf.f90 +++ b/src/MNH/mnhopen_aux_io_surf.f90 @@ -53,6 +53,8 @@ END MODULE MODI_MNHOPEN_AUX_IO_SURF !! J.Escobar : 02/06/2016 : abort MNHOPEN with STOP if problem with OPEN of INPUT/READ file !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines +! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -139,7 +141,7 @@ END IF ! IF (HFILE/=YFILE .AND. HFILE/=YPGDFILE) THEN CALL IO_FILE_ADD2LIST(TPINFILE,TRIM(HFILE),'PGD','READ',KLFITYPE=2,KLFIVERB=5,OOLD=.TRUE.) - CALL IO_FILE_OPEN_ll(TPINFILE,KRESP=IRESP,OPARALLELIO=.FALSE.) + CALL IO_FILE_OPEN_ll(TPINFILE,KRESP=IRESP) ! IF (IRESP .NE. 0) THEN PRINT*," /!\ MNHOPEN_AUX_IO_SURF :: FATAL PROBLEM OPENING INPUT/READ FILES =", HFILE diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index 84354e1f3..bece43011 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -253,6 +253,8 @@ END MODULE MODI_MODEL_n !! 01/2018 (C.Lac) Add VISCOSITY !! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll ! to allow to disable writes (for bench purposes) +! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines +! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -2111,7 +2113,7 @@ IF (OEXIT) THEN END IF ! CALL IO_FILE_CLOSE_ll(TINIFILE) - IF (CSURF=="EXTE") CALL IO_FILE_CLOSE_ll(TINIFILEPGD,OPARALLELIO=.FALSE.) + IF (CSURF=="EXTE") CALL IO_FILE_CLOSE_ll(TINIFILEPGD) ! !* 28.1 print statistics! ! diff --git a/src/MNH/open_nestpgd_files.f90 b/src/MNH/open_nestpgd_files.f90 index de2efc608..2274e9174 100644 --- a/src/MNH/open_nestpgd_files.f90 +++ b/src/MNH/open_nestpgd_files.f90 @@ -68,6 +68,8 @@ END MODULE MODI_OPEN_NESTPGD_FILES !! P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines +! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -325,7 +327,7 @@ CALL IO_FILE_CLOSE_ll(TZPRE_NEST_PGD) !Remark: output PGD files are opened later when the mesh dimensions are known ! DO JPGD=1,NMODEL - CALL IO_FILE_OPEN_ll(TPFILEPGD(JPGD) %TZFILE,OPARALLELIO=.FALSE.) + CALL IO_FILE_OPEN_ll(TPFILEPGD(JPGD)%TZFILE) END DO ! !------------------------------------------------------------------------------- diff --git a/src/MNH/open_prc_files.f90 b/src/MNH/open_prc_files.f90 index b3cb79f98..a5114c836 100644 --- a/src/MNH/open_prc_files.f90 +++ b/src/MNH/open_prc_files.f90 @@ -92,6 +92,8 @@ END MODULE MODI_OPEN_PRC_FILES !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! P. Wautelet 01/02/2019 added missing initialization to NULL for files with OUT intent ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines +! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -271,7 +273,7 @@ ELSE ! TPPGDFILE => NULL() CALL IO_FILE_ADD2LIST(TPPGDFILE,TRIM(HPGDFILE),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TPPGDFILE,IRESP,OPARALLELIO=.FALSE.) + CALL IO_FILE_OPEN_ll(TPPGDFILE,IRESP) IF (IRESP/=0) THEN !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','OPEN_PRC_FILES',' problem during opening of PGD file '//TRIM(HPGDFILE)) diff --git a/src/MNH/prep_pgd.f90 b/src/MNH/prep_pgd.f90 index a58862491..8617ff5c1 100644 --- a/src/MNH/prep_pgd.f90 +++ b/src/MNH/prep_pgd.f90 @@ -74,7 +74,9 @@ !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! Q. Rodier 01/2019 : add a new filtering for very high slopes in NAM_ZSFILTER ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST -!! +! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines +! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! !---------------------------------------------------------------------------- ! !* 0. DECLARATION @@ -247,7 +249,7 @@ CALL PGD_SURF_ATM(YSURF_CUR,'MESONH',' ',' ',.FA ! CALL IO_FILE_ADD2LIST(TZFILE,CPGDFILE,'PGD','WRITE',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=5) ! -CALL IO_FILE_OPEN_ll(TZFILE,OPARALLELIO=.FALSE.) +CALL IO_FILE_OPEN_ll(TZFILE) ! CALL IO_WRITE_HEADER(TZFILE) ! @@ -325,13 +327,13 @@ WRITE(ILUOUT0,*) '***************************' !* 6. Close parallelized I/O ! ---------------------- ! -CALL IO_FILE_CLOSE_ll(TZFILE,OPARALLELIO=.FALSE.) +CALL IO_FILE_CLOSE_ll(TZFILE) ! CALL SURFEX_DEALLO_LIST ! IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() ! -CALL IO_FILE_CLOSE_ll(TLUOUT0,OPARALLELIO=.FALSE.) +CALL IO_FILE_CLOSE_ll(TLUOUT0) ! CALL END_PARA_ll(IINFO_ll) ! diff --git a/src/MNH/spawning.f90 b/src/MNH/spawning.f90 index 7ab352665..54c6103b6 100644 --- a/src/MNH/spawning.f90 +++ b/src/MNH/spawning.f90 @@ -1,6 +1,6 @@ !MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################ @@ -74,6 +74,8 @@ !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! 06/2016 (G.Delautier) phasage surfex 8 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines +! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -205,7 +207,7 @@ CALL INIT_MNH ! CALL IO_FILE_FIND_BYNAME(TRIM(CINIFILE),TZINIFILE,IRESP) CALL IO_FILE_CLOSE_ll(TZINIFILE) -CALL IO_FILE_CLOSE_ll(TINIFILEPGD,OPARALLELIO=.FALSE.) +CALL IO_FILE_CLOSE_ll(TINIFILEPGD) !------------------------------------------------------------------------------- ! !* 4. INITIALIZATION OF OUTER POINTS OF MODEL 1 -- GitLab From 290eec03608a9bf7746ffacb36939d7924dcf84a Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 8 Feb 2019 09:48:23 +0100 Subject: [PATCH 033/139] Philippe 08/02/2019: SURFEX: initialize ZFIELD1 even if of size=1 --- src/SURFEX/bilin_value.F90 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/SURFEX/bilin_value.F90 b/src/SURFEX/bilin_value.F90 index f4aac84c2..48bf32aaa 100644 --- a/src/SURFEX/bilin_value.F90 +++ b/src/SURFEX/bilin_value.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. ! ######### SUBROUTINE BILIN_VALUE (KLUOUT,KX,KY,PFIELD1,PCX,PCY,KCI,KCJ,PFIELD2) @@ -77,7 +77,7 @@ !! !! Original 01/2004 ! TD&DD: added OpenMP directives - +! P. Wautelet 08/02/2019: initialize ZFIELD1 even if of size=1 !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -200,7 +200,8 @@ ELSE IS2 = IBOR(2,2,0)-IBOR(2,1,0)+1 ISIZE = IS1*IS2 ALLOCATE(ZFIELD1(IS1,IS2,INL)) - IF (SUM(IBOR(:,:,0))/=0) THEN + IF(ISIZE==1) ZFIELD1(:,:,:) = XUNDEF !Necessary to initialize ZFIELD1 in all cases (value could be anything) + IF (SUM(IBOR(:,:,0))/=0) THEN DO JL=IBOR(2,1,0),IBOR(2,2,0) ZFIELD1(:,JL-IBOR(2,1,0)+1,:) = PFIELD1(KX*(JL-1)+IBOR(1,1,0):KX*(JL-1)+IBOR(1,2,0),:) ENDDO -- GitLab From caac942477f027d06f745fce0cafe2114ffdb3ba Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 8 Feb 2019 11:14:25 +0100 Subject: [PATCH 034/139] Philippe 08/02/2019: add missing NULL association for pointers in modd_* files --- src/MNH/modd_RBK90_Globaln.f90 | 18 +++--- src/MNH/modd_RBK90_JacobianSPn.f90 | 16 +++-- src/MNH/modd_aircraft_balloon.f90 | 100 ++++++++++++++--------------- src/MNH/modd_blowsnown.f90 | 11 ++-- src/MNH/modd_ch_budget_n.f90 | 21 +++--- src/MNH/modd_ch_constn.f90 | 19 ++---- src/MNH/modd_ch_icen.f90 | 14 ++-- src/MNH/modd_ch_phn.f90 | 15 +++-- src/MNH/modd_ch_prodlosstotn.f90 | 16 +++-- src/MNH/modd_ch_rosenbrockn.f90 | 21 +++--- src/MNH/modd_lesn.f90 | 32 ++++----- src/MNH/modd_nesting.f90 | 13 ++-- src/MNH/modd_nudgingn.f90 | 14 ++-- src/MNH/modd_param_ecradn.f90 | 12 ++-- src/MNH/modd_radiationsn.f90 | 23 +++---- src/MNH/modd_sub_modeln.f90 | 21 +++--- src/MNH/modd_timez.f90 | 11 ++-- 17 files changed, 187 insertions(+), 190 deletions(-) diff --git a/src/MNH/modd_RBK90_Globaln.f90 b/src/MNH/modd_RBK90_Globaln.f90 index ccf0f737b..4d4a40e40 100644 --- a/src/MNH/modd_RBK90_Globaln.f90 +++ b/src/MNH/modd_RBK90_Globaln.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ! @@ -23,6 +23,8 @@ ! Output root filename : RBK90 ! ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +! Modifications +! P. Wautelet 08/02/2019: add missing NULL association for pointers MODULE MODD_RBK90_Global_n @@ -40,15 +42,15 @@ TYPE RBK90_Global_t ! Declaration of global variables ! C - Concentration of all species - REAL(KIND(0.0D0)), DIMENSION(:), POINTER :: C + REAL(KIND(0.0D0)), DIMENSION(:), POINTER :: C => NULL() ! VAR - Concentrations of variable species (global) - REAL(KIND(0.0D0)), DIMENSION(:), POINTER :: VAR + REAL(KIND(0.0D0)), DIMENSION(:), POINTER :: VAR => NULL() ! FIX - Concentrations of fixed species (global) - REAL(KIND(0.0D0)), DIMENSION(:), POINTER :: FIX + REAL(KIND(0.0D0)), DIMENSION(:), POINTER :: FIX => NULL() !JPP EQUIVALENCE( C(1),VAR(1) ) !JPP EQUIVALENCE( C(66),FIX(1) ) ! RCONST - Rate constants (global) - REAL(KIND(0.0D0)), DIMENSION(:), POINTER :: RCONST + REAL(KIND(0.0D0)), DIMENSION(:), POINTER :: RCONST => NULL() ! TIME - Current integration time REAL(KIND(0.0D0)) :: TIME ! SUN - Sunlight intensity between [0,1] @@ -64,9 +66,9 @@ TYPE RBK90_Global_t ! DT - Integration step REAL(KIND(0.0D0)) :: DT ! ATOL - Absolute tolerance - REAL(KIND(0.0D0)), DIMENSION(:), POINTER :: ATOL + REAL(KIND(0.0D0)), DIMENSION(:), POINTER :: ATOL => NULL() ! RTOL - Relative tolerance - REAL(KIND(0.0D0)), DIMENSION(:), POINTER :: RTOL + REAL(KIND(0.0D0)), DIMENSION(:), POINTER :: RTOL => NULL() ! STEPMIN - Lower bound for integration step REAL(KIND(0.0D0)) :: STEPMIN ! STEPMAX - Upper bound for integration step diff --git a/src/MNH/modd_RBK90_JacobianSPn.f90 b/src/MNH/modd_RBK90_JacobianSPn.f90 index dc7fd2c69..be6f91d41 100644 --- a/src/MNH/modd_RBK90_JacobianSPn.f90 +++ b/src/MNH/modd_RBK90_JacobianSPn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !****************************************************************** @@ -25,6 +25,8 @@ ! Output root filename : RBK90 ! ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +! Modifications +! P. Wautelet 08/02/2019: add missing NULL association for pointers MODULE MODD_RBK90_JacobianSP_n @@ -39,13 +41,13 @@ TYPE RBK90_JacobianSP_t ! Sparse Jacobian Data - INTEGER, DIMENSION(:), POINTER :: LU_IROW - INTEGER, DIMENSION(:), POINTER :: LU_ICOL + INTEGER, DIMENSION(:), POINTER :: LU_IROW => NULL() + INTEGER, DIMENSION(:), POINTER :: LU_ICOL => NULL() - INTEGER, DIMENSION(:), POINTER :: LU_CROW - INTEGER, DIMENSION(:), POINTER :: LU_DIAG + INTEGER, DIMENSION(:), POINTER :: LU_CROW => NULL() + INTEGER, DIMENSION(:), POINTER :: LU_DIAG => NULL() - INTEGER, DIMENSION(:), POINTER :: LU_DIM_SPECIES + INTEGER, DIMENSION(:), POINTER :: LU_DIM_SPECIES => NULL() END TYPE RBK90_JacobianSP_t diff --git a/src/MNH/modd_aircraft_balloon.f90 b/src/MNH/modd_aircraft_balloon.f90 index 677a4c4ac..9ff02772f 100644 --- a/src/MNH/modd_aircraft_balloon.f90 +++ b/src/MNH/modd_aircraft_balloon.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/modd_aircraft_balloon.f90,v $ $Revision: 1.1.10.1.2.1.10.2.2.2 $ -! MASDEV4_7 modd 2006/06/28 11:31:03 -!----------------------------------------------------------------- ! ############################ MODULE MODD_AIRCRAFT_BALLOON ! ############################ @@ -26,10 +21,10 @@ !! !! REFERENCE !! --------- -!! +!! !! AUTHOR !! ------ -!! P. Jabouille *Meteo France* +!! P. Jabouille *Meteo France* !! !! MODIFICATIONS !! ------------- @@ -37,6 +32,7 @@ !! Apr,19, 2001 (G.Jaubert) add CVBALL type !! March, 2013 : O.Caumont, C.Lac : add vertical profiles !! Oct,2016 : G.DELAUTIER LIMA +! P. Wautelet 08/02/2019: add missing NULL association for pointers !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -92,13 +88,13 @@ REAL :: MASS ! mass of the balloon (kg) (if 'CVBALL') INTEGER :: SEG ! number of aircraft flight segments INTEGER :: SEGCURN ! current flight segment number REAL :: SEGCURT ! current flight segment time spent -REAL, DIMENSION(:), POINTER :: SEGLAT ! latitude of flight segment extremities (LEG+1) -REAL, DIMENSION(:), POINTER :: SEGLON ! longitude of flight segment extremities (LEG+1) -REAL, DIMENSION(:), POINTER :: SEGX ! X of flight segment extremities (LEG+1) -REAL, DIMENSION(:), POINTER :: SEGY ! Y of flight segment extremities (LEG+1) -REAL, DIMENSION(:), POINTER :: SEGP ! pressure of flight segment extremities (LEG+1) -REAL, DIMENSION(:), POINTER :: SEGZ ! altitude of flight segment extremities (LEG+1) -REAL, DIMENSION(:), POINTER :: SEGTIME ! duration of flight segments (LEG ) +REAL, DIMENSION(:), POINTER :: SEGLAT => NULL() ! latitude of flight segment extremities (LEG+1) +REAL, DIMENSION(:), POINTER :: SEGLON => NULL() ! longitude of flight segment extremities (LEG+1) +REAL, DIMENSION(:), POINTER :: SEGX => NULL() ! X of flight segment extremities (LEG+1) +REAL, DIMENSION(:), POINTER :: SEGY => NULL() ! Y of flight segment extremities (LEG+1) +REAL, DIMENSION(:), POINTER :: SEGP => NULL() ! pressure of flight segment extremities (LEG+1) +REAL, DIMENSION(:), POINTER :: SEGZ => NULL() ! altitude of flight segment extremities (LEG+1) +REAL, DIMENSION(:), POINTER :: SEGTIME => NULL() ! duration of flight segments (LEG ) ! !* aircraft altitude type definition ! @@ -113,42 +109,42 @@ REAL :: P_CUR ! current p (if 'AIRCRA' and 'ALTDEF' ! !* data records ! -REAL, DIMENSION(:), POINTER :: TIME ! t(n) (n: recording instants) -REAL, DIMENSION(:), POINTER :: X ! X(n) -REAL, DIMENSION(:), POINTER :: Y ! Y(n) -REAL, DIMENSION(:), POINTER :: Z ! Z(n) -REAL, DIMENSION(:), POINTER :: XLON ! longitude(n) -REAL, DIMENSION(:), POINTER :: YLAT ! latitude (n) -REAL, DIMENSION(:), POINTER :: ZON ! zonal wind(n) -REAL, DIMENSION(:), POINTER :: MER ! meridian wind(n) -REAL, DIMENSION(:), POINTER :: W ! w(n) (air vertical speed) -REAL, DIMENSION(:), POINTER :: P ! p(n) -REAL, DIMENSION(:), POINTER :: TKE ! tke(n) -REAL, DIMENSION(:), POINTER :: TKE_DISS ! tke dissipation rate -REAL, DIMENSION(:), POINTER :: TH ! th(n) -REAL, DIMENSION(:,:), POINTER :: R ! r*(n) -REAL, DIMENSION(:,:), POINTER :: SV ! Sv*(n) -REAL, DIMENSION(:,:), POINTER :: RTZ ! tot hydrometeor mixing ratio -REAL, DIMENSION(:,:,:), POINTER :: RZ ! water vapour mixing ratio -REAL, DIMENSION(:,:), POINTER :: FFZ ! horizontal wind -REAL, DIMENSION(:,:), POINTER :: IWCZ ! ice water content -REAL, DIMENSION(:,:), POINTER :: LWCZ ! liquid water content -REAL, DIMENSION(:,:), POINTER :: CIZ ! Ice concentration -REAL, DIMENSION(:,:), POINTER :: CCZ ! Cloud concentration (LIMA) -REAL, DIMENSION(:,:), POINTER :: CRZ ! Rain concentration (LIMA) -REAL, DIMENSION(:,:), POINTER :: CRARE ! cloud radar reflectivity -REAL, DIMENSION(:,:), POINTER :: CRARE_ATT ! attenuated (= more realistic) cloud radar reflectivity -REAL, DIMENSION(:,:), POINTER :: WZ ! vertical profile of vertical velocity -REAL, DIMENSION(:,:), POINTER :: ZZ ! vertical profile of mass point altitude (above sea) -REAL, DIMENSION(:,:), POINTER :: AER ! Extinction at 550 nm -REAL, DIMENSION(:,:), POINTER :: DST_WL ! Extinction by wavelength -REAL, DIMENSION(:), POINTER :: ZS ! zs(n) -REAL, DIMENSION(:), POINTER :: TSRAD ! Ts(n) -REAL, DIMENSION(:,:), POINTER :: DATIME ! record for diachro -! -REAL, DIMENSION(:) , POINTER :: THW_FLUX ! thw_flux(n) -REAL, DIMENSION(:) , POINTER :: RCW_FLUX ! rcw_flux(n) -REAL, DIMENSION(:,:), POINTER :: SVW_FLUX ! psw_flux(n) +REAL, DIMENSION(:), POINTER :: TIME => NULL() ! t(n) (n: recording instants) +REAL, DIMENSION(:), POINTER :: X => NULL() ! X(n) +REAL, DIMENSION(:), POINTER :: Y => NULL() ! Y(n) +REAL, DIMENSION(:), POINTER :: Z => NULL() ! Z(n) +REAL, DIMENSION(:), POINTER :: XLON => NULL() ! longitude(n) +REAL, DIMENSION(:), POINTER :: YLAT => NULL() ! latitude (n) +REAL, DIMENSION(:), POINTER :: ZON => NULL() ! zonal wind(n) +REAL, DIMENSION(:), POINTER :: MER => NULL() ! meridian wind(n) +REAL, DIMENSION(:), POINTER :: W => NULL() ! w(n) (air vertical speed) +REAL, DIMENSION(:), POINTER :: P => NULL() ! p(n) +REAL, DIMENSION(:), POINTER :: TKE => NULL() ! tke(n) +REAL, DIMENSION(:), POINTER :: TKE_DISS => NULL() ! tke dissipation rate +REAL, DIMENSION(:), POINTER :: TH => NULL() ! th(n) +REAL, DIMENSION(:,:), POINTER :: R => NULL() ! r*(n) +REAL, DIMENSION(:,:), POINTER :: SV => NULL() ! Sv*(n) +REAL, DIMENSION(:,:), POINTER :: RTZ => NULL() ! tot hydrometeor mixing ratio +REAL, DIMENSION(:,:,:),POINTER :: RZ => NULL() ! water vapour mixing ratio +REAL, DIMENSION(:,:), POINTER :: FFZ => NULL() ! horizontal wind +REAL, DIMENSION(:,:), POINTER :: IWCZ => NULL() ! ice water content +REAL, DIMENSION(:,:), POINTER :: LWCZ => NULL() ! liquid water content +REAL, DIMENSION(:,:), POINTER :: CIZ => NULL() ! Ice concentration +REAL, DIMENSION(:,:), POINTER :: CCZ => NULL() ! Cloud concentration (LIMA) +REAL, DIMENSION(:,:), POINTER :: CRZ => NULL() ! Rain concentration (LIMA) +REAL, DIMENSION(:,:), POINTER :: CRARE => NULL() ! cloud radar reflectivity +REAL, DIMENSION(:,:), POINTER :: CRARE_ATT => NULL() ! attenuated (= more realistic) cloud radar reflectivity +REAL, DIMENSION(:,:), POINTER :: WZ => NULL() ! vertical profile of vertical velocity +REAL, DIMENSION(:,:), POINTER :: ZZ => NULL() ! vertical profile of mass point altitude (above sea) +REAL, DIMENSION(:,:), POINTER :: AER => NULL() ! Extinction at 550 nm +REAL, DIMENSION(:,:), POINTER :: DST_WL => NULL() ! Extinction by wavelength +REAL, DIMENSION(:), POINTER :: ZS => NULL() ! zs(n) +REAL, DIMENSION(:), POINTER :: TSRAD => NULL() ! Ts(n) +REAL, DIMENSION(:,:), POINTER :: DATIME => NULL() ! record for diachro +! +REAL, DIMENSION(:) , POINTER :: THW_FLUX => NULL() ! thw_flux(n) +REAL, DIMENSION(:) , POINTER :: RCW_FLUX => NULL() ! rcw_flux(n) +REAL, DIMENSION(:,:), POINTER :: SVW_FLUX => NULL() ! psw_flux(n) END TYPE FLYER REAL :: XLAM_CRAD ! cloud radar wavelength (m) ! diff --git a/src/MNH/modd_blowsnown.f90 b/src/MNH/modd_blowsnown.f90 index 38bf7b929..531c86fde 100644 --- a/src/MNH/modd_blowsnown.f90 +++ b/src/MNH/modd_blowsnown.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2018-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !! ###################### @@ -28,6 +28,7 @@ !! !! MODIFICATIONS !! ------------- +! P. Wautelet 08/02/2019: add missing NULL association for pointers !! !!-------------------------------------------------------------------- !! DECLARATIONS @@ -39,13 +40,13 @@ TYPE BLOWSNOW_t ! LOGICAL :: LSNOWSUBL ! switch to activate blowing snow sublimation ! -REAL, DIMENSION(:,:,:), POINTER :: XSNWSUBL3D ! Drifting snow instataneous +REAL, DIMENSION(:,:,:), POINTER :: XSNWSUBL3D => NULL() ! Drifting snow instataneous ! sublimation rate (kg/m3/s) -REAL, DIMENSION(:,:,:), POINTER :: XSNWCANO ! Total mass in Canopy at time t +REAL, DIMENSION(:,:,:), POINTER :: XSNWCANO => NULL() ! Total mass in Canopy at time t ! (:,:,1) : equivalent number concentration in Canopy (#/kg) ! (:,:,2) : equivalent mass concentration in Canopy (kg/kg) ! (:,:,3) : equivalent mass concentration in saltation (kg/kg) -REAL, DIMENSION(:,:,:), POINTER :: XRSNWCANOS ! Source of (rho*canopy mass) at time t +REAL, DIMENSION(:,:,:), POINTER :: XRSNWCANOS => NULL() ! Source of (rho*canopy mass) at time t diff --git a/src/MNH/modd_ch_budget_n.f90 b/src/MNH/modd_ch_budget_n.f90 index 41c039d07..4fe8de9b6 100644 --- a/src/MNH/modd_ch_budget_n.f90 +++ b/src/MNH/modd_ch_budget_n.f90 @@ -1,3 +1,7 @@ +!MNH_LIC Copyright 2016-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### MODULE MODD_CH_BUDGET_n @@ -15,19 +19,20 @@ !! !!** IMPLICIT ARGUMENTS !! ------------------ -!! None +!! None !! !! REFERENCE !! --------- !! Book2 of documentation of Meso-NH -!! +!! !! AUTHOR !! ------ !! F. Brosse *Laboratoire d'Aerologie UPS-CNRS* !! !! MODIFICATIONS !! ------------- -!! Original October 2016 +!! Original October 2016 +! P. Wautelet 08/02/2019: add missing NULL association for pointers !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -37,16 +42,16 @@ USE MODD_PARAMETERS, ONLY: JPMODELMAX IMPLICIT NONE TYPE TREAC_BUDGET - REAL , DIMENSION(:,:,:,:), POINTER :: XB_REAC - INTEGER, DIMENSION(:) , POINTER :: NB_REAC + REAL , DIMENSION(:,:,:,:), POINTER :: XB_REAC => NULL() + INTEGER, DIMENSION(:) , POINTER :: NB_REAC => NULL() END TYPE TREAC_BUDGET TYPE TCH_BUDGET_t - CHARACTER(LEN=32), DIMENSION(:), POINTER :: CNAMES_BUDGET - INTEGER, DIMENSION(:), POINTER :: NSPEC_BUDGET + CHARACTER(LEN=32), DIMENSION(:), POINTER :: CNAMES_BUDGET => NULL() + INTEGER, DIMENSION(:), POINTER :: NSPEC_BUDGET => NULL() INTEGER :: NEQ_BUDGET - TYPE(TREAC_BUDGET), DIMENSION(:), POINTER :: XTCHEM + TYPE(TREAC_BUDGET), DIMENSION(:), POINTER :: XTCHEM => NULL() END TYPE TCH_BUDGET_t diff --git a/src/MNH/modd_ch_constn.f90 b/src/MNH/modd_ch_constn.f90 index 92013fb84..f7495916e 100644 --- a/src/MNH/modd_ch_constn.f90 +++ b/src/MNH/modd_ch_constn.f90 @@ -1,14 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2001-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- -!----------------------------------------------------------------- ! ##################### MODULE MODD_CH_CONST_n ! ###################### @@ -32,6 +26,7 @@ !! !! MODIFICATIONS !! ------------- +! P. Wautelet 08/02/2019: add missing NULL association for pointers !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -43,14 +38,14 @@ IMPLICIT NONE TYPE CH_CONST_t ! - REAL, DIMENSION(:), POINTER :: XSREALMASSMOLVAL ! final molecular + REAL, DIMENSION(:), POINTER :: XSREALMASSMOLVAL => NULL() ! final molecular ! diffusivity value - REAL, DIMENSION(:), POINTER :: XSREALREACTVAL ! final chemical + REAL, DIMENSION(:), POINTER :: XSREALREACTVAL => NULL() ! final chemical ! reactivity factor ! with biologie - REAL, DIMENSION(:,:), POINTER :: XSREALHENRYVAL ! chemical Henry + REAL, DIMENSION(:,:), POINTER :: XSREALHENRYVAL => NULL() ! chemical Henry ! constant value - REAL :: XCONVERSION ! emission unit + REAL :: XCONVERSION ! emission unit ! conversion factor ! diff --git a/src/MNH/modd_ch_icen.f90 b/src/MNH/modd_ch_icen.f90 index 8f9323d0c..19f0a3c26 100644 --- a/src/MNH/modd_ch_icen.f90 +++ b/src/MNH/modd_ch_icen.f90 @@ -1,15 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2015-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source: /home//MESONH/MNH-V5-1-4/src/MODIF_TMICICE/modd_ch_icen.f90 -!----------------------------------------------------------------- -!----------------------------------------------------------------- -!----------------------------------------------------------------- -!----------------------------------------------------------------------------- !! ######################## MODULE MODD_CH_ICE_n !! ######################## @@ -28,6 +21,7 @@ !! MODIFICATIONS !! ------------- !! Original 11/12/15 +! P. Wautelet 08/02/2019: add missing NULL association for pointers !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -43,7 +37,7 @@ IMPLICIT NONE TYPE CH_ICE_t ! - INTEGER, POINTER, DIMENSION(:) :: NINDEXGI, NINDEXWI, NINDEXWG + INTEGER, POINTER, DIMENSION(:) :: NINDEXGI => NULL(), NINDEXWI => NULL(), NINDEXWG => NULL() ! !----------------------------------------------------------------------------- END TYPE CH_ICE_t diff --git a/src/MNH/modd_ch_phn.f90 b/src/MNH/modd_ch_phn.f90 index b321995c9..b1071e5f2 100644 --- a/src/MNH/modd_ch_phn.f90 +++ b/src/MNH/modd_ch_phn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2007-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2007-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !! ######################## @@ -23,6 +23,7 @@ !! P. Tulet Nov 2014 accumulated moles of aqueous species that fall at the surface !! P. Tulet & M. Leriche Nov 2015 add pH in rain at the surface !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 08/02/2019: add missing NULL association for pointers !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -38,11 +39,11 @@ IMPLICIT NONE TYPE CH_PH_t ! -! REAL, POINTER, DIMENSION(:,:,:) :: XPHC ! cloud -! REAL, POINTER, DIMENSION(:,:,:) :: XPHR ! rain - REAL, POINTER, DIMENSION(:,:,:) :: XACPRAQ ! sum of aqueous chemical species fall at the surface by rain - ! in moles i / m2 (ratio with XACPRR for concentration - REAL, POINTER, DIMENSION(:,:) :: XACPHR ! mean PH in accumulated surface rain +! REAL, POINTER, DIMENSION(:,:,:) :: XPHC => NULL() ! cloud +! REAL, POINTER, DIMENSION(:,:,:) :: XPHR => NULL() ! rain + REAL, POINTER, DIMENSION(:,:,:) :: XACPRAQ => NULL() ! sum of aqueous chemical species fall at the surface by rain + ! in moles i / m2 (ratio with XACPRR for concentration + REAL, POINTER, DIMENSION(:,:) :: XACPHR => NULL() ! mean PH in accumulated surface rain ! !----------------------------------------------------------------------------- END TYPE CH_PH_t diff --git a/src/MNH/modd_ch_prodlosstotn.f90 b/src/MNH/modd_ch_prodlosstotn.f90 index 289f97e34..a5fb75b1c 100644 --- a/src/MNH/modd_ch_prodlosstotn.f90 +++ b/src/MNH/modd_ch_prodlosstotn.f90 @@ -1,3 +1,8 @@ +!MNH_LIC Copyright 2016-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- !! ######################## MODULE MODD_CH_PRODLOSSTOT_n !! ######################## @@ -25,7 +30,8 @@ !! !! MODIFICATIONS !! ------------- -!! Original October 2016 +!! Original October 2016 +! P. Wautelet 08/02/2019: add missing NULL association for pointers !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -36,11 +42,11 @@ IMPLICIT NONE TYPE CH_PRODLOSSTOT_t ! - CHARACTER(LEN=32), DIMENSION(:), POINTER :: CNAMES_PRODLOSST - INTEGER, DIMENSION(:), POINTER :: NIND_SPEC + CHARACTER(LEN=32), DIMENSION(:), POINTER :: CNAMES_PRODLOSST => NULL() + INTEGER, DIMENSION(:), POINTER :: NIND_SPEC => NULL() INTEGER :: NEQ_PLT - REAL, DIMENSION(:,:,:,:), POINTER:: XPROD - REAL, DIMENSION(:,:,:,:), POINTER:: XLOSS + REAL, DIMENSION(:,:,:,:), POINTER:: XPROD => NULL() + REAL, DIMENSION(:,:,:,:), POINTER:: XLOSS => NULL() ! !----------------------------------------------------------------------------- diff --git a/src/MNH/modd_ch_rosenbrockn.f90 b/src/MNH/modd_ch_rosenbrockn.f90 index ff5b17a03..9e46c3d64 100644 --- a/src/MNH/modd_ch_rosenbrockn.f90 +++ b/src/MNH/modd_ch_rosenbrockn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2007-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !! ######################### MODULE MODD_CH_ROSENBROCK_n @@ -20,6 +20,7 @@ !! MODIFICATIONS !! ------------- !! Original 05/06/07 +! P. Wautelet 08/02/2019: add missing NULL association for pointers !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -36,19 +37,19 @@ TYPE CH_ROSENBROCK_t ! INTEGER :: NSPARSEDIM ! size of vectors NSPARSE_IROW and NSPARSE_ICOL ! - INTEGER, POINTER, DIMENSION(:) :: NSPARSE_IROW ! row index - INTEGER, POINTER, DIMENSION(:) :: NSPARSE_ICOL ! col index - INTEGER, POINTER, DIMENSION(:) :: NSPARSE_CROW ! first row element index - INTEGER, POINTER, DIMENSION(:) :: NSPARSE_DIAG ! diag index + INTEGER, POINTER, DIMENSION(:) :: NSPARSE_IROW => NULL() ! row index + INTEGER, POINTER, DIMENSION(:) :: NSPARSE_ICOL => NULL() ! col index + INTEGER, POINTER, DIMENSION(:) :: NSPARSE_CROW => NULL() ! first row element index + INTEGER, POINTER, DIMENSION(:) :: NSPARSE_DIAG => NULL() ! diag index ! of the sparse JACobian matrix ! INTEGER :: NEQ_NAQ ! number of Non-AQueous species INTEGER :: NSPARSEDIM_NAQ !size of vectors NSPARSE_IROW_NAQ and NSPARSE_ICOL_NAQ ! - INTEGER, POINTER, DIMENSION(:) :: NSPARSE_IROW_NAQ ! row index - INTEGER, POINTER, DIMENSION(:) :: NSPARSE_ICOL_NAQ ! col index - INTEGER, POINTER, DIMENSION(:) :: NSPARSE_CROW_NAQ ! first row element index - INTEGER, POINTER, DIMENSION(:) :: NSPARSE_DIAG_NAQ ! diag index + INTEGER, POINTER, DIMENSION(:) :: NSPARSE_IROW_NAQ => NULL() ! row index + INTEGER, POINTER, DIMENSION(:) :: NSPARSE_ICOL_NAQ => NULL() ! col index + INTEGER, POINTER, DIMENSION(:) :: NSPARSE_CROW_NAQ => NULL() ! first row element index + INTEGER, POINTER, DIMENSION(:) :: NSPARSE_DIAG_NAQ => NULL() ! diag index ! of the sparse JACobian matrix of NonAQueous species ! ! diff --git a/src/MNH/modd_lesn.f90 b/src/MNH/modd_lesn.f90 index dd37f5461..582a56618 100644 --- a/src/MNH/modd_lesn.f90 +++ b/src/MNH/modd_lesn.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/modd_lesn.f90,v $ $Revision: 1.2.2.2.2.1.2.1.12.2 $ $Date: 2014/01/09 15:01:56 $ -!----------------------------------------------------------------- -!----------------------------------------------------------------- ! ############### MODULE MODD_LES_n ! ############### @@ -22,13 +17,13 @@ !! !!** IMPLICIT ARGUMENTS !! ------------------ -!! None +!! None !! !! REFERENCE !! --------- !! Book2 of documentation of Meso-NH (module MODD_LES) !! Technical Specifications Report of the Meso-NH (chapters 2 and 3) -!! +!! !! !! AUTHOR !! ------ @@ -36,7 +31,7 @@ !! !! MODIFICATIONS !! ------------- -!! Original March 10, 1995 +!! Original March 10, 1995 !! !! (J.Stein) Sept. 25, 1995 add the model number in LES mode !! J. Cuxart Oct. 4, 1996 New time series @@ -44,6 +39,7 @@ !! V. Masson Nov. 6, 2002 LES budgets !! O.Thouron June, 2008 New radiation diagnostics !! 10/2016 (C.Lac) Add droplet deposition +! P. Wautelet 08/02/2019: add missing NULL association for pointers !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -647,20 +643,20 @@ TYPE LES_t ! REAL, DIMENSION(:,:,:), POINTER :: XCORRk_WW=>NULL() ! between w and w ! -!lw and sw fluxes up and down - REAL, DIMENSION(:,:), POINTER :: XLES_SWU !mean on the domain of the sw_up flux +!lw and sw fluxes up and down + REAL, DIMENSION(:,:), POINTER :: XLES_SWU => NULL() !mean on the domain of the sw_up flux !temporal serie - REAL, DIMENSION(:,:), POINTER :: XLES_SWD !mean on the domain of the sw_down flux + REAL, DIMENSION(:,:), POINTER :: XLES_SWD => NULL() !mean on the domain of the sw_down flux !temporal serie - REAL, DIMENSION(:,:), POINTER :: XLES_LWU !mean on the domain of the lw_up flux + REAL, DIMENSION(:,:), POINTER :: XLES_LWU => NULL() !mean on the domain of the lw_up flux !temporal serie - REAL, DIMENSION(:,:), POINTER :: XLES_LWD !mean on the domain of the lw_down flux + REAL, DIMENSION(:,:), POINTER :: XLES_LWD => NULL() !mean on the domain of the lw_down flux !temporal serie - REAL, DIMENSION(:,:), POINTER :: XLES_DTHRADSW !mean on the domain of dthrad_sw flux + REAL, DIMENSION(:,:), POINTER :: XLES_DTHRADSW => NULL() !mean on the domain of dthrad_sw flux !temporal serie - REAL, DIMENSION(:,:), POINTER :: XLES_DTHRADLW !mean on the domain of dthrad_lw flux + REAL, DIMENSION(:,:), POINTER :: XLES_DTHRADLW => NULL() !mean on the domain of dthrad_lw flux !temporal serie - REAL, DIMENSION(:,:), POINTER :: XLES_RADEFF ! effective radius + REAL, DIMENSION(:,:), POINTER :: XLES_RADEFF => NULL() ! effective radius !------------------------------------------------------------------------------- ! END TYPE LES_t diff --git a/src/MNH/modd_nesting.f90 b/src/MNH/modd_nesting.f90 index 077e97681..d644d0260 100644 --- a/src/MNH/modd_nesting.f90 +++ b/src/MNH/modd_nesting.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -24,7 +24,7 @@ !! REFERENCE !! --------- !! Book2 of documentation of Meso-NH (module MODD_NESTING) -!! +!! !! AUTHOR !! ------ !! J.P. Lafore *Meteo France* @@ -32,8 +32,9 @@ !! MODIFICATIONS !! ------------- !! Original 18/08/95 -!! updated 29/07/96 (J.P. Lafore) MY_NAME(m) introduction +!! updated 29/07/96 (J.P. Lafore) MY_NAME(m) introduction !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 08/02/2019: add missing NULL association for pointers !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -81,11 +82,11 @@ LOGICAL,SAVE, DIMENSION(JPMODELMAX) :: L2D_NEST ! Logical for 2D model LOGICAL,SAVE, DIMENSION(JPMODELMAX) :: LPACK_NEST ! Logical to compress 1D or 2D FM files of model m ! TYPE REAL_FIELD2D_ALL - REAL, DIMENSION(:,:), POINTER :: XFIELD2D + REAL, DIMENSION(:,:), POINTER :: XFIELD2D => NULL() END TYPE REAL_FIELD2D_ALL TYPE REAL_FIELD1D_ALL - REAL, DIMENSION(:), POINTER :: XFIELD1D + REAL, DIMENSION(:), POINTER :: XFIELD1D => NULL() END TYPE REAL_FIELD1D_ALL ! TYPE(REAL_FIELD2D_ALL), DIMENSION(JPMODELMAX), TARGET :: TXZS ! orography of model m diff --git a/src/MNH/modd_nudgingn.f90 b/src/MNH/modd_nudgingn.f90 index c4f4768ba..2bdadfb0f 100644 --- a/src/MNH/modd_nudgingn.f90 +++ b/src/MNH/modd_nudgingn.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 modd 2006/05/24 18:05:50 -!----------------------------------------------------------------- ! ################### MODULE MODD_NUDGING_n ! ################### @@ -32,6 +27,7 @@ !! MODIFICATIONS !! ------------- !! Original 15/05/06 +! P. Wautelet 08/02/2019: add missing NULL association for pointers !! !------------------------------------------------------------------------------- ! @@ -49,8 +45,8 @@ END TYPE NUDGING_t TYPE(NUDGING_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: NUDGING_MODEL -LOGICAL, POINTER :: LNUDGING -REAL, POINTER :: XTNUDGING +LOGICAL, POINTER :: LNUDGING => NULL() +REAL, POINTER :: XTNUDGING => NULL() CONTAINS diff --git a/src/MNH/modd_param_ecradn.f90 b/src/MNH/modd_param_ecradn.f90 index 988888427..a7bf0b344 100644 --- a/src/MNH/modd_param_ecradn.f90 +++ b/src/MNH/modd_param_ecradn.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2017-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 modd 2006/11/23 17:28:26 -!----------------------------------------------------------------- ! ######################## MODULE MODD_PARAM_ECRAD_n ! ######################## @@ -38,6 +33,7 @@ !! ------------- !! Original 29/05/2017 add ECRAD parameters as namelist !! Q. Libois +! P. Wautelet 08/02/2019: add missing NULL association for pointers !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -213,7 +209,7 @@ LOGICAL, POINTER :: LAPPROXSWUPDATE=>NULL() LOGICAL, POINTER :: LAPPROXLWUPDATE=>NULL() CHARACTER (LEN=255), POINTER :: CDATADIR=>NULL() #ifdef MNH_ECRAD -type(config_type), pointer :: rad_config +type(config_type), pointer :: rad_config => NULL() #endif CONTAINS diff --git a/src/MNH/modd_radiationsn.f90 b/src/MNH/modd_radiationsn.f90 index 455a2bc04..ec51e9e32 100644 --- a/src/MNH/modd_radiationsn.f90 +++ b/src/MNH/modd_radiationsn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################## @@ -37,6 +37,7 @@ !! 03/03/03 (V. Masson) surface radiative schemes and !! multiple wavelengths for surface SW !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 08/02/2019: add missing NULL association for pointers !! !------------------------------------------------------------------------------- ! @@ -108,18 +109,18 @@ TYPE RADIATIONS_t ! REAL, DIMENSION(:,:,:), POINTER :: XSCA_ALB=>NULL() ! scattered albedo for each spectral band ! REAL, DIMENSION(:,:,:), POINTER :: XEMIS=>NULL() ! emissivity ! REAL, DIMENSION(:,:), POINTER :: XTSRAD=>NULL() ! surface temperature - REAL, DIMENSION(:,:), POINTER :: XSEA=>NULL() ! sea fraction + REAL, DIMENSION(:,:), POINTER :: XSEA=>NULL() ! sea fraction ! ! REAL, DIMENSION(:,:), POINTER :: XZENITH=>NULL() ! zenithal angle (radian from the vertical) ! REAL, DIMENSION(:,:), POINTER :: XAZIM=>NULL() ! azimuthal angle (radian from N, clockwise) - REAL, DIMENSION(:,:), POINTER :: XALBUV=>NULL() ! UV albedo - REAL, DIMENSION(:,:,:), POINTER :: XSWU !SW_UP - REAL, DIMENSION(:,:,:), POINTER :: XSWD !SW_DOWN - REAL, DIMENSION(:,:,:), POINTER :: XLWU !LW_UP - REAL, DIMENSION(:,:,:), POINTER :: XLWD !LW_DOWN - REAL, DIMENSION(:,:,:), POINTER :: XDTHRADSW !DTHRAD SW - REAL, DIMENSION(:,:,:), POINTER :: XDTHRADLW !DTHRAD LW - REAL, DIMENSION(:,:,:), POINTER :: XRADEFF !effective radius + REAL, DIMENSION(:,:), POINTER :: XALBUV=>NULL() ! UV albedo + REAL, DIMENSION(:,:,:), POINTER :: XSWU => NULL() ! SW_UP + REAL, DIMENSION(:,:,:), POINTER :: XSWD => NULL() ! SW_DOWN + REAL, DIMENSION(:,:,:), POINTER :: XLWU => NULL() ! LW_UP + REAL, DIMENSION(:,:,:), POINTER :: XLWD => NULL() ! LW_DOWN + REAL, DIMENSION(:,:,:), POINTER :: XDTHRADSW => NULL() ! DTHRAD SW + REAL, DIMENSION(:,:,:), POINTER :: XDTHRADLW => NULL() ! DTHRAD LW + REAL, DIMENSION(:,:,:), POINTER :: XRADEFF => NULL() ! effective radius ! END TYPE RADIATIONS_t diff --git a/src/MNH/modd_sub_modeln.f90 b/src/MNH/modd_sub_modeln.f90 index 50cd6ec7b..48bfede31 100644 --- a/src/MNH/modd_sub_modeln.f90 +++ b/src/MNH/modd_sub_modeln.f90 @@ -1,11 +1,12 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications: ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! J. Escobar : 18/06/2018 , bug compile R*4 => real*8 pointer XT_VISC +! P. Wautelet 08/02/2019: add missing NULL association for pointers !----------------------------------------------------------------- ! ################# MODULE MODD_SUB_MODEL_n @@ -17,19 +18,19 @@ USE MODD_PARAMETERS, ONLY: JPMODELMAX IMPLICIT NONE TYPE SUB_MODEL_t - TYPE(LIST_ll), POINTER :: TZFIELDS_ll,TZLSFIELD_ll,TZFIELDM_ll + TYPE(LIST_ll), POINTER :: TZFIELDS_ll => NULL(), TZLSFIELD_ll => NULL(), TZFIELDM_ll => NULL() ! list of fields to update halo - TYPE(HALO2LIST_ll), POINTER :: TZHALO2M_ll, TZLSHALO2_ll + TYPE(HALO2LIST_ll), POINTER :: TZHALO2M_ll => NULL(), TZLSHALO2_ll => NULL() ! list of fields for the halo updates (2nd layer) ! halo lists and updates for 4th order schemes ! list of fields to update halo at time t - TYPE(LIST_ll), POINTER :: TZFIELDT_ll ! for meteorological scalars - TYPE(LIST_ll), POINTER :: TZFIELDMT_ll ! for momentum - TYPE(LIST_ll), POINTER :: TZFIELDSC_ll ! for tracer scalars + TYPE(LIST_ll), POINTER :: TZFIELDT_ll => NULL() ! for meteorological scalars + TYPE(LIST_ll), POINTER :: TZFIELDMT_ll => NULL() ! for momentum + TYPE(LIST_ll), POINTER :: TZFIELDSC_ll => NULL() ! for tracer scalars ! list of fields for the halo updates (2nd layer) at time t - TYPE(HALO2LIST_ll), POINTER :: TZHALO2T_ll - TYPE(HALO2LIST_ll), POINTER :: TZHALO2MT_ll - TYPE(HALO2LIST_ll), POINTER :: TZHALO2SC_ll + TYPE(HALO2LIST_ll), POINTER :: TZHALO2T_ll => NULL() + TYPE(HALO2LIST_ll), POINTER :: TZHALO2MT_ll => NULL() + TYPE(HALO2LIST_ll), POINTER :: TZHALO2SC_ll => NULL() INTEGER :: IBAK, IOUT ! number of the backup / output REAL*8,DIMENSION(2) :: XT_START REAL*8,DIMENSION(2) :: XT_STORE,XT_BOUND,XT_GUESS diff --git a/src/MNH/modd_timez.f90 b/src/MNH/modd_timez.f90 index bf8bcbd11..9c9235ed4 100644 --- a/src/MNH/modd_timez.f90 +++ b/src/MNH/modd_timez.f90 @@ -1,7 +1,10 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications +! P. Wautelet 08/02/2019: add missing NULL association for pointers MODULE MODD_TIMEZ USE MODD_PARAMETERS, ONLY: JPMODELMAX @@ -26,7 +29,7 @@ MODULE MODD_TIMEZ REAL*8,DIMENSION(2) :: T_WRIT3D_WRIT = 0.0 REAL*8,DIMENSION(2) :: T_WRIT3D_WAIT = 0.0 REAL*8,DIMENSION(2) :: T_WRIT3D_ALL = 0.0 - + REAL*8,DIMENSION(2) :: T_WRIT2D_GATH = 0.0 REAL*8,DIMENSION(2) :: T_WRIT2D_WRIT = 0.0 REAL*8,DIMENSION(2) :: T_WRIT2D_ALL = 0.0 @@ -51,7 +54,7 @@ MODULE MODD_TIMEZ TYPE(SUB_TIMEZ_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: SUB_TIMEZN -TYPE(SUB_TIMEZ_t), POINTER :: TIMEZ +TYPE(SUB_TIMEZ_t), POINTER :: TIMEZ => NULL() CONTAINS -- GitLab From b78b5cf0eca288a73d61bef05f80e5ee58d1dc00 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 8 Feb 2019 11:29:16 +0100 Subject: [PATCH 035/139] Philippe 08/02/2019: minor bug: compute ZWORK36 only when needed --- src/MNH/write_lfifm1_for_diag.f90 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90 index 150421cb6..188a9f0c6 100644 --- a/src/MNH/write_lfifm1_for_diag.f90 +++ b/src/MNH/write_lfifm1_for_diag.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !################################ @@ -142,6 +142,7 @@ END MODULE MODI_WRITE_LFIFM1_FOR_DIAG !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! D.Ricard and P.Marquet 2016-2017 : THETAL + THETAS1 POVOS1 or THETAS2 POVOS2 !! if LMOIST_L LMOIST_S1 or LMOIST_S2 +! P. Wautelet 08/02/2019: minor bug: compute ZWORK36 only when needed !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -738,14 +739,14 @@ IF (LHU_FLX) THEN ZWORK35(:,:,:) = XRHODREF(:,:,:) * XRT(:,:,:,1) ZWORK31(:,:,:) = MXM(ZWORK35(:,:,:)) * XUT(:,:,:) ZWORK32(:,:,:) = MYM(ZWORK35(:,:,:)) * XVT(:,:,:) + ZWORK35(:,:,:) = GX_U_M(1,IKU,1,ZWORK31,XDXX,XDZZ,XDZX) + GY_V_M(1,IKU,1,ZWORK32,XDYY,XDZZ,XDZY) IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'LIMA') THEN ZWORK36(:,:,:) = ZWORK35(:,:,:) + XRHODREF(:,:,:) * (XRT(:,:,:,2) + & XRT(:,:,:,3) + XRT(:,:,:,4) + XRT(:,:,:,5) + XRT(:,:,:,6)) ZWORK33(:,:,:) = MXM(ZWORK36(:,:,:)) * XUT(:,:,:) ZWORK34(:,:,:) = MYM(ZWORK36(:,:,:)) * XVT(:,:,:) + ZWORK36(:,:,:) = GX_U_M(1,IKU,1,ZWORK33,XDXX,XDZZ,XDZX) + GY_V_M(1,IKU,1,ZWORK34,XDYY,XDZZ,XDZY) ENDIF - ZWORK35(:,:,:) = GX_U_M(1,IKU,1,ZWORK31,XDXX,XDZZ,XDZX) + GY_V_M(1,IKU,1,ZWORK32,XDYY,XDZZ,XDZY) - ZWORK36(:,:,:) = GX_U_M(1,IKU,1,ZWORK33,XDXX,XDZZ,XDZX) + GY_V_M(1,IKU,1,ZWORK34,XDYY,XDZZ,XDZY) ! ! Integration sur 3000 m ! -- GitLab From 5ba2edd9afdc844200ea284719c40d2ba8bab749 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 8 Feb 2019 11:44:24 +0100 Subject: [PATCH 036/139] Philippe 08/02/2019: SURFEX: fix intent of PFIELD_OUT (OUT->INOUT) --- src/SURFEX/average_diag.F90 | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/SURFEX/average_diag.F90 b/src/SURFEX/average_diag.F90 index 14364414e..158ea03af 100644 --- a/src/SURFEX/average_diag.F90 +++ b/src/SURFEX/average_diag.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. ! ######### SUBROUTINE AVERAGE_DIAG(PFRAC_TILE, DGO, D, ND, DC, NDC ) @@ -37,6 +37,7 @@ !! Modified 08/2009 (B. Decharme) : new diag ! 02/2010 - S. Riette - Security for wind average in case of XUNDEF values ! B. decharme 04/2013 : Add EVAP and SUBL diag +! P. Wautelet 02/2019: bug: fixed intent of PFIELD_OUT (OUT->INOUT) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -323,7 +324,7 @@ IMPLICIT NONE ! REAL, DIMENSION(:),INTENT(IN) :: PFRAC REAL, DIMENSION(:),INTENT(IN) :: PFIELD_IN -REAL, DIMENSION(:), INTENT(OUT) :: PFIELD_OUT +REAL, DIMENSION(:), INTENT(INOUT) :: PFIELD_OUT INTEGER, INTENT(IN) :: KTILE REAL(KIND=JPRB) :: ZHOOK_HANDLE INTEGER :: JT @@ -350,7 +351,7 @@ IMPLICIT NONE ! REAL, DIMENSION(:),INTENT(IN) :: PFRAC REAL, DIMENSION(:,:),INTENT(IN) :: PFIELD_IN -REAL, DIMENSION(:,:), INTENT(OUT) :: PFIELD_OUT +REAL, DIMENSION(:,:), INTENT(INOUT) :: PFIELD_OUT INTEGER, INTENT(IN) :: KTILE REAL(KIND=JPRB) :: ZHOOK_HANDLE INTEGER :: JT, JL @@ -379,7 +380,7 @@ IMPLICIT NONE REAL, DIMENSION(:),INTENT(IN) :: PFRAC REAL, DIMENSION(:),INTENT(IN) :: PFIELD_IN REAL, DIMENSION(:),INTENT(IN) :: PREF -REAL, DIMENSION(:), INTENT(OUT) :: PFIELD_OUT +REAL, DIMENSION(:), INTENT(INOUT) :: PFIELD_OUT INTEGER, INTENT(IN) :: KTILE REAL(KIND=JPRB) :: ZHOOK_HANDLE ! @@ -413,7 +414,7 @@ IMPLICIT NONE ! REAL, DIMENSION(:),INTENT(IN) :: PFRAC REAL, DIMENSION(:),INTENT(IN) :: PFIELD_IN -REAL, DIMENSION(:), INTENT(OUT) :: PFIELD_OUT +REAL, DIMENSION(:), INTENT(INOUT) :: PFIELD_OUT INTEGER, INTENT(IN) :: KTILE REAL, DIMENSION(:), INTENT(INOUT) :: PLAND REAL, DIMENSION(:), INTENT(INOUT) :: PSEA -- GitLab From bcfa4fc72c2471aa1c3f6523a73ccaaf8be91d0f Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 8 Feb 2019 13:16:46 +0100 Subject: [PATCH 037/139] Philippe 08/02/2019: allocate to zero-size non associated pointers --- src/MNH/ini_spectren.f90 | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/MNH/ini_spectren.f90 b/src/MNH/ini_spectren.f90 index d2564f410..b932716fc 100644 --- a/src/MNH/ini_spectren.f90 +++ b/src/MNH/ini_spectren.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -34,8 +34,8 @@ END MODULE MODI_INI_SPECTRE_n !! J.P Chaboureau * L.A* !! 10/2016 (C.Lac) Cleaning of the modules !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -!! - +! P. Wautelet 08/02/2019: allocate to zero-size non associated pointers +!! !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -918,6 +918,10 @@ WRITE(COUTFILE,'(A,".",I1,".",A)') CEXP,KMI,TRIM(ADJUSTL(CSEG)) !* 17. INITIALIZE THE PARAMETERS FOR THE DYNAMICS ! ------------------------------------------ ! +!Allocate to zero size to not pass unallocated pointers +ALLOCATE(XALKBAS(0)) +ALLOCATE(XALKWBAS(0)) +! CALL INI_DYNAMICS(XLON,XLAT,XRHODJ,XTHVREF,XMAP,XZZ,XDXHAT,XDYHAT, & XZHAT,CLBCX,CLBCY,XTSTEP, & LVE_RELAX,LVE_RELAX_GRD,LHORELAX_UVWTH,LHORELAX_RV, & -- GitLab From 8e8b3ba0b8f0ccdfec5eb4e539cee6aebddc472d Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 8 Feb 2019 15:54:18 +0100 Subject: [PATCH 038/139] Philippe 08/02/2019: bug fix in ch_f77: missing argument + wrong use of an non initialized value --- src/MNH/ch_f77.fx90 | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/MNH/ch_f77.fx90 b/src/MNH/ch_f77.fx90 index 79387b824..be71fe6c0 100644 --- a/src/MNH/ch_f77.fx90 +++ b/src/MNH/ch_f77.fx90 @@ -20,6 +20,8 @@ C**MODIFIED: 10/01/2019 (P.Wautelet) use newunit argument to open files C + bug corrections: some files were not closed C**MODIFIED: 10/01/2019 (P.Wautelet) replace double precision declarations by C real(kind(0.0d0)) (to allow compilation by NAG compiler) +C**MODIFIED: 08/02/2019 (P.Wautelet) bug fixes: missing argument +C + wrong use of an non initialized value C! C! C! @@ -4974,7 +4976,6 @@ c IF(zaird .GT. nzero) aircon(izout) = zaird * in subroutine. * Optical depths in Lyman-alpha and SRB will be over-written * in subroutine la_srb.f - CALL seto2(nz,z,nw,wl,aircol,o2xs1, dto2, kout) * Ozone optical depths @@ -20251,11 +20252,11 @@ c INCLUDE 'params' mabs = 4 - IF (mabs. EQ. 1) CALL no2xs_d(nz,tlev,nw,wl, no2xs) - IF (mabs .EQ. 2) CALL no2xs_jpl94(nz,tlev,nw,wl, no2xs) - IF (mabs .EQ. 3) CALL no2xs_har(nz,tlev,nw,wl, no2xs) - IF (mabs .EQ. 4) CALL no2xs_jpl06a(nz,tlev,nw,wl, no2xs) - IF (mabs .EQ. 5) CALL no2xs_jpl06b(nz,tlev,nw,wl, no2xs) + IF (mabs. EQ. 1) CALL no2xs_d(nz,tlev,nw,wl, no2xs, kout) + IF (mabs .EQ. 2) CALL no2xs_jpl94(nz,tlev,nw,wl, no2xs, kout) + IF (mabs .EQ. 3) CALL no2xs_har(nz,tlev,nw,wl, no2xs, kout) + IF (mabs .EQ. 4) CALL no2xs_jpl06a(nz,tlev,nw,wl, no2xs, kout) + IF (mabs .EQ. 5) CALL no2xs_jpl06b(nz,tlev,nw,wl, no2xs, kout) * quantum yields * myld = 1 NO2_calvert.yld (same as JPL2002) @@ -41184,8 +41185,8 @@ c INCLUDE 'params' * Assumes that O2 = 20.95 % of air density. If desire different O2 * profile (e.g. for upper atmosphere) then can load it here. - DO iz = 1, nz - DO iw =1, nw - 1 + DO iz = 1, nz-1 + DO iw =1, nw - 1 dto2(iz,iw) = 0.2095 * cz(iz) * o2xs1(iw) ENDDO ENDDO @@ -42824,7 +42825,8 @@ c INCLUDE 'params' * calculation is based on nz-1 layers (not nz). col(nz-1) = col(nz-1) + 1.E5 * hscale * con(nz) - + col(nz) = 0. + * Scale by input surface pressure: * min value = 1 molec cm-2 -- GitLab From 6ff07043e6465fd7e41ece216da3942196af48c8 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 8 Feb 2019 15:56:17 +0100 Subject: [PATCH 039/139] Philippe 08/02/2019: bug fix: compute ZEPSI_CLOUD only once and only when it is needed --- src/MNH/compute_entr_detr.f90 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/MNH/compute_entr_detr.f90 b/src/MNH/compute_entr_detr.f90 index b7346fad9..da35fea05 100644 --- a/src/MNH/compute_entr_detr.f90 +++ b/src/MNH/compute_entr_detr.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2009-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ######spl MODULE MODI_COMPUTE_ENTR_DETR @@ -120,6 +120,7 @@ END MODULE MODI_COMPUTE_ENTR_DETR !! improvement of continuity at the condensation level !! S. Riette Nov 2013: protection against zero divide for min value of dry PDETR !! R.Honnert Oct 2016 : Update with AROME +! P. Wautelet 08/02/2019: bug fix: compute ZEPSI_CLOUD only once and only when it is needed !! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -468,7 +469,7 @@ ENDDO ! 3.4 Computation of PENTR and PDETR DO JLOOP=1,SIZE(OTEST) IF(OTEST(JLOOP)) THEN - ZEPSI_CLOUD=MIN(ZDELTA,ZEPSI) + ZEPSI_CLOUD(JLOOP)=MIN(ZDELTA(JLOOP),ZEPSI(JLOOP)) PENTR_CLD(JLOOP) = (1.-PPART_DRY(JLOOP))*ZCOEFFMF_CLOUD*PRHODREF(JLOOP)*ZEPSI_CLOUD(JLOOP) PDETR_CLD(JLOOP) = (1.-PPART_DRY(JLOOP))*ZCOEFFMF_CLOUD*PRHODREF(JLOOP)*ZDELTA(JLOOP) PENTR(JLOOP) = PENTR(JLOOP)+PENTR_CLD(JLOOP) -- GitLab From 3f479de2fa6ab21b62f8519c6a7a04b97932d135 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 11 Feb 2019 13:30:37 +0100 Subject: [PATCH 040/139] Philippe 11/02/2019: bug: added missing use of MODI_CH_MONITOR_n --- src/MNH/diag.f90 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90 index 35bf35b9a..79bc2c74b 100644 --- a/src/MNH/diag.f90 +++ b/src/MNH/diag.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############ @@ -88,6 +88,7 @@ !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! V.Vionnet 07/2017 add LWIND_CONTRAV !! 11/2017 (D. Ricard, P. Marquet) add diagnostics for THETAS +! P. Wautelet 11/02/2019: added missing use of MODI_CH_MONITOR_n !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -148,6 +149,7 @@ USE MODE_POS USE MODE_TIME ! USE MODI_AIRCRAFT_BALLOON +USE MODI_CH_MONITOR_n USE MODI_COMPUTE_R00 USE MODI_DIAG_SURF_ATM_N USE MODI_INIT_MNH -- GitLab From 07df4243f46b3dc20ce094a4d71c245e0db097c9 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 11 Feb 2019 15:04:20 +0100 Subject: [PATCH 041/139] Philippe 11/02/2019: dimensions of PINPRC and PINDEP not necessarily KIT,KJT --- src/MNH/ice4_sedimentation_split.f90 | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/MNH/ice4_sedimentation_split.f90 b/src/MNH/ice4_sedimentation_split.f90 index 8efa25925..f42739740 100644 --- a/src/MNH/ice4_sedimentation_split.f90 +++ b/src/MNH/ice4_sedimentation_split.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. MODULE MODI_ICE4_SEDIMENTATION_SPLIT INTERFACE @@ -34,8 +34,8 @@ REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT) :: PRSS ! Snow/aggregat REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT) :: PRGS ! Graupel m.r. source REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN) :: PRGT ! Graupel/hail m.r. at t -REAL, DIMENSION(KIT,KJT), INTENT(OUT) :: PINPRC ! Cloud instant precip -REAL, DIMENSION(KIT,KJT), INTENT(OUT) :: PINDEP ! Cloud instant deposition +REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRC ! Cloud instant precip +REAL, DIMENSION(:,:), INTENT(OUT) :: PINDEP ! Cloud instant deposition REAL, DIMENSION(KIT,KJT), INTENT(OUT) :: PINPRR ! Rain instant precip REAL, DIMENSION(KIT,KJT), INTENT(OUT) :: PINPRI ! Pristine ice instant precip REAL, DIMENSION(KIT,KJT), INTENT(OUT) :: PINPRS ! Snow instant precip @@ -69,6 +69,7 @@ SUBROUTINE ICE4_SEDIMENTATION_SPLIT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKTB !! MODIFICATIONS !! ------------- !! +! P. Wautelet 11/02/2019: dimensions of PINPRC and PINDEP not necessarily KIT,KJT ! ! !* 0. DECLARATIONS @@ -107,8 +108,8 @@ REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT) :: PRSS ! Snow/aggregat REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT) :: PRGS ! Graupel m.r. source REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN) :: PRGT ! Graupel/hail m.r. at t -REAL, DIMENSION(KIT,KJT), INTENT(OUT) :: PINPRC ! Cloud instant precip -REAL, DIMENSION(KIT,KJT), INTENT(OUT) :: PINDEP ! Cloud instant deposition +REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRC ! Cloud instant precip +REAL, DIMENSION(:,:), INTENT(OUT) :: PINDEP ! Cloud instant deposition REAL, DIMENSION(KIT,KJT), INTENT(OUT) :: PINPRR ! Rain instant precip REAL, DIMENSION(KIT,KJT), INTENT(OUT) :: PINPRI ! Pristine ice instant precip REAL, DIMENSION(KIT,KJT), INTENT(OUT) :: PINPRS ! Snow instant precip -- GitLab From 7d17f6da9e95e827246e2135a20c0dac21b5eef6 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Tue, 12 Feb 2019 16:57:02 +0100 Subject: [PATCH 042/139] Philippe 12/02/2019: bugfix: variables were not always initialized + ensure a variable is always positive --- src/MNH/ch_aqueous_sedim1mom.f90 | 8 ++++++-- src/MNH/ch_monitorn.f90 | 7 +++++-- src/MNH/convect_updraft.f90 | 12 +++++------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/MNH/ch_aqueous_sedim1mom.f90 b/src/MNH/ch_aqueous_sedim1mom.f90 index 9bf9109b0..cd0cf2e14 100644 --- a/src/MNH/ch_aqueous_sedim1mom.f90 +++ b/src/MNH/ch_aqueous_sedim1mom.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2007-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ################################ MODULE MODI_CH_AQUEOUS_SEDIM1MOM @@ -79,6 +79,7 @@ END MODULE MODI_CH_AQUEOUS_SEDIM1MOM !! 17/09/10 (M Leriche) add LUSECHIC flag !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! 16/12/15 (M Leriche) compute instantaneous rain at the surface +! P. Wautelet 12/02/2019: bugfix: ZRR_SEDIM was not initialized everywhere !! !------------------------------------------------------------------------------- ! @@ -268,6 +269,7 @@ DO JN = 1 , KSPLITR ! ZZW(:) = ZFSEDR * ZZZRRS(:)**(ZEXSEDR) * ZRHODREF(:)**(ZEXSEDR-ZCEXVT) ZWSED(:,:,:) = UNPACK( ZZW(:),MASK=GSEDIMR(:,:,:),FIELD=0.0 ) + ZRR_SEDIM(:,:,:) = 0.0 DO JK = IKB , IKE ZRR_SEDIM(:,:,JK) = ZW(:,:,JK)*(ZWSED(:,:,JK+1)-ZWSED(:,:,JK)) END DO @@ -308,6 +310,7 @@ DO JN = 1 , KSPLITR ! ZZW(:) = XFSEDS * ZZZRSS(:)**(XEXSEDS) * ZRHODREF(:)**(XEXSEDS-ZCEXVT) ZWSED(:,:,:) = UNPACK( ZZW(:),MASK=GSEDIMS(:,:,:),FIELD=0.0 ) + ZRR_SEDIM(:,:,:) = 0.0 DO JK = IKB , IKE ZRR_SEDIM(:,:,JK) = ZW(:,:,JK)*(ZWSED(:,:,JK+1)-ZWSED(:,:,JK)) END DO @@ -336,6 +339,7 @@ DO JN = 1 , KSPLITR ! ZZW(:) = XFSEDG * ZZZRGS(:)**(XEXSEDG) * ZRHODREF(:)**(XEXSEDG-ZCEXVT) ZWSED(:,:,:) = UNPACK( ZZW(:),MASK=GSEDIMG(:,:,:),FIELD=0.0 ) + ZRR_SEDIM(:,:,:) = 0.0 DO JK = IKB , IKE ZRR_SEDIM(:,:,JK) = ZW(:,:,JK)*(ZWSED(:,:,JK+1)-ZWSED(:,:,JK)) END DO diff --git a/src/MNH/ch_monitorn.f90 b/src/MNH/ch_monitorn.f90 index fb7fda980..9ea38d3e4 100644 --- a/src/MNH/ch_monitorn.f90 +++ b/src/MNH/ch_monitorn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !! ######################## MODULE MODI_CH_MONITOR_n @@ -113,6 +113,7 @@ END MODULE MODI_CH_MONITOR_n !! 20/01/17 (G.Delautier) bug if CPROGRAM/=DIAG !! 01/10/17 (C.Lac) add correction of negativity !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 12/02/2019: bugfix: ZINPRR was not initialized all the time !! !! EXTERNAL !! -------- @@ -845,6 +846,8 @@ IF (LUSECHAQ.AND.(NRRL>=2) ) THEN XRSVS(:,:,:,NSV_CHACBEG+NEQAQ/2:NSV_CHACEND),& ZINPRR(:,:) ) END SELECT + ELSE + ZINPRR(:,:) = 0. END IF ELSE IF (LUSECHAQ.AND.(NRRL==1) ) THEN CALL CH_AQUEOUS_CHECK (PTSTEP, XRHODREF, XRHODJ, XRRS, XRSVS, NRRL, & diff --git a/src/MNH/convect_updraft.f90 b/src/MNH/convect_updraft.f90 index a363aec97..13b65f82a 100644 --- a/src/MNH/convect_updraft.f90 +++ b/src/MNH/convect_updraft.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 conv 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ################# MODULE MODI_CONVECT_UPDRAFT ! ################# @@ -149,6 +144,7 @@ END MODULE MODI_CONVECT_UPDRAFT !! Original 07/11/95 !! Last modified 10/12/97 !! V.Masson, C.Lac, Sept. 2010 : Correction of a loop for reproducibility +! P. Wautelet 12/02/2019: bugfix: PURR/PURS were sometimes =-0. -> problems later !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -384,7 +380,9 @@ DO JK = MAX( IKB + 1, JKMIN ), IKE - 1 PUTPR(:) = PUTPR(:) + PUPR(:,JKP) ! total precipitation rate ZWORK2(:) = PURR(:,JKP) / MAX( 1.E-8, PURC(:,JKP) + PURI(:,JKP) ) PURR(:,JKP) = ZWORK2(:) * PURC(:,JKP) ! liquid precipitation + PURR(:,JKP)=MAX(TINY(0.),PURR(:,JKP)) !To prevent problems when =-0. (occur sometimes) PURS(:,JKP) = ZWORK2(:) * PURI(:,JKP) ! solid precipitation + PURS(:,JKP)=MAX(TINY(0.),PURS(:,JKP)) !To prevent problems when =-0. (occur sometimes) ! ! !* 7. Update r_c, r_i, enthalpy, r_w for precipitation -- GitLab From 254a75843f68526efaa60d415219171b6021bffc Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 13 Feb 2019 12:34:03 +0100 Subject: [PATCH 043/139] Philippe 13/02/2019: initialize PLBXSVM and PLBYSVM in all cases --- src/MNH/ini_lb.f90 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/MNH/ini_lb.f90 b/src/MNH/ini_lb.f90 index eb93466cf..087ffad67 100644 --- a/src/MNH/ini_lb.f90 +++ b/src/MNH/ini_lb.f90 @@ -132,6 +132,7 @@ SUBROUTINE INI_LB(TPINIFILE,OLSOURCE,KSV, & !! J.-P. Pinty 09/02/16 Add LIMA that is LBC for CCN and IFN !! M.Leriche 09/02/16 Treat gas and aq. chemicals separately !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 13/02/2019: initialize PLBXSVM and PLBYSVM in all cases !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -469,7 +470,10 @@ END IF ! !* 2.6 LB-Scalar Variables ! -IF (KSV > 0) THEN +PLBXSVM(:,:,:,:) = 0. +PLBYSVM(:,:,:,:) = 0. +! +IF (KSV > 0) THEN IF (ANY(HGETSVM(1:KSV)=='READ')) THEN TZFIELD%CMNHNAME = 'HORELAX_SV' TZFIELD%CSTDNAME = '' -- GitLab From eb3580a89c2322b29b76a40715bac53b5a4edad3 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 13 Feb 2019 12:36:55 +0100 Subject: [PATCH 044/139] Philippe 13/02/2019: initialize XALBUV even if no radiation (needed in CH_INTERP_JVALUES) --- src/MNH/ini_modeln.f90 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index 1bbb5cf60..443ca3adf 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -278,7 +278,8 @@ END MODULE MODI_INI_MODEL_n !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! V. Vionnet : 18/07/2017 : add blowing snow scheme !! 01/18 J.Colin Add DRAG -!! P.Wautelet 29/01/2019: bug: add missing zero-size allocations +! P. Wautelet 29/01/2019: bug: add missing zero-size allocations +! P. Wautelet 13/02/2019: initialize XALBUV even if no radiation (needed in CH_INTERP_JVALUES) !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -460,6 +461,8 @@ TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file ! !* 0.2 declarations of local variables ! +REAL, PARAMETER :: NALBUV_DEFAULT = 0.01 ! Arbitrary low value for XALBUV +! INTEGER :: JSV ! Loop index INTEGER :: IRESP ! Return code of FM routines INTEGER :: ILUOUT ! Logical unit number of output-listing @@ -1325,6 +1328,7 @@ ALLOCATE(XLW_BANDS (NLWB_MNH)) ALLOCATE(XZENITH (IIU,IJU)) ALLOCATE(XAZIM (IIU,IJU)) ALLOCATE(XALBUV (IIU,IJU)) +XALBUV(:,:) = NALBUV_DEFAULT !Set to an arbitrary low value (XALBUV is needed in CH_INTERP_JVALUES even if no radiation) ALLOCATE(XDIRSRFSWD(IIU,IJU,NSWB_MNH)) ALLOCATE(XSCAFLASWD(IIU,IJU,NSWB_MNH)) ALLOCATE(XFLALWD (IIU,IJU)) -- GitLab From 71cb6568c797dad16e7b2692dfe3b94983c3766a Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 13 Feb 2019 12:38:32 +0100 Subject: [PATCH 045/139] Philippe 13/02/2019: remove PPABSM and PTSTEP dummy arguments of READ_FIELD (bugfix: PPABSM was intent(OUT)) --- src/MNH/ini_modeln.f90 | 5 +++-- src/MNH/read_field.f90 | 19 +++++++------------ 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index 443ca3adf..41441eff3 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -280,6 +280,7 @@ END MODULE MODI_INI_MODEL_n !! 01/18 J.Colin Add DRAG ! P. Wautelet 29/01/2019: bug: add missing zero-size allocations ! P. Wautelet 13/02/2019: initialize XALBUV even if no radiation (needed in CH_INTERP_JVALUES) +! P. Wautelet 13/02/2019: removed PPABSM and PTSTEP dummy arguments of READ_FIELD !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -1747,7 +1748,7 @@ IF (CCLOUD=='LIMA') CALL INIT_AEROSOL_PROPERTIES ! -------------------------------- ! CALL MPPDB_CHECK3D(XUT,"INI_MODEL_N-before read_field::XUT",PRECISION) -CALL READ_FIELD(TPINIFILE,IIU,IJU,IKU,XTSTEP, & +CALL READ_FIELD(TPINIFILE,IIU,IJU,IKU, & CGETTKET,CGETRVT,CGETRCT,CGETRRT,CGETRIT,CGETCIT, & CGETRST,CGETRGT,CGETRHT,CGETSVT,CGETSRCT,CGETSIGS,CGETCLDFR, & CGETBL_DEPTH,CGETSBL_DEPTH,CGETPHC,CGETPHR,CUVW_ADV_SCHEME, & @@ -1755,7 +1756,7 @@ CALL READ_FIELD(TPINIFILE,IIU,IJU,IKU,XTSTEP, & NSIZELBXTKE_ll,NSIZELBYTKE_ll, & NSIZELBXR_ll,NSIZELBYR_ll,NSIZELBXSV_ll,NSIZELBYSV_ll, & XUM,XVM,XWM,XDUM,XDVM,XDWM, & - XUT,XVT,XWT,XTHT,XPABST,XPABSM,XTKET,XRTKEMS, & + XUT,XVT,XWT,XTHT,XPABST,XTKET,XRTKEMS, & XRT,XSVT,XCIT,XDRYMASST, & XSIGS,XSRCT,XCLDFR,XBL_DEPTH,XSBL_DEPTH,XWTHVMF,XPHC,XPHR, & XLSUM,XLSVM,XLSWM,XLSTHM,XLSRVM, & diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90 index da3a813fc..cba6d68cd 100644 --- a/src/MNH/read_field.f90 +++ b/src/MNH/read_field.f90 @@ -8,7 +8,7 @@ ! INTERFACE ! - SUBROUTINE READ_FIELD(TPINIFILE,KIU,KJU,KKU,PTSTEP, & + SUBROUTINE READ_FIELD(TPINIFILE,KIU,KJU,KKU, & HGETTKET,HGETRVT,HGETRCT,HGETRRT,HGETRIT,HGETCIT, & HGETRST,HGETRGT,HGETRHT,HGETSVT,HGETSRCT,HGETSIGS,HGETCLDFR, & HGETBL_DEPTH,HGETSBL_DEPTH,HGETPHC,HGETPHR,HUVW_ADV_SCHEME, & @@ -16,7 +16,7 @@ INTERFACE KSIZELBXTKE_ll,KSIZELBYTKE_ll, & KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll, & PUM,PVM,PWM,PDUM,PDVM,PDWM, & - PUT,PVT,PWT,PTHT,PPABST,PPABSM,PTKET,PRTKEMS, & + PUT,PVT,PWT,PTHT,PPABST,PTKET,PRTKEMS, & PRT,PSVT,PCIT,PDRYMASST, & PSIGS,PSRCT,PCLDFR,PBL_DEPTH,PSBL_DEPTH,PWTHVMF,PPHC,PPHR, & PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM, & @@ -24,7 +24,7 @@ INTERFACE PLBYUM,PLBYVM,PLBYWM,PLBYTHM,PLBYTKEM,PLBYRM,PLBYSVM, & KFRC,TPDTFRC,PUFRC,PVFRC,PWFRC,PTHFRC,PRVFRC, & PTENDTHFRC,PTENDRVFRC,PGXTHFRC,PGYTHFRC,PPGROUNDFRC,PATC, & - PTENDUFRC,PTENDVFRC, & + PTENDUFRC,PTENDVFRC, & KADVFRC,TPDTADVFRC,PDTHFRC,PDRVFRC, & KRELFRC,TPDTRELFRC, PTHREL, PRVREL, & PVTH_FLUX_M,PWTH_FLUX_M,PVU_FLUX_M, & @@ -37,8 +37,6 @@ USE MODD_TIME ! for type DATE_TIME TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file INTEGER, INTENT(IN) :: KIU, KJU, KKU ! array sizes in x, y and z directions -REAL, INTENT(IN) :: PTSTEP - ! current Time STEP ! CHARACTER (LEN=*), INTENT(IN) :: HGETTKET, & HGETRVT,HGETRCT,HGETRRT, & @@ -72,7 +70,6 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PUT,PVT,PWT ! U,V,W at t REAL, DIMENSION(:,:,:), INTENT(OUT) :: PTHT,PTKET ! theta, tke and REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRTKEMS ! tke adv source REAL, DIMENSION(:,:,:), INTENT(OUT) :: PPABST ! pressure at t -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PPABSM ! pressure at t-1 REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PRT,PSVT ! moist and scalar ! variables at t REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCT ! turbulent flux @@ -124,7 +121,7 @@ END INTERFACE END MODULE MODI_READ_FIELD ! ! ######################################################################## - SUBROUTINE READ_FIELD(TPINIFILE,KIU,KJU,KKU,PTSTEP, & + SUBROUTINE READ_FIELD(TPINIFILE,KIU,KJU,KKU, & HGETTKET,HGETRVT,HGETRCT,HGETRRT,HGETRIT,HGETCIT, & HGETRST,HGETRGT,HGETRHT,HGETSVT,HGETSRCT,HGETSIGS,HGETCLDFR, & HGETBL_DEPTH,HGETSBL_DEPTH,HGETPHC,HGETPHR,HUVW_ADV_SCHEME, & @@ -132,7 +129,7 @@ END MODULE MODI_READ_FIELD KSIZELBXTKE_ll,KSIZELBYTKE_ll, & KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll, & PUM,PVM,PWM,PDUM,PDVM,PDWM, & - PUT,PVT,PWT,PTHT,PPABST,PPABSM,PTKET,PRTKEMS, & + PUT,PVT,PWT,PTHT,PPABST,PTKET,PRTKEMS, & PRT,PSVT,PCIT,PDRYMASST, & PSIGS,PSRCT,PCLDFR,PBL_DEPTH,PSBL_DEPTH,PWTHVMF,PPHC,PPHR, & PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM, & @@ -140,7 +137,7 @@ END MODULE MODI_READ_FIELD PLBYUM,PLBYVM,PLBYWM,PLBYTHM,PLBYTKEM,PLBYRM,PLBYSVM, & KFRC,TPDTFRC,PUFRC,PVFRC,PWFRC,PTHFRC,PRVFRC, & PTENDTHFRC,PTENDRVFRC,PGXTHFRC,PGYTHFRC,PPGROUNDFRC,PATC, & - PTENDUFRC,PTENDVFRC, & + PTENDUFRC,PTENDVFRC, & KADVFRC,TPDTADVFRC,PDTHFRC,PDRVFRC, & KRELFRC,TPDTRELFRC, PTHREL, PRVREL, & PVTH_FLUX_M,PWTH_FLUX_M,PVU_FLUX_M, & @@ -238,6 +235,7 @@ END MODULE MODI_READ_FIELD !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! V. Vionnet 07/17 add blowing snow scheme !! P. Wautelet 01/2019 corrected intent of PDUM,PDVM,PDWM (OUT->INOUT) +! P. Wautelet 13/02/2019: removed PPABSM and PTSTEP dummy arguments (bugfix: PPABSM was intent(OUT)) !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -294,8 +292,6 @@ IMPLICIT NONE TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file INTEGER, INTENT(IN) :: KIU, KJU, KKU ! array sizes in x, y and z directions -REAL, INTENT(IN) :: PTSTEP - ! current Time STEP ! CHARACTER (LEN=*), INTENT(IN) :: HGETTKET, & HGETRVT,HGETRCT,HGETRRT, & @@ -331,7 +327,6 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PUT,PVT,PWT ! U,V,W at t REAL, DIMENSION(:,:,:), INTENT(OUT) :: PTHT,PTKET ! theta, tke and REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRTKEMS ! tke adv source REAL, DIMENSION(:,:,:), INTENT(OUT) :: PPABST ! pressure at t -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PPABSM ! pressure at t-1 REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PRT,PSVT ! moist and scalar ! variables at t REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCT ! turbulent flux -- GitLab From c24425ff4a84eef9ba79cec1f26c7a4bb8565b03 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 13 Feb 2019 13:27:07 +0100 Subject: [PATCH 046/139] Philippe 13/02/2019: bugfix: intent of PPRFR OUT->INOUT --- src/MNH/ice4_rainfr_vert.f90 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/MNH/ice4_rainfr_vert.f90 b/src/MNH/ice4_rainfr_vert.f90 index 0448e36b0..a048fc341 100644 --- a/src/MNH/ice4_rainfr_vert.f90 +++ b/src/MNH/ice4_rainfr_vert.f90 @@ -1,13 +1,13 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. MODULE MODI_ICE4_RAINFR_VERT INTERFACE SUBROUTINE ICE4_RAINFR_VERT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, PPRFR, PRR) IMPLICIT NONE INTEGER, INTENT(IN) :: KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL -REAL, DIMENSION(KIT,KJT,KKT), INTENT(OUT) :: PPRFR !Precipitation fraction +REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT) :: PPRFR !Precipitation fraction REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN) :: PRR !Rain field END SUBROUTINE ICE4_RAINFR_VERT END INTERFACE @@ -25,6 +25,7 @@ SUBROUTINE ICE4_RAINFR_VERT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, PP !! MODIFICATIONS !! ------------- !! +! P. Wautelet 13/02/2019: bugfix: intent of PPRFR OUT->INOUT ! ! !* 0. DECLARATIONS @@ -37,7 +38,7 @@ IMPLICIT NONE !* 0.1 Declarations of dummy arguments : ! INTEGER, INTENT(IN) :: KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL -REAL, DIMENSION(KIT,KJT,KKT), INTENT(OUT) :: PPRFR !Precipitation fraction +REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT) :: PPRFR !Precipitation fraction REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN) :: PRR !Rain field ! !* 0.2 declaration of local variables -- GitLab From 06299ad481c13808fa0f8ec6c0f13e56d24fc11a Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 14 Feb 2019 10:44:01 +0100 Subject: [PATCH 047/139] Philippe 14/02/2019: IO: remove CLUOUT/CLUOUT0, associated variables and dummy arguments --- src/MNH/anel_balancen.f90 | 8 ++--- src/MNH/change_gribex_var.f90 | 8 ++--- src/MNH/check_zhat.f90 | 6 ++-- src/MNH/check_zs.f90 | 8 ++--- src/MNH/compute_exner_from_ground.f90 | 7 ++-- src/MNH/compute_exner_from_top.f90 | 7 ++-- src/MNH/dry_mass.f90 | 8 ++--- src/MNH/free_atm_profile.f90 | 6 ++-- src/MNH/ini_deep_convection.f90 | 14 +++----- src/MNH/ini_elec.f90 | 24 ++++++-------- src/MNH/ini_elecn.f90 | 27 +++++++--------- src/MNH/ini_micron.f90 | 8 ++--- src/MNH/ini_modeln.f90 | 23 +++++++------- src/MNH/ini_one_wayn.f90 | 11 +++---- src/MNH/ini_prog_var.f90 | 18 +++++------ src/MNH/ini_radiations.f90 | 13 +++----- src/MNH/ini_radiations_ecmwf.f90 | 29 ++++++++--------- src/MNH/ini_radiations_ecrad.f90 | 44 ++++++++++---------------- src/MNH/ini_segn.f90 | 12 +++---- src/MNH/ini_sizen.f90 | 20 ++++++------ src/MNH/ini_spectren.f90 | 20 ++++++------ src/MNH/init_mnh.f90 | 22 ++++++------- src/MNH/mean_prof.f90 | 6 ++-- src/MNH/mnhclose_namelist.f90 | 5 ++- src/MNH/mnhinit_io_surfn.f90 | 6 ++-- src/MNH/mnhopen_aux_io_surf.f90 | 3 +- src/MNH/modd_lunit.f90 | 12 +++---- src/MNH/modd_lunitn.f90 | 9 ++---- src/MNH/mode_gridproj.f90 | 8 ++--- src/MNH/open_nestpgd_files.f90 | 8 ++--- src/MNH/open_prc_files.f90 | 7 ++-- src/MNH/prep_ideal_case.f90 | 5 ++- src/MNH/prep_pgd.f90 | 5 +-- src/MNH/prep_real_case.f90 | 8 ++--- src/MNH/prep_surfex.f90 | 2 +- src/MNH/read_all_data_grib_case.f90 | 6 ++-- src/MNH/read_chem_data_netcdf_case.f90 | 6 ++-- src/MNH/read_exspa.f90 | 8 ++--- src/MNH/read_hgridn.f90 | 6 ++-- src/MNH/read_precip_field.f90 | 11 +++---- src/MNH/read_ver_grid.f90 | 6 ++-- src/MNH/rel_forcingn.f90 | 7 ++-- src/MNH/reset_exseg.f90 | 13 +++----- src/MNH/retrieve1_nest_infon.f90 | 11 ++----- src/MNH/retrieve2_nest_infon.f90 | 6 ++-- src/MNH/set_cstn.f90 | 10 +++--- src/MNH/set_frc.f90 | 6 ++-- src/MNH/set_geosbal.f90 | 7 ++-- src/MNH/set_perturb.f90 | 6 ++-- src/MNH/set_refz.f90 | 6 ++-- src/MNH/set_rsou.f90 | 6 ++-- src/MNH/spawn_surf2_rain.f90 | 10 +++--- src/MNH/ver_dyn.f90 | 6 ++-- src/MNH/ver_int_dyn.f90 | 6 ++-- src/MNH/ver_int_thermo.f90 | 8 ++--- src/MNH/ver_interp_to_mixed_grid.f90 | 6 ++-- src/MNH/ver_prep_gribex_case.f90 | 11 ++----- src/MNH/ver_thermo.f90 | 9 +++--- src/MNH/zoom_pgd.f90 | 4 +-- src/MNH/zsmt_pgd.f90 | 5 ++- src/MNH/zsmt_pic.f90 | 10 ++---- 61 files changed, 270 insertions(+), 353 deletions(-) diff --git a/src/MNH/anel_balancen.f90 b/src/MNH/anel_balancen.f90 index 6c64978f6..ad0f32051 100644 --- a/src/MNH/anel_balancen.f90 +++ b/src/MNH/anel_balancen.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -56,9 +56,6 @@ END MODULE MODI_ANEL_BALANCE_n !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing !! -!! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing -!! !! Module MODD_GRID_n : contains grid variables !! XMAP,XXHAT,XYHAT,XZZ !! @@ -115,7 +112,6 @@ USE MODE_IO_ll USE MODE_MODELN_HANDLER ! USE MODD_CONF ! declarative modules -USE MODD_LUNIT USE MODD_PARAMETERS USE MODD_GRID_n USE MODD_DIM_n diff --git a/src/MNH/change_gribex_var.f90 b/src/MNH/change_gribex_var.f90 index 48a9741de..0f4badbcd 100644 --- a/src/MNH/change_gribex_var.f90 +++ b/src/MNH/change_gribex_var.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ############################# MODULE MODI_CHANGE_GRIBEX_VAR @@ -116,7 +116,7 @@ END MODULE MODI_CHANGE_GRIBEX_VAR !! Module MODD_CONF1 !! NRR !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : name of output-listing !! Module MODD_CST : contains physical constants !! XRD : gas constant for dry air !! XRV : gas constant for vapor @@ -167,7 +167,7 @@ USE MODD_CONF USE MODD_CONF_n USE MODD_CST USE MODD_GRID_n -USE MODD_LUNIT, ONLY: CLUOUT0, TLUOUT0 +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_REF ! diff --git a/src/MNH/check_zhat.f90 b/src/MNH/check_zhat.f90 index a0027bb66..ca9094fa9 100644 --- a/src/MNH/check_zhat.f90 +++ b/src/MNH/check_zhat.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -45,7 +45,7 @@ END MODULE MODI_CHECK_ZHAT !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : name of output-listing !! Module MODD_GRID1 !! XZHAT !! Module MODD_DIM1 @@ -101,7 +101,7 @@ REAL :: ZLEN1 ! Decay scale for smooth topography REAL :: ZLEN2 ! Decay scale for small-scale topography deviation ! INTEGER :: IRESP ! return-code if problems occured -INTEGER :: ILUOUT0 ! logical unit for file CLUOUT0 +INTEGER :: ILUOUT0 ! logical unit for file TLUOUT0 LOGICAL :: GTHINSHELL TYPE(TFILEDATA),POINTER :: TZFMFILE ! diff --git a/src/MNH/check_zs.f90 b/src/MNH/check_zs.f90 index 200ea82d9..42b9aaa6f 100644 --- a/src/MNH/check_zs.f90 +++ b/src/MNH/check_zs.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !################### @@ -48,7 +48,7 @@ END MODULE MODI_CHECK_ZS !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : name of output-listing !! Module MODD_GRID1 !! XZS !! Module MODD_DIM1 @@ -105,7 +105,7 @@ INTEGER, INTENT(IN) :: KJINF ! domain, compared to the old ! ------------------------------ ! INTEGER :: IRESP ! return-code if problems occured -INTEGER :: ILUOUT0 ! logical unit for file CLUOUT0 +INTEGER :: ILUOUT0 ! logical unit for file TLUOUT0 ! INTEGER :: IDXRATIO = 0 ! aspect ratios during previous INTEGER :: IDYRATIO = 0 ! spawning (if any) diff --git a/src/MNH/compute_exner_from_ground.f90 b/src/MNH/compute_exner_from_ground.f90 index 1edd2e253..cbb64d037 100644 --- a/src/MNH/compute_exner_from_ground.f90 +++ b/src/MNH/compute_exner_from_ground.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ##################################### @@ -83,8 +83,6 @@ END MODULE MODI_COMPUTE_EXNER_FROM_GROUND3 !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing !! LTHINSHELL : logical for thinshell approximation -!! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing !! Module MODD_CST : contains physical constants !! XG : gravity constant !! XCPD: specific heat for dry air at constant pressure @@ -115,7 +113,6 @@ END MODULE MODI_COMPUTE_EXNER_FROM_GROUND3 ! USE MODD_CONF USE MODD_CST -USE MODD_LUNIT USE MODD_PARAMETERS ! USE MODI_SHUMAN diff --git a/src/MNH/compute_exner_from_top.f90 b/src/MNH/compute_exner_from_top.f90 index 05f7c026b..e195e725d 100644 --- a/src/MNH/compute_exner_from_top.f90 +++ b/src/MNH/compute_exner_from_top.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################## @@ -81,8 +81,6 @@ END MODULE MODI_COMPUTE_EXNER_FROM_TOP3D !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing !! LTHINSHELL : logical for thinshell approximation -!! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing !! Module MODD_CST : contains physical constants !! XG : gravity constant !! XCPD: specific heat for dry air at constant pressure @@ -113,7 +111,6 @@ END MODULE MODI_COMPUTE_EXNER_FROM_TOP3D ! USE MODD_CONF USE MODD_CST -USE MODD_LUNIT USE MODD_PARAMETERS ! USE MODI_SHUMAN diff --git a/src/MNH/dry_mass.f90 b/src/MNH/dry_mass.f90 index a5e0b31c7..0930b058b 100644 --- a/src/MNH/dry_mass.f90 +++ b/src/MNH/dry_mass.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######spl @@ -69,8 +69,8 @@ END MODULE MODI_DRY_MASS !! !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing -!! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! Module MODD_LUNIT_n : contains logical unit names for all models +!! TLUOUT : name of output-listing !! Module MODD_GRID1 : contains grid variables for model1 !! XZZ : altitude of the w points !! Module MODD_CST : contains physical constants diff --git a/src/MNH/free_atm_profile.f90 b/src/MNH/free_atm_profile.f90 index 3dac2c8b7..fe785ac91 100644 --- a/src/MNH/free_atm_profile.f90 +++ b/src/MNH/free_atm_profile.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1997-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################ @@ -63,7 +63,7 @@ END MODULE MODI_FREE_ATM_PROFILE !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : name of output-listing !! Module MODD_GRID1 : contains grid variables for model1 !! XZS : orography of MESO-NH !! XZHAT : GS levels diff --git a/src/MNH/ini_deep_convection.f90 b/src/MNH/ini_deep_convection.f90 index e7f2bed91..476199193 100644 --- a/src/MNH/ini_deep_convection.f90 +++ b/src/MNH/ini_deep_convection.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################### @@ -9,7 +9,7 @@ ! INTERFACE ! - SUBROUTINE INI_DEEP_CONVECTION(TPINIFILE,HLUOUT,OINIDCONV,TPDTCUR, & + SUBROUTINE INI_DEEP_CONVECTION(TPINIFILE,OINIDCONV,TPDTCUR, & KCOUNTCONV,PDTHCONV,PDRVCONV,PDRCCONV, & PDRICONV,PPRCONV,PPRSCONV,PPACCONV, & PUMFCONV,PDMFCONV,PMFCONV,PPRLFLXCONV,PPRSFLXCONV, & @@ -22,8 +22,6 @@ USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_TIME ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models LOGICAL, INTENT(IN) :: OINIDCONV ! switch to initialize or read TYPE (DATE_TIME), INTENT(IN) :: TPDTCUR ! Current date and time CHARACTER (LEN=*), INTENT(IN) :: HGETSVCONV ! GET indicator for SVCONV @@ -63,7 +61,7 @@ END INTERFACE ! END MODULE MODI_INI_DEEP_CONVECTION ! ################################################################################### - SUBROUTINE INI_DEEP_CONVECTION(TPINIFILE,HLUOUT,OINIDCONV,TPDTCUR, & + SUBROUTINE INI_DEEP_CONVECTION(TPINIFILE,OINIDCONV,TPDTCUR, & KCOUNTCONV,PDTHCONV,PDRVCONV,PDRCCONV, & PDRICONV,PPRCONV,PPRSCONV,PPACCONV, & PUMFCONV,PDMFCONV,PMFCONV,PPRLFLXCONV,PPRSFLXCONV, & @@ -110,7 +108,7 @@ END MODULE MODI_INI_DEEP_CONVECTION !! P.Jabouille 04/04/02 add PMFCONV used for subgrid condensation !! for a correct restart this variable has to be writen in FM file !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -!! +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -142,8 +140,6 @@ IMPLICIT NONE !* 0.1 Declarations of dummy arguments : ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models LOGICAL, INTENT(IN) :: OINIDCONV ! switch to initialize or read TYPE (DATE_TIME), INTENT(IN) :: TPDTCUR ! Current date and time CHARACTER (LEN=*), INTENT(IN) :: HGETSVCONV ! GET indicator for SVCONV diff --git a/src/MNH/ini_elec.f90 b/src/MNH/ini_elec.f90 index c0b51e5dc..4dfdd8e47 100644 --- a/src/MNH/ini_elec.f90 +++ b/src/MNH/ini_elec.f90 @@ -1,17 +1,12 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 init 2006/05/18 13:07:25 -!----------------------------------------------------------------- -! ################################################################ - SUBROUTINE INI_ELEC(KMI,HINIFILE,HLUOUT,PTSTEP,PDZMIN,KSPLITR, & - PDXX,PDYY,PDZZ,PDZX,PDZY ) -! ################################################################ +! ######################################################### + SUBROUTINE INI_ELEC(KMI,TPINIFILE,PTSTEP,PDZMIN,KSPLITR, & + PDXX,PDYY,PDZZ,PDZX,PDZY ) +! ######################################################### ! !!**** *INI_ELEC* - routine to initialize the electrical parameters !! @@ -42,7 +37,7 @@ !! MODIFICATIONS !! ------------- !! Original 29/11/02 -!! +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -54,6 +49,7 @@ USE MODE_IO_ll USE MODE_FM USE MODE_FMREAD ! +USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_LUNIT_n USE MODD_NSV, ONLY : NSV,NSV_ELEC,NSV_ELECBEG,NSV_ELECEND USE MODD_PARAMETERS @@ -73,9 +69,7 @@ IMPLICIT NONE !* 0.1 declarations of arguments ! INTEGER, INTENT(IN) :: KMI ! Model Index -CHARACTER (LEN=*) , INTENT(IN) :: HINIFILE ! name of the initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models +TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE! Initial file REAL, INTENT(IN) :: PTSTEP ! Time STEP ! REAL, INTENT(IN) :: PDZMIN ! minimun vertical mesh size diff --git a/src/MNH/ini_elecn.f90 b/src/MNH/ini_elecn.f90 index e67a08e8c..f668ebc3a 100644 --- a/src/MNH/ini_elecn.f90 +++ b/src/MNH/ini_elecn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2009-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -8,17 +8,15 @@ ! ###################### ! INTERFACE - SUBROUTINE INI_ELEC_n (KLUOUT, HELEC, HCLOUD, HLUOUT, TPINIFILE, & - PTSTEP, PZZ, & - PDXX, PDYY, PDZZ, PDZX, PDZY ) + SUBROUTINE INI_ELEC_n (KLUOUT, HELEC, HCLOUD, TPINIFILE, & + PTSTEP, PZZ, & + PDXX, PDYY, PDZZ, PDZX, PDZY ) ! USE MODD_IO_ll, ONLY : TFILEDATA ! INTEGER, INTENT(IN) :: KLUOUT ! Logical unit number for prints CHARACTER (LEN=4), INTENT(IN) :: HELEC ! atmospheric electricity scheme CHARACTER (LEN=4), INTENT(IN) :: HCLOUD ! microphysics scheme -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE! Initial file REAL, INTENT(IN) :: PTSTEP ! Time STEP ! @@ -33,11 +31,11 @@ END SUBROUTINE INI_ELEC_n END INTERFACE END MODULE MODI_INI_ELEC_n ! -! ################################################################# - SUBROUTINE INI_ELEC_n(KLUOUT, HELEC, HCLOUD, HLUOUT, TPINIFILE, & - PTSTEP, PZZ, & - PDXX, PDYY, PDZZ, PDZX, PDZY ) -! ################################################################# +! ######################################################### + SUBROUTINE INI_ELEC_n(KLUOUT, HELEC, HCLOUD, TPINIFILE, & + PTSTEP, PZZ, & + PDXX, PDYY, PDZZ, PDZX, PDZY ) +! ######################################################### ! !! PURPOSE !! ------- @@ -74,6 +72,7 @@ END MODULE MODI_INI_ELEC_n !! J.-P. Pinty 15/11/13 Initialize the flash maps !! 10/2016 (C.Lac) Add droplet deposition !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !! !------------------------------------------------------------------------------- ! @@ -128,8 +127,6 @@ IMPLICIT NONE INTEGER, INTENT(IN) :: KLUOUT ! Logical unit number for prints CHARACTER (LEN=4), INTENT(IN) :: HELEC ! atmospheric electricity scheme CHARACTER (LEN=4), INTENT(IN) :: HCLOUD ! microphysics scheme -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE! Initial file REAL, INTENT(IN) :: PTSTEP ! Time STEP ! @@ -225,7 +222,7 @@ IF(SIZE(XINPRR) == 0) RETURN !* 2. Initialize MODD_PRECIP_n variables ! ----------------------------------- ! -CALL READ_PRECIP_FIELD (TPINIFILE, HLUOUT, CPROGRAM, CCONF, & +CALL READ_PRECIP_FIELD (TPINIFILE, CPROGRAM, CCONF, & CGETINPRC,CGETINPRR,CGETINPRS,CGETINPRG,CGETINPRH, & XINPRC,XACPRC,XINDEP,XACDEP,XINPRR,XINPRR3D,XEVAP3D, & XACPRR, XINPRS, XACPRS, XINPRG, XACPRG, XINPRH, XACPRH) diff --git a/src/MNH/ini_micron.f90 b/src/MNH/ini_micron.f90 index e77c68926..e45a6b56b 100644 --- a/src/MNH/ini_micron.f90 +++ b/src/MNH/ini_micron.f90 @@ -52,6 +52,7 @@ END MODULE MODI_INI_MICRO_n !! C.LAc 10/2016 Add budget for droplet deposition !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! P.Wautelet 01/2019: bug: add missing allocations +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !! !! -------------------------------------------------------------------------- ! @@ -61,7 +62,6 @@ END MODULE MODI_INI_MICRO_n ! USE MODD_CONF, ONLY : CCONF,CPROGRAM USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT_n, ONLY : CLUOUT USE MODD_GET_n, ONLY : CGETRCT,CGETRRT, CGETRST, CGETRGT, CGETRHT, CGETCLOUD USE MODD_DIM_n, ONLY : NIMAX_ll, NJMAX_ll USE MODD_PARAMETERS, ONLY : JPVEXT, JPHEXT @@ -258,7 +258,7 @@ IF(SIZE(XINPRR) == 0) RETURN !* 3. INITIALIZE MODD_PRECIP_n variables ! ---------------------------------- ! -CALL READ_PRECIP_FIELD(TPINIFILE,CLUOUT,CPROGRAM,CCONF, & +CALL READ_PRECIP_FIELD(TPINIFILE,CPROGRAM,CCONF, & CGETRCT,CGETRRT,CGETRST,CGETRGT,CGETRHT, & XINPRC,XACPRC,XINDEP,XACDEP,XINPRR,XINPRR3D,XEVAP3D,& XACPRR,XINPRS,XACPRS,XINPRG,XACPRG, XINPRH,XACPRH ) @@ -328,8 +328,8 @@ END IF ! IMI = GET_CURRENT_MODEL_INDEX() !IF (CELEC /= 'NONE') THEN -! CALL INI_ELEC(IMI,CINIFILE,CLUOUT,XTSTEP,ZDZMIN,NSPLITR, & -! XDXX,XDYY,XDZZ,XDZX,XDZY ) +! CALL INI_ELEC(IMI,TPINIFILE,XTSTEP,ZDZMIN,NSPLITR, & +! XDXX,XDYY,XDZZ,XDZX,XDZY ) !END IF ! ! diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index efe5d36da..9e1d3bf88 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -9,12 +9,11 @@ ! INTERFACE ! - SUBROUTINE INI_MODEL_n(KMI,HLUOUT,TPINIFILE) + SUBROUTINE INI_MODEL_n(KMI,TPINIFILE) ! USE MODD_IO_ll, ONLY : TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! Model Index -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing of nested models TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file ! END SUBROUTINE INI_MODEL_n @@ -23,7 +22,7 @@ END INTERFACE ! END MODULE MODI_INI_MODEL_n ! ############################################ - SUBROUTINE INI_MODEL_n(KMI,HLUOUT,TPINIFILE) + SUBROUTINE INI_MODEL_n(KMI,TPINIFILE) ! ############################################ ! !!**** *INI_MODEL_n* - routine to initialize the nested model _n @@ -280,6 +279,7 @@ END MODULE MODI_INI_MODEL_n !! 01/18 J.Colin Add DRAG !! P.Wautelet 29/01/2019: bug: add missing zero-size allocations ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -456,7 +456,6 @@ IMPLICIT NONE ! ! INTEGER, INTENT(IN) :: KMI ! Model Index -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing of nested models TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file ! !* 0.2 declarations of local variables @@ -1823,9 +1822,9 @@ IF (CELEC == 'NONE') THEN ! -------------------------------------- ! ELSE - CALL INI_ELEC_n(ILUOUT, CELEC, CCLOUD, HLUOUT, TPINIFILE, & - XTSTEP, XZZ, & - XDXX, XDYY, XDZZ, XDZX, XDZY ) + CALL INI_ELEC_n(ILUOUT, CELEC, CCLOUD, TPINIFILE, & + XTSTEP, XZZ, & + XDXX, XDYY, XDZZ, XDZX, XDZY ) ! WRITE (UNIT=ILUOUT,& FMT='(/,"ELECTRIC VARIABLES ARE BETWEEN INDEX",I2," AND ",I2)')& @@ -1998,7 +1997,7 @@ IF ( KMI > 1) THEN DPTR_XLBYRM=>XLBYRM DPTR_XLBXSVM=>XLBXSVM DPTR_XLBYSVM=>XLBYSVM - CALL INI_ONE_WAY_n(NDAD(KMI),CLUOUT,XTSTEP,KMI,1, & + CALL INI_ONE_WAY_n(NDAD(KMI),XTSTEP,KMI,1, & DPTR_XBMX1,DPTR_XBMX2,DPTR_XBMX3,DPTR_XBMX4,DPTR_XBMY1,DPTR_XBMY2,DPTR_XBMY3,DPTR_XBMY4, & DPTR_XBFX1,DPTR_XBFX2,DPTR_XBFX3,DPTR_XBFX4,DPTR_XBFY1,DPTR_XBFY2,DPTR_XBFY3,DPTR_XBFY4, & NDXRATIO_ALL(KMI),NDYRATIO_ALL(KMI),NDTRATIO(KMI), & @@ -2071,7 +2070,7 @@ IF (CRAD /= 'NONE') THEN ELSE GINIRAD =.FALSE. END IF - CALL INI_RADIATIONS(TPINIFILE,HLUOUT,GINIRAD,TDTCUR,TDTEXP,XZZ, & + CALL INI_RADIATIONS(TPINIFILE,GINIRAD,TDTCUR,TDTEXP,XZZ, & XDXX, XDYY, & XSINDEL,XCOSDEL,XTSIDER,XCORSOL, & XSLOPANG,XSLOPAZI, & @@ -2242,7 +2241,7 @@ IF (CRAD == 'ECMW') THEN ZBARE(:,:) = 0. END IF ! - CALL INI_RADIATIONS_ECMWF (TPINIFILE%CNAME,HLUOUT, & + CALL INI_RADIATIONS_ECMWF (TPINIFILE%CNAME, & XZHAT,XPABST,XTHT,XTSRAD,XLAT,XLON,TDTCUR,TDTEXP, & CLW,NDLON,NFLEV,NFLUX,NRAD,NSWB_OLD,CAER,NAER,NSTATM, & XSTATM,ZSEA,ZTOWN,ZBARE,XOZON, XAER,XDST_WL, LSUBG_COND ) @@ -2270,7 +2269,7 @@ ELSE IF (CRAD == 'ECRA') THEN ZBARE(:,:) = 0. END IF ! - CALL INI_RADIATIONS_ECRAD (TPINIFILE%CNAME,HLUOUT, & + CALL INI_RADIATIONS_ECRAD (TPINIFILE%CNAME, & XZHAT,XPABST,XTHT,XTSRAD,XLAT,XLON,TDTCUR,TDTEXP, & CLW,NDLON,NFLEV,NFLUX,NRAD,NSWB_OLD,CAER,NAER,NSTATM, & XSTATM,ZSEA,ZTOWN,ZBARE,XOZON, XAER,XDST_WL, LSUBG_COND ) @@ -2304,7 +2303,7 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN IF (NVERB>=10) THEN WRITE(ILUOUT,*) 'XDTCONV has been set to : ',XDTCONV END IF - CALL INI_DEEP_CONVECTION (TPINIFILE,HLUOUT,GINIDCONV,TDTCUR, & + CALL INI_DEEP_CONVECTION (TPINIFILE,GINIDCONV,TDTCUR, & NCOUNTCONV,XDTHCONV,XDRVCONV,XDRCCONV, & XDRICONV,XPRCONV,XPRSCONV,XPACCONV, & XUMFCONV,XDMFCONV,XMFCONV,XPRLFLXCONV,XPRSFLXCONV,& diff --git a/src/MNH/ini_one_wayn.f90 b/src/MNH/ini_one_wayn.f90 index 4182d6a2e..d98086895 100644 --- a/src/MNH/ini_one_wayn.f90 +++ b/src/MNH/ini_one_wayn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1999-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -9,7 +9,7 @@ ! INTERFACE ! - SUBROUTINE INI_ONE_WAY_n( KDAD,HLUOUT,PTSTEP,KMI,KTCOUNT, & + SUBROUTINE INI_ONE_WAY_n( KDAD,PTSTEP,KMI,KTCOUNT, & PBMX1,PBMX2,PBMX3,PBMX4,PBMY1,PBMY2,PBMY3,PBMY4, & PBFX1,PBFX2,PBFX3,PBFX4,PBFY1,PBFY2,PBFY3,PBFY4, & KDXRATIO,KDYRATIO,KDTRATIO, & @@ -26,7 +26,6 @@ INTERFACE ! ! INTEGER, INTENT(IN) :: KDAD ! Number of the DAD model -CHARACTER (LEN=*),INTENT(IN) :: HLUOUT ! name of the output-listing REAL, INTENT(IN) :: PTSTEP ! Time step INTEGER, INTENT(IN) :: KMI ! model number INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop COUNTer @@ -72,7 +71,7 @@ END MODULE MODI_INI_ONE_WAY_n ! ! #################################################################### -SUBROUTINE INI_ONE_WAY_n(KDAD,HLUOUT,PTSTEP,KMI,KTCOUNT, & +SUBROUTINE INI_ONE_WAY_n(KDAD,PTSTEP,KMI,KTCOUNT, & PBMX1,PBMX2,PBMX3,PBMX4,PBMY1,PBMY2,PBMY3,PBMY4, & PBFX1,PBFX2,PBFX3,PBFX4,PBFY1,PBFY2,PBFY3,PBFY4, & KDXRATIO,KDYRATIO,KDTRATIO, & @@ -140,6 +139,7 @@ SUBROUTINE INI_ONE_WAY_n(KDAD,HLUOUT,PTSTEP,KMI,KTCOUNT, & !! J.Escobar : 18/12/2015 : Correction of bug in bound in // for NHALO <>1 !! B.VIE 2016 : LIMA !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !! !------------------------------------------------------------------------------ ! @@ -172,7 +172,6 @@ IMPLICIT NONE ! ! INTEGER, INTENT(IN) :: KDAD ! Number of the DAD model -CHARACTER (LEN=*),INTENT(IN) :: HLUOUT ! name for output-listing REAL, INTENT(IN) :: PTSTEP ! Time step INTEGER, INTENT(IN) :: KMI ! model number INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop COUNTer diff --git a/src/MNH/ini_prog_var.f90 b/src/MNH/ini_prog_var.f90 index 30d9a922a..75d6242b8 100644 --- a/src/MNH/ini_prog_var.f90 +++ b/src/MNH/ini_prog_var.f90 @@ -7,9 +7,8 @@ MODULE MODI_INI_PROG_VAR ! ######################## INTERFACE - SUBROUTINE INI_PROG_VAR(HLUOUT,PTKE_MX,PSV_MX,HCHEMFILE) + SUBROUTINE INI_PROG_VAR(PTKE_MX, PSV_MX, HCHEMFILE) ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Name of the output-listing REAL,DIMENSION(:,:,:), INTENT(IN) :: PTKE_MX REAL,DIMENSION(:,:,:,:),INTENT(IN) :: PSV_MX CHARACTER(LEN=*), INTENT(IN),OPTIONAL :: HCHEMFILE ! Name of the chem file @@ -17,9 +16,9 @@ END SUBROUTINE INI_PROG_VAR END INTERFACE END MODULE MODI_INI_PROG_VAR ! -! ######################################################## - SUBROUTINE INI_PROG_VAR(HLUOUT,PTKE_MX,PSV_MX,HCHEMFILE) -! ######################################################## +! ################################################### + SUBROUTINE INI_PROG_VAR(PTKE_MX, PSV_MX, HCHEMFILE) +! ################################################### ! !!**** *INI_PROG_VAR* - initialization the prognostic variables not yet !! initialized @@ -45,8 +44,8 @@ END MODULE MODI_INI_PROG_VAR !! !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing -!! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! Module MODD_LUNIT_n : contains logical unit names for all models +!! TLUOUT : name of output-listing !! Module MODD_FIELD1 : contains the prognostic fields of model1 !! XUM !! XVM @@ -95,6 +94,7 @@ END MODULE MODI_INI_PROG_VAR !! Mai 2017 (M. Leriche) Get wet dep. sv in Meso-NH init file !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -141,15 +141,13 @@ IMPLICIT NONE ! !* 0.1 declaration of arguments ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Name of the output-listing REAL,DIMENSION(:,:,:), INTENT(IN) :: PTKE_MX REAL,DIMENSION(:,:,:,:),INTENT(IN) :: PSV_MX CHARACTER(LEN=*), INTENT(IN),OPTIONAL :: HCHEMFILE ! Name of the chem file ! !* 0.2 declaration of local variables ! -INTEGER :: ILUOUT ! Logical unit number - ! associated with HLUOUT +INTEGER :: ILUOUT INTEGER :: IRESP ! INTEGER :: IIMAX,IJMAX,IKMAX ! Dimensions of the chem file diff --git a/src/MNH/ini_radiations.f90 b/src/MNH/ini_radiations.f90 index 698a17878..a9af173cf 100644 --- a/src/MNH/ini_radiations.f90 +++ b/src/MNH/ini_radiations.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -9,7 +9,7 @@ ! INTERFACE ! - SUBROUTINE INI_RADIATIONS(TPINIFILE,HLUOUT,OINIRAD,TPDTCUR,TPDTEXP,& + SUBROUTINE INI_RADIATIONS(TPINIFILE,OINIRAD,TPDTCUR,TPDTEXP, & PZZ,PDXX,PDYY, & PSINDEL,PCOSDEL,PTSIDER,PCORSOL,PSLOPANG,PSLOPAZI, & PDTHRAD,PDIRFLASWD,PSCAFLASWD, & @@ -22,8 +22,6 @@ USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_TYPE_DATE ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models LOGICAL, INTENT(IN) :: OINIRAD ! switch to initialize or read ! the radiation informations TYPE (DATE_TIME), INTENT(IN) :: TPDTCUR ! Current date and time @@ -69,7 +67,7 @@ END MODULE MODI_INI_RADIATIONS ! ! ! #################################################################### - SUBROUTINE INI_RADIATIONS(TPINIFILE,HLUOUT,OINIRAD,TPDTCUR,TPDTEXP,& + SUBROUTINE INI_RADIATIONS(TPINIFILE,OINIRAD,TPDTCUR,TPDTEXP, & PZZ,PDXX,PDYY, & PSINDEL,PCOSDEL,PTSIDER,PCORSOL,PSLOPANG,PSLOPAZI, & PDTHRAD,PDIRFLASWD,PSCAFLASWD, & @@ -109,6 +107,7 @@ END MODULE MODI_INI_RADIATIONS !! TDTEXP to have a perpetual day ie. the diurnal cycle is retained !! but the day stays the same during the whole run !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -135,8 +134,6 @@ IMPLICIT NONE !* 0.1 Declarations of dummy arguments : ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models LOGICAL, INTENT(IN) :: OINIRAD ! switch to initialize or read ! the radiation informations TYPE (DATE_TIME), INTENT(IN) :: TPDTCUR ! Current date and time diff --git a/src/MNH/ini_radiations_ecmwf.f90 b/src/MNH/ini_radiations_ecmwf.f90 index 6c6b9e9fd..17eb3c7d9 100644 --- a/src/MNH/ini_radiations_ecmwf.f90 +++ b/src/MNH/ini_radiations_ecmwf.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -9,16 +9,14 @@ ! INTERFACE ! - SUBROUTINE INI_RADIATIONS_ECMWF(HINIFILE,HLUOUT, & - PZHAT,PPABST,PTHT,PTSRAD,PLAT,PLON,TPDTCUR,TPDTEXP, & - HLW,KDLON,KFLEV,KFLUX,KRAD,KSWB,HAER,KAER,KSTATM, & - PSTATM,PSEA,PTOWN,PBARE,POZON, PAER,PDST_WL, OSUBG_COND ) + SUBROUTINE INI_RADIATIONS_ECMWF(HINIFILE, & + PZHAT, PPABST, PTHT, PTSRAD, PLAT, PLON, TPDTCUR, TPDTEXP, & + HLW, KDLON, KFLEV, KFLUX, KRAD, KSWB, HAER, KAER, KSTATM, & + PSTATM, PSEA, PTOWN, PBARE, POZON, PAER, PDST_WL, OSUBG_COND ) ! USE MODD_TYPE_DATE ! CHARACTER (LEN=*), INTENT(IN) :: HINIFILE ! Name of the initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models CHARACTER (LEN=*), INTENT(IN) :: HAER ! aerosol optical thickness climatology CHARACTER (LEN=4), INTENT(IN) :: HLW ! LW scheme used ! @@ -60,12 +58,12 @@ END INTERFACE END MODULE MODI_INI_RADIATIONS_ECMWF ! ! -! ####################################################################### - SUBROUTINE INI_RADIATIONS_ECMWF(HINIFILE,HLUOUT, & - PZHAT,PPABST,PTHT,PTSRAD,PLAT,PLON,TPDTCUR,TPDTEXP, & - HLW,KDLON,KFLEV,KFLUX,KRAD,KSWB,HAER,KAER,KSTATM, & - PSTATM,PSEA,PTOWN,PBARE,POZON, PAER, PDST_WL,OSUBG_COND ) -! ####################################################################### +! ################################################################### + SUBROUTINE INI_RADIATIONS_ECMWF(HINIFILE, & + PZHAT, PPABST, PTHT, PTSRAD, PLAT, PLON, TPDTCUR, TPDTEXP, & + HLW, KDLON, KFLEV, KFLUX, KRAD, KSWB, HAER, KAER, KSTATM, & + PSTATM, PSEA, PTOWN, PBARE, POZON, PAER, PDST_WL, OSUBG_COND ) +! ################################################################### ! !!**** *INI_RADIATIONS * - initialisation for ECMWF radiation scheme in the MesoNH framework !! @@ -173,6 +171,7 @@ END MODULE MODI_INI_RADIATIONS_ECMWF !! (V. Masson) replaces cover fractions by sea/town/bare soil fractions !! J.Escobar 30/03/2017 : Management of compilation of ECMWF_RAD in REAL*8 with MNH_REAL=R4 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -217,8 +216,6 @@ IMPLICIT NONE !* 0.1 Declarations of dummy arguments : ! CHARACTER (LEN=*), INTENT(IN) :: HINIFILE ! Name of the initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models CHARACTER (LEN=*), INTENT(IN) :: HAER ! aerosol optical thickness climatology CHARACTER (LEN=4), INTENT(IN) :: HLW ! LW scheme used ! diff --git a/src/MNH/ini_radiations_ecrad.f90 b/src/MNH/ini_radiations_ecrad.f90 index f4115e2c5..d24b8b329 100644 --- a/src/MNH/ini_radiations_ecrad.f90 +++ b/src/MNH/ini_radiations_ecrad.f90 @@ -1,29 +1,22 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2018-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! masdev4_7 BUG1 2007/06/15 17:47:18 -!----------------------------------------------------------------- ! ########################## MODULE MODI_INI_RADIATIONS_ECRAD ! ########################## ! INTERFACE ! - SUBROUTINE INI_RADIATIONS_ECRAD(HINIFILE,HLUOUT, & - PZHAT,PPABST,PTHT,PTSRAD,PLAT,PLON,TPDTCUR,TPDTEXP, & - HLW,KDLON,KFLEV,KFLUX,KRAD,KSWB_OLD,HAER,KAER,KSTATM, & - PSTATM,PSEA,PTOWN,PBARE,POZON, PAER,PDST_WL, OSUBG_COND ) + SUBROUTINE INI_RADIATIONS_ECRAD(HINIFILE, & + PZHAT, PPABST, PTHT, PTSRAD, PLAT, PLON, TPDTCUR, TPDTEXP, & + HLW, KDLON, KFLEV, KFLUX, KRAD, KSWB_OLD, HAER, KAER, KSTATM, & + PSTATM, PSEA, PTOWN, PBARE, POZON, PAER, PDST_WL, OSUBG_COND ) ! USE MODD_TYPE_DATE CHARACTER (LEN=*), INTENT(IN) :: HINIFILE ! Name of the initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models CHARACTER (LEN=*), INTENT(IN) :: HAER ! aerosol optical thickness climatology CHARACTER (LEN=4), INTENT(IN) :: HLW ! LW scheme used ! @@ -65,12 +58,12 @@ END INTERFACE END MODULE MODI_INI_RADIATIONS_ECRAD ! ! -! ####################################################################### - SUBROUTINE INI_RADIATIONS_ECRAD(HINIFILE,HLUOUT, & - PZHAT,PPABST,PTHT,PTSRAD,PLAT,PLON,TPDTCUR,TPDTEXP, & - HLW,KDLON,KFLEV,KFLUX,KRAD,KSWB_OLD,HAER,KAER,KSTATM, & - PSTATM,PSEA,PTOWN,PBARE,POZON, PAER,PDST_WL, OSUBG_COND ) -! ####################################################################### +! #################################################################### + SUBROUTINE INI_RADIATIONS_ECRAD(HINIFILE, & + PZHAT, PPABST, PTHT, PTSRAD, PLAT, PLON, TPDTCUR, TPDTEXP, & + HLW, KDLON, KFLEV, KFLUX, KRAD, KSWB_OLD, HAER, KAER, KSTATM, & + PSTATM, PSEA, PTOWN, PBARE, POZON, PAER, PDST_WL, OSUBG_COND ) +! #################################################################### ! ! INI_RADIATIONS_ECRAD - Initialization of ECRAD code ! @@ -92,8 +85,7 @@ END MODULE MODI_INI_RADIATIONS_ECRAD ! MODIFICATIONS ! ------------- ! -! TO DO - +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables ! !* 0. DECLARATIONS ! ------------ @@ -123,8 +115,6 @@ IMPLICIT NONE !* 0.1 Declarations of dummy arguments : ! CHARACTER (LEN=*), INTENT(IN) :: HINIFILE ! Name of the initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models CHARACTER (LEN=*), INTENT(IN) :: HAER ! aerosol optical thickness climatology CHARACTER (LEN=4), INTENT(IN) :: HLW ! LW scheme used ! @@ -164,10 +154,10 @@ LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for sub-grid condensation NULOUT = TLUOUT%NLU ! Initialization of ECMWF still neede because many things intialized through this routine -CALL INI_RADIATIONS_ECMWF (HINIFILE,HLUOUT, & - PZHAT,PPABST,PTHT,PTSRAD,PLAT,PLON,TPDTCUR,TPDTEXP, & - HLW,KDLON,KFLEV,KFLUX,KRAD,KSWB_OLD,HAER,KAER,KSTATM, & - PSTATM,PSEA,PTOWN,PBARE,POZON, PAER,PDST_WL, OSUBG_COND ) +CALL INI_RADIATIONS_ECMWF( HINIFILE, & + PZHAT, PPABST, PTHT, PTSRAD, PLAT, PLON, TPDTCUR, TPDTEXP, & + HLW, KDLON, KFLEV, KFLUX, KRAD, KSWB_OLD, HAER, KAER, KSTATM, & + PSTATM, PSEA, PTOWN, PBARE, POZON, PAER, PDST_WL, OSUBG_COND ) ! ECRAD specific variables diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90 index ba3fb3458..b011e0892 100644 --- a/src/MNH/ini_segn.f90 +++ b/src/MNH/ini_segn.f90 @@ -9,12 +9,11 @@ ! INTERFACE ! -SUBROUTINE INI_SEG_n(KMI,HLUOUT,TPINIFILE,HINIFILEPGD,PTSTEP_ALL) +SUBROUTINE INI_SEG_n(KMI,TPINIFILE,HINIFILEPGD,PTSTEP_ALL) ! USE MODD_IO_ll, ONLY : TFILEDATA ! INTEGER, INTENT(IN) :: KMI !Model index -CHARACTER (LEN=*), INTENT(OUT) :: HLUOUT !Name for output-listing of nested models TYPE(TFILEDATA), POINTER, INTENT(OUT) :: TPINIFILE !Initial file CHARACTER (LEN=28), INTENT(OUT) :: HINIFILEPGD REAL,DIMENSION(:), INTENT(INOUT) :: PTSTEP_ALL ! Time STEP of ALL models @@ -29,7 +28,7 @@ END MODULE MODI_INI_SEG_n ! ! ! ############################################################# - SUBROUTINE INI_SEG_n(KMI,HLUOUT,TPINIFILE,HINIFILEPGD,PTSTEP_ALL) + SUBROUTINE INI_SEG_n(KMI,TPINIFILE,HINIFILEPGD,PTSTEP_ALL) ! ############################################################# ! !!**** *INI_SEG_n * - routine to read and update the descriptor files for @@ -164,6 +163,7 @@ END MODULE MODI_INI_SEG_n !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! 07/2017 add GBLOWSNOW (V. Vionnet) ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -200,7 +200,6 @@ IMPLICIT NONE !* 0.1 declarations of arguments ! INTEGER, INTENT(IN) :: KMI !Model index -CHARACTER (LEN=*), INTENT(OUT) :: HLUOUT !Name for output-listing of nested models TYPE(TFILEDATA), POINTER, INTENT(OUT) :: TPINIFILE !Initial file CHARACTER (LEN=28), INTENT(OUT) :: HINIFILEPGD REAL,DIMENSION(:), INTENT(INOUT) :: PTSTEP_ALL ! Time STEP of ALL models @@ -211,7 +210,7 @@ LOGICAL :: GFOUND ! Return code when searching namelist CHARACTER (LEN=28) :: YINIFILE ! name of initial file CHARACTER (LEN=2) :: YMI ! string for model index INTEGER :: ILUOUT ! Logical unit number - ! associated with CLUOUT + ! associated with TLUOUT ! INTEGER :: IRESP,ILUSEG ! File management variables CHARACTER (LEN=5) :: YCONF ! Local variables which have @@ -260,8 +259,7 @@ TZFILE_DES => NULL() ! --------------------------------------- ! WRITE(YMI,'(I2.0)') KMI -HLUOUT='OUTPUT_LISTING'//ADJUSTL(YMI) -CALL IO_FILE_ADD2LIST(LUNIT_MODEL(KMI)%TLUOUT,HLUOUT,'OUTPUTLISTING','WRITE') +CALL IO_FILE_ADD2LIST(LUNIT_MODEL(KMI)%TLUOUT,'OUTPUT_LISTING'//ADJUSTL(YMI),'OUTPUTLISTING','WRITE') TLUOUT => LUNIT_MODEL(KMI)%TLUOUT !Necessary because TLUOUT was initially pointing to NULL CALL IO_FILE_OPEN_ll(TLUOUT) ! diff --git a/src/MNH/ini_sizen.f90 b/src/MNH/ini_sizen.f90 index 3cfad7f7e..e3e757376 100644 --- a/src/MNH/ini_sizen.f90 +++ b/src/MNH/ini_sizen.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################# @@ -9,12 +9,11 @@ ! INTERFACE ! -SUBROUTINE INI_SIZE_n(KMI,HLUOUT,TPINIFILE,HINIFILEPGD) +SUBROUTINE INI_SIZE_n( KMI, TPINIFILE, HINIFILEPGD ) ! USE MODD_IO_ll, ONLY : TFILEDATA ! INTEGER, INTENT(IN) :: KMI !Model Index -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT !Name for output-listing of nested models TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file CHARACTER (LEN=*), INTENT(IN) :: HINIFILEPGD ! @@ -24,9 +23,9 @@ END INTERFACE ! END MODULE MODI_INI_SIZE_n !----------------------------------------------------------------- -! ####################################################### - SUBROUTINE INI_SIZE_n(KMI,HLUOUT,TPINIFILE,HINIFILEPGD) -! ####################################################### +! #################################################### + SUBROUTINE INI_SIZE_n( KMI, TPINIFILE, HINIFILEPGD ) +! #################################################### ! !! !!**** *INI_SIZE_n* - routine to initialize the sizes ratio positions of nested model _n @@ -40,7 +39,7 @@ END MODULE MODI_INI_SIZE_n !! ------ !! The first part of the initialization of the model _n is performed as !! follows : -!! - The logical unit number associated to output_listing file HLUOUT is +!! - The logical unit number associated to output_listing file TLUOUT is !! retrieved and module MODD_LUNIT_n is initialized. !! - Then the description of the segment to perform for the model _n is !! retrieved : @@ -95,6 +94,7 @@ END MODULE MODI_INI_SIZE_n !! June 2006 (D. Gazen) _n: no more read of updated var. !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !! !------------------------------------------------------------------------------- ! @@ -108,7 +108,7 @@ USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX USE MODD_DYN, ONLY: LCORIO USE MODD_IO_ll, ONLY: GSMONOPROC, TFILEDATA USE MODD_LBC_n, ONLY: CLBCX, CLBCY -USE MODD_LUNIT_n, ONLY: CLUOUT, CINIFILE, CINIFILEPGD, TLUOUT +USE MODD_LUNIT_n, ONLY: CINIFILE, CINIFILEPGD, TLUOUT USE MODD_NESTING, ONLY: CMY_NAME, CDAD_NAME, NDAD, NDXRATIO_ALL, NDYRATIO_ALL, & NXOR_ALL, NYOR_ALL, NXEND_ALL,NYEND_ALL USE MODD_PARAMETERS, ONLY: JPMODELMAX, JPHEXT,JPVEXT @@ -126,7 +126,6 @@ IMPLICIT NONE !* 0.1 declarations of arguments ! INTEGER, INTENT(IN) :: KMI !Model Index -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT !Name for output-listing of nested models TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file CHARACTER (LEN=*), INTENT(IN) :: HINIFILEPGD ! @@ -142,7 +141,6 @@ INTEGER :: IJPHEXT ! -------------------------------------------------------- ! ILUOUT = TLUOUT%NLU -CLUOUT = HLUOUT CINIFILEPGD=HINIFILEPGD ! !------------------------------------------------------------------------------- diff --git a/src/MNH/ini_spectren.f90 b/src/MNH/ini_spectren.f90 index d2564f410..93075f50a 100644 --- a/src/MNH/ini_spectren.f90 +++ b/src/MNH/ini_spectren.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -9,12 +9,11 @@ ! INTERFACE ! - SUBROUTINE INI_SPECTRE_n(KMI,HLUOUT,TPINIFILE) + SUBROUTINE INI_SPECTRE_n(KMI,TPINIFILE) ! USE MODD_IO_ll, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! Model index - CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! Name for output-listing of nested models TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file ! END SUBROUTINE INI_SPECTRE_n @@ -22,9 +21,9 @@ END SUBROUTINE INI_SPECTRE_n END INTERFACE ! END MODULE MODI_INI_SPECTRE_n -! ###################################################### - SUBROUTINE INI_SPECTRE_n(KMI,HLUOUT,TPINIFILE) -! ###################################################### +! ####################################### + SUBROUTINE INI_SPECTRE_n(KMI,TPINIFILE) +! ####################################### ! !!**** *INI_SPECTRE_n* - routine to initialize SPECTRE (based on ini_modeln.f90) !! @@ -34,8 +33,8 @@ END MODULE MODI_INI_SPECTRE_n !! J.P Chaboureau * L.A* !! 10/2016 (C.Lac) Cleaning of the modules !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -!! - +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables +! !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -135,7 +134,6 @@ IMPLICIT NONE ! ! INTEGER, INTENT(IN) :: KMI ! Model index -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! Name for output-listing of nested models TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file ! !* 0.2 declarations of local variables @@ -891,7 +889,7 @@ IF ( KMI > 1) THEN DPTR_XLBYRM=>XLBYRM DPTR_XLBXSVM=>XLBXSVM DPTR_XLBYSVM=>XLBYSVM - CALL INI_ONE_WAY_n(NDAD(KMI),HLUOUT,XTSTEP,KMI,1, & + CALL INI_ONE_WAY_n(NDAD(KMI),XTSTEP,KMI,1, & DPTR_XBMX1,DPTR_XBMX2,DPTR_XBMX3,DPTR_XBMX4,DPTR_XBMY1,DPTR_XBMY2,DPTR_XBMY3,DPTR_XBMY4, & DPTR_XBFX1,DPTR_XBFX2,DPTR_XBFX3,DPTR_XBFX4,DPTR_XBFY1,DPTR_XBFY2,DPTR_XBFY3,DPTR_XBFY4, & NDXRATIO_ALL(KMI),NDYRATIO_ALL(KMI),NDTRATIO(KMI), & diff --git a/src/MNH/init_mnh.f90 b/src/MNH/init_mnh.f90 index 2d0e7ed3e..debf3b7a0 100644 --- a/src/MNH/init_mnh.f90 +++ b/src/MNH/init_mnh.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############### @@ -47,8 +47,6 @@ !! !! Module MODD_CONF : NMODEL,NVERB !! -!! Module MODD_LUNIT : CLUOUT0 -!! !! REFERENCE !! --------- !! Book2 of documentation (routine INIT_MNH) @@ -72,6 +70,7 @@ !! J.Escobar 2/03/2016 bypass , reset NHALO=1 for SPAWNING !! 06/2016 (G.Delautier) phasage surfex 8 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -108,8 +107,6 @@ IMPLICIT NONE !* 0.1 Local variables ! INTEGER :: JMI ! Loop index -CHARACTER(LEN=16), DIMENSION(JPMODELMAX) :: YLUOUT ! Name for output-listing - ! of nested models CHARACTER(LEN=28),DIMENSION(JPMODELMAX) :: YINIFILEPGD INTEGER :: ILUOUT0,IRESP ! Logical unit number for ! output-listing common @@ -130,7 +127,6 @@ CHARACTER(LEN=4), DIMENSION(:), POINTER :: DPTR_CLBCX,DPTR_CLBCY ! ! IF (CPROGRAM/='REAL ') THEN - CLUOUT0 = 'OUTPUT_LISTING0' CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') CALL IO_FILE_OPEN_ll(TLUOUT0) !Set output file for PRINT_MSG @@ -171,11 +167,11 @@ IF (CPROGRAM=='SPAWN ' .OR. CPROGRAM=='DIAG ' .OR. CPROGRAM=='SPEC ' .OR. CPRO END IF ! CALL GOTO_MODEL(1) -CALL INI_SEG_n(1,YLUOUT(1),LUNIT_MODEL(1)%TINIFILE,YINIFILEPGD(1),ZTSTEP_ALL) +CALL INI_SEG_n(1,LUNIT_MODEL(1)%TINIFILE,YINIFILEPGD(1),ZTSTEP_ALL) ! DO JMI=2,NMODEL CALL GOTO_MODEL(JMI) - CALL INI_SEG_n(JMI,YLUOUT(JMI),LUNIT_MODEL(JMI)%TINIFILE,YINIFILEPGD(JMI),ZTSTEP_ALL) + CALL INI_SEG_n(JMI,LUNIT_MODEL(JMI)%TINIFILE,YINIFILEPGD(JMI),ZTSTEP_ALL) END DO ! IF (CPROGRAM=='SPAWN ') THEN @@ -183,7 +179,7 @@ IF (CPROGRAM=='SPAWN ') THEN NHALO = 1 END IF ! -IF (CPROGRAM=='DIAG') CALL RESET_EXSEG(YLUOUT(1)) +IF (CPROGRAM=='DIAG') CALL RESET_EXSEG() ! !------------------------------------------------------------------------------- ! @@ -193,7 +189,7 @@ IF (CPROGRAM=='DIAG') CALL RESET_EXSEG(YLUOUT(1)) ! DO JMI=1,NMODEL CALL GOTO_MODEL(JMI) - CALL INI_SIZE_n(JMI,YLUOUT(JMI),LUNIT_MODEL(JMI)%TINIFILE,YINIFILEPGD(JMI)) + CALL INI_SIZE_n(JMI,LUNIT_MODEL(JMI)%TINIFILE,YINIFILEPGD(JMI)) END DO ! IF (CPROGRAM=='SPAWN ') THEN @@ -234,11 +230,11 @@ DO JMI=1,NMODEL CALL GO_TOMODEL_ll(JMI,IINFO_ll) CALL GOTO_MODEL(JMI) IF (CPROGRAM/='SPEC ') THEN - CALL INI_MODEL_n(JMI,YLUOUT(JMI),LUNIT_MODEL(JMI)%TINIFILE) + CALL INI_MODEL_n(JMI,LUNIT_MODEL(JMI)%TINIFILE) !Call necessary to update the TFIELDLIST pointers to the data CALL FIELDLIST_GOTO_MODEL(JMI,JMI) ELSE - CALL INI_SPECTRE_n(JMI,YLUOUT(JMI),LUNIT_MODEL(JMI)%TINIFILE) + CALL INI_SPECTRE_n(JMI,LUNIT_MODEL(JMI)%TINIFILE) END IF END DO ! diff --git a/src/MNH/mean_prof.f90 b/src/MNH/mean_prof.f90 index 121f80c25..773ee9a8c 100644 --- a/src/MNH/mean_prof.f90 +++ b/src/MNH/mean_prof.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1997-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ##################### @@ -62,7 +62,7 @@ END MODULE MODI_MEAN_PROF !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : name of output-listing !! Module MODD_GRID1 : contains grid variables for model1 !! XZS : orography of MESO-NH !! XZHAT : GS levels diff --git a/src/MNH/mnhclose_namelist.f90 b/src/MNH/mnhclose_namelist.f90 index 28193c6ef..1e7544b0a 100644 --- a/src/MNH/mnhclose_namelist.f90 +++ b/src/MNH/mnhclose_namelist.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################# @@ -77,7 +77,6 @@ INTEGER :: IRESP ! IRESP : return-code if a problem appears ! INTEGER :: IMI ! model index INTEGER :: ILUOUT ! output listing logical unit -CHARACTER(LEN=16) :: YLUOUT ! output listing file name !------------------------------------------------------------------------------- ! IF (.NOT.ASSOCIATED(TNAM)) CALL PRINT_MSG(NVERB_FATAL,'IO','CLOSE_FILE_MNH','TNAM not associated') diff --git a/src/MNH/mnhinit_io_surfn.f90 b/src/MNH/mnhinit_io_surfn.f90 index bf67169ff..f242171c8 100644 --- a/src/MNH/mnhinit_io_surfn.f90 +++ b/src/MNH/mnhinit_io_surfn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -61,7 +61,7 @@ USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, COUTFILE, NMASK, CMASK, NIU, NJU, NIB, NJB, NIE, NJE, CACTION, & NMASK_ALL, NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, & NIE_ALL, NJE_ALL, NHALO -USE MODD_LUNIT, ONLY: CLUOUT0, TPGDFILE, TLUOUT0, TOUTDATAFILE +USE MODD_LUNIT, ONLY: TPGDFILE, TLUOUT0, TOUTDATAFILE USE MODD_LUNIT_n, ONLY: CMASK_SURFEX, TINIFILE, TINIFILEPGD, TLUOUT USE MODD_MNH_SURFEX_n, ONLY: YSURF_CUR USE MODD_PARAMETERS, ONLY: JPHEXT diff --git a/src/MNH/mnhopen_aux_io_surf.f90 b/src/MNH/mnhopen_aux_io_surf.f90 index 0bf06bb0f..2c4a223fb 100644 --- a/src/MNH/mnhopen_aux_io_surf.f90 +++ b/src/MNH/mnhopen_aux_io_surf.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######################### MODULE MODI_MNHOPEN_AUX_IO_SURF ! ######################### @@ -65,7 +66,7 @@ USE MODD_CONF, ONLY: CPROGRAM USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, COUTFILE, NMASK_ALL, CMASK, NIU_ALL, & NJU_ALL, NIB_ALL, NJB_ALL, NIE_ALL, NJE_ALL, CACTION, & NMASK, NIU, NJU, NIB, NJB, NIE, NJE -USE MODD_LUNIT, ONLY: CLUOUT0, TPGDFILE, TLUOUT0, TOUTDATAFILE +USE MODD_LUNIT, ONLY: TPGDFILE, TLUOUT0, TOUTDATAFILE USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS, ONLY: JPHEXT ! diff --git a/src/MNH/modd_lunit.f90 b/src/MNH/modd_lunit.f90 index 36027e7cf..a409e852d 100644 --- a/src/MNH/modd_lunit.f90 +++ b/src/MNH/modd_lunit.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################# @@ -22,16 +22,17 @@ !! REFERENCE !! --------- !! Book2 of documentation of Meso-NH (MODD_LUNIT) -!! +!! !! AUTHOR !! ------ -!! V. Ducrocq *Meteo France* +!! V. Ducrocq *Meteo France* !! !! MODIFICATIONS !! ------------- -!! Original 05/05/94 +!! Original 05/05/94 !! V. Masson 01/2004 add file names for use in externalized surface !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -41,7 +42,6 @@ USE MODD_IO_ll, ONLY: TFILEDATA ! IMPLICIT NONE ! -CHARACTER(LEN=16),SAVE :: CLUOUT0 ! Name of output_listing file TYPE(TFILEDATA),POINTER :: TLUOUT0 => NULL() ! output_listing file TYPE(TFILEDATA),POINTER :: TOUTDATAFILE => NULL() ! output data file being written TYPE(TFILEDATA),POINTER :: TPGDFILE => NULL() ! PGD file diff --git a/src/MNH/modd_lunitn.f90 b/src/MNH/modd_lunitn.f90 index 10fe48a5f..9462e7bbf 100644 --- a/src/MNH/modd_lunitn.f90 +++ b/src/MNH/modd_lunitn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -35,6 +35,7 @@ !! Modification 10/03/95 (I.Mallet) add the coupling files names !! Modification 25/09/95 (J.Stein) add the output diachronic file !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -54,8 +55,6 @@ TYPE LUNIT_t TYPE(TFILEDATA),POINTER :: TINIFILEPGD => NULL() ! PGD associated to input FM-file CHARACTER(LEN=24) :: COUTFILE = '' ! Generic name of the output FM-files TYPE(TFILEDATA),POINTER :: TDIAFILE => NULL() ! diachronic output file -! - CHARACTER(LEN=16) :: CLUOUT = '' ! Name of output_listing file TYPE(TFILEDATA),POINTER :: TLUOUT => NULL() ! output_listing file !JUAN CHARACTER(LEN=28),DIMENSION(:),POINTER :: CCPLFILE =>NULL() ! Names of the @@ -75,7 +74,6 @@ CHARACTER(LEN=28), POINTER :: CINIFILEPGD =>NULL() TYPE(TFILEDATA), POINTER :: TINIFILEPGD => NULL() CHARACTER(LEN=24), POINTER :: COUTFILE=>NULL() TYPE(TFILEDATA), POINTER :: TDIAFILE=>NULL() -CHARACTER(LEN=16), POINTER :: CLUOUT=>NULL() TYPE(TFILEDATA), POINTER :: TLUOUT=>NULL() CHARACTER(LEN=28),DIMENSION(:), POINTER :: CCPLFILE=>NULL() TYPE(TPTR2FILE), DIMENSION(:), POINTER :: TCPLFILE=>NULL() @@ -107,7 +105,6 @@ CINIFILEPGD=>LUNIT_MODEL(KTO)%CINIFILEPGD TINIFILEPGD=>LUNIT_MODEL(KTO)%TINIFILEPGD COUTFILE=>LUNIT_MODEL(KTO)%COUTFILE TDIAFILE=>LUNIT_MODEL(KTO)%TDIAFILE -CLUOUT=>LUNIT_MODEL(KTO)%CLUOUT TLUOUT=>LUNIT_MODEL(KTO)%TLUOUT CCPLFILE=>LUNIT_MODEL(KTO)%CCPLFILE TCPLFILE=>LUNIT_MODEL(KTO)%TCPLFILE diff --git a/src/MNH/mode_gridproj.f90 b/src/MNH/mode_gridproj.f90 index f6de1038d..814e5cf77 100644 --- a/src/MNH/mode_gridproj.f90 +++ b/src/MNH/mode_gridproj.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -1429,8 +1429,8 @@ END SUBROUTINE SM_XYHAT_A !! Module MODD_CST : contains Physical constants !! XPI : Pi; !! -!! Module MODD_LUNIT : contains logical unit names -!! CLUOUT0 : Output listing file name +!! Module MODD_LUNIT_n : contains logical unit names +!! TLUOUT : Output listing file name !! !! REFERENCE !! --------- diff --git a/src/MNH/open_nestpgd_files.f90 b/src/MNH/open_nestpgd_files.f90 index 2274e9174..18d8f5f51 100644 --- a/src/MNH/open_nestpgd_files.f90 +++ b/src/MNH/open_nestpgd_files.f90 @@ -41,7 +41,7 @@ END MODULE MODI_OPEN_NESTPGD_FILES !! ------------------ !! !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : output-listing !! !! REFERENCE !! --------- @@ -70,6 +70,7 @@ END MODULE MODI_OPEN_NESTPGD_FILES ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines ! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -152,12 +153,11 @@ TZPRE_NEST_PGD => NULL() ! ----------------- ! HPRE_NEST_PGD='PRE_NEST_PGD1.nam' -CLUOUT0='OUTPUT_LISTING0' ! !------------------------------------------------------------------------------- ! -!* 2. OPENNING OF CLUOUT0 -! ------------------- +!* 2. OPENING OF TLUOUT0 +! ------------------ ! CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') CALL IO_FILE_OPEN_ll(TLUOUT0) diff --git a/src/MNH/open_prc_files.f90 b/src/MNH/open_prc_files.f90 index a5114c836..42cee97ca 100644 --- a/src/MNH/open_prc_files.f90 +++ b/src/MNH/open_prc_files.f90 @@ -43,7 +43,7 @@ END MODULE MODI_OPEN_PRC_FILES !! PURPOSE !! ------- !! -!! This routine set the default name of CLUOUT0 +!! This routine creates TLUOUT0 !! This routine read in 'PRE_REAL1.nam' the names of the files used in !! PREP_REAL_CASE: Aladin or Mesonh input file, physiographic data file, !! output listing file and MESO-NH output file. @@ -65,7 +65,7 @@ END MODULE MODI_OPEN_PRC_FILES !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : output-listing !! Module MODD_LUNIT1 : !! CINIFILE : name of MESO-NH file !! @@ -94,6 +94,7 @@ END MODULE MODI_OPEN_PRC_FILES ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines ! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -164,8 +165,6 @@ HCHEMFILE=' ' HCHEMFILETYPE='MESONH' HSURFFILE=' ' HSURFFILETYPE='MESONH' -CLUOUT0 ='OUTPUT_LISTING0 ' -CLUOUT = CLUOUT0 ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index d6f245f7b..7a64a4869 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -312,6 +312,7 @@ !! 01/2018 (G.Delautier) SURFEX 8.1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -664,9 +665,7 @@ CALL DEFAULT_EXPRE ! and open these files : ! ! -CLUOUT = 'OUTPUT_LISTING1' -CLUOUT0 = CLUOUT -CALL IO_FILE_ADD2LIST(TLUOUT0,CLUOUT0,'OUTPUTLISTING','WRITE') +CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING1','OUTPUTLISTING','WRITE') CALL IO_FILE_OPEN_ll(TLUOUT0) NLUOUT = TLUOUT0%NLU !Set output files for PRINT_MSG diff --git a/src/MNH/prep_pgd.f90 b/src/MNH/prep_pgd.f90 index 8617ff5c1..c06a62092 100644 --- a/src/MNH/prep_pgd.f90 +++ b/src/MNH/prep_pgd.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ################ PROGRAM PREP_PGD ! ################ @@ -76,6 +77,7 @@ ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines ! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables ! !---------------------------------------------------------------------------- ! @@ -84,7 +86,7 @@ ! USE MODD_CONF, ONLY : CPROGRAM, L1D, L2D, LPACK, LCARTESIAN USE MODD_CONF_n,ONLY : CSTORAGE_TYPE -USE MODD_LUNIT, ONLY : CLUOUT0,TLUOUT0 +USE MODD_LUNIT, ONLY : TLUOUT0 USE MODD_LUNIT_n,ONLY : LUNIT_MODEL USE MODD_PARAMETERS, ONLY : XUNDEF USE MODD_IO_ll, ONLY : NIO_VERB,NVERB_DEBUG,TFILEDATA,TFILE_OUTPUTLISTING,TFILE_SURFEX @@ -166,7 +168,6 @@ CALL INITIO_ll() ! NHALO=15 ! -CLUOUT0='OUTPUT_LISTING0' ! Name of the output-listing. CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') CALL IO_FILE_OPEN_ll(TLUOUT0) ! diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90 index 9caff1432..06d09417c 100644 --- a/src/MNH/prep_real_case.f90 +++ b/src/MNH/prep_real_case.f90 @@ -287,7 +287,6 @@ !! Module MODD_CONF1 : contains configuration variables for model 1. !! NRR : number of moist variables !! Module MODD_LUNIT : contains logical unit and names of files. -!! CLUOUT0 : name of output-listing !! Module MODD_LUNIT : contains logical unit and names of files (model1). !! CINIFILE: name of the FM file which will be used for the MESO-NH run. !! Module MODD_GRID1 : contains grid variables. @@ -380,6 +379,7 @@ !! B.VIE 2016 : LIMA !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -402,7 +402,7 @@ USE MODD_HURR_CONF USE MODD_IO_ll, ONLY: TFILEDATA,NIO_VERB,NVERB_DEBUG,TFILE_SURFEX USE MODD_LBC_n USE MODD_LSFIELD_n -USE MODD_LUNIT, ONLY: CLUOUT0,TPGDFILE,TLUOUT0,TOUTDATAFILE +USE MODD_LUNIT, ONLY: TPGDFILE,TLUOUT0,TOUTDATAFILE USE MODD_LUNIT_n, ONLY: CINIFILE,TINIFILE,TLUOUT USE MODD_METRICS_n USE MODD_MNH_SURFEX_n @@ -959,14 +959,14 @@ ZDYN = ZTIME2 - ZTIME1 ZTIME1 = ZTIME2 ! IF(LEN_TRIM(YCHEMFILE)>0 .AND. YCHEMFILETYPE=='MESONH')THEN - CALL INI_PROG_VAR(CLUOUT0,XTKE_MX,XSV_MX,YCHEMFILE) + CALL INI_PROG_VAR(XTKE_MX,XSV_MX,YCHEMFILE) LHORELAX_SVCHEM = (NSV_CHEM > 0) LHORELAX_SVCHIC = (NSV_CHIC > 0) LHORELAX_SVDST = (NSV_DST > 0) LHORELAX_SVSLT = (NSV_SLT > 0) LHORELAX_SVAER = (NSV_AER > 0) ELSE - CALL INI_PROG_VAR(CLUOUT0,XTKE_MX,XSV_MX) + CALL INI_PROG_VAR(XTKE_MX,XSV_MX) END IF ! IF (ALLOCATED(XSV_MX)) DEALLOCATE(XSV_MX) diff --git a/src/MNH/prep_surfex.f90 b/src/MNH/prep_surfex.f90 index 06ea465e8..5de5ce5c6 100644 --- a/src/MNH/prep_surfex.f90 +++ b/src/MNH/prep_surfex.f90 @@ -36,7 +36,7 @@ USE MODD_CONF, ONLY : CPROGRAM,& L1D, L2D, LPACK USE MODD_CONF_n, ONLY : CSTORAGE_TYPE USE MODD_IO_ll, ONLY : TFILEDATA, NIO_VERB, NVERB_DEBUG, TFILE_SURFEX -USE MODD_LUNIT, ONLY : CLUOUT0, TPGDFILE, TLUOUT0 +USE MODD_LUNIT, ONLY : TPGDFILE, TLUOUT0 USE MODD_LUNIT_n, ONLY : CINIFILE, TINIFILE USE MODD_MNH_SURFEX_n USE MODD_PARAMETERS, ONLY : JPMODELMAX,JPHEXT,JPVEXT, NUNDEF, XUNDEF diff --git a/src/MNH/read_all_data_grib_case.f90 b/src/MNH/read_all_data_grib_case.f90 index 8f4e4835a..fdcbbf4e4 100644 --- a/src/MNH/read_all_data_grib_case.f90 +++ b/src/MNH/read_all_data_grib_case.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1998-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################# @@ -75,7 +75,7 @@ END MODULE MODI_READ_ALL_DATA_GRIB_CASE !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : name of output-listing !! Module MODD_PGDDIM : contains dimension of PGD fields !! NPGDIMAX: dimension along x (no external point) !! NPGDJMAX: dimension along y (no external point) diff --git a/src/MNH/read_chem_data_netcdf_case.f90 b/src/MNH/read_chem_data_netcdf_case.f90 index 23bf979a7..c230fd1f5 100644 --- a/src/MNH/read_chem_data_netcdf_case.f90 +++ b/src/MNH/read_chem_data_netcdf_case.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2012-2017 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2012-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################ @@ -71,7 +71,7 @@ END MODULE MODI_READ_CHEM_DATA_NETCDF_CASE !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : name of output-listing !! Module MODD_PGDDIM : contains dimension of PGD fields !! NPGDIMAX: dimension along x (no external point) !! NPGDJMAX: dimension along y (no external point) diff --git a/src/MNH/read_exspa.f90 b/src/MNH/read_exspa.f90 index 4ca2bb66d..1eb9bd915 100644 --- a/src/MNH/read_exspa.f90 +++ b/src/MNH/read_exspa.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !###################### @@ -94,6 +94,7 @@ END MODULE MODI_READ_EXSPA !! Modification 30/03/12 (S.Bielli) add NAM_NCOUT for netcdf output (removed 08/07/2016) !! Modification 08/07/2016 (P.Wautelet) removed MNH_NCWRIT define !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables ! !------------------------------------------------------------------------------- ! @@ -201,8 +202,7 @@ YSPANBR = '00' YDADINIFILE = ' ' YDADSPAFILE = ' ' ! -LUNIT_MODEL(2)%CLUOUT = 'OUTPUT_LISTING2' -CALL IO_FILE_ADD2LIST(LUNIT_MODEL(2)%TLUOUT,LUNIT_MODEL(2)%CLUOUT,'OUTPUTLISTING','WRITE') +CALL IO_FILE_ADD2LIST(LUNIT_MODEL(2)%TLUOUT,'OUTPUT_LISTING2','OUTPUTLISTING','WRITE') CALL IO_FILE_OPEN_ll(LUNIT_MODEL(2)%TLUOUT) ! !Set output file for PRINT_MSG diff --git a/src/MNH/read_hgridn.f90 b/src/MNH/read_hgridn.f90 index 7dd64e89a..77aa6acd7 100644 --- a/src/MNH/read_hgridn.f90 +++ b/src/MNH/read_hgridn.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -55,8 +55,8 @@ END MODULE MODI_READ_HGRID_n !! NJMAX !! Module MODD_PARAMETERS : !! JPHEXT -!! Module MODD_LUNIT : -!! CLUOUT +!! Module MODD_LUNIT_n : +!! TLUOUT !! !! REFERENCE !! --------- diff --git a/src/MNH/read_precip_field.f90 b/src/MNH/read_precip_field.f90 index 782175957..9450008a6 100644 --- a/src/MNH/read_precip_field.f90 +++ b/src/MNH/read_precip_field.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################# @@ -11,7 +11,7 @@ ! INTERFACE ! - SUBROUTINE READ_PRECIP_FIELD(TPINIFILE,HLUOUT,HPROGRAM,HCONF, & + SUBROUTINE READ_PRECIP_FIELD(TPINIFILE,HPROGRAM,HCONF, & HGETRCT,HGETRRT,HGETRST,HGETRGT,HGETRHT, & PINPRC,PACPRC,PINDEP,PACDEP,PINPRR,PINPRR3D,PEVAP3D, & PACPRR,PINPRS,PACPRS,PINPRG,PACPRG,PINPRH,PACPRH ) @@ -21,7 +21,6 @@ USE MODD_IO_ll, ONLY : TFILEDATA !* 0.1 declarations of arguments ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing of nested models CHARACTER (LEN=*), INTENT(IN) :: HPROGRAM ! CHARACTER (LEN=*), INTENT(IN) :: HCONF ! ! @@ -50,7 +49,7 @@ END INTERFACE END MODULE MODI_READ_PRECIP_FIELD ! ! ############################################################################## - SUBROUTINE READ_PRECIP_FIELD(TPINIFILE,HLUOUT,HPROGRAM,HCONF, & + SUBROUTINE READ_PRECIP_FIELD(TPINIFILE,HPROGRAM,HCONF, & HGETRCT,HGETRRT,HGETRST,HGETRGT,HGETRHT, & PINPRC,PACPRC,PINDEP,PACDEP,PINPRR,PINPRR3D,PEVAP3D, & PACPRR,PINPRS,PACPRS,PINPRG,PACPRG,PINPRH,PACPRH ) @@ -93,6 +92,7 @@ END MODULE MODI_READ_PRECIP_FIELD !! (C.Lac) 04/03/13 add YGETxxx for FIT scheme !! 10/2016 (C.Lac) Add droplet deposition !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !! !----------------------------------------------------------------------------- ! @@ -111,7 +111,6 @@ IMPLICIT NONE !* 0.1 declarations of arguments ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing of nested models CHARACTER (LEN=*), INTENT(IN) :: HPROGRAM ! CHARACTER (LEN=*), INTENT(IN) :: HCONF ! ! diff --git a/src/MNH/read_ver_grid.f90 b/src/MNH/read_ver_grid.f90 index e03293b38..42183bf94 100644 --- a/src/MNH/read_ver_grid.f90 +++ b/src/MNH/read_ver_grid.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -70,7 +70,7 @@ END MODULE MODI_READ_VER_GRID !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : name of output-listing !! Module MODD_GRID1 !! XZHAT !! Module MODD_DIM1 diff --git a/src/MNH/rel_forcingn.f90 b/src/MNH/rel_forcingn.f90 index 007380464..b85cff608 100644 --- a/src/MNH/rel_forcingn.f90 +++ b/src/MNH/rel_forcingn.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 2010-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ##################### MODULE MODI_REL_FORCING_n ! ##################### @@ -70,7 +71,7 @@ END MODULE MODI_REL_FORCING_n !! TDTADVFRC: date of each advecting-forcing profile !! XUFRC,XVFRC,XWFRC,XTHFRC,XRVFRC: advecting-forcing variables !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : name of output-listing !! Module MODD_PARAMETERS: declaration of parameter variables !! JPVEXT: define the number of marginal points out of the !! physical domain along the vertical direction. diff --git a/src/MNH/reset_exseg.f90 b/src/MNH/reset_exseg.f90 index ba9b61d89..ca4903a6d 100644 --- a/src/MNH/reset_exseg.f90 +++ b/src/MNH/reset_exseg.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2000-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -9,9 +9,7 @@ ! INTERFACE ! - SUBROUTINE RESET_EXSEG(HLUOUT) -! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! Name for output listing + SUBROUTINE RESET_EXSEG() ! END SUBROUTINE RESET_EXSEG ! @@ -20,7 +18,7 @@ END INTERFACE END MODULE MODI_RESET_EXSEG ! ! ############################## - SUBROUTINE RESET_EXSEG(HLUOUT) + SUBROUTINE RESET_EXSEG() ! ############################## ! !!**** *RESET_EXSEG* - routine used to mofify the EXSEG1.nam informations @@ -57,6 +55,7 @@ END MODULE MODI_RESET_EXSEG !! Modifications 04/06/02 (P Jabouille) reset radiation and convective options !! 02/2018 Q.Libois ECRAD !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -82,8 +81,6 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! Name for output listing -! !* 0.2 declarations of local variables ! INTEGER :: IRESP,ILUNAM ! return code and logical unit number diff --git a/src/MNH/retrieve1_nest_infon.f90 b/src/MNH/retrieve1_nest_infon.f90 index 03b49bc76..a49173180 100644 --- a/src/MNH/retrieve1_nest_infon.f90 +++ b/src/MNH/retrieve1_nest_infon.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 spawn 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ################################ MODULE MODI_RETRIEVE1_NEST_INFO_n ! ################################ @@ -72,8 +67,6 @@ END MODULE MODI_RETRIEVE1_NEST_INFO_n !! NIMAX, NJMAX !! Module MODD_PARAMETERS : !! JPHEXT -!! Module MODD_LUNIT : -!! CLUOUT !! !! REFERENCE !! --------- diff --git a/src/MNH/retrieve2_nest_infon.f90 b/src/MNH/retrieve2_nest_infon.f90 index 9464e0431..8ab5618e7 100644 --- a/src/MNH/retrieve2_nest_infon.f90 +++ b/src/MNH/retrieve2_nest_infon.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################ @@ -71,7 +71,7 @@ END MODULE MODI_RETRIEVE2_NEST_INFO_n !! Module MODD_PARAMETERS : !! JPHEXT !! Module MODD_LUNIT : -!! CLUOUT +!! TLUOUT0 !! !! REFERENCE !! --------- diff --git a/src/MNH/set_cstn.f90 b/src/MNH/set_cstn.f90 index 66ad7d4cc..a75a5d7dd 100644 --- a/src/MNH/set_cstn.f90 +++ b/src/MNH/set_cstn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -133,8 +133,8 @@ END MODULE MODI_SET_CSTN !! XRD : Gas constant for dry air !! XCPD : Specific heat for dry air at constant pressure !! -!! Module MODD_LUNIT1 : contains logical unit names -!! CLUOUT : name of output-listing +!! Module MODD_LUNIT_n : contains logical unit names +!! TLUOUT : name of output-listing !! !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing @@ -173,7 +173,7 @@ USE MODD_CONF USE MODD_CST USE MODD_GRID_n USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT_n, ONLY: CLUOUT, TLUOUT +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS, ONLY: JPHEXT ! USE MODE_FM diff --git a/src/MNH/set_frc.f90 b/src/MNH/set_frc.f90 index a78aed447..539bd74ea 100644 --- a/src/MNH/set_frc.f90 +++ b/src/MNH/set_frc.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -56,7 +56,7 @@ END MODULE MODI_SET_FRC !! XRV : Gas constant for vapor !! XRD : Gas constant for dry air !! Module MODD_LUNIT1 : contains logical unit names -!! CLUOUT : name of output-listing +!! TLUOUT : name of output-listing !! Module MODD_GRID1: declaration of grid variables !! XZHAT: height levels without orography !! Module MODD_CONF : contains configuration variables for all models diff --git a/src/MNH/set_geosbal.f90 b/src/MNH/set_geosbal.f90 index 4c0316cd6..10287c546 100644 --- a/src/MNH/set_geosbal.f90 +++ b/src/MNH/set_geosbal.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -195,9 +195,6 @@ END MODULE MODI_SET_GEOSBAL !! XP00 : reference pressure !! XOMEGA : earth rotation !! -!! Module MODD_LUNIT1 : contains logical unit names -!! CLUOUT : name of output-listing -!! !! Module MODD_CONF : contains configuration variables for all models. !! !! L2D : logical for 2D model version diff --git a/src/MNH/set_perturb.f90 b/src/MNH/set_perturb.f90 index 866feb3ba..1689ac4b1 100644 --- a/src/MNH/set_perturb.f90 +++ b/src/MNH/set_perturb.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -110,7 +110,7 @@ USE MODD_FIELD_n USE MODD_GRID_n USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_LBC_n -USE MODD_LUNIT_n, ONLY: CLUOUT, TLUOUT +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_LSFIELD_n USE MODD_PARAMETERS USE MODD_REF_n diff --git a/src/MNH/set_refz.f90 b/src/MNH/set_refz.f90 index d0b12152e..b8b10b3b7 100644 --- a/src/MNH/set_refz.f90 +++ b/src/MNH/set_refz.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -82,7 +82,7 @@ END MODULE MODI_SET_REFZ !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : name of output-listing !! Module MODD_REF : contains anelastic reference state variables !! XEXNTOP : reference state Exner function at model top !! XRHODREFZ: reference state profile of rhod diff --git a/src/MNH/set_rsou.f90 b/src/MNH/set_rsou.f90 index 8a16aa38e..509989b14 100644 --- a/src/MNH/set_rsou.f90 +++ b/src/MNH/set_rsou.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -206,7 +206,7 @@ END MODULE MODI_SET_RSOU !! XCPD : Specific heat for dry air at constant pressure !! !! Module MODD_LUNIT1 : contains logical unit names -!! CLUOUT : name of output-listing +!! TLUOUT : name of output-listing !! !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing diff --git a/src/MNH/spawn_surf2_rain.f90 b/src/MNH/spawn_surf2_rain.f90 index 2a776304a..a1f774f4f 100644 --- a/src/MNH/spawn_surf2_rain.f90 +++ b/src/MNH/spawn_surf2_rain.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2004-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !########################### @@ -91,7 +91,7 @@ END MODULE MODI_SPAWN_SURF2_RAIN !! --------- !! !! Book1 of the documentation -!! +!! !! !! AUTHOR !! ------ @@ -109,6 +109,7 @@ END MODULE MODI_SPAWN_SURF2_RAIN !! C.Lac 10/2016 : Add droplet deposition for fog !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! J.Escobar 05/03/2018 : bypass gridnesting special case KD(X/Y)RATIO == 1 not parallelized +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -119,7 +120,6 @@ USE MODD_CONF, ONLY : CCONF,CPROGRAM USE MODD_FIELD_n, ONLY : XTHT USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_LBC_n, ONLY : LBC_MODEL -USE MODD_LUNIT_n, ONLY : CLUOUT USE MODD_SPAWN ! USE MODE_MODELN_HANDLER @@ -413,7 +413,7 @@ IF (PRESENT(TPSONFILE)) THEN ALLOCATE(ZACPRH1(0,0)) YGETRHT='SKIP' END IF - CALL READ_PRECIP_FIELD(TPSONFILE,CLUOUT,CPROGRAM,CCONF, & + CALL READ_PRECIP_FIELD(TPSONFILE,CPROGRAM,CCONF, & YGETRCT,YGETRRT,YGETRST,YGETRGT,YGETRHT, & ZINPRC1,ZACPRC1,ZINDEP1,ZACDEP1,ZINPRR1,ZINPRR3D1,ZEVAP3D1, & ZACPRR1,ZINPRS1,ZACPRS1, & diff --git a/src/MNH/ver_dyn.f90 b/src/MNH/ver_dyn.f90 index b3ddda0d0..009e8bd33 100644 --- a/src/MNH/ver_dyn.f90 +++ b/src/MNH/ver_dyn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -87,7 +87,7 @@ END MODULE MODI_VER_DYN !! ------------------ !! !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : name of output-listing !! Module MODD_FIELD1 : contains prognostics variables !! XUM : U (:,:,:) at t-dt !! XVM : V (:,:,:,:) at t-dt diff --git a/src/MNH/ver_int_dyn.f90 b/src/MNH/ver_int_dyn.f90 index 4a564f410..1065cdc10 100644 --- a/src/MNH/ver_int_dyn.f90 +++ b/src/MNH/ver_int_dyn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######spl @@ -70,7 +70,7 @@ END MODULE MODI_VER_INT_DYN !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : name of output-listing !! Module MODD_GRID1 : contains grid variables for model1 !! XZS : orography of MESO-NH !! XZZ : altitude of the w points in the MESO-NH grid. diff --git a/src/MNH/ver_int_thermo.f90 b/src/MNH/ver_int_thermo.f90 index cb815488f..03ac8e95b 100644 --- a/src/MNH/ver_int_thermo.f90 +++ b/src/MNH/ver_int_thermo.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -100,7 +100,7 @@ END MODULE MODI_VER_INT_THERMO !! Module MODD_CONF1 !! NRR !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : name of output-listing !! Module MODD_GRID1 : contains grid variables for model1 !! XZS : orography of MESO-NH !! XZZ : altitude of the w points in the MESO-NH grid. @@ -145,7 +145,7 @@ USE MODD_CONF_n USE MODD_CST USE MODD_GRID_n USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT, ONLY: CLUOUT0, TLUOUT0 +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_VER_INTERP_LIN ! diff --git a/src/MNH/ver_interp_to_mixed_grid.f90 b/src/MNH/ver_interp_to_mixed_grid.f90 index 7325b1acd..13f9ba705 100644 --- a/src/MNH/ver_interp_to_mixed_grid.f90 +++ b/src/MNH/ver_interp_to_mixed_grid.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################################### @@ -109,7 +109,7 @@ END MODULE MODI_VER_INTERP_TO_MIXED_GRID !! Module MODD_CONF1 !! NRR !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : name of output-listing !! Module MODD_CST : contains physical constants !! XRD : gas constant for dry air !! XRV : gas constant for vapor diff --git a/src/MNH/ver_prep_gribex_case.f90 b/src/MNH/ver_prep_gribex_case.f90 index 4368fc4c1..1c6ea2b2a 100644 --- a/src/MNH/ver_prep_gribex_case.f90 +++ b/src/MNH/ver_prep_gribex_case.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision -! MASDEV4_7 prep_real 2006/05/23 14:49:51 -!----------------------------------------------------------------- ! ################################ MODULE MODI_VER_PREP_GRIBEX_CASE ! ################################ @@ -52,7 +47,7 @@ END MODULE MODI_VER_PREP_GRIBEX_CASE !! Module MODD_CONF1 : contains configuration variables for all models. !! NVERB : verbosity level for output-listing !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : name of output-listing !! Module MODD_CST : contains physical constants !! XRD : gas constant for dry air !! XRV : gas constant for vapor diff --git a/src/MNH/ver_thermo.f90 b/src/MNH/ver_thermo.f90 index 1a13b3ad1..94f06c8a8 100644 --- a/src/MNH/ver_thermo.f90 +++ b/src/MNH/ver_thermo.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -94,7 +94,7 @@ END MODULE MODI_VER_THERMO !! Module MODD_CONF1 : contains configuration variables for model 1. !! NRR : number of moist variables !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : name of output-listing !! Module MODD_CST : contains physical constants !! XRD : gas constant for dry air !! XRV : gas constant for vapor @@ -163,8 +163,7 @@ USE MODD_GRID_n USE MODD_IO_ll, ONLY: TFILEDATA,TFILE_DUMMY USE MODD_LBC_n USE MODD_LSFIELD_n -USE MODD_LUNIT, ONLY: CLUOUT0,TLUOUT0 -USE MODD_LUNIT_n, ONLY: CLUOUT +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_REF_n ! diff --git a/src/MNH/zoom_pgd.f90 b/src/MNH/zoom_pgd.f90 index e00cc34e6..26370ed71 100644 --- a/src/MNH/zoom_pgd.f90 +++ b/src/MNH/zoom_pgd.f90 @@ -41,6 +41,7 @@ !! 08/07/2016 P.Wautelet Removed MNH_NCWRIT define !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !! !---------------------------------------------------------------------------- ! @@ -49,7 +50,7 @@ ! USE MODD_CONF, ONLY : CPROGRAM, L1D, L2D, LPACK USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG,TFILE_OUTPUTLISTING,TFILEDATA -USE MODD_LUNIT, ONLY : CLUOUT0, TLUOUT0, TOUTDATAFILE +USE MODD_LUNIT, ONLY : TLUOUT0, TOUTDATAFILE USE MODD_PARAMETERS, ONLY : XUNDEF, NUNDEF, JPVEXT, JPHEXT, JPMODELMAX USE MODD_PARAM_n, ONLY : CSURF USE MODD_DIM_n, ONLY : NIMAX, NJMAX @@ -122,7 +123,6 @@ CALL INI_CST ! CALL INITIO_ll() ! -CLUOUT0='OUTPUT_LISTING0' ! name of the output-listing CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') CALL IO_FILE_OPEN_ll(TLUOUT0) TFILE_OUTPUTLISTING => TLUOUT0 diff --git a/src/MNH/zsmt_pgd.f90 b/src/MNH/zsmt_pgd.f90 index 14a4be23b..fc93dfacc 100644 --- a/src/MNH/zsmt_pgd.f90 +++ b/src/MNH/zsmt_pgd.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2005-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2005-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ###################### MODULE MODI_ZSMT_PGD @@ -66,7 +66,6 @@ END MODULE MODI_ZSMT_PGD !* 0. DECLARATIONS ! USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT, ONLY : CLUOUT0 USE MODD_PARAMETERS, ONLY : JPHEXT, XUNDEF ! USE MODI_MNHGET_SURF_PARAM_n diff --git a/src/MNH/zsmt_pic.f90 b/src/MNH/zsmt_pic.f90 index e036a4c82..403b2a463 100644 --- a/src/MNH/zsmt_pic.f90 +++ b/src/MNH/zsmt_pic.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2005-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 newsrc 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ###################### MODULE MODI_ZSMT_PIC ! ###################### @@ -61,7 +56,6 @@ END MODULE MODI_ZSMT_PIC ! !* 0. DECLARATIONS ! -USE MODD_LUNIT, ONLY : CLUOUT0 USE MODD_PARAMETERS, ONLY : XUNDEF USE MODD_GRID_n, ONLY : XZS,XZSMT ! -- GitLab From e59a61f44a3be25adcd916495a5d7349465eea89 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 14 Feb 2019 11:02:47 +0100 Subject: [PATCH 048/139] Philippe 14/02/2019: remove HINIFILE dummy argument from INI_RADIATIONS_ECMWF/ECRAD --- src/MNH/ini_modeln.f90 | 9 ++++----- src/MNH/ini_radiations_ecmwf.f90 | 7 +++---- src/MNH/ini_radiations_ecrad.f90 | 9 ++++----- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index 9e1d3bf88..c4fc6fb9a 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -280,6 +280,7 @@ END MODULE MODI_INI_MODEL_n !! P.Wautelet 29/01/2019: bug: add missing zero-size allocations ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables +! P. Wautelet 14/02/2019: remove HINIFILE dummy argument from INI_RADIATIONS_ECMWF/ECRAD !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -2241,8 +2242,7 @@ IF (CRAD == 'ECMW') THEN ZBARE(:,:) = 0. END IF ! - CALL INI_RADIATIONS_ECMWF (TPINIFILE%CNAME, & - XZHAT,XPABST,XTHT,XTSRAD,XLAT,XLON,TDTCUR,TDTEXP, & + CALL INI_RADIATIONS_ECMWF (XZHAT,XPABST,XTHT,XTSRAD,XLAT,XLON,TDTCUR,TDTEXP, & CLW,NDLON,NFLEV,NFLUX,NRAD,NSWB_OLD,CAER,NAER,NSTATM, & XSTATM,ZSEA,ZTOWN,ZBARE,XOZON, XAER,XDST_WL, LSUBG_COND ) ! @@ -2268,9 +2268,8 @@ ELSE IF (CRAD == 'ECRA') THEN ZTOWN(:,:) = 0. ZBARE(:,:) = 0. END IF -! - CALL INI_RADIATIONS_ECRAD (TPINIFILE%CNAME, & - XZHAT,XPABST,XTHT,XTSRAD,XLAT,XLON,TDTCUR,TDTEXP, & +! + CALL INI_RADIATIONS_ECRAD (XZHAT,XPABST,XTHT,XTSRAD,XLAT,XLON,TDTCUR,TDTEXP, & CLW,NDLON,NFLEV,NFLUX,NRAD,NSWB_OLD,CAER,NAER,NSTATM, & XSTATM,ZSEA,ZTOWN,ZBARE,XOZON, XAER,XDST_WL, LSUBG_COND ) diff --git a/src/MNH/ini_radiations_ecmwf.f90 b/src/MNH/ini_radiations_ecmwf.f90 index 17eb3c7d9..2ee41916e 100644 --- a/src/MNH/ini_radiations_ecmwf.f90 +++ b/src/MNH/ini_radiations_ecmwf.f90 @@ -9,14 +9,13 @@ ! INTERFACE ! - SUBROUTINE INI_RADIATIONS_ECMWF(HINIFILE, & + SUBROUTINE INI_RADIATIONS_ECMWF( & PZHAT, PPABST, PTHT, PTSRAD, PLAT, PLON, TPDTCUR, TPDTEXP, & HLW, KDLON, KFLEV, KFLUX, KRAD, KSWB, HAER, KAER, KSTATM, & PSTATM, PSEA, PTOWN, PBARE, POZON, PAER, PDST_WL, OSUBG_COND ) ! USE MODD_TYPE_DATE ! -CHARACTER (LEN=*), INTENT(IN) :: HINIFILE ! Name of the initial file CHARACTER (LEN=*), INTENT(IN) :: HAER ! aerosol optical thickness climatology CHARACTER (LEN=4), INTENT(IN) :: HLW ! LW scheme used ! @@ -59,7 +58,7 @@ END MODULE MODI_INI_RADIATIONS_ECMWF ! ! ! ################################################################### - SUBROUTINE INI_RADIATIONS_ECMWF(HINIFILE, & + SUBROUTINE INI_RADIATIONS_ECMWF( & PZHAT, PPABST, PTHT, PTSRAD, PLAT, PLON, TPDTCUR, TPDTEXP, & HLW, KDLON, KFLEV, KFLUX, KRAD, KSWB, HAER, KAER, KSTATM, & PSTATM, PSEA, PTOWN, PBARE, POZON, PAER, PDST_WL, OSUBG_COND ) @@ -172,6 +171,7 @@ END MODULE MODI_INI_RADIATIONS_ECMWF !! J.Escobar 30/03/2017 : Management of compilation of ECMWF_RAD in REAL*8 with MNH_REAL=R4 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables +! P. Wautelet 14/02/2019: remove HINIFILE dummy argument !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -215,7 +215,6 @@ IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : ! -CHARACTER (LEN=*), INTENT(IN) :: HINIFILE ! Name of the initial file CHARACTER (LEN=*), INTENT(IN) :: HAER ! aerosol optical thickness climatology CHARACTER (LEN=4), INTENT(IN) :: HLW ! LW scheme used ! diff --git a/src/MNH/ini_radiations_ecrad.f90 b/src/MNH/ini_radiations_ecrad.f90 index d24b8b329..6b3fdd2f2 100644 --- a/src/MNH/ini_radiations_ecrad.f90 +++ b/src/MNH/ini_radiations_ecrad.f90 @@ -9,14 +9,13 @@ ! INTERFACE ! - SUBROUTINE INI_RADIATIONS_ECRAD(HINIFILE, & + SUBROUTINE INI_RADIATIONS_ECRAD( & PZHAT, PPABST, PTHT, PTSRAD, PLAT, PLON, TPDTCUR, TPDTEXP, & HLW, KDLON, KFLEV, KFLUX, KRAD, KSWB_OLD, HAER, KAER, KSTATM, & PSTATM, PSEA, PTOWN, PBARE, POZON, PAER, PDST_WL, OSUBG_COND ) ! USE MODD_TYPE_DATE -CHARACTER (LEN=*), INTENT(IN) :: HINIFILE ! Name of the initial file CHARACTER (LEN=*), INTENT(IN) :: HAER ! aerosol optical thickness climatology CHARACTER (LEN=4), INTENT(IN) :: HLW ! LW scheme used ! @@ -59,7 +58,7 @@ END MODULE MODI_INI_RADIATIONS_ECRAD ! ! ! #################################################################### - SUBROUTINE INI_RADIATIONS_ECRAD(HINIFILE, & + SUBROUTINE INI_RADIATIONS_ECRAD( & PZHAT, PPABST, PTHT, PTSRAD, PLAT, PLON, TPDTCUR, TPDTEXP, & HLW, KDLON, KFLEV, KFLUX, KRAD, KSWB_OLD, HAER, KAER, KSTATM, & PSTATM, PSEA, PTOWN, PBARE, POZON, PAER, PDST_WL, OSUBG_COND ) @@ -86,6 +85,7 @@ END MODULE MODI_INI_RADIATIONS_ECRAD ! ------------- ! ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables +! P. Wautelet 14/02/2019: remove HINIFILE dummy argument ! !* 0. DECLARATIONS ! ------------ @@ -114,7 +114,6 @@ IMPLICIT NONE !* 0.1 Declarations of dummy arguments : ! -CHARACTER (LEN=*), INTENT(IN) :: HINIFILE ! Name of the initial file CHARACTER (LEN=*), INTENT(IN) :: HAER ! aerosol optical thickness climatology CHARACTER (LEN=4), INTENT(IN) :: HLW ! LW scheme used ! @@ -154,7 +153,7 @@ LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for sub-grid condensation NULOUT = TLUOUT%NLU ! Initialization of ECMWF still neede because many things intialized through this routine -CALL INI_RADIATIONS_ECMWF( HINIFILE, & +CALL INI_RADIATIONS_ECMWF( & PZHAT, PPABST, PTHT, PTSRAD, PLAT, PLON, TPDTCUR, TPDTEXP, & HLW, KDLON, KFLEV, KFLUX, KRAD, KSWB_OLD, HAER, KAER, KSTATM, & PSTATM, PSEA, PTOWN, PBARE, POZON, PAER, PDST_WL, OSUBG_COND ) -- GitLab From b7a3960accd1511f558cb58056e3ad26f2c42cea Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Thu, 14 Feb 2019 16:23:25 +0100 Subject: [PATCH 049/139] Benoit V. 14/02/2019: LIMA minor correction (budget and turn off heat exchange transport by droplets) --- src/MNH/lima.f90 | 15 +++++++++++---- src/MNH/lima_sedimentation.f90 | 17 +++++++++-------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/MNH/lima.f90 b/src/MNH/lima.f90 index d9149be2a..4351a3a4c 100644 --- a/src/MNH/lima.f90 +++ b/src/MNH/lima.f90 @@ -95,6 +95,7 @@ END MODULE MODI_LIMA !! ------------- !! Original 15/03/2018 !! +!! B.Vié 02/2019 : minor correction on budget !! !! !* 0. DECLARATIONS @@ -640,6 +641,12 @@ Z_CR_CVRC(:,:,:) = 0. IF (LWARM .AND. LRAIN) THEN CALL LIMA_DROPS_TO_DROPLETS_CONV(PRHODREF, ZRCS*PTSTEP, ZRRS*PTSTEP, ZCCS*PTSTEP, ZCRS*PTSTEP, & Z_RR_CVRC, Z_CR_CVRC) + ! + ZRCS(:,:,:) = ZRCS(:,:,:) - Z_RR_CVRC(:,:,:)/PTSTEP + ZRRS(:,:,:) = ZRRS(:,:,:) + Z_RR_CVRC(:,:,:)/PTSTEP + ZCCS(:,:,:) = ZCCS(:,:,:) - Z_CR_CVRC(:,:,:)/PTSTEP + ZCRS(:,:,:) = ZCRS(:,:,:) + Z_CR_CVRC(:,:,:)/PTSTEP + ! IF(LBU_ENABLE) THEN IF (LBUDGET_RC) CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'R2C1_BU_RRC') IF (LBUDGET_RR) CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'R2C1_BU_RRR') @@ -655,15 +662,15 @@ END IF ZTHT(:,:,:) = ZTHS(:,:,:) * PTSTEP ZT(:,:,:) = ZTHT(:,:,:) * ZEXN(:,:,:) ! -IF ( KRR .GE. 2 ) ZRCT(:,:,:) = ZRCS(:,:,:) * PTSTEP - Z_RR_CVRC(:,:,:) -IF ( KRR .GE. 3 ) ZRRT(:,:,:) = ZRRS(:,:,:) * PTSTEP + Z_RR_CVRC(:,:,:) +IF ( KRR .GE. 2 ) ZRCT(:,:,:) = ZRCS(:,:,:) * PTSTEP +IF ( KRR .GE. 3 ) ZRRT(:,:,:) = ZRRS(:,:,:) * PTSTEP IF ( KRR .GE. 4 ) ZRIT(:,:,:) = ZRIS(:,:,:) * PTSTEP IF ( KRR .GE. 5 ) ZRST(:,:,:) = ZRSS(:,:,:) * PTSTEP IF ( KRR .GE. 6 ) ZRGT(:,:,:) = ZRGS(:,:,:) * PTSTEP IF ( KRR .GE. 7 ) ZRHT(:,:,:) = ZRHS(:,:,:) * PTSTEP ! -IF ( LWARM ) ZCCT(:,:,:) = ZCCS(:,:,:) * PTSTEP - Z_CR_CVRC(:,:,:) -IF ( LWARM .AND. LRAIN ) ZCRT(:,:,:) = ZCRS(:,:,:) * PTSTEP + Z_CR_CVRC(:,:,:) +IF ( LWARM ) ZCCT(:,:,:) = ZCCS(:,:,:) * PTSTEP +IF ( LWARM .AND. LRAIN ) ZCRT(:,:,:) = ZCRS(:,:,:) * PTSTEP IF ( LCOLD ) ZCIT(:,:,:) = ZCIS(:,:,:) * PTSTEP ! !------------------------------------------------------------------------------- diff --git a/src/MNH/lima_sedimentation.f90 b/src/MNH/lima_sedimentation.f90 index ab0ebebca..36b173a84 100644 --- a/src/MNH/lima_sedimentation.f90 +++ b/src/MNH/lima_sedimentation.f90 @@ -61,6 +61,7 @@ END MODULE MODI_LIMA_SEDIMENTATION !! ------------- !! Original 15/03/2018 !! +!! B.Vie 02/2019 Desactivate (comment) the heat transport by droplets !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -205,14 +206,14 @@ DO JN = 1 , NSPLITSED(KID) IF (KMOMENTS==2) PCS(:,:,JK) = PCS(:,:,JK) + ZW(:,:,JK)* & (ZWSEDC(:,:,JK+KKL)-ZWSEDC(:,:,JK))/PRHODREF(:,:,JK) ! Heat transport - PRT_SUM(:,:,JK-KKL) = PRT_SUM(:,:,JK-KKL) + ZW(:,:,JK-KKL)*ZWSEDR(:,:,JK)/PRHODREF(:,:,JK-KKL) - PRT_SUM(:,:,JK) = PRT_SUM(:,:,JK) - ZW(:,:,JK)*ZWSEDR(:,:,JK)/PRHODREF(:,:,JK) - PCPT(:,:,JK-KKL) = PCPT(:,:,JK-KKL) + ZC * (ZW(:,:,JK-KKL)*ZWSEDR(:,:,JK)/PRHODREF(:,:,JK-KKL)) - PCPT(:,:,JK) = PCPT(:,:,JK) - ZC * (ZW(:,:,JK)*ZWSEDR(:,:,JK)/PRHODREF(:,:,JK)) - ZWDT(:,:,JK) =(PRHODREF(:,:,JK+KKL)*(1.+PRT_SUM(:,:,JK))*PCPT(:,:,JK)*PT(:,:,JK) + & - ZW(:,:,JK)*ZWSEDR(:,:,JK+1)*ZC*PT(:,:,JK+KKL)) / & - (PRHODREF(:,:,JK+KKL)*(1.+PRT_SUM(:,:,JK))*PCPT(:,:,JK) + ZW(:,:,JK)*ZWSEDR(:,:,JK+KKL)*ZC) - ZWDT(:,:,JK) = ZWDT(:,:,JK) - PT(:,:,JK) + !PRT_SUM(:,:,JK-KKL) = PRT_SUM(:,:,JK-KKL) + ZW(:,:,JK-KKL)*ZWSEDR(:,:,JK)/PRHODREF(:,:,JK-KKL) + !PRT_SUM(:,:,JK) = PRT_SUM(:,:,JK) - ZW(:,:,JK)*ZWSEDR(:,:,JK)/PRHODREF(:,:,JK) + !PCPT(:,:,JK-KKL) = PCPT(:,:,JK-KKL) + ZC * (ZW(:,:,JK-KKL)*ZWSEDR(:,:,JK)/PRHODREF(:,:,JK-KKL)) + !PCPT(:,:,JK) = PCPT(:,:,JK) - ZC * (ZW(:,:,JK)*ZWSEDR(:,:,JK)/PRHODREF(:,:,JK)) + !ZWDT(:,:,JK) =(PRHODREF(:,:,JK+KKL)*(1.+PRT_SUM(:,:,JK))*PCPT(:,:,JK)*PT(:,:,JK) + & + ! ZW(:,:,JK)*ZWSEDR(:,:,JK+1)*ZC*PT(:,:,JK+KKL)) / & + ! (PRHODREF(:,:,JK+KKL)*(1.+PRT_SUM(:,:,JK))*PCPT(:,:,JK) + ZW(:,:,JK)*ZWSEDR(:,:,JK+KKL)*ZC) + !ZWDT(:,:,JK) = ZWDT(:,:,JK) - PT(:,:,JK) END DO DEALLOCATE(ZRHODREF) DEALLOCATE(ZPABST) -- GitLab From bb9b30b3f8c0031f960fa041acdd8df56e99fc38 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 14 Feb 2019 17:06:37 +0100 Subject: [PATCH 050/139] Philippe 14/02/2019: move UPCASE function to tools.f90 --- src/LIB/SURCOUCHE/src/mode_io.f90 | 24 +++----------- src/MNH/ini_deep_convection.f90 | 22 ++---------- src/MNH/ini_lb.f90 | 26 +++------------ src/MNH/read_all_data_grib_case.f90 | 2 +- src/MNH/read_chem_data_netcdf_case.f90 | 2 +- src/MNH/read_field.f90 | 2 +- src/MNH/spawn_field2.f90 | 6 ++-- src/MNH/tools.f90 | 46 ++++++++++++++++++++++++++ src/MNH/write_lbn.f90 | 2 +- src/MNH/write_lfifm1_for_diag.f90 | 7 ++-- src/MNH/write_lfin.f90 | 2 +- 11 files changed, 68 insertions(+), 73 deletions(-) create mode 100644 src/MNH/tools.f90 diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index f42f0b08e..b4f6ba125 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -28,6 +28,7 @@ ! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines ! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! P. Wautelet 14/02/2019: move UPCASE function to tools.f90 ! !----------------------------------------------------------------- MODULE MODE_IO_ll @@ -43,29 +44,11 @@ MODULE MODE_IO_ll LOGICAL,SAVE :: GCONFIO = .FALSE. ! Turn TRUE when SET_CONFIO_ll is called. - PUBLIC UPCASE,INITIO_ll,OPEN_ll,CLOSE_ll + PUBLIC INITIO_ll,OPEN_ll,CLOSE_ll PUBLIC SET_CONFIO_ll,GCONFIO CONTAINS - FUNCTION UPCASE(HSTRING) - CHARACTER(LEN=*) :: HSTRING - CHARACTER(LEN=LEN(HSTRING)) :: UPCASE - - INTEGER :: JC - INTEGER, PARAMETER :: IAMIN = IACHAR("a") - INTEGER, PARAMETER :: IAMAJ = IACHAR("A") - - DO JC=1,LEN(HSTRING) - IF (HSTRING(JC:JC) >= "a" .AND. HSTRING(JC:JC) <= "z") THEN - UPCASE(JC:JC) = ACHAR(IACHAR(HSTRING(JC:JC)) - IAMIN + IAMAJ) - ELSE - UPCASE(JC:JC) = HSTRING(JC:JC) - END IF - END DO - - END FUNCTION UPCASE - SUBROUTINE SET_CONFIO_ll() USE MODN_CONFIO @@ -161,6 +144,7 @@ CONTAINS use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME use mode_io_tools, only: io_rank + use mode_tools, only: upcase TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE INTEGER, INTENT(OUT) :: IOSTAT @@ -194,7 +178,7 @@ CONTAINS IF (PRESENT(MODE)) THEN YMODE = MODE YMODE = UPCASE(TRIM(ADJUSTL(YMODE))) - ELSE + ELSE YMODE = 'GLOBAL' ! Default Mode END IF diff --git a/src/MNH/ini_deep_convection.f90 b/src/MNH/ini_deep_convection.f90 index 476199193..1622565cc 100644 --- a/src/MNH/ini_deep_convection.f90 +++ b/src/MNH/ini_deep_convection.f90 @@ -109,6 +109,7 @@ END MODULE MODI_INI_DEEP_CONVECTION !! for a correct restart this variable has to be writen in FM file !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables +! P. Wautelet 14/02/2019: move UPCASE function to tools.f90 !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -134,6 +135,7 @@ USE MODD_SALT, ONLY : CSALTNAMES USE MODE_FIELD USE MODE_FM USE MODE_FMREAD +USE MODE_TOOLS, ONLY: UPCASE ! IMPLICIT NONE ! @@ -336,25 +338,5 @@ ELSE ! ! END IF -! -CONTAINS -FUNCTION UPCASE(HSTRING) - -CHARACTER(LEN=*) :: HSTRING -CHARACTER(LEN=LEN(HSTRING)) :: UPCASE - -INTEGER :: JC -INTEGER, PARAMETER :: IAMIN = IACHAR("a") -INTEGER, PARAMETER :: IAMAJ = IACHAR("A") - -DO JC=1,LEN(HSTRING) - IF (HSTRING(JC:JC) >= "a" .AND. HSTRING(JC:JC) <= "z") THEN - UPCASE(JC:JC) = ACHAR(IACHAR(HSTRING(JC:JC)) - IAMIN + IAMAJ) - ELSE - UPCASE(JC:JC) = HSTRING(JC:JC) - END IF -END DO - -END FUNCTION UPCASE ! END SUBROUTINE INI_DEEP_CONVECTION diff --git a/src/MNH/ini_lb.f90 b/src/MNH/ini_lb.f90 index eb93466cf..004e340ec 100644 --- a/src/MNH/ini_lb.f90 +++ b/src/MNH/ini_lb.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -132,6 +132,7 @@ SUBROUTINE INI_LB(TPINIFILE,OLSOURCE,KSV, & !! J.-P. Pinty 09/02/16 Add LIMA that is LBC for CCN and IFN !! M.Leriche 09/02/16 Treat gas and aq. chemicals separately !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 14/02/2019: move UPCASE function to tools.f90 !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -158,6 +159,7 @@ USE MODD_SALT USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL USE MODE_FMREAD USE MODE_MSG +USE MODE_TOOLS, ONLY: UPCASE ! IMPLICIT NONE ! @@ -1623,27 +1625,7 @@ IF (OLSOURCE) THEN PLBYSVM(:,:,:,JSV) = (PLBYSVM(:,:,:,JSV) - PLBYSVMM(:,:,:,JSV)) / PLENG ENDIF END DO -! +! ENDIF - -CONTAINS -FUNCTION UPCASE(HSTRING) - -CHARACTER(LEN=*) :: HSTRING -CHARACTER(LEN=LEN(HSTRING)) :: UPCASE - -INTEGER :: JC -INTEGER, PARAMETER :: IAMIN = IACHAR("a") -INTEGER, PARAMETER :: IAMAJ = IACHAR("A") - -DO JC=1,LEN(HSTRING) - IF (HSTRING(JC:JC) >= "a" .AND. HSTRING(JC:JC) <= "z") THEN - UPCASE(JC:JC) = ACHAR(IACHAR(HSTRING(JC:JC)) - IAMIN + IAMAJ) - ELSE - UPCASE(JC:JC) = HSTRING(JC:JC) - END IF -END DO - -END FUNCTION UPCASE ! END SUBROUTINE INI_LB diff --git a/src/MNH/read_all_data_grib_case.f90 b/src/MNH/read_all_data_grib_case.f90 index fdcbbf4e4..8d26d8f74 100644 --- a/src/MNH/read_all_data_grib_case.f90 +++ b/src/MNH/read_all_data_grib_case.f90 @@ -135,10 +135,10 @@ END MODULE MODI_READ_ALL_DATA_GRIB_CASE ! USE MODE_DATETIME USE MODE_FM, ONLY: IO_FILE_CLOSE_ll -USE MODE_IO_ll, ONLY: UPCASE USE MODE_MSG USE MODE_TIME USE MODE_THERMO +USE MODE_TOOLS, ONLY: UPCASE ! USE MODI_READ_HGRID_n USE MODI_READ_VER_GRID diff --git a/src/MNH/read_chem_data_netcdf_case.f90 b/src/MNH/read_chem_data_netcdf_case.f90 index c230fd1f5..1ba217830 100644 --- a/src/MNH/read_chem_data_netcdf_case.f90 +++ b/src/MNH/read_chem_data_netcdf_case.f90 @@ -111,10 +111,10 @@ USE MODD_TIME USE MODD_TIME_n ! USE MODE_FM -USE MODE_IO_ll USE MODE_MPPDB USE MODE_THERMO USE MODE_TIME +USE MODE_TOOLS, ONLY: UPCASE ! USE MODI_CH_AER_INIT_SOA USE MODI_CH_INIT_SCHEME_n diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90 index da3a813fc..819595627 100644 --- a/src/MNH/read_field.f90 +++ b/src/MNH/read_field.f90 @@ -279,8 +279,8 @@ USE MODD_TIME ! for type DATE_TIME ! USE MODE_FIELD, ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME,TYPEDATE,TYPEREAL USE MODE_FMREAD -USE MODE_IO_ll, ONLY: UPCASE USE MODE_MSG +USE MODE_TOOLS, ONLY: UPCASE ! USE MODI_INI_LB USE MODI_INI_LS diff --git a/src/MNH/spawn_field2.f90 b/src/MNH/spawn_field2.f90 index b083a03d6..69346e7ba 100644 --- a/src/MNH/spawn_field2.f90 +++ b/src/MNH/spawn_field2.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !####################### MODULE MODI_SPAWN_FIELD2 @@ -185,11 +185,11 @@ USE MODD_SPAWN ! USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL USE MODE_FMREAD -USE MODE_IO_ll, ONLY: UPCASE USE MODE_ll USE MODE_MODELN_HANDLER USE MODE_MPPDB USE MODE_THERMO +USE MODE_TOOLS, ONLY: UPCASE ! USE MODI_BIKHARDT ! diff --git a/src/MNH/tools.f90 b/src/MNH/tools.f90 new file mode 100644 index 000000000..68a195fac --- /dev/null +++ b/src/MNH/tools.f90 @@ -0,0 +1,46 @@ +!MNH_LIC Copyright 2019-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- + +!################ +module mode_tools +!################ +! +! Purpose +! ------- +! +! The Purpose of this module is to provide useful tools for MesoNH +! +! Author +! ------ +! P. Wautelet 14/02/2019 +! + +implicit none + +private + +public :: upcase + +contains + +function upcase(hstring) + character(len=*), intent(in) :: hstring + character(len=len(hstring)) :: upcase + + integer :: jc + integer, parameter :: iamin = iachar("a") + integer, parameter :: iamaj = iachar("A") + + do jc = 1,len(hstring) + if ( hstring(jc:jc) >= "a" .and. hstring(jc:jc) <= "z" ) then + upcase(jc:jc) = achar( iachar( hstring(jc:jc) ) - iamin + iamaj ) + else + upcase(jc:jc) = hstring(jc:jc) + end if + end do +end function upcase + +end module mode_tools diff --git a/src/MNH/write_lbn.f90 b/src/MNH/write_lbn.f90 index b9378bd92..88fc2bf91 100644 --- a/src/MNH/write_lbn.f90 +++ b/src/MNH/write_lbn.f90 @@ -94,9 +94,9 @@ USE MODD_PARAM_n ! USE MODE_FMWRIT USE MODE_ll -USE MODE_IO_ll, ONLY: UPCASE USE MODE_MSG USE MODE_MODELN_HANDLER +USE MODE_TOOLS, ONLY: UPCASE ! USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES USE MODD_ICE_C1R3_DESCR, ONLY: C1R3NAMES diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90 index 150421cb6..ab6f980b4 100644 --- a/src/MNH/write_lfifm1_for_diag.f90 +++ b/src/MNH/write_lfifm1_for_diag.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !################################ @@ -236,9 +236,10 @@ USE MODE_FIELD USE MODE_FMWRIT USE MODE_GATHER_ll USE MODE_ll -USE MODE_IO_ll +! USE MODE_IO_ll USE MODE_IO_MANAGE_STRUCT,ONLY: IO_FILE_ADD2LIST USE MODE_THERMO +USE MODE_TOOLS, ONLY: UPCASE USE MODE_MODELN_HANDLER USE MODI_LIDAR USE MODI_CLUSTERING diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90 index 6ae1a2e70..19576446c 100644 --- a/src/MNH/write_lfin.f90 +++ b/src/MNH/write_lfin.f90 @@ -242,12 +242,12 @@ USE MODE_FM, ONLY: IO_FILE_CLOSE_ll USE MODE_FMWRIT USE MODE_ll USE MODD_IO_ll, ONLY: TFILEDATA -USE MODE_IO_ll, ONLY: UPCASE USE MODE_FIELD USE MODE_GATHER_ll USE MODE_GRIDPROJ USE MODE_MSG USE MODE_MODELN_HANDLER +USE MODE_TOOLS, ONLY: UPCASE ! USE MODI_WRITE_LB_n USE MODI_WRITE_BALLOON_n -- GitLab From 37372a862c3aaba49cdd4938003ef530f518aff9 Mon Sep 17 00:00:00 2001 From: Juan Escobar <escj@aero.obs-mip.fr> Date: Fri, 15 Feb 2019 14:47:48 +0100 Subject: [PATCH 051/139] Joris P. and Pierre T. 14/02/2019: corrections for the use of MEGAN scheme (always the night in mode_megan) + desactivation of leaf temperature correction with sun/shade + add missing default values --- src/LIB/megan.tar.gz | 4 +- src/MNH/BASIC.f90 | 119497 +++++++++++++++++----- src/MNH/read_chem_data_netcdf_case.f90 | 3 +- src/SURFEX/coupling_isban.F90 | 7 + src/SURFEX/coupling_megann.F90 | 26 +- src/SURFEX/default_ch_bio_flux.F90 | 8 +- src/SURFEX/init_isban.F90 | 3 +- src/SURFEX/init_megann.F90 | 28 +- src/SURFEX/modd_megann.F90 | 5 +- 9 files changed, 92563 insertions(+), 27018 deletions(-) mode change 100644 => 100755 src/MNH/BASIC.f90 diff --git a/src/LIB/megan.tar.gz b/src/LIB/megan.tar.gz index 81d81c29f..c9f186360 100644 --- a/src/LIB/megan.tar.gz +++ b/src/LIB/megan.tar.gz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4f23728f9dae694a49c7a831686b8ee37a5f0be0b51839fa839bb8e022499bbc -size 42352 +oid sha256:0d9386c64cbbdf2ffe32f1c52e51e2606869e136a95a65e21f8081961f8e48d3 +size 42865 diff --git a/src/MNH/BASIC.f90 b/src/MNH/BASIC.f90 old mode 100644 new mode 100755 index 854c2bc06..4ba875fab --- a/src/MNH/BASIC.f90 +++ b/src/MNH/BASIC.f90 @@ -4,13 +4,77 @@ ! The following species appear on the left hand side of a reaction, ! but they are not in the list of prognostic variables. Make sure that ! they are defined elsewhere (in begin_module as TPK%something): -! H2 -! O1D +! RO250 +! RO251 +! RO252 +! RO253 +! RO254 +! RO255 +! RO256 +! RO220 +! RO257 +! RO221 +! RO258 +! OSD ! W_O2 -! O3P +! RO222 +! RO223 +! RO224 +! RO225 +! RO226 +! RO227 +! RO228 +! RO229 +! N2 +! RO240 +! CH4 ! H2O +! RO241 +! RO242 +! RO243 +! RO244 +! RO245 +! RO246 +! RO247 +! RO210 +! RO211 +! RO248 +! O +! RO249 +! RO212 +! RO213 +! RO22 +! RO214 +! RO23 +! RO215 +! RO24 +! RO216 +! RAD1 +! RO217 +! RO26 +! RAD2 ! CO2 -! N2 +! RO218 +! RO27 +! RAD3 +! RO219 +! RO28 +! RAD4 +! RO29 +! RAD5 +! RAD6 +! RO230 +! RAD7 +! RAD8 +! RO231 +! RO232 +! RO233 +! RO234 +! RO235 +! RO236 +! RO237 +! RO238 +! RO239 ! O2 ! !======================================================================== @@ -18,12 +82,76 @@ ! The following species appear on the right hand side of a reaction, ! but they are not in the list of prognostic variables. Make sure that ! they are really final products or defined elsewhere: -! H2 -! O1D -! O3P +! RO250 +! RO251 +! RO252 +! RO253 +! RO254 +! RO255 +! RO256 +! RO257 +! RO220 +! RO258 +! RO221 +! OSD +! RO222 +! RO223 +! RO224 +! RO225 +! RO226 +! RO227 +! RO228 +! RO229 +! N2 +! RO240 ! H2O +! RO241 +! RO242 +! RO243 +! RO244 +! RO245 +! RO246 +! RO247 +! RO210 +! RO248 +! RO211 +! O +! RO249 +! RO212 +! RO213 +! RO22 +! RO214 +! RO23 +! H2 +! RO215 +! RO24 +! RAD1 +! RO216 +! RAD2 +! RO217 +! RO26 +! RAD3 +! RO218 +! RO27 ! CO2 -! N2 +! RAD4 +! RO219 +! RO28 +! RAD5 +! RO29 +! RAD6 +! RAD7 +! RO230 +! RAD8 +! RO231 +! RO232 +! RO233 +! RO234 +! RO235 +! RO236 +! RO237 +! RO238 +! RO239 ! O2 ! !======================================================================== @@ -34,138 +162,371 @@ ! ! the chemical reactions implemented are the following ... ! -! K001=!ZRATES(:,001)::NO2-->O3P+NO -! K002=!ZRATES(:,002)::O3-->O1D+O2 -! K003=!ZRATES(:,003)::O3-->O3P+O2 -! K004=!ZRATES(:,004)::HONO-->OH+NO -! K005=!ZRATES(:,005)::HNO3-->OH+NO2 -! K006=!ZRATES(:,006)::HNO4-->0.65*HO2+0.65*NO2+0.35*OH+0.35*NO3 -! K007=!ZRATES(:,007)::NO3-->NO+O2 -! K008=!ZRATES(:,008)::NO3-->NO2+O3P -! K009=!ZRATES(:,009)::H2O2-->OH+OH -! K010=!ZRATES(:,010)::HCHO-->H2+CO -! K011=!ZRATES(:,011)::HCHO-->HO2+HO2+CO -! K012=!ZRATES(:,012)::ALD-->MO2+HO2+CO -! K013=!ZRATES(:,013)::OP1-->HCHO+HO2+OH -! K014=!ZRATES(:,014)::OP2-->0.96205*ALD+0.96205*HO2+0.03795*MO2+OH -! K015=!ZRATES(:,015)::KET-->1.00000*CARBOP+1.00000*ALKAP -! K016=!ZRATES(:,016)::CARBO-->0.06517*HCHO+0.69622*CARBOP+0.75830*HO2+0.91924*CO+0.20842*H2 -! K017=!ZRATES(:,017)::ONIT-->0.20*ALD+0.80*KET+HO2+NO2 -! K018=TPK%M*6.00E-34*(TPK%T/300)**(-2.3)::O3P+O2-->O3 -! K019=8.00E-12*exp(-(2060.0/TPK%T))::O3P+O3-->2.0*O2 -! K020=1.80E-11*exp(-(-110.0/TPK%T))::O1D+N2-->O3P+N2 -! K021=3.20E-11*exp(-(-70.0/TPK%T))::O1D+O2-->O3P+O2 -! K022=2.20E-10::O1D+H2O-->OH+OH -! K023=1.60E-12*exp(-(940.0/TPK%T))::O3+OH-->HO2+O2 -! K024=1.10E-14*exp(-(500.0/TPK%T))::O3+HO2-->OH+2.0*O2 -! K025=4.80E-11*exp(-(-250.0/TPK%T))::OH+HO2-->H2O+O2 -! K026=2.90E-12*exp(-(160.0/TPK%T))::H2O2+OH-->HO2+H2O -! K027=2.3E-13*EXP(600./TPK%T)+1.7E-33*TPK%M*EXP(1000./TPK%T)::HO2+HO2-->H2O2+O2 -! K028=3.22E-34*EXP(2800./TPK%T)+2.38E-54*TPK%M*EXP(3200./TPK%T)::HO2+HO2+H2O-->H2O2+H2O+O2 -! K029=@TROE(1.,9.00E-32,1.5,3.00E-11,0.0,TPK%M,TPK%T,KVECNPT)::O3P+NO-->NO2 -! K030=6.50E-12*exp(-(-120.0/TPK%T))::O3P+NO2-->NO+O2 -! K031=@TROE(1.,9.00E-32,2.0,2.20E-11,0.0,TPK%M,TPK%T,KVECNPT)::O3P+NO2-->NO3 -! K032=@TROE(1.,7.00E-31,2.6,1.50E-11,0.5,TPK%M,TPK%T,KVECNPT)::OH+NO-->HONO -! K033=@TROE(1.,2.60E-30,3.2,2.40E-11,1.3,TPK%M,TPK%T,KVECNPT)::OH+NO2-->HNO3 -! K034=2.20E-11::OH+NO3-->NO2+HO2 -! K035=3.70E-12*exp(-(-250.0/TPK%T))::HO2+NO-->NO2+OH -! K036=@TROE(1.,1.80E-31,3.2,4.70E-12,1.4,TPK%M,TPK%T,KVECNPT)::HO2+NO2-->HNO4 -! K037=@TROE_EQUIL(1.80E-31,3.2,4.70E-12,1.4,4.76E+26,10900.,TPK%M,TPK%T,KVECNPT)::HNO4-->HO2+NO2 -! K038=3.50E-12::HO2+NO3-->0.3*HNO3+0.7*NO2+0.7*OH -! K039=1.80E-11*exp(-(390.0/TPK%T))::OH+HONO-->H2O+NO2 -! K040=(7.2E-15*EXP(785/TPK%T))+(1.9E-33*EXP(725/TPK%T)*TPK%M)/(1+(1.9E-33*EXP(725/TPK%T)*TPK%M)/(4.1E-16*EXP(1440/TPK%T)))::OH+HNO3-->NO3+H2O -! K041=1.30E-12*exp(-(-380.0/TPK%T))::OH+HNO4-->NO2+H2O+O2 -! K042=2.00E-12*exp(-(1400.0/TPK%T))::O3+NO-->NO2+O2 -! K043=1.20E-13*exp(-(2450.0/TPK%T))::O3+NO2-->NO3+O2 -! K044=3.30E-39*exp(-(-530.0/TPK%T))::NO+NO+O2-->NO2+NO2 -! K045=1.50E-11*exp(-(-170.0/TPK%T))::NO3+NO-->NO2+NO2 -! K046=4.50E-14*exp(-(1260.0/TPK%T))::NO3+NO2-->NO+NO2+O2 -! K047=@TROE(1.,2.20E-30,3.9,1.50E-12,0.7,TPK%M,TPK%T,KVECNPT)::NO3+NO2-->N2O5 -! K048=@TROE_EQUIL(2.20E-30,3.9,1.50E-12,0.7,3.70E+26,11000.0,TPK%M,TPK%T,KVECNPT)::N2O5-->NO2+NO3 -! K049=8.50E-13*exp(-(2450.0/TPK%T))::NO3+NO3-->NO2+NO2+O2 -! K050=3.30E-12*exp(-(900.0/TPK%T))::NH3+OH--> -! K051=5.50E-12*exp(-(2000.0/TPK%T))::OH+H2-->H2O+HO2 -! K052=@TROE(1.,3.00E-31,3.3,1.50E-12,0.0,TPK%M,TPK%T,KVECNPT)::OH+SO2-->SULF+HO2 -! K053=1.5E-13*(1.+2.439E-20*TPK%M)::CO+OH-->HO2+CO2 -! K054=6.00E-11::BIO+O3P-->0.91868*ALKE+0.05*HCHO+0.02*OH+0.01*CO+0.13255*CARBO+0.28*HO2+0.15*XO2 -! K055=0.00E-01*exp(-(-13.0/TPK%T))::CARBO+O3P-->ALD -! K056=TPK%T*TPK%T*7.44E-18*exp(-(1361./TPK%T))::CH4+OH-->MO2+H2O -! K057=1.51E-17*TPK%T*TPK%T*exp(-(492./TPK%T))::ETH+OH-->ALKAP -! K058=3.76E-12*exp(-(260.0/TPK%T))+1.70E-12*exp(-(155.0/TPK%T))+1.21E-12*exp(-(125.0/TPK%T))::ALKA+OH-->0.87811*ALKAP+0.12793*HO2+0.08173*ALD+0.03498*KET+0.00835*CARBO+0.00140*HCHO+0.00878*ORA1+0.00878*CO+0.00878*OH+H2O -! K059=1.78E-12*exp(-(-438.0/TPK%T))+6.07E-13*exp(-(-500.0/TPK%T))+0.00E-01*exp(-(-448.0/TPK%T))::ALKE+OH-->1.02529*ALKEP+0.00000*BIOP -! K060=2.54E-11*exp(-(-410.0/TPK%T))+0.00E-01*exp(-(-444.0/TPK%T))+0.00E-01::BIO+OH-->1.00000*BIOP -! K061=3.31E-12*exp(-(-355.0/TPK%T))+3.45E-13::ARO+OH-->0.93968*ADD+0.10318*XO2+0.10318*HO2+0.00276*PHO -! K062=1.00E-11::HCHO+OH-->HO2+CO+H2O -! K063=5.55E-12*exp(-(-331.0/TPK%T))::ALD+OH-->1.00000*CARBOP+H2O -! K064=TPK%T*TPK%T*5.68E-18*exp(-(-92.0/TPK%T))::KET+OH-->1.00000*CARBOP+H2O -! K065=1.32E-11+1.88E-12*exp(-(-175.0/TPK%T))::CARBO+OH-->0.51419*CARBOP+0.16919*CARBO+1.01732*CO+0.51208*HO2+0.00000*HCHO+0.06253*ALD+0.00853*KET+0.10162*XO2+0.75196*H2O -! K066=4.50E-13::ORA1+OH-->HO2+CO2+H2O -! K067=6.00E-13::ORA2+OH--> -! K068=2.93E-12*exp(-(-190.0/TPK%T))::OP1+OH-->0.65*MO2+0.35*HCHO+0.35*OH -! K069=3.36E-12*exp(-(-190.0/TPK%T))::OP2+OH-->0.40341*ALKAP+0.05413*CARBOP+0.07335*ALD+0.37591*KET+0.09333*XO2+0.02915*HO2+0.02915*HCHO+0.44925*OH -! K070=3.80E-14+1.59E-14*exp(-(-500.0/TPK%T))::PAN+OH-->0.57839*HCHO+0.21863*CARBO+0.71893*NO3+0.28107*PAN+0.28107*HO2+0.29733*H2O+XO2 -! K071=5.31E-12*exp(-(260.0/TPK%T))::ONIT+OH-->1.00000*ALKAP+NO2+H2O -! K072=3.40E-13*exp(-(1900.0/TPK%T))::HCHO+NO3-->HO2+HNO3+CO -! K073=1.40E-12*exp(-(1900.0/TPK%T))::ALD+NO3-->1.00000*CARBOP+HNO3 -! K074=1.62E-12*exp(-(1900.0/TPK%T))+0.00E-01*exp(-(150.0/TPK%T))+1.94E-14*exp(-(1000.0/TPK%T))::CARBO+NO3-->0.91567*HNO3+0.38881*CARBOP+0.10530*CARBO+0.05265*ALD+0.00632*KET+0.10530*NO2+0.10530*XO2+0.63217*HO2+1.33723*CO+0.00000*OLN -! K075=4.92E-16::ARO+NO3-->HNO3+PHO -! K076=4.35E-18*TPK%T*TPK%T*exp(-(2282.0/TPK%T))+1.91E-14*exp(-(450.0/TPK%T))+1.08E-15*exp(-(-450.0/TPK%T))+0.00E-01::ALKE+NO3-->0.00000*CARBO+0.93768*OLN -! K077=4.00E-12*exp(-(446.0/TPK%T))+0.00E-01*exp(-(-490.0/TPK%T))+0.00E-01::BIO+NO3-->0.91741*CARBO+1.00000*OLN -! K078=3.76E-16*exp(-(500.0/TPK%T))::PAN+NO3-->0.60*ONIT+0.60*NO3+0.40000*PAN+0.40*HCHO+0.40*NO2+XO2 -! K079=8.17E-15*exp(-(2580.0/TPK%T))+4.32E-16*exp(-(1800.0/TPK%T))+2.87E-17*exp(-(845.0/TPK%T))+0.00E-01*exp(-(2283.0/TPK%T))::ALKE+O3-->0.48290*HCHO+0.51468*ALD+0.07377*KET+0.00000*CARBO+0.35120*CO+0.15343*ORA1+0.08143*ORA2+0.23451*HO2+0.39435*OH+0.05705*CARBOP+0.03196*ETH+0.00000*ALKE+0.04300*CH4+0.13966*MO2+0.09815*ALKAP+0.01833*H2O2+0.00000*XO2+0.05409*H2+0.00000*O3P -! K080=7.86E-15*exp(-(1913.0/TPK%T))+0.00E-01*exp(-(732.0/TPK%T))+0.00E-01::BIO+O3-->0.90000*HCHO+0.00000*ALD+0.00000*KET+0.39754*CARBO+0.36000*CO+0.37388*ALKE+0.00000*ALKAP+0.17000*CARBOP+0.03000*MO2+0.15000*ORA1+0.00000*ORA2+0.28000*OH+0.30000*HO2+0.00100*H2O2+0.05000*H2+0.13000*XO2+0.09000*O3P -! K081=0.00E-01*exp(-(2112.0/TPK%T))+1.38E-19::CARBO+O3-->0.00000*HCHO+1.07583*CARBO+0.15692*ALD+0.10788*ORA1+0.20595*ORA2+0.27460*CARBOP+0.10149*OP2+0.64728*CO+0.28441*HO2+0.20595*OH+0.00000*H2 -! K082=7.20E-17*exp(-(1700.0/TPK%T))::PAN+O3-->0.70*HCHO+0.30000*PAN+0.70*NO2+0.13*CO+0.04*H2+0.11*ORA1+0.08*HO2+0.036*OH+0.70000*CARBOP -! K083=2.00E-11::PHO+NO2-->0.10670*ARO+ONIT -! K084=1.00E-11::PHO+HO2-->1.06698*ARO -! K085=3.60E-11::ADD+NO2-->ARO+HONO -! K086=1.66E-17*exp(-(-1044.0/TPK%T))::ADD+O2-->0.98*AROP+0.02*ARO+0.02*HO2 -! K087=2.80E-11::ADD+O3-->ARO+OH -! K088=@TROE(5.86E-01,9.70E-29,5.6,9.30E-12,1.5,TPK%M,TPK%T,KVECNPT)::CARBOP+NO2-->1.00000*PAN -! K089=@TROE_EQUIL(9.70E-29,5.6,9.30E-12,1.5,1.16E+28,13954.,TPK%M,TPK%T,KVECNPT)::PAN-->1.00000*CARBOP+NO2 -! K090=4.20E-12*exp(-(-180.0/TPK%T))::MO2+NO-->HCHO+HO2+NO2 -! K091=4.36E-12::ALKAP+NO-->0.33144*ALD+0.03002*HCHO+0.54531*KET+0.03407*CARBO+0.74265*HO2+0.09016*MO2+0.08187*ALKAP+0.13007*XO2+0.08459*ONIT+0.91541*NO2 -! K092=6.93E-12::ALKEP+NO-->1.39870*HCHO+0.42125*ALD+0.05220*KET+HO2+NO2 -! K093=4.00E-12::BIOP+NO-->0.45463*CARBO+0.60600*HCHO+0.00000*ALD+0.00000*KET+0.37815*ALKE+0.84700*HO2+0.84700*NO2+0.15300*ONIT -! K094=4.00E-12::AROP+NO-->0.95115*NO2+0.95115*HO2+2.06993*CARBO+0.04885*ONIT -! K095=1.22E-11::CARBOP+NO-->0.78134*MO2+0.09532*CARBOP+0.05848*HCHO+0.07368*ALD+0.08670*CARBO+0.12334*HO2+0.02563*XO2+NO2 -! K096=4.00E-12::OLN+NO-->0.18401*ONIT+1.81599*NO2+0.18401*HO2+0.23419*HCHO+1.01182*ALD+0.37862*KET -! K097=3.80E-13*exp(-(-800.0/TPK%T))::MO2+HO2-->OP1 -! K098=6.16E-14*exp(-(-700.0/TPK%T))+1.52E-13*exp(-(-1300.0/TPK%T))::ALKAP+HO2-->1.00524*OP2 -! K099=1.81E-13*exp(-(-1300.0/TPK%T))::ALKEP+HO2-->1.00524*OP2 -! K0100=1.28E-13*exp(-(-1300.0/TPK%T))+0.00E-01::BIOP+HO2-->1.00524*OP2 -! K0101=3.75E-13*exp(-(-980.0/TPK%T))::AROP+HO2-->1.00524*OP2 -! K0102=5.94E-13*exp(-(-550.0/TPK%T))+1.99E-16*exp(-(-2640.0/TPK%T))+5.56E-14*exp(-(-1300.0/TPK%T))::CARBOP+HO2-->0.80904*OP2+0.17307*ORA2+0.17307*O3 -! K103=1.66E-13*exp(-(-1300.0/TPK%T))::OLN+HO2-->ONIT -! K104=9.10E-14*exp(-(-416.0/TPK%T))::MO2+MO2-->1.33*HCHO+0.66*HO2 -! K105=1.03E-14*exp(-(-158.0/TPK%T))+6.24E-14*exp(-(-431.0/TPK%T))+1.53E-14*exp(-(-467.0/TPK%T))+4.34E-15*exp(-(-633.0/TPK%T))::ALKAP+MO2-->0.80556*HCHO+0.98383*HO2+0.56070*ALD+0.09673*KET+0.01390*MO2+0.07976*CARBO+0.13370*XO2+0.00385*ALKAP -! K106=1.57E-13*exp(-(-708.0/TPK%T))::ALKEP+MO2-->1.42894*HCHO+0.46413*ALD+0.03814*KET+HO2 -! K107=1.36E-13*exp(-(-708.0/TPK%T))::BIOP+MO2-->0.56064*CARBO+0.48074*ALKE+1.00000*HO2+1.09000*HCHO+0.00000*ALD+0.00000*KET -! K108=3.56E-14*exp(-(-708.0/TPK%T))::AROP+MO2-->HCHO+1.02767*HO2+1.99461*CARBO -! K109=1.77E-11*exp(-(440.0/TPK%T))+1.48E-16*exp(-(-2510.0/TPK%T))+3.10E-13*exp(-(-508.0/TPK%T))::CARBOP+MO2-->0.95723*HCHO+0.82998*HO2+0.56031*MO2+0.13684*ORA2+0.05954*CARBOP+0.15387*CARBO+0.08295*ALD+0.02212*XO2 -! K110=1.12E-13*exp(-(-708.0/TPK%T))::OLN+MO2-->0.88625*HCHO+0.67560*HO2+0.67560*ONIT+0.41524*ALD+0.09667*KET+0.32440*NO2 -! K111=4.44E-14*exp(-(-211.0/TPK%T))+2.23E-13*exp(-(-460.0/TPK%T))+4.10E-14*exp(-(-522.0/TPK%T))+1.17E-14*exp(-(-683.0/TPK%T))::ALKAP+CARBOP-->0.71461*ALD+0.48079*HO2+0.51480*MO2+0.49810*ORA2+0.18819*KET+0.07600*HCHO+0.00828*ALKAP+0.11306*XO2+0.06954*CARBO -! K112=4.36E-13*exp(-(-765.0/TPK%T))::ALKEP+CARBOP-->0.68192*HCHO+0.68374*ALD+0.50078*HO2+0.50078*MO2+0.49922*ORA2+0.06579*KET -! K113=7.60E-13*exp(-(-765.0/TPK%T))::BIOP+CARBOP-->0.78591*CARBO+0.24463*ALKE+0.50600*HO2+0.49400*ORA2+0.34000*HCHO+0.50600*MO2+0.00000*ALD+0.00000*KET -! K114=3.63E-13*exp(-(-765.0/TPK%T))::AROP+CARBOP-->MO2+HO2+1.99455*CARBO -! K115=7.73E-13*exp(-(-530.0/TPK%T))+1.70E-13*exp(-(-565.0/TPK%T))::CARBOP+CARBOP-->1.66702*MO2+0.05821*CARBOP+0.03432*HCHO+0.10777*CARBO+0.06969*ALD+0.02190*KET+0.07566*HO2+0.01593*XO2+0.09955*ORA2 -! K116=4.85E-13*exp(-(-765.0/TPK%T))::OLN+CARBOP-->0.66562*ONIT+0.51037*MO2+0.48963*ORA2+0.17599*HO2+0.13414*HCHO+0.42122*ALD+0.10822*KET+0.00000*NO2 -! K117=4.19E-15*exp(-(-1000.0/TPK%T))::OLN+OLN-->2.00*ONIT+HO2 -! K118=2.48E-14*exp(-(-1000.0/TPK%T))::OLN+OLN-->0.00000*HCHO+0.00000*ALD+0.00000*KET+0.00000*HO2+0.00000*NO2+0.00000*ONIT -! K119=1.20E-12::MO2+NO3-->HCHO+HO2+NO2 -! K120=1.20E-12::ALKAP+NO3-->0.33743*ALD+0.81290*HO2+0.03142*HCHO+0.62978*KET+0.03531*CARBO+0.09731*MO2+0.08994*ALKAP+0.16271*XO2+NO2 -! K121=1.20E-12::ALKEP+NO3-->1.40909*HCHO+0.43039*ALD+0.02051*KET+HO2+NO2 -! K122=1.20E-12::BIOP+NO3-->0.61160*CARBO+0.42729*ALKE+0.68600*HCHO+0.00000*ALD+0.00000*KET+HO2+NO2 -! K123=1.20E-12::AROP+NO3-->2.81904*CARBO+HO2+NO2 -! K124=3.48E-12::CARBOP+NO3-->0.91910*MO2+0.03175*CARBOP+0.03175*HCHO+0.03455*CARBO+0.02936*ALD+0.04915*HO2+0.01021*XO2+NO2 -! K125=1.20E-12::OLN+NO3-->0.25928*ONIT+1.74072*NO2+0.25928*HO2+0.20740*HCHO+0.91850*ALD+0.34740*KET -! K126=1.66E-13*exp(-(-1300.0/TPK%T))::XO2+HO2-->1.00524*OP2 -! K127=5.99E-15*exp(-(-1510.0/TPK%T))::XO2+MO2-->HCHO+HO2 -! K128=1.69E-14*exp(-(-1560.0/TPK%T))::XO2+CARBOP-->MO2 -! K129=7.13E-17*exp(-(-2950.0/TPK%T))::XO2+XO2--> -! K130=4.00E-12::XO2+NO-->NO2 -! K131=1.20E-12::XO2+NO3-->NO2 -! K132=1.00E-40::SULF--> +! K001=!ZRATES(:,001)::NO2-->NO+O +! K002=TPK%M*5.60E-34*(TPK%T/300)**(-2.6)::O+O2-->O3 +! K003=6.5E-12*EXP(119.8/TPK%T)::O+NO2-->NO+O2 +! K004=@TROE(1.,9.0E-32,2.,2.2E-11,0.,0.8,TPK%M,TPK%T,KVECNPT)::O+NO2-->NO3 +! K005=1.8E-12*EXP(-1368.9/TPK%T)::NO+O3-->NO2+O2 +! K006=1.4E-13*EXP(-2471.1/TPK%T)::NO2+O3-->NO3+O2 +! K007=1.8E-11*EXP(110.7/TPK%T)::NO+NO3-->2.*NO2 +! K008=5.09E-18/TPK%T*EXP(528.4/TPK%T)::NO+NO-->2.*NO2 +! K009=@TROE(1.,2.8E-30,3.5,2.0E-12,0.2,0.45,TPK%M,TPK%T,KVECNPT)::NO2+NO3-->N2O5 +! K010=@TROE_EQUIL(2.8E-30,3.5,2.0E-12,0.2,3.70E+26,11000.0,0.45,TPK%M,TPK%T,KVECNPT)::N2O5-->NO2+NO3 +! K011=2.59E-22::N2O5+H2O-->2.*HNO3 +! K012=4.5E-14*EXP(-1258.2/TPK%T)::NO2+NO3-->NO+NO2+O2 +! K013=!ZRATES(:,007)::NO3-->NO+O2 +! K014=!ZRATES(:,008)::NO3-->NO2+O +! K015=!ZRATES(:,003)::O3-->O+O2 +! K016=!ZRATES(:,002)::O3-->OSD+O2 +! K017=2.2E-10::OSD+H2O-->OH+OH +! K018A=1.80E-11*exp(-(-110.0/TPK%T))::OSD+N2-->O+N2 +! K018B=3.20E-11*exp(-(-70.0/TPK%T))::OSD+O2-->O+O2 +! K019=@TROE(1.,7.0E-31,2.6,3.6E-11,0.1,0.6,TPK%M,TPK%T,KVECNPT)::NO+OH-->HONO +! K020=!ZRATES(:,004)::HONO-->0.9*NO+0.1*NO2+0.9*OH+0.1*HO2 +! K021=4.0E-24::NO2+H2O-->0.5*HONO+0.5*HNO3 +! K022=@TROE(1.,2.85E-30,2.67,3.13E-11,0.,0.6,TPK%M,TPK%T,KVECNPT)::NO2+OH-->HNO3 +! K023=@TROE_KA(7.2E-15,785.1,4.1E-16,1439.4,1.9E-33,724.7,TPK%M,TPK%T,KVECNPT)::HNO3+OH-->NO3+H2O +! K024=@TROE_KB(1.3E-13,0.,3.19E-33,0.,TPK%M,TPK%T,KVECNPT)::CO+OH-->HO2+CO2 +! K025=1.9E-12*EXP(-1001.5/TPK%T)::O3+OH-->HO2+O2 +! K026=3.41E-12*EXP(271.8/TPK%T)::NO+HO2-->NO2+OH +! K027=@TROE(1.,1.8E-31,3.2,4.7E-12,0.,0.6,TPK%M,TPK%T,KVECNPT)::NO2+HO2-->HNO4 +! K028=@TROE_EQUIL(1.8E-31,3.2,4.7E-12,0.,4.76E+26,10900.,0.6,TPK%M,TPK%T,KVECNPT)::HNO4-->NO2+HO2 +! K029=1.5E-12*EXP(362.4/TPK%T)::HNO4+OH-->NO2+O2+H2O +! K030=1.4E-14*EXP(-598.9/TPK%T)::O3+HO2-->OH+2.*O2 +! K031=@TROE_KB(2.2E-13,598.9,1.85E-33,981.4,TPK%M,TPK%T,KVECNPT)::HO2+HO2-->H2O2 +! K032=@TROE_KB(3.08E-34,2798.2,2.59E-54,3180.7,TPK%M,TPK%T,KVECNPT)::HO2+HO2+H2O-->H2O2+O2+H2O +! K033=4.0E-12::NO3+HO2-->0.8*NO2+0.2*HNO3+0.8*OH+O2 +! K034=8.0E-12*EXP(-2058.4/TPK%T)::O+O3-->2.*O2 +! K035=@TROE(1.,4.1E-31,3.3,2.0E-12,0.,0.45,TPK%M,TPK%T,KVECNPT)::SO2+OH-->H2SO4+HO2 +! K036=!ZRATES(:,009)::H2O2-->2.*OH +! K037=2.91E-12*EXP(-161/TPK%T)::H2O2+OH-->HO2+H2O +! K038=@TROE(1.,9.00E-32,1.5,3.00E-11,0.0,0.6,TPK%M,TPK%T,KVECNPT)::O+NO-->NO2 +! K039=2.7E-12*EXP(261.7/TPK%T)::HONO+OH-->NO2+H2O +! K040=2.0E-11::NO3+OH-->NO2+HO2 +! K041=8.5E-13*EXP(-2450.9/TPK%T)::NO3+NO3-->2.*NO2+O2 +! K042=4.8E-11*EXP(251.6/TPK%T)::OH+HO2-->H2O+O2 +! K043=2.66E-12*EXP(-1800.2/TPK%T)::CH4+OH-->RO21+RO2T+H2O +! K044=!ZRATES(:,011)::HCHO-->CO+2.0*HO2 +! K045=!ZRATES(:,010)::HCHO-->CO+H2 +! K046=1.2E-14*TPK%T*EXP(286.9/TPK%T)::HCHO+OH-->CO+HO2+H2O +! K047=2.0E-12*EXP(-2430.8/TPK%T)::HCHO+NO3-->HNO3+CO+HO2 +! K048=6.0E-18*TPK%T**2*EXP(170.1/TPK%T)::MEOH+OH-->HO2+HCHO+H2O +! K049=1.96E-12*EXP(437.8/TPK%T)::ETHE+OH-->RO22+RO2T +! K050=4.89E-18*TPK%T**2*EXP(-2282.3/TPK%T)::ETHE+NO3-->RO23+RO2T +! K051=9.14E-15*EXP(-2580.3/TPK%T)::ETHE+O3-->0.315*CO+0.06*HO2+0.06*OH+0.5*HCHO+0.07*H2O+0.185*ORA1 +! K052=7.3E-13::ETHE+O-->0.6*CO+HO2+0.6*RO21+0.4*RO24+RO2T +! K053=6.18E-18*TPK%T**2*EXP(532/TPK%T)::ETOH+OH-->TPK%CF1*HO2+TPK%CF1*ALD2+TPK%CF2*RO22+TPK%CF2*RO2T+H2O +! K054=5.86E-12*EXP(500.3/TPK%T)::OLEL+OH-->RO22+RO2T +! K055=1.0E-13*EXP(-800.2/TPK%T)::OLEL+NO3-->RO23+RO2T +! K056=1.0E-17::OLEL+O3-->0.56*CO+0.2*CO2+0.36*OH+0.28*HO2+0.5*HCHO+0.5*ALD2+0.1*ALKL+0.28*RO25+0.28*RO2T+0.12*ORA1+0.12*ORA2 +! K057=4.66E-12::OLEL+O-->0.5*ALKL+0.4*ALD2+0.1*RO24+0.1*RO25+0.2*RO2T +! K058=3.91E-12::ALKL+OH-->RO25+RO2T+H2O +! K059=!ZRATES(:,012)::ALD2-->CO+HO2+RO25+RO2T +! K060=6.91E-12*EXP(250/TPK%T)::ALD2+OH-->RO26+RO2T+H2O +! K061=3.0E-13*EXP(-1427/TPK%T)::ALD2+NO3-->HNO3+RO26+RO2T +! K062=4.91E-12::KETL+OH-->RO27+RO2T+H2O +! K063=!ZRATES(:,023)::KETL-->RO25+RO28+2.*RO2T +! K064=2.55E-11*EXP(410.2/TPK%T)::ISOP+OH-->0.66*RO29+0.34*RO210+RO2T +! K065=3.02E-12*EXP(-445.9/TPK%T)::ISOP+NO3-->0.66*RO211+0.34*RO212+RO2T +! K066=7.86E-15*EXP(-1912.9/TPK%T)::ISOP+O3-->0.068*CO2+0.461*CO+0.5*HCHO+0.664*OH+0.366*HO2+0.054*OLEL+0.389*MVK+0.17*MCR+0.271*RO213+0.095*RO214+0.366*RO2T+0.121*ORA1 +! K067=3.5E-11::ISOP+O-->0.925*OLEL+0.075*ALD2 +! K068=3.2E-12::MTBE+OH-->RO215+RO2T+H2O +! K069=1.28E-11::ALCH+OH-->RO22+RO2T+H2O +! K070=5.1E-12::KETH+OH-->RO216+RO2T+H2O +! K071=!ZRATES(:,016)::KETH-->RO25+RO28+2.*RO2T +! K072=3.77E-12::AROO+NO3-->HNO3+RAD1 +! K073=2.264E-10::AROO+OH-->0.16*HO2+0.16*AROO+0.1*RO217+0.1*RO2T+0.74*RAD2+0.1*H2O +! K074=3.47E-11::OLEH+OH-->RO218+RO2T +! K075=3.47E-11*1.0E-13*EXP(-800.2/TPK%T)/(5.86E-12*EXP(500.3/TPK%T))::OLEH+NO3-->RO219+RO2T +! K076=3.47E-11*1.0E-17/(5.86E-12*EXP(500.3/TPK%T))::OLEH+O3-->0.56*CO+0.2*CO2+0.36*OH+0.28*HO2+0.5*HCHO+0.5*RPR1+0.12*ACID+0.1*ALKM+0.28*RO220+0.28*RO2T +! K077=3.47E-11*4.66E-12/(5.86E-12*EXP(500.3/TPK%T))::OLEH+O-->0.5*ALKM+0.4*RPR1+0.1*RO24+0.1*RO220+0.2*RO2T +! K078=1.03E-11::ALKM+OH-->RO220+RO2T+H2O +! K079=3.27E-11::AROL+OH-->0.16*HO2+0.16*AROO+0.1*RO221+0.74*RAD3+0.06*RO2T+0.06*H2O +! K080=1.52E-11::AROH+OH-->0.16*HO2+0.16*AROO+0.84*RAD4 +! K081=1.4E-12*EXP(-1872.2/TPK%T)::ARAL+NO3-->HNO3+O3+ARAC +! K082=1.29E-11::ARAL+OH-->0.9983609*RPRL+TPK%CF48*HO2+TPK%CF39*O3+TPK%CF39*ARAC+TPK%CF45*RO222+TPK%CF40*RAD5+TPK%CF45*RO2T+TPK%CF48*H2O +! K083=1.1E-12::ARAC+OH-->0.16*HO2+0.1599999*URG7+0.1*RO223+0.74*RAD6+0.1*RO2T+0.1*H2O +! K084=1.7E-10::BIOL+OH-->RO224+RO2T +! K085=1.46E-11::BIOL+NO3-->RO225+RO2T +! K086=2.5E-16::BIOL+O3-->0.445*CO+0.055*H2O2+0.445*HO2+0.89*OH+5.5000000E-02*URG4+0.055*RPR3+0.445*RO226+0.445*RO2T +! K087=1.7E-10*4.66E-12/(5.86E-12*EXP(500.3/TPK%T))::BIOL+O-->0.7500000*URG10+0.2500000*URG10 +! K088=1.77E-10::BIOH+OH-->RO227+RO2T +! K089=2.91E-11::BIOH+NO3-->RO228+RO2T +! K090=1.4E-16::BIOH+O3-->0.445*CO+0.055*H2O2+0.89*OH+0.055*UR7+0.055*UR8+0.445*RO229+0.445*RO230+0.89*RO2T +! K091=8.59E-11::BIOH+O--> +! K092=7.7E-11::PAH+OH-->0.16*HO2+0.1600000*URG8+0.1*RO231+0.74*RAD7+0.1*RO2T+0.1*H2O +! K093=1.97E-11::ALKH+OH-->RO232+RO2T+H2O +! K094=3.41E-13*EXP(800.2/TPK%T)::RO2T+HO2-->HO2 +! K095=4.2E-12*EXP(181.2/TPK%T)::RO2T+NO-->NO +! K096=1.0E-15::RO2T+RO2T-->RO2T +! K097=0.9*7.7E5/TPK%T::RAD2-->RO233+RO2T +! K098=0.9*7.7E5/TPK%T::RAD3-->RO234+RO2T +! K099=0.9*7.7E5/TPK%T::RAD4-->RO235+RO2T +! K100=0.9*7.7E5/TPK%T::RAD5-->RO236+RO2T +! K101=0.9*7.7E5/TPK%T::RAD6-->RO237+RO2T +! K102=0.9*7.7E5/TPK%T::RAD7-->RO238+RO2T +! K103=1.7*3.0E-11::RAD1+NO2-->RPR4 +! K104=1.7*3.0E-11::RAD2+NO2-->RPR4+H2O +! K105=1.7*3.0E-11::RAD3+NO2-->H2O +! K106=1.7*3.0E-11::RAD4+NO2-->H2O +! K107=1.7*3.0E-11::RAD5+NO2-->RPR5+H2O +! K108=1.7*3.0E-11::RAD6+NO2-->0.9999993*URG7+H2O +! K109=1.7*3.0E-11::RAD7+NO2-->1.0000000*URG8+H2O +! K110=4.09E-12*EXP(180.2/TPK%T)::RO21+NO-->NO2+HO2+HCHO +! K111=1.0E-15::RO21+RO2T-->HO2+HCHO+RO2T+O2 +! K112=3.41E-13*EXP(800.2/TPK%T)::RO21+HO2-->HO2+OH+HCHO +! K113=2.45E-12*EXP(180.2/TPK%T)::RO22+NO-->NO2+HO2+HCHO+ALD2 +! K114=1.0E-15::RO22+RO2T-->HO2+HCHO+ALD2+RO2T+O2 +! K115=3.41E-13*EXP(800.2/TPK%T)::RO22+HO2-->OH+HO2+HCHO+ALD2 +! K116=2.45E-12*EXP(180.2/TPK%T)::RO23+NO-->2.*NO2+HCHO+ALD2 +! K117=1.0E-15::RO23+RO2T-->NO2+HO2+HCHO+ALD2+O2+RO2T +! K118=3.41E-13*EXP(800.2/TPK%T)::RO23+HO2-->NO2+HO2+OH+HCHO+ALD2 +! K119=3.45E-12*EXP(180.2/TPK%T)::RO24+NO-->NO2+CO+HO2+HCHO +! K120=1.0E-15::RO24+RO2T-->CO+HO2+HCHO+RO2T+O2 +! K121=3.41E-13*EXP(800.2/TPK%T)::RO24+HO2-->CO+HO2+OH+HCHO +! K122=2.91E-12*EXP(180.2/TPK%T)::RO25+NO-->TPK%CF3*ALKL+TPK%CF4*NO2+TPK%CF4*HO2+TPK%CF4*ALD2 +! K123=1.0E-15::RO25+RO2T-->HO2+ALD2+RO2T+O2 +! K124=3.41E-13*EXP(800.2/TPK%T)::RO25+HO2-->HO2+OH+ALD2 +! K125=1.11E-11*EXP(180.2/TPK%T)::RO26+NO-->NO2+CO2+RO25+RO2T +! K126=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO26+NO2-->PAN1 +! K127=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO28+NO2-->PAN2 +! K128=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO239+NO2-->PAN3 +! K129=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO248+NO2-->PAN4 +! K130=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO250+NO2-->APAN +! K131=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO254+NO2-->PAN6 +! K132=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO255+NO2-->PAN7 +! K133=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO257+NO2-->APAN +! K134=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO258+NO2-->PN10 +! K135=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::PAN1-->NO2+RO26+RO2T +! K136=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::PAN2-->NO2+RO28+RO2T +! K137=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::PAN3-->NO2+RO239+RO2T +! K138=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::PN10-->NO2+RO258+RO2T +! K139=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::APAN-->1.0000000*NO2+0.3750353*RO250+0.6249651*RO257+1.0000000*RO2T +! K140=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::PAN6-->NO2+RO254+RO2T +! K141=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::PAN4-->NO2+RO248+RO2T +! K142=3.41E-13*EXP(800.2/TPK%T)/3.5::RO26+HO2-->O3+ACID+ORA2 +! K143=1.0E-15::RO26+RO2T-->CO2+RO25+2.*RO2T+O2 +! K144=2.45E-12*EXP(180.2/TPK%T)::RO27+NO-->NO2+ALD2+RO28+RO2T +! K145=1.0E-15::RO27+RO2T-->ALD2+RO28+2.*RO2T+O2 +! K146=3.41E-13*EXP(800.2/TPK%T)::RO27+HO2-->OH+ALD2+RO28+RO2T +! K147=1.11E-11*EXP(180.2/TPK%T)::RO28+NO-->NO2+CO2+RO21+RO2T +! K148=3.41E-13*EXP(800.2/TPK%T)/3.5::RO28+HO2-->O3+ORA2 +! K149=1.0E-15::RO28+RO2T-->CO2+RO21+2.*RO2T+O2 +! K150=2.08E-12*EXP(180.2/TPK%T)::RO29+NO-->TPK%CF5*OLEL+TPK%CF6*NO2+TPK%CF6*HO2+TPK%CF6*HCHO+TPK%CF6*MVK +! K151=1.0E-15::RO29+RO2T-->HO2+MVK+HCHO+RO2T+O2 +! K152=3.41E-13*EXP(800.2/TPK%T)::RO29+HO2-->HO2+OH+MVK+HCHO +! K153=2.08E-12*EXP(180.2/TPK%T)::RO210+NO-->NO2+HO2+HCHO+MCR +! K154=1.0E-15::RO210+RO2T-->HO2+HCHO+MCR+RO2T+O2 +! K155=3.41E-13*EXP(800.2/TPK%T)::RO210+HO2-->HO2+OH+HCHO+MCR +! K156=2.08E-12*EXP(180.2/TPK%T)::RO211+NO-->2.*NO2+HCHO+MVK +! K157=1.0E-15::RO211+RO2T-->NO2+HCHO+MVK+RO2T+O2 +! K158=3.41E-13*EXP(800.2/TPK%T)::RO211+HO2-->NO2+OH+HCHO+MVK +! K159=2.08E-12*EXP(180.2/TPK%T)::RO212+NO-->2.*NO2+HCHO+MCR +! K160=1.0E-15::RO212+RO2T-->NO2+HCHO+MCR+RO2T+O2 +! K161=3.41E-13*EXP(800.2/TPK%T)::RO212+HO2-->NO2+OH+HCHO+MCR +! K162=2.45E-12*EXP(180.2/TPK%T)::RO213+NO-->NO2+HCHO+RO239+RO2T +! K163=1.0E-15::RO213+RO2T-->HCHO+RO239+2.*RO2T+O2 +! K164=3.41E-13*EXP(800.2/TPK%T)::RO213+HO2-->HCHO+OH+RO239+RO2T +! K165=1.11E-11*EXP(180.2/TPK%T)::RO239+NO-->NO2+CO2+RO214+RO2T +! K166=3.41E-13*EXP(800.2/TPK%T)/3.5::RO239+HO2-->O3+0.5*OLEL+0.5*ORA2 +! K167=1.0E-15::RO239+RO2T-->CO2+RO214+2.*RO2T+O2 +! K168=2.91E-12*EXP(180.2/TPK%T)::RO214+NO-->TPK%CF7*OLEL+TPK%CF8*NO2+TPK%CF8*RO27+TPK%CF8*RO2T +! K169=1.0E-15::RO214+RO2T-->RO27+2.*RO2T+O2 +! K170=3.41E-13*EXP(800.2/TPK%T)::RO214+HO2-->OH+RO27+RO2T +! K171=2.08E-12*EXP(180.2/TPK%T)::RO215+NO-->NO2+HO2+TPK%CF9*ALD2+TPK%CF10*HCHO+TPK%CF11*KETL+TPK%CF12*ALKL +! K172=1.0E-15::RO215+RO2T-->HO2+TPK%CF13*ALD2+TPK%CF14*HCHO+TPK%CF15*KETL+TPK%CF16*ALKL+RO2T+O2 +! K173=3.41E-13*EXP(800.2/TPK%T)::RO215+HO2-->OH+HO2+TPK%CF13*ALD2+TPK%CF14*HCHO+TPK%CF15*KETL+TPK%CF16*ALKL +! K174=1.48E-12*EXP(180.2/TPK%T)::RO216+NO-->NO2+ALD2+RO28+RO2T +! K175=1.0E-15::RO216+RO2T-->ALD2+RO28+2.*RO2T+O2 +! K176=3.41E-13*EXP(800.2/TPK%T)::RO216+HO2-->OH+ALD2+RO28+RO2T +! K177=1.25E-12*EXP(180.2/TPK%T)::RO217+NO-->TPK%CF21*URG6+TPK%CF22*NO2+TPK%CF22*HO2+TPK%CFA2*RPRL +! K178=1.0E-15::RO217+RO2T-->HO2+0.9983609*RPRL+RO2T+O2 +! K179=3.41E-13*EXP(800.2/TPK%T)::RO217+HO2-->HO2+OH+0.9983609*RPRL +! K180=1.25E-12*EXP(180.2/TPK%T)::RO218+NO-->TPK%CF20*NO2+TPK%CF20*HO2 +! K181=1.0E-15::RO218+RO2T-->HO2+RO2T+O2 +! K182=3.41E-13*EXP(800.2/TPK%T)::RO218+HO2-->HO2+OH +! K183=1.05E-12*EXP(180.2/TPK%T)::RO219+NO-->2.*NO2+HCHO+RPR1 +! K184=1.0E-15::RO219+RO2T-->NO2+HCHO+RPR1+RO2T+O2 +! K185=3.41E-13*EXP(800.2/TPK%T)::RO219+HO2-->NO2+OH+HCHO+RPR1 +! K186=1.25E-12*EXP(180.2/TPK%T)::RO220+NO-->TPK%CF18*NO2+TPK%CF18*RO218+TPK%CF18*RO2T +! K187=1.0E-15::RO220+RO2T-->RO218+2.*RO2T+O2 +! K188=3.41E-13*EXP(800.2/TPK%T)::RO220+HO2-->OH+RO218+RO2T +! K189=1.05E-12*EXP(180.2/TPK%T)::RO221+NO-->TPK%CF24*NO2+TPK%CF24*HO2+TPK%CF24*ARAL +! K190=1.0E-15::RO221+RO2T-->HO2+ARAL+RO2T+O2 +! K191=3.41E-13*EXP(800.2/TPK%T)::RO221+HO2-->HO2+OH+ARAL +! K192=1.25E-12*EXP(180.2/TPK%T)::RO222+NO-->TPK%CF42*NO2+TPK%CF42*HO2+TPK%CFA7*RPRL +! K193=1.0E-15::RO222+RO2T-->HO2+0.9983609*RPRL+RO2T+O2 +! K194=3.41E-13*EXP(800.2/TPK%T)::RO222+HO2-->HO2+OH+0.9983609*RPRL +! K195=1.25E-12*EXP(180.2/TPK%T)::RO223+NO-->TPK%CF43*URG6+TPK%CF44*NO2+TPK%CF44*HO2+TPK%CF44*RPR7 +! K196=1.0E-15::RO223+RO2T-->HO2+RPR7+RO2T+O2 +! K197=3.41E-13*EXP(800.2/TPK%T)::RO223+HO2-->HO2+OH+RPR7 +! K198=8.89E-13*EXP(180.2/TPK%T)::RO224+NO-->TPK%CFA23*AP7+TPK%CFA10*RPR3+TPK%CF26*NO2+TPK%CF26*HO2 +! K199=1.0E-15::RO224+RO2T-->HO2+RPR3+RO2T+O2 +! K200=3.41E-13*EXP(800.2/TPK%T)::RO224+HO2-->HO2+OH+RPR3 +! K201=8.89E-13*EXP(180.2/TPK%T)::RO225+NO-->2.*NO2+RPR3 +! K202=1.0E-15::RO225+RO2T-->NO2+RPR3+RO2T+O2 +! K203=3.41E-13*EXP(800.2/TPK%T)::RO225+HO2-->NO2+OH+RPR3 +! K204=8.89E-13*EXP(180.2/TPK%T)::RO226+NO-->NO2+1.0000000*UR17+RO28+RO2T +! K205=1.0E-15::RO226+RO2T-->1.0000000*UR17+RO28+2.*RO2T+O2 +! K206=3.41E-13*EXP(800.2/TPK%T)::RO226+HO2-->1.0000000*UR17+OH+RO28+RO2T +! K207=8.89E-13*EXP(180.2/TPK%T)::RO227+NO-->TPK%CF27*URG10+TPK%CF28*NO2+TPK%CF28*HO2+TPK%CFA12*UR7 +! K208=1.0E-15::RO227+RO2T-->HO2+UR7+RO2T+O2 +! K209=3.41E-13*EXP(800.2/TPK%T)::RO227+HO2-->HO2+OH+0.3*UR7 +! K210=8.89E-13*EXP(180.2/TPK%T)::RO228+NO-->2.*NO2+0.3*UR7 +! K211=1.0E-15::RO228+RO2T-->NO2+0.3*UR7+RO2T+O2 +! K212=3.41E-13*EXP(800.2/TPK%T)::RO228+HO2-->NO2+OH+0.3*UR7 +! K213=1.05E-12*EXP(180.2/TPK%T)::RO229+NO-->TPK%CF30*NO2+TPK%CF30*RO240+TPK%CF30*RO2T +! K214=1.0E-15::RO229+RO2T-->RO240+2.*RO2T+O2 +! K215=3.41E-13*EXP(800.2/TPK%T)::RO229+HO2-->OH+RO240+RO2T +! K216=1.05E-12*EXP(180.2/TPK%T)::RO240+NO-->NO2+RPR8+RO28+RO2T +! K217=1.0E-15::RO240+RO2T-->RPR8+RO28+2.*RO2T+O2 +! K218=3.41E-13*EXP(800.2/TPK%T)::RO240+HO2-->OH+RPR8+RO28+RO2T +! K219=1.0E-15::RO230+RO2T-->RO28+2.*RO2T+O2 +! K220=3.41E-13*EXP(800.2/TPK%T)::RO230+HO2-->OH+RO28+RO2T +! K221=6.32E-13*EXP(180.2/TPK%T)::RO231+NO-->TPK%CF31*URG8+TPK%CF32*NO2+TPK%CF32*HO2+TPK%CF32*UR19 +! K222=1.0E-15::RO231+RO2T-->HO2+UR19+RO2T+O2 +! K223=3.41E-13*EXP(800.2/TPK%T)::RO231+HO2-->HO2+OH+UR19 +! K224=3.2E-13*EXP(180.2/TPK%T)::RO232+NO-->TPK%CFA14*URG9+TPK%CF34*NO2+TPK%CF34*RO241+TPK%CF34*RO2T +! K225=1.0E-15::RO232+RO2T-->RO241+2.*RO2T+O2 +! K226=3.41E-13*EXP(800.2/TPK%T)::RO232+HO2-->OH+RO241+RO2T +! K227=3.2E-13*EXP(180.2/TPK%T)::RO241+NO-->TPK%CFA15*URG9+TPK%CF36*NO2+TPK%CF36*HO2+TPK%CFA16*URG9 +! K228=1.0E-15::RO241+RO2T-->HO2+0.9999996*URG9+RO2T+O2 +! K229=3.41E-13*EXP(800.2/TPK%T)::RO241+HO2-->HO2+OH+0.9999996*URG9 +! K230=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO233-->RO242+RO2T +! K231=1.25E-12*EXP(180.2/TPK%T)::RO233+NO-->NO2+HO2+0.3000000*RPG3 +! K232=1.0E-15::RO233+RO2T-->HO2+1.0000000*RPG3+RO2T+O2 +! K233=3.41E-13*EXP(800.2/TPK%T)::RO233+HO2-->HO2+OH+0.3000000*RPG3 +! K234=1.25E-12*EXP(180.2/TPK%T)::RO242+NO-->NO2+HO2+RP10+MGLY +! K235=1.0E-15::RO242+RO2T-->HO2+RP10+O2+RO2T+MGLY +! K236=3.41E-13*EXP(800.2/TPK%T)::RO242+HO2-->HO2+OH+RP10+MGLY +! K237=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO234-->RO243+RO2T +! K238=1.05E-12*EXP(180.2/TPK%T)::RO234+NO-->NO2+HO2+0.3*RP11 +! K239=1.0E-15::RO234+RO2T-->HO2+RP11+RO2T+O2 +! K240=3.41E-13*EXP(800.2/TPK%T)::RO234+HO2-->HO2+OH+0.3*RP11 +! K241=1.05E-12*EXP(180.2/TPK%T)::RO243+NO-->NO2+HO2+RP10+MGLY +! K242=1.0E-15::RO243+RO2T-->HO2+RP10+MGLY+O2+RO2T +! K243=3.41E-13*EXP(800.2/TPK%T)::RO243+HO2-->HO2+OH+RP10+MGLY +! K244=1.1*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO235-->RO244+RO2T +! K245=8.89E-13*EXP(180.2/TPK%T)::RO235+NO-->NO2+HO2+0.5*RP11 +! K246=1.0E-15::RO235+RO2T-->HO2+RP11+RO2T+O2 +! K247=3.41E-13*EXP(800.2/TPK%T)::RO235+HO2-->HO2+OH+RP11 +! K248=8.89E-13*EXP(180.2/TPK%T)::RO244+NO-->NO2+HO2+RP10+MGLY +! K249=1.0E-15::RO244+RO2T-->HO2+RP10+MGLY+O2+RO2T +! K250=3.41E-13*EXP(800.2/TPK%T)::RO244+HO2-->HO2+OH+RP10+MGLY +! K251=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO236-->RO245+RO2T +! K252=1.25E-12*EXP(180.2/TPK%T)::RO236+NO-->NO2+HO2+0.3000000*RPG3 +! K253=1.0E-15::RO236+RO2T-->HO2+1.0000000*RPG3+RO2T+O2 +! K254=3.41E-13*EXP(800.2/TPK%T)::RO236+HO2-->HO2+OH+0.3000000*RPG3 +! K255=1.25E-12*EXP(180.2/TPK%T)::RO245+NO-->NO2+HO2+RP10+MGLY +! K256=1.0E-15::RO245+RO2T-->HO2+RP10+MGLY+O2+RO2T +! K257=3.41E-13*EXP(800.2/TPK%T)::RO245+HO2-->HO2+OH+RP10+MGLY +! K258=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO237-->RO246+RO2T +! K259=1.25E-12*EXP(180.2/TPK%T)::RO237+NO-->NO2+HO2+0.3000000*RPG2 +! K260=1.0E-15::RO237+RO2T-->HO2+1.0000000*RPG2+RO2T+O2 +! K261=3.41E-13*EXP(800.2/TPK%T)::RO237+HO2-->HO2+OH+0.3000000*RPG2 +! K262=1.25E-12*EXP(180.2/TPK%T)::RO246+NO-->NO2+HO2+RP10+MGLY +! K263=1.0E-15::RO246+RO2T-->HO2+RP10+MGLY+O2+RO2T +! K264=3.41E-13*EXP(800.2/TPK%T)::RO246+HO2-->HO2+OH+RP10+MGLY +! K265=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO238-->RO247+RO2T +! K266=6.32E-13*EXP(180.2/TPK%T)::RO238+NO-->NO2+HO2+1.0000013*RPG7 +! K267=1.0E-15::RO238+RO2T-->HO2+1.0000013*RPG7+RO2T+O2 +! K268=3.41E-13*EXP(800.2/TPK%T)::RO238+HO2-->HO2+OH+1.0000013*RPG7 +! K269=6.32E-13*EXP(180.2/TPK%T)::RO247+NO-->NO2+HO2+1.0023998*RPRL+MGLY +! K270=1.0E-15::RO247+RO2T-->HO2+1.0023998*RPRL+MGLY+O2+RO2T +! K271=3.41E-13*EXP(800.2/TPK%T)::RO247+HO2-->HO2+OH+1.0023998*RPRL+MGLY +! K272=4.14E-12*EXP(452.9/TPK%T)::MVK+OH-->RO249+RO2T +! K273=1.86E-11*EXP(176.1/TPK%T)::MCR+OH-->TPK%CF46*RO250+TPK%CF46*H2O+TPK%CF47*RO251+RO2T +! K274=1.72E-11::MGLY+OH-->RO248+RO2T+H2O +! K275=1.5E-12*EXP(-1726.2/TPK%T)::MCR+NO3-->TPK%CF46*HNO3+TPK%CF46*RO250+TPK%CF47*RO252+RO2T +! K276=!ZRATES(:,019)::MGLY-->CO+HO2+RO28+RO2T +! K277=1.11E-11*EXP(180.2/TPK%T)::RO248+NO-->NO2+CO2+RO28+RO2T +! K278=1.4E-12*EXP(-1897.3/TPK%T)::MGLY+NO3-->HNO3+RO248+RO2T +! K279=3.41E-13*EXP(800.2/TPK%T)/3.5::RO248+HO2-->O3+UR21 +! K280=1.0E-15::RO248+RO2T-->CO2+RO28+2.*RO2T+O2 +! K281=7.5E-16*EXP(-1519.9/TPK%T)::MVK+O3-->0.56*CO+0.2*CO2+0.28*HO2+0.36*OH+0.5*MGLY+0.5*HCHO+0.1*ALD2+0.12*ORA1+0.12*UR21+0.28*RO28+0.28*RO2T+0.2*H2O +! K282=1.36E-15*EXP(-2113.7/TPK%T)::MCR+O3-->0.41*CO+0.41*HO2+0.82*OH+0.5*HCHO+0.59*MGLY+0.09*ORA1+0.41*RO253+0.41*RO2T +! K283=4.32E-12::MVK+O-->0.85*KETL+0.15*RO24+0.15*RO28+0.3*RO2T +! K284=6.34E-12::MCR+O-->0.15*CO+0.15*HO2+0.85*ALD2+0.15*RO27+0.15*RO2T +! K285=2.45E-12*EXP(180.2/TPK%T)::RO249+NO-->NO2+HO2+MGLY+HCHO +! K286=1.0E-15::RO249+RO2T-->HO2+MGLY+HCHO+RO2T+O2 +! K287=3.41E-13*EXP(800.2/TPK%T)::RO249+HO2-->HO2+OH+MGLY+HCHO +! K288=1.11E-11*EXP(180.2/TPK%T)::RO250+NO-->CO2+NO2+RO214+RO2T +! K289=3.41E-13*EXP(800.2/TPK%T)/3.5::RO250+HO2-->O3+0.5*ORA2+0.5*OLEL +! K290=1.0E-15::RO250+RO2T-->CO2+RO214+2.*RO2T+O2 +! K291=2.45E-12*EXP(180.2/TPK%T)::RO251+NO-->NO2+HO2+HCHO+MGLY +! K292=3.41E-13*EXP(800.2/TPK%T)::RO251+HO2-->HO2+HCHO+MGLY+RO2T+O2 +! K293=1.0E-15::RO251+RO2T-->HO2+OH+MGLY+HCHO +! K294=2.45E-12*EXP(180.2/TPK%T)::RO252+NO-->2.*NO2+MGLY+HCHO +! K295=3.41E-13*EXP(800.2/TPK%T)::RO252+HO2-->NO2+MGLY+HCHO+RO2T+O2 +! K296=1.0E-15::RO252+RO2T-->NO2+OH+MGLY+HCHO +! K297=2.91E-12*EXP(180.2/TPK%T)::RO253+NO-->NO2+HCHO+RO254+RO2T +! K298=3.41E-13*EXP(800.2/TPK%T)::RO253+HO2-->HCHO+RO254+2.*RO2T+O2 +! K299=1.0E-15::RO253+RO2T-->OH+HCHO+RO254+RO2T +! K300=1.11E-11*EXP(180.2/TPK%T)::RO254+NO-->CO2+CO+NO2+HO2 +! K301=3.41E-13*EXP(800.2/TPK%T)/3.5::RO254+HO2-->O3+RP16 +! K302=1.0E-15::RO254+RO2T-->CO2+CO+HO2+RO2T+O2 +! K303=1.29E-11::RPR5+OH-->O3+0.9999993*URG7+H2O +! K304=3.54E-11::RPR1+OH-->RO255+RO2T+H2O +! K305=1.72E-11::RP16+OH-->RO258+RO2T+H2O +! K306=1.2940467E-11::RPRL+OH-->1.0000011*H2O+1.0000011*O3+2.0714202E-03*RPR7+0.9979297*URG7 +! K307=3.0E-13*EXP(-1427/TPK%T)*3.54E-11/(6.91E-12*EXP(250/TPK%T))::RPR1+NO3-->HNO3+RO255+RO2T +! K308=!ZRATES(:,012)::RPR1-->CO+HO2+RO220+RO2T +! K309=1.11E-11*EXP(180.2/TPK%T)::RO255+NO-->NO2+CO2+RO220+RO2T +! K310=3.41E-13*EXP(800.2/TPK%T)/3.5::RO255+HO2-->O3+ACID +! K311=1.0E-15::RO255+RO2T-->CO2+RO220+2.*RO2T+O2 +! K312=4.24E-11::RPR3+OH-->RO256+RO2T+H2O +! K313=3.0E-13*EXP(-1427/TPK%T)*4.24E-11/(6.91E-12*EXP(250/TPK%T))::RPR3+NO3-->HNO3+RO256+RO2T +! K314=!ZRATES(:,012)::RPR3-->CO+2.*HO2 +! K315=1.11E-11*EXP(180.2/TPK%T)::RO256+NO-->NO2+CO2+HO2 +! K316=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO256+NO2-->PAN8 +! K317=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::PAN8-->NO2+RO256+RO2T +! K318=3.41E-13*EXP(800.2/TPK%T)/3.5::RO256+HO2-->O3+1.0000000*URG4 +! K319=1.0E-15::RO256+RO2T-->CO2+HO2+RO2T+O2 +! K320=3.77E-12::RPR4+NO3-->HNO3+RAD8 +! K321=2.30E-11*EXP(151.0/TPK%T)::RAD8+NO2-->UR22+H2O +! K322=1.29E-11::RPR7+OH-->O3+0.9999993*URG7+H2O +! K323=1.3918362E-10::RPG7+OH-->1.0000005*O3+1.0000005*H2O+0.5021558*RPG7+0.4978440*URG6 +! K324=1.145E-10::RPR8+OH-->RO257+RO2T+H2O +! K325=1.098E-10::RP10+OH-->HO2+H2O +! K326=1.964E-10::RP11+OH-->O3+0.67*UR26+H2O +! K327=3.0E-13*EXP(-1427/TPK%T)*1.145E-10/(6.91E-12*EXP(250/TPK%T))::RPR8+NO3-->HNO3+RO257+RO2T +! K328=!ZRATES(:,012)::RP10--> +! K329=!ZRATES(:,012)::RPR8-->CO+HO2+RO29+RO2T +! K330=!ZRATES(:,012)::RPR8-->HO2+RO257+RO2T +! K331=1.11E-11*EXP(180.2/TPK%T)::RO257+NO-->NO2+CO2+RO29+RO2T +! K332=3.41E-13*EXP(800.2/TPK%T)/3.5::RO257+HO2-->1.0000000*URG4+O3 +! K333=1.0E-15::RO257+RO2T-->CO2+RO29+2.*RO2T+O2 +! K334=2.4131647E-10::RPG3+OH-->1.0000000*O3+0.1191897*RPG2+1.0000000*H2O+0.8808107*RPG2 +! K335=2.1923330E-10::RPG2+OH-->1.0000000*O3+0.5562513*URG2+1.0000000*H2O+0.4437492*RP18 +! K337=1.97E-10::RP18+OH-->O3+URG2+H2O +! K338=1.4E-12*EXP(-1897.3/TPK%T)::RP16+NO3-->HNO3+RO258+RO2T +! K339=!ZRATES(:,019)::RP16-->2.*CO+OH+HO2 +! K340=1.11E-11*EXP(180.2/TPK%T)::RO258+NO-->CO+CO2+NO2+OH +! K341=3.41E-13*EXP(800.2/TPK%T)::RO258+HO2-->O3+UR28 +! K342=1.0E-15::RO258+RO2T-->CO+CO2+OH+RO2T+O2 +! K343=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::PAN7-->NO2+RO255+RO2T +! K344=8.89E-13*EXP(180.2/TPK%T)::RO230+NO-->NO2+RO28+RO2T +! K345=3.30E-12*exp(-(900.0/TPK%T))::NH3+OH--> +! K346=1.00E-40::H2SO4--> +! K347=4.50E-13::ORA1+OH-->HO2+CO2+H2O +! K348=6.00E-13::ORA2+OH--> +! K349=1.20E-12::ACID+OH--> +! K350=1.00E-40::URG2--> +! K351=1.00E-40::URG4--> +! K352=1.00E-40::URG6--> +! K353=1.00E-40::URG7--> +! K354=1.00E-40::URG8--> +! K355=1.00E-40::URG9--> +! K356=1.00E-40::URG10--> +! K357=1.00E-40::UR7--> +! K358=1.00E-40::UR8--> +! K359=1.00E-40::UR17--> +! K360=1.00E-40::UR19--> +! K361=1.00E-40::UR21--> +! K362=1.00E-40::UR22--> +! K363=1.00E-40::UR26--> +! K364=1.00E-40::UR28--> +! K365=1.00E-40::AP7--> ! KTC1=@KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::O3-->WC_O3 ! KTC2=@KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::H2O2-->WC_H2O2 ! KTC3=@KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NO-->WC_NO @@ -180,32 +541,54 @@ ! KTC12=@KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HO2-->WC_HO2 ! KTC13=@KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::CO2-->WC_CO2 ! KTC14=@KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::SO2-->WC_SO2 -! KTC15=@KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::SULF-->WC_SULF -! KTC16=@KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HCHO-->WC_HCHO -! KTC17=@KT(0.012,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ORA1-->WC_ORA1 -! KTC18=@KT(0.03,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ORA2-->WC_ORA2 -! KTC19=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::MO2-->WC_MO2 -! KTC20=@KT(0.007,48.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::OP1-->WC_OP1 -! KTC21=@KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.1e-2,-2830.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_O3-->O3 -! KTC22=@KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(7.73e4,-7310.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_H2O2-->H2O2 -! KTC23=@KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.92e-3,-1790.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO-->NO -! KTC24=@KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.4e-2,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO2-->NO2 -! KTC25=@KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.8e-2,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO3-->NO3 -! KTC26=@KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.1,-3400.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_N2O5-->N2O5 -! KTC27=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(5.0e1,-4880.,1.6e-3,1760.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HONO-->HONO -! KTC28=@KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(2.1e5,-8700.,2.2e1,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HNO3-->HNO3 -! KTC29=@KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(1.2e4,-6900.,1.26e-6,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HNO4-->HNO4 -! KTC30=@KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFB(6.02e1,-4160.,1.7e-5,4350.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NH3-->NH3 -! KTC31=@KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.9e1,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_OH-->OH -! KTC32=@KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(6.9e2,0.,1.6e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HO2-->HO2 -! KTC33=@KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(3.4e-2,-2710.,4.3e-7,920.,4.7e-11,1780.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_CO2-->CO2 -! KTC34=@KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(1.36,-2930.,1.3e-2,-1965.,6.4e-8,-1430.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_SO2-->SO2 -! KTC35=@KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(2.1e5,-8700.,1.0e3,0.,1.0e-2,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_SULF-->SULF -! KTC36=@KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.23e3,-7100.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HCHO-->HCHO -! KTC37=@KT(0.012,46.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(8.9e3,-6100.,1.8e-4,150.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ORA1-->ORA1 -! KTC38=@KT(0.03,60.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(4.1e3,-6200.,1.74e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ORA2-->ORA2 -! KTC39=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.7e0,-2030.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_MO2-->MO2 -! KTC40=@KT(0.007,48.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.e2,-5280.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_OP1-->OP1 +! KTC15=@KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::H2SO4-->WC_H2SO4 +! KTC16=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::RO21-->WC_RO21 +! KTC17=@KT(0.05,75.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::RO25-->WC_RO25 +! KTC18=@KT(0.027,32.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::MEOH-->WC_MEOH +! KTC19=@KT(0.017,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ETOH-->WC_ETOH +! KTC20=@KT(0.011,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ALCH-->WC_ALCH +! KTC21=@KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HCHO-->WC_HCHO +! KTC22=@KT(0.03,44.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ALD2-->WC_ALD2 +! KTC23=@KT(0.01,58.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::GLY-->WC_GLY +! KTC24=@KT(0.008,58.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::KETL-->WC_KETL +! KTC25=@KT(0.0003,72.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::MGLY-->WC_MGLY +! KTC26=@KT(0.023,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ORA1-->WC_ORA1 +! KTC27=@KT(0.032,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ORA2-->WC_ORA2 +! KTC28=@KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ACID-->WC_ACID +! KTC29=@KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::RP16-->WC_RP16 +! KTC30=@KT(0.05,88.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::UR21-->WC_UR21 +! KTC31=@KT(0.05,90.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::UR28-->WC_UR28 +! KTC32=@KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.1e-2,-2830.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_O3-->O3 +! KTC33=@KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(7.73e4,-7310.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_H2O2-->H2O2 +! KTC34=@KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.92e-3,-1790.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO-->NO +! KTC35=@KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.4e-2,-2516.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO2-->NO2 +! KTC36=@KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.8e-2,-8707.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO3-->NO3 +! KTC37=@KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.1e0,-3400.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_N2O5-->N2O5 +! KTC38=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(5.0e1,-4880.,1.6e-3,1760.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HONO-->HONO +! KTC39=@KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(2.1e5,-8700.,2.2e1,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HNO3-->HNO3 +! KTC40=@KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(1.2e4,-6900.,1.26e-6,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HNO4-->HNO4 +! KTC41=@KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFB(6.02e1,-4160.,1.7e-5,4350.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NH3-->NH3 +! KTC42=@KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.9e1,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_OH-->OH +! KTC43=@KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(6.9e2,-6643.,1.6e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HO2-->HO2 +! KTC44=@KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(3.4e-2,-2710.,4.3e-7,920.,4.7e-11,1780.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_CO2-->CO2 +! KTC45=@KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(1.36,-2930.,1.3e-2,-1965.,6.4e-8,-1430.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_SO2-->SO2 +! KTC46=@KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(2.1e5,-8700.,1.0e3,0.,1.0e-2,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_H2SO4-->H2SO4 +! KTC47=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.7e0,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_RO21-->RO21 +! KTC48=@KT(0.05,75.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(7.5e1,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_RO25-->RO25 +! KTC49=@KT(0.027,32.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.2e2,-5210.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_MEOH-->MEOH +! KTC50=@KT(0.017,46.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.9e2,-6600.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ETOH-->ETOH +! KTC51=@KT(0.011,60.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.3e2,-7500.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ALCH-->ALCH +! KTC52=@KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.23e3,-7100.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HCHO-->HCHO +! KTC53=@KT(0.03,44.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.29e1,-5890.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ALD2-->ALD2 +! KTC54=@KT(0.01,58.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.6e5,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_GLY-->GLY +! KTC55=@KT(0.008,58.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.81e1,-5050.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_KETL-->KETL +! KTC56=@KT(0.0003,72.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.7e3,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_MGLY-->MGLY +! KTC57=@KT(0.023,46.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(8.9e3,-6100.,1.8e-4,150.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ORA1-->ORA1 +! KTC58=@KT(0.032,60.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(4.1e3,-6200.,1.75e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ORA2-->ORA2 +! KTC59=@KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(5.7e3,0.,1.35e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ACID-->ACID +! KTC60=@KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(9.0e3,0.,3.2e-4,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_RP16-->RP16 +! KTC61=@KT(0.05,88.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(3.11e5,-5090.,3.55e-3,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_UR21-->UR21 +! KTC62=@KT(0.05,90.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(5.0e8,0.,5.6e-2,0.,5.4e-5,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_UR28-->UR28 ! KTR1=@KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::O3-->WR_O3 ! KTR2=@KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::H2O2-->WR_H2O2 ! KTR3=@KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NO-->WR_NO @@ -220,33 +603,55 @@ ! KTR12=@KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HO2-->WR_HO2 ! KTR13=@KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::CO2-->WR_CO2 ! KTR14=@KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::SO2-->WR_SO2 -! KTR15=@KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::SULF-->WR_SULF -! KTR16=@KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HCHO-->WR_HCHO -! KTR17=@KT(0.012,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ORA1-->WR_ORA1 -! KTR18=@KT(0.03,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ORA2-->WR_ORA2 -! KTR19=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::MO2-->WR_MO2 -! KTR20=@KT(0.007,48.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::OP1-->WR_OP1 -! KTR21=@KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.1e-2,-2830.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_O3-->O3 -! KTR22=@KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(7.73e4,-7310.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_H2O2-->H2O2 -! KTR23=@KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.92e-3,-1790.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO-->NO -! KTR24=@KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.4e-2,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO2-->NO2 -! KTR25=@KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.8e-2,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO3-->NO3 -! KTR26=@KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.1,-3400.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_N2O5-->N2O5 -! KTR27=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(5.0e1,-4880.,1.6e-3,1760.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HONO-->HONO -! KTR28=@KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(2.1e5,-8700.,2.2e1,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HNO3-->HNO3 -! KTR29=@KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(1.2e4,-6900.,1.26e-6,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HNO4-->HNO4 -! KTR30=@KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFB(6.02e1,-4160.,1.7e-5,4350.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NH3-->NH3 -! KTR31=@KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.9e1,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_OH-->OH -! KTR32=@KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(6.9e2,0.,1.6e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HO2-->HO2 -! KTR33=@KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(3.4e-2,-2710.,4.3e-7,920.,4.7e-11,1780.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_CO2-->CO2 -! KTR34=@KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(1.36,-2930.,1.3e-2,-1965.,6.4e-8,-1430.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_SO2-->SO2 -! KTR35=@KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(2.1e5,-8700.,1.0e3,0.,1.0e-2,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_SULF-->SULF -! KTR36=@KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.23e3,-7100.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HCHO-->HCHO -! KTR37=@KT(0.012,46.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(8.9e3,-6100.,1.8e-4,150.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ORA1-->ORA1 -! KTR38=@KT(0.03,60.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(4.1e3,-6200.,1.74e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ORA2-->ORA2 -! KTR39=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.7e0,-2030.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_MO2-->MO2 -! KTR40=@KT(0.007,48.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.e2,-5280.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_OP1-->OP1 -! KC1=!ZRATES(:,018)::WC_H2O2-->WC_OH+WC_OH +! KTR15=@KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::H2SO4-->WR_H2SO4 +! KTR16=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::RO21-->WR_RO21 +! KTR17=@KT(0.05,75.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::RO25-->WR_RO25 +! KTR18=@KT(0.027,32.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::MEOH-->WR_MEOH +! KTR19=@KT(0.017,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ETOH-->WR_ETOH +! KTR20=@KT(0.011,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ALCH-->WR_ALCH +! KTR21=@KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HCHO-->WR_HCHO +! KTR22=@KT(0.03,44.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ALD2-->WR_ALD2 +! KTR23=@KT(0.01,58.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::GLY-->WR_GLY +! KTR24=@KT(0.008,58.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::KETL-->WR_KETL +! KTR25=@KT(0.0003,72.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::MGLY-->WR_MGLY +! KTR26=@KT(0.023,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ORA1-->WR_ORA1 +! KTR27=@KT(0.032,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ORA2-->WR_ORA2 +! KTR28=@KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ACID-->WR_ACID +! KTR29=@KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::RP16-->WR_RP16 +! KTR30=@KT(0.05,88.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::UR21-->WR_UR21 +! KTR31=@KT(0.05,90.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::UR28-->WR_UR28 +! KTR32=@KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.1e-2,-2830.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_O3-->O3 +! KTR33=@KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(7.73e4,-7310.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_H2O2-->H2O2 +! KTR34=@KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.92e-3,-1790.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO-->NO +! KTR35=@KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.4e-2,-2516.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO2-->NO2 +! KTR36=@KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.8e-2,-8707.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO3-->NO3 +! KTR37=@KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.1e0,-3400.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_N2O5-->N2O5 +! KTR38=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(5.0e1,-4880.,1.6e-3,1760.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HONO-->HONO +! KTR39=@KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(2.1e5,-8700.,2.2e1,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HNO3-->HNO3 +! KTR40=@KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(1.2e4,-6900.,1.26e-6,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HNO4-->HNO4 +! KTR41=@KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFB(6.02e1,-4160.,1.7e-5,4350.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NH3-->NH3 +! KTR42=@KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.9e1,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_OH-->OH +! KTR43=@KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(6.9e2,-6643.,1.6e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HO2-->HO2 +! KTR44=@KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(3.4e-2,-2710.,4.3e-7,920.,4.7e-11,1780.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_CO2-->CO2 +! KTR45=@KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(1.36,-2930.,1.3e-2,-1965.,6.4e-8,-1430.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_SO2-->SO2 +! KTR46=@KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(2.1e5,-8700.,1.0e3,0.,1.0e-2,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_H2SO4-->H2SO4 +! KTR47=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.7e0,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_RO21-->RO21 +! KTR48=@KT(0.05,75.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(7.5e1,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_RO25-->RO25 +! KTR49=@KT(0.027,32.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.2e2,-5210.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_MEOH-->MEOH +! KTR50=@KT(0.017,46.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.9e2,-6600.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ETOH-->ETOH +! KTR51=@KT(0.011,60.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.3e2,-7500.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ALCH-->ALCH +! KTR52=@KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.23e3,-7100.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HCHO-->HCHO +! KTR53=@KT(0.03,44.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.29e1,-5890.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ALD2-->ALD2 +! KTR54=@KT(0.01,58.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.6e5,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_GLY-->GLY +! KTR55=@KT(0.008,58.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.81e1,-5050.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_KETL-->KETL +! KTR56=@KT(0.0003,72.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.7e3,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_MGLY-->MGLY +! KTR57=@KT(0.023,46.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(8.9e3,-6100.,1.8e-4,150.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ORA1-->ORA1 +! KTR58=@KT(0.032,60.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(4.1e3,-6200.,1.75e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ORA2-->ORA2 +! KTR59=@KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(5.7e3,0.,1.35e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ACID-->ACID +! KTR60=@KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(9.0e3,0.,3.2e-4,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_RP16-->RP16 +! KTR61=@KT(0.05,88.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(3.11e5,-5090.,3.55e-3,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_UR21-->UR21 +! KTR62=@KT(0.05,90.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(5.0e8,0.,5.6e-2,0.,5.4e-5,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_UR28-->UR28 +! KC1=!ZRATES(:,024)::WC_H2O2-->WC_OH+WC_OH ! KC2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_OH+WC_OH-->WC_H2O2 ! KC3=((2.8E+10*10.**(-TPK%PHC)+3.5E+10*exp(-720.*(1./TPK%T-1./298.15))*1.6e-5)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_OH+WC_HO2--> ! KC4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_H2O2+WC_OH-->WC_HO2 @@ -257,26 +662,42 @@ ! KC9=((1.8E+9*10.**(-TPK%PHC)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_NO2+WC_HO2-->WC_HNO4 ! KC10=2.6E-2*10.**(-TPK%PHC)/(1.26e-6+10.**(-TPK%PHC))::WC_HNO4-->WC_HO2+WC_NO2 ! KC11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHC))::WC_HNO4-->WC_HONO -! KC12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHC))**2./((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.)*(1.26e-6+10.**(-TPK%PHC))))/TPK%MOL2MOLECCLOUD::WC_HNO4+WC_SO2-->WC_SULF+WC_HNO3 -! KC13=!ZRATES(:,019)*2.2e+1/(2.2e+1+10.**(-TPK%PHC))::WC_HNO3-->WC_NO2+WC_OH +! KC12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHC))**2./((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.)*(1.26e-6+10.**(-TPK%PHC))))/TPK%MOL2MOLECCLOUD::WC_HNO4+WC_SO2-->WC_H2SO4+WC_HNO3 +! KC13=!ZRATES(:,025)*2.2e+1/(2.2e+1+10.**(-TPK%PHC))::WC_HNO3-->WC_NO2+WC_OH ! KC14=1.0E+10::WC_N2O5-->WC_HNO3+WC_HNO3 -! KC15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_NO3+WC_SULF-->WC_HNO3+WC_ASO4 +! KC15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_NO3+WC_H2SO4-->WC_HNO3+WC_ASO4 ! KC16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_NO3+WC_SO2-->WC_HNO3+WC_ASO3 -! KC17=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_MO2+WC_MO2-->2.00*WC_HCHO+2.00*WC_HO2 -! KC18=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_MO2+WC_SO2-->WC_OP1+WC_ASO3 -! KC19=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(4030.*(1./TPK%T-1./298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2MOLECCLOUD::WC_HCHO+WC_OH-->WC_ORA1+WC_HO2 -! KC20=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+3.4E+9*exp(-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.15)))/(1.8e-4*exp(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ORA1+WC_OH-->WC_CO2+WC_HO2 -! KC21=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.)*(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECCLOUD::WC_SO2+WC_HCHO-->WC_AHMS -! KC22=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*EXP(-6716*(1./TPK%T-1./298.15))/10.**(-TPK%PHC)::WC_AHMS-->WC_SO2+WC_HCHO -! KC23=3.0E+8/TPK%MOL2MOLECCLOUD::WC_AHMS+WC_OH-->WC_HO2+WC_ORA1+WC_SO2 -! KC24=1.1E+9::WC_ASO3+W_O2-->WC_ASO5 -! KC25=(1.7E+9*10.**(-TPK%PHC)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ASO5+WC_HO2-->WC_AHSO5 -! KC26=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_ASO5+WC_ASO5-->WC_ASO4+WC_ASO4 -! KC27=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_AHSO5+WC_SO2-->2.00*WC_SULF -! KC28=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15))::WC_ASO4-->WC_SULF+WC_OH -! KC29=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_SO2+WC_O3-->WC_SULF -! KC30=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_SO2+WC_H2O2-->WC_SULF -! KR1=!ZRATES(:,018)::WR_H2O2-->WR_OH+WR_OH +! KC17=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.)*(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECCLOUD::WC_SO2+WC_HCHO-->WC_AHMS +! KC18=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*EXP(-6716*(1./TPK%T-1./298.15))/10.**(-TPK%PHC)::WC_AHMS-->WC_SO2+WC_HCHO +! KC19=3.0E+8/TPK%MOL2MOLECCLOUD::WC_AHMS+WC_OH-->WC_HO2+WC_ORA1+WC_SO2 +! KC20=1.1E+9::WC_ASO3+W_O2-->WC_ASO5 +! KC21=(1.7E+9*10.**(-TPK%PHC)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ASO5+WC_HO2-->WC_AHSO5 +! KC22=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_ASO5+WC_ASO5-->WC_ASO4+WC_ASO4 +! KC23=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_AHSO5+WC_SO2-->2.00*WC_H2SO4 +! KC24=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15))::WC_ASO4-->WC_H2SO4+WC_OH +! KC25=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_SO2+WC_O3-->WC_H2SO4 +! KC26=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_SO2+WC_H2O2-->WC_H2SO4 +! KC27=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_RO21+WC_RO21-->2.00*WC_HCHO+2.00*WC_HO2 +! KC28=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_RO21+WC_SO2-->WC_HCHO+WC_ASO3 +! KC29=1.5E+8/TPK%MOL2MOLECCLOUD::WC_RO25+WC_RO25-->WC_ORA2+WC_H2O2+WC_ALD2+WC_HO2 +! KC30=(1.7E+9*exp(-600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_MEOH+WC_OH-->WC_HCHO+WC_HO2 +! KC31=(2.1E+9*exp(-1200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_ETOH+WC_OH-->WC_ALD2+WC_HO2 +! KC32=(3.3E+9*exp(-1000.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_ALCH+WC_OH-->0.50*WC_ALD2+0.50*WC_KETL+WC_HO2 +! KC33=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(4030.*(1./TPK%T-1./298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2MOLECCLOUD::WC_HCHO+WC_OH-->WC_ORA1+WC_HO2 +! KC34=3.4E+9/TPK%MOL2MOLECCLOUD::WC_ALD2+WC_OH-->0.50*WC_RO21+0.50*WC_RO25+WC_CO2 +! KC35=(1.1E+9*exp(-1500.*(1./TPK%T-1./298.15))*3.9e3/(1.+3.9e3))/TPK%MOL2MOLECCLOUD::WC_GLY+WC_OH-->WC_RP16+WC_HO2 +! KC36=(7.9E+8*exp(-1600.*(1./TPK%T-1./298.15))*4.86e2/(1.+4.86e2))/TPK%MOL2MOLECCLOUD::WC_MGLY+WC_OH-->WC_UR21+WC_HO2 +! KC37=(8.9E+8*exp(-1400.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_KETL+WC_OH-->WC_MGLY+WC_KETL+WC_HCHO+WC_UR21+WC_ALD2+WC_RO21+WC_CO2+WC_H2O2+WC_HO2 +! KC38=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+3.4E+9*exp(-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.15)))/(1.8e-4*exp(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ORA1+WC_OH-->WC_CO2+WC_HO2 +! KC39=((1.5E+7*exp(-1300.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+1.0E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.75e-5)/(1.75e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ORA2+WC_OH-->WC_RP16+0.5*WC_H2O2 +! KC40=(3.2E+8*exp(-2300.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.35e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ACID+WC_OH-->WC_RO25+WC_CO2 +! KC41=(7.3E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.35e-5/(1.35e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ACID+WC_OH-->0.56*WC_UR21+0.15*WC_ACID2+0.29*WC_ALD2+0.29*WC_H2O2+0.11*WC_HO2 +! KC42=((4.7E+7*10.**(-TPK%PHC)*5.6E-2+7.7E+6*5.6E-2*5.4e-5)/(5.6E-2*5.4E-5+5.4E-5*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_UR28+WC_OH-->2*WC_CO2+WC_HO2 +! KC43=((1.2E+8*exp(-2800.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+7.0E+8*exp(-2300.*(1./TPK%T-1./298.15))*3.55E-3)/(3.55E-3+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_UR21+WC_OH-->0.56*WC_ACID2+0.43*WC_ALD2+0.43*WC_CO2+0.3*WC_H2O2+0.81*WC_HO2 +! KC44=(3.6E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(10.**(-TPK%PHC)+3.2E-4))/TPK%MOL2MOLECCLOUD::WC_RP16+WC_OH-->WC_UR28+WC_HO2 +! KC45=(2.6E+9*exp(-4300.*(1./TPK%T-1./298.15))*3.2E-4/(10.**(-TPK%PHC)+3.2E-4))/TPK%MOL2MOLECCLOUD::WC_RP16+WC_OH-->2*WC_CO2+0.45*WC_H2O2+0.71*WC_HO2 +! KC46=1.6E+7/TPK%MOL2MOLECCLOUD::WC_ACID2+WC_OH--> +! KR1=!ZRATES(:,024)::WR_H2O2-->WR_OH+WR_OH ! KR2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_OH+WR_OH-->WR_H2O2 ! KR3=((2.8E+10*10.**(-TPK%PHR)+3.5E+10*exp(-720.*(1./TPK%T-1./298.15))*1.6e-5)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_OH+WR_HO2--> ! KR4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_H2O2+WR_OH-->WR_HO2 @@ -287,1212 +708,2272 @@ ! KR9=((1.8E+9*10.**(-TPK%PHR)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_NO2+WR_HO2-->WR_HNO4 ! KR10=2.6E-2*10.**(-TPK%PHR)/(1.26e-6+10.**(-TPK%PHR))::WR_HNO4-->WR_HO2+WR_NO2 ! KR11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHR))::WR_HNO4-->WR_HONO -! KR12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHR))**2./((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.)*(1.26e-6+10.**(-TPK%PHR))))/TPK%MOL2MOLECRAIN::WR_HNO4+WR_SO2-->WR_SULF+WR_HNO3 -! KR13=!ZRATES(:,019)*2.2e+1/(2.2e+1+10.**(-TPK%PHR))::WR_HNO3-->WR_NO2+WR_OH +! KR12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHR))**2./((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.)*(1.26e-6+10.**(-TPK%PHR))))/TPK%MOL2MOLECRAIN::WR_HNO4+WR_SO2-->WR_H2SO4+WR_HNO3 +! KR13=!ZRATES(:,025)*2.2e+1/(2.2e+1+10.**(-TPK%PHR))::WR_HNO3-->WR_NO2+WR_OH ! KR14=1.0E+10::WR_N2O5-->WR_HNO3+WR_HNO3 -! KR15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_NO3+WR_SULF-->WR_HNO3+WR_ASO4 +! KR15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_NO3+WR_H2SO4-->WR_HNO3+WR_ASO4 ! KR16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_NO3+WR_SO2-->WR_HNO3+WR_ASO3 -! KR17=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_MO2+WR_MO2-->2.00*WR_HCHO+2.00*WR_HO2 -! KR18=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_MO2+WR_SO2-->WR_OP1+WR_ASO3 -! KR19=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(4030.*(1./TPK%T-1./298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2MOLECRAIN::WR_HCHO+WR_OH-->WR_ORA1+WR_HO2 -! KR20=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+3.4E+9*exp(-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.15)))/(1.8e-4*exp(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ORA1+WR_OH-->WR_CO2+WR_HO2 -! KR21=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.)*(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECRAIN::WR_SO2+WR_HCHO-->WR_AHMS -! KR22=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*EXP(-6716*(1./TPK%T-1./298.15))/10.**(-TPK%PHR)::WR_AHMS-->WR_SO2+WR_HCHO -! KR23=3.0E+8/TPK%MOL2MOLECRAIN::WR_AHMS+WR_OH-->WR_HO2+WR_ORA1+WR_SO2 -! KR24=1.1E+9::WR_ASO3+W_O2-->WR_ASO5 -! KR25=(1.7E+9*10.**(-TPK%PHR)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ASO5+WR_HO2-->WR_AHSO5 -! KR26=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_ASO5+WR_ASO5-->WR_ASO4+WR_ASO4 -! KR27=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_AHSO5+WR_SO2-->2.00*WR_SULF -! KR28=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15))::WR_ASO4-->WR_SULF+WR_OH -! KR29=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_SO2+WR_O3-->WR_SULF -! KR30=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_SO2+WR_H2O2-->WR_SULF +! KR17=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.)*(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECRAIN::WR_SO2+WR_HCHO-->WR_AHMS +! KR18=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*EXP(-6716*(1./TPK%T-1./298.15))/10.**(-TPK%PHR)::WR_AHMS-->WR_SO2+WR_HCHO +! KR19=3.0E+8/TPK%MOL2MOLECRAIN::WR_AHMS+WR_OH-->WR_HO2+WR_ORA1+WR_SO2 +! KR20=1.1E+9::WR_ASO3+W_O2-->WR_ASO5 +! KR21=(1.7E+9*10.**(-TPK%PHR)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ASO5+WR_HO2-->WR_AHSO5 +! KR22=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_ASO5+WR_ASO5-->WR_ASO4+WR_ASO4 +! KR23=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_AHSO5+WR_SO2-->2.00*WR_H2SO4 +! KR24=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15))::WR_ASO4-->WR_H2SO4+WR_OH +! KR25=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_SO2+WR_O3-->WR_H2SO4 +! KR26=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_SO2+WR_H2O2-->WR_H2SO4 +! KR27=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_RO21+WR_RO21-->2.00*WR_HCHO+2.00*WR_HO2 +! KR28=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_RO21+WR_SO2-->WR_HCHO+WR_ASO3 +! KR29=1.5E+8/TPK%MOL2MOLECRAIN::WR_RO25+WR_RO25-->WR_ORA2+WR_H2O2+WR_ALD2+WR_HO2 +! KR30=(1.7E+9*exp(-600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_MEOH+WR_OH-->WR_HCHO+WR_HO2 +! KR31=(2.1E+9*exp(-1200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_ETOH+WR_OH-->WR_ALD2+WR_HO2 +! KR32=(3.3E+9*exp(-1000.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_ALCH+WR_OH-->0.50*WR_ALD2+0.50*WR_KETL+WR_HO2 +! KR33=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(4030.*(1./TPK%T-1./298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2MOLECRAIN::WR_HCHO+WR_OH-->WR_ORA1+WR_HO2 +! KR34=3.4E+9/TPK%MOL2MOLECRAIN::WR_ALD2+WR_OH-->0.50*WR_RO21+0.50*WR_RO25+WR_CO2 +! KR35=(1.1E+9*exp(-1500.*(1./TPK%T-1./298.15))*3.9e3/(1.+3.9e3))/TPK%MOL2MOLECRAIN::WR_GLY+WR_OH-->WR_RP16+WR_HO2 +! KR36=(7.9E+8*exp(-1600.*(1./TPK%T-1./298.15))*4.86e2/(1.+4.86e2))/TPK%MOL2MOLECRAIN::WR_MGLY+WR_OH-->WR_UR21+WR_HO2 +! KR37=(8.9E+8*exp(-1400.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_KETL+WR_OH-->WR_MGLY+WR_KETL+WR_HCHO+WR_UR21+WR_ALD2+WR_RO21+WR_CO2+WR_H2O2+WR_HO2 +! KR38=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+3.4E+9*exp(-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.15)))/(1.8e-4*exp(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ORA1+WR_OH-->WR_CO2+WR_HO2 +! KR39=((1.5E+7*exp(-1300.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+1.0E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.75e-5)/(1.75e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ORA2+WR_OH-->WR_RP16+0.5*WR_H2O2 +! KR40=(3.2E+8*exp(-2300.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.35e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ACID+WR_OH-->WR_RO25+WR_CO2 +! KR41=(7.3E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.35e-5/(1.35e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ACID+WR_OH-->0.56*WR_UR21+0.15*WR_ACID2+0.29*WR_ALD2+0.29*WR_H2O2+0.11*WR_HO2 +! KR42=((4.7E+7*10.**(-TPK%PHR)*5.6E-2+7.7E+6*5.6E-2*5.4e-5)/(5.6E-2*5.4E-5+5.4E-5*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_UR28+WR_OH-->2*WR_CO2+WR_HO2 +! KR43=((1.2E+8*exp(-2800.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+7.0E+8*exp(-2300.*(1./TPK%T-1./298.15))*3.55E-3)/(3.55E-3+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_UR21+WR_OH-->0.56*WR_ACID2+0.43*WR_ALD2+0.43*WR_CO2+0.3*WR_H2O2+0.81*WR_HO2 +! KR44=(3.6E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(10.**(-TPK%PHR)+3.2E-4))/TPK%MOL2MOLECRAIN::WR_RP16+WR_OH-->WR_UR28+WR_HO2 +! KR45=(2.6E+9*exp(-4300.*(1./TPK%T-1./298.15))*3.2E-4/(10.**(-TPK%PHR)+3.2E-4))/TPK%MOL2MOLECRAIN::WR_RP16+WR_OH-->2*WR_CO2+0.45*WR_H2O2+0.71*WR_HO2 +! KR46=1.6E+7/TPK%MOL2MOLECRAIN::WR_ACID2+WR_OH--> ! !======================================================================== ! ! the prognostic chemical species are the following ... ! -! 1. O3 PCONC(:,1) -! 2. H2O2 PCONC(:,2) -! 3. NO PCONC(:,3) -! 4. NO2 PCONC(:,4) -! 5. NO3 PCONC(:,5) -! 6. N2O5 PCONC(:,6) -! 7. HONO PCONC(:,7) -! 8. HNO3 PCONC(:,8) -! 9. HNO4 PCONC(:,9) -! 10. NH3 PCONC(:,10) -! 11. SO2 PCONC(:,11) -! 12. SULF PCONC(:,12) -! 13. CO PCONC(:,13) -! 14. OH PCONC(:,14) -! 15. HO2 PCONC(:,15) -! 16. CH4 PCONC(:,16) -! 17. ETH PCONC(:,17) -! 18. ALKA PCONC(:,18) -! 19. ALKE PCONC(:,19) -! 20. BIO PCONC(:,20) -! 21. ARO PCONC(:,21) -! 22. HCHO PCONC(:,22) -! 23. ALD PCONC(:,23) -! 24. KET PCONC(:,24) -! 25. CARBO PCONC(:,25) -! 26. ONIT PCONC(:,26) -! 27. PAN PCONC(:,27) -! 28. OP1 PCONC(:,28) -! 29. OP2 PCONC(:,29) -! 30. ORA1 PCONC(:,30) -! 31. ORA2 PCONC(:,31) -! 32. MO2 PCONC(:,32) -! 33. ALKAP PCONC(:,33) -! 34. ALKEP PCONC(:,34) -! 35. BIOP PCONC(:,35) -! 36. PHO PCONC(:,36) -! 37. ADD PCONC(:,37) -! 38. AROP PCONC(:,38) -! 39. CARBOP PCONC(:,39) -! 40. OLN PCONC(:,40) -! 41. XO2 PCONC(:,41) -! 42. WC_O3 PCONC(:,42) -! 43. WC_H2O2 PCONC(:,43) -! 44. WC_NO PCONC(:,44) -! 45. WC_NO2 PCONC(:,45) -! 46. WC_NO3 PCONC(:,46) -! 47. WC_N2O5 PCONC(:,47) -! 48. WC_HONO PCONC(:,48) -! 49. WC_HNO3 PCONC(:,49) -! 50. WC_HNO4 PCONC(:,50) -! 51. WC_NH3 PCONC(:,51) -! 52. WC_OH PCONC(:,52) -! 53. WC_HO2 PCONC(:,53) -! 54. WC_CO2 PCONC(:,54) -! 55. WC_SO2 PCONC(:,55) -! 56. WC_SULF PCONC(:,56) -! 57. WC_HCHO PCONC(:,57) -! 58. WC_ORA1 PCONC(:,58) -! 59. WC_ORA2 PCONC(:,59) -! 60. WC_MO2 PCONC(:,60) -! 61. WC_OP1 PCONC(:,61) -! 62. WC_ASO3 PCONC(:,62) -! 63. WC_ASO4 PCONC(:,63) -! 64. WC_ASO5 PCONC(:,64) -! 65. WC_AHSO5 PCONC(:,65) -! 66. WC_AHMS PCONC(:,66) -! 67. WR_O3 PCONC(:,67) -! 68. WR_H2O2 PCONC(:,68) -! 69. WR_NO PCONC(:,69) -! 70. WR_NO2 PCONC(:,70) -! 71. WR_NO3 PCONC(:,71) -! 72. WR_N2O5 PCONC(:,72) -! 73. WR_HONO PCONC(:,73) -! 74. WR_HNO3 PCONC(:,74) -! 75. WR_HNO4 PCONC(:,75) -! 76. WR_NH3 PCONC(:,76) -! 77. WR_OH PCONC(:,77) -! 78. WR_HO2 PCONC(:,78) -! 79. WR_CO2 PCONC(:,79) -! 80. WR_SO2 PCONC(:,80) -! 81. WR_SULF PCONC(:,81) -! 82. WR_HCHO PCONC(:,82) -! 83. WR_ORA1 PCONC(:,83) -! 84. WR_ORA2 PCONC(:,84) -! 85. WR_MO2 PCONC(:,85) -! 86. WR_OP1 PCONC(:,86) -! 87. WR_ASO3 PCONC(:,87) -! 88. WR_ASO4 PCONC(:,88) -! 89. WR_ASO5 PCONC(:,89) -! 90. WR_AHSO5 PCONC(:,90) -! 91. WR_AHMS PCONC(:,91) +! 1. NO PCONC(:,1) +! 2. NO2 PCONC(:,2) +! 3. O3 PCONC(:,3) +! 4. HONO PCONC(:,4) +! 5. HNO3 PCONC(:,5) +! 6. HNO4 PCONC(:,6) +! 7. N2O5 PCONC(:,7) +! 8. NO3 PCONC(:,8) +! 9. NH3 PCONC(:,9) +! 10. HO2 PCONC(:,10) +! 11. CO PCONC(:,11) +! 12. H2O2 PCONC(:,12) +! 13. SO2 PCONC(:,13) +! 14. H2SO4 PCONC(:,14) +! 15. OH PCONC(:,15) +! 16. ETHE PCONC(:,16) +! 17. OLEL PCONC(:,17) +! 18. OLEH PCONC(:,18) +! 19. ALKL PCONC(:,19) +! 20. ALKM PCONC(:,20) +! 21. ALKH PCONC(:,21) +! 22. AROH PCONC(:,22) +! 23. AROL PCONC(:,23) +! 24. AROO PCONC(:,24) +! 25. ARAL PCONC(:,25) +! 26. ARAC PCONC(:,26) +! 27. PAH PCONC(:,27) +! 28. HCHO PCONC(:,28) +! 29. ALD2 PCONC(:,29) +! 30. KETL PCONC(:,30) +! 31. KETH PCONC(:,31) +! 32. MEOH PCONC(:,32) +! 33. ETOH PCONC(:,33) +! 34. ALCH PCONC(:,34) +! 35. ISOP PCONC(:,35) +! 36. BIOL PCONC(:,36) +! 37. BIOH PCONC(:,37) +! 38. MTBE PCONC(:,38) +! 39. MVK PCONC(:,39) +! 40. MCR PCONC(:,40) +! 41. MGLY PCONC(:,41) +! 42. GLY PCONC(:,42) +! 43. ORA1 PCONC(:,43) +! 44. ORA2 PCONC(:,44) +! 45. ACID PCONC(:,45) +! 46. UR28 PCONC(:,46) +! 47. UR21 PCONC(:,47) +! 48. URG2 PCONC(:,48) +! 49. UR26 PCONC(:,49) +! 50. RPG2 PCONC(:,50) +! 51. RP18 PCONC(:,51) +! 52. RPG3 PCONC(:,52) +! 53. URG4 PCONC(:,53) +! 54. UR8 PCONC(:,54) +! 55. UR17 PCONC(:,55) +! 56. UR7 PCONC(:,56) +! 57. RPR3 PCONC(:,57) +! 58. URG6 PCONC(:,58) +! 59. UR22 PCONC(:,59) +! 60. URG7 PCONC(:,60) +! 61. RPR4 PCONC(:,61) +! 62. RPR7 PCONC(:,62) +! 63. RPG7 PCONC(:,63) +! 64. URG8 PCONC(:,64) +! 65. UR19 PCONC(:,65) +! 66. URG9 PCONC(:,66) +! 67. AP7 PCONC(:,67) +! 68. URG10 PCONC(:,68) +! 69. RPR1 PCONC(:,69) +! 70. RPR5 PCONC(:,70) +! 71. RPR8 PCONC(:,71) +! 72. RP10 PCONC(:,72) +! 73. RP11 PCONC(:,73) +! 74. RP16 PCONC(:,74) +! 75. RPRL PCONC(:,75) +! 76. APAN PCONC(:,76) +! 77. PAN1 PCONC(:,77) +! 78. PAN2 PCONC(:,78) +! 79. PAN3 PCONC(:,79) +! 80. PAN4 PCONC(:,80) +! 81. PAN6 PCONC(:,81) +! 82. PAN7 PCONC(:,82) +! 83. PAN8 PCONC(:,83) +! 84. PN10 PCONC(:,84) +! 85. RO2T PCONC(:,85) +! 86. RO21 PCONC(:,86) +! 87. RO25 PCONC(:,87) +! 88. WC_O3 PCONC(:,88) +! 89. WC_H2O2 PCONC(:,89) +! 90. WC_NO PCONC(:,90) +! 91. WC_NO2 PCONC(:,91) +! 92. WC_NO3 PCONC(:,92) +! 93. WC_N2O5 PCONC(:,93) +! 94. WC_HONO PCONC(:,94) +! 95. WC_HNO3 PCONC(:,95) +! 96. WC_HNO4 PCONC(:,96) +! 97. WC_NH3 PCONC(:,97) +! 98. WC_OH PCONC(:,98) +! 99. WC_HO2 PCONC(:,99) +! 100. WC_CO2 PCONC(:,100) +! 101. WC_SO2 PCONC(:,101) +! 102. WC_H2SO4 PCONC(:,102) +! 103. WC_RO21 PCONC(:,103) +! 104. WC_RO25 PCONC(:,104) +! 105. WC_MEOH PCONC(:,105) +! 106. WC_ETOH PCONC(:,106) +! 107. WC_ALCH PCONC(:,107) +! 108. WC_HCHO PCONC(:,108) +! 109. WC_ALD2 PCONC(:,109) +! 110. WC_GLY PCONC(:,110) +! 111. WC_MGLY PCONC(:,111) +! 112. WC_KETL PCONC(:,112) +! 113. WC_ORA1 PCONC(:,113) +! 114. WC_ORA2 PCONC(:,114) +! 115. WC_ACID PCONC(:,115) +! 116. WC_RP16 PCONC(:,116) +! 117. WC_UR21 PCONC(:,117) +! 118. WC_UR28 PCONC(:,118) +! 119. WC_ACID2 PCONC(:,119) +! 120. WC_ASO3 PCONC(:,120) +! 121. WC_ASO4 PCONC(:,121) +! 122. WC_ASO5 PCONC(:,122) +! 123. WC_AHSO5 PCONC(:,123) +! 124. WC_AHMS PCONC(:,124) +! 125. WR_O3 PCONC(:,125) +! 126. WR_H2O2 PCONC(:,126) +! 127. WR_NO PCONC(:,127) +! 128. WR_NO2 PCONC(:,128) +! 129. WR_NO3 PCONC(:,129) +! 130. WR_N2O5 PCONC(:,130) +! 131. WR_HONO PCONC(:,131) +! 132. WR_HNO3 PCONC(:,132) +! 133. WR_HNO4 PCONC(:,133) +! 134. WR_NH3 PCONC(:,134) +! 135. WR_OH PCONC(:,135) +! 136. WR_HO2 PCONC(:,136) +! 137. WR_CO2 PCONC(:,137) +! 138. WR_SO2 PCONC(:,138) +! 139. WR_H2SO4 PCONC(:,139) +! 140. WR_RO21 PCONC(:,140) +! 141. WR_RO25 PCONC(:,141) +! 142. WR_MEOH PCONC(:,142) +! 143. WR_ETOH PCONC(:,143) +! 144. WR_ALCH PCONC(:,144) +! 145. WR_HCHO PCONC(:,145) +! 146. WR_ALD2 PCONC(:,146) +! 147. WR_GLY PCONC(:,147) +! 148. WR_MGLY PCONC(:,148) +! 149. WR_KETL PCONC(:,149) +! 150. WR_ORA1 PCONC(:,150) +! 151. WR_ORA2 PCONC(:,151) +! 152. WR_ACID PCONC(:,152) +! 153. WR_RP16 PCONC(:,153) +! 154. WR_UR21 PCONC(:,154) +! 155. WR_UR28 PCONC(:,155) +! 156. WR_ACID2 PCONC(:,156) +! 157. WR_ASO3 PCONC(:,157) +! 158. WR_ASO4 PCONC(:,158) +! 159. WR_ASO5 PCONC(:,159) +! 160. WR_AHSO5 PCONC(:,160) +! 161. WR_AHMS PCONC(:,161) ! !======================================================================== ! ! the individual chemical terms are the following ... ! -! terms for O3: -! + K018*<O3P>*<O2> -! + 0.17307*K0102*<CARBOP>*<HO2> -! + KTC21*<WC_O3> -! + KTR21*<WR_O3> -! - K002*<O3> -! - K003*<O3> -! - K019*<O3P>*<O3> -! - K023*<O3>*<OH> -! - K024*<O3>*<HO2> -! - K042*<O3>*<NO> -! - K043*<O3>*<NO2> -! - K079*<ALKE>*<O3> -! - K080*<BIO>*<O3> -! - K081*<CARBO>*<O3> -! - K082*<PAN>*<O3> -! - K087*<ADD>*<O3> -! - KTC1*<O3> -! - KTR1*<O3> -! terms for H2O2: -! + K027*<HO2>*<HO2> -! + K028*<HO2>*<HO2>*<H2O> -! + 0.01833*K079*<ALKE>*<O3> -! + 0.00100*K080*<BIO>*<O3> -! + KTC22*<WC_H2O2> -! + KTR22*<WR_H2O2> -! - K009*<H2O2> -! - K026*<H2O2>*<OH> -! - KTC2*<H2O2> -! - KTR2*<H2O2> ! terms for NO: ! + K001*<NO2> -! + K004*<HONO> -! + K007*<NO3> -! + K030*<O3P>*<NO2> -! + K046*<NO3>*<NO2> -! + KTC23*<WC_NO> -! + KTR23*<WR_NO> -! - K029*<O3P>*<NO> -! - K032*<OH>*<NO> -! - K035*<HO2>*<NO> -! - K042*<O3>*<NO> -! - K044*<NO>*<NO>*<O2> -! - K044*<NO>*<NO>*<O2> -! - K045*<NO3>*<NO> -! - K090*<MO2>*<NO> -! - K091*<ALKAP>*<NO> -! - K092*<ALKEP>*<NO> -! - K093*<BIOP>*<NO> -! - K094*<AROP>*<NO> -! - K095*<CARBOP>*<NO> -! - K096*<OLN>*<NO> -! - K130*<XO2>*<NO> +! + K003*<NO2>*<O> +! + K012*<NO3>*<NO2> +! + K013*<NO3> +! + 0.9*K020*<HONO> +! + K095*<NO>*<RO2T> +! + KTC34*<WC_NO> +! + KTR34*<WR_NO> +! - K005*<O3>*<NO> +! - K007*<NO3>*<NO> +! - K008*<NO>*<NO> +! - K008*<NO>*<NO> +! - K019*<OH>*<NO> +! - K026*<HO2>*<NO> +! - K038*<NO>*<O> +! - K095*<NO>*<RO2T> +! - K110*<NO>*<RO21> +! - K113*<NO>*<RO22> +! - K116*<NO>*<RO23> +! - K119*<NO>*<RO24> +! - K122*<NO>*<RO25> +! - K125*<NO>*<RO26> +! - K144*<NO>*<RO27> +! - K147*<NO>*<RO28> +! - K150*<NO>*<RO29> +! - K153*<NO>*<RO210> +! - K156*<NO>*<RO211> +! - K159*<NO>*<RO212> +! - K162*<NO>*<RO213> +! - K165*<NO>*<RO239> +! - K168*<NO>*<RO214> +! - K171*<NO>*<RO215> +! - K174*<NO>*<RO216> +! - K177*<NO>*<RO217> +! - K180*<NO>*<RO218> +! - K183*<NO>*<RO219> +! - K186*<NO>*<RO220> +! - K189*<NO>*<RO221> +! - K192*<NO>*<RO222> +! - K195*<NO>*<RO223> +! - K198*<NO>*<RO224> +! - K201*<NO>*<RO225> +! - K204*<NO>*<RO226> +! - K207*<NO>*<RO227> +! - K210*<NO>*<RO228> +! - K213*<NO>*<RO229> +! - K216*<NO>*<RO240> +! - K221*<NO>*<RO231> +! - K224*<NO>*<RO232> +! - K227*<NO>*<RO241> +! - K231*<NO>*<RO233> +! - K234*<NO>*<RO242> +! - K238*<NO>*<RO234> +! - K241*<NO>*<RO243> +! - K245*<NO>*<RO235> +! - K248*<NO>*<RO244> +! - K252*<NO>*<RO236> +! - K255*<NO>*<RO245> +! - K259*<NO>*<RO237> +! - K262*<NO>*<RO246> +! - K266*<NO>*<RO238> +! - K269*<NO>*<RO247> +! - K277*<NO>*<RO248> +! - K285*<NO>*<RO249> +! - K288*<NO>*<RO250> +! - K291*<NO>*<RO251> +! - K294*<NO>*<RO252> +! - K297*<NO>*<RO253> +! - K300*<NO>*<RO254> +! - K309*<NO>*<RO255> +! - K315*<NO>*<RO256> +! - K331*<NO>*<RO257> +! - K340*<NO>*<RO258> +! - K344*<NO>*<RO230> ! - KTC3*<NO> ! - KTR3*<NO> ! terms for NO2: -! + K005*<HNO3> -! + 0.65*K006*<HNO4> -! + K008*<NO3> -! + K017*<ONIT> -! + K029*<O3P>*<NO> -! + K034*<OH>*<NO3> -! + K035*<HO2>*<NO> -! + K037*<HNO4> -! + 0.7*K038*<HO2>*<NO3> +! + K005*<O3>*<NO> +! + 2.*K007*<NO3>*<NO> +! + 2.*K008*<NO>*<NO> +! + K010*<N2O5> +! + K012*<NO3>*<NO2> +! + K014*<NO3> +! + 0.1*K020*<HONO> +! + K026*<HO2>*<NO> +! + K028*<HNO4> +! + K029*<OH>*<HNO4> +! + 0.8*K033*<HO2>*<NO3> +! + K038*<NO>*<O> ! + K039*<OH>*<HONO> -! + K041*<OH>*<HNO4> -! + K042*<O3>*<NO> -! + K044*<NO>*<NO>*<O2> -! + K044*<NO>*<NO>*<O2> -! + K045*<NO3>*<NO> -! + K045*<NO3>*<NO> -! + K046*<NO3>*<NO2> -! + K048*<N2O5> -! + K049*<NO3>*<NO3> -! + K049*<NO3>*<NO3> -! + K071*<ONIT>*<OH> -! + 0.10530*K074*<CARBO>*<NO3> -! + 0.40*K078*<PAN>*<NO3> -! + 0.70*K082*<PAN>*<O3> -! + K089*<PAN> -! + K090*<MO2>*<NO> -! + 0.91541*K091*<ALKAP>*<NO> -! + K092*<ALKEP>*<NO> -! + 0.84700*K093*<BIOP>*<NO> -! + 0.95115*K094*<AROP>*<NO> -! + K095*<CARBOP>*<NO> -! + 1.81599*K096*<OLN>*<NO> -! + 0.32440*K110*<OLN>*<MO2> -! + 0.00000*K116*<OLN>*<CARBOP> -! + 0.00000*K118*<OLN>*<OLN> -! + K119*<MO2>*<NO3> -! + K120*<ALKAP>*<NO3> -! + K121*<ALKEP>*<NO3> -! + K122*<BIOP>*<NO3> -! + K123*<AROP>*<NO3> -! + K124*<CARBOP>*<NO3> -! + 1.74072*K125*<OLN>*<NO3> -! + K130*<XO2>*<NO> -! + K131*<XO2>*<NO3> -! + KTC24*<WC_NO2> -! + KTR24*<WR_NO2> +! + K040*<OH>*<NO3> +! + 2.*K041*<NO3>*<NO3> +! + K110*<NO>*<RO21> +! + K113*<NO>*<RO22> +! + 2.*K116*<NO>*<RO23> +! + K117*<RO2T>*<RO23> +! + K118*<HO2>*<RO23> +! + K119*<NO>*<RO24> +! + TPK%CF4*K122*<NO>*<RO25> +! + K125*<NO>*<RO26> +! + K135*<PAN1> +! + K136*<PAN2> +! + K137*<PAN3> +! + K138*<PN10> +! + 1.0000000*K139*<APAN> +! + K140*<PAN6> +! + K141*<PAN4> +! + K144*<NO>*<RO27> +! + K147*<NO>*<RO28> +! + TPK%CF6*K150*<NO>*<RO29> +! + K153*<NO>*<RO210> +! + 2.*K156*<NO>*<RO211> +! + K157*<RO2T>*<RO211> +! + K158*<HO2>*<RO211> +! + 2.*K159*<NO>*<RO212> +! + K160*<RO2T>*<RO212> +! + K161*<HO2>*<RO212> +! + K162*<NO>*<RO213> +! + K165*<NO>*<RO239> +! + TPK%CF8*K168*<NO>*<RO214> +! + K171*<NO>*<RO215> +! + K174*<NO>*<RO216> +! + TPK%CF22*K177*<NO>*<RO217> +! + TPK%CF20*K180*<NO>*<RO218> +! + 2.*K183*<NO>*<RO219> +! + K184*<RO2T>*<RO219> +! + K185*<HO2>*<RO219> +! + TPK%CF18*K186*<NO>*<RO220> +! + TPK%CF24*K189*<NO>*<RO221> +! + TPK%CF42*K192*<NO>*<RO222> +! + TPK%CF44*K195*<NO>*<RO223> +! + TPK%CF26*K198*<NO>*<RO224> +! + 2.*K201*<NO>*<RO225> +! + K202*<RO2T>*<RO225> +! + K203*<HO2>*<RO225> +! + K204*<NO>*<RO226> +! + TPK%CF28*K207*<NO>*<RO227> +! + 2.*K210*<NO>*<RO228> +! + K211*<RO2T>*<RO228> +! + K212*<HO2>*<RO228> +! + TPK%CF30*K213*<NO>*<RO229> +! + K216*<NO>*<RO240> +! + TPK%CF32*K221*<NO>*<RO231> +! + TPK%CF34*K224*<NO>*<RO232> +! + TPK%CF36*K227*<NO>*<RO241> +! + K231*<NO>*<RO233> +! + K234*<NO>*<RO242> +! + K238*<NO>*<RO234> +! + K241*<NO>*<RO243> +! + K245*<NO>*<RO235> +! + K248*<NO>*<RO244> +! + K252*<NO>*<RO236> +! + K255*<NO>*<RO245> +! + K259*<NO>*<RO237> +! + K262*<NO>*<RO246> +! + K266*<NO>*<RO238> +! + K269*<NO>*<RO247> +! + K277*<NO>*<RO248> +! + K285*<NO>*<RO249> +! + K288*<NO>*<RO250> +! + K291*<NO>*<RO251> +! + 2.*K294*<NO>*<RO252> +! + K295*<HO2>*<RO252> +! + K296*<RO2T>*<RO252> +! + K297*<NO>*<RO253> +! + K300*<NO>*<RO254> +! + K309*<NO>*<RO255> +! + K315*<NO>*<RO256> +! + K317*<PAN8> +! + K331*<NO>*<RO257> +! + K340*<NO>*<RO258> +! + K343*<PAN7> +! + K344*<NO>*<RO230> +! + KTC35*<WC_NO2> +! + KTR35*<WR_NO2> ! - K001*<NO2> -! - K030*<O3P>*<NO2> -! - K031*<O3P>*<NO2> -! - K033*<OH>*<NO2> -! - K036*<HO2>*<NO2> -! - K043*<O3>*<NO2> -! - K046*<NO3>*<NO2> -! - K047*<NO3>*<NO2> -! - K083*<PHO>*<NO2> -! - K085*<ADD>*<NO2> -! - K088*<CARBOP>*<NO2> +! - K003*<NO2>*<O> +! - K004*<NO2>*<O> +! - K006*<O3>*<NO2> +! - K009*<NO3>*<NO2> +! - K012*<NO3>*<NO2> +! - K021*<H2O>*<NO2> +! - K022*<OH>*<NO2> +! - K027*<HO2>*<NO2> +! - K103*<NO2>*<RAD1> +! - K104*<NO2>*<RAD2> +! - K105*<NO2>*<RAD3> +! - K106*<NO2>*<RAD4> +! - K107*<NO2>*<RAD5> +! - K108*<NO2>*<RAD6> +! - K109*<NO2>*<RAD7> +! - K126*<NO2>*<RO26> +! - K127*<NO2>*<RO28> +! - K128*<NO2>*<RO239> +! - K129*<NO2>*<RO248> +! - K130*<NO2>*<RO250> +! - K131*<NO2>*<RO254> +! - K132*<NO2>*<RO255> +! - K133*<NO2>*<RO257> +! - K134*<NO2>*<RO258> +! - K316*<NO2>*<RO256> +! - K321*<NO2>*<RAD8> ! - KTC4*<NO2> ! - KTR4*<NO2> -! terms for NO3: -! + 0.35*K006*<HNO4> -! + K031*<O3P>*<NO2> -! + K040*<OH>*<HNO3> -! + K043*<O3>*<NO2> -! + K048*<N2O5> -! + 0.71893*K070*<PAN>*<OH> -! + 0.60*K078*<PAN>*<NO3> -! + KTC25*<WC_NO3> -! + KTR25*<WR_NO3> -! - K007*<NO3> -! - K008*<NO3> -! - K034*<OH>*<NO3> -! - K038*<HO2>*<NO3> -! - K045*<NO3>*<NO> -! - K046*<NO3>*<NO2> -! - K047*<NO3>*<NO2> -! - K049*<NO3>*<NO3> -! - K049*<NO3>*<NO3> -! - K072*<HCHO>*<NO3> -! - K073*<ALD>*<NO3> -! - K074*<CARBO>*<NO3> -! - K075*<ARO>*<NO3> -! - K076*<ALKE>*<NO3> -! - K077*<BIO>*<NO3> -! - K078*<PAN>*<NO3> -! - K119*<MO2>*<NO3> -! - K120*<ALKAP>*<NO3> -! - K121*<ALKEP>*<NO3> -! - K122*<BIOP>*<NO3> -! - K123*<AROP>*<NO3> -! - K124*<CARBOP>*<NO3> -! - K125*<OLN>*<NO3> -! - K131*<XO2>*<NO3> -! - KTC5*<NO3> -! - KTR5*<NO3> -! terms for N2O5: -! + K047*<NO3>*<NO2> -! + KTC26*<WC_N2O5> -! + KTR26*<WR_N2O5> -! - K048*<N2O5> -! - KTC6*<N2O5> -! - KTR6*<N2O5> +! terms for O3: +! + K002*<O2>*<O> +! + K081*<NO3>*<ARAL> +! + TPK%CF39*K082*<OH>*<ARAL> +! + K142*<HO2>*<RO26> +! + K148*<HO2>*<RO28> +! + K166*<HO2>*<RO239> +! + K279*<HO2>*<RO248> +! + K289*<HO2>*<RO250> +! + K301*<HO2>*<RO254> +! + K303*<OH>*<RPR5> +! + 1.0000011*K306*<OH>*<RPRL> +! + K310*<HO2>*<RO255> +! + K318*<HO2>*<RO256> +! + K322*<OH>*<RPR7> +! + 1.0000005*K323*<OH>*<RPG7> +! + K326*<OH>*<RP11> +! + K332*<HO2>*<RO257> +! + 1.0000000*K334*<OH>*<RPG3> +! + 1.0000000*K335*<OH>*<RPG2> +! + K337*<OH>*<RP18> +! + K341*<HO2>*<RO258> +! + KTC32*<WC_O3> +! + KTR32*<WR_O3> +! - K005*<O3>*<NO> +! - K006*<O3>*<NO2> +! - K015*<O3> +! - K016*<O3> +! - K025*<OH>*<O3> +! - K030*<HO2>*<O3> +! - K034*<O3>*<O> +! - K051*<O3>*<ETHE> +! - K056*<O3>*<OLEL> +! - K066*<O3>*<ISOP> +! - K076*<O3>*<OLEH> +! - K086*<O3>*<BIOL> +! - K090*<O3>*<BIOH> +! - K281*<O3>*<MVK> +! - K282*<O3>*<MCR> +! - KTC1*<O3> +! - KTR1*<O3> ! terms for HONO: -! + K032*<OH>*<NO> -! + K085*<ADD>*<NO2> -! + KTC27*<WC_HONO> -! + KTR27*<WR_HONO> -! - K004*<HONO> +! + K019*<OH>*<NO> +! + 0.5*K021*<H2O>*<NO2> +! + KTC38*<WC_HONO> +! + KTR38*<WR_HONO> +! - K020*<HONO> ! - K039*<OH>*<HONO> ! - KTC7*<HONO> ! - KTR7*<HONO> ! terms for HNO3: -! + K033*<OH>*<NO2> -! + 0.3*K038*<HO2>*<NO3> -! + K072*<HCHO>*<NO3> -! + K073*<ALD>*<NO3> -! + 0.91567*K074*<CARBO>*<NO3> -! + K075*<ARO>*<NO3> -! + KTC28*<WC_HNO3> -! + KTR28*<WR_HNO3> -! - K005*<HNO3> -! - K040*<OH>*<HNO3> +! + 2.*K011*<H2O>*<N2O5> +! + 0.5*K021*<H2O>*<NO2> +! + K022*<OH>*<NO2> +! + 0.2*K033*<HO2>*<NO3> +! + K047*<NO3>*<HCHO> +! + K061*<NO3>*<ALD2> +! + K072*<NO3>*<AROO> +! + K081*<NO3>*<ARAL> +! + TPK%CF46*K275*<NO3>*<MCR> +! + K278*<NO3>*<MGLY> +! + K307*<NO3>*<RPR1> +! + K313*<NO3>*<RPR3> +! + K320*<NO3>*<RPR4> +! + K327*<NO3>*<RPR8> +! + K338*<NO3>*<RP16> +! + KTC39*<WC_HNO3> +! + KTR39*<WR_HNO3> +! - K023*<OH>*<HNO3> ! - KTC8*<HNO3> ! - KTR8*<HNO3> ! terms for HNO4: -! + K036*<HO2>*<NO2> -! + KTC29*<WC_HNO4> -! + KTR29*<WR_HNO4> -! - K006*<HNO4> -! - K037*<HNO4> -! - K041*<OH>*<HNO4> +! + K027*<HO2>*<NO2> +! + KTC40*<WC_HNO4> +! + KTR40*<WR_HNO4> +! - K028*<HNO4> +! - K029*<OH>*<HNO4> ! - KTC9*<HNO4> ! - KTR9*<HNO4> +! terms for N2O5: +! + K009*<NO3>*<NO2> +! + KTC37*<WC_N2O5> +! + KTR37*<WR_N2O5> +! - K010*<N2O5> +! - K011*<H2O>*<N2O5> +! - KTC6*<N2O5> +! - KTR6*<N2O5> +! terms for NO3: +! + K004*<NO2>*<O> +! + K006*<O3>*<NO2> +! + K010*<N2O5> +! + K023*<OH>*<HNO3> +! + KTC36*<WC_NO3> +! + KTR36*<WR_NO3> +! - K007*<NO3>*<NO> +! - K009*<NO3>*<NO2> +! - K012*<NO3>*<NO2> +! - K013*<NO3> +! - K014*<NO3> +! - K033*<HO2>*<NO3> +! - K040*<OH>*<NO3> +! - K041*<NO3>*<NO3> +! - K041*<NO3>*<NO3> +! - K047*<NO3>*<HCHO> +! - K050*<NO3>*<ETHE> +! - K055*<NO3>*<OLEL> +! - K061*<NO3>*<ALD2> +! - K065*<NO3>*<ISOP> +! - K072*<NO3>*<AROO> +! - K075*<NO3>*<OLEH> +! - K081*<NO3>*<ARAL> +! - K085*<NO3>*<BIOL> +! - K089*<NO3>*<BIOH> +! - K275*<NO3>*<MCR> +! - K278*<NO3>*<MGLY> +! - K307*<NO3>*<RPR1> +! - K313*<NO3>*<RPR3> +! - K320*<NO3>*<RPR4> +! - K327*<NO3>*<RPR8> +! - K338*<NO3>*<RP16> +! - KTC5*<NO3> +! - KTR5*<NO3> ! terms for NH3: -! + KTC30*<WC_NH3> -! + KTR30*<WR_NH3> -! - K050*<NH3>*<OH> +! + KTC41*<WC_NH3> +! + KTR41*<WR_NH3> +! - K345*<OH>*<NH3> ! - KTC10*<NH3> ! - KTR10*<NH3> +! terms for HO2: +! + 0.1*K020*<HONO> +! + K024*<OH>*<CO> +! + K025*<OH>*<O3> +! + K028*<HNO4> +! + K035*<OH>*<SO2> +! + K037*<OH>*<H2O2> +! + K040*<OH>*<NO3> +! + 2.0*K044*<HCHO> +! + K046*<OH>*<HCHO> +! + K047*<NO3>*<HCHO> +! + K048*<OH>*<MEOH> +! + 0.06*K051*<O3>*<ETHE> +! + K052*<O>*<ETHE> +! + TPK%CF1*K053*<OH>*<ETOH> +! + 0.28*K056*<O3>*<OLEL> +! + K059*<ALD2> +! + 0.366*K066*<O3>*<ISOP> +! + 0.16*K073*<OH>*<AROO> +! + 0.28*K076*<O3>*<OLEH> +! + 0.16*K079*<OH>*<AROL> +! + 0.16*K080*<OH>*<AROH> +! + TPK%CF48*K082*<OH>*<ARAL> +! + 0.16*K083*<OH>*<ARAC> +! + 0.445*K086*<O3>*<BIOL> +! + 0.16*K092*<OH>*<PAH> +! + K094*<HO2>*<RO2T> +! + K110*<NO>*<RO21> +! + K111*<RO2T>*<RO21> +! + K112*<HO2>*<RO21> +! + K113*<NO>*<RO22> +! + K114*<RO2T>*<RO22> +! + K115*<HO2>*<RO22> +! + K117*<RO2T>*<RO23> +! + K118*<HO2>*<RO23> +! + K119*<NO>*<RO24> +! + K120*<RO2T>*<RO24> +! + K121*<HO2>*<RO24> +! + TPK%CF4*K122*<NO>*<RO25> +! + K123*<RO2T>*<RO25> +! + K124*<HO2>*<RO25> +! + TPK%CF6*K150*<NO>*<RO29> +! + K151*<RO2T>*<RO29> +! + K152*<HO2>*<RO29> +! + K153*<NO>*<RO210> +! + K154*<RO2T>*<RO210> +! + K155*<HO2>*<RO210> +! + K171*<NO>*<RO215> +! + K172*<RO2T>*<RO215> +! + K173*<HO2>*<RO215> +! + TPK%CF22*K177*<NO>*<RO217> +! + K178*<RO2T>*<RO217> +! + K179*<HO2>*<RO217> +! + TPK%CF20*K180*<NO>*<RO218> +! + K181*<RO2T>*<RO218> +! + K182*<HO2>*<RO218> +! + TPK%CF24*K189*<NO>*<RO221> +! + K190*<RO2T>*<RO221> +! + K191*<HO2>*<RO221> +! + TPK%CF42*K192*<NO>*<RO222> +! + K193*<RO2T>*<RO222> +! + K194*<HO2>*<RO222> +! + TPK%CF44*K195*<NO>*<RO223> +! + K196*<RO2T>*<RO223> +! + K197*<HO2>*<RO223> +! + TPK%CF26*K198*<NO>*<RO224> +! + K199*<RO2T>*<RO224> +! + K200*<HO2>*<RO224> +! + TPK%CF28*K207*<NO>*<RO227> +! + K208*<RO2T>*<RO227> +! + K209*<HO2>*<RO227> +! + TPK%CF32*K221*<NO>*<RO231> +! + K222*<RO2T>*<RO231> +! + K223*<HO2>*<RO231> +! + TPK%CF36*K227*<NO>*<RO241> +! + K228*<RO2T>*<RO241> +! + K229*<HO2>*<RO241> +! + K231*<NO>*<RO233> +! + K232*<RO2T>*<RO233> +! + K233*<HO2>*<RO233> +! + K234*<NO>*<RO242> +! + K235*<RO2T>*<RO242> +! + K236*<HO2>*<RO242> +! + K238*<NO>*<RO234> +! + K239*<RO2T>*<RO234> +! + K240*<HO2>*<RO234> +! + K241*<NO>*<RO243> +! + K242*<RO2T>*<RO243> +! + K243*<HO2>*<RO243> +! + K245*<NO>*<RO235> +! + K246*<RO2T>*<RO235> +! + K247*<HO2>*<RO235> +! + K248*<NO>*<RO244> +! + K249*<RO2T>*<RO244> +! + K250*<HO2>*<RO244> +! + K252*<NO>*<RO236> +! + K253*<RO2T>*<RO236> +! + K254*<HO2>*<RO236> +! + K255*<NO>*<RO245> +! + K256*<RO2T>*<RO245> +! + K257*<HO2>*<RO245> +! + K259*<NO>*<RO237> +! + K260*<RO2T>*<RO237> +! + K261*<HO2>*<RO237> +! + K262*<NO>*<RO246> +! + K263*<RO2T>*<RO246> +! + K264*<HO2>*<RO246> +! + K266*<NO>*<RO238> +! + K267*<RO2T>*<RO238> +! + K268*<HO2>*<RO238> +! + K269*<NO>*<RO247> +! + K270*<RO2T>*<RO247> +! + K271*<HO2>*<RO247> +! + K276*<MGLY> +! + 0.28*K281*<O3>*<MVK> +! + 0.41*K282*<O3>*<MCR> +! + 0.15*K284*<O>*<MCR> +! + K285*<NO>*<RO249> +! + K286*<RO2T>*<RO249> +! + K287*<HO2>*<RO249> +! + K291*<NO>*<RO251> +! + K292*<HO2>*<RO251> +! + K293*<RO2T>*<RO251> +! + K300*<NO>*<RO254> +! + K302*<RO2T>*<RO254> +! + K308*<RPR1> +! + 2.*K314*<RPR3> +! + K315*<NO>*<RO256> +! + K319*<RO2T>*<RO256> +! + K325*<OH>*<RP10> +! + K329*<RPR8> +! + K330*<RPR8> +! + K339*<RP16> +! + K347*<OH>*<ORA1> +! + KTC43*<WC_HO2> +! + KTR43*<WR_HO2> +! - K026*<HO2>*<NO> +! - K027*<HO2>*<NO2> +! - K030*<HO2>*<O3> +! - K031*<HO2>*<HO2> +! - K031*<HO2>*<HO2> +! - K032*<HO2>*<H2O>*<HO2> +! - K032*<HO2>*<H2O>*<HO2> +! - K033*<HO2>*<NO3> +! - K042*<HO2>*<OH> +! - K094*<HO2>*<RO2T> +! - K112*<HO2>*<RO21> +! - K115*<HO2>*<RO22> +! - K118*<HO2>*<RO23> +! - K121*<HO2>*<RO24> +! - K124*<HO2>*<RO25> +! - K142*<HO2>*<RO26> +! - K146*<HO2>*<RO27> +! - K148*<HO2>*<RO28> +! - K152*<HO2>*<RO29> +! - K155*<HO2>*<RO210> +! - K158*<HO2>*<RO211> +! - K161*<HO2>*<RO212> +! - K164*<HO2>*<RO213> +! - K166*<HO2>*<RO239> +! - K170*<HO2>*<RO214> +! - K173*<HO2>*<RO215> +! - K176*<HO2>*<RO216> +! - K179*<HO2>*<RO217> +! - K182*<HO2>*<RO218> +! - K185*<HO2>*<RO219> +! - K188*<HO2>*<RO220> +! - K191*<HO2>*<RO221> +! - K194*<HO2>*<RO222> +! - K197*<HO2>*<RO223> +! - K200*<HO2>*<RO224> +! - K203*<HO2>*<RO225> +! - K206*<HO2>*<RO226> +! - K209*<HO2>*<RO227> +! - K212*<HO2>*<RO228> +! - K215*<HO2>*<RO229> +! - K218*<HO2>*<RO240> +! - K220*<HO2>*<RO230> +! - K223*<HO2>*<RO231> +! - K226*<HO2>*<RO232> +! - K229*<HO2>*<RO241> +! - K233*<HO2>*<RO233> +! - K236*<HO2>*<RO242> +! - K240*<HO2>*<RO234> +! - K243*<HO2>*<RO243> +! - K247*<HO2>*<RO235> +! - K250*<HO2>*<RO244> +! - K254*<HO2>*<RO236> +! - K257*<HO2>*<RO245> +! - K261*<HO2>*<RO237> +! - K264*<HO2>*<RO246> +! - K268*<HO2>*<RO238> +! - K271*<HO2>*<RO247> +! - K279*<HO2>*<RO248> +! - K287*<HO2>*<RO249> +! - K289*<HO2>*<RO250> +! - K292*<HO2>*<RO251> +! - K295*<HO2>*<RO252> +! - K298*<HO2>*<RO253> +! - K301*<HO2>*<RO254> +! - K310*<HO2>*<RO255> +! - K318*<HO2>*<RO256> +! - K332*<HO2>*<RO257> +! - K341*<HO2>*<RO258> +! - KTC12*<HO2> +! - KTR12*<HO2> +! terms for CO: +! + K044*<HCHO> +! + K045*<HCHO> +! + K046*<OH>*<HCHO> +! + K047*<NO3>*<HCHO> +! + 0.315*K051*<O3>*<ETHE> +! + 0.6*K052*<O>*<ETHE> +! + 0.56*K056*<O3>*<OLEL> +! + K059*<ALD2> +! + 0.461*K066*<O3>*<ISOP> +! + 0.56*K076*<O3>*<OLEH> +! + 0.445*K086*<O3>*<BIOL> +! + 0.445*K090*<O3>*<BIOH> +! + K119*<NO>*<RO24> +! + K120*<RO2T>*<RO24> +! + K121*<HO2>*<RO24> +! + K276*<MGLY> +! + 0.56*K281*<O3>*<MVK> +! + 0.41*K282*<O3>*<MCR> +! + 0.15*K284*<O>*<MCR> +! + K300*<NO>*<RO254> +! + K302*<RO2T>*<RO254> +! + K308*<RPR1> +! + K314*<RPR3> +! + K329*<RPR8> +! + 2.*K339*<RP16> +! + K340*<NO>*<RO258> +! + K342*<RO2T>*<RO258> +! - K024*<OH>*<CO> +! terms for H2O2: +! + K031*<HO2>*<HO2> +! + K032*<HO2>*<H2O>*<HO2> +! + 0.055*K086*<O3>*<BIOL> +! + 0.055*K090*<O3>*<BIOH> +! + KTC33*<WC_H2O2> +! + KTR33*<WR_H2O2> +! - K036*<H2O2> +! - K037*<OH>*<H2O2> +! - KTC2*<H2O2> +! - KTR2*<H2O2> ! terms for SO2: -! + KTC34*<WC_SO2> -! + KTR34*<WR_SO2> -! - K052*<OH>*<SO2> +! + KTC45*<WC_SO2> +! + KTR45*<WR_SO2> +! - K035*<OH>*<SO2> ! - KTC14*<SO2> ! - KTR14*<SO2> -! terms for SULF: -! + K052*<OH>*<SO2> -! + KTC35*<WC_SULF> -! + KTR35*<WR_SULF> -! - K132*<SULF> -! - KTC15*<SULF> -! - KTR15*<SULF> -! terms for CO: -! + K010*<HCHO> -! + K011*<HCHO> -! + K012*<ALD> -! + 0.91924*K016*<CARBO> -! + 0.01*K054*<BIO>*<O3P> -! + 0.00878*K058*<ALKA>*<OH> -! + K062*<HCHO>*<OH> -! + 1.01732*K065*<CARBO>*<OH> -! + K072*<HCHO>*<NO3> -! + 1.33723*K074*<CARBO>*<NO3> -! + 0.35120*K079*<ALKE>*<O3> -! + 0.36000*K080*<BIO>*<O3> -! + 0.64728*K081*<CARBO>*<O3> -! + 0.13*K082*<PAN>*<O3> -! - K053*<CO>*<OH> +! terms for H2SO4: +! + K035*<OH>*<SO2> +! + KTC46*<WC_H2SO4> +! + KTR46*<WR_H2SO4> +! - K346*<H2SO4> +! - KTC15*<H2SO4> +! - KTR15*<H2SO4> ! terms for OH: -! + K004*<HONO> -! + K005*<HNO3> -! + 0.35*K006*<HNO4> -! + K009*<H2O2> -! + K009*<H2O2> -! + K013*<OP1> -! + K014*<OP2> -! + K022*<O1D>*<H2O> -! + K022*<O1D>*<H2O> -! + K024*<O3>*<HO2> -! + K035*<HO2>*<NO> -! + 0.7*K038*<HO2>*<NO3> -! + 0.02*K054*<BIO>*<O3P> -! + 0.00878*K058*<ALKA>*<OH> -! + 0.35*K068*<OP1>*<OH> -! + 0.44925*K069*<OP2>*<OH> -! + 0.39435*K079*<ALKE>*<O3> -! + 0.28000*K080*<BIO>*<O3> -! + 0.20595*K081*<CARBO>*<O3> -! + 0.036*K082*<PAN>*<O3> -! + K087*<ADD>*<O3> -! + KTC31*<WC_OH> -! + KTR31*<WR_OH> -! - K023*<O3>*<OH> -! - K025*<OH>*<HO2> -! - K026*<H2O2>*<OH> -! - K032*<OH>*<NO> -! - K033*<OH>*<NO2> -! - K034*<OH>*<NO3> +! + K017*<H2O>*<OSD> +! + K017*<H2O>*<OSD> +! + 0.9*K020*<HONO> +! + K026*<HO2>*<NO> +! + K030*<HO2>*<O3> +! + 0.8*K033*<HO2>*<NO3> +! + 2.*K036*<H2O2> +! + 0.06*K051*<O3>*<ETHE> +! + 0.36*K056*<O3>*<OLEL> +! + 0.664*K066*<O3>*<ISOP> +! + 0.36*K076*<O3>*<OLEH> +! + 0.89*K086*<O3>*<BIOL> +! + 0.89*K090*<O3>*<BIOH> +! + K112*<HO2>*<RO21> +! + K115*<HO2>*<RO22> +! + K118*<HO2>*<RO23> +! + K121*<HO2>*<RO24> +! + K124*<HO2>*<RO25> +! + K146*<HO2>*<RO27> +! + K152*<HO2>*<RO29> +! + K155*<HO2>*<RO210> +! + K158*<HO2>*<RO211> +! + K161*<HO2>*<RO212> +! + K164*<HO2>*<RO213> +! + K170*<HO2>*<RO214> +! + K173*<HO2>*<RO215> +! + K176*<HO2>*<RO216> +! + K179*<HO2>*<RO217> +! + K182*<HO2>*<RO218> +! + K185*<HO2>*<RO219> +! + K188*<HO2>*<RO220> +! + K191*<HO2>*<RO221> +! + K194*<HO2>*<RO222> +! + K197*<HO2>*<RO223> +! + K200*<HO2>*<RO224> +! + K203*<HO2>*<RO225> +! + K206*<HO2>*<RO226> +! + K209*<HO2>*<RO227> +! + K212*<HO2>*<RO228> +! + K215*<HO2>*<RO229> +! + K218*<HO2>*<RO240> +! + K220*<HO2>*<RO230> +! + K223*<HO2>*<RO231> +! + K226*<HO2>*<RO232> +! + K229*<HO2>*<RO241> +! + K233*<HO2>*<RO233> +! + K236*<HO2>*<RO242> +! + K240*<HO2>*<RO234> +! + K243*<HO2>*<RO243> +! + K247*<HO2>*<RO235> +! + K250*<HO2>*<RO244> +! + K254*<HO2>*<RO236> +! + K257*<HO2>*<RO245> +! + K261*<HO2>*<RO237> +! + K264*<HO2>*<RO246> +! + K268*<HO2>*<RO238> +! + K271*<HO2>*<RO247> +! + 0.36*K281*<O3>*<MVK> +! + 0.82*K282*<O3>*<MCR> +! + K287*<HO2>*<RO249> +! + K293*<RO2T>*<RO251> +! + K296*<RO2T>*<RO252> +! + K299*<RO2T>*<RO253> +! + K339*<RP16> +! + K340*<NO>*<RO258> +! + K342*<RO2T>*<RO258> +! + KTC42*<WC_OH> +! + KTR42*<WR_OH> +! - K019*<OH>*<NO> +! - K022*<OH>*<NO2> +! - K023*<OH>*<HNO3> +! - K024*<OH>*<CO> +! - K025*<OH>*<O3> +! - K029*<OH>*<HNO4> +! - K035*<OH>*<SO2> +! - K037*<OH>*<H2O2> ! - K039*<OH>*<HONO> -! - K040*<OH>*<HNO3> -! - K041*<OH>*<HNO4> -! - K050*<NH3>*<OH> -! - K051*<OH>*<H2> -! - K052*<OH>*<SO2> -! - K053*<CO>*<OH> -! - K056*<CH4>*<OH> -! - K057*<ETH>*<OH> -! - K058*<ALKA>*<OH> -! - K059*<ALKE>*<OH> -! - K060*<BIO>*<OH> -! - K061*<ARO>*<OH> -! - K062*<HCHO>*<OH> -! - K063*<ALD>*<OH> -! - K064*<KET>*<OH> -! - K065*<CARBO>*<OH> -! - K066*<ORA1>*<OH> -! - K067*<ORA2>*<OH> -! - K068*<OP1>*<OH> -! - K069*<OP2>*<OH> -! - K070*<PAN>*<OH> -! - K071*<ONIT>*<OH> +! - K040*<OH>*<NO3> +! - K042*<HO2>*<OH> +! - K043*<OH>*<CH4> +! - K046*<OH>*<HCHO> +! - K048*<OH>*<MEOH> +! - K049*<OH>*<ETHE> +! - K053*<OH>*<ETOH> +! - K054*<OH>*<OLEL> +! - K058*<OH>*<ALKL> +! - K060*<OH>*<ALD2> +! - K062*<OH>*<KETL> +! - K064*<OH>*<ISOP> +! - K068*<OH>*<MTBE> +! - K069*<OH>*<ALCH> +! - K070*<OH>*<KETH> +! - K073*<OH>*<AROO> +! - K074*<OH>*<OLEH> +! - K078*<OH>*<ALKM> +! - K079*<OH>*<AROL> +! - K080*<OH>*<AROH> +! - K082*<OH>*<ARAL> +! - K083*<OH>*<ARAC> +! - K084*<OH>*<BIOL> +! - K088*<OH>*<BIOH> +! - K092*<OH>*<PAH> +! - K093*<OH>*<ALKH> +! - K272*<OH>*<MVK> +! - K273*<OH>*<MCR> +! - K274*<OH>*<MGLY> +! - K303*<OH>*<RPR5> +! - K304*<OH>*<RPR1> +! - K305*<OH>*<RP16> +! - K306*<OH>*<RPRL> +! - K312*<OH>*<RPR3> +! - K322*<OH>*<RPR7> +! - K323*<OH>*<RPG7> +! - K324*<OH>*<RPR8> +! - K325*<OH>*<RP10> +! - K326*<OH>*<RP11> +! - K334*<OH>*<RPG3> +! - K335*<OH>*<RPG2> +! - K337*<OH>*<RP18> +! - K345*<OH>*<NH3> +! - K347*<OH>*<ORA1> +! - K348*<OH>*<ORA2> +! - K349*<OH>*<ACID> ! - KTC11*<OH> ! - KTR11*<OH> -! terms for HO2: -! + 0.65*K006*<HNO4> -! + K011*<HCHO> -! + K011*<HCHO> -! + K012*<ALD> -! + K013*<OP1> -! + 0.96205*K014*<OP2> -! + 0.75830*K016*<CARBO> -! + K017*<ONIT> -! + K023*<O3>*<OH> -! + K026*<H2O2>*<OH> -! + K034*<OH>*<NO3> -! + K037*<HNO4> -! + K051*<OH>*<H2> -! + K052*<OH>*<SO2> -! + K053*<CO>*<OH> -! + 0.28*K054*<BIO>*<O3P> -! + 0.12793*K058*<ALKA>*<OH> -! + 0.10318*K061*<ARO>*<OH> -! + K062*<HCHO>*<OH> -! + 0.51208*K065*<CARBO>*<OH> -! + K066*<ORA1>*<OH> -! + 0.02915*K069*<OP2>*<OH> -! + 0.28107*K070*<PAN>*<OH> -! + K072*<HCHO>*<NO3> -! + 0.63217*K074*<CARBO>*<NO3> -! + 0.23451*K079*<ALKE>*<O3> -! + 0.30000*K080*<BIO>*<O3> -! + 0.28441*K081*<CARBO>*<O3> -! + 0.08*K082*<PAN>*<O3> -! + 0.02*K086*<ADD>*<O2> -! + K090*<MO2>*<NO> -! + 0.74265*K091*<ALKAP>*<NO> -! + K092*<ALKEP>*<NO> -! + 0.84700*K093*<BIOP>*<NO> -! + 0.95115*K094*<AROP>*<NO> -! + 0.12334*K095*<CARBOP>*<NO> -! + 0.18401*K096*<OLN>*<NO> -! + 0.66*K104*<MO2>*<MO2> -! + 0.98383*K105*<ALKAP>*<MO2> -! + K106*<ALKEP>*<MO2> -! + 1.00000*K107*<BIOP>*<MO2> -! + 1.02767*K108*<AROP>*<MO2> -! + 0.82998*K109*<CARBOP>*<MO2> -! + 0.67560*K110*<OLN>*<MO2> -! + 0.48079*K111*<ALKAP>*<CARBOP> -! + 0.50078*K112*<ALKEP>*<CARBOP> -! + 0.50600*K113*<BIOP>*<CARBOP> -! + K114*<AROP>*<CARBOP> -! + 0.07566*K115*<CARBOP>*<CARBOP> -! + 0.17599*K116*<OLN>*<CARBOP> -! + K117*<OLN>*<OLN> -! + 0.00000*K118*<OLN>*<OLN> -! + K119*<MO2>*<NO3> -! + 0.81290*K120*<ALKAP>*<NO3> -! + K121*<ALKEP>*<NO3> -! + K122*<BIOP>*<NO3> -! + K123*<AROP>*<NO3> -! + 0.04915*K124*<CARBOP>*<NO3> -! + 0.25928*K125*<OLN>*<NO3> -! + K127*<XO2>*<MO2> -! + KTC32*<WC_HO2> -! + KTR32*<WR_HO2> -! - K024*<O3>*<HO2> -! - K025*<OH>*<HO2> -! - K027*<HO2>*<HO2> -! - K027*<HO2>*<HO2> -! - K028*<HO2>*<HO2>*<H2O> -! - K028*<HO2>*<HO2>*<H2O> -! - K035*<HO2>*<NO> -! - K036*<HO2>*<NO2> -! - K038*<HO2>*<NO3> -! - K084*<PHO>*<HO2> -! - K097*<MO2>*<HO2> -! - K098*<ALKAP>*<HO2> -! - K099*<ALKEP>*<HO2> -! - K0100*<BIOP>*<HO2> -! - K0101*<AROP>*<HO2> -! - K0102*<CARBOP>*<HO2> -! - K103*<OLN>*<HO2> -! - K126*<XO2>*<HO2> -! - KTC12*<HO2> -! - KTR12*<HO2> -! terms for CH4: -! + 0.04300*K079*<ALKE>*<O3> -! - K056*<CH4>*<OH> -! terms for ETH: -! + 0.03196*K079*<ALKE>*<O3> -! - K057*<ETH>*<OH> -! terms for ALKA: +! terms for ETHE: ! + 0.0 -! - K058*<ALKA>*<OH> -! terms for ALKE: -! + 0.91868*K054*<BIO>*<O3P> -! + 0.00000*K079*<ALKE>*<O3> -! + 0.37388*K080*<BIO>*<O3> -! + 0.37815*K093*<BIOP>*<NO> -! + 0.48074*K107*<BIOP>*<MO2> -! + 0.24463*K113*<BIOP>*<CARBOP> -! + 0.42729*K122*<BIOP>*<NO3> -! - K059*<ALKE>*<OH> -! - K076*<ALKE>*<NO3> -! - K079*<ALKE>*<O3> -! terms for BIO: +! - K049*<OH>*<ETHE> +! - K050*<NO3>*<ETHE> +! - K051*<O3>*<ETHE> +! - K052*<O>*<ETHE> +! terms for OLEL: +! + 0.054*K066*<O3>*<ISOP> +! + 0.925*K067*<O>*<ISOP> +! + TPK%CF5*K150*<NO>*<RO29> +! + 0.5*K166*<HO2>*<RO239> +! + TPK%CF7*K168*<NO>*<RO214> +! + 0.5*K289*<HO2>*<RO250> +! - K054*<OH>*<OLEL> +! - K055*<NO3>*<OLEL> +! - K056*<O3>*<OLEL> +! - K057*<O>*<OLEL> +! terms for OLEH: ! + 0.0 -! - K054*<BIO>*<O3P> -! - K060*<BIO>*<OH> -! - K077*<BIO>*<NO3> -! - K080*<BIO>*<O3> -! terms for ARO: -! + 0.10670*K083*<PHO>*<NO2> -! + 1.06698*K084*<PHO>*<HO2> -! + K085*<ADD>*<NO2> -! + 0.02*K086*<ADD>*<O2> -! + K087*<ADD>*<O3> -! - K061*<ARO>*<OH> -! - K075*<ARO>*<NO3> +! - K074*<OH>*<OLEH> +! - K075*<NO3>*<OLEH> +! - K076*<O3>*<OLEH> +! - K077*<O>*<OLEH> +! terms for ALKL: +! + 0.1*K056*<O3>*<OLEL> +! + 0.5*K057*<O>*<OLEL> +! + TPK%CF3*K122*<NO>*<RO25> +! + TPK%CF12*K171*<NO>*<RO215> +! + TPK%CF16*K172*<RO2T>*<RO215> +! + TPK%CF16*K173*<HO2>*<RO215> +! - K058*<OH>*<ALKL> +! terms for ALKM: +! + 0.1*K076*<O3>*<OLEH> +! + 0.5*K077*<O>*<OLEH> +! - K078*<OH>*<ALKM> +! terms for ALKH: +! + 0.0 +! - K093*<OH>*<ALKH> +! terms for AROH: +! + 0.0 +! - K080*<OH>*<AROH> +! terms for AROL: +! + 0.0 +! - K079*<OH>*<AROL> +! terms for AROO: +! + 0.16*K073*<OH>*<AROO> +! + 0.16*K079*<OH>*<AROL> +! + 0.16*K080*<OH>*<AROH> +! - K072*<NO3>*<AROO> +! - K073*<OH>*<AROO> +! terms for ARAL: +! + TPK%CF24*K189*<NO>*<RO221> +! + K190*<RO2T>*<RO221> +! + K191*<HO2>*<RO221> +! - K081*<NO3>*<ARAL> +! - K082*<OH>*<ARAL> +! terms for ARAC: +! + K081*<NO3>*<ARAL> +! + TPK%CF39*K082*<OH>*<ARAL> +! - K083*<OH>*<ARAC> +! terms for PAH: +! + 0.0 +! - K092*<OH>*<PAH> ! terms for HCHO: -! + K013*<OP1> -! + 0.06517*K016*<CARBO> -! + 0.05*K054*<BIO>*<O3P> -! + 0.00140*K058*<ALKA>*<OH> -! + 0.00000*K065*<CARBO>*<OH> -! + 0.35*K068*<OP1>*<OH> -! + 0.02915*K069*<OP2>*<OH> -! + 0.57839*K070*<PAN>*<OH> -! + 0.40*K078*<PAN>*<NO3> -! + 0.48290*K079*<ALKE>*<O3> -! + 0.90000*K080*<BIO>*<O3> -! + 0.00000*K081*<CARBO>*<O3> -! + 0.70*K082*<PAN>*<O3> -! + K090*<MO2>*<NO> -! + 0.03002*K091*<ALKAP>*<NO> -! + 1.39870*K092*<ALKEP>*<NO> -! + 0.60600*K093*<BIOP>*<NO> -! + 0.05848*K095*<CARBOP>*<NO> -! + 0.23419*K096*<OLN>*<NO> -! + 1.33*K104*<MO2>*<MO2> -! + 0.80556*K105*<ALKAP>*<MO2> -! + 1.42894*K106*<ALKEP>*<MO2> -! + 1.09000*K107*<BIOP>*<MO2> -! + K108*<AROP>*<MO2> -! + 0.95723*K109*<CARBOP>*<MO2> -! + 0.88625*K110*<OLN>*<MO2> -! + 0.07600*K111*<ALKAP>*<CARBOP> -! + 0.68192*K112*<ALKEP>*<CARBOP> -! + 0.34000*K113*<BIOP>*<CARBOP> -! + 0.03432*K115*<CARBOP>*<CARBOP> -! + 0.13414*K116*<OLN>*<CARBOP> -! + 0.00000*K118*<OLN>*<OLN> -! + K119*<MO2>*<NO3> -! + 0.03142*K120*<ALKAP>*<NO3> -! + 1.40909*K121*<ALKEP>*<NO3> -! + 0.68600*K122*<BIOP>*<NO3> -! + 0.03175*K124*<CARBOP>*<NO3> -! + 0.20740*K125*<OLN>*<NO3> -! + K127*<XO2>*<MO2> -! + KTC36*<WC_HCHO> -! + KTR36*<WR_HCHO> -! - K010*<HCHO> -! - K011*<HCHO> -! - K062*<HCHO>*<OH> -! - K072*<HCHO>*<NO3> -! - KTC16*<HCHO> -! - KTR16*<HCHO> -! terms for ALD: -! + 0.96205*K014*<OP2> -! + 0.20*K017*<ONIT> -! + K055*<CARBO>*<O3P> -! + 0.08173*K058*<ALKA>*<OH> -! + 0.06253*K065*<CARBO>*<OH> -! + 0.07335*K069*<OP2>*<OH> -! + 0.05265*K074*<CARBO>*<NO3> -! + 0.51468*K079*<ALKE>*<O3> -! + 0.00000*K080*<BIO>*<O3> -! + 0.15692*K081*<CARBO>*<O3> -! + 0.33144*K091*<ALKAP>*<NO> -! + 0.42125*K092*<ALKEP>*<NO> -! + 0.00000*K093*<BIOP>*<NO> -! + 0.07368*K095*<CARBOP>*<NO> -! + 1.01182*K096*<OLN>*<NO> -! + 0.56070*K105*<ALKAP>*<MO2> -! + 0.46413*K106*<ALKEP>*<MO2> -! + 0.00000*K107*<BIOP>*<MO2> -! + 0.08295*K109*<CARBOP>*<MO2> -! + 0.41524*K110*<OLN>*<MO2> -! + 0.71461*K111*<ALKAP>*<CARBOP> -! + 0.68374*K112*<ALKEP>*<CARBOP> -! + 0.00000*K113*<BIOP>*<CARBOP> -! + 0.06969*K115*<CARBOP>*<CARBOP> -! + 0.42122*K116*<OLN>*<CARBOP> -! + 0.00000*K118*<OLN>*<OLN> -! + 0.33743*K120*<ALKAP>*<NO3> -! + 0.43039*K121*<ALKEP>*<NO3> -! + 0.00000*K122*<BIOP>*<NO3> -! + 0.02936*K124*<CARBOP>*<NO3> -! + 0.91850*K125*<OLN>*<NO3> -! - K012*<ALD> -! - K063*<ALD>*<OH> -! - K073*<ALD>*<NO3> -! terms for KET: -! + 0.80*K017*<ONIT> -! + 0.03498*K058*<ALKA>*<OH> -! + 0.00853*K065*<CARBO>*<OH> -! + 0.37591*K069*<OP2>*<OH> -! + 0.00632*K074*<CARBO>*<NO3> -! + 0.07377*K079*<ALKE>*<O3> -! + 0.00000*K080*<BIO>*<O3> -! + 0.54531*K091*<ALKAP>*<NO> -! + 0.05220*K092*<ALKEP>*<NO> -! + 0.00000*K093*<BIOP>*<NO> -! + 0.37862*K096*<OLN>*<NO> -! + 0.09673*K105*<ALKAP>*<MO2> -! + 0.03814*K106*<ALKEP>*<MO2> -! + 0.00000*K107*<BIOP>*<MO2> -! + 0.09667*K110*<OLN>*<MO2> -! + 0.18819*K111*<ALKAP>*<CARBOP> -! + 0.06579*K112*<ALKEP>*<CARBOP> -! + 0.00000*K113*<BIOP>*<CARBOP> -! + 0.02190*K115*<CARBOP>*<CARBOP> -! + 0.10822*K116*<OLN>*<CARBOP> -! + 0.00000*K118*<OLN>*<OLN> -! + 0.62978*K120*<ALKAP>*<NO3> -! + 0.02051*K121*<ALKEP>*<NO3> -! + 0.00000*K122*<BIOP>*<NO3> -! + 0.34740*K125*<OLN>*<NO3> -! - K015*<KET> -! - K064*<KET>*<OH> -! terms for CARBO: -! + 0.13255*K054*<BIO>*<O3P> -! + 0.00835*K058*<ALKA>*<OH> -! + 0.16919*K065*<CARBO>*<OH> -! + 0.21863*K070*<PAN>*<OH> -! + 0.10530*K074*<CARBO>*<NO3> -! + 0.00000*K076*<ALKE>*<NO3> -! + 0.91741*K077*<BIO>*<NO3> -! + 0.00000*K079*<ALKE>*<O3> -! + 0.39754*K080*<BIO>*<O3> -! + 1.07583*K081*<CARBO>*<O3> -! + 0.03407*K091*<ALKAP>*<NO> -! + 0.45463*K093*<BIOP>*<NO> -! + 2.06993*K094*<AROP>*<NO> -! + 0.08670*K095*<CARBOP>*<NO> -! + 0.07976*K105*<ALKAP>*<MO2> -! + 0.56064*K107*<BIOP>*<MO2> -! + 1.99461*K108*<AROP>*<MO2> -! + 0.15387*K109*<CARBOP>*<MO2> -! + 0.06954*K111*<ALKAP>*<CARBOP> -! + 0.78591*K113*<BIOP>*<CARBOP> -! + 1.99455*K114*<AROP>*<CARBOP> -! + 0.10777*K115*<CARBOP>*<CARBOP> -! + 0.03531*K120*<ALKAP>*<NO3> -! + 0.61160*K122*<BIOP>*<NO3> -! + 2.81904*K123*<AROP>*<NO3> -! + 0.03455*K124*<CARBOP>*<NO3> -! - K016*<CARBO> -! - K055*<CARBO>*<O3P> -! - K065*<CARBO>*<OH> -! - K074*<CARBO>*<NO3> -! - K081*<CARBO>*<O3> -! terms for ONIT: -! + 0.60*K078*<PAN>*<NO3> -! + K083*<PHO>*<NO2> -! + 0.08459*K091*<ALKAP>*<NO> -! + 0.15300*K093*<BIOP>*<NO> -! + 0.04885*K094*<AROP>*<NO> -! + 0.18401*K096*<OLN>*<NO> -! + K103*<OLN>*<HO2> -! + 0.67560*K110*<OLN>*<MO2> -! + 0.66562*K116*<OLN>*<CARBOP> -! + 2.00*K117*<OLN>*<OLN> -! + 0.00000*K118*<OLN>*<OLN> -! + 0.25928*K125*<OLN>*<NO3> -! - K017*<ONIT> -! - K071*<ONIT>*<OH> -! terms for PAN: -! + 0.28107*K070*<PAN>*<OH> -! + 0.40000*K078*<PAN>*<NO3> -! + 0.30000*K082*<PAN>*<O3> -! + 1.00000*K088*<CARBOP>*<NO2> -! - K070*<PAN>*<OH> -! - K078*<PAN>*<NO3> -! - K082*<PAN>*<O3> -! - K089*<PAN> -! terms for OP1: -! + K097*<MO2>*<HO2> -! + KTC40*<WC_OP1> -! + KTR40*<WR_OP1> -! - K013*<OP1> -! - K068*<OP1>*<OH> -! - KTC20*<OP1> -! - KTR20*<OP1> -! terms for OP2: -! + 0.10149*K081*<CARBO>*<O3> -! + 1.00524*K098*<ALKAP>*<HO2> -! + 1.00524*K099*<ALKEP>*<HO2> -! + 1.00524*K0100*<BIOP>*<HO2> -! + 1.00524*K0101*<AROP>*<HO2> -! + 0.80904*K0102*<CARBOP>*<HO2> -! + 1.00524*K126*<XO2>*<HO2> -! - K014*<OP2> -! - K069*<OP2>*<OH> +! + K048*<OH>*<MEOH> +! + 0.5*K051*<O3>*<ETHE> +! + 0.5*K056*<O3>*<OLEL> +! + 0.5*K066*<O3>*<ISOP> +! + 0.5*K076*<O3>*<OLEH> +! + K110*<NO>*<RO21> +! + K111*<RO2T>*<RO21> +! + K112*<HO2>*<RO21> +! + K113*<NO>*<RO22> +! + K114*<RO2T>*<RO22> +! + K115*<HO2>*<RO22> +! + K116*<NO>*<RO23> +! + K117*<RO2T>*<RO23> +! + K118*<HO2>*<RO23> +! + K119*<NO>*<RO24> +! + K120*<RO2T>*<RO24> +! + K121*<HO2>*<RO24> +! + TPK%CF6*K150*<NO>*<RO29> +! + K151*<RO2T>*<RO29> +! + K152*<HO2>*<RO29> +! + K153*<NO>*<RO210> +! + K154*<RO2T>*<RO210> +! + K155*<HO2>*<RO210> +! + K156*<NO>*<RO211> +! + K157*<RO2T>*<RO211> +! + K158*<HO2>*<RO211> +! + K159*<NO>*<RO212> +! + K160*<RO2T>*<RO212> +! + K161*<HO2>*<RO212> +! + K162*<NO>*<RO213> +! + K163*<RO2T>*<RO213> +! + K164*<HO2>*<RO213> +! + TPK%CF10*K171*<NO>*<RO215> +! + TPK%CF14*K172*<RO2T>*<RO215> +! + TPK%CF14*K173*<HO2>*<RO215> +! + K183*<NO>*<RO219> +! + K184*<RO2T>*<RO219> +! + K185*<HO2>*<RO219> +! + 0.5*K281*<O3>*<MVK> +! + 0.5*K282*<O3>*<MCR> +! + K285*<NO>*<RO249> +! + K286*<RO2T>*<RO249> +! + K287*<HO2>*<RO249> +! + K291*<NO>*<RO251> +! + K292*<HO2>*<RO251> +! + K293*<RO2T>*<RO251> +! + K294*<NO>*<RO252> +! + K295*<HO2>*<RO252> +! + K296*<RO2T>*<RO252> +! + K297*<NO>*<RO253> +! + K298*<HO2>*<RO253> +! + K299*<RO2T>*<RO253> +! + KTC52*<WC_HCHO> +! + KTR52*<WR_HCHO> +! - K044*<HCHO> +! - K045*<HCHO> +! - K046*<OH>*<HCHO> +! - K047*<NO3>*<HCHO> +! - KTC21*<HCHO> +! - KTR21*<HCHO> +! terms for ALD2: +! + TPK%CF1*K053*<OH>*<ETOH> +! + 0.5*K056*<O3>*<OLEL> +! + 0.4*K057*<O>*<OLEL> +! + 0.075*K067*<O>*<ISOP> +! + K113*<NO>*<RO22> +! + K114*<RO2T>*<RO22> +! + K115*<HO2>*<RO22> +! + K116*<NO>*<RO23> +! + K117*<RO2T>*<RO23> +! + K118*<HO2>*<RO23> +! + TPK%CF4*K122*<NO>*<RO25> +! + K123*<RO2T>*<RO25> +! + K124*<HO2>*<RO25> +! + K144*<NO>*<RO27> +! + K145*<RO2T>*<RO27> +! + K146*<HO2>*<RO27> +! + TPK%CF9*K171*<NO>*<RO215> +! + TPK%CF13*K172*<RO2T>*<RO215> +! + TPK%CF13*K173*<HO2>*<RO215> +! + K174*<NO>*<RO216> +! + K175*<RO2T>*<RO216> +! + K176*<HO2>*<RO216> +! + 0.1*K281*<O3>*<MVK> +! + 0.85*K284*<O>*<MCR> +! + KTC53*<WC_ALD2> +! + KTR53*<WR_ALD2> +! - K059*<ALD2> +! - K060*<OH>*<ALD2> +! - K061*<NO3>*<ALD2> +! - KTC22*<ALD2> +! - KTR22*<ALD2> +! terms for KETL: +! + TPK%CF11*K171*<NO>*<RO215> +! + TPK%CF15*K172*<RO2T>*<RO215> +! + TPK%CF15*K173*<HO2>*<RO215> +! + 0.85*K283*<O>*<MVK> +! + KTC55*<WC_KETL> +! + KTR55*<WR_KETL> +! - K062*<OH>*<KETL> +! - K063*<KETL> +! - KTC24*<KETL> +! - KTR24*<KETL> +! terms for KETH: +! + 0.0 +! - K070*<OH>*<KETH> +! - K071*<KETH> +! terms for MEOH: +! + KTC49*<WC_MEOH> +! + KTR49*<WR_MEOH> +! - K048*<OH>*<MEOH> +! - KTC18*<MEOH> +! - KTR18*<MEOH> +! terms for ETOH: +! + KTC50*<WC_ETOH> +! + KTR50*<WR_ETOH> +! - K053*<OH>*<ETOH> +! - KTC19*<ETOH> +! - KTR19*<ETOH> +! terms for ALCH: +! + KTC51*<WC_ALCH> +! + KTR51*<WR_ALCH> +! - K069*<OH>*<ALCH> +! - KTC20*<ALCH> +! - KTR20*<ALCH> +! terms for ISOP: +! + 0.0 +! - K064*<OH>*<ISOP> +! - K065*<NO3>*<ISOP> +! - K066*<O3>*<ISOP> +! - K067*<O>*<ISOP> +! terms for BIOL: +! + 0.0 +! - K084*<OH>*<BIOL> +! - K085*<NO3>*<BIOL> +! - K086*<O3>*<BIOL> +! - K087*<O>*<BIOL> +! terms for BIOH: +! + 0.0 +! - K088*<OH>*<BIOH> +! - K089*<NO3>*<BIOH> +! - K090*<O3>*<BIOH> +! - K091*<O>*<BIOH> +! terms for MTBE: +! + 0.0 +! - K068*<OH>*<MTBE> +! terms for MVK: +! + 0.389*K066*<O3>*<ISOP> +! + TPK%CF6*K150*<NO>*<RO29> +! + K151*<RO2T>*<RO29> +! + K152*<HO2>*<RO29> +! + K156*<NO>*<RO211> +! + K157*<RO2T>*<RO211> +! + K158*<HO2>*<RO211> +! - K272*<OH>*<MVK> +! - K281*<O3>*<MVK> +! - K283*<O>*<MVK> +! terms for MCR: +! + 0.17*K066*<O3>*<ISOP> +! + K153*<NO>*<RO210> +! + K154*<RO2T>*<RO210> +! + K155*<HO2>*<RO210> +! + K159*<NO>*<RO212> +! + K160*<RO2T>*<RO212> +! + K161*<HO2>*<RO212> +! - K273*<OH>*<MCR> +! - K275*<NO3>*<MCR> +! - K282*<O3>*<MCR> +! - K284*<O>*<MCR> +! terms for MGLY: +! + K234*<NO>*<RO242> +! + K235*<RO2T>*<RO242> +! + K236*<HO2>*<RO242> +! + K241*<NO>*<RO243> +! + K242*<RO2T>*<RO243> +! + K243*<HO2>*<RO243> +! + K248*<NO>*<RO244> +! + K249*<RO2T>*<RO244> +! + K250*<HO2>*<RO244> +! + K255*<NO>*<RO245> +! + K256*<RO2T>*<RO245> +! + K257*<HO2>*<RO245> +! + K262*<NO>*<RO246> +! + K263*<RO2T>*<RO246> +! + K264*<HO2>*<RO246> +! + K269*<NO>*<RO247> +! + K270*<RO2T>*<RO247> +! + K271*<HO2>*<RO247> +! + 0.5*K281*<O3>*<MVK> +! + 0.59*K282*<O3>*<MCR> +! + K285*<NO>*<RO249> +! + K286*<RO2T>*<RO249> +! + K287*<HO2>*<RO249> +! + K291*<NO>*<RO251> +! + K292*<HO2>*<RO251> +! + K293*<RO2T>*<RO251> +! + K294*<NO>*<RO252> +! + K295*<HO2>*<RO252> +! + K296*<RO2T>*<RO252> +! + KTC56*<WC_MGLY> +! + KTR56*<WR_MGLY> +! - K274*<OH>*<MGLY> +! - K276*<MGLY> +! - K278*<NO3>*<MGLY> +! - KTC25*<MGLY> +! - KTR25*<MGLY> +! terms for GLY: +! + KTC54*<WC_GLY> +! + KTR54*<WR_GLY> +! - KTC23*<GLY> +! - KTR23*<GLY> ! terms for ORA1: -! + 0.00878*K058*<ALKA>*<OH> -! + 0.15343*K079*<ALKE>*<O3> -! + 0.15000*K080*<BIO>*<O3> -! + 0.10788*K081*<CARBO>*<O3> -! + 0.11*K082*<PAN>*<O3> -! + KTC37*<WC_ORA1> -! + KTR37*<WR_ORA1> -! - K066*<ORA1>*<OH> -! - KTC17*<ORA1> -! - KTR17*<ORA1> +! + 0.185*K051*<O3>*<ETHE> +! + 0.12*K056*<O3>*<OLEL> +! + 0.121*K066*<O3>*<ISOP> +! + 0.12*K281*<O3>*<MVK> +! + 0.09*K282*<O3>*<MCR> +! + KTC57*<WC_ORA1> +! + KTR57*<WR_ORA1> +! - K347*<OH>*<ORA1> +! - KTC26*<ORA1> +! - KTR26*<ORA1> ! terms for ORA2: -! + 0.08143*K079*<ALKE>*<O3> -! + 0.00000*K080*<BIO>*<O3> -! + 0.20595*K081*<CARBO>*<O3> -! + 0.17307*K0102*<CARBOP>*<HO2> -! + 0.13684*K109*<CARBOP>*<MO2> -! + 0.49810*K111*<ALKAP>*<CARBOP> -! + 0.49922*K112*<ALKEP>*<CARBOP> -! + 0.49400*K113*<BIOP>*<CARBOP> -! + 0.09955*K115*<CARBOP>*<CARBOP> -! + 0.48963*K116*<OLN>*<CARBOP> -! + KTC38*<WC_ORA2> -! + KTR38*<WR_ORA2> -! - K067*<ORA2>*<OH> -! - KTC18*<ORA2> -! - KTR18*<ORA2> -! terms for MO2: -! + K012*<ALD> -! + 0.03795*K014*<OP2> -! + K056*<CH4>*<OH> -! + 0.65*K068*<OP1>*<OH> -! + 0.13966*K079*<ALKE>*<O3> -! + 0.03000*K080*<BIO>*<O3> -! + 0.09016*K091*<ALKAP>*<NO> -! + 0.78134*K095*<CARBOP>*<NO> -! + 0.01390*K105*<ALKAP>*<MO2> -! + 0.56031*K109*<CARBOP>*<MO2> -! + 0.51480*K111*<ALKAP>*<CARBOP> -! + 0.50078*K112*<ALKEP>*<CARBOP> -! + 0.50600*K113*<BIOP>*<CARBOP> -! + K114*<AROP>*<CARBOP> -! + 1.66702*K115*<CARBOP>*<CARBOP> -! + 0.51037*K116*<OLN>*<CARBOP> -! + 0.09731*K120*<ALKAP>*<NO3> -! + 0.91910*K124*<CARBOP>*<NO3> -! + K128*<XO2>*<CARBOP> -! + KTC39*<WC_MO2> -! + KTR39*<WR_MO2> -! - K090*<MO2>*<NO> -! - K097*<MO2>*<HO2> -! - K104*<MO2>*<MO2> -! - K104*<MO2>*<MO2> -! - K105*<ALKAP>*<MO2> -! - K106*<ALKEP>*<MO2> -! - K107*<BIOP>*<MO2> -! - K108*<AROP>*<MO2> -! - K109*<CARBOP>*<MO2> -! - K110*<OLN>*<MO2> -! - K119*<MO2>*<NO3> -! - K127*<XO2>*<MO2> -! - KTC19*<MO2> -! - KTR19*<MO2> -! terms for ALKAP: -! + 1.00000*K015*<KET> -! + K057*<ETH>*<OH> -! + 0.87811*K058*<ALKA>*<OH> -! + 0.40341*K069*<OP2>*<OH> -! + 1.00000*K071*<ONIT>*<OH> -! + 0.09815*K079*<ALKE>*<O3> -! + 0.00000*K080*<BIO>*<O3> -! + 0.08187*K091*<ALKAP>*<NO> -! + 0.00385*K105*<ALKAP>*<MO2> -! + 0.00828*K111*<ALKAP>*<CARBOP> -! + 0.08994*K120*<ALKAP>*<NO3> -! - K091*<ALKAP>*<NO> -! - K098*<ALKAP>*<HO2> -! - K105*<ALKAP>*<MO2> -! - K111*<ALKAP>*<CARBOP> -! - K120*<ALKAP>*<NO3> -! terms for ALKEP: -! + 1.02529*K059*<ALKE>*<OH> -! - K092*<ALKEP>*<NO> -! - K099*<ALKEP>*<HO2> -! - K106*<ALKEP>*<MO2> -! - K112*<ALKEP>*<CARBOP> -! - K121*<ALKEP>*<NO3> -! terms for BIOP: -! + 0.00000*K059*<ALKE>*<OH> -! + 1.00000*K060*<BIO>*<OH> -! - K093*<BIOP>*<NO> -! - K0100*<BIOP>*<HO2> -! - K107*<BIOP>*<MO2> -! - K113*<BIOP>*<CARBOP> -! - K122*<BIOP>*<NO3> -! terms for PHO: -! + 0.00276*K061*<ARO>*<OH> -! + K075*<ARO>*<NO3> -! - K083*<PHO>*<NO2> -! - K084*<PHO>*<HO2> -! terms for ADD: -! + 0.93968*K061*<ARO>*<OH> -! - K085*<ADD>*<NO2> -! - K086*<ADD>*<O2> -! - K087*<ADD>*<O3> -! terms for AROP: -! + 0.98*K086*<ADD>*<O2> -! - K094*<AROP>*<NO> -! - K0101*<AROP>*<HO2> -! - K108*<AROP>*<MO2> -! - K114*<AROP>*<CARBOP> -! - K123*<AROP>*<NO3> -! terms for CARBOP: -! + 1.00000*K015*<KET> -! + 0.69622*K016*<CARBO> -! + 1.00000*K063*<ALD>*<OH> -! + 1.00000*K064*<KET>*<OH> -! + 0.51419*K065*<CARBO>*<OH> -! + 0.05413*K069*<OP2>*<OH> -! + 1.00000*K073*<ALD>*<NO3> -! + 0.38881*K074*<CARBO>*<NO3> -! + 0.05705*K079*<ALKE>*<O3> -! + 0.17000*K080*<BIO>*<O3> -! + 0.27460*K081*<CARBO>*<O3> -! + 0.70000*K082*<PAN>*<O3> -! + 1.00000*K089*<PAN> -! + 0.09532*K095*<CARBOP>*<NO> -! + 0.05954*K109*<CARBOP>*<MO2> -! + 0.05821*K115*<CARBOP>*<CARBOP> -! + 0.03175*K124*<CARBOP>*<NO3> -! - K088*<CARBOP>*<NO2> -! - K095*<CARBOP>*<NO> -! - K0102*<CARBOP>*<HO2> -! - K109*<CARBOP>*<MO2> -! - K111*<ALKAP>*<CARBOP> -! - K112*<ALKEP>*<CARBOP> -! - K113*<BIOP>*<CARBOP> -! - K114*<AROP>*<CARBOP> -! - K115*<CARBOP>*<CARBOP> -! - K115*<CARBOP>*<CARBOP> -! - K116*<OLN>*<CARBOP> -! - K124*<CARBOP>*<NO3> -! - K128*<XO2>*<CARBOP> -! terms for OLN: -! + 0.00000*K074*<CARBO>*<NO3> -! + 0.93768*K076*<ALKE>*<NO3> -! + 1.00000*K077*<BIO>*<NO3> -! - K096*<OLN>*<NO> -! - K103*<OLN>*<HO2> -! - K110*<OLN>*<MO2> -! - K116*<OLN>*<CARBOP> -! - K117*<OLN>*<OLN> -! - K117*<OLN>*<OLN> -! - K118*<OLN>*<OLN> -! - K118*<OLN>*<OLN> -! - K125*<OLN>*<NO3> -! terms for XO2: -! + 0.15*K054*<BIO>*<O3P> -! + 0.10318*K061*<ARO>*<OH> -! + 0.10162*K065*<CARBO>*<OH> -! + 0.09333*K069*<OP2>*<OH> -! + K070*<PAN>*<OH> -! + 0.10530*K074*<CARBO>*<NO3> -! + K078*<PAN>*<NO3> -! + 0.00000*K079*<ALKE>*<O3> -! + 0.13000*K080*<BIO>*<O3> -! + 0.13007*K091*<ALKAP>*<NO> -! + 0.02563*K095*<CARBOP>*<NO> -! + 0.13370*K105*<ALKAP>*<MO2> -! + 0.02212*K109*<CARBOP>*<MO2> -! + 0.11306*K111*<ALKAP>*<CARBOP> -! + 0.01593*K115*<CARBOP>*<CARBOP> -! + 0.16271*K120*<ALKAP>*<NO3> -! + 0.01021*K124*<CARBOP>*<NO3> -! - K126*<XO2>*<HO2> -! - K127*<XO2>*<MO2> -! - K128*<XO2>*<CARBOP> -! - K129*<XO2>*<XO2> -! - K129*<XO2>*<XO2> -! - K130*<XO2>*<NO> -! - K131*<XO2>*<NO3> +! + 0.12*K056*<O3>*<OLEL> +! + K142*<HO2>*<RO26> +! + K148*<HO2>*<RO28> +! + 0.5*K166*<HO2>*<RO239> +! + 0.5*K289*<HO2>*<RO250> +! + KTC58*<WC_ORA2> +! + KTR58*<WR_ORA2> +! - K348*<OH>*<ORA2> +! - KTC27*<ORA2> +! - KTR27*<ORA2> +! terms for ACID: +! + 0.12*K076*<O3>*<OLEH> +! + K142*<HO2>*<RO26> +! + K310*<HO2>*<RO255> +! + KTC59*<WC_ACID> +! + KTR59*<WR_ACID> +! - K349*<OH>*<ACID> +! - KTC28*<ACID> +! - KTR28*<ACID> +! terms for UR28: +! + K341*<HO2>*<RO258> +! + KTC62*<WC_UR28> +! + KTR62*<WR_UR28> +! - K364*<UR28> +! - KTC31*<UR28> +! - KTR31*<UR28> +! terms for UR21: +! + K279*<HO2>*<RO248> +! + 0.12*K281*<O3>*<MVK> +! + KTC61*<WC_UR21> +! + KTR61*<WR_UR21> +! - K361*<UR21> +! - KTC30*<UR21> +! - KTR30*<UR21> +! terms for URG2: +! + 0.5562513*K335*<OH>*<RPG2> +! + K337*<OH>*<RP18> +! - K350*<URG2> +! terms for UR26: +! + 0.67*K326*<OH>*<RP11> +! - K363*<UR26> +! terms for RPG2: +! + 0.3000000*K259*<NO>*<RO237> +! + 1.0000000*K260*<RO2T>*<RO237> +! + 0.3000000*K261*<HO2>*<RO237> +! + 0.1191897*K334*<OH>*<RPG3> +! + 0.8808107*K334*<OH>*<RPG3> +! - K335*<OH>*<RPG2> +! terms for RP18: +! + 0.4437492*K335*<OH>*<RPG2> +! - K337*<OH>*<RP18> +! terms for RPG3: +! + 0.3000000*K231*<NO>*<RO233> +! + 1.0000000*K232*<RO2T>*<RO233> +! + 0.3000000*K233*<HO2>*<RO233> +! + 0.3000000*K252*<NO>*<RO236> +! + 1.0000000*K253*<RO2T>*<RO236> +! + 0.3000000*K254*<HO2>*<RO236> +! - K334*<OH>*<RPG3> +! terms for URG4: +! + 5.5000000E-02*K086*<O3>*<BIOL> +! + 1.0000000*K318*<HO2>*<RO256> +! + 1.0000000*K332*<HO2>*<RO257> +! - K351*<URG4> +! terms for UR8: +! + 0.055*K090*<O3>*<BIOH> +! - K358*<UR8> +! terms for UR17: +! + 1.0000000*K204*<NO>*<RO226> +! + 1.0000000*K205*<RO2T>*<RO226> +! + 1.0000000*K206*<HO2>*<RO226> +! - K359*<UR17> +! terms for UR7: +! + 0.055*K090*<O3>*<BIOH> +! + TPK%CFA12*K207*<NO>*<RO227> +! + K208*<RO2T>*<RO227> +! + 0.3*K209*<HO2>*<RO227> +! + 0.3*K210*<NO>*<RO228> +! + 0.3*K211*<RO2T>*<RO228> +! + 0.3*K212*<HO2>*<RO228> +! - K357*<UR7> +! terms for RPR3: +! + 0.055*K086*<O3>*<BIOL> +! + TPK%CFA10*K198*<NO>*<RO224> +! + K199*<RO2T>*<RO224> +! + K200*<HO2>*<RO224> +! + K201*<NO>*<RO225> +! + K202*<RO2T>*<RO225> +! + K203*<HO2>*<RO225> +! - K312*<OH>*<RPR3> +! - K313*<NO3>*<RPR3> +! - K314*<RPR3> +! terms for URG6: +! + TPK%CF21*K177*<NO>*<RO217> +! + TPK%CF43*K195*<NO>*<RO223> +! + 0.4978440*K323*<OH>*<RPG7> +! - K352*<URG6> +! terms for UR22: +! + K321*<NO2>*<RAD8> +! - K362*<UR22> +! terms for URG7: +! + 0.1599999*K083*<OH>*<ARAC> +! + 0.9999993*K108*<NO2>*<RAD6> +! + 0.9999993*K303*<OH>*<RPR5> +! + 0.9979297*K306*<OH>*<RPRL> +! + 0.9999993*K322*<OH>*<RPR7> +! - K353*<URG7> +! terms for RPR4: +! + K103*<NO2>*<RAD1> +! + K104*<NO2>*<RAD2> +! - K320*<NO3>*<RPR4> +! terms for RPR7: +! + TPK%CF44*K195*<NO>*<RO223> +! + K196*<RO2T>*<RO223> +! + K197*<HO2>*<RO223> +! + 2.0714202E-03*K306*<OH>*<RPRL> +! - K322*<OH>*<RPR7> +! terms for RPG7: +! + 1.0000013*K266*<NO>*<RO238> +! + 1.0000013*K267*<RO2T>*<RO238> +! + 1.0000013*K268*<HO2>*<RO238> +! + 0.5021558*K323*<OH>*<RPG7> +! - K323*<OH>*<RPG7> +! terms for URG8: +! + 0.1600000*K092*<OH>*<PAH> +! + 1.0000000*K109*<NO2>*<RAD7> +! + TPK%CF31*K221*<NO>*<RO231> +! - K354*<URG8> +! terms for UR19: +! + TPK%CF32*K221*<NO>*<RO231> +! + K222*<RO2T>*<RO231> +! + K223*<HO2>*<RO231> +! - K360*<UR19> +! terms for URG9: +! + TPK%CFA14*K224*<NO>*<RO232> +! + TPK%CFA16*K227*<NO>*<RO241> +! + TPK%CFA15*K227*<NO>*<RO241> +! + 0.9999996*K228*<RO2T>*<RO241> +! + 0.9999996*K229*<HO2>*<RO241> +! - K355*<URG9> +! terms for AP7: +! + TPK%CFA23*K198*<NO>*<RO224> +! - K365*<AP7> +! terms for URG10: +! + 0.2500000*K087*<O>*<BIOL> +! + 0.7500000*K087*<O>*<BIOL> +! + TPK%CF27*K207*<NO>*<RO227> +! - K356*<URG10> +! terms for RPR1: +! + 0.5*K076*<O3>*<OLEH> +! + 0.4*K077*<O>*<OLEH> +! + K183*<NO>*<RO219> +! + K184*<RO2T>*<RO219> +! + K185*<HO2>*<RO219> +! - K304*<OH>*<RPR1> +! - K307*<NO3>*<RPR1> +! - K308*<RPR1> +! terms for RPR5: +! + K107*<NO2>*<RAD5> +! - K303*<OH>*<RPR5> +! terms for RPR8: +! + K216*<NO>*<RO240> +! + K217*<RO2T>*<RO240> +! + K218*<HO2>*<RO240> +! - K324*<OH>*<RPR8> +! - K327*<NO3>*<RPR8> +! - K329*<RPR8> +! - K330*<RPR8> +! terms for RP10: +! + K234*<NO>*<RO242> +! + K235*<RO2T>*<RO242> +! + K236*<HO2>*<RO242> +! + K241*<NO>*<RO243> +! + K242*<RO2T>*<RO243> +! + K243*<HO2>*<RO243> +! + K248*<NO>*<RO244> +! + K249*<RO2T>*<RO244> +! + K250*<HO2>*<RO244> +! + K255*<NO>*<RO245> +! + K256*<RO2T>*<RO245> +! + K257*<HO2>*<RO245> +! + K262*<NO>*<RO246> +! + K263*<RO2T>*<RO246> +! + K264*<HO2>*<RO246> +! - K325*<OH>*<RP10> +! - K328*<RP10> +! terms for RP11: +! + 0.3*K238*<NO>*<RO234> +! + K239*<RO2T>*<RO234> +! + 0.3*K240*<HO2>*<RO234> +! + 0.5*K245*<NO>*<RO235> +! + K246*<RO2T>*<RO235> +! + K247*<HO2>*<RO235> +! - K326*<OH>*<RP11> +! terms for RP16: +! + K301*<HO2>*<RO254> +! + KTC60*<WC_RP16> +! + KTR60*<WR_RP16> +! - K305*<OH>*<RP16> +! - K338*<NO3>*<RP16> +! - K339*<RP16> +! - KTC29*<RP16> +! - KTR29*<RP16> +! terms for RPRL: +! + 0.9983609*K082*<OH>*<ARAL> +! + TPK%CFA2*K177*<NO>*<RO217> +! + 0.9983609*K178*<RO2T>*<RO217> +! + 0.9983609*K179*<HO2>*<RO217> +! + TPK%CFA7*K192*<NO>*<RO222> +! + 0.9983609*K193*<RO2T>*<RO222> +! + 0.9983609*K194*<HO2>*<RO222> +! + 1.0023998*K269*<NO>*<RO247> +! + 1.0023998*K270*<RO2T>*<RO247> +! + 1.0023998*K271*<HO2>*<RO247> +! - K306*<OH>*<RPRL> +! terms for APAN: +! + K130*<NO2>*<RO250> +! + K133*<NO2>*<RO257> +! - K139*<APAN> +! terms for PAN1: +! + K126*<NO2>*<RO26> +! - K135*<PAN1> +! terms for PAN2: +! + K127*<NO2>*<RO28> +! - K136*<PAN2> +! terms for PAN3: +! + K128*<NO2>*<RO239> +! - K137*<PAN3> +! terms for PAN4: +! + K129*<NO2>*<RO248> +! - K141*<PAN4> +! terms for PAN6: +! + K131*<NO2>*<RO254> +! - K140*<PAN6> +! terms for PAN7: +! + K132*<NO2>*<RO255> +! - K343*<PAN7> +! terms for PAN8: +! + K316*<NO2>*<RO256> +! - K317*<PAN8> +! terms for PN10: +! + K134*<NO2>*<RO258> +! - K138*<PN10> +! terms for RO2T: +! + K043*<OH>*<CH4> +! + K049*<OH>*<ETHE> +! + K050*<NO3>*<ETHE> +! + K052*<O>*<ETHE> +! + TPK%CF2*K053*<OH>*<ETOH> +! + K054*<OH>*<OLEL> +! + K055*<NO3>*<OLEL> +! + 0.28*K056*<O3>*<OLEL> +! + 0.2*K057*<O>*<OLEL> +! + K058*<OH>*<ALKL> +! + K059*<ALD2> +! + K060*<OH>*<ALD2> +! + K061*<NO3>*<ALD2> +! + K062*<OH>*<KETL> +! + 2.*K063*<KETL> +! + K064*<OH>*<ISOP> +! + K065*<NO3>*<ISOP> +! + 0.366*K066*<O3>*<ISOP> +! + K068*<OH>*<MTBE> +! + K069*<OH>*<ALCH> +! + K070*<OH>*<KETH> +! + 2.*K071*<KETH> +! + 0.1*K073*<OH>*<AROO> +! + K074*<OH>*<OLEH> +! + K075*<NO3>*<OLEH> +! + 0.28*K076*<O3>*<OLEH> +! + 0.2*K077*<O>*<OLEH> +! + K078*<OH>*<ALKM> +! + 0.06*K079*<OH>*<AROL> +! + TPK%CF45*K082*<OH>*<ARAL> +! + 0.1*K083*<OH>*<ARAC> +! + K084*<OH>*<BIOL> +! + K085*<NO3>*<BIOL> +! + 0.445*K086*<O3>*<BIOL> +! + K088*<OH>*<BIOH> +! + K089*<NO3>*<BIOH> +! + 0.89*K090*<O3>*<BIOH> +! + 0.1*K092*<OH>*<PAH> +! + K093*<OH>*<ALKH> +! + K096*<RO2T>*<RO2T> +! + K097*<RAD2> +! + K098*<RAD3> +! + K099*<RAD4> +! + K100*<RAD5> +! + K101*<RAD6> +! + K102*<RAD7> +! + K111*<RO2T>*<RO21> +! + K114*<RO2T>*<RO22> +! + K117*<RO2T>*<RO23> +! + K120*<RO2T>*<RO24> +! + K123*<RO2T>*<RO25> +! + K125*<NO>*<RO26> +! + K135*<PAN1> +! + K136*<PAN2> +! + K137*<PAN3> +! + K138*<PN10> +! + 1.0000000*K139*<APAN> +! + K140*<PAN6> +! + K141*<PAN4> +! + 2.*K143*<RO2T>*<RO26> +! + K144*<NO>*<RO27> +! + 2.*K145*<RO2T>*<RO27> +! + K146*<HO2>*<RO27> +! + K147*<NO>*<RO28> +! + 2.*K149*<RO2T>*<RO28> +! + K151*<RO2T>*<RO29> +! + K154*<RO2T>*<RO210> +! + K157*<RO2T>*<RO211> +! + K160*<RO2T>*<RO212> +! + K162*<NO>*<RO213> +! + 2.*K163*<RO2T>*<RO213> +! + K164*<HO2>*<RO213> +! + K165*<NO>*<RO239> +! + 2.*K167*<RO2T>*<RO239> +! + TPK%CF8*K168*<NO>*<RO214> +! + 2.*K169*<RO2T>*<RO214> +! + K170*<HO2>*<RO214> +! + K172*<RO2T>*<RO215> +! + K174*<NO>*<RO216> +! + 2.*K175*<RO2T>*<RO216> +! + K176*<HO2>*<RO216> +! + K178*<RO2T>*<RO217> +! + K181*<RO2T>*<RO218> +! + K184*<RO2T>*<RO219> +! + TPK%CF18*K186*<NO>*<RO220> +! + 2.*K187*<RO2T>*<RO220> +! + K188*<HO2>*<RO220> +! + K190*<RO2T>*<RO221> +! + K193*<RO2T>*<RO222> +! + K196*<RO2T>*<RO223> +! + K199*<RO2T>*<RO224> +! + K202*<RO2T>*<RO225> +! + K204*<NO>*<RO226> +! + 2.*K205*<RO2T>*<RO226> +! + K206*<HO2>*<RO226> +! + K208*<RO2T>*<RO227> +! + K211*<RO2T>*<RO228> +! + TPK%CF30*K213*<NO>*<RO229> +! + 2.*K214*<RO2T>*<RO229> +! + K215*<HO2>*<RO229> +! + K216*<NO>*<RO240> +! + 2.*K217*<RO2T>*<RO240> +! + K218*<HO2>*<RO240> +! + 2.*K219*<RO2T>*<RO230> +! + K220*<HO2>*<RO230> +! + K222*<RO2T>*<RO231> +! + TPK%CF34*K224*<NO>*<RO232> +! + 2.*K225*<RO2T>*<RO232> +! + K226*<HO2>*<RO232> +! + K228*<RO2T>*<RO241> +! + K230*<RO233> +! + K232*<RO2T>*<RO233> +! + K235*<RO2T>*<RO242> +! + K237*<RO234> +! + K239*<RO2T>*<RO234> +! + K242*<RO2T>*<RO243> +! + K244*<RO235> +! + K246*<RO2T>*<RO235> +! + K249*<RO2T>*<RO244> +! + K251*<RO236> +! + K253*<RO2T>*<RO236> +! + K256*<RO2T>*<RO245> +! + K258*<RO237> +! + K260*<RO2T>*<RO237> +! + K263*<RO2T>*<RO246> +! + K265*<RO238> +! + K267*<RO2T>*<RO238> +! + K270*<RO2T>*<RO247> +! + K272*<OH>*<MVK> +! + K273*<OH>*<MCR> +! + K274*<OH>*<MGLY> +! + K275*<NO3>*<MCR> +! + K276*<MGLY> +! + K277*<NO>*<RO248> +! + K278*<NO3>*<MGLY> +! + 2.*K280*<RO2T>*<RO248> +! + 0.28*K281*<O3>*<MVK> +! + 0.41*K282*<O3>*<MCR> +! + 0.3*K283*<O>*<MVK> +! + 0.15*K284*<O>*<MCR> +! + K286*<RO2T>*<RO249> +! + K288*<NO>*<RO250> +! + 2.*K290*<RO2T>*<RO250> +! + K292*<HO2>*<RO251> +! + K295*<HO2>*<RO252> +! + K297*<NO>*<RO253> +! + 2.*K298*<HO2>*<RO253> +! + K299*<RO2T>*<RO253> +! + K302*<RO2T>*<RO254> +! + K304*<OH>*<RPR1> +! + K305*<OH>*<RP16> +! + K307*<NO3>*<RPR1> +! + K308*<RPR1> +! + K309*<NO>*<RO255> +! + 2.*K311*<RO2T>*<RO255> +! + K312*<OH>*<RPR3> +! + K313*<NO3>*<RPR3> +! + K317*<PAN8> +! + K319*<RO2T>*<RO256> +! + K324*<OH>*<RPR8> +! + K327*<NO3>*<RPR8> +! + K329*<RPR8> +! + K330*<RPR8> +! + K331*<NO>*<RO257> +! + 2.*K333*<RO2T>*<RO257> +! + K338*<NO3>*<RP16> +! + K342*<RO2T>*<RO258> +! + K343*<PAN7> +! + K344*<NO>*<RO230> +! - K094*<HO2>*<RO2T> +! - K095*<NO>*<RO2T> +! - K096*<RO2T>*<RO2T> +! - K096*<RO2T>*<RO2T> +! - K111*<RO2T>*<RO21> +! - K114*<RO2T>*<RO22> +! - K117*<RO2T>*<RO23> +! - K120*<RO2T>*<RO24> +! - K123*<RO2T>*<RO25> +! - K143*<RO2T>*<RO26> +! - K145*<RO2T>*<RO27> +! - K149*<RO2T>*<RO28> +! - K151*<RO2T>*<RO29> +! - K154*<RO2T>*<RO210> +! - K157*<RO2T>*<RO211> +! - K160*<RO2T>*<RO212> +! - K163*<RO2T>*<RO213> +! - K167*<RO2T>*<RO239> +! - K169*<RO2T>*<RO214> +! - K172*<RO2T>*<RO215> +! - K175*<RO2T>*<RO216> +! - K178*<RO2T>*<RO217> +! - K181*<RO2T>*<RO218> +! - K184*<RO2T>*<RO219> +! - K187*<RO2T>*<RO220> +! - K190*<RO2T>*<RO221> +! - K193*<RO2T>*<RO222> +! - K196*<RO2T>*<RO223> +! - K199*<RO2T>*<RO224> +! - K202*<RO2T>*<RO225> +! - K205*<RO2T>*<RO226> +! - K208*<RO2T>*<RO227> +! - K211*<RO2T>*<RO228> +! - K214*<RO2T>*<RO229> +! - K217*<RO2T>*<RO240> +! - K219*<RO2T>*<RO230> +! - K222*<RO2T>*<RO231> +! - K225*<RO2T>*<RO232> +! - K228*<RO2T>*<RO241> +! - K232*<RO2T>*<RO233> +! - K235*<RO2T>*<RO242> +! - K239*<RO2T>*<RO234> +! - K242*<RO2T>*<RO243> +! - K246*<RO2T>*<RO235> +! - K249*<RO2T>*<RO244> +! - K253*<RO2T>*<RO236> +! - K256*<RO2T>*<RO245> +! - K260*<RO2T>*<RO237> +! - K263*<RO2T>*<RO246> +! - K267*<RO2T>*<RO238> +! - K270*<RO2T>*<RO247> +! - K280*<RO2T>*<RO248> +! - K286*<RO2T>*<RO249> +! - K290*<RO2T>*<RO250> +! - K293*<RO2T>*<RO251> +! - K296*<RO2T>*<RO252> +! - K299*<RO2T>*<RO253> +! - K302*<RO2T>*<RO254> +! - K311*<RO2T>*<RO255> +! - K319*<RO2T>*<RO256> +! - K333*<RO2T>*<RO257> +! - K342*<RO2T>*<RO258> +! terms for RO21: +! + K043*<OH>*<CH4> +! + 0.6*K052*<O>*<ETHE> +! + K147*<NO>*<RO28> +! + K149*<RO2T>*<RO28> +! + KTC47*<WC_RO21> +! + KTR47*<WR_RO21> +! - K110*<NO>*<RO21> +! - K111*<RO2T>*<RO21> +! - K112*<HO2>*<RO21> +! - KTC16*<RO21> +! - KTR16*<RO21> +! terms for RO25: +! + 0.28*K056*<O3>*<OLEL> +! + 0.1*K057*<O>*<OLEL> +! + K058*<OH>*<ALKL> +! + K059*<ALD2> +! + K063*<KETL> +! + K071*<KETH> +! + K125*<NO>*<RO26> +! + K143*<RO2T>*<RO26> +! + KTC48*<WC_RO25> +! + KTR48*<WR_RO25> +! - K122*<NO>*<RO25> +! - K123*<RO2T>*<RO25> +! - K124*<HO2>*<RO25> +! - KTC17*<RO25> +! - KTR17*<RO25> ! terms for WC_O3: ! + KTC1*<O3> -! - KTC21*<WC_O3> -! - KC6*<WC_O3>*<WC_HO2> -! - KC29*<WC_SO2>*<WC_O3> +! - KTC32*<WC_O3> +! - KC6*<WC_HO2>*<WC_O3> +! - KC25*<WC_O3>*<WC_SO2> ! terms for WC_H2O2: ! + KTC2*<H2O2> ! + KC2*<WC_OH>*<WC_OH> ! + KC5*<WC_HO2>*<WC_HO2> -! - KTC22*<WC_H2O2> +! + KC29*<WC_RO25>*<WC_RO25> +! + KC37*<WC_OH>*<WC_KETL> +! + 0.5*KC39*<WC_OH>*<WC_ORA2> +! + 0.29*KC41*<WC_OH>*<WC_ACID> +! + 0.3*KC43*<WC_OH>*<WC_UR21> +! + 0.45*KC45*<WC_OH>*<WC_RP16> +! - KTC33*<WC_H2O2> ! - KC1*<WC_H2O2> -! - KC4*<WC_H2O2>*<WC_OH> -! - KC30*<WC_SO2>*<WC_H2O2> +! - KC4*<WC_OH>*<WC_H2O2> +! - KC26*<WC_H2O2>*<WC_SO2> ! terms for WC_NO: ! + KTC3*<NO> -! - KTC23*<WC_NO> +! - KTC34*<WC_NO> ! terms for WC_NO2: ! + KTC4*<NO2> -! + KC8*<WC_HONO>*<WC_OH> +! + KC8*<WC_OH>*<WC_HONO> ! + KC10*<WC_HNO4> ! + KC13*<WC_HNO3> -! - KTC24*<WC_NO2> -! - KC9*<WC_NO2>*<WC_HO2> +! - KTC35*<WC_NO2> +! - KC9*<WC_HO2>*<WC_NO2> ! terms for WC_NO3: ! + KTC5*<NO3> -! - KTC25*<WC_NO3> -! - KC15*<WC_NO3>*<WC_SULF> -! - KC16*<WC_NO3>*<WC_SO2> +! - KTC36*<WC_NO3> +! - KC15*<WC_H2SO4>*<WC_NO3> +! - KC16*<WC_SO2>*<WC_NO3> ! terms for WC_N2O5: ! + KTC6*<N2O5> -! - KTC26*<WC_N2O5> +! - KTC37*<WC_N2O5> ! - KC14*<WC_N2O5> ! terms for WC_HONO: ! + KTC7*<HONO> ! + KC11*<WC_HNO4> -! - KTC27*<WC_HONO> -! - KC8*<WC_HONO>*<WC_OH> +! - KTC38*<WC_HONO> +! - KC8*<WC_OH>*<WC_HONO> ! terms for WC_HNO3: ! + KTC8*<HNO3> -! + KC12*<WC_HNO4>*<WC_SO2> +! + KC12*<WC_SO2>*<WC_HNO4> ! + KC14*<WC_N2O5> ! + KC14*<WC_N2O5> -! + KC15*<WC_NO3>*<WC_SULF> -! + KC16*<WC_NO3>*<WC_SO2> -! - KTC28*<WC_HNO3> +! + KC15*<WC_H2SO4>*<WC_NO3> +! + KC16*<WC_SO2>*<WC_NO3> +! - KTC39*<WC_HNO3> ! - KC13*<WC_HNO3> ! terms for WC_HNO4: ! + KTC9*<HNO4> -! + KC9*<WC_NO2>*<WC_HO2> -! - KTC29*<WC_HNO4> +! + KC9*<WC_HO2>*<WC_NO2> +! - KTC40*<WC_HNO4> ! - KC10*<WC_HNO4> ! - KC11*<WC_HNO4> -! - KC12*<WC_HNO4>*<WC_SO2> +! - KC12*<WC_SO2>*<WC_HNO4> ! terms for WC_NH3: ! + KTC10*<NH3> -! - KTC30*<WC_NH3> +! - KTC41*<WC_NH3> ! terms for WC_OH: ! + KTC11*<OH> ! + KC1*<WC_H2O2> ! + KC1*<WC_H2O2> -! + KC6*<WC_O3>*<WC_HO2> +! + KC6*<WC_HO2>*<WC_O3> ! + KC13*<WC_HNO3> -! + KC28*<WC_ASO4> -! - KTC31*<WC_OH> +! + KC24*<WC_ASO4> +! - KTC42*<WC_OH> ! - KC2*<WC_OH>*<WC_OH> ! - KC2*<WC_OH>*<WC_OH> -! - KC3*<WC_OH>*<WC_HO2> -! - KC4*<WC_H2O2>*<WC_OH> -! - KC7*<WC_OH>*<WC_SO2> -! - KC8*<WC_HONO>*<WC_OH> -! - KC19*<WC_HCHO>*<WC_OH> -! - KC20*<WC_ORA1>*<WC_OH> -! - KC23*<WC_AHMS>*<WC_OH> +! - KC3*<WC_HO2>*<WC_OH> +! - KC4*<WC_OH>*<WC_H2O2> +! - KC7*<WC_SO2>*<WC_OH> +! - KC8*<WC_OH>*<WC_HONO> +! - KC19*<WC_OH>*<WC_AHMS> +! - KC30*<WC_OH>*<WC_MEOH> +! - KC31*<WC_OH>*<WC_ETOH> +! - KC32*<WC_OH>*<WC_ALCH> +! - KC33*<WC_OH>*<WC_HCHO> +! - KC34*<WC_OH>*<WC_ALD2> +! - KC35*<WC_OH>*<WC_GLY> +! - KC36*<WC_OH>*<WC_MGLY> +! - KC37*<WC_OH>*<WC_KETL> +! - KC38*<WC_OH>*<WC_ORA1> +! - KC39*<WC_OH>*<WC_ORA2> +! - KC40*<WC_OH>*<WC_ACID> +! - KC41*<WC_OH>*<WC_ACID> +! - KC42*<WC_OH>*<WC_UR28> +! - KC43*<WC_OH>*<WC_UR21> +! - KC44*<WC_OH>*<WC_RP16> +! - KC45*<WC_OH>*<WC_RP16> +! - KC46*<WC_OH>*<WC_ACID2> ! terms for WC_HO2: ! + KTC12*<HO2> -! + KC4*<WC_H2O2>*<WC_OH> +! + KC4*<WC_OH>*<WC_H2O2> ! + KC10*<WC_HNO4> -! + 2.00*KC17*<WC_MO2>*<WC_MO2> -! + KC19*<WC_HCHO>*<WC_OH> -! + KC20*<WC_ORA1>*<WC_OH> -! + KC23*<WC_AHMS>*<WC_OH> -! - KTC32*<WC_HO2> -! - KC3*<WC_OH>*<WC_HO2> +! + KC19*<WC_OH>*<WC_AHMS> +! + 2.00*KC27*<WC_RO21>*<WC_RO21> +! + KC29*<WC_RO25>*<WC_RO25> +! + KC30*<WC_OH>*<WC_MEOH> +! + KC31*<WC_OH>*<WC_ETOH> +! + KC32*<WC_OH>*<WC_ALCH> +! + KC33*<WC_OH>*<WC_HCHO> +! + KC35*<WC_OH>*<WC_GLY> +! + KC36*<WC_OH>*<WC_MGLY> +! + KC37*<WC_OH>*<WC_KETL> +! + KC38*<WC_OH>*<WC_ORA1> +! + 0.11*KC41*<WC_OH>*<WC_ACID> +! + KC42*<WC_OH>*<WC_UR28> +! + 0.81*KC43*<WC_OH>*<WC_UR21> +! + KC44*<WC_OH>*<WC_RP16> +! + 0.71*KC45*<WC_OH>*<WC_RP16> +! - KTC43*<WC_HO2> +! - KC3*<WC_HO2>*<WC_OH> ! - KC5*<WC_HO2>*<WC_HO2> ! - KC5*<WC_HO2>*<WC_HO2> -! - KC6*<WC_O3>*<WC_HO2> -! - KC9*<WC_NO2>*<WC_HO2> -! - KC25*<WC_ASO5>*<WC_HO2> +! - KC6*<WC_HO2>*<WC_O3> +! - KC9*<WC_HO2>*<WC_NO2> +! - KC21*<WC_HO2>*<WC_ASO5> ! terms for WC_CO2: ! + KTC13*<CO2> -! + KC20*<WC_ORA1>*<WC_OH> -! - KTC33*<WC_CO2> +! + KC34*<WC_OH>*<WC_ALD2> +! + KC37*<WC_OH>*<WC_KETL> +! + KC38*<WC_OH>*<WC_ORA1> +! + KC40*<WC_OH>*<WC_ACID> +! + 2*KC42*<WC_OH>*<WC_UR28> +! + 0.43*KC43*<WC_OH>*<WC_UR21> +! + 2*KC45*<WC_OH>*<WC_RP16> +! - KTC44*<WC_CO2> ! terms for WC_SO2: ! + KTC14*<SO2> -! + KC22*<WC_AHMS> -! + KC23*<WC_AHMS>*<WC_OH> -! - KTC34*<WC_SO2> -! - KC7*<WC_OH>*<WC_SO2> -! - KC12*<WC_HNO4>*<WC_SO2> -! - KC16*<WC_NO3>*<WC_SO2> -! - KC18*<WC_MO2>*<WC_SO2> -! - KC21*<WC_SO2>*<WC_HCHO> -! - KC27*<WC_AHSO5>*<WC_SO2> -! - KC29*<WC_SO2>*<WC_O3> -! - KC30*<WC_SO2>*<WC_H2O2> -! terms for WC_SULF: -! + KTC15*<SULF> -! + KC12*<WC_HNO4>*<WC_SO2> -! + 2.00*KC27*<WC_AHSO5>*<WC_SO2> -! + KC28*<WC_ASO4> -! + KC29*<WC_SO2>*<WC_O3> -! + KC30*<WC_SO2>*<WC_H2O2> -! - KTC35*<WC_SULF> -! - KC15*<WC_NO3>*<WC_SULF> +! + KC18*<WC_AHMS> +! + KC19*<WC_OH>*<WC_AHMS> +! - KTC45*<WC_SO2> +! - KC7*<WC_SO2>*<WC_OH> +! - KC12*<WC_SO2>*<WC_HNO4> +! - KC16*<WC_SO2>*<WC_NO3> +! - KC17*<WC_HCHO>*<WC_SO2> +! - KC23*<WC_SO2>*<WC_AHSO5> +! - KC25*<WC_O3>*<WC_SO2> +! - KC26*<WC_H2O2>*<WC_SO2> +! - KC28*<WC_SO2>*<WC_RO21> +! terms for WC_H2SO4: +! + KTC15*<H2SO4> +! + KC12*<WC_SO2>*<WC_HNO4> +! + 2.00*KC23*<WC_SO2>*<WC_AHSO5> +! + KC24*<WC_ASO4> +! + KC25*<WC_O3>*<WC_SO2> +! + KC26*<WC_H2O2>*<WC_SO2> +! - KTC46*<WC_H2SO4> +! - KC15*<WC_H2SO4>*<WC_NO3> +! terms for WC_RO21: +! + KTC16*<RO21> +! + 0.50*KC34*<WC_OH>*<WC_ALD2> +! + KC37*<WC_OH>*<WC_KETL> +! - KTC47*<WC_RO21> +! - KC27*<WC_RO21>*<WC_RO21> +! - KC27*<WC_RO21>*<WC_RO21> +! - KC28*<WC_SO2>*<WC_RO21> +! terms for WC_RO25: +! + KTC17*<RO25> +! + 0.50*KC34*<WC_OH>*<WC_ALD2> +! + KC40*<WC_OH>*<WC_ACID> +! - KTC48*<WC_RO25> +! - KC29*<WC_RO25>*<WC_RO25> +! - KC29*<WC_RO25>*<WC_RO25> +! terms for WC_MEOH: +! + KTC18*<MEOH> +! - KTC49*<WC_MEOH> +! - KC30*<WC_OH>*<WC_MEOH> +! terms for WC_ETOH: +! + KTC19*<ETOH> +! - KTC50*<WC_ETOH> +! - KC31*<WC_OH>*<WC_ETOH> +! terms for WC_ALCH: +! + KTC20*<ALCH> +! - KTC51*<WC_ALCH> +! - KC32*<WC_OH>*<WC_ALCH> ! terms for WC_HCHO: -! + KTC16*<HCHO> -! + 2.00*KC17*<WC_MO2>*<WC_MO2> -! + KC22*<WC_AHMS> -! - KTC36*<WC_HCHO> -! - KC19*<WC_HCHO>*<WC_OH> -! - KC21*<WC_SO2>*<WC_HCHO> +! + KTC21*<HCHO> +! + KC18*<WC_AHMS> +! + 2.00*KC27*<WC_RO21>*<WC_RO21> +! + KC28*<WC_SO2>*<WC_RO21> +! + KC30*<WC_OH>*<WC_MEOH> +! + KC37*<WC_OH>*<WC_KETL> +! - KTC52*<WC_HCHO> +! - KC17*<WC_HCHO>*<WC_SO2> +! - KC33*<WC_OH>*<WC_HCHO> +! terms for WC_ALD2: +! + KTC22*<ALD2> +! + KC29*<WC_RO25>*<WC_RO25> +! + KC31*<WC_OH>*<WC_ETOH> +! + 0.50*KC32*<WC_OH>*<WC_ALCH> +! + KC37*<WC_OH>*<WC_KETL> +! + 0.29*KC41*<WC_OH>*<WC_ACID> +! + 0.43*KC43*<WC_OH>*<WC_UR21> +! - KTC53*<WC_ALD2> +! - KC34*<WC_OH>*<WC_ALD2> +! terms for WC_GLY: +! + KTC23*<GLY> +! - KTC54*<WC_GLY> +! - KC35*<WC_OH>*<WC_GLY> +! terms for WC_MGLY: +! + KTC25*<MGLY> +! + KC37*<WC_OH>*<WC_KETL> +! - KTC56*<WC_MGLY> +! - KC36*<WC_OH>*<WC_MGLY> +! terms for WC_KETL: +! + KTC24*<KETL> +! + 0.50*KC32*<WC_OH>*<WC_ALCH> +! + KC37*<WC_OH>*<WC_KETL> +! - KTC55*<WC_KETL> +! - KC37*<WC_OH>*<WC_KETL> ! terms for WC_ORA1: -! + KTC17*<ORA1> -! + KC19*<WC_HCHO>*<WC_OH> -! + KC23*<WC_AHMS>*<WC_OH> -! - KTC37*<WC_ORA1> -! - KC20*<WC_ORA1>*<WC_OH> +! + KTC26*<ORA1> +! + KC19*<WC_OH>*<WC_AHMS> +! + KC33*<WC_OH>*<WC_HCHO> +! - KTC57*<WC_ORA1> +! - KC38*<WC_OH>*<WC_ORA1> ! terms for WC_ORA2: -! + KTC18*<ORA2> -! - KTC38*<WC_ORA2> -! terms for WC_MO2: -! + KTC19*<MO2> -! - KTC39*<WC_MO2> -! - KC17*<WC_MO2>*<WC_MO2> -! - KC17*<WC_MO2>*<WC_MO2> -! - KC18*<WC_MO2>*<WC_SO2> -! terms for WC_OP1: -! + KTC20*<OP1> -! + KC18*<WC_MO2>*<WC_SO2> -! - KTC40*<WC_OP1> +! + KTC27*<ORA2> +! + KC29*<WC_RO25>*<WC_RO25> +! - KTC58*<WC_ORA2> +! - KC39*<WC_OH>*<WC_ORA2> +! terms for WC_ACID: +! + KTC28*<ACID> +! - KTC59*<WC_ACID> +! - KC40*<WC_OH>*<WC_ACID> +! - KC41*<WC_OH>*<WC_ACID> +! terms for WC_RP16: +! + KTC29*<RP16> +! + KC35*<WC_OH>*<WC_GLY> +! + KC39*<WC_OH>*<WC_ORA2> +! - KTC60*<WC_RP16> +! - KC44*<WC_OH>*<WC_RP16> +! - KC45*<WC_OH>*<WC_RP16> +! terms for WC_UR21: +! + KTC30*<UR21> +! + KC36*<WC_OH>*<WC_MGLY> +! + KC37*<WC_OH>*<WC_KETL> +! + 0.56*KC41*<WC_OH>*<WC_ACID> +! - KTC61*<WC_UR21> +! - KC43*<WC_OH>*<WC_UR21> +! terms for WC_UR28: +! + KTC31*<UR28> +! + KC44*<WC_OH>*<WC_RP16> +! - KTC62*<WC_UR28> +! - KC42*<WC_OH>*<WC_UR28> +! terms for WC_ACID2: +! + 0.15*KC41*<WC_OH>*<WC_ACID> +! + 0.56*KC43*<WC_OH>*<WC_UR21> +! - KC46*<WC_OH>*<WC_ACID2> ! terms for WC_ASO3: -! + KC7*<WC_OH>*<WC_SO2> -! + KC16*<WC_NO3>*<WC_SO2> -! + KC18*<WC_MO2>*<WC_SO2> -! - KC24*<WC_ASO3>*<W_O2> +! + KC7*<WC_SO2>*<WC_OH> +! + KC16*<WC_SO2>*<WC_NO3> +! + KC28*<WC_SO2>*<WC_RO21> +! - KC20*<W_O2>*<WC_ASO3> ! terms for WC_ASO4: -! + KC15*<WC_NO3>*<WC_SULF> -! + KC26*<WC_ASO5>*<WC_ASO5> -! + KC26*<WC_ASO5>*<WC_ASO5> -! - KC28*<WC_ASO4> +! + KC15*<WC_H2SO4>*<WC_NO3> +! + KC22*<WC_ASO5>*<WC_ASO5> +! + KC22*<WC_ASO5>*<WC_ASO5> +! - KC24*<WC_ASO4> ! terms for WC_ASO5: -! + KC24*<WC_ASO3>*<W_O2> -! - KC25*<WC_ASO5>*<WC_HO2> -! - KC26*<WC_ASO5>*<WC_ASO5> -! - KC26*<WC_ASO5>*<WC_ASO5> +! + KC20*<W_O2>*<WC_ASO3> +! - KC21*<WC_HO2>*<WC_ASO5> +! - KC22*<WC_ASO5>*<WC_ASO5> +! - KC22*<WC_ASO5>*<WC_ASO5> ! terms for WC_AHSO5: -! + KC25*<WC_ASO5>*<WC_HO2> -! - KC27*<WC_AHSO5>*<WC_SO2> +! + KC21*<WC_HO2>*<WC_ASO5> +! - KC23*<WC_SO2>*<WC_AHSO5> ! terms for WC_AHMS: -! + KC21*<WC_SO2>*<WC_HCHO> -! - KC22*<WC_AHMS> -! - KC23*<WC_AHMS>*<WC_OH> +! + KC17*<WC_HCHO>*<WC_SO2> +! - KC18*<WC_AHMS> +! - KC19*<WC_OH>*<WC_AHMS> ! terms for WR_O3: ! + KTR1*<O3> -! - KTR21*<WR_O3> -! - KR6*<WR_O3>*<WR_HO2> -! - KR29*<WR_SO2>*<WR_O3> +! - KTR32*<WR_O3> +! - KR6*<WR_HO2>*<WR_O3> +! - KR25*<WR_O3>*<WR_SO2> ! terms for WR_H2O2: ! + KTR2*<H2O2> ! + KR2*<WR_OH>*<WR_OH> ! + KR5*<WR_HO2>*<WR_HO2> -! - KTR22*<WR_H2O2> +! + KR29*<WR_RO25>*<WR_RO25> +! + KR37*<WR_OH>*<WR_KETL> +! + 0.5*KR39*<WR_OH>*<WR_ORA2> +! + 0.29*KR41*<WR_OH>*<WR_ACID> +! + 0.3*KR43*<WR_OH>*<WR_UR21> +! + 0.45*KR45*<WR_OH>*<WR_RP16> +! - KTR33*<WR_H2O2> ! - KR1*<WR_H2O2> -! - KR4*<WR_H2O2>*<WR_OH> -! - KR30*<WR_SO2>*<WR_H2O2> +! - KR4*<WR_OH>*<WR_H2O2> +! - KR26*<WR_H2O2>*<WR_SO2> ! terms for WR_NO: ! + KTR3*<NO> -! - KTR23*<WR_NO> +! - KTR34*<WR_NO> ! terms for WR_NO2: ! + KTR4*<NO2> -! + KR8*<WR_HONO>*<WR_OH> +! + KR8*<WR_OH>*<WR_HONO> ! + KR10*<WR_HNO4> ! + KR13*<WR_HNO3> -! - KTR24*<WR_NO2> -! - KR9*<WR_NO2>*<WR_HO2> +! - KTR35*<WR_NO2> +! - KR9*<WR_HO2>*<WR_NO2> ! terms for WR_NO3: ! + KTR5*<NO3> -! - KTR25*<WR_NO3> -! - KR15*<WR_NO3>*<WR_SULF> -! - KR16*<WR_NO3>*<WR_SO2> +! - KTR36*<WR_NO3> +! - KR15*<WR_H2SO4>*<WR_NO3> +! - KR16*<WR_SO2>*<WR_NO3> ! terms for WR_N2O5: ! + KTR6*<N2O5> -! - KTR26*<WR_N2O5> +! - KTR37*<WR_N2O5> ! - KR14*<WR_N2O5> ! terms for WR_HONO: ! + KTR7*<HONO> ! + KR11*<WR_HNO4> -! - KTR27*<WR_HONO> -! - KR8*<WR_HONO>*<WR_OH> +! - KTR38*<WR_HONO> +! - KR8*<WR_OH>*<WR_HONO> ! terms for WR_HNO3: ! + KTR8*<HNO3> -! + KR12*<WR_HNO4>*<WR_SO2> +! + KR12*<WR_SO2>*<WR_HNO4> ! + KR14*<WR_N2O5> ! + KR14*<WR_N2O5> -! + KR15*<WR_NO3>*<WR_SULF> -! + KR16*<WR_NO3>*<WR_SO2> -! - KTR28*<WR_HNO3> +! + KR15*<WR_H2SO4>*<WR_NO3> +! + KR16*<WR_SO2>*<WR_NO3> +! - KTR39*<WR_HNO3> ! - KR13*<WR_HNO3> ! terms for WR_HNO4: ! + KTR9*<HNO4> -! + KR9*<WR_NO2>*<WR_HO2> -! - KTR29*<WR_HNO4> +! + KR9*<WR_HO2>*<WR_NO2> +! - KTR40*<WR_HNO4> ! - KR10*<WR_HNO4> ! - KR11*<WR_HNO4> -! - KR12*<WR_HNO4>*<WR_SO2> +! - KR12*<WR_SO2>*<WR_HNO4> ! terms for WR_NH3: ! + KTR10*<NH3> -! - KTR30*<WR_NH3> +! - KTR41*<WR_NH3> ! terms for WR_OH: ! + KTR11*<OH> ! + KR1*<WR_H2O2> ! + KR1*<WR_H2O2> -! + KR6*<WR_O3>*<WR_HO2> +! + KR6*<WR_HO2>*<WR_O3> ! + KR13*<WR_HNO3> -! + KR28*<WR_ASO4> -! - KTR31*<WR_OH> +! + KR24*<WR_ASO4> +! - KTR42*<WR_OH> ! - KR2*<WR_OH>*<WR_OH> ! - KR2*<WR_OH>*<WR_OH> -! - KR3*<WR_OH>*<WR_HO2> -! - KR4*<WR_H2O2>*<WR_OH> -! - KR7*<WR_OH>*<WR_SO2> -! - KR8*<WR_HONO>*<WR_OH> -! - KR19*<WR_HCHO>*<WR_OH> -! - KR20*<WR_ORA1>*<WR_OH> -! - KR23*<WR_AHMS>*<WR_OH> +! - KR3*<WR_HO2>*<WR_OH> +! - KR4*<WR_OH>*<WR_H2O2> +! - KR7*<WR_SO2>*<WR_OH> +! - KR8*<WR_OH>*<WR_HONO> +! - KR19*<WR_OH>*<WR_AHMS> +! - KR30*<WR_OH>*<WR_MEOH> +! - KR31*<WR_OH>*<WR_ETOH> +! - KR32*<WR_OH>*<WR_ALCH> +! - KR33*<WR_OH>*<WR_HCHO> +! - KR34*<WR_OH>*<WR_ALD2> +! - KR35*<WR_OH>*<WR_GLY> +! - KR36*<WR_OH>*<WR_MGLY> +! - KR37*<WR_OH>*<WR_KETL> +! - KR38*<WR_OH>*<WR_ORA1> +! - KR39*<WR_OH>*<WR_ORA2> +! - KR40*<WR_OH>*<WR_ACID> +! - KR41*<WR_OH>*<WR_ACID> +! - KR42*<WR_OH>*<WR_UR28> +! - KR43*<WR_OH>*<WR_UR21> +! - KR44*<WR_OH>*<WR_RP16> +! - KR45*<WR_OH>*<WR_RP16> +! - KR46*<WR_OH>*<WR_ACID2> ! terms for WR_HO2: ! + KTR12*<HO2> -! + KR4*<WR_H2O2>*<WR_OH> +! + KR4*<WR_OH>*<WR_H2O2> ! + KR10*<WR_HNO4> -! + 2.00*KR17*<WR_MO2>*<WR_MO2> -! + KR19*<WR_HCHO>*<WR_OH> -! + KR20*<WR_ORA1>*<WR_OH> -! + KR23*<WR_AHMS>*<WR_OH> -! - KTR32*<WR_HO2> -! - KR3*<WR_OH>*<WR_HO2> +! + KR19*<WR_OH>*<WR_AHMS> +! + 2.00*KR27*<WR_RO21>*<WR_RO21> +! + KR29*<WR_RO25>*<WR_RO25> +! + KR30*<WR_OH>*<WR_MEOH> +! + KR31*<WR_OH>*<WR_ETOH> +! + KR32*<WR_OH>*<WR_ALCH> +! + KR33*<WR_OH>*<WR_HCHO> +! + KR35*<WR_OH>*<WR_GLY> +! + KR36*<WR_OH>*<WR_MGLY> +! + KR37*<WR_OH>*<WR_KETL> +! + KR38*<WR_OH>*<WR_ORA1> +! + 0.11*KR41*<WR_OH>*<WR_ACID> +! + KR42*<WR_OH>*<WR_UR28> +! + 0.81*KR43*<WR_OH>*<WR_UR21> +! + KR44*<WR_OH>*<WR_RP16> +! + 0.71*KR45*<WR_OH>*<WR_RP16> +! - KTR43*<WR_HO2> +! - KR3*<WR_HO2>*<WR_OH> ! - KR5*<WR_HO2>*<WR_HO2> ! - KR5*<WR_HO2>*<WR_HO2> -! - KR6*<WR_O3>*<WR_HO2> -! - KR9*<WR_NO2>*<WR_HO2> -! - KR25*<WR_ASO5>*<WR_HO2> +! - KR6*<WR_HO2>*<WR_O3> +! - KR9*<WR_HO2>*<WR_NO2> +! - KR21*<WR_HO2>*<WR_ASO5> ! terms for WR_CO2: ! + KTR13*<CO2> -! + KR20*<WR_ORA1>*<WR_OH> -! - KTR33*<WR_CO2> +! + KR34*<WR_OH>*<WR_ALD2> +! + KR37*<WR_OH>*<WR_KETL> +! + KR38*<WR_OH>*<WR_ORA1> +! + KR40*<WR_OH>*<WR_ACID> +! + 2*KR42*<WR_OH>*<WR_UR28> +! + 0.43*KR43*<WR_OH>*<WR_UR21> +! + 2*KR45*<WR_OH>*<WR_RP16> +! - KTR44*<WR_CO2> ! terms for WR_SO2: ! + KTR14*<SO2> -! + KR22*<WR_AHMS> -! + KR23*<WR_AHMS>*<WR_OH> -! - KTR34*<WR_SO2> -! - KR7*<WR_OH>*<WR_SO2> -! - KR12*<WR_HNO4>*<WR_SO2> -! - KR16*<WR_NO3>*<WR_SO2> -! - KR18*<WR_MO2>*<WR_SO2> -! - KR21*<WR_SO2>*<WR_HCHO> -! - KR27*<WR_AHSO5>*<WR_SO2> -! - KR29*<WR_SO2>*<WR_O3> -! - KR30*<WR_SO2>*<WR_H2O2> -! terms for WR_SULF: -! + KTR15*<SULF> -! + KR12*<WR_HNO4>*<WR_SO2> -! + 2.00*KR27*<WR_AHSO5>*<WR_SO2> -! + KR28*<WR_ASO4> -! + KR29*<WR_SO2>*<WR_O3> -! + KR30*<WR_SO2>*<WR_H2O2> -! - KTR35*<WR_SULF> -! - KR15*<WR_NO3>*<WR_SULF> +! + KR18*<WR_AHMS> +! + KR19*<WR_OH>*<WR_AHMS> +! - KTR45*<WR_SO2> +! - KR7*<WR_SO2>*<WR_OH> +! - KR12*<WR_SO2>*<WR_HNO4> +! - KR16*<WR_SO2>*<WR_NO3> +! - KR17*<WR_HCHO>*<WR_SO2> +! - KR23*<WR_SO2>*<WR_AHSO5> +! - KR25*<WR_O3>*<WR_SO2> +! - KR26*<WR_H2O2>*<WR_SO2> +! - KR28*<WR_SO2>*<WR_RO21> +! terms for WR_H2SO4: +! + KTR15*<H2SO4> +! + KR12*<WR_SO2>*<WR_HNO4> +! + 2.00*KR23*<WR_SO2>*<WR_AHSO5> +! + KR24*<WR_ASO4> +! + KR25*<WR_O3>*<WR_SO2> +! + KR26*<WR_H2O2>*<WR_SO2> +! - KTR46*<WR_H2SO4> +! - KR15*<WR_H2SO4>*<WR_NO3> +! terms for WR_RO21: +! + KTR16*<RO21> +! + 0.50*KR34*<WR_OH>*<WR_ALD2> +! + KR37*<WR_OH>*<WR_KETL> +! - KTR47*<WR_RO21> +! - KR27*<WR_RO21>*<WR_RO21> +! - KR27*<WR_RO21>*<WR_RO21> +! - KR28*<WR_SO2>*<WR_RO21> +! terms for WR_RO25: +! + KTR17*<RO25> +! + 0.50*KR34*<WR_OH>*<WR_ALD2> +! + KR40*<WR_OH>*<WR_ACID> +! - KTR48*<WR_RO25> +! - KR29*<WR_RO25>*<WR_RO25> +! - KR29*<WR_RO25>*<WR_RO25> +! terms for WR_MEOH: +! + KTR18*<MEOH> +! - KTR49*<WR_MEOH> +! - KR30*<WR_OH>*<WR_MEOH> +! terms for WR_ETOH: +! + KTR19*<ETOH> +! - KTR50*<WR_ETOH> +! - KR31*<WR_OH>*<WR_ETOH> +! terms for WR_ALCH: +! + KTR20*<ALCH> +! - KTR51*<WR_ALCH> +! - KR32*<WR_OH>*<WR_ALCH> ! terms for WR_HCHO: -! + KTR16*<HCHO> -! + 2.00*KR17*<WR_MO2>*<WR_MO2> -! + KR22*<WR_AHMS> -! - KTR36*<WR_HCHO> -! - KR19*<WR_HCHO>*<WR_OH> -! - KR21*<WR_SO2>*<WR_HCHO> +! + KTR21*<HCHO> +! + KR18*<WR_AHMS> +! + 2.00*KR27*<WR_RO21>*<WR_RO21> +! + KR28*<WR_SO2>*<WR_RO21> +! + KR30*<WR_OH>*<WR_MEOH> +! + KR37*<WR_OH>*<WR_KETL> +! - KTR52*<WR_HCHO> +! - KR17*<WR_HCHO>*<WR_SO2> +! - KR33*<WR_OH>*<WR_HCHO> +! terms for WR_ALD2: +! + KTR22*<ALD2> +! + KR29*<WR_RO25>*<WR_RO25> +! + KR31*<WR_OH>*<WR_ETOH> +! + 0.50*KR32*<WR_OH>*<WR_ALCH> +! + KR37*<WR_OH>*<WR_KETL> +! + 0.29*KR41*<WR_OH>*<WR_ACID> +! + 0.43*KR43*<WR_OH>*<WR_UR21> +! - KTR53*<WR_ALD2> +! - KR34*<WR_OH>*<WR_ALD2> +! terms for WR_GLY: +! + KTR23*<GLY> +! - KTR54*<WR_GLY> +! - KR35*<WR_OH>*<WR_GLY> +! terms for WR_MGLY: +! + KTR25*<MGLY> +! + KR37*<WR_OH>*<WR_KETL> +! - KTR56*<WR_MGLY> +! - KR36*<WR_OH>*<WR_MGLY> +! terms for WR_KETL: +! + KTR24*<KETL> +! + 0.50*KR32*<WR_OH>*<WR_ALCH> +! + KR37*<WR_OH>*<WR_KETL> +! - KTR55*<WR_KETL> +! - KR37*<WR_OH>*<WR_KETL> ! terms for WR_ORA1: -! + KTR17*<ORA1> -! + KR19*<WR_HCHO>*<WR_OH> -! + KR23*<WR_AHMS>*<WR_OH> -! - KTR37*<WR_ORA1> -! - KR20*<WR_ORA1>*<WR_OH> +! + KTR26*<ORA1> +! + KR19*<WR_OH>*<WR_AHMS> +! + KR33*<WR_OH>*<WR_HCHO> +! - KTR57*<WR_ORA1> +! - KR38*<WR_OH>*<WR_ORA1> ! terms for WR_ORA2: -! + KTR18*<ORA2> -! - KTR38*<WR_ORA2> -! terms for WR_MO2: -! + KTR19*<MO2> -! - KTR39*<WR_MO2> -! - KR17*<WR_MO2>*<WR_MO2> -! - KR17*<WR_MO2>*<WR_MO2> -! - KR18*<WR_MO2>*<WR_SO2> -! terms for WR_OP1: -! + KTR20*<OP1> -! + KR18*<WR_MO2>*<WR_SO2> -! - KTR40*<WR_OP1> +! + KTR27*<ORA2> +! + KR29*<WR_RO25>*<WR_RO25> +! - KTR58*<WR_ORA2> +! - KR39*<WR_OH>*<WR_ORA2> +! terms for WR_ACID: +! + KTR28*<ACID> +! - KTR59*<WR_ACID> +! - KR40*<WR_OH>*<WR_ACID> +! - KR41*<WR_OH>*<WR_ACID> +! terms for WR_RP16: +! + KTR29*<RP16> +! + KR35*<WR_OH>*<WR_GLY> +! + KR39*<WR_OH>*<WR_ORA2> +! - KTR60*<WR_RP16> +! - KR44*<WR_OH>*<WR_RP16> +! - KR45*<WR_OH>*<WR_RP16> +! terms for WR_UR21: +! + KTR30*<UR21> +! + KR36*<WR_OH>*<WR_MGLY> +! + KR37*<WR_OH>*<WR_KETL> +! + 0.56*KR41*<WR_OH>*<WR_ACID> +! - KTR61*<WR_UR21> +! - KR43*<WR_OH>*<WR_UR21> +! terms for WR_UR28: +! + KTR31*<UR28> +! + KR44*<WR_OH>*<WR_RP16> +! - KTR62*<WR_UR28> +! - KR42*<WR_OH>*<WR_UR28> +! terms for WR_ACID2: +! + 0.15*KR41*<WR_OH>*<WR_ACID> +! + 0.56*KR43*<WR_OH>*<WR_UR21> +! - KR46*<WR_OH>*<WR_ACID2> ! terms for WR_ASO3: -! + KR7*<WR_OH>*<WR_SO2> -! + KR16*<WR_NO3>*<WR_SO2> -! + KR18*<WR_MO2>*<WR_SO2> -! - KR24*<WR_ASO3>*<W_O2> +! + KR7*<WR_SO2>*<WR_OH> +! + KR16*<WR_SO2>*<WR_NO3> +! + KR28*<WR_SO2>*<WR_RO21> +! - KR20*<W_O2>*<WR_ASO3> ! terms for WR_ASO4: -! + KR15*<WR_NO3>*<WR_SULF> -! + KR26*<WR_ASO5>*<WR_ASO5> -! + KR26*<WR_ASO5>*<WR_ASO5> -! - KR28*<WR_ASO4> +! + KR15*<WR_H2SO4>*<WR_NO3> +! + KR22*<WR_ASO5>*<WR_ASO5> +! + KR22*<WR_ASO5>*<WR_ASO5> +! - KR24*<WR_ASO4> ! terms for WR_ASO5: -! + KR24*<WR_ASO3>*<W_O2> -! - KR25*<WR_ASO5>*<WR_HO2> -! - KR26*<WR_ASO5>*<WR_ASO5> -! - KR26*<WR_ASO5>*<WR_ASO5> +! + KR20*<W_O2>*<WR_ASO3> +! - KR21*<WR_HO2>*<WR_ASO5> +! - KR22*<WR_ASO5>*<WR_ASO5> +! - KR22*<WR_ASO5>*<WR_ASO5> ! terms for WR_AHSO5: -! + KR25*<WR_ASO5>*<WR_HO2> -! - KR27*<WR_AHSO5>*<WR_SO2> +! + KR21*<WR_HO2>*<WR_ASO5> +! - KR23*<WR_SO2>*<WR_AHSO5> ! terms for WR_AHMS: -! + KR21*<WR_SO2>*<WR_HCHO> -! - KR22*<WR_AHMS> -! - KR23*<WR_AHMS>*<WR_OH> +! + KR17*<WR_HCHO>*<WR_SO2> +! - KR18*<WR_AHMS> +! - KR19*<WR_OH>*<WR_AHMS> ! !======================================================================== ! @@ -1537,11 +3018,11 @@ !! DECLARATIONS !! ------------ IMPLICIT NONE -INTEGER, DIMENSION(2), PARAMETER :: JPNEQ = (/41,91/) ! number of prognostic chemical species -INTEGER, DIMENSION(2), PARAMETER :: JPNEQAQ = (/0,50/) ! number of prognostic aqueous phase chemical species -INTEGER, DIMENSION(2), PARAMETER :: JPNREAC = (/132,272/) ! number of chemical reactions +INTEGER, DIMENSION(2), PARAMETER :: JPNEQ = (/87,161/) ! number of prognostic chemical species +INTEGER, DIMENSION(2), PARAMETER :: JPNEQAQ = (/0,74/) ! number of prognostic aqueous phase chemical species +INTEGER, DIMENSION(2), PARAMETER :: JPNREAC = (/365,581/) ! number of chemical reactions INTEGER, DIMENSION(2), PARAMETER :: JPNMETEOVARS = (/13,13/) ! number of meteorological variables -INTEGER, DIMENSION(2), PARAMETER :: JPNNONZEROTERMS = (/606,942/) ! number of non-zero terms returned by CH_TERMS +INTEGER, DIMENSION(2), PARAMETER :: JPNNONZEROTERMS = (/1188,1768/) ! number of non-zero terms returned by CH_TERMS ! CHARACTER(LEN=32), DIMENSION(JPNEQ(2)), TARGET :: CNAMES ! names of the species CHARACTER(LEN=32), DIMENSION(JPNREAC(2)), TARGET :: CREACS ! the reaction rate names @@ -1572,7 +3053,8 @@ REAL,DIMENSION(:),POINTER :: K014=>NULL() REAL,DIMENSION(:),POINTER :: K015=>NULL() REAL,DIMENSION(:),POINTER :: K016=>NULL() REAL,DIMENSION(:),POINTER :: K017=>NULL() -REAL,DIMENSION(:),POINTER :: K018=>NULL() +REAL,DIMENSION(:),POINTER :: K018A=>NULL() +REAL,DIMENSION(:),POINTER :: K018B=>NULL() REAL,DIMENSION(:),POINTER :: K019=>NULL() REAL,DIMENSION(:),POINTER :: K020=>NULL() REAL,DIMENSION(:),POINTER :: K021=>NULL() @@ -1654,9 +3136,9 @@ REAL,DIMENSION(:),POINTER :: K096=>NULL() REAL,DIMENSION(:),POINTER :: K097=>NULL() REAL,DIMENSION(:),POINTER :: K098=>NULL() REAL,DIMENSION(:),POINTER :: K099=>NULL() -REAL,DIMENSION(:),POINTER :: K0100=>NULL() -REAL,DIMENSION(:),POINTER :: K0101=>NULL() -REAL,DIMENSION(:),POINTER :: K0102=>NULL() +REAL,DIMENSION(:),POINTER :: K100=>NULL() +REAL,DIMENSION(:),POINTER :: K101=>NULL() +REAL,DIMENSION(:),POINTER :: K102=>NULL() REAL,DIMENSION(:),POINTER :: K103=>NULL() REAL,DIMENSION(:),POINTER :: K104=>NULL() REAL,DIMENSION(:),POINTER :: K105=>NULL() @@ -1687,6 +3169,238 @@ REAL,DIMENSION(:),POINTER :: K129=>NULL() REAL,DIMENSION(:),POINTER :: K130=>NULL() REAL,DIMENSION(:),POINTER :: K131=>NULL() REAL,DIMENSION(:),POINTER :: K132=>NULL() +REAL,DIMENSION(:),POINTER :: K133=>NULL() +REAL,DIMENSION(:),POINTER :: K134=>NULL() +REAL,DIMENSION(:),POINTER :: K135=>NULL() +REAL,DIMENSION(:),POINTER :: K136=>NULL() +REAL,DIMENSION(:),POINTER :: K137=>NULL() +REAL,DIMENSION(:),POINTER :: K138=>NULL() +REAL,DIMENSION(:),POINTER :: K139=>NULL() +REAL,DIMENSION(:),POINTER :: K140=>NULL() +REAL,DIMENSION(:),POINTER :: K141=>NULL() +REAL,DIMENSION(:),POINTER :: K142=>NULL() +REAL,DIMENSION(:),POINTER :: K143=>NULL() +REAL,DIMENSION(:),POINTER :: K144=>NULL() +REAL,DIMENSION(:),POINTER :: K145=>NULL() +REAL,DIMENSION(:),POINTER :: K146=>NULL() +REAL,DIMENSION(:),POINTER :: K147=>NULL() +REAL,DIMENSION(:),POINTER :: K148=>NULL() +REAL,DIMENSION(:),POINTER :: K149=>NULL() +REAL,DIMENSION(:),POINTER :: K150=>NULL() +REAL,DIMENSION(:),POINTER :: K151=>NULL() +REAL,DIMENSION(:),POINTER :: K152=>NULL() +REAL,DIMENSION(:),POINTER :: K153=>NULL() +REAL,DIMENSION(:),POINTER :: K154=>NULL() +REAL,DIMENSION(:),POINTER :: K155=>NULL() +REAL,DIMENSION(:),POINTER :: K156=>NULL() +REAL,DIMENSION(:),POINTER :: K157=>NULL() +REAL,DIMENSION(:),POINTER :: K158=>NULL() +REAL,DIMENSION(:),POINTER :: K159=>NULL() +REAL,DIMENSION(:),POINTER :: K160=>NULL() +REAL,DIMENSION(:),POINTER :: K161=>NULL() +REAL,DIMENSION(:),POINTER :: K162=>NULL() +REAL,DIMENSION(:),POINTER :: K163=>NULL() +REAL,DIMENSION(:),POINTER :: K164=>NULL() +REAL,DIMENSION(:),POINTER :: K165=>NULL() +REAL,DIMENSION(:),POINTER :: K166=>NULL() +REAL,DIMENSION(:),POINTER :: K167=>NULL() +REAL,DIMENSION(:),POINTER :: K168=>NULL() +REAL,DIMENSION(:),POINTER :: K169=>NULL() +REAL,DIMENSION(:),POINTER :: K170=>NULL() +REAL,DIMENSION(:),POINTER :: K171=>NULL() +REAL,DIMENSION(:),POINTER :: K172=>NULL() +REAL,DIMENSION(:),POINTER :: K173=>NULL() +REAL,DIMENSION(:),POINTER :: K174=>NULL() +REAL,DIMENSION(:),POINTER :: K175=>NULL() +REAL,DIMENSION(:),POINTER :: K176=>NULL() +REAL,DIMENSION(:),POINTER :: K177=>NULL() +REAL,DIMENSION(:),POINTER :: K178=>NULL() +REAL,DIMENSION(:),POINTER :: K179=>NULL() +REAL,DIMENSION(:),POINTER :: K180=>NULL() +REAL,DIMENSION(:),POINTER :: K181=>NULL() +REAL,DIMENSION(:),POINTER :: K182=>NULL() +REAL,DIMENSION(:),POINTER :: K183=>NULL() +REAL,DIMENSION(:),POINTER :: K184=>NULL() +REAL,DIMENSION(:),POINTER :: K185=>NULL() +REAL,DIMENSION(:),POINTER :: K186=>NULL() +REAL,DIMENSION(:),POINTER :: K187=>NULL() +REAL,DIMENSION(:),POINTER :: K188=>NULL() +REAL,DIMENSION(:),POINTER :: K189=>NULL() +REAL,DIMENSION(:),POINTER :: K190=>NULL() +REAL,DIMENSION(:),POINTER :: K191=>NULL() +REAL,DIMENSION(:),POINTER :: K192=>NULL() +REAL,DIMENSION(:),POINTER :: K193=>NULL() +REAL,DIMENSION(:),POINTER :: K194=>NULL() +REAL,DIMENSION(:),POINTER :: K195=>NULL() +REAL,DIMENSION(:),POINTER :: K196=>NULL() +REAL,DIMENSION(:),POINTER :: K197=>NULL() +REAL,DIMENSION(:),POINTER :: K198=>NULL() +REAL,DIMENSION(:),POINTER :: K199=>NULL() +REAL,DIMENSION(:),POINTER :: K200=>NULL() +REAL,DIMENSION(:),POINTER :: K201=>NULL() +REAL,DIMENSION(:),POINTER :: K202=>NULL() +REAL,DIMENSION(:),POINTER :: K203=>NULL() +REAL,DIMENSION(:),POINTER :: K204=>NULL() +REAL,DIMENSION(:),POINTER :: K205=>NULL() +REAL,DIMENSION(:),POINTER :: K206=>NULL() +REAL,DIMENSION(:),POINTER :: K207=>NULL() +REAL,DIMENSION(:),POINTER :: K208=>NULL() +REAL,DIMENSION(:),POINTER :: K209=>NULL() +REAL,DIMENSION(:),POINTER :: K210=>NULL() +REAL,DIMENSION(:),POINTER :: K211=>NULL() +REAL,DIMENSION(:),POINTER :: K212=>NULL() +REAL,DIMENSION(:),POINTER :: K213=>NULL() +REAL,DIMENSION(:),POINTER :: K214=>NULL() +REAL,DIMENSION(:),POINTER :: K215=>NULL() +REAL,DIMENSION(:),POINTER :: K216=>NULL() +REAL,DIMENSION(:),POINTER :: K217=>NULL() +REAL,DIMENSION(:),POINTER :: K218=>NULL() +REAL,DIMENSION(:),POINTER :: K219=>NULL() +REAL,DIMENSION(:),POINTER :: K220=>NULL() +REAL,DIMENSION(:),POINTER :: K221=>NULL() +REAL,DIMENSION(:),POINTER :: K222=>NULL() +REAL,DIMENSION(:),POINTER :: K223=>NULL() +REAL,DIMENSION(:),POINTER :: K224=>NULL() +REAL,DIMENSION(:),POINTER :: K225=>NULL() +REAL,DIMENSION(:),POINTER :: K226=>NULL() +REAL,DIMENSION(:),POINTER :: K227=>NULL() +REAL,DIMENSION(:),POINTER :: K228=>NULL() +REAL,DIMENSION(:),POINTER :: K229=>NULL() +REAL,DIMENSION(:),POINTER :: K230=>NULL() +REAL,DIMENSION(:),POINTER :: K231=>NULL() +REAL,DIMENSION(:),POINTER :: K232=>NULL() +REAL,DIMENSION(:),POINTER :: K233=>NULL() +REAL,DIMENSION(:),POINTER :: K234=>NULL() +REAL,DIMENSION(:),POINTER :: K235=>NULL() +REAL,DIMENSION(:),POINTER :: K236=>NULL() +REAL,DIMENSION(:),POINTER :: K237=>NULL() +REAL,DIMENSION(:),POINTER :: K238=>NULL() +REAL,DIMENSION(:),POINTER :: K239=>NULL() +REAL,DIMENSION(:),POINTER :: K240=>NULL() +REAL,DIMENSION(:),POINTER :: K241=>NULL() +REAL,DIMENSION(:),POINTER :: K242=>NULL() +REAL,DIMENSION(:),POINTER :: K243=>NULL() +REAL,DIMENSION(:),POINTER :: K244=>NULL() +REAL,DIMENSION(:),POINTER :: K245=>NULL() +REAL,DIMENSION(:),POINTER :: K246=>NULL() +REAL,DIMENSION(:),POINTER :: K247=>NULL() +REAL,DIMENSION(:),POINTER :: K248=>NULL() +REAL,DIMENSION(:),POINTER :: K249=>NULL() +REAL,DIMENSION(:),POINTER :: K250=>NULL() +REAL,DIMENSION(:),POINTER :: K251=>NULL() +REAL,DIMENSION(:),POINTER :: K252=>NULL() +REAL,DIMENSION(:),POINTER :: K253=>NULL() +REAL,DIMENSION(:),POINTER :: K254=>NULL() +REAL,DIMENSION(:),POINTER :: K255=>NULL() +REAL,DIMENSION(:),POINTER :: K256=>NULL() +REAL,DIMENSION(:),POINTER :: K257=>NULL() +REAL,DIMENSION(:),POINTER :: K258=>NULL() +REAL,DIMENSION(:),POINTER :: K259=>NULL() +REAL,DIMENSION(:),POINTER :: K260=>NULL() +REAL,DIMENSION(:),POINTER :: K261=>NULL() +REAL,DIMENSION(:),POINTER :: K262=>NULL() +REAL,DIMENSION(:),POINTER :: K263=>NULL() +REAL,DIMENSION(:),POINTER :: K264=>NULL() +REAL,DIMENSION(:),POINTER :: K265=>NULL() +REAL,DIMENSION(:),POINTER :: K266=>NULL() +REAL,DIMENSION(:),POINTER :: K267=>NULL() +REAL,DIMENSION(:),POINTER :: K268=>NULL() +REAL,DIMENSION(:),POINTER :: K269=>NULL() +REAL,DIMENSION(:),POINTER :: K270=>NULL() +REAL,DIMENSION(:),POINTER :: K271=>NULL() +REAL,DIMENSION(:),POINTER :: K272=>NULL() +REAL,DIMENSION(:),POINTER :: K273=>NULL() +REAL,DIMENSION(:),POINTER :: K274=>NULL() +REAL,DIMENSION(:),POINTER :: K275=>NULL() +REAL,DIMENSION(:),POINTER :: K276=>NULL() +REAL,DIMENSION(:),POINTER :: K277=>NULL() +REAL,DIMENSION(:),POINTER :: K278=>NULL() +REAL,DIMENSION(:),POINTER :: K279=>NULL() +REAL,DIMENSION(:),POINTER :: K280=>NULL() +REAL,DIMENSION(:),POINTER :: K281=>NULL() +REAL,DIMENSION(:),POINTER :: K282=>NULL() +REAL,DIMENSION(:),POINTER :: K283=>NULL() +REAL,DIMENSION(:),POINTER :: K284=>NULL() +REAL,DIMENSION(:),POINTER :: K285=>NULL() +REAL,DIMENSION(:),POINTER :: K286=>NULL() +REAL,DIMENSION(:),POINTER :: K287=>NULL() +REAL,DIMENSION(:),POINTER :: K288=>NULL() +REAL,DIMENSION(:),POINTER :: K289=>NULL() +REAL,DIMENSION(:),POINTER :: K290=>NULL() +REAL,DIMENSION(:),POINTER :: K291=>NULL() +REAL,DIMENSION(:),POINTER :: K292=>NULL() +REAL,DIMENSION(:),POINTER :: K293=>NULL() +REAL,DIMENSION(:),POINTER :: K294=>NULL() +REAL,DIMENSION(:),POINTER :: K295=>NULL() +REAL,DIMENSION(:),POINTER :: K296=>NULL() +REAL,DIMENSION(:),POINTER :: K297=>NULL() +REAL,DIMENSION(:),POINTER :: K298=>NULL() +REAL,DIMENSION(:),POINTER :: K299=>NULL() +REAL,DIMENSION(:),POINTER :: K300=>NULL() +REAL,DIMENSION(:),POINTER :: K301=>NULL() +REAL,DIMENSION(:),POINTER :: K302=>NULL() +REAL,DIMENSION(:),POINTER :: K303=>NULL() +REAL,DIMENSION(:),POINTER :: K304=>NULL() +REAL,DIMENSION(:),POINTER :: K305=>NULL() +REAL,DIMENSION(:),POINTER :: K306=>NULL() +REAL,DIMENSION(:),POINTER :: K307=>NULL() +REAL,DIMENSION(:),POINTER :: K308=>NULL() +REAL,DIMENSION(:),POINTER :: K309=>NULL() +REAL,DIMENSION(:),POINTER :: K310=>NULL() +REAL,DIMENSION(:),POINTER :: K311=>NULL() +REAL,DIMENSION(:),POINTER :: K312=>NULL() +REAL,DIMENSION(:),POINTER :: K313=>NULL() +REAL,DIMENSION(:),POINTER :: K314=>NULL() +REAL,DIMENSION(:),POINTER :: K315=>NULL() +REAL,DIMENSION(:),POINTER :: K316=>NULL() +REAL,DIMENSION(:),POINTER :: K317=>NULL() +REAL,DIMENSION(:),POINTER :: K318=>NULL() +REAL,DIMENSION(:),POINTER :: K319=>NULL() +REAL,DIMENSION(:),POINTER :: K320=>NULL() +REAL,DIMENSION(:),POINTER :: K321=>NULL() +REAL,DIMENSION(:),POINTER :: K322=>NULL() +REAL,DIMENSION(:),POINTER :: K323=>NULL() +REAL,DIMENSION(:),POINTER :: K324=>NULL() +REAL,DIMENSION(:),POINTER :: K325=>NULL() +REAL,DIMENSION(:),POINTER :: K326=>NULL() +REAL,DIMENSION(:),POINTER :: K327=>NULL() +REAL,DIMENSION(:),POINTER :: K328=>NULL() +REAL,DIMENSION(:),POINTER :: K329=>NULL() +REAL,DIMENSION(:),POINTER :: K330=>NULL() +REAL,DIMENSION(:),POINTER :: K331=>NULL() +REAL,DIMENSION(:),POINTER :: K332=>NULL() +REAL,DIMENSION(:),POINTER :: K333=>NULL() +REAL,DIMENSION(:),POINTER :: K334=>NULL() +REAL,DIMENSION(:),POINTER :: K335=>NULL() +REAL,DIMENSION(:),POINTER :: K337=>NULL() +REAL,DIMENSION(:),POINTER :: K338=>NULL() +REAL,DIMENSION(:),POINTER :: K339=>NULL() +REAL,DIMENSION(:),POINTER :: K340=>NULL() +REAL,DIMENSION(:),POINTER :: K341=>NULL() +REAL,DIMENSION(:),POINTER :: K342=>NULL() +REAL,DIMENSION(:),POINTER :: K343=>NULL() +REAL,DIMENSION(:),POINTER :: K344=>NULL() +REAL,DIMENSION(:),POINTER :: K345=>NULL() +REAL,DIMENSION(:),POINTER :: K346=>NULL() +REAL,DIMENSION(:),POINTER :: K347=>NULL() +REAL,DIMENSION(:),POINTER :: K348=>NULL() +REAL,DIMENSION(:),POINTER :: K349=>NULL() +REAL,DIMENSION(:),POINTER :: K350=>NULL() +REAL,DIMENSION(:),POINTER :: K351=>NULL() +REAL,DIMENSION(:),POINTER :: K352=>NULL() +REAL,DIMENSION(:),POINTER :: K353=>NULL() +REAL,DIMENSION(:),POINTER :: K354=>NULL() +REAL,DIMENSION(:),POINTER :: K355=>NULL() +REAL,DIMENSION(:),POINTER :: K356=>NULL() +REAL,DIMENSION(:),POINTER :: K357=>NULL() +REAL,DIMENSION(:),POINTER :: K358=>NULL() +REAL,DIMENSION(:),POINTER :: K359=>NULL() +REAL,DIMENSION(:),POINTER :: K360=>NULL() +REAL,DIMENSION(:),POINTER :: K361=>NULL() +REAL,DIMENSION(:),POINTER :: K362=>NULL() +REAL,DIMENSION(:),POINTER :: K363=>NULL() +REAL,DIMENSION(:),POINTER :: K364=>NULL() +REAL,DIMENSION(:),POINTER :: K365=>NULL() REAL,DIMENSION(:),POINTER :: KTC1=>NULL() REAL,DIMENSION(:),POINTER :: KTC2=>NULL() REAL,DIMENSION(:),POINTER :: KTC3=>NULL() @@ -1727,6 +3441,28 @@ REAL,DIMENSION(:),POINTER :: KTC37=>NULL() REAL,DIMENSION(:),POINTER :: KTC38=>NULL() REAL,DIMENSION(:),POINTER :: KTC39=>NULL() REAL,DIMENSION(:),POINTER :: KTC40=>NULL() +REAL,DIMENSION(:),POINTER :: KTC41=>NULL() +REAL,DIMENSION(:),POINTER :: KTC42=>NULL() +REAL,DIMENSION(:),POINTER :: KTC43=>NULL() +REAL,DIMENSION(:),POINTER :: KTC44=>NULL() +REAL,DIMENSION(:),POINTER :: KTC45=>NULL() +REAL,DIMENSION(:),POINTER :: KTC46=>NULL() +REAL,DIMENSION(:),POINTER :: KTC47=>NULL() +REAL,DIMENSION(:),POINTER :: KTC48=>NULL() +REAL,DIMENSION(:),POINTER :: KTC49=>NULL() +REAL,DIMENSION(:),POINTER :: KTC50=>NULL() +REAL,DIMENSION(:),POINTER :: KTC51=>NULL() +REAL,DIMENSION(:),POINTER :: KTC52=>NULL() +REAL,DIMENSION(:),POINTER :: KTC53=>NULL() +REAL,DIMENSION(:),POINTER :: KTC54=>NULL() +REAL,DIMENSION(:),POINTER :: KTC55=>NULL() +REAL,DIMENSION(:),POINTER :: KTC56=>NULL() +REAL,DIMENSION(:),POINTER :: KTC57=>NULL() +REAL,DIMENSION(:),POINTER :: KTC58=>NULL() +REAL,DIMENSION(:),POINTER :: KTC59=>NULL() +REAL,DIMENSION(:),POINTER :: KTC60=>NULL() +REAL,DIMENSION(:),POINTER :: KTC61=>NULL() +REAL,DIMENSION(:),POINTER :: KTC62=>NULL() REAL,DIMENSION(:),POINTER :: KTR1=>NULL() REAL,DIMENSION(:),POINTER :: KTR2=>NULL() REAL,DIMENSION(:),POINTER :: KTR3=>NULL() @@ -1767,6 +3503,28 @@ REAL,DIMENSION(:),POINTER :: KTR37=>NULL() REAL,DIMENSION(:),POINTER :: KTR38=>NULL() REAL,DIMENSION(:),POINTER :: KTR39=>NULL() REAL,DIMENSION(:),POINTER :: KTR40=>NULL() +REAL,DIMENSION(:),POINTER :: KTR41=>NULL() +REAL,DIMENSION(:),POINTER :: KTR42=>NULL() +REAL,DIMENSION(:),POINTER :: KTR43=>NULL() +REAL,DIMENSION(:),POINTER :: KTR44=>NULL() +REAL,DIMENSION(:),POINTER :: KTR45=>NULL() +REAL,DIMENSION(:),POINTER :: KTR46=>NULL() +REAL,DIMENSION(:),POINTER :: KTR47=>NULL() +REAL,DIMENSION(:),POINTER :: KTR48=>NULL() +REAL,DIMENSION(:),POINTER :: KTR49=>NULL() +REAL,DIMENSION(:),POINTER :: KTR50=>NULL() +REAL,DIMENSION(:),POINTER :: KTR51=>NULL() +REAL,DIMENSION(:),POINTER :: KTR52=>NULL() +REAL,DIMENSION(:),POINTER :: KTR53=>NULL() +REAL,DIMENSION(:),POINTER :: KTR54=>NULL() +REAL,DIMENSION(:),POINTER :: KTR55=>NULL() +REAL,DIMENSION(:),POINTER :: KTR56=>NULL() +REAL,DIMENSION(:),POINTER :: KTR57=>NULL() +REAL,DIMENSION(:),POINTER :: KTR58=>NULL() +REAL,DIMENSION(:),POINTER :: KTR59=>NULL() +REAL,DIMENSION(:),POINTER :: KTR60=>NULL() +REAL,DIMENSION(:),POINTER :: KTR61=>NULL() +REAL,DIMENSION(:),POINTER :: KTR62=>NULL() REAL,DIMENSION(:),POINTER :: KC1=>NULL() REAL,DIMENSION(:),POINTER :: KC2=>NULL() REAL,DIMENSION(:),POINTER :: KC3=>NULL() @@ -1797,6 +3555,22 @@ REAL,DIMENSION(:),POINTER :: KC27=>NULL() REAL,DIMENSION(:),POINTER :: KC28=>NULL() REAL,DIMENSION(:),POINTER :: KC29=>NULL() REAL,DIMENSION(:),POINTER :: KC30=>NULL() +REAL,DIMENSION(:),POINTER :: KC31=>NULL() +REAL,DIMENSION(:),POINTER :: KC32=>NULL() +REAL,DIMENSION(:),POINTER :: KC33=>NULL() +REAL,DIMENSION(:),POINTER :: KC34=>NULL() +REAL,DIMENSION(:),POINTER :: KC35=>NULL() +REAL,DIMENSION(:),POINTER :: KC36=>NULL() +REAL,DIMENSION(:),POINTER :: KC37=>NULL() +REAL,DIMENSION(:),POINTER :: KC38=>NULL() +REAL,DIMENSION(:),POINTER :: KC39=>NULL() +REAL,DIMENSION(:),POINTER :: KC40=>NULL() +REAL,DIMENSION(:),POINTER :: KC41=>NULL() +REAL,DIMENSION(:),POINTER :: KC42=>NULL() +REAL,DIMENSION(:),POINTER :: KC43=>NULL() +REAL,DIMENSION(:),POINTER :: KC44=>NULL() +REAL,DIMENSION(:),POINTER :: KC45=>NULL() +REAL,DIMENSION(:),POINTER :: KC46=>NULL() REAL,DIMENSION(:),POINTER :: KR1=>NULL() REAL,DIMENSION(:),POINTER :: KR2=>NULL() REAL,DIMENSION(:),POINTER :: KR3=>NULL() @@ -1827,6 +3601,22 @@ REAL,DIMENSION(:),POINTER :: KR27=>NULL() REAL,DIMENSION(:),POINTER :: KR28=>NULL() REAL,DIMENSION(:),POINTER :: KR29=>NULL() REAL,DIMENSION(:),POINTER :: KR30=>NULL() +REAL,DIMENSION(:),POINTER :: KR31=>NULL() +REAL,DIMENSION(:),POINTER :: KR32=>NULL() +REAL,DIMENSION(:),POINTER :: KR33=>NULL() +REAL,DIMENSION(:),POINTER :: KR34=>NULL() +REAL,DIMENSION(:),POINTER :: KR35=>NULL() +REAL,DIMENSION(:),POINTER :: KR36=>NULL() +REAL,DIMENSION(:),POINTER :: KR37=>NULL() +REAL,DIMENSION(:),POINTER :: KR38=>NULL() +REAL,DIMENSION(:),POINTER :: KR39=>NULL() +REAL,DIMENSION(:),POINTER :: KR40=>NULL() +REAL,DIMENSION(:),POINTER :: KR41=>NULL() +REAL,DIMENSION(:),POINTER :: KR42=>NULL() +REAL,DIMENSION(:),POINTER :: KR43=>NULL() +REAL,DIMENSION(:),POINTER :: KR44=>NULL() +REAL,DIMENSION(:),POINTER :: KR45=>NULL() +REAL,DIMENSION(:),POINTER :: KR46=>NULL() ! output channel (NOUT) and verbosity level (NVERB) INTEGER :: NOUT INTEGER,DIMENSION(:),POINTER :: NVERB=>NULL() @@ -1836,19 +3626,41 @@ INTEGER,DIMENSION(:),POINTER :: NVERB=>NULL() ! supplementary variables of the CCS that are to be placed into ! the TYPE definition of TPK (to be addressed e.g. as TPK%O2): ! -INTEGER,DIMENSION(:),POINTER :: MODELLEVEL ! index of the model level (1 for box model) -REAL,DIMENSION(:),POINTER :: T, &! temperature (K) - PRESSURE, &! pressure (atm) - M, &! air density (molec/cm3) - H2O, &! conc. of water molecules (molec/cm3) - CLOUDWATER, &! cloud water (kg/kg) - RAINWATER, &! rain water (kg/kg) - RHODREF, &! ref dry air density (kg/m3) - O2, N2, H2, &! conc. of oxigen nitrogen, hydrogen (molec/cm3) - OH, O1D, O3P, &! (molec/cm3) at equilibrium (fast species) - LON, &! longitude of curtrent grid point (degree) - LAT ! latitude of curtrent grid point (degree) +INTEGER,DIMENSION(:),POINTER :: MODELLEVEL, &! index of the model level (1 for box model) + LON, &! longitude of curtrent grid point (degree) + LAT ! latitude of curtrent grid point (degree) INTEGER,DIMENSION(:),POINTER :: YEAR, MONTH, DAY ! starting date of experiment (~DTEXP) +REAL,DIMENSION(:),POINTER :: T, &! temperature (K) + PRESSURE, &! pressure (atm) + M, &! air density (molec/cm3) + H2O, &! conc. of water molecules (molec/cm3) + CLOUDWATER, &! cloud water (kg/kg) + RAINWATER, &! rain water (kg/kg) + RHODREF, &! ref dry air density (kg/m3) + O2, N2, H2, &! conc. of oxigen, nitrogen, hydrogen (molec/cm3) + CH4, CO2, &! conc. of methane, carbon dioxide (molec/cm3) + O, OSD, &! (molec/cm3) at equilibrium (fast species) + RO22, RO23, RO24, &! continue + RO26, RO27, RO28, RO29, &! continue + RO210, RO211, RO212, &! continue + RO213, RO214, RO215, &! continue + RO216, RO217, RO218, &! continue + RO219, RO220, RO221, &! continue + RO222, RO223, RO224, &! continue + RO225, RO226, RO227, &! continue + RO228, RO229, RO230, &! continue + RO231, RO232, RO233, &! continue + RO234, RO235, RO236, &! continue + RO237, RO238, RO239, &! continue + RO240, RO241, RO242, &! continue + RO243, RO244, RO245, &! continue + RO246, RO247, RO248, &! continue + RO249, RO250, RO251, &! continue + RO252, RO253, RO254, &! continue + RO255, RO256, RO257, &! continue + RO258, RAD1, RAD2, &! continue + RAD3, RAD4, RAD5, &! continue + RAD6, RAD7, RAD8 REAL,DIMENSION(:),POINTER :: LWC, &! cloud liquid water content (vol/vol) MOL2MOLECCLOUD, &! conversion factor mole/L to molec/cm3 in cloud RADC, &! mean radius of cloud droplet (µm) @@ -1857,9 +3669,23 @@ REAL,DIMENSION(:),POINTER :: LWC, &! cloud liquid water content (v MOL2MOLECRAIN, &! conversion factor mole/L to molec/cm3 in rain RADR, &! mean radius of rain drops (µm) PHR, &! pH value of rain water - CO2, &! conc. of CO2 (molec/cm3) RCH, &! perfect gases constant W_O2 ! conc. of O2 in aqueous phase at equilibrium (M) +REAL,DIMENSION(:),POINTER :: CF1, CF2, CF3, CF4, CF5,& ! stochiometric coef. + CF6, CF7, CF8, CF9, CF10,& + CF11, CF12, CF13, CF14, CF15,& + CF16, CF17, CF18, CF19, CF20,& + CF21, CF22, CF23, CF24, CF25,& + CF26, CF27, CF28, CF29, CF30,& + CF31, CF32, CF33, CF34, CF35,& + CF36, CF37, CF38, CF39, CF40,& + CF41, CF42, CF43, CF44, CF45,& + CF46, CF47, CF48, CF49, CFA1,& + CFA2, CFA3, CFA4, CFA5, CFA6,& + CFA7, CFA8, CFA9, CFA10, CFA11,& + CFA12, CFA13, CFA14, CFA15, CFA16,& + CFA17, CFA18, CFA19, CFA20, CFA21,& + CFA22, CFA23, CFA24 ! ! /END_MODULE/ END TYPE CCSTYPE @@ -1876,97 +3702,167 @@ END TYPE CCSTYPE TYPE(CCSTYPE), DIMENSION(8), TARGET, SAVE :: TACCS ! 8 models ! ! list of chemical species indices -INTEGER, PARAMETER :: JP_O3 = 1 -INTEGER, PARAMETER :: JP_H2O2 = 2 -INTEGER, PARAMETER :: JP_NO = 3 -INTEGER, PARAMETER :: JP_NO2 = 4 -INTEGER, PARAMETER :: JP_NO3 = 5 -INTEGER, PARAMETER :: JP_N2O5 = 6 -INTEGER, PARAMETER :: JP_HONO = 7 -INTEGER, PARAMETER :: JP_HNO3 = 8 -INTEGER, PARAMETER :: JP_HNO4 = 9 -INTEGER, PARAMETER :: JP_NH3 = 10 -INTEGER, PARAMETER :: JP_SO2 = 11 -INTEGER, PARAMETER :: JP_SULF = 12 -INTEGER, PARAMETER :: JP_CO = 13 -INTEGER, PARAMETER :: JP_OH = 14 -INTEGER, PARAMETER :: JP_HO2 = 15 -INTEGER, PARAMETER :: JP_CH4 = 16 -INTEGER, PARAMETER :: JP_ETH = 17 -INTEGER, PARAMETER :: JP_ALKA = 18 -INTEGER, PARAMETER :: JP_ALKE = 19 -INTEGER, PARAMETER :: JP_BIO = 20 -INTEGER, PARAMETER :: JP_ARO = 21 -INTEGER, PARAMETER :: JP_HCHO = 22 -INTEGER, PARAMETER :: JP_ALD = 23 -INTEGER, PARAMETER :: JP_KET = 24 -INTEGER, PARAMETER :: JP_CARBO = 25 -INTEGER, PARAMETER :: JP_ONIT = 26 -INTEGER, PARAMETER :: JP_PAN = 27 -INTEGER, PARAMETER :: JP_OP1 = 28 -INTEGER, PARAMETER :: JP_OP2 = 29 -INTEGER, PARAMETER :: JP_ORA1 = 30 -INTEGER, PARAMETER :: JP_ORA2 = 31 -INTEGER, PARAMETER :: JP_MO2 = 32 -INTEGER, PARAMETER :: JP_ALKAP = 33 -INTEGER, PARAMETER :: JP_ALKEP = 34 -INTEGER, PARAMETER :: JP_BIOP = 35 -INTEGER, PARAMETER :: JP_PHO = 36 -INTEGER, PARAMETER :: JP_ADD = 37 -INTEGER, PARAMETER :: JP_AROP = 38 -INTEGER, PARAMETER :: JP_CARBOP = 39 -INTEGER, PARAMETER :: JP_OLN = 40 -INTEGER, PARAMETER :: JP_XO2 = 41 -INTEGER, PARAMETER :: JP_WC_O3 = 42 -INTEGER, PARAMETER :: JP_WC_H2O2 = 43 -INTEGER, PARAMETER :: JP_WC_NO = 44 -INTEGER, PARAMETER :: JP_WC_NO2 = 45 -INTEGER, PARAMETER :: JP_WC_NO3 = 46 -INTEGER, PARAMETER :: JP_WC_N2O5 = 47 -INTEGER, PARAMETER :: JP_WC_HONO = 48 -INTEGER, PARAMETER :: JP_WC_HNO3 = 49 -INTEGER, PARAMETER :: JP_WC_HNO4 = 50 -INTEGER, PARAMETER :: JP_WC_NH3 = 51 -INTEGER, PARAMETER :: JP_WC_OH = 52 -INTEGER, PARAMETER :: JP_WC_HO2 = 53 -INTEGER, PARAMETER :: JP_WC_CO2 = 54 -INTEGER, PARAMETER :: JP_WC_SO2 = 55 -INTEGER, PARAMETER :: JP_WC_SULF = 56 -INTEGER, PARAMETER :: JP_WC_HCHO = 57 -INTEGER, PARAMETER :: JP_WC_ORA1 = 58 -INTEGER, PARAMETER :: JP_WC_ORA2 = 59 -INTEGER, PARAMETER :: JP_WC_MO2 = 60 -INTEGER, PARAMETER :: JP_WC_OP1 = 61 -INTEGER, PARAMETER :: JP_WC_ASO3 = 62 -INTEGER, PARAMETER :: JP_WC_ASO4 = 63 -INTEGER, PARAMETER :: JP_WC_ASO5 = 64 -INTEGER, PARAMETER :: JP_WC_AHSO5 = 65 -INTEGER, PARAMETER :: JP_WC_AHMS = 66 -INTEGER, PARAMETER :: JP_WR_O3 = 67 -INTEGER, PARAMETER :: JP_WR_H2O2 = 68 -INTEGER, PARAMETER :: JP_WR_NO = 69 -INTEGER, PARAMETER :: JP_WR_NO2 = 70 -INTEGER, PARAMETER :: JP_WR_NO3 = 71 -INTEGER, PARAMETER :: JP_WR_N2O5 = 72 -INTEGER, PARAMETER :: JP_WR_HONO = 73 -INTEGER, PARAMETER :: JP_WR_HNO3 = 74 -INTEGER, PARAMETER :: JP_WR_HNO4 = 75 -INTEGER, PARAMETER :: JP_WR_NH3 = 76 -INTEGER, PARAMETER :: JP_WR_OH = 77 -INTEGER, PARAMETER :: JP_WR_HO2 = 78 -INTEGER, PARAMETER :: JP_WR_CO2 = 79 -INTEGER, PARAMETER :: JP_WR_SO2 = 80 -INTEGER, PARAMETER :: JP_WR_SULF = 81 -INTEGER, PARAMETER :: JP_WR_HCHO = 82 -INTEGER, PARAMETER :: JP_WR_ORA1 = 83 -INTEGER, PARAMETER :: JP_WR_ORA2 = 84 -INTEGER, PARAMETER :: JP_WR_MO2 = 85 -INTEGER, PARAMETER :: JP_WR_OP1 = 86 -INTEGER, PARAMETER :: JP_WR_ASO3 = 87 -INTEGER, PARAMETER :: JP_WR_ASO4 = 88 -INTEGER, PARAMETER :: JP_WR_ASO5 = 89 -INTEGER, PARAMETER :: JP_WR_AHSO5 = 90 -INTEGER, PARAMETER :: JP_WR_AHMS = 91 +INTEGER, PARAMETER :: JP_NO = 1 +INTEGER, PARAMETER :: JP_NO2 = 2 +INTEGER, PARAMETER :: JP_O3 = 3 +INTEGER, PARAMETER :: JP_HONO = 4 +INTEGER, PARAMETER :: JP_HNO3 = 5 +INTEGER, PARAMETER :: JP_HNO4 = 6 +INTEGER, PARAMETER :: JP_N2O5 = 7 +INTEGER, PARAMETER :: JP_NO3 = 8 +INTEGER, PARAMETER :: JP_NH3 = 9 +INTEGER, PARAMETER :: JP_HO2 = 10 +INTEGER, PARAMETER :: JP_CO = 11 +INTEGER, PARAMETER :: JP_H2O2 = 12 +INTEGER, PARAMETER :: JP_SO2 = 13 +INTEGER, PARAMETER :: JP_H2SO4 = 14 +INTEGER, PARAMETER :: JP_OH = 15 +INTEGER, PARAMETER :: JP_ETHE = 16 +INTEGER, PARAMETER :: JP_OLEL = 17 +INTEGER, PARAMETER :: JP_OLEH = 18 +INTEGER, PARAMETER :: JP_ALKL = 19 +INTEGER, PARAMETER :: JP_ALKM = 20 +INTEGER, PARAMETER :: JP_ALKH = 21 +INTEGER, PARAMETER :: JP_AROH = 22 +INTEGER, PARAMETER :: JP_AROL = 23 +INTEGER, PARAMETER :: JP_AROO = 24 +INTEGER, PARAMETER :: JP_ARAL = 25 +INTEGER, PARAMETER :: JP_ARAC = 26 +INTEGER, PARAMETER :: JP_PAH = 27 +INTEGER, PARAMETER :: JP_HCHO = 28 +INTEGER, PARAMETER :: JP_ALD2 = 29 +INTEGER, PARAMETER :: JP_KETL = 30 +INTEGER, PARAMETER :: JP_KETH = 31 +INTEGER, PARAMETER :: JP_MEOH = 32 +INTEGER, PARAMETER :: JP_ETOH = 33 +INTEGER, PARAMETER :: JP_ALCH = 34 +INTEGER, PARAMETER :: JP_ISOP = 35 +INTEGER, PARAMETER :: JP_BIOL = 36 +INTEGER, PARAMETER :: JP_BIOH = 37 +INTEGER, PARAMETER :: JP_MTBE = 38 +INTEGER, PARAMETER :: JP_MVK = 39 +INTEGER, PARAMETER :: JP_MCR = 40 +INTEGER, PARAMETER :: JP_MGLY = 41 +INTEGER, PARAMETER :: JP_GLY = 42 +INTEGER, PARAMETER :: JP_ORA1 = 43 +INTEGER, PARAMETER :: JP_ORA2 = 44 +INTEGER, PARAMETER :: JP_ACID = 45 +INTEGER, PARAMETER :: JP_UR28 = 46 +INTEGER, PARAMETER :: JP_UR21 = 47 +INTEGER, PARAMETER :: JP_URG2 = 48 +INTEGER, PARAMETER :: JP_UR26 = 49 +INTEGER, PARAMETER :: JP_RPG2 = 50 +INTEGER, PARAMETER :: JP_RP18 = 51 +INTEGER, PARAMETER :: JP_RPG3 = 52 +INTEGER, PARAMETER :: JP_URG4 = 53 +INTEGER, PARAMETER :: JP_UR8 = 54 +INTEGER, PARAMETER :: JP_UR17 = 55 +INTEGER, PARAMETER :: JP_UR7 = 56 +INTEGER, PARAMETER :: JP_RPR3 = 57 +INTEGER, PARAMETER :: JP_URG6 = 58 +INTEGER, PARAMETER :: JP_UR22 = 59 +INTEGER, PARAMETER :: JP_URG7 = 60 +INTEGER, PARAMETER :: JP_RPR4 = 61 +INTEGER, PARAMETER :: JP_RPR7 = 62 +INTEGER, PARAMETER :: JP_RPG7 = 63 +INTEGER, PARAMETER :: JP_URG8 = 64 +INTEGER, PARAMETER :: JP_UR19 = 65 +INTEGER, PARAMETER :: JP_URG9 = 66 +INTEGER, PARAMETER :: JP_AP7 = 67 +INTEGER, PARAMETER :: JP_URG10 = 68 +INTEGER, PARAMETER :: JP_RPR1 = 69 +INTEGER, PARAMETER :: JP_RPR5 = 70 +INTEGER, PARAMETER :: JP_RPR8 = 71 +INTEGER, PARAMETER :: JP_RP10 = 72 +INTEGER, PARAMETER :: JP_RP11 = 73 +INTEGER, PARAMETER :: JP_RP16 = 74 +INTEGER, PARAMETER :: JP_RPRL = 75 +INTEGER, PARAMETER :: JP_APAN = 76 +INTEGER, PARAMETER :: JP_PAN1 = 77 +INTEGER, PARAMETER :: JP_PAN2 = 78 +INTEGER, PARAMETER :: JP_PAN3 = 79 +INTEGER, PARAMETER :: JP_PAN4 = 80 +INTEGER, PARAMETER :: JP_PAN6 = 81 +INTEGER, PARAMETER :: JP_PAN7 = 82 +INTEGER, PARAMETER :: JP_PAN8 = 83 +INTEGER, PARAMETER :: JP_PN10 = 84 +INTEGER, PARAMETER :: JP_RO2T = 85 +INTEGER, PARAMETER :: JP_RO21 = 86 +INTEGER, PARAMETER :: JP_RO25 = 87 +INTEGER, PARAMETER :: JP_WC_O3 = 88 +INTEGER, PARAMETER :: JP_WC_H2O2 = 89 +INTEGER, PARAMETER :: JP_WC_NO = 90 +INTEGER, PARAMETER :: JP_WC_NO2 = 91 +INTEGER, PARAMETER :: JP_WC_NO3 = 92 +INTEGER, PARAMETER :: JP_WC_N2O5 = 93 +INTEGER, PARAMETER :: JP_WC_HONO = 94 +INTEGER, PARAMETER :: JP_WC_HNO3 = 95 +INTEGER, PARAMETER :: JP_WC_HNO4 = 96 +INTEGER, PARAMETER :: JP_WC_NH3 = 97 +INTEGER, PARAMETER :: JP_WC_OH = 98 +INTEGER, PARAMETER :: JP_WC_HO2 = 99 +INTEGER, PARAMETER :: JP_WC_CO2 = 100 +INTEGER, PARAMETER :: JP_WC_SO2 = 101 +INTEGER, PARAMETER :: JP_WC_H2SO4 = 102 +INTEGER, PARAMETER :: JP_WC_RO21 = 103 +INTEGER, PARAMETER :: JP_WC_RO25 = 104 +INTEGER, PARAMETER :: JP_WC_MEOH = 105 +INTEGER, PARAMETER :: JP_WC_ETOH = 106 +INTEGER, PARAMETER :: JP_WC_ALCH = 107 +INTEGER, PARAMETER :: JP_WC_HCHO = 108 +INTEGER, PARAMETER :: JP_WC_ALD2 = 109 +INTEGER, PARAMETER :: JP_WC_GLY = 110 +INTEGER, PARAMETER :: JP_WC_MGLY = 111 +INTEGER, PARAMETER :: JP_WC_KETL = 112 +INTEGER, PARAMETER :: JP_WC_ORA1 = 113 +INTEGER, PARAMETER :: JP_WC_ORA2 = 114 +INTEGER, PARAMETER :: JP_WC_ACID = 115 +INTEGER, PARAMETER :: JP_WC_RP16 = 116 +INTEGER, PARAMETER :: JP_WC_UR21 = 117 +INTEGER, PARAMETER :: JP_WC_UR28 = 118 +INTEGER, PARAMETER :: JP_WC_ACID2 = 119 +INTEGER, PARAMETER :: JP_WC_ASO3 = 120 +INTEGER, PARAMETER :: JP_WC_ASO4 = 121 +INTEGER, PARAMETER :: JP_WC_ASO5 = 122 +INTEGER, PARAMETER :: JP_WC_AHSO5 = 123 +INTEGER, PARAMETER :: JP_WC_AHMS = 124 +INTEGER, PARAMETER :: JP_WR_O3 = 125 +INTEGER, PARAMETER :: JP_WR_H2O2 = 126 +INTEGER, PARAMETER :: JP_WR_NO = 127 +INTEGER, PARAMETER :: JP_WR_NO2 = 128 +INTEGER, PARAMETER :: JP_WR_NO3 = 129 +INTEGER, PARAMETER :: JP_WR_N2O5 = 130 +INTEGER, PARAMETER :: JP_WR_HONO = 131 +INTEGER, PARAMETER :: JP_WR_HNO3 = 132 +INTEGER, PARAMETER :: JP_WR_HNO4 = 133 +INTEGER, PARAMETER :: JP_WR_NH3 = 134 +INTEGER, PARAMETER :: JP_WR_OH = 135 +INTEGER, PARAMETER :: JP_WR_HO2 = 136 +INTEGER, PARAMETER :: JP_WR_CO2 = 137 +INTEGER, PARAMETER :: JP_WR_SO2 = 138 +INTEGER, PARAMETER :: JP_WR_H2SO4 = 139 +INTEGER, PARAMETER :: JP_WR_RO21 = 140 +INTEGER, PARAMETER :: JP_WR_RO25 = 141 +INTEGER, PARAMETER :: JP_WR_MEOH = 142 +INTEGER, PARAMETER :: JP_WR_ETOH = 143 +INTEGER, PARAMETER :: JP_WR_ALCH = 144 +INTEGER, PARAMETER :: JP_WR_HCHO = 145 +INTEGER, PARAMETER :: JP_WR_ALD2 = 146 +INTEGER, PARAMETER :: JP_WR_GLY = 147 +INTEGER, PARAMETER :: JP_WR_MGLY = 148 +INTEGER, PARAMETER :: JP_WR_KETL = 149 +INTEGER, PARAMETER :: JP_WR_ORA1 = 150 +INTEGER, PARAMETER :: JP_WR_ORA2 = 151 +INTEGER, PARAMETER :: JP_WR_ACID = 152 +INTEGER, PARAMETER :: JP_WR_RP16 = 153 +INTEGER, PARAMETER :: JP_WR_UR21 = 154 +INTEGER, PARAMETER :: JP_WR_UR28 = 155 +INTEGER, PARAMETER :: JP_WR_ACID2 = 156 +INTEGER, PARAMETER :: JP_WR_ASO3 = 157 +INTEGER, PARAMETER :: JP_WR_ASO4 = 158 +INTEGER, PARAMETER :: JP_WR_ASO5 = 159 +INTEGER, PARAMETER :: JP_WR_AHSO5 = 160 +INTEGER, PARAMETER :: JP_WR_AHMS = 161 ! END MODULE MODD_CH_M9_SCHEME ! @@ -2055,7 +3951,8 @@ ALLOCATE(TACCS(KMI)%K014(KVECNPT)) ALLOCATE(TACCS(KMI)%K015(KVECNPT)) ALLOCATE(TACCS(KMI)%K016(KVECNPT)) ALLOCATE(TACCS(KMI)%K017(KVECNPT)) -ALLOCATE(TACCS(KMI)%K018(KVECNPT)) +ALLOCATE(TACCS(KMI)%K018A(KVECNPT)) +ALLOCATE(TACCS(KMI)%K018B(KVECNPT)) ALLOCATE(TACCS(KMI)%K019(KVECNPT)) ALLOCATE(TACCS(KMI)%K020(KVECNPT)) ALLOCATE(TACCS(KMI)%K021(KVECNPT)) @@ -2137,9 +4034,9 @@ ALLOCATE(TACCS(KMI)%K096(KVECNPT)) ALLOCATE(TACCS(KMI)%K097(KVECNPT)) ALLOCATE(TACCS(KMI)%K098(KVECNPT)) ALLOCATE(TACCS(KMI)%K099(KVECNPT)) -ALLOCATE(TACCS(KMI)%K0100(KVECNPT)) -ALLOCATE(TACCS(KMI)%K0101(KVECNPT)) -ALLOCATE(TACCS(KMI)%K0102(KVECNPT)) +ALLOCATE(TACCS(KMI)%K100(KVECNPT)) +ALLOCATE(TACCS(KMI)%K101(KVECNPT)) +ALLOCATE(TACCS(KMI)%K102(KVECNPT)) ALLOCATE(TACCS(KMI)%K103(KVECNPT)) ALLOCATE(TACCS(KMI)%K104(KVECNPT)) ALLOCATE(TACCS(KMI)%K105(KVECNPT)) @@ -2170,6 +4067,238 @@ ALLOCATE(TACCS(KMI)%K129(KVECNPT)) ALLOCATE(TACCS(KMI)%K130(KVECNPT)) ALLOCATE(TACCS(KMI)%K131(KVECNPT)) ALLOCATE(TACCS(KMI)%K132(KVECNPT)) +ALLOCATE(TACCS(KMI)%K133(KVECNPT)) +ALLOCATE(TACCS(KMI)%K134(KVECNPT)) +ALLOCATE(TACCS(KMI)%K135(KVECNPT)) +ALLOCATE(TACCS(KMI)%K136(KVECNPT)) +ALLOCATE(TACCS(KMI)%K137(KVECNPT)) +ALLOCATE(TACCS(KMI)%K138(KVECNPT)) +ALLOCATE(TACCS(KMI)%K139(KVECNPT)) +ALLOCATE(TACCS(KMI)%K140(KVECNPT)) +ALLOCATE(TACCS(KMI)%K141(KVECNPT)) +ALLOCATE(TACCS(KMI)%K142(KVECNPT)) +ALLOCATE(TACCS(KMI)%K143(KVECNPT)) +ALLOCATE(TACCS(KMI)%K144(KVECNPT)) +ALLOCATE(TACCS(KMI)%K145(KVECNPT)) +ALLOCATE(TACCS(KMI)%K146(KVECNPT)) +ALLOCATE(TACCS(KMI)%K147(KVECNPT)) +ALLOCATE(TACCS(KMI)%K148(KVECNPT)) +ALLOCATE(TACCS(KMI)%K149(KVECNPT)) +ALLOCATE(TACCS(KMI)%K150(KVECNPT)) +ALLOCATE(TACCS(KMI)%K151(KVECNPT)) +ALLOCATE(TACCS(KMI)%K152(KVECNPT)) +ALLOCATE(TACCS(KMI)%K153(KVECNPT)) +ALLOCATE(TACCS(KMI)%K154(KVECNPT)) +ALLOCATE(TACCS(KMI)%K155(KVECNPT)) +ALLOCATE(TACCS(KMI)%K156(KVECNPT)) +ALLOCATE(TACCS(KMI)%K157(KVECNPT)) +ALLOCATE(TACCS(KMI)%K158(KVECNPT)) +ALLOCATE(TACCS(KMI)%K159(KVECNPT)) +ALLOCATE(TACCS(KMI)%K160(KVECNPT)) +ALLOCATE(TACCS(KMI)%K161(KVECNPT)) +ALLOCATE(TACCS(KMI)%K162(KVECNPT)) +ALLOCATE(TACCS(KMI)%K163(KVECNPT)) +ALLOCATE(TACCS(KMI)%K164(KVECNPT)) +ALLOCATE(TACCS(KMI)%K165(KVECNPT)) +ALLOCATE(TACCS(KMI)%K166(KVECNPT)) +ALLOCATE(TACCS(KMI)%K167(KVECNPT)) +ALLOCATE(TACCS(KMI)%K168(KVECNPT)) +ALLOCATE(TACCS(KMI)%K169(KVECNPT)) +ALLOCATE(TACCS(KMI)%K170(KVECNPT)) +ALLOCATE(TACCS(KMI)%K171(KVECNPT)) +ALLOCATE(TACCS(KMI)%K172(KVECNPT)) +ALLOCATE(TACCS(KMI)%K173(KVECNPT)) +ALLOCATE(TACCS(KMI)%K174(KVECNPT)) +ALLOCATE(TACCS(KMI)%K175(KVECNPT)) +ALLOCATE(TACCS(KMI)%K176(KVECNPT)) +ALLOCATE(TACCS(KMI)%K177(KVECNPT)) +ALLOCATE(TACCS(KMI)%K178(KVECNPT)) +ALLOCATE(TACCS(KMI)%K179(KVECNPT)) +ALLOCATE(TACCS(KMI)%K180(KVECNPT)) +ALLOCATE(TACCS(KMI)%K181(KVECNPT)) +ALLOCATE(TACCS(KMI)%K182(KVECNPT)) +ALLOCATE(TACCS(KMI)%K183(KVECNPT)) +ALLOCATE(TACCS(KMI)%K184(KVECNPT)) +ALLOCATE(TACCS(KMI)%K185(KVECNPT)) +ALLOCATE(TACCS(KMI)%K186(KVECNPT)) +ALLOCATE(TACCS(KMI)%K187(KVECNPT)) +ALLOCATE(TACCS(KMI)%K188(KVECNPT)) +ALLOCATE(TACCS(KMI)%K189(KVECNPT)) +ALLOCATE(TACCS(KMI)%K190(KVECNPT)) +ALLOCATE(TACCS(KMI)%K191(KVECNPT)) +ALLOCATE(TACCS(KMI)%K192(KVECNPT)) +ALLOCATE(TACCS(KMI)%K193(KVECNPT)) +ALLOCATE(TACCS(KMI)%K194(KVECNPT)) +ALLOCATE(TACCS(KMI)%K195(KVECNPT)) +ALLOCATE(TACCS(KMI)%K196(KVECNPT)) +ALLOCATE(TACCS(KMI)%K197(KVECNPT)) +ALLOCATE(TACCS(KMI)%K198(KVECNPT)) +ALLOCATE(TACCS(KMI)%K199(KVECNPT)) +ALLOCATE(TACCS(KMI)%K200(KVECNPT)) +ALLOCATE(TACCS(KMI)%K201(KVECNPT)) +ALLOCATE(TACCS(KMI)%K202(KVECNPT)) +ALLOCATE(TACCS(KMI)%K203(KVECNPT)) +ALLOCATE(TACCS(KMI)%K204(KVECNPT)) +ALLOCATE(TACCS(KMI)%K205(KVECNPT)) +ALLOCATE(TACCS(KMI)%K206(KVECNPT)) +ALLOCATE(TACCS(KMI)%K207(KVECNPT)) +ALLOCATE(TACCS(KMI)%K208(KVECNPT)) +ALLOCATE(TACCS(KMI)%K209(KVECNPT)) +ALLOCATE(TACCS(KMI)%K210(KVECNPT)) +ALLOCATE(TACCS(KMI)%K211(KVECNPT)) +ALLOCATE(TACCS(KMI)%K212(KVECNPT)) +ALLOCATE(TACCS(KMI)%K213(KVECNPT)) +ALLOCATE(TACCS(KMI)%K214(KVECNPT)) +ALLOCATE(TACCS(KMI)%K215(KVECNPT)) +ALLOCATE(TACCS(KMI)%K216(KVECNPT)) +ALLOCATE(TACCS(KMI)%K217(KVECNPT)) +ALLOCATE(TACCS(KMI)%K218(KVECNPT)) +ALLOCATE(TACCS(KMI)%K219(KVECNPT)) +ALLOCATE(TACCS(KMI)%K220(KVECNPT)) +ALLOCATE(TACCS(KMI)%K221(KVECNPT)) +ALLOCATE(TACCS(KMI)%K222(KVECNPT)) +ALLOCATE(TACCS(KMI)%K223(KVECNPT)) +ALLOCATE(TACCS(KMI)%K224(KVECNPT)) +ALLOCATE(TACCS(KMI)%K225(KVECNPT)) +ALLOCATE(TACCS(KMI)%K226(KVECNPT)) +ALLOCATE(TACCS(KMI)%K227(KVECNPT)) +ALLOCATE(TACCS(KMI)%K228(KVECNPT)) +ALLOCATE(TACCS(KMI)%K229(KVECNPT)) +ALLOCATE(TACCS(KMI)%K230(KVECNPT)) +ALLOCATE(TACCS(KMI)%K231(KVECNPT)) +ALLOCATE(TACCS(KMI)%K232(KVECNPT)) +ALLOCATE(TACCS(KMI)%K233(KVECNPT)) +ALLOCATE(TACCS(KMI)%K234(KVECNPT)) +ALLOCATE(TACCS(KMI)%K235(KVECNPT)) +ALLOCATE(TACCS(KMI)%K236(KVECNPT)) +ALLOCATE(TACCS(KMI)%K237(KVECNPT)) +ALLOCATE(TACCS(KMI)%K238(KVECNPT)) +ALLOCATE(TACCS(KMI)%K239(KVECNPT)) +ALLOCATE(TACCS(KMI)%K240(KVECNPT)) +ALLOCATE(TACCS(KMI)%K241(KVECNPT)) +ALLOCATE(TACCS(KMI)%K242(KVECNPT)) +ALLOCATE(TACCS(KMI)%K243(KVECNPT)) +ALLOCATE(TACCS(KMI)%K244(KVECNPT)) +ALLOCATE(TACCS(KMI)%K245(KVECNPT)) +ALLOCATE(TACCS(KMI)%K246(KVECNPT)) +ALLOCATE(TACCS(KMI)%K247(KVECNPT)) +ALLOCATE(TACCS(KMI)%K248(KVECNPT)) +ALLOCATE(TACCS(KMI)%K249(KVECNPT)) +ALLOCATE(TACCS(KMI)%K250(KVECNPT)) +ALLOCATE(TACCS(KMI)%K251(KVECNPT)) +ALLOCATE(TACCS(KMI)%K252(KVECNPT)) +ALLOCATE(TACCS(KMI)%K253(KVECNPT)) +ALLOCATE(TACCS(KMI)%K254(KVECNPT)) +ALLOCATE(TACCS(KMI)%K255(KVECNPT)) +ALLOCATE(TACCS(KMI)%K256(KVECNPT)) +ALLOCATE(TACCS(KMI)%K257(KVECNPT)) +ALLOCATE(TACCS(KMI)%K258(KVECNPT)) +ALLOCATE(TACCS(KMI)%K259(KVECNPT)) +ALLOCATE(TACCS(KMI)%K260(KVECNPT)) +ALLOCATE(TACCS(KMI)%K261(KVECNPT)) +ALLOCATE(TACCS(KMI)%K262(KVECNPT)) +ALLOCATE(TACCS(KMI)%K263(KVECNPT)) +ALLOCATE(TACCS(KMI)%K264(KVECNPT)) +ALLOCATE(TACCS(KMI)%K265(KVECNPT)) +ALLOCATE(TACCS(KMI)%K266(KVECNPT)) +ALLOCATE(TACCS(KMI)%K267(KVECNPT)) +ALLOCATE(TACCS(KMI)%K268(KVECNPT)) +ALLOCATE(TACCS(KMI)%K269(KVECNPT)) +ALLOCATE(TACCS(KMI)%K270(KVECNPT)) +ALLOCATE(TACCS(KMI)%K271(KVECNPT)) +ALLOCATE(TACCS(KMI)%K272(KVECNPT)) +ALLOCATE(TACCS(KMI)%K273(KVECNPT)) +ALLOCATE(TACCS(KMI)%K274(KVECNPT)) +ALLOCATE(TACCS(KMI)%K275(KVECNPT)) +ALLOCATE(TACCS(KMI)%K276(KVECNPT)) +ALLOCATE(TACCS(KMI)%K277(KVECNPT)) +ALLOCATE(TACCS(KMI)%K278(KVECNPT)) +ALLOCATE(TACCS(KMI)%K279(KVECNPT)) +ALLOCATE(TACCS(KMI)%K280(KVECNPT)) +ALLOCATE(TACCS(KMI)%K281(KVECNPT)) +ALLOCATE(TACCS(KMI)%K282(KVECNPT)) +ALLOCATE(TACCS(KMI)%K283(KVECNPT)) +ALLOCATE(TACCS(KMI)%K284(KVECNPT)) +ALLOCATE(TACCS(KMI)%K285(KVECNPT)) +ALLOCATE(TACCS(KMI)%K286(KVECNPT)) +ALLOCATE(TACCS(KMI)%K287(KVECNPT)) +ALLOCATE(TACCS(KMI)%K288(KVECNPT)) +ALLOCATE(TACCS(KMI)%K289(KVECNPT)) +ALLOCATE(TACCS(KMI)%K290(KVECNPT)) +ALLOCATE(TACCS(KMI)%K291(KVECNPT)) +ALLOCATE(TACCS(KMI)%K292(KVECNPT)) +ALLOCATE(TACCS(KMI)%K293(KVECNPT)) +ALLOCATE(TACCS(KMI)%K294(KVECNPT)) +ALLOCATE(TACCS(KMI)%K295(KVECNPT)) +ALLOCATE(TACCS(KMI)%K296(KVECNPT)) +ALLOCATE(TACCS(KMI)%K297(KVECNPT)) +ALLOCATE(TACCS(KMI)%K298(KVECNPT)) +ALLOCATE(TACCS(KMI)%K299(KVECNPT)) +ALLOCATE(TACCS(KMI)%K300(KVECNPT)) +ALLOCATE(TACCS(KMI)%K301(KVECNPT)) +ALLOCATE(TACCS(KMI)%K302(KVECNPT)) +ALLOCATE(TACCS(KMI)%K303(KVECNPT)) +ALLOCATE(TACCS(KMI)%K304(KVECNPT)) +ALLOCATE(TACCS(KMI)%K305(KVECNPT)) +ALLOCATE(TACCS(KMI)%K306(KVECNPT)) +ALLOCATE(TACCS(KMI)%K307(KVECNPT)) +ALLOCATE(TACCS(KMI)%K308(KVECNPT)) +ALLOCATE(TACCS(KMI)%K309(KVECNPT)) +ALLOCATE(TACCS(KMI)%K310(KVECNPT)) +ALLOCATE(TACCS(KMI)%K311(KVECNPT)) +ALLOCATE(TACCS(KMI)%K312(KVECNPT)) +ALLOCATE(TACCS(KMI)%K313(KVECNPT)) +ALLOCATE(TACCS(KMI)%K314(KVECNPT)) +ALLOCATE(TACCS(KMI)%K315(KVECNPT)) +ALLOCATE(TACCS(KMI)%K316(KVECNPT)) +ALLOCATE(TACCS(KMI)%K317(KVECNPT)) +ALLOCATE(TACCS(KMI)%K318(KVECNPT)) +ALLOCATE(TACCS(KMI)%K319(KVECNPT)) +ALLOCATE(TACCS(KMI)%K320(KVECNPT)) +ALLOCATE(TACCS(KMI)%K321(KVECNPT)) +ALLOCATE(TACCS(KMI)%K322(KVECNPT)) +ALLOCATE(TACCS(KMI)%K323(KVECNPT)) +ALLOCATE(TACCS(KMI)%K324(KVECNPT)) +ALLOCATE(TACCS(KMI)%K325(KVECNPT)) +ALLOCATE(TACCS(KMI)%K326(KVECNPT)) +ALLOCATE(TACCS(KMI)%K327(KVECNPT)) +ALLOCATE(TACCS(KMI)%K328(KVECNPT)) +ALLOCATE(TACCS(KMI)%K329(KVECNPT)) +ALLOCATE(TACCS(KMI)%K330(KVECNPT)) +ALLOCATE(TACCS(KMI)%K331(KVECNPT)) +ALLOCATE(TACCS(KMI)%K332(KVECNPT)) +ALLOCATE(TACCS(KMI)%K333(KVECNPT)) +ALLOCATE(TACCS(KMI)%K334(KVECNPT)) +ALLOCATE(TACCS(KMI)%K335(KVECNPT)) +ALLOCATE(TACCS(KMI)%K337(KVECNPT)) +ALLOCATE(TACCS(KMI)%K338(KVECNPT)) +ALLOCATE(TACCS(KMI)%K339(KVECNPT)) +ALLOCATE(TACCS(KMI)%K340(KVECNPT)) +ALLOCATE(TACCS(KMI)%K341(KVECNPT)) +ALLOCATE(TACCS(KMI)%K342(KVECNPT)) +ALLOCATE(TACCS(KMI)%K343(KVECNPT)) +ALLOCATE(TACCS(KMI)%K344(KVECNPT)) +ALLOCATE(TACCS(KMI)%K345(KVECNPT)) +ALLOCATE(TACCS(KMI)%K346(KVECNPT)) +ALLOCATE(TACCS(KMI)%K347(KVECNPT)) +ALLOCATE(TACCS(KMI)%K348(KVECNPT)) +ALLOCATE(TACCS(KMI)%K349(KVECNPT)) +ALLOCATE(TACCS(KMI)%K350(KVECNPT)) +ALLOCATE(TACCS(KMI)%K351(KVECNPT)) +ALLOCATE(TACCS(KMI)%K352(KVECNPT)) +ALLOCATE(TACCS(KMI)%K353(KVECNPT)) +ALLOCATE(TACCS(KMI)%K354(KVECNPT)) +ALLOCATE(TACCS(KMI)%K355(KVECNPT)) +ALLOCATE(TACCS(KMI)%K356(KVECNPT)) +ALLOCATE(TACCS(KMI)%K357(KVECNPT)) +ALLOCATE(TACCS(KMI)%K358(KVECNPT)) +ALLOCATE(TACCS(KMI)%K359(KVECNPT)) +ALLOCATE(TACCS(KMI)%K360(KVECNPT)) +ALLOCATE(TACCS(KMI)%K361(KVECNPT)) +ALLOCATE(TACCS(KMI)%K362(KVECNPT)) +ALLOCATE(TACCS(KMI)%K363(KVECNPT)) +ALLOCATE(TACCS(KMI)%K364(KVECNPT)) +ALLOCATE(TACCS(KMI)%K365(KVECNPT)) IF (TACCS(KMI)%LUSECHAQ) THEN ALLOCATE(TACCS(KMI)%KTC1(KVECNPT)) ALLOCATE(TACCS(KMI)%KTC2(KVECNPT)) @@ -2211,6 +4340,28 @@ IF (TACCS(KMI)%LUSECHAQ) THEN ALLOCATE(TACCS(KMI)%KTC38(KVECNPT)) ALLOCATE(TACCS(KMI)%KTC39(KVECNPT)) ALLOCATE(TACCS(KMI)%KTC40(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC41(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC42(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC43(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC44(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC45(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC46(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC47(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC48(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC49(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC50(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC51(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC52(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC53(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC54(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC55(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC56(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC57(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC58(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC59(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC60(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC61(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTC62(KVECNPT)) ALLOCATE(TACCS(KMI)%KTR1(KVECNPT)) ALLOCATE(TACCS(KMI)%KTR2(KVECNPT)) ALLOCATE(TACCS(KMI)%KTR3(KVECNPT)) @@ -2251,6 +4402,28 @@ IF (TACCS(KMI)%LUSECHAQ) THEN ALLOCATE(TACCS(KMI)%KTR38(KVECNPT)) ALLOCATE(TACCS(KMI)%KTR39(KVECNPT)) ALLOCATE(TACCS(KMI)%KTR40(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR41(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR42(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR43(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR44(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR45(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR46(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR47(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR48(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR49(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR50(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR51(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR52(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR53(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR54(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR55(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR56(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR57(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR58(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR59(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR60(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR61(KVECNPT)) + ALLOCATE(TACCS(KMI)%KTR62(KVECNPT)) ALLOCATE(TACCS(KMI)%KC1(KVECNPT)) ALLOCATE(TACCS(KMI)%KC2(KVECNPT)) ALLOCATE(TACCS(KMI)%KC3(KVECNPT)) @@ -2281,6 +4454,22 @@ IF (TACCS(KMI)%LUSECHAQ) THEN ALLOCATE(TACCS(KMI)%KC28(KVECNPT)) ALLOCATE(TACCS(KMI)%KC29(KVECNPT)) ALLOCATE(TACCS(KMI)%KC30(KVECNPT)) + ALLOCATE(TACCS(KMI)%KC31(KVECNPT)) + ALLOCATE(TACCS(KMI)%KC32(KVECNPT)) + ALLOCATE(TACCS(KMI)%KC33(KVECNPT)) + ALLOCATE(TACCS(KMI)%KC34(KVECNPT)) + ALLOCATE(TACCS(KMI)%KC35(KVECNPT)) + ALLOCATE(TACCS(KMI)%KC36(KVECNPT)) + ALLOCATE(TACCS(KMI)%KC37(KVECNPT)) + ALLOCATE(TACCS(KMI)%KC38(KVECNPT)) + ALLOCATE(TACCS(KMI)%KC39(KVECNPT)) + ALLOCATE(TACCS(KMI)%KC40(KVECNPT)) + ALLOCATE(TACCS(KMI)%KC41(KVECNPT)) + ALLOCATE(TACCS(KMI)%KC42(KVECNPT)) + ALLOCATE(TACCS(KMI)%KC43(KVECNPT)) + ALLOCATE(TACCS(KMI)%KC44(KVECNPT)) + ALLOCATE(TACCS(KMI)%KC45(KVECNPT)) + ALLOCATE(TACCS(KMI)%KC46(KVECNPT)) ALLOCATE(TACCS(KMI)%KR1(KVECNPT)) ALLOCATE(TACCS(KMI)%KR2(KVECNPT)) ALLOCATE(TACCS(KMI)%KR3(KVECNPT)) @@ -2311,9 +4500,30 @@ IF (TACCS(KMI)%LUSECHAQ) THEN ALLOCATE(TACCS(KMI)%KR28(KVECNPT)) ALLOCATE(TACCS(KMI)%KR29(KVECNPT)) ALLOCATE(TACCS(KMI)%KR30(KVECNPT)) + ALLOCATE(TACCS(KMI)%KR31(KVECNPT)) + ALLOCATE(TACCS(KMI)%KR32(KVECNPT)) + ALLOCATE(TACCS(KMI)%KR33(KVECNPT)) + ALLOCATE(TACCS(KMI)%KR34(KVECNPT)) + ALLOCATE(TACCS(KMI)%KR35(KVECNPT)) + ALLOCATE(TACCS(KMI)%KR36(KVECNPT)) + ALLOCATE(TACCS(KMI)%KR37(KVECNPT)) + ALLOCATE(TACCS(KMI)%KR38(KVECNPT)) + ALLOCATE(TACCS(KMI)%KR39(KVECNPT)) + ALLOCATE(TACCS(KMI)%KR40(KVECNPT)) + ALLOCATE(TACCS(KMI)%KR41(KVECNPT)) + ALLOCATE(TACCS(KMI)%KR42(KVECNPT)) + ALLOCATE(TACCS(KMI)%KR43(KVECNPT)) + ALLOCATE(TACCS(KMI)%KR44(KVECNPT)) + ALLOCATE(TACCS(KMI)%KR45(KVECNPT)) + ALLOCATE(TACCS(KMI)%KR46(KVECNPT)) END IF ALLOCATE(TACCS(KMI)%NVERB(KVECNPT)) ALLOCATE(TACCS(KMI)%MODELLEVEL(KVECNPT)) +ALLOCATE(TACCS(KMI)%LAT(KVECNPT)) +ALLOCATE(TACCS(KMI)%LON(KVECNPT)) +ALLOCATE(TACCS(KMI)%YEAR(KVECNPT)) +ALLOCATE(TACCS(KMI)%MONTH(KVECNPT)) +ALLOCATE(TACCS(KMI)%DAY(KVECNPT)) ALLOCATE(TACCS(KMI)%T(KVECNPT)) ALLOCATE(TACCS(KMI)%PRESSURE(KVECNPT)) ALLOCATE(TACCS(KMI)%M(KVECNPT)) @@ -2324,14 +4534,74 @@ ALLOCATE(TACCS(KMI)%RHODREF(KVECNPT)) ALLOCATE(TACCS(KMI)%O2(KVECNPT)) ALLOCATE(TACCS(KMI)%N2(KVECNPT)) ALLOCATE(TACCS(KMI)%H2(KVECNPT)) -ALLOCATE(TACCS(KMI)%OH(KVECNPT)) -ALLOCATE(TACCS(KMI)%O1D(KVECNPT)) -ALLOCATE(TACCS(KMI)%O3P(KVECNPT)) -ALLOCATE(TACCS(KMI)%LAT(KVECNPT)) -ALLOCATE(TACCS(KMI)%LON(KVECNPT)) -ALLOCATE(TACCS(KMI)%YEAR(KVECNPT)) -ALLOCATE(TACCS(KMI)%MONTH(KVECNPT)) -ALLOCATE(TACCS(KMI)%DAY(KVECNPT)) +ALLOCATE(TACCS(KMI)%CO2(KVECNPT)) +ALLOCATE(TACCS(KMI)%CH4(KVECNPT)) +ALLOCATE(TACCS(KMI)%O (KVECNPT)) +ALLOCATE(TACCS(KMI)%OSD (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO22 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO23 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO24 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO26 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO27 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO28(KVECNPT)) +ALLOCATE(TACCS(KMI)%RO29 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO210 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO211 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO212 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO213 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO214 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO215 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO216 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO217 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO218 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO219 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO220 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO221 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO222 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO223 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO224 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO225 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO226 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO227 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO228 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO229 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO230 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO231 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO232 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO233 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO234 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO235 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO236 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO237 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO238 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO239 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO240 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO241 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO242 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO243 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO244 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO245 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO246 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO247 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO248 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO249 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO250 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO251 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO252 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO253 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO254 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO255 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO256 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO257 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RO258 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RAD1 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RAD2 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RAD3 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RAD4 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RAD5 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RAD6 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RAD7 (KVECNPT)) +ALLOCATE(TACCS(KMI)%RAD8 (KVECNPT)) ALLOCATE(TACCS(KMI)%LWC(KVECNPT)) ALLOCATE(TACCS(KMI)%MOL2MOLECCLOUD(KVECNPT)) ALLOCATE(TACCS(KMI)%RADC(KVECNPT)) @@ -2340,9 +4610,81 @@ ALLOCATE(TACCS(KMI)%LWR(KVECNPT)) ALLOCATE(TACCS(KMI)%MOL2MOLECRAIN(KVECNPT)) ALLOCATE(TACCS(KMI)%RADR(KVECNPT)) ALLOCATE(TACCS(KMI)%PHR(KVECNPT)) -ALLOCATE(TACCS(KMI)%CO2(KVECNPT)) ALLOCATE(TACCS(KMI)%RCH(KVECNPT)) ALLOCATE(TACCS(KMI)%W_O2(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF1(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF2(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF3(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF4(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF5(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF6(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF7(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF8(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF9(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF10(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF11(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF12(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF13(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF14(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF15(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF16(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF17(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF18(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF19(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF20(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF21(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF22(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF23(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF24(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF25(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF26(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF27(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF28(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF29(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF30(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF31(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF32(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF33(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF34(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF35(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF36(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF37(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF38(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF39(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF40(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF41(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF42(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF43(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF44(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF45(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF46(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF47(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF48(KVECNPT)) +ALLOCATE(TACCS(KMI)%CF49(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA1(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA2(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA3(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA4(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA5(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA6(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA7(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA8(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA9(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA10(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA11(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA12(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA13(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA14(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA15(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA16(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA17(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA18(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA19(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA20(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA21(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA22(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA23(KVECNPT)) +ALLOCATE(TACCS(KMI)%CFA24(KVECNPT)) END SUBROUTINE CH_ALLOCATE_TACCS ! !======================================================================== @@ -2428,7 +4770,8 @@ IF (ASSOCIATED(TACCS(KMI)%K014)) DEALLOCATE(TACCS(KMI)%K014) IF (ASSOCIATED(TACCS(KMI)%K015)) DEALLOCATE(TACCS(KMI)%K015) IF (ASSOCIATED(TACCS(KMI)%K016)) DEALLOCATE(TACCS(KMI)%K016) IF (ASSOCIATED(TACCS(KMI)%K017)) DEALLOCATE(TACCS(KMI)%K017) -IF (ASSOCIATED(TACCS(KMI)%K018)) DEALLOCATE(TACCS(KMI)%K018) +IF (ASSOCIATED(TACCS(KMI)%K018A)) DEALLOCATE(TACCS(KMI)%K018A) +IF (ASSOCIATED(TACCS(KMI)%K018B)) DEALLOCATE(TACCS(KMI)%K018B) IF (ASSOCIATED(TACCS(KMI)%K019)) DEALLOCATE(TACCS(KMI)%K019) IF (ASSOCIATED(TACCS(KMI)%K020)) DEALLOCATE(TACCS(KMI)%K020) IF (ASSOCIATED(TACCS(KMI)%K021)) DEALLOCATE(TACCS(KMI)%K021) @@ -2510,9 +4853,9 @@ IF (ASSOCIATED(TACCS(KMI)%K096)) DEALLOCATE(TACCS(KMI)%K096) IF (ASSOCIATED(TACCS(KMI)%K097)) DEALLOCATE(TACCS(KMI)%K097) IF (ASSOCIATED(TACCS(KMI)%K098)) DEALLOCATE(TACCS(KMI)%K098) IF (ASSOCIATED(TACCS(KMI)%K099)) DEALLOCATE(TACCS(KMI)%K099) -IF (ASSOCIATED(TACCS(KMI)%K0100)) DEALLOCATE(TACCS(KMI)%K0100) -IF (ASSOCIATED(TACCS(KMI)%K0101)) DEALLOCATE(TACCS(KMI)%K0101) -IF (ASSOCIATED(TACCS(KMI)%K0102)) DEALLOCATE(TACCS(KMI)%K0102) +IF (ASSOCIATED(TACCS(KMI)%K100)) DEALLOCATE(TACCS(KMI)%K100) +IF (ASSOCIATED(TACCS(KMI)%K101)) DEALLOCATE(TACCS(KMI)%K101) +IF (ASSOCIATED(TACCS(KMI)%K102)) DEALLOCATE(TACCS(KMI)%K102) IF (ASSOCIATED(TACCS(KMI)%K103)) DEALLOCATE(TACCS(KMI)%K103) IF (ASSOCIATED(TACCS(KMI)%K104)) DEALLOCATE(TACCS(KMI)%K104) IF (ASSOCIATED(TACCS(KMI)%K105)) DEALLOCATE(TACCS(KMI)%K105) @@ -2543,6 +4886,238 @@ IF (ASSOCIATED(TACCS(KMI)%K129)) DEALLOCATE(TACCS(KMI)%K129) IF (ASSOCIATED(TACCS(KMI)%K130)) DEALLOCATE(TACCS(KMI)%K130) IF (ASSOCIATED(TACCS(KMI)%K131)) DEALLOCATE(TACCS(KMI)%K131) IF (ASSOCIATED(TACCS(KMI)%K132)) DEALLOCATE(TACCS(KMI)%K132) +IF (ASSOCIATED(TACCS(KMI)%K133)) DEALLOCATE(TACCS(KMI)%K133) +IF (ASSOCIATED(TACCS(KMI)%K134)) DEALLOCATE(TACCS(KMI)%K134) +IF (ASSOCIATED(TACCS(KMI)%K135)) DEALLOCATE(TACCS(KMI)%K135) +IF (ASSOCIATED(TACCS(KMI)%K136)) DEALLOCATE(TACCS(KMI)%K136) +IF (ASSOCIATED(TACCS(KMI)%K137)) DEALLOCATE(TACCS(KMI)%K137) +IF (ASSOCIATED(TACCS(KMI)%K138)) DEALLOCATE(TACCS(KMI)%K138) +IF (ASSOCIATED(TACCS(KMI)%K139)) DEALLOCATE(TACCS(KMI)%K139) +IF (ASSOCIATED(TACCS(KMI)%K140)) DEALLOCATE(TACCS(KMI)%K140) +IF (ASSOCIATED(TACCS(KMI)%K141)) DEALLOCATE(TACCS(KMI)%K141) +IF (ASSOCIATED(TACCS(KMI)%K142)) DEALLOCATE(TACCS(KMI)%K142) +IF (ASSOCIATED(TACCS(KMI)%K143)) DEALLOCATE(TACCS(KMI)%K143) +IF (ASSOCIATED(TACCS(KMI)%K144)) DEALLOCATE(TACCS(KMI)%K144) +IF (ASSOCIATED(TACCS(KMI)%K145)) DEALLOCATE(TACCS(KMI)%K145) +IF (ASSOCIATED(TACCS(KMI)%K146)) DEALLOCATE(TACCS(KMI)%K146) +IF (ASSOCIATED(TACCS(KMI)%K147)) DEALLOCATE(TACCS(KMI)%K147) +IF (ASSOCIATED(TACCS(KMI)%K148)) DEALLOCATE(TACCS(KMI)%K148) +IF (ASSOCIATED(TACCS(KMI)%K149)) DEALLOCATE(TACCS(KMI)%K149) +IF (ASSOCIATED(TACCS(KMI)%K150)) DEALLOCATE(TACCS(KMI)%K150) +IF (ASSOCIATED(TACCS(KMI)%K151)) DEALLOCATE(TACCS(KMI)%K151) +IF (ASSOCIATED(TACCS(KMI)%K152)) DEALLOCATE(TACCS(KMI)%K152) +IF (ASSOCIATED(TACCS(KMI)%K153)) DEALLOCATE(TACCS(KMI)%K153) +IF (ASSOCIATED(TACCS(KMI)%K154)) DEALLOCATE(TACCS(KMI)%K154) +IF (ASSOCIATED(TACCS(KMI)%K155)) DEALLOCATE(TACCS(KMI)%K155) +IF (ASSOCIATED(TACCS(KMI)%K156)) DEALLOCATE(TACCS(KMI)%K156) +IF (ASSOCIATED(TACCS(KMI)%K157)) DEALLOCATE(TACCS(KMI)%K157) +IF (ASSOCIATED(TACCS(KMI)%K158)) DEALLOCATE(TACCS(KMI)%K158) +IF (ASSOCIATED(TACCS(KMI)%K159)) DEALLOCATE(TACCS(KMI)%K159) +IF (ASSOCIATED(TACCS(KMI)%K160)) DEALLOCATE(TACCS(KMI)%K160) +IF (ASSOCIATED(TACCS(KMI)%K161)) DEALLOCATE(TACCS(KMI)%K161) +IF (ASSOCIATED(TACCS(KMI)%K162)) DEALLOCATE(TACCS(KMI)%K162) +IF (ASSOCIATED(TACCS(KMI)%K163)) DEALLOCATE(TACCS(KMI)%K163) +IF (ASSOCIATED(TACCS(KMI)%K164)) DEALLOCATE(TACCS(KMI)%K164) +IF (ASSOCIATED(TACCS(KMI)%K165)) DEALLOCATE(TACCS(KMI)%K165) +IF (ASSOCIATED(TACCS(KMI)%K166)) DEALLOCATE(TACCS(KMI)%K166) +IF (ASSOCIATED(TACCS(KMI)%K167)) DEALLOCATE(TACCS(KMI)%K167) +IF (ASSOCIATED(TACCS(KMI)%K168)) DEALLOCATE(TACCS(KMI)%K168) +IF (ASSOCIATED(TACCS(KMI)%K169)) DEALLOCATE(TACCS(KMI)%K169) +IF (ASSOCIATED(TACCS(KMI)%K170)) DEALLOCATE(TACCS(KMI)%K170) +IF (ASSOCIATED(TACCS(KMI)%K171)) DEALLOCATE(TACCS(KMI)%K171) +IF (ASSOCIATED(TACCS(KMI)%K172)) DEALLOCATE(TACCS(KMI)%K172) +IF (ASSOCIATED(TACCS(KMI)%K173)) DEALLOCATE(TACCS(KMI)%K173) +IF (ASSOCIATED(TACCS(KMI)%K174)) DEALLOCATE(TACCS(KMI)%K174) +IF (ASSOCIATED(TACCS(KMI)%K175)) DEALLOCATE(TACCS(KMI)%K175) +IF (ASSOCIATED(TACCS(KMI)%K176)) DEALLOCATE(TACCS(KMI)%K176) +IF (ASSOCIATED(TACCS(KMI)%K177)) DEALLOCATE(TACCS(KMI)%K177) +IF (ASSOCIATED(TACCS(KMI)%K178)) DEALLOCATE(TACCS(KMI)%K178) +IF (ASSOCIATED(TACCS(KMI)%K179)) DEALLOCATE(TACCS(KMI)%K179) +IF (ASSOCIATED(TACCS(KMI)%K180)) DEALLOCATE(TACCS(KMI)%K180) +IF (ASSOCIATED(TACCS(KMI)%K181)) DEALLOCATE(TACCS(KMI)%K181) +IF (ASSOCIATED(TACCS(KMI)%K182)) DEALLOCATE(TACCS(KMI)%K182) +IF (ASSOCIATED(TACCS(KMI)%K183)) DEALLOCATE(TACCS(KMI)%K183) +IF (ASSOCIATED(TACCS(KMI)%K184)) DEALLOCATE(TACCS(KMI)%K184) +IF (ASSOCIATED(TACCS(KMI)%K185)) DEALLOCATE(TACCS(KMI)%K185) +IF (ASSOCIATED(TACCS(KMI)%K186)) DEALLOCATE(TACCS(KMI)%K186) +IF (ASSOCIATED(TACCS(KMI)%K187)) DEALLOCATE(TACCS(KMI)%K187) +IF (ASSOCIATED(TACCS(KMI)%K188)) DEALLOCATE(TACCS(KMI)%K188) +IF (ASSOCIATED(TACCS(KMI)%K189)) DEALLOCATE(TACCS(KMI)%K189) +IF (ASSOCIATED(TACCS(KMI)%K190)) DEALLOCATE(TACCS(KMI)%K190) +IF (ASSOCIATED(TACCS(KMI)%K191)) DEALLOCATE(TACCS(KMI)%K191) +IF (ASSOCIATED(TACCS(KMI)%K192)) DEALLOCATE(TACCS(KMI)%K192) +IF (ASSOCIATED(TACCS(KMI)%K193)) DEALLOCATE(TACCS(KMI)%K193) +IF (ASSOCIATED(TACCS(KMI)%K194)) DEALLOCATE(TACCS(KMI)%K194) +IF (ASSOCIATED(TACCS(KMI)%K195)) DEALLOCATE(TACCS(KMI)%K195) +IF (ASSOCIATED(TACCS(KMI)%K196)) DEALLOCATE(TACCS(KMI)%K196) +IF (ASSOCIATED(TACCS(KMI)%K197)) DEALLOCATE(TACCS(KMI)%K197) +IF (ASSOCIATED(TACCS(KMI)%K198)) DEALLOCATE(TACCS(KMI)%K198) +IF (ASSOCIATED(TACCS(KMI)%K199)) DEALLOCATE(TACCS(KMI)%K199) +IF (ASSOCIATED(TACCS(KMI)%K200)) DEALLOCATE(TACCS(KMI)%K200) +IF (ASSOCIATED(TACCS(KMI)%K201)) DEALLOCATE(TACCS(KMI)%K201) +IF (ASSOCIATED(TACCS(KMI)%K202)) DEALLOCATE(TACCS(KMI)%K202) +IF (ASSOCIATED(TACCS(KMI)%K203)) DEALLOCATE(TACCS(KMI)%K203) +IF (ASSOCIATED(TACCS(KMI)%K204)) DEALLOCATE(TACCS(KMI)%K204) +IF (ASSOCIATED(TACCS(KMI)%K205)) DEALLOCATE(TACCS(KMI)%K205) +IF (ASSOCIATED(TACCS(KMI)%K206)) DEALLOCATE(TACCS(KMI)%K206) +IF (ASSOCIATED(TACCS(KMI)%K207)) DEALLOCATE(TACCS(KMI)%K207) +IF (ASSOCIATED(TACCS(KMI)%K208)) DEALLOCATE(TACCS(KMI)%K208) +IF (ASSOCIATED(TACCS(KMI)%K209)) DEALLOCATE(TACCS(KMI)%K209) +IF (ASSOCIATED(TACCS(KMI)%K210)) DEALLOCATE(TACCS(KMI)%K210) +IF (ASSOCIATED(TACCS(KMI)%K211)) DEALLOCATE(TACCS(KMI)%K211) +IF (ASSOCIATED(TACCS(KMI)%K212)) DEALLOCATE(TACCS(KMI)%K212) +IF (ASSOCIATED(TACCS(KMI)%K213)) DEALLOCATE(TACCS(KMI)%K213) +IF (ASSOCIATED(TACCS(KMI)%K214)) DEALLOCATE(TACCS(KMI)%K214) +IF (ASSOCIATED(TACCS(KMI)%K215)) DEALLOCATE(TACCS(KMI)%K215) +IF (ASSOCIATED(TACCS(KMI)%K216)) DEALLOCATE(TACCS(KMI)%K216) +IF (ASSOCIATED(TACCS(KMI)%K217)) DEALLOCATE(TACCS(KMI)%K217) +IF (ASSOCIATED(TACCS(KMI)%K218)) DEALLOCATE(TACCS(KMI)%K218) +IF (ASSOCIATED(TACCS(KMI)%K219)) DEALLOCATE(TACCS(KMI)%K219) +IF (ASSOCIATED(TACCS(KMI)%K220)) DEALLOCATE(TACCS(KMI)%K220) +IF (ASSOCIATED(TACCS(KMI)%K221)) DEALLOCATE(TACCS(KMI)%K221) +IF (ASSOCIATED(TACCS(KMI)%K222)) DEALLOCATE(TACCS(KMI)%K222) +IF (ASSOCIATED(TACCS(KMI)%K223)) DEALLOCATE(TACCS(KMI)%K223) +IF (ASSOCIATED(TACCS(KMI)%K224)) DEALLOCATE(TACCS(KMI)%K224) +IF (ASSOCIATED(TACCS(KMI)%K225)) DEALLOCATE(TACCS(KMI)%K225) +IF (ASSOCIATED(TACCS(KMI)%K226)) DEALLOCATE(TACCS(KMI)%K226) +IF (ASSOCIATED(TACCS(KMI)%K227)) DEALLOCATE(TACCS(KMI)%K227) +IF (ASSOCIATED(TACCS(KMI)%K228)) DEALLOCATE(TACCS(KMI)%K228) +IF (ASSOCIATED(TACCS(KMI)%K229)) DEALLOCATE(TACCS(KMI)%K229) +IF (ASSOCIATED(TACCS(KMI)%K230)) DEALLOCATE(TACCS(KMI)%K230) +IF (ASSOCIATED(TACCS(KMI)%K231)) DEALLOCATE(TACCS(KMI)%K231) +IF (ASSOCIATED(TACCS(KMI)%K232)) DEALLOCATE(TACCS(KMI)%K232) +IF (ASSOCIATED(TACCS(KMI)%K233)) DEALLOCATE(TACCS(KMI)%K233) +IF (ASSOCIATED(TACCS(KMI)%K234)) DEALLOCATE(TACCS(KMI)%K234) +IF (ASSOCIATED(TACCS(KMI)%K235)) DEALLOCATE(TACCS(KMI)%K235) +IF (ASSOCIATED(TACCS(KMI)%K236)) DEALLOCATE(TACCS(KMI)%K236) +IF (ASSOCIATED(TACCS(KMI)%K237)) DEALLOCATE(TACCS(KMI)%K237) +IF (ASSOCIATED(TACCS(KMI)%K238)) DEALLOCATE(TACCS(KMI)%K238) +IF (ASSOCIATED(TACCS(KMI)%K239)) DEALLOCATE(TACCS(KMI)%K239) +IF (ASSOCIATED(TACCS(KMI)%K240)) DEALLOCATE(TACCS(KMI)%K240) +IF (ASSOCIATED(TACCS(KMI)%K241)) DEALLOCATE(TACCS(KMI)%K241) +IF (ASSOCIATED(TACCS(KMI)%K242)) DEALLOCATE(TACCS(KMI)%K242) +IF (ASSOCIATED(TACCS(KMI)%K243)) DEALLOCATE(TACCS(KMI)%K243) +IF (ASSOCIATED(TACCS(KMI)%K244)) DEALLOCATE(TACCS(KMI)%K244) +IF (ASSOCIATED(TACCS(KMI)%K245)) DEALLOCATE(TACCS(KMI)%K245) +IF (ASSOCIATED(TACCS(KMI)%K246)) DEALLOCATE(TACCS(KMI)%K246) +IF (ASSOCIATED(TACCS(KMI)%K247)) DEALLOCATE(TACCS(KMI)%K247) +IF (ASSOCIATED(TACCS(KMI)%K248)) DEALLOCATE(TACCS(KMI)%K248) +IF (ASSOCIATED(TACCS(KMI)%K249)) DEALLOCATE(TACCS(KMI)%K249) +IF (ASSOCIATED(TACCS(KMI)%K250)) DEALLOCATE(TACCS(KMI)%K250) +IF (ASSOCIATED(TACCS(KMI)%K251)) DEALLOCATE(TACCS(KMI)%K251) +IF (ASSOCIATED(TACCS(KMI)%K252)) DEALLOCATE(TACCS(KMI)%K252) +IF (ASSOCIATED(TACCS(KMI)%K253)) DEALLOCATE(TACCS(KMI)%K253) +IF (ASSOCIATED(TACCS(KMI)%K254)) DEALLOCATE(TACCS(KMI)%K254) +IF (ASSOCIATED(TACCS(KMI)%K255)) DEALLOCATE(TACCS(KMI)%K255) +IF (ASSOCIATED(TACCS(KMI)%K256)) DEALLOCATE(TACCS(KMI)%K256) +IF (ASSOCIATED(TACCS(KMI)%K257)) DEALLOCATE(TACCS(KMI)%K257) +IF (ASSOCIATED(TACCS(KMI)%K258)) DEALLOCATE(TACCS(KMI)%K258) +IF (ASSOCIATED(TACCS(KMI)%K259)) DEALLOCATE(TACCS(KMI)%K259) +IF (ASSOCIATED(TACCS(KMI)%K260)) DEALLOCATE(TACCS(KMI)%K260) +IF (ASSOCIATED(TACCS(KMI)%K261)) DEALLOCATE(TACCS(KMI)%K261) +IF (ASSOCIATED(TACCS(KMI)%K262)) DEALLOCATE(TACCS(KMI)%K262) +IF (ASSOCIATED(TACCS(KMI)%K263)) DEALLOCATE(TACCS(KMI)%K263) +IF (ASSOCIATED(TACCS(KMI)%K264)) DEALLOCATE(TACCS(KMI)%K264) +IF (ASSOCIATED(TACCS(KMI)%K265)) DEALLOCATE(TACCS(KMI)%K265) +IF (ASSOCIATED(TACCS(KMI)%K266)) DEALLOCATE(TACCS(KMI)%K266) +IF (ASSOCIATED(TACCS(KMI)%K267)) DEALLOCATE(TACCS(KMI)%K267) +IF (ASSOCIATED(TACCS(KMI)%K268)) DEALLOCATE(TACCS(KMI)%K268) +IF (ASSOCIATED(TACCS(KMI)%K269)) DEALLOCATE(TACCS(KMI)%K269) +IF (ASSOCIATED(TACCS(KMI)%K270)) DEALLOCATE(TACCS(KMI)%K270) +IF (ASSOCIATED(TACCS(KMI)%K271)) DEALLOCATE(TACCS(KMI)%K271) +IF (ASSOCIATED(TACCS(KMI)%K272)) DEALLOCATE(TACCS(KMI)%K272) +IF (ASSOCIATED(TACCS(KMI)%K273)) DEALLOCATE(TACCS(KMI)%K273) +IF (ASSOCIATED(TACCS(KMI)%K274)) DEALLOCATE(TACCS(KMI)%K274) +IF (ASSOCIATED(TACCS(KMI)%K275)) DEALLOCATE(TACCS(KMI)%K275) +IF (ASSOCIATED(TACCS(KMI)%K276)) DEALLOCATE(TACCS(KMI)%K276) +IF (ASSOCIATED(TACCS(KMI)%K277)) DEALLOCATE(TACCS(KMI)%K277) +IF (ASSOCIATED(TACCS(KMI)%K278)) DEALLOCATE(TACCS(KMI)%K278) +IF (ASSOCIATED(TACCS(KMI)%K279)) DEALLOCATE(TACCS(KMI)%K279) +IF (ASSOCIATED(TACCS(KMI)%K280)) DEALLOCATE(TACCS(KMI)%K280) +IF (ASSOCIATED(TACCS(KMI)%K281)) DEALLOCATE(TACCS(KMI)%K281) +IF (ASSOCIATED(TACCS(KMI)%K282)) DEALLOCATE(TACCS(KMI)%K282) +IF (ASSOCIATED(TACCS(KMI)%K283)) DEALLOCATE(TACCS(KMI)%K283) +IF (ASSOCIATED(TACCS(KMI)%K284)) DEALLOCATE(TACCS(KMI)%K284) +IF (ASSOCIATED(TACCS(KMI)%K285)) DEALLOCATE(TACCS(KMI)%K285) +IF (ASSOCIATED(TACCS(KMI)%K286)) DEALLOCATE(TACCS(KMI)%K286) +IF (ASSOCIATED(TACCS(KMI)%K287)) DEALLOCATE(TACCS(KMI)%K287) +IF (ASSOCIATED(TACCS(KMI)%K288)) DEALLOCATE(TACCS(KMI)%K288) +IF (ASSOCIATED(TACCS(KMI)%K289)) DEALLOCATE(TACCS(KMI)%K289) +IF (ASSOCIATED(TACCS(KMI)%K290)) DEALLOCATE(TACCS(KMI)%K290) +IF (ASSOCIATED(TACCS(KMI)%K291)) DEALLOCATE(TACCS(KMI)%K291) +IF (ASSOCIATED(TACCS(KMI)%K292)) DEALLOCATE(TACCS(KMI)%K292) +IF (ASSOCIATED(TACCS(KMI)%K293)) DEALLOCATE(TACCS(KMI)%K293) +IF (ASSOCIATED(TACCS(KMI)%K294)) DEALLOCATE(TACCS(KMI)%K294) +IF (ASSOCIATED(TACCS(KMI)%K295)) DEALLOCATE(TACCS(KMI)%K295) +IF (ASSOCIATED(TACCS(KMI)%K296)) DEALLOCATE(TACCS(KMI)%K296) +IF (ASSOCIATED(TACCS(KMI)%K297)) DEALLOCATE(TACCS(KMI)%K297) +IF (ASSOCIATED(TACCS(KMI)%K298)) DEALLOCATE(TACCS(KMI)%K298) +IF (ASSOCIATED(TACCS(KMI)%K299)) DEALLOCATE(TACCS(KMI)%K299) +IF (ASSOCIATED(TACCS(KMI)%K300)) DEALLOCATE(TACCS(KMI)%K300) +IF (ASSOCIATED(TACCS(KMI)%K301)) DEALLOCATE(TACCS(KMI)%K301) +IF (ASSOCIATED(TACCS(KMI)%K302)) DEALLOCATE(TACCS(KMI)%K302) +IF (ASSOCIATED(TACCS(KMI)%K303)) DEALLOCATE(TACCS(KMI)%K303) +IF (ASSOCIATED(TACCS(KMI)%K304)) DEALLOCATE(TACCS(KMI)%K304) +IF (ASSOCIATED(TACCS(KMI)%K305)) DEALLOCATE(TACCS(KMI)%K305) +IF (ASSOCIATED(TACCS(KMI)%K306)) DEALLOCATE(TACCS(KMI)%K306) +IF (ASSOCIATED(TACCS(KMI)%K307)) DEALLOCATE(TACCS(KMI)%K307) +IF (ASSOCIATED(TACCS(KMI)%K308)) DEALLOCATE(TACCS(KMI)%K308) +IF (ASSOCIATED(TACCS(KMI)%K309)) DEALLOCATE(TACCS(KMI)%K309) +IF (ASSOCIATED(TACCS(KMI)%K310)) DEALLOCATE(TACCS(KMI)%K310) +IF (ASSOCIATED(TACCS(KMI)%K311)) DEALLOCATE(TACCS(KMI)%K311) +IF (ASSOCIATED(TACCS(KMI)%K312)) DEALLOCATE(TACCS(KMI)%K312) +IF (ASSOCIATED(TACCS(KMI)%K313)) DEALLOCATE(TACCS(KMI)%K313) +IF (ASSOCIATED(TACCS(KMI)%K314)) DEALLOCATE(TACCS(KMI)%K314) +IF (ASSOCIATED(TACCS(KMI)%K315)) DEALLOCATE(TACCS(KMI)%K315) +IF (ASSOCIATED(TACCS(KMI)%K316)) DEALLOCATE(TACCS(KMI)%K316) +IF (ASSOCIATED(TACCS(KMI)%K317)) DEALLOCATE(TACCS(KMI)%K317) +IF (ASSOCIATED(TACCS(KMI)%K318)) DEALLOCATE(TACCS(KMI)%K318) +IF (ASSOCIATED(TACCS(KMI)%K319)) DEALLOCATE(TACCS(KMI)%K319) +IF (ASSOCIATED(TACCS(KMI)%K320)) DEALLOCATE(TACCS(KMI)%K320) +IF (ASSOCIATED(TACCS(KMI)%K321)) DEALLOCATE(TACCS(KMI)%K321) +IF (ASSOCIATED(TACCS(KMI)%K322)) DEALLOCATE(TACCS(KMI)%K322) +IF (ASSOCIATED(TACCS(KMI)%K323)) DEALLOCATE(TACCS(KMI)%K323) +IF (ASSOCIATED(TACCS(KMI)%K324)) DEALLOCATE(TACCS(KMI)%K324) +IF (ASSOCIATED(TACCS(KMI)%K325)) DEALLOCATE(TACCS(KMI)%K325) +IF (ASSOCIATED(TACCS(KMI)%K326)) DEALLOCATE(TACCS(KMI)%K326) +IF (ASSOCIATED(TACCS(KMI)%K327)) DEALLOCATE(TACCS(KMI)%K327) +IF (ASSOCIATED(TACCS(KMI)%K328)) DEALLOCATE(TACCS(KMI)%K328) +IF (ASSOCIATED(TACCS(KMI)%K329)) DEALLOCATE(TACCS(KMI)%K329) +IF (ASSOCIATED(TACCS(KMI)%K330)) DEALLOCATE(TACCS(KMI)%K330) +IF (ASSOCIATED(TACCS(KMI)%K331)) DEALLOCATE(TACCS(KMI)%K331) +IF (ASSOCIATED(TACCS(KMI)%K332)) DEALLOCATE(TACCS(KMI)%K332) +IF (ASSOCIATED(TACCS(KMI)%K333)) DEALLOCATE(TACCS(KMI)%K333) +IF (ASSOCIATED(TACCS(KMI)%K334)) DEALLOCATE(TACCS(KMI)%K334) +IF (ASSOCIATED(TACCS(KMI)%K335)) DEALLOCATE(TACCS(KMI)%K335) +IF (ASSOCIATED(TACCS(KMI)%K337)) DEALLOCATE(TACCS(KMI)%K337) +IF (ASSOCIATED(TACCS(KMI)%K338)) DEALLOCATE(TACCS(KMI)%K338) +IF (ASSOCIATED(TACCS(KMI)%K339)) DEALLOCATE(TACCS(KMI)%K339) +IF (ASSOCIATED(TACCS(KMI)%K340)) DEALLOCATE(TACCS(KMI)%K340) +IF (ASSOCIATED(TACCS(KMI)%K341)) DEALLOCATE(TACCS(KMI)%K341) +IF (ASSOCIATED(TACCS(KMI)%K342)) DEALLOCATE(TACCS(KMI)%K342) +IF (ASSOCIATED(TACCS(KMI)%K343)) DEALLOCATE(TACCS(KMI)%K343) +IF (ASSOCIATED(TACCS(KMI)%K344)) DEALLOCATE(TACCS(KMI)%K344) +IF (ASSOCIATED(TACCS(KMI)%K345)) DEALLOCATE(TACCS(KMI)%K345) +IF (ASSOCIATED(TACCS(KMI)%K346)) DEALLOCATE(TACCS(KMI)%K346) +IF (ASSOCIATED(TACCS(KMI)%K347)) DEALLOCATE(TACCS(KMI)%K347) +IF (ASSOCIATED(TACCS(KMI)%K348)) DEALLOCATE(TACCS(KMI)%K348) +IF (ASSOCIATED(TACCS(KMI)%K349)) DEALLOCATE(TACCS(KMI)%K349) +IF (ASSOCIATED(TACCS(KMI)%K350)) DEALLOCATE(TACCS(KMI)%K350) +IF (ASSOCIATED(TACCS(KMI)%K351)) DEALLOCATE(TACCS(KMI)%K351) +IF (ASSOCIATED(TACCS(KMI)%K352)) DEALLOCATE(TACCS(KMI)%K352) +IF (ASSOCIATED(TACCS(KMI)%K353)) DEALLOCATE(TACCS(KMI)%K353) +IF (ASSOCIATED(TACCS(KMI)%K354)) DEALLOCATE(TACCS(KMI)%K354) +IF (ASSOCIATED(TACCS(KMI)%K355)) DEALLOCATE(TACCS(KMI)%K355) +IF (ASSOCIATED(TACCS(KMI)%K356)) DEALLOCATE(TACCS(KMI)%K356) +IF (ASSOCIATED(TACCS(KMI)%K357)) DEALLOCATE(TACCS(KMI)%K357) +IF (ASSOCIATED(TACCS(KMI)%K358)) DEALLOCATE(TACCS(KMI)%K358) +IF (ASSOCIATED(TACCS(KMI)%K359)) DEALLOCATE(TACCS(KMI)%K359) +IF (ASSOCIATED(TACCS(KMI)%K360)) DEALLOCATE(TACCS(KMI)%K360) +IF (ASSOCIATED(TACCS(KMI)%K361)) DEALLOCATE(TACCS(KMI)%K361) +IF (ASSOCIATED(TACCS(KMI)%K362)) DEALLOCATE(TACCS(KMI)%K362) +IF (ASSOCIATED(TACCS(KMI)%K363)) DEALLOCATE(TACCS(KMI)%K363) +IF (ASSOCIATED(TACCS(KMI)%K364)) DEALLOCATE(TACCS(KMI)%K364) +IF (ASSOCIATED(TACCS(KMI)%K365)) DEALLOCATE(TACCS(KMI)%K365) IF (ASSOCIATED(TACCS(KMI)%KTC1)) DEALLOCATE(TACCS(KMI)%KTC1) IF (ASSOCIATED(TACCS(KMI)%KTC2)) DEALLOCATE(TACCS(KMI)%KTC2) IF (ASSOCIATED(TACCS(KMI)%KTC3)) DEALLOCATE(TACCS(KMI)%KTC3) @@ -2583,6 +5158,28 @@ IF (ASSOCIATED(TACCS(KMI)%KTC37)) DEALLOCATE(TACCS(KMI)%KTC37) IF (ASSOCIATED(TACCS(KMI)%KTC38)) DEALLOCATE(TACCS(KMI)%KTC38) IF (ASSOCIATED(TACCS(KMI)%KTC39)) DEALLOCATE(TACCS(KMI)%KTC39) IF (ASSOCIATED(TACCS(KMI)%KTC40)) DEALLOCATE(TACCS(KMI)%KTC40) +IF (ASSOCIATED(TACCS(KMI)%KTC41)) DEALLOCATE(TACCS(KMI)%KTC41) +IF (ASSOCIATED(TACCS(KMI)%KTC42)) DEALLOCATE(TACCS(KMI)%KTC42) +IF (ASSOCIATED(TACCS(KMI)%KTC43)) DEALLOCATE(TACCS(KMI)%KTC43) +IF (ASSOCIATED(TACCS(KMI)%KTC44)) DEALLOCATE(TACCS(KMI)%KTC44) +IF (ASSOCIATED(TACCS(KMI)%KTC45)) DEALLOCATE(TACCS(KMI)%KTC45) +IF (ASSOCIATED(TACCS(KMI)%KTC46)) DEALLOCATE(TACCS(KMI)%KTC46) +IF (ASSOCIATED(TACCS(KMI)%KTC47)) DEALLOCATE(TACCS(KMI)%KTC47) +IF (ASSOCIATED(TACCS(KMI)%KTC48)) DEALLOCATE(TACCS(KMI)%KTC48) +IF (ASSOCIATED(TACCS(KMI)%KTC49)) DEALLOCATE(TACCS(KMI)%KTC49) +IF (ASSOCIATED(TACCS(KMI)%KTC50)) DEALLOCATE(TACCS(KMI)%KTC50) +IF (ASSOCIATED(TACCS(KMI)%KTC51)) DEALLOCATE(TACCS(KMI)%KTC51) +IF (ASSOCIATED(TACCS(KMI)%KTC52)) DEALLOCATE(TACCS(KMI)%KTC52) +IF (ASSOCIATED(TACCS(KMI)%KTC53)) DEALLOCATE(TACCS(KMI)%KTC53) +IF (ASSOCIATED(TACCS(KMI)%KTC54)) DEALLOCATE(TACCS(KMI)%KTC54) +IF (ASSOCIATED(TACCS(KMI)%KTC55)) DEALLOCATE(TACCS(KMI)%KTC55) +IF (ASSOCIATED(TACCS(KMI)%KTC56)) DEALLOCATE(TACCS(KMI)%KTC56) +IF (ASSOCIATED(TACCS(KMI)%KTC57)) DEALLOCATE(TACCS(KMI)%KTC57) +IF (ASSOCIATED(TACCS(KMI)%KTC58)) DEALLOCATE(TACCS(KMI)%KTC58) +IF (ASSOCIATED(TACCS(KMI)%KTC59)) DEALLOCATE(TACCS(KMI)%KTC59) +IF (ASSOCIATED(TACCS(KMI)%KTC60)) DEALLOCATE(TACCS(KMI)%KTC60) +IF (ASSOCIATED(TACCS(KMI)%KTC61)) DEALLOCATE(TACCS(KMI)%KTC61) +IF (ASSOCIATED(TACCS(KMI)%KTC62)) DEALLOCATE(TACCS(KMI)%KTC62) IF (ASSOCIATED(TACCS(KMI)%KTR1)) DEALLOCATE(TACCS(KMI)%KTR1) IF (ASSOCIATED(TACCS(KMI)%KTR2)) DEALLOCATE(TACCS(KMI)%KTR2) IF (ASSOCIATED(TACCS(KMI)%KTR3)) DEALLOCATE(TACCS(KMI)%KTR3) @@ -2623,6 +5220,28 @@ IF (ASSOCIATED(TACCS(KMI)%KTR37)) DEALLOCATE(TACCS(KMI)%KTR37) IF (ASSOCIATED(TACCS(KMI)%KTR38)) DEALLOCATE(TACCS(KMI)%KTR38) IF (ASSOCIATED(TACCS(KMI)%KTR39)) DEALLOCATE(TACCS(KMI)%KTR39) IF (ASSOCIATED(TACCS(KMI)%KTR40)) DEALLOCATE(TACCS(KMI)%KTR40) +IF (ASSOCIATED(TACCS(KMI)%KTR41)) DEALLOCATE(TACCS(KMI)%KTR41) +IF (ASSOCIATED(TACCS(KMI)%KTR42)) DEALLOCATE(TACCS(KMI)%KTR42) +IF (ASSOCIATED(TACCS(KMI)%KTR43)) DEALLOCATE(TACCS(KMI)%KTR43) +IF (ASSOCIATED(TACCS(KMI)%KTR44)) DEALLOCATE(TACCS(KMI)%KTR44) +IF (ASSOCIATED(TACCS(KMI)%KTR45)) DEALLOCATE(TACCS(KMI)%KTR45) +IF (ASSOCIATED(TACCS(KMI)%KTR46)) DEALLOCATE(TACCS(KMI)%KTR46) +IF (ASSOCIATED(TACCS(KMI)%KTR47)) DEALLOCATE(TACCS(KMI)%KTR47) +IF (ASSOCIATED(TACCS(KMI)%KTR48)) DEALLOCATE(TACCS(KMI)%KTR48) +IF (ASSOCIATED(TACCS(KMI)%KTR49)) DEALLOCATE(TACCS(KMI)%KTR49) +IF (ASSOCIATED(TACCS(KMI)%KTR50)) DEALLOCATE(TACCS(KMI)%KTR50) +IF (ASSOCIATED(TACCS(KMI)%KTR51)) DEALLOCATE(TACCS(KMI)%KTR51) +IF (ASSOCIATED(TACCS(KMI)%KTR52)) DEALLOCATE(TACCS(KMI)%KTR52) +IF (ASSOCIATED(TACCS(KMI)%KTR53)) DEALLOCATE(TACCS(KMI)%KTR53) +IF (ASSOCIATED(TACCS(KMI)%KTR54)) DEALLOCATE(TACCS(KMI)%KTR54) +IF (ASSOCIATED(TACCS(KMI)%KTR55)) DEALLOCATE(TACCS(KMI)%KTR55) +IF (ASSOCIATED(TACCS(KMI)%KTR56)) DEALLOCATE(TACCS(KMI)%KTR56) +IF (ASSOCIATED(TACCS(KMI)%KTR57)) DEALLOCATE(TACCS(KMI)%KTR57) +IF (ASSOCIATED(TACCS(KMI)%KTR58)) DEALLOCATE(TACCS(KMI)%KTR58) +IF (ASSOCIATED(TACCS(KMI)%KTR59)) DEALLOCATE(TACCS(KMI)%KTR59) +IF (ASSOCIATED(TACCS(KMI)%KTR60)) DEALLOCATE(TACCS(KMI)%KTR60) +IF (ASSOCIATED(TACCS(KMI)%KTR61)) DEALLOCATE(TACCS(KMI)%KTR61) +IF (ASSOCIATED(TACCS(KMI)%KTR62)) DEALLOCATE(TACCS(KMI)%KTR62) IF (ASSOCIATED(TACCS(KMI)%KC1)) DEALLOCATE(TACCS(KMI)%KC1) IF (ASSOCIATED(TACCS(KMI)%KC2)) DEALLOCATE(TACCS(KMI)%KC2) IF (ASSOCIATED(TACCS(KMI)%KC3)) DEALLOCATE(TACCS(KMI)%KC3) @@ -2653,6 +5272,22 @@ IF (ASSOCIATED(TACCS(KMI)%KC27)) DEALLOCATE(TACCS(KMI)%KC27) IF (ASSOCIATED(TACCS(KMI)%KC28)) DEALLOCATE(TACCS(KMI)%KC28) IF (ASSOCIATED(TACCS(KMI)%KC29)) DEALLOCATE(TACCS(KMI)%KC29) IF (ASSOCIATED(TACCS(KMI)%KC30)) DEALLOCATE(TACCS(KMI)%KC30) +IF (ASSOCIATED(TACCS(KMI)%KC31)) DEALLOCATE(TACCS(KMI)%KC31) +IF (ASSOCIATED(TACCS(KMI)%KC32)) DEALLOCATE(TACCS(KMI)%KC32) +IF (ASSOCIATED(TACCS(KMI)%KC33)) DEALLOCATE(TACCS(KMI)%KC33) +IF (ASSOCIATED(TACCS(KMI)%KC34)) DEALLOCATE(TACCS(KMI)%KC34) +IF (ASSOCIATED(TACCS(KMI)%KC35)) DEALLOCATE(TACCS(KMI)%KC35) +IF (ASSOCIATED(TACCS(KMI)%KC36)) DEALLOCATE(TACCS(KMI)%KC36) +IF (ASSOCIATED(TACCS(KMI)%KC37)) DEALLOCATE(TACCS(KMI)%KC37) +IF (ASSOCIATED(TACCS(KMI)%KC38)) DEALLOCATE(TACCS(KMI)%KC38) +IF (ASSOCIATED(TACCS(KMI)%KC39)) DEALLOCATE(TACCS(KMI)%KC39) +IF (ASSOCIATED(TACCS(KMI)%KC40)) DEALLOCATE(TACCS(KMI)%KC40) +IF (ASSOCIATED(TACCS(KMI)%KC41)) DEALLOCATE(TACCS(KMI)%KC41) +IF (ASSOCIATED(TACCS(KMI)%KC42)) DEALLOCATE(TACCS(KMI)%KC42) +IF (ASSOCIATED(TACCS(KMI)%KC43)) DEALLOCATE(TACCS(KMI)%KC43) +IF (ASSOCIATED(TACCS(KMI)%KC44)) DEALLOCATE(TACCS(KMI)%KC44) +IF (ASSOCIATED(TACCS(KMI)%KC45)) DEALLOCATE(TACCS(KMI)%KC45) +IF (ASSOCIATED(TACCS(KMI)%KC46)) DEALLOCATE(TACCS(KMI)%KC46) IF (ASSOCIATED(TACCS(KMI)%KR1)) DEALLOCATE(TACCS(KMI)%KR1) IF (ASSOCIATED(TACCS(KMI)%KR2)) DEALLOCATE(TACCS(KMI)%KR2) IF (ASSOCIATED(TACCS(KMI)%KR3)) DEALLOCATE(TACCS(KMI)%KR3) @@ -2683,8 +5318,29 @@ IF (ASSOCIATED(TACCS(KMI)%KR27)) DEALLOCATE(TACCS(KMI)%KR27) IF (ASSOCIATED(TACCS(KMI)%KR28)) DEALLOCATE(TACCS(KMI)%KR28) IF (ASSOCIATED(TACCS(KMI)%KR29)) DEALLOCATE(TACCS(KMI)%KR29) IF (ASSOCIATED(TACCS(KMI)%KR30)) DEALLOCATE(TACCS(KMI)%KR30) +IF (ASSOCIATED(TACCS(KMI)%KR31)) DEALLOCATE(TACCS(KMI)%KR31) +IF (ASSOCIATED(TACCS(KMI)%KR32)) DEALLOCATE(TACCS(KMI)%KR32) +IF (ASSOCIATED(TACCS(KMI)%KR33)) DEALLOCATE(TACCS(KMI)%KR33) +IF (ASSOCIATED(TACCS(KMI)%KR34)) DEALLOCATE(TACCS(KMI)%KR34) +IF (ASSOCIATED(TACCS(KMI)%KR35)) DEALLOCATE(TACCS(KMI)%KR35) +IF (ASSOCIATED(TACCS(KMI)%KR36)) DEALLOCATE(TACCS(KMI)%KR36) +IF (ASSOCIATED(TACCS(KMI)%KR37)) DEALLOCATE(TACCS(KMI)%KR37) +IF (ASSOCIATED(TACCS(KMI)%KR38)) DEALLOCATE(TACCS(KMI)%KR38) +IF (ASSOCIATED(TACCS(KMI)%KR39)) DEALLOCATE(TACCS(KMI)%KR39) +IF (ASSOCIATED(TACCS(KMI)%KR40)) DEALLOCATE(TACCS(KMI)%KR40) +IF (ASSOCIATED(TACCS(KMI)%KR41)) DEALLOCATE(TACCS(KMI)%KR41) +IF (ASSOCIATED(TACCS(KMI)%KR42)) DEALLOCATE(TACCS(KMI)%KR42) +IF (ASSOCIATED(TACCS(KMI)%KR43)) DEALLOCATE(TACCS(KMI)%KR43) +IF (ASSOCIATED(TACCS(KMI)%KR44)) DEALLOCATE(TACCS(KMI)%KR44) +IF (ASSOCIATED(TACCS(KMI)%KR45)) DEALLOCATE(TACCS(KMI)%KR45) +IF (ASSOCIATED(TACCS(KMI)%KR46)) DEALLOCATE(TACCS(KMI)%KR46) IF (ASSOCIATED(TACCS(KMI)%NVERB)) DEALLOCATE(TACCS(KMI)%NVERB) IF (ASSOCIATED(TACCS(KMI)%MODELLEVEL)) DEALLOCATE(TACCS(KMI)%MODELLEVEL) +IF (ASSOCIATED(TACCS(KMI)%LAT)) DEALLOCATE(TACCS(KMI)%LAT) +IF (ASSOCIATED(TACCS(KMI)%LON)) DEALLOCATE(TACCS(KMI)%LON) +IF (ASSOCIATED(TACCS(KMI)%YEAR)) DEALLOCATE(TACCS(KMI)%YEAR) +IF (ASSOCIATED(TACCS(KMI)%MONTH)) DEALLOCATE(TACCS(KMI)%MONTH) +IF (ASSOCIATED(TACCS(KMI)%DAY)) DEALLOCATE(TACCS(KMI)%DAY) IF (ASSOCIATED(TACCS(KMI)%T)) DEALLOCATE(TACCS(KMI)%T) IF (ASSOCIATED(TACCS(KMI)%PRESSURE)) DEALLOCATE(TACCS(KMI)%PRESSURE) IF (ASSOCIATED(TACCS(KMI)%M)) DEALLOCATE(TACCS(KMI)%M) @@ -2695,14 +5351,74 @@ IF (ASSOCIATED(TACCS(KMI)%RHODREF)) DEALLOCATE(TACCS(KMI)%RHODREF) IF (ASSOCIATED(TACCS(KMI)%O2)) DEALLOCATE(TACCS(KMI)%O2) IF (ASSOCIATED(TACCS(KMI)%N2)) DEALLOCATE(TACCS(KMI)%N2) IF (ASSOCIATED(TACCS(KMI)%H2)) DEALLOCATE(TACCS(KMI)%H2) -IF (ASSOCIATED(TACCS(KMI)%OH)) DEALLOCATE(TACCS(KMI)%OH) -IF (ASSOCIATED(TACCS(KMI)%O1D)) DEALLOCATE(TACCS(KMI)%O1D) -IF (ASSOCIATED(TACCS(KMI)%O3P)) DEALLOCATE(TACCS(KMI)%O3P) -IF (ASSOCIATED(TACCS(KMI)%LAT)) DEALLOCATE(TACCS(KMI)%LAT) -IF (ASSOCIATED(TACCS(KMI)%LON)) DEALLOCATE(TACCS(KMI)%LON) -IF (ASSOCIATED(TACCS(KMI)%YEAR)) DEALLOCATE(TACCS(KMI)%YEAR) -IF (ASSOCIATED(TACCS(KMI)%MONTH)) DEALLOCATE(TACCS(KMI)%MONTH) -IF (ASSOCIATED(TACCS(KMI)%DAY)) DEALLOCATE(TACCS(KMI)%DAY) +IF (ASSOCIATED(TACCS(KMI)%CO2)) DEALLOCATE(TACCS(KMI)%CO2) +IF (ASSOCIATED(TACCS(KMI)%CH4)) DEALLOCATE(TACCS(KMI)%CH4) +IF (ASSOCIATED(TACCS(KMI)%O )) DEALLOCATE(TACCS(KMI)%O ) +IF (ASSOCIATED(TACCS(KMI)%OSD )) DEALLOCATE(TACCS(KMI)%OSD ) +IF (ASSOCIATED(TACCS(KMI)%RO22 )) DEALLOCATE(TACCS(KMI)%RO22 ) +IF (ASSOCIATED(TACCS(KMI)%RO23 )) DEALLOCATE(TACCS(KMI)%RO23 ) +IF (ASSOCIATED(TACCS(KMI)%RO24 )) DEALLOCATE(TACCS(KMI)%RO24 ) +IF (ASSOCIATED(TACCS(KMI)%RO26 )) DEALLOCATE(TACCS(KMI)%RO26 ) +IF (ASSOCIATED(TACCS(KMI)%RO27 )) DEALLOCATE(TACCS(KMI)%RO27 ) +IF (ASSOCIATED(TACCS(KMI)%RO28)) DEALLOCATE(TACCS(KMI)%RO28) +IF (ASSOCIATED(TACCS(KMI)%RO29 )) DEALLOCATE(TACCS(KMI)%RO29 ) +IF (ASSOCIATED(TACCS(KMI)%RO210 )) DEALLOCATE(TACCS(KMI)%RO210 ) +IF (ASSOCIATED(TACCS(KMI)%RO211 )) DEALLOCATE(TACCS(KMI)%RO211 ) +IF (ASSOCIATED(TACCS(KMI)%RO212 )) DEALLOCATE(TACCS(KMI)%RO212 ) +IF (ASSOCIATED(TACCS(KMI)%RO213 )) DEALLOCATE(TACCS(KMI)%RO213 ) +IF (ASSOCIATED(TACCS(KMI)%RO214 )) DEALLOCATE(TACCS(KMI)%RO214 ) +IF (ASSOCIATED(TACCS(KMI)%RO215 )) DEALLOCATE(TACCS(KMI)%RO215 ) +IF (ASSOCIATED(TACCS(KMI)%RO216 )) DEALLOCATE(TACCS(KMI)%RO216 ) +IF (ASSOCIATED(TACCS(KMI)%RO217 )) DEALLOCATE(TACCS(KMI)%RO217 ) +IF (ASSOCIATED(TACCS(KMI)%RO218 )) DEALLOCATE(TACCS(KMI)%RO218 ) +IF (ASSOCIATED(TACCS(KMI)%RO219 )) DEALLOCATE(TACCS(KMI)%RO219 ) +IF (ASSOCIATED(TACCS(KMI)%RO220 )) DEALLOCATE(TACCS(KMI)%RO220 ) +IF (ASSOCIATED(TACCS(KMI)%RO221 )) DEALLOCATE(TACCS(KMI)%RO221 ) +IF (ASSOCIATED(TACCS(KMI)%RO222 )) DEALLOCATE(TACCS(KMI)%RO222 ) +IF (ASSOCIATED(TACCS(KMI)%RO223 )) DEALLOCATE(TACCS(KMI)%RO223 ) +IF (ASSOCIATED(TACCS(KMI)%RO224 )) DEALLOCATE(TACCS(KMI)%RO224 ) +IF (ASSOCIATED(TACCS(KMI)%RO225 )) DEALLOCATE(TACCS(KMI)%RO225 ) +IF (ASSOCIATED(TACCS(KMI)%RO226 )) DEALLOCATE(TACCS(KMI)%RO226 ) +IF (ASSOCIATED(TACCS(KMI)%RO227 )) DEALLOCATE(TACCS(KMI)%RO227 ) +IF (ASSOCIATED(TACCS(KMI)%RO228 )) DEALLOCATE(TACCS(KMI)%RO228 ) +IF (ASSOCIATED(TACCS(KMI)%RO229 )) DEALLOCATE(TACCS(KMI)%RO229 ) +IF (ASSOCIATED(TACCS(KMI)%RO230 )) DEALLOCATE(TACCS(KMI)%RO230 ) +IF (ASSOCIATED(TACCS(KMI)%RO231 )) DEALLOCATE(TACCS(KMI)%RO231 ) +IF (ASSOCIATED(TACCS(KMI)%RO232 )) DEALLOCATE(TACCS(KMI)%RO232 ) +IF (ASSOCIATED(TACCS(KMI)%RO233 )) DEALLOCATE(TACCS(KMI)%RO233 ) +IF (ASSOCIATED(TACCS(KMI)%RO234 )) DEALLOCATE(TACCS(KMI)%RO234 ) +IF (ASSOCIATED(TACCS(KMI)%RO235 )) DEALLOCATE(TACCS(KMI)%RO235 ) +IF (ASSOCIATED(TACCS(KMI)%RO236 )) DEALLOCATE(TACCS(KMI)%RO236 ) +IF (ASSOCIATED(TACCS(KMI)%RO237 )) DEALLOCATE(TACCS(KMI)%RO237 ) +IF (ASSOCIATED(TACCS(KMI)%RO238 )) DEALLOCATE(TACCS(KMI)%RO238 ) +IF (ASSOCIATED(TACCS(KMI)%RO239 )) DEALLOCATE(TACCS(KMI)%RO239 ) +IF (ASSOCIATED(TACCS(KMI)%RO240 )) DEALLOCATE(TACCS(KMI)%RO240 ) +IF (ASSOCIATED(TACCS(KMI)%RO241 )) DEALLOCATE(TACCS(KMI)%RO241 ) +IF (ASSOCIATED(TACCS(KMI)%RO242 )) DEALLOCATE(TACCS(KMI)%RO242 ) +IF (ASSOCIATED(TACCS(KMI)%RO243 )) DEALLOCATE(TACCS(KMI)%RO243 ) +IF (ASSOCIATED(TACCS(KMI)%RO244 )) DEALLOCATE(TACCS(KMI)%RO244 ) +IF (ASSOCIATED(TACCS(KMI)%RO245 )) DEALLOCATE(TACCS(KMI)%RO245 ) +IF (ASSOCIATED(TACCS(KMI)%RO246 )) DEALLOCATE(TACCS(KMI)%RO246 ) +IF (ASSOCIATED(TACCS(KMI)%RO247 )) DEALLOCATE(TACCS(KMI)%RO247 ) +IF (ASSOCIATED(TACCS(KMI)%RO248 )) DEALLOCATE(TACCS(KMI)%RO248 ) +IF (ASSOCIATED(TACCS(KMI)%RO249 )) DEALLOCATE(TACCS(KMI)%RO249 ) +IF (ASSOCIATED(TACCS(KMI)%RO250 )) DEALLOCATE(TACCS(KMI)%RO250 ) +IF (ASSOCIATED(TACCS(KMI)%RO251 )) DEALLOCATE(TACCS(KMI)%RO251 ) +IF (ASSOCIATED(TACCS(KMI)%RO252 )) DEALLOCATE(TACCS(KMI)%RO252 ) +IF (ASSOCIATED(TACCS(KMI)%RO253 )) DEALLOCATE(TACCS(KMI)%RO253 ) +IF (ASSOCIATED(TACCS(KMI)%RO254 )) DEALLOCATE(TACCS(KMI)%RO254 ) +IF (ASSOCIATED(TACCS(KMI)%RO255 )) DEALLOCATE(TACCS(KMI)%RO255 ) +IF (ASSOCIATED(TACCS(KMI)%RO256 )) DEALLOCATE(TACCS(KMI)%RO256 ) +IF (ASSOCIATED(TACCS(KMI)%RO257 )) DEALLOCATE(TACCS(KMI)%RO257 ) +IF (ASSOCIATED(TACCS(KMI)%RO258 )) DEALLOCATE(TACCS(KMI)%RO258 ) +IF (ASSOCIATED(TACCS(KMI)%RAD1 )) DEALLOCATE(TACCS(KMI)%RAD1 ) +IF (ASSOCIATED(TACCS(KMI)%RAD2 )) DEALLOCATE(TACCS(KMI)%RAD2 ) +IF (ASSOCIATED(TACCS(KMI)%RAD3 )) DEALLOCATE(TACCS(KMI)%RAD3 ) +IF (ASSOCIATED(TACCS(KMI)%RAD4 )) DEALLOCATE(TACCS(KMI)%RAD4 ) +IF (ASSOCIATED(TACCS(KMI)%RAD5 )) DEALLOCATE(TACCS(KMI)%RAD5 ) +IF (ASSOCIATED(TACCS(KMI)%RAD6 )) DEALLOCATE(TACCS(KMI)%RAD6 ) +IF (ASSOCIATED(TACCS(KMI)%RAD7 )) DEALLOCATE(TACCS(KMI)%RAD7 ) +IF (ASSOCIATED(TACCS(KMI)%RAD8 )) DEALLOCATE(TACCS(KMI)%RAD8 ) IF (ASSOCIATED(TACCS(KMI)%LWC)) DEALLOCATE(TACCS(KMI)%LWC) IF (ASSOCIATED(TACCS(KMI)%MOL2MOLECCLOUD)) DEALLOCATE(TACCS(KMI)%MOL2MOLECCLOUD) IF (ASSOCIATED(TACCS(KMI)%RADC)) DEALLOCATE(TACCS(KMI)%RADC) @@ -2711,9 +5427,81 @@ IF (ASSOCIATED(TACCS(KMI)%LWR)) DEALLOCATE(TACCS(KMI)%LWR) IF (ASSOCIATED(TACCS(KMI)%MOL2MOLECRAIN)) DEALLOCATE(TACCS(KMI)%MOL2MOLECRAIN) IF (ASSOCIATED(TACCS(KMI)%RADR)) DEALLOCATE(TACCS(KMI)%RADR) IF (ASSOCIATED(TACCS(KMI)%PHR)) DEALLOCATE(TACCS(KMI)%PHR) -IF (ASSOCIATED(TACCS(KMI)%CO2)) DEALLOCATE(TACCS(KMI)%CO2) IF (ASSOCIATED(TACCS(KMI)%RCH)) DEALLOCATE(TACCS(KMI)%RCH) IF (ASSOCIATED(TACCS(KMI)%W_O2)) DEALLOCATE(TACCS(KMI)%W_O2) +IF (ASSOCIATED(TACCS(KMI)%CF1)) DEALLOCATE(TACCS(KMI)%CF1) +IF (ASSOCIATED(TACCS(KMI)%CF2)) DEALLOCATE(TACCS(KMI)%CF2) +IF (ASSOCIATED(TACCS(KMI)%CF3)) DEALLOCATE(TACCS(KMI)%CF3) +IF (ASSOCIATED(TACCS(KMI)%CF4)) DEALLOCATE(TACCS(KMI)%CF4) +IF (ASSOCIATED(TACCS(KMI)%CF5)) DEALLOCATE(TACCS(KMI)%CF5) +IF (ASSOCIATED(TACCS(KMI)%CF6)) DEALLOCATE(TACCS(KMI)%CF6) +IF (ASSOCIATED(TACCS(KMI)%CF7)) DEALLOCATE(TACCS(KMI)%CF7) +IF (ASSOCIATED(TACCS(KMI)%CF8)) DEALLOCATE(TACCS(KMI)%CF8) +IF (ASSOCIATED(TACCS(KMI)%CF9)) DEALLOCATE(TACCS(KMI)%CF9) +IF (ASSOCIATED(TACCS(KMI)%CF10)) DEALLOCATE(TACCS(KMI)%CF10) +IF (ASSOCIATED(TACCS(KMI)%CF11)) DEALLOCATE(TACCS(KMI)%CF11) +IF (ASSOCIATED(TACCS(KMI)%CF12)) DEALLOCATE(TACCS(KMI)%CF12) +IF (ASSOCIATED(TACCS(KMI)%CF13)) DEALLOCATE(TACCS(KMI)%CF13) +IF (ASSOCIATED(TACCS(KMI)%CF14)) DEALLOCATE(TACCS(KMI)%CF14) +IF (ASSOCIATED(TACCS(KMI)%CF15)) DEALLOCATE(TACCS(KMI)%CF15) +IF (ASSOCIATED(TACCS(KMI)%CF16)) DEALLOCATE(TACCS(KMI)%CF16) +IF (ASSOCIATED(TACCS(KMI)%CF17)) DEALLOCATE(TACCS(KMI)%CF17) +IF (ASSOCIATED(TACCS(KMI)%CF18)) DEALLOCATE(TACCS(KMI)%CF18) +IF (ASSOCIATED(TACCS(KMI)%CF19)) DEALLOCATE(TACCS(KMI)%CF19) +IF (ASSOCIATED(TACCS(KMI)%CF20)) DEALLOCATE(TACCS(KMI)%CF20) +IF (ASSOCIATED(TACCS(KMI)%CF21)) DEALLOCATE(TACCS(KMI)%CF21) +IF (ASSOCIATED(TACCS(KMI)%CF22)) DEALLOCATE(TACCS(KMI)%CF22) +IF (ASSOCIATED(TACCS(KMI)%CF23)) DEALLOCATE(TACCS(KMI)%CF23) +IF (ASSOCIATED(TACCS(KMI)%CF24)) DEALLOCATE(TACCS(KMI)%CF24) +IF (ASSOCIATED(TACCS(KMI)%CF25)) DEALLOCATE(TACCS(KMI)%CF25) +IF (ASSOCIATED(TACCS(KMI)%CF26)) DEALLOCATE(TACCS(KMI)%CF26) +IF (ASSOCIATED(TACCS(KMI)%CF27)) DEALLOCATE(TACCS(KMI)%CF27) +IF (ASSOCIATED(TACCS(KMI)%CF28)) DEALLOCATE(TACCS(KMI)%CF28) +IF (ASSOCIATED(TACCS(KMI)%CF29)) DEALLOCATE(TACCS(KMI)%CF29) +IF (ASSOCIATED(TACCS(KMI)%CF30)) DEALLOCATE(TACCS(KMI)%CF30) +IF (ASSOCIATED(TACCS(KMI)%CF31)) DEALLOCATE(TACCS(KMI)%CF31) +IF (ASSOCIATED(TACCS(KMI)%CF32)) DEALLOCATE(TACCS(KMI)%CF32) +IF (ASSOCIATED(TACCS(KMI)%CF33)) DEALLOCATE(TACCS(KMI)%CF33) +IF (ASSOCIATED(TACCS(KMI)%CF34)) DEALLOCATE(TACCS(KMI)%CF34) +IF (ASSOCIATED(TACCS(KMI)%CF35)) DEALLOCATE(TACCS(KMI)%CF35) +IF (ASSOCIATED(TACCS(KMI)%CF36)) DEALLOCATE(TACCS(KMI)%CF36) +IF (ASSOCIATED(TACCS(KMI)%CF37)) DEALLOCATE(TACCS(KMI)%CF37) +IF (ASSOCIATED(TACCS(KMI)%CF38)) DEALLOCATE(TACCS(KMI)%CF38) +IF (ASSOCIATED(TACCS(KMI)%CF39)) DEALLOCATE(TACCS(KMI)%CF39) +IF (ASSOCIATED(TACCS(KMI)%CF40)) DEALLOCATE(TACCS(KMI)%CF40) +IF (ASSOCIATED(TACCS(KMI)%CF41)) DEALLOCATE(TACCS(KMI)%CF41) +IF (ASSOCIATED(TACCS(KMI)%CF42)) DEALLOCATE(TACCS(KMI)%CF42) +IF (ASSOCIATED(TACCS(KMI)%CF43)) DEALLOCATE(TACCS(KMI)%CF43) +IF (ASSOCIATED(TACCS(KMI)%CF44)) DEALLOCATE(TACCS(KMI)%CF44) +IF (ASSOCIATED(TACCS(KMI)%CF45)) DEALLOCATE(TACCS(KMI)%CF45) +IF (ASSOCIATED(TACCS(KMI)%CF46)) DEALLOCATE(TACCS(KMI)%CF46) +IF (ASSOCIATED(TACCS(KMI)%CF47)) DEALLOCATE(TACCS(KMI)%CF47) +IF (ASSOCIATED(TACCS(KMI)%CF48)) DEALLOCATE(TACCS(KMI)%CF48) +IF (ASSOCIATED(TACCS(KMI)%CF49)) DEALLOCATE(TACCS(KMI)%CF49) +IF (ASSOCIATED(TACCS(KMI)%CFA1)) DEALLOCATE(TACCS(KMI)%CFA1) +IF (ASSOCIATED(TACCS(KMI)%CFA2)) DEALLOCATE(TACCS(KMI)%CFA2) +IF (ASSOCIATED(TACCS(KMI)%CFA3)) DEALLOCATE(TACCS(KMI)%CFA3) +IF (ASSOCIATED(TACCS(KMI)%CFA4)) DEALLOCATE(TACCS(KMI)%CFA4) +IF (ASSOCIATED(TACCS(KMI)%CFA5)) DEALLOCATE(TACCS(KMI)%CFA5) +IF (ASSOCIATED(TACCS(KMI)%CFA6)) DEALLOCATE(TACCS(KMI)%CFA6) +IF (ASSOCIATED(TACCS(KMI)%CFA7)) DEALLOCATE(TACCS(KMI)%CFA7) +IF (ASSOCIATED(TACCS(KMI)%CFA8)) DEALLOCATE(TACCS(KMI)%CFA8) +IF (ASSOCIATED(TACCS(KMI)%CFA9)) DEALLOCATE(TACCS(KMI)%CFA9) +IF (ASSOCIATED(TACCS(KMI)%CFA10)) DEALLOCATE(TACCS(KMI)%CFA10) +IF (ASSOCIATED(TACCS(KMI)%CFA11)) DEALLOCATE(TACCS(KMI)%CFA11) +IF (ASSOCIATED(TACCS(KMI)%CFA12)) DEALLOCATE(TACCS(KMI)%CFA12) +IF (ASSOCIATED(TACCS(KMI)%CFA13)) DEALLOCATE(TACCS(KMI)%CFA13) +IF (ASSOCIATED(TACCS(KMI)%CFA14)) DEALLOCATE(TACCS(KMI)%CFA14) +IF (ASSOCIATED(TACCS(KMI)%CFA15)) DEALLOCATE(TACCS(KMI)%CFA15) +IF (ASSOCIATED(TACCS(KMI)%CFA16)) DEALLOCATE(TACCS(KMI)%CFA16) +IF (ASSOCIATED(TACCS(KMI)%CFA17)) DEALLOCATE(TACCS(KMI)%CFA17) +IF (ASSOCIATED(TACCS(KMI)%CFA18)) DEALLOCATE(TACCS(KMI)%CFA18) +IF (ASSOCIATED(TACCS(KMI)%CFA19)) DEALLOCATE(TACCS(KMI)%CFA19) +IF (ASSOCIATED(TACCS(KMI)%CFA20)) DEALLOCATE(TACCS(KMI)%CFA20) +IF (ASSOCIATED(TACCS(KMI)%CFA21)) DEALLOCATE(TACCS(KMI)%CFA21) +IF (ASSOCIATED(TACCS(KMI)%CFA22)) DEALLOCATE(TACCS(KMI)%CFA22) +IF (ASSOCIATED(TACCS(KMI)%CFA23)) DEALLOCATE(TACCS(KMI)%CFA23) +IF (ASSOCIATED(TACCS(KMI)%CFA24)) DEALLOCATE(TACCS(KMI)%CFA24) END SUBROUTINE CH_DEALLOCATE_TACCS ! !======================================================================== @@ -2810,97 +5598,167 @@ TACCS(KMI)%NOUT = KOUT IF (GFIRSTCALL) THEN GFIRSTCALL = .FALSE. ! initialisation of the names of the chemical species - CNAMES(1) = 'O3' - CNAMES(2) = 'H2O2' - CNAMES(3) = 'NO' - CNAMES(4) = 'NO2' - CNAMES(5) = 'NO3' - CNAMES(6) = 'N2O5' - CNAMES(7) = 'HONO' - CNAMES(8) = 'HNO3' - CNAMES(9) = 'HNO4' - CNAMES(10) = 'NH3' - CNAMES(11) = 'SO2' - CNAMES(12) = 'SULF' - CNAMES(13) = 'CO' - CNAMES(14) = 'OH' - CNAMES(15) = 'HO2' - CNAMES(16) = 'CH4' - CNAMES(17) = 'ETH' - CNAMES(18) = 'ALKA' - CNAMES(19) = 'ALKE' - CNAMES(20) = 'BIO' - CNAMES(21) = 'ARO' - CNAMES(22) = 'HCHO' - CNAMES(23) = 'ALD' - CNAMES(24) = 'KET' - CNAMES(25) = 'CARBO' - CNAMES(26) = 'ONIT' - CNAMES(27) = 'PAN' - CNAMES(28) = 'OP1' - CNAMES(29) = 'OP2' - CNAMES(30) = 'ORA1' - CNAMES(31) = 'ORA2' - CNAMES(32) = 'MO2' - CNAMES(33) = 'ALKAP' - CNAMES(34) = 'ALKEP' - CNAMES(35) = 'BIOP' - CNAMES(36) = 'PHO' - CNAMES(37) = 'ADD' - CNAMES(38) = 'AROP' - CNAMES(39) = 'CARBOP' - CNAMES(40) = 'OLN' - CNAMES(41) = 'XO2' - CNAMES(42) = 'WC_O3' - CNAMES(43) = 'WC_H2O2' - CNAMES(44) = 'WC_NO' - CNAMES(45) = 'WC_NO2' - CNAMES(46) = 'WC_NO3' - CNAMES(47) = 'WC_N2O5' - CNAMES(48) = 'WC_HONO' - CNAMES(49) = 'WC_HNO3' - CNAMES(50) = 'WC_HNO4' - CNAMES(51) = 'WC_NH3' - CNAMES(52) = 'WC_OH' - CNAMES(53) = 'WC_HO2' - CNAMES(54) = 'WC_CO2' - CNAMES(55) = 'WC_SO2' - CNAMES(56) = 'WC_SULF' - CNAMES(57) = 'WC_HCHO' - CNAMES(58) = 'WC_ORA1' - CNAMES(59) = 'WC_ORA2' - CNAMES(60) = 'WC_MO2' - CNAMES(61) = 'WC_OP1' - CNAMES(62) = 'WC_ASO3' - CNAMES(63) = 'WC_ASO4' - CNAMES(64) = 'WC_ASO5' - CNAMES(65) = 'WC_AHSO5' - CNAMES(66) = 'WC_AHMS' - CNAMES(67) = 'WR_O3' - CNAMES(68) = 'WR_H2O2' - CNAMES(69) = 'WR_NO' - CNAMES(70) = 'WR_NO2' - CNAMES(71) = 'WR_NO3' - CNAMES(72) = 'WR_N2O5' - CNAMES(73) = 'WR_HONO' - CNAMES(74) = 'WR_HNO3' - CNAMES(75) = 'WR_HNO4' - CNAMES(76) = 'WR_NH3' - CNAMES(77) = 'WR_OH' - CNAMES(78) = 'WR_HO2' - CNAMES(79) = 'WR_CO2' - CNAMES(80) = 'WR_SO2' - CNAMES(81) = 'WR_SULF' - CNAMES(82) = 'WR_HCHO' - CNAMES(83) = 'WR_ORA1' - CNAMES(84) = 'WR_ORA2' - CNAMES(85) = 'WR_MO2' - CNAMES(86) = 'WR_OP1' - CNAMES(87) = 'WR_ASO3' - CNAMES(88) = 'WR_ASO4' - CNAMES(89) = 'WR_ASO5' - CNAMES(90) = 'WR_AHSO5' - CNAMES(91) = 'WR_AHMS' + CNAMES(1) = 'NO' + CNAMES(2) = 'NO2' + CNAMES(3) = 'O3' + CNAMES(4) = 'HONO' + CNAMES(5) = 'HNO3' + CNAMES(6) = 'HNO4' + CNAMES(7) = 'N2O5' + CNAMES(8) = 'NO3' + CNAMES(9) = 'NH3' + CNAMES(10) = 'HO2' + CNAMES(11) = 'CO' + CNAMES(12) = 'H2O2' + CNAMES(13) = 'SO2' + CNAMES(14) = 'H2SO4' + CNAMES(15) = 'OH' + CNAMES(16) = 'ETHE' + CNAMES(17) = 'OLEL' + CNAMES(18) = 'OLEH' + CNAMES(19) = 'ALKL' + CNAMES(20) = 'ALKM' + CNAMES(21) = 'ALKH' + CNAMES(22) = 'AROH' + CNAMES(23) = 'AROL' + CNAMES(24) = 'AROO' + CNAMES(25) = 'ARAL' + CNAMES(26) = 'ARAC' + CNAMES(27) = 'PAH' + CNAMES(28) = 'HCHO' + CNAMES(29) = 'ALD2' + CNAMES(30) = 'KETL' + CNAMES(31) = 'KETH' + CNAMES(32) = 'MEOH' + CNAMES(33) = 'ETOH' + CNAMES(34) = 'ALCH' + CNAMES(35) = 'ISOP' + CNAMES(36) = 'BIOL' + CNAMES(37) = 'BIOH' + CNAMES(38) = 'MTBE' + CNAMES(39) = 'MVK' + CNAMES(40) = 'MCR' + CNAMES(41) = 'MGLY' + CNAMES(42) = 'GLY' + CNAMES(43) = 'ORA1' + CNAMES(44) = 'ORA2' + CNAMES(45) = 'ACID' + CNAMES(46) = 'UR28' + CNAMES(47) = 'UR21' + CNAMES(48) = 'URG2' + CNAMES(49) = 'UR26' + CNAMES(50) = 'RPG2' + CNAMES(51) = 'RP18' + CNAMES(52) = 'RPG3' + CNAMES(53) = 'URG4' + CNAMES(54) = 'UR8' + CNAMES(55) = 'UR17' + CNAMES(56) = 'UR7' + CNAMES(57) = 'RPR3' + CNAMES(58) = 'URG6' + CNAMES(59) = 'UR22' + CNAMES(60) = 'URG7' + CNAMES(61) = 'RPR4' + CNAMES(62) = 'RPR7' + CNAMES(63) = 'RPG7' + CNAMES(64) = 'URG8' + CNAMES(65) = 'UR19' + CNAMES(66) = 'URG9' + CNAMES(67) = 'AP7' + CNAMES(68) = 'URG10' + CNAMES(69) = 'RPR1' + CNAMES(70) = 'RPR5' + CNAMES(71) = 'RPR8' + CNAMES(72) = 'RP10' + CNAMES(73) = 'RP11' + CNAMES(74) = 'RP16' + CNAMES(75) = 'RPRL' + CNAMES(76) = 'APAN' + CNAMES(77) = 'PAN1' + CNAMES(78) = 'PAN2' + CNAMES(79) = 'PAN3' + CNAMES(80) = 'PAN4' + CNAMES(81) = 'PAN6' + CNAMES(82) = 'PAN7' + CNAMES(83) = 'PAN8' + CNAMES(84) = 'PN10' + CNAMES(85) = 'RO2T' + CNAMES(86) = 'RO21' + CNAMES(87) = 'RO25' + CNAMES(88) = 'WC_O3' + CNAMES(89) = 'WC_H2O2' + CNAMES(90) = 'WC_NO' + CNAMES(91) = 'WC_NO2' + CNAMES(92) = 'WC_NO3' + CNAMES(93) = 'WC_N2O5' + CNAMES(94) = 'WC_HONO' + CNAMES(95) = 'WC_HNO3' + CNAMES(96) = 'WC_HNO4' + CNAMES(97) = 'WC_NH3' + CNAMES(98) = 'WC_OH' + CNAMES(99) = 'WC_HO2' + CNAMES(100) = 'WC_CO2' + CNAMES(101) = 'WC_SO2' + CNAMES(102) = 'WC_H2SO4' + CNAMES(103) = 'WC_RO21' + CNAMES(104) = 'WC_RO25' + CNAMES(105) = 'WC_MEOH' + CNAMES(106) = 'WC_ETOH' + CNAMES(107) = 'WC_ALCH' + CNAMES(108) = 'WC_HCHO' + CNAMES(109) = 'WC_ALD2' + CNAMES(110) = 'WC_GLY' + CNAMES(111) = 'WC_MGLY' + CNAMES(112) = 'WC_KETL' + CNAMES(113) = 'WC_ORA1' + CNAMES(114) = 'WC_ORA2' + CNAMES(115) = 'WC_ACID' + CNAMES(116) = 'WC_RP16' + CNAMES(117) = 'WC_UR21' + CNAMES(118) = 'WC_UR28' + CNAMES(119) = 'WC_ACID2' + CNAMES(120) = 'WC_ASO3' + CNAMES(121) = 'WC_ASO4' + CNAMES(122) = 'WC_ASO5' + CNAMES(123) = 'WC_AHSO5' + CNAMES(124) = 'WC_AHMS' + CNAMES(125) = 'WR_O3' + CNAMES(126) = 'WR_H2O2' + CNAMES(127) = 'WR_NO' + CNAMES(128) = 'WR_NO2' + CNAMES(129) = 'WR_NO3' + CNAMES(130) = 'WR_N2O5' + CNAMES(131) = 'WR_HONO' + CNAMES(132) = 'WR_HNO3' + CNAMES(133) = 'WR_HNO4' + CNAMES(134) = 'WR_NH3' + CNAMES(135) = 'WR_OH' + CNAMES(136) = 'WR_HO2' + CNAMES(137) = 'WR_CO2' + CNAMES(138) = 'WR_SO2' + CNAMES(139) = 'WR_H2SO4' + CNAMES(140) = 'WR_RO21' + CNAMES(141) = 'WR_RO25' + CNAMES(142) = 'WR_MEOH' + CNAMES(143) = 'WR_ETOH' + CNAMES(144) = 'WR_ALCH' + CNAMES(145) = 'WR_HCHO' + CNAMES(146) = 'WR_ALD2' + CNAMES(147) = 'WR_GLY' + CNAMES(148) = 'WR_MGLY' + CNAMES(149) = 'WR_KETL' + CNAMES(150) = 'WR_ORA1' + CNAMES(151) = 'WR_ORA2' + CNAMES(152) = 'WR_ACID' + CNAMES(153) = 'WR_RP16' + CNAMES(154) = 'WR_UR21' + CNAMES(155) = 'WR_UR28' + CNAMES(156) = 'WR_ACID2' + CNAMES(157) = 'WR_ASO3' + CNAMES(158) = 'WR_ASO4' + CNAMES(159) = 'WR_ASO5' + CNAMES(160) = 'WR_AHSO5' + CNAMES(161) = 'WR_AHMS' ! initialisation of the names of the reactions CREACS(1) = 'K001' CREACS(2) = 'K002' @@ -2919,829 +5777,1605 @@ IF (GFIRSTCALL) THEN CREACS(15) = 'K015' CREACS(16) = 'K016' CREACS(17) = 'K017' - CREACS(18) = 'K018' - CREACS(19) = 'K019' - CREACS(20) = 'K020' - CREACS(21) = 'K021' - CREACS(22) = 'K022' - CREACS(23) = 'K023' - CREACS(24) = 'K024' - CREACS(25) = 'K025' - CREACS(26) = 'K026' - CREACS(27) = 'K027' - CREACS(28) = 'K028' - CREACS(29) = 'K029' - CREACS(30) = 'K030' - CREACS(31) = 'K031' - CREACS(32) = 'K032' - CREACS(33) = 'K033' - CREACS(34) = 'K034' - CREACS(35) = 'K035' - CREACS(36) = 'K036' - CREACS(37) = 'K037' - CREACS(38) = 'K038' - CREACS(39) = 'K039' - CREACS(40) = 'K040' - CREACS(41) = 'K041' - CREACS(42) = 'K042' - CREACS(43) = 'K043' - CREACS(44) = 'K044' - CREACS(45) = 'K045' - CREACS(46) = 'K046' - CREACS(47) = 'K047' - CREACS(48) = 'K048' - CREACS(49) = 'K049' - CREACS(50) = 'K050' - CREACS(51) = 'K051' - CREACS(52) = 'K052' - CREACS(53) = 'K053' - CREACS(54) = 'K054' - CREACS(55) = 'K055' - CREACS(56) = 'K056' - CREACS(57) = 'K057' - CREACS(58) = 'K058' - CREACS(59) = 'K059' - CREACS(60) = 'K060' - CREACS(61) = 'K061' - CREACS(62) = 'K062' - CREACS(63) = 'K063' - CREACS(64) = 'K064' - CREACS(65) = 'K065' - CREACS(66) = 'K066' - CREACS(67) = 'K067' - CREACS(68) = 'K068' - CREACS(69) = 'K069' - CREACS(70) = 'K070' - CREACS(71) = 'K071' - CREACS(72) = 'K072' - CREACS(73) = 'K073' - CREACS(74) = 'K074' - CREACS(75) = 'K075' - CREACS(76) = 'K076' - CREACS(77) = 'K077' - CREACS(78) = 'K078' - CREACS(79) = 'K079' - CREACS(80) = 'K080' - CREACS(81) = 'K081' - CREACS(82) = 'K082' - CREACS(83) = 'K083' - CREACS(84) = 'K084' - CREACS(85) = 'K085' - CREACS(86) = 'K086' - CREACS(87) = 'K087' - CREACS(88) = 'K088' - CREACS(89) = 'K089' - CREACS(90) = 'K090' - CREACS(91) = 'K091' - CREACS(92) = 'K092' - CREACS(93) = 'K093' - CREACS(94) = 'K094' - CREACS(95) = 'K095' - CREACS(96) = 'K096' - CREACS(97) = 'K097' - CREACS(98) = 'K098' - CREACS(99) = 'K099' - CREACS(100) = 'K0100' - CREACS(101) = 'K0101' - CREACS(102) = 'K0102' - CREACS(103) = 'K103' - CREACS(104) = 'K104' - CREACS(105) = 'K105' - CREACS(106) = 'K106' - CREACS(107) = 'K107' - CREACS(108) = 'K108' - CREACS(109) = 'K109' - CREACS(110) = 'K110' - CREACS(111) = 'K111' - CREACS(112) = 'K112' - CREACS(113) = 'K113' - CREACS(114) = 'K114' - CREACS(115) = 'K115' - CREACS(116) = 'K116' - CREACS(117) = 'K117' - CREACS(118) = 'K118' - CREACS(119) = 'K119' - CREACS(120) = 'K120' - CREACS(121) = 'K121' - CREACS(122) = 'K122' - CREACS(123) = 'K123' - CREACS(124) = 'K124' - CREACS(125) = 'K125' - CREACS(126) = 'K126' - CREACS(127) = 'K127' - CREACS(128) = 'K128' - CREACS(129) = 'K129' - CREACS(130) = 'K130' - CREACS(131) = 'K131' - CREACS(132) = 'K132' - CREACS(133) = 'KTC1' - CREACS(134) = 'KTC2' - CREACS(135) = 'KTC3' - CREACS(136) = 'KTC4' - CREACS(137) = 'KTC5' - CREACS(138) = 'KTC6' - CREACS(139) = 'KTC7' - CREACS(140) = 'KTC8' - CREACS(141) = 'KTC9' - CREACS(142) = 'KTC10' - CREACS(143) = 'KTC11' - CREACS(144) = 'KTC12' - CREACS(145) = 'KTC13' - CREACS(146) = 'KTC14' - CREACS(147) = 'KTC15' - CREACS(148) = 'KTC16' - CREACS(149) = 'KTC17' - CREACS(150) = 'KTC18' - CREACS(151) = 'KTC19' - CREACS(152) = 'KTC20' - CREACS(153) = 'KTC21' - CREACS(154) = 'KTC22' - CREACS(155) = 'KTC23' - CREACS(156) = 'KTC24' - CREACS(157) = 'KTC25' - CREACS(158) = 'KTC26' - CREACS(159) = 'KTC27' - CREACS(160) = 'KTC28' - CREACS(161) = 'KTC29' - CREACS(162) = 'KTC30' - CREACS(163) = 'KTC31' - CREACS(164) = 'KTC32' - CREACS(165) = 'KTC33' - CREACS(166) = 'KTC34' - CREACS(167) = 'KTC35' - CREACS(168) = 'KTC36' - CREACS(169) = 'KTC37' - CREACS(170) = 'KTC38' - CREACS(171) = 'KTC39' - CREACS(172) = 'KTC40' - CREACS(173) = 'KTR1' - CREACS(174) = 'KTR2' - CREACS(175) = 'KTR3' - CREACS(176) = 'KTR4' - CREACS(177) = 'KTR5' - CREACS(178) = 'KTR6' - CREACS(179) = 'KTR7' - CREACS(180) = 'KTR8' - CREACS(181) = 'KTR9' - CREACS(182) = 'KTR10' - CREACS(183) = 'KTR11' - CREACS(184) = 'KTR12' - CREACS(185) = 'KTR13' - CREACS(186) = 'KTR14' - CREACS(187) = 'KTR15' - CREACS(188) = 'KTR16' - CREACS(189) = 'KTR17' - CREACS(190) = 'KTR18' - CREACS(191) = 'KTR19' - CREACS(192) = 'KTR20' - CREACS(193) = 'KTR21' - CREACS(194) = 'KTR22' - CREACS(195) = 'KTR23' - CREACS(196) = 'KTR24' - CREACS(197) = 'KTR25' - CREACS(198) = 'KTR26' - CREACS(199) = 'KTR27' - CREACS(200) = 'KTR28' - CREACS(201) = 'KTR29' - CREACS(202) = 'KTR30' - CREACS(203) = 'KTR31' - CREACS(204) = 'KTR32' - CREACS(205) = 'KTR33' - CREACS(206) = 'KTR34' - CREACS(207) = 'KTR35' - CREACS(208) = 'KTR36' - CREACS(209) = 'KTR37' - CREACS(210) = 'KTR38' - CREACS(211) = 'KTR39' - CREACS(212) = 'KTR40' - CREACS(213) = 'KC1' - CREACS(214) = 'KC2' - CREACS(215) = 'KC3' - CREACS(216) = 'KC4' - CREACS(217) = 'KC5' - CREACS(218) = 'KC6' - CREACS(219) = 'KC7' - CREACS(220) = 'KC8' - CREACS(221) = 'KC9' - CREACS(222) = 'KC10' - CREACS(223) = 'KC11' - CREACS(224) = 'KC12' - CREACS(225) = 'KC13' - CREACS(226) = 'KC14' - CREACS(227) = 'KC15' - CREACS(228) = 'KC16' - CREACS(229) = 'KC17' - CREACS(230) = 'KC18' - CREACS(231) = 'KC19' - CREACS(232) = 'KC20' - CREACS(233) = 'KC21' - CREACS(234) = 'KC22' - CREACS(235) = 'KC23' - CREACS(236) = 'KC24' - CREACS(237) = 'KC25' - CREACS(238) = 'KC26' - CREACS(239) = 'KC27' - CREACS(240) = 'KC28' - CREACS(241) = 'KC29' - CREACS(242) = 'KC30' - CREACS(243) = 'KR1' - CREACS(244) = 'KR2' - CREACS(245) = 'KR3' - CREACS(246) = 'KR4' - CREACS(247) = 'KR5' - CREACS(248) = 'KR6' - CREACS(249) = 'KR7' - CREACS(250) = 'KR8' - CREACS(251) = 'KR9' - CREACS(252) = 'KR10' - CREACS(253) = 'KR11' - CREACS(254) = 'KR12' - CREACS(255) = 'KR13' - CREACS(256) = 'KR14' - CREACS(257) = 'KR15' - CREACS(258) = 'KR16' - CREACS(259) = 'KR17' - CREACS(260) = 'KR18' - CREACS(261) = 'KR19' - CREACS(262) = 'KR20' - CREACS(263) = 'KR21' - CREACS(264) = 'KR22' - CREACS(265) = 'KR23' - CREACS(266) = 'KR24' - CREACS(267) = 'KR25' - CREACS(268) = 'KR26' - CREACS(269) = 'KR27' - CREACS(270) = 'KR28' - CREACS(271) = 'KR29' - CREACS(272) = 'KR30' + CREACS(18) = 'K018A' + CREACS(19) = 'K018B' + CREACS(20) = 'K019' + CREACS(21) = 'K020' + CREACS(22) = 'K021' + CREACS(23) = 'K022' + CREACS(24) = 'K023' + CREACS(25) = 'K024' + CREACS(26) = 'K025' + CREACS(27) = 'K026' + CREACS(28) = 'K027' + CREACS(29) = 'K028' + CREACS(30) = 'K029' + CREACS(31) = 'K030' + CREACS(32) = 'K031' + CREACS(33) = 'K032' + CREACS(34) = 'K033' + CREACS(35) = 'K034' + CREACS(36) = 'K035' + CREACS(37) = 'K036' + CREACS(38) = 'K037' + CREACS(39) = 'K038' + CREACS(40) = 'K039' + CREACS(41) = 'K040' + CREACS(42) = 'K041' + CREACS(43) = 'K042' + CREACS(44) = 'K043' + CREACS(45) = 'K044' + CREACS(46) = 'K045' + CREACS(47) = 'K046' + CREACS(48) = 'K047' + CREACS(49) = 'K048' + CREACS(50) = 'K049' + CREACS(51) = 'K050' + CREACS(52) = 'K051' + CREACS(53) = 'K052' + CREACS(54) = 'K053' + CREACS(55) = 'K054' + CREACS(56) = 'K055' + CREACS(57) = 'K056' + CREACS(58) = 'K057' + CREACS(59) = 'K058' + CREACS(60) = 'K059' + CREACS(61) = 'K060' + CREACS(62) = 'K061' + CREACS(63) = 'K062' + CREACS(64) = 'K063' + CREACS(65) = 'K064' + CREACS(66) = 'K065' + CREACS(67) = 'K066' + CREACS(68) = 'K067' + CREACS(69) = 'K068' + CREACS(70) = 'K069' + CREACS(71) = 'K070' + CREACS(72) = 'K071' + CREACS(73) = 'K072' + CREACS(74) = 'K073' + CREACS(75) = 'K074' + CREACS(76) = 'K075' + CREACS(77) = 'K076' + CREACS(78) = 'K077' + CREACS(79) = 'K078' + CREACS(80) = 'K079' + CREACS(81) = 'K080' + CREACS(82) = 'K081' + CREACS(83) = 'K082' + CREACS(84) = 'K083' + CREACS(85) = 'K084' + CREACS(86) = 'K085' + CREACS(87) = 'K086' + CREACS(88) = 'K087' + CREACS(89) = 'K088' + CREACS(90) = 'K089' + CREACS(91) = 'K090' + CREACS(92) = 'K091' + CREACS(93) = 'K092' + CREACS(94) = 'K093' + CREACS(95) = 'K094' + CREACS(96) = 'K095' + CREACS(97) = 'K096' + CREACS(98) = 'K097' + CREACS(99) = 'K098' + CREACS(100) = 'K099' + CREACS(101) = 'K100' + CREACS(102) = 'K101' + CREACS(103) = 'K102' + CREACS(104) = 'K103' + CREACS(105) = 'K104' + CREACS(106) = 'K105' + CREACS(107) = 'K106' + CREACS(108) = 'K107' + CREACS(109) = 'K108' + CREACS(110) = 'K109' + CREACS(111) = 'K110' + CREACS(112) = 'K111' + CREACS(113) = 'K112' + CREACS(114) = 'K113' + CREACS(115) = 'K114' + CREACS(116) = 'K115' + CREACS(117) = 'K116' + CREACS(118) = 'K117' + CREACS(119) = 'K118' + CREACS(120) = 'K119' + CREACS(121) = 'K120' + CREACS(122) = 'K121' + CREACS(123) = 'K122' + CREACS(124) = 'K123' + CREACS(125) = 'K124' + CREACS(126) = 'K125' + CREACS(127) = 'K126' + CREACS(128) = 'K127' + CREACS(129) = 'K128' + CREACS(130) = 'K129' + CREACS(131) = 'K130' + CREACS(132) = 'K131' + CREACS(133) = 'K132' + CREACS(134) = 'K133' + CREACS(135) = 'K134' + CREACS(136) = 'K135' + CREACS(137) = 'K136' + CREACS(138) = 'K137' + CREACS(139) = 'K138' + CREACS(140) = 'K139' + CREACS(141) = 'K140' + CREACS(142) = 'K141' + CREACS(143) = 'K142' + CREACS(144) = 'K143' + CREACS(145) = 'K144' + CREACS(146) = 'K145' + CREACS(147) = 'K146' + CREACS(148) = 'K147' + CREACS(149) = 'K148' + CREACS(150) = 'K149' + CREACS(151) = 'K150' + CREACS(152) = 'K151' + CREACS(153) = 'K152' + CREACS(154) = 'K153' + CREACS(155) = 'K154' + CREACS(156) = 'K155' + CREACS(157) = 'K156' + CREACS(158) = 'K157' + CREACS(159) = 'K158' + CREACS(160) = 'K159' + CREACS(161) = 'K160' + CREACS(162) = 'K161' + CREACS(163) = 'K162' + CREACS(164) = 'K163' + CREACS(165) = 'K164' + CREACS(166) = 'K165' + CREACS(167) = 'K166' + CREACS(168) = 'K167' + CREACS(169) = 'K168' + CREACS(170) = 'K169' + CREACS(171) = 'K170' + CREACS(172) = 'K171' + CREACS(173) = 'K172' + CREACS(174) = 'K173' + CREACS(175) = 'K174' + CREACS(176) = 'K175' + CREACS(177) = 'K176' + CREACS(178) = 'K177' + CREACS(179) = 'K178' + CREACS(180) = 'K179' + CREACS(181) = 'K180' + CREACS(182) = 'K181' + CREACS(183) = 'K182' + CREACS(184) = 'K183' + CREACS(185) = 'K184' + CREACS(186) = 'K185' + CREACS(187) = 'K186' + CREACS(188) = 'K187' + CREACS(189) = 'K188' + CREACS(190) = 'K189' + CREACS(191) = 'K190' + CREACS(192) = 'K191' + CREACS(193) = 'K192' + CREACS(194) = 'K193' + CREACS(195) = 'K194' + CREACS(196) = 'K195' + CREACS(197) = 'K196' + CREACS(198) = 'K197' + CREACS(199) = 'K198' + CREACS(200) = 'K199' + CREACS(201) = 'K200' + CREACS(202) = 'K201' + CREACS(203) = 'K202' + CREACS(204) = 'K203' + CREACS(205) = 'K204' + CREACS(206) = 'K205' + CREACS(207) = 'K206' + CREACS(208) = 'K207' + CREACS(209) = 'K208' + CREACS(210) = 'K209' + CREACS(211) = 'K210' + CREACS(212) = 'K211' + CREACS(213) = 'K212' + CREACS(214) = 'K213' + CREACS(215) = 'K214' + CREACS(216) = 'K215' + CREACS(217) = 'K216' + CREACS(218) = 'K217' + CREACS(219) = 'K218' + CREACS(220) = 'K219' + CREACS(221) = 'K220' + CREACS(222) = 'K221' + CREACS(223) = 'K222' + CREACS(224) = 'K223' + CREACS(225) = 'K224' + CREACS(226) = 'K225' + CREACS(227) = 'K226' + CREACS(228) = 'K227' + CREACS(229) = 'K228' + CREACS(230) = 'K229' + CREACS(231) = 'K230' + CREACS(232) = 'K231' + CREACS(233) = 'K232' + CREACS(234) = 'K233' + CREACS(235) = 'K234' + CREACS(236) = 'K235' + CREACS(237) = 'K236' + CREACS(238) = 'K237' + CREACS(239) = 'K238' + CREACS(240) = 'K239' + CREACS(241) = 'K240' + CREACS(242) = 'K241' + CREACS(243) = 'K242' + CREACS(244) = 'K243' + CREACS(245) = 'K244' + CREACS(246) = 'K245' + CREACS(247) = 'K246' + CREACS(248) = 'K247' + CREACS(249) = 'K248' + CREACS(250) = 'K249' + CREACS(251) = 'K250' + CREACS(252) = 'K251' + CREACS(253) = 'K252' + CREACS(254) = 'K253' + CREACS(255) = 'K254' + CREACS(256) = 'K255' + CREACS(257) = 'K256' + CREACS(258) = 'K257' + CREACS(259) = 'K258' + CREACS(260) = 'K259' + CREACS(261) = 'K260' + CREACS(262) = 'K261' + CREACS(263) = 'K262' + CREACS(264) = 'K263' + CREACS(265) = 'K264' + CREACS(266) = 'K265' + CREACS(267) = 'K266' + CREACS(268) = 'K267' + CREACS(269) = 'K268' + CREACS(270) = 'K269' + CREACS(271) = 'K270' + CREACS(272) = 'K271' + CREACS(273) = 'K272' + CREACS(274) = 'K273' + CREACS(275) = 'K274' + CREACS(276) = 'K275' + CREACS(277) = 'K276' + CREACS(278) = 'K277' + CREACS(279) = 'K278' + CREACS(280) = 'K279' + CREACS(281) = 'K280' + CREACS(282) = 'K281' + CREACS(283) = 'K282' + CREACS(284) = 'K283' + CREACS(285) = 'K284' + CREACS(286) = 'K285' + CREACS(287) = 'K286' + CREACS(288) = 'K287' + CREACS(289) = 'K288' + CREACS(290) = 'K289' + CREACS(291) = 'K290' + CREACS(292) = 'K291' + CREACS(293) = 'K292' + CREACS(294) = 'K293' + CREACS(295) = 'K294' + CREACS(296) = 'K295' + CREACS(297) = 'K296' + CREACS(298) = 'K297' + CREACS(299) = 'K298' + CREACS(300) = 'K299' + CREACS(301) = 'K300' + CREACS(302) = 'K301' + CREACS(303) = 'K302' + CREACS(304) = 'K303' + CREACS(305) = 'K304' + CREACS(306) = 'K305' + CREACS(307) = 'K306' + CREACS(308) = 'K307' + CREACS(309) = 'K308' + CREACS(310) = 'K309' + CREACS(311) = 'K310' + CREACS(312) = 'K311' + CREACS(313) = 'K312' + CREACS(314) = 'K313' + CREACS(315) = 'K314' + CREACS(316) = 'K315' + CREACS(317) = 'K316' + CREACS(318) = 'K317' + CREACS(319) = 'K318' + CREACS(320) = 'K319' + CREACS(321) = 'K320' + CREACS(322) = 'K321' + CREACS(323) = 'K322' + CREACS(324) = 'K323' + CREACS(325) = 'K324' + CREACS(326) = 'K325' + CREACS(327) = 'K326' + CREACS(328) = 'K327' + CREACS(329) = 'K328' + CREACS(330) = 'K329' + CREACS(331) = 'K330' + CREACS(332) = 'K331' + CREACS(333) = 'K332' + CREACS(334) = 'K333' + CREACS(335) = 'K334' + CREACS(336) = 'K335' + CREACS(337) = 'K337' + CREACS(338) = 'K338' + CREACS(339) = 'K339' + CREACS(340) = 'K340' + CREACS(341) = 'K341' + CREACS(342) = 'K342' + CREACS(343) = 'K343' + CREACS(344) = 'K344' + CREACS(345) = 'K345' + CREACS(346) = 'K346' + CREACS(347) = 'K347' + CREACS(348) = 'K348' + CREACS(349) = 'K349' + CREACS(350) = 'K350' + CREACS(351) = 'K351' + CREACS(352) = 'K352' + CREACS(353) = 'K353' + CREACS(354) = 'K354' + CREACS(355) = 'K355' + CREACS(356) = 'K356' + CREACS(357) = 'K357' + CREACS(358) = 'K358' + CREACS(359) = 'K359' + CREACS(360) = 'K360' + CREACS(361) = 'K361' + CREACS(362) = 'K362' + CREACS(363) = 'K363' + CREACS(364) = 'K364' + CREACS(365) = 'K365' + CREACS(366) = 'KTC1' + CREACS(367) = 'KTC2' + CREACS(368) = 'KTC3' + CREACS(369) = 'KTC4' + CREACS(370) = 'KTC5' + CREACS(371) = 'KTC6' + CREACS(372) = 'KTC7' + CREACS(373) = 'KTC8' + CREACS(374) = 'KTC9' + CREACS(375) = 'KTC10' + CREACS(376) = 'KTC11' + CREACS(377) = 'KTC12' + CREACS(378) = 'KTC13' + CREACS(379) = 'KTC14' + CREACS(380) = 'KTC15' + CREACS(381) = 'KTC16' + CREACS(382) = 'KTC17' + CREACS(383) = 'KTC18' + CREACS(384) = 'KTC19' + CREACS(385) = 'KTC20' + CREACS(386) = 'KTC21' + CREACS(387) = 'KTC22' + CREACS(388) = 'KTC23' + CREACS(389) = 'KTC24' + CREACS(390) = 'KTC25' + CREACS(391) = 'KTC26' + CREACS(392) = 'KTC27' + CREACS(393) = 'KTC28' + CREACS(394) = 'KTC29' + CREACS(395) = 'KTC30' + CREACS(396) = 'KTC31' + CREACS(397) = 'KTC32' + CREACS(398) = 'KTC33' + CREACS(399) = 'KTC34' + CREACS(400) = 'KTC35' + CREACS(401) = 'KTC36' + CREACS(402) = 'KTC37' + CREACS(403) = 'KTC38' + CREACS(404) = 'KTC39' + CREACS(405) = 'KTC40' + CREACS(406) = 'KTC41' + CREACS(407) = 'KTC42' + CREACS(408) = 'KTC43' + CREACS(409) = 'KTC44' + CREACS(410) = 'KTC45' + CREACS(411) = 'KTC46' + CREACS(412) = 'KTC47' + CREACS(413) = 'KTC48' + CREACS(414) = 'KTC49' + CREACS(415) = 'KTC50' + CREACS(416) = 'KTC51' + CREACS(417) = 'KTC52' + CREACS(418) = 'KTC53' + CREACS(419) = 'KTC54' + CREACS(420) = 'KTC55' + CREACS(421) = 'KTC56' + CREACS(422) = 'KTC57' + CREACS(423) = 'KTC58' + CREACS(424) = 'KTC59' + CREACS(425) = 'KTC60' + CREACS(426) = 'KTC61' + CREACS(427) = 'KTC62' + CREACS(428) = 'KTR1' + CREACS(429) = 'KTR2' + CREACS(430) = 'KTR3' + CREACS(431) = 'KTR4' + CREACS(432) = 'KTR5' + CREACS(433) = 'KTR6' + CREACS(434) = 'KTR7' + CREACS(435) = 'KTR8' + CREACS(436) = 'KTR9' + CREACS(437) = 'KTR10' + CREACS(438) = 'KTR11' + CREACS(439) = 'KTR12' + CREACS(440) = 'KTR13' + CREACS(441) = 'KTR14' + CREACS(442) = 'KTR15' + CREACS(443) = 'KTR16' + CREACS(444) = 'KTR17' + CREACS(445) = 'KTR18' + CREACS(446) = 'KTR19' + CREACS(447) = 'KTR20' + CREACS(448) = 'KTR21' + CREACS(449) = 'KTR22' + CREACS(450) = 'KTR23' + CREACS(451) = 'KTR24' + CREACS(452) = 'KTR25' + CREACS(453) = 'KTR26' + CREACS(454) = 'KTR27' + CREACS(455) = 'KTR28' + CREACS(456) = 'KTR29' + CREACS(457) = 'KTR30' + CREACS(458) = 'KTR31' + CREACS(459) = 'KTR32' + CREACS(460) = 'KTR33' + CREACS(461) = 'KTR34' + CREACS(462) = 'KTR35' + CREACS(463) = 'KTR36' + CREACS(464) = 'KTR37' + CREACS(465) = 'KTR38' + CREACS(466) = 'KTR39' + CREACS(467) = 'KTR40' + CREACS(468) = 'KTR41' + CREACS(469) = 'KTR42' + CREACS(470) = 'KTR43' + CREACS(471) = 'KTR44' + CREACS(472) = 'KTR45' + CREACS(473) = 'KTR46' + CREACS(474) = 'KTR47' + CREACS(475) = 'KTR48' + CREACS(476) = 'KTR49' + CREACS(477) = 'KTR50' + CREACS(478) = 'KTR51' + CREACS(479) = 'KTR52' + CREACS(480) = 'KTR53' + CREACS(481) = 'KTR54' + CREACS(482) = 'KTR55' + CREACS(483) = 'KTR56' + CREACS(484) = 'KTR57' + CREACS(485) = 'KTR58' + CREACS(486) = 'KTR59' + CREACS(487) = 'KTR60' + CREACS(488) = 'KTR61' + CREACS(489) = 'KTR62' + CREACS(490) = 'KC1' + CREACS(491) = 'KC2' + CREACS(492) = 'KC3' + CREACS(493) = 'KC4' + CREACS(494) = 'KC5' + CREACS(495) = 'KC6' + CREACS(496) = 'KC7' + CREACS(497) = 'KC8' + CREACS(498) = 'KC9' + CREACS(499) = 'KC10' + CREACS(500) = 'KC11' + CREACS(501) = 'KC12' + CREACS(502) = 'KC13' + CREACS(503) = 'KC14' + CREACS(504) = 'KC15' + CREACS(505) = 'KC16' + CREACS(506) = 'KC17' + CREACS(507) = 'KC18' + CREACS(508) = 'KC19' + CREACS(509) = 'KC20' + CREACS(510) = 'KC21' + CREACS(511) = 'KC22' + CREACS(512) = 'KC23' + CREACS(513) = 'KC24' + CREACS(514) = 'KC25' + CREACS(515) = 'KC26' + CREACS(516) = 'KC27' + CREACS(517) = 'KC28' + CREACS(518) = 'KC29' + CREACS(519) = 'KC30' + CREACS(520) = 'KC31' + CREACS(521) = 'KC32' + CREACS(522) = 'KC33' + CREACS(523) = 'KC34' + CREACS(524) = 'KC35' + CREACS(525) = 'KC36' + CREACS(526) = 'KC37' + CREACS(527) = 'KC38' + CREACS(528) = 'KC39' + CREACS(529) = 'KC40' + CREACS(530) = 'KC41' + CREACS(531) = 'KC42' + CREACS(532) = 'KC43' + CREACS(533) = 'KC44' + CREACS(534) = 'KC45' + CREACS(535) = 'KC46' + CREACS(536) = 'KR1' + CREACS(537) = 'KR2' + CREACS(538) = 'KR3' + CREACS(539) = 'KR4' + CREACS(540) = 'KR5' + CREACS(541) = 'KR6' + CREACS(542) = 'KR7' + CREACS(543) = 'KR8' + CREACS(544) = 'KR9' + CREACS(545) = 'KR10' + CREACS(546) = 'KR11' + CREACS(547) = 'KR12' + CREACS(548) = 'KR13' + CREACS(549) = 'KR14' + CREACS(550) = 'KR15' + CREACS(551) = 'KR16' + CREACS(552) = 'KR17' + CREACS(553) = 'KR18' + CREACS(554) = 'KR19' + CREACS(555) = 'KR20' + CREACS(556) = 'KR21' + CREACS(557) = 'KR22' + CREACS(558) = 'KR23' + CREACS(559) = 'KR24' + CREACS(560) = 'KR25' + CREACS(561) = 'KR26' + CREACS(562) = 'KR27' + CREACS(563) = 'KR28' + CREACS(564) = 'KR29' + CREACS(565) = 'KR30' + CREACS(566) = 'KR31' + CREACS(567) = 'KR32' + CREACS(568) = 'KR33' + CREACS(569) = 'KR34' + CREACS(570) = 'KR35' + CREACS(571) = 'KR36' + CREACS(572) = 'KR37' + CREACS(573) = 'KR38' + CREACS(574) = 'KR39' + CREACS(575) = 'KR40' + CREACS(576) = 'KR41' + CREACS(577) = 'KR42' + CREACS(578) = 'KR43' + CREACS(579) = 'KR44' + CREACS(580) = 'KR45' + CREACS(581) = 'KR46' ! initialisation of the full reactions - CFULLREACS(1) = 'K001=!ZRATES(:,001)::NO2-->O3P+NO' - CFULLREACS(2) = 'K002=!ZRATES(:,002)::O3-->O1D+O2' - CFULLREACS(3) = 'K003=!ZRATES(:,003)::O3-->O3P+O2' - CFULLREACS(4) = 'K004=!ZRATES(:,004)::HONO-->OH+NO' - CFULLREACS(5) = 'K005=!ZRATES(:,005)::HNO3-->OH+NO2' - CFULLREACS(6) = 'K006=!ZRATES(:,006)::HNO4-->0.65*HO2+0.65*NO2+0.35*OH+0.35*NO& -&3' - CFULLREACS(7) = 'K007=!ZRATES(:,007)::NO3-->NO+O2' - CFULLREACS(8) = 'K008=!ZRATES(:,008)::NO3-->NO2+O3P' - CFULLREACS(9) = 'K009=!ZRATES(:,009)::H2O2-->OH+OH' - CFULLREACS(10) = 'K010=!ZRATES(:,010)::HCHO-->H2+CO' - CFULLREACS(11) = 'K011=!ZRATES(:,011)::HCHO-->HO2+HO2+CO' - CFULLREACS(12) = 'K012=!ZRATES(:,012)::ALD-->MO2+HO2+CO' - CFULLREACS(13) = 'K013=!ZRATES(:,013)::OP1-->HCHO+HO2+OH' - CFULLREACS(14) = 'K014=!ZRATES(:,014)::OP2-->0.96205*ALD+0.96205*HO2+0.03795*M& -&O2+OH' - CFULLREACS(15) = 'K015=!ZRATES(:,015)::KET-->1.00000*CARBOP+1.00000*ALKAP' - CFULLREACS(16) = 'K016=!ZRATES(:,016)::CARBO-->0.06517*HCHO+0.69622*CARBOP+0.7& -&5830*HO2+0.91924*CO+0.20842*H2' - CFULLREACS(17) = 'K017=!ZRATES(:,017)::ONIT-->0.20*ALD+0.80*KET+HO2+NO2' - CFULLREACS(18) = 'K018=TPK%M*6.00E-34*(TPK%T/300)**(-2.3)::O3P+O2-->O3' - CFULLREACS(19) = 'K019=8.00E-12*exp(-(2060.0/TPK%T))::O3P+O3-->2.0*O2' - CFULLREACS(20) = 'K020=1.80E-11*exp(-(-110.0/TPK%T))::O1D+N2-->O3P+N2' - CFULLREACS(21) = 'K021=3.20E-11*exp(-(-70.0/TPK%T))::O1D+O2-->O3P+O2' - CFULLREACS(22) = 'K022=2.20E-10::O1D+H2O-->OH+OH' - CFULLREACS(23) = 'K023=1.60E-12*exp(-(940.0/TPK%T))::O3+OH-->HO2+O2' - CFULLREACS(24) = 'K024=1.10E-14*exp(-(500.0/TPK%T))::O3+HO2-->OH+2.0*O2' - CFULLREACS(25) = 'K025=4.80E-11*exp(-(-250.0/TPK%T))::OH+HO2-->H2O+O2' - CFULLREACS(26) = 'K026=2.90E-12*exp(-(160.0/TPK%T))::H2O2+OH-->HO2+H2O' - CFULLREACS(27) = 'K027=2.3E-13*EXP(600./TPK%T)+1.7E-33*TPK%M*EXP(1000./TPK%T):& -&:HO2+HO2-->H2O2+O2' - CFULLREACS(28) = 'K028=3.22E-34*EXP(2800./TPK%T)+2.38E-54*TPK%M*EXP(3200./TPK%& -&T)::HO2+HO2+H2O-->H2O2+H2O+O2' - CFULLREACS(29) = 'K029=@TROE(1.,9.00E-32,1.5,3.00E-11,0.0,TPK%M,TPK%T,KVECNPT)& -&::O3P+NO-->NO2' - CFULLREACS(30) = 'K030=6.50E-12*exp(-(-120.0/TPK%T))::O3P+NO2-->NO+O2' - CFULLREACS(31) = 'K031=@TROE(1.,9.00E-32,2.0,2.20E-11,0.0,TPK%M,TPK%T,KVECNPT)& -&::O3P+NO2-->NO3' - CFULLREACS(32) = 'K032=@TROE(1.,7.00E-31,2.6,1.50E-11,0.5,TPK%M,TPK%T,KVECNPT)& -&::OH+NO-->HONO' - CFULLREACS(33) = 'K033=@TROE(1.,2.60E-30,3.2,2.40E-11,1.3,TPK%M,TPK%T,KVECNPT)& -&::OH+NO2-->HNO3' - CFULLREACS(34) = 'K034=2.20E-11::OH+NO3-->NO2+HO2' - CFULLREACS(35) = 'K035=3.70E-12*exp(-(-250.0/TPK%T))::HO2+NO-->NO2+OH' - CFULLREACS(36) = 'K036=@TROE(1.,1.80E-31,3.2,4.70E-12,1.4,TPK%M,TPK%T,KVECNPT)& -&::HO2+NO2-->HNO4' - CFULLREACS(37) = 'K037=@TROE_EQUIL(1.80E-31,3.2,4.70E-12,1.4,4.76E+26,10900.,T& -&PK%M,TPK%T,KVECNPT)::HNO4-->HO2+NO2' - CFULLREACS(38) = 'K038=3.50E-12::HO2+NO3-->0.3*HNO3+0.7*NO2+0.7*OH' - CFULLREACS(39) = 'K039=1.80E-11*exp(-(390.0/TPK%T))::OH+HONO-->H2O+NO2' - CFULLREACS(40) = 'K040=(7.2E-15*EXP(785/TPK%T))+(1.9E-33*EXP(725/TPK%T)*TPK%M)& -&/(1+(1.9E-33*EXP(725/TPK%T)*TPK%M)/(4.1E-16*EXP(1440/TPK%T)))::OH+HNO3-->NO3+H& + CFULLREACS(1) = 'K001=!ZRATES(:,001)::NO2-->NO+O' + CFULLREACS(2) = 'K002=TPK%M*5.60E-34*(TPK%T/300)**(-2.6)::O+O2-->O3' + CFULLREACS(3) = 'K003=6.5E-12*EXP(119.8/TPK%T)::O+NO2-->NO+O2' + CFULLREACS(4) = 'K004=@TROE(1.,9.0E-32,2.,2.2E-11,0.,0.8,TPK%M,TPK%T,KVECNPT):& +&:O+NO2-->NO3' + CFULLREACS(5) = 'K005=1.8E-12*EXP(-1368.9/TPK%T)::NO+O3-->NO2+O2' + CFULLREACS(6) = 'K006=1.4E-13*EXP(-2471.1/TPK%T)::NO2+O3-->NO3+O2' + CFULLREACS(7) = 'K007=1.8E-11*EXP(110.7/TPK%T)::NO+NO3-->2.*NO2' + CFULLREACS(8) = 'K008=5.09E-18/TPK%T*EXP(528.4/TPK%T)::NO+NO-->2.*NO2' + CFULLREACS(9) = 'K009=@TROE(1.,2.8E-30,3.5,2.0E-12,0.2,0.45,TPK%M,TPK%T,KVECNP& +&T)::NO2+NO3-->N2O5' + CFULLREACS(10) = 'K010=@TROE_EQUIL(2.8E-30,3.5,2.0E-12,0.2,3.70E+26,11000.0,0.& +&45,TPK%M,TPK%T,KVECNPT)::N2O5-->NO2+NO3' + CFULLREACS(11) = 'K011=2.59E-22::N2O5+H2O-->2.*HNO3' + CFULLREACS(12) = 'K012=4.5E-14*EXP(-1258.2/TPK%T)::NO2+NO3-->NO+NO2+O2' + CFULLREACS(13) = 'K013=!ZRATES(:,007)::NO3-->NO+O2' + CFULLREACS(14) = 'K014=!ZRATES(:,008)::NO3-->NO2+O' + CFULLREACS(15) = 'K015=!ZRATES(:,003)::O3-->O+O2' + CFULLREACS(16) = 'K016=!ZRATES(:,002)::O3-->OSD+O2' + CFULLREACS(17) = 'K017=2.2E-10::OSD+H2O-->OH+OH' + CFULLREACS(18) = 'K018A=1.80E-11*exp(-(-110.0/TPK%T))::OSD+N2-->O+N2' + CFULLREACS(19) = 'K018B=3.20E-11*exp(-(-70.0/TPK%T))::OSD+O2-->O+O2' + CFULLREACS(20) = 'K019=@TROE(1.,7.0E-31,2.6,3.6E-11,0.1,0.6,TPK%M,TPK%T,KVECNP& +&T)::NO+OH-->HONO' + CFULLREACS(21) = 'K020=!ZRATES(:,004)::HONO-->0.9*NO+0.1*NO2+0.9*OH+0.1*HO2' + CFULLREACS(22) = 'K021=4.0E-24::NO2+H2O-->0.5*HONO+0.5*HNO3' + CFULLREACS(23) = 'K022=@TROE(1.,2.85E-30,2.67,3.13E-11,0.,0.6,TPK%M,TPK%T,KVEC& +&NPT)::NO2+OH-->HNO3' + CFULLREACS(24) = 'K023=@TROE_KA(7.2E-15,785.1,4.1E-16,1439.4,1.9E-33,724.7,TPK& +&%M,TPK%T,KVECNPT)::HNO3+OH-->NO3+H2O' + CFULLREACS(25) = 'K024=@TROE_KB(1.3E-13,0.,3.19E-33,0.,TPK%M,TPK%T,KVECNPT)::C& +&O+OH-->HO2+CO2' + CFULLREACS(26) = 'K025=1.9E-12*EXP(-1001.5/TPK%T)::O3+OH-->HO2+O2' + CFULLREACS(27) = 'K026=3.41E-12*EXP(271.8/TPK%T)::NO+HO2-->NO2+OH' + CFULLREACS(28) = 'K027=@TROE(1.,1.8E-31,3.2,4.7E-12,0.,0.6,TPK%M,TPK%T,KVECNPT& +&)::NO2+HO2-->HNO4' + CFULLREACS(29) = 'K028=@TROE_EQUIL(1.8E-31,3.2,4.7E-12,0.,4.76E+26,10900.,0.6,& +&TPK%M,TPK%T,KVECNPT)::HNO4-->NO2+HO2' + CFULLREACS(30) = 'K029=1.5E-12*EXP(362.4/TPK%T)::HNO4+OH-->NO2+O2+H2O' + CFULLREACS(31) = 'K030=1.4E-14*EXP(-598.9/TPK%T)::O3+HO2-->OH+2.*O2' + CFULLREACS(32) = 'K031=@TROE_KB(2.2E-13,598.9,1.85E-33,981.4,TPK%M,TPK%T,KVECN& +&PT)::HO2+HO2-->H2O2' + CFULLREACS(33) = 'K032=@TROE_KB(3.08E-34,2798.2,2.59E-54,3180.7,TPK%M,TPK%T,KV& +&ECNPT)::HO2+HO2+H2O-->H2O2+O2+H2O' + CFULLREACS(34) = 'K033=4.0E-12::NO3+HO2-->0.8*NO2+0.2*HNO3+0.8*OH+O2' + CFULLREACS(35) = 'K034=8.0E-12*EXP(-2058.4/TPK%T)::O+O3-->2.*O2' + CFULLREACS(36) = 'K035=@TROE(1.,4.1E-31,3.3,2.0E-12,0.,0.45,TPK%M,TPK%T,KVECNP& +&T)::SO2+OH-->H2SO4+HO2' + CFULLREACS(37) = 'K036=!ZRATES(:,009)::H2O2-->2.*OH' + CFULLREACS(38) = 'K037=2.91E-12*EXP(-161/TPK%T)::H2O2+OH-->HO2+H2O' + CFULLREACS(39) = 'K038=@TROE(1.,9.00E-32,1.5,3.00E-11,0.0,0.6,TPK%M,TPK%T,KVEC& +&NPT)::O+NO-->NO2' + CFULLREACS(40) = 'K039=2.7E-12*EXP(261.7/TPK%T)::HONO+OH-->NO2+H2O' + CFULLREACS(41) = 'K040=2.0E-11::NO3+OH-->NO2+HO2' + CFULLREACS(42) = 'K041=8.5E-13*EXP(-2450.9/TPK%T)::NO3+NO3-->2.*NO2+O2' + CFULLREACS(43) = 'K042=4.8E-11*EXP(251.6/TPK%T)::OH+HO2-->H2O+O2' + CFULLREACS(44) = 'K043=2.66E-12*EXP(-1800.2/TPK%T)::CH4+OH-->RO21+RO2T+H2O' + CFULLREACS(45) = 'K044=!ZRATES(:,011)::HCHO-->CO+2.0*HO2' + CFULLREACS(46) = 'K045=!ZRATES(:,010)::HCHO-->CO+H2' + CFULLREACS(47) = 'K046=1.2E-14*TPK%T*EXP(286.9/TPK%T)::HCHO+OH-->CO+HO2+H2O' + CFULLREACS(48) = 'K047=2.0E-12*EXP(-2430.8/TPK%T)::HCHO+NO3-->HNO3+CO+HO2' + CFULLREACS(49) = 'K048=6.0E-18*TPK%T**2*EXP(170.1/TPK%T)::MEOH+OH-->HO2+HCHO+H& &2O' - CFULLREACS(41) = 'K041=1.30E-12*exp(-(-380.0/TPK%T))::OH+HNO4-->NO2+H2O+O2' - CFULLREACS(42) = 'K042=2.00E-12*exp(-(1400.0/TPK%T))::O3+NO-->NO2+O2' - CFULLREACS(43) = 'K043=1.20E-13*exp(-(2450.0/TPK%T))::O3+NO2-->NO3+O2' - CFULLREACS(44) = 'K044=3.30E-39*exp(-(-530.0/TPK%T))::NO+NO+O2-->NO2+NO2' - CFULLREACS(45) = 'K045=1.50E-11*exp(-(-170.0/TPK%T))::NO3+NO-->NO2+NO2' - CFULLREACS(46) = 'K046=4.50E-14*exp(-(1260.0/TPK%T))::NO3+NO2-->NO+NO2+O2' - CFULLREACS(47) = 'K047=@TROE(1.,2.20E-30,3.9,1.50E-12,0.7,TPK%M,TPK%T,KVECNPT)& -&::NO3+NO2-->N2O5' - CFULLREACS(48) = 'K048=@TROE_EQUIL(2.20E-30,3.9,1.50E-12,0.7,3.70E+26,11000.0,& -&TPK%M,TPK%T,KVECNPT)::N2O5-->NO2+NO3' - CFULLREACS(49) = 'K049=8.50E-13*exp(-(2450.0/TPK%T))::NO3+NO3-->NO2+NO2+O2' - CFULLREACS(50) = 'K050=3.30E-12*exp(-(900.0/TPK%T))::NH3+OH-->' - CFULLREACS(51) = 'K051=5.50E-12*exp(-(2000.0/TPK%T))::OH+H2-->H2O+HO2' - CFULLREACS(52) = 'K052=@TROE(1.,3.00E-31,3.3,1.50E-12,0.0,TPK%M,TPK%T,KVECNPT)& -&::OH+SO2-->SULF+HO2' - CFULLREACS(53) = 'K053=1.5E-13*(1.+2.439E-20*TPK%M)::CO+OH-->HO2+CO2' - CFULLREACS(54) = 'K054=6.00E-11::BIO+O3P-->0.91868*ALKE+0.05*HCHO+0.02*OH+0.01& -&*CO+0.13255*CARBO+0.28*HO2+0.15*XO2' - CFULLREACS(55) = 'K055=0.00E-01*exp(-(-13.0/TPK%T))::CARBO+O3P-->ALD' - CFULLREACS(56) = 'K056=TPK%T*TPK%T*7.44E-18*exp(-(1361./TPK%T))::CH4+OH-->MO2+& -&H2O' - CFULLREACS(57) = 'K057=1.51E-17*TPK%T*TPK%T*exp(-(492./TPK%T))::ETH+OH-->ALKAP& + CFULLREACS(50) = 'K049=1.96E-12*EXP(437.8/TPK%T)::ETHE+OH-->RO22+RO2T' + CFULLREACS(51) = 'K050=4.89E-18*TPK%T**2*EXP(-2282.3/TPK%T)::ETHE+NO3-->RO23+R& +&O2T' + CFULLREACS(52) = 'K051=9.14E-15*EXP(-2580.3/TPK%T)::ETHE+O3-->0.315*CO+0.06*HO& +&2+0.06*OH+0.5*HCHO+0.07*H2O+0.185*ORA1' + CFULLREACS(53) = 'K052=7.3E-13::ETHE+O-->0.6*CO+HO2+0.6*RO21+0.4*RO24+RO2T' + CFULLREACS(54) = 'K053=6.18E-18*TPK%T**2*EXP(532/TPK%T)::ETOH+OH-->TPK%CF1*HO2& +&+TPK%CF1*ALD2+TPK%CF2*RO22+TPK%CF2*RO2T+H2O' + CFULLREACS(55) = 'K054=5.86E-12*EXP(500.3/TPK%T)::OLEL+OH-->RO22+RO2T' + CFULLREACS(56) = 'K055=1.0E-13*EXP(-800.2/TPK%T)::OLEL+NO3-->RO23+RO2T' + CFULLREACS(57) = 'K056=1.0E-17::OLEL+O3-->0.56*CO+0.2*CO2+0.36*OH+0.28*HO2+0.5& +&*HCHO+0.5*ALD2+0.1*ALKL+0.28*RO25+0.28*RO2T+0.12*ORA1+0.12*ORA2' + CFULLREACS(58) = 'K057=4.66E-12::OLEL+O-->0.5*ALKL+0.4*ALD2+0.1*RO24+0.1*RO25+& +&0.2*RO2T' + CFULLREACS(59) = 'K058=3.91E-12::ALKL+OH-->RO25+RO2T+H2O' + CFULLREACS(60) = 'K059=!ZRATES(:,012)::ALD2-->CO+HO2+RO25+RO2T' + CFULLREACS(61) = 'K060=6.91E-12*EXP(250/TPK%T)::ALD2+OH-->RO26+RO2T+H2O' + CFULLREACS(62) = 'K061=3.0E-13*EXP(-1427/TPK%T)::ALD2+NO3-->HNO3+RO26+RO2T' + CFULLREACS(63) = 'K062=4.91E-12::KETL+OH-->RO27+RO2T+H2O' + CFULLREACS(64) = 'K063=!ZRATES(:,023)::KETL-->RO25+RO28+2.*RO2T' + CFULLREACS(65) = 'K064=2.55E-11*EXP(410.2/TPK%T)::ISOP+OH-->0.66*RO29+0.34*RO2& +&10+RO2T' + CFULLREACS(66) = 'K065=3.02E-12*EXP(-445.9/TPK%T)::ISOP+NO3-->0.66*RO211+0.34*& +&RO212+RO2T' + CFULLREACS(67) = 'K066=7.86E-15*EXP(-1912.9/TPK%T)::ISOP+O3-->0.068*CO2+0.461*& +&CO+0.5*HCHO+0.664*OH+0.366*HO2+0.054*OLEL+0.389*MVK+0.17*MCR+0.271*RO213+0.095& +&*RO214+0.366*RO2T+0.121*ORA1' + CFULLREACS(68) = 'K067=3.5E-11::ISOP+O-->0.925*OLEL+0.075*ALD2' + CFULLREACS(69) = 'K068=3.2E-12::MTBE+OH-->RO215+RO2T+H2O' + CFULLREACS(70) = 'K069=1.28E-11::ALCH+OH-->RO22+RO2T+H2O' + CFULLREACS(71) = 'K070=5.1E-12::KETH+OH-->RO216+RO2T+H2O' + CFULLREACS(72) = 'K071=!ZRATES(:,016)::KETH-->RO25+RO28+2.*RO2T' + CFULLREACS(73) = 'K072=3.77E-12::AROO+NO3-->HNO3+RAD1' + CFULLREACS(74) = 'K073=2.264E-10::AROO+OH-->0.16*HO2+0.16*AROO+0.1*RO217+0.1*R& +&O2T+0.74*RAD2+0.1*H2O' + CFULLREACS(75) = 'K074=3.47E-11::OLEH+OH-->RO218+RO2T' + CFULLREACS(76) = 'K075=3.47E-11*1.0E-13*EXP(-800.2/TPK%T)/(5.86E-12*EXP(500.3/& +&TPK%T))::OLEH+NO3-->RO219+RO2T' + CFULLREACS(77) = 'K076=3.47E-11*1.0E-17/(5.86E-12*EXP(500.3/TPK%T))::OLEH+O3--& +&>0.56*CO+0.2*CO2+0.36*OH+0.28*HO2+0.5*HCHO+0.5*RPR1+0.12*ACID+0.1*ALKM+0.28*RO& +&220+0.28*RO2T' + CFULLREACS(78) = 'K077=3.47E-11*4.66E-12/(5.86E-12*EXP(500.3/TPK%T))::OLEH+O--& +&>0.5*ALKM+0.4*RPR1+0.1*RO24+0.1*RO220+0.2*RO2T' + CFULLREACS(79) = 'K078=1.03E-11::ALKM+OH-->RO220+RO2T+H2O' + CFULLREACS(80) = 'K079=3.27E-11::AROL+OH-->0.16*HO2+0.16*AROO+0.1*RO221+0.74*R& +&AD3+0.06*RO2T+0.06*H2O' + CFULLREACS(81) = 'K080=1.52E-11::AROH+OH-->0.16*HO2+0.16*AROO+0.84*RAD4' + CFULLREACS(82) = 'K081=1.4E-12*EXP(-1872.2/TPK%T)::ARAL+NO3-->HNO3+O3+ARAC' + CFULLREACS(83) = 'K082=1.29E-11::ARAL+OH-->0.9983609*RPRL+TPK%CF48*HO2+TPK%CF3& +&9*O3+TPK%CF39*ARAC+TPK%CF45*RO222+TPK%CF40*RAD5+TPK%CF45*RO2T+TPK%CF48*H2O' + CFULLREACS(84) = 'K083=1.1E-12::ARAC+OH-->0.16*HO2+0.1599999*URG7+0.1*RO223+0.& +&74*RAD6+0.1*RO2T+0.1*H2O' + CFULLREACS(85) = 'K084=1.7E-10::BIOL+OH-->RO224+RO2T' + CFULLREACS(86) = 'K085=1.46E-11::BIOL+NO3-->RO225+RO2T' + CFULLREACS(87) = 'K086=2.5E-16::BIOL+O3-->0.445*CO+0.055*H2O2+0.445*HO2+0.89*O& +&H+5.5000000E-02*URG4+0.055*RPR3+0.445*RO226+0.445*RO2T' + CFULLREACS(88) = 'K087=1.7E-10*4.66E-12/(5.86E-12*EXP(500.3/TPK%T))::BIOL+O-->& +&0.7500000*URG10+0.2500000*URG10' + CFULLREACS(89) = 'K088=1.77E-10::BIOH+OH-->RO227+RO2T' + CFULLREACS(90) = 'K089=2.91E-11::BIOH+NO3-->RO228+RO2T' + CFULLREACS(91) = 'K090=1.4E-16::BIOH+O3-->0.445*CO+0.055*H2O2+0.89*OH+0.055*UR& +&7+0.055*UR8+0.445*RO229+0.445*RO230+0.89*RO2T' + CFULLREACS(92) = 'K091=8.59E-11::BIOH+O-->' + CFULLREACS(93) = 'K092=7.7E-11::PAH+OH-->0.16*HO2+0.1600000*URG8+0.1*RO231+0.7& +&4*RAD7+0.1*RO2T+0.1*H2O' + CFULLREACS(94) = 'K093=1.97E-11::ALKH+OH-->RO232+RO2T+H2O' + CFULLREACS(95) = 'K094=3.41E-13*EXP(800.2/TPK%T)::RO2T+HO2-->HO2' + CFULLREACS(96) = 'K095=4.2E-12*EXP(181.2/TPK%T)::RO2T+NO-->NO' + CFULLREACS(97) = 'K096=1.0E-15::RO2T+RO2T-->RO2T' + CFULLREACS(98) = 'K097=0.9*7.7E5/TPK%T::RAD2-->RO233+RO2T' + CFULLREACS(99) = 'K098=0.9*7.7E5/TPK%T::RAD3-->RO234+RO2T' + CFULLREACS(100) = 'K099=0.9*7.7E5/TPK%T::RAD4-->RO235+RO2T' + CFULLREACS(101) = 'K100=0.9*7.7E5/TPK%T::RAD5-->RO236+RO2T' + CFULLREACS(102) = 'K101=0.9*7.7E5/TPK%T::RAD6-->RO237+RO2T' + CFULLREACS(103) = 'K102=0.9*7.7E5/TPK%T::RAD7-->RO238+RO2T' + CFULLREACS(104) = 'K103=1.7*3.0E-11::RAD1+NO2-->RPR4' + CFULLREACS(105) = 'K104=1.7*3.0E-11::RAD2+NO2-->RPR4+H2O' + CFULLREACS(106) = 'K105=1.7*3.0E-11::RAD3+NO2-->H2O' + CFULLREACS(107) = 'K106=1.7*3.0E-11::RAD4+NO2-->H2O' + CFULLREACS(108) = 'K107=1.7*3.0E-11::RAD5+NO2-->RPR5+H2O' + CFULLREACS(109) = 'K108=1.7*3.0E-11::RAD6+NO2-->0.9999993*URG7+H2O' + CFULLREACS(110) = 'K109=1.7*3.0E-11::RAD7+NO2-->1.0000000*URG8+H2O' + CFULLREACS(111) = 'K110=4.09E-12*EXP(180.2/TPK%T)::RO21+NO-->NO2+HO2+HCHO' + CFULLREACS(112) = 'K111=1.0E-15::RO21+RO2T-->HO2+HCHO+RO2T+O2' + CFULLREACS(113) = 'K112=3.41E-13*EXP(800.2/TPK%T)::RO21+HO2-->HO2+OH+HCHO' + CFULLREACS(114) = 'K113=2.45E-12*EXP(180.2/TPK%T)::RO22+NO-->NO2+HO2+HCHO+ALD2& &' - CFULLREACS(58) = 'K058=3.76E-12*exp(-(260.0/TPK%T))+1.70E-12*exp(-(155.0/TPK%T& -&))+1.21E-12*exp(-(125.0/TPK%T))::ALKA+OH-->0.87811*ALKAP+0.12793*HO2+0.08173*A& -&LD+0.03498*KET+0.00835*CARBO+0.00140*HCHO+0.00878*ORA1+0.00878*CO+0.00878*OH+H& -&2O' - CFULLREACS(59) = 'K059=1.78E-12*exp(-(-438.0/TPK%T))+6.07E-13*exp(-(-500.0/TPK& -&%T))+0.00E-01*exp(-(-448.0/TPK%T))::ALKE+OH-->1.02529*ALKEP+0.00000*BIOP' - CFULLREACS(60) = 'K060=2.54E-11*exp(-(-410.0/TPK%T))+0.00E-01*exp(-(-444.0/TPK& -&%T))+0.00E-01::BIO+OH-->1.00000*BIOP' - CFULLREACS(61) = 'K061=3.31E-12*exp(-(-355.0/TPK%T))+3.45E-13::ARO+OH-->0.9396& -&8*ADD+0.10318*XO2+0.10318*HO2+0.00276*PHO' - CFULLREACS(62) = 'K062=1.00E-11::HCHO+OH-->HO2+CO+H2O' - CFULLREACS(63) = 'K063=5.55E-12*exp(-(-331.0/TPK%T))::ALD+OH-->1.00000*CARBOP+& -&H2O' - CFULLREACS(64) = 'K064=TPK%T*TPK%T*5.68E-18*exp(-(-92.0/TPK%T))::KET+OH-->1.00& -&000*CARBOP+H2O' - CFULLREACS(65) = 'K065=1.32E-11+1.88E-12*exp(-(-175.0/TPK%T))::CARBO+OH-->0.51& -&419*CARBOP+0.16919*CARBO+1.01732*CO+0.51208*HO2+0.00000*HCHO+0.06253*ALD+0.008& -&53*KET+0.10162*XO2+0.75196*H2O' - CFULLREACS(66) = 'K066=4.50E-13::ORA1+OH-->HO2+CO2+H2O' - CFULLREACS(67) = 'K067=6.00E-13::ORA2+OH-->' - CFULLREACS(68) = 'K068=2.93E-12*exp(-(-190.0/TPK%T))::OP1+OH-->0.65*MO2+0.35*H& -&CHO+0.35*OH' - CFULLREACS(69) = 'K069=3.36E-12*exp(-(-190.0/TPK%T))::OP2+OH-->0.40341*ALKAP+0& -&.05413*CARBOP+0.07335*ALD+0.37591*KET+0.09333*XO2+0.02915*HO2+0.02915*HCHO+0.4& -&4925*OH' - CFULLREACS(70) = 'K070=3.80E-14+1.59E-14*exp(-(-500.0/TPK%T))::PAN+OH-->0.5783& -&9*HCHO+0.21863*CARBO+0.71893*NO3+0.28107*PAN+0.28107*HO2+0.29733*H2O+XO2' - CFULLREACS(71) = 'K071=5.31E-12*exp(-(260.0/TPK%T))::ONIT+OH-->1.00000*ALKAP+N& -&O2+H2O' - CFULLREACS(72) = 'K072=3.40E-13*exp(-(1900.0/TPK%T))::HCHO+NO3-->HO2+HNO3+CO' - CFULLREACS(73) = 'K073=1.40E-12*exp(-(1900.0/TPK%T))::ALD+NO3-->1.00000*CARBOP& -&+HNO3' - CFULLREACS(74) = 'K074=1.62E-12*exp(-(1900.0/TPK%T))+0.00E-01*exp(-(150.0/TPK%& -&T))+1.94E-14*exp(-(1000.0/TPK%T))::CARBO+NO3-->0.91567*HNO3+0.38881*CARBOP+0.1& -&0530*CARBO+0.05265*ALD+0.00632*KET+0.10530*NO2+0.10530*XO2+0.63217*HO2+1.33723& -&*CO+0.00000*OLN' - CFULLREACS(75) = 'K075=4.92E-16::ARO+NO3-->HNO3+PHO' - CFULLREACS(76) = 'K076=4.35E-18*TPK%T*TPK%T*exp(-(2282.0/TPK%T))+1.91E-14*exp(& -&-(450.0/TPK%T))+1.08E-15*exp(-(-450.0/TPK%T))+0.00E-01::ALKE+NO3-->0.00000*CAR& -&BO+0.93768*OLN' - CFULLREACS(77) = 'K077=4.00E-12*exp(-(446.0/TPK%T))+0.00E-01*exp(-(-490.0/TPK%& -&T))+0.00E-01::BIO+NO3-->0.91741*CARBO+1.00000*OLN' - CFULLREACS(78) = 'K078=3.76E-16*exp(-(500.0/TPK%T))::PAN+NO3-->0.60*ONIT+0.60*& -&NO3+0.40000*PAN+0.40*HCHO+0.40*NO2+XO2' - CFULLREACS(79) = 'K079=8.17E-15*exp(-(2580.0/TPK%T))+4.32E-16*exp(-(1800.0/TPK& -&%T))+2.87E-17*exp(-(845.0/TPK%T))+0.00E-01*exp(-(2283.0/TPK%T))::ALKE+O3-->0.4& -&8290*HCHO+0.51468*ALD+0.07377*KET+0.00000*CARBO+0.35120*CO+0.15343*ORA1+0.0814& -&3*ORA2+0.23451*HO2+0.39435*OH+0.05705*CARBOP+0.03196*ETH+0.00000*ALKE+0.04300*& -&CH4+0.13966*MO2+0.09815*ALKAP+0.01833*H2O2+0.00000*XO2+0.05409*H2+0.00000*O3P' - CFULLREACS(80) = 'K080=7.86E-15*exp(-(1913.0/TPK%T))+0.00E-01*exp(-(732.0/TPK%& -&T))+0.00E-01::BIO+O3-->0.90000*HCHO+0.00000*ALD+0.00000*KET+0.39754*CARBO+0.36& -&000*CO+0.37388*ALKE+0.00000*ALKAP+0.17000*CARBOP+0.03000*MO2+0.15000*ORA1+0.00& -&000*ORA2+0.28000*OH+0.30000*HO2+0.00100*H2O2+0.05000*H2+0.13000*XO2+0.09000*O3& -&P' - CFULLREACS(81) = 'K081=0.00E-01*exp(-(2112.0/TPK%T))+1.38E-19::CARBO+O3-->0.00& -&000*HCHO+1.07583*CARBO+0.15692*ALD+0.10788*ORA1+0.20595*ORA2+0.27460*CARBOP+0.& -&10149*OP2+0.64728*CO+0.28441*HO2+0.20595*OH+0.00000*H2' - CFULLREACS(82) = 'K082=7.20E-17*exp(-(1700.0/TPK%T))::PAN+O3-->0.70*HCHO+0.300& -&00*PAN+0.70*NO2+0.13*CO+0.04*H2+0.11*ORA1+0.08*HO2+0.036*OH+0.70000*CARBOP' - CFULLREACS(83) = 'K083=2.00E-11::PHO+NO2-->0.10670*ARO+ONIT' - CFULLREACS(84) = 'K084=1.00E-11::PHO+HO2-->1.06698*ARO' - CFULLREACS(85) = 'K085=3.60E-11::ADD+NO2-->ARO+HONO' - CFULLREACS(86) = 'K086=1.66E-17*exp(-(-1044.0/TPK%T))::ADD+O2-->0.98*AROP+0.02& -&*ARO+0.02*HO2' - CFULLREACS(87) = 'K087=2.80E-11::ADD+O3-->ARO+OH' - CFULLREACS(88) = 'K088=@TROE(5.86E-01,9.70E-29,5.6,9.30E-12,1.5,TPK%M,TPK%T,KV& -&ECNPT)::CARBOP+NO2-->1.00000*PAN' - CFULLREACS(89) = 'K089=@TROE_EQUIL(9.70E-29,5.6,9.30E-12,1.5,1.16E+28,13954.,T& -&PK%M,TPK%T,KVECNPT)::PAN-->1.00000*CARBOP+NO2' - CFULLREACS(90) = 'K090=4.20E-12*exp(-(-180.0/TPK%T))::MO2+NO-->HCHO+HO2+NO2' - CFULLREACS(91) = 'K091=4.36E-12::ALKAP+NO-->0.33144*ALD+0.03002*HCHO+0.54531*K& -&ET+0.03407*CARBO+0.74265*HO2+0.09016*MO2+0.08187*ALKAP+0.13007*XO2+0.08459*ONI& -&T+0.91541*NO2' - CFULLREACS(92) = 'K092=6.93E-12::ALKEP+NO-->1.39870*HCHO+0.42125*ALD+0.05220*K& -&ET+HO2+NO2' - CFULLREACS(93) = 'K093=4.00E-12::BIOP+NO-->0.45463*CARBO+0.60600*HCHO+0.00000*& -&ALD+0.00000*KET+0.37815*ALKE+0.84700*HO2+0.84700*NO2+0.15300*ONIT' - CFULLREACS(94) = 'K094=4.00E-12::AROP+NO-->0.95115*NO2+0.95115*HO2+2.06993*CAR& -&BO+0.04885*ONIT' - CFULLREACS(95) = 'K095=1.22E-11::CARBOP+NO-->0.78134*MO2+0.09532*CARBOP+0.0584& -&8*HCHO+0.07368*ALD+0.08670*CARBO+0.12334*HO2+0.02563*XO2+NO2' - CFULLREACS(96) = 'K096=4.00E-12::OLN+NO-->0.18401*ONIT+1.81599*NO2+0.18401*HO2& -&+0.23419*HCHO+1.01182*ALD+0.37862*KET' - CFULLREACS(97) = 'K097=3.80E-13*exp(-(-800.0/TPK%T))::MO2+HO2-->OP1' - CFULLREACS(98) = 'K098=6.16E-14*exp(-(-700.0/TPK%T))+1.52E-13*exp(-(-1300.0/TP& -&K%T))::ALKAP+HO2-->1.00524*OP2' - CFULLREACS(99) = 'K099=1.81E-13*exp(-(-1300.0/TPK%T))::ALKEP+HO2-->1.00524*OP2& + CFULLREACS(115) = 'K114=1.0E-15::RO22+RO2T-->HO2+HCHO+ALD2+RO2T+O2' + CFULLREACS(116) = 'K115=3.41E-13*EXP(800.2/TPK%T)::RO22+HO2-->OH+HO2+HCHO+ALD2& &' - CFULLREACS(100) = 'K0100=1.28E-13*exp(-(-1300.0/TPK%T))+0.00E-01::BIOP+HO2-->1& -&.00524*OP2' - CFULLREACS(101) = 'K0101=3.75E-13*exp(-(-980.0/TPK%T))::AROP+HO2-->1.00524*OP2& + CFULLREACS(117) = 'K116=2.45E-12*EXP(180.2/TPK%T)::RO23+NO-->2.*NO2+HCHO+ALD2' + CFULLREACS(118) = 'K117=1.0E-15::RO23+RO2T-->NO2+HO2+HCHO+ALD2+O2+RO2T' + CFULLREACS(119) = 'K118=3.41E-13*EXP(800.2/TPK%T)::RO23+HO2-->NO2+HO2+OH+HCHO+& +&ALD2' + CFULLREACS(120) = 'K119=3.45E-12*EXP(180.2/TPK%T)::RO24+NO-->NO2+CO+HO2+HCHO' + CFULLREACS(121) = 'K120=1.0E-15::RO24+RO2T-->CO+HO2+HCHO+RO2T+O2' + CFULLREACS(122) = 'K121=3.41E-13*EXP(800.2/TPK%T)::RO24+HO2-->CO+HO2+OH+HCHO' + CFULLREACS(123) = 'K122=2.91E-12*EXP(180.2/TPK%T)::RO25+NO-->TPK%CF3*ALKL+TPK%& +&CF4*NO2+TPK%CF4*HO2+TPK%CF4*ALD2' + CFULLREACS(124) = 'K123=1.0E-15::RO25+RO2T-->HO2+ALD2+RO2T+O2' + CFULLREACS(125) = 'K124=3.41E-13*EXP(800.2/TPK%T)::RO25+HO2-->HO2+OH+ALD2' + CFULLREACS(126) = 'K125=1.11E-11*EXP(180.2/TPK%T)::RO26+NO-->NO2+CO2+RO25+RO2T& &' - CFULLREACS(102) = 'K0102=5.94E-13*exp(-(-550.0/TPK%T))+1.99E-16*exp(-(-2640.0/& -&TPK%T))+5.56E-14*exp(-(-1300.0/TPK%T))::CARBOP+HO2-->0.80904*OP2+0.17307*ORA2+& -&0.17307*O3' - CFULLREACS(103) = 'K103=1.66E-13*exp(-(-1300.0/TPK%T))::OLN+HO2-->ONIT' - CFULLREACS(104) = 'K104=9.10E-14*exp(-(-416.0/TPK%T))::MO2+MO2-->1.33*HCHO+0.6& -&6*HO2' - CFULLREACS(105) = 'K105=1.03E-14*exp(-(-158.0/TPK%T))+6.24E-14*exp(-(-431.0/TP& -&K%T))+1.53E-14*exp(-(-467.0/TPK%T))+4.34E-15*exp(-(-633.0/TPK%T))::ALKAP+MO2--& -&>0.80556*HCHO+0.98383*HO2+0.56070*ALD+0.09673*KET+0.01390*MO2+0.07976*CARBO+0.& -&13370*XO2+0.00385*ALKAP' - CFULLREACS(106) = 'K106=1.57E-13*exp(-(-708.0/TPK%T))::ALKEP+MO2-->1.42894*HCH& -&O+0.46413*ALD+0.03814*KET+HO2' - CFULLREACS(107) = 'K107=1.36E-13*exp(-(-708.0/TPK%T))::BIOP+MO2-->0.56064*CARB& -&O+0.48074*ALKE+1.00000*HO2+1.09000*HCHO+0.00000*ALD+0.00000*KET' - CFULLREACS(108) = 'K108=3.56E-14*exp(-(-708.0/TPK%T))::AROP+MO2-->HCHO+1.02767& -&*HO2+1.99461*CARBO' - CFULLREACS(109) = 'K109=1.77E-11*exp(-(440.0/TPK%T))+1.48E-16*exp(-(-2510.0/TP& -&K%T))+3.10E-13*exp(-(-508.0/TPK%T))::CARBOP+MO2-->0.95723*HCHO+0.82998*HO2+0.5& -&6031*MO2+0.13684*ORA2+0.05954*CARBOP+0.15387*CARBO+0.08295*ALD+0.02212*XO2' - CFULLREACS(110) = 'K110=1.12E-13*exp(-(-708.0/TPK%T))::OLN+MO2-->0.88625*HCHO+& -&0.67560*HO2+0.67560*ONIT+0.41524*ALD+0.09667*KET+0.32440*NO2' - CFULLREACS(111) = 'K111=4.44E-14*exp(-(-211.0/TPK%T))+2.23E-13*exp(-(-460.0/TP& -&K%T))+4.10E-14*exp(-(-522.0/TPK%T))+1.17E-14*exp(-(-683.0/TPK%T))::ALKAP+CARBO& -&P-->0.71461*ALD+0.48079*HO2+0.51480*MO2+0.49810*ORA2+0.18819*KET+0.07600*HCHO+& -&0.00828*ALKAP+0.11306*XO2+0.06954*CARBO' - CFULLREACS(112) = 'K112=4.36E-13*exp(-(-765.0/TPK%T))::ALKEP+CARBOP-->0.68192*& -&HCHO+0.68374*ALD+0.50078*HO2+0.50078*MO2+0.49922*ORA2+0.06579*KET' - CFULLREACS(113) = 'K113=7.60E-13*exp(-(-765.0/TPK%T))::BIOP+CARBOP-->0.78591*C& -&ARBO+0.24463*ALKE+0.50600*HO2+0.49400*ORA2+0.34000*HCHO+0.50600*MO2+0.00000*AL& -&D+0.00000*KET' - CFULLREACS(114) = 'K114=3.63E-13*exp(-(-765.0/TPK%T))::AROP+CARBOP-->MO2+HO2+1& -&.99455*CARBO' - CFULLREACS(115) = 'K115=7.73E-13*exp(-(-530.0/TPK%T))+1.70E-13*exp(-(-565.0/TP& -&K%T))::CARBOP+CARBOP-->1.66702*MO2+0.05821*CARBOP+0.03432*HCHO+0.10777*CARBO+0& -&.06969*ALD+0.02190*KET+0.07566*HO2+0.01593*XO2+0.09955*ORA2' - CFULLREACS(116) = 'K116=4.85E-13*exp(-(-765.0/TPK%T))::OLN+CARBOP-->0.66562*ON& -&IT+0.51037*MO2+0.48963*ORA2+0.17599*HO2+0.13414*HCHO+0.42122*ALD+0.10822*KET+0& -&.00000*NO2' - CFULLREACS(117) = 'K117=4.19E-15*exp(-(-1000.0/TPK%T))::OLN+OLN-->2.00*ONIT+HO& -&2' - CFULLREACS(118) = 'K118=2.48E-14*exp(-(-1000.0/TPK%T))::OLN+OLN-->0.00000*HCHO& -&+0.00000*ALD+0.00000*KET+0.00000*HO2+0.00000*NO2+0.00000*ONIT' - CFULLREACS(119) = 'K119=1.20E-12::MO2+NO3-->HCHO+HO2+NO2' - CFULLREACS(120) = 'K120=1.20E-12::ALKAP+NO3-->0.33743*ALD+0.81290*HO2+0.03142*& -&HCHO+0.62978*KET+0.03531*CARBO+0.09731*MO2+0.08994*ALKAP+0.16271*XO2+NO2' - CFULLREACS(121) = 'K121=1.20E-12::ALKEP+NO3-->1.40909*HCHO+0.43039*ALD+0.02051& -&*KET+HO2+NO2' - CFULLREACS(122) = 'K122=1.20E-12::BIOP+NO3-->0.61160*CARBO+0.42729*ALKE+0.6860& -&0*HCHO+0.00000*ALD+0.00000*KET+HO2+NO2' - CFULLREACS(123) = 'K123=1.20E-12::AROP+NO3-->2.81904*CARBO+HO2+NO2' - CFULLREACS(124) = 'K124=3.48E-12::CARBOP+NO3-->0.91910*MO2+0.03175*CARBOP+0.03& -&175*HCHO+0.03455*CARBO+0.02936*ALD+0.04915*HO2+0.01021*XO2+NO2' - CFULLREACS(125) = 'K125=1.20E-12::OLN+NO3-->0.25928*ONIT+1.74072*NO2+0.25928*H& -&O2+0.20740*HCHO+0.91850*ALD+0.34740*KET' - CFULLREACS(126) = 'K126=1.66E-13*exp(-(-1300.0/TPK%T))::XO2+HO2-->1.00524*OP2' - CFULLREACS(127) = 'K127=5.99E-15*exp(-(-1510.0/TPK%T))::XO2+MO2-->HCHO+HO2' - CFULLREACS(128) = 'K128=1.69E-14*exp(-(-1560.0/TPK%T))::XO2+CARBOP-->MO2' - CFULLREACS(129) = 'K129=7.13E-17*exp(-(-2950.0/TPK%T))::XO2+XO2-->' - CFULLREACS(130) = 'K130=4.00E-12::XO2+NO-->NO2' - CFULLREACS(131) = 'K131=1.20E-12::XO2+NO3-->NO2' - CFULLREACS(132) = 'K132=1.00E-40::SULF-->' - CFULLREACS(133) = 'KTC1=@KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::O3-->WC_& + CFULLREACS(127) = 'K126=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& +&PT)::RO26+NO2-->PAN1' + CFULLREACS(128) = 'K127=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& +&PT)::RO28+NO2-->PAN2' + CFULLREACS(129) = 'K128=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& +&PT)::RO239+NO2-->PAN3' + CFULLREACS(130) = 'K129=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& +&PT)::RO248+NO2-->PAN4' + CFULLREACS(131) = 'K130=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& +&PT)::RO250+NO2-->APAN' + CFULLREACS(132) = 'K131=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& +&PT)::RO254+NO2-->PAN6' + CFULLREACS(133) = 'K132=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& +&PT)::RO255+NO2-->PAN7' + CFULLREACS(134) = 'K133=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& +&PT)::RO257+NO2-->APAN' + CFULLREACS(135) = 'K134=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& +&PT)::RO258+NO2-->PN10' + CFULLREACS(136) = 'K135=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& +&6,TPK%M,TPK%T,KVECNPT)::PAN1-->NO2+RO26+RO2T' + CFULLREACS(137) = 'K136=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& +&6,TPK%M,TPK%T,KVECNPT)::PAN2-->NO2+RO28+RO2T' + CFULLREACS(138) = 'K137=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& +&6,TPK%M,TPK%T,KVECNPT)::PAN3-->NO2+RO239+RO2T' + CFULLREACS(139) = 'K138=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& +&6,TPK%M,TPK%T,KVECNPT)::PN10-->NO2+RO258+RO2T' + CFULLREACS(140) = 'K139=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& +&6,TPK%M,TPK%T,KVECNPT)::APAN-->1.0000000*NO2+0.3750353*RO250+0.6249651*RO257+1& +&.0000000*RO2T' + CFULLREACS(141) = 'K140=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& +&6,TPK%M,TPK%T,KVECNPT)::PAN6-->NO2+RO254+RO2T' + CFULLREACS(142) = 'K141=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& +&6,TPK%M,TPK%T,KVECNPT)::PAN4-->NO2+RO248+RO2T' + CFULLREACS(143) = 'K142=3.41E-13*EXP(800.2/TPK%T)/3.5::RO26+HO2-->O3+ACID+ORA2& +&' + CFULLREACS(144) = 'K143=1.0E-15::RO26+RO2T-->CO2+RO25+2.*RO2T+O2' + CFULLREACS(145) = 'K144=2.45E-12*EXP(180.2/TPK%T)::RO27+NO-->NO2+ALD2+RO28+RO2& +&T' + CFULLREACS(146) = 'K145=1.0E-15::RO27+RO2T-->ALD2+RO28+2.*RO2T+O2' + CFULLREACS(147) = 'K146=3.41E-13*EXP(800.2/TPK%T)::RO27+HO2-->OH+ALD2+RO28+RO2& +&T' + CFULLREACS(148) = 'K147=1.11E-11*EXP(180.2/TPK%T)::RO28+NO-->NO2+CO2+RO21+RO2T& +&' + CFULLREACS(149) = 'K148=3.41E-13*EXP(800.2/TPK%T)/3.5::RO28+HO2-->O3+ORA2' + CFULLREACS(150) = 'K149=1.0E-15::RO28+RO2T-->CO2+RO21+2.*RO2T+O2' + CFULLREACS(151) = 'K150=2.08E-12*EXP(180.2/TPK%T)::RO29+NO-->TPK%CF5*OLEL+TPK%& +&CF6*NO2+TPK%CF6*HO2+TPK%CF6*HCHO+TPK%CF6*MVK' + CFULLREACS(152) = 'K151=1.0E-15::RO29+RO2T-->HO2+MVK+HCHO+RO2T+O2' + CFULLREACS(153) = 'K152=3.41E-13*EXP(800.2/TPK%T)::RO29+HO2-->HO2+OH+MVK+HCHO' + CFULLREACS(154) = 'K153=2.08E-12*EXP(180.2/TPK%T)::RO210+NO-->NO2+HO2+HCHO+MCR& +&' + CFULLREACS(155) = 'K154=1.0E-15::RO210+RO2T-->HO2+HCHO+MCR+RO2T+O2' + CFULLREACS(156) = 'K155=3.41E-13*EXP(800.2/TPK%T)::RO210+HO2-->HO2+OH+HCHO+MCR& +&' + CFULLREACS(157) = 'K156=2.08E-12*EXP(180.2/TPK%T)::RO211+NO-->2.*NO2+HCHO+MVK' + CFULLREACS(158) = 'K157=1.0E-15::RO211+RO2T-->NO2+HCHO+MVK+RO2T+O2' + CFULLREACS(159) = 'K158=3.41E-13*EXP(800.2/TPK%T)::RO211+HO2-->NO2+OH+HCHO+MVK& +&' + CFULLREACS(160) = 'K159=2.08E-12*EXP(180.2/TPK%T)::RO212+NO-->2.*NO2+HCHO+MCR' + CFULLREACS(161) = 'K160=1.0E-15::RO212+RO2T-->NO2+HCHO+MCR+RO2T+O2' + CFULLREACS(162) = 'K161=3.41E-13*EXP(800.2/TPK%T)::RO212+HO2-->NO2+OH+HCHO+MCR& +&' + CFULLREACS(163) = 'K162=2.45E-12*EXP(180.2/TPK%T)::RO213+NO-->NO2+HCHO+RO239+R& +&O2T' + CFULLREACS(164) = 'K163=1.0E-15::RO213+RO2T-->HCHO+RO239+2.*RO2T+O2' + CFULLREACS(165) = 'K164=3.41E-13*EXP(800.2/TPK%T)::RO213+HO2-->HCHO+OH+RO239+R& +&O2T' + CFULLREACS(166) = 'K165=1.11E-11*EXP(180.2/TPK%T)::RO239+NO-->NO2+CO2+RO214+RO& +&2T' + CFULLREACS(167) = 'K166=3.41E-13*EXP(800.2/TPK%T)/3.5::RO239+HO2-->O3+0.5*OLEL& +&+0.5*ORA2' + CFULLREACS(168) = 'K167=1.0E-15::RO239+RO2T-->CO2+RO214+2.*RO2T+O2' + CFULLREACS(169) = 'K168=2.91E-12*EXP(180.2/TPK%T)::RO214+NO-->TPK%CF7*OLEL+TPK& +&%CF8*NO2+TPK%CF8*RO27+TPK%CF8*RO2T' + CFULLREACS(170) = 'K169=1.0E-15::RO214+RO2T-->RO27+2.*RO2T+O2' + CFULLREACS(171) = 'K170=3.41E-13*EXP(800.2/TPK%T)::RO214+HO2-->OH+RO27+RO2T' + CFULLREACS(172) = 'K171=2.08E-12*EXP(180.2/TPK%T)::RO215+NO-->NO2+HO2+TPK%CF9*& +&ALD2+TPK%CF10*HCHO+TPK%CF11*KETL+TPK%CF12*ALKL' + CFULLREACS(173) = 'K172=1.0E-15::RO215+RO2T-->HO2+TPK%CF13*ALD2+TPK%CF14*HCHO+& +&TPK%CF15*KETL+TPK%CF16*ALKL+RO2T+O2' + CFULLREACS(174) = 'K173=3.41E-13*EXP(800.2/TPK%T)::RO215+HO2-->OH+HO2+TPK%CF13& +&*ALD2+TPK%CF14*HCHO+TPK%CF15*KETL+TPK%CF16*ALKL' + CFULLREACS(175) = 'K174=1.48E-12*EXP(180.2/TPK%T)::RO216+NO-->NO2+ALD2+RO28+RO& +&2T' + CFULLREACS(176) = 'K175=1.0E-15::RO216+RO2T-->ALD2+RO28+2.*RO2T+O2' + CFULLREACS(177) = 'K176=3.41E-13*EXP(800.2/TPK%T)::RO216+HO2-->OH+ALD2+RO28+RO& +&2T' + CFULLREACS(178) = 'K177=1.25E-12*EXP(180.2/TPK%T)::RO217+NO-->TPK%CF21*URG6+TP& +&K%CF22*NO2+TPK%CF22*HO2+TPK%CFA2*RPRL' + CFULLREACS(179) = 'K178=1.0E-15::RO217+RO2T-->HO2+0.9983609*RPRL+RO2T+O2' + CFULLREACS(180) = 'K179=3.41E-13*EXP(800.2/TPK%T)::RO217+HO2-->HO2+OH+0.998360& +&9*RPRL' + CFULLREACS(181) = 'K180=1.25E-12*EXP(180.2/TPK%T)::RO218+NO-->TPK%CF20*NO2+TPK& +&%CF20*HO2' + CFULLREACS(182) = 'K181=1.0E-15::RO218+RO2T-->HO2+RO2T+O2' + CFULLREACS(183) = 'K182=3.41E-13*EXP(800.2/TPK%T)::RO218+HO2-->HO2+OH' + CFULLREACS(184) = 'K183=1.05E-12*EXP(180.2/TPK%T)::RO219+NO-->2.*NO2+HCHO+RPR1& +&' + CFULLREACS(185) = 'K184=1.0E-15::RO219+RO2T-->NO2+HCHO+RPR1+RO2T+O2' + CFULLREACS(186) = 'K185=3.41E-13*EXP(800.2/TPK%T)::RO219+HO2-->NO2+OH+HCHO+RPR& +&1' + CFULLREACS(187) = 'K186=1.25E-12*EXP(180.2/TPK%T)::RO220+NO-->TPK%CF18*NO2+TPK& +&%CF18*RO218+TPK%CF18*RO2T' + CFULLREACS(188) = 'K187=1.0E-15::RO220+RO2T-->RO218+2.*RO2T+O2' + CFULLREACS(189) = 'K188=3.41E-13*EXP(800.2/TPK%T)::RO220+HO2-->OH+RO218+RO2T' + CFULLREACS(190) = 'K189=1.05E-12*EXP(180.2/TPK%T)::RO221+NO-->TPK%CF24*NO2+TPK& +&%CF24*HO2+TPK%CF24*ARAL' + CFULLREACS(191) = 'K190=1.0E-15::RO221+RO2T-->HO2+ARAL+RO2T+O2' + CFULLREACS(192) = 'K191=3.41E-13*EXP(800.2/TPK%T)::RO221+HO2-->HO2+OH+ARAL' + CFULLREACS(193) = 'K192=1.25E-12*EXP(180.2/TPK%T)::RO222+NO-->TPK%CF42*NO2+TPK& +&%CF42*HO2+TPK%CFA7*RPRL' + CFULLREACS(194) = 'K193=1.0E-15::RO222+RO2T-->HO2+0.9983609*RPRL+RO2T+O2' + CFULLREACS(195) = 'K194=3.41E-13*EXP(800.2/TPK%T)::RO222+HO2-->HO2+OH+0.998360& +&9*RPRL' + CFULLREACS(196) = 'K195=1.25E-12*EXP(180.2/TPK%T)::RO223+NO-->TPK%CF43*URG6+TP& +&K%CF44*NO2+TPK%CF44*HO2+TPK%CF44*RPR7' + CFULLREACS(197) = 'K196=1.0E-15::RO223+RO2T-->HO2+RPR7+RO2T+O2' + CFULLREACS(198) = 'K197=3.41E-13*EXP(800.2/TPK%T)::RO223+HO2-->HO2+OH+RPR7' + CFULLREACS(199) = 'K198=8.89E-13*EXP(180.2/TPK%T)::RO224+NO-->TPK%CFA23*AP7+TP& +&K%CFA10*RPR3+TPK%CF26*NO2+TPK%CF26*HO2' + CFULLREACS(200) = 'K199=1.0E-15::RO224+RO2T-->HO2+RPR3+RO2T+O2' + CFULLREACS(201) = 'K200=3.41E-13*EXP(800.2/TPK%T)::RO224+HO2-->HO2+OH+RPR3' + CFULLREACS(202) = 'K201=8.89E-13*EXP(180.2/TPK%T)::RO225+NO-->2.*NO2+RPR3' + CFULLREACS(203) = 'K202=1.0E-15::RO225+RO2T-->NO2+RPR3+RO2T+O2' + CFULLREACS(204) = 'K203=3.41E-13*EXP(800.2/TPK%T)::RO225+HO2-->NO2+OH+RPR3' + CFULLREACS(205) = 'K204=8.89E-13*EXP(180.2/TPK%T)::RO226+NO-->NO2+1.0000000*UR& +&17+RO28+RO2T' + CFULLREACS(206) = 'K205=1.0E-15::RO226+RO2T-->1.0000000*UR17+RO28+2.*RO2T+O2' + CFULLREACS(207) = 'K206=3.41E-13*EXP(800.2/TPK%T)::RO226+HO2-->1.0000000*UR17+& +&OH+RO28+RO2T' + CFULLREACS(208) = 'K207=8.89E-13*EXP(180.2/TPK%T)::RO227+NO-->TPK%CF27*URG10+T& +&PK%CF28*NO2+TPK%CF28*HO2+TPK%CFA12*UR7' + CFULLREACS(209) = 'K208=1.0E-15::RO227+RO2T-->HO2+UR7+RO2T+O2' + CFULLREACS(210) = 'K209=3.41E-13*EXP(800.2/TPK%T)::RO227+HO2-->HO2+OH+0.3*UR7' + CFULLREACS(211) = 'K210=8.89E-13*EXP(180.2/TPK%T)::RO228+NO-->2.*NO2+0.3*UR7' + CFULLREACS(212) = 'K211=1.0E-15::RO228+RO2T-->NO2+0.3*UR7+RO2T+O2' + CFULLREACS(213) = 'K212=3.41E-13*EXP(800.2/TPK%T)::RO228+HO2-->NO2+OH+0.3*UR7' + CFULLREACS(214) = 'K213=1.05E-12*EXP(180.2/TPK%T)::RO229+NO-->TPK%CF30*NO2+TPK& +&%CF30*RO240+TPK%CF30*RO2T' + CFULLREACS(215) = 'K214=1.0E-15::RO229+RO2T-->RO240+2.*RO2T+O2' + CFULLREACS(216) = 'K215=3.41E-13*EXP(800.2/TPK%T)::RO229+HO2-->OH+RO240+RO2T' + CFULLREACS(217) = 'K216=1.05E-12*EXP(180.2/TPK%T)::RO240+NO-->NO2+RPR8+RO28+RO& +&2T' + CFULLREACS(218) = 'K217=1.0E-15::RO240+RO2T-->RPR8+RO28+2.*RO2T+O2' + CFULLREACS(219) = 'K218=3.41E-13*EXP(800.2/TPK%T)::RO240+HO2-->OH+RPR8+RO28+RO& +&2T' + CFULLREACS(220) = 'K219=1.0E-15::RO230+RO2T-->RO28+2.*RO2T+O2' + CFULLREACS(221) = 'K220=3.41E-13*EXP(800.2/TPK%T)::RO230+HO2-->OH+RO28+RO2T' + CFULLREACS(222) = 'K221=6.32E-13*EXP(180.2/TPK%T)::RO231+NO-->TPK%CF31*URG8+TP& +&K%CF32*NO2+TPK%CF32*HO2+TPK%CF32*UR19' + CFULLREACS(223) = 'K222=1.0E-15::RO231+RO2T-->HO2+UR19+RO2T+O2' + CFULLREACS(224) = 'K223=3.41E-13*EXP(800.2/TPK%T)::RO231+HO2-->HO2+OH+UR19' + CFULLREACS(225) = 'K224=3.2E-13*EXP(180.2/TPK%T)::RO232+NO-->TPK%CFA14*URG9+TP& +&K%CF34*NO2+TPK%CF34*RO241+TPK%CF34*RO2T' + CFULLREACS(226) = 'K225=1.0E-15::RO232+RO2T-->RO241+2.*RO2T+O2' + CFULLREACS(227) = 'K226=3.41E-13*EXP(800.2/TPK%T)::RO232+HO2-->OH+RO241+RO2T' + CFULLREACS(228) = 'K227=3.2E-13*EXP(180.2/TPK%T)::RO241+NO-->TPK%CFA15*URG9+TP& +&K%CF36*NO2+TPK%CF36*HO2+TPK%CFA16*URG9' + CFULLREACS(229) = 'K228=1.0E-15::RO241+RO2T-->HO2+0.9999996*URG9+RO2T+O2' + CFULLREACS(230) = 'K229=3.41E-13*EXP(800.2/TPK%T)::RO241+HO2-->HO2+OH+0.999999& +&6*URG9' + CFULLREACS(231) = 'K230=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO233-->R& +&O242+RO2T' + CFULLREACS(232) = 'K231=1.25E-12*EXP(180.2/TPK%T)::RO233+NO-->NO2+HO2+0.300000& +&0*RPG3' + CFULLREACS(233) = 'K232=1.0E-15::RO233+RO2T-->HO2+1.0000000*RPG3+RO2T+O2' + CFULLREACS(234) = 'K233=3.41E-13*EXP(800.2/TPK%T)::RO233+HO2-->HO2+OH+0.300000& +&0*RPG3' + CFULLREACS(235) = 'K234=1.25E-12*EXP(180.2/TPK%T)::RO242+NO-->NO2+HO2+RP10+MGL& +&Y' + CFULLREACS(236) = 'K235=1.0E-15::RO242+RO2T-->HO2+RP10+O2+RO2T+MGLY' + CFULLREACS(237) = 'K236=3.41E-13*EXP(800.2/TPK%T)::RO242+HO2-->HO2+OH+RP10+MGL& +&Y' + CFULLREACS(238) = 'K237=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO234-->R& +&O243+RO2T' + CFULLREACS(239) = 'K238=1.05E-12*EXP(180.2/TPK%T)::RO234+NO-->NO2+HO2+0.3*RP11& +&' + CFULLREACS(240) = 'K239=1.0E-15::RO234+RO2T-->HO2+RP11+RO2T+O2' + CFULLREACS(241) = 'K240=3.41E-13*EXP(800.2/TPK%T)::RO234+HO2-->HO2+OH+0.3*RP11& +&' + CFULLREACS(242) = 'K241=1.05E-12*EXP(180.2/TPK%T)::RO243+NO-->NO2+HO2+RP10+MGL& +&Y' + CFULLREACS(243) = 'K242=1.0E-15::RO243+RO2T-->HO2+RP10+MGLY+O2+RO2T' + CFULLREACS(244) = 'K243=3.41E-13*EXP(800.2/TPK%T)::RO243+HO2-->HO2+OH+RP10+MGL& +&Y' + CFULLREACS(245) = 'K244=1.1*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO235-->R& +&O244+RO2T' + CFULLREACS(246) = 'K245=8.89E-13*EXP(180.2/TPK%T)::RO235+NO-->NO2+HO2+0.5*RP11& +&' + CFULLREACS(247) = 'K246=1.0E-15::RO235+RO2T-->HO2+RP11+RO2T+O2' + CFULLREACS(248) = 'K247=3.41E-13*EXP(800.2/TPK%T)::RO235+HO2-->HO2+OH+RP11' + CFULLREACS(249) = 'K248=8.89E-13*EXP(180.2/TPK%T)::RO244+NO-->NO2+HO2+RP10+MGL& +&Y' + CFULLREACS(250) = 'K249=1.0E-15::RO244+RO2T-->HO2+RP10+MGLY+O2+RO2T' + CFULLREACS(251) = 'K250=3.41E-13*EXP(800.2/TPK%T)::RO244+HO2-->HO2+OH+RP10+MGL& +&Y' + CFULLREACS(252) = 'K251=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO236-->R& +&O245+RO2T' + CFULLREACS(253) = 'K252=1.25E-12*EXP(180.2/TPK%T)::RO236+NO-->NO2+HO2+0.300000& +&0*RPG3' + CFULLREACS(254) = 'K253=1.0E-15::RO236+RO2T-->HO2+1.0000000*RPG3+RO2T+O2' + CFULLREACS(255) = 'K254=3.41E-13*EXP(800.2/TPK%T)::RO236+HO2-->HO2+OH+0.300000& +&0*RPG3' + CFULLREACS(256) = 'K255=1.25E-12*EXP(180.2/TPK%T)::RO245+NO-->NO2+HO2+RP10+MGL& +&Y' + CFULLREACS(257) = 'K256=1.0E-15::RO245+RO2T-->HO2+RP10+MGLY+O2+RO2T' + CFULLREACS(258) = 'K257=3.41E-13*EXP(800.2/TPK%T)::RO245+HO2-->HO2+OH+RP10+MGL& +&Y' + CFULLREACS(259) = 'K258=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO237-->R& +&O246+RO2T' + CFULLREACS(260) = 'K259=1.25E-12*EXP(180.2/TPK%T)::RO237+NO-->NO2+HO2+0.300000& +&0*RPG2' + CFULLREACS(261) = 'K260=1.0E-15::RO237+RO2T-->HO2+1.0000000*RPG2+RO2T+O2' + CFULLREACS(262) = 'K261=3.41E-13*EXP(800.2/TPK%T)::RO237+HO2-->HO2+OH+0.300000& +&0*RPG2' + CFULLREACS(263) = 'K262=1.25E-12*EXP(180.2/TPK%T)::RO246+NO-->NO2+HO2+RP10+MGL& +&Y' + CFULLREACS(264) = 'K263=1.0E-15::RO246+RO2T-->HO2+RP10+MGLY+O2+RO2T' + CFULLREACS(265) = 'K264=3.41E-13*EXP(800.2/TPK%T)::RO246+HO2-->HO2+OH+RP10+MGL& +&Y' + CFULLREACS(266) = 'K265=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO238-->R& +&O247+RO2T' + CFULLREACS(267) = 'K266=6.32E-13*EXP(180.2/TPK%T)::RO238+NO-->NO2+HO2+1.000001& +&3*RPG7' + CFULLREACS(268) = 'K267=1.0E-15::RO238+RO2T-->HO2+1.0000013*RPG7+RO2T+O2' + CFULLREACS(269) = 'K268=3.41E-13*EXP(800.2/TPK%T)::RO238+HO2-->HO2+OH+1.000001& +&3*RPG7' + CFULLREACS(270) = 'K269=6.32E-13*EXP(180.2/TPK%T)::RO247+NO-->NO2+HO2+1.002399& +&8*RPRL+MGLY' + CFULLREACS(271) = 'K270=1.0E-15::RO247+RO2T-->HO2+1.0023998*RPRL+MGLY+O2+RO2T' + CFULLREACS(272) = 'K271=3.41E-13*EXP(800.2/TPK%T)::RO247+HO2-->HO2+OH+1.002399& +&8*RPRL+MGLY' + CFULLREACS(273) = 'K272=4.14E-12*EXP(452.9/TPK%T)::MVK+OH-->RO249+RO2T' + CFULLREACS(274) = 'K273=1.86E-11*EXP(176.1/TPK%T)::MCR+OH-->TPK%CF46*RO250+TPK& +&%CF46*H2O+TPK%CF47*RO251+RO2T' + CFULLREACS(275) = 'K274=1.72E-11::MGLY+OH-->RO248+RO2T+H2O' + CFULLREACS(276) = 'K275=1.5E-12*EXP(-1726.2/TPK%T)::MCR+NO3-->TPK%CF46*HNO3+TP& +&K%CF46*RO250+TPK%CF47*RO252+RO2T' + CFULLREACS(277) = 'K276=!ZRATES(:,019)::MGLY-->CO+HO2+RO28+RO2T' + CFULLREACS(278) = 'K277=1.11E-11*EXP(180.2/TPK%T)::RO248+NO-->NO2+CO2+RO28+RO2& +&T' + CFULLREACS(279) = 'K278=1.4E-12*EXP(-1897.3/TPK%T)::MGLY+NO3-->HNO3+RO248+RO2T& +&' + CFULLREACS(280) = 'K279=3.41E-13*EXP(800.2/TPK%T)/3.5::RO248+HO2-->O3+UR21' + CFULLREACS(281) = 'K280=1.0E-15::RO248+RO2T-->CO2+RO28+2.*RO2T+O2' + CFULLREACS(282) = 'K281=7.5E-16*EXP(-1519.9/TPK%T)::MVK+O3-->0.56*CO+0.2*CO2+0& +&.28*HO2+0.36*OH+0.5*MGLY+0.5*HCHO+0.1*ALD2+0.12*ORA1+0.12*UR21+0.28*RO28+0.28*& +&RO2T+0.2*H2O' + CFULLREACS(283) = 'K282=1.36E-15*EXP(-2113.7/TPK%T)::MCR+O3-->0.41*CO+0.41*HO2& +&+0.82*OH+0.5*HCHO+0.59*MGLY+0.09*ORA1+0.41*RO253+0.41*RO2T' + CFULLREACS(284) = 'K283=4.32E-12::MVK+O-->0.85*KETL+0.15*RO24+0.15*RO28+0.3*RO& +&2T' + CFULLREACS(285) = 'K284=6.34E-12::MCR+O-->0.15*CO+0.15*HO2+0.85*ALD2+0.15*RO27& +&+0.15*RO2T' + CFULLREACS(286) = 'K285=2.45E-12*EXP(180.2/TPK%T)::RO249+NO-->NO2+HO2+MGLY+HCH& +&O' + CFULLREACS(287) = 'K286=1.0E-15::RO249+RO2T-->HO2+MGLY+HCHO+RO2T+O2' + CFULLREACS(288) = 'K287=3.41E-13*EXP(800.2/TPK%T)::RO249+HO2-->HO2+OH+MGLY+HCH& +&O' + CFULLREACS(289) = 'K288=1.11E-11*EXP(180.2/TPK%T)::RO250+NO-->CO2+NO2+RO214+RO& +&2T' + CFULLREACS(290) = 'K289=3.41E-13*EXP(800.2/TPK%T)/3.5::RO250+HO2-->O3+0.5*ORA2& +&+0.5*OLEL' + CFULLREACS(291) = 'K290=1.0E-15::RO250+RO2T-->CO2+RO214+2.*RO2T+O2' + CFULLREACS(292) = 'K291=2.45E-12*EXP(180.2/TPK%T)::RO251+NO-->NO2+HO2+HCHO+MGL& +&Y' + CFULLREACS(293) = 'K292=3.41E-13*EXP(800.2/TPK%T)::RO251+HO2-->HO2+HCHO+MGLY+R& +&O2T+O2' + CFULLREACS(294) = 'K293=1.0E-15::RO251+RO2T-->HO2+OH+MGLY+HCHO' + CFULLREACS(295) = 'K294=2.45E-12*EXP(180.2/TPK%T)::RO252+NO-->2.*NO2+MGLY+HCHO& +&' + CFULLREACS(296) = 'K295=3.41E-13*EXP(800.2/TPK%T)::RO252+HO2-->NO2+MGLY+HCHO+R& +&O2T+O2' + CFULLREACS(297) = 'K296=1.0E-15::RO252+RO2T-->NO2+OH+MGLY+HCHO' + CFULLREACS(298) = 'K297=2.91E-12*EXP(180.2/TPK%T)::RO253+NO-->NO2+HCHO+RO254+R& +&O2T' + CFULLREACS(299) = 'K298=3.41E-13*EXP(800.2/TPK%T)::RO253+HO2-->HCHO+RO254+2.*R& +&O2T+O2' + CFULLREACS(300) = 'K299=1.0E-15::RO253+RO2T-->OH+HCHO+RO254+RO2T' + CFULLREACS(301) = 'K300=1.11E-11*EXP(180.2/TPK%T)::RO254+NO-->CO2+CO+NO2+HO2' + CFULLREACS(302) = 'K301=3.41E-13*EXP(800.2/TPK%T)/3.5::RO254+HO2-->O3+RP16' + CFULLREACS(303) = 'K302=1.0E-15::RO254+RO2T-->CO2+CO+HO2+RO2T+O2' + CFULLREACS(304) = 'K303=1.29E-11::RPR5+OH-->O3+0.9999993*URG7+H2O' + CFULLREACS(305) = 'K304=3.54E-11::RPR1+OH-->RO255+RO2T+H2O' + CFULLREACS(306) = 'K305=1.72E-11::RP16+OH-->RO258+RO2T+H2O' + CFULLREACS(307) = 'K306=1.2940467E-11::RPRL+OH-->1.0000011*H2O+1.0000011*O3+2.& +&0714202E-03*RPR7+0.9979297*URG7' + CFULLREACS(308) = 'K307=3.0E-13*EXP(-1427/TPK%T)*3.54E-11/(6.91E-12*EXP(250/TP& +&K%T))::RPR1+NO3-->HNO3+RO255+RO2T' + CFULLREACS(309) = 'K308=!ZRATES(:,012)::RPR1-->CO+HO2+RO220+RO2T' + CFULLREACS(310) = 'K309=1.11E-11*EXP(180.2/TPK%T)::RO255+NO-->NO2+CO2+RO220+RO& +&2T' + CFULLREACS(311) = 'K310=3.41E-13*EXP(800.2/TPK%T)/3.5::RO255+HO2-->O3+ACID' + CFULLREACS(312) = 'K311=1.0E-15::RO255+RO2T-->CO2+RO220+2.*RO2T+O2' + CFULLREACS(313) = 'K312=4.24E-11::RPR3+OH-->RO256+RO2T+H2O' + CFULLREACS(314) = 'K313=3.0E-13*EXP(-1427/TPK%T)*4.24E-11/(6.91E-12*EXP(250/TP& +&K%T))::RPR3+NO3-->HNO3+RO256+RO2T' + CFULLREACS(315) = 'K314=!ZRATES(:,012)::RPR3-->CO+2.*HO2' + CFULLREACS(316) = 'K315=1.11E-11*EXP(180.2/TPK%T)::RO256+NO-->NO2+CO2+HO2' + CFULLREACS(317) = 'K316=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& +&PT)::RO256+NO2-->PAN8' + CFULLREACS(318) = 'K317=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& +&6,TPK%M,TPK%T,KVECNPT)::PAN8-->NO2+RO256+RO2T' + CFULLREACS(319) = 'K318=3.41E-13*EXP(800.2/TPK%T)/3.5::RO256+HO2-->O3+1.000000& +&0*URG4' + CFULLREACS(320) = 'K319=1.0E-15::RO256+RO2T-->CO2+HO2+RO2T+O2' + CFULLREACS(321) = 'K320=3.77E-12::RPR4+NO3-->HNO3+RAD8' + CFULLREACS(322) = 'K321=2.30E-11*EXP(151.0/TPK%T)::RAD8+NO2-->UR22+H2O' + CFULLREACS(323) = 'K322=1.29E-11::RPR7+OH-->O3+0.9999993*URG7+H2O' + CFULLREACS(324) = 'K323=1.3918362E-10::RPG7+OH-->1.0000005*O3+1.0000005*H2O+0.& +&5021558*RPG7+0.4978440*URG6' + CFULLREACS(325) = 'K324=1.145E-10::RPR8+OH-->RO257+RO2T+H2O' + CFULLREACS(326) = 'K325=1.098E-10::RP10+OH-->HO2+H2O' + CFULLREACS(327) = 'K326=1.964E-10::RP11+OH-->O3+0.67*UR26+H2O' + CFULLREACS(328) = 'K327=3.0E-13*EXP(-1427/TPK%T)*1.145E-10/(6.91E-12*EXP(250/T& +&PK%T))::RPR8+NO3-->HNO3+RO257+RO2T' + CFULLREACS(329) = 'K328=!ZRATES(:,012)::RP10-->' + CFULLREACS(330) = 'K329=!ZRATES(:,012)::RPR8-->CO+HO2+RO29+RO2T' + CFULLREACS(331) = 'K330=!ZRATES(:,012)::RPR8-->HO2+RO257+RO2T' + CFULLREACS(332) = 'K331=1.11E-11*EXP(180.2/TPK%T)::RO257+NO-->NO2+CO2+RO29+RO2& +&T' + CFULLREACS(333) = 'K332=3.41E-13*EXP(800.2/TPK%T)/3.5::RO257+HO2-->1.0000000*U& +&RG4+O3' + CFULLREACS(334) = 'K333=1.0E-15::RO257+RO2T-->CO2+RO29+2.*RO2T+O2' + CFULLREACS(335) = 'K334=2.4131647E-10::RPG3+OH-->1.0000000*O3+0.1191897*RPG2+1& +&.0000000*H2O+0.8808107*RPG2' + CFULLREACS(336) = 'K335=2.1923330E-10::RPG2+OH-->1.0000000*O3+0.5562513*URG2+1& +&.0000000*H2O+0.4437492*RP18' + CFULLREACS(337) = 'K337=1.97E-10::RP18+OH-->O3+URG2+H2O' + CFULLREACS(338) = 'K338=1.4E-12*EXP(-1897.3/TPK%T)::RP16+NO3-->HNO3+RO258+RO2T& +&' + CFULLREACS(339) = 'K339=!ZRATES(:,019)::RP16-->2.*CO+OH+HO2' + CFULLREACS(340) = 'K340=1.11E-11*EXP(180.2/TPK%T)::RO258+NO-->CO+CO2+NO2+OH' + CFULLREACS(341) = 'K341=3.41E-13*EXP(800.2/TPK%T)::RO258+HO2-->O3+UR28' + CFULLREACS(342) = 'K342=1.0E-15::RO258+RO2T-->CO+CO2+OH+RO2T+O2' + CFULLREACS(343) = 'K343=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& +&6,TPK%M,TPK%T,KVECNPT)::PAN7-->NO2+RO255+RO2T' + CFULLREACS(344) = 'K344=8.89E-13*EXP(180.2/TPK%T)::RO230+NO-->NO2+RO28+RO2T' + CFULLREACS(345) = 'K345=3.30E-12*exp(-(900.0/TPK%T))::NH3+OH-->' + CFULLREACS(346) = 'K346=1.00E-40::H2SO4-->' + CFULLREACS(347) = 'K347=4.50E-13::ORA1+OH-->HO2+CO2+H2O' + CFULLREACS(348) = 'K348=6.00E-13::ORA2+OH-->' + CFULLREACS(349) = 'K349=1.20E-12::ACID+OH-->' + CFULLREACS(350) = 'K350=1.00E-40::URG2-->' + CFULLREACS(351) = 'K351=1.00E-40::URG4-->' + CFULLREACS(352) = 'K352=1.00E-40::URG6-->' + CFULLREACS(353) = 'K353=1.00E-40::URG7-->' + CFULLREACS(354) = 'K354=1.00E-40::URG8-->' + CFULLREACS(355) = 'K355=1.00E-40::URG9-->' + CFULLREACS(356) = 'K356=1.00E-40::URG10-->' + CFULLREACS(357) = 'K357=1.00E-40::UR7-->' + CFULLREACS(358) = 'K358=1.00E-40::UR8-->' + CFULLREACS(359) = 'K359=1.00E-40::UR17-->' + CFULLREACS(360) = 'K360=1.00E-40::UR19-->' + CFULLREACS(361) = 'K361=1.00E-40::UR21-->' + CFULLREACS(362) = 'K362=1.00E-40::UR22-->' + CFULLREACS(363) = 'K363=1.00E-40::UR26-->' + CFULLREACS(364) = 'K364=1.00E-40::UR28-->' + CFULLREACS(365) = 'K365=1.00E-40::AP7-->' + CFULLREACS(366) = 'KTC1=@KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::O3-->WC_& &O3' - CFULLREACS(134) = 'KTC2=@KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::H2O2-->W& + CFULLREACS(367) = 'KTC2=@KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::H2O2-->W& &C_H2O2' - CFULLREACS(135) = 'KTC3=@KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NO-->W& + CFULLREACS(368) = 'KTC3=@KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NO-->W& &C_NO' - CFULLREACS(136) = 'KTC4=@KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NO2-->& + CFULLREACS(369) = 'KTC4=@KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NO2-->& &WC_NO2' - CFULLREACS(137) = 'KTC5=@KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NO3-->WC& + CFULLREACS(370) = 'KTC5=@KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NO3-->WC& &_NO3' - CFULLREACS(138) = 'KTC6=@KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::N2O5-& + CFULLREACS(371) = 'KTC6=@KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::N2O5-& &->WC_N2O5' - CFULLREACS(139) = 'KTC7=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HONO-->W& + CFULLREACS(372) = 'KTC7=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HONO-->W& &C_HONO' - CFULLREACS(140) = 'KTC8=@KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HNO3-->& + CFULLREACS(373) = 'KTC8=@KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HNO3-->& &WC_HNO3' - CFULLREACS(141) = 'KTC9=@KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HNO4-->W& + CFULLREACS(374) = 'KTC9=@KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HNO4-->W& &C_HNO4' - CFULLREACS(142) = 'KTC10=@KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NH3-->W& + CFULLREACS(375) = 'KTC10=@KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NH3-->W& &C_NH3' - CFULLREACS(143) = 'KTC11=@KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::OH-->WC& + CFULLREACS(376) = 'KTC11=@KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::OH-->WC& &_OH' - CFULLREACS(144) = 'KTC12=@KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HO2-->WC& + CFULLREACS(377) = 'KTC12=@KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HO2-->WC& &_HO2' - CFULLREACS(145) = 'KTC13=@KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::CO2--& + CFULLREACS(378) = 'KTC13=@KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::CO2--& &>WC_CO2' - CFULLREACS(146) = 'KTC14=@KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::SO2-->W& + CFULLREACS(379) = 'KTC14=@KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::SO2-->W& &C_SO2' - CFULLREACS(147) = 'KTC15=@KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::SULF-->& -&WC_SULF' - CFULLREACS(148) = 'KTC16=@KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HCHO-->& + CFULLREACS(380) = 'KTC15=@KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::H2SO4--& +&>WC_H2SO4' + CFULLREACS(381) = 'KTC16=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::RO21-->& +&WC_RO21' + CFULLREACS(382) = 'KTC17=@KT(0.05,75.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::RO25-->& +&WC_RO25' + CFULLREACS(383) = 'KTC18=@KT(0.027,32.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::MEOH--& +&>WC_MEOH' + CFULLREACS(384) = 'KTC19=@KT(0.017,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ETOH--& +&>WC_ETOH' + CFULLREACS(385) = 'KTC20=@KT(0.011,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ALCH--& +&>WC_ALCH' + CFULLREACS(386) = 'KTC21=@KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HCHO-->& &WC_HCHO' - CFULLREACS(149) = 'KTC17=@KT(0.012,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ORA1--& + CFULLREACS(387) = 'KTC22=@KT(0.03,44.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ALD2-->& +&WC_ALD2' + CFULLREACS(388) = 'KTC23=@KT(0.01,58.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::GLY-->W& +&C_GLY' + CFULLREACS(389) = 'KTC24=@KT(0.008,58.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::KETL--& +&>WC_KETL' + CFULLREACS(390) = 'KTC25=@KT(0.0003,72.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::MGLY-& +&->WC_MGLY' + CFULLREACS(391) = 'KTC26=@KT(0.023,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ORA1--& &>WC_ORA1' - CFULLREACS(150) = 'KTC18=@KT(0.03,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ORA2-->& -&WC_ORA2' - CFULLREACS(151) = 'KTC19=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::MO2-->W& -&C_MO2' - CFULLREACS(152) = 'KTC20=@KT(0.007,48.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::OP1-->& -&WC_OP1' - CFULLREACS(153) = 'KTC21=@KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.1e-2,-& + CFULLREACS(392) = 'KTC27=@KT(0.032,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ORA2--& +&>WC_ORA2' + CFULLREACS(393) = 'KTC28=@KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ACID-->& +&WC_ACID' + CFULLREACS(394) = 'KTC29=@KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::RP16-->& +&WC_RP16' + CFULLREACS(395) = 'KTC30=@KT(0.05,88.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::UR21-->& +&WC_UR21' + CFULLREACS(396) = 'KTC31=@KT(0.05,90.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::UR28-->& +&WC_UR28' + CFULLREACS(397) = 'KTC32=@KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.1e-2,-& &2830.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_O3-->O3' - CFULLREACS(154) = 'KTC22=@KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(7.73e4,-& + CFULLREACS(398) = 'KTC33=@KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(7.73e4,-& &7310.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_H2O2-->H2O2' - CFULLREACS(155) = 'KTC23=@KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.92e-& + CFULLREACS(399) = 'KTC34=@KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.92e-& &3,-1790.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO-->NO' - CFULLREACS(156) = 'KTC24=@KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.4e-2& -&,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO2-->NO2' - CFULLREACS(157) = 'KTC25=@KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.8e-2,0& -&.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO3-->NO3' - CFULLREACS(158) = 'KTC26=@KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.1,-& -&3400.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_N2O5-->N2O5' - CFULLREACS(159) = 'KTC27=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(5.0e1,-4& + CFULLREACS(400) = 'KTC35=@KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.4e-2& +&,-2516.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO2-->NO2' + CFULLREACS(401) = 'KTC36=@KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.8e-2,-& +&8707.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO3-->NO3' + CFULLREACS(402) = 'KTC37=@KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.1e0& +&,-3400.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_N2O5-->N2O5' + CFULLREACS(403) = 'KTC38=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(5.0e1,-4& &880.,1.6e-3,1760.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HONO-->HONO' - CFULLREACS(160) = 'KTC28=@KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(2.1e5,-& + CFULLREACS(404) = 'KTC39=@KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(2.1e5,-& &8700.,2.2e1,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HNO3-->HNO3' - CFULLREACS(161) = 'KTC29=@KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(1.2e4,-6& + CFULLREACS(405) = 'KTC40=@KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(1.2e4,-6& &900.,1.26e-6,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HNO4-->HNO4' - CFULLREACS(162) = 'KTC30=@KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFB(6.02e1,-& + CFULLREACS(406) = 'KTC41=@KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFB(6.02e1,-& &4160.,1.7e-5,4350.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NH3-->NH3' - CFULLREACS(163) = 'KTC31=@KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.9e1,0.& + CFULLREACS(407) = 'KTC42=@KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.9e1,0.& &,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_OH-->OH' - CFULLREACS(164) = 'KTC32=@KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(6.9e2,0.,& -&1.6e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HO2-->HO2' - CFULLREACS(165) = 'KTC33=@KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(3.4e-2& + CFULLREACS(408) = 'KTC43=@KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(6.9e2,-66& +&43.,1.6e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HO2-->HO2' + CFULLREACS(409) = 'KTC44=@KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(3.4e-2& &,-2710.,4.3e-7,920.,4.7e-11,1780.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_CO& &2-->CO2' - CFULLREACS(166) = 'KTC34=@KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(1.36,-29& + CFULLREACS(410) = 'KTC45=@KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(1.36,-29& &30.,1.3e-2,-1965.,6.4e-8,-1430.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_SO2-& &->SO2' - CFULLREACS(167) = 'KTC35=@KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(2.1e5,-8& -&700.,1.0e3,0.,1.0e-2,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_SULF-->SULF' - CFULLREACS(168) = 'KTC36=@KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.23e3,-& + CFULLREACS(411) = 'KTC46=@KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(2.1e5,-8& +&700.,1.0e3,0.,1.0e-2,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_H2SO4-->H2SO& +&4' + CFULLREACS(412) = 'KTC47=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.7e0,0.& +&,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_RO21-->RO21' + CFULLREACS(413) = 'KTC48=@KT(0.05,75.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(7.5e1,0.& +&,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_RO25-->RO25' + CFULLREACS(414) = 'KTC49=@KT(0.027,32.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.2e2,-& +&5210.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_MEOH-->MEOH' + CFULLREACS(415) = 'KTC50=@KT(0.017,46.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.9e2,-& +&6600.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ETOH-->ETOH' + CFULLREACS(416) = 'KTC51=@KT(0.011,60.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.3e2,-& +&7500.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ALCH-->ALCH' + CFULLREACS(417) = 'KTC52=@KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.23e3,-& &7100.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HCHO-->HCHO' - CFULLREACS(169) = 'KTC37=@KT(0.012,46.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(8.9e3,-& + CFULLREACS(418) = 'KTC53=@KT(0.03,44.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.29e1,-& +&5890.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ALD2-->ALD2' + CFULLREACS(419) = 'KTC54=@KT(0.01,58.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.6e5,0.& +&,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_GLY-->GLY' + CFULLREACS(420) = 'KTC55=@KT(0.008,58.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.81e1,& +&-5050.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_KETL-->KETL' + CFULLREACS(421) = 'KTC56=@KT(0.0003,72.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.7e3,& +&0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_MGLY-->MGLY' + CFULLREACS(422) = 'KTC57=@KT(0.023,46.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(8.9e3,-& &6100.,1.8e-4,150.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ORA1-->ORA1' - CFULLREACS(170) = 'KTC38=@KT(0.03,60.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(4.1e3,-6& -&200.,1.74e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ORA2-->ORA2' - CFULLREACS(171) = 'KTC39=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.7e0,-2& -&030.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_MO2-->MO2' - CFULLREACS(172) = 'KTC40=@KT(0.007,48.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.e2,-5& -&280.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_OP1-->OP1' - CFULLREACS(173) = 'KTR1=@KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::O3-->WR_& + CFULLREACS(423) = 'KTC58=@KT(0.032,60.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(4.1e3,-& +&6200.,1.75e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ORA2-->ORA2' + CFULLREACS(424) = 'KTC59=@KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(5.7e3,0.& +&,1.35e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ACID-->ACID' + CFULLREACS(425) = 'KTC60=@KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(9.0e3,0.& +&,3.2e-4,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_RP16-->RP16' + CFULLREACS(426) = 'KTC61=@KT(0.05,88.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(3.11e5,-& +&5090.,3.55e-3,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_UR21-->UR21' + CFULLREACS(427) = 'KTC62=@KT(0.05,90.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(5.0e8,0.& +&,5.6e-2,0.,5.4e-5,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_UR28-->UR28' + CFULLREACS(428) = 'KTR1=@KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::O3-->WR_& &O3' - CFULLREACS(174) = 'KTR2=@KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::H2O2-->W& + CFULLREACS(429) = 'KTR2=@KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::H2O2-->W& &R_H2O2' - CFULLREACS(175) = 'KTR3=@KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NO-->W& + CFULLREACS(430) = 'KTR3=@KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NO-->W& &R_NO' - CFULLREACS(176) = 'KTR4=@KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NO2-->& + CFULLREACS(431) = 'KTR4=@KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NO2-->& &WR_NO2' - CFULLREACS(177) = 'KTR5=@KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NO3-->WR& + CFULLREACS(432) = 'KTR5=@KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NO3-->WR& &_NO3' - CFULLREACS(178) = 'KTR6=@KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::N2O5-& + CFULLREACS(433) = 'KTR6=@KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::N2O5-& &->WR_N2O5' - CFULLREACS(179) = 'KTR7=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HONO-->W& + CFULLREACS(434) = 'KTR7=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HONO-->W& &R_HONO' - CFULLREACS(180) = 'KTR8=@KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HNO3-->& + CFULLREACS(435) = 'KTR8=@KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HNO3-->& &WR_HNO3' - CFULLREACS(181) = 'KTR9=@KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HNO4-->W& + CFULLREACS(436) = 'KTR9=@KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HNO4-->W& &R_HNO4' - CFULLREACS(182) = 'KTR10=@KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NH3-->W& + CFULLREACS(437) = 'KTR10=@KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NH3-->W& &R_NH3' - CFULLREACS(183) = 'KTR11=@KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::OH-->WR& + CFULLREACS(438) = 'KTR11=@KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::OH-->WR& &_OH' - CFULLREACS(184) = 'KTR12=@KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HO2-->WR& + CFULLREACS(439) = 'KTR12=@KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HO2-->WR& &_HO2' - CFULLREACS(185) = 'KTR13=@KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::CO2--& + CFULLREACS(440) = 'KTR13=@KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::CO2--& &>WR_CO2' - CFULLREACS(186) = 'KTR14=@KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::SO2-->W& + CFULLREACS(441) = 'KTR14=@KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::SO2-->W& &R_SO2' - CFULLREACS(187) = 'KTR15=@KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::SULF-->& -&WR_SULF' - CFULLREACS(188) = 'KTR16=@KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HCHO-->& + CFULLREACS(442) = 'KTR15=@KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::H2SO4--& +&>WR_H2SO4' + CFULLREACS(443) = 'KTR16=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::RO21-->& +&WR_RO21' + CFULLREACS(444) = 'KTR17=@KT(0.05,75.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::RO25-->& +&WR_RO25' + CFULLREACS(445) = 'KTR18=@KT(0.027,32.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::MEOH--& +&>WR_MEOH' + CFULLREACS(446) = 'KTR19=@KT(0.017,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ETOH--& +&>WR_ETOH' + CFULLREACS(447) = 'KTR20=@KT(0.011,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ALCH--& +&>WR_ALCH' + CFULLREACS(448) = 'KTR21=@KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HCHO-->& &WR_HCHO' - CFULLREACS(189) = 'KTR17=@KT(0.012,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ORA1--& + CFULLREACS(449) = 'KTR22=@KT(0.03,44.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ALD2-->& +&WR_ALD2' + CFULLREACS(450) = 'KTR23=@KT(0.01,58.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::GLY-->W& +&R_GLY' + CFULLREACS(451) = 'KTR24=@KT(0.008,58.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::KETL--& +&>WR_KETL' + CFULLREACS(452) = 'KTR25=@KT(0.0003,72.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::MGLY-& +&->WR_MGLY' + CFULLREACS(453) = 'KTR26=@KT(0.023,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ORA1--& &>WR_ORA1' - CFULLREACS(190) = 'KTR18=@KT(0.03,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ORA2-->& -&WR_ORA2' - CFULLREACS(191) = 'KTR19=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::MO2-->W& -&R_MO2' - CFULLREACS(192) = 'KTR20=@KT(0.007,48.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::OP1-->& -&WR_OP1' - CFULLREACS(193) = 'KTR21=@KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.1e-2,-& + CFULLREACS(454) = 'KTR27=@KT(0.032,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ORA2--& +&>WR_ORA2' + CFULLREACS(455) = 'KTR28=@KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ACID-->& +&WR_ACID' + CFULLREACS(456) = 'KTR29=@KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::RP16-->& +&WR_RP16' + CFULLREACS(457) = 'KTR30=@KT(0.05,88.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::UR21-->& +&WR_UR21' + CFULLREACS(458) = 'KTR31=@KT(0.05,90.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::UR28-->& +&WR_UR28' + CFULLREACS(459) = 'KTR32=@KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.1e-2,-& &2830.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_O3-->O3' - CFULLREACS(194) = 'KTR22=@KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(7.73e4,-& + CFULLREACS(460) = 'KTR33=@KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(7.73e4,-& &7310.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_H2O2-->H2O2' - CFULLREACS(195) = 'KTR23=@KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.92e-& + CFULLREACS(461) = 'KTR34=@KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.92e-& &3,-1790.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO-->NO' - CFULLREACS(196) = 'KTR24=@KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.4e-2& -&,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO2-->NO2' - CFULLREACS(197) = 'KTR25=@KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.8e-2,0& -&.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO3-->NO3' - CFULLREACS(198) = 'KTR26=@KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.1,-& -&3400.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_N2O5-->N2O5' - CFULLREACS(199) = 'KTR27=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(5.0e1,-4& + CFULLREACS(462) = 'KTR35=@KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.4e-2& +&,-2516.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO2-->NO2' + CFULLREACS(463) = 'KTR36=@KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.8e-2,-& +&8707.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO3-->NO3' + CFULLREACS(464) = 'KTR37=@KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.1e0& +&,-3400.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_N2O5-->N2O5' + CFULLREACS(465) = 'KTR38=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(5.0e1,-4& &880.,1.6e-3,1760.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HONO-->HONO' - CFULLREACS(200) = 'KTR28=@KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(2.1e5,-& + CFULLREACS(466) = 'KTR39=@KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(2.1e5,-& &8700.,2.2e1,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HNO3-->HNO3' - CFULLREACS(201) = 'KTR29=@KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(1.2e4,-6& + CFULLREACS(467) = 'KTR40=@KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(1.2e4,-6& &900.,1.26e-6,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HNO4-->HNO4' - CFULLREACS(202) = 'KTR30=@KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFB(6.02e1,-& + CFULLREACS(468) = 'KTR41=@KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFB(6.02e1,-& &4160.,1.7e-5,4350.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NH3-->NH3' - CFULLREACS(203) = 'KTR31=@KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.9e1,0.& + CFULLREACS(469) = 'KTR42=@KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.9e1,0.& &,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_OH-->OH' - CFULLREACS(204) = 'KTR32=@KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(6.9e2,0.,& -&1.6e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HO2-->HO2' - CFULLREACS(205) = 'KTR33=@KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(3.4e-2& + CFULLREACS(470) = 'KTR43=@KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(6.9e2,-66& +&43.,1.6e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HO2-->HO2' + CFULLREACS(471) = 'KTR44=@KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(3.4e-2& &,-2710.,4.3e-7,920.,4.7e-11,1780.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_CO& &2-->CO2' - CFULLREACS(206) = 'KTR34=@KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(1.36,-29& + CFULLREACS(472) = 'KTR45=@KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(1.36,-29& &30.,1.3e-2,-1965.,6.4e-8,-1430.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_SO2-& &->SO2' - CFULLREACS(207) = 'KTR35=@KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(2.1e5,-8& -&700.,1.0e3,0.,1.0e-2,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_SULF-->SULF' - CFULLREACS(208) = 'KTR36=@KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.23e3,-& + CFULLREACS(473) = 'KTR46=@KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(2.1e5,-8& +&700.,1.0e3,0.,1.0e-2,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_H2SO4-->H2SO& +&4' + CFULLREACS(474) = 'KTR47=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.7e0,0.& +&,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_RO21-->RO21' + CFULLREACS(475) = 'KTR48=@KT(0.05,75.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(7.5e1,0.& +&,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_RO25-->RO25' + CFULLREACS(476) = 'KTR49=@KT(0.027,32.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.2e2,-& +&5210.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_MEOH-->MEOH' + CFULLREACS(477) = 'KTR50=@KT(0.017,46.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.9e2,-& +&6600.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ETOH-->ETOH' + CFULLREACS(478) = 'KTR51=@KT(0.011,60.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.3e2,-& +&7500.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ALCH-->ALCH' + CFULLREACS(479) = 'KTR52=@KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.23e3,-& &7100.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HCHO-->HCHO' - CFULLREACS(209) = 'KTR37=@KT(0.012,46.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(8.9e3,-& + CFULLREACS(480) = 'KTR53=@KT(0.03,44.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.29e1,-& +&5890.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ALD2-->ALD2' + CFULLREACS(481) = 'KTR54=@KT(0.01,58.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.6e5,0.& +&,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_GLY-->GLY' + CFULLREACS(482) = 'KTR55=@KT(0.008,58.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.81e1,& +&-5050.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_KETL-->KETL' + CFULLREACS(483) = 'KTR56=@KT(0.0003,72.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.7e3,& +&0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_MGLY-->MGLY' + CFULLREACS(484) = 'KTR57=@KT(0.023,46.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(8.9e3,-& &6100.,1.8e-4,150.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ORA1-->ORA1' - CFULLREACS(210) = 'KTR38=@KT(0.03,60.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(4.1e3,-6& -&200.,1.74e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ORA2-->ORA2' - CFULLREACS(211) = 'KTR39=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.7e0,-2& -&030.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_MO2-->MO2' - CFULLREACS(212) = 'KTR40=@KT(0.007,48.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.e2,-5& -&280.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_OP1-->OP1' - CFULLREACS(213) = 'KC1=!ZRATES(:,018)::WC_H2O2-->WC_OH+WC_OH' - CFULLREACS(214) = 'KC2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECC& + CFULLREACS(485) = 'KTR58=@KT(0.032,60.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(4.1e3,-& +&6200.,1.75e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ORA2-->ORA2' + CFULLREACS(486) = 'KTR59=@KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(5.7e3,0.& +&,1.35e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ACID-->ACID' + CFULLREACS(487) = 'KTR60=@KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(9.0e3,0.& +&,3.2e-4,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_RP16-->RP16' + CFULLREACS(488) = 'KTR61=@KT(0.05,88.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(3.11e5,-& +&5090.,3.55e-3,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_UR21-->UR21' + CFULLREACS(489) = 'KTR62=@KT(0.05,90.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(5.0e8,0.& +&,5.6e-2,0.,5.4e-5,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_UR28-->UR28' + CFULLREACS(490) = 'KC1=!ZRATES(:,024)::WC_H2O2-->WC_OH+WC_OH' + CFULLREACS(491) = 'KC2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECC& &LOUD::WC_OH+WC_OH-->WC_H2O2' - CFULLREACS(215) = 'KC3=((2.8E+10*10.**(-TPK%PHC)+3.5E+10*exp(-720.*(1./TPK%T-1& + CFULLREACS(492) = 'KC3=((2.8E+10*10.**(-TPK%PHC)+3.5E+10*exp(-720.*(1./TPK%T-1& &./298.15))*1.6e-5)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_OH+WC_HO2-& &->' - CFULLREACS(216) = 'KC4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLEC& + CFULLREACS(493) = 'KC4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLEC& &CLOUD::WC_H2O2+WC_OH-->WC_HO2' - CFULLREACS(217) = 'KC5=((8.3E+5*exp(-2700.*(1./TPK%T-1./298.15))*(10.**(-TPK%P& + CFULLREACS(494) = 'KC5=((8.3E+5*exp(-2700.*(1./TPK%T-1./298.15))*(10.**(-TPK%P& &HC))**2.+9.6E+7*exp(-910.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*1.6e-5)/(1.6e-& &5+10.**(-TPK%PHC))**2.)/TPK%MOL2MOLECCLOUD::WC_HO2+WC_HO2-->WC_H2O2' - CFULLREACS(218) = 'KC6=(1.5E+9*exp(-1500.*(1./TPK%T-1./298.15))*1.6e-5/(1.6e-5& + CFULLREACS(495) = 'KC6=(1.5E+9*exp(-1500.*(1./TPK%T-1./298.15))*1.6e-5/(1.6e-5& &+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_O3+WC_HO2-->WC_OH' - CFULLREACS(219) = 'KC7=(2.7E+9*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-T& + CFULLREACS(496) = 'KC7=(2.7E+9*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-T& &PK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./& &298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PH& &C))**2.))/TPK%MOL2MOLECCLOUD::WC_OH+WC_SO2-->WC_ASO3' - CFULLREACS(220) = 'KC8=(1.0E+10*10.**(-TPK%PHC)/(1.6e-3*exp(-1760.*(1./TPK%T-1& + CFULLREACS(497) = 'KC8=(1.0E+10*10.**(-TPK%PHC)/(1.6e-3*exp(-1760.*(1./TPK%T-1& &./298.15))+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_HONO+WC_OH-->WC_NO2' - CFULLREACS(221) = 'KC9=((1.8E+9*10.**(-TPK%PHC)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-& + CFULLREACS(498) = 'KC9=((1.8E+9*10.**(-TPK%PHC)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-& &TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_NO2+WC_HO2-->WC_HNO4' - CFULLREACS(222) = 'KC10=2.6E-2*10.**(-TPK%PHC)/(1.26e-6+10.**(-TPK%PHC))::WC_H& + CFULLREACS(499) = 'KC10=2.6E-2*10.**(-TPK%PHC)/(1.26e-6+10.**(-TPK%PHC))::WC_H& &NO4-->WC_HO2+WC_NO2' - CFULLREACS(223) = 'KC11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHC))::WC_HNO4-->WC_& + CFULLREACS(500) = 'KC11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHC))::WC_HNO4-->WC_& &HONO' - CFULLREACS(224) = 'KC12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(& + CFULLREACS(501) = 'KC12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(& &-TPK%PHC))**2./((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./T& &PK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**& &(-TPK%PHC))**2.)*(1.26e-6+10.**(-TPK%PHC))))/TPK%MOL2MOLECCLOUD::WC_HNO4+WC_SO& -&2-->WC_SULF+WC_HNO3' - CFULLREACS(225) = 'KC13=!ZRATES(:,019)*2.2e+1/(2.2e+1+10.**(-TPK%PHC))::WC_HNO& +&2-->WC_H2SO4+WC_HNO3' + CFULLREACS(502) = 'KC13=!ZRATES(:,025)*2.2e+1/(2.2e+1+10.**(-TPK%PHC))::WC_HNO& &3-->WC_NO2+WC_OH' - CFULLREACS(226) = 'KC14=1.0E+10::WC_N2O5-->WC_HNO3+WC_HNO3' - CFULLREACS(227) = 'KC15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK& -&%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_NO3+WC_SULF-->WC_HNO3+WC_& -&ASO4' - CFULLREACS(228) = 'KC16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(19& + CFULLREACS(503) = 'KC14=1.0E+10::WC_N2O5-->WC_HNO3+WC_HNO3' + CFULLREACS(504) = 'KC15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK& +&%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_NO3+WC_H2SO4-->WC_HNO3+WC& +&_ASO4' + CFULLREACS(505) = 'KC16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(19& &65.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.1& &5))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.1& &5))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_NO3+WC_SO2-& &->WC_HNO3+WC_ASO3' - CFULLREACS(229) = 'KC17=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& -&CCLOUD::WC_MO2+WC_MO2-->2.00*WC_HCHO+2.00*WC_HO2' - CFULLREACS(230) = 'KC18=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-& -&TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1.& -&/298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%P& -&HC))**2.))/TPK%MOL2MOLECCLOUD::WC_MO2+WC_SO2-->WC_OP1+WC_ASO3' - CFULLREACS(231) = 'KC19=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(403& -&0.*(1./TPK%T-1./298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2M& -&OLECCLOUD::WC_HCHO+WC_OH-->WC_ORA1+WC_HO2' - CFULLREACS(232) = 'KC20=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%P& -&HC)+3.4E+9*exp(-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.1& -&5)))/(1.8e-4*exp(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLO& -&UD::WC_ORA1+WC_OH-->WC_CO2+WC_HO2' - CFULLREACS(233) = 'KC21=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1& + CFULLREACS(506) = 'KC17=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1& &965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.& &15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.& &15)))/((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./2& &98.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC& &))**2.)*(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECCLOUD::WC_SO& &2+WC_HCHO-->WC_AHMS' - CFULLREACS(234) = 'KC22=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*& + CFULLREACS(507) = 'KC18=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*& &EXP(-6716*(1./TPK%T-1./298.15))/10.**(-TPK%PHC)::WC_AHMS-->WC_SO2+WC_HCHO' - CFULLREACS(235) = 'KC23=3.0E+8/TPK%MOL2MOLECCLOUD::WC_AHMS+WC_OH-->WC_HO2+WC_O& + CFULLREACS(508) = 'KC19=3.0E+8/TPK%MOL2MOLECCLOUD::WC_AHMS+WC_OH-->WC_HO2+WC_O& &RA1+WC_SO2' - CFULLREACS(236) = 'KC24=1.1E+9::WC_ASO3+W_O2-->WC_ASO5' - CFULLREACS(237) = 'KC25=(1.7E+9*10.**(-TPK%PHC)/(1.6e-5+10.**(-TPK%PHC)))/TPK%& + CFULLREACS(509) = 'KC20=1.1E+9::WC_ASO3+W_O2-->WC_ASO5' + CFULLREACS(510) = 'KC21=(1.7E+9*10.**(-TPK%PHC)/(1.6e-5+10.**(-TPK%PHC)))/TPK%& &MOL2MOLECCLOUD::WC_ASO5+WC_HO2-->WC_AHSO5' - CFULLREACS(238) = 'KC26=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& + CFULLREACS(511) = 'KC22=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& &CCLOUD::WC_ASO5+WC_ASO5-->WC_ASO4+WC_ASO4' - CFULLREACS(239) = 'KC27=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-& + CFULLREACS(512) = 'KC23=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-& &TPK%PHC)*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(14& &30.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PH& -&C)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_AHSO5+WC_SO2-->2.00*WC_SULF' - CFULLREACS(240) = 'KC28=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15))::WC_ASO4-->WC_& -&SULF+WC_OH' - CFULLREACS(241) = 'KC29=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1& +&C)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_AHSO5+WC_SO2-->2.00*WC_H2SO4& +&' + CFULLREACS(513) = 'KC24=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15))::WC_ASO4-->WC_& +&H2SO4+WC_OH' + CFULLREACS(514) = 'KC25=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1& &965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.& &15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.& &15)))/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./29& &8.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC)& -&)**2.))/TPK%MOL2MOLECCLOUD::WC_SO2+WC_O3-->WC_SULF' - CFULLREACS(242) = 'KC30=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(19& +&)**2.))/TPK%MOL2MOLECCLOUD::WC_SO2+WC_O3-->WC_H2SO4' + CFULLREACS(515) = 'KC26=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(19& &65.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1& &./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1& &./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD& -&::WC_SO2+WC_H2O2-->WC_SULF' - CFULLREACS(243) = 'KR1=!ZRATES(:,018)::WR_H2O2-->WR_OH+WR_OH' - CFULLREACS(244) = 'KR2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECR& +&::WC_SO2+WC_H2O2-->WC_H2SO4' + CFULLREACS(516) = 'KC27=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& +&CCLOUD::WC_RO21+WC_RO21-->2.00*WC_HCHO+2.00*WC_HO2' + CFULLREACS(517) = 'KC28=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-& +&TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1.& +&/298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%P& +&HC))**2.))/TPK%MOL2MOLECCLOUD::WC_RO21+WC_SO2-->WC_HCHO+WC_ASO3' + CFULLREACS(518) = 'KC29=1.5E+8/TPK%MOL2MOLECCLOUD::WC_RO25+WC_RO25-->WC_ORA2+W& +&C_H2O2+WC_ALD2+WC_HO2' + CFULLREACS(519) = 'KC30=(1.7E+9*exp(-600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLEC& +&CLOUD::WC_MEOH+WC_OH-->WC_HCHO+WC_HO2' + CFULLREACS(520) = 'KC31=(2.1E+9*exp(-1200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& +&CCLOUD::WC_ETOH+WC_OH-->WC_ALD2+WC_HO2' + CFULLREACS(521) = 'KC32=(3.3E+9*exp(-1000.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& +&CCLOUD::WC_ALCH+WC_OH-->0.50*WC_ALD2+0.50*WC_KETL+WC_HO2' + CFULLREACS(522) = 'KC33=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(403& +&0.*(1./TPK%T-1./298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2M& +&OLECCLOUD::WC_HCHO+WC_OH-->WC_ORA1+WC_HO2' + CFULLREACS(523) = 'KC34=3.4E+9/TPK%MOL2MOLECCLOUD::WC_ALD2+WC_OH-->0.50*WC_RO2& +&1+0.50*WC_RO25+WC_CO2' + CFULLREACS(524) = 'KC35=(1.1E+9*exp(-1500.*(1./TPK%T-1./298.15))*3.9e3/(1.+3.9& +&e3))/TPK%MOL2MOLECCLOUD::WC_GLY+WC_OH-->WC_RP16+WC_HO2' + CFULLREACS(525) = 'KC36=(7.9E+8*exp(-1600.*(1./TPK%T-1./298.15))*4.86e2/(1.+4.& +&86e2))/TPK%MOL2MOLECCLOUD::WC_MGLY+WC_OH-->WC_UR21+WC_HO2' + CFULLREACS(526) = 'KC37=(8.9E+8*exp(-1400.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& +&CCLOUD::WC_KETL+WC_OH-->WC_MGLY+WC_KETL+WC_HCHO+WC_UR21+WC_ALD2+WC_RO21+WC_CO2& +&+WC_H2O2+WC_HO2' + CFULLREACS(527) = 'KC38=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%P& +&HC)+3.4E+9*exp(-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.1& +&5)))/(1.8e-4*exp(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLO& +&UD::WC_ORA1+WC_OH-->WC_CO2+WC_HO2' + CFULLREACS(528) = 'KC39=((1.5E+7*exp(-1300.*(1./TPK%T-1./298.15))*10.**(-TPK%P& +&HC)+1.0E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.75e-5)/(1.75e-5+10.**(-TPK%PHC))& +&)/TPK%MOL2MOLECCLOUD::WC_ORA2+WC_OH-->WC_RP16+0.5*WC_H2O2' + CFULLREACS(529) = 'KC40=(3.2E+8*exp(-2300.*(1./TPK%T-1./298.15))*10.**(-TPK%PH& +&C)/(1.35e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ACID+WC_OH-->WC_RO25+WC_C& +&O2' + CFULLREACS(530) = 'KC41=(7.3E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.35e-5/(1.35& +&e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ACID+WC_OH-->0.56*WC_UR21+0.15*WC& +&_ACID2+0.29*WC_ALD2+0.29*WC_H2O2+0.11*WC_HO2' + CFULLREACS(531) = 'KC42=((4.7E+7*10.**(-TPK%PHC)*5.6E-2+7.7E+6*5.6E-2*5.4e-5)/& +&(5.6E-2*5.4E-5+5.4E-5*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLO& +&UD::WC_UR28+WC_OH-->2*WC_CO2+WC_HO2' + CFULLREACS(532) = 'KC43=((1.2E+8*exp(-2800.*(1./TPK%T-1./298.15))*10.**(-TPK%P& +&HC)+7.0E+8*exp(-2300.*(1./TPK%T-1./298.15))*3.55E-3)/(3.55E-3+10.**(-TPK%PHC))& +&)/TPK%MOL2MOLECCLOUD::WC_UR21+WC_OH-->0.56*WC_ACID2+0.43*WC_ALD2+0.43*WC_CO2+0& +&.3*WC_H2O2+0.81*WC_HO2' + CFULLREACS(533) = 'KC44=(3.6E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PH& +&C)/(10.**(-TPK%PHC)+3.2E-4))/TPK%MOL2MOLECCLOUD::WC_RP16+WC_OH-->WC_UR28+WC_HO& +&2' + CFULLREACS(534) = 'KC45=(2.6E+9*exp(-4300.*(1./TPK%T-1./298.15))*3.2E-4/(10.**& +&(-TPK%PHC)+3.2E-4))/TPK%MOL2MOLECCLOUD::WC_RP16+WC_OH-->2*WC_CO2+0.45*WC_H2O2+& +&0.71*WC_HO2' + CFULLREACS(535) = 'KC46=1.6E+7/TPK%MOL2MOLECCLOUD::WC_ACID2+WC_OH-->' + CFULLREACS(536) = 'KR1=!ZRATES(:,024)::WR_H2O2-->WR_OH+WR_OH' + CFULLREACS(537) = 'KR2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECR& &AIN::WR_OH+WR_OH-->WR_H2O2' - CFULLREACS(245) = 'KR3=((2.8E+10*10.**(-TPK%PHR)+3.5E+10*exp(-720.*(1./TPK%T-1& + CFULLREACS(538) = 'KR3=((2.8E+10*10.**(-TPK%PHR)+3.5E+10*exp(-720.*(1./TPK%T-1& &./298.15))*1.6e-5)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_OH+WR_HO2--& &>' - CFULLREACS(246) = 'KR4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLEC& + CFULLREACS(539) = 'KR4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLEC& &RAIN::WR_H2O2+WR_OH-->WR_HO2' - CFULLREACS(247) = 'KR5=((8.3E+5*exp(-2700.*(1./TPK%T-1./298.15))*(10.**(-TPK%P& + CFULLREACS(540) = 'KR5=((8.3E+5*exp(-2700.*(1./TPK%T-1./298.15))*(10.**(-TPK%P& &HR))**2.+9.6E+7*exp(-910.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*1.6e-5)/(1.6e-& &5+10.**(-TPK%PHR))**2.)/TPK%MOL2MOLECRAIN::WR_HO2+WR_HO2-->WR_H2O2' - CFULLREACS(248) = 'KR6=(1.5E+9*exp(-1500.*(1./TPK%T-1./298.15))*1.6e-5/(1.6e-5& + CFULLREACS(541) = 'KR6=(1.5E+9*exp(-1500.*(1./TPK%T-1./298.15))*1.6e-5/(1.6e-5& &+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_O3+WR_HO2-->WR_OH' - CFULLREACS(249) = 'KR7=(2.7E+9*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-T& + CFULLREACS(542) = 'KR7=(2.7E+9*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-T& &PK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./& &298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PH& &R))**2.))/TPK%MOL2MOLECRAIN::WR_OH+WR_SO2-->WR_ASO3' - CFULLREACS(250) = 'KR8=(1.0E+10*10.**(-TPK%PHR)/(1.6e-3*exp(-1760.*(1./TPK%T-1& + CFULLREACS(543) = 'KR8=(1.0E+10*10.**(-TPK%PHR)/(1.6e-3*exp(-1760.*(1./TPK%T-1& &./298.15))+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_HONO+WR_OH-->WR_NO2' - CFULLREACS(251) = 'KR9=((1.8E+9*10.**(-TPK%PHR)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-& + CFULLREACS(544) = 'KR9=((1.8E+9*10.**(-TPK%PHR)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-& &TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_NO2+WR_HO2-->WR_HNO4' - CFULLREACS(252) = 'KR10=2.6E-2*10.**(-TPK%PHR)/(1.26e-6+10.**(-TPK%PHR))::WR_H& + CFULLREACS(545) = 'KR10=2.6E-2*10.**(-TPK%PHR)/(1.26e-6+10.**(-TPK%PHR))::WR_H& &NO4-->WR_HO2+WR_NO2' - CFULLREACS(253) = 'KR11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHR))::WR_HNO4-->WR_& + CFULLREACS(546) = 'KR11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHR))::WR_HNO4-->WR_& &HONO' - CFULLREACS(254) = 'KR12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(& + CFULLREACS(547) = 'KR12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(& &-TPK%PHR))**2./((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./T& &PK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**& &(-TPK%PHR))**2.)*(1.26e-6+10.**(-TPK%PHR))))/TPK%MOL2MOLECRAIN::WR_HNO4+WR_SO2& -&-->WR_SULF+WR_HNO3' - CFULLREACS(255) = 'KR13=!ZRATES(:,019)*2.2e+1/(2.2e+1+10.**(-TPK%PHR))::WR_HNO& +&-->WR_H2SO4+WR_HNO3' + CFULLREACS(548) = 'KR13=!ZRATES(:,025)*2.2e+1/(2.2e+1+10.**(-TPK%PHR))::WR_HNO& &3-->WR_NO2+WR_OH' - CFULLREACS(256) = 'KR14=1.0E+10::WR_N2O5-->WR_HNO3+WR_HNO3' - CFULLREACS(257) = 'KR15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK& -&%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_NO3+WR_SULF-->WR_HNO3+WR_A& -&SO4' - CFULLREACS(258) = 'KR16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(19& + CFULLREACS(549) = 'KR14=1.0E+10::WR_N2O5-->WR_HNO3+WR_HNO3' + CFULLREACS(550) = 'KR15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK& +&%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_NO3+WR_H2SO4-->WR_HNO3+WR_& +&ASO4' + CFULLREACS(551) = 'KR16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(19& &65.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.1& &5))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.1& &5))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_NO3+WR_SO2--& &>WR_HNO3+WR_ASO3' - CFULLREACS(259) = 'KR17=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& -&CRAIN::WR_MO2+WR_MO2-->2.00*WR_HCHO+2.00*WR_HO2' - CFULLREACS(260) = 'KR18=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-& -&TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1.& -&/298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%P& -&HR))**2.))/TPK%MOL2MOLECRAIN::WR_MO2+WR_SO2-->WR_OP1+WR_ASO3' - CFULLREACS(261) = 'KR19=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(403& -&0.*(1./TPK%T-1./298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2M& -&OLECRAIN::WR_HCHO+WR_OH-->WR_ORA1+WR_HO2' - CFULLREACS(262) = 'KR20=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%P& -&HR)+3.4E+9*exp(-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.1& -&5)))/(1.8e-4*exp(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAI& -&N::WR_ORA1+WR_OH-->WR_CO2+WR_HO2' - CFULLREACS(263) = 'KR21=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1& + CFULLREACS(552) = 'KR17=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1& &965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.& &15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.& &15)))/((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./2& &98.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR& &))**2.)*(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECRAIN::WR_SO2& &+WR_HCHO-->WR_AHMS' - CFULLREACS(264) = 'KR22=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*& + CFULLREACS(553) = 'KR18=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*& &EXP(-6716*(1./TPK%T-1./298.15))/10.**(-TPK%PHR)::WR_AHMS-->WR_SO2+WR_HCHO' - CFULLREACS(265) = 'KR23=3.0E+8/TPK%MOL2MOLECRAIN::WR_AHMS+WR_OH-->WR_HO2+WR_OR& + CFULLREACS(554) = 'KR19=3.0E+8/TPK%MOL2MOLECRAIN::WR_AHMS+WR_OH-->WR_HO2+WR_OR& &A1+WR_SO2' - CFULLREACS(266) = 'KR24=1.1E+9::WR_ASO3+W_O2-->WR_ASO5' - CFULLREACS(267) = 'KR25=(1.7E+9*10.**(-TPK%PHR)/(1.6e-5+10.**(-TPK%PHR)))/TPK%& + CFULLREACS(555) = 'KR20=1.1E+9::WR_ASO3+W_O2-->WR_ASO5' + CFULLREACS(556) = 'KR21=(1.7E+9*10.**(-TPK%PHR)/(1.6e-5+10.**(-TPK%PHR)))/TPK%& &MOL2MOLECRAIN::WR_ASO5+WR_HO2-->WR_AHSO5' - CFULLREACS(268) = 'KR26=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& + CFULLREACS(557) = 'KR22=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& &CRAIN::WR_ASO5+WR_ASO5-->WR_ASO4+WR_ASO4' - CFULLREACS(269) = 'KR27=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-& + CFULLREACS(558) = 'KR23=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-& &TPK%PHR)*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(14& &30.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PH& -&R)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_AHSO5+WR_SO2-->2.00*WR_SULF' - CFULLREACS(270) = 'KR28=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15))::WR_ASO4-->WR_& -&SULF+WR_OH' - CFULLREACS(271) = 'KR29=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1& +&R)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_AHSO5+WR_SO2-->2.00*WR_H2SO4' + CFULLREACS(559) = 'KR24=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15))::WR_ASO4-->WR_& +&H2SO4+WR_OH' + CFULLREACS(560) = 'KR25=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1& &965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.& &15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.& &15)))/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./29& &8.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR)& -&)**2.))/TPK%MOL2MOLECRAIN::WR_SO2+WR_O3-->WR_SULF' - CFULLREACS(272) = 'KR30=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(19& +&)**2.))/TPK%MOL2MOLECRAIN::WR_SO2+WR_O3-->WR_H2SO4' + CFULLREACS(561) = 'KR26=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(19& &65.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1& &./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1& &./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN:& -&:WR_SO2+WR_H2O2-->WR_SULF' +&:WR_SO2+WR_H2O2-->WR_H2SO4' + CFULLREACS(562) = 'KR27=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& +&CRAIN::WR_RO21+WR_RO21-->2.00*WR_HCHO+2.00*WR_HO2' + CFULLREACS(563) = 'KR28=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-& +&TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1.& +&/298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%P& +&HR))**2.))/TPK%MOL2MOLECRAIN::WR_RO21+WR_SO2-->WR_HCHO+WR_ASO3' + CFULLREACS(564) = 'KR29=1.5E+8/TPK%MOL2MOLECRAIN::WR_RO25+WR_RO25-->WR_ORA2+WR& +&_H2O2+WR_ALD2+WR_HO2' + CFULLREACS(565) = 'KR30=(1.7E+9*exp(-600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLEC& +&RAIN::WR_MEOH+WR_OH-->WR_HCHO+WR_HO2' + CFULLREACS(566) = 'KR31=(2.1E+9*exp(-1200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& +&CRAIN::WR_ETOH+WR_OH-->WR_ALD2+WR_HO2' + CFULLREACS(567) = 'KR32=(3.3E+9*exp(-1000.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& +&CRAIN::WR_ALCH+WR_OH-->0.50*WR_ALD2+0.50*WR_KETL+WR_HO2' + CFULLREACS(568) = 'KR33=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(403& +&0.*(1./TPK%T-1./298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2M& +&OLECRAIN::WR_HCHO+WR_OH-->WR_ORA1+WR_HO2' + CFULLREACS(569) = 'KR34=3.4E+9/TPK%MOL2MOLECRAIN::WR_ALD2+WR_OH-->0.50*WR_RO21& +&+0.50*WR_RO25+WR_CO2' + CFULLREACS(570) = 'KR35=(1.1E+9*exp(-1500.*(1./TPK%T-1./298.15))*3.9e3/(1.+3.9& +&e3))/TPK%MOL2MOLECRAIN::WR_GLY+WR_OH-->WR_RP16+WR_HO2' + CFULLREACS(571) = 'KR36=(7.9E+8*exp(-1600.*(1./TPK%T-1./298.15))*4.86e2/(1.+4.& +&86e2))/TPK%MOL2MOLECRAIN::WR_MGLY+WR_OH-->WR_UR21+WR_HO2' + CFULLREACS(572) = 'KR37=(8.9E+8*exp(-1400.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& +&CRAIN::WR_KETL+WR_OH-->WR_MGLY+WR_KETL+WR_HCHO+WR_UR21+WR_ALD2+WR_RO21+WR_CO2+& +&WR_H2O2+WR_HO2' + CFULLREACS(573) = 'KR38=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%P& +&HR)+3.4E+9*exp(-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.1& +&5)))/(1.8e-4*exp(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAI& +&N::WR_ORA1+WR_OH-->WR_CO2+WR_HO2' + CFULLREACS(574) = 'KR39=((1.5E+7*exp(-1300.*(1./TPK%T-1./298.15))*10.**(-TPK%P& +&HR)+1.0E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.75e-5)/(1.75e-5+10.**(-TPK%PHR))& +&)/TPK%MOL2MOLECRAIN::WR_ORA2+WR_OH-->WR_RP16+0.5*WR_H2O2' + CFULLREACS(575) = 'KR40=(3.2E+8*exp(-2300.*(1./TPK%T-1./298.15))*10.**(-TPK%PH& +&R)/(1.35e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ACID+WR_OH-->WR_RO25+WR_CO& +&2' + CFULLREACS(576) = 'KR41=(7.3E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.35e-5/(1.35& +&e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ACID+WR_OH-->0.56*WR_UR21+0.15*WR_& +&ACID2+0.29*WR_ALD2+0.29*WR_H2O2+0.11*WR_HO2' + CFULLREACS(577) = 'KR42=((4.7E+7*10.**(-TPK%PHR)*5.6E-2+7.7E+6*5.6E-2*5.4e-5)/& +&(5.6E-2*5.4E-5+5.4E-5*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAI& +&N::WR_UR28+WR_OH-->2*WR_CO2+WR_HO2' + CFULLREACS(578) = 'KR43=((1.2E+8*exp(-2800.*(1./TPK%T-1./298.15))*10.**(-TPK%P& +&HR)+7.0E+8*exp(-2300.*(1./TPK%T-1./298.15))*3.55E-3)/(3.55E-3+10.**(-TPK%PHR))& +&)/TPK%MOL2MOLECRAIN::WR_UR21+WR_OH-->0.56*WR_ACID2+0.43*WR_ALD2+0.43*WR_CO2+0.& +&3*WR_H2O2+0.81*WR_HO2' + CFULLREACS(579) = 'KR44=(3.6E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PH& +&R)/(10.**(-TPK%PHR)+3.2E-4))/TPK%MOL2MOLECRAIN::WR_RP16+WR_OH-->WR_UR28+WR_HO2& +&' + CFULLREACS(580) = 'KR45=(2.6E+9*exp(-4300.*(1./TPK%T-1./298.15))*3.2E-4/(10.**& +&(-TPK%PHR)+3.2E-4))/TPK%MOL2MOLECRAIN::WR_RP16+WR_OH-->2*WR_CO2+0.45*WR_H2O2+0& +&.71*WR_HO2' + CFULLREACS(581) = 'KR46=1.6E+7/TPK%MOL2MOLECRAIN::WR_ACID2+WR_OH-->' END IF IF (KVERB >= 5) THEN ! print information to KOUT @@ -3919,6 +7553,1640 @@ END SUBROUTINE CH_PRODLOSS ! !======================================================================== ! +!! ########################## + MODULE MODI_CH_PRODLOSS_GAZ +!! ########################## +INTERFACE +SUBROUTINE CH_PRODLOSS_GAZ(PTIME,PCONC,PPROD,PLOSS,KMI,KVECNPT,KEQ) +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ) :: PPROD, PLOSS +INTEGER, INTENT(IN) :: KMI +END SUBROUTINE CH_PRODLOSS_GAZ +END INTERFACE +END MODULE MODI_CH_PRODLOSS_GAZ +! +!======================================================================== +! +!! ################################################################## + SUBROUTINE CH_PRODLOSS_GAZ(PTIME,PCONC,PPROD,PLOSS,KMI,KVECNPT,KEQ) +!! ################################################################## +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +!! +!!*** *MODD_CH_PRODLOSS* +!! +!! PURPOSE +!! ------- +! calculation of production and loss terms for diagnostics +!! +!!** METHOD +!! ------ +!! The terms of temporal derivative of the chemical species, +!! written as: +!! d/dt PCONC = CH_FCN = PPROD - PCONC*PLOSS, +!! are calculated for diagnostic purposes. +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Karsten Suhre (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) +!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) +!! +!!---------------------------------------------------------------------- +!! +!! EXTERNAL +!! -------- +!! none +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +USE MODD_CH_M9_SCHEME +!! +!! EXPLICIT ARGUMENTS +!! ------------------ +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ) :: PPROD, PLOSS +INTEGER, INTENT(IN) :: KMI +TYPE(CCSTYPE), POINTER :: TPK +TPK=>TACCS(KMI) +! /BEGIN_CODE/ +TPK%OSD = ( +TPK%K016*PCONC(:,JP_O3) ) / & + ( +TPK%K017*TPK%H2O+TPK%K018A*TPK%N2(:)+TPK%K018B*TPK%O2(:) ) +! +TPK%O = ( +TPK%K001*PCONC(:,JP_NO2)+TPK%K014*PCONC(:,JP_NO3)+TPK%& +&K015*PCONC(:,JP_O3)+TPK%K018A*TPK%OSD*TPK%N2(:)+TPK%K018B*TPK%OSD*TPK%O2(:) ) / & +( +TPK%K002*TPK%O2(:)+TPK%K003*PCONC(:,JP_NO2)+TPK%K004*PCONC(:,JP_NO2)+TPK%K034*& +PCONC(:,JP_O3)+TPK%K038*PCONC(:,JP_NO)+TPK%K052*PCONC(:,JP_ETHE)+& +&TPK%K057*PCONC(:,JP_OLEL)+TPK%K067*PCONC(:,JP_ISOP)+TPK%K077*PCONC(:,& +&JP_OLEH)+TPK%K087*PCONC(:,JP_BIOL)+TPK%K091*PCONC(:,JP_BIOH)+TPK%K283& +&*PCONC(:,JP_MVK)+TPK%K284*PCONC(:,JP_MCR) ) +! +TPK%RO225 = ( TPK%K085*PCONC(:,JP_BIOL)*PCONC(:,JP_NO3) ) / & +( +TPK%K201*PCONC(:,JP_NO)+TPK%K202*PCONC(:,JP_RO2T)+TPK%K203*PCONC(:,JP_HO2)) +! +TPK%RO228 = ( TPK%K089*PCONC(:,JP_BIOH)*PCONC(:,JP_NO3) ) / & +( +TPK%K210*PCONC(:,JP_NO)+TPK%K211*PCONC(:,JP_RO2T)+TPK%K212*PCONC(:,JP_HO2)) + +! +TPK%RO253 = ( +0.41*TPK%K282*PCONC(:,JP_MCR)*PCONC(:,JP_O3) ) / & +( +TPK%K297*PCONC(:,JP_NO)+TPK%K298*PCONC(:,JP_HO2)+TPK%K299*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO254 = ( +TPK%K140*PCONC(:,JP_PAN6)+TPK%K297*TPK%RO253*& +&PCONC(:,JP_NO)+TPK%K298*TPK%RO253*PCONC(:,JP_HO2)+TPK%K299*& +&TPK%RO253*PCONC(:,JP_RO2T) ) / & +( +TPK%K131*PCONC(:,JP_NO2)+TPK%K300*PCONC(:,JP_NO)+TPK%K301*PCONC(& +&:,JP_HO2)+TPK%K302*PCONC(:,JP_RO2T) ) +! +TPK%RO213 = ( +0.271*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3) ) / & +( +TPK%K162*PCONC(:,JP_NO)+TPK%K163*PCONC(:,JP_RO2T)+TPK%K164*PCONC& +&(:,JP_HO2) ) +! +TPK%RO239 = ( +TPK%K137*PCONC(:,JP_PAN3)+TPK%K162*TPK%RO213*& +&PCONC(:,JP_NO)+TPK%K163*TPK%RO213*PCONC(:,JP_RO2T)+TPK%K164*TPK%RO213*PCONC(:,JP_HO2) ) / & +( +TPK%K128*PCONC(:,JP_NO2)+TPK%K165*PCONC(:,JP_NO)+TPK%K166*PCONC(& +&:,JP_HO2)+TPK%K167*PCONC(:,JP_RO2T) ) +! +TPK%RO248 = ( +TPK%K141*PCONC(:,JP_PAN4)+TPK%K274*PCONC(:,JP_MGLY)*P& +&CONC(:,JP_OH)+TPK%K278*PCONC(:,JP_MGLY)*PCONC(:,JP_NO3) ) / & +( +TPK%K129*PCONC(:,JP_NO2)+TPK%K277*PCONC(:,JP_NO)+TPK%K279*PCONC(& +&:,JP_HO2)+TPK%K280*PCONC(:,JP_RO2T) ) +! +TPK%RO249 = ( +TPK%K272*PCONC(:,JP_MVK)*PCONC(:,JP_OH) ) / & +( +TPK%K285*PCONC(:,JP_NO)+TPK%K286*PCONC(:,JP_RO2T)+TPK%K287*PCONC& +&(:,JP_HO2) ) +! +TPK%RO250 = ( +0.3750353*TPK%K139*PCONC(:,JP_APAN)+TPK%CF46*TPK%K2& +&73*PCONC(:,JP_MCR)*PCONC(:,JP_OH)+TPK%CF46*TPK%K275*PCONC(:,JP_MCR)*PCONC& +&(:,JP_NO3) ) / & +( +TPK%K130*PCONC(:,JP_NO2)+TPK%K288*PCONC(:,JP_NO)+TPK%K289*PCONC(& +&:,JP_HO2)+TPK%K290*PCONC(:,JP_RO2T) ) +! +TPK%RO214 = ( +0.095*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3)+TPK%K1& +&65*TPK%RO239*PCONC(:,JP_NO)+TPK%K167*TPK%RO239*PCONC(:,JP_R& +&O2T)+TPK%K288*TPK%RO250*PCONC(:,JP_NO)+TPK%K290*TPK%RO250& +&*PCONC(:,JP_RO2T) ) / & +( +TPK%K168*PCONC(:,JP_NO)+TPK%K169*PCONC(:,JP_RO2T)+TPK%K170*PCONC& +&(:,JP_HO2) ) +! +TPK%RO251 = ( +TPK%CF47*TPK%K273*PCONC(:,JP_MCR)*PCONC(:,JP_OH) ) / & +( +TPK%K291*PCONC(:,JP_NO)+TPK%K292*PCONC(:,JP_HO2)+TPK%K293*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO252 = ( +TPK%CF47*TPK%K275*PCONC(:,JP_MCR)*PCONC(:,JP_NO3) ) /& +( +TPK%K294*PCONC(:,JP_NO)+TPK%K295*PCONC(:,JP_HO2)+TPK%K296*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO258 = ( +TPK%K138*PCONC(:,JP_PN10)+TPK%K305*PCONC(:,JP_RP16)*P& +&CONC(:,JP_OH)+TPK%K338*PCONC(:,JP_RP16)*PCONC(:,JP_NO3) ) / & +( +TPK%K134*PCONC(:,JP_NO2)+TPK%K340*PCONC(:,JP_NO)+TPK%K341*PCONC(& +&:,JP_HO2)+TPK%K342*PCONC(:,JP_RO2T) ) +! +TPK%RO255 = ( +TPK%K304*PCONC(:,JP_RPR1)*PCONC(:,JP_OH)+TPK%K307*PCO& +&NC(:,JP_RPR1)*PCONC(:,JP_NO3)+TPK%K343*PCONC(:,JP_PAN7) ) / & +( +TPK%K132*PCONC(:,JP_NO2)+TPK%K309*PCONC(:,JP_NO)+TPK%K310*PCONC(& +&:,JP_HO2)+TPK%K311*PCONC(:,JP_RO2T) ) +! +TPK%RO256 = ( +TPK%K312*PCONC(:,JP_RPR3)*PCONC(:,JP_OH)+TPK%K313*PCO& +&NC(:,JP_RPR3)*PCONC(:,JP_NO3)+TPK%K317*PCONC(:,JP_PAN8) ) / & +( +TPK%K315*PCONC(:,JP_NO)+TPK%K316*PCONC(:,JP_NO2)+TPK%K318*PCONC(& +&:,JP_HO2)+TPK%K319*PCONC(:,JP_RO2T) ) +! +TPK%RO257 = ( +0.6249651*TPK%K139*PCONC(:,JP_APAN)+TPK%K324*PCONC(:,& +&JP_RPR8)*PCONC(:,JP_OH)+TPK%K327*PCONC(:,JP_RPR8)*PCONC(:,JP_NO3)+TPK%K3& +&30*PCONC(:,JP_RPR8) ) / & +( +TPK%K133*PCONC(:,JP_NO2)+TPK%K331*PCONC(:,JP_NO)+TPK%K332*PCONC(& +&:,JP_HO2)+TPK%K333*PCONC(:,JP_RO2T) ) +! +TPK%RO29 = ( +0.66*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH)+TPK%K329& +&*PCONC(:,JP_RPR8)+TPK%K331*TPK%RO257*PCONC(:,JP_NO)+TPK%K333*TPK%RO257*& +PCONC(:,JP_RO2T) ) / & +( +TPK%K150*PCONC(:,JP_NO)+TPK%K151*PCONC(:,JP_RO2T)+TPK%K152*PCONC& +&(:,JP_HO2) ) +! +!avoid division by zero in prodloss +WHERE (PCONC(:,JP_NO2)>0.) + TPK%RAD1 = ( +TPK%K072*PCONC(:,JP_AROO)*PCONC(:,JP_NO3) ) / & + ( +TPK%K103*PCONC(:,JP_NO2) ) +! + TPK%RAD8 = ( +TPK%K320*PCONC(:,JP_RPR4)*PCONC(:,JP_NO3) ) / & + ( +TPK%K321*PCONC(:,JP_NO2) ) +ELSEWHERE + TPK%RAD1 = 0. + TPK%RAD8 = 0. +ENDWHERE +! +TPK%RAD2 = ( +0.74*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & +( +TPK%K097+TPK%K104*PCONC(:,JP_NO2) ) +! +TPK%RAD3 = ( +0.74*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & +( +TPK%K098+TPK%K105*PCONC(:,JP_NO2) ) +! +TPK%RAD4 = ( +0.84*TPK%K080*PCONC(:,JP_AROH)*PCONC(:,JP_OH) ) / & +( +TPK%K099+TPK%K106*PCONC(:,JP_NO2) ) +! +TPK%RAD5 = ( +TPK%CF40*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) / & +( +TPK%K100+TPK%K107*PCONC(:,JP_NO2) ) +! +TPK%RAD6 = ( +0.74*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & +( +TPK%K101+TPK%K108*PCONC(:,JP_NO2) ) +! +TPK%RAD7 = ( +0.74*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & +( +TPK%K102+TPK%K109*PCONC(:,JP_NO2) ) +! +TPK%RO22 = ( +TPK%K049*PCONC(:,JP_ETHE)*PCONC(:,JP_OH)+TPK%CF2*TPK& +&%K053*PCONC(:,JP_ETOH)*PCONC(:,JP_OH)+TPK%K054*PCONC(:,JP_OLEL)*PCONC(:,JP_& +&OH)+TPK%K069*PCONC(:,JP_ALCH)*PCONC(:,JP_OH) ) / & +( +TPK%K113*PCONC(:,JP_NO)+TPK%K114*PCONC(:,JP_RO2T)+TPK%K115*PCONC& +&(:,JP_HO2) ) +! +TPK%RO23 = ( +TPK%K050*PCONC(:,JP_ETHE)*PCONC(:,JP_NO3)+TPK%K055*PCO& +&NC(:,JP_OLEL)*PCONC(:,JP_NO3) ) / & +( +TPK%K116*PCONC(:,JP_NO)+TPK%K117*PCONC(:,JP_RO2T)+TPK%K118*PCONC& +&(:,JP_HO2) ) +! +TPK%RO24 = ( +0.4*TPK%K052*PCONC(:,JP_ETHE)*TPK%O+0.1*TPK%K0& +&57*PCONC(:,JP_OLEL)*TPK%O+0.1*TPK%K077*PCONC(:,JP_OLEH)*& +&TPK%O+0.15*TPK%K283*PCONC(:,JP_MVK)*TPK%O ) / & +( +TPK%K119*PCONC(:,JP_NO)+TPK%K120*PCONC(:,JP_RO2T)+TPK%K121*PCONC& +&(:,JP_HO2) ) +! +TPK%RO26 = ( +TPK%K060*PCONC(:,JP_ALD2)*PCONC(:,JP_OH)+TPK%K061*PCON& +&C(:,JP_ALD2)*PCONC(:,JP_NO3)+TPK%K135*PCONC(:,JP_PAN1) ) / & +( +TPK%K125*PCONC(:,JP_NO)+TPK%K126*PCONC(:,JP_NO2)+TPK%K142*PCONC(& +&:,JP_HO2)+TPK%K143*PCONC(:,JP_RO2T) ) +! +TPK%RO27 = ( +TPK%K062*PCONC(:,JP_KETL)*PCONC(:,JP_OH)+TPK%CF8*TPK& +&%K168*TPK%RO214*PCONC(:,JP_NO)+TPK%K169*TPK%RO214*PCONC(:,J& +&P_RO2T)+TPK%K170*TPK%RO214*PCONC(:,JP_HO2)+0.15*TPK%K284*PCONC(:& +&,JP_MCR)*TPK%O ) / & +( +TPK%K144*PCONC(:,JP_NO)+TPK%K145*PCONC(:,JP_RO2T)+TPK%K146*PCONC& +&(:,JP_HO2) ) +! +TPK%RO210 = ( +0.34*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH) ) / & +( +TPK%K153*PCONC(:,JP_NO)+TPK%K154*PCONC(:,JP_RO2T)+TPK%K155*PCONC& +&(:,JP_HO2) ) +! +TPK%RO211 = ( +0.66*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & +( +TPK%K156*PCONC(:,JP_NO)+TPK%K157*PCONC(:,JP_RO2T)+TPK%K158*PCONC& +&(:,JP_HO2) ) +! +TPK%RO212 = ( +0.34*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & +( +TPK%K159*PCONC(:,JP_NO)+TPK%K160*PCONC(:,JP_RO2T)+TPK%K161*PCONC& +&(:,JP_HO2) ) +! +TPK%RO215 = ( +TPK%K068*PCONC(:,JP_MTBE)*PCONC(:,JP_OH) ) / & +( +TPK%K171*PCONC(:,JP_NO)+TPK%K172*PCONC(:,JP_RO2T)+TPK%K173*PCONC& +&(:,JP_HO2) ) +! +TPK%RO216 = ( +TPK%K070*PCONC(:,JP_KETH)*PCONC(:,JP_OH) ) / & +( +TPK%K174*PCONC(:,JP_NO)+TPK%K175*PCONC(:,JP_RO2T)+TPK%K176*PCONC& +&(:,JP_HO2) ) +! +TPK%RO217 = ( +0.1*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & +( +TPK%K177*PCONC(:,JP_NO)+TPK%K178*PCONC(:,JP_RO2T)+TPK%K179*PCONC& +&(:,JP_HO2) ) +! +TPK%RO220 = ( +0.28*TPK%K076*PCONC(:,JP_OLEH)*PCONC(:,JP_O3)+0.1*TPK& +&%K077*PCONC(:,JP_OLEH)*TPK%O+TPK%K078*PCONC(:,JP_ALKM)*PCONC(:,JP_O& +&H)+TPK%K308*PCONC(:,JP_RPR1)+TPK%K309*TPK%RO255*PCONC(:,JP_NO)+T& +&PK%K311*TPK%RO255*PCONC(:,JP_RO2T) ) / & +( +TPK%K186*PCONC(:,JP_NO)+TPK%K187*PCONC(:,JP_RO2T)+TPK%K188*PCONC& +&(:,JP_HO2) ) +! +TPK%RO218 = ( +TPK%K074*PCONC(:,JP_OLEH)*PCONC(:,JP_OH)+TPK%CF18*TPK%K186*& +TPK%RO220*PCONC(:,JP_NO)+TPK%K187*TPK%RO220*PCONC(:& +&,JP_RO2T)+TPK%K188*TPK%RO220*PCONC(:,JP_HO2) ) / & +( +TPK%K180*PCONC(:,JP_NO)+TPK%K181*PCONC(:,JP_RO2T)+TPK%K182*PCONC& +&(:,JP_HO2) ) +! +TPK%RO219 = ( +TPK%K075*PCONC(:,JP_OLEH)*PCONC(:,JP_NO3) ) / & +( +TPK%K183*PCONC(:,JP_NO)+TPK%K184*PCONC(:,JP_RO2T)+TPK%K185*PCONC& +&(:,JP_HO2) ) +! +TPK%RO221 = ( +0.1*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & +( +TPK%K189*PCONC(:,JP_NO)+TPK%K190*PCONC(:,JP_RO2T)+TPK%K191*PCONC& +&(:,JP_HO2) ) +! +TPK%RO222 = ( +TPK%CF45*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) /& +& & +( +TPK%K192*PCONC(:,JP_NO)+TPK%K193*PCONC(:,JP_RO2T)+TPK%K194*PCONC& +&(:,JP_HO2) ) +! +TPK%RO223 = ( +0.1*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & +( +TPK%K195*PCONC(:,JP_NO)+TPK%K196*PCONC(:,JP_RO2T)+TPK%K197*PCONC& +&(:,JP_HO2) ) +! +TPK%RO224 = ( +TPK%K084*PCONC(:,JP_BIOL)*PCONC(:,JP_OH) ) / & +( +TPK%K198*PCONC(:,JP_NO)+TPK%K199*PCONC(:,JP_RO2T)+TPK%K200*PCONC& +&(:,JP_HO2) ) +! +TPK%RO226 = ( +0.445*TPK%K086*PCONC(:,JP_BIOL)*PCONC(:,JP_O3) ) / & +( +TPK%K204*PCONC(:,JP_NO)+TPK%K205*PCONC(:,JP_RO2T)+TPK%K206*PCONC& +&(:,JP_HO2) ) +! +TPK%RO227 = ( +TPK%K088*PCONC(:,JP_BIOH)*PCONC(:,JP_OH) ) / & +( +TPK%K207*PCONC(:,JP_NO)+TPK%K208*PCONC(:,JP_RO2T)+TPK%K209*PCONC& +&(:,JP_HO2) ) +! +TPK%RO229 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & +( +TPK%K213*PCONC(:,JP_NO)+TPK%K214*PCONC(:,JP_RO2T)+TPK%K215*PCONC& +&(:,JP_HO2) ) +! +TPK%RO230 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & +( +TPK%K219*PCONC(:,JP_RO2T)+TPK%K220*PCONC(:,JP_HO2)+TPK%K344*PCON& +&C(:,JP_NO) ) +! +TPK%RO231 = ( +0.1*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & +( +TPK%K221*PCONC(:,JP_NO)+TPK%K222*PCONC(:,JP_RO2T)+TPK%K223*PCONC& +&(:,JP_HO2) ) +! +TPK%RO232 = ( +TPK%K093*PCONC(:,JP_ALKH)*PCONC(:,JP_OH) ) / & +( +TPK%K224*PCONC(:,JP_NO)+TPK%K225*PCONC(:,JP_RO2T)+TPK%K226*PCONC& +&(:,JP_HO2) ) +! +TPK%RO233 = ( +TPK%K097*TPK%RAD2 ) / & +( +TPK%K230+TPK%K231*PCONC(:,JP_NO)+TPK%K232*PCONC(:,JP_RO2T)+TPK%K233*& +PCONC(:,JP_HO2) ) +! +TPK%RO234 = ( +TPK%K098*TPK%RAD3 ) / & +( +TPK%K237+TPK%K238*PCONC(:,JP_NO)+TPK%K239*PCONC(:,JP_RO2T)+TPK%K240*& +PCONC(:,JP_HO2) ) +! +TPK%RO235 = ( +TPK%K099*TPK%RAD4 ) / & +( +TPK%K244+TPK%K245*PCONC(:,JP_NO)+TPK%K246*PCONC(:,JP_RO2T)+TPK%K247*& +PCONC(:,JP_HO2) ) +! +TPK%RO236 = ( +TPK%K100*TPK%RAD5 ) / & +( +TPK%K251+TPK%K252*PCONC(:,JP_NO)+TPK%K253*PCONC(:,JP_RO2T)+TPK%K254*& +PCONC(:,JP_HO2) ) +! +TPK%RO237 = ( +TPK%K101*TPK%RAD6 ) / & +( +TPK%K258+TPK%K259*PCONC(:,JP_NO)+TPK%K260*PCONC(:,JP_RO2T)+TPK%K261*& +PCONC(:,JP_HO2) ) +! +TPK%RO238 = ( +TPK%K102*TPK%RAD7 ) / & +( +TPK%K265+TPK%K266*PCONC(:,JP_NO)+TPK%K267*PCONC(:,JP_RO2T)+TPK%K268*& +PCONC(:,JP_HO2) ) +! +TPK%RO240 = ( +TPK%CF30*TPK%K213*TPK%RO229*PCONC(:,JP_NO)+TPK%K214*& +TPK%RO229*PCONC(:,JP_RO2T)+TPK%K215*TPK%RO229*PCON& +&C(:,JP_HO2) ) / & +( +TPK%K216*PCONC(:,JP_NO)+TPK%K217*PCONC(:,JP_RO2T)+TPK%K218*PCONC& +&(:,JP_HO2) ) +! +TPK%RO241 = ( +TPK%CF34*TPK%K224*TPK%RO232*PCONC(:,JP_NO)+TPK%K225*& +TPK%RO232*PCONC(:,JP_RO2T)+TPK%K226*TPK%RO232*PCON& +&C(:,JP_HO2) ) / & +( +TPK%K227*PCONC(:,JP_NO)+TPK%K228*PCONC(:,JP_RO2T)+TPK%K229*PCONC& +&(:,JP_HO2) ) +! +TPK%RO242 = ( +TPK%K230*TPK%RO233 ) / & +( +TPK%K234*PCONC(:,JP_NO)+TPK%K235*PCONC(:,JP_RO2T)+TPK%K236*PCONC& +&(:,JP_HO2) ) +! +TPK%RO243 = ( +TPK%K237*TPK%RO234 ) / & +( +TPK%K241*PCONC(:,JP_NO)+TPK%K242*PCONC(:,JP_RO2T)+TPK%K243*PCONC& +&(:,JP_HO2) ) +! +TPK%RO244 = ( +TPK%K244*TPK%RO235 ) / & +( +TPK%K248*PCONC(:,JP_NO)+TPK%K249*PCONC(:,JP_RO2T)+TPK%K250*PCONC& +&(:,JP_HO2) ) +! +TPK%RO245 = ( +TPK%K251*TPK%RO236 ) / & +( +TPK%K255*PCONC(:,JP_NO)+TPK%K256*PCONC(:,JP_RO2T)+TPK%K257*PCONC& +&(:,JP_HO2) ) +! +TPK%RO246 = ( +TPK%K258*TPK%RO237 ) / & +( +TPK%K262*PCONC(:,JP_NO)+TPK%K263*PCONC(:,JP_RO2T)+TPK%K264*PCONC& +&(:,JP_HO2) ) +! +TPK%RO247 = ( +TPK%K265*TPK%RO238 ) / & +( +TPK%K269*PCONC(:,JP_NO)+TPK%K270*PCONC(:,JP_RO2T)+TPK%K271*PCONC& +&(:,JP_HO2) ) +! +TPK%RO28 = ( +TPK%K063*PCONC(:,JP_KETL)+TPK%K071*PCONC(:,JP_KETH)+TP& +&K%K136*PCONC(:,JP_PAN2)+TPK%K144*TPK%RO27*PCONC(:,JP_NO)+TPK%& +&K145*TPK%RO27*PCONC(:,JP_RO2T)+TPK%K146*TPK%RO27*PCONC(:,JP& +&_HO2)+TPK%K174*TPK%RO216*PCONC(:,JP_NO)+TPK%K175*TPK%RO21& +&6*PCONC(:,JP_RO2T)+TPK%K176*TPK%RO216*PCONC(:,JP_HO2)+TPK%K204*& +&TPK%RO226*PCONC(:,JP_NO)+TPK%K205*TPK%RO226*PCONC(:,JP_RO2T)& +&+TPK%K206*TPK%RO226*PCONC(:,JP_HO2)+TPK%K216*TPK%RO240*& +&PCONC(:,JP_NO)+TPK%K217*TPK%RO240*PCONC(:,JP_RO2T)+TPK%K218*& +&TPK%RO240*PCONC(:,JP_HO2)+TPK%K219*TPK%RO230*PCONC(:,JP_RO2T)+T& +&PK%K220*TPK%RO230*PCONC(:,JP_HO2)+TPK%K276*PCONC(:,JP_MGLY)+TPK%K277*& +TPK%RO248*PCONC(:,JP_NO)+TPK%K280*TPK%RO248*PCONC(:& +&,JP_RO2T)+0.28*TPK%K281*PCONC(:,JP_MVK)*PCONC(:,JP_O3)+0.15*TPK%K283*PCO& +&NC(:,JP_MVK)*TPK%O+TPK%K344*TPK%RO230*PCONC(:,JP_NO) ) / & +( +TPK%K127*PCONC(:,JP_NO2)+TPK%K147*PCONC(:,JP_NO)+TPK%K148*PCONC(& +&:,JP_HO2)+TPK%K149*PCONC(:,JP_RO2T) ) +! +! /END_CODE/ +CALL SUB0 +CALL SUB1 +CALL SUB2 +CALL SUB3 +CALL SUB4 +CALL SUB5 +CALL SUB6 +CALL SUB7 +CALL SUB8 + +CONTAINS + +SUBROUTINE SUB0 +! +!Indices 1 a 10 +! +! +!PPROD(NO) = +K001*<NO2>+K003*<NO2>*<O>+K012*<NO3>*<NO2>+K013*<NO3>+0.9*K020*<H +!ONO>+K095*<NO>*<RO2T> + PPROD(:,1) = +TPK%K001(:)*PCONC(:,2)+TPK%K003(:)*PCONC(:,2)*TPK%O(:)+TPK%K012(& +&:)*PCONC(:,8)*PCONC(:,2)+TPK%K013(:)*PCONC(:,8)+0.9*TPK%K020(:)*PCONC(:,4)+TPK& +&%K095(:)*PCONC(:,1)*PCONC(:,85) +!PLOSS(NO) = +K005*<O3>+K007*<NO3>+K008*<NO>+K008*<NO>+K019*<OH>+K026*<HO2>+K03 +!8*<O>+K095*<RO2T>+K110*<RO21>+K113*<RO22>+K116*<RO23>+K119*<RO24>+K122*<RO25>+ +!K125*<RO26>+K144*<RO27>+K147*<RO28>+K150*<RO29>+K153*<RO210>+K156*<RO211>+K159 +!*<RO212>+K162*<RO213>+K165*<RO239>+K168*<RO214>+K171*<RO215>+K174*<RO216>+K177 +!*<RO217>+K180*<RO218>+K183*<RO219>+K186*<RO220>+K189*<RO221>+K192*<RO222>+K195 +!*<RO223>+K198*<RO224>+K201*<RO225>+K204*<RO226>+K207*<RO227>+K210*<RO228>+K213 +!*<RO229>+K216*<RO240>+K221*<RO231>+K224*<RO232>+K227*<RO241>+K231*<RO233>+K234 +!*<RO242>+K238*<RO234>+K241*<RO243>+K245*<RO235>+K248*<RO244>+K252*<RO236>+K255 +!*<RO245>+K259*<RO237>+K262*<RO246>+K266*<RO238>+K269*<RO247>+K277*<RO248>+K285 +!*<RO249>+K288*<RO250>+K291*<RO251>+K294*<RO252>+K297*<RO253>+K300*<RO254>+K309 +!*<RO255>+K315*<RO256>+K331*<RO257>+K340*<RO258>+K344*<RO230> + PLOSS(:,1) = +TPK%K005(:)*PCONC(:,3)+TPK%K007(:)*PCONC(:,8)+TPK%K008(:)*PCONC(& +&:,1)+TPK%K008(:)*PCONC(:,1)+TPK%K019(:)*PCONC(:,15)+TPK%K026(:)*PCONC(:,10)+TP& +&K%K038(:)*TPK%O(:)+TPK%K095(:)*PCONC(:,85)+TPK%K110(:)*PCONC(:,86)+TPK%K113(:)& +&*TPK%RO22(:)+TPK%K116(:)*TPK%RO23(:)+TPK%K119(:)*TPK%RO24(:)+TPK%K122(:)*PCONC& +&(:,87)+TPK%K125(:)*TPK%RO26(:)+TPK%K144(:)*TPK%RO27(:)+TPK%K147(:)*TPK%RO28(:)& +&+TPK%K150(:)*TPK%RO29(:)+TPK%K153(:)*TPK%RO210(:)+TPK%K156(:)*TPK%RO211(:)+TPK& +&%K159(:)*TPK%RO212(:)+TPK%K162(:)*TPK%RO213(:)+TPK%K165(:)*TPK%RO239(:)+TPK%K1& +&68(:)*TPK%RO214(:)+TPK%K171(:)*TPK%RO215(:)+TPK%K174(:)*TPK%RO216(:)+TPK%K177(& +&:)*TPK%RO217(:)+TPK%K180(:)*TPK%RO218(:)+TPK%K183(:)*TPK%RO219(:)+TPK%K186(:)*& +&TPK%RO220(:)+TPK%K189(:)*TPK%RO221(:)+TPK%K192(:)*TPK%RO222(:)+TPK%K195(:)*TPK& +&%RO223(:)+TPK%K198(:)*TPK%RO224(:)+TPK%K201(:)*TPK%RO225(:)+TPK%K204(:)*TPK%RO& +&226(:)+TPK%K207(:)*TPK%RO227(:)+TPK%K210(:)*TPK%RO228(:)+TPK%K213(:)*TPK%RO229& +&(:)+TPK%K216(:)*TPK%RO240(:)+TPK%K221(:)*TPK%RO231(:)+TPK%K224(:)*TPK%RO232(:)& +&+TPK%K227(:)*TPK%RO241(:)+TPK%K231(:)*TPK%RO233(:)+TPK%K234(:)*TPK%RO242(:)+TP& +&K%K238(:)*TPK%RO234(:)+TPK%K241(:)*TPK%RO243(:)+TPK%K245(:)*TPK%RO235(:)+TPK%K& +&248(:)*TPK%RO244(:)+TPK%K252(:)*TPK%RO236(:)+TPK%K255(:)*TPK%RO245(:)+TPK%K259& +&(:)*TPK%RO237(:)+TPK%K262(:)*TPK%RO246(:)+TPK%K266(:)*TPK%RO238(:)+TPK%K269(:)& +&*TPK%RO247(:)+TPK%K277(:)*TPK%RO248(:)+TPK%K285(:)*TPK%RO249(:)+TPK%K288(:)*TP& +&K%RO250(:)+TPK%K291(:)*TPK%RO251(:)+TPK%K294(:)*TPK%RO252(:)+TPK%K297(:)*TPK%R& +&O253(:)+TPK%K300(:)*TPK%RO254(:)+TPK%K309(:)*TPK%RO255(:)+TPK%K315(:)*TPK%RO25& +&6(:)+TPK%K331(:)*TPK%RO257(:)+TPK%K340(:)*TPK%RO258(:)+TPK%K344(:)*TPK%RO230(:& +&) +! +!PPROD(NO2) = +K005*<O3>*<NO>+2.*K007*<NO3>*<NO>+2.*K008*<NO>*<NO>+K010*<N2O5>+ +!K012*<NO3>*<NO2>+K014*<NO3>+0.1*K020*<HONO>+K026*<HO2>*<NO>+K028*<HNO4>+K029*< +!OH>*<HNO4>+0.8*K033*<HO2>*<NO3>+K038*<NO>*<O>+K039*<OH>*<HONO>+K040*<OH>*<NO3> +!+2.*K041*<NO3>*<NO3>+K110*<NO>*<RO21>+K113*<NO>*<RO22>+2.*K116*<NO>*<RO23>+K11 +!7*<RO2T>*<RO23>+K118*<HO2>*<RO23>+K119*<NO>*<RO24>+TPK%CF4*K122*<NO>*<RO25>+K1 +!25*<NO>*<RO26>+K135*<PAN1>+K136*<PAN2>+K137*<PAN3>+K138*<PN10>+1.0000000*K139* +!<APAN>+K140*<PAN6>+K141*<PAN4>+K144*<NO>*<RO27>+K147*<NO>*<RO28>+TPK%CF6*K150* +!<NO>*<RO29>+K153*<NO>*<RO210>+2.*K156*<NO>*<RO211>+K157*<RO2T>*<RO211>+K158*<H +!O2>*<RO211>+2.*K159*<NO>*<RO212>+K160*<RO2T>*<RO212>+K161*<HO2>*<RO212>+K162*< +!NO>*<RO213>+K165*<NO>*<RO239>+TPK%CF8*K168*<NO>*<RO214>+K171*<NO>*<RO215>+K174 +!*<NO>*<RO216>+TPK%CF22*K177*<NO>*<RO217>+TPK%CF20*K180*<NO>*<RO218>+2.*K183*<N +!O>*<RO219>+K184*<RO2T>*<RO219>+K185*<HO2>*<RO219>+TPK%CF18*K186*<NO>*<RO220>+T +!PK%CF24*K189*<NO>*<RO221>+TPK%CF42*K192*<NO>*<RO222>+TPK%CF44*K195*<NO>*<RO223 +!>+TPK%CF26*K198*<NO>*<RO224>+2.*K201*<NO>*<RO225>+K202*<RO2T>*<RO225>+K203*<HO +!2>*<RO225>+K204*<NO>*<RO226>+TPK%CF28*K207*<NO>*<RO227>+2.*K210*<NO>*<RO228>+K +!211*<RO2T>*<RO228>+K212*<HO2>*<RO228>+TPK%CF30*K213*<NO>*<RO229>+K216*<NO>*<RO +!240>+TPK%CF32*K221*<NO>*<RO231>+TPK%CF34*K224*<NO>*<RO232>+TPK%CF36*K227*<NO>* +!<RO241>+K231*<NO>*<RO233>+K234*<NO>*<RO242>+K238*<NO>*<RO234>+K241*<NO>*<RO243 +!>+K245*<NO>*<RO235>+K248*<NO>*<RO244>+K252*<NO>*<RO236>+K255*<NO>*<RO245>+K259 +!*<NO>*<RO237>+K262*<NO>*<RO246>+K266*<NO>*<RO238>+K269*<NO>*<RO247>+K277*<NO>* +!<RO248>+K285*<NO>*<RO249>+K288*<NO>*<RO250>+K291*<NO>*<RO251>+2.*K294*<NO>*<RO +!252>+K295*<HO2>*<RO252>+K296*<RO2T>*<RO252>+K297*<NO>*<RO253>+K300*<NO>*<RO254 +!>+K309*<NO>*<RO255>+K315*<NO>*<RO256>+K317*<PAN8>+K331*<NO>*<RO257>+K340*<NO>* +!<RO258>+K343*<PAN7>+K344*<NO>*<RO230> + PPROD(:,2) = +TPK%K005(:)*PCONC(:,3)*PCONC(:,1)+2.*TPK%K007(:)*PCONC(:,8)*PCON& +&C(:,1)+2.*TPK%K008(:)*PCONC(:,1)*PCONC(:,1)+TPK%K010(:)*PCONC(:,7)+TPK%K012(:)& +&*PCONC(:,8)*PCONC(:,2)+TPK%K014(:)*PCONC(:,8)+0.1*TPK%K020(:)*PCONC(:,4)+TPK%K& +&026(:)*PCONC(:,10)*PCONC(:,1)+TPK%K028(:)*PCONC(:,6)+TPK%K029(:)*PCONC(:,15)*P& +&CONC(:,6)+0.8*TPK%K033(:)*PCONC(:,10)*PCONC(:,8)+TPK%K038(:)*PCONC(:,1)*TPK%O(& +&:)+TPK%K039(:)*PCONC(:,15)*PCONC(:,4)+TPK%K040(:)*PCONC(:,15)*PCONC(:,8)+2.*TP& +&K%K041(:)*PCONC(:,8)*PCONC(:,8)+TPK%K110(:)*PCONC(:,1)*PCONC(:,86)+TPK%K113(:)& +&*PCONC(:,1)*TPK%RO22(:)+2.*TPK%K116(:)*PCONC(:,1)*TPK%RO23(:)+TPK%K117(:)*PCON& +&C(:,85)*TPK%RO23(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO23(:)+TPK%K119(:)*PCONC(:,1)& +&*TPK%RO24(:)+TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87)+TPK%K125(:)*PCONC(:,1)& +&*TPK%RO26(:)+TPK%K135(:)*PCONC(:,77)+TPK%K136(:)*PCONC(:,78)+TPK%K137(:)*PCONC& +&(:,79)+TPK%K138(:)*PCONC(:,84)+1.0000000*TPK%K139(:)*PCONC(:,76)+TPK%K140(:)*P& +&CONC(:,81)+TPK%K141(:)*PCONC(:,80)+TPK%K144(:)*PCONC(:,1)*TPK%RO27(:)+TPK%K147& +&(:)*PCONC(:,1)*TPK%RO28(:)+TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:)+TPK%K153& +&(:)*PCONC(:,1)*TPK%RO210(:)+2.*TPK%K156(:)*PCONC(:,1)*TPK%RO211(:)+TPK%K157(:)& +&*PCONC(:,85)*TPK%RO211(:)+TPK%K158(:)*PCONC(:,10)*TPK%RO211(:)+2.*TPK%K159(:)*& +&PCONC(:,1)*TPK%RO212(:)+TPK%K160(:)*PCONC(:,85)*TPK%RO212(:)+TPK%K161(:)*PCONC& +&(:,10)*TPK%RO212(:)+TPK%K162(:)*PCONC(:,1)*TPK%RO213(:)+TPK%K165(:)*PCONC(:,1)& +&*TPK%RO239(:)+TPK%CF8*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:)+TPK%K171(:)*PCONC(:,& +&1)*TPK%RO215(:)+TPK%K174(:)*PCONC(:,1)*TPK%RO216(:)+TPK%CF22*TPK%K177(:)*PCONC& +&(:,1)*TPK%RO217(:)+TPK%CF20*TPK%K180(:)*PCONC(:,1)*TPK%RO218(:)+2.*TPK%K183(:)& +&*PCONC(:,1)*TPK%RO219(:)+TPK%K184(:)*PCONC(:,85)*TPK%RO219(:)+TPK%K185(:)*PCON& +&C(:,10)*TPK%RO219(:)+TPK%CF18*TPK%K186(:)*PCONC(:,1)*TPK%RO220(:)+TPK%CF24*TPK& +&%K189(:)*PCONC(:,1)*TPK%RO221(:)+TPK%CF42*TPK%K192(:)*PCONC(:,1)*TPK%RO222(:)+& +&TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:)+TPK%CF26*TPK%K198(:)*PCONC(:,1)*T& +&PK%RO224(:)+2.*TPK%K201(:)*PCONC(:,1)*TPK%RO225(:)+TPK%K202(:)*PCONC(:,85)*TPK& +&%RO225(:)+TPK%K203(:)*PCONC(:,10)*TPK%RO225(:)+TPK%K204(:)*PCONC(:,1)*TPK%RO22& +&6(:)+TPK%CF28*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:)+2.*TPK%K210(:)*PCONC(:,1)*TP& +&K%RO228(:)+TPK%K211(:)*PCONC(:,85)*TPK%RO228(:)+TPK%K212(:)*PCONC(:,10)*TPK%RO& +&228(:)+TPK%CF30*TPK%K213(:)*PCONC(:,1)*TPK%RO229(:)+TPK%K216(:)*PCONC(:,1)*TPK& +&%RO240(:)+TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:)+TPK%CF34*TPK%K224(:)*PC& +&ONC(:,1)*TPK%RO232(:)+TPK%CF36*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:)+TPK%K231(:)& +&*PCONC(:,1)*TPK%RO233(:)+TPK%K234(:)*PCONC(:,1)*TPK%RO242(:)+TPK%K238(:)*PCONC& +&(:,1)*TPK%RO234(:)+TPK%K241(:)*PCONC(:,1)*TPK%RO243(:)+TPK%K245(:)*PCONC(:,1)*& +&TPK%RO235(:)+TPK%K248(:)*PCONC(:,1)*TPK%RO244(:)+TPK%K252(:)*PCONC(:,1)*TPK%RO& +&236(:)+TPK%K255(:)*PCONC(:,1)*TPK%RO245(:)+TPK%K259(:)*PCONC(:,1)*TPK%RO237(:)& +&+TPK%K262(:)*PCONC(:,1)*TPK%RO246(:)+TPK%K266(:)*PCONC(:,1)*TPK%RO238(:)+TPK%K& +&269(:)*PCONC(:,1)*TPK%RO247(:)+TPK%K277(:)*PCONC(:,1)*TPK%RO248(:)+TPK%K285(:)& +&*PCONC(:,1)*TPK%RO249(:)+TPK%K288(:)*PCONC(:,1)*TPK%RO250(:)+TPK%K291(:)*PCONC& +&(:,1)*TPK%RO251(:)+2.*TPK%K294(:)*PCONC(:,1)*TPK%RO252(:)+TPK%K295(:)*PCONC(:,& +&10)*TPK%RO252(:)+TPK%K296(:)*PCONC(:,85)*TPK%RO252(:)+TPK%K297(:)*PCONC(:,1)*T& +&PK%RO253(:)+TPK%K300(:)*PCONC(:,1)*TPK%RO254(:)+TPK%K309(:)*PCONC(:,1)*TPK%RO2& +&55(:)+TPK%K315(:)*PCONC(:,1)*TPK%RO256(:)+TPK%K317(:)*PCONC(:,83)+TPK%K331(:)*& +&PCONC(:,1)*TPK%RO257(:)+TPK%K340(:)*PCONC(:,1)*TPK%RO258(:)+TPK%K343(:)*PCONC(& +&:,82)+TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) +!PLOSS(NO2) = +K001+K003*<O>+K004*<O>+K006*<O3>+K009*<NO3>+K012*<NO3>+K021*<H2O +!>+K022*<OH>+K027*<HO2>+K103*<RAD1>+K104*<RAD2>+K105*<RAD3>+K106*<RAD4>+K107*<R +!AD5>+K108*<RAD6>+K109*<RAD7>+K126*<RO26>+K127*<RO28>+K128*<RO239>+K129*<RO248> +!+K130*<RO250>+K131*<RO254>+K132*<RO255>+K133*<RO257>+K134*<RO258>+K316*<RO256> +!+K321*<RAD8> + PLOSS(:,2) = +TPK%K001(:)+TPK%K003(:)*TPK%O(:)+TPK%K004(:)*TPK%O(:)+TPK%K006(:& +&)*PCONC(:,3)+TPK%K009(:)*PCONC(:,8)+TPK%K012(:)*PCONC(:,8)+TPK%K021(:)*TPK%H2O& +&(:)+TPK%K022(:)*PCONC(:,15)+TPK%K027(:)*PCONC(:,10)+TPK%K103(:)*TPK%RAD1(:)+TP& +&K%K104(:)*TPK%RAD2(:)+TPK%K105(:)*TPK%RAD3(:)+TPK%K106(:)*TPK%RAD4(:)+TPK%K107& +&(:)*TPK%RAD5(:)+TPK%K108(:)*TPK%RAD6(:)+TPK%K109(:)*TPK%RAD7(:)+TPK%K126(:)*TP& +&K%RO26(:)+TPK%K127(:)*TPK%RO28(:)+TPK%K128(:)*TPK%RO239(:)+TPK%K129(:)*TPK%RO2& +&48(:)+TPK%K130(:)*TPK%RO250(:)+TPK%K131(:)*TPK%RO254(:)+TPK%K132(:)*TPK%RO255(& +&:)+TPK%K133(:)*TPK%RO257(:)+TPK%K134(:)*TPK%RO258(:)+TPK%K316(:)*TPK%RO256(:)+& +&TPK%K321(:)*TPK%RAD8(:) +! +!PPROD(O3) = +K002*<O2>*<O>+K081*<NO3>*<ARAL>+TPK%CF39*K082*<OH>*<ARAL>+K142*<H +!O2>*<RO26>+K148*<HO2>*<RO28>+K166*<HO2>*<RO239>+K279*<HO2>*<RO248>+K289*<HO2>* +!<RO250>+K301*<HO2>*<RO254>+K303*<OH>*<RPR5>+1.0000011*K306*<OH>*<RPRL>+K310*<H +!O2>*<RO255>+K318*<HO2>*<RO256>+K322*<OH>*<RPR7>+1.0000005*K323*<OH>*<RPG7>+K32 +!6*<OH>*<RP11>+K332*<HO2>*<RO257>+1.0000000*K334*<OH>*<RPG3>+1.0000000*K335*<OH +!>*<RPG2>+K337*<OH>*<RP18>+K341*<HO2>*<RO258> + PPROD(:,3) = +TPK%K002(:)*TPK%O2(:)*TPK%O(:)+TPK%K081(:)*PCONC(:,8)*PCONC(:,25& +&)+TPK%CF39*TPK%K082(:)*PCONC(:,15)*PCONC(:,25)+TPK%K142(:)*PCONC(:,10)*TPK%RO2& +&6(:)+TPK%K148(:)*PCONC(:,10)*TPK%RO28(:)+TPK%K166(:)*PCONC(:,10)*TPK%RO239(:)+& +&TPK%K279(:)*PCONC(:,10)*TPK%RO248(:)+TPK%K289(:)*PCONC(:,10)*TPK%RO250(:)+TPK%& +&K301(:)*PCONC(:,10)*TPK%RO254(:)+TPK%K303(:)*PCONC(:,15)*PCONC(:,70)+1.0000011& +&*TPK%K306(:)*PCONC(:,15)*PCONC(:,75)+TPK%K310(:)*PCONC(:,10)*TPK%RO255(:)+TPK%& +&K318(:)*PCONC(:,10)*TPK%RO256(:)+TPK%K322(:)*PCONC(:,15)*PCONC(:,62)+1.0000005& +&*TPK%K323(:)*PCONC(:,15)*PCONC(:,63)+TPK%K326(:)*PCONC(:,15)*PCONC(:,73)+TPK%K& +&332(:)*PCONC(:,10)*TPK%RO257(:)+1.0000000*TPK%K334(:)*PCONC(:,15)*PCONC(:,52)+& +&1.0000000*TPK%K335(:)*PCONC(:,15)*PCONC(:,50)+TPK%K337(:)*PCONC(:,15)*PCONC(:,& +&51)+TPK%K341(:)*PCONC(:,10)*TPK%RO258(:) +!PLOSS(O3) = +K005*<NO>+K006*<NO2>+K015+K016+K025*<OH>+K030*<HO2>+K034*<O>+K051 +!*<ETHE>+K056*<OLEL>+K066*<ISOP>+K076*<OLEH>+K086*<BIOL>+K090*<BIOH>+K281*<MVK> +!+K282*<MCR> + PLOSS(:,3) = +TPK%K005(:)*PCONC(:,1)+TPK%K006(:)*PCONC(:,2)+TPK%K015(:)+TPK%K0& +&16(:)+TPK%K025(:)*PCONC(:,15)+TPK%K030(:)*PCONC(:,10)+TPK%K034(:)*TPK%O(:)+TPK& +&%K051(:)*PCONC(:,16)+TPK%K056(:)*PCONC(:,17)+TPK%K066(:)*PCONC(:,35)+TPK%K076(& +&:)*PCONC(:,18)+TPK%K086(:)*PCONC(:,36)+TPK%K090(:)*PCONC(:,37)+TPK%K281(:)*PCO& +&NC(:,39)+TPK%K282(:)*PCONC(:,40) +! +!PPROD(HONO) = +K019*<OH>*<NO>+0.5*K021*<H2O>*<NO2> + PPROD(:,4) = +TPK%K019(:)*PCONC(:,15)*PCONC(:,1)+0.5*TPK%K021(:)*TPK%H2O(:)*PC& +&ONC(:,2) +!PLOSS(HONO) = +K020+K039*<OH> + PLOSS(:,4) = +TPK%K020(:)+TPK%K039(:)*PCONC(:,15) +! +!PPROD(HNO3) = +2.*K011*<H2O>*<N2O5>+0.5*K021*<H2O>*<NO2>+K022*<OH>*<NO2>+0.2*K +!033*<HO2>*<NO3>+K047*<NO3>*<HCHO>+K061*<NO3>*<ALD2>+K072*<NO3>*<AROO>+K081*<NO +!3>*<ARAL>+TPK%CF46*K275*<NO3>*<MCR>+K278*<NO3>*<MGLY>+K307*<NO3>*<RPR1>+K313*< +!NO3>*<RPR3>+K320*<NO3>*<RPR4>+K327*<NO3>*<RPR8>+K338*<NO3>*<RP16> + PPROD(:,5) = +2.*TPK%K011(:)*TPK%H2O(:)*PCONC(:,7)+0.5*TPK%K021(:)*TPK%H2O(:)*& +&PCONC(:,2)+TPK%K022(:)*PCONC(:,15)*PCONC(:,2)+0.2*TPK%K033(:)*PCONC(:,10)*PCON& +&C(:,8)+TPK%K047(:)*PCONC(:,8)*PCONC(:,28)+TPK%K061(:)*PCONC(:,8)*PCONC(:,29)+T& +&PK%K072(:)*PCONC(:,8)*PCONC(:,24)+TPK%K081(:)*PCONC(:,8)*PCONC(:,25)+TPK%CF46*& +&TPK%K275(:)*PCONC(:,8)*PCONC(:,40)+TPK%K278(:)*PCONC(:,8)*PCONC(:,41)+TPK%K307& +&(:)*PCONC(:,8)*PCONC(:,69)+TPK%K313(:)*PCONC(:,8)*PCONC(:,57)+TPK%K320(:)*PCON& +&C(:,8)*PCONC(:,61)+TPK%K327(:)*PCONC(:,8)*PCONC(:,71)+TPK%K338(:)*PCONC(:,8)*P& +&CONC(:,74) +!PLOSS(HNO3) = +K023*<OH> + PLOSS(:,5) = +TPK%K023(:)*PCONC(:,15) +! +!PPROD(HNO4) = +K027*<HO2>*<NO2> + PPROD(:,6) = +TPK%K027(:)*PCONC(:,10)*PCONC(:,2) +!PLOSS(HNO4) = +K028+K029*<OH> + PLOSS(:,6) = +TPK%K028(:)+TPK%K029(:)*PCONC(:,15) +! +!PPROD(N2O5) = +K009*<NO3>*<NO2> + PPROD(:,7) = +TPK%K009(:)*PCONC(:,8)*PCONC(:,2) +!PLOSS(N2O5) = +K010+K011*<H2O> + PLOSS(:,7) = +TPK%K010(:)+TPK%K011(:)*TPK%H2O(:) +! +!PPROD(NO3) = +K004*<NO2>*<O>+K006*<O3>*<NO2>+K010*<N2O5>+K023*<OH>*<HNO3> + PPROD(:,8) = +TPK%K004(:)*PCONC(:,2)*TPK%O(:)+TPK%K006(:)*PCONC(:,3)*PCONC(:,2& +&)+TPK%K010(:)*PCONC(:,7)+TPK%K023(:)*PCONC(:,15)*PCONC(:,5) +!PLOSS(NO3) = +K007*<NO>+K009*<NO2>+K012*<NO2>+K013+K014+K033*<HO2>+K040*<OH>+K +!041*<NO3>+K041*<NO3>+K047*<HCHO>+K050*<ETHE>+K055*<OLEL>+K061*<ALD2>+K065*<ISO +!P>+K072*<AROO>+K075*<OLEH>+K081*<ARAL>+K085*<BIOL>+K089*<BIOH>+K275*<MCR>+K278 +!*<MGLY>+K307*<RPR1>+K313*<RPR3>+K320*<RPR4>+K327*<RPR8>+K338*<RP16> + PLOSS(:,8) = +TPK%K007(:)*PCONC(:,1)+TPK%K009(:)*PCONC(:,2)+TPK%K012(:)*PCONC(& +&:,2)+TPK%K013(:)+TPK%K014(:)+TPK%K033(:)*PCONC(:,10)+TPK%K040(:)*PCONC(:,15)+T& +&PK%K041(:)*PCONC(:,8)+TPK%K041(:)*PCONC(:,8)+TPK%K047(:)*PCONC(:,28)+TPK%K050(& +&:)*PCONC(:,16)+TPK%K055(:)*PCONC(:,17)+TPK%K061(:)*PCONC(:,29)+TPK%K065(:)*PCO& +&NC(:,35)+TPK%K072(:)*PCONC(:,24)+TPK%K075(:)*PCONC(:,18)+TPK%K081(:)*PCONC(:,2& +&5)+TPK%K085(:)*PCONC(:,36)+TPK%K089(:)*PCONC(:,37)+TPK%K275(:)*PCONC(:,40)+TPK& +&%K278(:)*PCONC(:,41)+TPK%K307(:)*PCONC(:,69)+TPK%K313(:)*PCONC(:,57)+TPK%K320(& +&:)*PCONC(:,61)+TPK%K327(:)*PCONC(:,71)+TPK%K338(:)*PCONC(:,74) +! +!PPROD(NH3) = 0.0 + PPROD(:,9) = 0.0 +!PLOSS(NH3) = +K345*<OH> + PLOSS(:,9) = +TPK%K345(:)*PCONC(:,15) +! +!PPROD(HO2) = +0.1*K020*<HONO>+K024*<OH>*<CO>+K025*<OH>*<O3>+K028*<HNO4>+K035*< +!OH>*<SO2>+K037*<OH>*<H2O2>+K040*<OH>*<NO3>+2.0*K044*<HCHO>+K046*<OH>*<HCHO>+K0 +!47*<NO3>*<HCHO>+K048*<OH>*<MEOH>+0.06*K051*<O3>*<ETHE>+K052*<O>*<ETHE>+TPK%CF1 +!*K053*<OH>*<ETOH>+0.28*K056*<O3>*<OLEL>+K059*<ALD2>+0.366*K066*<O3>*<ISOP>+0.1 +!6*K073*<OH>*<AROO>+0.28*K076*<O3>*<OLEH>+0.16*K079*<OH>*<AROL>+0.16*K080*<OH>* +!<AROH>+TPK%CF48*K082*<OH>*<ARAL>+0.16*K083*<OH>*<ARAC>+0.445*K086*<O3>*<BIOL>+ +!0.16*K092*<OH>*<PAH>+K094*<HO2>*<RO2T>+K110*<NO>*<RO21>+K111*<RO2T>*<RO21>+K11 +!2*<HO2>*<RO21>+K113*<NO>*<RO22>+K114*<RO2T>*<RO22>+K115*<HO2>*<RO22>+K117*<RO2 +!T>*<RO23>+K118*<HO2>*<RO23>+K119*<NO>*<RO24>+K120*<RO2T>*<RO24>+K121*<HO2>*<RO +!24>+TPK%CF4*K122*<NO>*<RO25>+K123*<RO2T>*<RO25>+K124*<HO2>*<RO25>+TPK%CF6*K150 +!*<NO>*<RO29>+K151*<RO2T>*<RO29>+K152*<HO2>*<RO29>+K153*<NO>*<RO210>+K154*<RO2T +!>*<RO210>+K155*<HO2>*<RO210>+K171*<NO>*<RO215>+K172*<RO2T>*<RO215>+K173*<HO2>* +!<RO215>+TPK%CF22*K177*<NO>*<RO217>+K178*<RO2T>*<RO217>+K179*<HO2>*<RO217>+TPK% +!CF20*K180*<NO>*<RO218>+K181*<RO2T>*<RO218>+K182*<HO2>*<RO218>+TPK%CF24*K189*<N +!O>*<RO221>+K190*<RO2T>*<RO221>+K191*<HO2>*<RO221>+TPK%CF42*K192*<NO>*<RO222>+K +!193*<RO2T>*<RO222>+K194*<HO2>*<RO222>+TPK%CF44*K195*<NO>*<RO223>+K196*<RO2T>*< +!RO223>+K197*<HO2>*<RO223>+TPK%CF26*K198*<NO>*<RO224>+K199*<RO2T>*<RO224>+K200* +!<HO2>*<RO224>+TPK%CF28*K207*<NO>*<RO227>+K208*<RO2T>*<RO227>+K209*<HO2>*<RO227 +!>+TPK%CF32*K221*<NO>*<RO231>+K222*<RO2T>*<RO231>+K223*<HO2>*<RO231>+TPK%CF36*K +!227*<NO>*<RO241>+K228*<RO2T>*<RO241>+K229*<HO2>*<RO241>+K231*<NO>*<RO233>+K232 +!*<RO2T>*<RO233>+K233*<HO2>*<RO233>+K234*<NO>*<RO242>+K235*<RO2T>*<RO242>+K236* +!<HO2>*<RO242>+K238*<NO>*<RO234>+K239*<RO2T>*<RO234>+K240*<HO2>*<RO234>+K241*<N +!O>*<RO243>+K242*<RO2T>*<RO243>+K243*<HO2>*<RO243>+K245*<NO>*<RO235>+K246*<RO2T +!>*<RO235>+K247*<HO2>*<RO235>+K248*<NO>*<RO244>+K249*<RO2T>*<RO244>+K250*<HO2>* +!<RO244>+K252*<NO>*<RO236>+K253*<RO2T>*<RO236>+K254*<HO2>*<RO236>+K255*<NO>*<RO +!245>+K256*<RO2T>*<RO245>+K257*<HO2>*<RO245>+K259*<NO>*<RO237>+K260*<RO2T>*<RO2 +!37>+K261*<HO2>*<RO237>+K262*<NO>*<RO246>+K263*<RO2T>*<RO246>+K264*<HO2>*<RO246 +!>+K266*<NO>*<RO238>+K267*<RO2T>*<RO238>+K268*<HO2>*<RO238>+K269*<NO>*<RO247>+K +!270*<RO2T>*<RO247>+K271*<HO2>*<RO247>+K276*<MGLY>+0.28*K281*<O3>*<MVK>+0.41*K2 +!82*<O3>*<MCR>+0.15*K284*<O>*<MCR>+K285*<NO>*<RO249>+K286*<RO2T>*<RO249>+K287*< +!HO2>*<RO249>+K291*<NO>*<RO251>+K292*<HO2>*<RO251>+K293*<RO2T>*<RO251>+K300*<NO +!>*<RO254>+K302*<RO2T>*<RO254>+K308*<RPR1>+2.*K314*<RPR3>+K315*<NO>*<RO256>+K31 +!9*<RO2T>*<RO256>+K325*<OH>*<RP10>+K329*<RPR8>+K330*<RPR8>+K339*<RP16>+K347*<OH +!>*<ORA1> + PPROD(:,10) = +0.1*TPK%K020(:)*PCONC(:,4)+TPK%K024(:)*PCONC(:,15)*PCONC(:,11)+& +&TPK%K025(:)*PCONC(:,15)*PCONC(:,3)+TPK%K028(:)*PCONC(:,6)+TPK%K035(:)*PCONC(:,& +&15)*PCONC(:,13)+TPK%K037(:)*PCONC(:,15)*PCONC(:,12)+TPK%K040(:)*PCONC(:,15)*PC& +&ONC(:,8)+2.0*TPK%K044(:)*PCONC(:,28)+TPK%K046(:)*PCONC(:,15)*PCONC(:,28)+TPK%K& +&047(:)*PCONC(:,8)*PCONC(:,28)+TPK%K048(:)*PCONC(:,15)*PCONC(:,32)+0.06*TPK%K05& +&1(:)*PCONC(:,3)*PCONC(:,16)+TPK%K052(:)*TPK%O(:)*PCONC(:,16)+TPK%CF1*TPK%K053(& +&:)*PCONC(:,15)*PCONC(:,33)+0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+TPK%K059(:)& +&*PCONC(:,29)+0.366*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+0.16*TPK%K073(:)*PCONC(:& +&,15)*PCONC(:,24)+0.28*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+0.16*TPK%K079(:)*PCON& +&C(:,15)*PCONC(:,23)+0.16*TPK%K080(:)*PCONC(:,15)*PCONC(:,22)+TPK%CF48*TPK%K082& +&(:)*PCONC(:,15)*PCONC(:,25)+0.16*TPK%K083(:)*PCONC(:,15)*PCONC(:,26)+0.445*TPK& +&%K086(:)*PCONC(:,3)*PCONC(:,36)+0.16*TPK%K092(:)*PCONC(:,15)*PCONC(:,27)+TPK%K& +&094(:)*PCONC(:,10)*PCONC(:,85)+TPK%K110(:)*PCONC(:,1)*PCONC(:,86)+TPK%K111(:)*& +&PCONC(:,85)*PCONC(:,86)+TPK%K112(:)*PCONC(:,10)*PCONC(:,86)+TPK%K113(:)*PCONC(& +&:,1)*TPK%RO22(:)+TPK%K114(:)*PCONC(:,85)*TPK%RO22(:)+TPK%K115(:)*PCONC(:,10)*T& +&PK%RO22(:)+TPK%K117(:)*PCONC(:,85)*TPK%RO23(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO2& +&3(:)+TPK%K119(:)*PCONC(:,1)*TPK%RO24(:)+TPK%K120(:)*PCONC(:,85)*TPK%RO24(:)+TP& +&K%K121(:)*PCONC(:,10)*TPK%RO24(:)+TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87)+T& +&PK%K123(:)*PCONC(:,85)*PCONC(:,87)+TPK%K124(:)*PCONC(:,10)*PCONC(:,87)+TPK%CF6& +&*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:)+TPK%K151(:)*PCONC(:,85)*TPK%RO29(:)+TPK%K1& +&52(:)*PCONC(:,10)*TPK%RO29(:)+TPK%K153(:)*PCONC(:,1)*TPK%RO210(:)+TPK%K154(:)*& +&PCONC(:,85)*TPK%RO210(:)+TPK%K155(:)*PCONC(:,10)*TPK%RO210(:)+TPK%K171(:)*PCON& +&C(:,1)*TPK%RO215(:)+TPK%K172(:)*PCONC(:,85)*TPK%RO215(:)+TPK%K173(:)*PCONC(:,1& +&0)*TPK%RO215(:)+TPK%CF22*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:)+TPK%K178(:)*PCONC& +&(:,85)*TPK%RO217(:)+TPK%K179(:)*PCONC(:,10)*TPK%RO217(:)+TPK%CF20*TPK%K180(:)*& +&PCONC(:,1)*TPK%RO218(:)+TPK%K181(:)*PCONC(:,85)*TPK%RO218(:)+TPK%K182(:)*PCONC& +&(:,10)*TPK%RO218(:)+TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:)+TPK%K190(:)*P& +&CONC(:,85)*TPK%RO221(:)+TPK%K191(:)*PCONC(:,10)*TPK%RO221(:)+TPK%CF42*TPK%K192& +&(:)*PCONC(:,1)*TPK%RO222(:)+TPK%K193(:)*PCONC(:,85)*TPK%RO222(:)+TPK%K194(:)*P& +&CONC(:,10)*TPK%RO222(:)+TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:)+TPK%K196(& +&:)*PCONC(:,85)*TPK%RO223(:)+TPK%K197(:)*PCONC(:,10)*TPK%RO223(:)+TPK%CF26*TPK%& +&K198(:)*PCONC(:,1)*TPK%RO224(:)+TPK%K199(:)*PCONC(:,85)*TPK%RO224(:)+TPK%K200(& +&:)*PCONC(:,10)*TPK%RO224(:)+TPK%CF28*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:)+TPK%K& +&208(:)*PCONC(:,85)*TPK%RO227(:)+TPK%K209(:)*PCONC(:,10)*TPK%RO227(:)+TPK%CF32*& +&TPK%K221(:)*PCONC(:,1)*TPK%RO231(:)+TPK%K222(:)*PCONC(:,85)*TPK%RO231(:)+TPK%K& +&223(:)*PCONC(:,10)*TPK%RO231(:)+TPK%CF36*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:)+T& +&PK%K228(:)*PCONC(:,85)*TPK%RO241(:)+TPK%K229(:)*PCONC(:,10)*TPK%RO241(:)+TPK%K& +&231(:)*PCONC(:,1)*TPK%RO233(:)+TPK%K232(:)*PCONC(:,85)*TPK%RO233(:)+TPK%K233(:& +&)*PCONC(:,10)*TPK%RO233(:)+TPK%K234(:)*PCONC(:,1)*TPK%RO242(:)+TPK%K235(:)*PCO& +&NC(:,85)*TPK%RO242(:)+TPK%K236(:)*PCONC(:,10)*TPK%RO242(:)+TPK%K238(:)*PCONC(:& +&,1)*TPK%RO234(:)+TPK%K239(:)*PCONC(:,85)*TPK%RO234(:)+TPK%K240(:)*PCONC(:,10)*& +&TPK%RO234(:)+TPK%K241(:)*PCONC(:,1)*TPK%RO243(:)+TPK%K242(:)*PCONC(:,85)*TPK%R& +&O243(:)+TPK%K243(:)*PCONC(:,10)*TPK%RO243(:)+TPK%K245(:)*PCONC(:,1)*TPK%RO235(& +&:)+TPK%K246(:)*PCONC(:,85)*TPK%RO235(:)+TPK%K247(:)*PCONC(:,10)*TPK%RO235(:)+T& +&PK%K248(:)*PCONC(:,1)*TPK%RO244(:)+TPK%K249(:)*PCONC(:,85)*TPK%RO244(:)+TPK%K2& +&50(:)*PCONC(:,10)*TPK%RO244(:)+TPK%K252(:)*PCONC(:,1)*TPK%RO236(:)+TPK%K253(:)& +&*PCONC(:,85)*TPK%RO236(:)+TPK%K254(:)*PCONC(:,10)*TPK%RO236(:)+TPK%K255(:)*PCO& +&NC(:,1)*TPK%RO245(:)+TPK%K256(:)*PCONC(:,85)*TPK%RO245(:)+TPK%K257(:)*PCONC(:,& +&10)*TPK%RO245(:)+TPK%K259(:)*PCONC(:,1)*TPK%RO237(:)+TPK%K260(:)*PCONC(:,85)*T& +&PK%RO237(:)+TPK%K261(:)*PCONC(:,10)*TPK%RO237(:)+TPK%K262(:)*PCONC(:,1)*TPK%RO& +&246(:)+TPK%K263(:)*PCONC(:,85)*TPK%RO246(:)+TPK%K264(:)*PCONC(:,10)*TPK%RO246(& +&:)+TPK%K266(:)*PCONC(:,1)*TPK%RO238(:)+TPK%K267(:)*PCONC(:,85)*TPK%RO238(:)+TP& +&K%K268(:)*PCONC(:,10)*TPK%RO238(:)+TPK%K269(:)*PCONC(:,1)*TPK%RO247(:)+TPK%K27& +&0(:)*PCONC(:,85)*TPK%RO247(:)+TPK%K271(:)*PCONC(:,10)*TPK%RO247(:)+TPK%K276(:)& +&*PCONC(:,41)+0.28*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.41*TPK%K282(:)*PCONC(:,& +&3)*PCONC(:,40)+0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40)+TPK%K285(:)*PCONC(:,1)*TP& +&K%RO249(:)+TPK%K286(:)*PCONC(:,85)*TPK%RO249(:)+TPK%K287(:)*PCONC(:,10)*TPK%RO& +&249(:)+TPK%K291(:)*PCONC(:,1)*TPK%RO251(:)+TPK%K292(:)*PCONC(:,10)*TPK%RO251(:& +&)+TPK%K293(:)*PCONC(:,85)*TPK%RO251(:)+TPK%K300(:)*PCONC(:,1)*TPK%RO254(:)+TPK& +&%K302(:)*PCONC(:,85)*TPK%RO254(:)+TPK%K308(:)*PCONC(:,69)+2.*TPK%K314(:)*PCONC& +&(:,57)+TPK%K315(:)*PCONC(:,1)*TPK%RO256(:)+TPK%K319(:)*PCONC(:,85)*TPK%RO256(:& +&)+TPK%K325(:)*PCONC(:,15)*PCONC(:,72)+TPK%K329(:)*PCONC(:,71)+TPK%K330(:)*PCON& +&C(:,71)+TPK%K339(:)*PCONC(:,74)+TPK%K347(:)*PCONC(:,15)*PCONC(:,43) +!PLOSS(HO2) = +K026*<NO>+K027*<NO2>+K030*<O3>+K031*<HO2>+K031*<HO2>+K032*<H2O>* +!<HO2>+K032*<H2O>*<HO2>+K033*<NO3>+K042*<OH>+K094*<RO2T>+K112*<RO21>+K115*<RO22 +!>+K118*<RO23>+K121*<RO24>+K124*<RO25>+K142*<RO26>+K146*<RO27>+K148*<RO28>+K152 +!*<RO29>+K155*<RO210>+K158*<RO211>+K161*<RO212>+K164*<RO213>+K166*<RO239>+K170* +!<RO214>+K173*<RO215>+K176*<RO216>+K179*<RO217>+K182*<RO218>+K185*<RO219>+K188* +!<RO220>+K191*<RO221>+K194*<RO222>+K197*<RO223>+K200*<RO224>+K203*<RO225>+K206* +!<RO226>+K209*<RO227>+K212*<RO228>+K215*<RO229>+K218*<RO240>+K220*<RO230>+K223* +!<RO231>+K226*<RO232>+K229*<RO241>+K233*<RO233>+K236*<RO242>+K240*<RO234>+K243* +!<RO243>+K247*<RO235>+K250*<RO244>+K254*<RO236>+K257*<RO245>+K261*<RO237>+K264* +!<RO246>+K268*<RO238>+K271*<RO247>+K279*<RO248>+K287*<RO249>+K289*<RO250>+K292* +!<RO251>+K295*<RO252>+K298*<RO253>+K301*<RO254>+K310*<RO255>+K318*<RO256>+K332* +!<RO257>+K341*<RO258> + PLOSS(:,10) = +TPK%K026(:)*PCONC(:,1)+TPK%K027(:)*PCONC(:,2)+TPK%K030(:)*PCONC& +&(:,3)+TPK%K031(:)*PCONC(:,10)+TPK%K031(:)*PCONC(:,10)+TPK%K032(:)*TPK%H2O(:)*P& +&CONC(:,10)+TPK%K032(:)*TPK%H2O(:)*PCONC(:,10)+TPK%K033(:)*PCONC(:,8)+TPK%K042(& +&:)*PCONC(:,15)+TPK%K094(:)*PCONC(:,85)+TPK%K112(:)*PCONC(:,86)+TPK%K115(:)*TPK& +&%RO22(:)+TPK%K118(:)*TPK%RO23(:)+TPK%K121(:)*TPK%RO24(:)+TPK%K124(:)*PCONC(:,8& +&7)+TPK%K142(:)*TPK%RO26(:)+TPK%K146(:)*TPK%RO27(:)+TPK%K148(:)*TPK%RO28(:)+TPK& +&%K152(:)*TPK%RO29(:)+TPK%K155(:)*TPK%RO210(:)+TPK%K158(:)*TPK%RO211(:)+TPK%K16& +&1(:)*TPK%RO212(:)+TPK%K164(:)*TPK%RO213(:)+TPK%K166(:)*TPK%RO239(:)+TPK%K170(:& +&)*TPK%RO214(:)+TPK%K173(:)*TPK%RO215(:)+TPK%K176(:)*TPK%RO216(:)+TPK%K179(:)*T& +&PK%RO217(:)+TPK%K182(:)*TPK%RO218(:)+TPK%K185(:)*TPK%RO219(:)+TPK%K188(:)*TPK%& +&RO220(:)+TPK%K191(:)*TPK%RO221(:)+TPK%K194(:)*TPK%RO222(:)+TPK%K197(:)*TPK%RO2& +&23(:)+TPK%K200(:)*TPK%RO224(:)+TPK%K203(:)*TPK%RO225(:)+TPK%K206(:)*TPK%RO226(& +&:)+TPK%K209(:)*TPK%RO227(:)+TPK%K212(:)*TPK%RO228(:)+TPK%K215(:)*TPK%RO229(:)+& +&TPK%K218(:)*TPK%RO240(:)+TPK%K220(:)*TPK%RO230(:)+TPK%K223(:)*TPK%RO231(:)+TPK& +&%K226(:)*TPK%RO232(:)+TPK%K229(:)*TPK%RO241(:)+TPK%K233(:)*TPK%RO233(:)+TPK%K2& +&36(:)*TPK%RO242(:)+TPK%K240(:)*TPK%RO234(:)+TPK%K243(:)*TPK%RO243(:)+TPK%K247(& +&:)*TPK%RO235(:)+TPK%K250(:)*TPK%RO244(:)+TPK%K254(:)*TPK%RO236(:)+TPK%K257(:)*& +&TPK%RO245(:)+TPK%K261(:)*TPK%RO237(:)+TPK%K264(:)*TPK%RO246(:)+TPK%K268(:)*TPK& +&%RO238(:)+TPK%K271(:)*TPK%RO247(:)+TPK%K279(:)*TPK%RO248(:)+TPK%K287(:)*TPK%RO& +&249(:)+TPK%K289(:)*TPK%RO250(:)+TPK%K292(:)*TPK%RO251(:)+TPK%K295(:)*TPK%RO252& +&(:)+TPK%K298(:)*TPK%RO253(:)+TPK%K301(:)*TPK%RO254(:)+TPK%K310(:)*TPK%RO255(:)& +&+TPK%K318(:)*TPK%RO256(:)+TPK%K332(:)*TPK%RO257(:)+TPK%K341(:)*TPK%RO258(:) +! +RETURN +END SUBROUTINE SUB0 +! +SUBROUTINE SUB1 +! +!Indices 11 a 20 +! +! +!PPROD(CO) = +K044*<HCHO>+K045*<HCHO>+K046*<OH>*<HCHO>+K047*<NO3>*<HCHO>+0.315* +!K051*<O3>*<ETHE>+0.6*K052*<O>*<ETHE>+0.56*K056*<O3>*<OLEL>+K059*<ALD2>+0.461*K +!066*<O3>*<ISOP>+0.56*K076*<O3>*<OLEH>+0.445*K086*<O3>*<BIOL>+0.445*K090*<O3>*< +!BIOH>+K119*<NO>*<RO24>+K120*<RO2T>*<RO24>+K121*<HO2>*<RO24>+K276*<MGLY>+0.56*K +!281*<O3>*<MVK>+0.41*K282*<O3>*<MCR>+0.15*K284*<O>*<MCR>+K300*<NO>*<RO254>+K302 +!*<RO2T>*<RO254>+K308*<RPR1>+K314*<RPR3>+K329*<RPR8>+2.*K339*<RP16>+K340*<NO>*< +!RO258>+K342*<RO2T>*<RO258> + PPROD(:,11) = +TPK%K044(:)*PCONC(:,28)+TPK%K045(:)*PCONC(:,28)+TPK%K046(:)*PCO& +&NC(:,15)*PCONC(:,28)+TPK%K047(:)*PCONC(:,8)*PCONC(:,28)+0.315*TPK%K051(:)*PCON& +&C(:,3)*PCONC(:,16)+0.6*TPK%K052(:)*TPK%O(:)*PCONC(:,16)+0.56*TPK%K056(:)*PCONC& +&(:,3)*PCONC(:,17)+TPK%K059(:)*PCONC(:,29)+0.461*TPK%K066(:)*PCONC(:,3)*PCONC(:& +&,35)+0.56*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+0.445*TPK%K086(:)*PCONC(:,3)*PCON& +&C(:,36)+0.445*TPK%K090(:)*PCONC(:,3)*PCONC(:,37)+TPK%K119(:)*PCONC(:,1)*TPK%RO& +&24(:)+TPK%K120(:)*PCONC(:,85)*TPK%RO24(:)+TPK%K121(:)*PCONC(:,10)*TPK%RO24(:)+& +&TPK%K276(:)*PCONC(:,41)+0.56*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.41*TPK%K282(& +&:)*PCONC(:,3)*PCONC(:,40)+0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40)+TPK%K300(:)*PC& +&ONC(:,1)*TPK%RO254(:)+TPK%K302(:)*PCONC(:,85)*TPK%RO254(:)+TPK%K308(:)*PCONC(:& +&,69)+TPK%K314(:)*PCONC(:,57)+TPK%K329(:)*PCONC(:,71)+2.*TPK%K339(:)*PCONC(:,74& +&)+TPK%K340(:)*PCONC(:,1)*TPK%RO258(:)+TPK%K342(:)*PCONC(:,85)*TPK%RO258(:) +!PLOSS(CO) = +K024*<OH> + PLOSS(:,11) = +TPK%K024(:)*PCONC(:,15) +! +!PPROD(H2O2) = +K031*<HO2>*<HO2>+K032*<HO2>*<H2O>*<HO2>+0.055*K086*<O3>*<BIOL>+ +!0.055*K090*<O3>*<BIOH> + PPROD(:,12) = +TPK%K031(:)*PCONC(:,10)*PCONC(:,10)+TPK%K032(:)*PCONC(:,10)*TPK& +&%H2O(:)*PCONC(:,10)+0.055*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)+0.055*TPK%K090(:)& +&*PCONC(:,3)*PCONC(:,37) +!PLOSS(H2O2) = +K036+K037*<OH> + PLOSS(:,12) = +TPK%K036(:)+TPK%K037(:)*PCONC(:,15) +! +!PPROD(SO2) = 0.0 + PPROD(:,13) = 0.0 +!PLOSS(SO2) = +K035*<OH> + PLOSS(:,13) = +TPK%K035(:)*PCONC(:,15) +! +!PPROD(H2SO4) = +K035*<OH>*<SO2> + PPROD(:,14) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,13) +!PLOSS(H2SO4) = +K346 + PLOSS(:,14) = +TPK%K346(:) +! +!PPROD(OH) = +K017*<H2O>*<OSD>+K017*<H2O>*<OSD>+0.9*K020*<HONO>+K026*<HO2>*<NO> +!+K030*<HO2>*<O3>+0.8*K033*<HO2>*<NO3>+2.*K036*<H2O2>+0.06*K051*<O3>*<ETHE>+0.3 +!6*K056*<O3>*<OLEL>+0.664*K066*<O3>*<ISOP>+0.36*K076*<O3>*<OLEH>+0.89*K086*<O3> +!*<BIOL>+0.89*K090*<O3>*<BIOH>+K112*<HO2>*<RO21>+K115*<HO2>*<RO22>+K118*<HO2>*< +!RO23>+K121*<HO2>*<RO24>+K124*<HO2>*<RO25>+K146*<HO2>*<RO27>+K152*<HO2>*<RO29>+ +!K155*<HO2>*<RO210>+K158*<HO2>*<RO211>+K161*<HO2>*<RO212>+K164*<HO2>*<RO213>+K1 +!70*<HO2>*<RO214>+K173*<HO2>*<RO215>+K176*<HO2>*<RO216>+K179*<HO2>*<RO217>+K182 +!*<HO2>*<RO218>+K185*<HO2>*<RO219>+K188*<HO2>*<RO220>+K191*<HO2>*<RO221>+K194*< +!HO2>*<RO222>+K197*<HO2>*<RO223>+K200*<HO2>*<RO224>+K203*<HO2>*<RO225>+K206*<HO +!2>*<RO226>+K209*<HO2>*<RO227>+K212*<HO2>*<RO228>+K215*<HO2>*<RO229>+K218*<HO2> +!*<RO240>+K220*<HO2>*<RO230>+K223*<HO2>*<RO231>+K226*<HO2>*<RO232>+K229*<HO2>*< +!RO241>+K233*<HO2>*<RO233>+K236*<HO2>*<RO242>+K240*<HO2>*<RO234>+K243*<HO2>*<RO +!243>+K247*<HO2>*<RO235>+K250*<HO2>*<RO244>+K254*<HO2>*<RO236>+K257*<HO2>*<RO24 +!5>+K261*<HO2>*<RO237>+K264*<HO2>*<RO246>+K268*<HO2>*<RO238>+K271*<HO2>*<RO247> +!+0.36*K281*<O3>*<MVK>+0.82*K282*<O3>*<MCR>+K287*<HO2>*<RO249>+K293*<RO2T>*<RO2 +!51>+K296*<RO2T>*<RO252>+K299*<RO2T>*<RO253>+K339*<RP16>+K340*<NO>*<RO258>+K342 +!*<RO2T>*<RO258> + PPROD(:,15) = +TPK%K017(:)*TPK%H2O(:)*TPK%OSD(:)+TPK%K017(:)*TPK%H2O(:)*TPK%OS& +&D(:)+0.9*TPK%K020(:)*PCONC(:,4)+TPK%K026(:)*PCONC(:,10)*PCONC(:,1)+TPK%K030(:)& +&*PCONC(:,10)*PCONC(:,3)+0.8*TPK%K033(:)*PCONC(:,10)*PCONC(:,8)+2.*TPK%K036(:)*& +&PCONC(:,12)+0.06*TPK%K051(:)*PCONC(:,3)*PCONC(:,16)+0.36*TPK%K056(:)*PCONC(:,3& +&)*PCONC(:,17)+0.664*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+0.36*TPK%K076(:)*PCONC(& +&:,3)*PCONC(:,18)+0.89*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)+0.89*TPK%K090(:)*PCON& +&C(:,3)*PCONC(:,37)+TPK%K112(:)*PCONC(:,10)*PCONC(:,86)+TPK%K115(:)*PCONC(:,10)& +&*TPK%RO22(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO23(:)+TPK%K121(:)*PCONC(:,10)*TPK%R& +&O24(:)+TPK%K124(:)*PCONC(:,10)*PCONC(:,87)+TPK%K146(:)*PCONC(:,10)*TPK%RO27(:)& +&+TPK%K152(:)*PCONC(:,10)*TPK%RO29(:)+TPK%K155(:)*PCONC(:,10)*TPK%RO210(:)+TPK%& +&K158(:)*PCONC(:,10)*TPK%RO211(:)+TPK%K161(:)*PCONC(:,10)*TPK%RO212(:)+TPK%K164& +&(:)*PCONC(:,10)*TPK%RO213(:)+TPK%K170(:)*PCONC(:,10)*TPK%RO214(:)+TPK%K173(:)*& +&PCONC(:,10)*TPK%RO215(:)+TPK%K176(:)*PCONC(:,10)*TPK%RO216(:)+TPK%K179(:)*PCON& +&C(:,10)*TPK%RO217(:)+TPK%K182(:)*PCONC(:,10)*TPK%RO218(:)+TPK%K185(:)*PCONC(:,& +&10)*TPK%RO219(:)+TPK%K188(:)*PCONC(:,10)*TPK%RO220(:)+TPK%K191(:)*PCONC(:,10)*& +&TPK%RO221(:)+TPK%K194(:)*PCONC(:,10)*TPK%RO222(:)+TPK%K197(:)*PCONC(:,10)*TPK%& +&RO223(:)+TPK%K200(:)*PCONC(:,10)*TPK%RO224(:)+TPK%K203(:)*PCONC(:,10)*TPK%RO22& +&5(:)+TPK%K206(:)*PCONC(:,10)*TPK%RO226(:)+TPK%K209(:)*PCONC(:,10)*TPK%RO227(:)& +&+TPK%K212(:)*PCONC(:,10)*TPK%RO228(:)+TPK%K215(:)*PCONC(:,10)*TPK%RO229(:)+TPK& +&%K218(:)*PCONC(:,10)*TPK%RO240(:)+TPK%K220(:)*PCONC(:,10)*TPK%RO230(:)+TPK%K22& +&3(:)*PCONC(:,10)*TPK%RO231(:)+TPK%K226(:)*PCONC(:,10)*TPK%RO232(:)+TPK%K229(:)& +&*PCONC(:,10)*TPK%RO241(:)+TPK%K233(:)*PCONC(:,10)*TPK%RO233(:)+TPK%K236(:)*PCO& +&NC(:,10)*TPK%RO242(:)+TPK%K240(:)*PCONC(:,10)*TPK%RO234(:)+TPK%K243(:)*PCONC(:& +&,10)*TPK%RO243(:)+TPK%K247(:)*PCONC(:,10)*TPK%RO235(:)+TPK%K250(:)*PCONC(:,10)& +&*TPK%RO244(:)+TPK%K254(:)*PCONC(:,10)*TPK%RO236(:)+TPK%K257(:)*PCONC(:,10)*TPK& +&%RO245(:)+TPK%K261(:)*PCONC(:,10)*TPK%RO237(:)+TPK%K264(:)*PCONC(:,10)*TPK%RO2& +&46(:)+TPK%K268(:)*PCONC(:,10)*TPK%RO238(:)+TPK%K271(:)*PCONC(:,10)*TPK%RO247(:& +&)+0.36*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.82*TPK%K282(:)*PCONC(:,3)*PCONC(:,& +&40)+TPK%K287(:)*PCONC(:,10)*TPK%RO249(:)+TPK%K293(:)*PCONC(:,85)*TPK%RO251(:)+& +&TPK%K296(:)*PCONC(:,85)*TPK%RO252(:)+TPK%K299(:)*PCONC(:,85)*TPK%RO253(:)+TPK%& +&K339(:)*PCONC(:,74)+TPK%K340(:)*PCONC(:,1)*TPK%RO258(:)+TPK%K342(:)*PCONC(:,85& +&)*TPK%RO258(:) +!PLOSS(OH) = +K019*<NO>+K022*<NO2>+K023*<HNO3>+K024*<CO>+K025*<O3>+K029*<HNO4>+ +!K035*<SO2>+K037*<H2O2>+K039*<HONO>+K040*<NO3>+K042*<HO2>+K043*<CH4>+K046*<HCHO +!>+K048*<MEOH>+K049*<ETHE>+K053*<ETOH>+K054*<OLEL>+K058*<ALKL>+K060*<ALD2>+K062 +!*<KETL>+K064*<ISOP>+K068*<MTBE>+K069*<ALCH>+K070*<KETH>+K073*<AROO>+K074*<OLEH +!>+K078*<ALKM>+K079*<AROL>+K080*<AROH>+K082*<ARAL>+K083*<ARAC>+K084*<BIOL>+K088 +!*<BIOH>+K092*<PAH>+K093*<ALKH>+K272*<MVK>+K273*<MCR>+K274*<MGLY>+K303*<RPR5>+K +!304*<RPR1>+K305*<RP16>+K306*<RPRL>+K312*<RPR3>+K322*<RPR7>+K323*<RPG7>+K324*<R +!PR8>+K325*<RP10>+K326*<RP11>+K334*<RPG3>+K335*<RPG2>+K337*<RP18>+K345*<NH3>+K3 +!47*<ORA1>+K348*<ORA2>+K349*<ACID> + PLOSS(:,15) = +TPK%K019(:)*PCONC(:,1)+TPK%K022(:)*PCONC(:,2)+TPK%K023(:)*PCONC& +&(:,5)+TPK%K024(:)*PCONC(:,11)+TPK%K025(:)*PCONC(:,3)+TPK%K029(:)*PCONC(:,6)+TP& +&K%K035(:)*PCONC(:,13)+TPK%K037(:)*PCONC(:,12)+TPK%K039(:)*PCONC(:,4)+TPK%K040(& +&:)*PCONC(:,8)+TPK%K042(:)*PCONC(:,10)+TPK%K043(:)*TPK%CH4(:)+TPK%K046(:)*PCONC& +&(:,28)+TPK%K048(:)*PCONC(:,32)+TPK%K049(:)*PCONC(:,16)+TPK%K053(:)*PCONC(:,33)& +&+TPK%K054(:)*PCONC(:,17)+TPK%K058(:)*PCONC(:,19)+TPK%K060(:)*PCONC(:,29)+TPK%K& +&062(:)*PCONC(:,30)+TPK%K064(:)*PCONC(:,35)+TPK%K068(:)*PCONC(:,38)+TPK%K069(:)& +&*PCONC(:,34)+TPK%K070(:)*PCONC(:,31)+TPK%K073(:)*PCONC(:,24)+TPK%K074(:)*PCONC& +&(:,18)+TPK%K078(:)*PCONC(:,20)+TPK%K079(:)*PCONC(:,23)+TPK%K080(:)*PCONC(:,22)& +&+TPK%K082(:)*PCONC(:,25)+TPK%K083(:)*PCONC(:,26)+TPK%K084(:)*PCONC(:,36)+TPK%K& +&088(:)*PCONC(:,37)+TPK%K092(:)*PCONC(:,27)+TPK%K093(:)*PCONC(:,21)+TPK%K272(:)& +&*PCONC(:,39)+TPK%K273(:)*PCONC(:,40)+TPK%K274(:)*PCONC(:,41)+TPK%K303(:)*PCONC& +&(:,70)+TPK%K304(:)*PCONC(:,69)+TPK%K305(:)*PCONC(:,74)+TPK%K306(:)*PCONC(:,75)& +&+TPK%K312(:)*PCONC(:,57)+TPK%K322(:)*PCONC(:,62)+TPK%K323(:)*PCONC(:,63)+TPK%K& +&324(:)*PCONC(:,71)+TPK%K325(:)*PCONC(:,72)+TPK%K326(:)*PCONC(:,73)+TPK%K334(:)& +&*PCONC(:,52)+TPK%K335(:)*PCONC(:,50)+TPK%K337(:)*PCONC(:,51)+TPK%K345(:)*PCONC& +&(:,9)+TPK%K347(:)*PCONC(:,43)+TPK%K348(:)*PCONC(:,44)+TPK%K349(:)*PCONC(:,45) +! +!PPROD(ETHE) = 0.0 + PPROD(:,16) = 0.0 +!PLOSS(ETHE) = +K049*<OH>+K050*<NO3>+K051*<O3>+K052*<O> + PLOSS(:,16) = +TPK%K049(:)*PCONC(:,15)+TPK%K050(:)*PCONC(:,8)+TPK%K051(:)*PCON& +&C(:,3)+TPK%K052(:)*TPK%O(:) +! +!PPROD(OLEL) = +0.054*K066*<O3>*<ISOP>+0.925*K067*<O>*<ISOP>+TPK%CF5*K150*<NO>* +!<RO29>+0.5*K166*<HO2>*<RO239>+TPK%CF7*K168*<NO>*<RO214>+0.5*K289*<HO2>*<RO250> + PPROD(:,17) = +0.054*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+0.925*TPK%K067(:)*TPK%& +&O(:)*PCONC(:,35)+TPK%CF5*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:)+0.5*TPK%K166(:)*PC& +&ONC(:,10)*TPK%RO239(:)+TPK%CF7*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:)+0.5*TPK%K28& +&9(:)*PCONC(:,10)*TPK%RO250(:) +!PLOSS(OLEL) = +K054*<OH>+K055*<NO3>+K056*<O3>+K057*<O> + PLOSS(:,17) = +TPK%K054(:)*PCONC(:,15)+TPK%K055(:)*PCONC(:,8)+TPK%K056(:)*PCON& +&C(:,3)+TPK%K057(:)*TPK%O(:) +! +!PPROD(OLEH) = 0.0 + PPROD(:,18) = 0.0 +!PLOSS(OLEH) = +K074*<OH>+K075*<NO3>+K076*<O3>+K077*<O> + PLOSS(:,18) = +TPK%K074(:)*PCONC(:,15)+TPK%K075(:)*PCONC(:,8)+TPK%K076(:)*PCON& +&C(:,3)+TPK%K077(:)*TPK%O(:) +! +!PPROD(ALKL) = +0.1*K056*<O3>*<OLEL>+0.5*K057*<O>*<OLEL>+TPK%CF3*K122*<NO>*<RO2 +!5>+TPK%CF12*K171*<NO>*<RO215>+TPK%CF16*K172*<RO2T>*<RO215>+TPK%CF16*K173*<HO2> +!*<RO215> + PPROD(:,19) = +0.1*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+0.5*TPK%K057(:)*TPK%O(:)& +&*PCONC(:,17)+TPK%CF3*TPK%K122(:)*PCONC(:,1)*PCONC(:,87)+TPK%CF12*TPK%K171(:)*P& +&CONC(:,1)*TPK%RO215(:)+TPK%CF16*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:)+TPK%CF16*& +&TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) +!PLOSS(ALKL) = +K058*<OH> + PLOSS(:,19) = +TPK%K058(:)*PCONC(:,15) +! +!PPROD(ALKM) = +0.1*K076*<O3>*<OLEH>+0.5*K077*<O>*<OLEH> + PPROD(:,20) = +0.1*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+0.5*TPK%K077(:)*TPK%O(:)& +&*PCONC(:,18) +!PLOSS(ALKM) = +K078*<OH> + PLOSS(:,20) = +TPK%K078(:)*PCONC(:,15) +! +RETURN +END SUBROUTINE SUB1 +! +SUBROUTINE SUB2 +! +!Indices 21 a 30 +! +! +!PPROD(ALKH) = 0.0 + PPROD(:,21) = 0.0 +!PLOSS(ALKH) = +K093*<OH> + PLOSS(:,21) = +TPK%K093(:)*PCONC(:,15) +! +!PPROD(AROH) = 0.0 + PPROD(:,22) = 0.0 +!PLOSS(AROH) = +K080*<OH> + PLOSS(:,22) = +TPK%K080(:)*PCONC(:,15) +! +!PPROD(AROL) = 0.0 + PPROD(:,23) = 0.0 +!PLOSS(AROL) = +K079*<OH> + PLOSS(:,23) = +TPK%K079(:)*PCONC(:,15) +! +!PPROD(AROO) = +0.16*K073*<OH>*<AROO>+0.16*K079*<OH>*<AROL>+0.16*K080*<OH>*<ARO +!H> + PPROD(:,24) = +0.16*TPK%K073(:)*PCONC(:,15)*PCONC(:,24)+0.16*TPK%K079(:)*PCONC& +&(:,15)*PCONC(:,23)+0.16*TPK%K080(:)*PCONC(:,15)*PCONC(:,22) +!PLOSS(AROO) = +K072*<NO3>+K073*<OH> + PLOSS(:,24) = +TPK%K072(:)*PCONC(:,8)+TPK%K073(:)*PCONC(:,15) +! +!PPROD(ARAL) = +TPK%CF24*K189*<NO>*<RO221>+K190*<RO2T>*<RO221>+K191*<HO2>*<RO22 +!1> + PPROD(:,25) = +TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:)+TPK%K190(:)*PCONC(& +&:,85)*TPK%RO221(:)+TPK%K191(:)*PCONC(:,10)*TPK%RO221(:) +!PLOSS(ARAL) = +K081*<NO3>+K082*<OH> + PLOSS(:,25) = +TPK%K081(:)*PCONC(:,8)+TPK%K082(:)*PCONC(:,15) +! +!PPROD(ARAC) = +K081*<NO3>*<ARAL>+TPK%CF39*K082*<OH>*<ARAL> + PPROD(:,26) = +TPK%K081(:)*PCONC(:,8)*PCONC(:,25)+TPK%CF39*TPK%K082(:)*PCONC(:& +&,15)*PCONC(:,25) +!PLOSS(ARAC) = +K083*<OH> + PLOSS(:,26) = +TPK%K083(:)*PCONC(:,15) +! +!PPROD(PAH) = 0.0 + PPROD(:,27) = 0.0 +!PLOSS(PAH) = +K092*<OH> + PLOSS(:,27) = +TPK%K092(:)*PCONC(:,15) +! +!PPROD(HCHO) = +K048*<OH>*<MEOH>+0.5*K051*<O3>*<ETHE>+0.5*K056*<O3>*<OLEL>+0.5* +!K066*<O3>*<ISOP>+0.5*K076*<O3>*<OLEH>+K110*<NO>*<RO21>+K111*<RO2T>*<RO21>+K112 +!*<HO2>*<RO21>+K113*<NO>*<RO22>+K114*<RO2T>*<RO22>+K115*<HO2>*<RO22>+K116*<NO>* +!<RO23>+K117*<RO2T>*<RO23>+K118*<HO2>*<RO23>+K119*<NO>*<RO24>+K120*<RO2T>*<RO24 +!>+K121*<HO2>*<RO24>+TPK%CF6*K150*<NO>*<RO29>+K151*<RO2T>*<RO29>+K152*<HO2>*<RO +!29>+K153*<NO>*<RO210>+K154*<RO2T>*<RO210>+K155*<HO2>*<RO210>+K156*<NO>*<RO211> +!+K157*<RO2T>*<RO211>+K158*<HO2>*<RO211>+K159*<NO>*<RO212>+K160*<RO2T>*<RO212>+ +!K161*<HO2>*<RO212>+K162*<NO>*<RO213>+K163*<RO2T>*<RO213>+K164*<HO2>*<RO213>+TP +!K%CF10*K171*<NO>*<RO215>+TPK%CF14*K172*<RO2T>*<RO215>+TPK%CF14*K173*<HO2>*<RO2 +!15>+K183*<NO>*<RO219>+K184*<RO2T>*<RO219>+K185*<HO2>*<RO219>+0.5*K281*<O3>*<MV +!K>+0.5*K282*<O3>*<MCR>+K285*<NO>*<RO249>+K286*<RO2T>*<RO249>+K287*<HO2>*<RO249 +!>+K291*<NO>*<RO251>+K292*<HO2>*<RO251>+K293*<RO2T>*<RO251>+K294*<NO>*<RO252>+K +!295*<HO2>*<RO252>+K296*<RO2T>*<RO252>+K297*<NO>*<RO253>+K298*<HO2>*<RO253>+K29 +!9*<RO2T>*<RO253> + PPROD(:,28) = +TPK%K048(:)*PCONC(:,15)*PCONC(:,32)+0.5*TPK%K051(:)*PCONC(:,3)*& +&PCONC(:,16)+0.5*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+0.5*TPK%K066(:)*PCONC(:,3)*& +&PCONC(:,35)+0.5*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+TPK%K110(:)*PCONC(:,1)*PCON& +&C(:,86)+TPK%K111(:)*PCONC(:,85)*PCONC(:,86)+TPK%K112(:)*PCONC(:,10)*PCONC(:,86& +&)+TPK%K113(:)*PCONC(:,1)*TPK%RO22(:)+TPK%K114(:)*PCONC(:,85)*TPK%RO22(:)+TPK%K& +&115(:)*PCONC(:,10)*TPK%RO22(:)+TPK%K116(:)*PCONC(:,1)*TPK%RO23(:)+TPK%K117(:)*& +&PCONC(:,85)*TPK%RO23(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO23(:)+TPK%K119(:)*PCONC(& +&:,1)*TPK%RO24(:)+TPK%K120(:)*PCONC(:,85)*TPK%RO24(:)+TPK%K121(:)*PCONC(:,10)*T& +&PK%RO24(:)+TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:)+TPK%K151(:)*PCONC(:,85)*& +&TPK%RO29(:)+TPK%K152(:)*PCONC(:,10)*TPK%RO29(:)+TPK%K153(:)*PCONC(:,1)*TPK%RO2& +&10(:)+TPK%K154(:)*PCONC(:,85)*TPK%RO210(:)+TPK%K155(:)*PCONC(:,10)*TPK%RO210(:& +&)+TPK%K156(:)*PCONC(:,1)*TPK%RO211(:)+TPK%K157(:)*PCONC(:,85)*TPK%RO211(:)+TPK& +&%K158(:)*PCONC(:,10)*TPK%RO211(:)+TPK%K159(:)*PCONC(:,1)*TPK%RO212(:)+TPK%K160& +&(:)*PCONC(:,85)*TPK%RO212(:)+TPK%K161(:)*PCONC(:,10)*TPK%RO212(:)+TPK%K162(:)*& +&PCONC(:,1)*TPK%RO213(:)+TPK%K163(:)*PCONC(:,85)*TPK%RO213(:)+TPK%K164(:)*PCONC& +&(:,10)*TPK%RO213(:)+TPK%CF10*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:)+TPK%CF14*TPK%& +&K172(:)*PCONC(:,85)*TPK%RO215(:)+TPK%CF14*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:)& +&+TPK%K183(:)*PCONC(:,1)*TPK%RO219(:)+TPK%K184(:)*PCONC(:,85)*TPK%RO219(:)+TPK%& +&K185(:)*PCONC(:,10)*TPK%RO219(:)+0.5*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.5*TP& +&K%K282(:)*PCONC(:,3)*PCONC(:,40)+TPK%K285(:)*PCONC(:,1)*TPK%RO249(:)+TPK%K286(& +&:)*PCONC(:,85)*TPK%RO249(:)+TPK%K287(:)*PCONC(:,10)*TPK%RO249(:)+TPK%K291(:)*P& +&CONC(:,1)*TPK%RO251(:)+TPK%K292(:)*PCONC(:,10)*TPK%RO251(:)+TPK%K293(:)*PCONC(& +&:,85)*TPK%RO251(:)+TPK%K294(:)*PCONC(:,1)*TPK%RO252(:)+TPK%K295(:)*PCONC(:,10)& +&*TPK%RO252(:)+TPK%K296(:)*PCONC(:,85)*TPK%RO252(:)+TPK%K297(:)*PCONC(:,1)*TPK%& +&RO253(:)+TPK%K298(:)*PCONC(:,10)*TPK%RO253(:)+TPK%K299(:)*PCONC(:,85)*TPK%RO25& +&3(:) +!PLOSS(HCHO) = +K044+K045+K046*<OH>+K047*<NO3> + PLOSS(:,28) = +TPK%K044(:)+TPK%K045(:)+TPK%K046(:)*PCONC(:,15)+TPK%K047(:)*PCO& +&NC(:,8) +! +!PPROD(ALD2) = +TPK%CF1*K053*<OH>*<ETOH>+0.5*K056*<O3>*<OLEL>+0.4*K057*<O>*<OLE +!L>+0.075*K067*<O>*<ISOP>+K113*<NO>*<RO22>+K114*<RO2T>*<RO22>+K115*<HO2>*<RO22> +!+K116*<NO>*<RO23>+K117*<RO2T>*<RO23>+K118*<HO2>*<RO23>+TPK%CF4*K122*<NO>*<RO25 +!>+K123*<RO2T>*<RO25>+K124*<HO2>*<RO25>+K144*<NO>*<RO27>+K145*<RO2T>*<RO27>+K14 +!6*<HO2>*<RO27>+TPK%CF9*K171*<NO>*<RO215>+TPK%CF13*K172*<RO2T>*<RO215>+TPK%CF13 +!*K173*<HO2>*<RO215>+K174*<NO>*<RO216>+K175*<RO2T>*<RO216>+K176*<HO2>*<RO216>+0 +!.1*K281*<O3>*<MVK>+0.85*K284*<O>*<MCR> + PPROD(:,29) = +TPK%CF1*TPK%K053(:)*PCONC(:,15)*PCONC(:,33)+0.5*TPK%K056(:)*PCO& +&NC(:,3)*PCONC(:,17)+0.4*TPK%K057(:)*TPK%O(:)*PCONC(:,17)+0.075*TPK%K067(:)*TPK& +&%O(:)*PCONC(:,35)+TPK%K113(:)*PCONC(:,1)*TPK%RO22(:)+TPK%K114(:)*PCONC(:,85)*T& +&PK%RO22(:)+TPK%K115(:)*PCONC(:,10)*TPK%RO22(:)+TPK%K116(:)*PCONC(:,1)*TPK%RO23& +&(:)+TPK%K117(:)*PCONC(:,85)*TPK%RO23(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO23(:)+TP& +&K%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87)+TPK%K123(:)*PCONC(:,85)*PCONC(:,87)+T& +&PK%K124(:)*PCONC(:,10)*PCONC(:,87)+TPK%K144(:)*PCONC(:,1)*TPK%RO27(:)+TPK%K145& +&(:)*PCONC(:,85)*TPK%RO27(:)+TPK%K146(:)*PCONC(:,10)*TPK%RO27(:)+TPK%CF9*TPK%K1& +&71(:)*PCONC(:,1)*TPK%RO215(:)+TPK%CF13*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:)+TP& +&K%CF13*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:)+TPK%K174(:)*PCONC(:,1)*TPK%RO216(:& +&)+TPK%K175(:)*PCONC(:,85)*TPK%RO216(:)+TPK%K176(:)*PCONC(:,10)*TPK%RO216(:)+0.& +&1*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.85*TPK%K284(:)*TPK%O(:)*PCONC(:,40) +!PLOSS(ALD2) = +K059+K060*<OH>+K061*<NO3> + PLOSS(:,29) = +TPK%K059(:)+TPK%K060(:)*PCONC(:,15)+TPK%K061(:)*PCONC(:,8) +! +!PPROD(KETL) = +TPK%CF11*K171*<NO>*<RO215>+TPK%CF15*K172*<RO2T>*<RO215>+TPK%CF1 +!5*K173*<HO2>*<RO215>+0.85*K283*<O>*<MVK> + PPROD(:,30) = +TPK%CF11*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:)+TPK%CF15*TPK%K172(& +&:)*PCONC(:,85)*TPK%RO215(:)+TPK%CF15*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:)+0.85& +&*TPK%K283(:)*TPK%O(:)*PCONC(:,39) +!PLOSS(KETL) = +K062*<OH>+K063 + PLOSS(:,30) = +TPK%K062(:)*PCONC(:,15)+TPK%K063(:) +! +RETURN +END SUBROUTINE SUB2 +! +SUBROUTINE SUB3 +! +!Indices 31 a 40 +! +! +!PPROD(KETH) = 0.0 + PPROD(:,31) = 0.0 +!PLOSS(KETH) = +K070*<OH>+K071 + PLOSS(:,31) = +TPK%K070(:)*PCONC(:,15)+TPK%K071(:) +! +!PPROD(MEOH) = 0.0 + PPROD(:,32) = 0.0 +!PLOSS(MEOH) = +K048*<OH> + PLOSS(:,32) = +TPK%K048(:)*PCONC(:,15) +! +!PPROD(ETOH) = 0.0 + PPROD(:,33) = 0.0 +!PLOSS(ETOH) = +K053*<OH> + PLOSS(:,33) = +TPK%K053(:)*PCONC(:,15) +! +!PPROD(ALCH) = 0.0 + PPROD(:,34) = 0.0 +!PLOSS(ALCH) = +K069*<OH> + PLOSS(:,34) = +TPK%K069(:)*PCONC(:,15) +! +!PPROD(ISOP) = 0.0 + PPROD(:,35) = 0.0 +!PLOSS(ISOP) = +K064*<OH>+K065*<NO3>+K066*<O3>+K067*<O> + PLOSS(:,35) = +TPK%K064(:)*PCONC(:,15)+TPK%K065(:)*PCONC(:,8)+TPK%K066(:)*PCON& +&C(:,3)+TPK%K067(:)*TPK%O(:) +! +!PPROD(BIOL) = 0.0 + PPROD(:,36) = 0.0 +!PLOSS(BIOL) = +K084*<OH>+K085*<NO3>+K086*<O3>+K087*<O> + PLOSS(:,36) = +TPK%K084(:)*PCONC(:,15)+TPK%K085(:)*PCONC(:,8)+TPK%K086(:)*PCON& +&C(:,3)+TPK%K087(:)*TPK%O(:) +! +!PPROD(BIOH) = 0.0 + PPROD(:,37) = 0.0 +!PLOSS(BIOH) = +K088*<OH>+K089*<NO3>+K090*<O3>+K091*<O> + PLOSS(:,37) = +TPK%K088(:)*PCONC(:,15)+TPK%K089(:)*PCONC(:,8)+TPK%K090(:)*PCON& +&C(:,3)+TPK%K091(:)*TPK%O(:) +! +!PPROD(MTBE) = 0.0 + PPROD(:,38) = 0.0 +!PLOSS(MTBE) = +K068*<OH> + PLOSS(:,38) = +TPK%K068(:)*PCONC(:,15) +! +!PPROD(MVK) = +0.389*K066*<O3>*<ISOP>+TPK%CF6*K150*<NO>*<RO29>+K151*<RO2T>*<RO2 +!9>+K152*<HO2>*<RO29>+K156*<NO>*<RO211>+K157*<RO2T>*<RO211>+K158*<HO2>*<RO211> + PPROD(:,39) = +0.389*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+TPK%CF6*TPK%K150(:)*PC& +&ONC(:,1)*TPK%RO29(:)+TPK%K151(:)*PCONC(:,85)*TPK%RO29(:)+TPK%K152(:)*PCONC(:,1& +&0)*TPK%RO29(:)+TPK%K156(:)*PCONC(:,1)*TPK%RO211(:)+TPK%K157(:)*PCONC(:,85)*TPK& +&%RO211(:)+TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) +!PLOSS(MVK) = +K272*<OH>+K281*<O3>+K283*<O> + PLOSS(:,39) = +TPK%K272(:)*PCONC(:,15)+TPK%K281(:)*PCONC(:,3)+TPK%K283(:)*TPK%& +&O(:) +! +!PPROD(MCR) = +0.17*K066*<O3>*<ISOP>+K153*<NO>*<RO210>+K154*<RO2T>*<RO210>+K155 +!*<HO2>*<RO210>+K159*<NO>*<RO212>+K160*<RO2T>*<RO212>+K161*<HO2>*<RO212> + PPROD(:,40) = +0.17*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+TPK%K153(:)*PCONC(:,1)*& +&TPK%RO210(:)+TPK%K154(:)*PCONC(:,85)*TPK%RO210(:)+TPK%K155(:)*PCONC(:,10)*TPK%& +&RO210(:)+TPK%K159(:)*PCONC(:,1)*TPK%RO212(:)+TPK%K160(:)*PCONC(:,85)*TPK%RO212& +&(:)+TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) +!PLOSS(MCR) = +K273*<OH>+K275*<NO3>+K282*<O3>+K284*<O> + PLOSS(:,40) = +TPK%K273(:)*PCONC(:,15)+TPK%K275(:)*PCONC(:,8)+TPK%K282(:)*PCON& +&C(:,3)+TPK%K284(:)*TPK%O(:) +! +RETURN +END SUBROUTINE SUB3 +! +SUBROUTINE SUB4 +! +!Indices 41 a 50 +! +! +!PPROD(MGLY) = +K234*<NO>*<RO242>+K235*<RO2T>*<RO242>+K236*<HO2>*<RO242>+K241*< +!NO>*<RO243>+K242*<RO2T>*<RO243>+K243*<HO2>*<RO243>+K248*<NO>*<RO244>+K249*<RO2 +!T>*<RO244>+K250*<HO2>*<RO244>+K255*<NO>*<RO245>+K256*<RO2T>*<RO245>+K257*<HO2> +!*<RO245>+K262*<NO>*<RO246>+K263*<RO2T>*<RO246>+K264*<HO2>*<RO246>+K269*<NO>*<R +!O247>+K270*<RO2T>*<RO247>+K271*<HO2>*<RO247>+0.5*K281*<O3>*<MVK>+0.59*K282*<O3 +!>*<MCR>+K285*<NO>*<RO249>+K286*<RO2T>*<RO249>+K287*<HO2>*<RO249>+K291*<NO>*<RO +!251>+K292*<HO2>*<RO251>+K293*<RO2T>*<RO251>+K294*<NO>*<RO252>+K295*<HO2>*<RO25 +!2>+K296*<RO2T>*<RO252> + PPROD(:,41) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:)+TPK%K235(:)*PCONC(:,85)*TPK& +&%RO242(:)+TPK%K236(:)*PCONC(:,10)*TPK%RO242(:)+TPK%K241(:)*PCONC(:,1)*TPK%RO24& +&3(:)+TPK%K242(:)*PCONC(:,85)*TPK%RO243(:)+TPK%K243(:)*PCONC(:,10)*TPK%RO243(:)& +&+TPK%K248(:)*PCONC(:,1)*TPK%RO244(:)+TPK%K249(:)*PCONC(:,85)*TPK%RO244(:)+TPK%& +&K250(:)*PCONC(:,10)*TPK%RO244(:)+TPK%K255(:)*PCONC(:,1)*TPK%RO245(:)+TPK%K256(& +&:)*PCONC(:,85)*TPK%RO245(:)+TPK%K257(:)*PCONC(:,10)*TPK%RO245(:)+TPK%K262(:)*P& +&CONC(:,1)*TPK%RO246(:)+TPK%K263(:)*PCONC(:,85)*TPK%RO246(:)+TPK%K264(:)*PCONC(& +&:,10)*TPK%RO246(:)+TPK%K269(:)*PCONC(:,1)*TPK%RO247(:)+TPK%K270(:)*PCONC(:,85)& +&*TPK%RO247(:)+TPK%K271(:)*PCONC(:,10)*TPK%RO247(:)+0.5*TPK%K281(:)*PCONC(:,3)*& +&PCONC(:,39)+0.59*TPK%K282(:)*PCONC(:,3)*PCONC(:,40)+TPK%K285(:)*PCONC(:,1)*TPK& +&%RO249(:)+TPK%K286(:)*PCONC(:,85)*TPK%RO249(:)+TPK%K287(:)*PCONC(:,10)*TPK%RO2& +&49(:)+TPK%K291(:)*PCONC(:,1)*TPK%RO251(:)+TPK%K292(:)*PCONC(:,10)*TPK%RO251(:)& +&+TPK%K293(:)*PCONC(:,85)*TPK%RO251(:)+TPK%K294(:)*PCONC(:,1)*TPK%RO252(:)+TPK%& +&K295(:)*PCONC(:,10)*TPK%RO252(:)+TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) +!PLOSS(MGLY) = +K274*<OH>+K276+K278*<NO3> + PLOSS(:,41) = +TPK%K274(:)*PCONC(:,15)+TPK%K276(:)+TPK%K278(:)*PCONC(:,8) +! +!PPROD(GLY) = 0.0 + PPROD(:,42) = 0.0 +!PLOSS(GLY) = 0.0 + PLOSS(:,42) = 0.0 +! +!PPROD(ORA1) = +0.185*K051*<O3>*<ETHE>+0.12*K056*<O3>*<OLEL>+0.121*K066*<O3>*<I +!SOP>+0.12*K281*<O3>*<MVK>+0.09*K282*<O3>*<MCR> + PPROD(:,43) = +0.185*TPK%K051(:)*PCONC(:,3)*PCONC(:,16)+0.12*TPK%K056(:)*PCONC& +&(:,3)*PCONC(:,17)+0.121*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+0.12*TPK%K281(:)*PC& +&ONC(:,3)*PCONC(:,39)+0.09*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +!PLOSS(ORA1) = +K347*<OH> + PLOSS(:,43) = +TPK%K347(:)*PCONC(:,15) +! +!PPROD(ORA2) = +0.12*K056*<O3>*<OLEL>+K142*<HO2>*<RO26>+K148*<HO2>*<RO28>+0.5*K +!166*<HO2>*<RO239>+0.5*K289*<HO2>*<RO250> + PPROD(:,44) = +0.12*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+TPK%K142(:)*PCONC(:,10)& +&*TPK%RO26(:)+TPK%K148(:)*PCONC(:,10)*TPK%RO28(:)+0.5*TPK%K166(:)*PCONC(:,10)*T& +&PK%RO239(:)+0.5*TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) +!PLOSS(ORA2) = +K348*<OH> + PLOSS(:,44) = +TPK%K348(:)*PCONC(:,15) +! +!PPROD(ACID) = +0.12*K076*<O3>*<OLEH>+K142*<HO2>*<RO26>+K310*<HO2>*<RO255> + PPROD(:,45) = +0.12*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+TPK%K142(:)*PCONC(:,10)& +&*TPK%RO26(:)+TPK%K310(:)*PCONC(:,10)*TPK%RO255(:) +!PLOSS(ACID) = +K349*<OH> + PLOSS(:,45) = +TPK%K349(:)*PCONC(:,15) +! +!PPROD(UR28) = +K341*<HO2>*<RO258> + PPROD(:,46) = +TPK%K341(:)*PCONC(:,10)*TPK%RO258(:) +!PLOSS(UR28) = +K364 + PLOSS(:,46) = +TPK%K364(:) +! +!PPROD(UR21) = +K279*<HO2>*<RO248>+0.12*K281*<O3>*<MVK> + PPROD(:,47) = +TPK%K279(:)*PCONC(:,10)*TPK%RO248(:)+0.12*TPK%K281(:)*PCONC(:,3& +&)*PCONC(:,39) +!PLOSS(UR21) = +K361 + PLOSS(:,47) = +TPK%K361(:) +! +!PPROD(URG2) = +0.5562513*K335*<OH>*<RPG2>+K337*<OH>*<RP18> + PPROD(:,48) = +0.5562513*TPK%K335(:)*PCONC(:,15)*PCONC(:,50)+TPK%K337(:)*PCONC& +&(:,15)*PCONC(:,51) +!PLOSS(URG2) = +K350 + PLOSS(:,48) = +TPK%K350(:) +! +!PPROD(UR26) = +0.67*K326*<OH>*<RP11> + PPROD(:,49) = +0.67*TPK%K326(:)*PCONC(:,15)*PCONC(:,73) +!PLOSS(UR26) = +K363 + PLOSS(:,49) = +TPK%K363(:) +! +!PPROD(RPG2) = +0.3000000*K259*<NO>*<RO237>+1.0000000*K260*<RO2T>*<RO237>+0.300 +!0000*K261*<HO2>*<RO237>+0.1191897*K334*<OH>*<RPG3>+0.8808107*K334*<OH>*<RPG3> + PPROD(:,50) = +0.3000000*TPK%K259(:)*PCONC(:,1)*TPK%RO237(:)+1.0000000*TPK%K26& +&0(:)*PCONC(:,85)*TPK%RO237(:)+0.3000000*TPK%K261(:)*PCONC(:,10)*TPK%RO237(:)+0& +&.1191897*TPK%K334(:)*PCONC(:,15)*PCONC(:,52)+0.8808107*TPK%K334(:)*PCONC(:,15)& +&*PCONC(:,52) +!PLOSS(RPG2) = +K335*<OH> + PLOSS(:,50) = +TPK%K335(:)*PCONC(:,15) +! +RETURN +END SUBROUTINE SUB4 +! +SUBROUTINE SUB5 +! +!Indices 51 a 60 +! +! +!PPROD(RP18) = +0.4437492*K335*<OH>*<RPG2> + PPROD(:,51) = +0.4437492*TPK%K335(:)*PCONC(:,15)*PCONC(:,50) +!PLOSS(RP18) = +K337*<OH> + PLOSS(:,51) = +TPK%K337(:)*PCONC(:,15) +! +!PPROD(RPG3) = +0.3000000*K231*<NO>*<RO233>+1.0000000*K232*<RO2T>*<RO233>+0.300 +!0000*K233*<HO2>*<RO233>+0.3000000*K252*<NO>*<RO236>+1.0000000*K253*<RO2T>*<RO2 +!36>+0.3000000*K254*<HO2>*<RO236> + PPROD(:,52) = +0.3000000*TPK%K231(:)*PCONC(:,1)*TPK%RO233(:)+1.0000000*TPK%K23& +&2(:)*PCONC(:,85)*TPK%RO233(:)+0.3000000*TPK%K233(:)*PCONC(:,10)*TPK%RO233(:)+0& +&.3000000*TPK%K252(:)*PCONC(:,1)*TPK%RO236(:)+1.0000000*TPK%K253(:)*PCONC(:,85)& +&*TPK%RO236(:)+0.3000000*TPK%K254(:)*PCONC(:,10)*TPK%RO236(:) +!PLOSS(RPG3) = +K334*<OH> + PLOSS(:,52) = +TPK%K334(:)*PCONC(:,15) +! +!PPROD(URG4) = +5.5000000E-02*K086*<O3>*<BIOL>+1.0000000*K318*<HO2>*<RO256>+1.0 +!000000*K332*<HO2>*<RO257> + PPROD(:,53) = +5.5000000E-02*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)+1.0000000*TPK%& +&K318(:)*PCONC(:,10)*TPK%RO256(:)+1.0000000*TPK%K332(:)*PCONC(:,10)*TPK%RO257(:& +&) +!PLOSS(URG4) = +K351 + PLOSS(:,53) = +TPK%K351(:) +! +!PPROD(UR8) = +0.055*K090*<O3>*<BIOH> + PPROD(:,54) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +!PLOSS(UR8) = +K358 + PLOSS(:,54) = +TPK%K358(:) +! +!PPROD(UR17) = +1.0000000*K204*<NO>*<RO226>+1.0000000*K205*<RO2T>*<RO226>+1.000 +!0000*K206*<HO2>*<RO226> + PPROD(:,55) = +1.0000000*TPK%K204(:)*PCONC(:,1)*TPK%RO226(:)+1.0000000*TPK%K20& +&5(:)*PCONC(:,85)*TPK%RO226(:)+1.0000000*TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) +!PLOSS(UR17) = +K359 + PLOSS(:,55) = +TPK%K359(:) +! +!PPROD(UR7) = +0.055*K090*<O3>*<BIOH>+TPK%CFA12*K207*<NO>*<RO227>+K208*<RO2T>*< +!RO227>+0.3*K209*<HO2>*<RO227>+0.3*K210*<NO>*<RO228>+0.3*K211*<RO2T>*<RO228>+0. +!3*K212*<HO2>*<RO228> + PPROD(:,56) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37)+TPK%CFA12*TPK%K207(:)*& +&PCONC(:,1)*TPK%RO227(:)+TPK%K208(:)*PCONC(:,85)*TPK%RO227(:)+0.3*TPK%K209(:)*P& +&CONC(:,10)*TPK%RO227(:)+0.3*TPK%K210(:)*PCONC(:,1)*TPK%RO228(:)+0.3*TPK%K211(:& +&)*PCONC(:,85)*TPK%RO228(:)+0.3*TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) +!PLOSS(UR7) = +K357 + PLOSS(:,56) = +TPK%K357(:) +! +!PPROD(RPR3) = +0.055*K086*<O3>*<BIOL>+TPK%CFA10*K198*<NO>*<RO224>+K199*<RO2T>* +!<RO224>+K200*<HO2>*<RO224>+K201*<NO>*<RO225>+K202*<RO2T>*<RO225>+K203*<HO2>*<R +!O225> + PPROD(:,57) = +0.055*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)+TPK%CFA10*TPK%K198(:)*& +&PCONC(:,1)*TPK%RO224(:)+TPK%K199(:)*PCONC(:,85)*TPK%RO224(:)+TPK%K200(:)*PCONC& +&(:,10)*TPK%RO224(:)+TPK%K201(:)*PCONC(:,1)*TPK%RO225(:)+TPK%K202(:)*PCONC(:,85& +&)*TPK%RO225(:)+TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) +!PLOSS(RPR3) = +K312*<OH>+K313*<NO3>+K314 + PLOSS(:,57) = +TPK%K312(:)*PCONC(:,15)+TPK%K313(:)*PCONC(:,8)+TPK%K314(:) +! +!PPROD(URG6) = +TPK%CF21*K177*<NO>*<RO217>+TPK%CF43*K195*<NO>*<RO223>+0.4978440 +!*K323*<OH>*<RPG7> + PPROD(:,58) = +TPK%CF21*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:)+TPK%CF43*TPK%K195(& +&:)*PCONC(:,1)*TPK%RO223(:)+0.4978440*TPK%K323(:)*PCONC(:,15)*PCONC(:,63) +!PLOSS(URG6) = +K352 + PLOSS(:,58) = +TPK%K352(:) +! +!PPROD(UR22) = +K321*<NO2>*<RAD8> + PPROD(:,59) = +TPK%K321(:)*PCONC(:,2)*TPK%RAD8(:) +!PLOSS(UR22) = +K362 + PLOSS(:,59) = +TPK%K362(:) +! +!PPROD(URG7) = +0.1599999*K083*<OH>*<ARAC>+0.9999993*K108*<NO2>*<RAD6>+0.999999 +!3*K303*<OH>*<RPR5>+0.9979297*K306*<OH>*<RPRL>+0.9999993*K322*<OH>*<RPR7> + PPROD(:,60) = +0.1599999*TPK%K083(:)*PCONC(:,15)*PCONC(:,26)+0.9999993*TPK%K10& +&8(:)*PCONC(:,2)*TPK%RAD6(:)+0.9999993*TPK%K303(:)*PCONC(:,15)*PCONC(:,70)+0.99& +&79297*TPK%K306(:)*PCONC(:,15)*PCONC(:,75)+0.9999993*TPK%K322(:)*PCONC(:,15)*PC& +&ONC(:,62) +!PLOSS(URG7) = +K353 + PLOSS(:,60) = +TPK%K353(:) +! +RETURN +END SUBROUTINE SUB5 +! +SUBROUTINE SUB6 +! +!Indices 61 a 70 +! +! +!PPROD(RPR4) = +K103*<NO2>*<RAD1>+K104*<NO2>*<RAD2> + PPROD(:,61) = +TPK%K103(:)*PCONC(:,2)*TPK%RAD1(:)+TPK%K104(:)*PCONC(:,2)*TPK%R& +&AD2(:) +!PLOSS(RPR4) = +K320*<NO3> + PLOSS(:,61) = +TPK%K320(:)*PCONC(:,8) +! +!PPROD(RPR7) = +TPK%CF44*K195*<NO>*<RO223>+K196*<RO2T>*<RO223>+K197*<HO2>*<RO22 +!3>+2.0714202E-03*K306*<OH>*<RPRL> + PPROD(:,62) = +TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:)+TPK%K196(:)*PCONC(& +&:,85)*TPK%RO223(:)+TPK%K197(:)*PCONC(:,10)*TPK%RO223(:)+2.0714202E-03*TPK%K306& +&(:)*PCONC(:,15)*PCONC(:,75) +!PLOSS(RPR7) = +K322*<OH> + PLOSS(:,62) = +TPK%K322(:)*PCONC(:,15) +! +!PPROD(RPG7) = +1.0000013*K266*<NO>*<RO238>+1.0000013*K267*<RO2T>*<RO238>+1.000 +!0013*K268*<HO2>*<RO238>+0.5021558*K323*<OH>*<RPG7> + PPROD(:,63) = +1.0000013*TPK%K266(:)*PCONC(:,1)*TPK%RO238(:)+1.0000013*TPK%K26& +&7(:)*PCONC(:,85)*TPK%RO238(:)+1.0000013*TPK%K268(:)*PCONC(:,10)*TPK%RO238(:)+0& +&.5021558*TPK%K323(:)*PCONC(:,15)*PCONC(:,63) +!PLOSS(RPG7) = +K323*<OH> + PLOSS(:,63) = +TPK%K323(:)*PCONC(:,15) +! +!PPROD(URG8) = +0.1600000*K092*<OH>*<PAH>+1.0000000*K109*<NO2>*<RAD7>+TPK%CF31* +!K221*<NO>*<RO231> + PPROD(:,64) = +0.1600000*TPK%K092(:)*PCONC(:,15)*PCONC(:,27)+1.0000000*TPK%K10& +&9(:)*PCONC(:,2)*TPK%RAD7(:)+TPK%CF31*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) +!PLOSS(URG8) = +K354 + PLOSS(:,64) = +TPK%K354(:) +! +!PPROD(UR19) = +TPK%CF32*K221*<NO>*<RO231>+K222*<RO2T>*<RO231>+K223*<HO2>*<RO23 +!1> + PPROD(:,65) = +TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:)+TPK%K222(:)*PCONC(& +&:,85)*TPK%RO231(:)+TPK%K223(:)*PCONC(:,10)*TPK%RO231(:) +!PLOSS(UR19) = +K360 + PLOSS(:,65) = +TPK%K360(:) +! +!PPROD(URG9) = +TPK%CFA14*K224*<NO>*<RO232>+TPK%CFA16*K227*<NO>*<RO241>+TPK%CFA +!15*K227*<NO>*<RO241>+0.9999996*K228*<RO2T>*<RO241>+0.9999996*K229*<HO2>*<RO241 +!> + PPROD(:,66) = +TPK%CFA14*TPK%K224(:)*PCONC(:,1)*TPK%RO232(:)+TPK%CFA16*TPK%K22& +&7(:)*PCONC(:,1)*TPK%RO241(:)+TPK%CFA15*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:)+0.9& +&999996*TPK%K228(:)*PCONC(:,85)*TPK%RO241(:)+0.9999996*TPK%K229(:)*PCONC(:,10)*& +&TPK%RO241(:) +!PLOSS(URG9) = +K355 + PLOSS(:,66) = +TPK%K355(:) +! +!PPROD(AP7) = +TPK%CFA23*K198*<NO>*<RO224> + PPROD(:,67) = +TPK%CFA23*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) +!PLOSS(AP7) = +K365 + PLOSS(:,67) = +TPK%K365(:) +! +!PPROD(URG10) = +0.2500000*K087*<O>*<BIOL>+0.7500000*K087*<O>*<BIOL>+TPK%CF27*K +!207*<NO>*<RO227> + PPROD(:,68) = +0.2500000*TPK%K087(:)*TPK%O(:)*PCONC(:,36)+0.7500000*TPK%K087(:& +&)*TPK%O(:)*PCONC(:,36)+TPK%CF27*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) +!PLOSS(URG10) = +K356 + PLOSS(:,68) = +TPK%K356(:) +! +!PPROD(RPR1) = +0.5*K076*<O3>*<OLEH>+0.4*K077*<O>*<OLEH>+K183*<NO>*<RO219>+K184 +!*<RO2T>*<RO219>+K185*<HO2>*<RO219> + PPROD(:,69) = +0.5*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+0.4*TPK%K077(:)*TPK%O(:)& +&*PCONC(:,18)+TPK%K183(:)*PCONC(:,1)*TPK%RO219(:)+TPK%K184(:)*PCONC(:,85)*TPK%R& +&O219(:)+TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) +!PLOSS(RPR1) = +K304*<OH>+K307*<NO3>+K308 + PLOSS(:,69) = +TPK%K304(:)*PCONC(:,15)+TPK%K307(:)*PCONC(:,8)+TPK%K308(:) +! +!PPROD(RPR5) = +K107*<NO2>*<RAD5> + PPROD(:,70) = +TPK%K107(:)*PCONC(:,2)*TPK%RAD5(:) +!PLOSS(RPR5) = +K303*<OH> + PLOSS(:,70) = +TPK%K303(:)*PCONC(:,15) +! +RETURN +END SUBROUTINE SUB6 +! +SUBROUTINE SUB7 +! +!Indices 71 a 80 +! +! +!PPROD(RPR8) = +K216*<NO>*<RO240>+K217*<RO2T>*<RO240>+K218*<HO2>*<RO240> + PPROD(:,71) = +TPK%K216(:)*PCONC(:,1)*TPK%RO240(:)+TPK%K217(:)*PCONC(:,85)*TPK& +&%RO240(:)+TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) +!PLOSS(RPR8) = +K324*<OH>+K327*<NO3>+K329+K330 + PLOSS(:,71) = +TPK%K324(:)*PCONC(:,15)+TPK%K327(:)*PCONC(:,8)+TPK%K329(:)+TPK%& +&K330(:) +! +!PPROD(RP10) = +K234*<NO>*<RO242>+K235*<RO2T>*<RO242>+K236*<HO2>*<RO242>+K241*< +!NO>*<RO243>+K242*<RO2T>*<RO243>+K243*<HO2>*<RO243>+K248*<NO>*<RO244>+K249*<RO2 +!T>*<RO244>+K250*<HO2>*<RO244>+K255*<NO>*<RO245>+K256*<RO2T>*<RO245>+K257*<HO2> +!*<RO245>+K262*<NO>*<RO246>+K263*<RO2T>*<RO246>+K264*<HO2>*<RO246> + PPROD(:,72) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:)+TPK%K235(:)*PCONC(:,85)*TPK& +&%RO242(:)+TPK%K236(:)*PCONC(:,10)*TPK%RO242(:)+TPK%K241(:)*PCONC(:,1)*TPK%RO24& +&3(:)+TPK%K242(:)*PCONC(:,85)*TPK%RO243(:)+TPK%K243(:)*PCONC(:,10)*TPK%RO243(:)& +&+TPK%K248(:)*PCONC(:,1)*TPK%RO244(:)+TPK%K249(:)*PCONC(:,85)*TPK%RO244(:)+TPK%& +&K250(:)*PCONC(:,10)*TPK%RO244(:)+TPK%K255(:)*PCONC(:,1)*TPK%RO245(:)+TPK%K256(& +&:)*PCONC(:,85)*TPK%RO245(:)+TPK%K257(:)*PCONC(:,10)*TPK%RO245(:)+TPK%K262(:)*P& +&CONC(:,1)*TPK%RO246(:)+TPK%K263(:)*PCONC(:,85)*TPK%RO246(:)+TPK%K264(:)*PCONC(& +&:,10)*TPK%RO246(:) +!PLOSS(RP10) = +K325*<OH>+K328 + PLOSS(:,72) = +TPK%K325(:)*PCONC(:,15)+TPK%K328(:) +! +!PPROD(RP11) = +0.3*K238*<NO>*<RO234>+K239*<RO2T>*<RO234>+0.3*K240*<HO2>*<RO234 +!>+0.5*K245*<NO>*<RO235>+K246*<RO2T>*<RO235>+K247*<HO2>*<RO235> + PPROD(:,73) = +0.3*TPK%K238(:)*PCONC(:,1)*TPK%RO234(:)+TPK%K239(:)*PCONC(:,85)& +&*TPK%RO234(:)+0.3*TPK%K240(:)*PCONC(:,10)*TPK%RO234(:)+0.5*TPK%K245(:)*PCONC(:& +&,1)*TPK%RO235(:)+TPK%K246(:)*PCONC(:,85)*TPK%RO235(:)+TPK%K247(:)*PCONC(:,10)*& +&TPK%RO235(:) +!PLOSS(RP11) = +K326*<OH> + PLOSS(:,73) = +TPK%K326(:)*PCONC(:,15) +! +!PPROD(RP16) = +K301*<HO2>*<RO254> + PPROD(:,74) = +TPK%K301(:)*PCONC(:,10)*TPK%RO254(:) +!PLOSS(RP16) = +K305*<OH>+K338*<NO3>+K339 + PLOSS(:,74) = +TPK%K305(:)*PCONC(:,15)+TPK%K338(:)*PCONC(:,8)+TPK%K339(:) +! +!PPROD(RPRL) = +0.9983609*K082*<OH>*<ARAL>+TPK%CFA2*K177*<NO>*<RO217>+0.9983609 +!*K178*<RO2T>*<RO217>+0.9983609*K179*<HO2>*<RO217>+TPK%CFA7*K192*<NO>*<RO222>+0 +!.9983609*K193*<RO2T>*<RO222>+0.9983609*K194*<HO2>*<RO222>+1.0023998*K269*<NO>* +!<RO247>+1.0023998*K270*<RO2T>*<RO247>+1.0023998*K271*<HO2>*<RO247> + PPROD(:,75) = +0.9983609*TPK%K082(:)*PCONC(:,15)*PCONC(:,25)+TPK%CFA2*TPK%K177& +&(:)*PCONC(:,1)*TPK%RO217(:)+0.9983609*TPK%K178(:)*PCONC(:,85)*TPK%RO217(:)+0.9& +&983609*TPK%K179(:)*PCONC(:,10)*TPK%RO217(:)+TPK%CFA7*TPK%K192(:)*PCONC(:,1)*TP& +&K%RO222(:)+0.9983609*TPK%K193(:)*PCONC(:,85)*TPK%RO222(:)+0.9983609*TPK%K194(:& +&)*PCONC(:,10)*TPK%RO222(:)+1.0023998*TPK%K269(:)*PCONC(:,1)*TPK%RO247(:)+1.002& +&3998*TPK%K270(:)*PCONC(:,85)*TPK%RO247(:)+1.0023998*TPK%K271(:)*PCONC(:,10)*TP& +&K%RO247(:) +!PLOSS(RPRL) = +K306*<OH> + PLOSS(:,75) = +TPK%K306(:)*PCONC(:,15) +! +!PPROD(APAN) = +K130*<NO2>*<RO250>+K133*<NO2>*<RO257> + PPROD(:,76) = +TPK%K130(:)*PCONC(:,2)*TPK%RO250(:)+TPK%K133(:)*PCONC(:,2)*TPK%& +&RO257(:) +!PLOSS(APAN) = +K139 + PLOSS(:,76) = +TPK%K139(:) +! +!PPROD(PAN1) = +K126*<NO2>*<RO26> + PPROD(:,77) = +TPK%K126(:)*PCONC(:,2)*TPK%RO26(:) +!PLOSS(PAN1) = +K135 + PLOSS(:,77) = +TPK%K135(:) +! +!PPROD(PAN2) = +K127*<NO2>*<RO28> + PPROD(:,78) = +TPK%K127(:)*PCONC(:,2)*TPK%RO28(:) +!PLOSS(PAN2) = +K136 + PLOSS(:,78) = +TPK%K136(:) +! +!PPROD(PAN3) = +K128*<NO2>*<RO239> + PPROD(:,79) = +TPK%K128(:)*PCONC(:,2)*TPK%RO239(:) +!PLOSS(PAN3) = +K137 + PLOSS(:,79) = +TPK%K137(:) +! +!PPROD(PAN4) = +K129*<NO2>*<RO248> + PPROD(:,80) = +TPK%K129(:)*PCONC(:,2)*TPK%RO248(:) +!PLOSS(PAN4) = +K141 + PLOSS(:,80) = +TPK%K141(:) +! +RETURN +END SUBROUTINE SUB7 +! +SUBROUTINE SUB8 +! +!Indices 81 a 87 +! +! +!PPROD(PAN6) = +K131*<NO2>*<RO254> + PPROD(:,81) = +TPK%K131(:)*PCONC(:,2)*TPK%RO254(:) +!PLOSS(PAN6) = +K140 + PLOSS(:,81) = +TPK%K140(:) +! +!PPROD(PAN7) = +K132*<NO2>*<RO255> + PPROD(:,82) = +TPK%K132(:)*PCONC(:,2)*TPK%RO255(:) +!PLOSS(PAN7) = +K343 + PLOSS(:,82) = +TPK%K343(:) +! +!PPROD(PAN8) = +K316*<NO2>*<RO256> + PPROD(:,83) = +TPK%K316(:)*PCONC(:,2)*TPK%RO256(:) +!PLOSS(PAN8) = +K317 + PLOSS(:,83) = +TPK%K317(:) +! +!PPROD(PN10) = +K134*<NO2>*<RO258> + PPROD(:,84) = +TPK%K134(:)*PCONC(:,2)*TPK%RO258(:) +!PLOSS(PN10) = +K138 + PLOSS(:,84) = +TPK%K138(:) +! +!PPROD(RO2T) = +K043*<OH>*<CH4>+K049*<OH>*<ETHE>+K050*<NO3>*<ETHE>+K052*<O>*<ET +!HE>+TPK%CF2*K053*<OH>*<ETOH>+K054*<OH>*<OLEL>+K055*<NO3>*<OLEL>+0.28*K056*<O3> +!*<OLEL>+0.2*K057*<O>*<OLEL>+K058*<OH>*<ALKL>+K059*<ALD2>+K060*<OH>*<ALD2>+K061 +!*<NO3>*<ALD2>+K062*<OH>*<KETL>+2.*K063*<KETL>+K064*<OH>*<ISOP>+K065*<NO3>*<ISO +!P>+0.366*K066*<O3>*<ISOP>+K068*<OH>*<MTBE>+K069*<OH>*<ALCH>+K070*<OH>*<KETH>+2 +!.*K071*<KETH>+0.1*K073*<OH>*<AROO>+K074*<OH>*<OLEH>+K075*<NO3>*<OLEH>+0.28*K07 +!6*<O3>*<OLEH>+0.2*K077*<O>*<OLEH>+K078*<OH>*<ALKM>+0.06*K079*<OH>*<AROL>+TPK%C +!F45*K082*<OH>*<ARAL>+0.1*K083*<OH>*<ARAC>+K084*<OH>*<BIOL>+K085*<NO3>*<BIOL>+0 +!.445*K086*<O3>*<BIOL>+K088*<OH>*<BIOH>+K089*<NO3>*<BIOH>+0.89*K090*<O3>*<BIOH> +!+0.1*K092*<OH>*<PAH>+K093*<OH>*<ALKH>+K096*<RO2T>*<RO2T>+K097*<RAD2>+K098*<RAD +!3>+K099*<RAD4>+K100*<RAD5>+K101*<RAD6>+K102*<RAD7>+K111*<RO2T>*<RO21>+K114*<RO +!2T>*<RO22>+K117*<RO2T>*<RO23>+K120*<RO2T>*<RO24>+K123*<RO2T>*<RO25>+K125*<NO>* +!<RO26>+K135*<PAN1>+K136*<PAN2>+K137*<PAN3>+K138*<PN10>+1.0000000*K139*<APAN>+K +!140*<PAN6>+K141*<PAN4>+2.*K143*<RO2T>*<RO26>+K144*<NO>*<RO27>+2.*K145*<RO2T>*< +!RO27>+K146*<HO2>*<RO27>+K147*<NO>*<RO28>+2.*K149*<RO2T>*<RO28>+K151*<RO2T>*<RO +!29>+K154*<RO2T>*<RO210>+K157*<RO2T>*<RO211>+K160*<RO2T>*<RO212>+K162*<NO>*<RO2 +!13>+2.*K163*<RO2T>*<RO213>+K164*<HO2>*<RO213>+K165*<NO>*<RO239>+2.*K167*<RO2T> +!*<RO239>+TPK%CF8*K168*<NO>*<RO214>+2.*K169*<RO2T>*<RO214>+K170*<HO2>*<RO214>+K +!172*<RO2T>*<RO215>+K174*<NO>*<RO216>+2.*K175*<RO2T>*<RO216>+K176*<HO2>*<RO216> +!+K178*<RO2T>*<RO217>+K181*<RO2T>*<RO218>+K184*<RO2T>*<RO219>+TPK%CF18*K186*<NO +!>*<RO220>+2.*K187*<RO2T>*<RO220>+K188*<HO2>*<RO220>+K190*<RO2T>*<RO221>+K193*< +!RO2T>*<RO222>+K196*<RO2T>*<RO223>+K199*<RO2T>*<RO224>+K202*<RO2T>*<RO225>+K204 +!*<NO>*<RO226>+2.*K205*<RO2T>*<RO226>+K206*<HO2>*<RO226>+K208*<RO2T>*<RO227>+K2 +!11*<RO2T>*<RO228>+TPK%CF30*K213*<NO>*<RO229>+2.*K214*<RO2T>*<RO229>+K215*<HO2> +!*<RO229>+K216*<NO>*<RO240>+2.*K217*<RO2T>*<RO240>+K218*<HO2>*<RO240>+2.*K219*< +!RO2T>*<RO230>+K220*<HO2>*<RO230>+K222*<RO2T>*<RO231>+TPK%CF34*K224*<NO>*<RO232 +!>+2.*K225*<RO2T>*<RO232>+K226*<HO2>*<RO232>+K228*<RO2T>*<RO241>+K230*<RO233>+K +!232*<RO2T>*<RO233>+K235*<RO2T>*<RO242>+K237*<RO234>+K239*<RO2T>*<RO234>+K242*< +!RO2T>*<RO243>+K244*<RO235>+K246*<RO2T>*<RO235>+K249*<RO2T>*<RO244>+K251*<RO236 +!>+K253*<RO2T>*<RO236>+K256*<RO2T>*<RO245>+K258*<RO237>+K260*<RO2T>*<RO237>+K26 +!3*<RO2T>*<RO246>+K265*<RO238>+K267*<RO2T>*<RO238>+K270*<RO2T>*<RO247>+K272*<OH +!>*<MVK>+K273*<OH>*<MCR>+K274*<OH>*<MGLY>+K275*<NO3>*<MCR>+K276*<MGLY>+K277*<NO +!>*<RO248>+K278*<NO3>*<MGLY>+2.*K280*<RO2T>*<RO248>+0.28*K281*<O3>*<MVK>+0.41*K +!282*<O3>*<MCR>+0.3*K283*<O>*<MVK>+0.15*K284*<O>*<MCR>+K286*<RO2T>*<RO249>+K288 +!*<NO>*<RO250>+2.*K290*<RO2T>*<RO250>+K292*<HO2>*<RO251>+K295*<HO2>*<RO252>+K29 +!7*<NO>*<RO253>+2.*K298*<HO2>*<RO253>+K299*<RO2T>*<RO253>+K302*<RO2T>*<RO254>+K +!304*<OH>*<RPR1>+K305*<OH>*<RP16>+K307*<NO3>*<RPR1>+K308*<RPR1>+K309*<NO>*<RO25 +!5>+2.*K311*<RO2T>*<RO255>+K312*<OH>*<RPR3>+K313*<NO3>*<RPR3>+K317*<PAN8>+K319* +!<RO2T>*<RO256>+K324*<OH>*<RPR8>+K327*<NO3>*<RPR8>+K329*<RPR8>+K330*<RPR8>+K331 +!*<NO>*<RO257>+2.*K333*<RO2T>*<RO257>+K338*<NO3>*<RP16>+K342*<RO2T>*<RO258>+K34 +!3*<PAN7>+K344*<NO>*<RO230> + PPROD(:,85) = +TPK%K043(:)*PCONC(:,15)*TPK%CH4(:)+TPK%K049(:)*PCONC(:,15)*PCON& +&C(:,16)+TPK%K050(:)*PCONC(:,8)*PCONC(:,16)+TPK%K052(:)*TPK%O(:)*PCONC(:,16)+TP& +&K%CF2*TPK%K053(:)*PCONC(:,15)*PCONC(:,33)+TPK%K054(:)*PCONC(:,15)*PCONC(:,17)+& +&TPK%K055(:)*PCONC(:,8)*PCONC(:,17)+0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+0.2& +&*TPK%K057(:)*TPK%O(:)*PCONC(:,17)+TPK%K058(:)*PCONC(:,15)*PCONC(:,19)+TPK%K059& +&(:)*PCONC(:,29)+TPK%K060(:)*PCONC(:,15)*PCONC(:,29)+TPK%K061(:)*PCONC(:,8)*PCO& +&NC(:,29)+TPK%K062(:)*PCONC(:,15)*PCONC(:,30)+2.*TPK%K063(:)*PCONC(:,30)+TPK%K0& +&64(:)*PCONC(:,15)*PCONC(:,35)+TPK%K065(:)*PCONC(:,8)*PCONC(:,35)+0.366*TPK%K06& +&6(:)*PCONC(:,3)*PCONC(:,35)+TPK%K068(:)*PCONC(:,15)*PCONC(:,38)+TPK%K069(:)*PC& +&ONC(:,15)*PCONC(:,34)+TPK%K070(:)*PCONC(:,15)*PCONC(:,31)+2.*TPK%K071(:)*PCONC& +&(:,31)+0.1*TPK%K073(:)*PCONC(:,15)*PCONC(:,24)+TPK%K074(:)*PCONC(:,15)*PCONC(:& +&,18)+TPK%K075(:)*PCONC(:,8)*PCONC(:,18)+0.28*TPK%K076(:)*PCONC(:,3)*PCONC(:,18& +&)+0.2*TPK%K077(:)*TPK%O(:)*PCONC(:,18)+TPK%K078(:)*PCONC(:,15)*PCONC(:,20)+0.0& +&6*TPK%K079(:)*PCONC(:,15)*PCONC(:,23)+TPK%CF45*TPK%K082(:)*PCONC(:,15)*PCONC(:& +&,25)+0.1*TPK%K083(:)*PCONC(:,15)*PCONC(:,26)+TPK%K084(:)*PCONC(:,15)*PCONC(:,3& +&6)+TPK%K085(:)*PCONC(:,8)*PCONC(:,36)+0.445*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)& +&+TPK%K088(:)*PCONC(:,15)*PCONC(:,37)+TPK%K089(:)*PCONC(:,8)*PCONC(:,37)+0.89*T& +&PK%K090(:)*PCONC(:,3)*PCONC(:,37)+0.1*TPK%K092(:)*PCONC(:,15)*PCONC(:,27)+TPK%& +&K093(:)*PCONC(:,15)*PCONC(:,21)+TPK%K096(:)*PCONC(:,85)*PCONC(:,85)+TPK%K097(:& +&)*TPK%RAD2(:)+TPK%K098(:)*TPK%RAD3(:)+TPK%K099(:)*TPK%RAD4(:)+TPK%K100(:)*TPK%& +&RAD5(:)+TPK%K101(:)*TPK%RAD6(:)+TPK%K102(:)*TPK%RAD7(:)+TPK%K111(:)*PCONC(:,85& +&)*PCONC(:,86)+TPK%K114(:)*PCONC(:,85)*TPK%RO22(:)+TPK%K117(:)*PCONC(:,85)*TPK%& +&RO23(:)+TPK%K120(:)*PCONC(:,85)*TPK%RO24(:)+TPK%K123(:)*PCONC(:,85)*PCONC(:,87& +&)+TPK%K125(:)*PCONC(:,1)*TPK%RO26(:)+TPK%K135(:)*PCONC(:,77)+TPK%K136(:)*PCONC& +&(:,78)+TPK%K137(:)*PCONC(:,79)+TPK%K138(:)*PCONC(:,84)+1.0000000*TPK%K139(:)*P& +&CONC(:,76)+TPK%K140(:)*PCONC(:,81)+TPK%K141(:)*PCONC(:,80)+2.*TPK%K143(:)*PCON& +&C(:,85)*TPK%RO26(:)+TPK%K144(:)*PCONC(:,1)*TPK%RO27(:)+2.*TPK%K145(:)*PCONC(:,& +&85)*TPK%RO27(:)+TPK%K146(:)*PCONC(:,10)*TPK%RO27(:)+TPK%K147(:)*PCONC(:,1)*TPK& +&%RO28(:)+2.*TPK%K149(:)*PCONC(:,85)*TPK%RO28(:)+TPK%K151(:)*PCONC(:,85)*TPK%RO& +&29(:)+TPK%K154(:)*PCONC(:,85)*TPK%RO210(:)+TPK%K157(:)*PCONC(:,85)*TPK%RO211(:& +&)+TPK%K160(:)*PCONC(:,85)*TPK%RO212(:)+TPK%K162(:)*PCONC(:,1)*TPK%RO213(:)+2.*& +&TPK%K163(:)*PCONC(:,85)*TPK%RO213(:)+TPK%K164(:)*PCONC(:,10)*TPK%RO213(:)+TPK%& +&K165(:)*PCONC(:,1)*TPK%RO239(:)+2.*TPK%K167(:)*PCONC(:,85)*TPK%RO239(:)+TPK%CF& +&8*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:)+2.*TPK%K169(:)*PCONC(:,85)*TPK%RO214(:)+& +&TPK%K170(:)*PCONC(:,10)*TPK%RO214(:)+TPK%K172(:)*PCONC(:,85)*TPK%RO215(:)+TPK%& +&K174(:)*PCONC(:,1)*TPK%RO216(:)+2.*TPK%K175(:)*PCONC(:,85)*TPK%RO216(:)+TPK%K1& +&76(:)*PCONC(:,10)*TPK%RO216(:)+TPK%K178(:)*PCONC(:,85)*TPK%RO217(:)+TPK%K181(:& +&)*PCONC(:,85)*TPK%RO218(:)+TPK%K184(:)*PCONC(:,85)*TPK%RO219(:)+TPK%CF18*TPK%K& +&186(:)*PCONC(:,1)*TPK%RO220(:)+2.*TPK%K187(:)*PCONC(:,85)*TPK%RO220(:)+TPK%K18& +&8(:)*PCONC(:,10)*TPK%RO220(:)+TPK%K190(:)*PCONC(:,85)*TPK%RO221(:)+TPK%K193(:)& +&*PCONC(:,85)*TPK%RO222(:)+TPK%K196(:)*PCONC(:,85)*TPK%RO223(:)+TPK%K199(:)*PCO& +&NC(:,85)*TPK%RO224(:)+TPK%K202(:)*PCONC(:,85)*TPK%RO225(:)+TPK%K204(:)*PCONC(:& +&,1)*TPK%RO226(:)+2.*TPK%K205(:)*PCONC(:,85)*TPK%RO226(:)+TPK%K206(:)*PCONC(:,1& +&0)*TPK%RO226(:)+TPK%K208(:)*PCONC(:,85)*TPK%RO227(:)+TPK%K211(:)*PCONC(:,85)*T& +&PK%RO228(:)+TPK%CF30*TPK%K213(:)*PCONC(:,1)*TPK%RO229(:)+2.*TPK%K214(:)*PCONC(& +&:,85)*TPK%RO229(:)+TPK%K215(:)*PCONC(:,10)*TPK%RO229(:)+TPK%K216(:)*PCONC(:,1)& +&*TPK%RO240(:)+2.*TPK%K217(:)*PCONC(:,85)*TPK%RO240(:)+TPK%K218(:)*PCONC(:,10)*& +&TPK%RO240(:)+2.*TPK%K219(:)*PCONC(:,85)*TPK%RO230(:)+TPK%K220(:)*PCONC(:,10)*T& +&PK%RO230(:)+TPK%K222(:)*PCONC(:,85)*TPK%RO231(:)+TPK%CF34*TPK%K224(:)*PCONC(:,& +&1)*TPK%RO232(:)+2.*TPK%K225(:)*PCONC(:,85)*TPK%RO232(:)+TPK%K226(:)*PCONC(:,10& +&)*TPK%RO232(:)+TPK%K228(:)*PCONC(:,85)*TPK%RO241(:)+TPK%K230(:)*TPK%RO233(:)+T& +&PK%K232(:)*PCONC(:,85)*TPK%RO233(:)+TPK%K235(:)*PCONC(:,85)*TPK%RO242(:)+TPK%K& +&237(:)*TPK%RO234(:)+TPK%K239(:)*PCONC(:,85)*TPK%RO234(:)+TPK%K242(:)*PCONC(:,8& +&5)*TPK%RO243(:)+TPK%K244(:)*TPK%RO235(:)+TPK%K246(:)*PCONC(:,85)*TPK%RO235(:)+& +&TPK%K249(:)*PCONC(:,85)*TPK%RO244(:)+TPK%K251(:)*TPK%RO236(:)+TPK%K253(:)*PCON& +&C(:,85)*TPK%RO236(:)+TPK%K256(:)*PCONC(:,85)*TPK%RO245(:)+TPK%K258(:)*TPK%RO23& +&7(:)+TPK%K260(:)*PCONC(:,85)*TPK%RO237(:)+TPK%K263(:)*PCONC(:,85)*TPK%RO246(:)& +&+TPK%K265(:)*TPK%RO238(:)+TPK%K267(:)*PCONC(:,85)*TPK%RO238(:)+TPK%K270(:)*PCO& +&NC(:,85)*TPK%RO247(:)+TPK%K272(:)*PCONC(:,15)*PCONC(:,39)+TPK%K273(:)*PCONC(:,& +&15)*PCONC(:,40)+TPK%K274(:)*PCONC(:,15)*PCONC(:,41)+TPK%K275(:)*PCONC(:,8)*PCO& +&NC(:,40)+TPK%K276(:)*PCONC(:,41)+TPK%K277(:)*PCONC(:,1)*TPK%RO248(:)+TPK%K278(& +&:)*PCONC(:,8)*PCONC(:,41)+2.*TPK%K280(:)*PCONC(:,85)*TPK%RO248(:)+0.28*TPK%K28& +&1(:)*PCONC(:,3)*PCONC(:,39)+0.41*TPK%K282(:)*PCONC(:,3)*PCONC(:,40)+0.3*TPK%K2& +&83(:)*TPK%O(:)*PCONC(:,39)+0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40)+TPK%K286(:)*P& +&CONC(:,85)*TPK%RO249(:)+TPK%K288(:)*PCONC(:,1)*TPK%RO250(:)+2.*TPK%K290(:)*PCO& +&NC(:,85)*TPK%RO250(:)+TPK%K292(:)*PCONC(:,10)*TPK%RO251(:)+TPK%K295(:)*PCONC(:& +&,10)*TPK%RO252(:)+TPK%K297(:)*PCONC(:,1)*TPK%RO253(:)+2.*TPK%K298(:)*PCONC(:,1& +&0)*TPK%RO253(:)+TPK%K299(:)*PCONC(:,85)*TPK%RO253(:)+TPK%K302(:)*PCONC(:,85)*T& +&PK%RO254(:)+TPK%K304(:)*PCONC(:,15)*PCONC(:,69)+TPK%K305(:)*PCONC(:,15)*PCONC(& +&:,74)+TPK%K307(:)*PCONC(:,8)*PCONC(:,69)+TPK%K308(:)*PCONC(:,69)+TPK%K309(:)*P& +&CONC(:,1)*TPK%RO255(:)+2.*TPK%K311(:)*PCONC(:,85)*TPK%RO255(:)+TPK%K312(:)*PCO& +&NC(:,15)*PCONC(:,57)+TPK%K313(:)*PCONC(:,8)*PCONC(:,57)+TPK%K317(:)*PCONC(:,83& +&)+TPK%K319(:)*PCONC(:,85)*TPK%RO256(:)+TPK%K324(:)*PCONC(:,15)*PCONC(:,71)+TPK& +&%K327(:)*PCONC(:,8)*PCONC(:,71)+TPK%K329(:)*PCONC(:,71)+TPK%K330(:)*PCONC(:,71& +&)+TPK%K331(:)*PCONC(:,1)*TPK%RO257(:)+2.*TPK%K333(:)*PCONC(:,85)*TPK%RO257(:)+& +&TPK%K338(:)*PCONC(:,8)*PCONC(:,74)+TPK%K342(:)*PCONC(:,85)*TPK%RO258(:)+TPK%K3& +&43(:)*PCONC(:,82)+TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) +!PLOSS(RO2T) = +K094*<HO2>+K095*<NO>+K096*<RO2T>+K096*<RO2T>+K111*<RO21>+K114*< +!RO22>+K117*<RO23>+K120*<RO24>+K123*<RO25>+K143*<RO26>+K145*<RO27>+K149*<RO28>+ +!K151*<RO29>+K154*<RO210>+K157*<RO211>+K160*<RO212>+K163*<RO213>+K167*<RO239>+K +!169*<RO214>+K172*<RO215>+K175*<RO216>+K178*<RO217>+K181*<RO218>+K184*<RO219>+K +!187*<RO220>+K190*<RO221>+K193*<RO222>+K196*<RO223>+K199*<RO224>+K202*<RO225>+K +!205*<RO226>+K208*<RO227>+K211*<RO228>+K214*<RO229>+K217*<RO240>+K219*<RO230>+K +!222*<RO231>+K225*<RO232>+K228*<RO241>+K232*<RO233>+K235*<RO242>+K239*<RO234>+K +!242*<RO243>+K246*<RO235>+K249*<RO244>+K253*<RO236>+K256*<RO245>+K260*<RO237>+K +!263*<RO246>+K267*<RO238>+K270*<RO247>+K280*<RO248>+K286*<RO249>+K290*<RO250>+K +!293*<RO251>+K296*<RO252>+K299*<RO253>+K302*<RO254>+K311*<RO255>+K319*<RO256>+K +!333*<RO257>+K342*<RO258> + PLOSS(:,85) = +TPK%K094(:)*PCONC(:,10)+TPK%K095(:)*PCONC(:,1)+TPK%K096(:)*PCON& +&C(:,85)+TPK%K096(:)*PCONC(:,85)+TPK%K111(:)*PCONC(:,86)+TPK%K114(:)*TPK%RO22(:& +&)+TPK%K117(:)*TPK%RO23(:)+TPK%K120(:)*TPK%RO24(:)+TPK%K123(:)*PCONC(:,87)+TPK%& +&K143(:)*TPK%RO26(:)+TPK%K145(:)*TPK%RO27(:)+TPK%K149(:)*TPK%RO28(:)+TPK%K151(:& +&)*TPK%RO29(:)+TPK%K154(:)*TPK%RO210(:)+TPK%K157(:)*TPK%RO211(:)+TPK%K160(:)*TP& +&K%RO212(:)+TPK%K163(:)*TPK%RO213(:)+TPK%K167(:)*TPK%RO239(:)+TPK%K169(:)*TPK%R& +&O214(:)+TPK%K172(:)*TPK%RO215(:)+TPK%K175(:)*TPK%RO216(:)+TPK%K178(:)*TPK%RO21& +&7(:)+TPK%K181(:)*TPK%RO218(:)+TPK%K184(:)*TPK%RO219(:)+TPK%K187(:)*TPK%RO220(:& +&)+TPK%K190(:)*TPK%RO221(:)+TPK%K193(:)*TPK%RO222(:)+TPK%K196(:)*TPK%RO223(:)+T& +&PK%K199(:)*TPK%RO224(:)+TPK%K202(:)*TPK%RO225(:)+TPK%K205(:)*TPK%RO226(:)+TPK%& +&K208(:)*TPK%RO227(:)+TPK%K211(:)*TPK%RO228(:)+TPK%K214(:)*TPK%RO229(:)+TPK%K21& +&7(:)*TPK%RO240(:)+TPK%K219(:)*TPK%RO230(:)+TPK%K222(:)*TPK%RO231(:)+TPK%K225(:& +&)*TPK%RO232(:)+TPK%K228(:)*TPK%RO241(:)+TPK%K232(:)*TPK%RO233(:)+TPK%K235(:)*T& +&PK%RO242(:)+TPK%K239(:)*TPK%RO234(:)+TPK%K242(:)*TPK%RO243(:)+TPK%K246(:)*TPK%& +&RO235(:)+TPK%K249(:)*TPK%RO244(:)+TPK%K253(:)*TPK%RO236(:)+TPK%K256(:)*TPK%RO2& +&45(:)+TPK%K260(:)*TPK%RO237(:)+TPK%K263(:)*TPK%RO246(:)+TPK%K267(:)*TPK%RO238(& +&:)+TPK%K270(:)*TPK%RO247(:)+TPK%K280(:)*TPK%RO248(:)+TPK%K286(:)*TPK%RO249(:)+& +&TPK%K290(:)*TPK%RO250(:)+TPK%K293(:)*TPK%RO251(:)+TPK%K296(:)*TPK%RO252(:)+TPK& +&%K299(:)*TPK%RO253(:)+TPK%K302(:)*TPK%RO254(:)+TPK%K311(:)*TPK%RO255(:)+TPK%K3& +&19(:)*TPK%RO256(:)+TPK%K333(:)*TPK%RO257(:)+TPK%K342(:)*TPK%RO258(:) +! +!PPROD(RO21) = +K043*<OH>*<CH4>+0.6*K052*<O>*<ETHE>+K147*<NO>*<RO28>+K149*<RO2T +!>*<RO28> + PPROD(:,86) = +TPK%K043(:)*PCONC(:,15)*TPK%CH4(:)+0.6*TPK%K052(:)*TPK%O(:)*PCO& +&NC(:,16)+TPK%K147(:)*PCONC(:,1)*TPK%RO28(:)+TPK%K149(:)*PCONC(:,85)*TPK%RO28(:& +&) +!PLOSS(RO21) = +K110*<NO>+K111*<RO2T>+K112*<HO2> + PLOSS(:,86) = +TPK%K110(:)*PCONC(:,1)+TPK%K111(:)*PCONC(:,85)+TPK%K112(:)*PCON& +&C(:,10) +! +!PPROD(RO25) = +0.28*K056*<O3>*<OLEL>+0.1*K057*<O>*<OLEL>+K058*<OH>*<ALKL>+K059 +!*<ALD2>+K063*<KETL>+K071*<KETH>+K125*<NO>*<RO26>+K143*<RO2T>*<RO26> + PPROD(:,87) = +0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+0.1*TPK%K057(:)*TPK%O(:& +&)*PCONC(:,17)+TPK%K058(:)*PCONC(:,15)*PCONC(:,19)+TPK%K059(:)*PCONC(:,29)+TPK%& +&K063(:)*PCONC(:,30)+TPK%K071(:)*PCONC(:,31)+TPK%K125(:)*PCONC(:,1)*TPK%RO26(:)& +&+TPK%K143(:)*PCONC(:,85)*TPK%RO26(:) +!PLOSS(RO25) = +K122*<NO>+K123*<RO2T>+K124*<HO2> + PLOSS(:,87) = +TPK%K122(:)*PCONC(:,1)+TPK%K123(:)*PCONC(:,85)+TPK%K124(:)*PCON& +&C(:,10) +! +RETURN +END SUBROUTINE SUB8 +! +END SUBROUTINE CH_PRODLOSS_GAZ +! +! +!======================================================================== +! !! ########################## MODULE MODI_CH_PRODLOSS_AQ !! ########################## @@ -3993,15 +9261,317 @@ INTEGER, INTENT(IN) :: KMI TYPE(CCSTYPE), POINTER :: TPK TPK=>TACCS(KMI) ! /BEGIN_CODE/ -TPK%O1D(:)=(TPK%K002(:)*PCONC(:,JP_O3))/(TPK%K020(:)*TPK%N2(:)+TPK%K021(:)*TPK%O2(:)+& - &TPK%K022(:)*TPK%H2O(:)) -TPK%O3P(:)=(TPK%K001(:)*PCONC(:,JP_NO2)+TPK%K003(:)*PCONC(:,JP_O3)+TPK%K008(:)*PCONC(:,JP_NO3)+& - &TPK%K020(:)*TPK%O1D(:)*TPK%N2(:)+TPK%K021(:)*TPK%O1D(:)*TPK%O2(:)+& - &0.00000*TPK%K079(:)*PCONC(:,JP_ALKE)*PCONC(:,JP_O3)+& - &0.09000*TPK%K080(:)*PCONC(:,JP_BIO)*PCONC(:,JP_O3))/& - &(TPK%K018(:)*TPK%O2(:)+TPK%K019(:)*PCONC(:,JP_O3)+TPK%K029(:)*PCONC(:,JP_NO)+& - &TPK%K030(:)*PCONC(:,JP_NO2)+TPK%K031(:)*PCONC(:,JP_NO2)+TPK%K054(:)*PCONC(:,JP_BIO)+& - &TPK%K055(:)*PCONC(:,JP_CARBO)) +TPK%OSD = ( +TPK%K016*PCONC(:,JP_O3) ) / & + ( +TPK%K017*TPK%H2O+TPK%K018A*TPK%N2(:)+TPK%K018B*TPK%O2(:) ) +! +TPK%O = ( +TPK%K001*PCONC(:,JP_NO2)+TPK%K014*PCONC(:,JP_NO3)+TPK%& +&K015*PCONC(:,JP_O3)+TPK%K018A*TPK%OSD*TPK%N2(:)+TPK%K018B*TPK%OSD*TPK%O2(:) ) / & +( +TPK%K002*TPK%O2(:)+TPK%K003*PCONC(:,JP_NO2)+TPK%K004*PCONC(:,JP_NO2)+TPK%K034*& +PCONC(:,JP_O3)+TPK%K038*PCONC(:,JP_NO)+TPK%K052*PCONC(:,JP_ETHE)+& +&TPK%K057*PCONC(:,JP_OLEL)+TPK%K067*PCONC(:,JP_ISOP)+TPK%K077*PCONC(:,& +&JP_OLEH)+TPK%K087*PCONC(:,JP_BIOL)+TPK%K091*PCONC(:,JP_BIOH)+TPK%K283& +&*PCONC(:,JP_MVK)+TPK%K284*PCONC(:,JP_MCR) ) +! +TPK%RO225 = ( TPK%K085*PCONC(:,JP_BIOL)*PCONC(:,JP_NO3) ) / & +( +TPK%K201*PCONC(:,JP_NO)+TPK%K202*PCONC(:,JP_RO2T)+TPK%K203*PCONC(:,JP_HO2)) +! +TPK%RO228 = ( TPK%K089*PCONC(:,JP_BIOH)*PCONC(:,JP_NO3) ) / & +( +TPK%K210*PCONC(:,JP_NO)+TPK%K211*PCONC(:,JP_RO2T)+TPK%K212*PCONC(:,JP_HO2)) + +! +TPK%RO253 = ( +0.41*TPK%K282*PCONC(:,JP_MCR)*PCONC(:,JP_O3) ) / & +( +TPK%K297*PCONC(:,JP_NO)+TPK%K298*PCONC(:,JP_HO2)+TPK%K299*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO254 = ( +TPK%K140*PCONC(:,JP_PAN6)+TPK%K297*TPK%RO253*& +&PCONC(:,JP_NO)+TPK%K298*TPK%RO253*PCONC(:,JP_HO2)+TPK%K299*& +&TPK%RO253*PCONC(:,JP_RO2T) ) / & +( +TPK%K131*PCONC(:,JP_NO2)+TPK%K300*PCONC(:,JP_NO)+TPK%K301*PCONC(& +&:,JP_HO2)+TPK%K302*PCONC(:,JP_RO2T) ) +! +TPK%RO213 = ( +0.271*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3) ) / & +( +TPK%K162*PCONC(:,JP_NO)+TPK%K163*PCONC(:,JP_RO2T)+TPK%K164*PCONC& +&(:,JP_HO2) ) +! +TPK%RO239 = ( +TPK%K137*PCONC(:,JP_PAN3)+TPK%K162*TPK%RO213*& +&PCONC(:,JP_NO)+TPK%K163*TPK%RO213*PCONC(:,JP_RO2T)+TPK%K164*TPK%RO213*PCONC(:,JP_HO2) ) / & +( +TPK%K128*PCONC(:,JP_NO2)+TPK%K165*PCONC(:,JP_NO)+TPK%K166*PCONC(& +&:,JP_HO2)+TPK%K167*PCONC(:,JP_RO2T) ) +! +TPK%RO248 = ( +TPK%K141*PCONC(:,JP_PAN4)+TPK%K274*PCONC(:,JP_MGLY)*P& +&CONC(:,JP_OH)+TPK%K278*PCONC(:,JP_MGLY)*PCONC(:,JP_NO3) ) / & +( +TPK%K129*PCONC(:,JP_NO2)+TPK%K277*PCONC(:,JP_NO)+TPK%K279*PCONC(& +&:,JP_HO2)+TPK%K280*PCONC(:,JP_RO2T) ) +! +TPK%RO249 = ( +TPK%K272*PCONC(:,JP_MVK)*PCONC(:,JP_OH) ) / & +( +TPK%K285*PCONC(:,JP_NO)+TPK%K286*PCONC(:,JP_RO2T)+TPK%K287*PCONC& +&(:,JP_HO2) ) +! +TPK%RO250 = ( +0.3750353*TPK%K139*PCONC(:,JP_APAN)+TPK%CF46*TPK%K2& +&73*PCONC(:,JP_MCR)*PCONC(:,JP_OH)+TPK%CF46*TPK%K275*PCONC(:,JP_MCR)*PCONC& +&(:,JP_NO3) ) / & +( +TPK%K130*PCONC(:,JP_NO2)+TPK%K288*PCONC(:,JP_NO)+TPK%K289*PCONC(& +&:,JP_HO2)+TPK%K290*PCONC(:,JP_RO2T) ) +! +TPK%RO214 = ( +0.095*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3)+TPK%K1& +&65*TPK%RO239*PCONC(:,JP_NO)+TPK%K167*TPK%RO239*PCONC(:,JP_R& +&O2T)+TPK%K288*TPK%RO250*PCONC(:,JP_NO)+TPK%K290*TPK%RO250& +&*PCONC(:,JP_RO2T) ) / & +( +TPK%K168*PCONC(:,JP_NO)+TPK%K169*PCONC(:,JP_RO2T)+TPK%K170*PCONC& +&(:,JP_HO2) ) +! +TPK%RO251 = ( +TPK%CF47*TPK%K273*PCONC(:,JP_MCR)*PCONC(:,JP_OH) ) / & +( +TPK%K291*PCONC(:,JP_NO)+TPK%K292*PCONC(:,JP_HO2)+TPK%K293*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO252 = ( +TPK%CF47*TPK%K275*PCONC(:,JP_MCR)*PCONC(:,JP_NO3) ) /& +( +TPK%K294*PCONC(:,JP_NO)+TPK%K295*PCONC(:,JP_HO2)+TPK%K296*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO258 = ( +TPK%K138*PCONC(:,JP_PN10)+TPK%K305*PCONC(:,JP_RP16)*P& +&CONC(:,JP_OH)+TPK%K338*PCONC(:,JP_RP16)*PCONC(:,JP_NO3) ) / & +( +TPK%K134*PCONC(:,JP_NO2)+TPK%K340*PCONC(:,JP_NO)+TPK%K341*PCONC(& +&:,JP_HO2)+TPK%K342*PCONC(:,JP_RO2T) ) +! +TPK%RO255 = ( +TPK%K304*PCONC(:,JP_RPR1)*PCONC(:,JP_OH)+TPK%K307*PCO& +&NC(:,JP_RPR1)*PCONC(:,JP_NO3)+TPK%K343*PCONC(:,JP_PAN7) ) / & +( +TPK%K132*PCONC(:,JP_NO2)+TPK%K309*PCONC(:,JP_NO)+TPK%K310*PCONC(& +&:,JP_HO2)+TPK%K311*PCONC(:,JP_RO2T) ) +! +TPK%RO256 = ( +TPK%K312*PCONC(:,JP_RPR3)*PCONC(:,JP_OH)+TPK%K313*PCO& +&NC(:,JP_RPR3)*PCONC(:,JP_NO3)+TPK%K317*PCONC(:,JP_PAN8) ) / & +( +TPK%K315*PCONC(:,JP_NO)+TPK%K316*PCONC(:,JP_NO2)+TPK%K318*PCONC(& +&:,JP_HO2)+TPK%K319*PCONC(:,JP_RO2T) ) +! +TPK%RO257 = ( +0.6249651*TPK%K139*PCONC(:,JP_APAN)+TPK%K324*PCONC(:,& +&JP_RPR8)*PCONC(:,JP_OH)+TPK%K327*PCONC(:,JP_RPR8)*PCONC(:,JP_NO3)+TPK%K3& +&30*PCONC(:,JP_RPR8) ) / & +( +TPK%K133*PCONC(:,JP_NO2)+TPK%K331*PCONC(:,JP_NO)+TPK%K332*PCONC(& +&:,JP_HO2)+TPK%K333*PCONC(:,JP_RO2T) ) +! +TPK%RO29 = ( +0.66*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH)+TPK%K329& +&*PCONC(:,JP_RPR8)+TPK%K331*TPK%RO257*PCONC(:,JP_NO)+TPK%K333*TPK%RO257*& +PCONC(:,JP_RO2T) ) / & +( +TPK%K150*PCONC(:,JP_NO)+TPK%K151*PCONC(:,JP_RO2T)+TPK%K152*PCONC& +&(:,JP_HO2) ) +! +!avoid division by zero in prodloss +WHERE (PCONC(:,JP_NO2)>0.) + TPK%RAD1 = ( +TPK%K072*PCONC(:,JP_AROO)*PCONC(:,JP_NO3) ) / & + ( +TPK%K103*PCONC(:,JP_NO2) ) +! + TPK%RAD8 = ( +TPK%K320*PCONC(:,JP_RPR4)*PCONC(:,JP_NO3) ) / & + ( +TPK%K321*PCONC(:,JP_NO2) ) +ELSEWHERE + TPK%RAD1 = 0. + TPK%RAD8 = 0. +ENDWHERE +! +TPK%RAD2 = ( +0.74*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & +( +TPK%K097+TPK%K104*PCONC(:,JP_NO2) ) +! +TPK%RAD3 = ( +0.74*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & +( +TPK%K098+TPK%K105*PCONC(:,JP_NO2) ) +! +TPK%RAD4 = ( +0.84*TPK%K080*PCONC(:,JP_AROH)*PCONC(:,JP_OH) ) / & +( +TPK%K099+TPK%K106*PCONC(:,JP_NO2) ) +! +TPK%RAD5 = ( +TPK%CF40*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) / & +( +TPK%K100+TPK%K107*PCONC(:,JP_NO2) ) +! +TPK%RAD6 = ( +0.74*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & +( +TPK%K101+TPK%K108*PCONC(:,JP_NO2) ) +! +TPK%RAD7 = ( +0.74*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & +( +TPK%K102+TPK%K109*PCONC(:,JP_NO2) ) +! +TPK%RO22 = ( +TPK%K049*PCONC(:,JP_ETHE)*PCONC(:,JP_OH)+TPK%CF2*TPK& +&%K053*PCONC(:,JP_ETOH)*PCONC(:,JP_OH)+TPK%K054*PCONC(:,JP_OLEL)*PCONC(:,JP_& +&OH)+TPK%K069*PCONC(:,JP_ALCH)*PCONC(:,JP_OH) ) / & +( +TPK%K113*PCONC(:,JP_NO)+TPK%K114*PCONC(:,JP_RO2T)+TPK%K115*PCONC& +&(:,JP_HO2) ) +! +TPK%RO23 = ( +TPK%K050*PCONC(:,JP_ETHE)*PCONC(:,JP_NO3)+TPK%K055*PCO& +&NC(:,JP_OLEL)*PCONC(:,JP_NO3) ) / & +( +TPK%K116*PCONC(:,JP_NO)+TPK%K117*PCONC(:,JP_RO2T)+TPK%K118*PCONC& +&(:,JP_HO2) ) +! +TPK%RO24 = ( +0.4*TPK%K052*PCONC(:,JP_ETHE)*TPK%O+0.1*TPK%K0& +&57*PCONC(:,JP_OLEL)*TPK%O+0.1*TPK%K077*PCONC(:,JP_OLEH)*& +&TPK%O+0.15*TPK%K283*PCONC(:,JP_MVK)*TPK%O ) / & +( +TPK%K119*PCONC(:,JP_NO)+TPK%K120*PCONC(:,JP_RO2T)+TPK%K121*PCONC& +&(:,JP_HO2) ) +! +TPK%RO26 = ( +TPK%K060*PCONC(:,JP_ALD2)*PCONC(:,JP_OH)+TPK%K061*PCON& +&C(:,JP_ALD2)*PCONC(:,JP_NO3)+TPK%K135*PCONC(:,JP_PAN1) ) / & +( +TPK%K125*PCONC(:,JP_NO)+TPK%K126*PCONC(:,JP_NO2)+TPK%K142*PCONC(& +&:,JP_HO2)+TPK%K143*PCONC(:,JP_RO2T) ) +! +TPK%RO27 = ( +TPK%K062*PCONC(:,JP_KETL)*PCONC(:,JP_OH)+TPK%CF8*TPK& +&%K168*TPK%RO214*PCONC(:,JP_NO)+TPK%K169*TPK%RO214*PCONC(:,J& +&P_RO2T)+TPK%K170*TPK%RO214*PCONC(:,JP_HO2)+0.15*TPK%K284*PCONC(:& +&,JP_MCR)*TPK%O ) / & +( +TPK%K144*PCONC(:,JP_NO)+TPK%K145*PCONC(:,JP_RO2T)+TPK%K146*PCONC& +&(:,JP_HO2) ) +! +TPK%RO210 = ( +0.34*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH) ) / & +( +TPK%K153*PCONC(:,JP_NO)+TPK%K154*PCONC(:,JP_RO2T)+TPK%K155*PCONC& +&(:,JP_HO2) ) +! +TPK%RO211 = ( +0.66*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & +( +TPK%K156*PCONC(:,JP_NO)+TPK%K157*PCONC(:,JP_RO2T)+TPK%K158*PCONC& +&(:,JP_HO2) ) +! +TPK%RO212 = ( +0.34*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & +( +TPK%K159*PCONC(:,JP_NO)+TPK%K160*PCONC(:,JP_RO2T)+TPK%K161*PCONC& +&(:,JP_HO2) ) +! +TPK%RO215 = ( +TPK%K068*PCONC(:,JP_MTBE)*PCONC(:,JP_OH) ) / & +( +TPK%K171*PCONC(:,JP_NO)+TPK%K172*PCONC(:,JP_RO2T)+TPK%K173*PCONC& +&(:,JP_HO2) ) +! +TPK%RO216 = ( +TPK%K070*PCONC(:,JP_KETH)*PCONC(:,JP_OH) ) / & +( +TPK%K174*PCONC(:,JP_NO)+TPK%K175*PCONC(:,JP_RO2T)+TPK%K176*PCONC& +&(:,JP_HO2) ) +! +TPK%RO217 = ( +0.1*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & +( +TPK%K177*PCONC(:,JP_NO)+TPK%K178*PCONC(:,JP_RO2T)+TPK%K179*PCONC& +&(:,JP_HO2) ) +! +TPK%RO220 = ( +0.28*TPK%K076*PCONC(:,JP_OLEH)*PCONC(:,JP_O3)+0.1*TPK& +&%K077*PCONC(:,JP_OLEH)*TPK%O+TPK%K078*PCONC(:,JP_ALKM)*PCONC(:,JP_O& +&H)+TPK%K308*PCONC(:,JP_RPR1)+TPK%K309*TPK%RO255*PCONC(:,JP_NO)+T& +&PK%K311*TPK%RO255*PCONC(:,JP_RO2T) ) / & +( +TPK%K186*PCONC(:,JP_NO)+TPK%K187*PCONC(:,JP_RO2T)+TPK%K188*PCONC& +&(:,JP_HO2) ) +! +TPK%RO218 = ( +TPK%K074*PCONC(:,JP_OLEH)*PCONC(:,JP_OH)+TPK%CF18*TPK%K186*& +TPK%RO220*PCONC(:,JP_NO)+TPK%K187*TPK%RO220*PCONC(:& +&,JP_RO2T)+TPK%K188*TPK%RO220*PCONC(:,JP_HO2) ) / & +( +TPK%K180*PCONC(:,JP_NO)+TPK%K181*PCONC(:,JP_RO2T)+TPK%K182*PCONC& +&(:,JP_HO2) ) +! +TPK%RO219 = ( +TPK%K075*PCONC(:,JP_OLEH)*PCONC(:,JP_NO3) ) / & +( +TPK%K183*PCONC(:,JP_NO)+TPK%K184*PCONC(:,JP_RO2T)+TPK%K185*PCONC& +&(:,JP_HO2) ) +! +TPK%RO221 = ( +0.1*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & +( +TPK%K189*PCONC(:,JP_NO)+TPK%K190*PCONC(:,JP_RO2T)+TPK%K191*PCONC& +&(:,JP_HO2) ) +! +TPK%RO222 = ( +TPK%CF45*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) /& +& & +( +TPK%K192*PCONC(:,JP_NO)+TPK%K193*PCONC(:,JP_RO2T)+TPK%K194*PCONC& +&(:,JP_HO2) ) +! +TPK%RO223 = ( +0.1*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & +( +TPK%K195*PCONC(:,JP_NO)+TPK%K196*PCONC(:,JP_RO2T)+TPK%K197*PCONC& +&(:,JP_HO2) ) +! +TPK%RO224 = ( +TPK%K084*PCONC(:,JP_BIOL)*PCONC(:,JP_OH) ) / & +( +TPK%K198*PCONC(:,JP_NO)+TPK%K199*PCONC(:,JP_RO2T)+TPK%K200*PCONC& +&(:,JP_HO2) ) +! +TPK%RO226 = ( +0.445*TPK%K086*PCONC(:,JP_BIOL)*PCONC(:,JP_O3) ) / & +( +TPK%K204*PCONC(:,JP_NO)+TPK%K205*PCONC(:,JP_RO2T)+TPK%K206*PCONC& +&(:,JP_HO2) ) +! +TPK%RO227 = ( +TPK%K088*PCONC(:,JP_BIOH)*PCONC(:,JP_OH) ) / & +( +TPK%K207*PCONC(:,JP_NO)+TPK%K208*PCONC(:,JP_RO2T)+TPK%K209*PCONC& +&(:,JP_HO2) ) +! +TPK%RO229 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & +( +TPK%K213*PCONC(:,JP_NO)+TPK%K214*PCONC(:,JP_RO2T)+TPK%K215*PCONC& +&(:,JP_HO2) ) +! +TPK%RO230 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & +( +TPK%K219*PCONC(:,JP_RO2T)+TPK%K220*PCONC(:,JP_HO2)+TPK%K344*PCON& +&C(:,JP_NO) ) +! +TPK%RO231 = ( +0.1*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & +( +TPK%K221*PCONC(:,JP_NO)+TPK%K222*PCONC(:,JP_RO2T)+TPK%K223*PCONC& +&(:,JP_HO2) ) +! +TPK%RO232 = ( +TPK%K093*PCONC(:,JP_ALKH)*PCONC(:,JP_OH) ) / & +( +TPK%K224*PCONC(:,JP_NO)+TPK%K225*PCONC(:,JP_RO2T)+TPK%K226*PCONC& +&(:,JP_HO2) ) +! +TPK%RO233 = ( +TPK%K097*TPK%RAD2 ) / & +( +TPK%K230+TPK%K231*PCONC(:,JP_NO)+TPK%K232*PCONC(:,JP_RO2T)+TPK%K233*& +PCONC(:,JP_HO2) ) +! +TPK%RO234 = ( +TPK%K098*TPK%RAD3 ) / & +( +TPK%K237+TPK%K238*PCONC(:,JP_NO)+TPK%K239*PCONC(:,JP_RO2T)+TPK%K240*& +PCONC(:,JP_HO2) ) +! +TPK%RO235 = ( +TPK%K099*TPK%RAD4 ) / & +( +TPK%K244+TPK%K245*PCONC(:,JP_NO)+TPK%K246*PCONC(:,JP_RO2T)+TPK%K247*& +PCONC(:,JP_HO2) ) +! +TPK%RO236 = ( +TPK%K100*TPK%RAD5 ) / & +( +TPK%K251+TPK%K252*PCONC(:,JP_NO)+TPK%K253*PCONC(:,JP_RO2T)+TPK%K254*& +PCONC(:,JP_HO2) ) +! +TPK%RO237 = ( +TPK%K101*TPK%RAD6 ) / & +( +TPK%K258+TPK%K259*PCONC(:,JP_NO)+TPK%K260*PCONC(:,JP_RO2T)+TPK%K261*& +PCONC(:,JP_HO2) ) +! +TPK%RO238 = ( +TPK%K102*TPK%RAD7 ) / & +( +TPK%K265+TPK%K266*PCONC(:,JP_NO)+TPK%K267*PCONC(:,JP_RO2T)+TPK%K268*& +PCONC(:,JP_HO2) ) +! +TPK%RO240 = ( +TPK%CF30*TPK%K213*TPK%RO229*PCONC(:,JP_NO)+TPK%K214*& +TPK%RO229*PCONC(:,JP_RO2T)+TPK%K215*TPK%RO229*PCON& +&C(:,JP_HO2) ) / & +( +TPK%K216*PCONC(:,JP_NO)+TPK%K217*PCONC(:,JP_RO2T)+TPK%K218*PCONC& +&(:,JP_HO2) ) +! +TPK%RO241 = ( +TPK%CF34*TPK%K224*TPK%RO232*PCONC(:,JP_NO)+TPK%K225*& +TPK%RO232*PCONC(:,JP_RO2T)+TPK%K226*TPK%RO232*PCON& +&C(:,JP_HO2) ) / & +( +TPK%K227*PCONC(:,JP_NO)+TPK%K228*PCONC(:,JP_RO2T)+TPK%K229*PCONC& +&(:,JP_HO2) ) +! +TPK%RO242 = ( +TPK%K230*TPK%RO233 ) / & +( +TPK%K234*PCONC(:,JP_NO)+TPK%K235*PCONC(:,JP_RO2T)+TPK%K236*PCONC& +&(:,JP_HO2) ) +! +TPK%RO243 = ( +TPK%K237*TPK%RO234 ) / & +( +TPK%K241*PCONC(:,JP_NO)+TPK%K242*PCONC(:,JP_RO2T)+TPK%K243*PCONC& +&(:,JP_HO2) ) +! +TPK%RO244 = ( +TPK%K244*TPK%RO235 ) / & +( +TPK%K248*PCONC(:,JP_NO)+TPK%K249*PCONC(:,JP_RO2T)+TPK%K250*PCONC& +&(:,JP_HO2) ) +! +TPK%RO245 = ( +TPK%K251*TPK%RO236 ) / & +( +TPK%K255*PCONC(:,JP_NO)+TPK%K256*PCONC(:,JP_RO2T)+TPK%K257*PCONC& +&(:,JP_HO2) ) +! +TPK%RO246 = ( +TPK%K258*TPK%RO237 ) / & +( +TPK%K262*PCONC(:,JP_NO)+TPK%K263*PCONC(:,JP_RO2T)+TPK%K264*PCONC& +&(:,JP_HO2) ) +! +TPK%RO247 = ( +TPK%K265*TPK%RO238 ) / & +( +TPK%K269*PCONC(:,JP_NO)+TPK%K270*PCONC(:,JP_RO2T)+TPK%K271*PCONC& +&(:,JP_HO2) ) +! +TPK%RO28 = ( +TPK%K063*PCONC(:,JP_KETL)+TPK%K071*PCONC(:,JP_KETH)+TP& +&K%K136*PCONC(:,JP_PAN2)+TPK%K144*TPK%RO27*PCONC(:,JP_NO)+TPK%& +&K145*TPK%RO27*PCONC(:,JP_RO2T)+TPK%K146*TPK%RO27*PCONC(:,JP& +&_HO2)+TPK%K174*TPK%RO216*PCONC(:,JP_NO)+TPK%K175*TPK%RO21& +&6*PCONC(:,JP_RO2T)+TPK%K176*TPK%RO216*PCONC(:,JP_HO2)+TPK%K204*& +&TPK%RO226*PCONC(:,JP_NO)+TPK%K205*TPK%RO226*PCONC(:,JP_RO2T)& +&+TPK%K206*TPK%RO226*PCONC(:,JP_HO2)+TPK%K216*TPK%RO240*& +&PCONC(:,JP_NO)+TPK%K217*TPK%RO240*PCONC(:,JP_RO2T)+TPK%K218*& +&TPK%RO240*PCONC(:,JP_HO2)+TPK%K219*TPK%RO230*PCONC(:,JP_RO2T)+T& +&PK%K220*TPK%RO230*PCONC(:,JP_HO2)+TPK%K276*PCONC(:,JP_MGLY)+TPK%K277*& +TPK%RO248*PCONC(:,JP_NO)+TPK%K280*TPK%RO248*PCONC(:& +&,JP_RO2T)+0.28*TPK%K281*PCONC(:,JP_MVK)*PCONC(:,JP_O3)+0.15*TPK%K283*PCO& +&NC(:,JP_MVK)*TPK%O+TPK%K344*TPK%RO230*PCONC(:,JP_NO) ) / & +( +TPK%K127*PCONC(:,JP_NO2)+TPK%K147*PCONC(:,JP_NO)+TPK%K148*PCONC(& +&:,JP_HO2)+TPK%K149*PCONC(:,JP_RO2T) ) +! ! /END_CODE/ CALL SUB0 CALL SUB1 @@ -4013,6 +9583,13 @@ CALL SUB6 CALL SUB7 CALL SUB8 CALL SUB9 +CALL SUB10 +CALL SUB11 +CALL SUB12 +CALL SUB13 +CALL SUB14 +CALL SUB15 +CALL SUB16 CONTAINS @@ -4021,132 +9598,350 @@ SUBROUTINE SUB0 !Indices 1 a 10 ! ! -!PPROD(O3) = +K018*<O3P>*<O2>+0.17307*K0102*<CARBOP>*<HO2>+KTC21*<WC_O3>+KTR21* -!<WR_O3> - PPROD(:,1) = +TPK%K018(:)*TPK%O3P(:)*TPK%O2(:)+0.17307*TPK%K0102(:)*PCONC(:,39& -&)*PCONC(:,15)+TPK%KTC21(:)*PCONC(:,42)+TPK%KTR21(:)*PCONC(:,67) -!PLOSS(O3) = +K002+K003+K019*<O3P>+K023*<OH>+K024*<HO2>+K042*<NO>+K043*<NO2>+K0 -!79*<ALKE>+K080*<BIO>+K081*<CARBO>+K082*<PAN>+K087*<ADD>+KTC1+KTR1 - PLOSS(:,1) = +TPK%K002(:)+TPK%K003(:)+TPK%K019(:)*TPK%O3P(:)+TPK%K023(:)*PCONC& -&(:,14)+TPK%K024(:)*PCONC(:,15)+TPK%K042(:)*PCONC(:,3)+TPK%K043(:)*PCONC(:,4)+T& -&PK%K079(:)*PCONC(:,19)+TPK%K080(:)*PCONC(:,20)+TPK%K081(:)*PCONC(:,25)+TPK%K08& -&2(:)*PCONC(:,27)+TPK%K087(:)*PCONC(:,37)+TPK%KTC1(:)+TPK%KTR1(:) -! -!PPROD(H2O2) = +K027*<HO2>*<HO2>+K028*<HO2>*<HO2>*<H2O>+0.01833*K079*<ALKE>*<O3 -!>+0.00100*K080*<BIO>*<O3>+KTC22*<WC_H2O2>+KTR22*<WR_H2O2> - PPROD(:,2) = +TPK%K027(:)*PCONC(:,15)*PCONC(:,15)+TPK%K028(:)*PCONC(:,15)*PCON& -&C(:,15)*TPK%H2O(:)+0.01833*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.00100*TPK%K080& -&(:)*PCONC(:,20)*PCONC(:,1)+TPK%KTC22(:)*PCONC(:,43)+TPK%KTR22(:)*PCONC(:,68) -!PLOSS(H2O2) = +K009+K026*<OH>+KTC2+KTR2 - PLOSS(:,2) = +TPK%K009(:)+TPK%K026(:)*PCONC(:,14)+TPK%KTC2(:)+TPK%KTR2(:) -! -!PPROD(NO) = +K001*<NO2>+K004*<HONO>+K007*<NO3>+K030*<O3P>*<NO2>+K046*<NO3>*<NO -!2>+KTC23*<WC_NO>+KTR23*<WR_NO> - PPROD(:,3) = +TPK%K001(:)*PCONC(:,4)+TPK%K004(:)*PCONC(:,7)+TPK%K007(:)*PCONC(& -&:,5)+TPK%K030(:)*TPK%O3P(:)*PCONC(:,4)+TPK%K046(:)*PCONC(:,5)*PCONC(:,4)+TPK%K& -&TC23(:)*PCONC(:,44)+TPK%KTR23(:)*PCONC(:,69) -!PLOSS(NO) = +K029*<O3P>+K032*<OH>+K035*<HO2>+K042*<O3>+K044*<NO>*<O2>+K044*<NO -!>*<O2>+K045*<NO3>+K090*<MO2>+K091*<ALKAP>+K092*<ALKEP>+K093*<BIOP>+K094*<AROP> -!+K095*<CARBOP>+K096*<OLN>+K130*<XO2>+KTC3+KTR3 - PLOSS(:,3) = +TPK%K029(:)*TPK%O3P(:)+TPK%K032(:)*PCONC(:,14)+TPK%K035(:)*PCONC& -&(:,15)+TPK%K042(:)*PCONC(:,1)+TPK%K044(:)*PCONC(:,3)*TPK%O2(:)+TPK%K044(:)*PCO& -&NC(:,3)*TPK%O2(:)+TPK%K045(:)*PCONC(:,5)+TPK%K090(:)*PCONC(:,32)+TPK%K091(:)*P& -&CONC(:,33)+TPK%K092(:)*PCONC(:,34)+TPK%K093(:)*PCONC(:,35)+TPK%K094(:)*PCONC(:& -&,38)+TPK%K095(:)*PCONC(:,39)+TPK%K096(:)*PCONC(:,40)+TPK%K130(:)*PCONC(:,41)+T& -&PK%KTC3(:)+TPK%KTR3(:) -! -!PPROD(NO2) = +K005*<HNO3>+0.65*K006*<HNO4>+K008*<NO3>+K017*<ONIT>+K029*<O3P>*< -!NO>+K034*<OH>*<NO3>+K035*<HO2>*<NO>+K037*<HNO4>+0.7*K038*<HO2>*<NO3>+K039*<OH> -!*<HONO>+K041*<OH>*<HNO4>+K042*<O3>*<NO>+K044*<NO>*<NO>*<O2>+K044*<NO>*<NO>*<O2 -!>+K045*<NO3>*<NO>+K045*<NO3>*<NO>+K046*<NO3>*<NO2>+K048*<N2O5>+K049*<NO3>*<NO3 -!>+K049*<NO3>*<NO3>+K071*<ONIT>*<OH>+0.10530*K074*<CARBO>*<NO3>+0.40*K078*<PAN> -!*<NO3>+0.70*K082*<PAN>*<O3>+K089*<PAN>+K090*<MO2>*<NO>+0.91541*K091*<ALKAP>*<N -!O>+K092*<ALKEP>*<NO>+0.84700*K093*<BIOP>*<NO>+0.95115*K094*<AROP>*<NO>+K095*<C -!ARBOP>*<NO>+1.81599*K096*<OLN>*<NO>+0.32440*K110*<OLN>*<MO2>+0.00000*K116*<OLN -!>*<CARBOP>+0.00000*K118*<OLN>*<OLN>+K119*<MO2>*<NO3>+K120*<ALKAP>*<NO3>+K121*< -!ALKEP>*<NO3>+K122*<BIOP>*<NO3>+K123*<AROP>*<NO3>+K124*<CARBOP>*<NO3>+1.74072*K -!125*<OLN>*<NO3>+K130*<XO2>*<NO>+K131*<XO2>*<NO3>+KTC24*<WC_NO2>+KTR24*<WR_NO2> - PPROD(:,4) = +TPK%K005(:)*PCONC(:,8)+0.65*TPK%K006(:)*PCONC(:,9)+TPK%K008(:)*P& -&CONC(:,5)+TPK%K017(:)*PCONC(:,26)+TPK%K029(:)*TPK%O3P(:)*PCONC(:,3)+TPK%K034(:& -&)*PCONC(:,14)*PCONC(:,5)+TPK%K035(:)*PCONC(:,15)*PCONC(:,3)+TPK%K037(:)*PCONC(& -&:,9)+0.7*TPK%K038(:)*PCONC(:,15)*PCONC(:,5)+TPK%K039(:)*PCONC(:,14)*PCONC(:,7)& -&+TPK%K041(:)*PCONC(:,14)*PCONC(:,9)+TPK%K042(:)*PCONC(:,1)*PCONC(:,3)+TPK%K044& -&(:)*PCONC(:,3)*PCONC(:,3)*TPK%O2(:)+TPK%K044(:)*PCONC(:,3)*PCONC(:,3)*TPK%O2(:& -&)+TPK%K045(:)*PCONC(:,5)*PCONC(:,3)+TPK%K045(:)*PCONC(:,5)*PCONC(:,3)+TPK%K046& -&(:)*PCONC(:,5)*PCONC(:,4)+TPK%K048(:)*PCONC(:,6)+TPK%K049(:)*PCONC(:,5)*PCONC(& -&:,5)+TPK%K049(:)*PCONC(:,5)*PCONC(:,5)+TPK%K071(:)*PCONC(:,26)*PCONC(:,14)+0.1& -&0530*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.40*TPK%K078(:)*PCONC(:,27)*PCONC(:,5& -&)+0.70*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+TPK%K089(:)*PCONC(:,27)+TPK%K090(:)*& -&PCONC(:,32)*PCONC(:,3)+0.91541*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+TPK%K092(:)*& -&PCONC(:,34)*PCONC(:,3)+0.84700*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0.95115*TPK%& -&K094(:)*PCONC(:,38)*PCONC(:,3)+TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+1.81599*TPK%& -&K096(:)*PCONC(:,40)*PCONC(:,3)+0.32440*TPK%K110(:)*PCONC(:,40)*PCONC(:,32)+0.0& -&0000*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)*PCONC& -&(:,40)+TPK%K119(:)*PCONC(:,32)*PCONC(:,5)+TPK%K120(:)*PCONC(:,33)*PCONC(:,5)+T& -&PK%K121(:)*PCONC(:,34)*PCONC(:,5)+TPK%K122(:)*PCONC(:,35)*PCONC(:,5)+TPK%K123(& -&:)*PCONC(:,38)*PCONC(:,5)+TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+1.74072*TPK%K125(& -&:)*PCONC(:,40)*PCONC(:,5)+TPK%K130(:)*PCONC(:,41)*PCONC(:,3)+TPK%K131(:)*PCONC& -&(:,41)*PCONC(:,5)+TPK%KTC24(:)*PCONC(:,45)+TPK%KTR24(:)*PCONC(:,70) -!PLOSS(NO2) = +K001+K030*<O3P>+K031*<O3P>+K033*<OH>+K036*<HO2>+K043*<O3>+K046*< -!NO3>+K047*<NO3>+K083*<PHO>+K085*<ADD>+K088*<CARBOP>+KTC4+KTR4 - PLOSS(:,4) = +TPK%K001(:)+TPK%K030(:)*TPK%O3P(:)+TPK%K031(:)*TPK%O3P(:)+TPK%K0& -&33(:)*PCONC(:,14)+TPK%K036(:)*PCONC(:,15)+TPK%K043(:)*PCONC(:,1)+TPK%K046(:)*P& -&CONC(:,5)+TPK%K047(:)*PCONC(:,5)+TPK%K083(:)*PCONC(:,36)+TPK%K085(:)*PCONC(:,3& -&7)+TPK%K088(:)*PCONC(:,39)+TPK%KTC4(:)+TPK%KTR4(:) -! -!PPROD(NO3) = +0.35*K006*<HNO4>+K031*<O3P>*<NO2>+K040*<OH>*<HNO3>+K043*<O3>*<NO -!2>+K048*<N2O5>+0.71893*K070*<PAN>*<OH>+0.60*K078*<PAN>*<NO3>+KTC25*<WC_NO3>+KT -!R25*<WR_NO3> - PPROD(:,5) = +0.35*TPK%K006(:)*PCONC(:,9)+TPK%K031(:)*TPK%O3P(:)*PCONC(:,4)+TP& -&K%K040(:)*PCONC(:,14)*PCONC(:,8)+TPK%K043(:)*PCONC(:,1)*PCONC(:,4)+TPK%K048(:)& -&*PCONC(:,6)+0.71893*TPK%K070(:)*PCONC(:,27)*PCONC(:,14)+0.60*TPK%K078(:)*PCONC& -&(:,27)*PCONC(:,5)+TPK%KTC25(:)*PCONC(:,46)+TPK%KTR25(:)*PCONC(:,71) -!PLOSS(NO3) = +K007+K008+K034*<OH>+K038*<HO2>+K045*<NO>+K046*<NO2>+K047*<NO2>+K -!049*<NO3>+K049*<NO3>+K072*<HCHO>+K073*<ALD>+K074*<CARBO>+K075*<ARO>+K076*<ALKE -!>+K077*<BIO>+K078*<PAN>+K119*<MO2>+K120*<ALKAP>+K121*<ALKEP>+K122*<BIOP>+K123* -!<AROP>+K124*<CARBOP>+K125*<OLN>+K131*<XO2>+KTC5+KTR5 - PLOSS(:,5) = +TPK%K007(:)+TPK%K008(:)+TPK%K034(:)*PCONC(:,14)+TPK%K038(:)*PCON& -&C(:,15)+TPK%K045(:)*PCONC(:,3)+TPK%K046(:)*PCONC(:,4)+TPK%K047(:)*PCONC(:,4)+T& -&PK%K049(:)*PCONC(:,5)+TPK%K049(:)*PCONC(:,5)+TPK%K072(:)*PCONC(:,22)+TPK%K073(& -&:)*PCONC(:,23)+TPK%K074(:)*PCONC(:,25)+TPK%K075(:)*PCONC(:,21)+TPK%K076(:)*PCO& -&NC(:,19)+TPK%K077(:)*PCONC(:,20)+TPK%K078(:)*PCONC(:,27)+TPK%K119(:)*PCONC(:,3& -&2)+TPK%K120(:)*PCONC(:,33)+TPK%K121(:)*PCONC(:,34)+TPK%K122(:)*PCONC(:,35)+TPK& -&%K123(:)*PCONC(:,38)+TPK%K124(:)*PCONC(:,39)+TPK%K125(:)*PCONC(:,40)+TPK%K131(& -&:)*PCONC(:,41)+TPK%KTC5(:)+TPK%KTR5(:) -! -!PPROD(N2O5) = +K047*<NO3>*<NO2>+KTC26*<WC_N2O5>+KTR26*<WR_N2O5> - PPROD(:,6) = +TPK%K047(:)*PCONC(:,5)*PCONC(:,4)+TPK%KTC26(:)*PCONC(:,47)+TPK%K& -&TR26(:)*PCONC(:,72) -!PLOSS(N2O5) = +K048+KTC6+KTR6 - PLOSS(:,6) = +TPK%K048(:)+TPK%KTC6(:)+TPK%KTR6(:) -! -!PPROD(HONO) = +K032*<OH>*<NO>+K085*<ADD>*<NO2>+KTC27*<WC_HONO>+KTR27*<WR_HONO> - PPROD(:,7) = +TPK%K032(:)*PCONC(:,14)*PCONC(:,3)+TPK%K085(:)*PCONC(:,37)*PCONC& -&(:,4)+TPK%KTC27(:)*PCONC(:,48)+TPK%KTR27(:)*PCONC(:,73) -!PLOSS(HONO) = +K004+K039*<OH>+KTC7+KTR7 - PLOSS(:,7) = +TPK%K004(:)+TPK%K039(:)*PCONC(:,14)+TPK%KTC7(:)+TPK%KTR7(:) -! -!PPROD(HNO3) = +K033*<OH>*<NO2>+0.3*K038*<HO2>*<NO3>+K072*<HCHO>*<NO3>+K073*<AL -!D>*<NO3>+0.91567*K074*<CARBO>*<NO3>+K075*<ARO>*<NO3>+KTC28*<WC_HNO3>+KTR28*<WR -!_HNO3> - PPROD(:,8) = +TPK%K033(:)*PCONC(:,14)*PCONC(:,4)+0.3*TPK%K038(:)*PCONC(:,15)*P& -&CONC(:,5)+TPK%K072(:)*PCONC(:,22)*PCONC(:,5)+TPK%K073(:)*PCONC(:,23)*PCONC(:,5& -&)+0.91567*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+TPK%K075(:)*PCONC(:,21)*PCONC(:,5& -&)+TPK%KTC28(:)*PCONC(:,49)+TPK%KTR28(:)*PCONC(:,74) -!PLOSS(HNO3) = +K005+K040*<OH>+KTC8+KTR8 - PLOSS(:,8) = +TPK%K005(:)+TPK%K040(:)*PCONC(:,14)+TPK%KTC8(:)+TPK%KTR8(:) -! -!PPROD(HNO4) = +K036*<HO2>*<NO2>+KTC29*<WC_HNO4>+KTR29*<WR_HNO4> - PPROD(:,9) = +TPK%K036(:)*PCONC(:,15)*PCONC(:,4)+TPK%KTC29(:)*PCONC(:,50)+TPK%& -&KTR29(:)*PCONC(:,75) -!PLOSS(HNO4) = +K006+K037+K041*<OH>+KTC9+KTR9 - PLOSS(:,9) = +TPK%K006(:)+TPK%K037(:)+TPK%K041(:)*PCONC(:,14)+TPK%KTC9(:)+TPK%& -&KTR9(:) -! -!PPROD(NH3) = +KTC30*<WC_NH3>+KTR30*<WR_NH3> - PPROD(:,10) = +TPK%KTC30(:)*PCONC(:,51)+TPK%KTR30(:)*PCONC(:,76) -!PLOSS(NH3) = +K050*<OH>+KTC10+KTR10 - PLOSS(:,10) = +TPK%K050(:)*PCONC(:,14)+TPK%KTC10(:)+TPK%KTR10(:) +!PPROD(NO) = +K001*<NO2>+K003*<NO2>*<O>+K012*<NO3>*<NO2>+K013*<NO3>+0.9*K020*<H +!ONO>+K095*<NO>*<RO2T>+KTC34*<WC_NO>+KTR34*<WR_NO> + PPROD(:,1) = +TPK%K001(:)*PCONC(:,2)+TPK%K003(:)*PCONC(:,2)*TPK%O(:)+TPK%K012(& +&:)*PCONC(:,8)*PCONC(:,2)+TPK%K013(:)*PCONC(:,8)+0.9*TPK%K020(:)*PCONC(:,4)+TPK& +&%K095(:)*PCONC(:,1)*PCONC(:,85)+TPK%KTC34(:)*PCONC(:,90)+TPK%KTR34(:)*PCONC(:,& +&127) +!PLOSS(NO) = +K005*<O3>+K007*<NO3>+K008*<NO>+K008*<NO>+K019*<OH>+K026*<HO2>+K03 +!8*<O>+K095*<RO2T>+K110*<RO21>+K113*<RO22>+K116*<RO23>+K119*<RO24>+K122*<RO25>+ +!K125*<RO26>+K144*<RO27>+K147*<RO28>+K150*<RO29>+K153*<RO210>+K156*<RO211>+K159 +!*<RO212>+K162*<RO213>+K165*<RO239>+K168*<RO214>+K171*<RO215>+K174*<RO216>+K177 +!*<RO217>+K180*<RO218>+K183*<RO219>+K186*<RO220>+K189*<RO221>+K192*<RO222>+K195 +!*<RO223>+K198*<RO224>+K201*<RO225>+K204*<RO226>+K207*<RO227>+K210*<RO228>+K213 +!*<RO229>+K216*<RO240>+K221*<RO231>+K224*<RO232>+K227*<RO241>+K231*<RO233>+K234 +!*<RO242>+K238*<RO234>+K241*<RO243>+K245*<RO235>+K248*<RO244>+K252*<RO236>+K255 +!*<RO245>+K259*<RO237>+K262*<RO246>+K266*<RO238>+K269*<RO247>+K277*<RO248>+K285 +!*<RO249>+K288*<RO250>+K291*<RO251>+K294*<RO252>+K297*<RO253>+K300*<RO254>+K309 +!*<RO255>+K315*<RO256>+K331*<RO257>+K340*<RO258>+K344*<RO230>+KTC3+KTR3 + PLOSS(:,1) = +TPK%K005(:)*PCONC(:,3)+TPK%K007(:)*PCONC(:,8)+TPK%K008(:)*PCONC(& +&:,1)+TPK%K008(:)*PCONC(:,1)+TPK%K019(:)*PCONC(:,15)+TPK%K026(:)*PCONC(:,10)+TP& +&K%K038(:)*TPK%O(:)+TPK%K095(:)*PCONC(:,85)+TPK%K110(:)*PCONC(:,86)+TPK%K113(:)& +&*TPK%RO22(:)+TPK%K116(:)*TPK%RO23(:)+TPK%K119(:)*TPK%RO24(:)+TPK%K122(:)*PCONC& +&(:,87)+TPK%K125(:)*TPK%RO26(:)+TPK%K144(:)*TPK%RO27(:)+TPK%K147(:)*TPK%RO28(:)& +&+TPK%K150(:)*TPK%RO29(:)+TPK%K153(:)*TPK%RO210(:)+TPK%K156(:)*TPK%RO211(:)+TPK& +&%K159(:)*TPK%RO212(:)+TPK%K162(:)*TPK%RO213(:)+TPK%K165(:)*TPK%RO239(:)+TPK%K1& +&68(:)*TPK%RO214(:)+TPK%K171(:)*TPK%RO215(:)+TPK%K174(:)*TPK%RO216(:)+TPK%K177(& +&:)*TPK%RO217(:)+TPK%K180(:)*TPK%RO218(:)+TPK%K183(:)*TPK%RO219(:)+TPK%K186(:)*& +&TPK%RO220(:)+TPK%K189(:)*TPK%RO221(:)+TPK%K192(:)*TPK%RO222(:)+TPK%K195(:)*TPK& +&%RO223(:)+TPK%K198(:)*TPK%RO224(:)+TPK%K201(:)*TPK%RO225(:)+TPK%K204(:)*TPK%RO& +&226(:)+TPK%K207(:)*TPK%RO227(:)+TPK%K210(:)*TPK%RO228(:)+TPK%K213(:)*TPK%RO229& +&(:)+TPK%K216(:)*TPK%RO240(:)+TPK%K221(:)*TPK%RO231(:)+TPK%K224(:)*TPK%RO232(:)& +&+TPK%K227(:)*TPK%RO241(:)+TPK%K231(:)*TPK%RO233(:)+TPK%K234(:)*TPK%RO242(:)+TP& +&K%K238(:)*TPK%RO234(:)+TPK%K241(:)*TPK%RO243(:)+TPK%K245(:)*TPK%RO235(:)+TPK%K& +&248(:)*TPK%RO244(:)+TPK%K252(:)*TPK%RO236(:)+TPK%K255(:)*TPK%RO245(:)+TPK%K259& +&(:)*TPK%RO237(:)+TPK%K262(:)*TPK%RO246(:)+TPK%K266(:)*TPK%RO238(:)+TPK%K269(:)& +&*TPK%RO247(:)+TPK%K277(:)*TPK%RO248(:)+TPK%K285(:)*TPK%RO249(:)+TPK%K288(:)*TP& +&K%RO250(:)+TPK%K291(:)*TPK%RO251(:)+TPK%K294(:)*TPK%RO252(:)+TPK%K297(:)*TPK%R& +&O253(:)+TPK%K300(:)*TPK%RO254(:)+TPK%K309(:)*TPK%RO255(:)+TPK%K315(:)*TPK%RO25& +&6(:)+TPK%K331(:)*TPK%RO257(:)+TPK%K340(:)*TPK%RO258(:)+TPK%K344(:)*TPK%RO230(:& +&)+TPK%KTC3(:)+TPK%KTR3(:) +! +!PPROD(NO2) = +K005*<O3>*<NO>+2.*K007*<NO3>*<NO>+2.*K008*<NO>*<NO>+K010*<N2O5>+ +!K012*<NO3>*<NO2>+K014*<NO3>+0.1*K020*<HONO>+K026*<HO2>*<NO>+K028*<HNO4>+K029*< +!OH>*<HNO4>+0.8*K033*<HO2>*<NO3>+K038*<NO>*<O>+K039*<OH>*<HONO>+K040*<OH>*<NO3> +!+2.*K041*<NO3>*<NO3>+K110*<NO>*<RO21>+K113*<NO>*<RO22>+2.*K116*<NO>*<RO23>+K11 +!7*<RO2T>*<RO23>+K118*<HO2>*<RO23>+K119*<NO>*<RO24>+TPK%CF4*K122*<NO>*<RO25>+K1 +!25*<NO>*<RO26>+K135*<PAN1>+K136*<PAN2>+K137*<PAN3>+K138*<PN10>+1.0000000*K139* +!<APAN>+K140*<PAN6>+K141*<PAN4>+K144*<NO>*<RO27>+K147*<NO>*<RO28>+TPK%CF6*K150* +!<NO>*<RO29>+K153*<NO>*<RO210>+2.*K156*<NO>*<RO211>+K157*<RO2T>*<RO211>+K158*<H +!O2>*<RO211>+2.*K159*<NO>*<RO212>+K160*<RO2T>*<RO212>+K161*<HO2>*<RO212>+K162*< +!NO>*<RO213>+K165*<NO>*<RO239>+TPK%CF8*K168*<NO>*<RO214>+K171*<NO>*<RO215>+K174 +!*<NO>*<RO216>+TPK%CF22*K177*<NO>*<RO217>+TPK%CF20*K180*<NO>*<RO218>+2.*K183*<N +!O>*<RO219>+K184*<RO2T>*<RO219>+K185*<HO2>*<RO219>+TPK%CF18*K186*<NO>*<RO220>+T +!PK%CF24*K189*<NO>*<RO221>+TPK%CF42*K192*<NO>*<RO222>+TPK%CF44*K195*<NO>*<RO223 +!>+TPK%CF26*K198*<NO>*<RO224>+2.*K201*<NO>*<RO225>+K202*<RO2T>*<RO225>+K203*<HO +!2>*<RO225>+K204*<NO>*<RO226>+TPK%CF28*K207*<NO>*<RO227>+2.*K210*<NO>*<RO228>+K +!211*<RO2T>*<RO228>+K212*<HO2>*<RO228>+TPK%CF30*K213*<NO>*<RO229>+K216*<NO>*<RO +!240>+TPK%CF32*K221*<NO>*<RO231>+TPK%CF34*K224*<NO>*<RO232>+TPK%CF36*K227*<NO>* +!<RO241>+K231*<NO>*<RO233>+K234*<NO>*<RO242>+K238*<NO>*<RO234>+K241*<NO>*<RO243 +!>+K245*<NO>*<RO235>+K248*<NO>*<RO244>+K252*<NO>*<RO236>+K255*<NO>*<RO245>+K259 +!*<NO>*<RO237>+K262*<NO>*<RO246>+K266*<NO>*<RO238>+K269*<NO>*<RO247>+K277*<NO>* +!<RO248>+K285*<NO>*<RO249>+K288*<NO>*<RO250>+K291*<NO>*<RO251>+2.*K294*<NO>*<RO +!252>+K295*<HO2>*<RO252>+K296*<RO2T>*<RO252>+K297*<NO>*<RO253>+K300*<NO>*<RO254 +!>+K309*<NO>*<RO255>+K315*<NO>*<RO256>+K317*<PAN8>+K331*<NO>*<RO257>+K340*<NO>* +!<RO258>+K343*<PAN7>+K344*<NO>*<RO230>+KTC35*<WC_NO2>+KTR35*<WR_NO2> + PPROD(:,2) = +TPK%K005(:)*PCONC(:,3)*PCONC(:,1)+2.*TPK%K007(:)*PCONC(:,8)*PCON& +&C(:,1)+2.*TPK%K008(:)*PCONC(:,1)*PCONC(:,1)+TPK%K010(:)*PCONC(:,7)+TPK%K012(:)& +&*PCONC(:,8)*PCONC(:,2)+TPK%K014(:)*PCONC(:,8)+0.1*TPK%K020(:)*PCONC(:,4)+TPK%K& +&026(:)*PCONC(:,10)*PCONC(:,1)+TPK%K028(:)*PCONC(:,6)+TPK%K029(:)*PCONC(:,15)*P& +&CONC(:,6)+0.8*TPK%K033(:)*PCONC(:,10)*PCONC(:,8)+TPK%K038(:)*PCONC(:,1)*TPK%O(& +&:)+TPK%K039(:)*PCONC(:,15)*PCONC(:,4)+TPK%K040(:)*PCONC(:,15)*PCONC(:,8)+2.*TP& +&K%K041(:)*PCONC(:,8)*PCONC(:,8)+TPK%K110(:)*PCONC(:,1)*PCONC(:,86)+TPK%K113(:)& +&*PCONC(:,1)*TPK%RO22(:)+2.*TPK%K116(:)*PCONC(:,1)*TPK%RO23(:)+TPK%K117(:)*PCON& +&C(:,85)*TPK%RO23(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO23(:)+TPK%K119(:)*PCONC(:,1)& +&*TPK%RO24(:)+TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87)+TPK%K125(:)*PCONC(:,1)& +&*TPK%RO26(:)+TPK%K135(:)*PCONC(:,77)+TPK%K136(:)*PCONC(:,78)+TPK%K137(:)*PCONC& +&(:,79)+TPK%K138(:)*PCONC(:,84)+1.0000000*TPK%K139(:)*PCONC(:,76)+TPK%K140(:)*P& +&CONC(:,81)+TPK%K141(:)*PCONC(:,80)+TPK%K144(:)*PCONC(:,1)*TPK%RO27(:)+TPK%K147& +&(:)*PCONC(:,1)*TPK%RO28(:)+TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:)+TPK%K153& +&(:)*PCONC(:,1)*TPK%RO210(:)+2.*TPK%K156(:)*PCONC(:,1)*TPK%RO211(:)+TPK%K157(:)& +&*PCONC(:,85)*TPK%RO211(:)+TPK%K158(:)*PCONC(:,10)*TPK%RO211(:)+2.*TPK%K159(:)*& +&PCONC(:,1)*TPK%RO212(:)+TPK%K160(:)*PCONC(:,85)*TPK%RO212(:)+TPK%K161(:)*PCONC& +&(:,10)*TPK%RO212(:)+TPK%K162(:)*PCONC(:,1)*TPK%RO213(:)+TPK%K165(:)*PCONC(:,1)& +&*TPK%RO239(:)+TPK%CF8*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:)+TPK%K171(:)*PCONC(:,& +&1)*TPK%RO215(:)+TPK%K174(:)*PCONC(:,1)*TPK%RO216(:)+TPK%CF22*TPK%K177(:)*PCONC& +&(:,1)*TPK%RO217(:)+TPK%CF20*TPK%K180(:)*PCONC(:,1)*TPK%RO218(:)+2.*TPK%K183(:)& +&*PCONC(:,1)*TPK%RO219(:)+TPK%K184(:)*PCONC(:,85)*TPK%RO219(:)+TPK%K185(:)*PCON& +&C(:,10)*TPK%RO219(:)+TPK%CF18*TPK%K186(:)*PCONC(:,1)*TPK%RO220(:)+TPK%CF24*TPK& +&%K189(:)*PCONC(:,1)*TPK%RO221(:)+TPK%CF42*TPK%K192(:)*PCONC(:,1)*TPK%RO222(:)+& +&TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:)+TPK%CF26*TPK%K198(:)*PCONC(:,1)*T& +&PK%RO224(:)+2.*TPK%K201(:)*PCONC(:,1)*TPK%RO225(:)+TPK%K202(:)*PCONC(:,85)*TPK& +&%RO225(:)+TPK%K203(:)*PCONC(:,10)*TPK%RO225(:)+TPK%K204(:)*PCONC(:,1)*TPK%RO22& +&6(:)+TPK%CF28*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:)+2.*TPK%K210(:)*PCONC(:,1)*TP& +&K%RO228(:)+TPK%K211(:)*PCONC(:,85)*TPK%RO228(:)+TPK%K212(:)*PCONC(:,10)*TPK%RO& +&228(:)+TPK%CF30*TPK%K213(:)*PCONC(:,1)*TPK%RO229(:)+TPK%K216(:)*PCONC(:,1)*TPK& +&%RO240(:)+TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:)+TPK%CF34*TPK%K224(:)*PC& +&ONC(:,1)*TPK%RO232(:)+TPK%CF36*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:)+TPK%K231(:)& +&*PCONC(:,1)*TPK%RO233(:)+TPK%K234(:)*PCONC(:,1)*TPK%RO242(:)+TPK%K238(:)*PCONC& +&(:,1)*TPK%RO234(:)+TPK%K241(:)*PCONC(:,1)*TPK%RO243(:)+TPK%K245(:)*PCONC(:,1)*& +&TPK%RO235(:)+TPK%K248(:)*PCONC(:,1)*TPK%RO244(:)+TPK%K252(:)*PCONC(:,1)*TPK%RO& +&236(:)+TPK%K255(:)*PCONC(:,1)*TPK%RO245(:)+TPK%K259(:)*PCONC(:,1)*TPK%RO237(:)& +&+TPK%K262(:)*PCONC(:,1)*TPK%RO246(:)+TPK%K266(:)*PCONC(:,1)*TPK%RO238(:)+TPK%K& +&269(:)*PCONC(:,1)*TPK%RO247(:)+TPK%K277(:)*PCONC(:,1)*TPK%RO248(:)+TPK%K285(:)& +&*PCONC(:,1)*TPK%RO249(:)+TPK%K288(:)*PCONC(:,1)*TPK%RO250(:)+TPK%K291(:)*PCONC& +&(:,1)*TPK%RO251(:)+2.*TPK%K294(:)*PCONC(:,1)*TPK%RO252(:)+TPK%K295(:)*PCONC(:,& +&10)*TPK%RO252(:)+TPK%K296(:)*PCONC(:,85)*TPK%RO252(:)+TPK%K297(:)*PCONC(:,1)*T& +&PK%RO253(:)+TPK%K300(:)*PCONC(:,1)*TPK%RO254(:)+TPK%K309(:)*PCONC(:,1)*TPK%RO2& +&55(:)+TPK%K315(:)*PCONC(:,1)*TPK%RO256(:)+TPK%K317(:)*PCONC(:,83)+TPK%K331(:)*& +&PCONC(:,1)*TPK%RO257(:)+TPK%K340(:)*PCONC(:,1)*TPK%RO258(:)+TPK%K343(:)*PCONC(& +&:,82)+TPK%K344(:)*PCONC(:,1)*TPK%RO230(:)+TPK%KTC35(:)*PCONC(:,91)+TPK%KTR35(:& +&)*PCONC(:,128) +!PLOSS(NO2) = +K001+K003*<O>+K004*<O>+K006*<O3>+K009*<NO3>+K012*<NO3>+K021*<H2O +!>+K022*<OH>+K027*<HO2>+K103*<RAD1>+K104*<RAD2>+K105*<RAD3>+K106*<RAD4>+K107*<R +!AD5>+K108*<RAD6>+K109*<RAD7>+K126*<RO26>+K127*<RO28>+K128*<RO239>+K129*<RO248> +!+K130*<RO250>+K131*<RO254>+K132*<RO255>+K133*<RO257>+K134*<RO258>+K316*<RO256> +!+K321*<RAD8>+KTC4+KTR4 + PLOSS(:,2) = +TPK%K001(:)+TPK%K003(:)*TPK%O(:)+TPK%K004(:)*TPK%O(:)+TPK%K006(:& +&)*PCONC(:,3)+TPK%K009(:)*PCONC(:,8)+TPK%K012(:)*PCONC(:,8)+TPK%K021(:)*TPK%H2O& +&(:)+TPK%K022(:)*PCONC(:,15)+TPK%K027(:)*PCONC(:,10)+TPK%K103(:)*TPK%RAD1(:)+TP& +&K%K104(:)*TPK%RAD2(:)+TPK%K105(:)*TPK%RAD3(:)+TPK%K106(:)*TPK%RAD4(:)+TPK%K107& +&(:)*TPK%RAD5(:)+TPK%K108(:)*TPK%RAD6(:)+TPK%K109(:)*TPK%RAD7(:)+TPK%K126(:)*TP& +&K%RO26(:)+TPK%K127(:)*TPK%RO28(:)+TPK%K128(:)*TPK%RO239(:)+TPK%K129(:)*TPK%RO2& +&48(:)+TPK%K130(:)*TPK%RO250(:)+TPK%K131(:)*TPK%RO254(:)+TPK%K132(:)*TPK%RO255(& +&:)+TPK%K133(:)*TPK%RO257(:)+TPK%K134(:)*TPK%RO258(:)+TPK%K316(:)*TPK%RO256(:)+& +&TPK%K321(:)*TPK%RAD8(:)+TPK%KTC4(:)+TPK%KTR4(:) +! +!PPROD(O3) = +K002*<O2>*<O>+K081*<NO3>*<ARAL>+TPK%CF39*K082*<OH>*<ARAL>+K142*<H +!O2>*<RO26>+K148*<HO2>*<RO28>+K166*<HO2>*<RO239>+K279*<HO2>*<RO248>+K289*<HO2>* +!<RO250>+K301*<HO2>*<RO254>+K303*<OH>*<RPR5>+1.0000011*K306*<OH>*<RPRL>+K310*<H +!O2>*<RO255>+K318*<HO2>*<RO256>+K322*<OH>*<RPR7>+1.0000005*K323*<OH>*<RPG7>+K32 +!6*<OH>*<RP11>+K332*<HO2>*<RO257>+1.0000000*K334*<OH>*<RPG3>+1.0000000*K335*<OH +!>*<RPG2>+K337*<OH>*<RP18>+K341*<HO2>*<RO258>+KTC32*<WC_O3>+KTR32*<WR_O3> + PPROD(:,3) = +TPK%K002(:)*TPK%O2(:)*TPK%O(:)+TPK%K081(:)*PCONC(:,8)*PCONC(:,25& +&)+TPK%CF39*TPK%K082(:)*PCONC(:,15)*PCONC(:,25)+TPK%K142(:)*PCONC(:,10)*TPK%RO2& +&6(:)+TPK%K148(:)*PCONC(:,10)*TPK%RO28(:)+TPK%K166(:)*PCONC(:,10)*TPK%RO239(:)+& +&TPK%K279(:)*PCONC(:,10)*TPK%RO248(:)+TPK%K289(:)*PCONC(:,10)*TPK%RO250(:)+TPK%& +&K301(:)*PCONC(:,10)*TPK%RO254(:)+TPK%K303(:)*PCONC(:,15)*PCONC(:,70)+1.0000011& +&*TPK%K306(:)*PCONC(:,15)*PCONC(:,75)+TPK%K310(:)*PCONC(:,10)*TPK%RO255(:)+TPK%& +&K318(:)*PCONC(:,10)*TPK%RO256(:)+TPK%K322(:)*PCONC(:,15)*PCONC(:,62)+1.0000005& +&*TPK%K323(:)*PCONC(:,15)*PCONC(:,63)+TPK%K326(:)*PCONC(:,15)*PCONC(:,73)+TPK%K& +&332(:)*PCONC(:,10)*TPK%RO257(:)+1.0000000*TPK%K334(:)*PCONC(:,15)*PCONC(:,52)+& +&1.0000000*TPK%K335(:)*PCONC(:,15)*PCONC(:,50)+TPK%K337(:)*PCONC(:,15)*PCONC(:,& +&51)+TPK%K341(:)*PCONC(:,10)*TPK%RO258(:)+TPK%KTC32(:)*PCONC(:,88)+TPK%KTR32(:)& +&*PCONC(:,125) +!PLOSS(O3) = +K005*<NO>+K006*<NO2>+K015+K016+K025*<OH>+K030*<HO2>+K034*<O>+K051 +!*<ETHE>+K056*<OLEL>+K066*<ISOP>+K076*<OLEH>+K086*<BIOL>+K090*<BIOH>+K281*<MVK> +!+K282*<MCR>+KTC1+KTR1 + PLOSS(:,3) = +TPK%K005(:)*PCONC(:,1)+TPK%K006(:)*PCONC(:,2)+TPK%K015(:)+TPK%K0& +&16(:)+TPK%K025(:)*PCONC(:,15)+TPK%K030(:)*PCONC(:,10)+TPK%K034(:)*TPK%O(:)+TPK& +&%K051(:)*PCONC(:,16)+TPK%K056(:)*PCONC(:,17)+TPK%K066(:)*PCONC(:,35)+TPK%K076(& +&:)*PCONC(:,18)+TPK%K086(:)*PCONC(:,36)+TPK%K090(:)*PCONC(:,37)+TPK%K281(:)*PCO& +&NC(:,39)+TPK%K282(:)*PCONC(:,40)+TPK%KTC1(:)+TPK%KTR1(:) +! +!PPROD(HONO) = +K019*<OH>*<NO>+0.5*K021*<H2O>*<NO2>+KTC38*<WC_HONO>+KTR38*<WR_H +!ONO> + PPROD(:,4) = +TPK%K019(:)*PCONC(:,15)*PCONC(:,1)+0.5*TPK%K021(:)*TPK%H2O(:)*PC& +&ONC(:,2)+TPK%KTC38(:)*PCONC(:,94)+TPK%KTR38(:)*PCONC(:,131) +!PLOSS(HONO) = +K020+K039*<OH>+KTC7+KTR7 + PLOSS(:,4) = +TPK%K020(:)+TPK%K039(:)*PCONC(:,15)+TPK%KTC7(:)+TPK%KTR7(:) +! +!PPROD(HNO3) = +2.*K011*<H2O>*<N2O5>+0.5*K021*<H2O>*<NO2>+K022*<OH>*<NO2>+0.2*K +!033*<HO2>*<NO3>+K047*<NO3>*<HCHO>+K061*<NO3>*<ALD2>+K072*<NO3>*<AROO>+K081*<NO +!3>*<ARAL>+TPK%CF46*K275*<NO3>*<MCR>+K278*<NO3>*<MGLY>+K307*<NO3>*<RPR1>+K313*< +!NO3>*<RPR3>+K320*<NO3>*<RPR4>+K327*<NO3>*<RPR8>+K338*<NO3>*<RP16>+KTC39*<WC_HN +!O3>+KTR39*<WR_HNO3> + PPROD(:,5) = +2.*TPK%K011(:)*TPK%H2O(:)*PCONC(:,7)+0.5*TPK%K021(:)*TPK%H2O(:)*& +&PCONC(:,2)+TPK%K022(:)*PCONC(:,15)*PCONC(:,2)+0.2*TPK%K033(:)*PCONC(:,10)*PCON& +&C(:,8)+TPK%K047(:)*PCONC(:,8)*PCONC(:,28)+TPK%K061(:)*PCONC(:,8)*PCONC(:,29)+T& +&PK%K072(:)*PCONC(:,8)*PCONC(:,24)+TPK%K081(:)*PCONC(:,8)*PCONC(:,25)+TPK%CF46*& +&TPK%K275(:)*PCONC(:,8)*PCONC(:,40)+TPK%K278(:)*PCONC(:,8)*PCONC(:,41)+TPK%K307& +&(:)*PCONC(:,8)*PCONC(:,69)+TPK%K313(:)*PCONC(:,8)*PCONC(:,57)+TPK%K320(:)*PCON& +&C(:,8)*PCONC(:,61)+TPK%K327(:)*PCONC(:,8)*PCONC(:,71)+TPK%K338(:)*PCONC(:,8)*P& +&CONC(:,74)+TPK%KTC39(:)*PCONC(:,95)+TPK%KTR39(:)*PCONC(:,132) +!PLOSS(HNO3) = +K023*<OH>+KTC8+KTR8 + PLOSS(:,5) = +TPK%K023(:)*PCONC(:,15)+TPK%KTC8(:)+TPK%KTR8(:) +! +!PPROD(HNO4) = +K027*<HO2>*<NO2>+KTC40*<WC_HNO4>+KTR40*<WR_HNO4> + PPROD(:,6) = +TPK%K027(:)*PCONC(:,10)*PCONC(:,2)+TPK%KTC40(:)*PCONC(:,96)+TPK%& +&KTR40(:)*PCONC(:,133) +!PLOSS(HNO4) = +K028+K029*<OH>+KTC9+KTR9 + PLOSS(:,6) = +TPK%K028(:)+TPK%K029(:)*PCONC(:,15)+TPK%KTC9(:)+TPK%KTR9(:) +! +!PPROD(N2O5) = +K009*<NO3>*<NO2>+KTC37*<WC_N2O5>+KTR37*<WR_N2O5> + PPROD(:,7) = +TPK%K009(:)*PCONC(:,8)*PCONC(:,2)+TPK%KTC37(:)*PCONC(:,93)+TPK%K& +&TR37(:)*PCONC(:,130) +!PLOSS(N2O5) = +K010+K011*<H2O>+KTC6+KTR6 + PLOSS(:,7) = +TPK%K010(:)+TPK%K011(:)*TPK%H2O(:)+TPK%KTC6(:)+TPK%KTR6(:) +! +!PPROD(NO3) = +K004*<NO2>*<O>+K006*<O3>*<NO2>+K010*<N2O5>+K023*<OH>*<HNO3>+KTC3 +!6*<WC_NO3>+KTR36*<WR_NO3> + PPROD(:,8) = +TPK%K004(:)*PCONC(:,2)*TPK%O(:)+TPK%K006(:)*PCONC(:,3)*PCONC(:,2& +&)+TPK%K010(:)*PCONC(:,7)+TPK%K023(:)*PCONC(:,15)*PCONC(:,5)+TPK%KTC36(:)*PCONC& +&(:,92)+TPK%KTR36(:)*PCONC(:,129) +!PLOSS(NO3) = +K007*<NO>+K009*<NO2>+K012*<NO2>+K013+K014+K033*<HO2>+K040*<OH>+K +!041*<NO3>+K041*<NO3>+K047*<HCHO>+K050*<ETHE>+K055*<OLEL>+K061*<ALD2>+K065*<ISO +!P>+K072*<AROO>+K075*<OLEH>+K081*<ARAL>+K085*<BIOL>+K089*<BIOH>+K275*<MCR>+K278 +!*<MGLY>+K307*<RPR1>+K313*<RPR3>+K320*<RPR4>+K327*<RPR8>+K338*<RP16>+KTC5+KTR5 + PLOSS(:,8) = +TPK%K007(:)*PCONC(:,1)+TPK%K009(:)*PCONC(:,2)+TPK%K012(:)*PCONC(& +&:,2)+TPK%K013(:)+TPK%K014(:)+TPK%K033(:)*PCONC(:,10)+TPK%K040(:)*PCONC(:,15)+T& +&PK%K041(:)*PCONC(:,8)+TPK%K041(:)*PCONC(:,8)+TPK%K047(:)*PCONC(:,28)+TPK%K050(& +&:)*PCONC(:,16)+TPK%K055(:)*PCONC(:,17)+TPK%K061(:)*PCONC(:,29)+TPK%K065(:)*PCO& +&NC(:,35)+TPK%K072(:)*PCONC(:,24)+TPK%K075(:)*PCONC(:,18)+TPK%K081(:)*PCONC(:,2& +&5)+TPK%K085(:)*PCONC(:,36)+TPK%K089(:)*PCONC(:,37)+TPK%K275(:)*PCONC(:,40)+TPK& +&%K278(:)*PCONC(:,41)+TPK%K307(:)*PCONC(:,69)+TPK%K313(:)*PCONC(:,57)+TPK%K320(& +&:)*PCONC(:,61)+TPK%K327(:)*PCONC(:,71)+TPK%K338(:)*PCONC(:,74)+TPK%KTC5(:)+TPK& +&%KTR5(:) +! +!PPROD(NH3) = +KTC41*<WC_NH3>+KTR41*<WR_NH3> + PPROD(:,9) = +TPK%KTC41(:)*PCONC(:,97)+TPK%KTR41(:)*PCONC(:,134) +!PLOSS(NH3) = +K345*<OH>+KTC10+KTR10 + PLOSS(:,9) = +TPK%K345(:)*PCONC(:,15)+TPK%KTC10(:)+TPK%KTR10(:) +! +!PPROD(HO2) = +0.1*K020*<HONO>+K024*<OH>*<CO>+K025*<OH>*<O3>+K028*<HNO4>+K035*< +!OH>*<SO2>+K037*<OH>*<H2O2>+K040*<OH>*<NO3>+2.0*K044*<HCHO>+K046*<OH>*<HCHO>+K0 +!47*<NO3>*<HCHO>+K048*<OH>*<MEOH>+0.06*K051*<O3>*<ETHE>+K052*<O>*<ETHE>+TPK%CF1 +!*K053*<OH>*<ETOH>+0.28*K056*<O3>*<OLEL>+K059*<ALD2>+0.366*K066*<O3>*<ISOP>+0.1 +!6*K073*<OH>*<AROO>+0.28*K076*<O3>*<OLEH>+0.16*K079*<OH>*<AROL>+0.16*K080*<OH>* +!<AROH>+TPK%CF48*K082*<OH>*<ARAL>+0.16*K083*<OH>*<ARAC>+0.445*K086*<O3>*<BIOL>+ +!0.16*K092*<OH>*<PAH>+K094*<HO2>*<RO2T>+K110*<NO>*<RO21>+K111*<RO2T>*<RO21>+K11 +!2*<HO2>*<RO21>+K113*<NO>*<RO22>+K114*<RO2T>*<RO22>+K115*<HO2>*<RO22>+K117*<RO2 +!T>*<RO23>+K118*<HO2>*<RO23>+K119*<NO>*<RO24>+K120*<RO2T>*<RO24>+K121*<HO2>*<RO +!24>+TPK%CF4*K122*<NO>*<RO25>+K123*<RO2T>*<RO25>+K124*<HO2>*<RO25>+TPK%CF6*K150 +!*<NO>*<RO29>+K151*<RO2T>*<RO29>+K152*<HO2>*<RO29>+K153*<NO>*<RO210>+K154*<RO2T +!>*<RO210>+K155*<HO2>*<RO210>+K171*<NO>*<RO215>+K172*<RO2T>*<RO215>+K173*<HO2>* +!<RO215>+TPK%CF22*K177*<NO>*<RO217>+K178*<RO2T>*<RO217>+K179*<HO2>*<RO217>+TPK% +!CF20*K180*<NO>*<RO218>+K181*<RO2T>*<RO218>+K182*<HO2>*<RO218>+TPK%CF24*K189*<N +!O>*<RO221>+K190*<RO2T>*<RO221>+K191*<HO2>*<RO221>+TPK%CF42*K192*<NO>*<RO222>+K +!193*<RO2T>*<RO222>+K194*<HO2>*<RO222>+TPK%CF44*K195*<NO>*<RO223>+K196*<RO2T>*< +!RO223>+K197*<HO2>*<RO223>+TPK%CF26*K198*<NO>*<RO224>+K199*<RO2T>*<RO224>+K200* +!<HO2>*<RO224>+TPK%CF28*K207*<NO>*<RO227>+K208*<RO2T>*<RO227>+K209*<HO2>*<RO227 +!>+TPK%CF32*K221*<NO>*<RO231>+K222*<RO2T>*<RO231>+K223*<HO2>*<RO231>+TPK%CF36*K +!227*<NO>*<RO241>+K228*<RO2T>*<RO241>+K229*<HO2>*<RO241>+K231*<NO>*<RO233>+K232 +!*<RO2T>*<RO233>+K233*<HO2>*<RO233>+K234*<NO>*<RO242>+K235*<RO2T>*<RO242>+K236* +!<HO2>*<RO242>+K238*<NO>*<RO234>+K239*<RO2T>*<RO234>+K240*<HO2>*<RO234>+K241*<N +!O>*<RO243>+K242*<RO2T>*<RO243>+K243*<HO2>*<RO243>+K245*<NO>*<RO235>+K246*<RO2T +!>*<RO235>+K247*<HO2>*<RO235>+K248*<NO>*<RO244>+K249*<RO2T>*<RO244>+K250*<HO2>* +!<RO244>+K252*<NO>*<RO236>+K253*<RO2T>*<RO236>+K254*<HO2>*<RO236>+K255*<NO>*<RO +!245>+K256*<RO2T>*<RO245>+K257*<HO2>*<RO245>+K259*<NO>*<RO237>+K260*<RO2T>*<RO2 +!37>+K261*<HO2>*<RO237>+K262*<NO>*<RO246>+K263*<RO2T>*<RO246>+K264*<HO2>*<RO246 +!>+K266*<NO>*<RO238>+K267*<RO2T>*<RO238>+K268*<HO2>*<RO238>+K269*<NO>*<RO247>+K +!270*<RO2T>*<RO247>+K271*<HO2>*<RO247>+K276*<MGLY>+0.28*K281*<O3>*<MVK>+0.41*K2 +!82*<O3>*<MCR>+0.15*K284*<O>*<MCR>+K285*<NO>*<RO249>+K286*<RO2T>*<RO249>+K287*< +!HO2>*<RO249>+K291*<NO>*<RO251>+K292*<HO2>*<RO251>+K293*<RO2T>*<RO251>+K300*<NO +!>*<RO254>+K302*<RO2T>*<RO254>+K308*<RPR1>+2.*K314*<RPR3>+K315*<NO>*<RO256>+K31 +!9*<RO2T>*<RO256>+K325*<OH>*<RP10>+K329*<RPR8>+K330*<RPR8>+K339*<RP16>+K347*<OH +!>*<ORA1>+KTC43*<WC_HO2>+KTR43*<WR_HO2> + PPROD(:,10) = +0.1*TPK%K020(:)*PCONC(:,4)+TPK%K024(:)*PCONC(:,15)*PCONC(:,11)+& +&TPK%K025(:)*PCONC(:,15)*PCONC(:,3)+TPK%K028(:)*PCONC(:,6)+TPK%K035(:)*PCONC(:,& +&15)*PCONC(:,13)+TPK%K037(:)*PCONC(:,15)*PCONC(:,12)+TPK%K040(:)*PCONC(:,15)*PC& +&ONC(:,8)+2.0*TPK%K044(:)*PCONC(:,28)+TPK%K046(:)*PCONC(:,15)*PCONC(:,28)+TPK%K& +&047(:)*PCONC(:,8)*PCONC(:,28)+TPK%K048(:)*PCONC(:,15)*PCONC(:,32)+0.06*TPK%K05& +&1(:)*PCONC(:,3)*PCONC(:,16)+TPK%K052(:)*TPK%O(:)*PCONC(:,16)+TPK%CF1*TPK%K053(& +&:)*PCONC(:,15)*PCONC(:,33)+0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+TPK%K059(:)& +&*PCONC(:,29)+0.366*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+0.16*TPK%K073(:)*PCONC(:& +&,15)*PCONC(:,24)+0.28*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+0.16*TPK%K079(:)*PCON& +&C(:,15)*PCONC(:,23)+0.16*TPK%K080(:)*PCONC(:,15)*PCONC(:,22)+TPK%CF48*TPK%K082& +&(:)*PCONC(:,15)*PCONC(:,25)+0.16*TPK%K083(:)*PCONC(:,15)*PCONC(:,26)+0.445*TPK& +&%K086(:)*PCONC(:,3)*PCONC(:,36)+0.16*TPK%K092(:)*PCONC(:,15)*PCONC(:,27)+TPK%K& +&094(:)*PCONC(:,10)*PCONC(:,85)+TPK%K110(:)*PCONC(:,1)*PCONC(:,86)+TPK%K111(:)*& +&PCONC(:,85)*PCONC(:,86)+TPK%K112(:)*PCONC(:,10)*PCONC(:,86)+TPK%K113(:)*PCONC(& +&:,1)*TPK%RO22(:)+TPK%K114(:)*PCONC(:,85)*TPK%RO22(:)+TPK%K115(:)*PCONC(:,10)*T& +&PK%RO22(:)+TPK%K117(:)*PCONC(:,85)*TPK%RO23(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO2& +&3(:)+TPK%K119(:)*PCONC(:,1)*TPK%RO24(:)+TPK%K120(:)*PCONC(:,85)*TPK%RO24(:)+TP& +&K%K121(:)*PCONC(:,10)*TPK%RO24(:)+TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87)+T& +&PK%K123(:)*PCONC(:,85)*PCONC(:,87)+TPK%K124(:)*PCONC(:,10)*PCONC(:,87)+TPK%CF6& +&*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:)+TPK%K151(:)*PCONC(:,85)*TPK%RO29(:)+TPK%K1& +&52(:)*PCONC(:,10)*TPK%RO29(:)+TPK%K153(:)*PCONC(:,1)*TPK%RO210(:)+TPK%K154(:)*& +&PCONC(:,85)*TPK%RO210(:)+TPK%K155(:)*PCONC(:,10)*TPK%RO210(:)+TPK%K171(:)*PCON& +&C(:,1)*TPK%RO215(:)+TPK%K172(:)*PCONC(:,85)*TPK%RO215(:)+TPK%K173(:)*PCONC(:,1& +&0)*TPK%RO215(:)+TPK%CF22*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:)+TPK%K178(:)*PCONC& +&(:,85)*TPK%RO217(:)+TPK%K179(:)*PCONC(:,10)*TPK%RO217(:)+TPK%CF20*TPK%K180(:)*& +&PCONC(:,1)*TPK%RO218(:)+TPK%K181(:)*PCONC(:,85)*TPK%RO218(:)+TPK%K182(:)*PCONC& +&(:,10)*TPK%RO218(:)+TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:)+TPK%K190(:)*P& +&CONC(:,85)*TPK%RO221(:)+TPK%K191(:)*PCONC(:,10)*TPK%RO221(:)+TPK%CF42*TPK%K192& +&(:)*PCONC(:,1)*TPK%RO222(:)+TPK%K193(:)*PCONC(:,85)*TPK%RO222(:)+TPK%K194(:)*P& +&CONC(:,10)*TPK%RO222(:)+TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:)+TPK%K196(& +&:)*PCONC(:,85)*TPK%RO223(:)+TPK%K197(:)*PCONC(:,10)*TPK%RO223(:)+TPK%CF26*TPK%& +&K198(:)*PCONC(:,1)*TPK%RO224(:)+TPK%K199(:)*PCONC(:,85)*TPK%RO224(:)+TPK%K200(& +&:)*PCONC(:,10)*TPK%RO224(:)+TPK%CF28*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:)+TPK%K& +&208(:)*PCONC(:,85)*TPK%RO227(:)+TPK%K209(:)*PCONC(:,10)*TPK%RO227(:)+TPK%CF32*& +&TPK%K221(:)*PCONC(:,1)*TPK%RO231(:)+TPK%K222(:)*PCONC(:,85)*TPK%RO231(:)+TPK%K& +&223(:)*PCONC(:,10)*TPK%RO231(:)+TPK%CF36*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:)+T& +&PK%K228(:)*PCONC(:,85)*TPK%RO241(:)+TPK%K229(:)*PCONC(:,10)*TPK%RO241(:)+TPK%K& +&231(:)*PCONC(:,1)*TPK%RO233(:)+TPK%K232(:)*PCONC(:,85)*TPK%RO233(:)+TPK%K233(:& +&)*PCONC(:,10)*TPK%RO233(:)+TPK%K234(:)*PCONC(:,1)*TPK%RO242(:)+TPK%K235(:)*PCO& +&NC(:,85)*TPK%RO242(:)+TPK%K236(:)*PCONC(:,10)*TPK%RO242(:)+TPK%K238(:)*PCONC(:& +&,1)*TPK%RO234(:)+TPK%K239(:)*PCONC(:,85)*TPK%RO234(:)+TPK%K240(:)*PCONC(:,10)*& +&TPK%RO234(:)+TPK%K241(:)*PCONC(:,1)*TPK%RO243(:)+TPK%K242(:)*PCONC(:,85)*TPK%R& +&O243(:)+TPK%K243(:)*PCONC(:,10)*TPK%RO243(:)+TPK%K245(:)*PCONC(:,1)*TPK%RO235(& +&:)+TPK%K246(:)*PCONC(:,85)*TPK%RO235(:)+TPK%K247(:)*PCONC(:,10)*TPK%RO235(:)+T& +&PK%K248(:)*PCONC(:,1)*TPK%RO244(:)+TPK%K249(:)*PCONC(:,85)*TPK%RO244(:)+TPK%K2& +&50(:)*PCONC(:,10)*TPK%RO244(:)+TPK%K252(:)*PCONC(:,1)*TPK%RO236(:)+TPK%K253(:)& +&*PCONC(:,85)*TPK%RO236(:)+TPK%K254(:)*PCONC(:,10)*TPK%RO236(:)+TPK%K255(:)*PCO& +&NC(:,1)*TPK%RO245(:)+TPK%K256(:)*PCONC(:,85)*TPK%RO245(:)+TPK%K257(:)*PCONC(:,& +&10)*TPK%RO245(:)+TPK%K259(:)*PCONC(:,1)*TPK%RO237(:)+TPK%K260(:)*PCONC(:,85)*T& +&PK%RO237(:)+TPK%K261(:)*PCONC(:,10)*TPK%RO237(:)+TPK%K262(:)*PCONC(:,1)*TPK%RO& +&246(:)+TPK%K263(:)*PCONC(:,85)*TPK%RO246(:)+TPK%K264(:)*PCONC(:,10)*TPK%RO246(& +&:)+TPK%K266(:)*PCONC(:,1)*TPK%RO238(:)+TPK%K267(:)*PCONC(:,85)*TPK%RO238(:)+TP& +&K%K268(:)*PCONC(:,10)*TPK%RO238(:)+TPK%K269(:)*PCONC(:,1)*TPK%RO247(:)+TPK%K27& +&0(:)*PCONC(:,85)*TPK%RO247(:)+TPK%K271(:)*PCONC(:,10)*TPK%RO247(:)+TPK%K276(:)& +&*PCONC(:,41)+0.28*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.41*TPK%K282(:)*PCONC(:,& +&3)*PCONC(:,40)+0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40)+TPK%K285(:)*PCONC(:,1)*TP& +&K%RO249(:)+TPK%K286(:)*PCONC(:,85)*TPK%RO249(:)+TPK%K287(:)*PCONC(:,10)*TPK%RO& +&249(:)+TPK%K291(:)*PCONC(:,1)*TPK%RO251(:)+TPK%K292(:)*PCONC(:,10)*TPK%RO251(:& +&)+TPK%K293(:)*PCONC(:,85)*TPK%RO251(:)+TPK%K300(:)*PCONC(:,1)*TPK%RO254(:)+TPK& +&%K302(:)*PCONC(:,85)*TPK%RO254(:)+TPK%K308(:)*PCONC(:,69)+2.*TPK%K314(:)*PCONC& +&(:,57)+TPK%K315(:)*PCONC(:,1)*TPK%RO256(:)+TPK%K319(:)*PCONC(:,85)*TPK%RO256(:& +&)+TPK%K325(:)*PCONC(:,15)*PCONC(:,72)+TPK%K329(:)*PCONC(:,71)+TPK%K330(:)*PCON& +&C(:,71)+TPK%K339(:)*PCONC(:,74)+TPK%K347(:)*PCONC(:,15)*PCONC(:,43)+TPK%KTC43(& +&:)*PCONC(:,99)+TPK%KTR43(:)*PCONC(:,136) +!PLOSS(HO2) = +K026*<NO>+K027*<NO2>+K030*<O3>+K031*<HO2>+K031*<HO2>+K032*<H2O>* +!<HO2>+K032*<H2O>*<HO2>+K033*<NO3>+K042*<OH>+K094*<RO2T>+K112*<RO21>+K115*<RO22 +!>+K118*<RO23>+K121*<RO24>+K124*<RO25>+K142*<RO26>+K146*<RO27>+K148*<RO28>+K152 +!*<RO29>+K155*<RO210>+K158*<RO211>+K161*<RO212>+K164*<RO213>+K166*<RO239>+K170* +!<RO214>+K173*<RO215>+K176*<RO216>+K179*<RO217>+K182*<RO218>+K185*<RO219>+K188* +!<RO220>+K191*<RO221>+K194*<RO222>+K197*<RO223>+K200*<RO224>+K203*<RO225>+K206* +!<RO226>+K209*<RO227>+K212*<RO228>+K215*<RO229>+K218*<RO240>+K220*<RO230>+K223* +!<RO231>+K226*<RO232>+K229*<RO241>+K233*<RO233>+K236*<RO242>+K240*<RO234>+K243* +!<RO243>+K247*<RO235>+K250*<RO244>+K254*<RO236>+K257*<RO245>+K261*<RO237>+K264* +!<RO246>+K268*<RO238>+K271*<RO247>+K279*<RO248>+K287*<RO249>+K289*<RO250>+K292* +!<RO251>+K295*<RO252>+K298*<RO253>+K301*<RO254>+K310*<RO255>+K318*<RO256>+K332* +!<RO257>+K341*<RO258>+KTC12+KTR12 + PLOSS(:,10) = +TPK%K026(:)*PCONC(:,1)+TPK%K027(:)*PCONC(:,2)+TPK%K030(:)*PCONC& +&(:,3)+TPK%K031(:)*PCONC(:,10)+TPK%K031(:)*PCONC(:,10)+TPK%K032(:)*TPK%H2O(:)*P& +&CONC(:,10)+TPK%K032(:)*TPK%H2O(:)*PCONC(:,10)+TPK%K033(:)*PCONC(:,8)+TPK%K042(& +&:)*PCONC(:,15)+TPK%K094(:)*PCONC(:,85)+TPK%K112(:)*PCONC(:,86)+TPK%K115(:)*TPK& +&%RO22(:)+TPK%K118(:)*TPK%RO23(:)+TPK%K121(:)*TPK%RO24(:)+TPK%K124(:)*PCONC(:,8& +&7)+TPK%K142(:)*TPK%RO26(:)+TPK%K146(:)*TPK%RO27(:)+TPK%K148(:)*TPK%RO28(:)+TPK& +&%K152(:)*TPK%RO29(:)+TPK%K155(:)*TPK%RO210(:)+TPK%K158(:)*TPK%RO211(:)+TPK%K16& +&1(:)*TPK%RO212(:)+TPK%K164(:)*TPK%RO213(:)+TPK%K166(:)*TPK%RO239(:)+TPK%K170(:& +&)*TPK%RO214(:)+TPK%K173(:)*TPK%RO215(:)+TPK%K176(:)*TPK%RO216(:)+TPK%K179(:)*T& +&PK%RO217(:)+TPK%K182(:)*TPK%RO218(:)+TPK%K185(:)*TPK%RO219(:)+TPK%K188(:)*TPK%& +&RO220(:)+TPK%K191(:)*TPK%RO221(:)+TPK%K194(:)*TPK%RO222(:)+TPK%K197(:)*TPK%RO2& +&23(:)+TPK%K200(:)*TPK%RO224(:)+TPK%K203(:)*TPK%RO225(:)+TPK%K206(:)*TPK%RO226(& +&:)+TPK%K209(:)*TPK%RO227(:)+TPK%K212(:)*TPK%RO228(:)+TPK%K215(:)*TPK%RO229(:)+& +&TPK%K218(:)*TPK%RO240(:)+TPK%K220(:)*TPK%RO230(:)+TPK%K223(:)*TPK%RO231(:)+TPK& +&%K226(:)*TPK%RO232(:)+TPK%K229(:)*TPK%RO241(:)+TPK%K233(:)*TPK%RO233(:)+TPK%K2& +&36(:)*TPK%RO242(:)+TPK%K240(:)*TPK%RO234(:)+TPK%K243(:)*TPK%RO243(:)+TPK%K247(& +&:)*TPK%RO235(:)+TPK%K250(:)*TPK%RO244(:)+TPK%K254(:)*TPK%RO236(:)+TPK%K257(:)*& +&TPK%RO245(:)+TPK%K261(:)*TPK%RO237(:)+TPK%K264(:)*TPK%RO246(:)+TPK%K268(:)*TPK& +&%RO238(:)+TPK%K271(:)*TPK%RO247(:)+TPK%K279(:)*TPK%RO248(:)+TPK%K287(:)*TPK%RO& +&249(:)+TPK%K289(:)*TPK%RO250(:)+TPK%K292(:)*TPK%RO251(:)+TPK%K295(:)*TPK%RO252& +&(:)+TPK%K298(:)*TPK%RO253(:)+TPK%K301(:)*TPK%RO254(:)+TPK%K310(:)*TPK%RO255(:)& +&+TPK%K318(:)*TPK%RO256(:)+TPK%K332(:)*TPK%RO257(:)+TPK%K341(:)*TPK%RO258(:)+TP& +&K%KTC12(:)+TPK%KTR12(:) ! RETURN END SUBROUTINE SUB0 @@ -4156,156 +9951,161 @@ SUBROUTINE SUB1 !Indices 11 a 20 ! ! -!PPROD(SO2) = +KTC34*<WC_SO2>+KTR34*<WR_SO2> - PPROD(:,11) = +TPK%KTC34(:)*PCONC(:,55)+TPK%KTR34(:)*PCONC(:,80) -!PLOSS(SO2) = +K052*<OH>+KTC14+KTR14 - PLOSS(:,11) = +TPK%K052(:)*PCONC(:,14)+TPK%KTC14(:)+TPK%KTR14(:) -! -!PPROD(SULF) = +K052*<OH>*<SO2>+KTC35*<WC_SULF>+KTR35*<WR_SULF> - PPROD(:,12) = +TPK%K052(:)*PCONC(:,14)*PCONC(:,11)+TPK%KTC35(:)*PCONC(:,56)+TP& -&K%KTR35(:)*PCONC(:,81) -!PLOSS(SULF) = +K132+KTC15+KTR15 - PLOSS(:,12) = +TPK%K132(:)+TPK%KTC15(:)+TPK%KTR15(:) -! -!PPROD(CO) = +K010*<HCHO>+K011*<HCHO>+K012*<ALD>+0.91924*K016*<CARBO>+0.01*K054 -!*<BIO>*<O3P>+0.00878*K058*<ALKA>*<OH>+K062*<HCHO>*<OH>+1.01732*K065*<CARBO>*<O -!H>+K072*<HCHO>*<NO3>+1.33723*K074*<CARBO>*<NO3>+0.35120*K079*<ALKE>*<O3>+0.360 -!00*K080*<BIO>*<O3>+0.64728*K081*<CARBO>*<O3>+0.13*K082*<PAN>*<O3> - PPROD(:,13) = +TPK%K010(:)*PCONC(:,22)+TPK%K011(:)*PCONC(:,22)+TPK%K012(:)*PCO& -&NC(:,23)+0.91924*TPK%K016(:)*PCONC(:,25)+0.01*TPK%K054(:)*PCONC(:,20)*TPK%O3P(& -&:)+0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+TPK%K062(:)*PCONC(:,22)*PCONC(:& -&,14)+1.01732*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+TPK%K072(:)*PCONC(:,22)*PCONC& -&(:,5)+1.33723*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.35120*TPK%K079(:)*PCONC(:,1& -&9)*PCONC(:,1)+0.36000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.64728*TPK%K081(:)*P& -&CONC(:,25)*PCONC(:,1)+0.13*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) -!PLOSS(CO) = +K053*<OH> - PLOSS(:,13) = +TPK%K053(:)*PCONC(:,14) -! -!PPROD(OH) = +K004*<HONO>+K005*<HNO3>+0.35*K006*<HNO4>+K009*<H2O2>+K009*<H2O2>+ -!K013*<OP1>+K014*<OP2>+K022*<O1D>*<H2O>+K022*<O1D>*<H2O>+K024*<O3>*<HO2>+K035*< -!HO2>*<NO>+0.7*K038*<HO2>*<NO3>+0.02*K054*<BIO>*<O3P>+0.00878*K058*<ALKA>*<OH>+ -!0.35*K068*<OP1>*<OH>+0.44925*K069*<OP2>*<OH>+0.39435*K079*<ALKE>*<O3>+0.28000* -!K080*<BIO>*<O3>+0.20595*K081*<CARBO>*<O3>+0.036*K082*<PAN>*<O3>+K087*<ADD>*<O3 -!>+KTC31*<WC_OH>+KTR31*<WR_OH> - PPROD(:,14) = +TPK%K004(:)*PCONC(:,7)+TPK%K005(:)*PCONC(:,8)+0.35*TPK%K006(:)*& -&PCONC(:,9)+TPK%K009(:)*PCONC(:,2)+TPK%K009(:)*PCONC(:,2)+TPK%K013(:)*PCONC(:,2& -&8)+TPK%K014(:)*PCONC(:,29)+TPK%K022(:)*TPK%O1D(:)*TPK%H2O(:)+TPK%K022(:)*TPK%O& -&1D(:)*TPK%H2O(:)+TPK%K024(:)*PCONC(:,1)*PCONC(:,15)+TPK%K035(:)*PCONC(:,15)*PC& -&ONC(:,3)+0.7*TPK%K038(:)*PCONC(:,15)*PCONC(:,5)+0.02*TPK%K054(:)*PCONC(:,20)*T& -&PK%O3P(:)+0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0.35*TPK%K068(:)*PCONC(:& -&,28)*PCONC(:,14)+0.44925*TPK%K069(:)*PCONC(:,29)*PCONC(:,14)+0.39435*TPK%K079(& -&:)*PCONC(:,19)*PCONC(:,1)+0.28000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.20595*T& -&PK%K081(:)*PCONC(:,25)*PCONC(:,1)+0.036*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+TPK& -&%K087(:)*PCONC(:,37)*PCONC(:,1)+TPK%KTC31(:)*PCONC(:,52)+TPK%KTR31(:)*PCONC(:,& -&77) -!PLOSS(OH) = +K023*<O3>+K025*<HO2>+K026*<H2O2>+K032*<NO>+K033*<NO2>+K034*<NO3>+ -!K039*<HONO>+K040*<HNO3>+K041*<HNO4>+K050*<NH3>+K051*<H2>+K052*<SO2>+K053*<CO>+ -!K056*<CH4>+K057*<ETH>+K058*<ALKA>+K059*<ALKE>+K060*<BIO>+K061*<ARO>+K062*<HCHO -!>+K063*<ALD>+K064*<KET>+K065*<CARBO>+K066*<ORA1>+K067*<ORA2>+K068*<OP1>+K069*< -!OP2>+K070*<PAN>+K071*<ONIT>+KTC11+KTR11 - PLOSS(:,14) = +TPK%K023(:)*PCONC(:,1)+TPK%K025(:)*PCONC(:,15)+TPK%K026(:)*PCON& -&C(:,2)+TPK%K032(:)*PCONC(:,3)+TPK%K033(:)*PCONC(:,4)+TPK%K034(:)*PCONC(:,5)+TP& -&K%K039(:)*PCONC(:,7)+TPK%K040(:)*PCONC(:,8)+TPK%K041(:)*PCONC(:,9)+TPK%K050(:)& -&*PCONC(:,10)+TPK%K051(:)*TPK%H2(:)+TPK%K052(:)*PCONC(:,11)+TPK%K053(:)*PCONC(:& -&,13)+TPK%K056(:)*PCONC(:,16)+TPK%K057(:)*PCONC(:,17)+TPK%K058(:)*PCONC(:,18)+T& -&PK%K059(:)*PCONC(:,19)+TPK%K060(:)*PCONC(:,20)+TPK%K061(:)*PCONC(:,21)+TPK%K06& -&2(:)*PCONC(:,22)+TPK%K063(:)*PCONC(:,23)+TPK%K064(:)*PCONC(:,24)+TPK%K065(:)*P& -&CONC(:,25)+TPK%K066(:)*PCONC(:,30)+TPK%K067(:)*PCONC(:,31)+TPK%K068(:)*PCONC(:& -&,28)+TPK%K069(:)*PCONC(:,29)+TPK%K070(:)*PCONC(:,27)+TPK%K071(:)*PCONC(:,26)+T& -&PK%KTC11(:)+TPK%KTR11(:) -! -!PPROD(HO2) = +0.65*K006*<HNO4>+K011*<HCHO>+K011*<HCHO>+K012*<ALD>+K013*<OP1>+0 -!.96205*K014*<OP2>+0.75830*K016*<CARBO>+K017*<ONIT>+K023*<O3>*<OH>+K026*<H2O2>* -!<OH>+K034*<OH>*<NO3>+K037*<HNO4>+K051*<OH>*<H2>+K052*<OH>*<SO2>+K053*<CO>*<OH> -!+0.28*K054*<BIO>*<O3P>+0.12793*K058*<ALKA>*<OH>+0.10318*K061*<ARO>*<OH>+K062*< -!HCHO>*<OH>+0.51208*K065*<CARBO>*<OH>+K066*<ORA1>*<OH>+0.02915*K069*<OP2>*<OH>+ -!0.28107*K070*<PAN>*<OH>+K072*<HCHO>*<NO3>+0.63217*K074*<CARBO>*<NO3>+0.23451*K -!079*<ALKE>*<O3>+0.30000*K080*<BIO>*<O3>+0.28441*K081*<CARBO>*<O3>+0.08*K082*<P -!AN>*<O3>+0.02*K086*<ADD>*<O2>+K090*<MO2>*<NO>+0.74265*K091*<ALKAP>*<NO>+K092*< -!ALKEP>*<NO>+0.84700*K093*<BIOP>*<NO>+0.95115*K094*<AROP>*<NO>+0.12334*K095*<CA -!RBOP>*<NO>+0.18401*K096*<OLN>*<NO>+0.66*K104*<MO2>*<MO2>+0.98383*K105*<ALKAP>* -!<MO2>+K106*<ALKEP>*<MO2>+1.00000*K107*<BIOP>*<MO2>+1.02767*K108*<AROP>*<MO2>+0 -!.82998*K109*<CARBOP>*<MO2>+0.67560*K110*<OLN>*<MO2>+0.48079*K111*<ALKAP>*<CARB -!OP>+0.50078*K112*<ALKEP>*<CARBOP>+0.50600*K113*<BIOP>*<CARBOP>+K114*<AROP>*<CA -!RBOP>+0.07566*K115*<CARBOP>*<CARBOP>+0.17599*K116*<OLN>*<CARBOP>+K117*<OLN>*<O -!LN>+0.00000*K118*<OLN>*<OLN>+K119*<MO2>*<NO3>+0.81290*K120*<ALKAP>*<NO3>+K121* -!<ALKEP>*<NO3>+K122*<BIOP>*<NO3>+K123*<AROP>*<NO3>+0.04915*K124*<CARBOP>*<NO3>+ -!0.25928*K125*<OLN>*<NO3>+K127*<XO2>*<MO2>+KTC32*<WC_HO2>+KTR32*<WR_HO2> - PPROD(:,15) = +0.65*TPK%K006(:)*PCONC(:,9)+TPK%K011(:)*PCONC(:,22)+TPK%K011(:)& -&*PCONC(:,22)+TPK%K012(:)*PCONC(:,23)+TPK%K013(:)*PCONC(:,28)+0.96205*TPK%K014(& -&:)*PCONC(:,29)+0.75830*TPK%K016(:)*PCONC(:,25)+TPK%K017(:)*PCONC(:,26)+TPK%K02& -&3(:)*PCONC(:,1)*PCONC(:,14)+TPK%K026(:)*PCONC(:,2)*PCONC(:,14)+TPK%K034(:)*PCO& -&NC(:,14)*PCONC(:,5)+TPK%K037(:)*PCONC(:,9)+TPK%K051(:)*PCONC(:,14)*TPK%H2(:)+T& -&PK%K052(:)*PCONC(:,14)*PCONC(:,11)+TPK%K053(:)*PCONC(:,13)*PCONC(:,14)+0.28*TP& -&K%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.12793*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0& -&.10318*TPK%K061(:)*PCONC(:,21)*PCONC(:,14)+TPK%K062(:)*PCONC(:,22)*PCONC(:,14)& -&+0.51208*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+TPK%K066(:)*PCONC(:,30)*PCONC(:,1& -&4)+0.02915*TPK%K069(:)*PCONC(:,29)*PCONC(:,14)+0.28107*TPK%K070(:)*PCONC(:,27)& -&*PCONC(:,14)+TPK%K072(:)*PCONC(:,22)*PCONC(:,5)+0.63217*TPK%K074(:)*PCONC(:,25& -&)*PCONC(:,5)+0.23451*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.30000*TPK%K080(:)*PC& -&ONC(:,20)*PCONC(:,1)+0.28441*TPK%K081(:)*PCONC(:,25)*PCONC(:,1)+0.08*TPK%K082(& -&:)*PCONC(:,27)*PCONC(:,1)+0.02*TPK%K086(:)*PCONC(:,37)*TPK%O2(:)+TPK%K090(:)*P& -&CONC(:,32)*PCONC(:,3)+0.74265*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+TPK%K092(:)*P& -&CONC(:,34)*PCONC(:,3)+0.84700*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0.95115*TPK%K& -&094(:)*PCONC(:,38)*PCONC(:,3)+0.12334*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+0.184& -&01*TPK%K096(:)*PCONC(:,40)*PCONC(:,3)+0.66*TPK%K104(:)*PCONC(:,32)*PCONC(:,32)& -&+0.98383*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+TPK%K106(:)*PCONC(:,34)*PCONC(:,3& -&2)+1.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32)+1.02767*TPK%K108(:)*PCONC(:,38)& -&*PCONC(:,32)+0.82998*TPK%K109(:)*PCONC(:,39)*PCONC(:,32)+0.67560*TPK%K110(:)*P& -&CONC(:,40)*PCONC(:,32)+0.48079*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.50078*TPK& -&%K112(:)*PCONC(:,34)*PCONC(:,39)+0.50600*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+T& -&PK%K114(:)*PCONC(:,38)*PCONC(:,39)+0.07566*TPK%K115(:)*PCONC(:,39)*PCONC(:,39)& -&+0.17599*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+TPK%K117(:)*PCONC(:,40)*PCONC(:,4& -&0)+0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40)+TPK%K119(:)*PCONC(:,32)*PCONC(:& -&,5)+0.81290*TPK%K120(:)*PCONC(:,33)*PCONC(:,5)+TPK%K121(:)*PCONC(:,34)*PCONC(:& -&,5)+TPK%K122(:)*PCONC(:,35)*PCONC(:,5)+TPK%K123(:)*PCONC(:,38)*PCONC(:,5)+0.04& -&915*TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+0.25928*TPK%K125(:)*PCONC(:,40)*PCONC(:& -&,5)+TPK%K127(:)*PCONC(:,41)*PCONC(:,32)+TPK%KTC32(:)*PCONC(:,53)+TPK%KTR32(:)*& -&PCONC(:,78) -!PLOSS(HO2) = +K024*<O3>+K025*<OH>+K027*<HO2>+K027*<HO2>+K028*<HO2>*<H2O>+K028* -!<HO2>*<H2O>+K035*<NO>+K036*<NO2>+K038*<NO3>+K084*<PHO>+K097*<MO2>+K098*<ALKAP> -!+K099*<ALKEP>+K0100*<BIOP>+K0101*<AROP>+K0102*<CARBOP>+K103*<OLN>+K126*<XO2>+K -!TC12+KTR12 - PLOSS(:,15) = +TPK%K024(:)*PCONC(:,1)+TPK%K025(:)*PCONC(:,14)+TPK%K027(:)*PCON& -&C(:,15)+TPK%K027(:)*PCONC(:,15)+TPK%K028(:)*PCONC(:,15)*TPK%H2O(:)+TPK%K028(:)& -&*PCONC(:,15)*TPK%H2O(:)+TPK%K035(:)*PCONC(:,3)+TPK%K036(:)*PCONC(:,4)+TPK%K038& -&(:)*PCONC(:,5)+TPK%K084(:)*PCONC(:,36)+TPK%K097(:)*PCONC(:,32)+TPK%K098(:)*PCO& -&NC(:,33)+TPK%K099(:)*PCONC(:,34)+TPK%K0100(:)*PCONC(:,35)+TPK%K0101(:)*PCONC(:& -&,38)+TPK%K0102(:)*PCONC(:,39)+TPK%K103(:)*PCONC(:,40)+TPK%K126(:)*PCONC(:,41)+& -&TPK%KTC12(:)+TPK%KTR12(:) -! -!PPROD(CH4) = +0.04300*K079*<ALKE>*<O3> - PPROD(:,16) = +0.04300*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) -!PLOSS(CH4) = +K056*<OH> - PLOSS(:,16) = +TPK%K056(:)*PCONC(:,14) -! -!PPROD(ETH) = +0.03196*K079*<ALKE>*<O3> - PPROD(:,17) = +0.03196*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) -!PLOSS(ETH) = +K057*<OH> - PLOSS(:,17) = +TPK%K057(:)*PCONC(:,14) -! -!PPROD(ALKA) = 0.0 +!PPROD(CO) = +K044*<HCHO>+K045*<HCHO>+K046*<OH>*<HCHO>+K047*<NO3>*<HCHO>+0.315* +!K051*<O3>*<ETHE>+0.6*K052*<O>*<ETHE>+0.56*K056*<O3>*<OLEL>+K059*<ALD2>+0.461*K +!066*<O3>*<ISOP>+0.56*K076*<O3>*<OLEH>+0.445*K086*<O3>*<BIOL>+0.445*K090*<O3>*< +!BIOH>+K119*<NO>*<RO24>+K120*<RO2T>*<RO24>+K121*<HO2>*<RO24>+K276*<MGLY>+0.56*K +!281*<O3>*<MVK>+0.41*K282*<O3>*<MCR>+0.15*K284*<O>*<MCR>+K300*<NO>*<RO254>+K302 +!*<RO2T>*<RO254>+K308*<RPR1>+K314*<RPR3>+K329*<RPR8>+2.*K339*<RP16>+K340*<NO>*< +!RO258>+K342*<RO2T>*<RO258> + PPROD(:,11) = +TPK%K044(:)*PCONC(:,28)+TPK%K045(:)*PCONC(:,28)+TPK%K046(:)*PCO& +&NC(:,15)*PCONC(:,28)+TPK%K047(:)*PCONC(:,8)*PCONC(:,28)+0.315*TPK%K051(:)*PCON& +&C(:,3)*PCONC(:,16)+0.6*TPK%K052(:)*TPK%O(:)*PCONC(:,16)+0.56*TPK%K056(:)*PCONC& +&(:,3)*PCONC(:,17)+TPK%K059(:)*PCONC(:,29)+0.461*TPK%K066(:)*PCONC(:,3)*PCONC(:& +&,35)+0.56*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+0.445*TPK%K086(:)*PCONC(:,3)*PCON& +&C(:,36)+0.445*TPK%K090(:)*PCONC(:,3)*PCONC(:,37)+TPK%K119(:)*PCONC(:,1)*TPK%RO& +&24(:)+TPK%K120(:)*PCONC(:,85)*TPK%RO24(:)+TPK%K121(:)*PCONC(:,10)*TPK%RO24(:)+& +&TPK%K276(:)*PCONC(:,41)+0.56*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.41*TPK%K282(& +&:)*PCONC(:,3)*PCONC(:,40)+0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40)+TPK%K300(:)*PC& +&ONC(:,1)*TPK%RO254(:)+TPK%K302(:)*PCONC(:,85)*TPK%RO254(:)+TPK%K308(:)*PCONC(:& +&,69)+TPK%K314(:)*PCONC(:,57)+TPK%K329(:)*PCONC(:,71)+2.*TPK%K339(:)*PCONC(:,74& +&)+TPK%K340(:)*PCONC(:,1)*TPK%RO258(:)+TPK%K342(:)*PCONC(:,85)*TPK%RO258(:) +!PLOSS(CO) = +K024*<OH> + PLOSS(:,11) = +TPK%K024(:)*PCONC(:,15) +! +!PPROD(H2O2) = +K031*<HO2>*<HO2>+K032*<HO2>*<H2O>*<HO2>+0.055*K086*<O3>*<BIOL>+ +!0.055*K090*<O3>*<BIOH>+KTC33*<WC_H2O2>+KTR33*<WR_H2O2> + PPROD(:,12) = +TPK%K031(:)*PCONC(:,10)*PCONC(:,10)+TPK%K032(:)*PCONC(:,10)*TPK& +&%H2O(:)*PCONC(:,10)+0.055*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)+0.055*TPK%K090(:)& +&*PCONC(:,3)*PCONC(:,37)+TPK%KTC33(:)*PCONC(:,89)+TPK%KTR33(:)*PCONC(:,126) +!PLOSS(H2O2) = +K036+K037*<OH>+KTC2+KTR2 + PLOSS(:,12) = +TPK%K036(:)+TPK%K037(:)*PCONC(:,15)+TPK%KTC2(:)+TPK%KTR2(:) +! +!PPROD(SO2) = +KTC45*<WC_SO2>+KTR45*<WR_SO2> + PPROD(:,13) = +TPK%KTC45(:)*PCONC(:,101)+TPK%KTR45(:)*PCONC(:,138) +!PLOSS(SO2) = +K035*<OH>+KTC14+KTR14 + PLOSS(:,13) = +TPK%K035(:)*PCONC(:,15)+TPK%KTC14(:)+TPK%KTR14(:) +! +!PPROD(H2SO4) = +K035*<OH>*<SO2>+KTC46*<WC_H2SO4>+KTR46*<WR_H2SO4> + PPROD(:,14) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,13)+TPK%KTC46(:)*PCONC(:,102)+T& +&PK%KTR46(:)*PCONC(:,139) +!PLOSS(H2SO4) = +K346+KTC15+KTR15 + PLOSS(:,14) = +TPK%K346(:)+TPK%KTC15(:)+TPK%KTR15(:) +! +!PPROD(OH) = +K017*<H2O>*<OSD>+K017*<H2O>*<OSD>+0.9*K020*<HONO>+K026*<HO2>*<NO> +!+K030*<HO2>*<O3>+0.8*K033*<HO2>*<NO3>+2.*K036*<H2O2>+0.06*K051*<O3>*<ETHE>+0.3 +!6*K056*<O3>*<OLEL>+0.664*K066*<O3>*<ISOP>+0.36*K076*<O3>*<OLEH>+0.89*K086*<O3> +!*<BIOL>+0.89*K090*<O3>*<BIOH>+K112*<HO2>*<RO21>+K115*<HO2>*<RO22>+K118*<HO2>*< +!RO23>+K121*<HO2>*<RO24>+K124*<HO2>*<RO25>+K146*<HO2>*<RO27>+K152*<HO2>*<RO29>+ +!K155*<HO2>*<RO210>+K158*<HO2>*<RO211>+K161*<HO2>*<RO212>+K164*<HO2>*<RO213>+K1 +!70*<HO2>*<RO214>+K173*<HO2>*<RO215>+K176*<HO2>*<RO216>+K179*<HO2>*<RO217>+K182 +!*<HO2>*<RO218>+K185*<HO2>*<RO219>+K188*<HO2>*<RO220>+K191*<HO2>*<RO221>+K194*< +!HO2>*<RO222>+K197*<HO2>*<RO223>+K200*<HO2>*<RO224>+K203*<HO2>*<RO225>+K206*<HO +!2>*<RO226>+K209*<HO2>*<RO227>+K212*<HO2>*<RO228>+K215*<HO2>*<RO229>+K218*<HO2> +!*<RO240>+K220*<HO2>*<RO230>+K223*<HO2>*<RO231>+K226*<HO2>*<RO232>+K229*<HO2>*< +!RO241>+K233*<HO2>*<RO233>+K236*<HO2>*<RO242>+K240*<HO2>*<RO234>+K243*<HO2>*<RO +!243>+K247*<HO2>*<RO235>+K250*<HO2>*<RO244>+K254*<HO2>*<RO236>+K257*<HO2>*<RO24 +!5>+K261*<HO2>*<RO237>+K264*<HO2>*<RO246>+K268*<HO2>*<RO238>+K271*<HO2>*<RO247> +!+0.36*K281*<O3>*<MVK>+0.82*K282*<O3>*<MCR>+K287*<HO2>*<RO249>+K293*<RO2T>*<RO2 +!51>+K296*<RO2T>*<RO252>+K299*<RO2T>*<RO253>+K339*<RP16>+K340*<NO>*<RO258>+K342 +!*<RO2T>*<RO258>+KTC42*<WC_OH>+KTR42*<WR_OH> + PPROD(:,15) = +TPK%K017(:)*TPK%H2O(:)*TPK%OSD(:)+TPK%K017(:)*TPK%H2O(:)*TPK%OS& +&D(:)+0.9*TPK%K020(:)*PCONC(:,4)+TPK%K026(:)*PCONC(:,10)*PCONC(:,1)+TPK%K030(:)& +&*PCONC(:,10)*PCONC(:,3)+0.8*TPK%K033(:)*PCONC(:,10)*PCONC(:,8)+2.*TPK%K036(:)*& +&PCONC(:,12)+0.06*TPK%K051(:)*PCONC(:,3)*PCONC(:,16)+0.36*TPK%K056(:)*PCONC(:,3& +&)*PCONC(:,17)+0.664*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+0.36*TPK%K076(:)*PCONC(& +&:,3)*PCONC(:,18)+0.89*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)+0.89*TPK%K090(:)*PCON& +&C(:,3)*PCONC(:,37)+TPK%K112(:)*PCONC(:,10)*PCONC(:,86)+TPK%K115(:)*PCONC(:,10)& +&*TPK%RO22(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO23(:)+TPK%K121(:)*PCONC(:,10)*TPK%R& +&O24(:)+TPK%K124(:)*PCONC(:,10)*PCONC(:,87)+TPK%K146(:)*PCONC(:,10)*TPK%RO27(:)& +&+TPK%K152(:)*PCONC(:,10)*TPK%RO29(:)+TPK%K155(:)*PCONC(:,10)*TPK%RO210(:)+TPK%& +&K158(:)*PCONC(:,10)*TPK%RO211(:)+TPK%K161(:)*PCONC(:,10)*TPK%RO212(:)+TPK%K164& +&(:)*PCONC(:,10)*TPK%RO213(:)+TPK%K170(:)*PCONC(:,10)*TPK%RO214(:)+TPK%K173(:)*& +&PCONC(:,10)*TPK%RO215(:)+TPK%K176(:)*PCONC(:,10)*TPK%RO216(:)+TPK%K179(:)*PCON& +&C(:,10)*TPK%RO217(:)+TPK%K182(:)*PCONC(:,10)*TPK%RO218(:)+TPK%K185(:)*PCONC(:,& +&10)*TPK%RO219(:)+TPK%K188(:)*PCONC(:,10)*TPK%RO220(:)+TPK%K191(:)*PCONC(:,10)*& +&TPK%RO221(:)+TPK%K194(:)*PCONC(:,10)*TPK%RO222(:)+TPK%K197(:)*PCONC(:,10)*TPK%& +&RO223(:)+TPK%K200(:)*PCONC(:,10)*TPK%RO224(:)+TPK%K203(:)*PCONC(:,10)*TPK%RO22& +&5(:)+TPK%K206(:)*PCONC(:,10)*TPK%RO226(:)+TPK%K209(:)*PCONC(:,10)*TPK%RO227(:)& +&+TPK%K212(:)*PCONC(:,10)*TPK%RO228(:)+TPK%K215(:)*PCONC(:,10)*TPK%RO229(:)+TPK& +&%K218(:)*PCONC(:,10)*TPK%RO240(:)+TPK%K220(:)*PCONC(:,10)*TPK%RO230(:)+TPK%K22& +&3(:)*PCONC(:,10)*TPK%RO231(:)+TPK%K226(:)*PCONC(:,10)*TPK%RO232(:)+TPK%K229(:)& +&*PCONC(:,10)*TPK%RO241(:)+TPK%K233(:)*PCONC(:,10)*TPK%RO233(:)+TPK%K236(:)*PCO& +&NC(:,10)*TPK%RO242(:)+TPK%K240(:)*PCONC(:,10)*TPK%RO234(:)+TPK%K243(:)*PCONC(:& +&,10)*TPK%RO243(:)+TPK%K247(:)*PCONC(:,10)*TPK%RO235(:)+TPK%K250(:)*PCONC(:,10)& +&*TPK%RO244(:)+TPK%K254(:)*PCONC(:,10)*TPK%RO236(:)+TPK%K257(:)*PCONC(:,10)*TPK& +&%RO245(:)+TPK%K261(:)*PCONC(:,10)*TPK%RO237(:)+TPK%K264(:)*PCONC(:,10)*TPK%RO2& +&46(:)+TPK%K268(:)*PCONC(:,10)*TPK%RO238(:)+TPK%K271(:)*PCONC(:,10)*TPK%RO247(:& +&)+0.36*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.82*TPK%K282(:)*PCONC(:,3)*PCONC(:,& +&40)+TPK%K287(:)*PCONC(:,10)*TPK%RO249(:)+TPK%K293(:)*PCONC(:,85)*TPK%RO251(:)+& +&TPK%K296(:)*PCONC(:,85)*TPK%RO252(:)+TPK%K299(:)*PCONC(:,85)*TPK%RO253(:)+TPK%& +&K339(:)*PCONC(:,74)+TPK%K340(:)*PCONC(:,1)*TPK%RO258(:)+TPK%K342(:)*PCONC(:,85& +&)*TPK%RO258(:)+TPK%KTC42(:)*PCONC(:,98)+TPK%KTR42(:)*PCONC(:,135) +!PLOSS(OH) = +K019*<NO>+K022*<NO2>+K023*<HNO3>+K024*<CO>+K025*<O3>+K029*<HNO4>+ +!K035*<SO2>+K037*<H2O2>+K039*<HONO>+K040*<NO3>+K042*<HO2>+K043*<CH4>+K046*<HCHO +!>+K048*<MEOH>+K049*<ETHE>+K053*<ETOH>+K054*<OLEL>+K058*<ALKL>+K060*<ALD2>+K062 +!*<KETL>+K064*<ISOP>+K068*<MTBE>+K069*<ALCH>+K070*<KETH>+K073*<AROO>+K074*<OLEH +!>+K078*<ALKM>+K079*<AROL>+K080*<AROH>+K082*<ARAL>+K083*<ARAC>+K084*<BIOL>+K088 +!*<BIOH>+K092*<PAH>+K093*<ALKH>+K272*<MVK>+K273*<MCR>+K274*<MGLY>+K303*<RPR5>+K +!304*<RPR1>+K305*<RP16>+K306*<RPRL>+K312*<RPR3>+K322*<RPR7>+K323*<RPG7>+K324*<R +!PR8>+K325*<RP10>+K326*<RP11>+K334*<RPG3>+K335*<RPG2>+K337*<RP18>+K345*<NH3>+K3 +!47*<ORA1>+K348*<ORA2>+K349*<ACID>+KTC11+KTR11 + PLOSS(:,15) = +TPK%K019(:)*PCONC(:,1)+TPK%K022(:)*PCONC(:,2)+TPK%K023(:)*PCONC& +&(:,5)+TPK%K024(:)*PCONC(:,11)+TPK%K025(:)*PCONC(:,3)+TPK%K029(:)*PCONC(:,6)+TP& +&K%K035(:)*PCONC(:,13)+TPK%K037(:)*PCONC(:,12)+TPK%K039(:)*PCONC(:,4)+TPK%K040(& +&:)*PCONC(:,8)+TPK%K042(:)*PCONC(:,10)+TPK%K043(:)*TPK%CH4(:)+TPK%K046(:)*PCONC& +&(:,28)+TPK%K048(:)*PCONC(:,32)+TPK%K049(:)*PCONC(:,16)+TPK%K053(:)*PCONC(:,33)& +&+TPK%K054(:)*PCONC(:,17)+TPK%K058(:)*PCONC(:,19)+TPK%K060(:)*PCONC(:,29)+TPK%K& +&062(:)*PCONC(:,30)+TPK%K064(:)*PCONC(:,35)+TPK%K068(:)*PCONC(:,38)+TPK%K069(:)& +&*PCONC(:,34)+TPK%K070(:)*PCONC(:,31)+TPK%K073(:)*PCONC(:,24)+TPK%K074(:)*PCONC& +&(:,18)+TPK%K078(:)*PCONC(:,20)+TPK%K079(:)*PCONC(:,23)+TPK%K080(:)*PCONC(:,22)& +&+TPK%K082(:)*PCONC(:,25)+TPK%K083(:)*PCONC(:,26)+TPK%K084(:)*PCONC(:,36)+TPK%K& +&088(:)*PCONC(:,37)+TPK%K092(:)*PCONC(:,27)+TPK%K093(:)*PCONC(:,21)+TPK%K272(:)& +&*PCONC(:,39)+TPK%K273(:)*PCONC(:,40)+TPK%K274(:)*PCONC(:,41)+TPK%K303(:)*PCONC& +&(:,70)+TPK%K304(:)*PCONC(:,69)+TPK%K305(:)*PCONC(:,74)+TPK%K306(:)*PCONC(:,75)& +&+TPK%K312(:)*PCONC(:,57)+TPK%K322(:)*PCONC(:,62)+TPK%K323(:)*PCONC(:,63)+TPK%K& +&324(:)*PCONC(:,71)+TPK%K325(:)*PCONC(:,72)+TPK%K326(:)*PCONC(:,73)+TPK%K334(:)& +&*PCONC(:,52)+TPK%K335(:)*PCONC(:,50)+TPK%K337(:)*PCONC(:,51)+TPK%K345(:)*PCONC& +&(:,9)+TPK%K347(:)*PCONC(:,43)+TPK%K348(:)*PCONC(:,44)+TPK%K349(:)*PCONC(:,45)+& +&TPK%KTC11(:)+TPK%KTR11(:) +! +!PPROD(ETHE) = 0.0 + PPROD(:,16) = 0.0 +!PLOSS(ETHE) = +K049*<OH>+K050*<NO3>+K051*<O3>+K052*<O> + PLOSS(:,16) = +TPK%K049(:)*PCONC(:,15)+TPK%K050(:)*PCONC(:,8)+TPK%K051(:)*PCON& +&C(:,3)+TPK%K052(:)*TPK%O(:) +! +!PPROD(OLEL) = +0.054*K066*<O3>*<ISOP>+0.925*K067*<O>*<ISOP>+TPK%CF5*K150*<NO>* +!<RO29>+0.5*K166*<HO2>*<RO239>+TPK%CF7*K168*<NO>*<RO214>+0.5*K289*<HO2>*<RO250> + PPROD(:,17) = +0.054*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+0.925*TPK%K067(:)*TPK%& +&O(:)*PCONC(:,35)+TPK%CF5*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:)+0.5*TPK%K166(:)*PC& +&ONC(:,10)*TPK%RO239(:)+TPK%CF7*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:)+0.5*TPK%K28& +&9(:)*PCONC(:,10)*TPK%RO250(:) +!PLOSS(OLEL) = +K054*<OH>+K055*<NO3>+K056*<O3>+K057*<O> + PLOSS(:,17) = +TPK%K054(:)*PCONC(:,15)+TPK%K055(:)*PCONC(:,8)+TPK%K056(:)*PCON& +&C(:,3)+TPK%K057(:)*TPK%O(:) +! +!PPROD(OLEH) = 0.0 PPROD(:,18) = 0.0 -!PLOSS(ALKA) = +K058*<OH> - PLOSS(:,18) = +TPK%K058(:)*PCONC(:,14) -! -!PPROD(ALKE) = +0.91868*K054*<BIO>*<O3P>+0.00000*K079*<ALKE>*<O3>+0.37388*K080* -!<BIO>*<O3>+0.37815*K093*<BIOP>*<NO>+0.48074*K107*<BIOP>*<MO2>+0.24463*K113*<BI -!OP>*<CARBOP>+0.42729*K122*<BIOP>*<NO3> - PPROD(:,19) = +0.91868*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.00000*TPK%K079(:)*& -&PCONC(:,19)*PCONC(:,1)+0.37388*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.37815*TPK%& -&K093(:)*PCONC(:,35)*PCONC(:,3)+0.48074*TPK%K107(:)*PCONC(:,35)*PCONC(:,32)+0.2& -&4463*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+0.42729*TPK%K122(:)*PCONC(:,35)*PCONC& -&(:,5) -!PLOSS(ALKE) = +K059*<OH>+K076*<NO3>+K079*<O3> - PLOSS(:,19) = +TPK%K059(:)*PCONC(:,14)+TPK%K076(:)*PCONC(:,5)+TPK%K079(:)*PCON& -&C(:,1) -! -!PPROD(BIO) = 0.0 - PPROD(:,20) = 0.0 -!PLOSS(BIO) = +K054*<O3P>+K060*<OH>+K077*<NO3>+K080*<O3> - PLOSS(:,20) = +TPK%K054(:)*TPK%O3P(:)+TPK%K060(:)*PCONC(:,14)+TPK%K077(:)*PCON& -&C(:,5)+TPK%K080(:)*PCONC(:,1) +!PLOSS(OLEH) = +K074*<OH>+K075*<NO3>+K076*<O3>+K077*<O> + PLOSS(:,18) = +TPK%K074(:)*PCONC(:,15)+TPK%K075(:)*PCONC(:,8)+TPK%K076(:)*PCON& +&C(:,3)+TPK%K077(:)*TPK%O(:) +! +!PPROD(ALKL) = +0.1*K056*<O3>*<OLEL>+0.5*K057*<O>*<OLEL>+TPK%CF3*K122*<NO>*<RO2 +!5>+TPK%CF12*K171*<NO>*<RO215>+TPK%CF16*K172*<RO2T>*<RO215>+TPK%CF16*K173*<HO2> +!*<RO215> + PPROD(:,19) = +0.1*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+0.5*TPK%K057(:)*TPK%O(:)& +&*PCONC(:,17)+TPK%CF3*TPK%K122(:)*PCONC(:,1)*PCONC(:,87)+TPK%CF12*TPK%K171(:)*P& +&CONC(:,1)*TPK%RO215(:)+TPK%CF16*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:)+TPK%CF16*& +&TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) +!PLOSS(ALKL) = +K058*<OH> + PLOSS(:,19) = +TPK%K058(:)*PCONC(:,15) +! +!PPROD(ALKM) = +0.1*K076*<O3>*<OLEH>+0.5*K077*<O>*<OLEH> + PPROD(:,20) = +0.1*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+0.5*TPK%K077(:)*TPK%O(:)& +&*PCONC(:,18) +!PLOSS(ALKM) = +K078*<OH> + PLOSS(:,20) = +TPK%K078(:)*PCONC(:,15) ! RETURN END SUBROUTINE SUB1 @@ -4315,189 +10115,122 @@ SUBROUTINE SUB2 !Indices 21 a 30 ! ! -!PPROD(ARO) = +0.10670*K083*<PHO>*<NO2>+1.06698*K084*<PHO>*<HO2>+K085*<ADD>*<NO -!2>+0.02*K086*<ADD>*<O2>+K087*<ADD>*<O3> - PPROD(:,21) = +0.10670*TPK%K083(:)*PCONC(:,36)*PCONC(:,4)+1.06698*TPK%K084(:)*& -&PCONC(:,36)*PCONC(:,15)+TPK%K085(:)*PCONC(:,37)*PCONC(:,4)+0.02*TPK%K086(:)*PC& -&ONC(:,37)*TPK%O2(:)+TPK%K087(:)*PCONC(:,37)*PCONC(:,1) -!PLOSS(ARO) = +K061*<OH>+K075*<NO3> - PLOSS(:,21) = +TPK%K061(:)*PCONC(:,14)+TPK%K075(:)*PCONC(:,5) -! -!PPROD(HCHO) = +K013*<OP1>+0.06517*K016*<CARBO>+0.05*K054*<BIO>*<O3P>+0.00140*K -!058*<ALKA>*<OH>+0.00000*K065*<CARBO>*<OH>+0.35*K068*<OP1>*<OH>+0.02915*K069*<O -!P2>*<OH>+0.57839*K070*<PAN>*<OH>+0.40*K078*<PAN>*<NO3>+0.48290*K079*<ALKE>*<O3 -!>+0.90000*K080*<BIO>*<O3>+0.00000*K081*<CARBO>*<O3>+0.70*K082*<PAN>*<O3>+K090* -!<MO2>*<NO>+0.03002*K091*<ALKAP>*<NO>+1.39870*K092*<ALKEP>*<NO>+0.60600*K093*<B -!IOP>*<NO>+0.05848*K095*<CARBOP>*<NO>+0.23419*K096*<OLN>*<NO>+1.33*K104*<MO2>*< -!MO2>+0.80556*K105*<ALKAP>*<MO2>+1.42894*K106*<ALKEP>*<MO2>+1.09000*K107*<BIOP> -!*<MO2>+K108*<AROP>*<MO2>+0.95723*K109*<CARBOP>*<MO2>+0.88625*K110*<OLN>*<MO2>+ -!0.07600*K111*<ALKAP>*<CARBOP>+0.68192*K112*<ALKEP>*<CARBOP>+0.34000*K113*<BIOP -!>*<CARBOP>+0.03432*K115*<CARBOP>*<CARBOP>+0.13414*K116*<OLN>*<CARBOP>+0.00000* -!K118*<OLN>*<OLN>+K119*<MO2>*<NO3>+0.03142*K120*<ALKAP>*<NO3>+1.40909*K121*<ALK -!EP>*<NO3>+0.68600*K122*<BIOP>*<NO3>+0.03175*K124*<CARBOP>*<NO3>+0.20740*K125*< -!OLN>*<NO3>+K127*<XO2>*<MO2>+KTC36*<WC_HCHO>+KTR36*<WR_HCHO> - PPROD(:,22) = +TPK%K013(:)*PCONC(:,28)+0.06517*TPK%K016(:)*PCONC(:,25)+0.05*TP& -&K%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.00140*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0& -&.00000*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.35*TPK%K068(:)*PCONC(:,28)*PCONC(& -&:,14)+0.02915*TPK%K069(:)*PCONC(:,29)*PCONC(:,14)+0.57839*TPK%K070(:)*PCONC(:,& -&27)*PCONC(:,14)+0.40*TPK%K078(:)*PCONC(:,27)*PCONC(:,5)+0.48290*TPK%K079(:)*PC& -&ONC(:,19)*PCONC(:,1)+0.90000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.00000*TPK%K0& -&81(:)*PCONC(:,25)*PCONC(:,1)+0.70*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+TPK%K090(& -&:)*PCONC(:,32)*PCONC(:,3)+0.03002*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+1.39870*T& -&PK%K092(:)*PCONC(:,34)*PCONC(:,3)+0.60600*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0& -&.05848*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+0.23419*TPK%K096(:)*PCONC(:,40)*PCON& -&C(:,3)+1.33*TPK%K104(:)*PCONC(:,32)*PCONC(:,32)+0.80556*TPK%K105(:)*PCONC(:,33& -&)*PCONC(:,32)+1.42894*TPK%K106(:)*PCONC(:,34)*PCONC(:,32)+1.09000*TPK%K107(:)*& -&PCONC(:,35)*PCONC(:,32)+TPK%K108(:)*PCONC(:,38)*PCONC(:,32)+0.95723*TPK%K109(:& -&)*PCONC(:,39)*PCONC(:,32)+0.88625*TPK%K110(:)*PCONC(:,40)*PCONC(:,32)+0.07600*& -&TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.68192*TPK%K112(:)*PCONC(:,34)*PCONC(:,39& -&)+0.34000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+0.03432*TPK%K115(:)*PCONC(:,39)*& -&PCONC(:,39)+0.13414*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+0.00000*TPK%K118(:)*PC& -&ONC(:,40)*PCONC(:,40)+TPK%K119(:)*PCONC(:,32)*PCONC(:,5)+0.03142*TPK%K120(:)*P& -&CONC(:,33)*PCONC(:,5)+1.40909*TPK%K121(:)*PCONC(:,34)*PCONC(:,5)+0.68600*TPK%K& -&122(:)*PCONC(:,35)*PCONC(:,5)+0.03175*TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+0.207& -&40*TPK%K125(:)*PCONC(:,40)*PCONC(:,5)+TPK%K127(:)*PCONC(:,41)*PCONC(:,32)+TPK%& -&KTC36(:)*PCONC(:,57)+TPK%KTR36(:)*PCONC(:,82) -!PLOSS(HCHO) = +K010+K011+K062*<OH>+K072*<NO3>+KTC16+KTR16 - PLOSS(:,22) = +TPK%K010(:)+TPK%K011(:)+TPK%K062(:)*PCONC(:,14)+TPK%K072(:)*PCO& -&NC(:,5)+TPK%KTC16(:)+TPK%KTR16(:) -! -!PPROD(ALD) = +0.96205*K014*<OP2>+0.20*K017*<ONIT>+K055*<CARBO>*<O3P>+0.08173*K -!058*<ALKA>*<OH>+0.06253*K065*<CARBO>*<OH>+0.07335*K069*<OP2>*<OH>+0.05265*K074 -!*<CARBO>*<NO3>+0.51468*K079*<ALKE>*<O3>+0.00000*K080*<BIO>*<O3>+0.15692*K081*< -!CARBO>*<O3>+0.33144*K091*<ALKAP>*<NO>+0.42125*K092*<ALKEP>*<NO>+0.00000*K093*< -!BIOP>*<NO>+0.07368*K095*<CARBOP>*<NO>+1.01182*K096*<OLN>*<NO>+0.56070*K105*<AL -!KAP>*<MO2>+0.46413*K106*<ALKEP>*<MO2>+0.00000*K107*<BIOP>*<MO2>+0.08295*K109*< -!CARBOP>*<MO2>+0.41524*K110*<OLN>*<MO2>+0.71461*K111*<ALKAP>*<CARBOP>+0.68374*K -!112*<ALKEP>*<CARBOP>+0.00000*K113*<BIOP>*<CARBOP>+0.06969*K115*<CARBOP>*<CARBO -!P>+0.42122*K116*<OLN>*<CARBOP>+0.00000*K118*<OLN>*<OLN>+0.33743*K120*<ALKAP>*< -!NO3>+0.43039*K121*<ALKEP>*<NO3>+0.00000*K122*<BIOP>*<NO3>+0.02936*K124*<CARBOP -!>*<NO3>+0.91850*K125*<OLN>*<NO3> - PPROD(:,23) = +0.96205*TPK%K014(:)*PCONC(:,29)+0.20*TPK%K017(:)*PCONC(:,26)+TP& -&K%K055(:)*PCONC(:,25)*TPK%O3P(:)+0.08173*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0& -&.06253*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.07335*TPK%K069(:)*PCONC(:,29)*PCO& -&NC(:,14)+0.05265*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.51468*TPK%K079(:)*PCONC(& -&:,19)*PCONC(:,1)+0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.15692*TPK%K081(:& -&)*PCONC(:,25)*PCONC(:,1)+0.33144*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.42125*TP& -&K%K092(:)*PCONC(:,34)*PCONC(:,3)+0.00000*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0.& -&07368*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+1.01182*TPK%K096(:)*PCONC(:,40)*PCONC& -&(:,3)+0.56070*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.46413*TPK%K106(:)*PCONC(:,& -&34)*PCONC(:,32)+0.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32)+0.08295*TPK%K109(:& -&)*PCONC(:,39)*PCONC(:,32)+0.41524*TPK%K110(:)*PCONC(:,40)*PCONC(:,32)+0.71461*& -&TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.68374*TPK%K112(:)*PCONC(:,34)*PCONC(:,39& -&)+0.00000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+0.06969*TPK%K115(:)*PCONC(:,39)*& -&PCONC(:,39)+0.42122*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+0.00000*TPK%K118(:)*PC& -&ONC(:,40)*PCONC(:,40)+0.33743*TPK%K120(:)*PCONC(:,33)*PCONC(:,5)+0.43039*TPK%K& -&121(:)*PCONC(:,34)*PCONC(:,5)+0.00000*TPK%K122(:)*PCONC(:,35)*PCONC(:,5)+0.029& -&36*TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+0.91850*TPK%K125(:)*PCONC(:,40)*PCONC(:,& -&5) -!PLOSS(ALD) = +K012+K063*<OH>+K073*<NO3> - PLOSS(:,23) = +TPK%K012(:)+TPK%K063(:)*PCONC(:,14)+TPK%K073(:)*PCONC(:,5) -! -!PPROD(KET) = +0.80*K017*<ONIT>+0.03498*K058*<ALKA>*<OH>+0.00853*K065*<CARBO>*< -!OH>+0.37591*K069*<OP2>*<OH>+0.00632*K074*<CARBO>*<NO3>+0.07377*K079*<ALKE>*<O3 -!>+0.00000*K080*<BIO>*<O3>+0.54531*K091*<ALKAP>*<NO>+0.05220*K092*<ALKEP>*<NO>+ -!0.00000*K093*<BIOP>*<NO>+0.37862*K096*<OLN>*<NO>+0.09673*K105*<ALKAP>*<MO2>+0. -!03814*K106*<ALKEP>*<MO2>+0.00000*K107*<BIOP>*<MO2>+0.09667*K110*<OLN>*<MO2>+0. -!18819*K111*<ALKAP>*<CARBOP>+0.06579*K112*<ALKEP>*<CARBOP>+0.00000*K113*<BIOP>* -!<CARBOP>+0.02190*K115*<CARBOP>*<CARBOP>+0.10822*K116*<OLN>*<CARBOP>+0.00000*K1 -!18*<OLN>*<OLN>+0.62978*K120*<ALKAP>*<NO3>+0.02051*K121*<ALKEP>*<NO3>+0.00000*K -!122*<BIOP>*<NO3>+0.34740*K125*<OLN>*<NO3> - PPROD(:,24) = +0.80*TPK%K017(:)*PCONC(:,26)+0.03498*TPK%K058(:)*PCONC(:,18)*PC& -&ONC(:,14)+0.00853*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.37591*TPK%K069(:)*PCON& -&C(:,29)*PCONC(:,14)+0.00632*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.07377*TPK%K07& -&9(:)*PCONC(:,19)*PCONC(:,1)+0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.54531& -&*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.05220*TPK%K092(:)*PCONC(:,34)*PCONC(:,3)& -&+0.00000*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0.37862*TPK%K096(:)*PCONC(:,40)*PC& -&ONC(:,3)+0.09673*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.03814*TPK%K106(:)*PCONC& -&(:,34)*PCONC(:,32)+0.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32)+0.09667*TPK%K11& -&0(:)*PCONC(:,40)*PCONC(:,32)+0.18819*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.065& -&79*TPK%K112(:)*PCONC(:,34)*PCONC(:,39)+0.00000*TPK%K113(:)*PCONC(:,35)*PCONC(:& -&,39)+0.02190*TPK%K115(:)*PCONC(:,39)*PCONC(:,39)+0.10822*TPK%K116(:)*PCONC(:,4& -&0)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40)+0.62978*TPK%K120(:)& -&*PCONC(:,33)*PCONC(:,5)+0.02051*TPK%K121(:)*PCONC(:,34)*PCONC(:,5)+0.00000*TPK& -&%K122(:)*PCONC(:,35)*PCONC(:,5)+0.34740*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) -!PLOSS(KET) = +K015+K064*<OH> - PLOSS(:,24) = +TPK%K015(:)+TPK%K064(:)*PCONC(:,14) -! -!PPROD(CARBO) = +0.13255*K054*<BIO>*<O3P>+0.00835*K058*<ALKA>*<OH>+0.16919*K065 -!*<CARBO>*<OH>+0.21863*K070*<PAN>*<OH>+0.10530*K074*<CARBO>*<NO3>+0.00000*K076* -!<ALKE>*<NO3>+0.91741*K077*<BIO>*<NO3>+0.00000*K079*<ALKE>*<O3>+0.39754*K080*<B -!IO>*<O3>+1.07583*K081*<CARBO>*<O3>+0.03407*K091*<ALKAP>*<NO>+0.45463*K093*<BIO -!P>*<NO>+2.06993*K094*<AROP>*<NO>+0.08670*K095*<CARBOP>*<NO>+0.07976*K105*<ALKA -!P>*<MO2>+0.56064*K107*<BIOP>*<MO2>+1.99461*K108*<AROP>*<MO2>+0.15387*K109*<CAR -!BOP>*<MO2>+0.06954*K111*<ALKAP>*<CARBOP>+0.78591*K113*<BIOP>*<CARBOP>+1.99455* -!K114*<AROP>*<CARBOP>+0.10777*K115*<CARBOP>*<CARBOP>+0.03531*K120*<ALKAP>*<NO3> -!+0.61160*K122*<BIOP>*<NO3>+2.81904*K123*<AROP>*<NO3>+0.03455*K124*<CARBOP>*<NO -!3> - PPROD(:,25) = +0.13255*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.00835*TPK%K058(:)*& -&PCONC(:,18)*PCONC(:,14)+0.16919*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.21863*TP& -&K%K070(:)*PCONC(:,27)*PCONC(:,14)+0.10530*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0& -&.00000*TPK%K076(:)*PCONC(:,19)*PCONC(:,5)+0.91741*TPK%K077(:)*PCONC(:,20)*PCON& -&C(:,5)+0.00000*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.39754*TPK%K080(:)*PCONC(:,& -&20)*PCONC(:,1)+1.07583*TPK%K081(:)*PCONC(:,25)*PCONC(:,1)+0.03407*TPK%K091(:)*& -&PCONC(:,33)*PCONC(:,3)+0.45463*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+2.06993*TPK%& -&K094(:)*PCONC(:,38)*PCONC(:,3)+0.08670*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+0.07& -&976*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.56064*TPK%K107(:)*PCONC(:,35)*PCONC(& -&:,32)+1.99461*TPK%K108(:)*PCONC(:,38)*PCONC(:,32)+0.15387*TPK%K109(:)*PCONC(:,& -&39)*PCONC(:,32)+0.06954*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.78591*TPK%K113(:& -&)*PCONC(:,35)*PCONC(:,39)+1.99455*TPK%K114(:)*PCONC(:,38)*PCONC(:,39)+0.10777*& -&TPK%K115(:)*PCONC(:,39)*PCONC(:,39)+0.03531*TPK%K120(:)*PCONC(:,33)*PCONC(:,5)& -&+0.61160*TPK%K122(:)*PCONC(:,35)*PCONC(:,5)+2.81904*TPK%K123(:)*PCONC(:,38)*PC& -&ONC(:,5)+0.03455*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) -!PLOSS(CARBO) = +K016+K055*<O3P>+K065*<OH>+K074*<NO3>+K081*<O3> - PLOSS(:,25) = +TPK%K016(:)+TPK%K055(:)*TPK%O3P(:)+TPK%K065(:)*PCONC(:,14)+TPK%& -&K074(:)*PCONC(:,5)+TPK%K081(:)*PCONC(:,1) -! -!PPROD(ONIT) = +0.60*K078*<PAN>*<NO3>+K083*<PHO>*<NO2>+0.08459*K091*<ALKAP>*<NO -!>+0.15300*K093*<BIOP>*<NO>+0.04885*K094*<AROP>*<NO>+0.18401*K096*<OLN>*<NO>+K1 -!03*<OLN>*<HO2>+0.67560*K110*<OLN>*<MO2>+0.66562*K116*<OLN>*<CARBOP>+2.00*K117* -!<OLN>*<OLN>+0.00000*K118*<OLN>*<OLN>+0.25928*K125*<OLN>*<NO3> - PPROD(:,26) = +0.60*TPK%K078(:)*PCONC(:,27)*PCONC(:,5)+TPK%K083(:)*PCONC(:,36)& -&*PCONC(:,4)+0.08459*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.15300*TPK%K093(:)*PCO& -&NC(:,35)*PCONC(:,3)+0.04885*TPK%K094(:)*PCONC(:,38)*PCONC(:,3)+0.18401*TPK%K09& -&6(:)*PCONC(:,40)*PCONC(:,3)+TPK%K103(:)*PCONC(:,40)*PCONC(:,15)+0.67560*TPK%K1& -&10(:)*PCONC(:,40)*PCONC(:,32)+0.66562*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+2.00& -&*TPK%K117(:)*PCONC(:,40)*PCONC(:,40)+0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,4& -&0)+0.25928*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) -!PLOSS(ONIT) = +K017+K071*<OH> - PLOSS(:,26) = +TPK%K017(:)+TPK%K071(:)*PCONC(:,14) -! -!PPROD(PAN) = +0.28107*K070*<PAN>*<OH>+0.40000*K078*<PAN>*<NO3>+0.30000*K082*<P -!AN>*<O3>+1.00000*K088*<CARBOP>*<NO2> - PPROD(:,27) = +0.28107*TPK%K070(:)*PCONC(:,27)*PCONC(:,14)+0.40000*TPK%K078(:)& -&*PCONC(:,27)*PCONC(:,5)+0.30000*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+1.00000*TPK& -&%K088(:)*PCONC(:,39)*PCONC(:,4) -!PLOSS(PAN) = +K070*<OH>+K078*<NO3>+K082*<O3>+K089 - PLOSS(:,27) = +TPK%K070(:)*PCONC(:,14)+TPK%K078(:)*PCONC(:,5)+TPK%K082(:)*PCON& -&C(:,1)+TPK%K089(:) -! -!PPROD(OP1) = +K097*<MO2>*<HO2>+KTC40*<WC_OP1>+KTR40*<WR_OP1> - PPROD(:,28) = +TPK%K097(:)*PCONC(:,32)*PCONC(:,15)+TPK%KTC40(:)*PCONC(:,61)+TP& -&K%KTR40(:)*PCONC(:,86) -!PLOSS(OP1) = +K013+K068*<OH>+KTC20+KTR20 - PLOSS(:,28) = +TPK%K013(:)+TPK%K068(:)*PCONC(:,14)+TPK%KTC20(:)+TPK%KTR20(:) -! -!PPROD(OP2) = +0.10149*K081*<CARBO>*<O3>+1.00524*K098*<ALKAP>*<HO2>+1.00524*K09 -!9*<ALKEP>*<HO2>+1.00524*K0100*<BIOP>*<HO2>+1.00524*K0101*<AROP>*<HO2>+0.80904* -!K0102*<CARBOP>*<HO2>+1.00524*K126*<XO2>*<HO2> - PPROD(:,29) = +0.10149*TPK%K081(:)*PCONC(:,25)*PCONC(:,1)+1.00524*TPK%K098(:)*& -&PCONC(:,33)*PCONC(:,15)+1.00524*TPK%K099(:)*PCONC(:,34)*PCONC(:,15)+1.00524*TP& -&K%K0100(:)*PCONC(:,35)*PCONC(:,15)+1.00524*TPK%K0101(:)*PCONC(:,38)*PCONC(:,15& -&)+0.80904*TPK%K0102(:)*PCONC(:,39)*PCONC(:,15)+1.00524*TPK%K126(:)*PCONC(:,41)& -&*PCONC(:,15) -!PLOSS(OP2) = +K014+K069*<OH> - PLOSS(:,29) = +TPK%K014(:)+TPK%K069(:)*PCONC(:,14) -! -!PPROD(ORA1) = +0.00878*K058*<ALKA>*<OH>+0.15343*K079*<ALKE>*<O3>+0.15000*K080* -!<BIO>*<O3>+0.10788*K081*<CARBO>*<O3>+0.11*K082*<PAN>*<O3>+KTC37*<WC_ORA1>+KTR3 -!7*<WR_ORA1> - PPROD(:,30) = +0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0.15343*TPK%K079(:)& -&*PCONC(:,19)*PCONC(:,1)+0.15000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.10788*TPK& -&%K081(:)*PCONC(:,25)*PCONC(:,1)+0.11*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+TPK%KT& -&C37(:)*PCONC(:,58)+TPK%KTR37(:)*PCONC(:,83) -!PLOSS(ORA1) = +K066*<OH>+KTC17+KTR17 - PLOSS(:,30) = +TPK%K066(:)*PCONC(:,14)+TPK%KTC17(:)+TPK%KTR17(:) +!PPROD(ALKH) = 0.0 + PPROD(:,21) = 0.0 +!PLOSS(ALKH) = +K093*<OH> + PLOSS(:,21) = +TPK%K093(:)*PCONC(:,15) +! +!PPROD(AROH) = 0.0 + PPROD(:,22) = 0.0 +!PLOSS(AROH) = +K080*<OH> + PLOSS(:,22) = +TPK%K080(:)*PCONC(:,15) +! +!PPROD(AROL) = 0.0 + PPROD(:,23) = 0.0 +!PLOSS(AROL) = +K079*<OH> + PLOSS(:,23) = +TPK%K079(:)*PCONC(:,15) +! +!PPROD(AROO) = +0.16*K073*<OH>*<AROO>+0.16*K079*<OH>*<AROL>+0.16*K080*<OH>*<ARO +!H> + PPROD(:,24) = +0.16*TPK%K073(:)*PCONC(:,15)*PCONC(:,24)+0.16*TPK%K079(:)*PCONC& +&(:,15)*PCONC(:,23)+0.16*TPK%K080(:)*PCONC(:,15)*PCONC(:,22) +!PLOSS(AROO) = +K072*<NO3>+K073*<OH> + PLOSS(:,24) = +TPK%K072(:)*PCONC(:,8)+TPK%K073(:)*PCONC(:,15) +! +!PPROD(ARAL) = +TPK%CF24*K189*<NO>*<RO221>+K190*<RO2T>*<RO221>+K191*<HO2>*<RO22 +!1> + PPROD(:,25) = +TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:)+TPK%K190(:)*PCONC(& +&:,85)*TPK%RO221(:)+TPK%K191(:)*PCONC(:,10)*TPK%RO221(:) +!PLOSS(ARAL) = +K081*<NO3>+K082*<OH> + PLOSS(:,25) = +TPK%K081(:)*PCONC(:,8)+TPK%K082(:)*PCONC(:,15) +! +!PPROD(ARAC) = +K081*<NO3>*<ARAL>+TPK%CF39*K082*<OH>*<ARAL> + PPROD(:,26) = +TPK%K081(:)*PCONC(:,8)*PCONC(:,25)+TPK%CF39*TPK%K082(:)*PCONC(:& +&,15)*PCONC(:,25) +!PLOSS(ARAC) = +K083*<OH> + PLOSS(:,26) = +TPK%K083(:)*PCONC(:,15) +! +!PPROD(PAH) = 0.0 + PPROD(:,27) = 0.0 +!PLOSS(PAH) = +K092*<OH> + PLOSS(:,27) = +TPK%K092(:)*PCONC(:,15) +! +!PPROD(HCHO) = +K048*<OH>*<MEOH>+0.5*K051*<O3>*<ETHE>+0.5*K056*<O3>*<OLEL>+0.5* +!K066*<O3>*<ISOP>+0.5*K076*<O3>*<OLEH>+K110*<NO>*<RO21>+K111*<RO2T>*<RO21>+K112 +!*<HO2>*<RO21>+K113*<NO>*<RO22>+K114*<RO2T>*<RO22>+K115*<HO2>*<RO22>+K116*<NO>* +!<RO23>+K117*<RO2T>*<RO23>+K118*<HO2>*<RO23>+K119*<NO>*<RO24>+K120*<RO2T>*<RO24 +!>+K121*<HO2>*<RO24>+TPK%CF6*K150*<NO>*<RO29>+K151*<RO2T>*<RO29>+K152*<HO2>*<RO +!29>+K153*<NO>*<RO210>+K154*<RO2T>*<RO210>+K155*<HO2>*<RO210>+K156*<NO>*<RO211> +!+K157*<RO2T>*<RO211>+K158*<HO2>*<RO211>+K159*<NO>*<RO212>+K160*<RO2T>*<RO212>+ +!K161*<HO2>*<RO212>+K162*<NO>*<RO213>+K163*<RO2T>*<RO213>+K164*<HO2>*<RO213>+TP +!K%CF10*K171*<NO>*<RO215>+TPK%CF14*K172*<RO2T>*<RO215>+TPK%CF14*K173*<HO2>*<RO2 +!15>+K183*<NO>*<RO219>+K184*<RO2T>*<RO219>+K185*<HO2>*<RO219>+0.5*K281*<O3>*<MV +!K>+0.5*K282*<O3>*<MCR>+K285*<NO>*<RO249>+K286*<RO2T>*<RO249>+K287*<HO2>*<RO249 +!>+K291*<NO>*<RO251>+K292*<HO2>*<RO251>+K293*<RO2T>*<RO251>+K294*<NO>*<RO252>+K +!295*<HO2>*<RO252>+K296*<RO2T>*<RO252>+K297*<NO>*<RO253>+K298*<HO2>*<RO253>+K29 +!9*<RO2T>*<RO253>+KTC52*<WC_HCHO>+KTR52*<WR_HCHO> + PPROD(:,28) = +TPK%K048(:)*PCONC(:,15)*PCONC(:,32)+0.5*TPK%K051(:)*PCONC(:,3)*& +&PCONC(:,16)+0.5*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+0.5*TPK%K066(:)*PCONC(:,3)*& +&PCONC(:,35)+0.5*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+TPK%K110(:)*PCONC(:,1)*PCON& +&C(:,86)+TPK%K111(:)*PCONC(:,85)*PCONC(:,86)+TPK%K112(:)*PCONC(:,10)*PCONC(:,86& +&)+TPK%K113(:)*PCONC(:,1)*TPK%RO22(:)+TPK%K114(:)*PCONC(:,85)*TPK%RO22(:)+TPK%K& +&115(:)*PCONC(:,10)*TPK%RO22(:)+TPK%K116(:)*PCONC(:,1)*TPK%RO23(:)+TPK%K117(:)*& +&PCONC(:,85)*TPK%RO23(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO23(:)+TPK%K119(:)*PCONC(& +&:,1)*TPK%RO24(:)+TPK%K120(:)*PCONC(:,85)*TPK%RO24(:)+TPK%K121(:)*PCONC(:,10)*T& +&PK%RO24(:)+TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:)+TPK%K151(:)*PCONC(:,85)*& +&TPK%RO29(:)+TPK%K152(:)*PCONC(:,10)*TPK%RO29(:)+TPK%K153(:)*PCONC(:,1)*TPK%RO2& +&10(:)+TPK%K154(:)*PCONC(:,85)*TPK%RO210(:)+TPK%K155(:)*PCONC(:,10)*TPK%RO210(:& +&)+TPK%K156(:)*PCONC(:,1)*TPK%RO211(:)+TPK%K157(:)*PCONC(:,85)*TPK%RO211(:)+TPK& +&%K158(:)*PCONC(:,10)*TPK%RO211(:)+TPK%K159(:)*PCONC(:,1)*TPK%RO212(:)+TPK%K160& +&(:)*PCONC(:,85)*TPK%RO212(:)+TPK%K161(:)*PCONC(:,10)*TPK%RO212(:)+TPK%K162(:)*& +&PCONC(:,1)*TPK%RO213(:)+TPK%K163(:)*PCONC(:,85)*TPK%RO213(:)+TPK%K164(:)*PCONC& +&(:,10)*TPK%RO213(:)+TPK%CF10*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:)+TPK%CF14*TPK%& +&K172(:)*PCONC(:,85)*TPK%RO215(:)+TPK%CF14*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:)& +&+TPK%K183(:)*PCONC(:,1)*TPK%RO219(:)+TPK%K184(:)*PCONC(:,85)*TPK%RO219(:)+TPK%& +&K185(:)*PCONC(:,10)*TPK%RO219(:)+0.5*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.5*TP& +&K%K282(:)*PCONC(:,3)*PCONC(:,40)+TPK%K285(:)*PCONC(:,1)*TPK%RO249(:)+TPK%K286(& +&:)*PCONC(:,85)*TPK%RO249(:)+TPK%K287(:)*PCONC(:,10)*TPK%RO249(:)+TPK%K291(:)*P& +&CONC(:,1)*TPK%RO251(:)+TPK%K292(:)*PCONC(:,10)*TPK%RO251(:)+TPK%K293(:)*PCONC(& +&:,85)*TPK%RO251(:)+TPK%K294(:)*PCONC(:,1)*TPK%RO252(:)+TPK%K295(:)*PCONC(:,10)& +&*TPK%RO252(:)+TPK%K296(:)*PCONC(:,85)*TPK%RO252(:)+TPK%K297(:)*PCONC(:,1)*TPK%& +&RO253(:)+TPK%K298(:)*PCONC(:,10)*TPK%RO253(:)+TPK%K299(:)*PCONC(:,85)*TPK%RO25& +&3(:)+TPK%KTC52(:)*PCONC(:,108)+TPK%KTR52(:)*PCONC(:,145) +!PLOSS(HCHO) = +K044+K045+K046*<OH>+K047*<NO3>+KTC21+KTR21 + PLOSS(:,28) = +TPK%K044(:)+TPK%K045(:)+TPK%K046(:)*PCONC(:,15)+TPK%K047(:)*PCO& +&NC(:,8)+TPK%KTC21(:)+TPK%KTR21(:) +! +!PPROD(ALD2) = +TPK%CF1*K053*<OH>*<ETOH>+0.5*K056*<O3>*<OLEL>+0.4*K057*<O>*<OLE +!L>+0.075*K067*<O>*<ISOP>+K113*<NO>*<RO22>+K114*<RO2T>*<RO22>+K115*<HO2>*<RO22> +!+K116*<NO>*<RO23>+K117*<RO2T>*<RO23>+K118*<HO2>*<RO23>+TPK%CF4*K122*<NO>*<RO25 +!>+K123*<RO2T>*<RO25>+K124*<HO2>*<RO25>+K144*<NO>*<RO27>+K145*<RO2T>*<RO27>+K14 +!6*<HO2>*<RO27>+TPK%CF9*K171*<NO>*<RO215>+TPK%CF13*K172*<RO2T>*<RO215>+TPK%CF13 +!*K173*<HO2>*<RO215>+K174*<NO>*<RO216>+K175*<RO2T>*<RO216>+K176*<HO2>*<RO216>+0 +!.1*K281*<O3>*<MVK>+0.85*K284*<O>*<MCR>+KTC53*<WC_ALD2>+KTR53*<WR_ALD2> + PPROD(:,29) = +TPK%CF1*TPK%K053(:)*PCONC(:,15)*PCONC(:,33)+0.5*TPK%K056(:)*PCO& +&NC(:,3)*PCONC(:,17)+0.4*TPK%K057(:)*TPK%O(:)*PCONC(:,17)+0.075*TPK%K067(:)*TPK& +&%O(:)*PCONC(:,35)+TPK%K113(:)*PCONC(:,1)*TPK%RO22(:)+TPK%K114(:)*PCONC(:,85)*T& +&PK%RO22(:)+TPK%K115(:)*PCONC(:,10)*TPK%RO22(:)+TPK%K116(:)*PCONC(:,1)*TPK%RO23& +&(:)+TPK%K117(:)*PCONC(:,85)*TPK%RO23(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO23(:)+TP& +&K%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87)+TPK%K123(:)*PCONC(:,85)*PCONC(:,87)+T& +&PK%K124(:)*PCONC(:,10)*PCONC(:,87)+TPK%K144(:)*PCONC(:,1)*TPK%RO27(:)+TPK%K145& +&(:)*PCONC(:,85)*TPK%RO27(:)+TPK%K146(:)*PCONC(:,10)*TPK%RO27(:)+TPK%CF9*TPK%K1& +&71(:)*PCONC(:,1)*TPK%RO215(:)+TPK%CF13*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:)+TP& +&K%CF13*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:)+TPK%K174(:)*PCONC(:,1)*TPK%RO216(:& +&)+TPK%K175(:)*PCONC(:,85)*TPK%RO216(:)+TPK%K176(:)*PCONC(:,10)*TPK%RO216(:)+0.& +&1*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.85*TPK%K284(:)*TPK%O(:)*PCONC(:,40)+TPK& +&%KTC53(:)*PCONC(:,109)+TPK%KTR53(:)*PCONC(:,146) +!PLOSS(ALD2) = +K059+K060*<OH>+K061*<NO3>+KTC22+KTR22 + PLOSS(:,29) = +TPK%K059(:)+TPK%K060(:)*PCONC(:,15)+TPK%K061(:)*PCONC(:,8)+TPK%& +&KTC22(:)+TPK%KTR22(:) +! +!PPROD(KETL) = +TPK%CF11*K171*<NO>*<RO215>+TPK%CF15*K172*<RO2T>*<RO215>+TPK%CF1 +!5*K173*<HO2>*<RO215>+0.85*K283*<O>*<MVK>+KTC55*<WC_KETL>+KTR55*<WR_KETL> + PPROD(:,30) = +TPK%CF11*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:)+TPK%CF15*TPK%K172(& +&:)*PCONC(:,85)*TPK%RO215(:)+TPK%CF15*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:)+0.85& +&*TPK%K283(:)*TPK%O(:)*PCONC(:,39)+TPK%KTC55(:)*PCONC(:,112)+TPK%KTR55(:)*PCONC& +&(:,149) +!PLOSS(KETL) = +K062*<OH>+K063+KTC24+KTR24 + PLOSS(:,30) = +TPK%K062(:)*PCONC(:,15)+TPK%K063(:)+TPK%KTC24(:)+TPK%KTR24(:) ! RETURN END SUBROUTINE SUB2 @@ -4507,128 +10240,68 @@ SUBROUTINE SUB3 !Indices 31 a 40 ! ! -!PPROD(ORA2) = +0.08143*K079*<ALKE>*<O3>+0.00000*K080*<BIO>*<O3>+0.20595*K081*< -!CARBO>*<O3>+0.17307*K0102*<CARBOP>*<HO2>+0.13684*K109*<CARBOP>*<MO2>+0.49810*K -!111*<ALKAP>*<CARBOP>+0.49922*K112*<ALKEP>*<CARBOP>+0.49400*K113*<BIOP>*<CARBOP -!>+0.09955*K115*<CARBOP>*<CARBOP>+0.48963*K116*<OLN>*<CARBOP>+KTC38*<WC_ORA2>+K -!TR38*<WR_ORA2> - PPROD(:,31) = +0.08143*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.00000*TPK%K080(:)*& -&PCONC(:,20)*PCONC(:,1)+0.20595*TPK%K081(:)*PCONC(:,25)*PCONC(:,1)+0.17307*TPK%& -&K0102(:)*PCONC(:,39)*PCONC(:,15)+0.13684*TPK%K109(:)*PCONC(:,39)*PCONC(:,32)+0& -&.49810*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.49922*TPK%K112(:)*PCONC(:,34)*PCO& -&NC(:,39)+0.49400*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+0.09955*TPK%K115(:)*PCONC& -&(:,39)*PCONC(:,39)+0.48963*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+TPK%KTC38(:)*PC& -&ONC(:,59)+TPK%KTR38(:)*PCONC(:,84) -!PLOSS(ORA2) = +K067*<OH>+KTC18+KTR18 - PLOSS(:,31) = +TPK%K067(:)*PCONC(:,14)+TPK%KTC18(:)+TPK%KTR18(:) -! -!PPROD(MO2) = +K012*<ALD>+0.03795*K014*<OP2>+K056*<CH4>*<OH>+0.65*K068*<OP1>*<O -!H>+0.13966*K079*<ALKE>*<O3>+0.03000*K080*<BIO>*<O3>+0.09016*K091*<ALKAP>*<NO>+ -!0.78134*K095*<CARBOP>*<NO>+0.01390*K105*<ALKAP>*<MO2>+0.56031*K109*<CARBOP>*<M -!O2>+0.51480*K111*<ALKAP>*<CARBOP>+0.50078*K112*<ALKEP>*<CARBOP>+0.50600*K113*< -!BIOP>*<CARBOP>+K114*<AROP>*<CARBOP>+1.66702*K115*<CARBOP>*<CARBOP>+0.51037*K11 -!6*<OLN>*<CARBOP>+0.09731*K120*<ALKAP>*<NO3>+0.91910*K124*<CARBOP>*<NO3>+K128*< -!XO2>*<CARBOP>+KTC39*<WC_MO2>+KTR39*<WR_MO2> - PPROD(:,32) = +TPK%K012(:)*PCONC(:,23)+0.03795*TPK%K014(:)*PCONC(:,29)+TPK%K05& -&6(:)*PCONC(:,16)*PCONC(:,14)+0.65*TPK%K068(:)*PCONC(:,28)*PCONC(:,14)+0.13966*& -&TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.03000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+& -&0.09016*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.78134*TPK%K095(:)*PCONC(:,39)*PCO& -&NC(:,3)+0.01390*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.56031*TPK%K109(:)*PCONC(& -&:,39)*PCONC(:,32)+0.51480*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.50078*TPK%K112& -&(:)*PCONC(:,34)*PCONC(:,39)+0.50600*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+TPK%K1& -&14(:)*PCONC(:,38)*PCONC(:,39)+1.66702*TPK%K115(:)*PCONC(:,39)*PCONC(:,39)+0.51& -&037*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+0.09731*TPK%K120(:)*PCONC(:,33)*PCONC(& -&:,5)+0.91910*TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+TPK%K128(:)*PCONC(:,41)*PCONC(& -&:,39)+TPK%KTC39(:)*PCONC(:,60)+TPK%KTR39(:)*PCONC(:,85) -!PLOSS(MO2) = +K090*<NO>+K097*<HO2>+K104*<MO2>+K104*<MO2>+K105*<ALKAP>+K106*<AL -!KEP>+K107*<BIOP>+K108*<AROP>+K109*<CARBOP>+K110*<OLN>+K119*<NO3>+K127*<XO2>+KT -!C19+KTR19 - PLOSS(:,32) = +TPK%K090(:)*PCONC(:,3)+TPK%K097(:)*PCONC(:,15)+TPK%K104(:)*PCON& -&C(:,32)+TPK%K104(:)*PCONC(:,32)+TPK%K105(:)*PCONC(:,33)+TPK%K106(:)*PCONC(:,34& -&)+TPK%K107(:)*PCONC(:,35)+TPK%K108(:)*PCONC(:,38)+TPK%K109(:)*PCONC(:,39)+TPK%& -&K110(:)*PCONC(:,40)+TPK%K119(:)*PCONC(:,5)+TPK%K127(:)*PCONC(:,41)+TPK%KTC19(:& -&)+TPK%KTR19(:) -! -!PPROD(ALKAP) = +1.00000*K015*<KET>+K057*<ETH>*<OH>+0.87811*K058*<ALKA>*<OH>+0. -!40341*K069*<OP2>*<OH>+1.00000*K071*<ONIT>*<OH>+0.09815*K079*<ALKE>*<O3>+0.0000 -!0*K080*<BIO>*<O3>+0.08187*K091*<ALKAP>*<NO>+0.00385*K105*<ALKAP>*<MO2>+0.00828 -!*K111*<ALKAP>*<CARBOP>+0.08994*K120*<ALKAP>*<NO3> - PPROD(:,33) = +1.00000*TPK%K015(:)*PCONC(:,24)+TPK%K057(:)*PCONC(:,17)*PCONC(:& -&,14)+0.87811*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0.40341*TPK%K069(:)*PCONC(:,2& -&9)*PCONC(:,14)+1.00000*TPK%K071(:)*PCONC(:,26)*PCONC(:,14)+0.09815*TPK%K079(:)& -&*PCONC(:,19)*PCONC(:,1)+0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.08187*TPK& -&%K091(:)*PCONC(:,33)*PCONC(:,3)+0.00385*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.& -&00828*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.08994*TPK%K120(:)*PCONC(:,33)*PCON& -&C(:,5) -!PLOSS(ALKAP) = +K091*<NO>+K098*<HO2>+K105*<MO2>+K111*<CARBOP>+K120*<NO3> - PLOSS(:,33) = +TPK%K091(:)*PCONC(:,3)+TPK%K098(:)*PCONC(:,15)+TPK%K105(:)*PCON& -&C(:,32)+TPK%K111(:)*PCONC(:,39)+TPK%K120(:)*PCONC(:,5) -! -!PPROD(ALKEP) = +1.02529*K059*<ALKE>*<OH> - PPROD(:,34) = +1.02529*TPK%K059(:)*PCONC(:,19)*PCONC(:,14) -!PLOSS(ALKEP) = +K092*<NO>+K099*<HO2>+K106*<MO2>+K112*<CARBOP>+K121*<NO3> - PLOSS(:,34) = +TPK%K092(:)*PCONC(:,3)+TPK%K099(:)*PCONC(:,15)+TPK%K106(:)*PCON& -&C(:,32)+TPK%K112(:)*PCONC(:,39)+TPK%K121(:)*PCONC(:,5) -! -!PPROD(BIOP) = +0.00000*K059*<ALKE>*<OH>+1.00000*K060*<BIO>*<OH> - PPROD(:,35) = +0.00000*TPK%K059(:)*PCONC(:,19)*PCONC(:,14)+1.00000*TPK%K060(:)& -&*PCONC(:,20)*PCONC(:,14) -!PLOSS(BIOP) = +K093*<NO>+K0100*<HO2>+K107*<MO2>+K113*<CARBOP>+K122*<NO3> - PLOSS(:,35) = +TPK%K093(:)*PCONC(:,3)+TPK%K0100(:)*PCONC(:,15)+TPK%K107(:)*PCO& -&NC(:,32)+TPK%K113(:)*PCONC(:,39)+TPK%K122(:)*PCONC(:,5) -! -!PPROD(PHO) = +0.00276*K061*<ARO>*<OH>+K075*<ARO>*<NO3> - PPROD(:,36) = +0.00276*TPK%K061(:)*PCONC(:,21)*PCONC(:,14)+TPK%K075(:)*PCONC(:& -&,21)*PCONC(:,5) -!PLOSS(PHO) = +K083*<NO2>+K084*<HO2> - PLOSS(:,36) = +TPK%K083(:)*PCONC(:,4)+TPK%K084(:)*PCONC(:,15) -! -!PPROD(ADD) = +0.93968*K061*<ARO>*<OH> - PPROD(:,37) = +0.93968*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) -!PLOSS(ADD) = +K085*<NO2>+K086*<O2>+K087*<O3> - PLOSS(:,37) = +TPK%K085(:)*PCONC(:,4)+TPK%K086(:)*TPK%O2(:)+TPK%K087(:)*PCONC(& -&:,1) -! -!PPROD(AROP) = +0.98*K086*<ADD>*<O2> - PPROD(:,38) = +0.98*TPK%K086(:)*PCONC(:,37)*TPK%O2(:) -!PLOSS(AROP) = +K094*<NO>+K0101*<HO2>+K108*<MO2>+K114*<CARBOP>+K123*<NO3> - PLOSS(:,38) = +TPK%K094(:)*PCONC(:,3)+TPK%K0101(:)*PCONC(:,15)+TPK%K108(:)*PCO& -&NC(:,32)+TPK%K114(:)*PCONC(:,39)+TPK%K123(:)*PCONC(:,5) -! -!PPROD(CARBOP) = +1.00000*K015*<KET>+0.69622*K016*<CARBO>+1.00000*K063*<ALD>*<O -!H>+1.00000*K064*<KET>*<OH>+0.51419*K065*<CARBO>*<OH>+0.05413*K069*<OP2>*<OH>+1 -!.00000*K073*<ALD>*<NO3>+0.38881*K074*<CARBO>*<NO3>+0.05705*K079*<ALKE>*<O3>+0. -!17000*K080*<BIO>*<O3>+0.27460*K081*<CARBO>*<O3>+0.70000*K082*<PAN>*<O3>+1.0000 -!0*K089*<PAN>+0.09532*K095*<CARBOP>*<NO>+0.05954*K109*<CARBOP>*<MO2>+0.05821*K1 -!15*<CARBOP>*<CARBOP>+0.03175*K124*<CARBOP>*<NO3> - PPROD(:,39) = +1.00000*TPK%K015(:)*PCONC(:,24)+0.69622*TPK%K016(:)*PCONC(:,25)& -&+1.00000*TPK%K063(:)*PCONC(:,23)*PCONC(:,14)+1.00000*TPK%K064(:)*PCONC(:,24)*P& -&CONC(:,14)+0.51419*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.05413*TPK%K069(:)*PCO& -&NC(:,29)*PCONC(:,14)+1.00000*TPK%K073(:)*PCONC(:,23)*PCONC(:,5)+0.38881*TPK%K0& -&74(:)*PCONC(:,25)*PCONC(:,5)+0.05705*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.1700& -&0*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.27460*TPK%K081(:)*PCONC(:,25)*PCONC(:,1& -&)+0.70000*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+1.00000*TPK%K089(:)*PCONC(:,27)+0& -&.09532*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+0.05954*TPK%K109(:)*PCONC(:,39)*PCON& -&C(:,32)+0.05821*TPK%K115(:)*PCONC(:,39)*PCONC(:,39)+0.03175*TPK%K124(:)*PCONC(& -&:,39)*PCONC(:,5) -!PLOSS(CARBOP) = +K088*<NO2>+K095*<NO>+K0102*<HO2>+K109*<MO2>+K111*<ALKAP>+K112 -!*<ALKEP>+K113*<BIOP>+K114*<AROP>+K115*<CARBOP>+K115*<CARBOP>+K116*<OLN>+K124*< -!NO3>+K128*<XO2> - PLOSS(:,39) = +TPK%K088(:)*PCONC(:,4)+TPK%K095(:)*PCONC(:,3)+TPK%K0102(:)*PCON& -&C(:,15)+TPK%K109(:)*PCONC(:,32)+TPK%K111(:)*PCONC(:,33)+TPK%K112(:)*PCONC(:,34& -&)+TPK%K113(:)*PCONC(:,35)+TPK%K114(:)*PCONC(:,38)+TPK%K115(:)*PCONC(:,39)+TPK%& -&K115(:)*PCONC(:,39)+TPK%K116(:)*PCONC(:,40)+TPK%K124(:)*PCONC(:,5)+TPK%K128(:)& -&*PCONC(:,41) -! -!PPROD(OLN) = +0.00000*K074*<CARBO>*<NO3>+0.93768*K076*<ALKE>*<NO3>+1.00000*K07 -!7*<BIO>*<NO3> - PPROD(:,40) = +0.00000*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.93768*TPK%K076(:)*& -&PCONC(:,19)*PCONC(:,5)+1.00000*TPK%K077(:)*PCONC(:,20)*PCONC(:,5) -!PLOSS(OLN) = +K096*<NO>+K103*<HO2>+K110*<MO2>+K116*<CARBOP>+K117*<OLN>+K117*<O -!LN>+K118*<OLN>+K118*<OLN>+K125*<NO3> - PLOSS(:,40) = +TPK%K096(:)*PCONC(:,3)+TPK%K103(:)*PCONC(:,15)+TPK%K110(:)*PCON& -&C(:,32)+TPK%K116(:)*PCONC(:,39)+TPK%K117(:)*PCONC(:,40)+TPK%K117(:)*PCONC(:,40& -&)+TPK%K118(:)*PCONC(:,40)+TPK%K118(:)*PCONC(:,40)+TPK%K125(:)*PCONC(:,5) +!PPROD(KETH) = 0.0 + PPROD(:,31) = 0.0 +!PLOSS(KETH) = +K070*<OH>+K071 + PLOSS(:,31) = +TPK%K070(:)*PCONC(:,15)+TPK%K071(:) +! +!PPROD(MEOH) = +KTC49*<WC_MEOH>+KTR49*<WR_MEOH> + PPROD(:,32) = +TPK%KTC49(:)*PCONC(:,105)+TPK%KTR49(:)*PCONC(:,142) +!PLOSS(MEOH) = +K048*<OH>+KTC18+KTR18 + PLOSS(:,32) = +TPK%K048(:)*PCONC(:,15)+TPK%KTC18(:)+TPK%KTR18(:) +! +!PPROD(ETOH) = +KTC50*<WC_ETOH>+KTR50*<WR_ETOH> + PPROD(:,33) = +TPK%KTC50(:)*PCONC(:,106)+TPK%KTR50(:)*PCONC(:,143) +!PLOSS(ETOH) = +K053*<OH>+KTC19+KTR19 + PLOSS(:,33) = +TPK%K053(:)*PCONC(:,15)+TPK%KTC19(:)+TPK%KTR19(:) +! +!PPROD(ALCH) = +KTC51*<WC_ALCH>+KTR51*<WR_ALCH> + PPROD(:,34) = +TPK%KTC51(:)*PCONC(:,107)+TPK%KTR51(:)*PCONC(:,144) +!PLOSS(ALCH) = +K069*<OH>+KTC20+KTR20 + PLOSS(:,34) = +TPK%K069(:)*PCONC(:,15)+TPK%KTC20(:)+TPK%KTR20(:) +! +!PPROD(ISOP) = 0.0 + PPROD(:,35) = 0.0 +!PLOSS(ISOP) = +K064*<OH>+K065*<NO3>+K066*<O3>+K067*<O> + PLOSS(:,35) = +TPK%K064(:)*PCONC(:,15)+TPK%K065(:)*PCONC(:,8)+TPK%K066(:)*PCON& +&C(:,3)+TPK%K067(:)*TPK%O(:) +! +!PPROD(BIOL) = 0.0 + PPROD(:,36) = 0.0 +!PLOSS(BIOL) = +K084*<OH>+K085*<NO3>+K086*<O3>+K087*<O> + PLOSS(:,36) = +TPK%K084(:)*PCONC(:,15)+TPK%K085(:)*PCONC(:,8)+TPK%K086(:)*PCON& +&C(:,3)+TPK%K087(:)*TPK%O(:) +! +!PPROD(BIOH) = 0.0 + PPROD(:,37) = 0.0 +!PLOSS(BIOH) = +K088*<OH>+K089*<NO3>+K090*<O3>+K091*<O> + PLOSS(:,37) = +TPK%K088(:)*PCONC(:,15)+TPK%K089(:)*PCONC(:,8)+TPK%K090(:)*PCON& +&C(:,3)+TPK%K091(:)*TPK%O(:) +! +!PPROD(MTBE) = 0.0 + PPROD(:,38) = 0.0 +!PLOSS(MTBE) = +K068*<OH> + PLOSS(:,38) = +TPK%K068(:)*PCONC(:,15) +! +!PPROD(MVK) = +0.389*K066*<O3>*<ISOP>+TPK%CF6*K150*<NO>*<RO29>+K151*<RO2T>*<RO2 +!9>+K152*<HO2>*<RO29>+K156*<NO>*<RO211>+K157*<RO2T>*<RO211>+K158*<HO2>*<RO211> + PPROD(:,39) = +0.389*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+TPK%CF6*TPK%K150(:)*PC& +&ONC(:,1)*TPK%RO29(:)+TPK%K151(:)*PCONC(:,85)*TPK%RO29(:)+TPK%K152(:)*PCONC(:,1& +&0)*TPK%RO29(:)+TPK%K156(:)*PCONC(:,1)*TPK%RO211(:)+TPK%K157(:)*PCONC(:,85)*TPK& +&%RO211(:)+TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) +!PLOSS(MVK) = +K272*<OH>+K281*<O3>+K283*<O> + PLOSS(:,39) = +TPK%K272(:)*PCONC(:,15)+TPK%K281(:)*PCONC(:,3)+TPK%K283(:)*TPK%& +&O(:) +! +!PPROD(MCR) = +0.17*K066*<O3>*<ISOP>+K153*<NO>*<RO210>+K154*<RO2T>*<RO210>+K155 +!*<HO2>*<RO210>+K159*<NO>*<RO212>+K160*<RO2T>*<RO212>+K161*<HO2>*<RO212> + PPROD(:,40) = +0.17*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+TPK%K153(:)*PCONC(:,1)*& +&TPK%RO210(:)+TPK%K154(:)*PCONC(:,85)*TPK%RO210(:)+TPK%K155(:)*PCONC(:,10)*TPK%& +&RO210(:)+TPK%K159(:)*PCONC(:,1)*TPK%RO212(:)+TPK%K160(:)*PCONC(:,85)*TPK%RO212& +&(:)+TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) +!PLOSS(MCR) = +K273*<OH>+K275*<NO3>+K282*<O3>+K284*<O> + PLOSS(:,40) = +TPK%K273(:)*PCONC(:,15)+TPK%K275(:)*PCONC(:,8)+TPK%K282(:)*PCON& +&C(:,3)+TPK%K284(:)*TPK%O(:) ! RETURN END SUBROUTINE SUB3 @@ -4638,79 +10311,96 @@ SUBROUTINE SUB4 !Indices 41 a 50 ! ! -!PPROD(XO2) = +0.15*K054*<BIO>*<O3P>+0.10318*K061*<ARO>*<OH>+0.10162*K065*<CARB -!O>*<OH>+0.09333*K069*<OP2>*<OH>+K070*<PAN>*<OH>+0.10530*K074*<CARBO>*<NO3>+K07 -!8*<PAN>*<NO3>+0.00000*K079*<ALKE>*<O3>+0.13000*K080*<BIO>*<O3>+0.13007*K091*<A -!LKAP>*<NO>+0.02563*K095*<CARBOP>*<NO>+0.13370*K105*<ALKAP>*<MO2>+0.02212*K109* -!<CARBOP>*<MO2>+0.11306*K111*<ALKAP>*<CARBOP>+0.01593*K115*<CARBOP>*<CARBOP>+0. -!16271*K120*<ALKAP>*<NO3>+0.01021*K124*<CARBOP>*<NO3> - PPROD(:,41) = +0.15*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.10318*TPK%K061(:)*PCO& -&NC(:,21)*PCONC(:,14)+0.10162*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.09333*TPK%K& -&069(:)*PCONC(:,29)*PCONC(:,14)+TPK%K070(:)*PCONC(:,27)*PCONC(:,14)+0.10530*TPK& -&%K074(:)*PCONC(:,25)*PCONC(:,5)+TPK%K078(:)*PCONC(:,27)*PCONC(:,5)+0.00000*TPK& -&%K079(:)*PCONC(:,19)*PCONC(:,1)+0.13000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.1& -&3007*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.02563*TPK%K095(:)*PCONC(:,39)*PCONC(& -&:,3)+0.13370*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.02212*TPK%K109(:)*PCONC(:,3& -&9)*PCONC(:,32)+0.11306*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.01593*TPK%K115(:)& -&*PCONC(:,39)*PCONC(:,39)+0.16271*TPK%K120(:)*PCONC(:,33)*PCONC(:,5)+0.01021*TP& -&K%K124(:)*PCONC(:,39)*PCONC(:,5) -!PLOSS(XO2) = +K126*<HO2>+K127*<MO2>+K128*<CARBOP>+K129*<XO2>+K129*<XO2>+K130*< -!NO>+K131*<NO3> - PLOSS(:,41) = +TPK%K126(:)*PCONC(:,15)+TPK%K127(:)*PCONC(:,32)+TPK%K128(:)*PCO& -&NC(:,39)+TPK%K129(:)*PCONC(:,41)+TPK%K129(:)*PCONC(:,41)+TPK%K130(:)*PCONC(:,3& -&)+TPK%K131(:)*PCONC(:,5) -! -!PPROD(WC_O3) = +KTC1*<O3> - PPROD(:,42) = +TPK%KTC1(:)*PCONC(:,1) -!PLOSS(WC_O3) = +KTC21+KC6*<WC_HO2>+KC29*<WC_SO2> - PLOSS(:,42) = +TPK%KTC21(:)+TPK%KC6(:)*PCONC(:,53)+TPK%KC29(:)*PCONC(:,55) -! -!PPROD(WC_H2O2) = +KTC2*<H2O2>+KC2*<WC_OH>*<WC_OH>+KC5*<WC_HO2>*<WC_HO2> - PPROD(:,43) = +TPK%KTC2(:)*PCONC(:,2)+TPK%KC2(:)*PCONC(:,52)*PCONC(:,52)+TPK%K& -&C5(:)*PCONC(:,53)*PCONC(:,53) -!PLOSS(WC_H2O2) = +KTC22+KC1+KC4*<WC_OH>+KC30*<WC_SO2> - PLOSS(:,43) = +TPK%KTC22(:)+TPK%KC1(:)+TPK%KC4(:)*PCONC(:,52)+TPK%KC30(:)*PCON& -&C(:,55) -! -!PPROD(WC_NO) = +KTC3*<NO> - PPROD(:,44) = +TPK%KTC3(:)*PCONC(:,3) -!PLOSS(WC_NO) = +KTC23 - PLOSS(:,44) = +TPK%KTC23(:) -! -!PPROD(WC_NO2) = +KTC4*<NO2>+KC8*<WC_HONO>*<WC_OH>+KC10*<WC_HNO4>+KC13*<WC_HNO3 -!> - PPROD(:,45) = +TPK%KTC4(:)*PCONC(:,4)+TPK%KC8(:)*PCONC(:,48)*PCONC(:,52)+TPK%K& -&C10(:)*PCONC(:,50)+TPK%KC13(:)*PCONC(:,49) -!PLOSS(WC_NO2) = +KTC24+KC9*<WC_HO2> - PLOSS(:,45) = +TPK%KTC24(:)+TPK%KC9(:)*PCONC(:,53) -! -!PPROD(WC_NO3) = +KTC5*<NO3> - PPROD(:,46) = +TPK%KTC5(:)*PCONC(:,5) -!PLOSS(WC_NO3) = +KTC25+KC15*<WC_SULF>+KC16*<WC_SO2> - PLOSS(:,46) = +TPK%KTC25(:)+TPK%KC15(:)*PCONC(:,56)+TPK%KC16(:)*PCONC(:,55) -! -!PPROD(WC_N2O5) = +KTC6*<N2O5> - PPROD(:,47) = +TPK%KTC6(:)*PCONC(:,6) -!PLOSS(WC_N2O5) = +KTC26+KC14 - PLOSS(:,47) = +TPK%KTC26(:)+TPK%KC14(:) -! -!PPROD(WC_HONO) = +KTC7*<HONO>+KC11*<WC_HNO4> - PPROD(:,48) = +TPK%KTC7(:)*PCONC(:,7)+TPK%KC11(:)*PCONC(:,50) -!PLOSS(WC_HONO) = +KTC27+KC8*<WC_OH> - PLOSS(:,48) = +TPK%KTC27(:)+TPK%KC8(:)*PCONC(:,52) -! -!PPROD(WC_HNO3) = +KTC8*<HNO3>+KC12*<WC_HNO4>*<WC_SO2>+KC14*<WC_N2O5>+KC14*<WC_ -!N2O5>+KC15*<WC_NO3>*<WC_SULF>+KC16*<WC_NO3>*<WC_SO2> - PPROD(:,49) = +TPK%KTC8(:)*PCONC(:,8)+TPK%KC12(:)*PCONC(:,50)*PCONC(:,55)+TPK%& -&KC14(:)*PCONC(:,47)+TPK%KC14(:)*PCONC(:,47)+TPK%KC15(:)*PCONC(:,46)*PCONC(:,56& -&)+TPK%KC16(:)*PCONC(:,46)*PCONC(:,55) -!PLOSS(WC_HNO3) = +KTC28+KC13 - PLOSS(:,49) = +TPK%KTC28(:)+TPK%KC13(:) -! -!PPROD(WC_HNO4) = +KTC9*<HNO4>+KC9*<WC_NO2>*<WC_HO2> - PPROD(:,50) = +TPK%KTC9(:)*PCONC(:,9)+TPK%KC9(:)*PCONC(:,45)*PCONC(:,53) -!PLOSS(WC_HNO4) = +KTC29+KC10+KC11+KC12*<WC_SO2> - PLOSS(:,50) = +TPK%KTC29(:)+TPK%KC10(:)+TPK%KC11(:)+TPK%KC12(:)*PCONC(:,55) +!PPROD(MGLY) = +K234*<NO>*<RO242>+K235*<RO2T>*<RO242>+K236*<HO2>*<RO242>+K241*< +!NO>*<RO243>+K242*<RO2T>*<RO243>+K243*<HO2>*<RO243>+K248*<NO>*<RO244>+K249*<RO2 +!T>*<RO244>+K250*<HO2>*<RO244>+K255*<NO>*<RO245>+K256*<RO2T>*<RO245>+K257*<HO2> +!*<RO245>+K262*<NO>*<RO246>+K263*<RO2T>*<RO246>+K264*<HO2>*<RO246>+K269*<NO>*<R +!O247>+K270*<RO2T>*<RO247>+K271*<HO2>*<RO247>+0.5*K281*<O3>*<MVK>+0.59*K282*<O3 +!>*<MCR>+K285*<NO>*<RO249>+K286*<RO2T>*<RO249>+K287*<HO2>*<RO249>+K291*<NO>*<RO +!251>+K292*<HO2>*<RO251>+K293*<RO2T>*<RO251>+K294*<NO>*<RO252>+K295*<HO2>*<RO25 +!2>+K296*<RO2T>*<RO252>+KTC56*<WC_MGLY>+KTR56*<WR_MGLY> + PPROD(:,41) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:)+TPK%K235(:)*PCONC(:,85)*TPK& +&%RO242(:)+TPK%K236(:)*PCONC(:,10)*TPK%RO242(:)+TPK%K241(:)*PCONC(:,1)*TPK%RO24& +&3(:)+TPK%K242(:)*PCONC(:,85)*TPK%RO243(:)+TPK%K243(:)*PCONC(:,10)*TPK%RO243(:)& +&+TPK%K248(:)*PCONC(:,1)*TPK%RO244(:)+TPK%K249(:)*PCONC(:,85)*TPK%RO244(:)+TPK%& +&K250(:)*PCONC(:,10)*TPK%RO244(:)+TPK%K255(:)*PCONC(:,1)*TPK%RO245(:)+TPK%K256(& +&:)*PCONC(:,85)*TPK%RO245(:)+TPK%K257(:)*PCONC(:,10)*TPK%RO245(:)+TPK%K262(:)*P& +&CONC(:,1)*TPK%RO246(:)+TPK%K263(:)*PCONC(:,85)*TPK%RO246(:)+TPK%K264(:)*PCONC(& +&:,10)*TPK%RO246(:)+TPK%K269(:)*PCONC(:,1)*TPK%RO247(:)+TPK%K270(:)*PCONC(:,85)& +&*TPK%RO247(:)+TPK%K271(:)*PCONC(:,10)*TPK%RO247(:)+0.5*TPK%K281(:)*PCONC(:,3)*& +&PCONC(:,39)+0.59*TPK%K282(:)*PCONC(:,3)*PCONC(:,40)+TPK%K285(:)*PCONC(:,1)*TPK& +&%RO249(:)+TPK%K286(:)*PCONC(:,85)*TPK%RO249(:)+TPK%K287(:)*PCONC(:,10)*TPK%RO2& +&49(:)+TPK%K291(:)*PCONC(:,1)*TPK%RO251(:)+TPK%K292(:)*PCONC(:,10)*TPK%RO251(:)& +&+TPK%K293(:)*PCONC(:,85)*TPK%RO251(:)+TPK%K294(:)*PCONC(:,1)*TPK%RO252(:)+TPK%& +&K295(:)*PCONC(:,10)*TPK%RO252(:)+TPK%K296(:)*PCONC(:,85)*TPK%RO252(:)+TPK%KTC5& +&6(:)*PCONC(:,111)+TPK%KTR56(:)*PCONC(:,148) +!PLOSS(MGLY) = +K274*<OH>+K276+K278*<NO3>+KTC25+KTR25 + PLOSS(:,41) = +TPK%K274(:)*PCONC(:,15)+TPK%K276(:)+TPK%K278(:)*PCONC(:,8)+TPK%& +&KTC25(:)+TPK%KTR25(:) +! +!PPROD(GLY) = +KTC54*<WC_GLY>+KTR54*<WR_GLY> + PPROD(:,42) = +TPK%KTC54(:)*PCONC(:,110)+TPK%KTR54(:)*PCONC(:,147) +!PLOSS(GLY) = +KTC23+KTR23 + PLOSS(:,42) = +TPK%KTC23(:)+TPK%KTR23(:) +! +!PPROD(ORA1) = +0.185*K051*<O3>*<ETHE>+0.12*K056*<O3>*<OLEL>+0.121*K066*<O3>*<I +!SOP>+0.12*K281*<O3>*<MVK>+0.09*K282*<O3>*<MCR>+KTC57*<WC_ORA1>+KTR57*<WR_ORA1> + PPROD(:,43) = +0.185*TPK%K051(:)*PCONC(:,3)*PCONC(:,16)+0.12*TPK%K056(:)*PCONC& +&(:,3)*PCONC(:,17)+0.121*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+0.12*TPK%K281(:)*PC& +&ONC(:,3)*PCONC(:,39)+0.09*TPK%K282(:)*PCONC(:,3)*PCONC(:,40)+TPK%KTC57(:)*PCON& +&C(:,113)+TPK%KTR57(:)*PCONC(:,150) +!PLOSS(ORA1) = +K347*<OH>+KTC26+KTR26 + PLOSS(:,43) = +TPK%K347(:)*PCONC(:,15)+TPK%KTC26(:)+TPK%KTR26(:) +! +!PPROD(ORA2) = +0.12*K056*<O3>*<OLEL>+K142*<HO2>*<RO26>+K148*<HO2>*<RO28>+0.5*K +!166*<HO2>*<RO239>+0.5*K289*<HO2>*<RO250>+KTC58*<WC_ORA2>+KTR58*<WR_ORA2> + PPROD(:,44) = +0.12*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+TPK%K142(:)*PCONC(:,10)& +&*TPK%RO26(:)+TPK%K148(:)*PCONC(:,10)*TPK%RO28(:)+0.5*TPK%K166(:)*PCONC(:,10)*T& +&PK%RO239(:)+0.5*TPK%K289(:)*PCONC(:,10)*TPK%RO250(:)+TPK%KTC58(:)*PCONC(:,114)& +&+TPK%KTR58(:)*PCONC(:,151) +!PLOSS(ORA2) = +K348*<OH>+KTC27+KTR27 + PLOSS(:,44) = +TPK%K348(:)*PCONC(:,15)+TPK%KTC27(:)+TPK%KTR27(:) +! +!PPROD(ACID) = +0.12*K076*<O3>*<OLEH>+K142*<HO2>*<RO26>+K310*<HO2>*<RO255>+KTC5 +!9*<WC_ACID>+KTR59*<WR_ACID> + PPROD(:,45) = +0.12*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+TPK%K142(:)*PCONC(:,10)& +&*TPK%RO26(:)+TPK%K310(:)*PCONC(:,10)*TPK%RO255(:)+TPK%KTC59(:)*PCONC(:,115)+TP& +&K%KTR59(:)*PCONC(:,152) +!PLOSS(ACID) = +K349*<OH>+KTC28+KTR28 + PLOSS(:,45) = +TPK%K349(:)*PCONC(:,15)+TPK%KTC28(:)+TPK%KTR28(:) +! +!PPROD(UR28) = +K341*<HO2>*<RO258>+KTC62*<WC_UR28>+KTR62*<WR_UR28> + PPROD(:,46) = +TPK%K341(:)*PCONC(:,10)*TPK%RO258(:)+TPK%KTC62(:)*PCONC(:,118)+& +&TPK%KTR62(:)*PCONC(:,155) +!PLOSS(UR28) = +K364+KTC31+KTR31 + PLOSS(:,46) = +TPK%K364(:)+TPK%KTC31(:)+TPK%KTR31(:) +! +!PPROD(UR21) = +K279*<HO2>*<RO248>+0.12*K281*<O3>*<MVK>+KTC61*<WC_UR21>+KTR61*< +!WR_UR21> + PPROD(:,47) = +TPK%K279(:)*PCONC(:,10)*TPK%RO248(:)+0.12*TPK%K281(:)*PCONC(:,3& +&)*PCONC(:,39)+TPK%KTC61(:)*PCONC(:,117)+TPK%KTR61(:)*PCONC(:,154) +!PLOSS(UR21) = +K361+KTC30+KTR30 + PLOSS(:,47) = +TPK%K361(:)+TPK%KTC30(:)+TPK%KTR30(:) +! +!PPROD(URG2) = +0.5562513*K335*<OH>*<RPG2>+K337*<OH>*<RP18> + PPROD(:,48) = +0.5562513*TPK%K335(:)*PCONC(:,15)*PCONC(:,50)+TPK%K337(:)*PCONC& +&(:,15)*PCONC(:,51) +!PLOSS(URG2) = +K350 + PLOSS(:,48) = +TPK%K350(:) +! +!PPROD(UR26) = +0.67*K326*<OH>*<RP11> + PPROD(:,49) = +0.67*TPK%K326(:)*PCONC(:,15)*PCONC(:,73) +!PLOSS(UR26) = +K363 + PLOSS(:,49) = +TPK%K363(:) +! +!PPROD(RPG2) = +0.3000000*K259*<NO>*<RO237>+1.0000000*K260*<RO2T>*<RO237>+0.300 +!0000*K261*<HO2>*<RO237>+0.1191897*K334*<OH>*<RPG3>+0.8808107*K334*<OH>*<RPG3> + PPROD(:,50) = +0.3000000*TPK%K259(:)*PCONC(:,1)*TPK%RO237(:)+1.0000000*TPK%K26& +&0(:)*PCONC(:,85)*TPK%RO237(:)+0.3000000*TPK%K261(:)*PCONC(:,10)*TPK%RO237(:)+0& +&.1191897*TPK%K334(:)*PCONC(:,15)*PCONC(:,52)+0.8808107*TPK%K334(:)*PCONC(:,15)& +&*PCONC(:,52) +!PLOSS(RPG2) = +K335*<OH> + PLOSS(:,50) = +TPK%K335(:)*PCONC(:,15) ! RETURN END SUBROUTINE SUB4 @@ -4720,80 +10410,81 @@ SUBROUTINE SUB5 !Indices 51 a 60 ! ! -!PPROD(WC_NH3) = +KTC10*<NH3> - PPROD(:,51) = +TPK%KTC10(:)*PCONC(:,10) -!PLOSS(WC_NH3) = +KTC30 - PLOSS(:,51) = +TPK%KTC30(:) -! -!PPROD(WC_OH) = +KTC11*<OH>+KC1*<WC_H2O2>+KC1*<WC_H2O2>+KC6*<WC_O3>*<WC_HO2>+KC -!13*<WC_HNO3>+KC28*<WC_ASO4> - PPROD(:,52) = +TPK%KTC11(:)*PCONC(:,14)+TPK%KC1(:)*PCONC(:,43)+TPK%KC1(:)*PCON& -&C(:,43)+TPK%KC6(:)*PCONC(:,42)*PCONC(:,53)+TPK%KC13(:)*PCONC(:,49)+TPK%KC28(:)& -&*PCONC(:,63) -!PLOSS(WC_OH) = +KTC31+KC2*<WC_OH>+KC2*<WC_OH>+KC3*<WC_HO2>+KC4*<WC_H2O2>+KC7*< -!WC_SO2>+KC8*<WC_HONO>+KC19*<WC_HCHO>+KC20*<WC_ORA1>+KC23*<WC_AHMS> - PLOSS(:,52) = +TPK%KTC31(:)+TPK%KC2(:)*PCONC(:,52)+TPK%KC2(:)*PCONC(:,52)+TPK%& -&KC3(:)*PCONC(:,53)+TPK%KC4(:)*PCONC(:,43)+TPK%KC7(:)*PCONC(:,55)+TPK%KC8(:)*PC& -&ONC(:,48)+TPK%KC19(:)*PCONC(:,57)+TPK%KC20(:)*PCONC(:,58)+TPK%KC23(:)*PCONC(:,& -&66) -! -!PPROD(WC_HO2) = +KTC12*<HO2>+KC4*<WC_H2O2>*<WC_OH>+KC10*<WC_HNO4>+2.00*KC17*<W -!C_MO2>*<WC_MO2>+KC19*<WC_HCHO>*<WC_OH>+KC20*<WC_ORA1>*<WC_OH>+KC23*<WC_AHMS>*< -!WC_OH> - PPROD(:,53) = +TPK%KTC12(:)*PCONC(:,15)+TPK%KC4(:)*PCONC(:,43)*PCONC(:,52)+TPK& -&%KC10(:)*PCONC(:,50)+2.00*TPK%KC17(:)*PCONC(:,60)*PCONC(:,60)+TPK%KC19(:)*PCON& -&C(:,57)*PCONC(:,52)+TPK%KC20(:)*PCONC(:,58)*PCONC(:,52)+TPK%KC23(:)*PCONC(:,66& -&)*PCONC(:,52) -!PLOSS(WC_HO2) = +KTC32+KC3*<WC_OH>+KC5*<WC_HO2>+KC5*<WC_HO2>+KC6*<WC_O3>+KC9*< -!WC_NO2>+KC25*<WC_ASO5> - PLOSS(:,53) = +TPK%KTC32(:)+TPK%KC3(:)*PCONC(:,52)+TPK%KC5(:)*PCONC(:,53)+TPK%& -&KC5(:)*PCONC(:,53)+TPK%KC6(:)*PCONC(:,42)+TPK%KC9(:)*PCONC(:,45)+TPK%KC25(:)*P& -&CONC(:,64) -! -!PPROD(WC_CO2) = +KTC13*<CO2>+KC20*<WC_ORA1>*<WC_OH> - PPROD(:,54) = +TPK%KTC13(:)*TPK%CO2(:)+TPK%KC20(:)*PCONC(:,58)*PCONC(:,52) -!PLOSS(WC_CO2) = +KTC33 - PLOSS(:,54) = +TPK%KTC33(:) -! -!PPROD(WC_SO2) = +KTC14*<SO2>+KC22*<WC_AHMS>+KC23*<WC_AHMS>*<WC_OH> - PPROD(:,55) = +TPK%KTC14(:)*PCONC(:,11)+TPK%KC22(:)*PCONC(:,66)+TPK%KC23(:)*PC& -&ONC(:,66)*PCONC(:,52) -!PLOSS(WC_SO2) = +KTC34+KC7*<WC_OH>+KC12*<WC_HNO4>+KC16*<WC_NO3>+KC18*<WC_MO2>+ -!KC21*<WC_HCHO>+KC27*<WC_AHSO5>+KC29*<WC_O3>+KC30*<WC_H2O2> - PLOSS(:,55) = +TPK%KTC34(:)+TPK%KC7(:)*PCONC(:,52)+TPK%KC12(:)*PCONC(:,50)+TPK& -&%KC16(:)*PCONC(:,46)+TPK%KC18(:)*PCONC(:,60)+TPK%KC21(:)*PCONC(:,57)+TPK%KC27(& -&:)*PCONC(:,65)+TPK%KC29(:)*PCONC(:,42)+TPK%KC30(:)*PCONC(:,43) -! -!PPROD(WC_SULF) = +KTC15*<SULF>+KC12*<WC_HNO4>*<WC_SO2>+2.00*KC27*<WC_AHSO5>*<W -!C_SO2>+KC28*<WC_ASO4>+KC29*<WC_SO2>*<WC_O3>+KC30*<WC_SO2>*<WC_H2O2> - PPROD(:,56) = +TPK%KTC15(:)*PCONC(:,12)+TPK%KC12(:)*PCONC(:,50)*PCONC(:,55)+2.& -&00*TPK%KC27(:)*PCONC(:,65)*PCONC(:,55)+TPK%KC28(:)*PCONC(:,63)+TPK%KC29(:)*PCO& -&NC(:,55)*PCONC(:,42)+TPK%KC30(:)*PCONC(:,55)*PCONC(:,43) -!PLOSS(WC_SULF) = +KTC35+KC15*<WC_NO3> - PLOSS(:,56) = +TPK%KTC35(:)+TPK%KC15(:)*PCONC(:,46) -! -!PPROD(WC_HCHO) = +KTC16*<HCHO>+2.00*KC17*<WC_MO2>*<WC_MO2>+KC22*<WC_AHMS> - PPROD(:,57) = +TPK%KTC16(:)*PCONC(:,22)+2.00*TPK%KC17(:)*PCONC(:,60)*PCONC(:,6& -&0)+TPK%KC22(:)*PCONC(:,66) -!PLOSS(WC_HCHO) = +KTC36+KC19*<WC_OH>+KC21*<WC_SO2> - PLOSS(:,57) = +TPK%KTC36(:)+TPK%KC19(:)*PCONC(:,52)+TPK%KC21(:)*PCONC(:,55) -! -!PPROD(WC_ORA1) = +KTC17*<ORA1>+KC19*<WC_HCHO>*<WC_OH>+KC23*<WC_AHMS>*<WC_OH> - PPROD(:,58) = +TPK%KTC17(:)*PCONC(:,30)+TPK%KC19(:)*PCONC(:,57)*PCONC(:,52)+TP& -&K%KC23(:)*PCONC(:,66)*PCONC(:,52) -!PLOSS(WC_ORA1) = +KTC37+KC20*<WC_OH> - PLOSS(:,58) = +TPK%KTC37(:)+TPK%KC20(:)*PCONC(:,52) -! -!PPROD(WC_ORA2) = +KTC18*<ORA2> - PPROD(:,59) = +TPK%KTC18(:)*PCONC(:,31) -!PLOSS(WC_ORA2) = +KTC38 - PLOSS(:,59) = +TPK%KTC38(:) -! -!PPROD(WC_MO2) = +KTC19*<MO2> - PPROD(:,60) = +TPK%KTC19(:)*PCONC(:,32) -!PLOSS(WC_MO2) = +KTC39+KC17*<WC_MO2>+KC17*<WC_MO2>+KC18*<WC_SO2> - PLOSS(:,60) = +TPK%KTC39(:)+TPK%KC17(:)*PCONC(:,60)+TPK%KC17(:)*PCONC(:,60)+TP& -&K%KC18(:)*PCONC(:,55) +!PPROD(RP18) = +0.4437492*K335*<OH>*<RPG2> + PPROD(:,51) = +0.4437492*TPK%K335(:)*PCONC(:,15)*PCONC(:,50) +!PLOSS(RP18) = +K337*<OH> + PLOSS(:,51) = +TPK%K337(:)*PCONC(:,15) +! +!PPROD(RPG3) = +0.3000000*K231*<NO>*<RO233>+1.0000000*K232*<RO2T>*<RO233>+0.300 +!0000*K233*<HO2>*<RO233>+0.3000000*K252*<NO>*<RO236>+1.0000000*K253*<RO2T>*<RO2 +!36>+0.3000000*K254*<HO2>*<RO236> + PPROD(:,52) = +0.3000000*TPK%K231(:)*PCONC(:,1)*TPK%RO233(:)+1.0000000*TPK%K23& +&2(:)*PCONC(:,85)*TPK%RO233(:)+0.3000000*TPK%K233(:)*PCONC(:,10)*TPK%RO233(:)+0& +&.3000000*TPK%K252(:)*PCONC(:,1)*TPK%RO236(:)+1.0000000*TPK%K253(:)*PCONC(:,85)& +&*TPK%RO236(:)+0.3000000*TPK%K254(:)*PCONC(:,10)*TPK%RO236(:) +!PLOSS(RPG3) = +K334*<OH> + PLOSS(:,52) = +TPK%K334(:)*PCONC(:,15) +! +!PPROD(URG4) = +5.5000000E-02*K086*<O3>*<BIOL>+1.0000000*K318*<HO2>*<RO256>+1.0 +!000000*K332*<HO2>*<RO257> + PPROD(:,53) = +5.5000000E-02*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)+1.0000000*TPK%& +&K318(:)*PCONC(:,10)*TPK%RO256(:)+1.0000000*TPK%K332(:)*PCONC(:,10)*TPK%RO257(:& +&) +!PLOSS(URG4) = +K351 + PLOSS(:,53) = +TPK%K351(:) +! +!PPROD(UR8) = +0.055*K090*<O3>*<BIOH> + PPROD(:,54) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +!PLOSS(UR8) = +K358 + PLOSS(:,54) = +TPK%K358(:) +! +!PPROD(UR17) = +1.0000000*K204*<NO>*<RO226>+1.0000000*K205*<RO2T>*<RO226>+1.000 +!0000*K206*<HO2>*<RO226> + PPROD(:,55) = +1.0000000*TPK%K204(:)*PCONC(:,1)*TPK%RO226(:)+1.0000000*TPK%K20& +&5(:)*PCONC(:,85)*TPK%RO226(:)+1.0000000*TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) +!PLOSS(UR17) = +K359 + PLOSS(:,55) = +TPK%K359(:) +! +!PPROD(UR7) = +0.055*K090*<O3>*<BIOH>+TPK%CFA12*K207*<NO>*<RO227>+K208*<RO2T>*< +!RO227>+0.3*K209*<HO2>*<RO227>+0.3*K210*<NO>*<RO228>+0.3*K211*<RO2T>*<RO228>+0. +!3*K212*<HO2>*<RO228> + PPROD(:,56) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37)+TPK%CFA12*TPK%K207(:)*& +&PCONC(:,1)*TPK%RO227(:)+TPK%K208(:)*PCONC(:,85)*TPK%RO227(:)+0.3*TPK%K209(:)*P& +&CONC(:,10)*TPK%RO227(:)+0.3*TPK%K210(:)*PCONC(:,1)*TPK%RO228(:)+0.3*TPK%K211(:& +&)*PCONC(:,85)*TPK%RO228(:)+0.3*TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) +!PLOSS(UR7) = +K357 + PLOSS(:,56) = +TPK%K357(:) +! +!PPROD(RPR3) = +0.055*K086*<O3>*<BIOL>+TPK%CFA10*K198*<NO>*<RO224>+K199*<RO2T>* +!<RO224>+K200*<HO2>*<RO224>+K201*<NO>*<RO225>+K202*<RO2T>*<RO225>+K203*<HO2>*<R +!O225> + PPROD(:,57) = +0.055*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)+TPK%CFA10*TPK%K198(:)*& +&PCONC(:,1)*TPK%RO224(:)+TPK%K199(:)*PCONC(:,85)*TPK%RO224(:)+TPK%K200(:)*PCONC& +&(:,10)*TPK%RO224(:)+TPK%K201(:)*PCONC(:,1)*TPK%RO225(:)+TPK%K202(:)*PCONC(:,85& +&)*TPK%RO225(:)+TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) +!PLOSS(RPR3) = +K312*<OH>+K313*<NO3>+K314 + PLOSS(:,57) = +TPK%K312(:)*PCONC(:,15)+TPK%K313(:)*PCONC(:,8)+TPK%K314(:) +! +!PPROD(URG6) = +TPK%CF21*K177*<NO>*<RO217>+TPK%CF43*K195*<NO>*<RO223>+0.4978440 +!*K323*<OH>*<RPG7> + PPROD(:,58) = +TPK%CF21*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:)+TPK%CF43*TPK%K195(& +&:)*PCONC(:,1)*TPK%RO223(:)+0.4978440*TPK%K323(:)*PCONC(:,15)*PCONC(:,63) +!PLOSS(URG6) = +K352 + PLOSS(:,58) = +TPK%K352(:) +! +!PPROD(UR22) = +K321*<NO2>*<RAD8> + PPROD(:,59) = +TPK%K321(:)*PCONC(:,2)*TPK%RAD8(:) +!PLOSS(UR22) = +K362 + PLOSS(:,59) = +TPK%K362(:) +! +!PPROD(URG7) = +0.1599999*K083*<OH>*<ARAC>+0.9999993*K108*<NO2>*<RAD6>+0.999999 +!3*K303*<OH>*<RPR5>+0.9979297*K306*<OH>*<RPRL>+0.9999993*K322*<OH>*<RPR7> + PPROD(:,60) = +0.1599999*TPK%K083(:)*PCONC(:,15)*PCONC(:,26)+0.9999993*TPK%K10& +&8(:)*PCONC(:,2)*TPK%RAD6(:)+0.9999993*TPK%K303(:)*PCONC(:,15)*PCONC(:,70)+0.99& +&79297*TPK%K306(:)*PCONC(:,15)*PCONC(:,75)+0.9999993*TPK%K322(:)*PCONC(:,15)*PC& +&ONC(:,62) +!PLOSS(URG7) = +K353 + PLOSS(:,60) = +TPK%K353(:) ! RETURN END SUBROUTINE SUB5 @@ -4803,64 +10494,76 @@ SUBROUTINE SUB6 !Indices 61 a 70 ! ! -!PPROD(WC_OP1) = +KTC20*<OP1>+KC18*<WC_MO2>*<WC_SO2> - PPROD(:,61) = +TPK%KTC20(:)*PCONC(:,28)+TPK%KC18(:)*PCONC(:,60)*PCONC(:,55) -!PLOSS(WC_OP1) = +KTC40 - PLOSS(:,61) = +TPK%KTC40(:) -! -!PPROD(WC_ASO3) = +KC7*<WC_OH>*<WC_SO2>+KC16*<WC_NO3>*<WC_SO2>+KC18*<WC_MO2>*<W -!C_SO2> - PPROD(:,62) = +TPK%KC7(:)*PCONC(:,52)*PCONC(:,55)+TPK%KC16(:)*PCONC(:,46)*PCON& -&C(:,55)+TPK%KC18(:)*PCONC(:,60)*PCONC(:,55) -!PLOSS(WC_ASO3) = +KC24*<W_O2> - PLOSS(:,62) = +TPK%KC24(:)*TPK%W_O2(:) -! -!PPROD(WC_ASO4) = +KC15*<WC_NO3>*<WC_SULF>+KC26*<WC_ASO5>*<WC_ASO5>+KC26*<WC_AS -!O5>*<WC_ASO5> - PPROD(:,63) = +TPK%KC15(:)*PCONC(:,46)*PCONC(:,56)+TPK%KC26(:)*PCONC(:,64)*PCO& -&NC(:,64)+TPK%KC26(:)*PCONC(:,64)*PCONC(:,64) -!PLOSS(WC_ASO4) = +KC28 - PLOSS(:,63) = +TPK%KC28(:) -! -!PPROD(WC_ASO5) = +KC24*<WC_ASO3>*<W_O2> - PPROD(:,64) = +TPK%KC24(:)*PCONC(:,62)*TPK%W_O2(:) -!PLOSS(WC_ASO5) = +KC25*<WC_HO2>+KC26*<WC_ASO5>+KC26*<WC_ASO5> - PLOSS(:,64) = +TPK%KC25(:)*PCONC(:,53)+TPK%KC26(:)*PCONC(:,64)+TPK%KC26(:)*PCO& -&NC(:,64) -! -!PPROD(WC_AHSO5) = +KC25*<WC_ASO5>*<WC_HO2> - PPROD(:,65) = +TPK%KC25(:)*PCONC(:,64)*PCONC(:,53) -!PLOSS(WC_AHSO5) = +KC27*<WC_SO2> - PLOSS(:,65) = +TPK%KC27(:)*PCONC(:,55) -! -!PPROD(WC_AHMS) = +KC21*<WC_SO2>*<WC_HCHO> - PPROD(:,66) = +TPK%KC21(:)*PCONC(:,55)*PCONC(:,57) -!PLOSS(WC_AHMS) = +KC22+KC23*<WC_OH> - PLOSS(:,66) = +TPK%KC22(:)+TPK%KC23(:)*PCONC(:,52) -! -!PPROD(WR_O3) = +KTR1*<O3> - PPROD(:,67) = +TPK%KTR1(:)*PCONC(:,1) -!PLOSS(WR_O3) = +KTR21+KR6*<WR_HO2>+KR29*<WR_SO2> - PLOSS(:,67) = +TPK%KTR21(:)+TPK%KR6(:)*PCONC(:,78)+TPK%KR29(:)*PCONC(:,80) -! -!PPROD(WR_H2O2) = +KTR2*<H2O2>+KR2*<WR_OH>*<WR_OH>+KR5*<WR_HO2>*<WR_HO2> - PPROD(:,68) = +TPK%KTR2(:)*PCONC(:,2)+TPK%KR2(:)*PCONC(:,77)*PCONC(:,77)+TPK%K& -&R5(:)*PCONC(:,78)*PCONC(:,78) -!PLOSS(WR_H2O2) = +KTR22+KR1+KR4*<WR_OH>+KR30*<WR_SO2> - PLOSS(:,68) = +TPK%KTR22(:)+TPK%KR1(:)+TPK%KR4(:)*PCONC(:,77)+TPK%KR30(:)*PCON& -&C(:,80) -! -!PPROD(WR_NO) = +KTR3*<NO> - PPROD(:,69) = +TPK%KTR3(:)*PCONC(:,3) -!PLOSS(WR_NO) = +KTR23 - PLOSS(:,69) = +TPK%KTR23(:) -! -!PPROD(WR_NO2) = +KTR4*<NO2>+KR8*<WR_HONO>*<WR_OH>+KR10*<WR_HNO4>+KR13*<WR_HNO3 +!PPROD(RPR4) = +K103*<NO2>*<RAD1>+K104*<NO2>*<RAD2> + PPROD(:,61) = +TPK%K103(:)*PCONC(:,2)*TPK%RAD1(:)+TPK%K104(:)*PCONC(:,2)*TPK%R& +&AD2(:) +!PLOSS(RPR4) = +K320*<NO3> + PLOSS(:,61) = +TPK%K320(:)*PCONC(:,8) +! +!PPROD(RPR7) = +TPK%CF44*K195*<NO>*<RO223>+K196*<RO2T>*<RO223>+K197*<HO2>*<RO22 +!3>+2.0714202E-03*K306*<OH>*<RPRL> + PPROD(:,62) = +TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:)+TPK%K196(:)*PCONC(& +&:,85)*TPK%RO223(:)+TPK%K197(:)*PCONC(:,10)*TPK%RO223(:)+2.0714202E-03*TPK%K306& +&(:)*PCONC(:,15)*PCONC(:,75) +!PLOSS(RPR7) = +K322*<OH> + PLOSS(:,62) = +TPK%K322(:)*PCONC(:,15) +! +!PPROD(RPG7) = +1.0000013*K266*<NO>*<RO238>+1.0000013*K267*<RO2T>*<RO238>+1.000 +!0013*K268*<HO2>*<RO238>+0.5021558*K323*<OH>*<RPG7> + PPROD(:,63) = +1.0000013*TPK%K266(:)*PCONC(:,1)*TPK%RO238(:)+1.0000013*TPK%K26& +&7(:)*PCONC(:,85)*TPK%RO238(:)+1.0000013*TPK%K268(:)*PCONC(:,10)*TPK%RO238(:)+0& +&.5021558*TPK%K323(:)*PCONC(:,15)*PCONC(:,63) +!PLOSS(RPG7) = +K323*<OH> + PLOSS(:,63) = +TPK%K323(:)*PCONC(:,15) +! +!PPROD(URG8) = +0.1600000*K092*<OH>*<PAH>+1.0000000*K109*<NO2>*<RAD7>+TPK%CF31* +!K221*<NO>*<RO231> + PPROD(:,64) = +0.1600000*TPK%K092(:)*PCONC(:,15)*PCONC(:,27)+1.0000000*TPK%K10& +&9(:)*PCONC(:,2)*TPK%RAD7(:)+TPK%CF31*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) +!PLOSS(URG8) = +K354 + PLOSS(:,64) = +TPK%K354(:) +! +!PPROD(UR19) = +TPK%CF32*K221*<NO>*<RO231>+K222*<RO2T>*<RO231>+K223*<HO2>*<RO23 +!1> + PPROD(:,65) = +TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:)+TPK%K222(:)*PCONC(& +&:,85)*TPK%RO231(:)+TPK%K223(:)*PCONC(:,10)*TPK%RO231(:) +!PLOSS(UR19) = +K360 + PLOSS(:,65) = +TPK%K360(:) +! +!PPROD(URG9) = +TPK%CFA14*K224*<NO>*<RO232>+TPK%CFA16*K227*<NO>*<RO241>+TPK%CFA +!15*K227*<NO>*<RO241>+0.9999996*K228*<RO2T>*<RO241>+0.9999996*K229*<HO2>*<RO241 !> - PPROD(:,70) = +TPK%KTR4(:)*PCONC(:,4)+TPK%KR8(:)*PCONC(:,73)*PCONC(:,77)+TPK%K& -&R10(:)*PCONC(:,75)+TPK%KR13(:)*PCONC(:,74) -!PLOSS(WR_NO2) = +KTR24+KR9*<WR_HO2> - PLOSS(:,70) = +TPK%KTR24(:)+TPK%KR9(:)*PCONC(:,78) + PPROD(:,66) = +TPK%CFA14*TPK%K224(:)*PCONC(:,1)*TPK%RO232(:)+TPK%CFA16*TPK%K22& +&7(:)*PCONC(:,1)*TPK%RO241(:)+TPK%CFA15*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:)+0.9& +&999996*TPK%K228(:)*PCONC(:,85)*TPK%RO241(:)+0.9999996*TPK%K229(:)*PCONC(:,10)*& +&TPK%RO241(:) +!PLOSS(URG9) = +K355 + PLOSS(:,66) = +TPK%K355(:) +! +!PPROD(AP7) = +TPK%CFA23*K198*<NO>*<RO224> + PPROD(:,67) = +TPK%CFA23*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) +!PLOSS(AP7) = +K365 + PLOSS(:,67) = +TPK%K365(:) +! +!PPROD(URG10) = +0.2500000*K087*<O>*<BIOL>+0.7500000*K087*<O>*<BIOL>+TPK%CF27*K +!207*<NO>*<RO227> + PPROD(:,68) = +0.2500000*TPK%K087(:)*TPK%O(:)*PCONC(:,36)+0.7500000*TPK%K087(:& +&)*TPK%O(:)*PCONC(:,36)+TPK%CF27*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) +!PLOSS(URG10) = +K356 + PLOSS(:,68) = +TPK%K356(:) +! +!PPROD(RPR1) = +0.5*K076*<O3>*<OLEH>+0.4*K077*<O>*<OLEH>+K183*<NO>*<RO219>+K184 +!*<RO2T>*<RO219>+K185*<HO2>*<RO219> + PPROD(:,69) = +0.5*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+0.4*TPK%K077(:)*TPK%O(:)& +&*PCONC(:,18)+TPK%K183(:)*PCONC(:,1)*TPK%RO219(:)+TPK%K184(:)*PCONC(:,85)*TPK%R& +&O219(:)+TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) +!PLOSS(RPR1) = +K304*<OH>+K307*<NO3>+K308 + PLOSS(:,69) = +TPK%K304(:)*PCONC(:,15)+TPK%K307(:)*PCONC(:,8)+TPK%K308(:) +! +!PPROD(RPR5) = +K107*<NO2>*<RAD5> + PPROD(:,70) = +TPK%K107(:)*PCONC(:,2)*TPK%RAD5(:) +!PLOSS(RPR5) = +K303*<OH> + PLOSS(:,70) = +TPK%K303(:)*PCONC(:,15) ! RETURN END SUBROUTINE SUB6 @@ -4870,77 +10573,83 @@ SUBROUTINE SUB7 !Indices 71 a 80 ! ! -!PPROD(WR_NO3) = +KTR5*<NO3> - PPROD(:,71) = +TPK%KTR5(:)*PCONC(:,5) -!PLOSS(WR_NO3) = +KTR25+KR15*<WR_SULF>+KR16*<WR_SO2> - PLOSS(:,71) = +TPK%KTR25(:)+TPK%KR15(:)*PCONC(:,81)+TPK%KR16(:)*PCONC(:,80) -! -!PPROD(WR_N2O5) = +KTR6*<N2O5> - PPROD(:,72) = +TPK%KTR6(:)*PCONC(:,6) -!PLOSS(WR_N2O5) = +KTR26+KR14 - PLOSS(:,72) = +TPK%KTR26(:)+TPK%KR14(:) -! -!PPROD(WR_HONO) = +KTR7*<HONO>+KR11*<WR_HNO4> - PPROD(:,73) = +TPK%KTR7(:)*PCONC(:,7)+TPK%KR11(:)*PCONC(:,75) -!PLOSS(WR_HONO) = +KTR27+KR8*<WR_OH> - PLOSS(:,73) = +TPK%KTR27(:)+TPK%KR8(:)*PCONC(:,77) -! -!PPROD(WR_HNO3) = +KTR8*<HNO3>+KR12*<WR_HNO4>*<WR_SO2>+KR14*<WR_N2O5>+KR14*<WR_ -!N2O5>+KR15*<WR_NO3>*<WR_SULF>+KR16*<WR_NO3>*<WR_SO2> - PPROD(:,74) = +TPK%KTR8(:)*PCONC(:,8)+TPK%KR12(:)*PCONC(:,75)*PCONC(:,80)+TPK%& -&KR14(:)*PCONC(:,72)+TPK%KR14(:)*PCONC(:,72)+TPK%KR15(:)*PCONC(:,71)*PCONC(:,81& -&)+TPK%KR16(:)*PCONC(:,71)*PCONC(:,80) -!PLOSS(WR_HNO3) = +KTR28+KR13 - PLOSS(:,74) = +TPK%KTR28(:)+TPK%KR13(:) -! -!PPROD(WR_HNO4) = +KTR9*<HNO4>+KR9*<WR_NO2>*<WR_HO2> - PPROD(:,75) = +TPK%KTR9(:)*PCONC(:,9)+TPK%KR9(:)*PCONC(:,70)*PCONC(:,78) -!PLOSS(WR_HNO4) = +KTR29+KR10+KR11+KR12*<WR_SO2> - PLOSS(:,75) = +TPK%KTR29(:)+TPK%KR10(:)+TPK%KR11(:)+TPK%KR12(:)*PCONC(:,80) -! -!PPROD(WR_NH3) = +KTR10*<NH3> - PPROD(:,76) = +TPK%KTR10(:)*PCONC(:,10) -!PLOSS(WR_NH3) = +KTR30 - PLOSS(:,76) = +TPK%KTR30(:) -! -!PPROD(WR_OH) = +KTR11*<OH>+KR1*<WR_H2O2>+KR1*<WR_H2O2>+KR6*<WR_O3>*<WR_HO2>+KR -!13*<WR_HNO3>+KR28*<WR_ASO4> - PPROD(:,77) = +TPK%KTR11(:)*PCONC(:,14)+TPK%KR1(:)*PCONC(:,68)+TPK%KR1(:)*PCON& -&C(:,68)+TPK%KR6(:)*PCONC(:,67)*PCONC(:,78)+TPK%KR13(:)*PCONC(:,74)+TPK%KR28(:)& -&*PCONC(:,88) -!PLOSS(WR_OH) = +KTR31+KR2*<WR_OH>+KR2*<WR_OH>+KR3*<WR_HO2>+KR4*<WR_H2O2>+KR7*< -!WR_SO2>+KR8*<WR_HONO>+KR19*<WR_HCHO>+KR20*<WR_ORA1>+KR23*<WR_AHMS> - PLOSS(:,77) = +TPK%KTR31(:)+TPK%KR2(:)*PCONC(:,77)+TPK%KR2(:)*PCONC(:,77)+TPK%& -&KR3(:)*PCONC(:,78)+TPK%KR4(:)*PCONC(:,68)+TPK%KR7(:)*PCONC(:,80)+TPK%KR8(:)*PC& -&ONC(:,73)+TPK%KR19(:)*PCONC(:,82)+TPK%KR20(:)*PCONC(:,83)+TPK%KR23(:)*PCONC(:,& -&91) -! -!PPROD(WR_HO2) = +KTR12*<HO2>+KR4*<WR_H2O2>*<WR_OH>+KR10*<WR_HNO4>+2.00*KR17*<W -!R_MO2>*<WR_MO2>+KR19*<WR_HCHO>*<WR_OH>+KR20*<WR_ORA1>*<WR_OH>+KR23*<WR_AHMS>*< -!WR_OH> - PPROD(:,78) = +TPK%KTR12(:)*PCONC(:,15)+TPK%KR4(:)*PCONC(:,68)*PCONC(:,77)+TPK& -&%KR10(:)*PCONC(:,75)+2.00*TPK%KR17(:)*PCONC(:,85)*PCONC(:,85)+TPK%KR19(:)*PCON& -&C(:,82)*PCONC(:,77)+TPK%KR20(:)*PCONC(:,83)*PCONC(:,77)+TPK%KR23(:)*PCONC(:,91& -&)*PCONC(:,77) -!PLOSS(WR_HO2) = +KTR32+KR3*<WR_OH>+KR5*<WR_HO2>+KR5*<WR_HO2>+KR6*<WR_O3>+KR9*< -!WR_NO2>+KR25*<WR_ASO5> - PLOSS(:,78) = +TPK%KTR32(:)+TPK%KR3(:)*PCONC(:,77)+TPK%KR5(:)*PCONC(:,78)+TPK%& -&KR5(:)*PCONC(:,78)+TPK%KR6(:)*PCONC(:,67)+TPK%KR9(:)*PCONC(:,70)+TPK%KR25(:)*P& -&CONC(:,89) -! -!PPROD(WR_CO2) = +KTR13*<CO2>+KR20*<WR_ORA1>*<WR_OH> - PPROD(:,79) = +TPK%KTR13(:)*TPK%CO2(:)+TPK%KR20(:)*PCONC(:,83)*PCONC(:,77) -!PLOSS(WR_CO2) = +KTR33 - PLOSS(:,79) = +TPK%KTR33(:) -! -!PPROD(WR_SO2) = +KTR14*<SO2>+KR22*<WR_AHMS>+KR23*<WR_AHMS>*<WR_OH> - PPROD(:,80) = +TPK%KTR14(:)*PCONC(:,11)+TPK%KR22(:)*PCONC(:,91)+TPK%KR23(:)*PC& -&ONC(:,91)*PCONC(:,77) -!PLOSS(WR_SO2) = +KTR34+KR7*<WR_OH>+KR12*<WR_HNO4>+KR16*<WR_NO3>+KR18*<WR_MO2>+ -!KR21*<WR_HCHO>+KR27*<WR_AHSO5>+KR29*<WR_O3>+KR30*<WR_H2O2> - PLOSS(:,80) = +TPK%KTR34(:)+TPK%KR7(:)*PCONC(:,77)+TPK%KR12(:)*PCONC(:,75)+TPK& -&%KR16(:)*PCONC(:,71)+TPK%KR18(:)*PCONC(:,85)+TPK%KR21(:)*PCONC(:,82)+TPK%KR27(& -&:)*PCONC(:,90)+TPK%KR29(:)*PCONC(:,67)+TPK%KR30(:)*PCONC(:,68) +!PPROD(RPR8) = +K216*<NO>*<RO240>+K217*<RO2T>*<RO240>+K218*<HO2>*<RO240> + PPROD(:,71) = +TPK%K216(:)*PCONC(:,1)*TPK%RO240(:)+TPK%K217(:)*PCONC(:,85)*TPK& +&%RO240(:)+TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) +!PLOSS(RPR8) = +K324*<OH>+K327*<NO3>+K329+K330 + PLOSS(:,71) = +TPK%K324(:)*PCONC(:,15)+TPK%K327(:)*PCONC(:,8)+TPK%K329(:)+TPK%& +&K330(:) +! +!PPROD(RP10) = +K234*<NO>*<RO242>+K235*<RO2T>*<RO242>+K236*<HO2>*<RO242>+K241*< +!NO>*<RO243>+K242*<RO2T>*<RO243>+K243*<HO2>*<RO243>+K248*<NO>*<RO244>+K249*<RO2 +!T>*<RO244>+K250*<HO2>*<RO244>+K255*<NO>*<RO245>+K256*<RO2T>*<RO245>+K257*<HO2> +!*<RO245>+K262*<NO>*<RO246>+K263*<RO2T>*<RO246>+K264*<HO2>*<RO246> + PPROD(:,72) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:)+TPK%K235(:)*PCONC(:,85)*TPK& +&%RO242(:)+TPK%K236(:)*PCONC(:,10)*TPK%RO242(:)+TPK%K241(:)*PCONC(:,1)*TPK%RO24& +&3(:)+TPK%K242(:)*PCONC(:,85)*TPK%RO243(:)+TPK%K243(:)*PCONC(:,10)*TPK%RO243(:)& +&+TPK%K248(:)*PCONC(:,1)*TPK%RO244(:)+TPK%K249(:)*PCONC(:,85)*TPK%RO244(:)+TPK%& +&K250(:)*PCONC(:,10)*TPK%RO244(:)+TPK%K255(:)*PCONC(:,1)*TPK%RO245(:)+TPK%K256(& +&:)*PCONC(:,85)*TPK%RO245(:)+TPK%K257(:)*PCONC(:,10)*TPK%RO245(:)+TPK%K262(:)*P& +&CONC(:,1)*TPK%RO246(:)+TPK%K263(:)*PCONC(:,85)*TPK%RO246(:)+TPK%K264(:)*PCONC(& +&:,10)*TPK%RO246(:) +!PLOSS(RP10) = +K325*<OH>+K328 + PLOSS(:,72) = +TPK%K325(:)*PCONC(:,15)+TPK%K328(:) +! +!PPROD(RP11) = +0.3*K238*<NO>*<RO234>+K239*<RO2T>*<RO234>+0.3*K240*<HO2>*<RO234 +!>+0.5*K245*<NO>*<RO235>+K246*<RO2T>*<RO235>+K247*<HO2>*<RO235> + PPROD(:,73) = +0.3*TPK%K238(:)*PCONC(:,1)*TPK%RO234(:)+TPK%K239(:)*PCONC(:,85)& +&*TPK%RO234(:)+0.3*TPK%K240(:)*PCONC(:,10)*TPK%RO234(:)+0.5*TPK%K245(:)*PCONC(:& +&,1)*TPK%RO235(:)+TPK%K246(:)*PCONC(:,85)*TPK%RO235(:)+TPK%K247(:)*PCONC(:,10)*& +&TPK%RO235(:) +!PLOSS(RP11) = +K326*<OH> + PLOSS(:,73) = +TPK%K326(:)*PCONC(:,15) +! +!PPROD(RP16) = +K301*<HO2>*<RO254>+KTC60*<WC_RP16>+KTR60*<WR_RP16> + PPROD(:,74) = +TPK%K301(:)*PCONC(:,10)*TPK%RO254(:)+TPK%KTC60(:)*PCONC(:,116)+& +&TPK%KTR60(:)*PCONC(:,153) +!PLOSS(RP16) = +K305*<OH>+K338*<NO3>+K339+KTC29+KTR29 + PLOSS(:,74) = +TPK%K305(:)*PCONC(:,15)+TPK%K338(:)*PCONC(:,8)+TPK%K339(:)+TPK%& +&KTC29(:)+TPK%KTR29(:) +! +!PPROD(RPRL) = +0.9983609*K082*<OH>*<ARAL>+TPK%CFA2*K177*<NO>*<RO217>+0.9983609 +!*K178*<RO2T>*<RO217>+0.9983609*K179*<HO2>*<RO217>+TPK%CFA7*K192*<NO>*<RO222>+0 +!.9983609*K193*<RO2T>*<RO222>+0.9983609*K194*<HO2>*<RO222>+1.0023998*K269*<NO>* +!<RO247>+1.0023998*K270*<RO2T>*<RO247>+1.0023998*K271*<HO2>*<RO247> + PPROD(:,75) = +0.9983609*TPK%K082(:)*PCONC(:,15)*PCONC(:,25)+TPK%CFA2*TPK%K177& +&(:)*PCONC(:,1)*TPK%RO217(:)+0.9983609*TPK%K178(:)*PCONC(:,85)*TPK%RO217(:)+0.9& +&983609*TPK%K179(:)*PCONC(:,10)*TPK%RO217(:)+TPK%CFA7*TPK%K192(:)*PCONC(:,1)*TP& +&K%RO222(:)+0.9983609*TPK%K193(:)*PCONC(:,85)*TPK%RO222(:)+0.9983609*TPK%K194(:& +&)*PCONC(:,10)*TPK%RO222(:)+1.0023998*TPK%K269(:)*PCONC(:,1)*TPK%RO247(:)+1.002& +&3998*TPK%K270(:)*PCONC(:,85)*TPK%RO247(:)+1.0023998*TPK%K271(:)*PCONC(:,10)*TP& +&K%RO247(:) +!PLOSS(RPRL) = +K306*<OH> + PLOSS(:,75) = +TPK%K306(:)*PCONC(:,15) +! +!PPROD(APAN) = +K130*<NO2>*<RO250>+K133*<NO2>*<RO257> + PPROD(:,76) = +TPK%K130(:)*PCONC(:,2)*TPK%RO250(:)+TPK%K133(:)*PCONC(:,2)*TPK%& +&RO257(:) +!PLOSS(APAN) = +K139 + PLOSS(:,76) = +TPK%K139(:) +! +!PPROD(PAN1) = +K126*<NO2>*<RO26> + PPROD(:,77) = +TPK%K126(:)*PCONC(:,2)*TPK%RO26(:) +!PLOSS(PAN1) = +K135 + PLOSS(:,77) = +TPK%K135(:) +! +!PPROD(PAN2) = +K127*<NO2>*<RO28> + PPROD(:,78) = +TPK%K127(:)*PCONC(:,2)*TPK%RO28(:) +!PLOSS(PAN2) = +K136 + PLOSS(:,78) = +TPK%K136(:) +! +!PPROD(PAN3) = +K128*<NO2>*<RO239> + PPROD(:,79) = +TPK%K128(:)*PCONC(:,2)*TPK%RO239(:) +!PLOSS(PAN3) = +K137 + PLOSS(:,79) = +TPK%K137(:) +! +!PPROD(PAN4) = +K129*<NO2>*<RO248> + PPROD(:,80) = +TPK%K129(:)*PCONC(:,2)*TPK%RO248(:) +!PLOSS(PAN4) = +K141 + PLOSS(:,80) = +TPK%K141(:) ! RETURN END SUBROUTINE SUB7 @@ -4950,806 +10659,797 @@ SUBROUTINE SUB8 !Indices 81 a 90 ! ! -!PPROD(WR_SULF) = +KTR15*<SULF>+KR12*<WR_HNO4>*<WR_SO2>+2.00*KR27*<WR_AHSO5>*<W -!R_SO2>+KR28*<WR_ASO4>+KR29*<WR_SO2>*<WR_O3>+KR30*<WR_SO2>*<WR_H2O2> - PPROD(:,81) = +TPK%KTR15(:)*PCONC(:,12)+TPK%KR12(:)*PCONC(:,75)*PCONC(:,80)+2.& -&00*TPK%KR27(:)*PCONC(:,90)*PCONC(:,80)+TPK%KR28(:)*PCONC(:,88)+TPK%KR29(:)*PCO& -&NC(:,80)*PCONC(:,67)+TPK%KR30(:)*PCONC(:,80)*PCONC(:,68) -!PLOSS(WR_SULF) = +KTR35+KR15*<WR_NO3> - PLOSS(:,81) = +TPK%KTR35(:)+TPK%KR15(:)*PCONC(:,71) -! -!PPROD(WR_HCHO) = +KTR16*<HCHO>+2.00*KR17*<WR_MO2>*<WR_MO2>+KR22*<WR_AHMS> - PPROD(:,82) = +TPK%KTR16(:)*PCONC(:,22)+2.00*TPK%KR17(:)*PCONC(:,85)*PCONC(:,8& -&5)+TPK%KR22(:)*PCONC(:,91) -!PLOSS(WR_HCHO) = +KTR36+KR19*<WR_OH>+KR21*<WR_SO2> - PLOSS(:,82) = +TPK%KTR36(:)+TPK%KR19(:)*PCONC(:,77)+TPK%KR21(:)*PCONC(:,80) -! -!PPROD(WR_ORA1) = +KTR17*<ORA1>+KR19*<WR_HCHO>*<WR_OH>+KR23*<WR_AHMS>*<WR_OH> - PPROD(:,83) = +TPK%KTR17(:)*PCONC(:,30)+TPK%KR19(:)*PCONC(:,82)*PCONC(:,77)+TP& -&K%KR23(:)*PCONC(:,91)*PCONC(:,77) -!PLOSS(WR_ORA1) = +KTR37+KR20*<WR_OH> - PLOSS(:,83) = +TPK%KTR37(:)+TPK%KR20(:)*PCONC(:,77) -! -!PPROD(WR_ORA2) = +KTR18*<ORA2> - PPROD(:,84) = +TPK%KTR18(:)*PCONC(:,31) -!PLOSS(WR_ORA2) = +KTR38 - PLOSS(:,84) = +TPK%KTR38(:) -! -!PPROD(WR_MO2) = +KTR19*<MO2> - PPROD(:,85) = +TPK%KTR19(:)*PCONC(:,32) -!PLOSS(WR_MO2) = +KTR39+KR17*<WR_MO2>+KR17*<WR_MO2>+KR18*<WR_SO2> - PLOSS(:,85) = +TPK%KTR39(:)+TPK%KR17(:)*PCONC(:,85)+TPK%KR17(:)*PCONC(:,85)+TP& -&K%KR18(:)*PCONC(:,80) -! -!PPROD(WR_OP1) = +KTR20*<OP1>+KR18*<WR_MO2>*<WR_SO2> - PPROD(:,86) = +TPK%KTR20(:)*PCONC(:,28)+TPK%KR18(:)*PCONC(:,85)*PCONC(:,80) -!PLOSS(WR_OP1) = +KTR40 - PLOSS(:,86) = +TPK%KTR40(:) -! -!PPROD(WR_ASO3) = +KR7*<WR_OH>*<WR_SO2>+KR16*<WR_NO3>*<WR_SO2>+KR18*<WR_MO2>*<W -!R_SO2> - PPROD(:,87) = +TPK%KR7(:)*PCONC(:,77)*PCONC(:,80)+TPK%KR16(:)*PCONC(:,71)*PCON& -&C(:,80)+TPK%KR18(:)*PCONC(:,85)*PCONC(:,80) -!PLOSS(WR_ASO3) = +KR24*<W_O2> - PLOSS(:,87) = +TPK%KR24(:)*TPK%W_O2(:) -! -!PPROD(WR_ASO4) = +KR15*<WR_NO3>*<WR_SULF>+KR26*<WR_ASO5>*<WR_ASO5>+KR26*<WR_AS -!O5>*<WR_ASO5> - PPROD(:,88) = +TPK%KR15(:)*PCONC(:,71)*PCONC(:,81)+TPK%KR26(:)*PCONC(:,89)*PCO& -&NC(:,89)+TPK%KR26(:)*PCONC(:,89)*PCONC(:,89) -!PLOSS(WR_ASO4) = +KR28 - PLOSS(:,88) = +TPK%KR28(:) -! -!PPROD(WR_ASO5) = +KR24*<WR_ASO3>*<W_O2> - PPROD(:,89) = +TPK%KR24(:)*PCONC(:,87)*TPK%W_O2(:) -!PLOSS(WR_ASO5) = +KR25*<WR_HO2>+KR26*<WR_ASO5>+KR26*<WR_ASO5> - PLOSS(:,89) = +TPK%KR25(:)*PCONC(:,78)+TPK%KR26(:)*PCONC(:,89)+TPK%KR26(:)*PCO& -&NC(:,89) -! -!PPROD(WR_AHSO5) = +KR25*<WR_ASO5>*<WR_HO2> - PPROD(:,90) = +TPK%KR25(:)*PCONC(:,89)*PCONC(:,78) -!PLOSS(WR_AHSO5) = +KR27*<WR_SO2> - PLOSS(:,90) = +TPK%KR27(:)*PCONC(:,80) +!PPROD(PAN6) = +K131*<NO2>*<RO254> + PPROD(:,81) = +TPK%K131(:)*PCONC(:,2)*TPK%RO254(:) +!PLOSS(PAN6) = +K140 + PLOSS(:,81) = +TPK%K140(:) +! +!PPROD(PAN7) = +K132*<NO2>*<RO255> + PPROD(:,82) = +TPK%K132(:)*PCONC(:,2)*TPK%RO255(:) +!PLOSS(PAN7) = +K343 + PLOSS(:,82) = +TPK%K343(:) +! +!PPROD(PAN8) = +K316*<NO2>*<RO256> + PPROD(:,83) = +TPK%K316(:)*PCONC(:,2)*TPK%RO256(:) +!PLOSS(PAN8) = +K317 + PLOSS(:,83) = +TPK%K317(:) +! +!PPROD(PN10) = +K134*<NO2>*<RO258> + PPROD(:,84) = +TPK%K134(:)*PCONC(:,2)*TPK%RO258(:) +!PLOSS(PN10) = +K138 + PLOSS(:,84) = +TPK%K138(:) +! +!PPROD(RO2T) = +K043*<OH>*<CH4>+K049*<OH>*<ETHE>+K050*<NO3>*<ETHE>+K052*<O>*<ET +!HE>+TPK%CF2*K053*<OH>*<ETOH>+K054*<OH>*<OLEL>+K055*<NO3>*<OLEL>+0.28*K056*<O3> +!*<OLEL>+0.2*K057*<O>*<OLEL>+K058*<OH>*<ALKL>+K059*<ALD2>+K060*<OH>*<ALD2>+K061 +!*<NO3>*<ALD2>+K062*<OH>*<KETL>+2.*K063*<KETL>+K064*<OH>*<ISOP>+K065*<NO3>*<ISO +!P>+0.366*K066*<O3>*<ISOP>+K068*<OH>*<MTBE>+K069*<OH>*<ALCH>+K070*<OH>*<KETH>+2 +!.*K071*<KETH>+0.1*K073*<OH>*<AROO>+K074*<OH>*<OLEH>+K075*<NO3>*<OLEH>+0.28*K07 +!6*<O3>*<OLEH>+0.2*K077*<O>*<OLEH>+K078*<OH>*<ALKM>+0.06*K079*<OH>*<AROL>+TPK%C +!F45*K082*<OH>*<ARAL>+0.1*K083*<OH>*<ARAC>+K084*<OH>*<BIOL>+K085*<NO3>*<BIOL>+0 +!.445*K086*<O3>*<BIOL>+K088*<OH>*<BIOH>+K089*<NO3>*<BIOH>+0.89*K090*<O3>*<BIOH> +!+0.1*K092*<OH>*<PAH>+K093*<OH>*<ALKH>+K096*<RO2T>*<RO2T>+K097*<RAD2>+K098*<RAD +!3>+K099*<RAD4>+K100*<RAD5>+K101*<RAD6>+K102*<RAD7>+K111*<RO2T>*<RO21>+K114*<RO +!2T>*<RO22>+K117*<RO2T>*<RO23>+K120*<RO2T>*<RO24>+K123*<RO2T>*<RO25>+K125*<NO>* +!<RO26>+K135*<PAN1>+K136*<PAN2>+K137*<PAN3>+K138*<PN10>+1.0000000*K139*<APAN>+K +!140*<PAN6>+K141*<PAN4>+2.*K143*<RO2T>*<RO26>+K144*<NO>*<RO27>+2.*K145*<RO2T>*< +!RO27>+K146*<HO2>*<RO27>+K147*<NO>*<RO28>+2.*K149*<RO2T>*<RO28>+K151*<RO2T>*<RO +!29>+K154*<RO2T>*<RO210>+K157*<RO2T>*<RO211>+K160*<RO2T>*<RO212>+K162*<NO>*<RO2 +!13>+2.*K163*<RO2T>*<RO213>+K164*<HO2>*<RO213>+K165*<NO>*<RO239>+2.*K167*<RO2T> +!*<RO239>+TPK%CF8*K168*<NO>*<RO214>+2.*K169*<RO2T>*<RO214>+K170*<HO2>*<RO214>+K +!172*<RO2T>*<RO215>+K174*<NO>*<RO216>+2.*K175*<RO2T>*<RO216>+K176*<HO2>*<RO216> +!+K178*<RO2T>*<RO217>+K181*<RO2T>*<RO218>+K184*<RO2T>*<RO219>+TPK%CF18*K186*<NO +!>*<RO220>+2.*K187*<RO2T>*<RO220>+K188*<HO2>*<RO220>+K190*<RO2T>*<RO221>+K193*< +!RO2T>*<RO222>+K196*<RO2T>*<RO223>+K199*<RO2T>*<RO224>+K202*<RO2T>*<RO225>+K204 +!*<NO>*<RO226>+2.*K205*<RO2T>*<RO226>+K206*<HO2>*<RO226>+K208*<RO2T>*<RO227>+K2 +!11*<RO2T>*<RO228>+TPK%CF30*K213*<NO>*<RO229>+2.*K214*<RO2T>*<RO229>+K215*<HO2> +!*<RO229>+K216*<NO>*<RO240>+2.*K217*<RO2T>*<RO240>+K218*<HO2>*<RO240>+2.*K219*< +!RO2T>*<RO230>+K220*<HO2>*<RO230>+K222*<RO2T>*<RO231>+TPK%CF34*K224*<NO>*<RO232 +!>+2.*K225*<RO2T>*<RO232>+K226*<HO2>*<RO232>+K228*<RO2T>*<RO241>+K230*<RO233>+K +!232*<RO2T>*<RO233>+K235*<RO2T>*<RO242>+K237*<RO234>+K239*<RO2T>*<RO234>+K242*< +!RO2T>*<RO243>+K244*<RO235>+K246*<RO2T>*<RO235>+K249*<RO2T>*<RO244>+K251*<RO236 +!>+K253*<RO2T>*<RO236>+K256*<RO2T>*<RO245>+K258*<RO237>+K260*<RO2T>*<RO237>+K26 +!3*<RO2T>*<RO246>+K265*<RO238>+K267*<RO2T>*<RO238>+K270*<RO2T>*<RO247>+K272*<OH +!>*<MVK>+K273*<OH>*<MCR>+K274*<OH>*<MGLY>+K275*<NO3>*<MCR>+K276*<MGLY>+K277*<NO +!>*<RO248>+K278*<NO3>*<MGLY>+2.*K280*<RO2T>*<RO248>+0.28*K281*<O3>*<MVK>+0.41*K +!282*<O3>*<MCR>+0.3*K283*<O>*<MVK>+0.15*K284*<O>*<MCR>+K286*<RO2T>*<RO249>+K288 +!*<NO>*<RO250>+2.*K290*<RO2T>*<RO250>+K292*<HO2>*<RO251>+K295*<HO2>*<RO252>+K29 +!7*<NO>*<RO253>+2.*K298*<HO2>*<RO253>+K299*<RO2T>*<RO253>+K302*<RO2T>*<RO254>+K +!304*<OH>*<RPR1>+K305*<OH>*<RP16>+K307*<NO3>*<RPR1>+K308*<RPR1>+K309*<NO>*<RO25 +!5>+2.*K311*<RO2T>*<RO255>+K312*<OH>*<RPR3>+K313*<NO3>*<RPR3>+K317*<PAN8>+K319* +!<RO2T>*<RO256>+K324*<OH>*<RPR8>+K327*<NO3>*<RPR8>+K329*<RPR8>+K330*<RPR8>+K331 +!*<NO>*<RO257>+2.*K333*<RO2T>*<RO257>+K338*<NO3>*<RP16>+K342*<RO2T>*<RO258>+K34 +!3*<PAN7>+K344*<NO>*<RO230> + PPROD(:,85) = +TPK%K043(:)*PCONC(:,15)*TPK%CH4(:)+TPK%K049(:)*PCONC(:,15)*PCON& +&C(:,16)+TPK%K050(:)*PCONC(:,8)*PCONC(:,16)+TPK%K052(:)*TPK%O(:)*PCONC(:,16)+TP& +&K%CF2*TPK%K053(:)*PCONC(:,15)*PCONC(:,33)+TPK%K054(:)*PCONC(:,15)*PCONC(:,17)+& +&TPK%K055(:)*PCONC(:,8)*PCONC(:,17)+0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+0.2& +&*TPK%K057(:)*TPK%O(:)*PCONC(:,17)+TPK%K058(:)*PCONC(:,15)*PCONC(:,19)+TPK%K059& +&(:)*PCONC(:,29)+TPK%K060(:)*PCONC(:,15)*PCONC(:,29)+TPK%K061(:)*PCONC(:,8)*PCO& +&NC(:,29)+TPK%K062(:)*PCONC(:,15)*PCONC(:,30)+2.*TPK%K063(:)*PCONC(:,30)+TPK%K0& +&64(:)*PCONC(:,15)*PCONC(:,35)+TPK%K065(:)*PCONC(:,8)*PCONC(:,35)+0.366*TPK%K06& +&6(:)*PCONC(:,3)*PCONC(:,35)+TPK%K068(:)*PCONC(:,15)*PCONC(:,38)+TPK%K069(:)*PC& +&ONC(:,15)*PCONC(:,34)+TPK%K070(:)*PCONC(:,15)*PCONC(:,31)+2.*TPK%K071(:)*PCONC& +&(:,31)+0.1*TPK%K073(:)*PCONC(:,15)*PCONC(:,24)+TPK%K074(:)*PCONC(:,15)*PCONC(:& +&,18)+TPK%K075(:)*PCONC(:,8)*PCONC(:,18)+0.28*TPK%K076(:)*PCONC(:,3)*PCONC(:,18& +&)+0.2*TPK%K077(:)*TPK%O(:)*PCONC(:,18)+TPK%K078(:)*PCONC(:,15)*PCONC(:,20)+0.0& +&6*TPK%K079(:)*PCONC(:,15)*PCONC(:,23)+TPK%CF45*TPK%K082(:)*PCONC(:,15)*PCONC(:& +&,25)+0.1*TPK%K083(:)*PCONC(:,15)*PCONC(:,26)+TPK%K084(:)*PCONC(:,15)*PCONC(:,3& +&6)+TPK%K085(:)*PCONC(:,8)*PCONC(:,36)+0.445*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)& +&+TPK%K088(:)*PCONC(:,15)*PCONC(:,37)+TPK%K089(:)*PCONC(:,8)*PCONC(:,37)+0.89*T& +&PK%K090(:)*PCONC(:,3)*PCONC(:,37)+0.1*TPK%K092(:)*PCONC(:,15)*PCONC(:,27)+TPK%& +&K093(:)*PCONC(:,15)*PCONC(:,21)+TPK%K096(:)*PCONC(:,85)*PCONC(:,85)+TPK%K097(:& +&)*TPK%RAD2(:)+TPK%K098(:)*TPK%RAD3(:)+TPK%K099(:)*TPK%RAD4(:)+TPK%K100(:)*TPK%& +&RAD5(:)+TPK%K101(:)*TPK%RAD6(:)+TPK%K102(:)*TPK%RAD7(:)+TPK%K111(:)*PCONC(:,85& +&)*PCONC(:,86)+TPK%K114(:)*PCONC(:,85)*TPK%RO22(:)+TPK%K117(:)*PCONC(:,85)*TPK%& +&RO23(:)+TPK%K120(:)*PCONC(:,85)*TPK%RO24(:)+TPK%K123(:)*PCONC(:,85)*PCONC(:,87& +&)+TPK%K125(:)*PCONC(:,1)*TPK%RO26(:)+TPK%K135(:)*PCONC(:,77)+TPK%K136(:)*PCONC& +&(:,78)+TPK%K137(:)*PCONC(:,79)+TPK%K138(:)*PCONC(:,84)+1.0000000*TPK%K139(:)*P& +&CONC(:,76)+TPK%K140(:)*PCONC(:,81)+TPK%K141(:)*PCONC(:,80)+2.*TPK%K143(:)*PCON& +&C(:,85)*TPK%RO26(:)+TPK%K144(:)*PCONC(:,1)*TPK%RO27(:)+2.*TPK%K145(:)*PCONC(:,& +&85)*TPK%RO27(:)+TPK%K146(:)*PCONC(:,10)*TPK%RO27(:)+TPK%K147(:)*PCONC(:,1)*TPK& +&%RO28(:)+2.*TPK%K149(:)*PCONC(:,85)*TPK%RO28(:)+TPK%K151(:)*PCONC(:,85)*TPK%RO& +&29(:)+TPK%K154(:)*PCONC(:,85)*TPK%RO210(:)+TPK%K157(:)*PCONC(:,85)*TPK%RO211(:& +&)+TPK%K160(:)*PCONC(:,85)*TPK%RO212(:)+TPK%K162(:)*PCONC(:,1)*TPK%RO213(:)+2.*& +&TPK%K163(:)*PCONC(:,85)*TPK%RO213(:)+TPK%K164(:)*PCONC(:,10)*TPK%RO213(:)+TPK%& +&K165(:)*PCONC(:,1)*TPK%RO239(:)+2.*TPK%K167(:)*PCONC(:,85)*TPK%RO239(:)+TPK%CF& +&8*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:)+2.*TPK%K169(:)*PCONC(:,85)*TPK%RO214(:)+& +&TPK%K170(:)*PCONC(:,10)*TPK%RO214(:)+TPK%K172(:)*PCONC(:,85)*TPK%RO215(:)+TPK%& +&K174(:)*PCONC(:,1)*TPK%RO216(:)+2.*TPK%K175(:)*PCONC(:,85)*TPK%RO216(:)+TPK%K1& +&76(:)*PCONC(:,10)*TPK%RO216(:)+TPK%K178(:)*PCONC(:,85)*TPK%RO217(:)+TPK%K181(:& +&)*PCONC(:,85)*TPK%RO218(:)+TPK%K184(:)*PCONC(:,85)*TPK%RO219(:)+TPK%CF18*TPK%K& +&186(:)*PCONC(:,1)*TPK%RO220(:)+2.*TPK%K187(:)*PCONC(:,85)*TPK%RO220(:)+TPK%K18& +&8(:)*PCONC(:,10)*TPK%RO220(:)+TPK%K190(:)*PCONC(:,85)*TPK%RO221(:)+TPK%K193(:)& +&*PCONC(:,85)*TPK%RO222(:)+TPK%K196(:)*PCONC(:,85)*TPK%RO223(:)+TPK%K199(:)*PCO& +&NC(:,85)*TPK%RO224(:)+TPK%K202(:)*PCONC(:,85)*TPK%RO225(:)+TPK%K204(:)*PCONC(:& +&,1)*TPK%RO226(:)+2.*TPK%K205(:)*PCONC(:,85)*TPK%RO226(:)+TPK%K206(:)*PCONC(:,1& +&0)*TPK%RO226(:)+TPK%K208(:)*PCONC(:,85)*TPK%RO227(:)+TPK%K211(:)*PCONC(:,85)*T& +&PK%RO228(:)+TPK%CF30*TPK%K213(:)*PCONC(:,1)*TPK%RO229(:)+2.*TPK%K214(:)*PCONC(& +&:,85)*TPK%RO229(:)+TPK%K215(:)*PCONC(:,10)*TPK%RO229(:)+TPK%K216(:)*PCONC(:,1)& +&*TPK%RO240(:)+2.*TPK%K217(:)*PCONC(:,85)*TPK%RO240(:)+TPK%K218(:)*PCONC(:,10)*& +&TPK%RO240(:)+2.*TPK%K219(:)*PCONC(:,85)*TPK%RO230(:)+TPK%K220(:)*PCONC(:,10)*T& +&PK%RO230(:)+TPK%K222(:)*PCONC(:,85)*TPK%RO231(:)+TPK%CF34*TPK%K224(:)*PCONC(:,& +&1)*TPK%RO232(:)+2.*TPK%K225(:)*PCONC(:,85)*TPK%RO232(:)+TPK%K226(:)*PCONC(:,10& +&)*TPK%RO232(:)+TPK%K228(:)*PCONC(:,85)*TPK%RO241(:)+TPK%K230(:)*TPK%RO233(:)+T& +&PK%K232(:)*PCONC(:,85)*TPK%RO233(:)+TPK%K235(:)*PCONC(:,85)*TPK%RO242(:)+TPK%K& +&237(:)*TPK%RO234(:)+TPK%K239(:)*PCONC(:,85)*TPK%RO234(:)+TPK%K242(:)*PCONC(:,8& +&5)*TPK%RO243(:)+TPK%K244(:)*TPK%RO235(:)+TPK%K246(:)*PCONC(:,85)*TPK%RO235(:)+& +&TPK%K249(:)*PCONC(:,85)*TPK%RO244(:)+TPK%K251(:)*TPK%RO236(:)+TPK%K253(:)*PCON& +&C(:,85)*TPK%RO236(:)+TPK%K256(:)*PCONC(:,85)*TPK%RO245(:)+TPK%K258(:)*TPK%RO23& +&7(:)+TPK%K260(:)*PCONC(:,85)*TPK%RO237(:)+TPK%K263(:)*PCONC(:,85)*TPK%RO246(:)& +&+TPK%K265(:)*TPK%RO238(:)+TPK%K267(:)*PCONC(:,85)*TPK%RO238(:)+TPK%K270(:)*PCO& +&NC(:,85)*TPK%RO247(:)+TPK%K272(:)*PCONC(:,15)*PCONC(:,39)+TPK%K273(:)*PCONC(:,& +&15)*PCONC(:,40)+TPK%K274(:)*PCONC(:,15)*PCONC(:,41)+TPK%K275(:)*PCONC(:,8)*PCO& +&NC(:,40)+TPK%K276(:)*PCONC(:,41)+TPK%K277(:)*PCONC(:,1)*TPK%RO248(:)+TPK%K278(& +&:)*PCONC(:,8)*PCONC(:,41)+2.*TPK%K280(:)*PCONC(:,85)*TPK%RO248(:)+0.28*TPK%K28& +&1(:)*PCONC(:,3)*PCONC(:,39)+0.41*TPK%K282(:)*PCONC(:,3)*PCONC(:,40)+0.3*TPK%K2& +&83(:)*TPK%O(:)*PCONC(:,39)+0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40)+TPK%K286(:)*P& +&CONC(:,85)*TPK%RO249(:)+TPK%K288(:)*PCONC(:,1)*TPK%RO250(:)+2.*TPK%K290(:)*PCO& +&NC(:,85)*TPK%RO250(:)+TPK%K292(:)*PCONC(:,10)*TPK%RO251(:)+TPK%K295(:)*PCONC(:& +&,10)*TPK%RO252(:)+TPK%K297(:)*PCONC(:,1)*TPK%RO253(:)+2.*TPK%K298(:)*PCONC(:,1& +&0)*TPK%RO253(:)+TPK%K299(:)*PCONC(:,85)*TPK%RO253(:)+TPK%K302(:)*PCONC(:,85)*T& +&PK%RO254(:)+TPK%K304(:)*PCONC(:,15)*PCONC(:,69)+TPK%K305(:)*PCONC(:,15)*PCONC(& +&:,74)+TPK%K307(:)*PCONC(:,8)*PCONC(:,69)+TPK%K308(:)*PCONC(:,69)+TPK%K309(:)*P& +&CONC(:,1)*TPK%RO255(:)+2.*TPK%K311(:)*PCONC(:,85)*TPK%RO255(:)+TPK%K312(:)*PCO& +&NC(:,15)*PCONC(:,57)+TPK%K313(:)*PCONC(:,8)*PCONC(:,57)+TPK%K317(:)*PCONC(:,83& +&)+TPK%K319(:)*PCONC(:,85)*TPK%RO256(:)+TPK%K324(:)*PCONC(:,15)*PCONC(:,71)+TPK& +&%K327(:)*PCONC(:,8)*PCONC(:,71)+TPK%K329(:)*PCONC(:,71)+TPK%K330(:)*PCONC(:,71& +&)+TPK%K331(:)*PCONC(:,1)*TPK%RO257(:)+2.*TPK%K333(:)*PCONC(:,85)*TPK%RO257(:)+& +&TPK%K338(:)*PCONC(:,8)*PCONC(:,74)+TPK%K342(:)*PCONC(:,85)*TPK%RO258(:)+TPK%K3& +&43(:)*PCONC(:,82)+TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) +!PLOSS(RO2T) = +K094*<HO2>+K095*<NO>+K096*<RO2T>+K096*<RO2T>+K111*<RO21>+K114*< +!RO22>+K117*<RO23>+K120*<RO24>+K123*<RO25>+K143*<RO26>+K145*<RO27>+K149*<RO28>+ +!K151*<RO29>+K154*<RO210>+K157*<RO211>+K160*<RO212>+K163*<RO213>+K167*<RO239>+K +!169*<RO214>+K172*<RO215>+K175*<RO216>+K178*<RO217>+K181*<RO218>+K184*<RO219>+K +!187*<RO220>+K190*<RO221>+K193*<RO222>+K196*<RO223>+K199*<RO224>+K202*<RO225>+K +!205*<RO226>+K208*<RO227>+K211*<RO228>+K214*<RO229>+K217*<RO240>+K219*<RO230>+K +!222*<RO231>+K225*<RO232>+K228*<RO241>+K232*<RO233>+K235*<RO242>+K239*<RO234>+K +!242*<RO243>+K246*<RO235>+K249*<RO244>+K253*<RO236>+K256*<RO245>+K260*<RO237>+K +!263*<RO246>+K267*<RO238>+K270*<RO247>+K280*<RO248>+K286*<RO249>+K290*<RO250>+K +!293*<RO251>+K296*<RO252>+K299*<RO253>+K302*<RO254>+K311*<RO255>+K319*<RO256>+K +!333*<RO257>+K342*<RO258> + PLOSS(:,85) = +TPK%K094(:)*PCONC(:,10)+TPK%K095(:)*PCONC(:,1)+TPK%K096(:)*PCON& +&C(:,85)+TPK%K096(:)*PCONC(:,85)+TPK%K111(:)*PCONC(:,86)+TPK%K114(:)*TPK%RO22(:& +&)+TPK%K117(:)*TPK%RO23(:)+TPK%K120(:)*TPK%RO24(:)+TPK%K123(:)*PCONC(:,87)+TPK%& +&K143(:)*TPK%RO26(:)+TPK%K145(:)*TPK%RO27(:)+TPK%K149(:)*TPK%RO28(:)+TPK%K151(:& +&)*TPK%RO29(:)+TPK%K154(:)*TPK%RO210(:)+TPK%K157(:)*TPK%RO211(:)+TPK%K160(:)*TP& +&K%RO212(:)+TPK%K163(:)*TPK%RO213(:)+TPK%K167(:)*TPK%RO239(:)+TPK%K169(:)*TPK%R& +&O214(:)+TPK%K172(:)*TPK%RO215(:)+TPK%K175(:)*TPK%RO216(:)+TPK%K178(:)*TPK%RO21& +&7(:)+TPK%K181(:)*TPK%RO218(:)+TPK%K184(:)*TPK%RO219(:)+TPK%K187(:)*TPK%RO220(:& +&)+TPK%K190(:)*TPK%RO221(:)+TPK%K193(:)*TPK%RO222(:)+TPK%K196(:)*TPK%RO223(:)+T& +&PK%K199(:)*TPK%RO224(:)+TPK%K202(:)*TPK%RO225(:)+TPK%K205(:)*TPK%RO226(:)+TPK%& +&K208(:)*TPK%RO227(:)+TPK%K211(:)*TPK%RO228(:)+TPK%K214(:)*TPK%RO229(:)+TPK%K21& +&7(:)*TPK%RO240(:)+TPK%K219(:)*TPK%RO230(:)+TPK%K222(:)*TPK%RO231(:)+TPK%K225(:& +&)*TPK%RO232(:)+TPK%K228(:)*TPK%RO241(:)+TPK%K232(:)*TPK%RO233(:)+TPK%K235(:)*T& +&PK%RO242(:)+TPK%K239(:)*TPK%RO234(:)+TPK%K242(:)*TPK%RO243(:)+TPK%K246(:)*TPK%& +&RO235(:)+TPK%K249(:)*TPK%RO244(:)+TPK%K253(:)*TPK%RO236(:)+TPK%K256(:)*TPK%RO2& +&45(:)+TPK%K260(:)*TPK%RO237(:)+TPK%K263(:)*TPK%RO246(:)+TPK%K267(:)*TPK%RO238(& +&:)+TPK%K270(:)*TPK%RO247(:)+TPK%K280(:)*TPK%RO248(:)+TPK%K286(:)*TPK%RO249(:)+& +&TPK%K290(:)*TPK%RO250(:)+TPK%K293(:)*TPK%RO251(:)+TPK%K296(:)*TPK%RO252(:)+TPK& +&%K299(:)*TPK%RO253(:)+TPK%K302(:)*TPK%RO254(:)+TPK%K311(:)*TPK%RO255(:)+TPK%K3& +&19(:)*TPK%RO256(:)+TPK%K333(:)*TPK%RO257(:)+TPK%K342(:)*TPK%RO258(:) +! +!PPROD(RO21) = +K043*<OH>*<CH4>+0.6*K052*<O>*<ETHE>+K147*<NO>*<RO28>+K149*<RO2T +!>*<RO28>+KTC47*<WC_RO21>+KTR47*<WR_RO21> + PPROD(:,86) = +TPK%K043(:)*PCONC(:,15)*TPK%CH4(:)+0.6*TPK%K052(:)*TPK%O(:)*PCO& +&NC(:,16)+TPK%K147(:)*PCONC(:,1)*TPK%RO28(:)+TPK%K149(:)*PCONC(:,85)*TPK%RO28(:& +&)+TPK%KTC47(:)*PCONC(:,103)+TPK%KTR47(:)*PCONC(:,140) +!PLOSS(RO21) = +K110*<NO>+K111*<RO2T>+K112*<HO2>+KTC16+KTR16 + PLOSS(:,86) = +TPK%K110(:)*PCONC(:,1)+TPK%K111(:)*PCONC(:,85)+TPK%K112(:)*PCON& +&C(:,10)+TPK%KTC16(:)+TPK%KTR16(:) +! +!PPROD(RO25) = +0.28*K056*<O3>*<OLEL>+0.1*K057*<O>*<OLEL>+K058*<OH>*<ALKL>+K059 +!*<ALD2>+K063*<KETL>+K071*<KETH>+K125*<NO>*<RO26>+K143*<RO2T>*<RO26>+KTC48*<WC_ +!RO25>+KTR48*<WR_RO25> + PPROD(:,87) = +0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+0.1*TPK%K057(:)*TPK%O(:& +&)*PCONC(:,17)+TPK%K058(:)*PCONC(:,15)*PCONC(:,19)+TPK%K059(:)*PCONC(:,29)+TPK%& +&K063(:)*PCONC(:,30)+TPK%K071(:)*PCONC(:,31)+TPK%K125(:)*PCONC(:,1)*TPK%RO26(:)& +&+TPK%K143(:)*PCONC(:,85)*TPK%RO26(:)+TPK%KTC48(:)*PCONC(:,104)+TPK%KTR48(:)*PC& +&ONC(:,141) +!PLOSS(RO25) = +K122*<NO>+K123*<RO2T>+K124*<HO2>+KTC17+KTR17 + PLOSS(:,87) = +TPK%K122(:)*PCONC(:,1)+TPK%K123(:)*PCONC(:,85)+TPK%K124(:)*PCON& +&C(:,10)+TPK%KTC17(:)+TPK%KTR17(:) +! +!PPROD(WC_O3) = +KTC1*<O3> + PPROD(:,88) = +TPK%KTC1(:)*PCONC(:,3) +!PLOSS(WC_O3) = +KTC32+KC6*<WC_HO2>+KC25*<WC_SO2> + PLOSS(:,88) = +TPK%KTC32(:)+TPK%KC6(:)*PCONC(:,99)+TPK%KC25(:)*PCONC(:,101) +! +!PPROD(WC_H2O2) = +KTC2*<H2O2>+KC2*<WC_OH>*<WC_OH>+KC5*<WC_HO2>*<WC_HO2>+KC29*< +!WC_RO25>*<WC_RO25>+KC37*<WC_OH>*<WC_KETL>+0.5*KC39*<WC_OH>*<WC_ORA2>+0.29*KC41 +!*<WC_OH>*<WC_ACID>+0.3*KC43*<WC_OH>*<WC_UR21>+0.45*KC45*<WC_OH>*<WC_RP16> + PPROD(:,89) = +TPK%KTC2(:)*PCONC(:,12)+TPK%KC2(:)*PCONC(:,98)*PCONC(:,98)+TPK%& +&KC5(:)*PCONC(:,99)*PCONC(:,99)+TPK%KC29(:)*PCONC(:,104)*PCONC(:,104)+TPK%KC37(& +&:)*PCONC(:,98)*PCONC(:,112)+0.5*TPK%KC39(:)*PCONC(:,98)*PCONC(:,114)+0.29*TPK%& +&KC41(:)*PCONC(:,98)*PCONC(:,115)+0.3*TPK%KC43(:)*PCONC(:,98)*PCONC(:,117)+0.45& +&*TPK%KC45(:)*PCONC(:,98)*PCONC(:,116) +!PLOSS(WC_H2O2) = +KTC33+KC1+KC4*<WC_OH>+KC26*<WC_SO2> + PLOSS(:,89) = +TPK%KTC33(:)+TPK%KC1(:)+TPK%KC4(:)*PCONC(:,98)+TPK%KC26(:)*PCON& +&C(:,101) +! +!PPROD(WC_NO) = +KTC3*<NO> + PPROD(:,90) = +TPK%KTC3(:)*PCONC(:,1) +!PLOSS(WC_NO) = +KTC34 + PLOSS(:,90) = +TPK%KTC34(:) ! RETURN END SUBROUTINE SUB8 ! SUBROUTINE SUB9 ! -!Indices 91 a 91 +!Indices 91 a 100 +! +! +!PPROD(WC_NO2) = +KTC4*<NO2>+KC8*<WC_OH>*<WC_HONO>+KC10*<WC_HNO4>+KC13*<WC_HNO3 +!> + PPROD(:,91) = +TPK%KTC4(:)*PCONC(:,2)+TPK%KC8(:)*PCONC(:,98)*PCONC(:,94)+TPK%K& +&C10(:)*PCONC(:,96)+TPK%KC13(:)*PCONC(:,95) +!PLOSS(WC_NO2) = +KTC35+KC9*<WC_HO2> + PLOSS(:,91) = +TPK%KTC35(:)+TPK%KC9(:)*PCONC(:,99) +! +!PPROD(WC_NO3) = +KTC5*<NO3> + PPROD(:,92) = +TPK%KTC5(:)*PCONC(:,8) +!PLOSS(WC_NO3) = +KTC36+KC15*<WC_H2SO4>+KC16*<WC_SO2> + PLOSS(:,92) = +TPK%KTC36(:)+TPK%KC15(:)*PCONC(:,102)+TPK%KC16(:)*PCONC(:,101) +! +!PPROD(WC_N2O5) = +KTC6*<N2O5> + PPROD(:,93) = +TPK%KTC6(:)*PCONC(:,7) +!PLOSS(WC_N2O5) = +KTC37+KC14 + PLOSS(:,93) = +TPK%KTC37(:)+TPK%KC14(:) ! +!PPROD(WC_HONO) = +KTC7*<HONO>+KC11*<WC_HNO4> + PPROD(:,94) = +TPK%KTC7(:)*PCONC(:,4)+TPK%KC11(:)*PCONC(:,96) +!PLOSS(WC_HONO) = +KTC38+KC8*<WC_OH> + PLOSS(:,94) = +TPK%KTC38(:)+TPK%KC8(:)*PCONC(:,98) +! +!PPROD(WC_HNO3) = +KTC8*<HNO3>+KC12*<WC_SO2>*<WC_HNO4>+KC14*<WC_N2O5>+KC14*<WC_ +!N2O5>+KC15*<WC_H2SO4>*<WC_NO3>+KC16*<WC_SO2>*<WC_NO3> + PPROD(:,95) = +TPK%KTC8(:)*PCONC(:,5)+TPK%KC12(:)*PCONC(:,101)*PCONC(:,96)+TPK& +&%KC14(:)*PCONC(:,93)+TPK%KC14(:)*PCONC(:,93)+TPK%KC15(:)*PCONC(:,102)*PCONC(:,& +&92)+TPK%KC16(:)*PCONC(:,101)*PCONC(:,92) +!PLOSS(WC_HNO3) = +KTC39+KC13 + PLOSS(:,95) = +TPK%KTC39(:)+TPK%KC13(:) +! +!PPROD(WC_HNO4) = +KTC9*<HNO4>+KC9*<WC_HO2>*<WC_NO2> + PPROD(:,96) = +TPK%KTC9(:)*PCONC(:,6)+TPK%KC9(:)*PCONC(:,99)*PCONC(:,91) +!PLOSS(WC_HNO4) = +KTC40+KC10+KC11+KC12*<WC_SO2> + PLOSS(:,96) = +TPK%KTC40(:)+TPK%KC10(:)+TPK%KC11(:)+TPK%KC12(:)*PCONC(:,101) ! -!PPROD(WR_AHMS) = +KR21*<WR_SO2>*<WR_HCHO> - PPROD(:,91) = +TPK%KR21(:)*PCONC(:,80)*PCONC(:,82) -!PLOSS(WR_AHMS) = +KR22+KR23*<WR_OH> - PLOSS(:,91) = +TPK%KR22(:)+TPK%KR23(:)*PCONC(:,77) +!PPROD(WC_NH3) = +KTC10*<NH3> + PPROD(:,97) = +TPK%KTC10(:)*PCONC(:,9) +!PLOSS(WC_NH3) = +KTC41 + PLOSS(:,97) = +TPK%KTC41(:) +! +!PPROD(WC_OH) = +KTC11*<OH>+KC1*<WC_H2O2>+KC1*<WC_H2O2>+KC6*<WC_HO2>*<WC_O3>+KC +!13*<WC_HNO3>+KC24*<WC_ASO4> + PPROD(:,98) = +TPK%KTC11(:)*PCONC(:,15)+TPK%KC1(:)*PCONC(:,89)+TPK%KC1(:)*PCON& +&C(:,89)+TPK%KC6(:)*PCONC(:,99)*PCONC(:,88)+TPK%KC13(:)*PCONC(:,95)+TPK%KC24(:)& +&*PCONC(:,121) +!PLOSS(WC_OH) = +KTC42+KC2*<WC_OH>+KC2*<WC_OH>+KC3*<WC_HO2>+KC4*<WC_H2O2>+KC7*< +!WC_SO2>+KC8*<WC_HONO>+KC19*<WC_AHMS>+KC30*<WC_MEOH>+KC31*<WC_ETOH>+KC32*<WC_AL +!CH>+KC33*<WC_HCHO>+KC34*<WC_ALD2>+KC35*<WC_GLY>+KC36*<WC_MGLY>+KC37*<WC_KETL>+ +!KC38*<WC_ORA1>+KC39*<WC_ORA2>+KC40*<WC_ACID>+KC41*<WC_ACID>+KC42*<WC_UR28>+KC4 +!3*<WC_UR21>+KC44*<WC_RP16>+KC45*<WC_RP16>+KC46*<WC_ACID2> + PLOSS(:,98) = +TPK%KTC42(:)+TPK%KC2(:)*PCONC(:,98)+TPK%KC2(:)*PCONC(:,98)+TPK%& +&KC3(:)*PCONC(:,99)+TPK%KC4(:)*PCONC(:,89)+TPK%KC7(:)*PCONC(:,101)+TPK%KC8(:)*P& +&CONC(:,94)+TPK%KC19(:)*PCONC(:,124)+TPK%KC30(:)*PCONC(:,105)+TPK%KC31(:)*PCONC& +&(:,106)+TPK%KC32(:)*PCONC(:,107)+TPK%KC33(:)*PCONC(:,108)+TPK%KC34(:)*PCONC(:,& +&109)+TPK%KC35(:)*PCONC(:,110)+TPK%KC36(:)*PCONC(:,111)+TPK%KC37(:)*PCONC(:,112& +&)+TPK%KC38(:)*PCONC(:,113)+TPK%KC39(:)*PCONC(:,114)+TPK%KC40(:)*PCONC(:,115)+T& +&PK%KC41(:)*PCONC(:,115)+TPK%KC42(:)*PCONC(:,118)+TPK%KC43(:)*PCONC(:,117)+TPK%& +&KC44(:)*PCONC(:,116)+TPK%KC45(:)*PCONC(:,116)+TPK%KC46(:)*PCONC(:,119) +! +!PPROD(WC_HO2) = +KTC12*<HO2>+KC4*<WC_OH>*<WC_H2O2>+KC10*<WC_HNO4>+KC19*<WC_OH> +!*<WC_AHMS>+2.00*KC27*<WC_RO21>*<WC_RO21>+KC29*<WC_RO25>*<WC_RO25>+KC30*<WC_OH> +!*<WC_MEOH>+KC31*<WC_OH>*<WC_ETOH>+KC32*<WC_OH>*<WC_ALCH>+KC33*<WC_OH>*<WC_HCHO +!>+KC35*<WC_OH>*<WC_GLY>+KC36*<WC_OH>*<WC_MGLY>+KC37*<WC_OH>*<WC_KETL>+KC38*<WC +!_OH>*<WC_ORA1>+0.11*KC41*<WC_OH>*<WC_ACID>+KC42*<WC_OH>*<WC_UR28>+0.81*KC43*<W +!C_OH>*<WC_UR21>+KC44*<WC_OH>*<WC_RP16>+0.71*KC45*<WC_OH>*<WC_RP16> + PPROD(:,99) = +TPK%KTC12(:)*PCONC(:,10)+TPK%KC4(:)*PCONC(:,98)*PCONC(:,89)+TPK& +&%KC10(:)*PCONC(:,96)+TPK%KC19(:)*PCONC(:,98)*PCONC(:,124)+2.00*TPK%KC27(:)*PCO& +&NC(:,103)*PCONC(:,103)+TPK%KC29(:)*PCONC(:,104)*PCONC(:,104)+TPK%KC30(:)*PCONC& +&(:,98)*PCONC(:,105)+TPK%KC31(:)*PCONC(:,98)*PCONC(:,106)+TPK%KC32(:)*PCONC(:,9& +&8)*PCONC(:,107)+TPK%KC33(:)*PCONC(:,98)*PCONC(:,108)+TPK%KC35(:)*PCONC(:,98)*P& +&CONC(:,110)+TPK%KC36(:)*PCONC(:,98)*PCONC(:,111)+TPK%KC37(:)*PCONC(:,98)*PCONC& +&(:,112)+TPK%KC38(:)*PCONC(:,98)*PCONC(:,113)+0.11*TPK%KC41(:)*PCONC(:,98)*PCON& +&C(:,115)+TPK%KC42(:)*PCONC(:,98)*PCONC(:,118)+0.81*TPK%KC43(:)*PCONC(:,98)*PCO& +&NC(:,117)+TPK%KC44(:)*PCONC(:,98)*PCONC(:,116)+0.71*TPK%KC45(:)*PCONC(:,98)*PC& +&ONC(:,116) +!PLOSS(WC_HO2) = +KTC43+KC3*<WC_OH>+KC5*<WC_HO2>+KC5*<WC_HO2>+KC6*<WC_O3>+KC9*< +!WC_NO2>+KC21*<WC_ASO5> + PLOSS(:,99) = +TPK%KTC43(:)+TPK%KC3(:)*PCONC(:,98)+TPK%KC5(:)*PCONC(:,99)+TPK%& +&KC5(:)*PCONC(:,99)+TPK%KC6(:)*PCONC(:,88)+TPK%KC9(:)*PCONC(:,91)+TPK%KC21(:)*P& +&CONC(:,122) +! +!PPROD(WC_CO2) = +KTC13*<CO2>+KC34*<WC_OH>*<WC_ALD2>+KC37*<WC_OH>*<WC_KETL>+KC3 +!8*<WC_OH>*<WC_ORA1>+KC40*<WC_OH>*<WC_ACID>+2*KC42*<WC_OH>*<WC_UR28>+0.43*KC43* +!<WC_OH>*<WC_UR21>+2*KC45*<WC_OH>*<WC_RP16> + PPROD(:,100) = +TPK%KTC13(:)*TPK%CO2(:)+TPK%KC34(:)*PCONC(:,98)*PCONC(:,109)+T& +&PK%KC37(:)*PCONC(:,98)*PCONC(:,112)+TPK%KC38(:)*PCONC(:,98)*PCONC(:,113)+TPK%K& +&C40(:)*PCONC(:,98)*PCONC(:,115)+2*TPK%KC42(:)*PCONC(:,98)*PCONC(:,118)+0.43*TP& +&K%KC43(:)*PCONC(:,98)*PCONC(:,117)+2*TPK%KC45(:)*PCONC(:,98)*PCONC(:,116) +!PLOSS(WC_CO2) = +KTC44 + PLOSS(:,100) = +TPK%KTC44(:) ! RETURN END SUBROUTINE SUB9 ! -END SUBROUTINE CH_PRODLOSS_AQ +SUBROUTINE SUB10 ! +!Indices 101 a 110 ! -!======================================================================== ! -!! ########################## - MODULE MODI_CH_PRODLOSS_GAZ -!! ########################## -INTERFACE -SUBROUTINE CH_PRODLOSS_GAZ(PTIME,PCONC,PPROD,PLOSS,KMI,KVECNPT,KEQ) -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ) :: PPROD, PLOSS -INTEGER, INTENT(IN) :: KMI -END SUBROUTINE CH_PRODLOSS_GAZ -END INTERFACE -END MODULE MODI_CH_PRODLOSS_GAZ +!PPROD(WC_SO2) = +KTC14*<SO2>+KC18*<WC_AHMS>+KC19*<WC_OH>*<WC_AHMS> + PPROD(:,101) = +TPK%KTC14(:)*PCONC(:,13)+TPK%KC18(:)*PCONC(:,124)+TPK%KC19(:)*& +&PCONC(:,98)*PCONC(:,124) +!PLOSS(WC_SO2) = +KTC45+KC7*<WC_OH>+KC12*<WC_HNO4>+KC16*<WC_NO3>+KC17*<WC_HCHO> +!+KC23*<WC_AHSO5>+KC25*<WC_O3>+KC26*<WC_H2O2>+KC28*<WC_RO21> + PLOSS(:,101) = +TPK%KTC45(:)+TPK%KC7(:)*PCONC(:,98)+TPK%KC12(:)*PCONC(:,96)+TP& +&K%KC16(:)*PCONC(:,92)+TPK%KC17(:)*PCONC(:,108)+TPK%KC23(:)*PCONC(:,123)+TPK%KC& +&25(:)*PCONC(:,88)+TPK%KC26(:)*PCONC(:,89)+TPK%KC28(:)*PCONC(:,103) +! +!PPROD(WC_H2SO4) = +KTC15*<H2SO4>+KC12*<WC_SO2>*<WC_HNO4>+2.00*KC23*<WC_SO2>*<W +!C_AHSO5>+KC24*<WC_ASO4>+KC25*<WC_O3>*<WC_SO2>+KC26*<WC_H2O2>*<WC_SO2> + PPROD(:,102) = +TPK%KTC15(:)*PCONC(:,14)+TPK%KC12(:)*PCONC(:,101)*PCONC(:,96)+& +&2.00*TPK%KC23(:)*PCONC(:,101)*PCONC(:,123)+TPK%KC24(:)*PCONC(:,121)+TPK%KC25(:& +&)*PCONC(:,88)*PCONC(:,101)+TPK%KC26(:)*PCONC(:,89)*PCONC(:,101) +!PLOSS(WC_H2SO4) = +KTC46+KC15*<WC_NO3> + PLOSS(:,102) = +TPK%KTC46(:)+TPK%KC15(:)*PCONC(:,92) +! +!PPROD(WC_RO21) = +KTC16*<RO21>+0.50*KC34*<WC_OH>*<WC_ALD2>+KC37*<WC_OH>*<WC_KE +!TL> + PPROD(:,103) = +TPK%KTC16(:)*PCONC(:,86)+0.50*TPK%KC34(:)*PCONC(:,98)*PCONC(:,& +&109)+TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) +!PLOSS(WC_RO21) = +KTC47+KC27*<WC_RO21>+KC27*<WC_RO21>+KC28*<WC_SO2> + PLOSS(:,103) = +TPK%KTC47(:)+TPK%KC27(:)*PCONC(:,103)+TPK%KC27(:)*PCONC(:,103)& +&+TPK%KC28(:)*PCONC(:,101) +! +!PPROD(WC_RO25) = +KTC17*<RO25>+0.50*KC34*<WC_OH>*<WC_ALD2>+KC40*<WC_OH>*<WC_AC +!ID> + PPROD(:,104) = +TPK%KTC17(:)*PCONC(:,87)+0.50*TPK%KC34(:)*PCONC(:,98)*PCONC(:,& +&109)+TPK%KC40(:)*PCONC(:,98)*PCONC(:,115) +!PLOSS(WC_RO25) = +KTC48+KC29*<WC_RO25>+KC29*<WC_RO25> + PLOSS(:,104) = +TPK%KTC48(:)+TPK%KC29(:)*PCONC(:,104)+TPK%KC29(:)*PCONC(:,104) +! +!PPROD(WC_MEOH) = +KTC18*<MEOH> + PPROD(:,105) = +TPK%KTC18(:)*PCONC(:,32) +!PLOSS(WC_MEOH) = +KTC49+KC30*<WC_OH> + PLOSS(:,105) = +TPK%KTC49(:)+TPK%KC30(:)*PCONC(:,98) +! +!PPROD(WC_ETOH) = +KTC19*<ETOH> + PPROD(:,106) = +TPK%KTC19(:)*PCONC(:,33) +!PLOSS(WC_ETOH) = +KTC50+KC31*<WC_OH> + PLOSS(:,106) = +TPK%KTC50(:)+TPK%KC31(:)*PCONC(:,98) +! +!PPROD(WC_ALCH) = +KTC20*<ALCH> + PPROD(:,107) = +TPK%KTC20(:)*PCONC(:,34) +!PLOSS(WC_ALCH) = +KTC51+KC32*<WC_OH> + PLOSS(:,107) = +TPK%KTC51(:)+TPK%KC32(:)*PCONC(:,98) +! +!PPROD(WC_HCHO) = +KTC21*<HCHO>+KC18*<WC_AHMS>+2.00*KC27*<WC_RO21>*<WC_RO21>+KC +!28*<WC_SO2>*<WC_RO21>+KC30*<WC_OH>*<WC_MEOH>+KC37*<WC_OH>*<WC_KETL> + PPROD(:,108) = +TPK%KTC21(:)*PCONC(:,28)+TPK%KC18(:)*PCONC(:,124)+2.00*TPK%KC2& +&7(:)*PCONC(:,103)*PCONC(:,103)+TPK%KC28(:)*PCONC(:,101)*PCONC(:,103)+TPK%KC30(& +&:)*PCONC(:,98)*PCONC(:,105)+TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) +!PLOSS(WC_HCHO) = +KTC52+KC17*<WC_SO2>+KC33*<WC_OH> + PLOSS(:,108) = +TPK%KTC52(:)+TPK%KC17(:)*PCONC(:,101)+TPK%KC33(:)*PCONC(:,98) +! +!PPROD(WC_ALD2) = +KTC22*<ALD2>+KC29*<WC_RO25>*<WC_RO25>+KC31*<WC_OH>*<WC_ETOH> +!+0.50*KC32*<WC_OH>*<WC_ALCH>+KC37*<WC_OH>*<WC_KETL>+0.29*KC41*<WC_OH>*<WC_ACID +!>+0.43*KC43*<WC_OH>*<WC_UR21> + PPROD(:,109) = +TPK%KTC22(:)*PCONC(:,29)+TPK%KC29(:)*PCONC(:,104)*PCONC(:,104)& +&+TPK%KC31(:)*PCONC(:,98)*PCONC(:,106)+0.50*TPK%KC32(:)*PCONC(:,98)*PCONC(:,107& +&)+TPK%KC37(:)*PCONC(:,98)*PCONC(:,112)+0.29*TPK%KC41(:)*PCONC(:,98)*PCONC(:,11& +&5)+0.43*TPK%KC43(:)*PCONC(:,98)*PCONC(:,117) +!PLOSS(WC_ALD2) = +KTC53+KC34*<WC_OH> + PLOSS(:,109) = +TPK%KTC53(:)+TPK%KC34(:)*PCONC(:,98) +! +!PPROD(WC_GLY) = +KTC23*<GLY> + PPROD(:,110) = +TPK%KTC23(:)*PCONC(:,42) +!PLOSS(WC_GLY) = +KTC54+KC35*<WC_OH> + PLOSS(:,110) = +TPK%KTC54(:)+TPK%KC35(:)*PCONC(:,98) ! -!======================================================================== +RETURN +END SUBROUTINE SUB10 ! -!! ################################################################## - SUBROUTINE CH_PRODLOSS_GAZ(PTIME,PCONC,PPROD,PLOSS,KMI,KVECNPT,KEQ) -!! ################################################################## -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -!! -!!*** *MODD_CH_PRODLOSS* -!! -!! PURPOSE -!! ------- -! calculation of production and loss terms for diagnostics -!! -!!** METHOD -!! ------ -!! The terms of temporal derivative of the chemical species, -!! written as: -!! d/dt PCONC = CH_FCN = PPROD - PCONC*PLOSS, -!! are calculated for diagnostic purposes. -!! -!! REFERENCE -!! --------- -!! none -!! -!! AUTHOR -!! ------ -!! Karsten Suhre (LA) -!! -!! MODIFICATIONS -!! ------------- -!! Original 26/07/96 -!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) -!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) -!! -!!---------------------------------------------------------------------- -!! -!! EXTERNAL -!! -------- -!! none -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -USE MODD_CH_M9_SCHEME -!! -!! EXPLICIT ARGUMENTS -!! ------------------ -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ) :: PPROD, PLOSS -INTEGER, INTENT(IN) :: KMI -TYPE(CCSTYPE), POINTER :: TPK -TPK=>TACCS(KMI) -! /BEGIN_CODE/ -TPK%O1D(:)=(TPK%K002(:)*PCONC(:,JP_O3))/(TPK%K020(:)*TPK%N2(:)+TPK%K021(:)*TPK%O2(:)+& - &TPK%K022(:)*TPK%H2O(:)) -TPK%O3P(:)=(TPK%K001(:)*PCONC(:,JP_NO2)+TPK%K003(:)*PCONC(:,JP_O3)+TPK%K008(:)*PCONC(:,JP_NO3)+& - &TPK%K020(:)*TPK%O1D(:)*TPK%N2(:)+TPK%K021(:)*TPK%O1D(:)*TPK%O2(:)+& - &0.00000*TPK%K079(:)*PCONC(:,JP_ALKE)*PCONC(:,JP_O3)+& - &0.09000*TPK%K080(:)*PCONC(:,JP_BIO)*PCONC(:,JP_O3))/& - &(TPK%K018(:)*TPK%O2(:)+TPK%K019(:)*PCONC(:,JP_O3)+TPK%K029(:)*PCONC(:,JP_NO)+& - &TPK%K030(:)*PCONC(:,JP_NO2)+TPK%K031(:)*PCONC(:,JP_NO2)+TPK%K054(:)*PCONC(:,JP_BIO)+& - &TPK%K055(:)*PCONC(:,JP_CARBO)) -! /END_CODE/ -CALL SUB0 -CALL SUB1 -CALL SUB2 -CALL SUB3 -CALL SUB4 - -CONTAINS - -SUBROUTINE SUB0 +SUBROUTINE SUB11 ! -!Indices 1 a 10 +!Indices 111 a 120 ! ! -!PPROD(O3) = +K018*<O3P>*<O2>+0.17307*K0102*<CARBOP>*<HO2> - PPROD(:,1) = +TPK%K018(:)*TPK%O3P(:)*TPK%O2(:)+0.17307*TPK%K0102(:)*PCONC(:,39& -&)*PCONC(:,15) -!PLOSS(O3) = +K002+K003+K019*<O3P>+K023*<OH>+K024*<HO2>+K042*<NO>+K043*<NO2>+K0 -!79*<ALKE>+K080*<BIO>+K081*<CARBO>+K082*<PAN>+K087*<ADD> - PLOSS(:,1) = +TPK%K002(:)+TPK%K003(:)+TPK%K019(:)*TPK%O3P(:)+TPK%K023(:)*PCONC& -&(:,14)+TPK%K024(:)*PCONC(:,15)+TPK%K042(:)*PCONC(:,3)+TPK%K043(:)*PCONC(:,4)+T& -&PK%K079(:)*PCONC(:,19)+TPK%K080(:)*PCONC(:,20)+TPK%K081(:)*PCONC(:,25)+TPK%K08& -&2(:)*PCONC(:,27)+TPK%K087(:)*PCONC(:,37) -! -!PPROD(H2O2) = +K027*<HO2>*<HO2>+K028*<HO2>*<HO2>*<H2O>+0.01833*K079*<ALKE>*<O3 -!>+0.00100*K080*<BIO>*<O3> - PPROD(:,2) = +TPK%K027(:)*PCONC(:,15)*PCONC(:,15)+TPK%K028(:)*PCONC(:,15)*PCON& -&C(:,15)*TPK%H2O(:)+0.01833*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.00100*TPK%K080& -&(:)*PCONC(:,20)*PCONC(:,1) -!PLOSS(H2O2) = +K009+K026*<OH> - PLOSS(:,2) = +TPK%K009(:)+TPK%K026(:)*PCONC(:,14) -! -!PPROD(NO) = +K001*<NO2>+K004*<HONO>+K007*<NO3>+K030*<O3P>*<NO2>+K046*<NO3>*<NO -!2> - PPROD(:,3) = +TPK%K001(:)*PCONC(:,4)+TPK%K004(:)*PCONC(:,7)+TPK%K007(:)*PCONC(& -&:,5)+TPK%K030(:)*TPK%O3P(:)*PCONC(:,4)+TPK%K046(:)*PCONC(:,5)*PCONC(:,4) -!PLOSS(NO) = +K029*<O3P>+K032*<OH>+K035*<HO2>+K042*<O3>+K044*<NO>*<O2>+K044*<NO -!>*<O2>+K045*<NO3>+K090*<MO2>+K091*<ALKAP>+K092*<ALKEP>+K093*<BIOP>+K094*<AROP> -!+K095*<CARBOP>+K096*<OLN>+K130*<XO2> - PLOSS(:,3) = +TPK%K029(:)*TPK%O3P(:)+TPK%K032(:)*PCONC(:,14)+TPK%K035(:)*PCONC& -&(:,15)+TPK%K042(:)*PCONC(:,1)+TPK%K044(:)*PCONC(:,3)*TPK%O2(:)+TPK%K044(:)*PCO& -&NC(:,3)*TPK%O2(:)+TPK%K045(:)*PCONC(:,5)+TPK%K090(:)*PCONC(:,32)+TPK%K091(:)*P& -&CONC(:,33)+TPK%K092(:)*PCONC(:,34)+TPK%K093(:)*PCONC(:,35)+TPK%K094(:)*PCONC(:& -&,38)+TPK%K095(:)*PCONC(:,39)+TPK%K096(:)*PCONC(:,40)+TPK%K130(:)*PCONC(:,41) -! -!PPROD(NO2) = +K005*<HNO3>+0.65*K006*<HNO4>+K008*<NO3>+K017*<ONIT>+K029*<O3P>*< -!NO>+K034*<OH>*<NO3>+K035*<HO2>*<NO>+K037*<HNO4>+0.7*K038*<HO2>*<NO3>+K039*<OH> -!*<HONO>+K041*<OH>*<HNO4>+K042*<O3>*<NO>+K044*<NO>*<NO>*<O2>+K044*<NO>*<NO>*<O2 -!>+K045*<NO3>*<NO>+K045*<NO3>*<NO>+K046*<NO3>*<NO2>+K048*<N2O5>+K049*<NO3>*<NO3 -!>+K049*<NO3>*<NO3>+K071*<ONIT>*<OH>+0.10530*K074*<CARBO>*<NO3>+0.40*K078*<PAN> -!*<NO3>+0.70*K082*<PAN>*<O3>+K089*<PAN>+K090*<MO2>*<NO>+0.91541*K091*<ALKAP>*<N -!O>+K092*<ALKEP>*<NO>+0.84700*K093*<BIOP>*<NO>+0.95115*K094*<AROP>*<NO>+K095*<C -!ARBOP>*<NO>+1.81599*K096*<OLN>*<NO>+0.32440*K110*<OLN>*<MO2>+0.00000*K116*<OLN -!>*<CARBOP>+0.00000*K118*<OLN>*<OLN>+K119*<MO2>*<NO3>+K120*<ALKAP>*<NO3>+K121*< -!ALKEP>*<NO3>+K122*<BIOP>*<NO3>+K123*<AROP>*<NO3>+K124*<CARBOP>*<NO3>+1.74072*K -!125*<OLN>*<NO3>+K130*<XO2>*<NO>+K131*<XO2>*<NO3> - PPROD(:,4) = +TPK%K005(:)*PCONC(:,8)+0.65*TPK%K006(:)*PCONC(:,9)+TPK%K008(:)*P& -&CONC(:,5)+TPK%K017(:)*PCONC(:,26)+TPK%K029(:)*TPK%O3P(:)*PCONC(:,3)+TPK%K034(:& -&)*PCONC(:,14)*PCONC(:,5)+TPK%K035(:)*PCONC(:,15)*PCONC(:,3)+TPK%K037(:)*PCONC(& -&:,9)+0.7*TPK%K038(:)*PCONC(:,15)*PCONC(:,5)+TPK%K039(:)*PCONC(:,14)*PCONC(:,7)& -&+TPK%K041(:)*PCONC(:,14)*PCONC(:,9)+TPK%K042(:)*PCONC(:,1)*PCONC(:,3)+TPK%K044& -&(:)*PCONC(:,3)*PCONC(:,3)*TPK%O2(:)+TPK%K044(:)*PCONC(:,3)*PCONC(:,3)*TPK%O2(:& -&)+TPK%K045(:)*PCONC(:,5)*PCONC(:,3)+TPK%K045(:)*PCONC(:,5)*PCONC(:,3)+TPK%K046& -&(:)*PCONC(:,5)*PCONC(:,4)+TPK%K048(:)*PCONC(:,6)+TPK%K049(:)*PCONC(:,5)*PCONC(& -&:,5)+TPK%K049(:)*PCONC(:,5)*PCONC(:,5)+TPK%K071(:)*PCONC(:,26)*PCONC(:,14)+0.1& -&0530*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.40*TPK%K078(:)*PCONC(:,27)*PCONC(:,5& -&)+0.70*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+TPK%K089(:)*PCONC(:,27)+TPK%K090(:)*& -&PCONC(:,32)*PCONC(:,3)+0.91541*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+TPK%K092(:)*& -&PCONC(:,34)*PCONC(:,3)+0.84700*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0.95115*TPK%& -&K094(:)*PCONC(:,38)*PCONC(:,3)+TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+1.81599*TPK%& -&K096(:)*PCONC(:,40)*PCONC(:,3)+0.32440*TPK%K110(:)*PCONC(:,40)*PCONC(:,32)+0.0& -&0000*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)*PCONC& -&(:,40)+TPK%K119(:)*PCONC(:,32)*PCONC(:,5)+TPK%K120(:)*PCONC(:,33)*PCONC(:,5)+T& -&PK%K121(:)*PCONC(:,34)*PCONC(:,5)+TPK%K122(:)*PCONC(:,35)*PCONC(:,5)+TPK%K123(& -&:)*PCONC(:,38)*PCONC(:,5)+TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+1.74072*TPK%K125(& -&:)*PCONC(:,40)*PCONC(:,5)+TPK%K130(:)*PCONC(:,41)*PCONC(:,3)+TPK%K131(:)*PCONC& -&(:,41)*PCONC(:,5) -!PLOSS(NO2) = +K001+K030*<O3P>+K031*<O3P>+K033*<OH>+K036*<HO2>+K043*<O3>+K046*< -!NO3>+K047*<NO3>+K083*<PHO>+K085*<ADD>+K088*<CARBOP> - PLOSS(:,4) = +TPK%K001(:)+TPK%K030(:)*TPK%O3P(:)+TPK%K031(:)*TPK%O3P(:)+TPK%K0& -&33(:)*PCONC(:,14)+TPK%K036(:)*PCONC(:,15)+TPK%K043(:)*PCONC(:,1)+TPK%K046(:)*P& -&CONC(:,5)+TPK%K047(:)*PCONC(:,5)+TPK%K083(:)*PCONC(:,36)+TPK%K085(:)*PCONC(:,3& -&7)+TPK%K088(:)*PCONC(:,39) -! -!PPROD(NO3) = +0.35*K006*<HNO4>+K031*<O3P>*<NO2>+K040*<OH>*<HNO3>+K043*<O3>*<NO -!2>+K048*<N2O5>+0.71893*K070*<PAN>*<OH>+0.60*K078*<PAN>*<NO3> - PPROD(:,5) = +0.35*TPK%K006(:)*PCONC(:,9)+TPK%K031(:)*TPK%O3P(:)*PCONC(:,4)+TP& -&K%K040(:)*PCONC(:,14)*PCONC(:,8)+TPK%K043(:)*PCONC(:,1)*PCONC(:,4)+TPK%K048(:)& -&*PCONC(:,6)+0.71893*TPK%K070(:)*PCONC(:,27)*PCONC(:,14)+0.60*TPK%K078(:)*PCONC& -&(:,27)*PCONC(:,5) -!PLOSS(NO3) = +K007+K008+K034*<OH>+K038*<HO2>+K045*<NO>+K046*<NO2>+K047*<NO2>+K -!049*<NO3>+K049*<NO3>+K072*<HCHO>+K073*<ALD>+K074*<CARBO>+K075*<ARO>+K076*<ALKE -!>+K077*<BIO>+K078*<PAN>+K119*<MO2>+K120*<ALKAP>+K121*<ALKEP>+K122*<BIOP>+K123* -!<AROP>+K124*<CARBOP>+K125*<OLN>+K131*<XO2> - PLOSS(:,5) = +TPK%K007(:)+TPK%K008(:)+TPK%K034(:)*PCONC(:,14)+TPK%K038(:)*PCON& -&C(:,15)+TPK%K045(:)*PCONC(:,3)+TPK%K046(:)*PCONC(:,4)+TPK%K047(:)*PCONC(:,4)+T& -&PK%K049(:)*PCONC(:,5)+TPK%K049(:)*PCONC(:,5)+TPK%K072(:)*PCONC(:,22)+TPK%K073(& -&:)*PCONC(:,23)+TPK%K074(:)*PCONC(:,25)+TPK%K075(:)*PCONC(:,21)+TPK%K076(:)*PCO& -&NC(:,19)+TPK%K077(:)*PCONC(:,20)+TPK%K078(:)*PCONC(:,27)+TPK%K119(:)*PCONC(:,3& -&2)+TPK%K120(:)*PCONC(:,33)+TPK%K121(:)*PCONC(:,34)+TPK%K122(:)*PCONC(:,35)+TPK& -&%K123(:)*PCONC(:,38)+TPK%K124(:)*PCONC(:,39)+TPK%K125(:)*PCONC(:,40)+TPK%K131(& -&:)*PCONC(:,41) -! -!PPROD(N2O5) = +K047*<NO3>*<NO2> - PPROD(:,6) = +TPK%K047(:)*PCONC(:,5)*PCONC(:,4) -!PLOSS(N2O5) = +K048 - PLOSS(:,6) = +TPK%K048(:) -! -!PPROD(HONO) = +K032*<OH>*<NO>+K085*<ADD>*<NO2> - PPROD(:,7) = +TPK%K032(:)*PCONC(:,14)*PCONC(:,3)+TPK%K085(:)*PCONC(:,37)*PCONC& -&(:,4) -!PLOSS(HONO) = +K004+K039*<OH> - PLOSS(:,7) = +TPK%K004(:)+TPK%K039(:)*PCONC(:,14) -! -!PPROD(HNO3) = +K033*<OH>*<NO2>+0.3*K038*<HO2>*<NO3>+K072*<HCHO>*<NO3>+K073*<AL -!D>*<NO3>+0.91567*K074*<CARBO>*<NO3>+K075*<ARO>*<NO3> - PPROD(:,8) = +TPK%K033(:)*PCONC(:,14)*PCONC(:,4)+0.3*TPK%K038(:)*PCONC(:,15)*P& -&CONC(:,5)+TPK%K072(:)*PCONC(:,22)*PCONC(:,5)+TPK%K073(:)*PCONC(:,23)*PCONC(:,5& -&)+0.91567*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+TPK%K075(:)*PCONC(:,21)*PCONC(:,5& -&) -!PLOSS(HNO3) = +K005+K040*<OH> - PLOSS(:,8) = +TPK%K005(:)+TPK%K040(:)*PCONC(:,14) +!PPROD(WC_MGLY) = +KTC25*<MGLY>+KC37*<WC_OH>*<WC_KETL> + PPROD(:,111) = +TPK%KTC25(:)*PCONC(:,41)+TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) +!PLOSS(WC_MGLY) = +KTC56+KC36*<WC_OH> + PLOSS(:,111) = +TPK%KTC56(:)+TPK%KC36(:)*PCONC(:,98) +! +!PPROD(WC_KETL) = +KTC24*<KETL>+0.50*KC32*<WC_OH>*<WC_ALCH>+KC37*<WC_OH>*<WC_KE +!TL> + PPROD(:,112) = +TPK%KTC24(:)*PCONC(:,30)+0.50*TPK%KC32(:)*PCONC(:,98)*PCONC(:,& +&107)+TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) +!PLOSS(WC_KETL) = +KTC55+KC37*<WC_OH> + PLOSS(:,112) = +TPK%KTC55(:)+TPK%KC37(:)*PCONC(:,98) +! +!PPROD(WC_ORA1) = +KTC26*<ORA1>+KC19*<WC_OH>*<WC_AHMS>+KC33*<WC_OH>*<WC_HCHO> + PPROD(:,113) = +TPK%KTC26(:)*PCONC(:,43)+TPK%KC19(:)*PCONC(:,98)*PCONC(:,124)+& +&TPK%KC33(:)*PCONC(:,98)*PCONC(:,108) +!PLOSS(WC_ORA1) = +KTC57+KC38*<WC_OH> + PLOSS(:,113) = +TPK%KTC57(:)+TPK%KC38(:)*PCONC(:,98) +! +!PPROD(WC_ORA2) = +KTC27*<ORA2>+KC29*<WC_RO25>*<WC_RO25> + PPROD(:,114) = +TPK%KTC27(:)*PCONC(:,44)+TPK%KC29(:)*PCONC(:,104)*PCONC(:,104) +!PLOSS(WC_ORA2) = +KTC58+KC39*<WC_OH> + PLOSS(:,114) = +TPK%KTC58(:)+TPK%KC39(:)*PCONC(:,98) +! +!PPROD(WC_ACID) = +KTC28*<ACID> + PPROD(:,115) = +TPK%KTC28(:)*PCONC(:,45) +!PLOSS(WC_ACID) = +KTC59+KC40*<WC_OH>+KC41*<WC_OH> + PLOSS(:,115) = +TPK%KTC59(:)+TPK%KC40(:)*PCONC(:,98)+TPK%KC41(:)*PCONC(:,98) +! +!PPROD(WC_RP16) = +KTC29*<RP16>+KC35*<WC_OH>*<WC_GLY>+KC39*<WC_OH>*<WC_ORA2> + PPROD(:,116) = +TPK%KTC29(:)*PCONC(:,74)+TPK%KC35(:)*PCONC(:,98)*PCONC(:,110)+& +&TPK%KC39(:)*PCONC(:,98)*PCONC(:,114) +!PLOSS(WC_RP16) = +KTC60+KC44*<WC_OH>+KC45*<WC_OH> + PLOSS(:,116) = +TPK%KTC60(:)+TPK%KC44(:)*PCONC(:,98)+TPK%KC45(:)*PCONC(:,98) +! +!PPROD(WC_UR21) = +KTC30*<UR21>+KC36*<WC_OH>*<WC_MGLY>+KC37*<WC_OH>*<WC_KETL>+0 +!.56*KC41*<WC_OH>*<WC_ACID> + PPROD(:,117) = +TPK%KTC30(:)*PCONC(:,47)+TPK%KC36(:)*PCONC(:,98)*PCONC(:,111)+& +&TPK%KC37(:)*PCONC(:,98)*PCONC(:,112)+0.56*TPK%KC41(:)*PCONC(:,98)*PCONC(:,115) +!PLOSS(WC_UR21) = +KTC61+KC43*<WC_OH> + PLOSS(:,117) = +TPK%KTC61(:)+TPK%KC43(:)*PCONC(:,98) +! +!PPROD(WC_UR28) = +KTC31*<UR28>+KC44*<WC_OH>*<WC_RP16> + PPROD(:,118) = +TPK%KTC31(:)*PCONC(:,46)+TPK%KC44(:)*PCONC(:,98)*PCONC(:,116) +!PLOSS(WC_UR28) = +KTC62+KC42*<WC_OH> + PLOSS(:,118) = +TPK%KTC62(:)+TPK%KC42(:)*PCONC(:,98) +! +!PPROD(WC_ACID2) = +0.15*KC41*<WC_OH>*<WC_ACID>+0.56*KC43*<WC_OH>*<WC_UR21> + PPROD(:,119) = +0.15*TPK%KC41(:)*PCONC(:,98)*PCONC(:,115)+0.56*TPK%KC43(:)*PCO& +&NC(:,98)*PCONC(:,117) +!PLOSS(WC_ACID2) = +KC46*<WC_OH> + PLOSS(:,119) = +TPK%KC46(:)*PCONC(:,98) +! +!PPROD(WC_ASO3) = +KC7*<WC_SO2>*<WC_OH>+KC16*<WC_SO2>*<WC_NO3>+KC28*<WC_SO2>*<W +!C_RO21> + PPROD(:,120) = +TPK%KC7(:)*PCONC(:,101)*PCONC(:,98)+TPK%KC16(:)*PCONC(:,101)*P& +&CONC(:,92)+TPK%KC28(:)*PCONC(:,101)*PCONC(:,103) +!PLOSS(WC_ASO3) = +KC20*<W_O2> + PLOSS(:,120) = +TPK%KC20(:)*TPK%W_O2(:) ! -!PPROD(HNO4) = +K036*<HO2>*<NO2> - PPROD(:,9) = +TPK%K036(:)*PCONC(:,15)*PCONC(:,4) -!PLOSS(HNO4) = +K006+K037+K041*<OH> - PLOSS(:,9) = +TPK%K006(:)+TPK%K037(:)+TPK%K041(:)*PCONC(:,14) +RETURN +END SUBROUTINE SUB11 ! -!PPROD(NH3) = 0.0 - PPROD(:,10) = 0.0 -!PLOSS(NH3) = +K050*<OH> - PLOSS(:,10) = +TPK%K050(:)*PCONC(:,14) +SUBROUTINE SUB12 ! -RETURN -END SUBROUTINE SUB0 +!Indices 121 a 130 ! -SUBROUTINE SUB1 ! -!Indices 11 a 20 +!PPROD(WC_ASO4) = +KC15*<WC_H2SO4>*<WC_NO3>+KC22*<WC_ASO5>*<WC_ASO5>+KC22*<WC_A +!SO5>*<WC_ASO5> + PPROD(:,121) = +TPK%KC15(:)*PCONC(:,102)*PCONC(:,92)+TPK%KC22(:)*PCONC(:,122)*& +&PCONC(:,122)+TPK%KC22(:)*PCONC(:,122)*PCONC(:,122) +!PLOSS(WC_ASO4) = +KC24 + PLOSS(:,121) = +TPK%KC24(:) ! +!PPROD(WC_ASO5) = +KC20*<W_O2>*<WC_ASO3> + PPROD(:,122) = +TPK%KC20(:)*TPK%W_O2(:)*PCONC(:,120) +!PLOSS(WC_ASO5) = +KC21*<WC_HO2>+KC22*<WC_ASO5>+KC22*<WC_ASO5> + PLOSS(:,122) = +TPK%KC21(:)*PCONC(:,99)+TPK%KC22(:)*PCONC(:,122)+TPK%KC22(:)*P& +&CONC(:,122) ! -!PPROD(SO2) = 0.0 - PPROD(:,11) = 0.0 -!PLOSS(SO2) = +K052*<OH> - PLOSS(:,11) = +TPK%K052(:)*PCONC(:,14) -! -!PPROD(SULF) = +K052*<OH>*<SO2> - PPROD(:,12) = +TPK%K052(:)*PCONC(:,14)*PCONC(:,11) -!PLOSS(SULF) = +K132 - PLOSS(:,12) = +TPK%K132(:) -! -!PPROD(CO) = +K010*<HCHO>+K011*<HCHO>+K012*<ALD>+0.91924*K016*<CARBO>+0.01*K054 -!*<BIO>*<O3P>+0.00878*K058*<ALKA>*<OH>+K062*<HCHO>*<OH>+1.01732*K065*<CARBO>*<O -!H>+K072*<HCHO>*<NO3>+1.33723*K074*<CARBO>*<NO3>+0.35120*K079*<ALKE>*<O3>+0.360 -!00*K080*<BIO>*<O3>+0.64728*K081*<CARBO>*<O3>+0.13*K082*<PAN>*<O3> - PPROD(:,13) = +TPK%K010(:)*PCONC(:,22)+TPK%K011(:)*PCONC(:,22)+TPK%K012(:)*PCO& -&NC(:,23)+0.91924*TPK%K016(:)*PCONC(:,25)+0.01*TPK%K054(:)*PCONC(:,20)*TPK%O3P(& -&:)+0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+TPK%K062(:)*PCONC(:,22)*PCONC(:& -&,14)+1.01732*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+TPK%K072(:)*PCONC(:,22)*PCONC& -&(:,5)+1.33723*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.35120*TPK%K079(:)*PCONC(:,1& -&9)*PCONC(:,1)+0.36000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.64728*TPK%K081(:)*P& -&CONC(:,25)*PCONC(:,1)+0.13*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) -!PLOSS(CO) = +K053*<OH> - PLOSS(:,13) = +TPK%K053(:)*PCONC(:,14) -! -!PPROD(OH) = +K004*<HONO>+K005*<HNO3>+0.35*K006*<HNO4>+K009*<H2O2>+K009*<H2O2>+ -!K013*<OP1>+K014*<OP2>+K022*<O1D>*<H2O>+K022*<O1D>*<H2O>+K024*<O3>*<HO2>+K035*< -!HO2>*<NO>+0.7*K038*<HO2>*<NO3>+0.02*K054*<BIO>*<O3P>+0.00878*K058*<ALKA>*<OH>+ -!0.35*K068*<OP1>*<OH>+0.44925*K069*<OP2>*<OH>+0.39435*K079*<ALKE>*<O3>+0.28000* -!K080*<BIO>*<O3>+0.20595*K081*<CARBO>*<O3>+0.036*K082*<PAN>*<O3>+K087*<ADD>*<O3 -!> - PPROD(:,14) = +TPK%K004(:)*PCONC(:,7)+TPK%K005(:)*PCONC(:,8)+0.35*TPK%K006(:)*& -&PCONC(:,9)+TPK%K009(:)*PCONC(:,2)+TPK%K009(:)*PCONC(:,2)+TPK%K013(:)*PCONC(:,2& -&8)+TPK%K014(:)*PCONC(:,29)+TPK%K022(:)*TPK%O1D(:)*TPK%H2O(:)+TPK%K022(:)*TPK%O& -&1D(:)*TPK%H2O(:)+TPK%K024(:)*PCONC(:,1)*PCONC(:,15)+TPK%K035(:)*PCONC(:,15)*PC& -&ONC(:,3)+0.7*TPK%K038(:)*PCONC(:,15)*PCONC(:,5)+0.02*TPK%K054(:)*PCONC(:,20)*T& -&PK%O3P(:)+0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0.35*TPK%K068(:)*PCONC(:& -&,28)*PCONC(:,14)+0.44925*TPK%K069(:)*PCONC(:,29)*PCONC(:,14)+0.39435*TPK%K079(& -&:)*PCONC(:,19)*PCONC(:,1)+0.28000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.20595*T& -&PK%K081(:)*PCONC(:,25)*PCONC(:,1)+0.036*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+TPK& -&%K087(:)*PCONC(:,37)*PCONC(:,1) -!PLOSS(OH) = +K023*<O3>+K025*<HO2>+K026*<H2O2>+K032*<NO>+K033*<NO2>+K034*<NO3>+ -!K039*<HONO>+K040*<HNO3>+K041*<HNO4>+K050*<NH3>+K051*<H2>+K052*<SO2>+K053*<CO>+ -!K056*<CH4>+K057*<ETH>+K058*<ALKA>+K059*<ALKE>+K060*<BIO>+K061*<ARO>+K062*<HCHO -!>+K063*<ALD>+K064*<KET>+K065*<CARBO>+K066*<ORA1>+K067*<ORA2>+K068*<OP1>+K069*< -!OP2>+K070*<PAN>+K071*<ONIT> - PLOSS(:,14) = +TPK%K023(:)*PCONC(:,1)+TPK%K025(:)*PCONC(:,15)+TPK%K026(:)*PCON& -&C(:,2)+TPK%K032(:)*PCONC(:,3)+TPK%K033(:)*PCONC(:,4)+TPK%K034(:)*PCONC(:,5)+TP& -&K%K039(:)*PCONC(:,7)+TPK%K040(:)*PCONC(:,8)+TPK%K041(:)*PCONC(:,9)+TPK%K050(:)& -&*PCONC(:,10)+TPK%K051(:)*TPK%H2(:)+TPK%K052(:)*PCONC(:,11)+TPK%K053(:)*PCONC(:& -&,13)+TPK%K056(:)*PCONC(:,16)+TPK%K057(:)*PCONC(:,17)+TPK%K058(:)*PCONC(:,18)+T& -&PK%K059(:)*PCONC(:,19)+TPK%K060(:)*PCONC(:,20)+TPK%K061(:)*PCONC(:,21)+TPK%K06& -&2(:)*PCONC(:,22)+TPK%K063(:)*PCONC(:,23)+TPK%K064(:)*PCONC(:,24)+TPK%K065(:)*P& -&CONC(:,25)+TPK%K066(:)*PCONC(:,30)+TPK%K067(:)*PCONC(:,31)+TPK%K068(:)*PCONC(:& -&,28)+TPK%K069(:)*PCONC(:,29)+TPK%K070(:)*PCONC(:,27)+TPK%K071(:)*PCONC(:,26) -! -!PPROD(HO2) = +0.65*K006*<HNO4>+K011*<HCHO>+K011*<HCHO>+K012*<ALD>+K013*<OP1>+0 -!.96205*K014*<OP2>+0.75830*K016*<CARBO>+K017*<ONIT>+K023*<O3>*<OH>+K026*<H2O2>* -!<OH>+K034*<OH>*<NO3>+K037*<HNO4>+K051*<OH>*<H2>+K052*<OH>*<SO2>+K053*<CO>*<OH> -!+0.28*K054*<BIO>*<O3P>+0.12793*K058*<ALKA>*<OH>+0.10318*K061*<ARO>*<OH>+K062*< -!HCHO>*<OH>+0.51208*K065*<CARBO>*<OH>+K066*<ORA1>*<OH>+0.02915*K069*<OP2>*<OH>+ -!0.28107*K070*<PAN>*<OH>+K072*<HCHO>*<NO3>+0.63217*K074*<CARBO>*<NO3>+0.23451*K -!079*<ALKE>*<O3>+0.30000*K080*<BIO>*<O3>+0.28441*K081*<CARBO>*<O3>+0.08*K082*<P -!AN>*<O3>+0.02*K086*<ADD>*<O2>+K090*<MO2>*<NO>+0.74265*K091*<ALKAP>*<NO>+K092*< -!ALKEP>*<NO>+0.84700*K093*<BIOP>*<NO>+0.95115*K094*<AROP>*<NO>+0.12334*K095*<CA -!RBOP>*<NO>+0.18401*K096*<OLN>*<NO>+0.66*K104*<MO2>*<MO2>+0.98383*K105*<ALKAP>* -!<MO2>+K106*<ALKEP>*<MO2>+1.00000*K107*<BIOP>*<MO2>+1.02767*K108*<AROP>*<MO2>+0 -!.82998*K109*<CARBOP>*<MO2>+0.67560*K110*<OLN>*<MO2>+0.48079*K111*<ALKAP>*<CARB -!OP>+0.50078*K112*<ALKEP>*<CARBOP>+0.50600*K113*<BIOP>*<CARBOP>+K114*<AROP>*<CA -!RBOP>+0.07566*K115*<CARBOP>*<CARBOP>+0.17599*K116*<OLN>*<CARBOP>+K117*<OLN>*<O -!LN>+0.00000*K118*<OLN>*<OLN>+K119*<MO2>*<NO3>+0.81290*K120*<ALKAP>*<NO3>+K121* -!<ALKEP>*<NO3>+K122*<BIOP>*<NO3>+K123*<AROP>*<NO3>+0.04915*K124*<CARBOP>*<NO3>+ -!0.25928*K125*<OLN>*<NO3>+K127*<XO2>*<MO2> - PPROD(:,15) = +0.65*TPK%K006(:)*PCONC(:,9)+TPK%K011(:)*PCONC(:,22)+TPK%K011(:)& -&*PCONC(:,22)+TPK%K012(:)*PCONC(:,23)+TPK%K013(:)*PCONC(:,28)+0.96205*TPK%K014(& -&:)*PCONC(:,29)+0.75830*TPK%K016(:)*PCONC(:,25)+TPK%K017(:)*PCONC(:,26)+TPK%K02& -&3(:)*PCONC(:,1)*PCONC(:,14)+TPK%K026(:)*PCONC(:,2)*PCONC(:,14)+TPK%K034(:)*PCO& -&NC(:,14)*PCONC(:,5)+TPK%K037(:)*PCONC(:,9)+TPK%K051(:)*PCONC(:,14)*TPK%H2(:)+T& -&PK%K052(:)*PCONC(:,14)*PCONC(:,11)+TPK%K053(:)*PCONC(:,13)*PCONC(:,14)+0.28*TP& -&K%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.12793*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0& -&.10318*TPK%K061(:)*PCONC(:,21)*PCONC(:,14)+TPK%K062(:)*PCONC(:,22)*PCONC(:,14)& -&+0.51208*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+TPK%K066(:)*PCONC(:,30)*PCONC(:,1& -&4)+0.02915*TPK%K069(:)*PCONC(:,29)*PCONC(:,14)+0.28107*TPK%K070(:)*PCONC(:,27)& -&*PCONC(:,14)+TPK%K072(:)*PCONC(:,22)*PCONC(:,5)+0.63217*TPK%K074(:)*PCONC(:,25& -&)*PCONC(:,5)+0.23451*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.30000*TPK%K080(:)*PC& -&ONC(:,20)*PCONC(:,1)+0.28441*TPK%K081(:)*PCONC(:,25)*PCONC(:,1)+0.08*TPK%K082(& -&:)*PCONC(:,27)*PCONC(:,1)+0.02*TPK%K086(:)*PCONC(:,37)*TPK%O2(:)+TPK%K090(:)*P& -&CONC(:,32)*PCONC(:,3)+0.74265*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+TPK%K092(:)*P& -&CONC(:,34)*PCONC(:,3)+0.84700*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0.95115*TPK%K& -&094(:)*PCONC(:,38)*PCONC(:,3)+0.12334*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+0.184& -&01*TPK%K096(:)*PCONC(:,40)*PCONC(:,3)+0.66*TPK%K104(:)*PCONC(:,32)*PCONC(:,32)& -&+0.98383*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+TPK%K106(:)*PCONC(:,34)*PCONC(:,3& -&2)+1.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32)+1.02767*TPK%K108(:)*PCONC(:,38)& -&*PCONC(:,32)+0.82998*TPK%K109(:)*PCONC(:,39)*PCONC(:,32)+0.67560*TPK%K110(:)*P& -&CONC(:,40)*PCONC(:,32)+0.48079*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.50078*TPK& -&%K112(:)*PCONC(:,34)*PCONC(:,39)+0.50600*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+T& -&PK%K114(:)*PCONC(:,38)*PCONC(:,39)+0.07566*TPK%K115(:)*PCONC(:,39)*PCONC(:,39)& -&+0.17599*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+TPK%K117(:)*PCONC(:,40)*PCONC(:,4& -&0)+0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40)+TPK%K119(:)*PCONC(:,32)*PCONC(:& -&,5)+0.81290*TPK%K120(:)*PCONC(:,33)*PCONC(:,5)+TPK%K121(:)*PCONC(:,34)*PCONC(:& -&,5)+TPK%K122(:)*PCONC(:,35)*PCONC(:,5)+TPK%K123(:)*PCONC(:,38)*PCONC(:,5)+0.04& -&915*TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+0.25928*TPK%K125(:)*PCONC(:,40)*PCONC(:& -&,5)+TPK%K127(:)*PCONC(:,41)*PCONC(:,32) -!PLOSS(HO2) = +K024*<O3>+K025*<OH>+K027*<HO2>+K027*<HO2>+K028*<HO2>*<H2O>+K028* -!<HO2>*<H2O>+K035*<NO>+K036*<NO2>+K038*<NO3>+K084*<PHO>+K097*<MO2>+K098*<ALKAP> -!+K099*<ALKEP>+K0100*<BIOP>+K0101*<AROP>+K0102*<CARBOP>+K103*<OLN>+K126*<XO2> - PLOSS(:,15) = +TPK%K024(:)*PCONC(:,1)+TPK%K025(:)*PCONC(:,14)+TPK%K027(:)*PCON& -&C(:,15)+TPK%K027(:)*PCONC(:,15)+TPK%K028(:)*PCONC(:,15)*TPK%H2O(:)+TPK%K028(:)& -&*PCONC(:,15)*TPK%H2O(:)+TPK%K035(:)*PCONC(:,3)+TPK%K036(:)*PCONC(:,4)+TPK%K038& -&(:)*PCONC(:,5)+TPK%K084(:)*PCONC(:,36)+TPK%K097(:)*PCONC(:,32)+TPK%K098(:)*PCO& -&NC(:,33)+TPK%K099(:)*PCONC(:,34)+TPK%K0100(:)*PCONC(:,35)+TPK%K0101(:)*PCONC(:& -&,38)+TPK%K0102(:)*PCONC(:,39)+TPK%K103(:)*PCONC(:,40)+TPK%K126(:)*PCONC(:,41) -! -!PPROD(CH4) = +0.04300*K079*<ALKE>*<O3> - PPROD(:,16) = +0.04300*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) -!PLOSS(CH4) = +K056*<OH> - PLOSS(:,16) = +TPK%K056(:)*PCONC(:,14) -! -!PPROD(ETH) = +0.03196*K079*<ALKE>*<O3> - PPROD(:,17) = +0.03196*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) -!PLOSS(ETH) = +K057*<OH> - PLOSS(:,17) = +TPK%K057(:)*PCONC(:,14) -! -!PPROD(ALKA) = 0.0 - PPROD(:,18) = 0.0 -!PLOSS(ALKA) = +K058*<OH> - PLOSS(:,18) = +TPK%K058(:)*PCONC(:,14) -! -!PPROD(ALKE) = +0.91868*K054*<BIO>*<O3P>+0.00000*K079*<ALKE>*<O3>+0.37388*K080* -!<BIO>*<O3>+0.37815*K093*<BIOP>*<NO>+0.48074*K107*<BIOP>*<MO2>+0.24463*K113*<BI -!OP>*<CARBOP>+0.42729*K122*<BIOP>*<NO3> - PPROD(:,19) = +0.91868*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.00000*TPK%K079(:)*& -&PCONC(:,19)*PCONC(:,1)+0.37388*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.37815*TPK%& -&K093(:)*PCONC(:,35)*PCONC(:,3)+0.48074*TPK%K107(:)*PCONC(:,35)*PCONC(:,32)+0.2& -&4463*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+0.42729*TPK%K122(:)*PCONC(:,35)*PCONC& -&(:,5) -!PLOSS(ALKE) = +K059*<OH>+K076*<NO3>+K079*<O3> - PLOSS(:,19) = +TPK%K059(:)*PCONC(:,14)+TPK%K076(:)*PCONC(:,5)+TPK%K079(:)*PCON& -&C(:,1) -! -!PPROD(BIO) = 0.0 - PPROD(:,20) = 0.0 -!PLOSS(BIO) = +K054*<O3P>+K060*<OH>+K077*<NO3>+K080*<O3> - PLOSS(:,20) = +TPK%K054(:)*TPK%O3P(:)+TPK%K060(:)*PCONC(:,14)+TPK%K077(:)*PCON& -&C(:,5)+TPK%K080(:)*PCONC(:,1) +!PPROD(WC_AHSO5) = +KC21*<WC_HO2>*<WC_ASO5> + PPROD(:,123) = +TPK%KC21(:)*PCONC(:,99)*PCONC(:,122) +!PLOSS(WC_AHSO5) = +KC23*<WC_SO2> + PLOSS(:,123) = +TPK%KC23(:)*PCONC(:,101) ! -RETURN -END SUBROUTINE SUB1 +!PPROD(WC_AHMS) = +KC17*<WC_HCHO>*<WC_SO2> + PPROD(:,124) = +TPK%KC17(:)*PCONC(:,108)*PCONC(:,101) +!PLOSS(WC_AHMS) = +KC18+KC19*<WC_OH> + PLOSS(:,124) = +TPK%KC18(:)+TPK%KC19(:)*PCONC(:,98) ! -SUBROUTINE SUB2 +!PPROD(WR_O3) = +KTR1*<O3> + PPROD(:,125) = +TPK%KTR1(:)*PCONC(:,3) +!PLOSS(WR_O3) = +KTR32+KR6*<WR_HO2>+KR25*<WR_SO2> + PLOSS(:,125) = +TPK%KTR32(:)+TPK%KR6(:)*PCONC(:,136)+TPK%KR25(:)*PCONC(:,138) +! +!PPROD(WR_H2O2) = +KTR2*<H2O2>+KR2*<WR_OH>*<WR_OH>+KR5*<WR_HO2>*<WR_HO2>+KR29*< +!WR_RO25>*<WR_RO25>+KR37*<WR_OH>*<WR_KETL>+0.5*KR39*<WR_OH>*<WR_ORA2>+0.29*KR41 +!*<WR_OH>*<WR_ACID>+0.3*KR43*<WR_OH>*<WR_UR21>+0.45*KR45*<WR_OH>*<WR_RP16> + PPROD(:,126) = +TPK%KTR2(:)*PCONC(:,12)+TPK%KR2(:)*PCONC(:,135)*PCONC(:,135)+T& +&PK%KR5(:)*PCONC(:,136)*PCONC(:,136)+TPK%KR29(:)*PCONC(:,141)*PCONC(:,141)+TPK%& +&KR37(:)*PCONC(:,135)*PCONC(:,149)+0.5*TPK%KR39(:)*PCONC(:,135)*PCONC(:,151)+0.& +&29*TPK%KR41(:)*PCONC(:,135)*PCONC(:,152)+0.3*TPK%KR43(:)*PCONC(:,135)*PCONC(:,& +&154)+0.45*TPK%KR45(:)*PCONC(:,135)*PCONC(:,153) +!PLOSS(WR_H2O2) = +KTR33+KR1+KR4*<WR_OH>+KR26*<WR_SO2> + PLOSS(:,126) = +TPK%KTR33(:)+TPK%KR1(:)+TPK%KR4(:)*PCONC(:,135)+TPK%KR26(:)*PC& +&ONC(:,138) ! -!Indices 21 a 30 +!PPROD(WR_NO) = +KTR3*<NO> + PPROD(:,127) = +TPK%KTR3(:)*PCONC(:,1) +!PLOSS(WR_NO) = +KTR34 + PLOSS(:,127) = +TPK%KTR34(:) ! +!PPROD(WR_NO2) = +KTR4*<NO2>+KR8*<WR_OH>*<WR_HONO>+KR10*<WR_HNO4>+KR13*<WR_HNO3 +!> + PPROD(:,128) = +TPK%KTR4(:)*PCONC(:,2)+TPK%KR8(:)*PCONC(:,135)*PCONC(:,131)+TP& +&K%KR10(:)*PCONC(:,133)+TPK%KR13(:)*PCONC(:,132) +!PLOSS(WR_NO2) = +KTR35+KR9*<WR_HO2> + PLOSS(:,128) = +TPK%KTR35(:)+TPK%KR9(:)*PCONC(:,136) ! -!PPROD(ARO) = +0.10670*K083*<PHO>*<NO2>+1.06698*K084*<PHO>*<HO2>+K085*<ADD>*<NO -!2>+0.02*K086*<ADD>*<O2>+K087*<ADD>*<O3> - PPROD(:,21) = +0.10670*TPK%K083(:)*PCONC(:,36)*PCONC(:,4)+1.06698*TPK%K084(:)*& -&PCONC(:,36)*PCONC(:,15)+TPK%K085(:)*PCONC(:,37)*PCONC(:,4)+0.02*TPK%K086(:)*PC& -&ONC(:,37)*TPK%O2(:)+TPK%K087(:)*PCONC(:,37)*PCONC(:,1) -!PLOSS(ARO) = +K061*<OH>+K075*<NO3> - PLOSS(:,21) = +TPK%K061(:)*PCONC(:,14)+TPK%K075(:)*PCONC(:,5) -! -!PPROD(HCHO) = +K013*<OP1>+0.06517*K016*<CARBO>+0.05*K054*<BIO>*<O3P>+0.00140*K -!058*<ALKA>*<OH>+0.00000*K065*<CARBO>*<OH>+0.35*K068*<OP1>*<OH>+0.02915*K069*<O -!P2>*<OH>+0.57839*K070*<PAN>*<OH>+0.40*K078*<PAN>*<NO3>+0.48290*K079*<ALKE>*<O3 -!>+0.90000*K080*<BIO>*<O3>+0.00000*K081*<CARBO>*<O3>+0.70*K082*<PAN>*<O3>+K090* -!<MO2>*<NO>+0.03002*K091*<ALKAP>*<NO>+1.39870*K092*<ALKEP>*<NO>+0.60600*K093*<B -!IOP>*<NO>+0.05848*K095*<CARBOP>*<NO>+0.23419*K096*<OLN>*<NO>+1.33*K104*<MO2>*< -!MO2>+0.80556*K105*<ALKAP>*<MO2>+1.42894*K106*<ALKEP>*<MO2>+1.09000*K107*<BIOP> -!*<MO2>+K108*<AROP>*<MO2>+0.95723*K109*<CARBOP>*<MO2>+0.88625*K110*<OLN>*<MO2>+ -!0.07600*K111*<ALKAP>*<CARBOP>+0.68192*K112*<ALKEP>*<CARBOP>+0.34000*K113*<BIOP -!>*<CARBOP>+0.03432*K115*<CARBOP>*<CARBOP>+0.13414*K116*<OLN>*<CARBOP>+0.00000* -!K118*<OLN>*<OLN>+K119*<MO2>*<NO3>+0.03142*K120*<ALKAP>*<NO3>+1.40909*K121*<ALK -!EP>*<NO3>+0.68600*K122*<BIOP>*<NO3>+0.03175*K124*<CARBOP>*<NO3>+0.20740*K125*< -!OLN>*<NO3>+K127*<XO2>*<MO2> - PPROD(:,22) = +TPK%K013(:)*PCONC(:,28)+0.06517*TPK%K016(:)*PCONC(:,25)+0.05*TP& -&K%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.00140*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0& -&.00000*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.35*TPK%K068(:)*PCONC(:,28)*PCONC(& -&:,14)+0.02915*TPK%K069(:)*PCONC(:,29)*PCONC(:,14)+0.57839*TPK%K070(:)*PCONC(:,& -&27)*PCONC(:,14)+0.40*TPK%K078(:)*PCONC(:,27)*PCONC(:,5)+0.48290*TPK%K079(:)*PC& -&ONC(:,19)*PCONC(:,1)+0.90000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.00000*TPK%K0& -&81(:)*PCONC(:,25)*PCONC(:,1)+0.70*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+TPK%K090(& -&:)*PCONC(:,32)*PCONC(:,3)+0.03002*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+1.39870*T& -&PK%K092(:)*PCONC(:,34)*PCONC(:,3)+0.60600*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0& -&.05848*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+0.23419*TPK%K096(:)*PCONC(:,40)*PCON& -&C(:,3)+1.33*TPK%K104(:)*PCONC(:,32)*PCONC(:,32)+0.80556*TPK%K105(:)*PCONC(:,33& -&)*PCONC(:,32)+1.42894*TPK%K106(:)*PCONC(:,34)*PCONC(:,32)+1.09000*TPK%K107(:)*& -&PCONC(:,35)*PCONC(:,32)+TPK%K108(:)*PCONC(:,38)*PCONC(:,32)+0.95723*TPK%K109(:& -&)*PCONC(:,39)*PCONC(:,32)+0.88625*TPK%K110(:)*PCONC(:,40)*PCONC(:,32)+0.07600*& -&TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.68192*TPK%K112(:)*PCONC(:,34)*PCONC(:,39& -&)+0.34000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+0.03432*TPK%K115(:)*PCONC(:,39)*& -&PCONC(:,39)+0.13414*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+0.00000*TPK%K118(:)*PC& -&ONC(:,40)*PCONC(:,40)+TPK%K119(:)*PCONC(:,32)*PCONC(:,5)+0.03142*TPK%K120(:)*P& -&CONC(:,33)*PCONC(:,5)+1.40909*TPK%K121(:)*PCONC(:,34)*PCONC(:,5)+0.68600*TPK%K& -&122(:)*PCONC(:,35)*PCONC(:,5)+0.03175*TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+0.207& -&40*TPK%K125(:)*PCONC(:,40)*PCONC(:,5)+TPK%K127(:)*PCONC(:,41)*PCONC(:,32) -!PLOSS(HCHO) = +K010+K011+K062*<OH>+K072*<NO3> - PLOSS(:,22) = +TPK%K010(:)+TPK%K011(:)+TPK%K062(:)*PCONC(:,14)+TPK%K072(:)*PCO& -&NC(:,5) -! -!PPROD(ALD) = +0.96205*K014*<OP2>+0.20*K017*<ONIT>+K055*<CARBO>*<O3P>+0.08173*K -!058*<ALKA>*<OH>+0.06253*K065*<CARBO>*<OH>+0.07335*K069*<OP2>*<OH>+0.05265*K074 -!*<CARBO>*<NO3>+0.51468*K079*<ALKE>*<O3>+0.00000*K080*<BIO>*<O3>+0.15692*K081*< -!CARBO>*<O3>+0.33144*K091*<ALKAP>*<NO>+0.42125*K092*<ALKEP>*<NO>+0.00000*K093*< -!BIOP>*<NO>+0.07368*K095*<CARBOP>*<NO>+1.01182*K096*<OLN>*<NO>+0.56070*K105*<AL -!KAP>*<MO2>+0.46413*K106*<ALKEP>*<MO2>+0.00000*K107*<BIOP>*<MO2>+0.08295*K109*< -!CARBOP>*<MO2>+0.41524*K110*<OLN>*<MO2>+0.71461*K111*<ALKAP>*<CARBOP>+0.68374*K -!112*<ALKEP>*<CARBOP>+0.00000*K113*<BIOP>*<CARBOP>+0.06969*K115*<CARBOP>*<CARBO -!P>+0.42122*K116*<OLN>*<CARBOP>+0.00000*K118*<OLN>*<OLN>+0.33743*K120*<ALKAP>*< -!NO3>+0.43039*K121*<ALKEP>*<NO3>+0.00000*K122*<BIOP>*<NO3>+0.02936*K124*<CARBOP -!>*<NO3>+0.91850*K125*<OLN>*<NO3> - PPROD(:,23) = +0.96205*TPK%K014(:)*PCONC(:,29)+0.20*TPK%K017(:)*PCONC(:,26)+TP& -&K%K055(:)*PCONC(:,25)*TPK%O3P(:)+0.08173*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0& -&.06253*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.07335*TPK%K069(:)*PCONC(:,29)*PCO& -&NC(:,14)+0.05265*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.51468*TPK%K079(:)*PCONC(& -&:,19)*PCONC(:,1)+0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.15692*TPK%K081(:& -&)*PCONC(:,25)*PCONC(:,1)+0.33144*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.42125*TP& -&K%K092(:)*PCONC(:,34)*PCONC(:,3)+0.00000*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0.& -&07368*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+1.01182*TPK%K096(:)*PCONC(:,40)*PCONC& -&(:,3)+0.56070*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.46413*TPK%K106(:)*PCONC(:,& -&34)*PCONC(:,32)+0.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32)+0.08295*TPK%K109(:& -&)*PCONC(:,39)*PCONC(:,32)+0.41524*TPK%K110(:)*PCONC(:,40)*PCONC(:,32)+0.71461*& -&TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.68374*TPK%K112(:)*PCONC(:,34)*PCONC(:,39& -&)+0.00000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+0.06969*TPK%K115(:)*PCONC(:,39)*& -&PCONC(:,39)+0.42122*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+0.00000*TPK%K118(:)*PC& -&ONC(:,40)*PCONC(:,40)+0.33743*TPK%K120(:)*PCONC(:,33)*PCONC(:,5)+0.43039*TPK%K& -&121(:)*PCONC(:,34)*PCONC(:,5)+0.00000*TPK%K122(:)*PCONC(:,35)*PCONC(:,5)+0.029& -&36*TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+0.91850*TPK%K125(:)*PCONC(:,40)*PCONC(:,& -&5) -!PLOSS(ALD) = +K012+K063*<OH>+K073*<NO3> - PLOSS(:,23) = +TPK%K012(:)+TPK%K063(:)*PCONC(:,14)+TPK%K073(:)*PCONC(:,5) -! -!PPROD(KET) = +0.80*K017*<ONIT>+0.03498*K058*<ALKA>*<OH>+0.00853*K065*<CARBO>*< -!OH>+0.37591*K069*<OP2>*<OH>+0.00632*K074*<CARBO>*<NO3>+0.07377*K079*<ALKE>*<O3 -!>+0.00000*K080*<BIO>*<O3>+0.54531*K091*<ALKAP>*<NO>+0.05220*K092*<ALKEP>*<NO>+ -!0.00000*K093*<BIOP>*<NO>+0.37862*K096*<OLN>*<NO>+0.09673*K105*<ALKAP>*<MO2>+0. -!03814*K106*<ALKEP>*<MO2>+0.00000*K107*<BIOP>*<MO2>+0.09667*K110*<OLN>*<MO2>+0. -!18819*K111*<ALKAP>*<CARBOP>+0.06579*K112*<ALKEP>*<CARBOP>+0.00000*K113*<BIOP>* -!<CARBOP>+0.02190*K115*<CARBOP>*<CARBOP>+0.10822*K116*<OLN>*<CARBOP>+0.00000*K1 -!18*<OLN>*<OLN>+0.62978*K120*<ALKAP>*<NO3>+0.02051*K121*<ALKEP>*<NO3>+0.00000*K -!122*<BIOP>*<NO3>+0.34740*K125*<OLN>*<NO3> - PPROD(:,24) = +0.80*TPK%K017(:)*PCONC(:,26)+0.03498*TPK%K058(:)*PCONC(:,18)*PC& -&ONC(:,14)+0.00853*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.37591*TPK%K069(:)*PCON& -&C(:,29)*PCONC(:,14)+0.00632*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.07377*TPK%K07& -&9(:)*PCONC(:,19)*PCONC(:,1)+0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.54531& -&*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.05220*TPK%K092(:)*PCONC(:,34)*PCONC(:,3)& -&+0.00000*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0.37862*TPK%K096(:)*PCONC(:,40)*PC& -&ONC(:,3)+0.09673*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.03814*TPK%K106(:)*PCONC& -&(:,34)*PCONC(:,32)+0.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32)+0.09667*TPK%K11& -&0(:)*PCONC(:,40)*PCONC(:,32)+0.18819*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.065& -&79*TPK%K112(:)*PCONC(:,34)*PCONC(:,39)+0.00000*TPK%K113(:)*PCONC(:,35)*PCONC(:& -&,39)+0.02190*TPK%K115(:)*PCONC(:,39)*PCONC(:,39)+0.10822*TPK%K116(:)*PCONC(:,4& -&0)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40)+0.62978*TPK%K120(:)& -&*PCONC(:,33)*PCONC(:,5)+0.02051*TPK%K121(:)*PCONC(:,34)*PCONC(:,5)+0.00000*TPK& -&%K122(:)*PCONC(:,35)*PCONC(:,5)+0.34740*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) -!PLOSS(KET) = +K015+K064*<OH> - PLOSS(:,24) = +TPK%K015(:)+TPK%K064(:)*PCONC(:,14) -! -!PPROD(CARBO) = +0.13255*K054*<BIO>*<O3P>+0.00835*K058*<ALKA>*<OH>+0.16919*K065 -!*<CARBO>*<OH>+0.21863*K070*<PAN>*<OH>+0.10530*K074*<CARBO>*<NO3>+0.00000*K076* -!<ALKE>*<NO3>+0.91741*K077*<BIO>*<NO3>+0.00000*K079*<ALKE>*<O3>+0.39754*K080*<B -!IO>*<O3>+1.07583*K081*<CARBO>*<O3>+0.03407*K091*<ALKAP>*<NO>+0.45463*K093*<BIO -!P>*<NO>+2.06993*K094*<AROP>*<NO>+0.08670*K095*<CARBOP>*<NO>+0.07976*K105*<ALKA -!P>*<MO2>+0.56064*K107*<BIOP>*<MO2>+1.99461*K108*<AROP>*<MO2>+0.15387*K109*<CAR -!BOP>*<MO2>+0.06954*K111*<ALKAP>*<CARBOP>+0.78591*K113*<BIOP>*<CARBOP>+1.99455* -!K114*<AROP>*<CARBOP>+0.10777*K115*<CARBOP>*<CARBOP>+0.03531*K120*<ALKAP>*<NO3> -!+0.61160*K122*<BIOP>*<NO3>+2.81904*K123*<AROP>*<NO3>+0.03455*K124*<CARBOP>*<NO -!3> - PPROD(:,25) = +0.13255*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.00835*TPK%K058(:)*& -&PCONC(:,18)*PCONC(:,14)+0.16919*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.21863*TP& -&K%K070(:)*PCONC(:,27)*PCONC(:,14)+0.10530*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0& -&.00000*TPK%K076(:)*PCONC(:,19)*PCONC(:,5)+0.91741*TPK%K077(:)*PCONC(:,20)*PCON& -&C(:,5)+0.00000*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.39754*TPK%K080(:)*PCONC(:,& -&20)*PCONC(:,1)+1.07583*TPK%K081(:)*PCONC(:,25)*PCONC(:,1)+0.03407*TPK%K091(:)*& -&PCONC(:,33)*PCONC(:,3)+0.45463*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+2.06993*TPK%& -&K094(:)*PCONC(:,38)*PCONC(:,3)+0.08670*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+0.07& -&976*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.56064*TPK%K107(:)*PCONC(:,35)*PCONC(& -&:,32)+1.99461*TPK%K108(:)*PCONC(:,38)*PCONC(:,32)+0.15387*TPK%K109(:)*PCONC(:,& -&39)*PCONC(:,32)+0.06954*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.78591*TPK%K113(:& -&)*PCONC(:,35)*PCONC(:,39)+1.99455*TPK%K114(:)*PCONC(:,38)*PCONC(:,39)+0.10777*& -&TPK%K115(:)*PCONC(:,39)*PCONC(:,39)+0.03531*TPK%K120(:)*PCONC(:,33)*PCONC(:,5)& -&+0.61160*TPK%K122(:)*PCONC(:,35)*PCONC(:,5)+2.81904*TPK%K123(:)*PCONC(:,38)*PC& -&ONC(:,5)+0.03455*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) -!PLOSS(CARBO) = +K016+K055*<O3P>+K065*<OH>+K074*<NO3>+K081*<O3> - PLOSS(:,25) = +TPK%K016(:)+TPK%K055(:)*TPK%O3P(:)+TPK%K065(:)*PCONC(:,14)+TPK%& -&K074(:)*PCONC(:,5)+TPK%K081(:)*PCONC(:,1) -! -!PPROD(ONIT) = +0.60*K078*<PAN>*<NO3>+K083*<PHO>*<NO2>+0.08459*K091*<ALKAP>*<NO -!>+0.15300*K093*<BIOP>*<NO>+0.04885*K094*<AROP>*<NO>+0.18401*K096*<OLN>*<NO>+K1 -!03*<OLN>*<HO2>+0.67560*K110*<OLN>*<MO2>+0.66562*K116*<OLN>*<CARBOP>+2.00*K117* -!<OLN>*<OLN>+0.00000*K118*<OLN>*<OLN>+0.25928*K125*<OLN>*<NO3> - PPROD(:,26) = +0.60*TPK%K078(:)*PCONC(:,27)*PCONC(:,5)+TPK%K083(:)*PCONC(:,36)& -&*PCONC(:,4)+0.08459*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.15300*TPK%K093(:)*PCO& -&NC(:,35)*PCONC(:,3)+0.04885*TPK%K094(:)*PCONC(:,38)*PCONC(:,3)+0.18401*TPK%K09& -&6(:)*PCONC(:,40)*PCONC(:,3)+TPK%K103(:)*PCONC(:,40)*PCONC(:,15)+0.67560*TPK%K1& -&10(:)*PCONC(:,40)*PCONC(:,32)+0.66562*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+2.00& -&*TPK%K117(:)*PCONC(:,40)*PCONC(:,40)+0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,4& -&0)+0.25928*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) -!PLOSS(ONIT) = +K017+K071*<OH> - PLOSS(:,26) = +TPK%K017(:)+TPK%K071(:)*PCONC(:,14) -! -!PPROD(PAN) = +0.28107*K070*<PAN>*<OH>+0.40000*K078*<PAN>*<NO3>+0.30000*K082*<P -!AN>*<O3>+1.00000*K088*<CARBOP>*<NO2> - PPROD(:,27) = +0.28107*TPK%K070(:)*PCONC(:,27)*PCONC(:,14)+0.40000*TPK%K078(:)& -&*PCONC(:,27)*PCONC(:,5)+0.30000*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+1.00000*TPK& -&%K088(:)*PCONC(:,39)*PCONC(:,4) -!PLOSS(PAN) = +K070*<OH>+K078*<NO3>+K082*<O3>+K089 - PLOSS(:,27) = +TPK%K070(:)*PCONC(:,14)+TPK%K078(:)*PCONC(:,5)+TPK%K082(:)*PCON& -&C(:,1)+TPK%K089(:) -! -!PPROD(OP1) = +K097*<MO2>*<HO2> - PPROD(:,28) = +TPK%K097(:)*PCONC(:,32)*PCONC(:,15) -!PLOSS(OP1) = +K013+K068*<OH> - PLOSS(:,28) = +TPK%K013(:)+TPK%K068(:)*PCONC(:,14) -! -!PPROD(OP2) = +0.10149*K081*<CARBO>*<O3>+1.00524*K098*<ALKAP>*<HO2>+1.00524*K09 -!9*<ALKEP>*<HO2>+1.00524*K0100*<BIOP>*<HO2>+1.00524*K0101*<AROP>*<HO2>+0.80904* -!K0102*<CARBOP>*<HO2>+1.00524*K126*<XO2>*<HO2> - PPROD(:,29) = +0.10149*TPK%K081(:)*PCONC(:,25)*PCONC(:,1)+1.00524*TPK%K098(:)*& -&PCONC(:,33)*PCONC(:,15)+1.00524*TPK%K099(:)*PCONC(:,34)*PCONC(:,15)+1.00524*TP& -&K%K0100(:)*PCONC(:,35)*PCONC(:,15)+1.00524*TPK%K0101(:)*PCONC(:,38)*PCONC(:,15& -&)+0.80904*TPK%K0102(:)*PCONC(:,39)*PCONC(:,15)+1.00524*TPK%K126(:)*PCONC(:,41)& -&*PCONC(:,15) -!PLOSS(OP2) = +K014+K069*<OH> - PLOSS(:,29) = +TPK%K014(:)+TPK%K069(:)*PCONC(:,14) +!PPROD(WR_NO3) = +KTR5*<NO3> + PPROD(:,129) = +TPK%KTR5(:)*PCONC(:,8) +!PLOSS(WR_NO3) = +KTR36+KR15*<WR_H2SO4>+KR16*<WR_SO2> + PLOSS(:,129) = +TPK%KTR36(:)+TPK%KR15(:)*PCONC(:,139)+TPK%KR16(:)*PCONC(:,138) ! -!PPROD(ORA1) = +0.00878*K058*<ALKA>*<OH>+0.15343*K079*<ALKE>*<O3>+0.15000*K080* -!<BIO>*<O3>+0.10788*K081*<CARBO>*<O3>+0.11*K082*<PAN>*<O3> - PPROD(:,30) = +0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0.15343*TPK%K079(:)& -&*PCONC(:,19)*PCONC(:,1)+0.15000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.10788*TPK& -&%K081(:)*PCONC(:,25)*PCONC(:,1)+0.11*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) -!PLOSS(ORA1) = +K066*<OH> - PLOSS(:,30) = +TPK%K066(:)*PCONC(:,14) +!PPROD(WR_N2O5) = +KTR6*<N2O5> + PPROD(:,130) = +TPK%KTR6(:)*PCONC(:,7) +!PLOSS(WR_N2O5) = +KTR37+KR14 + PLOSS(:,130) = +TPK%KTR37(:)+TPK%KR14(:) ! RETURN -END SUBROUTINE SUB2 +END SUBROUTINE SUB12 ! -SUBROUTINE SUB3 +SUBROUTINE SUB13 ! -!Indices 31 a 40 +!Indices 131 a 140 ! ! -!PPROD(ORA2) = +0.08143*K079*<ALKE>*<O3>+0.00000*K080*<BIO>*<O3>+0.20595*K081*< -!CARBO>*<O3>+0.17307*K0102*<CARBOP>*<HO2>+0.13684*K109*<CARBOP>*<MO2>+0.49810*K -!111*<ALKAP>*<CARBOP>+0.49922*K112*<ALKEP>*<CARBOP>+0.49400*K113*<BIOP>*<CARBOP -!>+0.09955*K115*<CARBOP>*<CARBOP>+0.48963*K116*<OLN>*<CARBOP> - PPROD(:,31) = +0.08143*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.00000*TPK%K080(:)*& -&PCONC(:,20)*PCONC(:,1)+0.20595*TPK%K081(:)*PCONC(:,25)*PCONC(:,1)+0.17307*TPK%& -&K0102(:)*PCONC(:,39)*PCONC(:,15)+0.13684*TPK%K109(:)*PCONC(:,39)*PCONC(:,32)+0& -&.49810*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.49922*TPK%K112(:)*PCONC(:,34)*PCO& -&NC(:,39)+0.49400*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+0.09955*TPK%K115(:)*PCONC& -&(:,39)*PCONC(:,39)+0.48963*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) -!PLOSS(ORA2) = +K067*<OH> - PLOSS(:,31) = +TPK%K067(:)*PCONC(:,14) -! -!PPROD(MO2) = +K012*<ALD>+0.03795*K014*<OP2>+K056*<CH4>*<OH>+0.65*K068*<OP1>*<O -!H>+0.13966*K079*<ALKE>*<O3>+0.03000*K080*<BIO>*<O3>+0.09016*K091*<ALKAP>*<NO>+ -!0.78134*K095*<CARBOP>*<NO>+0.01390*K105*<ALKAP>*<MO2>+0.56031*K109*<CARBOP>*<M -!O2>+0.51480*K111*<ALKAP>*<CARBOP>+0.50078*K112*<ALKEP>*<CARBOP>+0.50600*K113*< -!BIOP>*<CARBOP>+K114*<AROP>*<CARBOP>+1.66702*K115*<CARBOP>*<CARBOP>+0.51037*K11 -!6*<OLN>*<CARBOP>+0.09731*K120*<ALKAP>*<NO3>+0.91910*K124*<CARBOP>*<NO3>+K128*< -!XO2>*<CARBOP> - PPROD(:,32) = +TPK%K012(:)*PCONC(:,23)+0.03795*TPK%K014(:)*PCONC(:,29)+TPK%K05& -&6(:)*PCONC(:,16)*PCONC(:,14)+0.65*TPK%K068(:)*PCONC(:,28)*PCONC(:,14)+0.13966*& -&TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.03000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+& -&0.09016*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.78134*TPK%K095(:)*PCONC(:,39)*PCO& -&NC(:,3)+0.01390*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.56031*TPK%K109(:)*PCONC(& -&:,39)*PCONC(:,32)+0.51480*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.50078*TPK%K112& -&(:)*PCONC(:,34)*PCONC(:,39)+0.50600*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+TPK%K1& -&14(:)*PCONC(:,38)*PCONC(:,39)+1.66702*TPK%K115(:)*PCONC(:,39)*PCONC(:,39)+0.51& -&037*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+0.09731*TPK%K120(:)*PCONC(:,33)*PCONC(& -&:,5)+0.91910*TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+TPK%K128(:)*PCONC(:,41)*PCONC(& -&:,39) -!PLOSS(MO2) = +K090*<NO>+K097*<HO2>+K104*<MO2>+K104*<MO2>+K105*<ALKAP>+K106*<AL -!KEP>+K107*<BIOP>+K108*<AROP>+K109*<CARBOP>+K110*<OLN>+K119*<NO3>+K127*<XO2> - PLOSS(:,32) = +TPK%K090(:)*PCONC(:,3)+TPK%K097(:)*PCONC(:,15)+TPK%K104(:)*PCON& -&C(:,32)+TPK%K104(:)*PCONC(:,32)+TPK%K105(:)*PCONC(:,33)+TPK%K106(:)*PCONC(:,34& -&)+TPK%K107(:)*PCONC(:,35)+TPK%K108(:)*PCONC(:,38)+TPK%K109(:)*PCONC(:,39)+TPK%& -&K110(:)*PCONC(:,40)+TPK%K119(:)*PCONC(:,5)+TPK%K127(:)*PCONC(:,41) -! -!PPROD(ALKAP) = +1.00000*K015*<KET>+K057*<ETH>*<OH>+0.87811*K058*<ALKA>*<OH>+0. -!40341*K069*<OP2>*<OH>+1.00000*K071*<ONIT>*<OH>+0.09815*K079*<ALKE>*<O3>+0.0000 -!0*K080*<BIO>*<O3>+0.08187*K091*<ALKAP>*<NO>+0.00385*K105*<ALKAP>*<MO2>+0.00828 -!*K111*<ALKAP>*<CARBOP>+0.08994*K120*<ALKAP>*<NO3> - PPROD(:,33) = +1.00000*TPK%K015(:)*PCONC(:,24)+TPK%K057(:)*PCONC(:,17)*PCONC(:& -&,14)+0.87811*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0.40341*TPK%K069(:)*PCONC(:,2& -&9)*PCONC(:,14)+1.00000*TPK%K071(:)*PCONC(:,26)*PCONC(:,14)+0.09815*TPK%K079(:)& -&*PCONC(:,19)*PCONC(:,1)+0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.08187*TPK& -&%K091(:)*PCONC(:,33)*PCONC(:,3)+0.00385*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.& -&00828*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.08994*TPK%K120(:)*PCONC(:,33)*PCON& -&C(:,5) -!PLOSS(ALKAP) = +K091*<NO>+K098*<HO2>+K105*<MO2>+K111*<CARBOP>+K120*<NO3> - PLOSS(:,33) = +TPK%K091(:)*PCONC(:,3)+TPK%K098(:)*PCONC(:,15)+TPK%K105(:)*PCON& -&C(:,32)+TPK%K111(:)*PCONC(:,39)+TPK%K120(:)*PCONC(:,5) -! -!PPROD(ALKEP) = +1.02529*K059*<ALKE>*<OH> - PPROD(:,34) = +1.02529*TPK%K059(:)*PCONC(:,19)*PCONC(:,14) -!PLOSS(ALKEP) = +K092*<NO>+K099*<HO2>+K106*<MO2>+K112*<CARBOP>+K121*<NO3> - PLOSS(:,34) = +TPK%K092(:)*PCONC(:,3)+TPK%K099(:)*PCONC(:,15)+TPK%K106(:)*PCON& -&C(:,32)+TPK%K112(:)*PCONC(:,39)+TPK%K121(:)*PCONC(:,5) -! -!PPROD(BIOP) = +0.00000*K059*<ALKE>*<OH>+1.00000*K060*<BIO>*<OH> - PPROD(:,35) = +0.00000*TPK%K059(:)*PCONC(:,19)*PCONC(:,14)+1.00000*TPK%K060(:)& -&*PCONC(:,20)*PCONC(:,14) -!PLOSS(BIOP) = +K093*<NO>+K0100*<HO2>+K107*<MO2>+K113*<CARBOP>+K122*<NO3> - PLOSS(:,35) = +TPK%K093(:)*PCONC(:,3)+TPK%K0100(:)*PCONC(:,15)+TPK%K107(:)*PCO& -&NC(:,32)+TPK%K113(:)*PCONC(:,39)+TPK%K122(:)*PCONC(:,5) -! -!PPROD(PHO) = +0.00276*K061*<ARO>*<OH>+K075*<ARO>*<NO3> - PPROD(:,36) = +0.00276*TPK%K061(:)*PCONC(:,21)*PCONC(:,14)+TPK%K075(:)*PCONC(:& -&,21)*PCONC(:,5) -!PLOSS(PHO) = +K083*<NO2>+K084*<HO2> - PLOSS(:,36) = +TPK%K083(:)*PCONC(:,4)+TPK%K084(:)*PCONC(:,15) -! -!PPROD(ADD) = +0.93968*K061*<ARO>*<OH> - PPROD(:,37) = +0.93968*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) -!PLOSS(ADD) = +K085*<NO2>+K086*<O2>+K087*<O3> - PLOSS(:,37) = +TPK%K085(:)*PCONC(:,4)+TPK%K086(:)*TPK%O2(:)+TPK%K087(:)*PCONC(& -&:,1) -! -!PPROD(AROP) = +0.98*K086*<ADD>*<O2> - PPROD(:,38) = +0.98*TPK%K086(:)*PCONC(:,37)*TPK%O2(:) -!PLOSS(AROP) = +K094*<NO>+K0101*<HO2>+K108*<MO2>+K114*<CARBOP>+K123*<NO3> - PLOSS(:,38) = +TPK%K094(:)*PCONC(:,3)+TPK%K0101(:)*PCONC(:,15)+TPK%K108(:)*PCO& -&NC(:,32)+TPK%K114(:)*PCONC(:,39)+TPK%K123(:)*PCONC(:,5) -! -!PPROD(CARBOP) = +1.00000*K015*<KET>+0.69622*K016*<CARBO>+1.00000*K063*<ALD>*<O -!H>+1.00000*K064*<KET>*<OH>+0.51419*K065*<CARBO>*<OH>+0.05413*K069*<OP2>*<OH>+1 -!.00000*K073*<ALD>*<NO3>+0.38881*K074*<CARBO>*<NO3>+0.05705*K079*<ALKE>*<O3>+0. -!17000*K080*<BIO>*<O3>+0.27460*K081*<CARBO>*<O3>+0.70000*K082*<PAN>*<O3>+1.0000 -!0*K089*<PAN>+0.09532*K095*<CARBOP>*<NO>+0.05954*K109*<CARBOP>*<MO2>+0.05821*K1 -!15*<CARBOP>*<CARBOP>+0.03175*K124*<CARBOP>*<NO3> - PPROD(:,39) = +1.00000*TPK%K015(:)*PCONC(:,24)+0.69622*TPK%K016(:)*PCONC(:,25)& -&+1.00000*TPK%K063(:)*PCONC(:,23)*PCONC(:,14)+1.00000*TPK%K064(:)*PCONC(:,24)*P& -&CONC(:,14)+0.51419*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.05413*TPK%K069(:)*PCO& -&NC(:,29)*PCONC(:,14)+1.00000*TPK%K073(:)*PCONC(:,23)*PCONC(:,5)+0.38881*TPK%K0& -&74(:)*PCONC(:,25)*PCONC(:,5)+0.05705*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.1700& -&0*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.27460*TPK%K081(:)*PCONC(:,25)*PCONC(:,1& -&)+0.70000*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+1.00000*TPK%K089(:)*PCONC(:,27)+0& -&.09532*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+0.05954*TPK%K109(:)*PCONC(:,39)*PCON& -&C(:,32)+0.05821*TPK%K115(:)*PCONC(:,39)*PCONC(:,39)+0.03175*TPK%K124(:)*PCONC(& -&:,39)*PCONC(:,5) -!PLOSS(CARBOP) = +K088*<NO2>+K095*<NO>+K0102*<HO2>+K109*<MO2>+K111*<ALKAP>+K112 -!*<ALKEP>+K113*<BIOP>+K114*<AROP>+K115*<CARBOP>+K115*<CARBOP>+K116*<OLN>+K124*< -!NO3>+K128*<XO2> - PLOSS(:,39) = +TPK%K088(:)*PCONC(:,4)+TPK%K095(:)*PCONC(:,3)+TPK%K0102(:)*PCON& -&C(:,15)+TPK%K109(:)*PCONC(:,32)+TPK%K111(:)*PCONC(:,33)+TPK%K112(:)*PCONC(:,34& -&)+TPK%K113(:)*PCONC(:,35)+TPK%K114(:)*PCONC(:,38)+TPK%K115(:)*PCONC(:,39)+TPK%& -&K115(:)*PCONC(:,39)+TPK%K116(:)*PCONC(:,40)+TPK%K124(:)*PCONC(:,5)+TPK%K128(:)& -&*PCONC(:,41) -! -!PPROD(OLN) = +0.00000*K074*<CARBO>*<NO3>+0.93768*K076*<ALKE>*<NO3>+1.00000*K07 -!7*<BIO>*<NO3> - PPROD(:,40) = +0.00000*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.93768*TPK%K076(:)*& -&PCONC(:,19)*PCONC(:,5)+1.00000*TPK%K077(:)*PCONC(:,20)*PCONC(:,5) -!PLOSS(OLN) = +K096*<NO>+K103*<HO2>+K110*<MO2>+K116*<CARBOP>+K117*<OLN>+K117*<O -!LN>+K118*<OLN>+K118*<OLN>+K125*<NO3> - PLOSS(:,40) = +TPK%K096(:)*PCONC(:,3)+TPK%K103(:)*PCONC(:,15)+TPK%K110(:)*PCON& -&C(:,32)+TPK%K116(:)*PCONC(:,39)+TPK%K117(:)*PCONC(:,40)+TPK%K117(:)*PCONC(:,40& -&)+TPK%K118(:)*PCONC(:,40)+TPK%K118(:)*PCONC(:,40)+TPK%K125(:)*PCONC(:,5) +!PPROD(WR_HONO) = +KTR7*<HONO>+KR11*<WR_HNO4> + PPROD(:,131) = +TPK%KTR7(:)*PCONC(:,4)+TPK%KR11(:)*PCONC(:,133) +!PLOSS(WR_HONO) = +KTR38+KR8*<WR_OH> + PLOSS(:,131) = +TPK%KTR38(:)+TPK%KR8(:)*PCONC(:,135) +! +!PPROD(WR_HNO3) = +KTR8*<HNO3>+KR12*<WR_SO2>*<WR_HNO4>+KR14*<WR_N2O5>+KR14*<WR_ +!N2O5>+KR15*<WR_H2SO4>*<WR_NO3>+KR16*<WR_SO2>*<WR_NO3> + PPROD(:,132) = +TPK%KTR8(:)*PCONC(:,5)+TPK%KR12(:)*PCONC(:,138)*PCONC(:,133)+T& +&PK%KR14(:)*PCONC(:,130)+TPK%KR14(:)*PCONC(:,130)+TPK%KR15(:)*PCONC(:,139)*PCON& +&C(:,129)+TPK%KR16(:)*PCONC(:,138)*PCONC(:,129) +!PLOSS(WR_HNO3) = +KTR39+KR13 + PLOSS(:,132) = +TPK%KTR39(:)+TPK%KR13(:) +! +!PPROD(WR_HNO4) = +KTR9*<HNO4>+KR9*<WR_HO2>*<WR_NO2> + PPROD(:,133) = +TPK%KTR9(:)*PCONC(:,6)+TPK%KR9(:)*PCONC(:,136)*PCONC(:,128) +!PLOSS(WR_HNO4) = +KTR40+KR10+KR11+KR12*<WR_SO2> + PLOSS(:,133) = +TPK%KTR40(:)+TPK%KR10(:)+TPK%KR11(:)+TPK%KR12(:)*PCONC(:,138) +! +!PPROD(WR_NH3) = +KTR10*<NH3> + PPROD(:,134) = +TPK%KTR10(:)*PCONC(:,9) +!PLOSS(WR_NH3) = +KTR41 + PLOSS(:,134) = +TPK%KTR41(:) +! +!PPROD(WR_OH) = +KTR11*<OH>+KR1*<WR_H2O2>+KR1*<WR_H2O2>+KR6*<WR_HO2>*<WR_O3>+KR +!13*<WR_HNO3>+KR24*<WR_ASO4> + PPROD(:,135) = +TPK%KTR11(:)*PCONC(:,15)+TPK%KR1(:)*PCONC(:,126)+TPK%KR1(:)*PC& +&ONC(:,126)+TPK%KR6(:)*PCONC(:,136)*PCONC(:,125)+TPK%KR13(:)*PCONC(:,132)+TPK%K& +&R24(:)*PCONC(:,158) +!PLOSS(WR_OH) = +KTR42+KR2*<WR_OH>+KR2*<WR_OH>+KR3*<WR_HO2>+KR4*<WR_H2O2>+KR7*< +!WR_SO2>+KR8*<WR_HONO>+KR19*<WR_AHMS>+KR30*<WR_MEOH>+KR31*<WR_ETOH>+KR32*<WR_AL +!CH>+KR33*<WR_HCHO>+KR34*<WR_ALD2>+KR35*<WR_GLY>+KR36*<WR_MGLY>+KR37*<WR_KETL>+ +!KR38*<WR_ORA1>+KR39*<WR_ORA2>+KR40*<WR_ACID>+KR41*<WR_ACID>+KR42*<WR_UR28>+KR4 +!3*<WR_UR21>+KR44*<WR_RP16>+KR45*<WR_RP16>+KR46*<WR_ACID2> + PLOSS(:,135) = +TPK%KTR42(:)+TPK%KR2(:)*PCONC(:,135)+TPK%KR2(:)*PCONC(:,135)+T& +&PK%KR3(:)*PCONC(:,136)+TPK%KR4(:)*PCONC(:,126)+TPK%KR7(:)*PCONC(:,138)+TPK%KR8& +&(:)*PCONC(:,131)+TPK%KR19(:)*PCONC(:,161)+TPK%KR30(:)*PCONC(:,142)+TPK%KR31(:)& +&*PCONC(:,143)+TPK%KR32(:)*PCONC(:,144)+TPK%KR33(:)*PCONC(:,145)+TPK%KR34(:)*PC& +&ONC(:,146)+TPK%KR35(:)*PCONC(:,147)+TPK%KR36(:)*PCONC(:,148)+TPK%KR37(:)*PCONC& +&(:,149)+TPK%KR38(:)*PCONC(:,150)+TPK%KR39(:)*PCONC(:,151)+TPK%KR40(:)*PCONC(:,& +&152)+TPK%KR41(:)*PCONC(:,152)+TPK%KR42(:)*PCONC(:,155)+TPK%KR43(:)*PCONC(:,154& +&)+TPK%KR44(:)*PCONC(:,153)+TPK%KR45(:)*PCONC(:,153)+TPK%KR46(:)*PCONC(:,156) +! +!PPROD(WR_HO2) = +KTR12*<HO2>+KR4*<WR_OH>*<WR_H2O2>+KR10*<WR_HNO4>+KR19*<WR_OH> +!*<WR_AHMS>+2.00*KR27*<WR_RO21>*<WR_RO21>+KR29*<WR_RO25>*<WR_RO25>+KR30*<WR_OH> +!*<WR_MEOH>+KR31*<WR_OH>*<WR_ETOH>+KR32*<WR_OH>*<WR_ALCH>+KR33*<WR_OH>*<WR_HCHO +!>+KR35*<WR_OH>*<WR_GLY>+KR36*<WR_OH>*<WR_MGLY>+KR37*<WR_OH>*<WR_KETL>+KR38*<WR +!_OH>*<WR_ORA1>+0.11*KR41*<WR_OH>*<WR_ACID>+KR42*<WR_OH>*<WR_UR28>+0.81*KR43*<W +!R_OH>*<WR_UR21>+KR44*<WR_OH>*<WR_RP16>+0.71*KR45*<WR_OH>*<WR_RP16> + PPROD(:,136) = +TPK%KTR12(:)*PCONC(:,10)+TPK%KR4(:)*PCONC(:,135)*PCONC(:,126)+& +&TPK%KR10(:)*PCONC(:,133)+TPK%KR19(:)*PCONC(:,135)*PCONC(:,161)+2.00*TPK%KR27(:& +&)*PCONC(:,140)*PCONC(:,140)+TPK%KR29(:)*PCONC(:,141)*PCONC(:,141)+TPK%KR30(:)*& +&PCONC(:,135)*PCONC(:,142)+TPK%KR31(:)*PCONC(:,135)*PCONC(:,143)+TPK%KR32(:)*PC& +&ONC(:,135)*PCONC(:,144)+TPK%KR33(:)*PCONC(:,135)*PCONC(:,145)+TPK%KR35(:)*PCON& +&C(:,135)*PCONC(:,147)+TPK%KR36(:)*PCONC(:,135)*PCONC(:,148)+TPK%KR37(:)*PCONC(& +&:,135)*PCONC(:,149)+TPK%KR38(:)*PCONC(:,135)*PCONC(:,150)+0.11*TPK%KR41(:)*PCO& +&NC(:,135)*PCONC(:,152)+TPK%KR42(:)*PCONC(:,135)*PCONC(:,155)+0.81*TPK%KR43(:)*& +&PCONC(:,135)*PCONC(:,154)+TPK%KR44(:)*PCONC(:,135)*PCONC(:,153)+0.71*TPK%KR45(& +&:)*PCONC(:,135)*PCONC(:,153) +!PLOSS(WR_HO2) = +KTR43+KR3*<WR_OH>+KR5*<WR_HO2>+KR5*<WR_HO2>+KR6*<WR_O3>+KR9*< +!WR_NO2>+KR21*<WR_ASO5> + PLOSS(:,136) = +TPK%KTR43(:)+TPK%KR3(:)*PCONC(:,135)+TPK%KR5(:)*PCONC(:,136)+T& +&PK%KR5(:)*PCONC(:,136)+TPK%KR6(:)*PCONC(:,125)+TPK%KR9(:)*PCONC(:,128)+TPK%KR2& +&1(:)*PCONC(:,159) +! +!PPROD(WR_CO2) = +KTR13*<CO2>+KR34*<WR_OH>*<WR_ALD2>+KR37*<WR_OH>*<WR_KETL>+KR3 +!8*<WR_OH>*<WR_ORA1>+KR40*<WR_OH>*<WR_ACID>+2*KR42*<WR_OH>*<WR_UR28>+0.43*KR43* +!<WR_OH>*<WR_UR21>+2*KR45*<WR_OH>*<WR_RP16> + PPROD(:,137) = +TPK%KTR13(:)*TPK%CO2(:)+TPK%KR34(:)*PCONC(:,135)*PCONC(:,146)+& +&TPK%KR37(:)*PCONC(:,135)*PCONC(:,149)+TPK%KR38(:)*PCONC(:,135)*PCONC(:,150)+TP& +&K%KR40(:)*PCONC(:,135)*PCONC(:,152)+2*TPK%KR42(:)*PCONC(:,135)*PCONC(:,155)+0.& +&43*TPK%KR43(:)*PCONC(:,135)*PCONC(:,154)+2*TPK%KR45(:)*PCONC(:,135)*PCONC(:,15& +&3) +!PLOSS(WR_CO2) = +KTR44 + PLOSS(:,137) = +TPK%KTR44(:) +! +!PPROD(WR_SO2) = +KTR14*<SO2>+KR18*<WR_AHMS>+KR19*<WR_OH>*<WR_AHMS> + PPROD(:,138) = +TPK%KTR14(:)*PCONC(:,13)+TPK%KR18(:)*PCONC(:,161)+TPK%KR19(:)*& +&PCONC(:,135)*PCONC(:,161) +!PLOSS(WR_SO2) = +KTR45+KR7*<WR_OH>+KR12*<WR_HNO4>+KR16*<WR_NO3>+KR17*<WR_HCHO> +!+KR23*<WR_AHSO5>+KR25*<WR_O3>+KR26*<WR_H2O2>+KR28*<WR_RO21> + PLOSS(:,138) = +TPK%KTR45(:)+TPK%KR7(:)*PCONC(:,135)+TPK%KR12(:)*PCONC(:,133)+& +&TPK%KR16(:)*PCONC(:,129)+TPK%KR17(:)*PCONC(:,145)+TPK%KR23(:)*PCONC(:,160)+TPK& +&%KR25(:)*PCONC(:,125)+TPK%KR26(:)*PCONC(:,126)+TPK%KR28(:)*PCONC(:,140) +! +!PPROD(WR_H2SO4) = +KTR15*<H2SO4>+KR12*<WR_SO2>*<WR_HNO4>+2.00*KR23*<WR_SO2>*<W +!R_AHSO5>+KR24*<WR_ASO4>+KR25*<WR_O3>*<WR_SO2>+KR26*<WR_H2O2>*<WR_SO2> + PPROD(:,139) = +TPK%KTR15(:)*PCONC(:,14)+TPK%KR12(:)*PCONC(:,138)*PCONC(:,133)& +&+2.00*TPK%KR23(:)*PCONC(:,138)*PCONC(:,160)+TPK%KR24(:)*PCONC(:,158)+TPK%KR25(& +&:)*PCONC(:,125)*PCONC(:,138)+TPK%KR26(:)*PCONC(:,126)*PCONC(:,138) +!PLOSS(WR_H2SO4) = +KTR46+KR15*<WR_NO3> + PLOSS(:,139) = +TPK%KTR46(:)+TPK%KR15(:)*PCONC(:,129) +! +!PPROD(WR_RO21) = +KTR16*<RO21>+0.50*KR34*<WR_OH>*<WR_ALD2>+KR37*<WR_OH>*<WR_KE +!TL> + PPROD(:,140) = +TPK%KTR16(:)*PCONC(:,86)+0.50*TPK%KR34(:)*PCONC(:,135)*PCONC(:& +&,146)+TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) +!PLOSS(WR_RO21) = +KTR47+KR27*<WR_RO21>+KR27*<WR_RO21>+KR28*<WR_SO2> + PLOSS(:,140) = +TPK%KTR47(:)+TPK%KR27(:)*PCONC(:,140)+TPK%KR27(:)*PCONC(:,140)& +&+TPK%KR28(:)*PCONC(:,138) ! RETURN -END SUBROUTINE SUB3 +END SUBROUTINE SUB13 +! +SUBROUTINE SUB14 +! +!Indices 141 a 150 +! +! +!PPROD(WR_RO25) = +KTR17*<RO25>+0.50*KR34*<WR_OH>*<WR_ALD2>+KR40*<WR_OH>*<WR_AC +!ID> + PPROD(:,141) = +TPK%KTR17(:)*PCONC(:,87)+0.50*TPK%KR34(:)*PCONC(:,135)*PCONC(:& +&,146)+TPK%KR40(:)*PCONC(:,135)*PCONC(:,152) +!PLOSS(WR_RO25) = +KTR48+KR29*<WR_RO25>+KR29*<WR_RO25> + PLOSS(:,141) = +TPK%KTR48(:)+TPK%KR29(:)*PCONC(:,141)+TPK%KR29(:)*PCONC(:,141) +! +!PPROD(WR_MEOH) = +KTR18*<MEOH> + PPROD(:,142) = +TPK%KTR18(:)*PCONC(:,32) +!PLOSS(WR_MEOH) = +KTR49+KR30*<WR_OH> + PLOSS(:,142) = +TPK%KTR49(:)+TPK%KR30(:)*PCONC(:,135) +! +!PPROD(WR_ETOH) = +KTR19*<ETOH> + PPROD(:,143) = +TPK%KTR19(:)*PCONC(:,33) +!PLOSS(WR_ETOH) = +KTR50+KR31*<WR_OH> + PLOSS(:,143) = +TPK%KTR50(:)+TPK%KR31(:)*PCONC(:,135) +! +!PPROD(WR_ALCH) = +KTR20*<ALCH> + PPROD(:,144) = +TPK%KTR20(:)*PCONC(:,34) +!PLOSS(WR_ALCH) = +KTR51+KR32*<WR_OH> + PLOSS(:,144) = +TPK%KTR51(:)+TPK%KR32(:)*PCONC(:,135) +! +!PPROD(WR_HCHO) = +KTR21*<HCHO>+KR18*<WR_AHMS>+2.00*KR27*<WR_RO21>*<WR_RO21>+KR +!28*<WR_SO2>*<WR_RO21>+KR30*<WR_OH>*<WR_MEOH>+KR37*<WR_OH>*<WR_KETL> + PPROD(:,145) = +TPK%KTR21(:)*PCONC(:,28)+TPK%KR18(:)*PCONC(:,161)+2.00*TPK%KR2& +&7(:)*PCONC(:,140)*PCONC(:,140)+TPK%KR28(:)*PCONC(:,138)*PCONC(:,140)+TPK%KR30(& +&:)*PCONC(:,135)*PCONC(:,142)+TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) +!PLOSS(WR_HCHO) = +KTR52+KR17*<WR_SO2>+KR33*<WR_OH> + PLOSS(:,145) = +TPK%KTR52(:)+TPK%KR17(:)*PCONC(:,138)+TPK%KR33(:)*PCONC(:,135) +! +!PPROD(WR_ALD2) = +KTR22*<ALD2>+KR29*<WR_RO25>*<WR_RO25>+KR31*<WR_OH>*<WR_ETOH> +!+0.50*KR32*<WR_OH>*<WR_ALCH>+KR37*<WR_OH>*<WR_KETL>+0.29*KR41*<WR_OH>*<WR_ACID +!>+0.43*KR43*<WR_OH>*<WR_UR21> + PPROD(:,146) = +TPK%KTR22(:)*PCONC(:,29)+TPK%KR29(:)*PCONC(:,141)*PCONC(:,141)& +&+TPK%KR31(:)*PCONC(:,135)*PCONC(:,143)+0.50*TPK%KR32(:)*PCONC(:,135)*PCONC(:,1& +&44)+TPK%KR37(:)*PCONC(:,135)*PCONC(:,149)+0.29*TPK%KR41(:)*PCONC(:,135)*PCONC(& +&:,152)+0.43*TPK%KR43(:)*PCONC(:,135)*PCONC(:,154) +!PLOSS(WR_ALD2) = +KTR53+KR34*<WR_OH> + PLOSS(:,146) = +TPK%KTR53(:)+TPK%KR34(:)*PCONC(:,135) +! +!PPROD(WR_GLY) = +KTR23*<GLY> + PPROD(:,147) = +TPK%KTR23(:)*PCONC(:,42) +!PLOSS(WR_GLY) = +KTR54+KR35*<WR_OH> + PLOSS(:,147) = +TPK%KTR54(:)+TPK%KR35(:)*PCONC(:,135) +! +!PPROD(WR_MGLY) = +KTR25*<MGLY>+KR37*<WR_OH>*<WR_KETL> + PPROD(:,148) = +TPK%KTR25(:)*PCONC(:,41)+TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) +!PLOSS(WR_MGLY) = +KTR56+KR36*<WR_OH> + PLOSS(:,148) = +TPK%KTR56(:)+TPK%KR36(:)*PCONC(:,135) +! +!PPROD(WR_KETL) = +KTR24*<KETL>+0.50*KR32*<WR_OH>*<WR_ALCH>+KR37*<WR_OH>*<WR_KE +!TL> + PPROD(:,149) = +TPK%KTR24(:)*PCONC(:,30)+0.50*TPK%KR32(:)*PCONC(:,135)*PCONC(:& +&,144)+TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) +!PLOSS(WR_KETL) = +KTR55+KR37*<WR_OH> + PLOSS(:,149) = +TPK%KTR55(:)+TPK%KR37(:)*PCONC(:,135) +! +!PPROD(WR_ORA1) = +KTR26*<ORA1>+KR19*<WR_OH>*<WR_AHMS>+KR33*<WR_OH>*<WR_HCHO> + PPROD(:,150) = +TPK%KTR26(:)*PCONC(:,43)+TPK%KR19(:)*PCONC(:,135)*PCONC(:,161)& +&+TPK%KR33(:)*PCONC(:,135)*PCONC(:,145) +!PLOSS(WR_ORA1) = +KTR57+KR38*<WR_OH> + PLOSS(:,150) = +TPK%KTR57(:)+TPK%KR38(:)*PCONC(:,135) ! -SUBROUTINE SUB4 +RETURN +END SUBROUTINE SUB14 +! +SUBROUTINE SUB15 +! +!Indices 151 a 160 +! +! +!PPROD(WR_ORA2) = +KTR27*<ORA2>+KR29*<WR_RO25>*<WR_RO25> + PPROD(:,151) = +TPK%KTR27(:)*PCONC(:,44)+TPK%KR29(:)*PCONC(:,141)*PCONC(:,141) +!PLOSS(WR_ORA2) = +KTR58+KR39*<WR_OH> + PLOSS(:,151) = +TPK%KTR58(:)+TPK%KR39(:)*PCONC(:,135) +! +!PPROD(WR_ACID) = +KTR28*<ACID> + PPROD(:,152) = +TPK%KTR28(:)*PCONC(:,45) +!PLOSS(WR_ACID) = +KTR59+KR40*<WR_OH>+KR41*<WR_OH> + PLOSS(:,152) = +TPK%KTR59(:)+TPK%KR40(:)*PCONC(:,135)+TPK%KR41(:)*PCONC(:,135) +! +!PPROD(WR_RP16) = +KTR29*<RP16>+KR35*<WR_OH>*<WR_GLY>+KR39*<WR_OH>*<WR_ORA2> + PPROD(:,153) = +TPK%KTR29(:)*PCONC(:,74)+TPK%KR35(:)*PCONC(:,135)*PCONC(:,147)& +&+TPK%KR39(:)*PCONC(:,135)*PCONC(:,151) +!PLOSS(WR_RP16) = +KTR60+KR44*<WR_OH>+KR45*<WR_OH> + PLOSS(:,153) = +TPK%KTR60(:)+TPK%KR44(:)*PCONC(:,135)+TPK%KR45(:)*PCONC(:,135) +! +!PPROD(WR_UR21) = +KTR30*<UR21>+KR36*<WR_OH>*<WR_MGLY>+KR37*<WR_OH>*<WR_KETL>+0 +!.56*KR41*<WR_OH>*<WR_ACID> + PPROD(:,154) = +TPK%KTR30(:)*PCONC(:,47)+TPK%KR36(:)*PCONC(:,135)*PCONC(:,148)& +&+TPK%KR37(:)*PCONC(:,135)*PCONC(:,149)+0.56*TPK%KR41(:)*PCONC(:,135)*PCONC(:,1& +&52) +!PLOSS(WR_UR21) = +KTR61+KR43*<WR_OH> + PLOSS(:,154) = +TPK%KTR61(:)+TPK%KR43(:)*PCONC(:,135) +! +!PPROD(WR_UR28) = +KTR31*<UR28>+KR44*<WR_OH>*<WR_RP16> + PPROD(:,155) = +TPK%KTR31(:)*PCONC(:,46)+TPK%KR44(:)*PCONC(:,135)*PCONC(:,153) +!PLOSS(WR_UR28) = +KTR62+KR42*<WR_OH> + PLOSS(:,155) = +TPK%KTR62(:)+TPK%KR42(:)*PCONC(:,135) +! +!PPROD(WR_ACID2) = +0.15*KR41*<WR_OH>*<WR_ACID>+0.56*KR43*<WR_OH>*<WR_UR21> + PPROD(:,156) = +0.15*TPK%KR41(:)*PCONC(:,135)*PCONC(:,152)+0.56*TPK%KR43(:)*PC& +&ONC(:,135)*PCONC(:,154) +!PLOSS(WR_ACID2) = +KR46*<WR_OH> + PLOSS(:,156) = +TPK%KR46(:)*PCONC(:,135) +! +!PPROD(WR_ASO3) = +KR7*<WR_SO2>*<WR_OH>+KR16*<WR_SO2>*<WR_NO3>+KR28*<WR_SO2>*<W +!R_RO21> + PPROD(:,157) = +TPK%KR7(:)*PCONC(:,138)*PCONC(:,135)+TPK%KR16(:)*PCONC(:,138)*& +&PCONC(:,129)+TPK%KR28(:)*PCONC(:,138)*PCONC(:,140) +!PLOSS(WR_ASO3) = +KR20*<W_O2> + PLOSS(:,157) = +TPK%KR20(:)*TPK%W_O2(:) +! +!PPROD(WR_ASO4) = +KR15*<WR_H2SO4>*<WR_NO3>+KR22*<WR_ASO5>*<WR_ASO5>+KR22*<WR_A +!SO5>*<WR_ASO5> + PPROD(:,158) = +TPK%KR15(:)*PCONC(:,139)*PCONC(:,129)+TPK%KR22(:)*PCONC(:,159)& +&*PCONC(:,159)+TPK%KR22(:)*PCONC(:,159)*PCONC(:,159) +!PLOSS(WR_ASO4) = +KR24 + PLOSS(:,158) = +TPK%KR24(:) +! +!PPROD(WR_ASO5) = +KR20*<W_O2>*<WR_ASO3> + PPROD(:,159) = +TPK%KR20(:)*TPK%W_O2(:)*PCONC(:,157) +!PLOSS(WR_ASO5) = +KR21*<WR_HO2>+KR22*<WR_ASO5>+KR22*<WR_ASO5> + PLOSS(:,159) = +TPK%KR21(:)*PCONC(:,136)+TPK%KR22(:)*PCONC(:,159)+TPK%KR22(:)*& +&PCONC(:,159) +! +!PPROD(WR_AHSO5) = +KR21*<WR_HO2>*<WR_ASO5> + PPROD(:,160) = +TPK%KR21(:)*PCONC(:,136)*PCONC(:,159) +!PLOSS(WR_AHSO5) = +KR23*<WR_SO2> + PLOSS(:,160) = +TPK%KR23(:)*PCONC(:,138) +! +RETURN +END SUBROUTINE SUB15 ! -!Indices 41 a 41 -! -! -!PPROD(XO2) = +0.15*K054*<BIO>*<O3P>+0.10318*K061*<ARO>*<OH>+0.10162*K065*<CARB -!O>*<OH>+0.09333*K069*<OP2>*<OH>+K070*<PAN>*<OH>+0.10530*K074*<CARBO>*<NO3>+K07 -!8*<PAN>*<NO3>+0.00000*K079*<ALKE>*<O3>+0.13000*K080*<BIO>*<O3>+0.13007*K091*<A -!LKAP>*<NO>+0.02563*K095*<CARBOP>*<NO>+0.13370*K105*<ALKAP>*<MO2>+0.02212*K109* -!<CARBOP>*<MO2>+0.11306*K111*<ALKAP>*<CARBOP>+0.01593*K115*<CARBOP>*<CARBOP>+0. -!16271*K120*<ALKAP>*<NO3>+0.01021*K124*<CARBOP>*<NO3> - PPROD(:,41) = +0.15*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.10318*TPK%K061(:)*PCO& -&NC(:,21)*PCONC(:,14)+0.10162*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.09333*TPK%K& -&069(:)*PCONC(:,29)*PCONC(:,14)+TPK%K070(:)*PCONC(:,27)*PCONC(:,14)+0.10530*TPK& -&%K074(:)*PCONC(:,25)*PCONC(:,5)+TPK%K078(:)*PCONC(:,27)*PCONC(:,5)+0.00000*TPK& -&%K079(:)*PCONC(:,19)*PCONC(:,1)+0.13000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.1& -&3007*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.02563*TPK%K095(:)*PCONC(:,39)*PCONC(& -&:,3)+0.13370*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.02212*TPK%K109(:)*PCONC(:,3& -&9)*PCONC(:,32)+0.11306*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.01593*TPK%K115(:)& -&*PCONC(:,39)*PCONC(:,39)+0.16271*TPK%K120(:)*PCONC(:,33)*PCONC(:,5)+0.01021*TP& -&K%K124(:)*PCONC(:,39)*PCONC(:,5) -!PLOSS(XO2) = +K126*<HO2>+K127*<MO2>+K128*<CARBOP>+K129*<XO2>+K129*<XO2>+K130*< -!NO>+K131*<NO3> - PLOSS(:,41) = +TPK%K126(:)*PCONC(:,15)+TPK%K127(:)*PCONC(:,32)+TPK%K128(:)*PCO& -&NC(:,39)+TPK%K129(:)*PCONC(:,41)+TPK%K129(:)*PCONC(:,41)+TPK%K130(:)*PCONC(:,3& -&)+TPK%K131(:)*PCONC(:,5) +SUBROUTINE SUB16 +! +!Indices 161 a 161 +! +! +!PPROD(WR_AHMS) = +KR17*<WR_HCHO>*<WR_SO2> + PPROD(:,161) = +TPK%KR17(:)*PCONC(:,145)*PCONC(:,138) +!PLOSS(WR_AHMS) = +KR18+KR19*<WR_OH> + PLOSS(:,161) = +TPK%KR18(:)+TPK%KR19(:)*PCONC(:,135) ! RETURN -END SUBROUTINE SUB4 +END SUBROUTINE SUB16 ! -END SUBROUTINE CH_PRODLOSS_GAZ +END SUBROUTINE CH_PRODLOSS_AQ ! ! !======================================================================== @@ -5935,10 +11635,10 @@ END SUBROUTINE CH_JAC !======================================================================== ! !! ################## - MODULE MODI_CH_JAC_AQ + MODULE MODI_CH_JAC_GAZ !! ################## INTERFACE -SUBROUTINE CH_JAC_AQ(PTIME,PCONC,PJAC,KMI,KVECNPT,KEQ) +SUBROUTINE CH_JAC_GAZ(PTIME,PCONC,PJAC,KMI,KVECNPT,KEQ) IMPLICIT NONE REAL, INTENT(IN) :: PTIME INTEGER, INTENT(IN) :: KVECNPT @@ -5946,14 +11646,14 @@ INTEGER, INTENT(IN) :: KEQ REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KEQ) :: PJAC INTEGER, INTENT(IN) :: KMI -END SUBROUTINE CH_JAC_AQ +END SUBROUTINE CH_JAC_GAZ END INTERFACE -END MODULE MODI_CH_JAC_AQ +END MODULE MODI_CH_JAC_GAZ ! !======================================================================== ! !! #################### - SUBROUTINE CH_JAC_AQ(PTIME,PCONC,PJAC,KMI,KVECNPT,KEQ) + SUBROUTINE CH_JAC_GAZ(PTIME,PCONC,PJAC,KMI,KVECNPT,KEQ) !! #################### !! This code has been created automatically by preprocessor m10, !! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. @@ -6009,15 +11709,317 @@ TYPE(CCSTYPE), POINTER :: TPK TPK=>TACCS(KMI) ! ! /BEGIN_CODE/ -TPK%O1D(:)=(TPK%K002(:)*PCONC(:,JP_O3))/(TPK%K020(:)*TPK%N2(:)+TPK%K021(:)*TPK%O2(:)+& - &TPK%K022(:)*TPK%H2O(:)) -TPK%O3P(:)=(TPK%K001(:)*PCONC(:,JP_NO2)+TPK%K003(:)*PCONC(:,JP_O3)+TPK%K008(:)*PCONC(:,JP_NO3)+& - &TPK%K020(:)*TPK%O1D(:)*TPK%N2(:)+TPK%K021(:)*TPK%O1D(:)*TPK%O2(:)+& - &0.00000*TPK%K079(:)*PCONC(:,JP_ALKE)*PCONC(:,JP_O3)+& - &0.09000*TPK%K080(:)*PCONC(:,JP_BIO)*PCONC(:,JP_O3))/& - &(TPK%K018(:)*TPK%O2(:)+TPK%K019(:)*PCONC(:,JP_O3)+TPK%K029(:)*PCONC(:,JP_NO)+& - &TPK%K030(:)*PCONC(:,JP_NO2)+TPK%K031(:)*PCONC(:,JP_NO2)+TPK%K054(:)*PCONC(:,JP_BIO)+& - &TPK%K055(:)*PCONC(:,JP_CARBO)) +TPK%OSD = ( +TPK%K016*PCONC(:,JP_O3) ) / & + ( +TPK%K017*TPK%H2O+TPK%K018A*TPK%N2(:)+TPK%K018B*TPK%O2(:) ) +! +TPK%O = ( +TPK%K001*PCONC(:,JP_NO2)+TPK%K014*PCONC(:,JP_NO3)+TPK%& +&K015*PCONC(:,JP_O3)+TPK%K018A*TPK%OSD*TPK%N2(:)+TPK%K018B*TPK%OSD*TPK%O2(:) ) / & +( +TPK%K002*TPK%O2(:)+TPK%K003*PCONC(:,JP_NO2)+TPK%K004*PCONC(:,JP_NO2)+TPK%K034*& +PCONC(:,JP_O3)+TPK%K038*PCONC(:,JP_NO)+TPK%K052*PCONC(:,JP_ETHE)+& +&TPK%K057*PCONC(:,JP_OLEL)+TPK%K067*PCONC(:,JP_ISOP)+TPK%K077*PCONC(:,& +&JP_OLEH)+TPK%K087*PCONC(:,JP_BIOL)+TPK%K091*PCONC(:,JP_BIOH)+TPK%K283& +&*PCONC(:,JP_MVK)+TPK%K284*PCONC(:,JP_MCR) ) +! +TPK%RO225 = ( TPK%K085*PCONC(:,JP_BIOL)*PCONC(:,JP_NO3) ) / & +( +TPK%K201*PCONC(:,JP_NO)+TPK%K202*PCONC(:,JP_RO2T)+TPK%K203*PCONC(:,JP_HO2)) +! +TPK%RO228 = ( TPK%K089*PCONC(:,JP_BIOH)*PCONC(:,JP_NO3) ) / & +( +TPK%K210*PCONC(:,JP_NO)+TPK%K211*PCONC(:,JP_RO2T)+TPK%K212*PCONC(:,JP_HO2)) + +! +TPK%RO253 = ( +0.41*TPK%K282*PCONC(:,JP_MCR)*PCONC(:,JP_O3) ) / & +( +TPK%K297*PCONC(:,JP_NO)+TPK%K298*PCONC(:,JP_HO2)+TPK%K299*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO254 = ( +TPK%K140*PCONC(:,JP_PAN6)+TPK%K297*TPK%RO253*& +&PCONC(:,JP_NO)+TPK%K298*TPK%RO253*PCONC(:,JP_HO2)+TPK%K299*& +&TPK%RO253*PCONC(:,JP_RO2T) ) / & +( +TPK%K131*PCONC(:,JP_NO2)+TPK%K300*PCONC(:,JP_NO)+TPK%K301*PCONC(& +&:,JP_HO2)+TPK%K302*PCONC(:,JP_RO2T) ) +! +TPK%RO213 = ( +0.271*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3) ) / & +( +TPK%K162*PCONC(:,JP_NO)+TPK%K163*PCONC(:,JP_RO2T)+TPK%K164*PCONC& +&(:,JP_HO2) ) +! +TPK%RO239 = ( +TPK%K137*PCONC(:,JP_PAN3)+TPK%K162*TPK%RO213*& +&PCONC(:,JP_NO)+TPK%K163*TPK%RO213*PCONC(:,JP_RO2T)+TPK%K164*TPK%RO213*PCONC(:,JP_HO2) ) / & +( +TPK%K128*PCONC(:,JP_NO2)+TPK%K165*PCONC(:,JP_NO)+TPK%K166*PCONC(& +&:,JP_HO2)+TPK%K167*PCONC(:,JP_RO2T) ) +! +TPK%RO248 = ( +TPK%K141*PCONC(:,JP_PAN4)+TPK%K274*PCONC(:,JP_MGLY)*P& +&CONC(:,JP_OH)+TPK%K278*PCONC(:,JP_MGLY)*PCONC(:,JP_NO3) ) / & +( +TPK%K129*PCONC(:,JP_NO2)+TPK%K277*PCONC(:,JP_NO)+TPK%K279*PCONC(& +&:,JP_HO2)+TPK%K280*PCONC(:,JP_RO2T) ) +! +TPK%RO249 = ( +TPK%K272*PCONC(:,JP_MVK)*PCONC(:,JP_OH) ) / & +( +TPK%K285*PCONC(:,JP_NO)+TPK%K286*PCONC(:,JP_RO2T)+TPK%K287*PCONC& +&(:,JP_HO2) ) +! +TPK%RO250 = ( +0.3750353*TPK%K139*PCONC(:,JP_APAN)+TPK%CF46*TPK%K2& +&73*PCONC(:,JP_MCR)*PCONC(:,JP_OH)+TPK%CF46*TPK%K275*PCONC(:,JP_MCR)*PCONC& +&(:,JP_NO3) ) / & +( +TPK%K130*PCONC(:,JP_NO2)+TPK%K288*PCONC(:,JP_NO)+TPK%K289*PCONC(& +&:,JP_HO2)+TPK%K290*PCONC(:,JP_RO2T) ) +! +TPK%RO214 = ( +0.095*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3)+TPK%K1& +&65*TPK%RO239*PCONC(:,JP_NO)+TPK%K167*TPK%RO239*PCONC(:,JP_R& +&O2T)+TPK%K288*TPK%RO250*PCONC(:,JP_NO)+TPK%K290*TPK%RO250& +&*PCONC(:,JP_RO2T) ) / & +( +TPK%K168*PCONC(:,JP_NO)+TPK%K169*PCONC(:,JP_RO2T)+TPK%K170*PCONC& +&(:,JP_HO2) ) +! +TPK%RO251 = ( +TPK%CF47*TPK%K273*PCONC(:,JP_MCR)*PCONC(:,JP_OH) ) / & +( +TPK%K291*PCONC(:,JP_NO)+TPK%K292*PCONC(:,JP_HO2)+TPK%K293*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO252 = ( +TPK%CF47*TPK%K275*PCONC(:,JP_MCR)*PCONC(:,JP_NO3) ) /& +( +TPK%K294*PCONC(:,JP_NO)+TPK%K295*PCONC(:,JP_HO2)+TPK%K296*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO258 = ( +TPK%K138*PCONC(:,JP_PN10)+TPK%K305*PCONC(:,JP_RP16)*P& +&CONC(:,JP_OH)+TPK%K338*PCONC(:,JP_RP16)*PCONC(:,JP_NO3) ) / & +( +TPK%K134*PCONC(:,JP_NO2)+TPK%K340*PCONC(:,JP_NO)+TPK%K341*PCONC(& +&:,JP_HO2)+TPK%K342*PCONC(:,JP_RO2T) ) +! +TPK%RO255 = ( +TPK%K304*PCONC(:,JP_RPR1)*PCONC(:,JP_OH)+TPK%K307*PCO& +&NC(:,JP_RPR1)*PCONC(:,JP_NO3)+TPK%K343*PCONC(:,JP_PAN7) ) / & +( +TPK%K132*PCONC(:,JP_NO2)+TPK%K309*PCONC(:,JP_NO)+TPK%K310*PCONC(& +&:,JP_HO2)+TPK%K311*PCONC(:,JP_RO2T) ) +! +TPK%RO256 = ( +TPK%K312*PCONC(:,JP_RPR3)*PCONC(:,JP_OH)+TPK%K313*PCO& +&NC(:,JP_RPR3)*PCONC(:,JP_NO3)+TPK%K317*PCONC(:,JP_PAN8) ) / & +( +TPK%K315*PCONC(:,JP_NO)+TPK%K316*PCONC(:,JP_NO2)+TPK%K318*PCONC(& +&:,JP_HO2)+TPK%K319*PCONC(:,JP_RO2T) ) +! +TPK%RO257 = ( +0.6249651*TPK%K139*PCONC(:,JP_APAN)+TPK%K324*PCONC(:,& +&JP_RPR8)*PCONC(:,JP_OH)+TPK%K327*PCONC(:,JP_RPR8)*PCONC(:,JP_NO3)+TPK%K3& +&30*PCONC(:,JP_RPR8) ) / & +( +TPK%K133*PCONC(:,JP_NO2)+TPK%K331*PCONC(:,JP_NO)+TPK%K332*PCONC(& +&:,JP_HO2)+TPK%K333*PCONC(:,JP_RO2T) ) +! +TPK%RO29 = ( +0.66*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH)+TPK%K329& +&*PCONC(:,JP_RPR8)+TPK%K331*TPK%RO257*PCONC(:,JP_NO)+TPK%K333*TPK%RO257*& +PCONC(:,JP_RO2T) ) / & +( +TPK%K150*PCONC(:,JP_NO)+TPK%K151*PCONC(:,JP_RO2T)+TPK%K152*PCONC& +&(:,JP_HO2) ) +! +!avoid division by zero in prodloss +WHERE (PCONC(:,JP_NO2)>0.) + TPK%RAD1 = ( +TPK%K072*PCONC(:,JP_AROO)*PCONC(:,JP_NO3) ) / & + ( +TPK%K103*PCONC(:,JP_NO2) ) +! + TPK%RAD8 = ( +TPK%K320*PCONC(:,JP_RPR4)*PCONC(:,JP_NO3) ) / & + ( +TPK%K321*PCONC(:,JP_NO2) ) +ELSEWHERE + TPK%RAD1 = 0. + TPK%RAD8 = 0. +ENDWHERE +! +TPK%RAD2 = ( +0.74*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & +( +TPK%K097+TPK%K104*PCONC(:,JP_NO2) ) +! +TPK%RAD3 = ( +0.74*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & +( +TPK%K098+TPK%K105*PCONC(:,JP_NO2) ) +! +TPK%RAD4 = ( +0.84*TPK%K080*PCONC(:,JP_AROH)*PCONC(:,JP_OH) ) / & +( +TPK%K099+TPK%K106*PCONC(:,JP_NO2) ) +! +TPK%RAD5 = ( +TPK%CF40*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) / & +( +TPK%K100+TPK%K107*PCONC(:,JP_NO2) ) +! +TPK%RAD6 = ( +0.74*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & +( +TPK%K101+TPK%K108*PCONC(:,JP_NO2) ) +! +TPK%RAD7 = ( +0.74*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & +( +TPK%K102+TPK%K109*PCONC(:,JP_NO2) ) +! +TPK%RO22 = ( +TPK%K049*PCONC(:,JP_ETHE)*PCONC(:,JP_OH)+TPK%CF2*TPK& +&%K053*PCONC(:,JP_ETOH)*PCONC(:,JP_OH)+TPK%K054*PCONC(:,JP_OLEL)*PCONC(:,JP_& +&OH)+TPK%K069*PCONC(:,JP_ALCH)*PCONC(:,JP_OH) ) / & +( +TPK%K113*PCONC(:,JP_NO)+TPK%K114*PCONC(:,JP_RO2T)+TPK%K115*PCONC& +&(:,JP_HO2) ) +! +TPK%RO23 = ( +TPK%K050*PCONC(:,JP_ETHE)*PCONC(:,JP_NO3)+TPK%K055*PCO& +&NC(:,JP_OLEL)*PCONC(:,JP_NO3) ) / & +( +TPK%K116*PCONC(:,JP_NO)+TPK%K117*PCONC(:,JP_RO2T)+TPK%K118*PCONC& +&(:,JP_HO2) ) +! +TPK%RO24 = ( +0.4*TPK%K052*PCONC(:,JP_ETHE)*TPK%O+0.1*TPK%K0& +&57*PCONC(:,JP_OLEL)*TPK%O+0.1*TPK%K077*PCONC(:,JP_OLEH)*& +&TPK%O+0.15*TPK%K283*PCONC(:,JP_MVK)*TPK%O ) / & +( +TPK%K119*PCONC(:,JP_NO)+TPK%K120*PCONC(:,JP_RO2T)+TPK%K121*PCONC& +&(:,JP_HO2) ) +! +TPK%RO26 = ( +TPK%K060*PCONC(:,JP_ALD2)*PCONC(:,JP_OH)+TPK%K061*PCON& +&C(:,JP_ALD2)*PCONC(:,JP_NO3)+TPK%K135*PCONC(:,JP_PAN1) ) / & +( +TPK%K125*PCONC(:,JP_NO)+TPK%K126*PCONC(:,JP_NO2)+TPK%K142*PCONC(& +&:,JP_HO2)+TPK%K143*PCONC(:,JP_RO2T) ) +! +TPK%RO27 = ( +TPK%K062*PCONC(:,JP_KETL)*PCONC(:,JP_OH)+TPK%CF8*TPK& +&%K168*TPK%RO214*PCONC(:,JP_NO)+TPK%K169*TPK%RO214*PCONC(:,J& +&P_RO2T)+TPK%K170*TPK%RO214*PCONC(:,JP_HO2)+0.15*TPK%K284*PCONC(:& +&,JP_MCR)*TPK%O ) / & +( +TPK%K144*PCONC(:,JP_NO)+TPK%K145*PCONC(:,JP_RO2T)+TPK%K146*PCONC& +&(:,JP_HO2) ) +! +TPK%RO210 = ( +0.34*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH) ) / & +( +TPK%K153*PCONC(:,JP_NO)+TPK%K154*PCONC(:,JP_RO2T)+TPK%K155*PCONC& +&(:,JP_HO2) ) +! +TPK%RO211 = ( +0.66*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & +( +TPK%K156*PCONC(:,JP_NO)+TPK%K157*PCONC(:,JP_RO2T)+TPK%K158*PCONC& +&(:,JP_HO2) ) +! +TPK%RO212 = ( +0.34*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & +( +TPK%K159*PCONC(:,JP_NO)+TPK%K160*PCONC(:,JP_RO2T)+TPK%K161*PCONC& +&(:,JP_HO2) ) +! +TPK%RO215 = ( +TPK%K068*PCONC(:,JP_MTBE)*PCONC(:,JP_OH) ) / & +( +TPK%K171*PCONC(:,JP_NO)+TPK%K172*PCONC(:,JP_RO2T)+TPK%K173*PCONC& +&(:,JP_HO2) ) +! +TPK%RO216 = ( +TPK%K070*PCONC(:,JP_KETH)*PCONC(:,JP_OH) ) / & +( +TPK%K174*PCONC(:,JP_NO)+TPK%K175*PCONC(:,JP_RO2T)+TPK%K176*PCONC& +&(:,JP_HO2) ) +! +TPK%RO217 = ( +0.1*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & +( +TPK%K177*PCONC(:,JP_NO)+TPK%K178*PCONC(:,JP_RO2T)+TPK%K179*PCONC& +&(:,JP_HO2) ) +! +TPK%RO220 = ( +0.28*TPK%K076*PCONC(:,JP_OLEH)*PCONC(:,JP_O3)+0.1*TPK& +&%K077*PCONC(:,JP_OLEH)*TPK%O+TPK%K078*PCONC(:,JP_ALKM)*PCONC(:,JP_O& +&H)+TPK%K308*PCONC(:,JP_RPR1)+TPK%K309*TPK%RO255*PCONC(:,JP_NO)+T& +&PK%K311*TPK%RO255*PCONC(:,JP_RO2T) ) / & +( +TPK%K186*PCONC(:,JP_NO)+TPK%K187*PCONC(:,JP_RO2T)+TPK%K188*PCONC& +&(:,JP_HO2) ) +! +TPK%RO218 = ( +TPK%K074*PCONC(:,JP_OLEH)*PCONC(:,JP_OH)+TPK%CF18*TPK%K186*& +TPK%RO220*PCONC(:,JP_NO)+TPK%K187*TPK%RO220*PCONC(:& +&,JP_RO2T)+TPK%K188*TPK%RO220*PCONC(:,JP_HO2) ) / & +( +TPK%K180*PCONC(:,JP_NO)+TPK%K181*PCONC(:,JP_RO2T)+TPK%K182*PCONC& +&(:,JP_HO2) ) +! +TPK%RO219 = ( +TPK%K075*PCONC(:,JP_OLEH)*PCONC(:,JP_NO3) ) / & +( +TPK%K183*PCONC(:,JP_NO)+TPK%K184*PCONC(:,JP_RO2T)+TPK%K185*PCONC& +&(:,JP_HO2) ) +! +TPK%RO221 = ( +0.1*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & +( +TPK%K189*PCONC(:,JP_NO)+TPK%K190*PCONC(:,JP_RO2T)+TPK%K191*PCONC& +&(:,JP_HO2) ) +! +TPK%RO222 = ( +TPK%CF45*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) /& +& & +( +TPK%K192*PCONC(:,JP_NO)+TPK%K193*PCONC(:,JP_RO2T)+TPK%K194*PCONC& +&(:,JP_HO2) ) +! +TPK%RO223 = ( +0.1*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & +( +TPK%K195*PCONC(:,JP_NO)+TPK%K196*PCONC(:,JP_RO2T)+TPK%K197*PCONC& +&(:,JP_HO2) ) +! +TPK%RO224 = ( +TPK%K084*PCONC(:,JP_BIOL)*PCONC(:,JP_OH) ) / & +( +TPK%K198*PCONC(:,JP_NO)+TPK%K199*PCONC(:,JP_RO2T)+TPK%K200*PCONC& +&(:,JP_HO2) ) +! +TPK%RO226 = ( +0.445*TPK%K086*PCONC(:,JP_BIOL)*PCONC(:,JP_O3) ) / & +( +TPK%K204*PCONC(:,JP_NO)+TPK%K205*PCONC(:,JP_RO2T)+TPK%K206*PCONC& +&(:,JP_HO2) ) +! +TPK%RO227 = ( +TPK%K088*PCONC(:,JP_BIOH)*PCONC(:,JP_OH) ) / & +( +TPK%K207*PCONC(:,JP_NO)+TPK%K208*PCONC(:,JP_RO2T)+TPK%K209*PCONC& +&(:,JP_HO2) ) +! +TPK%RO229 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & +( +TPK%K213*PCONC(:,JP_NO)+TPK%K214*PCONC(:,JP_RO2T)+TPK%K215*PCONC& +&(:,JP_HO2) ) +! +TPK%RO230 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & +( +TPK%K219*PCONC(:,JP_RO2T)+TPK%K220*PCONC(:,JP_HO2)+TPK%K344*PCON& +&C(:,JP_NO) ) +! +TPK%RO231 = ( +0.1*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & +( +TPK%K221*PCONC(:,JP_NO)+TPK%K222*PCONC(:,JP_RO2T)+TPK%K223*PCONC& +&(:,JP_HO2) ) +! +TPK%RO232 = ( +TPK%K093*PCONC(:,JP_ALKH)*PCONC(:,JP_OH) ) / & +( +TPK%K224*PCONC(:,JP_NO)+TPK%K225*PCONC(:,JP_RO2T)+TPK%K226*PCONC& +&(:,JP_HO2) ) +! +TPK%RO233 = ( +TPK%K097*TPK%RAD2 ) / & +( +TPK%K230+TPK%K231*PCONC(:,JP_NO)+TPK%K232*PCONC(:,JP_RO2T)+TPK%K233*& +PCONC(:,JP_HO2) ) +! +TPK%RO234 = ( +TPK%K098*TPK%RAD3 ) / & +( +TPK%K237+TPK%K238*PCONC(:,JP_NO)+TPK%K239*PCONC(:,JP_RO2T)+TPK%K240*& +PCONC(:,JP_HO2) ) +! +TPK%RO235 = ( +TPK%K099*TPK%RAD4 ) / & +( +TPK%K244+TPK%K245*PCONC(:,JP_NO)+TPK%K246*PCONC(:,JP_RO2T)+TPK%K247*& +PCONC(:,JP_HO2) ) +! +TPK%RO236 = ( +TPK%K100*TPK%RAD5 ) / & +( +TPK%K251+TPK%K252*PCONC(:,JP_NO)+TPK%K253*PCONC(:,JP_RO2T)+TPK%K254*& +PCONC(:,JP_HO2) ) +! +TPK%RO237 = ( +TPK%K101*TPK%RAD6 ) / & +( +TPK%K258+TPK%K259*PCONC(:,JP_NO)+TPK%K260*PCONC(:,JP_RO2T)+TPK%K261*& +PCONC(:,JP_HO2) ) +! +TPK%RO238 = ( +TPK%K102*TPK%RAD7 ) / & +( +TPK%K265+TPK%K266*PCONC(:,JP_NO)+TPK%K267*PCONC(:,JP_RO2T)+TPK%K268*& +PCONC(:,JP_HO2) ) +! +TPK%RO240 = ( +TPK%CF30*TPK%K213*TPK%RO229*PCONC(:,JP_NO)+TPK%K214*& +TPK%RO229*PCONC(:,JP_RO2T)+TPK%K215*TPK%RO229*PCON& +&C(:,JP_HO2) ) / & +( +TPK%K216*PCONC(:,JP_NO)+TPK%K217*PCONC(:,JP_RO2T)+TPK%K218*PCONC& +&(:,JP_HO2) ) +! +TPK%RO241 = ( +TPK%CF34*TPK%K224*TPK%RO232*PCONC(:,JP_NO)+TPK%K225*& +TPK%RO232*PCONC(:,JP_RO2T)+TPK%K226*TPK%RO232*PCON& +&C(:,JP_HO2) ) / & +( +TPK%K227*PCONC(:,JP_NO)+TPK%K228*PCONC(:,JP_RO2T)+TPK%K229*PCONC& +&(:,JP_HO2) ) +! +TPK%RO242 = ( +TPK%K230*TPK%RO233 ) / & +( +TPK%K234*PCONC(:,JP_NO)+TPK%K235*PCONC(:,JP_RO2T)+TPK%K236*PCONC& +&(:,JP_HO2) ) +! +TPK%RO243 = ( +TPK%K237*TPK%RO234 ) / & +( +TPK%K241*PCONC(:,JP_NO)+TPK%K242*PCONC(:,JP_RO2T)+TPK%K243*PCONC& +&(:,JP_HO2) ) +! +TPK%RO244 = ( +TPK%K244*TPK%RO235 ) / & +( +TPK%K248*PCONC(:,JP_NO)+TPK%K249*PCONC(:,JP_RO2T)+TPK%K250*PCONC& +&(:,JP_HO2) ) +! +TPK%RO245 = ( +TPK%K251*TPK%RO236 ) / & +( +TPK%K255*PCONC(:,JP_NO)+TPK%K256*PCONC(:,JP_RO2T)+TPK%K257*PCONC& +&(:,JP_HO2) ) +! +TPK%RO246 = ( +TPK%K258*TPK%RO237 ) / & +( +TPK%K262*PCONC(:,JP_NO)+TPK%K263*PCONC(:,JP_RO2T)+TPK%K264*PCONC& +&(:,JP_HO2) ) +! +TPK%RO247 = ( +TPK%K265*TPK%RO238 ) / & +( +TPK%K269*PCONC(:,JP_NO)+TPK%K270*PCONC(:,JP_RO2T)+TPK%K271*PCONC& +&(:,JP_HO2) ) +! +TPK%RO28 = ( +TPK%K063*PCONC(:,JP_KETL)+TPK%K071*PCONC(:,JP_KETH)+TP& +&K%K136*PCONC(:,JP_PAN2)+TPK%K144*TPK%RO27*PCONC(:,JP_NO)+TPK%& +&K145*TPK%RO27*PCONC(:,JP_RO2T)+TPK%K146*TPK%RO27*PCONC(:,JP& +&_HO2)+TPK%K174*TPK%RO216*PCONC(:,JP_NO)+TPK%K175*TPK%RO21& +&6*PCONC(:,JP_RO2T)+TPK%K176*TPK%RO216*PCONC(:,JP_HO2)+TPK%K204*& +&TPK%RO226*PCONC(:,JP_NO)+TPK%K205*TPK%RO226*PCONC(:,JP_RO2T)& +&+TPK%K206*TPK%RO226*PCONC(:,JP_HO2)+TPK%K216*TPK%RO240*& +&PCONC(:,JP_NO)+TPK%K217*TPK%RO240*PCONC(:,JP_RO2T)+TPK%K218*& +&TPK%RO240*PCONC(:,JP_HO2)+TPK%K219*TPK%RO230*PCONC(:,JP_RO2T)+T& +&PK%K220*TPK%RO230*PCONC(:,JP_HO2)+TPK%K276*PCONC(:,JP_MGLY)+TPK%K277*& +TPK%RO248*PCONC(:,JP_NO)+TPK%K280*TPK%RO248*PCONC(:& +&,JP_RO2T)+0.28*TPK%K281*PCONC(:,JP_MVK)*PCONC(:,JP_O3)+0.15*TPK%K283*PCO& +&NC(:,JP_MVK)*TPK%O+TPK%K344*TPK%RO230*PCONC(:,JP_NO) ) / & +( +TPK%K127*PCONC(:,JP_NO2)+TPK%K147*PCONC(:,JP_NO)+TPK%K148*PCONC(& +&:,JP_HO2)+TPK%K149*PCONC(:,JP_RO2T) ) +! ! /END_CODE/ PJAC(:,:,:) = 0.0 CALL SUBJ0 @@ -6038,7 +12040,6 @@ CALL SUBJ14 CALL SUBJ15 CALL SUBJ16 CALL SUBJ17 -CALL SUBJ18 ! CONTAINS @@ -6048,18880 +12049,19624 @@ SUBROUTINE SUBJ0 !Indices 1 a 5 ! ! -!O3/O3=-K002-K003-K019*<O3P>-K023*<OH>-K024*<HO2>-K042*<NO>-K043*<NO2>-K079*<AL -!KE>-K080*<BIO>-K081*<CARBO>-K082*<PAN>-K087*<ADD>-KTC1-KTR1 - PJAC(:,1,1)=-TPK%K002(:)-TPK%K003(:)-TPK%K019(:)*TPK%O3P(:)-TPK%K023(:)*PCONC(& -&:,14)-TPK%K024(:)*PCONC(:,15)-TPK%K042(:)*PCONC(:,3)-TPK%K043(:)*PCONC(:,4)-TP& -&K%K079(:)*PCONC(:,19)-TPK%K080(:)*PCONC(:,20)-TPK%K081(:)*PCONC(:,25)-TPK%K082& -&(:)*PCONC(:,27)-TPK%K087(:)*PCONC(:,37)-TPK%KTC1(:)-TPK%KTR1(:) +!NO/NO=-K005*<O3>-K007*<NO3>-K008*<NO>-K008*<NO>-K008*<NO>-K008*<NO>-K019*<OH>- +!K026*<HO2>-K038*<O>+K095*<RO2T>-K095*<RO2T>-K110*<RO21>-K113*<RO22>-K116*<RO23 +!>-K119*<RO24>-K122*<RO25>-K125*<RO26>-K144*<RO27>-K147*<RO28>-K150*<RO29>-K153 +!*<RO210>-K156*<RO211>-K159*<RO212>-K162*<RO213>-K165*<RO239>-K168*<RO214>-K171 +!*<RO215>-K174*<RO216>-K177*<RO217>-K180*<RO218>-K183*<RO219>-K186*<RO220>-K189 +!*<RO221>-K192*<RO222>-K195*<RO223>-K198*<RO224>-K201*<RO225>-K204*<RO226>-K207 +!*<RO227>-K210*<RO228>-K213*<RO229>-K216*<RO240>-K221*<RO231>-K224*<RO232>-K227 +!*<RO241>-K231*<RO233>-K234*<RO242>-K238*<RO234>-K241*<RO243>-K245*<RO235>-K248 +!*<RO244>-K252*<RO236>-K255*<RO245>-K259*<RO237>-K262*<RO246>-K266*<RO238>-K269 +!*<RO247>-K277*<RO248>-K285*<RO249>-K288*<RO250>-K291*<RO251>-K294*<RO252>-K297 +!*<RO253>-K300*<RO254>-K309*<RO255>-K315*<RO256>-K331*<RO257>-K340*<RO258>-K344 +!*<RO230> + PJAC(:,1,1)=-TPK%K005(:)*PCONC(:,3)-TPK%K007(:)*PCONC(:,8)-TPK%K008(:)*PCONC(:& +&,1)-TPK%K008(:)*PCONC(:,1)-TPK%K008(:)*PCONC(:,1)-TPK%K008(:)*PCONC(:,1)-TPK%K& +&019(:)*PCONC(:,15)-TPK%K026(:)*PCONC(:,10)-TPK%K038(:)*TPK%O(:)+TPK%K095(:)*PC& +&ONC(:,85)-TPK%K095(:)*PCONC(:,85)-TPK%K110(:)*PCONC(:,86)-TPK%K113(:)*TPK%RO22& +&(:)-TPK%K116(:)*TPK%RO23(:)-TPK%K119(:)*TPK%RO24(:)-TPK%K122(:)*PCONC(:,87)-TP& +&K%K125(:)*TPK%RO26(:)-TPK%K144(:)*TPK%RO27(:)-TPK%K147(:)*TPK%RO28(:)-TPK%K150& +&(:)*TPK%RO29(:)-TPK%K153(:)*TPK%RO210(:)-TPK%K156(:)*TPK%RO211(:)-TPK%K159(:)*& +&TPK%RO212(:)-TPK%K162(:)*TPK%RO213(:)-TPK%K165(:)*TPK%RO239(:)-TPK%K168(:)*TPK& +&%RO214(:)-TPK%K171(:)*TPK%RO215(:)-TPK%K174(:)*TPK%RO216(:)-TPK%K177(:)*TPK%RO& +&217(:)-TPK%K180(:)*TPK%RO218(:)-TPK%K183(:)*TPK%RO219(:)-TPK%K186(:)*TPK%RO220& +&(:)-TPK%K189(:)*TPK%RO221(:)-TPK%K192(:)*TPK%RO222(:)-TPK%K195(:)*TPK%RO223(:)& +&-TPK%K198(:)*TPK%RO224(:)-TPK%K201(:)*TPK%RO225(:)-TPK%K204(:)*TPK%RO226(:)-TP& +&K%K207(:)*TPK%RO227(:)-TPK%K210(:)*TPK%RO228(:)-TPK%K213(:)*TPK%RO229(:)-TPK%K& +&216(:)*TPK%RO240(:)-TPK%K221(:)*TPK%RO231(:)-TPK%K224(:)*TPK%RO232(:)-TPK%K227& +&(:)*TPK%RO241(:)-TPK%K231(:)*TPK%RO233(:)-TPK%K234(:)*TPK%RO242(:)-TPK%K238(:)& +&*TPK%RO234(:)-TPK%K241(:)*TPK%RO243(:)-TPK%K245(:)*TPK%RO235(:)-TPK%K248(:)*TP& +&K%RO244(:)-TPK%K252(:)*TPK%RO236(:)-TPK%K255(:)*TPK%RO245(:)-TPK%K259(:)*TPK%R& +&O237(:)-TPK%K262(:)*TPK%RO246(:)-TPK%K266(:)*TPK%RO238(:)-TPK%K269(:)*TPK%RO24& +&7(:)-TPK%K277(:)*TPK%RO248(:)-TPK%K285(:)*TPK%RO249(:)-TPK%K288(:)*TPK%RO250(:& +&)-TPK%K291(:)*TPK%RO251(:)-TPK%K294(:)*TPK%RO252(:)-TPK%K297(:)*TPK%RO253(:)-T& +&PK%K300(:)*TPK%RO254(:)-TPK%K309(:)*TPK%RO255(:)-TPK%K315(:)*TPK%RO256(:)-TPK%& +&K331(:)*TPK%RO257(:)-TPK%K340(:)*TPK%RO258(:)-TPK%K344(:)*TPK%RO230(:) +! +!NO/NO2=+K001+K003*<O>+K012*<NO3> + PJAC(:,1,2)=+TPK%K001(:)+TPK%K003(:)*TPK%O(:)+TPK%K012(:)*PCONC(:,8) +! +!NO/O3=-K005*<NO> + PJAC(:,1,3)=-TPK%K005(:)*PCONC(:,1) +! +!NO/HONO=+0.9*K020 + PJAC(:,1,4)=+0.9*TPK%K020(:) ! -!O3/H2O2=0.0 +!NO/HNO3=0.0 ! -!O3/NO=-K042*<O3> - PJAC(:,1,3)=-TPK%K042(:)*PCONC(:,1) +!NO/HNO4=0.0 ! -!O3/NO2=-K043*<O3> - PJAC(:,1,4)=-TPK%K043(:)*PCONC(:,1) +!NO/N2O5=0.0 ! -!O3/NO3=0.0 +!NO/NO3=-K007*<NO>+K012*<NO2>+K013 + PJAC(:,1,8)=-TPK%K007(:)*PCONC(:,1)+TPK%K012(:)*PCONC(:,2)+TPK%K013(:) ! -!O3/N2O5=0.0 +!NO/NH3=0.0 ! -!O3/HONO=0.0 +!NO/HO2=-K026*<NO> + PJAC(:,1,10)=-TPK%K026(:)*PCONC(:,1) ! -!O3/HNO3=0.0 +!NO/CO=0.0 ! -!O3/HNO4=0.0 +!NO/H2O2=0.0 ! -!O3/NH3=0.0 +!NO/SO2=0.0 ! -!O3/SO2=0.0 +!NO/H2SO4=0.0 ! -!O3/SULF=0.0 +!NO/OH=-K019*<NO> + PJAC(:,1,15)=-TPK%K019(:)*PCONC(:,1) ! -!O3/CO=0.0 +!NO/ETHE=0.0 ! -!O3/OH=-K023*<O3> - PJAC(:,1,14)=-TPK%K023(:)*PCONC(:,1) +!NO/OLEL=0.0 ! -!O3/HO2=-K024*<O3>+0.17307*K0102*<CARBOP> - PJAC(:,1,15)=-TPK%K024(:)*PCONC(:,1)+0.17307*TPK%K0102(:)*PCONC(:,39) +!NO/OLEH=0.0 ! -!O3/CH4=0.0 +!NO/ALKL=0.0 ! -!O3/ETH=0.0 +!NO/ALKM=0.0 ! -!O3/ALKA=0.0 +!NO/ALKH=0.0 ! -!O3/ALKE=-K079*<O3> - PJAC(:,1,19)=-TPK%K079(:)*PCONC(:,1) +!NO/AROH=0.0 ! -!O3/BIO=-K080*<O3> - PJAC(:,1,20)=-TPK%K080(:)*PCONC(:,1) +!NO/AROL=0.0 ! -!O3/ARO=0.0 +!NO/AROO=0.0 ! -!O3/HCHO=0.0 +!NO/ARAL=0.0 ! -!O3/ALD=0.0 +!NO/ARAC=0.0 ! -!O3/KET=0.0 +!NO/PAH=0.0 ! -!O3/CARBO=-K081*<O3> - PJAC(:,1,25)=-TPK%K081(:)*PCONC(:,1) +!NO/HCHO=0.0 ! -!O3/ONIT=0.0 +!NO/ALD2=0.0 ! -!O3/PAN=-K082*<O3> - PJAC(:,1,27)=-TPK%K082(:)*PCONC(:,1) +!NO/KETL=0.0 ! -!O3/OP1=0.0 +!NO/KETH=0.0 ! -!O3/OP2=0.0 +!NO/MEOH=0.0 ! -!O3/ORA1=0.0 +!NO/ETOH=0.0 ! -!O3/ORA2=0.0 +!NO/ALCH=0.0 ! -!O3/MO2=0.0 +!NO/ISOP=0.0 ! -!O3/ALKAP=0.0 +!NO/BIOL=0.0 ! -!O3/ALKEP=0.0 +!NO/BIOH=0.0 ! -!O3/BIOP=0.0 +!NO/MTBE=0.0 ! -!O3/PHO=0.0 +!NO/MVK=0.0 ! -!O3/ADD=-K087*<O3> - PJAC(:,1,37)=-TPK%K087(:)*PCONC(:,1) +!NO/MCR=0.0 ! -!O3/AROP=0.0 +!NO/MGLY=0.0 ! -!O3/CARBOP=+0.17307*K0102*<HO2> - PJAC(:,1,39)=+0.17307*TPK%K0102(:)*PCONC(:,15) +!NO/GLY=0.0 ! -!O3/OLN=0.0 +!NO/ORA1=0.0 ! -!O3/XO2=0.0 +!NO/ORA2=0.0 ! -!O3/WC_O3=+KTC21 - PJAC(:,1,42)=+TPK%KTC21(:) +!NO/ACID=0.0 ! -!O3/WC_H2O2=0.0 +!NO/UR28=0.0 ! -!O3/WC_NO=0.0 +!NO/UR21=0.0 ! -!O3/WC_NO2=0.0 +!NO/URG2=0.0 ! -!O3/WC_NO3=0.0 +!NO/UR26=0.0 ! -!O3/WC_N2O5=0.0 +!NO/RPG2=0.0 ! -!O3/WC_HONO=0.0 +!NO/RP18=0.0 ! -!O3/WC_HNO3=0.0 +!NO/RPG3=0.0 ! -!O3/WC_HNO4=0.0 +!NO/URG4=0.0 ! -!O3/WC_NH3=0.0 +!NO/UR8=0.0 ! -!O3/WC_OH=0.0 +!NO/UR17=0.0 ! -!O3/WC_HO2=0.0 +!NO/UR7=0.0 ! -!O3/WC_CO2=0.0 +!NO/RPR3=0.0 ! -!O3/WC_SO2=0.0 +!NO/URG6=0.0 ! -!O3/WC_SULF=0.0 +!NO/UR22=0.0 ! -!O3/WC_HCHO=0.0 +!NO/URG7=0.0 ! -!O3/WC_ORA1=0.0 +!NO/RPR4=0.0 ! -!O3/WC_ORA2=0.0 +!NO/RPR7=0.0 ! -!O3/WC_MO2=0.0 +!NO/RPG7=0.0 ! -!O3/WC_OP1=0.0 +!NO/URG8=0.0 ! -!O3/WC_ASO3=0.0 +!NO/UR19=0.0 ! -!O3/WC_ASO4=0.0 +!NO/URG9=0.0 ! -!O3/WC_ASO5=0.0 +!NO/AP7=0.0 ! -!O3/WC_AHSO5=0.0 +!NO/URG10=0.0 ! -!O3/WC_AHMS=0.0 +!NO/RPR1=0.0 ! -!O3/WR_O3=+KTR21 - PJAC(:,1,67)=+TPK%KTR21(:) +!NO/RPR5=0.0 ! -!O3/WR_H2O2=0.0 +!NO/RPR8=0.0 ! -!O3/WR_NO=0.0 +!NO/RP10=0.0 ! -!O3/WR_NO2=0.0 +!NO/RP11=0.0 ! -!O3/WR_NO3=0.0 +!NO/RP16=0.0 ! -!O3/WR_N2O5=0.0 +!NO/RPRL=0.0 ! -!O3/WR_HONO=0.0 +!NO/APAN=0.0 ! -!O3/WR_HNO3=0.0 +!NO/PAN1=0.0 ! -!O3/WR_HNO4=0.0 +!NO/PAN2=0.0 ! -!O3/WR_NH3=0.0 +!NO/PAN3=0.0 ! -!O3/WR_OH=0.0 +!NO/PAN4=0.0 ! -!O3/WR_HO2=0.0 +!NO/PAN6=0.0 ! -!O3/WR_CO2=0.0 +!NO/PAN7=0.0 ! -!O3/WR_SO2=0.0 +!NO/PAN8=0.0 ! -!O3/WR_SULF=0.0 +!NO/PN10=0.0 ! -!O3/WR_HCHO=0.0 +!NO/RO2T=+K095*<NO>-K095*<NO> + PJAC(:,1,85)=+TPK%K095(:)*PCONC(:,1)-TPK%K095(:)*PCONC(:,1) ! -!O3/WR_ORA1=0.0 +!NO/RO21=-K110*<NO> + PJAC(:,1,86)=-TPK%K110(:)*PCONC(:,1) ! -!O3/WR_ORA2=0.0 +!NO/RO25=-K122*<NO> + PJAC(:,1,87)=-TPK%K122(:)*PCONC(:,1) ! -!O3/WR_MO2=0.0 +!NO2/NO=+K005*<O3>+2.*K007*<NO3>+2.*K008*<NO>+2.*K008*<NO>+K026*<HO2>+K038*<O>+ +!K110*<RO21>+K113*<RO22>+2.*K116*<RO23>+K119*<RO24>+TPK%CF4*K122*<RO25>+K125*<R +!O26>+K144*<RO27>+K147*<RO28>+TPK%CF6*K150*<RO29>+K153*<RO210>+2.*K156*<RO211>+ +!2.*K159*<RO212>+K162*<RO213>+K165*<RO239>+TPK%CF8*K168*<RO214>+K171*<RO215>+K1 +!74*<RO216>+TPK%CF22*K177*<RO217>+TPK%CF20*K180*<RO218>+2.*K183*<RO219>+TPK%CF1 +!8*K186*<RO220>+TPK%CF24*K189*<RO221>+TPK%CF42*K192*<RO222>+TPK%CF44*K195*<RO22 +!3>+TPK%CF26*K198*<RO224>+2.*K201*<RO225>+K204*<RO226>+TPK%CF28*K207*<RO227>+2. +!*K210*<RO228>+TPK%CF30*K213*<RO229>+K216*<RO240>+TPK%CF32*K221*<RO231>+TPK%CF3 +!4*K224*<RO232>+TPK%CF36*K227*<RO241>+K231*<RO233>+K234*<RO242>+K238*<RO234>+K2 +!41*<RO243>+K245*<RO235>+K248*<RO244>+K252*<RO236>+K255*<RO245>+K259*<RO237>+K2 +!62*<RO246>+K266*<RO238>+K269*<RO247>+K277*<RO248>+K285*<RO249>+K288*<RO250>+K2 +!91*<RO251>+2.*K294*<RO252>+K297*<RO253>+K300*<RO254>+K309*<RO255>+K315*<RO256> +!+K331*<RO257>+K340*<RO258>+K344*<RO230> + PJAC(:,2,1)=+TPK%K005(:)*PCONC(:,3)+2.*TPK%K007(:)*PCONC(:,8)+2.*TPK%K008(:)*P& +&CONC(:,1)+2.*TPK%K008(:)*PCONC(:,1)+TPK%K026(:)*PCONC(:,10)+TPK%K038(:)*TPK%O(& +&:)+TPK%K110(:)*PCONC(:,86)+TPK%K113(:)*TPK%RO22(:)+2.*TPK%K116(:)*TPK%RO23(:)+& +&TPK%K119(:)*TPK%RO24(:)+TPK%CF4*TPK%K122(:)*PCONC(:,87)+TPK%K125(:)*TPK%RO26(:& +&)+TPK%K144(:)*TPK%RO27(:)+TPK%K147(:)*TPK%RO28(:)+TPK%CF6*TPK%K150(:)*TPK%RO29& +&(:)+TPK%K153(:)*TPK%RO210(:)+2.*TPK%K156(:)*TPK%RO211(:)+2.*TPK%K159(:)*TPK%RO& +&212(:)+TPK%K162(:)*TPK%RO213(:)+TPK%K165(:)*TPK%RO239(:)+TPK%CF8*TPK%K168(:)*T& +&PK%RO214(:)+TPK%K171(:)*TPK%RO215(:)+TPK%K174(:)*TPK%RO216(:)+TPK%CF22*TPK%K17& +&7(:)*TPK%RO217(:)+TPK%CF20*TPK%K180(:)*TPK%RO218(:)+2.*TPK%K183(:)*TPK%RO219(:& +&)+TPK%CF18*TPK%K186(:)*TPK%RO220(:)+TPK%CF24*TPK%K189(:)*TPK%RO221(:)+TPK%CF42& +&*TPK%K192(:)*TPK%RO222(:)+TPK%CF44*TPK%K195(:)*TPK%RO223(:)+TPK%CF26*TPK%K198(& +&:)*TPK%RO224(:)+2.*TPK%K201(:)*TPK%RO225(:)+TPK%K204(:)*TPK%RO226(:)+TPK%CF28*& +&TPK%K207(:)*TPK%RO227(:)+2.*TPK%K210(:)*TPK%RO228(:)+TPK%CF30*TPK%K213(:)*TPK%& +&RO229(:)+TPK%K216(:)*TPK%RO240(:)+TPK%CF32*TPK%K221(:)*TPK%RO231(:)+TPK%CF34*T& +&PK%K224(:)*TPK%RO232(:)+TPK%CF36*TPK%K227(:)*TPK%RO241(:)+TPK%K231(:)*TPK%RO23& +&3(:)+TPK%K234(:)*TPK%RO242(:)+TPK%K238(:)*TPK%RO234(:)+TPK%K241(:)*TPK%RO243(:& +&)+TPK%K245(:)*TPK%RO235(:)+TPK%K248(:)*TPK%RO244(:)+TPK%K252(:)*TPK%RO236(:)+T& +&PK%K255(:)*TPK%RO245(:)+TPK%K259(:)*TPK%RO237(:)+TPK%K262(:)*TPK%RO246(:)+TPK%& +&K266(:)*TPK%RO238(:)+TPK%K269(:)*TPK%RO247(:)+TPK%K277(:)*TPK%RO248(:)+TPK%K28& +&5(:)*TPK%RO249(:)+TPK%K288(:)*TPK%RO250(:)+TPK%K291(:)*TPK%RO251(:)+2.*TPK%K29& +&4(:)*TPK%RO252(:)+TPK%K297(:)*TPK%RO253(:)+TPK%K300(:)*TPK%RO254(:)+TPK%K309(:& +&)*TPK%RO255(:)+TPK%K315(:)*TPK%RO256(:)+TPK%K331(:)*TPK%RO257(:)+TPK%K340(:)*T& +&PK%RO258(:)+TPK%K344(:)*TPK%RO230(:) ! -!O3/WR_OP1=0.0 +!NO2/NO2=-K001-K003*<O>-K004*<O>-K006*<O3>-K009*<NO3>+K012*<NO3>-K012*<NO3>-K02 +!1*<H2O>-K022*<OH>-K027*<HO2>-K103*<RAD1>-K104*<RAD2>-K105*<RAD3>-K106*<RAD4>-K +!107*<RAD5>-K108*<RAD6>-K109*<RAD7>-K126*<RO26>-K127*<RO28>-K128*<RO239>-K129*< +!RO248>-K130*<RO250>-K131*<RO254>-K132*<RO255>-K133*<RO257>-K134*<RO258>-K316*< +!RO256>-K321*<RAD8> + PJAC(:,2,2)=-TPK%K001(:)-TPK%K003(:)*TPK%O(:)-TPK%K004(:)*TPK%O(:)-TPK%K006(:)& +&*PCONC(:,3)-TPK%K009(:)*PCONC(:,8)+TPK%K012(:)*PCONC(:,8)-TPK%K012(:)*PCONC(:,& +&8)-TPK%K021(:)*TPK%H2O(:)-TPK%K022(:)*PCONC(:,15)-TPK%K027(:)*PCONC(:,10)-TPK%& +&K103(:)*TPK%RAD1(:)-TPK%K104(:)*TPK%RAD2(:)-TPK%K105(:)*TPK%RAD3(:)-TPK%K106(:& +&)*TPK%RAD4(:)-TPK%K107(:)*TPK%RAD5(:)-TPK%K108(:)*TPK%RAD6(:)-TPK%K109(:)*TPK%& +&RAD7(:)-TPK%K126(:)*TPK%RO26(:)-TPK%K127(:)*TPK%RO28(:)-TPK%K128(:)*TPK%RO239(& +&:)-TPK%K129(:)*TPK%RO248(:)-TPK%K130(:)*TPK%RO250(:)-TPK%K131(:)*TPK%RO254(:)-& +&TPK%K132(:)*TPK%RO255(:)-TPK%K133(:)*TPK%RO257(:)-TPK%K134(:)*TPK%RO258(:)-TPK& +&%K316(:)*TPK%RO256(:)-TPK%K321(:)*TPK%RAD8(:) ! -!O3/WR_ASO3=0.0 +!NO2/O3=+K005*<NO>-K006*<NO2> + PJAC(:,2,3)=+TPK%K005(:)*PCONC(:,1)-TPK%K006(:)*PCONC(:,2) ! -!O3/WR_ASO4=0.0 +!NO2/HONO=+0.1*K020+K039*<OH> + PJAC(:,2,4)=+0.1*TPK%K020(:)+TPK%K039(:)*PCONC(:,15) ! -!O3/WR_ASO5=0.0 +!NO2/HNO3=0.0 +! +!NO2/HNO4=+K028+K029*<OH> + PJAC(:,2,6)=+TPK%K028(:)+TPK%K029(:)*PCONC(:,15) +! +!NO2/N2O5=+K010 + PJAC(:,2,7)=+TPK%K010(:) +! +!NO2/NO3=+2.*K007*<NO>-K009*<NO2>+K012*<NO2>-K012*<NO2>+K014+0.8*K033*<HO2>+K04 +!0*<OH>+2.*K041*<NO3>+2.*K041*<NO3> + PJAC(:,2,8)=+2.*TPK%K007(:)*PCONC(:,1)-TPK%K009(:)*PCONC(:,2)+TPK%K012(:)*PCON& +&C(:,2)-TPK%K012(:)*PCONC(:,2)+TPK%K014(:)+0.8*TPK%K033(:)*PCONC(:,10)+TPK%K040& +&(:)*PCONC(:,15)+2.*TPK%K041(:)*PCONC(:,8)+2.*TPK%K041(:)*PCONC(:,8) ! -!O3/WR_AHSO5=0.0 +!NO2/NH3=0.0 ! -!O3/WR_AHMS=0.0 +!NO2/HO2=+K026*<NO>-K027*<NO2>+0.8*K033*<NO3>+K118*<RO23>+K158*<RO211>+K161*<RO +!212>+K185*<RO219>+K203*<RO225>+K212*<RO228>+K295*<RO252> + PJAC(:,2,10)=+TPK%K026(:)*PCONC(:,1)-TPK%K027(:)*PCONC(:,2)+0.8*TPK%K033(:)*PC& +&ONC(:,8)+TPK%K118(:)*TPK%RO23(:)+TPK%K158(:)*TPK%RO211(:)+TPK%K161(:)*TPK%RO21& +&2(:)+TPK%K185(:)*TPK%RO219(:)+TPK%K203(:)*TPK%RO225(:)+TPK%K212(:)*TPK%RO228(:& +&)+TPK%K295(:)*TPK%RO252(:) ! -!H2O2/O3=+0.01833*K079*<ALKE>+0.00100*K080*<BIO> - PJAC(:,2,1)=+0.01833*TPK%K079(:)*PCONC(:,19)+0.00100*TPK%K080(:)*PCONC(:,20) +!NO2/CO=0.0 ! -!H2O2/H2O2=-K009-K026*<OH>-KTC2-KTR2 - PJAC(:,2,2)=-TPK%K009(:)-TPK%K026(:)*PCONC(:,14)-TPK%KTC2(:)-TPK%KTR2(:) +!NO2/H2O2=0.0 ! -!H2O2/NO=0.0 +!NO2/SO2=0.0 ! -!H2O2/NO2=0.0 +!NO2/H2SO4=0.0 ! -!H2O2/NO3=0.0 +!NO2/OH=-K022*<NO2>+K029*<HNO4>+K039*<HONO>+K040*<NO3> + PJAC(:,2,15)=-TPK%K022(:)*PCONC(:,2)+TPK%K029(:)*PCONC(:,6)+TPK%K039(:)*PCONC(& +&:,4)+TPK%K040(:)*PCONC(:,8) ! -!H2O2/N2O5=0.0 +!NO2/ETHE=0.0 ! -!H2O2/HONO=0.0 +!NO2/OLEL=0.0 ! -!H2O2/HNO3=0.0 +!NO2/OLEH=0.0 ! -!H2O2/HNO4=0.0 +!NO2/ALKL=0.0 ! -!H2O2/NH3=0.0 +!NO2/ALKM=0.0 ! -!H2O2/SO2=0.0 +!NO2/ALKH=0.0 ! -!H2O2/SULF=0.0 +!NO2/AROH=0.0 ! -!H2O2/CO=0.0 +!NO2/AROL=0.0 ! -!H2O2/OH=-K026*<H2O2> - PJAC(:,2,14)=-TPK%K026(:)*PCONC(:,2) +!NO2/AROO=0.0 ! -!H2O2/HO2=+K027*<HO2>+K027*<HO2>+K028*<HO2>*<H2O>+K028*<HO2>*<H2O> - PJAC(:,2,15)=+TPK%K027(:)*PCONC(:,15)+TPK%K027(:)*PCONC(:,15)+TPK%K028(:)*PCON& -&C(:,15)*TPK%H2O(:)+TPK%K028(:)*PCONC(:,15)*TPK%H2O(:) +!NO2/ARAL=0.0 ! -!H2O2/CH4=0.0 +!NO2/ARAC=0.0 ! -!H2O2/ETH=0.0 +!NO2/PAH=0.0 ! -!H2O2/ALKA=0.0 +!NO2/HCHO=0.0 ! -!H2O2/ALKE=+0.01833*K079*<O3> - PJAC(:,2,19)=+0.01833*TPK%K079(:)*PCONC(:,1) +!NO2/ALD2=0.0 ! -!H2O2/BIO=+0.00100*K080*<O3> - PJAC(:,2,20)=+0.00100*TPK%K080(:)*PCONC(:,1) +!NO2/KETL=0.0 ! -!H2O2/ARO=0.0 +!NO2/KETH=0.0 ! -!H2O2/HCHO=0.0 +!NO2/MEOH=0.0 ! -!H2O2/ALD=0.0 +!NO2/ETOH=0.0 ! -!H2O2/KET=0.0 +!NO2/ALCH=0.0 ! -!H2O2/CARBO=0.0 +!NO2/ISOP=0.0 ! -!H2O2/ONIT=0.0 +!NO2/BIOL=0.0 ! -!H2O2/PAN=0.0 +!NO2/BIOH=0.0 ! -!H2O2/OP1=0.0 +!NO2/MTBE=0.0 ! -!H2O2/OP2=0.0 +!NO2/MVK=0.0 ! -!H2O2/ORA1=0.0 +!NO2/MCR=0.0 ! -!H2O2/ORA2=0.0 +!NO2/MGLY=0.0 ! -!H2O2/MO2=0.0 +!NO2/GLY=0.0 ! -!H2O2/ALKAP=0.0 +!NO2/ORA1=0.0 ! -!H2O2/ALKEP=0.0 +!NO2/ORA2=0.0 ! -!H2O2/BIOP=0.0 +!NO2/ACID=0.0 ! -!H2O2/PHO=0.0 +!NO2/UR28=0.0 ! -!H2O2/ADD=0.0 +!NO2/UR21=0.0 ! -!H2O2/AROP=0.0 +!NO2/URG2=0.0 ! -!H2O2/CARBOP=0.0 +!NO2/UR26=0.0 ! -!H2O2/OLN=0.0 +!NO2/RPG2=0.0 ! -!H2O2/XO2=0.0 +!NO2/RP18=0.0 ! -!H2O2/WC_O3=0.0 +!NO2/RPG3=0.0 ! -!H2O2/WC_H2O2=+KTC22 - PJAC(:,2,43)=+TPK%KTC22(:) +!NO2/URG4=0.0 ! -!H2O2/WC_NO=0.0 +!NO2/UR8=0.0 ! -!H2O2/WC_NO2=0.0 +!NO2/UR17=0.0 ! -!H2O2/WC_NO3=0.0 +!NO2/UR7=0.0 ! -!H2O2/WC_N2O5=0.0 +!NO2/RPR3=0.0 ! -!H2O2/WC_HONO=0.0 +!NO2/URG6=0.0 ! -!H2O2/WC_HNO3=0.0 +!NO2/UR22=0.0 ! -!H2O2/WC_HNO4=0.0 +!NO2/URG7=0.0 ! -!H2O2/WC_NH3=0.0 +!NO2/RPR4=0.0 ! -!H2O2/WC_OH=0.0 +!NO2/RPR7=0.0 ! -!H2O2/WC_HO2=0.0 +!NO2/RPG7=0.0 ! -!H2O2/WC_CO2=0.0 +!NO2/URG8=0.0 ! -!H2O2/WC_SO2=0.0 +!NO2/UR19=0.0 ! -!H2O2/WC_SULF=0.0 +!NO2/URG9=0.0 ! -!H2O2/WC_HCHO=0.0 +!NO2/AP7=0.0 ! -!H2O2/WC_ORA1=0.0 +!NO2/URG10=0.0 ! -!H2O2/WC_ORA2=0.0 +!NO2/RPR1=0.0 ! -!H2O2/WC_MO2=0.0 +!NO2/RPR5=0.0 ! -!H2O2/WC_OP1=0.0 +!NO2/RPR8=0.0 ! -!H2O2/WC_ASO3=0.0 +!NO2/RP10=0.0 ! -!H2O2/WC_ASO4=0.0 +!NO2/RP11=0.0 ! -!H2O2/WC_ASO5=0.0 +!NO2/RP16=0.0 ! -!H2O2/WC_AHSO5=0.0 +!NO2/RPRL=0.0 ! -!H2O2/WC_AHMS=0.0 +!NO2/APAN=+1.0000000*K139 + PJAC(:,2,76)=+1.0000000*TPK%K139(:) ! -!H2O2/WR_O3=0.0 +!NO2/PAN1=+K135 + PJAC(:,2,77)=+TPK%K135(:) ! -!H2O2/WR_H2O2=+KTR22 - PJAC(:,2,68)=+TPK%KTR22(:) +!NO2/PAN2=+K136 + PJAC(:,2,78)=+TPK%K136(:) ! -!H2O2/WR_NO=0.0 +!NO2/PAN3=+K137 + PJAC(:,2,79)=+TPK%K137(:) ! -!H2O2/WR_NO2=0.0 +!NO2/PAN4=+K141 + PJAC(:,2,80)=+TPK%K141(:) ! -!H2O2/WR_NO3=0.0 +!NO2/PAN6=+K140 + PJAC(:,2,81)=+TPK%K140(:) ! -!H2O2/WR_N2O5=0.0 +!NO2/PAN7=+K343 + PJAC(:,2,82)=+TPK%K343(:) ! -!H2O2/WR_HONO=0.0 +!NO2/PAN8=+K317 + PJAC(:,2,83)=+TPK%K317(:) ! -!H2O2/WR_HNO3=0.0 +!NO2/PN10=+K138 + PJAC(:,2,84)=+TPK%K138(:) ! -!H2O2/WR_HNO4=0.0 +!NO2/RO2T=+K117*<RO23>+K157*<RO211>+K160*<RO212>+K184*<RO219>+K202*<RO225>+K211 +!*<RO228>+K296*<RO252> + PJAC(:,2,85)=+TPK%K117(:)*TPK%RO23(:)+TPK%K157(:)*TPK%RO211(:)+TPK%K160(:)*TPK& +&%RO212(:)+TPK%K184(:)*TPK%RO219(:)+TPK%K202(:)*TPK%RO225(:)+TPK%K211(:)*TPK%RO& +&228(:)+TPK%K296(:)*TPK%RO252(:) ! -!H2O2/WR_NH3=0.0 +!NO2/RO21=+K110*<NO> + PJAC(:,2,86)=+TPK%K110(:)*PCONC(:,1) ! -!H2O2/WR_OH=0.0 +!NO2/RO25=+TPK%CF4*K122*<NO> + PJAC(:,2,87)=+TPK%CF4*TPK%K122(:)*PCONC(:,1) ! -!H2O2/WR_HO2=0.0 +!O3/NO=-K005*<O3> + PJAC(:,3,1)=-TPK%K005(:)*PCONC(:,3) ! -!H2O2/WR_CO2=0.0 +!O3/NO2=-K006*<O3> + PJAC(:,3,2)=-TPK%K006(:)*PCONC(:,3) ! -!H2O2/WR_SO2=0.0 +!O3/O3=-K005*<NO>-K006*<NO2>-K015-K016-K025*<OH>-K030*<HO2>-K034*<O>-K051*<ETHE +!>-K056*<OLEL>-K066*<ISOP>-K076*<OLEH>-K086*<BIOL>-K090*<BIOH>-K281*<MVK>-K282* +!<MCR> + PJAC(:,3,3)=-TPK%K005(:)*PCONC(:,1)-TPK%K006(:)*PCONC(:,2)-TPK%K015(:)-TPK%K01& +&6(:)-TPK%K025(:)*PCONC(:,15)-TPK%K030(:)*PCONC(:,10)-TPK%K034(:)*TPK%O(:)-TPK%& +&K051(:)*PCONC(:,16)-TPK%K056(:)*PCONC(:,17)-TPK%K066(:)*PCONC(:,35)-TPK%K076(:& +&)*PCONC(:,18)-TPK%K086(:)*PCONC(:,36)-TPK%K090(:)*PCONC(:,37)-TPK%K281(:)*PCON& +&C(:,39)-TPK%K282(:)*PCONC(:,40) ! -!H2O2/WR_SULF=0.0 +!O3/HONO=0.0 ! -!H2O2/WR_HCHO=0.0 +!O3/HNO3=0.0 ! -!H2O2/WR_ORA1=0.0 +!O3/HNO4=0.0 ! -!H2O2/WR_ORA2=0.0 +!O3/N2O5=0.0 ! -!H2O2/WR_MO2=0.0 +!O3/NO3=+K081*<ARAL> + PJAC(:,3,8)=+TPK%K081(:)*PCONC(:,25) ! -!H2O2/WR_OP1=0.0 +!O3/NH3=0.0 ! -!H2O2/WR_ASO3=0.0 +!O3/HO2=-K030*<O3>+K142*<RO26>+K148*<RO28>+K166*<RO239>+K279*<RO248>+K289*<RO25 +!0>+K301*<RO254>+K310*<RO255>+K318*<RO256>+K332*<RO257>+K341*<RO258> + PJAC(:,3,10)=-TPK%K030(:)*PCONC(:,3)+TPK%K142(:)*TPK%RO26(:)+TPK%K148(:)*TPK%R& +&O28(:)+TPK%K166(:)*TPK%RO239(:)+TPK%K279(:)*TPK%RO248(:)+TPK%K289(:)*TPK%RO250& +&(:)+TPK%K301(:)*TPK%RO254(:)+TPK%K310(:)*TPK%RO255(:)+TPK%K318(:)*TPK%RO256(:)& +&+TPK%K332(:)*TPK%RO257(:)+TPK%K341(:)*TPK%RO258(:) ! -!H2O2/WR_ASO4=0.0 +!O3/CO=0.0 ! -!H2O2/WR_ASO5=0.0 +!O3/H2O2=0.0 ! -!H2O2/WR_AHSO5=0.0 +!O3/SO2=0.0 ! -!H2O2/WR_AHMS=0.0 +!O3/H2SO4=0.0 ! -!NO/O3=-K042*<NO> - PJAC(:,3,1)=-TPK%K042(:)*PCONC(:,3) +!O3/OH=-K025*<O3>+TPK%CF39*K082*<ARAL>+K303*<RPR5>+1.0000011*K306*<RPRL>+K322*< +!RPR7>+1.0000005*K323*<RPG7>+K326*<RP11>+1.0000000*K334*<RPG3>+1.0000000*K335*< +!RPG2>+K337*<RP18> + PJAC(:,3,15)=-TPK%K025(:)*PCONC(:,3)+TPK%CF39*TPK%K082(:)*PCONC(:,25)+TPK%K303& +&(:)*PCONC(:,70)+1.0000011*TPK%K306(:)*PCONC(:,75)+TPK%K322(:)*PCONC(:,62)+1.00& +&00005*TPK%K323(:)*PCONC(:,63)+TPK%K326(:)*PCONC(:,73)+1.0000000*TPK%K334(:)*PC& +&ONC(:,52)+1.0000000*TPK%K335(:)*PCONC(:,50)+TPK%K337(:)*PCONC(:,51) ! -!NO/H2O2=0.0 +!O3/ETHE=-K051*<O3> + PJAC(:,3,16)=-TPK%K051(:)*PCONC(:,3) ! -!NO/NO=-K029*<O3P>-K032*<OH>-K035*<HO2>-K042*<O3>-K044*<NO>*<O2>-K044*<NO>*<O2> -!-K044*<NO>*<O2>-K044*<NO>*<O2>-K045*<NO3>-K090*<MO2>-K091*<ALKAP>-K092*<ALKEP> -!-K093*<BIOP>-K094*<AROP>-K095*<CARBOP>-K096*<OLN>-K130*<XO2>-KTC3-KTR3 - PJAC(:,3,3)=-TPK%K029(:)*TPK%O3P(:)-TPK%K032(:)*PCONC(:,14)-TPK%K035(:)*PCONC(& -&:,15)-TPK%K042(:)*PCONC(:,1)-TPK%K044(:)*PCONC(:,3)*TPK%O2(:)-TPK%K044(:)*PCON& -&C(:,3)*TPK%O2(:)-TPK%K044(:)*PCONC(:,3)*TPK%O2(:)-TPK%K044(:)*PCONC(:,3)*TPK%O& -&2(:)-TPK%K045(:)*PCONC(:,5)-TPK%K090(:)*PCONC(:,32)-TPK%K091(:)*PCONC(:,33)-TP& -&K%K092(:)*PCONC(:,34)-TPK%K093(:)*PCONC(:,35)-TPK%K094(:)*PCONC(:,38)-TPK%K095& -&(:)*PCONC(:,39)-TPK%K096(:)*PCONC(:,40)-TPK%K130(:)*PCONC(:,41)-TPK%KTC3(:)-TP& -&K%KTR3(:) +!O3/OLEL=-K056*<O3> + PJAC(:,3,17)=-TPK%K056(:)*PCONC(:,3) ! -!NO/NO2=+K001+K030*<O3P>+K046*<NO3> - PJAC(:,3,4)=+TPK%K001(:)+TPK%K030(:)*TPK%O3P(:)+TPK%K046(:)*PCONC(:,5) +!O3/OLEH=-K076*<O3> + PJAC(:,3,18)=-TPK%K076(:)*PCONC(:,3) ! -!NO/NO3=+K007-K045*<NO>+K046*<NO2> - PJAC(:,3,5)=+TPK%K007(:)-TPK%K045(:)*PCONC(:,3)+TPK%K046(:)*PCONC(:,4) +!O3/ALKL=0.0 ! -!NO/N2O5=0.0 +!O3/ALKM=0.0 ! -!NO/HONO=+K004 - PJAC(:,3,7)=+TPK%K004(:) +!O3/ALKH=0.0 ! -!NO/HNO3=0.0 +!O3/AROH=0.0 ! -!NO/HNO4=0.0 +!O3/AROL=0.0 ! -!NO/NH3=0.0 +!O3/AROO=0.0 ! -!NO/SO2=0.0 +!O3/ARAL=+K081*<NO3>+TPK%CF39*K082*<OH> + PJAC(:,3,25)=+TPK%K081(:)*PCONC(:,8)+TPK%CF39*TPK%K082(:)*PCONC(:,15) ! -!NO/SULF=0.0 +!O3/ARAC=0.0 ! -!NO/CO=0.0 +!O3/PAH=0.0 ! -!NO/OH=-K032*<NO> - PJAC(:,3,14)=-TPK%K032(:)*PCONC(:,3) +!O3/HCHO=0.0 ! -!NO/HO2=-K035*<NO> - PJAC(:,3,15)=-TPK%K035(:)*PCONC(:,3) +!O3/ALD2=0.0 ! -!NO/CH4=0.0 +!O3/KETL=0.0 ! -!NO/ETH=0.0 +!O3/KETH=0.0 ! -!NO/ALKA=0.0 +!O3/MEOH=0.0 ! -!NO/ALKE=0.0 +!O3/ETOH=0.0 ! -!NO/BIO=0.0 +!O3/ALCH=0.0 ! -!NO/ARO=0.0 +!O3/ISOP=-K066*<O3> + PJAC(:,3,35)=-TPK%K066(:)*PCONC(:,3) ! -!NO/HCHO=0.0 +!O3/BIOL=-K086*<O3> + PJAC(:,3,36)=-TPK%K086(:)*PCONC(:,3) ! -!NO/ALD=0.0 +!O3/BIOH=-K090*<O3> + PJAC(:,3,37)=-TPK%K090(:)*PCONC(:,3) ! -!NO/KET=0.0 +!O3/MTBE=0.0 ! -!NO/CARBO=0.0 +!O3/MVK=-K281*<O3> + PJAC(:,3,39)=-TPK%K281(:)*PCONC(:,3) ! -!NO/ONIT=0.0 +!O3/MCR=-K282*<O3> + PJAC(:,3,40)=-TPK%K282(:)*PCONC(:,3) ! -!NO/PAN=0.0 +!O3/MGLY=0.0 ! -!NO/OP1=0.0 +!O3/GLY=0.0 ! -!NO/OP2=0.0 +!O3/ORA1=0.0 ! -!NO/ORA1=0.0 +!O3/ORA2=0.0 ! -!NO/ORA2=0.0 +!O3/ACID=0.0 ! -!NO/MO2=-K090*<NO> - PJAC(:,3,32)=-TPK%K090(:)*PCONC(:,3) +!O3/UR28=0.0 ! -!NO/ALKAP=-K091*<NO> - PJAC(:,3,33)=-TPK%K091(:)*PCONC(:,3) +!O3/UR21=0.0 ! -!NO/ALKEP=-K092*<NO> - PJAC(:,3,34)=-TPK%K092(:)*PCONC(:,3) +!O3/URG2=0.0 ! -!NO/BIOP=-K093*<NO> - PJAC(:,3,35)=-TPK%K093(:)*PCONC(:,3) +!O3/UR26=0.0 ! -!NO/PHO=0.0 +!O3/RPG2=+1.0000000*K335*<OH> + PJAC(:,3,50)=+1.0000000*TPK%K335(:)*PCONC(:,15) ! -!NO/ADD=0.0 +!O3/RP18=+K337*<OH> + PJAC(:,3,51)=+TPK%K337(:)*PCONC(:,15) ! -!NO/AROP=-K094*<NO> - PJAC(:,3,38)=-TPK%K094(:)*PCONC(:,3) +!O3/RPG3=+1.0000000*K334*<OH> + PJAC(:,3,52)=+1.0000000*TPK%K334(:)*PCONC(:,15) ! -!NO/CARBOP=-K095*<NO> - PJAC(:,3,39)=-TPK%K095(:)*PCONC(:,3) +!O3/URG4=0.0 ! -!NO/OLN=-K096*<NO> - PJAC(:,3,40)=-TPK%K096(:)*PCONC(:,3) +!O3/UR8=0.0 ! -!NO/XO2=-K130*<NO> - PJAC(:,3,41)=-TPK%K130(:)*PCONC(:,3) +!O3/UR17=0.0 ! -!NO/WC_O3=0.0 +!O3/UR7=0.0 ! -!NO/WC_H2O2=0.0 +!O3/RPR3=0.0 ! -!NO/WC_NO=+KTC23 - PJAC(:,3,44)=+TPK%KTC23(:) +!O3/URG6=0.0 ! -!NO/WC_NO2=0.0 +!O3/UR22=0.0 ! -!NO/WC_NO3=0.0 +!O3/URG7=0.0 ! -!NO/WC_N2O5=0.0 +!O3/RPR4=0.0 ! -!NO/WC_HONO=0.0 +!O3/RPR7=+K322*<OH> + PJAC(:,3,62)=+TPK%K322(:)*PCONC(:,15) ! -!NO/WC_HNO3=0.0 +!O3/RPG7=+1.0000005*K323*<OH> + PJAC(:,3,63)=+1.0000005*TPK%K323(:)*PCONC(:,15) ! -!NO/WC_HNO4=0.0 +!O3/URG8=0.0 ! -!NO/WC_NH3=0.0 +!O3/UR19=0.0 ! -!NO/WC_OH=0.0 +!O3/URG9=0.0 ! -!NO/WC_HO2=0.0 +!O3/AP7=0.0 ! -!NO/WC_CO2=0.0 +!O3/URG10=0.0 ! -!NO/WC_SO2=0.0 +!O3/RPR1=0.0 ! -!NO/WC_SULF=0.0 +!O3/RPR5=+K303*<OH> + PJAC(:,3,70)=+TPK%K303(:)*PCONC(:,15) ! -!NO/WC_HCHO=0.0 +!O3/RPR8=0.0 ! -!NO/WC_ORA1=0.0 +!O3/RP10=0.0 ! -!NO/WC_ORA2=0.0 +!O3/RP11=+K326*<OH> + PJAC(:,3,73)=+TPK%K326(:)*PCONC(:,15) ! -!NO/WC_MO2=0.0 +!O3/RP16=0.0 ! -!NO/WC_OP1=0.0 +!O3/RPRL=+1.0000011*K306*<OH> + PJAC(:,3,75)=+1.0000011*TPK%K306(:)*PCONC(:,15) ! -!NO/WC_ASO3=0.0 +!O3/APAN=0.0 ! -!NO/WC_ASO4=0.0 +!O3/PAN1=0.0 ! -!NO/WC_ASO5=0.0 +!O3/PAN2=0.0 ! -!NO/WC_AHSO5=0.0 +!O3/PAN3=0.0 ! -!NO/WC_AHMS=0.0 +!O3/PAN4=0.0 ! -!NO/WR_O3=0.0 +!O3/PAN6=0.0 ! -!NO/WR_H2O2=0.0 +!O3/PAN7=0.0 ! -!NO/WR_NO=+KTR23 - PJAC(:,3,69)=+TPK%KTR23(:) +!O3/PAN8=0.0 ! -!NO/WR_NO2=0.0 +!O3/PN10=0.0 ! -!NO/WR_NO3=0.0 +!O3/RO2T=0.0 ! -!NO/WR_N2O5=0.0 +!O3/RO21=0.0 ! -!NO/WR_HONO=0.0 +!O3/RO25=0.0 ! -!NO/WR_HNO3=0.0 +!HONO/NO=+K019*<OH> + PJAC(:,4,1)=+TPK%K019(:)*PCONC(:,15) ! -!NO/WR_HNO4=0.0 +!HONO/NO2=+0.5*K021*<H2O> + PJAC(:,4,2)=+0.5*TPK%K021(:)*TPK%H2O(:) ! -!NO/WR_NH3=0.0 +!HONO/O3=0.0 ! -!NO/WR_OH=0.0 +!HONO/HONO=-K020-K039*<OH> + PJAC(:,4,4)=-TPK%K020(:)-TPK%K039(:)*PCONC(:,15) ! -!NO/WR_HO2=0.0 +!HONO/HNO3=0.0 ! -!NO/WR_CO2=0.0 +!HONO/HNO4=0.0 ! -!NO/WR_SO2=0.0 +!HONO/N2O5=0.0 ! -!NO/WR_SULF=0.0 +!HONO/NO3=0.0 ! -!NO/WR_HCHO=0.0 +!HONO/NH3=0.0 ! -!NO/WR_ORA1=0.0 +!HONO/HO2=0.0 ! -!NO/WR_ORA2=0.0 +!HONO/CO=0.0 ! -!NO/WR_MO2=0.0 +!HONO/H2O2=0.0 ! -!NO/WR_OP1=0.0 +!HONO/SO2=0.0 ! -!NO/WR_ASO3=0.0 +!HONO/H2SO4=0.0 ! -!NO/WR_ASO4=0.0 +!HONO/OH=+K019*<NO>-K039*<HONO> + PJAC(:,4,15)=+TPK%K019(:)*PCONC(:,1)-TPK%K039(:)*PCONC(:,4) ! -!NO/WR_ASO5=0.0 +!HONO/ETHE=0.0 ! -!NO/WR_AHSO5=0.0 +!HONO/OLEL=0.0 ! -!NO/WR_AHMS=0.0 +!HONO/OLEH=0.0 ! -!NO2/O3=+K042*<NO>-K043*<NO2>+0.70*K082*<PAN> - PJAC(:,4,1)=+TPK%K042(:)*PCONC(:,3)-TPK%K043(:)*PCONC(:,4)+0.70*TPK%K082(:)*PC& -&ONC(:,27) +!HONO/ALKL=0.0 ! -!NO2/H2O2=0.0 +!HONO/ALKM=0.0 ! -!NO2/NO=+K029*<O3P>+K035*<HO2>+K042*<O3>+K044*<NO>*<O2>+K044*<NO>*<O2>+K044*<NO -!>*<O2>+K044*<NO>*<O2>+K045*<NO3>+K045*<NO3>+K090*<MO2>+0.91541*K091*<ALKAP>+K0 -!92*<ALKEP>+0.84700*K093*<BIOP>+0.95115*K094*<AROP>+K095*<CARBOP>+1.81599*K096* -!<OLN>+K130*<XO2> - PJAC(:,4,3)=+TPK%K029(:)*TPK%O3P(:)+TPK%K035(:)*PCONC(:,15)+TPK%K042(:)*PCONC(& -&:,1)+TPK%K044(:)*PCONC(:,3)*TPK%O2(:)+TPK%K044(:)*PCONC(:,3)*TPK%O2(:)+TPK%K04& -&4(:)*PCONC(:,3)*TPK%O2(:)+TPK%K044(:)*PCONC(:,3)*TPK%O2(:)+TPK%K045(:)*PCONC(:& -&,5)+TPK%K045(:)*PCONC(:,5)+TPK%K090(:)*PCONC(:,32)+0.91541*TPK%K091(:)*PCONC(:& -&,33)+TPK%K092(:)*PCONC(:,34)+0.84700*TPK%K093(:)*PCONC(:,35)+0.95115*TPK%K094(& -&:)*PCONC(:,38)+TPK%K095(:)*PCONC(:,39)+1.81599*TPK%K096(:)*PCONC(:,40)+TPK%K13& -&0(:)*PCONC(:,41) -! -!NO2/NO2=-K001-K030*<O3P>-K031*<O3P>-K033*<OH>-K036*<HO2>-K043*<O3>+K046*<NO3>- -!K046*<NO3>-K047*<NO3>-K083*<PHO>-K085*<ADD>-K088*<CARBOP>-KTC4-KTR4 - PJAC(:,4,4)=-TPK%K001(:)-TPK%K030(:)*TPK%O3P(:)-TPK%K031(:)*TPK%O3P(:)-TPK%K03& -&3(:)*PCONC(:,14)-TPK%K036(:)*PCONC(:,15)-TPK%K043(:)*PCONC(:,1)+TPK%K046(:)*PC& -&ONC(:,5)-TPK%K046(:)*PCONC(:,5)-TPK%K047(:)*PCONC(:,5)-TPK%K083(:)*PCONC(:,36)& -&-TPK%K085(:)*PCONC(:,37)-TPK%K088(:)*PCONC(:,39)-TPK%KTC4(:)-TPK%KTR4(:) -! -!NO2/NO3=+K008+K034*<OH>+0.7*K038*<HO2>+K045*<NO>+K045*<NO>+K046*<NO2>-K046*<NO -!2>-K047*<NO2>+K049*<NO3>+K049*<NO3>+K049*<NO3>+K049*<NO3>+0.10530*K074*<CARBO> -!+0.40*K078*<PAN>+K119*<MO2>+K120*<ALKAP>+K121*<ALKEP>+K122*<BIOP>+K123*<AROP>+ -!K124*<CARBOP>+1.74072*K125*<OLN>+K131*<XO2> - PJAC(:,4,5)=+TPK%K008(:)+TPK%K034(:)*PCONC(:,14)+0.7*TPK%K038(:)*PCONC(:,15)+T& -&PK%K045(:)*PCONC(:,3)+TPK%K045(:)*PCONC(:,3)+TPK%K046(:)*PCONC(:,4)-TPK%K046(:& -&)*PCONC(:,4)-TPK%K047(:)*PCONC(:,4)+TPK%K049(:)*PCONC(:,5)+TPK%K049(:)*PCONC(:& -&,5)+TPK%K049(:)*PCONC(:,5)+TPK%K049(:)*PCONC(:,5)+0.10530*TPK%K074(:)*PCONC(:,& -&25)+0.40*TPK%K078(:)*PCONC(:,27)+TPK%K119(:)*PCONC(:,32)+TPK%K120(:)*PCONC(:,3& -&3)+TPK%K121(:)*PCONC(:,34)+TPK%K122(:)*PCONC(:,35)+TPK%K123(:)*PCONC(:,38)+TPK& -&%K124(:)*PCONC(:,39)+1.74072*TPK%K125(:)*PCONC(:,40)+TPK%K131(:)*PCONC(:,41) -! -!NO2/N2O5=+K048 - PJAC(:,4,6)=+TPK%K048(:) -! -!NO2/HONO=+K039*<OH> - PJAC(:,4,7)=+TPK%K039(:)*PCONC(:,14) -! -!NO2/HNO3=+K005 - PJAC(:,4,8)=+TPK%K005(:) -! -!NO2/HNO4=+0.65*K006+K037+K041*<OH> - PJAC(:,4,9)=+0.65*TPK%K006(:)+TPK%K037(:)+TPK%K041(:)*PCONC(:,14) +!HONO/ALKH=0.0 ! -!NO2/NH3=0.0 +!HONO/AROH=0.0 ! -!NO2/SO2=0.0 +!HONO/AROL=0.0 ! -!NO2/SULF=0.0 +!HONO/AROO=0.0 ! -!NO2/CO=0.0 +!HONO/ARAL=0.0 ! -!NO2/OH=-K033*<NO2>+K034*<NO3>+K039*<HONO>+K041*<HNO4>+K071*<ONIT> - PJAC(:,4,14)=-TPK%K033(:)*PCONC(:,4)+TPK%K034(:)*PCONC(:,5)+TPK%K039(:)*PCONC(& -&:,7)+TPK%K041(:)*PCONC(:,9)+TPK%K071(:)*PCONC(:,26) +!HONO/ARAC=0.0 ! -!NO2/HO2=+K035*<NO>-K036*<NO2>+0.7*K038*<NO3> - PJAC(:,4,15)=+TPK%K035(:)*PCONC(:,3)-TPK%K036(:)*PCONC(:,4)+0.7*TPK%K038(:)*PC& -&ONC(:,5) +!HONO/PAH=0.0 ! -!NO2/CH4=0.0 +!HONO/HCHO=0.0 ! -!NO2/ETH=0.0 +!HONO/ALD2=0.0 ! -!NO2/ALKA=0.0 +!HONO/KETL=0.0 ! -!NO2/ALKE=0.0 +!HONO/KETH=0.0 ! -!NO2/BIO=0.0 +!HONO/MEOH=0.0 ! -!NO2/ARO=0.0 +!HONO/ETOH=0.0 ! -!NO2/HCHO=0.0 +!HONO/ALCH=0.0 ! -!NO2/ALD=0.0 +!HONO/ISOP=0.0 ! -!NO2/KET=0.0 +!HONO/BIOL=0.0 ! -!NO2/CARBO=+0.10530*K074*<NO3> - PJAC(:,4,25)=+0.10530*TPK%K074(:)*PCONC(:,5) +!HONO/BIOH=0.0 ! -!NO2/ONIT=+K017+K071*<OH> - PJAC(:,4,26)=+TPK%K017(:)+TPK%K071(:)*PCONC(:,14) +!HONO/MTBE=0.0 ! -!NO2/PAN=+0.40*K078*<NO3>+0.70*K082*<O3>+K089 - PJAC(:,4,27)=+0.40*TPK%K078(:)*PCONC(:,5)+0.70*TPK%K082(:)*PCONC(:,1)+TPK%K089& -&(:) +!HONO/MVK=0.0 ! -!NO2/OP1=0.0 +!HONO/MCR=0.0 ! -!NO2/OP2=0.0 +!HONO/MGLY=0.0 ! -!NO2/ORA1=0.0 +!HONO/GLY=0.0 ! -!NO2/ORA2=0.0 +!HONO/ORA1=0.0 ! -!NO2/MO2=+K090*<NO>+0.32440*K110*<OLN>+K119*<NO3> - PJAC(:,4,32)=+TPK%K090(:)*PCONC(:,3)+0.32440*TPK%K110(:)*PCONC(:,40)+TPK%K119(& -&:)*PCONC(:,5) +!HONO/ORA2=0.0 ! -!NO2/ALKAP=+0.91541*K091*<NO>+K120*<NO3> - PJAC(:,4,33)=+0.91541*TPK%K091(:)*PCONC(:,3)+TPK%K120(:)*PCONC(:,5) +!HONO/ACID=0.0 ! -!NO2/ALKEP=+K092*<NO>+K121*<NO3> - PJAC(:,4,34)=+TPK%K092(:)*PCONC(:,3)+TPK%K121(:)*PCONC(:,5) +!HONO/UR28=0.0 ! -!NO2/BIOP=+0.84700*K093*<NO>+K122*<NO3> - PJAC(:,4,35)=+0.84700*TPK%K093(:)*PCONC(:,3)+TPK%K122(:)*PCONC(:,5) +!HONO/UR21=0.0 ! -!NO2/PHO=-K083*<NO2> - PJAC(:,4,36)=-TPK%K083(:)*PCONC(:,4) +!HONO/URG2=0.0 ! -!NO2/ADD=-K085*<NO2> - PJAC(:,4,37)=-TPK%K085(:)*PCONC(:,4) +!HONO/UR26=0.0 ! -!NO2/AROP=+0.95115*K094*<NO>+K123*<NO3> - PJAC(:,4,38)=+0.95115*TPK%K094(:)*PCONC(:,3)+TPK%K123(:)*PCONC(:,5) +!HONO/RPG2=0.0 ! -!NO2/CARBOP=-K088*<NO2>+K095*<NO>+0.00000*K116*<OLN>+K124*<NO3> - PJAC(:,4,39)=-TPK%K088(:)*PCONC(:,4)+TPK%K095(:)*PCONC(:,3)+0.00000*TPK%K116(:& -&)*PCONC(:,40)+TPK%K124(:)*PCONC(:,5) +!HONO/RP18=0.0 ! -!NO2/OLN=+1.81599*K096*<NO>+0.32440*K110*<MO2>+0.00000*K116*<CARBOP>+0.00000*K1 -!18*<OLN>+0.00000*K118*<OLN>+1.74072*K125*<NO3> - PJAC(:,4,40)=+1.81599*TPK%K096(:)*PCONC(:,3)+0.32440*TPK%K110(:)*PCONC(:,32)+0& -&.00000*TPK%K116(:)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K11& -&8(:)*PCONC(:,40)+1.74072*TPK%K125(:)*PCONC(:,5) +!HONO/RPG3=0.0 ! -!NO2/XO2=+K130*<NO>+K131*<NO3> - PJAC(:,4,41)=+TPK%K130(:)*PCONC(:,3)+TPK%K131(:)*PCONC(:,5) +!HONO/URG4=0.0 ! -!NO2/WC_O3=0.0 +!HONO/UR8=0.0 ! -!NO2/WC_H2O2=0.0 +!HONO/UR17=0.0 ! -!NO2/WC_NO=0.0 +!HONO/UR7=0.0 ! -!NO2/WC_NO2=+KTC24 - PJAC(:,4,45)=+TPK%KTC24(:) +!HONO/RPR3=0.0 ! -!NO2/WC_NO3=0.0 +!HONO/URG6=0.0 ! -!NO2/WC_N2O5=0.0 +!HONO/UR22=0.0 ! -!NO2/WC_HONO=0.0 +!HONO/URG7=0.0 ! -!NO2/WC_HNO3=0.0 +!HONO/RPR4=0.0 ! -!NO2/WC_HNO4=0.0 +!HONO/RPR7=0.0 ! -!NO2/WC_NH3=0.0 +!HONO/RPG7=0.0 ! -!NO2/WC_OH=0.0 +!HONO/URG8=0.0 ! -!NO2/WC_HO2=0.0 +!HONO/UR19=0.0 ! -!NO2/WC_CO2=0.0 +!HONO/URG9=0.0 ! -!NO2/WC_SO2=0.0 +!HONO/AP7=0.0 ! -!NO2/WC_SULF=0.0 +!HONO/URG10=0.0 ! -!NO2/WC_HCHO=0.0 +!HONO/RPR1=0.0 ! -!NO2/WC_ORA1=0.0 +!HONO/RPR5=0.0 ! -!NO2/WC_ORA2=0.0 +!HONO/RPR8=0.0 ! -!NO2/WC_MO2=0.0 +!HONO/RP10=0.0 ! -!NO2/WC_OP1=0.0 +!HONO/RP11=0.0 ! -!NO2/WC_ASO3=0.0 +!HONO/RP16=0.0 ! -!NO2/WC_ASO4=0.0 +!HONO/RPRL=0.0 ! -!NO2/WC_ASO5=0.0 +!HONO/APAN=0.0 ! -!NO2/WC_AHSO5=0.0 +!HONO/PAN1=0.0 ! -!NO2/WC_AHMS=0.0 +!HONO/PAN2=0.0 ! -!NO2/WR_O3=0.0 +!HONO/PAN3=0.0 ! -!NO2/WR_H2O2=0.0 +!HONO/PAN4=0.0 ! -!NO2/WR_NO=0.0 +!HONO/PAN6=0.0 ! -!NO2/WR_NO2=+KTR24 - PJAC(:,4,70)=+TPK%KTR24(:) +!HONO/PAN7=0.0 ! -!NO2/WR_NO3=0.0 +!HONO/PAN8=0.0 ! -!NO2/WR_N2O5=0.0 +!HONO/PN10=0.0 ! -!NO2/WR_HONO=0.0 +!HONO/RO2T=0.0 ! -!NO2/WR_HNO3=0.0 +!HONO/RO21=0.0 ! -!NO2/WR_HNO4=0.0 +!HONO/RO25=0.0 ! -!NO2/WR_NH3=0.0 +!HNO3/NO=0.0 ! -!NO2/WR_OH=0.0 +!HNO3/NO2=+0.5*K021*<H2O>+K022*<OH> + PJAC(:,5,2)=+0.5*TPK%K021(:)*TPK%H2O(:)+TPK%K022(:)*PCONC(:,15) ! -!NO2/WR_HO2=0.0 +!HNO3/O3=0.0 ! -!NO2/WR_CO2=0.0 +!HNO3/HONO=0.0 ! -!NO2/WR_SO2=0.0 +!HNO3/HNO3=-K023*<OH> + PJAC(:,5,5)=-TPK%K023(:)*PCONC(:,15) ! -!NO2/WR_SULF=0.0 +!HNO3/HNO4=0.0 ! -!NO2/WR_HCHO=0.0 +!HNO3/N2O5=+2.*K011*<H2O> + PJAC(:,5,7)=+2.*TPK%K011(:)*TPK%H2O(:) ! -!NO2/WR_ORA1=0.0 +!HNO3/NO3=+0.2*K033*<HO2>+K047*<HCHO>+K061*<ALD2>+K072*<AROO>+K081*<ARAL>+TPK%C +!F46*K275*<MCR>+K278*<MGLY>+K307*<RPR1>+K313*<RPR3>+K320*<RPR4>+K327*<RPR8>+K33 +!8*<RP16> + PJAC(:,5,8)=+0.2*TPK%K033(:)*PCONC(:,10)+TPK%K047(:)*PCONC(:,28)+TPK%K061(:)*P& +&CONC(:,29)+TPK%K072(:)*PCONC(:,24)+TPK%K081(:)*PCONC(:,25)+TPK%CF46*TPK%K275(:& +&)*PCONC(:,40)+TPK%K278(:)*PCONC(:,41)+TPK%K307(:)*PCONC(:,69)+TPK%K313(:)*PCON& +&C(:,57)+TPK%K320(:)*PCONC(:,61)+TPK%K327(:)*PCONC(:,71)+TPK%K338(:)*PCONC(:,74& +&) ! -!NO2/WR_ORA2=0.0 +!HNO3/NH3=0.0 ! -!NO2/WR_MO2=0.0 +!HNO3/HO2=+0.2*K033*<NO3> + PJAC(:,5,10)=+0.2*TPK%K033(:)*PCONC(:,8) ! -!NO2/WR_OP1=0.0 +!HNO3/CO=0.0 ! -!NO2/WR_ASO3=0.0 +!HNO3/H2O2=0.0 ! -!NO2/WR_ASO4=0.0 +!HNO3/SO2=0.0 ! -!NO2/WR_ASO5=0.0 +!HNO3/H2SO4=0.0 ! -!NO2/WR_AHSO5=0.0 +!HNO3/OH=+K022*<NO2>-K023*<HNO3> + PJAC(:,5,15)=+TPK%K022(:)*PCONC(:,2)-TPK%K023(:)*PCONC(:,5) ! -!NO2/WR_AHMS=0.0 +!HNO3/ETHE=0.0 ! -!NO3/O3=+K043*<NO2> - PJAC(:,5,1)=+TPK%K043(:)*PCONC(:,4) +!HNO3/OLEL=0.0 ! -!NO3/H2O2=0.0 +!HNO3/OLEH=0.0 ! -!NO3/NO=-K045*<NO3> - PJAC(:,5,3)=-TPK%K045(:)*PCONC(:,5) -! -!NO3/NO2=+K031*<O3P>+K043*<O3>-K046*<NO3>-K047*<NO3> - PJAC(:,5,4)=+TPK%K031(:)*TPK%O3P(:)+TPK%K043(:)*PCONC(:,1)-TPK%K046(:)*PCONC(:& -&,5)-TPK%K047(:)*PCONC(:,5) -! -!NO3/NO3=-K007-K008-K034*<OH>-K038*<HO2>-K045*<NO>-K046*<NO2>-K047*<NO2>-K049*< -!NO3>-K049*<NO3>-K049*<NO3>-K049*<NO3>-K072*<HCHO>-K073*<ALD>-K074*<CARBO>-K075 -!*<ARO>-K076*<ALKE>-K077*<BIO>+0.60*K078*<PAN>-K078*<PAN>-K119*<MO2>-K120*<ALKA -!P>-K121*<ALKEP>-K122*<BIOP>-K123*<AROP>-K124*<CARBOP>-K125*<OLN>-K131*<XO2>-KT -!C5-KTR5 - PJAC(:,5,5)=-TPK%K007(:)-TPK%K008(:)-TPK%K034(:)*PCONC(:,14)-TPK%K038(:)*PCONC& -&(:,15)-TPK%K045(:)*PCONC(:,3)-TPK%K046(:)*PCONC(:,4)-TPK%K047(:)*PCONC(:,4)-TP& -&K%K049(:)*PCONC(:,5)-TPK%K049(:)*PCONC(:,5)-TPK%K049(:)*PCONC(:,5)-TPK%K049(:)& -&*PCONC(:,5)-TPK%K072(:)*PCONC(:,22)-TPK%K073(:)*PCONC(:,23)-TPK%K074(:)*PCONC(& -&:,25)-TPK%K075(:)*PCONC(:,21)-TPK%K076(:)*PCONC(:,19)-TPK%K077(:)*PCONC(:,20)+& -&0.60*TPK%K078(:)*PCONC(:,27)-TPK%K078(:)*PCONC(:,27)-TPK%K119(:)*PCONC(:,32)-T& -&PK%K120(:)*PCONC(:,33)-TPK%K121(:)*PCONC(:,34)-TPK%K122(:)*PCONC(:,35)-TPK%K12& -&3(:)*PCONC(:,38)-TPK%K124(:)*PCONC(:,39)-TPK%K125(:)*PCONC(:,40)-TPK%K131(:)*P& -&CONC(:,41)-TPK%KTC5(:)-TPK%KTR5(:) -! -!NO3/N2O5=+K048 - PJAC(:,5,6)=+TPK%K048(:) +!HNO3/ALKL=0.0 ! -!NO3/HONO=0.0 +!HNO3/ALKM=0.0 ! -!NO3/HNO3=+K040*<OH> - PJAC(:,5,8)=+TPK%K040(:)*PCONC(:,14) +!HNO3/ALKH=0.0 ! -!NO3/HNO4=+0.35*K006 - PJAC(:,5,9)=+0.35*TPK%K006(:) +!HNO3/AROH=0.0 ! -!NO3/NH3=0.0 +!HNO3/AROL=0.0 ! -!NO3/SO2=0.0 +!HNO3/AROO=+K072*<NO3> + PJAC(:,5,24)=+TPK%K072(:)*PCONC(:,8) ! -!NO3/SULF=0.0 +!HNO3/ARAL=+K081*<NO3> + PJAC(:,5,25)=+TPK%K081(:)*PCONC(:,8) ! -!NO3/CO=0.0 +!HNO3/ARAC=0.0 ! -!NO3/OH=-K034*<NO3>+K040*<HNO3>+0.71893*K070*<PAN> - PJAC(:,5,14)=-TPK%K034(:)*PCONC(:,5)+TPK%K040(:)*PCONC(:,8)+0.71893*TPK%K070(:& -&)*PCONC(:,27) +!HNO3/PAH=0.0 ! -!NO3/HO2=-K038*<NO3> - PJAC(:,5,15)=-TPK%K038(:)*PCONC(:,5) +!HNO3/HCHO=+K047*<NO3> + PJAC(:,5,28)=+TPK%K047(:)*PCONC(:,8) ! -!NO3/CH4=0.0 +!HNO3/ALD2=+K061*<NO3> + PJAC(:,5,29)=+TPK%K061(:)*PCONC(:,8) ! -!NO3/ETH=0.0 +!HNO3/KETL=0.0 ! -!NO3/ALKA=0.0 +!HNO3/KETH=0.0 ! -!NO3/ALKE=-K076*<NO3> - PJAC(:,5,19)=-TPK%K076(:)*PCONC(:,5) +!HNO3/MEOH=0.0 ! -!NO3/BIO=-K077*<NO3> - PJAC(:,5,20)=-TPK%K077(:)*PCONC(:,5) +!HNO3/ETOH=0.0 ! -!NO3/ARO=-K075*<NO3> - PJAC(:,5,21)=-TPK%K075(:)*PCONC(:,5) +!HNO3/ALCH=0.0 ! -!NO3/HCHO=-K072*<NO3> - PJAC(:,5,22)=-TPK%K072(:)*PCONC(:,5) +!HNO3/ISOP=0.0 ! -!NO3/ALD=-K073*<NO3> - PJAC(:,5,23)=-TPK%K073(:)*PCONC(:,5) +!HNO3/BIOL=0.0 ! -!NO3/KET=0.0 +!HNO3/BIOH=0.0 ! -!NO3/CARBO=-K074*<NO3> - PJAC(:,5,25)=-TPK%K074(:)*PCONC(:,5) +!HNO3/MTBE=0.0 ! -!NO3/ONIT=0.0 +!HNO3/MVK=0.0 ! -!NO3/PAN=+0.71893*K070*<OH>+0.60*K078*<NO3>-K078*<NO3> - PJAC(:,5,27)=+0.71893*TPK%K070(:)*PCONC(:,14)+0.60*TPK%K078(:)*PCONC(:,5)-TPK%& -&K078(:)*PCONC(:,5) +!HNO3/MCR=+TPK%CF46*K275*<NO3> + PJAC(:,5,40)=+TPK%CF46*TPK%K275(:)*PCONC(:,8) ! -!NO3/OP1=0.0 +!HNO3/MGLY=+K278*<NO3> + PJAC(:,5,41)=+TPK%K278(:)*PCONC(:,8) ! -!NO3/OP2=0.0 +!HNO3/GLY=0.0 ! -!NO3/ORA1=0.0 +!HNO3/ORA1=0.0 ! -!NO3/ORA2=0.0 +!HNO3/ORA2=0.0 ! -!NO3/MO2=-K119*<NO3> - PJAC(:,5,32)=-TPK%K119(:)*PCONC(:,5) +!HNO3/ACID=0.0 ! -!NO3/ALKAP=-K120*<NO3> - PJAC(:,5,33)=-TPK%K120(:)*PCONC(:,5) +!HNO3/UR28=0.0 ! -!NO3/ALKEP=-K121*<NO3> - PJAC(:,5,34)=-TPK%K121(:)*PCONC(:,5) +!HNO3/UR21=0.0 ! -!NO3/BIOP=-K122*<NO3> - PJAC(:,5,35)=-TPK%K122(:)*PCONC(:,5) +!HNO3/URG2=0.0 ! -!NO3/PHO=0.0 +!HNO3/UR26=0.0 ! -!NO3/ADD=0.0 +!HNO3/RPG2=0.0 ! -!NO3/AROP=-K123*<NO3> - PJAC(:,5,38)=-TPK%K123(:)*PCONC(:,5) +!HNO3/RP18=0.0 ! -!NO3/CARBOP=-K124*<NO3> - PJAC(:,5,39)=-TPK%K124(:)*PCONC(:,5) +!HNO3/RPG3=0.0 ! -!NO3/OLN=-K125*<NO3> - PJAC(:,5,40)=-TPK%K125(:)*PCONC(:,5) +!HNO3/URG4=0.0 ! -!NO3/XO2=-K131*<NO3> - PJAC(:,5,41)=-TPK%K131(:)*PCONC(:,5) +!HNO3/UR8=0.0 ! -!NO3/WC_O3=0.0 +!HNO3/UR17=0.0 ! -!NO3/WC_H2O2=0.0 +!HNO3/UR7=0.0 ! -!NO3/WC_NO=0.0 +!HNO3/RPR3=+K313*<NO3> + PJAC(:,5,57)=+TPK%K313(:)*PCONC(:,8) ! -!NO3/WC_NO2=0.0 +!HNO3/URG6=0.0 ! -!NO3/WC_NO3=+KTC25 - PJAC(:,5,46)=+TPK%KTC25(:) +!HNO3/UR22=0.0 ! -!NO3/WC_N2O5=0.0 +!HNO3/URG7=0.0 ! -!NO3/WC_HONO=0.0 +!HNO3/RPR4=+K320*<NO3> + PJAC(:,5,61)=+TPK%K320(:)*PCONC(:,8) ! -!NO3/WC_HNO3=0.0 +!HNO3/RPR7=0.0 ! -!NO3/WC_HNO4=0.0 +!HNO3/RPG7=0.0 ! -!NO3/WC_NH3=0.0 +!HNO3/URG8=0.0 ! -!NO3/WC_OH=0.0 +!HNO3/UR19=0.0 ! -!NO3/WC_HO2=0.0 +!HNO3/URG9=0.0 ! -!NO3/WC_CO2=0.0 +!HNO3/AP7=0.0 ! -!NO3/WC_SO2=0.0 +!HNO3/URG10=0.0 ! -!NO3/WC_SULF=0.0 +!HNO3/RPR1=+K307*<NO3> + PJAC(:,5,69)=+TPK%K307(:)*PCONC(:,8) ! -!NO3/WC_HCHO=0.0 +!HNO3/RPR5=0.0 ! -!NO3/WC_ORA1=0.0 +!HNO3/RPR8=+K327*<NO3> + PJAC(:,5,71)=+TPK%K327(:)*PCONC(:,8) ! -!NO3/WC_ORA2=0.0 +!HNO3/RP10=0.0 ! -!NO3/WC_MO2=0.0 +!HNO3/RP11=0.0 ! -!NO3/WC_OP1=0.0 +!HNO3/RP16=+K338*<NO3> + PJAC(:,5,74)=+TPK%K338(:)*PCONC(:,8) ! -!NO3/WC_ASO3=0.0 +!HNO3/RPRL=0.0 ! -!NO3/WC_ASO4=0.0 +!HNO3/APAN=0.0 ! -!NO3/WC_ASO5=0.0 +!HNO3/PAN1=0.0 ! -!NO3/WC_AHSO5=0.0 +!HNO3/PAN2=0.0 ! -!NO3/WC_AHMS=0.0 +!HNO3/PAN3=0.0 ! -!NO3/WR_O3=0.0 +!HNO3/PAN4=0.0 ! -!NO3/WR_H2O2=0.0 +!HNO3/PAN6=0.0 ! -!NO3/WR_NO=0.0 +!HNO3/PAN7=0.0 ! -!NO3/WR_NO2=0.0 +!HNO3/PAN8=0.0 ! -!NO3/WR_NO3=+KTR25 - PJAC(:,5,71)=+TPK%KTR25(:) +!HNO3/PN10=0.0 ! -!NO3/WR_N2O5=0.0 +!HNO3/RO2T=0.0 ! -!NO3/WR_HONO=0.0 +!HNO3/RO21=0.0 ! -!NO3/WR_HNO3=0.0 +!HNO3/RO25=0.0 ! -!NO3/WR_HNO4=0.0 +RETURN +END SUBROUTINE SUBJ0 ! -!NO3/WR_NH3=0.0 +SUBROUTINE SUBJ1 ! -!NO3/WR_OH=0.0 +!Indices 6 a 10 ! -!NO3/WR_HO2=0.0 ! -!NO3/WR_CO2=0.0 +!HNO4/NO=0.0 ! -!NO3/WR_SO2=0.0 +!HNO4/NO2=+K027*<HO2> + PJAC(:,6,2)=+TPK%K027(:)*PCONC(:,10) ! -!NO3/WR_SULF=0.0 +!HNO4/O3=0.0 ! -!NO3/WR_HCHO=0.0 +!HNO4/HONO=0.0 ! -!NO3/WR_ORA1=0.0 +!HNO4/HNO3=0.0 ! -!NO3/WR_ORA2=0.0 +!HNO4/HNO4=-K028-K029*<OH> + PJAC(:,6,6)=-TPK%K028(:)-TPK%K029(:)*PCONC(:,15) ! -!NO3/WR_MO2=0.0 +!HNO4/N2O5=0.0 ! -!NO3/WR_OP1=0.0 +!HNO4/NO3=0.0 ! -!NO3/WR_ASO3=0.0 +!HNO4/NH3=0.0 ! -!NO3/WR_ASO4=0.0 +!HNO4/HO2=+K027*<NO2> + PJAC(:,6,10)=+TPK%K027(:)*PCONC(:,2) ! -!NO3/WR_ASO5=0.0 +!HNO4/CO=0.0 ! -!NO3/WR_AHSO5=0.0 +!HNO4/H2O2=0.0 ! -!NO3/WR_AHMS=0.0 +!HNO4/SO2=0.0 ! -RETURN -END SUBROUTINE SUBJ0 +!HNO4/H2SO4=0.0 ! -SUBROUTINE SUBJ1 +!HNO4/OH=-K029*<HNO4> + PJAC(:,6,15)=-TPK%K029(:)*PCONC(:,6) ! -!Indices 6 a 10 +!HNO4/ETHE=0.0 ! +!HNO4/OLEL=0.0 ! -!N2O5/O3=0.0 +!HNO4/OLEH=0.0 ! -!N2O5/H2O2=0.0 +!HNO4/ALKL=0.0 ! -!N2O5/NO=0.0 +!HNO4/ALKM=0.0 ! -!N2O5/NO2=+K047*<NO3> - PJAC(:,6,4)=+TPK%K047(:)*PCONC(:,5) +!HNO4/ALKH=0.0 ! -!N2O5/NO3=+K047*<NO2> - PJAC(:,6,5)=+TPK%K047(:)*PCONC(:,4) +!HNO4/AROH=0.0 ! -!N2O5/N2O5=-K048-KTC6-KTR6 - PJAC(:,6,6)=-TPK%K048(:)-TPK%KTC6(:)-TPK%KTR6(:) +!HNO4/AROL=0.0 ! -!N2O5/HONO=0.0 +!HNO4/AROO=0.0 ! -!N2O5/HNO3=0.0 +!HNO4/ARAL=0.0 ! -!N2O5/HNO4=0.0 +!HNO4/ARAC=0.0 ! -!N2O5/NH3=0.0 +!HNO4/PAH=0.0 ! -!N2O5/SO2=0.0 +!HNO4/HCHO=0.0 ! -!N2O5/SULF=0.0 +!HNO4/ALD2=0.0 ! -!N2O5/CO=0.0 +!HNO4/KETL=0.0 ! -!N2O5/OH=0.0 +!HNO4/KETH=0.0 ! -!N2O5/HO2=0.0 +!HNO4/MEOH=0.0 ! -!N2O5/CH4=0.0 +!HNO4/ETOH=0.0 ! -!N2O5/ETH=0.0 +!HNO4/ALCH=0.0 ! -!N2O5/ALKA=0.0 +!HNO4/ISOP=0.0 ! -!N2O5/ALKE=0.0 +!HNO4/BIOL=0.0 ! -!N2O5/BIO=0.0 +!HNO4/BIOH=0.0 ! -!N2O5/ARO=0.0 +!HNO4/MTBE=0.0 ! -!N2O5/HCHO=0.0 +!HNO4/MVK=0.0 ! -!N2O5/ALD=0.0 +!HNO4/MCR=0.0 ! -!N2O5/KET=0.0 +!HNO4/MGLY=0.0 ! -!N2O5/CARBO=0.0 +!HNO4/GLY=0.0 ! -!N2O5/ONIT=0.0 +!HNO4/ORA1=0.0 ! -!N2O5/PAN=0.0 +!HNO4/ORA2=0.0 ! -!N2O5/OP1=0.0 +!HNO4/ACID=0.0 ! -!N2O5/OP2=0.0 +!HNO4/UR28=0.0 ! -!N2O5/ORA1=0.0 +!HNO4/UR21=0.0 ! -!N2O5/ORA2=0.0 +!HNO4/URG2=0.0 ! -!N2O5/MO2=0.0 +!HNO4/UR26=0.0 ! -!N2O5/ALKAP=0.0 +!HNO4/RPG2=0.0 ! -!N2O5/ALKEP=0.0 +!HNO4/RP18=0.0 ! -!N2O5/BIOP=0.0 +!HNO4/RPG3=0.0 ! -!N2O5/PHO=0.0 +!HNO4/URG4=0.0 ! -!N2O5/ADD=0.0 +!HNO4/UR8=0.0 ! -!N2O5/AROP=0.0 +!HNO4/UR17=0.0 ! -!N2O5/CARBOP=0.0 +!HNO4/UR7=0.0 ! -!N2O5/OLN=0.0 +!HNO4/RPR3=0.0 ! -!N2O5/XO2=0.0 +!HNO4/URG6=0.0 ! -!N2O5/WC_O3=0.0 +!HNO4/UR22=0.0 ! -!N2O5/WC_H2O2=0.0 +!HNO4/URG7=0.0 ! -!N2O5/WC_NO=0.0 +!HNO4/RPR4=0.0 ! -!N2O5/WC_NO2=0.0 +!HNO4/RPR7=0.0 ! -!N2O5/WC_NO3=0.0 +!HNO4/RPG7=0.0 ! -!N2O5/WC_N2O5=+KTC26 - PJAC(:,6,47)=+TPK%KTC26(:) +!HNO4/URG8=0.0 ! -!N2O5/WC_HONO=0.0 +!HNO4/UR19=0.0 ! -!N2O5/WC_HNO3=0.0 +!HNO4/URG9=0.0 ! -!N2O5/WC_HNO4=0.0 +!HNO4/AP7=0.0 ! -!N2O5/WC_NH3=0.0 +!HNO4/URG10=0.0 ! -!N2O5/WC_OH=0.0 +!HNO4/RPR1=0.0 ! -!N2O5/WC_HO2=0.0 +!HNO4/RPR5=0.0 ! -!N2O5/WC_CO2=0.0 +!HNO4/RPR8=0.0 ! -!N2O5/WC_SO2=0.0 +!HNO4/RP10=0.0 ! -!N2O5/WC_SULF=0.0 +!HNO4/RP11=0.0 ! -!N2O5/WC_HCHO=0.0 +!HNO4/RP16=0.0 ! -!N2O5/WC_ORA1=0.0 +!HNO4/RPRL=0.0 ! -!N2O5/WC_ORA2=0.0 +!HNO4/APAN=0.0 ! -!N2O5/WC_MO2=0.0 +!HNO4/PAN1=0.0 ! -!N2O5/WC_OP1=0.0 +!HNO4/PAN2=0.0 ! -!N2O5/WC_ASO3=0.0 +!HNO4/PAN3=0.0 ! -!N2O5/WC_ASO4=0.0 +!HNO4/PAN4=0.0 ! -!N2O5/WC_ASO5=0.0 +!HNO4/PAN6=0.0 ! -!N2O5/WC_AHSO5=0.0 +!HNO4/PAN7=0.0 ! -!N2O5/WC_AHMS=0.0 +!HNO4/PAN8=0.0 ! -!N2O5/WR_O3=0.0 +!HNO4/PN10=0.0 ! -!N2O5/WR_H2O2=0.0 +!HNO4/RO2T=0.0 ! -!N2O5/WR_NO=0.0 +!HNO4/RO21=0.0 ! -!N2O5/WR_NO2=0.0 +!HNO4/RO25=0.0 ! -!N2O5/WR_NO3=0.0 +!N2O5/NO=0.0 ! -!N2O5/WR_N2O5=+KTR26 - PJAC(:,6,72)=+TPK%KTR26(:) +!N2O5/NO2=+K009*<NO3> + PJAC(:,7,2)=+TPK%K009(:)*PCONC(:,8) ! -!N2O5/WR_HONO=0.0 +!N2O5/O3=0.0 ! -!N2O5/WR_HNO3=0.0 +!N2O5/HONO=0.0 ! -!N2O5/WR_HNO4=0.0 +!N2O5/HNO3=0.0 ! -!N2O5/WR_NH3=0.0 +!N2O5/HNO4=0.0 ! -!N2O5/WR_OH=0.0 +!N2O5/N2O5=-K010-K011*<H2O> + PJAC(:,7,7)=-TPK%K010(:)-TPK%K011(:)*TPK%H2O(:) ! -!N2O5/WR_HO2=0.0 +!N2O5/NO3=+K009*<NO2> + PJAC(:,7,8)=+TPK%K009(:)*PCONC(:,2) ! -!N2O5/WR_CO2=0.0 +!N2O5/NH3=0.0 ! -!N2O5/WR_SO2=0.0 +!N2O5/HO2=0.0 ! -!N2O5/WR_SULF=0.0 +!N2O5/CO=0.0 ! -!N2O5/WR_HCHO=0.0 +!N2O5/H2O2=0.0 ! -!N2O5/WR_ORA1=0.0 +!N2O5/SO2=0.0 ! -!N2O5/WR_ORA2=0.0 +!N2O5/H2SO4=0.0 ! -!N2O5/WR_MO2=0.0 +!N2O5/OH=0.0 ! -!N2O5/WR_OP1=0.0 +!N2O5/ETHE=0.0 ! -!N2O5/WR_ASO3=0.0 +!N2O5/OLEL=0.0 ! -!N2O5/WR_ASO4=0.0 +!N2O5/OLEH=0.0 ! -!N2O5/WR_ASO5=0.0 +!N2O5/ALKL=0.0 ! -!N2O5/WR_AHSO5=0.0 +!N2O5/ALKM=0.0 ! -!N2O5/WR_AHMS=0.0 +!N2O5/ALKH=0.0 ! -!HONO/O3=0.0 +!N2O5/AROH=0.0 ! -!HONO/H2O2=0.0 +!N2O5/AROL=0.0 ! -!HONO/NO=+K032*<OH> - PJAC(:,7,3)=+TPK%K032(:)*PCONC(:,14) +!N2O5/AROO=0.0 ! -!HONO/NO2=+K085*<ADD> - PJAC(:,7,4)=+TPK%K085(:)*PCONC(:,37) +!N2O5/ARAL=0.0 ! -!HONO/NO3=0.0 +!N2O5/ARAC=0.0 ! -!HONO/N2O5=0.0 +!N2O5/PAH=0.0 ! -!HONO/HONO=-K004-K039*<OH>-KTC7-KTR7 - PJAC(:,7,7)=-TPK%K004(:)-TPK%K039(:)*PCONC(:,14)-TPK%KTC7(:)-TPK%KTR7(:) +!N2O5/HCHO=0.0 ! -!HONO/HNO3=0.0 +!N2O5/ALD2=0.0 ! -!HONO/HNO4=0.0 +!N2O5/KETL=0.0 ! -!HONO/NH3=0.0 +!N2O5/KETH=0.0 ! -!HONO/SO2=0.0 +!N2O5/MEOH=0.0 ! -!HONO/SULF=0.0 +!N2O5/ETOH=0.0 ! -!HONO/CO=0.0 +!N2O5/ALCH=0.0 ! -!HONO/OH=+K032*<NO>-K039*<HONO> - PJAC(:,7,14)=+TPK%K032(:)*PCONC(:,3)-TPK%K039(:)*PCONC(:,7) +!N2O5/ISOP=0.0 ! -!HONO/HO2=0.0 +!N2O5/BIOL=0.0 ! -!HONO/CH4=0.0 +!N2O5/BIOH=0.0 ! -!HONO/ETH=0.0 +!N2O5/MTBE=0.0 ! -!HONO/ALKA=0.0 +!N2O5/MVK=0.0 ! -!HONO/ALKE=0.0 +!N2O5/MCR=0.0 ! -!HONO/BIO=0.0 +!N2O5/MGLY=0.0 ! -!HONO/ARO=0.0 +!N2O5/GLY=0.0 ! -!HONO/HCHO=0.0 +!N2O5/ORA1=0.0 ! -!HONO/ALD=0.0 +!N2O5/ORA2=0.0 ! -!HONO/KET=0.0 +!N2O5/ACID=0.0 ! -!HONO/CARBO=0.0 +!N2O5/UR28=0.0 ! -!HONO/ONIT=0.0 +!N2O5/UR21=0.0 ! -!HONO/PAN=0.0 +!N2O5/URG2=0.0 ! -!HONO/OP1=0.0 +!N2O5/UR26=0.0 ! -!HONO/OP2=0.0 +!N2O5/RPG2=0.0 ! -!HONO/ORA1=0.0 +!N2O5/RP18=0.0 ! -!HONO/ORA2=0.0 +!N2O5/RPG3=0.0 ! -!HONO/MO2=0.0 +!N2O5/URG4=0.0 ! -!HONO/ALKAP=0.0 +!N2O5/UR8=0.0 ! -!HONO/ALKEP=0.0 +!N2O5/UR17=0.0 ! -!HONO/BIOP=0.0 +!N2O5/UR7=0.0 ! -!HONO/PHO=0.0 +!N2O5/RPR3=0.0 ! -!HONO/ADD=+K085*<NO2> - PJAC(:,7,37)=+TPK%K085(:)*PCONC(:,4) +!N2O5/URG6=0.0 ! -!HONO/AROP=0.0 +!N2O5/UR22=0.0 ! -!HONO/CARBOP=0.0 +!N2O5/URG7=0.0 ! -!HONO/OLN=0.0 +!N2O5/RPR4=0.0 ! -!HONO/XO2=0.0 +!N2O5/RPR7=0.0 ! -!HONO/WC_O3=0.0 +!N2O5/RPG7=0.0 ! -!HONO/WC_H2O2=0.0 +!N2O5/URG8=0.0 ! -!HONO/WC_NO=0.0 +!N2O5/UR19=0.0 ! -!HONO/WC_NO2=0.0 +!N2O5/URG9=0.0 ! -!HONO/WC_NO3=0.0 +!N2O5/AP7=0.0 ! -!HONO/WC_N2O5=0.0 +!N2O5/URG10=0.0 ! -!HONO/WC_HONO=+KTC27 - PJAC(:,7,48)=+TPK%KTC27(:) +!N2O5/RPR1=0.0 ! -!HONO/WC_HNO3=0.0 +!N2O5/RPR5=0.0 ! -!HONO/WC_HNO4=0.0 +!N2O5/RPR8=0.0 ! -!HONO/WC_NH3=0.0 +!N2O5/RP10=0.0 ! -!HONO/WC_OH=0.0 +!N2O5/RP11=0.0 ! -!HONO/WC_HO2=0.0 +!N2O5/RP16=0.0 ! -!HONO/WC_CO2=0.0 +!N2O5/RPRL=0.0 ! -!HONO/WC_SO2=0.0 +!N2O5/APAN=0.0 ! -!HONO/WC_SULF=0.0 +!N2O5/PAN1=0.0 ! -!HONO/WC_HCHO=0.0 +!N2O5/PAN2=0.0 ! -!HONO/WC_ORA1=0.0 +!N2O5/PAN3=0.0 ! -!HONO/WC_ORA2=0.0 +!N2O5/PAN4=0.0 ! -!HONO/WC_MO2=0.0 +!N2O5/PAN6=0.0 ! -!HONO/WC_OP1=0.0 +!N2O5/PAN7=0.0 ! -!HONO/WC_ASO3=0.0 +!N2O5/PAN8=0.0 ! -!HONO/WC_ASO4=0.0 +!N2O5/PN10=0.0 ! -!HONO/WC_ASO5=0.0 +!N2O5/RO2T=0.0 ! -!HONO/WC_AHSO5=0.0 +!N2O5/RO21=0.0 ! -!HONO/WC_AHMS=0.0 +!N2O5/RO25=0.0 ! -!HONO/WR_O3=0.0 +!NO3/NO=-K007*<NO3> + PJAC(:,8,1)=-TPK%K007(:)*PCONC(:,8) ! -!HONO/WR_H2O2=0.0 +!NO3/NO2=+K004*<O>+K006*<O3>-K009*<NO3>-K012*<NO3> + PJAC(:,8,2)=+TPK%K004(:)*TPK%O(:)+TPK%K006(:)*PCONC(:,3)-TPK%K009(:)*PCONC(:,8& +&)-TPK%K012(:)*PCONC(:,8) ! -!HONO/WR_NO=0.0 +!NO3/O3=+K006*<NO2> + PJAC(:,8,3)=+TPK%K006(:)*PCONC(:,2) ! -!HONO/WR_NO2=0.0 +!NO3/HONO=0.0 ! -!HONO/WR_NO3=0.0 +!NO3/HNO3=+K023*<OH> + PJAC(:,8,5)=+TPK%K023(:)*PCONC(:,15) +! +!NO3/HNO4=0.0 +! +!NO3/N2O5=+K010 + PJAC(:,8,7)=+TPK%K010(:) +! +!NO3/NO3=-K007*<NO>-K009*<NO2>-K012*<NO2>-K013-K014-K033*<HO2>-K040*<OH>-K041*< +!NO3>-K041*<NO3>-K041*<NO3>-K041*<NO3>-K047*<HCHO>-K050*<ETHE>-K055*<OLEL>-K061 +!*<ALD2>-K065*<ISOP>-K072*<AROO>-K075*<OLEH>-K081*<ARAL>-K085*<BIOL>-K089*<BIOH +!>-K275*<MCR>-K278*<MGLY>-K307*<RPR1>-K313*<RPR3>-K320*<RPR4>-K327*<RPR8>-K338* +!<RP16> + PJAC(:,8,8)=-TPK%K007(:)*PCONC(:,1)-TPK%K009(:)*PCONC(:,2)-TPK%K012(:)*PCONC(:& +&,2)-TPK%K013(:)-TPK%K014(:)-TPK%K033(:)*PCONC(:,10)-TPK%K040(:)*PCONC(:,15)-TP& +&K%K041(:)*PCONC(:,8)-TPK%K041(:)*PCONC(:,8)-TPK%K041(:)*PCONC(:,8)-TPK%K041(:)& +&*PCONC(:,8)-TPK%K047(:)*PCONC(:,28)-TPK%K050(:)*PCONC(:,16)-TPK%K055(:)*PCONC(& +&:,17)-TPK%K061(:)*PCONC(:,29)-TPK%K065(:)*PCONC(:,35)-TPK%K072(:)*PCONC(:,24)-& +&TPK%K075(:)*PCONC(:,18)-TPK%K081(:)*PCONC(:,25)-TPK%K085(:)*PCONC(:,36)-TPK%K0& +&89(:)*PCONC(:,37)-TPK%K275(:)*PCONC(:,40)-TPK%K278(:)*PCONC(:,41)-TPK%K307(:)*& +&PCONC(:,69)-TPK%K313(:)*PCONC(:,57)-TPK%K320(:)*PCONC(:,61)-TPK%K327(:)*PCONC(& +&:,71)-TPK%K338(:)*PCONC(:,74) ! -!HONO/WR_N2O5=0.0 +!NO3/NH3=0.0 ! -!HONO/WR_HONO=+KTR27 - PJAC(:,7,73)=+TPK%KTR27(:) +!NO3/HO2=-K033*<NO3> + PJAC(:,8,10)=-TPK%K033(:)*PCONC(:,8) ! -!HONO/WR_HNO3=0.0 +!NO3/CO=0.0 ! -!HONO/WR_HNO4=0.0 +!NO3/H2O2=0.0 ! -!HONO/WR_NH3=0.0 +!NO3/SO2=0.0 ! -!HONO/WR_OH=0.0 +!NO3/H2SO4=0.0 ! -!HONO/WR_HO2=0.0 +!NO3/OH=+K023*<HNO3>-K040*<NO3> + PJAC(:,8,15)=+TPK%K023(:)*PCONC(:,5)-TPK%K040(:)*PCONC(:,8) ! -!HONO/WR_CO2=0.0 +!NO3/ETHE=-K050*<NO3> + PJAC(:,8,16)=-TPK%K050(:)*PCONC(:,8) ! -!HONO/WR_SO2=0.0 +!NO3/OLEL=-K055*<NO3> + PJAC(:,8,17)=-TPK%K055(:)*PCONC(:,8) ! -!HONO/WR_SULF=0.0 +!NO3/OLEH=-K075*<NO3> + PJAC(:,8,18)=-TPK%K075(:)*PCONC(:,8) ! -!HONO/WR_HCHO=0.0 +!NO3/ALKL=0.0 ! -!HONO/WR_ORA1=0.0 +!NO3/ALKM=0.0 ! -!HONO/WR_ORA2=0.0 +!NO3/ALKH=0.0 ! -!HONO/WR_MO2=0.0 +!NO3/AROH=0.0 ! -!HONO/WR_OP1=0.0 +!NO3/AROL=0.0 ! -!HONO/WR_ASO3=0.0 +!NO3/AROO=-K072*<NO3> + PJAC(:,8,24)=-TPK%K072(:)*PCONC(:,8) ! -!HONO/WR_ASO4=0.0 +!NO3/ARAL=-K081*<NO3> + PJAC(:,8,25)=-TPK%K081(:)*PCONC(:,8) ! -!HONO/WR_ASO5=0.0 +!NO3/ARAC=0.0 ! -!HONO/WR_AHSO5=0.0 +!NO3/PAH=0.0 ! -!HONO/WR_AHMS=0.0 +!NO3/HCHO=-K047*<NO3> + PJAC(:,8,28)=-TPK%K047(:)*PCONC(:,8) ! -!HNO3/O3=0.0 +!NO3/ALD2=-K061*<NO3> + PJAC(:,8,29)=-TPK%K061(:)*PCONC(:,8) ! -!HNO3/H2O2=0.0 +!NO3/KETL=0.0 ! -!HNO3/NO=0.0 +!NO3/KETH=0.0 ! -!HNO3/NO2=+K033*<OH> - PJAC(:,8,4)=+TPK%K033(:)*PCONC(:,14) +!NO3/MEOH=0.0 ! -!HNO3/NO3=+0.3*K038*<HO2>+K072*<HCHO>+K073*<ALD>+0.91567*K074*<CARBO>+K075*<ARO -!> - PJAC(:,8,5)=+0.3*TPK%K038(:)*PCONC(:,15)+TPK%K072(:)*PCONC(:,22)+TPK%K073(:)*P& -&CONC(:,23)+0.91567*TPK%K074(:)*PCONC(:,25)+TPK%K075(:)*PCONC(:,21) +!NO3/ETOH=0.0 ! -!HNO3/N2O5=0.0 +!NO3/ALCH=0.0 ! -!HNO3/HONO=0.0 +!NO3/ISOP=-K065*<NO3> + PJAC(:,8,35)=-TPK%K065(:)*PCONC(:,8) ! -!HNO3/HNO3=-K005-K040*<OH>-KTC8-KTR8 - PJAC(:,8,8)=-TPK%K005(:)-TPK%K040(:)*PCONC(:,14)-TPK%KTC8(:)-TPK%KTR8(:) +!NO3/BIOL=-K085*<NO3> + PJAC(:,8,36)=-TPK%K085(:)*PCONC(:,8) ! -!HNO3/HNO4=0.0 +!NO3/BIOH=-K089*<NO3> + PJAC(:,8,37)=-TPK%K089(:)*PCONC(:,8) ! -!HNO3/NH3=0.0 +!NO3/MTBE=0.0 ! -!HNO3/SO2=0.0 +!NO3/MVK=0.0 ! -!HNO3/SULF=0.0 +!NO3/MCR=-K275*<NO3> + PJAC(:,8,40)=-TPK%K275(:)*PCONC(:,8) ! -!HNO3/CO=0.0 +!NO3/MGLY=-K278*<NO3> + PJAC(:,8,41)=-TPK%K278(:)*PCONC(:,8) ! -!HNO3/OH=+K033*<NO2>-K040*<HNO3> - PJAC(:,8,14)=+TPK%K033(:)*PCONC(:,4)-TPK%K040(:)*PCONC(:,8) +!NO3/GLY=0.0 ! -!HNO3/HO2=+0.3*K038*<NO3> - PJAC(:,8,15)=+0.3*TPK%K038(:)*PCONC(:,5) +!NO3/ORA1=0.0 ! -!HNO3/CH4=0.0 +!NO3/ORA2=0.0 ! -!HNO3/ETH=0.0 +!NO3/ACID=0.0 ! -!HNO3/ALKA=0.0 +!NO3/UR28=0.0 ! -!HNO3/ALKE=0.0 +!NO3/UR21=0.0 ! -!HNO3/BIO=0.0 +!NO3/URG2=0.0 ! -!HNO3/ARO=+K075*<NO3> - PJAC(:,8,21)=+TPK%K075(:)*PCONC(:,5) +!NO3/UR26=0.0 ! -!HNO3/HCHO=+K072*<NO3> - PJAC(:,8,22)=+TPK%K072(:)*PCONC(:,5) +!NO3/RPG2=0.0 ! -!HNO3/ALD=+K073*<NO3> - PJAC(:,8,23)=+TPK%K073(:)*PCONC(:,5) +!NO3/RP18=0.0 ! -!HNO3/KET=0.0 +!NO3/RPG3=0.0 ! -!HNO3/CARBO=+0.91567*K074*<NO3> - PJAC(:,8,25)=+0.91567*TPK%K074(:)*PCONC(:,5) +!NO3/URG4=0.0 ! -!HNO3/ONIT=0.0 +!NO3/UR8=0.0 ! -!HNO3/PAN=0.0 +!NO3/UR17=0.0 ! -!HNO3/OP1=0.0 +!NO3/UR7=0.0 ! -!HNO3/OP2=0.0 +!NO3/RPR3=-K313*<NO3> + PJAC(:,8,57)=-TPK%K313(:)*PCONC(:,8) ! -!HNO3/ORA1=0.0 +!NO3/URG6=0.0 ! -!HNO3/ORA2=0.0 +!NO3/UR22=0.0 ! -!HNO3/MO2=0.0 +!NO3/URG7=0.0 ! -!HNO3/ALKAP=0.0 +!NO3/RPR4=-K320*<NO3> + PJAC(:,8,61)=-TPK%K320(:)*PCONC(:,8) ! -!HNO3/ALKEP=0.0 +!NO3/RPR7=0.0 ! -!HNO3/BIOP=0.0 +!NO3/RPG7=0.0 ! -!HNO3/PHO=0.0 +!NO3/URG8=0.0 ! -!HNO3/ADD=0.0 +!NO3/UR19=0.0 ! -!HNO3/AROP=0.0 +!NO3/URG9=0.0 ! -!HNO3/CARBOP=0.0 +!NO3/AP7=0.0 ! -!HNO3/OLN=0.0 +!NO3/URG10=0.0 ! -!HNO3/XO2=0.0 +!NO3/RPR1=-K307*<NO3> + PJAC(:,8,69)=-TPK%K307(:)*PCONC(:,8) ! -!HNO3/WC_O3=0.0 +!NO3/RPR5=0.0 ! -!HNO3/WC_H2O2=0.0 +!NO3/RPR8=-K327*<NO3> + PJAC(:,8,71)=-TPK%K327(:)*PCONC(:,8) ! -!HNO3/WC_NO=0.0 +!NO3/RP10=0.0 ! -!HNO3/WC_NO2=0.0 +!NO3/RP11=0.0 ! -!HNO3/WC_NO3=0.0 +!NO3/RP16=-K338*<NO3> + PJAC(:,8,74)=-TPK%K338(:)*PCONC(:,8) ! -!HNO3/WC_N2O5=0.0 +!NO3/RPRL=0.0 ! -!HNO3/WC_HONO=0.0 +!NO3/APAN=0.0 ! -!HNO3/WC_HNO3=+KTC28 - PJAC(:,8,49)=+TPK%KTC28(:) +!NO3/PAN1=0.0 ! -!HNO3/WC_HNO4=0.0 +!NO3/PAN2=0.0 ! -!HNO3/WC_NH3=0.0 +!NO3/PAN3=0.0 ! -!HNO3/WC_OH=0.0 +!NO3/PAN4=0.0 ! -!HNO3/WC_HO2=0.0 +!NO3/PAN6=0.0 ! -!HNO3/WC_CO2=0.0 +!NO3/PAN7=0.0 ! -!HNO3/WC_SO2=0.0 +!NO3/PAN8=0.0 ! -!HNO3/WC_SULF=0.0 +!NO3/PN10=0.0 ! -!HNO3/WC_HCHO=0.0 +!NO3/RO2T=0.0 ! -!HNO3/WC_ORA1=0.0 +!NO3/RO21=0.0 ! -!HNO3/WC_ORA2=0.0 +!NO3/RO25=0.0 ! -!HNO3/WC_MO2=0.0 +!NH3/NO=0.0 ! -!HNO3/WC_OP1=0.0 +!NH3/NO2=0.0 ! -!HNO3/WC_ASO3=0.0 +!NH3/O3=0.0 ! -!HNO3/WC_ASO4=0.0 +!NH3/HONO=0.0 ! -!HNO3/WC_ASO5=0.0 +!NH3/HNO3=0.0 ! -!HNO3/WC_AHSO5=0.0 +!NH3/HNO4=0.0 ! -!HNO3/WC_AHMS=0.0 +!NH3/N2O5=0.0 ! -!HNO3/WR_O3=0.0 +!NH3/NO3=0.0 ! -!HNO3/WR_H2O2=0.0 +!NH3/NH3=-K345*<OH> + PJAC(:,9,9)=-TPK%K345(:)*PCONC(:,15) ! -!HNO3/WR_NO=0.0 +!NH3/HO2=0.0 ! -!HNO3/WR_NO2=0.0 +!NH3/CO=0.0 ! -!HNO3/WR_NO3=0.0 +!NH3/H2O2=0.0 ! -!HNO3/WR_N2O5=0.0 +!NH3/SO2=0.0 ! -!HNO3/WR_HONO=0.0 +!NH3/H2SO4=0.0 ! -!HNO3/WR_HNO3=+KTR28 - PJAC(:,8,74)=+TPK%KTR28(:) +!NH3/OH=-K345*<NH3> + PJAC(:,9,15)=-TPK%K345(:)*PCONC(:,9) ! -!HNO3/WR_HNO4=0.0 +!NH3/ETHE=0.0 ! -!HNO3/WR_NH3=0.0 +!NH3/OLEL=0.0 ! -!HNO3/WR_OH=0.0 +!NH3/OLEH=0.0 ! -!HNO3/WR_HO2=0.0 +!NH3/ALKL=0.0 ! -!HNO3/WR_CO2=0.0 +!NH3/ALKM=0.0 ! -!HNO3/WR_SO2=0.0 +!NH3/ALKH=0.0 ! -!HNO3/WR_SULF=0.0 +!NH3/AROH=0.0 ! -!HNO3/WR_HCHO=0.0 +!NH3/AROL=0.0 ! -!HNO3/WR_ORA1=0.0 +!NH3/AROO=0.0 ! -!HNO3/WR_ORA2=0.0 +!NH3/ARAL=0.0 ! -!HNO3/WR_MO2=0.0 +!NH3/ARAC=0.0 ! -!HNO3/WR_OP1=0.0 +!NH3/PAH=0.0 ! -!HNO3/WR_ASO3=0.0 +!NH3/HCHO=0.0 ! -!HNO3/WR_ASO4=0.0 +!NH3/ALD2=0.0 ! -!HNO3/WR_ASO5=0.0 +!NH3/KETL=0.0 ! -!HNO3/WR_AHSO5=0.0 +!NH3/KETH=0.0 ! -!HNO3/WR_AHMS=0.0 +!NH3/MEOH=0.0 ! -!HNO4/O3=0.0 +!NH3/ETOH=0.0 ! -!HNO4/H2O2=0.0 +!NH3/ALCH=0.0 ! -!HNO4/NO=0.0 +!NH3/ISOP=0.0 ! -!HNO4/NO2=+K036*<HO2> - PJAC(:,9,4)=+TPK%K036(:)*PCONC(:,15) +!NH3/BIOL=0.0 ! -!HNO4/NO3=0.0 +!NH3/BIOH=0.0 ! -!HNO4/N2O5=0.0 +!NH3/MTBE=0.0 ! -!HNO4/HONO=0.0 +!NH3/MVK=0.0 ! -!HNO4/HNO3=0.0 +!NH3/MCR=0.0 ! -!HNO4/HNO4=-K006-K037-K041*<OH>-KTC9-KTR9 - PJAC(:,9,9)=-TPK%K006(:)-TPK%K037(:)-TPK%K041(:)*PCONC(:,14)-TPK%KTC9(:)-TPK%K& -&TR9(:) +!NH3/MGLY=0.0 ! -!HNO4/NH3=0.0 +!NH3/GLY=0.0 ! -!HNO4/SO2=0.0 +!NH3/ORA1=0.0 ! -!HNO4/SULF=0.0 +!NH3/ORA2=0.0 ! -!HNO4/CO=0.0 +!NH3/ACID=0.0 ! -!HNO4/OH=-K041*<HNO4> - PJAC(:,9,14)=-TPK%K041(:)*PCONC(:,9) +!NH3/UR28=0.0 ! -!HNO4/HO2=+K036*<NO2> - PJAC(:,9,15)=+TPK%K036(:)*PCONC(:,4) +!NH3/UR21=0.0 ! -!HNO4/CH4=0.0 +!NH3/URG2=0.0 ! -!HNO4/ETH=0.0 +!NH3/UR26=0.0 ! -!HNO4/ALKA=0.0 +!NH3/RPG2=0.0 ! -!HNO4/ALKE=0.0 +!NH3/RP18=0.0 ! -!HNO4/BIO=0.0 +!NH3/RPG3=0.0 ! -!HNO4/ARO=0.0 +!NH3/URG4=0.0 ! -!HNO4/HCHO=0.0 +!NH3/UR8=0.0 ! -!HNO4/ALD=0.0 +!NH3/UR17=0.0 ! -!HNO4/KET=0.0 +!NH3/UR7=0.0 ! -!HNO4/CARBO=0.0 +!NH3/RPR3=0.0 ! -!HNO4/ONIT=0.0 +!NH3/URG6=0.0 ! -!HNO4/PAN=0.0 +!NH3/UR22=0.0 ! -!HNO4/OP1=0.0 +!NH3/URG7=0.0 ! -!HNO4/OP2=0.0 +!NH3/RPR4=0.0 ! -!HNO4/ORA1=0.0 +!NH3/RPR7=0.0 ! -!HNO4/ORA2=0.0 +!NH3/RPG7=0.0 ! -!HNO4/MO2=0.0 +!NH3/URG8=0.0 ! -!HNO4/ALKAP=0.0 +!NH3/UR19=0.0 ! -!HNO4/ALKEP=0.0 +!NH3/URG9=0.0 ! -!HNO4/BIOP=0.0 +!NH3/AP7=0.0 ! -!HNO4/PHO=0.0 +!NH3/URG10=0.0 ! -!HNO4/ADD=0.0 +!NH3/RPR1=0.0 ! -!HNO4/AROP=0.0 +!NH3/RPR5=0.0 ! -!HNO4/CARBOP=0.0 +!NH3/RPR8=0.0 ! -!HNO4/OLN=0.0 +!NH3/RP10=0.0 ! -!HNO4/XO2=0.0 +!NH3/RP11=0.0 ! -!HNO4/WC_O3=0.0 +!NH3/RP16=0.0 ! -!HNO4/WC_H2O2=0.0 +!NH3/RPRL=0.0 ! -!HNO4/WC_NO=0.0 +!NH3/APAN=0.0 ! -!HNO4/WC_NO2=0.0 +!NH3/PAN1=0.0 ! -!HNO4/WC_NO3=0.0 +!NH3/PAN2=0.0 ! -!HNO4/WC_N2O5=0.0 +!NH3/PAN3=0.0 ! -!HNO4/WC_HONO=0.0 +!NH3/PAN4=0.0 ! -!HNO4/WC_HNO3=0.0 +!NH3/PAN6=0.0 ! -!HNO4/WC_HNO4=+KTC29 - PJAC(:,9,50)=+TPK%KTC29(:) +!NH3/PAN7=0.0 ! -!HNO4/WC_NH3=0.0 +!NH3/PAN8=0.0 ! -!HNO4/WC_OH=0.0 +!NH3/PN10=0.0 ! -!HNO4/WC_HO2=0.0 +!NH3/RO2T=0.0 ! -!HNO4/WC_CO2=0.0 +!NH3/RO21=0.0 ! -!HNO4/WC_SO2=0.0 +!NH3/RO25=0.0 ! -!HNO4/WC_SULF=0.0 +!HO2/NO=-K026*<HO2>+K110*<RO21>+K113*<RO22>+K119*<RO24>+TPK%CF4*K122*<RO25>+TPK +!%CF6*K150*<RO29>+K153*<RO210>+K171*<RO215>+TPK%CF22*K177*<RO217>+TPK%CF20*K180 +!*<RO218>+TPK%CF24*K189*<RO221>+TPK%CF42*K192*<RO222>+TPK%CF44*K195*<RO223>+TPK +!%CF26*K198*<RO224>+TPK%CF28*K207*<RO227>+TPK%CF32*K221*<RO231>+TPK%CF36*K227*< +!RO241>+K231*<RO233>+K234*<RO242>+K238*<RO234>+K241*<RO243>+K245*<RO235>+K248*< +!RO244>+K252*<RO236>+K255*<RO245>+K259*<RO237>+K262*<RO246>+K266*<RO238>+K269*< +!RO247>+K285*<RO249>+K291*<RO251>+K300*<RO254>+K315*<RO256> + PJAC(:,10,1)=-TPK%K026(:)*PCONC(:,10)+TPK%K110(:)*PCONC(:,86)+TPK%K113(:)*TPK%& +&RO22(:)+TPK%K119(:)*TPK%RO24(:)+TPK%CF4*TPK%K122(:)*PCONC(:,87)+TPK%CF6*TPK%K1& +&50(:)*TPK%RO29(:)+TPK%K153(:)*TPK%RO210(:)+TPK%K171(:)*TPK%RO215(:)+TPK%CF22*T& +&PK%K177(:)*TPK%RO217(:)+TPK%CF20*TPK%K180(:)*TPK%RO218(:)+TPK%CF24*TPK%K189(:)& +&*TPK%RO221(:)+TPK%CF42*TPK%K192(:)*TPK%RO222(:)+TPK%CF44*TPK%K195(:)*TPK%RO223& +&(:)+TPK%CF26*TPK%K198(:)*TPK%RO224(:)+TPK%CF28*TPK%K207(:)*TPK%RO227(:)+TPK%CF& +&32*TPK%K221(:)*TPK%RO231(:)+TPK%CF36*TPK%K227(:)*TPK%RO241(:)+TPK%K231(:)*TPK%& +&RO233(:)+TPK%K234(:)*TPK%RO242(:)+TPK%K238(:)*TPK%RO234(:)+TPK%K241(:)*TPK%RO2& +&43(:)+TPK%K245(:)*TPK%RO235(:)+TPK%K248(:)*TPK%RO244(:)+TPK%K252(:)*TPK%RO236(& +&:)+TPK%K255(:)*TPK%RO245(:)+TPK%K259(:)*TPK%RO237(:)+TPK%K262(:)*TPK%RO246(:)+& +&TPK%K266(:)*TPK%RO238(:)+TPK%K269(:)*TPK%RO247(:)+TPK%K285(:)*TPK%RO249(:)+TPK& +&%K291(:)*TPK%RO251(:)+TPK%K300(:)*TPK%RO254(:)+TPK%K315(:)*TPK%RO256(:) ! -!HNO4/WC_HCHO=0.0 +!HO2/NO2=-K027*<HO2> + PJAC(:,10,2)=-TPK%K027(:)*PCONC(:,10) ! -!HNO4/WC_ORA1=0.0 +!HO2/O3=+K025*<OH>-K030*<HO2>+0.06*K051*<ETHE>+0.28*K056*<OLEL>+0.366*K066*<ISO +!P>+0.28*K076*<OLEH>+0.445*K086*<BIOL>+0.28*K281*<MVK>+0.41*K282*<MCR> + PJAC(:,10,3)=+TPK%K025(:)*PCONC(:,15)-TPK%K030(:)*PCONC(:,10)+0.06*TPK%K051(:)& +&*PCONC(:,16)+0.28*TPK%K056(:)*PCONC(:,17)+0.366*TPK%K066(:)*PCONC(:,35)+0.28*T& +&PK%K076(:)*PCONC(:,18)+0.445*TPK%K086(:)*PCONC(:,36)+0.28*TPK%K281(:)*PCONC(:,& +&39)+0.41*TPK%K282(:)*PCONC(:,40) ! -!HNO4/WC_ORA2=0.0 +!HO2/HONO=+0.1*K020 + PJAC(:,10,4)=+0.1*TPK%K020(:) ! -!HNO4/WC_MO2=0.0 +!HO2/HNO3=0.0 ! -!HNO4/WC_OP1=0.0 +!HO2/HNO4=+K028 + PJAC(:,10,6)=+TPK%K028(:) ! -!HNO4/WC_ASO3=0.0 +!HO2/N2O5=0.0 ! -!HNO4/WC_ASO4=0.0 +!HO2/NO3=-K033*<HO2>+K040*<OH>+K047*<HCHO> + PJAC(:,10,8)=-TPK%K033(:)*PCONC(:,10)+TPK%K040(:)*PCONC(:,15)+TPK%K047(:)*PCON& +&C(:,28) ! -!HNO4/WC_ASO5=0.0 +!HO2/NH3=0.0 ! -!HNO4/WC_AHSO5=0.0 +!HO2/HO2=-K026*<NO>-K027*<NO2>-K030*<O3>-K031*<HO2>-K031*<HO2>-K031*<HO2>-K031* +!<HO2>-K032*<H2O>*<HO2>-K032*<H2O>*<HO2>-K032*<H2O>*<HO2>-K032*<H2O>*<HO2>-K033 +!*<NO3>-K042*<OH>+K094*<RO2T>-K094*<RO2T>+K112*<RO21>-K112*<RO21>+K115*<RO22>-K +!115*<RO22>+K118*<RO23>-K118*<RO23>+K121*<RO24>-K121*<RO24>+K124*<RO25>-K124*<R +!O25>-K142*<RO26>-K146*<RO27>-K148*<RO28>+K152*<RO29>-K152*<RO29>+K155*<RO210>- +!K155*<RO210>-K158*<RO211>-K161*<RO212>-K164*<RO213>-K166*<RO239>-K170*<RO214>+ +!K173*<RO215>-K173*<RO215>-K176*<RO216>+K179*<RO217>-K179*<RO217>+K182*<RO218>- +!K182*<RO218>-K185*<RO219>-K188*<RO220>+K191*<RO221>-K191*<RO221>+K194*<RO222>- +!K194*<RO222>+K197*<RO223>-K197*<RO223>+K200*<RO224>-K200*<RO224>-K203*<RO225>- +!K206*<RO226>+K209*<RO227>-K209*<RO227>-K212*<RO228>-K215*<RO229>-K218*<RO240>- +!K220*<RO230>+K223*<RO231>-K223*<RO231>-K226*<RO232>+K229*<RO241>-K229*<RO241>+ +!K233*<RO233>-K233*<RO233>+K236*<RO242>-K236*<RO242>+K240*<RO234>-K240*<RO234>+ +!K243*<RO243>-K243*<RO243>+K247*<RO235>-K247*<RO235>+K250*<RO244>-K250*<RO244>+ +!K254*<RO236>-K254*<RO236>+K257*<RO245>-K257*<RO245>+K261*<RO237>-K261*<RO237>+ +!K264*<RO246>-K264*<RO246>+K268*<RO238>-K268*<RO238>+K271*<RO247>-K271*<RO247>- +!K279*<RO248>+K287*<RO249>-K287*<RO249>-K289*<RO250>+K292*<RO251>-K292*<RO251>- +!K295*<RO252>-K298*<RO253>-K301*<RO254>-K310*<RO255>-K318*<RO256>-K332*<RO257>- +!K341*<RO258> + PJAC(:,10,10)=-TPK%K026(:)*PCONC(:,1)-TPK%K027(:)*PCONC(:,2)-TPK%K030(:)*PCONC& +&(:,3)-TPK%K031(:)*PCONC(:,10)-TPK%K031(:)*PCONC(:,10)-TPK%K031(:)*PCONC(:,10)-& +&TPK%K031(:)*PCONC(:,10)-TPK%K032(:)*TPK%H2O(:)*PCONC(:,10)-TPK%K032(:)*TPK%H2O& +&(:)*PCONC(:,10)-TPK%K032(:)*TPK%H2O(:)*PCONC(:,10)-TPK%K032(:)*TPK%H2O(:)*PCON& +&C(:,10)-TPK%K033(:)*PCONC(:,8)-TPK%K042(:)*PCONC(:,15)+TPK%K094(:)*PCONC(:,85)& +&-TPK%K094(:)*PCONC(:,85)+TPK%K112(:)*PCONC(:,86)-TPK%K112(:)*PCONC(:,86)+TPK%K& +&115(:)*TPK%RO22(:)-TPK%K115(:)*TPK%RO22(:)+TPK%K118(:)*TPK%RO23(:)-TPK%K118(:)& +&*TPK%RO23(:)+TPK%K121(:)*TPK%RO24(:)-TPK%K121(:)*TPK%RO24(:)+TPK%K124(:)*PCONC& +&(:,87)-TPK%K124(:)*PCONC(:,87)-TPK%K142(:)*TPK%RO26(:)-TPK%K146(:)*TPK%RO27(:)& +&-TPK%K148(:)*TPK%RO28(:)+TPK%K152(:)*TPK%RO29(:)-TPK%K152(:)*TPK%RO29(:)+TPK%K& +&155(:)*TPK%RO210(:)-TPK%K155(:)*TPK%RO210(:)-TPK%K158(:)*TPK%RO211(:)-TPK%K161& +&(:)*TPK%RO212(:)-TPK%K164(:)*TPK%RO213(:)-TPK%K166(:)*TPK%RO239(:)-TPK%K170(:)& +&*TPK%RO214(:)+TPK%K173(:)*TPK%RO215(:)-TPK%K173(:)*TPK%RO215(:)-TPK%K176(:)*TP& +&K%RO216(:)+TPK%K179(:)*TPK%RO217(:)-TPK%K179(:)*TPK%RO217(:)+TPK%K182(:)*TPK%R& +&O218(:)-TPK%K182(:)*TPK%RO218(:)-TPK%K185(:)*TPK%RO219(:)-TPK%K188(:)*TPK%RO22& +&0(:)+TPK%K191(:)*TPK%RO221(:)-TPK%K191(:)*TPK%RO221(:)+TPK%K194(:)*TPK%RO222(:& +&)-TPK%K194(:)*TPK%RO222(:)+TPK%K197(:)*TPK%RO223(:)-TPK%K197(:)*TPK%RO223(:)+T& +&PK%K200(:)*TPK%RO224(:)-TPK%K200(:)*TPK%RO224(:)-TPK%K203(:)*TPK%RO225(:)-TPK%& +&K206(:)*TPK%RO226(:)+TPK%K209(:)*TPK%RO227(:)-TPK%K209(:)*TPK%RO227(:)-TPK%K21& +&2(:)*TPK%RO228(:)-TPK%K215(:)*TPK%RO229(:)-TPK%K218(:)*TPK%RO240(:)-TPK%K220(:& +&)*TPK%RO230(:)+TPK%K223(:)*TPK%RO231(:)-TPK%K223(:)*TPK%RO231(:)-TPK%K226(:)*T& +&PK%RO232(:)+TPK%K229(:)*TPK%RO241(:)-TPK%K229(:)*TPK%RO241(:)+TPK%K233(:)*TPK%& +&RO233(:)-TPK%K233(:)*TPK%RO233(:)+TPK%K236(:)*TPK%RO242(:)-TPK%K236(:)*TPK%RO2& +&42(:)+TPK%K240(:)*TPK%RO234(:)-TPK%K240(:)*TPK%RO234(:)+TPK%K243(:)*TPK%RO243(& +&:)-TPK%K243(:)*TPK%RO243(:)+TPK%K247(:)*TPK%RO235(:)-TPK%K247(:)*TPK%RO235(:)+& +&TPK%K250(:)*TPK%RO244(:)-TPK%K250(:)*TPK%RO244(:)+TPK%K254(:)*TPK%RO236(:)-TPK& +&%K254(:)*TPK%RO236(:)+TPK%K257(:)*TPK%RO245(:)-TPK%K257(:)*TPK%RO245(:)+TPK%K2& +&61(:)*TPK%RO237(:)-TPK%K261(:)*TPK%RO237(:)+TPK%K264(:)*TPK%RO246(:)-TPK%K264(& +&:)*TPK%RO246(:)+TPK%K268(:)*TPK%RO238(:)-TPK%K268(:)*TPK%RO238(:)+TPK%K271(:)*& +&TPK%RO247(:)-TPK%K271(:)*TPK%RO247(:)-TPK%K279(:)*TPK%RO248(:)+TPK%K287(:)*TPK& +&%RO249(:)-TPK%K287(:)*TPK%RO249(:)-TPK%K289(:)*TPK%RO250(:)+TPK%K292(:)*TPK%RO& +&251(:)-TPK%K292(:)*TPK%RO251(:)-TPK%K295(:)*TPK%RO252(:)-TPK%K298(:)*TPK%RO253& +&(:)-TPK%K301(:)*TPK%RO254(:)-TPK%K310(:)*TPK%RO255(:)-TPK%K318(:)*TPK%RO256(:)& +&-TPK%K332(:)*TPK%RO257(:)-TPK%K341(:)*TPK%RO258(:) +! +!HO2/CO=+K024*<OH> + PJAC(:,10,11)=+TPK%K024(:)*PCONC(:,15) +! +!HO2/H2O2=+K037*<OH> + PJAC(:,10,12)=+TPK%K037(:)*PCONC(:,15) +! +!HO2/SO2=+K035*<OH> + PJAC(:,10,13)=+TPK%K035(:)*PCONC(:,15) +! +!HO2/H2SO4=0.0 +! +!HO2/OH=+K024*<CO>+K025*<O3>+K035*<SO2>+K037*<H2O2>+K040*<NO3>-K042*<HO2>+K046* +!<HCHO>+K048*<MEOH>+TPK%CF1*K053*<ETOH>+0.16*K073*<AROO>+0.16*K079*<AROL>+0.16* +!K080*<AROH>+TPK%CF48*K082*<ARAL>+0.16*K083*<ARAC>+0.16*K092*<PAH>+K325*<RP10>+ +!K347*<ORA1> + PJAC(:,10,15)=+TPK%K024(:)*PCONC(:,11)+TPK%K025(:)*PCONC(:,3)+TPK%K035(:)*PCON& +&C(:,13)+TPK%K037(:)*PCONC(:,12)+TPK%K040(:)*PCONC(:,8)-TPK%K042(:)*PCONC(:,10)& +&+TPK%K046(:)*PCONC(:,28)+TPK%K048(:)*PCONC(:,32)+TPK%CF1*TPK%K053(:)*PCONC(:,3& +&3)+0.16*TPK%K073(:)*PCONC(:,24)+0.16*TPK%K079(:)*PCONC(:,23)+0.16*TPK%K080(:)*& +&PCONC(:,22)+TPK%CF48*TPK%K082(:)*PCONC(:,25)+0.16*TPK%K083(:)*PCONC(:,26)+0.16& +&*TPK%K092(:)*PCONC(:,27)+TPK%K325(:)*PCONC(:,72)+TPK%K347(:)*PCONC(:,43) +! +!HO2/ETHE=+0.06*K051*<O3>+K052*<O> + PJAC(:,10,16)=+0.06*TPK%K051(:)*PCONC(:,3)+TPK%K052(:)*TPK%O(:) +! +!HO2/OLEL=+0.28*K056*<O3> + PJAC(:,10,17)=+0.28*TPK%K056(:)*PCONC(:,3) +! +!HO2/OLEH=+0.28*K076*<O3> + PJAC(:,10,18)=+0.28*TPK%K076(:)*PCONC(:,3) +! +!HO2/ALKL=0.0 +! +!HO2/ALKM=0.0 +! +!HO2/ALKH=0.0 +! +!HO2/AROH=+0.16*K080*<OH> + PJAC(:,10,22)=+0.16*TPK%K080(:)*PCONC(:,15) +! +!HO2/AROL=+0.16*K079*<OH> + PJAC(:,10,23)=+0.16*TPK%K079(:)*PCONC(:,15) +! +!HO2/AROO=+0.16*K073*<OH> + PJAC(:,10,24)=+0.16*TPK%K073(:)*PCONC(:,15) +! +!HO2/ARAL=+TPK%CF48*K082*<OH> + PJAC(:,10,25)=+TPK%CF48*TPK%K082(:)*PCONC(:,15) +! +!HO2/ARAC=+0.16*K083*<OH> + PJAC(:,10,26)=+0.16*TPK%K083(:)*PCONC(:,15) +! +!HO2/PAH=+0.16*K092*<OH> + PJAC(:,10,27)=+0.16*TPK%K092(:)*PCONC(:,15) +! +!HO2/HCHO=+2.0*K044+K046*<OH>+K047*<NO3> + PJAC(:,10,28)=+2.0*TPK%K044(:)+TPK%K046(:)*PCONC(:,15)+TPK%K047(:)*PCONC(:,8) +! +!HO2/ALD2=+K059 + PJAC(:,10,29)=+TPK%K059(:) ! -!HNO4/WC_AHMS=0.0 +!HO2/KETL=0.0 ! -!HNO4/WR_O3=0.0 +!HO2/KETH=0.0 ! -!HNO4/WR_H2O2=0.0 +!HO2/MEOH=+K048*<OH> + PJAC(:,10,32)=+TPK%K048(:)*PCONC(:,15) ! -!HNO4/WR_NO=0.0 +!HO2/ETOH=+TPK%CF1*K053*<OH> + PJAC(:,10,33)=+TPK%CF1*TPK%K053(:)*PCONC(:,15) ! -!HNO4/WR_NO2=0.0 +!HO2/ALCH=0.0 ! -!HNO4/WR_NO3=0.0 +!HO2/ISOP=+0.366*K066*<O3> + PJAC(:,10,35)=+0.366*TPK%K066(:)*PCONC(:,3) ! -!HNO4/WR_N2O5=0.0 +!HO2/BIOL=+0.445*K086*<O3> + PJAC(:,10,36)=+0.445*TPK%K086(:)*PCONC(:,3) ! -!HNO4/WR_HONO=0.0 +!HO2/BIOH=0.0 ! -!HNO4/WR_HNO3=0.0 +!HO2/MTBE=0.0 ! -!HNO4/WR_HNO4=+KTR29 - PJAC(:,9,75)=+TPK%KTR29(:) +!HO2/MVK=+0.28*K281*<O3> + PJAC(:,10,39)=+0.28*TPK%K281(:)*PCONC(:,3) ! -!HNO4/WR_NH3=0.0 +!HO2/MCR=+0.41*K282*<O3>+0.15*K284*<O> + PJAC(:,10,40)=+0.41*TPK%K282(:)*PCONC(:,3)+0.15*TPK%K284(:)*TPK%O(:) ! -!HNO4/WR_OH=0.0 +!HO2/MGLY=+K276 + PJAC(:,10,41)=+TPK%K276(:) ! -!HNO4/WR_HO2=0.0 +!HO2/GLY=0.0 ! -!HNO4/WR_CO2=0.0 +!HO2/ORA1=+K347*<OH> + PJAC(:,10,43)=+TPK%K347(:)*PCONC(:,15) ! -!HNO4/WR_SO2=0.0 +!HO2/ORA2=0.0 ! -!HNO4/WR_SULF=0.0 +!HO2/ACID=0.0 ! -!HNO4/WR_HCHO=0.0 +!HO2/UR28=0.0 ! -!HNO4/WR_ORA1=0.0 +!HO2/UR21=0.0 ! -!HNO4/WR_ORA2=0.0 +!HO2/URG2=0.0 ! -!HNO4/WR_MO2=0.0 +!HO2/UR26=0.0 ! -!HNO4/WR_OP1=0.0 +!HO2/RPG2=0.0 ! -!HNO4/WR_ASO3=0.0 +!HO2/RP18=0.0 ! -!HNO4/WR_ASO4=0.0 +!HO2/RPG3=0.0 ! -!HNO4/WR_ASO5=0.0 +!HO2/URG4=0.0 ! -!HNO4/WR_AHSO5=0.0 +!HO2/UR8=0.0 ! -!HNO4/WR_AHMS=0.0 +!HO2/UR17=0.0 ! -!NH3/O3=0.0 +!HO2/UR7=0.0 ! -!NH3/H2O2=0.0 +!HO2/RPR3=+2.*K314 + PJAC(:,10,57)=+2.*TPK%K314(:) ! -!NH3/NO=0.0 +!HO2/URG6=0.0 ! -!NH3/NO2=0.0 +!HO2/UR22=0.0 ! -!NH3/NO3=0.0 +!HO2/URG7=0.0 ! -!NH3/N2O5=0.0 +!HO2/RPR4=0.0 ! -!NH3/HONO=0.0 +!HO2/RPR7=0.0 ! -!NH3/HNO3=0.0 +!HO2/RPG7=0.0 ! -!NH3/HNO4=0.0 +!HO2/URG8=0.0 ! -!NH3/NH3=-K050*<OH>-KTC10-KTR10 - PJAC(:,10,10)=-TPK%K050(:)*PCONC(:,14)-TPK%KTC10(:)-TPK%KTR10(:) +!HO2/UR19=0.0 ! -!NH3/SO2=0.0 +!HO2/URG9=0.0 ! -!NH3/SULF=0.0 +!HO2/AP7=0.0 ! -!NH3/CO=0.0 +!HO2/URG10=0.0 ! -!NH3/OH=-K050*<NH3> - PJAC(:,10,14)=-TPK%K050(:)*PCONC(:,10) +!HO2/RPR1=+K308 + PJAC(:,10,69)=+TPK%K308(:) ! -!NH3/HO2=0.0 +!HO2/RPR5=0.0 ! -!NH3/CH4=0.0 +!HO2/RPR8=+K329+K330 + PJAC(:,10,71)=+TPK%K329(:)+TPK%K330(:) ! -!NH3/ETH=0.0 +!HO2/RP10=+K325*<OH> + PJAC(:,10,72)=+TPK%K325(:)*PCONC(:,15) ! -!NH3/ALKA=0.0 +!HO2/RP11=0.0 ! -!NH3/ALKE=0.0 +!HO2/RP16=+K339 + PJAC(:,10,74)=+TPK%K339(:) ! -!NH3/BIO=0.0 +!HO2/RPRL=0.0 ! -!NH3/ARO=0.0 +!HO2/APAN=0.0 ! -!NH3/HCHO=0.0 +!HO2/PAN1=0.0 ! -!NH3/ALD=0.0 +!HO2/PAN2=0.0 ! -!NH3/KET=0.0 +!HO2/PAN3=0.0 ! -!NH3/CARBO=0.0 +!HO2/PAN4=0.0 ! -!NH3/ONIT=0.0 +!HO2/PAN6=0.0 ! -!NH3/PAN=0.0 +!HO2/PAN7=0.0 ! -!NH3/OP1=0.0 +!HO2/PAN8=0.0 ! -!NH3/OP2=0.0 +!HO2/PN10=0.0 ! -!NH3/ORA1=0.0 +!HO2/RO2T=+K094*<HO2>-K094*<HO2>+K111*<RO21>+K114*<RO22>+K117*<RO23>+K120*<RO24 +!>+K123*<RO25>+K151*<RO29>+K154*<RO210>+K172*<RO215>+K178*<RO217>+K181*<RO218>+ +!K190*<RO221>+K193*<RO222>+K196*<RO223>+K199*<RO224>+K208*<RO227>+K222*<RO231>+ +!K228*<RO241>+K232*<RO233>+K235*<RO242>+K239*<RO234>+K242*<RO243>+K246*<RO235>+ +!K249*<RO244>+K253*<RO236>+K256*<RO245>+K260*<RO237>+K263*<RO246>+K267*<RO238>+ +!K270*<RO247>+K286*<RO249>+K293*<RO251>+K302*<RO254>+K319*<RO256> + PJAC(:,10,85)=+TPK%K094(:)*PCONC(:,10)-TPK%K094(:)*PCONC(:,10)+TPK%K111(:)*PCO& +&NC(:,86)+TPK%K114(:)*TPK%RO22(:)+TPK%K117(:)*TPK%RO23(:)+TPK%K120(:)*TPK%RO24(& +&:)+TPK%K123(:)*PCONC(:,87)+TPK%K151(:)*TPK%RO29(:)+TPK%K154(:)*TPK%RO210(:)+TP& +&K%K172(:)*TPK%RO215(:)+TPK%K178(:)*TPK%RO217(:)+TPK%K181(:)*TPK%RO218(:)+TPK%K& +&190(:)*TPK%RO221(:)+TPK%K193(:)*TPK%RO222(:)+TPK%K196(:)*TPK%RO223(:)+TPK%K199& +&(:)*TPK%RO224(:)+TPK%K208(:)*TPK%RO227(:)+TPK%K222(:)*TPK%RO231(:)+TPK%K228(:)& +&*TPK%RO241(:)+TPK%K232(:)*TPK%RO233(:)+TPK%K235(:)*TPK%RO242(:)+TPK%K239(:)*TP& +&K%RO234(:)+TPK%K242(:)*TPK%RO243(:)+TPK%K246(:)*TPK%RO235(:)+TPK%K249(:)*TPK%R& +&O244(:)+TPK%K253(:)*TPK%RO236(:)+TPK%K256(:)*TPK%RO245(:)+TPK%K260(:)*TPK%RO23& +&7(:)+TPK%K263(:)*TPK%RO246(:)+TPK%K267(:)*TPK%RO238(:)+TPK%K270(:)*TPK%RO247(:& +&)+TPK%K286(:)*TPK%RO249(:)+TPK%K293(:)*TPK%RO251(:)+TPK%K302(:)*TPK%RO254(:)+T& +&PK%K319(:)*TPK%RO256(:) ! -!NH3/ORA2=0.0 +!HO2/RO21=+K110*<NO>+K111*<RO2T>+K112*<HO2>-K112*<HO2> + PJAC(:,10,86)=+TPK%K110(:)*PCONC(:,1)+TPK%K111(:)*PCONC(:,85)+TPK%K112(:)*PCON& +&C(:,10)-TPK%K112(:)*PCONC(:,10) ! -!NH3/MO2=0.0 +!HO2/RO25=+TPK%CF4*K122*<NO>+K123*<RO2T>+K124*<HO2>-K124*<HO2> + PJAC(:,10,87)=+TPK%CF4*TPK%K122(:)*PCONC(:,1)+TPK%K123(:)*PCONC(:,85)+TPK%K124& +&(:)*PCONC(:,10)-TPK%K124(:)*PCONC(:,10) ! -!NH3/ALKAP=0.0 +RETURN +END SUBROUTINE SUBJ1 ! -!NH3/ALKEP=0.0 +SUBROUTINE SUBJ2 ! -!NH3/BIOP=0.0 +!Indices 11 a 15 ! -!NH3/PHO=0.0 ! -!NH3/ADD=0.0 +!CO/NO=+K119*<RO24>+K300*<RO254>+K340*<RO258> + PJAC(:,11,1)=+TPK%K119(:)*TPK%RO24(:)+TPK%K300(:)*TPK%RO254(:)+TPK%K340(:)*TPK& +&%RO258(:) ! -!NH3/AROP=0.0 +!CO/NO2=0.0 ! -!NH3/CARBOP=0.0 +!CO/O3=+0.315*K051*<ETHE>+0.56*K056*<OLEL>+0.461*K066*<ISOP>+0.56*K076*<OLEH>+0 +!.445*K086*<BIOL>+0.445*K090*<BIOH>+0.56*K281*<MVK>+0.41*K282*<MCR> + PJAC(:,11,3)=+0.315*TPK%K051(:)*PCONC(:,16)+0.56*TPK%K056(:)*PCONC(:,17)+0.461& +&*TPK%K066(:)*PCONC(:,35)+0.56*TPK%K076(:)*PCONC(:,18)+0.445*TPK%K086(:)*PCONC(& +&:,36)+0.445*TPK%K090(:)*PCONC(:,37)+0.56*TPK%K281(:)*PCONC(:,39)+0.41*TPK%K282& +&(:)*PCONC(:,40) ! -!NH3/OLN=0.0 +!CO/HONO=0.0 ! -!NH3/XO2=0.0 +!CO/HNO3=0.0 ! -!NH3/WC_O3=0.0 +!CO/HNO4=0.0 ! -!NH3/WC_H2O2=0.0 +!CO/N2O5=0.0 ! -!NH3/WC_NO=0.0 +!CO/NO3=+K047*<HCHO> + PJAC(:,11,8)=+TPK%K047(:)*PCONC(:,28) ! -!NH3/WC_NO2=0.0 +!CO/NH3=0.0 ! -!NH3/WC_NO3=0.0 +!CO/HO2=+K121*<RO24> + PJAC(:,11,10)=+TPK%K121(:)*TPK%RO24(:) ! -!NH3/WC_N2O5=0.0 +!CO/CO=-K024*<OH> + PJAC(:,11,11)=-TPK%K024(:)*PCONC(:,15) ! -!NH3/WC_HONO=0.0 +!CO/H2O2=0.0 ! -!NH3/WC_HNO3=0.0 +!CO/SO2=0.0 ! -!NH3/WC_HNO4=0.0 +!CO/H2SO4=0.0 ! -!NH3/WC_NH3=+KTC30 - PJAC(:,10,51)=+TPK%KTC30(:) +!CO/OH=-K024*<CO>+K046*<HCHO> + PJAC(:,11,15)=-TPK%K024(:)*PCONC(:,11)+TPK%K046(:)*PCONC(:,28) ! -!NH3/WC_OH=0.0 +!CO/ETHE=+0.315*K051*<O3>+0.6*K052*<O> + PJAC(:,11,16)=+0.315*TPK%K051(:)*PCONC(:,3)+0.6*TPK%K052(:)*TPK%O(:) ! -!NH3/WC_HO2=0.0 +!CO/OLEL=+0.56*K056*<O3> + PJAC(:,11,17)=+0.56*TPK%K056(:)*PCONC(:,3) ! -!NH3/WC_CO2=0.0 +!CO/OLEH=+0.56*K076*<O3> + PJAC(:,11,18)=+0.56*TPK%K076(:)*PCONC(:,3) ! -!NH3/WC_SO2=0.0 +!CO/ALKL=0.0 ! -!NH3/WC_SULF=0.0 +!CO/ALKM=0.0 ! -!NH3/WC_HCHO=0.0 +!CO/ALKH=0.0 ! -!NH3/WC_ORA1=0.0 +!CO/AROH=0.0 ! -!NH3/WC_ORA2=0.0 +!CO/AROL=0.0 ! -!NH3/WC_MO2=0.0 +!CO/AROO=0.0 ! -!NH3/WC_OP1=0.0 +!CO/ARAL=0.0 ! -!NH3/WC_ASO3=0.0 +!CO/ARAC=0.0 ! -!NH3/WC_ASO4=0.0 +!CO/PAH=0.0 ! -!NH3/WC_ASO5=0.0 +!CO/HCHO=+K044+K045+K046*<OH>+K047*<NO3> + PJAC(:,11,28)=+TPK%K044(:)+TPK%K045(:)+TPK%K046(:)*PCONC(:,15)+TPK%K047(:)*PCO& +&NC(:,8) ! -!NH3/WC_AHSO5=0.0 +!CO/ALD2=+K059 + PJAC(:,11,29)=+TPK%K059(:) ! -!NH3/WC_AHMS=0.0 +!CO/KETL=0.0 ! -!NH3/WR_O3=0.0 +!CO/KETH=0.0 ! -!NH3/WR_H2O2=0.0 +!CO/MEOH=0.0 ! -!NH3/WR_NO=0.0 +!CO/ETOH=0.0 ! -!NH3/WR_NO2=0.0 +!CO/ALCH=0.0 ! -!NH3/WR_NO3=0.0 +!CO/ISOP=+0.461*K066*<O3> + PJAC(:,11,35)=+0.461*TPK%K066(:)*PCONC(:,3) ! -!NH3/WR_N2O5=0.0 +!CO/BIOL=+0.445*K086*<O3> + PJAC(:,11,36)=+0.445*TPK%K086(:)*PCONC(:,3) ! -!NH3/WR_HONO=0.0 +!CO/BIOH=+0.445*K090*<O3> + PJAC(:,11,37)=+0.445*TPK%K090(:)*PCONC(:,3) ! -!NH3/WR_HNO3=0.0 +!CO/MTBE=0.0 ! -!NH3/WR_HNO4=0.0 +!CO/MVK=+0.56*K281*<O3> + PJAC(:,11,39)=+0.56*TPK%K281(:)*PCONC(:,3) ! -!NH3/WR_NH3=+KTR30 - PJAC(:,10,76)=+TPK%KTR30(:) +!CO/MCR=+0.41*K282*<O3>+0.15*K284*<O> + PJAC(:,11,40)=+0.41*TPK%K282(:)*PCONC(:,3)+0.15*TPK%K284(:)*TPK%O(:) ! -!NH3/WR_OH=0.0 +!CO/MGLY=+K276 + PJAC(:,11,41)=+TPK%K276(:) ! -!NH3/WR_HO2=0.0 +!CO/GLY=0.0 ! -!NH3/WR_CO2=0.0 +!CO/ORA1=0.0 ! -!NH3/WR_SO2=0.0 +!CO/ORA2=0.0 ! -!NH3/WR_SULF=0.0 +!CO/ACID=0.0 ! -!NH3/WR_HCHO=0.0 +!CO/UR28=0.0 ! -!NH3/WR_ORA1=0.0 +!CO/UR21=0.0 ! -!NH3/WR_ORA2=0.0 +!CO/URG2=0.0 ! -!NH3/WR_MO2=0.0 +!CO/UR26=0.0 ! -!NH3/WR_OP1=0.0 +!CO/RPG2=0.0 ! -!NH3/WR_ASO3=0.0 +!CO/RP18=0.0 ! -!NH3/WR_ASO4=0.0 +!CO/RPG3=0.0 ! -!NH3/WR_ASO5=0.0 +!CO/URG4=0.0 ! -!NH3/WR_AHSO5=0.0 +!CO/UR8=0.0 ! -!NH3/WR_AHMS=0.0 +!CO/UR17=0.0 ! -RETURN -END SUBROUTINE SUBJ1 +!CO/UR7=0.0 ! -SUBROUTINE SUBJ2 +!CO/RPR3=+K314 + PJAC(:,11,57)=+TPK%K314(:) ! -!Indices 11 a 15 +!CO/URG6=0.0 ! +!CO/UR22=0.0 ! -!SO2/O3=0.0 +!CO/URG7=0.0 ! -!SO2/H2O2=0.0 +!CO/RPR4=0.0 ! -!SO2/NO=0.0 +!CO/RPR7=0.0 ! -!SO2/NO2=0.0 +!CO/RPG7=0.0 ! -!SO2/NO3=0.0 +!CO/URG8=0.0 ! -!SO2/N2O5=0.0 +!CO/UR19=0.0 ! -!SO2/HONO=0.0 +!CO/URG9=0.0 ! -!SO2/HNO3=0.0 +!CO/AP7=0.0 ! -!SO2/HNO4=0.0 +!CO/URG10=0.0 ! -!SO2/NH3=0.0 +!CO/RPR1=+K308 + PJAC(:,11,69)=+TPK%K308(:) ! -!SO2/SO2=-K052*<OH>-KTC14-KTR14 - PJAC(:,11,11)=-TPK%K052(:)*PCONC(:,14)-TPK%KTC14(:)-TPK%KTR14(:) +!CO/RPR5=0.0 ! -!SO2/SULF=0.0 +!CO/RPR8=+K329 + PJAC(:,11,71)=+TPK%K329(:) ! -!SO2/CO=0.0 +!CO/RP10=0.0 ! -!SO2/OH=-K052*<SO2> - PJAC(:,11,14)=-TPK%K052(:)*PCONC(:,11) +!CO/RP11=0.0 ! -!SO2/HO2=0.0 +!CO/RP16=+2.*K339 + PJAC(:,11,74)=+2.*TPK%K339(:) ! -!SO2/CH4=0.0 +!CO/RPRL=0.0 ! -!SO2/ETH=0.0 +!CO/APAN=0.0 ! -!SO2/ALKA=0.0 +!CO/PAN1=0.0 ! -!SO2/ALKE=0.0 +!CO/PAN2=0.0 ! -!SO2/BIO=0.0 +!CO/PAN3=0.0 ! -!SO2/ARO=0.0 +!CO/PAN4=0.0 ! -!SO2/HCHO=0.0 +!CO/PAN6=0.0 ! -!SO2/ALD=0.0 +!CO/PAN7=0.0 ! -!SO2/KET=0.0 +!CO/PAN8=0.0 ! -!SO2/CARBO=0.0 +!CO/PN10=0.0 ! -!SO2/ONIT=0.0 +!CO/RO2T=+K120*<RO24>+K302*<RO254>+K342*<RO258> + PJAC(:,11,85)=+TPK%K120(:)*TPK%RO24(:)+TPK%K302(:)*TPK%RO254(:)+TPK%K342(:)*TP& +&K%RO258(:) ! -!SO2/PAN=0.0 +!CO/RO21=0.0 ! -!SO2/OP1=0.0 +!CO/RO25=0.0 ! -!SO2/OP2=0.0 +!H2O2/NO=0.0 ! -!SO2/ORA1=0.0 +!H2O2/NO2=0.0 ! -!SO2/ORA2=0.0 +!H2O2/O3=+0.055*K086*<BIOL>+0.055*K090*<BIOH> + PJAC(:,12,3)=+0.055*TPK%K086(:)*PCONC(:,36)+0.055*TPK%K090(:)*PCONC(:,37) ! -!SO2/MO2=0.0 +!H2O2/HONO=0.0 ! -!SO2/ALKAP=0.0 +!H2O2/HNO3=0.0 ! -!SO2/ALKEP=0.0 +!H2O2/HNO4=0.0 ! -!SO2/BIOP=0.0 +!H2O2/N2O5=0.0 ! -!SO2/PHO=0.0 +!H2O2/NO3=0.0 ! -!SO2/ADD=0.0 +!H2O2/NH3=0.0 ! -!SO2/AROP=0.0 +!H2O2/HO2=+K031*<HO2>+K031*<HO2>+K032*<H2O>*<HO2>+K032*<H2O>*<HO2> + PJAC(:,12,10)=+TPK%K031(:)*PCONC(:,10)+TPK%K031(:)*PCONC(:,10)+TPK%K032(:)*TPK& +&%H2O(:)*PCONC(:,10)+TPK%K032(:)*TPK%H2O(:)*PCONC(:,10) ! -!SO2/CARBOP=0.0 +!H2O2/CO=0.0 ! -!SO2/OLN=0.0 +!H2O2/H2O2=-K036-K037*<OH> + PJAC(:,12,12)=-TPK%K036(:)-TPK%K037(:)*PCONC(:,15) ! -!SO2/XO2=0.0 +!H2O2/SO2=0.0 ! -!SO2/WC_O3=0.0 +!H2O2/H2SO4=0.0 ! -!SO2/WC_H2O2=0.0 +!H2O2/OH=-K037*<H2O2> + PJAC(:,12,15)=-TPK%K037(:)*PCONC(:,12) ! -!SO2/WC_NO=0.0 +!H2O2/ETHE=0.0 ! -!SO2/WC_NO2=0.0 +!H2O2/OLEL=0.0 ! -!SO2/WC_NO3=0.0 +!H2O2/OLEH=0.0 ! -!SO2/WC_N2O5=0.0 +!H2O2/ALKL=0.0 ! -!SO2/WC_HONO=0.0 +!H2O2/ALKM=0.0 ! -!SO2/WC_HNO3=0.0 +!H2O2/ALKH=0.0 ! -!SO2/WC_HNO4=0.0 +!H2O2/AROH=0.0 ! -!SO2/WC_NH3=0.0 +!H2O2/AROL=0.0 ! -!SO2/WC_OH=0.0 +!H2O2/AROO=0.0 ! -!SO2/WC_HO2=0.0 +!H2O2/ARAL=0.0 ! -!SO2/WC_CO2=0.0 +!H2O2/ARAC=0.0 ! -!SO2/WC_SO2=+KTC34 - PJAC(:,11,55)=+TPK%KTC34(:) +!H2O2/PAH=0.0 ! -!SO2/WC_SULF=0.0 +!H2O2/HCHO=0.0 ! -!SO2/WC_HCHO=0.0 +!H2O2/ALD2=0.0 ! -!SO2/WC_ORA1=0.0 +!H2O2/KETL=0.0 ! -!SO2/WC_ORA2=0.0 +!H2O2/KETH=0.0 ! -!SO2/WC_MO2=0.0 +!H2O2/MEOH=0.0 ! -!SO2/WC_OP1=0.0 +!H2O2/ETOH=0.0 ! -!SO2/WC_ASO3=0.0 +!H2O2/ALCH=0.0 ! -!SO2/WC_ASO4=0.0 +!H2O2/ISOP=0.0 ! -!SO2/WC_ASO5=0.0 +!H2O2/BIOL=+0.055*K086*<O3> + PJAC(:,12,36)=+0.055*TPK%K086(:)*PCONC(:,3) ! -!SO2/WC_AHSO5=0.0 +!H2O2/BIOH=+0.055*K090*<O3> + PJAC(:,12,37)=+0.055*TPK%K090(:)*PCONC(:,3) ! -!SO2/WC_AHMS=0.0 +!H2O2/MTBE=0.0 ! -!SO2/WR_O3=0.0 +!H2O2/MVK=0.0 ! -!SO2/WR_H2O2=0.0 +!H2O2/MCR=0.0 ! -!SO2/WR_NO=0.0 +!H2O2/MGLY=0.0 ! -!SO2/WR_NO2=0.0 +!H2O2/GLY=0.0 ! -!SO2/WR_NO3=0.0 +!H2O2/ORA1=0.0 ! -!SO2/WR_N2O5=0.0 +!H2O2/ORA2=0.0 ! -!SO2/WR_HONO=0.0 +!H2O2/ACID=0.0 ! -!SO2/WR_HNO3=0.0 +!H2O2/UR28=0.0 ! -!SO2/WR_HNO4=0.0 +!H2O2/UR21=0.0 ! -!SO2/WR_NH3=0.0 +!H2O2/URG2=0.0 ! -!SO2/WR_OH=0.0 +!H2O2/UR26=0.0 ! -!SO2/WR_HO2=0.0 +!H2O2/RPG2=0.0 ! -!SO2/WR_CO2=0.0 +!H2O2/RP18=0.0 ! -!SO2/WR_SO2=+KTR34 - PJAC(:,11,80)=+TPK%KTR34(:) +!H2O2/RPG3=0.0 ! -!SO2/WR_SULF=0.0 +!H2O2/URG4=0.0 ! -!SO2/WR_HCHO=0.0 +!H2O2/UR8=0.0 ! -!SO2/WR_ORA1=0.0 +!H2O2/UR17=0.0 ! -!SO2/WR_ORA2=0.0 +!H2O2/UR7=0.0 ! -!SO2/WR_MO2=0.0 +!H2O2/RPR3=0.0 ! -!SO2/WR_OP1=0.0 +!H2O2/URG6=0.0 ! -!SO2/WR_ASO3=0.0 +!H2O2/UR22=0.0 ! -!SO2/WR_ASO4=0.0 +!H2O2/URG7=0.0 ! -!SO2/WR_ASO5=0.0 +!H2O2/RPR4=0.0 ! -!SO2/WR_AHSO5=0.0 +!H2O2/RPR7=0.0 ! -!SO2/WR_AHMS=0.0 +!H2O2/RPG7=0.0 ! -!SULF/O3=0.0 +!H2O2/URG8=0.0 ! -!SULF/H2O2=0.0 +!H2O2/UR19=0.0 ! -!SULF/NO=0.0 +!H2O2/URG9=0.0 ! -!SULF/NO2=0.0 +!H2O2/AP7=0.0 ! -!SULF/NO3=0.0 +!H2O2/URG10=0.0 ! -!SULF/N2O5=0.0 +!H2O2/RPR1=0.0 ! -!SULF/HONO=0.0 +!H2O2/RPR5=0.0 ! -!SULF/HNO3=0.0 +!H2O2/RPR8=0.0 ! -!SULF/HNO4=0.0 +!H2O2/RP10=0.0 ! -!SULF/NH3=0.0 +!H2O2/RP11=0.0 ! -!SULF/SO2=+K052*<OH> - PJAC(:,12,11)=+TPK%K052(:)*PCONC(:,14) +!H2O2/RP16=0.0 ! -!SULF/SULF=-K132-KTC15-KTR15 - PJAC(:,12,12)=-TPK%K132(:)-TPK%KTC15(:)-TPK%KTR15(:) +!H2O2/RPRL=0.0 ! -!SULF/CO=0.0 +!H2O2/APAN=0.0 ! -!SULF/OH=+K052*<SO2> - PJAC(:,12,14)=+TPK%K052(:)*PCONC(:,11) +!H2O2/PAN1=0.0 ! -!SULF/HO2=0.0 +!H2O2/PAN2=0.0 ! -!SULF/CH4=0.0 +!H2O2/PAN3=0.0 ! -!SULF/ETH=0.0 +!H2O2/PAN4=0.0 ! -!SULF/ALKA=0.0 +!H2O2/PAN6=0.0 ! -!SULF/ALKE=0.0 +!H2O2/PAN7=0.0 ! -!SULF/BIO=0.0 +!H2O2/PAN8=0.0 ! -!SULF/ARO=0.0 +!H2O2/PN10=0.0 ! -!SULF/HCHO=0.0 +!H2O2/RO2T=0.0 ! -!SULF/ALD=0.0 +!H2O2/RO21=0.0 ! -!SULF/KET=0.0 +!H2O2/RO25=0.0 ! -!SULF/CARBO=0.0 +!SO2/NO=0.0 ! -!SULF/ONIT=0.0 +!SO2/NO2=0.0 ! -!SULF/PAN=0.0 +!SO2/O3=0.0 ! -!SULF/OP1=0.0 +!SO2/HONO=0.0 ! -!SULF/OP2=0.0 +!SO2/HNO3=0.0 ! -!SULF/ORA1=0.0 +!SO2/HNO4=0.0 ! -!SULF/ORA2=0.0 +!SO2/N2O5=0.0 ! -!SULF/MO2=0.0 +!SO2/NO3=0.0 ! -!SULF/ALKAP=0.0 +!SO2/NH3=0.0 ! -!SULF/ALKEP=0.0 +!SO2/HO2=0.0 ! -!SULF/BIOP=0.0 +!SO2/CO=0.0 ! -!SULF/PHO=0.0 +!SO2/H2O2=0.0 ! -!SULF/ADD=0.0 +!SO2/SO2=-K035*<OH> + PJAC(:,13,13)=-TPK%K035(:)*PCONC(:,15) ! -!SULF/AROP=0.0 +!SO2/H2SO4=0.0 ! -!SULF/CARBOP=0.0 +!SO2/OH=-K035*<SO2> + PJAC(:,13,15)=-TPK%K035(:)*PCONC(:,13) ! -!SULF/OLN=0.0 +!SO2/ETHE=0.0 ! -!SULF/XO2=0.0 +!SO2/OLEL=0.0 ! -!SULF/WC_O3=0.0 +!SO2/OLEH=0.0 ! -!SULF/WC_H2O2=0.0 +!SO2/ALKL=0.0 ! -!SULF/WC_NO=0.0 +!SO2/ALKM=0.0 ! -!SULF/WC_NO2=0.0 +!SO2/ALKH=0.0 ! -!SULF/WC_NO3=0.0 +!SO2/AROH=0.0 ! -!SULF/WC_N2O5=0.0 +!SO2/AROL=0.0 ! -!SULF/WC_HONO=0.0 +!SO2/AROO=0.0 ! -!SULF/WC_HNO3=0.0 +!SO2/ARAL=0.0 ! -!SULF/WC_HNO4=0.0 +!SO2/ARAC=0.0 ! -!SULF/WC_NH3=0.0 +!SO2/PAH=0.0 ! -!SULF/WC_OH=0.0 +!SO2/HCHO=0.0 ! -!SULF/WC_HO2=0.0 +!SO2/ALD2=0.0 ! -!SULF/WC_CO2=0.0 +!SO2/KETL=0.0 ! -!SULF/WC_SO2=0.0 +!SO2/KETH=0.0 ! -!SULF/WC_SULF=+KTC35 - PJAC(:,12,56)=+TPK%KTC35(:) +!SO2/MEOH=0.0 ! -!SULF/WC_HCHO=0.0 +!SO2/ETOH=0.0 ! -!SULF/WC_ORA1=0.0 +!SO2/ALCH=0.0 ! -!SULF/WC_ORA2=0.0 +!SO2/ISOP=0.0 ! -!SULF/WC_MO2=0.0 +!SO2/BIOL=0.0 ! -!SULF/WC_OP1=0.0 +!SO2/BIOH=0.0 ! -!SULF/WC_ASO3=0.0 +!SO2/MTBE=0.0 ! -!SULF/WC_ASO4=0.0 +!SO2/MVK=0.0 ! -!SULF/WC_ASO5=0.0 +!SO2/MCR=0.0 ! -!SULF/WC_AHSO5=0.0 +!SO2/MGLY=0.0 ! -!SULF/WC_AHMS=0.0 +!SO2/GLY=0.0 ! -!SULF/WR_O3=0.0 +!SO2/ORA1=0.0 ! -!SULF/WR_H2O2=0.0 +!SO2/ORA2=0.0 ! -!SULF/WR_NO=0.0 +!SO2/ACID=0.0 ! -!SULF/WR_NO2=0.0 +!SO2/UR28=0.0 ! -!SULF/WR_NO3=0.0 +!SO2/UR21=0.0 ! -!SULF/WR_N2O5=0.0 +!SO2/URG2=0.0 ! -!SULF/WR_HONO=0.0 +!SO2/UR26=0.0 ! -!SULF/WR_HNO3=0.0 +!SO2/RPG2=0.0 ! -!SULF/WR_HNO4=0.0 +!SO2/RP18=0.0 ! -!SULF/WR_NH3=0.0 +!SO2/RPG3=0.0 ! -!SULF/WR_OH=0.0 +!SO2/URG4=0.0 ! -!SULF/WR_HO2=0.0 +!SO2/UR8=0.0 ! -!SULF/WR_CO2=0.0 +!SO2/UR17=0.0 ! -!SULF/WR_SO2=0.0 +!SO2/UR7=0.0 ! -!SULF/WR_SULF=+KTR35 - PJAC(:,12,81)=+TPK%KTR35(:) +!SO2/RPR3=0.0 ! -!SULF/WR_HCHO=0.0 +!SO2/URG6=0.0 ! -!SULF/WR_ORA1=0.0 +!SO2/UR22=0.0 ! -!SULF/WR_ORA2=0.0 +!SO2/URG7=0.0 ! -!SULF/WR_MO2=0.0 +!SO2/RPR4=0.0 ! -!SULF/WR_OP1=0.0 +!SO2/RPR7=0.0 ! -!SULF/WR_ASO3=0.0 +!SO2/RPG7=0.0 ! -!SULF/WR_ASO4=0.0 +!SO2/URG8=0.0 ! -!SULF/WR_ASO5=0.0 +!SO2/UR19=0.0 ! -!SULF/WR_AHSO5=0.0 +!SO2/URG9=0.0 ! -!SULF/WR_AHMS=0.0 +!SO2/AP7=0.0 ! -!CO/O3=+0.35120*K079*<ALKE>+0.36000*K080*<BIO>+0.64728*K081*<CARBO>+0.13*K082*< -!PAN> - PJAC(:,13,1)=+0.35120*TPK%K079(:)*PCONC(:,19)+0.36000*TPK%K080(:)*PCONC(:,20)+& -&0.64728*TPK%K081(:)*PCONC(:,25)+0.13*TPK%K082(:)*PCONC(:,27) +!SO2/URG10=0.0 ! -!CO/H2O2=0.0 +!SO2/RPR1=0.0 ! -!CO/NO=0.0 +!SO2/RPR5=0.0 ! -!CO/NO2=0.0 +!SO2/RPR8=0.0 ! -!CO/NO3=+K072*<HCHO>+1.33723*K074*<CARBO> - PJAC(:,13,5)=+TPK%K072(:)*PCONC(:,22)+1.33723*TPK%K074(:)*PCONC(:,25) +!SO2/RP10=0.0 ! -!CO/N2O5=0.0 +!SO2/RP11=0.0 ! -!CO/HONO=0.0 +!SO2/RP16=0.0 ! -!CO/HNO3=0.0 +!SO2/RPRL=0.0 ! -!CO/HNO4=0.0 +!SO2/APAN=0.0 ! -!CO/NH3=0.0 +!SO2/PAN1=0.0 ! -!CO/SO2=0.0 +!SO2/PAN2=0.0 ! -!CO/SULF=0.0 +!SO2/PAN3=0.0 ! -!CO/CO=-K053*<OH> - PJAC(:,13,13)=-TPK%K053(:)*PCONC(:,14) +!SO2/PAN4=0.0 ! -!CO/OH=-K053*<CO>+0.00878*K058*<ALKA>+K062*<HCHO>+1.01732*K065*<CARBO> - PJAC(:,13,14)=-TPK%K053(:)*PCONC(:,13)+0.00878*TPK%K058(:)*PCONC(:,18)+TPK%K06& -&2(:)*PCONC(:,22)+1.01732*TPK%K065(:)*PCONC(:,25) +!SO2/PAN6=0.0 ! -!CO/HO2=0.0 +!SO2/PAN7=0.0 ! -!CO/CH4=0.0 +!SO2/PAN8=0.0 ! -!CO/ETH=0.0 +!SO2/PN10=0.0 ! -!CO/ALKA=+0.00878*K058*<OH> - PJAC(:,13,18)=+0.00878*TPK%K058(:)*PCONC(:,14) +!SO2/RO2T=0.0 ! -!CO/ALKE=+0.35120*K079*<O3> - PJAC(:,13,19)=+0.35120*TPK%K079(:)*PCONC(:,1) +!SO2/RO21=0.0 ! -!CO/BIO=+0.01*K054*<O3P>+0.36000*K080*<O3> - PJAC(:,13,20)=+0.01*TPK%K054(:)*TPK%O3P(:)+0.36000*TPK%K080(:)*PCONC(:,1) +!SO2/RO25=0.0 ! -!CO/ARO=0.0 +!H2SO4/NO=0.0 ! -!CO/HCHO=+K010+K011+K062*<OH>+K072*<NO3> - PJAC(:,13,22)=+TPK%K010(:)+TPK%K011(:)+TPK%K062(:)*PCONC(:,14)+TPK%K072(:)*PCO& -&NC(:,5) +!H2SO4/NO2=0.0 ! -!CO/ALD=+K012 - PJAC(:,13,23)=+TPK%K012(:) +!H2SO4/O3=0.0 ! -!CO/KET=0.0 +!H2SO4/HONO=0.0 ! -!CO/CARBO=+0.91924*K016+1.01732*K065*<OH>+1.33723*K074*<NO3>+0.64728*K081*<O3> - PJAC(:,13,25)=+0.91924*TPK%K016(:)+1.01732*TPK%K065(:)*PCONC(:,14)+1.33723*TPK& -&%K074(:)*PCONC(:,5)+0.64728*TPK%K081(:)*PCONC(:,1) +!H2SO4/HNO3=0.0 ! -!CO/ONIT=0.0 +!H2SO4/HNO4=0.0 ! -!CO/PAN=+0.13*K082*<O3> - PJAC(:,13,27)=+0.13*TPK%K082(:)*PCONC(:,1) +!H2SO4/N2O5=0.0 ! -!CO/OP1=0.0 +!H2SO4/NO3=0.0 ! -!CO/OP2=0.0 +!H2SO4/NH3=0.0 ! -!CO/ORA1=0.0 +!H2SO4/HO2=0.0 ! -!CO/ORA2=0.0 +!H2SO4/CO=0.0 ! -!CO/MO2=0.0 +!H2SO4/H2O2=0.0 ! -!CO/ALKAP=0.0 +!H2SO4/SO2=+K035*<OH> + PJAC(:,14,13)=+TPK%K035(:)*PCONC(:,15) ! -!CO/ALKEP=0.0 +!H2SO4/H2SO4=-K346 + PJAC(:,14,14)=-TPK%K346(:) ! -!CO/BIOP=0.0 +!H2SO4/OH=+K035*<SO2> + PJAC(:,14,15)=+TPK%K035(:)*PCONC(:,13) ! -!CO/PHO=0.0 +!H2SO4/ETHE=0.0 ! -!CO/ADD=0.0 +!H2SO4/OLEL=0.0 ! -!CO/AROP=0.0 +!H2SO4/OLEH=0.0 ! -!CO/CARBOP=0.0 +!H2SO4/ALKL=0.0 ! -!CO/OLN=0.0 +!H2SO4/ALKM=0.0 ! -!CO/XO2=0.0 +!H2SO4/ALKH=0.0 ! -!CO/WC_O3=0.0 +!H2SO4/AROH=0.0 ! -!CO/WC_H2O2=0.0 +!H2SO4/AROL=0.0 ! -!CO/WC_NO=0.0 +!H2SO4/AROO=0.0 ! -!CO/WC_NO2=0.0 +!H2SO4/ARAL=0.0 ! -!CO/WC_NO3=0.0 +!H2SO4/ARAC=0.0 ! -!CO/WC_N2O5=0.0 +!H2SO4/PAH=0.0 ! -!CO/WC_HONO=0.0 +!H2SO4/HCHO=0.0 ! -!CO/WC_HNO3=0.0 +!H2SO4/ALD2=0.0 ! -!CO/WC_HNO4=0.0 +!H2SO4/KETL=0.0 ! -!CO/WC_NH3=0.0 +!H2SO4/KETH=0.0 ! -!CO/WC_OH=0.0 +!H2SO4/MEOH=0.0 ! -!CO/WC_HO2=0.0 +!H2SO4/ETOH=0.0 ! -!CO/WC_CO2=0.0 +!H2SO4/ALCH=0.0 ! -!CO/WC_SO2=0.0 +!H2SO4/ISOP=0.0 ! -!CO/WC_SULF=0.0 +!H2SO4/BIOL=0.0 ! -!CO/WC_HCHO=0.0 +!H2SO4/BIOH=0.0 ! -!CO/WC_ORA1=0.0 +!H2SO4/MTBE=0.0 ! -!CO/WC_ORA2=0.0 +!H2SO4/MVK=0.0 ! -!CO/WC_MO2=0.0 +!H2SO4/MCR=0.0 ! -!CO/WC_OP1=0.0 +!H2SO4/MGLY=0.0 ! -!CO/WC_ASO3=0.0 +!H2SO4/GLY=0.0 ! -!CO/WC_ASO4=0.0 +!H2SO4/ORA1=0.0 ! -!CO/WC_ASO5=0.0 +!H2SO4/ORA2=0.0 ! -!CO/WC_AHSO5=0.0 +!H2SO4/ACID=0.0 ! -!CO/WC_AHMS=0.0 +!H2SO4/UR28=0.0 ! -!CO/WR_O3=0.0 +!H2SO4/UR21=0.0 ! -!CO/WR_H2O2=0.0 +!H2SO4/URG2=0.0 ! -!CO/WR_NO=0.0 +!H2SO4/UR26=0.0 ! -!CO/WR_NO2=0.0 +!H2SO4/RPG2=0.0 ! -!CO/WR_NO3=0.0 +!H2SO4/RP18=0.0 ! -!CO/WR_N2O5=0.0 +!H2SO4/RPG3=0.0 ! -!CO/WR_HONO=0.0 +!H2SO4/URG4=0.0 ! -!CO/WR_HNO3=0.0 +!H2SO4/UR8=0.0 ! -!CO/WR_HNO4=0.0 +!H2SO4/UR17=0.0 ! -!CO/WR_NH3=0.0 +!H2SO4/UR7=0.0 ! -!CO/WR_OH=0.0 +!H2SO4/RPR3=0.0 ! -!CO/WR_HO2=0.0 +!H2SO4/URG6=0.0 ! -!CO/WR_CO2=0.0 +!H2SO4/UR22=0.0 ! -!CO/WR_SO2=0.0 +!H2SO4/URG7=0.0 ! -!CO/WR_SULF=0.0 +!H2SO4/RPR4=0.0 ! -!CO/WR_HCHO=0.0 +!H2SO4/RPR7=0.0 ! -!CO/WR_ORA1=0.0 +!H2SO4/RPG7=0.0 ! -!CO/WR_ORA2=0.0 +!H2SO4/URG8=0.0 ! -!CO/WR_MO2=0.0 +!H2SO4/UR19=0.0 ! -!CO/WR_OP1=0.0 +!H2SO4/URG9=0.0 ! -!CO/WR_ASO3=0.0 +!H2SO4/AP7=0.0 ! -!CO/WR_ASO4=0.0 +!H2SO4/URG10=0.0 ! -!CO/WR_ASO5=0.0 +!H2SO4/RPR1=0.0 ! -!CO/WR_AHSO5=0.0 +!H2SO4/RPR5=0.0 ! -!CO/WR_AHMS=0.0 +!H2SO4/RPR8=0.0 ! -!OH/O3=-K023*<OH>+K024*<HO2>+0.39435*K079*<ALKE>+0.28000*K080*<BIO>+0.20595*K08 -!1*<CARBO>+0.036*K082*<PAN>+K087*<ADD> - PJAC(:,14,1)=-TPK%K023(:)*PCONC(:,14)+TPK%K024(:)*PCONC(:,15)+0.39435*TPK%K079& -&(:)*PCONC(:,19)+0.28000*TPK%K080(:)*PCONC(:,20)+0.20595*TPK%K081(:)*PCONC(:,25& -&)+0.036*TPK%K082(:)*PCONC(:,27)+TPK%K087(:)*PCONC(:,37) +!H2SO4/RP10=0.0 ! -!OH/H2O2=+K009+K009-K026*<OH> - PJAC(:,14,2)=+TPK%K009(:)+TPK%K009(:)-TPK%K026(:)*PCONC(:,14) +!H2SO4/RP11=0.0 ! -!OH/NO=-K032*<OH>+K035*<HO2> - PJAC(:,14,3)=-TPK%K032(:)*PCONC(:,14)+TPK%K035(:)*PCONC(:,15) +!H2SO4/RP16=0.0 ! -!OH/NO2=-K033*<OH> - PJAC(:,14,4)=-TPK%K033(:)*PCONC(:,14) +!H2SO4/RPRL=0.0 ! -!OH/NO3=-K034*<OH>+0.7*K038*<HO2> - PJAC(:,14,5)=-TPK%K034(:)*PCONC(:,14)+0.7*TPK%K038(:)*PCONC(:,15) +!H2SO4/APAN=0.0 ! -!OH/N2O5=0.0 +!H2SO4/PAN1=0.0 ! -!OH/HONO=+K004-K039*<OH> - PJAC(:,14,7)=+TPK%K004(:)-TPK%K039(:)*PCONC(:,14) +!H2SO4/PAN2=0.0 ! -!OH/HNO3=+K005-K040*<OH> - PJAC(:,14,8)=+TPK%K005(:)-TPK%K040(:)*PCONC(:,14) +!H2SO4/PAN3=0.0 ! -!OH/HNO4=+0.35*K006-K041*<OH> - PJAC(:,14,9)=+0.35*TPK%K006(:)-TPK%K041(:)*PCONC(:,14) +!H2SO4/PAN4=0.0 ! -!OH/NH3=-K050*<OH> - PJAC(:,14,10)=-TPK%K050(:)*PCONC(:,14) +!H2SO4/PAN6=0.0 ! -!OH/SO2=-K052*<OH> - PJAC(:,14,11)=-TPK%K052(:)*PCONC(:,14) +!H2SO4/PAN7=0.0 ! -!OH/SULF=0.0 +!H2SO4/PAN8=0.0 ! -!OH/CO=-K053*<OH> - PJAC(:,14,13)=-TPK%K053(:)*PCONC(:,14) +!H2SO4/PN10=0.0 ! -!OH/OH=-K023*<O3>-K025*<HO2>-K026*<H2O2>-K032*<NO>-K033*<NO2>-K034*<NO3>-K039*< -!HONO>-K040*<HNO3>-K041*<HNO4>-K050*<NH3>-K051*<H2>-K052*<SO2>-K053*<CO>-K056*< -!CH4>-K057*<ETH>+0.00878*K058*<ALKA>-K058*<ALKA>-K059*<ALKE>-K060*<BIO>-K061*<A -!RO>-K062*<HCHO>-K063*<ALD>-K064*<KET>-K065*<CARBO>-K066*<ORA1>-K067*<ORA2>+0.3 -!5*K068*<OP1>-K068*<OP1>+0.44925*K069*<OP2>-K069*<OP2>-K070*<PAN>-K071*<ONIT>-K -!TC11-KTR11 - PJAC(:,14,14)=-TPK%K023(:)*PCONC(:,1)-TPK%K025(:)*PCONC(:,15)-TPK%K026(:)*PCON& -&C(:,2)-TPK%K032(:)*PCONC(:,3)-TPK%K033(:)*PCONC(:,4)-TPK%K034(:)*PCONC(:,5)-TP& -&K%K039(:)*PCONC(:,7)-TPK%K040(:)*PCONC(:,8)-TPK%K041(:)*PCONC(:,9)-TPK%K050(:)& -&*PCONC(:,10)-TPK%K051(:)*TPK%H2(:)-TPK%K052(:)*PCONC(:,11)-TPK%K053(:)*PCONC(:& -&,13)-TPK%K056(:)*PCONC(:,16)-TPK%K057(:)*PCONC(:,17)+0.00878*TPK%K058(:)*PCONC& -&(:,18)-TPK%K058(:)*PCONC(:,18)-TPK%K059(:)*PCONC(:,19)-TPK%K060(:)*PCONC(:,20)& -&-TPK%K061(:)*PCONC(:,21)-TPK%K062(:)*PCONC(:,22)-TPK%K063(:)*PCONC(:,23)-TPK%K& -&064(:)*PCONC(:,24)-TPK%K065(:)*PCONC(:,25)-TPK%K066(:)*PCONC(:,30)-TPK%K067(:)& -&*PCONC(:,31)+0.35*TPK%K068(:)*PCONC(:,28)-TPK%K068(:)*PCONC(:,28)+0.44925*TPK%& -&K069(:)*PCONC(:,29)-TPK%K069(:)*PCONC(:,29)-TPK%K070(:)*PCONC(:,27)-TPK%K071(:& -&)*PCONC(:,26)-TPK%KTC11(:)-TPK%KTR11(:) +!H2SO4/RO2T=0.0 ! -!OH/HO2=+K024*<O3>-K025*<OH>+K035*<NO>+0.7*K038*<NO3> - PJAC(:,14,15)=+TPK%K024(:)*PCONC(:,1)-TPK%K025(:)*PCONC(:,14)+TPK%K035(:)*PCON& -&C(:,3)+0.7*TPK%K038(:)*PCONC(:,5) +!H2SO4/RO21=0.0 ! -!OH/CH4=-K056*<OH> - PJAC(:,14,16)=-TPK%K056(:)*PCONC(:,14) +!H2SO4/RO25=0.0 ! -!OH/ETH=-K057*<OH> - PJAC(:,14,17)=-TPK%K057(:)*PCONC(:,14) +!OH/NO=-K019*<OH>+K026*<HO2>+K340*<RO258> + PJAC(:,15,1)=-TPK%K019(:)*PCONC(:,15)+TPK%K026(:)*PCONC(:,10)+TPK%K340(:)*TPK%& +&RO258(:) ! -!OH/ALKA=+0.00878*K058*<OH>-K058*<OH> - PJAC(:,14,18)=+0.00878*TPK%K058(:)*PCONC(:,14)-TPK%K058(:)*PCONC(:,14) +!OH/NO2=-K022*<OH> + PJAC(:,15,2)=-TPK%K022(:)*PCONC(:,15) ! -!OH/ALKE=-K059*<OH>+0.39435*K079*<O3> - PJAC(:,14,19)=-TPK%K059(:)*PCONC(:,14)+0.39435*TPK%K079(:)*PCONC(:,1) +!OH/O3=-K025*<OH>+K030*<HO2>+0.06*K051*<ETHE>+0.36*K056*<OLEL>+0.664*K066*<ISOP +!>+0.36*K076*<OLEH>+0.89*K086*<BIOL>+0.89*K090*<BIOH>+0.36*K281*<MVK>+0.82*K282 +!*<MCR> + PJAC(:,15,3)=-TPK%K025(:)*PCONC(:,15)+TPK%K030(:)*PCONC(:,10)+0.06*TPK%K051(:)& +&*PCONC(:,16)+0.36*TPK%K056(:)*PCONC(:,17)+0.664*TPK%K066(:)*PCONC(:,35)+0.36*T& +&PK%K076(:)*PCONC(:,18)+0.89*TPK%K086(:)*PCONC(:,36)+0.89*TPK%K090(:)*PCONC(:,3& +&7)+0.36*TPK%K281(:)*PCONC(:,39)+0.82*TPK%K282(:)*PCONC(:,40) ! -!OH/BIO=+0.02*K054*<O3P>-K060*<OH>+0.28000*K080*<O3> - PJAC(:,14,20)=+0.02*TPK%K054(:)*TPK%O3P(:)-TPK%K060(:)*PCONC(:,14)+0.28000*TPK& -&%K080(:)*PCONC(:,1) +!OH/HONO=+0.9*K020-K039*<OH> + PJAC(:,15,4)=+0.9*TPK%K020(:)-TPK%K039(:)*PCONC(:,15) ! -!OH/ARO=-K061*<OH> - PJAC(:,14,21)=-TPK%K061(:)*PCONC(:,14) +!OH/HNO3=-K023*<OH> + PJAC(:,15,5)=-TPK%K023(:)*PCONC(:,15) ! -!OH/HCHO=-K062*<OH> - PJAC(:,14,22)=-TPK%K062(:)*PCONC(:,14) +!OH/HNO4=-K029*<OH> + PJAC(:,15,6)=-TPK%K029(:)*PCONC(:,15) ! -!OH/ALD=-K063*<OH> - PJAC(:,14,23)=-TPK%K063(:)*PCONC(:,14) +!OH/N2O5=0.0 ! -!OH/KET=-K064*<OH> - PJAC(:,14,24)=-TPK%K064(:)*PCONC(:,14) +!OH/NO3=+0.8*K033*<HO2>-K040*<OH> + PJAC(:,15,8)=+0.8*TPK%K033(:)*PCONC(:,10)-TPK%K040(:)*PCONC(:,15) +! +!OH/NH3=-K345*<OH> + PJAC(:,15,9)=-TPK%K345(:)*PCONC(:,15) +! +!OH/HO2=+K026*<NO>+K030*<O3>+0.8*K033*<NO3>-K042*<OH>+K112*<RO21>+K115*<RO22>+K +!118*<RO23>+K121*<RO24>+K124*<RO25>+K146*<RO27>+K152*<RO29>+K155*<RO210>+K158*< +!RO211>+K161*<RO212>+K164*<RO213>+K170*<RO214>+K173*<RO215>+K176*<RO216>+K179*< +!RO217>+K182*<RO218>+K185*<RO219>+K188*<RO220>+K191*<RO221>+K194*<RO222>+K197*< +!RO223>+K200*<RO224>+K203*<RO225>+K206*<RO226>+K209*<RO227>+K212*<RO228>+K215*< +!RO229>+K218*<RO240>+K220*<RO230>+K223*<RO231>+K226*<RO232>+K229*<RO241>+K233*< +!RO233>+K236*<RO242>+K240*<RO234>+K243*<RO243>+K247*<RO235>+K250*<RO244>+K254*< +!RO236>+K257*<RO245>+K261*<RO237>+K264*<RO246>+K268*<RO238>+K271*<RO247>+K287*< +!RO249> + PJAC(:,15,10)=+TPK%K026(:)*PCONC(:,1)+TPK%K030(:)*PCONC(:,3)+0.8*TPK%K033(:)*P& +&CONC(:,8)-TPK%K042(:)*PCONC(:,15)+TPK%K112(:)*PCONC(:,86)+TPK%K115(:)*TPK%RO22& +&(:)+TPK%K118(:)*TPK%RO23(:)+TPK%K121(:)*TPK%RO24(:)+TPK%K124(:)*PCONC(:,87)+TP& +&K%K146(:)*TPK%RO27(:)+TPK%K152(:)*TPK%RO29(:)+TPK%K155(:)*TPK%RO210(:)+TPK%K15& +&8(:)*TPK%RO211(:)+TPK%K161(:)*TPK%RO212(:)+TPK%K164(:)*TPK%RO213(:)+TPK%K170(:& +&)*TPK%RO214(:)+TPK%K173(:)*TPK%RO215(:)+TPK%K176(:)*TPK%RO216(:)+TPK%K179(:)*T& +&PK%RO217(:)+TPK%K182(:)*TPK%RO218(:)+TPK%K185(:)*TPK%RO219(:)+TPK%K188(:)*TPK%& +&RO220(:)+TPK%K191(:)*TPK%RO221(:)+TPK%K194(:)*TPK%RO222(:)+TPK%K197(:)*TPK%RO2& +&23(:)+TPK%K200(:)*TPK%RO224(:)+TPK%K203(:)*TPK%RO225(:)+TPK%K206(:)*TPK%RO226(& +&:)+TPK%K209(:)*TPK%RO227(:)+TPK%K212(:)*TPK%RO228(:)+TPK%K215(:)*TPK%RO229(:)+& +&TPK%K218(:)*TPK%RO240(:)+TPK%K220(:)*TPK%RO230(:)+TPK%K223(:)*TPK%RO231(:)+TPK& +&%K226(:)*TPK%RO232(:)+TPK%K229(:)*TPK%RO241(:)+TPK%K233(:)*TPK%RO233(:)+TPK%K2& +&36(:)*TPK%RO242(:)+TPK%K240(:)*TPK%RO234(:)+TPK%K243(:)*TPK%RO243(:)+TPK%K247(& +&:)*TPK%RO235(:)+TPK%K250(:)*TPK%RO244(:)+TPK%K254(:)*TPK%RO236(:)+TPK%K257(:)*& +&TPK%RO245(:)+TPK%K261(:)*TPK%RO237(:)+TPK%K264(:)*TPK%RO246(:)+TPK%K268(:)*TPK& +&%RO238(:)+TPK%K271(:)*TPK%RO247(:)+TPK%K287(:)*TPK%RO249(:) +! +!OH/CO=-K024*<OH> + PJAC(:,15,11)=-TPK%K024(:)*PCONC(:,15) +! +!OH/H2O2=+2.*K036-K037*<OH> + PJAC(:,15,12)=+2.*TPK%K036(:)-TPK%K037(:)*PCONC(:,15) +! +!OH/SO2=-K035*<OH> + PJAC(:,15,13)=-TPK%K035(:)*PCONC(:,15) +! +!OH/H2SO4=0.0 +! +!OH/OH=-K019*<NO>-K022*<NO2>-K023*<HNO3>-K024*<CO>-K025*<O3>-K029*<HNO4>-K035*< +!SO2>-K037*<H2O2>-K039*<HONO>-K040*<NO3>-K042*<HO2>-K043*<CH4>-K046*<HCHO>-K048 +!*<MEOH>-K049*<ETHE>-K053*<ETOH>-K054*<OLEL>-K058*<ALKL>-K060*<ALD2>-K062*<KETL +!>-K064*<ISOP>-K068*<MTBE>-K069*<ALCH>-K070*<KETH>-K073*<AROO>-K074*<OLEH>-K078 +!*<ALKM>-K079*<AROL>-K080*<AROH>-K082*<ARAL>-K083*<ARAC>-K084*<BIOL>-K088*<BIOH +!>-K092*<PAH>-K093*<ALKH>-K272*<MVK>-K273*<MCR>-K274*<MGLY>-K303*<RPR5>-K304*<R +!PR1>-K305*<RP16>-K306*<RPRL>-K312*<RPR3>-K322*<RPR7>-K323*<RPG7>-K324*<RPR8>-K +!325*<RP10>-K326*<RP11>-K334*<RPG3>-K335*<RPG2>-K337*<RP18>-K345*<NH3>-K347*<OR +!A1>-K348*<ORA2>-K349*<ACID> + PJAC(:,15,15)=-TPK%K019(:)*PCONC(:,1)-TPK%K022(:)*PCONC(:,2)-TPK%K023(:)*PCONC& +&(:,5)-TPK%K024(:)*PCONC(:,11)-TPK%K025(:)*PCONC(:,3)-TPK%K029(:)*PCONC(:,6)-TP& +&K%K035(:)*PCONC(:,13)-TPK%K037(:)*PCONC(:,12)-TPK%K039(:)*PCONC(:,4)-TPK%K040(& +&:)*PCONC(:,8)-TPK%K042(:)*PCONC(:,10)-TPK%K043(:)*TPK%CH4(:)-TPK%K046(:)*PCONC& +&(:,28)-TPK%K048(:)*PCONC(:,32)-TPK%K049(:)*PCONC(:,16)-TPK%K053(:)*PCONC(:,33)& +&-TPK%K054(:)*PCONC(:,17)-TPK%K058(:)*PCONC(:,19)-TPK%K060(:)*PCONC(:,29)-TPK%K& +&062(:)*PCONC(:,30)-TPK%K064(:)*PCONC(:,35)-TPK%K068(:)*PCONC(:,38)-TPK%K069(:)& +&*PCONC(:,34)-TPK%K070(:)*PCONC(:,31)-TPK%K073(:)*PCONC(:,24)-TPK%K074(:)*PCONC& +&(:,18)-TPK%K078(:)*PCONC(:,20)-TPK%K079(:)*PCONC(:,23)-TPK%K080(:)*PCONC(:,22)& +&-TPK%K082(:)*PCONC(:,25)-TPK%K083(:)*PCONC(:,26)-TPK%K084(:)*PCONC(:,36)-TPK%K& +&088(:)*PCONC(:,37)-TPK%K092(:)*PCONC(:,27)-TPK%K093(:)*PCONC(:,21)-TPK%K272(:)& +&*PCONC(:,39)-TPK%K273(:)*PCONC(:,40)-TPK%K274(:)*PCONC(:,41)-TPK%K303(:)*PCONC& +&(:,70)-TPK%K304(:)*PCONC(:,69)-TPK%K305(:)*PCONC(:,74)-TPK%K306(:)*PCONC(:,75)& +&-TPK%K312(:)*PCONC(:,57)-TPK%K322(:)*PCONC(:,62)-TPK%K323(:)*PCONC(:,63)-TPK%K& +&324(:)*PCONC(:,71)-TPK%K325(:)*PCONC(:,72)-TPK%K326(:)*PCONC(:,73)-TPK%K334(:)& +&*PCONC(:,52)-TPK%K335(:)*PCONC(:,50)-TPK%K337(:)*PCONC(:,51)-TPK%K345(:)*PCONC& +&(:,9)-TPK%K347(:)*PCONC(:,43)-TPK%K348(:)*PCONC(:,44)-TPK%K349(:)*PCONC(:,45) ! -!OH/CARBO=-K065*<OH>+0.20595*K081*<O3> - PJAC(:,14,25)=-TPK%K065(:)*PCONC(:,14)+0.20595*TPK%K081(:)*PCONC(:,1) +!OH/ETHE=-K049*<OH>+0.06*K051*<O3> + PJAC(:,15,16)=-TPK%K049(:)*PCONC(:,15)+0.06*TPK%K051(:)*PCONC(:,3) ! -!OH/ONIT=-K071*<OH> - PJAC(:,14,26)=-TPK%K071(:)*PCONC(:,14) +!OH/OLEL=-K054*<OH>+0.36*K056*<O3> + PJAC(:,15,17)=-TPK%K054(:)*PCONC(:,15)+0.36*TPK%K056(:)*PCONC(:,3) ! -!OH/PAN=-K070*<OH>+0.036*K082*<O3> - PJAC(:,14,27)=-TPK%K070(:)*PCONC(:,14)+0.036*TPK%K082(:)*PCONC(:,1) +!OH/OLEH=-K074*<OH>+0.36*K076*<O3> + PJAC(:,15,18)=-TPK%K074(:)*PCONC(:,15)+0.36*TPK%K076(:)*PCONC(:,3) ! -!OH/OP1=+K013+0.35*K068*<OH>-K068*<OH> - PJAC(:,14,28)=+TPK%K013(:)+0.35*TPK%K068(:)*PCONC(:,14)-TPK%K068(:)*PCONC(:,14& -&) +!OH/ALKL=-K058*<OH> + PJAC(:,15,19)=-TPK%K058(:)*PCONC(:,15) ! -!OH/OP2=+K014+0.44925*K069*<OH>-K069*<OH> - PJAC(:,14,29)=+TPK%K014(:)+0.44925*TPK%K069(:)*PCONC(:,14)-TPK%K069(:)*PCONC(:& -&,14) +!OH/ALKM=-K078*<OH> + PJAC(:,15,20)=-TPK%K078(:)*PCONC(:,15) ! -!OH/ORA1=-K066*<OH> - PJAC(:,14,30)=-TPK%K066(:)*PCONC(:,14) +!OH/ALKH=-K093*<OH> + PJAC(:,15,21)=-TPK%K093(:)*PCONC(:,15) ! -!OH/ORA2=-K067*<OH> - PJAC(:,14,31)=-TPK%K067(:)*PCONC(:,14) +!OH/AROH=-K080*<OH> + PJAC(:,15,22)=-TPK%K080(:)*PCONC(:,15) ! -!OH/MO2=0.0 +!OH/AROL=-K079*<OH> + PJAC(:,15,23)=-TPK%K079(:)*PCONC(:,15) ! -!OH/ALKAP=0.0 +!OH/AROO=-K073*<OH> + PJAC(:,15,24)=-TPK%K073(:)*PCONC(:,15) ! -!OH/ALKEP=0.0 +!OH/ARAL=-K082*<OH> + PJAC(:,15,25)=-TPK%K082(:)*PCONC(:,15) ! -!OH/BIOP=0.0 +!OH/ARAC=-K083*<OH> + PJAC(:,15,26)=-TPK%K083(:)*PCONC(:,15) ! -!OH/PHO=0.0 +!OH/PAH=-K092*<OH> + PJAC(:,15,27)=-TPK%K092(:)*PCONC(:,15) ! -!OH/ADD=+K087*<O3> - PJAC(:,14,37)=+TPK%K087(:)*PCONC(:,1) +!OH/HCHO=-K046*<OH> + PJAC(:,15,28)=-TPK%K046(:)*PCONC(:,15) ! -!OH/AROP=0.0 +!OH/ALD2=-K060*<OH> + PJAC(:,15,29)=-TPK%K060(:)*PCONC(:,15) ! -!OH/CARBOP=0.0 +!OH/KETL=-K062*<OH> + PJAC(:,15,30)=-TPK%K062(:)*PCONC(:,15) ! -!OH/OLN=0.0 +!OH/KETH=-K070*<OH> + PJAC(:,15,31)=-TPK%K070(:)*PCONC(:,15) ! -!OH/XO2=0.0 +!OH/MEOH=-K048*<OH> + PJAC(:,15,32)=-TPK%K048(:)*PCONC(:,15) ! -!OH/WC_O3=0.0 +!OH/ETOH=-K053*<OH> + PJAC(:,15,33)=-TPK%K053(:)*PCONC(:,15) ! -!OH/WC_H2O2=0.0 +!OH/ALCH=-K069*<OH> + PJAC(:,15,34)=-TPK%K069(:)*PCONC(:,15) ! -!OH/WC_NO=0.0 +!OH/ISOP=-K064*<OH>+0.664*K066*<O3> + PJAC(:,15,35)=-TPK%K064(:)*PCONC(:,15)+0.664*TPK%K066(:)*PCONC(:,3) ! -!OH/WC_NO2=0.0 +!OH/BIOL=-K084*<OH>+0.89*K086*<O3> + PJAC(:,15,36)=-TPK%K084(:)*PCONC(:,15)+0.89*TPK%K086(:)*PCONC(:,3) ! -!OH/WC_NO3=0.0 +!OH/BIOH=-K088*<OH>+0.89*K090*<O3> + PJAC(:,15,37)=-TPK%K088(:)*PCONC(:,15)+0.89*TPK%K090(:)*PCONC(:,3) ! -!OH/WC_N2O5=0.0 +!OH/MTBE=-K068*<OH> + PJAC(:,15,38)=-TPK%K068(:)*PCONC(:,15) ! -!OH/WC_HONO=0.0 +!OH/MVK=-K272*<OH>+0.36*K281*<O3> + PJAC(:,15,39)=-TPK%K272(:)*PCONC(:,15)+0.36*TPK%K281(:)*PCONC(:,3) ! -!OH/WC_HNO3=0.0 +!OH/MCR=-K273*<OH>+0.82*K282*<O3> + PJAC(:,15,40)=-TPK%K273(:)*PCONC(:,15)+0.82*TPK%K282(:)*PCONC(:,3) ! -!OH/WC_HNO4=0.0 +!OH/MGLY=-K274*<OH> + PJAC(:,15,41)=-TPK%K274(:)*PCONC(:,15) ! -!OH/WC_NH3=0.0 +!OH/GLY=0.0 ! -!OH/WC_OH=+KTC31 - PJAC(:,14,52)=+TPK%KTC31(:) +!OH/ORA1=-K347*<OH> + PJAC(:,15,43)=-TPK%K347(:)*PCONC(:,15) ! -!OH/WC_HO2=0.0 +!OH/ORA2=-K348*<OH> + PJAC(:,15,44)=-TPK%K348(:)*PCONC(:,15) ! -!OH/WC_CO2=0.0 +!OH/ACID=-K349*<OH> + PJAC(:,15,45)=-TPK%K349(:)*PCONC(:,15) ! -!OH/WC_SO2=0.0 +!OH/UR28=0.0 ! -!OH/WC_SULF=0.0 +!OH/UR21=0.0 ! -!OH/WC_HCHO=0.0 +!OH/URG2=0.0 ! -!OH/WC_ORA1=0.0 +!OH/UR26=0.0 ! -!OH/WC_ORA2=0.0 +!OH/RPG2=-K335*<OH> + PJAC(:,15,50)=-TPK%K335(:)*PCONC(:,15) ! -!OH/WC_MO2=0.0 +!OH/RP18=-K337*<OH> + PJAC(:,15,51)=-TPK%K337(:)*PCONC(:,15) ! -!OH/WC_OP1=0.0 +!OH/RPG3=-K334*<OH> + PJAC(:,15,52)=-TPK%K334(:)*PCONC(:,15) ! -!OH/WC_ASO3=0.0 +!OH/URG4=0.0 ! -!OH/WC_ASO4=0.0 +!OH/UR8=0.0 ! -!OH/WC_ASO5=0.0 +!OH/UR17=0.0 ! -!OH/WC_AHSO5=0.0 +!OH/UR7=0.0 ! -!OH/WC_AHMS=0.0 +!OH/RPR3=-K312*<OH> + PJAC(:,15,57)=-TPK%K312(:)*PCONC(:,15) ! -!OH/WR_O3=0.0 +!OH/URG6=0.0 ! -!OH/WR_H2O2=0.0 +!OH/UR22=0.0 ! -!OH/WR_NO=0.0 +!OH/URG7=0.0 ! -!OH/WR_NO2=0.0 +!OH/RPR4=0.0 ! -!OH/WR_NO3=0.0 +!OH/RPR7=-K322*<OH> + PJAC(:,15,62)=-TPK%K322(:)*PCONC(:,15) ! -!OH/WR_N2O5=0.0 +!OH/RPG7=-K323*<OH> + PJAC(:,15,63)=-TPK%K323(:)*PCONC(:,15) ! -!OH/WR_HONO=0.0 +!OH/URG8=0.0 ! -!OH/WR_HNO3=0.0 +!OH/UR19=0.0 ! -!OH/WR_HNO4=0.0 +!OH/URG9=0.0 ! -!OH/WR_NH3=0.0 +!OH/AP7=0.0 ! -!OH/WR_OH=+KTR31 - PJAC(:,14,77)=+TPK%KTR31(:) +!OH/URG10=0.0 ! -!OH/WR_HO2=0.0 +!OH/RPR1=-K304*<OH> + PJAC(:,15,69)=-TPK%K304(:)*PCONC(:,15) ! -!OH/WR_CO2=0.0 +!OH/RPR5=-K303*<OH> + PJAC(:,15,70)=-TPK%K303(:)*PCONC(:,15) ! -!OH/WR_SO2=0.0 +!OH/RPR8=-K324*<OH> + PJAC(:,15,71)=-TPK%K324(:)*PCONC(:,15) ! -!OH/WR_SULF=0.0 +!OH/RP10=-K325*<OH> + PJAC(:,15,72)=-TPK%K325(:)*PCONC(:,15) ! -!OH/WR_HCHO=0.0 +!OH/RP11=-K326*<OH> + PJAC(:,15,73)=-TPK%K326(:)*PCONC(:,15) ! -!OH/WR_ORA1=0.0 +!OH/RP16=-K305*<OH>+K339 + PJAC(:,15,74)=-TPK%K305(:)*PCONC(:,15)+TPK%K339(:) ! -!OH/WR_ORA2=0.0 +!OH/RPRL=-K306*<OH> + PJAC(:,15,75)=-TPK%K306(:)*PCONC(:,15) ! -!OH/WR_MO2=0.0 +!OH/APAN=0.0 ! -!OH/WR_OP1=0.0 +!OH/PAN1=0.0 ! -!OH/WR_ASO3=0.0 +!OH/PAN2=0.0 ! -!OH/WR_ASO4=0.0 +!OH/PAN3=0.0 ! -!OH/WR_ASO5=0.0 +!OH/PAN4=0.0 ! -!OH/WR_AHSO5=0.0 +!OH/PAN6=0.0 ! -!OH/WR_AHMS=0.0 +!OH/PAN7=0.0 ! -!HO2/O3=+K023*<OH>-K024*<HO2>+0.23451*K079*<ALKE>+0.30000*K080*<BIO>+0.28441*K0 -!81*<CARBO>+0.08*K082*<PAN> - PJAC(:,15,1)=+TPK%K023(:)*PCONC(:,14)-TPK%K024(:)*PCONC(:,15)+0.23451*TPK%K079& -&(:)*PCONC(:,19)+0.30000*TPK%K080(:)*PCONC(:,20)+0.28441*TPK%K081(:)*PCONC(:,25& -&)+0.08*TPK%K082(:)*PCONC(:,27) -! -!HO2/H2O2=+K026*<OH> - PJAC(:,15,2)=+TPK%K026(:)*PCONC(:,14) -! -!HO2/NO=-K035*<HO2>+K090*<MO2>+0.74265*K091*<ALKAP>+K092*<ALKEP>+0.84700*K093*< -!BIOP>+0.95115*K094*<AROP>+0.12334*K095*<CARBOP>+0.18401*K096*<OLN> - PJAC(:,15,3)=-TPK%K035(:)*PCONC(:,15)+TPK%K090(:)*PCONC(:,32)+0.74265*TPK%K091& -&(:)*PCONC(:,33)+TPK%K092(:)*PCONC(:,34)+0.84700*TPK%K093(:)*PCONC(:,35)+0.9511& -&5*TPK%K094(:)*PCONC(:,38)+0.12334*TPK%K095(:)*PCONC(:,39)+0.18401*TPK%K096(:)*& -&PCONC(:,40) -! -!HO2/NO2=-K036*<HO2> - PJAC(:,15,4)=-TPK%K036(:)*PCONC(:,15) -! -!HO2/NO3=+K034*<OH>-K038*<HO2>+K072*<HCHO>+0.63217*K074*<CARBO>+K119*<MO2>+0.81 -!290*K120*<ALKAP>+K121*<ALKEP>+K122*<BIOP>+K123*<AROP>+0.04915*K124*<CARBOP>+0. -!25928*K125*<OLN> - PJAC(:,15,5)=+TPK%K034(:)*PCONC(:,14)-TPK%K038(:)*PCONC(:,15)+TPK%K072(:)*PCON& -&C(:,22)+0.63217*TPK%K074(:)*PCONC(:,25)+TPK%K119(:)*PCONC(:,32)+0.81290*TPK%K1& -&20(:)*PCONC(:,33)+TPK%K121(:)*PCONC(:,34)+TPK%K122(:)*PCONC(:,35)+TPK%K123(:)*& -&PCONC(:,38)+0.04915*TPK%K124(:)*PCONC(:,39)+0.25928*TPK%K125(:)*PCONC(:,40) +!OH/PAN8=0.0 ! -!HO2/N2O5=0.0 +!OH/PN10=0.0 ! -!HO2/HONO=0.0 +!OH/RO2T=+K293*<RO251>+K296*<RO252>+K299*<RO253>+K342*<RO258> + PJAC(:,15,85)=+TPK%K293(:)*TPK%RO251(:)+TPK%K296(:)*TPK%RO252(:)+TPK%K299(:)*T& +&PK%RO253(:)+TPK%K342(:)*TPK%RO258(:) ! -!HO2/HNO3=0.0 +!OH/RO21=+K112*<HO2> + PJAC(:,15,86)=+TPK%K112(:)*PCONC(:,10) ! -!HO2/HNO4=+0.65*K006+K037 - PJAC(:,15,9)=+0.65*TPK%K006(:)+TPK%K037(:) +!OH/RO25=+K124*<HO2> + PJAC(:,15,87)=+TPK%K124(:)*PCONC(:,10) ! -!HO2/NH3=0.0 +RETURN +END SUBROUTINE SUBJ2 ! -!HO2/SO2=+K052*<OH> - PJAC(:,15,11)=+TPK%K052(:)*PCONC(:,14) +SUBROUTINE SUBJ3 ! -!HO2/SULF=0.0 +!Indices 16 a 20 ! -!HO2/CO=+K053*<OH> - PJAC(:,15,13)=+TPK%K053(:)*PCONC(:,14) ! -!HO2/OH=+K023*<O3>-K025*<HO2>+K026*<H2O2>+K034*<NO3>+K051*<H2>+K052*<SO2>+K053* -!<CO>+0.12793*K058*<ALKA>+0.10318*K061*<ARO>+K062*<HCHO>+0.51208*K065*<CARBO>+K -!066*<ORA1>+0.02915*K069*<OP2>+0.28107*K070*<PAN> - PJAC(:,15,14)=+TPK%K023(:)*PCONC(:,1)-TPK%K025(:)*PCONC(:,15)+TPK%K026(:)*PCON& -&C(:,2)+TPK%K034(:)*PCONC(:,5)+TPK%K051(:)*TPK%H2(:)+TPK%K052(:)*PCONC(:,11)+TP& -&K%K053(:)*PCONC(:,13)+0.12793*TPK%K058(:)*PCONC(:,18)+0.10318*TPK%K061(:)*PCON& -&C(:,21)+TPK%K062(:)*PCONC(:,22)+0.51208*TPK%K065(:)*PCONC(:,25)+TPK%K066(:)*PC& -&ONC(:,30)+0.02915*TPK%K069(:)*PCONC(:,29)+0.28107*TPK%K070(:)*PCONC(:,27) +!ETHE/NO=0.0 ! -!HO2/HO2=-K024*<O3>-K025*<OH>-K027*<HO2>-K027*<HO2>-K027*<HO2>-K027*<HO2>-K028* -!<HO2>*<H2O>-K028*<HO2>*<H2O>-K028*<HO2>*<H2O>-K028*<HO2>*<H2O>-K035*<NO>-K036* -!<NO2>-K038*<NO3>-K084*<PHO>-K097*<MO2>-K098*<ALKAP>-K099*<ALKEP>-K0100*<BIOP>- -!K0101*<AROP>-K0102*<CARBOP>-K103*<OLN>-K126*<XO2>-KTC12-KTR12 - PJAC(:,15,15)=-TPK%K024(:)*PCONC(:,1)-TPK%K025(:)*PCONC(:,14)-TPK%K027(:)*PCON& -&C(:,15)-TPK%K027(:)*PCONC(:,15)-TPK%K027(:)*PCONC(:,15)-TPK%K027(:)*PCONC(:,15& -&)-TPK%K028(:)*PCONC(:,15)*TPK%H2O(:)-TPK%K028(:)*PCONC(:,15)*TPK%H2O(:)-TPK%K0& -&28(:)*PCONC(:,15)*TPK%H2O(:)-TPK%K028(:)*PCONC(:,15)*TPK%H2O(:)-TPK%K035(:)*PC& -&ONC(:,3)-TPK%K036(:)*PCONC(:,4)-TPK%K038(:)*PCONC(:,5)-TPK%K084(:)*PCONC(:,36)& -&-TPK%K097(:)*PCONC(:,32)-TPK%K098(:)*PCONC(:,33)-TPK%K099(:)*PCONC(:,34)-TPK%K& -&0100(:)*PCONC(:,35)-TPK%K0101(:)*PCONC(:,38)-TPK%K0102(:)*PCONC(:,39)-TPK%K103& -&(:)*PCONC(:,40)-TPK%K126(:)*PCONC(:,41)-TPK%KTC12(:)-TPK%KTR12(:) +!ETHE/NO2=0.0 ! -!HO2/CH4=0.0 +!ETHE/O3=-K051*<ETHE> + PJAC(:,16,3)=-TPK%K051(:)*PCONC(:,16) ! -!HO2/ETH=0.0 +!ETHE/HONO=0.0 ! -!HO2/ALKA=+0.12793*K058*<OH> - PJAC(:,15,18)=+0.12793*TPK%K058(:)*PCONC(:,14) +!ETHE/HNO3=0.0 ! -!HO2/ALKE=+0.23451*K079*<O3> - PJAC(:,15,19)=+0.23451*TPK%K079(:)*PCONC(:,1) +!ETHE/HNO4=0.0 ! -!HO2/BIO=+0.28*K054*<O3P>+0.30000*K080*<O3> - PJAC(:,15,20)=+0.28*TPK%K054(:)*TPK%O3P(:)+0.30000*TPK%K080(:)*PCONC(:,1) +!ETHE/N2O5=0.0 ! -!HO2/ARO=+0.10318*K061*<OH> - PJAC(:,15,21)=+0.10318*TPK%K061(:)*PCONC(:,14) +!ETHE/NO3=-K050*<ETHE> + PJAC(:,16,8)=-TPK%K050(:)*PCONC(:,16) ! -!HO2/HCHO=+K011+K011+K062*<OH>+K072*<NO3> - PJAC(:,15,22)=+TPK%K011(:)+TPK%K011(:)+TPK%K062(:)*PCONC(:,14)+TPK%K072(:)*PCO& -&NC(:,5) +!ETHE/NH3=0.0 ! -!HO2/ALD=+K012 - PJAC(:,15,23)=+TPK%K012(:) +!ETHE/HO2=0.0 ! -!HO2/KET=0.0 +!ETHE/CO=0.0 ! -!HO2/CARBO=+0.75830*K016+0.51208*K065*<OH>+0.63217*K074*<NO3>+0.28441*K081*<O3> - PJAC(:,15,25)=+0.75830*TPK%K016(:)+0.51208*TPK%K065(:)*PCONC(:,14)+0.63217*TPK& -&%K074(:)*PCONC(:,5)+0.28441*TPK%K081(:)*PCONC(:,1) +!ETHE/H2O2=0.0 ! -!HO2/ONIT=+K017 - PJAC(:,15,26)=+TPK%K017(:) +!ETHE/SO2=0.0 ! -!HO2/PAN=+0.28107*K070*<OH>+0.08*K082*<O3> - PJAC(:,15,27)=+0.28107*TPK%K070(:)*PCONC(:,14)+0.08*TPK%K082(:)*PCONC(:,1) +!ETHE/H2SO4=0.0 ! -!HO2/OP1=+K013 - PJAC(:,15,28)=+TPK%K013(:) +!ETHE/OH=-K049*<ETHE> + PJAC(:,16,15)=-TPK%K049(:)*PCONC(:,16) ! -!HO2/OP2=+0.96205*K014+0.02915*K069*<OH> - PJAC(:,15,29)=+0.96205*TPK%K014(:)+0.02915*TPK%K069(:)*PCONC(:,14) +!ETHE/ETHE=-K049*<OH>-K050*<NO3>-K051*<O3>-K052*<O> + PJAC(:,16,16)=-TPK%K049(:)*PCONC(:,15)-TPK%K050(:)*PCONC(:,8)-TPK%K051(:)*PCON& +&C(:,3)-TPK%K052(:)*TPK%O(:) ! -!HO2/ORA1=+K066*<OH> - PJAC(:,15,30)=+TPK%K066(:)*PCONC(:,14) +!ETHE/OLEL=0.0 ! -!HO2/ORA2=0.0 +!ETHE/OLEH=0.0 ! -!HO2/MO2=+K090*<NO>-K097*<HO2>+0.66*K104*<MO2>+0.66*K104*<MO2>+0.98383*K105*<AL -!KAP>+K106*<ALKEP>+1.00000*K107*<BIOP>+1.02767*K108*<AROP>+0.82998*K109*<CARBOP -!>+0.67560*K110*<OLN>+K119*<NO3>+K127*<XO2> - PJAC(:,15,32)=+TPK%K090(:)*PCONC(:,3)-TPK%K097(:)*PCONC(:,15)+0.66*TPK%K104(:)& -&*PCONC(:,32)+0.66*TPK%K104(:)*PCONC(:,32)+0.98383*TPK%K105(:)*PCONC(:,33)+TPK%& -&K106(:)*PCONC(:,34)+1.00000*TPK%K107(:)*PCONC(:,35)+1.02767*TPK%K108(:)*PCONC(& -&:,38)+0.82998*TPK%K109(:)*PCONC(:,39)+0.67560*TPK%K110(:)*PCONC(:,40)+TPK%K119& -&(:)*PCONC(:,5)+TPK%K127(:)*PCONC(:,41) -! -!HO2/ALKAP=+0.74265*K091*<NO>-K098*<HO2>+0.98383*K105*<MO2>+0.48079*K111*<CARBO -!P>+0.81290*K120*<NO3> - PJAC(:,15,33)=+0.74265*TPK%K091(:)*PCONC(:,3)-TPK%K098(:)*PCONC(:,15)+0.98383*& -&TPK%K105(:)*PCONC(:,32)+0.48079*TPK%K111(:)*PCONC(:,39)+0.81290*TPK%K120(:)*PC& -&ONC(:,5) -! -!HO2/ALKEP=+K092*<NO>-K099*<HO2>+K106*<MO2>+0.50078*K112*<CARBOP>+K121*<NO3> - PJAC(:,15,34)=+TPK%K092(:)*PCONC(:,3)-TPK%K099(:)*PCONC(:,15)+TPK%K106(:)*PCON& -&C(:,32)+0.50078*TPK%K112(:)*PCONC(:,39)+TPK%K121(:)*PCONC(:,5) -! -!HO2/BIOP=+0.84700*K093*<NO>-K0100*<HO2>+1.00000*K107*<MO2>+0.50600*K113*<CARBO -!P>+K122*<NO3> - PJAC(:,15,35)=+0.84700*TPK%K093(:)*PCONC(:,3)-TPK%K0100(:)*PCONC(:,15)+1.00000& -&*TPK%K107(:)*PCONC(:,32)+0.50600*TPK%K113(:)*PCONC(:,39)+TPK%K122(:)*PCONC(:,5& -&) +!ETHE/ALKL=0.0 ! -!HO2/PHO=-K084*<HO2> - PJAC(:,15,36)=-TPK%K084(:)*PCONC(:,15) +!ETHE/ALKM=0.0 ! -!HO2/ADD=+0.02*K086*<O2> - PJAC(:,15,37)=+0.02*TPK%K086(:)*TPK%O2(:) +!ETHE/ALKH=0.0 ! -!HO2/AROP=+0.95115*K094*<NO>-K0101*<HO2>+1.02767*K108*<MO2>+K114*<CARBOP>+K123* -!<NO3> - PJAC(:,15,38)=+0.95115*TPK%K094(:)*PCONC(:,3)-TPK%K0101(:)*PCONC(:,15)+1.02767& -&*TPK%K108(:)*PCONC(:,32)+TPK%K114(:)*PCONC(:,39)+TPK%K123(:)*PCONC(:,5) +!ETHE/AROH=0.0 ! -!HO2/CARBOP=+0.12334*K095*<NO>-K0102*<HO2>+0.82998*K109*<MO2>+0.48079*K111*<ALK -!AP>+0.50078*K112*<ALKEP>+0.50600*K113*<BIOP>+K114*<AROP>+0.07566*K115*<CARBOP> -!+0.07566*K115*<CARBOP>+0.17599*K116*<OLN>+0.04915*K124*<NO3> - PJAC(:,15,39)=+0.12334*TPK%K095(:)*PCONC(:,3)-TPK%K0102(:)*PCONC(:,15)+0.82998& -&*TPK%K109(:)*PCONC(:,32)+0.48079*TPK%K111(:)*PCONC(:,33)+0.50078*TPK%K112(:)*P& -&CONC(:,34)+0.50600*TPK%K113(:)*PCONC(:,35)+TPK%K114(:)*PCONC(:,38)+0.07566*TPK& -&%K115(:)*PCONC(:,39)+0.07566*TPK%K115(:)*PCONC(:,39)+0.17599*TPK%K116(:)*PCONC& -&(:,40)+0.04915*TPK%K124(:)*PCONC(:,5) +!ETHE/AROL=0.0 ! -!HO2/OLN=+0.18401*K096*<NO>-K103*<HO2>+0.67560*K110*<MO2>+0.17599*K116*<CARBOP> -!+K117*<OLN>+K117*<OLN>+0.00000*K118*<OLN>+0.00000*K118*<OLN>+0.25928*K125*<NO3 -!> - PJAC(:,15,40)=+0.18401*TPK%K096(:)*PCONC(:,3)-TPK%K103(:)*PCONC(:,15)+0.67560*& -&TPK%K110(:)*PCONC(:,32)+0.17599*TPK%K116(:)*PCONC(:,39)+TPK%K117(:)*PCONC(:,40& -&)+TPK%K117(:)*PCONC(:,40)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K118(:)*& -&PCONC(:,40)+0.25928*TPK%K125(:)*PCONC(:,5) +!ETHE/AROO=0.0 ! -!HO2/XO2=-K126*<HO2>+K127*<MO2> - PJAC(:,15,41)=-TPK%K126(:)*PCONC(:,15)+TPK%K127(:)*PCONC(:,32) +!ETHE/ARAL=0.0 ! -!HO2/WC_O3=0.0 +!ETHE/ARAC=0.0 ! -!HO2/WC_H2O2=0.0 +!ETHE/PAH=0.0 ! -!HO2/WC_NO=0.0 +!ETHE/HCHO=0.0 ! -!HO2/WC_NO2=0.0 +!ETHE/ALD2=0.0 ! -!HO2/WC_NO3=0.0 +!ETHE/KETL=0.0 ! -!HO2/WC_N2O5=0.0 +!ETHE/KETH=0.0 ! -!HO2/WC_HONO=0.0 +!ETHE/MEOH=0.0 ! -!HO2/WC_HNO3=0.0 +!ETHE/ETOH=0.0 ! -!HO2/WC_HNO4=0.0 +!ETHE/ALCH=0.0 ! -!HO2/WC_NH3=0.0 +!ETHE/ISOP=0.0 ! -!HO2/WC_OH=0.0 +!ETHE/BIOL=0.0 ! -!HO2/WC_HO2=+KTC32 - PJAC(:,15,53)=+TPK%KTC32(:) +!ETHE/BIOH=0.0 ! -!HO2/WC_CO2=0.0 +!ETHE/MTBE=0.0 ! -!HO2/WC_SO2=0.0 +!ETHE/MVK=0.0 ! -!HO2/WC_SULF=0.0 +!ETHE/MCR=0.0 ! -!HO2/WC_HCHO=0.0 +!ETHE/MGLY=0.0 ! -!HO2/WC_ORA1=0.0 +!ETHE/GLY=0.0 ! -!HO2/WC_ORA2=0.0 +!ETHE/ORA1=0.0 ! -!HO2/WC_MO2=0.0 +!ETHE/ORA2=0.0 ! -!HO2/WC_OP1=0.0 +!ETHE/ACID=0.0 ! -!HO2/WC_ASO3=0.0 +!ETHE/UR28=0.0 ! -!HO2/WC_ASO4=0.0 +!ETHE/UR21=0.0 ! -!HO2/WC_ASO5=0.0 +!ETHE/URG2=0.0 ! -!HO2/WC_AHSO5=0.0 +!ETHE/UR26=0.0 ! -!HO2/WC_AHMS=0.0 +!ETHE/RPG2=0.0 ! -!HO2/WR_O3=0.0 +!ETHE/RP18=0.0 ! -!HO2/WR_H2O2=0.0 +!ETHE/RPG3=0.0 ! -!HO2/WR_NO=0.0 +!ETHE/URG4=0.0 ! -!HO2/WR_NO2=0.0 +!ETHE/UR8=0.0 ! -!HO2/WR_NO3=0.0 +!ETHE/UR17=0.0 ! -!HO2/WR_N2O5=0.0 +!ETHE/UR7=0.0 ! -!HO2/WR_HONO=0.0 +!ETHE/RPR3=0.0 ! -!HO2/WR_HNO3=0.0 +!ETHE/URG6=0.0 ! -!HO2/WR_HNO4=0.0 +!ETHE/UR22=0.0 ! -!HO2/WR_NH3=0.0 +!ETHE/URG7=0.0 ! -!HO2/WR_OH=0.0 +!ETHE/RPR4=0.0 ! -!HO2/WR_HO2=+KTR32 - PJAC(:,15,78)=+TPK%KTR32(:) +!ETHE/RPR7=0.0 ! -!HO2/WR_CO2=0.0 +!ETHE/RPG7=0.0 ! -!HO2/WR_SO2=0.0 +!ETHE/URG8=0.0 ! -!HO2/WR_SULF=0.0 +!ETHE/UR19=0.0 ! -!HO2/WR_HCHO=0.0 +!ETHE/URG9=0.0 ! -!HO2/WR_ORA1=0.0 +!ETHE/AP7=0.0 ! -!HO2/WR_ORA2=0.0 +!ETHE/URG10=0.0 ! -!HO2/WR_MO2=0.0 +!ETHE/RPR1=0.0 ! -!HO2/WR_OP1=0.0 +!ETHE/RPR5=0.0 ! -!HO2/WR_ASO3=0.0 +!ETHE/RPR8=0.0 ! -!HO2/WR_ASO4=0.0 +!ETHE/RP10=0.0 ! -!HO2/WR_ASO5=0.0 +!ETHE/RP11=0.0 ! -!HO2/WR_AHSO5=0.0 +!ETHE/RP16=0.0 ! -!HO2/WR_AHMS=0.0 +!ETHE/RPRL=0.0 ! -RETURN -END SUBROUTINE SUBJ2 +!ETHE/APAN=0.0 ! -SUBROUTINE SUBJ3 +!ETHE/PAN1=0.0 ! -!Indices 16 a 20 +!ETHE/PAN2=0.0 ! +!ETHE/PAN3=0.0 ! -!CH4/O3=+0.04300*K079*<ALKE> - PJAC(:,16,1)=+0.04300*TPK%K079(:)*PCONC(:,19) +!ETHE/PAN4=0.0 ! -!CH4/H2O2=0.0 +!ETHE/PAN6=0.0 ! -!CH4/NO=0.0 +!ETHE/PAN7=0.0 ! -!CH4/NO2=0.0 +!ETHE/PAN8=0.0 ! -!CH4/NO3=0.0 +!ETHE/PN10=0.0 ! -!CH4/N2O5=0.0 +!ETHE/RO2T=0.0 ! -!CH4/HONO=0.0 +!ETHE/RO21=0.0 ! -!CH4/HNO3=0.0 +!ETHE/RO25=0.0 ! -!CH4/HNO4=0.0 +!OLEL/NO=+TPK%CF5*K150*<RO29>+TPK%CF7*K168*<RO214> + PJAC(:,17,1)=+TPK%CF5*TPK%K150(:)*TPK%RO29(:)+TPK%CF7*TPK%K168(:)*TPK%RO214(:) ! -!CH4/NH3=0.0 +!OLEL/NO2=0.0 ! -!CH4/SO2=0.0 +!OLEL/O3=-K056*<OLEL>+0.054*K066*<ISOP> + PJAC(:,17,3)=-TPK%K056(:)*PCONC(:,17)+0.054*TPK%K066(:)*PCONC(:,35) ! -!CH4/SULF=0.0 +!OLEL/HONO=0.0 ! -!CH4/CO=0.0 +!OLEL/HNO3=0.0 ! -!CH4/OH=-K056*<CH4> - PJAC(:,16,14)=-TPK%K056(:)*PCONC(:,16) +!OLEL/HNO4=0.0 ! -!CH4/HO2=0.0 +!OLEL/N2O5=0.0 ! -!CH4/CH4=-K056*<OH> - PJAC(:,16,16)=-TPK%K056(:)*PCONC(:,14) +!OLEL/NO3=-K055*<OLEL> + PJAC(:,17,8)=-TPK%K055(:)*PCONC(:,17) ! -!CH4/ETH=0.0 +!OLEL/NH3=0.0 ! -!CH4/ALKA=0.0 +!OLEL/HO2=+0.5*K166*<RO239>+0.5*K289*<RO250> + PJAC(:,17,10)=+0.5*TPK%K166(:)*TPK%RO239(:)+0.5*TPK%K289(:)*TPK%RO250(:) ! -!CH4/ALKE=+0.04300*K079*<O3> - PJAC(:,16,19)=+0.04300*TPK%K079(:)*PCONC(:,1) +!OLEL/CO=0.0 ! -!CH4/BIO=0.0 +!OLEL/H2O2=0.0 ! -!CH4/ARO=0.0 +!OLEL/SO2=0.0 ! -!CH4/HCHO=0.0 +!OLEL/H2SO4=0.0 ! -!CH4/ALD=0.0 +!OLEL/OH=-K054*<OLEL> + PJAC(:,17,15)=-TPK%K054(:)*PCONC(:,17) ! -!CH4/KET=0.0 +!OLEL/ETHE=0.0 ! -!CH4/CARBO=0.0 +!OLEL/OLEL=-K054*<OH>-K055*<NO3>-K056*<O3>-K057*<O> + PJAC(:,17,17)=-TPK%K054(:)*PCONC(:,15)-TPK%K055(:)*PCONC(:,8)-TPK%K056(:)*PCON& +&C(:,3)-TPK%K057(:)*TPK%O(:) ! -!CH4/ONIT=0.0 +!OLEL/OLEH=0.0 ! -!CH4/PAN=0.0 +!OLEL/ALKL=0.0 ! -!CH4/OP1=0.0 +!OLEL/ALKM=0.0 ! -!CH4/OP2=0.0 +!OLEL/ALKH=0.0 ! -!CH4/ORA1=0.0 +!OLEL/AROH=0.0 ! -!CH4/ORA2=0.0 +!OLEL/AROL=0.0 ! -!CH4/MO2=0.0 +!OLEL/AROO=0.0 ! -!CH4/ALKAP=0.0 +!OLEL/ARAL=0.0 ! -!CH4/ALKEP=0.0 +!OLEL/ARAC=0.0 ! -!CH4/BIOP=0.0 +!OLEL/PAH=0.0 ! -!CH4/PHO=0.0 +!OLEL/HCHO=0.0 ! -!CH4/ADD=0.0 +!OLEL/ALD2=0.0 ! -!CH4/AROP=0.0 +!OLEL/KETL=0.0 ! -!CH4/CARBOP=0.0 +!OLEL/KETH=0.0 ! -!CH4/OLN=0.0 +!OLEL/MEOH=0.0 ! -!CH4/XO2=0.0 +!OLEL/ETOH=0.0 ! -!CH4/WC_O3=0.0 +!OLEL/ALCH=0.0 ! -!CH4/WC_H2O2=0.0 +!OLEL/ISOP=+0.054*K066*<O3>+0.925*K067*<O> + PJAC(:,17,35)=+0.054*TPK%K066(:)*PCONC(:,3)+0.925*TPK%K067(:)*TPK%O(:) ! -!CH4/WC_NO=0.0 +!OLEL/BIOL=0.0 ! -!CH4/WC_NO2=0.0 +!OLEL/BIOH=0.0 ! -!CH4/WC_NO3=0.0 +!OLEL/MTBE=0.0 ! -!CH4/WC_N2O5=0.0 +!OLEL/MVK=0.0 ! -!CH4/WC_HONO=0.0 +!OLEL/MCR=0.0 ! -!CH4/WC_HNO3=0.0 +!OLEL/MGLY=0.0 ! -!CH4/WC_HNO4=0.0 +!OLEL/GLY=0.0 ! -!CH4/WC_NH3=0.0 +!OLEL/ORA1=0.0 ! -!CH4/WC_OH=0.0 +!OLEL/ORA2=0.0 ! -!CH4/WC_HO2=0.0 +!OLEL/ACID=0.0 ! -!CH4/WC_CO2=0.0 +!OLEL/UR28=0.0 ! -!CH4/WC_SO2=0.0 +!OLEL/UR21=0.0 ! -!CH4/WC_SULF=0.0 +!OLEL/URG2=0.0 ! -!CH4/WC_HCHO=0.0 +!OLEL/UR26=0.0 ! -!CH4/WC_ORA1=0.0 +!OLEL/RPG2=0.0 ! -!CH4/WC_ORA2=0.0 +!OLEL/RP18=0.0 ! -!CH4/WC_MO2=0.0 +!OLEL/RPG3=0.0 ! -!CH4/WC_OP1=0.0 +!OLEL/URG4=0.0 ! -!CH4/WC_ASO3=0.0 +!OLEL/UR8=0.0 ! -!CH4/WC_ASO4=0.0 +!OLEL/UR17=0.0 ! -!CH4/WC_ASO5=0.0 +!OLEL/UR7=0.0 ! -!CH4/WC_AHSO5=0.0 +!OLEL/RPR3=0.0 ! -!CH4/WC_AHMS=0.0 +!OLEL/URG6=0.0 ! -!CH4/WR_O3=0.0 +!OLEL/UR22=0.0 ! -!CH4/WR_H2O2=0.0 +!OLEL/URG7=0.0 ! -!CH4/WR_NO=0.0 +!OLEL/RPR4=0.0 ! -!CH4/WR_NO2=0.0 +!OLEL/RPR7=0.0 ! -!CH4/WR_NO3=0.0 +!OLEL/RPG7=0.0 ! -!CH4/WR_N2O5=0.0 +!OLEL/URG8=0.0 ! -!CH4/WR_HONO=0.0 +!OLEL/UR19=0.0 ! -!CH4/WR_HNO3=0.0 +!OLEL/URG9=0.0 ! -!CH4/WR_HNO4=0.0 +!OLEL/AP7=0.0 ! -!CH4/WR_NH3=0.0 +!OLEL/URG10=0.0 ! -!CH4/WR_OH=0.0 +!OLEL/RPR1=0.0 ! -!CH4/WR_HO2=0.0 +!OLEL/RPR5=0.0 ! -!CH4/WR_CO2=0.0 +!OLEL/RPR8=0.0 ! -!CH4/WR_SO2=0.0 +!OLEL/RP10=0.0 ! -!CH4/WR_SULF=0.0 +!OLEL/RP11=0.0 ! -!CH4/WR_HCHO=0.0 +!OLEL/RP16=0.0 ! -!CH4/WR_ORA1=0.0 +!OLEL/RPRL=0.0 ! -!CH4/WR_ORA2=0.0 +!OLEL/APAN=0.0 ! -!CH4/WR_MO2=0.0 +!OLEL/PAN1=0.0 ! -!CH4/WR_OP1=0.0 +!OLEL/PAN2=0.0 ! -!CH4/WR_ASO3=0.0 +!OLEL/PAN3=0.0 ! -!CH4/WR_ASO4=0.0 +!OLEL/PAN4=0.0 ! -!CH4/WR_ASO5=0.0 +!OLEL/PAN6=0.0 ! -!CH4/WR_AHSO5=0.0 +!OLEL/PAN7=0.0 ! -!CH4/WR_AHMS=0.0 +!OLEL/PAN8=0.0 ! -!ETH/O3=+0.03196*K079*<ALKE> - PJAC(:,17,1)=+0.03196*TPK%K079(:)*PCONC(:,19) +!OLEL/PN10=0.0 ! -!ETH/H2O2=0.0 +!OLEL/RO2T=0.0 ! -!ETH/NO=0.0 +!OLEL/RO21=0.0 ! -!ETH/NO2=0.0 +!OLEL/RO25=0.0 ! -!ETH/NO3=0.0 +!OLEH/NO=0.0 ! -!ETH/N2O5=0.0 +!OLEH/NO2=0.0 ! -!ETH/HONO=0.0 +!OLEH/O3=-K076*<OLEH> + PJAC(:,18,3)=-TPK%K076(:)*PCONC(:,18) ! -!ETH/HNO3=0.0 +!OLEH/HONO=0.0 ! -!ETH/HNO4=0.0 +!OLEH/HNO3=0.0 ! -!ETH/NH3=0.0 +!OLEH/HNO4=0.0 ! -!ETH/SO2=0.0 +!OLEH/N2O5=0.0 ! -!ETH/SULF=0.0 +!OLEH/NO3=-K075*<OLEH> + PJAC(:,18,8)=-TPK%K075(:)*PCONC(:,18) ! -!ETH/CO=0.0 +!OLEH/NH3=0.0 ! -!ETH/OH=-K057*<ETH> - PJAC(:,17,14)=-TPK%K057(:)*PCONC(:,17) +!OLEH/HO2=0.0 ! -!ETH/HO2=0.0 +!OLEH/CO=0.0 ! -!ETH/CH4=0.0 +!OLEH/H2O2=0.0 ! -!ETH/ETH=-K057*<OH> - PJAC(:,17,17)=-TPK%K057(:)*PCONC(:,14) +!OLEH/SO2=0.0 ! -!ETH/ALKA=0.0 +!OLEH/H2SO4=0.0 ! -!ETH/ALKE=+0.03196*K079*<O3> - PJAC(:,17,19)=+0.03196*TPK%K079(:)*PCONC(:,1) +!OLEH/OH=-K074*<OLEH> + PJAC(:,18,15)=-TPK%K074(:)*PCONC(:,18) ! -!ETH/BIO=0.0 +!OLEH/ETHE=0.0 ! -!ETH/ARO=0.0 +!OLEH/OLEL=0.0 ! -!ETH/HCHO=0.0 +!OLEH/OLEH=-K074*<OH>-K075*<NO3>-K076*<O3>-K077*<O> + PJAC(:,18,18)=-TPK%K074(:)*PCONC(:,15)-TPK%K075(:)*PCONC(:,8)-TPK%K076(:)*PCON& +&C(:,3)-TPK%K077(:)*TPK%O(:) ! -!ETH/ALD=0.0 +!OLEH/ALKL=0.0 ! -!ETH/KET=0.0 +!OLEH/ALKM=0.0 ! -!ETH/CARBO=0.0 +!OLEH/ALKH=0.0 ! -!ETH/ONIT=0.0 +!OLEH/AROH=0.0 ! -!ETH/PAN=0.0 +!OLEH/AROL=0.0 ! -!ETH/OP1=0.0 +!OLEH/AROO=0.0 ! -!ETH/OP2=0.0 +!OLEH/ARAL=0.0 ! -!ETH/ORA1=0.0 +!OLEH/ARAC=0.0 ! -!ETH/ORA2=0.0 +!OLEH/PAH=0.0 ! -!ETH/MO2=0.0 +!OLEH/HCHO=0.0 ! -!ETH/ALKAP=0.0 +!OLEH/ALD2=0.0 ! -!ETH/ALKEP=0.0 +!OLEH/KETL=0.0 ! -!ETH/BIOP=0.0 +!OLEH/KETH=0.0 ! -!ETH/PHO=0.0 +!OLEH/MEOH=0.0 ! -!ETH/ADD=0.0 +!OLEH/ETOH=0.0 ! -!ETH/AROP=0.0 +!OLEH/ALCH=0.0 ! -!ETH/CARBOP=0.0 +!OLEH/ISOP=0.0 ! -!ETH/OLN=0.0 +!OLEH/BIOL=0.0 ! -!ETH/XO2=0.0 +!OLEH/BIOH=0.0 ! -!ETH/WC_O3=0.0 +!OLEH/MTBE=0.0 ! -!ETH/WC_H2O2=0.0 +!OLEH/MVK=0.0 ! -!ETH/WC_NO=0.0 +!OLEH/MCR=0.0 ! -!ETH/WC_NO2=0.0 +!OLEH/MGLY=0.0 ! -!ETH/WC_NO3=0.0 +!OLEH/GLY=0.0 ! -!ETH/WC_N2O5=0.0 +!OLEH/ORA1=0.0 ! -!ETH/WC_HONO=0.0 +!OLEH/ORA2=0.0 ! -!ETH/WC_HNO3=0.0 +!OLEH/ACID=0.0 ! -!ETH/WC_HNO4=0.0 +!OLEH/UR28=0.0 ! -!ETH/WC_NH3=0.0 +!OLEH/UR21=0.0 ! -!ETH/WC_OH=0.0 +!OLEH/URG2=0.0 ! -!ETH/WC_HO2=0.0 +!OLEH/UR26=0.0 ! -!ETH/WC_CO2=0.0 +!OLEH/RPG2=0.0 ! -!ETH/WC_SO2=0.0 +!OLEH/RP18=0.0 ! -!ETH/WC_SULF=0.0 +!OLEH/RPG3=0.0 ! -!ETH/WC_HCHO=0.0 +!OLEH/URG4=0.0 ! -!ETH/WC_ORA1=0.0 +!OLEH/UR8=0.0 ! -!ETH/WC_ORA2=0.0 +!OLEH/UR17=0.0 ! -!ETH/WC_MO2=0.0 +!OLEH/UR7=0.0 ! -!ETH/WC_OP1=0.0 +!OLEH/RPR3=0.0 ! -!ETH/WC_ASO3=0.0 +!OLEH/URG6=0.0 ! -!ETH/WC_ASO4=0.0 +!OLEH/UR22=0.0 ! -!ETH/WC_ASO5=0.0 +!OLEH/URG7=0.0 ! -!ETH/WC_AHSO5=0.0 +!OLEH/RPR4=0.0 ! -!ETH/WC_AHMS=0.0 +!OLEH/RPR7=0.0 ! -!ETH/WR_O3=0.0 +!OLEH/RPG7=0.0 ! -!ETH/WR_H2O2=0.0 +!OLEH/URG8=0.0 ! -!ETH/WR_NO=0.0 +!OLEH/UR19=0.0 ! -!ETH/WR_NO2=0.0 +!OLEH/URG9=0.0 ! -!ETH/WR_NO3=0.0 +!OLEH/AP7=0.0 ! -!ETH/WR_N2O5=0.0 +!OLEH/URG10=0.0 ! -!ETH/WR_HONO=0.0 +!OLEH/RPR1=0.0 ! -!ETH/WR_HNO3=0.0 +!OLEH/RPR5=0.0 ! -!ETH/WR_HNO4=0.0 +!OLEH/RPR8=0.0 ! -!ETH/WR_NH3=0.0 +!OLEH/RP10=0.0 ! -!ETH/WR_OH=0.0 +!OLEH/RP11=0.0 ! -!ETH/WR_HO2=0.0 +!OLEH/RP16=0.0 ! -!ETH/WR_CO2=0.0 +!OLEH/RPRL=0.0 ! -!ETH/WR_SO2=0.0 +!OLEH/APAN=0.0 ! -!ETH/WR_SULF=0.0 +!OLEH/PAN1=0.0 ! -!ETH/WR_HCHO=0.0 +!OLEH/PAN2=0.0 ! -!ETH/WR_ORA1=0.0 +!OLEH/PAN3=0.0 ! -!ETH/WR_ORA2=0.0 +!OLEH/PAN4=0.0 ! -!ETH/WR_MO2=0.0 +!OLEH/PAN6=0.0 ! -!ETH/WR_OP1=0.0 +!OLEH/PAN7=0.0 ! -!ETH/WR_ASO3=0.0 +!OLEH/PAN8=0.0 ! -!ETH/WR_ASO4=0.0 +!OLEH/PN10=0.0 ! -!ETH/WR_ASO5=0.0 +!OLEH/RO2T=0.0 ! -!ETH/WR_AHSO5=0.0 +!OLEH/RO21=0.0 ! -!ETH/WR_AHMS=0.0 +!OLEH/RO25=0.0 ! -!ALKA/O3=0.0 +!ALKL/NO=+TPK%CF3*K122*<RO25>+TPK%CF12*K171*<RO215> + PJAC(:,19,1)=+TPK%CF3*TPK%K122(:)*PCONC(:,87)+TPK%CF12*TPK%K171(:)*TPK%RO215(:& +&) ! -!ALKA/H2O2=0.0 +!ALKL/NO2=0.0 ! -!ALKA/NO=0.0 +!ALKL/O3=+0.1*K056*<OLEL> + PJAC(:,19,3)=+0.1*TPK%K056(:)*PCONC(:,17) ! -!ALKA/NO2=0.0 +!ALKL/HONO=0.0 ! -!ALKA/NO3=0.0 +!ALKL/HNO3=0.0 ! -!ALKA/N2O5=0.0 +!ALKL/HNO4=0.0 ! -!ALKA/HONO=0.0 +!ALKL/N2O5=0.0 ! -!ALKA/HNO3=0.0 +!ALKL/NO3=0.0 ! -!ALKA/HNO4=0.0 +!ALKL/NH3=0.0 ! -!ALKA/NH3=0.0 +!ALKL/HO2=+TPK%CF16*K173*<RO215> + PJAC(:,19,10)=+TPK%CF16*TPK%K173(:)*TPK%RO215(:) ! -!ALKA/SO2=0.0 +!ALKL/CO=0.0 ! -!ALKA/SULF=0.0 +!ALKL/H2O2=0.0 ! -!ALKA/CO=0.0 +!ALKL/SO2=0.0 ! -!ALKA/OH=-K058*<ALKA> - PJAC(:,18,14)=-TPK%K058(:)*PCONC(:,18) +!ALKL/H2SO4=0.0 ! -!ALKA/HO2=0.0 +!ALKL/OH=-K058*<ALKL> + PJAC(:,19,15)=-TPK%K058(:)*PCONC(:,19) ! -!ALKA/CH4=0.0 +!ALKL/ETHE=0.0 ! -!ALKA/ETH=0.0 +!ALKL/OLEL=+0.1*K056*<O3>+0.5*K057*<O> + PJAC(:,19,17)=+0.1*TPK%K056(:)*PCONC(:,3)+0.5*TPK%K057(:)*TPK%O(:) ! -!ALKA/ALKA=-K058*<OH> - PJAC(:,18,18)=-TPK%K058(:)*PCONC(:,14) +!ALKL/OLEH=0.0 ! -!ALKA/ALKE=0.0 +!ALKL/ALKL=-K058*<OH> + PJAC(:,19,19)=-TPK%K058(:)*PCONC(:,15) ! -!ALKA/BIO=0.0 +!ALKL/ALKM=0.0 ! -!ALKA/ARO=0.0 +!ALKL/ALKH=0.0 ! -!ALKA/HCHO=0.0 +!ALKL/AROH=0.0 ! -!ALKA/ALD=0.0 +!ALKL/AROL=0.0 ! -!ALKA/KET=0.0 +!ALKL/AROO=0.0 ! -!ALKA/CARBO=0.0 +!ALKL/ARAL=0.0 ! -!ALKA/ONIT=0.0 +!ALKL/ARAC=0.0 ! -!ALKA/PAN=0.0 +!ALKL/PAH=0.0 ! -!ALKA/OP1=0.0 +!ALKL/HCHO=0.0 ! -!ALKA/OP2=0.0 +!ALKL/ALD2=0.0 ! -!ALKA/ORA1=0.0 +!ALKL/KETL=0.0 ! -!ALKA/ORA2=0.0 +!ALKL/KETH=0.0 ! -!ALKA/MO2=0.0 +!ALKL/MEOH=0.0 ! -!ALKA/ALKAP=0.0 +!ALKL/ETOH=0.0 ! -!ALKA/ALKEP=0.0 +!ALKL/ALCH=0.0 ! -!ALKA/BIOP=0.0 +!ALKL/ISOP=0.0 ! -!ALKA/PHO=0.0 +!ALKL/BIOL=0.0 ! -!ALKA/ADD=0.0 +!ALKL/BIOH=0.0 ! -!ALKA/AROP=0.0 +!ALKL/MTBE=0.0 ! -!ALKA/CARBOP=0.0 +!ALKL/MVK=0.0 ! -!ALKA/OLN=0.0 +!ALKL/MCR=0.0 ! -!ALKA/XO2=0.0 +!ALKL/MGLY=0.0 ! -!ALKA/WC_O3=0.0 +!ALKL/GLY=0.0 ! -!ALKA/WC_H2O2=0.0 +!ALKL/ORA1=0.0 ! -!ALKA/WC_NO=0.0 +!ALKL/ORA2=0.0 ! -!ALKA/WC_NO2=0.0 +!ALKL/ACID=0.0 ! -!ALKA/WC_NO3=0.0 +!ALKL/UR28=0.0 ! -!ALKA/WC_N2O5=0.0 +!ALKL/UR21=0.0 ! -!ALKA/WC_HONO=0.0 +!ALKL/URG2=0.0 ! -!ALKA/WC_HNO3=0.0 +!ALKL/UR26=0.0 ! -!ALKA/WC_HNO4=0.0 +!ALKL/RPG2=0.0 ! -!ALKA/WC_NH3=0.0 +!ALKL/RP18=0.0 ! -!ALKA/WC_OH=0.0 +!ALKL/RPG3=0.0 ! -!ALKA/WC_HO2=0.0 +!ALKL/URG4=0.0 ! -!ALKA/WC_CO2=0.0 +!ALKL/UR8=0.0 ! -!ALKA/WC_SO2=0.0 +!ALKL/UR17=0.0 ! -!ALKA/WC_SULF=0.0 +!ALKL/UR7=0.0 ! -!ALKA/WC_HCHO=0.0 +!ALKL/RPR3=0.0 ! -!ALKA/WC_ORA1=0.0 +!ALKL/URG6=0.0 ! -!ALKA/WC_ORA2=0.0 +!ALKL/UR22=0.0 ! -!ALKA/WC_MO2=0.0 +!ALKL/URG7=0.0 ! -!ALKA/WC_OP1=0.0 +!ALKL/RPR4=0.0 ! -!ALKA/WC_ASO3=0.0 +!ALKL/RPR7=0.0 ! -!ALKA/WC_ASO4=0.0 +!ALKL/RPG7=0.0 ! -!ALKA/WC_ASO5=0.0 +!ALKL/URG8=0.0 ! -!ALKA/WC_AHSO5=0.0 +!ALKL/UR19=0.0 ! -!ALKA/WC_AHMS=0.0 +!ALKL/URG9=0.0 ! -!ALKA/WR_O3=0.0 +!ALKL/AP7=0.0 ! -!ALKA/WR_H2O2=0.0 +!ALKL/URG10=0.0 ! -!ALKA/WR_NO=0.0 +!ALKL/RPR1=0.0 ! -!ALKA/WR_NO2=0.0 +!ALKL/RPR5=0.0 ! -!ALKA/WR_NO3=0.0 +!ALKL/RPR8=0.0 ! -!ALKA/WR_N2O5=0.0 +!ALKL/RP10=0.0 ! -!ALKA/WR_HONO=0.0 +!ALKL/RP11=0.0 ! -!ALKA/WR_HNO3=0.0 +!ALKL/RP16=0.0 ! -!ALKA/WR_HNO4=0.0 +!ALKL/RPRL=0.0 ! -!ALKA/WR_NH3=0.0 +!ALKL/APAN=0.0 ! -!ALKA/WR_OH=0.0 +!ALKL/PAN1=0.0 ! -!ALKA/WR_HO2=0.0 +!ALKL/PAN2=0.0 ! -!ALKA/WR_CO2=0.0 +!ALKL/PAN3=0.0 ! -!ALKA/WR_SO2=0.0 +!ALKL/PAN4=0.0 ! -!ALKA/WR_SULF=0.0 +!ALKL/PAN6=0.0 ! -!ALKA/WR_HCHO=0.0 +!ALKL/PAN7=0.0 ! -!ALKA/WR_ORA1=0.0 +!ALKL/PAN8=0.0 ! -!ALKA/WR_ORA2=0.0 +!ALKL/PN10=0.0 ! -!ALKA/WR_MO2=0.0 +!ALKL/RO2T=+TPK%CF16*K172*<RO215> + PJAC(:,19,85)=+TPK%CF16*TPK%K172(:)*TPK%RO215(:) ! -!ALKA/WR_OP1=0.0 +!ALKL/RO21=0.0 ! -!ALKA/WR_ASO3=0.0 +!ALKL/RO25=+TPK%CF3*K122*<NO> + PJAC(:,19,87)=+TPK%CF3*TPK%K122(:)*PCONC(:,1) ! -!ALKA/WR_ASO4=0.0 +!ALKM/NO=0.0 ! -!ALKA/WR_ASO5=0.0 +!ALKM/NO2=0.0 ! -!ALKA/WR_AHSO5=0.0 +!ALKM/O3=+0.1*K076*<OLEH> + PJAC(:,20,3)=+0.1*TPK%K076(:)*PCONC(:,18) ! -!ALKA/WR_AHMS=0.0 +!ALKM/HONO=0.0 ! -!ALKE/O3=+0.00000*K079*<ALKE>-K079*<ALKE>+0.37388*K080*<BIO> - PJAC(:,19,1)=+0.00000*TPK%K079(:)*PCONC(:,19)-TPK%K079(:)*PCONC(:,19)+0.37388*& -&TPK%K080(:)*PCONC(:,20) +!ALKM/HNO3=0.0 ! -!ALKE/H2O2=0.0 +!ALKM/HNO4=0.0 ! -!ALKE/NO=+0.37815*K093*<BIOP> - PJAC(:,19,3)=+0.37815*TPK%K093(:)*PCONC(:,35) +!ALKM/N2O5=0.0 ! -!ALKE/NO2=0.0 +!ALKM/NO3=0.0 ! -!ALKE/NO3=-K076*<ALKE>+0.42729*K122*<BIOP> - PJAC(:,19,5)=-TPK%K076(:)*PCONC(:,19)+0.42729*TPK%K122(:)*PCONC(:,35) +!ALKM/NH3=0.0 ! -!ALKE/N2O5=0.0 +!ALKM/HO2=0.0 ! -!ALKE/HONO=0.0 +!ALKM/CO=0.0 ! -!ALKE/HNO3=0.0 +!ALKM/H2O2=0.0 ! -!ALKE/HNO4=0.0 +!ALKM/SO2=0.0 ! -!ALKE/NH3=0.0 +!ALKM/H2SO4=0.0 ! -!ALKE/SO2=0.0 +!ALKM/OH=-K078*<ALKM> + PJAC(:,20,15)=-TPK%K078(:)*PCONC(:,20) ! -!ALKE/SULF=0.0 +!ALKM/ETHE=0.0 ! -!ALKE/CO=0.0 +!ALKM/OLEL=0.0 ! -!ALKE/OH=-K059*<ALKE> - PJAC(:,19,14)=-TPK%K059(:)*PCONC(:,19) +!ALKM/OLEH=+0.1*K076*<O3>+0.5*K077*<O> + PJAC(:,20,18)=+0.1*TPK%K076(:)*PCONC(:,3)+0.5*TPK%K077(:)*TPK%O(:) ! -!ALKE/HO2=0.0 +!ALKM/ALKL=0.0 ! -!ALKE/CH4=0.0 +!ALKM/ALKM=-K078*<OH> + PJAC(:,20,20)=-TPK%K078(:)*PCONC(:,15) ! -!ALKE/ETH=0.0 +!ALKM/ALKH=0.0 ! -!ALKE/ALKA=0.0 +!ALKM/AROH=0.0 ! -!ALKE/ALKE=-K059*<OH>-K076*<NO3>+0.00000*K079*<O3>-K079*<O3> - PJAC(:,19,19)=-TPK%K059(:)*PCONC(:,14)-TPK%K076(:)*PCONC(:,5)+0.00000*TPK%K079& -&(:)*PCONC(:,1)-TPK%K079(:)*PCONC(:,1) +!ALKM/AROL=0.0 ! -!ALKE/BIO=+0.91868*K054*<O3P>+0.37388*K080*<O3> - PJAC(:,19,20)=+0.91868*TPK%K054(:)*TPK%O3P(:)+0.37388*TPK%K080(:)*PCONC(:,1) +!ALKM/AROO=0.0 ! -!ALKE/ARO=0.0 +!ALKM/ARAL=0.0 ! -!ALKE/HCHO=0.0 +!ALKM/ARAC=0.0 ! -!ALKE/ALD=0.0 +!ALKM/PAH=0.0 ! -!ALKE/KET=0.0 +!ALKM/HCHO=0.0 ! -!ALKE/CARBO=0.0 +!ALKM/ALD2=0.0 ! -!ALKE/ONIT=0.0 +!ALKM/KETL=0.0 ! -!ALKE/PAN=0.0 +!ALKM/KETH=0.0 ! -!ALKE/OP1=0.0 +!ALKM/MEOH=0.0 ! -!ALKE/OP2=0.0 +!ALKM/ETOH=0.0 ! -!ALKE/ORA1=0.0 +!ALKM/ALCH=0.0 ! -!ALKE/ORA2=0.0 +!ALKM/ISOP=0.0 ! -!ALKE/MO2=+0.48074*K107*<BIOP> - PJAC(:,19,32)=+0.48074*TPK%K107(:)*PCONC(:,35) +!ALKM/BIOL=0.0 ! -!ALKE/ALKAP=0.0 +!ALKM/BIOH=0.0 ! -!ALKE/ALKEP=0.0 +!ALKM/MTBE=0.0 ! -!ALKE/BIOP=+0.37815*K093*<NO>+0.48074*K107*<MO2>+0.24463*K113*<CARBOP>+0.42729* -!K122*<NO3> - PJAC(:,19,35)=+0.37815*TPK%K093(:)*PCONC(:,3)+0.48074*TPK%K107(:)*PCONC(:,32)+& -&0.24463*TPK%K113(:)*PCONC(:,39)+0.42729*TPK%K122(:)*PCONC(:,5) +!ALKM/MVK=0.0 ! -!ALKE/PHO=0.0 +!ALKM/MCR=0.0 ! -!ALKE/ADD=0.0 +!ALKM/MGLY=0.0 ! -!ALKE/AROP=0.0 +!ALKM/GLY=0.0 ! -!ALKE/CARBOP=+0.24463*K113*<BIOP> - PJAC(:,19,39)=+0.24463*TPK%K113(:)*PCONC(:,35) +!ALKM/ORA1=0.0 ! -!ALKE/OLN=0.0 +!ALKM/ORA2=0.0 ! -!ALKE/XO2=0.0 +!ALKM/ACID=0.0 ! -!ALKE/WC_O3=0.0 +!ALKM/UR28=0.0 ! -!ALKE/WC_H2O2=0.0 +!ALKM/UR21=0.0 ! -!ALKE/WC_NO=0.0 +!ALKM/URG2=0.0 ! -!ALKE/WC_NO2=0.0 +!ALKM/UR26=0.0 ! -!ALKE/WC_NO3=0.0 +!ALKM/RPG2=0.0 ! -!ALKE/WC_N2O5=0.0 +!ALKM/RP18=0.0 ! -!ALKE/WC_HONO=0.0 +!ALKM/RPG3=0.0 ! -!ALKE/WC_HNO3=0.0 +!ALKM/URG4=0.0 ! -!ALKE/WC_HNO4=0.0 +!ALKM/UR8=0.0 ! -!ALKE/WC_NH3=0.0 +!ALKM/UR17=0.0 ! -!ALKE/WC_OH=0.0 +!ALKM/UR7=0.0 ! -!ALKE/WC_HO2=0.0 +!ALKM/RPR3=0.0 ! -!ALKE/WC_CO2=0.0 +!ALKM/URG6=0.0 ! -!ALKE/WC_SO2=0.0 +!ALKM/UR22=0.0 ! -!ALKE/WC_SULF=0.0 +!ALKM/URG7=0.0 ! -!ALKE/WC_HCHO=0.0 +!ALKM/RPR4=0.0 ! -!ALKE/WC_ORA1=0.0 +!ALKM/RPR7=0.0 ! -!ALKE/WC_ORA2=0.0 +!ALKM/RPG7=0.0 ! -!ALKE/WC_MO2=0.0 +!ALKM/URG8=0.0 ! -!ALKE/WC_OP1=0.0 +!ALKM/UR19=0.0 ! -!ALKE/WC_ASO3=0.0 +!ALKM/URG9=0.0 ! -!ALKE/WC_ASO4=0.0 +!ALKM/AP7=0.0 ! -!ALKE/WC_ASO5=0.0 +!ALKM/URG10=0.0 ! -!ALKE/WC_AHSO5=0.0 +!ALKM/RPR1=0.0 ! -!ALKE/WC_AHMS=0.0 +!ALKM/RPR5=0.0 ! -!ALKE/WR_O3=0.0 +!ALKM/RPR8=0.0 ! -!ALKE/WR_H2O2=0.0 +!ALKM/RP10=0.0 ! -!ALKE/WR_NO=0.0 +!ALKM/RP11=0.0 ! -!ALKE/WR_NO2=0.0 +!ALKM/RP16=0.0 ! -!ALKE/WR_NO3=0.0 +!ALKM/RPRL=0.0 ! -!ALKE/WR_N2O5=0.0 +!ALKM/APAN=0.0 ! -!ALKE/WR_HONO=0.0 +!ALKM/PAN1=0.0 ! -!ALKE/WR_HNO3=0.0 +!ALKM/PAN2=0.0 ! -!ALKE/WR_HNO4=0.0 +!ALKM/PAN3=0.0 ! -!ALKE/WR_NH3=0.0 +!ALKM/PAN4=0.0 ! -!ALKE/WR_OH=0.0 +!ALKM/PAN6=0.0 ! -!ALKE/WR_HO2=0.0 +!ALKM/PAN7=0.0 ! -!ALKE/WR_CO2=0.0 +!ALKM/PAN8=0.0 ! -!ALKE/WR_SO2=0.0 +!ALKM/PN10=0.0 ! -!ALKE/WR_SULF=0.0 +!ALKM/RO2T=0.0 ! -!ALKE/WR_HCHO=0.0 +!ALKM/RO21=0.0 ! -!ALKE/WR_ORA1=0.0 +!ALKM/RO25=0.0 ! -!ALKE/WR_ORA2=0.0 +RETURN +END SUBROUTINE SUBJ3 ! -!ALKE/WR_MO2=0.0 +SUBROUTINE SUBJ4 ! -!ALKE/WR_OP1=0.0 +!Indices 21 a 25 ! -!ALKE/WR_ASO3=0.0 ! -!ALKE/WR_ASO4=0.0 +!ALKH/NO=0.0 ! -!ALKE/WR_ASO5=0.0 +!ALKH/NO2=0.0 ! -!ALKE/WR_AHSO5=0.0 +!ALKH/O3=0.0 ! -!ALKE/WR_AHMS=0.0 +!ALKH/HONO=0.0 ! -!BIO/O3=-K080*<BIO> - PJAC(:,20,1)=-TPK%K080(:)*PCONC(:,20) +!ALKH/HNO3=0.0 ! -!BIO/H2O2=0.0 +!ALKH/HNO4=0.0 ! -!BIO/NO=0.0 +!ALKH/N2O5=0.0 ! -!BIO/NO2=0.0 +!ALKH/NO3=0.0 ! -!BIO/NO3=-K077*<BIO> - PJAC(:,20,5)=-TPK%K077(:)*PCONC(:,20) +!ALKH/NH3=0.0 ! -!BIO/N2O5=0.0 +!ALKH/HO2=0.0 ! -!BIO/HONO=0.0 +!ALKH/CO=0.0 ! -!BIO/HNO3=0.0 +!ALKH/H2O2=0.0 ! -!BIO/HNO4=0.0 +!ALKH/SO2=0.0 ! -!BIO/NH3=0.0 +!ALKH/H2SO4=0.0 ! -!BIO/SO2=0.0 +!ALKH/OH=-K093*<ALKH> + PJAC(:,21,15)=-TPK%K093(:)*PCONC(:,21) ! -!BIO/SULF=0.0 +!ALKH/ETHE=0.0 ! -!BIO/CO=0.0 +!ALKH/OLEL=0.0 ! -!BIO/OH=-K060*<BIO> - PJAC(:,20,14)=-TPK%K060(:)*PCONC(:,20) +!ALKH/OLEH=0.0 ! -!BIO/HO2=0.0 +!ALKH/ALKL=0.0 ! -!BIO/CH4=0.0 +!ALKH/ALKM=0.0 ! -!BIO/ETH=0.0 +!ALKH/ALKH=-K093*<OH> + PJAC(:,21,21)=-TPK%K093(:)*PCONC(:,15) ! -!BIO/ALKA=0.0 +!ALKH/AROH=0.0 ! -!BIO/ALKE=0.0 +!ALKH/AROL=0.0 ! -!BIO/BIO=-K054*<O3P>-K060*<OH>-K077*<NO3>-K080*<O3> - PJAC(:,20,20)=-TPK%K054(:)*TPK%O3P(:)-TPK%K060(:)*PCONC(:,14)-TPK%K077(:)*PCON& -&C(:,5)-TPK%K080(:)*PCONC(:,1) +!ALKH/AROO=0.0 ! -!BIO/ARO=0.0 +!ALKH/ARAL=0.0 ! -!BIO/HCHO=0.0 +!ALKH/ARAC=0.0 ! -!BIO/ALD=0.0 +!ALKH/PAH=0.0 ! -!BIO/KET=0.0 +!ALKH/HCHO=0.0 ! -!BIO/CARBO=0.0 +!ALKH/ALD2=0.0 ! -!BIO/ONIT=0.0 +!ALKH/KETL=0.0 ! -!BIO/PAN=0.0 +!ALKH/KETH=0.0 ! -!BIO/OP1=0.0 +!ALKH/MEOH=0.0 ! -!BIO/OP2=0.0 +!ALKH/ETOH=0.0 ! -!BIO/ORA1=0.0 +!ALKH/ALCH=0.0 ! -!BIO/ORA2=0.0 +!ALKH/ISOP=0.0 ! -!BIO/MO2=0.0 +!ALKH/BIOL=0.0 ! -!BIO/ALKAP=0.0 +!ALKH/BIOH=0.0 ! -!BIO/ALKEP=0.0 +!ALKH/MTBE=0.0 ! -!BIO/BIOP=0.0 +!ALKH/MVK=0.0 ! -!BIO/PHO=0.0 +!ALKH/MCR=0.0 ! -!BIO/ADD=0.0 +!ALKH/MGLY=0.0 ! -!BIO/AROP=0.0 +!ALKH/GLY=0.0 ! -!BIO/CARBOP=0.0 +!ALKH/ORA1=0.0 ! -!BIO/OLN=0.0 +!ALKH/ORA2=0.0 ! -!BIO/XO2=0.0 +!ALKH/ACID=0.0 ! -!BIO/WC_O3=0.0 +!ALKH/UR28=0.0 ! -!BIO/WC_H2O2=0.0 +!ALKH/UR21=0.0 ! -!BIO/WC_NO=0.0 +!ALKH/URG2=0.0 ! -!BIO/WC_NO2=0.0 +!ALKH/UR26=0.0 ! -!BIO/WC_NO3=0.0 +!ALKH/RPG2=0.0 ! -!BIO/WC_N2O5=0.0 +!ALKH/RP18=0.0 ! -!BIO/WC_HONO=0.0 +!ALKH/RPG3=0.0 ! -!BIO/WC_HNO3=0.0 +!ALKH/URG4=0.0 ! -!BIO/WC_HNO4=0.0 +!ALKH/UR8=0.0 ! -!BIO/WC_NH3=0.0 +!ALKH/UR17=0.0 ! -!BIO/WC_OH=0.0 +!ALKH/UR7=0.0 ! -!BIO/WC_HO2=0.0 +!ALKH/RPR3=0.0 ! -!BIO/WC_CO2=0.0 +!ALKH/URG6=0.0 ! -!BIO/WC_SO2=0.0 +!ALKH/UR22=0.0 ! -!BIO/WC_SULF=0.0 +!ALKH/URG7=0.0 ! -!BIO/WC_HCHO=0.0 +!ALKH/RPR4=0.0 ! -!BIO/WC_ORA1=0.0 +!ALKH/RPR7=0.0 ! -!BIO/WC_ORA2=0.0 +!ALKH/RPG7=0.0 ! -!BIO/WC_MO2=0.0 +!ALKH/URG8=0.0 ! -!BIO/WC_OP1=0.0 +!ALKH/UR19=0.0 ! -!BIO/WC_ASO3=0.0 +!ALKH/URG9=0.0 ! -!BIO/WC_ASO4=0.0 +!ALKH/AP7=0.0 ! -!BIO/WC_ASO5=0.0 +!ALKH/URG10=0.0 ! -!BIO/WC_AHSO5=0.0 +!ALKH/RPR1=0.0 ! -!BIO/WC_AHMS=0.0 +!ALKH/RPR5=0.0 ! -!BIO/WR_O3=0.0 +!ALKH/RPR8=0.0 ! -!BIO/WR_H2O2=0.0 +!ALKH/RP10=0.0 ! -!BIO/WR_NO=0.0 +!ALKH/RP11=0.0 ! -!BIO/WR_NO2=0.0 +!ALKH/RP16=0.0 ! -!BIO/WR_NO3=0.0 +!ALKH/RPRL=0.0 ! -!BIO/WR_N2O5=0.0 +!ALKH/APAN=0.0 ! -!BIO/WR_HONO=0.0 +!ALKH/PAN1=0.0 ! -!BIO/WR_HNO3=0.0 +!ALKH/PAN2=0.0 ! -!BIO/WR_HNO4=0.0 +!ALKH/PAN3=0.0 ! -!BIO/WR_NH3=0.0 +!ALKH/PAN4=0.0 ! -!BIO/WR_OH=0.0 +!ALKH/PAN6=0.0 ! -!BIO/WR_HO2=0.0 +!ALKH/PAN7=0.0 ! -!BIO/WR_CO2=0.0 +!ALKH/PAN8=0.0 ! -!BIO/WR_SO2=0.0 +!ALKH/PN10=0.0 ! -!BIO/WR_SULF=0.0 +!ALKH/RO2T=0.0 ! -!BIO/WR_HCHO=0.0 +!ALKH/RO21=0.0 ! -!BIO/WR_ORA1=0.0 +!ALKH/RO25=0.0 ! -!BIO/WR_ORA2=0.0 +!AROH/NO=0.0 ! -!BIO/WR_MO2=0.0 +!AROH/NO2=0.0 ! -!BIO/WR_OP1=0.0 +!AROH/O3=0.0 ! -!BIO/WR_ASO3=0.0 +!AROH/HONO=0.0 ! -!BIO/WR_ASO4=0.0 +!AROH/HNO3=0.0 ! -!BIO/WR_ASO5=0.0 +!AROH/HNO4=0.0 ! -!BIO/WR_AHSO5=0.0 +!AROH/N2O5=0.0 ! -!BIO/WR_AHMS=0.0 +!AROH/NO3=0.0 ! -RETURN -END SUBROUTINE SUBJ3 +!AROH/NH3=0.0 ! -SUBROUTINE SUBJ4 +!AROH/HO2=0.0 ! -!Indices 21 a 25 +!AROH/CO=0.0 ! +!AROH/H2O2=0.0 ! -!ARO/O3=+K087*<ADD> - PJAC(:,21,1)=+TPK%K087(:)*PCONC(:,37) +!AROH/SO2=0.0 ! -!ARO/H2O2=0.0 +!AROH/H2SO4=0.0 ! -!ARO/NO=0.0 +!AROH/OH=-K080*<AROH> + PJAC(:,22,15)=-TPK%K080(:)*PCONC(:,22) ! -!ARO/NO2=+0.10670*K083*<PHO>+K085*<ADD> - PJAC(:,21,4)=+0.10670*TPK%K083(:)*PCONC(:,36)+TPK%K085(:)*PCONC(:,37) +!AROH/ETHE=0.0 ! -!ARO/NO3=-K075*<ARO> - PJAC(:,21,5)=-TPK%K075(:)*PCONC(:,21) +!AROH/OLEL=0.0 ! -!ARO/N2O5=0.0 +!AROH/OLEH=0.0 ! -!ARO/HONO=0.0 +!AROH/ALKL=0.0 ! -!ARO/HNO3=0.0 +!AROH/ALKM=0.0 ! -!ARO/HNO4=0.0 +!AROH/ALKH=0.0 ! -!ARO/NH3=0.0 +!AROH/AROH=-K080*<OH> + PJAC(:,22,22)=-TPK%K080(:)*PCONC(:,15) ! -!ARO/SO2=0.0 +!AROH/AROL=0.0 ! -!ARO/SULF=0.0 +!AROH/AROO=0.0 ! -!ARO/CO=0.0 +!AROH/ARAL=0.0 ! -!ARO/OH=-K061*<ARO> - PJAC(:,21,14)=-TPK%K061(:)*PCONC(:,21) +!AROH/ARAC=0.0 ! -!ARO/HO2=+1.06698*K084*<PHO> - PJAC(:,21,15)=+1.06698*TPK%K084(:)*PCONC(:,36) +!AROH/PAH=0.0 ! -!ARO/CH4=0.0 +!AROH/HCHO=0.0 ! -!ARO/ETH=0.0 +!AROH/ALD2=0.0 ! -!ARO/ALKA=0.0 +!AROH/KETL=0.0 ! -!ARO/ALKE=0.0 +!AROH/KETH=0.0 ! -!ARO/BIO=0.0 +!AROH/MEOH=0.0 ! -!ARO/ARO=-K061*<OH>-K075*<NO3> - PJAC(:,21,21)=-TPK%K061(:)*PCONC(:,14)-TPK%K075(:)*PCONC(:,5) +!AROH/ETOH=0.0 ! -!ARO/HCHO=0.0 +!AROH/ALCH=0.0 ! -!ARO/ALD=0.0 +!AROH/ISOP=0.0 ! -!ARO/KET=0.0 +!AROH/BIOL=0.0 ! -!ARO/CARBO=0.0 +!AROH/BIOH=0.0 ! -!ARO/ONIT=0.0 +!AROH/MTBE=0.0 ! -!ARO/PAN=0.0 +!AROH/MVK=0.0 ! -!ARO/OP1=0.0 +!AROH/MCR=0.0 ! -!ARO/OP2=0.0 +!AROH/MGLY=0.0 ! -!ARO/ORA1=0.0 +!AROH/GLY=0.0 ! -!ARO/ORA2=0.0 +!AROH/ORA1=0.0 ! -!ARO/MO2=0.0 +!AROH/ORA2=0.0 ! -!ARO/ALKAP=0.0 +!AROH/ACID=0.0 ! -!ARO/ALKEP=0.0 +!AROH/UR28=0.0 ! -!ARO/BIOP=0.0 +!AROH/UR21=0.0 ! -!ARO/PHO=+0.10670*K083*<NO2>+1.06698*K084*<HO2> - PJAC(:,21,36)=+0.10670*TPK%K083(:)*PCONC(:,4)+1.06698*TPK%K084(:)*PCONC(:,15) +!AROH/URG2=0.0 ! -!ARO/ADD=+K085*<NO2>+0.02*K086*<O2>+K087*<O3> - PJAC(:,21,37)=+TPK%K085(:)*PCONC(:,4)+0.02*TPK%K086(:)*TPK%O2(:)+TPK%K087(:)*P& -&CONC(:,1) +!AROH/UR26=0.0 ! -!ARO/AROP=0.0 +!AROH/RPG2=0.0 ! -!ARO/CARBOP=0.0 +!AROH/RP18=0.0 ! -!ARO/OLN=0.0 +!AROH/RPG3=0.0 ! -!ARO/XO2=0.0 +!AROH/URG4=0.0 ! -!ARO/WC_O3=0.0 +!AROH/UR8=0.0 ! -!ARO/WC_H2O2=0.0 +!AROH/UR17=0.0 ! -!ARO/WC_NO=0.0 +!AROH/UR7=0.0 ! -!ARO/WC_NO2=0.0 +!AROH/RPR3=0.0 ! -!ARO/WC_NO3=0.0 +!AROH/URG6=0.0 ! -!ARO/WC_N2O5=0.0 +!AROH/UR22=0.0 ! -!ARO/WC_HONO=0.0 +!AROH/URG7=0.0 ! -!ARO/WC_HNO3=0.0 +!AROH/RPR4=0.0 ! -!ARO/WC_HNO4=0.0 +!AROH/RPR7=0.0 ! -!ARO/WC_NH3=0.0 +!AROH/RPG7=0.0 ! -!ARO/WC_OH=0.0 +!AROH/URG8=0.0 ! -!ARO/WC_HO2=0.0 +!AROH/UR19=0.0 ! -!ARO/WC_CO2=0.0 +!AROH/URG9=0.0 ! -!ARO/WC_SO2=0.0 +!AROH/AP7=0.0 ! -!ARO/WC_SULF=0.0 +!AROH/URG10=0.0 ! -!ARO/WC_HCHO=0.0 +!AROH/RPR1=0.0 ! -!ARO/WC_ORA1=0.0 +!AROH/RPR5=0.0 ! -!ARO/WC_ORA2=0.0 +!AROH/RPR8=0.0 ! -!ARO/WC_MO2=0.0 +!AROH/RP10=0.0 ! -!ARO/WC_OP1=0.0 +!AROH/RP11=0.0 ! -!ARO/WC_ASO3=0.0 +!AROH/RP16=0.0 ! -!ARO/WC_ASO4=0.0 +!AROH/RPRL=0.0 ! -!ARO/WC_ASO5=0.0 +!AROH/APAN=0.0 ! -!ARO/WC_AHSO5=0.0 +!AROH/PAN1=0.0 ! -!ARO/WC_AHMS=0.0 +!AROH/PAN2=0.0 ! -!ARO/WR_O3=0.0 +!AROH/PAN3=0.0 ! -!ARO/WR_H2O2=0.0 +!AROH/PAN4=0.0 ! -!ARO/WR_NO=0.0 +!AROH/PAN6=0.0 ! -!ARO/WR_NO2=0.0 +!AROH/PAN7=0.0 ! -!ARO/WR_NO3=0.0 +!AROH/PAN8=0.0 ! -!ARO/WR_N2O5=0.0 +!AROH/PN10=0.0 ! -!ARO/WR_HONO=0.0 +!AROH/RO2T=0.0 ! -!ARO/WR_HNO3=0.0 +!AROH/RO21=0.0 ! -!ARO/WR_HNO4=0.0 +!AROH/RO25=0.0 ! -!ARO/WR_NH3=0.0 +!AROL/NO=0.0 ! -!ARO/WR_OH=0.0 +!AROL/NO2=0.0 ! -!ARO/WR_HO2=0.0 +!AROL/O3=0.0 ! -!ARO/WR_CO2=0.0 +!AROL/HONO=0.0 ! -!ARO/WR_SO2=0.0 +!AROL/HNO3=0.0 ! -!ARO/WR_SULF=0.0 +!AROL/HNO4=0.0 ! -!ARO/WR_HCHO=0.0 +!AROL/N2O5=0.0 ! -!ARO/WR_ORA1=0.0 +!AROL/NO3=0.0 ! -!ARO/WR_ORA2=0.0 +!AROL/NH3=0.0 ! -!ARO/WR_MO2=0.0 +!AROL/HO2=0.0 ! -!ARO/WR_OP1=0.0 +!AROL/CO=0.0 ! -!ARO/WR_ASO3=0.0 +!AROL/H2O2=0.0 ! -!ARO/WR_ASO4=0.0 +!AROL/SO2=0.0 ! -!ARO/WR_ASO5=0.0 +!AROL/H2SO4=0.0 ! -!ARO/WR_AHSO5=0.0 +!AROL/OH=-K079*<AROL> + PJAC(:,23,15)=-TPK%K079(:)*PCONC(:,23) ! -!ARO/WR_AHMS=0.0 +!AROL/ETHE=0.0 ! -!HCHO/O3=+0.48290*K079*<ALKE>+0.90000*K080*<BIO>+0.00000*K081*<CARBO>+0.70*K082 -!*<PAN> - PJAC(:,22,1)=+0.48290*TPK%K079(:)*PCONC(:,19)+0.90000*TPK%K080(:)*PCONC(:,20)+& -&0.00000*TPK%K081(:)*PCONC(:,25)+0.70*TPK%K082(:)*PCONC(:,27) +!AROL/OLEL=0.0 ! -!HCHO/H2O2=0.0 +!AROL/OLEH=0.0 ! -!HCHO/NO=+K090*<MO2>+0.03002*K091*<ALKAP>+1.39870*K092*<ALKEP>+0.60600*K093*<BI -!OP>+0.05848*K095*<CARBOP>+0.23419*K096*<OLN> - PJAC(:,22,3)=+TPK%K090(:)*PCONC(:,32)+0.03002*TPK%K091(:)*PCONC(:,33)+1.39870*& -&TPK%K092(:)*PCONC(:,34)+0.60600*TPK%K093(:)*PCONC(:,35)+0.05848*TPK%K095(:)*PC& -&ONC(:,39)+0.23419*TPK%K096(:)*PCONC(:,40) +!AROL/ALKL=0.0 ! -!HCHO/NO2=0.0 +!AROL/ALKM=0.0 ! -!HCHO/NO3=-K072*<HCHO>+0.40*K078*<PAN>+K119*<MO2>+0.03142*K120*<ALKAP>+1.40909* -!K121*<ALKEP>+0.68600*K122*<BIOP>+0.03175*K124*<CARBOP>+0.20740*K125*<OLN> - PJAC(:,22,5)=-TPK%K072(:)*PCONC(:,22)+0.40*TPK%K078(:)*PCONC(:,27)+TPK%K119(:)& -&*PCONC(:,32)+0.03142*TPK%K120(:)*PCONC(:,33)+1.40909*TPK%K121(:)*PCONC(:,34)+0& -&.68600*TPK%K122(:)*PCONC(:,35)+0.03175*TPK%K124(:)*PCONC(:,39)+0.20740*TPK%K12& -&5(:)*PCONC(:,40) +!AROL/ALKH=0.0 ! -!HCHO/N2O5=0.0 +!AROL/AROH=0.0 ! -!HCHO/HONO=0.0 +!AROL/AROL=-K079*<OH> + PJAC(:,23,23)=-TPK%K079(:)*PCONC(:,15) ! -!HCHO/HNO3=0.0 +!AROL/AROO=0.0 ! -!HCHO/HNO4=0.0 +!AROL/ARAL=0.0 ! -!HCHO/NH3=0.0 +!AROL/ARAC=0.0 ! -!HCHO/SO2=0.0 +!AROL/PAH=0.0 ! -!HCHO/SULF=0.0 +!AROL/HCHO=0.0 ! -!HCHO/CO=0.0 +!AROL/ALD2=0.0 ! -!HCHO/OH=+0.00140*K058*<ALKA>-K062*<HCHO>+0.00000*K065*<CARBO>+0.35*K068*<OP1>+ -!0.02915*K069*<OP2>+0.57839*K070*<PAN> - PJAC(:,22,14)=+0.00140*TPK%K058(:)*PCONC(:,18)-TPK%K062(:)*PCONC(:,22)+0.00000& -&*TPK%K065(:)*PCONC(:,25)+0.35*TPK%K068(:)*PCONC(:,28)+0.02915*TPK%K069(:)*PCON& -&C(:,29)+0.57839*TPK%K070(:)*PCONC(:,27) +!AROL/KETL=0.0 ! -!HCHO/HO2=0.0 +!AROL/KETH=0.0 ! -!HCHO/CH4=0.0 +!AROL/MEOH=0.0 ! -!HCHO/ETH=0.0 +!AROL/ETOH=0.0 ! -!HCHO/ALKA=+0.00140*K058*<OH> - PJAC(:,22,18)=+0.00140*TPK%K058(:)*PCONC(:,14) +!AROL/ALCH=0.0 ! -!HCHO/ALKE=+0.48290*K079*<O3> - PJAC(:,22,19)=+0.48290*TPK%K079(:)*PCONC(:,1) +!AROL/ISOP=0.0 ! -!HCHO/BIO=+0.05*K054*<O3P>+0.90000*K080*<O3> - PJAC(:,22,20)=+0.05*TPK%K054(:)*TPK%O3P(:)+0.90000*TPK%K080(:)*PCONC(:,1) +!AROL/BIOL=0.0 ! -!HCHO/ARO=0.0 +!AROL/BIOH=0.0 ! -!HCHO/HCHO=-K010-K011-K062*<OH>-K072*<NO3>-KTC16-KTR16 - PJAC(:,22,22)=-TPK%K010(:)-TPK%K011(:)-TPK%K062(:)*PCONC(:,14)-TPK%K072(:)*PCO& -&NC(:,5)-TPK%KTC16(:)-TPK%KTR16(:) +!AROL/MTBE=0.0 ! -!HCHO/ALD=0.0 +!AROL/MVK=0.0 ! -!HCHO/KET=0.0 +!AROL/MCR=0.0 ! -!HCHO/CARBO=+0.06517*K016+0.00000*K065*<OH>+0.00000*K081*<O3> - PJAC(:,22,25)=+0.06517*TPK%K016(:)+0.00000*TPK%K065(:)*PCONC(:,14)+0.00000*TPK& -&%K081(:)*PCONC(:,1) +!AROL/MGLY=0.0 ! -!HCHO/ONIT=0.0 +!AROL/GLY=0.0 ! -!HCHO/PAN=+0.57839*K070*<OH>+0.40*K078*<NO3>+0.70*K082*<O3> - PJAC(:,22,27)=+0.57839*TPK%K070(:)*PCONC(:,14)+0.40*TPK%K078(:)*PCONC(:,5)+0.7& -&0*TPK%K082(:)*PCONC(:,1) +!AROL/ORA1=0.0 ! -!HCHO/OP1=+K013+0.35*K068*<OH> - PJAC(:,22,28)=+TPK%K013(:)+0.35*TPK%K068(:)*PCONC(:,14) +!AROL/ORA2=0.0 ! -!HCHO/OP2=+0.02915*K069*<OH> - PJAC(:,22,29)=+0.02915*TPK%K069(:)*PCONC(:,14) +!AROL/ACID=0.0 ! -!HCHO/ORA1=0.0 +!AROL/UR28=0.0 ! -!HCHO/ORA2=0.0 +!AROL/UR21=0.0 ! -!HCHO/MO2=+K090*<NO>+1.33*K104*<MO2>+1.33*K104*<MO2>+0.80556*K105*<ALKAP>+1.428 -!94*K106*<ALKEP>+1.09000*K107*<BIOP>+K108*<AROP>+0.95723*K109*<CARBOP>+0.88625* -!K110*<OLN>+K119*<NO3>+K127*<XO2> - PJAC(:,22,32)=+TPK%K090(:)*PCONC(:,3)+1.33*TPK%K104(:)*PCONC(:,32)+1.33*TPK%K1& -&04(:)*PCONC(:,32)+0.80556*TPK%K105(:)*PCONC(:,33)+1.42894*TPK%K106(:)*PCONC(:,& -&34)+1.09000*TPK%K107(:)*PCONC(:,35)+TPK%K108(:)*PCONC(:,38)+0.95723*TPK%K109(:& -&)*PCONC(:,39)+0.88625*TPK%K110(:)*PCONC(:,40)+TPK%K119(:)*PCONC(:,5)+TPK%K127(& -&:)*PCONC(:,41) -! -!HCHO/ALKAP=+0.03002*K091*<NO>+0.80556*K105*<MO2>+0.07600*K111*<CARBOP>+0.03142 -!*K120*<NO3> - PJAC(:,22,33)=+0.03002*TPK%K091(:)*PCONC(:,3)+0.80556*TPK%K105(:)*PCONC(:,32)+& -&0.07600*TPK%K111(:)*PCONC(:,39)+0.03142*TPK%K120(:)*PCONC(:,5) -! -!HCHO/ALKEP=+1.39870*K092*<NO>+1.42894*K106*<MO2>+0.68192*K112*<CARBOP>+1.40909 -!*K121*<NO3> - PJAC(:,22,34)=+1.39870*TPK%K092(:)*PCONC(:,3)+1.42894*TPK%K106(:)*PCONC(:,32)+& -&0.68192*TPK%K112(:)*PCONC(:,39)+1.40909*TPK%K121(:)*PCONC(:,5) -! -!HCHO/BIOP=+0.60600*K093*<NO>+1.09000*K107*<MO2>+0.34000*K113*<CARBOP>+0.68600* -!K122*<NO3> - PJAC(:,22,35)=+0.60600*TPK%K093(:)*PCONC(:,3)+1.09000*TPK%K107(:)*PCONC(:,32)+& -&0.34000*TPK%K113(:)*PCONC(:,39)+0.68600*TPK%K122(:)*PCONC(:,5) -! -!HCHO/PHO=0.0 -! -!HCHO/ADD=0.0 -! -!HCHO/AROP=+K108*<MO2> - PJAC(:,22,38)=+TPK%K108(:)*PCONC(:,32) -! -!HCHO/CARBOP=+0.05848*K095*<NO>+0.95723*K109*<MO2>+0.07600*K111*<ALKAP>+0.68192 -!*K112*<ALKEP>+0.34000*K113*<BIOP>+0.03432*K115*<CARBOP>+0.03432*K115*<CARBOP>+ -!0.13414*K116*<OLN>+0.03175*K124*<NO3> - PJAC(:,22,39)=+0.05848*TPK%K095(:)*PCONC(:,3)+0.95723*TPK%K109(:)*PCONC(:,32)+& -&0.07600*TPK%K111(:)*PCONC(:,33)+0.68192*TPK%K112(:)*PCONC(:,34)+0.34000*TPK%K1& -&13(:)*PCONC(:,35)+0.03432*TPK%K115(:)*PCONC(:,39)+0.03432*TPK%K115(:)*PCONC(:,& -&39)+0.13414*TPK%K116(:)*PCONC(:,40)+0.03175*TPK%K124(:)*PCONC(:,5) -! -!HCHO/OLN=+0.23419*K096*<NO>+0.88625*K110*<MO2>+0.13414*K116*<CARBOP>+0.00000*K -!118*<OLN>+0.00000*K118*<OLN>+0.20740*K125*<NO3> - PJAC(:,22,40)=+0.23419*TPK%K096(:)*PCONC(:,3)+0.88625*TPK%K110(:)*PCONC(:,32)+& -&0.13414*TPK%K116(:)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K1& -&18(:)*PCONC(:,40)+0.20740*TPK%K125(:)*PCONC(:,5) -! -!HCHO/XO2=+K127*<MO2> - PJAC(:,22,41)=+TPK%K127(:)*PCONC(:,32) +!AROL/URG2=0.0 ! -!HCHO/WC_O3=0.0 +!AROL/UR26=0.0 ! -!HCHO/WC_H2O2=0.0 +!AROL/RPG2=0.0 ! -!HCHO/WC_NO=0.0 +!AROL/RP18=0.0 ! -!HCHO/WC_NO2=0.0 +!AROL/RPG3=0.0 ! -!HCHO/WC_NO3=0.0 +!AROL/URG4=0.0 ! -!HCHO/WC_N2O5=0.0 +!AROL/UR8=0.0 ! -!HCHO/WC_HONO=0.0 +!AROL/UR17=0.0 ! -!HCHO/WC_HNO3=0.0 +!AROL/UR7=0.0 ! -!HCHO/WC_HNO4=0.0 +!AROL/RPR3=0.0 ! -!HCHO/WC_NH3=0.0 +!AROL/URG6=0.0 ! -!HCHO/WC_OH=0.0 +!AROL/UR22=0.0 ! -!HCHO/WC_HO2=0.0 +!AROL/URG7=0.0 ! -!HCHO/WC_CO2=0.0 +!AROL/RPR4=0.0 ! -!HCHO/WC_SO2=0.0 +!AROL/RPR7=0.0 ! -!HCHO/WC_SULF=0.0 +!AROL/RPG7=0.0 ! -!HCHO/WC_HCHO=+KTC36 - PJAC(:,22,57)=+TPK%KTC36(:) +!AROL/URG8=0.0 ! -!HCHO/WC_ORA1=0.0 +!AROL/UR19=0.0 ! -!HCHO/WC_ORA2=0.0 +!AROL/URG9=0.0 ! -!HCHO/WC_MO2=0.0 +!AROL/AP7=0.0 ! -!HCHO/WC_OP1=0.0 +!AROL/URG10=0.0 ! -!HCHO/WC_ASO3=0.0 +!AROL/RPR1=0.0 ! -!HCHO/WC_ASO4=0.0 +!AROL/RPR5=0.0 ! -!HCHO/WC_ASO5=0.0 +!AROL/RPR8=0.0 ! -!HCHO/WC_AHSO5=0.0 +!AROL/RP10=0.0 ! -!HCHO/WC_AHMS=0.0 +!AROL/RP11=0.0 ! -!HCHO/WR_O3=0.0 +!AROL/RP16=0.0 ! -!HCHO/WR_H2O2=0.0 +!AROL/RPRL=0.0 ! -!HCHO/WR_NO=0.0 +!AROL/APAN=0.0 ! -!HCHO/WR_NO2=0.0 +!AROL/PAN1=0.0 ! -!HCHO/WR_NO3=0.0 +!AROL/PAN2=0.0 ! -!HCHO/WR_N2O5=0.0 +!AROL/PAN3=0.0 ! -!HCHO/WR_HONO=0.0 +!AROL/PAN4=0.0 ! -!HCHO/WR_HNO3=0.0 +!AROL/PAN6=0.0 ! -!HCHO/WR_HNO4=0.0 +!AROL/PAN7=0.0 ! -!HCHO/WR_NH3=0.0 +!AROL/PAN8=0.0 ! -!HCHO/WR_OH=0.0 +!AROL/PN10=0.0 ! -!HCHO/WR_HO2=0.0 +!AROL/RO2T=0.0 ! -!HCHO/WR_CO2=0.0 +!AROL/RO21=0.0 ! -!HCHO/WR_SO2=0.0 +!AROL/RO25=0.0 ! -!HCHO/WR_SULF=0.0 +!AROO/NO=0.0 ! -!HCHO/WR_HCHO=+KTR36 - PJAC(:,22,82)=+TPK%KTR36(:) +!AROO/NO2=0.0 ! -!HCHO/WR_ORA1=0.0 +!AROO/O3=0.0 ! -!HCHO/WR_ORA2=0.0 +!AROO/HONO=0.0 ! -!HCHO/WR_MO2=0.0 +!AROO/HNO3=0.0 ! -!HCHO/WR_OP1=0.0 +!AROO/HNO4=0.0 ! -!HCHO/WR_ASO3=0.0 +!AROO/N2O5=0.0 ! -!HCHO/WR_ASO4=0.0 +!AROO/NO3=-K072*<AROO> + PJAC(:,24,8)=-TPK%K072(:)*PCONC(:,24) ! -!HCHO/WR_ASO5=0.0 +!AROO/NH3=0.0 ! -!HCHO/WR_AHSO5=0.0 +!AROO/HO2=0.0 ! -!HCHO/WR_AHMS=0.0 +!AROO/CO=0.0 ! -!ALD/O3=+0.51468*K079*<ALKE>+0.00000*K080*<BIO>+0.15692*K081*<CARBO> - PJAC(:,23,1)=+0.51468*TPK%K079(:)*PCONC(:,19)+0.00000*TPK%K080(:)*PCONC(:,20)+& -&0.15692*TPK%K081(:)*PCONC(:,25) +!AROO/H2O2=0.0 ! -!ALD/H2O2=0.0 +!AROO/SO2=0.0 ! -!ALD/NO=+0.33144*K091*<ALKAP>+0.42125*K092*<ALKEP>+0.00000*K093*<BIOP>+0.07368* -!K095*<CARBOP>+1.01182*K096*<OLN> - PJAC(:,23,3)=+0.33144*TPK%K091(:)*PCONC(:,33)+0.42125*TPK%K092(:)*PCONC(:,34)+& -&0.00000*TPK%K093(:)*PCONC(:,35)+0.07368*TPK%K095(:)*PCONC(:,39)+1.01182*TPK%K0& -&96(:)*PCONC(:,40) +!AROO/H2SO4=0.0 ! -!ALD/NO2=0.0 +!AROO/OH=+0.16*K073*<AROO>-K073*<AROO>+0.16*K079*<AROL>+0.16*K080*<AROH> + PJAC(:,24,15)=+0.16*TPK%K073(:)*PCONC(:,24)-TPK%K073(:)*PCONC(:,24)+0.16*TPK%K& +&079(:)*PCONC(:,23)+0.16*TPK%K080(:)*PCONC(:,22) ! -!ALD/NO3=-K073*<ALD>+0.05265*K074*<CARBO>+0.33743*K120*<ALKAP>+0.43039*K121*<AL -!KEP>+0.00000*K122*<BIOP>+0.02936*K124*<CARBOP>+0.91850*K125*<OLN> - PJAC(:,23,5)=-TPK%K073(:)*PCONC(:,23)+0.05265*TPK%K074(:)*PCONC(:,25)+0.33743*& -&TPK%K120(:)*PCONC(:,33)+0.43039*TPK%K121(:)*PCONC(:,34)+0.00000*TPK%K122(:)*PC& -&ONC(:,35)+0.02936*TPK%K124(:)*PCONC(:,39)+0.91850*TPK%K125(:)*PCONC(:,40) +!AROO/ETHE=0.0 ! -!ALD/N2O5=0.0 +!AROO/OLEL=0.0 ! -!ALD/HONO=0.0 +!AROO/OLEH=0.0 ! -!ALD/HNO3=0.0 +!AROO/ALKL=0.0 ! -!ALD/HNO4=0.0 +!AROO/ALKM=0.0 ! -!ALD/NH3=0.0 +!AROO/ALKH=0.0 ! -!ALD/SO2=0.0 +!AROO/AROH=+0.16*K080*<OH> + PJAC(:,24,22)=+0.16*TPK%K080(:)*PCONC(:,15) ! -!ALD/SULF=0.0 +!AROO/AROL=+0.16*K079*<OH> + PJAC(:,24,23)=+0.16*TPK%K079(:)*PCONC(:,15) ! -!ALD/CO=0.0 +!AROO/AROO=-K072*<NO3>+0.16*K073*<OH>-K073*<OH> + PJAC(:,24,24)=-TPK%K072(:)*PCONC(:,8)+0.16*TPK%K073(:)*PCONC(:,15)-TPK%K073(:)& +&*PCONC(:,15) ! -!ALD/OH=+0.08173*K058*<ALKA>-K063*<ALD>+0.06253*K065*<CARBO>+0.07335*K069*<OP2> - PJAC(:,23,14)=+0.08173*TPK%K058(:)*PCONC(:,18)-TPK%K063(:)*PCONC(:,23)+0.06253& -&*TPK%K065(:)*PCONC(:,25)+0.07335*TPK%K069(:)*PCONC(:,29) +!AROO/ARAL=0.0 ! -!ALD/HO2=0.0 +!AROO/ARAC=0.0 ! -!ALD/CH4=0.0 +!AROO/PAH=0.0 ! -!ALD/ETH=0.0 +!AROO/HCHO=0.0 ! -!ALD/ALKA=+0.08173*K058*<OH> - PJAC(:,23,18)=+0.08173*TPK%K058(:)*PCONC(:,14) +!AROO/ALD2=0.0 ! -!ALD/ALKE=+0.51468*K079*<O3> - PJAC(:,23,19)=+0.51468*TPK%K079(:)*PCONC(:,1) +!AROO/KETL=0.0 ! -!ALD/BIO=+0.00000*K080*<O3> - PJAC(:,23,20)=+0.00000*TPK%K080(:)*PCONC(:,1) +!AROO/KETH=0.0 ! -!ALD/ARO=0.0 +!AROO/MEOH=0.0 ! -!ALD/HCHO=0.0 +!AROO/ETOH=0.0 ! -!ALD/ALD=-K012-K063*<OH>-K073*<NO3> - PJAC(:,23,23)=-TPK%K012(:)-TPK%K063(:)*PCONC(:,14)-TPK%K073(:)*PCONC(:,5) +!AROO/ALCH=0.0 ! -!ALD/KET=0.0 +!AROO/ISOP=0.0 ! -!ALD/CARBO=+K055*<O3P>+0.06253*K065*<OH>+0.05265*K074*<NO3>+0.15692*K081*<O3> - PJAC(:,23,25)=+TPK%K055(:)*TPK%O3P(:)+0.06253*TPK%K065(:)*PCONC(:,14)+0.05265*& -&TPK%K074(:)*PCONC(:,5)+0.15692*TPK%K081(:)*PCONC(:,1) +!AROO/BIOL=0.0 ! -!ALD/ONIT=+0.20*K017 - PJAC(:,23,26)=+0.20*TPK%K017(:) +!AROO/BIOH=0.0 ! -!ALD/PAN=0.0 +!AROO/MTBE=0.0 ! -!ALD/OP1=0.0 +!AROO/MVK=0.0 ! -!ALD/OP2=+0.96205*K014+0.07335*K069*<OH> - PJAC(:,23,29)=+0.96205*TPK%K014(:)+0.07335*TPK%K069(:)*PCONC(:,14) +!AROO/MCR=0.0 ! -!ALD/ORA1=0.0 +!AROO/MGLY=0.0 ! -!ALD/ORA2=0.0 +!AROO/GLY=0.0 ! -!ALD/MO2=+0.56070*K105*<ALKAP>+0.46413*K106*<ALKEP>+0.00000*K107*<BIOP>+0.08295 -!*K109*<CARBOP>+0.41524*K110*<OLN> - PJAC(:,23,32)=+0.56070*TPK%K105(:)*PCONC(:,33)+0.46413*TPK%K106(:)*PCONC(:,34)& -&+0.00000*TPK%K107(:)*PCONC(:,35)+0.08295*TPK%K109(:)*PCONC(:,39)+0.41524*TPK%K& -&110(:)*PCONC(:,40) +!AROO/ORA1=0.0 ! -!ALD/ALKAP=+0.33144*K091*<NO>+0.56070*K105*<MO2>+0.71461*K111*<CARBOP>+0.33743* -!K120*<NO3> - PJAC(:,23,33)=+0.33144*TPK%K091(:)*PCONC(:,3)+0.56070*TPK%K105(:)*PCONC(:,32)+& -&0.71461*TPK%K111(:)*PCONC(:,39)+0.33743*TPK%K120(:)*PCONC(:,5) +!AROO/ORA2=0.0 ! -!ALD/ALKEP=+0.42125*K092*<NO>+0.46413*K106*<MO2>+0.68374*K112*<CARBOP>+0.43039* -!K121*<NO3> - PJAC(:,23,34)=+0.42125*TPK%K092(:)*PCONC(:,3)+0.46413*TPK%K106(:)*PCONC(:,32)+& -&0.68374*TPK%K112(:)*PCONC(:,39)+0.43039*TPK%K121(:)*PCONC(:,5) +!AROO/ACID=0.0 ! -!ALD/BIOP=+0.00000*K093*<NO>+0.00000*K107*<MO2>+0.00000*K113*<CARBOP>+0.00000*K -!122*<NO3> - PJAC(:,23,35)=+0.00000*TPK%K093(:)*PCONC(:,3)+0.00000*TPK%K107(:)*PCONC(:,32)+& -&0.00000*TPK%K113(:)*PCONC(:,39)+0.00000*TPK%K122(:)*PCONC(:,5) +!AROO/UR28=0.0 ! -!ALD/PHO=0.0 +!AROO/UR21=0.0 ! -!ALD/ADD=0.0 +!AROO/URG2=0.0 ! -!ALD/AROP=0.0 +!AROO/UR26=0.0 ! -!ALD/CARBOP=+0.07368*K095*<NO>+0.08295*K109*<MO2>+0.71461*K111*<ALKAP>+0.68374* -!K112*<ALKEP>+0.00000*K113*<BIOP>+0.06969*K115*<CARBOP>+0.06969*K115*<CARBOP>+0 -!.42122*K116*<OLN>+0.02936*K124*<NO3> - PJAC(:,23,39)=+0.07368*TPK%K095(:)*PCONC(:,3)+0.08295*TPK%K109(:)*PCONC(:,32)+& -&0.71461*TPK%K111(:)*PCONC(:,33)+0.68374*TPK%K112(:)*PCONC(:,34)+0.00000*TPK%K1& -&13(:)*PCONC(:,35)+0.06969*TPK%K115(:)*PCONC(:,39)+0.06969*TPK%K115(:)*PCONC(:,& -&39)+0.42122*TPK%K116(:)*PCONC(:,40)+0.02936*TPK%K124(:)*PCONC(:,5) +!AROO/RPG2=0.0 ! -!ALD/OLN=+1.01182*K096*<NO>+0.41524*K110*<MO2>+0.42122*K116*<CARBOP>+0.00000*K1 -!18*<OLN>+0.00000*K118*<OLN>+0.91850*K125*<NO3> - PJAC(:,23,40)=+1.01182*TPK%K096(:)*PCONC(:,3)+0.41524*TPK%K110(:)*PCONC(:,32)+& -&0.42122*TPK%K116(:)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K1& -&18(:)*PCONC(:,40)+0.91850*TPK%K125(:)*PCONC(:,5) +!AROO/RP18=0.0 ! -!ALD/XO2=0.0 +!AROO/RPG3=0.0 ! -!ALD/WC_O3=0.0 +!AROO/URG4=0.0 ! -!ALD/WC_H2O2=0.0 +!AROO/UR8=0.0 ! -!ALD/WC_NO=0.0 +!AROO/UR17=0.0 ! -!ALD/WC_NO2=0.0 +!AROO/UR7=0.0 ! -!ALD/WC_NO3=0.0 +!AROO/RPR3=0.0 ! -!ALD/WC_N2O5=0.0 +!AROO/URG6=0.0 ! -!ALD/WC_HONO=0.0 +!AROO/UR22=0.0 ! -!ALD/WC_HNO3=0.0 +!AROO/URG7=0.0 ! -!ALD/WC_HNO4=0.0 +!AROO/RPR4=0.0 ! -!ALD/WC_NH3=0.0 +!AROO/RPR7=0.0 ! -!ALD/WC_OH=0.0 +!AROO/RPG7=0.0 ! -!ALD/WC_HO2=0.0 +!AROO/URG8=0.0 ! -!ALD/WC_CO2=0.0 +!AROO/UR19=0.0 ! -!ALD/WC_SO2=0.0 +!AROO/URG9=0.0 ! -!ALD/WC_SULF=0.0 +!AROO/AP7=0.0 ! -!ALD/WC_HCHO=0.0 +!AROO/URG10=0.0 ! -!ALD/WC_ORA1=0.0 +!AROO/RPR1=0.0 ! -!ALD/WC_ORA2=0.0 +!AROO/RPR5=0.0 ! -!ALD/WC_MO2=0.0 +!AROO/RPR8=0.0 ! -!ALD/WC_OP1=0.0 +!AROO/RP10=0.0 ! -!ALD/WC_ASO3=0.0 +!AROO/RP11=0.0 ! -!ALD/WC_ASO4=0.0 +!AROO/RP16=0.0 ! -!ALD/WC_ASO5=0.0 +!AROO/RPRL=0.0 ! -!ALD/WC_AHSO5=0.0 +!AROO/APAN=0.0 ! -!ALD/WC_AHMS=0.0 +!AROO/PAN1=0.0 ! -!ALD/WR_O3=0.0 +!AROO/PAN2=0.0 ! -!ALD/WR_H2O2=0.0 +!AROO/PAN3=0.0 ! -!ALD/WR_NO=0.0 +!AROO/PAN4=0.0 ! -!ALD/WR_NO2=0.0 +!AROO/PAN6=0.0 ! -!ALD/WR_NO3=0.0 +!AROO/PAN7=0.0 ! -!ALD/WR_N2O5=0.0 +!AROO/PAN8=0.0 ! -!ALD/WR_HONO=0.0 +!AROO/PN10=0.0 ! -!ALD/WR_HNO3=0.0 +!AROO/RO2T=0.0 ! -!ALD/WR_HNO4=0.0 +!AROO/RO21=0.0 ! -!ALD/WR_NH3=0.0 +!AROO/RO25=0.0 ! -!ALD/WR_OH=0.0 +!ARAL/NO=+TPK%CF24*K189*<RO221> + PJAC(:,25,1)=+TPK%CF24*TPK%K189(:)*TPK%RO221(:) ! -!ALD/WR_HO2=0.0 +!ARAL/NO2=0.0 ! -!ALD/WR_CO2=0.0 +!ARAL/O3=0.0 ! -!ALD/WR_SO2=0.0 +!ARAL/HONO=0.0 ! -!ALD/WR_SULF=0.0 +!ARAL/HNO3=0.0 ! -!ALD/WR_HCHO=0.0 +!ARAL/HNO4=0.0 ! -!ALD/WR_ORA1=0.0 +!ARAL/N2O5=0.0 ! -!ALD/WR_ORA2=0.0 +!ARAL/NO3=-K081*<ARAL> + PJAC(:,25,8)=-TPK%K081(:)*PCONC(:,25) ! -!ALD/WR_MO2=0.0 +!ARAL/NH3=0.0 ! -!ALD/WR_OP1=0.0 +!ARAL/HO2=+K191*<RO221> + PJAC(:,25,10)=+TPK%K191(:)*TPK%RO221(:) ! -!ALD/WR_ASO3=0.0 +!ARAL/CO=0.0 ! -!ALD/WR_ASO4=0.0 +!ARAL/H2O2=0.0 ! -!ALD/WR_ASO5=0.0 +!ARAL/SO2=0.0 ! -!ALD/WR_AHSO5=0.0 +!ARAL/H2SO4=0.0 ! -!ALD/WR_AHMS=0.0 +!ARAL/OH=-K082*<ARAL> + PJAC(:,25,15)=-TPK%K082(:)*PCONC(:,25) ! -!KET/O3=+0.07377*K079*<ALKE>+0.00000*K080*<BIO> - PJAC(:,24,1)=+0.07377*TPK%K079(:)*PCONC(:,19)+0.00000*TPK%K080(:)*PCONC(:,20) +!ARAL/ETHE=0.0 ! -!KET/H2O2=0.0 +!ARAL/OLEL=0.0 ! -!KET/NO=+0.54531*K091*<ALKAP>+0.05220*K092*<ALKEP>+0.00000*K093*<BIOP>+0.37862* -!K096*<OLN> - PJAC(:,24,3)=+0.54531*TPK%K091(:)*PCONC(:,33)+0.05220*TPK%K092(:)*PCONC(:,34)+& -&0.00000*TPK%K093(:)*PCONC(:,35)+0.37862*TPK%K096(:)*PCONC(:,40) +!ARAL/OLEH=0.0 ! -!KET/NO2=0.0 +!ARAL/ALKL=0.0 ! -!KET/NO3=+0.00632*K074*<CARBO>+0.62978*K120*<ALKAP>+0.02051*K121*<ALKEP>+0.0000 -!0*K122*<BIOP>+0.34740*K125*<OLN> - PJAC(:,24,5)=+0.00632*TPK%K074(:)*PCONC(:,25)+0.62978*TPK%K120(:)*PCONC(:,33)+& -&0.02051*TPK%K121(:)*PCONC(:,34)+0.00000*TPK%K122(:)*PCONC(:,35)+0.34740*TPK%K1& -&25(:)*PCONC(:,40) +!ARAL/ALKM=0.0 ! -!KET/N2O5=0.0 +!ARAL/ALKH=0.0 ! -!KET/HONO=0.0 +!ARAL/AROH=0.0 ! -!KET/HNO3=0.0 +!ARAL/AROL=0.0 ! -!KET/HNO4=0.0 +!ARAL/AROO=0.0 ! -!KET/NH3=0.0 +!ARAL/ARAL=-K081*<NO3>-K082*<OH> + PJAC(:,25,25)=-TPK%K081(:)*PCONC(:,8)-TPK%K082(:)*PCONC(:,15) ! -!KET/SO2=0.0 +!ARAL/ARAC=0.0 ! -!KET/SULF=0.0 +!ARAL/PAH=0.0 ! -!KET/CO=0.0 +!ARAL/HCHO=0.0 ! -!KET/OH=+0.03498*K058*<ALKA>-K064*<KET>+0.00853*K065*<CARBO>+0.37591*K069*<OP2> - PJAC(:,24,14)=+0.03498*TPK%K058(:)*PCONC(:,18)-TPK%K064(:)*PCONC(:,24)+0.00853& -&*TPK%K065(:)*PCONC(:,25)+0.37591*TPK%K069(:)*PCONC(:,29) +!ARAL/ALD2=0.0 ! -!KET/HO2=0.0 +!ARAL/KETL=0.0 ! -!KET/CH4=0.0 +!ARAL/KETH=0.0 ! -!KET/ETH=0.0 +!ARAL/MEOH=0.0 ! -!KET/ALKA=+0.03498*K058*<OH> - PJAC(:,24,18)=+0.03498*TPK%K058(:)*PCONC(:,14) +!ARAL/ETOH=0.0 ! -!KET/ALKE=+0.07377*K079*<O3> - PJAC(:,24,19)=+0.07377*TPK%K079(:)*PCONC(:,1) +!ARAL/ALCH=0.0 ! -!KET/BIO=+0.00000*K080*<O3> - PJAC(:,24,20)=+0.00000*TPK%K080(:)*PCONC(:,1) +!ARAL/ISOP=0.0 ! -!KET/ARO=0.0 +!ARAL/BIOL=0.0 ! -!KET/HCHO=0.0 +!ARAL/BIOH=0.0 ! -!KET/ALD=0.0 +!ARAL/MTBE=0.0 ! -!KET/KET=-K015-K064*<OH> - PJAC(:,24,24)=-TPK%K015(:)-TPK%K064(:)*PCONC(:,14) +!ARAL/MVK=0.0 ! -!KET/CARBO=+0.00853*K065*<OH>+0.00632*K074*<NO3> - PJAC(:,24,25)=+0.00853*TPK%K065(:)*PCONC(:,14)+0.00632*TPK%K074(:)*PCONC(:,5) +!ARAL/MCR=0.0 ! -!KET/ONIT=+0.80*K017 - PJAC(:,24,26)=+0.80*TPK%K017(:) +!ARAL/MGLY=0.0 ! -!KET/PAN=0.0 +!ARAL/GLY=0.0 ! -!KET/OP1=0.0 +!ARAL/ORA1=0.0 ! -!KET/OP2=+0.37591*K069*<OH> - PJAC(:,24,29)=+0.37591*TPK%K069(:)*PCONC(:,14) +!ARAL/ORA2=0.0 ! -!KET/ORA1=0.0 +!ARAL/ACID=0.0 ! -!KET/ORA2=0.0 +!ARAL/UR28=0.0 ! -!KET/MO2=+0.09673*K105*<ALKAP>+0.03814*K106*<ALKEP>+0.00000*K107*<BIOP>+0.09667 -!*K110*<OLN> - PJAC(:,24,32)=+0.09673*TPK%K105(:)*PCONC(:,33)+0.03814*TPK%K106(:)*PCONC(:,34)& -&+0.00000*TPK%K107(:)*PCONC(:,35)+0.09667*TPK%K110(:)*PCONC(:,40) +!ARAL/UR21=0.0 ! -!KET/ALKAP=+0.54531*K091*<NO>+0.09673*K105*<MO2>+0.18819*K111*<CARBOP>+0.62978* -!K120*<NO3> - PJAC(:,24,33)=+0.54531*TPK%K091(:)*PCONC(:,3)+0.09673*TPK%K105(:)*PCONC(:,32)+& -&0.18819*TPK%K111(:)*PCONC(:,39)+0.62978*TPK%K120(:)*PCONC(:,5) +!ARAL/URG2=0.0 ! -!KET/ALKEP=+0.05220*K092*<NO>+0.03814*K106*<MO2>+0.06579*K112*<CARBOP>+0.02051* -!K121*<NO3> - PJAC(:,24,34)=+0.05220*TPK%K092(:)*PCONC(:,3)+0.03814*TPK%K106(:)*PCONC(:,32)+& -&0.06579*TPK%K112(:)*PCONC(:,39)+0.02051*TPK%K121(:)*PCONC(:,5) +!ARAL/UR26=0.0 ! -!KET/BIOP=+0.00000*K093*<NO>+0.00000*K107*<MO2>+0.00000*K113*<CARBOP>+0.00000*K -!122*<NO3> - PJAC(:,24,35)=+0.00000*TPK%K093(:)*PCONC(:,3)+0.00000*TPK%K107(:)*PCONC(:,32)+& -&0.00000*TPK%K113(:)*PCONC(:,39)+0.00000*TPK%K122(:)*PCONC(:,5) +!ARAL/RPG2=0.0 ! -!KET/PHO=0.0 +!ARAL/RP18=0.0 ! -!KET/ADD=0.0 +!ARAL/RPG3=0.0 ! -!KET/AROP=0.0 +!ARAL/URG4=0.0 ! -!KET/CARBOP=+0.18819*K111*<ALKAP>+0.06579*K112*<ALKEP>+0.00000*K113*<BIOP>+0.02 -!190*K115*<CARBOP>+0.02190*K115*<CARBOP>+0.10822*K116*<OLN> - PJAC(:,24,39)=+0.18819*TPK%K111(:)*PCONC(:,33)+0.06579*TPK%K112(:)*PCONC(:,34)& -&+0.00000*TPK%K113(:)*PCONC(:,35)+0.02190*TPK%K115(:)*PCONC(:,39)+0.02190*TPK%K& -&115(:)*PCONC(:,39)+0.10822*TPK%K116(:)*PCONC(:,40) +!ARAL/UR8=0.0 ! -!KET/OLN=+0.37862*K096*<NO>+0.09667*K110*<MO2>+0.10822*K116*<CARBOP>+0.00000*K1 -!18*<OLN>+0.00000*K118*<OLN>+0.34740*K125*<NO3> - PJAC(:,24,40)=+0.37862*TPK%K096(:)*PCONC(:,3)+0.09667*TPK%K110(:)*PCONC(:,32)+& -&0.10822*TPK%K116(:)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K1& -&18(:)*PCONC(:,40)+0.34740*TPK%K125(:)*PCONC(:,5) +!ARAL/UR17=0.0 ! -!KET/XO2=0.0 +!ARAL/UR7=0.0 ! -!KET/WC_O3=0.0 +!ARAL/RPR3=0.0 ! -!KET/WC_H2O2=0.0 +!ARAL/URG6=0.0 ! -!KET/WC_NO=0.0 +!ARAL/UR22=0.0 ! -!KET/WC_NO2=0.0 +!ARAL/URG7=0.0 ! -!KET/WC_NO3=0.0 +!ARAL/RPR4=0.0 ! -!KET/WC_N2O5=0.0 +!ARAL/RPR7=0.0 ! -!KET/WC_HONO=0.0 +!ARAL/RPG7=0.0 ! -!KET/WC_HNO3=0.0 +!ARAL/URG8=0.0 ! -!KET/WC_HNO4=0.0 +!ARAL/UR19=0.0 ! -!KET/WC_NH3=0.0 +!ARAL/URG9=0.0 ! -!KET/WC_OH=0.0 +!ARAL/AP7=0.0 ! -!KET/WC_HO2=0.0 +!ARAL/URG10=0.0 ! -!KET/WC_CO2=0.0 +!ARAL/RPR1=0.0 ! -!KET/WC_SO2=0.0 +!ARAL/RPR5=0.0 ! -!KET/WC_SULF=0.0 +!ARAL/RPR8=0.0 ! -!KET/WC_HCHO=0.0 +!ARAL/RP10=0.0 ! -!KET/WC_ORA1=0.0 +!ARAL/RP11=0.0 ! -!KET/WC_ORA2=0.0 +!ARAL/RP16=0.0 ! -!KET/WC_MO2=0.0 +!ARAL/RPRL=0.0 ! -!KET/WC_OP1=0.0 +!ARAL/APAN=0.0 ! -!KET/WC_ASO3=0.0 +!ARAL/PAN1=0.0 ! -!KET/WC_ASO4=0.0 +!ARAL/PAN2=0.0 ! -!KET/WC_ASO5=0.0 +!ARAL/PAN3=0.0 ! -!KET/WC_AHSO5=0.0 +!ARAL/PAN4=0.0 ! -!KET/WC_AHMS=0.0 +!ARAL/PAN6=0.0 ! -!KET/WR_O3=0.0 +!ARAL/PAN7=0.0 ! -!KET/WR_H2O2=0.0 +!ARAL/PAN8=0.0 ! -!KET/WR_NO=0.0 +!ARAL/PN10=0.0 ! -!KET/WR_NO2=0.0 +!ARAL/RO2T=+K190*<RO221> + PJAC(:,25,85)=+TPK%K190(:)*TPK%RO221(:) ! -!KET/WR_NO3=0.0 +!ARAL/RO21=0.0 ! -!KET/WR_N2O5=0.0 +!ARAL/RO25=0.0 ! -!KET/WR_HONO=0.0 +RETURN +END SUBROUTINE SUBJ4 ! -!KET/WR_HNO3=0.0 +SUBROUTINE SUBJ5 ! -!KET/WR_HNO4=0.0 +!Indices 26 a 30 ! -!KET/WR_NH3=0.0 ! -!KET/WR_OH=0.0 +!ARAC/NO=0.0 ! -!KET/WR_HO2=0.0 +!ARAC/NO2=0.0 ! -!KET/WR_CO2=0.0 +!ARAC/O3=0.0 ! -!KET/WR_SO2=0.0 +!ARAC/HONO=0.0 ! -!KET/WR_SULF=0.0 +!ARAC/HNO3=0.0 ! -!KET/WR_HCHO=0.0 +!ARAC/HNO4=0.0 ! -!KET/WR_ORA1=0.0 +!ARAC/N2O5=0.0 ! -!KET/WR_ORA2=0.0 +!ARAC/NO3=+K081*<ARAL> + PJAC(:,26,8)=+TPK%K081(:)*PCONC(:,25) ! -!KET/WR_MO2=0.0 +!ARAC/NH3=0.0 ! -!KET/WR_OP1=0.0 +!ARAC/HO2=0.0 ! -!KET/WR_ASO3=0.0 +!ARAC/CO=0.0 ! -!KET/WR_ASO4=0.0 +!ARAC/H2O2=0.0 ! -!KET/WR_ASO5=0.0 +!ARAC/SO2=0.0 ! -!KET/WR_AHSO5=0.0 +!ARAC/H2SO4=0.0 ! -!KET/WR_AHMS=0.0 +!ARAC/OH=+TPK%CF39*K082*<ARAL>-K083*<ARAC> + PJAC(:,26,15)=+TPK%CF39*TPK%K082(:)*PCONC(:,25)-TPK%K083(:)*PCONC(:,26) ! -!CARBO/O3=+0.00000*K079*<ALKE>+0.39754*K080*<BIO>+1.07583*K081*<CARBO>-K081*<CA -!RBO> - PJAC(:,25,1)=+0.00000*TPK%K079(:)*PCONC(:,19)+0.39754*TPK%K080(:)*PCONC(:,20)+& -&1.07583*TPK%K081(:)*PCONC(:,25)-TPK%K081(:)*PCONC(:,25) +!ARAC/ETHE=0.0 ! -!CARBO/H2O2=0.0 +!ARAC/OLEL=0.0 ! -!CARBO/NO=+0.03407*K091*<ALKAP>+0.45463*K093*<BIOP>+2.06993*K094*<AROP>+0.08670 -!*K095*<CARBOP> - PJAC(:,25,3)=+0.03407*TPK%K091(:)*PCONC(:,33)+0.45463*TPK%K093(:)*PCONC(:,35)+& -&2.06993*TPK%K094(:)*PCONC(:,38)+0.08670*TPK%K095(:)*PCONC(:,39) +!ARAC/OLEH=0.0 ! -!CARBO/NO2=0.0 +!ARAC/ALKL=0.0 ! -!CARBO/NO3=+0.10530*K074*<CARBO>-K074*<CARBO>+0.00000*K076*<ALKE>+0.91741*K077* -!<BIO>+0.03531*K120*<ALKAP>+0.61160*K122*<BIOP>+2.81904*K123*<AROP>+0.03455*K12 -!4*<CARBOP> - PJAC(:,25,5)=+0.10530*TPK%K074(:)*PCONC(:,25)-TPK%K074(:)*PCONC(:,25)+0.00000*& -&TPK%K076(:)*PCONC(:,19)+0.91741*TPK%K077(:)*PCONC(:,20)+0.03531*TPK%K120(:)*PC& -&ONC(:,33)+0.61160*TPK%K122(:)*PCONC(:,35)+2.81904*TPK%K123(:)*PCONC(:,38)+0.03& -&455*TPK%K124(:)*PCONC(:,39) +!ARAC/ALKM=0.0 ! -!CARBO/N2O5=0.0 +!ARAC/ALKH=0.0 ! -!CARBO/HONO=0.0 +!ARAC/AROH=0.0 ! -!CARBO/HNO3=0.0 +!ARAC/AROL=0.0 ! -!CARBO/HNO4=0.0 +!ARAC/AROO=0.0 ! -!CARBO/NH3=0.0 +!ARAC/ARAL=+K081*<NO3>+TPK%CF39*K082*<OH> + PJAC(:,26,25)=+TPK%K081(:)*PCONC(:,8)+TPK%CF39*TPK%K082(:)*PCONC(:,15) ! -!CARBO/SO2=0.0 +!ARAC/ARAC=-K083*<OH> + PJAC(:,26,26)=-TPK%K083(:)*PCONC(:,15) ! -!CARBO/SULF=0.0 +!ARAC/PAH=0.0 ! -!CARBO/CO=0.0 +!ARAC/HCHO=0.0 ! -!CARBO/OH=+0.00835*K058*<ALKA>+0.16919*K065*<CARBO>-K065*<CARBO>+0.21863*K070*< -!PAN> - PJAC(:,25,14)=+0.00835*TPK%K058(:)*PCONC(:,18)+0.16919*TPK%K065(:)*PCONC(:,25)& -&-TPK%K065(:)*PCONC(:,25)+0.21863*TPK%K070(:)*PCONC(:,27) +!ARAC/ALD2=0.0 ! -!CARBO/HO2=0.0 +!ARAC/KETL=0.0 ! -!CARBO/CH4=0.0 +!ARAC/KETH=0.0 ! -!CARBO/ETH=0.0 +!ARAC/MEOH=0.0 ! -!CARBO/ALKA=+0.00835*K058*<OH> - PJAC(:,25,18)=+0.00835*TPK%K058(:)*PCONC(:,14) +!ARAC/ETOH=0.0 ! -!CARBO/ALKE=+0.00000*K076*<NO3>+0.00000*K079*<O3> - PJAC(:,25,19)=+0.00000*TPK%K076(:)*PCONC(:,5)+0.00000*TPK%K079(:)*PCONC(:,1) +!ARAC/ALCH=0.0 ! -!CARBO/BIO=+0.13255*K054*<O3P>+0.91741*K077*<NO3>+0.39754*K080*<O3> - PJAC(:,25,20)=+0.13255*TPK%K054(:)*TPK%O3P(:)+0.91741*TPK%K077(:)*PCONC(:,5)+0& -&.39754*TPK%K080(:)*PCONC(:,1) +!ARAC/ISOP=0.0 ! -!CARBO/ARO=0.0 +!ARAC/BIOL=0.0 ! -!CARBO/HCHO=0.0 +!ARAC/BIOH=0.0 ! -!CARBO/ALD=0.0 +!ARAC/MTBE=0.0 ! -!CARBO/KET=0.0 +!ARAC/MVK=0.0 ! -!CARBO/CARBO=-K016-K055*<O3P>+0.16919*K065*<OH>-K065*<OH>+0.10530*K074*<NO3>-K0 -!74*<NO3>+1.07583*K081*<O3>-K081*<O3> - PJAC(:,25,25)=-TPK%K016(:)-TPK%K055(:)*TPK%O3P(:)+0.16919*TPK%K065(:)*PCONC(:,& -&14)-TPK%K065(:)*PCONC(:,14)+0.10530*TPK%K074(:)*PCONC(:,5)-TPK%K074(:)*PCONC(:& -&,5)+1.07583*TPK%K081(:)*PCONC(:,1)-TPK%K081(:)*PCONC(:,1) +!ARAC/MCR=0.0 ! -!CARBO/ONIT=0.0 +!ARAC/MGLY=0.0 ! -!CARBO/PAN=+0.21863*K070*<OH> - PJAC(:,25,27)=+0.21863*TPK%K070(:)*PCONC(:,14) +!ARAC/GLY=0.0 ! -!CARBO/OP1=0.0 +!ARAC/ORA1=0.0 ! -!CARBO/OP2=0.0 +!ARAC/ORA2=0.0 ! -!CARBO/ORA1=0.0 +!ARAC/ACID=0.0 ! -!CARBO/ORA2=0.0 +!ARAC/UR28=0.0 ! -!CARBO/MO2=+0.07976*K105*<ALKAP>+0.56064*K107*<BIOP>+1.99461*K108*<AROP>+0.1538 -!7*K109*<CARBOP> - PJAC(:,25,32)=+0.07976*TPK%K105(:)*PCONC(:,33)+0.56064*TPK%K107(:)*PCONC(:,35)& -&+1.99461*TPK%K108(:)*PCONC(:,38)+0.15387*TPK%K109(:)*PCONC(:,39) +!ARAC/UR21=0.0 ! -!CARBO/ALKAP=+0.03407*K091*<NO>+0.07976*K105*<MO2>+0.06954*K111*<CARBOP>+0.0353 -!1*K120*<NO3> - PJAC(:,25,33)=+0.03407*TPK%K091(:)*PCONC(:,3)+0.07976*TPK%K105(:)*PCONC(:,32)+& -&0.06954*TPK%K111(:)*PCONC(:,39)+0.03531*TPK%K120(:)*PCONC(:,5) +!ARAC/URG2=0.0 ! -!CARBO/ALKEP=0.0 +!ARAC/UR26=0.0 ! -!CARBO/BIOP=+0.45463*K093*<NO>+0.56064*K107*<MO2>+0.78591*K113*<CARBOP>+0.61160 -!*K122*<NO3> - PJAC(:,25,35)=+0.45463*TPK%K093(:)*PCONC(:,3)+0.56064*TPK%K107(:)*PCONC(:,32)+& -&0.78591*TPK%K113(:)*PCONC(:,39)+0.61160*TPK%K122(:)*PCONC(:,5) +!ARAC/RPG2=0.0 ! -!CARBO/PHO=0.0 +!ARAC/RP18=0.0 ! -!CARBO/ADD=0.0 +!ARAC/RPG3=0.0 ! -!CARBO/AROP=+2.06993*K094*<NO>+1.99461*K108*<MO2>+1.99455*K114*<CARBOP>+2.81904 -!*K123*<NO3> - PJAC(:,25,38)=+2.06993*TPK%K094(:)*PCONC(:,3)+1.99461*TPK%K108(:)*PCONC(:,32)+& -&1.99455*TPK%K114(:)*PCONC(:,39)+2.81904*TPK%K123(:)*PCONC(:,5) +!ARAC/URG4=0.0 ! -!CARBO/CARBOP=+0.08670*K095*<NO>+0.15387*K109*<MO2>+0.06954*K111*<ALKAP>+0.7859 -!1*K113*<BIOP>+1.99455*K114*<AROP>+0.10777*K115*<CARBOP>+0.10777*K115*<CARBOP>+ -!0.03455*K124*<NO3> - PJAC(:,25,39)=+0.08670*TPK%K095(:)*PCONC(:,3)+0.15387*TPK%K109(:)*PCONC(:,32)+& -&0.06954*TPK%K111(:)*PCONC(:,33)+0.78591*TPK%K113(:)*PCONC(:,35)+1.99455*TPK%K1& -&14(:)*PCONC(:,38)+0.10777*TPK%K115(:)*PCONC(:,39)+0.10777*TPK%K115(:)*PCONC(:,& -&39)+0.03455*TPK%K124(:)*PCONC(:,5) +!ARAC/UR8=0.0 ! -!CARBO/OLN=0.0 +!ARAC/UR17=0.0 ! -!CARBO/XO2=0.0 +!ARAC/UR7=0.0 ! -!CARBO/WC_O3=0.0 +!ARAC/RPR3=0.0 ! -!CARBO/WC_H2O2=0.0 +!ARAC/URG6=0.0 ! -!CARBO/WC_NO=0.0 +!ARAC/UR22=0.0 ! -!CARBO/WC_NO2=0.0 +!ARAC/URG7=0.0 ! -!CARBO/WC_NO3=0.0 +!ARAC/RPR4=0.0 ! -!CARBO/WC_N2O5=0.0 +!ARAC/RPR7=0.0 ! -!CARBO/WC_HONO=0.0 +!ARAC/RPG7=0.0 ! -!CARBO/WC_HNO3=0.0 +!ARAC/URG8=0.0 ! -!CARBO/WC_HNO4=0.0 +!ARAC/UR19=0.0 ! -!CARBO/WC_NH3=0.0 +!ARAC/URG9=0.0 ! -!CARBO/WC_OH=0.0 +!ARAC/AP7=0.0 ! -!CARBO/WC_HO2=0.0 +!ARAC/URG10=0.0 ! -!CARBO/WC_CO2=0.0 +!ARAC/RPR1=0.0 ! -!CARBO/WC_SO2=0.0 +!ARAC/RPR5=0.0 ! -!CARBO/WC_SULF=0.0 +!ARAC/RPR8=0.0 ! -!CARBO/WC_HCHO=0.0 +!ARAC/RP10=0.0 ! -!CARBO/WC_ORA1=0.0 +!ARAC/RP11=0.0 ! -!CARBO/WC_ORA2=0.0 +!ARAC/RP16=0.0 ! -!CARBO/WC_MO2=0.0 +!ARAC/RPRL=0.0 ! -!CARBO/WC_OP1=0.0 +!ARAC/APAN=0.0 ! -!CARBO/WC_ASO3=0.0 +!ARAC/PAN1=0.0 ! -!CARBO/WC_ASO4=0.0 +!ARAC/PAN2=0.0 ! -!CARBO/WC_ASO5=0.0 +!ARAC/PAN3=0.0 ! -!CARBO/WC_AHSO5=0.0 +!ARAC/PAN4=0.0 ! -!CARBO/WC_AHMS=0.0 +!ARAC/PAN6=0.0 ! -!CARBO/WR_O3=0.0 +!ARAC/PAN7=0.0 ! -!CARBO/WR_H2O2=0.0 +!ARAC/PAN8=0.0 ! -!CARBO/WR_NO=0.0 +!ARAC/PN10=0.0 ! -!CARBO/WR_NO2=0.0 +!ARAC/RO2T=0.0 ! -!CARBO/WR_NO3=0.0 +!ARAC/RO21=0.0 ! -!CARBO/WR_N2O5=0.0 +!ARAC/RO25=0.0 ! -!CARBO/WR_HONO=0.0 +!PAH/NO=0.0 ! -!CARBO/WR_HNO3=0.0 +!PAH/NO2=0.0 ! -!CARBO/WR_HNO4=0.0 +!PAH/O3=0.0 ! -!CARBO/WR_NH3=0.0 +!PAH/HONO=0.0 ! -!CARBO/WR_OH=0.0 +!PAH/HNO3=0.0 ! -!CARBO/WR_HO2=0.0 +!PAH/HNO4=0.0 ! -!CARBO/WR_CO2=0.0 +!PAH/N2O5=0.0 ! -!CARBO/WR_SO2=0.0 +!PAH/NO3=0.0 ! -!CARBO/WR_SULF=0.0 +!PAH/NH3=0.0 ! -!CARBO/WR_HCHO=0.0 +!PAH/HO2=0.0 ! -!CARBO/WR_ORA1=0.0 +!PAH/CO=0.0 ! -!CARBO/WR_ORA2=0.0 +!PAH/H2O2=0.0 ! -!CARBO/WR_MO2=0.0 +!PAH/SO2=0.0 ! -!CARBO/WR_OP1=0.0 +!PAH/H2SO4=0.0 ! -!CARBO/WR_ASO3=0.0 +!PAH/OH=-K092*<PAH> + PJAC(:,27,15)=-TPK%K092(:)*PCONC(:,27) ! -!CARBO/WR_ASO4=0.0 +!PAH/ETHE=0.0 ! -!CARBO/WR_ASO5=0.0 +!PAH/OLEL=0.0 ! -!CARBO/WR_AHSO5=0.0 +!PAH/OLEH=0.0 ! -!CARBO/WR_AHMS=0.0 +!PAH/ALKL=0.0 ! -RETURN -END SUBROUTINE SUBJ4 +!PAH/ALKM=0.0 ! -SUBROUTINE SUBJ5 +!PAH/ALKH=0.0 ! -!Indices 26 a 30 +!PAH/AROH=0.0 +! +!PAH/AROL=0.0 +! +!PAH/AROO=0.0 +! +!PAH/ARAL=0.0 +! +!PAH/ARAC=0.0 +! +!PAH/PAH=-K092*<OH> + PJAC(:,27,27)=-TPK%K092(:)*PCONC(:,15) +! +!PAH/HCHO=0.0 +! +!PAH/ALD2=0.0 +! +!PAH/KETL=0.0 +! +!PAH/KETH=0.0 +! +!PAH/MEOH=0.0 +! +!PAH/ETOH=0.0 +! +!PAH/ALCH=0.0 +! +!PAH/ISOP=0.0 +! +!PAH/BIOL=0.0 +! +!PAH/BIOH=0.0 +! +!PAH/MTBE=0.0 +! +!PAH/MVK=0.0 +! +!PAH/MCR=0.0 +! +!PAH/MGLY=0.0 +! +!PAH/GLY=0.0 +! +!PAH/ORA1=0.0 +! +!PAH/ORA2=0.0 +! +!PAH/ACID=0.0 +! +!PAH/UR28=0.0 +! +!PAH/UR21=0.0 +! +!PAH/URG2=0.0 +! +!PAH/UR26=0.0 +! +!PAH/RPG2=0.0 +! +!PAH/RP18=0.0 +! +!PAH/RPG3=0.0 +! +!PAH/URG4=0.0 +! +!PAH/UR8=0.0 +! +!PAH/UR17=0.0 +! +!PAH/UR7=0.0 +! +!PAH/RPR3=0.0 +! +!PAH/URG6=0.0 +! +!PAH/UR22=0.0 +! +!PAH/URG7=0.0 +! +!PAH/RPR4=0.0 +! +!PAH/RPR7=0.0 +! +!PAH/RPG7=0.0 +! +!PAH/URG8=0.0 +! +!PAH/UR19=0.0 +! +!PAH/URG9=0.0 +! +!PAH/AP7=0.0 +! +!PAH/URG10=0.0 ! +!PAH/RPR1=0.0 ! -!ONIT/O3=0.0 +!PAH/RPR5=0.0 ! -!ONIT/H2O2=0.0 +!PAH/RPR8=0.0 ! -!ONIT/NO=+0.08459*K091*<ALKAP>+0.15300*K093*<BIOP>+0.04885*K094*<AROP>+0.18401* -!K096*<OLN> - PJAC(:,26,3)=+0.08459*TPK%K091(:)*PCONC(:,33)+0.15300*TPK%K093(:)*PCONC(:,35)+& -&0.04885*TPK%K094(:)*PCONC(:,38)+0.18401*TPK%K096(:)*PCONC(:,40) +!PAH/RP10=0.0 ! -!ONIT/NO2=+K083*<PHO> - PJAC(:,26,4)=+TPK%K083(:)*PCONC(:,36) +!PAH/RP11=0.0 ! -!ONIT/NO3=+0.60*K078*<PAN>+0.25928*K125*<OLN> - PJAC(:,26,5)=+0.60*TPK%K078(:)*PCONC(:,27)+0.25928*TPK%K125(:)*PCONC(:,40) +!PAH/RP16=0.0 ! -!ONIT/N2O5=0.0 +!PAH/RPRL=0.0 ! -!ONIT/HONO=0.0 +!PAH/APAN=0.0 ! -!ONIT/HNO3=0.0 +!PAH/PAN1=0.0 ! -!ONIT/HNO4=0.0 +!PAH/PAN2=0.0 ! -!ONIT/NH3=0.0 +!PAH/PAN3=0.0 ! -!ONIT/SO2=0.0 +!PAH/PAN4=0.0 ! -!ONIT/SULF=0.0 +!PAH/PAN6=0.0 ! -!ONIT/CO=0.0 +!PAH/PAN7=0.0 ! -!ONIT/OH=-K071*<ONIT> - PJAC(:,26,14)=-TPK%K071(:)*PCONC(:,26) +!PAH/PAN8=0.0 ! -!ONIT/HO2=+K103*<OLN> - PJAC(:,26,15)=+TPK%K103(:)*PCONC(:,40) +!PAH/PN10=0.0 ! -!ONIT/CH4=0.0 +!PAH/RO2T=0.0 ! -!ONIT/ETH=0.0 +!PAH/RO21=0.0 ! -!ONIT/ALKA=0.0 +!PAH/RO25=0.0 ! -!ONIT/ALKE=0.0 +!HCHO/NO=+K110*<RO21>+K113*<RO22>+K116*<RO23>+K119*<RO24>+TPK%CF6*K150*<RO29>+K +!153*<RO210>+K156*<RO211>+K159*<RO212>+K162*<RO213>+TPK%CF10*K171*<RO215>+K183* +!<RO219>+K285*<RO249>+K291*<RO251>+K294*<RO252>+K297*<RO253> + PJAC(:,28,1)=+TPK%K110(:)*PCONC(:,86)+TPK%K113(:)*TPK%RO22(:)+TPK%K116(:)*TPK%& +&RO23(:)+TPK%K119(:)*TPK%RO24(:)+TPK%CF6*TPK%K150(:)*TPK%RO29(:)+TPK%K153(:)*TP& +&K%RO210(:)+TPK%K156(:)*TPK%RO211(:)+TPK%K159(:)*TPK%RO212(:)+TPK%K162(:)*TPK%R& +&O213(:)+TPK%CF10*TPK%K171(:)*TPK%RO215(:)+TPK%K183(:)*TPK%RO219(:)+TPK%K285(:)& +&*TPK%RO249(:)+TPK%K291(:)*TPK%RO251(:)+TPK%K294(:)*TPK%RO252(:)+TPK%K297(:)*TP& +&K%RO253(:) ! -!ONIT/BIO=0.0 +!HCHO/NO2=0.0 +! +!HCHO/O3=+0.5*K051*<ETHE>+0.5*K056*<OLEL>+0.5*K066*<ISOP>+0.5*K076*<OLEH>+0.5*K +!281*<MVK>+0.5*K282*<MCR> + PJAC(:,28,3)=+0.5*TPK%K051(:)*PCONC(:,16)+0.5*TPK%K056(:)*PCONC(:,17)+0.5*TPK%& +&K066(:)*PCONC(:,35)+0.5*TPK%K076(:)*PCONC(:,18)+0.5*TPK%K281(:)*PCONC(:,39)+0.& +&5*TPK%K282(:)*PCONC(:,40) +! +!HCHO/HONO=0.0 +! +!HCHO/HNO3=0.0 +! +!HCHO/HNO4=0.0 +! +!HCHO/N2O5=0.0 +! +!HCHO/NO3=-K047*<HCHO> + PJAC(:,28,8)=-TPK%K047(:)*PCONC(:,28) +! +!HCHO/NH3=0.0 +! +!HCHO/HO2=+K112*<RO21>+K115*<RO22>+K118*<RO23>+K121*<RO24>+K152*<RO29>+K155*<RO +!210>+K158*<RO211>+K161*<RO212>+K164*<RO213>+TPK%CF14*K173*<RO215>+K185*<RO219> +!+K287*<RO249>+K292*<RO251>+K295*<RO252>+K298*<RO253> + PJAC(:,28,10)=+TPK%K112(:)*PCONC(:,86)+TPK%K115(:)*TPK%RO22(:)+TPK%K118(:)*TPK& +&%RO23(:)+TPK%K121(:)*TPK%RO24(:)+TPK%K152(:)*TPK%RO29(:)+TPK%K155(:)*TPK%RO210& +&(:)+TPK%K158(:)*TPK%RO211(:)+TPK%K161(:)*TPK%RO212(:)+TPK%K164(:)*TPK%RO213(:)& +&+TPK%CF14*TPK%K173(:)*TPK%RO215(:)+TPK%K185(:)*TPK%RO219(:)+TPK%K287(:)*TPK%RO& +&249(:)+TPK%K292(:)*TPK%RO251(:)+TPK%K295(:)*TPK%RO252(:)+TPK%K298(:)*TPK%RO253& +&(:) +! +!HCHO/CO=0.0 +! +!HCHO/H2O2=0.0 +! +!HCHO/SO2=0.0 +! +!HCHO/H2SO4=0.0 +! +!HCHO/OH=-K046*<HCHO>+K048*<MEOH> + PJAC(:,28,15)=-TPK%K046(:)*PCONC(:,28)+TPK%K048(:)*PCONC(:,32) +! +!HCHO/ETHE=+0.5*K051*<O3> + PJAC(:,28,16)=+0.5*TPK%K051(:)*PCONC(:,3) +! +!HCHO/OLEL=+0.5*K056*<O3> + PJAC(:,28,17)=+0.5*TPK%K056(:)*PCONC(:,3) +! +!HCHO/OLEH=+0.5*K076*<O3> + PJAC(:,28,18)=+0.5*TPK%K076(:)*PCONC(:,3) +! +!HCHO/ALKL=0.0 +! +!HCHO/ALKM=0.0 +! +!HCHO/ALKH=0.0 +! +!HCHO/AROH=0.0 +! +!HCHO/AROL=0.0 +! +!HCHO/AROO=0.0 ! -!ONIT/ARO=0.0 +!HCHO/ARAL=0.0 ! -!ONIT/HCHO=0.0 +!HCHO/ARAC=0.0 ! -!ONIT/ALD=0.0 +!HCHO/PAH=0.0 ! -!ONIT/KET=0.0 +!HCHO/HCHO=-K044-K045-K046*<OH>-K047*<NO3> + PJAC(:,28,28)=-TPK%K044(:)-TPK%K045(:)-TPK%K046(:)*PCONC(:,15)-TPK%K047(:)*PCO& +&NC(:,8) ! -!ONIT/CARBO=0.0 +!HCHO/ALD2=0.0 ! -!ONIT/ONIT=-K017-K071*<OH> - PJAC(:,26,26)=-TPK%K017(:)-TPK%K071(:)*PCONC(:,14) +!HCHO/KETL=0.0 ! -!ONIT/PAN=+0.60*K078*<NO3> - PJAC(:,26,27)=+0.60*TPK%K078(:)*PCONC(:,5) +!HCHO/KETH=0.0 ! -!ONIT/OP1=0.0 +!HCHO/MEOH=+K048*<OH> + PJAC(:,28,32)=+TPK%K048(:)*PCONC(:,15) ! -!ONIT/OP2=0.0 +!HCHO/ETOH=0.0 ! -!ONIT/ORA1=0.0 +!HCHO/ALCH=0.0 ! -!ONIT/ORA2=0.0 +!HCHO/ISOP=+0.5*K066*<O3> + PJAC(:,28,35)=+0.5*TPK%K066(:)*PCONC(:,3) ! -!ONIT/MO2=+0.67560*K110*<OLN> - PJAC(:,26,32)=+0.67560*TPK%K110(:)*PCONC(:,40) +!HCHO/BIOL=0.0 ! -!ONIT/ALKAP=+0.08459*K091*<NO> - PJAC(:,26,33)=+0.08459*TPK%K091(:)*PCONC(:,3) +!HCHO/BIOH=0.0 ! -!ONIT/ALKEP=0.0 +!HCHO/MTBE=0.0 ! -!ONIT/BIOP=+0.15300*K093*<NO> - PJAC(:,26,35)=+0.15300*TPK%K093(:)*PCONC(:,3) +!HCHO/MVK=+0.5*K281*<O3> + PJAC(:,28,39)=+0.5*TPK%K281(:)*PCONC(:,3) ! -!ONIT/PHO=+K083*<NO2> - PJAC(:,26,36)=+TPK%K083(:)*PCONC(:,4) +!HCHO/MCR=+0.5*K282*<O3> + PJAC(:,28,40)=+0.5*TPK%K282(:)*PCONC(:,3) ! -!ONIT/ADD=0.0 +!HCHO/MGLY=0.0 ! -!ONIT/AROP=+0.04885*K094*<NO> - PJAC(:,26,38)=+0.04885*TPK%K094(:)*PCONC(:,3) +!HCHO/GLY=0.0 ! -!ONIT/CARBOP=+0.66562*K116*<OLN> - PJAC(:,26,39)=+0.66562*TPK%K116(:)*PCONC(:,40) +!HCHO/ORA1=0.0 +! +!HCHO/ORA2=0.0 +! +!HCHO/ACID=0.0 +! +!HCHO/UR28=0.0 +! +!HCHO/UR21=0.0 +! +!HCHO/URG2=0.0 +! +!HCHO/UR26=0.0 +! +!HCHO/RPG2=0.0 +! +!HCHO/RP18=0.0 +! +!HCHO/RPG3=0.0 +! +!HCHO/URG4=0.0 +! +!HCHO/UR8=0.0 +! +!HCHO/UR17=0.0 +! +!HCHO/UR7=0.0 +! +!HCHO/RPR3=0.0 ! -!ONIT/OLN=+0.18401*K096*<NO>+K103*<HO2>+0.67560*K110*<MO2>+0.66562*K116*<CARBOP -!>+2.00*K117*<OLN>+2.00*K117*<OLN>+0.00000*K118*<OLN>+0.00000*K118*<OLN>+0.2592 -!8*K125*<NO3> - PJAC(:,26,40)=+0.18401*TPK%K096(:)*PCONC(:,3)+TPK%K103(:)*PCONC(:,15)+0.67560*& -&TPK%K110(:)*PCONC(:,32)+0.66562*TPK%K116(:)*PCONC(:,39)+2.00*TPK%K117(:)*PCONC& -&(:,40)+2.00*TPK%K117(:)*PCONC(:,40)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TP& -&K%K118(:)*PCONC(:,40)+0.25928*TPK%K125(:)*PCONC(:,5) +!HCHO/URG6=0.0 ! -!ONIT/XO2=0.0 +!HCHO/UR22=0.0 ! -!ONIT/WC_O3=0.0 +!HCHO/URG7=0.0 ! -!ONIT/WC_H2O2=0.0 +!HCHO/RPR4=0.0 ! -!ONIT/WC_NO=0.0 +!HCHO/RPR7=0.0 ! -!ONIT/WC_NO2=0.0 +!HCHO/RPG7=0.0 ! -!ONIT/WC_NO3=0.0 +!HCHO/URG8=0.0 ! -!ONIT/WC_N2O5=0.0 +!HCHO/UR19=0.0 ! -!ONIT/WC_HONO=0.0 +!HCHO/URG9=0.0 ! -!ONIT/WC_HNO3=0.0 +!HCHO/AP7=0.0 ! -!ONIT/WC_HNO4=0.0 +!HCHO/URG10=0.0 ! -!ONIT/WC_NH3=0.0 +!HCHO/RPR1=0.0 ! -!ONIT/WC_OH=0.0 +!HCHO/RPR5=0.0 ! -!ONIT/WC_HO2=0.0 +!HCHO/RPR8=0.0 ! -!ONIT/WC_CO2=0.0 +!HCHO/RP10=0.0 ! -!ONIT/WC_SO2=0.0 +!HCHO/RP11=0.0 ! -!ONIT/WC_SULF=0.0 +!HCHO/RP16=0.0 ! -!ONIT/WC_HCHO=0.0 +!HCHO/RPRL=0.0 ! -!ONIT/WC_ORA1=0.0 +!HCHO/APAN=0.0 ! -!ONIT/WC_ORA2=0.0 +!HCHO/PAN1=0.0 ! -!ONIT/WC_MO2=0.0 +!HCHO/PAN2=0.0 ! -!ONIT/WC_OP1=0.0 +!HCHO/PAN3=0.0 ! -!ONIT/WC_ASO3=0.0 +!HCHO/PAN4=0.0 ! -!ONIT/WC_ASO4=0.0 +!HCHO/PAN6=0.0 ! -!ONIT/WC_ASO5=0.0 +!HCHO/PAN7=0.0 ! -!ONIT/WC_AHSO5=0.0 +!HCHO/PAN8=0.0 ! -!ONIT/WC_AHMS=0.0 +!HCHO/PN10=0.0 ! -!ONIT/WR_O3=0.0 +!HCHO/RO2T=+K111*<RO21>+K114*<RO22>+K117*<RO23>+K120*<RO24>+K151*<RO29>+K154*<R +!O210>+K157*<RO211>+K160*<RO212>+K163*<RO213>+TPK%CF14*K172*<RO215>+K184*<RO219 +!>+K286*<RO249>+K293*<RO251>+K296*<RO252>+K299*<RO253> + PJAC(:,28,85)=+TPK%K111(:)*PCONC(:,86)+TPK%K114(:)*TPK%RO22(:)+TPK%K117(:)*TPK& +&%RO23(:)+TPK%K120(:)*TPK%RO24(:)+TPK%K151(:)*TPK%RO29(:)+TPK%K154(:)*TPK%RO210& +&(:)+TPK%K157(:)*TPK%RO211(:)+TPK%K160(:)*TPK%RO212(:)+TPK%K163(:)*TPK%RO213(:)& +&+TPK%CF14*TPK%K172(:)*TPK%RO215(:)+TPK%K184(:)*TPK%RO219(:)+TPK%K286(:)*TPK%RO& +&249(:)+TPK%K293(:)*TPK%RO251(:)+TPK%K296(:)*TPK%RO252(:)+TPK%K299(:)*TPK%RO253& +&(:) +! +!HCHO/RO21=+K110*<NO>+K111*<RO2T>+K112*<HO2> + PJAC(:,28,86)=+TPK%K110(:)*PCONC(:,1)+TPK%K111(:)*PCONC(:,85)+TPK%K112(:)*PCON& +&C(:,10) +! +!HCHO/RO25=0.0 +! +!ALD2/NO=+K113*<RO22>+K116*<RO23>+TPK%CF4*K122*<RO25>+K144*<RO27>+TPK%CF9*K171* +!<RO215>+K174*<RO216> + PJAC(:,29,1)=+TPK%K113(:)*TPK%RO22(:)+TPK%K116(:)*TPK%RO23(:)+TPK%CF4*TPK%K122& +&(:)*PCONC(:,87)+TPK%K144(:)*TPK%RO27(:)+TPK%CF9*TPK%K171(:)*TPK%RO215(:)+TPK%K& +&174(:)*TPK%RO216(:) +! +!ALD2/NO2=0.0 +! +!ALD2/O3=+0.5*K056*<OLEL>+0.1*K281*<MVK> + PJAC(:,29,3)=+0.5*TPK%K056(:)*PCONC(:,17)+0.1*TPK%K281(:)*PCONC(:,39) +! +!ALD2/HONO=0.0 +! +!ALD2/HNO3=0.0 ! -!ONIT/WR_H2O2=0.0 +!ALD2/HNO4=0.0 ! -!ONIT/WR_NO=0.0 +!ALD2/N2O5=0.0 ! -!ONIT/WR_NO2=0.0 +!ALD2/NO3=-K061*<ALD2> + PJAC(:,29,8)=-TPK%K061(:)*PCONC(:,29) ! -!ONIT/WR_NO3=0.0 +!ALD2/NH3=0.0 ! -!ONIT/WR_N2O5=0.0 +!ALD2/HO2=+K115*<RO22>+K118*<RO23>+K124*<RO25>+K146*<RO27>+TPK%CF13*K173*<RO215 +!>+K176*<RO216> + PJAC(:,29,10)=+TPK%K115(:)*TPK%RO22(:)+TPK%K118(:)*TPK%RO23(:)+TPK%K124(:)*PCO& +&NC(:,87)+TPK%K146(:)*TPK%RO27(:)+TPK%CF13*TPK%K173(:)*TPK%RO215(:)+TPK%K176(:)& +&*TPK%RO216(:) ! -!ONIT/WR_HONO=0.0 +!ALD2/CO=0.0 ! -!ONIT/WR_HNO3=0.0 +!ALD2/H2O2=0.0 ! -!ONIT/WR_HNO4=0.0 +!ALD2/SO2=0.0 ! -!ONIT/WR_NH3=0.0 +!ALD2/H2SO4=0.0 ! -!ONIT/WR_OH=0.0 +!ALD2/OH=+TPK%CF1*K053*<ETOH>-K060*<ALD2> + PJAC(:,29,15)=+TPK%CF1*TPK%K053(:)*PCONC(:,33)-TPK%K060(:)*PCONC(:,29) ! -!ONIT/WR_HO2=0.0 +!ALD2/ETHE=0.0 ! -!ONIT/WR_CO2=0.0 +!ALD2/OLEL=+0.5*K056*<O3>+0.4*K057*<O> + PJAC(:,29,17)=+0.5*TPK%K056(:)*PCONC(:,3)+0.4*TPK%K057(:)*TPK%O(:) ! -!ONIT/WR_SO2=0.0 +!ALD2/OLEH=0.0 ! -!ONIT/WR_SULF=0.0 +!ALD2/ALKL=0.0 ! -!ONIT/WR_HCHO=0.0 +!ALD2/ALKM=0.0 ! -!ONIT/WR_ORA1=0.0 +!ALD2/ALKH=0.0 ! -!ONIT/WR_ORA2=0.0 +!ALD2/AROH=0.0 ! -!ONIT/WR_MO2=0.0 +!ALD2/AROL=0.0 ! -!ONIT/WR_OP1=0.0 +!ALD2/AROO=0.0 ! -!ONIT/WR_ASO3=0.0 +!ALD2/ARAL=0.0 ! -!ONIT/WR_ASO4=0.0 +!ALD2/ARAC=0.0 ! -!ONIT/WR_ASO5=0.0 +!ALD2/PAH=0.0 ! -!ONIT/WR_AHSO5=0.0 +!ALD2/HCHO=0.0 ! -!ONIT/WR_AHMS=0.0 +!ALD2/ALD2=-K059-K060*<OH>-K061*<NO3> + PJAC(:,29,29)=-TPK%K059(:)-TPK%K060(:)*PCONC(:,15)-TPK%K061(:)*PCONC(:,8) ! -!PAN/O3=+0.30000*K082*<PAN>-K082*<PAN> - PJAC(:,27,1)=+0.30000*TPK%K082(:)*PCONC(:,27)-TPK%K082(:)*PCONC(:,27) +!ALD2/KETL=0.0 ! -!PAN/H2O2=0.0 +!ALD2/KETH=0.0 ! -!PAN/NO=0.0 +!ALD2/MEOH=0.0 ! -!PAN/NO2=+1.00000*K088*<CARBOP> - PJAC(:,27,4)=+1.00000*TPK%K088(:)*PCONC(:,39) +!ALD2/ETOH=+TPK%CF1*K053*<OH> + PJAC(:,29,33)=+TPK%CF1*TPK%K053(:)*PCONC(:,15) ! -!PAN/NO3=+0.40000*K078*<PAN>-K078*<PAN> - PJAC(:,27,5)=+0.40000*TPK%K078(:)*PCONC(:,27)-TPK%K078(:)*PCONC(:,27) +!ALD2/ALCH=0.0 ! -!PAN/N2O5=0.0 +!ALD2/ISOP=+0.075*K067*<O> + PJAC(:,29,35)=+0.075*TPK%K067(:)*TPK%O(:) ! -!PAN/HONO=0.0 +!ALD2/BIOL=0.0 ! -!PAN/HNO3=0.0 +!ALD2/BIOH=0.0 ! -!PAN/HNO4=0.0 +!ALD2/MTBE=0.0 ! -!PAN/NH3=0.0 +!ALD2/MVK=+0.1*K281*<O3> + PJAC(:,29,39)=+0.1*TPK%K281(:)*PCONC(:,3) ! -!PAN/SO2=0.0 +!ALD2/MCR=+0.85*K284*<O> + PJAC(:,29,40)=+0.85*TPK%K284(:)*TPK%O(:) ! -!PAN/SULF=0.0 +!ALD2/MGLY=0.0 ! -!PAN/CO=0.0 +!ALD2/GLY=0.0 ! -!PAN/OH=+0.28107*K070*<PAN>-K070*<PAN> - PJAC(:,27,14)=+0.28107*TPK%K070(:)*PCONC(:,27)-TPK%K070(:)*PCONC(:,27) +!ALD2/ORA1=0.0 ! -!PAN/HO2=0.0 +!ALD2/ORA2=0.0 ! -!PAN/CH4=0.0 +!ALD2/ACID=0.0 ! -!PAN/ETH=0.0 +!ALD2/UR28=0.0 ! -!PAN/ALKA=0.0 +!ALD2/UR21=0.0 ! -!PAN/ALKE=0.0 +!ALD2/URG2=0.0 ! -!PAN/BIO=0.0 +!ALD2/UR26=0.0 ! -!PAN/ARO=0.0 +!ALD2/RPG2=0.0 ! -!PAN/HCHO=0.0 +!ALD2/RP18=0.0 ! -!PAN/ALD=0.0 +!ALD2/RPG3=0.0 ! -!PAN/KET=0.0 +!ALD2/URG4=0.0 ! -!PAN/CARBO=0.0 +!ALD2/UR8=0.0 ! -!PAN/ONIT=0.0 +!ALD2/UR17=0.0 ! -!PAN/PAN=+0.28107*K070*<OH>-K070*<OH>+0.40000*K078*<NO3>-K078*<NO3>+0.30000*K08 -!2*<O3>-K082*<O3>-K089 - PJAC(:,27,27)=+0.28107*TPK%K070(:)*PCONC(:,14)-TPK%K070(:)*PCONC(:,14)+0.40000& -&*TPK%K078(:)*PCONC(:,5)-TPK%K078(:)*PCONC(:,5)+0.30000*TPK%K082(:)*PCONC(:,1)-& -&TPK%K082(:)*PCONC(:,1)-TPK%K089(:) +!ALD2/UR7=0.0 ! -!PAN/OP1=0.0 +!ALD2/RPR3=0.0 ! -!PAN/OP2=0.0 +!ALD2/URG6=0.0 ! -!PAN/ORA1=0.0 +!ALD2/UR22=0.0 ! -!PAN/ORA2=0.0 +!ALD2/URG7=0.0 ! -!PAN/MO2=0.0 +!ALD2/RPR4=0.0 ! -!PAN/ALKAP=0.0 +!ALD2/RPR7=0.0 ! -!PAN/ALKEP=0.0 +!ALD2/RPG7=0.0 ! -!PAN/BIOP=0.0 +!ALD2/URG8=0.0 ! -!PAN/PHO=0.0 +!ALD2/UR19=0.0 ! -!PAN/ADD=0.0 +!ALD2/URG9=0.0 ! -!PAN/AROP=0.0 +!ALD2/AP7=0.0 ! -!PAN/CARBOP=+1.00000*K088*<NO2> - PJAC(:,27,39)=+1.00000*TPK%K088(:)*PCONC(:,4) +!ALD2/URG10=0.0 ! -!PAN/OLN=0.0 +!ALD2/RPR1=0.0 ! -!PAN/XO2=0.0 +!ALD2/RPR5=0.0 ! -!PAN/WC_O3=0.0 +!ALD2/RPR8=0.0 ! -!PAN/WC_H2O2=0.0 +!ALD2/RP10=0.0 ! -!PAN/WC_NO=0.0 +!ALD2/RP11=0.0 ! -!PAN/WC_NO2=0.0 +!ALD2/RP16=0.0 ! -!PAN/WC_NO3=0.0 +!ALD2/RPRL=0.0 ! -!PAN/WC_N2O5=0.0 +!ALD2/APAN=0.0 ! -!PAN/WC_HONO=0.0 +!ALD2/PAN1=0.0 ! -!PAN/WC_HNO3=0.0 +!ALD2/PAN2=0.0 ! -!PAN/WC_HNO4=0.0 +!ALD2/PAN3=0.0 ! -!PAN/WC_NH3=0.0 +!ALD2/PAN4=0.0 ! -!PAN/WC_OH=0.0 +!ALD2/PAN6=0.0 ! -!PAN/WC_HO2=0.0 +!ALD2/PAN7=0.0 ! -!PAN/WC_CO2=0.0 +!ALD2/PAN8=0.0 ! -!PAN/WC_SO2=0.0 +!ALD2/PN10=0.0 ! -!PAN/WC_SULF=0.0 +!ALD2/RO2T=+K114*<RO22>+K117*<RO23>+K123*<RO25>+K145*<RO27>+TPK%CF13*K172*<RO21 +!5>+K175*<RO216> + PJAC(:,29,85)=+TPK%K114(:)*TPK%RO22(:)+TPK%K117(:)*TPK%RO23(:)+TPK%K123(:)*PCO& +&NC(:,87)+TPK%K145(:)*TPK%RO27(:)+TPK%CF13*TPK%K172(:)*TPK%RO215(:)+TPK%K175(:)& +&*TPK%RO216(:) ! -!PAN/WC_HCHO=0.0 +!ALD2/RO21=0.0 ! -!PAN/WC_ORA1=0.0 +!ALD2/RO25=+TPK%CF4*K122*<NO>+K123*<RO2T>+K124*<HO2> + PJAC(:,29,87)=+TPK%CF4*TPK%K122(:)*PCONC(:,1)+TPK%K123(:)*PCONC(:,85)+TPK%K124& +&(:)*PCONC(:,10) ! -!PAN/WC_ORA2=0.0 +!KETL/NO=+TPK%CF11*K171*<RO215> + PJAC(:,30,1)=+TPK%CF11*TPK%K171(:)*TPK%RO215(:) ! -!PAN/WC_MO2=0.0 +!KETL/NO2=0.0 ! -!PAN/WC_OP1=0.0 +!KETL/O3=0.0 ! -!PAN/WC_ASO3=0.0 +!KETL/HONO=0.0 ! -!PAN/WC_ASO4=0.0 +!KETL/HNO3=0.0 ! -!PAN/WC_ASO5=0.0 +!KETL/HNO4=0.0 ! -!PAN/WC_AHSO5=0.0 +!KETL/N2O5=0.0 ! -!PAN/WC_AHMS=0.0 +!KETL/NO3=0.0 ! -!PAN/WR_O3=0.0 +!KETL/NH3=0.0 ! -!PAN/WR_H2O2=0.0 +!KETL/HO2=+TPK%CF15*K173*<RO215> + PJAC(:,30,10)=+TPK%CF15*TPK%K173(:)*TPK%RO215(:) ! -!PAN/WR_NO=0.0 +!KETL/CO=0.0 ! -!PAN/WR_NO2=0.0 +!KETL/H2O2=0.0 ! -!PAN/WR_NO3=0.0 +!KETL/SO2=0.0 ! -!PAN/WR_N2O5=0.0 +!KETL/H2SO4=0.0 ! -!PAN/WR_HONO=0.0 +!KETL/OH=-K062*<KETL> + PJAC(:,30,15)=-TPK%K062(:)*PCONC(:,30) ! -!PAN/WR_HNO3=0.0 +!KETL/ETHE=0.0 ! -!PAN/WR_HNO4=0.0 +!KETL/OLEL=0.0 ! -!PAN/WR_NH3=0.0 +!KETL/OLEH=0.0 ! -!PAN/WR_OH=0.0 +!KETL/ALKL=0.0 ! -!PAN/WR_HO2=0.0 +!KETL/ALKM=0.0 ! -!PAN/WR_CO2=0.0 +!KETL/ALKH=0.0 ! -!PAN/WR_SO2=0.0 +!KETL/AROH=0.0 ! -!PAN/WR_SULF=0.0 +!KETL/AROL=0.0 ! -!PAN/WR_HCHO=0.0 +!KETL/AROO=0.0 ! -!PAN/WR_ORA1=0.0 +!KETL/ARAL=0.0 ! -!PAN/WR_ORA2=0.0 +!KETL/ARAC=0.0 ! -!PAN/WR_MO2=0.0 +!KETL/PAH=0.0 ! -!PAN/WR_OP1=0.0 +!KETL/HCHO=0.0 ! -!PAN/WR_ASO3=0.0 +!KETL/ALD2=0.0 ! -!PAN/WR_ASO4=0.0 +!KETL/KETL=-K062*<OH>-K063 + PJAC(:,30,30)=-TPK%K062(:)*PCONC(:,15)-TPK%K063(:) ! -!PAN/WR_ASO5=0.0 +!KETL/KETH=0.0 ! -!PAN/WR_AHSO5=0.0 +!KETL/MEOH=0.0 ! -!PAN/WR_AHMS=0.0 +!KETL/ETOH=0.0 ! -!OP1/O3=0.0 +!KETL/ALCH=0.0 ! -!OP1/H2O2=0.0 +!KETL/ISOP=0.0 ! -!OP1/NO=0.0 +!KETL/BIOL=0.0 ! -!OP1/NO2=0.0 +!KETL/BIOH=0.0 ! -!OP1/NO3=0.0 +!KETL/MTBE=0.0 ! -!OP1/N2O5=0.0 +!KETL/MVK=+0.85*K283*<O> + PJAC(:,30,39)=+0.85*TPK%K283(:)*TPK%O(:) ! -!OP1/HONO=0.0 +!KETL/MCR=0.0 ! -!OP1/HNO3=0.0 +!KETL/MGLY=0.0 ! -!OP1/HNO4=0.0 +!KETL/GLY=0.0 ! -!OP1/NH3=0.0 +!KETL/ORA1=0.0 ! -!OP1/SO2=0.0 +!KETL/ORA2=0.0 ! -!OP1/SULF=0.0 +!KETL/ACID=0.0 ! -!OP1/CO=0.0 +!KETL/UR28=0.0 ! -!OP1/OH=-K068*<OP1> - PJAC(:,28,14)=-TPK%K068(:)*PCONC(:,28) +!KETL/UR21=0.0 ! -!OP1/HO2=+K097*<MO2> - PJAC(:,28,15)=+TPK%K097(:)*PCONC(:,32) +!KETL/URG2=0.0 ! -!OP1/CH4=0.0 +!KETL/UR26=0.0 ! -!OP1/ETH=0.0 +!KETL/RPG2=0.0 ! -!OP1/ALKA=0.0 +!KETL/RP18=0.0 ! -!OP1/ALKE=0.0 +!KETL/RPG3=0.0 ! -!OP1/BIO=0.0 +!KETL/URG4=0.0 ! -!OP1/ARO=0.0 +!KETL/UR8=0.0 ! -!OP1/HCHO=0.0 +!KETL/UR17=0.0 ! -!OP1/ALD=0.0 +!KETL/UR7=0.0 ! -!OP1/KET=0.0 +!KETL/RPR3=0.0 ! -!OP1/CARBO=0.0 +!KETL/URG6=0.0 ! -!OP1/ONIT=0.0 +!KETL/UR22=0.0 ! -!OP1/PAN=0.0 +!KETL/URG7=0.0 ! -!OP1/OP1=-K013-K068*<OH>-KTC20-KTR20 - PJAC(:,28,28)=-TPK%K013(:)-TPK%K068(:)*PCONC(:,14)-TPK%KTC20(:)-TPK%KTR20(:) +!KETL/RPR4=0.0 ! -!OP1/OP2=0.0 +!KETL/RPR7=0.0 ! -!OP1/ORA1=0.0 +!KETL/RPG7=0.0 ! -!OP1/ORA2=0.0 +!KETL/URG8=0.0 ! -!OP1/MO2=+K097*<HO2> - PJAC(:,28,32)=+TPK%K097(:)*PCONC(:,15) +!KETL/UR19=0.0 ! -!OP1/ALKAP=0.0 +!KETL/URG9=0.0 ! -!OP1/ALKEP=0.0 +!KETL/AP7=0.0 ! -!OP1/BIOP=0.0 +!KETL/URG10=0.0 ! -!OP1/PHO=0.0 +!KETL/RPR1=0.0 ! -!OP1/ADD=0.0 +!KETL/RPR5=0.0 ! -!OP1/AROP=0.0 +!KETL/RPR8=0.0 ! -!OP1/CARBOP=0.0 +!KETL/RP10=0.0 ! -!OP1/OLN=0.0 +!KETL/RP11=0.0 ! -!OP1/XO2=0.0 +!KETL/RP16=0.0 ! -!OP1/WC_O3=0.0 +!KETL/RPRL=0.0 ! -!OP1/WC_H2O2=0.0 +!KETL/APAN=0.0 ! -!OP1/WC_NO=0.0 +!KETL/PAN1=0.0 ! -!OP1/WC_NO2=0.0 +!KETL/PAN2=0.0 ! -!OP1/WC_NO3=0.0 +!KETL/PAN3=0.0 ! -!OP1/WC_N2O5=0.0 +!KETL/PAN4=0.0 ! -!OP1/WC_HONO=0.0 +!KETL/PAN6=0.0 ! -!OP1/WC_HNO3=0.0 +!KETL/PAN7=0.0 ! -!OP1/WC_HNO4=0.0 +!KETL/PAN8=0.0 ! -!OP1/WC_NH3=0.0 +!KETL/PN10=0.0 ! -!OP1/WC_OH=0.0 +!KETL/RO2T=+TPK%CF15*K172*<RO215> + PJAC(:,30,85)=+TPK%CF15*TPK%K172(:)*TPK%RO215(:) ! -!OP1/WC_HO2=0.0 +!KETL/RO21=0.0 +! +!KETL/RO25=0.0 +! +RETURN +END SUBROUTINE SUBJ5 +! +SUBROUTINE SUBJ6 +! +!Indices 31 a 35 ! -!OP1/WC_CO2=0.0 ! -!OP1/WC_SO2=0.0 +!KETH/NO=0.0 ! -!OP1/WC_SULF=0.0 +!KETH/NO2=0.0 ! -!OP1/WC_HCHO=0.0 +!KETH/O3=0.0 ! -!OP1/WC_ORA1=0.0 +!KETH/HONO=0.0 ! -!OP1/WC_ORA2=0.0 +!KETH/HNO3=0.0 ! -!OP1/WC_MO2=0.0 +!KETH/HNO4=0.0 ! -!OP1/WC_OP1=+KTC40 - PJAC(:,28,61)=+TPK%KTC40(:) +!KETH/N2O5=0.0 ! -!OP1/WC_ASO3=0.0 +!KETH/NO3=0.0 ! -!OP1/WC_ASO4=0.0 +!KETH/NH3=0.0 ! -!OP1/WC_ASO5=0.0 +!KETH/HO2=0.0 ! -!OP1/WC_AHSO5=0.0 +!KETH/CO=0.0 ! -!OP1/WC_AHMS=0.0 +!KETH/H2O2=0.0 ! -!OP1/WR_O3=0.0 +!KETH/SO2=0.0 ! -!OP1/WR_H2O2=0.0 +!KETH/H2SO4=0.0 ! -!OP1/WR_NO=0.0 +!KETH/OH=-K070*<KETH> + PJAC(:,31,15)=-TPK%K070(:)*PCONC(:,31) ! -!OP1/WR_NO2=0.0 +!KETH/ETHE=0.0 ! -!OP1/WR_NO3=0.0 +!KETH/OLEL=0.0 ! -!OP1/WR_N2O5=0.0 +!KETH/OLEH=0.0 ! -!OP1/WR_HONO=0.0 +!KETH/ALKL=0.0 ! -!OP1/WR_HNO3=0.0 +!KETH/ALKM=0.0 ! -!OP1/WR_HNO4=0.0 +!KETH/ALKH=0.0 ! -!OP1/WR_NH3=0.0 +!KETH/AROH=0.0 ! -!OP1/WR_OH=0.0 +!KETH/AROL=0.0 ! -!OP1/WR_HO2=0.0 +!KETH/AROO=0.0 ! -!OP1/WR_CO2=0.0 +!KETH/ARAL=0.0 ! -!OP1/WR_SO2=0.0 +!KETH/ARAC=0.0 ! -!OP1/WR_SULF=0.0 +!KETH/PAH=0.0 ! -!OP1/WR_HCHO=0.0 +!KETH/HCHO=0.0 ! -!OP1/WR_ORA1=0.0 +!KETH/ALD2=0.0 ! -!OP1/WR_ORA2=0.0 +!KETH/KETL=0.0 ! -!OP1/WR_MO2=0.0 +!KETH/KETH=-K070*<OH>-K071 + PJAC(:,31,31)=-TPK%K070(:)*PCONC(:,15)-TPK%K071(:) ! -!OP1/WR_OP1=+KTR40 - PJAC(:,28,86)=+TPK%KTR40(:) +!KETH/MEOH=0.0 ! -!OP1/WR_ASO3=0.0 +!KETH/ETOH=0.0 ! -!OP1/WR_ASO4=0.0 +!KETH/ALCH=0.0 ! -!OP1/WR_ASO5=0.0 +!KETH/ISOP=0.0 ! -!OP1/WR_AHSO5=0.0 +!KETH/BIOL=0.0 ! -!OP1/WR_AHMS=0.0 +!KETH/BIOH=0.0 ! -!OP2/O3=+0.10149*K081*<CARBO> - PJAC(:,29,1)=+0.10149*TPK%K081(:)*PCONC(:,25) +!KETH/MTBE=0.0 ! -!OP2/H2O2=0.0 +!KETH/MVK=0.0 ! -!OP2/NO=0.0 +!KETH/MCR=0.0 ! -!OP2/NO2=0.0 +!KETH/MGLY=0.0 ! -!OP2/NO3=0.0 +!KETH/GLY=0.0 ! -!OP2/N2O5=0.0 +!KETH/ORA1=0.0 ! -!OP2/HONO=0.0 +!KETH/ORA2=0.0 ! -!OP2/HNO3=0.0 +!KETH/ACID=0.0 ! -!OP2/HNO4=0.0 +!KETH/UR28=0.0 ! -!OP2/NH3=0.0 +!KETH/UR21=0.0 ! -!OP2/SO2=0.0 +!KETH/URG2=0.0 ! -!OP2/SULF=0.0 +!KETH/UR26=0.0 ! -!OP2/CO=0.0 +!KETH/RPG2=0.0 ! -!OP2/OH=-K069*<OP2> - PJAC(:,29,14)=-TPK%K069(:)*PCONC(:,29) +!KETH/RP18=0.0 ! -!OP2/HO2=+1.00524*K098*<ALKAP>+1.00524*K099*<ALKEP>+1.00524*K0100*<BIOP>+1.0052 -!4*K0101*<AROP>+0.80904*K0102*<CARBOP>+1.00524*K126*<XO2> - PJAC(:,29,15)=+1.00524*TPK%K098(:)*PCONC(:,33)+1.00524*TPK%K099(:)*PCONC(:,34)& -&+1.00524*TPK%K0100(:)*PCONC(:,35)+1.00524*TPK%K0101(:)*PCONC(:,38)+0.80904*TPK& -&%K0102(:)*PCONC(:,39)+1.00524*TPK%K126(:)*PCONC(:,41) +!KETH/RPG3=0.0 ! -!OP2/CH4=0.0 +!KETH/URG4=0.0 ! -!OP2/ETH=0.0 +!KETH/UR8=0.0 ! -!OP2/ALKA=0.0 +!KETH/UR17=0.0 ! -!OP2/ALKE=0.0 +!KETH/UR7=0.0 ! -!OP2/BIO=0.0 +!KETH/RPR3=0.0 ! -!OP2/ARO=0.0 +!KETH/URG6=0.0 ! -!OP2/HCHO=0.0 +!KETH/UR22=0.0 ! -!OP2/ALD=0.0 +!KETH/URG7=0.0 ! -!OP2/KET=0.0 +!KETH/RPR4=0.0 ! -!OP2/CARBO=+0.10149*K081*<O3> - PJAC(:,29,25)=+0.10149*TPK%K081(:)*PCONC(:,1) +!KETH/RPR7=0.0 ! -!OP2/ONIT=0.0 +!KETH/RPG7=0.0 ! -!OP2/PAN=0.0 +!KETH/URG8=0.0 ! -!OP2/OP1=0.0 +!KETH/UR19=0.0 ! -!OP2/OP2=-K014-K069*<OH> - PJAC(:,29,29)=-TPK%K014(:)-TPK%K069(:)*PCONC(:,14) +!KETH/URG9=0.0 ! -!OP2/ORA1=0.0 +!KETH/AP7=0.0 ! -!OP2/ORA2=0.0 +!KETH/URG10=0.0 ! -!OP2/MO2=0.0 +!KETH/RPR1=0.0 ! -!OP2/ALKAP=+1.00524*K098*<HO2> - PJAC(:,29,33)=+1.00524*TPK%K098(:)*PCONC(:,15) +!KETH/RPR5=0.0 ! -!OP2/ALKEP=+1.00524*K099*<HO2> - PJAC(:,29,34)=+1.00524*TPK%K099(:)*PCONC(:,15) +!KETH/RPR8=0.0 ! -!OP2/BIOP=+1.00524*K0100*<HO2> - PJAC(:,29,35)=+1.00524*TPK%K0100(:)*PCONC(:,15) +!KETH/RP10=0.0 ! -!OP2/PHO=0.0 +!KETH/RP11=0.0 ! -!OP2/ADD=0.0 +!KETH/RP16=0.0 ! -!OP2/AROP=+1.00524*K0101*<HO2> - PJAC(:,29,38)=+1.00524*TPK%K0101(:)*PCONC(:,15) +!KETH/RPRL=0.0 ! -!OP2/CARBOP=+0.80904*K0102*<HO2> - PJAC(:,29,39)=+0.80904*TPK%K0102(:)*PCONC(:,15) +!KETH/APAN=0.0 ! -!OP2/OLN=0.0 +!KETH/PAN1=0.0 ! -!OP2/XO2=+1.00524*K126*<HO2> - PJAC(:,29,41)=+1.00524*TPK%K126(:)*PCONC(:,15) +!KETH/PAN2=0.0 ! -!OP2/WC_O3=0.0 +!KETH/PAN3=0.0 ! -!OP2/WC_H2O2=0.0 +!KETH/PAN4=0.0 ! -!OP2/WC_NO=0.0 +!KETH/PAN6=0.0 ! -!OP2/WC_NO2=0.0 +!KETH/PAN7=0.0 ! -!OP2/WC_NO3=0.0 +!KETH/PAN8=0.0 ! -!OP2/WC_N2O5=0.0 +!KETH/PN10=0.0 ! -!OP2/WC_HONO=0.0 +!KETH/RO2T=0.0 ! -!OP2/WC_HNO3=0.0 +!KETH/RO21=0.0 ! -!OP2/WC_HNO4=0.0 +!KETH/RO25=0.0 ! -!OP2/WC_NH3=0.0 +!MEOH/NO=0.0 ! -!OP2/WC_OH=0.0 +!MEOH/NO2=0.0 ! -!OP2/WC_HO2=0.0 +!MEOH/O3=0.0 ! -!OP2/WC_CO2=0.0 +!MEOH/HONO=0.0 ! -!OP2/WC_SO2=0.0 +!MEOH/HNO3=0.0 ! -!OP2/WC_SULF=0.0 +!MEOH/HNO4=0.0 ! -!OP2/WC_HCHO=0.0 +!MEOH/N2O5=0.0 ! -!OP2/WC_ORA1=0.0 +!MEOH/NO3=0.0 ! -!OP2/WC_ORA2=0.0 +!MEOH/NH3=0.0 ! -!OP2/WC_MO2=0.0 +!MEOH/HO2=0.0 ! -!OP2/WC_OP1=0.0 +!MEOH/CO=0.0 ! -!OP2/WC_ASO3=0.0 +!MEOH/H2O2=0.0 ! -!OP2/WC_ASO4=0.0 +!MEOH/SO2=0.0 ! -!OP2/WC_ASO5=0.0 +!MEOH/H2SO4=0.0 ! -!OP2/WC_AHSO5=0.0 +!MEOH/OH=-K048*<MEOH> + PJAC(:,32,15)=-TPK%K048(:)*PCONC(:,32) ! -!OP2/WC_AHMS=0.0 +!MEOH/ETHE=0.0 ! -!OP2/WR_O3=0.0 +!MEOH/OLEL=0.0 ! -!OP2/WR_H2O2=0.0 +!MEOH/OLEH=0.0 ! -!OP2/WR_NO=0.0 +!MEOH/ALKL=0.0 ! -!OP2/WR_NO2=0.0 +!MEOH/ALKM=0.0 ! -!OP2/WR_NO3=0.0 +!MEOH/ALKH=0.0 ! -!OP2/WR_N2O5=0.0 +!MEOH/AROH=0.0 ! -!OP2/WR_HONO=0.0 +!MEOH/AROL=0.0 ! -!OP2/WR_HNO3=0.0 +!MEOH/AROO=0.0 ! -!OP2/WR_HNO4=0.0 +!MEOH/ARAL=0.0 ! -!OP2/WR_NH3=0.0 +!MEOH/ARAC=0.0 ! -!OP2/WR_OH=0.0 +!MEOH/PAH=0.0 ! -!OP2/WR_HO2=0.0 +!MEOH/HCHO=0.0 ! -!OP2/WR_CO2=0.0 +!MEOH/ALD2=0.0 ! -!OP2/WR_SO2=0.0 +!MEOH/KETL=0.0 ! -!OP2/WR_SULF=0.0 +!MEOH/KETH=0.0 ! -!OP2/WR_HCHO=0.0 +!MEOH/MEOH=-K048*<OH> + PJAC(:,32,32)=-TPK%K048(:)*PCONC(:,15) ! -!OP2/WR_ORA1=0.0 +!MEOH/ETOH=0.0 ! -!OP2/WR_ORA2=0.0 +!MEOH/ALCH=0.0 ! -!OP2/WR_MO2=0.0 +!MEOH/ISOP=0.0 ! -!OP2/WR_OP1=0.0 +!MEOH/BIOL=0.0 ! -!OP2/WR_ASO3=0.0 +!MEOH/BIOH=0.0 ! -!OP2/WR_ASO4=0.0 +!MEOH/MTBE=0.0 ! -!OP2/WR_ASO5=0.0 +!MEOH/MVK=0.0 ! -!OP2/WR_AHSO5=0.0 +!MEOH/MCR=0.0 ! -!OP2/WR_AHMS=0.0 +!MEOH/MGLY=0.0 ! -!ORA1/O3=+0.15343*K079*<ALKE>+0.15000*K080*<BIO>+0.10788*K081*<CARBO>+0.11*K082 -!*<PAN> - PJAC(:,30,1)=+0.15343*TPK%K079(:)*PCONC(:,19)+0.15000*TPK%K080(:)*PCONC(:,20)+& -&0.10788*TPK%K081(:)*PCONC(:,25)+0.11*TPK%K082(:)*PCONC(:,27) +!MEOH/GLY=0.0 ! -!ORA1/H2O2=0.0 +!MEOH/ORA1=0.0 ! -!ORA1/NO=0.0 +!MEOH/ORA2=0.0 ! -!ORA1/NO2=0.0 +!MEOH/ACID=0.0 ! -!ORA1/NO3=0.0 +!MEOH/UR28=0.0 ! -!ORA1/N2O5=0.0 +!MEOH/UR21=0.0 ! -!ORA1/HONO=0.0 +!MEOH/URG2=0.0 ! -!ORA1/HNO3=0.0 +!MEOH/UR26=0.0 ! -!ORA1/HNO4=0.0 +!MEOH/RPG2=0.0 ! -!ORA1/NH3=0.0 +!MEOH/RP18=0.0 ! -!ORA1/SO2=0.0 +!MEOH/RPG3=0.0 ! -!ORA1/SULF=0.0 +!MEOH/URG4=0.0 ! -!ORA1/CO=0.0 +!MEOH/UR8=0.0 ! -!ORA1/OH=+0.00878*K058*<ALKA>-K066*<ORA1> - PJAC(:,30,14)=+0.00878*TPK%K058(:)*PCONC(:,18)-TPK%K066(:)*PCONC(:,30) +!MEOH/UR17=0.0 ! -!ORA1/HO2=0.0 +!MEOH/UR7=0.0 ! -!ORA1/CH4=0.0 +!MEOH/RPR3=0.0 ! -!ORA1/ETH=0.0 +!MEOH/URG6=0.0 ! -!ORA1/ALKA=+0.00878*K058*<OH> - PJAC(:,30,18)=+0.00878*TPK%K058(:)*PCONC(:,14) +!MEOH/UR22=0.0 ! -!ORA1/ALKE=+0.15343*K079*<O3> - PJAC(:,30,19)=+0.15343*TPK%K079(:)*PCONC(:,1) +!MEOH/URG7=0.0 ! -!ORA1/BIO=+0.15000*K080*<O3> - PJAC(:,30,20)=+0.15000*TPK%K080(:)*PCONC(:,1) +!MEOH/RPR4=0.0 ! -!ORA1/ARO=0.0 +!MEOH/RPR7=0.0 ! -!ORA1/HCHO=0.0 +!MEOH/RPG7=0.0 ! -!ORA1/ALD=0.0 +!MEOH/URG8=0.0 ! -!ORA1/KET=0.0 +!MEOH/UR19=0.0 ! -!ORA1/CARBO=+0.10788*K081*<O3> - PJAC(:,30,25)=+0.10788*TPK%K081(:)*PCONC(:,1) +!MEOH/URG9=0.0 ! -!ORA1/ONIT=0.0 +!MEOH/AP7=0.0 ! -!ORA1/PAN=+0.11*K082*<O3> - PJAC(:,30,27)=+0.11*TPK%K082(:)*PCONC(:,1) +!MEOH/URG10=0.0 ! -!ORA1/OP1=0.0 +!MEOH/RPR1=0.0 ! -!ORA1/OP2=0.0 +!MEOH/RPR5=0.0 ! -!ORA1/ORA1=-K066*<OH>-KTC17-KTR17 - PJAC(:,30,30)=-TPK%K066(:)*PCONC(:,14)-TPK%KTC17(:)-TPK%KTR17(:) +!MEOH/RPR8=0.0 ! -!ORA1/ORA2=0.0 +!MEOH/RP10=0.0 ! -!ORA1/MO2=0.0 +!MEOH/RP11=0.0 ! -!ORA1/ALKAP=0.0 +!MEOH/RP16=0.0 ! -!ORA1/ALKEP=0.0 +!MEOH/RPRL=0.0 ! -!ORA1/BIOP=0.0 +!MEOH/APAN=0.0 ! -!ORA1/PHO=0.0 +!MEOH/PAN1=0.0 ! -!ORA1/ADD=0.0 +!MEOH/PAN2=0.0 ! -!ORA1/AROP=0.0 +!MEOH/PAN3=0.0 ! -!ORA1/CARBOP=0.0 +!MEOH/PAN4=0.0 ! -!ORA1/OLN=0.0 +!MEOH/PAN6=0.0 ! -!ORA1/XO2=0.0 +!MEOH/PAN7=0.0 ! -!ORA1/WC_O3=0.0 +!MEOH/PAN8=0.0 ! -!ORA1/WC_H2O2=0.0 +!MEOH/PN10=0.0 ! -!ORA1/WC_NO=0.0 +!MEOH/RO2T=0.0 ! -!ORA1/WC_NO2=0.0 +!MEOH/RO21=0.0 ! -!ORA1/WC_NO3=0.0 +!MEOH/RO25=0.0 ! -!ORA1/WC_N2O5=0.0 +!ETOH/NO=0.0 ! -!ORA1/WC_HONO=0.0 +!ETOH/NO2=0.0 ! -!ORA1/WC_HNO3=0.0 +!ETOH/O3=0.0 ! -!ORA1/WC_HNO4=0.0 +!ETOH/HONO=0.0 ! -!ORA1/WC_NH3=0.0 +!ETOH/HNO3=0.0 ! -!ORA1/WC_OH=0.0 +!ETOH/HNO4=0.0 ! -!ORA1/WC_HO2=0.0 +!ETOH/N2O5=0.0 ! -!ORA1/WC_CO2=0.0 +!ETOH/NO3=0.0 ! -!ORA1/WC_SO2=0.0 +!ETOH/NH3=0.0 ! -!ORA1/WC_SULF=0.0 +!ETOH/HO2=0.0 ! -!ORA1/WC_HCHO=0.0 +!ETOH/CO=0.0 ! -!ORA1/WC_ORA1=+KTC37 - PJAC(:,30,58)=+TPK%KTC37(:) +!ETOH/H2O2=0.0 ! -!ORA1/WC_ORA2=0.0 +!ETOH/SO2=0.0 ! -!ORA1/WC_MO2=0.0 +!ETOH/H2SO4=0.0 ! -!ORA1/WC_OP1=0.0 +!ETOH/OH=-K053*<ETOH> + PJAC(:,33,15)=-TPK%K053(:)*PCONC(:,33) ! -!ORA1/WC_ASO3=0.0 +!ETOH/ETHE=0.0 ! -!ORA1/WC_ASO4=0.0 +!ETOH/OLEL=0.0 ! -!ORA1/WC_ASO5=0.0 +!ETOH/OLEH=0.0 ! -!ORA1/WC_AHSO5=0.0 +!ETOH/ALKL=0.0 ! -!ORA1/WC_AHMS=0.0 +!ETOH/ALKM=0.0 ! -!ORA1/WR_O3=0.0 +!ETOH/ALKH=0.0 ! -!ORA1/WR_H2O2=0.0 +!ETOH/AROH=0.0 ! -!ORA1/WR_NO=0.0 +!ETOH/AROL=0.0 ! -!ORA1/WR_NO2=0.0 +!ETOH/AROO=0.0 ! -!ORA1/WR_NO3=0.0 +!ETOH/ARAL=0.0 ! -!ORA1/WR_N2O5=0.0 +!ETOH/ARAC=0.0 ! -!ORA1/WR_HONO=0.0 +!ETOH/PAH=0.0 ! -!ORA1/WR_HNO3=0.0 +!ETOH/HCHO=0.0 ! -!ORA1/WR_HNO4=0.0 +!ETOH/ALD2=0.0 ! -!ORA1/WR_NH3=0.0 +!ETOH/KETL=0.0 ! -!ORA1/WR_OH=0.0 +!ETOH/KETH=0.0 ! -!ORA1/WR_HO2=0.0 +!ETOH/MEOH=0.0 ! -!ORA1/WR_CO2=0.0 +!ETOH/ETOH=-K053*<OH> + PJAC(:,33,33)=-TPK%K053(:)*PCONC(:,15) ! -!ORA1/WR_SO2=0.0 +!ETOH/ALCH=0.0 ! -!ORA1/WR_SULF=0.0 +!ETOH/ISOP=0.0 ! -!ORA1/WR_HCHO=0.0 +!ETOH/BIOL=0.0 ! -!ORA1/WR_ORA1=+KTR37 - PJAC(:,30,83)=+TPK%KTR37(:) +!ETOH/BIOH=0.0 ! -!ORA1/WR_ORA2=0.0 +!ETOH/MTBE=0.0 ! -!ORA1/WR_MO2=0.0 +!ETOH/MVK=0.0 ! -!ORA1/WR_OP1=0.0 +!ETOH/MCR=0.0 ! -!ORA1/WR_ASO3=0.0 +!ETOH/MGLY=0.0 ! -!ORA1/WR_ASO4=0.0 +!ETOH/GLY=0.0 ! -!ORA1/WR_ASO5=0.0 +!ETOH/ORA1=0.0 ! -!ORA1/WR_AHSO5=0.0 +!ETOH/ORA2=0.0 ! -!ORA1/WR_AHMS=0.0 +!ETOH/ACID=0.0 ! -RETURN -END SUBROUTINE SUBJ5 +!ETOH/UR28=0.0 ! -SUBROUTINE SUBJ6 +!ETOH/UR21=0.0 ! -!Indices 31 a 35 +!ETOH/URG2=0.0 ! +!ETOH/UR26=0.0 ! -!ORA2/O3=+0.08143*K079*<ALKE>+0.00000*K080*<BIO>+0.20595*K081*<CARBO> - PJAC(:,31,1)=+0.08143*TPK%K079(:)*PCONC(:,19)+0.00000*TPK%K080(:)*PCONC(:,20)+& -&0.20595*TPK%K081(:)*PCONC(:,25) +!ETOH/RPG2=0.0 ! -!ORA2/H2O2=0.0 +!ETOH/RP18=0.0 ! -!ORA2/NO=0.0 +!ETOH/RPG3=0.0 ! -!ORA2/NO2=0.0 +!ETOH/URG4=0.0 ! -!ORA2/NO3=0.0 +!ETOH/UR8=0.0 ! -!ORA2/N2O5=0.0 +!ETOH/UR17=0.0 ! -!ORA2/HONO=0.0 +!ETOH/UR7=0.0 ! -!ORA2/HNO3=0.0 +!ETOH/RPR3=0.0 ! -!ORA2/HNO4=0.0 +!ETOH/URG6=0.0 ! -!ORA2/NH3=0.0 +!ETOH/UR22=0.0 ! -!ORA2/SO2=0.0 +!ETOH/URG7=0.0 ! -!ORA2/SULF=0.0 +!ETOH/RPR4=0.0 ! -!ORA2/CO=0.0 +!ETOH/RPR7=0.0 ! -!ORA2/OH=-K067*<ORA2> - PJAC(:,31,14)=-TPK%K067(:)*PCONC(:,31) +!ETOH/RPG7=0.0 ! -!ORA2/HO2=+0.17307*K0102*<CARBOP> - PJAC(:,31,15)=+0.17307*TPK%K0102(:)*PCONC(:,39) +!ETOH/URG8=0.0 ! -!ORA2/CH4=0.0 +!ETOH/UR19=0.0 ! -!ORA2/ETH=0.0 +!ETOH/URG9=0.0 ! -!ORA2/ALKA=0.0 +!ETOH/AP7=0.0 ! -!ORA2/ALKE=+0.08143*K079*<O3> - PJAC(:,31,19)=+0.08143*TPK%K079(:)*PCONC(:,1) +!ETOH/URG10=0.0 ! -!ORA2/BIO=+0.00000*K080*<O3> - PJAC(:,31,20)=+0.00000*TPK%K080(:)*PCONC(:,1) +!ETOH/RPR1=0.0 ! -!ORA2/ARO=0.0 +!ETOH/RPR5=0.0 ! -!ORA2/HCHO=0.0 +!ETOH/RPR8=0.0 ! -!ORA2/ALD=0.0 +!ETOH/RP10=0.0 ! -!ORA2/KET=0.0 +!ETOH/RP11=0.0 ! -!ORA2/CARBO=+0.20595*K081*<O3> - PJAC(:,31,25)=+0.20595*TPK%K081(:)*PCONC(:,1) +!ETOH/RP16=0.0 ! -!ORA2/ONIT=0.0 +!ETOH/RPRL=0.0 ! -!ORA2/PAN=0.0 +!ETOH/APAN=0.0 ! -!ORA2/OP1=0.0 +!ETOH/PAN1=0.0 ! -!ORA2/OP2=0.0 +!ETOH/PAN2=0.0 ! -!ORA2/ORA1=0.0 +!ETOH/PAN3=0.0 ! -!ORA2/ORA2=-K067*<OH>-KTC18-KTR18 - PJAC(:,31,31)=-TPK%K067(:)*PCONC(:,14)-TPK%KTC18(:)-TPK%KTR18(:) +!ETOH/PAN4=0.0 ! -!ORA2/MO2=+0.13684*K109*<CARBOP> - PJAC(:,31,32)=+0.13684*TPK%K109(:)*PCONC(:,39) +!ETOH/PAN6=0.0 ! -!ORA2/ALKAP=+0.49810*K111*<CARBOP> - PJAC(:,31,33)=+0.49810*TPK%K111(:)*PCONC(:,39) +!ETOH/PAN7=0.0 ! -!ORA2/ALKEP=+0.49922*K112*<CARBOP> - PJAC(:,31,34)=+0.49922*TPK%K112(:)*PCONC(:,39) +!ETOH/PAN8=0.0 ! -!ORA2/BIOP=+0.49400*K113*<CARBOP> - PJAC(:,31,35)=+0.49400*TPK%K113(:)*PCONC(:,39) +!ETOH/PN10=0.0 ! -!ORA2/PHO=0.0 +!ETOH/RO2T=0.0 ! -!ORA2/ADD=0.0 +!ETOH/RO21=0.0 ! -!ORA2/AROP=0.0 +!ETOH/RO25=0.0 ! -!ORA2/CARBOP=+0.17307*K0102*<HO2>+0.13684*K109*<MO2>+0.49810*K111*<ALKAP>+0.499 -!22*K112*<ALKEP>+0.49400*K113*<BIOP>+0.09955*K115*<CARBOP>+0.09955*K115*<CARBOP -!>+0.48963*K116*<OLN> - PJAC(:,31,39)=+0.17307*TPK%K0102(:)*PCONC(:,15)+0.13684*TPK%K109(:)*PCONC(:,32& -&)+0.49810*TPK%K111(:)*PCONC(:,33)+0.49922*TPK%K112(:)*PCONC(:,34)+0.49400*TPK%& -&K113(:)*PCONC(:,35)+0.09955*TPK%K115(:)*PCONC(:,39)+0.09955*TPK%K115(:)*PCONC(& -&:,39)+0.48963*TPK%K116(:)*PCONC(:,40) +!ALCH/NO=0.0 ! -!ORA2/OLN=+0.48963*K116*<CARBOP> - PJAC(:,31,40)=+0.48963*TPK%K116(:)*PCONC(:,39) +!ALCH/NO2=0.0 ! -!ORA2/XO2=0.0 +!ALCH/O3=0.0 ! -!ORA2/WC_O3=0.0 +!ALCH/HONO=0.0 ! -!ORA2/WC_H2O2=0.0 +!ALCH/HNO3=0.0 ! -!ORA2/WC_NO=0.0 +!ALCH/HNO4=0.0 ! -!ORA2/WC_NO2=0.0 +!ALCH/N2O5=0.0 ! -!ORA2/WC_NO3=0.0 +!ALCH/NO3=0.0 ! -!ORA2/WC_N2O5=0.0 +!ALCH/NH3=0.0 ! -!ORA2/WC_HONO=0.0 +!ALCH/HO2=0.0 ! -!ORA2/WC_HNO3=0.0 +!ALCH/CO=0.0 ! -!ORA2/WC_HNO4=0.0 +!ALCH/H2O2=0.0 ! -!ORA2/WC_NH3=0.0 +!ALCH/SO2=0.0 ! -!ORA2/WC_OH=0.0 +!ALCH/H2SO4=0.0 ! -!ORA2/WC_HO2=0.0 +!ALCH/OH=-K069*<ALCH> + PJAC(:,34,15)=-TPK%K069(:)*PCONC(:,34) ! -!ORA2/WC_CO2=0.0 +!ALCH/ETHE=0.0 ! -!ORA2/WC_SO2=0.0 +!ALCH/OLEL=0.0 ! -!ORA2/WC_SULF=0.0 +!ALCH/OLEH=0.0 ! -!ORA2/WC_HCHO=0.0 +!ALCH/ALKL=0.0 ! -!ORA2/WC_ORA1=0.0 +!ALCH/ALKM=0.0 ! -!ORA2/WC_ORA2=+KTC38 - PJAC(:,31,59)=+TPK%KTC38(:) +!ALCH/ALKH=0.0 ! -!ORA2/WC_MO2=0.0 +!ALCH/AROH=0.0 ! -!ORA2/WC_OP1=0.0 +!ALCH/AROL=0.0 ! -!ORA2/WC_ASO3=0.0 +!ALCH/AROO=0.0 ! -!ORA2/WC_ASO4=0.0 +!ALCH/ARAL=0.0 ! -!ORA2/WC_ASO5=0.0 +!ALCH/ARAC=0.0 ! -!ORA2/WC_AHSO5=0.0 +!ALCH/PAH=0.0 ! -!ORA2/WC_AHMS=0.0 +!ALCH/HCHO=0.0 ! -!ORA2/WR_O3=0.0 +!ALCH/ALD2=0.0 ! -!ORA2/WR_H2O2=0.0 +!ALCH/KETL=0.0 ! -!ORA2/WR_NO=0.0 +!ALCH/KETH=0.0 ! -!ORA2/WR_NO2=0.0 +!ALCH/MEOH=0.0 ! -!ORA2/WR_NO3=0.0 +!ALCH/ETOH=0.0 ! -!ORA2/WR_N2O5=0.0 +!ALCH/ALCH=-K069*<OH> + PJAC(:,34,34)=-TPK%K069(:)*PCONC(:,15) ! -!ORA2/WR_HONO=0.0 +!ALCH/ISOP=0.0 ! -!ORA2/WR_HNO3=0.0 +!ALCH/BIOL=0.0 ! -!ORA2/WR_HNO4=0.0 +!ALCH/BIOH=0.0 ! -!ORA2/WR_NH3=0.0 +!ALCH/MTBE=0.0 ! -!ORA2/WR_OH=0.0 +!ALCH/MVK=0.0 ! -!ORA2/WR_HO2=0.0 +!ALCH/MCR=0.0 ! -!ORA2/WR_CO2=0.0 +!ALCH/MGLY=0.0 ! -!ORA2/WR_SO2=0.0 +!ALCH/GLY=0.0 ! -!ORA2/WR_SULF=0.0 +!ALCH/ORA1=0.0 ! -!ORA2/WR_HCHO=0.0 +!ALCH/ORA2=0.0 ! -!ORA2/WR_ORA1=0.0 +!ALCH/ACID=0.0 ! -!ORA2/WR_ORA2=+KTR38 - PJAC(:,31,84)=+TPK%KTR38(:) +!ALCH/UR28=0.0 ! -!ORA2/WR_MO2=0.0 +!ALCH/UR21=0.0 ! -!ORA2/WR_OP1=0.0 +!ALCH/URG2=0.0 ! -!ORA2/WR_ASO3=0.0 +!ALCH/UR26=0.0 ! -!ORA2/WR_ASO4=0.0 +!ALCH/RPG2=0.0 ! -!ORA2/WR_ASO5=0.0 +!ALCH/RP18=0.0 ! -!ORA2/WR_AHSO5=0.0 +!ALCH/RPG3=0.0 ! -!ORA2/WR_AHMS=0.0 +!ALCH/URG4=0.0 ! -!MO2/O3=+0.13966*K079*<ALKE>+0.03000*K080*<BIO> - PJAC(:,32,1)=+0.13966*TPK%K079(:)*PCONC(:,19)+0.03000*TPK%K080(:)*PCONC(:,20) +!ALCH/UR8=0.0 ! -!MO2/H2O2=0.0 +!ALCH/UR17=0.0 ! -!MO2/NO=-K090*<MO2>+0.09016*K091*<ALKAP>+0.78134*K095*<CARBOP> - PJAC(:,32,3)=-TPK%K090(:)*PCONC(:,32)+0.09016*TPK%K091(:)*PCONC(:,33)+0.78134*& -&TPK%K095(:)*PCONC(:,39) +!ALCH/UR7=0.0 ! -!MO2/NO2=0.0 +!ALCH/RPR3=0.0 ! -!MO2/NO3=-K119*<MO2>+0.09731*K120*<ALKAP>+0.91910*K124*<CARBOP> - PJAC(:,32,5)=-TPK%K119(:)*PCONC(:,32)+0.09731*TPK%K120(:)*PCONC(:,33)+0.91910*& -&TPK%K124(:)*PCONC(:,39) +!ALCH/URG6=0.0 ! -!MO2/N2O5=0.0 +!ALCH/UR22=0.0 ! -!MO2/HONO=0.0 +!ALCH/URG7=0.0 ! -!MO2/HNO3=0.0 +!ALCH/RPR4=0.0 ! -!MO2/HNO4=0.0 +!ALCH/RPR7=0.0 ! -!MO2/NH3=0.0 +!ALCH/RPG7=0.0 ! -!MO2/SO2=0.0 +!ALCH/URG8=0.0 ! -!MO2/SULF=0.0 +!ALCH/UR19=0.0 ! -!MO2/CO=0.0 +!ALCH/URG9=0.0 ! -!MO2/OH=+K056*<CH4>+0.65*K068*<OP1> - PJAC(:,32,14)=+TPK%K056(:)*PCONC(:,16)+0.65*TPK%K068(:)*PCONC(:,28) +!ALCH/AP7=0.0 ! -!MO2/HO2=-K097*<MO2> - PJAC(:,32,15)=-TPK%K097(:)*PCONC(:,32) +!ALCH/URG10=0.0 ! -!MO2/CH4=+K056*<OH> - PJAC(:,32,16)=+TPK%K056(:)*PCONC(:,14) +!ALCH/RPR1=0.0 ! -!MO2/ETH=0.0 +!ALCH/RPR5=0.0 ! -!MO2/ALKA=0.0 +!ALCH/RPR8=0.0 ! -!MO2/ALKE=+0.13966*K079*<O3> - PJAC(:,32,19)=+0.13966*TPK%K079(:)*PCONC(:,1) +!ALCH/RP10=0.0 ! -!MO2/BIO=+0.03000*K080*<O3> - PJAC(:,32,20)=+0.03000*TPK%K080(:)*PCONC(:,1) +!ALCH/RP11=0.0 ! -!MO2/ARO=0.0 +!ALCH/RP16=0.0 ! -!MO2/HCHO=0.0 +!ALCH/RPRL=0.0 ! -!MO2/ALD=+K012 - PJAC(:,32,23)=+TPK%K012(:) +!ALCH/APAN=0.0 ! -!MO2/KET=0.0 +!ALCH/PAN1=0.0 ! -!MO2/CARBO=0.0 +!ALCH/PAN2=0.0 ! -!MO2/ONIT=0.0 +!ALCH/PAN3=0.0 ! -!MO2/PAN=0.0 +!ALCH/PAN4=0.0 ! -!MO2/OP1=+0.65*K068*<OH> - PJAC(:,32,28)=+0.65*TPK%K068(:)*PCONC(:,14) +!ALCH/PAN6=0.0 ! -!MO2/OP2=+0.03795*K014 - PJAC(:,32,29)=+0.03795*TPK%K014(:) +!ALCH/PAN7=0.0 ! -!MO2/ORA1=0.0 +!ALCH/PAN8=0.0 ! -!MO2/ORA2=0.0 +!ALCH/PN10=0.0 ! -!MO2/MO2=-K090*<NO>-K097*<HO2>-K104*<MO2>-K104*<MO2>-K104*<MO2>-K104*<MO2>+0.01 -!390*K105*<ALKAP>-K105*<ALKAP>-K106*<ALKEP>-K107*<BIOP>-K108*<AROP>+0.56031*K10 -!9*<CARBOP>-K109*<CARBOP>-K110*<OLN>-K119*<NO3>-K127*<XO2>-KTC19-KTR19 - PJAC(:,32,32)=-TPK%K090(:)*PCONC(:,3)-TPK%K097(:)*PCONC(:,15)-TPK%K104(:)*PCON& -&C(:,32)-TPK%K104(:)*PCONC(:,32)-TPK%K104(:)*PCONC(:,32)-TPK%K104(:)*PCONC(:,32& -&)+0.01390*TPK%K105(:)*PCONC(:,33)-TPK%K105(:)*PCONC(:,33)-TPK%K106(:)*PCONC(:,& -&34)-TPK%K107(:)*PCONC(:,35)-TPK%K108(:)*PCONC(:,38)+0.56031*TPK%K109(:)*PCONC(& -&:,39)-TPK%K109(:)*PCONC(:,39)-TPK%K110(:)*PCONC(:,40)-TPK%K119(:)*PCONC(:,5)-T& -&PK%K127(:)*PCONC(:,41)-TPK%KTC19(:)-TPK%KTR19(:) +!ALCH/RO2T=0.0 ! -!MO2/ALKAP=+0.09016*K091*<NO>+0.01390*K105*<MO2>-K105*<MO2>+0.51480*K111*<CARBO -!P>+0.09731*K120*<NO3> - PJAC(:,32,33)=+0.09016*TPK%K091(:)*PCONC(:,3)+0.01390*TPK%K105(:)*PCONC(:,32)-& -&TPK%K105(:)*PCONC(:,32)+0.51480*TPK%K111(:)*PCONC(:,39)+0.09731*TPK%K120(:)*PC& -&ONC(:,5) +!ALCH/RO21=0.0 ! -!MO2/ALKEP=-K106*<MO2>+0.50078*K112*<CARBOP> - PJAC(:,32,34)=-TPK%K106(:)*PCONC(:,32)+0.50078*TPK%K112(:)*PCONC(:,39) +!ALCH/RO25=0.0 ! -!MO2/BIOP=-K107*<MO2>+0.50600*K113*<CARBOP> - PJAC(:,32,35)=-TPK%K107(:)*PCONC(:,32)+0.50600*TPK%K113(:)*PCONC(:,39) +!ISOP/NO=0.0 ! -!MO2/PHO=0.0 +!ISOP/NO2=0.0 ! -!MO2/ADD=0.0 +!ISOP/O3=-K066*<ISOP> + PJAC(:,35,3)=-TPK%K066(:)*PCONC(:,35) ! -!MO2/AROP=-K108*<MO2>+K114*<CARBOP> - PJAC(:,32,38)=-TPK%K108(:)*PCONC(:,32)+TPK%K114(:)*PCONC(:,39) +!ISOP/HONO=0.0 ! -!MO2/CARBOP=+0.78134*K095*<NO>+0.56031*K109*<MO2>-K109*<MO2>+0.51480*K111*<ALKA -!P>+0.50078*K112*<ALKEP>+0.50600*K113*<BIOP>+K114*<AROP>+1.66702*K115*<CARBOP>+ -!1.66702*K115*<CARBOP>+0.51037*K116*<OLN>+0.91910*K124*<NO3>+K128*<XO2> - PJAC(:,32,39)=+0.78134*TPK%K095(:)*PCONC(:,3)+0.56031*TPK%K109(:)*PCONC(:,32)-& -&TPK%K109(:)*PCONC(:,32)+0.51480*TPK%K111(:)*PCONC(:,33)+0.50078*TPK%K112(:)*PC& -&ONC(:,34)+0.50600*TPK%K113(:)*PCONC(:,35)+TPK%K114(:)*PCONC(:,38)+1.66702*TPK%& -&K115(:)*PCONC(:,39)+1.66702*TPK%K115(:)*PCONC(:,39)+0.51037*TPK%K116(:)*PCONC(& -&:,40)+0.91910*TPK%K124(:)*PCONC(:,5)+TPK%K128(:)*PCONC(:,41) +!ISOP/HNO3=0.0 ! -!MO2/OLN=-K110*<MO2>+0.51037*K116*<CARBOP> - PJAC(:,32,40)=-TPK%K110(:)*PCONC(:,32)+0.51037*TPK%K116(:)*PCONC(:,39) +!ISOP/HNO4=0.0 ! -!MO2/XO2=-K127*<MO2>+K128*<CARBOP> - PJAC(:,32,41)=-TPK%K127(:)*PCONC(:,32)+TPK%K128(:)*PCONC(:,39) +!ISOP/N2O5=0.0 ! -!MO2/WC_O3=0.0 +!ISOP/NO3=-K065*<ISOP> + PJAC(:,35,8)=-TPK%K065(:)*PCONC(:,35) ! -!MO2/WC_H2O2=0.0 +!ISOP/NH3=0.0 ! -!MO2/WC_NO=0.0 +!ISOP/HO2=0.0 ! -!MO2/WC_NO2=0.0 +!ISOP/CO=0.0 ! -!MO2/WC_NO3=0.0 +!ISOP/H2O2=0.0 ! -!MO2/WC_N2O5=0.0 +!ISOP/SO2=0.0 ! -!MO2/WC_HONO=0.0 +!ISOP/H2SO4=0.0 ! -!MO2/WC_HNO3=0.0 +!ISOP/OH=-K064*<ISOP> + PJAC(:,35,15)=-TPK%K064(:)*PCONC(:,35) ! -!MO2/WC_HNO4=0.0 +!ISOP/ETHE=0.0 ! -!MO2/WC_NH3=0.0 +!ISOP/OLEL=0.0 ! -!MO2/WC_OH=0.0 +!ISOP/OLEH=0.0 ! -!MO2/WC_HO2=0.0 +!ISOP/ALKL=0.0 ! -!MO2/WC_CO2=0.0 +!ISOP/ALKM=0.0 ! -!MO2/WC_SO2=0.0 +!ISOP/ALKH=0.0 ! -!MO2/WC_SULF=0.0 +!ISOP/AROH=0.0 ! -!MO2/WC_HCHO=0.0 +!ISOP/AROL=0.0 ! -!MO2/WC_ORA1=0.0 +!ISOP/AROO=0.0 ! -!MO2/WC_ORA2=0.0 +!ISOP/ARAL=0.0 ! -!MO2/WC_MO2=+KTC39 - PJAC(:,32,60)=+TPK%KTC39(:) +!ISOP/ARAC=0.0 ! -!MO2/WC_OP1=0.0 +!ISOP/PAH=0.0 ! -!MO2/WC_ASO3=0.0 +!ISOP/HCHO=0.0 ! -!MO2/WC_ASO4=0.0 +!ISOP/ALD2=0.0 ! -!MO2/WC_ASO5=0.0 +!ISOP/KETL=0.0 ! -!MO2/WC_AHSO5=0.0 +!ISOP/KETH=0.0 ! -!MO2/WC_AHMS=0.0 +!ISOP/MEOH=0.0 ! -!MO2/WR_O3=0.0 +!ISOP/ETOH=0.0 ! -!MO2/WR_H2O2=0.0 +!ISOP/ALCH=0.0 ! -!MO2/WR_NO=0.0 +!ISOP/ISOP=-K064*<OH>-K065*<NO3>-K066*<O3>-K067*<O> + PJAC(:,35,35)=-TPK%K064(:)*PCONC(:,15)-TPK%K065(:)*PCONC(:,8)-TPK%K066(:)*PCON& +&C(:,3)-TPK%K067(:)*TPK%O(:) ! -!MO2/WR_NO2=0.0 +!ISOP/BIOL=0.0 ! -!MO2/WR_NO3=0.0 +!ISOP/BIOH=0.0 ! -!MO2/WR_N2O5=0.0 +!ISOP/MTBE=0.0 ! -!MO2/WR_HONO=0.0 +!ISOP/MVK=0.0 ! -!MO2/WR_HNO3=0.0 +!ISOP/MCR=0.0 ! -!MO2/WR_HNO4=0.0 +!ISOP/MGLY=0.0 ! -!MO2/WR_NH3=0.0 +!ISOP/GLY=0.0 ! -!MO2/WR_OH=0.0 +!ISOP/ORA1=0.0 ! -!MO2/WR_HO2=0.0 +!ISOP/ORA2=0.0 ! -!MO2/WR_CO2=0.0 +!ISOP/ACID=0.0 ! -!MO2/WR_SO2=0.0 +!ISOP/UR28=0.0 ! -!MO2/WR_SULF=0.0 +!ISOP/UR21=0.0 ! -!MO2/WR_HCHO=0.0 +!ISOP/URG2=0.0 ! -!MO2/WR_ORA1=0.0 +!ISOP/UR26=0.0 ! -!MO2/WR_ORA2=0.0 +!ISOP/RPG2=0.0 ! -!MO2/WR_MO2=+KTR39 - PJAC(:,32,85)=+TPK%KTR39(:) +!ISOP/RP18=0.0 ! -!MO2/WR_OP1=0.0 +!ISOP/RPG3=0.0 ! -!MO2/WR_ASO3=0.0 +!ISOP/URG4=0.0 ! -!MO2/WR_ASO4=0.0 +!ISOP/UR8=0.0 ! -!MO2/WR_ASO5=0.0 +!ISOP/UR17=0.0 ! -!MO2/WR_AHSO5=0.0 +!ISOP/UR7=0.0 ! -!MO2/WR_AHMS=0.0 +!ISOP/RPR3=0.0 ! -!ALKAP/O3=+0.09815*K079*<ALKE>+0.00000*K080*<BIO> - PJAC(:,33,1)=+0.09815*TPK%K079(:)*PCONC(:,19)+0.00000*TPK%K080(:)*PCONC(:,20) +!ISOP/URG6=0.0 ! -!ALKAP/H2O2=0.0 +!ISOP/UR22=0.0 ! -!ALKAP/NO=+0.08187*K091*<ALKAP>-K091*<ALKAP> - PJAC(:,33,3)=+0.08187*TPK%K091(:)*PCONC(:,33)-TPK%K091(:)*PCONC(:,33) +!ISOP/URG7=0.0 ! -!ALKAP/NO2=0.0 +!ISOP/RPR4=0.0 ! -!ALKAP/NO3=+0.08994*K120*<ALKAP>-K120*<ALKAP> - PJAC(:,33,5)=+0.08994*TPK%K120(:)*PCONC(:,33)-TPK%K120(:)*PCONC(:,33) +!ISOP/RPR7=0.0 ! -!ALKAP/N2O5=0.0 +!ISOP/RPG7=0.0 ! -!ALKAP/HONO=0.0 +!ISOP/URG8=0.0 ! -!ALKAP/HNO3=0.0 +!ISOP/UR19=0.0 ! -!ALKAP/HNO4=0.0 +!ISOP/URG9=0.0 ! -!ALKAP/NH3=0.0 +!ISOP/AP7=0.0 ! -!ALKAP/SO2=0.0 +!ISOP/URG10=0.0 ! -!ALKAP/SULF=0.0 +!ISOP/RPR1=0.0 ! -!ALKAP/CO=0.0 +!ISOP/RPR5=0.0 ! -!ALKAP/OH=+K057*<ETH>+0.87811*K058*<ALKA>+0.40341*K069*<OP2>+1.00000*K071*<ONIT -!> - PJAC(:,33,14)=+TPK%K057(:)*PCONC(:,17)+0.87811*TPK%K058(:)*PCONC(:,18)+0.40341& -&*TPK%K069(:)*PCONC(:,29)+1.00000*TPK%K071(:)*PCONC(:,26) +!ISOP/RPR8=0.0 ! -!ALKAP/HO2=-K098*<ALKAP> - PJAC(:,33,15)=-TPK%K098(:)*PCONC(:,33) +!ISOP/RP10=0.0 ! -!ALKAP/CH4=0.0 +!ISOP/RP11=0.0 ! -!ALKAP/ETH=+K057*<OH> - PJAC(:,33,17)=+TPK%K057(:)*PCONC(:,14) +!ISOP/RP16=0.0 ! -!ALKAP/ALKA=+0.87811*K058*<OH> - PJAC(:,33,18)=+0.87811*TPK%K058(:)*PCONC(:,14) +!ISOP/RPRL=0.0 ! -!ALKAP/ALKE=+0.09815*K079*<O3> - PJAC(:,33,19)=+0.09815*TPK%K079(:)*PCONC(:,1) +!ISOP/APAN=0.0 ! -!ALKAP/BIO=+0.00000*K080*<O3> - PJAC(:,33,20)=+0.00000*TPK%K080(:)*PCONC(:,1) +!ISOP/PAN1=0.0 ! -!ALKAP/ARO=0.0 +!ISOP/PAN2=0.0 ! -!ALKAP/HCHO=0.0 +!ISOP/PAN3=0.0 ! -!ALKAP/ALD=0.0 +!ISOP/PAN4=0.0 ! -!ALKAP/KET=+1.00000*K015 - PJAC(:,33,24)=+1.00000*TPK%K015(:) +!ISOP/PAN6=0.0 ! -!ALKAP/CARBO=0.0 +!ISOP/PAN7=0.0 ! -!ALKAP/ONIT=+1.00000*K071*<OH> - PJAC(:,33,26)=+1.00000*TPK%K071(:)*PCONC(:,14) +!ISOP/PAN8=0.0 ! -!ALKAP/PAN=0.0 +!ISOP/PN10=0.0 ! -!ALKAP/OP1=0.0 +!ISOP/RO2T=0.0 ! -!ALKAP/OP2=+0.40341*K069*<OH> - PJAC(:,33,29)=+0.40341*TPK%K069(:)*PCONC(:,14) +!ISOP/RO21=0.0 ! -!ALKAP/ORA1=0.0 +!ISOP/RO25=0.0 ! -!ALKAP/ORA2=0.0 +RETURN +END SUBROUTINE SUBJ6 ! -!ALKAP/MO2=+0.00385*K105*<ALKAP>-K105*<ALKAP> - PJAC(:,33,32)=+0.00385*TPK%K105(:)*PCONC(:,33)-TPK%K105(:)*PCONC(:,33) +SUBROUTINE SUBJ7 ! -!ALKAP/ALKAP=+0.08187*K091*<NO>-K091*<NO>-K098*<HO2>+0.00385*K105*<MO2>-K105*<M -!O2>+0.00828*K111*<CARBOP>-K111*<CARBOP>+0.08994*K120*<NO3>-K120*<NO3> - PJAC(:,33,33)=+0.08187*TPK%K091(:)*PCONC(:,3)-TPK%K091(:)*PCONC(:,3)-TPK%K098(& -&:)*PCONC(:,15)+0.00385*TPK%K105(:)*PCONC(:,32)-TPK%K105(:)*PCONC(:,32)+0.00828& -&*TPK%K111(:)*PCONC(:,39)-TPK%K111(:)*PCONC(:,39)+0.08994*TPK%K120(:)*PCONC(:,5& -&)-TPK%K120(:)*PCONC(:,5) +!Indices 36 a 40 ! -!ALKAP/ALKEP=0.0 ! -!ALKAP/BIOP=0.0 +!BIOL/NO=0.0 ! -!ALKAP/PHO=0.0 +!BIOL/NO2=0.0 ! -!ALKAP/ADD=0.0 +!BIOL/O3=-K086*<BIOL> + PJAC(:,36,3)=-TPK%K086(:)*PCONC(:,36) ! -!ALKAP/AROP=0.0 +!BIOL/HONO=0.0 ! -!ALKAP/CARBOP=+0.00828*K111*<ALKAP>-K111*<ALKAP> - PJAC(:,33,39)=+0.00828*TPK%K111(:)*PCONC(:,33)-TPK%K111(:)*PCONC(:,33) +!BIOL/HNO3=0.0 ! -!ALKAP/OLN=0.0 +!BIOL/HNO4=0.0 ! -!ALKAP/XO2=0.0 +!BIOL/N2O5=0.0 ! -!ALKAP/WC_O3=0.0 +!BIOL/NO3=-K085*<BIOL> + PJAC(:,36,8)=-TPK%K085(:)*PCONC(:,36) ! -!ALKAP/WC_H2O2=0.0 +!BIOL/NH3=0.0 ! -!ALKAP/WC_NO=0.0 +!BIOL/HO2=0.0 ! -!ALKAP/WC_NO2=0.0 +!BIOL/CO=0.0 ! -!ALKAP/WC_NO3=0.0 +!BIOL/H2O2=0.0 ! -!ALKAP/WC_N2O5=0.0 +!BIOL/SO2=0.0 ! -!ALKAP/WC_HONO=0.0 +!BIOL/H2SO4=0.0 ! -!ALKAP/WC_HNO3=0.0 +!BIOL/OH=-K084*<BIOL> + PJAC(:,36,15)=-TPK%K084(:)*PCONC(:,36) ! -!ALKAP/WC_HNO4=0.0 +!BIOL/ETHE=0.0 ! -!ALKAP/WC_NH3=0.0 +!BIOL/OLEL=0.0 ! -!ALKAP/WC_OH=0.0 +!BIOL/OLEH=0.0 ! -!ALKAP/WC_HO2=0.0 +!BIOL/ALKL=0.0 ! -!ALKAP/WC_CO2=0.0 +!BIOL/ALKM=0.0 ! -!ALKAP/WC_SO2=0.0 +!BIOL/ALKH=0.0 ! -!ALKAP/WC_SULF=0.0 +!BIOL/AROH=0.0 ! -!ALKAP/WC_HCHO=0.0 +!BIOL/AROL=0.0 ! -!ALKAP/WC_ORA1=0.0 +!BIOL/AROO=0.0 ! -!ALKAP/WC_ORA2=0.0 +!BIOL/ARAL=0.0 ! -!ALKAP/WC_MO2=0.0 +!BIOL/ARAC=0.0 ! -!ALKAP/WC_OP1=0.0 +!BIOL/PAH=0.0 ! -!ALKAP/WC_ASO3=0.0 +!BIOL/HCHO=0.0 ! -!ALKAP/WC_ASO4=0.0 +!BIOL/ALD2=0.0 ! -!ALKAP/WC_ASO5=0.0 +!BIOL/KETL=0.0 ! -!ALKAP/WC_AHSO5=0.0 +!BIOL/KETH=0.0 ! -!ALKAP/WC_AHMS=0.0 +!BIOL/MEOH=0.0 ! -!ALKAP/WR_O3=0.0 +!BIOL/ETOH=0.0 ! -!ALKAP/WR_H2O2=0.0 +!BIOL/ALCH=0.0 ! -!ALKAP/WR_NO=0.0 +!BIOL/ISOP=0.0 ! -!ALKAP/WR_NO2=0.0 +!BIOL/BIOL=-K084*<OH>-K085*<NO3>-K086*<O3>-K087*<O> + PJAC(:,36,36)=-TPK%K084(:)*PCONC(:,15)-TPK%K085(:)*PCONC(:,8)-TPK%K086(:)*PCON& +&C(:,3)-TPK%K087(:)*TPK%O(:) ! -!ALKAP/WR_NO3=0.0 +!BIOL/BIOH=0.0 ! -!ALKAP/WR_N2O5=0.0 +!BIOL/MTBE=0.0 ! -!ALKAP/WR_HONO=0.0 +!BIOL/MVK=0.0 ! -!ALKAP/WR_HNO3=0.0 +!BIOL/MCR=0.0 ! -!ALKAP/WR_HNO4=0.0 +!BIOL/MGLY=0.0 ! -!ALKAP/WR_NH3=0.0 +!BIOL/GLY=0.0 ! -!ALKAP/WR_OH=0.0 +!BIOL/ORA1=0.0 ! -!ALKAP/WR_HO2=0.0 +!BIOL/ORA2=0.0 ! -!ALKAP/WR_CO2=0.0 +!BIOL/ACID=0.0 ! -!ALKAP/WR_SO2=0.0 +!BIOL/UR28=0.0 ! -!ALKAP/WR_SULF=0.0 +!BIOL/UR21=0.0 ! -!ALKAP/WR_HCHO=0.0 +!BIOL/URG2=0.0 ! -!ALKAP/WR_ORA1=0.0 +!BIOL/UR26=0.0 ! -!ALKAP/WR_ORA2=0.0 +!BIOL/RPG2=0.0 ! -!ALKAP/WR_MO2=0.0 +!BIOL/RP18=0.0 ! -!ALKAP/WR_OP1=0.0 +!BIOL/RPG3=0.0 ! -!ALKAP/WR_ASO3=0.0 +!BIOL/URG4=0.0 ! -!ALKAP/WR_ASO4=0.0 +!BIOL/UR8=0.0 ! -!ALKAP/WR_ASO5=0.0 +!BIOL/UR17=0.0 ! -!ALKAP/WR_AHSO5=0.0 +!BIOL/UR7=0.0 ! -!ALKAP/WR_AHMS=0.0 +!BIOL/RPR3=0.0 ! -!ALKEP/O3=0.0 +!BIOL/URG6=0.0 ! -!ALKEP/H2O2=0.0 +!BIOL/UR22=0.0 ! -!ALKEP/NO=-K092*<ALKEP> - PJAC(:,34,3)=-TPK%K092(:)*PCONC(:,34) +!BIOL/URG7=0.0 ! -!ALKEP/NO2=0.0 +!BIOL/RPR4=0.0 ! -!ALKEP/NO3=-K121*<ALKEP> - PJAC(:,34,5)=-TPK%K121(:)*PCONC(:,34) +!BIOL/RPR7=0.0 ! -!ALKEP/N2O5=0.0 +!BIOL/RPG7=0.0 ! -!ALKEP/HONO=0.0 +!BIOL/URG8=0.0 ! -!ALKEP/HNO3=0.0 +!BIOL/UR19=0.0 ! -!ALKEP/HNO4=0.0 +!BIOL/URG9=0.0 ! -!ALKEP/NH3=0.0 +!BIOL/AP7=0.0 ! -!ALKEP/SO2=0.0 +!BIOL/URG10=0.0 ! -!ALKEP/SULF=0.0 +!BIOL/RPR1=0.0 ! -!ALKEP/CO=0.0 +!BIOL/RPR5=0.0 ! -!ALKEP/OH=+1.02529*K059*<ALKE> - PJAC(:,34,14)=+1.02529*TPK%K059(:)*PCONC(:,19) +!BIOL/RPR8=0.0 ! -!ALKEP/HO2=-K099*<ALKEP> - PJAC(:,34,15)=-TPK%K099(:)*PCONC(:,34) +!BIOL/RP10=0.0 ! -!ALKEP/CH4=0.0 +!BIOL/RP11=0.0 ! -!ALKEP/ETH=0.0 +!BIOL/RP16=0.0 ! -!ALKEP/ALKA=0.0 +!BIOL/RPRL=0.0 ! -!ALKEP/ALKE=+1.02529*K059*<OH> - PJAC(:,34,19)=+1.02529*TPK%K059(:)*PCONC(:,14) +!BIOL/APAN=0.0 ! -!ALKEP/BIO=0.0 +!BIOL/PAN1=0.0 ! -!ALKEP/ARO=0.0 +!BIOL/PAN2=0.0 ! -!ALKEP/HCHO=0.0 +!BIOL/PAN3=0.0 ! -!ALKEP/ALD=0.0 +!BIOL/PAN4=0.0 ! -!ALKEP/KET=0.0 +!BIOL/PAN6=0.0 ! -!ALKEP/CARBO=0.0 +!BIOL/PAN7=0.0 ! -!ALKEP/ONIT=0.0 +!BIOL/PAN8=0.0 ! -!ALKEP/PAN=0.0 +!BIOL/PN10=0.0 ! -!ALKEP/OP1=0.0 +!BIOL/RO2T=0.0 ! -!ALKEP/OP2=0.0 +!BIOL/RO21=0.0 ! -!ALKEP/ORA1=0.0 +!BIOL/RO25=0.0 ! -!ALKEP/ORA2=0.0 +!BIOH/NO=0.0 ! -!ALKEP/MO2=-K106*<ALKEP> - PJAC(:,34,32)=-TPK%K106(:)*PCONC(:,34) +!BIOH/NO2=0.0 ! -!ALKEP/ALKAP=0.0 +!BIOH/O3=-K090*<BIOH> + PJAC(:,37,3)=-TPK%K090(:)*PCONC(:,37) ! -!ALKEP/ALKEP=-K092*<NO>-K099*<HO2>-K106*<MO2>-K112*<CARBOP>-K121*<NO3> - PJAC(:,34,34)=-TPK%K092(:)*PCONC(:,3)-TPK%K099(:)*PCONC(:,15)-TPK%K106(:)*PCON& -&C(:,32)-TPK%K112(:)*PCONC(:,39)-TPK%K121(:)*PCONC(:,5) +!BIOH/HONO=0.0 ! -!ALKEP/BIOP=0.0 +!BIOH/HNO3=0.0 ! -!ALKEP/PHO=0.0 +!BIOH/HNO4=0.0 ! -!ALKEP/ADD=0.0 +!BIOH/N2O5=0.0 ! -!ALKEP/AROP=0.0 +!BIOH/NO3=-K089*<BIOH> + PJAC(:,37,8)=-TPK%K089(:)*PCONC(:,37) ! -!ALKEP/CARBOP=-K112*<ALKEP> - PJAC(:,34,39)=-TPK%K112(:)*PCONC(:,34) +!BIOH/NH3=0.0 ! -!ALKEP/OLN=0.0 +!BIOH/HO2=0.0 ! -!ALKEP/XO2=0.0 +!BIOH/CO=0.0 ! -!ALKEP/WC_O3=0.0 +!BIOH/H2O2=0.0 ! -!ALKEP/WC_H2O2=0.0 +!BIOH/SO2=0.0 ! -!ALKEP/WC_NO=0.0 +!BIOH/H2SO4=0.0 ! -!ALKEP/WC_NO2=0.0 +!BIOH/OH=-K088*<BIOH> + PJAC(:,37,15)=-TPK%K088(:)*PCONC(:,37) ! -!ALKEP/WC_NO3=0.0 +!BIOH/ETHE=0.0 ! -!ALKEP/WC_N2O5=0.0 +!BIOH/OLEL=0.0 ! -!ALKEP/WC_HONO=0.0 +!BIOH/OLEH=0.0 ! -!ALKEP/WC_HNO3=0.0 +!BIOH/ALKL=0.0 ! -!ALKEP/WC_HNO4=0.0 +!BIOH/ALKM=0.0 ! -!ALKEP/WC_NH3=0.0 +!BIOH/ALKH=0.0 ! -!ALKEP/WC_OH=0.0 +!BIOH/AROH=0.0 ! -!ALKEP/WC_HO2=0.0 +!BIOH/AROL=0.0 ! -!ALKEP/WC_CO2=0.0 +!BIOH/AROO=0.0 ! -!ALKEP/WC_SO2=0.0 +!BIOH/ARAL=0.0 ! -!ALKEP/WC_SULF=0.0 +!BIOH/ARAC=0.0 ! -!ALKEP/WC_HCHO=0.0 +!BIOH/PAH=0.0 ! -!ALKEP/WC_ORA1=0.0 +!BIOH/HCHO=0.0 ! -!ALKEP/WC_ORA2=0.0 +!BIOH/ALD2=0.0 ! -!ALKEP/WC_MO2=0.0 +!BIOH/KETL=0.0 ! -!ALKEP/WC_OP1=0.0 +!BIOH/KETH=0.0 ! -!ALKEP/WC_ASO3=0.0 +!BIOH/MEOH=0.0 ! -!ALKEP/WC_ASO4=0.0 +!BIOH/ETOH=0.0 ! -!ALKEP/WC_ASO5=0.0 +!BIOH/ALCH=0.0 ! -!ALKEP/WC_AHSO5=0.0 +!BIOH/ISOP=0.0 ! -!ALKEP/WC_AHMS=0.0 +!BIOH/BIOL=0.0 ! -!ALKEP/WR_O3=0.0 +!BIOH/BIOH=-K088*<OH>-K089*<NO3>-K090*<O3>-K091*<O> + PJAC(:,37,37)=-TPK%K088(:)*PCONC(:,15)-TPK%K089(:)*PCONC(:,8)-TPK%K090(:)*PCON& +&C(:,3)-TPK%K091(:)*TPK%O(:) ! -!ALKEP/WR_H2O2=0.0 +!BIOH/MTBE=0.0 ! -!ALKEP/WR_NO=0.0 +!BIOH/MVK=0.0 ! -!ALKEP/WR_NO2=0.0 +!BIOH/MCR=0.0 ! -!ALKEP/WR_NO3=0.0 +!BIOH/MGLY=0.0 ! -!ALKEP/WR_N2O5=0.0 +!BIOH/GLY=0.0 ! -!ALKEP/WR_HONO=0.0 +!BIOH/ORA1=0.0 ! -!ALKEP/WR_HNO3=0.0 +!BIOH/ORA2=0.0 ! -!ALKEP/WR_HNO4=0.0 +!BIOH/ACID=0.0 ! -!ALKEP/WR_NH3=0.0 +!BIOH/UR28=0.0 ! -!ALKEP/WR_OH=0.0 +!BIOH/UR21=0.0 ! -!ALKEP/WR_HO2=0.0 +!BIOH/URG2=0.0 ! -!ALKEP/WR_CO2=0.0 +!BIOH/UR26=0.0 ! -!ALKEP/WR_SO2=0.0 +!BIOH/RPG2=0.0 ! -!ALKEP/WR_SULF=0.0 +!BIOH/RP18=0.0 ! -!ALKEP/WR_HCHO=0.0 +!BIOH/RPG3=0.0 ! -!ALKEP/WR_ORA1=0.0 +!BIOH/URG4=0.0 ! -!ALKEP/WR_ORA2=0.0 +!BIOH/UR8=0.0 ! -!ALKEP/WR_MO2=0.0 +!BIOH/UR17=0.0 ! -!ALKEP/WR_OP1=0.0 +!BIOH/UR7=0.0 ! -!ALKEP/WR_ASO3=0.0 +!BIOH/RPR3=0.0 ! -!ALKEP/WR_ASO4=0.0 +!BIOH/URG6=0.0 ! -!ALKEP/WR_ASO5=0.0 +!BIOH/UR22=0.0 ! -!ALKEP/WR_AHSO5=0.0 +!BIOH/URG7=0.0 ! -!ALKEP/WR_AHMS=0.0 +!BIOH/RPR4=0.0 ! -!BIOP/O3=0.0 +!BIOH/RPR7=0.0 ! -!BIOP/H2O2=0.0 +!BIOH/RPG7=0.0 ! -!BIOP/NO=-K093*<BIOP> - PJAC(:,35,3)=-TPK%K093(:)*PCONC(:,35) +!BIOH/URG8=0.0 ! -!BIOP/NO2=0.0 +!BIOH/UR19=0.0 ! -!BIOP/NO3=-K122*<BIOP> - PJAC(:,35,5)=-TPK%K122(:)*PCONC(:,35) +!BIOH/URG9=0.0 ! -!BIOP/N2O5=0.0 +!BIOH/AP7=0.0 ! -!BIOP/HONO=0.0 +!BIOH/URG10=0.0 ! -!BIOP/HNO3=0.0 +!BIOH/RPR1=0.0 ! -!BIOP/HNO4=0.0 +!BIOH/RPR5=0.0 ! -!BIOP/NH3=0.0 +!BIOH/RPR8=0.0 ! -!BIOP/SO2=0.0 +!BIOH/RP10=0.0 ! -!BIOP/SULF=0.0 +!BIOH/RP11=0.0 ! -!BIOP/CO=0.0 +!BIOH/RP16=0.0 ! -!BIOP/OH=+0.00000*K059*<ALKE>+1.00000*K060*<BIO> - PJAC(:,35,14)=+0.00000*TPK%K059(:)*PCONC(:,19)+1.00000*TPK%K060(:)*PCONC(:,20) +!BIOH/RPRL=0.0 ! -!BIOP/HO2=-K0100*<BIOP> - PJAC(:,35,15)=-TPK%K0100(:)*PCONC(:,35) +!BIOH/APAN=0.0 ! -!BIOP/CH4=0.0 +!BIOH/PAN1=0.0 ! -!BIOP/ETH=0.0 +!BIOH/PAN2=0.0 ! -!BIOP/ALKA=0.0 +!BIOH/PAN3=0.0 ! -!BIOP/ALKE=+0.00000*K059*<OH> - PJAC(:,35,19)=+0.00000*TPK%K059(:)*PCONC(:,14) +!BIOH/PAN4=0.0 ! -!BIOP/BIO=+1.00000*K060*<OH> - PJAC(:,35,20)=+1.00000*TPK%K060(:)*PCONC(:,14) +!BIOH/PAN6=0.0 ! -!BIOP/ARO=0.0 +!BIOH/PAN7=0.0 ! -!BIOP/HCHO=0.0 +!BIOH/PAN8=0.0 ! -!BIOP/ALD=0.0 +!BIOH/PN10=0.0 ! -!BIOP/KET=0.0 +!BIOH/RO2T=0.0 ! -!BIOP/CARBO=0.0 +!BIOH/RO21=0.0 ! -!BIOP/ONIT=0.0 +!BIOH/RO25=0.0 ! -!BIOP/PAN=0.0 +!MTBE/NO=0.0 ! -!BIOP/OP1=0.0 +!MTBE/NO2=0.0 ! -!BIOP/OP2=0.0 +!MTBE/O3=0.0 ! -!BIOP/ORA1=0.0 +!MTBE/HONO=0.0 ! -!BIOP/ORA2=0.0 +!MTBE/HNO3=0.0 ! -!BIOP/MO2=-K107*<BIOP> - PJAC(:,35,32)=-TPK%K107(:)*PCONC(:,35) +!MTBE/HNO4=0.0 ! -!BIOP/ALKAP=0.0 +!MTBE/N2O5=0.0 ! -!BIOP/ALKEP=0.0 +!MTBE/NO3=0.0 ! -!BIOP/BIOP=-K093*<NO>-K0100*<HO2>-K107*<MO2>-K113*<CARBOP>-K122*<NO3> - PJAC(:,35,35)=-TPK%K093(:)*PCONC(:,3)-TPK%K0100(:)*PCONC(:,15)-TPK%K107(:)*PCO& -&NC(:,32)-TPK%K113(:)*PCONC(:,39)-TPK%K122(:)*PCONC(:,5) +!MTBE/NH3=0.0 ! -!BIOP/PHO=0.0 +!MTBE/HO2=0.0 ! -!BIOP/ADD=0.0 +!MTBE/CO=0.0 ! -!BIOP/AROP=0.0 +!MTBE/H2O2=0.0 ! -!BIOP/CARBOP=-K113*<BIOP> - PJAC(:,35,39)=-TPK%K113(:)*PCONC(:,35) +!MTBE/SO2=0.0 ! -!BIOP/OLN=0.0 +!MTBE/H2SO4=0.0 ! -!BIOP/XO2=0.0 +!MTBE/OH=-K068*<MTBE> + PJAC(:,38,15)=-TPK%K068(:)*PCONC(:,38) ! -!BIOP/WC_O3=0.0 +!MTBE/ETHE=0.0 ! -!BIOP/WC_H2O2=0.0 +!MTBE/OLEL=0.0 ! -!BIOP/WC_NO=0.0 +!MTBE/OLEH=0.0 ! -!BIOP/WC_NO2=0.0 +!MTBE/ALKL=0.0 ! -!BIOP/WC_NO3=0.0 +!MTBE/ALKM=0.0 ! -!BIOP/WC_N2O5=0.0 +!MTBE/ALKH=0.0 ! -!BIOP/WC_HONO=0.0 +!MTBE/AROH=0.0 ! -!BIOP/WC_HNO3=0.0 +!MTBE/AROL=0.0 ! -!BIOP/WC_HNO4=0.0 +!MTBE/AROO=0.0 ! -!BIOP/WC_NH3=0.0 +!MTBE/ARAL=0.0 ! -!BIOP/WC_OH=0.0 +!MTBE/ARAC=0.0 ! -!BIOP/WC_HO2=0.0 +!MTBE/PAH=0.0 ! -!BIOP/WC_CO2=0.0 +!MTBE/HCHO=0.0 ! -!BIOP/WC_SO2=0.0 +!MTBE/ALD2=0.0 ! -!BIOP/WC_SULF=0.0 +!MTBE/KETL=0.0 ! -!BIOP/WC_HCHO=0.0 +!MTBE/KETH=0.0 ! -!BIOP/WC_ORA1=0.0 +!MTBE/MEOH=0.0 ! -!BIOP/WC_ORA2=0.0 +!MTBE/ETOH=0.0 ! -!BIOP/WC_MO2=0.0 +!MTBE/ALCH=0.0 ! -!BIOP/WC_OP1=0.0 +!MTBE/ISOP=0.0 ! -!BIOP/WC_ASO3=0.0 +!MTBE/BIOL=0.0 ! -!BIOP/WC_ASO4=0.0 +!MTBE/BIOH=0.0 ! -!BIOP/WC_ASO5=0.0 +!MTBE/MTBE=-K068*<OH> + PJAC(:,38,38)=-TPK%K068(:)*PCONC(:,15) ! -!BIOP/WC_AHSO5=0.0 +!MTBE/MVK=0.0 ! -!BIOP/WC_AHMS=0.0 +!MTBE/MCR=0.0 ! -!BIOP/WR_O3=0.0 +!MTBE/MGLY=0.0 ! -!BIOP/WR_H2O2=0.0 +!MTBE/GLY=0.0 ! -!BIOP/WR_NO=0.0 +!MTBE/ORA1=0.0 ! -!BIOP/WR_NO2=0.0 +!MTBE/ORA2=0.0 ! -!BIOP/WR_NO3=0.0 +!MTBE/ACID=0.0 ! -!BIOP/WR_N2O5=0.0 +!MTBE/UR28=0.0 ! -!BIOP/WR_HONO=0.0 +!MTBE/UR21=0.0 ! -!BIOP/WR_HNO3=0.0 +!MTBE/URG2=0.0 ! -!BIOP/WR_HNO4=0.0 +!MTBE/UR26=0.0 ! -!BIOP/WR_NH3=0.0 +!MTBE/RPG2=0.0 ! -!BIOP/WR_OH=0.0 +!MTBE/RP18=0.0 ! -!BIOP/WR_HO2=0.0 +!MTBE/RPG3=0.0 ! -!BIOP/WR_CO2=0.0 +!MTBE/URG4=0.0 ! -!BIOP/WR_SO2=0.0 +!MTBE/UR8=0.0 ! -!BIOP/WR_SULF=0.0 +!MTBE/UR17=0.0 ! -!BIOP/WR_HCHO=0.0 +!MTBE/UR7=0.0 ! -!BIOP/WR_ORA1=0.0 +!MTBE/RPR3=0.0 ! -!BIOP/WR_ORA2=0.0 +!MTBE/URG6=0.0 ! -!BIOP/WR_MO2=0.0 +!MTBE/UR22=0.0 ! -!BIOP/WR_OP1=0.0 +!MTBE/URG7=0.0 ! -!BIOP/WR_ASO3=0.0 +!MTBE/RPR4=0.0 ! -!BIOP/WR_ASO4=0.0 +!MTBE/RPR7=0.0 ! -!BIOP/WR_ASO5=0.0 +!MTBE/RPG7=0.0 ! -!BIOP/WR_AHSO5=0.0 +!MTBE/URG8=0.0 ! -!BIOP/WR_AHMS=0.0 +!MTBE/UR19=0.0 ! -RETURN -END SUBROUTINE SUBJ6 +!MTBE/URG9=0.0 ! -SUBROUTINE SUBJ7 +!MTBE/AP7=0.0 ! -!Indices 36 a 40 +!MTBE/URG10=0.0 ! +!MTBE/RPR1=0.0 ! -!PHO/O3=0.0 +!MTBE/RPR5=0.0 ! -!PHO/H2O2=0.0 +!MTBE/RPR8=0.0 ! -!PHO/NO=0.0 +!MTBE/RP10=0.0 ! -!PHO/NO2=-K083*<PHO> - PJAC(:,36,4)=-TPK%K083(:)*PCONC(:,36) +!MTBE/RP11=0.0 ! -!PHO/NO3=+K075*<ARO> - PJAC(:,36,5)=+TPK%K075(:)*PCONC(:,21) +!MTBE/RP16=0.0 ! -!PHO/N2O5=0.0 +!MTBE/RPRL=0.0 ! -!PHO/HONO=0.0 +!MTBE/APAN=0.0 ! -!PHO/HNO3=0.0 +!MTBE/PAN1=0.0 ! -!PHO/HNO4=0.0 +!MTBE/PAN2=0.0 ! -!PHO/NH3=0.0 +!MTBE/PAN3=0.0 ! -!PHO/SO2=0.0 +!MTBE/PAN4=0.0 ! -!PHO/SULF=0.0 +!MTBE/PAN6=0.0 ! -!PHO/CO=0.0 +!MTBE/PAN7=0.0 ! -!PHO/OH=+0.00276*K061*<ARO> - PJAC(:,36,14)=+0.00276*TPK%K061(:)*PCONC(:,21) +!MTBE/PAN8=0.0 ! -!PHO/HO2=-K084*<PHO> - PJAC(:,36,15)=-TPK%K084(:)*PCONC(:,36) +!MTBE/PN10=0.0 ! -!PHO/CH4=0.0 +!MTBE/RO2T=0.0 ! -!PHO/ETH=0.0 +!MTBE/RO21=0.0 ! -!PHO/ALKA=0.0 +!MTBE/RO25=0.0 ! -!PHO/ALKE=0.0 +!MVK/NO=+TPK%CF6*K150*<RO29>+K156*<RO211> + PJAC(:,39,1)=+TPK%CF6*TPK%K150(:)*TPK%RO29(:)+TPK%K156(:)*TPK%RO211(:) ! -!PHO/BIO=0.0 +!MVK/NO2=0.0 ! -!PHO/ARO=+0.00276*K061*<OH>+K075*<NO3> - PJAC(:,36,21)=+0.00276*TPK%K061(:)*PCONC(:,14)+TPK%K075(:)*PCONC(:,5) +!MVK/O3=+0.389*K066*<ISOP>-K281*<MVK> + PJAC(:,39,3)=+0.389*TPK%K066(:)*PCONC(:,35)-TPK%K281(:)*PCONC(:,39) ! -!PHO/HCHO=0.0 +!MVK/HONO=0.0 ! -!PHO/ALD=0.0 +!MVK/HNO3=0.0 ! -!PHO/KET=0.0 +!MVK/HNO4=0.0 ! -!PHO/CARBO=0.0 +!MVK/N2O5=0.0 ! -!PHO/ONIT=0.0 +!MVK/NO3=0.0 ! -!PHO/PAN=0.0 +!MVK/NH3=0.0 ! -!PHO/OP1=0.0 +!MVK/HO2=+K152*<RO29>+K158*<RO211> + PJAC(:,39,10)=+TPK%K152(:)*TPK%RO29(:)+TPK%K158(:)*TPK%RO211(:) ! -!PHO/OP2=0.0 +!MVK/CO=0.0 ! -!PHO/ORA1=0.0 +!MVK/H2O2=0.0 ! -!PHO/ORA2=0.0 +!MVK/SO2=0.0 ! -!PHO/MO2=0.0 +!MVK/H2SO4=0.0 ! -!PHO/ALKAP=0.0 +!MVK/OH=-K272*<MVK> + PJAC(:,39,15)=-TPK%K272(:)*PCONC(:,39) ! -!PHO/ALKEP=0.0 +!MVK/ETHE=0.0 ! -!PHO/BIOP=0.0 +!MVK/OLEL=0.0 ! -!PHO/PHO=-K083*<NO2>-K084*<HO2> - PJAC(:,36,36)=-TPK%K083(:)*PCONC(:,4)-TPK%K084(:)*PCONC(:,15) +!MVK/OLEH=0.0 ! -!PHO/ADD=0.0 +!MVK/ALKL=0.0 ! -!PHO/AROP=0.0 +!MVK/ALKM=0.0 ! -!PHO/CARBOP=0.0 +!MVK/ALKH=0.0 ! -!PHO/OLN=0.0 +!MVK/AROH=0.0 ! -!PHO/XO2=0.0 +!MVK/AROL=0.0 ! -!PHO/WC_O3=0.0 +!MVK/AROO=0.0 ! -!PHO/WC_H2O2=0.0 +!MVK/ARAL=0.0 ! -!PHO/WC_NO=0.0 +!MVK/ARAC=0.0 ! -!PHO/WC_NO2=0.0 +!MVK/PAH=0.0 ! -!PHO/WC_NO3=0.0 +!MVK/HCHO=0.0 ! -!PHO/WC_N2O5=0.0 +!MVK/ALD2=0.0 ! -!PHO/WC_HONO=0.0 +!MVK/KETL=0.0 ! -!PHO/WC_HNO3=0.0 +!MVK/KETH=0.0 ! -!PHO/WC_HNO4=0.0 +!MVK/MEOH=0.0 ! -!PHO/WC_NH3=0.0 +!MVK/ETOH=0.0 ! -!PHO/WC_OH=0.0 +!MVK/ALCH=0.0 ! -!PHO/WC_HO2=0.0 +!MVK/ISOP=+0.389*K066*<O3> + PJAC(:,39,35)=+0.389*TPK%K066(:)*PCONC(:,3) ! -!PHO/WC_CO2=0.0 +!MVK/BIOL=0.0 ! -!PHO/WC_SO2=0.0 +!MVK/BIOH=0.0 ! -!PHO/WC_SULF=0.0 +!MVK/MTBE=0.0 ! -!PHO/WC_HCHO=0.0 +!MVK/MVK=-K272*<OH>-K281*<O3>-K283*<O> + PJAC(:,39,39)=-TPK%K272(:)*PCONC(:,15)-TPK%K281(:)*PCONC(:,3)-TPK%K283(:)*TPK%& +&O(:) ! -!PHO/WC_ORA1=0.0 +!MVK/MCR=0.0 ! -!PHO/WC_ORA2=0.0 +!MVK/MGLY=0.0 ! -!PHO/WC_MO2=0.0 +!MVK/GLY=0.0 ! -!PHO/WC_OP1=0.0 +!MVK/ORA1=0.0 ! -!PHO/WC_ASO3=0.0 +!MVK/ORA2=0.0 ! -!PHO/WC_ASO4=0.0 +!MVK/ACID=0.0 ! -!PHO/WC_ASO5=0.0 +!MVK/UR28=0.0 ! -!PHO/WC_AHSO5=0.0 +!MVK/UR21=0.0 ! -!PHO/WC_AHMS=0.0 +!MVK/URG2=0.0 ! -!PHO/WR_O3=0.0 +!MVK/UR26=0.0 ! -!PHO/WR_H2O2=0.0 +!MVK/RPG2=0.0 ! -!PHO/WR_NO=0.0 +!MVK/RP18=0.0 ! -!PHO/WR_NO2=0.0 +!MVK/RPG3=0.0 ! -!PHO/WR_NO3=0.0 +!MVK/URG4=0.0 ! -!PHO/WR_N2O5=0.0 +!MVK/UR8=0.0 ! -!PHO/WR_HONO=0.0 +!MVK/UR17=0.0 ! -!PHO/WR_HNO3=0.0 +!MVK/UR7=0.0 ! -!PHO/WR_HNO4=0.0 +!MVK/RPR3=0.0 ! -!PHO/WR_NH3=0.0 +!MVK/URG6=0.0 ! -!PHO/WR_OH=0.0 +!MVK/UR22=0.0 ! -!PHO/WR_HO2=0.0 +!MVK/URG7=0.0 ! -!PHO/WR_CO2=0.0 +!MVK/RPR4=0.0 ! -!PHO/WR_SO2=0.0 +!MVK/RPR7=0.0 ! -!PHO/WR_SULF=0.0 +!MVK/RPG7=0.0 ! -!PHO/WR_HCHO=0.0 +!MVK/URG8=0.0 ! -!PHO/WR_ORA1=0.0 +!MVK/UR19=0.0 ! -!PHO/WR_ORA2=0.0 +!MVK/URG9=0.0 ! -!PHO/WR_MO2=0.0 +!MVK/AP7=0.0 ! -!PHO/WR_OP1=0.0 +!MVK/URG10=0.0 ! -!PHO/WR_ASO3=0.0 +!MVK/RPR1=0.0 ! -!PHO/WR_ASO4=0.0 +!MVK/RPR5=0.0 ! -!PHO/WR_ASO5=0.0 +!MVK/RPR8=0.0 ! -!PHO/WR_AHSO5=0.0 +!MVK/RP10=0.0 ! -!PHO/WR_AHMS=0.0 +!MVK/RP11=0.0 ! -!ADD/O3=-K087*<ADD> - PJAC(:,37,1)=-TPK%K087(:)*PCONC(:,37) +!MVK/RP16=0.0 ! -!ADD/H2O2=0.0 +!MVK/RPRL=0.0 ! -!ADD/NO=0.0 +!MVK/APAN=0.0 ! -!ADD/NO2=-K085*<ADD> - PJAC(:,37,4)=-TPK%K085(:)*PCONC(:,37) +!MVK/PAN1=0.0 ! -!ADD/NO3=0.0 +!MVK/PAN2=0.0 ! -!ADD/N2O5=0.0 +!MVK/PAN3=0.0 ! -!ADD/HONO=0.0 +!MVK/PAN4=0.0 ! -!ADD/HNO3=0.0 +!MVK/PAN6=0.0 ! -!ADD/HNO4=0.0 +!MVK/PAN7=0.0 ! -!ADD/NH3=0.0 +!MVK/PAN8=0.0 ! -!ADD/SO2=0.0 +!MVK/PN10=0.0 ! -!ADD/SULF=0.0 +!MVK/RO2T=+K151*<RO29>+K157*<RO211> + PJAC(:,39,85)=+TPK%K151(:)*TPK%RO29(:)+TPK%K157(:)*TPK%RO211(:) ! -!ADD/CO=0.0 +!MVK/RO21=0.0 ! -!ADD/OH=+0.93968*K061*<ARO> - PJAC(:,37,14)=+0.93968*TPK%K061(:)*PCONC(:,21) +!MVK/RO25=0.0 ! -!ADD/HO2=0.0 +!MCR/NO=+K153*<RO210>+K159*<RO212> + PJAC(:,40,1)=+TPK%K153(:)*TPK%RO210(:)+TPK%K159(:)*TPK%RO212(:) ! -!ADD/CH4=0.0 +!MCR/NO2=0.0 ! -!ADD/ETH=0.0 +!MCR/O3=+0.17*K066*<ISOP>-K282*<MCR> + PJAC(:,40,3)=+0.17*TPK%K066(:)*PCONC(:,35)-TPK%K282(:)*PCONC(:,40) ! -!ADD/ALKA=0.0 +!MCR/HONO=0.0 ! -!ADD/ALKE=0.0 +!MCR/HNO3=0.0 ! -!ADD/BIO=0.0 +!MCR/HNO4=0.0 ! -!ADD/ARO=+0.93968*K061*<OH> - PJAC(:,37,21)=+0.93968*TPK%K061(:)*PCONC(:,14) +!MCR/N2O5=0.0 ! -!ADD/HCHO=0.0 +!MCR/NO3=-K275*<MCR> + PJAC(:,40,8)=-TPK%K275(:)*PCONC(:,40) ! -!ADD/ALD=0.0 +!MCR/NH3=0.0 ! -!ADD/KET=0.0 +!MCR/HO2=+K155*<RO210>+K161*<RO212> + PJAC(:,40,10)=+TPK%K155(:)*TPK%RO210(:)+TPK%K161(:)*TPK%RO212(:) ! -!ADD/CARBO=0.0 +!MCR/CO=0.0 ! -!ADD/ONIT=0.0 +!MCR/H2O2=0.0 ! -!ADD/PAN=0.0 +!MCR/SO2=0.0 ! -!ADD/OP1=0.0 +!MCR/H2SO4=0.0 ! -!ADD/OP2=0.0 +!MCR/OH=-K273*<MCR> + PJAC(:,40,15)=-TPK%K273(:)*PCONC(:,40) ! -!ADD/ORA1=0.0 +!MCR/ETHE=0.0 ! -!ADD/ORA2=0.0 +!MCR/OLEL=0.0 ! -!ADD/MO2=0.0 +!MCR/OLEH=0.0 ! -!ADD/ALKAP=0.0 +!MCR/ALKL=0.0 ! -!ADD/ALKEP=0.0 +!MCR/ALKM=0.0 ! -!ADD/BIOP=0.0 +!MCR/ALKH=0.0 ! -!ADD/PHO=0.0 +!MCR/AROH=0.0 ! -!ADD/ADD=-K085*<NO2>-K086*<O2>-K087*<O3> - PJAC(:,37,37)=-TPK%K085(:)*PCONC(:,4)-TPK%K086(:)*TPK%O2(:)-TPK%K087(:)*PCONC(& -&:,1) +!MCR/AROL=0.0 ! -!ADD/AROP=0.0 +!MCR/AROO=0.0 ! -!ADD/CARBOP=0.0 +!MCR/ARAL=0.0 ! -!ADD/OLN=0.0 +!MCR/ARAC=0.0 ! -!ADD/XO2=0.0 +!MCR/PAH=0.0 ! -!ADD/WC_O3=0.0 +!MCR/HCHO=0.0 ! -!ADD/WC_H2O2=0.0 +!MCR/ALD2=0.0 ! -!ADD/WC_NO=0.0 +!MCR/KETL=0.0 ! -!ADD/WC_NO2=0.0 +!MCR/KETH=0.0 ! -!ADD/WC_NO3=0.0 +!MCR/MEOH=0.0 ! -!ADD/WC_N2O5=0.0 +!MCR/ETOH=0.0 ! -!ADD/WC_HONO=0.0 +!MCR/ALCH=0.0 ! -!ADD/WC_HNO3=0.0 +!MCR/ISOP=+0.17*K066*<O3> + PJAC(:,40,35)=+0.17*TPK%K066(:)*PCONC(:,3) ! -!ADD/WC_HNO4=0.0 +!MCR/BIOL=0.0 ! -!ADD/WC_NH3=0.0 +!MCR/BIOH=0.0 ! -!ADD/WC_OH=0.0 +!MCR/MTBE=0.0 ! -!ADD/WC_HO2=0.0 +!MCR/MVK=0.0 ! -!ADD/WC_CO2=0.0 +!MCR/MCR=-K273*<OH>-K275*<NO3>-K282*<O3>-K284*<O> + PJAC(:,40,40)=-TPK%K273(:)*PCONC(:,15)-TPK%K275(:)*PCONC(:,8)-TPK%K282(:)*PCON& +&C(:,3)-TPK%K284(:)*TPK%O(:) ! -!ADD/WC_SO2=0.0 +!MCR/MGLY=0.0 ! -!ADD/WC_SULF=0.0 +!MCR/GLY=0.0 ! -!ADD/WC_HCHO=0.0 +!MCR/ORA1=0.0 ! -!ADD/WC_ORA1=0.0 +!MCR/ORA2=0.0 ! -!ADD/WC_ORA2=0.0 +!MCR/ACID=0.0 ! -!ADD/WC_MO2=0.0 +!MCR/UR28=0.0 ! -!ADD/WC_OP1=0.0 +!MCR/UR21=0.0 ! -!ADD/WC_ASO3=0.0 +!MCR/URG2=0.0 ! -!ADD/WC_ASO4=0.0 +!MCR/UR26=0.0 ! -!ADD/WC_ASO5=0.0 +!MCR/RPG2=0.0 ! -!ADD/WC_AHSO5=0.0 +!MCR/RP18=0.0 ! -!ADD/WC_AHMS=0.0 +!MCR/RPG3=0.0 ! -!ADD/WR_O3=0.0 +!MCR/URG4=0.0 ! -!ADD/WR_H2O2=0.0 +!MCR/UR8=0.0 ! -!ADD/WR_NO=0.0 +!MCR/UR17=0.0 ! -!ADD/WR_NO2=0.0 +!MCR/UR7=0.0 ! -!ADD/WR_NO3=0.0 +!MCR/RPR3=0.0 ! -!ADD/WR_N2O5=0.0 +!MCR/URG6=0.0 ! -!ADD/WR_HONO=0.0 +!MCR/UR22=0.0 ! -!ADD/WR_HNO3=0.0 +!MCR/URG7=0.0 ! -!ADD/WR_HNO4=0.0 +!MCR/RPR4=0.0 ! -!ADD/WR_NH3=0.0 +!MCR/RPR7=0.0 ! -!ADD/WR_OH=0.0 +!MCR/RPG7=0.0 ! -!ADD/WR_HO2=0.0 +!MCR/URG8=0.0 ! -!ADD/WR_CO2=0.0 +!MCR/UR19=0.0 ! -!ADD/WR_SO2=0.0 +!MCR/URG9=0.0 ! -!ADD/WR_SULF=0.0 +!MCR/AP7=0.0 ! -!ADD/WR_HCHO=0.0 +!MCR/URG10=0.0 ! -!ADD/WR_ORA1=0.0 +!MCR/RPR1=0.0 ! -!ADD/WR_ORA2=0.0 +!MCR/RPR5=0.0 ! -!ADD/WR_MO2=0.0 +!MCR/RPR8=0.0 ! -!ADD/WR_OP1=0.0 +!MCR/RP10=0.0 ! -!ADD/WR_ASO3=0.0 +!MCR/RP11=0.0 ! -!ADD/WR_ASO4=0.0 +!MCR/RP16=0.0 ! -!ADD/WR_ASO5=0.0 +!MCR/RPRL=0.0 ! -!ADD/WR_AHSO5=0.0 +!MCR/APAN=0.0 ! -!ADD/WR_AHMS=0.0 +!MCR/PAN1=0.0 ! -!AROP/O3=0.0 +!MCR/PAN2=0.0 ! -!AROP/H2O2=0.0 +!MCR/PAN3=0.0 ! -!AROP/NO=-K094*<AROP> - PJAC(:,38,3)=-TPK%K094(:)*PCONC(:,38) +!MCR/PAN4=0.0 ! -!AROP/NO2=0.0 +!MCR/PAN6=0.0 ! -!AROP/NO3=-K123*<AROP> - PJAC(:,38,5)=-TPK%K123(:)*PCONC(:,38) +!MCR/PAN7=0.0 ! -!AROP/N2O5=0.0 +!MCR/PAN8=0.0 ! -!AROP/HONO=0.0 +!MCR/PN10=0.0 ! -!AROP/HNO3=0.0 +!MCR/RO2T=+K154*<RO210>+K160*<RO212> + PJAC(:,40,85)=+TPK%K154(:)*TPK%RO210(:)+TPK%K160(:)*TPK%RO212(:) ! -!AROP/HNO4=0.0 +!MCR/RO21=0.0 ! -!AROP/NH3=0.0 +!MCR/RO25=0.0 ! -!AROP/SO2=0.0 +RETURN +END SUBROUTINE SUBJ7 ! -!AROP/SULF=0.0 +SUBROUTINE SUBJ8 ! -!AROP/CO=0.0 +!Indices 41 a 45 ! -!AROP/OH=0.0 ! -!AROP/HO2=-K0101*<AROP> - PJAC(:,38,15)=-TPK%K0101(:)*PCONC(:,38) +!MGLY/NO=+K234*<RO242>+K241*<RO243>+K248*<RO244>+K255*<RO245>+K262*<RO246>+K269 +!*<RO247>+K285*<RO249>+K291*<RO251>+K294*<RO252> + PJAC(:,41,1)=+TPK%K234(:)*TPK%RO242(:)+TPK%K241(:)*TPK%RO243(:)+TPK%K248(:)*TP& +&K%RO244(:)+TPK%K255(:)*TPK%RO245(:)+TPK%K262(:)*TPK%RO246(:)+TPK%K269(:)*TPK%R& +&O247(:)+TPK%K285(:)*TPK%RO249(:)+TPK%K291(:)*TPK%RO251(:)+TPK%K294(:)*TPK%RO25& +&2(:) ! -!AROP/CH4=0.0 +!MGLY/NO2=0.0 ! -!AROP/ETH=0.0 +!MGLY/O3=+0.5*K281*<MVK>+0.59*K282*<MCR> + PJAC(:,41,3)=+0.5*TPK%K281(:)*PCONC(:,39)+0.59*TPK%K282(:)*PCONC(:,40) ! -!AROP/ALKA=0.0 +!MGLY/HONO=0.0 ! -!AROP/ALKE=0.0 +!MGLY/HNO3=0.0 ! -!AROP/BIO=0.0 +!MGLY/HNO4=0.0 ! -!AROP/ARO=0.0 +!MGLY/N2O5=0.0 ! -!AROP/HCHO=0.0 +!MGLY/NO3=-K278*<MGLY> + PJAC(:,41,8)=-TPK%K278(:)*PCONC(:,41) ! -!AROP/ALD=0.0 +!MGLY/NH3=0.0 ! -!AROP/KET=0.0 +!MGLY/HO2=+K236*<RO242>+K243*<RO243>+K250*<RO244>+K257*<RO245>+K264*<RO246>+K27 +!1*<RO247>+K287*<RO249>+K292*<RO251>+K295*<RO252> + PJAC(:,41,10)=+TPK%K236(:)*TPK%RO242(:)+TPK%K243(:)*TPK%RO243(:)+TPK%K250(:)*T& +&PK%RO244(:)+TPK%K257(:)*TPK%RO245(:)+TPK%K264(:)*TPK%RO246(:)+TPK%K271(:)*TPK%& +&RO247(:)+TPK%K287(:)*TPK%RO249(:)+TPK%K292(:)*TPK%RO251(:)+TPK%K295(:)*TPK%RO2& +&52(:) ! -!AROP/CARBO=0.0 +!MGLY/CO=0.0 ! -!AROP/ONIT=0.0 +!MGLY/H2O2=0.0 ! -!AROP/PAN=0.0 +!MGLY/SO2=0.0 ! -!AROP/OP1=0.0 +!MGLY/H2SO4=0.0 ! -!AROP/OP2=0.0 +!MGLY/OH=-K274*<MGLY> + PJAC(:,41,15)=-TPK%K274(:)*PCONC(:,41) ! -!AROP/ORA1=0.0 +!MGLY/ETHE=0.0 ! -!AROP/ORA2=0.0 +!MGLY/OLEL=0.0 ! -!AROP/MO2=-K108*<AROP> - PJAC(:,38,32)=-TPK%K108(:)*PCONC(:,38) +!MGLY/OLEH=0.0 ! -!AROP/ALKAP=0.0 +!MGLY/ALKL=0.0 ! -!AROP/ALKEP=0.0 +!MGLY/ALKM=0.0 ! -!AROP/BIOP=0.0 +!MGLY/ALKH=0.0 ! -!AROP/PHO=0.0 +!MGLY/AROH=0.0 ! -!AROP/ADD=+0.98*K086*<O2> - PJAC(:,38,37)=+0.98*TPK%K086(:)*TPK%O2(:) +!MGLY/AROL=0.0 ! -!AROP/AROP=-K094*<NO>-K0101*<HO2>-K108*<MO2>-K114*<CARBOP>-K123*<NO3> - PJAC(:,38,38)=-TPK%K094(:)*PCONC(:,3)-TPK%K0101(:)*PCONC(:,15)-TPK%K108(:)*PCO& -&NC(:,32)-TPK%K114(:)*PCONC(:,39)-TPK%K123(:)*PCONC(:,5) +!MGLY/AROO=0.0 ! -!AROP/CARBOP=-K114*<AROP> - PJAC(:,38,39)=-TPK%K114(:)*PCONC(:,38) +!MGLY/ARAL=0.0 ! -!AROP/OLN=0.0 +!MGLY/ARAC=0.0 ! -!AROP/XO2=0.0 +!MGLY/PAH=0.0 ! -!AROP/WC_O3=0.0 +!MGLY/HCHO=0.0 ! -!AROP/WC_H2O2=0.0 +!MGLY/ALD2=0.0 ! -!AROP/WC_NO=0.0 +!MGLY/KETL=0.0 ! -!AROP/WC_NO2=0.0 +!MGLY/KETH=0.0 ! -!AROP/WC_NO3=0.0 +!MGLY/MEOH=0.0 ! -!AROP/WC_N2O5=0.0 +!MGLY/ETOH=0.0 ! -!AROP/WC_HONO=0.0 +!MGLY/ALCH=0.0 ! -!AROP/WC_HNO3=0.0 +!MGLY/ISOP=0.0 ! -!AROP/WC_HNO4=0.0 +!MGLY/BIOL=0.0 ! -!AROP/WC_NH3=0.0 +!MGLY/BIOH=0.0 ! -!AROP/WC_OH=0.0 +!MGLY/MTBE=0.0 ! -!AROP/WC_HO2=0.0 +!MGLY/MVK=+0.5*K281*<O3> + PJAC(:,41,39)=+0.5*TPK%K281(:)*PCONC(:,3) ! -!AROP/WC_CO2=0.0 +!MGLY/MCR=+0.59*K282*<O3> + PJAC(:,41,40)=+0.59*TPK%K282(:)*PCONC(:,3) ! -!AROP/WC_SO2=0.0 +!MGLY/MGLY=-K274*<OH>-K276-K278*<NO3> + PJAC(:,41,41)=-TPK%K274(:)*PCONC(:,15)-TPK%K276(:)-TPK%K278(:)*PCONC(:,8) ! -!AROP/WC_SULF=0.0 +!MGLY/GLY=0.0 ! -!AROP/WC_HCHO=0.0 +!MGLY/ORA1=0.0 ! -!AROP/WC_ORA1=0.0 +!MGLY/ORA2=0.0 ! -!AROP/WC_ORA2=0.0 +!MGLY/ACID=0.0 ! -!AROP/WC_MO2=0.0 +!MGLY/UR28=0.0 ! -!AROP/WC_OP1=0.0 +!MGLY/UR21=0.0 ! -!AROP/WC_ASO3=0.0 +!MGLY/URG2=0.0 ! -!AROP/WC_ASO4=0.0 +!MGLY/UR26=0.0 ! -!AROP/WC_ASO5=0.0 +!MGLY/RPG2=0.0 ! -!AROP/WC_AHSO5=0.0 +!MGLY/RP18=0.0 ! -!AROP/WC_AHMS=0.0 +!MGLY/RPG3=0.0 ! -!AROP/WR_O3=0.0 +!MGLY/URG4=0.0 ! -!AROP/WR_H2O2=0.0 +!MGLY/UR8=0.0 ! -!AROP/WR_NO=0.0 +!MGLY/UR17=0.0 ! -!AROP/WR_NO2=0.0 +!MGLY/UR7=0.0 ! -!AROP/WR_NO3=0.0 +!MGLY/RPR3=0.0 ! -!AROP/WR_N2O5=0.0 +!MGLY/URG6=0.0 ! -!AROP/WR_HONO=0.0 +!MGLY/UR22=0.0 ! -!AROP/WR_HNO3=0.0 +!MGLY/URG7=0.0 ! -!AROP/WR_HNO4=0.0 +!MGLY/RPR4=0.0 ! -!AROP/WR_NH3=0.0 +!MGLY/RPR7=0.0 ! -!AROP/WR_OH=0.0 +!MGLY/RPG7=0.0 ! -!AROP/WR_HO2=0.0 +!MGLY/URG8=0.0 ! -!AROP/WR_CO2=0.0 +!MGLY/UR19=0.0 ! -!AROP/WR_SO2=0.0 +!MGLY/URG9=0.0 ! -!AROP/WR_SULF=0.0 +!MGLY/AP7=0.0 ! -!AROP/WR_HCHO=0.0 +!MGLY/URG10=0.0 ! -!AROP/WR_ORA1=0.0 +!MGLY/RPR1=0.0 ! -!AROP/WR_ORA2=0.0 +!MGLY/RPR5=0.0 ! -!AROP/WR_MO2=0.0 +!MGLY/RPR8=0.0 ! -!AROP/WR_OP1=0.0 +!MGLY/RP10=0.0 ! -!AROP/WR_ASO3=0.0 +!MGLY/RP11=0.0 ! -!AROP/WR_ASO4=0.0 +!MGLY/RP16=0.0 ! -!AROP/WR_ASO5=0.0 +!MGLY/RPRL=0.0 ! -!AROP/WR_AHSO5=0.0 +!MGLY/APAN=0.0 ! -!AROP/WR_AHMS=0.0 +!MGLY/PAN1=0.0 ! -!CARBOP/O3=+0.05705*K079*<ALKE>+0.17000*K080*<BIO>+0.27460*K081*<CARBO>+0.70000 -!*K082*<PAN> - PJAC(:,39,1)=+0.05705*TPK%K079(:)*PCONC(:,19)+0.17000*TPK%K080(:)*PCONC(:,20)+& -&0.27460*TPK%K081(:)*PCONC(:,25)+0.70000*TPK%K082(:)*PCONC(:,27) +!MGLY/PAN2=0.0 ! -!CARBOP/H2O2=0.0 +!MGLY/PAN3=0.0 ! -!CARBOP/NO=+0.09532*K095*<CARBOP>-K095*<CARBOP> - PJAC(:,39,3)=+0.09532*TPK%K095(:)*PCONC(:,39)-TPK%K095(:)*PCONC(:,39) +!MGLY/PAN4=0.0 ! -!CARBOP/NO2=-K088*<CARBOP> - PJAC(:,39,4)=-TPK%K088(:)*PCONC(:,39) +!MGLY/PAN6=0.0 ! -!CARBOP/NO3=+1.00000*K073*<ALD>+0.38881*K074*<CARBO>+0.03175*K124*<CARBOP>-K124 -!*<CARBOP> - PJAC(:,39,5)=+1.00000*TPK%K073(:)*PCONC(:,23)+0.38881*TPK%K074(:)*PCONC(:,25)+& -&0.03175*TPK%K124(:)*PCONC(:,39)-TPK%K124(:)*PCONC(:,39) +!MGLY/PAN7=0.0 ! -!CARBOP/N2O5=0.0 +!MGLY/PAN8=0.0 ! -!CARBOP/HONO=0.0 +!MGLY/PN10=0.0 ! -!CARBOP/HNO3=0.0 +!MGLY/RO2T=+K235*<RO242>+K242*<RO243>+K249*<RO244>+K256*<RO245>+K263*<RO246>+K2 +!70*<RO247>+K286*<RO249>+K293*<RO251>+K296*<RO252> + PJAC(:,41,85)=+TPK%K235(:)*TPK%RO242(:)+TPK%K242(:)*TPK%RO243(:)+TPK%K249(:)*T& +&PK%RO244(:)+TPK%K256(:)*TPK%RO245(:)+TPK%K263(:)*TPK%RO246(:)+TPK%K270(:)*TPK%& +&RO247(:)+TPK%K286(:)*TPK%RO249(:)+TPK%K293(:)*TPK%RO251(:)+TPK%K296(:)*TPK%RO2& +&52(:) ! -!CARBOP/HNO4=0.0 +!MGLY/RO21=0.0 ! -!CARBOP/NH3=0.0 +!MGLY/RO25=0.0 ! -!CARBOP/SO2=0.0 +!GLY/NO=0.0 ! -!CARBOP/SULF=0.0 +!GLY/NO2=0.0 ! -!CARBOP/CO=0.0 +!GLY/O3=0.0 ! -!CARBOP/OH=+1.00000*K063*<ALD>+1.00000*K064*<KET>+0.51419*K065*<CARBO>+0.05413* -!K069*<OP2> - PJAC(:,39,14)=+1.00000*TPK%K063(:)*PCONC(:,23)+1.00000*TPK%K064(:)*PCONC(:,24)& -&+0.51419*TPK%K065(:)*PCONC(:,25)+0.05413*TPK%K069(:)*PCONC(:,29) +!GLY/HONO=0.0 ! -!CARBOP/HO2=-K0102*<CARBOP> - PJAC(:,39,15)=-TPK%K0102(:)*PCONC(:,39) +!GLY/HNO3=0.0 ! -!CARBOP/CH4=0.0 +!GLY/HNO4=0.0 ! -!CARBOP/ETH=0.0 +!GLY/N2O5=0.0 ! -!CARBOP/ALKA=0.0 +!GLY/NO3=0.0 ! -!CARBOP/ALKE=+0.05705*K079*<O3> - PJAC(:,39,19)=+0.05705*TPK%K079(:)*PCONC(:,1) +!GLY/NH3=0.0 ! -!CARBOP/BIO=+0.17000*K080*<O3> - PJAC(:,39,20)=+0.17000*TPK%K080(:)*PCONC(:,1) +!GLY/HO2=0.0 ! -!CARBOP/ARO=0.0 +!GLY/CO=0.0 ! -!CARBOP/HCHO=0.0 +!GLY/H2O2=0.0 ! -!CARBOP/ALD=+1.00000*K063*<OH>+1.00000*K073*<NO3> - PJAC(:,39,23)=+1.00000*TPK%K063(:)*PCONC(:,14)+1.00000*TPK%K073(:)*PCONC(:,5) +!GLY/SO2=0.0 ! -!CARBOP/KET=+1.00000*K015+1.00000*K064*<OH> - PJAC(:,39,24)=+1.00000*TPK%K015(:)+1.00000*TPK%K064(:)*PCONC(:,14) +!GLY/H2SO4=0.0 ! -!CARBOP/CARBO=+0.69622*K016+0.51419*K065*<OH>+0.38881*K074*<NO3>+0.27460*K081*< -!O3> - PJAC(:,39,25)=+0.69622*TPK%K016(:)+0.51419*TPK%K065(:)*PCONC(:,14)+0.38881*TPK& -&%K074(:)*PCONC(:,5)+0.27460*TPK%K081(:)*PCONC(:,1) +!GLY/OH=0.0 ! -!CARBOP/ONIT=0.0 +!GLY/ETHE=0.0 ! -!CARBOP/PAN=+0.70000*K082*<O3>+1.00000*K089 - PJAC(:,39,27)=+0.70000*TPK%K082(:)*PCONC(:,1)+1.00000*TPK%K089(:) +!GLY/OLEL=0.0 ! -!CARBOP/OP1=0.0 +!GLY/OLEH=0.0 ! -!CARBOP/OP2=+0.05413*K069*<OH> - PJAC(:,39,29)=+0.05413*TPK%K069(:)*PCONC(:,14) +!GLY/ALKL=0.0 ! -!CARBOP/ORA1=0.0 +!GLY/ALKM=0.0 ! -!CARBOP/ORA2=0.0 +!GLY/ALKH=0.0 ! -!CARBOP/MO2=+0.05954*K109*<CARBOP>-K109*<CARBOP> - PJAC(:,39,32)=+0.05954*TPK%K109(:)*PCONC(:,39)-TPK%K109(:)*PCONC(:,39) +!GLY/AROH=0.0 ! -!CARBOP/ALKAP=-K111*<CARBOP> - PJAC(:,39,33)=-TPK%K111(:)*PCONC(:,39) +!GLY/AROL=0.0 ! -!CARBOP/ALKEP=-K112*<CARBOP> - PJAC(:,39,34)=-TPK%K112(:)*PCONC(:,39) +!GLY/AROO=0.0 ! -!CARBOP/BIOP=-K113*<CARBOP> - PJAC(:,39,35)=-TPK%K113(:)*PCONC(:,39) +!GLY/ARAL=0.0 ! -!CARBOP/PHO=0.0 +!GLY/ARAC=0.0 ! -!CARBOP/ADD=0.0 +!GLY/PAH=0.0 ! -!CARBOP/AROP=-K114*<CARBOP> - PJAC(:,39,38)=-TPK%K114(:)*PCONC(:,39) +!GLY/HCHO=0.0 ! -!CARBOP/CARBOP=-K088*<NO2>+0.09532*K095*<NO>-K095*<NO>-K0102*<HO2>+0.05954*K109 -!*<MO2>-K109*<MO2>-K111*<ALKAP>-K112*<ALKEP>-K113*<BIOP>-K114*<AROP>+0.05821*K1 -!15*<CARBOP>+0.05821*K115*<CARBOP>-K115*<CARBOP>-K115*<CARBOP>-K115*<CARBOP>-K1 -!15*<CARBOP>-K116*<OLN>+0.03175*K124*<NO3>-K124*<NO3>-K128*<XO2> - PJAC(:,39,39)=-TPK%K088(:)*PCONC(:,4)+0.09532*TPK%K095(:)*PCONC(:,3)-TPK%K095(& -&:)*PCONC(:,3)-TPK%K0102(:)*PCONC(:,15)+0.05954*TPK%K109(:)*PCONC(:,32)-TPK%K10& -&9(:)*PCONC(:,32)-TPK%K111(:)*PCONC(:,33)-TPK%K112(:)*PCONC(:,34)-TPK%K113(:)*P& -&CONC(:,35)-TPK%K114(:)*PCONC(:,38)+0.05821*TPK%K115(:)*PCONC(:,39)+0.05821*TPK& -&%K115(:)*PCONC(:,39)-TPK%K115(:)*PCONC(:,39)-TPK%K115(:)*PCONC(:,39)-TPK%K115(& -&:)*PCONC(:,39)-TPK%K115(:)*PCONC(:,39)-TPK%K116(:)*PCONC(:,40)+0.03175*TPK%K12& -&4(:)*PCONC(:,5)-TPK%K124(:)*PCONC(:,5)-TPK%K128(:)*PCONC(:,41) +!GLY/ALD2=0.0 ! -!CARBOP/OLN=-K116*<CARBOP> - PJAC(:,39,40)=-TPK%K116(:)*PCONC(:,39) +!GLY/KETL=0.0 ! -!CARBOP/XO2=-K128*<CARBOP> - PJAC(:,39,41)=-TPK%K128(:)*PCONC(:,39) +!GLY/KETH=0.0 ! -!CARBOP/WC_O3=0.0 +!GLY/MEOH=0.0 ! -!CARBOP/WC_H2O2=0.0 +!GLY/ETOH=0.0 ! -!CARBOP/WC_NO=0.0 +!GLY/ALCH=0.0 ! -!CARBOP/WC_NO2=0.0 +!GLY/ISOP=0.0 ! -!CARBOP/WC_NO3=0.0 +!GLY/BIOL=0.0 ! -!CARBOP/WC_N2O5=0.0 +!GLY/BIOH=0.0 ! -!CARBOP/WC_HONO=0.0 +!GLY/MTBE=0.0 ! -!CARBOP/WC_HNO3=0.0 +!GLY/MVK=0.0 ! -!CARBOP/WC_HNO4=0.0 +!GLY/MCR=0.0 ! -!CARBOP/WC_NH3=0.0 +!GLY/MGLY=0.0 ! -!CARBOP/WC_OH=0.0 +!GLY/GLY=0.0 ! -!CARBOP/WC_HO2=0.0 +!GLY/ORA1=0.0 ! -!CARBOP/WC_CO2=0.0 +!GLY/ORA2=0.0 ! -!CARBOP/WC_SO2=0.0 +!GLY/ACID=0.0 ! -!CARBOP/WC_SULF=0.0 +!GLY/UR28=0.0 ! -!CARBOP/WC_HCHO=0.0 +!GLY/UR21=0.0 ! -!CARBOP/WC_ORA1=0.0 +!GLY/URG2=0.0 ! -!CARBOP/WC_ORA2=0.0 +!GLY/UR26=0.0 ! -!CARBOP/WC_MO2=0.0 +!GLY/RPG2=0.0 ! -!CARBOP/WC_OP1=0.0 +!GLY/RP18=0.0 ! -!CARBOP/WC_ASO3=0.0 +!GLY/RPG3=0.0 ! -!CARBOP/WC_ASO4=0.0 +!GLY/URG4=0.0 ! -!CARBOP/WC_ASO5=0.0 +!GLY/UR8=0.0 ! -!CARBOP/WC_AHSO5=0.0 +!GLY/UR17=0.0 ! -!CARBOP/WC_AHMS=0.0 +!GLY/UR7=0.0 ! -!CARBOP/WR_O3=0.0 +!GLY/RPR3=0.0 ! -!CARBOP/WR_H2O2=0.0 +!GLY/URG6=0.0 ! -!CARBOP/WR_NO=0.0 +!GLY/UR22=0.0 ! -!CARBOP/WR_NO2=0.0 +!GLY/URG7=0.0 ! -!CARBOP/WR_NO3=0.0 +!GLY/RPR4=0.0 ! -!CARBOP/WR_N2O5=0.0 +!GLY/RPR7=0.0 ! -!CARBOP/WR_HONO=0.0 +!GLY/RPG7=0.0 ! -!CARBOP/WR_HNO3=0.0 +!GLY/URG8=0.0 ! -!CARBOP/WR_HNO4=0.0 +!GLY/UR19=0.0 ! -!CARBOP/WR_NH3=0.0 +!GLY/URG9=0.0 ! -!CARBOP/WR_OH=0.0 +!GLY/AP7=0.0 ! -!CARBOP/WR_HO2=0.0 +!GLY/URG10=0.0 ! -!CARBOP/WR_CO2=0.0 +!GLY/RPR1=0.0 ! -!CARBOP/WR_SO2=0.0 +!GLY/RPR5=0.0 ! -!CARBOP/WR_SULF=0.0 +!GLY/RPR8=0.0 ! -!CARBOP/WR_HCHO=0.0 +!GLY/RP10=0.0 ! -!CARBOP/WR_ORA1=0.0 +!GLY/RP11=0.0 ! -!CARBOP/WR_ORA2=0.0 +!GLY/RP16=0.0 ! -!CARBOP/WR_MO2=0.0 +!GLY/RPRL=0.0 ! -!CARBOP/WR_OP1=0.0 +!GLY/APAN=0.0 ! -!CARBOP/WR_ASO3=0.0 +!GLY/PAN1=0.0 ! -!CARBOP/WR_ASO4=0.0 +!GLY/PAN2=0.0 ! -!CARBOP/WR_ASO5=0.0 +!GLY/PAN3=0.0 ! -!CARBOP/WR_AHSO5=0.0 +!GLY/PAN4=0.0 ! -!CARBOP/WR_AHMS=0.0 +!GLY/PAN6=0.0 ! -!OLN/O3=0.0 +!GLY/PAN7=0.0 ! -!OLN/H2O2=0.0 +!GLY/PAN8=0.0 ! -!OLN/NO=-K096*<OLN> - PJAC(:,40,3)=-TPK%K096(:)*PCONC(:,40) +!GLY/PN10=0.0 ! -!OLN/NO2=0.0 +!GLY/RO2T=0.0 ! -!OLN/NO3=+0.00000*K074*<CARBO>+0.93768*K076*<ALKE>+1.00000*K077*<BIO>-K125*<OLN -!> - PJAC(:,40,5)=+0.00000*TPK%K074(:)*PCONC(:,25)+0.93768*TPK%K076(:)*PCONC(:,19)+& -&1.00000*TPK%K077(:)*PCONC(:,20)-TPK%K125(:)*PCONC(:,40) +!GLY/RO21=0.0 +! +!GLY/RO25=0.0 +! +!ORA1/NO=0.0 +! +!ORA1/NO2=0.0 +! +!ORA1/O3=+0.185*K051*<ETHE>+0.12*K056*<OLEL>+0.121*K066*<ISOP>+0.12*K281*<MVK>+ +!0.09*K282*<MCR> + PJAC(:,43,3)=+0.185*TPK%K051(:)*PCONC(:,16)+0.12*TPK%K056(:)*PCONC(:,17)+0.121& +&*TPK%K066(:)*PCONC(:,35)+0.12*TPK%K281(:)*PCONC(:,39)+0.09*TPK%K282(:)*PCONC(:& +&,40) +! +!ORA1/HONO=0.0 +! +!ORA1/HNO3=0.0 +! +!ORA1/HNO4=0.0 +! +!ORA1/N2O5=0.0 +! +!ORA1/NO3=0.0 +! +!ORA1/NH3=0.0 +! +!ORA1/HO2=0.0 +! +!ORA1/CO=0.0 +! +!ORA1/H2O2=0.0 +! +!ORA1/SO2=0.0 +! +!ORA1/H2SO4=0.0 +! +!ORA1/OH=-K347*<ORA1> + PJAC(:,43,15)=-TPK%K347(:)*PCONC(:,43) +! +!ORA1/ETHE=+0.185*K051*<O3> + PJAC(:,43,16)=+0.185*TPK%K051(:)*PCONC(:,3) +! +!ORA1/OLEL=+0.12*K056*<O3> + PJAC(:,43,17)=+0.12*TPK%K056(:)*PCONC(:,3) +! +!ORA1/OLEH=0.0 +! +!ORA1/ALKL=0.0 +! +!ORA1/ALKM=0.0 +! +!ORA1/ALKH=0.0 +! +!ORA1/AROH=0.0 +! +!ORA1/AROL=0.0 +! +!ORA1/AROO=0.0 +! +!ORA1/ARAL=0.0 +! +!ORA1/ARAC=0.0 +! +!ORA1/PAH=0.0 +! +!ORA1/HCHO=0.0 +! +!ORA1/ALD2=0.0 +! +!ORA1/KETL=0.0 +! +!ORA1/KETH=0.0 +! +!ORA1/MEOH=0.0 +! +!ORA1/ETOH=0.0 +! +!ORA1/ALCH=0.0 +! +!ORA1/ISOP=+0.121*K066*<O3> + PJAC(:,43,35)=+0.121*TPK%K066(:)*PCONC(:,3) +! +!ORA1/BIOL=0.0 +! +!ORA1/BIOH=0.0 +! +!ORA1/MTBE=0.0 +! +!ORA1/MVK=+0.12*K281*<O3> + PJAC(:,43,39)=+0.12*TPK%K281(:)*PCONC(:,3) +! +!ORA1/MCR=+0.09*K282*<O3> + PJAC(:,43,40)=+0.09*TPK%K282(:)*PCONC(:,3) +! +!ORA1/MGLY=0.0 +! +!ORA1/GLY=0.0 +! +!ORA1/ORA1=-K347*<OH> + PJAC(:,43,43)=-TPK%K347(:)*PCONC(:,15) +! +!ORA1/ORA2=0.0 +! +!ORA1/ACID=0.0 +! +!ORA1/UR28=0.0 +! +!ORA1/UR21=0.0 ! -!OLN/N2O5=0.0 +!ORA1/URG2=0.0 ! -!OLN/HONO=0.0 +!ORA1/UR26=0.0 ! -!OLN/HNO3=0.0 +!ORA1/RPG2=0.0 ! -!OLN/HNO4=0.0 +!ORA1/RP18=0.0 ! -!OLN/NH3=0.0 +!ORA1/RPG3=0.0 ! -!OLN/SO2=0.0 +!ORA1/URG4=0.0 ! -!OLN/SULF=0.0 +!ORA1/UR8=0.0 ! -!OLN/CO=0.0 +!ORA1/UR17=0.0 ! -!OLN/OH=0.0 +!ORA1/UR7=0.0 ! -!OLN/HO2=-K103*<OLN> - PJAC(:,40,15)=-TPK%K103(:)*PCONC(:,40) +!ORA1/RPR3=0.0 ! -!OLN/CH4=0.0 +!ORA1/URG6=0.0 ! -!OLN/ETH=0.0 +!ORA1/UR22=0.0 ! -!OLN/ALKA=0.0 +!ORA1/URG7=0.0 ! -!OLN/ALKE=+0.93768*K076*<NO3> - PJAC(:,40,19)=+0.93768*TPK%K076(:)*PCONC(:,5) +!ORA1/RPR4=0.0 ! -!OLN/BIO=+1.00000*K077*<NO3> - PJAC(:,40,20)=+1.00000*TPK%K077(:)*PCONC(:,5) +!ORA1/RPR7=0.0 ! -!OLN/ARO=0.0 +!ORA1/RPG7=0.0 ! -!OLN/HCHO=0.0 +!ORA1/URG8=0.0 ! -!OLN/ALD=0.0 +!ORA1/UR19=0.0 ! -!OLN/KET=0.0 +!ORA1/URG9=0.0 ! -!OLN/CARBO=+0.00000*K074*<NO3> - PJAC(:,40,25)=+0.00000*TPK%K074(:)*PCONC(:,5) +!ORA1/AP7=0.0 ! -!OLN/ONIT=0.0 +!ORA1/URG10=0.0 ! -!OLN/PAN=0.0 +!ORA1/RPR1=0.0 ! -!OLN/OP1=0.0 +!ORA1/RPR5=0.0 ! -!OLN/OP2=0.0 +!ORA1/RPR8=0.0 ! -!OLN/ORA1=0.0 +!ORA1/RP10=0.0 ! -!OLN/ORA2=0.0 +!ORA1/RP11=0.0 ! -!OLN/MO2=-K110*<OLN> - PJAC(:,40,32)=-TPK%K110(:)*PCONC(:,40) +!ORA1/RP16=0.0 ! -!OLN/ALKAP=0.0 +!ORA1/RPRL=0.0 ! -!OLN/ALKEP=0.0 +!ORA1/APAN=0.0 ! -!OLN/BIOP=0.0 +!ORA1/PAN1=0.0 ! -!OLN/PHO=0.0 +!ORA1/PAN2=0.0 ! -!OLN/ADD=0.0 +!ORA1/PAN3=0.0 +! +!ORA1/PAN4=0.0 +! +!ORA1/PAN6=0.0 +! +!ORA1/PAN7=0.0 +! +!ORA1/PAN8=0.0 +! +!ORA1/PN10=0.0 +! +!ORA1/RO2T=0.0 +! +!ORA1/RO21=0.0 +! +!ORA1/RO25=0.0 +! +!ORA2/NO=0.0 +! +!ORA2/NO2=0.0 +! +!ORA2/O3=+0.12*K056*<OLEL> + PJAC(:,44,3)=+0.12*TPK%K056(:)*PCONC(:,17) +! +!ORA2/HONO=0.0 +! +!ORA2/HNO3=0.0 +! +!ORA2/HNO4=0.0 +! +!ORA2/N2O5=0.0 +! +!ORA2/NO3=0.0 +! +!ORA2/NH3=0.0 +! +!ORA2/HO2=+K142*<RO26>+K148*<RO28>+0.5*K166*<RO239>+0.5*K289*<RO250> + PJAC(:,44,10)=+TPK%K142(:)*TPK%RO26(:)+TPK%K148(:)*TPK%RO28(:)+0.5*TPK%K166(:)& +&*TPK%RO239(:)+0.5*TPK%K289(:)*TPK%RO250(:) +! +!ORA2/CO=0.0 +! +!ORA2/H2O2=0.0 +! +!ORA2/SO2=0.0 +! +!ORA2/H2SO4=0.0 +! +!ORA2/OH=-K348*<ORA2> + PJAC(:,44,15)=-TPK%K348(:)*PCONC(:,44) +! +!ORA2/ETHE=0.0 +! +!ORA2/OLEL=+0.12*K056*<O3> + PJAC(:,44,17)=+0.12*TPK%K056(:)*PCONC(:,3) +! +!ORA2/OLEH=0.0 +! +!ORA2/ALKL=0.0 +! +!ORA2/ALKM=0.0 +! +!ORA2/ALKH=0.0 +! +!ORA2/AROH=0.0 +! +!ORA2/AROL=0.0 +! +!ORA2/AROO=0.0 +! +!ORA2/ARAL=0.0 +! +!ORA2/ARAC=0.0 +! +!ORA2/PAH=0.0 +! +!ORA2/HCHO=0.0 +! +!ORA2/ALD2=0.0 +! +!ORA2/KETL=0.0 +! +!ORA2/KETH=0.0 +! +!ORA2/MEOH=0.0 +! +!ORA2/ETOH=0.0 +! +!ORA2/ALCH=0.0 +! +!ORA2/ISOP=0.0 +! +!ORA2/BIOL=0.0 +! +!ORA2/BIOH=0.0 +! +!ORA2/MTBE=0.0 +! +!ORA2/MVK=0.0 +! +!ORA2/MCR=0.0 +! +!ORA2/MGLY=0.0 +! +!ORA2/GLY=0.0 +! +!ORA2/ORA1=0.0 ! -!OLN/AROP=0.0 +!ORA2/ORA2=-K348*<OH> + PJAC(:,44,44)=-TPK%K348(:)*PCONC(:,15) ! -!OLN/CARBOP=-K116*<OLN> - PJAC(:,40,39)=-TPK%K116(:)*PCONC(:,40) +!ORA2/ACID=0.0 ! -!OLN/OLN=-K096*<NO>-K103*<HO2>-K110*<MO2>-K116*<CARBOP>-K117*<OLN>-K117*<OLN>-K -!117*<OLN>-K117*<OLN>-K118*<OLN>-K118*<OLN>-K118*<OLN>-K118*<OLN>-K125*<NO3> - PJAC(:,40,40)=-TPK%K096(:)*PCONC(:,3)-TPK%K103(:)*PCONC(:,15)-TPK%K110(:)*PCON& -&C(:,32)-TPK%K116(:)*PCONC(:,39)-TPK%K117(:)*PCONC(:,40)-TPK%K117(:)*PCONC(:,40& -&)-TPK%K117(:)*PCONC(:,40)-TPK%K117(:)*PCONC(:,40)-TPK%K118(:)*PCONC(:,40)-TPK%& -&K118(:)*PCONC(:,40)-TPK%K118(:)*PCONC(:,40)-TPK%K118(:)*PCONC(:,40)-TPK%K125(:& -&)*PCONC(:,5) +!ORA2/UR28=0.0 ! -!OLN/XO2=0.0 +!ORA2/UR21=0.0 ! -!OLN/WC_O3=0.0 +!ORA2/URG2=0.0 ! -!OLN/WC_H2O2=0.0 +!ORA2/UR26=0.0 ! -!OLN/WC_NO=0.0 +!ORA2/RPG2=0.0 ! -!OLN/WC_NO2=0.0 +!ORA2/RP18=0.0 ! -!OLN/WC_NO3=0.0 +!ORA2/RPG3=0.0 ! -!OLN/WC_N2O5=0.0 +!ORA2/URG4=0.0 ! -!OLN/WC_HONO=0.0 +!ORA2/UR8=0.0 ! -!OLN/WC_HNO3=0.0 +!ORA2/UR17=0.0 ! -!OLN/WC_HNO4=0.0 +!ORA2/UR7=0.0 ! -!OLN/WC_NH3=0.0 +!ORA2/RPR3=0.0 ! -!OLN/WC_OH=0.0 +!ORA2/URG6=0.0 ! -!OLN/WC_HO2=0.0 +!ORA2/UR22=0.0 ! -!OLN/WC_CO2=0.0 +!ORA2/URG7=0.0 ! -!OLN/WC_SO2=0.0 +!ORA2/RPR4=0.0 ! -!OLN/WC_SULF=0.0 +!ORA2/RPR7=0.0 ! -!OLN/WC_HCHO=0.0 +!ORA2/RPG7=0.0 ! -!OLN/WC_ORA1=0.0 +!ORA2/URG8=0.0 ! -!OLN/WC_ORA2=0.0 +!ORA2/UR19=0.0 ! -!OLN/WC_MO2=0.0 +!ORA2/URG9=0.0 ! -!OLN/WC_OP1=0.0 +!ORA2/AP7=0.0 ! -!OLN/WC_ASO3=0.0 +!ORA2/URG10=0.0 ! -!OLN/WC_ASO4=0.0 +!ORA2/RPR1=0.0 ! -!OLN/WC_ASO5=0.0 +!ORA2/RPR5=0.0 ! -!OLN/WC_AHSO5=0.0 +!ORA2/RPR8=0.0 ! -!OLN/WC_AHMS=0.0 +!ORA2/RP10=0.0 ! -!OLN/WR_O3=0.0 +!ORA2/RP11=0.0 ! -!OLN/WR_H2O2=0.0 +!ORA2/RP16=0.0 ! -!OLN/WR_NO=0.0 +!ORA2/RPRL=0.0 ! -!OLN/WR_NO2=0.0 +!ORA2/APAN=0.0 ! -!OLN/WR_NO3=0.0 +!ORA2/PAN1=0.0 ! -!OLN/WR_N2O5=0.0 +!ORA2/PAN2=0.0 ! -!OLN/WR_HONO=0.0 +!ORA2/PAN3=0.0 ! -!OLN/WR_HNO3=0.0 +!ORA2/PAN4=0.0 ! -!OLN/WR_HNO4=0.0 +!ORA2/PAN6=0.0 ! -!OLN/WR_NH3=0.0 +!ORA2/PAN7=0.0 ! -!OLN/WR_OH=0.0 +!ORA2/PAN8=0.0 ! -!OLN/WR_HO2=0.0 +!ORA2/PN10=0.0 ! -!OLN/WR_CO2=0.0 +!ORA2/RO2T=0.0 ! -!OLN/WR_SO2=0.0 +!ORA2/RO21=0.0 ! -!OLN/WR_SULF=0.0 +!ORA2/RO25=0.0 ! -!OLN/WR_HCHO=0.0 +!ACID/NO=0.0 ! -!OLN/WR_ORA1=0.0 +!ACID/NO2=0.0 ! -!OLN/WR_ORA2=0.0 +!ACID/O3=+0.12*K076*<OLEH> + PJAC(:,45,3)=+0.12*TPK%K076(:)*PCONC(:,18) ! -!OLN/WR_MO2=0.0 +!ACID/HONO=0.0 ! -!OLN/WR_OP1=0.0 +!ACID/HNO3=0.0 ! -!OLN/WR_ASO3=0.0 +!ACID/HNO4=0.0 ! -!OLN/WR_ASO4=0.0 +!ACID/N2O5=0.0 ! -!OLN/WR_ASO5=0.0 +!ACID/NO3=0.0 ! -!OLN/WR_AHSO5=0.0 +!ACID/NH3=0.0 ! -!OLN/WR_AHMS=0.0 +!ACID/HO2=+K142*<RO26>+K310*<RO255> + PJAC(:,45,10)=+TPK%K142(:)*TPK%RO26(:)+TPK%K310(:)*TPK%RO255(:) ! -RETURN -END SUBROUTINE SUBJ7 +!ACID/CO=0.0 ! -SUBROUTINE SUBJ8 +!ACID/H2O2=0.0 ! -!Indices 41 a 45 +!ACID/SO2=0.0 ! +!ACID/H2SO4=0.0 ! -!XO2/O3=+0.00000*K079*<ALKE>+0.13000*K080*<BIO> - PJAC(:,41,1)=+0.00000*TPK%K079(:)*PCONC(:,19)+0.13000*TPK%K080(:)*PCONC(:,20) +!ACID/OH=-K349*<ACID> + PJAC(:,45,15)=-TPK%K349(:)*PCONC(:,45) ! -!XO2/H2O2=0.0 +!ACID/ETHE=0.0 ! -!XO2/NO=+0.13007*K091*<ALKAP>+0.02563*K095*<CARBOP>-K130*<XO2> - PJAC(:,41,3)=+0.13007*TPK%K091(:)*PCONC(:,33)+0.02563*TPK%K095(:)*PCONC(:,39)-& -&TPK%K130(:)*PCONC(:,41) +!ACID/OLEL=0.0 ! -!XO2/NO2=0.0 +!ACID/OLEH=+0.12*K076*<O3> + PJAC(:,45,18)=+0.12*TPK%K076(:)*PCONC(:,3) ! -!XO2/NO3=+0.10530*K074*<CARBO>+K078*<PAN>+0.16271*K120*<ALKAP>+0.01021*K124*<CA -!RBOP>-K131*<XO2> - PJAC(:,41,5)=+0.10530*TPK%K074(:)*PCONC(:,25)+TPK%K078(:)*PCONC(:,27)+0.16271*& -&TPK%K120(:)*PCONC(:,33)+0.01021*TPK%K124(:)*PCONC(:,39)-TPK%K131(:)*PCONC(:,41& -&) +!ACID/ALKL=0.0 ! -!XO2/N2O5=0.0 +!ACID/ALKM=0.0 ! -!XO2/HONO=0.0 +!ACID/ALKH=0.0 ! -!XO2/HNO3=0.0 +!ACID/AROH=0.0 ! -!XO2/HNO4=0.0 +!ACID/AROL=0.0 ! -!XO2/NH3=0.0 +!ACID/AROO=0.0 ! -!XO2/SO2=0.0 +!ACID/ARAL=0.0 ! -!XO2/SULF=0.0 +!ACID/ARAC=0.0 ! -!XO2/CO=0.0 +!ACID/PAH=0.0 ! -!XO2/OH=+0.10318*K061*<ARO>+0.10162*K065*<CARBO>+0.09333*K069*<OP2>+K070*<PAN> - PJAC(:,41,14)=+0.10318*TPK%K061(:)*PCONC(:,21)+0.10162*TPK%K065(:)*PCONC(:,25)& -&+0.09333*TPK%K069(:)*PCONC(:,29)+TPK%K070(:)*PCONC(:,27) +!ACID/HCHO=0.0 ! -!XO2/HO2=-K126*<XO2> - PJAC(:,41,15)=-TPK%K126(:)*PCONC(:,41) +!ACID/ALD2=0.0 ! -!XO2/CH4=0.0 +!ACID/KETL=0.0 ! -!XO2/ETH=0.0 +!ACID/KETH=0.0 ! -!XO2/ALKA=0.0 +!ACID/MEOH=0.0 ! -!XO2/ALKE=+0.00000*K079*<O3> - PJAC(:,41,19)=+0.00000*TPK%K079(:)*PCONC(:,1) +!ACID/ETOH=0.0 ! -!XO2/BIO=+0.15*K054*<O3P>+0.13000*K080*<O3> - PJAC(:,41,20)=+0.15*TPK%K054(:)*TPK%O3P(:)+0.13000*TPK%K080(:)*PCONC(:,1) +!ACID/ALCH=0.0 ! -!XO2/ARO=+0.10318*K061*<OH> - PJAC(:,41,21)=+0.10318*TPK%K061(:)*PCONC(:,14) +!ACID/ISOP=0.0 ! -!XO2/HCHO=0.0 +!ACID/BIOL=0.0 ! -!XO2/ALD=0.0 +!ACID/BIOH=0.0 ! -!XO2/KET=0.0 +!ACID/MTBE=0.0 ! -!XO2/CARBO=+0.10162*K065*<OH>+0.10530*K074*<NO3> - PJAC(:,41,25)=+0.10162*TPK%K065(:)*PCONC(:,14)+0.10530*TPK%K074(:)*PCONC(:,5) +!ACID/MVK=0.0 ! -!XO2/ONIT=0.0 +!ACID/MCR=0.0 ! -!XO2/PAN=+K070*<OH>+K078*<NO3> - PJAC(:,41,27)=+TPK%K070(:)*PCONC(:,14)+TPK%K078(:)*PCONC(:,5) +!ACID/MGLY=0.0 ! -!XO2/OP1=0.0 +!ACID/GLY=0.0 ! -!XO2/OP2=+0.09333*K069*<OH> - PJAC(:,41,29)=+0.09333*TPK%K069(:)*PCONC(:,14) +!ACID/ORA1=0.0 ! -!XO2/ORA1=0.0 +!ACID/ORA2=0.0 ! -!XO2/ORA2=0.0 +!ACID/ACID=-K349*<OH> + PJAC(:,45,45)=-TPK%K349(:)*PCONC(:,15) ! -!XO2/MO2=+0.13370*K105*<ALKAP>+0.02212*K109*<CARBOP>-K127*<XO2> - PJAC(:,41,32)=+0.13370*TPK%K105(:)*PCONC(:,33)+0.02212*TPK%K109(:)*PCONC(:,39)& -&-TPK%K127(:)*PCONC(:,41) +!ACID/UR28=0.0 ! -!XO2/ALKAP=+0.13007*K091*<NO>+0.13370*K105*<MO2>+0.11306*K111*<CARBOP>+0.16271* -!K120*<NO3> - PJAC(:,41,33)=+0.13007*TPK%K091(:)*PCONC(:,3)+0.13370*TPK%K105(:)*PCONC(:,32)+& -&0.11306*TPK%K111(:)*PCONC(:,39)+0.16271*TPK%K120(:)*PCONC(:,5) +!ACID/UR21=0.0 ! -!XO2/ALKEP=0.0 +!ACID/URG2=0.0 ! -!XO2/BIOP=0.0 +!ACID/UR26=0.0 ! -!XO2/PHO=0.0 +!ACID/RPG2=0.0 ! -!XO2/ADD=0.0 +!ACID/RP18=0.0 ! -!XO2/AROP=0.0 +!ACID/RPG3=0.0 ! -!XO2/CARBOP=+0.02563*K095*<NO>+0.02212*K109*<MO2>+0.11306*K111*<ALKAP>+0.01593* -!K115*<CARBOP>+0.01593*K115*<CARBOP>+0.01021*K124*<NO3>-K128*<XO2> - PJAC(:,41,39)=+0.02563*TPK%K095(:)*PCONC(:,3)+0.02212*TPK%K109(:)*PCONC(:,32)+& -&0.11306*TPK%K111(:)*PCONC(:,33)+0.01593*TPK%K115(:)*PCONC(:,39)+0.01593*TPK%K1& -&15(:)*PCONC(:,39)+0.01021*TPK%K124(:)*PCONC(:,5)-TPK%K128(:)*PCONC(:,41) +!ACID/URG4=0.0 ! -!XO2/OLN=0.0 +!ACID/UR8=0.0 ! -!XO2/XO2=-K126*<HO2>-K127*<MO2>-K128*<CARBOP>-K129*<XO2>-K129*<XO2>-K129*<XO2>- -!K129*<XO2>-K130*<NO>-K131*<NO3> - PJAC(:,41,41)=-TPK%K126(:)*PCONC(:,15)-TPK%K127(:)*PCONC(:,32)-TPK%K128(:)*PCO& -&NC(:,39)-TPK%K129(:)*PCONC(:,41)-TPK%K129(:)*PCONC(:,41)-TPK%K129(:)*PCONC(:,4& -&1)-TPK%K129(:)*PCONC(:,41)-TPK%K130(:)*PCONC(:,3)-TPK%K131(:)*PCONC(:,5) +!ACID/UR17=0.0 ! -!XO2/WC_O3=0.0 +!ACID/UR7=0.0 ! -!XO2/WC_H2O2=0.0 +!ACID/RPR3=0.0 ! -!XO2/WC_NO=0.0 +!ACID/URG6=0.0 ! -!XO2/WC_NO2=0.0 +!ACID/UR22=0.0 ! -!XO2/WC_NO3=0.0 +!ACID/URG7=0.0 ! -!XO2/WC_N2O5=0.0 +!ACID/RPR4=0.0 ! -!XO2/WC_HONO=0.0 +!ACID/RPR7=0.0 ! -!XO2/WC_HNO3=0.0 +!ACID/RPG7=0.0 ! -!XO2/WC_HNO4=0.0 +!ACID/URG8=0.0 ! -!XO2/WC_NH3=0.0 +!ACID/UR19=0.0 ! -!XO2/WC_OH=0.0 +!ACID/URG9=0.0 ! -!XO2/WC_HO2=0.0 +!ACID/AP7=0.0 ! -!XO2/WC_CO2=0.0 +!ACID/URG10=0.0 ! -!XO2/WC_SO2=0.0 +!ACID/RPR1=0.0 ! -!XO2/WC_SULF=0.0 +!ACID/RPR5=0.0 ! -!XO2/WC_HCHO=0.0 +!ACID/RPR8=0.0 ! -!XO2/WC_ORA1=0.0 +!ACID/RP10=0.0 ! -!XO2/WC_ORA2=0.0 +!ACID/RP11=0.0 ! -!XO2/WC_MO2=0.0 +!ACID/RP16=0.0 ! -!XO2/WC_OP1=0.0 +!ACID/RPRL=0.0 ! -!XO2/WC_ASO3=0.0 +!ACID/APAN=0.0 ! -!XO2/WC_ASO4=0.0 +!ACID/PAN1=0.0 ! -!XO2/WC_ASO5=0.0 +!ACID/PAN2=0.0 ! -!XO2/WC_AHSO5=0.0 +!ACID/PAN3=0.0 ! -!XO2/WC_AHMS=0.0 +!ACID/PAN4=0.0 ! -!XO2/WR_O3=0.0 +!ACID/PAN6=0.0 ! -!XO2/WR_H2O2=0.0 +!ACID/PAN7=0.0 ! -!XO2/WR_NO=0.0 +!ACID/PAN8=0.0 ! -!XO2/WR_NO2=0.0 +!ACID/PN10=0.0 ! -!XO2/WR_NO3=0.0 +!ACID/RO2T=0.0 ! -!XO2/WR_N2O5=0.0 +!ACID/RO21=0.0 ! -!XO2/WR_HONO=0.0 +!ACID/RO25=0.0 ! -!XO2/WR_HNO3=0.0 +RETURN +END SUBROUTINE SUBJ8 ! -!XO2/WR_HNO4=0.0 +SUBROUTINE SUBJ9 ! -!XO2/WR_NH3=0.0 +!Indices 46 a 50 ! -!XO2/WR_OH=0.0 ! -!XO2/WR_HO2=0.0 +!UR28/NO=0.0 ! -!XO2/WR_CO2=0.0 +!UR28/NO2=0.0 ! -!XO2/WR_SO2=0.0 +!UR28/O3=0.0 ! -!XO2/WR_SULF=0.0 +!UR28/HONO=0.0 ! -!XO2/WR_HCHO=0.0 +!UR28/HNO3=0.0 ! -!XO2/WR_ORA1=0.0 +!UR28/HNO4=0.0 ! -!XO2/WR_ORA2=0.0 +!UR28/N2O5=0.0 ! -!XO2/WR_MO2=0.0 +!UR28/NO3=0.0 ! -!XO2/WR_OP1=0.0 +!UR28/NH3=0.0 ! -!XO2/WR_ASO3=0.0 +!UR28/HO2=+K341*<RO258> + PJAC(:,46,10)=+TPK%K341(:)*TPK%RO258(:) ! -!XO2/WR_ASO4=0.0 +!UR28/CO=0.0 ! -!XO2/WR_ASO5=0.0 +!UR28/H2O2=0.0 ! -!XO2/WR_AHSO5=0.0 +!UR28/SO2=0.0 ! -!XO2/WR_AHMS=0.0 +!UR28/H2SO4=0.0 ! -!WC_O3/O3=+KTC1 - PJAC(:,42,1)=+TPK%KTC1(:) +!UR28/OH=0.0 ! -!WC_O3/H2O2=0.0 +!UR28/ETHE=0.0 ! -!WC_O3/NO=0.0 +!UR28/OLEL=0.0 ! -!WC_O3/NO2=0.0 +!UR28/OLEH=0.0 ! -!WC_O3/NO3=0.0 +!UR28/ALKL=0.0 ! -!WC_O3/N2O5=0.0 +!UR28/ALKM=0.0 ! -!WC_O3/HONO=0.0 +!UR28/ALKH=0.0 ! -!WC_O3/HNO3=0.0 +!UR28/AROH=0.0 ! -!WC_O3/HNO4=0.0 +!UR28/AROL=0.0 ! -!WC_O3/NH3=0.0 +!UR28/AROO=0.0 ! -!WC_O3/SO2=0.0 +!UR28/ARAL=0.0 ! -!WC_O3/SULF=0.0 +!UR28/ARAC=0.0 ! -!WC_O3/CO=0.0 +!UR28/PAH=0.0 ! -!WC_O3/OH=0.0 +!UR28/HCHO=0.0 ! -!WC_O3/HO2=0.0 +!UR28/ALD2=0.0 ! -!WC_O3/CH4=0.0 +!UR28/KETL=0.0 ! -!WC_O3/ETH=0.0 +!UR28/KETH=0.0 ! -!WC_O3/ALKA=0.0 +!UR28/MEOH=0.0 ! -!WC_O3/ALKE=0.0 +!UR28/ETOH=0.0 ! -!WC_O3/BIO=0.0 +!UR28/ALCH=0.0 ! -!WC_O3/ARO=0.0 +!UR28/ISOP=0.0 ! -!WC_O3/HCHO=0.0 +!UR28/BIOL=0.0 ! -!WC_O3/ALD=0.0 +!UR28/BIOH=0.0 ! -!WC_O3/KET=0.0 +!UR28/MTBE=0.0 ! -!WC_O3/CARBO=0.0 +!UR28/MVK=0.0 ! -!WC_O3/ONIT=0.0 +!UR28/MCR=0.0 ! -!WC_O3/PAN=0.0 +!UR28/MGLY=0.0 ! -!WC_O3/OP1=0.0 +!UR28/GLY=0.0 ! -!WC_O3/OP2=0.0 +!UR28/ORA1=0.0 ! -!WC_O3/ORA1=0.0 +!UR28/ORA2=0.0 ! -!WC_O3/ORA2=0.0 +!UR28/ACID=0.0 ! -!WC_O3/MO2=0.0 +!UR28/UR28=-K364 + PJAC(:,46,46)=-TPK%K364(:) ! -!WC_O3/ALKAP=0.0 +!UR28/UR21=0.0 ! -!WC_O3/ALKEP=0.0 +!UR28/URG2=0.0 ! -!WC_O3/BIOP=0.0 +!UR28/UR26=0.0 ! -!WC_O3/PHO=0.0 +!UR28/RPG2=0.0 ! -!WC_O3/ADD=0.0 +!UR28/RP18=0.0 ! -!WC_O3/AROP=0.0 +!UR28/RPG3=0.0 ! -!WC_O3/CARBOP=0.0 +!UR28/URG4=0.0 ! -!WC_O3/OLN=0.0 +!UR28/UR8=0.0 ! -!WC_O3/XO2=0.0 +!UR28/UR17=0.0 ! -!WC_O3/WC_O3=-KTC21-KC6*<WC_HO2>-KC29*<WC_SO2> - PJAC(:,42,42)=-TPK%KTC21(:)-TPK%KC6(:)*PCONC(:,53)-TPK%KC29(:)*PCONC(:,55) +!UR28/UR7=0.0 ! -!WC_O3/WC_H2O2=0.0 +!UR28/RPR3=0.0 ! -!WC_O3/WC_NO=0.0 +!UR28/URG6=0.0 ! -!WC_O3/WC_NO2=0.0 +!UR28/UR22=0.0 ! -!WC_O3/WC_NO3=0.0 +!UR28/URG7=0.0 ! -!WC_O3/WC_N2O5=0.0 +!UR28/RPR4=0.0 ! -!WC_O3/WC_HONO=0.0 +!UR28/RPR7=0.0 ! -!WC_O3/WC_HNO3=0.0 +!UR28/RPG7=0.0 ! -!WC_O3/WC_HNO4=0.0 +!UR28/URG8=0.0 ! -!WC_O3/WC_NH3=0.0 +!UR28/UR19=0.0 ! -!WC_O3/WC_OH=0.0 +!UR28/URG9=0.0 ! -!WC_O3/WC_HO2=-KC6*<WC_O3> - PJAC(:,42,53)=-TPK%KC6(:)*PCONC(:,42) +!UR28/AP7=0.0 ! -!WC_O3/WC_CO2=0.0 +!UR28/URG10=0.0 ! -!WC_O3/WC_SO2=-KC29*<WC_O3> - PJAC(:,42,55)=-TPK%KC29(:)*PCONC(:,42) +!UR28/RPR1=0.0 ! -!WC_O3/WC_SULF=0.0 +!UR28/RPR5=0.0 ! -!WC_O3/WC_HCHO=0.0 +!UR28/RPR8=0.0 ! -!WC_O3/WC_ORA1=0.0 +!UR28/RP10=0.0 ! -!WC_O3/WC_ORA2=0.0 +!UR28/RP11=0.0 ! -!WC_O3/WC_MO2=0.0 +!UR28/RP16=0.0 ! -!WC_O3/WC_OP1=0.0 +!UR28/RPRL=0.0 ! -!WC_O3/WC_ASO3=0.0 +!UR28/APAN=0.0 ! -!WC_O3/WC_ASO4=0.0 +!UR28/PAN1=0.0 ! -!WC_O3/WC_ASO5=0.0 +!UR28/PAN2=0.0 ! -!WC_O3/WC_AHSO5=0.0 +!UR28/PAN3=0.0 ! -!WC_O3/WC_AHMS=0.0 +!UR28/PAN4=0.0 ! -!WC_O3/WR_O3=0.0 +!UR28/PAN6=0.0 ! -!WC_O3/WR_H2O2=0.0 +!UR28/PAN7=0.0 ! -!WC_O3/WR_NO=0.0 +!UR28/PAN8=0.0 ! -!WC_O3/WR_NO2=0.0 +!UR28/PN10=0.0 ! -!WC_O3/WR_NO3=0.0 +!UR28/RO2T=0.0 ! -!WC_O3/WR_N2O5=0.0 +!UR28/RO21=0.0 ! -!WC_O3/WR_HONO=0.0 +!UR28/RO25=0.0 ! -!WC_O3/WR_HNO3=0.0 +!UR21/NO=0.0 ! -!WC_O3/WR_HNO4=0.0 +!UR21/NO2=0.0 ! -!WC_O3/WR_NH3=0.0 +!UR21/O3=+0.12*K281*<MVK> + PJAC(:,47,3)=+0.12*TPK%K281(:)*PCONC(:,39) ! -!WC_O3/WR_OH=0.0 +!UR21/HONO=0.0 ! -!WC_O3/WR_HO2=0.0 +!UR21/HNO3=0.0 ! -!WC_O3/WR_CO2=0.0 +!UR21/HNO4=0.0 ! -!WC_O3/WR_SO2=0.0 +!UR21/N2O5=0.0 ! -!WC_O3/WR_SULF=0.0 +!UR21/NO3=0.0 ! -!WC_O3/WR_HCHO=0.0 +!UR21/NH3=0.0 ! -!WC_O3/WR_ORA1=0.0 +!UR21/HO2=+K279*<RO248> + PJAC(:,47,10)=+TPK%K279(:)*TPK%RO248(:) ! -!WC_O3/WR_ORA2=0.0 +!UR21/CO=0.0 ! -!WC_O3/WR_MO2=0.0 +!UR21/H2O2=0.0 ! -!WC_O3/WR_OP1=0.0 +!UR21/SO2=0.0 ! -!WC_O3/WR_ASO3=0.0 +!UR21/H2SO4=0.0 ! -!WC_O3/WR_ASO4=0.0 +!UR21/OH=0.0 ! -!WC_O3/WR_ASO5=0.0 +!UR21/ETHE=0.0 ! -!WC_O3/WR_AHSO5=0.0 +!UR21/OLEL=0.0 ! -!WC_O3/WR_AHMS=0.0 +!UR21/OLEH=0.0 ! -!WC_H2O2/O3=0.0 +!UR21/ALKL=0.0 ! -!WC_H2O2/H2O2=+KTC2 - PJAC(:,43,2)=+TPK%KTC2(:) +!UR21/ALKM=0.0 ! -!WC_H2O2/NO=0.0 +!UR21/ALKH=0.0 ! -!WC_H2O2/NO2=0.0 +!UR21/AROH=0.0 ! -!WC_H2O2/NO3=0.0 +!UR21/AROL=0.0 ! -!WC_H2O2/N2O5=0.0 +!UR21/AROO=0.0 ! -!WC_H2O2/HONO=0.0 +!UR21/ARAL=0.0 ! -!WC_H2O2/HNO3=0.0 +!UR21/ARAC=0.0 ! -!WC_H2O2/HNO4=0.0 +!UR21/PAH=0.0 ! -!WC_H2O2/NH3=0.0 +!UR21/HCHO=0.0 ! -!WC_H2O2/SO2=0.0 +!UR21/ALD2=0.0 ! -!WC_H2O2/SULF=0.0 +!UR21/KETL=0.0 ! -!WC_H2O2/CO=0.0 +!UR21/KETH=0.0 ! -!WC_H2O2/OH=0.0 +!UR21/MEOH=0.0 ! -!WC_H2O2/HO2=0.0 +!UR21/ETOH=0.0 ! -!WC_H2O2/CH4=0.0 +!UR21/ALCH=0.0 ! -!WC_H2O2/ETH=0.0 +!UR21/ISOP=0.0 ! -!WC_H2O2/ALKA=0.0 +!UR21/BIOL=0.0 ! -!WC_H2O2/ALKE=0.0 +!UR21/BIOH=0.0 ! -!WC_H2O2/BIO=0.0 +!UR21/MTBE=0.0 ! -!WC_H2O2/ARO=0.0 +!UR21/MVK=+0.12*K281*<O3> + PJAC(:,47,39)=+0.12*TPK%K281(:)*PCONC(:,3) ! -!WC_H2O2/HCHO=0.0 +!UR21/MCR=0.0 ! -!WC_H2O2/ALD=0.0 +!UR21/MGLY=0.0 ! -!WC_H2O2/KET=0.0 +!UR21/GLY=0.0 ! -!WC_H2O2/CARBO=0.0 +!UR21/ORA1=0.0 ! -!WC_H2O2/ONIT=0.0 +!UR21/ORA2=0.0 ! -!WC_H2O2/PAN=0.0 +!UR21/ACID=0.0 ! -!WC_H2O2/OP1=0.0 +!UR21/UR28=0.0 ! -!WC_H2O2/OP2=0.0 +!UR21/UR21=-K361 + PJAC(:,47,47)=-TPK%K361(:) ! -!WC_H2O2/ORA1=0.0 +!UR21/URG2=0.0 ! -!WC_H2O2/ORA2=0.0 +!UR21/UR26=0.0 ! -!WC_H2O2/MO2=0.0 +!UR21/RPG2=0.0 ! -!WC_H2O2/ALKAP=0.0 +!UR21/RP18=0.0 ! -!WC_H2O2/ALKEP=0.0 +!UR21/RPG3=0.0 ! -!WC_H2O2/BIOP=0.0 +!UR21/URG4=0.0 ! -!WC_H2O2/PHO=0.0 +!UR21/UR8=0.0 ! -!WC_H2O2/ADD=0.0 +!UR21/UR17=0.0 ! -!WC_H2O2/AROP=0.0 +!UR21/UR7=0.0 ! -!WC_H2O2/CARBOP=0.0 +!UR21/RPR3=0.0 ! -!WC_H2O2/OLN=0.0 +!UR21/URG6=0.0 ! -!WC_H2O2/XO2=0.0 +!UR21/UR22=0.0 ! -!WC_H2O2/WC_O3=0.0 +!UR21/URG7=0.0 ! -!WC_H2O2/WC_H2O2=-KTC22-KC1-KC4*<WC_OH>-KC30*<WC_SO2> - PJAC(:,43,43)=-TPK%KTC22(:)-TPK%KC1(:)-TPK%KC4(:)*PCONC(:,52)-TPK%KC30(:)*PCON& -&C(:,55) +!UR21/RPR4=0.0 ! -!WC_H2O2/WC_NO=0.0 +!UR21/RPR7=0.0 ! -!WC_H2O2/WC_NO2=0.0 +!UR21/RPG7=0.0 ! -!WC_H2O2/WC_NO3=0.0 +!UR21/URG8=0.0 ! -!WC_H2O2/WC_N2O5=0.0 +!UR21/UR19=0.0 ! -!WC_H2O2/WC_HONO=0.0 +!UR21/URG9=0.0 ! -!WC_H2O2/WC_HNO3=0.0 +!UR21/AP7=0.0 ! -!WC_H2O2/WC_HNO4=0.0 +!UR21/URG10=0.0 ! -!WC_H2O2/WC_NH3=0.0 +!UR21/RPR1=0.0 ! -!WC_H2O2/WC_OH=+KC2*<WC_OH>+KC2*<WC_OH>-KC4*<WC_H2O2> - PJAC(:,43,52)=+TPK%KC2(:)*PCONC(:,52)+TPK%KC2(:)*PCONC(:,52)-TPK%KC4(:)*PCONC(& -&:,43) +!UR21/RPR5=0.0 ! -!WC_H2O2/WC_HO2=+KC5*<WC_HO2>+KC5*<WC_HO2> - PJAC(:,43,53)=+TPK%KC5(:)*PCONC(:,53)+TPK%KC5(:)*PCONC(:,53) +!UR21/RPR8=0.0 ! -!WC_H2O2/WC_CO2=0.0 +!UR21/RP10=0.0 ! -!WC_H2O2/WC_SO2=-KC30*<WC_H2O2> - PJAC(:,43,55)=-TPK%KC30(:)*PCONC(:,43) +!UR21/RP11=0.0 ! -!WC_H2O2/WC_SULF=0.0 +!UR21/RP16=0.0 ! -!WC_H2O2/WC_HCHO=0.0 +!UR21/RPRL=0.0 ! -!WC_H2O2/WC_ORA1=0.0 +!UR21/APAN=0.0 ! -!WC_H2O2/WC_ORA2=0.0 +!UR21/PAN1=0.0 ! -!WC_H2O2/WC_MO2=0.0 +!UR21/PAN2=0.0 ! -!WC_H2O2/WC_OP1=0.0 +!UR21/PAN3=0.0 ! -!WC_H2O2/WC_ASO3=0.0 +!UR21/PAN4=0.0 ! -!WC_H2O2/WC_ASO4=0.0 +!UR21/PAN6=0.0 ! -!WC_H2O2/WC_ASO5=0.0 +!UR21/PAN7=0.0 ! -!WC_H2O2/WC_AHSO5=0.0 +!UR21/PAN8=0.0 ! -!WC_H2O2/WC_AHMS=0.0 +!UR21/PN10=0.0 ! -!WC_H2O2/WR_O3=0.0 +!UR21/RO2T=0.0 ! -!WC_H2O2/WR_H2O2=0.0 +!UR21/RO21=0.0 ! -!WC_H2O2/WR_NO=0.0 +!UR21/RO25=0.0 ! -!WC_H2O2/WR_NO2=0.0 +!URG2/NO=0.0 ! -!WC_H2O2/WR_NO3=0.0 +!URG2/NO2=0.0 ! -!WC_H2O2/WR_N2O5=0.0 +!URG2/O3=0.0 ! -!WC_H2O2/WR_HONO=0.0 +!URG2/HONO=0.0 ! -!WC_H2O2/WR_HNO3=0.0 +!URG2/HNO3=0.0 ! -!WC_H2O2/WR_HNO4=0.0 +!URG2/HNO4=0.0 ! -!WC_H2O2/WR_NH3=0.0 +!URG2/N2O5=0.0 ! -!WC_H2O2/WR_OH=0.0 +!URG2/NO3=0.0 ! -!WC_H2O2/WR_HO2=0.0 +!URG2/NH3=0.0 ! -!WC_H2O2/WR_CO2=0.0 +!URG2/HO2=0.0 ! -!WC_H2O2/WR_SO2=0.0 +!URG2/CO=0.0 ! -!WC_H2O2/WR_SULF=0.0 +!URG2/H2O2=0.0 ! -!WC_H2O2/WR_HCHO=0.0 +!URG2/SO2=0.0 ! -!WC_H2O2/WR_ORA1=0.0 +!URG2/H2SO4=0.0 ! -!WC_H2O2/WR_ORA2=0.0 +!URG2/OH=+0.5562513*K335*<RPG2>+K337*<RP18> + PJAC(:,48,15)=+0.5562513*TPK%K335(:)*PCONC(:,50)+TPK%K337(:)*PCONC(:,51) ! -!WC_H2O2/WR_MO2=0.0 +!URG2/ETHE=0.0 ! -!WC_H2O2/WR_OP1=0.0 +!URG2/OLEL=0.0 ! -!WC_H2O2/WR_ASO3=0.0 +!URG2/OLEH=0.0 ! -!WC_H2O2/WR_ASO4=0.0 +!URG2/ALKL=0.0 ! -!WC_H2O2/WR_ASO5=0.0 +!URG2/ALKM=0.0 ! -!WC_H2O2/WR_AHSO5=0.0 +!URG2/ALKH=0.0 ! -!WC_H2O2/WR_AHMS=0.0 +!URG2/AROH=0.0 ! -!WC_NO/O3=0.0 +!URG2/AROL=0.0 ! -!WC_NO/H2O2=0.0 +!URG2/AROO=0.0 ! -!WC_NO/NO=+KTC3 - PJAC(:,44,3)=+TPK%KTC3(:) +!URG2/ARAL=0.0 ! -!WC_NO/NO2=0.0 +!URG2/ARAC=0.0 ! -!WC_NO/NO3=0.0 +!URG2/PAH=0.0 ! -!WC_NO/N2O5=0.0 +!URG2/HCHO=0.0 ! -!WC_NO/HONO=0.0 +!URG2/ALD2=0.0 ! -!WC_NO/HNO3=0.0 +!URG2/KETL=0.0 ! -!WC_NO/HNO4=0.0 +!URG2/KETH=0.0 ! -!WC_NO/NH3=0.0 +!URG2/MEOH=0.0 ! -!WC_NO/SO2=0.0 +!URG2/ETOH=0.0 ! -!WC_NO/SULF=0.0 +!URG2/ALCH=0.0 ! -!WC_NO/CO=0.0 +!URG2/ISOP=0.0 ! -!WC_NO/OH=0.0 +!URG2/BIOL=0.0 ! -!WC_NO/HO2=0.0 +!URG2/BIOH=0.0 ! -!WC_NO/CH4=0.0 +!URG2/MTBE=0.0 ! -!WC_NO/ETH=0.0 +!URG2/MVK=0.0 ! -!WC_NO/ALKA=0.0 +!URG2/MCR=0.0 ! -!WC_NO/ALKE=0.0 +!URG2/MGLY=0.0 ! -!WC_NO/BIO=0.0 +!URG2/GLY=0.0 ! -!WC_NO/ARO=0.0 +!URG2/ORA1=0.0 ! -!WC_NO/HCHO=0.0 +!URG2/ORA2=0.0 ! -!WC_NO/ALD=0.0 +!URG2/ACID=0.0 ! -!WC_NO/KET=0.0 +!URG2/UR28=0.0 ! -!WC_NO/CARBO=0.0 +!URG2/UR21=0.0 ! -!WC_NO/ONIT=0.0 +!URG2/URG2=-K350 + PJAC(:,48,48)=-TPK%K350(:) ! -!WC_NO/PAN=0.0 +!URG2/UR26=0.0 ! -!WC_NO/OP1=0.0 +!URG2/RPG2=+0.5562513*K335*<OH> + PJAC(:,48,50)=+0.5562513*TPK%K335(:)*PCONC(:,15) ! -!WC_NO/OP2=0.0 +!URG2/RP18=+K337*<OH> + PJAC(:,48,51)=+TPK%K337(:)*PCONC(:,15) ! -!WC_NO/ORA1=0.0 +!URG2/RPG3=0.0 ! -!WC_NO/ORA2=0.0 +!URG2/URG4=0.0 ! -!WC_NO/MO2=0.0 +!URG2/UR8=0.0 ! -!WC_NO/ALKAP=0.0 +!URG2/UR17=0.0 ! -!WC_NO/ALKEP=0.0 +!URG2/UR7=0.0 ! -!WC_NO/BIOP=0.0 +!URG2/RPR3=0.0 ! -!WC_NO/PHO=0.0 +!URG2/URG6=0.0 ! -!WC_NO/ADD=0.0 +!URG2/UR22=0.0 ! -!WC_NO/AROP=0.0 +!URG2/URG7=0.0 ! -!WC_NO/CARBOP=0.0 +!URG2/RPR4=0.0 ! -!WC_NO/OLN=0.0 +!URG2/RPR7=0.0 ! -!WC_NO/XO2=0.0 +!URG2/RPG7=0.0 ! -!WC_NO/WC_O3=0.0 +!URG2/URG8=0.0 ! -!WC_NO/WC_H2O2=0.0 +!URG2/UR19=0.0 ! -!WC_NO/WC_NO=-KTC23 - PJAC(:,44,44)=-TPK%KTC23(:) +!URG2/URG9=0.0 ! -!WC_NO/WC_NO2=0.0 +!URG2/AP7=0.0 ! -!WC_NO/WC_NO3=0.0 +!URG2/URG10=0.0 ! -!WC_NO/WC_N2O5=0.0 +!URG2/RPR1=0.0 ! -!WC_NO/WC_HONO=0.0 +!URG2/RPR5=0.0 ! -!WC_NO/WC_HNO3=0.0 +!URG2/RPR8=0.0 ! -!WC_NO/WC_HNO4=0.0 +!URG2/RP10=0.0 ! -!WC_NO/WC_NH3=0.0 +!URG2/RP11=0.0 ! -!WC_NO/WC_OH=0.0 +!URG2/RP16=0.0 ! -!WC_NO/WC_HO2=0.0 +!URG2/RPRL=0.0 ! -!WC_NO/WC_CO2=0.0 +!URG2/APAN=0.0 ! -!WC_NO/WC_SO2=0.0 +!URG2/PAN1=0.0 ! -!WC_NO/WC_SULF=0.0 +!URG2/PAN2=0.0 ! -!WC_NO/WC_HCHO=0.0 +!URG2/PAN3=0.0 ! -!WC_NO/WC_ORA1=0.0 +!URG2/PAN4=0.0 ! -!WC_NO/WC_ORA2=0.0 +!URG2/PAN6=0.0 ! -!WC_NO/WC_MO2=0.0 +!URG2/PAN7=0.0 ! -!WC_NO/WC_OP1=0.0 +!URG2/PAN8=0.0 ! -!WC_NO/WC_ASO3=0.0 +!URG2/PN10=0.0 ! -!WC_NO/WC_ASO4=0.0 +!URG2/RO2T=0.0 ! -!WC_NO/WC_ASO5=0.0 +!URG2/RO21=0.0 ! -!WC_NO/WC_AHSO5=0.0 +!URG2/RO25=0.0 ! -!WC_NO/WC_AHMS=0.0 +!UR26/NO=0.0 ! -!WC_NO/WR_O3=0.0 +!UR26/NO2=0.0 ! -!WC_NO/WR_H2O2=0.0 +!UR26/O3=0.0 ! -!WC_NO/WR_NO=0.0 +!UR26/HONO=0.0 ! -!WC_NO/WR_NO2=0.0 +!UR26/HNO3=0.0 ! -!WC_NO/WR_NO3=0.0 +!UR26/HNO4=0.0 ! -!WC_NO/WR_N2O5=0.0 +!UR26/N2O5=0.0 ! -!WC_NO/WR_HONO=0.0 +!UR26/NO3=0.0 ! -!WC_NO/WR_HNO3=0.0 +!UR26/NH3=0.0 ! -!WC_NO/WR_HNO4=0.0 +!UR26/HO2=0.0 ! -!WC_NO/WR_NH3=0.0 +!UR26/CO=0.0 ! -!WC_NO/WR_OH=0.0 +!UR26/H2O2=0.0 ! -!WC_NO/WR_HO2=0.0 +!UR26/SO2=0.0 ! -!WC_NO/WR_CO2=0.0 +!UR26/H2SO4=0.0 ! -!WC_NO/WR_SO2=0.0 +!UR26/OH=+0.67*K326*<RP11> + PJAC(:,49,15)=+0.67*TPK%K326(:)*PCONC(:,73) ! -!WC_NO/WR_SULF=0.0 +!UR26/ETHE=0.0 ! -!WC_NO/WR_HCHO=0.0 +!UR26/OLEL=0.0 ! -!WC_NO/WR_ORA1=0.0 +!UR26/OLEH=0.0 ! -!WC_NO/WR_ORA2=0.0 +!UR26/ALKL=0.0 ! -!WC_NO/WR_MO2=0.0 +!UR26/ALKM=0.0 ! -!WC_NO/WR_OP1=0.0 +!UR26/ALKH=0.0 ! -!WC_NO/WR_ASO3=0.0 +!UR26/AROH=0.0 ! -!WC_NO/WR_ASO4=0.0 +!UR26/AROL=0.0 ! -!WC_NO/WR_ASO5=0.0 +!UR26/AROO=0.0 ! -!WC_NO/WR_AHSO5=0.0 +!UR26/ARAL=0.0 ! -!WC_NO/WR_AHMS=0.0 +!UR26/ARAC=0.0 ! -!WC_NO2/O3=0.0 +!UR26/PAH=0.0 ! -!WC_NO2/H2O2=0.0 +!UR26/HCHO=0.0 ! -!WC_NO2/NO=0.0 +!UR26/ALD2=0.0 ! -!WC_NO2/NO2=+KTC4 - PJAC(:,45,4)=+TPK%KTC4(:) +!UR26/KETL=0.0 ! -!WC_NO2/NO3=0.0 +!UR26/KETH=0.0 ! -!WC_NO2/N2O5=0.0 +!UR26/MEOH=0.0 ! -!WC_NO2/HONO=0.0 +!UR26/ETOH=0.0 ! -!WC_NO2/HNO3=0.0 +!UR26/ALCH=0.0 ! -!WC_NO2/HNO4=0.0 +!UR26/ISOP=0.0 ! -!WC_NO2/NH3=0.0 +!UR26/BIOL=0.0 ! -!WC_NO2/SO2=0.0 +!UR26/BIOH=0.0 ! -!WC_NO2/SULF=0.0 +!UR26/MTBE=0.0 ! -!WC_NO2/CO=0.0 +!UR26/MVK=0.0 ! -!WC_NO2/OH=0.0 +!UR26/MCR=0.0 ! -!WC_NO2/HO2=0.0 +!UR26/MGLY=0.0 ! -!WC_NO2/CH4=0.0 +!UR26/GLY=0.0 ! -!WC_NO2/ETH=0.0 +!UR26/ORA1=0.0 ! -!WC_NO2/ALKA=0.0 +!UR26/ORA2=0.0 ! -!WC_NO2/ALKE=0.0 +!UR26/ACID=0.0 ! -!WC_NO2/BIO=0.0 +!UR26/UR28=0.0 ! -!WC_NO2/ARO=0.0 +!UR26/UR21=0.0 ! -!WC_NO2/HCHO=0.0 +!UR26/URG2=0.0 ! -!WC_NO2/ALD=0.0 +!UR26/UR26=-K363 + PJAC(:,49,49)=-TPK%K363(:) ! -!WC_NO2/KET=0.0 +!UR26/RPG2=0.0 ! -!WC_NO2/CARBO=0.0 +!UR26/RP18=0.0 ! -!WC_NO2/ONIT=0.0 +!UR26/RPG3=0.0 ! -!WC_NO2/PAN=0.0 +!UR26/URG4=0.0 ! -!WC_NO2/OP1=0.0 +!UR26/UR8=0.0 ! -!WC_NO2/OP2=0.0 +!UR26/UR17=0.0 ! -!WC_NO2/ORA1=0.0 +!UR26/UR7=0.0 ! -!WC_NO2/ORA2=0.0 +!UR26/RPR3=0.0 ! -!WC_NO2/MO2=0.0 +!UR26/URG6=0.0 ! -!WC_NO2/ALKAP=0.0 +!UR26/UR22=0.0 ! -!WC_NO2/ALKEP=0.0 +!UR26/URG7=0.0 ! -!WC_NO2/BIOP=0.0 +!UR26/RPR4=0.0 ! -!WC_NO2/PHO=0.0 +!UR26/RPR7=0.0 ! -!WC_NO2/ADD=0.0 +!UR26/RPG7=0.0 ! -!WC_NO2/AROP=0.0 +!UR26/URG8=0.0 ! -!WC_NO2/CARBOP=0.0 +!UR26/UR19=0.0 ! -!WC_NO2/OLN=0.0 +!UR26/URG9=0.0 ! -!WC_NO2/XO2=0.0 +!UR26/AP7=0.0 ! -!WC_NO2/WC_O3=0.0 +!UR26/URG10=0.0 ! -!WC_NO2/WC_H2O2=0.0 +!UR26/RPR1=0.0 ! -!WC_NO2/WC_NO=0.0 +!UR26/RPR5=0.0 ! -!WC_NO2/WC_NO2=-KTC24-KC9*<WC_HO2> - PJAC(:,45,45)=-TPK%KTC24(:)-TPK%KC9(:)*PCONC(:,53) +!UR26/RPR8=0.0 ! -!WC_NO2/WC_NO3=0.0 +!UR26/RP10=0.0 ! -!WC_NO2/WC_N2O5=0.0 +!UR26/RP11=+0.67*K326*<OH> + PJAC(:,49,73)=+0.67*TPK%K326(:)*PCONC(:,15) ! -!WC_NO2/WC_HONO=+KC8*<WC_OH> - PJAC(:,45,48)=+TPK%KC8(:)*PCONC(:,52) +!UR26/RP16=0.0 ! -!WC_NO2/WC_HNO3=+KC13 - PJAC(:,45,49)=+TPK%KC13(:) +!UR26/RPRL=0.0 ! -!WC_NO2/WC_HNO4=+KC10 - PJAC(:,45,50)=+TPK%KC10(:) +!UR26/APAN=0.0 ! -!WC_NO2/WC_NH3=0.0 +!UR26/PAN1=0.0 ! -!WC_NO2/WC_OH=+KC8*<WC_HONO> - PJAC(:,45,52)=+TPK%KC8(:)*PCONC(:,48) +!UR26/PAN2=0.0 ! -!WC_NO2/WC_HO2=-KC9*<WC_NO2> - PJAC(:,45,53)=-TPK%KC9(:)*PCONC(:,45) +!UR26/PAN3=0.0 ! -!WC_NO2/WC_CO2=0.0 +!UR26/PAN4=0.0 ! -!WC_NO2/WC_SO2=0.0 +!UR26/PAN6=0.0 ! -!WC_NO2/WC_SULF=0.0 +!UR26/PAN7=0.0 ! -!WC_NO2/WC_HCHO=0.0 +!UR26/PAN8=0.0 ! -!WC_NO2/WC_ORA1=0.0 +!UR26/PN10=0.0 ! -!WC_NO2/WC_ORA2=0.0 +!UR26/RO2T=0.0 ! -!WC_NO2/WC_MO2=0.0 +!UR26/RO21=0.0 ! -!WC_NO2/WC_OP1=0.0 +!UR26/RO25=0.0 ! -!WC_NO2/WC_ASO3=0.0 +!RPG2/NO=+0.3000000*K259*<RO237> + PJAC(:,50,1)=+0.3000000*TPK%K259(:)*TPK%RO237(:) ! -!WC_NO2/WC_ASO4=0.0 +!RPG2/NO2=0.0 ! -!WC_NO2/WC_ASO5=0.0 +!RPG2/O3=0.0 ! -!WC_NO2/WC_AHSO5=0.0 +!RPG2/HONO=0.0 ! -!WC_NO2/WC_AHMS=0.0 +!RPG2/HNO3=0.0 ! -!WC_NO2/WR_O3=0.0 +!RPG2/HNO4=0.0 ! -!WC_NO2/WR_H2O2=0.0 +!RPG2/N2O5=0.0 ! -!WC_NO2/WR_NO=0.0 +!RPG2/NO3=0.0 ! -!WC_NO2/WR_NO2=0.0 +!RPG2/NH3=0.0 ! -!WC_NO2/WR_NO3=0.0 +!RPG2/HO2=+0.3000000*K261*<RO237> + PJAC(:,50,10)=+0.3000000*TPK%K261(:)*TPK%RO237(:) ! -!WC_NO2/WR_N2O5=0.0 +!RPG2/CO=0.0 ! -!WC_NO2/WR_HONO=0.0 +!RPG2/H2O2=0.0 ! -!WC_NO2/WR_HNO3=0.0 +!RPG2/SO2=0.0 ! -!WC_NO2/WR_HNO4=0.0 +!RPG2/H2SO4=0.0 ! -!WC_NO2/WR_NH3=0.0 +!RPG2/OH=+0.1191897*K334*<RPG3>+0.8808107*K334*<RPG3>-K335*<RPG2> + PJAC(:,50,15)=+0.1191897*TPK%K334(:)*PCONC(:,52)+0.8808107*TPK%K334(:)*PCONC(:& +&,52)-TPK%K335(:)*PCONC(:,50) ! -!WC_NO2/WR_OH=0.0 +!RPG2/ETHE=0.0 ! -!WC_NO2/WR_HO2=0.0 +!RPG2/OLEL=0.0 ! -!WC_NO2/WR_CO2=0.0 +!RPG2/OLEH=0.0 ! -!WC_NO2/WR_SO2=0.0 +!RPG2/ALKL=0.0 ! -!WC_NO2/WR_SULF=0.0 +!RPG2/ALKM=0.0 ! -!WC_NO2/WR_HCHO=0.0 +!RPG2/ALKH=0.0 ! -!WC_NO2/WR_ORA1=0.0 +!RPG2/AROH=0.0 ! -!WC_NO2/WR_ORA2=0.0 +!RPG2/AROL=0.0 ! -!WC_NO2/WR_MO2=0.0 +!RPG2/AROO=0.0 ! -!WC_NO2/WR_OP1=0.0 +!RPG2/ARAL=0.0 ! -!WC_NO2/WR_ASO3=0.0 +!RPG2/ARAC=0.0 ! -!WC_NO2/WR_ASO4=0.0 +!RPG2/PAH=0.0 ! -!WC_NO2/WR_ASO5=0.0 +!RPG2/HCHO=0.0 ! -!WC_NO2/WR_AHSO5=0.0 +!RPG2/ALD2=0.0 ! -!WC_NO2/WR_AHMS=0.0 +!RPG2/KETL=0.0 ! -RETURN -END SUBROUTINE SUBJ8 +!RPG2/KETH=0.0 ! -SUBROUTINE SUBJ9 +!RPG2/MEOH=0.0 ! -!Indices 46 a 50 +!RPG2/ETOH=0.0 ! +!RPG2/ALCH=0.0 ! -!WC_NO3/O3=0.0 +!RPG2/ISOP=0.0 ! -!WC_NO3/H2O2=0.0 +!RPG2/BIOL=0.0 ! -!WC_NO3/NO=0.0 +!RPG2/BIOH=0.0 ! -!WC_NO3/NO2=0.0 +!RPG2/MTBE=0.0 ! -!WC_NO3/NO3=+KTC5 - PJAC(:,46,5)=+TPK%KTC5(:) +!RPG2/MVK=0.0 ! -!WC_NO3/N2O5=0.0 +!RPG2/MCR=0.0 ! -!WC_NO3/HONO=0.0 +!RPG2/MGLY=0.0 ! -!WC_NO3/HNO3=0.0 +!RPG2/GLY=0.0 ! -!WC_NO3/HNO4=0.0 +!RPG2/ORA1=0.0 ! -!WC_NO3/NH3=0.0 +!RPG2/ORA2=0.0 ! -!WC_NO3/SO2=0.0 +!RPG2/ACID=0.0 ! -!WC_NO3/SULF=0.0 +!RPG2/UR28=0.0 ! -!WC_NO3/CO=0.0 +!RPG2/UR21=0.0 ! -!WC_NO3/OH=0.0 +!RPG2/URG2=0.0 ! -!WC_NO3/HO2=0.0 +!RPG2/UR26=0.0 ! -!WC_NO3/CH4=0.0 +!RPG2/RPG2=-K335*<OH> + PJAC(:,50,50)=-TPK%K335(:)*PCONC(:,15) ! -!WC_NO3/ETH=0.0 +!RPG2/RP18=0.0 ! -!WC_NO3/ALKA=0.0 +!RPG2/RPG3=+0.1191897*K334*<OH>+0.8808107*K334*<OH> + PJAC(:,50,52)=+0.1191897*TPK%K334(:)*PCONC(:,15)+0.8808107*TPK%K334(:)*PCONC(:& +&,15) ! -!WC_NO3/ALKE=0.0 +!RPG2/URG4=0.0 ! -!WC_NO3/BIO=0.0 +!RPG2/UR8=0.0 ! -!WC_NO3/ARO=0.0 +!RPG2/UR17=0.0 ! -!WC_NO3/HCHO=0.0 +!RPG2/UR7=0.0 ! -!WC_NO3/ALD=0.0 +!RPG2/RPR3=0.0 ! -!WC_NO3/KET=0.0 +!RPG2/URG6=0.0 ! -!WC_NO3/CARBO=0.0 +!RPG2/UR22=0.0 ! -!WC_NO3/ONIT=0.0 +!RPG2/URG7=0.0 ! -!WC_NO3/PAN=0.0 +!RPG2/RPR4=0.0 ! -!WC_NO3/OP1=0.0 +!RPG2/RPR7=0.0 ! -!WC_NO3/OP2=0.0 +!RPG2/RPG7=0.0 ! -!WC_NO3/ORA1=0.0 +!RPG2/URG8=0.0 ! -!WC_NO3/ORA2=0.0 +!RPG2/UR19=0.0 ! -!WC_NO3/MO2=0.0 +!RPG2/URG9=0.0 ! -!WC_NO3/ALKAP=0.0 +!RPG2/AP7=0.0 ! -!WC_NO3/ALKEP=0.0 +!RPG2/URG10=0.0 ! -!WC_NO3/BIOP=0.0 +!RPG2/RPR1=0.0 ! -!WC_NO3/PHO=0.0 +!RPG2/RPR5=0.0 ! -!WC_NO3/ADD=0.0 +!RPG2/RPR8=0.0 ! -!WC_NO3/AROP=0.0 +!RPG2/RP10=0.0 ! -!WC_NO3/CARBOP=0.0 +!RPG2/RP11=0.0 ! -!WC_NO3/OLN=0.0 +!RPG2/RP16=0.0 ! -!WC_NO3/XO2=0.0 +!RPG2/RPRL=0.0 ! -!WC_NO3/WC_O3=0.0 +!RPG2/APAN=0.0 ! -!WC_NO3/WC_H2O2=0.0 +!RPG2/PAN1=0.0 ! -!WC_NO3/WC_NO=0.0 +!RPG2/PAN2=0.0 ! -!WC_NO3/WC_NO2=0.0 +!RPG2/PAN3=0.0 ! -!WC_NO3/WC_NO3=-KTC25-KC15*<WC_SULF>-KC16*<WC_SO2> - PJAC(:,46,46)=-TPK%KTC25(:)-TPK%KC15(:)*PCONC(:,56)-TPK%KC16(:)*PCONC(:,55) +!RPG2/PAN4=0.0 ! -!WC_NO3/WC_N2O5=0.0 +!RPG2/PAN6=0.0 ! -!WC_NO3/WC_HONO=0.0 +!RPG2/PAN7=0.0 ! -!WC_NO3/WC_HNO3=0.0 +!RPG2/PAN8=0.0 ! -!WC_NO3/WC_HNO4=0.0 +!RPG2/PN10=0.0 ! -!WC_NO3/WC_NH3=0.0 +!RPG2/RO2T=+1.0000000*K260*<RO237> + PJAC(:,50,85)=+1.0000000*TPK%K260(:)*TPK%RO237(:) ! -!WC_NO3/WC_OH=0.0 +!RPG2/RO21=0.0 ! -!WC_NO3/WC_HO2=0.0 +!RPG2/RO25=0.0 ! -!WC_NO3/WC_CO2=0.0 +RETURN +END SUBROUTINE SUBJ9 ! -!WC_NO3/WC_SO2=-KC16*<WC_NO3> - PJAC(:,46,55)=-TPK%KC16(:)*PCONC(:,46) +SUBROUTINE SUBJ10 ! -!WC_NO3/WC_SULF=-KC15*<WC_NO3> - PJAC(:,46,56)=-TPK%KC15(:)*PCONC(:,46) +!Indices 51 a 55 ! -!WC_NO3/WC_HCHO=0.0 ! -!WC_NO3/WC_ORA1=0.0 +!RP18/NO=0.0 ! -!WC_NO3/WC_ORA2=0.0 +!RP18/NO2=0.0 ! -!WC_NO3/WC_MO2=0.0 +!RP18/O3=0.0 ! -!WC_NO3/WC_OP1=0.0 +!RP18/HONO=0.0 ! -!WC_NO3/WC_ASO3=0.0 +!RP18/HNO3=0.0 ! -!WC_NO3/WC_ASO4=0.0 +!RP18/HNO4=0.0 ! -!WC_NO3/WC_ASO5=0.0 +!RP18/N2O5=0.0 ! -!WC_NO3/WC_AHSO5=0.0 +!RP18/NO3=0.0 ! -!WC_NO3/WC_AHMS=0.0 +!RP18/NH3=0.0 ! -!WC_NO3/WR_O3=0.0 +!RP18/HO2=0.0 ! -!WC_NO3/WR_H2O2=0.0 +!RP18/CO=0.0 ! -!WC_NO3/WR_NO=0.0 +!RP18/H2O2=0.0 ! -!WC_NO3/WR_NO2=0.0 +!RP18/SO2=0.0 ! -!WC_NO3/WR_NO3=0.0 +!RP18/H2SO4=0.0 ! -!WC_NO3/WR_N2O5=0.0 +!RP18/OH=+0.4437492*K335*<RPG2>-K337*<RP18> + PJAC(:,51,15)=+0.4437492*TPK%K335(:)*PCONC(:,50)-TPK%K337(:)*PCONC(:,51) ! -!WC_NO3/WR_HONO=0.0 +!RP18/ETHE=0.0 ! -!WC_NO3/WR_HNO3=0.0 +!RP18/OLEL=0.0 ! -!WC_NO3/WR_HNO4=0.0 +!RP18/OLEH=0.0 ! -!WC_NO3/WR_NH3=0.0 +!RP18/ALKL=0.0 ! -!WC_NO3/WR_OH=0.0 +!RP18/ALKM=0.0 ! -!WC_NO3/WR_HO2=0.0 +!RP18/ALKH=0.0 ! -!WC_NO3/WR_CO2=0.0 +!RP18/AROH=0.0 ! -!WC_NO3/WR_SO2=0.0 +!RP18/AROL=0.0 ! -!WC_NO3/WR_SULF=0.0 +!RP18/AROO=0.0 ! -!WC_NO3/WR_HCHO=0.0 +!RP18/ARAL=0.0 ! -!WC_NO3/WR_ORA1=0.0 +!RP18/ARAC=0.0 ! -!WC_NO3/WR_ORA2=0.0 +!RP18/PAH=0.0 ! -!WC_NO3/WR_MO2=0.0 +!RP18/HCHO=0.0 ! -!WC_NO3/WR_OP1=0.0 +!RP18/ALD2=0.0 ! -!WC_NO3/WR_ASO3=0.0 +!RP18/KETL=0.0 ! -!WC_NO3/WR_ASO4=0.0 +!RP18/KETH=0.0 ! -!WC_NO3/WR_ASO5=0.0 +!RP18/MEOH=0.0 ! -!WC_NO3/WR_AHSO5=0.0 +!RP18/ETOH=0.0 ! -!WC_NO3/WR_AHMS=0.0 +!RP18/ALCH=0.0 ! -!WC_N2O5/O3=0.0 +!RP18/ISOP=0.0 ! -!WC_N2O5/H2O2=0.0 +!RP18/BIOL=0.0 ! -!WC_N2O5/NO=0.0 +!RP18/BIOH=0.0 ! -!WC_N2O5/NO2=0.0 +!RP18/MTBE=0.0 ! -!WC_N2O5/NO3=0.0 +!RP18/MVK=0.0 ! -!WC_N2O5/N2O5=+KTC6 - PJAC(:,47,6)=+TPK%KTC6(:) +!RP18/MCR=0.0 ! -!WC_N2O5/HONO=0.0 +!RP18/MGLY=0.0 ! -!WC_N2O5/HNO3=0.0 +!RP18/GLY=0.0 ! -!WC_N2O5/HNO4=0.0 +!RP18/ORA1=0.0 ! -!WC_N2O5/NH3=0.0 +!RP18/ORA2=0.0 ! -!WC_N2O5/SO2=0.0 +!RP18/ACID=0.0 ! -!WC_N2O5/SULF=0.0 +!RP18/UR28=0.0 ! -!WC_N2O5/CO=0.0 +!RP18/UR21=0.0 ! -!WC_N2O5/OH=0.0 +!RP18/URG2=0.0 ! -!WC_N2O5/HO2=0.0 +!RP18/UR26=0.0 ! -!WC_N2O5/CH4=0.0 +!RP18/RPG2=+0.4437492*K335*<OH> + PJAC(:,51,50)=+0.4437492*TPK%K335(:)*PCONC(:,15) ! -!WC_N2O5/ETH=0.0 +!RP18/RP18=-K337*<OH> + PJAC(:,51,51)=-TPK%K337(:)*PCONC(:,15) ! -!WC_N2O5/ALKA=0.0 +!RP18/RPG3=0.0 ! -!WC_N2O5/ALKE=0.0 +!RP18/URG4=0.0 ! -!WC_N2O5/BIO=0.0 +!RP18/UR8=0.0 ! -!WC_N2O5/ARO=0.0 +!RP18/UR17=0.0 ! -!WC_N2O5/HCHO=0.0 +!RP18/UR7=0.0 ! -!WC_N2O5/ALD=0.0 +!RP18/RPR3=0.0 ! -!WC_N2O5/KET=0.0 +!RP18/URG6=0.0 ! -!WC_N2O5/CARBO=0.0 +!RP18/UR22=0.0 ! -!WC_N2O5/ONIT=0.0 +!RP18/URG7=0.0 ! -!WC_N2O5/PAN=0.0 +!RP18/RPR4=0.0 ! -!WC_N2O5/OP1=0.0 +!RP18/RPR7=0.0 ! -!WC_N2O5/OP2=0.0 +!RP18/RPG7=0.0 ! -!WC_N2O5/ORA1=0.0 +!RP18/URG8=0.0 ! -!WC_N2O5/ORA2=0.0 +!RP18/UR19=0.0 ! -!WC_N2O5/MO2=0.0 +!RP18/URG9=0.0 ! -!WC_N2O5/ALKAP=0.0 +!RP18/AP7=0.0 ! -!WC_N2O5/ALKEP=0.0 +!RP18/URG10=0.0 ! -!WC_N2O5/BIOP=0.0 +!RP18/RPR1=0.0 ! -!WC_N2O5/PHO=0.0 +!RP18/RPR5=0.0 ! -!WC_N2O5/ADD=0.0 +!RP18/RPR8=0.0 ! -!WC_N2O5/AROP=0.0 +!RP18/RP10=0.0 ! -!WC_N2O5/CARBOP=0.0 +!RP18/RP11=0.0 ! -!WC_N2O5/OLN=0.0 +!RP18/RP16=0.0 ! -!WC_N2O5/XO2=0.0 +!RP18/RPRL=0.0 ! -!WC_N2O5/WC_O3=0.0 +!RP18/APAN=0.0 ! -!WC_N2O5/WC_H2O2=0.0 +!RP18/PAN1=0.0 ! -!WC_N2O5/WC_NO=0.0 +!RP18/PAN2=0.0 ! -!WC_N2O5/WC_NO2=0.0 +!RP18/PAN3=0.0 ! -!WC_N2O5/WC_NO3=0.0 +!RP18/PAN4=0.0 ! -!WC_N2O5/WC_N2O5=-KTC26-KC14 - PJAC(:,47,47)=-TPK%KTC26(:)-TPK%KC14(:) +!RP18/PAN6=0.0 ! -!WC_N2O5/WC_HONO=0.0 +!RP18/PAN7=0.0 ! -!WC_N2O5/WC_HNO3=0.0 +!RP18/PAN8=0.0 ! -!WC_N2O5/WC_HNO4=0.0 +!RP18/PN10=0.0 ! -!WC_N2O5/WC_NH3=0.0 +!RP18/RO2T=0.0 ! -!WC_N2O5/WC_OH=0.0 +!RP18/RO21=0.0 ! -!WC_N2O5/WC_HO2=0.0 +!RP18/RO25=0.0 ! -!WC_N2O5/WC_CO2=0.0 +!RPG3/NO=+0.3000000*K231*<RO233>+0.3000000*K252*<RO236> + PJAC(:,52,1)=+0.3000000*TPK%K231(:)*TPK%RO233(:)+0.3000000*TPK%K252(:)*TPK%RO2& +&36(:) ! -!WC_N2O5/WC_SO2=0.0 +!RPG3/NO2=0.0 ! -!WC_N2O5/WC_SULF=0.0 +!RPG3/O3=0.0 ! -!WC_N2O5/WC_HCHO=0.0 +!RPG3/HONO=0.0 ! -!WC_N2O5/WC_ORA1=0.0 +!RPG3/HNO3=0.0 ! -!WC_N2O5/WC_ORA2=0.0 +!RPG3/HNO4=0.0 ! -!WC_N2O5/WC_MO2=0.0 +!RPG3/N2O5=0.0 ! -!WC_N2O5/WC_OP1=0.0 +!RPG3/NO3=0.0 ! -!WC_N2O5/WC_ASO3=0.0 +!RPG3/NH3=0.0 ! -!WC_N2O5/WC_ASO4=0.0 +!RPG3/HO2=+0.3000000*K233*<RO233>+0.3000000*K254*<RO236> + PJAC(:,52,10)=+0.3000000*TPK%K233(:)*TPK%RO233(:)+0.3000000*TPK%K254(:)*TPK%RO& +&236(:) ! -!WC_N2O5/WC_ASO5=0.0 +!RPG3/CO=0.0 ! -!WC_N2O5/WC_AHSO5=0.0 +!RPG3/H2O2=0.0 ! -!WC_N2O5/WC_AHMS=0.0 +!RPG3/SO2=0.0 ! -!WC_N2O5/WR_O3=0.0 +!RPG3/H2SO4=0.0 ! -!WC_N2O5/WR_H2O2=0.0 +!RPG3/OH=-K334*<RPG3> + PJAC(:,52,15)=-TPK%K334(:)*PCONC(:,52) ! -!WC_N2O5/WR_NO=0.0 +!RPG3/ETHE=0.0 ! -!WC_N2O5/WR_NO2=0.0 +!RPG3/OLEL=0.0 ! -!WC_N2O5/WR_NO3=0.0 +!RPG3/OLEH=0.0 ! -!WC_N2O5/WR_N2O5=0.0 +!RPG3/ALKL=0.0 ! -!WC_N2O5/WR_HONO=0.0 +!RPG3/ALKM=0.0 ! -!WC_N2O5/WR_HNO3=0.0 +!RPG3/ALKH=0.0 ! -!WC_N2O5/WR_HNO4=0.0 +!RPG3/AROH=0.0 ! -!WC_N2O5/WR_NH3=0.0 +!RPG3/AROL=0.0 ! -!WC_N2O5/WR_OH=0.0 +!RPG3/AROO=0.0 ! -!WC_N2O5/WR_HO2=0.0 +!RPG3/ARAL=0.0 ! -!WC_N2O5/WR_CO2=0.0 +!RPG3/ARAC=0.0 ! -!WC_N2O5/WR_SO2=0.0 +!RPG3/PAH=0.0 ! -!WC_N2O5/WR_SULF=0.0 +!RPG3/HCHO=0.0 ! -!WC_N2O5/WR_HCHO=0.0 +!RPG3/ALD2=0.0 ! -!WC_N2O5/WR_ORA1=0.0 +!RPG3/KETL=0.0 ! -!WC_N2O5/WR_ORA2=0.0 +!RPG3/KETH=0.0 ! -!WC_N2O5/WR_MO2=0.0 +!RPG3/MEOH=0.0 ! -!WC_N2O5/WR_OP1=0.0 +!RPG3/ETOH=0.0 ! -!WC_N2O5/WR_ASO3=0.0 +!RPG3/ALCH=0.0 ! -!WC_N2O5/WR_ASO4=0.0 +!RPG3/ISOP=0.0 ! -!WC_N2O5/WR_ASO5=0.0 +!RPG3/BIOL=0.0 ! -!WC_N2O5/WR_AHSO5=0.0 +!RPG3/BIOH=0.0 ! -!WC_N2O5/WR_AHMS=0.0 +!RPG3/MTBE=0.0 ! -!WC_HONO/O3=0.0 +!RPG3/MVK=0.0 ! -!WC_HONO/H2O2=0.0 +!RPG3/MCR=0.0 ! -!WC_HONO/NO=0.0 +!RPG3/MGLY=0.0 ! -!WC_HONO/NO2=0.0 +!RPG3/GLY=0.0 ! -!WC_HONO/NO3=0.0 +!RPG3/ORA1=0.0 ! -!WC_HONO/N2O5=0.0 +!RPG3/ORA2=0.0 ! -!WC_HONO/HONO=+KTC7 - PJAC(:,48,7)=+TPK%KTC7(:) +!RPG3/ACID=0.0 ! -!WC_HONO/HNO3=0.0 +!RPG3/UR28=0.0 ! -!WC_HONO/HNO4=0.0 +!RPG3/UR21=0.0 ! -!WC_HONO/NH3=0.0 +!RPG3/URG2=0.0 ! -!WC_HONO/SO2=0.0 +!RPG3/UR26=0.0 ! -!WC_HONO/SULF=0.0 +!RPG3/RPG2=0.0 ! -!WC_HONO/CO=0.0 +!RPG3/RP18=0.0 ! -!WC_HONO/OH=0.0 +!RPG3/RPG3=-K334*<OH> + PJAC(:,52,52)=-TPK%K334(:)*PCONC(:,15) ! -!WC_HONO/HO2=0.0 +!RPG3/URG4=0.0 ! -!WC_HONO/CH4=0.0 +!RPG3/UR8=0.0 ! -!WC_HONO/ETH=0.0 +!RPG3/UR17=0.0 ! -!WC_HONO/ALKA=0.0 +!RPG3/UR7=0.0 ! -!WC_HONO/ALKE=0.0 +!RPG3/RPR3=0.0 ! -!WC_HONO/BIO=0.0 +!RPG3/URG6=0.0 ! -!WC_HONO/ARO=0.0 +!RPG3/UR22=0.0 ! -!WC_HONO/HCHO=0.0 +!RPG3/URG7=0.0 ! -!WC_HONO/ALD=0.0 +!RPG3/RPR4=0.0 ! -!WC_HONO/KET=0.0 +!RPG3/RPR7=0.0 ! -!WC_HONO/CARBO=0.0 +!RPG3/RPG7=0.0 ! -!WC_HONO/ONIT=0.0 +!RPG3/URG8=0.0 ! -!WC_HONO/PAN=0.0 +!RPG3/UR19=0.0 ! -!WC_HONO/OP1=0.0 +!RPG3/URG9=0.0 ! -!WC_HONO/OP2=0.0 +!RPG3/AP7=0.0 ! -!WC_HONO/ORA1=0.0 +!RPG3/URG10=0.0 ! -!WC_HONO/ORA2=0.0 +!RPG3/RPR1=0.0 ! -!WC_HONO/MO2=0.0 +!RPG3/RPR5=0.0 ! -!WC_HONO/ALKAP=0.0 +!RPG3/RPR8=0.0 ! -!WC_HONO/ALKEP=0.0 +!RPG3/RP10=0.0 ! -!WC_HONO/BIOP=0.0 +!RPG3/RP11=0.0 ! -!WC_HONO/PHO=0.0 +!RPG3/RP16=0.0 ! -!WC_HONO/ADD=0.0 +!RPG3/RPRL=0.0 ! -!WC_HONO/AROP=0.0 +!RPG3/APAN=0.0 ! -!WC_HONO/CARBOP=0.0 +!RPG3/PAN1=0.0 ! -!WC_HONO/OLN=0.0 +!RPG3/PAN2=0.0 ! -!WC_HONO/XO2=0.0 +!RPG3/PAN3=0.0 ! -!WC_HONO/WC_O3=0.0 +!RPG3/PAN4=0.0 ! -!WC_HONO/WC_H2O2=0.0 +!RPG3/PAN6=0.0 ! -!WC_HONO/WC_NO=0.0 +!RPG3/PAN7=0.0 ! -!WC_HONO/WC_NO2=0.0 +!RPG3/PAN8=0.0 ! -!WC_HONO/WC_NO3=0.0 +!RPG3/PN10=0.0 ! -!WC_HONO/WC_N2O5=0.0 +!RPG3/RO2T=+1.0000000*K232*<RO233>+1.0000000*K253*<RO236> + PJAC(:,52,85)=+1.0000000*TPK%K232(:)*TPK%RO233(:)+1.0000000*TPK%K253(:)*TPK%RO& +&236(:) ! -!WC_HONO/WC_HONO=-KTC27-KC8*<WC_OH> - PJAC(:,48,48)=-TPK%KTC27(:)-TPK%KC8(:)*PCONC(:,52) +!RPG3/RO21=0.0 ! -!WC_HONO/WC_HNO3=0.0 +!RPG3/RO25=0.0 ! -!WC_HONO/WC_HNO4=+KC11 - PJAC(:,48,50)=+TPK%KC11(:) +!URG4/NO=0.0 ! -!WC_HONO/WC_NH3=0.0 +!URG4/NO2=0.0 ! -!WC_HONO/WC_OH=-KC8*<WC_HONO> - PJAC(:,48,52)=-TPK%KC8(:)*PCONC(:,48) +!URG4/O3=-02*K086*<BIOL> + PJAC(:,53,3)=-02*TPK%K086(:)*PCONC(:,36) ! -!WC_HONO/WC_HO2=0.0 +!URG4/HONO=0.0 ! -!WC_HONO/WC_CO2=0.0 +!URG4/HNO3=0.0 ! -!WC_HONO/WC_SO2=0.0 +!URG4/HNO4=0.0 ! -!WC_HONO/WC_SULF=0.0 +!URG4/N2O5=0.0 ! -!WC_HONO/WC_HCHO=0.0 +!URG4/NO3=0.0 ! -!WC_HONO/WC_ORA1=0.0 +!URG4/NH3=0.0 ! -!WC_HONO/WC_ORA2=0.0 +!URG4/HO2=+1.0000000*K318*<RO256>+1.0000000*K332*<RO257> + PJAC(:,53,10)=+1.0000000*TPK%K318(:)*TPK%RO256(:)+1.0000000*TPK%K332(:)*TPK%RO& +&257(:) ! -!WC_HONO/WC_MO2=0.0 +!URG4/CO=0.0 ! -!WC_HONO/WC_OP1=0.0 +!URG4/H2O2=0.0 ! -!WC_HONO/WC_ASO3=0.0 +!URG4/SO2=0.0 ! -!WC_HONO/WC_ASO4=0.0 +!URG4/H2SO4=0.0 ! -!WC_HONO/WC_ASO5=0.0 +!URG4/OH=0.0 ! -!WC_HONO/WC_AHSO5=0.0 +!URG4/ETHE=0.0 ! -!WC_HONO/WC_AHMS=0.0 +!URG4/OLEL=0.0 ! -!WC_HONO/WR_O3=0.0 +!URG4/OLEH=0.0 ! -!WC_HONO/WR_H2O2=0.0 +!URG4/ALKL=0.0 ! -!WC_HONO/WR_NO=0.0 +!URG4/ALKM=0.0 ! -!WC_HONO/WR_NO2=0.0 +!URG4/ALKH=0.0 ! -!WC_HONO/WR_NO3=0.0 +!URG4/AROH=0.0 ! -!WC_HONO/WR_N2O5=0.0 +!URG4/AROL=0.0 ! -!WC_HONO/WR_HONO=0.0 +!URG4/AROO=0.0 ! -!WC_HONO/WR_HNO3=0.0 +!URG4/ARAL=0.0 ! -!WC_HONO/WR_HNO4=0.0 +!URG4/ARAC=0.0 ! -!WC_HONO/WR_NH3=0.0 +!URG4/PAH=0.0 ! -!WC_HONO/WR_OH=0.0 +!URG4/HCHO=0.0 ! -!WC_HONO/WR_HO2=0.0 +!URG4/ALD2=0.0 ! -!WC_HONO/WR_CO2=0.0 +!URG4/KETL=0.0 ! -!WC_HONO/WR_SO2=0.0 +!URG4/KETH=0.0 ! -!WC_HONO/WR_SULF=0.0 +!URG4/MEOH=0.0 ! -!WC_HONO/WR_HCHO=0.0 +!URG4/ETOH=0.0 ! -!WC_HONO/WR_ORA1=0.0 +!URG4/ALCH=0.0 ! -!WC_HONO/WR_ORA2=0.0 +!URG4/ISOP=0.0 ! -!WC_HONO/WR_MO2=0.0 +!URG4/BIOL=-02*K086*<O3> + PJAC(:,53,36)=-02*TPK%K086(:)*PCONC(:,3) ! -!WC_HONO/WR_OP1=0.0 +!URG4/BIOH=0.0 ! -!WC_HONO/WR_ASO3=0.0 +!URG4/MTBE=0.0 ! -!WC_HONO/WR_ASO4=0.0 +!URG4/MVK=0.0 ! -!WC_HONO/WR_ASO5=0.0 +!URG4/MCR=0.0 ! -!WC_HONO/WR_AHSO5=0.0 +!URG4/MGLY=0.0 ! -!WC_HONO/WR_AHMS=0.0 +!URG4/GLY=0.0 ! -!WC_HNO3/O3=0.0 +!URG4/ORA1=0.0 ! -!WC_HNO3/H2O2=0.0 +!URG4/ORA2=0.0 ! -!WC_HNO3/NO=0.0 +!URG4/ACID=0.0 ! -!WC_HNO3/NO2=0.0 +!URG4/UR28=0.0 ! -!WC_HNO3/NO3=0.0 +!URG4/UR21=0.0 ! -!WC_HNO3/N2O5=0.0 +!URG4/URG2=0.0 ! -!WC_HNO3/HONO=0.0 +!URG4/UR26=0.0 ! -!WC_HNO3/HNO3=+KTC8 - PJAC(:,49,8)=+TPK%KTC8(:) +!URG4/RPG2=0.0 ! -!WC_HNO3/HNO4=0.0 +!URG4/RP18=0.0 ! -!WC_HNO3/NH3=0.0 +!URG4/RPG3=0.0 ! -!WC_HNO3/SO2=0.0 +!URG4/URG4=-K351 + PJAC(:,53,53)=-TPK%K351(:) ! -!WC_HNO3/SULF=0.0 +!URG4/UR8=0.0 ! -!WC_HNO3/CO=0.0 +!URG4/UR17=0.0 ! -!WC_HNO3/OH=0.0 +!URG4/UR7=0.0 ! -!WC_HNO3/HO2=0.0 +!URG4/RPR3=0.0 ! -!WC_HNO3/CH4=0.0 +!URG4/URG6=0.0 ! -!WC_HNO3/ETH=0.0 +!URG4/UR22=0.0 ! -!WC_HNO3/ALKA=0.0 +!URG4/URG7=0.0 ! -!WC_HNO3/ALKE=0.0 +!URG4/RPR4=0.0 ! -!WC_HNO3/BIO=0.0 +!URG4/RPR7=0.0 ! -!WC_HNO3/ARO=0.0 +!URG4/RPG7=0.0 ! -!WC_HNO3/HCHO=0.0 +!URG4/URG8=0.0 ! -!WC_HNO3/ALD=0.0 +!URG4/UR19=0.0 ! -!WC_HNO3/KET=0.0 +!URG4/URG9=0.0 ! -!WC_HNO3/CARBO=0.0 +!URG4/AP7=0.0 ! -!WC_HNO3/ONIT=0.0 +!URG4/URG10=0.0 ! -!WC_HNO3/PAN=0.0 +!URG4/RPR1=0.0 ! -!WC_HNO3/OP1=0.0 +!URG4/RPR5=0.0 ! -!WC_HNO3/OP2=0.0 +!URG4/RPR8=0.0 ! -!WC_HNO3/ORA1=0.0 +!URG4/RP10=0.0 ! -!WC_HNO3/ORA2=0.0 +!URG4/RP11=0.0 ! -!WC_HNO3/MO2=0.0 +!URG4/RP16=0.0 ! -!WC_HNO3/ALKAP=0.0 +!URG4/RPRL=0.0 ! -!WC_HNO3/ALKEP=0.0 +!URG4/APAN=0.0 ! -!WC_HNO3/BIOP=0.0 +!URG4/PAN1=0.0 ! -!WC_HNO3/PHO=0.0 +!URG4/PAN2=0.0 ! -!WC_HNO3/ADD=0.0 +!URG4/PAN3=0.0 ! -!WC_HNO3/AROP=0.0 +!URG4/PAN4=0.0 ! -!WC_HNO3/CARBOP=0.0 +!URG4/PAN6=0.0 ! -!WC_HNO3/OLN=0.0 +!URG4/PAN7=0.0 ! -!WC_HNO3/XO2=0.0 +!URG4/PAN8=0.0 ! -!WC_HNO3/WC_O3=0.0 +!URG4/PN10=0.0 ! -!WC_HNO3/WC_H2O2=0.0 +!URG4/RO2T=0.0 ! -!WC_HNO3/WC_NO=0.0 +!URG4/RO21=0.0 ! -!WC_HNO3/WC_NO2=0.0 +!URG4/RO25=0.0 ! -!WC_HNO3/WC_NO3=+KC15*<WC_SULF>+KC16*<WC_SO2> - PJAC(:,49,46)=+TPK%KC15(:)*PCONC(:,56)+TPK%KC16(:)*PCONC(:,55) +!UR8/NO=0.0 ! -!WC_HNO3/WC_N2O5=+KC14+KC14 - PJAC(:,49,47)=+TPK%KC14(:)+TPK%KC14(:) +!UR8/NO2=0.0 ! -!WC_HNO3/WC_HONO=0.0 +!UR8/O3=+0.055*K090*<BIOH> + PJAC(:,54,3)=+0.055*TPK%K090(:)*PCONC(:,37) ! -!WC_HNO3/WC_HNO3=-KTC28-KC13 - PJAC(:,49,49)=-TPK%KTC28(:)-TPK%KC13(:) +!UR8/HONO=0.0 ! -!WC_HNO3/WC_HNO4=+KC12*<WC_SO2> - PJAC(:,49,50)=+TPK%KC12(:)*PCONC(:,55) +!UR8/HNO3=0.0 ! -!WC_HNO3/WC_NH3=0.0 +!UR8/HNO4=0.0 ! -!WC_HNO3/WC_OH=0.0 +!UR8/N2O5=0.0 ! -!WC_HNO3/WC_HO2=0.0 +!UR8/NO3=0.0 ! -!WC_HNO3/WC_CO2=0.0 +!UR8/NH3=0.0 ! -!WC_HNO3/WC_SO2=+KC12*<WC_HNO4>+KC16*<WC_NO3> - PJAC(:,49,55)=+TPK%KC12(:)*PCONC(:,50)+TPK%KC16(:)*PCONC(:,46) +!UR8/HO2=0.0 ! -!WC_HNO3/WC_SULF=+KC15*<WC_NO3> - PJAC(:,49,56)=+TPK%KC15(:)*PCONC(:,46) +!UR8/CO=0.0 ! -!WC_HNO3/WC_HCHO=0.0 +!UR8/H2O2=0.0 ! -!WC_HNO3/WC_ORA1=0.0 +!UR8/SO2=0.0 ! -!WC_HNO3/WC_ORA2=0.0 +!UR8/H2SO4=0.0 ! -!WC_HNO3/WC_MO2=0.0 +!UR8/OH=0.0 ! -!WC_HNO3/WC_OP1=0.0 +!UR8/ETHE=0.0 ! -!WC_HNO3/WC_ASO3=0.0 +!UR8/OLEL=0.0 ! -!WC_HNO3/WC_ASO4=0.0 +!UR8/OLEH=0.0 ! -!WC_HNO3/WC_ASO5=0.0 +!UR8/ALKL=0.0 ! -!WC_HNO3/WC_AHSO5=0.0 +!UR8/ALKM=0.0 ! -!WC_HNO3/WC_AHMS=0.0 +!UR8/ALKH=0.0 ! -!WC_HNO3/WR_O3=0.0 +!UR8/AROH=0.0 ! -!WC_HNO3/WR_H2O2=0.0 +!UR8/AROL=0.0 ! -!WC_HNO3/WR_NO=0.0 +!UR8/AROO=0.0 ! -!WC_HNO3/WR_NO2=0.0 +!UR8/ARAL=0.0 ! -!WC_HNO3/WR_NO3=0.0 +!UR8/ARAC=0.0 ! -!WC_HNO3/WR_N2O5=0.0 +!UR8/PAH=0.0 ! -!WC_HNO3/WR_HONO=0.0 +!UR8/HCHO=0.0 ! -!WC_HNO3/WR_HNO3=0.0 +!UR8/ALD2=0.0 ! -!WC_HNO3/WR_HNO4=0.0 +!UR8/KETL=0.0 ! -!WC_HNO3/WR_NH3=0.0 +!UR8/KETH=0.0 ! -!WC_HNO3/WR_OH=0.0 +!UR8/MEOH=0.0 ! -!WC_HNO3/WR_HO2=0.0 +!UR8/ETOH=0.0 ! -!WC_HNO3/WR_CO2=0.0 +!UR8/ALCH=0.0 ! -!WC_HNO3/WR_SO2=0.0 +!UR8/ISOP=0.0 ! -!WC_HNO3/WR_SULF=0.0 +!UR8/BIOL=0.0 ! -!WC_HNO3/WR_HCHO=0.0 +!UR8/BIOH=+0.055*K090*<O3> + PJAC(:,54,37)=+0.055*TPK%K090(:)*PCONC(:,3) ! -!WC_HNO3/WR_ORA1=0.0 +!UR8/MTBE=0.0 ! -!WC_HNO3/WR_ORA2=0.0 +!UR8/MVK=0.0 ! -!WC_HNO3/WR_MO2=0.0 +!UR8/MCR=0.0 ! -!WC_HNO3/WR_OP1=0.0 +!UR8/MGLY=0.0 ! -!WC_HNO3/WR_ASO3=0.0 +!UR8/GLY=0.0 ! -!WC_HNO3/WR_ASO4=0.0 +!UR8/ORA1=0.0 ! -!WC_HNO3/WR_ASO5=0.0 +!UR8/ORA2=0.0 ! -!WC_HNO3/WR_AHSO5=0.0 +!UR8/ACID=0.0 ! -!WC_HNO3/WR_AHMS=0.0 +!UR8/UR28=0.0 ! -!WC_HNO4/O3=0.0 +!UR8/UR21=0.0 ! -!WC_HNO4/H2O2=0.0 +!UR8/URG2=0.0 ! -!WC_HNO4/NO=0.0 +!UR8/UR26=0.0 ! -!WC_HNO4/NO2=0.0 +!UR8/RPG2=0.0 ! -!WC_HNO4/NO3=0.0 +!UR8/RP18=0.0 ! -!WC_HNO4/N2O5=0.0 +!UR8/RPG3=0.0 ! -!WC_HNO4/HONO=0.0 +!UR8/URG4=0.0 ! -!WC_HNO4/HNO3=0.0 +!UR8/UR8=-K358 + PJAC(:,54,54)=-TPK%K358(:) ! -!WC_HNO4/HNO4=+KTC9 - PJAC(:,50,9)=+TPK%KTC9(:) +!UR8/UR17=0.0 ! -!WC_HNO4/NH3=0.0 +!UR8/UR7=0.0 ! -!WC_HNO4/SO2=0.0 +!UR8/RPR3=0.0 ! -!WC_HNO4/SULF=0.0 +!UR8/URG6=0.0 ! -!WC_HNO4/CO=0.0 +!UR8/UR22=0.0 ! -!WC_HNO4/OH=0.0 +!UR8/URG7=0.0 ! -!WC_HNO4/HO2=0.0 +!UR8/RPR4=0.0 ! -!WC_HNO4/CH4=0.0 +!UR8/RPR7=0.0 ! -!WC_HNO4/ETH=0.0 +!UR8/RPG7=0.0 ! -!WC_HNO4/ALKA=0.0 +!UR8/URG8=0.0 ! -!WC_HNO4/ALKE=0.0 +!UR8/UR19=0.0 ! -!WC_HNO4/BIO=0.0 +!UR8/URG9=0.0 ! -!WC_HNO4/ARO=0.0 +!UR8/AP7=0.0 ! -!WC_HNO4/HCHO=0.0 +!UR8/URG10=0.0 ! -!WC_HNO4/ALD=0.0 +!UR8/RPR1=0.0 ! -!WC_HNO4/KET=0.0 +!UR8/RPR5=0.0 ! -!WC_HNO4/CARBO=0.0 +!UR8/RPR8=0.0 ! -!WC_HNO4/ONIT=0.0 +!UR8/RP10=0.0 ! -!WC_HNO4/PAN=0.0 +!UR8/RP11=0.0 ! -!WC_HNO4/OP1=0.0 +!UR8/RP16=0.0 ! -!WC_HNO4/OP2=0.0 +!UR8/RPRL=0.0 ! -!WC_HNO4/ORA1=0.0 +!UR8/APAN=0.0 ! -!WC_HNO4/ORA2=0.0 +!UR8/PAN1=0.0 ! -!WC_HNO4/MO2=0.0 +!UR8/PAN2=0.0 ! -!WC_HNO4/ALKAP=0.0 +!UR8/PAN3=0.0 ! -!WC_HNO4/ALKEP=0.0 +!UR8/PAN4=0.0 ! -!WC_HNO4/BIOP=0.0 +!UR8/PAN6=0.0 ! -!WC_HNO4/PHO=0.0 +!UR8/PAN7=0.0 ! -!WC_HNO4/ADD=0.0 +!UR8/PAN8=0.0 ! -!WC_HNO4/AROP=0.0 +!UR8/PN10=0.0 ! -!WC_HNO4/CARBOP=0.0 +!UR8/RO2T=0.0 ! -!WC_HNO4/OLN=0.0 +!UR8/RO21=0.0 ! -!WC_HNO4/XO2=0.0 +!UR8/RO25=0.0 ! -!WC_HNO4/WC_O3=0.0 +!UR17/NO=+1.0000000*K204*<RO226> + PJAC(:,55,1)=+1.0000000*TPK%K204(:)*TPK%RO226(:) ! -!WC_HNO4/WC_H2O2=0.0 +!UR17/NO2=0.0 ! -!WC_HNO4/WC_NO=0.0 +!UR17/O3=0.0 ! -!WC_HNO4/WC_NO2=+KC9*<WC_HO2> - PJAC(:,50,45)=+TPK%KC9(:)*PCONC(:,53) +!UR17/HONO=0.0 ! -!WC_HNO4/WC_NO3=0.0 +!UR17/HNO3=0.0 ! -!WC_HNO4/WC_N2O5=0.0 +!UR17/HNO4=0.0 ! -!WC_HNO4/WC_HONO=0.0 +!UR17/N2O5=0.0 ! -!WC_HNO4/WC_HNO3=0.0 +!UR17/NO3=0.0 ! -!WC_HNO4/WC_HNO4=-KTC29-KC10-KC11-KC12*<WC_SO2> - PJAC(:,50,50)=-TPK%KTC29(:)-TPK%KC10(:)-TPK%KC11(:)-TPK%KC12(:)*PCONC(:,55) +!UR17/NH3=0.0 ! -!WC_HNO4/WC_NH3=0.0 +!UR17/HO2=+1.0000000*K206*<RO226> + PJAC(:,55,10)=+1.0000000*TPK%K206(:)*TPK%RO226(:) ! -!WC_HNO4/WC_OH=0.0 +!UR17/CO=0.0 ! -!WC_HNO4/WC_HO2=+KC9*<WC_NO2> - PJAC(:,50,53)=+TPK%KC9(:)*PCONC(:,45) +!UR17/H2O2=0.0 ! -!WC_HNO4/WC_CO2=0.0 +!UR17/SO2=0.0 ! -!WC_HNO4/WC_SO2=-KC12*<WC_HNO4> - PJAC(:,50,55)=-TPK%KC12(:)*PCONC(:,50) +!UR17/H2SO4=0.0 ! -!WC_HNO4/WC_SULF=0.0 +!UR17/OH=0.0 ! -!WC_HNO4/WC_HCHO=0.0 +!UR17/ETHE=0.0 ! -!WC_HNO4/WC_ORA1=0.0 +!UR17/OLEL=0.0 ! -!WC_HNO4/WC_ORA2=0.0 +!UR17/OLEH=0.0 ! -!WC_HNO4/WC_MO2=0.0 +!UR17/ALKL=0.0 ! -!WC_HNO4/WC_OP1=0.0 +!UR17/ALKM=0.0 ! -!WC_HNO4/WC_ASO3=0.0 +!UR17/ALKH=0.0 ! -!WC_HNO4/WC_ASO4=0.0 +!UR17/AROH=0.0 ! -!WC_HNO4/WC_ASO5=0.0 +!UR17/AROL=0.0 ! -!WC_HNO4/WC_AHSO5=0.0 +!UR17/AROO=0.0 ! -!WC_HNO4/WC_AHMS=0.0 +!UR17/ARAL=0.0 ! -!WC_HNO4/WR_O3=0.0 +!UR17/ARAC=0.0 ! -!WC_HNO4/WR_H2O2=0.0 +!UR17/PAH=0.0 ! -!WC_HNO4/WR_NO=0.0 +!UR17/HCHO=0.0 ! -!WC_HNO4/WR_NO2=0.0 +!UR17/ALD2=0.0 ! -!WC_HNO4/WR_NO3=0.0 +!UR17/KETL=0.0 ! -!WC_HNO4/WR_N2O5=0.0 +!UR17/KETH=0.0 ! -!WC_HNO4/WR_HONO=0.0 +!UR17/MEOH=0.0 ! -!WC_HNO4/WR_HNO3=0.0 +!UR17/ETOH=0.0 ! -!WC_HNO4/WR_HNO4=0.0 +!UR17/ALCH=0.0 ! -!WC_HNO4/WR_NH3=0.0 +!UR17/ISOP=0.0 ! -!WC_HNO4/WR_OH=0.0 +!UR17/BIOL=0.0 ! -!WC_HNO4/WR_HO2=0.0 +!UR17/BIOH=0.0 ! -!WC_HNO4/WR_CO2=0.0 +!UR17/MTBE=0.0 ! -!WC_HNO4/WR_SO2=0.0 +!UR17/MVK=0.0 ! -!WC_HNO4/WR_SULF=0.0 +!UR17/MCR=0.0 ! -!WC_HNO4/WR_HCHO=0.0 +!UR17/MGLY=0.0 ! -!WC_HNO4/WR_ORA1=0.0 +!UR17/GLY=0.0 ! -!WC_HNO4/WR_ORA2=0.0 +!UR17/ORA1=0.0 ! -!WC_HNO4/WR_MO2=0.0 +!UR17/ORA2=0.0 ! -!WC_HNO4/WR_OP1=0.0 +!UR17/ACID=0.0 ! -!WC_HNO4/WR_ASO3=0.0 +!UR17/UR28=0.0 ! -!WC_HNO4/WR_ASO4=0.0 +!UR17/UR21=0.0 ! -!WC_HNO4/WR_ASO5=0.0 +!UR17/URG2=0.0 ! -!WC_HNO4/WR_AHSO5=0.0 +!UR17/UR26=0.0 ! -!WC_HNO4/WR_AHMS=0.0 +!UR17/RPG2=0.0 ! -RETURN -END SUBROUTINE SUBJ9 +!UR17/RP18=0.0 ! -SUBROUTINE SUBJ10 +!UR17/RPG3=0.0 ! -!Indices 51 a 55 +!UR17/URG4=0.0 ! +!UR17/UR8=0.0 ! -!WC_NH3/O3=0.0 +!UR17/UR17=-K359 + PJAC(:,55,55)=-TPK%K359(:) ! -!WC_NH3/H2O2=0.0 +!UR17/UR7=0.0 ! -!WC_NH3/NO=0.0 +!UR17/RPR3=0.0 ! -!WC_NH3/NO2=0.0 +!UR17/URG6=0.0 ! -!WC_NH3/NO3=0.0 +!UR17/UR22=0.0 ! -!WC_NH3/N2O5=0.0 +!UR17/URG7=0.0 ! -!WC_NH3/HONO=0.0 +!UR17/RPR4=0.0 ! -!WC_NH3/HNO3=0.0 +!UR17/RPR7=0.0 ! -!WC_NH3/HNO4=0.0 +!UR17/RPG7=0.0 ! -!WC_NH3/NH3=+KTC10 - PJAC(:,51,10)=+TPK%KTC10(:) +!UR17/URG8=0.0 ! -!WC_NH3/SO2=0.0 +!UR17/UR19=0.0 ! -!WC_NH3/SULF=0.0 +!UR17/URG9=0.0 ! -!WC_NH3/CO=0.0 +!UR17/AP7=0.0 ! -!WC_NH3/OH=0.0 +!UR17/URG10=0.0 ! -!WC_NH3/HO2=0.0 +!UR17/RPR1=0.0 ! -!WC_NH3/CH4=0.0 +!UR17/RPR5=0.0 ! -!WC_NH3/ETH=0.0 +!UR17/RPR8=0.0 ! -!WC_NH3/ALKA=0.0 +!UR17/RP10=0.0 ! -!WC_NH3/ALKE=0.0 +!UR17/RP11=0.0 ! -!WC_NH3/BIO=0.0 +!UR17/RP16=0.0 ! -!WC_NH3/ARO=0.0 +!UR17/RPRL=0.0 ! -!WC_NH3/HCHO=0.0 +!UR17/APAN=0.0 ! -!WC_NH3/ALD=0.0 +!UR17/PAN1=0.0 ! -!WC_NH3/KET=0.0 +!UR17/PAN2=0.0 ! -!WC_NH3/CARBO=0.0 +!UR17/PAN3=0.0 ! -!WC_NH3/ONIT=0.0 +!UR17/PAN4=0.0 ! -!WC_NH3/PAN=0.0 +!UR17/PAN6=0.0 ! -!WC_NH3/OP1=0.0 +!UR17/PAN7=0.0 ! -!WC_NH3/OP2=0.0 +!UR17/PAN8=0.0 ! -!WC_NH3/ORA1=0.0 +!UR17/PN10=0.0 ! -!WC_NH3/ORA2=0.0 +!UR17/RO2T=+1.0000000*K205*<RO226> + PJAC(:,55,85)=+1.0000000*TPK%K205(:)*TPK%RO226(:) ! -!WC_NH3/MO2=0.0 +!UR17/RO21=0.0 ! -!WC_NH3/ALKAP=0.0 +!UR17/RO25=0.0 ! -!WC_NH3/ALKEP=0.0 +RETURN +END SUBROUTINE SUBJ10 ! -!WC_NH3/BIOP=0.0 +SUBROUTINE SUBJ11 ! -!WC_NH3/PHO=0.0 +!Indices 56 a 60 ! -!WC_NH3/ADD=0.0 ! -!WC_NH3/AROP=0.0 +!UR7/NO=+TPK%CFA12*K207*<RO227>+0.3*K210*<RO228> + PJAC(:,56,1)=+TPK%CFA12*TPK%K207(:)*TPK%RO227(:)+0.3*TPK%K210(:)*TPK%RO228(:) ! -!WC_NH3/CARBOP=0.0 +!UR7/NO2=0.0 ! -!WC_NH3/OLN=0.0 +!UR7/O3=+0.055*K090*<BIOH> + PJAC(:,56,3)=+0.055*TPK%K090(:)*PCONC(:,37) ! -!WC_NH3/XO2=0.0 +!UR7/HONO=0.0 ! -!WC_NH3/WC_O3=0.0 +!UR7/HNO3=0.0 ! -!WC_NH3/WC_H2O2=0.0 +!UR7/HNO4=0.0 ! -!WC_NH3/WC_NO=0.0 +!UR7/N2O5=0.0 ! -!WC_NH3/WC_NO2=0.0 +!UR7/NO3=0.0 ! -!WC_NH3/WC_NO3=0.0 +!UR7/NH3=0.0 ! -!WC_NH3/WC_N2O5=0.0 +!UR7/HO2=+0.3*K209*<RO227>+0.3*K212*<RO228> + PJAC(:,56,10)=+0.3*TPK%K209(:)*TPK%RO227(:)+0.3*TPK%K212(:)*TPK%RO228(:) ! -!WC_NH3/WC_HONO=0.0 +!UR7/CO=0.0 ! -!WC_NH3/WC_HNO3=0.0 +!UR7/H2O2=0.0 ! -!WC_NH3/WC_HNO4=0.0 +!UR7/SO2=0.0 ! -!WC_NH3/WC_NH3=-KTC30 - PJAC(:,51,51)=-TPK%KTC30(:) +!UR7/H2SO4=0.0 ! -!WC_NH3/WC_OH=0.0 +!UR7/OH=0.0 ! -!WC_NH3/WC_HO2=0.0 +!UR7/ETHE=0.0 ! -!WC_NH3/WC_CO2=0.0 +!UR7/OLEL=0.0 ! -!WC_NH3/WC_SO2=0.0 +!UR7/OLEH=0.0 ! -!WC_NH3/WC_SULF=0.0 +!UR7/ALKL=0.0 ! -!WC_NH3/WC_HCHO=0.0 +!UR7/ALKM=0.0 ! -!WC_NH3/WC_ORA1=0.0 +!UR7/ALKH=0.0 ! -!WC_NH3/WC_ORA2=0.0 +!UR7/AROH=0.0 ! -!WC_NH3/WC_MO2=0.0 +!UR7/AROL=0.0 ! -!WC_NH3/WC_OP1=0.0 +!UR7/AROO=0.0 ! -!WC_NH3/WC_ASO3=0.0 +!UR7/ARAL=0.0 ! -!WC_NH3/WC_ASO4=0.0 +!UR7/ARAC=0.0 ! -!WC_NH3/WC_ASO5=0.0 +!UR7/PAH=0.0 ! -!WC_NH3/WC_AHSO5=0.0 +!UR7/HCHO=0.0 ! -!WC_NH3/WC_AHMS=0.0 +!UR7/ALD2=0.0 ! -!WC_NH3/WR_O3=0.0 +!UR7/KETL=0.0 ! -!WC_NH3/WR_H2O2=0.0 +!UR7/KETH=0.0 ! -!WC_NH3/WR_NO=0.0 +!UR7/MEOH=0.0 ! -!WC_NH3/WR_NO2=0.0 +!UR7/ETOH=0.0 ! -!WC_NH3/WR_NO3=0.0 +!UR7/ALCH=0.0 ! -!WC_NH3/WR_N2O5=0.0 +!UR7/ISOP=0.0 ! -!WC_NH3/WR_HONO=0.0 +!UR7/BIOL=0.0 ! -!WC_NH3/WR_HNO3=0.0 +!UR7/BIOH=+0.055*K090*<O3> + PJAC(:,56,37)=+0.055*TPK%K090(:)*PCONC(:,3) ! -!WC_NH3/WR_HNO4=0.0 +!UR7/MTBE=0.0 ! -!WC_NH3/WR_NH3=0.0 +!UR7/MVK=0.0 ! -!WC_NH3/WR_OH=0.0 +!UR7/MCR=0.0 ! -!WC_NH3/WR_HO2=0.0 +!UR7/MGLY=0.0 ! -!WC_NH3/WR_CO2=0.0 +!UR7/GLY=0.0 ! -!WC_NH3/WR_SO2=0.0 +!UR7/ORA1=0.0 ! -!WC_NH3/WR_SULF=0.0 +!UR7/ORA2=0.0 ! -!WC_NH3/WR_HCHO=0.0 +!UR7/ACID=0.0 ! -!WC_NH3/WR_ORA1=0.0 +!UR7/UR28=0.0 ! -!WC_NH3/WR_ORA2=0.0 +!UR7/UR21=0.0 ! -!WC_NH3/WR_MO2=0.0 +!UR7/URG2=0.0 ! -!WC_NH3/WR_OP1=0.0 +!UR7/UR26=0.0 ! -!WC_NH3/WR_ASO3=0.0 +!UR7/RPG2=0.0 ! -!WC_NH3/WR_ASO4=0.0 +!UR7/RP18=0.0 ! -!WC_NH3/WR_ASO5=0.0 +!UR7/RPG3=0.0 ! -!WC_NH3/WR_AHSO5=0.0 +!UR7/URG4=0.0 ! -!WC_NH3/WR_AHMS=0.0 +!UR7/UR8=0.0 ! -!WC_OH/O3=0.0 +!UR7/UR17=0.0 ! -!WC_OH/H2O2=0.0 +!UR7/UR7=-K357 + PJAC(:,56,56)=-TPK%K357(:) ! -!WC_OH/NO=0.0 +!UR7/RPR3=0.0 ! -!WC_OH/NO2=0.0 +!UR7/URG6=0.0 ! -!WC_OH/NO3=0.0 +!UR7/UR22=0.0 ! -!WC_OH/N2O5=0.0 +!UR7/URG7=0.0 ! -!WC_OH/HONO=0.0 +!UR7/RPR4=0.0 ! -!WC_OH/HNO3=0.0 +!UR7/RPR7=0.0 ! -!WC_OH/HNO4=0.0 +!UR7/RPG7=0.0 ! -!WC_OH/NH3=0.0 +!UR7/URG8=0.0 ! -!WC_OH/SO2=0.0 +!UR7/UR19=0.0 ! -!WC_OH/SULF=0.0 +!UR7/URG9=0.0 ! -!WC_OH/CO=0.0 +!UR7/AP7=0.0 ! -!WC_OH/OH=+KTC11 - PJAC(:,52,14)=+TPK%KTC11(:) +!UR7/URG10=0.0 ! -!WC_OH/HO2=0.0 +!UR7/RPR1=0.0 ! -!WC_OH/CH4=0.0 +!UR7/RPR5=0.0 ! -!WC_OH/ETH=0.0 +!UR7/RPR8=0.0 ! -!WC_OH/ALKA=0.0 +!UR7/RP10=0.0 ! -!WC_OH/ALKE=0.0 +!UR7/RP11=0.0 ! -!WC_OH/BIO=0.0 +!UR7/RP16=0.0 ! -!WC_OH/ARO=0.0 +!UR7/RPRL=0.0 ! -!WC_OH/HCHO=0.0 +!UR7/APAN=0.0 ! -!WC_OH/ALD=0.0 +!UR7/PAN1=0.0 ! -!WC_OH/KET=0.0 +!UR7/PAN2=0.0 ! -!WC_OH/CARBO=0.0 +!UR7/PAN3=0.0 ! -!WC_OH/ONIT=0.0 +!UR7/PAN4=0.0 ! -!WC_OH/PAN=0.0 +!UR7/PAN6=0.0 ! -!WC_OH/OP1=0.0 +!UR7/PAN7=0.0 ! -!WC_OH/OP2=0.0 +!UR7/PAN8=0.0 ! -!WC_OH/ORA1=0.0 +!UR7/PN10=0.0 ! -!WC_OH/ORA2=0.0 +!UR7/RO2T=+K208*<RO227>+0.3*K211*<RO228> + PJAC(:,56,85)=+TPK%K208(:)*TPK%RO227(:)+0.3*TPK%K211(:)*TPK%RO228(:) ! -!WC_OH/MO2=0.0 +!UR7/RO21=0.0 ! -!WC_OH/ALKAP=0.0 +!UR7/RO25=0.0 ! -!WC_OH/ALKEP=0.0 +!RPR3/NO=+TPK%CFA10*K198*<RO224>+K201*<RO225> + PJAC(:,57,1)=+TPK%CFA10*TPK%K198(:)*TPK%RO224(:)+TPK%K201(:)*TPK%RO225(:) ! -!WC_OH/BIOP=0.0 +!RPR3/NO2=0.0 ! -!WC_OH/PHO=0.0 +!RPR3/O3=+0.055*K086*<BIOL> + PJAC(:,57,3)=+0.055*TPK%K086(:)*PCONC(:,36) ! -!WC_OH/ADD=0.0 +!RPR3/HONO=0.0 ! -!WC_OH/AROP=0.0 +!RPR3/HNO3=0.0 ! -!WC_OH/CARBOP=0.0 +!RPR3/HNO4=0.0 ! -!WC_OH/OLN=0.0 +!RPR3/N2O5=0.0 ! -!WC_OH/XO2=0.0 +!RPR3/NO3=-K313*<RPR3> + PJAC(:,57,8)=-TPK%K313(:)*PCONC(:,57) ! -!WC_OH/WC_O3=+KC6*<WC_HO2> - PJAC(:,52,42)=+TPK%KC6(:)*PCONC(:,53) +!RPR3/NH3=0.0 ! -!WC_OH/WC_H2O2=+KC1+KC1-KC4*<WC_OH> - PJAC(:,52,43)=+TPK%KC1(:)+TPK%KC1(:)-TPK%KC4(:)*PCONC(:,52) +!RPR3/HO2=+K200*<RO224>+K203*<RO225> + PJAC(:,57,10)=+TPK%K200(:)*TPK%RO224(:)+TPK%K203(:)*TPK%RO225(:) ! -!WC_OH/WC_NO=0.0 +!RPR3/CO=0.0 ! -!WC_OH/WC_NO2=0.0 +!RPR3/H2O2=0.0 ! -!WC_OH/WC_NO3=0.0 +!RPR3/SO2=0.0 ! -!WC_OH/WC_N2O5=0.0 +!RPR3/H2SO4=0.0 ! -!WC_OH/WC_HONO=-KC8*<WC_OH> - PJAC(:,52,48)=-TPK%KC8(:)*PCONC(:,52) +!RPR3/OH=-K312*<RPR3> + PJAC(:,57,15)=-TPK%K312(:)*PCONC(:,57) ! -!WC_OH/WC_HNO3=+KC13 - PJAC(:,52,49)=+TPK%KC13(:) +!RPR3/ETHE=0.0 ! -!WC_OH/WC_HNO4=0.0 +!RPR3/OLEL=0.0 ! -!WC_OH/WC_NH3=0.0 +!RPR3/OLEH=0.0 ! -!WC_OH/WC_OH=-KTC31-KC2*<WC_OH>-KC2*<WC_OH>-KC2*<WC_OH>-KC2*<WC_OH>-KC3*<WC_HO2 -!>-KC4*<WC_H2O2>-KC7*<WC_SO2>-KC8*<WC_HONO>-KC19*<WC_HCHO>-KC20*<WC_ORA1>-KC23* -!<WC_AHMS> - PJAC(:,52,52)=-TPK%KTC31(:)-TPK%KC2(:)*PCONC(:,52)-TPK%KC2(:)*PCONC(:,52)-TPK%& -&KC2(:)*PCONC(:,52)-TPK%KC2(:)*PCONC(:,52)-TPK%KC3(:)*PCONC(:,53)-TPK%KC4(:)*PC& -&ONC(:,43)-TPK%KC7(:)*PCONC(:,55)-TPK%KC8(:)*PCONC(:,48)-TPK%KC19(:)*PCONC(:,57& -&)-TPK%KC20(:)*PCONC(:,58)-TPK%KC23(:)*PCONC(:,66) +!RPR3/ALKL=0.0 ! -!WC_OH/WC_HO2=-KC3*<WC_OH>+KC6*<WC_O3> - PJAC(:,52,53)=-TPK%KC3(:)*PCONC(:,52)+TPK%KC6(:)*PCONC(:,42) +!RPR3/ALKM=0.0 ! -!WC_OH/WC_CO2=0.0 +!RPR3/ALKH=0.0 ! -!WC_OH/WC_SO2=-KC7*<WC_OH> - PJAC(:,52,55)=-TPK%KC7(:)*PCONC(:,52) +!RPR3/AROH=0.0 ! -!WC_OH/WC_SULF=0.0 +!RPR3/AROL=0.0 ! -!WC_OH/WC_HCHO=-KC19*<WC_OH> - PJAC(:,52,57)=-TPK%KC19(:)*PCONC(:,52) +!RPR3/AROO=0.0 ! -!WC_OH/WC_ORA1=-KC20*<WC_OH> - PJAC(:,52,58)=-TPK%KC20(:)*PCONC(:,52) +!RPR3/ARAL=0.0 ! -!WC_OH/WC_ORA2=0.0 +!RPR3/ARAC=0.0 ! -!WC_OH/WC_MO2=0.0 +!RPR3/PAH=0.0 ! -!WC_OH/WC_OP1=0.0 +!RPR3/HCHO=0.0 ! -!WC_OH/WC_ASO3=0.0 +!RPR3/ALD2=0.0 ! -!WC_OH/WC_ASO4=+KC28 - PJAC(:,52,63)=+TPK%KC28(:) +!RPR3/KETL=0.0 ! -!WC_OH/WC_ASO5=0.0 +!RPR3/KETH=0.0 ! -!WC_OH/WC_AHSO5=0.0 +!RPR3/MEOH=0.0 ! -!WC_OH/WC_AHMS=-KC23*<WC_OH> - PJAC(:,52,66)=-TPK%KC23(:)*PCONC(:,52) +!RPR3/ETOH=0.0 ! -!WC_OH/WR_O3=0.0 +!RPR3/ALCH=0.0 ! -!WC_OH/WR_H2O2=0.0 +!RPR3/ISOP=0.0 ! -!WC_OH/WR_NO=0.0 +!RPR3/BIOL=+0.055*K086*<O3> + PJAC(:,57,36)=+0.055*TPK%K086(:)*PCONC(:,3) ! -!WC_OH/WR_NO2=0.0 +!RPR3/BIOH=0.0 ! -!WC_OH/WR_NO3=0.0 +!RPR3/MTBE=0.0 ! -!WC_OH/WR_N2O5=0.0 +!RPR3/MVK=0.0 ! -!WC_OH/WR_HONO=0.0 +!RPR3/MCR=0.0 ! -!WC_OH/WR_HNO3=0.0 +!RPR3/MGLY=0.0 ! -!WC_OH/WR_HNO4=0.0 +!RPR3/GLY=0.0 ! -!WC_OH/WR_NH3=0.0 +!RPR3/ORA1=0.0 ! -!WC_OH/WR_OH=0.0 +!RPR3/ORA2=0.0 ! -!WC_OH/WR_HO2=0.0 +!RPR3/ACID=0.0 ! -!WC_OH/WR_CO2=0.0 +!RPR3/UR28=0.0 ! -!WC_OH/WR_SO2=0.0 +!RPR3/UR21=0.0 ! -!WC_OH/WR_SULF=0.0 +!RPR3/URG2=0.0 ! -!WC_OH/WR_HCHO=0.0 +!RPR3/UR26=0.0 ! -!WC_OH/WR_ORA1=0.0 +!RPR3/RPG2=0.0 ! -!WC_OH/WR_ORA2=0.0 +!RPR3/RP18=0.0 ! -!WC_OH/WR_MO2=0.0 +!RPR3/RPG3=0.0 ! -!WC_OH/WR_OP1=0.0 +!RPR3/URG4=0.0 ! -!WC_OH/WR_ASO3=0.0 +!RPR3/UR8=0.0 ! -!WC_OH/WR_ASO4=0.0 +!RPR3/UR17=0.0 ! -!WC_OH/WR_ASO5=0.0 +!RPR3/UR7=0.0 ! -!WC_OH/WR_AHSO5=0.0 +!RPR3/RPR3=-K312*<OH>-K313*<NO3>-K314 + PJAC(:,57,57)=-TPK%K312(:)*PCONC(:,15)-TPK%K313(:)*PCONC(:,8)-TPK%K314(:) ! -!WC_OH/WR_AHMS=0.0 +!RPR3/URG6=0.0 ! -!WC_HO2/O3=0.0 +!RPR3/UR22=0.0 ! -!WC_HO2/H2O2=0.0 +!RPR3/URG7=0.0 ! -!WC_HO2/NO=0.0 +!RPR3/RPR4=0.0 ! -!WC_HO2/NO2=0.0 +!RPR3/RPR7=0.0 ! -!WC_HO2/NO3=0.0 +!RPR3/RPG7=0.0 ! -!WC_HO2/N2O5=0.0 +!RPR3/URG8=0.0 ! -!WC_HO2/HONO=0.0 +!RPR3/UR19=0.0 ! -!WC_HO2/HNO3=0.0 +!RPR3/URG9=0.0 ! -!WC_HO2/HNO4=0.0 +!RPR3/AP7=0.0 ! -!WC_HO2/NH3=0.0 +!RPR3/URG10=0.0 ! -!WC_HO2/SO2=0.0 +!RPR3/RPR1=0.0 ! -!WC_HO2/SULF=0.0 +!RPR3/RPR5=0.0 ! -!WC_HO2/CO=0.0 +!RPR3/RPR8=0.0 ! -!WC_HO2/OH=0.0 +!RPR3/RP10=0.0 ! -!WC_HO2/HO2=+KTC12 - PJAC(:,53,15)=+TPK%KTC12(:) +!RPR3/RP11=0.0 ! -!WC_HO2/CH4=0.0 +!RPR3/RP16=0.0 ! -!WC_HO2/ETH=0.0 +!RPR3/RPRL=0.0 ! -!WC_HO2/ALKA=0.0 +!RPR3/APAN=0.0 ! -!WC_HO2/ALKE=0.0 +!RPR3/PAN1=0.0 ! -!WC_HO2/BIO=0.0 +!RPR3/PAN2=0.0 ! -!WC_HO2/ARO=0.0 +!RPR3/PAN3=0.0 ! -!WC_HO2/HCHO=0.0 +!RPR3/PAN4=0.0 ! -!WC_HO2/ALD=0.0 +!RPR3/PAN6=0.0 ! -!WC_HO2/KET=0.0 +!RPR3/PAN7=0.0 ! -!WC_HO2/CARBO=0.0 +!RPR3/PAN8=0.0 ! -!WC_HO2/ONIT=0.0 +!RPR3/PN10=0.0 ! -!WC_HO2/PAN=0.0 +!RPR3/RO2T=+K199*<RO224>+K202*<RO225> + PJAC(:,57,85)=+TPK%K199(:)*TPK%RO224(:)+TPK%K202(:)*TPK%RO225(:) ! -!WC_HO2/OP1=0.0 +!RPR3/RO21=0.0 ! -!WC_HO2/OP2=0.0 +!RPR3/RO25=0.0 ! -!WC_HO2/ORA1=0.0 +!URG6/NO=+TPK%CF21*K177*<RO217>+TPK%CF43*K195*<RO223> + PJAC(:,58,1)=+TPK%CF21*TPK%K177(:)*TPK%RO217(:)+TPK%CF43*TPK%K195(:)*TPK%RO223& +&(:) ! -!WC_HO2/ORA2=0.0 +!URG6/NO2=0.0 ! -!WC_HO2/MO2=0.0 +!URG6/O3=0.0 ! -!WC_HO2/ALKAP=0.0 +!URG6/HONO=0.0 ! -!WC_HO2/ALKEP=0.0 +!URG6/HNO3=0.0 ! -!WC_HO2/BIOP=0.0 +!URG6/HNO4=0.0 ! -!WC_HO2/PHO=0.0 +!URG6/N2O5=0.0 ! -!WC_HO2/ADD=0.0 +!URG6/NO3=0.0 ! -!WC_HO2/AROP=0.0 +!URG6/NH3=0.0 ! -!WC_HO2/CARBOP=0.0 +!URG6/HO2=0.0 ! -!WC_HO2/OLN=0.0 +!URG6/CO=0.0 ! -!WC_HO2/XO2=0.0 +!URG6/H2O2=0.0 ! -!WC_HO2/WC_O3=-KC6*<WC_HO2> - PJAC(:,53,42)=-TPK%KC6(:)*PCONC(:,53) +!URG6/SO2=0.0 ! -!WC_HO2/WC_H2O2=+KC4*<WC_OH> - PJAC(:,53,43)=+TPK%KC4(:)*PCONC(:,52) +!URG6/H2SO4=0.0 ! -!WC_HO2/WC_NO=0.0 +!URG6/OH=+0.4978440*K323*<RPG7> + PJAC(:,58,15)=+0.4978440*TPK%K323(:)*PCONC(:,63) ! -!WC_HO2/WC_NO2=-KC9*<WC_HO2> - PJAC(:,53,45)=-TPK%KC9(:)*PCONC(:,53) +!URG6/ETHE=0.0 ! -!WC_HO2/WC_NO3=0.0 +!URG6/OLEL=0.0 ! -!WC_HO2/WC_N2O5=0.0 +!URG6/OLEH=0.0 ! -!WC_HO2/WC_HONO=0.0 +!URG6/ALKL=0.0 ! -!WC_HO2/WC_HNO3=0.0 +!URG6/ALKM=0.0 ! -!WC_HO2/WC_HNO4=+KC10 - PJAC(:,53,50)=+TPK%KC10(:) +!URG6/ALKH=0.0 ! -!WC_HO2/WC_NH3=0.0 +!URG6/AROH=0.0 ! -!WC_HO2/WC_OH=-KC3*<WC_HO2>+KC4*<WC_H2O2>+KC19*<WC_HCHO>+KC20*<WC_ORA1>+KC23*<W -!C_AHMS> - PJAC(:,53,52)=-TPK%KC3(:)*PCONC(:,53)+TPK%KC4(:)*PCONC(:,43)+TPK%KC19(:)*PCONC& -&(:,57)+TPK%KC20(:)*PCONC(:,58)+TPK%KC23(:)*PCONC(:,66) +!URG6/AROL=0.0 ! -!WC_HO2/WC_HO2=-KTC32-KC3*<WC_OH>-KC5*<WC_HO2>-KC5*<WC_HO2>-KC5*<WC_HO2>-KC5*<W -!C_HO2>-KC6*<WC_O3>-KC9*<WC_NO2>-KC25*<WC_ASO5> - PJAC(:,53,53)=-TPK%KTC32(:)-TPK%KC3(:)*PCONC(:,52)-TPK%KC5(:)*PCONC(:,53)-TPK%& -&KC5(:)*PCONC(:,53)-TPK%KC5(:)*PCONC(:,53)-TPK%KC5(:)*PCONC(:,53)-TPK%KC6(:)*PC& -&ONC(:,42)-TPK%KC9(:)*PCONC(:,45)-TPK%KC25(:)*PCONC(:,64) +!URG6/AROO=0.0 ! -!WC_HO2/WC_CO2=0.0 +!URG6/ARAL=0.0 ! -!WC_HO2/WC_SO2=0.0 +!URG6/ARAC=0.0 ! -!WC_HO2/WC_SULF=0.0 +!URG6/PAH=0.0 ! -!WC_HO2/WC_HCHO=+KC19*<WC_OH> - PJAC(:,53,57)=+TPK%KC19(:)*PCONC(:,52) +!URG6/HCHO=0.0 ! -!WC_HO2/WC_ORA1=+KC20*<WC_OH> - PJAC(:,53,58)=+TPK%KC20(:)*PCONC(:,52) +!URG6/ALD2=0.0 ! -!WC_HO2/WC_ORA2=0.0 +!URG6/KETL=0.0 ! -!WC_HO2/WC_MO2=+2.00*KC17*<WC_MO2>+2.00*KC17*<WC_MO2> - PJAC(:,53,60)=+2.00*TPK%KC17(:)*PCONC(:,60)+2.00*TPK%KC17(:)*PCONC(:,60) +!URG6/KETH=0.0 ! -!WC_HO2/WC_OP1=0.0 +!URG6/MEOH=0.0 ! -!WC_HO2/WC_ASO3=0.0 +!URG6/ETOH=0.0 ! -!WC_HO2/WC_ASO4=0.0 +!URG6/ALCH=0.0 ! -!WC_HO2/WC_ASO5=-KC25*<WC_HO2> - PJAC(:,53,64)=-TPK%KC25(:)*PCONC(:,53) +!URG6/ISOP=0.0 ! -!WC_HO2/WC_AHSO5=0.0 +!URG6/BIOL=0.0 ! -!WC_HO2/WC_AHMS=+KC23*<WC_OH> - PJAC(:,53,66)=+TPK%KC23(:)*PCONC(:,52) +!URG6/BIOH=0.0 ! -!WC_HO2/WR_O3=0.0 +!URG6/MTBE=0.0 ! -!WC_HO2/WR_H2O2=0.0 +!URG6/MVK=0.0 ! -!WC_HO2/WR_NO=0.0 +!URG6/MCR=0.0 ! -!WC_HO2/WR_NO2=0.0 +!URG6/MGLY=0.0 ! -!WC_HO2/WR_NO3=0.0 +!URG6/GLY=0.0 ! -!WC_HO2/WR_N2O5=0.0 +!URG6/ORA1=0.0 ! -!WC_HO2/WR_HONO=0.0 +!URG6/ORA2=0.0 ! -!WC_HO2/WR_HNO3=0.0 +!URG6/ACID=0.0 ! -!WC_HO2/WR_HNO4=0.0 +!URG6/UR28=0.0 ! -!WC_HO2/WR_NH3=0.0 +!URG6/UR21=0.0 ! -!WC_HO2/WR_OH=0.0 +!URG6/URG2=0.0 ! -!WC_HO2/WR_HO2=0.0 +!URG6/UR26=0.0 ! -!WC_HO2/WR_CO2=0.0 +!URG6/RPG2=0.0 ! -!WC_HO2/WR_SO2=0.0 +!URG6/RP18=0.0 ! -!WC_HO2/WR_SULF=0.0 +!URG6/RPG3=0.0 ! -!WC_HO2/WR_HCHO=0.0 +!URG6/URG4=0.0 ! -!WC_HO2/WR_ORA1=0.0 +!URG6/UR8=0.0 ! -!WC_HO2/WR_ORA2=0.0 +!URG6/UR17=0.0 ! -!WC_HO2/WR_MO2=0.0 +!URG6/UR7=0.0 ! -!WC_HO2/WR_OP1=0.0 +!URG6/RPR3=0.0 ! -!WC_HO2/WR_ASO3=0.0 +!URG6/URG6=-K352 + PJAC(:,58,58)=-TPK%K352(:) ! -!WC_HO2/WR_ASO4=0.0 +!URG6/UR22=0.0 ! -!WC_HO2/WR_ASO5=0.0 +!URG6/URG7=0.0 ! -!WC_HO2/WR_AHSO5=0.0 +!URG6/RPR4=0.0 ! -!WC_HO2/WR_AHMS=0.0 +!URG6/RPR7=0.0 ! -!WC_CO2/O3=0.0 +!URG6/RPG7=+0.4978440*K323*<OH> + PJAC(:,58,63)=+0.4978440*TPK%K323(:)*PCONC(:,15) ! -!WC_CO2/H2O2=0.0 +!URG6/URG8=0.0 ! -!WC_CO2/NO=0.0 +!URG6/UR19=0.0 ! -!WC_CO2/NO2=0.0 +!URG6/URG9=0.0 ! -!WC_CO2/NO3=0.0 +!URG6/AP7=0.0 ! -!WC_CO2/N2O5=0.0 +!URG6/URG10=0.0 ! -!WC_CO2/HONO=0.0 +!URG6/RPR1=0.0 ! -!WC_CO2/HNO3=0.0 +!URG6/RPR5=0.0 ! -!WC_CO2/HNO4=0.0 +!URG6/RPR8=0.0 ! -!WC_CO2/NH3=0.0 +!URG6/RP10=0.0 ! -!WC_CO2/SO2=0.0 +!URG6/RP11=0.0 ! -!WC_CO2/SULF=0.0 +!URG6/RP16=0.0 ! -!WC_CO2/CO=0.0 +!URG6/RPRL=0.0 ! -!WC_CO2/OH=0.0 +!URG6/APAN=0.0 ! -!WC_CO2/HO2=0.0 +!URG6/PAN1=0.0 ! -!WC_CO2/CH4=0.0 +!URG6/PAN2=0.0 ! -!WC_CO2/ETH=0.0 +!URG6/PAN3=0.0 ! -!WC_CO2/ALKA=0.0 +!URG6/PAN4=0.0 ! -!WC_CO2/ALKE=0.0 +!URG6/PAN6=0.0 ! -!WC_CO2/BIO=0.0 +!URG6/PAN7=0.0 ! -!WC_CO2/ARO=0.0 +!URG6/PAN8=0.0 ! -!WC_CO2/HCHO=0.0 +!URG6/PN10=0.0 ! -!WC_CO2/ALD=0.0 +!URG6/RO2T=0.0 ! -!WC_CO2/KET=0.0 +!URG6/RO21=0.0 ! -!WC_CO2/CARBO=0.0 +!URG6/RO25=0.0 ! -!WC_CO2/ONIT=0.0 +!UR22/NO=0.0 ! -!WC_CO2/PAN=0.0 +!UR22/NO2=+K321*<RAD8> + PJAC(:,59,2)=+TPK%K321(:)*TPK%RAD8(:) ! -!WC_CO2/OP1=0.0 +!UR22/O3=0.0 ! -!WC_CO2/OP2=0.0 +!UR22/HONO=0.0 ! -!WC_CO2/ORA1=0.0 +!UR22/HNO3=0.0 ! -!WC_CO2/ORA2=0.0 +!UR22/HNO4=0.0 ! -!WC_CO2/MO2=0.0 +!UR22/N2O5=0.0 ! -!WC_CO2/ALKAP=0.0 +!UR22/NO3=0.0 ! -!WC_CO2/ALKEP=0.0 +!UR22/NH3=0.0 ! -!WC_CO2/BIOP=0.0 +!UR22/HO2=0.0 ! -!WC_CO2/PHO=0.0 +!UR22/CO=0.0 ! -!WC_CO2/ADD=0.0 +!UR22/H2O2=0.0 ! -!WC_CO2/AROP=0.0 +!UR22/SO2=0.0 ! -!WC_CO2/CARBOP=0.0 +!UR22/H2SO4=0.0 ! -!WC_CO2/OLN=0.0 +!UR22/OH=0.0 ! -!WC_CO2/XO2=0.0 +!UR22/ETHE=0.0 ! -!WC_CO2/WC_O3=0.0 +!UR22/OLEL=0.0 ! -!WC_CO2/WC_H2O2=0.0 +!UR22/OLEH=0.0 ! -!WC_CO2/WC_NO=0.0 +!UR22/ALKL=0.0 ! -!WC_CO2/WC_NO2=0.0 +!UR22/ALKM=0.0 ! -!WC_CO2/WC_NO3=0.0 +!UR22/ALKH=0.0 ! -!WC_CO2/WC_N2O5=0.0 +!UR22/AROH=0.0 ! -!WC_CO2/WC_HONO=0.0 +!UR22/AROL=0.0 ! -!WC_CO2/WC_HNO3=0.0 +!UR22/AROO=0.0 ! -!WC_CO2/WC_HNO4=0.0 +!UR22/ARAL=0.0 ! -!WC_CO2/WC_NH3=0.0 +!UR22/ARAC=0.0 ! -!WC_CO2/WC_OH=+KC20*<WC_ORA1> - PJAC(:,54,52)=+TPK%KC20(:)*PCONC(:,58) +!UR22/PAH=0.0 ! -!WC_CO2/WC_HO2=0.0 +!UR22/HCHO=0.0 ! -!WC_CO2/WC_CO2=-KTC33 - PJAC(:,54,54)=-TPK%KTC33(:) +!UR22/ALD2=0.0 ! -!WC_CO2/WC_SO2=0.0 +!UR22/KETL=0.0 ! -!WC_CO2/WC_SULF=0.0 +!UR22/KETH=0.0 ! -!WC_CO2/WC_HCHO=0.0 +!UR22/MEOH=0.0 ! -!WC_CO2/WC_ORA1=+KC20*<WC_OH> - PJAC(:,54,58)=+TPK%KC20(:)*PCONC(:,52) +!UR22/ETOH=0.0 ! -!WC_CO2/WC_ORA2=0.0 +!UR22/ALCH=0.0 ! -!WC_CO2/WC_MO2=0.0 +!UR22/ISOP=0.0 ! -!WC_CO2/WC_OP1=0.0 +!UR22/BIOL=0.0 ! -!WC_CO2/WC_ASO3=0.0 +!UR22/BIOH=0.0 ! -!WC_CO2/WC_ASO4=0.0 +!UR22/MTBE=0.0 ! -!WC_CO2/WC_ASO5=0.0 +!UR22/MVK=0.0 ! -!WC_CO2/WC_AHSO5=0.0 +!UR22/MCR=0.0 ! -!WC_CO2/WC_AHMS=0.0 +!UR22/MGLY=0.0 ! -!WC_CO2/WR_O3=0.0 +!UR22/GLY=0.0 ! -!WC_CO2/WR_H2O2=0.0 +!UR22/ORA1=0.0 ! -!WC_CO2/WR_NO=0.0 +!UR22/ORA2=0.0 ! -!WC_CO2/WR_NO2=0.0 +!UR22/ACID=0.0 ! -!WC_CO2/WR_NO3=0.0 +!UR22/UR28=0.0 ! -!WC_CO2/WR_N2O5=0.0 +!UR22/UR21=0.0 ! -!WC_CO2/WR_HONO=0.0 +!UR22/URG2=0.0 ! -!WC_CO2/WR_HNO3=0.0 +!UR22/UR26=0.0 ! -!WC_CO2/WR_HNO4=0.0 +!UR22/RPG2=0.0 ! -!WC_CO2/WR_NH3=0.0 +!UR22/RP18=0.0 ! -!WC_CO2/WR_OH=0.0 +!UR22/RPG3=0.0 ! -!WC_CO2/WR_HO2=0.0 +!UR22/URG4=0.0 ! -!WC_CO2/WR_CO2=0.0 +!UR22/UR8=0.0 ! -!WC_CO2/WR_SO2=0.0 +!UR22/UR17=0.0 ! -!WC_CO2/WR_SULF=0.0 +!UR22/UR7=0.0 ! -!WC_CO2/WR_HCHO=0.0 +!UR22/RPR3=0.0 ! -!WC_CO2/WR_ORA1=0.0 +!UR22/URG6=0.0 ! -!WC_CO2/WR_ORA2=0.0 +!UR22/UR22=-K362 + PJAC(:,59,59)=-TPK%K362(:) ! -!WC_CO2/WR_MO2=0.0 +!UR22/URG7=0.0 ! -!WC_CO2/WR_OP1=0.0 +!UR22/RPR4=0.0 ! -!WC_CO2/WR_ASO3=0.0 +!UR22/RPR7=0.0 ! -!WC_CO2/WR_ASO4=0.0 +!UR22/RPG7=0.0 ! -!WC_CO2/WR_ASO5=0.0 +!UR22/URG8=0.0 ! -!WC_CO2/WR_AHSO5=0.0 +!UR22/UR19=0.0 ! -!WC_CO2/WR_AHMS=0.0 +!UR22/URG9=0.0 ! -!WC_SO2/O3=0.0 +!UR22/AP7=0.0 ! -!WC_SO2/H2O2=0.0 +!UR22/URG10=0.0 ! -!WC_SO2/NO=0.0 +!UR22/RPR1=0.0 ! -!WC_SO2/NO2=0.0 +!UR22/RPR5=0.0 ! -!WC_SO2/NO3=0.0 +!UR22/RPR8=0.0 ! -!WC_SO2/N2O5=0.0 +!UR22/RP10=0.0 ! -!WC_SO2/HONO=0.0 +!UR22/RP11=0.0 ! -!WC_SO2/HNO3=0.0 +!UR22/RP16=0.0 ! -!WC_SO2/HNO4=0.0 +!UR22/RPRL=0.0 ! -!WC_SO2/NH3=0.0 +!UR22/APAN=0.0 ! -!WC_SO2/SO2=+KTC14 - PJAC(:,55,11)=+TPK%KTC14(:) +!UR22/PAN1=0.0 ! -!WC_SO2/SULF=0.0 +!UR22/PAN2=0.0 ! -!WC_SO2/CO=0.0 +!UR22/PAN3=0.0 ! -!WC_SO2/OH=0.0 +!UR22/PAN4=0.0 ! -!WC_SO2/HO2=0.0 +!UR22/PAN6=0.0 ! -!WC_SO2/CH4=0.0 +!UR22/PAN7=0.0 ! -!WC_SO2/ETH=0.0 +!UR22/PAN8=0.0 ! -!WC_SO2/ALKA=0.0 +!UR22/PN10=0.0 ! -!WC_SO2/ALKE=0.0 +!UR22/RO2T=0.0 ! -!WC_SO2/BIO=0.0 +!UR22/RO21=0.0 ! -!WC_SO2/ARO=0.0 +!UR22/RO25=0.0 ! -!WC_SO2/HCHO=0.0 +!URG7/NO=0.0 ! -!WC_SO2/ALD=0.0 +!URG7/NO2=+0.9999993*K108*<RAD6> + PJAC(:,60,2)=+0.9999993*TPK%K108(:)*TPK%RAD6(:) ! -!WC_SO2/KET=0.0 +!URG7/O3=0.0 ! -!WC_SO2/CARBO=0.0 +!URG7/HONO=0.0 ! -!WC_SO2/ONIT=0.0 +!URG7/HNO3=0.0 ! -!WC_SO2/PAN=0.0 +!URG7/HNO4=0.0 ! -!WC_SO2/OP1=0.0 +!URG7/N2O5=0.0 ! -!WC_SO2/OP2=0.0 +!URG7/NO3=0.0 ! -!WC_SO2/ORA1=0.0 +!URG7/NH3=0.0 ! -!WC_SO2/ORA2=0.0 +!URG7/HO2=0.0 ! -!WC_SO2/MO2=0.0 +!URG7/CO=0.0 ! -!WC_SO2/ALKAP=0.0 +!URG7/H2O2=0.0 ! -!WC_SO2/ALKEP=0.0 +!URG7/SO2=0.0 ! -!WC_SO2/BIOP=0.0 +!URG7/H2SO4=0.0 ! -!WC_SO2/PHO=0.0 +!URG7/OH=+0.1599999*K083*<ARAC>+0.9999993*K303*<RPR5>+0.9979297*K306*<RPRL>+0.9 +!999993*K322*<RPR7> + PJAC(:,60,15)=+0.1599999*TPK%K083(:)*PCONC(:,26)+0.9999993*TPK%K303(:)*PCONC(:& +&,70)+0.9979297*TPK%K306(:)*PCONC(:,75)+0.9999993*TPK%K322(:)*PCONC(:,62) ! -!WC_SO2/ADD=0.0 +!URG7/ETHE=0.0 ! -!WC_SO2/AROP=0.0 +!URG7/OLEL=0.0 ! -!WC_SO2/CARBOP=0.0 +!URG7/OLEH=0.0 ! -!WC_SO2/OLN=0.0 +!URG7/ALKL=0.0 ! -!WC_SO2/XO2=0.0 +!URG7/ALKM=0.0 ! -!WC_SO2/WC_O3=-KC29*<WC_SO2> - PJAC(:,55,42)=-TPK%KC29(:)*PCONC(:,55) +!URG7/ALKH=0.0 ! -!WC_SO2/WC_H2O2=-KC30*<WC_SO2> - PJAC(:,55,43)=-TPK%KC30(:)*PCONC(:,55) +!URG7/AROH=0.0 ! -!WC_SO2/WC_NO=0.0 +!URG7/AROL=0.0 ! -!WC_SO2/WC_NO2=0.0 +!URG7/AROO=0.0 ! -!WC_SO2/WC_NO3=-KC16*<WC_SO2> - PJAC(:,55,46)=-TPK%KC16(:)*PCONC(:,55) +!URG7/ARAL=0.0 ! -!WC_SO2/WC_N2O5=0.0 +!URG7/ARAC=+0.1599999*K083*<OH> + PJAC(:,60,26)=+0.1599999*TPK%K083(:)*PCONC(:,15) ! -!WC_SO2/WC_HONO=0.0 +!URG7/PAH=0.0 ! -!WC_SO2/WC_HNO3=0.0 +!URG7/HCHO=0.0 ! -!WC_SO2/WC_HNO4=-KC12*<WC_SO2> - PJAC(:,55,50)=-TPK%KC12(:)*PCONC(:,55) +!URG7/ALD2=0.0 ! -!WC_SO2/WC_NH3=0.0 +!URG7/KETL=0.0 ! -!WC_SO2/WC_OH=-KC7*<WC_SO2>+KC23*<WC_AHMS> - PJAC(:,55,52)=-TPK%KC7(:)*PCONC(:,55)+TPK%KC23(:)*PCONC(:,66) +!URG7/KETH=0.0 ! -!WC_SO2/WC_HO2=0.0 +!URG7/MEOH=0.0 ! -!WC_SO2/WC_CO2=0.0 +!URG7/ETOH=0.0 ! -!WC_SO2/WC_SO2=-KTC34-KC7*<WC_OH>-KC12*<WC_HNO4>-KC16*<WC_NO3>-KC18*<WC_MO2>-KC -!21*<WC_HCHO>-KC27*<WC_AHSO5>-KC29*<WC_O3>-KC30*<WC_H2O2> - PJAC(:,55,55)=-TPK%KTC34(:)-TPK%KC7(:)*PCONC(:,52)-TPK%KC12(:)*PCONC(:,50)-TPK& -&%KC16(:)*PCONC(:,46)-TPK%KC18(:)*PCONC(:,60)-TPK%KC21(:)*PCONC(:,57)-TPK%KC27(& -&:)*PCONC(:,65)-TPK%KC29(:)*PCONC(:,42)-TPK%KC30(:)*PCONC(:,43) +!URG7/ALCH=0.0 ! -!WC_SO2/WC_SULF=0.0 +!URG7/ISOP=0.0 ! -!WC_SO2/WC_HCHO=-KC21*<WC_SO2> - PJAC(:,55,57)=-TPK%KC21(:)*PCONC(:,55) +!URG7/BIOL=0.0 ! -!WC_SO2/WC_ORA1=0.0 +!URG7/BIOH=0.0 ! -!WC_SO2/WC_ORA2=0.0 +!URG7/MTBE=0.0 ! -!WC_SO2/WC_MO2=-KC18*<WC_SO2> - PJAC(:,55,60)=-TPK%KC18(:)*PCONC(:,55) +!URG7/MVK=0.0 ! -!WC_SO2/WC_OP1=0.0 +!URG7/MCR=0.0 ! -!WC_SO2/WC_ASO3=0.0 +!URG7/MGLY=0.0 ! -!WC_SO2/WC_ASO4=0.0 +!URG7/GLY=0.0 ! -!WC_SO2/WC_ASO5=0.0 +!URG7/ORA1=0.0 ! -!WC_SO2/WC_AHSO5=-KC27*<WC_SO2> - PJAC(:,55,65)=-TPK%KC27(:)*PCONC(:,55) +!URG7/ORA2=0.0 ! -!WC_SO2/WC_AHMS=+KC22+KC23*<WC_OH> - PJAC(:,55,66)=+TPK%KC22(:)+TPK%KC23(:)*PCONC(:,52) +!URG7/ACID=0.0 ! -!WC_SO2/WR_O3=0.0 +!URG7/UR28=0.0 ! -!WC_SO2/WR_H2O2=0.0 +!URG7/UR21=0.0 ! -!WC_SO2/WR_NO=0.0 +!URG7/URG2=0.0 ! -!WC_SO2/WR_NO2=0.0 +!URG7/UR26=0.0 ! -!WC_SO2/WR_NO3=0.0 +!URG7/RPG2=0.0 ! -!WC_SO2/WR_N2O5=0.0 +!URG7/RP18=0.0 ! -!WC_SO2/WR_HONO=0.0 +!URG7/RPG3=0.0 ! -!WC_SO2/WR_HNO3=0.0 +!URG7/URG4=0.0 ! -!WC_SO2/WR_HNO4=0.0 +!URG7/UR8=0.0 ! -!WC_SO2/WR_NH3=0.0 +!URG7/UR17=0.0 ! -!WC_SO2/WR_OH=0.0 +!URG7/UR7=0.0 ! -!WC_SO2/WR_HO2=0.0 +!URG7/RPR3=0.0 ! -!WC_SO2/WR_CO2=0.0 +!URG7/URG6=0.0 ! -!WC_SO2/WR_SO2=0.0 +!URG7/UR22=0.0 ! -!WC_SO2/WR_SULF=0.0 +!URG7/URG7=-K353 + PJAC(:,60,60)=-TPK%K353(:) ! -!WC_SO2/WR_HCHO=0.0 +!URG7/RPR4=0.0 ! -!WC_SO2/WR_ORA1=0.0 +!URG7/RPR7=+0.9999993*K322*<OH> + PJAC(:,60,62)=+0.9999993*TPK%K322(:)*PCONC(:,15) ! -!WC_SO2/WR_ORA2=0.0 +!URG7/RPG7=0.0 ! -!WC_SO2/WR_MO2=0.0 +!URG7/URG8=0.0 ! -!WC_SO2/WR_OP1=0.0 +!URG7/UR19=0.0 ! -!WC_SO2/WR_ASO3=0.0 +!URG7/URG9=0.0 ! -!WC_SO2/WR_ASO4=0.0 +!URG7/AP7=0.0 ! -!WC_SO2/WR_ASO5=0.0 +!URG7/URG10=0.0 ! -!WC_SO2/WR_AHSO5=0.0 +!URG7/RPR1=0.0 ! -!WC_SO2/WR_AHMS=0.0 +!URG7/RPR5=+0.9999993*K303*<OH> + PJAC(:,60,70)=+0.9999993*TPK%K303(:)*PCONC(:,15) ! -RETURN -END SUBROUTINE SUBJ10 +!URG7/RPR8=0.0 ! -SUBROUTINE SUBJ11 +!URG7/RP10=0.0 ! -!Indices 56 a 60 +!URG7/RP11=0.0 ! +!URG7/RP16=0.0 ! -!WC_SULF/O3=0.0 +!URG7/RPRL=+0.9979297*K306*<OH> + PJAC(:,60,75)=+0.9979297*TPK%K306(:)*PCONC(:,15) ! -!WC_SULF/H2O2=0.0 +!URG7/APAN=0.0 ! -!WC_SULF/NO=0.0 +!URG7/PAN1=0.0 ! -!WC_SULF/NO2=0.0 +!URG7/PAN2=0.0 ! -!WC_SULF/NO3=0.0 +!URG7/PAN3=0.0 ! -!WC_SULF/N2O5=0.0 +!URG7/PAN4=0.0 ! -!WC_SULF/HONO=0.0 +!URG7/PAN6=0.0 ! -!WC_SULF/HNO3=0.0 +!URG7/PAN7=0.0 ! -!WC_SULF/HNO4=0.0 +!URG7/PAN8=0.0 ! -!WC_SULF/NH3=0.0 +!URG7/PN10=0.0 ! -!WC_SULF/SO2=0.0 +!URG7/RO2T=0.0 ! -!WC_SULF/SULF=+KTC15 - PJAC(:,56,12)=+TPK%KTC15(:) +!URG7/RO21=0.0 ! -!WC_SULF/CO=0.0 +!URG7/RO25=0.0 ! -!WC_SULF/OH=0.0 +RETURN +END SUBROUTINE SUBJ11 ! -!WC_SULF/HO2=0.0 +SUBROUTINE SUBJ12 ! -!WC_SULF/CH4=0.0 +!Indices 61 a 65 ! -!WC_SULF/ETH=0.0 ! -!WC_SULF/ALKA=0.0 +!RPR4/NO=0.0 ! -!WC_SULF/ALKE=0.0 +!RPR4/NO2=+K103*<RAD1>+K104*<RAD2> + PJAC(:,61,2)=+TPK%K103(:)*TPK%RAD1(:)+TPK%K104(:)*TPK%RAD2(:) ! -!WC_SULF/BIO=0.0 +!RPR4/O3=0.0 ! -!WC_SULF/ARO=0.0 +!RPR4/HONO=0.0 ! -!WC_SULF/HCHO=0.0 +!RPR4/HNO3=0.0 ! -!WC_SULF/ALD=0.0 +!RPR4/HNO4=0.0 ! -!WC_SULF/KET=0.0 +!RPR4/N2O5=0.0 ! -!WC_SULF/CARBO=0.0 +!RPR4/NO3=-K320*<RPR4> + PJAC(:,61,8)=-TPK%K320(:)*PCONC(:,61) ! -!WC_SULF/ONIT=0.0 +!RPR4/NH3=0.0 ! -!WC_SULF/PAN=0.0 +!RPR4/HO2=0.0 ! -!WC_SULF/OP1=0.0 +!RPR4/CO=0.0 ! -!WC_SULF/OP2=0.0 +!RPR4/H2O2=0.0 ! -!WC_SULF/ORA1=0.0 +!RPR4/SO2=0.0 ! -!WC_SULF/ORA2=0.0 +!RPR4/H2SO4=0.0 ! -!WC_SULF/MO2=0.0 +!RPR4/OH=0.0 ! -!WC_SULF/ALKAP=0.0 +!RPR4/ETHE=0.0 ! -!WC_SULF/ALKEP=0.0 +!RPR4/OLEL=0.0 ! -!WC_SULF/BIOP=0.0 +!RPR4/OLEH=0.0 ! -!WC_SULF/PHO=0.0 +!RPR4/ALKL=0.0 ! -!WC_SULF/ADD=0.0 +!RPR4/ALKM=0.0 ! -!WC_SULF/AROP=0.0 +!RPR4/ALKH=0.0 ! -!WC_SULF/CARBOP=0.0 +!RPR4/AROH=0.0 ! -!WC_SULF/OLN=0.0 +!RPR4/AROL=0.0 ! -!WC_SULF/XO2=0.0 +!RPR4/AROO=0.0 ! -!WC_SULF/WC_O3=+KC29*<WC_SO2> - PJAC(:,56,42)=+TPK%KC29(:)*PCONC(:,55) +!RPR4/ARAL=0.0 ! -!WC_SULF/WC_H2O2=+KC30*<WC_SO2> - PJAC(:,56,43)=+TPK%KC30(:)*PCONC(:,55) +!RPR4/ARAC=0.0 ! -!WC_SULF/WC_NO=0.0 +!RPR4/PAH=0.0 ! -!WC_SULF/WC_NO2=0.0 +!RPR4/HCHO=0.0 ! -!WC_SULF/WC_NO3=-KC15*<WC_SULF> - PJAC(:,56,46)=-TPK%KC15(:)*PCONC(:,56) +!RPR4/ALD2=0.0 ! -!WC_SULF/WC_N2O5=0.0 +!RPR4/KETL=0.0 ! -!WC_SULF/WC_HONO=0.0 +!RPR4/KETH=0.0 ! -!WC_SULF/WC_HNO3=0.0 +!RPR4/MEOH=0.0 ! -!WC_SULF/WC_HNO4=+KC12*<WC_SO2> - PJAC(:,56,50)=+TPK%KC12(:)*PCONC(:,55) +!RPR4/ETOH=0.0 ! -!WC_SULF/WC_NH3=0.0 +!RPR4/ALCH=0.0 ! -!WC_SULF/WC_OH=0.0 +!RPR4/ISOP=0.0 ! -!WC_SULF/WC_HO2=0.0 +!RPR4/BIOL=0.0 ! -!WC_SULF/WC_CO2=0.0 +!RPR4/BIOH=0.0 ! -!WC_SULF/WC_SO2=+KC12*<WC_HNO4>+2.00*KC27*<WC_AHSO5>+KC29*<WC_O3>+KC30*<WC_H2O2 -!> - PJAC(:,56,55)=+TPK%KC12(:)*PCONC(:,50)+2.00*TPK%KC27(:)*PCONC(:,65)+TPK%KC29(:& -&)*PCONC(:,42)+TPK%KC30(:)*PCONC(:,43) +!RPR4/MTBE=0.0 ! -!WC_SULF/WC_SULF=-KTC35-KC15*<WC_NO3> - PJAC(:,56,56)=-TPK%KTC35(:)-TPK%KC15(:)*PCONC(:,46) +!RPR4/MVK=0.0 ! -!WC_SULF/WC_HCHO=0.0 +!RPR4/MCR=0.0 ! -!WC_SULF/WC_ORA1=0.0 +!RPR4/MGLY=0.0 ! -!WC_SULF/WC_ORA2=0.0 +!RPR4/GLY=0.0 ! -!WC_SULF/WC_MO2=0.0 +!RPR4/ORA1=0.0 ! -!WC_SULF/WC_OP1=0.0 +!RPR4/ORA2=0.0 ! -!WC_SULF/WC_ASO3=0.0 +!RPR4/ACID=0.0 ! -!WC_SULF/WC_ASO4=+KC28 - PJAC(:,56,63)=+TPK%KC28(:) +!RPR4/UR28=0.0 ! -!WC_SULF/WC_ASO5=0.0 +!RPR4/UR21=0.0 ! -!WC_SULF/WC_AHSO5=+2.00*KC27*<WC_SO2> - PJAC(:,56,65)=+2.00*TPK%KC27(:)*PCONC(:,55) +!RPR4/URG2=0.0 ! -!WC_SULF/WC_AHMS=0.0 +!RPR4/UR26=0.0 ! -!WC_SULF/WR_O3=0.0 +!RPR4/RPG2=0.0 ! -!WC_SULF/WR_H2O2=0.0 +!RPR4/RP18=0.0 ! -!WC_SULF/WR_NO=0.0 +!RPR4/RPG3=0.0 ! -!WC_SULF/WR_NO2=0.0 +!RPR4/URG4=0.0 ! -!WC_SULF/WR_NO3=0.0 +!RPR4/UR8=0.0 ! -!WC_SULF/WR_N2O5=0.0 +!RPR4/UR17=0.0 ! -!WC_SULF/WR_HONO=0.0 +!RPR4/UR7=0.0 ! -!WC_SULF/WR_HNO3=0.0 +!RPR4/RPR3=0.0 ! -!WC_SULF/WR_HNO4=0.0 +!RPR4/URG6=0.0 ! -!WC_SULF/WR_NH3=0.0 +!RPR4/UR22=0.0 ! -!WC_SULF/WR_OH=0.0 +!RPR4/URG7=0.0 ! -!WC_SULF/WR_HO2=0.0 +!RPR4/RPR4=-K320*<NO3> + PJAC(:,61,61)=-TPK%K320(:)*PCONC(:,8) ! -!WC_SULF/WR_CO2=0.0 +!RPR4/RPR7=0.0 ! -!WC_SULF/WR_SO2=0.0 +!RPR4/RPG7=0.0 ! -!WC_SULF/WR_SULF=0.0 +!RPR4/URG8=0.0 ! -!WC_SULF/WR_HCHO=0.0 +!RPR4/UR19=0.0 ! -!WC_SULF/WR_ORA1=0.0 +!RPR4/URG9=0.0 ! -!WC_SULF/WR_ORA2=0.0 +!RPR4/AP7=0.0 ! -!WC_SULF/WR_MO2=0.0 +!RPR4/URG10=0.0 ! -!WC_SULF/WR_OP1=0.0 +!RPR4/RPR1=0.0 ! -!WC_SULF/WR_ASO3=0.0 +!RPR4/RPR5=0.0 ! -!WC_SULF/WR_ASO4=0.0 +!RPR4/RPR8=0.0 ! -!WC_SULF/WR_ASO5=0.0 +!RPR4/RP10=0.0 ! -!WC_SULF/WR_AHSO5=0.0 +!RPR4/RP11=0.0 ! -!WC_SULF/WR_AHMS=0.0 +!RPR4/RP16=0.0 ! -!WC_HCHO/O3=0.0 +!RPR4/RPRL=0.0 ! -!WC_HCHO/H2O2=0.0 +!RPR4/APAN=0.0 ! -!WC_HCHO/NO=0.0 +!RPR4/PAN1=0.0 ! -!WC_HCHO/NO2=0.0 +!RPR4/PAN2=0.0 ! -!WC_HCHO/NO3=0.0 +!RPR4/PAN3=0.0 ! -!WC_HCHO/N2O5=0.0 +!RPR4/PAN4=0.0 ! -!WC_HCHO/HONO=0.0 +!RPR4/PAN6=0.0 ! -!WC_HCHO/HNO3=0.0 +!RPR4/PAN7=0.0 ! -!WC_HCHO/HNO4=0.0 +!RPR4/PAN8=0.0 ! -!WC_HCHO/NH3=0.0 +!RPR4/PN10=0.0 ! -!WC_HCHO/SO2=0.0 +!RPR4/RO2T=0.0 ! -!WC_HCHO/SULF=0.0 +!RPR4/RO21=0.0 ! -!WC_HCHO/CO=0.0 +!RPR4/RO25=0.0 ! -!WC_HCHO/OH=0.0 +!RPR7/NO=+TPK%CF44*K195*<RO223> + PJAC(:,62,1)=+TPK%CF44*TPK%K195(:)*TPK%RO223(:) ! -!WC_HCHO/HO2=0.0 +!RPR7/NO2=0.0 ! -!WC_HCHO/CH4=0.0 +!RPR7/O3=0.0 ! -!WC_HCHO/ETH=0.0 +!RPR7/HONO=0.0 ! -!WC_HCHO/ALKA=0.0 +!RPR7/HNO3=0.0 ! -!WC_HCHO/ALKE=0.0 +!RPR7/HNO4=0.0 ! -!WC_HCHO/BIO=0.0 +!RPR7/N2O5=0.0 ! -!WC_HCHO/ARO=0.0 +!RPR7/NO3=0.0 ! -!WC_HCHO/HCHO=+KTC16 - PJAC(:,57,22)=+TPK%KTC16(:) +!RPR7/NH3=0.0 ! -!WC_HCHO/ALD=0.0 +!RPR7/HO2=+K197*<RO223> + PJAC(:,62,10)=+TPK%K197(:)*TPK%RO223(:) ! -!WC_HCHO/KET=0.0 +!RPR7/CO=0.0 ! -!WC_HCHO/CARBO=0.0 +!RPR7/H2O2=0.0 ! -!WC_HCHO/ONIT=0.0 +!RPR7/SO2=0.0 ! -!WC_HCHO/PAN=0.0 +!RPR7/H2SO4=0.0 ! -!WC_HCHO/OP1=0.0 +!RPR7/OH=-03*K306*<RPRL>-K322*<RPR7> + PJAC(:,62,15)=-03*TPK%K306(:)*PCONC(:,75)-TPK%K322(:)*PCONC(:,62) ! -!WC_HCHO/OP2=0.0 +!RPR7/ETHE=0.0 ! -!WC_HCHO/ORA1=0.0 +!RPR7/OLEL=0.0 ! -!WC_HCHO/ORA2=0.0 +!RPR7/OLEH=0.0 ! -!WC_HCHO/MO2=0.0 +!RPR7/ALKL=0.0 ! -!WC_HCHO/ALKAP=0.0 +!RPR7/ALKM=0.0 ! -!WC_HCHO/ALKEP=0.0 +!RPR7/ALKH=0.0 ! -!WC_HCHO/BIOP=0.0 +!RPR7/AROH=0.0 ! -!WC_HCHO/PHO=0.0 +!RPR7/AROL=0.0 ! -!WC_HCHO/ADD=0.0 +!RPR7/AROO=0.0 ! -!WC_HCHO/AROP=0.0 +!RPR7/ARAL=0.0 ! -!WC_HCHO/CARBOP=0.0 +!RPR7/ARAC=0.0 ! -!WC_HCHO/OLN=0.0 +!RPR7/PAH=0.0 ! -!WC_HCHO/XO2=0.0 +!RPR7/HCHO=0.0 ! -!WC_HCHO/WC_O3=0.0 +!RPR7/ALD2=0.0 ! -!WC_HCHO/WC_H2O2=0.0 +!RPR7/KETL=0.0 ! -!WC_HCHO/WC_NO=0.0 +!RPR7/KETH=0.0 ! -!WC_HCHO/WC_NO2=0.0 +!RPR7/MEOH=0.0 ! -!WC_HCHO/WC_NO3=0.0 +!RPR7/ETOH=0.0 ! -!WC_HCHO/WC_N2O5=0.0 +!RPR7/ALCH=0.0 ! -!WC_HCHO/WC_HONO=0.0 +!RPR7/ISOP=0.0 ! -!WC_HCHO/WC_HNO3=0.0 +!RPR7/BIOL=0.0 ! -!WC_HCHO/WC_HNO4=0.0 +!RPR7/BIOH=0.0 ! -!WC_HCHO/WC_NH3=0.0 +!RPR7/MTBE=0.0 ! -!WC_HCHO/WC_OH=-KC19*<WC_HCHO> - PJAC(:,57,52)=-TPK%KC19(:)*PCONC(:,57) +!RPR7/MVK=0.0 ! -!WC_HCHO/WC_HO2=0.0 +!RPR7/MCR=0.0 ! -!WC_HCHO/WC_CO2=0.0 +!RPR7/MGLY=0.0 ! -!WC_HCHO/WC_SO2=-KC21*<WC_HCHO> - PJAC(:,57,55)=-TPK%KC21(:)*PCONC(:,57) +!RPR7/GLY=0.0 ! -!WC_HCHO/WC_SULF=0.0 +!RPR7/ORA1=0.0 ! -!WC_HCHO/WC_HCHO=-KTC36-KC19*<WC_OH>-KC21*<WC_SO2> - PJAC(:,57,57)=-TPK%KTC36(:)-TPK%KC19(:)*PCONC(:,52)-TPK%KC21(:)*PCONC(:,55) +!RPR7/ORA2=0.0 ! -!WC_HCHO/WC_ORA1=0.0 +!RPR7/ACID=0.0 ! -!WC_HCHO/WC_ORA2=0.0 +!RPR7/UR28=0.0 ! -!WC_HCHO/WC_MO2=+2.00*KC17*<WC_MO2>+2.00*KC17*<WC_MO2> - PJAC(:,57,60)=+2.00*TPK%KC17(:)*PCONC(:,60)+2.00*TPK%KC17(:)*PCONC(:,60) +!RPR7/UR21=0.0 ! -!WC_HCHO/WC_OP1=0.0 +!RPR7/URG2=0.0 ! -!WC_HCHO/WC_ASO3=0.0 +!RPR7/UR26=0.0 ! -!WC_HCHO/WC_ASO4=0.0 +!RPR7/RPG2=0.0 ! -!WC_HCHO/WC_ASO5=0.0 +!RPR7/RP18=0.0 ! -!WC_HCHO/WC_AHSO5=0.0 +!RPR7/RPG3=0.0 ! -!WC_HCHO/WC_AHMS=+KC22 - PJAC(:,57,66)=+TPK%KC22(:) +!RPR7/URG4=0.0 ! -!WC_HCHO/WR_O3=0.0 +!RPR7/UR8=0.0 ! -!WC_HCHO/WR_H2O2=0.0 +!RPR7/UR17=0.0 ! -!WC_HCHO/WR_NO=0.0 +!RPR7/UR7=0.0 ! -!WC_HCHO/WR_NO2=0.0 +!RPR7/RPR3=0.0 ! -!WC_HCHO/WR_NO3=0.0 +!RPR7/URG6=0.0 ! -!WC_HCHO/WR_N2O5=0.0 +!RPR7/UR22=0.0 ! -!WC_HCHO/WR_HONO=0.0 +!RPR7/URG7=0.0 ! -!WC_HCHO/WR_HNO3=0.0 +!RPR7/RPR4=0.0 ! -!WC_HCHO/WR_HNO4=0.0 +!RPR7/RPR7=-K322*<OH> + PJAC(:,62,62)=-TPK%K322(:)*PCONC(:,15) ! -!WC_HCHO/WR_NH3=0.0 +!RPR7/RPG7=0.0 ! -!WC_HCHO/WR_OH=0.0 +!RPR7/URG8=0.0 ! -!WC_HCHO/WR_HO2=0.0 +!RPR7/UR19=0.0 ! -!WC_HCHO/WR_CO2=0.0 +!RPR7/URG9=0.0 ! -!WC_HCHO/WR_SO2=0.0 +!RPR7/AP7=0.0 ! -!WC_HCHO/WR_SULF=0.0 +!RPR7/URG10=0.0 ! -!WC_HCHO/WR_HCHO=0.0 +!RPR7/RPR1=0.0 ! -!WC_HCHO/WR_ORA1=0.0 +!RPR7/RPR5=0.0 ! -!WC_HCHO/WR_ORA2=0.0 +!RPR7/RPR8=0.0 ! -!WC_HCHO/WR_MO2=0.0 +!RPR7/RP10=0.0 ! -!WC_HCHO/WR_OP1=0.0 +!RPR7/RP11=0.0 ! -!WC_HCHO/WR_ASO3=0.0 +!RPR7/RP16=0.0 ! -!WC_HCHO/WR_ASO4=0.0 +!RPR7/RPRL=-03*K306*<OH> + PJAC(:,62,75)=-03*TPK%K306(:)*PCONC(:,15) ! -!WC_HCHO/WR_ASO5=0.0 +!RPR7/APAN=0.0 ! -!WC_HCHO/WR_AHSO5=0.0 +!RPR7/PAN1=0.0 ! -!WC_HCHO/WR_AHMS=0.0 +!RPR7/PAN2=0.0 ! -!WC_ORA1/O3=0.0 +!RPR7/PAN3=0.0 ! -!WC_ORA1/H2O2=0.0 +!RPR7/PAN4=0.0 ! -!WC_ORA1/NO=0.0 +!RPR7/PAN6=0.0 ! -!WC_ORA1/NO2=0.0 +!RPR7/PAN7=0.0 ! -!WC_ORA1/NO3=0.0 +!RPR7/PAN8=0.0 ! -!WC_ORA1/N2O5=0.0 +!RPR7/PN10=0.0 ! -!WC_ORA1/HONO=0.0 +!RPR7/RO2T=+K196*<RO223> + PJAC(:,62,85)=+TPK%K196(:)*TPK%RO223(:) ! -!WC_ORA1/HNO3=0.0 +!RPR7/RO21=0.0 ! -!WC_ORA1/HNO4=0.0 +!RPR7/RO25=0.0 ! -!WC_ORA1/NH3=0.0 +!RPG7/NO=+1.0000013*K266*<RO238> + PJAC(:,63,1)=+1.0000013*TPK%K266(:)*TPK%RO238(:) ! -!WC_ORA1/SO2=0.0 +!RPG7/NO2=0.0 ! -!WC_ORA1/SULF=0.0 +!RPG7/O3=0.0 ! -!WC_ORA1/CO=0.0 +!RPG7/HONO=0.0 ! -!WC_ORA1/OH=0.0 +!RPG7/HNO3=0.0 ! -!WC_ORA1/HO2=0.0 +!RPG7/HNO4=0.0 ! -!WC_ORA1/CH4=0.0 +!RPG7/N2O5=0.0 ! -!WC_ORA1/ETH=0.0 +!RPG7/NO3=0.0 ! -!WC_ORA1/ALKA=0.0 +!RPG7/NH3=0.0 ! -!WC_ORA1/ALKE=0.0 +!RPG7/HO2=+1.0000013*K268*<RO238> + PJAC(:,63,10)=+1.0000013*TPK%K268(:)*TPK%RO238(:) ! -!WC_ORA1/BIO=0.0 +!RPG7/CO=0.0 ! -!WC_ORA1/ARO=0.0 +!RPG7/H2O2=0.0 ! -!WC_ORA1/HCHO=0.0 +!RPG7/SO2=0.0 ! -!WC_ORA1/ALD=0.0 +!RPG7/H2SO4=0.0 ! -!WC_ORA1/KET=0.0 +!RPG7/OH=+0.5021558*K323*<RPG7>-K323*<RPG7> + PJAC(:,63,15)=+0.5021558*TPK%K323(:)*PCONC(:,63)-TPK%K323(:)*PCONC(:,63) ! -!WC_ORA1/CARBO=0.0 +!RPG7/ETHE=0.0 ! -!WC_ORA1/ONIT=0.0 +!RPG7/OLEL=0.0 ! -!WC_ORA1/PAN=0.0 +!RPG7/OLEH=0.0 ! -!WC_ORA1/OP1=0.0 +!RPG7/ALKL=0.0 ! -!WC_ORA1/OP2=0.0 +!RPG7/ALKM=0.0 ! -!WC_ORA1/ORA1=+KTC17 - PJAC(:,58,30)=+TPK%KTC17(:) +!RPG7/ALKH=0.0 ! -!WC_ORA1/ORA2=0.0 +!RPG7/AROH=0.0 ! -!WC_ORA1/MO2=0.0 +!RPG7/AROL=0.0 ! -!WC_ORA1/ALKAP=0.0 +!RPG7/AROO=0.0 ! -!WC_ORA1/ALKEP=0.0 +!RPG7/ARAL=0.0 ! -!WC_ORA1/BIOP=0.0 +!RPG7/ARAC=0.0 ! -!WC_ORA1/PHO=0.0 +!RPG7/PAH=0.0 ! -!WC_ORA1/ADD=0.0 +!RPG7/HCHO=0.0 ! -!WC_ORA1/AROP=0.0 +!RPG7/ALD2=0.0 ! -!WC_ORA1/CARBOP=0.0 +!RPG7/KETL=0.0 ! -!WC_ORA1/OLN=0.0 +!RPG7/KETH=0.0 ! -!WC_ORA1/XO2=0.0 +!RPG7/MEOH=0.0 ! -!WC_ORA1/WC_O3=0.0 +!RPG7/ETOH=0.0 ! -!WC_ORA1/WC_H2O2=0.0 +!RPG7/ALCH=0.0 ! -!WC_ORA1/WC_NO=0.0 +!RPG7/ISOP=0.0 ! -!WC_ORA1/WC_NO2=0.0 +!RPG7/BIOL=0.0 ! -!WC_ORA1/WC_NO3=0.0 +!RPG7/BIOH=0.0 ! -!WC_ORA1/WC_N2O5=0.0 +!RPG7/MTBE=0.0 ! -!WC_ORA1/WC_HONO=0.0 +!RPG7/MVK=0.0 ! -!WC_ORA1/WC_HNO3=0.0 +!RPG7/MCR=0.0 ! -!WC_ORA1/WC_HNO4=0.0 +!RPG7/MGLY=0.0 ! -!WC_ORA1/WC_NH3=0.0 +!RPG7/GLY=0.0 ! -!WC_ORA1/WC_OH=+KC19*<WC_HCHO>-KC20*<WC_ORA1>+KC23*<WC_AHMS> - PJAC(:,58,52)=+TPK%KC19(:)*PCONC(:,57)-TPK%KC20(:)*PCONC(:,58)+TPK%KC23(:)*PCO& -&NC(:,66) +!RPG7/ORA1=0.0 ! -!WC_ORA1/WC_HO2=0.0 +!RPG7/ORA2=0.0 ! -!WC_ORA1/WC_CO2=0.0 +!RPG7/ACID=0.0 ! -!WC_ORA1/WC_SO2=0.0 +!RPG7/UR28=0.0 ! -!WC_ORA1/WC_SULF=0.0 +!RPG7/UR21=0.0 ! -!WC_ORA1/WC_HCHO=+KC19*<WC_OH> - PJAC(:,58,57)=+TPK%KC19(:)*PCONC(:,52) +!RPG7/URG2=0.0 ! -!WC_ORA1/WC_ORA1=-KTC37-KC20*<WC_OH> - PJAC(:,58,58)=-TPK%KTC37(:)-TPK%KC20(:)*PCONC(:,52) +!RPG7/UR26=0.0 ! -!WC_ORA1/WC_ORA2=0.0 +!RPG7/RPG2=0.0 ! -!WC_ORA1/WC_MO2=0.0 +!RPG7/RP18=0.0 ! -!WC_ORA1/WC_OP1=0.0 +!RPG7/RPG3=0.0 ! -!WC_ORA1/WC_ASO3=0.0 +!RPG7/URG4=0.0 ! -!WC_ORA1/WC_ASO4=0.0 +!RPG7/UR8=0.0 ! -!WC_ORA1/WC_ASO5=0.0 +!RPG7/UR17=0.0 ! -!WC_ORA1/WC_AHSO5=0.0 +!RPG7/UR7=0.0 ! -!WC_ORA1/WC_AHMS=+KC23*<WC_OH> - PJAC(:,58,66)=+TPK%KC23(:)*PCONC(:,52) +!RPG7/RPR3=0.0 ! -!WC_ORA1/WR_O3=0.0 +!RPG7/URG6=0.0 ! -!WC_ORA1/WR_H2O2=0.0 +!RPG7/UR22=0.0 ! -!WC_ORA1/WR_NO=0.0 +!RPG7/URG7=0.0 ! -!WC_ORA1/WR_NO2=0.0 +!RPG7/RPR4=0.0 ! -!WC_ORA1/WR_NO3=0.0 +!RPG7/RPR7=0.0 ! -!WC_ORA1/WR_N2O5=0.0 +!RPG7/RPG7=+0.5021558*K323*<OH>-K323*<OH> + PJAC(:,63,63)=+0.5021558*TPK%K323(:)*PCONC(:,15)-TPK%K323(:)*PCONC(:,15) ! -!WC_ORA1/WR_HONO=0.0 +!RPG7/URG8=0.0 ! -!WC_ORA1/WR_HNO3=0.0 +!RPG7/UR19=0.0 ! -!WC_ORA1/WR_HNO4=0.0 +!RPG7/URG9=0.0 ! -!WC_ORA1/WR_NH3=0.0 +!RPG7/AP7=0.0 ! -!WC_ORA1/WR_OH=0.0 +!RPG7/URG10=0.0 ! -!WC_ORA1/WR_HO2=0.0 +!RPG7/RPR1=0.0 ! -!WC_ORA1/WR_CO2=0.0 +!RPG7/RPR5=0.0 ! -!WC_ORA1/WR_SO2=0.0 +!RPG7/RPR8=0.0 ! -!WC_ORA1/WR_SULF=0.0 +!RPG7/RP10=0.0 ! -!WC_ORA1/WR_HCHO=0.0 +!RPG7/RP11=0.0 ! -!WC_ORA1/WR_ORA1=0.0 +!RPG7/RP16=0.0 ! -!WC_ORA1/WR_ORA2=0.0 +!RPG7/RPRL=0.0 ! -!WC_ORA1/WR_MO2=0.0 +!RPG7/APAN=0.0 ! -!WC_ORA1/WR_OP1=0.0 +!RPG7/PAN1=0.0 ! -!WC_ORA1/WR_ASO3=0.0 +!RPG7/PAN2=0.0 ! -!WC_ORA1/WR_ASO4=0.0 +!RPG7/PAN3=0.0 ! -!WC_ORA1/WR_ASO5=0.0 +!RPG7/PAN4=0.0 ! -!WC_ORA1/WR_AHSO5=0.0 +!RPG7/PAN6=0.0 ! -!WC_ORA1/WR_AHMS=0.0 +!RPG7/PAN7=0.0 ! -!WC_ORA2/O3=0.0 +!RPG7/PAN8=0.0 ! -!WC_ORA2/H2O2=0.0 +!RPG7/PN10=0.0 ! -!WC_ORA2/NO=0.0 +!RPG7/RO2T=+1.0000013*K267*<RO238> + PJAC(:,63,85)=+1.0000013*TPK%K267(:)*TPK%RO238(:) ! -!WC_ORA2/NO2=0.0 +!RPG7/RO21=0.0 ! -!WC_ORA2/NO3=0.0 +!RPG7/RO25=0.0 ! -!WC_ORA2/N2O5=0.0 +!URG8/NO=+TPK%CF31*K221*<RO231> + PJAC(:,64,1)=+TPK%CF31*TPK%K221(:)*TPK%RO231(:) ! -!WC_ORA2/HONO=0.0 +!URG8/NO2=+1.0000000*K109*<RAD7> + PJAC(:,64,2)=+1.0000000*TPK%K109(:)*TPK%RAD7(:) ! -!WC_ORA2/HNO3=0.0 +!URG8/O3=0.0 ! -!WC_ORA2/HNO4=0.0 +!URG8/HONO=0.0 ! -!WC_ORA2/NH3=0.0 +!URG8/HNO3=0.0 ! -!WC_ORA2/SO2=0.0 +!URG8/HNO4=0.0 ! -!WC_ORA2/SULF=0.0 +!URG8/N2O5=0.0 ! -!WC_ORA2/CO=0.0 +!URG8/NO3=0.0 ! -!WC_ORA2/OH=0.0 +!URG8/NH3=0.0 ! -!WC_ORA2/HO2=0.0 +!URG8/HO2=0.0 ! -!WC_ORA2/CH4=0.0 +!URG8/CO=0.0 ! -!WC_ORA2/ETH=0.0 +!URG8/H2O2=0.0 ! -!WC_ORA2/ALKA=0.0 +!URG8/SO2=0.0 ! -!WC_ORA2/ALKE=0.0 +!URG8/H2SO4=0.0 ! -!WC_ORA2/BIO=0.0 +!URG8/OH=+0.1600000*K092*<PAH> + PJAC(:,64,15)=+0.1600000*TPK%K092(:)*PCONC(:,27) ! -!WC_ORA2/ARO=0.0 +!URG8/ETHE=0.0 ! -!WC_ORA2/HCHO=0.0 +!URG8/OLEL=0.0 ! -!WC_ORA2/ALD=0.0 +!URG8/OLEH=0.0 ! -!WC_ORA2/KET=0.0 +!URG8/ALKL=0.0 ! -!WC_ORA2/CARBO=0.0 +!URG8/ALKM=0.0 ! -!WC_ORA2/ONIT=0.0 +!URG8/ALKH=0.0 ! -!WC_ORA2/PAN=0.0 +!URG8/AROH=0.0 ! -!WC_ORA2/OP1=0.0 +!URG8/AROL=0.0 ! -!WC_ORA2/OP2=0.0 +!URG8/AROO=0.0 ! -!WC_ORA2/ORA1=0.0 +!URG8/ARAL=0.0 ! -!WC_ORA2/ORA2=+KTC18 - PJAC(:,59,31)=+TPK%KTC18(:) +!URG8/ARAC=0.0 ! -!WC_ORA2/MO2=0.0 +!URG8/PAH=+0.1600000*K092*<OH> + PJAC(:,64,27)=+0.1600000*TPK%K092(:)*PCONC(:,15) ! -!WC_ORA2/ALKAP=0.0 +!URG8/HCHO=0.0 ! -!WC_ORA2/ALKEP=0.0 +!URG8/ALD2=0.0 ! -!WC_ORA2/BIOP=0.0 +!URG8/KETL=0.0 ! -!WC_ORA2/PHO=0.0 +!URG8/KETH=0.0 ! -!WC_ORA2/ADD=0.0 +!URG8/MEOH=0.0 ! -!WC_ORA2/AROP=0.0 +!URG8/ETOH=0.0 ! -!WC_ORA2/CARBOP=0.0 +!URG8/ALCH=0.0 ! -!WC_ORA2/OLN=0.0 +!URG8/ISOP=0.0 ! -!WC_ORA2/XO2=0.0 +!URG8/BIOL=0.0 ! -!WC_ORA2/WC_O3=0.0 +!URG8/BIOH=0.0 ! -!WC_ORA2/WC_H2O2=0.0 +!URG8/MTBE=0.0 ! -!WC_ORA2/WC_NO=0.0 +!URG8/MVK=0.0 ! -!WC_ORA2/WC_NO2=0.0 +!URG8/MCR=0.0 ! -!WC_ORA2/WC_NO3=0.0 +!URG8/MGLY=0.0 ! -!WC_ORA2/WC_N2O5=0.0 +!URG8/GLY=0.0 ! -!WC_ORA2/WC_HONO=0.0 +!URG8/ORA1=0.0 ! -!WC_ORA2/WC_HNO3=0.0 +!URG8/ORA2=0.0 ! -!WC_ORA2/WC_HNO4=0.0 +!URG8/ACID=0.0 ! -!WC_ORA2/WC_NH3=0.0 +!URG8/UR28=0.0 ! -!WC_ORA2/WC_OH=0.0 +!URG8/UR21=0.0 ! -!WC_ORA2/WC_HO2=0.0 +!URG8/URG2=0.0 ! -!WC_ORA2/WC_CO2=0.0 +!URG8/UR26=0.0 ! -!WC_ORA2/WC_SO2=0.0 +!URG8/RPG2=0.0 ! -!WC_ORA2/WC_SULF=0.0 +!URG8/RP18=0.0 ! -!WC_ORA2/WC_HCHO=0.0 +!URG8/RPG3=0.0 ! -!WC_ORA2/WC_ORA1=0.0 +!URG8/URG4=0.0 ! -!WC_ORA2/WC_ORA2=-KTC38 - PJAC(:,59,59)=-TPK%KTC38(:) +!URG8/UR8=0.0 ! -!WC_ORA2/WC_MO2=0.0 +!URG8/UR17=0.0 ! -!WC_ORA2/WC_OP1=0.0 +!URG8/UR7=0.0 ! -!WC_ORA2/WC_ASO3=0.0 +!URG8/RPR3=0.0 ! -!WC_ORA2/WC_ASO4=0.0 +!URG8/URG6=0.0 ! -!WC_ORA2/WC_ASO5=0.0 +!URG8/UR22=0.0 ! -!WC_ORA2/WC_AHSO5=0.0 +!URG8/URG7=0.0 ! -!WC_ORA2/WC_AHMS=0.0 +!URG8/RPR4=0.0 ! -!WC_ORA2/WR_O3=0.0 +!URG8/RPR7=0.0 ! -!WC_ORA2/WR_H2O2=0.0 +!URG8/RPG7=0.0 ! -!WC_ORA2/WR_NO=0.0 +!URG8/URG8=-K354 + PJAC(:,64,64)=-TPK%K354(:) ! -!WC_ORA2/WR_NO2=0.0 +!URG8/UR19=0.0 ! -!WC_ORA2/WR_NO3=0.0 +!URG8/URG9=0.0 ! -!WC_ORA2/WR_N2O5=0.0 +!URG8/AP7=0.0 ! -!WC_ORA2/WR_HONO=0.0 +!URG8/URG10=0.0 ! -!WC_ORA2/WR_HNO3=0.0 +!URG8/RPR1=0.0 ! -!WC_ORA2/WR_HNO4=0.0 +!URG8/RPR5=0.0 ! -!WC_ORA2/WR_NH3=0.0 +!URG8/RPR8=0.0 ! -!WC_ORA2/WR_OH=0.0 +!URG8/RP10=0.0 ! -!WC_ORA2/WR_HO2=0.0 +!URG8/RP11=0.0 ! -!WC_ORA2/WR_CO2=0.0 +!URG8/RP16=0.0 ! -!WC_ORA2/WR_SO2=0.0 +!URG8/RPRL=0.0 ! -!WC_ORA2/WR_SULF=0.0 +!URG8/APAN=0.0 ! -!WC_ORA2/WR_HCHO=0.0 +!URG8/PAN1=0.0 ! -!WC_ORA2/WR_ORA1=0.0 +!URG8/PAN2=0.0 ! -!WC_ORA2/WR_ORA2=0.0 +!URG8/PAN3=0.0 ! -!WC_ORA2/WR_MO2=0.0 +!URG8/PAN4=0.0 ! -!WC_ORA2/WR_OP1=0.0 +!URG8/PAN6=0.0 ! -!WC_ORA2/WR_ASO3=0.0 +!URG8/PAN7=0.0 ! -!WC_ORA2/WR_ASO4=0.0 +!URG8/PAN8=0.0 ! -!WC_ORA2/WR_ASO5=0.0 +!URG8/PN10=0.0 ! -!WC_ORA2/WR_AHSO5=0.0 +!URG8/RO2T=0.0 ! -!WC_ORA2/WR_AHMS=0.0 +!URG8/RO21=0.0 ! -!WC_MO2/O3=0.0 +!URG8/RO25=0.0 ! -!WC_MO2/H2O2=0.0 +!UR19/NO=+TPK%CF32*K221*<RO231> + PJAC(:,65,1)=+TPK%CF32*TPK%K221(:)*TPK%RO231(:) ! -!WC_MO2/NO=0.0 +!UR19/NO2=0.0 ! -!WC_MO2/NO2=0.0 +!UR19/O3=0.0 ! -!WC_MO2/NO3=0.0 +!UR19/HONO=0.0 ! -!WC_MO2/N2O5=0.0 +!UR19/HNO3=0.0 ! -!WC_MO2/HONO=0.0 +!UR19/HNO4=0.0 ! -!WC_MO2/HNO3=0.0 +!UR19/N2O5=0.0 ! -!WC_MO2/HNO4=0.0 +!UR19/NO3=0.0 ! -!WC_MO2/NH3=0.0 +!UR19/NH3=0.0 ! -!WC_MO2/SO2=0.0 +!UR19/HO2=+K223*<RO231> + PJAC(:,65,10)=+TPK%K223(:)*TPK%RO231(:) ! -!WC_MO2/SULF=0.0 +!UR19/CO=0.0 ! -!WC_MO2/CO=0.0 +!UR19/H2O2=0.0 ! -!WC_MO2/OH=0.0 +!UR19/SO2=0.0 ! -!WC_MO2/HO2=0.0 +!UR19/H2SO4=0.0 ! -!WC_MO2/CH4=0.0 +!UR19/OH=0.0 ! -!WC_MO2/ETH=0.0 +!UR19/ETHE=0.0 ! -!WC_MO2/ALKA=0.0 +!UR19/OLEL=0.0 ! -!WC_MO2/ALKE=0.0 +!UR19/OLEH=0.0 ! -!WC_MO2/BIO=0.0 +!UR19/ALKL=0.0 ! -!WC_MO2/ARO=0.0 +!UR19/ALKM=0.0 ! -!WC_MO2/HCHO=0.0 +!UR19/ALKH=0.0 ! -!WC_MO2/ALD=0.0 +!UR19/AROH=0.0 ! -!WC_MO2/KET=0.0 +!UR19/AROL=0.0 ! -!WC_MO2/CARBO=0.0 +!UR19/AROO=0.0 ! -!WC_MO2/ONIT=0.0 +!UR19/ARAL=0.0 ! -!WC_MO2/PAN=0.0 +!UR19/ARAC=0.0 ! -!WC_MO2/OP1=0.0 +!UR19/PAH=0.0 ! -!WC_MO2/OP2=0.0 +!UR19/HCHO=0.0 ! -!WC_MO2/ORA1=0.0 +!UR19/ALD2=0.0 ! -!WC_MO2/ORA2=0.0 +!UR19/KETL=0.0 ! -!WC_MO2/MO2=+KTC19 - PJAC(:,60,32)=+TPK%KTC19(:) +!UR19/KETH=0.0 ! -!WC_MO2/ALKAP=0.0 +!UR19/MEOH=0.0 ! -!WC_MO2/ALKEP=0.0 +!UR19/ETOH=0.0 ! -!WC_MO2/BIOP=0.0 +!UR19/ALCH=0.0 ! -!WC_MO2/PHO=0.0 +!UR19/ISOP=0.0 ! -!WC_MO2/ADD=0.0 +!UR19/BIOL=0.0 ! -!WC_MO2/AROP=0.0 +!UR19/BIOH=0.0 ! -!WC_MO2/CARBOP=0.0 +!UR19/MTBE=0.0 ! -!WC_MO2/OLN=0.0 +!UR19/MVK=0.0 ! -!WC_MO2/XO2=0.0 +!UR19/MCR=0.0 ! -!WC_MO2/WC_O3=0.0 +!UR19/MGLY=0.0 ! -!WC_MO2/WC_H2O2=0.0 +!UR19/GLY=0.0 ! -!WC_MO2/WC_NO=0.0 +!UR19/ORA1=0.0 ! -!WC_MO2/WC_NO2=0.0 +!UR19/ORA2=0.0 ! -!WC_MO2/WC_NO3=0.0 +!UR19/ACID=0.0 ! -!WC_MO2/WC_N2O5=0.0 +!UR19/UR28=0.0 ! -!WC_MO2/WC_HONO=0.0 +!UR19/UR21=0.0 ! -!WC_MO2/WC_HNO3=0.0 +!UR19/URG2=0.0 ! -!WC_MO2/WC_HNO4=0.0 +!UR19/UR26=0.0 ! -!WC_MO2/WC_NH3=0.0 +!UR19/RPG2=0.0 ! -!WC_MO2/WC_OH=0.0 +!UR19/RP18=0.0 ! -!WC_MO2/WC_HO2=0.0 +!UR19/RPG3=0.0 ! -!WC_MO2/WC_CO2=0.0 +!UR19/URG4=0.0 ! -!WC_MO2/WC_SO2=-KC18*<WC_MO2> - PJAC(:,60,55)=-TPK%KC18(:)*PCONC(:,60) +!UR19/UR8=0.0 ! -!WC_MO2/WC_SULF=0.0 +!UR19/UR17=0.0 ! -!WC_MO2/WC_HCHO=0.0 +!UR19/UR7=0.0 ! -!WC_MO2/WC_ORA1=0.0 +!UR19/RPR3=0.0 ! -!WC_MO2/WC_ORA2=0.0 +!UR19/URG6=0.0 ! -!WC_MO2/WC_MO2=-KTC39-KC17*<WC_MO2>-KC17*<WC_MO2>-KC17*<WC_MO2>-KC17*<WC_MO2>-K -!C18*<WC_SO2> - PJAC(:,60,60)=-TPK%KTC39(:)-TPK%KC17(:)*PCONC(:,60)-TPK%KC17(:)*PCONC(:,60)-TP& -&K%KC17(:)*PCONC(:,60)-TPK%KC17(:)*PCONC(:,60)-TPK%KC18(:)*PCONC(:,55) +!UR19/UR22=0.0 ! -!WC_MO2/WC_OP1=0.0 +!UR19/URG7=0.0 ! -!WC_MO2/WC_ASO3=0.0 +!UR19/RPR4=0.0 ! -!WC_MO2/WC_ASO4=0.0 +!UR19/RPR7=0.0 ! -!WC_MO2/WC_ASO5=0.0 +!UR19/RPG7=0.0 ! -!WC_MO2/WC_AHSO5=0.0 +!UR19/URG8=0.0 ! -!WC_MO2/WC_AHMS=0.0 +!UR19/UR19=-K360 + PJAC(:,65,65)=-TPK%K360(:) ! -!WC_MO2/WR_O3=0.0 +!UR19/URG9=0.0 ! -!WC_MO2/WR_H2O2=0.0 +!UR19/AP7=0.0 ! -!WC_MO2/WR_NO=0.0 +!UR19/URG10=0.0 ! -!WC_MO2/WR_NO2=0.0 +!UR19/RPR1=0.0 ! -!WC_MO2/WR_NO3=0.0 +!UR19/RPR5=0.0 ! -!WC_MO2/WR_N2O5=0.0 +!UR19/RPR8=0.0 ! -!WC_MO2/WR_HONO=0.0 +!UR19/RP10=0.0 ! -!WC_MO2/WR_HNO3=0.0 +!UR19/RP11=0.0 ! -!WC_MO2/WR_HNO4=0.0 +!UR19/RP16=0.0 ! -!WC_MO2/WR_NH3=0.0 +!UR19/RPRL=0.0 ! -!WC_MO2/WR_OH=0.0 +!UR19/APAN=0.0 ! -!WC_MO2/WR_HO2=0.0 +!UR19/PAN1=0.0 ! -!WC_MO2/WR_CO2=0.0 +!UR19/PAN2=0.0 ! -!WC_MO2/WR_SO2=0.0 +!UR19/PAN3=0.0 ! -!WC_MO2/WR_SULF=0.0 +!UR19/PAN4=0.0 ! -!WC_MO2/WR_HCHO=0.0 +!UR19/PAN6=0.0 ! -!WC_MO2/WR_ORA1=0.0 +!UR19/PAN7=0.0 ! -!WC_MO2/WR_ORA2=0.0 +!UR19/PAN8=0.0 ! -!WC_MO2/WR_MO2=0.0 +!UR19/PN10=0.0 ! -!WC_MO2/WR_OP1=0.0 +!UR19/RO2T=+K222*<RO231> + PJAC(:,65,85)=+TPK%K222(:)*TPK%RO231(:) ! -!WC_MO2/WR_ASO3=0.0 +!UR19/RO21=0.0 ! -!WC_MO2/WR_ASO4=0.0 +!UR19/RO25=0.0 ! -!WC_MO2/WR_ASO5=0.0 +RETURN +END SUBROUTINE SUBJ12 ! -!WC_MO2/WR_AHSO5=0.0 +SUBROUTINE SUBJ13 ! -!WC_MO2/WR_AHMS=0.0 +!Indices 66 a 70 ! -RETURN -END SUBROUTINE SUBJ11 ! -SUBROUTINE SUBJ12 +!URG9/NO=+TPK%CFA14*K224*<RO232>+TPK%CFA16*K227*<RO241>+TPK%CFA15*K227*<RO241> + PJAC(:,66,1)=+TPK%CFA14*TPK%K224(:)*TPK%RO232(:)+TPK%CFA16*TPK%K227(:)*TPK%RO2& +&41(:)+TPK%CFA15*TPK%K227(:)*TPK%RO241(:) ! -!Indices 61 a 65 +!URG9/NO2=0.0 ! +!URG9/O3=0.0 ! -!WC_OP1/O3=0.0 +!URG9/HONO=0.0 ! -!WC_OP1/H2O2=0.0 +!URG9/HNO3=0.0 ! -!WC_OP1/NO=0.0 +!URG9/HNO4=0.0 ! -!WC_OP1/NO2=0.0 +!URG9/N2O5=0.0 ! -!WC_OP1/NO3=0.0 +!URG9/NO3=0.0 ! -!WC_OP1/N2O5=0.0 +!URG9/NH3=0.0 ! -!WC_OP1/HONO=0.0 +!URG9/HO2=+0.9999996*K229*<RO241> + PJAC(:,66,10)=+0.9999996*TPK%K229(:)*TPK%RO241(:) ! -!WC_OP1/HNO3=0.0 +!URG9/CO=0.0 ! -!WC_OP1/HNO4=0.0 +!URG9/H2O2=0.0 ! -!WC_OP1/NH3=0.0 +!URG9/SO2=0.0 ! -!WC_OP1/SO2=0.0 +!URG9/H2SO4=0.0 ! -!WC_OP1/SULF=0.0 +!URG9/OH=0.0 ! -!WC_OP1/CO=0.0 +!URG9/ETHE=0.0 ! -!WC_OP1/OH=0.0 +!URG9/OLEL=0.0 ! -!WC_OP1/HO2=0.0 +!URG9/OLEH=0.0 ! -!WC_OP1/CH4=0.0 +!URG9/ALKL=0.0 ! -!WC_OP1/ETH=0.0 +!URG9/ALKM=0.0 ! -!WC_OP1/ALKA=0.0 +!URG9/ALKH=0.0 ! -!WC_OP1/ALKE=0.0 +!URG9/AROH=0.0 ! -!WC_OP1/BIO=0.0 +!URG9/AROL=0.0 ! -!WC_OP1/ARO=0.0 +!URG9/AROO=0.0 ! -!WC_OP1/HCHO=0.0 +!URG9/ARAL=0.0 ! -!WC_OP1/ALD=0.0 +!URG9/ARAC=0.0 ! -!WC_OP1/KET=0.0 +!URG9/PAH=0.0 ! -!WC_OP1/CARBO=0.0 +!URG9/HCHO=0.0 ! -!WC_OP1/ONIT=0.0 +!URG9/ALD2=0.0 ! -!WC_OP1/PAN=0.0 +!URG9/KETL=0.0 ! -!WC_OP1/OP1=+KTC20 - PJAC(:,61,28)=+TPK%KTC20(:) +!URG9/KETH=0.0 ! -!WC_OP1/OP2=0.0 +!URG9/MEOH=0.0 ! -!WC_OP1/ORA1=0.0 +!URG9/ETOH=0.0 ! -!WC_OP1/ORA2=0.0 +!URG9/ALCH=0.0 ! -!WC_OP1/MO2=0.0 +!URG9/ISOP=0.0 ! -!WC_OP1/ALKAP=0.0 +!URG9/BIOL=0.0 ! -!WC_OP1/ALKEP=0.0 +!URG9/BIOH=0.0 ! -!WC_OP1/BIOP=0.0 +!URG9/MTBE=0.0 ! -!WC_OP1/PHO=0.0 +!URG9/MVK=0.0 ! -!WC_OP1/ADD=0.0 +!URG9/MCR=0.0 ! -!WC_OP1/AROP=0.0 +!URG9/MGLY=0.0 ! -!WC_OP1/CARBOP=0.0 +!URG9/GLY=0.0 ! -!WC_OP1/OLN=0.0 +!URG9/ORA1=0.0 ! -!WC_OP1/XO2=0.0 +!URG9/ORA2=0.0 ! -!WC_OP1/WC_O3=0.0 +!URG9/ACID=0.0 ! -!WC_OP1/WC_H2O2=0.0 +!URG9/UR28=0.0 ! -!WC_OP1/WC_NO=0.0 +!URG9/UR21=0.0 ! -!WC_OP1/WC_NO2=0.0 +!URG9/URG2=0.0 ! -!WC_OP1/WC_NO3=0.0 +!URG9/UR26=0.0 ! -!WC_OP1/WC_N2O5=0.0 +!URG9/RPG2=0.0 ! -!WC_OP1/WC_HONO=0.0 +!URG9/RP18=0.0 ! -!WC_OP1/WC_HNO3=0.0 +!URG9/RPG3=0.0 ! -!WC_OP1/WC_HNO4=0.0 +!URG9/URG4=0.0 ! -!WC_OP1/WC_NH3=0.0 +!URG9/UR8=0.0 ! -!WC_OP1/WC_OH=0.0 +!URG9/UR17=0.0 ! -!WC_OP1/WC_HO2=0.0 +!URG9/UR7=0.0 ! -!WC_OP1/WC_CO2=0.0 +!URG9/RPR3=0.0 ! -!WC_OP1/WC_SO2=+KC18*<WC_MO2> - PJAC(:,61,55)=+TPK%KC18(:)*PCONC(:,60) +!URG9/URG6=0.0 ! -!WC_OP1/WC_SULF=0.0 +!URG9/UR22=0.0 ! -!WC_OP1/WC_HCHO=0.0 +!URG9/URG7=0.0 ! -!WC_OP1/WC_ORA1=0.0 +!URG9/RPR4=0.0 ! -!WC_OP1/WC_ORA2=0.0 +!URG9/RPR7=0.0 ! -!WC_OP1/WC_MO2=+KC18*<WC_SO2> - PJAC(:,61,60)=+TPK%KC18(:)*PCONC(:,55) +!URG9/RPG7=0.0 ! -!WC_OP1/WC_OP1=-KTC40 - PJAC(:,61,61)=-TPK%KTC40(:) +!URG9/URG8=0.0 ! -!WC_OP1/WC_ASO3=0.0 +!URG9/UR19=0.0 ! -!WC_OP1/WC_ASO4=0.0 +!URG9/URG9=-K355 + PJAC(:,66,66)=-TPK%K355(:) ! -!WC_OP1/WC_ASO5=0.0 +!URG9/AP7=0.0 ! -!WC_OP1/WC_AHSO5=0.0 +!URG9/URG10=0.0 ! -!WC_OP1/WC_AHMS=0.0 +!URG9/RPR1=0.0 ! -!WC_OP1/WR_O3=0.0 +!URG9/RPR5=0.0 ! -!WC_OP1/WR_H2O2=0.0 +!URG9/RPR8=0.0 ! -!WC_OP1/WR_NO=0.0 +!URG9/RP10=0.0 ! -!WC_OP1/WR_NO2=0.0 +!URG9/RP11=0.0 ! -!WC_OP1/WR_NO3=0.0 +!URG9/RP16=0.0 ! -!WC_OP1/WR_N2O5=0.0 +!URG9/RPRL=0.0 ! -!WC_OP1/WR_HONO=0.0 +!URG9/APAN=0.0 ! -!WC_OP1/WR_HNO3=0.0 +!URG9/PAN1=0.0 ! -!WC_OP1/WR_HNO4=0.0 +!URG9/PAN2=0.0 ! -!WC_OP1/WR_NH3=0.0 +!URG9/PAN3=0.0 ! -!WC_OP1/WR_OH=0.0 +!URG9/PAN4=0.0 ! -!WC_OP1/WR_HO2=0.0 +!URG9/PAN6=0.0 ! -!WC_OP1/WR_CO2=0.0 +!URG9/PAN7=0.0 ! -!WC_OP1/WR_SO2=0.0 +!URG9/PAN8=0.0 ! -!WC_OP1/WR_SULF=0.0 +!URG9/PN10=0.0 ! -!WC_OP1/WR_HCHO=0.0 +!URG9/RO2T=+0.9999996*K228*<RO241> + PJAC(:,66,85)=+0.9999996*TPK%K228(:)*TPK%RO241(:) ! -!WC_OP1/WR_ORA1=0.0 +!URG9/RO21=0.0 ! -!WC_OP1/WR_ORA2=0.0 +!URG9/RO25=0.0 ! -!WC_OP1/WR_MO2=0.0 +!AP7/NO=+TPK%CFA23*K198*<RO224> + PJAC(:,67,1)=+TPK%CFA23*TPK%K198(:)*TPK%RO224(:) ! -!WC_OP1/WR_OP1=0.0 +!AP7/NO2=0.0 ! -!WC_OP1/WR_ASO3=0.0 +!AP7/O3=0.0 ! -!WC_OP1/WR_ASO4=0.0 +!AP7/HONO=0.0 ! -!WC_OP1/WR_ASO5=0.0 +!AP7/HNO3=0.0 ! -!WC_OP1/WR_AHSO5=0.0 +!AP7/HNO4=0.0 ! -!WC_OP1/WR_AHMS=0.0 +!AP7/N2O5=0.0 ! -!WC_ASO3/O3=0.0 +!AP7/NO3=0.0 ! -!WC_ASO3/H2O2=0.0 +!AP7/NH3=0.0 ! -!WC_ASO3/NO=0.0 +!AP7/HO2=0.0 ! -!WC_ASO3/NO2=0.0 +!AP7/CO=0.0 ! -!WC_ASO3/NO3=0.0 +!AP7/H2O2=0.0 ! -!WC_ASO3/N2O5=0.0 +!AP7/SO2=0.0 ! -!WC_ASO3/HONO=0.0 +!AP7/H2SO4=0.0 ! -!WC_ASO3/HNO3=0.0 +!AP7/OH=0.0 ! -!WC_ASO3/HNO4=0.0 +!AP7/ETHE=0.0 ! -!WC_ASO3/NH3=0.0 +!AP7/OLEL=0.0 ! -!WC_ASO3/SO2=0.0 +!AP7/OLEH=0.0 ! -!WC_ASO3/SULF=0.0 +!AP7/ALKL=0.0 ! -!WC_ASO3/CO=0.0 +!AP7/ALKM=0.0 ! -!WC_ASO3/OH=0.0 +!AP7/ALKH=0.0 ! -!WC_ASO3/HO2=0.0 +!AP7/AROH=0.0 ! -!WC_ASO3/CH4=0.0 +!AP7/AROL=0.0 ! -!WC_ASO3/ETH=0.0 +!AP7/AROO=0.0 ! -!WC_ASO3/ALKA=0.0 +!AP7/ARAL=0.0 ! -!WC_ASO3/ALKE=0.0 +!AP7/ARAC=0.0 ! -!WC_ASO3/BIO=0.0 +!AP7/PAH=0.0 ! -!WC_ASO3/ARO=0.0 +!AP7/HCHO=0.0 ! -!WC_ASO3/HCHO=0.0 +!AP7/ALD2=0.0 ! -!WC_ASO3/ALD=0.0 +!AP7/KETL=0.0 ! -!WC_ASO3/KET=0.0 +!AP7/KETH=0.0 ! -!WC_ASO3/CARBO=0.0 +!AP7/MEOH=0.0 ! -!WC_ASO3/ONIT=0.0 +!AP7/ETOH=0.0 ! -!WC_ASO3/PAN=0.0 +!AP7/ALCH=0.0 ! -!WC_ASO3/OP1=0.0 +!AP7/ISOP=0.0 ! -!WC_ASO3/OP2=0.0 +!AP7/BIOL=0.0 ! -!WC_ASO3/ORA1=0.0 +!AP7/BIOH=0.0 ! -!WC_ASO3/ORA2=0.0 +!AP7/MTBE=0.0 ! -!WC_ASO3/MO2=0.0 +!AP7/MVK=0.0 ! -!WC_ASO3/ALKAP=0.0 +!AP7/MCR=0.0 ! -!WC_ASO3/ALKEP=0.0 +!AP7/MGLY=0.0 ! -!WC_ASO3/BIOP=0.0 +!AP7/GLY=0.0 ! -!WC_ASO3/PHO=0.0 +!AP7/ORA1=0.0 ! -!WC_ASO3/ADD=0.0 +!AP7/ORA2=0.0 ! -!WC_ASO3/AROP=0.0 +!AP7/ACID=0.0 ! -!WC_ASO3/CARBOP=0.0 +!AP7/UR28=0.0 ! -!WC_ASO3/OLN=0.0 +!AP7/UR21=0.0 ! -!WC_ASO3/XO2=0.0 +!AP7/URG2=0.0 ! -!WC_ASO3/WC_O3=0.0 +!AP7/UR26=0.0 ! -!WC_ASO3/WC_H2O2=0.0 +!AP7/RPG2=0.0 ! -!WC_ASO3/WC_NO=0.0 +!AP7/RP18=0.0 ! -!WC_ASO3/WC_NO2=0.0 +!AP7/RPG3=0.0 ! -!WC_ASO3/WC_NO3=+KC16*<WC_SO2> - PJAC(:,62,46)=+TPK%KC16(:)*PCONC(:,55) +!AP7/URG4=0.0 ! -!WC_ASO3/WC_N2O5=0.0 +!AP7/UR8=0.0 ! -!WC_ASO3/WC_HONO=0.0 +!AP7/UR17=0.0 ! -!WC_ASO3/WC_HNO3=0.0 +!AP7/UR7=0.0 ! -!WC_ASO3/WC_HNO4=0.0 +!AP7/RPR3=0.0 ! -!WC_ASO3/WC_NH3=0.0 +!AP7/URG6=0.0 ! -!WC_ASO3/WC_OH=+KC7*<WC_SO2> - PJAC(:,62,52)=+TPK%KC7(:)*PCONC(:,55) +!AP7/UR22=0.0 ! -!WC_ASO3/WC_HO2=0.0 +!AP7/URG7=0.0 ! -!WC_ASO3/WC_CO2=0.0 +!AP7/RPR4=0.0 ! -!WC_ASO3/WC_SO2=+KC7*<WC_OH>+KC16*<WC_NO3>+KC18*<WC_MO2> - PJAC(:,62,55)=+TPK%KC7(:)*PCONC(:,52)+TPK%KC16(:)*PCONC(:,46)+TPK%KC18(:)*PCON& -&C(:,60) +!AP7/RPR7=0.0 ! -!WC_ASO3/WC_SULF=0.0 +!AP7/RPG7=0.0 ! -!WC_ASO3/WC_HCHO=0.0 +!AP7/URG8=0.0 ! -!WC_ASO3/WC_ORA1=0.0 +!AP7/UR19=0.0 ! -!WC_ASO3/WC_ORA2=0.0 +!AP7/URG9=0.0 ! -!WC_ASO3/WC_MO2=+KC18*<WC_SO2> - PJAC(:,62,60)=+TPK%KC18(:)*PCONC(:,55) +!AP7/AP7=-K365 + PJAC(:,67,67)=-TPK%K365(:) ! -!WC_ASO3/WC_OP1=0.0 +!AP7/URG10=0.0 ! -!WC_ASO3/WC_ASO3=-KC24*<W_O2> - PJAC(:,62,62)=-TPK%KC24(:)*TPK%W_O2(:) +!AP7/RPR1=0.0 ! -!WC_ASO3/WC_ASO4=0.0 +!AP7/RPR5=0.0 ! -!WC_ASO3/WC_ASO5=0.0 +!AP7/RPR8=0.0 ! -!WC_ASO3/WC_AHSO5=0.0 +!AP7/RP10=0.0 ! -!WC_ASO3/WC_AHMS=0.0 +!AP7/RP11=0.0 ! -!WC_ASO3/WR_O3=0.0 +!AP7/RP16=0.0 ! -!WC_ASO3/WR_H2O2=0.0 +!AP7/RPRL=0.0 ! -!WC_ASO3/WR_NO=0.0 +!AP7/APAN=0.0 ! -!WC_ASO3/WR_NO2=0.0 +!AP7/PAN1=0.0 ! -!WC_ASO3/WR_NO3=0.0 +!AP7/PAN2=0.0 ! -!WC_ASO3/WR_N2O5=0.0 +!AP7/PAN3=0.0 ! -!WC_ASO3/WR_HONO=0.0 +!AP7/PAN4=0.0 ! -!WC_ASO3/WR_HNO3=0.0 +!AP7/PAN6=0.0 ! -!WC_ASO3/WR_HNO4=0.0 +!AP7/PAN7=0.0 ! -!WC_ASO3/WR_NH3=0.0 +!AP7/PAN8=0.0 ! -!WC_ASO3/WR_OH=0.0 +!AP7/PN10=0.0 ! -!WC_ASO3/WR_HO2=0.0 +!AP7/RO2T=0.0 ! -!WC_ASO3/WR_CO2=0.0 +!AP7/RO21=0.0 ! -!WC_ASO3/WR_SO2=0.0 +!AP7/RO25=0.0 ! -!WC_ASO3/WR_SULF=0.0 +!URG10/NO=+TPK%CF27*K207*<RO227> + PJAC(:,68,1)=+TPK%CF27*TPK%K207(:)*TPK%RO227(:) ! -!WC_ASO3/WR_HCHO=0.0 +!URG10/NO2=0.0 ! -!WC_ASO3/WR_ORA1=0.0 +!URG10/O3=0.0 ! -!WC_ASO3/WR_ORA2=0.0 +!URG10/HONO=0.0 ! -!WC_ASO3/WR_MO2=0.0 +!URG10/HNO3=0.0 ! -!WC_ASO3/WR_OP1=0.0 +!URG10/HNO4=0.0 ! -!WC_ASO3/WR_ASO3=0.0 +!URG10/N2O5=0.0 ! -!WC_ASO3/WR_ASO4=0.0 +!URG10/NO3=0.0 ! -!WC_ASO3/WR_ASO5=0.0 +!URG10/NH3=0.0 ! -!WC_ASO3/WR_AHSO5=0.0 +!URG10/HO2=0.0 ! -!WC_ASO3/WR_AHMS=0.0 +!URG10/CO=0.0 ! -!WC_ASO4/O3=0.0 +!URG10/H2O2=0.0 ! -!WC_ASO4/H2O2=0.0 +!URG10/SO2=0.0 ! -!WC_ASO4/NO=0.0 +!URG10/H2SO4=0.0 ! -!WC_ASO4/NO2=0.0 +!URG10/OH=0.0 ! -!WC_ASO4/NO3=0.0 +!URG10/ETHE=0.0 ! -!WC_ASO4/N2O5=0.0 +!URG10/OLEL=0.0 ! -!WC_ASO4/HONO=0.0 +!URG10/OLEH=0.0 ! -!WC_ASO4/HNO3=0.0 +!URG10/ALKL=0.0 ! -!WC_ASO4/HNO4=0.0 +!URG10/ALKM=0.0 ! -!WC_ASO4/NH3=0.0 +!URG10/ALKH=0.0 ! -!WC_ASO4/SO2=0.0 +!URG10/AROH=0.0 ! -!WC_ASO4/SULF=0.0 +!URG10/AROL=0.0 ! -!WC_ASO4/CO=0.0 +!URG10/AROO=0.0 ! -!WC_ASO4/OH=0.0 +!URG10/ARAL=0.0 ! -!WC_ASO4/HO2=0.0 +!URG10/ARAC=0.0 ! -!WC_ASO4/CH4=0.0 +!URG10/PAH=0.0 ! -!WC_ASO4/ETH=0.0 +!URG10/HCHO=0.0 ! -!WC_ASO4/ALKA=0.0 +!URG10/ALD2=0.0 ! -!WC_ASO4/ALKE=0.0 +!URG10/KETL=0.0 ! -!WC_ASO4/BIO=0.0 +!URG10/KETH=0.0 ! -!WC_ASO4/ARO=0.0 +!URG10/MEOH=0.0 ! -!WC_ASO4/HCHO=0.0 +!URG10/ETOH=0.0 ! -!WC_ASO4/ALD=0.0 +!URG10/ALCH=0.0 ! -!WC_ASO4/KET=0.0 +!URG10/ISOP=0.0 ! -!WC_ASO4/CARBO=0.0 +!URG10/BIOL=+0.2500000*K087*<O>+0.7500000*K087*<O> + PJAC(:,68,36)=+0.2500000*TPK%K087(:)*TPK%O(:)+0.7500000*TPK%K087(:)*TPK%O(:) ! -!WC_ASO4/ONIT=0.0 +!URG10/BIOH=0.0 ! -!WC_ASO4/PAN=0.0 +!URG10/MTBE=0.0 ! -!WC_ASO4/OP1=0.0 +!URG10/MVK=0.0 ! -!WC_ASO4/OP2=0.0 +!URG10/MCR=0.0 ! -!WC_ASO4/ORA1=0.0 +!URG10/MGLY=0.0 ! -!WC_ASO4/ORA2=0.0 +!URG10/GLY=0.0 ! -!WC_ASO4/MO2=0.0 +!URG10/ORA1=0.0 ! -!WC_ASO4/ALKAP=0.0 +!URG10/ORA2=0.0 ! -!WC_ASO4/ALKEP=0.0 +!URG10/ACID=0.0 ! -!WC_ASO4/BIOP=0.0 +!URG10/UR28=0.0 ! -!WC_ASO4/PHO=0.0 +!URG10/UR21=0.0 ! -!WC_ASO4/ADD=0.0 +!URG10/URG2=0.0 ! -!WC_ASO4/AROP=0.0 +!URG10/UR26=0.0 ! -!WC_ASO4/CARBOP=0.0 +!URG10/RPG2=0.0 ! -!WC_ASO4/OLN=0.0 +!URG10/RP18=0.0 ! -!WC_ASO4/XO2=0.0 +!URG10/RPG3=0.0 ! -!WC_ASO4/WC_O3=0.0 +!URG10/URG4=0.0 ! -!WC_ASO4/WC_H2O2=0.0 +!URG10/UR8=0.0 ! -!WC_ASO4/WC_NO=0.0 +!URG10/UR17=0.0 ! -!WC_ASO4/WC_NO2=0.0 +!URG10/UR7=0.0 ! -!WC_ASO4/WC_NO3=+KC15*<WC_SULF> - PJAC(:,63,46)=+TPK%KC15(:)*PCONC(:,56) +!URG10/RPR3=0.0 ! -!WC_ASO4/WC_N2O5=0.0 +!URG10/URG6=0.0 ! -!WC_ASO4/WC_HONO=0.0 +!URG10/UR22=0.0 ! -!WC_ASO4/WC_HNO3=0.0 +!URG10/URG7=0.0 ! -!WC_ASO4/WC_HNO4=0.0 +!URG10/RPR4=0.0 ! -!WC_ASO4/WC_NH3=0.0 +!URG10/RPR7=0.0 ! -!WC_ASO4/WC_OH=0.0 +!URG10/RPG7=0.0 ! -!WC_ASO4/WC_HO2=0.0 +!URG10/URG8=0.0 ! -!WC_ASO4/WC_CO2=0.0 +!URG10/UR19=0.0 ! -!WC_ASO4/WC_SO2=0.0 +!URG10/URG9=0.0 ! -!WC_ASO4/WC_SULF=+KC15*<WC_NO3> - PJAC(:,63,56)=+TPK%KC15(:)*PCONC(:,46) +!URG10/AP7=0.0 ! -!WC_ASO4/WC_HCHO=0.0 +!URG10/URG10=-K356 + PJAC(:,68,68)=-TPK%K356(:) ! -!WC_ASO4/WC_ORA1=0.0 +!URG10/RPR1=0.0 ! -!WC_ASO4/WC_ORA2=0.0 +!URG10/RPR5=0.0 ! -!WC_ASO4/WC_MO2=0.0 +!URG10/RPR8=0.0 ! -!WC_ASO4/WC_OP1=0.0 +!URG10/RP10=0.0 ! -!WC_ASO4/WC_ASO3=0.0 +!URG10/RP11=0.0 ! -!WC_ASO4/WC_ASO4=-KC28 - PJAC(:,63,63)=-TPK%KC28(:) +!URG10/RP16=0.0 ! -!WC_ASO4/WC_ASO5=+KC26*<WC_ASO5>+KC26*<WC_ASO5>+KC26*<WC_ASO5>+KC26*<WC_ASO5> - PJAC(:,63,64)=+TPK%KC26(:)*PCONC(:,64)+TPK%KC26(:)*PCONC(:,64)+TPK%KC26(:)*PCO& -&NC(:,64)+TPK%KC26(:)*PCONC(:,64) +!URG10/RPRL=0.0 ! -!WC_ASO4/WC_AHSO5=0.0 +!URG10/APAN=0.0 ! -!WC_ASO4/WC_AHMS=0.0 +!URG10/PAN1=0.0 ! -!WC_ASO4/WR_O3=0.0 +!URG10/PAN2=0.0 ! -!WC_ASO4/WR_H2O2=0.0 +!URG10/PAN3=0.0 ! -!WC_ASO4/WR_NO=0.0 +!URG10/PAN4=0.0 ! -!WC_ASO4/WR_NO2=0.0 +!URG10/PAN6=0.0 ! -!WC_ASO4/WR_NO3=0.0 +!URG10/PAN7=0.0 ! -!WC_ASO4/WR_N2O5=0.0 +!URG10/PAN8=0.0 ! -!WC_ASO4/WR_HONO=0.0 +!URG10/PN10=0.0 ! -!WC_ASO4/WR_HNO3=0.0 +!URG10/RO2T=0.0 ! -!WC_ASO4/WR_HNO4=0.0 +!URG10/RO21=0.0 ! -!WC_ASO4/WR_NH3=0.0 +!URG10/RO25=0.0 ! -!WC_ASO4/WR_OH=0.0 +!RPR1/NO=+K183*<RO219> + PJAC(:,69,1)=+TPK%K183(:)*TPK%RO219(:) ! -!WC_ASO4/WR_HO2=0.0 +!RPR1/NO2=0.0 ! -!WC_ASO4/WR_CO2=0.0 +!RPR1/O3=+0.5*K076*<OLEH> + PJAC(:,69,3)=+0.5*TPK%K076(:)*PCONC(:,18) ! -!WC_ASO4/WR_SO2=0.0 +!RPR1/HONO=0.0 ! -!WC_ASO4/WR_SULF=0.0 +!RPR1/HNO3=0.0 ! -!WC_ASO4/WR_HCHO=0.0 +!RPR1/HNO4=0.0 ! -!WC_ASO4/WR_ORA1=0.0 +!RPR1/N2O5=0.0 ! -!WC_ASO4/WR_ORA2=0.0 +!RPR1/NO3=-K307*<RPR1> + PJAC(:,69,8)=-TPK%K307(:)*PCONC(:,69) ! -!WC_ASO4/WR_MO2=0.0 +!RPR1/NH3=0.0 ! -!WC_ASO4/WR_OP1=0.0 +!RPR1/HO2=+K185*<RO219> + PJAC(:,69,10)=+TPK%K185(:)*TPK%RO219(:) ! -!WC_ASO4/WR_ASO3=0.0 +!RPR1/CO=0.0 ! -!WC_ASO4/WR_ASO4=0.0 +!RPR1/H2O2=0.0 ! -!WC_ASO4/WR_ASO5=0.0 +!RPR1/SO2=0.0 ! -!WC_ASO4/WR_AHSO5=0.0 +!RPR1/H2SO4=0.0 ! -!WC_ASO4/WR_AHMS=0.0 +!RPR1/OH=-K304*<RPR1> + PJAC(:,69,15)=-TPK%K304(:)*PCONC(:,69) ! -!WC_ASO5/O3=0.0 +!RPR1/ETHE=0.0 ! -!WC_ASO5/H2O2=0.0 +!RPR1/OLEL=0.0 ! -!WC_ASO5/NO=0.0 +!RPR1/OLEH=+0.5*K076*<O3>+0.4*K077*<O> + PJAC(:,69,18)=+0.5*TPK%K076(:)*PCONC(:,3)+0.4*TPK%K077(:)*TPK%O(:) ! -!WC_ASO5/NO2=0.0 +!RPR1/ALKL=0.0 ! -!WC_ASO5/NO3=0.0 +!RPR1/ALKM=0.0 ! -!WC_ASO5/N2O5=0.0 +!RPR1/ALKH=0.0 ! -!WC_ASO5/HONO=0.0 +!RPR1/AROH=0.0 ! -!WC_ASO5/HNO3=0.0 +!RPR1/AROL=0.0 ! -!WC_ASO5/HNO4=0.0 +!RPR1/AROO=0.0 ! -!WC_ASO5/NH3=0.0 +!RPR1/ARAL=0.0 ! -!WC_ASO5/SO2=0.0 +!RPR1/ARAC=0.0 ! -!WC_ASO5/SULF=0.0 +!RPR1/PAH=0.0 ! -!WC_ASO5/CO=0.0 +!RPR1/HCHO=0.0 ! -!WC_ASO5/OH=0.0 +!RPR1/ALD2=0.0 ! -!WC_ASO5/HO2=0.0 +!RPR1/KETL=0.0 ! -!WC_ASO5/CH4=0.0 +!RPR1/KETH=0.0 ! -!WC_ASO5/ETH=0.0 +!RPR1/MEOH=0.0 ! -!WC_ASO5/ALKA=0.0 +!RPR1/ETOH=0.0 ! -!WC_ASO5/ALKE=0.0 +!RPR1/ALCH=0.0 ! -!WC_ASO5/BIO=0.0 +!RPR1/ISOP=0.0 ! -!WC_ASO5/ARO=0.0 +!RPR1/BIOL=0.0 ! -!WC_ASO5/HCHO=0.0 +!RPR1/BIOH=0.0 ! -!WC_ASO5/ALD=0.0 +!RPR1/MTBE=0.0 ! -!WC_ASO5/KET=0.0 +!RPR1/MVK=0.0 ! -!WC_ASO5/CARBO=0.0 +!RPR1/MCR=0.0 ! -!WC_ASO5/ONIT=0.0 +!RPR1/MGLY=0.0 ! -!WC_ASO5/PAN=0.0 +!RPR1/GLY=0.0 ! -!WC_ASO5/OP1=0.0 +!RPR1/ORA1=0.0 ! -!WC_ASO5/OP2=0.0 +!RPR1/ORA2=0.0 ! -!WC_ASO5/ORA1=0.0 +!RPR1/ACID=0.0 ! -!WC_ASO5/ORA2=0.0 +!RPR1/UR28=0.0 ! -!WC_ASO5/MO2=0.0 +!RPR1/UR21=0.0 ! -!WC_ASO5/ALKAP=0.0 +!RPR1/URG2=0.0 ! -!WC_ASO5/ALKEP=0.0 +!RPR1/UR26=0.0 ! -!WC_ASO5/BIOP=0.0 +!RPR1/RPG2=0.0 ! -!WC_ASO5/PHO=0.0 +!RPR1/RP18=0.0 ! -!WC_ASO5/ADD=0.0 +!RPR1/RPG3=0.0 ! -!WC_ASO5/AROP=0.0 +!RPR1/URG4=0.0 ! -!WC_ASO5/CARBOP=0.0 +!RPR1/UR8=0.0 ! -!WC_ASO5/OLN=0.0 +!RPR1/UR17=0.0 ! -!WC_ASO5/XO2=0.0 +!RPR1/UR7=0.0 ! -!WC_ASO5/WC_O3=0.0 +!RPR1/RPR3=0.0 ! -!WC_ASO5/WC_H2O2=0.0 +!RPR1/URG6=0.0 ! -!WC_ASO5/WC_NO=0.0 +!RPR1/UR22=0.0 ! -!WC_ASO5/WC_NO2=0.0 +!RPR1/URG7=0.0 ! -!WC_ASO5/WC_NO3=0.0 +!RPR1/RPR4=0.0 ! -!WC_ASO5/WC_N2O5=0.0 +!RPR1/RPR7=0.0 ! -!WC_ASO5/WC_HONO=0.0 +!RPR1/RPG7=0.0 ! -!WC_ASO5/WC_HNO3=0.0 +!RPR1/URG8=0.0 ! -!WC_ASO5/WC_HNO4=0.0 +!RPR1/UR19=0.0 ! -!WC_ASO5/WC_NH3=0.0 +!RPR1/URG9=0.0 ! -!WC_ASO5/WC_OH=0.0 +!RPR1/AP7=0.0 ! -!WC_ASO5/WC_HO2=-KC25*<WC_ASO5> - PJAC(:,64,53)=-TPK%KC25(:)*PCONC(:,64) +!RPR1/URG10=0.0 ! -!WC_ASO5/WC_CO2=0.0 +!RPR1/RPR1=-K304*<OH>-K307*<NO3>-K308 + PJAC(:,69,69)=-TPK%K304(:)*PCONC(:,15)-TPK%K307(:)*PCONC(:,8)-TPK%K308(:) ! -!WC_ASO5/WC_SO2=0.0 +!RPR1/RPR5=0.0 ! -!WC_ASO5/WC_SULF=0.0 +!RPR1/RPR8=0.0 ! -!WC_ASO5/WC_HCHO=0.0 +!RPR1/RP10=0.0 ! -!WC_ASO5/WC_ORA1=0.0 +!RPR1/RP11=0.0 ! -!WC_ASO5/WC_ORA2=0.0 +!RPR1/RP16=0.0 ! -!WC_ASO5/WC_MO2=0.0 +!RPR1/RPRL=0.0 ! -!WC_ASO5/WC_OP1=0.0 +!RPR1/APAN=0.0 ! -!WC_ASO5/WC_ASO3=+KC24*<W_O2> - PJAC(:,64,62)=+TPK%KC24(:)*TPK%W_O2(:) +!RPR1/PAN1=0.0 ! -!WC_ASO5/WC_ASO4=0.0 +!RPR1/PAN2=0.0 ! -!WC_ASO5/WC_ASO5=-KC25*<WC_HO2>-KC26*<WC_ASO5>-KC26*<WC_ASO5>-KC26*<WC_ASO5>-KC -!26*<WC_ASO5> - PJAC(:,64,64)=-TPK%KC25(:)*PCONC(:,53)-TPK%KC26(:)*PCONC(:,64)-TPK%KC26(:)*PCO& -&NC(:,64)-TPK%KC26(:)*PCONC(:,64)-TPK%KC26(:)*PCONC(:,64) +!RPR1/PAN3=0.0 ! -!WC_ASO5/WC_AHSO5=0.0 +!RPR1/PAN4=0.0 ! -!WC_ASO5/WC_AHMS=0.0 +!RPR1/PAN6=0.0 ! -!WC_ASO5/WR_O3=0.0 +!RPR1/PAN7=0.0 ! -!WC_ASO5/WR_H2O2=0.0 +!RPR1/PAN8=0.0 ! -!WC_ASO5/WR_NO=0.0 +!RPR1/PN10=0.0 ! -!WC_ASO5/WR_NO2=0.0 +!RPR1/RO2T=+K184*<RO219> + PJAC(:,69,85)=+TPK%K184(:)*TPK%RO219(:) ! -!WC_ASO5/WR_NO3=0.0 +!RPR1/RO21=0.0 ! -!WC_ASO5/WR_N2O5=0.0 +!RPR1/RO25=0.0 ! -!WC_ASO5/WR_HONO=0.0 +!RPR5/NO=0.0 ! -!WC_ASO5/WR_HNO3=0.0 +!RPR5/NO2=+K107*<RAD5> + PJAC(:,70,2)=+TPK%K107(:)*TPK%RAD5(:) ! -!WC_ASO5/WR_HNO4=0.0 +!RPR5/O3=0.0 ! -!WC_ASO5/WR_NH3=0.0 +!RPR5/HONO=0.0 ! -!WC_ASO5/WR_OH=0.0 +!RPR5/HNO3=0.0 ! -!WC_ASO5/WR_HO2=0.0 +!RPR5/HNO4=0.0 ! -!WC_ASO5/WR_CO2=0.0 +!RPR5/N2O5=0.0 ! -!WC_ASO5/WR_SO2=0.0 +!RPR5/NO3=0.0 ! -!WC_ASO5/WR_SULF=0.0 +!RPR5/NH3=0.0 ! -!WC_ASO5/WR_HCHO=0.0 +!RPR5/HO2=0.0 ! -!WC_ASO5/WR_ORA1=0.0 +!RPR5/CO=0.0 ! -!WC_ASO5/WR_ORA2=0.0 +!RPR5/H2O2=0.0 ! -!WC_ASO5/WR_MO2=0.0 +!RPR5/SO2=0.0 ! -!WC_ASO5/WR_OP1=0.0 +!RPR5/H2SO4=0.0 ! -!WC_ASO5/WR_ASO3=0.0 +!RPR5/OH=-K303*<RPR5> + PJAC(:,70,15)=-TPK%K303(:)*PCONC(:,70) ! -!WC_ASO5/WR_ASO4=0.0 +!RPR5/ETHE=0.0 ! -!WC_ASO5/WR_ASO5=0.0 +!RPR5/OLEL=0.0 ! -!WC_ASO5/WR_AHSO5=0.0 +!RPR5/OLEH=0.0 ! -!WC_ASO5/WR_AHMS=0.0 +!RPR5/ALKL=0.0 ! -!WC_AHSO5/O3=0.0 +!RPR5/ALKM=0.0 ! -!WC_AHSO5/H2O2=0.0 +!RPR5/ALKH=0.0 ! -!WC_AHSO5/NO=0.0 +!RPR5/AROH=0.0 ! -!WC_AHSO5/NO2=0.0 +!RPR5/AROL=0.0 ! -!WC_AHSO5/NO3=0.0 +!RPR5/AROO=0.0 ! -!WC_AHSO5/N2O5=0.0 +!RPR5/ARAL=0.0 ! -!WC_AHSO5/HONO=0.0 +!RPR5/ARAC=0.0 ! -!WC_AHSO5/HNO3=0.0 +!RPR5/PAH=0.0 ! -!WC_AHSO5/HNO4=0.0 +!RPR5/HCHO=0.0 ! -!WC_AHSO5/NH3=0.0 +!RPR5/ALD2=0.0 ! -!WC_AHSO5/SO2=0.0 +!RPR5/KETL=0.0 ! -!WC_AHSO5/SULF=0.0 +!RPR5/KETH=0.0 ! -!WC_AHSO5/CO=0.0 +!RPR5/MEOH=0.0 ! -!WC_AHSO5/OH=0.0 +!RPR5/ETOH=0.0 ! -!WC_AHSO5/HO2=0.0 +!RPR5/ALCH=0.0 ! -!WC_AHSO5/CH4=0.0 +!RPR5/ISOP=0.0 ! -!WC_AHSO5/ETH=0.0 +!RPR5/BIOL=0.0 ! -!WC_AHSO5/ALKA=0.0 +!RPR5/BIOH=0.0 ! -!WC_AHSO5/ALKE=0.0 +!RPR5/MTBE=0.0 ! -!WC_AHSO5/BIO=0.0 +!RPR5/MVK=0.0 ! -!WC_AHSO5/ARO=0.0 +!RPR5/MCR=0.0 ! -!WC_AHSO5/HCHO=0.0 +!RPR5/MGLY=0.0 ! -!WC_AHSO5/ALD=0.0 +!RPR5/GLY=0.0 ! -!WC_AHSO5/KET=0.0 +!RPR5/ORA1=0.0 ! -!WC_AHSO5/CARBO=0.0 +!RPR5/ORA2=0.0 ! -!WC_AHSO5/ONIT=0.0 +!RPR5/ACID=0.0 ! -!WC_AHSO5/PAN=0.0 +!RPR5/UR28=0.0 ! -!WC_AHSO5/OP1=0.0 +!RPR5/UR21=0.0 ! -!WC_AHSO5/OP2=0.0 +!RPR5/URG2=0.0 ! -!WC_AHSO5/ORA1=0.0 +!RPR5/UR26=0.0 ! -!WC_AHSO5/ORA2=0.0 +!RPR5/RPG2=0.0 ! -!WC_AHSO5/MO2=0.0 +!RPR5/RP18=0.0 ! -!WC_AHSO5/ALKAP=0.0 +!RPR5/RPG3=0.0 ! -!WC_AHSO5/ALKEP=0.0 +!RPR5/URG4=0.0 ! -!WC_AHSO5/BIOP=0.0 +!RPR5/UR8=0.0 ! -!WC_AHSO5/PHO=0.0 +!RPR5/UR17=0.0 ! -!WC_AHSO5/ADD=0.0 +!RPR5/UR7=0.0 ! -!WC_AHSO5/AROP=0.0 +!RPR5/RPR3=0.0 ! -!WC_AHSO5/CARBOP=0.0 +!RPR5/URG6=0.0 ! -!WC_AHSO5/OLN=0.0 +!RPR5/UR22=0.0 ! -!WC_AHSO5/XO2=0.0 +!RPR5/URG7=0.0 ! -!WC_AHSO5/WC_O3=0.0 +!RPR5/RPR4=0.0 ! -!WC_AHSO5/WC_H2O2=0.0 +!RPR5/RPR7=0.0 ! -!WC_AHSO5/WC_NO=0.0 +!RPR5/RPG7=0.0 ! -!WC_AHSO5/WC_NO2=0.0 +!RPR5/URG8=0.0 ! -!WC_AHSO5/WC_NO3=0.0 +!RPR5/UR19=0.0 ! -!WC_AHSO5/WC_N2O5=0.0 +!RPR5/URG9=0.0 ! -!WC_AHSO5/WC_HONO=0.0 +!RPR5/AP7=0.0 ! -!WC_AHSO5/WC_HNO3=0.0 +!RPR5/URG10=0.0 ! -!WC_AHSO5/WC_HNO4=0.0 +!RPR5/RPR1=0.0 ! -!WC_AHSO5/WC_NH3=0.0 +!RPR5/RPR5=-K303*<OH> + PJAC(:,70,70)=-TPK%K303(:)*PCONC(:,15) ! -!WC_AHSO5/WC_OH=0.0 +!RPR5/RPR8=0.0 ! -!WC_AHSO5/WC_HO2=+KC25*<WC_ASO5> - PJAC(:,65,53)=+TPK%KC25(:)*PCONC(:,64) +!RPR5/RP10=0.0 ! -!WC_AHSO5/WC_CO2=0.0 +!RPR5/RP11=0.0 ! -!WC_AHSO5/WC_SO2=-KC27*<WC_AHSO5> - PJAC(:,65,55)=-TPK%KC27(:)*PCONC(:,65) +!RPR5/RP16=0.0 ! -!WC_AHSO5/WC_SULF=0.0 +!RPR5/RPRL=0.0 ! -!WC_AHSO5/WC_HCHO=0.0 +!RPR5/APAN=0.0 ! -!WC_AHSO5/WC_ORA1=0.0 +!RPR5/PAN1=0.0 ! -!WC_AHSO5/WC_ORA2=0.0 +!RPR5/PAN2=0.0 ! -!WC_AHSO5/WC_MO2=0.0 +!RPR5/PAN3=0.0 ! -!WC_AHSO5/WC_OP1=0.0 +!RPR5/PAN4=0.0 ! -!WC_AHSO5/WC_ASO3=0.0 +!RPR5/PAN6=0.0 ! -!WC_AHSO5/WC_ASO4=0.0 +!RPR5/PAN7=0.0 ! -!WC_AHSO5/WC_ASO5=+KC25*<WC_HO2> - PJAC(:,65,64)=+TPK%KC25(:)*PCONC(:,53) +!RPR5/PAN8=0.0 ! -!WC_AHSO5/WC_AHSO5=-KC27*<WC_SO2> - PJAC(:,65,65)=-TPK%KC27(:)*PCONC(:,55) +!RPR5/PN10=0.0 ! -!WC_AHSO5/WC_AHMS=0.0 +!RPR5/RO2T=0.0 ! -!WC_AHSO5/WR_O3=0.0 +!RPR5/RO21=0.0 ! -!WC_AHSO5/WR_H2O2=0.0 +!RPR5/RO25=0.0 ! -!WC_AHSO5/WR_NO=0.0 +RETURN +END SUBROUTINE SUBJ13 ! -!WC_AHSO5/WR_NO2=0.0 +SUBROUTINE SUBJ14 ! -!WC_AHSO5/WR_NO3=0.0 +!Indices 71 a 75 ! -!WC_AHSO5/WR_N2O5=0.0 ! -!WC_AHSO5/WR_HONO=0.0 +!RPR8/NO=+K216*<RO240> + PJAC(:,71,1)=+TPK%K216(:)*TPK%RO240(:) ! -!WC_AHSO5/WR_HNO3=0.0 +!RPR8/NO2=0.0 ! -!WC_AHSO5/WR_HNO4=0.0 +!RPR8/O3=0.0 ! -!WC_AHSO5/WR_NH3=0.0 +!RPR8/HONO=0.0 ! -!WC_AHSO5/WR_OH=0.0 +!RPR8/HNO3=0.0 ! -!WC_AHSO5/WR_HO2=0.0 +!RPR8/HNO4=0.0 ! -!WC_AHSO5/WR_CO2=0.0 +!RPR8/N2O5=0.0 ! -!WC_AHSO5/WR_SO2=0.0 +!RPR8/NO3=-K327*<RPR8> + PJAC(:,71,8)=-TPK%K327(:)*PCONC(:,71) ! -!WC_AHSO5/WR_SULF=0.0 +!RPR8/NH3=0.0 ! -!WC_AHSO5/WR_HCHO=0.0 +!RPR8/HO2=+K218*<RO240> + PJAC(:,71,10)=+TPK%K218(:)*TPK%RO240(:) ! -!WC_AHSO5/WR_ORA1=0.0 +!RPR8/CO=0.0 ! -!WC_AHSO5/WR_ORA2=0.0 +!RPR8/H2O2=0.0 ! -!WC_AHSO5/WR_MO2=0.0 +!RPR8/SO2=0.0 ! -!WC_AHSO5/WR_OP1=0.0 +!RPR8/H2SO4=0.0 ! -!WC_AHSO5/WR_ASO3=0.0 +!RPR8/OH=-K324*<RPR8> + PJAC(:,71,15)=-TPK%K324(:)*PCONC(:,71) ! -!WC_AHSO5/WR_ASO4=0.0 +!RPR8/ETHE=0.0 ! -!WC_AHSO5/WR_ASO5=0.0 +!RPR8/OLEL=0.0 ! -!WC_AHSO5/WR_AHSO5=0.0 +!RPR8/OLEH=0.0 ! -!WC_AHSO5/WR_AHMS=0.0 +!RPR8/ALKL=0.0 ! -RETURN -END SUBROUTINE SUBJ12 +!RPR8/ALKM=0.0 ! -SUBROUTINE SUBJ13 +!RPR8/ALKH=0.0 ! -!Indices 66 a 70 +!RPR8/AROH=0.0 ! +!RPR8/AROL=0.0 ! -!WC_AHMS/O3=0.0 +!RPR8/AROO=0.0 ! -!WC_AHMS/H2O2=0.0 +!RPR8/ARAL=0.0 ! -!WC_AHMS/NO=0.0 +!RPR8/ARAC=0.0 ! -!WC_AHMS/NO2=0.0 +!RPR8/PAH=0.0 ! -!WC_AHMS/NO3=0.0 +!RPR8/HCHO=0.0 ! -!WC_AHMS/N2O5=0.0 +!RPR8/ALD2=0.0 ! -!WC_AHMS/HONO=0.0 +!RPR8/KETL=0.0 ! -!WC_AHMS/HNO3=0.0 +!RPR8/KETH=0.0 ! -!WC_AHMS/HNO4=0.0 +!RPR8/MEOH=0.0 ! -!WC_AHMS/NH3=0.0 +!RPR8/ETOH=0.0 ! -!WC_AHMS/SO2=0.0 +!RPR8/ALCH=0.0 ! -!WC_AHMS/SULF=0.0 +!RPR8/ISOP=0.0 ! -!WC_AHMS/CO=0.0 +!RPR8/BIOL=0.0 ! -!WC_AHMS/OH=0.0 +!RPR8/BIOH=0.0 ! -!WC_AHMS/HO2=0.0 +!RPR8/MTBE=0.0 ! -!WC_AHMS/CH4=0.0 +!RPR8/MVK=0.0 ! -!WC_AHMS/ETH=0.0 +!RPR8/MCR=0.0 ! -!WC_AHMS/ALKA=0.0 +!RPR8/MGLY=0.0 ! -!WC_AHMS/ALKE=0.0 +!RPR8/GLY=0.0 ! -!WC_AHMS/BIO=0.0 +!RPR8/ORA1=0.0 ! -!WC_AHMS/ARO=0.0 +!RPR8/ORA2=0.0 ! -!WC_AHMS/HCHO=0.0 +!RPR8/ACID=0.0 ! -!WC_AHMS/ALD=0.0 +!RPR8/UR28=0.0 ! -!WC_AHMS/KET=0.0 +!RPR8/UR21=0.0 ! -!WC_AHMS/CARBO=0.0 +!RPR8/URG2=0.0 ! -!WC_AHMS/ONIT=0.0 +!RPR8/UR26=0.0 ! -!WC_AHMS/PAN=0.0 +!RPR8/RPG2=0.0 ! -!WC_AHMS/OP1=0.0 +!RPR8/RP18=0.0 ! -!WC_AHMS/OP2=0.0 +!RPR8/RPG3=0.0 ! -!WC_AHMS/ORA1=0.0 +!RPR8/URG4=0.0 ! -!WC_AHMS/ORA2=0.0 +!RPR8/UR8=0.0 ! -!WC_AHMS/MO2=0.0 +!RPR8/UR17=0.0 ! -!WC_AHMS/ALKAP=0.0 +!RPR8/UR7=0.0 ! -!WC_AHMS/ALKEP=0.0 +!RPR8/RPR3=0.0 ! -!WC_AHMS/BIOP=0.0 +!RPR8/URG6=0.0 ! -!WC_AHMS/PHO=0.0 +!RPR8/UR22=0.0 ! -!WC_AHMS/ADD=0.0 +!RPR8/URG7=0.0 ! -!WC_AHMS/AROP=0.0 +!RPR8/RPR4=0.0 ! -!WC_AHMS/CARBOP=0.0 +!RPR8/RPR7=0.0 ! -!WC_AHMS/OLN=0.0 +!RPR8/RPG7=0.0 ! -!WC_AHMS/XO2=0.0 +!RPR8/URG8=0.0 ! -!WC_AHMS/WC_O3=0.0 +!RPR8/UR19=0.0 ! -!WC_AHMS/WC_H2O2=0.0 +!RPR8/URG9=0.0 ! -!WC_AHMS/WC_NO=0.0 +!RPR8/AP7=0.0 ! -!WC_AHMS/WC_NO2=0.0 +!RPR8/URG10=0.0 ! -!WC_AHMS/WC_NO3=0.0 +!RPR8/RPR1=0.0 ! -!WC_AHMS/WC_N2O5=0.0 +!RPR8/RPR5=0.0 ! -!WC_AHMS/WC_HONO=0.0 +!RPR8/RPR8=-K324*<OH>-K327*<NO3>-K329-K330 + PJAC(:,71,71)=-TPK%K324(:)*PCONC(:,15)-TPK%K327(:)*PCONC(:,8)-TPK%K329(:)-TPK%& +&K330(:) ! -!WC_AHMS/WC_HNO3=0.0 +!RPR8/RP10=0.0 ! -!WC_AHMS/WC_HNO4=0.0 +!RPR8/RP11=0.0 ! -!WC_AHMS/WC_NH3=0.0 +!RPR8/RP16=0.0 ! -!WC_AHMS/WC_OH=-KC23*<WC_AHMS> - PJAC(:,66,52)=-TPK%KC23(:)*PCONC(:,66) +!RPR8/RPRL=0.0 ! -!WC_AHMS/WC_HO2=0.0 +!RPR8/APAN=0.0 ! -!WC_AHMS/WC_CO2=0.0 +!RPR8/PAN1=0.0 ! -!WC_AHMS/WC_SO2=+KC21*<WC_HCHO> - PJAC(:,66,55)=+TPK%KC21(:)*PCONC(:,57) +!RPR8/PAN2=0.0 ! -!WC_AHMS/WC_SULF=0.0 +!RPR8/PAN3=0.0 ! -!WC_AHMS/WC_HCHO=+KC21*<WC_SO2> - PJAC(:,66,57)=+TPK%KC21(:)*PCONC(:,55) +!RPR8/PAN4=0.0 ! -!WC_AHMS/WC_ORA1=0.0 +!RPR8/PAN6=0.0 ! -!WC_AHMS/WC_ORA2=0.0 +!RPR8/PAN7=0.0 ! -!WC_AHMS/WC_MO2=0.0 +!RPR8/PAN8=0.0 ! -!WC_AHMS/WC_OP1=0.0 +!RPR8/PN10=0.0 ! -!WC_AHMS/WC_ASO3=0.0 +!RPR8/RO2T=+K217*<RO240> + PJAC(:,71,85)=+TPK%K217(:)*TPK%RO240(:) ! -!WC_AHMS/WC_ASO4=0.0 +!RPR8/RO21=0.0 ! -!WC_AHMS/WC_ASO5=0.0 +!RPR8/RO25=0.0 ! -!WC_AHMS/WC_AHSO5=0.0 +!RP10/NO=+K234*<RO242>+K241*<RO243>+K248*<RO244>+K255*<RO245>+K262*<RO246> + PJAC(:,72,1)=+TPK%K234(:)*TPK%RO242(:)+TPK%K241(:)*TPK%RO243(:)+TPK%K248(:)*TP& +&K%RO244(:)+TPK%K255(:)*TPK%RO245(:)+TPK%K262(:)*TPK%RO246(:) ! -!WC_AHMS/WC_AHMS=-KC22-KC23*<WC_OH> - PJAC(:,66,66)=-TPK%KC22(:)-TPK%KC23(:)*PCONC(:,52) +!RP10/NO2=0.0 ! -!WC_AHMS/WR_O3=0.0 +!RP10/O3=0.0 ! -!WC_AHMS/WR_H2O2=0.0 +!RP10/HONO=0.0 ! -!WC_AHMS/WR_NO=0.0 +!RP10/HNO3=0.0 ! -!WC_AHMS/WR_NO2=0.0 +!RP10/HNO4=0.0 ! -!WC_AHMS/WR_NO3=0.0 +!RP10/N2O5=0.0 ! -!WC_AHMS/WR_N2O5=0.0 +!RP10/NO3=0.0 ! -!WC_AHMS/WR_HONO=0.0 +!RP10/NH3=0.0 ! -!WC_AHMS/WR_HNO3=0.0 +!RP10/HO2=+K236*<RO242>+K243*<RO243>+K250*<RO244>+K257*<RO245>+K264*<RO246> + PJAC(:,72,10)=+TPK%K236(:)*TPK%RO242(:)+TPK%K243(:)*TPK%RO243(:)+TPK%K250(:)*T& +&PK%RO244(:)+TPK%K257(:)*TPK%RO245(:)+TPK%K264(:)*TPK%RO246(:) ! -!WC_AHMS/WR_HNO4=0.0 +!RP10/CO=0.0 ! -!WC_AHMS/WR_NH3=0.0 +!RP10/H2O2=0.0 ! -!WC_AHMS/WR_OH=0.0 +!RP10/SO2=0.0 ! -!WC_AHMS/WR_HO2=0.0 +!RP10/H2SO4=0.0 ! -!WC_AHMS/WR_CO2=0.0 +!RP10/OH=-K325*<RP10> + PJAC(:,72,15)=-TPK%K325(:)*PCONC(:,72) ! -!WC_AHMS/WR_SO2=0.0 +!RP10/ETHE=0.0 ! -!WC_AHMS/WR_SULF=0.0 +!RP10/OLEL=0.0 ! -!WC_AHMS/WR_HCHO=0.0 +!RP10/OLEH=0.0 ! -!WC_AHMS/WR_ORA1=0.0 +!RP10/ALKL=0.0 ! -!WC_AHMS/WR_ORA2=0.0 +!RP10/ALKM=0.0 ! -!WC_AHMS/WR_MO2=0.0 +!RP10/ALKH=0.0 ! -!WC_AHMS/WR_OP1=0.0 +!RP10/AROH=0.0 ! -!WC_AHMS/WR_ASO3=0.0 +!RP10/AROL=0.0 ! -!WC_AHMS/WR_ASO4=0.0 +!RP10/AROO=0.0 ! -!WC_AHMS/WR_ASO5=0.0 +!RP10/ARAL=0.0 ! -!WC_AHMS/WR_AHSO5=0.0 +!RP10/ARAC=0.0 ! -!WC_AHMS/WR_AHMS=0.0 +!RP10/PAH=0.0 ! -!WR_O3/O3=+KTR1 - PJAC(:,67,1)=+TPK%KTR1(:) +!RP10/HCHO=0.0 ! -!WR_O3/H2O2=0.0 +!RP10/ALD2=0.0 ! -!WR_O3/NO=0.0 +!RP10/KETL=0.0 ! -!WR_O3/NO2=0.0 +!RP10/KETH=0.0 ! -!WR_O3/NO3=0.0 +!RP10/MEOH=0.0 ! -!WR_O3/N2O5=0.0 +!RP10/ETOH=0.0 ! -!WR_O3/HONO=0.0 +!RP10/ALCH=0.0 ! -!WR_O3/HNO3=0.0 +!RP10/ISOP=0.0 ! -!WR_O3/HNO4=0.0 +!RP10/BIOL=0.0 ! -!WR_O3/NH3=0.0 +!RP10/BIOH=0.0 ! -!WR_O3/SO2=0.0 +!RP10/MTBE=0.0 ! -!WR_O3/SULF=0.0 +!RP10/MVK=0.0 ! -!WR_O3/CO=0.0 +!RP10/MCR=0.0 ! -!WR_O3/OH=0.0 +!RP10/MGLY=0.0 ! -!WR_O3/HO2=0.0 +!RP10/GLY=0.0 ! -!WR_O3/CH4=0.0 +!RP10/ORA1=0.0 ! -!WR_O3/ETH=0.0 +!RP10/ORA2=0.0 ! -!WR_O3/ALKA=0.0 +!RP10/ACID=0.0 ! -!WR_O3/ALKE=0.0 +!RP10/UR28=0.0 ! -!WR_O3/BIO=0.0 +!RP10/UR21=0.0 ! -!WR_O3/ARO=0.0 +!RP10/URG2=0.0 ! -!WR_O3/HCHO=0.0 +!RP10/UR26=0.0 ! -!WR_O3/ALD=0.0 +!RP10/RPG2=0.0 ! -!WR_O3/KET=0.0 +!RP10/RP18=0.0 ! -!WR_O3/CARBO=0.0 +!RP10/RPG3=0.0 ! -!WR_O3/ONIT=0.0 +!RP10/URG4=0.0 ! -!WR_O3/PAN=0.0 +!RP10/UR8=0.0 ! -!WR_O3/OP1=0.0 +!RP10/UR17=0.0 ! -!WR_O3/OP2=0.0 +!RP10/UR7=0.0 ! -!WR_O3/ORA1=0.0 +!RP10/RPR3=0.0 ! -!WR_O3/ORA2=0.0 +!RP10/URG6=0.0 ! -!WR_O3/MO2=0.0 +!RP10/UR22=0.0 ! -!WR_O3/ALKAP=0.0 +!RP10/URG7=0.0 ! -!WR_O3/ALKEP=0.0 +!RP10/RPR4=0.0 ! -!WR_O3/BIOP=0.0 +!RP10/RPR7=0.0 ! -!WR_O3/PHO=0.0 +!RP10/RPG7=0.0 ! -!WR_O3/ADD=0.0 +!RP10/URG8=0.0 ! -!WR_O3/AROP=0.0 +!RP10/UR19=0.0 ! -!WR_O3/CARBOP=0.0 +!RP10/URG9=0.0 ! -!WR_O3/OLN=0.0 +!RP10/AP7=0.0 ! -!WR_O3/XO2=0.0 +!RP10/URG10=0.0 ! -!WR_O3/WC_O3=0.0 +!RP10/RPR1=0.0 ! -!WR_O3/WC_H2O2=0.0 +!RP10/RPR5=0.0 ! -!WR_O3/WC_NO=0.0 +!RP10/RPR8=0.0 ! -!WR_O3/WC_NO2=0.0 +!RP10/RP10=-K325*<OH>-K328 + PJAC(:,72,72)=-TPK%K325(:)*PCONC(:,15)-TPK%K328(:) ! -!WR_O3/WC_NO3=0.0 +!RP10/RP11=0.0 ! -!WR_O3/WC_N2O5=0.0 +!RP10/RP16=0.0 ! -!WR_O3/WC_HONO=0.0 +!RP10/RPRL=0.0 ! -!WR_O3/WC_HNO3=0.0 +!RP10/APAN=0.0 ! -!WR_O3/WC_HNO4=0.0 +!RP10/PAN1=0.0 ! -!WR_O3/WC_NH3=0.0 +!RP10/PAN2=0.0 ! -!WR_O3/WC_OH=0.0 +!RP10/PAN3=0.0 ! -!WR_O3/WC_HO2=0.0 +!RP10/PAN4=0.0 ! -!WR_O3/WC_CO2=0.0 +!RP10/PAN6=0.0 ! -!WR_O3/WC_SO2=0.0 +!RP10/PAN7=0.0 ! -!WR_O3/WC_SULF=0.0 +!RP10/PAN8=0.0 ! -!WR_O3/WC_HCHO=0.0 +!RP10/PN10=0.0 ! -!WR_O3/WC_ORA1=0.0 +!RP10/RO2T=+K235*<RO242>+K242*<RO243>+K249*<RO244>+K256*<RO245>+K263*<RO246> + PJAC(:,72,85)=+TPK%K235(:)*TPK%RO242(:)+TPK%K242(:)*TPK%RO243(:)+TPK%K249(:)*T& +&PK%RO244(:)+TPK%K256(:)*TPK%RO245(:)+TPK%K263(:)*TPK%RO246(:) ! -!WR_O3/WC_ORA2=0.0 +!RP10/RO21=0.0 ! -!WR_O3/WC_MO2=0.0 +!RP10/RO25=0.0 ! -!WR_O3/WC_OP1=0.0 +!RP11/NO=+0.3*K238*<RO234>+0.5*K245*<RO235> + PJAC(:,73,1)=+0.3*TPK%K238(:)*TPK%RO234(:)+0.5*TPK%K245(:)*TPK%RO235(:) ! -!WR_O3/WC_ASO3=0.0 +!RP11/NO2=0.0 ! -!WR_O3/WC_ASO4=0.0 +!RP11/O3=0.0 ! -!WR_O3/WC_ASO5=0.0 +!RP11/HONO=0.0 ! -!WR_O3/WC_AHSO5=0.0 +!RP11/HNO3=0.0 ! -!WR_O3/WC_AHMS=0.0 +!RP11/HNO4=0.0 ! -!WR_O3/WR_O3=-KTR21-KR6*<WR_HO2>-KR29*<WR_SO2> - PJAC(:,67,67)=-TPK%KTR21(:)-TPK%KR6(:)*PCONC(:,78)-TPK%KR29(:)*PCONC(:,80) +!RP11/N2O5=0.0 ! -!WR_O3/WR_H2O2=0.0 +!RP11/NO3=0.0 ! -!WR_O3/WR_NO=0.0 +!RP11/NH3=0.0 ! -!WR_O3/WR_NO2=0.0 +!RP11/HO2=+0.3*K240*<RO234>+K247*<RO235> + PJAC(:,73,10)=+0.3*TPK%K240(:)*TPK%RO234(:)+TPK%K247(:)*TPK%RO235(:) ! -!WR_O3/WR_NO3=0.0 +!RP11/CO=0.0 ! -!WR_O3/WR_N2O5=0.0 +!RP11/H2O2=0.0 ! -!WR_O3/WR_HONO=0.0 +!RP11/SO2=0.0 ! -!WR_O3/WR_HNO3=0.0 +!RP11/H2SO4=0.0 ! -!WR_O3/WR_HNO4=0.0 +!RP11/OH=-K326*<RP11> + PJAC(:,73,15)=-TPK%K326(:)*PCONC(:,73) ! -!WR_O3/WR_NH3=0.0 +!RP11/ETHE=0.0 ! -!WR_O3/WR_OH=0.0 +!RP11/OLEL=0.0 ! -!WR_O3/WR_HO2=-KR6*<WR_O3> - PJAC(:,67,78)=-TPK%KR6(:)*PCONC(:,67) +!RP11/OLEH=0.0 ! -!WR_O3/WR_CO2=0.0 +!RP11/ALKL=0.0 ! -!WR_O3/WR_SO2=-KR29*<WR_O3> - PJAC(:,67,80)=-TPK%KR29(:)*PCONC(:,67) +!RP11/ALKM=0.0 ! -!WR_O3/WR_SULF=0.0 +!RP11/ALKH=0.0 ! -!WR_O3/WR_HCHO=0.0 +!RP11/AROH=0.0 ! -!WR_O3/WR_ORA1=0.0 +!RP11/AROL=0.0 ! -!WR_O3/WR_ORA2=0.0 +!RP11/AROO=0.0 ! -!WR_O3/WR_MO2=0.0 +!RP11/ARAL=0.0 ! -!WR_O3/WR_OP1=0.0 +!RP11/ARAC=0.0 ! -!WR_O3/WR_ASO3=0.0 +!RP11/PAH=0.0 ! -!WR_O3/WR_ASO4=0.0 +!RP11/HCHO=0.0 ! -!WR_O3/WR_ASO5=0.0 +!RP11/ALD2=0.0 ! -!WR_O3/WR_AHSO5=0.0 +!RP11/KETL=0.0 ! -!WR_O3/WR_AHMS=0.0 +!RP11/KETH=0.0 ! -!WR_H2O2/O3=0.0 +!RP11/MEOH=0.0 ! -!WR_H2O2/H2O2=+KTR2 - PJAC(:,68,2)=+TPK%KTR2(:) +!RP11/ETOH=0.0 ! -!WR_H2O2/NO=0.0 +!RP11/ALCH=0.0 ! -!WR_H2O2/NO2=0.0 +!RP11/ISOP=0.0 ! -!WR_H2O2/NO3=0.0 +!RP11/BIOL=0.0 ! -!WR_H2O2/N2O5=0.0 +!RP11/BIOH=0.0 ! -!WR_H2O2/HONO=0.0 +!RP11/MTBE=0.0 ! -!WR_H2O2/HNO3=0.0 +!RP11/MVK=0.0 ! -!WR_H2O2/HNO4=0.0 +!RP11/MCR=0.0 ! -!WR_H2O2/NH3=0.0 +!RP11/MGLY=0.0 ! -!WR_H2O2/SO2=0.0 +!RP11/GLY=0.0 ! -!WR_H2O2/SULF=0.0 +!RP11/ORA1=0.0 ! -!WR_H2O2/CO=0.0 +!RP11/ORA2=0.0 ! -!WR_H2O2/OH=0.0 +!RP11/ACID=0.0 ! -!WR_H2O2/HO2=0.0 +!RP11/UR28=0.0 ! -!WR_H2O2/CH4=0.0 +!RP11/UR21=0.0 ! -!WR_H2O2/ETH=0.0 +!RP11/URG2=0.0 ! -!WR_H2O2/ALKA=0.0 +!RP11/UR26=0.0 ! -!WR_H2O2/ALKE=0.0 +!RP11/RPG2=0.0 ! -!WR_H2O2/BIO=0.0 +!RP11/RP18=0.0 ! -!WR_H2O2/ARO=0.0 +!RP11/RPG3=0.0 ! -!WR_H2O2/HCHO=0.0 +!RP11/URG4=0.0 ! -!WR_H2O2/ALD=0.0 +!RP11/UR8=0.0 ! -!WR_H2O2/KET=0.0 +!RP11/UR17=0.0 ! -!WR_H2O2/CARBO=0.0 +!RP11/UR7=0.0 ! -!WR_H2O2/ONIT=0.0 +!RP11/RPR3=0.0 ! -!WR_H2O2/PAN=0.0 +!RP11/URG6=0.0 ! -!WR_H2O2/OP1=0.0 +!RP11/UR22=0.0 ! -!WR_H2O2/OP2=0.0 +!RP11/URG7=0.0 ! -!WR_H2O2/ORA1=0.0 +!RP11/RPR4=0.0 ! -!WR_H2O2/ORA2=0.0 +!RP11/RPR7=0.0 ! -!WR_H2O2/MO2=0.0 +!RP11/RPG7=0.0 ! -!WR_H2O2/ALKAP=0.0 +!RP11/URG8=0.0 ! -!WR_H2O2/ALKEP=0.0 +!RP11/UR19=0.0 ! -!WR_H2O2/BIOP=0.0 +!RP11/URG9=0.0 ! -!WR_H2O2/PHO=0.0 +!RP11/AP7=0.0 ! -!WR_H2O2/ADD=0.0 +!RP11/URG10=0.0 ! -!WR_H2O2/AROP=0.0 +!RP11/RPR1=0.0 ! -!WR_H2O2/CARBOP=0.0 +!RP11/RPR5=0.0 ! -!WR_H2O2/OLN=0.0 +!RP11/RPR8=0.0 ! -!WR_H2O2/XO2=0.0 +!RP11/RP10=0.0 ! -!WR_H2O2/WC_O3=0.0 +!RP11/RP11=-K326*<OH> + PJAC(:,73,73)=-TPK%K326(:)*PCONC(:,15) ! -!WR_H2O2/WC_H2O2=0.0 +!RP11/RP16=0.0 ! -!WR_H2O2/WC_NO=0.0 +!RP11/RPRL=0.0 ! -!WR_H2O2/WC_NO2=0.0 +!RP11/APAN=0.0 ! -!WR_H2O2/WC_NO3=0.0 +!RP11/PAN1=0.0 ! -!WR_H2O2/WC_N2O5=0.0 +!RP11/PAN2=0.0 ! -!WR_H2O2/WC_HONO=0.0 +!RP11/PAN3=0.0 ! -!WR_H2O2/WC_HNO3=0.0 +!RP11/PAN4=0.0 ! -!WR_H2O2/WC_HNO4=0.0 +!RP11/PAN6=0.0 ! -!WR_H2O2/WC_NH3=0.0 +!RP11/PAN7=0.0 ! -!WR_H2O2/WC_OH=0.0 +!RP11/PAN8=0.0 ! -!WR_H2O2/WC_HO2=0.0 +!RP11/PN10=0.0 ! -!WR_H2O2/WC_CO2=0.0 +!RP11/RO2T=+K239*<RO234>+K246*<RO235> + PJAC(:,73,85)=+TPK%K239(:)*TPK%RO234(:)+TPK%K246(:)*TPK%RO235(:) ! -!WR_H2O2/WC_SO2=0.0 +!RP11/RO21=0.0 ! -!WR_H2O2/WC_SULF=0.0 +!RP11/RO25=0.0 ! -!WR_H2O2/WC_HCHO=0.0 +!RP16/NO=0.0 ! -!WR_H2O2/WC_ORA1=0.0 +!RP16/NO2=0.0 ! -!WR_H2O2/WC_ORA2=0.0 +!RP16/O3=0.0 ! -!WR_H2O2/WC_MO2=0.0 +!RP16/HONO=0.0 ! -!WR_H2O2/WC_OP1=0.0 +!RP16/HNO3=0.0 ! -!WR_H2O2/WC_ASO3=0.0 +!RP16/HNO4=0.0 ! -!WR_H2O2/WC_ASO4=0.0 +!RP16/N2O5=0.0 ! -!WR_H2O2/WC_ASO5=0.0 +!RP16/NO3=-K338*<RP16> + PJAC(:,74,8)=-TPK%K338(:)*PCONC(:,74) ! -!WR_H2O2/WC_AHSO5=0.0 +!RP16/NH3=0.0 ! -!WR_H2O2/WC_AHMS=0.0 +!RP16/HO2=+K301*<RO254> + PJAC(:,74,10)=+TPK%K301(:)*TPK%RO254(:) ! -!WR_H2O2/WR_O3=0.0 +!RP16/CO=0.0 ! -!WR_H2O2/WR_H2O2=-KTR22-KR1-KR4*<WR_OH>-KR30*<WR_SO2> - PJAC(:,68,68)=-TPK%KTR22(:)-TPK%KR1(:)-TPK%KR4(:)*PCONC(:,77)-TPK%KR30(:)*PCON& -&C(:,80) +!RP16/H2O2=0.0 ! -!WR_H2O2/WR_NO=0.0 +!RP16/SO2=0.0 ! -!WR_H2O2/WR_NO2=0.0 +!RP16/H2SO4=0.0 ! -!WR_H2O2/WR_NO3=0.0 +!RP16/OH=-K305*<RP16> + PJAC(:,74,15)=-TPK%K305(:)*PCONC(:,74) ! -!WR_H2O2/WR_N2O5=0.0 +!RP16/ETHE=0.0 ! -!WR_H2O2/WR_HONO=0.0 +!RP16/OLEL=0.0 ! -!WR_H2O2/WR_HNO3=0.0 +!RP16/OLEH=0.0 ! -!WR_H2O2/WR_HNO4=0.0 +!RP16/ALKL=0.0 ! -!WR_H2O2/WR_NH3=0.0 +!RP16/ALKM=0.0 ! -!WR_H2O2/WR_OH=+KR2*<WR_OH>+KR2*<WR_OH>-KR4*<WR_H2O2> - PJAC(:,68,77)=+TPK%KR2(:)*PCONC(:,77)+TPK%KR2(:)*PCONC(:,77)-TPK%KR4(:)*PCONC(& -&:,68) +!RP16/ALKH=0.0 ! -!WR_H2O2/WR_HO2=+KR5*<WR_HO2>+KR5*<WR_HO2> - PJAC(:,68,78)=+TPK%KR5(:)*PCONC(:,78)+TPK%KR5(:)*PCONC(:,78) +!RP16/AROH=0.0 ! -!WR_H2O2/WR_CO2=0.0 +!RP16/AROL=0.0 ! -!WR_H2O2/WR_SO2=-KR30*<WR_H2O2> - PJAC(:,68,80)=-TPK%KR30(:)*PCONC(:,68) +!RP16/AROO=0.0 ! -!WR_H2O2/WR_SULF=0.0 +!RP16/ARAL=0.0 ! -!WR_H2O2/WR_HCHO=0.0 +!RP16/ARAC=0.0 ! -!WR_H2O2/WR_ORA1=0.0 +!RP16/PAH=0.0 ! -!WR_H2O2/WR_ORA2=0.0 +!RP16/HCHO=0.0 ! -!WR_H2O2/WR_MO2=0.0 +!RP16/ALD2=0.0 ! -!WR_H2O2/WR_OP1=0.0 +!RP16/KETL=0.0 ! -!WR_H2O2/WR_ASO3=0.0 +!RP16/KETH=0.0 ! -!WR_H2O2/WR_ASO4=0.0 +!RP16/MEOH=0.0 ! -!WR_H2O2/WR_ASO5=0.0 +!RP16/ETOH=0.0 ! -!WR_H2O2/WR_AHSO5=0.0 +!RP16/ALCH=0.0 ! -!WR_H2O2/WR_AHMS=0.0 +!RP16/ISOP=0.0 ! -!WR_NO/O3=0.0 +!RP16/BIOL=0.0 ! -!WR_NO/H2O2=0.0 +!RP16/BIOH=0.0 ! -!WR_NO/NO=+KTR3 - PJAC(:,69,3)=+TPK%KTR3(:) +!RP16/MTBE=0.0 ! -!WR_NO/NO2=0.0 +!RP16/MVK=0.0 ! -!WR_NO/NO3=0.0 +!RP16/MCR=0.0 ! -!WR_NO/N2O5=0.0 +!RP16/MGLY=0.0 ! -!WR_NO/HONO=0.0 +!RP16/GLY=0.0 ! -!WR_NO/HNO3=0.0 +!RP16/ORA1=0.0 ! -!WR_NO/HNO4=0.0 +!RP16/ORA2=0.0 ! -!WR_NO/NH3=0.0 +!RP16/ACID=0.0 ! -!WR_NO/SO2=0.0 +!RP16/UR28=0.0 ! -!WR_NO/SULF=0.0 +!RP16/UR21=0.0 ! -!WR_NO/CO=0.0 +!RP16/URG2=0.0 ! -!WR_NO/OH=0.0 +!RP16/UR26=0.0 ! -!WR_NO/HO2=0.0 +!RP16/RPG2=0.0 ! -!WR_NO/CH4=0.0 +!RP16/RP18=0.0 ! -!WR_NO/ETH=0.0 +!RP16/RPG3=0.0 ! -!WR_NO/ALKA=0.0 +!RP16/URG4=0.0 ! -!WR_NO/ALKE=0.0 +!RP16/UR8=0.0 ! -!WR_NO/BIO=0.0 +!RP16/UR17=0.0 ! -!WR_NO/ARO=0.0 +!RP16/UR7=0.0 ! -!WR_NO/HCHO=0.0 +!RP16/RPR3=0.0 ! -!WR_NO/ALD=0.0 +!RP16/URG6=0.0 ! -!WR_NO/KET=0.0 +!RP16/UR22=0.0 ! -!WR_NO/CARBO=0.0 +!RP16/URG7=0.0 ! -!WR_NO/ONIT=0.0 +!RP16/RPR4=0.0 ! -!WR_NO/PAN=0.0 +!RP16/RPR7=0.0 ! -!WR_NO/OP1=0.0 +!RP16/RPG7=0.0 ! -!WR_NO/OP2=0.0 +!RP16/URG8=0.0 ! -!WR_NO/ORA1=0.0 +!RP16/UR19=0.0 ! -!WR_NO/ORA2=0.0 +!RP16/URG9=0.0 ! -!WR_NO/MO2=0.0 +!RP16/AP7=0.0 ! -!WR_NO/ALKAP=0.0 +!RP16/URG10=0.0 ! -!WR_NO/ALKEP=0.0 +!RP16/RPR1=0.0 ! -!WR_NO/BIOP=0.0 +!RP16/RPR5=0.0 ! -!WR_NO/PHO=0.0 +!RP16/RPR8=0.0 ! -!WR_NO/ADD=0.0 +!RP16/RP10=0.0 ! -!WR_NO/AROP=0.0 +!RP16/RP11=0.0 ! -!WR_NO/CARBOP=0.0 +!RP16/RP16=-K305*<OH>-K338*<NO3>-K339 + PJAC(:,74,74)=-TPK%K305(:)*PCONC(:,15)-TPK%K338(:)*PCONC(:,8)-TPK%K339(:) ! -!WR_NO/OLN=0.0 +!RP16/RPRL=0.0 ! -!WR_NO/XO2=0.0 +!RP16/APAN=0.0 ! -!WR_NO/WC_O3=0.0 +!RP16/PAN1=0.0 ! -!WR_NO/WC_H2O2=0.0 +!RP16/PAN2=0.0 ! -!WR_NO/WC_NO=0.0 +!RP16/PAN3=0.0 ! -!WR_NO/WC_NO2=0.0 +!RP16/PAN4=0.0 ! -!WR_NO/WC_NO3=0.0 +!RP16/PAN6=0.0 ! -!WR_NO/WC_N2O5=0.0 +!RP16/PAN7=0.0 ! -!WR_NO/WC_HONO=0.0 +!RP16/PAN8=0.0 ! -!WR_NO/WC_HNO3=0.0 +!RP16/PN10=0.0 ! -!WR_NO/WC_HNO4=0.0 +!RP16/RO2T=0.0 ! -!WR_NO/WC_NH3=0.0 +!RP16/RO21=0.0 ! -!WR_NO/WC_OH=0.0 +!RP16/RO25=0.0 ! -!WR_NO/WC_HO2=0.0 +!RPRL/NO=+TPK%CFA2*K177*<RO217>+TPK%CFA7*K192*<RO222>+1.0023998*K269*<RO247> + PJAC(:,75,1)=+TPK%CFA2*TPK%K177(:)*TPK%RO217(:)+TPK%CFA7*TPK%K192(:)*TPK%RO222& +&(:)+1.0023998*TPK%K269(:)*TPK%RO247(:) ! -!WR_NO/WC_CO2=0.0 +!RPRL/NO2=0.0 ! -!WR_NO/WC_SO2=0.0 +!RPRL/O3=0.0 ! -!WR_NO/WC_SULF=0.0 +!RPRL/HONO=0.0 ! -!WR_NO/WC_HCHO=0.0 +!RPRL/HNO3=0.0 ! -!WR_NO/WC_ORA1=0.0 +!RPRL/HNO4=0.0 ! -!WR_NO/WC_ORA2=0.0 +!RPRL/N2O5=0.0 ! -!WR_NO/WC_MO2=0.0 +!RPRL/NO3=0.0 ! -!WR_NO/WC_OP1=0.0 +!RPRL/NH3=0.0 ! -!WR_NO/WC_ASO3=0.0 +!RPRL/HO2=+0.9983609*K179*<RO217>+0.9983609*K194*<RO222>+1.0023998*K271*<RO247> + PJAC(:,75,10)=+0.9983609*TPK%K179(:)*TPK%RO217(:)+0.9983609*TPK%K194(:)*TPK%RO& +&222(:)+1.0023998*TPK%K271(:)*TPK%RO247(:) ! -!WR_NO/WC_ASO4=0.0 +!RPRL/CO=0.0 ! -!WR_NO/WC_ASO5=0.0 +!RPRL/H2O2=0.0 ! -!WR_NO/WC_AHSO5=0.0 +!RPRL/SO2=0.0 ! -!WR_NO/WC_AHMS=0.0 +!RPRL/H2SO4=0.0 ! -!WR_NO/WR_O3=0.0 +!RPRL/OH=+0.9983609*K082*<ARAL>-K306*<RPRL> + PJAC(:,75,15)=+0.9983609*TPK%K082(:)*PCONC(:,25)-TPK%K306(:)*PCONC(:,75) ! -!WR_NO/WR_H2O2=0.0 +!RPRL/ETHE=0.0 ! -!WR_NO/WR_NO=-KTR23 - PJAC(:,69,69)=-TPK%KTR23(:) +!RPRL/OLEL=0.0 ! -!WR_NO/WR_NO2=0.0 +!RPRL/OLEH=0.0 ! -!WR_NO/WR_NO3=0.0 +!RPRL/ALKL=0.0 ! -!WR_NO/WR_N2O5=0.0 +!RPRL/ALKM=0.0 ! -!WR_NO/WR_HONO=0.0 +!RPRL/ALKH=0.0 ! -!WR_NO/WR_HNO3=0.0 +!RPRL/AROH=0.0 ! -!WR_NO/WR_HNO4=0.0 +!RPRL/AROL=0.0 ! -!WR_NO/WR_NH3=0.0 +!RPRL/AROO=0.0 ! -!WR_NO/WR_OH=0.0 +!RPRL/ARAL=+0.9983609*K082*<OH> + PJAC(:,75,25)=+0.9983609*TPK%K082(:)*PCONC(:,15) ! -!WR_NO/WR_HO2=0.0 +!RPRL/ARAC=0.0 ! -!WR_NO/WR_CO2=0.0 +!RPRL/PAH=0.0 ! -!WR_NO/WR_SO2=0.0 +!RPRL/HCHO=0.0 ! -!WR_NO/WR_SULF=0.0 +!RPRL/ALD2=0.0 ! -!WR_NO/WR_HCHO=0.0 +!RPRL/KETL=0.0 ! -!WR_NO/WR_ORA1=0.0 +!RPRL/KETH=0.0 ! -!WR_NO/WR_ORA2=0.0 +!RPRL/MEOH=0.0 ! -!WR_NO/WR_MO2=0.0 +!RPRL/ETOH=0.0 ! -!WR_NO/WR_OP1=0.0 +!RPRL/ALCH=0.0 ! -!WR_NO/WR_ASO3=0.0 +!RPRL/ISOP=0.0 ! -!WR_NO/WR_ASO4=0.0 +!RPRL/BIOL=0.0 ! -!WR_NO/WR_ASO5=0.0 +!RPRL/BIOH=0.0 ! -!WR_NO/WR_AHSO5=0.0 +!RPRL/MTBE=0.0 ! -!WR_NO/WR_AHMS=0.0 +!RPRL/MVK=0.0 ! -!WR_NO2/O3=0.0 +!RPRL/MCR=0.0 ! -!WR_NO2/H2O2=0.0 +!RPRL/MGLY=0.0 ! -!WR_NO2/NO=0.0 +!RPRL/GLY=0.0 ! -!WR_NO2/NO2=+KTR4 - PJAC(:,70,4)=+TPK%KTR4(:) +!RPRL/ORA1=0.0 ! -!WR_NO2/NO3=0.0 +!RPRL/ORA2=0.0 ! -!WR_NO2/N2O5=0.0 +!RPRL/ACID=0.0 ! -!WR_NO2/HONO=0.0 +!RPRL/UR28=0.0 ! -!WR_NO2/HNO3=0.0 +!RPRL/UR21=0.0 ! -!WR_NO2/HNO4=0.0 +!RPRL/URG2=0.0 ! -!WR_NO2/NH3=0.0 +!RPRL/UR26=0.0 ! -!WR_NO2/SO2=0.0 +!RPRL/RPG2=0.0 ! -!WR_NO2/SULF=0.0 +!RPRL/RP18=0.0 ! -!WR_NO2/CO=0.0 +!RPRL/RPG3=0.0 ! -!WR_NO2/OH=0.0 +!RPRL/URG4=0.0 ! -!WR_NO2/HO2=0.0 +!RPRL/UR8=0.0 ! -!WR_NO2/CH4=0.0 +!RPRL/UR17=0.0 ! -!WR_NO2/ETH=0.0 +!RPRL/UR7=0.0 ! -!WR_NO2/ALKA=0.0 +!RPRL/RPR3=0.0 ! -!WR_NO2/ALKE=0.0 +!RPRL/URG6=0.0 ! -!WR_NO2/BIO=0.0 +!RPRL/UR22=0.0 ! -!WR_NO2/ARO=0.0 +!RPRL/URG7=0.0 ! -!WR_NO2/HCHO=0.0 +!RPRL/RPR4=0.0 ! -!WR_NO2/ALD=0.0 +!RPRL/RPR7=0.0 ! -!WR_NO2/KET=0.0 +!RPRL/RPG7=0.0 ! -!WR_NO2/CARBO=0.0 +!RPRL/URG8=0.0 ! -!WR_NO2/ONIT=0.0 +!RPRL/UR19=0.0 ! -!WR_NO2/PAN=0.0 +!RPRL/URG9=0.0 ! -!WR_NO2/OP1=0.0 +!RPRL/AP7=0.0 ! -!WR_NO2/OP2=0.0 +!RPRL/URG10=0.0 ! -!WR_NO2/ORA1=0.0 +!RPRL/RPR1=0.0 ! -!WR_NO2/ORA2=0.0 +!RPRL/RPR5=0.0 ! -!WR_NO2/MO2=0.0 +!RPRL/RPR8=0.0 ! -!WR_NO2/ALKAP=0.0 +!RPRL/RP10=0.0 ! -!WR_NO2/ALKEP=0.0 +!RPRL/RP11=0.0 ! -!WR_NO2/BIOP=0.0 +!RPRL/RP16=0.0 ! -!WR_NO2/PHO=0.0 +!RPRL/RPRL=-K306*<OH> + PJAC(:,75,75)=-TPK%K306(:)*PCONC(:,15) ! -!WR_NO2/ADD=0.0 +!RPRL/APAN=0.0 ! -!WR_NO2/AROP=0.0 +!RPRL/PAN1=0.0 ! -!WR_NO2/CARBOP=0.0 +!RPRL/PAN2=0.0 ! -!WR_NO2/OLN=0.0 +!RPRL/PAN3=0.0 ! -!WR_NO2/XO2=0.0 +!RPRL/PAN4=0.0 ! -!WR_NO2/WC_O3=0.0 +!RPRL/PAN6=0.0 ! -!WR_NO2/WC_H2O2=0.0 +!RPRL/PAN7=0.0 ! -!WR_NO2/WC_NO=0.0 +!RPRL/PAN8=0.0 ! -!WR_NO2/WC_NO2=0.0 +!RPRL/PN10=0.0 ! -!WR_NO2/WC_NO3=0.0 +!RPRL/RO2T=+0.9983609*K178*<RO217>+0.9983609*K193*<RO222>+1.0023998*K270*<RO247 +!> + PJAC(:,75,85)=+0.9983609*TPK%K178(:)*TPK%RO217(:)+0.9983609*TPK%K193(:)*TPK%RO& +&222(:)+1.0023998*TPK%K270(:)*TPK%RO247(:) ! -!WR_NO2/WC_N2O5=0.0 +!RPRL/RO21=0.0 ! -!WR_NO2/WC_HONO=0.0 +!RPRL/RO25=0.0 ! -!WR_NO2/WC_HNO3=0.0 +RETURN +END SUBROUTINE SUBJ14 ! -!WR_NO2/WC_HNO4=0.0 +SUBROUTINE SUBJ15 ! -!WR_NO2/WC_NH3=0.0 +!Indices 76 a 80 ! -!WR_NO2/WC_OH=0.0 ! -!WR_NO2/WC_HO2=0.0 +!APAN/NO=0.0 ! -!WR_NO2/WC_CO2=0.0 +!APAN/NO2=+K130*<RO250>+K133*<RO257> + PJAC(:,76,2)=+TPK%K130(:)*TPK%RO250(:)+TPK%K133(:)*TPK%RO257(:) ! -!WR_NO2/WC_SO2=0.0 +!APAN/O3=0.0 ! -!WR_NO2/WC_SULF=0.0 +!APAN/HONO=0.0 ! -!WR_NO2/WC_HCHO=0.0 +!APAN/HNO3=0.0 ! -!WR_NO2/WC_ORA1=0.0 +!APAN/HNO4=0.0 ! -!WR_NO2/WC_ORA2=0.0 +!APAN/N2O5=0.0 ! -!WR_NO2/WC_MO2=0.0 +!APAN/NO3=0.0 ! -!WR_NO2/WC_OP1=0.0 +!APAN/NH3=0.0 ! -!WR_NO2/WC_ASO3=0.0 +!APAN/HO2=0.0 ! -!WR_NO2/WC_ASO4=0.0 +!APAN/CO=0.0 ! -!WR_NO2/WC_ASO5=0.0 +!APAN/H2O2=0.0 ! -!WR_NO2/WC_AHSO5=0.0 +!APAN/SO2=0.0 ! -!WR_NO2/WC_AHMS=0.0 +!APAN/H2SO4=0.0 ! -!WR_NO2/WR_O3=0.0 +!APAN/OH=0.0 ! -!WR_NO2/WR_H2O2=0.0 +!APAN/ETHE=0.0 ! -!WR_NO2/WR_NO=0.0 +!APAN/OLEL=0.0 ! -!WR_NO2/WR_NO2=-KTR24-KR9*<WR_HO2> - PJAC(:,70,70)=-TPK%KTR24(:)-TPK%KR9(:)*PCONC(:,78) +!APAN/OLEH=0.0 ! -!WR_NO2/WR_NO3=0.0 +!APAN/ALKL=0.0 ! -!WR_NO2/WR_N2O5=0.0 +!APAN/ALKM=0.0 ! -!WR_NO2/WR_HONO=+KR8*<WR_OH> - PJAC(:,70,73)=+TPK%KR8(:)*PCONC(:,77) +!APAN/ALKH=0.0 ! -!WR_NO2/WR_HNO3=+KR13 - PJAC(:,70,74)=+TPK%KR13(:) +!APAN/AROH=0.0 ! -!WR_NO2/WR_HNO4=+KR10 - PJAC(:,70,75)=+TPK%KR10(:) +!APAN/AROL=0.0 ! -!WR_NO2/WR_NH3=0.0 +!APAN/AROO=0.0 ! -!WR_NO2/WR_OH=+KR8*<WR_HONO> - PJAC(:,70,77)=+TPK%KR8(:)*PCONC(:,73) +!APAN/ARAL=0.0 ! -!WR_NO2/WR_HO2=-KR9*<WR_NO2> - PJAC(:,70,78)=-TPK%KR9(:)*PCONC(:,70) +!APAN/ARAC=0.0 ! -!WR_NO2/WR_CO2=0.0 +!APAN/PAH=0.0 ! -!WR_NO2/WR_SO2=0.0 +!APAN/HCHO=0.0 ! -!WR_NO2/WR_SULF=0.0 +!APAN/ALD2=0.0 ! -!WR_NO2/WR_HCHO=0.0 +!APAN/KETL=0.0 ! -!WR_NO2/WR_ORA1=0.0 +!APAN/KETH=0.0 ! -!WR_NO2/WR_ORA2=0.0 +!APAN/MEOH=0.0 ! -!WR_NO2/WR_MO2=0.0 +!APAN/ETOH=0.0 ! -!WR_NO2/WR_OP1=0.0 +!APAN/ALCH=0.0 ! -!WR_NO2/WR_ASO3=0.0 +!APAN/ISOP=0.0 ! -!WR_NO2/WR_ASO4=0.0 +!APAN/BIOL=0.0 ! -!WR_NO2/WR_ASO5=0.0 +!APAN/BIOH=0.0 ! -!WR_NO2/WR_AHSO5=0.0 +!APAN/MTBE=0.0 ! -!WR_NO2/WR_AHMS=0.0 +!APAN/MVK=0.0 ! -RETURN -END SUBROUTINE SUBJ13 +!APAN/MCR=0.0 ! -SUBROUTINE SUBJ14 +!APAN/MGLY=0.0 ! -!Indices 71 a 75 +!APAN/GLY=0.0 ! +!APAN/ORA1=0.0 ! -!WR_NO3/O3=0.0 +!APAN/ORA2=0.0 ! -!WR_NO3/H2O2=0.0 +!APAN/ACID=0.0 ! -!WR_NO3/NO=0.0 +!APAN/UR28=0.0 ! -!WR_NO3/NO2=0.0 +!APAN/UR21=0.0 ! -!WR_NO3/NO3=+KTR5 - PJAC(:,71,5)=+TPK%KTR5(:) +!APAN/URG2=0.0 ! -!WR_NO3/N2O5=0.0 +!APAN/UR26=0.0 ! -!WR_NO3/HONO=0.0 +!APAN/RPG2=0.0 ! -!WR_NO3/HNO3=0.0 +!APAN/RP18=0.0 ! -!WR_NO3/HNO4=0.0 +!APAN/RPG3=0.0 ! -!WR_NO3/NH3=0.0 +!APAN/URG4=0.0 ! -!WR_NO3/SO2=0.0 +!APAN/UR8=0.0 ! -!WR_NO3/SULF=0.0 +!APAN/UR17=0.0 ! -!WR_NO3/CO=0.0 +!APAN/UR7=0.0 ! -!WR_NO3/OH=0.0 +!APAN/RPR3=0.0 ! -!WR_NO3/HO2=0.0 +!APAN/URG6=0.0 ! -!WR_NO3/CH4=0.0 +!APAN/UR22=0.0 ! -!WR_NO3/ETH=0.0 +!APAN/URG7=0.0 ! -!WR_NO3/ALKA=0.0 +!APAN/RPR4=0.0 ! -!WR_NO3/ALKE=0.0 +!APAN/RPR7=0.0 ! -!WR_NO3/BIO=0.0 +!APAN/RPG7=0.0 ! -!WR_NO3/ARO=0.0 +!APAN/URG8=0.0 ! -!WR_NO3/HCHO=0.0 +!APAN/UR19=0.0 ! -!WR_NO3/ALD=0.0 +!APAN/URG9=0.0 ! -!WR_NO3/KET=0.0 +!APAN/AP7=0.0 ! -!WR_NO3/CARBO=0.0 +!APAN/URG10=0.0 ! -!WR_NO3/ONIT=0.0 +!APAN/RPR1=0.0 ! -!WR_NO3/PAN=0.0 +!APAN/RPR5=0.0 ! -!WR_NO3/OP1=0.0 +!APAN/RPR8=0.0 ! -!WR_NO3/OP2=0.0 +!APAN/RP10=0.0 ! -!WR_NO3/ORA1=0.0 +!APAN/RP11=0.0 ! -!WR_NO3/ORA2=0.0 +!APAN/RP16=0.0 ! -!WR_NO3/MO2=0.0 +!APAN/RPRL=0.0 ! -!WR_NO3/ALKAP=0.0 +!APAN/APAN=-K139 + PJAC(:,76,76)=-TPK%K139(:) ! -!WR_NO3/ALKEP=0.0 +!APAN/PAN1=0.0 ! -!WR_NO3/BIOP=0.0 +!APAN/PAN2=0.0 ! -!WR_NO3/PHO=0.0 +!APAN/PAN3=0.0 ! -!WR_NO3/ADD=0.0 +!APAN/PAN4=0.0 ! -!WR_NO3/AROP=0.0 +!APAN/PAN6=0.0 ! -!WR_NO3/CARBOP=0.0 +!APAN/PAN7=0.0 ! -!WR_NO3/OLN=0.0 +!APAN/PAN8=0.0 ! -!WR_NO3/XO2=0.0 +!APAN/PN10=0.0 ! -!WR_NO3/WC_O3=0.0 +!APAN/RO2T=0.0 ! -!WR_NO3/WC_H2O2=0.0 +!APAN/RO21=0.0 ! -!WR_NO3/WC_NO=0.0 +!APAN/RO25=0.0 ! -!WR_NO3/WC_NO2=0.0 +!PAN1/NO=0.0 ! -!WR_NO3/WC_NO3=0.0 +!PAN1/NO2=+K126*<RO26> + PJAC(:,77,2)=+TPK%K126(:)*TPK%RO26(:) ! -!WR_NO3/WC_N2O5=0.0 +!PAN1/O3=0.0 ! -!WR_NO3/WC_HONO=0.0 +!PAN1/HONO=0.0 ! -!WR_NO3/WC_HNO3=0.0 +!PAN1/HNO3=0.0 ! -!WR_NO3/WC_HNO4=0.0 +!PAN1/HNO4=0.0 ! -!WR_NO3/WC_NH3=0.0 +!PAN1/N2O5=0.0 ! -!WR_NO3/WC_OH=0.0 +!PAN1/NO3=0.0 ! -!WR_NO3/WC_HO2=0.0 +!PAN1/NH3=0.0 ! -!WR_NO3/WC_CO2=0.0 +!PAN1/HO2=0.0 ! -!WR_NO3/WC_SO2=0.0 +!PAN1/CO=0.0 ! -!WR_NO3/WC_SULF=0.0 +!PAN1/H2O2=0.0 ! -!WR_NO3/WC_HCHO=0.0 +!PAN1/SO2=0.0 ! -!WR_NO3/WC_ORA1=0.0 +!PAN1/H2SO4=0.0 ! -!WR_NO3/WC_ORA2=0.0 +!PAN1/OH=0.0 ! -!WR_NO3/WC_MO2=0.0 +!PAN1/ETHE=0.0 ! -!WR_NO3/WC_OP1=0.0 +!PAN1/OLEL=0.0 ! -!WR_NO3/WC_ASO3=0.0 +!PAN1/OLEH=0.0 ! -!WR_NO3/WC_ASO4=0.0 +!PAN1/ALKL=0.0 ! -!WR_NO3/WC_ASO5=0.0 +!PAN1/ALKM=0.0 ! -!WR_NO3/WC_AHSO5=0.0 +!PAN1/ALKH=0.0 ! -!WR_NO3/WC_AHMS=0.0 +!PAN1/AROH=0.0 ! -!WR_NO3/WR_O3=0.0 +!PAN1/AROL=0.0 ! -!WR_NO3/WR_H2O2=0.0 +!PAN1/AROO=0.0 ! -!WR_NO3/WR_NO=0.0 +!PAN1/ARAL=0.0 ! -!WR_NO3/WR_NO2=0.0 +!PAN1/ARAC=0.0 ! -!WR_NO3/WR_NO3=-KTR25-KR15*<WR_SULF>-KR16*<WR_SO2> - PJAC(:,71,71)=-TPK%KTR25(:)-TPK%KR15(:)*PCONC(:,81)-TPK%KR16(:)*PCONC(:,80) +!PAN1/PAH=0.0 ! -!WR_NO3/WR_N2O5=0.0 +!PAN1/HCHO=0.0 ! -!WR_NO3/WR_HONO=0.0 +!PAN1/ALD2=0.0 ! -!WR_NO3/WR_HNO3=0.0 +!PAN1/KETL=0.0 ! -!WR_NO3/WR_HNO4=0.0 +!PAN1/KETH=0.0 ! -!WR_NO3/WR_NH3=0.0 +!PAN1/MEOH=0.0 ! -!WR_NO3/WR_OH=0.0 +!PAN1/ETOH=0.0 ! -!WR_NO3/WR_HO2=0.0 +!PAN1/ALCH=0.0 ! -!WR_NO3/WR_CO2=0.0 +!PAN1/ISOP=0.0 ! -!WR_NO3/WR_SO2=-KR16*<WR_NO3> - PJAC(:,71,80)=-TPK%KR16(:)*PCONC(:,71) +!PAN1/BIOL=0.0 ! -!WR_NO3/WR_SULF=-KR15*<WR_NO3> - PJAC(:,71,81)=-TPK%KR15(:)*PCONC(:,71) +!PAN1/BIOH=0.0 ! -!WR_NO3/WR_HCHO=0.0 +!PAN1/MTBE=0.0 ! -!WR_NO3/WR_ORA1=0.0 +!PAN1/MVK=0.0 ! -!WR_NO3/WR_ORA2=0.0 +!PAN1/MCR=0.0 ! -!WR_NO3/WR_MO2=0.0 +!PAN1/MGLY=0.0 ! -!WR_NO3/WR_OP1=0.0 +!PAN1/GLY=0.0 ! -!WR_NO3/WR_ASO3=0.0 +!PAN1/ORA1=0.0 ! -!WR_NO3/WR_ASO4=0.0 +!PAN1/ORA2=0.0 ! -!WR_NO3/WR_ASO5=0.0 +!PAN1/ACID=0.0 ! -!WR_NO3/WR_AHSO5=0.0 +!PAN1/UR28=0.0 ! -!WR_NO3/WR_AHMS=0.0 +!PAN1/UR21=0.0 ! -!WR_N2O5/O3=0.0 +!PAN1/URG2=0.0 ! -!WR_N2O5/H2O2=0.0 +!PAN1/UR26=0.0 ! -!WR_N2O5/NO=0.0 +!PAN1/RPG2=0.0 ! -!WR_N2O5/NO2=0.0 +!PAN1/RP18=0.0 ! -!WR_N2O5/NO3=0.0 +!PAN1/RPG3=0.0 ! -!WR_N2O5/N2O5=+KTR6 - PJAC(:,72,6)=+TPK%KTR6(:) +!PAN1/URG4=0.0 ! -!WR_N2O5/HONO=0.0 +!PAN1/UR8=0.0 ! -!WR_N2O5/HNO3=0.0 +!PAN1/UR17=0.0 ! -!WR_N2O5/HNO4=0.0 +!PAN1/UR7=0.0 ! -!WR_N2O5/NH3=0.0 +!PAN1/RPR3=0.0 ! -!WR_N2O5/SO2=0.0 +!PAN1/URG6=0.0 ! -!WR_N2O5/SULF=0.0 +!PAN1/UR22=0.0 ! -!WR_N2O5/CO=0.0 +!PAN1/URG7=0.0 ! -!WR_N2O5/OH=0.0 +!PAN1/RPR4=0.0 ! -!WR_N2O5/HO2=0.0 +!PAN1/RPR7=0.0 ! -!WR_N2O5/CH4=0.0 +!PAN1/RPG7=0.0 ! -!WR_N2O5/ETH=0.0 +!PAN1/URG8=0.0 ! -!WR_N2O5/ALKA=0.0 +!PAN1/UR19=0.0 ! -!WR_N2O5/ALKE=0.0 +!PAN1/URG9=0.0 ! -!WR_N2O5/BIO=0.0 +!PAN1/AP7=0.0 ! -!WR_N2O5/ARO=0.0 +!PAN1/URG10=0.0 ! -!WR_N2O5/HCHO=0.0 +!PAN1/RPR1=0.0 ! -!WR_N2O5/ALD=0.0 +!PAN1/RPR5=0.0 ! -!WR_N2O5/KET=0.0 +!PAN1/RPR8=0.0 ! -!WR_N2O5/CARBO=0.0 +!PAN1/RP10=0.0 ! -!WR_N2O5/ONIT=0.0 +!PAN1/RP11=0.0 ! -!WR_N2O5/PAN=0.0 +!PAN1/RP16=0.0 ! -!WR_N2O5/OP1=0.0 +!PAN1/RPRL=0.0 ! -!WR_N2O5/OP2=0.0 +!PAN1/APAN=0.0 ! -!WR_N2O5/ORA1=0.0 +!PAN1/PAN1=-K135 + PJAC(:,77,77)=-TPK%K135(:) ! -!WR_N2O5/ORA2=0.0 +!PAN1/PAN2=0.0 ! -!WR_N2O5/MO2=0.0 +!PAN1/PAN3=0.0 ! -!WR_N2O5/ALKAP=0.0 +!PAN1/PAN4=0.0 ! -!WR_N2O5/ALKEP=0.0 +!PAN1/PAN6=0.0 ! -!WR_N2O5/BIOP=0.0 +!PAN1/PAN7=0.0 ! -!WR_N2O5/PHO=0.0 +!PAN1/PAN8=0.0 ! -!WR_N2O5/ADD=0.0 +!PAN1/PN10=0.0 ! -!WR_N2O5/AROP=0.0 +!PAN1/RO2T=0.0 ! -!WR_N2O5/CARBOP=0.0 +!PAN1/RO21=0.0 ! -!WR_N2O5/OLN=0.0 +!PAN1/RO25=0.0 ! -!WR_N2O5/XO2=0.0 +!PAN2/NO=0.0 ! -!WR_N2O5/WC_O3=0.0 +!PAN2/NO2=+K127*<RO28> + PJAC(:,78,2)=+TPK%K127(:)*TPK%RO28(:) ! -!WR_N2O5/WC_H2O2=0.0 +!PAN2/O3=0.0 ! -!WR_N2O5/WC_NO=0.0 +!PAN2/HONO=0.0 ! -!WR_N2O5/WC_NO2=0.0 +!PAN2/HNO3=0.0 ! -!WR_N2O5/WC_NO3=0.0 +!PAN2/HNO4=0.0 ! -!WR_N2O5/WC_N2O5=0.0 +!PAN2/N2O5=0.0 ! -!WR_N2O5/WC_HONO=0.0 +!PAN2/NO3=0.0 ! -!WR_N2O5/WC_HNO3=0.0 +!PAN2/NH3=0.0 ! -!WR_N2O5/WC_HNO4=0.0 +!PAN2/HO2=0.0 ! -!WR_N2O5/WC_NH3=0.0 +!PAN2/CO=0.0 ! -!WR_N2O5/WC_OH=0.0 +!PAN2/H2O2=0.0 ! -!WR_N2O5/WC_HO2=0.0 +!PAN2/SO2=0.0 ! -!WR_N2O5/WC_CO2=0.0 +!PAN2/H2SO4=0.0 ! -!WR_N2O5/WC_SO2=0.0 +!PAN2/OH=0.0 ! -!WR_N2O5/WC_SULF=0.0 +!PAN2/ETHE=0.0 ! -!WR_N2O5/WC_HCHO=0.0 +!PAN2/OLEL=0.0 ! -!WR_N2O5/WC_ORA1=0.0 +!PAN2/OLEH=0.0 ! -!WR_N2O5/WC_ORA2=0.0 +!PAN2/ALKL=0.0 ! -!WR_N2O5/WC_MO2=0.0 +!PAN2/ALKM=0.0 ! -!WR_N2O5/WC_OP1=0.0 +!PAN2/ALKH=0.0 ! -!WR_N2O5/WC_ASO3=0.0 +!PAN2/AROH=0.0 ! -!WR_N2O5/WC_ASO4=0.0 +!PAN2/AROL=0.0 ! -!WR_N2O5/WC_ASO5=0.0 +!PAN2/AROO=0.0 ! -!WR_N2O5/WC_AHSO5=0.0 +!PAN2/ARAL=0.0 ! -!WR_N2O5/WC_AHMS=0.0 +!PAN2/ARAC=0.0 ! -!WR_N2O5/WR_O3=0.0 +!PAN2/PAH=0.0 ! -!WR_N2O5/WR_H2O2=0.0 +!PAN2/HCHO=0.0 ! -!WR_N2O5/WR_NO=0.0 +!PAN2/ALD2=0.0 ! -!WR_N2O5/WR_NO2=0.0 +!PAN2/KETL=0.0 ! -!WR_N2O5/WR_NO3=0.0 +!PAN2/KETH=0.0 ! -!WR_N2O5/WR_N2O5=-KTR26-KR14 - PJAC(:,72,72)=-TPK%KTR26(:)-TPK%KR14(:) +!PAN2/MEOH=0.0 ! -!WR_N2O5/WR_HONO=0.0 +!PAN2/ETOH=0.0 ! -!WR_N2O5/WR_HNO3=0.0 +!PAN2/ALCH=0.0 ! -!WR_N2O5/WR_HNO4=0.0 +!PAN2/ISOP=0.0 ! -!WR_N2O5/WR_NH3=0.0 +!PAN2/BIOL=0.0 ! -!WR_N2O5/WR_OH=0.0 +!PAN2/BIOH=0.0 ! -!WR_N2O5/WR_HO2=0.0 +!PAN2/MTBE=0.0 ! -!WR_N2O5/WR_CO2=0.0 +!PAN2/MVK=0.0 ! -!WR_N2O5/WR_SO2=0.0 +!PAN2/MCR=0.0 ! -!WR_N2O5/WR_SULF=0.0 +!PAN2/MGLY=0.0 ! -!WR_N2O5/WR_HCHO=0.0 +!PAN2/GLY=0.0 ! -!WR_N2O5/WR_ORA1=0.0 +!PAN2/ORA1=0.0 ! -!WR_N2O5/WR_ORA2=0.0 +!PAN2/ORA2=0.0 ! -!WR_N2O5/WR_MO2=0.0 +!PAN2/ACID=0.0 ! -!WR_N2O5/WR_OP1=0.0 +!PAN2/UR28=0.0 ! -!WR_N2O5/WR_ASO3=0.0 +!PAN2/UR21=0.0 ! -!WR_N2O5/WR_ASO4=0.0 +!PAN2/URG2=0.0 ! -!WR_N2O5/WR_ASO5=0.0 +!PAN2/UR26=0.0 ! -!WR_N2O5/WR_AHSO5=0.0 +!PAN2/RPG2=0.0 ! -!WR_N2O5/WR_AHMS=0.0 +!PAN2/RP18=0.0 ! -!WR_HONO/O3=0.0 +!PAN2/RPG3=0.0 ! -!WR_HONO/H2O2=0.0 +!PAN2/URG4=0.0 ! -!WR_HONO/NO=0.0 +!PAN2/UR8=0.0 ! -!WR_HONO/NO2=0.0 +!PAN2/UR17=0.0 ! -!WR_HONO/NO3=0.0 +!PAN2/UR7=0.0 ! -!WR_HONO/N2O5=0.0 +!PAN2/RPR3=0.0 ! -!WR_HONO/HONO=+KTR7 - PJAC(:,73,7)=+TPK%KTR7(:) +!PAN2/URG6=0.0 ! -!WR_HONO/HNO3=0.0 +!PAN2/UR22=0.0 ! -!WR_HONO/HNO4=0.0 +!PAN2/URG7=0.0 ! -!WR_HONO/NH3=0.0 +!PAN2/RPR4=0.0 ! -!WR_HONO/SO2=0.0 +!PAN2/RPR7=0.0 ! -!WR_HONO/SULF=0.0 +!PAN2/RPG7=0.0 ! -!WR_HONO/CO=0.0 +!PAN2/URG8=0.0 ! -!WR_HONO/OH=0.0 +!PAN2/UR19=0.0 ! -!WR_HONO/HO2=0.0 +!PAN2/URG9=0.0 ! -!WR_HONO/CH4=0.0 +!PAN2/AP7=0.0 ! -!WR_HONO/ETH=0.0 +!PAN2/URG10=0.0 ! -!WR_HONO/ALKA=0.0 +!PAN2/RPR1=0.0 ! -!WR_HONO/ALKE=0.0 +!PAN2/RPR5=0.0 ! -!WR_HONO/BIO=0.0 +!PAN2/RPR8=0.0 ! -!WR_HONO/ARO=0.0 +!PAN2/RP10=0.0 ! -!WR_HONO/HCHO=0.0 +!PAN2/RP11=0.0 ! -!WR_HONO/ALD=0.0 +!PAN2/RP16=0.0 ! -!WR_HONO/KET=0.0 +!PAN2/RPRL=0.0 ! -!WR_HONO/CARBO=0.0 +!PAN2/APAN=0.0 ! -!WR_HONO/ONIT=0.0 +!PAN2/PAN1=0.0 ! -!WR_HONO/PAN=0.0 +!PAN2/PAN2=-K136 + PJAC(:,78,78)=-TPK%K136(:) ! -!WR_HONO/OP1=0.0 +!PAN2/PAN3=0.0 ! -!WR_HONO/OP2=0.0 +!PAN2/PAN4=0.0 ! -!WR_HONO/ORA1=0.0 +!PAN2/PAN6=0.0 ! -!WR_HONO/ORA2=0.0 +!PAN2/PAN7=0.0 ! -!WR_HONO/MO2=0.0 +!PAN2/PAN8=0.0 ! -!WR_HONO/ALKAP=0.0 +!PAN2/PN10=0.0 ! -!WR_HONO/ALKEP=0.0 +!PAN2/RO2T=0.0 ! -!WR_HONO/BIOP=0.0 +!PAN2/RO21=0.0 ! -!WR_HONO/PHO=0.0 +!PAN2/RO25=0.0 ! -!WR_HONO/ADD=0.0 +!PAN3/NO=0.0 ! -!WR_HONO/AROP=0.0 +!PAN3/NO2=+K128*<RO239> + PJAC(:,79,2)=+TPK%K128(:)*TPK%RO239(:) ! -!WR_HONO/CARBOP=0.0 +!PAN3/O3=0.0 ! -!WR_HONO/OLN=0.0 +!PAN3/HONO=0.0 ! -!WR_HONO/XO2=0.0 +!PAN3/HNO3=0.0 ! -!WR_HONO/WC_O3=0.0 +!PAN3/HNO4=0.0 ! -!WR_HONO/WC_H2O2=0.0 +!PAN3/N2O5=0.0 ! -!WR_HONO/WC_NO=0.0 +!PAN3/NO3=0.0 ! -!WR_HONO/WC_NO2=0.0 +!PAN3/NH3=0.0 ! -!WR_HONO/WC_NO3=0.0 +!PAN3/HO2=0.0 ! -!WR_HONO/WC_N2O5=0.0 +!PAN3/CO=0.0 ! -!WR_HONO/WC_HONO=0.0 +!PAN3/H2O2=0.0 ! -!WR_HONO/WC_HNO3=0.0 +!PAN3/SO2=0.0 ! -!WR_HONO/WC_HNO4=0.0 +!PAN3/H2SO4=0.0 ! -!WR_HONO/WC_NH3=0.0 +!PAN3/OH=0.0 ! -!WR_HONO/WC_OH=0.0 +!PAN3/ETHE=0.0 ! -!WR_HONO/WC_HO2=0.0 +!PAN3/OLEL=0.0 ! -!WR_HONO/WC_CO2=0.0 +!PAN3/OLEH=0.0 ! -!WR_HONO/WC_SO2=0.0 +!PAN3/ALKL=0.0 ! -!WR_HONO/WC_SULF=0.0 +!PAN3/ALKM=0.0 ! -!WR_HONO/WC_HCHO=0.0 +!PAN3/ALKH=0.0 ! -!WR_HONO/WC_ORA1=0.0 +!PAN3/AROH=0.0 ! -!WR_HONO/WC_ORA2=0.0 +!PAN3/AROL=0.0 ! -!WR_HONO/WC_MO2=0.0 +!PAN3/AROO=0.0 ! -!WR_HONO/WC_OP1=0.0 +!PAN3/ARAL=0.0 ! -!WR_HONO/WC_ASO3=0.0 +!PAN3/ARAC=0.0 ! -!WR_HONO/WC_ASO4=0.0 +!PAN3/PAH=0.0 ! -!WR_HONO/WC_ASO5=0.0 +!PAN3/HCHO=0.0 ! -!WR_HONO/WC_AHSO5=0.0 +!PAN3/ALD2=0.0 ! -!WR_HONO/WC_AHMS=0.0 +!PAN3/KETL=0.0 ! -!WR_HONO/WR_O3=0.0 +!PAN3/KETH=0.0 ! -!WR_HONO/WR_H2O2=0.0 +!PAN3/MEOH=0.0 ! -!WR_HONO/WR_NO=0.0 +!PAN3/ETOH=0.0 ! -!WR_HONO/WR_NO2=0.0 +!PAN3/ALCH=0.0 ! -!WR_HONO/WR_NO3=0.0 +!PAN3/ISOP=0.0 ! -!WR_HONO/WR_N2O5=0.0 +!PAN3/BIOL=0.0 ! -!WR_HONO/WR_HONO=-KTR27-KR8*<WR_OH> - PJAC(:,73,73)=-TPK%KTR27(:)-TPK%KR8(:)*PCONC(:,77) +!PAN3/BIOH=0.0 ! -!WR_HONO/WR_HNO3=0.0 +!PAN3/MTBE=0.0 ! -!WR_HONO/WR_HNO4=+KR11 - PJAC(:,73,75)=+TPK%KR11(:) +!PAN3/MVK=0.0 ! -!WR_HONO/WR_NH3=0.0 +!PAN3/MCR=0.0 ! -!WR_HONO/WR_OH=-KR8*<WR_HONO> - PJAC(:,73,77)=-TPK%KR8(:)*PCONC(:,73) +!PAN3/MGLY=0.0 ! -!WR_HONO/WR_HO2=0.0 +!PAN3/GLY=0.0 ! -!WR_HONO/WR_CO2=0.0 +!PAN3/ORA1=0.0 ! -!WR_HONO/WR_SO2=0.0 +!PAN3/ORA2=0.0 ! -!WR_HONO/WR_SULF=0.0 +!PAN3/ACID=0.0 ! -!WR_HONO/WR_HCHO=0.0 +!PAN3/UR28=0.0 ! -!WR_HONO/WR_ORA1=0.0 +!PAN3/UR21=0.0 ! -!WR_HONO/WR_ORA2=0.0 +!PAN3/URG2=0.0 ! -!WR_HONO/WR_MO2=0.0 +!PAN3/UR26=0.0 ! -!WR_HONO/WR_OP1=0.0 +!PAN3/RPG2=0.0 ! -!WR_HONO/WR_ASO3=0.0 +!PAN3/RP18=0.0 ! -!WR_HONO/WR_ASO4=0.0 +!PAN3/RPG3=0.0 ! -!WR_HONO/WR_ASO5=0.0 +!PAN3/URG4=0.0 ! -!WR_HONO/WR_AHSO5=0.0 +!PAN3/UR8=0.0 ! -!WR_HONO/WR_AHMS=0.0 +!PAN3/UR17=0.0 ! -!WR_HNO3/O3=0.0 +!PAN3/UR7=0.0 ! -!WR_HNO3/H2O2=0.0 +!PAN3/RPR3=0.0 ! -!WR_HNO3/NO=0.0 +!PAN3/URG6=0.0 ! -!WR_HNO3/NO2=0.0 +!PAN3/UR22=0.0 ! -!WR_HNO3/NO3=0.0 +!PAN3/URG7=0.0 ! -!WR_HNO3/N2O5=0.0 +!PAN3/RPR4=0.0 ! -!WR_HNO3/HONO=0.0 +!PAN3/RPR7=0.0 ! -!WR_HNO3/HNO3=+KTR8 - PJAC(:,74,8)=+TPK%KTR8(:) +!PAN3/RPG7=0.0 ! -!WR_HNO3/HNO4=0.0 +!PAN3/URG8=0.0 ! -!WR_HNO3/NH3=0.0 +!PAN3/UR19=0.0 ! -!WR_HNO3/SO2=0.0 +!PAN3/URG9=0.0 ! -!WR_HNO3/SULF=0.0 +!PAN3/AP7=0.0 ! -!WR_HNO3/CO=0.0 +!PAN3/URG10=0.0 ! -!WR_HNO3/OH=0.0 +!PAN3/RPR1=0.0 ! -!WR_HNO3/HO2=0.0 +!PAN3/RPR5=0.0 ! -!WR_HNO3/CH4=0.0 +!PAN3/RPR8=0.0 ! -!WR_HNO3/ETH=0.0 +!PAN3/RP10=0.0 ! -!WR_HNO3/ALKA=0.0 +!PAN3/RP11=0.0 ! -!WR_HNO3/ALKE=0.0 +!PAN3/RP16=0.0 ! -!WR_HNO3/BIO=0.0 +!PAN3/RPRL=0.0 ! -!WR_HNO3/ARO=0.0 +!PAN3/APAN=0.0 ! -!WR_HNO3/HCHO=0.0 +!PAN3/PAN1=0.0 ! -!WR_HNO3/ALD=0.0 +!PAN3/PAN2=0.0 ! -!WR_HNO3/KET=0.0 +!PAN3/PAN3=-K137 + PJAC(:,79,79)=-TPK%K137(:) ! -!WR_HNO3/CARBO=0.0 +!PAN3/PAN4=0.0 ! -!WR_HNO3/ONIT=0.0 +!PAN3/PAN6=0.0 ! -!WR_HNO3/PAN=0.0 +!PAN3/PAN7=0.0 ! -!WR_HNO3/OP1=0.0 +!PAN3/PAN8=0.0 ! -!WR_HNO3/OP2=0.0 +!PAN3/PN10=0.0 ! -!WR_HNO3/ORA1=0.0 +!PAN3/RO2T=0.0 ! -!WR_HNO3/ORA2=0.0 +!PAN3/RO21=0.0 ! -!WR_HNO3/MO2=0.0 +!PAN3/RO25=0.0 ! -!WR_HNO3/ALKAP=0.0 +!PAN4/NO=0.0 ! -!WR_HNO3/ALKEP=0.0 +!PAN4/NO2=+K129*<RO248> + PJAC(:,80,2)=+TPK%K129(:)*TPK%RO248(:) ! -!WR_HNO3/BIOP=0.0 +!PAN4/O3=0.0 ! -!WR_HNO3/PHO=0.0 +!PAN4/HONO=0.0 ! -!WR_HNO3/ADD=0.0 +!PAN4/HNO3=0.0 ! -!WR_HNO3/AROP=0.0 +!PAN4/HNO4=0.0 ! -!WR_HNO3/CARBOP=0.0 +!PAN4/N2O5=0.0 ! -!WR_HNO3/OLN=0.0 +!PAN4/NO3=0.0 ! -!WR_HNO3/XO2=0.0 +!PAN4/NH3=0.0 ! -!WR_HNO3/WC_O3=0.0 +!PAN4/HO2=0.0 ! -!WR_HNO3/WC_H2O2=0.0 +!PAN4/CO=0.0 ! -!WR_HNO3/WC_NO=0.0 +!PAN4/H2O2=0.0 ! -!WR_HNO3/WC_NO2=0.0 +!PAN4/SO2=0.0 ! -!WR_HNO3/WC_NO3=0.0 +!PAN4/H2SO4=0.0 ! -!WR_HNO3/WC_N2O5=0.0 +!PAN4/OH=0.0 ! -!WR_HNO3/WC_HONO=0.0 +!PAN4/ETHE=0.0 ! -!WR_HNO3/WC_HNO3=0.0 +!PAN4/OLEL=0.0 ! -!WR_HNO3/WC_HNO4=0.0 +!PAN4/OLEH=0.0 ! -!WR_HNO3/WC_NH3=0.0 +!PAN4/ALKL=0.0 ! -!WR_HNO3/WC_OH=0.0 +!PAN4/ALKM=0.0 ! -!WR_HNO3/WC_HO2=0.0 +!PAN4/ALKH=0.0 ! -!WR_HNO3/WC_CO2=0.0 +!PAN4/AROH=0.0 ! -!WR_HNO3/WC_SO2=0.0 +!PAN4/AROL=0.0 ! -!WR_HNO3/WC_SULF=0.0 +!PAN4/AROO=0.0 ! -!WR_HNO3/WC_HCHO=0.0 +!PAN4/ARAL=0.0 ! -!WR_HNO3/WC_ORA1=0.0 +!PAN4/ARAC=0.0 ! -!WR_HNO3/WC_ORA2=0.0 +!PAN4/PAH=0.0 ! -!WR_HNO3/WC_MO2=0.0 +!PAN4/HCHO=0.0 ! -!WR_HNO3/WC_OP1=0.0 +!PAN4/ALD2=0.0 ! -!WR_HNO3/WC_ASO3=0.0 +!PAN4/KETL=0.0 ! -!WR_HNO3/WC_ASO4=0.0 +!PAN4/KETH=0.0 ! -!WR_HNO3/WC_ASO5=0.0 +!PAN4/MEOH=0.0 ! -!WR_HNO3/WC_AHSO5=0.0 +!PAN4/ETOH=0.0 ! -!WR_HNO3/WC_AHMS=0.0 +!PAN4/ALCH=0.0 ! -!WR_HNO3/WR_O3=0.0 +!PAN4/ISOP=0.0 ! -!WR_HNO3/WR_H2O2=0.0 +!PAN4/BIOL=0.0 ! -!WR_HNO3/WR_NO=0.0 +!PAN4/BIOH=0.0 ! -!WR_HNO3/WR_NO2=0.0 +!PAN4/MTBE=0.0 ! -!WR_HNO3/WR_NO3=+KR15*<WR_SULF>+KR16*<WR_SO2> - PJAC(:,74,71)=+TPK%KR15(:)*PCONC(:,81)+TPK%KR16(:)*PCONC(:,80) +!PAN4/MVK=0.0 ! -!WR_HNO3/WR_N2O5=+KR14+KR14 - PJAC(:,74,72)=+TPK%KR14(:)+TPK%KR14(:) +!PAN4/MCR=0.0 ! -!WR_HNO3/WR_HONO=0.0 +!PAN4/MGLY=0.0 ! -!WR_HNO3/WR_HNO3=-KTR28-KR13 - PJAC(:,74,74)=-TPK%KTR28(:)-TPK%KR13(:) +!PAN4/GLY=0.0 ! -!WR_HNO3/WR_HNO4=+KR12*<WR_SO2> - PJAC(:,74,75)=+TPK%KR12(:)*PCONC(:,80) +!PAN4/ORA1=0.0 ! -!WR_HNO3/WR_NH3=0.0 +!PAN4/ORA2=0.0 ! -!WR_HNO3/WR_OH=0.0 +!PAN4/ACID=0.0 ! -!WR_HNO3/WR_HO2=0.0 +!PAN4/UR28=0.0 ! -!WR_HNO3/WR_CO2=0.0 +!PAN4/UR21=0.0 ! -!WR_HNO3/WR_SO2=+KR12*<WR_HNO4>+KR16*<WR_NO3> - PJAC(:,74,80)=+TPK%KR12(:)*PCONC(:,75)+TPK%KR16(:)*PCONC(:,71) +!PAN4/URG2=0.0 ! -!WR_HNO3/WR_SULF=+KR15*<WR_NO3> - PJAC(:,74,81)=+TPK%KR15(:)*PCONC(:,71) +!PAN4/UR26=0.0 ! -!WR_HNO3/WR_HCHO=0.0 +!PAN4/RPG2=0.0 ! -!WR_HNO3/WR_ORA1=0.0 +!PAN4/RP18=0.0 ! -!WR_HNO3/WR_ORA2=0.0 +!PAN4/RPG3=0.0 ! -!WR_HNO3/WR_MO2=0.0 +!PAN4/URG4=0.0 ! -!WR_HNO3/WR_OP1=0.0 +!PAN4/UR8=0.0 ! -!WR_HNO3/WR_ASO3=0.0 +!PAN4/UR17=0.0 ! -!WR_HNO3/WR_ASO4=0.0 +!PAN4/UR7=0.0 ! -!WR_HNO3/WR_ASO5=0.0 +!PAN4/RPR3=0.0 ! -!WR_HNO3/WR_AHSO5=0.0 +!PAN4/URG6=0.0 ! -!WR_HNO3/WR_AHMS=0.0 +!PAN4/UR22=0.0 ! -!WR_HNO4/O3=0.0 +!PAN4/URG7=0.0 ! -!WR_HNO4/H2O2=0.0 +!PAN4/RPR4=0.0 ! -!WR_HNO4/NO=0.0 +!PAN4/RPR7=0.0 ! -!WR_HNO4/NO2=0.0 +!PAN4/RPG7=0.0 ! -!WR_HNO4/NO3=0.0 +!PAN4/URG8=0.0 ! -!WR_HNO4/N2O5=0.0 +!PAN4/UR19=0.0 ! -!WR_HNO4/HONO=0.0 +!PAN4/URG9=0.0 ! -!WR_HNO4/HNO3=0.0 +!PAN4/AP7=0.0 ! -!WR_HNO4/HNO4=+KTR9 - PJAC(:,75,9)=+TPK%KTR9(:) +!PAN4/URG10=0.0 ! -!WR_HNO4/NH3=0.0 +!PAN4/RPR1=0.0 ! -!WR_HNO4/SO2=0.0 +!PAN4/RPR5=0.0 ! -!WR_HNO4/SULF=0.0 +!PAN4/RPR8=0.0 ! -!WR_HNO4/CO=0.0 +!PAN4/RP10=0.0 ! -!WR_HNO4/OH=0.0 +!PAN4/RP11=0.0 ! -!WR_HNO4/HO2=0.0 +!PAN4/RP16=0.0 ! -!WR_HNO4/CH4=0.0 +!PAN4/RPRL=0.0 ! -!WR_HNO4/ETH=0.0 +!PAN4/APAN=0.0 ! -!WR_HNO4/ALKA=0.0 +!PAN4/PAN1=0.0 ! -!WR_HNO4/ALKE=0.0 +!PAN4/PAN2=0.0 ! -!WR_HNO4/BIO=0.0 +!PAN4/PAN3=0.0 ! -!WR_HNO4/ARO=0.0 +!PAN4/PAN4=-K141 + PJAC(:,80,80)=-TPK%K141(:) ! -!WR_HNO4/HCHO=0.0 +!PAN4/PAN6=0.0 ! -!WR_HNO4/ALD=0.0 +!PAN4/PAN7=0.0 ! -!WR_HNO4/KET=0.0 +!PAN4/PAN8=0.0 ! -!WR_HNO4/CARBO=0.0 +!PAN4/PN10=0.0 ! -!WR_HNO4/ONIT=0.0 +!PAN4/RO2T=0.0 ! -!WR_HNO4/PAN=0.0 +!PAN4/RO21=0.0 ! -!WR_HNO4/OP1=0.0 +!PAN4/RO25=0.0 ! -!WR_HNO4/OP2=0.0 +RETURN +END SUBROUTINE SUBJ15 ! -!WR_HNO4/ORA1=0.0 +SUBROUTINE SUBJ16 ! -!WR_HNO4/ORA2=0.0 +!Indices 81 a 85 ! -!WR_HNO4/MO2=0.0 ! -!WR_HNO4/ALKAP=0.0 +!PAN6/NO=0.0 ! -!WR_HNO4/ALKEP=0.0 +!PAN6/NO2=+K131*<RO254> + PJAC(:,81,2)=+TPK%K131(:)*TPK%RO254(:) ! -!WR_HNO4/BIOP=0.0 +!PAN6/O3=0.0 ! -!WR_HNO4/PHO=0.0 +!PAN6/HONO=0.0 ! -!WR_HNO4/ADD=0.0 +!PAN6/HNO3=0.0 ! -!WR_HNO4/AROP=0.0 +!PAN6/HNO4=0.0 ! -!WR_HNO4/CARBOP=0.0 +!PAN6/N2O5=0.0 ! -!WR_HNO4/OLN=0.0 +!PAN6/NO3=0.0 ! -!WR_HNO4/XO2=0.0 +!PAN6/NH3=0.0 ! -!WR_HNO4/WC_O3=0.0 +!PAN6/HO2=0.0 ! -!WR_HNO4/WC_H2O2=0.0 +!PAN6/CO=0.0 ! -!WR_HNO4/WC_NO=0.0 +!PAN6/H2O2=0.0 ! -!WR_HNO4/WC_NO2=0.0 +!PAN6/SO2=0.0 ! -!WR_HNO4/WC_NO3=0.0 +!PAN6/H2SO4=0.0 ! -!WR_HNO4/WC_N2O5=0.0 +!PAN6/OH=0.0 ! -!WR_HNO4/WC_HONO=0.0 +!PAN6/ETHE=0.0 ! -!WR_HNO4/WC_HNO3=0.0 +!PAN6/OLEL=0.0 ! -!WR_HNO4/WC_HNO4=0.0 +!PAN6/OLEH=0.0 ! -!WR_HNO4/WC_NH3=0.0 +!PAN6/ALKL=0.0 ! -!WR_HNO4/WC_OH=0.0 +!PAN6/ALKM=0.0 ! -!WR_HNO4/WC_HO2=0.0 +!PAN6/ALKH=0.0 ! -!WR_HNO4/WC_CO2=0.0 +!PAN6/AROH=0.0 ! -!WR_HNO4/WC_SO2=0.0 +!PAN6/AROL=0.0 ! -!WR_HNO4/WC_SULF=0.0 +!PAN6/AROO=0.0 ! -!WR_HNO4/WC_HCHO=0.0 +!PAN6/ARAL=0.0 ! -!WR_HNO4/WC_ORA1=0.0 +!PAN6/ARAC=0.0 ! -!WR_HNO4/WC_ORA2=0.0 +!PAN6/PAH=0.0 ! -!WR_HNO4/WC_MO2=0.0 +!PAN6/HCHO=0.0 ! -!WR_HNO4/WC_OP1=0.0 +!PAN6/ALD2=0.0 ! -!WR_HNO4/WC_ASO3=0.0 +!PAN6/KETL=0.0 ! -!WR_HNO4/WC_ASO4=0.0 +!PAN6/KETH=0.0 ! -!WR_HNO4/WC_ASO5=0.0 +!PAN6/MEOH=0.0 ! -!WR_HNO4/WC_AHSO5=0.0 +!PAN6/ETOH=0.0 ! -!WR_HNO4/WC_AHMS=0.0 +!PAN6/ALCH=0.0 ! -!WR_HNO4/WR_O3=0.0 +!PAN6/ISOP=0.0 ! -!WR_HNO4/WR_H2O2=0.0 +!PAN6/BIOL=0.0 ! -!WR_HNO4/WR_NO=0.0 +!PAN6/BIOH=0.0 ! -!WR_HNO4/WR_NO2=+KR9*<WR_HO2> - PJAC(:,75,70)=+TPK%KR9(:)*PCONC(:,78) +!PAN6/MTBE=0.0 ! -!WR_HNO4/WR_NO3=0.0 +!PAN6/MVK=0.0 ! -!WR_HNO4/WR_N2O5=0.0 +!PAN6/MCR=0.0 ! -!WR_HNO4/WR_HONO=0.0 +!PAN6/MGLY=0.0 ! -!WR_HNO4/WR_HNO3=0.0 +!PAN6/GLY=0.0 ! -!WR_HNO4/WR_HNO4=-KTR29-KR10-KR11-KR12*<WR_SO2> - PJAC(:,75,75)=-TPK%KTR29(:)-TPK%KR10(:)-TPK%KR11(:)-TPK%KR12(:)*PCONC(:,80) +!PAN6/ORA1=0.0 ! -!WR_HNO4/WR_NH3=0.0 +!PAN6/ORA2=0.0 ! -!WR_HNO4/WR_OH=0.0 +!PAN6/ACID=0.0 ! -!WR_HNO4/WR_HO2=+KR9*<WR_NO2> - PJAC(:,75,78)=+TPK%KR9(:)*PCONC(:,70) +!PAN6/UR28=0.0 ! -!WR_HNO4/WR_CO2=0.0 +!PAN6/UR21=0.0 ! -!WR_HNO4/WR_SO2=-KR12*<WR_HNO4> - PJAC(:,75,80)=-TPK%KR12(:)*PCONC(:,75) +!PAN6/URG2=0.0 ! -!WR_HNO4/WR_SULF=0.0 +!PAN6/UR26=0.0 ! -!WR_HNO4/WR_HCHO=0.0 +!PAN6/RPG2=0.0 ! -!WR_HNO4/WR_ORA1=0.0 +!PAN6/RP18=0.0 ! -!WR_HNO4/WR_ORA2=0.0 +!PAN6/RPG3=0.0 ! -!WR_HNO4/WR_MO2=0.0 +!PAN6/URG4=0.0 ! -!WR_HNO4/WR_OP1=0.0 +!PAN6/UR8=0.0 ! -!WR_HNO4/WR_ASO3=0.0 +!PAN6/UR17=0.0 ! -!WR_HNO4/WR_ASO4=0.0 +!PAN6/UR7=0.0 ! -!WR_HNO4/WR_ASO5=0.0 +!PAN6/RPR3=0.0 ! -!WR_HNO4/WR_AHSO5=0.0 +!PAN6/URG6=0.0 ! -!WR_HNO4/WR_AHMS=0.0 +!PAN6/UR22=0.0 ! -RETURN -END SUBROUTINE SUBJ14 +!PAN6/URG7=0.0 ! -SUBROUTINE SUBJ15 +!PAN6/RPR4=0.0 ! -!Indices 76 a 80 +!PAN6/RPR7=0.0 ! +!PAN6/RPG7=0.0 ! -!WR_NH3/O3=0.0 +!PAN6/URG8=0.0 ! -!WR_NH3/H2O2=0.0 +!PAN6/UR19=0.0 ! -!WR_NH3/NO=0.0 +!PAN6/URG9=0.0 ! -!WR_NH3/NO2=0.0 +!PAN6/AP7=0.0 ! -!WR_NH3/NO3=0.0 +!PAN6/URG10=0.0 ! -!WR_NH3/N2O5=0.0 +!PAN6/RPR1=0.0 ! -!WR_NH3/HONO=0.0 +!PAN6/RPR5=0.0 ! -!WR_NH3/HNO3=0.0 +!PAN6/RPR8=0.0 ! -!WR_NH3/HNO4=0.0 +!PAN6/RP10=0.0 ! -!WR_NH3/NH3=+KTR10 - PJAC(:,76,10)=+TPK%KTR10(:) +!PAN6/RP11=0.0 ! -!WR_NH3/SO2=0.0 +!PAN6/RP16=0.0 ! -!WR_NH3/SULF=0.0 +!PAN6/RPRL=0.0 ! -!WR_NH3/CO=0.0 +!PAN6/APAN=0.0 ! -!WR_NH3/OH=0.0 +!PAN6/PAN1=0.0 ! -!WR_NH3/HO2=0.0 +!PAN6/PAN2=0.0 ! -!WR_NH3/CH4=0.0 +!PAN6/PAN3=0.0 ! -!WR_NH3/ETH=0.0 +!PAN6/PAN4=0.0 ! -!WR_NH3/ALKA=0.0 +!PAN6/PAN6=-K140 + PJAC(:,81,81)=-TPK%K140(:) ! -!WR_NH3/ALKE=0.0 +!PAN6/PAN7=0.0 ! -!WR_NH3/BIO=0.0 +!PAN6/PAN8=0.0 ! -!WR_NH3/ARO=0.0 +!PAN6/PN10=0.0 ! -!WR_NH3/HCHO=0.0 +!PAN6/RO2T=0.0 ! -!WR_NH3/ALD=0.0 +!PAN6/RO21=0.0 ! -!WR_NH3/KET=0.0 +!PAN6/RO25=0.0 ! -!WR_NH3/CARBO=0.0 +!PAN7/NO=0.0 ! -!WR_NH3/ONIT=0.0 +!PAN7/NO2=+K132*<RO255> + PJAC(:,82,2)=+TPK%K132(:)*TPK%RO255(:) ! -!WR_NH3/PAN=0.0 +!PAN7/O3=0.0 ! -!WR_NH3/OP1=0.0 +!PAN7/HONO=0.0 ! -!WR_NH3/OP2=0.0 +!PAN7/HNO3=0.0 ! -!WR_NH3/ORA1=0.0 +!PAN7/HNO4=0.0 ! -!WR_NH3/ORA2=0.0 +!PAN7/N2O5=0.0 ! -!WR_NH3/MO2=0.0 +!PAN7/NO3=0.0 ! -!WR_NH3/ALKAP=0.0 +!PAN7/NH3=0.0 ! -!WR_NH3/ALKEP=0.0 +!PAN7/HO2=0.0 ! -!WR_NH3/BIOP=0.0 +!PAN7/CO=0.0 ! -!WR_NH3/PHO=0.0 +!PAN7/H2O2=0.0 ! -!WR_NH3/ADD=0.0 +!PAN7/SO2=0.0 ! -!WR_NH3/AROP=0.0 +!PAN7/H2SO4=0.0 ! -!WR_NH3/CARBOP=0.0 +!PAN7/OH=0.0 ! -!WR_NH3/OLN=0.0 +!PAN7/ETHE=0.0 ! -!WR_NH3/XO2=0.0 +!PAN7/OLEL=0.0 ! -!WR_NH3/WC_O3=0.0 +!PAN7/OLEH=0.0 ! -!WR_NH3/WC_H2O2=0.0 +!PAN7/ALKL=0.0 ! -!WR_NH3/WC_NO=0.0 +!PAN7/ALKM=0.0 ! -!WR_NH3/WC_NO2=0.0 +!PAN7/ALKH=0.0 ! -!WR_NH3/WC_NO3=0.0 +!PAN7/AROH=0.0 ! -!WR_NH3/WC_N2O5=0.0 +!PAN7/AROL=0.0 ! -!WR_NH3/WC_HONO=0.0 +!PAN7/AROO=0.0 ! -!WR_NH3/WC_HNO3=0.0 +!PAN7/ARAL=0.0 ! -!WR_NH3/WC_HNO4=0.0 +!PAN7/ARAC=0.0 ! -!WR_NH3/WC_NH3=0.0 +!PAN7/PAH=0.0 ! -!WR_NH3/WC_OH=0.0 +!PAN7/HCHO=0.0 ! -!WR_NH3/WC_HO2=0.0 +!PAN7/ALD2=0.0 ! -!WR_NH3/WC_CO2=0.0 +!PAN7/KETL=0.0 ! -!WR_NH3/WC_SO2=0.0 +!PAN7/KETH=0.0 ! -!WR_NH3/WC_SULF=0.0 +!PAN7/MEOH=0.0 ! -!WR_NH3/WC_HCHO=0.0 +!PAN7/ETOH=0.0 ! -!WR_NH3/WC_ORA1=0.0 +!PAN7/ALCH=0.0 ! -!WR_NH3/WC_ORA2=0.0 +!PAN7/ISOP=0.0 ! -!WR_NH3/WC_MO2=0.0 +!PAN7/BIOL=0.0 ! -!WR_NH3/WC_OP1=0.0 +!PAN7/BIOH=0.0 ! -!WR_NH3/WC_ASO3=0.0 +!PAN7/MTBE=0.0 ! -!WR_NH3/WC_ASO4=0.0 +!PAN7/MVK=0.0 ! -!WR_NH3/WC_ASO5=0.0 +!PAN7/MCR=0.0 ! -!WR_NH3/WC_AHSO5=0.0 +!PAN7/MGLY=0.0 ! -!WR_NH3/WC_AHMS=0.0 +!PAN7/GLY=0.0 ! -!WR_NH3/WR_O3=0.0 +!PAN7/ORA1=0.0 ! -!WR_NH3/WR_H2O2=0.0 +!PAN7/ORA2=0.0 ! -!WR_NH3/WR_NO=0.0 +!PAN7/ACID=0.0 ! -!WR_NH3/WR_NO2=0.0 +!PAN7/UR28=0.0 ! -!WR_NH3/WR_NO3=0.0 +!PAN7/UR21=0.0 ! -!WR_NH3/WR_N2O5=0.0 +!PAN7/URG2=0.0 ! -!WR_NH3/WR_HONO=0.0 +!PAN7/UR26=0.0 ! -!WR_NH3/WR_HNO3=0.0 +!PAN7/RPG2=0.0 ! -!WR_NH3/WR_HNO4=0.0 +!PAN7/RP18=0.0 ! -!WR_NH3/WR_NH3=-KTR30 - PJAC(:,76,76)=-TPK%KTR30(:) +!PAN7/RPG3=0.0 ! -!WR_NH3/WR_OH=0.0 +!PAN7/URG4=0.0 ! -!WR_NH3/WR_HO2=0.0 +!PAN7/UR8=0.0 ! -!WR_NH3/WR_CO2=0.0 +!PAN7/UR17=0.0 ! -!WR_NH3/WR_SO2=0.0 +!PAN7/UR7=0.0 ! -!WR_NH3/WR_SULF=0.0 +!PAN7/RPR3=0.0 ! -!WR_NH3/WR_HCHO=0.0 +!PAN7/URG6=0.0 ! -!WR_NH3/WR_ORA1=0.0 +!PAN7/UR22=0.0 ! -!WR_NH3/WR_ORA2=0.0 +!PAN7/URG7=0.0 ! -!WR_NH3/WR_MO2=0.0 +!PAN7/RPR4=0.0 ! -!WR_NH3/WR_OP1=0.0 +!PAN7/RPR7=0.0 ! -!WR_NH3/WR_ASO3=0.0 +!PAN7/RPG7=0.0 ! -!WR_NH3/WR_ASO4=0.0 +!PAN7/URG8=0.0 ! -!WR_NH3/WR_ASO5=0.0 +!PAN7/UR19=0.0 ! -!WR_NH3/WR_AHSO5=0.0 +!PAN7/URG9=0.0 ! -!WR_NH3/WR_AHMS=0.0 +!PAN7/AP7=0.0 ! -!WR_OH/O3=0.0 +!PAN7/URG10=0.0 ! -!WR_OH/H2O2=0.0 +!PAN7/RPR1=0.0 ! -!WR_OH/NO=0.0 +!PAN7/RPR5=0.0 ! -!WR_OH/NO2=0.0 +!PAN7/RPR8=0.0 ! -!WR_OH/NO3=0.0 +!PAN7/RP10=0.0 ! -!WR_OH/N2O5=0.0 +!PAN7/RP11=0.0 ! -!WR_OH/HONO=0.0 +!PAN7/RP16=0.0 ! -!WR_OH/HNO3=0.0 +!PAN7/RPRL=0.0 ! -!WR_OH/HNO4=0.0 +!PAN7/APAN=0.0 ! -!WR_OH/NH3=0.0 +!PAN7/PAN1=0.0 ! -!WR_OH/SO2=0.0 +!PAN7/PAN2=0.0 ! -!WR_OH/SULF=0.0 +!PAN7/PAN3=0.0 ! -!WR_OH/CO=0.0 +!PAN7/PAN4=0.0 ! -!WR_OH/OH=+KTR11 - PJAC(:,77,14)=+TPK%KTR11(:) +!PAN7/PAN6=0.0 ! -!WR_OH/HO2=0.0 +!PAN7/PAN7=-K343 + PJAC(:,82,82)=-TPK%K343(:) ! -!WR_OH/CH4=0.0 +!PAN7/PAN8=0.0 ! -!WR_OH/ETH=0.0 +!PAN7/PN10=0.0 ! -!WR_OH/ALKA=0.0 +!PAN7/RO2T=0.0 ! -!WR_OH/ALKE=0.0 +!PAN7/RO21=0.0 ! -!WR_OH/BIO=0.0 +!PAN7/RO25=0.0 ! -!WR_OH/ARO=0.0 +!PAN8/NO=0.0 ! -!WR_OH/HCHO=0.0 +!PAN8/NO2=+K316*<RO256> + PJAC(:,83,2)=+TPK%K316(:)*TPK%RO256(:) ! -!WR_OH/ALD=0.0 +!PAN8/O3=0.0 ! -!WR_OH/KET=0.0 +!PAN8/HONO=0.0 ! -!WR_OH/CARBO=0.0 +!PAN8/HNO3=0.0 ! -!WR_OH/ONIT=0.0 +!PAN8/HNO4=0.0 ! -!WR_OH/PAN=0.0 +!PAN8/N2O5=0.0 ! -!WR_OH/OP1=0.0 +!PAN8/NO3=0.0 ! -!WR_OH/OP2=0.0 +!PAN8/NH3=0.0 ! -!WR_OH/ORA1=0.0 +!PAN8/HO2=0.0 ! -!WR_OH/ORA2=0.0 +!PAN8/CO=0.0 ! -!WR_OH/MO2=0.0 +!PAN8/H2O2=0.0 ! -!WR_OH/ALKAP=0.0 +!PAN8/SO2=0.0 ! -!WR_OH/ALKEP=0.0 +!PAN8/H2SO4=0.0 ! -!WR_OH/BIOP=0.0 +!PAN8/OH=0.0 ! -!WR_OH/PHO=0.0 +!PAN8/ETHE=0.0 ! -!WR_OH/ADD=0.0 +!PAN8/OLEL=0.0 ! -!WR_OH/AROP=0.0 +!PAN8/OLEH=0.0 ! -!WR_OH/CARBOP=0.0 +!PAN8/ALKL=0.0 ! -!WR_OH/OLN=0.0 +!PAN8/ALKM=0.0 ! -!WR_OH/XO2=0.0 +!PAN8/ALKH=0.0 ! -!WR_OH/WC_O3=0.0 +!PAN8/AROH=0.0 ! -!WR_OH/WC_H2O2=0.0 +!PAN8/AROL=0.0 ! -!WR_OH/WC_NO=0.0 +!PAN8/AROO=0.0 ! -!WR_OH/WC_NO2=0.0 +!PAN8/ARAL=0.0 ! -!WR_OH/WC_NO3=0.0 +!PAN8/ARAC=0.0 ! -!WR_OH/WC_N2O5=0.0 +!PAN8/PAH=0.0 ! -!WR_OH/WC_HONO=0.0 +!PAN8/HCHO=0.0 ! -!WR_OH/WC_HNO3=0.0 +!PAN8/ALD2=0.0 ! -!WR_OH/WC_HNO4=0.0 +!PAN8/KETL=0.0 ! -!WR_OH/WC_NH3=0.0 +!PAN8/KETH=0.0 ! -!WR_OH/WC_OH=0.0 +!PAN8/MEOH=0.0 ! -!WR_OH/WC_HO2=0.0 +!PAN8/ETOH=0.0 ! -!WR_OH/WC_CO2=0.0 +!PAN8/ALCH=0.0 ! -!WR_OH/WC_SO2=0.0 +!PAN8/ISOP=0.0 ! -!WR_OH/WC_SULF=0.0 +!PAN8/BIOL=0.0 ! -!WR_OH/WC_HCHO=0.0 +!PAN8/BIOH=0.0 ! -!WR_OH/WC_ORA1=0.0 +!PAN8/MTBE=0.0 ! -!WR_OH/WC_ORA2=0.0 +!PAN8/MVK=0.0 ! -!WR_OH/WC_MO2=0.0 +!PAN8/MCR=0.0 ! -!WR_OH/WC_OP1=0.0 +!PAN8/MGLY=0.0 ! -!WR_OH/WC_ASO3=0.0 +!PAN8/GLY=0.0 ! -!WR_OH/WC_ASO4=0.0 +!PAN8/ORA1=0.0 ! -!WR_OH/WC_ASO5=0.0 +!PAN8/ORA2=0.0 ! -!WR_OH/WC_AHSO5=0.0 +!PAN8/ACID=0.0 ! -!WR_OH/WC_AHMS=0.0 +!PAN8/UR28=0.0 ! -!WR_OH/WR_O3=+KR6*<WR_HO2> - PJAC(:,77,67)=+TPK%KR6(:)*PCONC(:,78) +!PAN8/UR21=0.0 ! -!WR_OH/WR_H2O2=+KR1+KR1-KR4*<WR_OH> - PJAC(:,77,68)=+TPK%KR1(:)+TPK%KR1(:)-TPK%KR4(:)*PCONC(:,77) +!PAN8/URG2=0.0 ! -!WR_OH/WR_NO=0.0 +!PAN8/UR26=0.0 ! -!WR_OH/WR_NO2=0.0 +!PAN8/RPG2=0.0 ! -!WR_OH/WR_NO3=0.0 +!PAN8/RP18=0.0 ! -!WR_OH/WR_N2O5=0.0 +!PAN8/RPG3=0.0 ! -!WR_OH/WR_HONO=-KR8*<WR_OH> - PJAC(:,77,73)=-TPK%KR8(:)*PCONC(:,77) +!PAN8/URG4=0.0 ! -!WR_OH/WR_HNO3=+KR13 - PJAC(:,77,74)=+TPK%KR13(:) +!PAN8/UR8=0.0 ! -!WR_OH/WR_HNO4=0.0 +!PAN8/UR17=0.0 ! -!WR_OH/WR_NH3=0.0 +!PAN8/UR7=0.0 ! -!WR_OH/WR_OH=-KTR31-KR2*<WR_OH>-KR2*<WR_OH>-KR2*<WR_OH>-KR2*<WR_OH>-KR3*<WR_HO2 -!>-KR4*<WR_H2O2>-KR7*<WR_SO2>-KR8*<WR_HONO>-KR19*<WR_HCHO>-KR20*<WR_ORA1>-KR23* -!<WR_AHMS> - PJAC(:,77,77)=-TPK%KTR31(:)-TPK%KR2(:)*PCONC(:,77)-TPK%KR2(:)*PCONC(:,77)-TPK%& -&KR2(:)*PCONC(:,77)-TPK%KR2(:)*PCONC(:,77)-TPK%KR3(:)*PCONC(:,78)-TPK%KR4(:)*PC& -&ONC(:,68)-TPK%KR7(:)*PCONC(:,80)-TPK%KR8(:)*PCONC(:,73)-TPK%KR19(:)*PCONC(:,82& -&)-TPK%KR20(:)*PCONC(:,83)-TPK%KR23(:)*PCONC(:,91) +!PAN8/RPR3=0.0 ! -!WR_OH/WR_HO2=-KR3*<WR_OH>+KR6*<WR_O3> - PJAC(:,77,78)=-TPK%KR3(:)*PCONC(:,77)+TPK%KR6(:)*PCONC(:,67) +!PAN8/URG6=0.0 ! -!WR_OH/WR_CO2=0.0 +!PAN8/UR22=0.0 ! -!WR_OH/WR_SO2=-KR7*<WR_OH> - PJAC(:,77,80)=-TPK%KR7(:)*PCONC(:,77) +!PAN8/URG7=0.0 ! -!WR_OH/WR_SULF=0.0 +!PAN8/RPR4=0.0 ! -!WR_OH/WR_HCHO=-KR19*<WR_OH> - PJAC(:,77,82)=-TPK%KR19(:)*PCONC(:,77) +!PAN8/RPR7=0.0 ! -!WR_OH/WR_ORA1=-KR20*<WR_OH> - PJAC(:,77,83)=-TPK%KR20(:)*PCONC(:,77) +!PAN8/RPG7=0.0 ! -!WR_OH/WR_ORA2=0.0 +!PAN8/URG8=0.0 ! -!WR_OH/WR_MO2=0.0 +!PAN8/UR19=0.0 ! -!WR_OH/WR_OP1=0.0 +!PAN8/URG9=0.0 ! -!WR_OH/WR_ASO3=0.0 +!PAN8/AP7=0.0 ! -!WR_OH/WR_ASO4=+KR28 - PJAC(:,77,88)=+TPK%KR28(:) +!PAN8/URG10=0.0 ! -!WR_OH/WR_ASO5=0.0 +!PAN8/RPR1=0.0 ! -!WR_OH/WR_AHSO5=0.0 +!PAN8/RPR5=0.0 ! -!WR_OH/WR_AHMS=-KR23*<WR_OH> - PJAC(:,77,91)=-TPK%KR23(:)*PCONC(:,77) +!PAN8/RPR8=0.0 ! -!WR_HO2/O3=0.0 +!PAN8/RP10=0.0 ! -!WR_HO2/H2O2=0.0 +!PAN8/RP11=0.0 ! -!WR_HO2/NO=0.0 +!PAN8/RP16=0.0 ! -!WR_HO2/NO2=0.0 +!PAN8/RPRL=0.0 ! -!WR_HO2/NO3=0.0 +!PAN8/APAN=0.0 ! -!WR_HO2/N2O5=0.0 +!PAN8/PAN1=0.0 ! -!WR_HO2/HONO=0.0 +!PAN8/PAN2=0.0 ! -!WR_HO2/HNO3=0.0 +!PAN8/PAN3=0.0 ! -!WR_HO2/HNO4=0.0 +!PAN8/PAN4=0.0 ! -!WR_HO2/NH3=0.0 +!PAN8/PAN6=0.0 ! -!WR_HO2/SO2=0.0 +!PAN8/PAN7=0.0 ! -!WR_HO2/SULF=0.0 +!PAN8/PAN8=-K317 + PJAC(:,83,83)=-TPK%K317(:) ! -!WR_HO2/CO=0.0 +!PAN8/PN10=0.0 ! -!WR_HO2/OH=0.0 +!PAN8/RO2T=0.0 ! -!WR_HO2/HO2=+KTR12 - PJAC(:,78,15)=+TPK%KTR12(:) +!PAN8/RO21=0.0 ! -!WR_HO2/CH4=0.0 +!PAN8/RO25=0.0 ! -!WR_HO2/ETH=0.0 +!PN10/NO=0.0 ! -!WR_HO2/ALKA=0.0 +!PN10/NO2=+K134*<RO258> + PJAC(:,84,2)=+TPK%K134(:)*TPK%RO258(:) ! -!WR_HO2/ALKE=0.0 +!PN10/O3=0.0 ! -!WR_HO2/BIO=0.0 +!PN10/HONO=0.0 ! -!WR_HO2/ARO=0.0 +!PN10/HNO3=0.0 ! -!WR_HO2/HCHO=0.0 +!PN10/HNO4=0.0 ! -!WR_HO2/ALD=0.0 +!PN10/N2O5=0.0 ! -!WR_HO2/KET=0.0 +!PN10/NO3=0.0 ! -!WR_HO2/CARBO=0.0 +!PN10/NH3=0.0 ! -!WR_HO2/ONIT=0.0 +!PN10/HO2=0.0 ! -!WR_HO2/PAN=0.0 +!PN10/CO=0.0 ! -!WR_HO2/OP1=0.0 +!PN10/H2O2=0.0 ! -!WR_HO2/OP2=0.0 +!PN10/SO2=0.0 ! -!WR_HO2/ORA1=0.0 +!PN10/H2SO4=0.0 ! -!WR_HO2/ORA2=0.0 +!PN10/OH=0.0 ! -!WR_HO2/MO2=0.0 +!PN10/ETHE=0.0 ! -!WR_HO2/ALKAP=0.0 +!PN10/OLEL=0.0 ! -!WR_HO2/ALKEP=0.0 +!PN10/OLEH=0.0 ! -!WR_HO2/BIOP=0.0 +!PN10/ALKL=0.0 ! -!WR_HO2/PHO=0.0 +!PN10/ALKM=0.0 ! -!WR_HO2/ADD=0.0 +!PN10/ALKH=0.0 ! -!WR_HO2/AROP=0.0 +!PN10/AROH=0.0 ! -!WR_HO2/CARBOP=0.0 +!PN10/AROL=0.0 ! -!WR_HO2/OLN=0.0 +!PN10/AROO=0.0 ! -!WR_HO2/XO2=0.0 +!PN10/ARAL=0.0 ! -!WR_HO2/WC_O3=0.0 +!PN10/ARAC=0.0 ! -!WR_HO2/WC_H2O2=0.0 +!PN10/PAH=0.0 ! -!WR_HO2/WC_NO=0.0 +!PN10/HCHO=0.0 ! -!WR_HO2/WC_NO2=0.0 +!PN10/ALD2=0.0 ! -!WR_HO2/WC_NO3=0.0 +!PN10/KETL=0.0 ! -!WR_HO2/WC_N2O5=0.0 +!PN10/KETH=0.0 ! -!WR_HO2/WC_HONO=0.0 +!PN10/MEOH=0.0 ! -!WR_HO2/WC_HNO3=0.0 +!PN10/ETOH=0.0 ! -!WR_HO2/WC_HNO4=0.0 +!PN10/ALCH=0.0 ! -!WR_HO2/WC_NH3=0.0 +!PN10/ISOP=0.0 ! -!WR_HO2/WC_OH=0.0 +!PN10/BIOL=0.0 ! -!WR_HO2/WC_HO2=0.0 +!PN10/BIOH=0.0 ! -!WR_HO2/WC_CO2=0.0 +!PN10/MTBE=0.0 ! -!WR_HO2/WC_SO2=0.0 +!PN10/MVK=0.0 ! -!WR_HO2/WC_SULF=0.0 +!PN10/MCR=0.0 ! -!WR_HO2/WC_HCHO=0.0 +!PN10/MGLY=0.0 ! -!WR_HO2/WC_ORA1=0.0 +!PN10/GLY=0.0 ! -!WR_HO2/WC_ORA2=0.0 +!PN10/ORA1=0.0 ! -!WR_HO2/WC_MO2=0.0 +!PN10/ORA2=0.0 ! -!WR_HO2/WC_OP1=0.0 +!PN10/ACID=0.0 ! -!WR_HO2/WC_ASO3=0.0 +!PN10/UR28=0.0 ! -!WR_HO2/WC_ASO4=0.0 +!PN10/UR21=0.0 ! -!WR_HO2/WC_ASO5=0.0 +!PN10/URG2=0.0 ! -!WR_HO2/WC_AHSO5=0.0 +!PN10/UR26=0.0 ! -!WR_HO2/WC_AHMS=0.0 +!PN10/RPG2=0.0 ! -!WR_HO2/WR_O3=-KR6*<WR_HO2> - PJAC(:,78,67)=-TPK%KR6(:)*PCONC(:,78) +!PN10/RP18=0.0 ! -!WR_HO2/WR_H2O2=+KR4*<WR_OH> - PJAC(:,78,68)=+TPK%KR4(:)*PCONC(:,77) +!PN10/RPG3=0.0 ! -!WR_HO2/WR_NO=0.0 +!PN10/URG4=0.0 ! -!WR_HO2/WR_NO2=-KR9*<WR_HO2> - PJAC(:,78,70)=-TPK%KR9(:)*PCONC(:,78) +!PN10/UR8=0.0 ! -!WR_HO2/WR_NO3=0.0 +!PN10/UR17=0.0 ! -!WR_HO2/WR_N2O5=0.0 +!PN10/UR7=0.0 ! -!WR_HO2/WR_HONO=0.0 +!PN10/RPR3=0.0 ! -!WR_HO2/WR_HNO3=0.0 +!PN10/URG6=0.0 ! -!WR_HO2/WR_HNO4=+KR10 - PJAC(:,78,75)=+TPK%KR10(:) +!PN10/UR22=0.0 ! -!WR_HO2/WR_NH3=0.0 +!PN10/URG7=0.0 ! -!WR_HO2/WR_OH=-KR3*<WR_HO2>+KR4*<WR_H2O2>+KR19*<WR_HCHO>+KR20*<WR_ORA1>+KR23*<W -!R_AHMS> - PJAC(:,78,77)=-TPK%KR3(:)*PCONC(:,78)+TPK%KR4(:)*PCONC(:,68)+TPK%KR19(:)*PCONC& -&(:,82)+TPK%KR20(:)*PCONC(:,83)+TPK%KR23(:)*PCONC(:,91) +!PN10/RPR4=0.0 ! -!WR_HO2/WR_HO2=-KTR32-KR3*<WR_OH>-KR5*<WR_HO2>-KR5*<WR_HO2>-KR5*<WR_HO2>-KR5*<W -!R_HO2>-KR6*<WR_O3>-KR9*<WR_NO2>-KR25*<WR_ASO5> - PJAC(:,78,78)=-TPK%KTR32(:)-TPK%KR3(:)*PCONC(:,77)-TPK%KR5(:)*PCONC(:,78)-TPK%& -&KR5(:)*PCONC(:,78)-TPK%KR5(:)*PCONC(:,78)-TPK%KR5(:)*PCONC(:,78)-TPK%KR6(:)*PC& -&ONC(:,67)-TPK%KR9(:)*PCONC(:,70)-TPK%KR25(:)*PCONC(:,89) +!PN10/RPR7=0.0 ! -!WR_HO2/WR_CO2=0.0 +!PN10/RPG7=0.0 ! -!WR_HO2/WR_SO2=0.0 +!PN10/URG8=0.0 ! -!WR_HO2/WR_SULF=0.0 +!PN10/UR19=0.0 ! -!WR_HO2/WR_HCHO=+KR19*<WR_OH> - PJAC(:,78,82)=+TPK%KR19(:)*PCONC(:,77) +!PN10/URG9=0.0 ! -!WR_HO2/WR_ORA1=+KR20*<WR_OH> - PJAC(:,78,83)=+TPK%KR20(:)*PCONC(:,77) +!PN10/AP7=0.0 ! -!WR_HO2/WR_ORA2=0.0 +!PN10/URG10=0.0 ! -!WR_HO2/WR_MO2=+2.00*KR17*<WR_MO2>+2.00*KR17*<WR_MO2> - PJAC(:,78,85)=+2.00*TPK%KR17(:)*PCONC(:,85)+2.00*TPK%KR17(:)*PCONC(:,85) +!PN10/RPR1=0.0 ! -!WR_HO2/WR_OP1=0.0 +!PN10/RPR5=0.0 ! -!WR_HO2/WR_ASO3=0.0 +!PN10/RPR8=0.0 ! -!WR_HO2/WR_ASO4=0.0 +!PN10/RP10=0.0 ! -!WR_HO2/WR_ASO5=-KR25*<WR_HO2> - PJAC(:,78,89)=-TPK%KR25(:)*PCONC(:,78) +!PN10/RP11=0.0 ! -!WR_HO2/WR_AHSO5=0.0 +!PN10/RP16=0.0 ! -!WR_HO2/WR_AHMS=+KR23*<WR_OH> - PJAC(:,78,91)=+TPK%KR23(:)*PCONC(:,77) +!PN10/RPRL=0.0 ! -!WR_CO2/O3=0.0 +!PN10/APAN=0.0 ! -!WR_CO2/H2O2=0.0 +!PN10/PAN1=0.0 ! -!WR_CO2/NO=0.0 +!PN10/PAN2=0.0 ! -!WR_CO2/NO2=0.0 +!PN10/PAN3=0.0 ! -!WR_CO2/NO3=0.0 +!PN10/PAN4=0.0 ! -!WR_CO2/N2O5=0.0 +!PN10/PAN6=0.0 ! -!WR_CO2/HONO=0.0 +!PN10/PAN7=0.0 ! -!WR_CO2/HNO3=0.0 +!PN10/PAN8=0.0 ! -!WR_CO2/HNO4=0.0 +!PN10/PN10=-K138 + PJAC(:,84,84)=-TPK%K138(:) ! -!WR_CO2/NH3=0.0 +!PN10/RO2T=0.0 ! -!WR_CO2/SO2=0.0 +!PN10/RO21=0.0 ! -!WR_CO2/SULF=0.0 +!PN10/RO25=0.0 ! -!WR_CO2/CO=0.0 +!RO2T/NO=-K095*<RO2T>+K125*<RO26>+K144*<RO27>+K147*<RO28>+K162*<RO213>+K165*<RO +!239>+TPK%CF8*K168*<RO214>+K174*<RO216>+TPK%CF18*K186*<RO220>+K204*<RO226>+TPK% +!CF30*K213*<RO229>+K216*<RO240>+TPK%CF34*K224*<RO232>+K277*<RO248>+K288*<RO250> +!+K297*<RO253>+K309*<RO255>+K331*<RO257>+K344*<RO230> + PJAC(:,85,1)=-TPK%K095(:)*PCONC(:,85)+TPK%K125(:)*TPK%RO26(:)+TPK%K144(:)*TPK%& +&RO27(:)+TPK%K147(:)*TPK%RO28(:)+TPK%K162(:)*TPK%RO213(:)+TPK%K165(:)*TPK%RO239& +&(:)+TPK%CF8*TPK%K168(:)*TPK%RO214(:)+TPK%K174(:)*TPK%RO216(:)+TPK%CF18*TPK%K18& +&6(:)*TPK%RO220(:)+TPK%K204(:)*TPK%RO226(:)+TPK%CF30*TPK%K213(:)*TPK%RO229(:)+T& +&PK%K216(:)*TPK%RO240(:)+TPK%CF34*TPK%K224(:)*TPK%RO232(:)+TPK%K277(:)*TPK%RO24& +&8(:)+TPK%K288(:)*TPK%RO250(:)+TPK%K297(:)*TPK%RO253(:)+TPK%K309(:)*TPK%RO255(:& +&)+TPK%K331(:)*TPK%RO257(:)+TPK%K344(:)*TPK%RO230(:) ! -!WR_CO2/OH=0.0 +!RO2T/NO2=0.0 ! -!WR_CO2/HO2=0.0 +!RO2T/O3=+0.28*K056*<OLEL>+0.366*K066*<ISOP>+0.28*K076*<OLEH>+0.445*K086*<BIOL> +!+0.89*K090*<BIOH>+0.28*K281*<MVK>+0.41*K282*<MCR> + PJAC(:,85,3)=+0.28*TPK%K056(:)*PCONC(:,17)+0.366*TPK%K066(:)*PCONC(:,35)+0.28*& +&TPK%K076(:)*PCONC(:,18)+0.445*TPK%K086(:)*PCONC(:,36)+0.89*TPK%K090(:)*PCONC(:& +&,37)+0.28*TPK%K281(:)*PCONC(:,39)+0.41*TPK%K282(:)*PCONC(:,40) ! -!WR_CO2/CH4=0.0 +!RO2T/HONO=0.0 ! -!WR_CO2/ETH=0.0 +!RO2T/HNO3=0.0 ! -!WR_CO2/ALKA=0.0 +!RO2T/HNO4=0.0 ! -!WR_CO2/ALKE=0.0 +!RO2T/N2O5=0.0 ! -!WR_CO2/BIO=0.0 +!RO2T/NO3=+K050*<ETHE>+K055*<OLEL>+K061*<ALD2>+K065*<ISOP>+K075*<OLEH>+K085*<BI +!OL>+K089*<BIOH>+K275*<MCR>+K278*<MGLY>+K307*<RPR1>+K313*<RPR3>+K327*<RPR8>+K33 +!8*<RP16> + PJAC(:,85,8)=+TPK%K050(:)*PCONC(:,16)+TPK%K055(:)*PCONC(:,17)+TPK%K061(:)*PCON& +&C(:,29)+TPK%K065(:)*PCONC(:,35)+TPK%K075(:)*PCONC(:,18)+TPK%K085(:)*PCONC(:,36& +&)+TPK%K089(:)*PCONC(:,37)+TPK%K275(:)*PCONC(:,40)+TPK%K278(:)*PCONC(:,41)+TPK%& +&K307(:)*PCONC(:,69)+TPK%K313(:)*PCONC(:,57)+TPK%K327(:)*PCONC(:,71)+TPK%K338(:& +&)*PCONC(:,74) ! -!WR_CO2/ARO=0.0 +!RO2T/NH3=0.0 ! -!WR_CO2/HCHO=0.0 +!RO2T/HO2=-K094*<RO2T>+K146*<RO27>+K164*<RO213>+K170*<RO214>+K176*<RO216>+K188* +!<RO220>+K206*<RO226>+K215*<RO229>+K218*<RO240>+K220*<RO230>+K226*<RO232>+K292* +!<RO251>+K295*<RO252>+2.*K298*<RO253> + PJAC(:,85,10)=-TPK%K094(:)*PCONC(:,85)+TPK%K146(:)*TPK%RO27(:)+TPK%K164(:)*TPK& +&%RO213(:)+TPK%K170(:)*TPK%RO214(:)+TPK%K176(:)*TPK%RO216(:)+TPK%K188(:)*TPK%RO& +&220(:)+TPK%K206(:)*TPK%RO226(:)+TPK%K215(:)*TPK%RO229(:)+TPK%K218(:)*TPK%RO240& +&(:)+TPK%K220(:)*TPK%RO230(:)+TPK%K226(:)*TPK%RO232(:)+TPK%K292(:)*TPK%RO251(:)& +&+TPK%K295(:)*TPK%RO252(:)+2.*TPK%K298(:)*TPK%RO253(:) ! -!WR_CO2/ALD=0.0 +!RO2T/CO=0.0 ! -!WR_CO2/KET=0.0 +!RO2T/H2O2=0.0 ! -!WR_CO2/CARBO=0.0 +!RO2T/SO2=0.0 ! -!WR_CO2/ONIT=0.0 +!RO2T/H2SO4=0.0 ! -!WR_CO2/PAN=0.0 +!RO2T/OH=+K043*<CH4>+K049*<ETHE>+TPK%CF2*K053*<ETOH>+K054*<OLEL>+K058*<ALKL>+K0 +!60*<ALD2>+K062*<KETL>+K064*<ISOP>+K068*<MTBE>+K069*<ALCH>+K070*<KETH>+0.1*K073 +!*<AROO>+K074*<OLEH>+K078*<ALKM>+0.06*K079*<AROL>+TPK%CF45*K082*<ARAL>+0.1*K083 +!*<ARAC>+K084*<BIOL>+K088*<BIOH>+0.1*K092*<PAH>+K093*<ALKH>+K272*<MVK>+K273*<MC +!R>+K274*<MGLY>+K304*<RPR1>+K305*<RP16>+K312*<RPR3>+K324*<RPR8> + PJAC(:,85,15)=+TPK%K043(:)*TPK%CH4(:)+TPK%K049(:)*PCONC(:,16)+TPK%CF2*TPK%K053& +&(:)*PCONC(:,33)+TPK%K054(:)*PCONC(:,17)+TPK%K058(:)*PCONC(:,19)+TPK%K060(:)*PC& +&ONC(:,29)+TPK%K062(:)*PCONC(:,30)+TPK%K064(:)*PCONC(:,35)+TPK%K068(:)*PCONC(:,& +&38)+TPK%K069(:)*PCONC(:,34)+TPK%K070(:)*PCONC(:,31)+0.1*TPK%K073(:)*PCONC(:,24& +&)+TPK%K074(:)*PCONC(:,18)+TPK%K078(:)*PCONC(:,20)+0.06*TPK%K079(:)*PCONC(:,23)& +&+TPK%CF45*TPK%K082(:)*PCONC(:,25)+0.1*TPK%K083(:)*PCONC(:,26)+TPK%K084(:)*PCON& +&C(:,36)+TPK%K088(:)*PCONC(:,37)+0.1*TPK%K092(:)*PCONC(:,27)+TPK%K093(:)*PCONC(& +&:,21)+TPK%K272(:)*PCONC(:,39)+TPK%K273(:)*PCONC(:,40)+TPK%K274(:)*PCONC(:,41)+& +&TPK%K304(:)*PCONC(:,69)+TPK%K305(:)*PCONC(:,74)+TPK%K312(:)*PCONC(:,57)+TPK%K3& +&24(:)*PCONC(:,71) ! -!WR_CO2/OP1=0.0 +!RO2T/ETHE=+K049*<OH>+K050*<NO3>+K052*<O> + PJAC(:,85,16)=+TPK%K049(:)*PCONC(:,15)+TPK%K050(:)*PCONC(:,8)+TPK%K052(:)*TPK%& +&O(:) ! -!WR_CO2/OP2=0.0 +!RO2T/OLEL=+K054*<OH>+K055*<NO3>+0.28*K056*<O3>+0.2*K057*<O> + PJAC(:,85,17)=+TPK%K054(:)*PCONC(:,15)+TPK%K055(:)*PCONC(:,8)+0.28*TPK%K056(:)& +&*PCONC(:,3)+0.2*TPK%K057(:)*TPK%O(:) ! -!WR_CO2/ORA1=0.0 +!RO2T/OLEH=+K074*<OH>+K075*<NO3>+0.28*K076*<O3>+0.2*K077*<O> + PJAC(:,85,18)=+TPK%K074(:)*PCONC(:,15)+TPK%K075(:)*PCONC(:,8)+0.28*TPK%K076(:)& +&*PCONC(:,3)+0.2*TPK%K077(:)*TPK%O(:) ! -!WR_CO2/ORA2=0.0 +!RO2T/ALKL=+K058*<OH> + PJAC(:,85,19)=+TPK%K058(:)*PCONC(:,15) ! -!WR_CO2/MO2=0.0 +!RO2T/ALKM=+K078*<OH> + PJAC(:,85,20)=+TPK%K078(:)*PCONC(:,15) ! -!WR_CO2/ALKAP=0.0 +!RO2T/ALKH=+K093*<OH> + PJAC(:,85,21)=+TPK%K093(:)*PCONC(:,15) ! -!WR_CO2/ALKEP=0.0 +!RO2T/AROH=0.0 ! -!WR_CO2/BIOP=0.0 +!RO2T/AROL=+0.06*K079*<OH> + PJAC(:,85,23)=+0.06*TPK%K079(:)*PCONC(:,15) ! -!WR_CO2/PHO=0.0 +!RO2T/AROO=+0.1*K073*<OH> + PJAC(:,85,24)=+0.1*TPK%K073(:)*PCONC(:,15) ! -!WR_CO2/ADD=0.0 +!RO2T/ARAL=+TPK%CF45*K082*<OH> + PJAC(:,85,25)=+TPK%CF45*TPK%K082(:)*PCONC(:,15) ! -!WR_CO2/AROP=0.0 +!RO2T/ARAC=+0.1*K083*<OH> + PJAC(:,85,26)=+0.1*TPK%K083(:)*PCONC(:,15) ! -!WR_CO2/CARBOP=0.0 +!RO2T/PAH=+0.1*K092*<OH> + PJAC(:,85,27)=+0.1*TPK%K092(:)*PCONC(:,15) ! -!WR_CO2/OLN=0.0 +!RO2T/HCHO=0.0 ! -!WR_CO2/XO2=0.0 +!RO2T/ALD2=+K059+K060*<OH>+K061*<NO3> + PJAC(:,85,29)=+TPK%K059(:)+TPK%K060(:)*PCONC(:,15)+TPK%K061(:)*PCONC(:,8) ! -!WR_CO2/WC_O3=0.0 +!RO2T/KETL=+K062*<OH>+2.*K063 + PJAC(:,85,30)=+TPK%K062(:)*PCONC(:,15)+2.*TPK%K063(:) ! -!WR_CO2/WC_H2O2=0.0 +!RO2T/KETH=+K070*<OH>+2.*K071 + PJAC(:,85,31)=+TPK%K070(:)*PCONC(:,15)+2.*TPK%K071(:) ! -!WR_CO2/WC_NO=0.0 +!RO2T/MEOH=0.0 ! -!WR_CO2/WC_NO2=0.0 +!RO2T/ETOH=+TPK%CF2*K053*<OH> + PJAC(:,85,33)=+TPK%CF2*TPK%K053(:)*PCONC(:,15) ! -!WR_CO2/WC_NO3=0.0 +!RO2T/ALCH=+K069*<OH> + PJAC(:,85,34)=+TPK%K069(:)*PCONC(:,15) ! -!WR_CO2/WC_N2O5=0.0 +!RO2T/ISOP=+K064*<OH>+K065*<NO3>+0.366*K066*<O3> + PJAC(:,85,35)=+TPK%K064(:)*PCONC(:,15)+TPK%K065(:)*PCONC(:,8)+0.366*TPK%K066(:& +&)*PCONC(:,3) ! -!WR_CO2/WC_HONO=0.0 +!RO2T/BIOL=+K084*<OH>+K085*<NO3>+0.445*K086*<O3> + PJAC(:,85,36)=+TPK%K084(:)*PCONC(:,15)+TPK%K085(:)*PCONC(:,8)+0.445*TPK%K086(:& +&)*PCONC(:,3) ! -!WR_CO2/WC_HNO3=0.0 +!RO2T/BIOH=+K088*<OH>+K089*<NO3>+0.89*K090*<O3> + PJAC(:,85,37)=+TPK%K088(:)*PCONC(:,15)+TPK%K089(:)*PCONC(:,8)+0.89*TPK%K090(:)& +&*PCONC(:,3) ! -!WR_CO2/WC_HNO4=0.0 +!RO2T/MTBE=+K068*<OH> + PJAC(:,85,38)=+TPK%K068(:)*PCONC(:,15) ! -!WR_CO2/WC_NH3=0.0 +!RO2T/MVK=+K272*<OH>+0.28*K281*<O3>+0.3*K283*<O> + PJAC(:,85,39)=+TPK%K272(:)*PCONC(:,15)+0.28*TPK%K281(:)*PCONC(:,3)+0.3*TPK%K28& +&3(:)*TPK%O(:) ! -!WR_CO2/WC_OH=0.0 +!RO2T/MCR=+K273*<OH>+K275*<NO3>+0.41*K282*<O3>+0.15*K284*<O> + PJAC(:,85,40)=+TPK%K273(:)*PCONC(:,15)+TPK%K275(:)*PCONC(:,8)+0.41*TPK%K282(:)& +&*PCONC(:,3)+0.15*TPK%K284(:)*TPK%O(:) ! -!WR_CO2/WC_HO2=0.0 +!RO2T/MGLY=+K274*<OH>+K276+K278*<NO3> + PJAC(:,85,41)=+TPK%K274(:)*PCONC(:,15)+TPK%K276(:)+TPK%K278(:)*PCONC(:,8) ! -!WR_CO2/WC_CO2=0.0 +!RO2T/GLY=0.0 ! -!WR_CO2/WC_SO2=0.0 +!RO2T/ORA1=0.0 ! -!WR_CO2/WC_SULF=0.0 +!RO2T/ORA2=0.0 ! -!WR_CO2/WC_HCHO=0.0 +!RO2T/ACID=0.0 ! -!WR_CO2/WC_ORA1=0.0 +!RO2T/UR28=0.0 ! -!WR_CO2/WC_ORA2=0.0 +!RO2T/UR21=0.0 ! -!WR_CO2/WC_MO2=0.0 +!RO2T/URG2=0.0 ! -!WR_CO2/WC_OP1=0.0 +!RO2T/UR26=0.0 ! -!WR_CO2/WC_ASO3=0.0 +!RO2T/RPG2=0.0 ! -!WR_CO2/WC_ASO4=0.0 +!RO2T/RP18=0.0 ! -!WR_CO2/WC_ASO5=0.0 +!RO2T/RPG3=0.0 ! -!WR_CO2/WC_AHSO5=0.0 +!RO2T/URG4=0.0 ! -!WR_CO2/WC_AHMS=0.0 +!RO2T/UR8=0.0 ! -!WR_CO2/WR_O3=0.0 +!RO2T/UR17=0.0 ! -!WR_CO2/WR_H2O2=0.0 +!RO2T/UR7=0.0 ! -!WR_CO2/WR_NO=0.0 +!RO2T/RPR3=+K312*<OH>+K313*<NO3> + PJAC(:,85,57)=+TPK%K312(:)*PCONC(:,15)+TPK%K313(:)*PCONC(:,8) ! -!WR_CO2/WR_NO2=0.0 +!RO2T/URG6=0.0 ! -!WR_CO2/WR_NO3=0.0 +!RO2T/UR22=0.0 ! -!WR_CO2/WR_N2O5=0.0 +!RO2T/URG7=0.0 ! -!WR_CO2/WR_HONO=0.0 +!RO2T/RPR4=0.0 ! -!WR_CO2/WR_HNO3=0.0 +!RO2T/RPR7=0.0 ! -!WR_CO2/WR_HNO4=0.0 +!RO2T/RPG7=0.0 ! -!WR_CO2/WR_NH3=0.0 +!RO2T/URG8=0.0 ! -!WR_CO2/WR_OH=+KR20*<WR_ORA1> - PJAC(:,79,77)=+TPK%KR20(:)*PCONC(:,83) +!RO2T/UR19=0.0 ! -!WR_CO2/WR_HO2=0.0 +!RO2T/URG9=0.0 ! -!WR_CO2/WR_CO2=-KTR33 - PJAC(:,79,79)=-TPK%KTR33(:) +!RO2T/AP7=0.0 ! -!WR_CO2/WR_SO2=0.0 +!RO2T/URG10=0.0 ! -!WR_CO2/WR_SULF=0.0 +!RO2T/RPR1=+K304*<OH>+K307*<NO3>+K308 + PJAC(:,85,69)=+TPK%K304(:)*PCONC(:,15)+TPK%K307(:)*PCONC(:,8)+TPK%K308(:) ! -!WR_CO2/WR_HCHO=0.0 +!RO2T/RPR5=0.0 ! -!WR_CO2/WR_ORA1=+KR20*<WR_OH> - PJAC(:,79,83)=+TPK%KR20(:)*PCONC(:,77) +!RO2T/RPR8=+K324*<OH>+K327*<NO3>+K329+K330 + PJAC(:,85,71)=+TPK%K324(:)*PCONC(:,15)+TPK%K327(:)*PCONC(:,8)+TPK%K329(:)+TPK%& +&K330(:) ! -!WR_CO2/WR_ORA2=0.0 +!RO2T/RP10=0.0 ! -!WR_CO2/WR_MO2=0.0 +!RO2T/RP11=0.0 ! -!WR_CO2/WR_OP1=0.0 +!RO2T/RP16=+K305*<OH>+K338*<NO3> + PJAC(:,85,74)=+TPK%K305(:)*PCONC(:,15)+TPK%K338(:)*PCONC(:,8) ! -!WR_CO2/WR_ASO3=0.0 +!RO2T/RPRL=0.0 ! -!WR_CO2/WR_ASO4=0.0 +!RO2T/APAN=+1.0000000*K139 + PJAC(:,85,76)=+1.0000000*TPK%K139(:) ! -!WR_CO2/WR_ASO5=0.0 +!RO2T/PAN1=+K135 + PJAC(:,85,77)=+TPK%K135(:) ! -!WR_CO2/WR_AHSO5=0.0 +!RO2T/PAN2=+K136 + PJAC(:,85,78)=+TPK%K136(:) ! -!WR_CO2/WR_AHMS=0.0 +!RO2T/PAN3=+K137 + PJAC(:,85,79)=+TPK%K137(:) ! -!WR_SO2/O3=0.0 +!RO2T/PAN4=+K141 + PJAC(:,85,80)=+TPK%K141(:) ! -!WR_SO2/H2O2=0.0 +!RO2T/PAN6=+K140 + PJAC(:,85,81)=+TPK%K140(:) ! -!WR_SO2/NO=0.0 +!RO2T/PAN7=+K343 + PJAC(:,85,82)=+TPK%K343(:) ! -!WR_SO2/NO2=0.0 +!RO2T/PAN8=+K317 + PJAC(:,85,83)=+TPK%K317(:) ! -!WR_SO2/NO3=0.0 +!RO2T/PN10=+K138 + PJAC(:,85,84)=+TPK%K138(:) ! -!WR_SO2/N2O5=0.0 +!RO2T/RO2T=-K094*<HO2>-K095*<NO>+K096*<RO2T>+K096*<RO2T>-K096*<RO2T>-K096*<RO2T +!>-K096*<RO2T>-K096*<RO2T>+K111*<RO21>-K111*<RO21>+K114*<RO22>-K114*<RO22>+K117 +!*<RO23>-K117*<RO23>+K120*<RO24>-K120*<RO24>+K123*<RO25>-K123*<RO25>+2.*K143*<R +!O26>-K143*<RO26>+2.*K145*<RO27>-K145*<RO27>+2.*K149*<RO28>-K149*<RO28>+K151*<R +!O29>-K151*<RO29>+K154*<RO210>-K154*<RO210>+K157*<RO211>-K157*<RO211>+K160*<RO2 +!12>-K160*<RO212>+2.*K163*<RO213>-K163*<RO213>+2.*K167*<RO239>-K167*<RO239>+2.* +!K169*<RO214>-K169*<RO214>+K172*<RO215>-K172*<RO215>+2.*K175*<RO216>-K175*<RO21 +!6>+K178*<RO217>-K178*<RO217>+K181*<RO218>-K181*<RO218>+K184*<RO219>-K184*<RO21 +!9>+2.*K187*<RO220>-K187*<RO220>+K190*<RO221>-K190*<RO221>+K193*<RO222>-K193*<R +!O222>+K196*<RO223>-K196*<RO223>+K199*<RO224>-K199*<RO224>+K202*<RO225>-K202*<R +!O225>+2.*K205*<RO226>-K205*<RO226>+K208*<RO227>-K208*<RO227>+K211*<RO228>-K211 +!*<RO228>+2.*K214*<RO229>-K214*<RO229>+2.*K217*<RO240>-K217*<RO240>+2.*K219*<RO +!230>-K219*<RO230>+K222*<RO231>-K222*<RO231>+2.*K225*<RO232>-K225*<RO232>+K228* +!<RO241>-K228*<RO241>+K232*<RO233>-K232*<RO233>+K235*<RO242>-K235*<RO242>+K239* +!<RO234>-K239*<RO234>+K242*<RO243>-K242*<RO243>+K246*<RO235>-K246*<RO235>+K249* +!<RO244>-K249*<RO244>+K253*<RO236>-K253*<RO236>+K256*<RO245>-K256*<RO245>+K260* +!<RO237>-K260*<RO237>+K263*<RO246>-K263*<RO246>+K267*<RO238>-K267*<RO238>+K270* +!<RO247>-K270*<RO247>+2.*K280*<RO248>-K280*<RO248>+K286*<RO249>-K286*<RO249>+2. +!*K290*<RO250>-K290*<RO250>-K293*<RO251>-K296*<RO252>+K299*<RO253>-K299*<RO253> +!+K302*<RO254>-K302*<RO254>+2.*K311*<RO255>-K311*<RO255>+K319*<RO256>-K319*<RO2 +!56>+2.*K333*<RO257>-K333*<RO257>+K342*<RO258>-K342*<RO258> + PJAC(:,85,85)=-TPK%K094(:)*PCONC(:,10)-TPK%K095(:)*PCONC(:,1)+TPK%K096(:)*PCON& +&C(:,85)+TPK%K096(:)*PCONC(:,85)-TPK%K096(:)*PCONC(:,85)-TPK%K096(:)*PCONC(:,85& +&)-TPK%K096(:)*PCONC(:,85)-TPK%K096(:)*PCONC(:,85)+TPK%K111(:)*PCONC(:,86)-TPK%& +&K111(:)*PCONC(:,86)+TPK%K114(:)*TPK%RO22(:)-TPK%K114(:)*TPK%RO22(:)+TPK%K117(:& +&)*TPK%RO23(:)-TPK%K117(:)*TPK%RO23(:)+TPK%K120(:)*TPK%RO24(:)-TPK%K120(:)*TPK%& +&RO24(:)+TPK%K123(:)*PCONC(:,87)-TPK%K123(:)*PCONC(:,87)+2.*TPK%K143(:)*TPK%RO2& +&6(:)-TPK%K143(:)*TPK%RO26(:)+2.*TPK%K145(:)*TPK%RO27(:)-TPK%K145(:)*TPK%RO27(:& +&)+2.*TPK%K149(:)*TPK%RO28(:)-TPK%K149(:)*TPK%RO28(:)+TPK%K151(:)*TPK%RO29(:)-T& +&PK%K151(:)*TPK%RO29(:)+TPK%K154(:)*TPK%RO210(:)-TPK%K154(:)*TPK%RO210(:)+TPK%K& +&157(:)*TPK%RO211(:)-TPK%K157(:)*TPK%RO211(:)+TPK%K160(:)*TPK%RO212(:)-TPK%K160& +&(:)*TPK%RO212(:)+2.*TPK%K163(:)*TPK%RO213(:)-TPK%K163(:)*TPK%RO213(:)+2.*TPK%K& +&167(:)*TPK%RO239(:)-TPK%K167(:)*TPK%RO239(:)+2.*TPK%K169(:)*TPK%RO214(:)-TPK%K& +&169(:)*TPK%RO214(:)+TPK%K172(:)*TPK%RO215(:)-TPK%K172(:)*TPK%RO215(:)+2.*TPK%K& +&175(:)*TPK%RO216(:)-TPK%K175(:)*TPK%RO216(:)+TPK%K178(:)*TPK%RO217(:)-TPK%K178& +&(:)*TPK%RO217(:)+TPK%K181(:)*TPK%RO218(:)-TPK%K181(:)*TPK%RO218(:)+TPK%K184(:)& +&*TPK%RO219(:)-TPK%K184(:)*TPK%RO219(:)+2.*TPK%K187(:)*TPK%RO220(:)-TPK%K187(:)& +&*TPK%RO220(:)+TPK%K190(:)*TPK%RO221(:)-TPK%K190(:)*TPK%RO221(:)+TPK%K193(:)*TP& +&K%RO222(:)-TPK%K193(:)*TPK%RO222(:)+TPK%K196(:)*TPK%RO223(:)-TPK%K196(:)*TPK%R& +&O223(:)+TPK%K199(:)*TPK%RO224(:)-TPK%K199(:)*TPK%RO224(:)+TPK%K202(:)*TPK%RO22& +&5(:)-TPK%K202(:)*TPK%RO225(:)+2.*TPK%K205(:)*TPK%RO226(:)-TPK%K205(:)*TPK%RO22& +&6(:)+TPK%K208(:)*TPK%RO227(:)-TPK%K208(:)*TPK%RO227(:)+TPK%K211(:)*TPK%RO228(:& +&)-TPK%K211(:)*TPK%RO228(:)+2.*TPK%K214(:)*TPK%RO229(:)-TPK%K214(:)*TPK%RO229(:& +&)+2.*TPK%K217(:)*TPK%RO240(:)-TPK%K217(:)*TPK%RO240(:)+2.*TPK%K219(:)*TPK%RO23& +&0(:)-TPK%K219(:)*TPK%RO230(:)+TPK%K222(:)*TPK%RO231(:)-TPK%K222(:)*TPK%RO231(:& +&)+2.*TPK%K225(:)*TPK%RO232(:)-TPK%K225(:)*TPK%RO232(:)+TPK%K228(:)*TPK%RO241(:& +&)-TPK%K228(:)*TPK%RO241(:)+TPK%K232(:)*TPK%RO233(:)-TPK%K232(:)*TPK%RO233(:)+T& +&PK%K235(:)*TPK%RO242(:)-TPK%K235(:)*TPK%RO242(:)+TPK%K239(:)*TPK%RO234(:)-TPK%& +&K239(:)*TPK%RO234(:)+TPK%K242(:)*TPK%RO243(:)-TPK%K242(:)*TPK%RO243(:)+TPK%K24& +&6(:)*TPK%RO235(:)-TPK%K246(:)*TPK%RO235(:)+TPK%K249(:)*TPK%RO244(:)-TPK%K249(:& +&)*TPK%RO244(:)+TPK%K253(:)*TPK%RO236(:)-TPK%K253(:)*TPK%RO236(:)+TPK%K256(:)*T& +&PK%RO245(:)-TPK%K256(:)*TPK%RO245(:)+TPK%K260(:)*TPK%RO237(:)-TPK%K260(:)*TPK%& +&RO237(:)+TPK%K263(:)*TPK%RO246(:)-TPK%K263(:)*TPK%RO246(:)+TPK%K267(:)*TPK%RO2& +&38(:)-TPK%K267(:)*TPK%RO238(:)+TPK%K270(:)*TPK%RO247(:)-TPK%K270(:)*TPK%RO247(& +&:)+2.*TPK%K280(:)*TPK%RO248(:)-TPK%K280(:)*TPK%RO248(:)+TPK%K286(:)*TPK%RO249(& +&:)-TPK%K286(:)*TPK%RO249(:)+2.*TPK%K290(:)*TPK%RO250(:)-TPK%K290(:)*TPK%RO250(& +&:)-TPK%K293(:)*TPK%RO251(:)-TPK%K296(:)*TPK%RO252(:)+TPK%K299(:)*TPK%RO253(:)-& +&TPK%K299(:)*TPK%RO253(:)+TPK%K302(:)*TPK%RO254(:)-TPK%K302(:)*TPK%RO254(:)+2.*& +&TPK%K311(:)*TPK%RO255(:)-TPK%K311(:)*TPK%RO255(:)+TPK%K319(:)*TPK%RO256(:)-TPK& +&%K319(:)*TPK%RO256(:)+2.*TPK%K333(:)*TPK%RO257(:)-TPK%K333(:)*TPK%RO257(:)+TPK& +&%K342(:)*TPK%RO258(:)-TPK%K342(:)*TPK%RO258(:) +! +!RO2T/RO21=+K111*<RO2T>-K111*<RO2T> + PJAC(:,85,86)=+TPK%K111(:)*PCONC(:,85)-TPK%K111(:)*PCONC(:,85) +! +!RO2T/RO25=+K123*<RO2T>-K123*<RO2T> + PJAC(:,85,87)=+TPK%K123(:)*PCONC(:,85)-TPK%K123(:)*PCONC(:,85) ! -!WR_SO2/HONO=0.0 +RETURN +END SUBROUTINE SUBJ16 ! -!WR_SO2/HNO3=0.0 +SUBROUTINE SUBJ17 ! -!WR_SO2/HNO4=0.0 +!Indices 86 a 87 ! -!WR_SO2/NH3=0.0 ! -!WR_SO2/SO2=+KTR14 - PJAC(:,80,11)=+TPK%KTR14(:) +!RO21/NO=-K110*<RO21>+K147*<RO28> + PJAC(:,86,1)=-TPK%K110(:)*PCONC(:,86)+TPK%K147(:)*TPK%RO28(:) ! -!WR_SO2/SULF=0.0 +!RO21/NO2=0.0 ! -!WR_SO2/CO=0.0 +!RO21/O3=0.0 ! -!WR_SO2/OH=0.0 +!RO21/HONO=0.0 ! -!WR_SO2/HO2=0.0 +!RO21/HNO3=0.0 ! -!WR_SO2/CH4=0.0 +!RO21/HNO4=0.0 ! -!WR_SO2/ETH=0.0 +!RO21/N2O5=0.0 ! -!WR_SO2/ALKA=0.0 +!RO21/NO3=0.0 ! -!WR_SO2/ALKE=0.0 +!RO21/NH3=0.0 ! -!WR_SO2/BIO=0.0 +!RO21/HO2=-K112*<RO21> + PJAC(:,86,10)=-TPK%K112(:)*PCONC(:,86) ! -!WR_SO2/ARO=0.0 +!RO21/CO=0.0 ! -!WR_SO2/HCHO=0.0 +!RO21/H2O2=0.0 ! -!WR_SO2/ALD=0.0 +!RO21/SO2=0.0 ! -!WR_SO2/KET=0.0 +!RO21/H2SO4=0.0 ! -!WR_SO2/CARBO=0.0 +!RO21/OH=+K043*<CH4> + PJAC(:,86,15)=+TPK%K043(:)*TPK%CH4(:) ! -!WR_SO2/ONIT=0.0 +!RO21/ETHE=+0.6*K052*<O> + PJAC(:,86,16)=+0.6*TPK%K052(:)*TPK%O(:) ! -!WR_SO2/PAN=0.0 +!RO21/OLEL=0.0 ! -!WR_SO2/OP1=0.0 +!RO21/OLEH=0.0 ! -!WR_SO2/OP2=0.0 +!RO21/ALKL=0.0 ! -!WR_SO2/ORA1=0.0 +!RO21/ALKM=0.0 ! -!WR_SO2/ORA2=0.0 +!RO21/ALKH=0.0 ! -!WR_SO2/MO2=0.0 +!RO21/AROH=0.0 ! -!WR_SO2/ALKAP=0.0 +!RO21/AROL=0.0 ! -!WR_SO2/ALKEP=0.0 +!RO21/AROO=0.0 ! -!WR_SO2/BIOP=0.0 +!RO21/ARAL=0.0 ! -!WR_SO2/PHO=0.0 +!RO21/ARAC=0.0 ! -!WR_SO2/ADD=0.0 +!RO21/PAH=0.0 ! -!WR_SO2/AROP=0.0 +!RO21/HCHO=0.0 ! -!WR_SO2/CARBOP=0.0 +!RO21/ALD2=0.0 ! -!WR_SO2/OLN=0.0 +!RO21/KETL=0.0 ! -!WR_SO2/XO2=0.0 +!RO21/KETH=0.0 ! -!WR_SO2/WC_O3=0.0 +!RO21/MEOH=0.0 ! -!WR_SO2/WC_H2O2=0.0 +!RO21/ETOH=0.0 ! -!WR_SO2/WC_NO=0.0 +!RO21/ALCH=0.0 ! -!WR_SO2/WC_NO2=0.0 +!RO21/ISOP=0.0 ! -!WR_SO2/WC_NO3=0.0 +!RO21/BIOL=0.0 ! -!WR_SO2/WC_N2O5=0.0 +!RO21/BIOH=0.0 ! -!WR_SO2/WC_HONO=0.0 +!RO21/MTBE=0.0 ! -!WR_SO2/WC_HNO3=0.0 +!RO21/MVK=0.0 ! -!WR_SO2/WC_HNO4=0.0 +!RO21/MCR=0.0 ! -!WR_SO2/WC_NH3=0.0 +!RO21/MGLY=0.0 ! -!WR_SO2/WC_OH=0.0 +!RO21/GLY=0.0 ! -!WR_SO2/WC_HO2=0.0 +!RO21/ORA1=0.0 ! -!WR_SO2/WC_CO2=0.0 +!RO21/ORA2=0.0 ! -!WR_SO2/WC_SO2=0.0 +!RO21/ACID=0.0 ! -!WR_SO2/WC_SULF=0.0 +!RO21/UR28=0.0 ! -!WR_SO2/WC_HCHO=0.0 +!RO21/UR21=0.0 ! -!WR_SO2/WC_ORA1=0.0 +!RO21/URG2=0.0 ! -!WR_SO2/WC_ORA2=0.0 +!RO21/UR26=0.0 ! -!WR_SO2/WC_MO2=0.0 +!RO21/RPG2=0.0 ! -!WR_SO2/WC_OP1=0.0 +!RO21/RP18=0.0 ! -!WR_SO2/WC_ASO3=0.0 +!RO21/RPG3=0.0 ! -!WR_SO2/WC_ASO4=0.0 +!RO21/URG4=0.0 ! -!WR_SO2/WC_ASO5=0.0 +!RO21/UR8=0.0 ! -!WR_SO2/WC_AHSO5=0.0 +!RO21/UR17=0.0 ! -!WR_SO2/WC_AHMS=0.0 +!RO21/UR7=0.0 ! -!WR_SO2/WR_O3=-KR29*<WR_SO2> - PJAC(:,80,67)=-TPK%KR29(:)*PCONC(:,80) +!RO21/RPR3=0.0 ! -!WR_SO2/WR_H2O2=-KR30*<WR_SO2> - PJAC(:,80,68)=-TPK%KR30(:)*PCONC(:,80) +!RO21/URG6=0.0 ! -!WR_SO2/WR_NO=0.0 +!RO21/UR22=0.0 ! -!WR_SO2/WR_NO2=0.0 +!RO21/URG7=0.0 ! -!WR_SO2/WR_NO3=-KR16*<WR_SO2> - PJAC(:,80,71)=-TPK%KR16(:)*PCONC(:,80) +!RO21/RPR4=0.0 ! -!WR_SO2/WR_N2O5=0.0 +!RO21/RPR7=0.0 ! -!WR_SO2/WR_HONO=0.0 +!RO21/RPG7=0.0 ! -!WR_SO2/WR_HNO3=0.0 +!RO21/URG8=0.0 ! -!WR_SO2/WR_HNO4=-KR12*<WR_SO2> - PJAC(:,80,75)=-TPK%KR12(:)*PCONC(:,80) +!RO21/UR19=0.0 ! -!WR_SO2/WR_NH3=0.0 +!RO21/URG9=0.0 ! -!WR_SO2/WR_OH=-KR7*<WR_SO2>+KR23*<WR_AHMS> - PJAC(:,80,77)=-TPK%KR7(:)*PCONC(:,80)+TPK%KR23(:)*PCONC(:,91) +!RO21/AP7=0.0 ! -!WR_SO2/WR_HO2=0.0 +!RO21/URG10=0.0 ! -!WR_SO2/WR_CO2=0.0 +!RO21/RPR1=0.0 ! -!WR_SO2/WR_SO2=-KTR34-KR7*<WR_OH>-KR12*<WR_HNO4>-KR16*<WR_NO3>-KR18*<WR_MO2>-KR -!21*<WR_HCHO>-KR27*<WR_AHSO5>-KR29*<WR_O3>-KR30*<WR_H2O2> - PJAC(:,80,80)=-TPK%KTR34(:)-TPK%KR7(:)*PCONC(:,77)-TPK%KR12(:)*PCONC(:,75)-TPK& -&%KR16(:)*PCONC(:,71)-TPK%KR18(:)*PCONC(:,85)-TPK%KR21(:)*PCONC(:,82)-TPK%KR27(& -&:)*PCONC(:,90)-TPK%KR29(:)*PCONC(:,67)-TPK%KR30(:)*PCONC(:,68) +!RO21/RPR5=0.0 ! -!WR_SO2/WR_SULF=0.0 +!RO21/RPR8=0.0 ! -!WR_SO2/WR_HCHO=-KR21*<WR_SO2> - PJAC(:,80,82)=-TPK%KR21(:)*PCONC(:,80) +!RO21/RP10=0.0 ! -!WR_SO2/WR_ORA1=0.0 +!RO21/RP11=0.0 ! -!WR_SO2/WR_ORA2=0.0 +!RO21/RP16=0.0 ! -!WR_SO2/WR_MO2=-KR18*<WR_SO2> - PJAC(:,80,85)=-TPK%KR18(:)*PCONC(:,80) +!RO21/RPRL=0.0 ! -!WR_SO2/WR_OP1=0.0 +!RO21/APAN=0.0 ! -!WR_SO2/WR_ASO3=0.0 +!RO21/PAN1=0.0 ! -!WR_SO2/WR_ASO4=0.0 +!RO21/PAN2=0.0 ! -!WR_SO2/WR_ASO5=0.0 +!RO21/PAN3=0.0 ! -!WR_SO2/WR_AHSO5=-KR27*<WR_SO2> - PJAC(:,80,90)=-TPK%KR27(:)*PCONC(:,80) +!RO21/PAN4=0.0 ! -!WR_SO2/WR_AHMS=+KR22+KR23*<WR_OH> - PJAC(:,80,91)=+TPK%KR22(:)+TPK%KR23(:)*PCONC(:,77) +!RO21/PAN6=0.0 ! -RETURN -END SUBROUTINE SUBJ15 +!RO21/PAN7=0.0 ! -SUBROUTINE SUBJ16 +!RO21/PAN8=0.0 ! -!Indices 81 a 85 +!RO21/PN10=0.0 ! +!RO21/RO2T=-K111*<RO21>+K149*<RO28> + PJAC(:,86,85)=-TPK%K111(:)*PCONC(:,86)+TPK%K149(:)*TPK%RO28(:) ! -!WR_SULF/O3=0.0 +!RO21/RO21=-K110*<NO>-K111*<RO2T>-K112*<HO2> + PJAC(:,86,86)=-TPK%K110(:)*PCONC(:,1)-TPK%K111(:)*PCONC(:,85)-TPK%K112(:)*PCON& +&C(:,10) ! -!WR_SULF/H2O2=0.0 +!RO21/RO25=0.0 ! -!WR_SULF/NO=0.0 +!RO25/NO=-K122*<RO25>+K125*<RO26> + PJAC(:,87,1)=-TPK%K122(:)*PCONC(:,87)+TPK%K125(:)*TPK%RO26(:) ! -!WR_SULF/NO2=0.0 +!RO25/NO2=0.0 ! -!WR_SULF/NO3=0.0 +!RO25/O3=+0.28*K056*<OLEL> + PJAC(:,87,3)=+0.28*TPK%K056(:)*PCONC(:,17) ! -!WR_SULF/N2O5=0.0 +!RO25/HONO=0.0 ! -!WR_SULF/HONO=0.0 +!RO25/HNO3=0.0 ! -!WR_SULF/HNO3=0.0 +!RO25/HNO4=0.0 ! -!WR_SULF/HNO4=0.0 +!RO25/N2O5=0.0 ! -!WR_SULF/NH3=0.0 +!RO25/NO3=0.0 ! -!WR_SULF/SO2=0.0 +!RO25/NH3=0.0 ! -!WR_SULF/SULF=+KTR15 - PJAC(:,81,12)=+TPK%KTR15(:) +!RO25/HO2=-K124*<RO25> + PJAC(:,87,10)=-TPK%K124(:)*PCONC(:,87) ! -!WR_SULF/CO=0.0 +!RO25/CO=0.0 ! -!WR_SULF/OH=0.0 +!RO25/H2O2=0.0 ! -!WR_SULF/HO2=0.0 +!RO25/SO2=0.0 ! -!WR_SULF/CH4=0.0 +!RO25/H2SO4=0.0 ! -!WR_SULF/ETH=0.0 +!RO25/OH=+K058*<ALKL> + PJAC(:,87,15)=+TPK%K058(:)*PCONC(:,19) ! -!WR_SULF/ALKA=0.0 +!RO25/ETHE=0.0 ! -!WR_SULF/ALKE=0.0 +!RO25/OLEL=+0.28*K056*<O3>+0.1*K057*<O> + PJAC(:,87,17)=+0.28*TPK%K056(:)*PCONC(:,3)+0.1*TPK%K057(:)*TPK%O(:) ! -!WR_SULF/BIO=0.0 +!RO25/OLEH=0.0 ! -!WR_SULF/ARO=0.0 +!RO25/ALKL=+K058*<OH> + PJAC(:,87,19)=+TPK%K058(:)*PCONC(:,15) ! -!WR_SULF/HCHO=0.0 +!RO25/ALKM=0.0 ! -!WR_SULF/ALD=0.0 +!RO25/ALKH=0.0 ! -!WR_SULF/KET=0.0 +!RO25/AROH=0.0 ! -!WR_SULF/CARBO=0.0 +!RO25/AROL=0.0 ! -!WR_SULF/ONIT=0.0 +!RO25/AROO=0.0 ! -!WR_SULF/PAN=0.0 +!RO25/ARAL=0.0 ! -!WR_SULF/OP1=0.0 +!RO25/ARAC=0.0 ! -!WR_SULF/OP2=0.0 +!RO25/PAH=0.0 ! -!WR_SULF/ORA1=0.0 +!RO25/HCHO=0.0 ! -!WR_SULF/ORA2=0.0 +!RO25/ALD2=+K059 + PJAC(:,87,29)=+TPK%K059(:) ! -!WR_SULF/MO2=0.0 +!RO25/KETL=+K063 + PJAC(:,87,30)=+TPK%K063(:) ! -!WR_SULF/ALKAP=0.0 +!RO25/KETH=+K071 + PJAC(:,87,31)=+TPK%K071(:) ! -!WR_SULF/ALKEP=0.0 +!RO25/MEOH=0.0 ! -!WR_SULF/BIOP=0.0 +!RO25/ETOH=0.0 ! -!WR_SULF/PHO=0.0 +!RO25/ALCH=0.0 ! -!WR_SULF/ADD=0.0 +!RO25/ISOP=0.0 ! -!WR_SULF/AROP=0.0 +!RO25/BIOL=0.0 ! -!WR_SULF/CARBOP=0.0 +!RO25/BIOH=0.0 ! -!WR_SULF/OLN=0.0 +!RO25/MTBE=0.0 ! -!WR_SULF/XO2=0.0 +!RO25/MVK=0.0 ! -!WR_SULF/WC_O3=0.0 +!RO25/MCR=0.0 ! -!WR_SULF/WC_H2O2=0.0 +!RO25/MGLY=0.0 ! -!WR_SULF/WC_NO=0.0 +!RO25/GLY=0.0 ! -!WR_SULF/WC_NO2=0.0 +!RO25/ORA1=0.0 ! -!WR_SULF/WC_NO3=0.0 +!RO25/ORA2=0.0 ! -!WR_SULF/WC_N2O5=0.0 +!RO25/ACID=0.0 ! -!WR_SULF/WC_HONO=0.0 +!RO25/UR28=0.0 ! -!WR_SULF/WC_HNO3=0.0 +!RO25/UR21=0.0 ! -!WR_SULF/WC_HNO4=0.0 +!RO25/URG2=0.0 ! -!WR_SULF/WC_NH3=0.0 +!RO25/UR26=0.0 ! -!WR_SULF/WC_OH=0.0 +!RO25/RPG2=0.0 ! -!WR_SULF/WC_HO2=0.0 +!RO25/RP18=0.0 ! -!WR_SULF/WC_CO2=0.0 +!RO25/RPG3=0.0 ! -!WR_SULF/WC_SO2=0.0 +!RO25/URG4=0.0 ! -!WR_SULF/WC_SULF=0.0 +!RO25/UR8=0.0 ! -!WR_SULF/WC_HCHO=0.0 +!RO25/UR17=0.0 ! -!WR_SULF/WC_ORA1=0.0 +!RO25/UR7=0.0 ! -!WR_SULF/WC_ORA2=0.0 +!RO25/RPR3=0.0 ! -!WR_SULF/WC_MO2=0.0 +!RO25/URG6=0.0 ! -!WR_SULF/WC_OP1=0.0 +!RO25/UR22=0.0 ! -!WR_SULF/WC_ASO3=0.0 +!RO25/URG7=0.0 ! -!WR_SULF/WC_ASO4=0.0 +!RO25/RPR4=0.0 ! -!WR_SULF/WC_ASO5=0.0 +!RO25/RPR7=0.0 ! -!WR_SULF/WC_AHSO5=0.0 +!RO25/RPG7=0.0 ! -!WR_SULF/WC_AHMS=0.0 +!RO25/URG8=0.0 ! -!WR_SULF/WR_O3=+KR29*<WR_SO2> - PJAC(:,81,67)=+TPK%KR29(:)*PCONC(:,80) +!RO25/UR19=0.0 ! -!WR_SULF/WR_H2O2=+KR30*<WR_SO2> - PJAC(:,81,68)=+TPK%KR30(:)*PCONC(:,80) +!RO25/URG9=0.0 ! -!WR_SULF/WR_NO=0.0 +!RO25/AP7=0.0 ! -!WR_SULF/WR_NO2=0.0 +!RO25/URG10=0.0 ! -!WR_SULF/WR_NO3=-KR15*<WR_SULF> - PJAC(:,81,71)=-TPK%KR15(:)*PCONC(:,81) +!RO25/RPR1=0.0 ! -!WR_SULF/WR_N2O5=0.0 +!RO25/RPR5=0.0 ! -!WR_SULF/WR_HONO=0.0 +!RO25/RPR8=0.0 ! -!WR_SULF/WR_HNO3=0.0 +!RO25/RP10=0.0 ! -!WR_SULF/WR_HNO4=+KR12*<WR_SO2> - PJAC(:,81,75)=+TPK%KR12(:)*PCONC(:,80) +!RO25/RP11=0.0 ! -!WR_SULF/WR_NH3=0.0 +!RO25/RP16=0.0 ! -!WR_SULF/WR_OH=0.0 +!RO25/RPRL=0.0 ! -!WR_SULF/WR_HO2=0.0 +!RO25/APAN=0.0 ! -!WR_SULF/WR_CO2=0.0 +!RO25/PAN1=0.0 ! -!WR_SULF/WR_SO2=+KR12*<WR_HNO4>+2.00*KR27*<WR_AHSO5>+KR29*<WR_O3>+KR30*<WR_H2O2 -!> - PJAC(:,81,80)=+TPK%KR12(:)*PCONC(:,75)+2.00*TPK%KR27(:)*PCONC(:,90)+TPK%KR29(:& -&)*PCONC(:,67)+TPK%KR30(:)*PCONC(:,68) +!RO25/PAN2=0.0 ! -!WR_SULF/WR_SULF=-KTR35-KR15*<WR_NO3> - PJAC(:,81,81)=-TPK%KTR35(:)-TPK%KR15(:)*PCONC(:,71) +!RO25/PAN3=0.0 ! -!WR_SULF/WR_HCHO=0.0 +!RO25/PAN4=0.0 ! -!WR_SULF/WR_ORA1=0.0 +!RO25/PAN6=0.0 ! -!WR_SULF/WR_ORA2=0.0 +!RO25/PAN7=0.0 ! -!WR_SULF/WR_MO2=0.0 +!RO25/PAN8=0.0 ! -!WR_SULF/WR_OP1=0.0 +!RO25/PN10=0.0 ! -!WR_SULF/WR_ASO3=0.0 +!RO25/RO2T=-K123*<RO25>+K143*<RO26> + PJAC(:,87,85)=-TPK%K123(:)*PCONC(:,87)+TPK%K143(:)*TPK%RO26(:) ! -!WR_SULF/WR_ASO4=+KR28 - PJAC(:,81,88)=+TPK%KR28(:) +!RO25/RO21=0.0 ! -!WR_SULF/WR_ASO5=0.0 +!RO25/RO25=-K122*<NO>-K123*<RO2T>-K124*<HO2> + PJAC(:,87,87)=-TPK%K122(:)*PCONC(:,1)-TPK%K123(:)*PCONC(:,85)-TPK%K124(:)*PCON& +&C(:,10) ! -!WR_SULF/WR_AHSO5=+2.00*KR27*<WR_SO2> - PJAC(:,81,90)=+2.00*TPK%KR27(:)*PCONC(:,80) +RETURN +END SUBROUTINE SUBJ17 ! -!WR_SULF/WR_AHMS=0.0 +END SUBROUTINE CH_JAC_GAZ ! -!WR_HCHO/O3=0.0 ! -!WR_HCHO/H2O2=0.0 +!======================================================================== ! -!WR_HCHO/NO=0.0 +!! ################## + MODULE MODI_CH_JAC_AQ +!! ################## +INTERFACE +SUBROUTINE CH_JAC_AQ(PTIME,PCONC,PJAC,KMI,KVECNPT,KEQ) +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KEQ) :: PJAC +INTEGER, INTENT(IN) :: KMI +END SUBROUTINE CH_JAC_AQ +END INTERFACE +END MODULE MODI_CH_JAC_AQ ! -!WR_HCHO/NO2=0.0 +!======================================================================== ! -!WR_HCHO/NO3=0.0 +!! #################### + SUBROUTINE CH_JAC_AQ(PTIME,PCONC,PJAC,KMI,KVECNPT,KEQ) +!! #################### +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +!!*** *CH_JAC* +!! +!! PURPOSE +!! ------- +! calculation of the JACOBIAN matrix +!! +!!** METHOD +!! ------ +!! The Jacobian matrix J is calculated as defined by the chemical +!! reaction mechanism. +!! The reaction rates and other user-defined auxiliary variables are +!! transfered in the TYPE(CCSTYPE) variable TPK%. +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Karsten Suhre (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) +!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) +!! +!!---------------------------------------------------------------------- +!! +!! EXTERNAL +!! -------- +!! none +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +USE MODD_CH_M9_SCHEME +!! +!! EXPLICIT ARGUMENTS +!! ------------------ +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KEQ) :: PJAC +INTEGER, INTENT(IN) :: KMI ! -!WR_HCHO/N2O5=0.0 +TYPE(CCSTYPE), POINTER :: TPK +TPK=>TACCS(KMI) ! -!WR_HCHO/HONO=0.0 +! /BEGIN_CODE/ +TPK%OSD = ( +TPK%K016*PCONC(:,JP_O3) ) / & + ( +TPK%K017*TPK%H2O+TPK%K018A*TPK%N2(:)+TPK%K018B*TPK%O2(:) ) +! +TPK%O = ( +TPK%K001*PCONC(:,JP_NO2)+TPK%K014*PCONC(:,JP_NO3)+TPK%& +&K015*PCONC(:,JP_O3)+TPK%K018A*TPK%OSD*TPK%N2(:)+TPK%K018B*TPK%OSD*TPK%O2(:) ) / & +( +TPK%K002*TPK%O2(:)+TPK%K003*PCONC(:,JP_NO2)+TPK%K004*PCONC(:,JP_NO2)+TPK%K034*& +PCONC(:,JP_O3)+TPK%K038*PCONC(:,JP_NO)+TPK%K052*PCONC(:,JP_ETHE)+& +&TPK%K057*PCONC(:,JP_OLEL)+TPK%K067*PCONC(:,JP_ISOP)+TPK%K077*PCONC(:,& +&JP_OLEH)+TPK%K087*PCONC(:,JP_BIOL)+TPK%K091*PCONC(:,JP_BIOH)+TPK%K283& +&*PCONC(:,JP_MVK)+TPK%K284*PCONC(:,JP_MCR) ) +! +TPK%RO225 = ( TPK%K085*PCONC(:,JP_BIOL)*PCONC(:,JP_NO3) ) / & +( +TPK%K201*PCONC(:,JP_NO)+TPK%K202*PCONC(:,JP_RO2T)+TPK%K203*PCONC(:,JP_HO2)) +! +TPK%RO228 = ( TPK%K089*PCONC(:,JP_BIOH)*PCONC(:,JP_NO3) ) / & +( +TPK%K210*PCONC(:,JP_NO)+TPK%K211*PCONC(:,JP_RO2T)+TPK%K212*PCONC(:,JP_HO2)) + ! -!WR_HCHO/HNO3=0.0 +TPK%RO253 = ( +0.41*TPK%K282*PCONC(:,JP_MCR)*PCONC(:,JP_O3) ) / & +( +TPK%K297*PCONC(:,JP_NO)+TPK%K298*PCONC(:,JP_HO2)+TPK%K299*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO254 = ( +TPK%K140*PCONC(:,JP_PAN6)+TPK%K297*TPK%RO253*& +&PCONC(:,JP_NO)+TPK%K298*TPK%RO253*PCONC(:,JP_HO2)+TPK%K299*& +&TPK%RO253*PCONC(:,JP_RO2T) ) / & +( +TPK%K131*PCONC(:,JP_NO2)+TPK%K300*PCONC(:,JP_NO)+TPK%K301*PCONC(& +&:,JP_HO2)+TPK%K302*PCONC(:,JP_RO2T) ) +! +TPK%RO213 = ( +0.271*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3) ) / & +( +TPK%K162*PCONC(:,JP_NO)+TPK%K163*PCONC(:,JP_RO2T)+TPK%K164*PCONC& +&(:,JP_HO2) ) +! +TPK%RO239 = ( +TPK%K137*PCONC(:,JP_PAN3)+TPK%K162*TPK%RO213*& +&PCONC(:,JP_NO)+TPK%K163*TPK%RO213*PCONC(:,JP_RO2T)+TPK%K164*TPK%RO213*PCONC(:,JP_HO2) ) / & +( +TPK%K128*PCONC(:,JP_NO2)+TPK%K165*PCONC(:,JP_NO)+TPK%K166*PCONC(& +&:,JP_HO2)+TPK%K167*PCONC(:,JP_RO2T) ) +! +TPK%RO248 = ( +TPK%K141*PCONC(:,JP_PAN4)+TPK%K274*PCONC(:,JP_MGLY)*P& +&CONC(:,JP_OH)+TPK%K278*PCONC(:,JP_MGLY)*PCONC(:,JP_NO3) ) / & +( +TPK%K129*PCONC(:,JP_NO2)+TPK%K277*PCONC(:,JP_NO)+TPK%K279*PCONC(& +&:,JP_HO2)+TPK%K280*PCONC(:,JP_RO2T) ) +! +TPK%RO249 = ( +TPK%K272*PCONC(:,JP_MVK)*PCONC(:,JP_OH) ) / & +( +TPK%K285*PCONC(:,JP_NO)+TPK%K286*PCONC(:,JP_RO2T)+TPK%K287*PCONC& +&(:,JP_HO2) ) +! +TPK%RO250 = ( +0.3750353*TPK%K139*PCONC(:,JP_APAN)+TPK%CF46*TPK%K2& +&73*PCONC(:,JP_MCR)*PCONC(:,JP_OH)+TPK%CF46*TPK%K275*PCONC(:,JP_MCR)*PCONC& +&(:,JP_NO3) ) / & +( +TPK%K130*PCONC(:,JP_NO2)+TPK%K288*PCONC(:,JP_NO)+TPK%K289*PCONC(& +&:,JP_HO2)+TPK%K290*PCONC(:,JP_RO2T) ) +! +TPK%RO214 = ( +0.095*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3)+TPK%K1& +&65*TPK%RO239*PCONC(:,JP_NO)+TPK%K167*TPK%RO239*PCONC(:,JP_R& +&O2T)+TPK%K288*TPK%RO250*PCONC(:,JP_NO)+TPK%K290*TPK%RO250& +&*PCONC(:,JP_RO2T) ) / & +( +TPK%K168*PCONC(:,JP_NO)+TPK%K169*PCONC(:,JP_RO2T)+TPK%K170*PCONC& +&(:,JP_HO2) ) +! +TPK%RO251 = ( +TPK%CF47*TPK%K273*PCONC(:,JP_MCR)*PCONC(:,JP_OH) ) / & +( +TPK%K291*PCONC(:,JP_NO)+TPK%K292*PCONC(:,JP_HO2)+TPK%K293*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO252 = ( +TPK%CF47*TPK%K275*PCONC(:,JP_MCR)*PCONC(:,JP_NO3) ) /& +( +TPK%K294*PCONC(:,JP_NO)+TPK%K295*PCONC(:,JP_HO2)+TPK%K296*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO258 = ( +TPK%K138*PCONC(:,JP_PN10)+TPK%K305*PCONC(:,JP_RP16)*P& +&CONC(:,JP_OH)+TPK%K338*PCONC(:,JP_RP16)*PCONC(:,JP_NO3) ) / & +( +TPK%K134*PCONC(:,JP_NO2)+TPK%K340*PCONC(:,JP_NO)+TPK%K341*PCONC(& +&:,JP_HO2)+TPK%K342*PCONC(:,JP_RO2T) ) +! +TPK%RO255 = ( +TPK%K304*PCONC(:,JP_RPR1)*PCONC(:,JP_OH)+TPK%K307*PCO& +&NC(:,JP_RPR1)*PCONC(:,JP_NO3)+TPK%K343*PCONC(:,JP_PAN7) ) / & +( +TPK%K132*PCONC(:,JP_NO2)+TPK%K309*PCONC(:,JP_NO)+TPK%K310*PCONC(& +&:,JP_HO2)+TPK%K311*PCONC(:,JP_RO2T) ) +! +TPK%RO256 = ( +TPK%K312*PCONC(:,JP_RPR3)*PCONC(:,JP_OH)+TPK%K313*PCO& +&NC(:,JP_RPR3)*PCONC(:,JP_NO3)+TPK%K317*PCONC(:,JP_PAN8) ) / & +( +TPK%K315*PCONC(:,JP_NO)+TPK%K316*PCONC(:,JP_NO2)+TPK%K318*PCONC(& +&:,JP_HO2)+TPK%K319*PCONC(:,JP_RO2T) ) +! +TPK%RO257 = ( +0.6249651*TPK%K139*PCONC(:,JP_APAN)+TPK%K324*PCONC(:,& +&JP_RPR8)*PCONC(:,JP_OH)+TPK%K327*PCONC(:,JP_RPR8)*PCONC(:,JP_NO3)+TPK%K3& +&30*PCONC(:,JP_RPR8) ) / & +( +TPK%K133*PCONC(:,JP_NO2)+TPK%K331*PCONC(:,JP_NO)+TPK%K332*PCONC(& +&:,JP_HO2)+TPK%K333*PCONC(:,JP_RO2T) ) +! +TPK%RO29 = ( +0.66*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH)+TPK%K329& +&*PCONC(:,JP_RPR8)+TPK%K331*TPK%RO257*PCONC(:,JP_NO)+TPK%K333*TPK%RO257*& +PCONC(:,JP_RO2T) ) / & +( +TPK%K150*PCONC(:,JP_NO)+TPK%K151*PCONC(:,JP_RO2T)+TPK%K152*PCONC& +&(:,JP_HO2) ) +! +!avoid division by zero in prodloss +WHERE (PCONC(:,JP_NO2)>0.) + TPK%RAD1 = ( +TPK%K072*PCONC(:,JP_AROO)*PCONC(:,JP_NO3) ) / & + ( +TPK%K103*PCONC(:,JP_NO2) ) +! + TPK%RAD8 = ( +TPK%K320*PCONC(:,JP_RPR4)*PCONC(:,JP_NO3) ) / & + ( +TPK%K321*PCONC(:,JP_NO2) ) +ELSEWHERE + TPK%RAD1 = 0. + TPK%RAD8 = 0. +ENDWHERE ! -!WR_HCHO/HNO4=0.0 +TPK%RAD2 = ( +0.74*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & +( +TPK%K097+TPK%K104*PCONC(:,JP_NO2) ) +! +TPK%RAD3 = ( +0.74*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & +( +TPK%K098+TPK%K105*PCONC(:,JP_NO2) ) +! +TPK%RAD4 = ( +0.84*TPK%K080*PCONC(:,JP_AROH)*PCONC(:,JP_OH) ) / & +( +TPK%K099+TPK%K106*PCONC(:,JP_NO2) ) +! +TPK%RAD5 = ( +TPK%CF40*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) / & +( +TPK%K100+TPK%K107*PCONC(:,JP_NO2) ) +! +TPK%RAD6 = ( +0.74*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & +( +TPK%K101+TPK%K108*PCONC(:,JP_NO2) ) +! +TPK%RAD7 = ( +0.74*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & +( +TPK%K102+TPK%K109*PCONC(:,JP_NO2) ) +! +TPK%RO22 = ( +TPK%K049*PCONC(:,JP_ETHE)*PCONC(:,JP_OH)+TPK%CF2*TPK& +&%K053*PCONC(:,JP_ETOH)*PCONC(:,JP_OH)+TPK%K054*PCONC(:,JP_OLEL)*PCONC(:,JP_& +&OH)+TPK%K069*PCONC(:,JP_ALCH)*PCONC(:,JP_OH) ) / & +( +TPK%K113*PCONC(:,JP_NO)+TPK%K114*PCONC(:,JP_RO2T)+TPK%K115*PCONC& +&(:,JP_HO2) ) +! +TPK%RO23 = ( +TPK%K050*PCONC(:,JP_ETHE)*PCONC(:,JP_NO3)+TPK%K055*PCO& +&NC(:,JP_OLEL)*PCONC(:,JP_NO3) ) / & +( +TPK%K116*PCONC(:,JP_NO)+TPK%K117*PCONC(:,JP_RO2T)+TPK%K118*PCONC& +&(:,JP_HO2) ) +! +TPK%RO24 = ( +0.4*TPK%K052*PCONC(:,JP_ETHE)*TPK%O+0.1*TPK%K0& +&57*PCONC(:,JP_OLEL)*TPK%O+0.1*TPK%K077*PCONC(:,JP_OLEH)*& +&TPK%O+0.15*TPK%K283*PCONC(:,JP_MVK)*TPK%O ) / & +( +TPK%K119*PCONC(:,JP_NO)+TPK%K120*PCONC(:,JP_RO2T)+TPK%K121*PCONC& +&(:,JP_HO2) ) +! +TPK%RO26 = ( +TPK%K060*PCONC(:,JP_ALD2)*PCONC(:,JP_OH)+TPK%K061*PCON& +&C(:,JP_ALD2)*PCONC(:,JP_NO3)+TPK%K135*PCONC(:,JP_PAN1) ) / & +( +TPK%K125*PCONC(:,JP_NO)+TPK%K126*PCONC(:,JP_NO2)+TPK%K142*PCONC(& +&:,JP_HO2)+TPK%K143*PCONC(:,JP_RO2T) ) +! +TPK%RO27 = ( +TPK%K062*PCONC(:,JP_KETL)*PCONC(:,JP_OH)+TPK%CF8*TPK& +&%K168*TPK%RO214*PCONC(:,JP_NO)+TPK%K169*TPK%RO214*PCONC(:,J& +&P_RO2T)+TPK%K170*TPK%RO214*PCONC(:,JP_HO2)+0.15*TPK%K284*PCONC(:& +&,JP_MCR)*TPK%O ) / & +( +TPK%K144*PCONC(:,JP_NO)+TPK%K145*PCONC(:,JP_RO2T)+TPK%K146*PCONC& +&(:,JP_HO2) ) +! +TPK%RO210 = ( +0.34*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH) ) / & +( +TPK%K153*PCONC(:,JP_NO)+TPK%K154*PCONC(:,JP_RO2T)+TPK%K155*PCONC& +&(:,JP_HO2) ) +! +TPK%RO211 = ( +0.66*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & +( +TPK%K156*PCONC(:,JP_NO)+TPK%K157*PCONC(:,JP_RO2T)+TPK%K158*PCONC& +&(:,JP_HO2) ) +! +TPK%RO212 = ( +0.34*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & +( +TPK%K159*PCONC(:,JP_NO)+TPK%K160*PCONC(:,JP_RO2T)+TPK%K161*PCONC& +&(:,JP_HO2) ) +! +TPK%RO215 = ( +TPK%K068*PCONC(:,JP_MTBE)*PCONC(:,JP_OH) ) / & +( +TPK%K171*PCONC(:,JP_NO)+TPK%K172*PCONC(:,JP_RO2T)+TPK%K173*PCONC& +&(:,JP_HO2) ) +! +TPK%RO216 = ( +TPK%K070*PCONC(:,JP_KETH)*PCONC(:,JP_OH) ) / & +( +TPK%K174*PCONC(:,JP_NO)+TPK%K175*PCONC(:,JP_RO2T)+TPK%K176*PCONC& +&(:,JP_HO2) ) +! +TPK%RO217 = ( +0.1*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & +( +TPK%K177*PCONC(:,JP_NO)+TPK%K178*PCONC(:,JP_RO2T)+TPK%K179*PCONC& +&(:,JP_HO2) ) +! +TPK%RO220 = ( +0.28*TPK%K076*PCONC(:,JP_OLEH)*PCONC(:,JP_O3)+0.1*TPK& +&%K077*PCONC(:,JP_OLEH)*TPK%O+TPK%K078*PCONC(:,JP_ALKM)*PCONC(:,JP_O& +&H)+TPK%K308*PCONC(:,JP_RPR1)+TPK%K309*TPK%RO255*PCONC(:,JP_NO)+T& +&PK%K311*TPK%RO255*PCONC(:,JP_RO2T) ) / & +( +TPK%K186*PCONC(:,JP_NO)+TPK%K187*PCONC(:,JP_RO2T)+TPK%K188*PCONC& +&(:,JP_HO2) ) +! +TPK%RO218 = ( +TPK%K074*PCONC(:,JP_OLEH)*PCONC(:,JP_OH)+TPK%CF18*TPK%K186*& +TPK%RO220*PCONC(:,JP_NO)+TPK%K187*TPK%RO220*PCONC(:& +&,JP_RO2T)+TPK%K188*TPK%RO220*PCONC(:,JP_HO2) ) / & +( +TPK%K180*PCONC(:,JP_NO)+TPK%K181*PCONC(:,JP_RO2T)+TPK%K182*PCONC& +&(:,JP_HO2) ) +! +TPK%RO219 = ( +TPK%K075*PCONC(:,JP_OLEH)*PCONC(:,JP_NO3) ) / & +( +TPK%K183*PCONC(:,JP_NO)+TPK%K184*PCONC(:,JP_RO2T)+TPK%K185*PCONC& +&(:,JP_HO2) ) +! +TPK%RO221 = ( +0.1*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & +( +TPK%K189*PCONC(:,JP_NO)+TPK%K190*PCONC(:,JP_RO2T)+TPK%K191*PCONC& +&(:,JP_HO2) ) +! +TPK%RO222 = ( +TPK%CF45*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) /& +& & +( +TPK%K192*PCONC(:,JP_NO)+TPK%K193*PCONC(:,JP_RO2T)+TPK%K194*PCONC& +&(:,JP_HO2) ) +! +TPK%RO223 = ( +0.1*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & +( +TPK%K195*PCONC(:,JP_NO)+TPK%K196*PCONC(:,JP_RO2T)+TPK%K197*PCONC& +&(:,JP_HO2) ) +! +TPK%RO224 = ( +TPK%K084*PCONC(:,JP_BIOL)*PCONC(:,JP_OH) ) / & +( +TPK%K198*PCONC(:,JP_NO)+TPK%K199*PCONC(:,JP_RO2T)+TPK%K200*PCONC& +&(:,JP_HO2) ) +! +TPK%RO226 = ( +0.445*TPK%K086*PCONC(:,JP_BIOL)*PCONC(:,JP_O3) ) / & +( +TPK%K204*PCONC(:,JP_NO)+TPK%K205*PCONC(:,JP_RO2T)+TPK%K206*PCONC& +&(:,JP_HO2) ) +! +TPK%RO227 = ( +TPK%K088*PCONC(:,JP_BIOH)*PCONC(:,JP_OH) ) / & +( +TPK%K207*PCONC(:,JP_NO)+TPK%K208*PCONC(:,JP_RO2T)+TPK%K209*PCONC& +&(:,JP_HO2) ) +! +TPK%RO229 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & +( +TPK%K213*PCONC(:,JP_NO)+TPK%K214*PCONC(:,JP_RO2T)+TPK%K215*PCONC& +&(:,JP_HO2) ) +! +TPK%RO230 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & +( +TPK%K219*PCONC(:,JP_RO2T)+TPK%K220*PCONC(:,JP_HO2)+TPK%K344*PCON& +&C(:,JP_NO) ) +! +TPK%RO231 = ( +0.1*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & +( +TPK%K221*PCONC(:,JP_NO)+TPK%K222*PCONC(:,JP_RO2T)+TPK%K223*PCONC& +&(:,JP_HO2) ) +! +TPK%RO232 = ( +TPK%K093*PCONC(:,JP_ALKH)*PCONC(:,JP_OH) ) / & +( +TPK%K224*PCONC(:,JP_NO)+TPK%K225*PCONC(:,JP_RO2T)+TPK%K226*PCONC& +&(:,JP_HO2) ) +! +TPK%RO233 = ( +TPK%K097*TPK%RAD2 ) / & +( +TPK%K230+TPK%K231*PCONC(:,JP_NO)+TPK%K232*PCONC(:,JP_RO2T)+TPK%K233*& +PCONC(:,JP_HO2) ) +! +TPK%RO234 = ( +TPK%K098*TPK%RAD3 ) / & +( +TPK%K237+TPK%K238*PCONC(:,JP_NO)+TPK%K239*PCONC(:,JP_RO2T)+TPK%K240*& +PCONC(:,JP_HO2) ) +! +TPK%RO235 = ( +TPK%K099*TPK%RAD4 ) / & +( +TPK%K244+TPK%K245*PCONC(:,JP_NO)+TPK%K246*PCONC(:,JP_RO2T)+TPK%K247*& +PCONC(:,JP_HO2) ) +! +TPK%RO236 = ( +TPK%K100*TPK%RAD5 ) / & +( +TPK%K251+TPK%K252*PCONC(:,JP_NO)+TPK%K253*PCONC(:,JP_RO2T)+TPK%K254*& +PCONC(:,JP_HO2) ) +! +TPK%RO237 = ( +TPK%K101*TPK%RAD6 ) / & +( +TPK%K258+TPK%K259*PCONC(:,JP_NO)+TPK%K260*PCONC(:,JP_RO2T)+TPK%K261*& +PCONC(:,JP_HO2) ) +! +TPK%RO238 = ( +TPK%K102*TPK%RAD7 ) / & +( +TPK%K265+TPK%K266*PCONC(:,JP_NO)+TPK%K267*PCONC(:,JP_RO2T)+TPK%K268*& +PCONC(:,JP_HO2) ) +! +TPK%RO240 = ( +TPK%CF30*TPK%K213*TPK%RO229*PCONC(:,JP_NO)+TPK%K214*& +TPK%RO229*PCONC(:,JP_RO2T)+TPK%K215*TPK%RO229*PCON& +&C(:,JP_HO2) ) / & +( +TPK%K216*PCONC(:,JP_NO)+TPK%K217*PCONC(:,JP_RO2T)+TPK%K218*PCONC& +&(:,JP_HO2) ) +! +TPK%RO241 = ( +TPK%CF34*TPK%K224*TPK%RO232*PCONC(:,JP_NO)+TPK%K225*& +TPK%RO232*PCONC(:,JP_RO2T)+TPK%K226*TPK%RO232*PCON& +&C(:,JP_HO2) ) / & +( +TPK%K227*PCONC(:,JP_NO)+TPK%K228*PCONC(:,JP_RO2T)+TPK%K229*PCONC& +&(:,JP_HO2) ) +! +TPK%RO242 = ( +TPK%K230*TPK%RO233 ) / & +( +TPK%K234*PCONC(:,JP_NO)+TPK%K235*PCONC(:,JP_RO2T)+TPK%K236*PCONC& +&(:,JP_HO2) ) +! +TPK%RO243 = ( +TPK%K237*TPK%RO234 ) / & +( +TPK%K241*PCONC(:,JP_NO)+TPK%K242*PCONC(:,JP_RO2T)+TPK%K243*PCONC& +&(:,JP_HO2) ) +! +TPK%RO244 = ( +TPK%K244*TPK%RO235 ) / & +( +TPK%K248*PCONC(:,JP_NO)+TPK%K249*PCONC(:,JP_RO2T)+TPK%K250*PCONC& +&(:,JP_HO2) ) +! +TPK%RO245 = ( +TPK%K251*TPK%RO236 ) / & +( +TPK%K255*PCONC(:,JP_NO)+TPK%K256*PCONC(:,JP_RO2T)+TPK%K257*PCONC& +&(:,JP_HO2) ) +! +TPK%RO246 = ( +TPK%K258*TPK%RO237 ) / & +( +TPK%K262*PCONC(:,JP_NO)+TPK%K263*PCONC(:,JP_RO2T)+TPK%K264*PCONC& +&(:,JP_HO2) ) +! +TPK%RO247 = ( +TPK%K265*TPK%RO238 ) / & +( +TPK%K269*PCONC(:,JP_NO)+TPK%K270*PCONC(:,JP_RO2T)+TPK%K271*PCONC& +&(:,JP_HO2) ) +! +TPK%RO28 = ( +TPK%K063*PCONC(:,JP_KETL)+TPK%K071*PCONC(:,JP_KETH)+TP& +&K%K136*PCONC(:,JP_PAN2)+TPK%K144*TPK%RO27*PCONC(:,JP_NO)+TPK%& +&K145*TPK%RO27*PCONC(:,JP_RO2T)+TPK%K146*TPK%RO27*PCONC(:,JP& +&_HO2)+TPK%K174*TPK%RO216*PCONC(:,JP_NO)+TPK%K175*TPK%RO21& +&6*PCONC(:,JP_RO2T)+TPK%K176*TPK%RO216*PCONC(:,JP_HO2)+TPK%K204*& +&TPK%RO226*PCONC(:,JP_NO)+TPK%K205*TPK%RO226*PCONC(:,JP_RO2T)& +&+TPK%K206*TPK%RO226*PCONC(:,JP_HO2)+TPK%K216*TPK%RO240*& +&PCONC(:,JP_NO)+TPK%K217*TPK%RO240*PCONC(:,JP_RO2T)+TPK%K218*& +&TPK%RO240*PCONC(:,JP_HO2)+TPK%K219*TPK%RO230*PCONC(:,JP_RO2T)+T& +&PK%K220*TPK%RO230*PCONC(:,JP_HO2)+TPK%K276*PCONC(:,JP_MGLY)+TPK%K277*& +TPK%RO248*PCONC(:,JP_NO)+TPK%K280*TPK%RO248*PCONC(:& +&,JP_RO2T)+0.28*TPK%K281*PCONC(:,JP_MVK)*PCONC(:,JP_O3)+0.15*TPK%K283*PCO& +&NC(:,JP_MVK)*TPK%O+TPK%K344*TPK%RO230*PCONC(:,JP_NO) ) / & +( +TPK%K127*PCONC(:,JP_NO2)+TPK%K147*PCONC(:,JP_NO)+TPK%K148*PCONC(& +&:,JP_HO2)+TPK%K149*PCONC(:,JP_RO2T) ) ! -!WR_HCHO/NH3=0.0 +! /END_CODE/ +PJAC(:,:,:) = 0.0 +CALL SUBJ0 +CALL SUBJ1 +CALL SUBJ2 +CALL SUBJ3 +CALL SUBJ4 +CALL SUBJ5 +CALL SUBJ6 +CALL SUBJ7 +CALL SUBJ8 +CALL SUBJ9 +CALL SUBJ10 +CALL SUBJ11 +CALL SUBJ12 +CALL SUBJ13 +CALL SUBJ14 +CALL SUBJ15 +CALL SUBJ16 +CALL SUBJ17 +CALL SUBJ18 +CALL SUBJ19 +CALL SUBJ20 +CALL SUBJ21 +CALL SUBJ22 +CALL SUBJ23 +CALL SUBJ24 +CALL SUBJ25 +CALL SUBJ26 +CALL SUBJ27 +CALL SUBJ28 +CALL SUBJ29 +CALL SUBJ30 +CALL SUBJ31 +CALL SUBJ32 ! -!WR_HCHO/SO2=0.0 + +CONTAINS + +SUBROUTINE SUBJ0 ! -!WR_HCHO/SULF=0.0 +!Indices 1 a 5 ! -!WR_HCHO/CO=0.0 ! -!WR_HCHO/OH=0.0 +!NO/NO=-K005*<O3>-K007*<NO3>-K008*<NO>-K008*<NO>-K008*<NO>-K008*<NO>-K019*<OH>- +!K026*<HO2>-K038*<O>+K095*<RO2T>-K095*<RO2T>-K110*<RO21>-K113*<RO22>-K116*<RO23 +!>-K119*<RO24>-K122*<RO25>-K125*<RO26>-K144*<RO27>-K147*<RO28>-K150*<RO29>-K153 +!*<RO210>-K156*<RO211>-K159*<RO212>-K162*<RO213>-K165*<RO239>-K168*<RO214>-K171 +!*<RO215>-K174*<RO216>-K177*<RO217>-K180*<RO218>-K183*<RO219>-K186*<RO220>-K189 +!*<RO221>-K192*<RO222>-K195*<RO223>-K198*<RO224>-K201*<RO225>-K204*<RO226>-K207 +!*<RO227>-K210*<RO228>-K213*<RO229>-K216*<RO240>-K221*<RO231>-K224*<RO232>-K227 +!*<RO241>-K231*<RO233>-K234*<RO242>-K238*<RO234>-K241*<RO243>-K245*<RO235>-K248 +!*<RO244>-K252*<RO236>-K255*<RO245>-K259*<RO237>-K262*<RO246>-K266*<RO238>-K269 +!*<RO247>-K277*<RO248>-K285*<RO249>-K288*<RO250>-K291*<RO251>-K294*<RO252>-K297 +!*<RO253>-K300*<RO254>-K309*<RO255>-K315*<RO256>-K331*<RO257>-K340*<RO258>-K344 +!*<RO230>-KTC3-KTR3 + PJAC(:,1,1)=-TPK%K005(:)*PCONC(:,3)-TPK%K007(:)*PCONC(:,8)-TPK%K008(:)*PCONC(:& +&,1)-TPK%K008(:)*PCONC(:,1)-TPK%K008(:)*PCONC(:,1)-TPK%K008(:)*PCONC(:,1)-TPK%K& +&019(:)*PCONC(:,15)-TPK%K026(:)*PCONC(:,10)-TPK%K038(:)*TPK%O(:)+TPK%K095(:)*PC& +&ONC(:,85)-TPK%K095(:)*PCONC(:,85)-TPK%K110(:)*PCONC(:,86)-TPK%K113(:)*TPK%RO22& +&(:)-TPK%K116(:)*TPK%RO23(:)-TPK%K119(:)*TPK%RO24(:)-TPK%K122(:)*PCONC(:,87)-TP& +&K%K125(:)*TPK%RO26(:)-TPK%K144(:)*TPK%RO27(:)-TPK%K147(:)*TPK%RO28(:)-TPK%K150& +&(:)*TPK%RO29(:)-TPK%K153(:)*TPK%RO210(:)-TPK%K156(:)*TPK%RO211(:)-TPK%K159(:)*& +&TPK%RO212(:)-TPK%K162(:)*TPK%RO213(:)-TPK%K165(:)*TPK%RO239(:)-TPK%K168(:)*TPK& +&%RO214(:)-TPK%K171(:)*TPK%RO215(:)-TPK%K174(:)*TPK%RO216(:)-TPK%K177(:)*TPK%RO& +&217(:)-TPK%K180(:)*TPK%RO218(:)-TPK%K183(:)*TPK%RO219(:)-TPK%K186(:)*TPK%RO220& +&(:)-TPK%K189(:)*TPK%RO221(:)-TPK%K192(:)*TPK%RO222(:)-TPK%K195(:)*TPK%RO223(:)& +&-TPK%K198(:)*TPK%RO224(:)-TPK%K201(:)*TPK%RO225(:)-TPK%K204(:)*TPK%RO226(:)-TP& +&K%K207(:)*TPK%RO227(:)-TPK%K210(:)*TPK%RO228(:)-TPK%K213(:)*TPK%RO229(:)-TPK%K& +&216(:)*TPK%RO240(:)-TPK%K221(:)*TPK%RO231(:)-TPK%K224(:)*TPK%RO232(:)-TPK%K227& +&(:)*TPK%RO241(:)-TPK%K231(:)*TPK%RO233(:)-TPK%K234(:)*TPK%RO242(:)-TPK%K238(:)& +&*TPK%RO234(:)-TPK%K241(:)*TPK%RO243(:)-TPK%K245(:)*TPK%RO235(:)-TPK%K248(:)*TP& +&K%RO244(:)-TPK%K252(:)*TPK%RO236(:)-TPK%K255(:)*TPK%RO245(:)-TPK%K259(:)*TPK%R& +&O237(:)-TPK%K262(:)*TPK%RO246(:)-TPK%K266(:)*TPK%RO238(:)-TPK%K269(:)*TPK%RO24& +&7(:)-TPK%K277(:)*TPK%RO248(:)-TPK%K285(:)*TPK%RO249(:)-TPK%K288(:)*TPK%RO250(:& +&)-TPK%K291(:)*TPK%RO251(:)-TPK%K294(:)*TPK%RO252(:)-TPK%K297(:)*TPK%RO253(:)-T& +&PK%K300(:)*TPK%RO254(:)-TPK%K309(:)*TPK%RO255(:)-TPK%K315(:)*TPK%RO256(:)-TPK%& +&K331(:)*TPK%RO257(:)-TPK%K340(:)*TPK%RO258(:)-TPK%K344(:)*TPK%RO230(:)-TPK%KTC& +&3(:)-TPK%KTR3(:) +! +!NO/NO2=+K001+K003*<O>+K012*<NO3> + PJAC(:,1,2)=+TPK%K001(:)+TPK%K003(:)*TPK%O(:)+TPK%K012(:)*PCONC(:,8) +! +!NO/O3=-K005*<NO> + PJAC(:,1,3)=-TPK%K005(:)*PCONC(:,1) +! +!NO/HONO=+0.9*K020 + PJAC(:,1,4)=+0.9*TPK%K020(:) ! -!WR_HCHO/HO2=0.0 +!NO/HNO3=0.0 ! -!WR_HCHO/CH4=0.0 +!NO/HNO4=0.0 ! -!WR_HCHO/ETH=0.0 +!NO/N2O5=0.0 ! -!WR_HCHO/ALKA=0.0 +!NO/NO3=-K007*<NO>+K012*<NO2>+K013 + PJAC(:,1,8)=-TPK%K007(:)*PCONC(:,1)+TPK%K012(:)*PCONC(:,2)+TPK%K013(:) ! -!WR_HCHO/ALKE=0.0 +!NO/NH3=0.0 ! -!WR_HCHO/BIO=0.0 +!NO/HO2=-K026*<NO> + PJAC(:,1,10)=-TPK%K026(:)*PCONC(:,1) ! -!WR_HCHO/ARO=0.0 +!NO/CO=0.0 ! -!WR_HCHO/HCHO=+KTR16 - PJAC(:,82,22)=+TPK%KTR16(:) +!NO/H2O2=0.0 ! -!WR_HCHO/ALD=0.0 +!NO/SO2=0.0 ! -!WR_HCHO/KET=0.0 +!NO/H2SO4=0.0 ! -!WR_HCHO/CARBO=0.0 +!NO/OH=-K019*<NO> + PJAC(:,1,15)=-TPK%K019(:)*PCONC(:,1) ! -!WR_HCHO/ONIT=0.0 +!NO/ETHE=0.0 ! -!WR_HCHO/PAN=0.0 +!NO/OLEL=0.0 ! -!WR_HCHO/OP1=0.0 +!NO/OLEH=0.0 ! -!WR_HCHO/OP2=0.0 +!NO/ALKL=0.0 ! -!WR_HCHO/ORA1=0.0 +!NO/ALKM=0.0 ! -!WR_HCHO/ORA2=0.0 +!NO/ALKH=0.0 ! -!WR_HCHO/MO2=0.0 +!NO/AROH=0.0 ! -!WR_HCHO/ALKAP=0.0 +!NO/AROL=0.0 ! -!WR_HCHO/ALKEP=0.0 +!NO/AROO=0.0 ! -!WR_HCHO/BIOP=0.0 +!NO/ARAL=0.0 ! -!WR_HCHO/PHO=0.0 +!NO/ARAC=0.0 ! -!WR_HCHO/ADD=0.0 +!NO/PAH=0.0 ! -!WR_HCHO/AROP=0.0 +!NO/HCHO=0.0 ! -!WR_HCHO/CARBOP=0.0 +!NO/ALD2=0.0 ! -!WR_HCHO/OLN=0.0 +!NO/KETL=0.0 ! -!WR_HCHO/XO2=0.0 +!NO/KETH=0.0 ! -!WR_HCHO/WC_O3=0.0 +!NO/MEOH=0.0 ! -!WR_HCHO/WC_H2O2=0.0 +!NO/ETOH=0.0 ! -!WR_HCHO/WC_NO=0.0 +!NO/ALCH=0.0 ! -!WR_HCHO/WC_NO2=0.0 +!NO/ISOP=0.0 ! -!WR_HCHO/WC_NO3=0.0 +!NO/BIOL=0.0 ! -!WR_HCHO/WC_N2O5=0.0 +!NO/BIOH=0.0 ! -!WR_HCHO/WC_HONO=0.0 +!NO/MTBE=0.0 ! -!WR_HCHO/WC_HNO3=0.0 +!NO/MVK=0.0 ! -!WR_HCHO/WC_HNO4=0.0 +!NO/MCR=0.0 ! -!WR_HCHO/WC_NH3=0.0 +!NO/MGLY=0.0 ! -!WR_HCHO/WC_OH=0.0 +!NO/GLY=0.0 ! -!WR_HCHO/WC_HO2=0.0 +!NO/ORA1=0.0 ! -!WR_HCHO/WC_CO2=0.0 +!NO/ORA2=0.0 ! -!WR_HCHO/WC_SO2=0.0 +!NO/ACID=0.0 ! -!WR_HCHO/WC_SULF=0.0 +!NO/UR28=0.0 ! -!WR_HCHO/WC_HCHO=0.0 +!NO/UR21=0.0 ! -!WR_HCHO/WC_ORA1=0.0 +!NO/URG2=0.0 ! -!WR_HCHO/WC_ORA2=0.0 +!NO/UR26=0.0 ! -!WR_HCHO/WC_MO2=0.0 +!NO/RPG2=0.0 ! -!WR_HCHO/WC_OP1=0.0 +!NO/RP18=0.0 ! -!WR_HCHO/WC_ASO3=0.0 +!NO/RPG3=0.0 ! -!WR_HCHO/WC_ASO4=0.0 +!NO/URG4=0.0 ! -!WR_HCHO/WC_ASO5=0.0 +!NO/UR8=0.0 ! -!WR_HCHO/WC_AHSO5=0.0 +!NO/UR17=0.0 ! -!WR_HCHO/WC_AHMS=0.0 +!NO/UR7=0.0 ! -!WR_HCHO/WR_O3=0.0 +!NO/RPR3=0.0 ! -!WR_HCHO/WR_H2O2=0.0 +!NO/URG6=0.0 ! -!WR_HCHO/WR_NO=0.0 +!NO/UR22=0.0 ! -!WR_HCHO/WR_NO2=0.0 +!NO/URG7=0.0 ! -!WR_HCHO/WR_NO3=0.0 +!NO/RPR4=0.0 ! -!WR_HCHO/WR_N2O5=0.0 +!NO/RPR7=0.0 ! -!WR_HCHO/WR_HONO=0.0 +!NO/RPG7=0.0 ! -!WR_HCHO/WR_HNO3=0.0 +!NO/URG8=0.0 ! -!WR_HCHO/WR_HNO4=0.0 +!NO/UR19=0.0 ! -!WR_HCHO/WR_NH3=0.0 +!NO/URG9=0.0 ! -!WR_HCHO/WR_OH=-KR19*<WR_HCHO> - PJAC(:,82,77)=-TPK%KR19(:)*PCONC(:,82) +!NO/AP7=0.0 ! -!WR_HCHO/WR_HO2=0.0 +!NO/URG10=0.0 ! -!WR_HCHO/WR_CO2=0.0 +!NO/RPR1=0.0 ! -!WR_HCHO/WR_SO2=-KR21*<WR_HCHO> - PJAC(:,82,80)=-TPK%KR21(:)*PCONC(:,82) +!NO/RPR5=0.0 ! -!WR_HCHO/WR_SULF=0.0 +!NO/RPR8=0.0 ! -!WR_HCHO/WR_HCHO=-KTR36-KR19*<WR_OH>-KR21*<WR_SO2> - PJAC(:,82,82)=-TPK%KTR36(:)-TPK%KR19(:)*PCONC(:,77)-TPK%KR21(:)*PCONC(:,80) +!NO/RP10=0.0 ! -!WR_HCHO/WR_ORA1=0.0 +!NO/RP11=0.0 ! -!WR_HCHO/WR_ORA2=0.0 +!NO/RP16=0.0 ! -!WR_HCHO/WR_MO2=+2.00*KR17*<WR_MO2>+2.00*KR17*<WR_MO2> - PJAC(:,82,85)=+2.00*TPK%KR17(:)*PCONC(:,85)+2.00*TPK%KR17(:)*PCONC(:,85) +!NO/RPRL=0.0 ! -!WR_HCHO/WR_OP1=0.0 +!NO/APAN=0.0 ! -!WR_HCHO/WR_ASO3=0.0 +!NO/PAN1=0.0 ! -!WR_HCHO/WR_ASO4=0.0 +!NO/PAN2=0.0 ! -!WR_HCHO/WR_ASO5=0.0 +!NO/PAN3=0.0 ! -!WR_HCHO/WR_AHSO5=0.0 +!NO/PAN4=0.0 ! -!WR_HCHO/WR_AHMS=+KR22 - PJAC(:,82,91)=+TPK%KR22(:) +!NO/PAN6=0.0 ! -!WR_ORA1/O3=0.0 +!NO/PAN7=0.0 ! -!WR_ORA1/H2O2=0.0 +!NO/PAN8=0.0 ! -!WR_ORA1/NO=0.0 +!NO/PN10=0.0 ! -!WR_ORA1/NO2=0.0 +!NO/RO2T=+K095*<NO>-K095*<NO> + PJAC(:,1,85)=+TPK%K095(:)*PCONC(:,1)-TPK%K095(:)*PCONC(:,1) ! -!WR_ORA1/NO3=0.0 +!NO/RO21=-K110*<NO> + PJAC(:,1,86)=-TPK%K110(:)*PCONC(:,1) ! -!WR_ORA1/N2O5=0.0 +!NO/RO25=-K122*<NO> + PJAC(:,1,87)=-TPK%K122(:)*PCONC(:,1) ! -!WR_ORA1/HONO=0.0 +!NO/WC_O3=0.0 ! -!WR_ORA1/HNO3=0.0 +!NO/WC_H2O2=0.0 ! -!WR_ORA1/HNO4=0.0 +!NO/WC_NO=+KTC34 + PJAC(:,1,90)=+TPK%KTC34(:) ! -!WR_ORA1/NH3=0.0 +!NO/WC_NO2=0.0 ! -!WR_ORA1/SO2=0.0 +!NO/WC_NO3=0.0 ! -!WR_ORA1/SULF=0.0 +!NO/WC_N2O5=0.0 ! -!WR_ORA1/CO=0.0 +!NO/WC_HONO=0.0 ! -!WR_ORA1/OH=0.0 +!NO/WC_HNO3=0.0 ! -!WR_ORA1/HO2=0.0 +!NO/WC_HNO4=0.0 ! -!WR_ORA1/CH4=0.0 +!NO/WC_NH3=0.0 ! -!WR_ORA1/ETH=0.0 +!NO/WC_OH=0.0 ! -!WR_ORA1/ALKA=0.0 +!NO/WC_HO2=0.0 ! -!WR_ORA1/ALKE=0.0 +!NO/WC_CO2=0.0 ! -!WR_ORA1/BIO=0.0 +!NO/WC_SO2=0.0 ! -!WR_ORA1/ARO=0.0 +!NO/WC_H2SO4=0.0 ! -!WR_ORA1/HCHO=0.0 +!NO/WC_RO21=0.0 ! -!WR_ORA1/ALD=0.0 +!NO/WC_RO25=0.0 ! -!WR_ORA1/KET=0.0 +!NO/WC_MEOH=0.0 ! -!WR_ORA1/CARBO=0.0 +!NO/WC_ETOH=0.0 ! -!WR_ORA1/ONIT=0.0 +!NO/WC_ALCH=0.0 ! -!WR_ORA1/PAN=0.0 +!NO/WC_HCHO=0.0 ! -!WR_ORA1/OP1=0.0 +!NO/WC_ALD2=0.0 ! -!WR_ORA1/OP2=0.0 +!NO/WC_GLY=0.0 ! -!WR_ORA1/ORA1=+KTR17 - PJAC(:,83,30)=+TPK%KTR17(:) +!NO/WC_MGLY=0.0 ! -!WR_ORA1/ORA2=0.0 +!NO/WC_KETL=0.0 ! -!WR_ORA1/MO2=0.0 +!NO/WC_ORA1=0.0 ! -!WR_ORA1/ALKAP=0.0 +!NO/WC_ORA2=0.0 ! -!WR_ORA1/ALKEP=0.0 +!NO/WC_ACID=0.0 ! -!WR_ORA1/BIOP=0.0 +!NO/WC_RP16=0.0 ! -!WR_ORA1/PHO=0.0 +!NO/WC_UR21=0.0 ! -!WR_ORA1/ADD=0.0 +!NO/WC_UR28=0.0 ! -!WR_ORA1/AROP=0.0 +!NO/WC_ACID2=0.0 ! -!WR_ORA1/CARBOP=0.0 +!NO/WC_ASO3=0.0 ! -!WR_ORA1/OLN=0.0 +!NO/WC_ASO4=0.0 ! -!WR_ORA1/XO2=0.0 +!NO/WC_ASO5=0.0 ! -!WR_ORA1/WC_O3=0.0 +!NO/WC_AHSO5=0.0 ! -!WR_ORA1/WC_H2O2=0.0 +!NO/WC_AHMS=0.0 ! -!WR_ORA1/WC_NO=0.0 +!NO/WR_O3=0.0 ! -!WR_ORA1/WC_NO2=0.0 +!NO/WR_H2O2=0.0 ! -!WR_ORA1/WC_NO3=0.0 +!NO/WR_NO=+KTR34 + PJAC(:,1,127)=+TPK%KTR34(:) ! -!WR_ORA1/WC_N2O5=0.0 +!NO/WR_NO2=0.0 ! -!WR_ORA1/WC_HONO=0.0 +!NO/WR_NO3=0.0 ! -!WR_ORA1/WC_HNO3=0.0 +!NO/WR_N2O5=0.0 ! -!WR_ORA1/WC_HNO4=0.0 +!NO/WR_HONO=0.0 ! -!WR_ORA1/WC_NH3=0.0 +!NO/WR_HNO3=0.0 ! -!WR_ORA1/WC_OH=0.0 +!NO/WR_HNO4=0.0 ! -!WR_ORA1/WC_HO2=0.0 +!NO/WR_NH3=0.0 ! -!WR_ORA1/WC_CO2=0.0 +!NO/WR_OH=0.0 ! -!WR_ORA1/WC_SO2=0.0 +!NO/WR_HO2=0.0 ! -!WR_ORA1/WC_SULF=0.0 +!NO/WR_CO2=0.0 ! -!WR_ORA1/WC_HCHO=0.0 +!NO/WR_SO2=0.0 ! -!WR_ORA1/WC_ORA1=0.0 +!NO/WR_H2SO4=0.0 ! -!WR_ORA1/WC_ORA2=0.0 +!NO/WR_RO21=0.0 ! -!WR_ORA1/WC_MO2=0.0 +!NO/WR_RO25=0.0 ! -!WR_ORA1/WC_OP1=0.0 +!NO/WR_MEOH=0.0 ! -!WR_ORA1/WC_ASO3=0.0 +!NO/WR_ETOH=0.0 ! -!WR_ORA1/WC_ASO4=0.0 +!NO/WR_ALCH=0.0 ! -!WR_ORA1/WC_ASO5=0.0 +!NO/WR_HCHO=0.0 ! -!WR_ORA1/WC_AHSO5=0.0 +!NO/WR_ALD2=0.0 ! -!WR_ORA1/WC_AHMS=0.0 +!NO/WR_GLY=0.0 ! -!WR_ORA1/WR_O3=0.0 +!NO/WR_MGLY=0.0 ! -!WR_ORA1/WR_H2O2=0.0 +!NO/WR_KETL=0.0 ! -!WR_ORA1/WR_NO=0.0 +!NO/WR_ORA1=0.0 ! -!WR_ORA1/WR_NO2=0.0 +!NO/WR_ORA2=0.0 ! -!WR_ORA1/WR_NO3=0.0 +!NO/WR_ACID=0.0 ! -!WR_ORA1/WR_N2O5=0.0 +!NO/WR_RP16=0.0 ! -!WR_ORA1/WR_HONO=0.0 +!NO/WR_UR21=0.0 ! -!WR_ORA1/WR_HNO3=0.0 +!NO/WR_UR28=0.0 ! -!WR_ORA1/WR_HNO4=0.0 +!NO/WR_ACID2=0.0 ! -!WR_ORA1/WR_NH3=0.0 +!NO/WR_ASO3=0.0 ! -!WR_ORA1/WR_OH=+KR19*<WR_HCHO>-KR20*<WR_ORA1>+KR23*<WR_AHMS> - PJAC(:,83,77)=+TPK%KR19(:)*PCONC(:,82)-TPK%KR20(:)*PCONC(:,83)+TPK%KR23(:)*PCO& -&NC(:,91) +!NO/WR_ASO4=0.0 ! -!WR_ORA1/WR_HO2=0.0 +!NO/WR_ASO5=0.0 ! -!WR_ORA1/WR_CO2=0.0 +!NO/WR_AHSO5=0.0 ! -!WR_ORA1/WR_SO2=0.0 +!NO/WR_AHMS=0.0 ! -!WR_ORA1/WR_SULF=0.0 +!NO2/NO=+K005*<O3>+2.*K007*<NO3>+2.*K008*<NO>+2.*K008*<NO>+K026*<HO2>+K038*<O>+ +!K110*<RO21>+K113*<RO22>+2.*K116*<RO23>+K119*<RO24>+TPK%CF4*K122*<RO25>+K125*<R +!O26>+K144*<RO27>+K147*<RO28>+TPK%CF6*K150*<RO29>+K153*<RO210>+2.*K156*<RO211>+ +!2.*K159*<RO212>+K162*<RO213>+K165*<RO239>+TPK%CF8*K168*<RO214>+K171*<RO215>+K1 +!74*<RO216>+TPK%CF22*K177*<RO217>+TPK%CF20*K180*<RO218>+2.*K183*<RO219>+TPK%CF1 +!8*K186*<RO220>+TPK%CF24*K189*<RO221>+TPK%CF42*K192*<RO222>+TPK%CF44*K195*<RO22 +!3>+TPK%CF26*K198*<RO224>+2.*K201*<RO225>+K204*<RO226>+TPK%CF28*K207*<RO227>+2. +!*K210*<RO228>+TPK%CF30*K213*<RO229>+K216*<RO240>+TPK%CF32*K221*<RO231>+TPK%CF3 +!4*K224*<RO232>+TPK%CF36*K227*<RO241>+K231*<RO233>+K234*<RO242>+K238*<RO234>+K2 +!41*<RO243>+K245*<RO235>+K248*<RO244>+K252*<RO236>+K255*<RO245>+K259*<RO237>+K2 +!62*<RO246>+K266*<RO238>+K269*<RO247>+K277*<RO248>+K285*<RO249>+K288*<RO250>+K2 +!91*<RO251>+2.*K294*<RO252>+K297*<RO253>+K300*<RO254>+K309*<RO255>+K315*<RO256> +!+K331*<RO257>+K340*<RO258>+K344*<RO230> + PJAC(:,2,1)=+TPK%K005(:)*PCONC(:,3)+2.*TPK%K007(:)*PCONC(:,8)+2.*TPK%K008(:)*P& +&CONC(:,1)+2.*TPK%K008(:)*PCONC(:,1)+TPK%K026(:)*PCONC(:,10)+TPK%K038(:)*TPK%O(& +&:)+TPK%K110(:)*PCONC(:,86)+TPK%K113(:)*TPK%RO22(:)+2.*TPK%K116(:)*TPK%RO23(:)+& +&TPK%K119(:)*TPK%RO24(:)+TPK%CF4*TPK%K122(:)*PCONC(:,87)+TPK%K125(:)*TPK%RO26(:& +&)+TPK%K144(:)*TPK%RO27(:)+TPK%K147(:)*TPK%RO28(:)+TPK%CF6*TPK%K150(:)*TPK%RO29& +&(:)+TPK%K153(:)*TPK%RO210(:)+2.*TPK%K156(:)*TPK%RO211(:)+2.*TPK%K159(:)*TPK%RO& +&212(:)+TPK%K162(:)*TPK%RO213(:)+TPK%K165(:)*TPK%RO239(:)+TPK%CF8*TPK%K168(:)*T& +&PK%RO214(:)+TPK%K171(:)*TPK%RO215(:)+TPK%K174(:)*TPK%RO216(:)+TPK%CF22*TPK%K17& +&7(:)*TPK%RO217(:)+TPK%CF20*TPK%K180(:)*TPK%RO218(:)+2.*TPK%K183(:)*TPK%RO219(:& +&)+TPK%CF18*TPK%K186(:)*TPK%RO220(:)+TPK%CF24*TPK%K189(:)*TPK%RO221(:)+TPK%CF42& +&*TPK%K192(:)*TPK%RO222(:)+TPK%CF44*TPK%K195(:)*TPK%RO223(:)+TPK%CF26*TPK%K198(& +&:)*TPK%RO224(:)+2.*TPK%K201(:)*TPK%RO225(:)+TPK%K204(:)*TPK%RO226(:)+TPK%CF28*& +&TPK%K207(:)*TPK%RO227(:)+2.*TPK%K210(:)*TPK%RO228(:)+TPK%CF30*TPK%K213(:)*TPK%& +&RO229(:)+TPK%K216(:)*TPK%RO240(:)+TPK%CF32*TPK%K221(:)*TPK%RO231(:)+TPK%CF34*T& +&PK%K224(:)*TPK%RO232(:)+TPK%CF36*TPK%K227(:)*TPK%RO241(:)+TPK%K231(:)*TPK%RO23& +&3(:)+TPK%K234(:)*TPK%RO242(:)+TPK%K238(:)*TPK%RO234(:)+TPK%K241(:)*TPK%RO243(:& +&)+TPK%K245(:)*TPK%RO235(:)+TPK%K248(:)*TPK%RO244(:)+TPK%K252(:)*TPK%RO236(:)+T& +&PK%K255(:)*TPK%RO245(:)+TPK%K259(:)*TPK%RO237(:)+TPK%K262(:)*TPK%RO246(:)+TPK%& +&K266(:)*TPK%RO238(:)+TPK%K269(:)*TPK%RO247(:)+TPK%K277(:)*TPK%RO248(:)+TPK%K28& +&5(:)*TPK%RO249(:)+TPK%K288(:)*TPK%RO250(:)+TPK%K291(:)*TPK%RO251(:)+2.*TPK%K29& +&4(:)*TPK%RO252(:)+TPK%K297(:)*TPK%RO253(:)+TPK%K300(:)*TPK%RO254(:)+TPK%K309(:& +&)*TPK%RO255(:)+TPK%K315(:)*TPK%RO256(:)+TPK%K331(:)*TPK%RO257(:)+TPK%K340(:)*T& +&PK%RO258(:)+TPK%K344(:)*TPK%RO230(:) +! +!NO2/NO2=-K001-K003*<O>-K004*<O>-K006*<O3>-K009*<NO3>+K012*<NO3>-K012*<NO3>-K02 +!1*<H2O>-K022*<OH>-K027*<HO2>-K103*<RAD1>-K104*<RAD2>-K105*<RAD3>-K106*<RAD4>-K +!107*<RAD5>-K108*<RAD6>-K109*<RAD7>-K126*<RO26>-K127*<RO28>-K128*<RO239>-K129*< +!RO248>-K130*<RO250>-K131*<RO254>-K132*<RO255>-K133*<RO257>-K134*<RO258>-K316*< +!RO256>-K321*<RAD8>-KTC4-KTR4 + PJAC(:,2,2)=-TPK%K001(:)-TPK%K003(:)*TPK%O(:)-TPK%K004(:)*TPK%O(:)-TPK%K006(:)& +&*PCONC(:,3)-TPK%K009(:)*PCONC(:,8)+TPK%K012(:)*PCONC(:,8)-TPK%K012(:)*PCONC(:,& +&8)-TPK%K021(:)*TPK%H2O(:)-TPK%K022(:)*PCONC(:,15)-TPK%K027(:)*PCONC(:,10)-TPK%& +&K103(:)*TPK%RAD1(:)-TPK%K104(:)*TPK%RAD2(:)-TPK%K105(:)*TPK%RAD3(:)-TPK%K106(:& +&)*TPK%RAD4(:)-TPK%K107(:)*TPK%RAD5(:)-TPK%K108(:)*TPK%RAD6(:)-TPK%K109(:)*TPK%& +&RAD7(:)-TPK%K126(:)*TPK%RO26(:)-TPK%K127(:)*TPK%RO28(:)-TPK%K128(:)*TPK%RO239(& +&:)-TPK%K129(:)*TPK%RO248(:)-TPK%K130(:)*TPK%RO250(:)-TPK%K131(:)*TPK%RO254(:)-& +&TPK%K132(:)*TPK%RO255(:)-TPK%K133(:)*TPK%RO257(:)-TPK%K134(:)*TPK%RO258(:)-TPK& +&%K316(:)*TPK%RO256(:)-TPK%K321(:)*TPK%RAD8(:)-TPK%KTC4(:)-TPK%KTR4(:) +! +!NO2/O3=+K005*<NO>-K006*<NO2> + PJAC(:,2,3)=+TPK%K005(:)*PCONC(:,1)-TPK%K006(:)*PCONC(:,2) +! +!NO2/HONO=+0.1*K020+K039*<OH> + PJAC(:,2,4)=+0.1*TPK%K020(:)+TPK%K039(:)*PCONC(:,15) +! +!NO2/HNO3=0.0 +! +!NO2/HNO4=+K028+K029*<OH> + PJAC(:,2,6)=+TPK%K028(:)+TPK%K029(:)*PCONC(:,15) +! +!NO2/N2O5=+K010 + PJAC(:,2,7)=+TPK%K010(:) +! +!NO2/NO3=+2.*K007*<NO>-K009*<NO2>+K012*<NO2>-K012*<NO2>+K014+0.8*K033*<HO2>+K04 +!0*<OH>+2.*K041*<NO3>+2.*K041*<NO3> + PJAC(:,2,8)=+2.*TPK%K007(:)*PCONC(:,1)-TPK%K009(:)*PCONC(:,2)+TPK%K012(:)*PCON& +&C(:,2)-TPK%K012(:)*PCONC(:,2)+TPK%K014(:)+0.8*TPK%K033(:)*PCONC(:,10)+TPK%K040& +&(:)*PCONC(:,15)+2.*TPK%K041(:)*PCONC(:,8)+2.*TPK%K041(:)*PCONC(:,8) ! -!WR_ORA1/WR_HCHO=+KR19*<WR_OH> - PJAC(:,83,82)=+TPK%KR19(:)*PCONC(:,77) +!NO2/NH3=0.0 ! -!WR_ORA1/WR_ORA1=-KTR37-KR20*<WR_OH> - PJAC(:,83,83)=-TPK%KTR37(:)-TPK%KR20(:)*PCONC(:,77) +!NO2/HO2=+K026*<NO>-K027*<NO2>+0.8*K033*<NO3>+K118*<RO23>+K158*<RO211>+K161*<RO +!212>+K185*<RO219>+K203*<RO225>+K212*<RO228>+K295*<RO252> + PJAC(:,2,10)=+TPK%K026(:)*PCONC(:,1)-TPK%K027(:)*PCONC(:,2)+0.8*TPK%K033(:)*PC& +&ONC(:,8)+TPK%K118(:)*TPK%RO23(:)+TPK%K158(:)*TPK%RO211(:)+TPK%K161(:)*TPK%RO21& +&2(:)+TPK%K185(:)*TPK%RO219(:)+TPK%K203(:)*TPK%RO225(:)+TPK%K212(:)*TPK%RO228(:& +&)+TPK%K295(:)*TPK%RO252(:) ! -!WR_ORA1/WR_ORA2=0.0 +!NO2/CO=0.0 ! -!WR_ORA1/WR_MO2=0.0 +!NO2/H2O2=0.0 ! -!WR_ORA1/WR_OP1=0.0 +!NO2/SO2=0.0 ! -!WR_ORA1/WR_ASO3=0.0 +!NO2/H2SO4=0.0 ! -!WR_ORA1/WR_ASO4=0.0 +!NO2/OH=-K022*<NO2>+K029*<HNO4>+K039*<HONO>+K040*<NO3> + PJAC(:,2,15)=-TPK%K022(:)*PCONC(:,2)+TPK%K029(:)*PCONC(:,6)+TPK%K039(:)*PCONC(& +&:,4)+TPK%K040(:)*PCONC(:,8) ! -!WR_ORA1/WR_ASO5=0.0 +!NO2/ETHE=0.0 ! -!WR_ORA1/WR_AHSO5=0.0 +!NO2/OLEL=0.0 ! -!WR_ORA1/WR_AHMS=+KR23*<WR_OH> - PJAC(:,83,91)=+TPK%KR23(:)*PCONC(:,77) +!NO2/OLEH=0.0 ! -!WR_ORA2/O3=0.0 +!NO2/ALKL=0.0 ! -!WR_ORA2/H2O2=0.0 +!NO2/ALKM=0.0 ! -!WR_ORA2/NO=0.0 +!NO2/ALKH=0.0 ! -!WR_ORA2/NO2=0.0 +!NO2/AROH=0.0 ! -!WR_ORA2/NO3=0.0 +!NO2/AROL=0.0 ! -!WR_ORA2/N2O5=0.0 +!NO2/AROO=0.0 ! -!WR_ORA2/HONO=0.0 +!NO2/ARAL=0.0 ! -!WR_ORA2/HNO3=0.0 +!NO2/ARAC=0.0 ! -!WR_ORA2/HNO4=0.0 +!NO2/PAH=0.0 ! -!WR_ORA2/NH3=0.0 +!NO2/HCHO=0.0 ! -!WR_ORA2/SO2=0.0 +!NO2/ALD2=0.0 ! -!WR_ORA2/SULF=0.0 +!NO2/KETL=0.0 ! -!WR_ORA2/CO=0.0 +!NO2/KETH=0.0 ! -!WR_ORA2/OH=0.0 +!NO2/MEOH=0.0 ! -!WR_ORA2/HO2=0.0 +!NO2/ETOH=0.0 ! -!WR_ORA2/CH4=0.0 +!NO2/ALCH=0.0 ! -!WR_ORA2/ETH=0.0 +!NO2/ISOP=0.0 ! -!WR_ORA2/ALKA=0.0 +!NO2/BIOL=0.0 ! -!WR_ORA2/ALKE=0.0 +!NO2/BIOH=0.0 ! -!WR_ORA2/BIO=0.0 +!NO2/MTBE=0.0 ! -!WR_ORA2/ARO=0.0 +!NO2/MVK=0.0 ! -!WR_ORA2/HCHO=0.0 +!NO2/MCR=0.0 ! -!WR_ORA2/ALD=0.0 +!NO2/MGLY=0.0 ! -!WR_ORA2/KET=0.0 +!NO2/GLY=0.0 ! -!WR_ORA2/CARBO=0.0 +!NO2/ORA1=0.0 ! -!WR_ORA2/ONIT=0.0 +!NO2/ORA2=0.0 ! -!WR_ORA2/PAN=0.0 +!NO2/ACID=0.0 ! -!WR_ORA2/OP1=0.0 +!NO2/UR28=0.0 ! -!WR_ORA2/OP2=0.0 +!NO2/UR21=0.0 ! -!WR_ORA2/ORA1=0.0 +!NO2/URG2=0.0 ! -!WR_ORA2/ORA2=+KTR18 - PJAC(:,84,31)=+TPK%KTR18(:) +!NO2/UR26=0.0 ! -!WR_ORA2/MO2=0.0 +!NO2/RPG2=0.0 ! -!WR_ORA2/ALKAP=0.0 +!NO2/RP18=0.0 ! -!WR_ORA2/ALKEP=0.0 +!NO2/RPG3=0.0 ! -!WR_ORA2/BIOP=0.0 +!NO2/URG4=0.0 ! -!WR_ORA2/PHO=0.0 +!NO2/UR8=0.0 ! -!WR_ORA2/ADD=0.0 +!NO2/UR17=0.0 ! -!WR_ORA2/AROP=0.0 +!NO2/UR7=0.0 ! -!WR_ORA2/CARBOP=0.0 +!NO2/RPR3=0.0 ! -!WR_ORA2/OLN=0.0 +!NO2/URG6=0.0 ! -!WR_ORA2/XO2=0.0 +!NO2/UR22=0.0 ! -!WR_ORA2/WC_O3=0.0 +!NO2/URG7=0.0 ! -!WR_ORA2/WC_H2O2=0.0 +!NO2/RPR4=0.0 ! -!WR_ORA2/WC_NO=0.0 +!NO2/RPR7=0.0 ! -!WR_ORA2/WC_NO2=0.0 +!NO2/RPG7=0.0 ! -!WR_ORA2/WC_NO3=0.0 +!NO2/URG8=0.0 ! -!WR_ORA2/WC_N2O5=0.0 +!NO2/UR19=0.0 ! -!WR_ORA2/WC_HONO=0.0 +!NO2/URG9=0.0 ! -!WR_ORA2/WC_HNO3=0.0 +!NO2/AP7=0.0 ! -!WR_ORA2/WC_HNO4=0.0 +!NO2/URG10=0.0 ! -!WR_ORA2/WC_NH3=0.0 +!NO2/RPR1=0.0 ! -!WR_ORA2/WC_OH=0.0 +!NO2/RPR5=0.0 ! -!WR_ORA2/WC_HO2=0.0 +!NO2/RPR8=0.0 ! -!WR_ORA2/WC_CO2=0.0 +!NO2/RP10=0.0 ! -!WR_ORA2/WC_SO2=0.0 +!NO2/RP11=0.0 ! -!WR_ORA2/WC_SULF=0.0 +!NO2/RP16=0.0 ! -!WR_ORA2/WC_HCHO=0.0 +!NO2/RPRL=0.0 ! -!WR_ORA2/WC_ORA1=0.0 +!NO2/APAN=+1.0000000*K139 + PJAC(:,2,76)=+1.0000000*TPK%K139(:) ! -!WR_ORA2/WC_ORA2=0.0 +!NO2/PAN1=+K135 + PJAC(:,2,77)=+TPK%K135(:) ! -!WR_ORA2/WC_MO2=0.0 +!NO2/PAN2=+K136 + PJAC(:,2,78)=+TPK%K136(:) ! -!WR_ORA2/WC_OP1=0.0 +!NO2/PAN3=+K137 + PJAC(:,2,79)=+TPK%K137(:) ! -!WR_ORA2/WC_ASO3=0.0 +!NO2/PAN4=+K141 + PJAC(:,2,80)=+TPK%K141(:) ! -!WR_ORA2/WC_ASO4=0.0 +!NO2/PAN6=+K140 + PJAC(:,2,81)=+TPK%K140(:) ! -!WR_ORA2/WC_ASO5=0.0 +!NO2/PAN7=+K343 + PJAC(:,2,82)=+TPK%K343(:) ! -!WR_ORA2/WC_AHSO5=0.0 +!NO2/PAN8=+K317 + PJAC(:,2,83)=+TPK%K317(:) ! -!WR_ORA2/WC_AHMS=0.0 +!NO2/PN10=+K138 + PJAC(:,2,84)=+TPK%K138(:) ! -!WR_ORA2/WR_O3=0.0 +!NO2/RO2T=+K117*<RO23>+K157*<RO211>+K160*<RO212>+K184*<RO219>+K202*<RO225>+K211 +!*<RO228>+K296*<RO252> + PJAC(:,2,85)=+TPK%K117(:)*TPK%RO23(:)+TPK%K157(:)*TPK%RO211(:)+TPK%K160(:)*TPK& +&%RO212(:)+TPK%K184(:)*TPK%RO219(:)+TPK%K202(:)*TPK%RO225(:)+TPK%K211(:)*TPK%RO& +&228(:)+TPK%K296(:)*TPK%RO252(:) ! -!WR_ORA2/WR_H2O2=0.0 +!NO2/RO21=+K110*<NO> + PJAC(:,2,86)=+TPK%K110(:)*PCONC(:,1) ! -!WR_ORA2/WR_NO=0.0 +!NO2/RO25=+TPK%CF4*K122*<NO> + PJAC(:,2,87)=+TPK%CF4*TPK%K122(:)*PCONC(:,1) ! -!WR_ORA2/WR_NO2=0.0 +!NO2/WC_O3=0.0 ! -!WR_ORA2/WR_NO3=0.0 +!NO2/WC_H2O2=0.0 ! -!WR_ORA2/WR_N2O5=0.0 +!NO2/WC_NO=0.0 ! -!WR_ORA2/WR_HONO=0.0 +!NO2/WC_NO2=+KTC35 + PJAC(:,2,91)=+TPK%KTC35(:) ! -!WR_ORA2/WR_HNO3=0.0 +!NO2/WC_NO3=0.0 ! -!WR_ORA2/WR_HNO4=0.0 +!NO2/WC_N2O5=0.0 ! -!WR_ORA2/WR_NH3=0.0 +!NO2/WC_HONO=0.0 ! -!WR_ORA2/WR_OH=0.0 +!NO2/WC_HNO3=0.0 ! -!WR_ORA2/WR_HO2=0.0 +!NO2/WC_HNO4=0.0 ! -!WR_ORA2/WR_CO2=0.0 +!NO2/WC_NH3=0.0 ! -!WR_ORA2/WR_SO2=0.0 +!NO2/WC_OH=0.0 ! -!WR_ORA2/WR_SULF=0.0 +!NO2/WC_HO2=0.0 ! -!WR_ORA2/WR_HCHO=0.0 +!NO2/WC_CO2=0.0 ! -!WR_ORA2/WR_ORA1=0.0 +!NO2/WC_SO2=0.0 ! -!WR_ORA2/WR_ORA2=-KTR38 - PJAC(:,84,84)=-TPK%KTR38(:) +!NO2/WC_H2SO4=0.0 ! -!WR_ORA2/WR_MO2=0.0 +!NO2/WC_RO21=0.0 ! -!WR_ORA2/WR_OP1=0.0 +!NO2/WC_RO25=0.0 ! -!WR_ORA2/WR_ASO3=0.0 +!NO2/WC_MEOH=0.0 ! -!WR_ORA2/WR_ASO4=0.0 +!NO2/WC_ETOH=0.0 ! -!WR_ORA2/WR_ASO5=0.0 +!NO2/WC_ALCH=0.0 ! -!WR_ORA2/WR_AHSO5=0.0 +!NO2/WC_HCHO=0.0 ! -!WR_ORA2/WR_AHMS=0.0 +!NO2/WC_ALD2=0.0 ! -!WR_MO2/O3=0.0 +!NO2/WC_GLY=0.0 ! -!WR_MO2/H2O2=0.0 +!NO2/WC_MGLY=0.0 ! -!WR_MO2/NO=0.0 +!NO2/WC_KETL=0.0 ! -!WR_MO2/NO2=0.0 +!NO2/WC_ORA1=0.0 ! -!WR_MO2/NO3=0.0 +!NO2/WC_ORA2=0.0 ! -!WR_MO2/N2O5=0.0 +!NO2/WC_ACID=0.0 ! -!WR_MO2/HONO=0.0 +!NO2/WC_RP16=0.0 ! -!WR_MO2/HNO3=0.0 +!NO2/WC_UR21=0.0 ! -!WR_MO2/HNO4=0.0 +!NO2/WC_UR28=0.0 ! -!WR_MO2/NH3=0.0 +!NO2/WC_ACID2=0.0 ! -!WR_MO2/SO2=0.0 +!NO2/WC_ASO3=0.0 ! -!WR_MO2/SULF=0.0 +!NO2/WC_ASO4=0.0 ! -!WR_MO2/CO=0.0 +!NO2/WC_ASO5=0.0 ! -!WR_MO2/OH=0.0 +!NO2/WC_AHSO5=0.0 ! -!WR_MO2/HO2=0.0 +!NO2/WC_AHMS=0.0 ! -!WR_MO2/CH4=0.0 +!NO2/WR_O3=0.0 ! -!WR_MO2/ETH=0.0 +!NO2/WR_H2O2=0.0 ! -!WR_MO2/ALKA=0.0 +!NO2/WR_NO=0.0 ! -!WR_MO2/ALKE=0.0 +!NO2/WR_NO2=+KTR35 + PJAC(:,2,128)=+TPK%KTR35(:) ! -!WR_MO2/BIO=0.0 +!NO2/WR_NO3=0.0 ! -!WR_MO2/ARO=0.0 +!NO2/WR_N2O5=0.0 ! -!WR_MO2/HCHO=0.0 +!NO2/WR_HONO=0.0 ! -!WR_MO2/ALD=0.0 +!NO2/WR_HNO3=0.0 ! -!WR_MO2/KET=0.0 +!NO2/WR_HNO4=0.0 ! -!WR_MO2/CARBO=0.0 +!NO2/WR_NH3=0.0 ! -!WR_MO2/ONIT=0.0 +!NO2/WR_OH=0.0 ! -!WR_MO2/PAN=0.0 +!NO2/WR_HO2=0.0 ! -!WR_MO2/OP1=0.0 +!NO2/WR_CO2=0.0 ! -!WR_MO2/OP2=0.0 +!NO2/WR_SO2=0.0 ! -!WR_MO2/ORA1=0.0 +!NO2/WR_H2SO4=0.0 ! -!WR_MO2/ORA2=0.0 +!NO2/WR_RO21=0.0 ! -!WR_MO2/MO2=+KTR19 - PJAC(:,85,32)=+TPK%KTR19(:) +!NO2/WR_RO25=0.0 ! -!WR_MO2/ALKAP=0.0 +!NO2/WR_MEOH=0.0 ! -!WR_MO2/ALKEP=0.0 +!NO2/WR_ETOH=0.0 ! -!WR_MO2/BIOP=0.0 +!NO2/WR_ALCH=0.0 ! -!WR_MO2/PHO=0.0 +!NO2/WR_HCHO=0.0 ! -!WR_MO2/ADD=0.0 +!NO2/WR_ALD2=0.0 ! -!WR_MO2/AROP=0.0 +!NO2/WR_GLY=0.0 ! -!WR_MO2/CARBOP=0.0 +!NO2/WR_MGLY=0.0 ! -!WR_MO2/OLN=0.0 +!NO2/WR_KETL=0.0 ! -!WR_MO2/XO2=0.0 +!NO2/WR_ORA1=0.0 ! -!WR_MO2/WC_O3=0.0 +!NO2/WR_ORA2=0.0 ! -!WR_MO2/WC_H2O2=0.0 +!NO2/WR_ACID=0.0 ! -!WR_MO2/WC_NO=0.0 +!NO2/WR_RP16=0.0 ! -!WR_MO2/WC_NO2=0.0 +!NO2/WR_UR21=0.0 ! -!WR_MO2/WC_NO3=0.0 +!NO2/WR_UR28=0.0 ! -!WR_MO2/WC_N2O5=0.0 +!NO2/WR_ACID2=0.0 ! -!WR_MO2/WC_HONO=0.0 +!NO2/WR_ASO3=0.0 ! -!WR_MO2/WC_HNO3=0.0 +!NO2/WR_ASO4=0.0 ! -!WR_MO2/WC_HNO4=0.0 +!NO2/WR_ASO5=0.0 ! -!WR_MO2/WC_NH3=0.0 +!NO2/WR_AHSO5=0.0 ! -!WR_MO2/WC_OH=0.0 +!NO2/WR_AHMS=0.0 ! -!WR_MO2/WC_HO2=0.0 +!O3/NO=-K005*<O3> + PJAC(:,3,1)=-TPK%K005(:)*PCONC(:,3) ! -!WR_MO2/WC_CO2=0.0 +!O3/NO2=-K006*<O3> + PJAC(:,3,2)=-TPK%K006(:)*PCONC(:,3) ! -!WR_MO2/WC_SO2=0.0 +!O3/O3=-K005*<NO>-K006*<NO2>-K015-K016-K025*<OH>-K030*<HO2>-K034*<O>-K051*<ETHE +!>-K056*<OLEL>-K066*<ISOP>-K076*<OLEH>-K086*<BIOL>-K090*<BIOH>-K281*<MVK>-K282* +!<MCR>-KTC1-KTR1 + PJAC(:,3,3)=-TPK%K005(:)*PCONC(:,1)-TPK%K006(:)*PCONC(:,2)-TPK%K015(:)-TPK%K01& +&6(:)-TPK%K025(:)*PCONC(:,15)-TPK%K030(:)*PCONC(:,10)-TPK%K034(:)*TPK%O(:)-TPK%& +&K051(:)*PCONC(:,16)-TPK%K056(:)*PCONC(:,17)-TPK%K066(:)*PCONC(:,35)-TPK%K076(:& +&)*PCONC(:,18)-TPK%K086(:)*PCONC(:,36)-TPK%K090(:)*PCONC(:,37)-TPK%K281(:)*PCON& +&C(:,39)-TPK%K282(:)*PCONC(:,40)-TPK%KTC1(:)-TPK%KTR1(:) ! -!WR_MO2/WC_SULF=0.0 +!O3/HONO=0.0 ! -!WR_MO2/WC_HCHO=0.0 +!O3/HNO3=0.0 ! -!WR_MO2/WC_ORA1=0.0 +!O3/HNO4=0.0 ! -!WR_MO2/WC_ORA2=0.0 +!O3/N2O5=0.0 ! -!WR_MO2/WC_MO2=0.0 +!O3/NO3=+K081*<ARAL> + PJAC(:,3,8)=+TPK%K081(:)*PCONC(:,25) ! -!WR_MO2/WC_OP1=0.0 +!O3/NH3=0.0 ! -!WR_MO2/WC_ASO3=0.0 +!O3/HO2=-K030*<O3>+K142*<RO26>+K148*<RO28>+K166*<RO239>+K279*<RO248>+K289*<RO25 +!0>+K301*<RO254>+K310*<RO255>+K318*<RO256>+K332*<RO257>+K341*<RO258> + PJAC(:,3,10)=-TPK%K030(:)*PCONC(:,3)+TPK%K142(:)*TPK%RO26(:)+TPK%K148(:)*TPK%R& +&O28(:)+TPK%K166(:)*TPK%RO239(:)+TPK%K279(:)*TPK%RO248(:)+TPK%K289(:)*TPK%RO250& +&(:)+TPK%K301(:)*TPK%RO254(:)+TPK%K310(:)*TPK%RO255(:)+TPK%K318(:)*TPK%RO256(:)& +&+TPK%K332(:)*TPK%RO257(:)+TPK%K341(:)*TPK%RO258(:) ! -!WR_MO2/WC_ASO4=0.0 +!O3/CO=0.0 ! -!WR_MO2/WC_ASO5=0.0 +!O3/H2O2=0.0 ! -!WR_MO2/WC_AHSO5=0.0 +!O3/SO2=0.0 ! -!WR_MO2/WC_AHMS=0.0 +!O3/H2SO4=0.0 ! -!WR_MO2/WR_O3=0.0 +!O3/OH=-K025*<O3>+TPK%CF39*K082*<ARAL>+K303*<RPR5>+1.0000011*K306*<RPRL>+K322*< +!RPR7>+1.0000005*K323*<RPG7>+K326*<RP11>+1.0000000*K334*<RPG3>+1.0000000*K335*< +!RPG2>+K337*<RP18> + PJAC(:,3,15)=-TPK%K025(:)*PCONC(:,3)+TPK%CF39*TPK%K082(:)*PCONC(:,25)+TPK%K303& +&(:)*PCONC(:,70)+1.0000011*TPK%K306(:)*PCONC(:,75)+TPK%K322(:)*PCONC(:,62)+1.00& +&00005*TPK%K323(:)*PCONC(:,63)+TPK%K326(:)*PCONC(:,73)+1.0000000*TPK%K334(:)*PC& +&ONC(:,52)+1.0000000*TPK%K335(:)*PCONC(:,50)+TPK%K337(:)*PCONC(:,51) ! -!WR_MO2/WR_H2O2=0.0 +!O3/ETHE=-K051*<O3> + PJAC(:,3,16)=-TPK%K051(:)*PCONC(:,3) ! -!WR_MO2/WR_NO=0.0 +!O3/OLEL=-K056*<O3> + PJAC(:,3,17)=-TPK%K056(:)*PCONC(:,3) ! -!WR_MO2/WR_NO2=0.0 +!O3/OLEH=-K076*<O3> + PJAC(:,3,18)=-TPK%K076(:)*PCONC(:,3) ! -!WR_MO2/WR_NO3=0.0 +!O3/ALKL=0.0 ! -!WR_MO2/WR_N2O5=0.0 +!O3/ALKM=0.0 ! -!WR_MO2/WR_HONO=0.0 +!O3/ALKH=0.0 ! -!WR_MO2/WR_HNO3=0.0 +!O3/AROH=0.0 ! -!WR_MO2/WR_HNO4=0.0 +!O3/AROL=0.0 ! -!WR_MO2/WR_NH3=0.0 +!O3/AROO=0.0 ! -!WR_MO2/WR_OH=0.0 +!O3/ARAL=+K081*<NO3>+TPK%CF39*K082*<OH> + PJAC(:,3,25)=+TPK%K081(:)*PCONC(:,8)+TPK%CF39*TPK%K082(:)*PCONC(:,15) ! -!WR_MO2/WR_HO2=0.0 +!O3/ARAC=0.0 ! -!WR_MO2/WR_CO2=0.0 +!O3/PAH=0.0 ! -!WR_MO2/WR_SO2=-KR18*<WR_MO2> - PJAC(:,85,80)=-TPK%KR18(:)*PCONC(:,85) +!O3/HCHO=0.0 ! -!WR_MO2/WR_SULF=0.0 +!O3/ALD2=0.0 ! -!WR_MO2/WR_HCHO=0.0 +!O3/KETL=0.0 ! -!WR_MO2/WR_ORA1=0.0 +!O3/KETH=0.0 ! -!WR_MO2/WR_ORA2=0.0 +!O3/MEOH=0.0 ! -!WR_MO2/WR_MO2=-KTR39-KR17*<WR_MO2>-KR17*<WR_MO2>-KR17*<WR_MO2>-KR17*<WR_MO2>-K -!R18*<WR_SO2> - PJAC(:,85,85)=-TPK%KTR39(:)-TPK%KR17(:)*PCONC(:,85)-TPK%KR17(:)*PCONC(:,85)-TP& -&K%KR17(:)*PCONC(:,85)-TPK%KR17(:)*PCONC(:,85)-TPK%KR18(:)*PCONC(:,80) +!O3/ETOH=0.0 ! -!WR_MO2/WR_OP1=0.0 +!O3/ALCH=0.0 ! -!WR_MO2/WR_ASO3=0.0 +!O3/ISOP=-K066*<O3> + PJAC(:,3,35)=-TPK%K066(:)*PCONC(:,3) ! -!WR_MO2/WR_ASO4=0.0 +!O3/BIOL=-K086*<O3> + PJAC(:,3,36)=-TPK%K086(:)*PCONC(:,3) ! -!WR_MO2/WR_ASO5=0.0 +!O3/BIOH=-K090*<O3> + PJAC(:,3,37)=-TPK%K090(:)*PCONC(:,3) ! -!WR_MO2/WR_AHSO5=0.0 +!O3/MTBE=0.0 ! -!WR_MO2/WR_AHMS=0.0 +!O3/MVK=-K281*<O3> + PJAC(:,3,39)=-TPK%K281(:)*PCONC(:,3) ! -RETURN -END SUBROUTINE SUBJ16 +!O3/MCR=-K282*<O3> + PJAC(:,3,40)=-TPK%K282(:)*PCONC(:,3) ! -SUBROUTINE SUBJ17 +!O3/MGLY=0.0 ! -!Indices 86 a 90 +!O3/GLY=0.0 ! +!O3/ORA1=0.0 ! -!WR_OP1/O3=0.0 +!O3/ORA2=0.0 ! -!WR_OP1/H2O2=0.0 +!O3/ACID=0.0 ! -!WR_OP1/NO=0.0 +!O3/UR28=0.0 ! -!WR_OP1/NO2=0.0 +!O3/UR21=0.0 ! -!WR_OP1/NO3=0.0 +!O3/URG2=0.0 ! -!WR_OP1/N2O5=0.0 +!O3/UR26=0.0 ! -!WR_OP1/HONO=0.0 +!O3/RPG2=+1.0000000*K335*<OH> + PJAC(:,3,50)=+1.0000000*TPK%K335(:)*PCONC(:,15) ! -!WR_OP1/HNO3=0.0 +!O3/RP18=+K337*<OH> + PJAC(:,3,51)=+TPK%K337(:)*PCONC(:,15) ! -!WR_OP1/HNO4=0.0 +!O3/RPG3=+1.0000000*K334*<OH> + PJAC(:,3,52)=+1.0000000*TPK%K334(:)*PCONC(:,15) ! -!WR_OP1/NH3=0.0 +!O3/URG4=0.0 ! -!WR_OP1/SO2=0.0 +!O3/UR8=0.0 ! -!WR_OP1/SULF=0.0 +!O3/UR17=0.0 ! -!WR_OP1/CO=0.0 +!O3/UR7=0.0 ! -!WR_OP1/OH=0.0 +!O3/RPR3=0.0 ! -!WR_OP1/HO2=0.0 +!O3/URG6=0.0 ! -!WR_OP1/CH4=0.0 +!O3/UR22=0.0 ! -!WR_OP1/ETH=0.0 +!O3/URG7=0.0 ! -!WR_OP1/ALKA=0.0 +!O3/RPR4=0.0 ! -!WR_OP1/ALKE=0.0 +!O3/RPR7=+K322*<OH> + PJAC(:,3,62)=+TPK%K322(:)*PCONC(:,15) ! -!WR_OP1/BIO=0.0 +!O3/RPG7=+1.0000005*K323*<OH> + PJAC(:,3,63)=+1.0000005*TPK%K323(:)*PCONC(:,15) ! -!WR_OP1/ARO=0.0 +!O3/URG8=0.0 ! -!WR_OP1/HCHO=0.0 +!O3/UR19=0.0 ! -!WR_OP1/ALD=0.0 +!O3/URG9=0.0 ! -!WR_OP1/KET=0.0 +!O3/AP7=0.0 ! -!WR_OP1/CARBO=0.0 +!O3/URG10=0.0 ! -!WR_OP1/ONIT=0.0 +!O3/RPR1=0.0 ! -!WR_OP1/PAN=0.0 +!O3/RPR5=+K303*<OH> + PJAC(:,3,70)=+TPK%K303(:)*PCONC(:,15) ! -!WR_OP1/OP1=+KTR20 - PJAC(:,86,28)=+TPK%KTR20(:) +!O3/RPR8=0.0 ! -!WR_OP1/OP2=0.0 +!O3/RP10=0.0 ! -!WR_OP1/ORA1=0.0 +!O3/RP11=+K326*<OH> + PJAC(:,3,73)=+TPK%K326(:)*PCONC(:,15) ! -!WR_OP1/ORA2=0.0 +!O3/RP16=0.0 ! -!WR_OP1/MO2=0.0 +!O3/RPRL=+1.0000011*K306*<OH> + PJAC(:,3,75)=+1.0000011*TPK%K306(:)*PCONC(:,15) ! -!WR_OP1/ALKAP=0.0 +!O3/APAN=0.0 ! -!WR_OP1/ALKEP=0.0 +!O3/PAN1=0.0 ! -!WR_OP1/BIOP=0.0 +!O3/PAN2=0.0 ! -!WR_OP1/PHO=0.0 +!O3/PAN3=0.0 ! -!WR_OP1/ADD=0.0 +!O3/PAN4=0.0 ! -!WR_OP1/AROP=0.0 +!O3/PAN6=0.0 ! -!WR_OP1/CARBOP=0.0 +!O3/PAN7=0.0 ! -!WR_OP1/OLN=0.0 +!O3/PAN8=0.0 ! -!WR_OP1/XO2=0.0 +!O3/PN10=0.0 ! -!WR_OP1/WC_O3=0.0 +!O3/RO2T=0.0 ! -!WR_OP1/WC_H2O2=0.0 +!O3/RO21=0.0 ! -!WR_OP1/WC_NO=0.0 +!O3/RO25=0.0 ! -!WR_OP1/WC_NO2=0.0 +!O3/WC_O3=+KTC32 + PJAC(:,3,88)=+TPK%KTC32(:) ! -!WR_OP1/WC_NO3=0.0 +!O3/WC_H2O2=0.0 ! -!WR_OP1/WC_N2O5=0.0 +!O3/WC_NO=0.0 ! -!WR_OP1/WC_HONO=0.0 +!O3/WC_NO2=0.0 ! -!WR_OP1/WC_HNO3=0.0 +!O3/WC_NO3=0.0 ! -!WR_OP1/WC_HNO4=0.0 +!O3/WC_N2O5=0.0 ! -!WR_OP1/WC_NH3=0.0 +!O3/WC_HONO=0.0 ! -!WR_OP1/WC_OH=0.0 +!O3/WC_HNO3=0.0 ! -!WR_OP1/WC_HO2=0.0 +!O3/WC_HNO4=0.0 ! -!WR_OP1/WC_CO2=0.0 +!O3/WC_NH3=0.0 ! -!WR_OP1/WC_SO2=0.0 +!O3/WC_OH=0.0 ! -!WR_OP1/WC_SULF=0.0 +!O3/WC_HO2=0.0 ! -!WR_OP1/WC_HCHO=0.0 +!O3/WC_CO2=0.0 ! -!WR_OP1/WC_ORA1=0.0 +!O3/WC_SO2=0.0 ! -!WR_OP1/WC_ORA2=0.0 +!O3/WC_H2SO4=0.0 ! -!WR_OP1/WC_MO2=0.0 +!O3/WC_RO21=0.0 ! -!WR_OP1/WC_OP1=0.0 +!O3/WC_RO25=0.0 ! -!WR_OP1/WC_ASO3=0.0 +!O3/WC_MEOH=0.0 ! -!WR_OP1/WC_ASO4=0.0 +!O3/WC_ETOH=0.0 ! -!WR_OP1/WC_ASO5=0.0 +!O3/WC_ALCH=0.0 ! -!WR_OP1/WC_AHSO5=0.0 +!O3/WC_HCHO=0.0 ! -!WR_OP1/WC_AHMS=0.0 +!O3/WC_ALD2=0.0 ! -!WR_OP1/WR_O3=0.0 +!O3/WC_GLY=0.0 ! -!WR_OP1/WR_H2O2=0.0 +!O3/WC_MGLY=0.0 ! -!WR_OP1/WR_NO=0.0 +!O3/WC_KETL=0.0 ! -!WR_OP1/WR_NO2=0.0 +!O3/WC_ORA1=0.0 ! -!WR_OP1/WR_NO3=0.0 +!O3/WC_ORA2=0.0 ! -!WR_OP1/WR_N2O5=0.0 +!O3/WC_ACID=0.0 ! -!WR_OP1/WR_HONO=0.0 +!O3/WC_RP16=0.0 ! -!WR_OP1/WR_HNO3=0.0 +!O3/WC_UR21=0.0 ! -!WR_OP1/WR_HNO4=0.0 +!O3/WC_UR28=0.0 ! -!WR_OP1/WR_NH3=0.0 +!O3/WC_ACID2=0.0 ! -!WR_OP1/WR_OH=0.0 +!O3/WC_ASO3=0.0 ! -!WR_OP1/WR_HO2=0.0 +!O3/WC_ASO4=0.0 ! -!WR_OP1/WR_CO2=0.0 +!O3/WC_ASO5=0.0 ! -!WR_OP1/WR_SO2=+KR18*<WR_MO2> - PJAC(:,86,80)=+TPK%KR18(:)*PCONC(:,85) +!O3/WC_AHSO5=0.0 ! -!WR_OP1/WR_SULF=0.0 +!O3/WC_AHMS=0.0 ! -!WR_OP1/WR_HCHO=0.0 +!O3/WR_O3=+KTR32 + PJAC(:,3,125)=+TPK%KTR32(:) ! -!WR_OP1/WR_ORA1=0.0 +!O3/WR_H2O2=0.0 ! -!WR_OP1/WR_ORA2=0.0 +!O3/WR_NO=0.0 ! -!WR_OP1/WR_MO2=+KR18*<WR_SO2> - PJAC(:,86,85)=+TPK%KR18(:)*PCONC(:,80) +!O3/WR_NO2=0.0 ! -!WR_OP1/WR_OP1=-KTR40 - PJAC(:,86,86)=-TPK%KTR40(:) +!O3/WR_NO3=0.0 ! -!WR_OP1/WR_ASO3=0.0 +!O3/WR_N2O5=0.0 ! -!WR_OP1/WR_ASO4=0.0 +!O3/WR_HONO=0.0 ! -!WR_OP1/WR_ASO5=0.0 +!O3/WR_HNO3=0.0 ! -!WR_OP1/WR_AHSO5=0.0 +!O3/WR_HNO4=0.0 ! -!WR_OP1/WR_AHMS=0.0 +!O3/WR_NH3=0.0 ! -!WR_ASO3/O3=0.0 +!O3/WR_OH=0.0 ! -!WR_ASO3/H2O2=0.0 +!O3/WR_HO2=0.0 ! -!WR_ASO3/NO=0.0 +!O3/WR_CO2=0.0 ! -!WR_ASO3/NO2=0.0 +!O3/WR_SO2=0.0 ! -!WR_ASO3/NO3=0.0 +!O3/WR_H2SO4=0.0 ! -!WR_ASO3/N2O5=0.0 +!O3/WR_RO21=0.0 ! -!WR_ASO3/HONO=0.0 +!O3/WR_RO25=0.0 ! -!WR_ASO3/HNO3=0.0 +!O3/WR_MEOH=0.0 ! -!WR_ASO3/HNO4=0.0 +!O3/WR_ETOH=0.0 ! -!WR_ASO3/NH3=0.0 +!O3/WR_ALCH=0.0 ! -!WR_ASO3/SO2=0.0 +!O3/WR_HCHO=0.0 ! -!WR_ASO3/SULF=0.0 +!O3/WR_ALD2=0.0 ! -!WR_ASO3/CO=0.0 +!O3/WR_GLY=0.0 ! -!WR_ASO3/OH=0.0 +!O3/WR_MGLY=0.0 ! -!WR_ASO3/HO2=0.0 +!O3/WR_KETL=0.0 ! -!WR_ASO3/CH4=0.0 +!O3/WR_ORA1=0.0 ! -!WR_ASO3/ETH=0.0 +!O3/WR_ORA2=0.0 ! -!WR_ASO3/ALKA=0.0 +!O3/WR_ACID=0.0 ! -!WR_ASO3/ALKE=0.0 +!O3/WR_RP16=0.0 ! -!WR_ASO3/BIO=0.0 +!O3/WR_UR21=0.0 ! -!WR_ASO3/ARO=0.0 +!O3/WR_UR28=0.0 ! -!WR_ASO3/HCHO=0.0 +!O3/WR_ACID2=0.0 ! -!WR_ASO3/ALD=0.0 +!O3/WR_ASO3=0.0 ! -!WR_ASO3/KET=0.0 +!O3/WR_ASO4=0.0 ! -!WR_ASO3/CARBO=0.0 +!O3/WR_ASO5=0.0 ! -!WR_ASO3/ONIT=0.0 +!O3/WR_AHSO5=0.0 ! -!WR_ASO3/PAN=0.0 +!O3/WR_AHMS=0.0 ! -!WR_ASO3/OP1=0.0 +!HONO/NO=+K019*<OH> + PJAC(:,4,1)=+TPK%K019(:)*PCONC(:,15) ! -!WR_ASO3/OP2=0.0 +!HONO/NO2=+0.5*K021*<H2O> + PJAC(:,4,2)=+0.5*TPK%K021(:)*TPK%H2O(:) ! -!WR_ASO3/ORA1=0.0 +!HONO/O3=0.0 ! -!WR_ASO3/ORA2=0.0 +!HONO/HONO=-K020-K039*<OH>-KTC7-KTR7 + PJAC(:,4,4)=-TPK%K020(:)-TPK%K039(:)*PCONC(:,15)-TPK%KTC7(:)-TPK%KTR7(:) ! -!WR_ASO3/MO2=0.0 +!HONO/HNO3=0.0 ! -!WR_ASO3/ALKAP=0.0 +!HONO/HNO4=0.0 ! -!WR_ASO3/ALKEP=0.0 +!HONO/N2O5=0.0 ! -!WR_ASO3/BIOP=0.0 +!HONO/NO3=0.0 ! -!WR_ASO3/PHO=0.0 +!HONO/NH3=0.0 ! -!WR_ASO3/ADD=0.0 +!HONO/HO2=0.0 ! -!WR_ASO3/AROP=0.0 +!HONO/CO=0.0 ! -!WR_ASO3/CARBOP=0.0 +!HONO/H2O2=0.0 ! -!WR_ASO3/OLN=0.0 +!HONO/SO2=0.0 ! -!WR_ASO3/XO2=0.0 +!HONO/H2SO4=0.0 ! -!WR_ASO3/WC_O3=0.0 +!HONO/OH=+K019*<NO>-K039*<HONO> + PJAC(:,4,15)=+TPK%K019(:)*PCONC(:,1)-TPK%K039(:)*PCONC(:,4) ! -!WR_ASO3/WC_H2O2=0.0 +!HONO/ETHE=0.0 ! -!WR_ASO3/WC_NO=0.0 +!HONO/OLEL=0.0 ! -!WR_ASO3/WC_NO2=0.0 +!HONO/OLEH=0.0 ! -!WR_ASO3/WC_NO3=0.0 +!HONO/ALKL=0.0 ! -!WR_ASO3/WC_N2O5=0.0 +!HONO/ALKM=0.0 ! -!WR_ASO3/WC_HONO=0.0 +!HONO/ALKH=0.0 ! -!WR_ASO3/WC_HNO3=0.0 +!HONO/AROH=0.0 ! -!WR_ASO3/WC_HNO4=0.0 +!HONO/AROL=0.0 ! -!WR_ASO3/WC_NH3=0.0 +!HONO/AROO=0.0 ! -!WR_ASO3/WC_OH=0.0 +!HONO/ARAL=0.0 ! -!WR_ASO3/WC_HO2=0.0 +!HONO/ARAC=0.0 ! -!WR_ASO3/WC_CO2=0.0 +!HONO/PAH=0.0 ! -!WR_ASO3/WC_SO2=0.0 +!HONO/HCHO=0.0 ! -!WR_ASO3/WC_SULF=0.0 +!HONO/ALD2=0.0 ! -!WR_ASO3/WC_HCHO=0.0 +!HONO/KETL=0.0 ! -!WR_ASO3/WC_ORA1=0.0 +!HONO/KETH=0.0 ! -!WR_ASO3/WC_ORA2=0.0 +!HONO/MEOH=0.0 ! -!WR_ASO3/WC_MO2=0.0 +!HONO/ETOH=0.0 ! -!WR_ASO3/WC_OP1=0.0 +!HONO/ALCH=0.0 ! -!WR_ASO3/WC_ASO3=0.0 +!HONO/ISOP=0.0 ! -!WR_ASO3/WC_ASO4=0.0 +!HONO/BIOL=0.0 ! -!WR_ASO3/WC_ASO5=0.0 +!HONO/BIOH=0.0 ! -!WR_ASO3/WC_AHSO5=0.0 +!HONO/MTBE=0.0 ! -!WR_ASO3/WC_AHMS=0.0 +!HONO/MVK=0.0 ! -!WR_ASO3/WR_O3=0.0 +!HONO/MCR=0.0 ! -!WR_ASO3/WR_H2O2=0.0 +!HONO/MGLY=0.0 ! -!WR_ASO3/WR_NO=0.0 +!HONO/GLY=0.0 ! -!WR_ASO3/WR_NO2=0.0 +!HONO/ORA1=0.0 ! -!WR_ASO3/WR_NO3=+KR16*<WR_SO2> - PJAC(:,87,71)=+TPK%KR16(:)*PCONC(:,80) +!HONO/ORA2=0.0 ! -!WR_ASO3/WR_N2O5=0.0 +!HONO/ACID=0.0 ! -!WR_ASO3/WR_HONO=0.0 +!HONO/UR28=0.0 ! -!WR_ASO3/WR_HNO3=0.0 +!HONO/UR21=0.0 ! -!WR_ASO3/WR_HNO4=0.0 +!HONO/URG2=0.0 ! -!WR_ASO3/WR_NH3=0.0 +!HONO/UR26=0.0 ! -!WR_ASO3/WR_OH=+KR7*<WR_SO2> - PJAC(:,87,77)=+TPK%KR7(:)*PCONC(:,80) +!HONO/RPG2=0.0 ! -!WR_ASO3/WR_HO2=0.0 +!HONO/RP18=0.0 ! -!WR_ASO3/WR_CO2=0.0 +!HONO/RPG3=0.0 ! -!WR_ASO3/WR_SO2=+KR7*<WR_OH>+KR16*<WR_NO3>+KR18*<WR_MO2> - PJAC(:,87,80)=+TPK%KR7(:)*PCONC(:,77)+TPK%KR16(:)*PCONC(:,71)+TPK%KR18(:)*PCON& -&C(:,85) +!HONO/URG4=0.0 ! -!WR_ASO3/WR_SULF=0.0 +!HONO/UR8=0.0 ! -!WR_ASO3/WR_HCHO=0.0 +!HONO/UR17=0.0 ! -!WR_ASO3/WR_ORA1=0.0 +!HONO/UR7=0.0 ! -!WR_ASO3/WR_ORA2=0.0 +!HONO/RPR3=0.0 ! -!WR_ASO3/WR_MO2=+KR18*<WR_SO2> - PJAC(:,87,85)=+TPK%KR18(:)*PCONC(:,80) +!HONO/URG6=0.0 ! -!WR_ASO3/WR_OP1=0.0 +!HONO/UR22=0.0 ! -!WR_ASO3/WR_ASO3=-KR24*<W_O2> - PJAC(:,87,87)=-TPK%KR24(:)*TPK%W_O2(:) +!HONO/URG7=0.0 ! -!WR_ASO3/WR_ASO4=0.0 +!HONO/RPR4=0.0 ! -!WR_ASO3/WR_ASO5=0.0 +!HONO/RPR7=0.0 ! -!WR_ASO3/WR_AHSO5=0.0 +!HONO/RPG7=0.0 ! -!WR_ASO3/WR_AHMS=0.0 +!HONO/URG8=0.0 ! -!WR_ASO4/O3=0.0 +!HONO/UR19=0.0 ! -!WR_ASO4/H2O2=0.0 +!HONO/URG9=0.0 ! -!WR_ASO4/NO=0.0 +!HONO/AP7=0.0 ! -!WR_ASO4/NO2=0.0 +!HONO/URG10=0.0 ! -!WR_ASO4/NO3=0.0 +!HONO/RPR1=0.0 ! -!WR_ASO4/N2O5=0.0 +!HONO/RPR5=0.0 ! -!WR_ASO4/HONO=0.0 +!HONO/RPR8=0.0 ! -!WR_ASO4/HNO3=0.0 +!HONO/RP10=0.0 ! -!WR_ASO4/HNO4=0.0 +!HONO/RP11=0.0 ! -!WR_ASO4/NH3=0.0 +!HONO/RP16=0.0 ! -!WR_ASO4/SO2=0.0 +!HONO/RPRL=0.0 ! -!WR_ASO4/SULF=0.0 +!HONO/APAN=0.0 ! -!WR_ASO4/CO=0.0 +!HONO/PAN1=0.0 ! -!WR_ASO4/OH=0.0 +!HONO/PAN2=0.0 ! -!WR_ASO4/HO2=0.0 +!HONO/PAN3=0.0 ! -!WR_ASO4/CH4=0.0 +!HONO/PAN4=0.0 ! -!WR_ASO4/ETH=0.0 +!HONO/PAN6=0.0 ! -!WR_ASO4/ALKA=0.0 +!HONO/PAN7=0.0 ! -!WR_ASO4/ALKE=0.0 +!HONO/PAN8=0.0 ! -!WR_ASO4/BIO=0.0 +!HONO/PN10=0.0 ! -!WR_ASO4/ARO=0.0 +!HONO/RO2T=0.0 ! -!WR_ASO4/HCHO=0.0 +!HONO/RO21=0.0 ! -!WR_ASO4/ALD=0.0 +!HONO/RO25=0.0 ! -!WR_ASO4/KET=0.0 +!HONO/WC_O3=0.0 ! -!WR_ASO4/CARBO=0.0 +!HONO/WC_H2O2=0.0 ! -!WR_ASO4/ONIT=0.0 +!HONO/WC_NO=0.0 ! -!WR_ASO4/PAN=0.0 +!HONO/WC_NO2=0.0 ! -!WR_ASO4/OP1=0.0 +!HONO/WC_NO3=0.0 ! -!WR_ASO4/OP2=0.0 +!HONO/WC_N2O5=0.0 ! -!WR_ASO4/ORA1=0.0 +!HONO/WC_HONO=+KTC38 + PJAC(:,4,94)=+TPK%KTC38(:) ! -!WR_ASO4/ORA2=0.0 +!HONO/WC_HNO3=0.0 ! -!WR_ASO4/MO2=0.0 +!HONO/WC_HNO4=0.0 ! -!WR_ASO4/ALKAP=0.0 +!HONO/WC_NH3=0.0 ! -!WR_ASO4/ALKEP=0.0 +!HONO/WC_OH=0.0 ! -!WR_ASO4/BIOP=0.0 +!HONO/WC_HO2=0.0 ! -!WR_ASO4/PHO=0.0 +!HONO/WC_CO2=0.0 ! -!WR_ASO4/ADD=0.0 +!HONO/WC_SO2=0.0 ! -!WR_ASO4/AROP=0.0 +!HONO/WC_H2SO4=0.0 ! -!WR_ASO4/CARBOP=0.0 +!HONO/WC_RO21=0.0 ! -!WR_ASO4/OLN=0.0 +!HONO/WC_RO25=0.0 ! -!WR_ASO4/XO2=0.0 +!HONO/WC_MEOH=0.0 ! -!WR_ASO4/WC_O3=0.0 +!HONO/WC_ETOH=0.0 ! -!WR_ASO4/WC_H2O2=0.0 +!HONO/WC_ALCH=0.0 ! -!WR_ASO4/WC_NO=0.0 +!HONO/WC_HCHO=0.0 ! -!WR_ASO4/WC_NO2=0.0 +!HONO/WC_ALD2=0.0 ! -!WR_ASO4/WC_NO3=0.0 +!HONO/WC_GLY=0.0 ! -!WR_ASO4/WC_N2O5=0.0 +!HONO/WC_MGLY=0.0 ! -!WR_ASO4/WC_HONO=0.0 +!HONO/WC_KETL=0.0 ! -!WR_ASO4/WC_HNO3=0.0 +!HONO/WC_ORA1=0.0 ! -!WR_ASO4/WC_HNO4=0.0 +!HONO/WC_ORA2=0.0 ! -!WR_ASO4/WC_NH3=0.0 +!HONO/WC_ACID=0.0 ! -!WR_ASO4/WC_OH=0.0 +!HONO/WC_RP16=0.0 ! -!WR_ASO4/WC_HO2=0.0 +!HONO/WC_UR21=0.0 ! -!WR_ASO4/WC_CO2=0.0 +!HONO/WC_UR28=0.0 ! -!WR_ASO4/WC_SO2=0.0 +!HONO/WC_ACID2=0.0 ! -!WR_ASO4/WC_SULF=0.0 +!HONO/WC_ASO3=0.0 ! -!WR_ASO4/WC_HCHO=0.0 +!HONO/WC_ASO4=0.0 ! -!WR_ASO4/WC_ORA1=0.0 +!HONO/WC_ASO5=0.0 ! -!WR_ASO4/WC_ORA2=0.0 +!HONO/WC_AHSO5=0.0 ! -!WR_ASO4/WC_MO2=0.0 +!HONO/WC_AHMS=0.0 ! -!WR_ASO4/WC_OP1=0.0 +!HONO/WR_O3=0.0 ! -!WR_ASO4/WC_ASO3=0.0 +!HONO/WR_H2O2=0.0 ! -!WR_ASO4/WC_ASO4=0.0 +!HONO/WR_NO=0.0 ! -!WR_ASO4/WC_ASO5=0.0 +!HONO/WR_NO2=0.0 ! -!WR_ASO4/WC_AHSO5=0.0 +!HONO/WR_NO3=0.0 ! -!WR_ASO4/WC_AHMS=0.0 +!HONO/WR_N2O5=0.0 ! -!WR_ASO4/WR_O3=0.0 +!HONO/WR_HONO=+KTR38 + PJAC(:,4,131)=+TPK%KTR38(:) ! -!WR_ASO4/WR_H2O2=0.0 +!HONO/WR_HNO3=0.0 ! -!WR_ASO4/WR_NO=0.0 +!HONO/WR_HNO4=0.0 ! -!WR_ASO4/WR_NO2=0.0 +!HONO/WR_NH3=0.0 ! -!WR_ASO4/WR_NO3=+KR15*<WR_SULF> - PJAC(:,88,71)=+TPK%KR15(:)*PCONC(:,81) +!HONO/WR_OH=0.0 ! -!WR_ASO4/WR_N2O5=0.0 +!HONO/WR_HO2=0.0 ! -!WR_ASO4/WR_HONO=0.0 +!HONO/WR_CO2=0.0 ! -!WR_ASO4/WR_HNO3=0.0 +!HONO/WR_SO2=0.0 ! -!WR_ASO4/WR_HNO4=0.0 +!HONO/WR_H2SO4=0.0 ! -!WR_ASO4/WR_NH3=0.0 +!HONO/WR_RO21=0.0 ! -!WR_ASO4/WR_OH=0.0 +!HONO/WR_RO25=0.0 ! -!WR_ASO4/WR_HO2=0.0 +!HONO/WR_MEOH=0.0 ! -!WR_ASO4/WR_CO2=0.0 +!HONO/WR_ETOH=0.0 ! -!WR_ASO4/WR_SO2=0.0 +!HONO/WR_ALCH=0.0 ! -!WR_ASO4/WR_SULF=+KR15*<WR_NO3> - PJAC(:,88,81)=+TPK%KR15(:)*PCONC(:,71) +!HONO/WR_HCHO=0.0 ! -!WR_ASO4/WR_HCHO=0.0 +!HONO/WR_ALD2=0.0 ! -!WR_ASO4/WR_ORA1=0.0 +!HONO/WR_GLY=0.0 ! -!WR_ASO4/WR_ORA2=0.0 +!HONO/WR_MGLY=0.0 ! -!WR_ASO4/WR_MO2=0.0 +!HONO/WR_KETL=0.0 ! -!WR_ASO4/WR_OP1=0.0 +!HONO/WR_ORA1=0.0 ! -!WR_ASO4/WR_ASO3=0.0 +!HONO/WR_ORA2=0.0 ! -!WR_ASO4/WR_ASO4=-KR28 - PJAC(:,88,88)=-TPK%KR28(:) +!HONO/WR_ACID=0.0 ! -!WR_ASO4/WR_ASO5=+KR26*<WR_ASO5>+KR26*<WR_ASO5>+KR26*<WR_ASO5>+KR26*<WR_ASO5> - PJAC(:,88,89)=+TPK%KR26(:)*PCONC(:,89)+TPK%KR26(:)*PCONC(:,89)+TPK%KR26(:)*PCO& -&NC(:,89)+TPK%KR26(:)*PCONC(:,89) +!HONO/WR_RP16=0.0 ! -!WR_ASO4/WR_AHSO5=0.0 +!HONO/WR_UR21=0.0 ! -!WR_ASO4/WR_AHMS=0.0 +!HONO/WR_UR28=0.0 ! -!WR_ASO5/O3=0.0 +!HONO/WR_ACID2=0.0 ! -!WR_ASO5/H2O2=0.0 +!HONO/WR_ASO3=0.0 ! -!WR_ASO5/NO=0.0 +!HONO/WR_ASO4=0.0 ! -!WR_ASO5/NO2=0.0 +!HONO/WR_ASO5=0.0 ! -!WR_ASO5/NO3=0.0 +!HONO/WR_AHSO5=0.0 ! -!WR_ASO5/N2O5=0.0 +!HONO/WR_AHMS=0.0 ! -!WR_ASO5/HONO=0.0 +!HNO3/NO=0.0 ! -!WR_ASO5/HNO3=0.0 +!HNO3/NO2=+0.5*K021*<H2O>+K022*<OH> + PJAC(:,5,2)=+0.5*TPK%K021(:)*TPK%H2O(:)+TPK%K022(:)*PCONC(:,15) ! -!WR_ASO5/HNO4=0.0 +!HNO3/O3=0.0 ! -!WR_ASO5/NH3=0.0 +!HNO3/HONO=0.0 ! -!WR_ASO5/SO2=0.0 +!HNO3/HNO3=-K023*<OH>-KTC8-KTR8 + PJAC(:,5,5)=-TPK%K023(:)*PCONC(:,15)-TPK%KTC8(:)-TPK%KTR8(:) ! -!WR_ASO5/SULF=0.0 +!HNO3/HNO4=0.0 ! -!WR_ASO5/CO=0.0 +!HNO3/N2O5=+2.*K011*<H2O> + PJAC(:,5,7)=+2.*TPK%K011(:)*TPK%H2O(:) ! -!WR_ASO5/OH=0.0 +!HNO3/NO3=+0.2*K033*<HO2>+K047*<HCHO>+K061*<ALD2>+K072*<AROO>+K081*<ARAL>+TPK%C +!F46*K275*<MCR>+K278*<MGLY>+K307*<RPR1>+K313*<RPR3>+K320*<RPR4>+K327*<RPR8>+K33 +!8*<RP16> + PJAC(:,5,8)=+0.2*TPK%K033(:)*PCONC(:,10)+TPK%K047(:)*PCONC(:,28)+TPK%K061(:)*P& +&CONC(:,29)+TPK%K072(:)*PCONC(:,24)+TPK%K081(:)*PCONC(:,25)+TPK%CF46*TPK%K275(:& +&)*PCONC(:,40)+TPK%K278(:)*PCONC(:,41)+TPK%K307(:)*PCONC(:,69)+TPK%K313(:)*PCON& +&C(:,57)+TPK%K320(:)*PCONC(:,61)+TPK%K327(:)*PCONC(:,71)+TPK%K338(:)*PCONC(:,74& +&) ! -!WR_ASO5/HO2=0.0 +!HNO3/NH3=0.0 ! -!WR_ASO5/CH4=0.0 +!HNO3/HO2=+0.2*K033*<NO3> + PJAC(:,5,10)=+0.2*TPK%K033(:)*PCONC(:,8) ! -!WR_ASO5/ETH=0.0 +!HNO3/CO=0.0 ! -!WR_ASO5/ALKA=0.0 +!HNO3/H2O2=0.0 ! -!WR_ASO5/ALKE=0.0 +!HNO3/SO2=0.0 ! -!WR_ASO5/BIO=0.0 +!HNO3/H2SO4=0.0 ! -!WR_ASO5/ARO=0.0 +!HNO3/OH=+K022*<NO2>-K023*<HNO3> + PJAC(:,5,15)=+TPK%K022(:)*PCONC(:,2)-TPK%K023(:)*PCONC(:,5) ! -!WR_ASO5/HCHO=0.0 +!HNO3/ETHE=0.0 ! -!WR_ASO5/ALD=0.0 +!HNO3/OLEL=0.0 ! -!WR_ASO5/KET=0.0 +!HNO3/OLEH=0.0 ! -!WR_ASO5/CARBO=0.0 +!HNO3/ALKL=0.0 ! -!WR_ASO5/ONIT=0.0 +!HNO3/ALKM=0.0 ! -!WR_ASO5/PAN=0.0 +!HNO3/ALKH=0.0 ! -!WR_ASO5/OP1=0.0 +!HNO3/AROH=0.0 ! -!WR_ASO5/OP2=0.0 +!HNO3/AROL=0.0 ! -!WR_ASO5/ORA1=0.0 +!HNO3/AROO=+K072*<NO3> + PJAC(:,5,24)=+TPK%K072(:)*PCONC(:,8) ! -!WR_ASO5/ORA2=0.0 +!HNO3/ARAL=+K081*<NO3> + PJAC(:,5,25)=+TPK%K081(:)*PCONC(:,8) ! -!WR_ASO5/MO2=0.0 +!HNO3/ARAC=0.0 ! -!WR_ASO5/ALKAP=0.0 +!HNO3/PAH=0.0 ! -!WR_ASO5/ALKEP=0.0 +!HNO3/HCHO=+K047*<NO3> + PJAC(:,5,28)=+TPK%K047(:)*PCONC(:,8) ! -!WR_ASO5/BIOP=0.0 +!HNO3/ALD2=+K061*<NO3> + PJAC(:,5,29)=+TPK%K061(:)*PCONC(:,8) ! -!WR_ASO5/PHO=0.0 +!HNO3/KETL=0.0 ! -!WR_ASO5/ADD=0.0 +!HNO3/KETH=0.0 ! -!WR_ASO5/AROP=0.0 +!HNO3/MEOH=0.0 ! -!WR_ASO5/CARBOP=0.0 +!HNO3/ETOH=0.0 ! -!WR_ASO5/OLN=0.0 +!HNO3/ALCH=0.0 ! -!WR_ASO5/XO2=0.0 +!HNO3/ISOP=0.0 ! -!WR_ASO5/WC_O3=0.0 +!HNO3/BIOL=0.0 ! -!WR_ASO5/WC_H2O2=0.0 +!HNO3/BIOH=0.0 ! -!WR_ASO5/WC_NO=0.0 +!HNO3/MTBE=0.0 ! -!WR_ASO5/WC_NO2=0.0 +!HNO3/MVK=0.0 ! -!WR_ASO5/WC_NO3=0.0 +!HNO3/MCR=+TPK%CF46*K275*<NO3> + PJAC(:,5,40)=+TPK%CF46*TPK%K275(:)*PCONC(:,8) ! -!WR_ASO5/WC_N2O5=0.0 +!HNO3/MGLY=+K278*<NO3> + PJAC(:,5,41)=+TPK%K278(:)*PCONC(:,8) ! -!WR_ASO5/WC_HONO=0.0 +!HNO3/GLY=0.0 ! -!WR_ASO5/WC_HNO3=0.0 +!HNO3/ORA1=0.0 ! -!WR_ASO5/WC_HNO4=0.0 +!HNO3/ORA2=0.0 ! -!WR_ASO5/WC_NH3=0.0 +!HNO3/ACID=0.0 ! -!WR_ASO5/WC_OH=0.0 +!HNO3/UR28=0.0 ! -!WR_ASO5/WC_HO2=0.0 +!HNO3/UR21=0.0 ! -!WR_ASO5/WC_CO2=0.0 +!HNO3/URG2=0.0 ! -!WR_ASO5/WC_SO2=0.0 +!HNO3/UR26=0.0 ! -!WR_ASO5/WC_SULF=0.0 +!HNO3/RPG2=0.0 ! -!WR_ASO5/WC_HCHO=0.0 +!HNO3/RP18=0.0 ! -!WR_ASO5/WC_ORA1=0.0 +!HNO3/RPG3=0.0 ! -!WR_ASO5/WC_ORA2=0.0 +!HNO3/URG4=0.0 ! -!WR_ASO5/WC_MO2=0.0 +!HNO3/UR8=0.0 ! -!WR_ASO5/WC_OP1=0.0 +!HNO3/UR17=0.0 ! -!WR_ASO5/WC_ASO3=0.0 +!HNO3/UR7=0.0 ! -!WR_ASO5/WC_ASO4=0.0 +!HNO3/RPR3=+K313*<NO3> + PJAC(:,5,57)=+TPK%K313(:)*PCONC(:,8) ! -!WR_ASO5/WC_ASO5=0.0 +!HNO3/URG6=0.0 ! -!WR_ASO5/WC_AHSO5=0.0 +!HNO3/UR22=0.0 ! -!WR_ASO5/WC_AHMS=0.0 +!HNO3/URG7=0.0 ! -!WR_ASO5/WR_O3=0.0 +!HNO3/RPR4=+K320*<NO3> + PJAC(:,5,61)=+TPK%K320(:)*PCONC(:,8) ! -!WR_ASO5/WR_H2O2=0.0 +!HNO3/RPR7=0.0 ! -!WR_ASO5/WR_NO=0.0 +!HNO3/RPG7=0.0 ! -!WR_ASO5/WR_NO2=0.0 +!HNO3/URG8=0.0 ! -!WR_ASO5/WR_NO3=0.0 +!HNO3/UR19=0.0 ! -!WR_ASO5/WR_N2O5=0.0 +!HNO3/URG9=0.0 ! -!WR_ASO5/WR_HONO=0.0 +!HNO3/AP7=0.0 ! -!WR_ASO5/WR_HNO3=0.0 +!HNO3/URG10=0.0 ! -!WR_ASO5/WR_HNO4=0.0 +!HNO3/RPR1=+K307*<NO3> + PJAC(:,5,69)=+TPK%K307(:)*PCONC(:,8) ! -!WR_ASO5/WR_NH3=0.0 +!HNO3/RPR5=0.0 ! -!WR_ASO5/WR_OH=0.0 +!HNO3/RPR8=+K327*<NO3> + PJAC(:,5,71)=+TPK%K327(:)*PCONC(:,8) ! -!WR_ASO5/WR_HO2=-KR25*<WR_ASO5> - PJAC(:,89,78)=-TPK%KR25(:)*PCONC(:,89) +!HNO3/RP10=0.0 ! -!WR_ASO5/WR_CO2=0.0 +!HNO3/RP11=0.0 ! -!WR_ASO5/WR_SO2=0.0 +!HNO3/RP16=+K338*<NO3> + PJAC(:,5,74)=+TPK%K338(:)*PCONC(:,8) ! -!WR_ASO5/WR_SULF=0.0 +!HNO3/RPRL=0.0 ! -!WR_ASO5/WR_HCHO=0.0 +!HNO3/APAN=0.0 ! -!WR_ASO5/WR_ORA1=0.0 +!HNO3/PAN1=0.0 ! -!WR_ASO5/WR_ORA2=0.0 +!HNO3/PAN2=0.0 ! -!WR_ASO5/WR_MO2=0.0 +!HNO3/PAN3=0.0 ! -!WR_ASO5/WR_OP1=0.0 +!HNO3/PAN4=0.0 ! -!WR_ASO5/WR_ASO3=+KR24*<W_O2> - PJAC(:,89,87)=+TPK%KR24(:)*TPK%W_O2(:) +!HNO3/PAN6=0.0 ! -!WR_ASO5/WR_ASO4=0.0 +!HNO3/PAN7=0.0 ! -!WR_ASO5/WR_ASO5=-KR25*<WR_HO2>-KR26*<WR_ASO5>-KR26*<WR_ASO5>-KR26*<WR_ASO5>-KR -!26*<WR_ASO5> - PJAC(:,89,89)=-TPK%KR25(:)*PCONC(:,78)-TPK%KR26(:)*PCONC(:,89)-TPK%KR26(:)*PCO& -&NC(:,89)-TPK%KR26(:)*PCONC(:,89)-TPK%KR26(:)*PCONC(:,89) +!HNO3/PAN8=0.0 ! -!WR_ASO5/WR_AHSO5=0.0 +!HNO3/PN10=0.0 ! -!WR_ASO5/WR_AHMS=0.0 +!HNO3/RO2T=0.0 ! -!WR_AHSO5/O3=0.0 +!HNO3/RO21=0.0 ! -!WR_AHSO5/H2O2=0.0 +!HNO3/RO25=0.0 ! -!WR_AHSO5/NO=0.0 +!HNO3/WC_O3=0.0 ! -!WR_AHSO5/NO2=0.0 +!HNO3/WC_H2O2=0.0 ! -!WR_AHSO5/NO3=0.0 +!HNO3/WC_NO=0.0 ! -!WR_AHSO5/N2O5=0.0 +!HNO3/WC_NO2=0.0 ! -!WR_AHSO5/HONO=0.0 +!HNO3/WC_NO3=0.0 ! -!WR_AHSO5/HNO3=0.0 +!HNO3/WC_N2O5=0.0 ! -!WR_AHSO5/HNO4=0.0 +!HNO3/WC_HONO=0.0 ! -!WR_AHSO5/NH3=0.0 +!HNO3/WC_HNO3=+KTC39 + PJAC(:,5,95)=+TPK%KTC39(:) ! -!WR_AHSO5/SO2=0.0 +!HNO3/WC_HNO4=0.0 ! -!WR_AHSO5/SULF=0.0 +!HNO3/WC_NH3=0.0 ! -!WR_AHSO5/CO=0.0 +!HNO3/WC_OH=0.0 ! -!WR_AHSO5/OH=0.0 +!HNO3/WC_HO2=0.0 ! -!WR_AHSO5/HO2=0.0 +!HNO3/WC_CO2=0.0 ! -!WR_AHSO5/CH4=0.0 +!HNO3/WC_SO2=0.0 ! -!WR_AHSO5/ETH=0.0 +!HNO3/WC_H2SO4=0.0 ! -!WR_AHSO5/ALKA=0.0 +!HNO3/WC_RO21=0.0 ! -!WR_AHSO5/ALKE=0.0 +!HNO3/WC_RO25=0.0 ! -!WR_AHSO5/BIO=0.0 +!HNO3/WC_MEOH=0.0 ! -!WR_AHSO5/ARO=0.0 +!HNO3/WC_ETOH=0.0 ! -!WR_AHSO5/HCHO=0.0 +!HNO3/WC_ALCH=0.0 ! -!WR_AHSO5/ALD=0.0 +!HNO3/WC_HCHO=0.0 ! -!WR_AHSO5/KET=0.0 +!HNO3/WC_ALD2=0.0 ! -!WR_AHSO5/CARBO=0.0 +!HNO3/WC_GLY=0.0 ! -!WR_AHSO5/ONIT=0.0 +!HNO3/WC_MGLY=0.0 ! -!WR_AHSO5/PAN=0.0 +!HNO3/WC_KETL=0.0 ! -!WR_AHSO5/OP1=0.0 +!HNO3/WC_ORA1=0.0 ! -!WR_AHSO5/OP2=0.0 +!HNO3/WC_ORA2=0.0 ! -!WR_AHSO5/ORA1=0.0 +!HNO3/WC_ACID=0.0 ! -!WR_AHSO5/ORA2=0.0 +!HNO3/WC_RP16=0.0 ! -!WR_AHSO5/MO2=0.0 +!HNO3/WC_UR21=0.0 ! -!WR_AHSO5/ALKAP=0.0 +!HNO3/WC_UR28=0.0 ! -!WR_AHSO5/ALKEP=0.0 +!HNO3/WC_ACID2=0.0 ! -!WR_AHSO5/BIOP=0.0 +!HNO3/WC_ASO3=0.0 ! -!WR_AHSO5/PHO=0.0 +!HNO3/WC_ASO4=0.0 ! -!WR_AHSO5/ADD=0.0 +!HNO3/WC_ASO5=0.0 ! -!WR_AHSO5/AROP=0.0 +!HNO3/WC_AHSO5=0.0 ! -!WR_AHSO5/CARBOP=0.0 +!HNO3/WC_AHMS=0.0 ! -!WR_AHSO5/OLN=0.0 +!HNO3/WR_O3=0.0 ! -!WR_AHSO5/XO2=0.0 +!HNO3/WR_H2O2=0.0 ! -!WR_AHSO5/WC_O3=0.0 +!HNO3/WR_NO=0.0 ! -!WR_AHSO5/WC_H2O2=0.0 +!HNO3/WR_NO2=0.0 ! -!WR_AHSO5/WC_NO=0.0 +!HNO3/WR_NO3=0.0 ! -!WR_AHSO5/WC_NO2=0.0 +!HNO3/WR_N2O5=0.0 ! -!WR_AHSO5/WC_NO3=0.0 +!HNO3/WR_HONO=0.0 ! -!WR_AHSO5/WC_N2O5=0.0 +!HNO3/WR_HNO3=+KTR39 + PJAC(:,5,132)=+TPK%KTR39(:) ! -!WR_AHSO5/WC_HONO=0.0 +!HNO3/WR_HNO4=0.0 ! -!WR_AHSO5/WC_HNO3=0.0 +!HNO3/WR_NH3=0.0 ! -!WR_AHSO5/WC_HNO4=0.0 +!HNO3/WR_OH=0.0 ! -!WR_AHSO5/WC_NH3=0.0 +!HNO3/WR_HO2=0.0 ! -!WR_AHSO5/WC_OH=0.0 +!HNO3/WR_CO2=0.0 ! -!WR_AHSO5/WC_HO2=0.0 +!HNO3/WR_SO2=0.0 ! -!WR_AHSO5/WC_CO2=0.0 +!HNO3/WR_H2SO4=0.0 ! -!WR_AHSO5/WC_SO2=0.0 +!HNO3/WR_RO21=0.0 ! -!WR_AHSO5/WC_SULF=0.0 +!HNO3/WR_RO25=0.0 ! -!WR_AHSO5/WC_HCHO=0.0 +!HNO3/WR_MEOH=0.0 ! -!WR_AHSO5/WC_ORA1=0.0 +!HNO3/WR_ETOH=0.0 ! -!WR_AHSO5/WC_ORA2=0.0 +!HNO3/WR_ALCH=0.0 ! -!WR_AHSO5/WC_MO2=0.0 +!HNO3/WR_HCHO=0.0 ! -!WR_AHSO5/WC_OP1=0.0 +!HNO3/WR_ALD2=0.0 ! -!WR_AHSO5/WC_ASO3=0.0 +!HNO3/WR_GLY=0.0 ! -!WR_AHSO5/WC_ASO4=0.0 +!HNO3/WR_MGLY=0.0 ! -!WR_AHSO5/WC_ASO5=0.0 +!HNO3/WR_KETL=0.0 ! -!WR_AHSO5/WC_AHSO5=0.0 +!HNO3/WR_ORA1=0.0 ! -!WR_AHSO5/WC_AHMS=0.0 +!HNO3/WR_ORA2=0.0 ! -!WR_AHSO5/WR_O3=0.0 +!HNO3/WR_ACID=0.0 ! -!WR_AHSO5/WR_H2O2=0.0 +!HNO3/WR_RP16=0.0 ! -!WR_AHSO5/WR_NO=0.0 +!HNO3/WR_UR21=0.0 ! -!WR_AHSO5/WR_NO2=0.0 +!HNO3/WR_UR28=0.0 ! -!WR_AHSO5/WR_NO3=0.0 +!HNO3/WR_ACID2=0.0 ! -!WR_AHSO5/WR_N2O5=0.0 +!HNO3/WR_ASO3=0.0 ! -!WR_AHSO5/WR_HONO=0.0 +!HNO3/WR_ASO4=0.0 ! -!WR_AHSO5/WR_HNO3=0.0 +!HNO3/WR_ASO5=0.0 ! -!WR_AHSO5/WR_HNO4=0.0 +!HNO3/WR_AHSO5=0.0 ! -!WR_AHSO5/WR_NH3=0.0 +!HNO3/WR_AHMS=0.0 ! -!WR_AHSO5/WR_OH=0.0 +RETURN +END SUBROUTINE SUBJ0 ! -!WR_AHSO5/WR_HO2=+KR25*<WR_ASO5> - PJAC(:,90,78)=+TPK%KR25(:)*PCONC(:,89) +SUBROUTINE SUBJ1 ! -!WR_AHSO5/WR_CO2=0.0 +!Indices 6 a 10 ! -!WR_AHSO5/WR_SO2=-KR27*<WR_AHSO5> - PJAC(:,90,80)=-TPK%KR27(:)*PCONC(:,90) ! -!WR_AHSO5/WR_SULF=0.0 +!HNO4/NO=0.0 ! -!WR_AHSO5/WR_HCHO=0.0 +!HNO4/NO2=+K027*<HO2> + PJAC(:,6,2)=+TPK%K027(:)*PCONC(:,10) ! -!WR_AHSO5/WR_ORA1=0.0 +!HNO4/O3=0.0 ! -!WR_AHSO5/WR_ORA2=0.0 +!HNO4/HONO=0.0 ! -!WR_AHSO5/WR_MO2=0.0 +!HNO4/HNO3=0.0 ! -!WR_AHSO5/WR_OP1=0.0 +!HNO4/HNO4=-K028-K029*<OH>-KTC9-KTR9 + PJAC(:,6,6)=-TPK%K028(:)-TPK%K029(:)*PCONC(:,15)-TPK%KTC9(:)-TPK%KTR9(:) ! -!WR_AHSO5/WR_ASO3=0.0 +!HNO4/N2O5=0.0 ! -!WR_AHSO5/WR_ASO4=0.0 +!HNO4/NO3=0.0 ! -!WR_AHSO5/WR_ASO5=+KR25*<WR_HO2> - PJAC(:,90,89)=+TPK%KR25(:)*PCONC(:,78) +!HNO4/NH3=0.0 ! -!WR_AHSO5/WR_AHSO5=-KR27*<WR_SO2> - PJAC(:,90,90)=-TPK%KR27(:)*PCONC(:,80) +!HNO4/HO2=+K027*<NO2> + PJAC(:,6,10)=+TPK%K027(:)*PCONC(:,2) ! -!WR_AHSO5/WR_AHMS=0.0 +!HNO4/CO=0.0 ! -RETURN -END SUBROUTINE SUBJ17 +!HNO4/H2O2=0.0 ! -SUBROUTINE SUBJ18 +!HNO4/SO2=0.0 ! -!Indices 91 a 91 +!HNO4/H2SO4=0.0 ! +!HNO4/OH=-K029*<HNO4> + PJAC(:,6,15)=-TPK%K029(:)*PCONC(:,6) ! -!WR_AHMS/O3=0.0 +!HNO4/ETHE=0.0 ! -!WR_AHMS/H2O2=0.0 +!HNO4/OLEL=0.0 ! -!WR_AHMS/NO=0.0 +!HNO4/OLEH=0.0 ! -!WR_AHMS/NO2=0.0 +!HNO4/ALKL=0.0 ! -!WR_AHMS/NO3=0.0 +!HNO4/ALKM=0.0 ! -!WR_AHMS/N2O5=0.0 +!HNO4/ALKH=0.0 ! -!WR_AHMS/HONO=0.0 +!HNO4/AROH=0.0 ! -!WR_AHMS/HNO3=0.0 +!HNO4/AROL=0.0 ! -!WR_AHMS/HNO4=0.0 +!HNO4/AROO=0.0 ! -!WR_AHMS/NH3=0.0 +!HNO4/ARAL=0.0 ! -!WR_AHMS/SO2=0.0 +!HNO4/ARAC=0.0 ! -!WR_AHMS/SULF=0.0 +!HNO4/PAH=0.0 ! -!WR_AHMS/CO=0.0 +!HNO4/HCHO=0.0 ! -!WR_AHMS/OH=0.0 +!HNO4/ALD2=0.0 ! -!WR_AHMS/HO2=0.0 +!HNO4/KETL=0.0 ! -!WR_AHMS/CH4=0.0 +!HNO4/KETH=0.0 ! -!WR_AHMS/ETH=0.0 +!HNO4/MEOH=0.0 ! -!WR_AHMS/ALKA=0.0 +!HNO4/ETOH=0.0 ! -!WR_AHMS/ALKE=0.0 +!HNO4/ALCH=0.0 ! -!WR_AHMS/BIO=0.0 +!HNO4/ISOP=0.0 ! -!WR_AHMS/ARO=0.0 +!HNO4/BIOL=0.0 ! -!WR_AHMS/HCHO=0.0 +!HNO4/BIOH=0.0 ! -!WR_AHMS/ALD=0.0 +!HNO4/MTBE=0.0 ! -!WR_AHMS/KET=0.0 +!HNO4/MVK=0.0 ! -!WR_AHMS/CARBO=0.0 +!HNO4/MCR=0.0 ! -!WR_AHMS/ONIT=0.0 +!HNO4/MGLY=0.0 ! -!WR_AHMS/PAN=0.0 +!HNO4/GLY=0.0 ! -!WR_AHMS/OP1=0.0 +!HNO4/ORA1=0.0 ! -!WR_AHMS/OP2=0.0 +!HNO4/ORA2=0.0 ! -!WR_AHMS/ORA1=0.0 +!HNO4/ACID=0.0 ! -!WR_AHMS/ORA2=0.0 +!HNO4/UR28=0.0 ! -!WR_AHMS/MO2=0.0 +!HNO4/UR21=0.0 ! -!WR_AHMS/ALKAP=0.0 +!HNO4/URG2=0.0 ! -!WR_AHMS/ALKEP=0.0 +!HNO4/UR26=0.0 ! -!WR_AHMS/BIOP=0.0 +!HNO4/RPG2=0.0 ! -!WR_AHMS/PHO=0.0 +!HNO4/RP18=0.0 ! -!WR_AHMS/ADD=0.0 +!HNO4/RPG3=0.0 ! -!WR_AHMS/AROP=0.0 +!HNO4/URG4=0.0 ! -!WR_AHMS/CARBOP=0.0 +!HNO4/UR8=0.0 ! -!WR_AHMS/OLN=0.0 +!HNO4/UR17=0.0 ! -!WR_AHMS/XO2=0.0 +!HNO4/UR7=0.0 ! -!WR_AHMS/WC_O3=0.0 +!HNO4/RPR3=0.0 ! -!WR_AHMS/WC_H2O2=0.0 +!HNO4/URG6=0.0 ! -!WR_AHMS/WC_NO=0.0 +!HNO4/UR22=0.0 ! -!WR_AHMS/WC_NO2=0.0 +!HNO4/URG7=0.0 ! -!WR_AHMS/WC_NO3=0.0 +!HNO4/RPR4=0.0 ! -!WR_AHMS/WC_N2O5=0.0 +!HNO4/RPR7=0.0 ! -!WR_AHMS/WC_HONO=0.0 +!HNO4/RPG7=0.0 ! -!WR_AHMS/WC_HNO3=0.0 +!HNO4/URG8=0.0 ! -!WR_AHMS/WC_HNO4=0.0 +!HNO4/UR19=0.0 ! -!WR_AHMS/WC_NH3=0.0 +!HNO4/URG9=0.0 ! -!WR_AHMS/WC_OH=0.0 +!HNO4/AP7=0.0 ! -!WR_AHMS/WC_HO2=0.0 +!HNO4/URG10=0.0 ! -!WR_AHMS/WC_CO2=0.0 +!HNO4/RPR1=0.0 ! -!WR_AHMS/WC_SO2=0.0 +!HNO4/RPR5=0.0 ! -!WR_AHMS/WC_SULF=0.0 +!HNO4/RPR8=0.0 ! -!WR_AHMS/WC_HCHO=0.0 +!HNO4/RP10=0.0 ! -!WR_AHMS/WC_ORA1=0.0 +!HNO4/RP11=0.0 ! -!WR_AHMS/WC_ORA2=0.0 +!HNO4/RP16=0.0 ! -!WR_AHMS/WC_MO2=0.0 +!HNO4/RPRL=0.0 ! -!WR_AHMS/WC_OP1=0.0 +!HNO4/APAN=0.0 ! -!WR_AHMS/WC_ASO3=0.0 +!HNO4/PAN1=0.0 ! -!WR_AHMS/WC_ASO4=0.0 +!HNO4/PAN2=0.0 ! -!WR_AHMS/WC_ASO5=0.0 +!HNO4/PAN3=0.0 ! -!WR_AHMS/WC_AHSO5=0.0 +!HNO4/PAN4=0.0 ! -!WR_AHMS/WC_AHMS=0.0 +!HNO4/PAN6=0.0 ! -!WR_AHMS/WR_O3=0.0 +!HNO4/PAN7=0.0 ! -!WR_AHMS/WR_H2O2=0.0 +!HNO4/PAN8=0.0 ! -!WR_AHMS/WR_NO=0.0 +!HNO4/PN10=0.0 ! -!WR_AHMS/WR_NO2=0.0 +!HNO4/RO2T=0.0 ! -!WR_AHMS/WR_NO3=0.0 +!HNO4/RO21=0.0 ! -!WR_AHMS/WR_N2O5=0.0 +!HNO4/RO25=0.0 ! -!WR_AHMS/WR_HONO=0.0 +!HNO4/WC_O3=0.0 ! -!WR_AHMS/WR_HNO3=0.0 +!HNO4/WC_H2O2=0.0 ! -!WR_AHMS/WR_HNO4=0.0 +!HNO4/WC_NO=0.0 ! -!WR_AHMS/WR_NH3=0.0 +!HNO4/WC_NO2=0.0 ! -!WR_AHMS/WR_OH=-KR23*<WR_AHMS> - PJAC(:,91,77)=-TPK%KR23(:)*PCONC(:,91) +!HNO4/WC_NO3=0.0 ! -!WR_AHMS/WR_HO2=0.0 +!HNO4/WC_N2O5=0.0 ! -!WR_AHMS/WR_CO2=0.0 +!HNO4/WC_HONO=0.0 ! -!WR_AHMS/WR_SO2=+KR21*<WR_HCHO> - PJAC(:,91,80)=+TPK%KR21(:)*PCONC(:,82) +!HNO4/WC_HNO3=0.0 ! -!WR_AHMS/WR_SULF=0.0 +!HNO4/WC_HNO4=+KTC40 + PJAC(:,6,96)=+TPK%KTC40(:) ! -!WR_AHMS/WR_HCHO=+KR21*<WR_SO2> - PJAC(:,91,82)=+TPK%KR21(:)*PCONC(:,80) +!HNO4/WC_NH3=0.0 ! -!WR_AHMS/WR_ORA1=0.0 +!HNO4/WC_OH=0.0 ! -!WR_AHMS/WR_ORA2=0.0 +!HNO4/WC_HO2=0.0 ! -!WR_AHMS/WR_MO2=0.0 +!HNO4/WC_CO2=0.0 ! -!WR_AHMS/WR_OP1=0.0 +!HNO4/WC_SO2=0.0 ! -!WR_AHMS/WR_ASO3=0.0 +!HNO4/WC_H2SO4=0.0 ! -!WR_AHMS/WR_ASO4=0.0 +!HNO4/WC_RO21=0.0 ! -!WR_AHMS/WR_ASO5=0.0 +!HNO4/WC_RO25=0.0 ! -!WR_AHMS/WR_AHSO5=0.0 +!HNO4/WC_MEOH=0.0 ! -!WR_AHMS/WR_AHMS=-KR22-KR23*<WR_OH> - PJAC(:,91,91)=-TPK%KR22(:)-TPK%KR23(:)*PCONC(:,77) +!HNO4/WC_ETOH=0.0 ! -RETURN -END SUBROUTINE SUBJ18 +!HNO4/WC_ALCH=0.0 ! -END SUBROUTINE CH_JAC_AQ +!HNO4/WC_HCHO=0.0 ! +!HNO4/WC_ALD2=0.0 ! -!======================================================================== +!HNO4/WC_GLY=0.0 ! -!! ################## - MODULE MODI_CH_JAC_GAZ -!! ################## -INTERFACE -SUBROUTINE CH_JAC_GAZ(PTIME,PCONC,PJAC,KMI,KVECNPT,KEQ) -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KEQ) :: PJAC -INTEGER, INTENT(IN) :: KMI -END SUBROUTINE CH_JAC_GAZ -END INTERFACE -END MODULE MODI_CH_JAC_GAZ +!HNO4/WC_MGLY=0.0 ! -!======================================================================== +!HNO4/WC_KETL=0.0 ! -!! #################### - SUBROUTINE CH_JAC_GAZ(PTIME,PCONC,PJAC,KMI,KVECNPT,KEQ) -!! #################### -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -!!*** *CH_JAC* -!! -!! PURPOSE -!! ------- -! calculation of the JACOBIAN matrix -!! -!!** METHOD -!! ------ -!! The Jacobian matrix J is calculated as defined by the chemical -!! reaction mechanism. -!! The reaction rates and other user-defined auxiliary variables are -!! transfered in the TYPE(CCSTYPE) variable TPK%. -!! -!! REFERENCE -!! --------- -!! none -!! -!! AUTHOR -!! ------ -!! Karsten Suhre (LA) -!! -!! MODIFICATIONS -!! ------------- -!! Original 26/07/96 -!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) -!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) -!! -!!---------------------------------------------------------------------- -!! -!! EXTERNAL -!! -------- -!! none -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -USE MODD_CH_M9_SCHEME -!! -!! EXPLICIT ARGUMENTS -!! ------------------ -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KEQ) :: PJAC -INTEGER, INTENT(IN) :: KMI -! -TYPE(CCSTYPE), POINTER :: TPK -TPK=>TACCS(KMI) -! -! /BEGIN_CODE/ -TPK%O1D(:)=(TPK%K002(:)*PCONC(:,JP_O3))/(TPK%K020(:)*TPK%N2(:)+TPK%K021(:)*TPK%O2(:)+& - &TPK%K022(:)*TPK%H2O(:)) -TPK%O3P(:)=(TPK%K001(:)*PCONC(:,JP_NO2)+TPK%K003(:)*PCONC(:,JP_O3)+TPK%K008(:)*PCONC(:,JP_NO3)+& - &TPK%K020(:)*TPK%O1D(:)*TPK%N2(:)+TPK%K021(:)*TPK%O1D(:)*TPK%O2(:)+& - &0.00000*TPK%K079(:)*PCONC(:,JP_ALKE)*PCONC(:,JP_O3)+& - &0.09000*TPK%K080(:)*PCONC(:,JP_BIO)*PCONC(:,JP_O3))/& - &(TPK%K018(:)*TPK%O2(:)+TPK%K019(:)*PCONC(:,JP_O3)+TPK%K029(:)*PCONC(:,JP_NO)+& - &TPK%K030(:)*PCONC(:,JP_NO2)+TPK%K031(:)*PCONC(:,JP_NO2)+TPK%K054(:)*PCONC(:,JP_BIO)+& - &TPK%K055(:)*PCONC(:,JP_CARBO)) -! /END_CODE/ -PJAC(:,:,:) = 0.0 -CALL SUBJ0 -CALL SUBJ1 -CALL SUBJ2 -CALL SUBJ3 -CALL SUBJ4 -CALL SUBJ5 -CALL SUBJ6 -CALL SUBJ7 -CALL SUBJ8 -! - -CONTAINS - -SUBROUTINE SUBJ0 -! -!Indices 1 a 5 +!HNO4/WC_ORA1=0.0 ! +!HNO4/WC_ORA2=0.0 ! -!O3/O3=-K002-K003-K019*<O3P>-K023*<OH>-K024*<HO2>-K042*<NO>-K043*<NO2>-K079*<AL -!KE>-K080*<BIO>-K081*<CARBO>-K082*<PAN>-K087*<ADD> - PJAC(:,1,1)=-TPK%K002(:)-TPK%K003(:)-TPK%K019(:)*TPK%O3P(:)-TPK%K023(:)*PCONC(& -&:,14)-TPK%K024(:)*PCONC(:,15)-TPK%K042(:)*PCONC(:,3)-TPK%K043(:)*PCONC(:,4)-TP& -&K%K079(:)*PCONC(:,19)-TPK%K080(:)*PCONC(:,20)-TPK%K081(:)*PCONC(:,25)-TPK%K082& -&(:)*PCONC(:,27)-TPK%K087(:)*PCONC(:,37) +!HNO4/WC_ACID=0.0 ! -!O3/H2O2=0.0 +!HNO4/WC_RP16=0.0 ! -!O3/NO=-K042*<O3> - PJAC(:,1,3)=-TPK%K042(:)*PCONC(:,1) +!HNO4/WC_UR21=0.0 ! -!O3/NO2=-K043*<O3> - PJAC(:,1,4)=-TPK%K043(:)*PCONC(:,1) +!HNO4/WC_UR28=0.0 ! -!O3/NO3=0.0 +!HNO4/WC_ACID2=0.0 ! -!O3/N2O5=0.0 +!HNO4/WC_ASO3=0.0 ! -!O3/HONO=0.0 +!HNO4/WC_ASO4=0.0 ! -!O3/HNO3=0.0 +!HNO4/WC_ASO5=0.0 ! -!O3/HNO4=0.0 +!HNO4/WC_AHSO5=0.0 ! -!O3/NH3=0.0 +!HNO4/WC_AHMS=0.0 ! -!O3/SO2=0.0 +!HNO4/WR_O3=0.0 ! -!O3/SULF=0.0 +!HNO4/WR_H2O2=0.0 ! -!O3/CO=0.0 +!HNO4/WR_NO=0.0 ! -!O3/OH=-K023*<O3> - PJAC(:,1,14)=-TPK%K023(:)*PCONC(:,1) +!HNO4/WR_NO2=0.0 ! -!O3/HO2=-K024*<O3>+0.17307*K0102*<CARBOP> - PJAC(:,1,15)=-TPK%K024(:)*PCONC(:,1)+0.17307*TPK%K0102(:)*PCONC(:,39) +!HNO4/WR_NO3=0.0 ! -!O3/CH4=0.0 +!HNO4/WR_N2O5=0.0 ! -!O3/ETH=0.0 +!HNO4/WR_HONO=0.0 ! -!O3/ALKA=0.0 +!HNO4/WR_HNO3=0.0 ! -!O3/ALKE=-K079*<O3> - PJAC(:,1,19)=-TPK%K079(:)*PCONC(:,1) +!HNO4/WR_HNO4=+KTR40 + PJAC(:,6,133)=+TPK%KTR40(:) ! -!O3/BIO=-K080*<O3> - PJAC(:,1,20)=-TPK%K080(:)*PCONC(:,1) +!HNO4/WR_NH3=0.0 ! -!O3/ARO=0.0 +!HNO4/WR_OH=0.0 ! -!O3/HCHO=0.0 +!HNO4/WR_HO2=0.0 ! -!O3/ALD=0.0 +!HNO4/WR_CO2=0.0 ! -!O3/KET=0.0 +!HNO4/WR_SO2=0.0 ! -!O3/CARBO=-K081*<O3> - PJAC(:,1,25)=-TPK%K081(:)*PCONC(:,1) +!HNO4/WR_H2SO4=0.0 ! -!O3/ONIT=0.0 +!HNO4/WR_RO21=0.0 ! -!O3/PAN=-K082*<O3> - PJAC(:,1,27)=-TPK%K082(:)*PCONC(:,1) +!HNO4/WR_RO25=0.0 ! -!O3/OP1=0.0 +!HNO4/WR_MEOH=0.0 ! -!O3/OP2=0.0 +!HNO4/WR_ETOH=0.0 ! -!O3/ORA1=0.0 +!HNO4/WR_ALCH=0.0 ! -!O3/ORA2=0.0 +!HNO4/WR_HCHO=0.0 ! -!O3/MO2=0.0 +!HNO4/WR_ALD2=0.0 ! -!O3/ALKAP=0.0 +!HNO4/WR_GLY=0.0 ! -!O3/ALKEP=0.0 +!HNO4/WR_MGLY=0.0 ! -!O3/BIOP=0.0 +!HNO4/WR_KETL=0.0 ! -!O3/PHO=0.0 +!HNO4/WR_ORA1=0.0 ! -!O3/ADD=-K087*<O3> - PJAC(:,1,37)=-TPK%K087(:)*PCONC(:,1) +!HNO4/WR_ORA2=0.0 ! -!O3/AROP=0.0 +!HNO4/WR_ACID=0.0 ! -!O3/CARBOP=+0.17307*K0102*<HO2> - PJAC(:,1,39)=+0.17307*TPK%K0102(:)*PCONC(:,15) +!HNO4/WR_RP16=0.0 ! -!O3/OLN=0.0 +!HNO4/WR_UR21=0.0 ! -!O3/XO2=0.0 +!HNO4/WR_UR28=0.0 ! -!H2O2/O3=+0.01833*K079*<ALKE>+0.00100*K080*<BIO> - PJAC(:,2,1)=+0.01833*TPK%K079(:)*PCONC(:,19)+0.00100*TPK%K080(:)*PCONC(:,20) +!HNO4/WR_ACID2=0.0 ! -!H2O2/H2O2=-K009-K026*<OH> - PJAC(:,2,2)=-TPK%K009(:)-TPK%K026(:)*PCONC(:,14) +!HNO4/WR_ASO3=0.0 ! -!H2O2/NO=0.0 +!HNO4/WR_ASO4=0.0 ! -!H2O2/NO2=0.0 +!HNO4/WR_ASO5=0.0 ! -!H2O2/NO3=0.0 +!HNO4/WR_AHSO5=0.0 ! -!H2O2/N2O5=0.0 +!HNO4/WR_AHMS=0.0 ! -!H2O2/HONO=0.0 +!N2O5/NO=0.0 ! -!H2O2/HNO3=0.0 +!N2O5/NO2=+K009*<NO3> + PJAC(:,7,2)=+TPK%K009(:)*PCONC(:,8) ! -!H2O2/HNO4=0.0 +!N2O5/O3=0.0 ! -!H2O2/NH3=0.0 +!N2O5/HONO=0.0 ! -!H2O2/SO2=0.0 +!N2O5/HNO3=0.0 ! -!H2O2/SULF=0.0 +!N2O5/HNO4=0.0 ! -!H2O2/CO=0.0 +!N2O5/N2O5=-K010-K011*<H2O>-KTC6-KTR6 + PJAC(:,7,7)=-TPK%K010(:)-TPK%K011(:)*TPK%H2O(:)-TPK%KTC6(:)-TPK%KTR6(:) ! -!H2O2/OH=-K026*<H2O2> - PJAC(:,2,14)=-TPK%K026(:)*PCONC(:,2) +!N2O5/NO3=+K009*<NO2> + PJAC(:,7,8)=+TPK%K009(:)*PCONC(:,2) ! -!H2O2/HO2=+K027*<HO2>+K027*<HO2>+K028*<HO2>*<H2O>+K028*<HO2>*<H2O> - PJAC(:,2,15)=+TPK%K027(:)*PCONC(:,15)+TPK%K027(:)*PCONC(:,15)+TPK%K028(:)*PCON& -&C(:,15)*TPK%H2O(:)+TPK%K028(:)*PCONC(:,15)*TPK%H2O(:) +!N2O5/NH3=0.0 ! -!H2O2/CH4=0.0 +!N2O5/HO2=0.0 ! -!H2O2/ETH=0.0 +!N2O5/CO=0.0 ! -!H2O2/ALKA=0.0 +!N2O5/H2O2=0.0 ! -!H2O2/ALKE=+0.01833*K079*<O3> - PJAC(:,2,19)=+0.01833*TPK%K079(:)*PCONC(:,1) +!N2O5/SO2=0.0 ! -!H2O2/BIO=+0.00100*K080*<O3> - PJAC(:,2,20)=+0.00100*TPK%K080(:)*PCONC(:,1) +!N2O5/H2SO4=0.0 ! -!H2O2/ARO=0.0 +!N2O5/OH=0.0 ! -!H2O2/HCHO=0.0 +!N2O5/ETHE=0.0 ! -!H2O2/ALD=0.0 +!N2O5/OLEL=0.0 ! -!H2O2/KET=0.0 +!N2O5/OLEH=0.0 ! -!H2O2/CARBO=0.0 +!N2O5/ALKL=0.0 ! -!H2O2/ONIT=0.0 +!N2O5/ALKM=0.0 ! -!H2O2/PAN=0.0 +!N2O5/ALKH=0.0 ! -!H2O2/OP1=0.0 +!N2O5/AROH=0.0 ! -!H2O2/OP2=0.0 +!N2O5/AROL=0.0 ! -!H2O2/ORA1=0.0 +!N2O5/AROO=0.0 ! -!H2O2/ORA2=0.0 +!N2O5/ARAL=0.0 ! -!H2O2/MO2=0.0 +!N2O5/ARAC=0.0 ! -!H2O2/ALKAP=0.0 +!N2O5/PAH=0.0 ! -!H2O2/ALKEP=0.0 +!N2O5/HCHO=0.0 ! -!H2O2/BIOP=0.0 +!N2O5/ALD2=0.0 ! -!H2O2/PHO=0.0 +!N2O5/KETL=0.0 ! -!H2O2/ADD=0.0 +!N2O5/KETH=0.0 ! -!H2O2/AROP=0.0 +!N2O5/MEOH=0.0 ! -!H2O2/CARBOP=0.0 +!N2O5/ETOH=0.0 ! -!H2O2/OLN=0.0 +!N2O5/ALCH=0.0 ! -!H2O2/XO2=0.0 +!N2O5/ISOP=0.0 ! -!NO/O3=-K042*<NO> - PJAC(:,3,1)=-TPK%K042(:)*PCONC(:,3) +!N2O5/BIOL=0.0 ! -!NO/H2O2=0.0 +!N2O5/BIOH=0.0 ! -!NO/NO=-K029*<O3P>-K032*<OH>-K035*<HO2>-K042*<O3>-K044*<NO>*<O2>-K044*<NO>*<O2> -!-K044*<NO>*<O2>-K044*<NO>*<O2>-K045*<NO3>-K090*<MO2>-K091*<ALKAP>-K092*<ALKEP> -!-K093*<BIOP>-K094*<AROP>-K095*<CARBOP>-K096*<OLN>-K130*<XO2> - PJAC(:,3,3)=-TPK%K029(:)*TPK%O3P(:)-TPK%K032(:)*PCONC(:,14)-TPK%K035(:)*PCONC(& -&:,15)-TPK%K042(:)*PCONC(:,1)-TPK%K044(:)*PCONC(:,3)*TPK%O2(:)-TPK%K044(:)*PCON& -&C(:,3)*TPK%O2(:)-TPK%K044(:)*PCONC(:,3)*TPK%O2(:)-TPK%K044(:)*PCONC(:,3)*TPK%O& -&2(:)-TPK%K045(:)*PCONC(:,5)-TPK%K090(:)*PCONC(:,32)-TPK%K091(:)*PCONC(:,33)-TP& -&K%K092(:)*PCONC(:,34)-TPK%K093(:)*PCONC(:,35)-TPK%K094(:)*PCONC(:,38)-TPK%K095& -&(:)*PCONC(:,39)-TPK%K096(:)*PCONC(:,40)-TPK%K130(:)*PCONC(:,41) +!N2O5/MTBE=0.0 ! -!NO/NO2=+K001+K030*<O3P>+K046*<NO3> - PJAC(:,3,4)=+TPK%K001(:)+TPK%K030(:)*TPK%O3P(:)+TPK%K046(:)*PCONC(:,5) +!N2O5/MVK=0.0 ! -!NO/NO3=+K007-K045*<NO>+K046*<NO2> - PJAC(:,3,5)=+TPK%K007(:)-TPK%K045(:)*PCONC(:,3)+TPK%K046(:)*PCONC(:,4) +!N2O5/MCR=0.0 ! -!NO/N2O5=0.0 +!N2O5/MGLY=0.0 ! -!NO/HONO=+K004 - PJAC(:,3,7)=+TPK%K004(:) +!N2O5/GLY=0.0 ! -!NO/HNO3=0.0 +!N2O5/ORA1=0.0 ! -!NO/HNO4=0.0 +!N2O5/ORA2=0.0 ! -!NO/NH3=0.0 +!N2O5/ACID=0.0 ! -!NO/SO2=0.0 +!N2O5/UR28=0.0 ! -!NO/SULF=0.0 +!N2O5/UR21=0.0 ! -!NO/CO=0.0 +!N2O5/URG2=0.0 ! -!NO/OH=-K032*<NO> - PJAC(:,3,14)=-TPK%K032(:)*PCONC(:,3) +!N2O5/UR26=0.0 ! -!NO/HO2=-K035*<NO> - PJAC(:,3,15)=-TPK%K035(:)*PCONC(:,3) +!N2O5/RPG2=0.0 ! -!NO/CH4=0.0 +!N2O5/RP18=0.0 ! -!NO/ETH=0.0 +!N2O5/RPG3=0.0 ! -!NO/ALKA=0.0 +!N2O5/URG4=0.0 ! -!NO/ALKE=0.0 +!N2O5/UR8=0.0 ! -!NO/BIO=0.0 +!N2O5/UR17=0.0 ! -!NO/ARO=0.0 +!N2O5/UR7=0.0 ! -!NO/HCHO=0.0 +!N2O5/RPR3=0.0 ! -!NO/ALD=0.0 +!N2O5/URG6=0.0 ! -!NO/KET=0.0 +!N2O5/UR22=0.0 ! -!NO/CARBO=0.0 +!N2O5/URG7=0.0 ! -!NO/ONIT=0.0 +!N2O5/RPR4=0.0 ! -!NO/PAN=0.0 +!N2O5/RPR7=0.0 ! -!NO/OP1=0.0 +!N2O5/RPG7=0.0 ! -!NO/OP2=0.0 +!N2O5/URG8=0.0 ! -!NO/ORA1=0.0 +!N2O5/UR19=0.0 ! -!NO/ORA2=0.0 +!N2O5/URG9=0.0 ! -!NO/MO2=-K090*<NO> - PJAC(:,3,32)=-TPK%K090(:)*PCONC(:,3) +!N2O5/AP7=0.0 ! -!NO/ALKAP=-K091*<NO> - PJAC(:,3,33)=-TPK%K091(:)*PCONC(:,3) +!N2O5/URG10=0.0 ! -!NO/ALKEP=-K092*<NO> - PJAC(:,3,34)=-TPK%K092(:)*PCONC(:,3) +!N2O5/RPR1=0.0 ! -!NO/BIOP=-K093*<NO> - PJAC(:,3,35)=-TPK%K093(:)*PCONC(:,3) +!N2O5/RPR5=0.0 ! -!NO/PHO=0.0 +!N2O5/RPR8=0.0 ! -!NO/ADD=0.0 +!N2O5/RP10=0.0 ! -!NO/AROP=-K094*<NO> - PJAC(:,3,38)=-TPK%K094(:)*PCONC(:,3) +!N2O5/RP11=0.0 ! -!NO/CARBOP=-K095*<NO> - PJAC(:,3,39)=-TPK%K095(:)*PCONC(:,3) +!N2O5/RP16=0.0 ! -!NO/OLN=-K096*<NO> - PJAC(:,3,40)=-TPK%K096(:)*PCONC(:,3) +!N2O5/RPRL=0.0 ! -!NO/XO2=-K130*<NO> - PJAC(:,3,41)=-TPK%K130(:)*PCONC(:,3) +!N2O5/APAN=0.0 ! -!NO2/O3=+K042*<NO>-K043*<NO2>+0.70*K082*<PAN> - PJAC(:,4,1)=+TPK%K042(:)*PCONC(:,3)-TPK%K043(:)*PCONC(:,4)+0.70*TPK%K082(:)*PC& -&ONC(:,27) +!N2O5/PAN1=0.0 ! -!NO2/H2O2=0.0 +!N2O5/PAN2=0.0 ! -!NO2/NO=+K029*<O3P>+K035*<HO2>+K042*<O3>+K044*<NO>*<O2>+K044*<NO>*<O2>+K044*<NO -!>*<O2>+K044*<NO>*<O2>+K045*<NO3>+K045*<NO3>+K090*<MO2>+0.91541*K091*<ALKAP>+K0 -!92*<ALKEP>+0.84700*K093*<BIOP>+0.95115*K094*<AROP>+K095*<CARBOP>+1.81599*K096* -!<OLN>+K130*<XO2> - PJAC(:,4,3)=+TPK%K029(:)*TPK%O3P(:)+TPK%K035(:)*PCONC(:,15)+TPK%K042(:)*PCONC(& -&:,1)+TPK%K044(:)*PCONC(:,3)*TPK%O2(:)+TPK%K044(:)*PCONC(:,3)*TPK%O2(:)+TPK%K04& -&4(:)*PCONC(:,3)*TPK%O2(:)+TPK%K044(:)*PCONC(:,3)*TPK%O2(:)+TPK%K045(:)*PCONC(:& -&,5)+TPK%K045(:)*PCONC(:,5)+TPK%K090(:)*PCONC(:,32)+0.91541*TPK%K091(:)*PCONC(:& -&,33)+TPK%K092(:)*PCONC(:,34)+0.84700*TPK%K093(:)*PCONC(:,35)+0.95115*TPK%K094(& -&:)*PCONC(:,38)+TPK%K095(:)*PCONC(:,39)+1.81599*TPK%K096(:)*PCONC(:,40)+TPK%K13& -&0(:)*PCONC(:,41) -! -!NO2/NO2=-K001-K030*<O3P>-K031*<O3P>-K033*<OH>-K036*<HO2>-K043*<O3>+K046*<NO3>- -!K046*<NO3>-K047*<NO3>-K083*<PHO>-K085*<ADD>-K088*<CARBOP> - PJAC(:,4,4)=-TPK%K001(:)-TPK%K030(:)*TPK%O3P(:)-TPK%K031(:)*TPK%O3P(:)-TPK%K03& -&3(:)*PCONC(:,14)-TPK%K036(:)*PCONC(:,15)-TPK%K043(:)*PCONC(:,1)+TPK%K046(:)*PC& -&ONC(:,5)-TPK%K046(:)*PCONC(:,5)-TPK%K047(:)*PCONC(:,5)-TPK%K083(:)*PCONC(:,36)& -&-TPK%K085(:)*PCONC(:,37)-TPK%K088(:)*PCONC(:,39) -! -!NO2/NO3=+K008+K034*<OH>+0.7*K038*<HO2>+K045*<NO>+K045*<NO>+K046*<NO2>-K046*<NO -!2>-K047*<NO2>+K049*<NO3>+K049*<NO3>+K049*<NO3>+K049*<NO3>+0.10530*K074*<CARBO> -!+0.40*K078*<PAN>+K119*<MO2>+K120*<ALKAP>+K121*<ALKEP>+K122*<BIOP>+K123*<AROP>+ -!K124*<CARBOP>+1.74072*K125*<OLN>+K131*<XO2> - PJAC(:,4,5)=+TPK%K008(:)+TPK%K034(:)*PCONC(:,14)+0.7*TPK%K038(:)*PCONC(:,15)+T& -&PK%K045(:)*PCONC(:,3)+TPK%K045(:)*PCONC(:,3)+TPK%K046(:)*PCONC(:,4)-TPK%K046(:& -&)*PCONC(:,4)-TPK%K047(:)*PCONC(:,4)+TPK%K049(:)*PCONC(:,5)+TPK%K049(:)*PCONC(:& -&,5)+TPK%K049(:)*PCONC(:,5)+TPK%K049(:)*PCONC(:,5)+0.10530*TPK%K074(:)*PCONC(:,& -&25)+0.40*TPK%K078(:)*PCONC(:,27)+TPK%K119(:)*PCONC(:,32)+TPK%K120(:)*PCONC(:,3& -&3)+TPK%K121(:)*PCONC(:,34)+TPK%K122(:)*PCONC(:,35)+TPK%K123(:)*PCONC(:,38)+TPK& -&%K124(:)*PCONC(:,39)+1.74072*TPK%K125(:)*PCONC(:,40)+TPK%K131(:)*PCONC(:,41) -! -!NO2/N2O5=+K048 - PJAC(:,4,6)=+TPK%K048(:) -! -!NO2/HONO=+K039*<OH> - PJAC(:,4,7)=+TPK%K039(:)*PCONC(:,14) -! -!NO2/HNO3=+K005 - PJAC(:,4,8)=+TPK%K005(:) -! -!NO2/HNO4=+0.65*K006+K037+K041*<OH> - PJAC(:,4,9)=+0.65*TPK%K006(:)+TPK%K037(:)+TPK%K041(:)*PCONC(:,14) +!N2O5/PAN3=0.0 ! -!NO2/NH3=0.0 +!N2O5/PAN4=0.0 ! -!NO2/SO2=0.0 +!N2O5/PAN6=0.0 ! -!NO2/SULF=0.0 +!N2O5/PAN7=0.0 ! -!NO2/CO=0.0 +!N2O5/PAN8=0.0 ! -!NO2/OH=-K033*<NO2>+K034*<NO3>+K039*<HONO>+K041*<HNO4>+K071*<ONIT> - PJAC(:,4,14)=-TPK%K033(:)*PCONC(:,4)+TPK%K034(:)*PCONC(:,5)+TPK%K039(:)*PCONC(& -&:,7)+TPK%K041(:)*PCONC(:,9)+TPK%K071(:)*PCONC(:,26) +!N2O5/PN10=0.0 ! -!NO2/HO2=+K035*<NO>-K036*<NO2>+0.7*K038*<NO3> - PJAC(:,4,15)=+TPK%K035(:)*PCONC(:,3)-TPK%K036(:)*PCONC(:,4)+0.7*TPK%K038(:)*PC& -&ONC(:,5) +!N2O5/RO2T=0.0 ! -!NO2/CH4=0.0 +!N2O5/RO21=0.0 ! -!NO2/ETH=0.0 +!N2O5/RO25=0.0 ! -!NO2/ALKA=0.0 +!N2O5/WC_O3=0.0 ! -!NO2/ALKE=0.0 +!N2O5/WC_H2O2=0.0 ! -!NO2/BIO=0.0 +!N2O5/WC_NO=0.0 ! -!NO2/ARO=0.0 +!N2O5/WC_NO2=0.0 ! -!NO2/HCHO=0.0 +!N2O5/WC_NO3=0.0 ! -!NO2/ALD=0.0 +!N2O5/WC_N2O5=+KTC37 + PJAC(:,7,93)=+TPK%KTC37(:) ! -!NO2/KET=0.0 +!N2O5/WC_HONO=0.0 ! -!NO2/CARBO=+0.10530*K074*<NO3> - PJAC(:,4,25)=+0.10530*TPK%K074(:)*PCONC(:,5) +!N2O5/WC_HNO3=0.0 ! -!NO2/ONIT=+K017+K071*<OH> - PJAC(:,4,26)=+TPK%K017(:)+TPK%K071(:)*PCONC(:,14) +!N2O5/WC_HNO4=0.0 ! -!NO2/PAN=+0.40*K078*<NO3>+0.70*K082*<O3>+K089 - PJAC(:,4,27)=+0.40*TPK%K078(:)*PCONC(:,5)+0.70*TPK%K082(:)*PCONC(:,1)+TPK%K089& -&(:) +!N2O5/WC_NH3=0.0 ! -!NO2/OP1=0.0 +!N2O5/WC_OH=0.0 ! -!NO2/OP2=0.0 +!N2O5/WC_HO2=0.0 ! -!NO2/ORA1=0.0 +!N2O5/WC_CO2=0.0 ! -!NO2/ORA2=0.0 +!N2O5/WC_SO2=0.0 ! -!NO2/MO2=+K090*<NO>+0.32440*K110*<OLN>+K119*<NO3> - PJAC(:,4,32)=+TPK%K090(:)*PCONC(:,3)+0.32440*TPK%K110(:)*PCONC(:,40)+TPK%K119(& -&:)*PCONC(:,5) +!N2O5/WC_H2SO4=0.0 ! -!NO2/ALKAP=+0.91541*K091*<NO>+K120*<NO3> - PJAC(:,4,33)=+0.91541*TPK%K091(:)*PCONC(:,3)+TPK%K120(:)*PCONC(:,5) +!N2O5/WC_RO21=0.0 ! -!NO2/ALKEP=+K092*<NO>+K121*<NO3> - PJAC(:,4,34)=+TPK%K092(:)*PCONC(:,3)+TPK%K121(:)*PCONC(:,5) +!N2O5/WC_RO25=0.0 ! -!NO2/BIOP=+0.84700*K093*<NO>+K122*<NO3> - PJAC(:,4,35)=+0.84700*TPK%K093(:)*PCONC(:,3)+TPK%K122(:)*PCONC(:,5) +!N2O5/WC_MEOH=0.0 ! -!NO2/PHO=-K083*<NO2> - PJAC(:,4,36)=-TPK%K083(:)*PCONC(:,4) +!N2O5/WC_ETOH=0.0 ! -!NO2/ADD=-K085*<NO2> - PJAC(:,4,37)=-TPK%K085(:)*PCONC(:,4) +!N2O5/WC_ALCH=0.0 ! -!NO2/AROP=+0.95115*K094*<NO>+K123*<NO3> - PJAC(:,4,38)=+0.95115*TPK%K094(:)*PCONC(:,3)+TPK%K123(:)*PCONC(:,5) +!N2O5/WC_HCHO=0.0 ! -!NO2/CARBOP=-K088*<NO2>+K095*<NO>+0.00000*K116*<OLN>+K124*<NO3> - PJAC(:,4,39)=-TPK%K088(:)*PCONC(:,4)+TPK%K095(:)*PCONC(:,3)+0.00000*TPK%K116(:& -&)*PCONC(:,40)+TPK%K124(:)*PCONC(:,5) +!N2O5/WC_ALD2=0.0 ! -!NO2/OLN=+1.81599*K096*<NO>+0.32440*K110*<MO2>+0.00000*K116*<CARBOP>+0.00000*K1 -!18*<OLN>+0.00000*K118*<OLN>+1.74072*K125*<NO3> - PJAC(:,4,40)=+1.81599*TPK%K096(:)*PCONC(:,3)+0.32440*TPK%K110(:)*PCONC(:,32)+0& -&.00000*TPK%K116(:)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K11& -&8(:)*PCONC(:,40)+1.74072*TPK%K125(:)*PCONC(:,5) +!N2O5/WC_GLY=0.0 ! -!NO2/XO2=+K130*<NO>+K131*<NO3> - PJAC(:,4,41)=+TPK%K130(:)*PCONC(:,3)+TPK%K131(:)*PCONC(:,5) +!N2O5/WC_MGLY=0.0 ! -!NO3/O3=+K043*<NO2> - PJAC(:,5,1)=+TPK%K043(:)*PCONC(:,4) +!N2O5/WC_KETL=0.0 ! -!NO3/H2O2=0.0 +!N2O5/WC_ORA1=0.0 ! -!NO3/NO=-K045*<NO3> - PJAC(:,5,3)=-TPK%K045(:)*PCONC(:,5) -! -!NO3/NO2=+K031*<O3P>+K043*<O3>-K046*<NO3>-K047*<NO3> - PJAC(:,5,4)=+TPK%K031(:)*TPK%O3P(:)+TPK%K043(:)*PCONC(:,1)-TPK%K046(:)*PCONC(:& -&,5)-TPK%K047(:)*PCONC(:,5) -! -!NO3/NO3=-K007-K008-K034*<OH>-K038*<HO2>-K045*<NO>-K046*<NO2>-K047*<NO2>-K049*< -!NO3>-K049*<NO3>-K049*<NO3>-K049*<NO3>-K072*<HCHO>-K073*<ALD>-K074*<CARBO>-K075 -!*<ARO>-K076*<ALKE>-K077*<BIO>+0.60*K078*<PAN>-K078*<PAN>-K119*<MO2>-K120*<ALKA -!P>-K121*<ALKEP>-K122*<BIOP>-K123*<AROP>-K124*<CARBOP>-K125*<OLN>-K131*<XO2> - PJAC(:,5,5)=-TPK%K007(:)-TPK%K008(:)-TPK%K034(:)*PCONC(:,14)-TPK%K038(:)*PCONC& -&(:,15)-TPK%K045(:)*PCONC(:,3)-TPK%K046(:)*PCONC(:,4)-TPK%K047(:)*PCONC(:,4)-TP& -&K%K049(:)*PCONC(:,5)-TPK%K049(:)*PCONC(:,5)-TPK%K049(:)*PCONC(:,5)-TPK%K049(:)& -&*PCONC(:,5)-TPK%K072(:)*PCONC(:,22)-TPK%K073(:)*PCONC(:,23)-TPK%K074(:)*PCONC(& -&:,25)-TPK%K075(:)*PCONC(:,21)-TPK%K076(:)*PCONC(:,19)-TPK%K077(:)*PCONC(:,20)+& -&0.60*TPK%K078(:)*PCONC(:,27)-TPK%K078(:)*PCONC(:,27)-TPK%K119(:)*PCONC(:,32)-T& -&PK%K120(:)*PCONC(:,33)-TPK%K121(:)*PCONC(:,34)-TPK%K122(:)*PCONC(:,35)-TPK%K12& -&3(:)*PCONC(:,38)-TPK%K124(:)*PCONC(:,39)-TPK%K125(:)*PCONC(:,40)-TPK%K131(:)*P& -&CONC(:,41) -! -!NO3/N2O5=+K048 - PJAC(:,5,6)=+TPK%K048(:) +!N2O5/WC_ORA2=0.0 ! -!NO3/HONO=0.0 +!N2O5/WC_ACID=0.0 ! -!NO3/HNO3=+K040*<OH> - PJAC(:,5,8)=+TPK%K040(:)*PCONC(:,14) +!N2O5/WC_RP16=0.0 ! -!NO3/HNO4=+0.35*K006 - PJAC(:,5,9)=+0.35*TPK%K006(:) +!N2O5/WC_UR21=0.0 ! -!NO3/NH3=0.0 +!N2O5/WC_UR28=0.0 ! -!NO3/SO2=0.0 +!N2O5/WC_ACID2=0.0 ! -!NO3/SULF=0.0 +!N2O5/WC_ASO3=0.0 ! -!NO3/CO=0.0 +!N2O5/WC_ASO4=0.0 ! -!NO3/OH=-K034*<NO3>+K040*<HNO3>+0.71893*K070*<PAN> - PJAC(:,5,14)=-TPK%K034(:)*PCONC(:,5)+TPK%K040(:)*PCONC(:,8)+0.71893*TPK%K070(:& -&)*PCONC(:,27) +!N2O5/WC_ASO5=0.0 ! -!NO3/HO2=-K038*<NO3> - PJAC(:,5,15)=-TPK%K038(:)*PCONC(:,5) +!N2O5/WC_AHSO5=0.0 ! -!NO3/CH4=0.0 +!N2O5/WC_AHMS=0.0 ! -!NO3/ETH=0.0 +!N2O5/WR_O3=0.0 ! -!NO3/ALKA=0.0 +!N2O5/WR_H2O2=0.0 ! -!NO3/ALKE=-K076*<NO3> - PJAC(:,5,19)=-TPK%K076(:)*PCONC(:,5) +!N2O5/WR_NO=0.0 ! -!NO3/BIO=-K077*<NO3> - PJAC(:,5,20)=-TPK%K077(:)*PCONC(:,5) +!N2O5/WR_NO2=0.0 ! -!NO3/ARO=-K075*<NO3> - PJAC(:,5,21)=-TPK%K075(:)*PCONC(:,5) +!N2O5/WR_NO3=0.0 ! -!NO3/HCHO=-K072*<NO3> - PJAC(:,5,22)=-TPK%K072(:)*PCONC(:,5) +!N2O5/WR_N2O5=+KTR37 + PJAC(:,7,130)=+TPK%KTR37(:) ! -!NO3/ALD=-K073*<NO3> - PJAC(:,5,23)=-TPK%K073(:)*PCONC(:,5) +!N2O5/WR_HONO=0.0 ! -!NO3/KET=0.0 +!N2O5/WR_HNO3=0.0 ! -!NO3/CARBO=-K074*<NO3> - PJAC(:,5,25)=-TPK%K074(:)*PCONC(:,5) +!N2O5/WR_HNO4=0.0 ! -!NO3/ONIT=0.0 +!N2O5/WR_NH3=0.0 ! -!NO3/PAN=+0.71893*K070*<OH>+0.60*K078*<NO3>-K078*<NO3> - PJAC(:,5,27)=+0.71893*TPK%K070(:)*PCONC(:,14)+0.60*TPK%K078(:)*PCONC(:,5)-TPK%& -&K078(:)*PCONC(:,5) +!N2O5/WR_OH=0.0 ! -!NO3/OP1=0.0 +!N2O5/WR_HO2=0.0 ! -!NO3/OP2=0.0 +!N2O5/WR_CO2=0.0 ! -!NO3/ORA1=0.0 +!N2O5/WR_SO2=0.0 ! -!NO3/ORA2=0.0 +!N2O5/WR_H2SO4=0.0 ! -!NO3/MO2=-K119*<NO3> - PJAC(:,5,32)=-TPK%K119(:)*PCONC(:,5) +!N2O5/WR_RO21=0.0 ! -!NO3/ALKAP=-K120*<NO3> - PJAC(:,5,33)=-TPK%K120(:)*PCONC(:,5) +!N2O5/WR_RO25=0.0 ! -!NO3/ALKEP=-K121*<NO3> - PJAC(:,5,34)=-TPK%K121(:)*PCONC(:,5) +!N2O5/WR_MEOH=0.0 ! -!NO3/BIOP=-K122*<NO3> - PJAC(:,5,35)=-TPK%K122(:)*PCONC(:,5) +!N2O5/WR_ETOH=0.0 ! -!NO3/PHO=0.0 +!N2O5/WR_ALCH=0.0 ! -!NO3/ADD=0.0 +!N2O5/WR_HCHO=0.0 ! -!NO3/AROP=-K123*<NO3> - PJAC(:,5,38)=-TPK%K123(:)*PCONC(:,5) +!N2O5/WR_ALD2=0.0 ! -!NO3/CARBOP=-K124*<NO3> - PJAC(:,5,39)=-TPK%K124(:)*PCONC(:,5) +!N2O5/WR_GLY=0.0 ! -!NO3/OLN=-K125*<NO3> - PJAC(:,5,40)=-TPK%K125(:)*PCONC(:,5) +!N2O5/WR_MGLY=0.0 ! -!NO3/XO2=-K131*<NO3> - PJAC(:,5,41)=-TPK%K131(:)*PCONC(:,5) +!N2O5/WR_KETL=0.0 ! -RETURN -END SUBROUTINE SUBJ0 +!N2O5/WR_ORA1=0.0 ! -SUBROUTINE SUBJ1 +!N2O5/WR_ORA2=0.0 ! -!Indices 6 a 10 +!N2O5/WR_ACID=0.0 ! +!N2O5/WR_RP16=0.0 ! -!N2O5/O3=0.0 +!N2O5/WR_UR21=0.0 ! -!N2O5/H2O2=0.0 +!N2O5/WR_UR28=0.0 ! -!N2O5/NO=0.0 +!N2O5/WR_ACID2=0.0 ! -!N2O5/NO2=+K047*<NO3> - PJAC(:,6,4)=+TPK%K047(:)*PCONC(:,5) +!N2O5/WR_ASO3=0.0 ! -!N2O5/NO3=+K047*<NO2> - PJAC(:,6,5)=+TPK%K047(:)*PCONC(:,4) +!N2O5/WR_ASO4=0.0 ! -!N2O5/N2O5=-K048 - PJAC(:,6,6)=-TPK%K048(:) +!N2O5/WR_ASO5=0.0 ! -!N2O5/HONO=0.0 +!N2O5/WR_AHSO5=0.0 ! -!N2O5/HNO3=0.0 +!N2O5/WR_AHMS=0.0 ! -!N2O5/HNO4=0.0 +!NO3/NO=-K007*<NO3> + PJAC(:,8,1)=-TPK%K007(:)*PCONC(:,8) ! -!N2O5/NH3=0.0 +!NO3/NO2=+K004*<O>+K006*<O3>-K009*<NO3>-K012*<NO3> + PJAC(:,8,2)=+TPK%K004(:)*TPK%O(:)+TPK%K006(:)*PCONC(:,3)-TPK%K009(:)*PCONC(:,8& +&)-TPK%K012(:)*PCONC(:,8) ! -!N2O5/SO2=0.0 +!NO3/O3=+K006*<NO2> + PJAC(:,8,3)=+TPK%K006(:)*PCONC(:,2) ! -!N2O5/SULF=0.0 +!NO3/HONO=0.0 ! -!N2O5/CO=0.0 +!NO3/HNO3=+K023*<OH> + PJAC(:,8,5)=+TPK%K023(:)*PCONC(:,15) +! +!NO3/HNO4=0.0 +! +!NO3/N2O5=+K010 + PJAC(:,8,7)=+TPK%K010(:) +! +!NO3/NO3=-K007*<NO>-K009*<NO2>-K012*<NO2>-K013-K014-K033*<HO2>-K040*<OH>-K041*< +!NO3>-K041*<NO3>-K041*<NO3>-K041*<NO3>-K047*<HCHO>-K050*<ETHE>-K055*<OLEL>-K061 +!*<ALD2>-K065*<ISOP>-K072*<AROO>-K075*<OLEH>-K081*<ARAL>-K085*<BIOL>-K089*<BIOH +!>-K275*<MCR>-K278*<MGLY>-K307*<RPR1>-K313*<RPR3>-K320*<RPR4>-K327*<RPR8>-K338* +!<RP16>-KTC5-KTR5 + PJAC(:,8,8)=-TPK%K007(:)*PCONC(:,1)-TPK%K009(:)*PCONC(:,2)-TPK%K012(:)*PCONC(:& +&,2)-TPK%K013(:)-TPK%K014(:)-TPK%K033(:)*PCONC(:,10)-TPK%K040(:)*PCONC(:,15)-TP& +&K%K041(:)*PCONC(:,8)-TPK%K041(:)*PCONC(:,8)-TPK%K041(:)*PCONC(:,8)-TPK%K041(:)& +&*PCONC(:,8)-TPK%K047(:)*PCONC(:,28)-TPK%K050(:)*PCONC(:,16)-TPK%K055(:)*PCONC(& +&:,17)-TPK%K061(:)*PCONC(:,29)-TPK%K065(:)*PCONC(:,35)-TPK%K072(:)*PCONC(:,24)-& +&TPK%K075(:)*PCONC(:,18)-TPK%K081(:)*PCONC(:,25)-TPK%K085(:)*PCONC(:,36)-TPK%K0& +&89(:)*PCONC(:,37)-TPK%K275(:)*PCONC(:,40)-TPK%K278(:)*PCONC(:,41)-TPK%K307(:)*& +&PCONC(:,69)-TPK%K313(:)*PCONC(:,57)-TPK%K320(:)*PCONC(:,61)-TPK%K327(:)*PCONC(& +&:,71)-TPK%K338(:)*PCONC(:,74)-TPK%KTC5(:)-TPK%KTR5(:) ! -!N2O5/OH=0.0 +!NO3/NH3=0.0 ! -!N2O5/HO2=0.0 +!NO3/HO2=-K033*<NO3> + PJAC(:,8,10)=-TPK%K033(:)*PCONC(:,8) ! -!N2O5/CH4=0.0 +!NO3/CO=0.0 ! -!N2O5/ETH=0.0 +!NO3/H2O2=0.0 ! -!N2O5/ALKA=0.0 +!NO3/SO2=0.0 ! -!N2O5/ALKE=0.0 +!NO3/H2SO4=0.0 ! -!N2O5/BIO=0.0 +!NO3/OH=+K023*<HNO3>-K040*<NO3> + PJAC(:,8,15)=+TPK%K023(:)*PCONC(:,5)-TPK%K040(:)*PCONC(:,8) ! -!N2O5/ARO=0.0 +!NO3/ETHE=-K050*<NO3> + PJAC(:,8,16)=-TPK%K050(:)*PCONC(:,8) ! -!N2O5/HCHO=0.0 +!NO3/OLEL=-K055*<NO3> + PJAC(:,8,17)=-TPK%K055(:)*PCONC(:,8) ! -!N2O5/ALD=0.0 +!NO3/OLEH=-K075*<NO3> + PJAC(:,8,18)=-TPK%K075(:)*PCONC(:,8) ! -!N2O5/KET=0.0 +!NO3/ALKL=0.0 ! -!N2O5/CARBO=0.0 +!NO3/ALKM=0.0 ! -!N2O5/ONIT=0.0 +!NO3/ALKH=0.0 ! -!N2O5/PAN=0.0 +!NO3/AROH=0.0 ! -!N2O5/OP1=0.0 +!NO3/AROL=0.0 ! -!N2O5/OP2=0.0 +!NO3/AROO=-K072*<NO3> + PJAC(:,8,24)=-TPK%K072(:)*PCONC(:,8) ! -!N2O5/ORA1=0.0 +!NO3/ARAL=-K081*<NO3> + PJAC(:,8,25)=-TPK%K081(:)*PCONC(:,8) ! -!N2O5/ORA2=0.0 +!NO3/ARAC=0.0 ! -!N2O5/MO2=0.0 +!NO3/PAH=0.0 ! -!N2O5/ALKAP=0.0 +!NO3/HCHO=-K047*<NO3> + PJAC(:,8,28)=-TPK%K047(:)*PCONC(:,8) ! -!N2O5/ALKEP=0.0 +!NO3/ALD2=-K061*<NO3> + PJAC(:,8,29)=-TPK%K061(:)*PCONC(:,8) ! -!N2O5/BIOP=0.0 +!NO3/KETL=0.0 ! -!N2O5/PHO=0.0 +!NO3/KETH=0.0 ! -!N2O5/ADD=0.0 +!NO3/MEOH=0.0 ! -!N2O5/AROP=0.0 +!NO3/ETOH=0.0 ! -!N2O5/CARBOP=0.0 +!NO3/ALCH=0.0 ! -!N2O5/OLN=0.0 +!NO3/ISOP=-K065*<NO3> + PJAC(:,8,35)=-TPK%K065(:)*PCONC(:,8) ! -!N2O5/XO2=0.0 +!NO3/BIOL=-K085*<NO3> + PJAC(:,8,36)=-TPK%K085(:)*PCONC(:,8) ! -!HONO/O3=0.0 +!NO3/BIOH=-K089*<NO3> + PJAC(:,8,37)=-TPK%K089(:)*PCONC(:,8) ! -!HONO/H2O2=0.0 +!NO3/MTBE=0.0 ! -!HONO/NO=+K032*<OH> - PJAC(:,7,3)=+TPK%K032(:)*PCONC(:,14) +!NO3/MVK=0.0 ! -!HONO/NO2=+K085*<ADD> - PJAC(:,7,4)=+TPK%K085(:)*PCONC(:,37) +!NO3/MCR=-K275*<NO3> + PJAC(:,8,40)=-TPK%K275(:)*PCONC(:,8) ! -!HONO/NO3=0.0 +!NO3/MGLY=-K278*<NO3> + PJAC(:,8,41)=-TPK%K278(:)*PCONC(:,8) ! -!HONO/N2O5=0.0 +!NO3/GLY=0.0 ! -!HONO/HONO=-K004-K039*<OH> - PJAC(:,7,7)=-TPK%K004(:)-TPK%K039(:)*PCONC(:,14) +!NO3/ORA1=0.0 ! -!HONO/HNO3=0.0 +!NO3/ORA2=0.0 ! -!HONO/HNO4=0.0 +!NO3/ACID=0.0 ! -!HONO/NH3=0.0 +!NO3/UR28=0.0 ! -!HONO/SO2=0.0 +!NO3/UR21=0.0 ! -!HONO/SULF=0.0 +!NO3/URG2=0.0 ! -!HONO/CO=0.0 +!NO3/UR26=0.0 ! -!HONO/OH=+K032*<NO>-K039*<HONO> - PJAC(:,7,14)=+TPK%K032(:)*PCONC(:,3)-TPK%K039(:)*PCONC(:,7) +!NO3/RPG2=0.0 ! -!HONO/HO2=0.0 +!NO3/RP18=0.0 ! -!HONO/CH4=0.0 +!NO3/RPG3=0.0 ! -!HONO/ETH=0.0 +!NO3/URG4=0.0 ! -!HONO/ALKA=0.0 +!NO3/UR8=0.0 ! -!HONO/ALKE=0.0 +!NO3/UR17=0.0 ! -!HONO/BIO=0.0 +!NO3/UR7=0.0 ! -!HONO/ARO=0.0 +!NO3/RPR3=-K313*<NO3> + PJAC(:,8,57)=-TPK%K313(:)*PCONC(:,8) ! -!HONO/HCHO=0.0 +!NO3/URG6=0.0 ! -!HONO/ALD=0.0 +!NO3/UR22=0.0 ! -!HONO/KET=0.0 +!NO3/URG7=0.0 ! -!HONO/CARBO=0.0 +!NO3/RPR4=-K320*<NO3> + PJAC(:,8,61)=-TPK%K320(:)*PCONC(:,8) ! -!HONO/ONIT=0.0 +!NO3/RPR7=0.0 ! -!HONO/PAN=0.0 +!NO3/RPG7=0.0 ! -!HONO/OP1=0.0 +!NO3/URG8=0.0 ! -!HONO/OP2=0.0 +!NO3/UR19=0.0 ! -!HONO/ORA1=0.0 +!NO3/URG9=0.0 ! -!HONO/ORA2=0.0 +!NO3/AP7=0.0 ! -!HONO/MO2=0.0 +!NO3/URG10=0.0 ! -!HONO/ALKAP=0.0 +!NO3/RPR1=-K307*<NO3> + PJAC(:,8,69)=-TPK%K307(:)*PCONC(:,8) ! -!HONO/ALKEP=0.0 +!NO3/RPR5=0.0 ! -!HONO/BIOP=0.0 +!NO3/RPR8=-K327*<NO3> + PJAC(:,8,71)=-TPK%K327(:)*PCONC(:,8) ! -!HONO/PHO=0.0 +!NO3/RP10=0.0 ! -!HONO/ADD=+K085*<NO2> - PJAC(:,7,37)=+TPK%K085(:)*PCONC(:,4) +!NO3/RP11=0.0 ! -!HONO/AROP=0.0 +!NO3/RP16=-K338*<NO3> + PJAC(:,8,74)=-TPK%K338(:)*PCONC(:,8) ! -!HONO/CARBOP=0.0 +!NO3/RPRL=0.0 ! -!HONO/OLN=0.0 +!NO3/APAN=0.0 ! -!HONO/XO2=0.0 +!NO3/PAN1=0.0 ! -!HNO3/O3=0.0 +!NO3/PAN2=0.0 ! -!HNO3/H2O2=0.0 +!NO3/PAN3=0.0 ! -!HNO3/NO=0.0 +!NO3/PAN4=0.0 ! -!HNO3/NO2=+K033*<OH> - PJAC(:,8,4)=+TPK%K033(:)*PCONC(:,14) +!NO3/PAN6=0.0 ! -!HNO3/NO3=+0.3*K038*<HO2>+K072*<HCHO>+K073*<ALD>+0.91567*K074*<CARBO>+K075*<ARO -!> - PJAC(:,8,5)=+0.3*TPK%K038(:)*PCONC(:,15)+TPK%K072(:)*PCONC(:,22)+TPK%K073(:)*P& -&CONC(:,23)+0.91567*TPK%K074(:)*PCONC(:,25)+TPK%K075(:)*PCONC(:,21) +!NO3/PAN7=0.0 ! -!HNO3/N2O5=0.0 +!NO3/PAN8=0.0 ! -!HNO3/HONO=0.0 +!NO3/PN10=0.0 ! -!HNO3/HNO3=-K005-K040*<OH> - PJAC(:,8,8)=-TPK%K005(:)-TPK%K040(:)*PCONC(:,14) +!NO3/RO2T=0.0 ! -!HNO3/HNO4=0.0 +!NO3/RO21=0.0 ! -!HNO3/NH3=0.0 +!NO3/RO25=0.0 ! -!HNO3/SO2=0.0 +!NO3/WC_O3=0.0 ! -!HNO3/SULF=0.0 +!NO3/WC_H2O2=0.0 ! -!HNO3/CO=0.0 +!NO3/WC_NO=0.0 ! -!HNO3/OH=+K033*<NO2>-K040*<HNO3> - PJAC(:,8,14)=+TPK%K033(:)*PCONC(:,4)-TPK%K040(:)*PCONC(:,8) +!NO3/WC_NO2=0.0 ! -!HNO3/HO2=+0.3*K038*<NO3> - PJAC(:,8,15)=+0.3*TPK%K038(:)*PCONC(:,5) +!NO3/WC_NO3=+KTC36 + PJAC(:,8,92)=+TPK%KTC36(:) ! -!HNO3/CH4=0.0 +!NO3/WC_N2O5=0.0 ! -!HNO3/ETH=0.0 +!NO3/WC_HONO=0.0 ! -!HNO3/ALKA=0.0 +!NO3/WC_HNO3=0.0 ! -!HNO3/ALKE=0.0 +!NO3/WC_HNO4=0.0 ! -!HNO3/BIO=0.0 +!NO3/WC_NH3=0.0 ! -!HNO3/ARO=+K075*<NO3> - PJAC(:,8,21)=+TPK%K075(:)*PCONC(:,5) +!NO3/WC_OH=0.0 ! -!HNO3/HCHO=+K072*<NO3> - PJAC(:,8,22)=+TPK%K072(:)*PCONC(:,5) +!NO3/WC_HO2=0.0 ! -!HNO3/ALD=+K073*<NO3> - PJAC(:,8,23)=+TPK%K073(:)*PCONC(:,5) +!NO3/WC_CO2=0.0 ! -!HNO3/KET=0.0 +!NO3/WC_SO2=0.0 ! -!HNO3/CARBO=+0.91567*K074*<NO3> - PJAC(:,8,25)=+0.91567*TPK%K074(:)*PCONC(:,5) +!NO3/WC_H2SO4=0.0 ! -!HNO3/ONIT=0.0 +!NO3/WC_RO21=0.0 ! -!HNO3/PAN=0.0 +!NO3/WC_RO25=0.0 ! -!HNO3/OP1=0.0 +!NO3/WC_MEOH=0.0 ! -!HNO3/OP2=0.0 +!NO3/WC_ETOH=0.0 ! -!HNO3/ORA1=0.0 +!NO3/WC_ALCH=0.0 ! -!HNO3/ORA2=0.0 +!NO3/WC_HCHO=0.0 ! -!HNO3/MO2=0.0 +!NO3/WC_ALD2=0.0 ! -!HNO3/ALKAP=0.0 +!NO3/WC_GLY=0.0 ! -!HNO3/ALKEP=0.0 +!NO3/WC_MGLY=0.0 ! -!HNO3/BIOP=0.0 +!NO3/WC_KETL=0.0 ! -!HNO3/PHO=0.0 +!NO3/WC_ORA1=0.0 ! -!HNO3/ADD=0.0 +!NO3/WC_ORA2=0.0 ! -!HNO3/AROP=0.0 +!NO3/WC_ACID=0.0 ! -!HNO3/CARBOP=0.0 +!NO3/WC_RP16=0.0 ! -!HNO3/OLN=0.0 +!NO3/WC_UR21=0.0 ! -!HNO3/XO2=0.0 +!NO3/WC_UR28=0.0 ! -!HNO4/O3=0.0 +!NO3/WC_ACID2=0.0 ! -!HNO4/H2O2=0.0 +!NO3/WC_ASO3=0.0 ! -!HNO4/NO=0.0 +!NO3/WC_ASO4=0.0 ! -!HNO4/NO2=+K036*<HO2> - PJAC(:,9,4)=+TPK%K036(:)*PCONC(:,15) +!NO3/WC_ASO5=0.0 ! -!HNO4/NO3=0.0 +!NO3/WC_AHSO5=0.0 ! -!HNO4/N2O5=0.0 +!NO3/WC_AHMS=0.0 ! -!HNO4/HONO=0.0 +!NO3/WR_O3=0.0 ! -!HNO4/HNO3=0.0 +!NO3/WR_H2O2=0.0 ! -!HNO4/HNO4=-K006-K037-K041*<OH> - PJAC(:,9,9)=-TPK%K006(:)-TPK%K037(:)-TPK%K041(:)*PCONC(:,14) +!NO3/WR_NO=0.0 ! -!HNO4/NH3=0.0 +!NO3/WR_NO2=0.0 ! -!HNO4/SO2=0.0 +!NO3/WR_NO3=+KTR36 + PJAC(:,8,129)=+TPK%KTR36(:) ! -!HNO4/SULF=0.0 +!NO3/WR_N2O5=0.0 ! -!HNO4/CO=0.0 +!NO3/WR_HONO=0.0 ! -!HNO4/OH=-K041*<HNO4> - PJAC(:,9,14)=-TPK%K041(:)*PCONC(:,9) +!NO3/WR_HNO3=0.0 ! -!HNO4/HO2=+K036*<NO2> - PJAC(:,9,15)=+TPK%K036(:)*PCONC(:,4) +!NO3/WR_HNO4=0.0 ! -!HNO4/CH4=0.0 +!NO3/WR_NH3=0.0 ! -!HNO4/ETH=0.0 +!NO3/WR_OH=0.0 ! -!HNO4/ALKA=0.0 +!NO3/WR_HO2=0.0 ! -!HNO4/ALKE=0.0 +!NO3/WR_CO2=0.0 ! -!HNO4/BIO=0.0 +!NO3/WR_SO2=0.0 ! -!HNO4/ARO=0.0 +!NO3/WR_H2SO4=0.0 ! -!HNO4/HCHO=0.0 +!NO3/WR_RO21=0.0 ! -!HNO4/ALD=0.0 +!NO3/WR_RO25=0.0 ! -!HNO4/KET=0.0 +!NO3/WR_MEOH=0.0 ! -!HNO4/CARBO=0.0 +!NO3/WR_ETOH=0.0 ! -!HNO4/ONIT=0.0 +!NO3/WR_ALCH=0.0 ! -!HNO4/PAN=0.0 +!NO3/WR_HCHO=0.0 ! -!HNO4/OP1=0.0 +!NO3/WR_ALD2=0.0 ! -!HNO4/OP2=0.0 +!NO3/WR_GLY=0.0 ! -!HNO4/ORA1=0.0 +!NO3/WR_MGLY=0.0 ! -!HNO4/ORA2=0.0 +!NO3/WR_KETL=0.0 ! -!HNO4/MO2=0.0 +!NO3/WR_ORA1=0.0 ! -!HNO4/ALKAP=0.0 +!NO3/WR_ORA2=0.0 ! -!HNO4/ALKEP=0.0 +!NO3/WR_ACID=0.0 ! -!HNO4/BIOP=0.0 +!NO3/WR_RP16=0.0 ! -!HNO4/PHO=0.0 +!NO3/WR_UR21=0.0 ! -!HNO4/ADD=0.0 +!NO3/WR_UR28=0.0 ! -!HNO4/AROP=0.0 +!NO3/WR_ACID2=0.0 ! -!HNO4/CARBOP=0.0 +!NO3/WR_ASO3=0.0 ! -!HNO4/OLN=0.0 +!NO3/WR_ASO4=0.0 ! -!HNO4/XO2=0.0 +!NO3/WR_ASO5=0.0 ! -!NH3/O3=0.0 +!NO3/WR_AHSO5=0.0 ! -!NH3/H2O2=0.0 +!NO3/WR_AHMS=0.0 ! !NH3/NO=0.0 ! !NH3/NO2=0.0 ! -!NH3/NO3=0.0 -! -!NH3/N2O5=0.0 +!NH3/O3=0.0 ! !NH3/HONO=0.0 ! @@ -24929,4091 +31674,52707 @@ SUBROUTINE SUBJ1 ! !NH3/HNO4=0.0 ! -!NH3/NH3=-K050*<OH> - PJAC(:,10,10)=-TPK%K050(:)*PCONC(:,14) +!NH3/N2O5=0.0 ! -!NH3/SO2=0.0 +!NH3/NO3=0.0 ! -!NH3/SULF=0.0 +!NH3/NH3=-K345*<OH>-KTC10-KTR10 + PJAC(:,9,9)=-TPK%K345(:)*PCONC(:,15)-TPK%KTC10(:)-TPK%KTR10(:) +! +!NH3/HO2=0.0 ! !NH3/CO=0.0 ! -!NH3/OH=-K050*<NH3> - PJAC(:,10,14)=-TPK%K050(:)*PCONC(:,10) +!NH3/H2O2=0.0 ! -!NH3/HO2=0.0 +!NH3/SO2=0.0 ! -!NH3/CH4=0.0 +!NH3/H2SO4=0.0 ! -!NH3/ETH=0.0 +!NH3/OH=-K345*<NH3> + PJAC(:,9,15)=-TPK%K345(:)*PCONC(:,9) ! -!NH3/ALKA=0.0 +!NH3/ETHE=0.0 ! -!NH3/ALKE=0.0 +!NH3/OLEL=0.0 ! -!NH3/BIO=0.0 +!NH3/OLEH=0.0 ! -!NH3/ARO=0.0 +!NH3/ALKL=0.0 ! -!NH3/HCHO=0.0 +!NH3/ALKM=0.0 ! -!NH3/ALD=0.0 +!NH3/ALKH=0.0 ! -!NH3/KET=0.0 +!NH3/AROH=0.0 ! -!NH3/CARBO=0.0 +!NH3/AROL=0.0 ! -!NH3/ONIT=0.0 +!NH3/AROO=0.0 ! -!NH3/PAN=0.0 +!NH3/ARAL=0.0 ! -!NH3/OP1=0.0 +!NH3/ARAC=0.0 ! -!NH3/OP2=0.0 +!NH3/PAH=0.0 ! -!NH3/ORA1=0.0 +!NH3/HCHO=0.0 ! -!NH3/ORA2=0.0 +!NH3/ALD2=0.0 ! -!NH3/MO2=0.0 +!NH3/KETL=0.0 ! -!NH3/ALKAP=0.0 +!NH3/KETH=0.0 ! -!NH3/ALKEP=0.0 +!NH3/MEOH=0.0 ! -!NH3/BIOP=0.0 +!NH3/ETOH=0.0 ! -!NH3/PHO=0.0 +!NH3/ALCH=0.0 ! -!NH3/ADD=0.0 +!NH3/ISOP=0.0 ! -!NH3/AROP=0.0 +!NH3/BIOL=0.0 ! -!NH3/CARBOP=0.0 +!NH3/BIOH=0.0 ! -!NH3/OLN=0.0 +!NH3/MTBE=0.0 ! -!NH3/XO2=0.0 +!NH3/MVK=0.0 ! -RETURN -END SUBROUTINE SUBJ1 +!NH3/MCR=0.0 ! -SUBROUTINE SUBJ2 +!NH3/MGLY=0.0 ! -!Indices 11 a 15 +!NH3/GLY=0.0 ! +!NH3/ORA1=0.0 ! -!SO2/O3=0.0 +!NH3/ORA2=0.0 ! -!SO2/H2O2=0.0 +!NH3/ACID=0.0 ! -!SO2/NO=0.0 +!NH3/UR28=0.0 ! -!SO2/NO2=0.0 +!NH3/UR21=0.0 ! -!SO2/NO3=0.0 +!NH3/URG2=0.0 ! -!SO2/N2O5=0.0 +!NH3/UR26=0.0 ! -!SO2/HONO=0.0 +!NH3/RPG2=0.0 ! -!SO2/HNO3=0.0 +!NH3/RP18=0.0 ! -!SO2/HNO4=0.0 +!NH3/RPG3=0.0 ! -!SO2/NH3=0.0 +!NH3/URG4=0.0 ! -!SO2/SO2=-K052*<OH> - PJAC(:,11,11)=-TPK%K052(:)*PCONC(:,14) +!NH3/UR8=0.0 ! -!SO2/SULF=0.0 +!NH3/UR17=0.0 ! -!SO2/CO=0.0 +!NH3/UR7=0.0 ! -!SO2/OH=-K052*<SO2> - PJAC(:,11,14)=-TPK%K052(:)*PCONC(:,11) +!NH3/RPR3=0.0 ! -!SO2/HO2=0.0 +!NH3/URG6=0.0 ! -!SO2/CH4=0.0 +!NH3/UR22=0.0 ! -!SO2/ETH=0.0 +!NH3/URG7=0.0 ! -!SO2/ALKA=0.0 +!NH3/RPR4=0.0 ! -!SO2/ALKE=0.0 +!NH3/RPR7=0.0 ! -!SO2/BIO=0.0 +!NH3/RPG7=0.0 ! -!SO2/ARO=0.0 +!NH3/URG8=0.0 ! -!SO2/HCHO=0.0 +!NH3/UR19=0.0 ! -!SO2/ALD=0.0 +!NH3/URG9=0.0 ! -!SO2/KET=0.0 +!NH3/AP7=0.0 ! -!SO2/CARBO=0.0 +!NH3/URG10=0.0 ! -!SO2/ONIT=0.0 +!NH3/RPR1=0.0 ! -!SO2/PAN=0.0 +!NH3/RPR5=0.0 ! -!SO2/OP1=0.0 +!NH3/RPR8=0.0 ! -!SO2/OP2=0.0 +!NH3/RP10=0.0 ! -!SO2/ORA1=0.0 +!NH3/RP11=0.0 ! -!SO2/ORA2=0.0 +!NH3/RP16=0.0 ! -!SO2/MO2=0.0 +!NH3/RPRL=0.0 ! -!SO2/ALKAP=0.0 +!NH3/APAN=0.0 ! -!SO2/ALKEP=0.0 +!NH3/PAN1=0.0 ! -!SO2/BIOP=0.0 +!NH3/PAN2=0.0 ! -!SO2/PHO=0.0 +!NH3/PAN3=0.0 ! -!SO2/ADD=0.0 +!NH3/PAN4=0.0 ! -!SO2/AROP=0.0 +!NH3/PAN6=0.0 ! -!SO2/CARBOP=0.0 +!NH3/PAN7=0.0 ! -!SO2/OLN=0.0 +!NH3/PAN8=0.0 ! -!SO2/XO2=0.0 +!NH3/PN10=0.0 ! -!SULF/O3=0.0 +!NH3/RO2T=0.0 ! -!SULF/H2O2=0.0 +!NH3/RO21=0.0 ! -!SULF/NO=0.0 +!NH3/RO25=0.0 ! -!SULF/NO2=0.0 +!NH3/WC_O3=0.0 ! -!SULF/NO3=0.0 +!NH3/WC_H2O2=0.0 ! -!SULF/N2O5=0.0 +!NH3/WC_NO=0.0 ! -!SULF/HONO=0.0 +!NH3/WC_NO2=0.0 ! -!SULF/HNO3=0.0 +!NH3/WC_NO3=0.0 ! -!SULF/HNO4=0.0 +!NH3/WC_N2O5=0.0 ! -!SULF/NH3=0.0 +!NH3/WC_HONO=0.0 ! -!SULF/SO2=+K052*<OH> - PJAC(:,12,11)=+TPK%K052(:)*PCONC(:,14) +!NH3/WC_HNO3=0.0 ! -!SULF/SULF=-K132 - PJAC(:,12,12)=-TPK%K132(:) +!NH3/WC_HNO4=0.0 ! -!SULF/CO=0.0 +!NH3/WC_NH3=+KTC41 + PJAC(:,9,97)=+TPK%KTC41(:) ! -!SULF/OH=+K052*<SO2> - PJAC(:,12,14)=+TPK%K052(:)*PCONC(:,11) +!NH3/WC_OH=0.0 ! -!SULF/HO2=0.0 +!NH3/WC_HO2=0.0 ! -!SULF/CH4=0.0 +!NH3/WC_CO2=0.0 ! -!SULF/ETH=0.0 +!NH3/WC_SO2=0.0 ! -!SULF/ALKA=0.0 +!NH3/WC_H2SO4=0.0 ! -!SULF/ALKE=0.0 +!NH3/WC_RO21=0.0 ! -!SULF/BIO=0.0 +!NH3/WC_RO25=0.0 ! -!SULF/ARO=0.0 +!NH3/WC_MEOH=0.0 ! -!SULF/HCHO=0.0 +!NH3/WC_ETOH=0.0 ! -!SULF/ALD=0.0 +!NH3/WC_ALCH=0.0 ! -!SULF/KET=0.0 +!NH3/WC_HCHO=0.0 ! -!SULF/CARBO=0.0 +!NH3/WC_ALD2=0.0 ! -!SULF/ONIT=0.0 +!NH3/WC_GLY=0.0 ! -!SULF/PAN=0.0 +!NH3/WC_MGLY=0.0 ! -!SULF/OP1=0.0 +!NH3/WC_KETL=0.0 ! -!SULF/OP2=0.0 +!NH3/WC_ORA1=0.0 ! -!SULF/ORA1=0.0 +!NH3/WC_ORA2=0.0 ! -!SULF/ORA2=0.0 +!NH3/WC_ACID=0.0 ! -!SULF/MO2=0.0 +!NH3/WC_RP16=0.0 ! -!SULF/ALKAP=0.0 +!NH3/WC_UR21=0.0 ! -!SULF/ALKEP=0.0 +!NH3/WC_UR28=0.0 ! -!SULF/BIOP=0.0 +!NH3/WC_ACID2=0.0 ! -!SULF/PHO=0.0 +!NH3/WC_ASO3=0.0 ! -!SULF/ADD=0.0 +!NH3/WC_ASO4=0.0 ! -!SULF/AROP=0.0 +!NH3/WC_ASO5=0.0 ! -!SULF/CARBOP=0.0 +!NH3/WC_AHSO5=0.0 ! -!SULF/OLN=0.0 +!NH3/WC_AHMS=0.0 ! -!SULF/XO2=0.0 +!NH3/WR_O3=0.0 ! -!CO/O3=+0.35120*K079*<ALKE>+0.36000*K080*<BIO>+0.64728*K081*<CARBO>+0.13*K082*< -!PAN> - PJAC(:,13,1)=+0.35120*TPK%K079(:)*PCONC(:,19)+0.36000*TPK%K080(:)*PCONC(:,20)+& -&0.64728*TPK%K081(:)*PCONC(:,25)+0.13*TPK%K082(:)*PCONC(:,27) +!NH3/WR_H2O2=0.0 ! -!CO/H2O2=0.0 +!NH3/WR_NO=0.0 ! -!CO/NO=0.0 +!NH3/WR_NO2=0.0 ! -!CO/NO2=0.0 +!NH3/WR_NO3=0.0 ! -!CO/NO3=+K072*<HCHO>+1.33723*K074*<CARBO> - PJAC(:,13,5)=+TPK%K072(:)*PCONC(:,22)+1.33723*TPK%K074(:)*PCONC(:,25) +!NH3/WR_N2O5=0.0 ! -!CO/N2O5=0.0 +!NH3/WR_HONO=0.0 ! -!CO/HONO=0.0 +!NH3/WR_HNO3=0.0 ! -!CO/HNO3=0.0 +!NH3/WR_HNO4=0.0 ! -!CO/HNO4=0.0 +!NH3/WR_NH3=+KTR41 + PJAC(:,9,134)=+TPK%KTR41(:) ! -!CO/NH3=0.0 +!NH3/WR_OH=0.0 ! -!CO/SO2=0.0 +!NH3/WR_HO2=0.0 ! -!CO/SULF=0.0 +!NH3/WR_CO2=0.0 ! -!CO/CO=-K053*<OH> - PJAC(:,13,13)=-TPK%K053(:)*PCONC(:,14) +!NH3/WR_SO2=0.0 ! -!CO/OH=-K053*<CO>+0.00878*K058*<ALKA>+K062*<HCHO>+1.01732*K065*<CARBO> - PJAC(:,13,14)=-TPK%K053(:)*PCONC(:,13)+0.00878*TPK%K058(:)*PCONC(:,18)+TPK%K06& -&2(:)*PCONC(:,22)+1.01732*TPK%K065(:)*PCONC(:,25) +!NH3/WR_H2SO4=0.0 ! -!CO/HO2=0.0 +!NH3/WR_RO21=0.0 ! -!CO/CH4=0.0 +!NH3/WR_RO25=0.0 ! -!CO/ETH=0.0 +!NH3/WR_MEOH=0.0 ! -!CO/ALKA=+0.00878*K058*<OH> - PJAC(:,13,18)=+0.00878*TPK%K058(:)*PCONC(:,14) +!NH3/WR_ETOH=0.0 ! -!CO/ALKE=+0.35120*K079*<O3> - PJAC(:,13,19)=+0.35120*TPK%K079(:)*PCONC(:,1) +!NH3/WR_ALCH=0.0 ! -!CO/BIO=+0.01*K054*<O3P>+0.36000*K080*<O3> - PJAC(:,13,20)=+0.01*TPK%K054(:)*TPK%O3P(:)+0.36000*TPK%K080(:)*PCONC(:,1) +!NH3/WR_HCHO=0.0 ! -!CO/ARO=0.0 +!NH3/WR_ALD2=0.0 ! -!CO/HCHO=+K010+K011+K062*<OH>+K072*<NO3> - PJAC(:,13,22)=+TPK%K010(:)+TPK%K011(:)+TPK%K062(:)*PCONC(:,14)+TPK%K072(:)*PCO& -&NC(:,5) +!NH3/WR_GLY=0.0 ! -!CO/ALD=+K012 - PJAC(:,13,23)=+TPK%K012(:) +!NH3/WR_MGLY=0.0 ! -!CO/KET=0.0 +!NH3/WR_KETL=0.0 ! -!CO/CARBO=+0.91924*K016+1.01732*K065*<OH>+1.33723*K074*<NO3>+0.64728*K081*<O3> - PJAC(:,13,25)=+0.91924*TPK%K016(:)+1.01732*TPK%K065(:)*PCONC(:,14)+1.33723*TPK& -&%K074(:)*PCONC(:,5)+0.64728*TPK%K081(:)*PCONC(:,1) +!NH3/WR_ORA1=0.0 ! -!CO/ONIT=0.0 +!NH3/WR_ORA2=0.0 ! -!CO/PAN=+0.13*K082*<O3> - PJAC(:,13,27)=+0.13*TPK%K082(:)*PCONC(:,1) +!NH3/WR_ACID=0.0 ! -!CO/OP1=0.0 +!NH3/WR_RP16=0.0 ! -!CO/OP2=0.0 +!NH3/WR_UR21=0.0 ! -!CO/ORA1=0.0 +!NH3/WR_UR28=0.0 ! -!CO/ORA2=0.0 +!NH3/WR_ACID2=0.0 ! -!CO/MO2=0.0 +!NH3/WR_ASO3=0.0 ! -!CO/ALKAP=0.0 +!NH3/WR_ASO4=0.0 ! -!CO/ALKEP=0.0 +!NH3/WR_ASO5=0.0 ! -!CO/BIOP=0.0 +!NH3/WR_AHSO5=0.0 ! -!CO/PHO=0.0 +!NH3/WR_AHMS=0.0 ! -!CO/ADD=0.0 +!HO2/NO=-K026*<HO2>+K110*<RO21>+K113*<RO22>+K119*<RO24>+TPK%CF4*K122*<RO25>+TPK +!%CF6*K150*<RO29>+K153*<RO210>+K171*<RO215>+TPK%CF22*K177*<RO217>+TPK%CF20*K180 +!*<RO218>+TPK%CF24*K189*<RO221>+TPK%CF42*K192*<RO222>+TPK%CF44*K195*<RO223>+TPK +!%CF26*K198*<RO224>+TPK%CF28*K207*<RO227>+TPK%CF32*K221*<RO231>+TPK%CF36*K227*< +!RO241>+K231*<RO233>+K234*<RO242>+K238*<RO234>+K241*<RO243>+K245*<RO235>+K248*< +!RO244>+K252*<RO236>+K255*<RO245>+K259*<RO237>+K262*<RO246>+K266*<RO238>+K269*< +!RO247>+K285*<RO249>+K291*<RO251>+K300*<RO254>+K315*<RO256> + PJAC(:,10,1)=-TPK%K026(:)*PCONC(:,10)+TPK%K110(:)*PCONC(:,86)+TPK%K113(:)*TPK%& +&RO22(:)+TPK%K119(:)*TPK%RO24(:)+TPK%CF4*TPK%K122(:)*PCONC(:,87)+TPK%CF6*TPK%K1& +&50(:)*TPK%RO29(:)+TPK%K153(:)*TPK%RO210(:)+TPK%K171(:)*TPK%RO215(:)+TPK%CF22*T& +&PK%K177(:)*TPK%RO217(:)+TPK%CF20*TPK%K180(:)*TPK%RO218(:)+TPK%CF24*TPK%K189(:)& +&*TPK%RO221(:)+TPK%CF42*TPK%K192(:)*TPK%RO222(:)+TPK%CF44*TPK%K195(:)*TPK%RO223& +&(:)+TPK%CF26*TPK%K198(:)*TPK%RO224(:)+TPK%CF28*TPK%K207(:)*TPK%RO227(:)+TPK%CF& +&32*TPK%K221(:)*TPK%RO231(:)+TPK%CF36*TPK%K227(:)*TPK%RO241(:)+TPK%K231(:)*TPK%& +&RO233(:)+TPK%K234(:)*TPK%RO242(:)+TPK%K238(:)*TPK%RO234(:)+TPK%K241(:)*TPK%RO2& +&43(:)+TPK%K245(:)*TPK%RO235(:)+TPK%K248(:)*TPK%RO244(:)+TPK%K252(:)*TPK%RO236(& +&:)+TPK%K255(:)*TPK%RO245(:)+TPK%K259(:)*TPK%RO237(:)+TPK%K262(:)*TPK%RO246(:)+& +&TPK%K266(:)*TPK%RO238(:)+TPK%K269(:)*TPK%RO247(:)+TPK%K285(:)*TPK%RO249(:)+TPK& +&%K291(:)*TPK%RO251(:)+TPK%K300(:)*TPK%RO254(:)+TPK%K315(:)*TPK%RO256(:) +! +!HO2/NO2=-K027*<HO2> + PJAC(:,10,2)=-TPK%K027(:)*PCONC(:,10) +! +!HO2/O3=+K025*<OH>-K030*<HO2>+0.06*K051*<ETHE>+0.28*K056*<OLEL>+0.366*K066*<ISO +!P>+0.28*K076*<OLEH>+0.445*K086*<BIOL>+0.28*K281*<MVK>+0.41*K282*<MCR> + PJAC(:,10,3)=+TPK%K025(:)*PCONC(:,15)-TPK%K030(:)*PCONC(:,10)+0.06*TPK%K051(:)& +&*PCONC(:,16)+0.28*TPK%K056(:)*PCONC(:,17)+0.366*TPK%K066(:)*PCONC(:,35)+0.28*T& +&PK%K076(:)*PCONC(:,18)+0.445*TPK%K086(:)*PCONC(:,36)+0.28*TPK%K281(:)*PCONC(:,& +&39)+0.41*TPK%K282(:)*PCONC(:,40) +! +!HO2/HONO=+0.1*K020 + PJAC(:,10,4)=+0.1*TPK%K020(:) ! -!CO/AROP=0.0 +!HO2/HNO3=0.0 ! -!CO/CARBOP=0.0 +!HO2/HNO4=+K028 + PJAC(:,10,6)=+TPK%K028(:) ! -!CO/OLN=0.0 +!HO2/N2O5=0.0 ! -!CO/XO2=0.0 +!HO2/NO3=-K033*<HO2>+K040*<OH>+K047*<HCHO> + PJAC(:,10,8)=-TPK%K033(:)*PCONC(:,10)+TPK%K040(:)*PCONC(:,15)+TPK%K047(:)*PCON& +&C(:,28) ! -!OH/O3=-K023*<OH>+K024*<HO2>+0.39435*K079*<ALKE>+0.28000*K080*<BIO>+0.20595*K08 -!1*<CARBO>+0.036*K082*<PAN>+K087*<ADD> - PJAC(:,14,1)=-TPK%K023(:)*PCONC(:,14)+TPK%K024(:)*PCONC(:,15)+0.39435*TPK%K079& -&(:)*PCONC(:,19)+0.28000*TPK%K080(:)*PCONC(:,20)+0.20595*TPK%K081(:)*PCONC(:,25& -&)+0.036*TPK%K082(:)*PCONC(:,27)+TPK%K087(:)*PCONC(:,37) +!HO2/NH3=0.0 ! -!OH/H2O2=+K009+K009-K026*<OH> - PJAC(:,14,2)=+TPK%K009(:)+TPK%K009(:)-TPK%K026(:)*PCONC(:,14) +!HO2/HO2=-K026*<NO>-K027*<NO2>-K030*<O3>-K031*<HO2>-K031*<HO2>-K031*<HO2>-K031* +!<HO2>-K032*<H2O>*<HO2>-K032*<H2O>*<HO2>-K032*<H2O>*<HO2>-K032*<H2O>*<HO2>-K033 +!*<NO3>-K042*<OH>+K094*<RO2T>-K094*<RO2T>+K112*<RO21>-K112*<RO21>+K115*<RO22>-K +!115*<RO22>+K118*<RO23>-K118*<RO23>+K121*<RO24>-K121*<RO24>+K124*<RO25>-K124*<R +!O25>-K142*<RO26>-K146*<RO27>-K148*<RO28>+K152*<RO29>-K152*<RO29>+K155*<RO210>- +!K155*<RO210>-K158*<RO211>-K161*<RO212>-K164*<RO213>-K166*<RO239>-K170*<RO214>+ +!K173*<RO215>-K173*<RO215>-K176*<RO216>+K179*<RO217>-K179*<RO217>+K182*<RO218>- +!K182*<RO218>-K185*<RO219>-K188*<RO220>+K191*<RO221>-K191*<RO221>+K194*<RO222>- +!K194*<RO222>+K197*<RO223>-K197*<RO223>+K200*<RO224>-K200*<RO224>-K203*<RO225>- +!K206*<RO226>+K209*<RO227>-K209*<RO227>-K212*<RO228>-K215*<RO229>-K218*<RO240>- +!K220*<RO230>+K223*<RO231>-K223*<RO231>-K226*<RO232>+K229*<RO241>-K229*<RO241>+ +!K233*<RO233>-K233*<RO233>+K236*<RO242>-K236*<RO242>+K240*<RO234>-K240*<RO234>+ +!K243*<RO243>-K243*<RO243>+K247*<RO235>-K247*<RO235>+K250*<RO244>-K250*<RO244>+ +!K254*<RO236>-K254*<RO236>+K257*<RO245>-K257*<RO245>+K261*<RO237>-K261*<RO237>+ +!K264*<RO246>-K264*<RO246>+K268*<RO238>-K268*<RO238>+K271*<RO247>-K271*<RO247>- +!K279*<RO248>+K287*<RO249>-K287*<RO249>-K289*<RO250>+K292*<RO251>-K292*<RO251>- +!K295*<RO252>-K298*<RO253>-K301*<RO254>-K310*<RO255>-K318*<RO256>-K332*<RO257>- +!K341*<RO258>-KTC12-KTR12 + PJAC(:,10,10)=-TPK%K026(:)*PCONC(:,1)-TPK%K027(:)*PCONC(:,2)-TPK%K030(:)*PCONC& +&(:,3)-TPK%K031(:)*PCONC(:,10)-TPK%K031(:)*PCONC(:,10)-TPK%K031(:)*PCONC(:,10)-& +&TPK%K031(:)*PCONC(:,10)-TPK%K032(:)*TPK%H2O(:)*PCONC(:,10)-TPK%K032(:)*TPK%H2O& +&(:)*PCONC(:,10)-TPK%K032(:)*TPK%H2O(:)*PCONC(:,10)-TPK%K032(:)*TPK%H2O(:)*PCON& +&C(:,10)-TPK%K033(:)*PCONC(:,8)-TPK%K042(:)*PCONC(:,15)+TPK%K094(:)*PCONC(:,85)& +&-TPK%K094(:)*PCONC(:,85)+TPK%K112(:)*PCONC(:,86)-TPK%K112(:)*PCONC(:,86)+TPK%K& +&115(:)*TPK%RO22(:)-TPK%K115(:)*TPK%RO22(:)+TPK%K118(:)*TPK%RO23(:)-TPK%K118(:)& +&*TPK%RO23(:)+TPK%K121(:)*TPK%RO24(:)-TPK%K121(:)*TPK%RO24(:)+TPK%K124(:)*PCONC& +&(:,87)-TPK%K124(:)*PCONC(:,87)-TPK%K142(:)*TPK%RO26(:)-TPK%K146(:)*TPK%RO27(:)& +&-TPK%K148(:)*TPK%RO28(:)+TPK%K152(:)*TPK%RO29(:)-TPK%K152(:)*TPK%RO29(:)+TPK%K& +&155(:)*TPK%RO210(:)-TPK%K155(:)*TPK%RO210(:)-TPK%K158(:)*TPK%RO211(:)-TPK%K161& +&(:)*TPK%RO212(:)-TPK%K164(:)*TPK%RO213(:)-TPK%K166(:)*TPK%RO239(:)-TPK%K170(:)& +&*TPK%RO214(:)+TPK%K173(:)*TPK%RO215(:)-TPK%K173(:)*TPK%RO215(:)-TPK%K176(:)*TP& +&K%RO216(:)+TPK%K179(:)*TPK%RO217(:)-TPK%K179(:)*TPK%RO217(:)+TPK%K182(:)*TPK%R& +&O218(:)-TPK%K182(:)*TPK%RO218(:)-TPK%K185(:)*TPK%RO219(:)-TPK%K188(:)*TPK%RO22& +&0(:)+TPK%K191(:)*TPK%RO221(:)-TPK%K191(:)*TPK%RO221(:)+TPK%K194(:)*TPK%RO222(:& +&)-TPK%K194(:)*TPK%RO222(:)+TPK%K197(:)*TPK%RO223(:)-TPK%K197(:)*TPK%RO223(:)+T& +&PK%K200(:)*TPK%RO224(:)-TPK%K200(:)*TPK%RO224(:)-TPK%K203(:)*TPK%RO225(:)-TPK%& +&K206(:)*TPK%RO226(:)+TPK%K209(:)*TPK%RO227(:)-TPK%K209(:)*TPK%RO227(:)-TPK%K21& +&2(:)*TPK%RO228(:)-TPK%K215(:)*TPK%RO229(:)-TPK%K218(:)*TPK%RO240(:)-TPK%K220(:& +&)*TPK%RO230(:)+TPK%K223(:)*TPK%RO231(:)-TPK%K223(:)*TPK%RO231(:)-TPK%K226(:)*T& +&PK%RO232(:)+TPK%K229(:)*TPK%RO241(:)-TPK%K229(:)*TPK%RO241(:)+TPK%K233(:)*TPK%& +&RO233(:)-TPK%K233(:)*TPK%RO233(:)+TPK%K236(:)*TPK%RO242(:)-TPK%K236(:)*TPK%RO2& +&42(:)+TPK%K240(:)*TPK%RO234(:)-TPK%K240(:)*TPK%RO234(:)+TPK%K243(:)*TPK%RO243(& +&:)-TPK%K243(:)*TPK%RO243(:)+TPK%K247(:)*TPK%RO235(:)-TPK%K247(:)*TPK%RO235(:)+& +&TPK%K250(:)*TPK%RO244(:)-TPK%K250(:)*TPK%RO244(:)+TPK%K254(:)*TPK%RO236(:)-TPK& +&%K254(:)*TPK%RO236(:)+TPK%K257(:)*TPK%RO245(:)-TPK%K257(:)*TPK%RO245(:)+TPK%K2& +&61(:)*TPK%RO237(:)-TPK%K261(:)*TPK%RO237(:)+TPK%K264(:)*TPK%RO246(:)-TPK%K264(& +&:)*TPK%RO246(:)+TPK%K268(:)*TPK%RO238(:)-TPK%K268(:)*TPK%RO238(:)+TPK%K271(:)*& +&TPK%RO247(:)-TPK%K271(:)*TPK%RO247(:)-TPK%K279(:)*TPK%RO248(:)+TPK%K287(:)*TPK& +&%RO249(:)-TPK%K287(:)*TPK%RO249(:)-TPK%K289(:)*TPK%RO250(:)+TPK%K292(:)*TPK%RO& +&251(:)-TPK%K292(:)*TPK%RO251(:)-TPK%K295(:)*TPK%RO252(:)-TPK%K298(:)*TPK%RO253& +&(:)-TPK%K301(:)*TPK%RO254(:)-TPK%K310(:)*TPK%RO255(:)-TPK%K318(:)*TPK%RO256(:)& +&-TPK%K332(:)*TPK%RO257(:)-TPK%K341(:)*TPK%RO258(:)-TPK%KTC12(:)-TPK%KTR12(:) +! +!HO2/CO=+K024*<OH> + PJAC(:,10,11)=+TPK%K024(:)*PCONC(:,15) +! +!HO2/H2O2=+K037*<OH> + PJAC(:,10,12)=+TPK%K037(:)*PCONC(:,15) +! +!HO2/SO2=+K035*<OH> + PJAC(:,10,13)=+TPK%K035(:)*PCONC(:,15) +! +!HO2/H2SO4=0.0 +! +!HO2/OH=+K024*<CO>+K025*<O3>+K035*<SO2>+K037*<H2O2>+K040*<NO3>-K042*<HO2>+K046* +!<HCHO>+K048*<MEOH>+TPK%CF1*K053*<ETOH>+0.16*K073*<AROO>+0.16*K079*<AROL>+0.16* +!K080*<AROH>+TPK%CF48*K082*<ARAL>+0.16*K083*<ARAC>+0.16*K092*<PAH>+K325*<RP10>+ +!K347*<ORA1> + PJAC(:,10,15)=+TPK%K024(:)*PCONC(:,11)+TPK%K025(:)*PCONC(:,3)+TPK%K035(:)*PCON& +&C(:,13)+TPK%K037(:)*PCONC(:,12)+TPK%K040(:)*PCONC(:,8)-TPK%K042(:)*PCONC(:,10)& +&+TPK%K046(:)*PCONC(:,28)+TPK%K048(:)*PCONC(:,32)+TPK%CF1*TPK%K053(:)*PCONC(:,3& +&3)+0.16*TPK%K073(:)*PCONC(:,24)+0.16*TPK%K079(:)*PCONC(:,23)+0.16*TPK%K080(:)*& +&PCONC(:,22)+TPK%CF48*TPK%K082(:)*PCONC(:,25)+0.16*TPK%K083(:)*PCONC(:,26)+0.16& +&*TPK%K092(:)*PCONC(:,27)+TPK%K325(:)*PCONC(:,72)+TPK%K347(:)*PCONC(:,43) +! +!HO2/ETHE=+0.06*K051*<O3>+K052*<O> + PJAC(:,10,16)=+0.06*TPK%K051(:)*PCONC(:,3)+TPK%K052(:)*TPK%O(:) +! +!HO2/OLEL=+0.28*K056*<O3> + PJAC(:,10,17)=+0.28*TPK%K056(:)*PCONC(:,3) +! +!HO2/OLEH=+0.28*K076*<O3> + PJAC(:,10,18)=+0.28*TPK%K076(:)*PCONC(:,3) +! +!HO2/ALKL=0.0 +! +!HO2/ALKM=0.0 +! +!HO2/ALKH=0.0 +! +!HO2/AROH=+0.16*K080*<OH> + PJAC(:,10,22)=+0.16*TPK%K080(:)*PCONC(:,15) +! +!HO2/AROL=+0.16*K079*<OH> + PJAC(:,10,23)=+0.16*TPK%K079(:)*PCONC(:,15) +! +!HO2/AROO=+0.16*K073*<OH> + PJAC(:,10,24)=+0.16*TPK%K073(:)*PCONC(:,15) +! +!HO2/ARAL=+TPK%CF48*K082*<OH> + PJAC(:,10,25)=+TPK%CF48*TPK%K082(:)*PCONC(:,15) +! +!HO2/ARAC=+0.16*K083*<OH> + PJAC(:,10,26)=+0.16*TPK%K083(:)*PCONC(:,15) +! +!HO2/PAH=+0.16*K092*<OH> + PJAC(:,10,27)=+0.16*TPK%K092(:)*PCONC(:,15) +! +!HO2/HCHO=+2.0*K044+K046*<OH>+K047*<NO3> + PJAC(:,10,28)=+2.0*TPK%K044(:)+TPK%K046(:)*PCONC(:,15)+TPK%K047(:)*PCONC(:,8) +! +!HO2/ALD2=+K059 + PJAC(:,10,29)=+TPK%K059(:) ! -!OH/NO=-K032*<OH>+K035*<HO2> - PJAC(:,14,3)=-TPK%K032(:)*PCONC(:,14)+TPK%K035(:)*PCONC(:,15) +!HO2/KETL=0.0 ! -!OH/NO2=-K033*<OH> - PJAC(:,14,4)=-TPK%K033(:)*PCONC(:,14) +!HO2/KETH=0.0 ! -!OH/NO3=-K034*<OH>+0.7*K038*<HO2> - PJAC(:,14,5)=-TPK%K034(:)*PCONC(:,14)+0.7*TPK%K038(:)*PCONC(:,15) +!HO2/MEOH=+K048*<OH> + PJAC(:,10,32)=+TPK%K048(:)*PCONC(:,15) ! -!OH/N2O5=0.0 +!HO2/ETOH=+TPK%CF1*K053*<OH> + PJAC(:,10,33)=+TPK%CF1*TPK%K053(:)*PCONC(:,15) ! -!OH/HONO=+K004-K039*<OH> - PJAC(:,14,7)=+TPK%K004(:)-TPK%K039(:)*PCONC(:,14) +!HO2/ALCH=0.0 ! -!OH/HNO3=+K005-K040*<OH> - PJAC(:,14,8)=+TPK%K005(:)-TPK%K040(:)*PCONC(:,14) +!HO2/ISOP=+0.366*K066*<O3> + PJAC(:,10,35)=+0.366*TPK%K066(:)*PCONC(:,3) ! -!OH/HNO4=+0.35*K006-K041*<OH> - PJAC(:,14,9)=+0.35*TPK%K006(:)-TPK%K041(:)*PCONC(:,14) +!HO2/BIOL=+0.445*K086*<O3> + PJAC(:,10,36)=+0.445*TPK%K086(:)*PCONC(:,3) ! -!OH/NH3=-K050*<OH> - PJAC(:,14,10)=-TPK%K050(:)*PCONC(:,14) +!HO2/BIOH=0.0 ! -!OH/SO2=-K052*<OH> - PJAC(:,14,11)=-TPK%K052(:)*PCONC(:,14) +!HO2/MTBE=0.0 ! -!OH/SULF=0.0 +!HO2/MVK=+0.28*K281*<O3> + PJAC(:,10,39)=+0.28*TPK%K281(:)*PCONC(:,3) ! -!OH/CO=-K053*<OH> - PJAC(:,14,13)=-TPK%K053(:)*PCONC(:,14) +!HO2/MCR=+0.41*K282*<O3>+0.15*K284*<O> + PJAC(:,10,40)=+0.41*TPK%K282(:)*PCONC(:,3)+0.15*TPK%K284(:)*TPK%O(:) ! -!OH/OH=-K023*<O3>-K025*<HO2>-K026*<H2O2>-K032*<NO>-K033*<NO2>-K034*<NO3>-K039*< -!HONO>-K040*<HNO3>-K041*<HNO4>-K050*<NH3>-K051*<H2>-K052*<SO2>-K053*<CO>-K056*< -!CH4>-K057*<ETH>+0.00878*K058*<ALKA>-K058*<ALKA>-K059*<ALKE>-K060*<BIO>-K061*<A -!RO>-K062*<HCHO>-K063*<ALD>-K064*<KET>-K065*<CARBO>-K066*<ORA1>-K067*<ORA2>+0.3 -!5*K068*<OP1>-K068*<OP1>+0.44925*K069*<OP2>-K069*<OP2>-K070*<PAN>-K071*<ONIT> - PJAC(:,14,14)=-TPK%K023(:)*PCONC(:,1)-TPK%K025(:)*PCONC(:,15)-TPK%K026(:)*PCON& -&C(:,2)-TPK%K032(:)*PCONC(:,3)-TPK%K033(:)*PCONC(:,4)-TPK%K034(:)*PCONC(:,5)-TP& -&K%K039(:)*PCONC(:,7)-TPK%K040(:)*PCONC(:,8)-TPK%K041(:)*PCONC(:,9)-TPK%K050(:)& -&*PCONC(:,10)-TPK%K051(:)*TPK%H2(:)-TPK%K052(:)*PCONC(:,11)-TPK%K053(:)*PCONC(:& -&,13)-TPK%K056(:)*PCONC(:,16)-TPK%K057(:)*PCONC(:,17)+0.00878*TPK%K058(:)*PCONC& -&(:,18)-TPK%K058(:)*PCONC(:,18)-TPK%K059(:)*PCONC(:,19)-TPK%K060(:)*PCONC(:,20)& -&-TPK%K061(:)*PCONC(:,21)-TPK%K062(:)*PCONC(:,22)-TPK%K063(:)*PCONC(:,23)-TPK%K& -&064(:)*PCONC(:,24)-TPK%K065(:)*PCONC(:,25)-TPK%K066(:)*PCONC(:,30)-TPK%K067(:)& -&*PCONC(:,31)+0.35*TPK%K068(:)*PCONC(:,28)-TPK%K068(:)*PCONC(:,28)+0.44925*TPK%& -&K069(:)*PCONC(:,29)-TPK%K069(:)*PCONC(:,29)-TPK%K070(:)*PCONC(:,27)-TPK%K071(:& -&)*PCONC(:,26) +!HO2/MGLY=+K276 + PJAC(:,10,41)=+TPK%K276(:) ! -!OH/HO2=+K024*<O3>-K025*<OH>+K035*<NO>+0.7*K038*<NO3> - PJAC(:,14,15)=+TPK%K024(:)*PCONC(:,1)-TPK%K025(:)*PCONC(:,14)+TPK%K035(:)*PCON& -&C(:,3)+0.7*TPK%K038(:)*PCONC(:,5) +!HO2/GLY=0.0 ! -!OH/CH4=-K056*<OH> - PJAC(:,14,16)=-TPK%K056(:)*PCONC(:,14) +!HO2/ORA1=+K347*<OH> + PJAC(:,10,43)=+TPK%K347(:)*PCONC(:,15) ! -!OH/ETH=-K057*<OH> - PJAC(:,14,17)=-TPK%K057(:)*PCONC(:,14) +!HO2/ORA2=0.0 ! -!OH/ALKA=+0.00878*K058*<OH>-K058*<OH> - PJAC(:,14,18)=+0.00878*TPK%K058(:)*PCONC(:,14)-TPK%K058(:)*PCONC(:,14) +!HO2/ACID=0.0 ! -!OH/ALKE=-K059*<OH>+0.39435*K079*<O3> - PJAC(:,14,19)=-TPK%K059(:)*PCONC(:,14)+0.39435*TPK%K079(:)*PCONC(:,1) +!HO2/UR28=0.0 ! -!OH/BIO=+0.02*K054*<O3P>-K060*<OH>+0.28000*K080*<O3> - PJAC(:,14,20)=+0.02*TPK%K054(:)*TPK%O3P(:)-TPK%K060(:)*PCONC(:,14)+0.28000*TPK& -&%K080(:)*PCONC(:,1) +!HO2/UR21=0.0 ! -!OH/ARO=-K061*<OH> - PJAC(:,14,21)=-TPK%K061(:)*PCONC(:,14) +!HO2/URG2=0.0 ! -!OH/HCHO=-K062*<OH> - PJAC(:,14,22)=-TPK%K062(:)*PCONC(:,14) +!HO2/UR26=0.0 ! -!OH/ALD=-K063*<OH> - PJAC(:,14,23)=-TPK%K063(:)*PCONC(:,14) +!HO2/RPG2=0.0 ! -!OH/KET=-K064*<OH> - PJAC(:,14,24)=-TPK%K064(:)*PCONC(:,14) +!HO2/RP18=0.0 ! -!OH/CARBO=-K065*<OH>+0.20595*K081*<O3> - PJAC(:,14,25)=-TPK%K065(:)*PCONC(:,14)+0.20595*TPK%K081(:)*PCONC(:,1) +!HO2/RPG3=0.0 ! -!OH/ONIT=-K071*<OH> - PJAC(:,14,26)=-TPK%K071(:)*PCONC(:,14) +!HO2/URG4=0.0 ! -!OH/PAN=-K070*<OH>+0.036*K082*<O3> - PJAC(:,14,27)=-TPK%K070(:)*PCONC(:,14)+0.036*TPK%K082(:)*PCONC(:,1) +!HO2/UR8=0.0 ! -!OH/OP1=+K013+0.35*K068*<OH>-K068*<OH> - PJAC(:,14,28)=+TPK%K013(:)+0.35*TPK%K068(:)*PCONC(:,14)-TPK%K068(:)*PCONC(:,14& -&) +!HO2/UR17=0.0 ! -!OH/OP2=+K014+0.44925*K069*<OH>-K069*<OH> - PJAC(:,14,29)=+TPK%K014(:)+0.44925*TPK%K069(:)*PCONC(:,14)-TPK%K069(:)*PCONC(:& -&,14) +!HO2/UR7=0.0 ! -!OH/ORA1=-K066*<OH> - PJAC(:,14,30)=-TPK%K066(:)*PCONC(:,14) +!HO2/RPR3=+2.*K314 + PJAC(:,10,57)=+2.*TPK%K314(:) ! -!OH/ORA2=-K067*<OH> - PJAC(:,14,31)=-TPK%K067(:)*PCONC(:,14) +!HO2/URG6=0.0 ! -!OH/MO2=0.0 +!HO2/UR22=0.0 ! -!OH/ALKAP=0.0 +!HO2/URG7=0.0 ! -!OH/ALKEP=0.0 +!HO2/RPR4=0.0 ! -!OH/BIOP=0.0 +!HO2/RPR7=0.0 ! -!OH/PHO=0.0 +!HO2/RPG7=0.0 ! -!OH/ADD=+K087*<O3> - PJAC(:,14,37)=+TPK%K087(:)*PCONC(:,1) +!HO2/URG8=0.0 ! -!OH/AROP=0.0 +!HO2/UR19=0.0 ! -!OH/CARBOP=0.0 +!HO2/URG9=0.0 ! -!OH/OLN=0.0 +!HO2/AP7=0.0 ! -!OH/XO2=0.0 +!HO2/URG10=0.0 ! -!HO2/O3=+K023*<OH>-K024*<HO2>+0.23451*K079*<ALKE>+0.30000*K080*<BIO>+0.28441*K0 -!81*<CARBO>+0.08*K082*<PAN> - PJAC(:,15,1)=+TPK%K023(:)*PCONC(:,14)-TPK%K024(:)*PCONC(:,15)+0.23451*TPK%K079& -&(:)*PCONC(:,19)+0.30000*TPK%K080(:)*PCONC(:,20)+0.28441*TPK%K081(:)*PCONC(:,25& -&)+0.08*TPK%K082(:)*PCONC(:,27) +!HO2/RPR1=+K308 + PJAC(:,10,69)=+TPK%K308(:) ! -!HO2/H2O2=+K026*<OH> - PJAC(:,15,2)=+TPK%K026(:)*PCONC(:,14) +!HO2/RPR5=0.0 ! -!HO2/NO=-K035*<HO2>+K090*<MO2>+0.74265*K091*<ALKAP>+K092*<ALKEP>+0.84700*K093*< -!BIOP>+0.95115*K094*<AROP>+0.12334*K095*<CARBOP>+0.18401*K096*<OLN> - PJAC(:,15,3)=-TPK%K035(:)*PCONC(:,15)+TPK%K090(:)*PCONC(:,32)+0.74265*TPK%K091& -&(:)*PCONC(:,33)+TPK%K092(:)*PCONC(:,34)+0.84700*TPK%K093(:)*PCONC(:,35)+0.9511& -&5*TPK%K094(:)*PCONC(:,38)+0.12334*TPK%K095(:)*PCONC(:,39)+0.18401*TPK%K096(:)*& -&PCONC(:,40) +!HO2/RPR8=+K329+K330 + PJAC(:,10,71)=+TPK%K329(:)+TPK%K330(:) ! -!HO2/NO2=-K036*<HO2> - PJAC(:,15,4)=-TPK%K036(:)*PCONC(:,15) +!HO2/RP10=+K325*<OH> + PJAC(:,10,72)=+TPK%K325(:)*PCONC(:,15) ! -!HO2/NO3=+K034*<OH>-K038*<HO2>+K072*<HCHO>+0.63217*K074*<CARBO>+K119*<MO2>+0.81 -!290*K120*<ALKAP>+K121*<ALKEP>+K122*<BIOP>+K123*<AROP>+0.04915*K124*<CARBOP>+0. -!25928*K125*<OLN> - PJAC(:,15,5)=+TPK%K034(:)*PCONC(:,14)-TPK%K038(:)*PCONC(:,15)+TPK%K072(:)*PCON& -&C(:,22)+0.63217*TPK%K074(:)*PCONC(:,25)+TPK%K119(:)*PCONC(:,32)+0.81290*TPK%K1& -&20(:)*PCONC(:,33)+TPK%K121(:)*PCONC(:,34)+TPK%K122(:)*PCONC(:,35)+TPK%K123(:)*& -&PCONC(:,38)+0.04915*TPK%K124(:)*PCONC(:,39)+0.25928*TPK%K125(:)*PCONC(:,40) +!HO2/RP11=0.0 ! -!HO2/N2O5=0.0 +!HO2/RP16=+K339 + PJAC(:,10,74)=+TPK%K339(:) ! -!HO2/HONO=0.0 +!HO2/RPRL=0.0 ! -!HO2/HNO3=0.0 +!HO2/APAN=0.0 ! -!HO2/HNO4=+0.65*K006+K037 - PJAC(:,15,9)=+0.65*TPK%K006(:)+TPK%K037(:) +!HO2/PAN1=0.0 ! -!HO2/NH3=0.0 +!HO2/PAN2=0.0 ! -!HO2/SO2=+K052*<OH> - PJAC(:,15,11)=+TPK%K052(:)*PCONC(:,14) +!HO2/PAN3=0.0 ! -!HO2/SULF=0.0 +!HO2/PAN4=0.0 ! -!HO2/CO=+K053*<OH> - PJAC(:,15,13)=+TPK%K053(:)*PCONC(:,14) +!HO2/PAN6=0.0 ! -!HO2/OH=+K023*<O3>-K025*<HO2>+K026*<H2O2>+K034*<NO3>+K051*<H2>+K052*<SO2>+K053* -!<CO>+0.12793*K058*<ALKA>+0.10318*K061*<ARO>+K062*<HCHO>+0.51208*K065*<CARBO>+K -!066*<ORA1>+0.02915*K069*<OP2>+0.28107*K070*<PAN> - PJAC(:,15,14)=+TPK%K023(:)*PCONC(:,1)-TPK%K025(:)*PCONC(:,15)+TPK%K026(:)*PCON& -&C(:,2)+TPK%K034(:)*PCONC(:,5)+TPK%K051(:)*TPK%H2(:)+TPK%K052(:)*PCONC(:,11)+TP& -&K%K053(:)*PCONC(:,13)+0.12793*TPK%K058(:)*PCONC(:,18)+0.10318*TPK%K061(:)*PCON& -&C(:,21)+TPK%K062(:)*PCONC(:,22)+0.51208*TPK%K065(:)*PCONC(:,25)+TPK%K066(:)*PC& -&ONC(:,30)+0.02915*TPK%K069(:)*PCONC(:,29)+0.28107*TPK%K070(:)*PCONC(:,27) +!HO2/PAN7=0.0 ! -!HO2/HO2=-K024*<O3>-K025*<OH>-K027*<HO2>-K027*<HO2>-K027*<HO2>-K027*<HO2>-K028* -!<HO2>*<H2O>-K028*<HO2>*<H2O>-K028*<HO2>*<H2O>-K028*<HO2>*<H2O>-K035*<NO>-K036* -!<NO2>-K038*<NO3>-K084*<PHO>-K097*<MO2>-K098*<ALKAP>-K099*<ALKEP>-K0100*<BIOP>- -!K0101*<AROP>-K0102*<CARBOP>-K103*<OLN>-K126*<XO2> - PJAC(:,15,15)=-TPK%K024(:)*PCONC(:,1)-TPK%K025(:)*PCONC(:,14)-TPK%K027(:)*PCON& -&C(:,15)-TPK%K027(:)*PCONC(:,15)-TPK%K027(:)*PCONC(:,15)-TPK%K027(:)*PCONC(:,15& -&)-TPK%K028(:)*PCONC(:,15)*TPK%H2O(:)-TPK%K028(:)*PCONC(:,15)*TPK%H2O(:)-TPK%K0& -&28(:)*PCONC(:,15)*TPK%H2O(:)-TPK%K028(:)*PCONC(:,15)*TPK%H2O(:)-TPK%K035(:)*PC& -&ONC(:,3)-TPK%K036(:)*PCONC(:,4)-TPK%K038(:)*PCONC(:,5)-TPK%K084(:)*PCONC(:,36)& -&-TPK%K097(:)*PCONC(:,32)-TPK%K098(:)*PCONC(:,33)-TPK%K099(:)*PCONC(:,34)-TPK%K& -&0100(:)*PCONC(:,35)-TPK%K0101(:)*PCONC(:,38)-TPK%K0102(:)*PCONC(:,39)-TPK%K103& -&(:)*PCONC(:,40)-TPK%K126(:)*PCONC(:,41) +!HO2/PAN8=0.0 ! -!HO2/CH4=0.0 +!HO2/PN10=0.0 ! -!HO2/ETH=0.0 +!HO2/RO2T=+K094*<HO2>-K094*<HO2>+K111*<RO21>+K114*<RO22>+K117*<RO23>+K120*<RO24 +!>+K123*<RO25>+K151*<RO29>+K154*<RO210>+K172*<RO215>+K178*<RO217>+K181*<RO218>+ +!K190*<RO221>+K193*<RO222>+K196*<RO223>+K199*<RO224>+K208*<RO227>+K222*<RO231>+ +!K228*<RO241>+K232*<RO233>+K235*<RO242>+K239*<RO234>+K242*<RO243>+K246*<RO235>+ +!K249*<RO244>+K253*<RO236>+K256*<RO245>+K260*<RO237>+K263*<RO246>+K267*<RO238>+ +!K270*<RO247>+K286*<RO249>+K293*<RO251>+K302*<RO254>+K319*<RO256> + PJAC(:,10,85)=+TPK%K094(:)*PCONC(:,10)-TPK%K094(:)*PCONC(:,10)+TPK%K111(:)*PCO& +&NC(:,86)+TPK%K114(:)*TPK%RO22(:)+TPK%K117(:)*TPK%RO23(:)+TPK%K120(:)*TPK%RO24(& +&:)+TPK%K123(:)*PCONC(:,87)+TPK%K151(:)*TPK%RO29(:)+TPK%K154(:)*TPK%RO210(:)+TP& +&K%K172(:)*TPK%RO215(:)+TPK%K178(:)*TPK%RO217(:)+TPK%K181(:)*TPK%RO218(:)+TPK%K& +&190(:)*TPK%RO221(:)+TPK%K193(:)*TPK%RO222(:)+TPK%K196(:)*TPK%RO223(:)+TPK%K199& +&(:)*TPK%RO224(:)+TPK%K208(:)*TPK%RO227(:)+TPK%K222(:)*TPK%RO231(:)+TPK%K228(:)& +&*TPK%RO241(:)+TPK%K232(:)*TPK%RO233(:)+TPK%K235(:)*TPK%RO242(:)+TPK%K239(:)*TP& +&K%RO234(:)+TPK%K242(:)*TPK%RO243(:)+TPK%K246(:)*TPK%RO235(:)+TPK%K249(:)*TPK%R& +&O244(:)+TPK%K253(:)*TPK%RO236(:)+TPK%K256(:)*TPK%RO245(:)+TPK%K260(:)*TPK%RO23& +&7(:)+TPK%K263(:)*TPK%RO246(:)+TPK%K267(:)*TPK%RO238(:)+TPK%K270(:)*TPK%RO247(:& +&)+TPK%K286(:)*TPK%RO249(:)+TPK%K293(:)*TPK%RO251(:)+TPK%K302(:)*TPK%RO254(:)+T& +&PK%K319(:)*TPK%RO256(:) ! -!HO2/ALKA=+0.12793*K058*<OH> - PJAC(:,15,18)=+0.12793*TPK%K058(:)*PCONC(:,14) +!HO2/RO21=+K110*<NO>+K111*<RO2T>+K112*<HO2>-K112*<HO2> + PJAC(:,10,86)=+TPK%K110(:)*PCONC(:,1)+TPK%K111(:)*PCONC(:,85)+TPK%K112(:)*PCON& +&C(:,10)-TPK%K112(:)*PCONC(:,10) ! -!HO2/ALKE=+0.23451*K079*<O3> - PJAC(:,15,19)=+0.23451*TPK%K079(:)*PCONC(:,1) +!HO2/RO25=+TPK%CF4*K122*<NO>+K123*<RO2T>+K124*<HO2>-K124*<HO2> + PJAC(:,10,87)=+TPK%CF4*TPK%K122(:)*PCONC(:,1)+TPK%K123(:)*PCONC(:,85)+TPK%K124& +&(:)*PCONC(:,10)-TPK%K124(:)*PCONC(:,10) ! -!HO2/BIO=+0.28*K054*<O3P>+0.30000*K080*<O3> - PJAC(:,15,20)=+0.28*TPK%K054(:)*TPK%O3P(:)+0.30000*TPK%K080(:)*PCONC(:,1) +!HO2/WC_O3=0.0 ! -!HO2/ARO=+0.10318*K061*<OH> - PJAC(:,15,21)=+0.10318*TPK%K061(:)*PCONC(:,14) +!HO2/WC_H2O2=0.0 ! -!HO2/HCHO=+K011+K011+K062*<OH>+K072*<NO3> - PJAC(:,15,22)=+TPK%K011(:)+TPK%K011(:)+TPK%K062(:)*PCONC(:,14)+TPK%K072(:)*PCO& -&NC(:,5) +!HO2/WC_NO=0.0 ! -!HO2/ALD=+K012 - PJAC(:,15,23)=+TPK%K012(:) +!HO2/WC_NO2=0.0 ! -!HO2/KET=0.0 +!HO2/WC_NO3=0.0 ! -!HO2/CARBO=+0.75830*K016+0.51208*K065*<OH>+0.63217*K074*<NO3>+0.28441*K081*<O3> - PJAC(:,15,25)=+0.75830*TPK%K016(:)+0.51208*TPK%K065(:)*PCONC(:,14)+0.63217*TPK& -&%K074(:)*PCONC(:,5)+0.28441*TPK%K081(:)*PCONC(:,1) +!HO2/WC_N2O5=0.0 ! -!HO2/ONIT=+K017 - PJAC(:,15,26)=+TPK%K017(:) +!HO2/WC_HONO=0.0 ! -!HO2/PAN=+0.28107*K070*<OH>+0.08*K082*<O3> - PJAC(:,15,27)=+0.28107*TPK%K070(:)*PCONC(:,14)+0.08*TPK%K082(:)*PCONC(:,1) +!HO2/WC_HNO3=0.0 ! -!HO2/OP1=+K013 - PJAC(:,15,28)=+TPK%K013(:) +!HO2/WC_HNO4=0.0 ! -!HO2/OP2=+0.96205*K014+0.02915*K069*<OH> - PJAC(:,15,29)=+0.96205*TPK%K014(:)+0.02915*TPK%K069(:)*PCONC(:,14) +!HO2/WC_NH3=0.0 ! -!HO2/ORA1=+K066*<OH> - PJAC(:,15,30)=+TPK%K066(:)*PCONC(:,14) +!HO2/WC_OH=0.0 ! -!HO2/ORA2=0.0 +!HO2/WC_HO2=+KTC43 + PJAC(:,10,99)=+TPK%KTC43(:) ! -!HO2/MO2=+K090*<NO>-K097*<HO2>+0.66*K104*<MO2>+0.66*K104*<MO2>+0.98383*K105*<AL -!KAP>+K106*<ALKEP>+1.00000*K107*<BIOP>+1.02767*K108*<AROP>+0.82998*K109*<CARBOP -!>+0.67560*K110*<OLN>+K119*<NO3>+K127*<XO2> - PJAC(:,15,32)=+TPK%K090(:)*PCONC(:,3)-TPK%K097(:)*PCONC(:,15)+0.66*TPK%K104(:)& -&*PCONC(:,32)+0.66*TPK%K104(:)*PCONC(:,32)+0.98383*TPK%K105(:)*PCONC(:,33)+TPK%& -&K106(:)*PCONC(:,34)+1.00000*TPK%K107(:)*PCONC(:,35)+1.02767*TPK%K108(:)*PCONC(& -&:,38)+0.82998*TPK%K109(:)*PCONC(:,39)+0.67560*TPK%K110(:)*PCONC(:,40)+TPK%K119& -&(:)*PCONC(:,5)+TPK%K127(:)*PCONC(:,41) -! -!HO2/ALKAP=+0.74265*K091*<NO>-K098*<HO2>+0.98383*K105*<MO2>+0.48079*K111*<CARBO -!P>+0.81290*K120*<NO3> - PJAC(:,15,33)=+0.74265*TPK%K091(:)*PCONC(:,3)-TPK%K098(:)*PCONC(:,15)+0.98383*& -&TPK%K105(:)*PCONC(:,32)+0.48079*TPK%K111(:)*PCONC(:,39)+0.81290*TPK%K120(:)*PC& -&ONC(:,5) -! -!HO2/ALKEP=+K092*<NO>-K099*<HO2>+K106*<MO2>+0.50078*K112*<CARBOP>+K121*<NO3> - PJAC(:,15,34)=+TPK%K092(:)*PCONC(:,3)-TPK%K099(:)*PCONC(:,15)+TPK%K106(:)*PCON& -&C(:,32)+0.50078*TPK%K112(:)*PCONC(:,39)+TPK%K121(:)*PCONC(:,5) -! -!HO2/BIOP=+0.84700*K093*<NO>-K0100*<HO2>+1.00000*K107*<MO2>+0.50600*K113*<CARBO -!P>+K122*<NO3> - PJAC(:,15,35)=+0.84700*TPK%K093(:)*PCONC(:,3)-TPK%K0100(:)*PCONC(:,15)+1.00000& -&*TPK%K107(:)*PCONC(:,32)+0.50600*TPK%K113(:)*PCONC(:,39)+TPK%K122(:)*PCONC(:,5& -&) +!HO2/WC_CO2=0.0 ! -!HO2/PHO=-K084*<HO2> - PJAC(:,15,36)=-TPK%K084(:)*PCONC(:,15) +!HO2/WC_SO2=0.0 ! -!HO2/ADD=+0.02*K086*<O2> - PJAC(:,15,37)=+0.02*TPK%K086(:)*TPK%O2(:) +!HO2/WC_H2SO4=0.0 ! -!HO2/AROP=+0.95115*K094*<NO>-K0101*<HO2>+1.02767*K108*<MO2>+K114*<CARBOP>+K123* -!<NO3> - PJAC(:,15,38)=+0.95115*TPK%K094(:)*PCONC(:,3)-TPK%K0101(:)*PCONC(:,15)+1.02767& -&*TPK%K108(:)*PCONC(:,32)+TPK%K114(:)*PCONC(:,39)+TPK%K123(:)*PCONC(:,5) +!HO2/WC_RO21=0.0 ! -!HO2/CARBOP=+0.12334*K095*<NO>-K0102*<HO2>+0.82998*K109*<MO2>+0.48079*K111*<ALK -!AP>+0.50078*K112*<ALKEP>+0.50600*K113*<BIOP>+K114*<AROP>+0.07566*K115*<CARBOP> -!+0.07566*K115*<CARBOP>+0.17599*K116*<OLN>+0.04915*K124*<NO3> - PJAC(:,15,39)=+0.12334*TPK%K095(:)*PCONC(:,3)-TPK%K0102(:)*PCONC(:,15)+0.82998& -&*TPK%K109(:)*PCONC(:,32)+0.48079*TPK%K111(:)*PCONC(:,33)+0.50078*TPK%K112(:)*P& -&CONC(:,34)+0.50600*TPK%K113(:)*PCONC(:,35)+TPK%K114(:)*PCONC(:,38)+0.07566*TPK& -&%K115(:)*PCONC(:,39)+0.07566*TPK%K115(:)*PCONC(:,39)+0.17599*TPK%K116(:)*PCONC& -&(:,40)+0.04915*TPK%K124(:)*PCONC(:,5) +!HO2/WC_RO25=0.0 ! -!HO2/OLN=+0.18401*K096*<NO>-K103*<HO2>+0.67560*K110*<MO2>+0.17599*K116*<CARBOP> -!+K117*<OLN>+K117*<OLN>+0.00000*K118*<OLN>+0.00000*K118*<OLN>+0.25928*K125*<NO3 -!> - PJAC(:,15,40)=+0.18401*TPK%K096(:)*PCONC(:,3)-TPK%K103(:)*PCONC(:,15)+0.67560*& -&TPK%K110(:)*PCONC(:,32)+0.17599*TPK%K116(:)*PCONC(:,39)+TPK%K117(:)*PCONC(:,40& -&)+TPK%K117(:)*PCONC(:,40)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K118(:)*& -&PCONC(:,40)+0.25928*TPK%K125(:)*PCONC(:,5) +!HO2/WC_MEOH=0.0 ! -!HO2/XO2=-K126*<HO2>+K127*<MO2> - PJAC(:,15,41)=-TPK%K126(:)*PCONC(:,15)+TPK%K127(:)*PCONC(:,32) +!HO2/WC_ETOH=0.0 ! -RETURN -END SUBROUTINE SUBJ2 +!HO2/WC_ALCH=0.0 ! -SUBROUTINE SUBJ3 +!HO2/WC_HCHO=0.0 ! -!Indices 16 a 20 +!HO2/WC_ALD2=0.0 ! +!HO2/WC_GLY=0.0 ! -!CH4/O3=+0.04300*K079*<ALKE> - PJAC(:,16,1)=+0.04300*TPK%K079(:)*PCONC(:,19) +!HO2/WC_MGLY=0.0 ! -!CH4/H2O2=0.0 +!HO2/WC_KETL=0.0 ! -!CH4/NO=0.0 +!HO2/WC_ORA1=0.0 ! -!CH4/NO2=0.0 +!HO2/WC_ORA2=0.0 ! -!CH4/NO3=0.0 +!HO2/WC_ACID=0.0 ! -!CH4/N2O5=0.0 +!HO2/WC_RP16=0.0 ! -!CH4/HONO=0.0 +!HO2/WC_UR21=0.0 ! -!CH4/HNO3=0.0 +!HO2/WC_UR28=0.0 ! -!CH4/HNO4=0.0 +!HO2/WC_ACID2=0.0 ! -!CH4/NH3=0.0 +!HO2/WC_ASO3=0.0 ! -!CH4/SO2=0.0 +!HO2/WC_ASO4=0.0 ! -!CH4/SULF=0.0 +!HO2/WC_ASO5=0.0 ! -!CH4/CO=0.0 +!HO2/WC_AHSO5=0.0 ! -!CH4/OH=-K056*<CH4> - PJAC(:,16,14)=-TPK%K056(:)*PCONC(:,16) +!HO2/WC_AHMS=0.0 ! -!CH4/HO2=0.0 +!HO2/WR_O3=0.0 ! -!CH4/CH4=-K056*<OH> - PJAC(:,16,16)=-TPK%K056(:)*PCONC(:,14) +!HO2/WR_H2O2=0.0 ! -!CH4/ETH=0.0 +!HO2/WR_NO=0.0 ! -!CH4/ALKA=0.0 +!HO2/WR_NO2=0.0 ! -!CH4/ALKE=+0.04300*K079*<O3> - PJAC(:,16,19)=+0.04300*TPK%K079(:)*PCONC(:,1) +!HO2/WR_NO3=0.0 ! -!CH4/BIO=0.0 +!HO2/WR_N2O5=0.0 ! -!CH4/ARO=0.0 +!HO2/WR_HONO=0.0 ! -!CH4/HCHO=0.0 +!HO2/WR_HNO3=0.0 ! -!CH4/ALD=0.0 +!HO2/WR_HNO4=0.0 ! -!CH4/KET=0.0 +!HO2/WR_NH3=0.0 ! -!CH4/CARBO=0.0 +!HO2/WR_OH=0.0 ! -!CH4/ONIT=0.0 +!HO2/WR_HO2=+KTR43 + PJAC(:,10,136)=+TPK%KTR43(:) ! -!CH4/PAN=0.0 +!HO2/WR_CO2=0.0 ! -!CH4/OP1=0.0 +!HO2/WR_SO2=0.0 ! -!CH4/OP2=0.0 +!HO2/WR_H2SO4=0.0 ! -!CH4/ORA1=0.0 +!HO2/WR_RO21=0.0 ! -!CH4/ORA2=0.0 +!HO2/WR_RO25=0.0 ! -!CH4/MO2=0.0 +!HO2/WR_MEOH=0.0 ! -!CH4/ALKAP=0.0 +!HO2/WR_ETOH=0.0 ! -!CH4/ALKEP=0.0 +!HO2/WR_ALCH=0.0 ! -!CH4/BIOP=0.0 +!HO2/WR_HCHO=0.0 ! -!CH4/PHO=0.0 +!HO2/WR_ALD2=0.0 ! -!CH4/ADD=0.0 +!HO2/WR_GLY=0.0 ! -!CH4/AROP=0.0 +!HO2/WR_MGLY=0.0 ! -!CH4/CARBOP=0.0 +!HO2/WR_KETL=0.0 ! -!CH4/OLN=0.0 +!HO2/WR_ORA1=0.0 ! -!CH4/XO2=0.0 +!HO2/WR_ORA2=0.0 ! -!ETH/O3=+0.03196*K079*<ALKE> - PJAC(:,17,1)=+0.03196*TPK%K079(:)*PCONC(:,19) +!HO2/WR_ACID=0.0 ! -!ETH/H2O2=0.0 +!HO2/WR_RP16=0.0 ! -!ETH/NO=0.0 +!HO2/WR_UR21=0.0 ! -!ETH/NO2=0.0 +!HO2/WR_UR28=0.0 ! -!ETH/NO3=0.0 +!HO2/WR_ACID2=0.0 ! -!ETH/N2O5=0.0 +!HO2/WR_ASO3=0.0 ! -!ETH/HONO=0.0 +!HO2/WR_ASO4=0.0 ! -!ETH/HNO3=0.0 +!HO2/WR_ASO5=0.0 ! -!ETH/HNO4=0.0 +!HO2/WR_AHSO5=0.0 ! -!ETH/NH3=0.0 +!HO2/WR_AHMS=0.0 ! -!ETH/SO2=0.0 +RETURN +END SUBROUTINE SUBJ1 ! -!ETH/SULF=0.0 +SUBROUTINE SUBJ2 ! -!ETH/CO=0.0 +!Indices 11 a 15 ! -!ETH/OH=-K057*<ETH> - PJAC(:,17,14)=-TPK%K057(:)*PCONC(:,17) ! -!ETH/HO2=0.0 +!CO/NO=+K119*<RO24>+K300*<RO254>+K340*<RO258> + PJAC(:,11,1)=+TPK%K119(:)*TPK%RO24(:)+TPK%K300(:)*TPK%RO254(:)+TPK%K340(:)*TPK& +&%RO258(:) ! -!ETH/CH4=0.0 +!CO/NO2=0.0 ! -!ETH/ETH=-K057*<OH> - PJAC(:,17,17)=-TPK%K057(:)*PCONC(:,14) +!CO/O3=+0.315*K051*<ETHE>+0.56*K056*<OLEL>+0.461*K066*<ISOP>+0.56*K076*<OLEH>+0 +!.445*K086*<BIOL>+0.445*K090*<BIOH>+0.56*K281*<MVK>+0.41*K282*<MCR> + PJAC(:,11,3)=+0.315*TPK%K051(:)*PCONC(:,16)+0.56*TPK%K056(:)*PCONC(:,17)+0.461& +&*TPK%K066(:)*PCONC(:,35)+0.56*TPK%K076(:)*PCONC(:,18)+0.445*TPK%K086(:)*PCONC(& +&:,36)+0.445*TPK%K090(:)*PCONC(:,37)+0.56*TPK%K281(:)*PCONC(:,39)+0.41*TPK%K282& +&(:)*PCONC(:,40) ! -!ETH/ALKA=0.0 +!CO/HONO=0.0 ! -!ETH/ALKE=+0.03196*K079*<O3> - PJAC(:,17,19)=+0.03196*TPK%K079(:)*PCONC(:,1) +!CO/HNO3=0.0 ! -!ETH/BIO=0.0 +!CO/HNO4=0.0 ! -!ETH/ARO=0.0 +!CO/N2O5=0.0 ! -!ETH/HCHO=0.0 +!CO/NO3=+K047*<HCHO> + PJAC(:,11,8)=+TPK%K047(:)*PCONC(:,28) ! -!ETH/ALD=0.0 +!CO/NH3=0.0 ! -!ETH/KET=0.0 +!CO/HO2=+K121*<RO24> + PJAC(:,11,10)=+TPK%K121(:)*TPK%RO24(:) ! -!ETH/CARBO=0.0 +!CO/CO=-K024*<OH> + PJAC(:,11,11)=-TPK%K024(:)*PCONC(:,15) ! -!ETH/ONIT=0.0 +!CO/H2O2=0.0 ! -!ETH/PAN=0.0 +!CO/SO2=0.0 ! -!ETH/OP1=0.0 +!CO/H2SO4=0.0 ! -!ETH/OP2=0.0 +!CO/OH=-K024*<CO>+K046*<HCHO> + PJAC(:,11,15)=-TPK%K024(:)*PCONC(:,11)+TPK%K046(:)*PCONC(:,28) ! -!ETH/ORA1=0.0 +!CO/ETHE=+0.315*K051*<O3>+0.6*K052*<O> + PJAC(:,11,16)=+0.315*TPK%K051(:)*PCONC(:,3)+0.6*TPK%K052(:)*TPK%O(:) ! -!ETH/ORA2=0.0 +!CO/OLEL=+0.56*K056*<O3> + PJAC(:,11,17)=+0.56*TPK%K056(:)*PCONC(:,3) ! -!ETH/MO2=0.0 +!CO/OLEH=+0.56*K076*<O3> + PJAC(:,11,18)=+0.56*TPK%K076(:)*PCONC(:,3) ! -!ETH/ALKAP=0.0 +!CO/ALKL=0.0 ! -!ETH/ALKEP=0.0 +!CO/ALKM=0.0 ! -!ETH/BIOP=0.0 +!CO/ALKH=0.0 ! -!ETH/PHO=0.0 +!CO/AROH=0.0 ! -!ETH/ADD=0.0 +!CO/AROL=0.0 ! -!ETH/AROP=0.0 +!CO/AROO=0.0 ! -!ETH/CARBOP=0.0 +!CO/ARAL=0.0 ! -!ETH/OLN=0.0 +!CO/ARAC=0.0 ! -!ETH/XO2=0.0 +!CO/PAH=0.0 ! -!ALKA/O3=0.0 +!CO/HCHO=+K044+K045+K046*<OH>+K047*<NO3> + PJAC(:,11,28)=+TPK%K044(:)+TPK%K045(:)+TPK%K046(:)*PCONC(:,15)+TPK%K047(:)*PCO& +&NC(:,8) ! -!ALKA/H2O2=0.0 +!CO/ALD2=+K059 + PJAC(:,11,29)=+TPK%K059(:) ! -!ALKA/NO=0.0 +!CO/KETL=0.0 ! -!ALKA/NO2=0.0 +!CO/KETH=0.0 ! -!ALKA/NO3=0.0 +!CO/MEOH=0.0 ! -!ALKA/N2O5=0.0 +!CO/ETOH=0.0 ! -!ALKA/HONO=0.0 +!CO/ALCH=0.0 ! -!ALKA/HNO3=0.0 +!CO/ISOP=+0.461*K066*<O3> + PJAC(:,11,35)=+0.461*TPK%K066(:)*PCONC(:,3) ! -!ALKA/HNO4=0.0 +!CO/BIOL=+0.445*K086*<O3> + PJAC(:,11,36)=+0.445*TPK%K086(:)*PCONC(:,3) ! -!ALKA/NH3=0.0 +!CO/BIOH=+0.445*K090*<O3> + PJAC(:,11,37)=+0.445*TPK%K090(:)*PCONC(:,3) ! -!ALKA/SO2=0.0 +!CO/MTBE=0.0 ! -!ALKA/SULF=0.0 +!CO/MVK=+0.56*K281*<O3> + PJAC(:,11,39)=+0.56*TPK%K281(:)*PCONC(:,3) ! -!ALKA/CO=0.0 +!CO/MCR=+0.41*K282*<O3>+0.15*K284*<O> + PJAC(:,11,40)=+0.41*TPK%K282(:)*PCONC(:,3)+0.15*TPK%K284(:)*TPK%O(:) ! -!ALKA/OH=-K058*<ALKA> - PJAC(:,18,14)=-TPK%K058(:)*PCONC(:,18) +!CO/MGLY=+K276 + PJAC(:,11,41)=+TPK%K276(:) ! -!ALKA/HO2=0.0 +!CO/GLY=0.0 ! -!ALKA/CH4=0.0 -! -!ALKA/ETH=0.0 -! -!ALKA/ALKA=-K058*<OH> - PJAC(:,18,18)=-TPK%K058(:)*PCONC(:,14) -! -!ALKA/ALKE=0.0 -! -!ALKA/BIO=0.0 -! -!ALKA/ARO=0.0 -! -!ALKA/HCHO=0.0 -! -!ALKA/ALD=0.0 -! -!ALKA/KET=0.0 -! -!ALKA/CARBO=0.0 -! -!ALKA/ONIT=0.0 -! -!ALKA/PAN=0.0 -! -!ALKA/OP1=0.0 -! -!ALKA/OP2=0.0 -! -!ALKA/ORA1=0.0 -! -!ALKA/ORA2=0.0 -! -!ALKA/MO2=0.0 -! -!ALKA/ALKAP=0.0 -! -!ALKA/ALKEP=0.0 -! -!ALKA/BIOP=0.0 -! -!ALKA/PHO=0.0 -! -!ALKA/ADD=0.0 -! -!ALKA/AROP=0.0 -! -!ALKA/CARBOP=0.0 -! -!ALKA/OLN=0.0 -! -!ALKA/XO2=0.0 -! -!ALKE/O3=+0.00000*K079*<ALKE>-K079*<ALKE>+0.37388*K080*<BIO> - PJAC(:,19,1)=+0.00000*TPK%K079(:)*PCONC(:,19)-TPK%K079(:)*PCONC(:,19)+0.37388*& -&TPK%K080(:)*PCONC(:,20) -! -!ALKE/H2O2=0.0 -! -!ALKE/NO=+0.37815*K093*<BIOP> - PJAC(:,19,3)=+0.37815*TPK%K093(:)*PCONC(:,35) -! -!ALKE/NO2=0.0 -! -!ALKE/NO3=-K076*<ALKE>+0.42729*K122*<BIOP> - PJAC(:,19,5)=-TPK%K076(:)*PCONC(:,19)+0.42729*TPK%K122(:)*PCONC(:,35) -! -!ALKE/N2O5=0.0 -! -!ALKE/HONO=0.0 -! -!ALKE/HNO3=0.0 -! -!ALKE/HNO4=0.0 -! -!ALKE/NH3=0.0 -! -!ALKE/SO2=0.0 -! -!ALKE/SULF=0.0 -! -!ALKE/CO=0.0 -! -!ALKE/OH=-K059*<ALKE> - PJAC(:,19,14)=-TPK%K059(:)*PCONC(:,19) -! -!ALKE/HO2=0.0 -! -!ALKE/CH4=0.0 -! -!ALKE/ETH=0.0 -! -!ALKE/ALKA=0.0 -! -!ALKE/ALKE=-K059*<OH>-K076*<NO3>+0.00000*K079*<O3>-K079*<O3> - PJAC(:,19,19)=-TPK%K059(:)*PCONC(:,14)-TPK%K076(:)*PCONC(:,5)+0.00000*TPK%K079& -&(:)*PCONC(:,1)-TPK%K079(:)*PCONC(:,1) -! -!ALKE/BIO=+0.91868*K054*<O3P>+0.37388*K080*<O3> - PJAC(:,19,20)=+0.91868*TPK%K054(:)*TPK%O3P(:)+0.37388*TPK%K080(:)*PCONC(:,1) +!CO/ORA1=0.0 ! -!ALKE/ARO=0.0 +!CO/ORA2=0.0 ! -!ALKE/HCHO=0.0 +!CO/ACID=0.0 ! -!ALKE/ALD=0.0 +!CO/UR28=0.0 ! -!ALKE/KET=0.0 +!CO/UR21=0.0 ! -!ALKE/CARBO=0.0 +!CO/URG2=0.0 ! -!ALKE/ONIT=0.0 +!CO/UR26=0.0 ! -!ALKE/PAN=0.0 +!CO/RPG2=0.0 ! -!ALKE/OP1=0.0 +!CO/RP18=0.0 ! -!ALKE/OP2=0.0 +!CO/RPG3=0.0 ! -!ALKE/ORA1=0.0 +!CO/URG4=0.0 ! -!ALKE/ORA2=0.0 +!CO/UR8=0.0 ! -!ALKE/MO2=+0.48074*K107*<BIOP> - PJAC(:,19,32)=+0.48074*TPK%K107(:)*PCONC(:,35) +!CO/UR17=0.0 ! -!ALKE/ALKAP=0.0 +!CO/UR7=0.0 ! -!ALKE/ALKEP=0.0 +!CO/RPR3=+K314 + PJAC(:,11,57)=+TPK%K314(:) ! -!ALKE/BIOP=+0.37815*K093*<NO>+0.48074*K107*<MO2>+0.24463*K113*<CARBOP>+0.42729* -!K122*<NO3> - PJAC(:,19,35)=+0.37815*TPK%K093(:)*PCONC(:,3)+0.48074*TPK%K107(:)*PCONC(:,32)+& -&0.24463*TPK%K113(:)*PCONC(:,39)+0.42729*TPK%K122(:)*PCONC(:,5) +!CO/URG6=0.0 ! -!ALKE/PHO=0.0 +!CO/UR22=0.0 ! -!ALKE/ADD=0.0 +!CO/URG7=0.0 ! -!ALKE/AROP=0.0 +!CO/RPR4=0.0 ! -!ALKE/CARBOP=+0.24463*K113*<BIOP> - PJAC(:,19,39)=+0.24463*TPK%K113(:)*PCONC(:,35) +!CO/RPR7=0.0 ! -!ALKE/OLN=0.0 +!CO/RPG7=0.0 ! -!ALKE/XO2=0.0 +!CO/URG8=0.0 ! -!BIO/O3=-K080*<BIO> - PJAC(:,20,1)=-TPK%K080(:)*PCONC(:,20) +!CO/UR19=0.0 ! -!BIO/H2O2=0.0 +!CO/URG9=0.0 ! -!BIO/NO=0.0 +!CO/AP7=0.0 ! -!BIO/NO2=0.0 +!CO/URG10=0.0 ! -!BIO/NO3=-K077*<BIO> - PJAC(:,20,5)=-TPK%K077(:)*PCONC(:,20) +!CO/RPR1=+K308 + PJAC(:,11,69)=+TPK%K308(:) ! -!BIO/N2O5=0.0 +!CO/RPR5=0.0 ! -!BIO/HONO=0.0 +!CO/RPR8=+K329 + PJAC(:,11,71)=+TPK%K329(:) ! -!BIO/HNO3=0.0 +!CO/RP10=0.0 ! -!BIO/HNO4=0.0 +!CO/RP11=0.0 ! -!BIO/NH3=0.0 +!CO/RP16=+2.*K339 + PJAC(:,11,74)=+2.*TPK%K339(:) ! -!BIO/SO2=0.0 +!CO/RPRL=0.0 ! -!BIO/SULF=0.0 +!CO/APAN=0.0 ! -!BIO/CO=0.0 +!CO/PAN1=0.0 ! -!BIO/OH=-K060*<BIO> - PJAC(:,20,14)=-TPK%K060(:)*PCONC(:,20) +!CO/PAN2=0.0 ! -!BIO/HO2=0.0 +!CO/PAN3=0.0 ! -!BIO/CH4=0.0 +!CO/PAN4=0.0 ! -!BIO/ETH=0.0 +!CO/PAN6=0.0 ! -!BIO/ALKA=0.0 +!CO/PAN7=0.0 ! -!BIO/ALKE=0.0 +!CO/PAN8=0.0 ! -!BIO/BIO=-K054*<O3P>-K060*<OH>-K077*<NO3>-K080*<O3> - PJAC(:,20,20)=-TPK%K054(:)*TPK%O3P(:)-TPK%K060(:)*PCONC(:,14)-TPK%K077(:)*PCON& -&C(:,5)-TPK%K080(:)*PCONC(:,1) +!CO/PN10=0.0 ! -!BIO/ARO=0.0 +!CO/RO2T=+K120*<RO24>+K302*<RO254>+K342*<RO258> + PJAC(:,11,85)=+TPK%K120(:)*TPK%RO24(:)+TPK%K302(:)*TPK%RO254(:)+TPK%K342(:)*TP& +&K%RO258(:) ! -!BIO/HCHO=0.0 +!CO/RO21=0.0 ! -!BIO/ALD=0.0 +!CO/RO25=0.0 ! -!BIO/KET=0.0 +!CO/WC_O3=0.0 ! -!BIO/CARBO=0.0 +!CO/WC_H2O2=0.0 ! -!BIO/ONIT=0.0 +!CO/WC_NO=0.0 ! -!BIO/PAN=0.0 +!CO/WC_NO2=0.0 ! -!BIO/OP1=0.0 +!CO/WC_NO3=0.0 ! -!BIO/OP2=0.0 +!CO/WC_N2O5=0.0 ! -!BIO/ORA1=0.0 +!CO/WC_HONO=0.0 ! -!BIO/ORA2=0.0 +!CO/WC_HNO3=0.0 ! -!BIO/MO2=0.0 +!CO/WC_HNO4=0.0 ! -!BIO/ALKAP=0.0 +!CO/WC_NH3=0.0 ! -!BIO/ALKEP=0.0 +!CO/WC_OH=0.0 ! -!BIO/BIOP=0.0 +!CO/WC_HO2=0.0 ! -!BIO/PHO=0.0 +!CO/WC_CO2=0.0 ! -!BIO/ADD=0.0 +!CO/WC_SO2=0.0 ! -!BIO/AROP=0.0 +!CO/WC_H2SO4=0.0 ! -!BIO/CARBOP=0.0 +!CO/WC_RO21=0.0 ! -!BIO/OLN=0.0 +!CO/WC_RO25=0.0 ! -!BIO/XO2=0.0 +!CO/WC_MEOH=0.0 ! -RETURN -END SUBROUTINE SUBJ3 +!CO/WC_ETOH=0.0 ! -SUBROUTINE SUBJ4 +!CO/WC_ALCH=0.0 ! -!Indices 21 a 25 -! -! -!ARO/O3=+K087*<ADD> - PJAC(:,21,1)=+TPK%K087(:)*PCONC(:,37) +!CO/WC_HCHO=0.0 ! -!ARO/H2O2=0.0 +!CO/WC_ALD2=0.0 ! -!ARO/NO=0.0 +!CO/WC_GLY=0.0 ! -!ARO/NO2=+0.10670*K083*<PHO>+K085*<ADD> - PJAC(:,21,4)=+0.10670*TPK%K083(:)*PCONC(:,36)+TPK%K085(:)*PCONC(:,37) +!CO/WC_MGLY=0.0 ! -!ARO/NO3=-K075*<ARO> - PJAC(:,21,5)=-TPK%K075(:)*PCONC(:,21) +!CO/WC_KETL=0.0 ! -!ARO/N2O5=0.0 +!CO/WC_ORA1=0.0 ! -!ARO/HONO=0.0 +!CO/WC_ORA2=0.0 ! -!ARO/HNO3=0.0 +!CO/WC_ACID=0.0 ! -!ARO/HNO4=0.0 +!CO/WC_RP16=0.0 ! -!ARO/NH3=0.0 +!CO/WC_UR21=0.0 ! -!ARO/SO2=0.0 +!CO/WC_UR28=0.0 ! -!ARO/SULF=0.0 +!CO/WC_ACID2=0.0 ! -!ARO/CO=0.0 +!CO/WC_ASO3=0.0 ! -!ARO/OH=-K061*<ARO> - PJAC(:,21,14)=-TPK%K061(:)*PCONC(:,21) +!CO/WC_ASO4=0.0 ! -!ARO/HO2=+1.06698*K084*<PHO> - PJAC(:,21,15)=+1.06698*TPK%K084(:)*PCONC(:,36) +!CO/WC_ASO5=0.0 ! -!ARO/CH4=0.0 +!CO/WC_AHSO5=0.0 ! -!ARO/ETH=0.0 +!CO/WC_AHMS=0.0 ! -!ARO/ALKA=0.0 +!CO/WR_O3=0.0 ! -!ARO/ALKE=0.0 +!CO/WR_H2O2=0.0 ! -!ARO/BIO=0.0 +!CO/WR_NO=0.0 ! -!ARO/ARO=-K061*<OH>-K075*<NO3> - PJAC(:,21,21)=-TPK%K061(:)*PCONC(:,14)-TPK%K075(:)*PCONC(:,5) +!CO/WR_NO2=0.0 ! -!ARO/HCHO=0.0 +!CO/WR_NO3=0.0 ! -!ARO/ALD=0.0 +!CO/WR_N2O5=0.0 ! -!ARO/KET=0.0 +!CO/WR_HONO=0.0 ! -!ARO/CARBO=0.0 +!CO/WR_HNO3=0.0 ! -!ARO/ONIT=0.0 +!CO/WR_HNO4=0.0 ! -!ARO/PAN=0.0 +!CO/WR_NH3=0.0 ! -!ARO/OP1=0.0 +!CO/WR_OH=0.0 ! -!ARO/OP2=0.0 +!CO/WR_HO2=0.0 ! -!ARO/ORA1=0.0 +!CO/WR_CO2=0.0 ! -!ARO/ORA2=0.0 +!CO/WR_SO2=0.0 ! -!ARO/MO2=0.0 +!CO/WR_H2SO4=0.0 ! -!ARO/ALKAP=0.0 +!CO/WR_RO21=0.0 ! -!ARO/ALKEP=0.0 +!CO/WR_RO25=0.0 ! -!ARO/BIOP=0.0 +!CO/WR_MEOH=0.0 ! -!ARO/PHO=+0.10670*K083*<NO2>+1.06698*K084*<HO2> - PJAC(:,21,36)=+0.10670*TPK%K083(:)*PCONC(:,4)+1.06698*TPK%K084(:)*PCONC(:,15) +!CO/WR_ETOH=0.0 ! -!ARO/ADD=+K085*<NO2>+0.02*K086*<O2>+K087*<O3> - PJAC(:,21,37)=+TPK%K085(:)*PCONC(:,4)+0.02*TPK%K086(:)*TPK%O2(:)+TPK%K087(:)*P& -&CONC(:,1) +!CO/WR_ALCH=0.0 ! -!ARO/AROP=0.0 +!CO/WR_HCHO=0.0 ! -!ARO/CARBOP=0.0 +!CO/WR_ALD2=0.0 ! -!ARO/OLN=0.0 +!CO/WR_GLY=0.0 ! -!ARO/XO2=0.0 +!CO/WR_MGLY=0.0 ! -!HCHO/O3=+0.48290*K079*<ALKE>+0.90000*K080*<BIO>+0.00000*K081*<CARBO>+0.70*K082 -!*<PAN> - PJAC(:,22,1)=+0.48290*TPK%K079(:)*PCONC(:,19)+0.90000*TPK%K080(:)*PCONC(:,20)+& -&0.00000*TPK%K081(:)*PCONC(:,25)+0.70*TPK%K082(:)*PCONC(:,27) +!CO/WR_KETL=0.0 ! -!HCHO/H2O2=0.0 +!CO/WR_ORA1=0.0 ! -!HCHO/NO=+K090*<MO2>+0.03002*K091*<ALKAP>+1.39870*K092*<ALKEP>+0.60600*K093*<BI -!OP>+0.05848*K095*<CARBOP>+0.23419*K096*<OLN> - PJAC(:,22,3)=+TPK%K090(:)*PCONC(:,32)+0.03002*TPK%K091(:)*PCONC(:,33)+1.39870*& -&TPK%K092(:)*PCONC(:,34)+0.60600*TPK%K093(:)*PCONC(:,35)+0.05848*TPK%K095(:)*PC& -&ONC(:,39)+0.23419*TPK%K096(:)*PCONC(:,40) +!CO/WR_ORA2=0.0 ! -!HCHO/NO2=0.0 +!CO/WR_ACID=0.0 ! -!HCHO/NO3=-K072*<HCHO>+0.40*K078*<PAN>+K119*<MO2>+0.03142*K120*<ALKAP>+1.40909* -!K121*<ALKEP>+0.68600*K122*<BIOP>+0.03175*K124*<CARBOP>+0.20740*K125*<OLN> - PJAC(:,22,5)=-TPK%K072(:)*PCONC(:,22)+0.40*TPK%K078(:)*PCONC(:,27)+TPK%K119(:)& -&*PCONC(:,32)+0.03142*TPK%K120(:)*PCONC(:,33)+1.40909*TPK%K121(:)*PCONC(:,34)+0& -&.68600*TPK%K122(:)*PCONC(:,35)+0.03175*TPK%K124(:)*PCONC(:,39)+0.20740*TPK%K12& -&5(:)*PCONC(:,40) +!CO/WR_RP16=0.0 ! -!HCHO/N2O5=0.0 +!CO/WR_UR21=0.0 ! -!HCHO/HONO=0.0 +!CO/WR_UR28=0.0 ! -!HCHO/HNO3=0.0 +!CO/WR_ACID2=0.0 ! -!HCHO/HNO4=0.0 +!CO/WR_ASO3=0.0 ! -!HCHO/NH3=0.0 +!CO/WR_ASO4=0.0 ! -!HCHO/SO2=0.0 +!CO/WR_ASO5=0.0 ! -!HCHO/SULF=0.0 +!CO/WR_AHSO5=0.0 ! -!HCHO/CO=0.0 +!CO/WR_AHMS=0.0 ! -!HCHO/OH=+0.00140*K058*<ALKA>-K062*<HCHO>+0.00000*K065*<CARBO>+0.35*K068*<OP1>+ -!0.02915*K069*<OP2>+0.57839*K070*<PAN> - PJAC(:,22,14)=+0.00140*TPK%K058(:)*PCONC(:,18)-TPK%K062(:)*PCONC(:,22)+0.00000& -&*TPK%K065(:)*PCONC(:,25)+0.35*TPK%K068(:)*PCONC(:,28)+0.02915*TPK%K069(:)*PCON& -&C(:,29)+0.57839*TPK%K070(:)*PCONC(:,27) +!H2O2/NO=0.0 ! -!HCHO/HO2=0.0 +!H2O2/NO2=0.0 ! -!HCHO/CH4=0.0 +!H2O2/O3=+0.055*K086*<BIOL>+0.055*K090*<BIOH> + PJAC(:,12,3)=+0.055*TPK%K086(:)*PCONC(:,36)+0.055*TPK%K090(:)*PCONC(:,37) ! -!HCHO/ETH=0.0 +!H2O2/HONO=0.0 ! -!HCHO/ALKA=+0.00140*K058*<OH> - PJAC(:,22,18)=+0.00140*TPK%K058(:)*PCONC(:,14) +!H2O2/HNO3=0.0 ! -!HCHO/ALKE=+0.48290*K079*<O3> - PJAC(:,22,19)=+0.48290*TPK%K079(:)*PCONC(:,1) +!H2O2/HNO4=0.0 ! -!HCHO/BIO=+0.05*K054*<O3P>+0.90000*K080*<O3> - PJAC(:,22,20)=+0.05*TPK%K054(:)*TPK%O3P(:)+0.90000*TPK%K080(:)*PCONC(:,1) +!H2O2/N2O5=0.0 ! -!HCHO/ARO=0.0 +!H2O2/NO3=0.0 ! -!HCHO/HCHO=-K010-K011-K062*<OH>-K072*<NO3> - PJAC(:,22,22)=-TPK%K010(:)-TPK%K011(:)-TPK%K062(:)*PCONC(:,14)-TPK%K072(:)*PCO& -&NC(:,5) +!H2O2/NH3=0.0 ! -!HCHO/ALD=0.0 +!H2O2/HO2=+K031*<HO2>+K031*<HO2>+K032*<H2O>*<HO2>+K032*<H2O>*<HO2> + PJAC(:,12,10)=+TPK%K031(:)*PCONC(:,10)+TPK%K031(:)*PCONC(:,10)+TPK%K032(:)*TPK& +&%H2O(:)*PCONC(:,10)+TPK%K032(:)*TPK%H2O(:)*PCONC(:,10) ! -!HCHO/KET=0.0 +!H2O2/CO=0.0 ! -!HCHO/CARBO=+0.06517*K016+0.00000*K065*<OH>+0.00000*K081*<O3> - PJAC(:,22,25)=+0.06517*TPK%K016(:)+0.00000*TPK%K065(:)*PCONC(:,14)+0.00000*TPK& -&%K081(:)*PCONC(:,1) +!H2O2/H2O2=-K036-K037*<OH>-KTC2-KTR2 + PJAC(:,12,12)=-TPK%K036(:)-TPK%K037(:)*PCONC(:,15)-TPK%KTC2(:)-TPK%KTR2(:) ! -!HCHO/ONIT=0.0 +!H2O2/SO2=0.0 ! -!HCHO/PAN=+0.57839*K070*<OH>+0.40*K078*<NO3>+0.70*K082*<O3> - PJAC(:,22,27)=+0.57839*TPK%K070(:)*PCONC(:,14)+0.40*TPK%K078(:)*PCONC(:,5)+0.7& -&0*TPK%K082(:)*PCONC(:,1) +!H2O2/H2SO4=0.0 ! -!HCHO/OP1=+K013+0.35*K068*<OH> - PJAC(:,22,28)=+TPK%K013(:)+0.35*TPK%K068(:)*PCONC(:,14) +!H2O2/OH=-K037*<H2O2> + PJAC(:,12,15)=-TPK%K037(:)*PCONC(:,12) ! -!HCHO/OP2=+0.02915*K069*<OH> - PJAC(:,22,29)=+0.02915*TPK%K069(:)*PCONC(:,14) +!H2O2/ETHE=0.0 ! -!HCHO/ORA1=0.0 +!H2O2/OLEL=0.0 ! -!HCHO/ORA2=0.0 +!H2O2/OLEH=0.0 ! -!HCHO/MO2=+K090*<NO>+1.33*K104*<MO2>+1.33*K104*<MO2>+0.80556*K105*<ALKAP>+1.428 -!94*K106*<ALKEP>+1.09000*K107*<BIOP>+K108*<AROP>+0.95723*K109*<CARBOP>+0.88625* -!K110*<OLN>+K119*<NO3>+K127*<XO2> - PJAC(:,22,32)=+TPK%K090(:)*PCONC(:,3)+1.33*TPK%K104(:)*PCONC(:,32)+1.33*TPK%K1& -&04(:)*PCONC(:,32)+0.80556*TPK%K105(:)*PCONC(:,33)+1.42894*TPK%K106(:)*PCONC(:,& -&34)+1.09000*TPK%K107(:)*PCONC(:,35)+TPK%K108(:)*PCONC(:,38)+0.95723*TPK%K109(:& -&)*PCONC(:,39)+0.88625*TPK%K110(:)*PCONC(:,40)+TPK%K119(:)*PCONC(:,5)+TPK%K127(& -&:)*PCONC(:,41) +!H2O2/ALKL=0.0 ! -!HCHO/ALKAP=+0.03002*K091*<NO>+0.80556*K105*<MO2>+0.07600*K111*<CARBOP>+0.03142 -!*K120*<NO3> - PJAC(:,22,33)=+0.03002*TPK%K091(:)*PCONC(:,3)+0.80556*TPK%K105(:)*PCONC(:,32)+& -&0.07600*TPK%K111(:)*PCONC(:,39)+0.03142*TPK%K120(:)*PCONC(:,5) +!H2O2/ALKM=0.0 ! -!HCHO/ALKEP=+1.39870*K092*<NO>+1.42894*K106*<MO2>+0.68192*K112*<CARBOP>+1.40909 -!*K121*<NO3> - PJAC(:,22,34)=+1.39870*TPK%K092(:)*PCONC(:,3)+1.42894*TPK%K106(:)*PCONC(:,32)+& -&0.68192*TPK%K112(:)*PCONC(:,39)+1.40909*TPK%K121(:)*PCONC(:,5) +!H2O2/ALKH=0.0 ! -!HCHO/BIOP=+0.60600*K093*<NO>+1.09000*K107*<MO2>+0.34000*K113*<CARBOP>+0.68600* -!K122*<NO3> - PJAC(:,22,35)=+0.60600*TPK%K093(:)*PCONC(:,3)+1.09000*TPK%K107(:)*PCONC(:,32)+& -&0.34000*TPK%K113(:)*PCONC(:,39)+0.68600*TPK%K122(:)*PCONC(:,5) +!H2O2/AROH=0.0 ! -!HCHO/PHO=0.0 +!H2O2/AROL=0.0 ! -!HCHO/ADD=0.0 +!H2O2/AROO=0.0 ! -!HCHO/AROP=+K108*<MO2> - PJAC(:,22,38)=+TPK%K108(:)*PCONC(:,32) +!H2O2/ARAL=0.0 ! -!HCHO/CARBOP=+0.05848*K095*<NO>+0.95723*K109*<MO2>+0.07600*K111*<ALKAP>+0.68192 -!*K112*<ALKEP>+0.34000*K113*<BIOP>+0.03432*K115*<CARBOP>+0.03432*K115*<CARBOP>+ -!0.13414*K116*<OLN>+0.03175*K124*<NO3> - PJAC(:,22,39)=+0.05848*TPK%K095(:)*PCONC(:,3)+0.95723*TPK%K109(:)*PCONC(:,32)+& -&0.07600*TPK%K111(:)*PCONC(:,33)+0.68192*TPK%K112(:)*PCONC(:,34)+0.34000*TPK%K1& -&13(:)*PCONC(:,35)+0.03432*TPK%K115(:)*PCONC(:,39)+0.03432*TPK%K115(:)*PCONC(:,& -&39)+0.13414*TPK%K116(:)*PCONC(:,40)+0.03175*TPK%K124(:)*PCONC(:,5) +!H2O2/ARAC=0.0 ! -!HCHO/OLN=+0.23419*K096*<NO>+0.88625*K110*<MO2>+0.13414*K116*<CARBOP>+0.00000*K -!118*<OLN>+0.00000*K118*<OLN>+0.20740*K125*<NO3> - PJAC(:,22,40)=+0.23419*TPK%K096(:)*PCONC(:,3)+0.88625*TPK%K110(:)*PCONC(:,32)+& -&0.13414*TPK%K116(:)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K1& -&18(:)*PCONC(:,40)+0.20740*TPK%K125(:)*PCONC(:,5) +!H2O2/PAH=0.0 ! -!HCHO/XO2=+K127*<MO2> - PJAC(:,22,41)=+TPK%K127(:)*PCONC(:,32) +!H2O2/HCHO=0.0 ! -!ALD/O3=+0.51468*K079*<ALKE>+0.00000*K080*<BIO>+0.15692*K081*<CARBO> - PJAC(:,23,1)=+0.51468*TPK%K079(:)*PCONC(:,19)+0.00000*TPK%K080(:)*PCONC(:,20)+& -&0.15692*TPK%K081(:)*PCONC(:,25) +!H2O2/ALD2=0.0 ! -!ALD/H2O2=0.0 +!H2O2/KETL=0.0 ! -!ALD/NO=+0.33144*K091*<ALKAP>+0.42125*K092*<ALKEP>+0.00000*K093*<BIOP>+0.07368* -!K095*<CARBOP>+1.01182*K096*<OLN> - PJAC(:,23,3)=+0.33144*TPK%K091(:)*PCONC(:,33)+0.42125*TPK%K092(:)*PCONC(:,34)+& -&0.00000*TPK%K093(:)*PCONC(:,35)+0.07368*TPK%K095(:)*PCONC(:,39)+1.01182*TPK%K0& -&96(:)*PCONC(:,40) +!H2O2/KETH=0.0 ! -!ALD/NO2=0.0 +!H2O2/MEOH=0.0 ! -!ALD/NO3=-K073*<ALD>+0.05265*K074*<CARBO>+0.33743*K120*<ALKAP>+0.43039*K121*<AL -!KEP>+0.00000*K122*<BIOP>+0.02936*K124*<CARBOP>+0.91850*K125*<OLN> - PJAC(:,23,5)=-TPK%K073(:)*PCONC(:,23)+0.05265*TPK%K074(:)*PCONC(:,25)+0.33743*& -&TPK%K120(:)*PCONC(:,33)+0.43039*TPK%K121(:)*PCONC(:,34)+0.00000*TPK%K122(:)*PC& -&ONC(:,35)+0.02936*TPK%K124(:)*PCONC(:,39)+0.91850*TPK%K125(:)*PCONC(:,40) +!H2O2/ETOH=0.0 ! -!ALD/N2O5=0.0 +!H2O2/ALCH=0.0 ! -!ALD/HONO=0.0 +!H2O2/ISOP=0.0 ! -!ALD/HNO3=0.0 +!H2O2/BIOL=+0.055*K086*<O3> + PJAC(:,12,36)=+0.055*TPK%K086(:)*PCONC(:,3) ! -!ALD/HNO4=0.0 +!H2O2/BIOH=+0.055*K090*<O3> + PJAC(:,12,37)=+0.055*TPK%K090(:)*PCONC(:,3) ! -!ALD/NH3=0.0 +!H2O2/MTBE=0.0 ! -!ALD/SO2=0.0 +!H2O2/MVK=0.0 ! -!ALD/SULF=0.0 +!H2O2/MCR=0.0 ! -!ALD/CO=0.0 +!H2O2/MGLY=0.0 ! -!ALD/OH=+0.08173*K058*<ALKA>-K063*<ALD>+0.06253*K065*<CARBO>+0.07335*K069*<OP2> - PJAC(:,23,14)=+0.08173*TPK%K058(:)*PCONC(:,18)-TPK%K063(:)*PCONC(:,23)+0.06253& -&*TPK%K065(:)*PCONC(:,25)+0.07335*TPK%K069(:)*PCONC(:,29) +!H2O2/GLY=0.0 ! -!ALD/HO2=0.0 +!H2O2/ORA1=0.0 ! -!ALD/CH4=0.0 +!H2O2/ORA2=0.0 ! -!ALD/ETH=0.0 +!H2O2/ACID=0.0 ! -!ALD/ALKA=+0.08173*K058*<OH> - PJAC(:,23,18)=+0.08173*TPK%K058(:)*PCONC(:,14) +!H2O2/UR28=0.0 ! -!ALD/ALKE=+0.51468*K079*<O3> - PJAC(:,23,19)=+0.51468*TPK%K079(:)*PCONC(:,1) +!H2O2/UR21=0.0 ! -!ALD/BIO=+0.00000*K080*<O3> - PJAC(:,23,20)=+0.00000*TPK%K080(:)*PCONC(:,1) +!H2O2/URG2=0.0 ! -!ALD/ARO=0.0 +!H2O2/UR26=0.0 ! -!ALD/HCHO=0.0 +!H2O2/RPG2=0.0 ! -!ALD/ALD=-K012-K063*<OH>-K073*<NO3> - PJAC(:,23,23)=-TPK%K012(:)-TPK%K063(:)*PCONC(:,14)-TPK%K073(:)*PCONC(:,5) +!H2O2/RP18=0.0 ! -!ALD/KET=0.0 +!H2O2/RPG3=0.0 ! -!ALD/CARBO=+K055*<O3P>+0.06253*K065*<OH>+0.05265*K074*<NO3>+0.15692*K081*<O3> - PJAC(:,23,25)=+TPK%K055(:)*TPK%O3P(:)+0.06253*TPK%K065(:)*PCONC(:,14)+0.05265*& -&TPK%K074(:)*PCONC(:,5)+0.15692*TPK%K081(:)*PCONC(:,1) +!H2O2/URG4=0.0 ! -!ALD/ONIT=+0.20*K017 - PJAC(:,23,26)=+0.20*TPK%K017(:) +!H2O2/UR8=0.0 ! -!ALD/PAN=0.0 +!H2O2/UR17=0.0 ! -!ALD/OP1=0.0 +!H2O2/UR7=0.0 ! -!ALD/OP2=+0.96205*K014+0.07335*K069*<OH> - PJAC(:,23,29)=+0.96205*TPK%K014(:)+0.07335*TPK%K069(:)*PCONC(:,14) +!H2O2/RPR3=0.0 ! -!ALD/ORA1=0.0 +!H2O2/URG6=0.0 ! -!ALD/ORA2=0.0 +!H2O2/UR22=0.0 ! -!ALD/MO2=+0.56070*K105*<ALKAP>+0.46413*K106*<ALKEP>+0.00000*K107*<BIOP>+0.08295 -!*K109*<CARBOP>+0.41524*K110*<OLN> - PJAC(:,23,32)=+0.56070*TPK%K105(:)*PCONC(:,33)+0.46413*TPK%K106(:)*PCONC(:,34)& -&+0.00000*TPK%K107(:)*PCONC(:,35)+0.08295*TPK%K109(:)*PCONC(:,39)+0.41524*TPK%K& -&110(:)*PCONC(:,40) +!H2O2/URG7=0.0 ! -!ALD/ALKAP=+0.33144*K091*<NO>+0.56070*K105*<MO2>+0.71461*K111*<CARBOP>+0.33743* -!K120*<NO3> - PJAC(:,23,33)=+0.33144*TPK%K091(:)*PCONC(:,3)+0.56070*TPK%K105(:)*PCONC(:,32)+& -&0.71461*TPK%K111(:)*PCONC(:,39)+0.33743*TPK%K120(:)*PCONC(:,5) +!H2O2/RPR4=0.0 ! -!ALD/ALKEP=+0.42125*K092*<NO>+0.46413*K106*<MO2>+0.68374*K112*<CARBOP>+0.43039* -!K121*<NO3> - PJAC(:,23,34)=+0.42125*TPK%K092(:)*PCONC(:,3)+0.46413*TPK%K106(:)*PCONC(:,32)+& -&0.68374*TPK%K112(:)*PCONC(:,39)+0.43039*TPK%K121(:)*PCONC(:,5) +!H2O2/RPR7=0.0 ! -!ALD/BIOP=+0.00000*K093*<NO>+0.00000*K107*<MO2>+0.00000*K113*<CARBOP>+0.00000*K -!122*<NO3> - PJAC(:,23,35)=+0.00000*TPK%K093(:)*PCONC(:,3)+0.00000*TPK%K107(:)*PCONC(:,32)+& -&0.00000*TPK%K113(:)*PCONC(:,39)+0.00000*TPK%K122(:)*PCONC(:,5) +!H2O2/RPG7=0.0 ! -!ALD/PHO=0.0 +!H2O2/URG8=0.0 ! -!ALD/ADD=0.0 +!H2O2/UR19=0.0 ! -!ALD/AROP=0.0 +!H2O2/URG9=0.0 ! -!ALD/CARBOP=+0.07368*K095*<NO>+0.08295*K109*<MO2>+0.71461*K111*<ALKAP>+0.68374* -!K112*<ALKEP>+0.00000*K113*<BIOP>+0.06969*K115*<CARBOP>+0.06969*K115*<CARBOP>+0 -!.42122*K116*<OLN>+0.02936*K124*<NO3> - PJAC(:,23,39)=+0.07368*TPK%K095(:)*PCONC(:,3)+0.08295*TPK%K109(:)*PCONC(:,32)+& -&0.71461*TPK%K111(:)*PCONC(:,33)+0.68374*TPK%K112(:)*PCONC(:,34)+0.00000*TPK%K1& -&13(:)*PCONC(:,35)+0.06969*TPK%K115(:)*PCONC(:,39)+0.06969*TPK%K115(:)*PCONC(:,& -&39)+0.42122*TPK%K116(:)*PCONC(:,40)+0.02936*TPK%K124(:)*PCONC(:,5) +!H2O2/AP7=0.0 ! -!ALD/OLN=+1.01182*K096*<NO>+0.41524*K110*<MO2>+0.42122*K116*<CARBOP>+0.00000*K1 -!18*<OLN>+0.00000*K118*<OLN>+0.91850*K125*<NO3> - PJAC(:,23,40)=+1.01182*TPK%K096(:)*PCONC(:,3)+0.41524*TPK%K110(:)*PCONC(:,32)+& -&0.42122*TPK%K116(:)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K1& -&18(:)*PCONC(:,40)+0.91850*TPK%K125(:)*PCONC(:,5) +!H2O2/URG10=0.0 ! -!ALD/XO2=0.0 +!H2O2/RPR1=0.0 ! -!KET/O3=+0.07377*K079*<ALKE>+0.00000*K080*<BIO> - PJAC(:,24,1)=+0.07377*TPK%K079(:)*PCONC(:,19)+0.00000*TPK%K080(:)*PCONC(:,20) +!H2O2/RPR5=0.0 ! -!KET/H2O2=0.0 +!H2O2/RPR8=0.0 ! -!KET/NO=+0.54531*K091*<ALKAP>+0.05220*K092*<ALKEP>+0.00000*K093*<BIOP>+0.37862* -!K096*<OLN> - PJAC(:,24,3)=+0.54531*TPK%K091(:)*PCONC(:,33)+0.05220*TPK%K092(:)*PCONC(:,34)+& -&0.00000*TPK%K093(:)*PCONC(:,35)+0.37862*TPK%K096(:)*PCONC(:,40) +!H2O2/RP10=0.0 ! -!KET/NO2=0.0 +!H2O2/RP11=0.0 ! -!KET/NO3=+0.00632*K074*<CARBO>+0.62978*K120*<ALKAP>+0.02051*K121*<ALKEP>+0.0000 -!0*K122*<BIOP>+0.34740*K125*<OLN> - PJAC(:,24,5)=+0.00632*TPK%K074(:)*PCONC(:,25)+0.62978*TPK%K120(:)*PCONC(:,33)+& -&0.02051*TPK%K121(:)*PCONC(:,34)+0.00000*TPK%K122(:)*PCONC(:,35)+0.34740*TPK%K1& -&25(:)*PCONC(:,40) +!H2O2/RP16=0.0 ! -!KET/N2O5=0.0 +!H2O2/RPRL=0.0 ! -!KET/HONO=0.0 +!H2O2/APAN=0.0 ! -!KET/HNO3=0.0 +!H2O2/PAN1=0.0 ! -!KET/HNO4=0.0 +!H2O2/PAN2=0.0 ! -!KET/NH3=0.0 +!H2O2/PAN3=0.0 ! -!KET/SO2=0.0 +!H2O2/PAN4=0.0 ! -!KET/SULF=0.0 +!H2O2/PAN6=0.0 ! -!KET/CO=0.0 +!H2O2/PAN7=0.0 ! -!KET/OH=+0.03498*K058*<ALKA>-K064*<KET>+0.00853*K065*<CARBO>+0.37591*K069*<OP2> - PJAC(:,24,14)=+0.03498*TPK%K058(:)*PCONC(:,18)-TPK%K064(:)*PCONC(:,24)+0.00853& -&*TPK%K065(:)*PCONC(:,25)+0.37591*TPK%K069(:)*PCONC(:,29) +!H2O2/PAN8=0.0 ! -!KET/HO2=0.0 +!H2O2/PN10=0.0 ! -!KET/CH4=0.0 +!H2O2/RO2T=0.0 ! -!KET/ETH=0.0 +!H2O2/RO21=0.0 ! -!KET/ALKA=+0.03498*K058*<OH> - PJAC(:,24,18)=+0.03498*TPK%K058(:)*PCONC(:,14) +!H2O2/RO25=0.0 ! -!KET/ALKE=+0.07377*K079*<O3> - PJAC(:,24,19)=+0.07377*TPK%K079(:)*PCONC(:,1) +!H2O2/WC_O3=0.0 ! -!KET/BIO=+0.00000*K080*<O3> - PJAC(:,24,20)=+0.00000*TPK%K080(:)*PCONC(:,1) +!H2O2/WC_H2O2=+KTC33 + PJAC(:,12,89)=+TPK%KTC33(:) ! -!KET/ARO=0.0 +!H2O2/WC_NO=0.0 ! -!KET/HCHO=0.0 +!H2O2/WC_NO2=0.0 ! -!KET/ALD=0.0 +!H2O2/WC_NO3=0.0 ! -!KET/KET=-K015-K064*<OH> - PJAC(:,24,24)=-TPK%K015(:)-TPK%K064(:)*PCONC(:,14) +!H2O2/WC_N2O5=0.0 ! -!KET/CARBO=+0.00853*K065*<OH>+0.00632*K074*<NO3> - PJAC(:,24,25)=+0.00853*TPK%K065(:)*PCONC(:,14)+0.00632*TPK%K074(:)*PCONC(:,5) +!H2O2/WC_HONO=0.0 ! -!KET/ONIT=+0.80*K017 - PJAC(:,24,26)=+0.80*TPK%K017(:) +!H2O2/WC_HNO3=0.0 ! -!KET/PAN=0.0 +!H2O2/WC_HNO4=0.0 ! -!KET/OP1=0.0 +!H2O2/WC_NH3=0.0 ! -!KET/OP2=+0.37591*K069*<OH> - PJAC(:,24,29)=+0.37591*TPK%K069(:)*PCONC(:,14) +!H2O2/WC_OH=0.0 ! -!KET/ORA1=0.0 +!H2O2/WC_HO2=0.0 ! -!KET/ORA2=0.0 +!H2O2/WC_CO2=0.0 ! -!KET/MO2=+0.09673*K105*<ALKAP>+0.03814*K106*<ALKEP>+0.00000*K107*<BIOP>+0.09667 -!*K110*<OLN> - PJAC(:,24,32)=+0.09673*TPK%K105(:)*PCONC(:,33)+0.03814*TPK%K106(:)*PCONC(:,34)& -&+0.00000*TPK%K107(:)*PCONC(:,35)+0.09667*TPK%K110(:)*PCONC(:,40) +!H2O2/WC_SO2=0.0 ! -!KET/ALKAP=+0.54531*K091*<NO>+0.09673*K105*<MO2>+0.18819*K111*<CARBOP>+0.62978* -!K120*<NO3> - PJAC(:,24,33)=+0.54531*TPK%K091(:)*PCONC(:,3)+0.09673*TPK%K105(:)*PCONC(:,32)+& -&0.18819*TPK%K111(:)*PCONC(:,39)+0.62978*TPK%K120(:)*PCONC(:,5) +!H2O2/WC_H2SO4=0.0 ! -!KET/ALKEP=+0.05220*K092*<NO>+0.03814*K106*<MO2>+0.06579*K112*<CARBOP>+0.02051* -!K121*<NO3> - PJAC(:,24,34)=+0.05220*TPK%K092(:)*PCONC(:,3)+0.03814*TPK%K106(:)*PCONC(:,32)+& -&0.06579*TPK%K112(:)*PCONC(:,39)+0.02051*TPK%K121(:)*PCONC(:,5) +!H2O2/WC_RO21=0.0 ! -!KET/BIOP=+0.00000*K093*<NO>+0.00000*K107*<MO2>+0.00000*K113*<CARBOP>+0.00000*K -!122*<NO3> - PJAC(:,24,35)=+0.00000*TPK%K093(:)*PCONC(:,3)+0.00000*TPK%K107(:)*PCONC(:,32)+& -&0.00000*TPK%K113(:)*PCONC(:,39)+0.00000*TPK%K122(:)*PCONC(:,5) +!H2O2/WC_RO25=0.0 ! -!KET/PHO=0.0 +!H2O2/WC_MEOH=0.0 ! -!KET/ADD=0.0 +!H2O2/WC_ETOH=0.0 ! -!KET/AROP=0.0 +!H2O2/WC_ALCH=0.0 ! -!KET/CARBOP=+0.18819*K111*<ALKAP>+0.06579*K112*<ALKEP>+0.00000*K113*<BIOP>+0.02 -!190*K115*<CARBOP>+0.02190*K115*<CARBOP>+0.10822*K116*<OLN> - PJAC(:,24,39)=+0.18819*TPK%K111(:)*PCONC(:,33)+0.06579*TPK%K112(:)*PCONC(:,34)& -&+0.00000*TPK%K113(:)*PCONC(:,35)+0.02190*TPK%K115(:)*PCONC(:,39)+0.02190*TPK%K& -&115(:)*PCONC(:,39)+0.10822*TPK%K116(:)*PCONC(:,40) +!H2O2/WC_HCHO=0.0 ! -!KET/OLN=+0.37862*K096*<NO>+0.09667*K110*<MO2>+0.10822*K116*<CARBOP>+0.00000*K1 -!18*<OLN>+0.00000*K118*<OLN>+0.34740*K125*<NO3> - PJAC(:,24,40)=+0.37862*TPK%K096(:)*PCONC(:,3)+0.09667*TPK%K110(:)*PCONC(:,32)+& -&0.10822*TPK%K116(:)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K1& -&18(:)*PCONC(:,40)+0.34740*TPK%K125(:)*PCONC(:,5) +!H2O2/WC_ALD2=0.0 ! -!KET/XO2=0.0 +!H2O2/WC_GLY=0.0 ! -!CARBO/O3=+0.00000*K079*<ALKE>+0.39754*K080*<BIO>+1.07583*K081*<CARBO>-K081*<CA -!RBO> - PJAC(:,25,1)=+0.00000*TPK%K079(:)*PCONC(:,19)+0.39754*TPK%K080(:)*PCONC(:,20)+& -&1.07583*TPK%K081(:)*PCONC(:,25)-TPK%K081(:)*PCONC(:,25) +!H2O2/WC_MGLY=0.0 ! -!CARBO/H2O2=0.0 +!H2O2/WC_KETL=0.0 ! -!CARBO/NO=+0.03407*K091*<ALKAP>+0.45463*K093*<BIOP>+2.06993*K094*<AROP>+0.08670 -!*K095*<CARBOP> - PJAC(:,25,3)=+0.03407*TPK%K091(:)*PCONC(:,33)+0.45463*TPK%K093(:)*PCONC(:,35)+& -&2.06993*TPK%K094(:)*PCONC(:,38)+0.08670*TPK%K095(:)*PCONC(:,39) +!H2O2/WC_ORA1=0.0 ! -!CARBO/NO2=0.0 +!H2O2/WC_ORA2=0.0 ! -!CARBO/NO3=+0.10530*K074*<CARBO>-K074*<CARBO>+0.00000*K076*<ALKE>+0.91741*K077* -!<BIO>+0.03531*K120*<ALKAP>+0.61160*K122*<BIOP>+2.81904*K123*<AROP>+0.03455*K12 -!4*<CARBOP> - PJAC(:,25,5)=+0.10530*TPK%K074(:)*PCONC(:,25)-TPK%K074(:)*PCONC(:,25)+0.00000*& -&TPK%K076(:)*PCONC(:,19)+0.91741*TPK%K077(:)*PCONC(:,20)+0.03531*TPK%K120(:)*PC& -&ONC(:,33)+0.61160*TPK%K122(:)*PCONC(:,35)+2.81904*TPK%K123(:)*PCONC(:,38)+0.03& -&455*TPK%K124(:)*PCONC(:,39) +!H2O2/WC_ACID=0.0 ! -!CARBO/N2O5=0.0 +!H2O2/WC_RP16=0.0 ! -!CARBO/HONO=0.0 +!H2O2/WC_UR21=0.0 ! -!CARBO/HNO3=0.0 +!H2O2/WC_UR28=0.0 ! -!CARBO/HNO4=0.0 +!H2O2/WC_ACID2=0.0 ! -!CARBO/NH3=0.0 +!H2O2/WC_ASO3=0.0 ! -!CARBO/SO2=0.0 +!H2O2/WC_ASO4=0.0 ! -!CARBO/SULF=0.0 +!H2O2/WC_ASO5=0.0 ! -!CARBO/CO=0.0 +!H2O2/WC_AHSO5=0.0 ! -!CARBO/OH=+0.00835*K058*<ALKA>+0.16919*K065*<CARBO>-K065*<CARBO>+0.21863*K070*< -!PAN> - PJAC(:,25,14)=+0.00835*TPK%K058(:)*PCONC(:,18)+0.16919*TPK%K065(:)*PCONC(:,25)& -&-TPK%K065(:)*PCONC(:,25)+0.21863*TPK%K070(:)*PCONC(:,27) +!H2O2/WC_AHMS=0.0 ! -!CARBO/HO2=0.0 +!H2O2/WR_O3=0.0 ! -!CARBO/CH4=0.0 +!H2O2/WR_H2O2=+KTR33 + PJAC(:,12,126)=+TPK%KTR33(:) ! -!CARBO/ETH=0.0 +!H2O2/WR_NO=0.0 ! -!CARBO/ALKA=+0.00835*K058*<OH> - PJAC(:,25,18)=+0.00835*TPK%K058(:)*PCONC(:,14) +!H2O2/WR_NO2=0.0 ! -!CARBO/ALKE=+0.00000*K076*<NO3>+0.00000*K079*<O3> - PJAC(:,25,19)=+0.00000*TPK%K076(:)*PCONC(:,5)+0.00000*TPK%K079(:)*PCONC(:,1) +!H2O2/WR_NO3=0.0 ! -!CARBO/BIO=+0.13255*K054*<O3P>+0.91741*K077*<NO3>+0.39754*K080*<O3> - PJAC(:,25,20)=+0.13255*TPK%K054(:)*TPK%O3P(:)+0.91741*TPK%K077(:)*PCONC(:,5)+0& -&.39754*TPK%K080(:)*PCONC(:,1) +!H2O2/WR_N2O5=0.0 ! -!CARBO/ARO=0.0 +!H2O2/WR_HONO=0.0 ! -!CARBO/HCHO=0.0 +!H2O2/WR_HNO3=0.0 ! -!CARBO/ALD=0.0 +!H2O2/WR_HNO4=0.0 ! -!CARBO/KET=0.0 +!H2O2/WR_NH3=0.0 ! -!CARBO/CARBO=-K016-K055*<O3P>+0.16919*K065*<OH>-K065*<OH>+0.10530*K074*<NO3>-K0 -!74*<NO3>+1.07583*K081*<O3>-K081*<O3> - PJAC(:,25,25)=-TPK%K016(:)-TPK%K055(:)*TPK%O3P(:)+0.16919*TPK%K065(:)*PCONC(:,& -&14)-TPK%K065(:)*PCONC(:,14)+0.10530*TPK%K074(:)*PCONC(:,5)-TPK%K074(:)*PCONC(:& -&,5)+1.07583*TPK%K081(:)*PCONC(:,1)-TPK%K081(:)*PCONC(:,1) +!H2O2/WR_OH=0.0 ! -!CARBO/ONIT=0.0 +!H2O2/WR_HO2=0.0 ! -!CARBO/PAN=+0.21863*K070*<OH> - PJAC(:,25,27)=+0.21863*TPK%K070(:)*PCONC(:,14) +!H2O2/WR_CO2=0.0 ! -!CARBO/OP1=0.0 +!H2O2/WR_SO2=0.0 ! -!CARBO/OP2=0.0 +!H2O2/WR_H2SO4=0.0 ! -!CARBO/ORA1=0.0 +!H2O2/WR_RO21=0.0 ! -!CARBO/ORA2=0.0 +!H2O2/WR_RO25=0.0 ! -!CARBO/MO2=+0.07976*K105*<ALKAP>+0.56064*K107*<BIOP>+1.99461*K108*<AROP>+0.1538 -!7*K109*<CARBOP> - PJAC(:,25,32)=+0.07976*TPK%K105(:)*PCONC(:,33)+0.56064*TPK%K107(:)*PCONC(:,35)& -&+1.99461*TPK%K108(:)*PCONC(:,38)+0.15387*TPK%K109(:)*PCONC(:,39) +!H2O2/WR_MEOH=0.0 ! -!CARBO/ALKAP=+0.03407*K091*<NO>+0.07976*K105*<MO2>+0.06954*K111*<CARBOP>+0.0353 -!1*K120*<NO3> - PJAC(:,25,33)=+0.03407*TPK%K091(:)*PCONC(:,3)+0.07976*TPK%K105(:)*PCONC(:,32)+& -&0.06954*TPK%K111(:)*PCONC(:,39)+0.03531*TPK%K120(:)*PCONC(:,5) +!H2O2/WR_ETOH=0.0 ! -!CARBO/ALKEP=0.0 +!H2O2/WR_ALCH=0.0 ! -!CARBO/BIOP=+0.45463*K093*<NO>+0.56064*K107*<MO2>+0.78591*K113*<CARBOP>+0.61160 -!*K122*<NO3> - PJAC(:,25,35)=+0.45463*TPK%K093(:)*PCONC(:,3)+0.56064*TPK%K107(:)*PCONC(:,32)+& -&0.78591*TPK%K113(:)*PCONC(:,39)+0.61160*TPK%K122(:)*PCONC(:,5) +!H2O2/WR_HCHO=0.0 ! -!CARBO/PHO=0.0 +!H2O2/WR_ALD2=0.0 ! -!CARBO/ADD=0.0 +!H2O2/WR_GLY=0.0 ! -!CARBO/AROP=+2.06993*K094*<NO>+1.99461*K108*<MO2>+1.99455*K114*<CARBOP>+2.81904 -!*K123*<NO3> - PJAC(:,25,38)=+2.06993*TPK%K094(:)*PCONC(:,3)+1.99461*TPK%K108(:)*PCONC(:,32)+& -&1.99455*TPK%K114(:)*PCONC(:,39)+2.81904*TPK%K123(:)*PCONC(:,5) +!H2O2/WR_MGLY=0.0 ! -!CARBO/CARBOP=+0.08670*K095*<NO>+0.15387*K109*<MO2>+0.06954*K111*<ALKAP>+0.7859 -!1*K113*<BIOP>+1.99455*K114*<AROP>+0.10777*K115*<CARBOP>+0.10777*K115*<CARBOP>+ -!0.03455*K124*<NO3> - PJAC(:,25,39)=+0.08670*TPK%K095(:)*PCONC(:,3)+0.15387*TPK%K109(:)*PCONC(:,32)+& -&0.06954*TPK%K111(:)*PCONC(:,33)+0.78591*TPK%K113(:)*PCONC(:,35)+1.99455*TPK%K1& -&14(:)*PCONC(:,38)+0.10777*TPK%K115(:)*PCONC(:,39)+0.10777*TPK%K115(:)*PCONC(:,& -&39)+0.03455*TPK%K124(:)*PCONC(:,5) +!H2O2/WR_KETL=0.0 ! -!CARBO/OLN=0.0 +!H2O2/WR_ORA1=0.0 ! -!CARBO/XO2=0.0 +!H2O2/WR_ORA2=0.0 ! -RETURN -END SUBROUTINE SUBJ4 +!H2O2/WR_ACID=0.0 ! -SUBROUTINE SUBJ5 +!H2O2/WR_RP16=0.0 ! -!Indices 26 a 30 +!H2O2/WR_UR21=0.0 ! +!H2O2/WR_UR28=0.0 ! -!ONIT/O3=0.0 +!H2O2/WR_ACID2=0.0 ! -!ONIT/H2O2=0.0 +!H2O2/WR_ASO3=0.0 ! -!ONIT/NO=+0.08459*K091*<ALKAP>+0.15300*K093*<BIOP>+0.04885*K094*<AROP>+0.18401* -!K096*<OLN> - PJAC(:,26,3)=+0.08459*TPK%K091(:)*PCONC(:,33)+0.15300*TPK%K093(:)*PCONC(:,35)+& -&0.04885*TPK%K094(:)*PCONC(:,38)+0.18401*TPK%K096(:)*PCONC(:,40) +!H2O2/WR_ASO4=0.0 ! -!ONIT/NO2=+K083*<PHO> - PJAC(:,26,4)=+TPK%K083(:)*PCONC(:,36) +!H2O2/WR_ASO5=0.0 ! -!ONIT/NO3=+0.60*K078*<PAN>+0.25928*K125*<OLN> - PJAC(:,26,5)=+0.60*TPK%K078(:)*PCONC(:,27)+0.25928*TPK%K125(:)*PCONC(:,40) +!H2O2/WR_AHSO5=0.0 ! -!ONIT/N2O5=0.0 +!H2O2/WR_AHMS=0.0 ! -!ONIT/HONO=0.0 +!SO2/NO=0.0 ! -!ONIT/HNO3=0.0 +!SO2/NO2=0.0 ! -!ONIT/HNO4=0.0 +!SO2/O3=0.0 ! -!ONIT/NH3=0.0 +!SO2/HONO=0.0 ! -!ONIT/SO2=0.0 +!SO2/HNO3=0.0 ! -!ONIT/SULF=0.0 +!SO2/HNO4=0.0 ! -!ONIT/CO=0.0 +!SO2/N2O5=0.0 ! -!ONIT/OH=-K071*<ONIT> - PJAC(:,26,14)=-TPK%K071(:)*PCONC(:,26) +!SO2/NO3=0.0 ! -!ONIT/HO2=+K103*<OLN> - PJAC(:,26,15)=+TPK%K103(:)*PCONC(:,40) +!SO2/NH3=0.0 ! -!ONIT/CH4=0.0 +!SO2/HO2=0.0 ! -!ONIT/ETH=0.0 +!SO2/CO=0.0 ! -!ONIT/ALKA=0.0 +!SO2/H2O2=0.0 ! -!ONIT/ALKE=0.0 +!SO2/SO2=-K035*<OH>-KTC14-KTR14 + PJAC(:,13,13)=-TPK%K035(:)*PCONC(:,15)-TPK%KTC14(:)-TPK%KTR14(:) ! -!ONIT/BIO=0.0 +!SO2/H2SO4=0.0 ! -!ONIT/ARO=0.0 +!SO2/OH=-K035*<SO2> + PJAC(:,13,15)=-TPK%K035(:)*PCONC(:,13) ! -!ONIT/HCHO=0.0 +!SO2/ETHE=0.0 ! -!ONIT/ALD=0.0 +!SO2/OLEL=0.0 ! -!ONIT/KET=0.0 +!SO2/OLEH=0.0 ! -!ONIT/CARBO=0.0 +!SO2/ALKL=0.0 ! -!ONIT/ONIT=-K017-K071*<OH> - PJAC(:,26,26)=-TPK%K017(:)-TPK%K071(:)*PCONC(:,14) +!SO2/ALKM=0.0 ! -!ONIT/PAN=+0.60*K078*<NO3> - PJAC(:,26,27)=+0.60*TPK%K078(:)*PCONC(:,5) +!SO2/ALKH=0.0 ! -!ONIT/OP1=0.0 +!SO2/AROH=0.0 ! -!ONIT/OP2=0.0 +!SO2/AROL=0.0 ! -!ONIT/ORA1=0.0 +!SO2/AROO=0.0 ! -!ONIT/ORA2=0.0 +!SO2/ARAL=0.0 ! -!ONIT/MO2=+0.67560*K110*<OLN> - PJAC(:,26,32)=+0.67560*TPK%K110(:)*PCONC(:,40) +!SO2/ARAC=0.0 ! -!ONIT/ALKAP=+0.08459*K091*<NO> - PJAC(:,26,33)=+0.08459*TPK%K091(:)*PCONC(:,3) +!SO2/PAH=0.0 ! -!ONIT/ALKEP=0.0 +!SO2/HCHO=0.0 ! -!ONIT/BIOP=+0.15300*K093*<NO> - PJAC(:,26,35)=+0.15300*TPK%K093(:)*PCONC(:,3) +!SO2/ALD2=0.0 ! -!ONIT/PHO=+K083*<NO2> - PJAC(:,26,36)=+TPK%K083(:)*PCONC(:,4) +!SO2/KETL=0.0 ! -!ONIT/ADD=0.0 +!SO2/KETH=0.0 ! -!ONIT/AROP=+0.04885*K094*<NO> - PJAC(:,26,38)=+0.04885*TPK%K094(:)*PCONC(:,3) +!SO2/MEOH=0.0 ! -!ONIT/CARBOP=+0.66562*K116*<OLN> - PJAC(:,26,39)=+0.66562*TPK%K116(:)*PCONC(:,40) +!SO2/ETOH=0.0 ! -!ONIT/OLN=+0.18401*K096*<NO>+K103*<HO2>+0.67560*K110*<MO2>+0.66562*K116*<CARBOP -!>+2.00*K117*<OLN>+2.00*K117*<OLN>+0.00000*K118*<OLN>+0.00000*K118*<OLN>+0.2592 -!8*K125*<NO3> - PJAC(:,26,40)=+0.18401*TPK%K096(:)*PCONC(:,3)+TPK%K103(:)*PCONC(:,15)+0.67560*& -&TPK%K110(:)*PCONC(:,32)+0.66562*TPK%K116(:)*PCONC(:,39)+2.00*TPK%K117(:)*PCONC& -&(:,40)+2.00*TPK%K117(:)*PCONC(:,40)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TP& -&K%K118(:)*PCONC(:,40)+0.25928*TPK%K125(:)*PCONC(:,5) +!SO2/ALCH=0.0 ! -!ONIT/XO2=0.0 +!SO2/ISOP=0.0 ! -!PAN/O3=+0.30000*K082*<PAN>-K082*<PAN> - PJAC(:,27,1)=+0.30000*TPK%K082(:)*PCONC(:,27)-TPK%K082(:)*PCONC(:,27) +!SO2/BIOL=0.0 ! -!PAN/H2O2=0.0 +!SO2/BIOH=0.0 ! -!PAN/NO=0.0 +!SO2/MTBE=0.0 ! -!PAN/NO2=+1.00000*K088*<CARBOP> - PJAC(:,27,4)=+1.00000*TPK%K088(:)*PCONC(:,39) +!SO2/MVK=0.0 ! -!PAN/NO3=+0.40000*K078*<PAN>-K078*<PAN> - PJAC(:,27,5)=+0.40000*TPK%K078(:)*PCONC(:,27)-TPK%K078(:)*PCONC(:,27) +!SO2/MCR=0.0 ! -!PAN/N2O5=0.0 +!SO2/MGLY=0.0 ! -!PAN/HONO=0.0 +!SO2/GLY=0.0 ! -!PAN/HNO3=0.0 +!SO2/ORA1=0.0 ! -!PAN/HNO4=0.0 +!SO2/ORA2=0.0 ! -!PAN/NH3=0.0 +!SO2/ACID=0.0 ! -!PAN/SO2=0.0 +!SO2/UR28=0.0 ! -!PAN/SULF=0.0 +!SO2/UR21=0.0 ! -!PAN/CO=0.0 +!SO2/URG2=0.0 ! -!PAN/OH=+0.28107*K070*<PAN>-K070*<PAN> - PJAC(:,27,14)=+0.28107*TPK%K070(:)*PCONC(:,27)-TPK%K070(:)*PCONC(:,27) +!SO2/UR26=0.0 ! -!PAN/HO2=0.0 +!SO2/RPG2=0.0 ! -!PAN/CH4=0.0 +!SO2/RP18=0.0 ! -!PAN/ETH=0.0 +!SO2/RPG3=0.0 ! -!PAN/ALKA=0.0 +!SO2/URG4=0.0 ! -!PAN/ALKE=0.0 +!SO2/UR8=0.0 ! -!PAN/BIO=0.0 +!SO2/UR17=0.0 ! -!PAN/ARO=0.0 +!SO2/UR7=0.0 ! -!PAN/HCHO=0.0 +!SO2/RPR3=0.0 ! -!PAN/ALD=0.0 +!SO2/URG6=0.0 ! -!PAN/KET=0.0 +!SO2/UR22=0.0 ! -!PAN/CARBO=0.0 +!SO2/URG7=0.0 ! -!PAN/ONIT=0.0 +!SO2/RPR4=0.0 ! -!PAN/PAN=+0.28107*K070*<OH>-K070*<OH>+0.40000*K078*<NO3>-K078*<NO3>+0.30000*K08 -!2*<O3>-K082*<O3>-K089 - PJAC(:,27,27)=+0.28107*TPK%K070(:)*PCONC(:,14)-TPK%K070(:)*PCONC(:,14)+0.40000& -&*TPK%K078(:)*PCONC(:,5)-TPK%K078(:)*PCONC(:,5)+0.30000*TPK%K082(:)*PCONC(:,1)-& -&TPK%K082(:)*PCONC(:,1)-TPK%K089(:) +!SO2/RPR7=0.0 ! -!PAN/OP1=0.0 +!SO2/RPG7=0.0 ! -!PAN/OP2=0.0 +!SO2/URG8=0.0 ! -!PAN/ORA1=0.0 +!SO2/UR19=0.0 ! -!PAN/ORA2=0.0 +!SO2/URG9=0.0 ! -!PAN/MO2=0.0 +!SO2/AP7=0.0 ! -!PAN/ALKAP=0.0 +!SO2/URG10=0.0 ! -!PAN/ALKEP=0.0 +!SO2/RPR1=0.0 ! -!PAN/BIOP=0.0 +!SO2/RPR5=0.0 ! -!PAN/PHO=0.0 +!SO2/RPR8=0.0 ! -!PAN/ADD=0.0 +!SO2/RP10=0.0 ! -!PAN/AROP=0.0 +!SO2/RP11=0.0 ! -!PAN/CARBOP=+1.00000*K088*<NO2> - PJAC(:,27,39)=+1.00000*TPK%K088(:)*PCONC(:,4) +!SO2/RP16=0.0 ! -!PAN/OLN=0.0 +!SO2/RPRL=0.0 ! -!PAN/XO2=0.0 +!SO2/APAN=0.0 ! -!OP1/O3=0.0 +!SO2/PAN1=0.0 ! -!OP1/H2O2=0.0 +!SO2/PAN2=0.0 ! -!OP1/NO=0.0 +!SO2/PAN3=0.0 ! -!OP1/NO2=0.0 +!SO2/PAN4=0.0 ! -!OP1/NO3=0.0 +!SO2/PAN6=0.0 ! -!OP1/N2O5=0.0 +!SO2/PAN7=0.0 ! -!OP1/HONO=0.0 +!SO2/PAN8=0.0 ! -!OP1/HNO3=0.0 +!SO2/PN10=0.0 ! -!OP1/HNO4=0.0 +!SO2/RO2T=0.0 ! -!OP1/NH3=0.0 +!SO2/RO21=0.0 ! -!OP1/SO2=0.0 +!SO2/RO25=0.0 ! -!OP1/SULF=0.0 +!SO2/WC_O3=0.0 ! -!OP1/CO=0.0 +!SO2/WC_H2O2=0.0 ! -!OP1/OH=-K068*<OP1> - PJAC(:,28,14)=-TPK%K068(:)*PCONC(:,28) +!SO2/WC_NO=0.0 ! -!OP1/HO2=+K097*<MO2> - PJAC(:,28,15)=+TPK%K097(:)*PCONC(:,32) +!SO2/WC_NO2=0.0 ! -!OP1/CH4=0.0 +!SO2/WC_NO3=0.0 ! -!OP1/ETH=0.0 +!SO2/WC_N2O5=0.0 ! -!OP1/ALKA=0.0 +!SO2/WC_HONO=0.0 ! -!OP1/ALKE=0.0 +!SO2/WC_HNO3=0.0 ! -!OP1/BIO=0.0 +!SO2/WC_HNO4=0.0 ! -!OP1/ARO=0.0 +!SO2/WC_NH3=0.0 ! -!OP1/HCHO=0.0 +!SO2/WC_OH=0.0 ! -!OP1/ALD=0.0 +!SO2/WC_HO2=0.0 ! -!OP1/KET=0.0 +!SO2/WC_CO2=0.0 ! -!OP1/CARBO=0.0 +!SO2/WC_SO2=+KTC45 + PJAC(:,13,101)=+TPK%KTC45(:) ! -!OP1/ONIT=0.0 +!SO2/WC_H2SO4=0.0 ! -!OP1/PAN=0.0 +!SO2/WC_RO21=0.0 ! -!OP1/OP1=-K013-K068*<OH> - PJAC(:,28,28)=-TPK%K013(:)-TPK%K068(:)*PCONC(:,14) +!SO2/WC_RO25=0.0 ! -!OP1/OP2=0.0 +!SO2/WC_MEOH=0.0 ! -!OP1/ORA1=0.0 +!SO2/WC_ETOH=0.0 ! -!OP1/ORA2=0.0 +!SO2/WC_ALCH=0.0 ! -!OP1/MO2=+K097*<HO2> - PJAC(:,28,32)=+TPK%K097(:)*PCONC(:,15) +!SO2/WC_HCHO=0.0 ! -!OP1/ALKAP=0.0 +!SO2/WC_ALD2=0.0 ! -!OP1/ALKEP=0.0 +!SO2/WC_GLY=0.0 ! -!OP1/BIOP=0.0 +!SO2/WC_MGLY=0.0 ! -!OP1/PHO=0.0 +!SO2/WC_KETL=0.0 ! -!OP1/ADD=0.0 +!SO2/WC_ORA1=0.0 ! -!OP1/AROP=0.0 +!SO2/WC_ORA2=0.0 ! -!OP1/CARBOP=0.0 +!SO2/WC_ACID=0.0 ! -!OP1/OLN=0.0 +!SO2/WC_RP16=0.0 ! -!OP1/XO2=0.0 +!SO2/WC_UR21=0.0 ! -!OP2/O3=+0.10149*K081*<CARBO> - PJAC(:,29,1)=+0.10149*TPK%K081(:)*PCONC(:,25) +!SO2/WC_UR28=0.0 ! -!OP2/H2O2=0.0 +!SO2/WC_ACID2=0.0 ! -!OP2/NO=0.0 +!SO2/WC_ASO3=0.0 ! -!OP2/NO2=0.0 +!SO2/WC_ASO4=0.0 ! -!OP2/NO3=0.0 +!SO2/WC_ASO5=0.0 ! -!OP2/N2O5=0.0 +!SO2/WC_AHSO5=0.0 ! -!OP2/HONO=0.0 +!SO2/WC_AHMS=0.0 ! -!OP2/HNO3=0.0 +!SO2/WR_O3=0.0 ! -!OP2/HNO4=0.0 +!SO2/WR_H2O2=0.0 ! -!OP2/NH3=0.0 +!SO2/WR_NO=0.0 ! -!OP2/SO2=0.0 +!SO2/WR_NO2=0.0 ! -!OP2/SULF=0.0 +!SO2/WR_NO3=0.0 ! -!OP2/CO=0.0 +!SO2/WR_N2O5=0.0 ! -!OP2/OH=-K069*<OP2> - PJAC(:,29,14)=-TPK%K069(:)*PCONC(:,29) +!SO2/WR_HONO=0.0 ! -!OP2/HO2=+1.00524*K098*<ALKAP>+1.00524*K099*<ALKEP>+1.00524*K0100*<BIOP>+1.0052 -!4*K0101*<AROP>+0.80904*K0102*<CARBOP>+1.00524*K126*<XO2> - PJAC(:,29,15)=+1.00524*TPK%K098(:)*PCONC(:,33)+1.00524*TPK%K099(:)*PCONC(:,34)& -&+1.00524*TPK%K0100(:)*PCONC(:,35)+1.00524*TPK%K0101(:)*PCONC(:,38)+0.80904*TPK& -&%K0102(:)*PCONC(:,39)+1.00524*TPK%K126(:)*PCONC(:,41) +!SO2/WR_HNO3=0.0 ! -!OP2/CH4=0.0 +!SO2/WR_HNO4=0.0 ! -!OP2/ETH=0.0 +!SO2/WR_NH3=0.0 ! -!OP2/ALKA=0.0 +!SO2/WR_OH=0.0 ! -!OP2/ALKE=0.0 +!SO2/WR_HO2=0.0 ! -!OP2/BIO=0.0 +!SO2/WR_CO2=0.0 ! -!OP2/ARO=0.0 +!SO2/WR_SO2=+KTR45 + PJAC(:,13,138)=+TPK%KTR45(:) ! -!OP2/HCHO=0.0 +!SO2/WR_H2SO4=0.0 ! -!OP2/ALD=0.0 +!SO2/WR_RO21=0.0 ! -!OP2/KET=0.0 +!SO2/WR_RO25=0.0 ! -!OP2/CARBO=+0.10149*K081*<O3> - PJAC(:,29,25)=+0.10149*TPK%K081(:)*PCONC(:,1) +!SO2/WR_MEOH=0.0 ! -!OP2/ONIT=0.0 +!SO2/WR_ETOH=0.0 ! -!OP2/PAN=0.0 +!SO2/WR_ALCH=0.0 ! -!OP2/OP1=0.0 +!SO2/WR_HCHO=0.0 ! -!OP2/OP2=-K014-K069*<OH> - PJAC(:,29,29)=-TPK%K014(:)-TPK%K069(:)*PCONC(:,14) +!SO2/WR_ALD2=0.0 ! -!OP2/ORA1=0.0 +!SO2/WR_GLY=0.0 ! -!OP2/ORA2=0.0 +!SO2/WR_MGLY=0.0 ! -!OP2/MO2=0.0 +!SO2/WR_KETL=0.0 ! -!OP2/ALKAP=+1.00524*K098*<HO2> - PJAC(:,29,33)=+1.00524*TPK%K098(:)*PCONC(:,15) +!SO2/WR_ORA1=0.0 ! -!OP2/ALKEP=+1.00524*K099*<HO2> - PJAC(:,29,34)=+1.00524*TPK%K099(:)*PCONC(:,15) +!SO2/WR_ORA2=0.0 ! -!OP2/BIOP=+1.00524*K0100*<HO2> - PJAC(:,29,35)=+1.00524*TPK%K0100(:)*PCONC(:,15) +!SO2/WR_ACID=0.0 ! -!OP2/PHO=0.0 +!SO2/WR_RP16=0.0 ! -!OP2/ADD=0.0 +!SO2/WR_UR21=0.0 ! -!OP2/AROP=+1.00524*K0101*<HO2> - PJAC(:,29,38)=+1.00524*TPK%K0101(:)*PCONC(:,15) +!SO2/WR_UR28=0.0 ! -!OP2/CARBOP=+0.80904*K0102*<HO2> - PJAC(:,29,39)=+0.80904*TPK%K0102(:)*PCONC(:,15) +!SO2/WR_ACID2=0.0 ! -!OP2/OLN=0.0 +!SO2/WR_ASO3=0.0 ! -!OP2/XO2=+1.00524*K126*<HO2> - PJAC(:,29,41)=+1.00524*TPK%K126(:)*PCONC(:,15) +!SO2/WR_ASO4=0.0 ! -!ORA1/O3=+0.15343*K079*<ALKE>+0.15000*K080*<BIO>+0.10788*K081*<CARBO>+0.11*K082 -!*<PAN> - PJAC(:,30,1)=+0.15343*TPK%K079(:)*PCONC(:,19)+0.15000*TPK%K080(:)*PCONC(:,20)+& -&0.10788*TPK%K081(:)*PCONC(:,25)+0.11*TPK%K082(:)*PCONC(:,27) +!SO2/WR_ASO5=0.0 ! -!ORA1/H2O2=0.0 +!SO2/WR_AHSO5=0.0 ! -!ORA1/NO=0.0 +!SO2/WR_AHMS=0.0 ! -!ORA1/NO2=0.0 +!H2SO4/NO=0.0 ! -!ORA1/NO3=0.0 +!H2SO4/NO2=0.0 ! -!ORA1/N2O5=0.0 +!H2SO4/O3=0.0 ! -!ORA1/HONO=0.0 +!H2SO4/HONO=0.0 ! -!ORA1/HNO3=0.0 +!H2SO4/HNO3=0.0 ! -!ORA1/HNO4=0.0 +!H2SO4/HNO4=0.0 ! -!ORA1/NH3=0.0 +!H2SO4/N2O5=0.0 ! -!ORA1/SO2=0.0 +!H2SO4/NO3=0.0 ! -!ORA1/SULF=0.0 +!H2SO4/NH3=0.0 ! -!ORA1/CO=0.0 +!H2SO4/HO2=0.0 ! -!ORA1/OH=+0.00878*K058*<ALKA>-K066*<ORA1> - PJAC(:,30,14)=+0.00878*TPK%K058(:)*PCONC(:,18)-TPK%K066(:)*PCONC(:,30) +!H2SO4/CO=0.0 ! -!ORA1/HO2=0.0 +!H2SO4/H2O2=0.0 ! -!ORA1/CH4=0.0 +!H2SO4/SO2=+K035*<OH> + PJAC(:,14,13)=+TPK%K035(:)*PCONC(:,15) ! -!ORA1/ETH=0.0 +!H2SO4/H2SO4=-K346-KTC15-KTR15 + PJAC(:,14,14)=-TPK%K346(:)-TPK%KTC15(:)-TPK%KTR15(:) ! -!ORA1/ALKA=+0.00878*K058*<OH> - PJAC(:,30,18)=+0.00878*TPK%K058(:)*PCONC(:,14) +!H2SO4/OH=+K035*<SO2> + PJAC(:,14,15)=+TPK%K035(:)*PCONC(:,13) ! -!ORA1/ALKE=+0.15343*K079*<O3> - PJAC(:,30,19)=+0.15343*TPK%K079(:)*PCONC(:,1) +!H2SO4/ETHE=0.0 ! -!ORA1/BIO=+0.15000*K080*<O3> - PJAC(:,30,20)=+0.15000*TPK%K080(:)*PCONC(:,1) +!H2SO4/OLEL=0.0 ! -!ORA1/ARO=0.0 +!H2SO4/OLEH=0.0 ! -!ORA1/HCHO=0.0 +!H2SO4/ALKL=0.0 ! -!ORA1/ALD=0.0 +!H2SO4/ALKM=0.0 ! -!ORA1/KET=0.0 +!H2SO4/ALKH=0.0 ! -!ORA1/CARBO=+0.10788*K081*<O3> - PJAC(:,30,25)=+0.10788*TPK%K081(:)*PCONC(:,1) +!H2SO4/AROH=0.0 ! -!ORA1/ONIT=0.0 +!H2SO4/AROL=0.0 ! -!ORA1/PAN=+0.11*K082*<O3> - PJAC(:,30,27)=+0.11*TPK%K082(:)*PCONC(:,1) +!H2SO4/AROO=0.0 ! -!ORA1/OP1=0.0 +!H2SO4/ARAL=0.0 ! -!ORA1/OP2=0.0 +!H2SO4/ARAC=0.0 ! -!ORA1/ORA1=-K066*<OH> - PJAC(:,30,30)=-TPK%K066(:)*PCONC(:,14) +!H2SO4/PAH=0.0 ! -!ORA1/ORA2=0.0 +!H2SO4/HCHO=0.0 ! -!ORA1/MO2=0.0 +!H2SO4/ALD2=0.0 ! -!ORA1/ALKAP=0.0 +!H2SO4/KETL=0.0 ! -!ORA1/ALKEP=0.0 +!H2SO4/KETH=0.0 ! -!ORA1/BIOP=0.0 +!H2SO4/MEOH=0.0 ! -!ORA1/PHO=0.0 +!H2SO4/ETOH=0.0 ! -!ORA1/ADD=0.0 +!H2SO4/ALCH=0.0 ! -!ORA1/AROP=0.0 +!H2SO4/ISOP=0.0 ! -!ORA1/CARBOP=0.0 +!H2SO4/BIOL=0.0 ! -!ORA1/OLN=0.0 +!H2SO4/BIOH=0.0 ! -!ORA1/XO2=0.0 +!H2SO4/MTBE=0.0 ! -RETURN -END SUBROUTINE SUBJ5 +!H2SO4/MVK=0.0 ! -SUBROUTINE SUBJ6 +!H2SO4/MCR=0.0 ! -!Indices 31 a 35 +!H2SO4/MGLY=0.0 ! +!H2SO4/GLY=0.0 ! -!ORA2/O3=+0.08143*K079*<ALKE>+0.00000*K080*<BIO>+0.20595*K081*<CARBO> - PJAC(:,31,1)=+0.08143*TPK%K079(:)*PCONC(:,19)+0.00000*TPK%K080(:)*PCONC(:,20)+& -&0.20595*TPK%K081(:)*PCONC(:,25) +!H2SO4/ORA1=0.0 ! -!ORA2/H2O2=0.0 +!H2SO4/ORA2=0.0 ! -!ORA2/NO=0.0 +!H2SO4/ACID=0.0 ! -!ORA2/NO2=0.0 +!H2SO4/UR28=0.0 ! -!ORA2/NO3=0.0 +!H2SO4/UR21=0.0 ! -!ORA2/N2O5=0.0 +!H2SO4/URG2=0.0 ! -!ORA2/HONO=0.0 +!H2SO4/UR26=0.0 ! -!ORA2/HNO3=0.0 +!H2SO4/RPG2=0.0 ! -!ORA2/HNO4=0.0 +!H2SO4/RP18=0.0 ! -!ORA2/NH3=0.0 +!H2SO4/RPG3=0.0 ! -!ORA2/SO2=0.0 +!H2SO4/URG4=0.0 ! -!ORA2/SULF=0.0 +!H2SO4/UR8=0.0 ! -!ORA2/CO=0.0 +!H2SO4/UR17=0.0 ! -!ORA2/OH=-K067*<ORA2> - PJAC(:,31,14)=-TPK%K067(:)*PCONC(:,31) +!H2SO4/UR7=0.0 ! -!ORA2/HO2=+0.17307*K0102*<CARBOP> - PJAC(:,31,15)=+0.17307*TPK%K0102(:)*PCONC(:,39) +!H2SO4/RPR3=0.0 ! -!ORA2/CH4=0.0 +!H2SO4/URG6=0.0 ! -!ORA2/ETH=0.0 +!H2SO4/UR22=0.0 ! -!ORA2/ALKA=0.0 +!H2SO4/URG7=0.0 ! -!ORA2/ALKE=+0.08143*K079*<O3> - PJAC(:,31,19)=+0.08143*TPK%K079(:)*PCONC(:,1) +!H2SO4/RPR4=0.0 ! -!ORA2/BIO=+0.00000*K080*<O3> - PJAC(:,31,20)=+0.00000*TPK%K080(:)*PCONC(:,1) +!H2SO4/RPR7=0.0 ! -!ORA2/ARO=0.0 +!H2SO4/RPG7=0.0 ! -!ORA2/HCHO=0.0 +!H2SO4/URG8=0.0 ! -!ORA2/ALD=0.0 +!H2SO4/UR19=0.0 ! -!ORA2/KET=0.0 +!H2SO4/URG9=0.0 ! -!ORA2/CARBO=+0.20595*K081*<O3> - PJAC(:,31,25)=+0.20595*TPK%K081(:)*PCONC(:,1) +!H2SO4/AP7=0.0 ! -!ORA2/ONIT=0.0 +!H2SO4/URG10=0.0 ! -!ORA2/PAN=0.0 +!H2SO4/RPR1=0.0 ! -!ORA2/OP1=0.0 +!H2SO4/RPR5=0.0 ! -!ORA2/OP2=0.0 +!H2SO4/RPR8=0.0 ! -!ORA2/ORA1=0.0 +!H2SO4/RP10=0.0 ! -!ORA2/ORA2=-K067*<OH> - PJAC(:,31,31)=-TPK%K067(:)*PCONC(:,14) +!H2SO4/RP11=0.0 ! -!ORA2/MO2=+0.13684*K109*<CARBOP> - PJAC(:,31,32)=+0.13684*TPK%K109(:)*PCONC(:,39) +!H2SO4/RP16=0.0 ! -!ORA2/ALKAP=+0.49810*K111*<CARBOP> - PJAC(:,31,33)=+0.49810*TPK%K111(:)*PCONC(:,39) +!H2SO4/RPRL=0.0 ! -!ORA2/ALKEP=+0.49922*K112*<CARBOP> - PJAC(:,31,34)=+0.49922*TPK%K112(:)*PCONC(:,39) +!H2SO4/APAN=0.0 ! -!ORA2/BIOP=+0.49400*K113*<CARBOP> - PJAC(:,31,35)=+0.49400*TPK%K113(:)*PCONC(:,39) +!H2SO4/PAN1=0.0 ! -!ORA2/PHO=0.0 +!H2SO4/PAN2=0.0 ! -!ORA2/ADD=0.0 +!H2SO4/PAN3=0.0 ! -!ORA2/AROP=0.0 +!H2SO4/PAN4=0.0 ! -!ORA2/CARBOP=+0.17307*K0102*<HO2>+0.13684*K109*<MO2>+0.49810*K111*<ALKAP>+0.499 -!22*K112*<ALKEP>+0.49400*K113*<BIOP>+0.09955*K115*<CARBOP>+0.09955*K115*<CARBOP -!>+0.48963*K116*<OLN> - PJAC(:,31,39)=+0.17307*TPK%K0102(:)*PCONC(:,15)+0.13684*TPK%K109(:)*PCONC(:,32& -&)+0.49810*TPK%K111(:)*PCONC(:,33)+0.49922*TPK%K112(:)*PCONC(:,34)+0.49400*TPK%& -&K113(:)*PCONC(:,35)+0.09955*TPK%K115(:)*PCONC(:,39)+0.09955*TPK%K115(:)*PCONC(& -&:,39)+0.48963*TPK%K116(:)*PCONC(:,40) +!H2SO4/PAN6=0.0 ! -!ORA2/OLN=+0.48963*K116*<CARBOP> - PJAC(:,31,40)=+0.48963*TPK%K116(:)*PCONC(:,39) +!H2SO4/PAN7=0.0 ! -!ORA2/XO2=0.0 +!H2SO4/PAN8=0.0 ! -!MO2/O3=+0.13966*K079*<ALKE>+0.03000*K080*<BIO> - PJAC(:,32,1)=+0.13966*TPK%K079(:)*PCONC(:,19)+0.03000*TPK%K080(:)*PCONC(:,20) +!H2SO4/PN10=0.0 ! -!MO2/H2O2=0.0 +!H2SO4/RO2T=0.0 ! -!MO2/NO=-K090*<MO2>+0.09016*K091*<ALKAP>+0.78134*K095*<CARBOP> - PJAC(:,32,3)=-TPK%K090(:)*PCONC(:,32)+0.09016*TPK%K091(:)*PCONC(:,33)+0.78134*& -&TPK%K095(:)*PCONC(:,39) +!H2SO4/RO21=0.0 ! -!MO2/NO2=0.0 +!H2SO4/RO25=0.0 ! -!MO2/NO3=-K119*<MO2>+0.09731*K120*<ALKAP>+0.91910*K124*<CARBOP> - PJAC(:,32,5)=-TPK%K119(:)*PCONC(:,32)+0.09731*TPK%K120(:)*PCONC(:,33)+0.91910*& -&TPK%K124(:)*PCONC(:,39) +!H2SO4/WC_O3=0.0 ! -!MO2/N2O5=0.0 +!H2SO4/WC_H2O2=0.0 ! -!MO2/HONO=0.0 +!H2SO4/WC_NO=0.0 ! -!MO2/HNO3=0.0 +!H2SO4/WC_NO2=0.0 ! -!MO2/HNO4=0.0 +!H2SO4/WC_NO3=0.0 ! -!MO2/NH3=0.0 +!H2SO4/WC_N2O5=0.0 ! -!MO2/SO2=0.0 +!H2SO4/WC_HONO=0.0 ! -!MO2/SULF=0.0 +!H2SO4/WC_HNO3=0.0 ! -!MO2/CO=0.0 +!H2SO4/WC_HNO4=0.0 ! -!MO2/OH=+K056*<CH4>+0.65*K068*<OP1> - PJAC(:,32,14)=+TPK%K056(:)*PCONC(:,16)+0.65*TPK%K068(:)*PCONC(:,28) +!H2SO4/WC_NH3=0.0 ! -!MO2/HO2=-K097*<MO2> - PJAC(:,32,15)=-TPK%K097(:)*PCONC(:,32) +!H2SO4/WC_OH=0.0 ! -!MO2/CH4=+K056*<OH> - PJAC(:,32,16)=+TPK%K056(:)*PCONC(:,14) +!H2SO4/WC_HO2=0.0 ! -!MO2/ETH=0.0 +!H2SO4/WC_CO2=0.0 ! -!MO2/ALKA=0.0 +!H2SO4/WC_SO2=0.0 ! -!MO2/ALKE=+0.13966*K079*<O3> - PJAC(:,32,19)=+0.13966*TPK%K079(:)*PCONC(:,1) +!H2SO4/WC_H2SO4=+KTC46 + PJAC(:,14,102)=+TPK%KTC46(:) ! -!MO2/BIO=+0.03000*K080*<O3> - PJAC(:,32,20)=+0.03000*TPK%K080(:)*PCONC(:,1) +!H2SO4/WC_RO21=0.0 ! -!MO2/ARO=0.0 +!H2SO4/WC_RO25=0.0 ! -!MO2/HCHO=0.0 +!H2SO4/WC_MEOH=0.0 ! -!MO2/ALD=+K012 - PJAC(:,32,23)=+TPK%K012(:) +!H2SO4/WC_ETOH=0.0 ! -!MO2/KET=0.0 +!H2SO4/WC_ALCH=0.0 ! -!MO2/CARBO=0.0 +!H2SO4/WC_HCHO=0.0 ! -!MO2/ONIT=0.0 +!H2SO4/WC_ALD2=0.0 ! -!MO2/PAN=0.0 +!H2SO4/WC_GLY=0.0 ! -!MO2/OP1=+0.65*K068*<OH> - PJAC(:,32,28)=+0.65*TPK%K068(:)*PCONC(:,14) +!H2SO4/WC_MGLY=0.0 ! -!MO2/OP2=+0.03795*K014 - PJAC(:,32,29)=+0.03795*TPK%K014(:) +!H2SO4/WC_KETL=0.0 ! -!MO2/ORA1=0.0 +!H2SO4/WC_ORA1=0.0 ! -!MO2/ORA2=0.0 +!H2SO4/WC_ORA2=0.0 ! -!MO2/MO2=-K090*<NO>-K097*<HO2>-K104*<MO2>-K104*<MO2>-K104*<MO2>-K104*<MO2>+0.01 -!390*K105*<ALKAP>-K105*<ALKAP>-K106*<ALKEP>-K107*<BIOP>-K108*<AROP>+0.56031*K10 -!9*<CARBOP>-K109*<CARBOP>-K110*<OLN>-K119*<NO3>-K127*<XO2> - PJAC(:,32,32)=-TPK%K090(:)*PCONC(:,3)-TPK%K097(:)*PCONC(:,15)-TPK%K104(:)*PCON& -&C(:,32)-TPK%K104(:)*PCONC(:,32)-TPK%K104(:)*PCONC(:,32)-TPK%K104(:)*PCONC(:,32& -&)+0.01390*TPK%K105(:)*PCONC(:,33)-TPK%K105(:)*PCONC(:,33)-TPK%K106(:)*PCONC(:,& -&34)-TPK%K107(:)*PCONC(:,35)-TPK%K108(:)*PCONC(:,38)+0.56031*TPK%K109(:)*PCONC(& -&:,39)-TPK%K109(:)*PCONC(:,39)-TPK%K110(:)*PCONC(:,40)-TPK%K119(:)*PCONC(:,5)-T& -&PK%K127(:)*PCONC(:,41) +!H2SO4/WC_ACID=0.0 ! -!MO2/ALKAP=+0.09016*K091*<NO>+0.01390*K105*<MO2>-K105*<MO2>+0.51480*K111*<CARBO -!P>+0.09731*K120*<NO3> - PJAC(:,32,33)=+0.09016*TPK%K091(:)*PCONC(:,3)+0.01390*TPK%K105(:)*PCONC(:,32)-& -&TPK%K105(:)*PCONC(:,32)+0.51480*TPK%K111(:)*PCONC(:,39)+0.09731*TPK%K120(:)*PC& -&ONC(:,5) +!H2SO4/WC_RP16=0.0 ! -!MO2/ALKEP=-K106*<MO2>+0.50078*K112*<CARBOP> - PJAC(:,32,34)=-TPK%K106(:)*PCONC(:,32)+0.50078*TPK%K112(:)*PCONC(:,39) +!H2SO4/WC_UR21=0.0 ! -!MO2/BIOP=-K107*<MO2>+0.50600*K113*<CARBOP> - PJAC(:,32,35)=-TPK%K107(:)*PCONC(:,32)+0.50600*TPK%K113(:)*PCONC(:,39) +!H2SO4/WC_UR28=0.0 ! -!MO2/PHO=0.0 +!H2SO4/WC_ACID2=0.0 ! -!MO2/ADD=0.0 +!H2SO4/WC_ASO3=0.0 ! -!MO2/AROP=-K108*<MO2>+K114*<CARBOP> - PJAC(:,32,38)=-TPK%K108(:)*PCONC(:,32)+TPK%K114(:)*PCONC(:,39) +!H2SO4/WC_ASO4=0.0 ! -!MO2/CARBOP=+0.78134*K095*<NO>+0.56031*K109*<MO2>-K109*<MO2>+0.51480*K111*<ALKA -!P>+0.50078*K112*<ALKEP>+0.50600*K113*<BIOP>+K114*<AROP>+1.66702*K115*<CARBOP>+ -!1.66702*K115*<CARBOP>+0.51037*K116*<OLN>+0.91910*K124*<NO3>+K128*<XO2> - PJAC(:,32,39)=+0.78134*TPK%K095(:)*PCONC(:,3)+0.56031*TPK%K109(:)*PCONC(:,32)-& -&TPK%K109(:)*PCONC(:,32)+0.51480*TPK%K111(:)*PCONC(:,33)+0.50078*TPK%K112(:)*PC& -&ONC(:,34)+0.50600*TPK%K113(:)*PCONC(:,35)+TPK%K114(:)*PCONC(:,38)+1.66702*TPK%& -&K115(:)*PCONC(:,39)+1.66702*TPK%K115(:)*PCONC(:,39)+0.51037*TPK%K116(:)*PCONC(& -&:,40)+0.91910*TPK%K124(:)*PCONC(:,5)+TPK%K128(:)*PCONC(:,41) +!H2SO4/WC_ASO5=0.0 ! -!MO2/OLN=-K110*<MO2>+0.51037*K116*<CARBOP> - PJAC(:,32,40)=-TPK%K110(:)*PCONC(:,32)+0.51037*TPK%K116(:)*PCONC(:,39) +!H2SO4/WC_AHSO5=0.0 ! -!MO2/XO2=-K127*<MO2>+K128*<CARBOP> - PJAC(:,32,41)=-TPK%K127(:)*PCONC(:,32)+TPK%K128(:)*PCONC(:,39) +!H2SO4/WC_AHMS=0.0 ! -!ALKAP/O3=+0.09815*K079*<ALKE>+0.00000*K080*<BIO> - PJAC(:,33,1)=+0.09815*TPK%K079(:)*PCONC(:,19)+0.00000*TPK%K080(:)*PCONC(:,20) +!H2SO4/WR_O3=0.0 ! -!ALKAP/H2O2=0.0 +!H2SO4/WR_H2O2=0.0 ! -!ALKAP/NO=+0.08187*K091*<ALKAP>-K091*<ALKAP> - PJAC(:,33,3)=+0.08187*TPK%K091(:)*PCONC(:,33)-TPK%K091(:)*PCONC(:,33) +!H2SO4/WR_NO=0.0 ! -!ALKAP/NO2=0.0 +!H2SO4/WR_NO2=0.0 ! -!ALKAP/NO3=+0.08994*K120*<ALKAP>-K120*<ALKAP> - PJAC(:,33,5)=+0.08994*TPK%K120(:)*PCONC(:,33)-TPK%K120(:)*PCONC(:,33) +!H2SO4/WR_NO3=0.0 ! -!ALKAP/N2O5=0.0 +!H2SO4/WR_N2O5=0.0 ! -!ALKAP/HONO=0.0 +!H2SO4/WR_HONO=0.0 ! -!ALKAP/HNO3=0.0 +!H2SO4/WR_HNO3=0.0 ! -!ALKAP/HNO4=0.0 +!H2SO4/WR_HNO4=0.0 ! -!ALKAP/NH3=0.0 +!H2SO4/WR_NH3=0.0 ! -!ALKAP/SO2=0.0 +!H2SO4/WR_OH=0.0 ! -!ALKAP/SULF=0.0 +!H2SO4/WR_HO2=0.0 ! -!ALKAP/CO=0.0 +!H2SO4/WR_CO2=0.0 ! -!ALKAP/OH=+K057*<ETH>+0.87811*K058*<ALKA>+0.40341*K069*<OP2>+1.00000*K071*<ONIT -!> - PJAC(:,33,14)=+TPK%K057(:)*PCONC(:,17)+0.87811*TPK%K058(:)*PCONC(:,18)+0.40341& -&*TPK%K069(:)*PCONC(:,29)+1.00000*TPK%K071(:)*PCONC(:,26) +!H2SO4/WR_SO2=0.0 ! -!ALKAP/HO2=-K098*<ALKAP> - PJAC(:,33,15)=-TPK%K098(:)*PCONC(:,33) +!H2SO4/WR_H2SO4=+KTR46 + PJAC(:,14,139)=+TPK%KTR46(:) ! -!ALKAP/CH4=0.0 +!H2SO4/WR_RO21=0.0 ! -!ALKAP/ETH=+K057*<OH> - PJAC(:,33,17)=+TPK%K057(:)*PCONC(:,14) +!H2SO4/WR_RO25=0.0 ! -!ALKAP/ALKA=+0.87811*K058*<OH> - PJAC(:,33,18)=+0.87811*TPK%K058(:)*PCONC(:,14) +!H2SO4/WR_MEOH=0.0 ! -!ALKAP/ALKE=+0.09815*K079*<O3> - PJAC(:,33,19)=+0.09815*TPK%K079(:)*PCONC(:,1) +!H2SO4/WR_ETOH=0.0 ! -!ALKAP/BIO=+0.00000*K080*<O3> - PJAC(:,33,20)=+0.00000*TPK%K080(:)*PCONC(:,1) +!H2SO4/WR_ALCH=0.0 ! -!ALKAP/ARO=0.0 +!H2SO4/WR_HCHO=0.0 ! -!ALKAP/HCHO=0.0 +!H2SO4/WR_ALD2=0.0 ! -!ALKAP/ALD=0.0 +!H2SO4/WR_GLY=0.0 ! -!ALKAP/KET=+1.00000*K015 - PJAC(:,33,24)=+1.00000*TPK%K015(:) +!H2SO4/WR_MGLY=0.0 ! -!ALKAP/CARBO=0.0 +!H2SO4/WR_KETL=0.0 ! -!ALKAP/ONIT=+1.00000*K071*<OH> - PJAC(:,33,26)=+1.00000*TPK%K071(:)*PCONC(:,14) +!H2SO4/WR_ORA1=0.0 ! -!ALKAP/PAN=0.0 +!H2SO4/WR_ORA2=0.0 ! -!ALKAP/OP1=0.0 +!H2SO4/WR_ACID=0.0 ! -!ALKAP/OP2=+0.40341*K069*<OH> - PJAC(:,33,29)=+0.40341*TPK%K069(:)*PCONC(:,14) +!H2SO4/WR_RP16=0.0 ! -!ALKAP/ORA1=0.0 +!H2SO4/WR_UR21=0.0 ! -!ALKAP/ORA2=0.0 +!H2SO4/WR_UR28=0.0 ! -!ALKAP/MO2=+0.00385*K105*<ALKAP>-K105*<ALKAP> - PJAC(:,33,32)=+0.00385*TPK%K105(:)*PCONC(:,33)-TPK%K105(:)*PCONC(:,33) +!H2SO4/WR_ACID2=0.0 ! -!ALKAP/ALKAP=+0.08187*K091*<NO>-K091*<NO>-K098*<HO2>+0.00385*K105*<MO2>-K105*<M -!O2>+0.00828*K111*<CARBOP>-K111*<CARBOP>+0.08994*K120*<NO3>-K120*<NO3> - PJAC(:,33,33)=+0.08187*TPK%K091(:)*PCONC(:,3)-TPK%K091(:)*PCONC(:,3)-TPK%K098(& -&:)*PCONC(:,15)+0.00385*TPK%K105(:)*PCONC(:,32)-TPK%K105(:)*PCONC(:,32)+0.00828& -&*TPK%K111(:)*PCONC(:,39)-TPK%K111(:)*PCONC(:,39)+0.08994*TPK%K120(:)*PCONC(:,5& -&)-TPK%K120(:)*PCONC(:,5) +!H2SO4/WR_ASO3=0.0 ! -!ALKAP/ALKEP=0.0 +!H2SO4/WR_ASO4=0.0 ! -!ALKAP/BIOP=0.0 +!H2SO4/WR_ASO5=0.0 ! -!ALKAP/PHO=0.0 +!H2SO4/WR_AHSO5=0.0 ! -!ALKAP/ADD=0.0 +!H2SO4/WR_AHMS=0.0 ! -!ALKAP/AROP=0.0 +!OH/NO=-K019*<OH>+K026*<HO2>+K340*<RO258> + PJAC(:,15,1)=-TPK%K019(:)*PCONC(:,15)+TPK%K026(:)*PCONC(:,10)+TPK%K340(:)*TPK%& +&RO258(:) ! -!ALKAP/CARBOP=+0.00828*K111*<ALKAP>-K111*<ALKAP> - PJAC(:,33,39)=+0.00828*TPK%K111(:)*PCONC(:,33)-TPK%K111(:)*PCONC(:,33) +!OH/NO2=-K022*<OH> + PJAC(:,15,2)=-TPK%K022(:)*PCONC(:,15) ! -!ALKAP/OLN=0.0 +!OH/O3=-K025*<OH>+K030*<HO2>+0.06*K051*<ETHE>+0.36*K056*<OLEL>+0.664*K066*<ISOP +!>+0.36*K076*<OLEH>+0.89*K086*<BIOL>+0.89*K090*<BIOH>+0.36*K281*<MVK>+0.82*K282 +!*<MCR> + PJAC(:,15,3)=-TPK%K025(:)*PCONC(:,15)+TPK%K030(:)*PCONC(:,10)+0.06*TPK%K051(:)& +&*PCONC(:,16)+0.36*TPK%K056(:)*PCONC(:,17)+0.664*TPK%K066(:)*PCONC(:,35)+0.36*T& +&PK%K076(:)*PCONC(:,18)+0.89*TPK%K086(:)*PCONC(:,36)+0.89*TPK%K090(:)*PCONC(:,3& +&7)+0.36*TPK%K281(:)*PCONC(:,39)+0.82*TPK%K282(:)*PCONC(:,40) ! -!ALKAP/XO2=0.0 +!OH/HONO=+0.9*K020-K039*<OH> + PJAC(:,15,4)=+0.9*TPK%K020(:)-TPK%K039(:)*PCONC(:,15) ! -!ALKEP/O3=0.0 +!OH/HNO3=-K023*<OH> + PJAC(:,15,5)=-TPK%K023(:)*PCONC(:,15) ! -!ALKEP/H2O2=0.0 +!OH/HNO4=-K029*<OH> + PJAC(:,15,6)=-TPK%K029(:)*PCONC(:,15) ! -!ALKEP/NO=-K092*<ALKEP> - PJAC(:,34,3)=-TPK%K092(:)*PCONC(:,34) +!OH/N2O5=0.0 ! -!ALKEP/NO2=0.0 +!OH/NO3=+0.8*K033*<HO2>-K040*<OH> + PJAC(:,15,8)=+0.8*TPK%K033(:)*PCONC(:,10)-TPK%K040(:)*PCONC(:,15) +! +!OH/NH3=-K345*<OH> + PJAC(:,15,9)=-TPK%K345(:)*PCONC(:,15) +! +!OH/HO2=+K026*<NO>+K030*<O3>+0.8*K033*<NO3>-K042*<OH>+K112*<RO21>+K115*<RO22>+K +!118*<RO23>+K121*<RO24>+K124*<RO25>+K146*<RO27>+K152*<RO29>+K155*<RO210>+K158*< +!RO211>+K161*<RO212>+K164*<RO213>+K170*<RO214>+K173*<RO215>+K176*<RO216>+K179*< +!RO217>+K182*<RO218>+K185*<RO219>+K188*<RO220>+K191*<RO221>+K194*<RO222>+K197*< +!RO223>+K200*<RO224>+K203*<RO225>+K206*<RO226>+K209*<RO227>+K212*<RO228>+K215*< +!RO229>+K218*<RO240>+K220*<RO230>+K223*<RO231>+K226*<RO232>+K229*<RO241>+K233*< +!RO233>+K236*<RO242>+K240*<RO234>+K243*<RO243>+K247*<RO235>+K250*<RO244>+K254*< +!RO236>+K257*<RO245>+K261*<RO237>+K264*<RO246>+K268*<RO238>+K271*<RO247>+K287*< +!RO249> + PJAC(:,15,10)=+TPK%K026(:)*PCONC(:,1)+TPK%K030(:)*PCONC(:,3)+0.8*TPK%K033(:)*P& +&CONC(:,8)-TPK%K042(:)*PCONC(:,15)+TPK%K112(:)*PCONC(:,86)+TPK%K115(:)*TPK%RO22& +&(:)+TPK%K118(:)*TPK%RO23(:)+TPK%K121(:)*TPK%RO24(:)+TPK%K124(:)*PCONC(:,87)+TP& +&K%K146(:)*TPK%RO27(:)+TPK%K152(:)*TPK%RO29(:)+TPK%K155(:)*TPK%RO210(:)+TPK%K15& +&8(:)*TPK%RO211(:)+TPK%K161(:)*TPK%RO212(:)+TPK%K164(:)*TPK%RO213(:)+TPK%K170(:& +&)*TPK%RO214(:)+TPK%K173(:)*TPK%RO215(:)+TPK%K176(:)*TPK%RO216(:)+TPK%K179(:)*T& +&PK%RO217(:)+TPK%K182(:)*TPK%RO218(:)+TPK%K185(:)*TPK%RO219(:)+TPK%K188(:)*TPK%& +&RO220(:)+TPK%K191(:)*TPK%RO221(:)+TPK%K194(:)*TPK%RO222(:)+TPK%K197(:)*TPK%RO2& +&23(:)+TPK%K200(:)*TPK%RO224(:)+TPK%K203(:)*TPK%RO225(:)+TPK%K206(:)*TPK%RO226(& +&:)+TPK%K209(:)*TPK%RO227(:)+TPK%K212(:)*TPK%RO228(:)+TPK%K215(:)*TPK%RO229(:)+& +&TPK%K218(:)*TPK%RO240(:)+TPK%K220(:)*TPK%RO230(:)+TPK%K223(:)*TPK%RO231(:)+TPK& +&%K226(:)*TPK%RO232(:)+TPK%K229(:)*TPK%RO241(:)+TPK%K233(:)*TPK%RO233(:)+TPK%K2& +&36(:)*TPK%RO242(:)+TPK%K240(:)*TPK%RO234(:)+TPK%K243(:)*TPK%RO243(:)+TPK%K247(& +&:)*TPK%RO235(:)+TPK%K250(:)*TPK%RO244(:)+TPK%K254(:)*TPK%RO236(:)+TPK%K257(:)*& +&TPK%RO245(:)+TPK%K261(:)*TPK%RO237(:)+TPK%K264(:)*TPK%RO246(:)+TPK%K268(:)*TPK& +&%RO238(:)+TPK%K271(:)*TPK%RO247(:)+TPK%K287(:)*TPK%RO249(:) +! +!OH/CO=-K024*<OH> + PJAC(:,15,11)=-TPK%K024(:)*PCONC(:,15) +! +!OH/H2O2=+2.*K036-K037*<OH> + PJAC(:,15,12)=+2.*TPK%K036(:)-TPK%K037(:)*PCONC(:,15) +! +!OH/SO2=-K035*<OH> + PJAC(:,15,13)=-TPK%K035(:)*PCONC(:,15) +! +!OH/H2SO4=0.0 +! +!OH/OH=-K019*<NO>-K022*<NO2>-K023*<HNO3>-K024*<CO>-K025*<O3>-K029*<HNO4>-K035*< +!SO2>-K037*<H2O2>-K039*<HONO>-K040*<NO3>-K042*<HO2>-K043*<CH4>-K046*<HCHO>-K048 +!*<MEOH>-K049*<ETHE>-K053*<ETOH>-K054*<OLEL>-K058*<ALKL>-K060*<ALD2>-K062*<KETL +!>-K064*<ISOP>-K068*<MTBE>-K069*<ALCH>-K070*<KETH>-K073*<AROO>-K074*<OLEH>-K078 +!*<ALKM>-K079*<AROL>-K080*<AROH>-K082*<ARAL>-K083*<ARAC>-K084*<BIOL>-K088*<BIOH +!>-K092*<PAH>-K093*<ALKH>-K272*<MVK>-K273*<MCR>-K274*<MGLY>-K303*<RPR5>-K304*<R +!PR1>-K305*<RP16>-K306*<RPRL>-K312*<RPR3>-K322*<RPR7>-K323*<RPG7>-K324*<RPR8>-K +!325*<RP10>-K326*<RP11>-K334*<RPG3>-K335*<RPG2>-K337*<RP18>-K345*<NH3>-K347*<OR +!A1>-K348*<ORA2>-K349*<ACID>-KTC11-KTR11 + PJAC(:,15,15)=-TPK%K019(:)*PCONC(:,1)-TPK%K022(:)*PCONC(:,2)-TPK%K023(:)*PCONC& +&(:,5)-TPK%K024(:)*PCONC(:,11)-TPK%K025(:)*PCONC(:,3)-TPK%K029(:)*PCONC(:,6)-TP& +&K%K035(:)*PCONC(:,13)-TPK%K037(:)*PCONC(:,12)-TPK%K039(:)*PCONC(:,4)-TPK%K040(& +&:)*PCONC(:,8)-TPK%K042(:)*PCONC(:,10)-TPK%K043(:)*TPK%CH4(:)-TPK%K046(:)*PCONC& +&(:,28)-TPK%K048(:)*PCONC(:,32)-TPK%K049(:)*PCONC(:,16)-TPK%K053(:)*PCONC(:,33)& +&-TPK%K054(:)*PCONC(:,17)-TPK%K058(:)*PCONC(:,19)-TPK%K060(:)*PCONC(:,29)-TPK%K& +&062(:)*PCONC(:,30)-TPK%K064(:)*PCONC(:,35)-TPK%K068(:)*PCONC(:,38)-TPK%K069(:)& +&*PCONC(:,34)-TPK%K070(:)*PCONC(:,31)-TPK%K073(:)*PCONC(:,24)-TPK%K074(:)*PCONC& +&(:,18)-TPK%K078(:)*PCONC(:,20)-TPK%K079(:)*PCONC(:,23)-TPK%K080(:)*PCONC(:,22)& +&-TPK%K082(:)*PCONC(:,25)-TPK%K083(:)*PCONC(:,26)-TPK%K084(:)*PCONC(:,36)-TPK%K& +&088(:)*PCONC(:,37)-TPK%K092(:)*PCONC(:,27)-TPK%K093(:)*PCONC(:,21)-TPK%K272(:)& +&*PCONC(:,39)-TPK%K273(:)*PCONC(:,40)-TPK%K274(:)*PCONC(:,41)-TPK%K303(:)*PCONC& +&(:,70)-TPK%K304(:)*PCONC(:,69)-TPK%K305(:)*PCONC(:,74)-TPK%K306(:)*PCONC(:,75)& +&-TPK%K312(:)*PCONC(:,57)-TPK%K322(:)*PCONC(:,62)-TPK%K323(:)*PCONC(:,63)-TPK%K& +&324(:)*PCONC(:,71)-TPK%K325(:)*PCONC(:,72)-TPK%K326(:)*PCONC(:,73)-TPK%K334(:)& +&*PCONC(:,52)-TPK%K335(:)*PCONC(:,50)-TPK%K337(:)*PCONC(:,51)-TPK%K345(:)*PCONC& +&(:,9)-TPK%K347(:)*PCONC(:,43)-TPK%K348(:)*PCONC(:,44)-TPK%K349(:)*PCONC(:,45)-& +&TPK%KTC11(:)-TPK%KTR11(:) ! -!ALKEP/NO3=-K121*<ALKEP> - PJAC(:,34,5)=-TPK%K121(:)*PCONC(:,34) +!OH/ETHE=-K049*<OH>+0.06*K051*<O3> + PJAC(:,15,16)=-TPK%K049(:)*PCONC(:,15)+0.06*TPK%K051(:)*PCONC(:,3) ! -!ALKEP/N2O5=0.0 +!OH/OLEL=-K054*<OH>+0.36*K056*<O3> + PJAC(:,15,17)=-TPK%K054(:)*PCONC(:,15)+0.36*TPK%K056(:)*PCONC(:,3) ! -!ALKEP/HONO=0.0 +!OH/OLEH=-K074*<OH>+0.36*K076*<O3> + PJAC(:,15,18)=-TPK%K074(:)*PCONC(:,15)+0.36*TPK%K076(:)*PCONC(:,3) ! -!ALKEP/HNO3=0.0 +!OH/ALKL=-K058*<OH> + PJAC(:,15,19)=-TPK%K058(:)*PCONC(:,15) ! -!ALKEP/HNO4=0.0 +!OH/ALKM=-K078*<OH> + PJAC(:,15,20)=-TPK%K078(:)*PCONC(:,15) ! -!ALKEP/NH3=0.0 +!OH/ALKH=-K093*<OH> + PJAC(:,15,21)=-TPK%K093(:)*PCONC(:,15) ! -!ALKEP/SO2=0.0 +!OH/AROH=-K080*<OH> + PJAC(:,15,22)=-TPK%K080(:)*PCONC(:,15) ! -!ALKEP/SULF=0.0 +!OH/AROL=-K079*<OH> + PJAC(:,15,23)=-TPK%K079(:)*PCONC(:,15) ! -!ALKEP/CO=0.0 +!OH/AROO=-K073*<OH> + PJAC(:,15,24)=-TPK%K073(:)*PCONC(:,15) ! -!ALKEP/OH=+1.02529*K059*<ALKE> - PJAC(:,34,14)=+1.02529*TPK%K059(:)*PCONC(:,19) +!OH/ARAL=-K082*<OH> + PJAC(:,15,25)=-TPK%K082(:)*PCONC(:,15) ! -!ALKEP/HO2=-K099*<ALKEP> - PJAC(:,34,15)=-TPK%K099(:)*PCONC(:,34) +!OH/ARAC=-K083*<OH> + PJAC(:,15,26)=-TPK%K083(:)*PCONC(:,15) ! -!ALKEP/CH4=0.0 +!OH/PAH=-K092*<OH> + PJAC(:,15,27)=-TPK%K092(:)*PCONC(:,15) ! -!ALKEP/ETH=0.0 +!OH/HCHO=-K046*<OH> + PJAC(:,15,28)=-TPK%K046(:)*PCONC(:,15) ! -!ALKEP/ALKA=0.0 +!OH/ALD2=-K060*<OH> + PJAC(:,15,29)=-TPK%K060(:)*PCONC(:,15) ! -!ALKEP/ALKE=+1.02529*K059*<OH> - PJAC(:,34,19)=+1.02529*TPK%K059(:)*PCONC(:,14) +!OH/KETL=-K062*<OH> + PJAC(:,15,30)=-TPK%K062(:)*PCONC(:,15) ! -!ALKEP/BIO=0.0 +!OH/KETH=-K070*<OH> + PJAC(:,15,31)=-TPK%K070(:)*PCONC(:,15) ! -!ALKEP/ARO=0.0 +!OH/MEOH=-K048*<OH> + PJAC(:,15,32)=-TPK%K048(:)*PCONC(:,15) ! -!ALKEP/HCHO=0.0 +!OH/ETOH=-K053*<OH> + PJAC(:,15,33)=-TPK%K053(:)*PCONC(:,15) ! -!ALKEP/ALD=0.0 +!OH/ALCH=-K069*<OH> + PJAC(:,15,34)=-TPK%K069(:)*PCONC(:,15) ! -!ALKEP/KET=0.0 +!OH/ISOP=-K064*<OH>+0.664*K066*<O3> + PJAC(:,15,35)=-TPK%K064(:)*PCONC(:,15)+0.664*TPK%K066(:)*PCONC(:,3) ! -!ALKEP/CARBO=0.0 +!OH/BIOL=-K084*<OH>+0.89*K086*<O3> + PJAC(:,15,36)=-TPK%K084(:)*PCONC(:,15)+0.89*TPK%K086(:)*PCONC(:,3) ! -!ALKEP/ONIT=0.0 +!OH/BIOH=-K088*<OH>+0.89*K090*<O3> + PJAC(:,15,37)=-TPK%K088(:)*PCONC(:,15)+0.89*TPK%K090(:)*PCONC(:,3) ! -!ALKEP/PAN=0.0 +!OH/MTBE=-K068*<OH> + PJAC(:,15,38)=-TPK%K068(:)*PCONC(:,15) ! -!ALKEP/OP1=0.0 +!OH/MVK=-K272*<OH>+0.36*K281*<O3> + PJAC(:,15,39)=-TPK%K272(:)*PCONC(:,15)+0.36*TPK%K281(:)*PCONC(:,3) ! -!ALKEP/OP2=0.0 +!OH/MCR=-K273*<OH>+0.82*K282*<O3> + PJAC(:,15,40)=-TPK%K273(:)*PCONC(:,15)+0.82*TPK%K282(:)*PCONC(:,3) ! -!ALKEP/ORA1=0.0 +!OH/MGLY=-K274*<OH> + PJAC(:,15,41)=-TPK%K274(:)*PCONC(:,15) ! -!ALKEP/ORA2=0.0 +!OH/GLY=0.0 ! -!ALKEP/MO2=-K106*<ALKEP> - PJAC(:,34,32)=-TPK%K106(:)*PCONC(:,34) +!OH/ORA1=-K347*<OH> + PJAC(:,15,43)=-TPK%K347(:)*PCONC(:,15) ! -!ALKEP/ALKAP=0.0 +!OH/ORA2=-K348*<OH> + PJAC(:,15,44)=-TPK%K348(:)*PCONC(:,15) ! -!ALKEP/ALKEP=-K092*<NO>-K099*<HO2>-K106*<MO2>-K112*<CARBOP>-K121*<NO3> - PJAC(:,34,34)=-TPK%K092(:)*PCONC(:,3)-TPK%K099(:)*PCONC(:,15)-TPK%K106(:)*PCON& -&C(:,32)-TPK%K112(:)*PCONC(:,39)-TPK%K121(:)*PCONC(:,5) +!OH/ACID=-K349*<OH> + PJAC(:,15,45)=-TPK%K349(:)*PCONC(:,15) ! -!ALKEP/BIOP=0.0 +!OH/UR28=0.0 ! -!ALKEP/PHO=0.0 +!OH/UR21=0.0 ! -!ALKEP/ADD=0.0 +!OH/URG2=0.0 ! -!ALKEP/AROP=0.0 +!OH/UR26=0.0 ! -!ALKEP/CARBOP=-K112*<ALKEP> - PJAC(:,34,39)=-TPK%K112(:)*PCONC(:,34) +!OH/RPG2=-K335*<OH> + PJAC(:,15,50)=-TPK%K335(:)*PCONC(:,15) ! -!ALKEP/OLN=0.0 +!OH/RP18=-K337*<OH> + PJAC(:,15,51)=-TPK%K337(:)*PCONC(:,15) ! -!ALKEP/XO2=0.0 +!OH/RPG3=-K334*<OH> + PJAC(:,15,52)=-TPK%K334(:)*PCONC(:,15) ! -!BIOP/O3=0.0 +!OH/URG4=0.0 ! -!BIOP/H2O2=0.0 +!OH/UR8=0.0 ! -!BIOP/NO=-K093*<BIOP> - PJAC(:,35,3)=-TPK%K093(:)*PCONC(:,35) +!OH/UR17=0.0 ! -!BIOP/NO2=0.0 +!OH/UR7=0.0 ! -!BIOP/NO3=-K122*<BIOP> - PJAC(:,35,5)=-TPK%K122(:)*PCONC(:,35) +!OH/RPR3=-K312*<OH> + PJAC(:,15,57)=-TPK%K312(:)*PCONC(:,15) ! -!BIOP/N2O5=0.0 +!OH/URG6=0.0 ! -!BIOP/HONO=0.0 +!OH/UR22=0.0 ! -!BIOP/HNO3=0.0 +!OH/URG7=0.0 ! -!BIOP/HNO4=0.0 +!OH/RPR4=0.0 ! -!BIOP/NH3=0.0 +!OH/RPR7=-K322*<OH> + PJAC(:,15,62)=-TPK%K322(:)*PCONC(:,15) ! -!BIOP/SO2=0.0 +!OH/RPG7=-K323*<OH> + PJAC(:,15,63)=-TPK%K323(:)*PCONC(:,15) ! -!BIOP/SULF=0.0 +!OH/URG8=0.0 ! -!BIOP/CO=0.0 +!OH/UR19=0.0 ! -!BIOP/OH=+0.00000*K059*<ALKE>+1.00000*K060*<BIO> - PJAC(:,35,14)=+0.00000*TPK%K059(:)*PCONC(:,19)+1.00000*TPK%K060(:)*PCONC(:,20) +!OH/URG9=0.0 ! -!BIOP/HO2=-K0100*<BIOP> - PJAC(:,35,15)=-TPK%K0100(:)*PCONC(:,35) +!OH/AP7=0.0 ! -!BIOP/CH4=0.0 +!OH/URG10=0.0 ! -!BIOP/ETH=0.0 +!OH/RPR1=-K304*<OH> + PJAC(:,15,69)=-TPK%K304(:)*PCONC(:,15) ! -!BIOP/ALKA=0.0 +!OH/RPR5=-K303*<OH> + PJAC(:,15,70)=-TPK%K303(:)*PCONC(:,15) ! -!BIOP/ALKE=+0.00000*K059*<OH> - PJAC(:,35,19)=+0.00000*TPK%K059(:)*PCONC(:,14) +!OH/RPR8=-K324*<OH> + PJAC(:,15,71)=-TPK%K324(:)*PCONC(:,15) ! -!BIOP/BIO=+1.00000*K060*<OH> - PJAC(:,35,20)=+1.00000*TPK%K060(:)*PCONC(:,14) +!OH/RP10=-K325*<OH> + PJAC(:,15,72)=-TPK%K325(:)*PCONC(:,15) ! -!BIOP/ARO=0.0 +!OH/RP11=-K326*<OH> + PJAC(:,15,73)=-TPK%K326(:)*PCONC(:,15) ! -!BIOP/HCHO=0.0 +!OH/RP16=-K305*<OH>+K339 + PJAC(:,15,74)=-TPK%K305(:)*PCONC(:,15)+TPK%K339(:) ! -!BIOP/ALD=0.0 +!OH/RPRL=-K306*<OH> + PJAC(:,15,75)=-TPK%K306(:)*PCONC(:,15) ! -!BIOP/KET=0.0 +!OH/APAN=0.0 ! -!BIOP/CARBO=0.0 +!OH/PAN1=0.0 ! -!BIOP/ONIT=0.0 +!OH/PAN2=0.0 ! -!BIOP/PAN=0.0 +!OH/PAN3=0.0 ! -!BIOP/OP1=0.0 +!OH/PAN4=0.0 ! -!BIOP/OP2=0.0 +!OH/PAN6=0.0 ! -!BIOP/ORA1=0.0 +!OH/PAN7=0.0 ! -!BIOP/ORA2=0.0 +!OH/PAN8=0.0 ! -!BIOP/MO2=-K107*<BIOP> - PJAC(:,35,32)=-TPK%K107(:)*PCONC(:,35) +!OH/PN10=0.0 ! -!BIOP/ALKAP=0.0 +!OH/RO2T=+K293*<RO251>+K296*<RO252>+K299*<RO253>+K342*<RO258> + PJAC(:,15,85)=+TPK%K293(:)*TPK%RO251(:)+TPK%K296(:)*TPK%RO252(:)+TPK%K299(:)*T& +&PK%RO253(:)+TPK%K342(:)*TPK%RO258(:) ! -!BIOP/ALKEP=0.0 +!OH/RO21=+K112*<HO2> + PJAC(:,15,86)=+TPK%K112(:)*PCONC(:,10) ! -!BIOP/BIOP=-K093*<NO>-K0100*<HO2>-K107*<MO2>-K113*<CARBOP>-K122*<NO3> - PJAC(:,35,35)=-TPK%K093(:)*PCONC(:,3)-TPK%K0100(:)*PCONC(:,15)-TPK%K107(:)*PCO& -&NC(:,32)-TPK%K113(:)*PCONC(:,39)-TPK%K122(:)*PCONC(:,5) +!OH/RO25=+K124*<HO2> + PJAC(:,15,87)=+TPK%K124(:)*PCONC(:,10) ! -!BIOP/PHO=0.0 +!OH/WC_O3=0.0 ! -!BIOP/ADD=0.0 +!OH/WC_H2O2=0.0 ! -!BIOP/AROP=0.0 +!OH/WC_NO=0.0 ! -!BIOP/CARBOP=-K113*<BIOP> - PJAC(:,35,39)=-TPK%K113(:)*PCONC(:,35) +!OH/WC_NO2=0.0 ! -!BIOP/OLN=0.0 +!OH/WC_NO3=0.0 ! -!BIOP/XO2=0.0 +!OH/WC_N2O5=0.0 ! -RETURN -END SUBROUTINE SUBJ6 +!OH/WC_HONO=0.0 ! -SUBROUTINE SUBJ7 +!OH/WC_HNO3=0.0 ! -!Indices 36 a 40 +!OH/WC_HNO4=0.0 ! +!OH/WC_NH3=0.0 ! -!PHO/O3=0.0 +!OH/WC_OH=+KTC42 + PJAC(:,15,98)=+TPK%KTC42(:) ! -!PHO/H2O2=0.0 +!OH/WC_HO2=0.0 ! -!PHO/NO=0.0 +!OH/WC_CO2=0.0 ! -!PHO/NO2=-K083*<PHO> - PJAC(:,36,4)=-TPK%K083(:)*PCONC(:,36) +!OH/WC_SO2=0.0 ! -!PHO/NO3=+K075*<ARO> - PJAC(:,36,5)=+TPK%K075(:)*PCONC(:,21) +!OH/WC_H2SO4=0.0 ! -!PHO/N2O5=0.0 +!OH/WC_RO21=0.0 ! -!PHO/HONO=0.0 +!OH/WC_RO25=0.0 ! -!PHO/HNO3=0.0 +!OH/WC_MEOH=0.0 ! -!PHO/HNO4=0.0 +!OH/WC_ETOH=0.0 ! -!PHO/NH3=0.0 +!OH/WC_ALCH=0.0 ! -!PHO/SO2=0.0 +!OH/WC_HCHO=0.0 ! -!PHO/SULF=0.0 +!OH/WC_ALD2=0.0 ! -!PHO/CO=0.0 +!OH/WC_GLY=0.0 ! -!PHO/OH=+0.00276*K061*<ARO> - PJAC(:,36,14)=+0.00276*TPK%K061(:)*PCONC(:,21) +!OH/WC_MGLY=0.0 ! -!PHO/HO2=-K084*<PHO> - PJAC(:,36,15)=-TPK%K084(:)*PCONC(:,36) +!OH/WC_KETL=0.0 ! -!PHO/CH4=0.0 +!OH/WC_ORA1=0.0 ! -!PHO/ETH=0.0 +!OH/WC_ORA2=0.0 ! -!PHO/ALKA=0.0 +!OH/WC_ACID=0.0 ! -!PHO/ALKE=0.0 +!OH/WC_RP16=0.0 ! -!PHO/BIO=0.0 +!OH/WC_UR21=0.0 ! -!PHO/ARO=+0.00276*K061*<OH>+K075*<NO3> - PJAC(:,36,21)=+0.00276*TPK%K061(:)*PCONC(:,14)+TPK%K075(:)*PCONC(:,5) +!OH/WC_UR28=0.0 ! -!PHO/HCHO=0.0 +!OH/WC_ACID2=0.0 ! -!PHO/ALD=0.0 +!OH/WC_ASO3=0.0 ! -!PHO/KET=0.0 +!OH/WC_ASO4=0.0 ! -!PHO/CARBO=0.0 +!OH/WC_ASO5=0.0 ! -!PHO/ONIT=0.0 +!OH/WC_AHSO5=0.0 ! -!PHO/PAN=0.0 +!OH/WC_AHMS=0.0 ! -!PHO/OP1=0.0 +!OH/WR_O3=0.0 ! -!PHO/OP2=0.0 +!OH/WR_H2O2=0.0 ! -!PHO/ORA1=0.0 +!OH/WR_NO=0.0 ! -!PHO/ORA2=0.0 +!OH/WR_NO2=0.0 ! -!PHO/MO2=0.0 +!OH/WR_NO3=0.0 ! -!PHO/ALKAP=0.0 +!OH/WR_N2O5=0.0 ! -!PHO/ALKEP=0.0 +!OH/WR_HONO=0.0 ! -!PHO/BIOP=0.0 +!OH/WR_HNO3=0.0 ! -!PHO/PHO=-K083*<NO2>-K084*<HO2> - PJAC(:,36,36)=-TPK%K083(:)*PCONC(:,4)-TPK%K084(:)*PCONC(:,15) +!OH/WR_HNO4=0.0 ! -!PHO/ADD=0.0 +!OH/WR_NH3=0.0 ! -!PHO/AROP=0.0 +!OH/WR_OH=+KTR42 + PJAC(:,15,135)=+TPK%KTR42(:) ! -!PHO/CARBOP=0.0 +!OH/WR_HO2=0.0 ! -!PHO/OLN=0.0 +!OH/WR_CO2=0.0 ! -!PHO/XO2=0.0 +!OH/WR_SO2=0.0 ! -!ADD/O3=-K087*<ADD> - PJAC(:,37,1)=-TPK%K087(:)*PCONC(:,37) +!OH/WR_H2SO4=0.0 ! -!ADD/H2O2=0.0 +!OH/WR_RO21=0.0 ! -!ADD/NO=0.0 +!OH/WR_RO25=0.0 ! -!ADD/NO2=-K085*<ADD> - PJAC(:,37,4)=-TPK%K085(:)*PCONC(:,37) +!OH/WR_MEOH=0.0 ! -!ADD/NO3=0.0 +!OH/WR_ETOH=0.0 ! -!ADD/N2O5=0.0 +!OH/WR_ALCH=0.0 ! -!ADD/HONO=0.0 +!OH/WR_HCHO=0.0 ! -!ADD/HNO3=0.0 +!OH/WR_ALD2=0.0 ! -!ADD/HNO4=0.0 +!OH/WR_GLY=0.0 ! -!ADD/NH3=0.0 +!OH/WR_MGLY=0.0 ! -!ADD/SO2=0.0 +!OH/WR_KETL=0.0 ! -!ADD/SULF=0.0 +!OH/WR_ORA1=0.0 ! -!ADD/CO=0.0 +!OH/WR_ORA2=0.0 ! -!ADD/OH=+0.93968*K061*<ARO> - PJAC(:,37,14)=+0.93968*TPK%K061(:)*PCONC(:,21) +!OH/WR_ACID=0.0 ! -!ADD/HO2=0.0 +!OH/WR_RP16=0.0 ! -!ADD/CH4=0.0 +!OH/WR_UR21=0.0 ! -!ADD/ETH=0.0 +!OH/WR_UR28=0.0 ! -!ADD/ALKA=0.0 +!OH/WR_ACID2=0.0 ! -!ADD/ALKE=0.0 +!OH/WR_ASO3=0.0 ! -!ADD/BIO=0.0 +!OH/WR_ASO4=0.0 ! -!ADD/ARO=+0.93968*K061*<OH> - PJAC(:,37,21)=+0.93968*TPK%K061(:)*PCONC(:,14) +!OH/WR_ASO5=0.0 ! -!ADD/HCHO=0.0 +!OH/WR_AHSO5=0.0 ! -!ADD/ALD=0.0 +!OH/WR_AHMS=0.0 ! -!ADD/KET=0.0 +RETURN +END SUBROUTINE SUBJ2 ! -!ADD/CARBO=0.0 +SUBROUTINE SUBJ3 ! -!ADD/ONIT=0.0 +!Indices 16 a 20 ! -!ADD/PAN=0.0 ! -!ADD/OP1=0.0 +!ETHE/NO=0.0 ! -!ADD/OP2=0.0 +!ETHE/NO2=0.0 ! -!ADD/ORA1=0.0 +!ETHE/O3=-K051*<ETHE> + PJAC(:,16,3)=-TPK%K051(:)*PCONC(:,16) ! -!ADD/ORA2=0.0 +!ETHE/HONO=0.0 ! -!ADD/MO2=0.0 +!ETHE/HNO3=0.0 ! -!ADD/ALKAP=0.0 +!ETHE/HNO4=0.0 ! -!ADD/ALKEP=0.0 +!ETHE/N2O5=0.0 ! -!ADD/BIOP=0.0 +!ETHE/NO3=-K050*<ETHE> + PJAC(:,16,8)=-TPK%K050(:)*PCONC(:,16) ! -!ADD/PHO=0.0 +!ETHE/NH3=0.0 ! -!ADD/ADD=-K085*<NO2>-K086*<O2>-K087*<O3> - PJAC(:,37,37)=-TPK%K085(:)*PCONC(:,4)-TPK%K086(:)*TPK%O2(:)-TPK%K087(:)*PCONC(& -&:,1) +!ETHE/HO2=0.0 ! -!ADD/AROP=0.0 +!ETHE/CO=0.0 ! -!ADD/CARBOP=0.0 +!ETHE/H2O2=0.0 ! -!ADD/OLN=0.0 +!ETHE/SO2=0.0 ! -!ADD/XO2=0.0 +!ETHE/H2SO4=0.0 ! -!AROP/O3=0.0 +!ETHE/OH=-K049*<ETHE> + PJAC(:,16,15)=-TPK%K049(:)*PCONC(:,16) ! -!AROP/H2O2=0.0 +!ETHE/ETHE=-K049*<OH>-K050*<NO3>-K051*<O3>-K052*<O> + PJAC(:,16,16)=-TPK%K049(:)*PCONC(:,15)-TPK%K050(:)*PCONC(:,8)-TPK%K051(:)*PCON& +&C(:,3)-TPK%K052(:)*TPK%O(:) ! -!AROP/NO=-K094*<AROP> - PJAC(:,38,3)=-TPK%K094(:)*PCONC(:,38) +!ETHE/OLEL=0.0 ! -!AROP/NO2=0.0 +!ETHE/OLEH=0.0 ! -!AROP/NO3=-K123*<AROP> - PJAC(:,38,5)=-TPK%K123(:)*PCONC(:,38) +!ETHE/ALKL=0.0 ! -!AROP/N2O5=0.0 +!ETHE/ALKM=0.0 ! -!AROP/HONO=0.0 +!ETHE/ALKH=0.0 ! -!AROP/HNO3=0.0 +!ETHE/AROH=0.0 ! -!AROP/HNO4=0.0 +!ETHE/AROL=0.0 ! -!AROP/NH3=0.0 +!ETHE/AROO=0.0 ! -!AROP/SO2=0.0 +!ETHE/ARAL=0.0 ! -!AROP/SULF=0.0 +!ETHE/ARAC=0.0 ! -!AROP/CO=0.0 +!ETHE/PAH=0.0 ! -!AROP/OH=0.0 +!ETHE/HCHO=0.0 ! -!AROP/HO2=-K0101*<AROP> - PJAC(:,38,15)=-TPK%K0101(:)*PCONC(:,38) +!ETHE/ALD2=0.0 ! -!AROP/CH4=0.0 +!ETHE/KETL=0.0 ! -!AROP/ETH=0.0 +!ETHE/KETH=0.0 ! -!AROP/ALKA=0.0 +!ETHE/MEOH=0.0 ! -!AROP/ALKE=0.0 +!ETHE/ETOH=0.0 ! -!AROP/BIO=0.0 +!ETHE/ALCH=0.0 ! -!AROP/ARO=0.0 +!ETHE/ISOP=0.0 ! -!AROP/HCHO=0.0 +!ETHE/BIOL=0.0 ! -!AROP/ALD=0.0 +!ETHE/BIOH=0.0 ! -!AROP/KET=0.0 +!ETHE/MTBE=0.0 ! -!AROP/CARBO=0.0 +!ETHE/MVK=0.0 ! -!AROP/ONIT=0.0 +!ETHE/MCR=0.0 ! -!AROP/PAN=0.0 +!ETHE/MGLY=0.0 ! -!AROP/OP1=0.0 +!ETHE/GLY=0.0 ! -!AROP/OP2=0.0 +!ETHE/ORA1=0.0 ! -!AROP/ORA1=0.0 +!ETHE/ORA2=0.0 ! -!AROP/ORA2=0.0 +!ETHE/ACID=0.0 ! -!AROP/MO2=-K108*<AROP> - PJAC(:,38,32)=-TPK%K108(:)*PCONC(:,38) +!ETHE/UR28=0.0 ! -!AROP/ALKAP=0.0 +!ETHE/UR21=0.0 ! -!AROP/ALKEP=0.0 +!ETHE/URG2=0.0 ! -!AROP/BIOP=0.0 +!ETHE/UR26=0.0 ! -!AROP/PHO=0.0 +!ETHE/RPG2=0.0 ! -!AROP/ADD=+0.98*K086*<O2> - PJAC(:,38,37)=+0.98*TPK%K086(:)*TPK%O2(:) +!ETHE/RP18=0.0 ! -!AROP/AROP=-K094*<NO>-K0101*<HO2>-K108*<MO2>-K114*<CARBOP>-K123*<NO3> - PJAC(:,38,38)=-TPK%K094(:)*PCONC(:,3)-TPK%K0101(:)*PCONC(:,15)-TPK%K108(:)*PCO& -&NC(:,32)-TPK%K114(:)*PCONC(:,39)-TPK%K123(:)*PCONC(:,5) +!ETHE/RPG3=0.0 ! -!AROP/CARBOP=-K114*<AROP> - PJAC(:,38,39)=-TPK%K114(:)*PCONC(:,38) +!ETHE/URG4=0.0 ! -!AROP/OLN=0.0 +!ETHE/UR8=0.0 ! -!AROP/XO2=0.0 +!ETHE/UR17=0.0 ! -!CARBOP/O3=+0.05705*K079*<ALKE>+0.17000*K080*<BIO>+0.27460*K081*<CARBO>+0.70000 -!*K082*<PAN> - PJAC(:,39,1)=+0.05705*TPK%K079(:)*PCONC(:,19)+0.17000*TPK%K080(:)*PCONC(:,20)+& -&0.27460*TPK%K081(:)*PCONC(:,25)+0.70000*TPK%K082(:)*PCONC(:,27) +!ETHE/UR7=0.0 ! -!CARBOP/H2O2=0.0 +!ETHE/RPR3=0.0 ! -!CARBOP/NO=+0.09532*K095*<CARBOP>-K095*<CARBOP> - PJAC(:,39,3)=+0.09532*TPK%K095(:)*PCONC(:,39)-TPK%K095(:)*PCONC(:,39) +!ETHE/URG6=0.0 ! -!CARBOP/NO2=-K088*<CARBOP> - PJAC(:,39,4)=-TPK%K088(:)*PCONC(:,39) +!ETHE/UR22=0.0 ! -!CARBOP/NO3=+1.00000*K073*<ALD>+0.38881*K074*<CARBO>+0.03175*K124*<CARBOP>-K124 -!*<CARBOP> - PJAC(:,39,5)=+1.00000*TPK%K073(:)*PCONC(:,23)+0.38881*TPK%K074(:)*PCONC(:,25)+& -&0.03175*TPK%K124(:)*PCONC(:,39)-TPK%K124(:)*PCONC(:,39) +!ETHE/URG7=0.0 ! -!CARBOP/N2O5=0.0 +!ETHE/RPR4=0.0 ! -!CARBOP/HONO=0.0 +!ETHE/RPR7=0.0 ! -!CARBOP/HNO3=0.0 +!ETHE/RPG7=0.0 ! -!CARBOP/HNO4=0.0 +!ETHE/URG8=0.0 ! -!CARBOP/NH3=0.0 +!ETHE/UR19=0.0 ! -!CARBOP/SO2=0.0 +!ETHE/URG9=0.0 ! -!CARBOP/SULF=0.0 +!ETHE/AP7=0.0 ! -!CARBOP/CO=0.0 +!ETHE/URG10=0.0 ! -!CARBOP/OH=+1.00000*K063*<ALD>+1.00000*K064*<KET>+0.51419*K065*<CARBO>+0.05413* -!K069*<OP2> - PJAC(:,39,14)=+1.00000*TPK%K063(:)*PCONC(:,23)+1.00000*TPK%K064(:)*PCONC(:,24)& -&+0.51419*TPK%K065(:)*PCONC(:,25)+0.05413*TPK%K069(:)*PCONC(:,29) +!ETHE/RPR1=0.0 ! -!CARBOP/HO2=-K0102*<CARBOP> - PJAC(:,39,15)=-TPK%K0102(:)*PCONC(:,39) +!ETHE/RPR5=0.0 ! -!CARBOP/CH4=0.0 +!ETHE/RPR8=0.0 ! -!CARBOP/ETH=0.0 +!ETHE/RP10=0.0 ! -!CARBOP/ALKA=0.0 +!ETHE/RP11=0.0 ! -!CARBOP/ALKE=+0.05705*K079*<O3> - PJAC(:,39,19)=+0.05705*TPK%K079(:)*PCONC(:,1) +!ETHE/RP16=0.0 ! -!CARBOP/BIO=+0.17000*K080*<O3> - PJAC(:,39,20)=+0.17000*TPK%K080(:)*PCONC(:,1) +!ETHE/RPRL=0.0 ! -!CARBOP/ARO=0.0 +!ETHE/APAN=0.0 ! -!CARBOP/HCHO=0.0 +!ETHE/PAN1=0.0 ! -!CARBOP/ALD=+1.00000*K063*<OH>+1.00000*K073*<NO3> - PJAC(:,39,23)=+1.00000*TPK%K063(:)*PCONC(:,14)+1.00000*TPK%K073(:)*PCONC(:,5) +!ETHE/PAN2=0.0 ! -!CARBOP/KET=+1.00000*K015+1.00000*K064*<OH> - PJAC(:,39,24)=+1.00000*TPK%K015(:)+1.00000*TPK%K064(:)*PCONC(:,14) +!ETHE/PAN3=0.0 ! -!CARBOP/CARBO=+0.69622*K016+0.51419*K065*<OH>+0.38881*K074*<NO3>+0.27460*K081*< -!O3> - PJAC(:,39,25)=+0.69622*TPK%K016(:)+0.51419*TPK%K065(:)*PCONC(:,14)+0.38881*TPK& -&%K074(:)*PCONC(:,5)+0.27460*TPK%K081(:)*PCONC(:,1) +!ETHE/PAN4=0.0 ! -!CARBOP/ONIT=0.0 +!ETHE/PAN6=0.0 ! -!CARBOP/PAN=+0.70000*K082*<O3>+1.00000*K089 - PJAC(:,39,27)=+0.70000*TPK%K082(:)*PCONC(:,1)+1.00000*TPK%K089(:) +!ETHE/PAN7=0.0 ! -!CARBOP/OP1=0.0 +!ETHE/PAN8=0.0 ! -!CARBOP/OP2=+0.05413*K069*<OH> - PJAC(:,39,29)=+0.05413*TPK%K069(:)*PCONC(:,14) +!ETHE/PN10=0.0 ! -!CARBOP/ORA1=0.0 +!ETHE/RO2T=0.0 ! -!CARBOP/ORA2=0.0 +!ETHE/RO21=0.0 ! -!CARBOP/MO2=+0.05954*K109*<CARBOP>-K109*<CARBOP> - PJAC(:,39,32)=+0.05954*TPK%K109(:)*PCONC(:,39)-TPK%K109(:)*PCONC(:,39) +!ETHE/RO25=0.0 ! -!CARBOP/ALKAP=-K111*<CARBOP> - PJAC(:,39,33)=-TPK%K111(:)*PCONC(:,39) +!ETHE/WC_O3=0.0 ! -!CARBOP/ALKEP=-K112*<CARBOP> - PJAC(:,39,34)=-TPK%K112(:)*PCONC(:,39) +!ETHE/WC_H2O2=0.0 ! -!CARBOP/BIOP=-K113*<CARBOP> - PJAC(:,39,35)=-TPK%K113(:)*PCONC(:,39) +!ETHE/WC_NO=0.0 ! -!CARBOP/PHO=0.0 +!ETHE/WC_NO2=0.0 ! -!CARBOP/ADD=0.0 +!ETHE/WC_NO3=0.0 ! -!CARBOP/AROP=-K114*<CARBOP> - PJAC(:,39,38)=-TPK%K114(:)*PCONC(:,39) +!ETHE/WC_N2O5=0.0 ! -!CARBOP/CARBOP=-K088*<NO2>+0.09532*K095*<NO>-K095*<NO>-K0102*<HO2>+0.05954*K109 -!*<MO2>-K109*<MO2>-K111*<ALKAP>-K112*<ALKEP>-K113*<BIOP>-K114*<AROP>+0.05821*K1 -!15*<CARBOP>+0.05821*K115*<CARBOP>-K115*<CARBOP>-K115*<CARBOP>-K115*<CARBOP>-K1 -!15*<CARBOP>-K116*<OLN>+0.03175*K124*<NO3>-K124*<NO3>-K128*<XO2> - PJAC(:,39,39)=-TPK%K088(:)*PCONC(:,4)+0.09532*TPK%K095(:)*PCONC(:,3)-TPK%K095(& -&:)*PCONC(:,3)-TPK%K0102(:)*PCONC(:,15)+0.05954*TPK%K109(:)*PCONC(:,32)-TPK%K10& -&9(:)*PCONC(:,32)-TPK%K111(:)*PCONC(:,33)-TPK%K112(:)*PCONC(:,34)-TPK%K113(:)*P& -&CONC(:,35)-TPK%K114(:)*PCONC(:,38)+0.05821*TPK%K115(:)*PCONC(:,39)+0.05821*TPK& -&%K115(:)*PCONC(:,39)-TPK%K115(:)*PCONC(:,39)-TPK%K115(:)*PCONC(:,39)-TPK%K115(& -&:)*PCONC(:,39)-TPK%K115(:)*PCONC(:,39)-TPK%K116(:)*PCONC(:,40)+0.03175*TPK%K12& -&4(:)*PCONC(:,5)-TPK%K124(:)*PCONC(:,5)-TPK%K128(:)*PCONC(:,41) +!ETHE/WC_HONO=0.0 ! -!CARBOP/OLN=-K116*<CARBOP> - PJAC(:,39,40)=-TPK%K116(:)*PCONC(:,39) +!ETHE/WC_HNO3=0.0 ! -!CARBOP/XO2=-K128*<CARBOP> - PJAC(:,39,41)=-TPK%K128(:)*PCONC(:,39) +!ETHE/WC_HNO4=0.0 ! -!OLN/O3=0.0 +!ETHE/WC_NH3=0.0 ! -!OLN/H2O2=0.0 +!ETHE/WC_OH=0.0 ! -!OLN/NO=-K096*<OLN> - PJAC(:,40,3)=-TPK%K096(:)*PCONC(:,40) +!ETHE/WC_HO2=0.0 ! -!OLN/NO2=0.0 +!ETHE/WC_CO2=0.0 ! -!OLN/NO3=+0.00000*K074*<CARBO>+0.93768*K076*<ALKE>+1.00000*K077*<BIO>-K125*<OLN -!> - PJAC(:,40,5)=+0.00000*TPK%K074(:)*PCONC(:,25)+0.93768*TPK%K076(:)*PCONC(:,19)+& -&1.00000*TPK%K077(:)*PCONC(:,20)-TPK%K125(:)*PCONC(:,40) +!ETHE/WC_SO2=0.0 ! -!OLN/N2O5=0.0 +!ETHE/WC_H2SO4=0.0 ! -!OLN/HONO=0.0 +!ETHE/WC_RO21=0.0 ! -!OLN/HNO3=0.0 +!ETHE/WC_RO25=0.0 ! -!OLN/HNO4=0.0 +!ETHE/WC_MEOH=0.0 ! -!OLN/NH3=0.0 +!ETHE/WC_ETOH=0.0 ! -!OLN/SO2=0.0 +!ETHE/WC_ALCH=0.0 ! -!OLN/SULF=0.0 +!ETHE/WC_HCHO=0.0 ! -!OLN/CO=0.0 +!ETHE/WC_ALD2=0.0 ! -!OLN/OH=0.0 +!ETHE/WC_GLY=0.0 ! -!OLN/HO2=-K103*<OLN> - PJAC(:,40,15)=-TPK%K103(:)*PCONC(:,40) +!ETHE/WC_MGLY=0.0 ! -!OLN/CH4=0.0 +!ETHE/WC_KETL=0.0 ! -!OLN/ETH=0.0 +!ETHE/WC_ORA1=0.0 ! -!OLN/ALKA=0.0 +!ETHE/WC_ORA2=0.0 ! -!OLN/ALKE=+0.93768*K076*<NO3> - PJAC(:,40,19)=+0.93768*TPK%K076(:)*PCONC(:,5) +!ETHE/WC_ACID=0.0 ! -!OLN/BIO=+1.00000*K077*<NO3> - PJAC(:,40,20)=+1.00000*TPK%K077(:)*PCONC(:,5) +!ETHE/WC_RP16=0.0 ! -!OLN/ARO=0.0 +!ETHE/WC_UR21=0.0 ! -!OLN/HCHO=0.0 +!ETHE/WC_UR28=0.0 ! -!OLN/ALD=0.0 +!ETHE/WC_ACID2=0.0 ! -!OLN/KET=0.0 +!ETHE/WC_ASO3=0.0 ! -!OLN/CARBO=+0.00000*K074*<NO3> - PJAC(:,40,25)=+0.00000*TPK%K074(:)*PCONC(:,5) +!ETHE/WC_ASO4=0.0 ! -!OLN/ONIT=0.0 +!ETHE/WC_ASO5=0.0 ! -!OLN/PAN=0.0 +!ETHE/WC_AHSO5=0.0 ! -!OLN/OP1=0.0 +!ETHE/WC_AHMS=0.0 ! -!OLN/OP2=0.0 +!ETHE/WR_O3=0.0 ! -!OLN/ORA1=0.0 +!ETHE/WR_H2O2=0.0 ! -!OLN/ORA2=0.0 +!ETHE/WR_NO=0.0 ! -!OLN/MO2=-K110*<OLN> - PJAC(:,40,32)=-TPK%K110(:)*PCONC(:,40) +!ETHE/WR_NO2=0.0 ! -!OLN/ALKAP=0.0 +!ETHE/WR_NO3=0.0 ! -!OLN/ALKEP=0.0 +!ETHE/WR_N2O5=0.0 ! -!OLN/BIOP=0.0 +!ETHE/WR_HONO=0.0 ! -!OLN/PHO=0.0 +!ETHE/WR_HNO3=0.0 ! -!OLN/ADD=0.0 +!ETHE/WR_HNO4=0.0 ! -!OLN/AROP=0.0 +!ETHE/WR_NH3=0.0 ! -!OLN/CARBOP=-K116*<OLN> - PJAC(:,40,39)=-TPK%K116(:)*PCONC(:,40) +!ETHE/WR_OH=0.0 ! -!OLN/OLN=-K096*<NO>-K103*<HO2>-K110*<MO2>-K116*<CARBOP>-K117*<OLN>-K117*<OLN>-K -!117*<OLN>-K117*<OLN>-K118*<OLN>-K118*<OLN>-K118*<OLN>-K118*<OLN>-K125*<NO3> - PJAC(:,40,40)=-TPK%K096(:)*PCONC(:,3)-TPK%K103(:)*PCONC(:,15)-TPK%K110(:)*PCON& -&C(:,32)-TPK%K116(:)*PCONC(:,39)-TPK%K117(:)*PCONC(:,40)-TPK%K117(:)*PCONC(:,40& -&)-TPK%K117(:)*PCONC(:,40)-TPK%K117(:)*PCONC(:,40)-TPK%K118(:)*PCONC(:,40)-TPK%& -&K118(:)*PCONC(:,40)-TPK%K118(:)*PCONC(:,40)-TPK%K118(:)*PCONC(:,40)-TPK%K125(:& -&)*PCONC(:,5) +!ETHE/WR_HO2=0.0 ! -!OLN/XO2=0.0 +!ETHE/WR_CO2=0.0 ! -RETURN -END SUBROUTINE SUBJ7 +!ETHE/WR_SO2=0.0 ! -SUBROUTINE SUBJ8 +!ETHE/WR_H2SO4=0.0 ! -!Indices 41 a 41 +!ETHE/WR_RO21=0.0 ! +!ETHE/WR_RO25=0.0 ! -!XO2/O3=+0.00000*K079*<ALKE>+0.13000*K080*<BIO> - PJAC(:,41,1)=+0.00000*TPK%K079(:)*PCONC(:,19)+0.13000*TPK%K080(:)*PCONC(:,20) +!ETHE/WR_MEOH=0.0 ! -!XO2/H2O2=0.0 +!ETHE/WR_ETOH=0.0 ! -!XO2/NO=+0.13007*K091*<ALKAP>+0.02563*K095*<CARBOP>-K130*<XO2> - PJAC(:,41,3)=+0.13007*TPK%K091(:)*PCONC(:,33)+0.02563*TPK%K095(:)*PCONC(:,39)-& -&TPK%K130(:)*PCONC(:,41) +!ETHE/WR_ALCH=0.0 ! -!XO2/NO2=0.0 +!ETHE/WR_HCHO=0.0 ! -!XO2/NO3=+0.10530*K074*<CARBO>+K078*<PAN>+0.16271*K120*<ALKAP>+0.01021*K124*<CA -!RBOP>-K131*<XO2> - PJAC(:,41,5)=+0.10530*TPK%K074(:)*PCONC(:,25)+TPK%K078(:)*PCONC(:,27)+0.16271*& -&TPK%K120(:)*PCONC(:,33)+0.01021*TPK%K124(:)*PCONC(:,39)-TPK%K131(:)*PCONC(:,41& -&) +!ETHE/WR_ALD2=0.0 ! -!XO2/N2O5=0.0 +!ETHE/WR_GLY=0.0 ! -!XO2/HONO=0.0 +!ETHE/WR_MGLY=0.0 ! -!XO2/HNO3=0.0 +!ETHE/WR_KETL=0.0 ! -!XO2/HNO4=0.0 +!ETHE/WR_ORA1=0.0 ! -!XO2/NH3=0.0 +!ETHE/WR_ORA2=0.0 ! -!XO2/SO2=0.0 +!ETHE/WR_ACID=0.0 ! -!XO2/SULF=0.0 +!ETHE/WR_RP16=0.0 ! -!XO2/CO=0.0 +!ETHE/WR_UR21=0.0 ! -!XO2/OH=+0.10318*K061*<ARO>+0.10162*K065*<CARBO>+0.09333*K069*<OP2>+K070*<PAN> - PJAC(:,41,14)=+0.10318*TPK%K061(:)*PCONC(:,21)+0.10162*TPK%K065(:)*PCONC(:,25)& -&+0.09333*TPK%K069(:)*PCONC(:,29)+TPK%K070(:)*PCONC(:,27) +!ETHE/WR_UR28=0.0 ! -!XO2/HO2=-K126*<XO2> - PJAC(:,41,15)=-TPK%K126(:)*PCONC(:,41) +!ETHE/WR_ACID2=0.0 ! -!XO2/CH4=0.0 +!ETHE/WR_ASO3=0.0 ! -!XO2/ETH=0.0 +!ETHE/WR_ASO4=0.0 ! -!XO2/ALKA=0.0 +!ETHE/WR_ASO5=0.0 ! -!XO2/ALKE=+0.00000*K079*<O3> - PJAC(:,41,19)=+0.00000*TPK%K079(:)*PCONC(:,1) +!ETHE/WR_AHSO5=0.0 ! -!XO2/BIO=+0.15*K054*<O3P>+0.13000*K080*<O3> - PJAC(:,41,20)=+0.15*TPK%K054(:)*TPK%O3P(:)+0.13000*TPK%K080(:)*PCONC(:,1) +!ETHE/WR_AHMS=0.0 ! -!XO2/ARO=+0.10318*K061*<OH> - PJAC(:,41,21)=+0.10318*TPK%K061(:)*PCONC(:,14) +!OLEL/NO=+TPK%CF5*K150*<RO29>+TPK%CF7*K168*<RO214> + PJAC(:,17,1)=+TPK%CF5*TPK%K150(:)*TPK%RO29(:)+TPK%CF7*TPK%K168(:)*TPK%RO214(:) ! -!XO2/HCHO=0.0 +!OLEL/NO2=0.0 ! -!XO2/ALD=0.0 +!OLEL/O3=-K056*<OLEL>+0.054*K066*<ISOP> + PJAC(:,17,3)=-TPK%K056(:)*PCONC(:,17)+0.054*TPK%K066(:)*PCONC(:,35) ! -!XO2/KET=0.0 +!OLEL/HONO=0.0 ! -!XO2/CARBO=+0.10162*K065*<OH>+0.10530*K074*<NO3> - PJAC(:,41,25)=+0.10162*TPK%K065(:)*PCONC(:,14)+0.10530*TPK%K074(:)*PCONC(:,5) +!OLEL/HNO3=0.0 ! -!XO2/ONIT=0.0 +!OLEL/HNO4=0.0 ! -!XO2/PAN=+K070*<OH>+K078*<NO3> - PJAC(:,41,27)=+TPK%K070(:)*PCONC(:,14)+TPK%K078(:)*PCONC(:,5) +!OLEL/N2O5=0.0 ! -!XO2/OP1=0.0 +!OLEL/NO3=-K055*<OLEL> + PJAC(:,17,8)=-TPK%K055(:)*PCONC(:,17) ! -!XO2/OP2=+0.09333*K069*<OH> - PJAC(:,41,29)=+0.09333*TPK%K069(:)*PCONC(:,14) +!OLEL/NH3=0.0 ! -!XO2/ORA1=0.0 +!OLEL/HO2=+0.5*K166*<RO239>+0.5*K289*<RO250> + PJAC(:,17,10)=+0.5*TPK%K166(:)*TPK%RO239(:)+0.5*TPK%K289(:)*TPK%RO250(:) ! -!XO2/ORA2=0.0 +!OLEL/CO=0.0 ! -!XO2/MO2=+0.13370*K105*<ALKAP>+0.02212*K109*<CARBOP>-K127*<XO2> - PJAC(:,41,32)=+0.13370*TPK%K105(:)*PCONC(:,33)+0.02212*TPK%K109(:)*PCONC(:,39)& -&-TPK%K127(:)*PCONC(:,41) +!OLEL/H2O2=0.0 ! -!XO2/ALKAP=+0.13007*K091*<NO>+0.13370*K105*<MO2>+0.11306*K111*<CARBOP>+0.16271* -!K120*<NO3> - PJAC(:,41,33)=+0.13007*TPK%K091(:)*PCONC(:,3)+0.13370*TPK%K105(:)*PCONC(:,32)+& -&0.11306*TPK%K111(:)*PCONC(:,39)+0.16271*TPK%K120(:)*PCONC(:,5) +!OLEL/SO2=0.0 ! -!XO2/ALKEP=0.0 +!OLEL/H2SO4=0.0 ! -!XO2/BIOP=0.0 +!OLEL/OH=-K054*<OLEL> + PJAC(:,17,15)=-TPK%K054(:)*PCONC(:,17) ! -!XO2/PHO=0.0 +!OLEL/ETHE=0.0 ! -!XO2/ADD=0.0 +!OLEL/OLEL=-K054*<OH>-K055*<NO3>-K056*<O3>-K057*<O> + PJAC(:,17,17)=-TPK%K054(:)*PCONC(:,15)-TPK%K055(:)*PCONC(:,8)-TPK%K056(:)*PCON& +&C(:,3)-TPK%K057(:)*TPK%O(:) ! -!XO2/AROP=0.0 +!OLEL/OLEH=0.0 ! -!XO2/CARBOP=+0.02563*K095*<NO>+0.02212*K109*<MO2>+0.11306*K111*<ALKAP>+0.01593* -!K115*<CARBOP>+0.01593*K115*<CARBOP>+0.01021*K124*<NO3>-K128*<XO2> - PJAC(:,41,39)=+0.02563*TPK%K095(:)*PCONC(:,3)+0.02212*TPK%K109(:)*PCONC(:,32)+& -&0.11306*TPK%K111(:)*PCONC(:,33)+0.01593*TPK%K115(:)*PCONC(:,39)+0.01593*TPK%K1& -&15(:)*PCONC(:,39)+0.01021*TPK%K124(:)*PCONC(:,5)-TPK%K128(:)*PCONC(:,41) +!OLEL/ALKL=0.0 ! -!XO2/OLN=0.0 +!OLEL/ALKM=0.0 ! -!XO2/XO2=-K126*<HO2>-K127*<MO2>-K128*<CARBOP>-K129*<XO2>-K129*<XO2>-K129*<XO2>- -!K129*<XO2>-K130*<NO>-K131*<NO3> - PJAC(:,41,41)=-TPK%K126(:)*PCONC(:,15)-TPK%K127(:)*PCONC(:,32)-TPK%K128(:)*PCO& -&NC(:,39)-TPK%K129(:)*PCONC(:,41)-TPK%K129(:)*PCONC(:,41)-TPK%K129(:)*PCONC(:,4& -&1)-TPK%K129(:)*PCONC(:,41)-TPK%K130(:)*PCONC(:,3)-TPK%K131(:)*PCONC(:,5) +!OLEL/ALKH=0.0 ! -RETURN -END SUBROUTINE SUBJ8 +!OLEL/AROH=0.0 ! -END SUBROUTINE CH_JAC_GAZ +!OLEL/AROL=0.0 ! +!OLEL/AROO=0.0 ! -!======================================================================== +!OLEL/ARAL=0.0 ! -!! ######################## - MODULE MODI_CH_SET_RATES -!! ######################## -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -INTERFACE -SUBROUTINE CH_SET_RATES(PTIME,PCONC,TPM,KMI,KOUT,KVERB,KVECNPT,KEQ,KRRL,PPH) -USE MODD_CH_M9_n, ONLY: METEOTRANSTYPE -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -TYPE(METEOTRANSTYPE), DIMENSION(KVECNPT), INTENT(IN):: TPM -INTEGER, INTENT(IN) :: KMI -INTEGER, INTENT(IN) :: KOUT,KVERB -INTEGER, INTENT(INOUT) :: KRRL -REAL, INTENT(INOUT), DIMENSION(:,:), OPTIONAL :: PPH -END SUBROUTINE CH_SET_RATES -END INTERFACE -END MODULE MODI_CH_SET_RATES +!OLEL/ARAC=0.0 ! -!======================================================================== +!OLEL/PAH=0.0 ! -!! ############################################################################ - SUBROUTINE CH_SET_RATES(PTIME,PCONC,TPM,KMI,KOUT,KVERB,KVECNPT,KEQ,KRRL,PPH) -!! ############################################################################ -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -!!*** *MODD_CH_SET_RATES* -!! -!! PURPOSE -!! ------- -! set or calculate reaction rates -!! -!!** METHOD -!! ------ -!! simple -!! -!! REFERENCE -!! --------- -!! none -!! -!! AUTHOR -!! ------ -!! Karsten Suhre (LA) -!! -!! MODIFICATIONS -!! ------------- -!! Original 26/07/96 -!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) -!! Modified 01/06/07: Add pH calculation (M. Leriche & JP Pinty) -!! Modified 01/06/08: Add reaction constant in cloud/rain (M. Leriche) -!! Modified 14/11/08: Put LWC and LWR to zero where <XRTMIN_AQ -!! -!!---------------------------------------------------------------------- -!! -!! EXTERNAL -!! -------- -!! -USE MODI_CH_ALLOCATE_TACCS -USE MODI_CH_DEALLOCATE_TACCS -USE MODI_CH_SET_PH -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -!! -USE MODD_CH_M9_SCHEME -USE MODD_CH_M9_n, ONLY : METEOTRANSTYPE -USE MODD_CH_MNHC_n, ONLY : XRTMIN_AQ, XCH_PHINIT -! USER DEFINED FUNCTIONS -USE MODI_KT -USE MODI_TROE -USE MODI_HENRY -USE MODI_HEFFA -USE MODI_TROE_EQUIL -USE MODI_HEFFB -!! -!! EXPLICIT ARGUMENTS -!! ------------------ -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -TYPE(METEOTRANSTYPE), DIMENSION(KVECNPT), INTENT(IN):: TPM -INTEGER, INTENT(IN) :: KMI -INTEGER, INTENT(IN) :: KOUT,KVERB -INTEGER, INTENT(INOUT) :: KRRL -REAL, INTENT(INOUT), DIMENSION(:,:), OPTIONAL :: PPH -!! -!!---------------------------------------------------------------------- -! /BEGIN_SET_RATES/ +!OLEL/HCHO=0.0 ! -! transfer of meteo-variables into variables used by the -! chemical core system (and some unit conversion): +!OLEL/ALD2=0.0 ! -! molecular weight of air: m_mol^air = 28.8 g/mol -! molecular weight of H2O: m_mol^H2O = 18.0 g/mol -! ==> m_mol^air / m_mol^H2O = 1.6 -! density conversion factor: 1 g/cm3 = 1E+3 kg/m3 -! n_molec (moelc./cm3): M = 1E-3*RHO(kg/m3) * Navo / m_mol -! n_water: H2O = M * 1.6 * Rv -! pressure = RHO * T * R * 1E-5 (in atm) -! assuming 20.95 vol% O2 +!OLEL/KETL=0.0 ! -TYPE(CCSTYPE), POINTER :: TPK +!OLEL/KETH=0.0 ! -!---------------------------------------------------------------------- +!OLEL/MEOH=0.0 ! -IF (.NOT. ASSOCIATED(TACCS(KMI)%NVERB)) THEN - CALL CH_ALLOCATE_TACCS(KMI,KVECNPT) -END IF +!OLEL/ETOH=0.0 ! -IF (SIZE(TACCS(KMI)%NVERB) .NE. KVECNPT) THEN - CALL CH_DEALLOCATE_TACCS(KMI) - CALL CH_ALLOCATE_TACCS(KMI,KVECNPT) -END IF +!OLEL/ALCH=0.0 ! -TPK=>TACCS(KMI) +!OLEL/ISOP=+0.054*K066*<O3>+0.925*K067*<O> + PJAC(:,17,35)=+0.054*TPK%K066(:)*PCONC(:,3)+0.925*TPK%K067(:)*TPK%O(:) ! -TPK%MODELLEVEL = TPM%XMETEOVAR(1) -TPK%M = 1E-3*TPM%XMETEOVAR(2) * 6.0221367E+23 / 28.9644 -TPK%T = TPM%XMETEOVAR(3) -TPK%H2O = TPK%M*1.6077*TPM%XMETEOVAR(4) -TPK%CLOUDWATER = TPM%XMETEOVAR(5) -TPK%LAT = TPM%XMETEOVAR(6) -TPK%LON = TPM%XMETEOVAR(7) -TPK%YEAR = INT(TPM%XMETEOVAR(8)) -TPK%MONTH = INT(TPM%XMETEOVAR(9)) -TPK%DAY = INT(TPM%XMETEOVAR(10)) -TPK%RAINWATER = TPM%XMETEOVAR(11) -TPK%RHODREF = TPM%XMETEOVAR(2) -! derived variables -TPK%PRESSURE = TPM%XMETEOVAR(2) * TPK%T * 288.290947 * 1E-5 -TPK%O2 = 0.2095 * TPK%M -TPK%N2 = TPK%M - TPK%O2 -TPK%H2 = 1.23e13 -! fixed concentration of CO2 -TPK%CO2 = 330. * 1.E-6 * TPK%M -! for chemistry in aqueous phase, kinetic mass transfer -! cloud lwc (vol/vol) = cloud m.r.(kg/kg) * rho_air(kg/m3) / rho_eau(kg/m3) -TPK%LWC = TPM%XMETEOVAR(5)*TPM%XMETEOVAR(2) / 1.E3 -WHERE ( TPK%LWC < XRTMIN_AQ ) !to get reaction rate for mass transfer = 0 - TPK%LWC = 0. -ENDWHERE -TPK%RADC = TPM%XMETEOVAR(12) -! conversion factor for reaction constant in cloud -! give minimum value to avoir division by zero -TPK%MOL2MOLECCLOUD = 6.023e+23*1.e-3*XRTMIN_AQ -WHERE (TPK%LWC >= XRTMIN_AQ) - TPK%MOL2MOLECCLOUD = 6.023e+23*1.e-3*TPK%LWC -END WHERE +!OLEL/BIOL=0.0 ! -TPK%LWR = TPM%XMETEOVAR(11)*TPM%XMETEOVAR(2) / 1.E3 -WHERE ( TPK%LWR < XRTMIN_AQ ) !to get reaction rate for mass transfer = 0 - TPK%LWR = 0. -ENDWHERE -TPK%RADR = TPM%XMETEOVAR(13) -! conversion factor for reaction constant in rain -! give minimum value to avoir division by zero -TPK%MOL2MOLECRAIN = 6.023e+23*1.e-3*XRTMIN_AQ -WHERE (TPK%LWR >= XRTMIN_AQ) - TPK%MOL2MOLECRAIN = 6.023e+23*1.e-3*TPK%LWR -END WHERE -!pH calculation if required -IF (PRESENT(PPH)) THEN - TPK%PHC(:)=PPH(:,1) - CALL CH_SET_PH(KOUT,KMI,KVECNPT,PCONC,TPK%PHC(:),KVERB,2) ! pH cloud water -! TPK%PHC(:) = 0.01*TPK%PHC(:) + 0.99*PPH(:,1) ! apply a strong filter - PPH(:,1) = TPK%PHC(:) - IF (KRRL>=2) THEN - TPK%PHR(:)=PPH(:,2) - CALL CH_SET_PH(KOUT,KMI,KVECNPT,PCONC,TPK%PHR(:),KVERB,3) ! pH rain water -! TPK%PHR(:) = 0.01*TPK%PHR(:) + 0.99*PPH(:,2) ! apply a strong filter - PPH(:,2) = TPK%PHR(:) - ENDIF -ELSE - IF (.NOT.TPK%LCH_PH) TPK%PHC = XCH_PHINIT - IF (KRRL>=2) THEN - IF (.NOT.TPK%LCH_PH) TPK%PHR = XCH_PHINIT - ENDIF -ENDIF +!OLEL/BIOH=0.0 ! -TPK%RCH = 0.08206 ! R in atm M-1 K-1 -TPK%W_O2 = 1.3E-3*exp(-1500.*(1./TPK%T-1./298.15))*TPK%RCH*TPK%T*TPK%O2*1.e3/6.023e+23 +!OLEL/MTBE=0.0 ! -! the following prints will be erased -IF (KVERB >= 15) THEN - WRITE(KOUT,*) "CH_SET_RATES: the following variables have been updated" - WRITE(KOUT,*) "MODELLEVEL: ", TPK%MODELLEVEL(1) - WRITE(KOUT,*) "M: ", TPK%M(1) , "molec/cm3" - WRITE(KOUT,*) "T: ", TPK%T(1) , "K" - WRITE(KOUT,*) "H2O ", TPK%H2O(1) , "molec/cm3" - WRITE(KOUT,*) "CLOUDWATER: ", TPK%CLOUDWATER(1) , "kg/kg" - WRITE(KOUT,*) "LATITUDE: ", TPK%LAT(1) , "degree" - WRITE(KOUT,*) "LONGITUDE: ", TPK%LON(1) , "degree" - WRITE(KOUT,*) "YEAR: ", TPK%YEAR(1) - WRITE(KOUT,*) "MONTH: ", TPK%MONTH(1) - WRITE(KOUT,*) "DAY: ", TPK%DAY(1) - WRITE(KOUT,*) "RAINWATER: ", TPK%RAINWATER(1) , "kg/kg" - WRITE(KOUT,*) "RHODREF: ", TPK%RHODREF(1) , "kg/m3" - WRITE(KOUT,*) "PRESSURE: ", TPK%PRESSURE(1) , "atm" - WRITE(KOUT,*) "O2: ", TPK%O2(1) , "molec/cm3" - WRITE(KOUT,*) "N2: ", TPK%N2(1) , "molec/cm3" - WRITE(KOUT,*) "H2: ", TPK%H2(1) , "molec/cm3" - WRITE(KOUT,*) "CO2: ", TPK%CO2(1) , "molec/cm3" - WRITE(KOUT,*) "LWC: ", TPK%LWC(1) , "m3/m3" - WRITE(KOUT,*) "RADC: ", TPK%RADC(1) , "m" - WRITE(KOUT,*) "PHC: ", TPK%PHC(1) - WRITE(KOUT,*) "LWR: ", TPK%LWR(1) , "m3/m3" - WRITE(KOUT,*) "RADR: ", TPK%RADR(1) , "m" - WRITE(KOUT,*) "PHR: ", TPK%PHR(1) - WRITE(KOUT,*) "W_O2: ", TPK%W_O2(1) , "M" -END IF +!OLEL/MVK=0.0 ! -! /END_SET_RATES/ -CALL SUBSRG0 -CALL SUBSRG1 -CALL SUBSRG2 -CALL SUBSRG3 -CALL SUBSRG4 -CALL SUBSRG5 -CALL SUBSRG6 -CALL SUBSRG7 -CALL SUBSRG8 -CALL SUBSRG9 -CALL SUBSRG10 -CALL SUBSRG11 -CALL SUBSRG12 -CALL SUBSRG13 -IF (TPK%LUSECHAQ) THEN - CALL SUBSRW0 - CALL SUBSRW1 - CALL SUBSRW2 - CALL SUBSRW3 - CALL SUBSRW4 - CALL SUBSRW5 - CALL SUBSRW6 - CALL SUBSRW7 - CALL SUBSRW8 - CALL SUBSRW9 - CALL SUBSRW10 - CALL SUBSRW11 - CALL SUBSRW12 - CALL SUBSRW13 -END IF -TPK%NOUT = KOUT -TPK%NVERB(:) = KVERB -RETURN - -CONTAINS - -SUBROUTINE SUBSRG0 +!OLEL/MCR=0.0 ! -!Indices 1 a 10 +!OLEL/MGLY=0.0 ! +!OLEL/GLY=0.0 ! -RETURN -END SUBROUTINE SUBSRG0 +!OLEL/ORA1=0.0 ! -SUBROUTINE SUBSRG1 +!OLEL/ORA2=0.0 ! -!Indices 11 a 20 +!OLEL/ACID=0.0 ! - TPK%K018=TPK%M*6.00E-34*(TPK%T/300)**(-2.3) - TPK%K019=8.00E-12*exp(-(2060.0/TPK%T)) - TPK%K020=1.80E-11*exp(-(-110.0/TPK%T)) +!OLEL/UR28=0.0 ! -RETURN -END SUBROUTINE SUBSRG1 +!OLEL/UR21=0.0 ! -SUBROUTINE SUBSRG2 +!OLEL/URG2=0.0 ! -!Indices 21 a 30 +!OLEL/UR26=0.0 ! - TPK%K021=3.20E-11*exp(-(-70.0/TPK%T)) - TPK%K022=2.20E-10 - TPK%K023=1.60E-12*exp(-(940.0/TPK%T)) - TPK%K024=1.10E-14*exp(-(500.0/TPK%T)) - TPK%K025=4.80E-11*exp(-(-250.0/TPK%T)) - TPK%K026=2.90E-12*exp(-(160.0/TPK%T)) - TPK%K027=2.3E-13*EXP(600./TPK%T)+1.7E-33*TPK%M*EXP(1000./TPK%T) - TPK%K028=3.22E-34*EXP(2800./TPK%T)+2.38E-54*TPK%M*EXP(3200./TPK%T) - TPK%K029=TROE(1.,9.00E-32,1.5,3.00E-11,0.0,TPK%M,TPK%T,KVECNPT) - TPK%K030=6.50E-12*exp(-(-120.0/TPK%T)) +!OLEL/RPG2=0.0 ! -RETURN -END SUBROUTINE SUBSRG2 +!OLEL/RP18=0.0 ! -SUBROUTINE SUBSRG3 +!OLEL/RPG3=0.0 ! -!Indices 31 a 40 +!OLEL/URG4=0.0 ! - TPK%K031=TROE(1.,9.00E-32,2.0,2.20E-11,0.0,TPK%M,TPK%T,KVECNPT) - TPK%K032=TROE(1.,7.00E-31,2.6,1.50E-11,0.5,TPK%M,TPK%T,KVECNPT) - TPK%K033=TROE(1.,2.60E-30,3.2,2.40E-11,1.3,TPK%M,TPK%T,KVECNPT) - TPK%K034=2.20E-11 - TPK%K035=3.70E-12*exp(-(-250.0/TPK%T)) - TPK%K036=TROE(1.,1.80E-31,3.2,4.70E-12,1.4,TPK%M,TPK%T,KVECNPT) - TPK%K037=TROE_EQUIL(1.80E-31,3.2,4.70E-12,1.4,4.76E+26,10900.,TPK%M,TPK%T,KVEC& -&NPT) - TPK%K038=3.50E-12 - TPK%K039=1.80E-11*exp(-(390.0/TPK%T)) - TPK%K040=(7.2E-15*EXP(785/TPK%T))+(1.9E-33*EXP(725/TPK%T)*TPK%M)/(1+(1.9E-33*E& -&XP(725/TPK%T)*TPK%M)/(4.1E-16*EXP(1440/TPK%T))) +!OLEL/UR8=0.0 ! -RETURN -END SUBROUTINE SUBSRG3 +!OLEL/UR17=0.0 ! -SUBROUTINE SUBSRG4 +!OLEL/UR7=0.0 ! -!Indices 41 a 50 +!OLEL/RPR3=0.0 ! - TPK%K041=1.30E-12*exp(-(-380.0/TPK%T)) - TPK%K042=2.00E-12*exp(-(1400.0/TPK%T)) - TPK%K043=1.20E-13*exp(-(2450.0/TPK%T)) - TPK%K044=3.30E-39*exp(-(-530.0/TPK%T)) - TPK%K045=1.50E-11*exp(-(-170.0/TPK%T)) - TPK%K046=4.50E-14*exp(-(1260.0/TPK%T)) - TPK%K047=TROE(1.,2.20E-30,3.9,1.50E-12,0.7,TPK%M,TPK%T,KVECNPT) - TPK%K048=TROE_EQUIL(2.20E-30,3.9,1.50E-12,0.7,3.70E+26,11000.0,TPK%M,TPK%T,KVE& -&CNPT) - TPK%K049=8.50E-13*exp(-(2450.0/TPK%T)) - TPK%K050=3.30E-12*exp(-(900.0/TPK%T)) +!OLEL/URG6=0.0 ! -RETURN -END SUBROUTINE SUBSRG4 +!OLEL/UR22=0.0 ! -SUBROUTINE SUBSRG5 +!OLEL/URG7=0.0 ! -!Indices 51 a 60 +!OLEL/RPR4=0.0 ! - TPK%K051=5.50E-12*exp(-(2000.0/TPK%T)) - TPK%K052=TROE(1.,3.00E-31,3.3,1.50E-12,0.0,TPK%M,TPK%T,KVECNPT) - TPK%K053=1.5E-13*(1.+2.439E-20*TPK%M) - TPK%K054=6.00E-11 - TPK%K055=0.00E-01*exp(-(-13.0/TPK%T)) - TPK%K056=TPK%T*TPK%T*7.44E-18*exp(-(1361./TPK%T)) - TPK%K057=1.51E-17*TPK%T*TPK%T*exp(-(492./TPK%T)) - TPK%K058=3.76E-12*exp(-(260.0/TPK%T))+1.70E-12*exp(-(155.0/TPK%T))+1.21E-12*ex& -&p(-(125.0/TPK%T)) - TPK%K059=1.78E-12*exp(-(-438.0/TPK%T))+6.07E-13*exp(-(-500.0/TPK%T))+0.00E-01*& -&exp(-(-448.0/TPK%T)) - TPK%K060=2.54E-11*exp(-(-410.0/TPK%T))+0.00E-01*exp(-(-444.0/TPK%T))+0.00E-01 +!OLEL/RPR7=0.0 ! -RETURN -END SUBROUTINE SUBSRG5 +!OLEL/RPG7=0.0 ! -SUBROUTINE SUBSRG6 +!OLEL/URG8=0.0 ! -!Indices 61 a 70 +!OLEL/UR19=0.0 ! - TPK%K061=3.31E-12*exp(-(-355.0/TPK%T))+3.45E-13 - TPK%K062=1.00E-11 - TPK%K063=5.55E-12*exp(-(-331.0/TPK%T)) - TPK%K064=TPK%T*TPK%T*5.68E-18*exp(-(-92.0/TPK%T)) - TPK%K065=1.32E-11+1.88E-12*exp(-(-175.0/TPK%T)) - TPK%K066=4.50E-13 - TPK%K067=6.00E-13 - TPK%K068=2.93E-12*exp(-(-190.0/TPK%T)) - TPK%K069=3.36E-12*exp(-(-190.0/TPK%T)) - TPK%K070=3.80E-14+1.59E-14*exp(-(-500.0/TPK%T)) +!OLEL/URG9=0.0 ! -RETURN -END SUBROUTINE SUBSRG6 +!OLEL/AP7=0.0 ! -SUBROUTINE SUBSRG7 +!OLEL/URG10=0.0 ! -!Indices 71 a 80 +!OLEL/RPR1=0.0 ! - TPK%K071=5.31E-12*exp(-(260.0/TPK%T)) - TPK%K072=3.40E-13*exp(-(1900.0/TPK%T)) - TPK%K073=1.40E-12*exp(-(1900.0/TPK%T)) - TPK%K074=1.62E-12*exp(-(1900.0/TPK%T))+0.00E-01*exp(-(150.0/TPK%T))+1.94E-14*e& -&xp(-(1000.0/TPK%T)) - TPK%K075=4.92E-16 - TPK%K076=4.35E-18*TPK%T*TPK%T*exp(-(2282.0/TPK%T))+1.91E-14*exp(-(450.0/TPK%T)& -&)+1.08E-15*exp(-(-450.0/TPK%T))+0.00E-01 - TPK%K077=4.00E-12*exp(-(446.0/TPK%T))+0.00E-01*exp(-(-490.0/TPK%T))+0.00E-01 - TPK%K078=3.76E-16*exp(-(500.0/TPK%T)) - TPK%K079=8.17E-15*exp(-(2580.0/TPK%T))+4.32E-16*exp(-(1800.0/TPK%T))+2.87E-17*& -&exp(-(845.0/TPK%T))+0.00E-01*exp(-(2283.0/TPK%T)) - TPK%K080=7.86E-15*exp(-(1913.0/TPK%T))+0.00E-01*exp(-(732.0/TPK%T))+0.00E-01 +!OLEL/RPR5=0.0 ! -RETURN -END SUBROUTINE SUBSRG7 +!OLEL/RPR8=0.0 ! -SUBROUTINE SUBSRG8 +!OLEL/RP10=0.0 ! -!Indices 81 a 90 +!OLEL/RP11=0.0 ! - TPK%K081=0.00E-01*exp(-(2112.0/TPK%T))+1.38E-19 - TPK%K082=7.20E-17*exp(-(1700.0/TPK%T)) - TPK%K083=2.00E-11 - TPK%K084=1.00E-11 - TPK%K085=3.60E-11 - TPK%K086=1.66E-17*exp(-(-1044.0/TPK%T)) - TPK%K087=2.80E-11 - TPK%K088=TROE(5.86E-01,9.70E-29,5.6,9.30E-12,1.5,TPK%M,TPK%T,KVECNPT) - TPK%K089=TROE_EQUIL(9.70E-29,5.6,9.30E-12,1.5,1.16E+28,13954.,TPK%M,TPK%T,KVEC& -&NPT) - TPK%K090=4.20E-12*exp(-(-180.0/TPK%T)) +!OLEL/RP16=0.0 ! -RETURN -END SUBROUTINE SUBSRG8 +!OLEL/RPRL=0.0 ! -SUBROUTINE SUBSRG9 +!OLEL/APAN=0.0 ! -!Indices 91 a 100 +!OLEL/PAN1=0.0 ! - TPK%K091=4.36E-12 - TPK%K092=6.93E-12 - TPK%K093=4.00E-12 - TPK%K094=4.00E-12 - TPK%K095=1.22E-11 - TPK%K096=4.00E-12 - TPK%K097=3.80E-13*exp(-(-800.0/TPK%T)) - TPK%K098=6.16E-14*exp(-(-700.0/TPK%T))+1.52E-13*exp(-(-1300.0/TPK%T)) - TPK%K099=1.81E-13*exp(-(-1300.0/TPK%T)) - TPK%K0100=1.28E-13*exp(-(-1300.0/TPK%T))+0.00E-01 +!OLEL/PAN2=0.0 ! -RETURN -END SUBROUTINE SUBSRG9 +!OLEL/PAN3=0.0 ! -SUBROUTINE SUBSRG10 +!OLEL/PAN4=0.0 ! -!Indices 101 a 110 +!OLEL/PAN6=0.0 ! - TPK%K0101=3.75E-13*exp(-(-980.0/TPK%T)) - TPK%K0102=5.94E-13*exp(-(-550.0/TPK%T))+1.99E-16*exp(-(-2640.0/TPK%T))+5.56E-1& -&4*exp(-(-1300.0/TPK%T)) - TPK%K103=1.66E-13*exp(-(-1300.0/TPK%T)) - TPK%K104=9.10E-14*exp(-(-416.0/TPK%T)) - TPK%K105=1.03E-14*exp(-(-158.0/TPK%T))+6.24E-14*exp(-(-431.0/TPK%T))+1.53E-14*& -&exp(-(-467.0/TPK%T))+4.34E-15*exp(-(-633.0/TPK%T)) - TPK%K106=1.57E-13*exp(-(-708.0/TPK%T)) - TPK%K107=1.36E-13*exp(-(-708.0/TPK%T)) - TPK%K108=3.56E-14*exp(-(-708.0/TPK%T)) - TPK%K109=1.77E-11*exp(-(440.0/TPK%T))+1.48E-16*exp(-(-2510.0/TPK%T))+3.10E-13*& -&exp(-(-508.0/TPK%T)) - TPK%K110=1.12E-13*exp(-(-708.0/TPK%T)) +!OLEL/PAN7=0.0 ! -RETURN -END SUBROUTINE SUBSRG10 +!OLEL/PAN8=0.0 ! -SUBROUTINE SUBSRG11 +!OLEL/PN10=0.0 ! -!Indices 111 a 120 +!OLEL/RO2T=0.0 ! - TPK%K111=4.44E-14*exp(-(-211.0/TPK%T))+2.23E-13*exp(-(-460.0/TPK%T))+4.10E-14*& -&exp(-(-522.0/TPK%T))+1.17E-14*exp(-(-683.0/TPK%T)) - TPK%K112=4.36E-13*exp(-(-765.0/TPK%T)) - TPK%K113=7.60E-13*exp(-(-765.0/TPK%T)) - TPK%K114=3.63E-13*exp(-(-765.0/TPK%T)) - TPK%K115=7.73E-13*exp(-(-530.0/TPK%T))+1.70E-13*exp(-(-565.0/TPK%T)) - TPK%K116=4.85E-13*exp(-(-765.0/TPK%T)) - TPK%K117=4.19E-15*exp(-(-1000.0/TPK%T)) - TPK%K118=2.48E-14*exp(-(-1000.0/TPK%T)) - TPK%K119=1.20E-12 - TPK%K120=1.20E-12 +!OLEL/RO21=0.0 ! -RETURN -END SUBROUTINE SUBSRG11 +!OLEL/RO25=0.0 ! -SUBROUTINE SUBSRG12 +!OLEL/WC_O3=0.0 ! -!Indices 121 a 130 +!OLEL/WC_H2O2=0.0 ! - TPK%K121=1.20E-12 - TPK%K122=1.20E-12 - TPK%K123=1.20E-12 - TPK%K124=3.48E-12 - TPK%K125=1.20E-12 - TPK%K126=1.66E-13*exp(-(-1300.0/TPK%T)) - TPK%K127=5.99E-15*exp(-(-1510.0/TPK%T)) - TPK%K128=1.69E-14*exp(-(-1560.0/TPK%T)) - TPK%K129=7.13E-17*exp(-(-2950.0/TPK%T)) - TPK%K130=4.00E-12 +!OLEL/WC_NO=0.0 ! -RETURN -END SUBROUTINE SUBSRG12 +!OLEL/WC_NO2=0.0 ! -SUBROUTINE SUBSRG13 +!OLEL/WC_NO3=0.0 ! -!Indices 131 a 132 +!OLEL/WC_N2O5=0.0 ! - TPK%K131=1.20E-12 - TPK%K132=1.00E-40 +!OLEL/WC_HONO=0.0 ! -RETURN -END SUBROUTINE SUBSRG13 +!OLEL/WC_HNO3=0.0 ! -SUBROUTINE SUBSRW0 +!OLEL/WC_HNO4=0.0 ! -!Indices 133 a 142 +!OLEL/WC_NH3=0.0 ! - TPK%KTC1=KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC2=KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC3=KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC4=KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC5=KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC6=KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC7=KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC8=KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC9=KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC10=KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC +!OLEL/WC_OH=0.0 ! -RETURN -END SUBROUTINE SUBSRW0 +!OLEL/WC_HO2=0.0 ! -SUBROUTINE SUBSRW1 +!OLEL/WC_CO2=0.0 ! -!Indices 143 a 152 +!OLEL/WC_SO2=0.0 ! - TPK%KTC11=KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC12=KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC13=KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC14=KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC15=KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC16=KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC17=KT(0.012,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC18=KT(0.03,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC19=KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC20=KT(0.007,48.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC +!OLEL/WC_H2SO4=0.0 ! -RETURN -END SUBROUTINE SUBSRW1 +!OLEL/WC_RO21=0.0 ! -SUBROUTINE SUBSRW2 +!OLEL/WC_RO25=0.0 ! -!Indices 153 a 162 +!OLEL/WC_MEOH=0.0 ! - TPK%KTC21=KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.1e-2,-2830.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTC22=KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(7.73e4,-7310.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTC23=KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.92e-3,-1790.,TPK%T,KV& -&ECNPT)*TPK%RCH*TPK%T) - TPK%KTC24=KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.4e-2,0.,TPK%T,KVECNPT& -&)*TPK%RCH*TPK%T) - TPK%KTC25=KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.8e-2,0.,TPK%T,KVECNPT)*& -&TPK%RCH*TPK%T) - TPK%KTC26=KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(2.1,-3400.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTC27=KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(5.0e1,-4880.,1.6e-3,1760.& -&,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC28=KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(2.1e5,-8700.,2.2e1,0.,0.& -&,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC29=KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(1.2e4,-6900.,1.26e-6,0.,0& -&.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC30=KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)/(HEFFB(6.02e1,-4160.,1.7e-5,4350& -&.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) +!OLEL/WC_ETOH=0.0 ! -RETURN -END SUBROUTINE SUBSRW2 +!OLEL/WC_ALCH=0.0 ! -SUBROUTINE SUBSRW3 +!OLEL/WC_HCHO=0.0 ! -!Indices 163 a 172 +!OLEL/WC_ALD2=0.0 ! - TPK%KTC31=KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.9e1,0.,TPK%T,KVECNPT)*T& -&PK%RCH*TPK%T) - TPK%KTC32=KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(6.9e2,0.,1.6e-5,0.,0.,0.,T& -&PK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC33=KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(3.4e-2,-2710.,4.3e-7,92& -&0.,4.7e-11,1780.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC34=KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(1.36,-2930.,1.3e-2,-1965.& -&,6.4e-8,-1430.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC35=KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(2.1e5,-8700.,1.0e3,0.,1.0& -&e-2,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC36=KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.23e3,-7100.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTC37=KT(0.012,46.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(8.9e3,-6100.,1.8e-4,150.& -&,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC38=KT(0.03,60.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(4.1e3,-6200.,1.74e-5,0.,0& -&.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC39=KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(2.7e0,-2030.,TPK%T,KVECNP& -&T)*TPK%RCH*TPK%T) - TPK%KTC40=KT(0.007,48.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.e2,-5280.,TPK%T,KVECNP& -&T)*TPK%RCH*TPK%T) +!OLEL/WC_GLY=0.0 ! -RETURN -END SUBROUTINE SUBSRW3 +!OLEL/WC_MGLY=0.0 ! -SUBROUTINE SUBSRW4 +!OLEL/WC_KETL=0.0 ! -!Indices 173 a 182 +!OLEL/WC_ORA1=0.0 ! - TPK%KTR1=KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR2=KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR3=KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR4=KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR5=KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR6=KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR7=KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR8=KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR9=KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR10=KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR +!OLEL/WC_ORA2=0.0 ! -RETURN -END SUBROUTINE SUBSRW4 +!OLEL/WC_ACID=0.0 ! -SUBROUTINE SUBSRW5 +!OLEL/WC_RP16=0.0 ! -!Indices 183 a 192 +!OLEL/WC_UR21=0.0 ! - TPK%KTR11=KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR12=KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR13=KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR14=KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR15=KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR16=KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR17=KT(0.012,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR18=KT(0.03,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR19=KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR20=KT(0.007,48.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR +!OLEL/WC_UR28=0.0 ! -RETURN -END SUBROUTINE SUBSRW5 +!OLEL/WC_ACID2=0.0 ! -SUBROUTINE SUBSRW6 +!OLEL/WC_ASO3=0.0 ! -!Indices 193 a 202 +!OLEL/WC_ASO4=0.0 ! - TPK%KTR21=KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.1e-2,-2830.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTR22=KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(7.73e4,-7310.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTR23=KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.92e-3,-1790.,TPK%T,KV& -&ECNPT)*TPK%RCH*TPK%T) - TPK%KTR24=KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.4e-2,0.,TPK%T,KVECNPT& -&)*TPK%RCH*TPK%T) - TPK%KTR25=KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.8e-2,0.,TPK%T,KVECNPT)*& -&TPK%RCH*TPK%T) - TPK%KTR26=KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(2.1,-3400.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTR27=KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(5.0e1,-4880.,1.6e-3,1760.& -&,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR28=KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(2.1e5,-8700.,2.2e1,0.,0.& -&,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR29=KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(1.2e4,-6900.,1.26e-6,0.,0& -&.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR30=KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)/(HEFFB(6.02e1,-4160.,1.7e-5,4350& -&.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) +!OLEL/WC_ASO5=0.0 ! -RETURN -END SUBROUTINE SUBSRW6 +!OLEL/WC_AHSO5=0.0 ! -SUBROUTINE SUBSRW7 +!OLEL/WC_AHMS=0.0 ! -!Indices 203 a 212 +!OLEL/WR_O3=0.0 ! - TPK%KTR31=KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.9e1,0.,TPK%T,KVECNPT)*T& -&PK%RCH*TPK%T) - TPK%KTR32=KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(6.9e2,0.,1.6e-5,0.,0.,0.,T& -&PK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR33=KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(3.4e-2,-2710.,4.3e-7,92& -&0.,4.7e-11,1780.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR34=KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(1.36,-2930.,1.3e-2,-1965.& -&,6.4e-8,-1430.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR35=KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(2.1e5,-8700.,1.0e3,0.,1.0& -&e-2,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR36=KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.23e3,-7100.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTR37=KT(0.012,46.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(8.9e3,-6100.,1.8e-4,150.& -&,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR38=KT(0.03,60.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(4.1e3,-6200.,1.74e-5,0.,0& -&.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR39=KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(2.7e0,-2030.,TPK%T,KVECNP& -&T)*TPK%RCH*TPK%T) - TPK%KTR40=KT(0.007,48.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.e2,-5280.,TPK%T,KVECNP& -&T)*TPK%RCH*TPK%T) +!OLEL/WR_H2O2=0.0 ! -RETURN -END SUBROUTINE SUBSRW7 +!OLEL/WR_NO=0.0 ! -SUBROUTINE SUBSRW8 +!OLEL/WR_NO2=0.0 ! -!Indices 213 a 222 +!OLEL/WR_NO3=0.0 ! - TPK%KC2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD - TPK%KC3=((2.8E+10*10.**(-TPK%PHC)+3.5E+10*exp(-720.*(1./TPK%T-1./298.15))*1.6e& -&-5)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD - TPK%KC4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD - TPK%KC5=((8.3E+5*exp(-2700.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHC))**2.+9.6E+7& -&*exp(-910.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*1.6e-5)/(1.6e-5+10.**(-TPK%PH& -&C))**2.)/TPK%MOL2MOLECCLOUD - TPK%KC6=(1.5E+9*exp(-1500.*(1./TPK%T-1./298.15))*1.6e-5/(1.6e-5+10.**(-TPK%PHC& -&)))/TPK%MOL2MOLECCLOUD - TPK%KC7=(2.7E+9*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.3e-2& -&*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2& -&*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%M& -&OL2MOLECCLOUD - TPK%KC8=(1.0E+10*10.**(-TPK%PHC)/(1.6e-3*exp(-1760.*(1./TPK%T-1./298.15))+10.*& -&*(-TPK%PHC)))/TPK%MOL2MOLECCLOUD - TPK%KC9=((1.8E+9*10.**(-TPK%PHC)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-TPK%PHC)))/TPK%& -&MOL2MOLECCLOUD - TPK%KC10=2.6E-2*10.**(-TPK%PHC)/(1.26e-6+10.**(-TPK%PHC)) +!OLEL/WR_N2O5=0.0 ! -RETURN -END SUBROUTINE SUBSRW8 +!OLEL/WR_HONO=0.0 ! -SUBROUTINE SUBSRW9 +!OLEL/WR_HNO3=0.0 ! -!Indices 223 a 232 +!OLEL/WR_HNO4=0.0 ! - TPK%KC11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHC)) - TPK%KC12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHC))**2./& -&((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)& -&)+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.& -&)*(1.26e-6+10.**(-TPK%PHC))))/TPK%MOL2MOLECCLOUD - TPK%KC14=1.0E+10 - TPK%KC15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK%PHC)+(10.**(-T& -&PK%PHC))**2.))/TPK%MOL2MOLECCLOUD - TPK%KC16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1& -&./298.15))*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(& -&1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%& -&PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD - TPK%KC17=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD - TPK%KC18=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.3e-& -&2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-& -&2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%& -&MOL2MOLECCLOUD - TPK%KC19=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(4030.*(1./TPK%T-1.& -&/298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2MOLECCLOUD - TPK%KC20=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+3.4E+9*exp(& -&-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.15)))/(1.8e-4*ex& -&p(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD +!OLEL/WR_NH3=0.0 ! -RETURN -END SUBROUTINE SUBSRW9 +!OLEL/WR_OH=0.0 ! -SUBROUTINE SUBSRW10 +!OLEL/WR_HO2=0.0 ! -!Indices 233 a 242 +!OLEL/WR_CO2=0.0 ! - TPK%KC21=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-& -&1./298.15))*10.**(-TPK%PHC)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.15))*1.3e-2*exp& -&(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/((1.3e-2*& -&exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*& -&exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.)*(1.+2.5& -&e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECCLOUD - TPK%KC22=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*EXP(-6716*(1./T& -&PK%T-1./298.15))/10.**(-TPK%PHC) - TPK%KC23=3.0E+8/TPK%MOL2MOLECCLOUD - TPK%KC24=1.1E+9 - TPK%KC25=(1.7E+9*10.**(-TPK%PHC)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD - TPK%KC26=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD - TPK%KC27=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*10.**(& -&-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1& -&./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%& -&PHC))**2.))/TPK%MOL2MOLECCLOUD - TPK%KC28=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15)) - TPK%KC29=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-& -&1./298.15))*10.**(-TPK%PHC)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.15))*1.3e-2*exp& -&(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/(1.3e-2*e& -&xp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*e& -&xp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL& -&2MOLECCLOUD - TPK%KC30=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1& -&./298.15))*10.**(-TPK%PHC)*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.& -&15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.& -&15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD +!OLEL/WR_SO2=0.0 ! -RETURN -END SUBROUTINE SUBSRW10 +!OLEL/WR_H2SO4=0.0 ! -SUBROUTINE SUBSRW11 +!OLEL/WR_RO21=0.0 ! -!Indices 243 a 252 +!OLEL/WR_RO25=0.0 ! - TPK%KR2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN - TPK%KR3=((2.8E+10*10.**(-TPK%PHR)+3.5E+10*exp(-720.*(1./TPK%T-1./298.15))*1.6e& -&-5)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN - TPK%KR4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN - TPK%KR5=((8.3E+5*exp(-2700.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHR))**2.+9.6E+7& -&*exp(-910.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*1.6e-5)/(1.6e-5+10.**(-TPK%PH& -&R))**2.)/TPK%MOL2MOLECRAIN - TPK%KR6=(1.5E+9*exp(-1500.*(1./TPK%T-1./298.15))*1.6e-5/(1.6e-5+10.**(-TPK%PHR& +!OLEL/WR_MEOH=0.0 +! +!OLEL/WR_ETOH=0.0 +! +!OLEL/WR_ALCH=0.0 +! +!OLEL/WR_HCHO=0.0 +! +!OLEL/WR_ALD2=0.0 +! +!OLEL/WR_GLY=0.0 +! +!OLEL/WR_MGLY=0.0 +! +!OLEL/WR_KETL=0.0 +! +!OLEL/WR_ORA1=0.0 +! +!OLEL/WR_ORA2=0.0 +! +!OLEL/WR_ACID=0.0 +! +!OLEL/WR_RP16=0.0 +! +!OLEL/WR_UR21=0.0 +! +!OLEL/WR_UR28=0.0 +! +!OLEL/WR_ACID2=0.0 +! +!OLEL/WR_ASO3=0.0 +! +!OLEL/WR_ASO4=0.0 +! +!OLEL/WR_ASO5=0.0 +! +!OLEL/WR_AHSO5=0.0 +! +!OLEL/WR_AHMS=0.0 +! +!OLEH/NO=0.0 +! +!OLEH/NO2=0.0 +! +!OLEH/O3=-K076*<OLEH> + PJAC(:,18,3)=-TPK%K076(:)*PCONC(:,18) +! +!OLEH/HONO=0.0 +! +!OLEH/HNO3=0.0 +! +!OLEH/HNO4=0.0 +! +!OLEH/N2O5=0.0 +! +!OLEH/NO3=-K075*<OLEH> + PJAC(:,18,8)=-TPK%K075(:)*PCONC(:,18) +! +!OLEH/NH3=0.0 +! +!OLEH/HO2=0.0 +! +!OLEH/CO=0.0 +! +!OLEH/H2O2=0.0 +! +!OLEH/SO2=0.0 +! +!OLEH/H2SO4=0.0 +! +!OLEH/OH=-K074*<OLEH> + PJAC(:,18,15)=-TPK%K074(:)*PCONC(:,18) +! +!OLEH/ETHE=0.0 +! +!OLEH/OLEL=0.0 +! +!OLEH/OLEH=-K074*<OH>-K075*<NO3>-K076*<O3>-K077*<O> + PJAC(:,18,18)=-TPK%K074(:)*PCONC(:,15)-TPK%K075(:)*PCONC(:,8)-TPK%K076(:)*PCON& +&C(:,3)-TPK%K077(:)*TPK%O(:) +! +!OLEH/ALKL=0.0 +! +!OLEH/ALKM=0.0 +! +!OLEH/ALKH=0.0 +! +!OLEH/AROH=0.0 +! +!OLEH/AROL=0.0 +! +!OLEH/AROO=0.0 +! +!OLEH/ARAL=0.0 +! +!OLEH/ARAC=0.0 +! +!OLEH/PAH=0.0 +! +!OLEH/HCHO=0.0 +! +!OLEH/ALD2=0.0 +! +!OLEH/KETL=0.0 +! +!OLEH/KETH=0.0 +! +!OLEH/MEOH=0.0 +! +!OLEH/ETOH=0.0 +! +!OLEH/ALCH=0.0 +! +!OLEH/ISOP=0.0 +! +!OLEH/BIOL=0.0 +! +!OLEH/BIOH=0.0 +! +!OLEH/MTBE=0.0 +! +!OLEH/MVK=0.0 +! +!OLEH/MCR=0.0 +! +!OLEH/MGLY=0.0 +! +!OLEH/GLY=0.0 +! +!OLEH/ORA1=0.0 +! +!OLEH/ORA2=0.0 +! +!OLEH/ACID=0.0 +! +!OLEH/UR28=0.0 +! +!OLEH/UR21=0.0 +! +!OLEH/URG2=0.0 +! +!OLEH/UR26=0.0 +! +!OLEH/RPG2=0.0 +! +!OLEH/RP18=0.0 +! +!OLEH/RPG3=0.0 +! +!OLEH/URG4=0.0 +! +!OLEH/UR8=0.0 +! +!OLEH/UR17=0.0 +! +!OLEH/UR7=0.0 +! +!OLEH/RPR3=0.0 +! +!OLEH/URG6=0.0 +! +!OLEH/UR22=0.0 +! +!OLEH/URG7=0.0 +! +!OLEH/RPR4=0.0 +! +!OLEH/RPR7=0.0 +! +!OLEH/RPG7=0.0 +! +!OLEH/URG8=0.0 +! +!OLEH/UR19=0.0 +! +!OLEH/URG9=0.0 +! +!OLEH/AP7=0.0 +! +!OLEH/URG10=0.0 +! +!OLEH/RPR1=0.0 +! +!OLEH/RPR5=0.0 +! +!OLEH/RPR8=0.0 +! +!OLEH/RP10=0.0 +! +!OLEH/RP11=0.0 +! +!OLEH/RP16=0.0 +! +!OLEH/RPRL=0.0 +! +!OLEH/APAN=0.0 +! +!OLEH/PAN1=0.0 +! +!OLEH/PAN2=0.0 +! +!OLEH/PAN3=0.0 +! +!OLEH/PAN4=0.0 +! +!OLEH/PAN6=0.0 +! +!OLEH/PAN7=0.0 +! +!OLEH/PAN8=0.0 +! +!OLEH/PN10=0.0 +! +!OLEH/RO2T=0.0 +! +!OLEH/RO21=0.0 +! +!OLEH/RO25=0.0 +! +!OLEH/WC_O3=0.0 +! +!OLEH/WC_H2O2=0.0 +! +!OLEH/WC_NO=0.0 +! +!OLEH/WC_NO2=0.0 +! +!OLEH/WC_NO3=0.0 +! +!OLEH/WC_N2O5=0.0 +! +!OLEH/WC_HONO=0.0 +! +!OLEH/WC_HNO3=0.0 +! +!OLEH/WC_HNO4=0.0 +! +!OLEH/WC_NH3=0.0 +! +!OLEH/WC_OH=0.0 +! +!OLEH/WC_HO2=0.0 +! +!OLEH/WC_CO2=0.0 +! +!OLEH/WC_SO2=0.0 +! +!OLEH/WC_H2SO4=0.0 +! +!OLEH/WC_RO21=0.0 +! +!OLEH/WC_RO25=0.0 +! +!OLEH/WC_MEOH=0.0 +! +!OLEH/WC_ETOH=0.0 +! +!OLEH/WC_ALCH=0.0 +! +!OLEH/WC_HCHO=0.0 +! +!OLEH/WC_ALD2=0.0 +! +!OLEH/WC_GLY=0.0 +! +!OLEH/WC_MGLY=0.0 +! +!OLEH/WC_KETL=0.0 +! +!OLEH/WC_ORA1=0.0 +! +!OLEH/WC_ORA2=0.0 +! +!OLEH/WC_ACID=0.0 +! +!OLEH/WC_RP16=0.0 +! +!OLEH/WC_UR21=0.0 +! +!OLEH/WC_UR28=0.0 +! +!OLEH/WC_ACID2=0.0 +! +!OLEH/WC_ASO3=0.0 +! +!OLEH/WC_ASO4=0.0 +! +!OLEH/WC_ASO5=0.0 +! +!OLEH/WC_AHSO5=0.0 +! +!OLEH/WC_AHMS=0.0 +! +!OLEH/WR_O3=0.0 +! +!OLEH/WR_H2O2=0.0 +! +!OLEH/WR_NO=0.0 +! +!OLEH/WR_NO2=0.0 +! +!OLEH/WR_NO3=0.0 +! +!OLEH/WR_N2O5=0.0 +! +!OLEH/WR_HONO=0.0 +! +!OLEH/WR_HNO3=0.0 +! +!OLEH/WR_HNO4=0.0 +! +!OLEH/WR_NH3=0.0 +! +!OLEH/WR_OH=0.0 +! +!OLEH/WR_HO2=0.0 +! +!OLEH/WR_CO2=0.0 +! +!OLEH/WR_SO2=0.0 +! +!OLEH/WR_H2SO4=0.0 +! +!OLEH/WR_RO21=0.0 +! +!OLEH/WR_RO25=0.0 +! +!OLEH/WR_MEOH=0.0 +! +!OLEH/WR_ETOH=0.0 +! +!OLEH/WR_ALCH=0.0 +! +!OLEH/WR_HCHO=0.0 +! +!OLEH/WR_ALD2=0.0 +! +!OLEH/WR_GLY=0.0 +! +!OLEH/WR_MGLY=0.0 +! +!OLEH/WR_KETL=0.0 +! +!OLEH/WR_ORA1=0.0 +! +!OLEH/WR_ORA2=0.0 +! +!OLEH/WR_ACID=0.0 +! +!OLEH/WR_RP16=0.0 +! +!OLEH/WR_UR21=0.0 +! +!OLEH/WR_UR28=0.0 +! +!OLEH/WR_ACID2=0.0 +! +!OLEH/WR_ASO3=0.0 +! +!OLEH/WR_ASO4=0.0 +! +!OLEH/WR_ASO5=0.0 +! +!OLEH/WR_AHSO5=0.0 +! +!OLEH/WR_AHMS=0.0 +! +!ALKL/NO=+TPK%CF3*K122*<RO25>+TPK%CF12*K171*<RO215> + PJAC(:,19,1)=+TPK%CF3*TPK%K122(:)*PCONC(:,87)+TPK%CF12*TPK%K171(:)*TPK%RO215(:& +&) +! +!ALKL/NO2=0.0 +! +!ALKL/O3=+0.1*K056*<OLEL> + PJAC(:,19,3)=+0.1*TPK%K056(:)*PCONC(:,17) +! +!ALKL/HONO=0.0 +! +!ALKL/HNO3=0.0 +! +!ALKL/HNO4=0.0 +! +!ALKL/N2O5=0.0 +! +!ALKL/NO3=0.0 +! +!ALKL/NH3=0.0 +! +!ALKL/HO2=+TPK%CF16*K173*<RO215> + PJAC(:,19,10)=+TPK%CF16*TPK%K173(:)*TPK%RO215(:) +! +!ALKL/CO=0.0 +! +!ALKL/H2O2=0.0 +! +!ALKL/SO2=0.0 +! +!ALKL/H2SO4=0.0 +! +!ALKL/OH=-K058*<ALKL> + PJAC(:,19,15)=-TPK%K058(:)*PCONC(:,19) +! +!ALKL/ETHE=0.0 +! +!ALKL/OLEL=+0.1*K056*<O3>+0.5*K057*<O> + PJAC(:,19,17)=+0.1*TPK%K056(:)*PCONC(:,3)+0.5*TPK%K057(:)*TPK%O(:) +! +!ALKL/OLEH=0.0 +! +!ALKL/ALKL=-K058*<OH> + PJAC(:,19,19)=-TPK%K058(:)*PCONC(:,15) +! +!ALKL/ALKM=0.0 +! +!ALKL/ALKH=0.0 +! +!ALKL/AROH=0.0 +! +!ALKL/AROL=0.0 +! +!ALKL/AROO=0.0 +! +!ALKL/ARAL=0.0 +! +!ALKL/ARAC=0.0 +! +!ALKL/PAH=0.0 +! +!ALKL/HCHO=0.0 +! +!ALKL/ALD2=0.0 +! +!ALKL/KETL=0.0 +! +!ALKL/KETH=0.0 +! +!ALKL/MEOH=0.0 +! +!ALKL/ETOH=0.0 +! +!ALKL/ALCH=0.0 +! +!ALKL/ISOP=0.0 +! +!ALKL/BIOL=0.0 +! +!ALKL/BIOH=0.0 +! +!ALKL/MTBE=0.0 +! +!ALKL/MVK=0.0 +! +!ALKL/MCR=0.0 +! +!ALKL/MGLY=0.0 +! +!ALKL/GLY=0.0 +! +!ALKL/ORA1=0.0 +! +!ALKL/ORA2=0.0 +! +!ALKL/ACID=0.0 +! +!ALKL/UR28=0.0 +! +!ALKL/UR21=0.0 +! +!ALKL/URG2=0.0 +! +!ALKL/UR26=0.0 +! +!ALKL/RPG2=0.0 +! +!ALKL/RP18=0.0 +! +!ALKL/RPG3=0.0 +! +!ALKL/URG4=0.0 +! +!ALKL/UR8=0.0 +! +!ALKL/UR17=0.0 +! +!ALKL/UR7=0.0 +! +!ALKL/RPR3=0.0 +! +!ALKL/URG6=0.0 +! +!ALKL/UR22=0.0 +! +!ALKL/URG7=0.0 +! +!ALKL/RPR4=0.0 +! +!ALKL/RPR7=0.0 +! +!ALKL/RPG7=0.0 +! +!ALKL/URG8=0.0 +! +!ALKL/UR19=0.0 +! +!ALKL/URG9=0.0 +! +!ALKL/AP7=0.0 +! +!ALKL/URG10=0.0 +! +!ALKL/RPR1=0.0 +! +!ALKL/RPR5=0.0 +! +!ALKL/RPR8=0.0 +! +!ALKL/RP10=0.0 +! +!ALKL/RP11=0.0 +! +!ALKL/RP16=0.0 +! +!ALKL/RPRL=0.0 +! +!ALKL/APAN=0.0 +! +!ALKL/PAN1=0.0 +! +!ALKL/PAN2=0.0 +! +!ALKL/PAN3=0.0 +! +!ALKL/PAN4=0.0 +! +!ALKL/PAN6=0.0 +! +!ALKL/PAN7=0.0 +! +!ALKL/PAN8=0.0 +! +!ALKL/PN10=0.0 +! +!ALKL/RO2T=+TPK%CF16*K172*<RO215> + PJAC(:,19,85)=+TPK%CF16*TPK%K172(:)*TPK%RO215(:) +! +!ALKL/RO21=0.0 +! +!ALKL/RO25=+TPK%CF3*K122*<NO> + PJAC(:,19,87)=+TPK%CF3*TPK%K122(:)*PCONC(:,1) +! +!ALKL/WC_O3=0.0 +! +!ALKL/WC_H2O2=0.0 +! +!ALKL/WC_NO=0.0 +! +!ALKL/WC_NO2=0.0 +! +!ALKL/WC_NO3=0.0 +! +!ALKL/WC_N2O5=0.0 +! +!ALKL/WC_HONO=0.0 +! +!ALKL/WC_HNO3=0.0 +! +!ALKL/WC_HNO4=0.0 +! +!ALKL/WC_NH3=0.0 +! +!ALKL/WC_OH=0.0 +! +!ALKL/WC_HO2=0.0 +! +!ALKL/WC_CO2=0.0 +! +!ALKL/WC_SO2=0.0 +! +!ALKL/WC_H2SO4=0.0 +! +!ALKL/WC_RO21=0.0 +! +!ALKL/WC_RO25=0.0 +! +!ALKL/WC_MEOH=0.0 +! +!ALKL/WC_ETOH=0.0 +! +!ALKL/WC_ALCH=0.0 +! +!ALKL/WC_HCHO=0.0 +! +!ALKL/WC_ALD2=0.0 +! +!ALKL/WC_GLY=0.0 +! +!ALKL/WC_MGLY=0.0 +! +!ALKL/WC_KETL=0.0 +! +!ALKL/WC_ORA1=0.0 +! +!ALKL/WC_ORA2=0.0 +! +!ALKL/WC_ACID=0.0 +! +!ALKL/WC_RP16=0.0 +! +!ALKL/WC_UR21=0.0 +! +!ALKL/WC_UR28=0.0 +! +!ALKL/WC_ACID2=0.0 +! +!ALKL/WC_ASO3=0.0 +! +!ALKL/WC_ASO4=0.0 +! +!ALKL/WC_ASO5=0.0 +! +!ALKL/WC_AHSO5=0.0 +! +!ALKL/WC_AHMS=0.0 +! +!ALKL/WR_O3=0.0 +! +!ALKL/WR_H2O2=0.0 +! +!ALKL/WR_NO=0.0 +! +!ALKL/WR_NO2=0.0 +! +!ALKL/WR_NO3=0.0 +! +!ALKL/WR_N2O5=0.0 +! +!ALKL/WR_HONO=0.0 +! +!ALKL/WR_HNO3=0.0 +! +!ALKL/WR_HNO4=0.0 +! +!ALKL/WR_NH3=0.0 +! +!ALKL/WR_OH=0.0 +! +!ALKL/WR_HO2=0.0 +! +!ALKL/WR_CO2=0.0 +! +!ALKL/WR_SO2=0.0 +! +!ALKL/WR_H2SO4=0.0 +! +!ALKL/WR_RO21=0.0 +! +!ALKL/WR_RO25=0.0 +! +!ALKL/WR_MEOH=0.0 +! +!ALKL/WR_ETOH=0.0 +! +!ALKL/WR_ALCH=0.0 +! +!ALKL/WR_HCHO=0.0 +! +!ALKL/WR_ALD2=0.0 +! +!ALKL/WR_GLY=0.0 +! +!ALKL/WR_MGLY=0.0 +! +!ALKL/WR_KETL=0.0 +! +!ALKL/WR_ORA1=0.0 +! +!ALKL/WR_ORA2=0.0 +! +!ALKL/WR_ACID=0.0 +! +!ALKL/WR_RP16=0.0 +! +!ALKL/WR_UR21=0.0 +! +!ALKL/WR_UR28=0.0 +! +!ALKL/WR_ACID2=0.0 +! +!ALKL/WR_ASO3=0.0 +! +!ALKL/WR_ASO4=0.0 +! +!ALKL/WR_ASO5=0.0 +! +!ALKL/WR_AHSO5=0.0 +! +!ALKL/WR_AHMS=0.0 +! +!ALKM/NO=0.0 +! +!ALKM/NO2=0.0 +! +!ALKM/O3=+0.1*K076*<OLEH> + PJAC(:,20,3)=+0.1*TPK%K076(:)*PCONC(:,18) +! +!ALKM/HONO=0.0 +! +!ALKM/HNO3=0.0 +! +!ALKM/HNO4=0.0 +! +!ALKM/N2O5=0.0 +! +!ALKM/NO3=0.0 +! +!ALKM/NH3=0.0 +! +!ALKM/HO2=0.0 +! +!ALKM/CO=0.0 +! +!ALKM/H2O2=0.0 +! +!ALKM/SO2=0.0 +! +!ALKM/H2SO4=0.0 +! +!ALKM/OH=-K078*<ALKM> + PJAC(:,20,15)=-TPK%K078(:)*PCONC(:,20) +! +!ALKM/ETHE=0.0 +! +!ALKM/OLEL=0.0 +! +!ALKM/OLEH=+0.1*K076*<O3>+0.5*K077*<O> + PJAC(:,20,18)=+0.1*TPK%K076(:)*PCONC(:,3)+0.5*TPK%K077(:)*TPK%O(:) +! +!ALKM/ALKL=0.0 +! +!ALKM/ALKM=-K078*<OH> + PJAC(:,20,20)=-TPK%K078(:)*PCONC(:,15) +! +!ALKM/ALKH=0.0 +! +!ALKM/AROH=0.0 +! +!ALKM/AROL=0.0 +! +!ALKM/AROO=0.0 +! +!ALKM/ARAL=0.0 +! +!ALKM/ARAC=0.0 +! +!ALKM/PAH=0.0 +! +!ALKM/HCHO=0.0 +! +!ALKM/ALD2=0.0 +! +!ALKM/KETL=0.0 +! +!ALKM/KETH=0.0 +! +!ALKM/MEOH=0.0 +! +!ALKM/ETOH=0.0 +! +!ALKM/ALCH=0.0 +! +!ALKM/ISOP=0.0 +! +!ALKM/BIOL=0.0 +! +!ALKM/BIOH=0.0 +! +!ALKM/MTBE=0.0 +! +!ALKM/MVK=0.0 +! +!ALKM/MCR=0.0 +! +!ALKM/MGLY=0.0 +! +!ALKM/GLY=0.0 +! +!ALKM/ORA1=0.0 +! +!ALKM/ORA2=0.0 +! +!ALKM/ACID=0.0 +! +!ALKM/UR28=0.0 +! +!ALKM/UR21=0.0 +! +!ALKM/URG2=0.0 +! +!ALKM/UR26=0.0 +! +!ALKM/RPG2=0.0 +! +!ALKM/RP18=0.0 +! +!ALKM/RPG3=0.0 +! +!ALKM/URG4=0.0 +! +!ALKM/UR8=0.0 +! +!ALKM/UR17=0.0 +! +!ALKM/UR7=0.0 +! +!ALKM/RPR3=0.0 +! +!ALKM/URG6=0.0 +! +!ALKM/UR22=0.0 +! +!ALKM/URG7=0.0 +! +!ALKM/RPR4=0.0 +! +!ALKM/RPR7=0.0 +! +!ALKM/RPG7=0.0 +! +!ALKM/URG8=0.0 +! +!ALKM/UR19=0.0 +! +!ALKM/URG9=0.0 +! +!ALKM/AP7=0.0 +! +!ALKM/URG10=0.0 +! +!ALKM/RPR1=0.0 +! +!ALKM/RPR5=0.0 +! +!ALKM/RPR8=0.0 +! +!ALKM/RP10=0.0 +! +!ALKM/RP11=0.0 +! +!ALKM/RP16=0.0 +! +!ALKM/RPRL=0.0 +! +!ALKM/APAN=0.0 +! +!ALKM/PAN1=0.0 +! +!ALKM/PAN2=0.0 +! +!ALKM/PAN3=0.0 +! +!ALKM/PAN4=0.0 +! +!ALKM/PAN6=0.0 +! +!ALKM/PAN7=0.0 +! +!ALKM/PAN8=0.0 +! +!ALKM/PN10=0.0 +! +!ALKM/RO2T=0.0 +! +!ALKM/RO21=0.0 +! +!ALKM/RO25=0.0 +! +!ALKM/WC_O3=0.0 +! +!ALKM/WC_H2O2=0.0 +! +!ALKM/WC_NO=0.0 +! +!ALKM/WC_NO2=0.0 +! +!ALKM/WC_NO3=0.0 +! +!ALKM/WC_N2O5=0.0 +! +!ALKM/WC_HONO=0.0 +! +!ALKM/WC_HNO3=0.0 +! +!ALKM/WC_HNO4=0.0 +! +!ALKM/WC_NH3=0.0 +! +!ALKM/WC_OH=0.0 +! +!ALKM/WC_HO2=0.0 +! +!ALKM/WC_CO2=0.0 +! +!ALKM/WC_SO2=0.0 +! +!ALKM/WC_H2SO4=0.0 +! +!ALKM/WC_RO21=0.0 +! +!ALKM/WC_RO25=0.0 +! +!ALKM/WC_MEOH=0.0 +! +!ALKM/WC_ETOH=0.0 +! +!ALKM/WC_ALCH=0.0 +! +!ALKM/WC_HCHO=0.0 +! +!ALKM/WC_ALD2=0.0 +! +!ALKM/WC_GLY=0.0 +! +!ALKM/WC_MGLY=0.0 +! +!ALKM/WC_KETL=0.0 +! +!ALKM/WC_ORA1=0.0 +! +!ALKM/WC_ORA2=0.0 +! +!ALKM/WC_ACID=0.0 +! +!ALKM/WC_RP16=0.0 +! +!ALKM/WC_UR21=0.0 +! +!ALKM/WC_UR28=0.0 +! +!ALKM/WC_ACID2=0.0 +! +!ALKM/WC_ASO3=0.0 +! +!ALKM/WC_ASO4=0.0 +! +!ALKM/WC_ASO5=0.0 +! +!ALKM/WC_AHSO5=0.0 +! +!ALKM/WC_AHMS=0.0 +! +!ALKM/WR_O3=0.0 +! +!ALKM/WR_H2O2=0.0 +! +!ALKM/WR_NO=0.0 +! +!ALKM/WR_NO2=0.0 +! +!ALKM/WR_NO3=0.0 +! +!ALKM/WR_N2O5=0.0 +! +!ALKM/WR_HONO=0.0 +! +!ALKM/WR_HNO3=0.0 +! +!ALKM/WR_HNO4=0.0 +! +!ALKM/WR_NH3=0.0 +! +!ALKM/WR_OH=0.0 +! +!ALKM/WR_HO2=0.0 +! +!ALKM/WR_CO2=0.0 +! +!ALKM/WR_SO2=0.0 +! +!ALKM/WR_H2SO4=0.0 +! +!ALKM/WR_RO21=0.0 +! +!ALKM/WR_RO25=0.0 +! +!ALKM/WR_MEOH=0.0 +! +!ALKM/WR_ETOH=0.0 +! +!ALKM/WR_ALCH=0.0 +! +!ALKM/WR_HCHO=0.0 +! +!ALKM/WR_ALD2=0.0 +! +!ALKM/WR_GLY=0.0 +! +!ALKM/WR_MGLY=0.0 +! +!ALKM/WR_KETL=0.0 +! +!ALKM/WR_ORA1=0.0 +! +!ALKM/WR_ORA2=0.0 +! +!ALKM/WR_ACID=0.0 +! +!ALKM/WR_RP16=0.0 +! +!ALKM/WR_UR21=0.0 +! +!ALKM/WR_UR28=0.0 +! +!ALKM/WR_ACID2=0.0 +! +!ALKM/WR_ASO3=0.0 +! +!ALKM/WR_ASO4=0.0 +! +!ALKM/WR_ASO5=0.0 +! +!ALKM/WR_AHSO5=0.0 +! +!ALKM/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ3 +! +SUBROUTINE SUBJ4 +! +!Indices 21 a 25 +! +! +!ALKH/NO=0.0 +! +!ALKH/NO2=0.0 +! +!ALKH/O3=0.0 +! +!ALKH/HONO=0.0 +! +!ALKH/HNO3=0.0 +! +!ALKH/HNO4=0.0 +! +!ALKH/N2O5=0.0 +! +!ALKH/NO3=0.0 +! +!ALKH/NH3=0.0 +! +!ALKH/HO2=0.0 +! +!ALKH/CO=0.0 +! +!ALKH/H2O2=0.0 +! +!ALKH/SO2=0.0 +! +!ALKH/H2SO4=0.0 +! +!ALKH/OH=-K093*<ALKH> + PJAC(:,21,15)=-TPK%K093(:)*PCONC(:,21) +! +!ALKH/ETHE=0.0 +! +!ALKH/OLEL=0.0 +! +!ALKH/OLEH=0.0 +! +!ALKH/ALKL=0.0 +! +!ALKH/ALKM=0.0 +! +!ALKH/ALKH=-K093*<OH> + PJAC(:,21,21)=-TPK%K093(:)*PCONC(:,15) +! +!ALKH/AROH=0.0 +! +!ALKH/AROL=0.0 +! +!ALKH/AROO=0.0 +! +!ALKH/ARAL=0.0 +! +!ALKH/ARAC=0.0 +! +!ALKH/PAH=0.0 +! +!ALKH/HCHO=0.0 +! +!ALKH/ALD2=0.0 +! +!ALKH/KETL=0.0 +! +!ALKH/KETH=0.0 +! +!ALKH/MEOH=0.0 +! +!ALKH/ETOH=0.0 +! +!ALKH/ALCH=0.0 +! +!ALKH/ISOP=0.0 +! +!ALKH/BIOL=0.0 +! +!ALKH/BIOH=0.0 +! +!ALKH/MTBE=0.0 +! +!ALKH/MVK=0.0 +! +!ALKH/MCR=0.0 +! +!ALKH/MGLY=0.0 +! +!ALKH/GLY=0.0 +! +!ALKH/ORA1=0.0 +! +!ALKH/ORA2=0.0 +! +!ALKH/ACID=0.0 +! +!ALKH/UR28=0.0 +! +!ALKH/UR21=0.0 +! +!ALKH/URG2=0.0 +! +!ALKH/UR26=0.0 +! +!ALKH/RPG2=0.0 +! +!ALKH/RP18=0.0 +! +!ALKH/RPG3=0.0 +! +!ALKH/URG4=0.0 +! +!ALKH/UR8=0.0 +! +!ALKH/UR17=0.0 +! +!ALKH/UR7=0.0 +! +!ALKH/RPR3=0.0 +! +!ALKH/URG6=0.0 +! +!ALKH/UR22=0.0 +! +!ALKH/URG7=0.0 +! +!ALKH/RPR4=0.0 +! +!ALKH/RPR7=0.0 +! +!ALKH/RPG7=0.0 +! +!ALKH/URG8=0.0 +! +!ALKH/UR19=0.0 +! +!ALKH/URG9=0.0 +! +!ALKH/AP7=0.0 +! +!ALKH/URG10=0.0 +! +!ALKH/RPR1=0.0 +! +!ALKH/RPR5=0.0 +! +!ALKH/RPR8=0.0 +! +!ALKH/RP10=0.0 +! +!ALKH/RP11=0.0 +! +!ALKH/RP16=0.0 +! +!ALKH/RPRL=0.0 +! +!ALKH/APAN=0.0 +! +!ALKH/PAN1=0.0 +! +!ALKH/PAN2=0.0 +! +!ALKH/PAN3=0.0 +! +!ALKH/PAN4=0.0 +! +!ALKH/PAN6=0.0 +! +!ALKH/PAN7=0.0 +! +!ALKH/PAN8=0.0 +! +!ALKH/PN10=0.0 +! +!ALKH/RO2T=0.0 +! +!ALKH/RO21=0.0 +! +!ALKH/RO25=0.0 +! +!ALKH/WC_O3=0.0 +! +!ALKH/WC_H2O2=0.0 +! +!ALKH/WC_NO=0.0 +! +!ALKH/WC_NO2=0.0 +! +!ALKH/WC_NO3=0.0 +! +!ALKH/WC_N2O5=0.0 +! +!ALKH/WC_HONO=0.0 +! +!ALKH/WC_HNO3=0.0 +! +!ALKH/WC_HNO4=0.0 +! +!ALKH/WC_NH3=0.0 +! +!ALKH/WC_OH=0.0 +! +!ALKH/WC_HO2=0.0 +! +!ALKH/WC_CO2=0.0 +! +!ALKH/WC_SO2=0.0 +! +!ALKH/WC_H2SO4=0.0 +! +!ALKH/WC_RO21=0.0 +! +!ALKH/WC_RO25=0.0 +! +!ALKH/WC_MEOH=0.0 +! +!ALKH/WC_ETOH=0.0 +! +!ALKH/WC_ALCH=0.0 +! +!ALKH/WC_HCHO=0.0 +! +!ALKH/WC_ALD2=0.0 +! +!ALKH/WC_GLY=0.0 +! +!ALKH/WC_MGLY=0.0 +! +!ALKH/WC_KETL=0.0 +! +!ALKH/WC_ORA1=0.0 +! +!ALKH/WC_ORA2=0.0 +! +!ALKH/WC_ACID=0.0 +! +!ALKH/WC_RP16=0.0 +! +!ALKH/WC_UR21=0.0 +! +!ALKH/WC_UR28=0.0 +! +!ALKH/WC_ACID2=0.0 +! +!ALKH/WC_ASO3=0.0 +! +!ALKH/WC_ASO4=0.0 +! +!ALKH/WC_ASO5=0.0 +! +!ALKH/WC_AHSO5=0.0 +! +!ALKH/WC_AHMS=0.0 +! +!ALKH/WR_O3=0.0 +! +!ALKH/WR_H2O2=0.0 +! +!ALKH/WR_NO=0.0 +! +!ALKH/WR_NO2=0.0 +! +!ALKH/WR_NO3=0.0 +! +!ALKH/WR_N2O5=0.0 +! +!ALKH/WR_HONO=0.0 +! +!ALKH/WR_HNO3=0.0 +! +!ALKH/WR_HNO4=0.0 +! +!ALKH/WR_NH3=0.0 +! +!ALKH/WR_OH=0.0 +! +!ALKH/WR_HO2=0.0 +! +!ALKH/WR_CO2=0.0 +! +!ALKH/WR_SO2=0.0 +! +!ALKH/WR_H2SO4=0.0 +! +!ALKH/WR_RO21=0.0 +! +!ALKH/WR_RO25=0.0 +! +!ALKH/WR_MEOH=0.0 +! +!ALKH/WR_ETOH=0.0 +! +!ALKH/WR_ALCH=0.0 +! +!ALKH/WR_HCHO=0.0 +! +!ALKH/WR_ALD2=0.0 +! +!ALKH/WR_GLY=0.0 +! +!ALKH/WR_MGLY=0.0 +! +!ALKH/WR_KETL=0.0 +! +!ALKH/WR_ORA1=0.0 +! +!ALKH/WR_ORA2=0.0 +! +!ALKH/WR_ACID=0.0 +! +!ALKH/WR_RP16=0.0 +! +!ALKH/WR_UR21=0.0 +! +!ALKH/WR_UR28=0.0 +! +!ALKH/WR_ACID2=0.0 +! +!ALKH/WR_ASO3=0.0 +! +!ALKH/WR_ASO4=0.0 +! +!ALKH/WR_ASO5=0.0 +! +!ALKH/WR_AHSO5=0.0 +! +!ALKH/WR_AHMS=0.0 +! +!AROH/NO=0.0 +! +!AROH/NO2=0.0 +! +!AROH/O3=0.0 +! +!AROH/HONO=0.0 +! +!AROH/HNO3=0.0 +! +!AROH/HNO4=0.0 +! +!AROH/N2O5=0.0 +! +!AROH/NO3=0.0 +! +!AROH/NH3=0.0 +! +!AROH/HO2=0.0 +! +!AROH/CO=0.0 +! +!AROH/H2O2=0.0 +! +!AROH/SO2=0.0 +! +!AROH/H2SO4=0.0 +! +!AROH/OH=-K080*<AROH> + PJAC(:,22,15)=-TPK%K080(:)*PCONC(:,22) +! +!AROH/ETHE=0.0 +! +!AROH/OLEL=0.0 +! +!AROH/OLEH=0.0 +! +!AROH/ALKL=0.0 +! +!AROH/ALKM=0.0 +! +!AROH/ALKH=0.0 +! +!AROH/AROH=-K080*<OH> + PJAC(:,22,22)=-TPK%K080(:)*PCONC(:,15) +! +!AROH/AROL=0.0 +! +!AROH/AROO=0.0 +! +!AROH/ARAL=0.0 +! +!AROH/ARAC=0.0 +! +!AROH/PAH=0.0 +! +!AROH/HCHO=0.0 +! +!AROH/ALD2=0.0 +! +!AROH/KETL=0.0 +! +!AROH/KETH=0.0 +! +!AROH/MEOH=0.0 +! +!AROH/ETOH=0.0 +! +!AROH/ALCH=0.0 +! +!AROH/ISOP=0.0 +! +!AROH/BIOL=0.0 +! +!AROH/BIOH=0.0 +! +!AROH/MTBE=0.0 +! +!AROH/MVK=0.0 +! +!AROH/MCR=0.0 +! +!AROH/MGLY=0.0 +! +!AROH/GLY=0.0 +! +!AROH/ORA1=0.0 +! +!AROH/ORA2=0.0 +! +!AROH/ACID=0.0 +! +!AROH/UR28=0.0 +! +!AROH/UR21=0.0 +! +!AROH/URG2=0.0 +! +!AROH/UR26=0.0 +! +!AROH/RPG2=0.0 +! +!AROH/RP18=0.0 +! +!AROH/RPG3=0.0 +! +!AROH/URG4=0.0 +! +!AROH/UR8=0.0 +! +!AROH/UR17=0.0 +! +!AROH/UR7=0.0 +! +!AROH/RPR3=0.0 +! +!AROH/URG6=0.0 +! +!AROH/UR22=0.0 +! +!AROH/URG7=0.0 +! +!AROH/RPR4=0.0 +! +!AROH/RPR7=0.0 +! +!AROH/RPG7=0.0 +! +!AROH/URG8=0.0 +! +!AROH/UR19=0.0 +! +!AROH/URG9=0.0 +! +!AROH/AP7=0.0 +! +!AROH/URG10=0.0 +! +!AROH/RPR1=0.0 +! +!AROH/RPR5=0.0 +! +!AROH/RPR8=0.0 +! +!AROH/RP10=0.0 +! +!AROH/RP11=0.0 +! +!AROH/RP16=0.0 +! +!AROH/RPRL=0.0 +! +!AROH/APAN=0.0 +! +!AROH/PAN1=0.0 +! +!AROH/PAN2=0.0 +! +!AROH/PAN3=0.0 +! +!AROH/PAN4=0.0 +! +!AROH/PAN6=0.0 +! +!AROH/PAN7=0.0 +! +!AROH/PAN8=0.0 +! +!AROH/PN10=0.0 +! +!AROH/RO2T=0.0 +! +!AROH/RO21=0.0 +! +!AROH/RO25=0.0 +! +!AROH/WC_O3=0.0 +! +!AROH/WC_H2O2=0.0 +! +!AROH/WC_NO=0.0 +! +!AROH/WC_NO2=0.0 +! +!AROH/WC_NO3=0.0 +! +!AROH/WC_N2O5=0.0 +! +!AROH/WC_HONO=0.0 +! +!AROH/WC_HNO3=0.0 +! +!AROH/WC_HNO4=0.0 +! +!AROH/WC_NH3=0.0 +! +!AROH/WC_OH=0.0 +! +!AROH/WC_HO2=0.0 +! +!AROH/WC_CO2=0.0 +! +!AROH/WC_SO2=0.0 +! +!AROH/WC_H2SO4=0.0 +! +!AROH/WC_RO21=0.0 +! +!AROH/WC_RO25=0.0 +! +!AROH/WC_MEOH=0.0 +! +!AROH/WC_ETOH=0.0 +! +!AROH/WC_ALCH=0.0 +! +!AROH/WC_HCHO=0.0 +! +!AROH/WC_ALD2=0.0 +! +!AROH/WC_GLY=0.0 +! +!AROH/WC_MGLY=0.0 +! +!AROH/WC_KETL=0.0 +! +!AROH/WC_ORA1=0.0 +! +!AROH/WC_ORA2=0.0 +! +!AROH/WC_ACID=0.0 +! +!AROH/WC_RP16=0.0 +! +!AROH/WC_UR21=0.0 +! +!AROH/WC_UR28=0.0 +! +!AROH/WC_ACID2=0.0 +! +!AROH/WC_ASO3=0.0 +! +!AROH/WC_ASO4=0.0 +! +!AROH/WC_ASO5=0.0 +! +!AROH/WC_AHSO5=0.0 +! +!AROH/WC_AHMS=0.0 +! +!AROH/WR_O3=0.0 +! +!AROH/WR_H2O2=0.0 +! +!AROH/WR_NO=0.0 +! +!AROH/WR_NO2=0.0 +! +!AROH/WR_NO3=0.0 +! +!AROH/WR_N2O5=0.0 +! +!AROH/WR_HONO=0.0 +! +!AROH/WR_HNO3=0.0 +! +!AROH/WR_HNO4=0.0 +! +!AROH/WR_NH3=0.0 +! +!AROH/WR_OH=0.0 +! +!AROH/WR_HO2=0.0 +! +!AROH/WR_CO2=0.0 +! +!AROH/WR_SO2=0.0 +! +!AROH/WR_H2SO4=0.0 +! +!AROH/WR_RO21=0.0 +! +!AROH/WR_RO25=0.0 +! +!AROH/WR_MEOH=0.0 +! +!AROH/WR_ETOH=0.0 +! +!AROH/WR_ALCH=0.0 +! +!AROH/WR_HCHO=0.0 +! +!AROH/WR_ALD2=0.0 +! +!AROH/WR_GLY=0.0 +! +!AROH/WR_MGLY=0.0 +! +!AROH/WR_KETL=0.0 +! +!AROH/WR_ORA1=0.0 +! +!AROH/WR_ORA2=0.0 +! +!AROH/WR_ACID=0.0 +! +!AROH/WR_RP16=0.0 +! +!AROH/WR_UR21=0.0 +! +!AROH/WR_UR28=0.0 +! +!AROH/WR_ACID2=0.0 +! +!AROH/WR_ASO3=0.0 +! +!AROH/WR_ASO4=0.0 +! +!AROH/WR_ASO5=0.0 +! +!AROH/WR_AHSO5=0.0 +! +!AROH/WR_AHMS=0.0 +! +!AROL/NO=0.0 +! +!AROL/NO2=0.0 +! +!AROL/O3=0.0 +! +!AROL/HONO=0.0 +! +!AROL/HNO3=0.0 +! +!AROL/HNO4=0.0 +! +!AROL/N2O5=0.0 +! +!AROL/NO3=0.0 +! +!AROL/NH3=0.0 +! +!AROL/HO2=0.0 +! +!AROL/CO=0.0 +! +!AROL/H2O2=0.0 +! +!AROL/SO2=0.0 +! +!AROL/H2SO4=0.0 +! +!AROL/OH=-K079*<AROL> + PJAC(:,23,15)=-TPK%K079(:)*PCONC(:,23) +! +!AROL/ETHE=0.0 +! +!AROL/OLEL=0.0 +! +!AROL/OLEH=0.0 +! +!AROL/ALKL=0.0 +! +!AROL/ALKM=0.0 +! +!AROL/ALKH=0.0 +! +!AROL/AROH=0.0 +! +!AROL/AROL=-K079*<OH> + PJAC(:,23,23)=-TPK%K079(:)*PCONC(:,15) +! +!AROL/AROO=0.0 +! +!AROL/ARAL=0.0 +! +!AROL/ARAC=0.0 +! +!AROL/PAH=0.0 +! +!AROL/HCHO=0.0 +! +!AROL/ALD2=0.0 +! +!AROL/KETL=0.0 +! +!AROL/KETH=0.0 +! +!AROL/MEOH=0.0 +! +!AROL/ETOH=0.0 +! +!AROL/ALCH=0.0 +! +!AROL/ISOP=0.0 +! +!AROL/BIOL=0.0 +! +!AROL/BIOH=0.0 +! +!AROL/MTBE=0.0 +! +!AROL/MVK=0.0 +! +!AROL/MCR=0.0 +! +!AROL/MGLY=0.0 +! +!AROL/GLY=0.0 +! +!AROL/ORA1=0.0 +! +!AROL/ORA2=0.0 +! +!AROL/ACID=0.0 +! +!AROL/UR28=0.0 +! +!AROL/UR21=0.0 +! +!AROL/URG2=0.0 +! +!AROL/UR26=0.0 +! +!AROL/RPG2=0.0 +! +!AROL/RP18=0.0 +! +!AROL/RPG3=0.0 +! +!AROL/URG4=0.0 +! +!AROL/UR8=0.0 +! +!AROL/UR17=0.0 +! +!AROL/UR7=0.0 +! +!AROL/RPR3=0.0 +! +!AROL/URG6=0.0 +! +!AROL/UR22=0.0 +! +!AROL/URG7=0.0 +! +!AROL/RPR4=0.0 +! +!AROL/RPR7=0.0 +! +!AROL/RPG7=0.0 +! +!AROL/URG8=0.0 +! +!AROL/UR19=0.0 +! +!AROL/URG9=0.0 +! +!AROL/AP7=0.0 +! +!AROL/URG10=0.0 +! +!AROL/RPR1=0.0 +! +!AROL/RPR5=0.0 +! +!AROL/RPR8=0.0 +! +!AROL/RP10=0.0 +! +!AROL/RP11=0.0 +! +!AROL/RP16=0.0 +! +!AROL/RPRL=0.0 +! +!AROL/APAN=0.0 +! +!AROL/PAN1=0.0 +! +!AROL/PAN2=0.0 +! +!AROL/PAN3=0.0 +! +!AROL/PAN4=0.0 +! +!AROL/PAN6=0.0 +! +!AROL/PAN7=0.0 +! +!AROL/PAN8=0.0 +! +!AROL/PN10=0.0 +! +!AROL/RO2T=0.0 +! +!AROL/RO21=0.0 +! +!AROL/RO25=0.0 +! +!AROL/WC_O3=0.0 +! +!AROL/WC_H2O2=0.0 +! +!AROL/WC_NO=0.0 +! +!AROL/WC_NO2=0.0 +! +!AROL/WC_NO3=0.0 +! +!AROL/WC_N2O5=0.0 +! +!AROL/WC_HONO=0.0 +! +!AROL/WC_HNO3=0.0 +! +!AROL/WC_HNO4=0.0 +! +!AROL/WC_NH3=0.0 +! +!AROL/WC_OH=0.0 +! +!AROL/WC_HO2=0.0 +! +!AROL/WC_CO2=0.0 +! +!AROL/WC_SO2=0.0 +! +!AROL/WC_H2SO4=0.0 +! +!AROL/WC_RO21=0.0 +! +!AROL/WC_RO25=0.0 +! +!AROL/WC_MEOH=0.0 +! +!AROL/WC_ETOH=0.0 +! +!AROL/WC_ALCH=0.0 +! +!AROL/WC_HCHO=0.0 +! +!AROL/WC_ALD2=0.0 +! +!AROL/WC_GLY=0.0 +! +!AROL/WC_MGLY=0.0 +! +!AROL/WC_KETL=0.0 +! +!AROL/WC_ORA1=0.0 +! +!AROL/WC_ORA2=0.0 +! +!AROL/WC_ACID=0.0 +! +!AROL/WC_RP16=0.0 +! +!AROL/WC_UR21=0.0 +! +!AROL/WC_UR28=0.0 +! +!AROL/WC_ACID2=0.0 +! +!AROL/WC_ASO3=0.0 +! +!AROL/WC_ASO4=0.0 +! +!AROL/WC_ASO5=0.0 +! +!AROL/WC_AHSO5=0.0 +! +!AROL/WC_AHMS=0.0 +! +!AROL/WR_O3=0.0 +! +!AROL/WR_H2O2=0.0 +! +!AROL/WR_NO=0.0 +! +!AROL/WR_NO2=0.0 +! +!AROL/WR_NO3=0.0 +! +!AROL/WR_N2O5=0.0 +! +!AROL/WR_HONO=0.0 +! +!AROL/WR_HNO3=0.0 +! +!AROL/WR_HNO4=0.0 +! +!AROL/WR_NH3=0.0 +! +!AROL/WR_OH=0.0 +! +!AROL/WR_HO2=0.0 +! +!AROL/WR_CO2=0.0 +! +!AROL/WR_SO2=0.0 +! +!AROL/WR_H2SO4=0.0 +! +!AROL/WR_RO21=0.0 +! +!AROL/WR_RO25=0.0 +! +!AROL/WR_MEOH=0.0 +! +!AROL/WR_ETOH=0.0 +! +!AROL/WR_ALCH=0.0 +! +!AROL/WR_HCHO=0.0 +! +!AROL/WR_ALD2=0.0 +! +!AROL/WR_GLY=0.0 +! +!AROL/WR_MGLY=0.0 +! +!AROL/WR_KETL=0.0 +! +!AROL/WR_ORA1=0.0 +! +!AROL/WR_ORA2=0.0 +! +!AROL/WR_ACID=0.0 +! +!AROL/WR_RP16=0.0 +! +!AROL/WR_UR21=0.0 +! +!AROL/WR_UR28=0.0 +! +!AROL/WR_ACID2=0.0 +! +!AROL/WR_ASO3=0.0 +! +!AROL/WR_ASO4=0.0 +! +!AROL/WR_ASO5=0.0 +! +!AROL/WR_AHSO5=0.0 +! +!AROL/WR_AHMS=0.0 +! +!AROO/NO=0.0 +! +!AROO/NO2=0.0 +! +!AROO/O3=0.0 +! +!AROO/HONO=0.0 +! +!AROO/HNO3=0.0 +! +!AROO/HNO4=0.0 +! +!AROO/N2O5=0.0 +! +!AROO/NO3=-K072*<AROO> + PJAC(:,24,8)=-TPK%K072(:)*PCONC(:,24) +! +!AROO/NH3=0.0 +! +!AROO/HO2=0.0 +! +!AROO/CO=0.0 +! +!AROO/H2O2=0.0 +! +!AROO/SO2=0.0 +! +!AROO/H2SO4=0.0 +! +!AROO/OH=+0.16*K073*<AROO>-K073*<AROO>+0.16*K079*<AROL>+0.16*K080*<AROH> + PJAC(:,24,15)=+0.16*TPK%K073(:)*PCONC(:,24)-TPK%K073(:)*PCONC(:,24)+0.16*TPK%K& +&079(:)*PCONC(:,23)+0.16*TPK%K080(:)*PCONC(:,22) +! +!AROO/ETHE=0.0 +! +!AROO/OLEL=0.0 +! +!AROO/OLEH=0.0 +! +!AROO/ALKL=0.0 +! +!AROO/ALKM=0.0 +! +!AROO/ALKH=0.0 +! +!AROO/AROH=+0.16*K080*<OH> + PJAC(:,24,22)=+0.16*TPK%K080(:)*PCONC(:,15) +! +!AROO/AROL=+0.16*K079*<OH> + PJAC(:,24,23)=+0.16*TPK%K079(:)*PCONC(:,15) +! +!AROO/AROO=-K072*<NO3>+0.16*K073*<OH>-K073*<OH> + PJAC(:,24,24)=-TPK%K072(:)*PCONC(:,8)+0.16*TPK%K073(:)*PCONC(:,15)-TPK%K073(:)& +&*PCONC(:,15) +! +!AROO/ARAL=0.0 +! +!AROO/ARAC=0.0 +! +!AROO/PAH=0.0 +! +!AROO/HCHO=0.0 +! +!AROO/ALD2=0.0 +! +!AROO/KETL=0.0 +! +!AROO/KETH=0.0 +! +!AROO/MEOH=0.0 +! +!AROO/ETOH=0.0 +! +!AROO/ALCH=0.0 +! +!AROO/ISOP=0.0 +! +!AROO/BIOL=0.0 +! +!AROO/BIOH=0.0 +! +!AROO/MTBE=0.0 +! +!AROO/MVK=0.0 +! +!AROO/MCR=0.0 +! +!AROO/MGLY=0.0 +! +!AROO/GLY=0.0 +! +!AROO/ORA1=0.0 +! +!AROO/ORA2=0.0 +! +!AROO/ACID=0.0 +! +!AROO/UR28=0.0 +! +!AROO/UR21=0.0 +! +!AROO/URG2=0.0 +! +!AROO/UR26=0.0 +! +!AROO/RPG2=0.0 +! +!AROO/RP18=0.0 +! +!AROO/RPG3=0.0 +! +!AROO/URG4=0.0 +! +!AROO/UR8=0.0 +! +!AROO/UR17=0.0 +! +!AROO/UR7=0.0 +! +!AROO/RPR3=0.0 +! +!AROO/URG6=0.0 +! +!AROO/UR22=0.0 +! +!AROO/URG7=0.0 +! +!AROO/RPR4=0.0 +! +!AROO/RPR7=0.0 +! +!AROO/RPG7=0.0 +! +!AROO/URG8=0.0 +! +!AROO/UR19=0.0 +! +!AROO/URG9=0.0 +! +!AROO/AP7=0.0 +! +!AROO/URG10=0.0 +! +!AROO/RPR1=0.0 +! +!AROO/RPR5=0.0 +! +!AROO/RPR8=0.0 +! +!AROO/RP10=0.0 +! +!AROO/RP11=0.0 +! +!AROO/RP16=0.0 +! +!AROO/RPRL=0.0 +! +!AROO/APAN=0.0 +! +!AROO/PAN1=0.0 +! +!AROO/PAN2=0.0 +! +!AROO/PAN3=0.0 +! +!AROO/PAN4=0.0 +! +!AROO/PAN6=0.0 +! +!AROO/PAN7=0.0 +! +!AROO/PAN8=0.0 +! +!AROO/PN10=0.0 +! +!AROO/RO2T=0.0 +! +!AROO/RO21=0.0 +! +!AROO/RO25=0.0 +! +!AROO/WC_O3=0.0 +! +!AROO/WC_H2O2=0.0 +! +!AROO/WC_NO=0.0 +! +!AROO/WC_NO2=0.0 +! +!AROO/WC_NO3=0.0 +! +!AROO/WC_N2O5=0.0 +! +!AROO/WC_HONO=0.0 +! +!AROO/WC_HNO3=0.0 +! +!AROO/WC_HNO4=0.0 +! +!AROO/WC_NH3=0.0 +! +!AROO/WC_OH=0.0 +! +!AROO/WC_HO2=0.0 +! +!AROO/WC_CO2=0.0 +! +!AROO/WC_SO2=0.0 +! +!AROO/WC_H2SO4=0.0 +! +!AROO/WC_RO21=0.0 +! +!AROO/WC_RO25=0.0 +! +!AROO/WC_MEOH=0.0 +! +!AROO/WC_ETOH=0.0 +! +!AROO/WC_ALCH=0.0 +! +!AROO/WC_HCHO=0.0 +! +!AROO/WC_ALD2=0.0 +! +!AROO/WC_GLY=0.0 +! +!AROO/WC_MGLY=0.0 +! +!AROO/WC_KETL=0.0 +! +!AROO/WC_ORA1=0.0 +! +!AROO/WC_ORA2=0.0 +! +!AROO/WC_ACID=0.0 +! +!AROO/WC_RP16=0.0 +! +!AROO/WC_UR21=0.0 +! +!AROO/WC_UR28=0.0 +! +!AROO/WC_ACID2=0.0 +! +!AROO/WC_ASO3=0.0 +! +!AROO/WC_ASO4=0.0 +! +!AROO/WC_ASO5=0.0 +! +!AROO/WC_AHSO5=0.0 +! +!AROO/WC_AHMS=0.0 +! +!AROO/WR_O3=0.0 +! +!AROO/WR_H2O2=0.0 +! +!AROO/WR_NO=0.0 +! +!AROO/WR_NO2=0.0 +! +!AROO/WR_NO3=0.0 +! +!AROO/WR_N2O5=0.0 +! +!AROO/WR_HONO=0.0 +! +!AROO/WR_HNO3=0.0 +! +!AROO/WR_HNO4=0.0 +! +!AROO/WR_NH3=0.0 +! +!AROO/WR_OH=0.0 +! +!AROO/WR_HO2=0.0 +! +!AROO/WR_CO2=0.0 +! +!AROO/WR_SO2=0.0 +! +!AROO/WR_H2SO4=0.0 +! +!AROO/WR_RO21=0.0 +! +!AROO/WR_RO25=0.0 +! +!AROO/WR_MEOH=0.0 +! +!AROO/WR_ETOH=0.0 +! +!AROO/WR_ALCH=0.0 +! +!AROO/WR_HCHO=0.0 +! +!AROO/WR_ALD2=0.0 +! +!AROO/WR_GLY=0.0 +! +!AROO/WR_MGLY=0.0 +! +!AROO/WR_KETL=0.0 +! +!AROO/WR_ORA1=0.0 +! +!AROO/WR_ORA2=0.0 +! +!AROO/WR_ACID=0.0 +! +!AROO/WR_RP16=0.0 +! +!AROO/WR_UR21=0.0 +! +!AROO/WR_UR28=0.0 +! +!AROO/WR_ACID2=0.0 +! +!AROO/WR_ASO3=0.0 +! +!AROO/WR_ASO4=0.0 +! +!AROO/WR_ASO5=0.0 +! +!AROO/WR_AHSO5=0.0 +! +!AROO/WR_AHMS=0.0 +! +!ARAL/NO=+TPK%CF24*K189*<RO221> + PJAC(:,25,1)=+TPK%CF24*TPK%K189(:)*TPK%RO221(:) +! +!ARAL/NO2=0.0 +! +!ARAL/O3=0.0 +! +!ARAL/HONO=0.0 +! +!ARAL/HNO3=0.0 +! +!ARAL/HNO4=0.0 +! +!ARAL/N2O5=0.0 +! +!ARAL/NO3=-K081*<ARAL> + PJAC(:,25,8)=-TPK%K081(:)*PCONC(:,25) +! +!ARAL/NH3=0.0 +! +!ARAL/HO2=+K191*<RO221> + PJAC(:,25,10)=+TPK%K191(:)*TPK%RO221(:) +! +!ARAL/CO=0.0 +! +!ARAL/H2O2=0.0 +! +!ARAL/SO2=0.0 +! +!ARAL/H2SO4=0.0 +! +!ARAL/OH=-K082*<ARAL> + PJAC(:,25,15)=-TPK%K082(:)*PCONC(:,25) +! +!ARAL/ETHE=0.0 +! +!ARAL/OLEL=0.0 +! +!ARAL/OLEH=0.0 +! +!ARAL/ALKL=0.0 +! +!ARAL/ALKM=0.0 +! +!ARAL/ALKH=0.0 +! +!ARAL/AROH=0.0 +! +!ARAL/AROL=0.0 +! +!ARAL/AROO=0.0 +! +!ARAL/ARAL=-K081*<NO3>-K082*<OH> + PJAC(:,25,25)=-TPK%K081(:)*PCONC(:,8)-TPK%K082(:)*PCONC(:,15) +! +!ARAL/ARAC=0.0 +! +!ARAL/PAH=0.0 +! +!ARAL/HCHO=0.0 +! +!ARAL/ALD2=0.0 +! +!ARAL/KETL=0.0 +! +!ARAL/KETH=0.0 +! +!ARAL/MEOH=0.0 +! +!ARAL/ETOH=0.0 +! +!ARAL/ALCH=0.0 +! +!ARAL/ISOP=0.0 +! +!ARAL/BIOL=0.0 +! +!ARAL/BIOH=0.0 +! +!ARAL/MTBE=0.0 +! +!ARAL/MVK=0.0 +! +!ARAL/MCR=0.0 +! +!ARAL/MGLY=0.0 +! +!ARAL/GLY=0.0 +! +!ARAL/ORA1=0.0 +! +!ARAL/ORA2=0.0 +! +!ARAL/ACID=0.0 +! +!ARAL/UR28=0.0 +! +!ARAL/UR21=0.0 +! +!ARAL/URG2=0.0 +! +!ARAL/UR26=0.0 +! +!ARAL/RPG2=0.0 +! +!ARAL/RP18=0.0 +! +!ARAL/RPG3=0.0 +! +!ARAL/URG4=0.0 +! +!ARAL/UR8=0.0 +! +!ARAL/UR17=0.0 +! +!ARAL/UR7=0.0 +! +!ARAL/RPR3=0.0 +! +!ARAL/URG6=0.0 +! +!ARAL/UR22=0.0 +! +!ARAL/URG7=0.0 +! +!ARAL/RPR4=0.0 +! +!ARAL/RPR7=0.0 +! +!ARAL/RPG7=0.0 +! +!ARAL/URG8=0.0 +! +!ARAL/UR19=0.0 +! +!ARAL/URG9=0.0 +! +!ARAL/AP7=0.0 +! +!ARAL/URG10=0.0 +! +!ARAL/RPR1=0.0 +! +!ARAL/RPR5=0.0 +! +!ARAL/RPR8=0.0 +! +!ARAL/RP10=0.0 +! +!ARAL/RP11=0.0 +! +!ARAL/RP16=0.0 +! +!ARAL/RPRL=0.0 +! +!ARAL/APAN=0.0 +! +!ARAL/PAN1=0.0 +! +!ARAL/PAN2=0.0 +! +!ARAL/PAN3=0.0 +! +!ARAL/PAN4=0.0 +! +!ARAL/PAN6=0.0 +! +!ARAL/PAN7=0.0 +! +!ARAL/PAN8=0.0 +! +!ARAL/PN10=0.0 +! +!ARAL/RO2T=+K190*<RO221> + PJAC(:,25,85)=+TPK%K190(:)*TPK%RO221(:) +! +!ARAL/RO21=0.0 +! +!ARAL/RO25=0.0 +! +!ARAL/WC_O3=0.0 +! +!ARAL/WC_H2O2=0.0 +! +!ARAL/WC_NO=0.0 +! +!ARAL/WC_NO2=0.0 +! +!ARAL/WC_NO3=0.0 +! +!ARAL/WC_N2O5=0.0 +! +!ARAL/WC_HONO=0.0 +! +!ARAL/WC_HNO3=0.0 +! +!ARAL/WC_HNO4=0.0 +! +!ARAL/WC_NH3=0.0 +! +!ARAL/WC_OH=0.0 +! +!ARAL/WC_HO2=0.0 +! +!ARAL/WC_CO2=0.0 +! +!ARAL/WC_SO2=0.0 +! +!ARAL/WC_H2SO4=0.0 +! +!ARAL/WC_RO21=0.0 +! +!ARAL/WC_RO25=0.0 +! +!ARAL/WC_MEOH=0.0 +! +!ARAL/WC_ETOH=0.0 +! +!ARAL/WC_ALCH=0.0 +! +!ARAL/WC_HCHO=0.0 +! +!ARAL/WC_ALD2=0.0 +! +!ARAL/WC_GLY=0.0 +! +!ARAL/WC_MGLY=0.0 +! +!ARAL/WC_KETL=0.0 +! +!ARAL/WC_ORA1=0.0 +! +!ARAL/WC_ORA2=0.0 +! +!ARAL/WC_ACID=0.0 +! +!ARAL/WC_RP16=0.0 +! +!ARAL/WC_UR21=0.0 +! +!ARAL/WC_UR28=0.0 +! +!ARAL/WC_ACID2=0.0 +! +!ARAL/WC_ASO3=0.0 +! +!ARAL/WC_ASO4=0.0 +! +!ARAL/WC_ASO5=0.0 +! +!ARAL/WC_AHSO5=0.0 +! +!ARAL/WC_AHMS=0.0 +! +!ARAL/WR_O3=0.0 +! +!ARAL/WR_H2O2=0.0 +! +!ARAL/WR_NO=0.0 +! +!ARAL/WR_NO2=0.0 +! +!ARAL/WR_NO3=0.0 +! +!ARAL/WR_N2O5=0.0 +! +!ARAL/WR_HONO=0.0 +! +!ARAL/WR_HNO3=0.0 +! +!ARAL/WR_HNO4=0.0 +! +!ARAL/WR_NH3=0.0 +! +!ARAL/WR_OH=0.0 +! +!ARAL/WR_HO2=0.0 +! +!ARAL/WR_CO2=0.0 +! +!ARAL/WR_SO2=0.0 +! +!ARAL/WR_H2SO4=0.0 +! +!ARAL/WR_RO21=0.0 +! +!ARAL/WR_RO25=0.0 +! +!ARAL/WR_MEOH=0.0 +! +!ARAL/WR_ETOH=0.0 +! +!ARAL/WR_ALCH=0.0 +! +!ARAL/WR_HCHO=0.0 +! +!ARAL/WR_ALD2=0.0 +! +!ARAL/WR_GLY=0.0 +! +!ARAL/WR_MGLY=0.0 +! +!ARAL/WR_KETL=0.0 +! +!ARAL/WR_ORA1=0.0 +! +!ARAL/WR_ORA2=0.0 +! +!ARAL/WR_ACID=0.0 +! +!ARAL/WR_RP16=0.0 +! +!ARAL/WR_UR21=0.0 +! +!ARAL/WR_UR28=0.0 +! +!ARAL/WR_ACID2=0.0 +! +!ARAL/WR_ASO3=0.0 +! +!ARAL/WR_ASO4=0.0 +! +!ARAL/WR_ASO5=0.0 +! +!ARAL/WR_AHSO5=0.0 +! +!ARAL/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ4 +! +SUBROUTINE SUBJ5 +! +!Indices 26 a 30 +! +! +!ARAC/NO=0.0 +! +!ARAC/NO2=0.0 +! +!ARAC/O3=0.0 +! +!ARAC/HONO=0.0 +! +!ARAC/HNO3=0.0 +! +!ARAC/HNO4=0.0 +! +!ARAC/N2O5=0.0 +! +!ARAC/NO3=+K081*<ARAL> + PJAC(:,26,8)=+TPK%K081(:)*PCONC(:,25) +! +!ARAC/NH3=0.0 +! +!ARAC/HO2=0.0 +! +!ARAC/CO=0.0 +! +!ARAC/H2O2=0.0 +! +!ARAC/SO2=0.0 +! +!ARAC/H2SO4=0.0 +! +!ARAC/OH=+TPK%CF39*K082*<ARAL>-K083*<ARAC> + PJAC(:,26,15)=+TPK%CF39*TPK%K082(:)*PCONC(:,25)-TPK%K083(:)*PCONC(:,26) +! +!ARAC/ETHE=0.0 +! +!ARAC/OLEL=0.0 +! +!ARAC/OLEH=0.0 +! +!ARAC/ALKL=0.0 +! +!ARAC/ALKM=0.0 +! +!ARAC/ALKH=0.0 +! +!ARAC/AROH=0.0 +! +!ARAC/AROL=0.0 +! +!ARAC/AROO=0.0 +! +!ARAC/ARAL=+K081*<NO3>+TPK%CF39*K082*<OH> + PJAC(:,26,25)=+TPK%K081(:)*PCONC(:,8)+TPK%CF39*TPK%K082(:)*PCONC(:,15) +! +!ARAC/ARAC=-K083*<OH> + PJAC(:,26,26)=-TPK%K083(:)*PCONC(:,15) +! +!ARAC/PAH=0.0 +! +!ARAC/HCHO=0.0 +! +!ARAC/ALD2=0.0 +! +!ARAC/KETL=0.0 +! +!ARAC/KETH=0.0 +! +!ARAC/MEOH=0.0 +! +!ARAC/ETOH=0.0 +! +!ARAC/ALCH=0.0 +! +!ARAC/ISOP=0.0 +! +!ARAC/BIOL=0.0 +! +!ARAC/BIOH=0.0 +! +!ARAC/MTBE=0.0 +! +!ARAC/MVK=0.0 +! +!ARAC/MCR=0.0 +! +!ARAC/MGLY=0.0 +! +!ARAC/GLY=0.0 +! +!ARAC/ORA1=0.0 +! +!ARAC/ORA2=0.0 +! +!ARAC/ACID=0.0 +! +!ARAC/UR28=0.0 +! +!ARAC/UR21=0.0 +! +!ARAC/URG2=0.0 +! +!ARAC/UR26=0.0 +! +!ARAC/RPG2=0.0 +! +!ARAC/RP18=0.0 +! +!ARAC/RPG3=0.0 +! +!ARAC/URG4=0.0 +! +!ARAC/UR8=0.0 +! +!ARAC/UR17=0.0 +! +!ARAC/UR7=0.0 +! +!ARAC/RPR3=0.0 +! +!ARAC/URG6=0.0 +! +!ARAC/UR22=0.0 +! +!ARAC/URG7=0.0 +! +!ARAC/RPR4=0.0 +! +!ARAC/RPR7=0.0 +! +!ARAC/RPG7=0.0 +! +!ARAC/URG8=0.0 +! +!ARAC/UR19=0.0 +! +!ARAC/URG9=0.0 +! +!ARAC/AP7=0.0 +! +!ARAC/URG10=0.0 +! +!ARAC/RPR1=0.0 +! +!ARAC/RPR5=0.0 +! +!ARAC/RPR8=0.0 +! +!ARAC/RP10=0.0 +! +!ARAC/RP11=0.0 +! +!ARAC/RP16=0.0 +! +!ARAC/RPRL=0.0 +! +!ARAC/APAN=0.0 +! +!ARAC/PAN1=0.0 +! +!ARAC/PAN2=0.0 +! +!ARAC/PAN3=0.0 +! +!ARAC/PAN4=0.0 +! +!ARAC/PAN6=0.0 +! +!ARAC/PAN7=0.0 +! +!ARAC/PAN8=0.0 +! +!ARAC/PN10=0.0 +! +!ARAC/RO2T=0.0 +! +!ARAC/RO21=0.0 +! +!ARAC/RO25=0.0 +! +!ARAC/WC_O3=0.0 +! +!ARAC/WC_H2O2=0.0 +! +!ARAC/WC_NO=0.0 +! +!ARAC/WC_NO2=0.0 +! +!ARAC/WC_NO3=0.0 +! +!ARAC/WC_N2O5=0.0 +! +!ARAC/WC_HONO=0.0 +! +!ARAC/WC_HNO3=0.0 +! +!ARAC/WC_HNO4=0.0 +! +!ARAC/WC_NH3=0.0 +! +!ARAC/WC_OH=0.0 +! +!ARAC/WC_HO2=0.0 +! +!ARAC/WC_CO2=0.0 +! +!ARAC/WC_SO2=0.0 +! +!ARAC/WC_H2SO4=0.0 +! +!ARAC/WC_RO21=0.0 +! +!ARAC/WC_RO25=0.0 +! +!ARAC/WC_MEOH=0.0 +! +!ARAC/WC_ETOH=0.0 +! +!ARAC/WC_ALCH=0.0 +! +!ARAC/WC_HCHO=0.0 +! +!ARAC/WC_ALD2=0.0 +! +!ARAC/WC_GLY=0.0 +! +!ARAC/WC_MGLY=0.0 +! +!ARAC/WC_KETL=0.0 +! +!ARAC/WC_ORA1=0.0 +! +!ARAC/WC_ORA2=0.0 +! +!ARAC/WC_ACID=0.0 +! +!ARAC/WC_RP16=0.0 +! +!ARAC/WC_UR21=0.0 +! +!ARAC/WC_UR28=0.0 +! +!ARAC/WC_ACID2=0.0 +! +!ARAC/WC_ASO3=0.0 +! +!ARAC/WC_ASO4=0.0 +! +!ARAC/WC_ASO5=0.0 +! +!ARAC/WC_AHSO5=0.0 +! +!ARAC/WC_AHMS=0.0 +! +!ARAC/WR_O3=0.0 +! +!ARAC/WR_H2O2=0.0 +! +!ARAC/WR_NO=0.0 +! +!ARAC/WR_NO2=0.0 +! +!ARAC/WR_NO3=0.0 +! +!ARAC/WR_N2O5=0.0 +! +!ARAC/WR_HONO=0.0 +! +!ARAC/WR_HNO3=0.0 +! +!ARAC/WR_HNO4=0.0 +! +!ARAC/WR_NH3=0.0 +! +!ARAC/WR_OH=0.0 +! +!ARAC/WR_HO2=0.0 +! +!ARAC/WR_CO2=0.0 +! +!ARAC/WR_SO2=0.0 +! +!ARAC/WR_H2SO4=0.0 +! +!ARAC/WR_RO21=0.0 +! +!ARAC/WR_RO25=0.0 +! +!ARAC/WR_MEOH=0.0 +! +!ARAC/WR_ETOH=0.0 +! +!ARAC/WR_ALCH=0.0 +! +!ARAC/WR_HCHO=0.0 +! +!ARAC/WR_ALD2=0.0 +! +!ARAC/WR_GLY=0.0 +! +!ARAC/WR_MGLY=0.0 +! +!ARAC/WR_KETL=0.0 +! +!ARAC/WR_ORA1=0.0 +! +!ARAC/WR_ORA2=0.0 +! +!ARAC/WR_ACID=0.0 +! +!ARAC/WR_RP16=0.0 +! +!ARAC/WR_UR21=0.0 +! +!ARAC/WR_UR28=0.0 +! +!ARAC/WR_ACID2=0.0 +! +!ARAC/WR_ASO3=0.0 +! +!ARAC/WR_ASO4=0.0 +! +!ARAC/WR_ASO5=0.0 +! +!ARAC/WR_AHSO5=0.0 +! +!ARAC/WR_AHMS=0.0 +! +!PAH/NO=0.0 +! +!PAH/NO2=0.0 +! +!PAH/O3=0.0 +! +!PAH/HONO=0.0 +! +!PAH/HNO3=0.0 +! +!PAH/HNO4=0.0 +! +!PAH/N2O5=0.0 +! +!PAH/NO3=0.0 +! +!PAH/NH3=0.0 +! +!PAH/HO2=0.0 +! +!PAH/CO=0.0 +! +!PAH/H2O2=0.0 +! +!PAH/SO2=0.0 +! +!PAH/H2SO4=0.0 +! +!PAH/OH=-K092*<PAH> + PJAC(:,27,15)=-TPK%K092(:)*PCONC(:,27) +! +!PAH/ETHE=0.0 +! +!PAH/OLEL=0.0 +! +!PAH/OLEH=0.0 +! +!PAH/ALKL=0.0 +! +!PAH/ALKM=0.0 +! +!PAH/ALKH=0.0 +! +!PAH/AROH=0.0 +! +!PAH/AROL=0.0 +! +!PAH/AROO=0.0 +! +!PAH/ARAL=0.0 +! +!PAH/ARAC=0.0 +! +!PAH/PAH=-K092*<OH> + PJAC(:,27,27)=-TPK%K092(:)*PCONC(:,15) +! +!PAH/HCHO=0.0 +! +!PAH/ALD2=0.0 +! +!PAH/KETL=0.0 +! +!PAH/KETH=0.0 +! +!PAH/MEOH=0.0 +! +!PAH/ETOH=0.0 +! +!PAH/ALCH=0.0 +! +!PAH/ISOP=0.0 +! +!PAH/BIOL=0.0 +! +!PAH/BIOH=0.0 +! +!PAH/MTBE=0.0 +! +!PAH/MVK=0.0 +! +!PAH/MCR=0.0 +! +!PAH/MGLY=0.0 +! +!PAH/GLY=0.0 +! +!PAH/ORA1=0.0 +! +!PAH/ORA2=0.0 +! +!PAH/ACID=0.0 +! +!PAH/UR28=0.0 +! +!PAH/UR21=0.0 +! +!PAH/URG2=0.0 +! +!PAH/UR26=0.0 +! +!PAH/RPG2=0.0 +! +!PAH/RP18=0.0 +! +!PAH/RPG3=0.0 +! +!PAH/URG4=0.0 +! +!PAH/UR8=0.0 +! +!PAH/UR17=0.0 +! +!PAH/UR7=0.0 +! +!PAH/RPR3=0.0 +! +!PAH/URG6=0.0 +! +!PAH/UR22=0.0 +! +!PAH/URG7=0.0 +! +!PAH/RPR4=0.0 +! +!PAH/RPR7=0.0 +! +!PAH/RPG7=0.0 +! +!PAH/URG8=0.0 +! +!PAH/UR19=0.0 +! +!PAH/URG9=0.0 +! +!PAH/AP7=0.0 +! +!PAH/URG10=0.0 +! +!PAH/RPR1=0.0 +! +!PAH/RPR5=0.0 +! +!PAH/RPR8=0.0 +! +!PAH/RP10=0.0 +! +!PAH/RP11=0.0 +! +!PAH/RP16=0.0 +! +!PAH/RPRL=0.0 +! +!PAH/APAN=0.0 +! +!PAH/PAN1=0.0 +! +!PAH/PAN2=0.0 +! +!PAH/PAN3=0.0 +! +!PAH/PAN4=0.0 +! +!PAH/PAN6=0.0 +! +!PAH/PAN7=0.0 +! +!PAH/PAN8=0.0 +! +!PAH/PN10=0.0 +! +!PAH/RO2T=0.0 +! +!PAH/RO21=0.0 +! +!PAH/RO25=0.0 +! +!PAH/WC_O3=0.0 +! +!PAH/WC_H2O2=0.0 +! +!PAH/WC_NO=0.0 +! +!PAH/WC_NO2=0.0 +! +!PAH/WC_NO3=0.0 +! +!PAH/WC_N2O5=0.0 +! +!PAH/WC_HONO=0.0 +! +!PAH/WC_HNO3=0.0 +! +!PAH/WC_HNO4=0.0 +! +!PAH/WC_NH3=0.0 +! +!PAH/WC_OH=0.0 +! +!PAH/WC_HO2=0.0 +! +!PAH/WC_CO2=0.0 +! +!PAH/WC_SO2=0.0 +! +!PAH/WC_H2SO4=0.0 +! +!PAH/WC_RO21=0.0 +! +!PAH/WC_RO25=0.0 +! +!PAH/WC_MEOH=0.0 +! +!PAH/WC_ETOH=0.0 +! +!PAH/WC_ALCH=0.0 +! +!PAH/WC_HCHO=0.0 +! +!PAH/WC_ALD2=0.0 +! +!PAH/WC_GLY=0.0 +! +!PAH/WC_MGLY=0.0 +! +!PAH/WC_KETL=0.0 +! +!PAH/WC_ORA1=0.0 +! +!PAH/WC_ORA2=0.0 +! +!PAH/WC_ACID=0.0 +! +!PAH/WC_RP16=0.0 +! +!PAH/WC_UR21=0.0 +! +!PAH/WC_UR28=0.0 +! +!PAH/WC_ACID2=0.0 +! +!PAH/WC_ASO3=0.0 +! +!PAH/WC_ASO4=0.0 +! +!PAH/WC_ASO5=0.0 +! +!PAH/WC_AHSO5=0.0 +! +!PAH/WC_AHMS=0.0 +! +!PAH/WR_O3=0.0 +! +!PAH/WR_H2O2=0.0 +! +!PAH/WR_NO=0.0 +! +!PAH/WR_NO2=0.0 +! +!PAH/WR_NO3=0.0 +! +!PAH/WR_N2O5=0.0 +! +!PAH/WR_HONO=0.0 +! +!PAH/WR_HNO3=0.0 +! +!PAH/WR_HNO4=0.0 +! +!PAH/WR_NH3=0.0 +! +!PAH/WR_OH=0.0 +! +!PAH/WR_HO2=0.0 +! +!PAH/WR_CO2=0.0 +! +!PAH/WR_SO2=0.0 +! +!PAH/WR_H2SO4=0.0 +! +!PAH/WR_RO21=0.0 +! +!PAH/WR_RO25=0.0 +! +!PAH/WR_MEOH=0.0 +! +!PAH/WR_ETOH=0.0 +! +!PAH/WR_ALCH=0.0 +! +!PAH/WR_HCHO=0.0 +! +!PAH/WR_ALD2=0.0 +! +!PAH/WR_GLY=0.0 +! +!PAH/WR_MGLY=0.0 +! +!PAH/WR_KETL=0.0 +! +!PAH/WR_ORA1=0.0 +! +!PAH/WR_ORA2=0.0 +! +!PAH/WR_ACID=0.0 +! +!PAH/WR_RP16=0.0 +! +!PAH/WR_UR21=0.0 +! +!PAH/WR_UR28=0.0 +! +!PAH/WR_ACID2=0.0 +! +!PAH/WR_ASO3=0.0 +! +!PAH/WR_ASO4=0.0 +! +!PAH/WR_ASO5=0.0 +! +!PAH/WR_AHSO5=0.0 +! +!PAH/WR_AHMS=0.0 +! +!HCHO/NO=+K110*<RO21>+K113*<RO22>+K116*<RO23>+K119*<RO24>+TPK%CF6*K150*<RO29>+K +!153*<RO210>+K156*<RO211>+K159*<RO212>+K162*<RO213>+TPK%CF10*K171*<RO215>+K183* +!<RO219>+K285*<RO249>+K291*<RO251>+K294*<RO252>+K297*<RO253> + PJAC(:,28,1)=+TPK%K110(:)*PCONC(:,86)+TPK%K113(:)*TPK%RO22(:)+TPK%K116(:)*TPK%& +&RO23(:)+TPK%K119(:)*TPK%RO24(:)+TPK%CF6*TPK%K150(:)*TPK%RO29(:)+TPK%K153(:)*TP& +&K%RO210(:)+TPK%K156(:)*TPK%RO211(:)+TPK%K159(:)*TPK%RO212(:)+TPK%K162(:)*TPK%R& +&O213(:)+TPK%CF10*TPK%K171(:)*TPK%RO215(:)+TPK%K183(:)*TPK%RO219(:)+TPK%K285(:)& +&*TPK%RO249(:)+TPK%K291(:)*TPK%RO251(:)+TPK%K294(:)*TPK%RO252(:)+TPK%K297(:)*TP& +&K%RO253(:) +! +!HCHO/NO2=0.0 +! +!HCHO/O3=+0.5*K051*<ETHE>+0.5*K056*<OLEL>+0.5*K066*<ISOP>+0.5*K076*<OLEH>+0.5*K +!281*<MVK>+0.5*K282*<MCR> + PJAC(:,28,3)=+0.5*TPK%K051(:)*PCONC(:,16)+0.5*TPK%K056(:)*PCONC(:,17)+0.5*TPK%& +&K066(:)*PCONC(:,35)+0.5*TPK%K076(:)*PCONC(:,18)+0.5*TPK%K281(:)*PCONC(:,39)+0.& +&5*TPK%K282(:)*PCONC(:,40) +! +!HCHO/HONO=0.0 +! +!HCHO/HNO3=0.0 +! +!HCHO/HNO4=0.0 +! +!HCHO/N2O5=0.0 +! +!HCHO/NO3=-K047*<HCHO> + PJAC(:,28,8)=-TPK%K047(:)*PCONC(:,28) +! +!HCHO/NH3=0.0 +! +!HCHO/HO2=+K112*<RO21>+K115*<RO22>+K118*<RO23>+K121*<RO24>+K152*<RO29>+K155*<RO +!210>+K158*<RO211>+K161*<RO212>+K164*<RO213>+TPK%CF14*K173*<RO215>+K185*<RO219> +!+K287*<RO249>+K292*<RO251>+K295*<RO252>+K298*<RO253> + PJAC(:,28,10)=+TPK%K112(:)*PCONC(:,86)+TPK%K115(:)*TPK%RO22(:)+TPK%K118(:)*TPK& +&%RO23(:)+TPK%K121(:)*TPK%RO24(:)+TPK%K152(:)*TPK%RO29(:)+TPK%K155(:)*TPK%RO210& +&(:)+TPK%K158(:)*TPK%RO211(:)+TPK%K161(:)*TPK%RO212(:)+TPK%K164(:)*TPK%RO213(:)& +&+TPK%CF14*TPK%K173(:)*TPK%RO215(:)+TPK%K185(:)*TPK%RO219(:)+TPK%K287(:)*TPK%RO& +&249(:)+TPK%K292(:)*TPK%RO251(:)+TPK%K295(:)*TPK%RO252(:)+TPK%K298(:)*TPK%RO253& +&(:) +! +!HCHO/CO=0.0 +! +!HCHO/H2O2=0.0 +! +!HCHO/SO2=0.0 +! +!HCHO/H2SO4=0.0 +! +!HCHO/OH=-K046*<HCHO>+K048*<MEOH> + PJAC(:,28,15)=-TPK%K046(:)*PCONC(:,28)+TPK%K048(:)*PCONC(:,32) +! +!HCHO/ETHE=+0.5*K051*<O3> + PJAC(:,28,16)=+0.5*TPK%K051(:)*PCONC(:,3) +! +!HCHO/OLEL=+0.5*K056*<O3> + PJAC(:,28,17)=+0.5*TPK%K056(:)*PCONC(:,3) +! +!HCHO/OLEH=+0.5*K076*<O3> + PJAC(:,28,18)=+0.5*TPK%K076(:)*PCONC(:,3) +! +!HCHO/ALKL=0.0 +! +!HCHO/ALKM=0.0 +! +!HCHO/ALKH=0.0 +! +!HCHO/AROH=0.0 +! +!HCHO/AROL=0.0 +! +!HCHO/AROO=0.0 +! +!HCHO/ARAL=0.0 +! +!HCHO/ARAC=0.0 +! +!HCHO/PAH=0.0 +! +!HCHO/HCHO=-K044-K045-K046*<OH>-K047*<NO3>-KTC21-KTR21 + PJAC(:,28,28)=-TPK%K044(:)-TPK%K045(:)-TPK%K046(:)*PCONC(:,15)-TPK%K047(:)*PCO& +&NC(:,8)-TPK%KTC21(:)-TPK%KTR21(:) +! +!HCHO/ALD2=0.0 +! +!HCHO/KETL=0.0 +! +!HCHO/KETH=0.0 +! +!HCHO/MEOH=+K048*<OH> + PJAC(:,28,32)=+TPK%K048(:)*PCONC(:,15) +! +!HCHO/ETOH=0.0 +! +!HCHO/ALCH=0.0 +! +!HCHO/ISOP=+0.5*K066*<O3> + PJAC(:,28,35)=+0.5*TPK%K066(:)*PCONC(:,3) +! +!HCHO/BIOL=0.0 +! +!HCHO/BIOH=0.0 +! +!HCHO/MTBE=0.0 +! +!HCHO/MVK=+0.5*K281*<O3> + PJAC(:,28,39)=+0.5*TPK%K281(:)*PCONC(:,3) +! +!HCHO/MCR=+0.5*K282*<O3> + PJAC(:,28,40)=+0.5*TPK%K282(:)*PCONC(:,3) +! +!HCHO/MGLY=0.0 +! +!HCHO/GLY=0.0 +! +!HCHO/ORA1=0.0 +! +!HCHO/ORA2=0.0 +! +!HCHO/ACID=0.0 +! +!HCHO/UR28=0.0 +! +!HCHO/UR21=0.0 +! +!HCHO/URG2=0.0 +! +!HCHO/UR26=0.0 +! +!HCHO/RPG2=0.0 +! +!HCHO/RP18=0.0 +! +!HCHO/RPG3=0.0 +! +!HCHO/URG4=0.0 +! +!HCHO/UR8=0.0 +! +!HCHO/UR17=0.0 +! +!HCHO/UR7=0.0 +! +!HCHO/RPR3=0.0 +! +!HCHO/URG6=0.0 +! +!HCHO/UR22=0.0 +! +!HCHO/URG7=0.0 +! +!HCHO/RPR4=0.0 +! +!HCHO/RPR7=0.0 +! +!HCHO/RPG7=0.0 +! +!HCHO/URG8=0.0 +! +!HCHO/UR19=0.0 +! +!HCHO/URG9=0.0 +! +!HCHO/AP7=0.0 +! +!HCHO/URG10=0.0 +! +!HCHO/RPR1=0.0 +! +!HCHO/RPR5=0.0 +! +!HCHO/RPR8=0.0 +! +!HCHO/RP10=0.0 +! +!HCHO/RP11=0.0 +! +!HCHO/RP16=0.0 +! +!HCHO/RPRL=0.0 +! +!HCHO/APAN=0.0 +! +!HCHO/PAN1=0.0 +! +!HCHO/PAN2=0.0 +! +!HCHO/PAN3=0.0 +! +!HCHO/PAN4=0.0 +! +!HCHO/PAN6=0.0 +! +!HCHO/PAN7=0.0 +! +!HCHO/PAN8=0.0 +! +!HCHO/PN10=0.0 +! +!HCHO/RO2T=+K111*<RO21>+K114*<RO22>+K117*<RO23>+K120*<RO24>+K151*<RO29>+K154*<R +!O210>+K157*<RO211>+K160*<RO212>+K163*<RO213>+TPK%CF14*K172*<RO215>+K184*<RO219 +!>+K286*<RO249>+K293*<RO251>+K296*<RO252>+K299*<RO253> + PJAC(:,28,85)=+TPK%K111(:)*PCONC(:,86)+TPK%K114(:)*TPK%RO22(:)+TPK%K117(:)*TPK& +&%RO23(:)+TPK%K120(:)*TPK%RO24(:)+TPK%K151(:)*TPK%RO29(:)+TPK%K154(:)*TPK%RO210& +&(:)+TPK%K157(:)*TPK%RO211(:)+TPK%K160(:)*TPK%RO212(:)+TPK%K163(:)*TPK%RO213(:)& +&+TPK%CF14*TPK%K172(:)*TPK%RO215(:)+TPK%K184(:)*TPK%RO219(:)+TPK%K286(:)*TPK%RO& +&249(:)+TPK%K293(:)*TPK%RO251(:)+TPK%K296(:)*TPK%RO252(:)+TPK%K299(:)*TPK%RO253& +&(:) +! +!HCHO/RO21=+K110*<NO>+K111*<RO2T>+K112*<HO2> + PJAC(:,28,86)=+TPK%K110(:)*PCONC(:,1)+TPK%K111(:)*PCONC(:,85)+TPK%K112(:)*PCON& +&C(:,10) +! +!HCHO/RO25=0.0 +! +!HCHO/WC_O3=0.0 +! +!HCHO/WC_H2O2=0.0 +! +!HCHO/WC_NO=0.0 +! +!HCHO/WC_NO2=0.0 +! +!HCHO/WC_NO3=0.0 +! +!HCHO/WC_N2O5=0.0 +! +!HCHO/WC_HONO=0.0 +! +!HCHO/WC_HNO3=0.0 +! +!HCHO/WC_HNO4=0.0 +! +!HCHO/WC_NH3=0.0 +! +!HCHO/WC_OH=0.0 +! +!HCHO/WC_HO2=0.0 +! +!HCHO/WC_CO2=0.0 +! +!HCHO/WC_SO2=0.0 +! +!HCHO/WC_H2SO4=0.0 +! +!HCHO/WC_RO21=0.0 +! +!HCHO/WC_RO25=0.0 +! +!HCHO/WC_MEOH=0.0 +! +!HCHO/WC_ETOH=0.0 +! +!HCHO/WC_ALCH=0.0 +! +!HCHO/WC_HCHO=+KTC52 + PJAC(:,28,108)=+TPK%KTC52(:) +! +!HCHO/WC_ALD2=0.0 +! +!HCHO/WC_GLY=0.0 +! +!HCHO/WC_MGLY=0.0 +! +!HCHO/WC_KETL=0.0 +! +!HCHO/WC_ORA1=0.0 +! +!HCHO/WC_ORA2=0.0 +! +!HCHO/WC_ACID=0.0 +! +!HCHO/WC_RP16=0.0 +! +!HCHO/WC_UR21=0.0 +! +!HCHO/WC_UR28=0.0 +! +!HCHO/WC_ACID2=0.0 +! +!HCHO/WC_ASO3=0.0 +! +!HCHO/WC_ASO4=0.0 +! +!HCHO/WC_ASO5=0.0 +! +!HCHO/WC_AHSO5=0.0 +! +!HCHO/WC_AHMS=0.0 +! +!HCHO/WR_O3=0.0 +! +!HCHO/WR_H2O2=0.0 +! +!HCHO/WR_NO=0.0 +! +!HCHO/WR_NO2=0.0 +! +!HCHO/WR_NO3=0.0 +! +!HCHO/WR_N2O5=0.0 +! +!HCHO/WR_HONO=0.0 +! +!HCHO/WR_HNO3=0.0 +! +!HCHO/WR_HNO4=0.0 +! +!HCHO/WR_NH3=0.0 +! +!HCHO/WR_OH=0.0 +! +!HCHO/WR_HO2=0.0 +! +!HCHO/WR_CO2=0.0 +! +!HCHO/WR_SO2=0.0 +! +!HCHO/WR_H2SO4=0.0 +! +!HCHO/WR_RO21=0.0 +! +!HCHO/WR_RO25=0.0 +! +!HCHO/WR_MEOH=0.0 +! +!HCHO/WR_ETOH=0.0 +! +!HCHO/WR_ALCH=0.0 +! +!HCHO/WR_HCHO=+KTR52 + PJAC(:,28,145)=+TPK%KTR52(:) +! +!HCHO/WR_ALD2=0.0 +! +!HCHO/WR_GLY=0.0 +! +!HCHO/WR_MGLY=0.0 +! +!HCHO/WR_KETL=0.0 +! +!HCHO/WR_ORA1=0.0 +! +!HCHO/WR_ORA2=0.0 +! +!HCHO/WR_ACID=0.0 +! +!HCHO/WR_RP16=0.0 +! +!HCHO/WR_UR21=0.0 +! +!HCHO/WR_UR28=0.0 +! +!HCHO/WR_ACID2=0.0 +! +!HCHO/WR_ASO3=0.0 +! +!HCHO/WR_ASO4=0.0 +! +!HCHO/WR_ASO5=0.0 +! +!HCHO/WR_AHSO5=0.0 +! +!HCHO/WR_AHMS=0.0 +! +!ALD2/NO=+K113*<RO22>+K116*<RO23>+TPK%CF4*K122*<RO25>+K144*<RO27>+TPK%CF9*K171* +!<RO215>+K174*<RO216> + PJAC(:,29,1)=+TPK%K113(:)*TPK%RO22(:)+TPK%K116(:)*TPK%RO23(:)+TPK%CF4*TPK%K122& +&(:)*PCONC(:,87)+TPK%K144(:)*TPK%RO27(:)+TPK%CF9*TPK%K171(:)*TPK%RO215(:)+TPK%K& +&174(:)*TPK%RO216(:) +! +!ALD2/NO2=0.0 +! +!ALD2/O3=+0.5*K056*<OLEL>+0.1*K281*<MVK> + PJAC(:,29,3)=+0.5*TPK%K056(:)*PCONC(:,17)+0.1*TPK%K281(:)*PCONC(:,39) +! +!ALD2/HONO=0.0 +! +!ALD2/HNO3=0.0 +! +!ALD2/HNO4=0.0 +! +!ALD2/N2O5=0.0 +! +!ALD2/NO3=-K061*<ALD2> + PJAC(:,29,8)=-TPK%K061(:)*PCONC(:,29) +! +!ALD2/NH3=0.0 +! +!ALD2/HO2=+K115*<RO22>+K118*<RO23>+K124*<RO25>+K146*<RO27>+TPK%CF13*K173*<RO215 +!>+K176*<RO216> + PJAC(:,29,10)=+TPK%K115(:)*TPK%RO22(:)+TPK%K118(:)*TPK%RO23(:)+TPK%K124(:)*PCO& +&NC(:,87)+TPK%K146(:)*TPK%RO27(:)+TPK%CF13*TPK%K173(:)*TPK%RO215(:)+TPK%K176(:)& +&*TPK%RO216(:) +! +!ALD2/CO=0.0 +! +!ALD2/H2O2=0.0 +! +!ALD2/SO2=0.0 +! +!ALD2/H2SO4=0.0 +! +!ALD2/OH=+TPK%CF1*K053*<ETOH>-K060*<ALD2> + PJAC(:,29,15)=+TPK%CF1*TPK%K053(:)*PCONC(:,33)-TPK%K060(:)*PCONC(:,29) +! +!ALD2/ETHE=0.0 +! +!ALD2/OLEL=+0.5*K056*<O3>+0.4*K057*<O> + PJAC(:,29,17)=+0.5*TPK%K056(:)*PCONC(:,3)+0.4*TPK%K057(:)*TPK%O(:) +! +!ALD2/OLEH=0.0 +! +!ALD2/ALKL=0.0 +! +!ALD2/ALKM=0.0 +! +!ALD2/ALKH=0.0 +! +!ALD2/AROH=0.0 +! +!ALD2/AROL=0.0 +! +!ALD2/AROO=0.0 +! +!ALD2/ARAL=0.0 +! +!ALD2/ARAC=0.0 +! +!ALD2/PAH=0.0 +! +!ALD2/HCHO=0.0 +! +!ALD2/ALD2=-K059-K060*<OH>-K061*<NO3>-KTC22-KTR22 + PJAC(:,29,29)=-TPK%K059(:)-TPK%K060(:)*PCONC(:,15)-TPK%K061(:)*PCONC(:,8)-TPK%& +&KTC22(:)-TPK%KTR22(:) +! +!ALD2/KETL=0.0 +! +!ALD2/KETH=0.0 +! +!ALD2/MEOH=0.0 +! +!ALD2/ETOH=+TPK%CF1*K053*<OH> + PJAC(:,29,33)=+TPK%CF1*TPK%K053(:)*PCONC(:,15) +! +!ALD2/ALCH=0.0 +! +!ALD2/ISOP=+0.075*K067*<O> + PJAC(:,29,35)=+0.075*TPK%K067(:)*TPK%O(:) +! +!ALD2/BIOL=0.0 +! +!ALD2/BIOH=0.0 +! +!ALD2/MTBE=0.0 +! +!ALD2/MVK=+0.1*K281*<O3> + PJAC(:,29,39)=+0.1*TPK%K281(:)*PCONC(:,3) +! +!ALD2/MCR=+0.85*K284*<O> + PJAC(:,29,40)=+0.85*TPK%K284(:)*TPK%O(:) +! +!ALD2/MGLY=0.0 +! +!ALD2/GLY=0.0 +! +!ALD2/ORA1=0.0 +! +!ALD2/ORA2=0.0 +! +!ALD2/ACID=0.0 +! +!ALD2/UR28=0.0 +! +!ALD2/UR21=0.0 +! +!ALD2/URG2=0.0 +! +!ALD2/UR26=0.0 +! +!ALD2/RPG2=0.0 +! +!ALD2/RP18=0.0 +! +!ALD2/RPG3=0.0 +! +!ALD2/URG4=0.0 +! +!ALD2/UR8=0.0 +! +!ALD2/UR17=0.0 +! +!ALD2/UR7=0.0 +! +!ALD2/RPR3=0.0 +! +!ALD2/URG6=0.0 +! +!ALD2/UR22=0.0 +! +!ALD2/URG7=0.0 +! +!ALD2/RPR4=0.0 +! +!ALD2/RPR7=0.0 +! +!ALD2/RPG7=0.0 +! +!ALD2/URG8=0.0 +! +!ALD2/UR19=0.0 +! +!ALD2/URG9=0.0 +! +!ALD2/AP7=0.0 +! +!ALD2/URG10=0.0 +! +!ALD2/RPR1=0.0 +! +!ALD2/RPR5=0.0 +! +!ALD2/RPR8=0.0 +! +!ALD2/RP10=0.0 +! +!ALD2/RP11=0.0 +! +!ALD2/RP16=0.0 +! +!ALD2/RPRL=0.0 +! +!ALD2/APAN=0.0 +! +!ALD2/PAN1=0.0 +! +!ALD2/PAN2=0.0 +! +!ALD2/PAN3=0.0 +! +!ALD2/PAN4=0.0 +! +!ALD2/PAN6=0.0 +! +!ALD2/PAN7=0.0 +! +!ALD2/PAN8=0.0 +! +!ALD2/PN10=0.0 +! +!ALD2/RO2T=+K114*<RO22>+K117*<RO23>+K123*<RO25>+K145*<RO27>+TPK%CF13*K172*<RO21 +!5>+K175*<RO216> + PJAC(:,29,85)=+TPK%K114(:)*TPK%RO22(:)+TPK%K117(:)*TPK%RO23(:)+TPK%K123(:)*PCO& +&NC(:,87)+TPK%K145(:)*TPK%RO27(:)+TPK%CF13*TPK%K172(:)*TPK%RO215(:)+TPK%K175(:)& +&*TPK%RO216(:) +! +!ALD2/RO21=0.0 +! +!ALD2/RO25=+TPK%CF4*K122*<NO>+K123*<RO2T>+K124*<HO2> + PJAC(:,29,87)=+TPK%CF4*TPK%K122(:)*PCONC(:,1)+TPK%K123(:)*PCONC(:,85)+TPK%K124& +&(:)*PCONC(:,10) +! +!ALD2/WC_O3=0.0 +! +!ALD2/WC_H2O2=0.0 +! +!ALD2/WC_NO=0.0 +! +!ALD2/WC_NO2=0.0 +! +!ALD2/WC_NO3=0.0 +! +!ALD2/WC_N2O5=0.0 +! +!ALD2/WC_HONO=0.0 +! +!ALD2/WC_HNO3=0.0 +! +!ALD2/WC_HNO4=0.0 +! +!ALD2/WC_NH3=0.0 +! +!ALD2/WC_OH=0.0 +! +!ALD2/WC_HO2=0.0 +! +!ALD2/WC_CO2=0.0 +! +!ALD2/WC_SO2=0.0 +! +!ALD2/WC_H2SO4=0.0 +! +!ALD2/WC_RO21=0.0 +! +!ALD2/WC_RO25=0.0 +! +!ALD2/WC_MEOH=0.0 +! +!ALD2/WC_ETOH=0.0 +! +!ALD2/WC_ALCH=0.0 +! +!ALD2/WC_HCHO=0.0 +! +!ALD2/WC_ALD2=+KTC53 + PJAC(:,29,109)=+TPK%KTC53(:) +! +!ALD2/WC_GLY=0.0 +! +!ALD2/WC_MGLY=0.0 +! +!ALD2/WC_KETL=0.0 +! +!ALD2/WC_ORA1=0.0 +! +!ALD2/WC_ORA2=0.0 +! +!ALD2/WC_ACID=0.0 +! +!ALD2/WC_RP16=0.0 +! +!ALD2/WC_UR21=0.0 +! +!ALD2/WC_UR28=0.0 +! +!ALD2/WC_ACID2=0.0 +! +!ALD2/WC_ASO3=0.0 +! +!ALD2/WC_ASO4=0.0 +! +!ALD2/WC_ASO5=0.0 +! +!ALD2/WC_AHSO5=0.0 +! +!ALD2/WC_AHMS=0.0 +! +!ALD2/WR_O3=0.0 +! +!ALD2/WR_H2O2=0.0 +! +!ALD2/WR_NO=0.0 +! +!ALD2/WR_NO2=0.0 +! +!ALD2/WR_NO3=0.0 +! +!ALD2/WR_N2O5=0.0 +! +!ALD2/WR_HONO=0.0 +! +!ALD2/WR_HNO3=0.0 +! +!ALD2/WR_HNO4=0.0 +! +!ALD2/WR_NH3=0.0 +! +!ALD2/WR_OH=0.0 +! +!ALD2/WR_HO2=0.0 +! +!ALD2/WR_CO2=0.0 +! +!ALD2/WR_SO2=0.0 +! +!ALD2/WR_H2SO4=0.0 +! +!ALD2/WR_RO21=0.0 +! +!ALD2/WR_RO25=0.0 +! +!ALD2/WR_MEOH=0.0 +! +!ALD2/WR_ETOH=0.0 +! +!ALD2/WR_ALCH=0.0 +! +!ALD2/WR_HCHO=0.0 +! +!ALD2/WR_ALD2=+KTR53 + PJAC(:,29,146)=+TPK%KTR53(:) +! +!ALD2/WR_GLY=0.0 +! +!ALD2/WR_MGLY=0.0 +! +!ALD2/WR_KETL=0.0 +! +!ALD2/WR_ORA1=0.0 +! +!ALD2/WR_ORA2=0.0 +! +!ALD2/WR_ACID=0.0 +! +!ALD2/WR_RP16=0.0 +! +!ALD2/WR_UR21=0.0 +! +!ALD2/WR_UR28=0.0 +! +!ALD2/WR_ACID2=0.0 +! +!ALD2/WR_ASO3=0.0 +! +!ALD2/WR_ASO4=0.0 +! +!ALD2/WR_ASO5=0.0 +! +!ALD2/WR_AHSO5=0.0 +! +!ALD2/WR_AHMS=0.0 +! +!KETL/NO=+TPK%CF11*K171*<RO215> + PJAC(:,30,1)=+TPK%CF11*TPK%K171(:)*TPK%RO215(:) +! +!KETL/NO2=0.0 +! +!KETL/O3=0.0 +! +!KETL/HONO=0.0 +! +!KETL/HNO3=0.0 +! +!KETL/HNO4=0.0 +! +!KETL/N2O5=0.0 +! +!KETL/NO3=0.0 +! +!KETL/NH3=0.0 +! +!KETL/HO2=+TPK%CF15*K173*<RO215> + PJAC(:,30,10)=+TPK%CF15*TPK%K173(:)*TPK%RO215(:) +! +!KETL/CO=0.0 +! +!KETL/H2O2=0.0 +! +!KETL/SO2=0.0 +! +!KETL/H2SO4=0.0 +! +!KETL/OH=-K062*<KETL> + PJAC(:,30,15)=-TPK%K062(:)*PCONC(:,30) +! +!KETL/ETHE=0.0 +! +!KETL/OLEL=0.0 +! +!KETL/OLEH=0.0 +! +!KETL/ALKL=0.0 +! +!KETL/ALKM=0.0 +! +!KETL/ALKH=0.0 +! +!KETL/AROH=0.0 +! +!KETL/AROL=0.0 +! +!KETL/AROO=0.0 +! +!KETL/ARAL=0.0 +! +!KETL/ARAC=0.0 +! +!KETL/PAH=0.0 +! +!KETL/HCHO=0.0 +! +!KETL/ALD2=0.0 +! +!KETL/KETL=-K062*<OH>-K063-KTC24-KTR24 + PJAC(:,30,30)=-TPK%K062(:)*PCONC(:,15)-TPK%K063(:)-TPK%KTC24(:)-TPK%KTR24(:) +! +!KETL/KETH=0.0 +! +!KETL/MEOH=0.0 +! +!KETL/ETOH=0.0 +! +!KETL/ALCH=0.0 +! +!KETL/ISOP=0.0 +! +!KETL/BIOL=0.0 +! +!KETL/BIOH=0.0 +! +!KETL/MTBE=0.0 +! +!KETL/MVK=+0.85*K283*<O> + PJAC(:,30,39)=+0.85*TPK%K283(:)*TPK%O(:) +! +!KETL/MCR=0.0 +! +!KETL/MGLY=0.0 +! +!KETL/GLY=0.0 +! +!KETL/ORA1=0.0 +! +!KETL/ORA2=0.0 +! +!KETL/ACID=0.0 +! +!KETL/UR28=0.0 +! +!KETL/UR21=0.0 +! +!KETL/URG2=0.0 +! +!KETL/UR26=0.0 +! +!KETL/RPG2=0.0 +! +!KETL/RP18=0.0 +! +!KETL/RPG3=0.0 +! +!KETL/URG4=0.0 +! +!KETL/UR8=0.0 +! +!KETL/UR17=0.0 +! +!KETL/UR7=0.0 +! +!KETL/RPR3=0.0 +! +!KETL/URG6=0.0 +! +!KETL/UR22=0.0 +! +!KETL/URG7=0.0 +! +!KETL/RPR4=0.0 +! +!KETL/RPR7=0.0 +! +!KETL/RPG7=0.0 +! +!KETL/URG8=0.0 +! +!KETL/UR19=0.0 +! +!KETL/URG9=0.0 +! +!KETL/AP7=0.0 +! +!KETL/URG10=0.0 +! +!KETL/RPR1=0.0 +! +!KETL/RPR5=0.0 +! +!KETL/RPR8=0.0 +! +!KETL/RP10=0.0 +! +!KETL/RP11=0.0 +! +!KETL/RP16=0.0 +! +!KETL/RPRL=0.0 +! +!KETL/APAN=0.0 +! +!KETL/PAN1=0.0 +! +!KETL/PAN2=0.0 +! +!KETL/PAN3=0.0 +! +!KETL/PAN4=0.0 +! +!KETL/PAN6=0.0 +! +!KETL/PAN7=0.0 +! +!KETL/PAN8=0.0 +! +!KETL/PN10=0.0 +! +!KETL/RO2T=+TPK%CF15*K172*<RO215> + PJAC(:,30,85)=+TPK%CF15*TPK%K172(:)*TPK%RO215(:) +! +!KETL/RO21=0.0 +! +!KETL/RO25=0.0 +! +!KETL/WC_O3=0.0 +! +!KETL/WC_H2O2=0.0 +! +!KETL/WC_NO=0.0 +! +!KETL/WC_NO2=0.0 +! +!KETL/WC_NO3=0.0 +! +!KETL/WC_N2O5=0.0 +! +!KETL/WC_HONO=0.0 +! +!KETL/WC_HNO3=0.0 +! +!KETL/WC_HNO4=0.0 +! +!KETL/WC_NH3=0.0 +! +!KETL/WC_OH=0.0 +! +!KETL/WC_HO2=0.0 +! +!KETL/WC_CO2=0.0 +! +!KETL/WC_SO2=0.0 +! +!KETL/WC_H2SO4=0.0 +! +!KETL/WC_RO21=0.0 +! +!KETL/WC_RO25=0.0 +! +!KETL/WC_MEOH=0.0 +! +!KETL/WC_ETOH=0.0 +! +!KETL/WC_ALCH=0.0 +! +!KETL/WC_HCHO=0.0 +! +!KETL/WC_ALD2=0.0 +! +!KETL/WC_GLY=0.0 +! +!KETL/WC_MGLY=0.0 +! +!KETL/WC_KETL=+KTC55 + PJAC(:,30,112)=+TPK%KTC55(:) +! +!KETL/WC_ORA1=0.0 +! +!KETL/WC_ORA2=0.0 +! +!KETL/WC_ACID=0.0 +! +!KETL/WC_RP16=0.0 +! +!KETL/WC_UR21=0.0 +! +!KETL/WC_UR28=0.0 +! +!KETL/WC_ACID2=0.0 +! +!KETL/WC_ASO3=0.0 +! +!KETL/WC_ASO4=0.0 +! +!KETL/WC_ASO5=0.0 +! +!KETL/WC_AHSO5=0.0 +! +!KETL/WC_AHMS=0.0 +! +!KETL/WR_O3=0.0 +! +!KETL/WR_H2O2=0.0 +! +!KETL/WR_NO=0.0 +! +!KETL/WR_NO2=0.0 +! +!KETL/WR_NO3=0.0 +! +!KETL/WR_N2O5=0.0 +! +!KETL/WR_HONO=0.0 +! +!KETL/WR_HNO3=0.0 +! +!KETL/WR_HNO4=0.0 +! +!KETL/WR_NH3=0.0 +! +!KETL/WR_OH=0.0 +! +!KETL/WR_HO2=0.0 +! +!KETL/WR_CO2=0.0 +! +!KETL/WR_SO2=0.0 +! +!KETL/WR_H2SO4=0.0 +! +!KETL/WR_RO21=0.0 +! +!KETL/WR_RO25=0.0 +! +!KETL/WR_MEOH=0.0 +! +!KETL/WR_ETOH=0.0 +! +!KETL/WR_ALCH=0.0 +! +!KETL/WR_HCHO=0.0 +! +!KETL/WR_ALD2=0.0 +! +!KETL/WR_GLY=0.0 +! +!KETL/WR_MGLY=0.0 +! +!KETL/WR_KETL=+KTR55 + PJAC(:,30,149)=+TPK%KTR55(:) +! +!KETL/WR_ORA1=0.0 +! +!KETL/WR_ORA2=0.0 +! +!KETL/WR_ACID=0.0 +! +!KETL/WR_RP16=0.0 +! +!KETL/WR_UR21=0.0 +! +!KETL/WR_UR28=0.0 +! +!KETL/WR_ACID2=0.0 +! +!KETL/WR_ASO3=0.0 +! +!KETL/WR_ASO4=0.0 +! +!KETL/WR_ASO5=0.0 +! +!KETL/WR_AHSO5=0.0 +! +!KETL/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ5 +! +SUBROUTINE SUBJ6 +! +!Indices 31 a 35 +! +! +!KETH/NO=0.0 +! +!KETH/NO2=0.0 +! +!KETH/O3=0.0 +! +!KETH/HONO=0.0 +! +!KETH/HNO3=0.0 +! +!KETH/HNO4=0.0 +! +!KETH/N2O5=0.0 +! +!KETH/NO3=0.0 +! +!KETH/NH3=0.0 +! +!KETH/HO2=0.0 +! +!KETH/CO=0.0 +! +!KETH/H2O2=0.0 +! +!KETH/SO2=0.0 +! +!KETH/H2SO4=0.0 +! +!KETH/OH=-K070*<KETH> + PJAC(:,31,15)=-TPK%K070(:)*PCONC(:,31) +! +!KETH/ETHE=0.0 +! +!KETH/OLEL=0.0 +! +!KETH/OLEH=0.0 +! +!KETH/ALKL=0.0 +! +!KETH/ALKM=0.0 +! +!KETH/ALKH=0.0 +! +!KETH/AROH=0.0 +! +!KETH/AROL=0.0 +! +!KETH/AROO=0.0 +! +!KETH/ARAL=0.0 +! +!KETH/ARAC=0.0 +! +!KETH/PAH=0.0 +! +!KETH/HCHO=0.0 +! +!KETH/ALD2=0.0 +! +!KETH/KETL=0.0 +! +!KETH/KETH=-K070*<OH>-K071 + PJAC(:,31,31)=-TPK%K070(:)*PCONC(:,15)-TPK%K071(:) +! +!KETH/MEOH=0.0 +! +!KETH/ETOH=0.0 +! +!KETH/ALCH=0.0 +! +!KETH/ISOP=0.0 +! +!KETH/BIOL=0.0 +! +!KETH/BIOH=0.0 +! +!KETH/MTBE=0.0 +! +!KETH/MVK=0.0 +! +!KETH/MCR=0.0 +! +!KETH/MGLY=0.0 +! +!KETH/GLY=0.0 +! +!KETH/ORA1=0.0 +! +!KETH/ORA2=0.0 +! +!KETH/ACID=0.0 +! +!KETH/UR28=0.0 +! +!KETH/UR21=0.0 +! +!KETH/URG2=0.0 +! +!KETH/UR26=0.0 +! +!KETH/RPG2=0.0 +! +!KETH/RP18=0.0 +! +!KETH/RPG3=0.0 +! +!KETH/URG4=0.0 +! +!KETH/UR8=0.0 +! +!KETH/UR17=0.0 +! +!KETH/UR7=0.0 +! +!KETH/RPR3=0.0 +! +!KETH/URG6=0.0 +! +!KETH/UR22=0.0 +! +!KETH/URG7=0.0 +! +!KETH/RPR4=0.0 +! +!KETH/RPR7=0.0 +! +!KETH/RPG7=0.0 +! +!KETH/URG8=0.0 +! +!KETH/UR19=0.0 +! +!KETH/URG9=0.0 +! +!KETH/AP7=0.0 +! +!KETH/URG10=0.0 +! +!KETH/RPR1=0.0 +! +!KETH/RPR5=0.0 +! +!KETH/RPR8=0.0 +! +!KETH/RP10=0.0 +! +!KETH/RP11=0.0 +! +!KETH/RP16=0.0 +! +!KETH/RPRL=0.0 +! +!KETH/APAN=0.0 +! +!KETH/PAN1=0.0 +! +!KETH/PAN2=0.0 +! +!KETH/PAN3=0.0 +! +!KETH/PAN4=0.0 +! +!KETH/PAN6=0.0 +! +!KETH/PAN7=0.0 +! +!KETH/PAN8=0.0 +! +!KETH/PN10=0.0 +! +!KETH/RO2T=0.0 +! +!KETH/RO21=0.0 +! +!KETH/RO25=0.0 +! +!KETH/WC_O3=0.0 +! +!KETH/WC_H2O2=0.0 +! +!KETH/WC_NO=0.0 +! +!KETH/WC_NO2=0.0 +! +!KETH/WC_NO3=0.0 +! +!KETH/WC_N2O5=0.0 +! +!KETH/WC_HONO=0.0 +! +!KETH/WC_HNO3=0.0 +! +!KETH/WC_HNO4=0.0 +! +!KETH/WC_NH3=0.0 +! +!KETH/WC_OH=0.0 +! +!KETH/WC_HO2=0.0 +! +!KETH/WC_CO2=0.0 +! +!KETH/WC_SO2=0.0 +! +!KETH/WC_H2SO4=0.0 +! +!KETH/WC_RO21=0.0 +! +!KETH/WC_RO25=0.0 +! +!KETH/WC_MEOH=0.0 +! +!KETH/WC_ETOH=0.0 +! +!KETH/WC_ALCH=0.0 +! +!KETH/WC_HCHO=0.0 +! +!KETH/WC_ALD2=0.0 +! +!KETH/WC_GLY=0.0 +! +!KETH/WC_MGLY=0.0 +! +!KETH/WC_KETL=0.0 +! +!KETH/WC_ORA1=0.0 +! +!KETH/WC_ORA2=0.0 +! +!KETH/WC_ACID=0.0 +! +!KETH/WC_RP16=0.0 +! +!KETH/WC_UR21=0.0 +! +!KETH/WC_UR28=0.0 +! +!KETH/WC_ACID2=0.0 +! +!KETH/WC_ASO3=0.0 +! +!KETH/WC_ASO4=0.0 +! +!KETH/WC_ASO5=0.0 +! +!KETH/WC_AHSO5=0.0 +! +!KETH/WC_AHMS=0.0 +! +!KETH/WR_O3=0.0 +! +!KETH/WR_H2O2=0.0 +! +!KETH/WR_NO=0.0 +! +!KETH/WR_NO2=0.0 +! +!KETH/WR_NO3=0.0 +! +!KETH/WR_N2O5=0.0 +! +!KETH/WR_HONO=0.0 +! +!KETH/WR_HNO3=0.0 +! +!KETH/WR_HNO4=0.0 +! +!KETH/WR_NH3=0.0 +! +!KETH/WR_OH=0.0 +! +!KETH/WR_HO2=0.0 +! +!KETH/WR_CO2=0.0 +! +!KETH/WR_SO2=0.0 +! +!KETH/WR_H2SO4=0.0 +! +!KETH/WR_RO21=0.0 +! +!KETH/WR_RO25=0.0 +! +!KETH/WR_MEOH=0.0 +! +!KETH/WR_ETOH=0.0 +! +!KETH/WR_ALCH=0.0 +! +!KETH/WR_HCHO=0.0 +! +!KETH/WR_ALD2=0.0 +! +!KETH/WR_GLY=0.0 +! +!KETH/WR_MGLY=0.0 +! +!KETH/WR_KETL=0.0 +! +!KETH/WR_ORA1=0.0 +! +!KETH/WR_ORA2=0.0 +! +!KETH/WR_ACID=0.0 +! +!KETH/WR_RP16=0.0 +! +!KETH/WR_UR21=0.0 +! +!KETH/WR_UR28=0.0 +! +!KETH/WR_ACID2=0.0 +! +!KETH/WR_ASO3=0.0 +! +!KETH/WR_ASO4=0.0 +! +!KETH/WR_ASO5=0.0 +! +!KETH/WR_AHSO5=0.0 +! +!KETH/WR_AHMS=0.0 +! +!MEOH/NO=0.0 +! +!MEOH/NO2=0.0 +! +!MEOH/O3=0.0 +! +!MEOH/HONO=0.0 +! +!MEOH/HNO3=0.0 +! +!MEOH/HNO4=0.0 +! +!MEOH/N2O5=0.0 +! +!MEOH/NO3=0.0 +! +!MEOH/NH3=0.0 +! +!MEOH/HO2=0.0 +! +!MEOH/CO=0.0 +! +!MEOH/H2O2=0.0 +! +!MEOH/SO2=0.0 +! +!MEOH/H2SO4=0.0 +! +!MEOH/OH=-K048*<MEOH> + PJAC(:,32,15)=-TPK%K048(:)*PCONC(:,32) +! +!MEOH/ETHE=0.0 +! +!MEOH/OLEL=0.0 +! +!MEOH/OLEH=0.0 +! +!MEOH/ALKL=0.0 +! +!MEOH/ALKM=0.0 +! +!MEOH/ALKH=0.0 +! +!MEOH/AROH=0.0 +! +!MEOH/AROL=0.0 +! +!MEOH/AROO=0.0 +! +!MEOH/ARAL=0.0 +! +!MEOH/ARAC=0.0 +! +!MEOH/PAH=0.0 +! +!MEOH/HCHO=0.0 +! +!MEOH/ALD2=0.0 +! +!MEOH/KETL=0.0 +! +!MEOH/KETH=0.0 +! +!MEOH/MEOH=-K048*<OH>-KTC18-KTR18 + PJAC(:,32,32)=-TPK%K048(:)*PCONC(:,15)-TPK%KTC18(:)-TPK%KTR18(:) +! +!MEOH/ETOH=0.0 +! +!MEOH/ALCH=0.0 +! +!MEOH/ISOP=0.0 +! +!MEOH/BIOL=0.0 +! +!MEOH/BIOH=0.0 +! +!MEOH/MTBE=0.0 +! +!MEOH/MVK=0.0 +! +!MEOH/MCR=0.0 +! +!MEOH/MGLY=0.0 +! +!MEOH/GLY=0.0 +! +!MEOH/ORA1=0.0 +! +!MEOH/ORA2=0.0 +! +!MEOH/ACID=0.0 +! +!MEOH/UR28=0.0 +! +!MEOH/UR21=0.0 +! +!MEOH/URG2=0.0 +! +!MEOH/UR26=0.0 +! +!MEOH/RPG2=0.0 +! +!MEOH/RP18=0.0 +! +!MEOH/RPG3=0.0 +! +!MEOH/URG4=0.0 +! +!MEOH/UR8=0.0 +! +!MEOH/UR17=0.0 +! +!MEOH/UR7=0.0 +! +!MEOH/RPR3=0.0 +! +!MEOH/URG6=0.0 +! +!MEOH/UR22=0.0 +! +!MEOH/URG7=0.0 +! +!MEOH/RPR4=0.0 +! +!MEOH/RPR7=0.0 +! +!MEOH/RPG7=0.0 +! +!MEOH/URG8=0.0 +! +!MEOH/UR19=0.0 +! +!MEOH/URG9=0.0 +! +!MEOH/AP7=0.0 +! +!MEOH/URG10=0.0 +! +!MEOH/RPR1=0.0 +! +!MEOH/RPR5=0.0 +! +!MEOH/RPR8=0.0 +! +!MEOH/RP10=0.0 +! +!MEOH/RP11=0.0 +! +!MEOH/RP16=0.0 +! +!MEOH/RPRL=0.0 +! +!MEOH/APAN=0.0 +! +!MEOH/PAN1=0.0 +! +!MEOH/PAN2=0.0 +! +!MEOH/PAN3=0.0 +! +!MEOH/PAN4=0.0 +! +!MEOH/PAN6=0.0 +! +!MEOH/PAN7=0.0 +! +!MEOH/PAN8=0.0 +! +!MEOH/PN10=0.0 +! +!MEOH/RO2T=0.0 +! +!MEOH/RO21=0.0 +! +!MEOH/RO25=0.0 +! +!MEOH/WC_O3=0.0 +! +!MEOH/WC_H2O2=0.0 +! +!MEOH/WC_NO=0.0 +! +!MEOH/WC_NO2=0.0 +! +!MEOH/WC_NO3=0.0 +! +!MEOH/WC_N2O5=0.0 +! +!MEOH/WC_HONO=0.0 +! +!MEOH/WC_HNO3=0.0 +! +!MEOH/WC_HNO4=0.0 +! +!MEOH/WC_NH3=0.0 +! +!MEOH/WC_OH=0.0 +! +!MEOH/WC_HO2=0.0 +! +!MEOH/WC_CO2=0.0 +! +!MEOH/WC_SO2=0.0 +! +!MEOH/WC_H2SO4=0.0 +! +!MEOH/WC_RO21=0.0 +! +!MEOH/WC_RO25=0.0 +! +!MEOH/WC_MEOH=+KTC49 + PJAC(:,32,105)=+TPK%KTC49(:) +! +!MEOH/WC_ETOH=0.0 +! +!MEOH/WC_ALCH=0.0 +! +!MEOH/WC_HCHO=0.0 +! +!MEOH/WC_ALD2=0.0 +! +!MEOH/WC_GLY=0.0 +! +!MEOH/WC_MGLY=0.0 +! +!MEOH/WC_KETL=0.0 +! +!MEOH/WC_ORA1=0.0 +! +!MEOH/WC_ORA2=0.0 +! +!MEOH/WC_ACID=0.0 +! +!MEOH/WC_RP16=0.0 +! +!MEOH/WC_UR21=0.0 +! +!MEOH/WC_UR28=0.0 +! +!MEOH/WC_ACID2=0.0 +! +!MEOH/WC_ASO3=0.0 +! +!MEOH/WC_ASO4=0.0 +! +!MEOH/WC_ASO5=0.0 +! +!MEOH/WC_AHSO5=0.0 +! +!MEOH/WC_AHMS=0.0 +! +!MEOH/WR_O3=0.0 +! +!MEOH/WR_H2O2=0.0 +! +!MEOH/WR_NO=0.0 +! +!MEOH/WR_NO2=0.0 +! +!MEOH/WR_NO3=0.0 +! +!MEOH/WR_N2O5=0.0 +! +!MEOH/WR_HONO=0.0 +! +!MEOH/WR_HNO3=0.0 +! +!MEOH/WR_HNO4=0.0 +! +!MEOH/WR_NH3=0.0 +! +!MEOH/WR_OH=0.0 +! +!MEOH/WR_HO2=0.0 +! +!MEOH/WR_CO2=0.0 +! +!MEOH/WR_SO2=0.0 +! +!MEOH/WR_H2SO4=0.0 +! +!MEOH/WR_RO21=0.0 +! +!MEOH/WR_RO25=0.0 +! +!MEOH/WR_MEOH=+KTR49 + PJAC(:,32,142)=+TPK%KTR49(:) +! +!MEOH/WR_ETOH=0.0 +! +!MEOH/WR_ALCH=0.0 +! +!MEOH/WR_HCHO=0.0 +! +!MEOH/WR_ALD2=0.0 +! +!MEOH/WR_GLY=0.0 +! +!MEOH/WR_MGLY=0.0 +! +!MEOH/WR_KETL=0.0 +! +!MEOH/WR_ORA1=0.0 +! +!MEOH/WR_ORA2=0.0 +! +!MEOH/WR_ACID=0.0 +! +!MEOH/WR_RP16=0.0 +! +!MEOH/WR_UR21=0.0 +! +!MEOH/WR_UR28=0.0 +! +!MEOH/WR_ACID2=0.0 +! +!MEOH/WR_ASO3=0.0 +! +!MEOH/WR_ASO4=0.0 +! +!MEOH/WR_ASO5=0.0 +! +!MEOH/WR_AHSO5=0.0 +! +!MEOH/WR_AHMS=0.0 +! +!ETOH/NO=0.0 +! +!ETOH/NO2=0.0 +! +!ETOH/O3=0.0 +! +!ETOH/HONO=0.0 +! +!ETOH/HNO3=0.0 +! +!ETOH/HNO4=0.0 +! +!ETOH/N2O5=0.0 +! +!ETOH/NO3=0.0 +! +!ETOH/NH3=0.0 +! +!ETOH/HO2=0.0 +! +!ETOH/CO=0.0 +! +!ETOH/H2O2=0.0 +! +!ETOH/SO2=0.0 +! +!ETOH/H2SO4=0.0 +! +!ETOH/OH=-K053*<ETOH> + PJAC(:,33,15)=-TPK%K053(:)*PCONC(:,33) +! +!ETOH/ETHE=0.0 +! +!ETOH/OLEL=0.0 +! +!ETOH/OLEH=0.0 +! +!ETOH/ALKL=0.0 +! +!ETOH/ALKM=0.0 +! +!ETOH/ALKH=0.0 +! +!ETOH/AROH=0.0 +! +!ETOH/AROL=0.0 +! +!ETOH/AROO=0.0 +! +!ETOH/ARAL=0.0 +! +!ETOH/ARAC=0.0 +! +!ETOH/PAH=0.0 +! +!ETOH/HCHO=0.0 +! +!ETOH/ALD2=0.0 +! +!ETOH/KETL=0.0 +! +!ETOH/KETH=0.0 +! +!ETOH/MEOH=0.0 +! +!ETOH/ETOH=-K053*<OH>-KTC19-KTR19 + PJAC(:,33,33)=-TPK%K053(:)*PCONC(:,15)-TPK%KTC19(:)-TPK%KTR19(:) +! +!ETOH/ALCH=0.0 +! +!ETOH/ISOP=0.0 +! +!ETOH/BIOL=0.0 +! +!ETOH/BIOH=0.0 +! +!ETOH/MTBE=0.0 +! +!ETOH/MVK=0.0 +! +!ETOH/MCR=0.0 +! +!ETOH/MGLY=0.0 +! +!ETOH/GLY=0.0 +! +!ETOH/ORA1=0.0 +! +!ETOH/ORA2=0.0 +! +!ETOH/ACID=0.0 +! +!ETOH/UR28=0.0 +! +!ETOH/UR21=0.0 +! +!ETOH/URG2=0.0 +! +!ETOH/UR26=0.0 +! +!ETOH/RPG2=0.0 +! +!ETOH/RP18=0.0 +! +!ETOH/RPG3=0.0 +! +!ETOH/URG4=0.0 +! +!ETOH/UR8=0.0 +! +!ETOH/UR17=0.0 +! +!ETOH/UR7=0.0 +! +!ETOH/RPR3=0.0 +! +!ETOH/URG6=0.0 +! +!ETOH/UR22=0.0 +! +!ETOH/URG7=0.0 +! +!ETOH/RPR4=0.0 +! +!ETOH/RPR7=0.0 +! +!ETOH/RPG7=0.0 +! +!ETOH/URG8=0.0 +! +!ETOH/UR19=0.0 +! +!ETOH/URG9=0.0 +! +!ETOH/AP7=0.0 +! +!ETOH/URG10=0.0 +! +!ETOH/RPR1=0.0 +! +!ETOH/RPR5=0.0 +! +!ETOH/RPR8=0.0 +! +!ETOH/RP10=0.0 +! +!ETOH/RP11=0.0 +! +!ETOH/RP16=0.0 +! +!ETOH/RPRL=0.0 +! +!ETOH/APAN=0.0 +! +!ETOH/PAN1=0.0 +! +!ETOH/PAN2=0.0 +! +!ETOH/PAN3=0.0 +! +!ETOH/PAN4=0.0 +! +!ETOH/PAN6=0.0 +! +!ETOH/PAN7=0.0 +! +!ETOH/PAN8=0.0 +! +!ETOH/PN10=0.0 +! +!ETOH/RO2T=0.0 +! +!ETOH/RO21=0.0 +! +!ETOH/RO25=0.0 +! +!ETOH/WC_O3=0.0 +! +!ETOH/WC_H2O2=0.0 +! +!ETOH/WC_NO=0.0 +! +!ETOH/WC_NO2=0.0 +! +!ETOH/WC_NO3=0.0 +! +!ETOH/WC_N2O5=0.0 +! +!ETOH/WC_HONO=0.0 +! +!ETOH/WC_HNO3=0.0 +! +!ETOH/WC_HNO4=0.0 +! +!ETOH/WC_NH3=0.0 +! +!ETOH/WC_OH=0.0 +! +!ETOH/WC_HO2=0.0 +! +!ETOH/WC_CO2=0.0 +! +!ETOH/WC_SO2=0.0 +! +!ETOH/WC_H2SO4=0.0 +! +!ETOH/WC_RO21=0.0 +! +!ETOH/WC_RO25=0.0 +! +!ETOH/WC_MEOH=0.0 +! +!ETOH/WC_ETOH=+KTC50 + PJAC(:,33,106)=+TPK%KTC50(:) +! +!ETOH/WC_ALCH=0.0 +! +!ETOH/WC_HCHO=0.0 +! +!ETOH/WC_ALD2=0.0 +! +!ETOH/WC_GLY=0.0 +! +!ETOH/WC_MGLY=0.0 +! +!ETOH/WC_KETL=0.0 +! +!ETOH/WC_ORA1=0.0 +! +!ETOH/WC_ORA2=0.0 +! +!ETOH/WC_ACID=0.0 +! +!ETOH/WC_RP16=0.0 +! +!ETOH/WC_UR21=0.0 +! +!ETOH/WC_UR28=0.0 +! +!ETOH/WC_ACID2=0.0 +! +!ETOH/WC_ASO3=0.0 +! +!ETOH/WC_ASO4=0.0 +! +!ETOH/WC_ASO5=0.0 +! +!ETOH/WC_AHSO5=0.0 +! +!ETOH/WC_AHMS=0.0 +! +!ETOH/WR_O3=0.0 +! +!ETOH/WR_H2O2=0.0 +! +!ETOH/WR_NO=0.0 +! +!ETOH/WR_NO2=0.0 +! +!ETOH/WR_NO3=0.0 +! +!ETOH/WR_N2O5=0.0 +! +!ETOH/WR_HONO=0.0 +! +!ETOH/WR_HNO3=0.0 +! +!ETOH/WR_HNO4=0.0 +! +!ETOH/WR_NH3=0.0 +! +!ETOH/WR_OH=0.0 +! +!ETOH/WR_HO2=0.0 +! +!ETOH/WR_CO2=0.0 +! +!ETOH/WR_SO2=0.0 +! +!ETOH/WR_H2SO4=0.0 +! +!ETOH/WR_RO21=0.0 +! +!ETOH/WR_RO25=0.0 +! +!ETOH/WR_MEOH=0.0 +! +!ETOH/WR_ETOH=+KTR50 + PJAC(:,33,143)=+TPK%KTR50(:) +! +!ETOH/WR_ALCH=0.0 +! +!ETOH/WR_HCHO=0.0 +! +!ETOH/WR_ALD2=0.0 +! +!ETOH/WR_GLY=0.0 +! +!ETOH/WR_MGLY=0.0 +! +!ETOH/WR_KETL=0.0 +! +!ETOH/WR_ORA1=0.0 +! +!ETOH/WR_ORA2=0.0 +! +!ETOH/WR_ACID=0.0 +! +!ETOH/WR_RP16=0.0 +! +!ETOH/WR_UR21=0.0 +! +!ETOH/WR_UR28=0.0 +! +!ETOH/WR_ACID2=0.0 +! +!ETOH/WR_ASO3=0.0 +! +!ETOH/WR_ASO4=0.0 +! +!ETOH/WR_ASO5=0.0 +! +!ETOH/WR_AHSO5=0.0 +! +!ETOH/WR_AHMS=0.0 +! +!ALCH/NO=0.0 +! +!ALCH/NO2=0.0 +! +!ALCH/O3=0.0 +! +!ALCH/HONO=0.0 +! +!ALCH/HNO3=0.0 +! +!ALCH/HNO4=0.0 +! +!ALCH/N2O5=0.0 +! +!ALCH/NO3=0.0 +! +!ALCH/NH3=0.0 +! +!ALCH/HO2=0.0 +! +!ALCH/CO=0.0 +! +!ALCH/H2O2=0.0 +! +!ALCH/SO2=0.0 +! +!ALCH/H2SO4=0.0 +! +!ALCH/OH=-K069*<ALCH> + PJAC(:,34,15)=-TPK%K069(:)*PCONC(:,34) +! +!ALCH/ETHE=0.0 +! +!ALCH/OLEL=0.0 +! +!ALCH/OLEH=0.0 +! +!ALCH/ALKL=0.0 +! +!ALCH/ALKM=0.0 +! +!ALCH/ALKH=0.0 +! +!ALCH/AROH=0.0 +! +!ALCH/AROL=0.0 +! +!ALCH/AROO=0.0 +! +!ALCH/ARAL=0.0 +! +!ALCH/ARAC=0.0 +! +!ALCH/PAH=0.0 +! +!ALCH/HCHO=0.0 +! +!ALCH/ALD2=0.0 +! +!ALCH/KETL=0.0 +! +!ALCH/KETH=0.0 +! +!ALCH/MEOH=0.0 +! +!ALCH/ETOH=0.0 +! +!ALCH/ALCH=-K069*<OH>-KTC20-KTR20 + PJAC(:,34,34)=-TPK%K069(:)*PCONC(:,15)-TPK%KTC20(:)-TPK%KTR20(:) +! +!ALCH/ISOP=0.0 +! +!ALCH/BIOL=0.0 +! +!ALCH/BIOH=0.0 +! +!ALCH/MTBE=0.0 +! +!ALCH/MVK=0.0 +! +!ALCH/MCR=0.0 +! +!ALCH/MGLY=0.0 +! +!ALCH/GLY=0.0 +! +!ALCH/ORA1=0.0 +! +!ALCH/ORA2=0.0 +! +!ALCH/ACID=0.0 +! +!ALCH/UR28=0.0 +! +!ALCH/UR21=0.0 +! +!ALCH/URG2=0.0 +! +!ALCH/UR26=0.0 +! +!ALCH/RPG2=0.0 +! +!ALCH/RP18=0.0 +! +!ALCH/RPG3=0.0 +! +!ALCH/URG4=0.0 +! +!ALCH/UR8=0.0 +! +!ALCH/UR17=0.0 +! +!ALCH/UR7=0.0 +! +!ALCH/RPR3=0.0 +! +!ALCH/URG6=0.0 +! +!ALCH/UR22=0.0 +! +!ALCH/URG7=0.0 +! +!ALCH/RPR4=0.0 +! +!ALCH/RPR7=0.0 +! +!ALCH/RPG7=0.0 +! +!ALCH/URG8=0.0 +! +!ALCH/UR19=0.0 +! +!ALCH/URG9=0.0 +! +!ALCH/AP7=0.0 +! +!ALCH/URG10=0.0 +! +!ALCH/RPR1=0.0 +! +!ALCH/RPR5=0.0 +! +!ALCH/RPR8=0.0 +! +!ALCH/RP10=0.0 +! +!ALCH/RP11=0.0 +! +!ALCH/RP16=0.0 +! +!ALCH/RPRL=0.0 +! +!ALCH/APAN=0.0 +! +!ALCH/PAN1=0.0 +! +!ALCH/PAN2=0.0 +! +!ALCH/PAN3=0.0 +! +!ALCH/PAN4=0.0 +! +!ALCH/PAN6=0.0 +! +!ALCH/PAN7=0.0 +! +!ALCH/PAN8=0.0 +! +!ALCH/PN10=0.0 +! +!ALCH/RO2T=0.0 +! +!ALCH/RO21=0.0 +! +!ALCH/RO25=0.0 +! +!ALCH/WC_O3=0.0 +! +!ALCH/WC_H2O2=0.0 +! +!ALCH/WC_NO=0.0 +! +!ALCH/WC_NO2=0.0 +! +!ALCH/WC_NO3=0.0 +! +!ALCH/WC_N2O5=0.0 +! +!ALCH/WC_HONO=0.0 +! +!ALCH/WC_HNO3=0.0 +! +!ALCH/WC_HNO4=0.0 +! +!ALCH/WC_NH3=0.0 +! +!ALCH/WC_OH=0.0 +! +!ALCH/WC_HO2=0.0 +! +!ALCH/WC_CO2=0.0 +! +!ALCH/WC_SO2=0.0 +! +!ALCH/WC_H2SO4=0.0 +! +!ALCH/WC_RO21=0.0 +! +!ALCH/WC_RO25=0.0 +! +!ALCH/WC_MEOH=0.0 +! +!ALCH/WC_ETOH=0.0 +! +!ALCH/WC_ALCH=+KTC51 + PJAC(:,34,107)=+TPK%KTC51(:) +! +!ALCH/WC_HCHO=0.0 +! +!ALCH/WC_ALD2=0.0 +! +!ALCH/WC_GLY=0.0 +! +!ALCH/WC_MGLY=0.0 +! +!ALCH/WC_KETL=0.0 +! +!ALCH/WC_ORA1=0.0 +! +!ALCH/WC_ORA2=0.0 +! +!ALCH/WC_ACID=0.0 +! +!ALCH/WC_RP16=0.0 +! +!ALCH/WC_UR21=0.0 +! +!ALCH/WC_UR28=0.0 +! +!ALCH/WC_ACID2=0.0 +! +!ALCH/WC_ASO3=0.0 +! +!ALCH/WC_ASO4=0.0 +! +!ALCH/WC_ASO5=0.0 +! +!ALCH/WC_AHSO5=0.0 +! +!ALCH/WC_AHMS=0.0 +! +!ALCH/WR_O3=0.0 +! +!ALCH/WR_H2O2=0.0 +! +!ALCH/WR_NO=0.0 +! +!ALCH/WR_NO2=0.0 +! +!ALCH/WR_NO3=0.0 +! +!ALCH/WR_N2O5=0.0 +! +!ALCH/WR_HONO=0.0 +! +!ALCH/WR_HNO3=0.0 +! +!ALCH/WR_HNO4=0.0 +! +!ALCH/WR_NH3=0.0 +! +!ALCH/WR_OH=0.0 +! +!ALCH/WR_HO2=0.0 +! +!ALCH/WR_CO2=0.0 +! +!ALCH/WR_SO2=0.0 +! +!ALCH/WR_H2SO4=0.0 +! +!ALCH/WR_RO21=0.0 +! +!ALCH/WR_RO25=0.0 +! +!ALCH/WR_MEOH=0.0 +! +!ALCH/WR_ETOH=0.0 +! +!ALCH/WR_ALCH=+KTR51 + PJAC(:,34,144)=+TPK%KTR51(:) +! +!ALCH/WR_HCHO=0.0 +! +!ALCH/WR_ALD2=0.0 +! +!ALCH/WR_GLY=0.0 +! +!ALCH/WR_MGLY=0.0 +! +!ALCH/WR_KETL=0.0 +! +!ALCH/WR_ORA1=0.0 +! +!ALCH/WR_ORA2=0.0 +! +!ALCH/WR_ACID=0.0 +! +!ALCH/WR_RP16=0.0 +! +!ALCH/WR_UR21=0.0 +! +!ALCH/WR_UR28=0.0 +! +!ALCH/WR_ACID2=0.0 +! +!ALCH/WR_ASO3=0.0 +! +!ALCH/WR_ASO4=0.0 +! +!ALCH/WR_ASO5=0.0 +! +!ALCH/WR_AHSO5=0.0 +! +!ALCH/WR_AHMS=0.0 +! +!ISOP/NO=0.0 +! +!ISOP/NO2=0.0 +! +!ISOP/O3=-K066*<ISOP> + PJAC(:,35,3)=-TPK%K066(:)*PCONC(:,35) +! +!ISOP/HONO=0.0 +! +!ISOP/HNO3=0.0 +! +!ISOP/HNO4=0.0 +! +!ISOP/N2O5=0.0 +! +!ISOP/NO3=-K065*<ISOP> + PJAC(:,35,8)=-TPK%K065(:)*PCONC(:,35) +! +!ISOP/NH3=0.0 +! +!ISOP/HO2=0.0 +! +!ISOP/CO=0.0 +! +!ISOP/H2O2=0.0 +! +!ISOP/SO2=0.0 +! +!ISOP/H2SO4=0.0 +! +!ISOP/OH=-K064*<ISOP> + PJAC(:,35,15)=-TPK%K064(:)*PCONC(:,35) +! +!ISOP/ETHE=0.0 +! +!ISOP/OLEL=0.0 +! +!ISOP/OLEH=0.0 +! +!ISOP/ALKL=0.0 +! +!ISOP/ALKM=0.0 +! +!ISOP/ALKH=0.0 +! +!ISOP/AROH=0.0 +! +!ISOP/AROL=0.0 +! +!ISOP/AROO=0.0 +! +!ISOP/ARAL=0.0 +! +!ISOP/ARAC=0.0 +! +!ISOP/PAH=0.0 +! +!ISOP/HCHO=0.0 +! +!ISOP/ALD2=0.0 +! +!ISOP/KETL=0.0 +! +!ISOP/KETH=0.0 +! +!ISOP/MEOH=0.0 +! +!ISOP/ETOH=0.0 +! +!ISOP/ALCH=0.0 +! +!ISOP/ISOP=-K064*<OH>-K065*<NO3>-K066*<O3>-K067*<O> + PJAC(:,35,35)=-TPK%K064(:)*PCONC(:,15)-TPK%K065(:)*PCONC(:,8)-TPK%K066(:)*PCON& +&C(:,3)-TPK%K067(:)*TPK%O(:) +! +!ISOP/BIOL=0.0 +! +!ISOP/BIOH=0.0 +! +!ISOP/MTBE=0.0 +! +!ISOP/MVK=0.0 +! +!ISOP/MCR=0.0 +! +!ISOP/MGLY=0.0 +! +!ISOP/GLY=0.0 +! +!ISOP/ORA1=0.0 +! +!ISOP/ORA2=0.0 +! +!ISOP/ACID=0.0 +! +!ISOP/UR28=0.0 +! +!ISOP/UR21=0.0 +! +!ISOP/URG2=0.0 +! +!ISOP/UR26=0.0 +! +!ISOP/RPG2=0.0 +! +!ISOP/RP18=0.0 +! +!ISOP/RPG3=0.0 +! +!ISOP/URG4=0.0 +! +!ISOP/UR8=0.0 +! +!ISOP/UR17=0.0 +! +!ISOP/UR7=0.0 +! +!ISOP/RPR3=0.0 +! +!ISOP/URG6=0.0 +! +!ISOP/UR22=0.0 +! +!ISOP/URG7=0.0 +! +!ISOP/RPR4=0.0 +! +!ISOP/RPR7=0.0 +! +!ISOP/RPG7=0.0 +! +!ISOP/URG8=0.0 +! +!ISOP/UR19=0.0 +! +!ISOP/URG9=0.0 +! +!ISOP/AP7=0.0 +! +!ISOP/URG10=0.0 +! +!ISOP/RPR1=0.0 +! +!ISOP/RPR5=0.0 +! +!ISOP/RPR8=0.0 +! +!ISOP/RP10=0.0 +! +!ISOP/RP11=0.0 +! +!ISOP/RP16=0.0 +! +!ISOP/RPRL=0.0 +! +!ISOP/APAN=0.0 +! +!ISOP/PAN1=0.0 +! +!ISOP/PAN2=0.0 +! +!ISOP/PAN3=0.0 +! +!ISOP/PAN4=0.0 +! +!ISOP/PAN6=0.0 +! +!ISOP/PAN7=0.0 +! +!ISOP/PAN8=0.0 +! +!ISOP/PN10=0.0 +! +!ISOP/RO2T=0.0 +! +!ISOP/RO21=0.0 +! +!ISOP/RO25=0.0 +! +!ISOP/WC_O3=0.0 +! +!ISOP/WC_H2O2=0.0 +! +!ISOP/WC_NO=0.0 +! +!ISOP/WC_NO2=0.0 +! +!ISOP/WC_NO3=0.0 +! +!ISOP/WC_N2O5=0.0 +! +!ISOP/WC_HONO=0.0 +! +!ISOP/WC_HNO3=0.0 +! +!ISOP/WC_HNO4=0.0 +! +!ISOP/WC_NH3=0.0 +! +!ISOP/WC_OH=0.0 +! +!ISOP/WC_HO2=0.0 +! +!ISOP/WC_CO2=0.0 +! +!ISOP/WC_SO2=0.0 +! +!ISOP/WC_H2SO4=0.0 +! +!ISOP/WC_RO21=0.0 +! +!ISOP/WC_RO25=0.0 +! +!ISOP/WC_MEOH=0.0 +! +!ISOP/WC_ETOH=0.0 +! +!ISOP/WC_ALCH=0.0 +! +!ISOP/WC_HCHO=0.0 +! +!ISOP/WC_ALD2=0.0 +! +!ISOP/WC_GLY=0.0 +! +!ISOP/WC_MGLY=0.0 +! +!ISOP/WC_KETL=0.0 +! +!ISOP/WC_ORA1=0.0 +! +!ISOP/WC_ORA2=0.0 +! +!ISOP/WC_ACID=0.0 +! +!ISOP/WC_RP16=0.0 +! +!ISOP/WC_UR21=0.0 +! +!ISOP/WC_UR28=0.0 +! +!ISOP/WC_ACID2=0.0 +! +!ISOP/WC_ASO3=0.0 +! +!ISOP/WC_ASO4=0.0 +! +!ISOP/WC_ASO5=0.0 +! +!ISOP/WC_AHSO5=0.0 +! +!ISOP/WC_AHMS=0.0 +! +!ISOP/WR_O3=0.0 +! +!ISOP/WR_H2O2=0.0 +! +!ISOP/WR_NO=0.0 +! +!ISOP/WR_NO2=0.0 +! +!ISOP/WR_NO3=0.0 +! +!ISOP/WR_N2O5=0.0 +! +!ISOP/WR_HONO=0.0 +! +!ISOP/WR_HNO3=0.0 +! +!ISOP/WR_HNO4=0.0 +! +!ISOP/WR_NH3=0.0 +! +!ISOP/WR_OH=0.0 +! +!ISOP/WR_HO2=0.0 +! +!ISOP/WR_CO2=0.0 +! +!ISOP/WR_SO2=0.0 +! +!ISOP/WR_H2SO4=0.0 +! +!ISOP/WR_RO21=0.0 +! +!ISOP/WR_RO25=0.0 +! +!ISOP/WR_MEOH=0.0 +! +!ISOP/WR_ETOH=0.0 +! +!ISOP/WR_ALCH=0.0 +! +!ISOP/WR_HCHO=0.0 +! +!ISOP/WR_ALD2=0.0 +! +!ISOP/WR_GLY=0.0 +! +!ISOP/WR_MGLY=0.0 +! +!ISOP/WR_KETL=0.0 +! +!ISOP/WR_ORA1=0.0 +! +!ISOP/WR_ORA2=0.0 +! +!ISOP/WR_ACID=0.0 +! +!ISOP/WR_RP16=0.0 +! +!ISOP/WR_UR21=0.0 +! +!ISOP/WR_UR28=0.0 +! +!ISOP/WR_ACID2=0.0 +! +!ISOP/WR_ASO3=0.0 +! +!ISOP/WR_ASO4=0.0 +! +!ISOP/WR_ASO5=0.0 +! +!ISOP/WR_AHSO5=0.0 +! +!ISOP/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ6 +! +SUBROUTINE SUBJ7 +! +!Indices 36 a 40 +! +! +!BIOL/NO=0.0 +! +!BIOL/NO2=0.0 +! +!BIOL/O3=-K086*<BIOL> + PJAC(:,36,3)=-TPK%K086(:)*PCONC(:,36) +! +!BIOL/HONO=0.0 +! +!BIOL/HNO3=0.0 +! +!BIOL/HNO4=0.0 +! +!BIOL/N2O5=0.0 +! +!BIOL/NO3=-K085*<BIOL> + PJAC(:,36,8)=-TPK%K085(:)*PCONC(:,36) +! +!BIOL/NH3=0.0 +! +!BIOL/HO2=0.0 +! +!BIOL/CO=0.0 +! +!BIOL/H2O2=0.0 +! +!BIOL/SO2=0.0 +! +!BIOL/H2SO4=0.0 +! +!BIOL/OH=-K084*<BIOL> + PJAC(:,36,15)=-TPK%K084(:)*PCONC(:,36) +! +!BIOL/ETHE=0.0 +! +!BIOL/OLEL=0.0 +! +!BIOL/OLEH=0.0 +! +!BIOL/ALKL=0.0 +! +!BIOL/ALKM=0.0 +! +!BIOL/ALKH=0.0 +! +!BIOL/AROH=0.0 +! +!BIOL/AROL=0.0 +! +!BIOL/AROO=0.0 +! +!BIOL/ARAL=0.0 +! +!BIOL/ARAC=0.0 +! +!BIOL/PAH=0.0 +! +!BIOL/HCHO=0.0 +! +!BIOL/ALD2=0.0 +! +!BIOL/KETL=0.0 +! +!BIOL/KETH=0.0 +! +!BIOL/MEOH=0.0 +! +!BIOL/ETOH=0.0 +! +!BIOL/ALCH=0.0 +! +!BIOL/ISOP=0.0 +! +!BIOL/BIOL=-K084*<OH>-K085*<NO3>-K086*<O3>-K087*<O> + PJAC(:,36,36)=-TPK%K084(:)*PCONC(:,15)-TPK%K085(:)*PCONC(:,8)-TPK%K086(:)*PCON& +&C(:,3)-TPK%K087(:)*TPK%O(:) +! +!BIOL/BIOH=0.0 +! +!BIOL/MTBE=0.0 +! +!BIOL/MVK=0.0 +! +!BIOL/MCR=0.0 +! +!BIOL/MGLY=0.0 +! +!BIOL/GLY=0.0 +! +!BIOL/ORA1=0.0 +! +!BIOL/ORA2=0.0 +! +!BIOL/ACID=0.0 +! +!BIOL/UR28=0.0 +! +!BIOL/UR21=0.0 +! +!BIOL/URG2=0.0 +! +!BIOL/UR26=0.0 +! +!BIOL/RPG2=0.0 +! +!BIOL/RP18=0.0 +! +!BIOL/RPG3=0.0 +! +!BIOL/URG4=0.0 +! +!BIOL/UR8=0.0 +! +!BIOL/UR17=0.0 +! +!BIOL/UR7=0.0 +! +!BIOL/RPR3=0.0 +! +!BIOL/URG6=0.0 +! +!BIOL/UR22=0.0 +! +!BIOL/URG7=0.0 +! +!BIOL/RPR4=0.0 +! +!BIOL/RPR7=0.0 +! +!BIOL/RPG7=0.0 +! +!BIOL/URG8=0.0 +! +!BIOL/UR19=0.0 +! +!BIOL/URG9=0.0 +! +!BIOL/AP7=0.0 +! +!BIOL/URG10=0.0 +! +!BIOL/RPR1=0.0 +! +!BIOL/RPR5=0.0 +! +!BIOL/RPR8=0.0 +! +!BIOL/RP10=0.0 +! +!BIOL/RP11=0.0 +! +!BIOL/RP16=0.0 +! +!BIOL/RPRL=0.0 +! +!BIOL/APAN=0.0 +! +!BIOL/PAN1=0.0 +! +!BIOL/PAN2=0.0 +! +!BIOL/PAN3=0.0 +! +!BIOL/PAN4=0.0 +! +!BIOL/PAN6=0.0 +! +!BIOL/PAN7=0.0 +! +!BIOL/PAN8=0.0 +! +!BIOL/PN10=0.0 +! +!BIOL/RO2T=0.0 +! +!BIOL/RO21=0.0 +! +!BIOL/RO25=0.0 +! +!BIOL/WC_O3=0.0 +! +!BIOL/WC_H2O2=0.0 +! +!BIOL/WC_NO=0.0 +! +!BIOL/WC_NO2=0.0 +! +!BIOL/WC_NO3=0.0 +! +!BIOL/WC_N2O5=0.0 +! +!BIOL/WC_HONO=0.0 +! +!BIOL/WC_HNO3=0.0 +! +!BIOL/WC_HNO4=0.0 +! +!BIOL/WC_NH3=0.0 +! +!BIOL/WC_OH=0.0 +! +!BIOL/WC_HO2=0.0 +! +!BIOL/WC_CO2=0.0 +! +!BIOL/WC_SO2=0.0 +! +!BIOL/WC_H2SO4=0.0 +! +!BIOL/WC_RO21=0.0 +! +!BIOL/WC_RO25=0.0 +! +!BIOL/WC_MEOH=0.0 +! +!BIOL/WC_ETOH=0.0 +! +!BIOL/WC_ALCH=0.0 +! +!BIOL/WC_HCHO=0.0 +! +!BIOL/WC_ALD2=0.0 +! +!BIOL/WC_GLY=0.0 +! +!BIOL/WC_MGLY=0.0 +! +!BIOL/WC_KETL=0.0 +! +!BIOL/WC_ORA1=0.0 +! +!BIOL/WC_ORA2=0.0 +! +!BIOL/WC_ACID=0.0 +! +!BIOL/WC_RP16=0.0 +! +!BIOL/WC_UR21=0.0 +! +!BIOL/WC_UR28=0.0 +! +!BIOL/WC_ACID2=0.0 +! +!BIOL/WC_ASO3=0.0 +! +!BIOL/WC_ASO4=0.0 +! +!BIOL/WC_ASO5=0.0 +! +!BIOL/WC_AHSO5=0.0 +! +!BIOL/WC_AHMS=0.0 +! +!BIOL/WR_O3=0.0 +! +!BIOL/WR_H2O2=0.0 +! +!BIOL/WR_NO=0.0 +! +!BIOL/WR_NO2=0.0 +! +!BIOL/WR_NO3=0.0 +! +!BIOL/WR_N2O5=0.0 +! +!BIOL/WR_HONO=0.0 +! +!BIOL/WR_HNO3=0.0 +! +!BIOL/WR_HNO4=0.0 +! +!BIOL/WR_NH3=0.0 +! +!BIOL/WR_OH=0.0 +! +!BIOL/WR_HO2=0.0 +! +!BIOL/WR_CO2=0.0 +! +!BIOL/WR_SO2=0.0 +! +!BIOL/WR_H2SO4=0.0 +! +!BIOL/WR_RO21=0.0 +! +!BIOL/WR_RO25=0.0 +! +!BIOL/WR_MEOH=0.0 +! +!BIOL/WR_ETOH=0.0 +! +!BIOL/WR_ALCH=0.0 +! +!BIOL/WR_HCHO=0.0 +! +!BIOL/WR_ALD2=0.0 +! +!BIOL/WR_GLY=0.0 +! +!BIOL/WR_MGLY=0.0 +! +!BIOL/WR_KETL=0.0 +! +!BIOL/WR_ORA1=0.0 +! +!BIOL/WR_ORA2=0.0 +! +!BIOL/WR_ACID=0.0 +! +!BIOL/WR_RP16=0.0 +! +!BIOL/WR_UR21=0.0 +! +!BIOL/WR_UR28=0.0 +! +!BIOL/WR_ACID2=0.0 +! +!BIOL/WR_ASO3=0.0 +! +!BIOL/WR_ASO4=0.0 +! +!BIOL/WR_ASO5=0.0 +! +!BIOL/WR_AHSO5=0.0 +! +!BIOL/WR_AHMS=0.0 +! +!BIOH/NO=0.0 +! +!BIOH/NO2=0.0 +! +!BIOH/O3=-K090*<BIOH> + PJAC(:,37,3)=-TPK%K090(:)*PCONC(:,37) +! +!BIOH/HONO=0.0 +! +!BIOH/HNO3=0.0 +! +!BIOH/HNO4=0.0 +! +!BIOH/N2O5=0.0 +! +!BIOH/NO3=-K089*<BIOH> + PJAC(:,37,8)=-TPK%K089(:)*PCONC(:,37) +! +!BIOH/NH3=0.0 +! +!BIOH/HO2=0.0 +! +!BIOH/CO=0.0 +! +!BIOH/H2O2=0.0 +! +!BIOH/SO2=0.0 +! +!BIOH/H2SO4=0.0 +! +!BIOH/OH=-K088*<BIOH> + PJAC(:,37,15)=-TPK%K088(:)*PCONC(:,37) +! +!BIOH/ETHE=0.0 +! +!BIOH/OLEL=0.0 +! +!BIOH/OLEH=0.0 +! +!BIOH/ALKL=0.0 +! +!BIOH/ALKM=0.0 +! +!BIOH/ALKH=0.0 +! +!BIOH/AROH=0.0 +! +!BIOH/AROL=0.0 +! +!BIOH/AROO=0.0 +! +!BIOH/ARAL=0.0 +! +!BIOH/ARAC=0.0 +! +!BIOH/PAH=0.0 +! +!BIOH/HCHO=0.0 +! +!BIOH/ALD2=0.0 +! +!BIOH/KETL=0.0 +! +!BIOH/KETH=0.0 +! +!BIOH/MEOH=0.0 +! +!BIOH/ETOH=0.0 +! +!BIOH/ALCH=0.0 +! +!BIOH/ISOP=0.0 +! +!BIOH/BIOL=0.0 +! +!BIOH/BIOH=-K088*<OH>-K089*<NO3>-K090*<O3>-K091*<O> + PJAC(:,37,37)=-TPK%K088(:)*PCONC(:,15)-TPK%K089(:)*PCONC(:,8)-TPK%K090(:)*PCON& +&C(:,3)-TPK%K091(:)*TPK%O(:) +! +!BIOH/MTBE=0.0 +! +!BIOH/MVK=0.0 +! +!BIOH/MCR=0.0 +! +!BIOH/MGLY=0.0 +! +!BIOH/GLY=0.0 +! +!BIOH/ORA1=0.0 +! +!BIOH/ORA2=0.0 +! +!BIOH/ACID=0.0 +! +!BIOH/UR28=0.0 +! +!BIOH/UR21=0.0 +! +!BIOH/URG2=0.0 +! +!BIOH/UR26=0.0 +! +!BIOH/RPG2=0.0 +! +!BIOH/RP18=0.0 +! +!BIOH/RPG3=0.0 +! +!BIOH/URG4=0.0 +! +!BIOH/UR8=0.0 +! +!BIOH/UR17=0.0 +! +!BIOH/UR7=0.0 +! +!BIOH/RPR3=0.0 +! +!BIOH/URG6=0.0 +! +!BIOH/UR22=0.0 +! +!BIOH/URG7=0.0 +! +!BIOH/RPR4=0.0 +! +!BIOH/RPR7=0.0 +! +!BIOH/RPG7=0.0 +! +!BIOH/URG8=0.0 +! +!BIOH/UR19=0.0 +! +!BIOH/URG9=0.0 +! +!BIOH/AP7=0.0 +! +!BIOH/URG10=0.0 +! +!BIOH/RPR1=0.0 +! +!BIOH/RPR5=0.0 +! +!BIOH/RPR8=0.0 +! +!BIOH/RP10=0.0 +! +!BIOH/RP11=0.0 +! +!BIOH/RP16=0.0 +! +!BIOH/RPRL=0.0 +! +!BIOH/APAN=0.0 +! +!BIOH/PAN1=0.0 +! +!BIOH/PAN2=0.0 +! +!BIOH/PAN3=0.0 +! +!BIOH/PAN4=0.0 +! +!BIOH/PAN6=0.0 +! +!BIOH/PAN7=0.0 +! +!BIOH/PAN8=0.0 +! +!BIOH/PN10=0.0 +! +!BIOH/RO2T=0.0 +! +!BIOH/RO21=0.0 +! +!BIOH/RO25=0.0 +! +!BIOH/WC_O3=0.0 +! +!BIOH/WC_H2O2=0.0 +! +!BIOH/WC_NO=0.0 +! +!BIOH/WC_NO2=0.0 +! +!BIOH/WC_NO3=0.0 +! +!BIOH/WC_N2O5=0.0 +! +!BIOH/WC_HONO=0.0 +! +!BIOH/WC_HNO3=0.0 +! +!BIOH/WC_HNO4=0.0 +! +!BIOH/WC_NH3=0.0 +! +!BIOH/WC_OH=0.0 +! +!BIOH/WC_HO2=0.0 +! +!BIOH/WC_CO2=0.0 +! +!BIOH/WC_SO2=0.0 +! +!BIOH/WC_H2SO4=0.0 +! +!BIOH/WC_RO21=0.0 +! +!BIOH/WC_RO25=0.0 +! +!BIOH/WC_MEOH=0.0 +! +!BIOH/WC_ETOH=0.0 +! +!BIOH/WC_ALCH=0.0 +! +!BIOH/WC_HCHO=0.0 +! +!BIOH/WC_ALD2=0.0 +! +!BIOH/WC_GLY=0.0 +! +!BIOH/WC_MGLY=0.0 +! +!BIOH/WC_KETL=0.0 +! +!BIOH/WC_ORA1=0.0 +! +!BIOH/WC_ORA2=0.0 +! +!BIOH/WC_ACID=0.0 +! +!BIOH/WC_RP16=0.0 +! +!BIOH/WC_UR21=0.0 +! +!BIOH/WC_UR28=0.0 +! +!BIOH/WC_ACID2=0.0 +! +!BIOH/WC_ASO3=0.0 +! +!BIOH/WC_ASO4=0.0 +! +!BIOH/WC_ASO5=0.0 +! +!BIOH/WC_AHSO5=0.0 +! +!BIOH/WC_AHMS=0.0 +! +!BIOH/WR_O3=0.0 +! +!BIOH/WR_H2O2=0.0 +! +!BIOH/WR_NO=0.0 +! +!BIOH/WR_NO2=0.0 +! +!BIOH/WR_NO3=0.0 +! +!BIOH/WR_N2O5=0.0 +! +!BIOH/WR_HONO=0.0 +! +!BIOH/WR_HNO3=0.0 +! +!BIOH/WR_HNO4=0.0 +! +!BIOH/WR_NH3=0.0 +! +!BIOH/WR_OH=0.0 +! +!BIOH/WR_HO2=0.0 +! +!BIOH/WR_CO2=0.0 +! +!BIOH/WR_SO2=0.0 +! +!BIOH/WR_H2SO4=0.0 +! +!BIOH/WR_RO21=0.0 +! +!BIOH/WR_RO25=0.0 +! +!BIOH/WR_MEOH=0.0 +! +!BIOH/WR_ETOH=0.0 +! +!BIOH/WR_ALCH=0.0 +! +!BIOH/WR_HCHO=0.0 +! +!BIOH/WR_ALD2=0.0 +! +!BIOH/WR_GLY=0.0 +! +!BIOH/WR_MGLY=0.0 +! +!BIOH/WR_KETL=0.0 +! +!BIOH/WR_ORA1=0.0 +! +!BIOH/WR_ORA2=0.0 +! +!BIOH/WR_ACID=0.0 +! +!BIOH/WR_RP16=0.0 +! +!BIOH/WR_UR21=0.0 +! +!BIOH/WR_UR28=0.0 +! +!BIOH/WR_ACID2=0.0 +! +!BIOH/WR_ASO3=0.0 +! +!BIOH/WR_ASO4=0.0 +! +!BIOH/WR_ASO5=0.0 +! +!BIOH/WR_AHSO5=0.0 +! +!BIOH/WR_AHMS=0.0 +! +!MTBE/NO=0.0 +! +!MTBE/NO2=0.0 +! +!MTBE/O3=0.0 +! +!MTBE/HONO=0.0 +! +!MTBE/HNO3=0.0 +! +!MTBE/HNO4=0.0 +! +!MTBE/N2O5=0.0 +! +!MTBE/NO3=0.0 +! +!MTBE/NH3=0.0 +! +!MTBE/HO2=0.0 +! +!MTBE/CO=0.0 +! +!MTBE/H2O2=0.0 +! +!MTBE/SO2=0.0 +! +!MTBE/H2SO4=0.0 +! +!MTBE/OH=-K068*<MTBE> + PJAC(:,38,15)=-TPK%K068(:)*PCONC(:,38) +! +!MTBE/ETHE=0.0 +! +!MTBE/OLEL=0.0 +! +!MTBE/OLEH=0.0 +! +!MTBE/ALKL=0.0 +! +!MTBE/ALKM=0.0 +! +!MTBE/ALKH=0.0 +! +!MTBE/AROH=0.0 +! +!MTBE/AROL=0.0 +! +!MTBE/AROO=0.0 +! +!MTBE/ARAL=0.0 +! +!MTBE/ARAC=0.0 +! +!MTBE/PAH=0.0 +! +!MTBE/HCHO=0.0 +! +!MTBE/ALD2=0.0 +! +!MTBE/KETL=0.0 +! +!MTBE/KETH=0.0 +! +!MTBE/MEOH=0.0 +! +!MTBE/ETOH=0.0 +! +!MTBE/ALCH=0.0 +! +!MTBE/ISOP=0.0 +! +!MTBE/BIOL=0.0 +! +!MTBE/BIOH=0.0 +! +!MTBE/MTBE=-K068*<OH> + PJAC(:,38,38)=-TPK%K068(:)*PCONC(:,15) +! +!MTBE/MVK=0.0 +! +!MTBE/MCR=0.0 +! +!MTBE/MGLY=0.0 +! +!MTBE/GLY=0.0 +! +!MTBE/ORA1=0.0 +! +!MTBE/ORA2=0.0 +! +!MTBE/ACID=0.0 +! +!MTBE/UR28=0.0 +! +!MTBE/UR21=0.0 +! +!MTBE/URG2=0.0 +! +!MTBE/UR26=0.0 +! +!MTBE/RPG2=0.0 +! +!MTBE/RP18=0.0 +! +!MTBE/RPG3=0.0 +! +!MTBE/URG4=0.0 +! +!MTBE/UR8=0.0 +! +!MTBE/UR17=0.0 +! +!MTBE/UR7=0.0 +! +!MTBE/RPR3=0.0 +! +!MTBE/URG6=0.0 +! +!MTBE/UR22=0.0 +! +!MTBE/URG7=0.0 +! +!MTBE/RPR4=0.0 +! +!MTBE/RPR7=0.0 +! +!MTBE/RPG7=0.0 +! +!MTBE/URG8=0.0 +! +!MTBE/UR19=0.0 +! +!MTBE/URG9=0.0 +! +!MTBE/AP7=0.0 +! +!MTBE/URG10=0.0 +! +!MTBE/RPR1=0.0 +! +!MTBE/RPR5=0.0 +! +!MTBE/RPR8=0.0 +! +!MTBE/RP10=0.0 +! +!MTBE/RP11=0.0 +! +!MTBE/RP16=0.0 +! +!MTBE/RPRL=0.0 +! +!MTBE/APAN=0.0 +! +!MTBE/PAN1=0.0 +! +!MTBE/PAN2=0.0 +! +!MTBE/PAN3=0.0 +! +!MTBE/PAN4=0.0 +! +!MTBE/PAN6=0.0 +! +!MTBE/PAN7=0.0 +! +!MTBE/PAN8=0.0 +! +!MTBE/PN10=0.0 +! +!MTBE/RO2T=0.0 +! +!MTBE/RO21=0.0 +! +!MTBE/RO25=0.0 +! +!MTBE/WC_O3=0.0 +! +!MTBE/WC_H2O2=0.0 +! +!MTBE/WC_NO=0.0 +! +!MTBE/WC_NO2=0.0 +! +!MTBE/WC_NO3=0.0 +! +!MTBE/WC_N2O5=0.0 +! +!MTBE/WC_HONO=0.0 +! +!MTBE/WC_HNO3=0.0 +! +!MTBE/WC_HNO4=0.0 +! +!MTBE/WC_NH3=0.0 +! +!MTBE/WC_OH=0.0 +! +!MTBE/WC_HO2=0.0 +! +!MTBE/WC_CO2=0.0 +! +!MTBE/WC_SO2=0.0 +! +!MTBE/WC_H2SO4=0.0 +! +!MTBE/WC_RO21=0.0 +! +!MTBE/WC_RO25=0.0 +! +!MTBE/WC_MEOH=0.0 +! +!MTBE/WC_ETOH=0.0 +! +!MTBE/WC_ALCH=0.0 +! +!MTBE/WC_HCHO=0.0 +! +!MTBE/WC_ALD2=0.0 +! +!MTBE/WC_GLY=0.0 +! +!MTBE/WC_MGLY=0.0 +! +!MTBE/WC_KETL=0.0 +! +!MTBE/WC_ORA1=0.0 +! +!MTBE/WC_ORA2=0.0 +! +!MTBE/WC_ACID=0.0 +! +!MTBE/WC_RP16=0.0 +! +!MTBE/WC_UR21=0.0 +! +!MTBE/WC_UR28=0.0 +! +!MTBE/WC_ACID2=0.0 +! +!MTBE/WC_ASO3=0.0 +! +!MTBE/WC_ASO4=0.0 +! +!MTBE/WC_ASO5=0.0 +! +!MTBE/WC_AHSO5=0.0 +! +!MTBE/WC_AHMS=0.0 +! +!MTBE/WR_O3=0.0 +! +!MTBE/WR_H2O2=0.0 +! +!MTBE/WR_NO=0.0 +! +!MTBE/WR_NO2=0.0 +! +!MTBE/WR_NO3=0.0 +! +!MTBE/WR_N2O5=0.0 +! +!MTBE/WR_HONO=0.0 +! +!MTBE/WR_HNO3=0.0 +! +!MTBE/WR_HNO4=0.0 +! +!MTBE/WR_NH3=0.0 +! +!MTBE/WR_OH=0.0 +! +!MTBE/WR_HO2=0.0 +! +!MTBE/WR_CO2=0.0 +! +!MTBE/WR_SO2=0.0 +! +!MTBE/WR_H2SO4=0.0 +! +!MTBE/WR_RO21=0.0 +! +!MTBE/WR_RO25=0.0 +! +!MTBE/WR_MEOH=0.0 +! +!MTBE/WR_ETOH=0.0 +! +!MTBE/WR_ALCH=0.0 +! +!MTBE/WR_HCHO=0.0 +! +!MTBE/WR_ALD2=0.0 +! +!MTBE/WR_GLY=0.0 +! +!MTBE/WR_MGLY=0.0 +! +!MTBE/WR_KETL=0.0 +! +!MTBE/WR_ORA1=0.0 +! +!MTBE/WR_ORA2=0.0 +! +!MTBE/WR_ACID=0.0 +! +!MTBE/WR_RP16=0.0 +! +!MTBE/WR_UR21=0.0 +! +!MTBE/WR_UR28=0.0 +! +!MTBE/WR_ACID2=0.0 +! +!MTBE/WR_ASO3=0.0 +! +!MTBE/WR_ASO4=0.0 +! +!MTBE/WR_ASO5=0.0 +! +!MTBE/WR_AHSO5=0.0 +! +!MTBE/WR_AHMS=0.0 +! +!MVK/NO=+TPK%CF6*K150*<RO29>+K156*<RO211> + PJAC(:,39,1)=+TPK%CF6*TPK%K150(:)*TPK%RO29(:)+TPK%K156(:)*TPK%RO211(:) +! +!MVK/NO2=0.0 +! +!MVK/O3=+0.389*K066*<ISOP>-K281*<MVK> + PJAC(:,39,3)=+0.389*TPK%K066(:)*PCONC(:,35)-TPK%K281(:)*PCONC(:,39) +! +!MVK/HONO=0.0 +! +!MVK/HNO3=0.0 +! +!MVK/HNO4=0.0 +! +!MVK/N2O5=0.0 +! +!MVK/NO3=0.0 +! +!MVK/NH3=0.0 +! +!MVK/HO2=+K152*<RO29>+K158*<RO211> + PJAC(:,39,10)=+TPK%K152(:)*TPK%RO29(:)+TPK%K158(:)*TPK%RO211(:) +! +!MVK/CO=0.0 +! +!MVK/H2O2=0.0 +! +!MVK/SO2=0.0 +! +!MVK/H2SO4=0.0 +! +!MVK/OH=-K272*<MVK> + PJAC(:,39,15)=-TPK%K272(:)*PCONC(:,39) +! +!MVK/ETHE=0.0 +! +!MVK/OLEL=0.0 +! +!MVK/OLEH=0.0 +! +!MVK/ALKL=0.0 +! +!MVK/ALKM=0.0 +! +!MVK/ALKH=0.0 +! +!MVK/AROH=0.0 +! +!MVK/AROL=0.0 +! +!MVK/AROO=0.0 +! +!MVK/ARAL=0.0 +! +!MVK/ARAC=0.0 +! +!MVK/PAH=0.0 +! +!MVK/HCHO=0.0 +! +!MVK/ALD2=0.0 +! +!MVK/KETL=0.0 +! +!MVK/KETH=0.0 +! +!MVK/MEOH=0.0 +! +!MVK/ETOH=0.0 +! +!MVK/ALCH=0.0 +! +!MVK/ISOP=+0.389*K066*<O3> + PJAC(:,39,35)=+0.389*TPK%K066(:)*PCONC(:,3) +! +!MVK/BIOL=0.0 +! +!MVK/BIOH=0.0 +! +!MVK/MTBE=0.0 +! +!MVK/MVK=-K272*<OH>-K281*<O3>-K283*<O> + PJAC(:,39,39)=-TPK%K272(:)*PCONC(:,15)-TPK%K281(:)*PCONC(:,3)-TPK%K283(:)*TPK%& +&O(:) +! +!MVK/MCR=0.0 +! +!MVK/MGLY=0.0 +! +!MVK/GLY=0.0 +! +!MVK/ORA1=0.0 +! +!MVK/ORA2=0.0 +! +!MVK/ACID=0.0 +! +!MVK/UR28=0.0 +! +!MVK/UR21=0.0 +! +!MVK/URG2=0.0 +! +!MVK/UR26=0.0 +! +!MVK/RPG2=0.0 +! +!MVK/RP18=0.0 +! +!MVK/RPG3=0.0 +! +!MVK/URG4=0.0 +! +!MVK/UR8=0.0 +! +!MVK/UR17=0.0 +! +!MVK/UR7=0.0 +! +!MVK/RPR3=0.0 +! +!MVK/URG6=0.0 +! +!MVK/UR22=0.0 +! +!MVK/URG7=0.0 +! +!MVK/RPR4=0.0 +! +!MVK/RPR7=0.0 +! +!MVK/RPG7=0.0 +! +!MVK/URG8=0.0 +! +!MVK/UR19=0.0 +! +!MVK/URG9=0.0 +! +!MVK/AP7=0.0 +! +!MVK/URG10=0.0 +! +!MVK/RPR1=0.0 +! +!MVK/RPR5=0.0 +! +!MVK/RPR8=0.0 +! +!MVK/RP10=0.0 +! +!MVK/RP11=0.0 +! +!MVK/RP16=0.0 +! +!MVK/RPRL=0.0 +! +!MVK/APAN=0.0 +! +!MVK/PAN1=0.0 +! +!MVK/PAN2=0.0 +! +!MVK/PAN3=0.0 +! +!MVK/PAN4=0.0 +! +!MVK/PAN6=0.0 +! +!MVK/PAN7=0.0 +! +!MVK/PAN8=0.0 +! +!MVK/PN10=0.0 +! +!MVK/RO2T=+K151*<RO29>+K157*<RO211> + PJAC(:,39,85)=+TPK%K151(:)*TPK%RO29(:)+TPK%K157(:)*TPK%RO211(:) +! +!MVK/RO21=0.0 +! +!MVK/RO25=0.0 +! +!MVK/WC_O3=0.0 +! +!MVK/WC_H2O2=0.0 +! +!MVK/WC_NO=0.0 +! +!MVK/WC_NO2=0.0 +! +!MVK/WC_NO3=0.0 +! +!MVK/WC_N2O5=0.0 +! +!MVK/WC_HONO=0.0 +! +!MVK/WC_HNO3=0.0 +! +!MVK/WC_HNO4=0.0 +! +!MVK/WC_NH3=0.0 +! +!MVK/WC_OH=0.0 +! +!MVK/WC_HO2=0.0 +! +!MVK/WC_CO2=0.0 +! +!MVK/WC_SO2=0.0 +! +!MVK/WC_H2SO4=0.0 +! +!MVK/WC_RO21=0.0 +! +!MVK/WC_RO25=0.0 +! +!MVK/WC_MEOH=0.0 +! +!MVK/WC_ETOH=0.0 +! +!MVK/WC_ALCH=0.0 +! +!MVK/WC_HCHO=0.0 +! +!MVK/WC_ALD2=0.0 +! +!MVK/WC_GLY=0.0 +! +!MVK/WC_MGLY=0.0 +! +!MVK/WC_KETL=0.0 +! +!MVK/WC_ORA1=0.0 +! +!MVK/WC_ORA2=0.0 +! +!MVK/WC_ACID=0.0 +! +!MVK/WC_RP16=0.0 +! +!MVK/WC_UR21=0.0 +! +!MVK/WC_UR28=0.0 +! +!MVK/WC_ACID2=0.0 +! +!MVK/WC_ASO3=0.0 +! +!MVK/WC_ASO4=0.0 +! +!MVK/WC_ASO5=0.0 +! +!MVK/WC_AHSO5=0.0 +! +!MVK/WC_AHMS=0.0 +! +!MVK/WR_O3=0.0 +! +!MVK/WR_H2O2=0.0 +! +!MVK/WR_NO=0.0 +! +!MVK/WR_NO2=0.0 +! +!MVK/WR_NO3=0.0 +! +!MVK/WR_N2O5=0.0 +! +!MVK/WR_HONO=0.0 +! +!MVK/WR_HNO3=0.0 +! +!MVK/WR_HNO4=0.0 +! +!MVK/WR_NH3=0.0 +! +!MVK/WR_OH=0.0 +! +!MVK/WR_HO2=0.0 +! +!MVK/WR_CO2=0.0 +! +!MVK/WR_SO2=0.0 +! +!MVK/WR_H2SO4=0.0 +! +!MVK/WR_RO21=0.0 +! +!MVK/WR_RO25=0.0 +! +!MVK/WR_MEOH=0.0 +! +!MVK/WR_ETOH=0.0 +! +!MVK/WR_ALCH=0.0 +! +!MVK/WR_HCHO=0.0 +! +!MVK/WR_ALD2=0.0 +! +!MVK/WR_GLY=0.0 +! +!MVK/WR_MGLY=0.0 +! +!MVK/WR_KETL=0.0 +! +!MVK/WR_ORA1=0.0 +! +!MVK/WR_ORA2=0.0 +! +!MVK/WR_ACID=0.0 +! +!MVK/WR_RP16=0.0 +! +!MVK/WR_UR21=0.0 +! +!MVK/WR_UR28=0.0 +! +!MVK/WR_ACID2=0.0 +! +!MVK/WR_ASO3=0.0 +! +!MVK/WR_ASO4=0.0 +! +!MVK/WR_ASO5=0.0 +! +!MVK/WR_AHSO5=0.0 +! +!MVK/WR_AHMS=0.0 +! +!MCR/NO=+K153*<RO210>+K159*<RO212> + PJAC(:,40,1)=+TPK%K153(:)*TPK%RO210(:)+TPK%K159(:)*TPK%RO212(:) +! +!MCR/NO2=0.0 +! +!MCR/O3=+0.17*K066*<ISOP>-K282*<MCR> + PJAC(:,40,3)=+0.17*TPK%K066(:)*PCONC(:,35)-TPK%K282(:)*PCONC(:,40) +! +!MCR/HONO=0.0 +! +!MCR/HNO3=0.0 +! +!MCR/HNO4=0.0 +! +!MCR/N2O5=0.0 +! +!MCR/NO3=-K275*<MCR> + PJAC(:,40,8)=-TPK%K275(:)*PCONC(:,40) +! +!MCR/NH3=0.0 +! +!MCR/HO2=+K155*<RO210>+K161*<RO212> + PJAC(:,40,10)=+TPK%K155(:)*TPK%RO210(:)+TPK%K161(:)*TPK%RO212(:) +! +!MCR/CO=0.0 +! +!MCR/H2O2=0.0 +! +!MCR/SO2=0.0 +! +!MCR/H2SO4=0.0 +! +!MCR/OH=-K273*<MCR> + PJAC(:,40,15)=-TPK%K273(:)*PCONC(:,40) +! +!MCR/ETHE=0.0 +! +!MCR/OLEL=0.0 +! +!MCR/OLEH=0.0 +! +!MCR/ALKL=0.0 +! +!MCR/ALKM=0.0 +! +!MCR/ALKH=0.0 +! +!MCR/AROH=0.0 +! +!MCR/AROL=0.0 +! +!MCR/AROO=0.0 +! +!MCR/ARAL=0.0 +! +!MCR/ARAC=0.0 +! +!MCR/PAH=0.0 +! +!MCR/HCHO=0.0 +! +!MCR/ALD2=0.0 +! +!MCR/KETL=0.0 +! +!MCR/KETH=0.0 +! +!MCR/MEOH=0.0 +! +!MCR/ETOH=0.0 +! +!MCR/ALCH=0.0 +! +!MCR/ISOP=+0.17*K066*<O3> + PJAC(:,40,35)=+0.17*TPK%K066(:)*PCONC(:,3) +! +!MCR/BIOL=0.0 +! +!MCR/BIOH=0.0 +! +!MCR/MTBE=0.0 +! +!MCR/MVK=0.0 +! +!MCR/MCR=-K273*<OH>-K275*<NO3>-K282*<O3>-K284*<O> + PJAC(:,40,40)=-TPK%K273(:)*PCONC(:,15)-TPK%K275(:)*PCONC(:,8)-TPK%K282(:)*PCON& +&C(:,3)-TPK%K284(:)*TPK%O(:) +! +!MCR/MGLY=0.0 +! +!MCR/GLY=0.0 +! +!MCR/ORA1=0.0 +! +!MCR/ORA2=0.0 +! +!MCR/ACID=0.0 +! +!MCR/UR28=0.0 +! +!MCR/UR21=0.0 +! +!MCR/URG2=0.0 +! +!MCR/UR26=0.0 +! +!MCR/RPG2=0.0 +! +!MCR/RP18=0.0 +! +!MCR/RPG3=0.0 +! +!MCR/URG4=0.0 +! +!MCR/UR8=0.0 +! +!MCR/UR17=0.0 +! +!MCR/UR7=0.0 +! +!MCR/RPR3=0.0 +! +!MCR/URG6=0.0 +! +!MCR/UR22=0.0 +! +!MCR/URG7=0.0 +! +!MCR/RPR4=0.0 +! +!MCR/RPR7=0.0 +! +!MCR/RPG7=0.0 +! +!MCR/URG8=0.0 +! +!MCR/UR19=0.0 +! +!MCR/URG9=0.0 +! +!MCR/AP7=0.0 +! +!MCR/URG10=0.0 +! +!MCR/RPR1=0.0 +! +!MCR/RPR5=0.0 +! +!MCR/RPR8=0.0 +! +!MCR/RP10=0.0 +! +!MCR/RP11=0.0 +! +!MCR/RP16=0.0 +! +!MCR/RPRL=0.0 +! +!MCR/APAN=0.0 +! +!MCR/PAN1=0.0 +! +!MCR/PAN2=0.0 +! +!MCR/PAN3=0.0 +! +!MCR/PAN4=0.0 +! +!MCR/PAN6=0.0 +! +!MCR/PAN7=0.0 +! +!MCR/PAN8=0.0 +! +!MCR/PN10=0.0 +! +!MCR/RO2T=+K154*<RO210>+K160*<RO212> + PJAC(:,40,85)=+TPK%K154(:)*TPK%RO210(:)+TPK%K160(:)*TPK%RO212(:) +! +!MCR/RO21=0.0 +! +!MCR/RO25=0.0 +! +!MCR/WC_O3=0.0 +! +!MCR/WC_H2O2=0.0 +! +!MCR/WC_NO=0.0 +! +!MCR/WC_NO2=0.0 +! +!MCR/WC_NO3=0.0 +! +!MCR/WC_N2O5=0.0 +! +!MCR/WC_HONO=0.0 +! +!MCR/WC_HNO3=0.0 +! +!MCR/WC_HNO4=0.0 +! +!MCR/WC_NH3=0.0 +! +!MCR/WC_OH=0.0 +! +!MCR/WC_HO2=0.0 +! +!MCR/WC_CO2=0.0 +! +!MCR/WC_SO2=0.0 +! +!MCR/WC_H2SO4=0.0 +! +!MCR/WC_RO21=0.0 +! +!MCR/WC_RO25=0.0 +! +!MCR/WC_MEOH=0.0 +! +!MCR/WC_ETOH=0.0 +! +!MCR/WC_ALCH=0.0 +! +!MCR/WC_HCHO=0.0 +! +!MCR/WC_ALD2=0.0 +! +!MCR/WC_GLY=0.0 +! +!MCR/WC_MGLY=0.0 +! +!MCR/WC_KETL=0.0 +! +!MCR/WC_ORA1=0.0 +! +!MCR/WC_ORA2=0.0 +! +!MCR/WC_ACID=0.0 +! +!MCR/WC_RP16=0.0 +! +!MCR/WC_UR21=0.0 +! +!MCR/WC_UR28=0.0 +! +!MCR/WC_ACID2=0.0 +! +!MCR/WC_ASO3=0.0 +! +!MCR/WC_ASO4=0.0 +! +!MCR/WC_ASO5=0.0 +! +!MCR/WC_AHSO5=0.0 +! +!MCR/WC_AHMS=0.0 +! +!MCR/WR_O3=0.0 +! +!MCR/WR_H2O2=0.0 +! +!MCR/WR_NO=0.0 +! +!MCR/WR_NO2=0.0 +! +!MCR/WR_NO3=0.0 +! +!MCR/WR_N2O5=0.0 +! +!MCR/WR_HONO=0.0 +! +!MCR/WR_HNO3=0.0 +! +!MCR/WR_HNO4=0.0 +! +!MCR/WR_NH3=0.0 +! +!MCR/WR_OH=0.0 +! +!MCR/WR_HO2=0.0 +! +!MCR/WR_CO2=0.0 +! +!MCR/WR_SO2=0.0 +! +!MCR/WR_H2SO4=0.0 +! +!MCR/WR_RO21=0.0 +! +!MCR/WR_RO25=0.0 +! +!MCR/WR_MEOH=0.0 +! +!MCR/WR_ETOH=0.0 +! +!MCR/WR_ALCH=0.0 +! +!MCR/WR_HCHO=0.0 +! +!MCR/WR_ALD2=0.0 +! +!MCR/WR_GLY=0.0 +! +!MCR/WR_MGLY=0.0 +! +!MCR/WR_KETL=0.0 +! +!MCR/WR_ORA1=0.0 +! +!MCR/WR_ORA2=0.0 +! +!MCR/WR_ACID=0.0 +! +!MCR/WR_RP16=0.0 +! +!MCR/WR_UR21=0.0 +! +!MCR/WR_UR28=0.0 +! +!MCR/WR_ACID2=0.0 +! +!MCR/WR_ASO3=0.0 +! +!MCR/WR_ASO4=0.0 +! +!MCR/WR_ASO5=0.0 +! +!MCR/WR_AHSO5=0.0 +! +!MCR/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ7 +! +SUBROUTINE SUBJ8 +! +!Indices 41 a 45 +! +! +!MGLY/NO=+K234*<RO242>+K241*<RO243>+K248*<RO244>+K255*<RO245>+K262*<RO246>+K269 +!*<RO247>+K285*<RO249>+K291*<RO251>+K294*<RO252> + PJAC(:,41,1)=+TPK%K234(:)*TPK%RO242(:)+TPK%K241(:)*TPK%RO243(:)+TPK%K248(:)*TP& +&K%RO244(:)+TPK%K255(:)*TPK%RO245(:)+TPK%K262(:)*TPK%RO246(:)+TPK%K269(:)*TPK%R& +&O247(:)+TPK%K285(:)*TPK%RO249(:)+TPK%K291(:)*TPK%RO251(:)+TPK%K294(:)*TPK%RO25& +&2(:) +! +!MGLY/NO2=0.0 +! +!MGLY/O3=+0.5*K281*<MVK>+0.59*K282*<MCR> + PJAC(:,41,3)=+0.5*TPK%K281(:)*PCONC(:,39)+0.59*TPK%K282(:)*PCONC(:,40) +! +!MGLY/HONO=0.0 +! +!MGLY/HNO3=0.0 +! +!MGLY/HNO4=0.0 +! +!MGLY/N2O5=0.0 +! +!MGLY/NO3=-K278*<MGLY> + PJAC(:,41,8)=-TPK%K278(:)*PCONC(:,41) +! +!MGLY/NH3=0.0 +! +!MGLY/HO2=+K236*<RO242>+K243*<RO243>+K250*<RO244>+K257*<RO245>+K264*<RO246>+K27 +!1*<RO247>+K287*<RO249>+K292*<RO251>+K295*<RO252> + PJAC(:,41,10)=+TPK%K236(:)*TPK%RO242(:)+TPK%K243(:)*TPK%RO243(:)+TPK%K250(:)*T& +&PK%RO244(:)+TPK%K257(:)*TPK%RO245(:)+TPK%K264(:)*TPK%RO246(:)+TPK%K271(:)*TPK%& +&RO247(:)+TPK%K287(:)*TPK%RO249(:)+TPK%K292(:)*TPK%RO251(:)+TPK%K295(:)*TPK%RO2& +&52(:) +! +!MGLY/CO=0.0 +! +!MGLY/H2O2=0.0 +! +!MGLY/SO2=0.0 +! +!MGLY/H2SO4=0.0 +! +!MGLY/OH=-K274*<MGLY> + PJAC(:,41,15)=-TPK%K274(:)*PCONC(:,41) +! +!MGLY/ETHE=0.0 +! +!MGLY/OLEL=0.0 +! +!MGLY/OLEH=0.0 +! +!MGLY/ALKL=0.0 +! +!MGLY/ALKM=0.0 +! +!MGLY/ALKH=0.0 +! +!MGLY/AROH=0.0 +! +!MGLY/AROL=0.0 +! +!MGLY/AROO=0.0 +! +!MGLY/ARAL=0.0 +! +!MGLY/ARAC=0.0 +! +!MGLY/PAH=0.0 +! +!MGLY/HCHO=0.0 +! +!MGLY/ALD2=0.0 +! +!MGLY/KETL=0.0 +! +!MGLY/KETH=0.0 +! +!MGLY/MEOH=0.0 +! +!MGLY/ETOH=0.0 +! +!MGLY/ALCH=0.0 +! +!MGLY/ISOP=0.0 +! +!MGLY/BIOL=0.0 +! +!MGLY/BIOH=0.0 +! +!MGLY/MTBE=0.0 +! +!MGLY/MVK=+0.5*K281*<O3> + PJAC(:,41,39)=+0.5*TPK%K281(:)*PCONC(:,3) +! +!MGLY/MCR=+0.59*K282*<O3> + PJAC(:,41,40)=+0.59*TPK%K282(:)*PCONC(:,3) +! +!MGLY/MGLY=-K274*<OH>-K276-K278*<NO3>-KTC25-KTR25 + PJAC(:,41,41)=-TPK%K274(:)*PCONC(:,15)-TPK%K276(:)-TPK%K278(:)*PCONC(:,8)-TPK%& +&KTC25(:)-TPK%KTR25(:) +! +!MGLY/GLY=0.0 +! +!MGLY/ORA1=0.0 +! +!MGLY/ORA2=0.0 +! +!MGLY/ACID=0.0 +! +!MGLY/UR28=0.0 +! +!MGLY/UR21=0.0 +! +!MGLY/URG2=0.0 +! +!MGLY/UR26=0.0 +! +!MGLY/RPG2=0.0 +! +!MGLY/RP18=0.0 +! +!MGLY/RPG3=0.0 +! +!MGLY/URG4=0.0 +! +!MGLY/UR8=0.0 +! +!MGLY/UR17=0.0 +! +!MGLY/UR7=0.0 +! +!MGLY/RPR3=0.0 +! +!MGLY/URG6=0.0 +! +!MGLY/UR22=0.0 +! +!MGLY/URG7=0.0 +! +!MGLY/RPR4=0.0 +! +!MGLY/RPR7=0.0 +! +!MGLY/RPG7=0.0 +! +!MGLY/URG8=0.0 +! +!MGLY/UR19=0.0 +! +!MGLY/URG9=0.0 +! +!MGLY/AP7=0.0 +! +!MGLY/URG10=0.0 +! +!MGLY/RPR1=0.0 +! +!MGLY/RPR5=0.0 +! +!MGLY/RPR8=0.0 +! +!MGLY/RP10=0.0 +! +!MGLY/RP11=0.0 +! +!MGLY/RP16=0.0 +! +!MGLY/RPRL=0.0 +! +!MGLY/APAN=0.0 +! +!MGLY/PAN1=0.0 +! +!MGLY/PAN2=0.0 +! +!MGLY/PAN3=0.0 +! +!MGLY/PAN4=0.0 +! +!MGLY/PAN6=0.0 +! +!MGLY/PAN7=0.0 +! +!MGLY/PAN8=0.0 +! +!MGLY/PN10=0.0 +! +!MGLY/RO2T=+K235*<RO242>+K242*<RO243>+K249*<RO244>+K256*<RO245>+K263*<RO246>+K2 +!70*<RO247>+K286*<RO249>+K293*<RO251>+K296*<RO252> + PJAC(:,41,85)=+TPK%K235(:)*TPK%RO242(:)+TPK%K242(:)*TPK%RO243(:)+TPK%K249(:)*T& +&PK%RO244(:)+TPK%K256(:)*TPK%RO245(:)+TPK%K263(:)*TPK%RO246(:)+TPK%K270(:)*TPK%& +&RO247(:)+TPK%K286(:)*TPK%RO249(:)+TPK%K293(:)*TPK%RO251(:)+TPK%K296(:)*TPK%RO2& +&52(:) +! +!MGLY/RO21=0.0 +! +!MGLY/RO25=0.0 +! +!MGLY/WC_O3=0.0 +! +!MGLY/WC_H2O2=0.0 +! +!MGLY/WC_NO=0.0 +! +!MGLY/WC_NO2=0.0 +! +!MGLY/WC_NO3=0.0 +! +!MGLY/WC_N2O5=0.0 +! +!MGLY/WC_HONO=0.0 +! +!MGLY/WC_HNO3=0.0 +! +!MGLY/WC_HNO4=0.0 +! +!MGLY/WC_NH3=0.0 +! +!MGLY/WC_OH=0.0 +! +!MGLY/WC_HO2=0.0 +! +!MGLY/WC_CO2=0.0 +! +!MGLY/WC_SO2=0.0 +! +!MGLY/WC_H2SO4=0.0 +! +!MGLY/WC_RO21=0.0 +! +!MGLY/WC_RO25=0.0 +! +!MGLY/WC_MEOH=0.0 +! +!MGLY/WC_ETOH=0.0 +! +!MGLY/WC_ALCH=0.0 +! +!MGLY/WC_HCHO=0.0 +! +!MGLY/WC_ALD2=0.0 +! +!MGLY/WC_GLY=0.0 +! +!MGLY/WC_MGLY=+KTC56 + PJAC(:,41,111)=+TPK%KTC56(:) +! +!MGLY/WC_KETL=0.0 +! +!MGLY/WC_ORA1=0.0 +! +!MGLY/WC_ORA2=0.0 +! +!MGLY/WC_ACID=0.0 +! +!MGLY/WC_RP16=0.0 +! +!MGLY/WC_UR21=0.0 +! +!MGLY/WC_UR28=0.0 +! +!MGLY/WC_ACID2=0.0 +! +!MGLY/WC_ASO3=0.0 +! +!MGLY/WC_ASO4=0.0 +! +!MGLY/WC_ASO5=0.0 +! +!MGLY/WC_AHSO5=0.0 +! +!MGLY/WC_AHMS=0.0 +! +!MGLY/WR_O3=0.0 +! +!MGLY/WR_H2O2=0.0 +! +!MGLY/WR_NO=0.0 +! +!MGLY/WR_NO2=0.0 +! +!MGLY/WR_NO3=0.0 +! +!MGLY/WR_N2O5=0.0 +! +!MGLY/WR_HONO=0.0 +! +!MGLY/WR_HNO3=0.0 +! +!MGLY/WR_HNO4=0.0 +! +!MGLY/WR_NH3=0.0 +! +!MGLY/WR_OH=0.0 +! +!MGLY/WR_HO2=0.0 +! +!MGLY/WR_CO2=0.0 +! +!MGLY/WR_SO2=0.0 +! +!MGLY/WR_H2SO4=0.0 +! +!MGLY/WR_RO21=0.0 +! +!MGLY/WR_RO25=0.0 +! +!MGLY/WR_MEOH=0.0 +! +!MGLY/WR_ETOH=0.0 +! +!MGLY/WR_ALCH=0.0 +! +!MGLY/WR_HCHO=0.0 +! +!MGLY/WR_ALD2=0.0 +! +!MGLY/WR_GLY=0.0 +! +!MGLY/WR_MGLY=+KTR56 + PJAC(:,41,148)=+TPK%KTR56(:) +! +!MGLY/WR_KETL=0.0 +! +!MGLY/WR_ORA1=0.0 +! +!MGLY/WR_ORA2=0.0 +! +!MGLY/WR_ACID=0.0 +! +!MGLY/WR_RP16=0.0 +! +!MGLY/WR_UR21=0.0 +! +!MGLY/WR_UR28=0.0 +! +!MGLY/WR_ACID2=0.0 +! +!MGLY/WR_ASO3=0.0 +! +!MGLY/WR_ASO4=0.0 +! +!MGLY/WR_ASO5=0.0 +! +!MGLY/WR_AHSO5=0.0 +! +!MGLY/WR_AHMS=0.0 +! +!GLY/NO=0.0 +! +!GLY/NO2=0.0 +! +!GLY/O3=0.0 +! +!GLY/HONO=0.0 +! +!GLY/HNO3=0.0 +! +!GLY/HNO4=0.0 +! +!GLY/N2O5=0.0 +! +!GLY/NO3=0.0 +! +!GLY/NH3=0.0 +! +!GLY/HO2=0.0 +! +!GLY/CO=0.0 +! +!GLY/H2O2=0.0 +! +!GLY/SO2=0.0 +! +!GLY/H2SO4=0.0 +! +!GLY/OH=0.0 +! +!GLY/ETHE=0.0 +! +!GLY/OLEL=0.0 +! +!GLY/OLEH=0.0 +! +!GLY/ALKL=0.0 +! +!GLY/ALKM=0.0 +! +!GLY/ALKH=0.0 +! +!GLY/AROH=0.0 +! +!GLY/AROL=0.0 +! +!GLY/AROO=0.0 +! +!GLY/ARAL=0.0 +! +!GLY/ARAC=0.0 +! +!GLY/PAH=0.0 +! +!GLY/HCHO=0.0 +! +!GLY/ALD2=0.0 +! +!GLY/KETL=0.0 +! +!GLY/KETH=0.0 +! +!GLY/MEOH=0.0 +! +!GLY/ETOH=0.0 +! +!GLY/ALCH=0.0 +! +!GLY/ISOP=0.0 +! +!GLY/BIOL=0.0 +! +!GLY/BIOH=0.0 +! +!GLY/MTBE=0.0 +! +!GLY/MVK=0.0 +! +!GLY/MCR=0.0 +! +!GLY/MGLY=0.0 +! +!GLY/GLY=-KTC23-KTR23 + PJAC(:,42,42)=-TPK%KTC23(:)-TPK%KTR23(:) +! +!GLY/ORA1=0.0 +! +!GLY/ORA2=0.0 +! +!GLY/ACID=0.0 +! +!GLY/UR28=0.0 +! +!GLY/UR21=0.0 +! +!GLY/URG2=0.0 +! +!GLY/UR26=0.0 +! +!GLY/RPG2=0.0 +! +!GLY/RP18=0.0 +! +!GLY/RPG3=0.0 +! +!GLY/URG4=0.0 +! +!GLY/UR8=0.0 +! +!GLY/UR17=0.0 +! +!GLY/UR7=0.0 +! +!GLY/RPR3=0.0 +! +!GLY/URG6=0.0 +! +!GLY/UR22=0.0 +! +!GLY/URG7=0.0 +! +!GLY/RPR4=0.0 +! +!GLY/RPR7=0.0 +! +!GLY/RPG7=0.0 +! +!GLY/URG8=0.0 +! +!GLY/UR19=0.0 +! +!GLY/URG9=0.0 +! +!GLY/AP7=0.0 +! +!GLY/URG10=0.0 +! +!GLY/RPR1=0.0 +! +!GLY/RPR5=0.0 +! +!GLY/RPR8=0.0 +! +!GLY/RP10=0.0 +! +!GLY/RP11=0.0 +! +!GLY/RP16=0.0 +! +!GLY/RPRL=0.0 +! +!GLY/APAN=0.0 +! +!GLY/PAN1=0.0 +! +!GLY/PAN2=0.0 +! +!GLY/PAN3=0.0 +! +!GLY/PAN4=0.0 +! +!GLY/PAN6=0.0 +! +!GLY/PAN7=0.0 +! +!GLY/PAN8=0.0 +! +!GLY/PN10=0.0 +! +!GLY/RO2T=0.0 +! +!GLY/RO21=0.0 +! +!GLY/RO25=0.0 +! +!GLY/WC_O3=0.0 +! +!GLY/WC_H2O2=0.0 +! +!GLY/WC_NO=0.0 +! +!GLY/WC_NO2=0.0 +! +!GLY/WC_NO3=0.0 +! +!GLY/WC_N2O5=0.0 +! +!GLY/WC_HONO=0.0 +! +!GLY/WC_HNO3=0.0 +! +!GLY/WC_HNO4=0.0 +! +!GLY/WC_NH3=0.0 +! +!GLY/WC_OH=0.0 +! +!GLY/WC_HO2=0.0 +! +!GLY/WC_CO2=0.0 +! +!GLY/WC_SO2=0.0 +! +!GLY/WC_H2SO4=0.0 +! +!GLY/WC_RO21=0.0 +! +!GLY/WC_RO25=0.0 +! +!GLY/WC_MEOH=0.0 +! +!GLY/WC_ETOH=0.0 +! +!GLY/WC_ALCH=0.0 +! +!GLY/WC_HCHO=0.0 +! +!GLY/WC_ALD2=0.0 +! +!GLY/WC_GLY=+KTC54 + PJAC(:,42,110)=+TPK%KTC54(:) +! +!GLY/WC_MGLY=0.0 +! +!GLY/WC_KETL=0.0 +! +!GLY/WC_ORA1=0.0 +! +!GLY/WC_ORA2=0.0 +! +!GLY/WC_ACID=0.0 +! +!GLY/WC_RP16=0.0 +! +!GLY/WC_UR21=0.0 +! +!GLY/WC_UR28=0.0 +! +!GLY/WC_ACID2=0.0 +! +!GLY/WC_ASO3=0.0 +! +!GLY/WC_ASO4=0.0 +! +!GLY/WC_ASO5=0.0 +! +!GLY/WC_AHSO5=0.0 +! +!GLY/WC_AHMS=0.0 +! +!GLY/WR_O3=0.0 +! +!GLY/WR_H2O2=0.0 +! +!GLY/WR_NO=0.0 +! +!GLY/WR_NO2=0.0 +! +!GLY/WR_NO3=0.0 +! +!GLY/WR_N2O5=0.0 +! +!GLY/WR_HONO=0.0 +! +!GLY/WR_HNO3=0.0 +! +!GLY/WR_HNO4=0.0 +! +!GLY/WR_NH3=0.0 +! +!GLY/WR_OH=0.0 +! +!GLY/WR_HO2=0.0 +! +!GLY/WR_CO2=0.0 +! +!GLY/WR_SO2=0.0 +! +!GLY/WR_H2SO4=0.0 +! +!GLY/WR_RO21=0.0 +! +!GLY/WR_RO25=0.0 +! +!GLY/WR_MEOH=0.0 +! +!GLY/WR_ETOH=0.0 +! +!GLY/WR_ALCH=0.0 +! +!GLY/WR_HCHO=0.0 +! +!GLY/WR_ALD2=0.0 +! +!GLY/WR_GLY=+KTR54 + PJAC(:,42,147)=+TPK%KTR54(:) +! +!GLY/WR_MGLY=0.0 +! +!GLY/WR_KETL=0.0 +! +!GLY/WR_ORA1=0.0 +! +!GLY/WR_ORA2=0.0 +! +!GLY/WR_ACID=0.0 +! +!GLY/WR_RP16=0.0 +! +!GLY/WR_UR21=0.0 +! +!GLY/WR_UR28=0.0 +! +!GLY/WR_ACID2=0.0 +! +!GLY/WR_ASO3=0.0 +! +!GLY/WR_ASO4=0.0 +! +!GLY/WR_ASO5=0.0 +! +!GLY/WR_AHSO5=0.0 +! +!GLY/WR_AHMS=0.0 +! +!ORA1/NO=0.0 +! +!ORA1/NO2=0.0 +! +!ORA1/O3=+0.185*K051*<ETHE>+0.12*K056*<OLEL>+0.121*K066*<ISOP>+0.12*K281*<MVK>+ +!0.09*K282*<MCR> + PJAC(:,43,3)=+0.185*TPK%K051(:)*PCONC(:,16)+0.12*TPK%K056(:)*PCONC(:,17)+0.121& +&*TPK%K066(:)*PCONC(:,35)+0.12*TPK%K281(:)*PCONC(:,39)+0.09*TPK%K282(:)*PCONC(:& +&,40) +! +!ORA1/HONO=0.0 +! +!ORA1/HNO3=0.0 +! +!ORA1/HNO4=0.0 +! +!ORA1/N2O5=0.0 +! +!ORA1/NO3=0.0 +! +!ORA1/NH3=0.0 +! +!ORA1/HO2=0.0 +! +!ORA1/CO=0.0 +! +!ORA1/H2O2=0.0 +! +!ORA1/SO2=0.0 +! +!ORA1/H2SO4=0.0 +! +!ORA1/OH=-K347*<ORA1> + PJAC(:,43,15)=-TPK%K347(:)*PCONC(:,43) +! +!ORA1/ETHE=+0.185*K051*<O3> + PJAC(:,43,16)=+0.185*TPK%K051(:)*PCONC(:,3) +! +!ORA1/OLEL=+0.12*K056*<O3> + PJAC(:,43,17)=+0.12*TPK%K056(:)*PCONC(:,3) +! +!ORA1/OLEH=0.0 +! +!ORA1/ALKL=0.0 +! +!ORA1/ALKM=0.0 +! +!ORA1/ALKH=0.0 +! +!ORA1/AROH=0.0 +! +!ORA1/AROL=0.0 +! +!ORA1/AROO=0.0 +! +!ORA1/ARAL=0.0 +! +!ORA1/ARAC=0.0 +! +!ORA1/PAH=0.0 +! +!ORA1/HCHO=0.0 +! +!ORA1/ALD2=0.0 +! +!ORA1/KETL=0.0 +! +!ORA1/KETH=0.0 +! +!ORA1/MEOH=0.0 +! +!ORA1/ETOH=0.0 +! +!ORA1/ALCH=0.0 +! +!ORA1/ISOP=+0.121*K066*<O3> + PJAC(:,43,35)=+0.121*TPK%K066(:)*PCONC(:,3) +! +!ORA1/BIOL=0.0 +! +!ORA1/BIOH=0.0 +! +!ORA1/MTBE=0.0 +! +!ORA1/MVK=+0.12*K281*<O3> + PJAC(:,43,39)=+0.12*TPK%K281(:)*PCONC(:,3) +! +!ORA1/MCR=+0.09*K282*<O3> + PJAC(:,43,40)=+0.09*TPK%K282(:)*PCONC(:,3) +! +!ORA1/MGLY=0.0 +! +!ORA1/GLY=0.0 +! +!ORA1/ORA1=-K347*<OH>-KTC26-KTR26 + PJAC(:,43,43)=-TPK%K347(:)*PCONC(:,15)-TPK%KTC26(:)-TPK%KTR26(:) +! +!ORA1/ORA2=0.0 +! +!ORA1/ACID=0.0 +! +!ORA1/UR28=0.0 +! +!ORA1/UR21=0.0 +! +!ORA1/URG2=0.0 +! +!ORA1/UR26=0.0 +! +!ORA1/RPG2=0.0 +! +!ORA1/RP18=0.0 +! +!ORA1/RPG3=0.0 +! +!ORA1/URG4=0.0 +! +!ORA1/UR8=0.0 +! +!ORA1/UR17=0.0 +! +!ORA1/UR7=0.0 +! +!ORA1/RPR3=0.0 +! +!ORA1/URG6=0.0 +! +!ORA1/UR22=0.0 +! +!ORA1/URG7=0.0 +! +!ORA1/RPR4=0.0 +! +!ORA1/RPR7=0.0 +! +!ORA1/RPG7=0.0 +! +!ORA1/URG8=0.0 +! +!ORA1/UR19=0.0 +! +!ORA1/URG9=0.0 +! +!ORA1/AP7=0.0 +! +!ORA1/URG10=0.0 +! +!ORA1/RPR1=0.0 +! +!ORA1/RPR5=0.0 +! +!ORA1/RPR8=0.0 +! +!ORA1/RP10=0.0 +! +!ORA1/RP11=0.0 +! +!ORA1/RP16=0.0 +! +!ORA1/RPRL=0.0 +! +!ORA1/APAN=0.0 +! +!ORA1/PAN1=0.0 +! +!ORA1/PAN2=0.0 +! +!ORA1/PAN3=0.0 +! +!ORA1/PAN4=0.0 +! +!ORA1/PAN6=0.0 +! +!ORA1/PAN7=0.0 +! +!ORA1/PAN8=0.0 +! +!ORA1/PN10=0.0 +! +!ORA1/RO2T=0.0 +! +!ORA1/RO21=0.0 +! +!ORA1/RO25=0.0 +! +!ORA1/WC_O3=0.0 +! +!ORA1/WC_H2O2=0.0 +! +!ORA1/WC_NO=0.0 +! +!ORA1/WC_NO2=0.0 +! +!ORA1/WC_NO3=0.0 +! +!ORA1/WC_N2O5=0.0 +! +!ORA1/WC_HONO=0.0 +! +!ORA1/WC_HNO3=0.0 +! +!ORA1/WC_HNO4=0.0 +! +!ORA1/WC_NH3=0.0 +! +!ORA1/WC_OH=0.0 +! +!ORA1/WC_HO2=0.0 +! +!ORA1/WC_CO2=0.0 +! +!ORA1/WC_SO2=0.0 +! +!ORA1/WC_H2SO4=0.0 +! +!ORA1/WC_RO21=0.0 +! +!ORA1/WC_RO25=0.0 +! +!ORA1/WC_MEOH=0.0 +! +!ORA1/WC_ETOH=0.0 +! +!ORA1/WC_ALCH=0.0 +! +!ORA1/WC_HCHO=0.0 +! +!ORA1/WC_ALD2=0.0 +! +!ORA1/WC_GLY=0.0 +! +!ORA1/WC_MGLY=0.0 +! +!ORA1/WC_KETL=0.0 +! +!ORA1/WC_ORA1=+KTC57 + PJAC(:,43,113)=+TPK%KTC57(:) +! +!ORA1/WC_ORA2=0.0 +! +!ORA1/WC_ACID=0.0 +! +!ORA1/WC_RP16=0.0 +! +!ORA1/WC_UR21=0.0 +! +!ORA1/WC_UR28=0.0 +! +!ORA1/WC_ACID2=0.0 +! +!ORA1/WC_ASO3=0.0 +! +!ORA1/WC_ASO4=0.0 +! +!ORA1/WC_ASO5=0.0 +! +!ORA1/WC_AHSO5=0.0 +! +!ORA1/WC_AHMS=0.0 +! +!ORA1/WR_O3=0.0 +! +!ORA1/WR_H2O2=0.0 +! +!ORA1/WR_NO=0.0 +! +!ORA1/WR_NO2=0.0 +! +!ORA1/WR_NO3=0.0 +! +!ORA1/WR_N2O5=0.0 +! +!ORA1/WR_HONO=0.0 +! +!ORA1/WR_HNO3=0.0 +! +!ORA1/WR_HNO4=0.0 +! +!ORA1/WR_NH3=0.0 +! +!ORA1/WR_OH=0.0 +! +!ORA1/WR_HO2=0.0 +! +!ORA1/WR_CO2=0.0 +! +!ORA1/WR_SO2=0.0 +! +!ORA1/WR_H2SO4=0.0 +! +!ORA1/WR_RO21=0.0 +! +!ORA1/WR_RO25=0.0 +! +!ORA1/WR_MEOH=0.0 +! +!ORA1/WR_ETOH=0.0 +! +!ORA1/WR_ALCH=0.0 +! +!ORA1/WR_HCHO=0.0 +! +!ORA1/WR_ALD2=0.0 +! +!ORA1/WR_GLY=0.0 +! +!ORA1/WR_MGLY=0.0 +! +!ORA1/WR_KETL=0.0 +! +!ORA1/WR_ORA1=+KTR57 + PJAC(:,43,150)=+TPK%KTR57(:) +! +!ORA1/WR_ORA2=0.0 +! +!ORA1/WR_ACID=0.0 +! +!ORA1/WR_RP16=0.0 +! +!ORA1/WR_UR21=0.0 +! +!ORA1/WR_UR28=0.0 +! +!ORA1/WR_ACID2=0.0 +! +!ORA1/WR_ASO3=0.0 +! +!ORA1/WR_ASO4=0.0 +! +!ORA1/WR_ASO5=0.0 +! +!ORA1/WR_AHSO5=0.0 +! +!ORA1/WR_AHMS=0.0 +! +!ORA2/NO=0.0 +! +!ORA2/NO2=0.0 +! +!ORA2/O3=+0.12*K056*<OLEL> + PJAC(:,44,3)=+0.12*TPK%K056(:)*PCONC(:,17) +! +!ORA2/HONO=0.0 +! +!ORA2/HNO3=0.0 +! +!ORA2/HNO4=0.0 +! +!ORA2/N2O5=0.0 +! +!ORA2/NO3=0.0 +! +!ORA2/NH3=0.0 +! +!ORA2/HO2=+K142*<RO26>+K148*<RO28>+0.5*K166*<RO239>+0.5*K289*<RO250> + PJAC(:,44,10)=+TPK%K142(:)*TPK%RO26(:)+TPK%K148(:)*TPK%RO28(:)+0.5*TPK%K166(:)& +&*TPK%RO239(:)+0.5*TPK%K289(:)*TPK%RO250(:) +! +!ORA2/CO=0.0 +! +!ORA2/H2O2=0.0 +! +!ORA2/SO2=0.0 +! +!ORA2/H2SO4=0.0 +! +!ORA2/OH=-K348*<ORA2> + PJAC(:,44,15)=-TPK%K348(:)*PCONC(:,44) +! +!ORA2/ETHE=0.0 +! +!ORA2/OLEL=+0.12*K056*<O3> + PJAC(:,44,17)=+0.12*TPK%K056(:)*PCONC(:,3) +! +!ORA2/OLEH=0.0 +! +!ORA2/ALKL=0.0 +! +!ORA2/ALKM=0.0 +! +!ORA2/ALKH=0.0 +! +!ORA2/AROH=0.0 +! +!ORA2/AROL=0.0 +! +!ORA2/AROO=0.0 +! +!ORA2/ARAL=0.0 +! +!ORA2/ARAC=0.0 +! +!ORA2/PAH=0.0 +! +!ORA2/HCHO=0.0 +! +!ORA2/ALD2=0.0 +! +!ORA2/KETL=0.0 +! +!ORA2/KETH=0.0 +! +!ORA2/MEOH=0.0 +! +!ORA2/ETOH=0.0 +! +!ORA2/ALCH=0.0 +! +!ORA2/ISOP=0.0 +! +!ORA2/BIOL=0.0 +! +!ORA2/BIOH=0.0 +! +!ORA2/MTBE=0.0 +! +!ORA2/MVK=0.0 +! +!ORA2/MCR=0.0 +! +!ORA2/MGLY=0.0 +! +!ORA2/GLY=0.0 +! +!ORA2/ORA1=0.0 +! +!ORA2/ORA2=-K348*<OH>-KTC27-KTR27 + PJAC(:,44,44)=-TPK%K348(:)*PCONC(:,15)-TPK%KTC27(:)-TPK%KTR27(:) +! +!ORA2/ACID=0.0 +! +!ORA2/UR28=0.0 +! +!ORA2/UR21=0.0 +! +!ORA2/URG2=0.0 +! +!ORA2/UR26=0.0 +! +!ORA2/RPG2=0.0 +! +!ORA2/RP18=0.0 +! +!ORA2/RPG3=0.0 +! +!ORA2/URG4=0.0 +! +!ORA2/UR8=0.0 +! +!ORA2/UR17=0.0 +! +!ORA2/UR7=0.0 +! +!ORA2/RPR3=0.0 +! +!ORA2/URG6=0.0 +! +!ORA2/UR22=0.0 +! +!ORA2/URG7=0.0 +! +!ORA2/RPR4=0.0 +! +!ORA2/RPR7=0.0 +! +!ORA2/RPG7=0.0 +! +!ORA2/URG8=0.0 +! +!ORA2/UR19=0.0 +! +!ORA2/URG9=0.0 +! +!ORA2/AP7=0.0 +! +!ORA2/URG10=0.0 +! +!ORA2/RPR1=0.0 +! +!ORA2/RPR5=0.0 +! +!ORA2/RPR8=0.0 +! +!ORA2/RP10=0.0 +! +!ORA2/RP11=0.0 +! +!ORA2/RP16=0.0 +! +!ORA2/RPRL=0.0 +! +!ORA2/APAN=0.0 +! +!ORA2/PAN1=0.0 +! +!ORA2/PAN2=0.0 +! +!ORA2/PAN3=0.0 +! +!ORA2/PAN4=0.0 +! +!ORA2/PAN6=0.0 +! +!ORA2/PAN7=0.0 +! +!ORA2/PAN8=0.0 +! +!ORA2/PN10=0.0 +! +!ORA2/RO2T=0.0 +! +!ORA2/RO21=0.0 +! +!ORA2/RO25=0.0 +! +!ORA2/WC_O3=0.0 +! +!ORA2/WC_H2O2=0.0 +! +!ORA2/WC_NO=0.0 +! +!ORA2/WC_NO2=0.0 +! +!ORA2/WC_NO3=0.0 +! +!ORA2/WC_N2O5=0.0 +! +!ORA2/WC_HONO=0.0 +! +!ORA2/WC_HNO3=0.0 +! +!ORA2/WC_HNO4=0.0 +! +!ORA2/WC_NH3=0.0 +! +!ORA2/WC_OH=0.0 +! +!ORA2/WC_HO2=0.0 +! +!ORA2/WC_CO2=0.0 +! +!ORA2/WC_SO2=0.0 +! +!ORA2/WC_H2SO4=0.0 +! +!ORA2/WC_RO21=0.0 +! +!ORA2/WC_RO25=0.0 +! +!ORA2/WC_MEOH=0.0 +! +!ORA2/WC_ETOH=0.0 +! +!ORA2/WC_ALCH=0.0 +! +!ORA2/WC_HCHO=0.0 +! +!ORA2/WC_ALD2=0.0 +! +!ORA2/WC_GLY=0.0 +! +!ORA2/WC_MGLY=0.0 +! +!ORA2/WC_KETL=0.0 +! +!ORA2/WC_ORA1=0.0 +! +!ORA2/WC_ORA2=+KTC58 + PJAC(:,44,114)=+TPK%KTC58(:) +! +!ORA2/WC_ACID=0.0 +! +!ORA2/WC_RP16=0.0 +! +!ORA2/WC_UR21=0.0 +! +!ORA2/WC_UR28=0.0 +! +!ORA2/WC_ACID2=0.0 +! +!ORA2/WC_ASO3=0.0 +! +!ORA2/WC_ASO4=0.0 +! +!ORA2/WC_ASO5=0.0 +! +!ORA2/WC_AHSO5=0.0 +! +!ORA2/WC_AHMS=0.0 +! +!ORA2/WR_O3=0.0 +! +!ORA2/WR_H2O2=0.0 +! +!ORA2/WR_NO=0.0 +! +!ORA2/WR_NO2=0.0 +! +!ORA2/WR_NO3=0.0 +! +!ORA2/WR_N2O5=0.0 +! +!ORA2/WR_HONO=0.0 +! +!ORA2/WR_HNO3=0.0 +! +!ORA2/WR_HNO4=0.0 +! +!ORA2/WR_NH3=0.0 +! +!ORA2/WR_OH=0.0 +! +!ORA2/WR_HO2=0.0 +! +!ORA2/WR_CO2=0.0 +! +!ORA2/WR_SO2=0.0 +! +!ORA2/WR_H2SO4=0.0 +! +!ORA2/WR_RO21=0.0 +! +!ORA2/WR_RO25=0.0 +! +!ORA2/WR_MEOH=0.0 +! +!ORA2/WR_ETOH=0.0 +! +!ORA2/WR_ALCH=0.0 +! +!ORA2/WR_HCHO=0.0 +! +!ORA2/WR_ALD2=0.0 +! +!ORA2/WR_GLY=0.0 +! +!ORA2/WR_MGLY=0.0 +! +!ORA2/WR_KETL=0.0 +! +!ORA2/WR_ORA1=0.0 +! +!ORA2/WR_ORA2=+KTR58 + PJAC(:,44,151)=+TPK%KTR58(:) +! +!ORA2/WR_ACID=0.0 +! +!ORA2/WR_RP16=0.0 +! +!ORA2/WR_UR21=0.0 +! +!ORA2/WR_UR28=0.0 +! +!ORA2/WR_ACID2=0.0 +! +!ORA2/WR_ASO3=0.0 +! +!ORA2/WR_ASO4=0.0 +! +!ORA2/WR_ASO5=0.0 +! +!ORA2/WR_AHSO5=0.0 +! +!ORA2/WR_AHMS=0.0 +! +!ACID/NO=0.0 +! +!ACID/NO2=0.0 +! +!ACID/O3=+0.12*K076*<OLEH> + PJAC(:,45,3)=+0.12*TPK%K076(:)*PCONC(:,18) +! +!ACID/HONO=0.0 +! +!ACID/HNO3=0.0 +! +!ACID/HNO4=0.0 +! +!ACID/N2O5=0.0 +! +!ACID/NO3=0.0 +! +!ACID/NH3=0.0 +! +!ACID/HO2=+K142*<RO26>+K310*<RO255> + PJAC(:,45,10)=+TPK%K142(:)*TPK%RO26(:)+TPK%K310(:)*TPK%RO255(:) +! +!ACID/CO=0.0 +! +!ACID/H2O2=0.0 +! +!ACID/SO2=0.0 +! +!ACID/H2SO4=0.0 +! +!ACID/OH=-K349*<ACID> + PJAC(:,45,15)=-TPK%K349(:)*PCONC(:,45) +! +!ACID/ETHE=0.0 +! +!ACID/OLEL=0.0 +! +!ACID/OLEH=+0.12*K076*<O3> + PJAC(:,45,18)=+0.12*TPK%K076(:)*PCONC(:,3) +! +!ACID/ALKL=0.0 +! +!ACID/ALKM=0.0 +! +!ACID/ALKH=0.0 +! +!ACID/AROH=0.0 +! +!ACID/AROL=0.0 +! +!ACID/AROO=0.0 +! +!ACID/ARAL=0.0 +! +!ACID/ARAC=0.0 +! +!ACID/PAH=0.0 +! +!ACID/HCHO=0.0 +! +!ACID/ALD2=0.0 +! +!ACID/KETL=0.0 +! +!ACID/KETH=0.0 +! +!ACID/MEOH=0.0 +! +!ACID/ETOH=0.0 +! +!ACID/ALCH=0.0 +! +!ACID/ISOP=0.0 +! +!ACID/BIOL=0.0 +! +!ACID/BIOH=0.0 +! +!ACID/MTBE=0.0 +! +!ACID/MVK=0.0 +! +!ACID/MCR=0.0 +! +!ACID/MGLY=0.0 +! +!ACID/GLY=0.0 +! +!ACID/ORA1=0.0 +! +!ACID/ORA2=0.0 +! +!ACID/ACID=-K349*<OH>-KTC28-KTR28 + PJAC(:,45,45)=-TPK%K349(:)*PCONC(:,15)-TPK%KTC28(:)-TPK%KTR28(:) +! +!ACID/UR28=0.0 +! +!ACID/UR21=0.0 +! +!ACID/URG2=0.0 +! +!ACID/UR26=0.0 +! +!ACID/RPG2=0.0 +! +!ACID/RP18=0.0 +! +!ACID/RPG3=0.0 +! +!ACID/URG4=0.0 +! +!ACID/UR8=0.0 +! +!ACID/UR17=0.0 +! +!ACID/UR7=0.0 +! +!ACID/RPR3=0.0 +! +!ACID/URG6=0.0 +! +!ACID/UR22=0.0 +! +!ACID/URG7=0.0 +! +!ACID/RPR4=0.0 +! +!ACID/RPR7=0.0 +! +!ACID/RPG7=0.0 +! +!ACID/URG8=0.0 +! +!ACID/UR19=0.0 +! +!ACID/URG9=0.0 +! +!ACID/AP7=0.0 +! +!ACID/URG10=0.0 +! +!ACID/RPR1=0.0 +! +!ACID/RPR5=0.0 +! +!ACID/RPR8=0.0 +! +!ACID/RP10=0.0 +! +!ACID/RP11=0.0 +! +!ACID/RP16=0.0 +! +!ACID/RPRL=0.0 +! +!ACID/APAN=0.0 +! +!ACID/PAN1=0.0 +! +!ACID/PAN2=0.0 +! +!ACID/PAN3=0.0 +! +!ACID/PAN4=0.0 +! +!ACID/PAN6=0.0 +! +!ACID/PAN7=0.0 +! +!ACID/PAN8=0.0 +! +!ACID/PN10=0.0 +! +!ACID/RO2T=0.0 +! +!ACID/RO21=0.0 +! +!ACID/RO25=0.0 +! +!ACID/WC_O3=0.0 +! +!ACID/WC_H2O2=0.0 +! +!ACID/WC_NO=0.0 +! +!ACID/WC_NO2=0.0 +! +!ACID/WC_NO3=0.0 +! +!ACID/WC_N2O5=0.0 +! +!ACID/WC_HONO=0.0 +! +!ACID/WC_HNO3=0.0 +! +!ACID/WC_HNO4=0.0 +! +!ACID/WC_NH3=0.0 +! +!ACID/WC_OH=0.0 +! +!ACID/WC_HO2=0.0 +! +!ACID/WC_CO2=0.0 +! +!ACID/WC_SO2=0.0 +! +!ACID/WC_H2SO4=0.0 +! +!ACID/WC_RO21=0.0 +! +!ACID/WC_RO25=0.0 +! +!ACID/WC_MEOH=0.0 +! +!ACID/WC_ETOH=0.0 +! +!ACID/WC_ALCH=0.0 +! +!ACID/WC_HCHO=0.0 +! +!ACID/WC_ALD2=0.0 +! +!ACID/WC_GLY=0.0 +! +!ACID/WC_MGLY=0.0 +! +!ACID/WC_KETL=0.0 +! +!ACID/WC_ORA1=0.0 +! +!ACID/WC_ORA2=0.0 +! +!ACID/WC_ACID=+KTC59 + PJAC(:,45,115)=+TPK%KTC59(:) +! +!ACID/WC_RP16=0.0 +! +!ACID/WC_UR21=0.0 +! +!ACID/WC_UR28=0.0 +! +!ACID/WC_ACID2=0.0 +! +!ACID/WC_ASO3=0.0 +! +!ACID/WC_ASO4=0.0 +! +!ACID/WC_ASO5=0.0 +! +!ACID/WC_AHSO5=0.0 +! +!ACID/WC_AHMS=0.0 +! +!ACID/WR_O3=0.0 +! +!ACID/WR_H2O2=0.0 +! +!ACID/WR_NO=0.0 +! +!ACID/WR_NO2=0.0 +! +!ACID/WR_NO3=0.0 +! +!ACID/WR_N2O5=0.0 +! +!ACID/WR_HONO=0.0 +! +!ACID/WR_HNO3=0.0 +! +!ACID/WR_HNO4=0.0 +! +!ACID/WR_NH3=0.0 +! +!ACID/WR_OH=0.0 +! +!ACID/WR_HO2=0.0 +! +!ACID/WR_CO2=0.0 +! +!ACID/WR_SO2=0.0 +! +!ACID/WR_H2SO4=0.0 +! +!ACID/WR_RO21=0.0 +! +!ACID/WR_RO25=0.0 +! +!ACID/WR_MEOH=0.0 +! +!ACID/WR_ETOH=0.0 +! +!ACID/WR_ALCH=0.0 +! +!ACID/WR_HCHO=0.0 +! +!ACID/WR_ALD2=0.0 +! +!ACID/WR_GLY=0.0 +! +!ACID/WR_MGLY=0.0 +! +!ACID/WR_KETL=0.0 +! +!ACID/WR_ORA1=0.0 +! +!ACID/WR_ORA2=0.0 +! +!ACID/WR_ACID=+KTR59 + PJAC(:,45,152)=+TPK%KTR59(:) +! +!ACID/WR_RP16=0.0 +! +!ACID/WR_UR21=0.0 +! +!ACID/WR_UR28=0.0 +! +!ACID/WR_ACID2=0.0 +! +!ACID/WR_ASO3=0.0 +! +!ACID/WR_ASO4=0.0 +! +!ACID/WR_ASO5=0.0 +! +!ACID/WR_AHSO5=0.0 +! +!ACID/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ8 +! +SUBROUTINE SUBJ9 +! +!Indices 46 a 50 +! +! +!UR28/NO=0.0 +! +!UR28/NO2=0.0 +! +!UR28/O3=0.0 +! +!UR28/HONO=0.0 +! +!UR28/HNO3=0.0 +! +!UR28/HNO4=0.0 +! +!UR28/N2O5=0.0 +! +!UR28/NO3=0.0 +! +!UR28/NH3=0.0 +! +!UR28/HO2=+K341*<RO258> + PJAC(:,46,10)=+TPK%K341(:)*TPK%RO258(:) +! +!UR28/CO=0.0 +! +!UR28/H2O2=0.0 +! +!UR28/SO2=0.0 +! +!UR28/H2SO4=0.0 +! +!UR28/OH=0.0 +! +!UR28/ETHE=0.0 +! +!UR28/OLEL=0.0 +! +!UR28/OLEH=0.0 +! +!UR28/ALKL=0.0 +! +!UR28/ALKM=0.0 +! +!UR28/ALKH=0.0 +! +!UR28/AROH=0.0 +! +!UR28/AROL=0.0 +! +!UR28/AROO=0.0 +! +!UR28/ARAL=0.0 +! +!UR28/ARAC=0.0 +! +!UR28/PAH=0.0 +! +!UR28/HCHO=0.0 +! +!UR28/ALD2=0.0 +! +!UR28/KETL=0.0 +! +!UR28/KETH=0.0 +! +!UR28/MEOH=0.0 +! +!UR28/ETOH=0.0 +! +!UR28/ALCH=0.0 +! +!UR28/ISOP=0.0 +! +!UR28/BIOL=0.0 +! +!UR28/BIOH=0.0 +! +!UR28/MTBE=0.0 +! +!UR28/MVK=0.0 +! +!UR28/MCR=0.0 +! +!UR28/MGLY=0.0 +! +!UR28/GLY=0.0 +! +!UR28/ORA1=0.0 +! +!UR28/ORA2=0.0 +! +!UR28/ACID=0.0 +! +!UR28/UR28=-K364-KTC31-KTR31 + PJAC(:,46,46)=-TPK%K364(:)-TPK%KTC31(:)-TPK%KTR31(:) +! +!UR28/UR21=0.0 +! +!UR28/URG2=0.0 +! +!UR28/UR26=0.0 +! +!UR28/RPG2=0.0 +! +!UR28/RP18=0.0 +! +!UR28/RPG3=0.0 +! +!UR28/URG4=0.0 +! +!UR28/UR8=0.0 +! +!UR28/UR17=0.0 +! +!UR28/UR7=0.0 +! +!UR28/RPR3=0.0 +! +!UR28/URG6=0.0 +! +!UR28/UR22=0.0 +! +!UR28/URG7=0.0 +! +!UR28/RPR4=0.0 +! +!UR28/RPR7=0.0 +! +!UR28/RPG7=0.0 +! +!UR28/URG8=0.0 +! +!UR28/UR19=0.0 +! +!UR28/URG9=0.0 +! +!UR28/AP7=0.0 +! +!UR28/URG10=0.0 +! +!UR28/RPR1=0.0 +! +!UR28/RPR5=0.0 +! +!UR28/RPR8=0.0 +! +!UR28/RP10=0.0 +! +!UR28/RP11=0.0 +! +!UR28/RP16=0.0 +! +!UR28/RPRL=0.0 +! +!UR28/APAN=0.0 +! +!UR28/PAN1=0.0 +! +!UR28/PAN2=0.0 +! +!UR28/PAN3=0.0 +! +!UR28/PAN4=0.0 +! +!UR28/PAN6=0.0 +! +!UR28/PAN7=0.0 +! +!UR28/PAN8=0.0 +! +!UR28/PN10=0.0 +! +!UR28/RO2T=0.0 +! +!UR28/RO21=0.0 +! +!UR28/RO25=0.0 +! +!UR28/WC_O3=0.0 +! +!UR28/WC_H2O2=0.0 +! +!UR28/WC_NO=0.0 +! +!UR28/WC_NO2=0.0 +! +!UR28/WC_NO3=0.0 +! +!UR28/WC_N2O5=0.0 +! +!UR28/WC_HONO=0.0 +! +!UR28/WC_HNO3=0.0 +! +!UR28/WC_HNO4=0.0 +! +!UR28/WC_NH3=0.0 +! +!UR28/WC_OH=0.0 +! +!UR28/WC_HO2=0.0 +! +!UR28/WC_CO2=0.0 +! +!UR28/WC_SO2=0.0 +! +!UR28/WC_H2SO4=0.0 +! +!UR28/WC_RO21=0.0 +! +!UR28/WC_RO25=0.0 +! +!UR28/WC_MEOH=0.0 +! +!UR28/WC_ETOH=0.0 +! +!UR28/WC_ALCH=0.0 +! +!UR28/WC_HCHO=0.0 +! +!UR28/WC_ALD2=0.0 +! +!UR28/WC_GLY=0.0 +! +!UR28/WC_MGLY=0.0 +! +!UR28/WC_KETL=0.0 +! +!UR28/WC_ORA1=0.0 +! +!UR28/WC_ORA2=0.0 +! +!UR28/WC_ACID=0.0 +! +!UR28/WC_RP16=0.0 +! +!UR28/WC_UR21=0.0 +! +!UR28/WC_UR28=+KTC62 + PJAC(:,46,118)=+TPK%KTC62(:) +! +!UR28/WC_ACID2=0.0 +! +!UR28/WC_ASO3=0.0 +! +!UR28/WC_ASO4=0.0 +! +!UR28/WC_ASO5=0.0 +! +!UR28/WC_AHSO5=0.0 +! +!UR28/WC_AHMS=0.0 +! +!UR28/WR_O3=0.0 +! +!UR28/WR_H2O2=0.0 +! +!UR28/WR_NO=0.0 +! +!UR28/WR_NO2=0.0 +! +!UR28/WR_NO3=0.0 +! +!UR28/WR_N2O5=0.0 +! +!UR28/WR_HONO=0.0 +! +!UR28/WR_HNO3=0.0 +! +!UR28/WR_HNO4=0.0 +! +!UR28/WR_NH3=0.0 +! +!UR28/WR_OH=0.0 +! +!UR28/WR_HO2=0.0 +! +!UR28/WR_CO2=0.0 +! +!UR28/WR_SO2=0.0 +! +!UR28/WR_H2SO4=0.0 +! +!UR28/WR_RO21=0.0 +! +!UR28/WR_RO25=0.0 +! +!UR28/WR_MEOH=0.0 +! +!UR28/WR_ETOH=0.0 +! +!UR28/WR_ALCH=0.0 +! +!UR28/WR_HCHO=0.0 +! +!UR28/WR_ALD2=0.0 +! +!UR28/WR_GLY=0.0 +! +!UR28/WR_MGLY=0.0 +! +!UR28/WR_KETL=0.0 +! +!UR28/WR_ORA1=0.0 +! +!UR28/WR_ORA2=0.0 +! +!UR28/WR_ACID=0.0 +! +!UR28/WR_RP16=0.0 +! +!UR28/WR_UR21=0.0 +! +!UR28/WR_UR28=+KTR62 + PJAC(:,46,155)=+TPK%KTR62(:) +! +!UR28/WR_ACID2=0.0 +! +!UR28/WR_ASO3=0.0 +! +!UR28/WR_ASO4=0.0 +! +!UR28/WR_ASO5=0.0 +! +!UR28/WR_AHSO5=0.0 +! +!UR28/WR_AHMS=0.0 +! +!UR21/NO=0.0 +! +!UR21/NO2=0.0 +! +!UR21/O3=+0.12*K281*<MVK> + PJAC(:,47,3)=+0.12*TPK%K281(:)*PCONC(:,39) +! +!UR21/HONO=0.0 +! +!UR21/HNO3=0.0 +! +!UR21/HNO4=0.0 +! +!UR21/N2O5=0.0 +! +!UR21/NO3=0.0 +! +!UR21/NH3=0.0 +! +!UR21/HO2=+K279*<RO248> + PJAC(:,47,10)=+TPK%K279(:)*TPK%RO248(:) +! +!UR21/CO=0.0 +! +!UR21/H2O2=0.0 +! +!UR21/SO2=0.0 +! +!UR21/H2SO4=0.0 +! +!UR21/OH=0.0 +! +!UR21/ETHE=0.0 +! +!UR21/OLEL=0.0 +! +!UR21/OLEH=0.0 +! +!UR21/ALKL=0.0 +! +!UR21/ALKM=0.0 +! +!UR21/ALKH=0.0 +! +!UR21/AROH=0.0 +! +!UR21/AROL=0.0 +! +!UR21/AROO=0.0 +! +!UR21/ARAL=0.0 +! +!UR21/ARAC=0.0 +! +!UR21/PAH=0.0 +! +!UR21/HCHO=0.0 +! +!UR21/ALD2=0.0 +! +!UR21/KETL=0.0 +! +!UR21/KETH=0.0 +! +!UR21/MEOH=0.0 +! +!UR21/ETOH=0.0 +! +!UR21/ALCH=0.0 +! +!UR21/ISOP=0.0 +! +!UR21/BIOL=0.0 +! +!UR21/BIOH=0.0 +! +!UR21/MTBE=0.0 +! +!UR21/MVK=+0.12*K281*<O3> + PJAC(:,47,39)=+0.12*TPK%K281(:)*PCONC(:,3) +! +!UR21/MCR=0.0 +! +!UR21/MGLY=0.0 +! +!UR21/GLY=0.0 +! +!UR21/ORA1=0.0 +! +!UR21/ORA2=0.0 +! +!UR21/ACID=0.0 +! +!UR21/UR28=0.0 +! +!UR21/UR21=-K361-KTC30-KTR30 + PJAC(:,47,47)=-TPK%K361(:)-TPK%KTC30(:)-TPK%KTR30(:) +! +!UR21/URG2=0.0 +! +!UR21/UR26=0.0 +! +!UR21/RPG2=0.0 +! +!UR21/RP18=0.0 +! +!UR21/RPG3=0.0 +! +!UR21/URG4=0.0 +! +!UR21/UR8=0.0 +! +!UR21/UR17=0.0 +! +!UR21/UR7=0.0 +! +!UR21/RPR3=0.0 +! +!UR21/URG6=0.0 +! +!UR21/UR22=0.0 +! +!UR21/URG7=0.0 +! +!UR21/RPR4=0.0 +! +!UR21/RPR7=0.0 +! +!UR21/RPG7=0.0 +! +!UR21/URG8=0.0 +! +!UR21/UR19=0.0 +! +!UR21/URG9=0.0 +! +!UR21/AP7=0.0 +! +!UR21/URG10=0.0 +! +!UR21/RPR1=0.0 +! +!UR21/RPR5=0.0 +! +!UR21/RPR8=0.0 +! +!UR21/RP10=0.0 +! +!UR21/RP11=0.0 +! +!UR21/RP16=0.0 +! +!UR21/RPRL=0.0 +! +!UR21/APAN=0.0 +! +!UR21/PAN1=0.0 +! +!UR21/PAN2=0.0 +! +!UR21/PAN3=0.0 +! +!UR21/PAN4=0.0 +! +!UR21/PAN6=0.0 +! +!UR21/PAN7=0.0 +! +!UR21/PAN8=0.0 +! +!UR21/PN10=0.0 +! +!UR21/RO2T=0.0 +! +!UR21/RO21=0.0 +! +!UR21/RO25=0.0 +! +!UR21/WC_O3=0.0 +! +!UR21/WC_H2O2=0.0 +! +!UR21/WC_NO=0.0 +! +!UR21/WC_NO2=0.0 +! +!UR21/WC_NO3=0.0 +! +!UR21/WC_N2O5=0.0 +! +!UR21/WC_HONO=0.0 +! +!UR21/WC_HNO3=0.0 +! +!UR21/WC_HNO4=0.0 +! +!UR21/WC_NH3=0.0 +! +!UR21/WC_OH=0.0 +! +!UR21/WC_HO2=0.0 +! +!UR21/WC_CO2=0.0 +! +!UR21/WC_SO2=0.0 +! +!UR21/WC_H2SO4=0.0 +! +!UR21/WC_RO21=0.0 +! +!UR21/WC_RO25=0.0 +! +!UR21/WC_MEOH=0.0 +! +!UR21/WC_ETOH=0.0 +! +!UR21/WC_ALCH=0.0 +! +!UR21/WC_HCHO=0.0 +! +!UR21/WC_ALD2=0.0 +! +!UR21/WC_GLY=0.0 +! +!UR21/WC_MGLY=0.0 +! +!UR21/WC_KETL=0.0 +! +!UR21/WC_ORA1=0.0 +! +!UR21/WC_ORA2=0.0 +! +!UR21/WC_ACID=0.0 +! +!UR21/WC_RP16=0.0 +! +!UR21/WC_UR21=+KTC61 + PJAC(:,47,117)=+TPK%KTC61(:) +! +!UR21/WC_UR28=0.0 +! +!UR21/WC_ACID2=0.0 +! +!UR21/WC_ASO3=0.0 +! +!UR21/WC_ASO4=0.0 +! +!UR21/WC_ASO5=0.0 +! +!UR21/WC_AHSO5=0.0 +! +!UR21/WC_AHMS=0.0 +! +!UR21/WR_O3=0.0 +! +!UR21/WR_H2O2=0.0 +! +!UR21/WR_NO=0.0 +! +!UR21/WR_NO2=0.0 +! +!UR21/WR_NO3=0.0 +! +!UR21/WR_N2O5=0.0 +! +!UR21/WR_HONO=0.0 +! +!UR21/WR_HNO3=0.0 +! +!UR21/WR_HNO4=0.0 +! +!UR21/WR_NH3=0.0 +! +!UR21/WR_OH=0.0 +! +!UR21/WR_HO2=0.0 +! +!UR21/WR_CO2=0.0 +! +!UR21/WR_SO2=0.0 +! +!UR21/WR_H2SO4=0.0 +! +!UR21/WR_RO21=0.0 +! +!UR21/WR_RO25=0.0 +! +!UR21/WR_MEOH=0.0 +! +!UR21/WR_ETOH=0.0 +! +!UR21/WR_ALCH=0.0 +! +!UR21/WR_HCHO=0.0 +! +!UR21/WR_ALD2=0.0 +! +!UR21/WR_GLY=0.0 +! +!UR21/WR_MGLY=0.0 +! +!UR21/WR_KETL=0.0 +! +!UR21/WR_ORA1=0.0 +! +!UR21/WR_ORA2=0.0 +! +!UR21/WR_ACID=0.0 +! +!UR21/WR_RP16=0.0 +! +!UR21/WR_UR21=+KTR61 + PJAC(:,47,154)=+TPK%KTR61(:) +! +!UR21/WR_UR28=0.0 +! +!UR21/WR_ACID2=0.0 +! +!UR21/WR_ASO3=0.0 +! +!UR21/WR_ASO4=0.0 +! +!UR21/WR_ASO5=0.0 +! +!UR21/WR_AHSO5=0.0 +! +!UR21/WR_AHMS=0.0 +! +!URG2/NO=0.0 +! +!URG2/NO2=0.0 +! +!URG2/O3=0.0 +! +!URG2/HONO=0.0 +! +!URG2/HNO3=0.0 +! +!URG2/HNO4=0.0 +! +!URG2/N2O5=0.0 +! +!URG2/NO3=0.0 +! +!URG2/NH3=0.0 +! +!URG2/HO2=0.0 +! +!URG2/CO=0.0 +! +!URG2/H2O2=0.0 +! +!URG2/SO2=0.0 +! +!URG2/H2SO4=0.0 +! +!URG2/OH=+0.5562513*K335*<RPG2>+K337*<RP18> + PJAC(:,48,15)=+0.5562513*TPK%K335(:)*PCONC(:,50)+TPK%K337(:)*PCONC(:,51) +! +!URG2/ETHE=0.0 +! +!URG2/OLEL=0.0 +! +!URG2/OLEH=0.0 +! +!URG2/ALKL=0.0 +! +!URG2/ALKM=0.0 +! +!URG2/ALKH=0.0 +! +!URG2/AROH=0.0 +! +!URG2/AROL=0.0 +! +!URG2/AROO=0.0 +! +!URG2/ARAL=0.0 +! +!URG2/ARAC=0.0 +! +!URG2/PAH=0.0 +! +!URG2/HCHO=0.0 +! +!URG2/ALD2=0.0 +! +!URG2/KETL=0.0 +! +!URG2/KETH=0.0 +! +!URG2/MEOH=0.0 +! +!URG2/ETOH=0.0 +! +!URG2/ALCH=0.0 +! +!URG2/ISOP=0.0 +! +!URG2/BIOL=0.0 +! +!URG2/BIOH=0.0 +! +!URG2/MTBE=0.0 +! +!URG2/MVK=0.0 +! +!URG2/MCR=0.0 +! +!URG2/MGLY=0.0 +! +!URG2/GLY=0.0 +! +!URG2/ORA1=0.0 +! +!URG2/ORA2=0.0 +! +!URG2/ACID=0.0 +! +!URG2/UR28=0.0 +! +!URG2/UR21=0.0 +! +!URG2/URG2=-K350 + PJAC(:,48,48)=-TPK%K350(:) +! +!URG2/UR26=0.0 +! +!URG2/RPG2=+0.5562513*K335*<OH> + PJAC(:,48,50)=+0.5562513*TPK%K335(:)*PCONC(:,15) +! +!URG2/RP18=+K337*<OH> + PJAC(:,48,51)=+TPK%K337(:)*PCONC(:,15) +! +!URG2/RPG3=0.0 +! +!URG2/URG4=0.0 +! +!URG2/UR8=0.0 +! +!URG2/UR17=0.0 +! +!URG2/UR7=0.0 +! +!URG2/RPR3=0.0 +! +!URG2/URG6=0.0 +! +!URG2/UR22=0.0 +! +!URG2/URG7=0.0 +! +!URG2/RPR4=0.0 +! +!URG2/RPR7=0.0 +! +!URG2/RPG7=0.0 +! +!URG2/URG8=0.0 +! +!URG2/UR19=0.0 +! +!URG2/URG9=0.0 +! +!URG2/AP7=0.0 +! +!URG2/URG10=0.0 +! +!URG2/RPR1=0.0 +! +!URG2/RPR5=0.0 +! +!URG2/RPR8=0.0 +! +!URG2/RP10=0.0 +! +!URG2/RP11=0.0 +! +!URG2/RP16=0.0 +! +!URG2/RPRL=0.0 +! +!URG2/APAN=0.0 +! +!URG2/PAN1=0.0 +! +!URG2/PAN2=0.0 +! +!URG2/PAN3=0.0 +! +!URG2/PAN4=0.0 +! +!URG2/PAN6=0.0 +! +!URG2/PAN7=0.0 +! +!URG2/PAN8=0.0 +! +!URG2/PN10=0.0 +! +!URG2/RO2T=0.0 +! +!URG2/RO21=0.0 +! +!URG2/RO25=0.0 +! +!URG2/WC_O3=0.0 +! +!URG2/WC_H2O2=0.0 +! +!URG2/WC_NO=0.0 +! +!URG2/WC_NO2=0.0 +! +!URG2/WC_NO3=0.0 +! +!URG2/WC_N2O5=0.0 +! +!URG2/WC_HONO=0.0 +! +!URG2/WC_HNO3=0.0 +! +!URG2/WC_HNO4=0.0 +! +!URG2/WC_NH3=0.0 +! +!URG2/WC_OH=0.0 +! +!URG2/WC_HO2=0.0 +! +!URG2/WC_CO2=0.0 +! +!URG2/WC_SO2=0.0 +! +!URG2/WC_H2SO4=0.0 +! +!URG2/WC_RO21=0.0 +! +!URG2/WC_RO25=0.0 +! +!URG2/WC_MEOH=0.0 +! +!URG2/WC_ETOH=0.0 +! +!URG2/WC_ALCH=0.0 +! +!URG2/WC_HCHO=0.0 +! +!URG2/WC_ALD2=0.0 +! +!URG2/WC_GLY=0.0 +! +!URG2/WC_MGLY=0.0 +! +!URG2/WC_KETL=0.0 +! +!URG2/WC_ORA1=0.0 +! +!URG2/WC_ORA2=0.0 +! +!URG2/WC_ACID=0.0 +! +!URG2/WC_RP16=0.0 +! +!URG2/WC_UR21=0.0 +! +!URG2/WC_UR28=0.0 +! +!URG2/WC_ACID2=0.0 +! +!URG2/WC_ASO3=0.0 +! +!URG2/WC_ASO4=0.0 +! +!URG2/WC_ASO5=0.0 +! +!URG2/WC_AHSO5=0.0 +! +!URG2/WC_AHMS=0.0 +! +!URG2/WR_O3=0.0 +! +!URG2/WR_H2O2=0.0 +! +!URG2/WR_NO=0.0 +! +!URG2/WR_NO2=0.0 +! +!URG2/WR_NO3=0.0 +! +!URG2/WR_N2O5=0.0 +! +!URG2/WR_HONO=0.0 +! +!URG2/WR_HNO3=0.0 +! +!URG2/WR_HNO4=0.0 +! +!URG2/WR_NH3=0.0 +! +!URG2/WR_OH=0.0 +! +!URG2/WR_HO2=0.0 +! +!URG2/WR_CO2=0.0 +! +!URG2/WR_SO2=0.0 +! +!URG2/WR_H2SO4=0.0 +! +!URG2/WR_RO21=0.0 +! +!URG2/WR_RO25=0.0 +! +!URG2/WR_MEOH=0.0 +! +!URG2/WR_ETOH=0.0 +! +!URG2/WR_ALCH=0.0 +! +!URG2/WR_HCHO=0.0 +! +!URG2/WR_ALD2=0.0 +! +!URG2/WR_GLY=0.0 +! +!URG2/WR_MGLY=0.0 +! +!URG2/WR_KETL=0.0 +! +!URG2/WR_ORA1=0.0 +! +!URG2/WR_ORA2=0.0 +! +!URG2/WR_ACID=0.0 +! +!URG2/WR_RP16=0.0 +! +!URG2/WR_UR21=0.0 +! +!URG2/WR_UR28=0.0 +! +!URG2/WR_ACID2=0.0 +! +!URG2/WR_ASO3=0.0 +! +!URG2/WR_ASO4=0.0 +! +!URG2/WR_ASO5=0.0 +! +!URG2/WR_AHSO5=0.0 +! +!URG2/WR_AHMS=0.0 +! +!UR26/NO=0.0 +! +!UR26/NO2=0.0 +! +!UR26/O3=0.0 +! +!UR26/HONO=0.0 +! +!UR26/HNO3=0.0 +! +!UR26/HNO4=0.0 +! +!UR26/N2O5=0.0 +! +!UR26/NO3=0.0 +! +!UR26/NH3=0.0 +! +!UR26/HO2=0.0 +! +!UR26/CO=0.0 +! +!UR26/H2O2=0.0 +! +!UR26/SO2=0.0 +! +!UR26/H2SO4=0.0 +! +!UR26/OH=+0.67*K326*<RP11> + PJAC(:,49,15)=+0.67*TPK%K326(:)*PCONC(:,73) +! +!UR26/ETHE=0.0 +! +!UR26/OLEL=0.0 +! +!UR26/OLEH=0.0 +! +!UR26/ALKL=0.0 +! +!UR26/ALKM=0.0 +! +!UR26/ALKH=0.0 +! +!UR26/AROH=0.0 +! +!UR26/AROL=0.0 +! +!UR26/AROO=0.0 +! +!UR26/ARAL=0.0 +! +!UR26/ARAC=0.0 +! +!UR26/PAH=0.0 +! +!UR26/HCHO=0.0 +! +!UR26/ALD2=0.0 +! +!UR26/KETL=0.0 +! +!UR26/KETH=0.0 +! +!UR26/MEOH=0.0 +! +!UR26/ETOH=0.0 +! +!UR26/ALCH=0.0 +! +!UR26/ISOP=0.0 +! +!UR26/BIOL=0.0 +! +!UR26/BIOH=0.0 +! +!UR26/MTBE=0.0 +! +!UR26/MVK=0.0 +! +!UR26/MCR=0.0 +! +!UR26/MGLY=0.0 +! +!UR26/GLY=0.0 +! +!UR26/ORA1=0.0 +! +!UR26/ORA2=0.0 +! +!UR26/ACID=0.0 +! +!UR26/UR28=0.0 +! +!UR26/UR21=0.0 +! +!UR26/URG2=0.0 +! +!UR26/UR26=-K363 + PJAC(:,49,49)=-TPK%K363(:) +! +!UR26/RPG2=0.0 +! +!UR26/RP18=0.0 +! +!UR26/RPG3=0.0 +! +!UR26/URG4=0.0 +! +!UR26/UR8=0.0 +! +!UR26/UR17=0.0 +! +!UR26/UR7=0.0 +! +!UR26/RPR3=0.0 +! +!UR26/URG6=0.0 +! +!UR26/UR22=0.0 +! +!UR26/URG7=0.0 +! +!UR26/RPR4=0.0 +! +!UR26/RPR7=0.0 +! +!UR26/RPG7=0.0 +! +!UR26/URG8=0.0 +! +!UR26/UR19=0.0 +! +!UR26/URG9=0.0 +! +!UR26/AP7=0.0 +! +!UR26/URG10=0.0 +! +!UR26/RPR1=0.0 +! +!UR26/RPR5=0.0 +! +!UR26/RPR8=0.0 +! +!UR26/RP10=0.0 +! +!UR26/RP11=+0.67*K326*<OH> + PJAC(:,49,73)=+0.67*TPK%K326(:)*PCONC(:,15) +! +!UR26/RP16=0.0 +! +!UR26/RPRL=0.0 +! +!UR26/APAN=0.0 +! +!UR26/PAN1=0.0 +! +!UR26/PAN2=0.0 +! +!UR26/PAN3=0.0 +! +!UR26/PAN4=0.0 +! +!UR26/PAN6=0.0 +! +!UR26/PAN7=0.0 +! +!UR26/PAN8=0.0 +! +!UR26/PN10=0.0 +! +!UR26/RO2T=0.0 +! +!UR26/RO21=0.0 +! +!UR26/RO25=0.0 +! +!UR26/WC_O3=0.0 +! +!UR26/WC_H2O2=0.0 +! +!UR26/WC_NO=0.0 +! +!UR26/WC_NO2=0.0 +! +!UR26/WC_NO3=0.0 +! +!UR26/WC_N2O5=0.0 +! +!UR26/WC_HONO=0.0 +! +!UR26/WC_HNO3=0.0 +! +!UR26/WC_HNO4=0.0 +! +!UR26/WC_NH3=0.0 +! +!UR26/WC_OH=0.0 +! +!UR26/WC_HO2=0.0 +! +!UR26/WC_CO2=0.0 +! +!UR26/WC_SO2=0.0 +! +!UR26/WC_H2SO4=0.0 +! +!UR26/WC_RO21=0.0 +! +!UR26/WC_RO25=0.0 +! +!UR26/WC_MEOH=0.0 +! +!UR26/WC_ETOH=0.0 +! +!UR26/WC_ALCH=0.0 +! +!UR26/WC_HCHO=0.0 +! +!UR26/WC_ALD2=0.0 +! +!UR26/WC_GLY=0.0 +! +!UR26/WC_MGLY=0.0 +! +!UR26/WC_KETL=0.0 +! +!UR26/WC_ORA1=0.0 +! +!UR26/WC_ORA2=0.0 +! +!UR26/WC_ACID=0.0 +! +!UR26/WC_RP16=0.0 +! +!UR26/WC_UR21=0.0 +! +!UR26/WC_UR28=0.0 +! +!UR26/WC_ACID2=0.0 +! +!UR26/WC_ASO3=0.0 +! +!UR26/WC_ASO4=0.0 +! +!UR26/WC_ASO5=0.0 +! +!UR26/WC_AHSO5=0.0 +! +!UR26/WC_AHMS=0.0 +! +!UR26/WR_O3=0.0 +! +!UR26/WR_H2O2=0.0 +! +!UR26/WR_NO=0.0 +! +!UR26/WR_NO2=0.0 +! +!UR26/WR_NO3=0.0 +! +!UR26/WR_N2O5=0.0 +! +!UR26/WR_HONO=0.0 +! +!UR26/WR_HNO3=0.0 +! +!UR26/WR_HNO4=0.0 +! +!UR26/WR_NH3=0.0 +! +!UR26/WR_OH=0.0 +! +!UR26/WR_HO2=0.0 +! +!UR26/WR_CO2=0.0 +! +!UR26/WR_SO2=0.0 +! +!UR26/WR_H2SO4=0.0 +! +!UR26/WR_RO21=0.0 +! +!UR26/WR_RO25=0.0 +! +!UR26/WR_MEOH=0.0 +! +!UR26/WR_ETOH=0.0 +! +!UR26/WR_ALCH=0.0 +! +!UR26/WR_HCHO=0.0 +! +!UR26/WR_ALD2=0.0 +! +!UR26/WR_GLY=0.0 +! +!UR26/WR_MGLY=0.0 +! +!UR26/WR_KETL=0.0 +! +!UR26/WR_ORA1=0.0 +! +!UR26/WR_ORA2=0.0 +! +!UR26/WR_ACID=0.0 +! +!UR26/WR_RP16=0.0 +! +!UR26/WR_UR21=0.0 +! +!UR26/WR_UR28=0.0 +! +!UR26/WR_ACID2=0.0 +! +!UR26/WR_ASO3=0.0 +! +!UR26/WR_ASO4=0.0 +! +!UR26/WR_ASO5=0.0 +! +!UR26/WR_AHSO5=0.0 +! +!UR26/WR_AHMS=0.0 +! +!RPG2/NO=+0.3000000*K259*<RO237> + PJAC(:,50,1)=+0.3000000*TPK%K259(:)*TPK%RO237(:) +! +!RPG2/NO2=0.0 +! +!RPG2/O3=0.0 +! +!RPG2/HONO=0.0 +! +!RPG2/HNO3=0.0 +! +!RPG2/HNO4=0.0 +! +!RPG2/N2O5=0.0 +! +!RPG2/NO3=0.0 +! +!RPG2/NH3=0.0 +! +!RPG2/HO2=+0.3000000*K261*<RO237> + PJAC(:,50,10)=+0.3000000*TPK%K261(:)*TPK%RO237(:) +! +!RPG2/CO=0.0 +! +!RPG2/H2O2=0.0 +! +!RPG2/SO2=0.0 +! +!RPG2/H2SO4=0.0 +! +!RPG2/OH=+0.1191897*K334*<RPG3>+0.8808107*K334*<RPG3>-K335*<RPG2> + PJAC(:,50,15)=+0.1191897*TPK%K334(:)*PCONC(:,52)+0.8808107*TPK%K334(:)*PCONC(:& +&,52)-TPK%K335(:)*PCONC(:,50) +! +!RPG2/ETHE=0.0 +! +!RPG2/OLEL=0.0 +! +!RPG2/OLEH=0.0 +! +!RPG2/ALKL=0.0 +! +!RPG2/ALKM=0.0 +! +!RPG2/ALKH=0.0 +! +!RPG2/AROH=0.0 +! +!RPG2/AROL=0.0 +! +!RPG2/AROO=0.0 +! +!RPG2/ARAL=0.0 +! +!RPG2/ARAC=0.0 +! +!RPG2/PAH=0.0 +! +!RPG2/HCHO=0.0 +! +!RPG2/ALD2=0.0 +! +!RPG2/KETL=0.0 +! +!RPG2/KETH=0.0 +! +!RPG2/MEOH=0.0 +! +!RPG2/ETOH=0.0 +! +!RPG2/ALCH=0.0 +! +!RPG2/ISOP=0.0 +! +!RPG2/BIOL=0.0 +! +!RPG2/BIOH=0.0 +! +!RPG2/MTBE=0.0 +! +!RPG2/MVK=0.0 +! +!RPG2/MCR=0.0 +! +!RPG2/MGLY=0.0 +! +!RPG2/GLY=0.0 +! +!RPG2/ORA1=0.0 +! +!RPG2/ORA2=0.0 +! +!RPG2/ACID=0.0 +! +!RPG2/UR28=0.0 +! +!RPG2/UR21=0.0 +! +!RPG2/URG2=0.0 +! +!RPG2/UR26=0.0 +! +!RPG2/RPG2=-K335*<OH> + PJAC(:,50,50)=-TPK%K335(:)*PCONC(:,15) +! +!RPG2/RP18=0.0 +! +!RPG2/RPG3=+0.1191897*K334*<OH>+0.8808107*K334*<OH> + PJAC(:,50,52)=+0.1191897*TPK%K334(:)*PCONC(:,15)+0.8808107*TPK%K334(:)*PCONC(:& +&,15) +! +!RPG2/URG4=0.0 +! +!RPG2/UR8=0.0 +! +!RPG2/UR17=0.0 +! +!RPG2/UR7=0.0 +! +!RPG2/RPR3=0.0 +! +!RPG2/URG6=0.0 +! +!RPG2/UR22=0.0 +! +!RPG2/URG7=0.0 +! +!RPG2/RPR4=0.0 +! +!RPG2/RPR7=0.0 +! +!RPG2/RPG7=0.0 +! +!RPG2/URG8=0.0 +! +!RPG2/UR19=0.0 +! +!RPG2/URG9=0.0 +! +!RPG2/AP7=0.0 +! +!RPG2/URG10=0.0 +! +!RPG2/RPR1=0.0 +! +!RPG2/RPR5=0.0 +! +!RPG2/RPR8=0.0 +! +!RPG2/RP10=0.0 +! +!RPG2/RP11=0.0 +! +!RPG2/RP16=0.0 +! +!RPG2/RPRL=0.0 +! +!RPG2/APAN=0.0 +! +!RPG2/PAN1=0.0 +! +!RPG2/PAN2=0.0 +! +!RPG2/PAN3=0.0 +! +!RPG2/PAN4=0.0 +! +!RPG2/PAN6=0.0 +! +!RPG2/PAN7=0.0 +! +!RPG2/PAN8=0.0 +! +!RPG2/PN10=0.0 +! +!RPG2/RO2T=+1.0000000*K260*<RO237> + PJAC(:,50,85)=+1.0000000*TPK%K260(:)*TPK%RO237(:) +! +!RPG2/RO21=0.0 +! +!RPG2/RO25=0.0 +! +!RPG2/WC_O3=0.0 +! +!RPG2/WC_H2O2=0.0 +! +!RPG2/WC_NO=0.0 +! +!RPG2/WC_NO2=0.0 +! +!RPG2/WC_NO3=0.0 +! +!RPG2/WC_N2O5=0.0 +! +!RPG2/WC_HONO=0.0 +! +!RPG2/WC_HNO3=0.0 +! +!RPG2/WC_HNO4=0.0 +! +!RPG2/WC_NH3=0.0 +! +!RPG2/WC_OH=0.0 +! +!RPG2/WC_HO2=0.0 +! +!RPG2/WC_CO2=0.0 +! +!RPG2/WC_SO2=0.0 +! +!RPG2/WC_H2SO4=0.0 +! +!RPG2/WC_RO21=0.0 +! +!RPG2/WC_RO25=0.0 +! +!RPG2/WC_MEOH=0.0 +! +!RPG2/WC_ETOH=0.0 +! +!RPG2/WC_ALCH=0.0 +! +!RPG2/WC_HCHO=0.0 +! +!RPG2/WC_ALD2=0.0 +! +!RPG2/WC_GLY=0.0 +! +!RPG2/WC_MGLY=0.0 +! +!RPG2/WC_KETL=0.0 +! +!RPG2/WC_ORA1=0.0 +! +!RPG2/WC_ORA2=0.0 +! +!RPG2/WC_ACID=0.0 +! +!RPG2/WC_RP16=0.0 +! +!RPG2/WC_UR21=0.0 +! +!RPG2/WC_UR28=0.0 +! +!RPG2/WC_ACID2=0.0 +! +!RPG2/WC_ASO3=0.0 +! +!RPG2/WC_ASO4=0.0 +! +!RPG2/WC_ASO5=0.0 +! +!RPG2/WC_AHSO5=0.0 +! +!RPG2/WC_AHMS=0.0 +! +!RPG2/WR_O3=0.0 +! +!RPG2/WR_H2O2=0.0 +! +!RPG2/WR_NO=0.0 +! +!RPG2/WR_NO2=0.0 +! +!RPG2/WR_NO3=0.0 +! +!RPG2/WR_N2O5=0.0 +! +!RPG2/WR_HONO=0.0 +! +!RPG2/WR_HNO3=0.0 +! +!RPG2/WR_HNO4=0.0 +! +!RPG2/WR_NH3=0.0 +! +!RPG2/WR_OH=0.0 +! +!RPG2/WR_HO2=0.0 +! +!RPG2/WR_CO2=0.0 +! +!RPG2/WR_SO2=0.0 +! +!RPG2/WR_H2SO4=0.0 +! +!RPG2/WR_RO21=0.0 +! +!RPG2/WR_RO25=0.0 +! +!RPG2/WR_MEOH=0.0 +! +!RPG2/WR_ETOH=0.0 +! +!RPG2/WR_ALCH=0.0 +! +!RPG2/WR_HCHO=0.0 +! +!RPG2/WR_ALD2=0.0 +! +!RPG2/WR_GLY=0.0 +! +!RPG2/WR_MGLY=0.0 +! +!RPG2/WR_KETL=0.0 +! +!RPG2/WR_ORA1=0.0 +! +!RPG2/WR_ORA2=0.0 +! +!RPG2/WR_ACID=0.0 +! +!RPG2/WR_RP16=0.0 +! +!RPG2/WR_UR21=0.0 +! +!RPG2/WR_UR28=0.0 +! +!RPG2/WR_ACID2=0.0 +! +!RPG2/WR_ASO3=0.0 +! +!RPG2/WR_ASO4=0.0 +! +!RPG2/WR_ASO5=0.0 +! +!RPG2/WR_AHSO5=0.0 +! +!RPG2/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ9 +! +SUBROUTINE SUBJ10 +! +!Indices 51 a 55 +! +! +!RP18/NO=0.0 +! +!RP18/NO2=0.0 +! +!RP18/O3=0.0 +! +!RP18/HONO=0.0 +! +!RP18/HNO3=0.0 +! +!RP18/HNO4=0.0 +! +!RP18/N2O5=0.0 +! +!RP18/NO3=0.0 +! +!RP18/NH3=0.0 +! +!RP18/HO2=0.0 +! +!RP18/CO=0.0 +! +!RP18/H2O2=0.0 +! +!RP18/SO2=0.0 +! +!RP18/H2SO4=0.0 +! +!RP18/OH=+0.4437492*K335*<RPG2>-K337*<RP18> + PJAC(:,51,15)=+0.4437492*TPK%K335(:)*PCONC(:,50)-TPK%K337(:)*PCONC(:,51) +! +!RP18/ETHE=0.0 +! +!RP18/OLEL=0.0 +! +!RP18/OLEH=0.0 +! +!RP18/ALKL=0.0 +! +!RP18/ALKM=0.0 +! +!RP18/ALKH=0.0 +! +!RP18/AROH=0.0 +! +!RP18/AROL=0.0 +! +!RP18/AROO=0.0 +! +!RP18/ARAL=0.0 +! +!RP18/ARAC=0.0 +! +!RP18/PAH=0.0 +! +!RP18/HCHO=0.0 +! +!RP18/ALD2=0.0 +! +!RP18/KETL=0.0 +! +!RP18/KETH=0.0 +! +!RP18/MEOH=0.0 +! +!RP18/ETOH=0.0 +! +!RP18/ALCH=0.0 +! +!RP18/ISOP=0.0 +! +!RP18/BIOL=0.0 +! +!RP18/BIOH=0.0 +! +!RP18/MTBE=0.0 +! +!RP18/MVK=0.0 +! +!RP18/MCR=0.0 +! +!RP18/MGLY=0.0 +! +!RP18/GLY=0.0 +! +!RP18/ORA1=0.0 +! +!RP18/ORA2=0.0 +! +!RP18/ACID=0.0 +! +!RP18/UR28=0.0 +! +!RP18/UR21=0.0 +! +!RP18/URG2=0.0 +! +!RP18/UR26=0.0 +! +!RP18/RPG2=+0.4437492*K335*<OH> + PJAC(:,51,50)=+0.4437492*TPK%K335(:)*PCONC(:,15) +! +!RP18/RP18=-K337*<OH> + PJAC(:,51,51)=-TPK%K337(:)*PCONC(:,15) +! +!RP18/RPG3=0.0 +! +!RP18/URG4=0.0 +! +!RP18/UR8=0.0 +! +!RP18/UR17=0.0 +! +!RP18/UR7=0.0 +! +!RP18/RPR3=0.0 +! +!RP18/URG6=0.0 +! +!RP18/UR22=0.0 +! +!RP18/URG7=0.0 +! +!RP18/RPR4=0.0 +! +!RP18/RPR7=0.0 +! +!RP18/RPG7=0.0 +! +!RP18/URG8=0.0 +! +!RP18/UR19=0.0 +! +!RP18/URG9=0.0 +! +!RP18/AP7=0.0 +! +!RP18/URG10=0.0 +! +!RP18/RPR1=0.0 +! +!RP18/RPR5=0.0 +! +!RP18/RPR8=0.0 +! +!RP18/RP10=0.0 +! +!RP18/RP11=0.0 +! +!RP18/RP16=0.0 +! +!RP18/RPRL=0.0 +! +!RP18/APAN=0.0 +! +!RP18/PAN1=0.0 +! +!RP18/PAN2=0.0 +! +!RP18/PAN3=0.0 +! +!RP18/PAN4=0.0 +! +!RP18/PAN6=0.0 +! +!RP18/PAN7=0.0 +! +!RP18/PAN8=0.0 +! +!RP18/PN10=0.0 +! +!RP18/RO2T=0.0 +! +!RP18/RO21=0.0 +! +!RP18/RO25=0.0 +! +!RP18/WC_O3=0.0 +! +!RP18/WC_H2O2=0.0 +! +!RP18/WC_NO=0.0 +! +!RP18/WC_NO2=0.0 +! +!RP18/WC_NO3=0.0 +! +!RP18/WC_N2O5=0.0 +! +!RP18/WC_HONO=0.0 +! +!RP18/WC_HNO3=0.0 +! +!RP18/WC_HNO4=0.0 +! +!RP18/WC_NH3=0.0 +! +!RP18/WC_OH=0.0 +! +!RP18/WC_HO2=0.0 +! +!RP18/WC_CO2=0.0 +! +!RP18/WC_SO2=0.0 +! +!RP18/WC_H2SO4=0.0 +! +!RP18/WC_RO21=0.0 +! +!RP18/WC_RO25=0.0 +! +!RP18/WC_MEOH=0.0 +! +!RP18/WC_ETOH=0.0 +! +!RP18/WC_ALCH=0.0 +! +!RP18/WC_HCHO=0.0 +! +!RP18/WC_ALD2=0.0 +! +!RP18/WC_GLY=0.0 +! +!RP18/WC_MGLY=0.0 +! +!RP18/WC_KETL=0.0 +! +!RP18/WC_ORA1=0.0 +! +!RP18/WC_ORA2=0.0 +! +!RP18/WC_ACID=0.0 +! +!RP18/WC_RP16=0.0 +! +!RP18/WC_UR21=0.0 +! +!RP18/WC_UR28=0.0 +! +!RP18/WC_ACID2=0.0 +! +!RP18/WC_ASO3=0.0 +! +!RP18/WC_ASO4=0.0 +! +!RP18/WC_ASO5=0.0 +! +!RP18/WC_AHSO5=0.0 +! +!RP18/WC_AHMS=0.0 +! +!RP18/WR_O3=0.0 +! +!RP18/WR_H2O2=0.0 +! +!RP18/WR_NO=0.0 +! +!RP18/WR_NO2=0.0 +! +!RP18/WR_NO3=0.0 +! +!RP18/WR_N2O5=0.0 +! +!RP18/WR_HONO=0.0 +! +!RP18/WR_HNO3=0.0 +! +!RP18/WR_HNO4=0.0 +! +!RP18/WR_NH3=0.0 +! +!RP18/WR_OH=0.0 +! +!RP18/WR_HO2=0.0 +! +!RP18/WR_CO2=0.0 +! +!RP18/WR_SO2=0.0 +! +!RP18/WR_H2SO4=0.0 +! +!RP18/WR_RO21=0.0 +! +!RP18/WR_RO25=0.0 +! +!RP18/WR_MEOH=0.0 +! +!RP18/WR_ETOH=0.0 +! +!RP18/WR_ALCH=0.0 +! +!RP18/WR_HCHO=0.0 +! +!RP18/WR_ALD2=0.0 +! +!RP18/WR_GLY=0.0 +! +!RP18/WR_MGLY=0.0 +! +!RP18/WR_KETL=0.0 +! +!RP18/WR_ORA1=0.0 +! +!RP18/WR_ORA2=0.0 +! +!RP18/WR_ACID=0.0 +! +!RP18/WR_RP16=0.0 +! +!RP18/WR_UR21=0.0 +! +!RP18/WR_UR28=0.0 +! +!RP18/WR_ACID2=0.0 +! +!RP18/WR_ASO3=0.0 +! +!RP18/WR_ASO4=0.0 +! +!RP18/WR_ASO5=0.0 +! +!RP18/WR_AHSO5=0.0 +! +!RP18/WR_AHMS=0.0 +! +!RPG3/NO=+0.3000000*K231*<RO233>+0.3000000*K252*<RO236> + PJAC(:,52,1)=+0.3000000*TPK%K231(:)*TPK%RO233(:)+0.3000000*TPK%K252(:)*TPK%RO2& +&36(:) +! +!RPG3/NO2=0.0 +! +!RPG3/O3=0.0 +! +!RPG3/HONO=0.0 +! +!RPG3/HNO3=0.0 +! +!RPG3/HNO4=0.0 +! +!RPG3/N2O5=0.0 +! +!RPG3/NO3=0.0 +! +!RPG3/NH3=0.0 +! +!RPG3/HO2=+0.3000000*K233*<RO233>+0.3000000*K254*<RO236> + PJAC(:,52,10)=+0.3000000*TPK%K233(:)*TPK%RO233(:)+0.3000000*TPK%K254(:)*TPK%RO& +&236(:) +! +!RPG3/CO=0.0 +! +!RPG3/H2O2=0.0 +! +!RPG3/SO2=0.0 +! +!RPG3/H2SO4=0.0 +! +!RPG3/OH=-K334*<RPG3> + PJAC(:,52,15)=-TPK%K334(:)*PCONC(:,52) +! +!RPG3/ETHE=0.0 +! +!RPG3/OLEL=0.0 +! +!RPG3/OLEH=0.0 +! +!RPG3/ALKL=0.0 +! +!RPG3/ALKM=0.0 +! +!RPG3/ALKH=0.0 +! +!RPG3/AROH=0.0 +! +!RPG3/AROL=0.0 +! +!RPG3/AROO=0.0 +! +!RPG3/ARAL=0.0 +! +!RPG3/ARAC=0.0 +! +!RPG3/PAH=0.0 +! +!RPG3/HCHO=0.0 +! +!RPG3/ALD2=0.0 +! +!RPG3/KETL=0.0 +! +!RPG3/KETH=0.0 +! +!RPG3/MEOH=0.0 +! +!RPG3/ETOH=0.0 +! +!RPG3/ALCH=0.0 +! +!RPG3/ISOP=0.0 +! +!RPG3/BIOL=0.0 +! +!RPG3/BIOH=0.0 +! +!RPG3/MTBE=0.0 +! +!RPG3/MVK=0.0 +! +!RPG3/MCR=0.0 +! +!RPG3/MGLY=0.0 +! +!RPG3/GLY=0.0 +! +!RPG3/ORA1=0.0 +! +!RPG3/ORA2=0.0 +! +!RPG3/ACID=0.0 +! +!RPG3/UR28=0.0 +! +!RPG3/UR21=0.0 +! +!RPG3/URG2=0.0 +! +!RPG3/UR26=0.0 +! +!RPG3/RPG2=0.0 +! +!RPG3/RP18=0.0 +! +!RPG3/RPG3=-K334*<OH> + PJAC(:,52,52)=-TPK%K334(:)*PCONC(:,15) +! +!RPG3/URG4=0.0 +! +!RPG3/UR8=0.0 +! +!RPG3/UR17=0.0 +! +!RPG3/UR7=0.0 +! +!RPG3/RPR3=0.0 +! +!RPG3/URG6=0.0 +! +!RPG3/UR22=0.0 +! +!RPG3/URG7=0.0 +! +!RPG3/RPR4=0.0 +! +!RPG3/RPR7=0.0 +! +!RPG3/RPG7=0.0 +! +!RPG3/URG8=0.0 +! +!RPG3/UR19=0.0 +! +!RPG3/URG9=0.0 +! +!RPG3/AP7=0.0 +! +!RPG3/URG10=0.0 +! +!RPG3/RPR1=0.0 +! +!RPG3/RPR5=0.0 +! +!RPG3/RPR8=0.0 +! +!RPG3/RP10=0.0 +! +!RPG3/RP11=0.0 +! +!RPG3/RP16=0.0 +! +!RPG3/RPRL=0.0 +! +!RPG3/APAN=0.0 +! +!RPG3/PAN1=0.0 +! +!RPG3/PAN2=0.0 +! +!RPG3/PAN3=0.0 +! +!RPG3/PAN4=0.0 +! +!RPG3/PAN6=0.0 +! +!RPG3/PAN7=0.0 +! +!RPG3/PAN8=0.0 +! +!RPG3/PN10=0.0 +! +!RPG3/RO2T=+1.0000000*K232*<RO233>+1.0000000*K253*<RO236> + PJAC(:,52,85)=+1.0000000*TPK%K232(:)*TPK%RO233(:)+1.0000000*TPK%K253(:)*TPK%RO& +&236(:) +! +!RPG3/RO21=0.0 +! +!RPG3/RO25=0.0 +! +!RPG3/WC_O3=0.0 +! +!RPG3/WC_H2O2=0.0 +! +!RPG3/WC_NO=0.0 +! +!RPG3/WC_NO2=0.0 +! +!RPG3/WC_NO3=0.0 +! +!RPG3/WC_N2O5=0.0 +! +!RPG3/WC_HONO=0.0 +! +!RPG3/WC_HNO3=0.0 +! +!RPG3/WC_HNO4=0.0 +! +!RPG3/WC_NH3=0.0 +! +!RPG3/WC_OH=0.0 +! +!RPG3/WC_HO2=0.0 +! +!RPG3/WC_CO2=0.0 +! +!RPG3/WC_SO2=0.0 +! +!RPG3/WC_H2SO4=0.0 +! +!RPG3/WC_RO21=0.0 +! +!RPG3/WC_RO25=0.0 +! +!RPG3/WC_MEOH=0.0 +! +!RPG3/WC_ETOH=0.0 +! +!RPG3/WC_ALCH=0.0 +! +!RPG3/WC_HCHO=0.0 +! +!RPG3/WC_ALD2=0.0 +! +!RPG3/WC_GLY=0.0 +! +!RPG3/WC_MGLY=0.0 +! +!RPG3/WC_KETL=0.0 +! +!RPG3/WC_ORA1=0.0 +! +!RPG3/WC_ORA2=0.0 +! +!RPG3/WC_ACID=0.0 +! +!RPG3/WC_RP16=0.0 +! +!RPG3/WC_UR21=0.0 +! +!RPG3/WC_UR28=0.0 +! +!RPG3/WC_ACID2=0.0 +! +!RPG3/WC_ASO3=0.0 +! +!RPG3/WC_ASO4=0.0 +! +!RPG3/WC_ASO5=0.0 +! +!RPG3/WC_AHSO5=0.0 +! +!RPG3/WC_AHMS=0.0 +! +!RPG3/WR_O3=0.0 +! +!RPG3/WR_H2O2=0.0 +! +!RPG3/WR_NO=0.0 +! +!RPG3/WR_NO2=0.0 +! +!RPG3/WR_NO3=0.0 +! +!RPG3/WR_N2O5=0.0 +! +!RPG3/WR_HONO=0.0 +! +!RPG3/WR_HNO3=0.0 +! +!RPG3/WR_HNO4=0.0 +! +!RPG3/WR_NH3=0.0 +! +!RPG3/WR_OH=0.0 +! +!RPG3/WR_HO2=0.0 +! +!RPG3/WR_CO2=0.0 +! +!RPG3/WR_SO2=0.0 +! +!RPG3/WR_H2SO4=0.0 +! +!RPG3/WR_RO21=0.0 +! +!RPG3/WR_RO25=0.0 +! +!RPG3/WR_MEOH=0.0 +! +!RPG3/WR_ETOH=0.0 +! +!RPG3/WR_ALCH=0.0 +! +!RPG3/WR_HCHO=0.0 +! +!RPG3/WR_ALD2=0.0 +! +!RPG3/WR_GLY=0.0 +! +!RPG3/WR_MGLY=0.0 +! +!RPG3/WR_KETL=0.0 +! +!RPG3/WR_ORA1=0.0 +! +!RPG3/WR_ORA2=0.0 +! +!RPG3/WR_ACID=0.0 +! +!RPG3/WR_RP16=0.0 +! +!RPG3/WR_UR21=0.0 +! +!RPG3/WR_UR28=0.0 +! +!RPG3/WR_ACID2=0.0 +! +!RPG3/WR_ASO3=0.0 +! +!RPG3/WR_ASO4=0.0 +! +!RPG3/WR_ASO5=0.0 +! +!RPG3/WR_AHSO5=0.0 +! +!RPG3/WR_AHMS=0.0 +! +!URG4/NO=0.0 +! +!URG4/NO2=0.0 +! +!URG4/O3=-02*K086*<BIOL> + PJAC(:,53,3)=-02*TPK%K086(:)*PCONC(:,36) +! +!URG4/HONO=0.0 +! +!URG4/HNO3=0.0 +! +!URG4/HNO4=0.0 +! +!URG4/N2O5=0.0 +! +!URG4/NO3=0.0 +! +!URG4/NH3=0.0 +! +!URG4/HO2=+1.0000000*K318*<RO256>+1.0000000*K332*<RO257> + PJAC(:,53,10)=+1.0000000*TPK%K318(:)*TPK%RO256(:)+1.0000000*TPK%K332(:)*TPK%RO& +&257(:) +! +!URG4/CO=0.0 +! +!URG4/H2O2=0.0 +! +!URG4/SO2=0.0 +! +!URG4/H2SO4=0.0 +! +!URG4/OH=0.0 +! +!URG4/ETHE=0.0 +! +!URG4/OLEL=0.0 +! +!URG4/OLEH=0.0 +! +!URG4/ALKL=0.0 +! +!URG4/ALKM=0.0 +! +!URG4/ALKH=0.0 +! +!URG4/AROH=0.0 +! +!URG4/AROL=0.0 +! +!URG4/AROO=0.0 +! +!URG4/ARAL=0.0 +! +!URG4/ARAC=0.0 +! +!URG4/PAH=0.0 +! +!URG4/HCHO=0.0 +! +!URG4/ALD2=0.0 +! +!URG4/KETL=0.0 +! +!URG4/KETH=0.0 +! +!URG4/MEOH=0.0 +! +!URG4/ETOH=0.0 +! +!URG4/ALCH=0.0 +! +!URG4/ISOP=0.0 +! +!URG4/BIOL=-02*K086*<O3> + PJAC(:,53,36)=-02*TPK%K086(:)*PCONC(:,3) +! +!URG4/BIOH=0.0 +! +!URG4/MTBE=0.0 +! +!URG4/MVK=0.0 +! +!URG4/MCR=0.0 +! +!URG4/MGLY=0.0 +! +!URG4/GLY=0.0 +! +!URG4/ORA1=0.0 +! +!URG4/ORA2=0.0 +! +!URG4/ACID=0.0 +! +!URG4/UR28=0.0 +! +!URG4/UR21=0.0 +! +!URG4/URG2=0.0 +! +!URG4/UR26=0.0 +! +!URG4/RPG2=0.0 +! +!URG4/RP18=0.0 +! +!URG4/RPG3=0.0 +! +!URG4/URG4=-K351 + PJAC(:,53,53)=-TPK%K351(:) +! +!URG4/UR8=0.0 +! +!URG4/UR17=0.0 +! +!URG4/UR7=0.0 +! +!URG4/RPR3=0.0 +! +!URG4/URG6=0.0 +! +!URG4/UR22=0.0 +! +!URG4/URG7=0.0 +! +!URG4/RPR4=0.0 +! +!URG4/RPR7=0.0 +! +!URG4/RPG7=0.0 +! +!URG4/URG8=0.0 +! +!URG4/UR19=0.0 +! +!URG4/URG9=0.0 +! +!URG4/AP7=0.0 +! +!URG4/URG10=0.0 +! +!URG4/RPR1=0.0 +! +!URG4/RPR5=0.0 +! +!URG4/RPR8=0.0 +! +!URG4/RP10=0.0 +! +!URG4/RP11=0.0 +! +!URG4/RP16=0.0 +! +!URG4/RPRL=0.0 +! +!URG4/APAN=0.0 +! +!URG4/PAN1=0.0 +! +!URG4/PAN2=0.0 +! +!URG4/PAN3=0.0 +! +!URG4/PAN4=0.0 +! +!URG4/PAN6=0.0 +! +!URG4/PAN7=0.0 +! +!URG4/PAN8=0.0 +! +!URG4/PN10=0.0 +! +!URG4/RO2T=0.0 +! +!URG4/RO21=0.0 +! +!URG4/RO25=0.0 +! +!URG4/WC_O3=0.0 +! +!URG4/WC_H2O2=0.0 +! +!URG4/WC_NO=0.0 +! +!URG4/WC_NO2=0.0 +! +!URG4/WC_NO3=0.0 +! +!URG4/WC_N2O5=0.0 +! +!URG4/WC_HONO=0.0 +! +!URG4/WC_HNO3=0.0 +! +!URG4/WC_HNO4=0.0 +! +!URG4/WC_NH3=0.0 +! +!URG4/WC_OH=0.0 +! +!URG4/WC_HO2=0.0 +! +!URG4/WC_CO2=0.0 +! +!URG4/WC_SO2=0.0 +! +!URG4/WC_H2SO4=0.0 +! +!URG4/WC_RO21=0.0 +! +!URG4/WC_RO25=0.0 +! +!URG4/WC_MEOH=0.0 +! +!URG4/WC_ETOH=0.0 +! +!URG4/WC_ALCH=0.0 +! +!URG4/WC_HCHO=0.0 +! +!URG4/WC_ALD2=0.0 +! +!URG4/WC_GLY=0.0 +! +!URG4/WC_MGLY=0.0 +! +!URG4/WC_KETL=0.0 +! +!URG4/WC_ORA1=0.0 +! +!URG4/WC_ORA2=0.0 +! +!URG4/WC_ACID=0.0 +! +!URG4/WC_RP16=0.0 +! +!URG4/WC_UR21=0.0 +! +!URG4/WC_UR28=0.0 +! +!URG4/WC_ACID2=0.0 +! +!URG4/WC_ASO3=0.0 +! +!URG4/WC_ASO4=0.0 +! +!URG4/WC_ASO5=0.0 +! +!URG4/WC_AHSO5=0.0 +! +!URG4/WC_AHMS=0.0 +! +!URG4/WR_O3=0.0 +! +!URG4/WR_H2O2=0.0 +! +!URG4/WR_NO=0.0 +! +!URG4/WR_NO2=0.0 +! +!URG4/WR_NO3=0.0 +! +!URG4/WR_N2O5=0.0 +! +!URG4/WR_HONO=0.0 +! +!URG4/WR_HNO3=0.0 +! +!URG4/WR_HNO4=0.0 +! +!URG4/WR_NH3=0.0 +! +!URG4/WR_OH=0.0 +! +!URG4/WR_HO2=0.0 +! +!URG4/WR_CO2=0.0 +! +!URG4/WR_SO2=0.0 +! +!URG4/WR_H2SO4=0.0 +! +!URG4/WR_RO21=0.0 +! +!URG4/WR_RO25=0.0 +! +!URG4/WR_MEOH=0.0 +! +!URG4/WR_ETOH=0.0 +! +!URG4/WR_ALCH=0.0 +! +!URG4/WR_HCHO=0.0 +! +!URG4/WR_ALD2=0.0 +! +!URG4/WR_GLY=0.0 +! +!URG4/WR_MGLY=0.0 +! +!URG4/WR_KETL=0.0 +! +!URG4/WR_ORA1=0.0 +! +!URG4/WR_ORA2=0.0 +! +!URG4/WR_ACID=0.0 +! +!URG4/WR_RP16=0.0 +! +!URG4/WR_UR21=0.0 +! +!URG4/WR_UR28=0.0 +! +!URG4/WR_ACID2=0.0 +! +!URG4/WR_ASO3=0.0 +! +!URG4/WR_ASO4=0.0 +! +!URG4/WR_ASO5=0.0 +! +!URG4/WR_AHSO5=0.0 +! +!URG4/WR_AHMS=0.0 +! +!UR8/NO=0.0 +! +!UR8/NO2=0.0 +! +!UR8/O3=+0.055*K090*<BIOH> + PJAC(:,54,3)=+0.055*TPK%K090(:)*PCONC(:,37) +! +!UR8/HONO=0.0 +! +!UR8/HNO3=0.0 +! +!UR8/HNO4=0.0 +! +!UR8/N2O5=0.0 +! +!UR8/NO3=0.0 +! +!UR8/NH3=0.0 +! +!UR8/HO2=0.0 +! +!UR8/CO=0.0 +! +!UR8/H2O2=0.0 +! +!UR8/SO2=0.0 +! +!UR8/H2SO4=0.0 +! +!UR8/OH=0.0 +! +!UR8/ETHE=0.0 +! +!UR8/OLEL=0.0 +! +!UR8/OLEH=0.0 +! +!UR8/ALKL=0.0 +! +!UR8/ALKM=0.0 +! +!UR8/ALKH=0.0 +! +!UR8/AROH=0.0 +! +!UR8/AROL=0.0 +! +!UR8/AROO=0.0 +! +!UR8/ARAL=0.0 +! +!UR8/ARAC=0.0 +! +!UR8/PAH=0.0 +! +!UR8/HCHO=0.0 +! +!UR8/ALD2=0.0 +! +!UR8/KETL=0.0 +! +!UR8/KETH=0.0 +! +!UR8/MEOH=0.0 +! +!UR8/ETOH=0.0 +! +!UR8/ALCH=0.0 +! +!UR8/ISOP=0.0 +! +!UR8/BIOL=0.0 +! +!UR8/BIOH=+0.055*K090*<O3> + PJAC(:,54,37)=+0.055*TPK%K090(:)*PCONC(:,3) +! +!UR8/MTBE=0.0 +! +!UR8/MVK=0.0 +! +!UR8/MCR=0.0 +! +!UR8/MGLY=0.0 +! +!UR8/GLY=0.0 +! +!UR8/ORA1=0.0 +! +!UR8/ORA2=0.0 +! +!UR8/ACID=0.0 +! +!UR8/UR28=0.0 +! +!UR8/UR21=0.0 +! +!UR8/URG2=0.0 +! +!UR8/UR26=0.0 +! +!UR8/RPG2=0.0 +! +!UR8/RP18=0.0 +! +!UR8/RPG3=0.0 +! +!UR8/URG4=0.0 +! +!UR8/UR8=-K358 + PJAC(:,54,54)=-TPK%K358(:) +! +!UR8/UR17=0.0 +! +!UR8/UR7=0.0 +! +!UR8/RPR3=0.0 +! +!UR8/URG6=0.0 +! +!UR8/UR22=0.0 +! +!UR8/URG7=0.0 +! +!UR8/RPR4=0.0 +! +!UR8/RPR7=0.0 +! +!UR8/RPG7=0.0 +! +!UR8/URG8=0.0 +! +!UR8/UR19=0.0 +! +!UR8/URG9=0.0 +! +!UR8/AP7=0.0 +! +!UR8/URG10=0.0 +! +!UR8/RPR1=0.0 +! +!UR8/RPR5=0.0 +! +!UR8/RPR8=0.0 +! +!UR8/RP10=0.0 +! +!UR8/RP11=0.0 +! +!UR8/RP16=0.0 +! +!UR8/RPRL=0.0 +! +!UR8/APAN=0.0 +! +!UR8/PAN1=0.0 +! +!UR8/PAN2=0.0 +! +!UR8/PAN3=0.0 +! +!UR8/PAN4=0.0 +! +!UR8/PAN6=0.0 +! +!UR8/PAN7=0.0 +! +!UR8/PAN8=0.0 +! +!UR8/PN10=0.0 +! +!UR8/RO2T=0.0 +! +!UR8/RO21=0.0 +! +!UR8/RO25=0.0 +! +!UR8/WC_O3=0.0 +! +!UR8/WC_H2O2=0.0 +! +!UR8/WC_NO=0.0 +! +!UR8/WC_NO2=0.0 +! +!UR8/WC_NO3=0.0 +! +!UR8/WC_N2O5=0.0 +! +!UR8/WC_HONO=0.0 +! +!UR8/WC_HNO3=0.0 +! +!UR8/WC_HNO4=0.0 +! +!UR8/WC_NH3=0.0 +! +!UR8/WC_OH=0.0 +! +!UR8/WC_HO2=0.0 +! +!UR8/WC_CO2=0.0 +! +!UR8/WC_SO2=0.0 +! +!UR8/WC_H2SO4=0.0 +! +!UR8/WC_RO21=0.0 +! +!UR8/WC_RO25=0.0 +! +!UR8/WC_MEOH=0.0 +! +!UR8/WC_ETOH=0.0 +! +!UR8/WC_ALCH=0.0 +! +!UR8/WC_HCHO=0.0 +! +!UR8/WC_ALD2=0.0 +! +!UR8/WC_GLY=0.0 +! +!UR8/WC_MGLY=0.0 +! +!UR8/WC_KETL=0.0 +! +!UR8/WC_ORA1=0.0 +! +!UR8/WC_ORA2=0.0 +! +!UR8/WC_ACID=0.0 +! +!UR8/WC_RP16=0.0 +! +!UR8/WC_UR21=0.0 +! +!UR8/WC_UR28=0.0 +! +!UR8/WC_ACID2=0.0 +! +!UR8/WC_ASO3=0.0 +! +!UR8/WC_ASO4=0.0 +! +!UR8/WC_ASO5=0.0 +! +!UR8/WC_AHSO5=0.0 +! +!UR8/WC_AHMS=0.0 +! +!UR8/WR_O3=0.0 +! +!UR8/WR_H2O2=0.0 +! +!UR8/WR_NO=0.0 +! +!UR8/WR_NO2=0.0 +! +!UR8/WR_NO3=0.0 +! +!UR8/WR_N2O5=0.0 +! +!UR8/WR_HONO=0.0 +! +!UR8/WR_HNO3=0.0 +! +!UR8/WR_HNO4=0.0 +! +!UR8/WR_NH3=0.0 +! +!UR8/WR_OH=0.0 +! +!UR8/WR_HO2=0.0 +! +!UR8/WR_CO2=0.0 +! +!UR8/WR_SO2=0.0 +! +!UR8/WR_H2SO4=0.0 +! +!UR8/WR_RO21=0.0 +! +!UR8/WR_RO25=0.0 +! +!UR8/WR_MEOH=0.0 +! +!UR8/WR_ETOH=0.0 +! +!UR8/WR_ALCH=0.0 +! +!UR8/WR_HCHO=0.0 +! +!UR8/WR_ALD2=0.0 +! +!UR8/WR_GLY=0.0 +! +!UR8/WR_MGLY=0.0 +! +!UR8/WR_KETL=0.0 +! +!UR8/WR_ORA1=0.0 +! +!UR8/WR_ORA2=0.0 +! +!UR8/WR_ACID=0.0 +! +!UR8/WR_RP16=0.0 +! +!UR8/WR_UR21=0.0 +! +!UR8/WR_UR28=0.0 +! +!UR8/WR_ACID2=0.0 +! +!UR8/WR_ASO3=0.0 +! +!UR8/WR_ASO4=0.0 +! +!UR8/WR_ASO5=0.0 +! +!UR8/WR_AHSO5=0.0 +! +!UR8/WR_AHMS=0.0 +! +!UR17/NO=+1.0000000*K204*<RO226> + PJAC(:,55,1)=+1.0000000*TPK%K204(:)*TPK%RO226(:) +! +!UR17/NO2=0.0 +! +!UR17/O3=0.0 +! +!UR17/HONO=0.0 +! +!UR17/HNO3=0.0 +! +!UR17/HNO4=0.0 +! +!UR17/N2O5=0.0 +! +!UR17/NO3=0.0 +! +!UR17/NH3=0.0 +! +!UR17/HO2=+1.0000000*K206*<RO226> + PJAC(:,55,10)=+1.0000000*TPK%K206(:)*TPK%RO226(:) +! +!UR17/CO=0.0 +! +!UR17/H2O2=0.0 +! +!UR17/SO2=0.0 +! +!UR17/H2SO4=0.0 +! +!UR17/OH=0.0 +! +!UR17/ETHE=0.0 +! +!UR17/OLEL=0.0 +! +!UR17/OLEH=0.0 +! +!UR17/ALKL=0.0 +! +!UR17/ALKM=0.0 +! +!UR17/ALKH=0.0 +! +!UR17/AROH=0.0 +! +!UR17/AROL=0.0 +! +!UR17/AROO=0.0 +! +!UR17/ARAL=0.0 +! +!UR17/ARAC=0.0 +! +!UR17/PAH=0.0 +! +!UR17/HCHO=0.0 +! +!UR17/ALD2=0.0 +! +!UR17/KETL=0.0 +! +!UR17/KETH=0.0 +! +!UR17/MEOH=0.0 +! +!UR17/ETOH=0.0 +! +!UR17/ALCH=0.0 +! +!UR17/ISOP=0.0 +! +!UR17/BIOL=0.0 +! +!UR17/BIOH=0.0 +! +!UR17/MTBE=0.0 +! +!UR17/MVK=0.0 +! +!UR17/MCR=0.0 +! +!UR17/MGLY=0.0 +! +!UR17/GLY=0.0 +! +!UR17/ORA1=0.0 +! +!UR17/ORA2=0.0 +! +!UR17/ACID=0.0 +! +!UR17/UR28=0.0 +! +!UR17/UR21=0.0 +! +!UR17/URG2=0.0 +! +!UR17/UR26=0.0 +! +!UR17/RPG2=0.0 +! +!UR17/RP18=0.0 +! +!UR17/RPG3=0.0 +! +!UR17/URG4=0.0 +! +!UR17/UR8=0.0 +! +!UR17/UR17=-K359 + PJAC(:,55,55)=-TPK%K359(:) +! +!UR17/UR7=0.0 +! +!UR17/RPR3=0.0 +! +!UR17/URG6=0.0 +! +!UR17/UR22=0.0 +! +!UR17/URG7=0.0 +! +!UR17/RPR4=0.0 +! +!UR17/RPR7=0.0 +! +!UR17/RPG7=0.0 +! +!UR17/URG8=0.0 +! +!UR17/UR19=0.0 +! +!UR17/URG9=0.0 +! +!UR17/AP7=0.0 +! +!UR17/URG10=0.0 +! +!UR17/RPR1=0.0 +! +!UR17/RPR5=0.0 +! +!UR17/RPR8=0.0 +! +!UR17/RP10=0.0 +! +!UR17/RP11=0.0 +! +!UR17/RP16=0.0 +! +!UR17/RPRL=0.0 +! +!UR17/APAN=0.0 +! +!UR17/PAN1=0.0 +! +!UR17/PAN2=0.0 +! +!UR17/PAN3=0.0 +! +!UR17/PAN4=0.0 +! +!UR17/PAN6=0.0 +! +!UR17/PAN7=0.0 +! +!UR17/PAN8=0.0 +! +!UR17/PN10=0.0 +! +!UR17/RO2T=+1.0000000*K205*<RO226> + PJAC(:,55,85)=+1.0000000*TPK%K205(:)*TPK%RO226(:) +! +!UR17/RO21=0.0 +! +!UR17/RO25=0.0 +! +!UR17/WC_O3=0.0 +! +!UR17/WC_H2O2=0.0 +! +!UR17/WC_NO=0.0 +! +!UR17/WC_NO2=0.0 +! +!UR17/WC_NO3=0.0 +! +!UR17/WC_N2O5=0.0 +! +!UR17/WC_HONO=0.0 +! +!UR17/WC_HNO3=0.0 +! +!UR17/WC_HNO4=0.0 +! +!UR17/WC_NH3=0.0 +! +!UR17/WC_OH=0.0 +! +!UR17/WC_HO2=0.0 +! +!UR17/WC_CO2=0.0 +! +!UR17/WC_SO2=0.0 +! +!UR17/WC_H2SO4=0.0 +! +!UR17/WC_RO21=0.0 +! +!UR17/WC_RO25=0.0 +! +!UR17/WC_MEOH=0.0 +! +!UR17/WC_ETOH=0.0 +! +!UR17/WC_ALCH=0.0 +! +!UR17/WC_HCHO=0.0 +! +!UR17/WC_ALD2=0.0 +! +!UR17/WC_GLY=0.0 +! +!UR17/WC_MGLY=0.0 +! +!UR17/WC_KETL=0.0 +! +!UR17/WC_ORA1=0.0 +! +!UR17/WC_ORA2=0.0 +! +!UR17/WC_ACID=0.0 +! +!UR17/WC_RP16=0.0 +! +!UR17/WC_UR21=0.0 +! +!UR17/WC_UR28=0.0 +! +!UR17/WC_ACID2=0.0 +! +!UR17/WC_ASO3=0.0 +! +!UR17/WC_ASO4=0.0 +! +!UR17/WC_ASO5=0.0 +! +!UR17/WC_AHSO5=0.0 +! +!UR17/WC_AHMS=0.0 +! +!UR17/WR_O3=0.0 +! +!UR17/WR_H2O2=0.0 +! +!UR17/WR_NO=0.0 +! +!UR17/WR_NO2=0.0 +! +!UR17/WR_NO3=0.0 +! +!UR17/WR_N2O5=0.0 +! +!UR17/WR_HONO=0.0 +! +!UR17/WR_HNO3=0.0 +! +!UR17/WR_HNO4=0.0 +! +!UR17/WR_NH3=0.0 +! +!UR17/WR_OH=0.0 +! +!UR17/WR_HO2=0.0 +! +!UR17/WR_CO2=0.0 +! +!UR17/WR_SO2=0.0 +! +!UR17/WR_H2SO4=0.0 +! +!UR17/WR_RO21=0.0 +! +!UR17/WR_RO25=0.0 +! +!UR17/WR_MEOH=0.0 +! +!UR17/WR_ETOH=0.0 +! +!UR17/WR_ALCH=0.0 +! +!UR17/WR_HCHO=0.0 +! +!UR17/WR_ALD2=0.0 +! +!UR17/WR_GLY=0.0 +! +!UR17/WR_MGLY=0.0 +! +!UR17/WR_KETL=0.0 +! +!UR17/WR_ORA1=0.0 +! +!UR17/WR_ORA2=0.0 +! +!UR17/WR_ACID=0.0 +! +!UR17/WR_RP16=0.0 +! +!UR17/WR_UR21=0.0 +! +!UR17/WR_UR28=0.0 +! +!UR17/WR_ACID2=0.0 +! +!UR17/WR_ASO3=0.0 +! +!UR17/WR_ASO4=0.0 +! +!UR17/WR_ASO5=0.0 +! +!UR17/WR_AHSO5=0.0 +! +!UR17/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ10 +! +SUBROUTINE SUBJ11 +! +!Indices 56 a 60 +! +! +!UR7/NO=+TPK%CFA12*K207*<RO227>+0.3*K210*<RO228> + PJAC(:,56,1)=+TPK%CFA12*TPK%K207(:)*TPK%RO227(:)+0.3*TPK%K210(:)*TPK%RO228(:) +! +!UR7/NO2=0.0 +! +!UR7/O3=+0.055*K090*<BIOH> + PJAC(:,56,3)=+0.055*TPK%K090(:)*PCONC(:,37) +! +!UR7/HONO=0.0 +! +!UR7/HNO3=0.0 +! +!UR7/HNO4=0.0 +! +!UR7/N2O5=0.0 +! +!UR7/NO3=0.0 +! +!UR7/NH3=0.0 +! +!UR7/HO2=+0.3*K209*<RO227>+0.3*K212*<RO228> + PJAC(:,56,10)=+0.3*TPK%K209(:)*TPK%RO227(:)+0.3*TPK%K212(:)*TPK%RO228(:) +! +!UR7/CO=0.0 +! +!UR7/H2O2=0.0 +! +!UR7/SO2=0.0 +! +!UR7/H2SO4=0.0 +! +!UR7/OH=0.0 +! +!UR7/ETHE=0.0 +! +!UR7/OLEL=0.0 +! +!UR7/OLEH=0.0 +! +!UR7/ALKL=0.0 +! +!UR7/ALKM=0.0 +! +!UR7/ALKH=0.0 +! +!UR7/AROH=0.0 +! +!UR7/AROL=0.0 +! +!UR7/AROO=0.0 +! +!UR7/ARAL=0.0 +! +!UR7/ARAC=0.0 +! +!UR7/PAH=0.0 +! +!UR7/HCHO=0.0 +! +!UR7/ALD2=0.0 +! +!UR7/KETL=0.0 +! +!UR7/KETH=0.0 +! +!UR7/MEOH=0.0 +! +!UR7/ETOH=0.0 +! +!UR7/ALCH=0.0 +! +!UR7/ISOP=0.0 +! +!UR7/BIOL=0.0 +! +!UR7/BIOH=+0.055*K090*<O3> + PJAC(:,56,37)=+0.055*TPK%K090(:)*PCONC(:,3) +! +!UR7/MTBE=0.0 +! +!UR7/MVK=0.0 +! +!UR7/MCR=0.0 +! +!UR7/MGLY=0.0 +! +!UR7/GLY=0.0 +! +!UR7/ORA1=0.0 +! +!UR7/ORA2=0.0 +! +!UR7/ACID=0.0 +! +!UR7/UR28=0.0 +! +!UR7/UR21=0.0 +! +!UR7/URG2=0.0 +! +!UR7/UR26=0.0 +! +!UR7/RPG2=0.0 +! +!UR7/RP18=0.0 +! +!UR7/RPG3=0.0 +! +!UR7/URG4=0.0 +! +!UR7/UR8=0.0 +! +!UR7/UR17=0.0 +! +!UR7/UR7=-K357 + PJAC(:,56,56)=-TPK%K357(:) +! +!UR7/RPR3=0.0 +! +!UR7/URG6=0.0 +! +!UR7/UR22=0.0 +! +!UR7/URG7=0.0 +! +!UR7/RPR4=0.0 +! +!UR7/RPR7=0.0 +! +!UR7/RPG7=0.0 +! +!UR7/URG8=0.0 +! +!UR7/UR19=0.0 +! +!UR7/URG9=0.0 +! +!UR7/AP7=0.0 +! +!UR7/URG10=0.0 +! +!UR7/RPR1=0.0 +! +!UR7/RPR5=0.0 +! +!UR7/RPR8=0.0 +! +!UR7/RP10=0.0 +! +!UR7/RP11=0.0 +! +!UR7/RP16=0.0 +! +!UR7/RPRL=0.0 +! +!UR7/APAN=0.0 +! +!UR7/PAN1=0.0 +! +!UR7/PAN2=0.0 +! +!UR7/PAN3=0.0 +! +!UR7/PAN4=0.0 +! +!UR7/PAN6=0.0 +! +!UR7/PAN7=0.0 +! +!UR7/PAN8=0.0 +! +!UR7/PN10=0.0 +! +!UR7/RO2T=+K208*<RO227>+0.3*K211*<RO228> + PJAC(:,56,85)=+TPK%K208(:)*TPK%RO227(:)+0.3*TPK%K211(:)*TPK%RO228(:) +! +!UR7/RO21=0.0 +! +!UR7/RO25=0.0 +! +!UR7/WC_O3=0.0 +! +!UR7/WC_H2O2=0.0 +! +!UR7/WC_NO=0.0 +! +!UR7/WC_NO2=0.0 +! +!UR7/WC_NO3=0.0 +! +!UR7/WC_N2O5=0.0 +! +!UR7/WC_HONO=0.0 +! +!UR7/WC_HNO3=0.0 +! +!UR7/WC_HNO4=0.0 +! +!UR7/WC_NH3=0.0 +! +!UR7/WC_OH=0.0 +! +!UR7/WC_HO2=0.0 +! +!UR7/WC_CO2=0.0 +! +!UR7/WC_SO2=0.0 +! +!UR7/WC_H2SO4=0.0 +! +!UR7/WC_RO21=0.0 +! +!UR7/WC_RO25=0.0 +! +!UR7/WC_MEOH=0.0 +! +!UR7/WC_ETOH=0.0 +! +!UR7/WC_ALCH=0.0 +! +!UR7/WC_HCHO=0.0 +! +!UR7/WC_ALD2=0.0 +! +!UR7/WC_GLY=0.0 +! +!UR7/WC_MGLY=0.0 +! +!UR7/WC_KETL=0.0 +! +!UR7/WC_ORA1=0.0 +! +!UR7/WC_ORA2=0.0 +! +!UR7/WC_ACID=0.0 +! +!UR7/WC_RP16=0.0 +! +!UR7/WC_UR21=0.0 +! +!UR7/WC_UR28=0.0 +! +!UR7/WC_ACID2=0.0 +! +!UR7/WC_ASO3=0.0 +! +!UR7/WC_ASO4=0.0 +! +!UR7/WC_ASO5=0.0 +! +!UR7/WC_AHSO5=0.0 +! +!UR7/WC_AHMS=0.0 +! +!UR7/WR_O3=0.0 +! +!UR7/WR_H2O2=0.0 +! +!UR7/WR_NO=0.0 +! +!UR7/WR_NO2=0.0 +! +!UR7/WR_NO3=0.0 +! +!UR7/WR_N2O5=0.0 +! +!UR7/WR_HONO=0.0 +! +!UR7/WR_HNO3=0.0 +! +!UR7/WR_HNO4=0.0 +! +!UR7/WR_NH3=0.0 +! +!UR7/WR_OH=0.0 +! +!UR7/WR_HO2=0.0 +! +!UR7/WR_CO2=0.0 +! +!UR7/WR_SO2=0.0 +! +!UR7/WR_H2SO4=0.0 +! +!UR7/WR_RO21=0.0 +! +!UR7/WR_RO25=0.0 +! +!UR7/WR_MEOH=0.0 +! +!UR7/WR_ETOH=0.0 +! +!UR7/WR_ALCH=0.0 +! +!UR7/WR_HCHO=0.0 +! +!UR7/WR_ALD2=0.0 +! +!UR7/WR_GLY=0.0 +! +!UR7/WR_MGLY=0.0 +! +!UR7/WR_KETL=0.0 +! +!UR7/WR_ORA1=0.0 +! +!UR7/WR_ORA2=0.0 +! +!UR7/WR_ACID=0.0 +! +!UR7/WR_RP16=0.0 +! +!UR7/WR_UR21=0.0 +! +!UR7/WR_UR28=0.0 +! +!UR7/WR_ACID2=0.0 +! +!UR7/WR_ASO3=0.0 +! +!UR7/WR_ASO4=0.0 +! +!UR7/WR_ASO5=0.0 +! +!UR7/WR_AHSO5=0.0 +! +!UR7/WR_AHMS=0.0 +! +!RPR3/NO=+TPK%CFA10*K198*<RO224>+K201*<RO225> + PJAC(:,57,1)=+TPK%CFA10*TPK%K198(:)*TPK%RO224(:)+TPK%K201(:)*TPK%RO225(:) +! +!RPR3/NO2=0.0 +! +!RPR3/O3=+0.055*K086*<BIOL> + PJAC(:,57,3)=+0.055*TPK%K086(:)*PCONC(:,36) +! +!RPR3/HONO=0.0 +! +!RPR3/HNO3=0.0 +! +!RPR3/HNO4=0.0 +! +!RPR3/N2O5=0.0 +! +!RPR3/NO3=-K313*<RPR3> + PJAC(:,57,8)=-TPK%K313(:)*PCONC(:,57) +! +!RPR3/NH3=0.0 +! +!RPR3/HO2=+K200*<RO224>+K203*<RO225> + PJAC(:,57,10)=+TPK%K200(:)*TPK%RO224(:)+TPK%K203(:)*TPK%RO225(:) +! +!RPR3/CO=0.0 +! +!RPR3/H2O2=0.0 +! +!RPR3/SO2=0.0 +! +!RPR3/H2SO4=0.0 +! +!RPR3/OH=-K312*<RPR3> + PJAC(:,57,15)=-TPK%K312(:)*PCONC(:,57) +! +!RPR3/ETHE=0.0 +! +!RPR3/OLEL=0.0 +! +!RPR3/OLEH=0.0 +! +!RPR3/ALKL=0.0 +! +!RPR3/ALKM=0.0 +! +!RPR3/ALKH=0.0 +! +!RPR3/AROH=0.0 +! +!RPR3/AROL=0.0 +! +!RPR3/AROO=0.0 +! +!RPR3/ARAL=0.0 +! +!RPR3/ARAC=0.0 +! +!RPR3/PAH=0.0 +! +!RPR3/HCHO=0.0 +! +!RPR3/ALD2=0.0 +! +!RPR3/KETL=0.0 +! +!RPR3/KETH=0.0 +! +!RPR3/MEOH=0.0 +! +!RPR3/ETOH=0.0 +! +!RPR3/ALCH=0.0 +! +!RPR3/ISOP=0.0 +! +!RPR3/BIOL=+0.055*K086*<O3> + PJAC(:,57,36)=+0.055*TPK%K086(:)*PCONC(:,3) +! +!RPR3/BIOH=0.0 +! +!RPR3/MTBE=0.0 +! +!RPR3/MVK=0.0 +! +!RPR3/MCR=0.0 +! +!RPR3/MGLY=0.0 +! +!RPR3/GLY=0.0 +! +!RPR3/ORA1=0.0 +! +!RPR3/ORA2=0.0 +! +!RPR3/ACID=0.0 +! +!RPR3/UR28=0.0 +! +!RPR3/UR21=0.0 +! +!RPR3/URG2=0.0 +! +!RPR3/UR26=0.0 +! +!RPR3/RPG2=0.0 +! +!RPR3/RP18=0.0 +! +!RPR3/RPG3=0.0 +! +!RPR3/URG4=0.0 +! +!RPR3/UR8=0.0 +! +!RPR3/UR17=0.0 +! +!RPR3/UR7=0.0 +! +!RPR3/RPR3=-K312*<OH>-K313*<NO3>-K314 + PJAC(:,57,57)=-TPK%K312(:)*PCONC(:,15)-TPK%K313(:)*PCONC(:,8)-TPK%K314(:) +! +!RPR3/URG6=0.0 +! +!RPR3/UR22=0.0 +! +!RPR3/URG7=0.0 +! +!RPR3/RPR4=0.0 +! +!RPR3/RPR7=0.0 +! +!RPR3/RPG7=0.0 +! +!RPR3/URG8=0.0 +! +!RPR3/UR19=0.0 +! +!RPR3/URG9=0.0 +! +!RPR3/AP7=0.0 +! +!RPR3/URG10=0.0 +! +!RPR3/RPR1=0.0 +! +!RPR3/RPR5=0.0 +! +!RPR3/RPR8=0.0 +! +!RPR3/RP10=0.0 +! +!RPR3/RP11=0.0 +! +!RPR3/RP16=0.0 +! +!RPR3/RPRL=0.0 +! +!RPR3/APAN=0.0 +! +!RPR3/PAN1=0.0 +! +!RPR3/PAN2=0.0 +! +!RPR3/PAN3=0.0 +! +!RPR3/PAN4=0.0 +! +!RPR3/PAN6=0.0 +! +!RPR3/PAN7=0.0 +! +!RPR3/PAN8=0.0 +! +!RPR3/PN10=0.0 +! +!RPR3/RO2T=+K199*<RO224>+K202*<RO225> + PJAC(:,57,85)=+TPK%K199(:)*TPK%RO224(:)+TPK%K202(:)*TPK%RO225(:) +! +!RPR3/RO21=0.0 +! +!RPR3/RO25=0.0 +! +!RPR3/WC_O3=0.0 +! +!RPR3/WC_H2O2=0.0 +! +!RPR3/WC_NO=0.0 +! +!RPR3/WC_NO2=0.0 +! +!RPR3/WC_NO3=0.0 +! +!RPR3/WC_N2O5=0.0 +! +!RPR3/WC_HONO=0.0 +! +!RPR3/WC_HNO3=0.0 +! +!RPR3/WC_HNO4=0.0 +! +!RPR3/WC_NH3=0.0 +! +!RPR3/WC_OH=0.0 +! +!RPR3/WC_HO2=0.0 +! +!RPR3/WC_CO2=0.0 +! +!RPR3/WC_SO2=0.0 +! +!RPR3/WC_H2SO4=0.0 +! +!RPR3/WC_RO21=0.0 +! +!RPR3/WC_RO25=0.0 +! +!RPR3/WC_MEOH=0.0 +! +!RPR3/WC_ETOH=0.0 +! +!RPR3/WC_ALCH=0.0 +! +!RPR3/WC_HCHO=0.0 +! +!RPR3/WC_ALD2=0.0 +! +!RPR3/WC_GLY=0.0 +! +!RPR3/WC_MGLY=0.0 +! +!RPR3/WC_KETL=0.0 +! +!RPR3/WC_ORA1=0.0 +! +!RPR3/WC_ORA2=0.0 +! +!RPR3/WC_ACID=0.0 +! +!RPR3/WC_RP16=0.0 +! +!RPR3/WC_UR21=0.0 +! +!RPR3/WC_UR28=0.0 +! +!RPR3/WC_ACID2=0.0 +! +!RPR3/WC_ASO3=0.0 +! +!RPR3/WC_ASO4=0.0 +! +!RPR3/WC_ASO5=0.0 +! +!RPR3/WC_AHSO5=0.0 +! +!RPR3/WC_AHMS=0.0 +! +!RPR3/WR_O3=0.0 +! +!RPR3/WR_H2O2=0.0 +! +!RPR3/WR_NO=0.0 +! +!RPR3/WR_NO2=0.0 +! +!RPR3/WR_NO3=0.0 +! +!RPR3/WR_N2O5=0.0 +! +!RPR3/WR_HONO=0.0 +! +!RPR3/WR_HNO3=0.0 +! +!RPR3/WR_HNO4=0.0 +! +!RPR3/WR_NH3=0.0 +! +!RPR3/WR_OH=0.0 +! +!RPR3/WR_HO2=0.0 +! +!RPR3/WR_CO2=0.0 +! +!RPR3/WR_SO2=0.0 +! +!RPR3/WR_H2SO4=0.0 +! +!RPR3/WR_RO21=0.0 +! +!RPR3/WR_RO25=0.0 +! +!RPR3/WR_MEOH=0.0 +! +!RPR3/WR_ETOH=0.0 +! +!RPR3/WR_ALCH=0.0 +! +!RPR3/WR_HCHO=0.0 +! +!RPR3/WR_ALD2=0.0 +! +!RPR3/WR_GLY=0.0 +! +!RPR3/WR_MGLY=0.0 +! +!RPR3/WR_KETL=0.0 +! +!RPR3/WR_ORA1=0.0 +! +!RPR3/WR_ORA2=0.0 +! +!RPR3/WR_ACID=0.0 +! +!RPR3/WR_RP16=0.0 +! +!RPR3/WR_UR21=0.0 +! +!RPR3/WR_UR28=0.0 +! +!RPR3/WR_ACID2=0.0 +! +!RPR3/WR_ASO3=0.0 +! +!RPR3/WR_ASO4=0.0 +! +!RPR3/WR_ASO5=0.0 +! +!RPR3/WR_AHSO5=0.0 +! +!RPR3/WR_AHMS=0.0 +! +!URG6/NO=+TPK%CF21*K177*<RO217>+TPK%CF43*K195*<RO223> + PJAC(:,58,1)=+TPK%CF21*TPK%K177(:)*TPK%RO217(:)+TPK%CF43*TPK%K195(:)*TPK%RO223& +&(:) +! +!URG6/NO2=0.0 +! +!URG6/O3=0.0 +! +!URG6/HONO=0.0 +! +!URG6/HNO3=0.0 +! +!URG6/HNO4=0.0 +! +!URG6/N2O5=0.0 +! +!URG6/NO3=0.0 +! +!URG6/NH3=0.0 +! +!URG6/HO2=0.0 +! +!URG6/CO=0.0 +! +!URG6/H2O2=0.0 +! +!URG6/SO2=0.0 +! +!URG6/H2SO4=0.0 +! +!URG6/OH=+0.4978440*K323*<RPG7> + PJAC(:,58,15)=+0.4978440*TPK%K323(:)*PCONC(:,63) +! +!URG6/ETHE=0.0 +! +!URG6/OLEL=0.0 +! +!URG6/OLEH=0.0 +! +!URG6/ALKL=0.0 +! +!URG6/ALKM=0.0 +! +!URG6/ALKH=0.0 +! +!URG6/AROH=0.0 +! +!URG6/AROL=0.0 +! +!URG6/AROO=0.0 +! +!URG6/ARAL=0.0 +! +!URG6/ARAC=0.0 +! +!URG6/PAH=0.0 +! +!URG6/HCHO=0.0 +! +!URG6/ALD2=0.0 +! +!URG6/KETL=0.0 +! +!URG6/KETH=0.0 +! +!URG6/MEOH=0.0 +! +!URG6/ETOH=0.0 +! +!URG6/ALCH=0.0 +! +!URG6/ISOP=0.0 +! +!URG6/BIOL=0.0 +! +!URG6/BIOH=0.0 +! +!URG6/MTBE=0.0 +! +!URG6/MVK=0.0 +! +!URG6/MCR=0.0 +! +!URG6/MGLY=0.0 +! +!URG6/GLY=0.0 +! +!URG6/ORA1=0.0 +! +!URG6/ORA2=0.0 +! +!URG6/ACID=0.0 +! +!URG6/UR28=0.0 +! +!URG6/UR21=0.0 +! +!URG6/URG2=0.0 +! +!URG6/UR26=0.0 +! +!URG6/RPG2=0.0 +! +!URG6/RP18=0.0 +! +!URG6/RPG3=0.0 +! +!URG6/URG4=0.0 +! +!URG6/UR8=0.0 +! +!URG6/UR17=0.0 +! +!URG6/UR7=0.0 +! +!URG6/RPR3=0.0 +! +!URG6/URG6=-K352 + PJAC(:,58,58)=-TPK%K352(:) +! +!URG6/UR22=0.0 +! +!URG6/URG7=0.0 +! +!URG6/RPR4=0.0 +! +!URG6/RPR7=0.0 +! +!URG6/RPG7=+0.4978440*K323*<OH> + PJAC(:,58,63)=+0.4978440*TPK%K323(:)*PCONC(:,15) +! +!URG6/URG8=0.0 +! +!URG6/UR19=0.0 +! +!URG6/URG9=0.0 +! +!URG6/AP7=0.0 +! +!URG6/URG10=0.0 +! +!URG6/RPR1=0.0 +! +!URG6/RPR5=0.0 +! +!URG6/RPR8=0.0 +! +!URG6/RP10=0.0 +! +!URG6/RP11=0.0 +! +!URG6/RP16=0.0 +! +!URG6/RPRL=0.0 +! +!URG6/APAN=0.0 +! +!URG6/PAN1=0.0 +! +!URG6/PAN2=0.0 +! +!URG6/PAN3=0.0 +! +!URG6/PAN4=0.0 +! +!URG6/PAN6=0.0 +! +!URG6/PAN7=0.0 +! +!URG6/PAN8=0.0 +! +!URG6/PN10=0.0 +! +!URG6/RO2T=0.0 +! +!URG6/RO21=0.0 +! +!URG6/RO25=0.0 +! +!URG6/WC_O3=0.0 +! +!URG6/WC_H2O2=0.0 +! +!URG6/WC_NO=0.0 +! +!URG6/WC_NO2=0.0 +! +!URG6/WC_NO3=0.0 +! +!URG6/WC_N2O5=0.0 +! +!URG6/WC_HONO=0.0 +! +!URG6/WC_HNO3=0.0 +! +!URG6/WC_HNO4=0.0 +! +!URG6/WC_NH3=0.0 +! +!URG6/WC_OH=0.0 +! +!URG6/WC_HO2=0.0 +! +!URG6/WC_CO2=0.0 +! +!URG6/WC_SO2=0.0 +! +!URG6/WC_H2SO4=0.0 +! +!URG6/WC_RO21=0.0 +! +!URG6/WC_RO25=0.0 +! +!URG6/WC_MEOH=0.0 +! +!URG6/WC_ETOH=0.0 +! +!URG6/WC_ALCH=0.0 +! +!URG6/WC_HCHO=0.0 +! +!URG6/WC_ALD2=0.0 +! +!URG6/WC_GLY=0.0 +! +!URG6/WC_MGLY=0.0 +! +!URG6/WC_KETL=0.0 +! +!URG6/WC_ORA1=0.0 +! +!URG6/WC_ORA2=0.0 +! +!URG6/WC_ACID=0.0 +! +!URG6/WC_RP16=0.0 +! +!URG6/WC_UR21=0.0 +! +!URG6/WC_UR28=0.0 +! +!URG6/WC_ACID2=0.0 +! +!URG6/WC_ASO3=0.0 +! +!URG6/WC_ASO4=0.0 +! +!URG6/WC_ASO5=0.0 +! +!URG6/WC_AHSO5=0.0 +! +!URG6/WC_AHMS=0.0 +! +!URG6/WR_O3=0.0 +! +!URG6/WR_H2O2=0.0 +! +!URG6/WR_NO=0.0 +! +!URG6/WR_NO2=0.0 +! +!URG6/WR_NO3=0.0 +! +!URG6/WR_N2O5=0.0 +! +!URG6/WR_HONO=0.0 +! +!URG6/WR_HNO3=0.0 +! +!URG6/WR_HNO4=0.0 +! +!URG6/WR_NH3=0.0 +! +!URG6/WR_OH=0.0 +! +!URG6/WR_HO2=0.0 +! +!URG6/WR_CO2=0.0 +! +!URG6/WR_SO2=0.0 +! +!URG6/WR_H2SO4=0.0 +! +!URG6/WR_RO21=0.0 +! +!URG6/WR_RO25=0.0 +! +!URG6/WR_MEOH=0.0 +! +!URG6/WR_ETOH=0.0 +! +!URG6/WR_ALCH=0.0 +! +!URG6/WR_HCHO=0.0 +! +!URG6/WR_ALD2=0.0 +! +!URG6/WR_GLY=0.0 +! +!URG6/WR_MGLY=0.0 +! +!URG6/WR_KETL=0.0 +! +!URG6/WR_ORA1=0.0 +! +!URG6/WR_ORA2=0.0 +! +!URG6/WR_ACID=0.0 +! +!URG6/WR_RP16=0.0 +! +!URG6/WR_UR21=0.0 +! +!URG6/WR_UR28=0.0 +! +!URG6/WR_ACID2=0.0 +! +!URG6/WR_ASO3=0.0 +! +!URG6/WR_ASO4=0.0 +! +!URG6/WR_ASO5=0.0 +! +!URG6/WR_AHSO5=0.0 +! +!URG6/WR_AHMS=0.0 +! +!UR22/NO=0.0 +! +!UR22/NO2=+K321*<RAD8> + PJAC(:,59,2)=+TPK%K321(:)*TPK%RAD8(:) +! +!UR22/O3=0.0 +! +!UR22/HONO=0.0 +! +!UR22/HNO3=0.0 +! +!UR22/HNO4=0.0 +! +!UR22/N2O5=0.0 +! +!UR22/NO3=0.0 +! +!UR22/NH3=0.0 +! +!UR22/HO2=0.0 +! +!UR22/CO=0.0 +! +!UR22/H2O2=0.0 +! +!UR22/SO2=0.0 +! +!UR22/H2SO4=0.0 +! +!UR22/OH=0.0 +! +!UR22/ETHE=0.0 +! +!UR22/OLEL=0.0 +! +!UR22/OLEH=0.0 +! +!UR22/ALKL=0.0 +! +!UR22/ALKM=0.0 +! +!UR22/ALKH=0.0 +! +!UR22/AROH=0.0 +! +!UR22/AROL=0.0 +! +!UR22/AROO=0.0 +! +!UR22/ARAL=0.0 +! +!UR22/ARAC=0.0 +! +!UR22/PAH=0.0 +! +!UR22/HCHO=0.0 +! +!UR22/ALD2=0.0 +! +!UR22/KETL=0.0 +! +!UR22/KETH=0.0 +! +!UR22/MEOH=0.0 +! +!UR22/ETOH=0.0 +! +!UR22/ALCH=0.0 +! +!UR22/ISOP=0.0 +! +!UR22/BIOL=0.0 +! +!UR22/BIOH=0.0 +! +!UR22/MTBE=0.0 +! +!UR22/MVK=0.0 +! +!UR22/MCR=0.0 +! +!UR22/MGLY=0.0 +! +!UR22/GLY=0.0 +! +!UR22/ORA1=0.0 +! +!UR22/ORA2=0.0 +! +!UR22/ACID=0.0 +! +!UR22/UR28=0.0 +! +!UR22/UR21=0.0 +! +!UR22/URG2=0.0 +! +!UR22/UR26=0.0 +! +!UR22/RPG2=0.0 +! +!UR22/RP18=0.0 +! +!UR22/RPG3=0.0 +! +!UR22/URG4=0.0 +! +!UR22/UR8=0.0 +! +!UR22/UR17=0.0 +! +!UR22/UR7=0.0 +! +!UR22/RPR3=0.0 +! +!UR22/URG6=0.0 +! +!UR22/UR22=-K362 + PJAC(:,59,59)=-TPK%K362(:) +! +!UR22/URG7=0.0 +! +!UR22/RPR4=0.0 +! +!UR22/RPR7=0.0 +! +!UR22/RPG7=0.0 +! +!UR22/URG8=0.0 +! +!UR22/UR19=0.0 +! +!UR22/URG9=0.0 +! +!UR22/AP7=0.0 +! +!UR22/URG10=0.0 +! +!UR22/RPR1=0.0 +! +!UR22/RPR5=0.0 +! +!UR22/RPR8=0.0 +! +!UR22/RP10=0.0 +! +!UR22/RP11=0.0 +! +!UR22/RP16=0.0 +! +!UR22/RPRL=0.0 +! +!UR22/APAN=0.0 +! +!UR22/PAN1=0.0 +! +!UR22/PAN2=0.0 +! +!UR22/PAN3=0.0 +! +!UR22/PAN4=0.0 +! +!UR22/PAN6=0.0 +! +!UR22/PAN7=0.0 +! +!UR22/PAN8=0.0 +! +!UR22/PN10=0.0 +! +!UR22/RO2T=0.0 +! +!UR22/RO21=0.0 +! +!UR22/RO25=0.0 +! +!UR22/WC_O3=0.0 +! +!UR22/WC_H2O2=0.0 +! +!UR22/WC_NO=0.0 +! +!UR22/WC_NO2=0.0 +! +!UR22/WC_NO3=0.0 +! +!UR22/WC_N2O5=0.0 +! +!UR22/WC_HONO=0.0 +! +!UR22/WC_HNO3=0.0 +! +!UR22/WC_HNO4=0.0 +! +!UR22/WC_NH3=0.0 +! +!UR22/WC_OH=0.0 +! +!UR22/WC_HO2=0.0 +! +!UR22/WC_CO2=0.0 +! +!UR22/WC_SO2=0.0 +! +!UR22/WC_H2SO4=0.0 +! +!UR22/WC_RO21=0.0 +! +!UR22/WC_RO25=0.0 +! +!UR22/WC_MEOH=0.0 +! +!UR22/WC_ETOH=0.0 +! +!UR22/WC_ALCH=0.0 +! +!UR22/WC_HCHO=0.0 +! +!UR22/WC_ALD2=0.0 +! +!UR22/WC_GLY=0.0 +! +!UR22/WC_MGLY=0.0 +! +!UR22/WC_KETL=0.0 +! +!UR22/WC_ORA1=0.0 +! +!UR22/WC_ORA2=0.0 +! +!UR22/WC_ACID=0.0 +! +!UR22/WC_RP16=0.0 +! +!UR22/WC_UR21=0.0 +! +!UR22/WC_UR28=0.0 +! +!UR22/WC_ACID2=0.0 +! +!UR22/WC_ASO3=0.0 +! +!UR22/WC_ASO4=0.0 +! +!UR22/WC_ASO5=0.0 +! +!UR22/WC_AHSO5=0.0 +! +!UR22/WC_AHMS=0.0 +! +!UR22/WR_O3=0.0 +! +!UR22/WR_H2O2=0.0 +! +!UR22/WR_NO=0.0 +! +!UR22/WR_NO2=0.0 +! +!UR22/WR_NO3=0.0 +! +!UR22/WR_N2O5=0.0 +! +!UR22/WR_HONO=0.0 +! +!UR22/WR_HNO3=0.0 +! +!UR22/WR_HNO4=0.0 +! +!UR22/WR_NH3=0.0 +! +!UR22/WR_OH=0.0 +! +!UR22/WR_HO2=0.0 +! +!UR22/WR_CO2=0.0 +! +!UR22/WR_SO2=0.0 +! +!UR22/WR_H2SO4=0.0 +! +!UR22/WR_RO21=0.0 +! +!UR22/WR_RO25=0.0 +! +!UR22/WR_MEOH=0.0 +! +!UR22/WR_ETOH=0.0 +! +!UR22/WR_ALCH=0.0 +! +!UR22/WR_HCHO=0.0 +! +!UR22/WR_ALD2=0.0 +! +!UR22/WR_GLY=0.0 +! +!UR22/WR_MGLY=0.0 +! +!UR22/WR_KETL=0.0 +! +!UR22/WR_ORA1=0.0 +! +!UR22/WR_ORA2=0.0 +! +!UR22/WR_ACID=0.0 +! +!UR22/WR_RP16=0.0 +! +!UR22/WR_UR21=0.0 +! +!UR22/WR_UR28=0.0 +! +!UR22/WR_ACID2=0.0 +! +!UR22/WR_ASO3=0.0 +! +!UR22/WR_ASO4=0.0 +! +!UR22/WR_ASO5=0.0 +! +!UR22/WR_AHSO5=0.0 +! +!UR22/WR_AHMS=0.0 +! +!URG7/NO=0.0 +! +!URG7/NO2=+0.9999993*K108*<RAD6> + PJAC(:,60,2)=+0.9999993*TPK%K108(:)*TPK%RAD6(:) +! +!URG7/O3=0.0 +! +!URG7/HONO=0.0 +! +!URG7/HNO3=0.0 +! +!URG7/HNO4=0.0 +! +!URG7/N2O5=0.0 +! +!URG7/NO3=0.0 +! +!URG7/NH3=0.0 +! +!URG7/HO2=0.0 +! +!URG7/CO=0.0 +! +!URG7/H2O2=0.0 +! +!URG7/SO2=0.0 +! +!URG7/H2SO4=0.0 +! +!URG7/OH=+0.1599999*K083*<ARAC>+0.9999993*K303*<RPR5>+0.9979297*K306*<RPRL>+0.9 +!999993*K322*<RPR7> + PJAC(:,60,15)=+0.1599999*TPK%K083(:)*PCONC(:,26)+0.9999993*TPK%K303(:)*PCONC(:& +&,70)+0.9979297*TPK%K306(:)*PCONC(:,75)+0.9999993*TPK%K322(:)*PCONC(:,62) +! +!URG7/ETHE=0.0 +! +!URG7/OLEL=0.0 +! +!URG7/OLEH=0.0 +! +!URG7/ALKL=0.0 +! +!URG7/ALKM=0.0 +! +!URG7/ALKH=0.0 +! +!URG7/AROH=0.0 +! +!URG7/AROL=0.0 +! +!URG7/AROO=0.0 +! +!URG7/ARAL=0.0 +! +!URG7/ARAC=+0.1599999*K083*<OH> + PJAC(:,60,26)=+0.1599999*TPK%K083(:)*PCONC(:,15) +! +!URG7/PAH=0.0 +! +!URG7/HCHO=0.0 +! +!URG7/ALD2=0.0 +! +!URG7/KETL=0.0 +! +!URG7/KETH=0.0 +! +!URG7/MEOH=0.0 +! +!URG7/ETOH=0.0 +! +!URG7/ALCH=0.0 +! +!URG7/ISOP=0.0 +! +!URG7/BIOL=0.0 +! +!URG7/BIOH=0.0 +! +!URG7/MTBE=0.0 +! +!URG7/MVK=0.0 +! +!URG7/MCR=0.0 +! +!URG7/MGLY=0.0 +! +!URG7/GLY=0.0 +! +!URG7/ORA1=0.0 +! +!URG7/ORA2=0.0 +! +!URG7/ACID=0.0 +! +!URG7/UR28=0.0 +! +!URG7/UR21=0.0 +! +!URG7/URG2=0.0 +! +!URG7/UR26=0.0 +! +!URG7/RPG2=0.0 +! +!URG7/RP18=0.0 +! +!URG7/RPG3=0.0 +! +!URG7/URG4=0.0 +! +!URG7/UR8=0.0 +! +!URG7/UR17=0.0 +! +!URG7/UR7=0.0 +! +!URG7/RPR3=0.0 +! +!URG7/URG6=0.0 +! +!URG7/UR22=0.0 +! +!URG7/URG7=-K353 + PJAC(:,60,60)=-TPK%K353(:) +! +!URG7/RPR4=0.0 +! +!URG7/RPR7=+0.9999993*K322*<OH> + PJAC(:,60,62)=+0.9999993*TPK%K322(:)*PCONC(:,15) +! +!URG7/RPG7=0.0 +! +!URG7/URG8=0.0 +! +!URG7/UR19=0.0 +! +!URG7/URG9=0.0 +! +!URG7/AP7=0.0 +! +!URG7/URG10=0.0 +! +!URG7/RPR1=0.0 +! +!URG7/RPR5=+0.9999993*K303*<OH> + PJAC(:,60,70)=+0.9999993*TPK%K303(:)*PCONC(:,15) +! +!URG7/RPR8=0.0 +! +!URG7/RP10=0.0 +! +!URG7/RP11=0.0 +! +!URG7/RP16=0.0 +! +!URG7/RPRL=+0.9979297*K306*<OH> + PJAC(:,60,75)=+0.9979297*TPK%K306(:)*PCONC(:,15) +! +!URG7/APAN=0.0 +! +!URG7/PAN1=0.0 +! +!URG7/PAN2=0.0 +! +!URG7/PAN3=0.0 +! +!URG7/PAN4=0.0 +! +!URG7/PAN6=0.0 +! +!URG7/PAN7=0.0 +! +!URG7/PAN8=0.0 +! +!URG7/PN10=0.0 +! +!URG7/RO2T=0.0 +! +!URG7/RO21=0.0 +! +!URG7/RO25=0.0 +! +!URG7/WC_O3=0.0 +! +!URG7/WC_H2O2=0.0 +! +!URG7/WC_NO=0.0 +! +!URG7/WC_NO2=0.0 +! +!URG7/WC_NO3=0.0 +! +!URG7/WC_N2O5=0.0 +! +!URG7/WC_HONO=0.0 +! +!URG7/WC_HNO3=0.0 +! +!URG7/WC_HNO4=0.0 +! +!URG7/WC_NH3=0.0 +! +!URG7/WC_OH=0.0 +! +!URG7/WC_HO2=0.0 +! +!URG7/WC_CO2=0.0 +! +!URG7/WC_SO2=0.0 +! +!URG7/WC_H2SO4=0.0 +! +!URG7/WC_RO21=0.0 +! +!URG7/WC_RO25=0.0 +! +!URG7/WC_MEOH=0.0 +! +!URG7/WC_ETOH=0.0 +! +!URG7/WC_ALCH=0.0 +! +!URG7/WC_HCHO=0.0 +! +!URG7/WC_ALD2=0.0 +! +!URG7/WC_GLY=0.0 +! +!URG7/WC_MGLY=0.0 +! +!URG7/WC_KETL=0.0 +! +!URG7/WC_ORA1=0.0 +! +!URG7/WC_ORA2=0.0 +! +!URG7/WC_ACID=0.0 +! +!URG7/WC_RP16=0.0 +! +!URG7/WC_UR21=0.0 +! +!URG7/WC_UR28=0.0 +! +!URG7/WC_ACID2=0.0 +! +!URG7/WC_ASO3=0.0 +! +!URG7/WC_ASO4=0.0 +! +!URG7/WC_ASO5=0.0 +! +!URG7/WC_AHSO5=0.0 +! +!URG7/WC_AHMS=0.0 +! +!URG7/WR_O3=0.0 +! +!URG7/WR_H2O2=0.0 +! +!URG7/WR_NO=0.0 +! +!URG7/WR_NO2=0.0 +! +!URG7/WR_NO3=0.0 +! +!URG7/WR_N2O5=0.0 +! +!URG7/WR_HONO=0.0 +! +!URG7/WR_HNO3=0.0 +! +!URG7/WR_HNO4=0.0 +! +!URG7/WR_NH3=0.0 +! +!URG7/WR_OH=0.0 +! +!URG7/WR_HO2=0.0 +! +!URG7/WR_CO2=0.0 +! +!URG7/WR_SO2=0.0 +! +!URG7/WR_H2SO4=0.0 +! +!URG7/WR_RO21=0.0 +! +!URG7/WR_RO25=0.0 +! +!URG7/WR_MEOH=0.0 +! +!URG7/WR_ETOH=0.0 +! +!URG7/WR_ALCH=0.0 +! +!URG7/WR_HCHO=0.0 +! +!URG7/WR_ALD2=0.0 +! +!URG7/WR_GLY=0.0 +! +!URG7/WR_MGLY=0.0 +! +!URG7/WR_KETL=0.0 +! +!URG7/WR_ORA1=0.0 +! +!URG7/WR_ORA2=0.0 +! +!URG7/WR_ACID=0.0 +! +!URG7/WR_RP16=0.0 +! +!URG7/WR_UR21=0.0 +! +!URG7/WR_UR28=0.0 +! +!URG7/WR_ACID2=0.0 +! +!URG7/WR_ASO3=0.0 +! +!URG7/WR_ASO4=0.0 +! +!URG7/WR_ASO5=0.0 +! +!URG7/WR_AHSO5=0.0 +! +!URG7/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ11 +! +SUBROUTINE SUBJ12 +! +!Indices 61 a 65 +! +! +!RPR4/NO=0.0 +! +!RPR4/NO2=+K103*<RAD1>+K104*<RAD2> + PJAC(:,61,2)=+TPK%K103(:)*TPK%RAD1(:)+TPK%K104(:)*TPK%RAD2(:) +! +!RPR4/O3=0.0 +! +!RPR4/HONO=0.0 +! +!RPR4/HNO3=0.0 +! +!RPR4/HNO4=0.0 +! +!RPR4/N2O5=0.0 +! +!RPR4/NO3=-K320*<RPR4> + PJAC(:,61,8)=-TPK%K320(:)*PCONC(:,61) +! +!RPR4/NH3=0.0 +! +!RPR4/HO2=0.0 +! +!RPR4/CO=0.0 +! +!RPR4/H2O2=0.0 +! +!RPR4/SO2=0.0 +! +!RPR4/H2SO4=0.0 +! +!RPR4/OH=0.0 +! +!RPR4/ETHE=0.0 +! +!RPR4/OLEL=0.0 +! +!RPR4/OLEH=0.0 +! +!RPR4/ALKL=0.0 +! +!RPR4/ALKM=0.0 +! +!RPR4/ALKH=0.0 +! +!RPR4/AROH=0.0 +! +!RPR4/AROL=0.0 +! +!RPR4/AROO=0.0 +! +!RPR4/ARAL=0.0 +! +!RPR4/ARAC=0.0 +! +!RPR4/PAH=0.0 +! +!RPR4/HCHO=0.0 +! +!RPR4/ALD2=0.0 +! +!RPR4/KETL=0.0 +! +!RPR4/KETH=0.0 +! +!RPR4/MEOH=0.0 +! +!RPR4/ETOH=0.0 +! +!RPR4/ALCH=0.0 +! +!RPR4/ISOP=0.0 +! +!RPR4/BIOL=0.0 +! +!RPR4/BIOH=0.0 +! +!RPR4/MTBE=0.0 +! +!RPR4/MVK=0.0 +! +!RPR4/MCR=0.0 +! +!RPR4/MGLY=0.0 +! +!RPR4/GLY=0.0 +! +!RPR4/ORA1=0.0 +! +!RPR4/ORA2=0.0 +! +!RPR4/ACID=0.0 +! +!RPR4/UR28=0.0 +! +!RPR4/UR21=0.0 +! +!RPR4/URG2=0.0 +! +!RPR4/UR26=0.0 +! +!RPR4/RPG2=0.0 +! +!RPR4/RP18=0.0 +! +!RPR4/RPG3=0.0 +! +!RPR4/URG4=0.0 +! +!RPR4/UR8=0.0 +! +!RPR4/UR17=0.0 +! +!RPR4/UR7=0.0 +! +!RPR4/RPR3=0.0 +! +!RPR4/URG6=0.0 +! +!RPR4/UR22=0.0 +! +!RPR4/URG7=0.0 +! +!RPR4/RPR4=-K320*<NO3> + PJAC(:,61,61)=-TPK%K320(:)*PCONC(:,8) +! +!RPR4/RPR7=0.0 +! +!RPR4/RPG7=0.0 +! +!RPR4/URG8=0.0 +! +!RPR4/UR19=0.0 +! +!RPR4/URG9=0.0 +! +!RPR4/AP7=0.0 +! +!RPR4/URG10=0.0 +! +!RPR4/RPR1=0.0 +! +!RPR4/RPR5=0.0 +! +!RPR4/RPR8=0.0 +! +!RPR4/RP10=0.0 +! +!RPR4/RP11=0.0 +! +!RPR4/RP16=0.0 +! +!RPR4/RPRL=0.0 +! +!RPR4/APAN=0.0 +! +!RPR4/PAN1=0.0 +! +!RPR4/PAN2=0.0 +! +!RPR4/PAN3=0.0 +! +!RPR4/PAN4=0.0 +! +!RPR4/PAN6=0.0 +! +!RPR4/PAN7=0.0 +! +!RPR4/PAN8=0.0 +! +!RPR4/PN10=0.0 +! +!RPR4/RO2T=0.0 +! +!RPR4/RO21=0.0 +! +!RPR4/RO25=0.0 +! +!RPR4/WC_O3=0.0 +! +!RPR4/WC_H2O2=0.0 +! +!RPR4/WC_NO=0.0 +! +!RPR4/WC_NO2=0.0 +! +!RPR4/WC_NO3=0.0 +! +!RPR4/WC_N2O5=0.0 +! +!RPR4/WC_HONO=0.0 +! +!RPR4/WC_HNO3=0.0 +! +!RPR4/WC_HNO4=0.0 +! +!RPR4/WC_NH3=0.0 +! +!RPR4/WC_OH=0.0 +! +!RPR4/WC_HO2=0.0 +! +!RPR4/WC_CO2=0.0 +! +!RPR4/WC_SO2=0.0 +! +!RPR4/WC_H2SO4=0.0 +! +!RPR4/WC_RO21=0.0 +! +!RPR4/WC_RO25=0.0 +! +!RPR4/WC_MEOH=0.0 +! +!RPR4/WC_ETOH=0.0 +! +!RPR4/WC_ALCH=0.0 +! +!RPR4/WC_HCHO=0.0 +! +!RPR4/WC_ALD2=0.0 +! +!RPR4/WC_GLY=0.0 +! +!RPR4/WC_MGLY=0.0 +! +!RPR4/WC_KETL=0.0 +! +!RPR4/WC_ORA1=0.0 +! +!RPR4/WC_ORA2=0.0 +! +!RPR4/WC_ACID=0.0 +! +!RPR4/WC_RP16=0.0 +! +!RPR4/WC_UR21=0.0 +! +!RPR4/WC_UR28=0.0 +! +!RPR4/WC_ACID2=0.0 +! +!RPR4/WC_ASO3=0.0 +! +!RPR4/WC_ASO4=0.0 +! +!RPR4/WC_ASO5=0.0 +! +!RPR4/WC_AHSO5=0.0 +! +!RPR4/WC_AHMS=0.0 +! +!RPR4/WR_O3=0.0 +! +!RPR4/WR_H2O2=0.0 +! +!RPR4/WR_NO=0.0 +! +!RPR4/WR_NO2=0.0 +! +!RPR4/WR_NO3=0.0 +! +!RPR4/WR_N2O5=0.0 +! +!RPR4/WR_HONO=0.0 +! +!RPR4/WR_HNO3=0.0 +! +!RPR4/WR_HNO4=0.0 +! +!RPR4/WR_NH3=0.0 +! +!RPR4/WR_OH=0.0 +! +!RPR4/WR_HO2=0.0 +! +!RPR4/WR_CO2=0.0 +! +!RPR4/WR_SO2=0.0 +! +!RPR4/WR_H2SO4=0.0 +! +!RPR4/WR_RO21=0.0 +! +!RPR4/WR_RO25=0.0 +! +!RPR4/WR_MEOH=0.0 +! +!RPR4/WR_ETOH=0.0 +! +!RPR4/WR_ALCH=0.0 +! +!RPR4/WR_HCHO=0.0 +! +!RPR4/WR_ALD2=0.0 +! +!RPR4/WR_GLY=0.0 +! +!RPR4/WR_MGLY=0.0 +! +!RPR4/WR_KETL=0.0 +! +!RPR4/WR_ORA1=0.0 +! +!RPR4/WR_ORA2=0.0 +! +!RPR4/WR_ACID=0.0 +! +!RPR4/WR_RP16=0.0 +! +!RPR4/WR_UR21=0.0 +! +!RPR4/WR_UR28=0.0 +! +!RPR4/WR_ACID2=0.0 +! +!RPR4/WR_ASO3=0.0 +! +!RPR4/WR_ASO4=0.0 +! +!RPR4/WR_ASO5=0.0 +! +!RPR4/WR_AHSO5=0.0 +! +!RPR4/WR_AHMS=0.0 +! +!RPR7/NO=+TPK%CF44*K195*<RO223> + PJAC(:,62,1)=+TPK%CF44*TPK%K195(:)*TPK%RO223(:) +! +!RPR7/NO2=0.0 +! +!RPR7/O3=0.0 +! +!RPR7/HONO=0.0 +! +!RPR7/HNO3=0.0 +! +!RPR7/HNO4=0.0 +! +!RPR7/N2O5=0.0 +! +!RPR7/NO3=0.0 +! +!RPR7/NH3=0.0 +! +!RPR7/HO2=+K197*<RO223> + PJAC(:,62,10)=+TPK%K197(:)*TPK%RO223(:) +! +!RPR7/CO=0.0 +! +!RPR7/H2O2=0.0 +! +!RPR7/SO2=0.0 +! +!RPR7/H2SO4=0.0 +! +!RPR7/OH=-03*K306*<RPRL>-K322*<RPR7> + PJAC(:,62,15)=-03*TPK%K306(:)*PCONC(:,75)-TPK%K322(:)*PCONC(:,62) +! +!RPR7/ETHE=0.0 +! +!RPR7/OLEL=0.0 +! +!RPR7/OLEH=0.0 +! +!RPR7/ALKL=0.0 +! +!RPR7/ALKM=0.0 +! +!RPR7/ALKH=0.0 +! +!RPR7/AROH=0.0 +! +!RPR7/AROL=0.0 +! +!RPR7/AROO=0.0 +! +!RPR7/ARAL=0.0 +! +!RPR7/ARAC=0.0 +! +!RPR7/PAH=0.0 +! +!RPR7/HCHO=0.0 +! +!RPR7/ALD2=0.0 +! +!RPR7/KETL=0.0 +! +!RPR7/KETH=0.0 +! +!RPR7/MEOH=0.0 +! +!RPR7/ETOH=0.0 +! +!RPR7/ALCH=0.0 +! +!RPR7/ISOP=0.0 +! +!RPR7/BIOL=0.0 +! +!RPR7/BIOH=0.0 +! +!RPR7/MTBE=0.0 +! +!RPR7/MVK=0.0 +! +!RPR7/MCR=0.0 +! +!RPR7/MGLY=0.0 +! +!RPR7/GLY=0.0 +! +!RPR7/ORA1=0.0 +! +!RPR7/ORA2=0.0 +! +!RPR7/ACID=0.0 +! +!RPR7/UR28=0.0 +! +!RPR7/UR21=0.0 +! +!RPR7/URG2=0.0 +! +!RPR7/UR26=0.0 +! +!RPR7/RPG2=0.0 +! +!RPR7/RP18=0.0 +! +!RPR7/RPG3=0.0 +! +!RPR7/URG4=0.0 +! +!RPR7/UR8=0.0 +! +!RPR7/UR17=0.0 +! +!RPR7/UR7=0.0 +! +!RPR7/RPR3=0.0 +! +!RPR7/URG6=0.0 +! +!RPR7/UR22=0.0 +! +!RPR7/URG7=0.0 +! +!RPR7/RPR4=0.0 +! +!RPR7/RPR7=-K322*<OH> + PJAC(:,62,62)=-TPK%K322(:)*PCONC(:,15) +! +!RPR7/RPG7=0.0 +! +!RPR7/URG8=0.0 +! +!RPR7/UR19=0.0 +! +!RPR7/URG9=0.0 +! +!RPR7/AP7=0.0 +! +!RPR7/URG10=0.0 +! +!RPR7/RPR1=0.0 +! +!RPR7/RPR5=0.0 +! +!RPR7/RPR8=0.0 +! +!RPR7/RP10=0.0 +! +!RPR7/RP11=0.0 +! +!RPR7/RP16=0.0 +! +!RPR7/RPRL=-03*K306*<OH> + PJAC(:,62,75)=-03*TPK%K306(:)*PCONC(:,15) +! +!RPR7/APAN=0.0 +! +!RPR7/PAN1=0.0 +! +!RPR7/PAN2=0.0 +! +!RPR7/PAN3=0.0 +! +!RPR7/PAN4=0.0 +! +!RPR7/PAN6=0.0 +! +!RPR7/PAN7=0.0 +! +!RPR7/PAN8=0.0 +! +!RPR7/PN10=0.0 +! +!RPR7/RO2T=+K196*<RO223> + PJAC(:,62,85)=+TPK%K196(:)*TPK%RO223(:) +! +!RPR7/RO21=0.0 +! +!RPR7/RO25=0.0 +! +!RPR7/WC_O3=0.0 +! +!RPR7/WC_H2O2=0.0 +! +!RPR7/WC_NO=0.0 +! +!RPR7/WC_NO2=0.0 +! +!RPR7/WC_NO3=0.0 +! +!RPR7/WC_N2O5=0.0 +! +!RPR7/WC_HONO=0.0 +! +!RPR7/WC_HNO3=0.0 +! +!RPR7/WC_HNO4=0.0 +! +!RPR7/WC_NH3=0.0 +! +!RPR7/WC_OH=0.0 +! +!RPR7/WC_HO2=0.0 +! +!RPR7/WC_CO2=0.0 +! +!RPR7/WC_SO2=0.0 +! +!RPR7/WC_H2SO4=0.0 +! +!RPR7/WC_RO21=0.0 +! +!RPR7/WC_RO25=0.0 +! +!RPR7/WC_MEOH=0.0 +! +!RPR7/WC_ETOH=0.0 +! +!RPR7/WC_ALCH=0.0 +! +!RPR7/WC_HCHO=0.0 +! +!RPR7/WC_ALD2=0.0 +! +!RPR7/WC_GLY=0.0 +! +!RPR7/WC_MGLY=0.0 +! +!RPR7/WC_KETL=0.0 +! +!RPR7/WC_ORA1=0.0 +! +!RPR7/WC_ORA2=0.0 +! +!RPR7/WC_ACID=0.0 +! +!RPR7/WC_RP16=0.0 +! +!RPR7/WC_UR21=0.0 +! +!RPR7/WC_UR28=0.0 +! +!RPR7/WC_ACID2=0.0 +! +!RPR7/WC_ASO3=0.0 +! +!RPR7/WC_ASO4=0.0 +! +!RPR7/WC_ASO5=0.0 +! +!RPR7/WC_AHSO5=0.0 +! +!RPR7/WC_AHMS=0.0 +! +!RPR7/WR_O3=0.0 +! +!RPR7/WR_H2O2=0.0 +! +!RPR7/WR_NO=0.0 +! +!RPR7/WR_NO2=0.0 +! +!RPR7/WR_NO3=0.0 +! +!RPR7/WR_N2O5=0.0 +! +!RPR7/WR_HONO=0.0 +! +!RPR7/WR_HNO3=0.0 +! +!RPR7/WR_HNO4=0.0 +! +!RPR7/WR_NH3=0.0 +! +!RPR7/WR_OH=0.0 +! +!RPR7/WR_HO2=0.0 +! +!RPR7/WR_CO2=0.0 +! +!RPR7/WR_SO2=0.0 +! +!RPR7/WR_H2SO4=0.0 +! +!RPR7/WR_RO21=0.0 +! +!RPR7/WR_RO25=0.0 +! +!RPR7/WR_MEOH=0.0 +! +!RPR7/WR_ETOH=0.0 +! +!RPR7/WR_ALCH=0.0 +! +!RPR7/WR_HCHO=0.0 +! +!RPR7/WR_ALD2=0.0 +! +!RPR7/WR_GLY=0.0 +! +!RPR7/WR_MGLY=0.0 +! +!RPR7/WR_KETL=0.0 +! +!RPR7/WR_ORA1=0.0 +! +!RPR7/WR_ORA2=0.0 +! +!RPR7/WR_ACID=0.0 +! +!RPR7/WR_RP16=0.0 +! +!RPR7/WR_UR21=0.0 +! +!RPR7/WR_UR28=0.0 +! +!RPR7/WR_ACID2=0.0 +! +!RPR7/WR_ASO3=0.0 +! +!RPR7/WR_ASO4=0.0 +! +!RPR7/WR_ASO5=0.0 +! +!RPR7/WR_AHSO5=0.0 +! +!RPR7/WR_AHMS=0.0 +! +!RPG7/NO=+1.0000013*K266*<RO238> + PJAC(:,63,1)=+1.0000013*TPK%K266(:)*TPK%RO238(:) +! +!RPG7/NO2=0.0 +! +!RPG7/O3=0.0 +! +!RPG7/HONO=0.0 +! +!RPG7/HNO3=0.0 +! +!RPG7/HNO4=0.0 +! +!RPG7/N2O5=0.0 +! +!RPG7/NO3=0.0 +! +!RPG7/NH3=0.0 +! +!RPG7/HO2=+1.0000013*K268*<RO238> + PJAC(:,63,10)=+1.0000013*TPK%K268(:)*TPK%RO238(:) +! +!RPG7/CO=0.0 +! +!RPG7/H2O2=0.0 +! +!RPG7/SO2=0.0 +! +!RPG7/H2SO4=0.0 +! +!RPG7/OH=+0.5021558*K323*<RPG7>-K323*<RPG7> + PJAC(:,63,15)=+0.5021558*TPK%K323(:)*PCONC(:,63)-TPK%K323(:)*PCONC(:,63) +! +!RPG7/ETHE=0.0 +! +!RPG7/OLEL=0.0 +! +!RPG7/OLEH=0.0 +! +!RPG7/ALKL=0.0 +! +!RPG7/ALKM=0.0 +! +!RPG7/ALKH=0.0 +! +!RPG7/AROH=0.0 +! +!RPG7/AROL=0.0 +! +!RPG7/AROO=0.0 +! +!RPG7/ARAL=0.0 +! +!RPG7/ARAC=0.0 +! +!RPG7/PAH=0.0 +! +!RPG7/HCHO=0.0 +! +!RPG7/ALD2=0.0 +! +!RPG7/KETL=0.0 +! +!RPG7/KETH=0.0 +! +!RPG7/MEOH=0.0 +! +!RPG7/ETOH=0.0 +! +!RPG7/ALCH=0.0 +! +!RPG7/ISOP=0.0 +! +!RPG7/BIOL=0.0 +! +!RPG7/BIOH=0.0 +! +!RPG7/MTBE=0.0 +! +!RPG7/MVK=0.0 +! +!RPG7/MCR=0.0 +! +!RPG7/MGLY=0.0 +! +!RPG7/GLY=0.0 +! +!RPG7/ORA1=0.0 +! +!RPG7/ORA2=0.0 +! +!RPG7/ACID=0.0 +! +!RPG7/UR28=0.0 +! +!RPG7/UR21=0.0 +! +!RPG7/URG2=0.0 +! +!RPG7/UR26=0.0 +! +!RPG7/RPG2=0.0 +! +!RPG7/RP18=0.0 +! +!RPG7/RPG3=0.0 +! +!RPG7/URG4=0.0 +! +!RPG7/UR8=0.0 +! +!RPG7/UR17=0.0 +! +!RPG7/UR7=0.0 +! +!RPG7/RPR3=0.0 +! +!RPG7/URG6=0.0 +! +!RPG7/UR22=0.0 +! +!RPG7/URG7=0.0 +! +!RPG7/RPR4=0.0 +! +!RPG7/RPR7=0.0 +! +!RPG7/RPG7=+0.5021558*K323*<OH>-K323*<OH> + PJAC(:,63,63)=+0.5021558*TPK%K323(:)*PCONC(:,15)-TPK%K323(:)*PCONC(:,15) +! +!RPG7/URG8=0.0 +! +!RPG7/UR19=0.0 +! +!RPG7/URG9=0.0 +! +!RPG7/AP7=0.0 +! +!RPG7/URG10=0.0 +! +!RPG7/RPR1=0.0 +! +!RPG7/RPR5=0.0 +! +!RPG7/RPR8=0.0 +! +!RPG7/RP10=0.0 +! +!RPG7/RP11=0.0 +! +!RPG7/RP16=0.0 +! +!RPG7/RPRL=0.0 +! +!RPG7/APAN=0.0 +! +!RPG7/PAN1=0.0 +! +!RPG7/PAN2=0.0 +! +!RPG7/PAN3=0.0 +! +!RPG7/PAN4=0.0 +! +!RPG7/PAN6=0.0 +! +!RPG7/PAN7=0.0 +! +!RPG7/PAN8=0.0 +! +!RPG7/PN10=0.0 +! +!RPG7/RO2T=+1.0000013*K267*<RO238> + PJAC(:,63,85)=+1.0000013*TPK%K267(:)*TPK%RO238(:) +! +!RPG7/RO21=0.0 +! +!RPG7/RO25=0.0 +! +!RPG7/WC_O3=0.0 +! +!RPG7/WC_H2O2=0.0 +! +!RPG7/WC_NO=0.0 +! +!RPG7/WC_NO2=0.0 +! +!RPG7/WC_NO3=0.0 +! +!RPG7/WC_N2O5=0.0 +! +!RPG7/WC_HONO=0.0 +! +!RPG7/WC_HNO3=0.0 +! +!RPG7/WC_HNO4=0.0 +! +!RPG7/WC_NH3=0.0 +! +!RPG7/WC_OH=0.0 +! +!RPG7/WC_HO2=0.0 +! +!RPG7/WC_CO2=0.0 +! +!RPG7/WC_SO2=0.0 +! +!RPG7/WC_H2SO4=0.0 +! +!RPG7/WC_RO21=0.0 +! +!RPG7/WC_RO25=0.0 +! +!RPG7/WC_MEOH=0.0 +! +!RPG7/WC_ETOH=0.0 +! +!RPG7/WC_ALCH=0.0 +! +!RPG7/WC_HCHO=0.0 +! +!RPG7/WC_ALD2=0.0 +! +!RPG7/WC_GLY=0.0 +! +!RPG7/WC_MGLY=0.0 +! +!RPG7/WC_KETL=0.0 +! +!RPG7/WC_ORA1=0.0 +! +!RPG7/WC_ORA2=0.0 +! +!RPG7/WC_ACID=0.0 +! +!RPG7/WC_RP16=0.0 +! +!RPG7/WC_UR21=0.0 +! +!RPG7/WC_UR28=0.0 +! +!RPG7/WC_ACID2=0.0 +! +!RPG7/WC_ASO3=0.0 +! +!RPG7/WC_ASO4=0.0 +! +!RPG7/WC_ASO5=0.0 +! +!RPG7/WC_AHSO5=0.0 +! +!RPG7/WC_AHMS=0.0 +! +!RPG7/WR_O3=0.0 +! +!RPG7/WR_H2O2=0.0 +! +!RPG7/WR_NO=0.0 +! +!RPG7/WR_NO2=0.0 +! +!RPG7/WR_NO3=0.0 +! +!RPG7/WR_N2O5=0.0 +! +!RPG7/WR_HONO=0.0 +! +!RPG7/WR_HNO3=0.0 +! +!RPG7/WR_HNO4=0.0 +! +!RPG7/WR_NH3=0.0 +! +!RPG7/WR_OH=0.0 +! +!RPG7/WR_HO2=0.0 +! +!RPG7/WR_CO2=0.0 +! +!RPG7/WR_SO2=0.0 +! +!RPG7/WR_H2SO4=0.0 +! +!RPG7/WR_RO21=0.0 +! +!RPG7/WR_RO25=0.0 +! +!RPG7/WR_MEOH=0.0 +! +!RPG7/WR_ETOH=0.0 +! +!RPG7/WR_ALCH=0.0 +! +!RPG7/WR_HCHO=0.0 +! +!RPG7/WR_ALD2=0.0 +! +!RPG7/WR_GLY=0.0 +! +!RPG7/WR_MGLY=0.0 +! +!RPG7/WR_KETL=0.0 +! +!RPG7/WR_ORA1=0.0 +! +!RPG7/WR_ORA2=0.0 +! +!RPG7/WR_ACID=0.0 +! +!RPG7/WR_RP16=0.0 +! +!RPG7/WR_UR21=0.0 +! +!RPG7/WR_UR28=0.0 +! +!RPG7/WR_ACID2=0.0 +! +!RPG7/WR_ASO3=0.0 +! +!RPG7/WR_ASO4=0.0 +! +!RPG7/WR_ASO5=0.0 +! +!RPG7/WR_AHSO5=0.0 +! +!RPG7/WR_AHMS=0.0 +! +!URG8/NO=+TPK%CF31*K221*<RO231> + PJAC(:,64,1)=+TPK%CF31*TPK%K221(:)*TPK%RO231(:) +! +!URG8/NO2=+1.0000000*K109*<RAD7> + PJAC(:,64,2)=+1.0000000*TPK%K109(:)*TPK%RAD7(:) +! +!URG8/O3=0.0 +! +!URG8/HONO=0.0 +! +!URG8/HNO3=0.0 +! +!URG8/HNO4=0.0 +! +!URG8/N2O5=0.0 +! +!URG8/NO3=0.0 +! +!URG8/NH3=0.0 +! +!URG8/HO2=0.0 +! +!URG8/CO=0.0 +! +!URG8/H2O2=0.0 +! +!URG8/SO2=0.0 +! +!URG8/H2SO4=0.0 +! +!URG8/OH=+0.1600000*K092*<PAH> + PJAC(:,64,15)=+0.1600000*TPK%K092(:)*PCONC(:,27) +! +!URG8/ETHE=0.0 +! +!URG8/OLEL=0.0 +! +!URG8/OLEH=0.0 +! +!URG8/ALKL=0.0 +! +!URG8/ALKM=0.0 +! +!URG8/ALKH=0.0 +! +!URG8/AROH=0.0 +! +!URG8/AROL=0.0 +! +!URG8/AROO=0.0 +! +!URG8/ARAL=0.0 +! +!URG8/ARAC=0.0 +! +!URG8/PAH=+0.1600000*K092*<OH> + PJAC(:,64,27)=+0.1600000*TPK%K092(:)*PCONC(:,15) +! +!URG8/HCHO=0.0 +! +!URG8/ALD2=0.0 +! +!URG8/KETL=0.0 +! +!URG8/KETH=0.0 +! +!URG8/MEOH=0.0 +! +!URG8/ETOH=0.0 +! +!URG8/ALCH=0.0 +! +!URG8/ISOP=0.0 +! +!URG8/BIOL=0.0 +! +!URG8/BIOH=0.0 +! +!URG8/MTBE=0.0 +! +!URG8/MVK=0.0 +! +!URG8/MCR=0.0 +! +!URG8/MGLY=0.0 +! +!URG8/GLY=0.0 +! +!URG8/ORA1=0.0 +! +!URG8/ORA2=0.0 +! +!URG8/ACID=0.0 +! +!URG8/UR28=0.0 +! +!URG8/UR21=0.0 +! +!URG8/URG2=0.0 +! +!URG8/UR26=0.0 +! +!URG8/RPG2=0.0 +! +!URG8/RP18=0.0 +! +!URG8/RPG3=0.0 +! +!URG8/URG4=0.0 +! +!URG8/UR8=0.0 +! +!URG8/UR17=0.0 +! +!URG8/UR7=0.0 +! +!URG8/RPR3=0.0 +! +!URG8/URG6=0.0 +! +!URG8/UR22=0.0 +! +!URG8/URG7=0.0 +! +!URG8/RPR4=0.0 +! +!URG8/RPR7=0.0 +! +!URG8/RPG7=0.0 +! +!URG8/URG8=-K354 + PJAC(:,64,64)=-TPK%K354(:) +! +!URG8/UR19=0.0 +! +!URG8/URG9=0.0 +! +!URG8/AP7=0.0 +! +!URG8/URG10=0.0 +! +!URG8/RPR1=0.0 +! +!URG8/RPR5=0.0 +! +!URG8/RPR8=0.0 +! +!URG8/RP10=0.0 +! +!URG8/RP11=0.0 +! +!URG8/RP16=0.0 +! +!URG8/RPRL=0.0 +! +!URG8/APAN=0.0 +! +!URG8/PAN1=0.0 +! +!URG8/PAN2=0.0 +! +!URG8/PAN3=0.0 +! +!URG8/PAN4=0.0 +! +!URG8/PAN6=0.0 +! +!URG8/PAN7=0.0 +! +!URG8/PAN8=0.0 +! +!URG8/PN10=0.0 +! +!URG8/RO2T=0.0 +! +!URG8/RO21=0.0 +! +!URG8/RO25=0.0 +! +!URG8/WC_O3=0.0 +! +!URG8/WC_H2O2=0.0 +! +!URG8/WC_NO=0.0 +! +!URG8/WC_NO2=0.0 +! +!URG8/WC_NO3=0.0 +! +!URG8/WC_N2O5=0.0 +! +!URG8/WC_HONO=0.0 +! +!URG8/WC_HNO3=0.0 +! +!URG8/WC_HNO4=0.0 +! +!URG8/WC_NH3=0.0 +! +!URG8/WC_OH=0.0 +! +!URG8/WC_HO2=0.0 +! +!URG8/WC_CO2=0.0 +! +!URG8/WC_SO2=0.0 +! +!URG8/WC_H2SO4=0.0 +! +!URG8/WC_RO21=0.0 +! +!URG8/WC_RO25=0.0 +! +!URG8/WC_MEOH=0.0 +! +!URG8/WC_ETOH=0.0 +! +!URG8/WC_ALCH=0.0 +! +!URG8/WC_HCHO=0.0 +! +!URG8/WC_ALD2=0.0 +! +!URG8/WC_GLY=0.0 +! +!URG8/WC_MGLY=0.0 +! +!URG8/WC_KETL=0.0 +! +!URG8/WC_ORA1=0.0 +! +!URG8/WC_ORA2=0.0 +! +!URG8/WC_ACID=0.0 +! +!URG8/WC_RP16=0.0 +! +!URG8/WC_UR21=0.0 +! +!URG8/WC_UR28=0.0 +! +!URG8/WC_ACID2=0.0 +! +!URG8/WC_ASO3=0.0 +! +!URG8/WC_ASO4=0.0 +! +!URG8/WC_ASO5=0.0 +! +!URG8/WC_AHSO5=0.0 +! +!URG8/WC_AHMS=0.0 +! +!URG8/WR_O3=0.0 +! +!URG8/WR_H2O2=0.0 +! +!URG8/WR_NO=0.0 +! +!URG8/WR_NO2=0.0 +! +!URG8/WR_NO3=0.0 +! +!URG8/WR_N2O5=0.0 +! +!URG8/WR_HONO=0.0 +! +!URG8/WR_HNO3=0.0 +! +!URG8/WR_HNO4=0.0 +! +!URG8/WR_NH3=0.0 +! +!URG8/WR_OH=0.0 +! +!URG8/WR_HO2=0.0 +! +!URG8/WR_CO2=0.0 +! +!URG8/WR_SO2=0.0 +! +!URG8/WR_H2SO4=0.0 +! +!URG8/WR_RO21=0.0 +! +!URG8/WR_RO25=0.0 +! +!URG8/WR_MEOH=0.0 +! +!URG8/WR_ETOH=0.0 +! +!URG8/WR_ALCH=0.0 +! +!URG8/WR_HCHO=0.0 +! +!URG8/WR_ALD2=0.0 +! +!URG8/WR_GLY=0.0 +! +!URG8/WR_MGLY=0.0 +! +!URG8/WR_KETL=0.0 +! +!URG8/WR_ORA1=0.0 +! +!URG8/WR_ORA2=0.0 +! +!URG8/WR_ACID=0.0 +! +!URG8/WR_RP16=0.0 +! +!URG8/WR_UR21=0.0 +! +!URG8/WR_UR28=0.0 +! +!URG8/WR_ACID2=0.0 +! +!URG8/WR_ASO3=0.0 +! +!URG8/WR_ASO4=0.0 +! +!URG8/WR_ASO5=0.0 +! +!URG8/WR_AHSO5=0.0 +! +!URG8/WR_AHMS=0.0 +! +!UR19/NO=+TPK%CF32*K221*<RO231> + PJAC(:,65,1)=+TPK%CF32*TPK%K221(:)*TPK%RO231(:) +! +!UR19/NO2=0.0 +! +!UR19/O3=0.0 +! +!UR19/HONO=0.0 +! +!UR19/HNO3=0.0 +! +!UR19/HNO4=0.0 +! +!UR19/N2O5=0.0 +! +!UR19/NO3=0.0 +! +!UR19/NH3=0.0 +! +!UR19/HO2=+K223*<RO231> + PJAC(:,65,10)=+TPK%K223(:)*TPK%RO231(:) +! +!UR19/CO=0.0 +! +!UR19/H2O2=0.0 +! +!UR19/SO2=0.0 +! +!UR19/H2SO4=0.0 +! +!UR19/OH=0.0 +! +!UR19/ETHE=0.0 +! +!UR19/OLEL=0.0 +! +!UR19/OLEH=0.0 +! +!UR19/ALKL=0.0 +! +!UR19/ALKM=0.0 +! +!UR19/ALKH=0.0 +! +!UR19/AROH=0.0 +! +!UR19/AROL=0.0 +! +!UR19/AROO=0.0 +! +!UR19/ARAL=0.0 +! +!UR19/ARAC=0.0 +! +!UR19/PAH=0.0 +! +!UR19/HCHO=0.0 +! +!UR19/ALD2=0.0 +! +!UR19/KETL=0.0 +! +!UR19/KETH=0.0 +! +!UR19/MEOH=0.0 +! +!UR19/ETOH=0.0 +! +!UR19/ALCH=0.0 +! +!UR19/ISOP=0.0 +! +!UR19/BIOL=0.0 +! +!UR19/BIOH=0.0 +! +!UR19/MTBE=0.0 +! +!UR19/MVK=0.0 +! +!UR19/MCR=0.0 +! +!UR19/MGLY=0.0 +! +!UR19/GLY=0.0 +! +!UR19/ORA1=0.0 +! +!UR19/ORA2=0.0 +! +!UR19/ACID=0.0 +! +!UR19/UR28=0.0 +! +!UR19/UR21=0.0 +! +!UR19/URG2=0.0 +! +!UR19/UR26=0.0 +! +!UR19/RPG2=0.0 +! +!UR19/RP18=0.0 +! +!UR19/RPG3=0.0 +! +!UR19/URG4=0.0 +! +!UR19/UR8=0.0 +! +!UR19/UR17=0.0 +! +!UR19/UR7=0.0 +! +!UR19/RPR3=0.0 +! +!UR19/URG6=0.0 +! +!UR19/UR22=0.0 +! +!UR19/URG7=0.0 +! +!UR19/RPR4=0.0 +! +!UR19/RPR7=0.0 +! +!UR19/RPG7=0.0 +! +!UR19/URG8=0.0 +! +!UR19/UR19=-K360 + PJAC(:,65,65)=-TPK%K360(:) +! +!UR19/URG9=0.0 +! +!UR19/AP7=0.0 +! +!UR19/URG10=0.0 +! +!UR19/RPR1=0.0 +! +!UR19/RPR5=0.0 +! +!UR19/RPR8=0.0 +! +!UR19/RP10=0.0 +! +!UR19/RP11=0.0 +! +!UR19/RP16=0.0 +! +!UR19/RPRL=0.0 +! +!UR19/APAN=0.0 +! +!UR19/PAN1=0.0 +! +!UR19/PAN2=0.0 +! +!UR19/PAN3=0.0 +! +!UR19/PAN4=0.0 +! +!UR19/PAN6=0.0 +! +!UR19/PAN7=0.0 +! +!UR19/PAN8=0.0 +! +!UR19/PN10=0.0 +! +!UR19/RO2T=+K222*<RO231> + PJAC(:,65,85)=+TPK%K222(:)*TPK%RO231(:) +! +!UR19/RO21=0.0 +! +!UR19/RO25=0.0 +! +!UR19/WC_O3=0.0 +! +!UR19/WC_H2O2=0.0 +! +!UR19/WC_NO=0.0 +! +!UR19/WC_NO2=0.0 +! +!UR19/WC_NO3=0.0 +! +!UR19/WC_N2O5=0.0 +! +!UR19/WC_HONO=0.0 +! +!UR19/WC_HNO3=0.0 +! +!UR19/WC_HNO4=0.0 +! +!UR19/WC_NH3=0.0 +! +!UR19/WC_OH=0.0 +! +!UR19/WC_HO2=0.0 +! +!UR19/WC_CO2=0.0 +! +!UR19/WC_SO2=0.0 +! +!UR19/WC_H2SO4=0.0 +! +!UR19/WC_RO21=0.0 +! +!UR19/WC_RO25=0.0 +! +!UR19/WC_MEOH=0.0 +! +!UR19/WC_ETOH=0.0 +! +!UR19/WC_ALCH=0.0 +! +!UR19/WC_HCHO=0.0 +! +!UR19/WC_ALD2=0.0 +! +!UR19/WC_GLY=0.0 +! +!UR19/WC_MGLY=0.0 +! +!UR19/WC_KETL=0.0 +! +!UR19/WC_ORA1=0.0 +! +!UR19/WC_ORA2=0.0 +! +!UR19/WC_ACID=0.0 +! +!UR19/WC_RP16=0.0 +! +!UR19/WC_UR21=0.0 +! +!UR19/WC_UR28=0.0 +! +!UR19/WC_ACID2=0.0 +! +!UR19/WC_ASO3=0.0 +! +!UR19/WC_ASO4=0.0 +! +!UR19/WC_ASO5=0.0 +! +!UR19/WC_AHSO5=0.0 +! +!UR19/WC_AHMS=0.0 +! +!UR19/WR_O3=0.0 +! +!UR19/WR_H2O2=0.0 +! +!UR19/WR_NO=0.0 +! +!UR19/WR_NO2=0.0 +! +!UR19/WR_NO3=0.0 +! +!UR19/WR_N2O5=0.0 +! +!UR19/WR_HONO=0.0 +! +!UR19/WR_HNO3=0.0 +! +!UR19/WR_HNO4=0.0 +! +!UR19/WR_NH3=0.0 +! +!UR19/WR_OH=0.0 +! +!UR19/WR_HO2=0.0 +! +!UR19/WR_CO2=0.0 +! +!UR19/WR_SO2=0.0 +! +!UR19/WR_H2SO4=0.0 +! +!UR19/WR_RO21=0.0 +! +!UR19/WR_RO25=0.0 +! +!UR19/WR_MEOH=0.0 +! +!UR19/WR_ETOH=0.0 +! +!UR19/WR_ALCH=0.0 +! +!UR19/WR_HCHO=0.0 +! +!UR19/WR_ALD2=0.0 +! +!UR19/WR_GLY=0.0 +! +!UR19/WR_MGLY=0.0 +! +!UR19/WR_KETL=0.0 +! +!UR19/WR_ORA1=0.0 +! +!UR19/WR_ORA2=0.0 +! +!UR19/WR_ACID=0.0 +! +!UR19/WR_RP16=0.0 +! +!UR19/WR_UR21=0.0 +! +!UR19/WR_UR28=0.0 +! +!UR19/WR_ACID2=0.0 +! +!UR19/WR_ASO3=0.0 +! +!UR19/WR_ASO4=0.0 +! +!UR19/WR_ASO5=0.0 +! +!UR19/WR_AHSO5=0.0 +! +!UR19/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ12 +! +SUBROUTINE SUBJ13 +! +!Indices 66 a 70 +! +! +!URG9/NO=+TPK%CFA14*K224*<RO232>+TPK%CFA16*K227*<RO241>+TPK%CFA15*K227*<RO241> + PJAC(:,66,1)=+TPK%CFA14*TPK%K224(:)*TPK%RO232(:)+TPK%CFA16*TPK%K227(:)*TPK%RO2& +&41(:)+TPK%CFA15*TPK%K227(:)*TPK%RO241(:) +! +!URG9/NO2=0.0 +! +!URG9/O3=0.0 +! +!URG9/HONO=0.0 +! +!URG9/HNO3=0.0 +! +!URG9/HNO4=0.0 +! +!URG9/N2O5=0.0 +! +!URG9/NO3=0.0 +! +!URG9/NH3=0.0 +! +!URG9/HO2=+0.9999996*K229*<RO241> + PJAC(:,66,10)=+0.9999996*TPK%K229(:)*TPK%RO241(:) +! +!URG9/CO=0.0 +! +!URG9/H2O2=0.0 +! +!URG9/SO2=0.0 +! +!URG9/H2SO4=0.0 +! +!URG9/OH=0.0 +! +!URG9/ETHE=0.0 +! +!URG9/OLEL=0.0 +! +!URG9/OLEH=0.0 +! +!URG9/ALKL=0.0 +! +!URG9/ALKM=0.0 +! +!URG9/ALKH=0.0 +! +!URG9/AROH=0.0 +! +!URG9/AROL=0.0 +! +!URG9/AROO=0.0 +! +!URG9/ARAL=0.0 +! +!URG9/ARAC=0.0 +! +!URG9/PAH=0.0 +! +!URG9/HCHO=0.0 +! +!URG9/ALD2=0.0 +! +!URG9/KETL=0.0 +! +!URG9/KETH=0.0 +! +!URG9/MEOH=0.0 +! +!URG9/ETOH=0.0 +! +!URG9/ALCH=0.0 +! +!URG9/ISOP=0.0 +! +!URG9/BIOL=0.0 +! +!URG9/BIOH=0.0 +! +!URG9/MTBE=0.0 +! +!URG9/MVK=0.0 +! +!URG9/MCR=0.0 +! +!URG9/MGLY=0.0 +! +!URG9/GLY=0.0 +! +!URG9/ORA1=0.0 +! +!URG9/ORA2=0.0 +! +!URG9/ACID=0.0 +! +!URG9/UR28=0.0 +! +!URG9/UR21=0.0 +! +!URG9/URG2=0.0 +! +!URG9/UR26=0.0 +! +!URG9/RPG2=0.0 +! +!URG9/RP18=0.0 +! +!URG9/RPG3=0.0 +! +!URG9/URG4=0.0 +! +!URG9/UR8=0.0 +! +!URG9/UR17=0.0 +! +!URG9/UR7=0.0 +! +!URG9/RPR3=0.0 +! +!URG9/URG6=0.0 +! +!URG9/UR22=0.0 +! +!URG9/URG7=0.0 +! +!URG9/RPR4=0.0 +! +!URG9/RPR7=0.0 +! +!URG9/RPG7=0.0 +! +!URG9/URG8=0.0 +! +!URG9/UR19=0.0 +! +!URG9/URG9=-K355 + PJAC(:,66,66)=-TPK%K355(:) +! +!URG9/AP7=0.0 +! +!URG9/URG10=0.0 +! +!URG9/RPR1=0.0 +! +!URG9/RPR5=0.0 +! +!URG9/RPR8=0.0 +! +!URG9/RP10=0.0 +! +!URG9/RP11=0.0 +! +!URG9/RP16=0.0 +! +!URG9/RPRL=0.0 +! +!URG9/APAN=0.0 +! +!URG9/PAN1=0.0 +! +!URG9/PAN2=0.0 +! +!URG9/PAN3=0.0 +! +!URG9/PAN4=0.0 +! +!URG9/PAN6=0.0 +! +!URG9/PAN7=0.0 +! +!URG9/PAN8=0.0 +! +!URG9/PN10=0.0 +! +!URG9/RO2T=+0.9999996*K228*<RO241> + PJAC(:,66,85)=+0.9999996*TPK%K228(:)*TPK%RO241(:) +! +!URG9/RO21=0.0 +! +!URG9/RO25=0.0 +! +!URG9/WC_O3=0.0 +! +!URG9/WC_H2O2=0.0 +! +!URG9/WC_NO=0.0 +! +!URG9/WC_NO2=0.0 +! +!URG9/WC_NO3=0.0 +! +!URG9/WC_N2O5=0.0 +! +!URG9/WC_HONO=0.0 +! +!URG9/WC_HNO3=0.0 +! +!URG9/WC_HNO4=0.0 +! +!URG9/WC_NH3=0.0 +! +!URG9/WC_OH=0.0 +! +!URG9/WC_HO2=0.0 +! +!URG9/WC_CO2=0.0 +! +!URG9/WC_SO2=0.0 +! +!URG9/WC_H2SO4=0.0 +! +!URG9/WC_RO21=0.0 +! +!URG9/WC_RO25=0.0 +! +!URG9/WC_MEOH=0.0 +! +!URG9/WC_ETOH=0.0 +! +!URG9/WC_ALCH=0.0 +! +!URG9/WC_HCHO=0.0 +! +!URG9/WC_ALD2=0.0 +! +!URG9/WC_GLY=0.0 +! +!URG9/WC_MGLY=0.0 +! +!URG9/WC_KETL=0.0 +! +!URG9/WC_ORA1=0.0 +! +!URG9/WC_ORA2=0.0 +! +!URG9/WC_ACID=0.0 +! +!URG9/WC_RP16=0.0 +! +!URG9/WC_UR21=0.0 +! +!URG9/WC_UR28=0.0 +! +!URG9/WC_ACID2=0.0 +! +!URG9/WC_ASO3=0.0 +! +!URG9/WC_ASO4=0.0 +! +!URG9/WC_ASO5=0.0 +! +!URG9/WC_AHSO5=0.0 +! +!URG9/WC_AHMS=0.0 +! +!URG9/WR_O3=0.0 +! +!URG9/WR_H2O2=0.0 +! +!URG9/WR_NO=0.0 +! +!URG9/WR_NO2=0.0 +! +!URG9/WR_NO3=0.0 +! +!URG9/WR_N2O5=0.0 +! +!URG9/WR_HONO=0.0 +! +!URG9/WR_HNO3=0.0 +! +!URG9/WR_HNO4=0.0 +! +!URG9/WR_NH3=0.0 +! +!URG9/WR_OH=0.0 +! +!URG9/WR_HO2=0.0 +! +!URG9/WR_CO2=0.0 +! +!URG9/WR_SO2=0.0 +! +!URG9/WR_H2SO4=0.0 +! +!URG9/WR_RO21=0.0 +! +!URG9/WR_RO25=0.0 +! +!URG9/WR_MEOH=0.0 +! +!URG9/WR_ETOH=0.0 +! +!URG9/WR_ALCH=0.0 +! +!URG9/WR_HCHO=0.0 +! +!URG9/WR_ALD2=0.0 +! +!URG9/WR_GLY=0.0 +! +!URG9/WR_MGLY=0.0 +! +!URG9/WR_KETL=0.0 +! +!URG9/WR_ORA1=0.0 +! +!URG9/WR_ORA2=0.0 +! +!URG9/WR_ACID=0.0 +! +!URG9/WR_RP16=0.0 +! +!URG9/WR_UR21=0.0 +! +!URG9/WR_UR28=0.0 +! +!URG9/WR_ACID2=0.0 +! +!URG9/WR_ASO3=0.0 +! +!URG9/WR_ASO4=0.0 +! +!URG9/WR_ASO5=0.0 +! +!URG9/WR_AHSO5=0.0 +! +!URG9/WR_AHMS=0.0 +! +!AP7/NO=+TPK%CFA23*K198*<RO224> + PJAC(:,67,1)=+TPK%CFA23*TPK%K198(:)*TPK%RO224(:) +! +!AP7/NO2=0.0 +! +!AP7/O3=0.0 +! +!AP7/HONO=0.0 +! +!AP7/HNO3=0.0 +! +!AP7/HNO4=0.0 +! +!AP7/N2O5=0.0 +! +!AP7/NO3=0.0 +! +!AP7/NH3=0.0 +! +!AP7/HO2=0.0 +! +!AP7/CO=0.0 +! +!AP7/H2O2=0.0 +! +!AP7/SO2=0.0 +! +!AP7/H2SO4=0.0 +! +!AP7/OH=0.0 +! +!AP7/ETHE=0.0 +! +!AP7/OLEL=0.0 +! +!AP7/OLEH=0.0 +! +!AP7/ALKL=0.0 +! +!AP7/ALKM=0.0 +! +!AP7/ALKH=0.0 +! +!AP7/AROH=0.0 +! +!AP7/AROL=0.0 +! +!AP7/AROO=0.0 +! +!AP7/ARAL=0.0 +! +!AP7/ARAC=0.0 +! +!AP7/PAH=0.0 +! +!AP7/HCHO=0.0 +! +!AP7/ALD2=0.0 +! +!AP7/KETL=0.0 +! +!AP7/KETH=0.0 +! +!AP7/MEOH=0.0 +! +!AP7/ETOH=0.0 +! +!AP7/ALCH=0.0 +! +!AP7/ISOP=0.0 +! +!AP7/BIOL=0.0 +! +!AP7/BIOH=0.0 +! +!AP7/MTBE=0.0 +! +!AP7/MVK=0.0 +! +!AP7/MCR=0.0 +! +!AP7/MGLY=0.0 +! +!AP7/GLY=0.0 +! +!AP7/ORA1=0.0 +! +!AP7/ORA2=0.0 +! +!AP7/ACID=0.0 +! +!AP7/UR28=0.0 +! +!AP7/UR21=0.0 +! +!AP7/URG2=0.0 +! +!AP7/UR26=0.0 +! +!AP7/RPG2=0.0 +! +!AP7/RP18=0.0 +! +!AP7/RPG3=0.0 +! +!AP7/URG4=0.0 +! +!AP7/UR8=0.0 +! +!AP7/UR17=0.0 +! +!AP7/UR7=0.0 +! +!AP7/RPR3=0.0 +! +!AP7/URG6=0.0 +! +!AP7/UR22=0.0 +! +!AP7/URG7=0.0 +! +!AP7/RPR4=0.0 +! +!AP7/RPR7=0.0 +! +!AP7/RPG7=0.0 +! +!AP7/URG8=0.0 +! +!AP7/UR19=0.0 +! +!AP7/URG9=0.0 +! +!AP7/AP7=-K365 + PJAC(:,67,67)=-TPK%K365(:) +! +!AP7/URG10=0.0 +! +!AP7/RPR1=0.0 +! +!AP7/RPR5=0.0 +! +!AP7/RPR8=0.0 +! +!AP7/RP10=0.0 +! +!AP7/RP11=0.0 +! +!AP7/RP16=0.0 +! +!AP7/RPRL=0.0 +! +!AP7/APAN=0.0 +! +!AP7/PAN1=0.0 +! +!AP7/PAN2=0.0 +! +!AP7/PAN3=0.0 +! +!AP7/PAN4=0.0 +! +!AP7/PAN6=0.0 +! +!AP7/PAN7=0.0 +! +!AP7/PAN8=0.0 +! +!AP7/PN10=0.0 +! +!AP7/RO2T=0.0 +! +!AP7/RO21=0.0 +! +!AP7/RO25=0.0 +! +!AP7/WC_O3=0.0 +! +!AP7/WC_H2O2=0.0 +! +!AP7/WC_NO=0.0 +! +!AP7/WC_NO2=0.0 +! +!AP7/WC_NO3=0.0 +! +!AP7/WC_N2O5=0.0 +! +!AP7/WC_HONO=0.0 +! +!AP7/WC_HNO3=0.0 +! +!AP7/WC_HNO4=0.0 +! +!AP7/WC_NH3=0.0 +! +!AP7/WC_OH=0.0 +! +!AP7/WC_HO2=0.0 +! +!AP7/WC_CO2=0.0 +! +!AP7/WC_SO2=0.0 +! +!AP7/WC_H2SO4=0.0 +! +!AP7/WC_RO21=0.0 +! +!AP7/WC_RO25=0.0 +! +!AP7/WC_MEOH=0.0 +! +!AP7/WC_ETOH=0.0 +! +!AP7/WC_ALCH=0.0 +! +!AP7/WC_HCHO=0.0 +! +!AP7/WC_ALD2=0.0 +! +!AP7/WC_GLY=0.0 +! +!AP7/WC_MGLY=0.0 +! +!AP7/WC_KETL=0.0 +! +!AP7/WC_ORA1=0.0 +! +!AP7/WC_ORA2=0.0 +! +!AP7/WC_ACID=0.0 +! +!AP7/WC_RP16=0.0 +! +!AP7/WC_UR21=0.0 +! +!AP7/WC_UR28=0.0 +! +!AP7/WC_ACID2=0.0 +! +!AP7/WC_ASO3=0.0 +! +!AP7/WC_ASO4=0.0 +! +!AP7/WC_ASO5=0.0 +! +!AP7/WC_AHSO5=0.0 +! +!AP7/WC_AHMS=0.0 +! +!AP7/WR_O3=0.0 +! +!AP7/WR_H2O2=0.0 +! +!AP7/WR_NO=0.0 +! +!AP7/WR_NO2=0.0 +! +!AP7/WR_NO3=0.0 +! +!AP7/WR_N2O5=0.0 +! +!AP7/WR_HONO=0.0 +! +!AP7/WR_HNO3=0.0 +! +!AP7/WR_HNO4=0.0 +! +!AP7/WR_NH3=0.0 +! +!AP7/WR_OH=0.0 +! +!AP7/WR_HO2=0.0 +! +!AP7/WR_CO2=0.0 +! +!AP7/WR_SO2=0.0 +! +!AP7/WR_H2SO4=0.0 +! +!AP7/WR_RO21=0.0 +! +!AP7/WR_RO25=0.0 +! +!AP7/WR_MEOH=0.0 +! +!AP7/WR_ETOH=0.0 +! +!AP7/WR_ALCH=0.0 +! +!AP7/WR_HCHO=0.0 +! +!AP7/WR_ALD2=0.0 +! +!AP7/WR_GLY=0.0 +! +!AP7/WR_MGLY=0.0 +! +!AP7/WR_KETL=0.0 +! +!AP7/WR_ORA1=0.0 +! +!AP7/WR_ORA2=0.0 +! +!AP7/WR_ACID=0.0 +! +!AP7/WR_RP16=0.0 +! +!AP7/WR_UR21=0.0 +! +!AP7/WR_UR28=0.0 +! +!AP7/WR_ACID2=0.0 +! +!AP7/WR_ASO3=0.0 +! +!AP7/WR_ASO4=0.0 +! +!AP7/WR_ASO5=0.0 +! +!AP7/WR_AHSO5=0.0 +! +!AP7/WR_AHMS=0.0 +! +!URG10/NO=+TPK%CF27*K207*<RO227> + PJAC(:,68,1)=+TPK%CF27*TPK%K207(:)*TPK%RO227(:) +! +!URG10/NO2=0.0 +! +!URG10/O3=0.0 +! +!URG10/HONO=0.0 +! +!URG10/HNO3=0.0 +! +!URG10/HNO4=0.0 +! +!URG10/N2O5=0.0 +! +!URG10/NO3=0.0 +! +!URG10/NH3=0.0 +! +!URG10/HO2=0.0 +! +!URG10/CO=0.0 +! +!URG10/H2O2=0.0 +! +!URG10/SO2=0.0 +! +!URG10/H2SO4=0.0 +! +!URG10/OH=0.0 +! +!URG10/ETHE=0.0 +! +!URG10/OLEL=0.0 +! +!URG10/OLEH=0.0 +! +!URG10/ALKL=0.0 +! +!URG10/ALKM=0.0 +! +!URG10/ALKH=0.0 +! +!URG10/AROH=0.0 +! +!URG10/AROL=0.0 +! +!URG10/AROO=0.0 +! +!URG10/ARAL=0.0 +! +!URG10/ARAC=0.0 +! +!URG10/PAH=0.0 +! +!URG10/HCHO=0.0 +! +!URG10/ALD2=0.0 +! +!URG10/KETL=0.0 +! +!URG10/KETH=0.0 +! +!URG10/MEOH=0.0 +! +!URG10/ETOH=0.0 +! +!URG10/ALCH=0.0 +! +!URG10/ISOP=0.0 +! +!URG10/BIOL=+0.2500000*K087*<O>+0.7500000*K087*<O> + PJAC(:,68,36)=+0.2500000*TPK%K087(:)*TPK%O(:)+0.7500000*TPK%K087(:)*TPK%O(:) +! +!URG10/BIOH=0.0 +! +!URG10/MTBE=0.0 +! +!URG10/MVK=0.0 +! +!URG10/MCR=0.0 +! +!URG10/MGLY=0.0 +! +!URG10/GLY=0.0 +! +!URG10/ORA1=0.0 +! +!URG10/ORA2=0.0 +! +!URG10/ACID=0.0 +! +!URG10/UR28=0.0 +! +!URG10/UR21=0.0 +! +!URG10/URG2=0.0 +! +!URG10/UR26=0.0 +! +!URG10/RPG2=0.0 +! +!URG10/RP18=0.0 +! +!URG10/RPG3=0.0 +! +!URG10/URG4=0.0 +! +!URG10/UR8=0.0 +! +!URG10/UR17=0.0 +! +!URG10/UR7=0.0 +! +!URG10/RPR3=0.0 +! +!URG10/URG6=0.0 +! +!URG10/UR22=0.0 +! +!URG10/URG7=0.0 +! +!URG10/RPR4=0.0 +! +!URG10/RPR7=0.0 +! +!URG10/RPG7=0.0 +! +!URG10/URG8=0.0 +! +!URG10/UR19=0.0 +! +!URG10/URG9=0.0 +! +!URG10/AP7=0.0 +! +!URG10/URG10=-K356 + PJAC(:,68,68)=-TPK%K356(:) +! +!URG10/RPR1=0.0 +! +!URG10/RPR5=0.0 +! +!URG10/RPR8=0.0 +! +!URG10/RP10=0.0 +! +!URG10/RP11=0.0 +! +!URG10/RP16=0.0 +! +!URG10/RPRL=0.0 +! +!URG10/APAN=0.0 +! +!URG10/PAN1=0.0 +! +!URG10/PAN2=0.0 +! +!URG10/PAN3=0.0 +! +!URG10/PAN4=0.0 +! +!URG10/PAN6=0.0 +! +!URG10/PAN7=0.0 +! +!URG10/PAN8=0.0 +! +!URG10/PN10=0.0 +! +!URG10/RO2T=0.0 +! +!URG10/RO21=0.0 +! +!URG10/RO25=0.0 +! +!URG10/WC_O3=0.0 +! +!URG10/WC_H2O2=0.0 +! +!URG10/WC_NO=0.0 +! +!URG10/WC_NO2=0.0 +! +!URG10/WC_NO3=0.0 +! +!URG10/WC_N2O5=0.0 +! +!URG10/WC_HONO=0.0 +! +!URG10/WC_HNO3=0.0 +! +!URG10/WC_HNO4=0.0 +! +!URG10/WC_NH3=0.0 +! +!URG10/WC_OH=0.0 +! +!URG10/WC_HO2=0.0 +! +!URG10/WC_CO2=0.0 +! +!URG10/WC_SO2=0.0 +! +!URG10/WC_H2SO4=0.0 +! +!URG10/WC_RO21=0.0 +! +!URG10/WC_RO25=0.0 +! +!URG10/WC_MEOH=0.0 +! +!URG10/WC_ETOH=0.0 +! +!URG10/WC_ALCH=0.0 +! +!URG10/WC_HCHO=0.0 +! +!URG10/WC_ALD2=0.0 +! +!URG10/WC_GLY=0.0 +! +!URG10/WC_MGLY=0.0 +! +!URG10/WC_KETL=0.0 +! +!URG10/WC_ORA1=0.0 +! +!URG10/WC_ORA2=0.0 +! +!URG10/WC_ACID=0.0 +! +!URG10/WC_RP16=0.0 +! +!URG10/WC_UR21=0.0 +! +!URG10/WC_UR28=0.0 +! +!URG10/WC_ACID2=0.0 +! +!URG10/WC_ASO3=0.0 +! +!URG10/WC_ASO4=0.0 +! +!URG10/WC_ASO5=0.0 +! +!URG10/WC_AHSO5=0.0 +! +!URG10/WC_AHMS=0.0 +! +!URG10/WR_O3=0.0 +! +!URG10/WR_H2O2=0.0 +! +!URG10/WR_NO=0.0 +! +!URG10/WR_NO2=0.0 +! +!URG10/WR_NO3=0.0 +! +!URG10/WR_N2O5=0.0 +! +!URG10/WR_HONO=0.0 +! +!URG10/WR_HNO3=0.0 +! +!URG10/WR_HNO4=0.0 +! +!URG10/WR_NH3=0.0 +! +!URG10/WR_OH=0.0 +! +!URG10/WR_HO2=0.0 +! +!URG10/WR_CO2=0.0 +! +!URG10/WR_SO2=0.0 +! +!URG10/WR_H2SO4=0.0 +! +!URG10/WR_RO21=0.0 +! +!URG10/WR_RO25=0.0 +! +!URG10/WR_MEOH=0.0 +! +!URG10/WR_ETOH=0.0 +! +!URG10/WR_ALCH=0.0 +! +!URG10/WR_HCHO=0.0 +! +!URG10/WR_ALD2=0.0 +! +!URG10/WR_GLY=0.0 +! +!URG10/WR_MGLY=0.0 +! +!URG10/WR_KETL=0.0 +! +!URG10/WR_ORA1=0.0 +! +!URG10/WR_ORA2=0.0 +! +!URG10/WR_ACID=0.0 +! +!URG10/WR_RP16=0.0 +! +!URG10/WR_UR21=0.0 +! +!URG10/WR_UR28=0.0 +! +!URG10/WR_ACID2=0.0 +! +!URG10/WR_ASO3=0.0 +! +!URG10/WR_ASO4=0.0 +! +!URG10/WR_ASO5=0.0 +! +!URG10/WR_AHSO5=0.0 +! +!URG10/WR_AHMS=0.0 +! +!RPR1/NO=+K183*<RO219> + PJAC(:,69,1)=+TPK%K183(:)*TPK%RO219(:) +! +!RPR1/NO2=0.0 +! +!RPR1/O3=+0.5*K076*<OLEH> + PJAC(:,69,3)=+0.5*TPK%K076(:)*PCONC(:,18) +! +!RPR1/HONO=0.0 +! +!RPR1/HNO3=0.0 +! +!RPR1/HNO4=0.0 +! +!RPR1/N2O5=0.0 +! +!RPR1/NO3=-K307*<RPR1> + PJAC(:,69,8)=-TPK%K307(:)*PCONC(:,69) +! +!RPR1/NH3=0.0 +! +!RPR1/HO2=+K185*<RO219> + PJAC(:,69,10)=+TPK%K185(:)*TPK%RO219(:) +! +!RPR1/CO=0.0 +! +!RPR1/H2O2=0.0 +! +!RPR1/SO2=0.0 +! +!RPR1/H2SO4=0.0 +! +!RPR1/OH=-K304*<RPR1> + PJAC(:,69,15)=-TPK%K304(:)*PCONC(:,69) +! +!RPR1/ETHE=0.0 +! +!RPR1/OLEL=0.0 +! +!RPR1/OLEH=+0.5*K076*<O3>+0.4*K077*<O> + PJAC(:,69,18)=+0.5*TPK%K076(:)*PCONC(:,3)+0.4*TPK%K077(:)*TPK%O(:) +! +!RPR1/ALKL=0.0 +! +!RPR1/ALKM=0.0 +! +!RPR1/ALKH=0.0 +! +!RPR1/AROH=0.0 +! +!RPR1/AROL=0.0 +! +!RPR1/AROO=0.0 +! +!RPR1/ARAL=0.0 +! +!RPR1/ARAC=0.0 +! +!RPR1/PAH=0.0 +! +!RPR1/HCHO=0.0 +! +!RPR1/ALD2=0.0 +! +!RPR1/KETL=0.0 +! +!RPR1/KETH=0.0 +! +!RPR1/MEOH=0.0 +! +!RPR1/ETOH=0.0 +! +!RPR1/ALCH=0.0 +! +!RPR1/ISOP=0.0 +! +!RPR1/BIOL=0.0 +! +!RPR1/BIOH=0.0 +! +!RPR1/MTBE=0.0 +! +!RPR1/MVK=0.0 +! +!RPR1/MCR=0.0 +! +!RPR1/MGLY=0.0 +! +!RPR1/GLY=0.0 +! +!RPR1/ORA1=0.0 +! +!RPR1/ORA2=0.0 +! +!RPR1/ACID=0.0 +! +!RPR1/UR28=0.0 +! +!RPR1/UR21=0.0 +! +!RPR1/URG2=0.0 +! +!RPR1/UR26=0.0 +! +!RPR1/RPG2=0.0 +! +!RPR1/RP18=0.0 +! +!RPR1/RPG3=0.0 +! +!RPR1/URG4=0.0 +! +!RPR1/UR8=0.0 +! +!RPR1/UR17=0.0 +! +!RPR1/UR7=0.0 +! +!RPR1/RPR3=0.0 +! +!RPR1/URG6=0.0 +! +!RPR1/UR22=0.0 +! +!RPR1/URG7=0.0 +! +!RPR1/RPR4=0.0 +! +!RPR1/RPR7=0.0 +! +!RPR1/RPG7=0.0 +! +!RPR1/URG8=0.0 +! +!RPR1/UR19=0.0 +! +!RPR1/URG9=0.0 +! +!RPR1/AP7=0.0 +! +!RPR1/URG10=0.0 +! +!RPR1/RPR1=-K304*<OH>-K307*<NO3>-K308 + PJAC(:,69,69)=-TPK%K304(:)*PCONC(:,15)-TPK%K307(:)*PCONC(:,8)-TPK%K308(:) +! +!RPR1/RPR5=0.0 +! +!RPR1/RPR8=0.0 +! +!RPR1/RP10=0.0 +! +!RPR1/RP11=0.0 +! +!RPR1/RP16=0.0 +! +!RPR1/RPRL=0.0 +! +!RPR1/APAN=0.0 +! +!RPR1/PAN1=0.0 +! +!RPR1/PAN2=0.0 +! +!RPR1/PAN3=0.0 +! +!RPR1/PAN4=0.0 +! +!RPR1/PAN6=0.0 +! +!RPR1/PAN7=0.0 +! +!RPR1/PAN8=0.0 +! +!RPR1/PN10=0.0 +! +!RPR1/RO2T=+K184*<RO219> + PJAC(:,69,85)=+TPK%K184(:)*TPK%RO219(:) +! +!RPR1/RO21=0.0 +! +!RPR1/RO25=0.0 +! +!RPR1/WC_O3=0.0 +! +!RPR1/WC_H2O2=0.0 +! +!RPR1/WC_NO=0.0 +! +!RPR1/WC_NO2=0.0 +! +!RPR1/WC_NO3=0.0 +! +!RPR1/WC_N2O5=0.0 +! +!RPR1/WC_HONO=0.0 +! +!RPR1/WC_HNO3=0.0 +! +!RPR1/WC_HNO4=0.0 +! +!RPR1/WC_NH3=0.0 +! +!RPR1/WC_OH=0.0 +! +!RPR1/WC_HO2=0.0 +! +!RPR1/WC_CO2=0.0 +! +!RPR1/WC_SO2=0.0 +! +!RPR1/WC_H2SO4=0.0 +! +!RPR1/WC_RO21=0.0 +! +!RPR1/WC_RO25=0.0 +! +!RPR1/WC_MEOH=0.0 +! +!RPR1/WC_ETOH=0.0 +! +!RPR1/WC_ALCH=0.0 +! +!RPR1/WC_HCHO=0.0 +! +!RPR1/WC_ALD2=0.0 +! +!RPR1/WC_GLY=0.0 +! +!RPR1/WC_MGLY=0.0 +! +!RPR1/WC_KETL=0.0 +! +!RPR1/WC_ORA1=0.0 +! +!RPR1/WC_ORA2=0.0 +! +!RPR1/WC_ACID=0.0 +! +!RPR1/WC_RP16=0.0 +! +!RPR1/WC_UR21=0.0 +! +!RPR1/WC_UR28=0.0 +! +!RPR1/WC_ACID2=0.0 +! +!RPR1/WC_ASO3=0.0 +! +!RPR1/WC_ASO4=0.0 +! +!RPR1/WC_ASO5=0.0 +! +!RPR1/WC_AHSO5=0.0 +! +!RPR1/WC_AHMS=0.0 +! +!RPR1/WR_O3=0.0 +! +!RPR1/WR_H2O2=0.0 +! +!RPR1/WR_NO=0.0 +! +!RPR1/WR_NO2=0.0 +! +!RPR1/WR_NO3=0.0 +! +!RPR1/WR_N2O5=0.0 +! +!RPR1/WR_HONO=0.0 +! +!RPR1/WR_HNO3=0.0 +! +!RPR1/WR_HNO4=0.0 +! +!RPR1/WR_NH3=0.0 +! +!RPR1/WR_OH=0.0 +! +!RPR1/WR_HO2=0.0 +! +!RPR1/WR_CO2=0.0 +! +!RPR1/WR_SO2=0.0 +! +!RPR1/WR_H2SO4=0.0 +! +!RPR1/WR_RO21=0.0 +! +!RPR1/WR_RO25=0.0 +! +!RPR1/WR_MEOH=0.0 +! +!RPR1/WR_ETOH=0.0 +! +!RPR1/WR_ALCH=0.0 +! +!RPR1/WR_HCHO=0.0 +! +!RPR1/WR_ALD2=0.0 +! +!RPR1/WR_GLY=0.0 +! +!RPR1/WR_MGLY=0.0 +! +!RPR1/WR_KETL=0.0 +! +!RPR1/WR_ORA1=0.0 +! +!RPR1/WR_ORA2=0.0 +! +!RPR1/WR_ACID=0.0 +! +!RPR1/WR_RP16=0.0 +! +!RPR1/WR_UR21=0.0 +! +!RPR1/WR_UR28=0.0 +! +!RPR1/WR_ACID2=0.0 +! +!RPR1/WR_ASO3=0.0 +! +!RPR1/WR_ASO4=0.0 +! +!RPR1/WR_ASO5=0.0 +! +!RPR1/WR_AHSO5=0.0 +! +!RPR1/WR_AHMS=0.0 +! +!RPR5/NO=0.0 +! +!RPR5/NO2=+K107*<RAD5> + PJAC(:,70,2)=+TPK%K107(:)*TPK%RAD5(:) +! +!RPR5/O3=0.0 +! +!RPR5/HONO=0.0 +! +!RPR5/HNO3=0.0 +! +!RPR5/HNO4=0.0 +! +!RPR5/N2O5=0.0 +! +!RPR5/NO3=0.0 +! +!RPR5/NH3=0.0 +! +!RPR5/HO2=0.0 +! +!RPR5/CO=0.0 +! +!RPR5/H2O2=0.0 +! +!RPR5/SO2=0.0 +! +!RPR5/H2SO4=0.0 +! +!RPR5/OH=-K303*<RPR5> + PJAC(:,70,15)=-TPK%K303(:)*PCONC(:,70) +! +!RPR5/ETHE=0.0 +! +!RPR5/OLEL=0.0 +! +!RPR5/OLEH=0.0 +! +!RPR5/ALKL=0.0 +! +!RPR5/ALKM=0.0 +! +!RPR5/ALKH=0.0 +! +!RPR5/AROH=0.0 +! +!RPR5/AROL=0.0 +! +!RPR5/AROO=0.0 +! +!RPR5/ARAL=0.0 +! +!RPR5/ARAC=0.0 +! +!RPR5/PAH=0.0 +! +!RPR5/HCHO=0.0 +! +!RPR5/ALD2=0.0 +! +!RPR5/KETL=0.0 +! +!RPR5/KETH=0.0 +! +!RPR5/MEOH=0.0 +! +!RPR5/ETOH=0.0 +! +!RPR5/ALCH=0.0 +! +!RPR5/ISOP=0.0 +! +!RPR5/BIOL=0.0 +! +!RPR5/BIOH=0.0 +! +!RPR5/MTBE=0.0 +! +!RPR5/MVK=0.0 +! +!RPR5/MCR=0.0 +! +!RPR5/MGLY=0.0 +! +!RPR5/GLY=0.0 +! +!RPR5/ORA1=0.0 +! +!RPR5/ORA2=0.0 +! +!RPR5/ACID=0.0 +! +!RPR5/UR28=0.0 +! +!RPR5/UR21=0.0 +! +!RPR5/URG2=0.0 +! +!RPR5/UR26=0.0 +! +!RPR5/RPG2=0.0 +! +!RPR5/RP18=0.0 +! +!RPR5/RPG3=0.0 +! +!RPR5/URG4=0.0 +! +!RPR5/UR8=0.0 +! +!RPR5/UR17=0.0 +! +!RPR5/UR7=0.0 +! +!RPR5/RPR3=0.0 +! +!RPR5/URG6=0.0 +! +!RPR5/UR22=0.0 +! +!RPR5/URG7=0.0 +! +!RPR5/RPR4=0.0 +! +!RPR5/RPR7=0.0 +! +!RPR5/RPG7=0.0 +! +!RPR5/URG8=0.0 +! +!RPR5/UR19=0.0 +! +!RPR5/URG9=0.0 +! +!RPR5/AP7=0.0 +! +!RPR5/URG10=0.0 +! +!RPR5/RPR1=0.0 +! +!RPR5/RPR5=-K303*<OH> + PJAC(:,70,70)=-TPK%K303(:)*PCONC(:,15) +! +!RPR5/RPR8=0.0 +! +!RPR5/RP10=0.0 +! +!RPR5/RP11=0.0 +! +!RPR5/RP16=0.0 +! +!RPR5/RPRL=0.0 +! +!RPR5/APAN=0.0 +! +!RPR5/PAN1=0.0 +! +!RPR5/PAN2=0.0 +! +!RPR5/PAN3=0.0 +! +!RPR5/PAN4=0.0 +! +!RPR5/PAN6=0.0 +! +!RPR5/PAN7=0.0 +! +!RPR5/PAN8=0.0 +! +!RPR5/PN10=0.0 +! +!RPR5/RO2T=0.0 +! +!RPR5/RO21=0.0 +! +!RPR5/RO25=0.0 +! +!RPR5/WC_O3=0.0 +! +!RPR5/WC_H2O2=0.0 +! +!RPR5/WC_NO=0.0 +! +!RPR5/WC_NO2=0.0 +! +!RPR5/WC_NO3=0.0 +! +!RPR5/WC_N2O5=0.0 +! +!RPR5/WC_HONO=0.0 +! +!RPR5/WC_HNO3=0.0 +! +!RPR5/WC_HNO4=0.0 +! +!RPR5/WC_NH3=0.0 +! +!RPR5/WC_OH=0.0 +! +!RPR5/WC_HO2=0.0 +! +!RPR5/WC_CO2=0.0 +! +!RPR5/WC_SO2=0.0 +! +!RPR5/WC_H2SO4=0.0 +! +!RPR5/WC_RO21=0.0 +! +!RPR5/WC_RO25=0.0 +! +!RPR5/WC_MEOH=0.0 +! +!RPR5/WC_ETOH=0.0 +! +!RPR5/WC_ALCH=0.0 +! +!RPR5/WC_HCHO=0.0 +! +!RPR5/WC_ALD2=0.0 +! +!RPR5/WC_GLY=0.0 +! +!RPR5/WC_MGLY=0.0 +! +!RPR5/WC_KETL=0.0 +! +!RPR5/WC_ORA1=0.0 +! +!RPR5/WC_ORA2=0.0 +! +!RPR5/WC_ACID=0.0 +! +!RPR5/WC_RP16=0.0 +! +!RPR5/WC_UR21=0.0 +! +!RPR5/WC_UR28=0.0 +! +!RPR5/WC_ACID2=0.0 +! +!RPR5/WC_ASO3=0.0 +! +!RPR5/WC_ASO4=0.0 +! +!RPR5/WC_ASO5=0.0 +! +!RPR5/WC_AHSO5=0.0 +! +!RPR5/WC_AHMS=0.0 +! +!RPR5/WR_O3=0.0 +! +!RPR5/WR_H2O2=0.0 +! +!RPR5/WR_NO=0.0 +! +!RPR5/WR_NO2=0.0 +! +!RPR5/WR_NO3=0.0 +! +!RPR5/WR_N2O5=0.0 +! +!RPR5/WR_HONO=0.0 +! +!RPR5/WR_HNO3=0.0 +! +!RPR5/WR_HNO4=0.0 +! +!RPR5/WR_NH3=0.0 +! +!RPR5/WR_OH=0.0 +! +!RPR5/WR_HO2=0.0 +! +!RPR5/WR_CO2=0.0 +! +!RPR5/WR_SO2=0.0 +! +!RPR5/WR_H2SO4=0.0 +! +!RPR5/WR_RO21=0.0 +! +!RPR5/WR_RO25=0.0 +! +!RPR5/WR_MEOH=0.0 +! +!RPR5/WR_ETOH=0.0 +! +!RPR5/WR_ALCH=0.0 +! +!RPR5/WR_HCHO=0.0 +! +!RPR5/WR_ALD2=0.0 +! +!RPR5/WR_GLY=0.0 +! +!RPR5/WR_MGLY=0.0 +! +!RPR5/WR_KETL=0.0 +! +!RPR5/WR_ORA1=0.0 +! +!RPR5/WR_ORA2=0.0 +! +!RPR5/WR_ACID=0.0 +! +!RPR5/WR_RP16=0.0 +! +!RPR5/WR_UR21=0.0 +! +!RPR5/WR_UR28=0.0 +! +!RPR5/WR_ACID2=0.0 +! +!RPR5/WR_ASO3=0.0 +! +!RPR5/WR_ASO4=0.0 +! +!RPR5/WR_ASO5=0.0 +! +!RPR5/WR_AHSO5=0.0 +! +!RPR5/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ13 +! +SUBROUTINE SUBJ14 +! +!Indices 71 a 75 +! +! +!RPR8/NO=+K216*<RO240> + PJAC(:,71,1)=+TPK%K216(:)*TPK%RO240(:) +! +!RPR8/NO2=0.0 +! +!RPR8/O3=0.0 +! +!RPR8/HONO=0.0 +! +!RPR8/HNO3=0.0 +! +!RPR8/HNO4=0.0 +! +!RPR8/N2O5=0.0 +! +!RPR8/NO3=-K327*<RPR8> + PJAC(:,71,8)=-TPK%K327(:)*PCONC(:,71) +! +!RPR8/NH3=0.0 +! +!RPR8/HO2=+K218*<RO240> + PJAC(:,71,10)=+TPK%K218(:)*TPK%RO240(:) +! +!RPR8/CO=0.0 +! +!RPR8/H2O2=0.0 +! +!RPR8/SO2=0.0 +! +!RPR8/H2SO4=0.0 +! +!RPR8/OH=-K324*<RPR8> + PJAC(:,71,15)=-TPK%K324(:)*PCONC(:,71) +! +!RPR8/ETHE=0.0 +! +!RPR8/OLEL=0.0 +! +!RPR8/OLEH=0.0 +! +!RPR8/ALKL=0.0 +! +!RPR8/ALKM=0.0 +! +!RPR8/ALKH=0.0 +! +!RPR8/AROH=0.0 +! +!RPR8/AROL=0.0 +! +!RPR8/AROO=0.0 +! +!RPR8/ARAL=0.0 +! +!RPR8/ARAC=0.0 +! +!RPR8/PAH=0.0 +! +!RPR8/HCHO=0.0 +! +!RPR8/ALD2=0.0 +! +!RPR8/KETL=0.0 +! +!RPR8/KETH=0.0 +! +!RPR8/MEOH=0.0 +! +!RPR8/ETOH=0.0 +! +!RPR8/ALCH=0.0 +! +!RPR8/ISOP=0.0 +! +!RPR8/BIOL=0.0 +! +!RPR8/BIOH=0.0 +! +!RPR8/MTBE=0.0 +! +!RPR8/MVK=0.0 +! +!RPR8/MCR=0.0 +! +!RPR8/MGLY=0.0 +! +!RPR8/GLY=0.0 +! +!RPR8/ORA1=0.0 +! +!RPR8/ORA2=0.0 +! +!RPR8/ACID=0.0 +! +!RPR8/UR28=0.0 +! +!RPR8/UR21=0.0 +! +!RPR8/URG2=0.0 +! +!RPR8/UR26=0.0 +! +!RPR8/RPG2=0.0 +! +!RPR8/RP18=0.0 +! +!RPR8/RPG3=0.0 +! +!RPR8/URG4=0.0 +! +!RPR8/UR8=0.0 +! +!RPR8/UR17=0.0 +! +!RPR8/UR7=0.0 +! +!RPR8/RPR3=0.0 +! +!RPR8/URG6=0.0 +! +!RPR8/UR22=0.0 +! +!RPR8/URG7=0.0 +! +!RPR8/RPR4=0.0 +! +!RPR8/RPR7=0.0 +! +!RPR8/RPG7=0.0 +! +!RPR8/URG8=0.0 +! +!RPR8/UR19=0.0 +! +!RPR8/URG9=0.0 +! +!RPR8/AP7=0.0 +! +!RPR8/URG10=0.0 +! +!RPR8/RPR1=0.0 +! +!RPR8/RPR5=0.0 +! +!RPR8/RPR8=-K324*<OH>-K327*<NO3>-K329-K330 + PJAC(:,71,71)=-TPK%K324(:)*PCONC(:,15)-TPK%K327(:)*PCONC(:,8)-TPK%K329(:)-TPK%& +&K330(:) +! +!RPR8/RP10=0.0 +! +!RPR8/RP11=0.0 +! +!RPR8/RP16=0.0 +! +!RPR8/RPRL=0.0 +! +!RPR8/APAN=0.0 +! +!RPR8/PAN1=0.0 +! +!RPR8/PAN2=0.0 +! +!RPR8/PAN3=0.0 +! +!RPR8/PAN4=0.0 +! +!RPR8/PAN6=0.0 +! +!RPR8/PAN7=0.0 +! +!RPR8/PAN8=0.0 +! +!RPR8/PN10=0.0 +! +!RPR8/RO2T=+K217*<RO240> + PJAC(:,71,85)=+TPK%K217(:)*TPK%RO240(:) +! +!RPR8/RO21=0.0 +! +!RPR8/RO25=0.0 +! +!RPR8/WC_O3=0.0 +! +!RPR8/WC_H2O2=0.0 +! +!RPR8/WC_NO=0.0 +! +!RPR8/WC_NO2=0.0 +! +!RPR8/WC_NO3=0.0 +! +!RPR8/WC_N2O5=0.0 +! +!RPR8/WC_HONO=0.0 +! +!RPR8/WC_HNO3=0.0 +! +!RPR8/WC_HNO4=0.0 +! +!RPR8/WC_NH3=0.0 +! +!RPR8/WC_OH=0.0 +! +!RPR8/WC_HO2=0.0 +! +!RPR8/WC_CO2=0.0 +! +!RPR8/WC_SO2=0.0 +! +!RPR8/WC_H2SO4=0.0 +! +!RPR8/WC_RO21=0.0 +! +!RPR8/WC_RO25=0.0 +! +!RPR8/WC_MEOH=0.0 +! +!RPR8/WC_ETOH=0.0 +! +!RPR8/WC_ALCH=0.0 +! +!RPR8/WC_HCHO=0.0 +! +!RPR8/WC_ALD2=0.0 +! +!RPR8/WC_GLY=0.0 +! +!RPR8/WC_MGLY=0.0 +! +!RPR8/WC_KETL=0.0 +! +!RPR8/WC_ORA1=0.0 +! +!RPR8/WC_ORA2=0.0 +! +!RPR8/WC_ACID=0.0 +! +!RPR8/WC_RP16=0.0 +! +!RPR8/WC_UR21=0.0 +! +!RPR8/WC_UR28=0.0 +! +!RPR8/WC_ACID2=0.0 +! +!RPR8/WC_ASO3=0.0 +! +!RPR8/WC_ASO4=0.0 +! +!RPR8/WC_ASO5=0.0 +! +!RPR8/WC_AHSO5=0.0 +! +!RPR8/WC_AHMS=0.0 +! +!RPR8/WR_O3=0.0 +! +!RPR8/WR_H2O2=0.0 +! +!RPR8/WR_NO=0.0 +! +!RPR8/WR_NO2=0.0 +! +!RPR8/WR_NO3=0.0 +! +!RPR8/WR_N2O5=0.0 +! +!RPR8/WR_HONO=0.0 +! +!RPR8/WR_HNO3=0.0 +! +!RPR8/WR_HNO4=0.0 +! +!RPR8/WR_NH3=0.0 +! +!RPR8/WR_OH=0.0 +! +!RPR8/WR_HO2=0.0 +! +!RPR8/WR_CO2=0.0 +! +!RPR8/WR_SO2=0.0 +! +!RPR8/WR_H2SO4=0.0 +! +!RPR8/WR_RO21=0.0 +! +!RPR8/WR_RO25=0.0 +! +!RPR8/WR_MEOH=0.0 +! +!RPR8/WR_ETOH=0.0 +! +!RPR8/WR_ALCH=0.0 +! +!RPR8/WR_HCHO=0.0 +! +!RPR8/WR_ALD2=0.0 +! +!RPR8/WR_GLY=0.0 +! +!RPR8/WR_MGLY=0.0 +! +!RPR8/WR_KETL=0.0 +! +!RPR8/WR_ORA1=0.0 +! +!RPR8/WR_ORA2=0.0 +! +!RPR8/WR_ACID=0.0 +! +!RPR8/WR_RP16=0.0 +! +!RPR8/WR_UR21=0.0 +! +!RPR8/WR_UR28=0.0 +! +!RPR8/WR_ACID2=0.0 +! +!RPR8/WR_ASO3=0.0 +! +!RPR8/WR_ASO4=0.0 +! +!RPR8/WR_ASO5=0.0 +! +!RPR8/WR_AHSO5=0.0 +! +!RPR8/WR_AHMS=0.0 +! +!RP10/NO=+K234*<RO242>+K241*<RO243>+K248*<RO244>+K255*<RO245>+K262*<RO246> + PJAC(:,72,1)=+TPK%K234(:)*TPK%RO242(:)+TPK%K241(:)*TPK%RO243(:)+TPK%K248(:)*TP& +&K%RO244(:)+TPK%K255(:)*TPK%RO245(:)+TPK%K262(:)*TPK%RO246(:) +! +!RP10/NO2=0.0 +! +!RP10/O3=0.0 +! +!RP10/HONO=0.0 +! +!RP10/HNO3=0.0 +! +!RP10/HNO4=0.0 +! +!RP10/N2O5=0.0 +! +!RP10/NO3=0.0 +! +!RP10/NH3=0.0 +! +!RP10/HO2=+K236*<RO242>+K243*<RO243>+K250*<RO244>+K257*<RO245>+K264*<RO246> + PJAC(:,72,10)=+TPK%K236(:)*TPK%RO242(:)+TPK%K243(:)*TPK%RO243(:)+TPK%K250(:)*T& +&PK%RO244(:)+TPK%K257(:)*TPK%RO245(:)+TPK%K264(:)*TPK%RO246(:) +! +!RP10/CO=0.0 +! +!RP10/H2O2=0.0 +! +!RP10/SO2=0.0 +! +!RP10/H2SO4=0.0 +! +!RP10/OH=-K325*<RP10> + PJAC(:,72,15)=-TPK%K325(:)*PCONC(:,72) +! +!RP10/ETHE=0.0 +! +!RP10/OLEL=0.0 +! +!RP10/OLEH=0.0 +! +!RP10/ALKL=0.0 +! +!RP10/ALKM=0.0 +! +!RP10/ALKH=0.0 +! +!RP10/AROH=0.0 +! +!RP10/AROL=0.0 +! +!RP10/AROO=0.0 +! +!RP10/ARAL=0.0 +! +!RP10/ARAC=0.0 +! +!RP10/PAH=0.0 +! +!RP10/HCHO=0.0 +! +!RP10/ALD2=0.0 +! +!RP10/KETL=0.0 +! +!RP10/KETH=0.0 +! +!RP10/MEOH=0.0 +! +!RP10/ETOH=0.0 +! +!RP10/ALCH=0.0 +! +!RP10/ISOP=0.0 +! +!RP10/BIOL=0.0 +! +!RP10/BIOH=0.0 +! +!RP10/MTBE=0.0 +! +!RP10/MVK=0.0 +! +!RP10/MCR=0.0 +! +!RP10/MGLY=0.0 +! +!RP10/GLY=0.0 +! +!RP10/ORA1=0.0 +! +!RP10/ORA2=0.0 +! +!RP10/ACID=0.0 +! +!RP10/UR28=0.0 +! +!RP10/UR21=0.0 +! +!RP10/URG2=0.0 +! +!RP10/UR26=0.0 +! +!RP10/RPG2=0.0 +! +!RP10/RP18=0.0 +! +!RP10/RPG3=0.0 +! +!RP10/URG4=0.0 +! +!RP10/UR8=0.0 +! +!RP10/UR17=0.0 +! +!RP10/UR7=0.0 +! +!RP10/RPR3=0.0 +! +!RP10/URG6=0.0 +! +!RP10/UR22=0.0 +! +!RP10/URG7=0.0 +! +!RP10/RPR4=0.0 +! +!RP10/RPR7=0.0 +! +!RP10/RPG7=0.0 +! +!RP10/URG8=0.0 +! +!RP10/UR19=0.0 +! +!RP10/URG9=0.0 +! +!RP10/AP7=0.0 +! +!RP10/URG10=0.0 +! +!RP10/RPR1=0.0 +! +!RP10/RPR5=0.0 +! +!RP10/RPR8=0.0 +! +!RP10/RP10=-K325*<OH>-K328 + PJAC(:,72,72)=-TPK%K325(:)*PCONC(:,15)-TPK%K328(:) +! +!RP10/RP11=0.0 +! +!RP10/RP16=0.0 +! +!RP10/RPRL=0.0 +! +!RP10/APAN=0.0 +! +!RP10/PAN1=0.0 +! +!RP10/PAN2=0.0 +! +!RP10/PAN3=0.0 +! +!RP10/PAN4=0.0 +! +!RP10/PAN6=0.0 +! +!RP10/PAN7=0.0 +! +!RP10/PAN8=0.0 +! +!RP10/PN10=0.0 +! +!RP10/RO2T=+K235*<RO242>+K242*<RO243>+K249*<RO244>+K256*<RO245>+K263*<RO246> + PJAC(:,72,85)=+TPK%K235(:)*TPK%RO242(:)+TPK%K242(:)*TPK%RO243(:)+TPK%K249(:)*T& +&PK%RO244(:)+TPK%K256(:)*TPK%RO245(:)+TPK%K263(:)*TPK%RO246(:) +! +!RP10/RO21=0.0 +! +!RP10/RO25=0.0 +! +!RP10/WC_O3=0.0 +! +!RP10/WC_H2O2=0.0 +! +!RP10/WC_NO=0.0 +! +!RP10/WC_NO2=0.0 +! +!RP10/WC_NO3=0.0 +! +!RP10/WC_N2O5=0.0 +! +!RP10/WC_HONO=0.0 +! +!RP10/WC_HNO3=0.0 +! +!RP10/WC_HNO4=0.0 +! +!RP10/WC_NH3=0.0 +! +!RP10/WC_OH=0.0 +! +!RP10/WC_HO2=0.0 +! +!RP10/WC_CO2=0.0 +! +!RP10/WC_SO2=0.0 +! +!RP10/WC_H2SO4=0.0 +! +!RP10/WC_RO21=0.0 +! +!RP10/WC_RO25=0.0 +! +!RP10/WC_MEOH=0.0 +! +!RP10/WC_ETOH=0.0 +! +!RP10/WC_ALCH=0.0 +! +!RP10/WC_HCHO=0.0 +! +!RP10/WC_ALD2=0.0 +! +!RP10/WC_GLY=0.0 +! +!RP10/WC_MGLY=0.0 +! +!RP10/WC_KETL=0.0 +! +!RP10/WC_ORA1=0.0 +! +!RP10/WC_ORA2=0.0 +! +!RP10/WC_ACID=0.0 +! +!RP10/WC_RP16=0.0 +! +!RP10/WC_UR21=0.0 +! +!RP10/WC_UR28=0.0 +! +!RP10/WC_ACID2=0.0 +! +!RP10/WC_ASO3=0.0 +! +!RP10/WC_ASO4=0.0 +! +!RP10/WC_ASO5=0.0 +! +!RP10/WC_AHSO5=0.0 +! +!RP10/WC_AHMS=0.0 +! +!RP10/WR_O3=0.0 +! +!RP10/WR_H2O2=0.0 +! +!RP10/WR_NO=0.0 +! +!RP10/WR_NO2=0.0 +! +!RP10/WR_NO3=0.0 +! +!RP10/WR_N2O5=0.0 +! +!RP10/WR_HONO=0.0 +! +!RP10/WR_HNO3=0.0 +! +!RP10/WR_HNO4=0.0 +! +!RP10/WR_NH3=0.0 +! +!RP10/WR_OH=0.0 +! +!RP10/WR_HO2=0.0 +! +!RP10/WR_CO2=0.0 +! +!RP10/WR_SO2=0.0 +! +!RP10/WR_H2SO4=0.0 +! +!RP10/WR_RO21=0.0 +! +!RP10/WR_RO25=0.0 +! +!RP10/WR_MEOH=0.0 +! +!RP10/WR_ETOH=0.0 +! +!RP10/WR_ALCH=0.0 +! +!RP10/WR_HCHO=0.0 +! +!RP10/WR_ALD2=0.0 +! +!RP10/WR_GLY=0.0 +! +!RP10/WR_MGLY=0.0 +! +!RP10/WR_KETL=0.0 +! +!RP10/WR_ORA1=0.0 +! +!RP10/WR_ORA2=0.0 +! +!RP10/WR_ACID=0.0 +! +!RP10/WR_RP16=0.0 +! +!RP10/WR_UR21=0.0 +! +!RP10/WR_UR28=0.0 +! +!RP10/WR_ACID2=0.0 +! +!RP10/WR_ASO3=0.0 +! +!RP10/WR_ASO4=0.0 +! +!RP10/WR_ASO5=0.0 +! +!RP10/WR_AHSO5=0.0 +! +!RP10/WR_AHMS=0.0 +! +!RP11/NO=+0.3*K238*<RO234>+0.5*K245*<RO235> + PJAC(:,73,1)=+0.3*TPK%K238(:)*TPK%RO234(:)+0.5*TPK%K245(:)*TPK%RO235(:) +! +!RP11/NO2=0.0 +! +!RP11/O3=0.0 +! +!RP11/HONO=0.0 +! +!RP11/HNO3=0.0 +! +!RP11/HNO4=0.0 +! +!RP11/N2O5=0.0 +! +!RP11/NO3=0.0 +! +!RP11/NH3=0.0 +! +!RP11/HO2=+0.3*K240*<RO234>+K247*<RO235> + PJAC(:,73,10)=+0.3*TPK%K240(:)*TPK%RO234(:)+TPK%K247(:)*TPK%RO235(:) +! +!RP11/CO=0.0 +! +!RP11/H2O2=0.0 +! +!RP11/SO2=0.0 +! +!RP11/H2SO4=0.0 +! +!RP11/OH=-K326*<RP11> + PJAC(:,73,15)=-TPK%K326(:)*PCONC(:,73) +! +!RP11/ETHE=0.0 +! +!RP11/OLEL=0.0 +! +!RP11/OLEH=0.0 +! +!RP11/ALKL=0.0 +! +!RP11/ALKM=0.0 +! +!RP11/ALKH=0.0 +! +!RP11/AROH=0.0 +! +!RP11/AROL=0.0 +! +!RP11/AROO=0.0 +! +!RP11/ARAL=0.0 +! +!RP11/ARAC=0.0 +! +!RP11/PAH=0.0 +! +!RP11/HCHO=0.0 +! +!RP11/ALD2=0.0 +! +!RP11/KETL=0.0 +! +!RP11/KETH=0.0 +! +!RP11/MEOH=0.0 +! +!RP11/ETOH=0.0 +! +!RP11/ALCH=0.0 +! +!RP11/ISOP=0.0 +! +!RP11/BIOL=0.0 +! +!RP11/BIOH=0.0 +! +!RP11/MTBE=0.0 +! +!RP11/MVK=0.0 +! +!RP11/MCR=0.0 +! +!RP11/MGLY=0.0 +! +!RP11/GLY=0.0 +! +!RP11/ORA1=0.0 +! +!RP11/ORA2=0.0 +! +!RP11/ACID=0.0 +! +!RP11/UR28=0.0 +! +!RP11/UR21=0.0 +! +!RP11/URG2=0.0 +! +!RP11/UR26=0.0 +! +!RP11/RPG2=0.0 +! +!RP11/RP18=0.0 +! +!RP11/RPG3=0.0 +! +!RP11/URG4=0.0 +! +!RP11/UR8=0.0 +! +!RP11/UR17=0.0 +! +!RP11/UR7=0.0 +! +!RP11/RPR3=0.0 +! +!RP11/URG6=0.0 +! +!RP11/UR22=0.0 +! +!RP11/URG7=0.0 +! +!RP11/RPR4=0.0 +! +!RP11/RPR7=0.0 +! +!RP11/RPG7=0.0 +! +!RP11/URG8=0.0 +! +!RP11/UR19=0.0 +! +!RP11/URG9=0.0 +! +!RP11/AP7=0.0 +! +!RP11/URG10=0.0 +! +!RP11/RPR1=0.0 +! +!RP11/RPR5=0.0 +! +!RP11/RPR8=0.0 +! +!RP11/RP10=0.0 +! +!RP11/RP11=-K326*<OH> + PJAC(:,73,73)=-TPK%K326(:)*PCONC(:,15) +! +!RP11/RP16=0.0 +! +!RP11/RPRL=0.0 +! +!RP11/APAN=0.0 +! +!RP11/PAN1=0.0 +! +!RP11/PAN2=0.0 +! +!RP11/PAN3=0.0 +! +!RP11/PAN4=0.0 +! +!RP11/PAN6=0.0 +! +!RP11/PAN7=0.0 +! +!RP11/PAN8=0.0 +! +!RP11/PN10=0.0 +! +!RP11/RO2T=+K239*<RO234>+K246*<RO235> + PJAC(:,73,85)=+TPK%K239(:)*TPK%RO234(:)+TPK%K246(:)*TPK%RO235(:) +! +!RP11/RO21=0.0 +! +!RP11/RO25=0.0 +! +!RP11/WC_O3=0.0 +! +!RP11/WC_H2O2=0.0 +! +!RP11/WC_NO=0.0 +! +!RP11/WC_NO2=0.0 +! +!RP11/WC_NO3=0.0 +! +!RP11/WC_N2O5=0.0 +! +!RP11/WC_HONO=0.0 +! +!RP11/WC_HNO3=0.0 +! +!RP11/WC_HNO4=0.0 +! +!RP11/WC_NH3=0.0 +! +!RP11/WC_OH=0.0 +! +!RP11/WC_HO2=0.0 +! +!RP11/WC_CO2=0.0 +! +!RP11/WC_SO2=0.0 +! +!RP11/WC_H2SO4=0.0 +! +!RP11/WC_RO21=0.0 +! +!RP11/WC_RO25=0.0 +! +!RP11/WC_MEOH=0.0 +! +!RP11/WC_ETOH=0.0 +! +!RP11/WC_ALCH=0.0 +! +!RP11/WC_HCHO=0.0 +! +!RP11/WC_ALD2=0.0 +! +!RP11/WC_GLY=0.0 +! +!RP11/WC_MGLY=0.0 +! +!RP11/WC_KETL=0.0 +! +!RP11/WC_ORA1=0.0 +! +!RP11/WC_ORA2=0.0 +! +!RP11/WC_ACID=0.0 +! +!RP11/WC_RP16=0.0 +! +!RP11/WC_UR21=0.0 +! +!RP11/WC_UR28=0.0 +! +!RP11/WC_ACID2=0.0 +! +!RP11/WC_ASO3=0.0 +! +!RP11/WC_ASO4=0.0 +! +!RP11/WC_ASO5=0.0 +! +!RP11/WC_AHSO5=0.0 +! +!RP11/WC_AHMS=0.0 +! +!RP11/WR_O3=0.0 +! +!RP11/WR_H2O2=0.0 +! +!RP11/WR_NO=0.0 +! +!RP11/WR_NO2=0.0 +! +!RP11/WR_NO3=0.0 +! +!RP11/WR_N2O5=0.0 +! +!RP11/WR_HONO=0.0 +! +!RP11/WR_HNO3=0.0 +! +!RP11/WR_HNO4=0.0 +! +!RP11/WR_NH3=0.0 +! +!RP11/WR_OH=0.0 +! +!RP11/WR_HO2=0.0 +! +!RP11/WR_CO2=0.0 +! +!RP11/WR_SO2=0.0 +! +!RP11/WR_H2SO4=0.0 +! +!RP11/WR_RO21=0.0 +! +!RP11/WR_RO25=0.0 +! +!RP11/WR_MEOH=0.0 +! +!RP11/WR_ETOH=0.0 +! +!RP11/WR_ALCH=0.0 +! +!RP11/WR_HCHO=0.0 +! +!RP11/WR_ALD2=0.0 +! +!RP11/WR_GLY=0.0 +! +!RP11/WR_MGLY=0.0 +! +!RP11/WR_KETL=0.0 +! +!RP11/WR_ORA1=0.0 +! +!RP11/WR_ORA2=0.0 +! +!RP11/WR_ACID=0.0 +! +!RP11/WR_RP16=0.0 +! +!RP11/WR_UR21=0.0 +! +!RP11/WR_UR28=0.0 +! +!RP11/WR_ACID2=0.0 +! +!RP11/WR_ASO3=0.0 +! +!RP11/WR_ASO4=0.0 +! +!RP11/WR_ASO5=0.0 +! +!RP11/WR_AHSO5=0.0 +! +!RP11/WR_AHMS=0.0 +! +!RP16/NO=0.0 +! +!RP16/NO2=0.0 +! +!RP16/O3=0.0 +! +!RP16/HONO=0.0 +! +!RP16/HNO3=0.0 +! +!RP16/HNO4=0.0 +! +!RP16/N2O5=0.0 +! +!RP16/NO3=-K338*<RP16> + PJAC(:,74,8)=-TPK%K338(:)*PCONC(:,74) +! +!RP16/NH3=0.0 +! +!RP16/HO2=+K301*<RO254> + PJAC(:,74,10)=+TPK%K301(:)*TPK%RO254(:) +! +!RP16/CO=0.0 +! +!RP16/H2O2=0.0 +! +!RP16/SO2=0.0 +! +!RP16/H2SO4=0.0 +! +!RP16/OH=-K305*<RP16> + PJAC(:,74,15)=-TPK%K305(:)*PCONC(:,74) +! +!RP16/ETHE=0.0 +! +!RP16/OLEL=0.0 +! +!RP16/OLEH=0.0 +! +!RP16/ALKL=0.0 +! +!RP16/ALKM=0.0 +! +!RP16/ALKH=0.0 +! +!RP16/AROH=0.0 +! +!RP16/AROL=0.0 +! +!RP16/AROO=0.0 +! +!RP16/ARAL=0.0 +! +!RP16/ARAC=0.0 +! +!RP16/PAH=0.0 +! +!RP16/HCHO=0.0 +! +!RP16/ALD2=0.0 +! +!RP16/KETL=0.0 +! +!RP16/KETH=0.0 +! +!RP16/MEOH=0.0 +! +!RP16/ETOH=0.0 +! +!RP16/ALCH=0.0 +! +!RP16/ISOP=0.0 +! +!RP16/BIOL=0.0 +! +!RP16/BIOH=0.0 +! +!RP16/MTBE=0.0 +! +!RP16/MVK=0.0 +! +!RP16/MCR=0.0 +! +!RP16/MGLY=0.0 +! +!RP16/GLY=0.0 +! +!RP16/ORA1=0.0 +! +!RP16/ORA2=0.0 +! +!RP16/ACID=0.0 +! +!RP16/UR28=0.0 +! +!RP16/UR21=0.0 +! +!RP16/URG2=0.0 +! +!RP16/UR26=0.0 +! +!RP16/RPG2=0.0 +! +!RP16/RP18=0.0 +! +!RP16/RPG3=0.0 +! +!RP16/URG4=0.0 +! +!RP16/UR8=0.0 +! +!RP16/UR17=0.0 +! +!RP16/UR7=0.0 +! +!RP16/RPR3=0.0 +! +!RP16/URG6=0.0 +! +!RP16/UR22=0.0 +! +!RP16/URG7=0.0 +! +!RP16/RPR4=0.0 +! +!RP16/RPR7=0.0 +! +!RP16/RPG7=0.0 +! +!RP16/URG8=0.0 +! +!RP16/UR19=0.0 +! +!RP16/URG9=0.0 +! +!RP16/AP7=0.0 +! +!RP16/URG10=0.0 +! +!RP16/RPR1=0.0 +! +!RP16/RPR5=0.0 +! +!RP16/RPR8=0.0 +! +!RP16/RP10=0.0 +! +!RP16/RP11=0.0 +! +!RP16/RP16=-K305*<OH>-K338*<NO3>-K339-KTC29-KTR29 + PJAC(:,74,74)=-TPK%K305(:)*PCONC(:,15)-TPK%K338(:)*PCONC(:,8)-TPK%K339(:)-TPK%& +&KTC29(:)-TPK%KTR29(:) +! +!RP16/RPRL=0.0 +! +!RP16/APAN=0.0 +! +!RP16/PAN1=0.0 +! +!RP16/PAN2=0.0 +! +!RP16/PAN3=0.0 +! +!RP16/PAN4=0.0 +! +!RP16/PAN6=0.0 +! +!RP16/PAN7=0.0 +! +!RP16/PAN8=0.0 +! +!RP16/PN10=0.0 +! +!RP16/RO2T=0.0 +! +!RP16/RO21=0.0 +! +!RP16/RO25=0.0 +! +!RP16/WC_O3=0.0 +! +!RP16/WC_H2O2=0.0 +! +!RP16/WC_NO=0.0 +! +!RP16/WC_NO2=0.0 +! +!RP16/WC_NO3=0.0 +! +!RP16/WC_N2O5=0.0 +! +!RP16/WC_HONO=0.0 +! +!RP16/WC_HNO3=0.0 +! +!RP16/WC_HNO4=0.0 +! +!RP16/WC_NH3=0.0 +! +!RP16/WC_OH=0.0 +! +!RP16/WC_HO2=0.0 +! +!RP16/WC_CO2=0.0 +! +!RP16/WC_SO2=0.0 +! +!RP16/WC_H2SO4=0.0 +! +!RP16/WC_RO21=0.0 +! +!RP16/WC_RO25=0.0 +! +!RP16/WC_MEOH=0.0 +! +!RP16/WC_ETOH=0.0 +! +!RP16/WC_ALCH=0.0 +! +!RP16/WC_HCHO=0.0 +! +!RP16/WC_ALD2=0.0 +! +!RP16/WC_GLY=0.0 +! +!RP16/WC_MGLY=0.0 +! +!RP16/WC_KETL=0.0 +! +!RP16/WC_ORA1=0.0 +! +!RP16/WC_ORA2=0.0 +! +!RP16/WC_ACID=0.0 +! +!RP16/WC_RP16=+KTC60 + PJAC(:,74,116)=+TPK%KTC60(:) +! +!RP16/WC_UR21=0.0 +! +!RP16/WC_UR28=0.0 +! +!RP16/WC_ACID2=0.0 +! +!RP16/WC_ASO3=0.0 +! +!RP16/WC_ASO4=0.0 +! +!RP16/WC_ASO5=0.0 +! +!RP16/WC_AHSO5=0.0 +! +!RP16/WC_AHMS=0.0 +! +!RP16/WR_O3=0.0 +! +!RP16/WR_H2O2=0.0 +! +!RP16/WR_NO=0.0 +! +!RP16/WR_NO2=0.0 +! +!RP16/WR_NO3=0.0 +! +!RP16/WR_N2O5=0.0 +! +!RP16/WR_HONO=0.0 +! +!RP16/WR_HNO3=0.0 +! +!RP16/WR_HNO4=0.0 +! +!RP16/WR_NH3=0.0 +! +!RP16/WR_OH=0.0 +! +!RP16/WR_HO2=0.0 +! +!RP16/WR_CO2=0.0 +! +!RP16/WR_SO2=0.0 +! +!RP16/WR_H2SO4=0.0 +! +!RP16/WR_RO21=0.0 +! +!RP16/WR_RO25=0.0 +! +!RP16/WR_MEOH=0.0 +! +!RP16/WR_ETOH=0.0 +! +!RP16/WR_ALCH=0.0 +! +!RP16/WR_HCHO=0.0 +! +!RP16/WR_ALD2=0.0 +! +!RP16/WR_GLY=0.0 +! +!RP16/WR_MGLY=0.0 +! +!RP16/WR_KETL=0.0 +! +!RP16/WR_ORA1=0.0 +! +!RP16/WR_ORA2=0.0 +! +!RP16/WR_ACID=0.0 +! +!RP16/WR_RP16=+KTR60 + PJAC(:,74,153)=+TPK%KTR60(:) +! +!RP16/WR_UR21=0.0 +! +!RP16/WR_UR28=0.0 +! +!RP16/WR_ACID2=0.0 +! +!RP16/WR_ASO3=0.0 +! +!RP16/WR_ASO4=0.0 +! +!RP16/WR_ASO5=0.0 +! +!RP16/WR_AHSO5=0.0 +! +!RP16/WR_AHMS=0.0 +! +!RPRL/NO=+TPK%CFA2*K177*<RO217>+TPK%CFA7*K192*<RO222>+1.0023998*K269*<RO247> + PJAC(:,75,1)=+TPK%CFA2*TPK%K177(:)*TPK%RO217(:)+TPK%CFA7*TPK%K192(:)*TPK%RO222& +&(:)+1.0023998*TPK%K269(:)*TPK%RO247(:) +! +!RPRL/NO2=0.0 +! +!RPRL/O3=0.0 +! +!RPRL/HONO=0.0 +! +!RPRL/HNO3=0.0 +! +!RPRL/HNO4=0.0 +! +!RPRL/N2O5=0.0 +! +!RPRL/NO3=0.0 +! +!RPRL/NH3=0.0 +! +!RPRL/HO2=+0.9983609*K179*<RO217>+0.9983609*K194*<RO222>+1.0023998*K271*<RO247> + PJAC(:,75,10)=+0.9983609*TPK%K179(:)*TPK%RO217(:)+0.9983609*TPK%K194(:)*TPK%RO& +&222(:)+1.0023998*TPK%K271(:)*TPK%RO247(:) +! +!RPRL/CO=0.0 +! +!RPRL/H2O2=0.0 +! +!RPRL/SO2=0.0 +! +!RPRL/H2SO4=0.0 +! +!RPRL/OH=+0.9983609*K082*<ARAL>-K306*<RPRL> + PJAC(:,75,15)=+0.9983609*TPK%K082(:)*PCONC(:,25)-TPK%K306(:)*PCONC(:,75) +! +!RPRL/ETHE=0.0 +! +!RPRL/OLEL=0.0 +! +!RPRL/OLEH=0.0 +! +!RPRL/ALKL=0.0 +! +!RPRL/ALKM=0.0 +! +!RPRL/ALKH=0.0 +! +!RPRL/AROH=0.0 +! +!RPRL/AROL=0.0 +! +!RPRL/AROO=0.0 +! +!RPRL/ARAL=+0.9983609*K082*<OH> + PJAC(:,75,25)=+0.9983609*TPK%K082(:)*PCONC(:,15) +! +!RPRL/ARAC=0.0 +! +!RPRL/PAH=0.0 +! +!RPRL/HCHO=0.0 +! +!RPRL/ALD2=0.0 +! +!RPRL/KETL=0.0 +! +!RPRL/KETH=0.0 +! +!RPRL/MEOH=0.0 +! +!RPRL/ETOH=0.0 +! +!RPRL/ALCH=0.0 +! +!RPRL/ISOP=0.0 +! +!RPRL/BIOL=0.0 +! +!RPRL/BIOH=0.0 +! +!RPRL/MTBE=0.0 +! +!RPRL/MVK=0.0 +! +!RPRL/MCR=0.0 +! +!RPRL/MGLY=0.0 +! +!RPRL/GLY=0.0 +! +!RPRL/ORA1=0.0 +! +!RPRL/ORA2=0.0 +! +!RPRL/ACID=0.0 +! +!RPRL/UR28=0.0 +! +!RPRL/UR21=0.0 +! +!RPRL/URG2=0.0 +! +!RPRL/UR26=0.0 +! +!RPRL/RPG2=0.0 +! +!RPRL/RP18=0.0 +! +!RPRL/RPG3=0.0 +! +!RPRL/URG4=0.0 +! +!RPRL/UR8=0.0 +! +!RPRL/UR17=0.0 +! +!RPRL/UR7=0.0 +! +!RPRL/RPR3=0.0 +! +!RPRL/URG6=0.0 +! +!RPRL/UR22=0.0 +! +!RPRL/URG7=0.0 +! +!RPRL/RPR4=0.0 +! +!RPRL/RPR7=0.0 +! +!RPRL/RPG7=0.0 +! +!RPRL/URG8=0.0 +! +!RPRL/UR19=0.0 +! +!RPRL/URG9=0.0 +! +!RPRL/AP7=0.0 +! +!RPRL/URG10=0.0 +! +!RPRL/RPR1=0.0 +! +!RPRL/RPR5=0.0 +! +!RPRL/RPR8=0.0 +! +!RPRL/RP10=0.0 +! +!RPRL/RP11=0.0 +! +!RPRL/RP16=0.0 +! +!RPRL/RPRL=-K306*<OH> + PJAC(:,75,75)=-TPK%K306(:)*PCONC(:,15) +! +!RPRL/APAN=0.0 +! +!RPRL/PAN1=0.0 +! +!RPRL/PAN2=0.0 +! +!RPRL/PAN3=0.0 +! +!RPRL/PAN4=0.0 +! +!RPRL/PAN6=0.0 +! +!RPRL/PAN7=0.0 +! +!RPRL/PAN8=0.0 +! +!RPRL/PN10=0.0 +! +!RPRL/RO2T=+0.9983609*K178*<RO217>+0.9983609*K193*<RO222>+1.0023998*K270*<RO247 +!> + PJAC(:,75,85)=+0.9983609*TPK%K178(:)*TPK%RO217(:)+0.9983609*TPK%K193(:)*TPK%RO& +&222(:)+1.0023998*TPK%K270(:)*TPK%RO247(:) +! +!RPRL/RO21=0.0 +! +!RPRL/RO25=0.0 +! +!RPRL/WC_O3=0.0 +! +!RPRL/WC_H2O2=0.0 +! +!RPRL/WC_NO=0.0 +! +!RPRL/WC_NO2=0.0 +! +!RPRL/WC_NO3=0.0 +! +!RPRL/WC_N2O5=0.0 +! +!RPRL/WC_HONO=0.0 +! +!RPRL/WC_HNO3=0.0 +! +!RPRL/WC_HNO4=0.0 +! +!RPRL/WC_NH3=0.0 +! +!RPRL/WC_OH=0.0 +! +!RPRL/WC_HO2=0.0 +! +!RPRL/WC_CO2=0.0 +! +!RPRL/WC_SO2=0.0 +! +!RPRL/WC_H2SO4=0.0 +! +!RPRL/WC_RO21=0.0 +! +!RPRL/WC_RO25=0.0 +! +!RPRL/WC_MEOH=0.0 +! +!RPRL/WC_ETOH=0.0 +! +!RPRL/WC_ALCH=0.0 +! +!RPRL/WC_HCHO=0.0 +! +!RPRL/WC_ALD2=0.0 +! +!RPRL/WC_GLY=0.0 +! +!RPRL/WC_MGLY=0.0 +! +!RPRL/WC_KETL=0.0 +! +!RPRL/WC_ORA1=0.0 +! +!RPRL/WC_ORA2=0.0 +! +!RPRL/WC_ACID=0.0 +! +!RPRL/WC_RP16=0.0 +! +!RPRL/WC_UR21=0.0 +! +!RPRL/WC_UR28=0.0 +! +!RPRL/WC_ACID2=0.0 +! +!RPRL/WC_ASO3=0.0 +! +!RPRL/WC_ASO4=0.0 +! +!RPRL/WC_ASO5=0.0 +! +!RPRL/WC_AHSO5=0.0 +! +!RPRL/WC_AHMS=0.0 +! +!RPRL/WR_O3=0.0 +! +!RPRL/WR_H2O2=0.0 +! +!RPRL/WR_NO=0.0 +! +!RPRL/WR_NO2=0.0 +! +!RPRL/WR_NO3=0.0 +! +!RPRL/WR_N2O5=0.0 +! +!RPRL/WR_HONO=0.0 +! +!RPRL/WR_HNO3=0.0 +! +!RPRL/WR_HNO4=0.0 +! +!RPRL/WR_NH3=0.0 +! +!RPRL/WR_OH=0.0 +! +!RPRL/WR_HO2=0.0 +! +!RPRL/WR_CO2=0.0 +! +!RPRL/WR_SO2=0.0 +! +!RPRL/WR_H2SO4=0.0 +! +!RPRL/WR_RO21=0.0 +! +!RPRL/WR_RO25=0.0 +! +!RPRL/WR_MEOH=0.0 +! +!RPRL/WR_ETOH=0.0 +! +!RPRL/WR_ALCH=0.0 +! +!RPRL/WR_HCHO=0.0 +! +!RPRL/WR_ALD2=0.0 +! +!RPRL/WR_GLY=0.0 +! +!RPRL/WR_MGLY=0.0 +! +!RPRL/WR_KETL=0.0 +! +!RPRL/WR_ORA1=0.0 +! +!RPRL/WR_ORA2=0.0 +! +!RPRL/WR_ACID=0.0 +! +!RPRL/WR_RP16=0.0 +! +!RPRL/WR_UR21=0.0 +! +!RPRL/WR_UR28=0.0 +! +!RPRL/WR_ACID2=0.0 +! +!RPRL/WR_ASO3=0.0 +! +!RPRL/WR_ASO4=0.0 +! +!RPRL/WR_ASO5=0.0 +! +!RPRL/WR_AHSO5=0.0 +! +!RPRL/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ14 +! +SUBROUTINE SUBJ15 +! +!Indices 76 a 80 +! +! +!APAN/NO=0.0 +! +!APAN/NO2=+K130*<RO250>+K133*<RO257> + PJAC(:,76,2)=+TPK%K130(:)*TPK%RO250(:)+TPK%K133(:)*TPK%RO257(:) +! +!APAN/O3=0.0 +! +!APAN/HONO=0.0 +! +!APAN/HNO3=0.0 +! +!APAN/HNO4=0.0 +! +!APAN/N2O5=0.0 +! +!APAN/NO3=0.0 +! +!APAN/NH3=0.0 +! +!APAN/HO2=0.0 +! +!APAN/CO=0.0 +! +!APAN/H2O2=0.0 +! +!APAN/SO2=0.0 +! +!APAN/H2SO4=0.0 +! +!APAN/OH=0.0 +! +!APAN/ETHE=0.0 +! +!APAN/OLEL=0.0 +! +!APAN/OLEH=0.0 +! +!APAN/ALKL=0.0 +! +!APAN/ALKM=0.0 +! +!APAN/ALKH=0.0 +! +!APAN/AROH=0.0 +! +!APAN/AROL=0.0 +! +!APAN/AROO=0.0 +! +!APAN/ARAL=0.0 +! +!APAN/ARAC=0.0 +! +!APAN/PAH=0.0 +! +!APAN/HCHO=0.0 +! +!APAN/ALD2=0.0 +! +!APAN/KETL=0.0 +! +!APAN/KETH=0.0 +! +!APAN/MEOH=0.0 +! +!APAN/ETOH=0.0 +! +!APAN/ALCH=0.0 +! +!APAN/ISOP=0.0 +! +!APAN/BIOL=0.0 +! +!APAN/BIOH=0.0 +! +!APAN/MTBE=0.0 +! +!APAN/MVK=0.0 +! +!APAN/MCR=0.0 +! +!APAN/MGLY=0.0 +! +!APAN/GLY=0.0 +! +!APAN/ORA1=0.0 +! +!APAN/ORA2=0.0 +! +!APAN/ACID=0.0 +! +!APAN/UR28=0.0 +! +!APAN/UR21=0.0 +! +!APAN/URG2=0.0 +! +!APAN/UR26=0.0 +! +!APAN/RPG2=0.0 +! +!APAN/RP18=0.0 +! +!APAN/RPG3=0.0 +! +!APAN/URG4=0.0 +! +!APAN/UR8=0.0 +! +!APAN/UR17=0.0 +! +!APAN/UR7=0.0 +! +!APAN/RPR3=0.0 +! +!APAN/URG6=0.0 +! +!APAN/UR22=0.0 +! +!APAN/URG7=0.0 +! +!APAN/RPR4=0.0 +! +!APAN/RPR7=0.0 +! +!APAN/RPG7=0.0 +! +!APAN/URG8=0.0 +! +!APAN/UR19=0.0 +! +!APAN/URG9=0.0 +! +!APAN/AP7=0.0 +! +!APAN/URG10=0.0 +! +!APAN/RPR1=0.0 +! +!APAN/RPR5=0.0 +! +!APAN/RPR8=0.0 +! +!APAN/RP10=0.0 +! +!APAN/RP11=0.0 +! +!APAN/RP16=0.0 +! +!APAN/RPRL=0.0 +! +!APAN/APAN=-K139 + PJAC(:,76,76)=-TPK%K139(:) +! +!APAN/PAN1=0.0 +! +!APAN/PAN2=0.0 +! +!APAN/PAN3=0.0 +! +!APAN/PAN4=0.0 +! +!APAN/PAN6=0.0 +! +!APAN/PAN7=0.0 +! +!APAN/PAN8=0.0 +! +!APAN/PN10=0.0 +! +!APAN/RO2T=0.0 +! +!APAN/RO21=0.0 +! +!APAN/RO25=0.0 +! +!APAN/WC_O3=0.0 +! +!APAN/WC_H2O2=0.0 +! +!APAN/WC_NO=0.0 +! +!APAN/WC_NO2=0.0 +! +!APAN/WC_NO3=0.0 +! +!APAN/WC_N2O5=0.0 +! +!APAN/WC_HONO=0.0 +! +!APAN/WC_HNO3=0.0 +! +!APAN/WC_HNO4=0.0 +! +!APAN/WC_NH3=0.0 +! +!APAN/WC_OH=0.0 +! +!APAN/WC_HO2=0.0 +! +!APAN/WC_CO2=0.0 +! +!APAN/WC_SO2=0.0 +! +!APAN/WC_H2SO4=0.0 +! +!APAN/WC_RO21=0.0 +! +!APAN/WC_RO25=0.0 +! +!APAN/WC_MEOH=0.0 +! +!APAN/WC_ETOH=0.0 +! +!APAN/WC_ALCH=0.0 +! +!APAN/WC_HCHO=0.0 +! +!APAN/WC_ALD2=0.0 +! +!APAN/WC_GLY=0.0 +! +!APAN/WC_MGLY=0.0 +! +!APAN/WC_KETL=0.0 +! +!APAN/WC_ORA1=0.0 +! +!APAN/WC_ORA2=0.0 +! +!APAN/WC_ACID=0.0 +! +!APAN/WC_RP16=0.0 +! +!APAN/WC_UR21=0.0 +! +!APAN/WC_UR28=0.0 +! +!APAN/WC_ACID2=0.0 +! +!APAN/WC_ASO3=0.0 +! +!APAN/WC_ASO4=0.0 +! +!APAN/WC_ASO5=0.0 +! +!APAN/WC_AHSO5=0.0 +! +!APAN/WC_AHMS=0.0 +! +!APAN/WR_O3=0.0 +! +!APAN/WR_H2O2=0.0 +! +!APAN/WR_NO=0.0 +! +!APAN/WR_NO2=0.0 +! +!APAN/WR_NO3=0.0 +! +!APAN/WR_N2O5=0.0 +! +!APAN/WR_HONO=0.0 +! +!APAN/WR_HNO3=0.0 +! +!APAN/WR_HNO4=0.0 +! +!APAN/WR_NH3=0.0 +! +!APAN/WR_OH=0.0 +! +!APAN/WR_HO2=0.0 +! +!APAN/WR_CO2=0.0 +! +!APAN/WR_SO2=0.0 +! +!APAN/WR_H2SO4=0.0 +! +!APAN/WR_RO21=0.0 +! +!APAN/WR_RO25=0.0 +! +!APAN/WR_MEOH=0.0 +! +!APAN/WR_ETOH=0.0 +! +!APAN/WR_ALCH=0.0 +! +!APAN/WR_HCHO=0.0 +! +!APAN/WR_ALD2=0.0 +! +!APAN/WR_GLY=0.0 +! +!APAN/WR_MGLY=0.0 +! +!APAN/WR_KETL=0.0 +! +!APAN/WR_ORA1=0.0 +! +!APAN/WR_ORA2=0.0 +! +!APAN/WR_ACID=0.0 +! +!APAN/WR_RP16=0.0 +! +!APAN/WR_UR21=0.0 +! +!APAN/WR_UR28=0.0 +! +!APAN/WR_ACID2=0.0 +! +!APAN/WR_ASO3=0.0 +! +!APAN/WR_ASO4=0.0 +! +!APAN/WR_ASO5=0.0 +! +!APAN/WR_AHSO5=0.0 +! +!APAN/WR_AHMS=0.0 +! +!PAN1/NO=0.0 +! +!PAN1/NO2=+K126*<RO26> + PJAC(:,77,2)=+TPK%K126(:)*TPK%RO26(:) +! +!PAN1/O3=0.0 +! +!PAN1/HONO=0.0 +! +!PAN1/HNO3=0.0 +! +!PAN1/HNO4=0.0 +! +!PAN1/N2O5=0.0 +! +!PAN1/NO3=0.0 +! +!PAN1/NH3=0.0 +! +!PAN1/HO2=0.0 +! +!PAN1/CO=0.0 +! +!PAN1/H2O2=0.0 +! +!PAN1/SO2=0.0 +! +!PAN1/H2SO4=0.0 +! +!PAN1/OH=0.0 +! +!PAN1/ETHE=0.0 +! +!PAN1/OLEL=0.0 +! +!PAN1/OLEH=0.0 +! +!PAN1/ALKL=0.0 +! +!PAN1/ALKM=0.0 +! +!PAN1/ALKH=0.0 +! +!PAN1/AROH=0.0 +! +!PAN1/AROL=0.0 +! +!PAN1/AROO=0.0 +! +!PAN1/ARAL=0.0 +! +!PAN1/ARAC=0.0 +! +!PAN1/PAH=0.0 +! +!PAN1/HCHO=0.0 +! +!PAN1/ALD2=0.0 +! +!PAN1/KETL=0.0 +! +!PAN1/KETH=0.0 +! +!PAN1/MEOH=0.0 +! +!PAN1/ETOH=0.0 +! +!PAN1/ALCH=0.0 +! +!PAN1/ISOP=0.0 +! +!PAN1/BIOL=0.0 +! +!PAN1/BIOH=0.0 +! +!PAN1/MTBE=0.0 +! +!PAN1/MVK=0.0 +! +!PAN1/MCR=0.0 +! +!PAN1/MGLY=0.0 +! +!PAN1/GLY=0.0 +! +!PAN1/ORA1=0.0 +! +!PAN1/ORA2=0.0 +! +!PAN1/ACID=0.0 +! +!PAN1/UR28=0.0 +! +!PAN1/UR21=0.0 +! +!PAN1/URG2=0.0 +! +!PAN1/UR26=0.0 +! +!PAN1/RPG2=0.0 +! +!PAN1/RP18=0.0 +! +!PAN1/RPG3=0.0 +! +!PAN1/URG4=0.0 +! +!PAN1/UR8=0.0 +! +!PAN1/UR17=0.0 +! +!PAN1/UR7=0.0 +! +!PAN1/RPR3=0.0 +! +!PAN1/URG6=0.0 +! +!PAN1/UR22=0.0 +! +!PAN1/URG7=0.0 +! +!PAN1/RPR4=0.0 +! +!PAN1/RPR7=0.0 +! +!PAN1/RPG7=0.0 +! +!PAN1/URG8=0.0 +! +!PAN1/UR19=0.0 +! +!PAN1/URG9=0.0 +! +!PAN1/AP7=0.0 +! +!PAN1/URG10=0.0 +! +!PAN1/RPR1=0.0 +! +!PAN1/RPR5=0.0 +! +!PAN1/RPR8=0.0 +! +!PAN1/RP10=0.0 +! +!PAN1/RP11=0.0 +! +!PAN1/RP16=0.0 +! +!PAN1/RPRL=0.0 +! +!PAN1/APAN=0.0 +! +!PAN1/PAN1=-K135 + PJAC(:,77,77)=-TPK%K135(:) +! +!PAN1/PAN2=0.0 +! +!PAN1/PAN3=0.0 +! +!PAN1/PAN4=0.0 +! +!PAN1/PAN6=0.0 +! +!PAN1/PAN7=0.0 +! +!PAN1/PAN8=0.0 +! +!PAN1/PN10=0.0 +! +!PAN1/RO2T=0.0 +! +!PAN1/RO21=0.0 +! +!PAN1/RO25=0.0 +! +!PAN1/WC_O3=0.0 +! +!PAN1/WC_H2O2=0.0 +! +!PAN1/WC_NO=0.0 +! +!PAN1/WC_NO2=0.0 +! +!PAN1/WC_NO3=0.0 +! +!PAN1/WC_N2O5=0.0 +! +!PAN1/WC_HONO=0.0 +! +!PAN1/WC_HNO3=0.0 +! +!PAN1/WC_HNO4=0.0 +! +!PAN1/WC_NH3=0.0 +! +!PAN1/WC_OH=0.0 +! +!PAN1/WC_HO2=0.0 +! +!PAN1/WC_CO2=0.0 +! +!PAN1/WC_SO2=0.0 +! +!PAN1/WC_H2SO4=0.0 +! +!PAN1/WC_RO21=0.0 +! +!PAN1/WC_RO25=0.0 +! +!PAN1/WC_MEOH=0.0 +! +!PAN1/WC_ETOH=0.0 +! +!PAN1/WC_ALCH=0.0 +! +!PAN1/WC_HCHO=0.0 +! +!PAN1/WC_ALD2=0.0 +! +!PAN1/WC_GLY=0.0 +! +!PAN1/WC_MGLY=0.0 +! +!PAN1/WC_KETL=0.0 +! +!PAN1/WC_ORA1=0.0 +! +!PAN1/WC_ORA2=0.0 +! +!PAN1/WC_ACID=0.0 +! +!PAN1/WC_RP16=0.0 +! +!PAN1/WC_UR21=0.0 +! +!PAN1/WC_UR28=0.0 +! +!PAN1/WC_ACID2=0.0 +! +!PAN1/WC_ASO3=0.0 +! +!PAN1/WC_ASO4=0.0 +! +!PAN1/WC_ASO5=0.0 +! +!PAN1/WC_AHSO5=0.0 +! +!PAN1/WC_AHMS=0.0 +! +!PAN1/WR_O3=0.0 +! +!PAN1/WR_H2O2=0.0 +! +!PAN1/WR_NO=0.0 +! +!PAN1/WR_NO2=0.0 +! +!PAN1/WR_NO3=0.0 +! +!PAN1/WR_N2O5=0.0 +! +!PAN1/WR_HONO=0.0 +! +!PAN1/WR_HNO3=0.0 +! +!PAN1/WR_HNO4=0.0 +! +!PAN1/WR_NH3=0.0 +! +!PAN1/WR_OH=0.0 +! +!PAN1/WR_HO2=0.0 +! +!PAN1/WR_CO2=0.0 +! +!PAN1/WR_SO2=0.0 +! +!PAN1/WR_H2SO4=0.0 +! +!PAN1/WR_RO21=0.0 +! +!PAN1/WR_RO25=0.0 +! +!PAN1/WR_MEOH=0.0 +! +!PAN1/WR_ETOH=0.0 +! +!PAN1/WR_ALCH=0.0 +! +!PAN1/WR_HCHO=0.0 +! +!PAN1/WR_ALD2=0.0 +! +!PAN1/WR_GLY=0.0 +! +!PAN1/WR_MGLY=0.0 +! +!PAN1/WR_KETL=0.0 +! +!PAN1/WR_ORA1=0.0 +! +!PAN1/WR_ORA2=0.0 +! +!PAN1/WR_ACID=0.0 +! +!PAN1/WR_RP16=0.0 +! +!PAN1/WR_UR21=0.0 +! +!PAN1/WR_UR28=0.0 +! +!PAN1/WR_ACID2=0.0 +! +!PAN1/WR_ASO3=0.0 +! +!PAN1/WR_ASO4=0.0 +! +!PAN1/WR_ASO5=0.0 +! +!PAN1/WR_AHSO5=0.0 +! +!PAN1/WR_AHMS=0.0 +! +!PAN2/NO=0.0 +! +!PAN2/NO2=+K127*<RO28> + PJAC(:,78,2)=+TPK%K127(:)*TPK%RO28(:) +! +!PAN2/O3=0.0 +! +!PAN2/HONO=0.0 +! +!PAN2/HNO3=0.0 +! +!PAN2/HNO4=0.0 +! +!PAN2/N2O5=0.0 +! +!PAN2/NO3=0.0 +! +!PAN2/NH3=0.0 +! +!PAN2/HO2=0.0 +! +!PAN2/CO=0.0 +! +!PAN2/H2O2=0.0 +! +!PAN2/SO2=0.0 +! +!PAN2/H2SO4=0.0 +! +!PAN2/OH=0.0 +! +!PAN2/ETHE=0.0 +! +!PAN2/OLEL=0.0 +! +!PAN2/OLEH=0.0 +! +!PAN2/ALKL=0.0 +! +!PAN2/ALKM=0.0 +! +!PAN2/ALKH=0.0 +! +!PAN2/AROH=0.0 +! +!PAN2/AROL=0.0 +! +!PAN2/AROO=0.0 +! +!PAN2/ARAL=0.0 +! +!PAN2/ARAC=0.0 +! +!PAN2/PAH=0.0 +! +!PAN2/HCHO=0.0 +! +!PAN2/ALD2=0.0 +! +!PAN2/KETL=0.0 +! +!PAN2/KETH=0.0 +! +!PAN2/MEOH=0.0 +! +!PAN2/ETOH=0.0 +! +!PAN2/ALCH=0.0 +! +!PAN2/ISOP=0.0 +! +!PAN2/BIOL=0.0 +! +!PAN2/BIOH=0.0 +! +!PAN2/MTBE=0.0 +! +!PAN2/MVK=0.0 +! +!PAN2/MCR=0.0 +! +!PAN2/MGLY=0.0 +! +!PAN2/GLY=0.0 +! +!PAN2/ORA1=0.0 +! +!PAN2/ORA2=0.0 +! +!PAN2/ACID=0.0 +! +!PAN2/UR28=0.0 +! +!PAN2/UR21=0.0 +! +!PAN2/URG2=0.0 +! +!PAN2/UR26=0.0 +! +!PAN2/RPG2=0.0 +! +!PAN2/RP18=0.0 +! +!PAN2/RPG3=0.0 +! +!PAN2/URG4=0.0 +! +!PAN2/UR8=0.0 +! +!PAN2/UR17=0.0 +! +!PAN2/UR7=0.0 +! +!PAN2/RPR3=0.0 +! +!PAN2/URG6=0.0 +! +!PAN2/UR22=0.0 +! +!PAN2/URG7=0.0 +! +!PAN2/RPR4=0.0 +! +!PAN2/RPR7=0.0 +! +!PAN2/RPG7=0.0 +! +!PAN2/URG8=0.0 +! +!PAN2/UR19=0.0 +! +!PAN2/URG9=0.0 +! +!PAN2/AP7=0.0 +! +!PAN2/URG10=0.0 +! +!PAN2/RPR1=0.0 +! +!PAN2/RPR5=0.0 +! +!PAN2/RPR8=0.0 +! +!PAN2/RP10=0.0 +! +!PAN2/RP11=0.0 +! +!PAN2/RP16=0.0 +! +!PAN2/RPRL=0.0 +! +!PAN2/APAN=0.0 +! +!PAN2/PAN1=0.0 +! +!PAN2/PAN2=-K136 + PJAC(:,78,78)=-TPK%K136(:) +! +!PAN2/PAN3=0.0 +! +!PAN2/PAN4=0.0 +! +!PAN2/PAN6=0.0 +! +!PAN2/PAN7=0.0 +! +!PAN2/PAN8=0.0 +! +!PAN2/PN10=0.0 +! +!PAN2/RO2T=0.0 +! +!PAN2/RO21=0.0 +! +!PAN2/RO25=0.0 +! +!PAN2/WC_O3=0.0 +! +!PAN2/WC_H2O2=0.0 +! +!PAN2/WC_NO=0.0 +! +!PAN2/WC_NO2=0.0 +! +!PAN2/WC_NO3=0.0 +! +!PAN2/WC_N2O5=0.0 +! +!PAN2/WC_HONO=0.0 +! +!PAN2/WC_HNO3=0.0 +! +!PAN2/WC_HNO4=0.0 +! +!PAN2/WC_NH3=0.0 +! +!PAN2/WC_OH=0.0 +! +!PAN2/WC_HO2=0.0 +! +!PAN2/WC_CO2=0.0 +! +!PAN2/WC_SO2=0.0 +! +!PAN2/WC_H2SO4=0.0 +! +!PAN2/WC_RO21=0.0 +! +!PAN2/WC_RO25=0.0 +! +!PAN2/WC_MEOH=0.0 +! +!PAN2/WC_ETOH=0.0 +! +!PAN2/WC_ALCH=0.0 +! +!PAN2/WC_HCHO=0.0 +! +!PAN2/WC_ALD2=0.0 +! +!PAN2/WC_GLY=0.0 +! +!PAN2/WC_MGLY=0.0 +! +!PAN2/WC_KETL=0.0 +! +!PAN2/WC_ORA1=0.0 +! +!PAN2/WC_ORA2=0.0 +! +!PAN2/WC_ACID=0.0 +! +!PAN2/WC_RP16=0.0 +! +!PAN2/WC_UR21=0.0 +! +!PAN2/WC_UR28=0.0 +! +!PAN2/WC_ACID2=0.0 +! +!PAN2/WC_ASO3=0.0 +! +!PAN2/WC_ASO4=0.0 +! +!PAN2/WC_ASO5=0.0 +! +!PAN2/WC_AHSO5=0.0 +! +!PAN2/WC_AHMS=0.0 +! +!PAN2/WR_O3=0.0 +! +!PAN2/WR_H2O2=0.0 +! +!PAN2/WR_NO=0.0 +! +!PAN2/WR_NO2=0.0 +! +!PAN2/WR_NO3=0.0 +! +!PAN2/WR_N2O5=0.0 +! +!PAN2/WR_HONO=0.0 +! +!PAN2/WR_HNO3=0.0 +! +!PAN2/WR_HNO4=0.0 +! +!PAN2/WR_NH3=0.0 +! +!PAN2/WR_OH=0.0 +! +!PAN2/WR_HO2=0.0 +! +!PAN2/WR_CO2=0.0 +! +!PAN2/WR_SO2=0.0 +! +!PAN2/WR_H2SO4=0.0 +! +!PAN2/WR_RO21=0.0 +! +!PAN2/WR_RO25=0.0 +! +!PAN2/WR_MEOH=0.0 +! +!PAN2/WR_ETOH=0.0 +! +!PAN2/WR_ALCH=0.0 +! +!PAN2/WR_HCHO=0.0 +! +!PAN2/WR_ALD2=0.0 +! +!PAN2/WR_GLY=0.0 +! +!PAN2/WR_MGLY=0.0 +! +!PAN2/WR_KETL=0.0 +! +!PAN2/WR_ORA1=0.0 +! +!PAN2/WR_ORA2=0.0 +! +!PAN2/WR_ACID=0.0 +! +!PAN2/WR_RP16=0.0 +! +!PAN2/WR_UR21=0.0 +! +!PAN2/WR_UR28=0.0 +! +!PAN2/WR_ACID2=0.0 +! +!PAN2/WR_ASO3=0.0 +! +!PAN2/WR_ASO4=0.0 +! +!PAN2/WR_ASO5=0.0 +! +!PAN2/WR_AHSO5=0.0 +! +!PAN2/WR_AHMS=0.0 +! +!PAN3/NO=0.0 +! +!PAN3/NO2=+K128*<RO239> + PJAC(:,79,2)=+TPK%K128(:)*TPK%RO239(:) +! +!PAN3/O3=0.0 +! +!PAN3/HONO=0.0 +! +!PAN3/HNO3=0.0 +! +!PAN3/HNO4=0.0 +! +!PAN3/N2O5=0.0 +! +!PAN3/NO3=0.0 +! +!PAN3/NH3=0.0 +! +!PAN3/HO2=0.0 +! +!PAN3/CO=0.0 +! +!PAN3/H2O2=0.0 +! +!PAN3/SO2=0.0 +! +!PAN3/H2SO4=0.0 +! +!PAN3/OH=0.0 +! +!PAN3/ETHE=0.0 +! +!PAN3/OLEL=0.0 +! +!PAN3/OLEH=0.0 +! +!PAN3/ALKL=0.0 +! +!PAN3/ALKM=0.0 +! +!PAN3/ALKH=0.0 +! +!PAN3/AROH=0.0 +! +!PAN3/AROL=0.0 +! +!PAN3/AROO=0.0 +! +!PAN3/ARAL=0.0 +! +!PAN3/ARAC=0.0 +! +!PAN3/PAH=0.0 +! +!PAN3/HCHO=0.0 +! +!PAN3/ALD2=0.0 +! +!PAN3/KETL=0.0 +! +!PAN3/KETH=0.0 +! +!PAN3/MEOH=0.0 +! +!PAN3/ETOH=0.0 +! +!PAN3/ALCH=0.0 +! +!PAN3/ISOP=0.0 +! +!PAN3/BIOL=0.0 +! +!PAN3/BIOH=0.0 +! +!PAN3/MTBE=0.0 +! +!PAN3/MVK=0.0 +! +!PAN3/MCR=0.0 +! +!PAN3/MGLY=0.0 +! +!PAN3/GLY=0.0 +! +!PAN3/ORA1=0.0 +! +!PAN3/ORA2=0.0 +! +!PAN3/ACID=0.0 +! +!PAN3/UR28=0.0 +! +!PAN3/UR21=0.0 +! +!PAN3/URG2=0.0 +! +!PAN3/UR26=0.0 +! +!PAN3/RPG2=0.0 +! +!PAN3/RP18=0.0 +! +!PAN3/RPG3=0.0 +! +!PAN3/URG4=0.0 +! +!PAN3/UR8=0.0 +! +!PAN3/UR17=0.0 +! +!PAN3/UR7=0.0 +! +!PAN3/RPR3=0.0 +! +!PAN3/URG6=0.0 +! +!PAN3/UR22=0.0 +! +!PAN3/URG7=0.0 +! +!PAN3/RPR4=0.0 +! +!PAN3/RPR7=0.0 +! +!PAN3/RPG7=0.0 +! +!PAN3/URG8=0.0 +! +!PAN3/UR19=0.0 +! +!PAN3/URG9=0.0 +! +!PAN3/AP7=0.0 +! +!PAN3/URG10=0.0 +! +!PAN3/RPR1=0.0 +! +!PAN3/RPR5=0.0 +! +!PAN3/RPR8=0.0 +! +!PAN3/RP10=0.0 +! +!PAN3/RP11=0.0 +! +!PAN3/RP16=0.0 +! +!PAN3/RPRL=0.0 +! +!PAN3/APAN=0.0 +! +!PAN3/PAN1=0.0 +! +!PAN3/PAN2=0.0 +! +!PAN3/PAN3=-K137 + PJAC(:,79,79)=-TPK%K137(:) +! +!PAN3/PAN4=0.0 +! +!PAN3/PAN6=0.0 +! +!PAN3/PAN7=0.0 +! +!PAN3/PAN8=0.0 +! +!PAN3/PN10=0.0 +! +!PAN3/RO2T=0.0 +! +!PAN3/RO21=0.0 +! +!PAN3/RO25=0.0 +! +!PAN3/WC_O3=0.0 +! +!PAN3/WC_H2O2=0.0 +! +!PAN3/WC_NO=0.0 +! +!PAN3/WC_NO2=0.0 +! +!PAN3/WC_NO3=0.0 +! +!PAN3/WC_N2O5=0.0 +! +!PAN3/WC_HONO=0.0 +! +!PAN3/WC_HNO3=0.0 +! +!PAN3/WC_HNO4=0.0 +! +!PAN3/WC_NH3=0.0 +! +!PAN3/WC_OH=0.0 +! +!PAN3/WC_HO2=0.0 +! +!PAN3/WC_CO2=0.0 +! +!PAN3/WC_SO2=0.0 +! +!PAN3/WC_H2SO4=0.0 +! +!PAN3/WC_RO21=0.0 +! +!PAN3/WC_RO25=0.0 +! +!PAN3/WC_MEOH=0.0 +! +!PAN3/WC_ETOH=0.0 +! +!PAN3/WC_ALCH=0.0 +! +!PAN3/WC_HCHO=0.0 +! +!PAN3/WC_ALD2=0.0 +! +!PAN3/WC_GLY=0.0 +! +!PAN3/WC_MGLY=0.0 +! +!PAN3/WC_KETL=0.0 +! +!PAN3/WC_ORA1=0.0 +! +!PAN3/WC_ORA2=0.0 +! +!PAN3/WC_ACID=0.0 +! +!PAN3/WC_RP16=0.0 +! +!PAN3/WC_UR21=0.0 +! +!PAN3/WC_UR28=0.0 +! +!PAN3/WC_ACID2=0.0 +! +!PAN3/WC_ASO3=0.0 +! +!PAN3/WC_ASO4=0.0 +! +!PAN3/WC_ASO5=0.0 +! +!PAN3/WC_AHSO5=0.0 +! +!PAN3/WC_AHMS=0.0 +! +!PAN3/WR_O3=0.0 +! +!PAN3/WR_H2O2=0.0 +! +!PAN3/WR_NO=0.0 +! +!PAN3/WR_NO2=0.0 +! +!PAN3/WR_NO3=0.0 +! +!PAN3/WR_N2O5=0.0 +! +!PAN3/WR_HONO=0.0 +! +!PAN3/WR_HNO3=0.0 +! +!PAN3/WR_HNO4=0.0 +! +!PAN3/WR_NH3=0.0 +! +!PAN3/WR_OH=0.0 +! +!PAN3/WR_HO2=0.0 +! +!PAN3/WR_CO2=0.0 +! +!PAN3/WR_SO2=0.0 +! +!PAN3/WR_H2SO4=0.0 +! +!PAN3/WR_RO21=0.0 +! +!PAN3/WR_RO25=0.0 +! +!PAN3/WR_MEOH=0.0 +! +!PAN3/WR_ETOH=0.0 +! +!PAN3/WR_ALCH=0.0 +! +!PAN3/WR_HCHO=0.0 +! +!PAN3/WR_ALD2=0.0 +! +!PAN3/WR_GLY=0.0 +! +!PAN3/WR_MGLY=0.0 +! +!PAN3/WR_KETL=0.0 +! +!PAN3/WR_ORA1=0.0 +! +!PAN3/WR_ORA2=0.0 +! +!PAN3/WR_ACID=0.0 +! +!PAN3/WR_RP16=0.0 +! +!PAN3/WR_UR21=0.0 +! +!PAN3/WR_UR28=0.0 +! +!PAN3/WR_ACID2=0.0 +! +!PAN3/WR_ASO3=0.0 +! +!PAN3/WR_ASO4=0.0 +! +!PAN3/WR_ASO5=0.0 +! +!PAN3/WR_AHSO5=0.0 +! +!PAN3/WR_AHMS=0.0 +! +!PAN4/NO=0.0 +! +!PAN4/NO2=+K129*<RO248> + PJAC(:,80,2)=+TPK%K129(:)*TPK%RO248(:) +! +!PAN4/O3=0.0 +! +!PAN4/HONO=0.0 +! +!PAN4/HNO3=0.0 +! +!PAN4/HNO4=0.0 +! +!PAN4/N2O5=0.0 +! +!PAN4/NO3=0.0 +! +!PAN4/NH3=0.0 +! +!PAN4/HO2=0.0 +! +!PAN4/CO=0.0 +! +!PAN4/H2O2=0.0 +! +!PAN4/SO2=0.0 +! +!PAN4/H2SO4=0.0 +! +!PAN4/OH=0.0 +! +!PAN4/ETHE=0.0 +! +!PAN4/OLEL=0.0 +! +!PAN4/OLEH=0.0 +! +!PAN4/ALKL=0.0 +! +!PAN4/ALKM=0.0 +! +!PAN4/ALKH=0.0 +! +!PAN4/AROH=0.0 +! +!PAN4/AROL=0.0 +! +!PAN4/AROO=0.0 +! +!PAN4/ARAL=0.0 +! +!PAN4/ARAC=0.0 +! +!PAN4/PAH=0.0 +! +!PAN4/HCHO=0.0 +! +!PAN4/ALD2=0.0 +! +!PAN4/KETL=0.0 +! +!PAN4/KETH=0.0 +! +!PAN4/MEOH=0.0 +! +!PAN4/ETOH=0.0 +! +!PAN4/ALCH=0.0 +! +!PAN4/ISOP=0.0 +! +!PAN4/BIOL=0.0 +! +!PAN4/BIOH=0.0 +! +!PAN4/MTBE=0.0 +! +!PAN4/MVK=0.0 +! +!PAN4/MCR=0.0 +! +!PAN4/MGLY=0.0 +! +!PAN4/GLY=0.0 +! +!PAN4/ORA1=0.0 +! +!PAN4/ORA2=0.0 +! +!PAN4/ACID=0.0 +! +!PAN4/UR28=0.0 +! +!PAN4/UR21=0.0 +! +!PAN4/URG2=0.0 +! +!PAN4/UR26=0.0 +! +!PAN4/RPG2=0.0 +! +!PAN4/RP18=0.0 +! +!PAN4/RPG3=0.0 +! +!PAN4/URG4=0.0 +! +!PAN4/UR8=0.0 +! +!PAN4/UR17=0.0 +! +!PAN4/UR7=0.0 +! +!PAN4/RPR3=0.0 +! +!PAN4/URG6=0.0 +! +!PAN4/UR22=0.0 +! +!PAN4/URG7=0.0 +! +!PAN4/RPR4=0.0 +! +!PAN4/RPR7=0.0 +! +!PAN4/RPG7=0.0 +! +!PAN4/URG8=0.0 +! +!PAN4/UR19=0.0 +! +!PAN4/URG9=0.0 +! +!PAN4/AP7=0.0 +! +!PAN4/URG10=0.0 +! +!PAN4/RPR1=0.0 +! +!PAN4/RPR5=0.0 +! +!PAN4/RPR8=0.0 +! +!PAN4/RP10=0.0 +! +!PAN4/RP11=0.0 +! +!PAN4/RP16=0.0 +! +!PAN4/RPRL=0.0 +! +!PAN4/APAN=0.0 +! +!PAN4/PAN1=0.0 +! +!PAN4/PAN2=0.0 +! +!PAN4/PAN3=0.0 +! +!PAN4/PAN4=-K141 + PJAC(:,80,80)=-TPK%K141(:) +! +!PAN4/PAN6=0.0 +! +!PAN4/PAN7=0.0 +! +!PAN4/PAN8=0.0 +! +!PAN4/PN10=0.0 +! +!PAN4/RO2T=0.0 +! +!PAN4/RO21=0.0 +! +!PAN4/RO25=0.0 +! +!PAN4/WC_O3=0.0 +! +!PAN4/WC_H2O2=0.0 +! +!PAN4/WC_NO=0.0 +! +!PAN4/WC_NO2=0.0 +! +!PAN4/WC_NO3=0.0 +! +!PAN4/WC_N2O5=0.0 +! +!PAN4/WC_HONO=0.0 +! +!PAN4/WC_HNO3=0.0 +! +!PAN4/WC_HNO4=0.0 +! +!PAN4/WC_NH3=0.0 +! +!PAN4/WC_OH=0.0 +! +!PAN4/WC_HO2=0.0 +! +!PAN4/WC_CO2=0.0 +! +!PAN4/WC_SO2=0.0 +! +!PAN4/WC_H2SO4=0.0 +! +!PAN4/WC_RO21=0.0 +! +!PAN4/WC_RO25=0.0 +! +!PAN4/WC_MEOH=0.0 +! +!PAN4/WC_ETOH=0.0 +! +!PAN4/WC_ALCH=0.0 +! +!PAN4/WC_HCHO=0.0 +! +!PAN4/WC_ALD2=0.0 +! +!PAN4/WC_GLY=0.0 +! +!PAN4/WC_MGLY=0.0 +! +!PAN4/WC_KETL=0.0 +! +!PAN4/WC_ORA1=0.0 +! +!PAN4/WC_ORA2=0.0 +! +!PAN4/WC_ACID=0.0 +! +!PAN4/WC_RP16=0.0 +! +!PAN4/WC_UR21=0.0 +! +!PAN4/WC_UR28=0.0 +! +!PAN4/WC_ACID2=0.0 +! +!PAN4/WC_ASO3=0.0 +! +!PAN4/WC_ASO4=0.0 +! +!PAN4/WC_ASO5=0.0 +! +!PAN4/WC_AHSO5=0.0 +! +!PAN4/WC_AHMS=0.0 +! +!PAN4/WR_O3=0.0 +! +!PAN4/WR_H2O2=0.0 +! +!PAN4/WR_NO=0.0 +! +!PAN4/WR_NO2=0.0 +! +!PAN4/WR_NO3=0.0 +! +!PAN4/WR_N2O5=0.0 +! +!PAN4/WR_HONO=0.0 +! +!PAN4/WR_HNO3=0.0 +! +!PAN4/WR_HNO4=0.0 +! +!PAN4/WR_NH3=0.0 +! +!PAN4/WR_OH=0.0 +! +!PAN4/WR_HO2=0.0 +! +!PAN4/WR_CO2=0.0 +! +!PAN4/WR_SO2=0.0 +! +!PAN4/WR_H2SO4=0.0 +! +!PAN4/WR_RO21=0.0 +! +!PAN4/WR_RO25=0.0 +! +!PAN4/WR_MEOH=0.0 +! +!PAN4/WR_ETOH=0.0 +! +!PAN4/WR_ALCH=0.0 +! +!PAN4/WR_HCHO=0.0 +! +!PAN4/WR_ALD2=0.0 +! +!PAN4/WR_GLY=0.0 +! +!PAN4/WR_MGLY=0.0 +! +!PAN4/WR_KETL=0.0 +! +!PAN4/WR_ORA1=0.0 +! +!PAN4/WR_ORA2=0.0 +! +!PAN4/WR_ACID=0.0 +! +!PAN4/WR_RP16=0.0 +! +!PAN4/WR_UR21=0.0 +! +!PAN4/WR_UR28=0.0 +! +!PAN4/WR_ACID2=0.0 +! +!PAN4/WR_ASO3=0.0 +! +!PAN4/WR_ASO4=0.0 +! +!PAN4/WR_ASO5=0.0 +! +!PAN4/WR_AHSO5=0.0 +! +!PAN4/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ15 +! +SUBROUTINE SUBJ16 +! +!Indices 81 a 85 +! +! +!PAN6/NO=0.0 +! +!PAN6/NO2=+K131*<RO254> + PJAC(:,81,2)=+TPK%K131(:)*TPK%RO254(:) +! +!PAN6/O3=0.0 +! +!PAN6/HONO=0.0 +! +!PAN6/HNO3=0.0 +! +!PAN6/HNO4=0.0 +! +!PAN6/N2O5=0.0 +! +!PAN6/NO3=0.0 +! +!PAN6/NH3=0.0 +! +!PAN6/HO2=0.0 +! +!PAN6/CO=0.0 +! +!PAN6/H2O2=0.0 +! +!PAN6/SO2=0.0 +! +!PAN6/H2SO4=0.0 +! +!PAN6/OH=0.0 +! +!PAN6/ETHE=0.0 +! +!PAN6/OLEL=0.0 +! +!PAN6/OLEH=0.0 +! +!PAN6/ALKL=0.0 +! +!PAN6/ALKM=0.0 +! +!PAN6/ALKH=0.0 +! +!PAN6/AROH=0.0 +! +!PAN6/AROL=0.0 +! +!PAN6/AROO=0.0 +! +!PAN6/ARAL=0.0 +! +!PAN6/ARAC=0.0 +! +!PAN6/PAH=0.0 +! +!PAN6/HCHO=0.0 +! +!PAN6/ALD2=0.0 +! +!PAN6/KETL=0.0 +! +!PAN6/KETH=0.0 +! +!PAN6/MEOH=0.0 +! +!PAN6/ETOH=0.0 +! +!PAN6/ALCH=0.0 +! +!PAN6/ISOP=0.0 +! +!PAN6/BIOL=0.0 +! +!PAN6/BIOH=0.0 +! +!PAN6/MTBE=0.0 +! +!PAN6/MVK=0.0 +! +!PAN6/MCR=0.0 +! +!PAN6/MGLY=0.0 +! +!PAN6/GLY=0.0 +! +!PAN6/ORA1=0.0 +! +!PAN6/ORA2=0.0 +! +!PAN6/ACID=0.0 +! +!PAN6/UR28=0.0 +! +!PAN6/UR21=0.0 +! +!PAN6/URG2=0.0 +! +!PAN6/UR26=0.0 +! +!PAN6/RPG2=0.0 +! +!PAN6/RP18=0.0 +! +!PAN6/RPG3=0.0 +! +!PAN6/URG4=0.0 +! +!PAN6/UR8=0.0 +! +!PAN6/UR17=0.0 +! +!PAN6/UR7=0.0 +! +!PAN6/RPR3=0.0 +! +!PAN6/URG6=0.0 +! +!PAN6/UR22=0.0 +! +!PAN6/URG7=0.0 +! +!PAN6/RPR4=0.0 +! +!PAN6/RPR7=0.0 +! +!PAN6/RPG7=0.0 +! +!PAN6/URG8=0.0 +! +!PAN6/UR19=0.0 +! +!PAN6/URG9=0.0 +! +!PAN6/AP7=0.0 +! +!PAN6/URG10=0.0 +! +!PAN6/RPR1=0.0 +! +!PAN6/RPR5=0.0 +! +!PAN6/RPR8=0.0 +! +!PAN6/RP10=0.0 +! +!PAN6/RP11=0.0 +! +!PAN6/RP16=0.0 +! +!PAN6/RPRL=0.0 +! +!PAN6/APAN=0.0 +! +!PAN6/PAN1=0.0 +! +!PAN6/PAN2=0.0 +! +!PAN6/PAN3=0.0 +! +!PAN6/PAN4=0.0 +! +!PAN6/PAN6=-K140 + PJAC(:,81,81)=-TPK%K140(:) +! +!PAN6/PAN7=0.0 +! +!PAN6/PAN8=0.0 +! +!PAN6/PN10=0.0 +! +!PAN6/RO2T=0.0 +! +!PAN6/RO21=0.0 +! +!PAN6/RO25=0.0 +! +!PAN6/WC_O3=0.0 +! +!PAN6/WC_H2O2=0.0 +! +!PAN6/WC_NO=0.0 +! +!PAN6/WC_NO2=0.0 +! +!PAN6/WC_NO3=0.0 +! +!PAN6/WC_N2O5=0.0 +! +!PAN6/WC_HONO=0.0 +! +!PAN6/WC_HNO3=0.0 +! +!PAN6/WC_HNO4=0.0 +! +!PAN6/WC_NH3=0.0 +! +!PAN6/WC_OH=0.0 +! +!PAN6/WC_HO2=0.0 +! +!PAN6/WC_CO2=0.0 +! +!PAN6/WC_SO2=0.0 +! +!PAN6/WC_H2SO4=0.0 +! +!PAN6/WC_RO21=0.0 +! +!PAN6/WC_RO25=0.0 +! +!PAN6/WC_MEOH=0.0 +! +!PAN6/WC_ETOH=0.0 +! +!PAN6/WC_ALCH=0.0 +! +!PAN6/WC_HCHO=0.0 +! +!PAN6/WC_ALD2=0.0 +! +!PAN6/WC_GLY=0.0 +! +!PAN6/WC_MGLY=0.0 +! +!PAN6/WC_KETL=0.0 +! +!PAN6/WC_ORA1=0.0 +! +!PAN6/WC_ORA2=0.0 +! +!PAN6/WC_ACID=0.0 +! +!PAN6/WC_RP16=0.0 +! +!PAN6/WC_UR21=0.0 +! +!PAN6/WC_UR28=0.0 +! +!PAN6/WC_ACID2=0.0 +! +!PAN6/WC_ASO3=0.0 +! +!PAN6/WC_ASO4=0.0 +! +!PAN6/WC_ASO5=0.0 +! +!PAN6/WC_AHSO5=0.0 +! +!PAN6/WC_AHMS=0.0 +! +!PAN6/WR_O3=0.0 +! +!PAN6/WR_H2O2=0.0 +! +!PAN6/WR_NO=0.0 +! +!PAN6/WR_NO2=0.0 +! +!PAN6/WR_NO3=0.0 +! +!PAN6/WR_N2O5=0.0 +! +!PAN6/WR_HONO=0.0 +! +!PAN6/WR_HNO3=0.0 +! +!PAN6/WR_HNO4=0.0 +! +!PAN6/WR_NH3=0.0 +! +!PAN6/WR_OH=0.0 +! +!PAN6/WR_HO2=0.0 +! +!PAN6/WR_CO2=0.0 +! +!PAN6/WR_SO2=0.0 +! +!PAN6/WR_H2SO4=0.0 +! +!PAN6/WR_RO21=0.0 +! +!PAN6/WR_RO25=0.0 +! +!PAN6/WR_MEOH=0.0 +! +!PAN6/WR_ETOH=0.0 +! +!PAN6/WR_ALCH=0.0 +! +!PAN6/WR_HCHO=0.0 +! +!PAN6/WR_ALD2=0.0 +! +!PAN6/WR_GLY=0.0 +! +!PAN6/WR_MGLY=0.0 +! +!PAN6/WR_KETL=0.0 +! +!PAN6/WR_ORA1=0.0 +! +!PAN6/WR_ORA2=0.0 +! +!PAN6/WR_ACID=0.0 +! +!PAN6/WR_RP16=0.0 +! +!PAN6/WR_UR21=0.0 +! +!PAN6/WR_UR28=0.0 +! +!PAN6/WR_ACID2=0.0 +! +!PAN6/WR_ASO3=0.0 +! +!PAN6/WR_ASO4=0.0 +! +!PAN6/WR_ASO5=0.0 +! +!PAN6/WR_AHSO5=0.0 +! +!PAN6/WR_AHMS=0.0 +! +!PAN7/NO=0.0 +! +!PAN7/NO2=+K132*<RO255> + PJAC(:,82,2)=+TPK%K132(:)*TPK%RO255(:) +! +!PAN7/O3=0.0 +! +!PAN7/HONO=0.0 +! +!PAN7/HNO3=0.0 +! +!PAN7/HNO4=0.0 +! +!PAN7/N2O5=0.0 +! +!PAN7/NO3=0.0 +! +!PAN7/NH3=0.0 +! +!PAN7/HO2=0.0 +! +!PAN7/CO=0.0 +! +!PAN7/H2O2=0.0 +! +!PAN7/SO2=0.0 +! +!PAN7/H2SO4=0.0 +! +!PAN7/OH=0.0 +! +!PAN7/ETHE=0.0 +! +!PAN7/OLEL=0.0 +! +!PAN7/OLEH=0.0 +! +!PAN7/ALKL=0.0 +! +!PAN7/ALKM=0.0 +! +!PAN7/ALKH=0.0 +! +!PAN7/AROH=0.0 +! +!PAN7/AROL=0.0 +! +!PAN7/AROO=0.0 +! +!PAN7/ARAL=0.0 +! +!PAN7/ARAC=0.0 +! +!PAN7/PAH=0.0 +! +!PAN7/HCHO=0.0 +! +!PAN7/ALD2=0.0 +! +!PAN7/KETL=0.0 +! +!PAN7/KETH=0.0 +! +!PAN7/MEOH=0.0 +! +!PAN7/ETOH=0.0 +! +!PAN7/ALCH=0.0 +! +!PAN7/ISOP=0.0 +! +!PAN7/BIOL=0.0 +! +!PAN7/BIOH=0.0 +! +!PAN7/MTBE=0.0 +! +!PAN7/MVK=0.0 +! +!PAN7/MCR=0.0 +! +!PAN7/MGLY=0.0 +! +!PAN7/GLY=0.0 +! +!PAN7/ORA1=0.0 +! +!PAN7/ORA2=0.0 +! +!PAN7/ACID=0.0 +! +!PAN7/UR28=0.0 +! +!PAN7/UR21=0.0 +! +!PAN7/URG2=0.0 +! +!PAN7/UR26=0.0 +! +!PAN7/RPG2=0.0 +! +!PAN7/RP18=0.0 +! +!PAN7/RPG3=0.0 +! +!PAN7/URG4=0.0 +! +!PAN7/UR8=0.0 +! +!PAN7/UR17=0.0 +! +!PAN7/UR7=0.0 +! +!PAN7/RPR3=0.0 +! +!PAN7/URG6=0.0 +! +!PAN7/UR22=0.0 +! +!PAN7/URG7=0.0 +! +!PAN7/RPR4=0.0 +! +!PAN7/RPR7=0.0 +! +!PAN7/RPG7=0.0 +! +!PAN7/URG8=0.0 +! +!PAN7/UR19=0.0 +! +!PAN7/URG9=0.0 +! +!PAN7/AP7=0.0 +! +!PAN7/URG10=0.0 +! +!PAN7/RPR1=0.0 +! +!PAN7/RPR5=0.0 +! +!PAN7/RPR8=0.0 +! +!PAN7/RP10=0.0 +! +!PAN7/RP11=0.0 +! +!PAN7/RP16=0.0 +! +!PAN7/RPRL=0.0 +! +!PAN7/APAN=0.0 +! +!PAN7/PAN1=0.0 +! +!PAN7/PAN2=0.0 +! +!PAN7/PAN3=0.0 +! +!PAN7/PAN4=0.0 +! +!PAN7/PAN6=0.0 +! +!PAN7/PAN7=-K343 + PJAC(:,82,82)=-TPK%K343(:) +! +!PAN7/PAN8=0.0 +! +!PAN7/PN10=0.0 +! +!PAN7/RO2T=0.0 +! +!PAN7/RO21=0.0 +! +!PAN7/RO25=0.0 +! +!PAN7/WC_O3=0.0 +! +!PAN7/WC_H2O2=0.0 +! +!PAN7/WC_NO=0.0 +! +!PAN7/WC_NO2=0.0 +! +!PAN7/WC_NO3=0.0 +! +!PAN7/WC_N2O5=0.0 +! +!PAN7/WC_HONO=0.0 +! +!PAN7/WC_HNO3=0.0 +! +!PAN7/WC_HNO4=0.0 +! +!PAN7/WC_NH3=0.0 +! +!PAN7/WC_OH=0.0 +! +!PAN7/WC_HO2=0.0 +! +!PAN7/WC_CO2=0.0 +! +!PAN7/WC_SO2=0.0 +! +!PAN7/WC_H2SO4=0.0 +! +!PAN7/WC_RO21=0.0 +! +!PAN7/WC_RO25=0.0 +! +!PAN7/WC_MEOH=0.0 +! +!PAN7/WC_ETOH=0.0 +! +!PAN7/WC_ALCH=0.0 +! +!PAN7/WC_HCHO=0.0 +! +!PAN7/WC_ALD2=0.0 +! +!PAN7/WC_GLY=0.0 +! +!PAN7/WC_MGLY=0.0 +! +!PAN7/WC_KETL=0.0 +! +!PAN7/WC_ORA1=0.0 +! +!PAN7/WC_ORA2=0.0 +! +!PAN7/WC_ACID=0.0 +! +!PAN7/WC_RP16=0.0 +! +!PAN7/WC_UR21=0.0 +! +!PAN7/WC_UR28=0.0 +! +!PAN7/WC_ACID2=0.0 +! +!PAN7/WC_ASO3=0.0 +! +!PAN7/WC_ASO4=0.0 +! +!PAN7/WC_ASO5=0.0 +! +!PAN7/WC_AHSO5=0.0 +! +!PAN7/WC_AHMS=0.0 +! +!PAN7/WR_O3=0.0 +! +!PAN7/WR_H2O2=0.0 +! +!PAN7/WR_NO=0.0 +! +!PAN7/WR_NO2=0.0 +! +!PAN7/WR_NO3=0.0 +! +!PAN7/WR_N2O5=0.0 +! +!PAN7/WR_HONO=0.0 +! +!PAN7/WR_HNO3=0.0 +! +!PAN7/WR_HNO4=0.0 +! +!PAN7/WR_NH3=0.0 +! +!PAN7/WR_OH=0.0 +! +!PAN7/WR_HO2=0.0 +! +!PAN7/WR_CO2=0.0 +! +!PAN7/WR_SO2=0.0 +! +!PAN7/WR_H2SO4=0.0 +! +!PAN7/WR_RO21=0.0 +! +!PAN7/WR_RO25=0.0 +! +!PAN7/WR_MEOH=0.0 +! +!PAN7/WR_ETOH=0.0 +! +!PAN7/WR_ALCH=0.0 +! +!PAN7/WR_HCHO=0.0 +! +!PAN7/WR_ALD2=0.0 +! +!PAN7/WR_GLY=0.0 +! +!PAN7/WR_MGLY=0.0 +! +!PAN7/WR_KETL=0.0 +! +!PAN7/WR_ORA1=0.0 +! +!PAN7/WR_ORA2=0.0 +! +!PAN7/WR_ACID=0.0 +! +!PAN7/WR_RP16=0.0 +! +!PAN7/WR_UR21=0.0 +! +!PAN7/WR_UR28=0.0 +! +!PAN7/WR_ACID2=0.0 +! +!PAN7/WR_ASO3=0.0 +! +!PAN7/WR_ASO4=0.0 +! +!PAN7/WR_ASO5=0.0 +! +!PAN7/WR_AHSO5=0.0 +! +!PAN7/WR_AHMS=0.0 +! +!PAN8/NO=0.0 +! +!PAN8/NO2=+K316*<RO256> + PJAC(:,83,2)=+TPK%K316(:)*TPK%RO256(:) +! +!PAN8/O3=0.0 +! +!PAN8/HONO=0.0 +! +!PAN8/HNO3=0.0 +! +!PAN8/HNO4=0.0 +! +!PAN8/N2O5=0.0 +! +!PAN8/NO3=0.0 +! +!PAN8/NH3=0.0 +! +!PAN8/HO2=0.0 +! +!PAN8/CO=0.0 +! +!PAN8/H2O2=0.0 +! +!PAN8/SO2=0.0 +! +!PAN8/H2SO4=0.0 +! +!PAN8/OH=0.0 +! +!PAN8/ETHE=0.0 +! +!PAN8/OLEL=0.0 +! +!PAN8/OLEH=0.0 +! +!PAN8/ALKL=0.0 +! +!PAN8/ALKM=0.0 +! +!PAN8/ALKH=0.0 +! +!PAN8/AROH=0.0 +! +!PAN8/AROL=0.0 +! +!PAN8/AROO=0.0 +! +!PAN8/ARAL=0.0 +! +!PAN8/ARAC=0.0 +! +!PAN8/PAH=0.0 +! +!PAN8/HCHO=0.0 +! +!PAN8/ALD2=0.0 +! +!PAN8/KETL=0.0 +! +!PAN8/KETH=0.0 +! +!PAN8/MEOH=0.0 +! +!PAN8/ETOH=0.0 +! +!PAN8/ALCH=0.0 +! +!PAN8/ISOP=0.0 +! +!PAN8/BIOL=0.0 +! +!PAN8/BIOH=0.0 +! +!PAN8/MTBE=0.0 +! +!PAN8/MVK=0.0 +! +!PAN8/MCR=0.0 +! +!PAN8/MGLY=0.0 +! +!PAN8/GLY=0.0 +! +!PAN8/ORA1=0.0 +! +!PAN8/ORA2=0.0 +! +!PAN8/ACID=0.0 +! +!PAN8/UR28=0.0 +! +!PAN8/UR21=0.0 +! +!PAN8/URG2=0.0 +! +!PAN8/UR26=0.0 +! +!PAN8/RPG2=0.0 +! +!PAN8/RP18=0.0 +! +!PAN8/RPG3=0.0 +! +!PAN8/URG4=0.0 +! +!PAN8/UR8=0.0 +! +!PAN8/UR17=0.0 +! +!PAN8/UR7=0.0 +! +!PAN8/RPR3=0.0 +! +!PAN8/URG6=0.0 +! +!PAN8/UR22=0.0 +! +!PAN8/URG7=0.0 +! +!PAN8/RPR4=0.0 +! +!PAN8/RPR7=0.0 +! +!PAN8/RPG7=0.0 +! +!PAN8/URG8=0.0 +! +!PAN8/UR19=0.0 +! +!PAN8/URG9=0.0 +! +!PAN8/AP7=0.0 +! +!PAN8/URG10=0.0 +! +!PAN8/RPR1=0.0 +! +!PAN8/RPR5=0.0 +! +!PAN8/RPR8=0.0 +! +!PAN8/RP10=0.0 +! +!PAN8/RP11=0.0 +! +!PAN8/RP16=0.0 +! +!PAN8/RPRL=0.0 +! +!PAN8/APAN=0.0 +! +!PAN8/PAN1=0.0 +! +!PAN8/PAN2=0.0 +! +!PAN8/PAN3=0.0 +! +!PAN8/PAN4=0.0 +! +!PAN8/PAN6=0.0 +! +!PAN8/PAN7=0.0 +! +!PAN8/PAN8=-K317 + PJAC(:,83,83)=-TPK%K317(:) +! +!PAN8/PN10=0.0 +! +!PAN8/RO2T=0.0 +! +!PAN8/RO21=0.0 +! +!PAN8/RO25=0.0 +! +!PAN8/WC_O3=0.0 +! +!PAN8/WC_H2O2=0.0 +! +!PAN8/WC_NO=0.0 +! +!PAN8/WC_NO2=0.0 +! +!PAN8/WC_NO3=0.0 +! +!PAN8/WC_N2O5=0.0 +! +!PAN8/WC_HONO=0.0 +! +!PAN8/WC_HNO3=0.0 +! +!PAN8/WC_HNO4=0.0 +! +!PAN8/WC_NH3=0.0 +! +!PAN8/WC_OH=0.0 +! +!PAN8/WC_HO2=0.0 +! +!PAN8/WC_CO2=0.0 +! +!PAN8/WC_SO2=0.0 +! +!PAN8/WC_H2SO4=0.0 +! +!PAN8/WC_RO21=0.0 +! +!PAN8/WC_RO25=0.0 +! +!PAN8/WC_MEOH=0.0 +! +!PAN8/WC_ETOH=0.0 +! +!PAN8/WC_ALCH=0.0 +! +!PAN8/WC_HCHO=0.0 +! +!PAN8/WC_ALD2=0.0 +! +!PAN8/WC_GLY=0.0 +! +!PAN8/WC_MGLY=0.0 +! +!PAN8/WC_KETL=0.0 +! +!PAN8/WC_ORA1=0.0 +! +!PAN8/WC_ORA2=0.0 +! +!PAN8/WC_ACID=0.0 +! +!PAN8/WC_RP16=0.0 +! +!PAN8/WC_UR21=0.0 +! +!PAN8/WC_UR28=0.0 +! +!PAN8/WC_ACID2=0.0 +! +!PAN8/WC_ASO3=0.0 +! +!PAN8/WC_ASO4=0.0 +! +!PAN8/WC_ASO5=0.0 +! +!PAN8/WC_AHSO5=0.0 +! +!PAN8/WC_AHMS=0.0 +! +!PAN8/WR_O3=0.0 +! +!PAN8/WR_H2O2=0.0 +! +!PAN8/WR_NO=0.0 +! +!PAN8/WR_NO2=0.0 +! +!PAN8/WR_NO3=0.0 +! +!PAN8/WR_N2O5=0.0 +! +!PAN8/WR_HONO=0.0 +! +!PAN8/WR_HNO3=0.0 +! +!PAN8/WR_HNO4=0.0 +! +!PAN8/WR_NH3=0.0 +! +!PAN8/WR_OH=0.0 +! +!PAN8/WR_HO2=0.0 +! +!PAN8/WR_CO2=0.0 +! +!PAN8/WR_SO2=0.0 +! +!PAN8/WR_H2SO4=0.0 +! +!PAN8/WR_RO21=0.0 +! +!PAN8/WR_RO25=0.0 +! +!PAN8/WR_MEOH=0.0 +! +!PAN8/WR_ETOH=0.0 +! +!PAN8/WR_ALCH=0.0 +! +!PAN8/WR_HCHO=0.0 +! +!PAN8/WR_ALD2=0.0 +! +!PAN8/WR_GLY=0.0 +! +!PAN8/WR_MGLY=0.0 +! +!PAN8/WR_KETL=0.0 +! +!PAN8/WR_ORA1=0.0 +! +!PAN8/WR_ORA2=0.0 +! +!PAN8/WR_ACID=0.0 +! +!PAN8/WR_RP16=0.0 +! +!PAN8/WR_UR21=0.0 +! +!PAN8/WR_UR28=0.0 +! +!PAN8/WR_ACID2=0.0 +! +!PAN8/WR_ASO3=0.0 +! +!PAN8/WR_ASO4=0.0 +! +!PAN8/WR_ASO5=0.0 +! +!PAN8/WR_AHSO5=0.0 +! +!PAN8/WR_AHMS=0.0 +! +!PN10/NO=0.0 +! +!PN10/NO2=+K134*<RO258> + PJAC(:,84,2)=+TPK%K134(:)*TPK%RO258(:) +! +!PN10/O3=0.0 +! +!PN10/HONO=0.0 +! +!PN10/HNO3=0.0 +! +!PN10/HNO4=0.0 +! +!PN10/N2O5=0.0 +! +!PN10/NO3=0.0 +! +!PN10/NH3=0.0 +! +!PN10/HO2=0.0 +! +!PN10/CO=0.0 +! +!PN10/H2O2=0.0 +! +!PN10/SO2=0.0 +! +!PN10/H2SO4=0.0 +! +!PN10/OH=0.0 +! +!PN10/ETHE=0.0 +! +!PN10/OLEL=0.0 +! +!PN10/OLEH=0.0 +! +!PN10/ALKL=0.0 +! +!PN10/ALKM=0.0 +! +!PN10/ALKH=0.0 +! +!PN10/AROH=0.0 +! +!PN10/AROL=0.0 +! +!PN10/AROO=0.0 +! +!PN10/ARAL=0.0 +! +!PN10/ARAC=0.0 +! +!PN10/PAH=0.0 +! +!PN10/HCHO=0.0 +! +!PN10/ALD2=0.0 +! +!PN10/KETL=0.0 +! +!PN10/KETH=0.0 +! +!PN10/MEOH=0.0 +! +!PN10/ETOH=0.0 +! +!PN10/ALCH=0.0 +! +!PN10/ISOP=0.0 +! +!PN10/BIOL=0.0 +! +!PN10/BIOH=0.0 +! +!PN10/MTBE=0.0 +! +!PN10/MVK=0.0 +! +!PN10/MCR=0.0 +! +!PN10/MGLY=0.0 +! +!PN10/GLY=0.0 +! +!PN10/ORA1=0.0 +! +!PN10/ORA2=0.0 +! +!PN10/ACID=0.0 +! +!PN10/UR28=0.0 +! +!PN10/UR21=0.0 +! +!PN10/URG2=0.0 +! +!PN10/UR26=0.0 +! +!PN10/RPG2=0.0 +! +!PN10/RP18=0.0 +! +!PN10/RPG3=0.0 +! +!PN10/URG4=0.0 +! +!PN10/UR8=0.0 +! +!PN10/UR17=0.0 +! +!PN10/UR7=0.0 +! +!PN10/RPR3=0.0 +! +!PN10/URG6=0.0 +! +!PN10/UR22=0.0 +! +!PN10/URG7=0.0 +! +!PN10/RPR4=0.0 +! +!PN10/RPR7=0.0 +! +!PN10/RPG7=0.0 +! +!PN10/URG8=0.0 +! +!PN10/UR19=0.0 +! +!PN10/URG9=0.0 +! +!PN10/AP7=0.0 +! +!PN10/URG10=0.0 +! +!PN10/RPR1=0.0 +! +!PN10/RPR5=0.0 +! +!PN10/RPR8=0.0 +! +!PN10/RP10=0.0 +! +!PN10/RP11=0.0 +! +!PN10/RP16=0.0 +! +!PN10/RPRL=0.0 +! +!PN10/APAN=0.0 +! +!PN10/PAN1=0.0 +! +!PN10/PAN2=0.0 +! +!PN10/PAN3=0.0 +! +!PN10/PAN4=0.0 +! +!PN10/PAN6=0.0 +! +!PN10/PAN7=0.0 +! +!PN10/PAN8=0.0 +! +!PN10/PN10=-K138 + PJAC(:,84,84)=-TPK%K138(:) +! +!PN10/RO2T=0.0 +! +!PN10/RO21=0.0 +! +!PN10/RO25=0.0 +! +!PN10/WC_O3=0.0 +! +!PN10/WC_H2O2=0.0 +! +!PN10/WC_NO=0.0 +! +!PN10/WC_NO2=0.0 +! +!PN10/WC_NO3=0.0 +! +!PN10/WC_N2O5=0.0 +! +!PN10/WC_HONO=0.0 +! +!PN10/WC_HNO3=0.0 +! +!PN10/WC_HNO4=0.0 +! +!PN10/WC_NH3=0.0 +! +!PN10/WC_OH=0.0 +! +!PN10/WC_HO2=0.0 +! +!PN10/WC_CO2=0.0 +! +!PN10/WC_SO2=0.0 +! +!PN10/WC_H2SO4=0.0 +! +!PN10/WC_RO21=0.0 +! +!PN10/WC_RO25=0.0 +! +!PN10/WC_MEOH=0.0 +! +!PN10/WC_ETOH=0.0 +! +!PN10/WC_ALCH=0.0 +! +!PN10/WC_HCHO=0.0 +! +!PN10/WC_ALD2=0.0 +! +!PN10/WC_GLY=0.0 +! +!PN10/WC_MGLY=0.0 +! +!PN10/WC_KETL=0.0 +! +!PN10/WC_ORA1=0.0 +! +!PN10/WC_ORA2=0.0 +! +!PN10/WC_ACID=0.0 +! +!PN10/WC_RP16=0.0 +! +!PN10/WC_UR21=0.0 +! +!PN10/WC_UR28=0.0 +! +!PN10/WC_ACID2=0.0 +! +!PN10/WC_ASO3=0.0 +! +!PN10/WC_ASO4=0.0 +! +!PN10/WC_ASO5=0.0 +! +!PN10/WC_AHSO5=0.0 +! +!PN10/WC_AHMS=0.0 +! +!PN10/WR_O3=0.0 +! +!PN10/WR_H2O2=0.0 +! +!PN10/WR_NO=0.0 +! +!PN10/WR_NO2=0.0 +! +!PN10/WR_NO3=0.0 +! +!PN10/WR_N2O5=0.0 +! +!PN10/WR_HONO=0.0 +! +!PN10/WR_HNO3=0.0 +! +!PN10/WR_HNO4=0.0 +! +!PN10/WR_NH3=0.0 +! +!PN10/WR_OH=0.0 +! +!PN10/WR_HO2=0.0 +! +!PN10/WR_CO2=0.0 +! +!PN10/WR_SO2=0.0 +! +!PN10/WR_H2SO4=0.0 +! +!PN10/WR_RO21=0.0 +! +!PN10/WR_RO25=0.0 +! +!PN10/WR_MEOH=0.0 +! +!PN10/WR_ETOH=0.0 +! +!PN10/WR_ALCH=0.0 +! +!PN10/WR_HCHO=0.0 +! +!PN10/WR_ALD2=0.0 +! +!PN10/WR_GLY=0.0 +! +!PN10/WR_MGLY=0.0 +! +!PN10/WR_KETL=0.0 +! +!PN10/WR_ORA1=0.0 +! +!PN10/WR_ORA2=0.0 +! +!PN10/WR_ACID=0.0 +! +!PN10/WR_RP16=0.0 +! +!PN10/WR_UR21=0.0 +! +!PN10/WR_UR28=0.0 +! +!PN10/WR_ACID2=0.0 +! +!PN10/WR_ASO3=0.0 +! +!PN10/WR_ASO4=0.0 +! +!PN10/WR_ASO5=0.0 +! +!PN10/WR_AHSO5=0.0 +! +!PN10/WR_AHMS=0.0 +! +!RO2T/NO=-K095*<RO2T>+K125*<RO26>+K144*<RO27>+K147*<RO28>+K162*<RO213>+K165*<RO +!239>+TPK%CF8*K168*<RO214>+K174*<RO216>+TPK%CF18*K186*<RO220>+K204*<RO226>+TPK% +!CF30*K213*<RO229>+K216*<RO240>+TPK%CF34*K224*<RO232>+K277*<RO248>+K288*<RO250> +!+K297*<RO253>+K309*<RO255>+K331*<RO257>+K344*<RO230> + PJAC(:,85,1)=-TPK%K095(:)*PCONC(:,85)+TPK%K125(:)*TPK%RO26(:)+TPK%K144(:)*TPK%& +&RO27(:)+TPK%K147(:)*TPK%RO28(:)+TPK%K162(:)*TPK%RO213(:)+TPK%K165(:)*TPK%RO239& +&(:)+TPK%CF8*TPK%K168(:)*TPK%RO214(:)+TPK%K174(:)*TPK%RO216(:)+TPK%CF18*TPK%K18& +&6(:)*TPK%RO220(:)+TPK%K204(:)*TPK%RO226(:)+TPK%CF30*TPK%K213(:)*TPK%RO229(:)+T& +&PK%K216(:)*TPK%RO240(:)+TPK%CF34*TPK%K224(:)*TPK%RO232(:)+TPK%K277(:)*TPK%RO24& +&8(:)+TPK%K288(:)*TPK%RO250(:)+TPK%K297(:)*TPK%RO253(:)+TPK%K309(:)*TPK%RO255(:& +&)+TPK%K331(:)*TPK%RO257(:)+TPK%K344(:)*TPK%RO230(:) +! +!RO2T/NO2=0.0 +! +!RO2T/O3=+0.28*K056*<OLEL>+0.366*K066*<ISOP>+0.28*K076*<OLEH>+0.445*K086*<BIOL> +!+0.89*K090*<BIOH>+0.28*K281*<MVK>+0.41*K282*<MCR> + PJAC(:,85,3)=+0.28*TPK%K056(:)*PCONC(:,17)+0.366*TPK%K066(:)*PCONC(:,35)+0.28*& +&TPK%K076(:)*PCONC(:,18)+0.445*TPK%K086(:)*PCONC(:,36)+0.89*TPK%K090(:)*PCONC(:& +&,37)+0.28*TPK%K281(:)*PCONC(:,39)+0.41*TPK%K282(:)*PCONC(:,40) +! +!RO2T/HONO=0.0 +! +!RO2T/HNO3=0.0 +! +!RO2T/HNO4=0.0 +! +!RO2T/N2O5=0.0 +! +!RO2T/NO3=+K050*<ETHE>+K055*<OLEL>+K061*<ALD2>+K065*<ISOP>+K075*<OLEH>+K085*<BI +!OL>+K089*<BIOH>+K275*<MCR>+K278*<MGLY>+K307*<RPR1>+K313*<RPR3>+K327*<RPR8>+K33 +!8*<RP16> + PJAC(:,85,8)=+TPK%K050(:)*PCONC(:,16)+TPK%K055(:)*PCONC(:,17)+TPK%K061(:)*PCON& +&C(:,29)+TPK%K065(:)*PCONC(:,35)+TPK%K075(:)*PCONC(:,18)+TPK%K085(:)*PCONC(:,36& +&)+TPK%K089(:)*PCONC(:,37)+TPK%K275(:)*PCONC(:,40)+TPK%K278(:)*PCONC(:,41)+TPK%& +&K307(:)*PCONC(:,69)+TPK%K313(:)*PCONC(:,57)+TPK%K327(:)*PCONC(:,71)+TPK%K338(:& +&)*PCONC(:,74) +! +!RO2T/NH3=0.0 +! +!RO2T/HO2=-K094*<RO2T>+K146*<RO27>+K164*<RO213>+K170*<RO214>+K176*<RO216>+K188* +!<RO220>+K206*<RO226>+K215*<RO229>+K218*<RO240>+K220*<RO230>+K226*<RO232>+K292* +!<RO251>+K295*<RO252>+2.*K298*<RO253> + PJAC(:,85,10)=-TPK%K094(:)*PCONC(:,85)+TPK%K146(:)*TPK%RO27(:)+TPK%K164(:)*TPK& +&%RO213(:)+TPK%K170(:)*TPK%RO214(:)+TPK%K176(:)*TPK%RO216(:)+TPK%K188(:)*TPK%RO& +&220(:)+TPK%K206(:)*TPK%RO226(:)+TPK%K215(:)*TPK%RO229(:)+TPK%K218(:)*TPK%RO240& +&(:)+TPK%K220(:)*TPK%RO230(:)+TPK%K226(:)*TPK%RO232(:)+TPK%K292(:)*TPK%RO251(:)& +&+TPK%K295(:)*TPK%RO252(:)+2.*TPK%K298(:)*TPK%RO253(:) +! +!RO2T/CO=0.0 +! +!RO2T/H2O2=0.0 +! +!RO2T/SO2=0.0 +! +!RO2T/H2SO4=0.0 +! +!RO2T/OH=+K043*<CH4>+K049*<ETHE>+TPK%CF2*K053*<ETOH>+K054*<OLEL>+K058*<ALKL>+K0 +!60*<ALD2>+K062*<KETL>+K064*<ISOP>+K068*<MTBE>+K069*<ALCH>+K070*<KETH>+0.1*K073 +!*<AROO>+K074*<OLEH>+K078*<ALKM>+0.06*K079*<AROL>+TPK%CF45*K082*<ARAL>+0.1*K083 +!*<ARAC>+K084*<BIOL>+K088*<BIOH>+0.1*K092*<PAH>+K093*<ALKH>+K272*<MVK>+K273*<MC +!R>+K274*<MGLY>+K304*<RPR1>+K305*<RP16>+K312*<RPR3>+K324*<RPR8> + PJAC(:,85,15)=+TPK%K043(:)*TPK%CH4(:)+TPK%K049(:)*PCONC(:,16)+TPK%CF2*TPK%K053& +&(:)*PCONC(:,33)+TPK%K054(:)*PCONC(:,17)+TPK%K058(:)*PCONC(:,19)+TPK%K060(:)*PC& +&ONC(:,29)+TPK%K062(:)*PCONC(:,30)+TPK%K064(:)*PCONC(:,35)+TPK%K068(:)*PCONC(:,& +&38)+TPK%K069(:)*PCONC(:,34)+TPK%K070(:)*PCONC(:,31)+0.1*TPK%K073(:)*PCONC(:,24& +&)+TPK%K074(:)*PCONC(:,18)+TPK%K078(:)*PCONC(:,20)+0.06*TPK%K079(:)*PCONC(:,23)& +&+TPK%CF45*TPK%K082(:)*PCONC(:,25)+0.1*TPK%K083(:)*PCONC(:,26)+TPK%K084(:)*PCON& +&C(:,36)+TPK%K088(:)*PCONC(:,37)+0.1*TPK%K092(:)*PCONC(:,27)+TPK%K093(:)*PCONC(& +&:,21)+TPK%K272(:)*PCONC(:,39)+TPK%K273(:)*PCONC(:,40)+TPK%K274(:)*PCONC(:,41)+& +&TPK%K304(:)*PCONC(:,69)+TPK%K305(:)*PCONC(:,74)+TPK%K312(:)*PCONC(:,57)+TPK%K3& +&24(:)*PCONC(:,71) +! +!RO2T/ETHE=+K049*<OH>+K050*<NO3>+K052*<O> + PJAC(:,85,16)=+TPK%K049(:)*PCONC(:,15)+TPK%K050(:)*PCONC(:,8)+TPK%K052(:)*TPK%& +&O(:) +! +!RO2T/OLEL=+K054*<OH>+K055*<NO3>+0.28*K056*<O3>+0.2*K057*<O> + PJAC(:,85,17)=+TPK%K054(:)*PCONC(:,15)+TPK%K055(:)*PCONC(:,8)+0.28*TPK%K056(:)& +&*PCONC(:,3)+0.2*TPK%K057(:)*TPK%O(:) +! +!RO2T/OLEH=+K074*<OH>+K075*<NO3>+0.28*K076*<O3>+0.2*K077*<O> + PJAC(:,85,18)=+TPK%K074(:)*PCONC(:,15)+TPK%K075(:)*PCONC(:,8)+0.28*TPK%K076(:)& +&*PCONC(:,3)+0.2*TPK%K077(:)*TPK%O(:) +! +!RO2T/ALKL=+K058*<OH> + PJAC(:,85,19)=+TPK%K058(:)*PCONC(:,15) +! +!RO2T/ALKM=+K078*<OH> + PJAC(:,85,20)=+TPK%K078(:)*PCONC(:,15) +! +!RO2T/ALKH=+K093*<OH> + PJAC(:,85,21)=+TPK%K093(:)*PCONC(:,15) +! +!RO2T/AROH=0.0 +! +!RO2T/AROL=+0.06*K079*<OH> + PJAC(:,85,23)=+0.06*TPK%K079(:)*PCONC(:,15) +! +!RO2T/AROO=+0.1*K073*<OH> + PJAC(:,85,24)=+0.1*TPK%K073(:)*PCONC(:,15) +! +!RO2T/ARAL=+TPK%CF45*K082*<OH> + PJAC(:,85,25)=+TPK%CF45*TPK%K082(:)*PCONC(:,15) +! +!RO2T/ARAC=+0.1*K083*<OH> + PJAC(:,85,26)=+0.1*TPK%K083(:)*PCONC(:,15) +! +!RO2T/PAH=+0.1*K092*<OH> + PJAC(:,85,27)=+0.1*TPK%K092(:)*PCONC(:,15) +! +!RO2T/HCHO=0.0 +! +!RO2T/ALD2=+K059+K060*<OH>+K061*<NO3> + PJAC(:,85,29)=+TPK%K059(:)+TPK%K060(:)*PCONC(:,15)+TPK%K061(:)*PCONC(:,8) +! +!RO2T/KETL=+K062*<OH>+2.*K063 + PJAC(:,85,30)=+TPK%K062(:)*PCONC(:,15)+2.*TPK%K063(:) +! +!RO2T/KETH=+K070*<OH>+2.*K071 + PJAC(:,85,31)=+TPK%K070(:)*PCONC(:,15)+2.*TPK%K071(:) +! +!RO2T/MEOH=0.0 +! +!RO2T/ETOH=+TPK%CF2*K053*<OH> + PJAC(:,85,33)=+TPK%CF2*TPK%K053(:)*PCONC(:,15) +! +!RO2T/ALCH=+K069*<OH> + PJAC(:,85,34)=+TPK%K069(:)*PCONC(:,15) +! +!RO2T/ISOP=+K064*<OH>+K065*<NO3>+0.366*K066*<O3> + PJAC(:,85,35)=+TPK%K064(:)*PCONC(:,15)+TPK%K065(:)*PCONC(:,8)+0.366*TPK%K066(:& +&)*PCONC(:,3) +! +!RO2T/BIOL=+K084*<OH>+K085*<NO3>+0.445*K086*<O3> + PJAC(:,85,36)=+TPK%K084(:)*PCONC(:,15)+TPK%K085(:)*PCONC(:,8)+0.445*TPK%K086(:& +&)*PCONC(:,3) +! +!RO2T/BIOH=+K088*<OH>+K089*<NO3>+0.89*K090*<O3> + PJAC(:,85,37)=+TPK%K088(:)*PCONC(:,15)+TPK%K089(:)*PCONC(:,8)+0.89*TPK%K090(:)& +&*PCONC(:,3) +! +!RO2T/MTBE=+K068*<OH> + PJAC(:,85,38)=+TPK%K068(:)*PCONC(:,15) +! +!RO2T/MVK=+K272*<OH>+0.28*K281*<O3>+0.3*K283*<O> + PJAC(:,85,39)=+TPK%K272(:)*PCONC(:,15)+0.28*TPK%K281(:)*PCONC(:,3)+0.3*TPK%K28& +&3(:)*TPK%O(:) +! +!RO2T/MCR=+K273*<OH>+K275*<NO3>+0.41*K282*<O3>+0.15*K284*<O> + PJAC(:,85,40)=+TPK%K273(:)*PCONC(:,15)+TPK%K275(:)*PCONC(:,8)+0.41*TPK%K282(:)& +&*PCONC(:,3)+0.15*TPK%K284(:)*TPK%O(:) +! +!RO2T/MGLY=+K274*<OH>+K276+K278*<NO3> + PJAC(:,85,41)=+TPK%K274(:)*PCONC(:,15)+TPK%K276(:)+TPK%K278(:)*PCONC(:,8) +! +!RO2T/GLY=0.0 +! +!RO2T/ORA1=0.0 +! +!RO2T/ORA2=0.0 +! +!RO2T/ACID=0.0 +! +!RO2T/UR28=0.0 +! +!RO2T/UR21=0.0 +! +!RO2T/URG2=0.0 +! +!RO2T/UR26=0.0 +! +!RO2T/RPG2=0.0 +! +!RO2T/RP18=0.0 +! +!RO2T/RPG3=0.0 +! +!RO2T/URG4=0.0 +! +!RO2T/UR8=0.0 +! +!RO2T/UR17=0.0 +! +!RO2T/UR7=0.0 +! +!RO2T/RPR3=+K312*<OH>+K313*<NO3> + PJAC(:,85,57)=+TPK%K312(:)*PCONC(:,15)+TPK%K313(:)*PCONC(:,8) +! +!RO2T/URG6=0.0 +! +!RO2T/UR22=0.0 +! +!RO2T/URG7=0.0 +! +!RO2T/RPR4=0.0 +! +!RO2T/RPR7=0.0 +! +!RO2T/RPG7=0.0 +! +!RO2T/URG8=0.0 +! +!RO2T/UR19=0.0 +! +!RO2T/URG9=0.0 +! +!RO2T/AP7=0.0 +! +!RO2T/URG10=0.0 +! +!RO2T/RPR1=+K304*<OH>+K307*<NO3>+K308 + PJAC(:,85,69)=+TPK%K304(:)*PCONC(:,15)+TPK%K307(:)*PCONC(:,8)+TPK%K308(:) +! +!RO2T/RPR5=0.0 +! +!RO2T/RPR8=+K324*<OH>+K327*<NO3>+K329+K330 + PJAC(:,85,71)=+TPK%K324(:)*PCONC(:,15)+TPK%K327(:)*PCONC(:,8)+TPK%K329(:)+TPK%& +&K330(:) +! +!RO2T/RP10=0.0 +! +!RO2T/RP11=0.0 +! +!RO2T/RP16=+K305*<OH>+K338*<NO3> + PJAC(:,85,74)=+TPK%K305(:)*PCONC(:,15)+TPK%K338(:)*PCONC(:,8) +! +!RO2T/RPRL=0.0 +! +!RO2T/APAN=+1.0000000*K139 + PJAC(:,85,76)=+1.0000000*TPK%K139(:) +! +!RO2T/PAN1=+K135 + PJAC(:,85,77)=+TPK%K135(:) +! +!RO2T/PAN2=+K136 + PJAC(:,85,78)=+TPK%K136(:) +! +!RO2T/PAN3=+K137 + PJAC(:,85,79)=+TPK%K137(:) +! +!RO2T/PAN4=+K141 + PJAC(:,85,80)=+TPK%K141(:) +! +!RO2T/PAN6=+K140 + PJAC(:,85,81)=+TPK%K140(:) +! +!RO2T/PAN7=+K343 + PJAC(:,85,82)=+TPK%K343(:) +! +!RO2T/PAN8=+K317 + PJAC(:,85,83)=+TPK%K317(:) +! +!RO2T/PN10=+K138 + PJAC(:,85,84)=+TPK%K138(:) +! +!RO2T/RO2T=-K094*<HO2>-K095*<NO>+K096*<RO2T>+K096*<RO2T>-K096*<RO2T>-K096*<RO2T +!>-K096*<RO2T>-K096*<RO2T>+K111*<RO21>-K111*<RO21>+K114*<RO22>-K114*<RO22>+K117 +!*<RO23>-K117*<RO23>+K120*<RO24>-K120*<RO24>+K123*<RO25>-K123*<RO25>+2.*K143*<R +!O26>-K143*<RO26>+2.*K145*<RO27>-K145*<RO27>+2.*K149*<RO28>-K149*<RO28>+K151*<R +!O29>-K151*<RO29>+K154*<RO210>-K154*<RO210>+K157*<RO211>-K157*<RO211>+K160*<RO2 +!12>-K160*<RO212>+2.*K163*<RO213>-K163*<RO213>+2.*K167*<RO239>-K167*<RO239>+2.* +!K169*<RO214>-K169*<RO214>+K172*<RO215>-K172*<RO215>+2.*K175*<RO216>-K175*<RO21 +!6>+K178*<RO217>-K178*<RO217>+K181*<RO218>-K181*<RO218>+K184*<RO219>-K184*<RO21 +!9>+2.*K187*<RO220>-K187*<RO220>+K190*<RO221>-K190*<RO221>+K193*<RO222>-K193*<R +!O222>+K196*<RO223>-K196*<RO223>+K199*<RO224>-K199*<RO224>+K202*<RO225>-K202*<R +!O225>+2.*K205*<RO226>-K205*<RO226>+K208*<RO227>-K208*<RO227>+K211*<RO228>-K211 +!*<RO228>+2.*K214*<RO229>-K214*<RO229>+2.*K217*<RO240>-K217*<RO240>+2.*K219*<RO +!230>-K219*<RO230>+K222*<RO231>-K222*<RO231>+2.*K225*<RO232>-K225*<RO232>+K228* +!<RO241>-K228*<RO241>+K232*<RO233>-K232*<RO233>+K235*<RO242>-K235*<RO242>+K239* +!<RO234>-K239*<RO234>+K242*<RO243>-K242*<RO243>+K246*<RO235>-K246*<RO235>+K249* +!<RO244>-K249*<RO244>+K253*<RO236>-K253*<RO236>+K256*<RO245>-K256*<RO245>+K260* +!<RO237>-K260*<RO237>+K263*<RO246>-K263*<RO246>+K267*<RO238>-K267*<RO238>+K270* +!<RO247>-K270*<RO247>+2.*K280*<RO248>-K280*<RO248>+K286*<RO249>-K286*<RO249>+2. +!*K290*<RO250>-K290*<RO250>-K293*<RO251>-K296*<RO252>+K299*<RO253>-K299*<RO253> +!+K302*<RO254>-K302*<RO254>+2.*K311*<RO255>-K311*<RO255>+K319*<RO256>-K319*<RO2 +!56>+2.*K333*<RO257>-K333*<RO257>+K342*<RO258>-K342*<RO258> + PJAC(:,85,85)=-TPK%K094(:)*PCONC(:,10)-TPK%K095(:)*PCONC(:,1)+TPK%K096(:)*PCON& +&C(:,85)+TPK%K096(:)*PCONC(:,85)-TPK%K096(:)*PCONC(:,85)-TPK%K096(:)*PCONC(:,85& +&)-TPK%K096(:)*PCONC(:,85)-TPK%K096(:)*PCONC(:,85)+TPK%K111(:)*PCONC(:,86)-TPK%& +&K111(:)*PCONC(:,86)+TPK%K114(:)*TPK%RO22(:)-TPK%K114(:)*TPK%RO22(:)+TPK%K117(:& +&)*TPK%RO23(:)-TPK%K117(:)*TPK%RO23(:)+TPK%K120(:)*TPK%RO24(:)-TPK%K120(:)*TPK%& +&RO24(:)+TPK%K123(:)*PCONC(:,87)-TPK%K123(:)*PCONC(:,87)+2.*TPK%K143(:)*TPK%RO2& +&6(:)-TPK%K143(:)*TPK%RO26(:)+2.*TPK%K145(:)*TPK%RO27(:)-TPK%K145(:)*TPK%RO27(:& +&)+2.*TPK%K149(:)*TPK%RO28(:)-TPK%K149(:)*TPK%RO28(:)+TPK%K151(:)*TPK%RO29(:)-T& +&PK%K151(:)*TPK%RO29(:)+TPK%K154(:)*TPK%RO210(:)-TPK%K154(:)*TPK%RO210(:)+TPK%K& +&157(:)*TPK%RO211(:)-TPK%K157(:)*TPK%RO211(:)+TPK%K160(:)*TPK%RO212(:)-TPK%K160& +&(:)*TPK%RO212(:)+2.*TPK%K163(:)*TPK%RO213(:)-TPK%K163(:)*TPK%RO213(:)+2.*TPK%K& +&167(:)*TPK%RO239(:)-TPK%K167(:)*TPK%RO239(:)+2.*TPK%K169(:)*TPK%RO214(:)-TPK%K& +&169(:)*TPK%RO214(:)+TPK%K172(:)*TPK%RO215(:)-TPK%K172(:)*TPK%RO215(:)+2.*TPK%K& +&175(:)*TPK%RO216(:)-TPK%K175(:)*TPK%RO216(:)+TPK%K178(:)*TPK%RO217(:)-TPK%K178& +&(:)*TPK%RO217(:)+TPK%K181(:)*TPK%RO218(:)-TPK%K181(:)*TPK%RO218(:)+TPK%K184(:)& +&*TPK%RO219(:)-TPK%K184(:)*TPK%RO219(:)+2.*TPK%K187(:)*TPK%RO220(:)-TPK%K187(:)& +&*TPK%RO220(:)+TPK%K190(:)*TPK%RO221(:)-TPK%K190(:)*TPK%RO221(:)+TPK%K193(:)*TP& +&K%RO222(:)-TPK%K193(:)*TPK%RO222(:)+TPK%K196(:)*TPK%RO223(:)-TPK%K196(:)*TPK%R& +&O223(:)+TPK%K199(:)*TPK%RO224(:)-TPK%K199(:)*TPK%RO224(:)+TPK%K202(:)*TPK%RO22& +&5(:)-TPK%K202(:)*TPK%RO225(:)+2.*TPK%K205(:)*TPK%RO226(:)-TPK%K205(:)*TPK%RO22& +&6(:)+TPK%K208(:)*TPK%RO227(:)-TPK%K208(:)*TPK%RO227(:)+TPK%K211(:)*TPK%RO228(:& +&)-TPK%K211(:)*TPK%RO228(:)+2.*TPK%K214(:)*TPK%RO229(:)-TPK%K214(:)*TPK%RO229(:& +&)+2.*TPK%K217(:)*TPK%RO240(:)-TPK%K217(:)*TPK%RO240(:)+2.*TPK%K219(:)*TPK%RO23& +&0(:)-TPK%K219(:)*TPK%RO230(:)+TPK%K222(:)*TPK%RO231(:)-TPK%K222(:)*TPK%RO231(:& +&)+2.*TPK%K225(:)*TPK%RO232(:)-TPK%K225(:)*TPK%RO232(:)+TPK%K228(:)*TPK%RO241(:& +&)-TPK%K228(:)*TPK%RO241(:)+TPK%K232(:)*TPK%RO233(:)-TPK%K232(:)*TPK%RO233(:)+T& +&PK%K235(:)*TPK%RO242(:)-TPK%K235(:)*TPK%RO242(:)+TPK%K239(:)*TPK%RO234(:)-TPK%& +&K239(:)*TPK%RO234(:)+TPK%K242(:)*TPK%RO243(:)-TPK%K242(:)*TPK%RO243(:)+TPK%K24& +&6(:)*TPK%RO235(:)-TPK%K246(:)*TPK%RO235(:)+TPK%K249(:)*TPK%RO244(:)-TPK%K249(:& +&)*TPK%RO244(:)+TPK%K253(:)*TPK%RO236(:)-TPK%K253(:)*TPK%RO236(:)+TPK%K256(:)*T& +&PK%RO245(:)-TPK%K256(:)*TPK%RO245(:)+TPK%K260(:)*TPK%RO237(:)-TPK%K260(:)*TPK%& +&RO237(:)+TPK%K263(:)*TPK%RO246(:)-TPK%K263(:)*TPK%RO246(:)+TPK%K267(:)*TPK%RO2& +&38(:)-TPK%K267(:)*TPK%RO238(:)+TPK%K270(:)*TPK%RO247(:)-TPK%K270(:)*TPK%RO247(& +&:)+2.*TPK%K280(:)*TPK%RO248(:)-TPK%K280(:)*TPK%RO248(:)+TPK%K286(:)*TPK%RO249(& +&:)-TPK%K286(:)*TPK%RO249(:)+2.*TPK%K290(:)*TPK%RO250(:)-TPK%K290(:)*TPK%RO250(& +&:)-TPK%K293(:)*TPK%RO251(:)-TPK%K296(:)*TPK%RO252(:)+TPK%K299(:)*TPK%RO253(:)-& +&TPK%K299(:)*TPK%RO253(:)+TPK%K302(:)*TPK%RO254(:)-TPK%K302(:)*TPK%RO254(:)+2.*& +&TPK%K311(:)*TPK%RO255(:)-TPK%K311(:)*TPK%RO255(:)+TPK%K319(:)*TPK%RO256(:)-TPK& +&%K319(:)*TPK%RO256(:)+2.*TPK%K333(:)*TPK%RO257(:)-TPK%K333(:)*TPK%RO257(:)+TPK& +&%K342(:)*TPK%RO258(:)-TPK%K342(:)*TPK%RO258(:) +! +!RO2T/RO21=+K111*<RO2T>-K111*<RO2T> + PJAC(:,85,86)=+TPK%K111(:)*PCONC(:,85)-TPK%K111(:)*PCONC(:,85) +! +!RO2T/RO25=+K123*<RO2T>-K123*<RO2T> + PJAC(:,85,87)=+TPK%K123(:)*PCONC(:,85)-TPK%K123(:)*PCONC(:,85) +! +!RO2T/WC_O3=0.0 +! +!RO2T/WC_H2O2=0.0 +! +!RO2T/WC_NO=0.0 +! +!RO2T/WC_NO2=0.0 +! +!RO2T/WC_NO3=0.0 +! +!RO2T/WC_N2O5=0.0 +! +!RO2T/WC_HONO=0.0 +! +!RO2T/WC_HNO3=0.0 +! +!RO2T/WC_HNO4=0.0 +! +!RO2T/WC_NH3=0.0 +! +!RO2T/WC_OH=0.0 +! +!RO2T/WC_HO2=0.0 +! +!RO2T/WC_CO2=0.0 +! +!RO2T/WC_SO2=0.0 +! +!RO2T/WC_H2SO4=0.0 +! +!RO2T/WC_RO21=0.0 +! +!RO2T/WC_RO25=0.0 +! +!RO2T/WC_MEOH=0.0 +! +!RO2T/WC_ETOH=0.0 +! +!RO2T/WC_ALCH=0.0 +! +!RO2T/WC_HCHO=0.0 +! +!RO2T/WC_ALD2=0.0 +! +!RO2T/WC_GLY=0.0 +! +!RO2T/WC_MGLY=0.0 +! +!RO2T/WC_KETL=0.0 +! +!RO2T/WC_ORA1=0.0 +! +!RO2T/WC_ORA2=0.0 +! +!RO2T/WC_ACID=0.0 +! +!RO2T/WC_RP16=0.0 +! +!RO2T/WC_UR21=0.0 +! +!RO2T/WC_UR28=0.0 +! +!RO2T/WC_ACID2=0.0 +! +!RO2T/WC_ASO3=0.0 +! +!RO2T/WC_ASO4=0.0 +! +!RO2T/WC_ASO5=0.0 +! +!RO2T/WC_AHSO5=0.0 +! +!RO2T/WC_AHMS=0.0 +! +!RO2T/WR_O3=0.0 +! +!RO2T/WR_H2O2=0.0 +! +!RO2T/WR_NO=0.0 +! +!RO2T/WR_NO2=0.0 +! +!RO2T/WR_NO3=0.0 +! +!RO2T/WR_N2O5=0.0 +! +!RO2T/WR_HONO=0.0 +! +!RO2T/WR_HNO3=0.0 +! +!RO2T/WR_HNO4=0.0 +! +!RO2T/WR_NH3=0.0 +! +!RO2T/WR_OH=0.0 +! +!RO2T/WR_HO2=0.0 +! +!RO2T/WR_CO2=0.0 +! +!RO2T/WR_SO2=0.0 +! +!RO2T/WR_H2SO4=0.0 +! +!RO2T/WR_RO21=0.0 +! +!RO2T/WR_RO25=0.0 +! +!RO2T/WR_MEOH=0.0 +! +!RO2T/WR_ETOH=0.0 +! +!RO2T/WR_ALCH=0.0 +! +!RO2T/WR_HCHO=0.0 +! +!RO2T/WR_ALD2=0.0 +! +!RO2T/WR_GLY=0.0 +! +!RO2T/WR_MGLY=0.0 +! +!RO2T/WR_KETL=0.0 +! +!RO2T/WR_ORA1=0.0 +! +!RO2T/WR_ORA2=0.0 +! +!RO2T/WR_ACID=0.0 +! +!RO2T/WR_RP16=0.0 +! +!RO2T/WR_UR21=0.0 +! +!RO2T/WR_UR28=0.0 +! +!RO2T/WR_ACID2=0.0 +! +!RO2T/WR_ASO3=0.0 +! +!RO2T/WR_ASO4=0.0 +! +!RO2T/WR_ASO5=0.0 +! +!RO2T/WR_AHSO5=0.0 +! +!RO2T/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ16 +! +SUBROUTINE SUBJ17 +! +!Indices 86 a 90 +! +! +!RO21/NO=-K110*<RO21>+K147*<RO28> + PJAC(:,86,1)=-TPK%K110(:)*PCONC(:,86)+TPK%K147(:)*TPK%RO28(:) +! +!RO21/NO2=0.0 +! +!RO21/O3=0.0 +! +!RO21/HONO=0.0 +! +!RO21/HNO3=0.0 +! +!RO21/HNO4=0.0 +! +!RO21/N2O5=0.0 +! +!RO21/NO3=0.0 +! +!RO21/NH3=0.0 +! +!RO21/HO2=-K112*<RO21> + PJAC(:,86,10)=-TPK%K112(:)*PCONC(:,86) +! +!RO21/CO=0.0 +! +!RO21/H2O2=0.0 +! +!RO21/SO2=0.0 +! +!RO21/H2SO4=0.0 +! +!RO21/OH=+K043*<CH4> + PJAC(:,86,15)=+TPK%K043(:)*TPK%CH4(:) +! +!RO21/ETHE=+0.6*K052*<O> + PJAC(:,86,16)=+0.6*TPK%K052(:)*TPK%O(:) +! +!RO21/OLEL=0.0 +! +!RO21/OLEH=0.0 +! +!RO21/ALKL=0.0 +! +!RO21/ALKM=0.0 +! +!RO21/ALKH=0.0 +! +!RO21/AROH=0.0 +! +!RO21/AROL=0.0 +! +!RO21/AROO=0.0 +! +!RO21/ARAL=0.0 +! +!RO21/ARAC=0.0 +! +!RO21/PAH=0.0 +! +!RO21/HCHO=0.0 +! +!RO21/ALD2=0.0 +! +!RO21/KETL=0.0 +! +!RO21/KETH=0.0 +! +!RO21/MEOH=0.0 +! +!RO21/ETOH=0.0 +! +!RO21/ALCH=0.0 +! +!RO21/ISOP=0.0 +! +!RO21/BIOL=0.0 +! +!RO21/BIOH=0.0 +! +!RO21/MTBE=0.0 +! +!RO21/MVK=0.0 +! +!RO21/MCR=0.0 +! +!RO21/MGLY=0.0 +! +!RO21/GLY=0.0 +! +!RO21/ORA1=0.0 +! +!RO21/ORA2=0.0 +! +!RO21/ACID=0.0 +! +!RO21/UR28=0.0 +! +!RO21/UR21=0.0 +! +!RO21/URG2=0.0 +! +!RO21/UR26=0.0 +! +!RO21/RPG2=0.0 +! +!RO21/RP18=0.0 +! +!RO21/RPG3=0.0 +! +!RO21/URG4=0.0 +! +!RO21/UR8=0.0 +! +!RO21/UR17=0.0 +! +!RO21/UR7=0.0 +! +!RO21/RPR3=0.0 +! +!RO21/URG6=0.0 +! +!RO21/UR22=0.0 +! +!RO21/URG7=0.0 +! +!RO21/RPR4=0.0 +! +!RO21/RPR7=0.0 +! +!RO21/RPG7=0.0 +! +!RO21/URG8=0.0 +! +!RO21/UR19=0.0 +! +!RO21/URG9=0.0 +! +!RO21/AP7=0.0 +! +!RO21/URG10=0.0 +! +!RO21/RPR1=0.0 +! +!RO21/RPR5=0.0 +! +!RO21/RPR8=0.0 +! +!RO21/RP10=0.0 +! +!RO21/RP11=0.0 +! +!RO21/RP16=0.0 +! +!RO21/RPRL=0.0 +! +!RO21/APAN=0.0 +! +!RO21/PAN1=0.0 +! +!RO21/PAN2=0.0 +! +!RO21/PAN3=0.0 +! +!RO21/PAN4=0.0 +! +!RO21/PAN6=0.0 +! +!RO21/PAN7=0.0 +! +!RO21/PAN8=0.0 +! +!RO21/PN10=0.0 +! +!RO21/RO2T=-K111*<RO21>+K149*<RO28> + PJAC(:,86,85)=-TPK%K111(:)*PCONC(:,86)+TPK%K149(:)*TPK%RO28(:) +! +!RO21/RO21=-K110*<NO>-K111*<RO2T>-K112*<HO2>-KTC16-KTR16 + PJAC(:,86,86)=-TPK%K110(:)*PCONC(:,1)-TPK%K111(:)*PCONC(:,85)-TPK%K112(:)*PCON& +&C(:,10)-TPK%KTC16(:)-TPK%KTR16(:) +! +!RO21/RO25=0.0 +! +!RO21/WC_O3=0.0 +! +!RO21/WC_H2O2=0.0 +! +!RO21/WC_NO=0.0 +! +!RO21/WC_NO2=0.0 +! +!RO21/WC_NO3=0.0 +! +!RO21/WC_N2O5=0.0 +! +!RO21/WC_HONO=0.0 +! +!RO21/WC_HNO3=0.0 +! +!RO21/WC_HNO4=0.0 +! +!RO21/WC_NH3=0.0 +! +!RO21/WC_OH=0.0 +! +!RO21/WC_HO2=0.0 +! +!RO21/WC_CO2=0.0 +! +!RO21/WC_SO2=0.0 +! +!RO21/WC_H2SO4=0.0 +! +!RO21/WC_RO21=+KTC47 + PJAC(:,86,103)=+TPK%KTC47(:) +! +!RO21/WC_RO25=0.0 +! +!RO21/WC_MEOH=0.0 +! +!RO21/WC_ETOH=0.0 +! +!RO21/WC_ALCH=0.0 +! +!RO21/WC_HCHO=0.0 +! +!RO21/WC_ALD2=0.0 +! +!RO21/WC_GLY=0.0 +! +!RO21/WC_MGLY=0.0 +! +!RO21/WC_KETL=0.0 +! +!RO21/WC_ORA1=0.0 +! +!RO21/WC_ORA2=0.0 +! +!RO21/WC_ACID=0.0 +! +!RO21/WC_RP16=0.0 +! +!RO21/WC_UR21=0.0 +! +!RO21/WC_UR28=0.0 +! +!RO21/WC_ACID2=0.0 +! +!RO21/WC_ASO3=0.0 +! +!RO21/WC_ASO4=0.0 +! +!RO21/WC_ASO5=0.0 +! +!RO21/WC_AHSO5=0.0 +! +!RO21/WC_AHMS=0.0 +! +!RO21/WR_O3=0.0 +! +!RO21/WR_H2O2=0.0 +! +!RO21/WR_NO=0.0 +! +!RO21/WR_NO2=0.0 +! +!RO21/WR_NO3=0.0 +! +!RO21/WR_N2O5=0.0 +! +!RO21/WR_HONO=0.0 +! +!RO21/WR_HNO3=0.0 +! +!RO21/WR_HNO4=0.0 +! +!RO21/WR_NH3=0.0 +! +!RO21/WR_OH=0.0 +! +!RO21/WR_HO2=0.0 +! +!RO21/WR_CO2=0.0 +! +!RO21/WR_SO2=0.0 +! +!RO21/WR_H2SO4=0.0 +! +!RO21/WR_RO21=+KTR47 + PJAC(:,86,140)=+TPK%KTR47(:) +! +!RO21/WR_RO25=0.0 +! +!RO21/WR_MEOH=0.0 +! +!RO21/WR_ETOH=0.0 +! +!RO21/WR_ALCH=0.0 +! +!RO21/WR_HCHO=0.0 +! +!RO21/WR_ALD2=0.0 +! +!RO21/WR_GLY=0.0 +! +!RO21/WR_MGLY=0.0 +! +!RO21/WR_KETL=0.0 +! +!RO21/WR_ORA1=0.0 +! +!RO21/WR_ORA2=0.0 +! +!RO21/WR_ACID=0.0 +! +!RO21/WR_RP16=0.0 +! +!RO21/WR_UR21=0.0 +! +!RO21/WR_UR28=0.0 +! +!RO21/WR_ACID2=0.0 +! +!RO21/WR_ASO3=0.0 +! +!RO21/WR_ASO4=0.0 +! +!RO21/WR_ASO5=0.0 +! +!RO21/WR_AHSO5=0.0 +! +!RO21/WR_AHMS=0.0 +! +!RO25/NO=-K122*<RO25>+K125*<RO26> + PJAC(:,87,1)=-TPK%K122(:)*PCONC(:,87)+TPK%K125(:)*TPK%RO26(:) +! +!RO25/NO2=0.0 +! +!RO25/O3=+0.28*K056*<OLEL> + PJAC(:,87,3)=+0.28*TPK%K056(:)*PCONC(:,17) +! +!RO25/HONO=0.0 +! +!RO25/HNO3=0.0 +! +!RO25/HNO4=0.0 +! +!RO25/N2O5=0.0 +! +!RO25/NO3=0.0 +! +!RO25/NH3=0.0 +! +!RO25/HO2=-K124*<RO25> + PJAC(:,87,10)=-TPK%K124(:)*PCONC(:,87) +! +!RO25/CO=0.0 +! +!RO25/H2O2=0.0 +! +!RO25/SO2=0.0 +! +!RO25/H2SO4=0.0 +! +!RO25/OH=+K058*<ALKL> + PJAC(:,87,15)=+TPK%K058(:)*PCONC(:,19) +! +!RO25/ETHE=0.0 +! +!RO25/OLEL=+0.28*K056*<O3>+0.1*K057*<O> + PJAC(:,87,17)=+0.28*TPK%K056(:)*PCONC(:,3)+0.1*TPK%K057(:)*TPK%O(:) +! +!RO25/OLEH=0.0 +! +!RO25/ALKL=+K058*<OH> + PJAC(:,87,19)=+TPK%K058(:)*PCONC(:,15) +! +!RO25/ALKM=0.0 +! +!RO25/ALKH=0.0 +! +!RO25/AROH=0.0 +! +!RO25/AROL=0.0 +! +!RO25/AROO=0.0 +! +!RO25/ARAL=0.0 +! +!RO25/ARAC=0.0 +! +!RO25/PAH=0.0 +! +!RO25/HCHO=0.0 +! +!RO25/ALD2=+K059 + PJAC(:,87,29)=+TPK%K059(:) +! +!RO25/KETL=+K063 + PJAC(:,87,30)=+TPK%K063(:) +! +!RO25/KETH=+K071 + PJAC(:,87,31)=+TPK%K071(:) +! +!RO25/MEOH=0.0 +! +!RO25/ETOH=0.0 +! +!RO25/ALCH=0.0 +! +!RO25/ISOP=0.0 +! +!RO25/BIOL=0.0 +! +!RO25/BIOH=0.0 +! +!RO25/MTBE=0.0 +! +!RO25/MVK=0.0 +! +!RO25/MCR=0.0 +! +!RO25/MGLY=0.0 +! +!RO25/GLY=0.0 +! +!RO25/ORA1=0.0 +! +!RO25/ORA2=0.0 +! +!RO25/ACID=0.0 +! +!RO25/UR28=0.0 +! +!RO25/UR21=0.0 +! +!RO25/URG2=0.0 +! +!RO25/UR26=0.0 +! +!RO25/RPG2=0.0 +! +!RO25/RP18=0.0 +! +!RO25/RPG3=0.0 +! +!RO25/URG4=0.0 +! +!RO25/UR8=0.0 +! +!RO25/UR17=0.0 +! +!RO25/UR7=0.0 +! +!RO25/RPR3=0.0 +! +!RO25/URG6=0.0 +! +!RO25/UR22=0.0 +! +!RO25/URG7=0.0 +! +!RO25/RPR4=0.0 +! +!RO25/RPR7=0.0 +! +!RO25/RPG7=0.0 +! +!RO25/URG8=0.0 +! +!RO25/UR19=0.0 +! +!RO25/URG9=0.0 +! +!RO25/AP7=0.0 +! +!RO25/URG10=0.0 +! +!RO25/RPR1=0.0 +! +!RO25/RPR5=0.0 +! +!RO25/RPR8=0.0 +! +!RO25/RP10=0.0 +! +!RO25/RP11=0.0 +! +!RO25/RP16=0.0 +! +!RO25/RPRL=0.0 +! +!RO25/APAN=0.0 +! +!RO25/PAN1=0.0 +! +!RO25/PAN2=0.0 +! +!RO25/PAN3=0.0 +! +!RO25/PAN4=0.0 +! +!RO25/PAN6=0.0 +! +!RO25/PAN7=0.0 +! +!RO25/PAN8=0.0 +! +!RO25/PN10=0.0 +! +!RO25/RO2T=-K123*<RO25>+K143*<RO26> + PJAC(:,87,85)=-TPK%K123(:)*PCONC(:,87)+TPK%K143(:)*TPK%RO26(:) +! +!RO25/RO21=0.0 +! +!RO25/RO25=-K122*<NO>-K123*<RO2T>-K124*<HO2>-KTC17-KTR17 + PJAC(:,87,87)=-TPK%K122(:)*PCONC(:,1)-TPK%K123(:)*PCONC(:,85)-TPK%K124(:)*PCON& +&C(:,10)-TPK%KTC17(:)-TPK%KTR17(:) +! +!RO25/WC_O3=0.0 +! +!RO25/WC_H2O2=0.0 +! +!RO25/WC_NO=0.0 +! +!RO25/WC_NO2=0.0 +! +!RO25/WC_NO3=0.0 +! +!RO25/WC_N2O5=0.0 +! +!RO25/WC_HONO=0.0 +! +!RO25/WC_HNO3=0.0 +! +!RO25/WC_HNO4=0.0 +! +!RO25/WC_NH3=0.0 +! +!RO25/WC_OH=0.0 +! +!RO25/WC_HO2=0.0 +! +!RO25/WC_CO2=0.0 +! +!RO25/WC_SO2=0.0 +! +!RO25/WC_H2SO4=0.0 +! +!RO25/WC_RO21=0.0 +! +!RO25/WC_RO25=+KTC48 + PJAC(:,87,104)=+TPK%KTC48(:) +! +!RO25/WC_MEOH=0.0 +! +!RO25/WC_ETOH=0.0 +! +!RO25/WC_ALCH=0.0 +! +!RO25/WC_HCHO=0.0 +! +!RO25/WC_ALD2=0.0 +! +!RO25/WC_GLY=0.0 +! +!RO25/WC_MGLY=0.0 +! +!RO25/WC_KETL=0.0 +! +!RO25/WC_ORA1=0.0 +! +!RO25/WC_ORA2=0.0 +! +!RO25/WC_ACID=0.0 +! +!RO25/WC_RP16=0.0 +! +!RO25/WC_UR21=0.0 +! +!RO25/WC_UR28=0.0 +! +!RO25/WC_ACID2=0.0 +! +!RO25/WC_ASO3=0.0 +! +!RO25/WC_ASO4=0.0 +! +!RO25/WC_ASO5=0.0 +! +!RO25/WC_AHSO5=0.0 +! +!RO25/WC_AHMS=0.0 +! +!RO25/WR_O3=0.0 +! +!RO25/WR_H2O2=0.0 +! +!RO25/WR_NO=0.0 +! +!RO25/WR_NO2=0.0 +! +!RO25/WR_NO3=0.0 +! +!RO25/WR_N2O5=0.0 +! +!RO25/WR_HONO=0.0 +! +!RO25/WR_HNO3=0.0 +! +!RO25/WR_HNO4=0.0 +! +!RO25/WR_NH3=0.0 +! +!RO25/WR_OH=0.0 +! +!RO25/WR_HO2=0.0 +! +!RO25/WR_CO2=0.0 +! +!RO25/WR_SO2=0.0 +! +!RO25/WR_H2SO4=0.0 +! +!RO25/WR_RO21=0.0 +! +!RO25/WR_RO25=+KTR48 + PJAC(:,87,141)=+TPK%KTR48(:) +! +!RO25/WR_MEOH=0.0 +! +!RO25/WR_ETOH=0.0 +! +!RO25/WR_ALCH=0.0 +! +!RO25/WR_HCHO=0.0 +! +!RO25/WR_ALD2=0.0 +! +!RO25/WR_GLY=0.0 +! +!RO25/WR_MGLY=0.0 +! +!RO25/WR_KETL=0.0 +! +!RO25/WR_ORA1=0.0 +! +!RO25/WR_ORA2=0.0 +! +!RO25/WR_ACID=0.0 +! +!RO25/WR_RP16=0.0 +! +!RO25/WR_UR21=0.0 +! +!RO25/WR_UR28=0.0 +! +!RO25/WR_ACID2=0.0 +! +!RO25/WR_ASO3=0.0 +! +!RO25/WR_ASO4=0.0 +! +!RO25/WR_ASO5=0.0 +! +!RO25/WR_AHSO5=0.0 +! +!RO25/WR_AHMS=0.0 +! +!WC_O3/NO=0.0 +! +!WC_O3/NO2=0.0 +! +!WC_O3/O3=+KTC1 + PJAC(:,88,3)=+TPK%KTC1(:) +! +!WC_O3/HONO=0.0 +! +!WC_O3/HNO3=0.0 +! +!WC_O3/HNO4=0.0 +! +!WC_O3/N2O5=0.0 +! +!WC_O3/NO3=0.0 +! +!WC_O3/NH3=0.0 +! +!WC_O3/HO2=0.0 +! +!WC_O3/CO=0.0 +! +!WC_O3/H2O2=0.0 +! +!WC_O3/SO2=0.0 +! +!WC_O3/H2SO4=0.0 +! +!WC_O3/OH=0.0 +! +!WC_O3/ETHE=0.0 +! +!WC_O3/OLEL=0.0 +! +!WC_O3/OLEH=0.0 +! +!WC_O3/ALKL=0.0 +! +!WC_O3/ALKM=0.0 +! +!WC_O3/ALKH=0.0 +! +!WC_O3/AROH=0.0 +! +!WC_O3/AROL=0.0 +! +!WC_O3/AROO=0.0 +! +!WC_O3/ARAL=0.0 +! +!WC_O3/ARAC=0.0 +! +!WC_O3/PAH=0.0 +! +!WC_O3/HCHO=0.0 +! +!WC_O3/ALD2=0.0 +! +!WC_O3/KETL=0.0 +! +!WC_O3/KETH=0.0 +! +!WC_O3/MEOH=0.0 +! +!WC_O3/ETOH=0.0 +! +!WC_O3/ALCH=0.0 +! +!WC_O3/ISOP=0.0 +! +!WC_O3/BIOL=0.0 +! +!WC_O3/BIOH=0.0 +! +!WC_O3/MTBE=0.0 +! +!WC_O3/MVK=0.0 +! +!WC_O3/MCR=0.0 +! +!WC_O3/MGLY=0.0 +! +!WC_O3/GLY=0.0 +! +!WC_O3/ORA1=0.0 +! +!WC_O3/ORA2=0.0 +! +!WC_O3/ACID=0.0 +! +!WC_O3/UR28=0.0 +! +!WC_O3/UR21=0.0 +! +!WC_O3/URG2=0.0 +! +!WC_O3/UR26=0.0 +! +!WC_O3/RPG2=0.0 +! +!WC_O3/RP18=0.0 +! +!WC_O3/RPG3=0.0 +! +!WC_O3/URG4=0.0 +! +!WC_O3/UR8=0.0 +! +!WC_O3/UR17=0.0 +! +!WC_O3/UR7=0.0 +! +!WC_O3/RPR3=0.0 +! +!WC_O3/URG6=0.0 +! +!WC_O3/UR22=0.0 +! +!WC_O3/URG7=0.0 +! +!WC_O3/RPR4=0.0 +! +!WC_O3/RPR7=0.0 +! +!WC_O3/RPG7=0.0 +! +!WC_O3/URG8=0.0 +! +!WC_O3/UR19=0.0 +! +!WC_O3/URG9=0.0 +! +!WC_O3/AP7=0.0 +! +!WC_O3/URG10=0.0 +! +!WC_O3/RPR1=0.0 +! +!WC_O3/RPR5=0.0 +! +!WC_O3/RPR8=0.0 +! +!WC_O3/RP10=0.0 +! +!WC_O3/RP11=0.0 +! +!WC_O3/RP16=0.0 +! +!WC_O3/RPRL=0.0 +! +!WC_O3/APAN=0.0 +! +!WC_O3/PAN1=0.0 +! +!WC_O3/PAN2=0.0 +! +!WC_O3/PAN3=0.0 +! +!WC_O3/PAN4=0.0 +! +!WC_O3/PAN6=0.0 +! +!WC_O3/PAN7=0.0 +! +!WC_O3/PAN8=0.0 +! +!WC_O3/PN10=0.0 +! +!WC_O3/RO2T=0.0 +! +!WC_O3/RO21=0.0 +! +!WC_O3/RO25=0.0 +! +!WC_O3/WC_O3=-KTC32-KC6*<WC_HO2>-KC25*<WC_SO2> + PJAC(:,88,88)=-TPK%KTC32(:)-TPK%KC6(:)*PCONC(:,99)-TPK%KC25(:)*PCONC(:,101) +! +!WC_O3/WC_H2O2=0.0 +! +!WC_O3/WC_NO=0.0 +! +!WC_O3/WC_NO2=0.0 +! +!WC_O3/WC_NO3=0.0 +! +!WC_O3/WC_N2O5=0.0 +! +!WC_O3/WC_HONO=0.0 +! +!WC_O3/WC_HNO3=0.0 +! +!WC_O3/WC_HNO4=0.0 +! +!WC_O3/WC_NH3=0.0 +! +!WC_O3/WC_OH=0.0 +! +!WC_O3/WC_HO2=-KC6*<WC_O3> + PJAC(:,88,99)=-TPK%KC6(:)*PCONC(:,88) +! +!WC_O3/WC_CO2=0.0 +! +!WC_O3/WC_SO2=-KC25*<WC_O3> + PJAC(:,88,101)=-TPK%KC25(:)*PCONC(:,88) +! +!WC_O3/WC_H2SO4=0.0 +! +!WC_O3/WC_RO21=0.0 +! +!WC_O3/WC_RO25=0.0 +! +!WC_O3/WC_MEOH=0.0 +! +!WC_O3/WC_ETOH=0.0 +! +!WC_O3/WC_ALCH=0.0 +! +!WC_O3/WC_HCHO=0.0 +! +!WC_O3/WC_ALD2=0.0 +! +!WC_O3/WC_GLY=0.0 +! +!WC_O3/WC_MGLY=0.0 +! +!WC_O3/WC_KETL=0.0 +! +!WC_O3/WC_ORA1=0.0 +! +!WC_O3/WC_ORA2=0.0 +! +!WC_O3/WC_ACID=0.0 +! +!WC_O3/WC_RP16=0.0 +! +!WC_O3/WC_UR21=0.0 +! +!WC_O3/WC_UR28=0.0 +! +!WC_O3/WC_ACID2=0.0 +! +!WC_O3/WC_ASO3=0.0 +! +!WC_O3/WC_ASO4=0.0 +! +!WC_O3/WC_ASO5=0.0 +! +!WC_O3/WC_AHSO5=0.0 +! +!WC_O3/WC_AHMS=0.0 +! +!WC_O3/WR_O3=0.0 +! +!WC_O3/WR_H2O2=0.0 +! +!WC_O3/WR_NO=0.0 +! +!WC_O3/WR_NO2=0.0 +! +!WC_O3/WR_NO3=0.0 +! +!WC_O3/WR_N2O5=0.0 +! +!WC_O3/WR_HONO=0.0 +! +!WC_O3/WR_HNO3=0.0 +! +!WC_O3/WR_HNO4=0.0 +! +!WC_O3/WR_NH3=0.0 +! +!WC_O3/WR_OH=0.0 +! +!WC_O3/WR_HO2=0.0 +! +!WC_O3/WR_CO2=0.0 +! +!WC_O3/WR_SO2=0.0 +! +!WC_O3/WR_H2SO4=0.0 +! +!WC_O3/WR_RO21=0.0 +! +!WC_O3/WR_RO25=0.0 +! +!WC_O3/WR_MEOH=0.0 +! +!WC_O3/WR_ETOH=0.0 +! +!WC_O3/WR_ALCH=0.0 +! +!WC_O3/WR_HCHO=0.0 +! +!WC_O3/WR_ALD2=0.0 +! +!WC_O3/WR_GLY=0.0 +! +!WC_O3/WR_MGLY=0.0 +! +!WC_O3/WR_KETL=0.0 +! +!WC_O3/WR_ORA1=0.0 +! +!WC_O3/WR_ORA2=0.0 +! +!WC_O3/WR_ACID=0.0 +! +!WC_O3/WR_RP16=0.0 +! +!WC_O3/WR_UR21=0.0 +! +!WC_O3/WR_UR28=0.0 +! +!WC_O3/WR_ACID2=0.0 +! +!WC_O3/WR_ASO3=0.0 +! +!WC_O3/WR_ASO4=0.0 +! +!WC_O3/WR_ASO5=0.0 +! +!WC_O3/WR_AHSO5=0.0 +! +!WC_O3/WR_AHMS=0.0 +! +!WC_H2O2/NO=0.0 +! +!WC_H2O2/NO2=0.0 +! +!WC_H2O2/O3=0.0 +! +!WC_H2O2/HONO=0.0 +! +!WC_H2O2/HNO3=0.0 +! +!WC_H2O2/HNO4=0.0 +! +!WC_H2O2/N2O5=0.0 +! +!WC_H2O2/NO3=0.0 +! +!WC_H2O2/NH3=0.0 +! +!WC_H2O2/HO2=0.0 +! +!WC_H2O2/CO=0.0 +! +!WC_H2O2/H2O2=+KTC2 + PJAC(:,89,12)=+TPK%KTC2(:) +! +!WC_H2O2/SO2=0.0 +! +!WC_H2O2/H2SO4=0.0 +! +!WC_H2O2/OH=0.0 +! +!WC_H2O2/ETHE=0.0 +! +!WC_H2O2/OLEL=0.0 +! +!WC_H2O2/OLEH=0.0 +! +!WC_H2O2/ALKL=0.0 +! +!WC_H2O2/ALKM=0.0 +! +!WC_H2O2/ALKH=0.0 +! +!WC_H2O2/AROH=0.0 +! +!WC_H2O2/AROL=0.0 +! +!WC_H2O2/AROO=0.0 +! +!WC_H2O2/ARAL=0.0 +! +!WC_H2O2/ARAC=0.0 +! +!WC_H2O2/PAH=0.0 +! +!WC_H2O2/HCHO=0.0 +! +!WC_H2O2/ALD2=0.0 +! +!WC_H2O2/KETL=0.0 +! +!WC_H2O2/KETH=0.0 +! +!WC_H2O2/MEOH=0.0 +! +!WC_H2O2/ETOH=0.0 +! +!WC_H2O2/ALCH=0.0 +! +!WC_H2O2/ISOP=0.0 +! +!WC_H2O2/BIOL=0.0 +! +!WC_H2O2/BIOH=0.0 +! +!WC_H2O2/MTBE=0.0 +! +!WC_H2O2/MVK=0.0 +! +!WC_H2O2/MCR=0.0 +! +!WC_H2O2/MGLY=0.0 +! +!WC_H2O2/GLY=0.0 +! +!WC_H2O2/ORA1=0.0 +! +!WC_H2O2/ORA2=0.0 +! +!WC_H2O2/ACID=0.0 +! +!WC_H2O2/UR28=0.0 +! +!WC_H2O2/UR21=0.0 +! +!WC_H2O2/URG2=0.0 +! +!WC_H2O2/UR26=0.0 +! +!WC_H2O2/RPG2=0.0 +! +!WC_H2O2/RP18=0.0 +! +!WC_H2O2/RPG3=0.0 +! +!WC_H2O2/URG4=0.0 +! +!WC_H2O2/UR8=0.0 +! +!WC_H2O2/UR17=0.0 +! +!WC_H2O2/UR7=0.0 +! +!WC_H2O2/RPR3=0.0 +! +!WC_H2O2/URG6=0.0 +! +!WC_H2O2/UR22=0.0 +! +!WC_H2O2/URG7=0.0 +! +!WC_H2O2/RPR4=0.0 +! +!WC_H2O2/RPR7=0.0 +! +!WC_H2O2/RPG7=0.0 +! +!WC_H2O2/URG8=0.0 +! +!WC_H2O2/UR19=0.0 +! +!WC_H2O2/URG9=0.0 +! +!WC_H2O2/AP7=0.0 +! +!WC_H2O2/URG10=0.0 +! +!WC_H2O2/RPR1=0.0 +! +!WC_H2O2/RPR5=0.0 +! +!WC_H2O2/RPR8=0.0 +! +!WC_H2O2/RP10=0.0 +! +!WC_H2O2/RP11=0.0 +! +!WC_H2O2/RP16=0.0 +! +!WC_H2O2/RPRL=0.0 +! +!WC_H2O2/APAN=0.0 +! +!WC_H2O2/PAN1=0.0 +! +!WC_H2O2/PAN2=0.0 +! +!WC_H2O2/PAN3=0.0 +! +!WC_H2O2/PAN4=0.0 +! +!WC_H2O2/PAN6=0.0 +! +!WC_H2O2/PAN7=0.0 +! +!WC_H2O2/PAN8=0.0 +! +!WC_H2O2/PN10=0.0 +! +!WC_H2O2/RO2T=0.0 +! +!WC_H2O2/RO21=0.0 +! +!WC_H2O2/RO25=0.0 +! +!WC_H2O2/WC_O3=0.0 +! +!WC_H2O2/WC_H2O2=-KTC33-KC1-KC4*<WC_OH>-KC26*<WC_SO2> + PJAC(:,89,89)=-TPK%KTC33(:)-TPK%KC1(:)-TPK%KC4(:)*PCONC(:,98)-TPK%KC26(:)*PCON& +&C(:,101) +! +!WC_H2O2/WC_NO=0.0 +! +!WC_H2O2/WC_NO2=0.0 +! +!WC_H2O2/WC_NO3=0.0 +! +!WC_H2O2/WC_N2O5=0.0 +! +!WC_H2O2/WC_HONO=0.0 +! +!WC_H2O2/WC_HNO3=0.0 +! +!WC_H2O2/WC_HNO4=0.0 +! +!WC_H2O2/WC_NH3=0.0 +! +!WC_H2O2/WC_OH=+KC2*<WC_OH>+KC2*<WC_OH>-KC4*<WC_H2O2>+KC37*<WC_KETL>+0.5*KC39*< +!WC_ORA2>+0.29*KC41*<WC_ACID>+0.3*KC43*<WC_UR21>+0.45*KC45*<WC_RP16> + PJAC(:,89,98)=+TPK%KC2(:)*PCONC(:,98)+TPK%KC2(:)*PCONC(:,98)-TPK%KC4(:)*PCONC(& +&:,89)+TPK%KC37(:)*PCONC(:,112)+0.5*TPK%KC39(:)*PCONC(:,114)+0.29*TPK%KC41(:)*P& +&CONC(:,115)+0.3*TPK%KC43(:)*PCONC(:,117)+0.45*TPK%KC45(:)*PCONC(:,116) +! +!WC_H2O2/WC_HO2=+KC5*<WC_HO2>+KC5*<WC_HO2> + PJAC(:,89,99)=+TPK%KC5(:)*PCONC(:,99)+TPK%KC5(:)*PCONC(:,99) +! +!WC_H2O2/WC_CO2=0.0 +! +!WC_H2O2/WC_SO2=-KC26*<WC_H2O2> + PJAC(:,89,101)=-TPK%KC26(:)*PCONC(:,89) +! +!WC_H2O2/WC_H2SO4=0.0 +! +!WC_H2O2/WC_RO21=0.0 +! +!WC_H2O2/WC_RO25=+KC29*<WC_RO25>+KC29*<WC_RO25> + PJAC(:,89,104)=+TPK%KC29(:)*PCONC(:,104)+TPK%KC29(:)*PCONC(:,104) +! +!WC_H2O2/WC_MEOH=0.0 +! +!WC_H2O2/WC_ETOH=0.0 +! +!WC_H2O2/WC_ALCH=0.0 +! +!WC_H2O2/WC_HCHO=0.0 +! +!WC_H2O2/WC_ALD2=0.0 +! +!WC_H2O2/WC_GLY=0.0 +! +!WC_H2O2/WC_MGLY=0.0 +! +!WC_H2O2/WC_KETL=+KC37*<WC_OH> + PJAC(:,89,112)=+TPK%KC37(:)*PCONC(:,98) +! +!WC_H2O2/WC_ORA1=0.0 +! +!WC_H2O2/WC_ORA2=+0.5*KC39*<WC_OH> + PJAC(:,89,114)=+0.5*TPK%KC39(:)*PCONC(:,98) +! +!WC_H2O2/WC_ACID=+0.29*KC41*<WC_OH> + PJAC(:,89,115)=+0.29*TPK%KC41(:)*PCONC(:,98) +! +!WC_H2O2/WC_RP16=+0.45*KC45*<WC_OH> + PJAC(:,89,116)=+0.45*TPK%KC45(:)*PCONC(:,98) +! +!WC_H2O2/WC_UR21=+0.3*KC43*<WC_OH> + PJAC(:,89,117)=+0.3*TPK%KC43(:)*PCONC(:,98) +! +!WC_H2O2/WC_UR28=0.0 +! +!WC_H2O2/WC_ACID2=0.0 +! +!WC_H2O2/WC_ASO3=0.0 +! +!WC_H2O2/WC_ASO4=0.0 +! +!WC_H2O2/WC_ASO5=0.0 +! +!WC_H2O2/WC_AHSO5=0.0 +! +!WC_H2O2/WC_AHMS=0.0 +! +!WC_H2O2/WR_O3=0.0 +! +!WC_H2O2/WR_H2O2=0.0 +! +!WC_H2O2/WR_NO=0.0 +! +!WC_H2O2/WR_NO2=0.0 +! +!WC_H2O2/WR_NO3=0.0 +! +!WC_H2O2/WR_N2O5=0.0 +! +!WC_H2O2/WR_HONO=0.0 +! +!WC_H2O2/WR_HNO3=0.0 +! +!WC_H2O2/WR_HNO4=0.0 +! +!WC_H2O2/WR_NH3=0.0 +! +!WC_H2O2/WR_OH=0.0 +! +!WC_H2O2/WR_HO2=0.0 +! +!WC_H2O2/WR_CO2=0.0 +! +!WC_H2O2/WR_SO2=0.0 +! +!WC_H2O2/WR_H2SO4=0.0 +! +!WC_H2O2/WR_RO21=0.0 +! +!WC_H2O2/WR_RO25=0.0 +! +!WC_H2O2/WR_MEOH=0.0 +! +!WC_H2O2/WR_ETOH=0.0 +! +!WC_H2O2/WR_ALCH=0.0 +! +!WC_H2O2/WR_HCHO=0.0 +! +!WC_H2O2/WR_ALD2=0.0 +! +!WC_H2O2/WR_GLY=0.0 +! +!WC_H2O2/WR_MGLY=0.0 +! +!WC_H2O2/WR_KETL=0.0 +! +!WC_H2O2/WR_ORA1=0.0 +! +!WC_H2O2/WR_ORA2=0.0 +! +!WC_H2O2/WR_ACID=0.0 +! +!WC_H2O2/WR_RP16=0.0 +! +!WC_H2O2/WR_UR21=0.0 +! +!WC_H2O2/WR_UR28=0.0 +! +!WC_H2O2/WR_ACID2=0.0 +! +!WC_H2O2/WR_ASO3=0.0 +! +!WC_H2O2/WR_ASO4=0.0 +! +!WC_H2O2/WR_ASO5=0.0 +! +!WC_H2O2/WR_AHSO5=0.0 +! +!WC_H2O2/WR_AHMS=0.0 +! +!WC_NO/NO=+KTC3 + PJAC(:,90,1)=+TPK%KTC3(:) +! +!WC_NO/NO2=0.0 +! +!WC_NO/O3=0.0 +! +!WC_NO/HONO=0.0 +! +!WC_NO/HNO3=0.0 +! +!WC_NO/HNO4=0.0 +! +!WC_NO/N2O5=0.0 +! +!WC_NO/NO3=0.0 +! +!WC_NO/NH3=0.0 +! +!WC_NO/HO2=0.0 +! +!WC_NO/CO=0.0 +! +!WC_NO/H2O2=0.0 +! +!WC_NO/SO2=0.0 +! +!WC_NO/H2SO4=0.0 +! +!WC_NO/OH=0.0 +! +!WC_NO/ETHE=0.0 +! +!WC_NO/OLEL=0.0 +! +!WC_NO/OLEH=0.0 +! +!WC_NO/ALKL=0.0 +! +!WC_NO/ALKM=0.0 +! +!WC_NO/ALKH=0.0 +! +!WC_NO/AROH=0.0 +! +!WC_NO/AROL=0.0 +! +!WC_NO/AROO=0.0 +! +!WC_NO/ARAL=0.0 +! +!WC_NO/ARAC=0.0 +! +!WC_NO/PAH=0.0 +! +!WC_NO/HCHO=0.0 +! +!WC_NO/ALD2=0.0 +! +!WC_NO/KETL=0.0 +! +!WC_NO/KETH=0.0 +! +!WC_NO/MEOH=0.0 +! +!WC_NO/ETOH=0.0 +! +!WC_NO/ALCH=0.0 +! +!WC_NO/ISOP=0.0 +! +!WC_NO/BIOL=0.0 +! +!WC_NO/BIOH=0.0 +! +!WC_NO/MTBE=0.0 +! +!WC_NO/MVK=0.0 +! +!WC_NO/MCR=0.0 +! +!WC_NO/MGLY=0.0 +! +!WC_NO/GLY=0.0 +! +!WC_NO/ORA1=0.0 +! +!WC_NO/ORA2=0.0 +! +!WC_NO/ACID=0.0 +! +!WC_NO/UR28=0.0 +! +!WC_NO/UR21=0.0 +! +!WC_NO/URG2=0.0 +! +!WC_NO/UR26=0.0 +! +!WC_NO/RPG2=0.0 +! +!WC_NO/RP18=0.0 +! +!WC_NO/RPG3=0.0 +! +!WC_NO/URG4=0.0 +! +!WC_NO/UR8=0.0 +! +!WC_NO/UR17=0.0 +! +!WC_NO/UR7=0.0 +! +!WC_NO/RPR3=0.0 +! +!WC_NO/URG6=0.0 +! +!WC_NO/UR22=0.0 +! +!WC_NO/URG7=0.0 +! +!WC_NO/RPR4=0.0 +! +!WC_NO/RPR7=0.0 +! +!WC_NO/RPG7=0.0 +! +!WC_NO/URG8=0.0 +! +!WC_NO/UR19=0.0 +! +!WC_NO/URG9=0.0 +! +!WC_NO/AP7=0.0 +! +!WC_NO/URG10=0.0 +! +!WC_NO/RPR1=0.0 +! +!WC_NO/RPR5=0.0 +! +!WC_NO/RPR8=0.0 +! +!WC_NO/RP10=0.0 +! +!WC_NO/RP11=0.0 +! +!WC_NO/RP16=0.0 +! +!WC_NO/RPRL=0.0 +! +!WC_NO/APAN=0.0 +! +!WC_NO/PAN1=0.0 +! +!WC_NO/PAN2=0.0 +! +!WC_NO/PAN3=0.0 +! +!WC_NO/PAN4=0.0 +! +!WC_NO/PAN6=0.0 +! +!WC_NO/PAN7=0.0 +! +!WC_NO/PAN8=0.0 +! +!WC_NO/PN10=0.0 +! +!WC_NO/RO2T=0.0 +! +!WC_NO/RO21=0.0 +! +!WC_NO/RO25=0.0 +! +!WC_NO/WC_O3=0.0 +! +!WC_NO/WC_H2O2=0.0 +! +!WC_NO/WC_NO=-KTC34 + PJAC(:,90,90)=-TPK%KTC34(:) +! +!WC_NO/WC_NO2=0.0 +! +!WC_NO/WC_NO3=0.0 +! +!WC_NO/WC_N2O5=0.0 +! +!WC_NO/WC_HONO=0.0 +! +!WC_NO/WC_HNO3=0.0 +! +!WC_NO/WC_HNO4=0.0 +! +!WC_NO/WC_NH3=0.0 +! +!WC_NO/WC_OH=0.0 +! +!WC_NO/WC_HO2=0.0 +! +!WC_NO/WC_CO2=0.0 +! +!WC_NO/WC_SO2=0.0 +! +!WC_NO/WC_H2SO4=0.0 +! +!WC_NO/WC_RO21=0.0 +! +!WC_NO/WC_RO25=0.0 +! +!WC_NO/WC_MEOH=0.0 +! +!WC_NO/WC_ETOH=0.0 +! +!WC_NO/WC_ALCH=0.0 +! +!WC_NO/WC_HCHO=0.0 +! +!WC_NO/WC_ALD2=0.0 +! +!WC_NO/WC_GLY=0.0 +! +!WC_NO/WC_MGLY=0.0 +! +!WC_NO/WC_KETL=0.0 +! +!WC_NO/WC_ORA1=0.0 +! +!WC_NO/WC_ORA2=0.0 +! +!WC_NO/WC_ACID=0.0 +! +!WC_NO/WC_RP16=0.0 +! +!WC_NO/WC_UR21=0.0 +! +!WC_NO/WC_UR28=0.0 +! +!WC_NO/WC_ACID2=0.0 +! +!WC_NO/WC_ASO3=0.0 +! +!WC_NO/WC_ASO4=0.0 +! +!WC_NO/WC_ASO5=0.0 +! +!WC_NO/WC_AHSO5=0.0 +! +!WC_NO/WC_AHMS=0.0 +! +!WC_NO/WR_O3=0.0 +! +!WC_NO/WR_H2O2=0.0 +! +!WC_NO/WR_NO=0.0 +! +!WC_NO/WR_NO2=0.0 +! +!WC_NO/WR_NO3=0.0 +! +!WC_NO/WR_N2O5=0.0 +! +!WC_NO/WR_HONO=0.0 +! +!WC_NO/WR_HNO3=0.0 +! +!WC_NO/WR_HNO4=0.0 +! +!WC_NO/WR_NH3=0.0 +! +!WC_NO/WR_OH=0.0 +! +!WC_NO/WR_HO2=0.0 +! +!WC_NO/WR_CO2=0.0 +! +!WC_NO/WR_SO2=0.0 +! +!WC_NO/WR_H2SO4=0.0 +! +!WC_NO/WR_RO21=0.0 +! +!WC_NO/WR_RO25=0.0 +! +!WC_NO/WR_MEOH=0.0 +! +!WC_NO/WR_ETOH=0.0 +! +!WC_NO/WR_ALCH=0.0 +! +!WC_NO/WR_HCHO=0.0 +! +!WC_NO/WR_ALD2=0.0 +! +!WC_NO/WR_GLY=0.0 +! +!WC_NO/WR_MGLY=0.0 +! +!WC_NO/WR_KETL=0.0 +! +!WC_NO/WR_ORA1=0.0 +! +!WC_NO/WR_ORA2=0.0 +! +!WC_NO/WR_ACID=0.0 +! +!WC_NO/WR_RP16=0.0 +! +!WC_NO/WR_UR21=0.0 +! +!WC_NO/WR_UR28=0.0 +! +!WC_NO/WR_ACID2=0.0 +! +!WC_NO/WR_ASO3=0.0 +! +!WC_NO/WR_ASO4=0.0 +! +!WC_NO/WR_ASO5=0.0 +! +!WC_NO/WR_AHSO5=0.0 +! +!WC_NO/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ17 +! +SUBROUTINE SUBJ18 +! +!Indices 91 a 95 +! +! +!WC_NO2/NO=0.0 +! +!WC_NO2/NO2=+KTC4 + PJAC(:,91,2)=+TPK%KTC4(:) +! +!WC_NO2/O3=0.0 +! +!WC_NO2/HONO=0.0 +! +!WC_NO2/HNO3=0.0 +! +!WC_NO2/HNO4=0.0 +! +!WC_NO2/N2O5=0.0 +! +!WC_NO2/NO3=0.0 +! +!WC_NO2/NH3=0.0 +! +!WC_NO2/HO2=0.0 +! +!WC_NO2/CO=0.0 +! +!WC_NO2/H2O2=0.0 +! +!WC_NO2/SO2=0.0 +! +!WC_NO2/H2SO4=0.0 +! +!WC_NO2/OH=0.0 +! +!WC_NO2/ETHE=0.0 +! +!WC_NO2/OLEL=0.0 +! +!WC_NO2/OLEH=0.0 +! +!WC_NO2/ALKL=0.0 +! +!WC_NO2/ALKM=0.0 +! +!WC_NO2/ALKH=0.0 +! +!WC_NO2/AROH=0.0 +! +!WC_NO2/AROL=0.0 +! +!WC_NO2/AROO=0.0 +! +!WC_NO2/ARAL=0.0 +! +!WC_NO2/ARAC=0.0 +! +!WC_NO2/PAH=0.0 +! +!WC_NO2/HCHO=0.0 +! +!WC_NO2/ALD2=0.0 +! +!WC_NO2/KETL=0.0 +! +!WC_NO2/KETH=0.0 +! +!WC_NO2/MEOH=0.0 +! +!WC_NO2/ETOH=0.0 +! +!WC_NO2/ALCH=0.0 +! +!WC_NO2/ISOP=0.0 +! +!WC_NO2/BIOL=0.0 +! +!WC_NO2/BIOH=0.0 +! +!WC_NO2/MTBE=0.0 +! +!WC_NO2/MVK=0.0 +! +!WC_NO2/MCR=0.0 +! +!WC_NO2/MGLY=0.0 +! +!WC_NO2/GLY=0.0 +! +!WC_NO2/ORA1=0.0 +! +!WC_NO2/ORA2=0.0 +! +!WC_NO2/ACID=0.0 +! +!WC_NO2/UR28=0.0 +! +!WC_NO2/UR21=0.0 +! +!WC_NO2/URG2=0.0 +! +!WC_NO2/UR26=0.0 +! +!WC_NO2/RPG2=0.0 +! +!WC_NO2/RP18=0.0 +! +!WC_NO2/RPG3=0.0 +! +!WC_NO2/URG4=0.0 +! +!WC_NO2/UR8=0.0 +! +!WC_NO2/UR17=0.0 +! +!WC_NO2/UR7=0.0 +! +!WC_NO2/RPR3=0.0 +! +!WC_NO2/URG6=0.0 +! +!WC_NO2/UR22=0.0 +! +!WC_NO2/URG7=0.0 +! +!WC_NO2/RPR4=0.0 +! +!WC_NO2/RPR7=0.0 +! +!WC_NO2/RPG7=0.0 +! +!WC_NO2/URG8=0.0 +! +!WC_NO2/UR19=0.0 +! +!WC_NO2/URG9=0.0 +! +!WC_NO2/AP7=0.0 +! +!WC_NO2/URG10=0.0 +! +!WC_NO2/RPR1=0.0 +! +!WC_NO2/RPR5=0.0 +! +!WC_NO2/RPR8=0.0 +! +!WC_NO2/RP10=0.0 +! +!WC_NO2/RP11=0.0 +! +!WC_NO2/RP16=0.0 +! +!WC_NO2/RPRL=0.0 +! +!WC_NO2/APAN=0.0 +! +!WC_NO2/PAN1=0.0 +! +!WC_NO2/PAN2=0.0 +! +!WC_NO2/PAN3=0.0 +! +!WC_NO2/PAN4=0.0 +! +!WC_NO2/PAN6=0.0 +! +!WC_NO2/PAN7=0.0 +! +!WC_NO2/PAN8=0.0 +! +!WC_NO2/PN10=0.0 +! +!WC_NO2/RO2T=0.0 +! +!WC_NO2/RO21=0.0 +! +!WC_NO2/RO25=0.0 +! +!WC_NO2/WC_O3=0.0 +! +!WC_NO2/WC_H2O2=0.0 +! +!WC_NO2/WC_NO=0.0 +! +!WC_NO2/WC_NO2=-KTC35-KC9*<WC_HO2> + PJAC(:,91,91)=-TPK%KTC35(:)-TPK%KC9(:)*PCONC(:,99) +! +!WC_NO2/WC_NO3=0.0 +! +!WC_NO2/WC_N2O5=0.0 +! +!WC_NO2/WC_HONO=+KC8*<WC_OH> + PJAC(:,91,94)=+TPK%KC8(:)*PCONC(:,98) +! +!WC_NO2/WC_HNO3=+KC13 + PJAC(:,91,95)=+TPK%KC13(:) +! +!WC_NO2/WC_HNO4=+KC10 + PJAC(:,91,96)=+TPK%KC10(:) +! +!WC_NO2/WC_NH3=0.0 +! +!WC_NO2/WC_OH=+KC8*<WC_HONO> + PJAC(:,91,98)=+TPK%KC8(:)*PCONC(:,94) +! +!WC_NO2/WC_HO2=-KC9*<WC_NO2> + PJAC(:,91,99)=-TPK%KC9(:)*PCONC(:,91) +! +!WC_NO2/WC_CO2=0.0 +! +!WC_NO2/WC_SO2=0.0 +! +!WC_NO2/WC_H2SO4=0.0 +! +!WC_NO2/WC_RO21=0.0 +! +!WC_NO2/WC_RO25=0.0 +! +!WC_NO2/WC_MEOH=0.0 +! +!WC_NO2/WC_ETOH=0.0 +! +!WC_NO2/WC_ALCH=0.0 +! +!WC_NO2/WC_HCHO=0.0 +! +!WC_NO2/WC_ALD2=0.0 +! +!WC_NO2/WC_GLY=0.0 +! +!WC_NO2/WC_MGLY=0.0 +! +!WC_NO2/WC_KETL=0.0 +! +!WC_NO2/WC_ORA1=0.0 +! +!WC_NO2/WC_ORA2=0.0 +! +!WC_NO2/WC_ACID=0.0 +! +!WC_NO2/WC_RP16=0.0 +! +!WC_NO2/WC_UR21=0.0 +! +!WC_NO2/WC_UR28=0.0 +! +!WC_NO2/WC_ACID2=0.0 +! +!WC_NO2/WC_ASO3=0.0 +! +!WC_NO2/WC_ASO4=0.0 +! +!WC_NO2/WC_ASO5=0.0 +! +!WC_NO2/WC_AHSO5=0.0 +! +!WC_NO2/WC_AHMS=0.0 +! +!WC_NO2/WR_O3=0.0 +! +!WC_NO2/WR_H2O2=0.0 +! +!WC_NO2/WR_NO=0.0 +! +!WC_NO2/WR_NO2=0.0 +! +!WC_NO2/WR_NO3=0.0 +! +!WC_NO2/WR_N2O5=0.0 +! +!WC_NO2/WR_HONO=0.0 +! +!WC_NO2/WR_HNO3=0.0 +! +!WC_NO2/WR_HNO4=0.0 +! +!WC_NO2/WR_NH3=0.0 +! +!WC_NO2/WR_OH=0.0 +! +!WC_NO2/WR_HO2=0.0 +! +!WC_NO2/WR_CO2=0.0 +! +!WC_NO2/WR_SO2=0.0 +! +!WC_NO2/WR_H2SO4=0.0 +! +!WC_NO2/WR_RO21=0.0 +! +!WC_NO2/WR_RO25=0.0 +! +!WC_NO2/WR_MEOH=0.0 +! +!WC_NO2/WR_ETOH=0.0 +! +!WC_NO2/WR_ALCH=0.0 +! +!WC_NO2/WR_HCHO=0.0 +! +!WC_NO2/WR_ALD2=0.0 +! +!WC_NO2/WR_GLY=0.0 +! +!WC_NO2/WR_MGLY=0.0 +! +!WC_NO2/WR_KETL=0.0 +! +!WC_NO2/WR_ORA1=0.0 +! +!WC_NO2/WR_ORA2=0.0 +! +!WC_NO2/WR_ACID=0.0 +! +!WC_NO2/WR_RP16=0.0 +! +!WC_NO2/WR_UR21=0.0 +! +!WC_NO2/WR_UR28=0.0 +! +!WC_NO2/WR_ACID2=0.0 +! +!WC_NO2/WR_ASO3=0.0 +! +!WC_NO2/WR_ASO4=0.0 +! +!WC_NO2/WR_ASO5=0.0 +! +!WC_NO2/WR_AHSO5=0.0 +! +!WC_NO2/WR_AHMS=0.0 +! +!WC_NO3/NO=0.0 +! +!WC_NO3/NO2=0.0 +! +!WC_NO3/O3=0.0 +! +!WC_NO3/HONO=0.0 +! +!WC_NO3/HNO3=0.0 +! +!WC_NO3/HNO4=0.0 +! +!WC_NO3/N2O5=0.0 +! +!WC_NO3/NO3=+KTC5 + PJAC(:,92,8)=+TPK%KTC5(:) +! +!WC_NO3/NH3=0.0 +! +!WC_NO3/HO2=0.0 +! +!WC_NO3/CO=0.0 +! +!WC_NO3/H2O2=0.0 +! +!WC_NO3/SO2=0.0 +! +!WC_NO3/H2SO4=0.0 +! +!WC_NO3/OH=0.0 +! +!WC_NO3/ETHE=0.0 +! +!WC_NO3/OLEL=0.0 +! +!WC_NO3/OLEH=0.0 +! +!WC_NO3/ALKL=0.0 +! +!WC_NO3/ALKM=0.0 +! +!WC_NO3/ALKH=0.0 +! +!WC_NO3/AROH=0.0 +! +!WC_NO3/AROL=0.0 +! +!WC_NO3/AROO=0.0 +! +!WC_NO3/ARAL=0.0 +! +!WC_NO3/ARAC=0.0 +! +!WC_NO3/PAH=0.0 +! +!WC_NO3/HCHO=0.0 +! +!WC_NO3/ALD2=0.0 +! +!WC_NO3/KETL=0.0 +! +!WC_NO3/KETH=0.0 +! +!WC_NO3/MEOH=0.0 +! +!WC_NO3/ETOH=0.0 +! +!WC_NO3/ALCH=0.0 +! +!WC_NO3/ISOP=0.0 +! +!WC_NO3/BIOL=0.0 +! +!WC_NO3/BIOH=0.0 +! +!WC_NO3/MTBE=0.0 +! +!WC_NO3/MVK=0.0 +! +!WC_NO3/MCR=0.0 +! +!WC_NO3/MGLY=0.0 +! +!WC_NO3/GLY=0.0 +! +!WC_NO3/ORA1=0.0 +! +!WC_NO3/ORA2=0.0 +! +!WC_NO3/ACID=0.0 +! +!WC_NO3/UR28=0.0 +! +!WC_NO3/UR21=0.0 +! +!WC_NO3/URG2=0.0 +! +!WC_NO3/UR26=0.0 +! +!WC_NO3/RPG2=0.0 +! +!WC_NO3/RP18=0.0 +! +!WC_NO3/RPG3=0.0 +! +!WC_NO3/URG4=0.0 +! +!WC_NO3/UR8=0.0 +! +!WC_NO3/UR17=0.0 +! +!WC_NO3/UR7=0.0 +! +!WC_NO3/RPR3=0.0 +! +!WC_NO3/URG6=0.0 +! +!WC_NO3/UR22=0.0 +! +!WC_NO3/URG7=0.0 +! +!WC_NO3/RPR4=0.0 +! +!WC_NO3/RPR7=0.0 +! +!WC_NO3/RPG7=0.0 +! +!WC_NO3/URG8=0.0 +! +!WC_NO3/UR19=0.0 +! +!WC_NO3/URG9=0.0 +! +!WC_NO3/AP7=0.0 +! +!WC_NO3/URG10=0.0 +! +!WC_NO3/RPR1=0.0 +! +!WC_NO3/RPR5=0.0 +! +!WC_NO3/RPR8=0.0 +! +!WC_NO3/RP10=0.0 +! +!WC_NO3/RP11=0.0 +! +!WC_NO3/RP16=0.0 +! +!WC_NO3/RPRL=0.0 +! +!WC_NO3/APAN=0.0 +! +!WC_NO3/PAN1=0.0 +! +!WC_NO3/PAN2=0.0 +! +!WC_NO3/PAN3=0.0 +! +!WC_NO3/PAN4=0.0 +! +!WC_NO3/PAN6=0.0 +! +!WC_NO3/PAN7=0.0 +! +!WC_NO3/PAN8=0.0 +! +!WC_NO3/PN10=0.0 +! +!WC_NO3/RO2T=0.0 +! +!WC_NO3/RO21=0.0 +! +!WC_NO3/RO25=0.0 +! +!WC_NO3/WC_O3=0.0 +! +!WC_NO3/WC_H2O2=0.0 +! +!WC_NO3/WC_NO=0.0 +! +!WC_NO3/WC_NO2=0.0 +! +!WC_NO3/WC_NO3=-KTC36-KC15*<WC_H2SO4>-KC16*<WC_SO2> + PJAC(:,92,92)=-TPK%KTC36(:)-TPK%KC15(:)*PCONC(:,102)-TPK%KC16(:)*PCONC(:,101) +! +!WC_NO3/WC_N2O5=0.0 +! +!WC_NO3/WC_HONO=0.0 +! +!WC_NO3/WC_HNO3=0.0 +! +!WC_NO3/WC_HNO4=0.0 +! +!WC_NO3/WC_NH3=0.0 +! +!WC_NO3/WC_OH=0.0 +! +!WC_NO3/WC_HO2=0.0 +! +!WC_NO3/WC_CO2=0.0 +! +!WC_NO3/WC_SO2=-KC16*<WC_NO3> + PJAC(:,92,101)=-TPK%KC16(:)*PCONC(:,92) +! +!WC_NO3/WC_H2SO4=-KC15*<WC_NO3> + PJAC(:,92,102)=-TPK%KC15(:)*PCONC(:,92) +! +!WC_NO3/WC_RO21=0.0 +! +!WC_NO3/WC_RO25=0.0 +! +!WC_NO3/WC_MEOH=0.0 +! +!WC_NO3/WC_ETOH=0.0 +! +!WC_NO3/WC_ALCH=0.0 +! +!WC_NO3/WC_HCHO=0.0 +! +!WC_NO3/WC_ALD2=0.0 +! +!WC_NO3/WC_GLY=0.0 +! +!WC_NO3/WC_MGLY=0.0 +! +!WC_NO3/WC_KETL=0.0 +! +!WC_NO3/WC_ORA1=0.0 +! +!WC_NO3/WC_ORA2=0.0 +! +!WC_NO3/WC_ACID=0.0 +! +!WC_NO3/WC_RP16=0.0 +! +!WC_NO3/WC_UR21=0.0 +! +!WC_NO3/WC_UR28=0.0 +! +!WC_NO3/WC_ACID2=0.0 +! +!WC_NO3/WC_ASO3=0.0 +! +!WC_NO3/WC_ASO4=0.0 +! +!WC_NO3/WC_ASO5=0.0 +! +!WC_NO3/WC_AHSO5=0.0 +! +!WC_NO3/WC_AHMS=0.0 +! +!WC_NO3/WR_O3=0.0 +! +!WC_NO3/WR_H2O2=0.0 +! +!WC_NO3/WR_NO=0.0 +! +!WC_NO3/WR_NO2=0.0 +! +!WC_NO3/WR_NO3=0.0 +! +!WC_NO3/WR_N2O5=0.0 +! +!WC_NO3/WR_HONO=0.0 +! +!WC_NO3/WR_HNO3=0.0 +! +!WC_NO3/WR_HNO4=0.0 +! +!WC_NO3/WR_NH3=0.0 +! +!WC_NO3/WR_OH=0.0 +! +!WC_NO3/WR_HO2=0.0 +! +!WC_NO3/WR_CO2=0.0 +! +!WC_NO3/WR_SO2=0.0 +! +!WC_NO3/WR_H2SO4=0.0 +! +!WC_NO3/WR_RO21=0.0 +! +!WC_NO3/WR_RO25=0.0 +! +!WC_NO3/WR_MEOH=0.0 +! +!WC_NO3/WR_ETOH=0.0 +! +!WC_NO3/WR_ALCH=0.0 +! +!WC_NO3/WR_HCHO=0.0 +! +!WC_NO3/WR_ALD2=0.0 +! +!WC_NO3/WR_GLY=0.0 +! +!WC_NO3/WR_MGLY=0.0 +! +!WC_NO3/WR_KETL=0.0 +! +!WC_NO3/WR_ORA1=0.0 +! +!WC_NO3/WR_ORA2=0.0 +! +!WC_NO3/WR_ACID=0.0 +! +!WC_NO3/WR_RP16=0.0 +! +!WC_NO3/WR_UR21=0.0 +! +!WC_NO3/WR_UR28=0.0 +! +!WC_NO3/WR_ACID2=0.0 +! +!WC_NO3/WR_ASO3=0.0 +! +!WC_NO3/WR_ASO4=0.0 +! +!WC_NO3/WR_ASO5=0.0 +! +!WC_NO3/WR_AHSO5=0.0 +! +!WC_NO3/WR_AHMS=0.0 +! +!WC_N2O5/NO=0.0 +! +!WC_N2O5/NO2=0.0 +! +!WC_N2O5/O3=0.0 +! +!WC_N2O5/HONO=0.0 +! +!WC_N2O5/HNO3=0.0 +! +!WC_N2O5/HNO4=0.0 +! +!WC_N2O5/N2O5=+KTC6 + PJAC(:,93,7)=+TPK%KTC6(:) +! +!WC_N2O5/NO3=0.0 +! +!WC_N2O5/NH3=0.0 +! +!WC_N2O5/HO2=0.0 +! +!WC_N2O5/CO=0.0 +! +!WC_N2O5/H2O2=0.0 +! +!WC_N2O5/SO2=0.0 +! +!WC_N2O5/H2SO4=0.0 +! +!WC_N2O5/OH=0.0 +! +!WC_N2O5/ETHE=0.0 +! +!WC_N2O5/OLEL=0.0 +! +!WC_N2O5/OLEH=0.0 +! +!WC_N2O5/ALKL=0.0 +! +!WC_N2O5/ALKM=0.0 +! +!WC_N2O5/ALKH=0.0 +! +!WC_N2O5/AROH=0.0 +! +!WC_N2O5/AROL=0.0 +! +!WC_N2O5/AROO=0.0 +! +!WC_N2O5/ARAL=0.0 +! +!WC_N2O5/ARAC=0.0 +! +!WC_N2O5/PAH=0.0 +! +!WC_N2O5/HCHO=0.0 +! +!WC_N2O5/ALD2=0.0 +! +!WC_N2O5/KETL=0.0 +! +!WC_N2O5/KETH=0.0 +! +!WC_N2O5/MEOH=0.0 +! +!WC_N2O5/ETOH=0.0 +! +!WC_N2O5/ALCH=0.0 +! +!WC_N2O5/ISOP=0.0 +! +!WC_N2O5/BIOL=0.0 +! +!WC_N2O5/BIOH=0.0 +! +!WC_N2O5/MTBE=0.0 +! +!WC_N2O5/MVK=0.0 +! +!WC_N2O5/MCR=0.0 +! +!WC_N2O5/MGLY=0.0 +! +!WC_N2O5/GLY=0.0 +! +!WC_N2O5/ORA1=0.0 +! +!WC_N2O5/ORA2=0.0 +! +!WC_N2O5/ACID=0.0 +! +!WC_N2O5/UR28=0.0 +! +!WC_N2O5/UR21=0.0 +! +!WC_N2O5/URG2=0.0 +! +!WC_N2O5/UR26=0.0 +! +!WC_N2O5/RPG2=0.0 +! +!WC_N2O5/RP18=0.0 +! +!WC_N2O5/RPG3=0.0 +! +!WC_N2O5/URG4=0.0 +! +!WC_N2O5/UR8=0.0 +! +!WC_N2O5/UR17=0.0 +! +!WC_N2O5/UR7=0.0 +! +!WC_N2O5/RPR3=0.0 +! +!WC_N2O5/URG6=0.0 +! +!WC_N2O5/UR22=0.0 +! +!WC_N2O5/URG7=0.0 +! +!WC_N2O5/RPR4=0.0 +! +!WC_N2O5/RPR7=0.0 +! +!WC_N2O5/RPG7=0.0 +! +!WC_N2O5/URG8=0.0 +! +!WC_N2O5/UR19=0.0 +! +!WC_N2O5/URG9=0.0 +! +!WC_N2O5/AP7=0.0 +! +!WC_N2O5/URG10=0.0 +! +!WC_N2O5/RPR1=0.0 +! +!WC_N2O5/RPR5=0.0 +! +!WC_N2O5/RPR8=0.0 +! +!WC_N2O5/RP10=0.0 +! +!WC_N2O5/RP11=0.0 +! +!WC_N2O5/RP16=0.0 +! +!WC_N2O5/RPRL=0.0 +! +!WC_N2O5/APAN=0.0 +! +!WC_N2O5/PAN1=0.0 +! +!WC_N2O5/PAN2=0.0 +! +!WC_N2O5/PAN3=0.0 +! +!WC_N2O5/PAN4=0.0 +! +!WC_N2O5/PAN6=0.0 +! +!WC_N2O5/PAN7=0.0 +! +!WC_N2O5/PAN8=0.0 +! +!WC_N2O5/PN10=0.0 +! +!WC_N2O5/RO2T=0.0 +! +!WC_N2O5/RO21=0.0 +! +!WC_N2O5/RO25=0.0 +! +!WC_N2O5/WC_O3=0.0 +! +!WC_N2O5/WC_H2O2=0.0 +! +!WC_N2O5/WC_NO=0.0 +! +!WC_N2O5/WC_NO2=0.0 +! +!WC_N2O5/WC_NO3=0.0 +! +!WC_N2O5/WC_N2O5=-KTC37-KC14 + PJAC(:,93,93)=-TPK%KTC37(:)-TPK%KC14(:) +! +!WC_N2O5/WC_HONO=0.0 +! +!WC_N2O5/WC_HNO3=0.0 +! +!WC_N2O5/WC_HNO4=0.0 +! +!WC_N2O5/WC_NH3=0.0 +! +!WC_N2O5/WC_OH=0.0 +! +!WC_N2O5/WC_HO2=0.0 +! +!WC_N2O5/WC_CO2=0.0 +! +!WC_N2O5/WC_SO2=0.0 +! +!WC_N2O5/WC_H2SO4=0.0 +! +!WC_N2O5/WC_RO21=0.0 +! +!WC_N2O5/WC_RO25=0.0 +! +!WC_N2O5/WC_MEOH=0.0 +! +!WC_N2O5/WC_ETOH=0.0 +! +!WC_N2O5/WC_ALCH=0.0 +! +!WC_N2O5/WC_HCHO=0.0 +! +!WC_N2O5/WC_ALD2=0.0 +! +!WC_N2O5/WC_GLY=0.0 +! +!WC_N2O5/WC_MGLY=0.0 +! +!WC_N2O5/WC_KETL=0.0 +! +!WC_N2O5/WC_ORA1=0.0 +! +!WC_N2O5/WC_ORA2=0.0 +! +!WC_N2O5/WC_ACID=0.0 +! +!WC_N2O5/WC_RP16=0.0 +! +!WC_N2O5/WC_UR21=0.0 +! +!WC_N2O5/WC_UR28=0.0 +! +!WC_N2O5/WC_ACID2=0.0 +! +!WC_N2O5/WC_ASO3=0.0 +! +!WC_N2O5/WC_ASO4=0.0 +! +!WC_N2O5/WC_ASO5=0.0 +! +!WC_N2O5/WC_AHSO5=0.0 +! +!WC_N2O5/WC_AHMS=0.0 +! +!WC_N2O5/WR_O3=0.0 +! +!WC_N2O5/WR_H2O2=0.0 +! +!WC_N2O5/WR_NO=0.0 +! +!WC_N2O5/WR_NO2=0.0 +! +!WC_N2O5/WR_NO3=0.0 +! +!WC_N2O5/WR_N2O5=0.0 +! +!WC_N2O5/WR_HONO=0.0 +! +!WC_N2O5/WR_HNO3=0.0 +! +!WC_N2O5/WR_HNO4=0.0 +! +!WC_N2O5/WR_NH3=0.0 +! +!WC_N2O5/WR_OH=0.0 +! +!WC_N2O5/WR_HO2=0.0 +! +!WC_N2O5/WR_CO2=0.0 +! +!WC_N2O5/WR_SO2=0.0 +! +!WC_N2O5/WR_H2SO4=0.0 +! +!WC_N2O5/WR_RO21=0.0 +! +!WC_N2O5/WR_RO25=0.0 +! +!WC_N2O5/WR_MEOH=0.0 +! +!WC_N2O5/WR_ETOH=0.0 +! +!WC_N2O5/WR_ALCH=0.0 +! +!WC_N2O5/WR_HCHO=0.0 +! +!WC_N2O5/WR_ALD2=0.0 +! +!WC_N2O5/WR_GLY=0.0 +! +!WC_N2O5/WR_MGLY=0.0 +! +!WC_N2O5/WR_KETL=0.0 +! +!WC_N2O5/WR_ORA1=0.0 +! +!WC_N2O5/WR_ORA2=0.0 +! +!WC_N2O5/WR_ACID=0.0 +! +!WC_N2O5/WR_RP16=0.0 +! +!WC_N2O5/WR_UR21=0.0 +! +!WC_N2O5/WR_UR28=0.0 +! +!WC_N2O5/WR_ACID2=0.0 +! +!WC_N2O5/WR_ASO3=0.0 +! +!WC_N2O5/WR_ASO4=0.0 +! +!WC_N2O5/WR_ASO5=0.0 +! +!WC_N2O5/WR_AHSO5=0.0 +! +!WC_N2O5/WR_AHMS=0.0 +! +!WC_HONO/NO=0.0 +! +!WC_HONO/NO2=0.0 +! +!WC_HONO/O3=0.0 +! +!WC_HONO/HONO=+KTC7 + PJAC(:,94,4)=+TPK%KTC7(:) +! +!WC_HONO/HNO3=0.0 +! +!WC_HONO/HNO4=0.0 +! +!WC_HONO/N2O5=0.0 +! +!WC_HONO/NO3=0.0 +! +!WC_HONO/NH3=0.0 +! +!WC_HONO/HO2=0.0 +! +!WC_HONO/CO=0.0 +! +!WC_HONO/H2O2=0.0 +! +!WC_HONO/SO2=0.0 +! +!WC_HONO/H2SO4=0.0 +! +!WC_HONO/OH=0.0 +! +!WC_HONO/ETHE=0.0 +! +!WC_HONO/OLEL=0.0 +! +!WC_HONO/OLEH=0.0 +! +!WC_HONO/ALKL=0.0 +! +!WC_HONO/ALKM=0.0 +! +!WC_HONO/ALKH=0.0 +! +!WC_HONO/AROH=0.0 +! +!WC_HONO/AROL=0.0 +! +!WC_HONO/AROO=0.0 +! +!WC_HONO/ARAL=0.0 +! +!WC_HONO/ARAC=0.0 +! +!WC_HONO/PAH=0.0 +! +!WC_HONO/HCHO=0.0 +! +!WC_HONO/ALD2=0.0 +! +!WC_HONO/KETL=0.0 +! +!WC_HONO/KETH=0.0 +! +!WC_HONO/MEOH=0.0 +! +!WC_HONO/ETOH=0.0 +! +!WC_HONO/ALCH=0.0 +! +!WC_HONO/ISOP=0.0 +! +!WC_HONO/BIOL=0.0 +! +!WC_HONO/BIOH=0.0 +! +!WC_HONO/MTBE=0.0 +! +!WC_HONO/MVK=0.0 +! +!WC_HONO/MCR=0.0 +! +!WC_HONO/MGLY=0.0 +! +!WC_HONO/GLY=0.0 +! +!WC_HONO/ORA1=0.0 +! +!WC_HONO/ORA2=0.0 +! +!WC_HONO/ACID=0.0 +! +!WC_HONO/UR28=0.0 +! +!WC_HONO/UR21=0.0 +! +!WC_HONO/URG2=0.0 +! +!WC_HONO/UR26=0.0 +! +!WC_HONO/RPG2=0.0 +! +!WC_HONO/RP18=0.0 +! +!WC_HONO/RPG3=0.0 +! +!WC_HONO/URG4=0.0 +! +!WC_HONO/UR8=0.0 +! +!WC_HONO/UR17=0.0 +! +!WC_HONO/UR7=0.0 +! +!WC_HONO/RPR3=0.0 +! +!WC_HONO/URG6=0.0 +! +!WC_HONO/UR22=0.0 +! +!WC_HONO/URG7=0.0 +! +!WC_HONO/RPR4=0.0 +! +!WC_HONO/RPR7=0.0 +! +!WC_HONO/RPG7=0.0 +! +!WC_HONO/URG8=0.0 +! +!WC_HONO/UR19=0.0 +! +!WC_HONO/URG9=0.0 +! +!WC_HONO/AP7=0.0 +! +!WC_HONO/URG10=0.0 +! +!WC_HONO/RPR1=0.0 +! +!WC_HONO/RPR5=0.0 +! +!WC_HONO/RPR8=0.0 +! +!WC_HONO/RP10=0.0 +! +!WC_HONO/RP11=0.0 +! +!WC_HONO/RP16=0.0 +! +!WC_HONO/RPRL=0.0 +! +!WC_HONO/APAN=0.0 +! +!WC_HONO/PAN1=0.0 +! +!WC_HONO/PAN2=0.0 +! +!WC_HONO/PAN3=0.0 +! +!WC_HONO/PAN4=0.0 +! +!WC_HONO/PAN6=0.0 +! +!WC_HONO/PAN7=0.0 +! +!WC_HONO/PAN8=0.0 +! +!WC_HONO/PN10=0.0 +! +!WC_HONO/RO2T=0.0 +! +!WC_HONO/RO21=0.0 +! +!WC_HONO/RO25=0.0 +! +!WC_HONO/WC_O3=0.0 +! +!WC_HONO/WC_H2O2=0.0 +! +!WC_HONO/WC_NO=0.0 +! +!WC_HONO/WC_NO2=0.0 +! +!WC_HONO/WC_NO3=0.0 +! +!WC_HONO/WC_N2O5=0.0 +! +!WC_HONO/WC_HONO=-KTC38-KC8*<WC_OH> + PJAC(:,94,94)=-TPK%KTC38(:)-TPK%KC8(:)*PCONC(:,98) +! +!WC_HONO/WC_HNO3=0.0 +! +!WC_HONO/WC_HNO4=+KC11 + PJAC(:,94,96)=+TPK%KC11(:) +! +!WC_HONO/WC_NH3=0.0 +! +!WC_HONO/WC_OH=-KC8*<WC_HONO> + PJAC(:,94,98)=-TPK%KC8(:)*PCONC(:,94) +! +!WC_HONO/WC_HO2=0.0 +! +!WC_HONO/WC_CO2=0.0 +! +!WC_HONO/WC_SO2=0.0 +! +!WC_HONO/WC_H2SO4=0.0 +! +!WC_HONO/WC_RO21=0.0 +! +!WC_HONO/WC_RO25=0.0 +! +!WC_HONO/WC_MEOH=0.0 +! +!WC_HONO/WC_ETOH=0.0 +! +!WC_HONO/WC_ALCH=0.0 +! +!WC_HONO/WC_HCHO=0.0 +! +!WC_HONO/WC_ALD2=0.0 +! +!WC_HONO/WC_GLY=0.0 +! +!WC_HONO/WC_MGLY=0.0 +! +!WC_HONO/WC_KETL=0.0 +! +!WC_HONO/WC_ORA1=0.0 +! +!WC_HONO/WC_ORA2=0.0 +! +!WC_HONO/WC_ACID=0.0 +! +!WC_HONO/WC_RP16=0.0 +! +!WC_HONO/WC_UR21=0.0 +! +!WC_HONO/WC_UR28=0.0 +! +!WC_HONO/WC_ACID2=0.0 +! +!WC_HONO/WC_ASO3=0.0 +! +!WC_HONO/WC_ASO4=0.0 +! +!WC_HONO/WC_ASO5=0.0 +! +!WC_HONO/WC_AHSO5=0.0 +! +!WC_HONO/WC_AHMS=0.0 +! +!WC_HONO/WR_O3=0.0 +! +!WC_HONO/WR_H2O2=0.0 +! +!WC_HONO/WR_NO=0.0 +! +!WC_HONO/WR_NO2=0.0 +! +!WC_HONO/WR_NO3=0.0 +! +!WC_HONO/WR_N2O5=0.0 +! +!WC_HONO/WR_HONO=0.0 +! +!WC_HONO/WR_HNO3=0.0 +! +!WC_HONO/WR_HNO4=0.0 +! +!WC_HONO/WR_NH3=0.0 +! +!WC_HONO/WR_OH=0.0 +! +!WC_HONO/WR_HO2=0.0 +! +!WC_HONO/WR_CO2=0.0 +! +!WC_HONO/WR_SO2=0.0 +! +!WC_HONO/WR_H2SO4=0.0 +! +!WC_HONO/WR_RO21=0.0 +! +!WC_HONO/WR_RO25=0.0 +! +!WC_HONO/WR_MEOH=0.0 +! +!WC_HONO/WR_ETOH=0.0 +! +!WC_HONO/WR_ALCH=0.0 +! +!WC_HONO/WR_HCHO=0.0 +! +!WC_HONO/WR_ALD2=0.0 +! +!WC_HONO/WR_GLY=0.0 +! +!WC_HONO/WR_MGLY=0.0 +! +!WC_HONO/WR_KETL=0.0 +! +!WC_HONO/WR_ORA1=0.0 +! +!WC_HONO/WR_ORA2=0.0 +! +!WC_HONO/WR_ACID=0.0 +! +!WC_HONO/WR_RP16=0.0 +! +!WC_HONO/WR_UR21=0.0 +! +!WC_HONO/WR_UR28=0.0 +! +!WC_HONO/WR_ACID2=0.0 +! +!WC_HONO/WR_ASO3=0.0 +! +!WC_HONO/WR_ASO4=0.0 +! +!WC_HONO/WR_ASO5=0.0 +! +!WC_HONO/WR_AHSO5=0.0 +! +!WC_HONO/WR_AHMS=0.0 +! +!WC_HNO3/NO=0.0 +! +!WC_HNO3/NO2=0.0 +! +!WC_HNO3/O3=0.0 +! +!WC_HNO3/HONO=0.0 +! +!WC_HNO3/HNO3=+KTC8 + PJAC(:,95,5)=+TPK%KTC8(:) +! +!WC_HNO3/HNO4=0.0 +! +!WC_HNO3/N2O5=0.0 +! +!WC_HNO3/NO3=0.0 +! +!WC_HNO3/NH3=0.0 +! +!WC_HNO3/HO2=0.0 +! +!WC_HNO3/CO=0.0 +! +!WC_HNO3/H2O2=0.0 +! +!WC_HNO3/SO2=0.0 +! +!WC_HNO3/H2SO4=0.0 +! +!WC_HNO3/OH=0.0 +! +!WC_HNO3/ETHE=0.0 +! +!WC_HNO3/OLEL=0.0 +! +!WC_HNO3/OLEH=0.0 +! +!WC_HNO3/ALKL=0.0 +! +!WC_HNO3/ALKM=0.0 +! +!WC_HNO3/ALKH=0.0 +! +!WC_HNO3/AROH=0.0 +! +!WC_HNO3/AROL=0.0 +! +!WC_HNO3/AROO=0.0 +! +!WC_HNO3/ARAL=0.0 +! +!WC_HNO3/ARAC=0.0 +! +!WC_HNO3/PAH=0.0 +! +!WC_HNO3/HCHO=0.0 +! +!WC_HNO3/ALD2=0.0 +! +!WC_HNO3/KETL=0.0 +! +!WC_HNO3/KETH=0.0 +! +!WC_HNO3/MEOH=0.0 +! +!WC_HNO3/ETOH=0.0 +! +!WC_HNO3/ALCH=0.0 +! +!WC_HNO3/ISOP=0.0 +! +!WC_HNO3/BIOL=0.0 +! +!WC_HNO3/BIOH=0.0 +! +!WC_HNO3/MTBE=0.0 +! +!WC_HNO3/MVK=0.0 +! +!WC_HNO3/MCR=0.0 +! +!WC_HNO3/MGLY=0.0 +! +!WC_HNO3/GLY=0.0 +! +!WC_HNO3/ORA1=0.0 +! +!WC_HNO3/ORA2=0.0 +! +!WC_HNO3/ACID=0.0 +! +!WC_HNO3/UR28=0.0 +! +!WC_HNO3/UR21=0.0 +! +!WC_HNO3/URG2=0.0 +! +!WC_HNO3/UR26=0.0 +! +!WC_HNO3/RPG2=0.0 +! +!WC_HNO3/RP18=0.0 +! +!WC_HNO3/RPG3=0.0 +! +!WC_HNO3/URG4=0.0 +! +!WC_HNO3/UR8=0.0 +! +!WC_HNO3/UR17=0.0 +! +!WC_HNO3/UR7=0.0 +! +!WC_HNO3/RPR3=0.0 +! +!WC_HNO3/URG6=0.0 +! +!WC_HNO3/UR22=0.0 +! +!WC_HNO3/URG7=0.0 +! +!WC_HNO3/RPR4=0.0 +! +!WC_HNO3/RPR7=0.0 +! +!WC_HNO3/RPG7=0.0 +! +!WC_HNO3/URG8=0.0 +! +!WC_HNO3/UR19=0.0 +! +!WC_HNO3/URG9=0.0 +! +!WC_HNO3/AP7=0.0 +! +!WC_HNO3/URG10=0.0 +! +!WC_HNO3/RPR1=0.0 +! +!WC_HNO3/RPR5=0.0 +! +!WC_HNO3/RPR8=0.0 +! +!WC_HNO3/RP10=0.0 +! +!WC_HNO3/RP11=0.0 +! +!WC_HNO3/RP16=0.0 +! +!WC_HNO3/RPRL=0.0 +! +!WC_HNO3/APAN=0.0 +! +!WC_HNO3/PAN1=0.0 +! +!WC_HNO3/PAN2=0.0 +! +!WC_HNO3/PAN3=0.0 +! +!WC_HNO3/PAN4=0.0 +! +!WC_HNO3/PAN6=0.0 +! +!WC_HNO3/PAN7=0.0 +! +!WC_HNO3/PAN8=0.0 +! +!WC_HNO3/PN10=0.0 +! +!WC_HNO3/RO2T=0.0 +! +!WC_HNO3/RO21=0.0 +! +!WC_HNO3/RO25=0.0 +! +!WC_HNO3/WC_O3=0.0 +! +!WC_HNO3/WC_H2O2=0.0 +! +!WC_HNO3/WC_NO=0.0 +! +!WC_HNO3/WC_NO2=0.0 +! +!WC_HNO3/WC_NO3=+KC15*<WC_H2SO4>+KC16*<WC_SO2> + PJAC(:,95,92)=+TPK%KC15(:)*PCONC(:,102)+TPK%KC16(:)*PCONC(:,101) +! +!WC_HNO3/WC_N2O5=+KC14+KC14 + PJAC(:,95,93)=+TPK%KC14(:)+TPK%KC14(:) +! +!WC_HNO3/WC_HONO=0.0 +! +!WC_HNO3/WC_HNO3=-KTC39-KC13 + PJAC(:,95,95)=-TPK%KTC39(:)-TPK%KC13(:) +! +!WC_HNO3/WC_HNO4=+KC12*<WC_SO2> + PJAC(:,95,96)=+TPK%KC12(:)*PCONC(:,101) +! +!WC_HNO3/WC_NH3=0.0 +! +!WC_HNO3/WC_OH=0.0 +! +!WC_HNO3/WC_HO2=0.0 +! +!WC_HNO3/WC_CO2=0.0 +! +!WC_HNO3/WC_SO2=+KC12*<WC_HNO4>+KC16*<WC_NO3> + PJAC(:,95,101)=+TPK%KC12(:)*PCONC(:,96)+TPK%KC16(:)*PCONC(:,92) +! +!WC_HNO3/WC_H2SO4=+KC15*<WC_NO3> + PJAC(:,95,102)=+TPK%KC15(:)*PCONC(:,92) +! +!WC_HNO3/WC_RO21=0.0 +! +!WC_HNO3/WC_RO25=0.0 +! +!WC_HNO3/WC_MEOH=0.0 +! +!WC_HNO3/WC_ETOH=0.0 +! +!WC_HNO3/WC_ALCH=0.0 +! +!WC_HNO3/WC_HCHO=0.0 +! +!WC_HNO3/WC_ALD2=0.0 +! +!WC_HNO3/WC_GLY=0.0 +! +!WC_HNO3/WC_MGLY=0.0 +! +!WC_HNO3/WC_KETL=0.0 +! +!WC_HNO3/WC_ORA1=0.0 +! +!WC_HNO3/WC_ORA2=0.0 +! +!WC_HNO3/WC_ACID=0.0 +! +!WC_HNO3/WC_RP16=0.0 +! +!WC_HNO3/WC_UR21=0.0 +! +!WC_HNO3/WC_UR28=0.0 +! +!WC_HNO3/WC_ACID2=0.0 +! +!WC_HNO3/WC_ASO3=0.0 +! +!WC_HNO3/WC_ASO4=0.0 +! +!WC_HNO3/WC_ASO5=0.0 +! +!WC_HNO3/WC_AHSO5=0.0 +! +!WC_HNO3/WC_AHMS=0.0 +! +!WC_HNO3/WR_O3=0.0 +! +!WC_HNO3/WR_H2O2=0.0 +! +!WC_HNO3/WR_NO=0.0 +! +!WC_HNO3/WR_NO2=0.0 +! +!WC_HNO3/WR_NO3=0.0 +! +!WC_HNO3/WR_N2O5=0.0 +! +!WC_HNO3/WR_HONO=0.0 +! +!WC_HNO3/WR_HNO3=0.0 +! +!WC_HNO3/WR_HNO4=0.0 +! +!WC_HNO3/WR_NH3=0.0 +! +!WC_HNO3/WR_OH=0.0 +! +!WC_HNO3/WR_HO2=0.0 +! +!WC_HNO3/WR_CO2=0.0 +! +!WC_HNO3/WR_SO2=0.0 +! +!WC_HNO3/WR_H2SO4=0.0 +! +!WC_HNO3/WR_RO21=0.0 +! +!WC_HNO3/WR_RO25=0.0 +! +!WC_HNO3/WR_MEOH=0.0 +! +!WC_HNO3/WR_ETOH=0.0 +! +!WC_HNO3/WR_ALCH=0.0 +! +!WC_HNO3/WR_HCHO=0.0 +! +!WC_HNO3/WR_ALD2=0.0 +! +!WC_HNO3/WR_GLY=0.0 +! +!WC_HNO3/WR_MGLY=0.0 +! +!WC_HNO3/WR_KETL=0.0 +! +!WC_HNO3/WR_ORA1=0.0 +! +!WC_HNO3/WR_ORA2=0.0 +! +!WC_HNO3/WR_ACID=0.0 +! +!WC_HNO3/WR_RP16=0.0 +! +!WC_HNO3/WR_UR21=0.0 +! +!WC_HNO3/WR_UR28=0.0 +! +!WC_HNO3/WR_ACID2=0.0 +! +!WC_HNO3/WR_ASO3=0.0 +! +!WC_HNO3/WR_ASO4=0.0 +! +!WC_HNO3/WR_ASO5=0.0 +! +!WC_HNO3/WR_AHSO5=0.0 +! +!WC_HNO3/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ18 +! +SUBROUTINE SUBJ19 +! +!Indices 96 a 100 +! +! +!WC_HNO4/NO=0.0 +! +!WC_HNO4/NO2=0.0 +! +!WC_HNO4/O3=0.0 +! +!WC_HNO4/HONO=0.0 +! +!WC_HNO4/HNO3=0.0 +! +!WC_HNO4/HNO4=+KTC9 + PJAC(:,96,6)=+TPK%KTC9(:) +! +!WC_HNO4/N2O5=0.0 +! +!WC_HNO4/NO3=0.0 +! +!WC_HNO4/NH3=0.0 +! +!WC_HNO4/HO2=0.0 +! +!WC_HNO4/CO=0.0 +! +!WC_HNO4/H2O2=0.0 +! +!WC_HNO4/SO2=0.0 +! +!WC_HNO4/H2SO4=0.0 +! +!WC_HNO4/OH=0.0 +! +!WC_HNO4/ETHE=0.0 +! +!WC_HNO4/OLEL=0.0 +! +!WC_HNO4/OLEH=0.0 +! +!WC_HNO4/ALKL=0.0 +! +!WC_HNO4/ALKM=0.0 +! +!WC_HNO4/ALKH=0.0 +! +!WC_HNO4/AROH=0.0 +! +!WC_HNO4/AROL=0.0 +! +!WC_HNO4/AROO=0.0 +! +!WC_HNO4/ARAL=0.0 +! +!WC_HNO4/ARAC=0.0 +! +!WC_HNO4/PAH=0.0 +! +!WC_HNO4/HCHO=0.0 +! +!WC_HNO4/ALD2=0.0 +! +!WC_HNO4/KETL=0.0 +! +!WC_HNO4/KETH=0.0 +! +!WC_HNO4/MEOH=0.0 +! +!WC_HNO4/ETOH=0.0 +! +!WC_HNO4/ALCH=0.0 +! +!WC_HNO4/ISOP=0.0 +! +!WC_HNO4/BIOL=0.0 +! +!WC_HNO4/BIOH=0.0 +! +!WC_HNO4/MTBE=0.0 +! +!WC_HNO4/MVK=0.0 +! +!WC_HNO4/MCR=0.0 +! +!WC_HNO4/MGLY=0.0 +! +!WC_HNO4/GLY=0.0 +! +!WC_HNO4/ORA1=0.0 +! +!WC_HNO4/ORA2=0.0 +! +!WC_HNO4/ACID=0.0 +! +!WC_HNO4/UR28=0.0 +! +!WC_HNO4/UR21=0.0 +! +!WC_HNO4/URG2=0.0 +! +!WC_HNO4/UR26=0.0 +! +!WC_HNO4/RPG2=0.0 +! +!WC_HNO4/RP18=0.0 +! +!WC_HNO4/RPG3=0.0 +! +!WC_HNO4/URG4=0.0 +! +!WC_HNO4/UR8=0.0 +! +!WC_HNO4/UR17=0.0 +! +!WC_HNO4/UR7=0.0 +! +!WC_HNO4/RPR3=0.0 +! +!WC_HNO4/URG6=0.0 +! +!WC_HNO4/UR22=0.0 +! +!WC_HNO4/URG7=0.0 +! +!WC_HNO4/RPR4=0.0 +! +!WC_HNO4/RPR7=0.0 +! +!WC_HNO4/RPG7=0.0 +! +!WC_HNO4/URG8=0.0 +! +!WC_HNO4/UR19=0.0 +! +!WC_HNO4/URG9=0.0 +! +!WC_HNO4/AP7=0.0 +! +!WC_HNO4/URG10=0.0 +! +!WC_HNO4/RPR1=0.0 +! +!WC_HNO4/RPR5=0.0 +! +!WC_HNO4/RPR8=0.0 +! +!WC_HNO4/RP10=0.0 +! +!WC_HNO4/RP11=0.0 +! +!WC_HNO4/RP16=0.0 +! +!WC_HNO4/RPRL=0.0 +! +!WC_HNO4/APAN=0.0 +! +!WC_HNO4/PAN1=0.0 +! +!WC_HNO4/PAN2=0.0 +! +!WC_HNO4/PAN3=0.0 +! +!WC_HNO4/PAN4=0.0 +! +!WC_HNO4/PAN6=0.0 +! +!WC_HNO4/PAN7=0.0 +! +!WC_HNO4/PAN8=0.0 +! +!WC_HNO4/PN10=0.0 +! +!WC_HNO4/RO2T=0.0 +! +!WC_HNO4/RO21=0.0 +! +!WC_HNO4/RO25=0.0 +! +!WC_HNO4/WC_O3=0.0 +! +!WC_HNO4/WC_H2O2=0.0 +! +!WC_HNO4/WC_NO=0.0 +! +!WC_HNO4/WC_NO2=+KC9*<WC_HO2> + PJAC(:,96,91)=+TPK%KC9(:)*PCONC(:,99) +! +!WC_HNO4/WC_NO3=0.0 +! +!WC_HNO4/WC_N2O5=0.0 +! +!WC_HNO4/WC_HONO=0.0 +! +!WC_HNO4/WC_HNO3=0.0 +! +!WC_HNO4/WC_HNO4=-KTC40-KC10-KC11-KC12*<WC_SO2> + PJAC(:,96,96)=-TPK%KTC40(:)-TPK%KC10(:)-TPK%KC11(:)-TPK%KC12(:)*PCONC(:,101) +! +!WC_HNO4/WC_NH3=0.0 +! +!WC_HNO4/WC_OH=0.0 +! +!WC_HNO4/WC_HO2=+KC9*<WC_NO2> + PJAC(:,96,99)=+TPK%KC9(:)*PCONC(:,91) +! +!WC_HNO4/WC_CO2=0.0 +! +!WC_HNO4/WC_SO2=-KC12*<WC_HNO4> + PJAC(:,96,101)=-TPK%KC12(:)*PCONC(:,96) +! +!WC_HNO4/WC_H2SO4=0.0 +! +!WC_HNO4/WC_RO21=0.0 +! +!WC_HNO4/WC_RO25=0.0 +! +!WC_HNO4/WC_MEOH=0.0 +! +!WC_HNO4/WC_ETOH=0.0 +! +!WC_HNO4/WC_ALCH=0.0 +! +!WC_HNO4/WC_HCHO=0.0 +! +!WC_HNO4/WC_ALD2=0.0 +! +!WC_HNO4/WC_GLY=0.0 +! +!WC_HNO4/WC_MGLY=0.0 +! +!WC_HNO4/WC_KETL=0.0 +! +!WC_HNO4/WC_ORA1=0.0 +! +!WC_HNO4/WC_ORA2=0.0 +! +!WC_HNO4/WC_ACID=0.0 +! +!WC_HNO4/WC_RP16=0.0 +! +!WC_HNO4/WC_UR21=0.0 +! +!WC_HNO4/WC_UR28=0.0 +! +!WC_HNO4/WC_ACID2=0.0 +! +!WC_HNO4/WC_ASO3=0.0 +! +!WC_HNO4/WC_ASO4=0.0 +! +!WC_HNO4/WC_ASO5=0.0 +! +!WC_HNO4/WC_AHSO5=0.0 +! +!WC_HNO4/WC_AHMS=0.0 +! +!WC_HNO4/WR_O3=0.0 +! +!WC_HNO4/WR_H2O2=0.0 +! +!WC_HNO4/WR_NO=0.0 +! +!WC_HNO4/WR_NO2=0.0 +! +!WC_HNO4/WR_NO3=0.0 +! +!WC_HNO4/WR_N2O5=0.0 +! +!WC_HNO4/WR_HONO=0.0 +! +!WC_HNO4/WR_HNO3=0.0 +! +!WC_HNO4/WR_HNO4=0.0 +! +!WC_HNO4/WR_NH3=0.0 +! +!WC_HNO4/WR_OH=0.0 +! +!WC_HNO4/WR_HO2=0.0 +! +!WC_HNO4/WR_CO2=0.0 +! +!WC_HNO4/WR_SO2=0.0 +! +!WC_HNO4/WR_H2SO4=0.0 +! +!WC_HNO4/WR_RO21=0.0 +! +!WC_HNO4/WR_RO25=0.0 +! +!WC_HNO4/WR_MEOH=0.0 +! +!WC_HNO4/WR_ETOH=0.0 +! +!WC_HNO4/WR_ALCH=0.0 +! +!WC_HNO4/WR_HCHO=0.0 +! +!WC_HNO4/WR_ALD2=0.0 +! +!WC_HNO4/WR_GLY=0.0 +! +!WC_HNO4/WR_MGLY=0.0 +! +!WC_HNO4/WR_KETL=0.0 +! +!WC_HNO4/WR_ORA1=0.0 +! +!WC_HNO4/WR_ORA2=0.0 +! +!WC_HNO4/WR_ACID=0.0 +! +!WC_HNO4/WR_RP16=0.0 +! +!WC_HNO4/WR_UR21=0.0 +! +!WC_HNO4/WR_UR28=0.0 +! +!WC_HNO4/WR_ACID2=0.0 +! +!WC_HNO4/WR_ASO3=0.0 +! +!WC_HNO4/WR_ASO4=0.0 +! +!WC_HNO4/WR_ASO5=0.0 +! +!WC_HNO4/WR_AHSO5=0.0 +! +!WC_HNO4/WR_AHMS=0.0 +! +!WC_NH3/NO=0.0 +! +!WC_NH3/NO2=0.0 +! +!WC_NH3/O3=0.0 +! +!WC_NH3/HONO=0.0 +! +!WC_NH3/HNO3=0.0 +! +!WC_NH3/HNO4=0.0 +! +!WC_NH3/N2O5=0.0 +! +!WC_NH3/NO3=0.0 +! +!WC_NH3/NH3=+KTC10 + PJAC(:,97,9)=+TPK%KTC10(:) +! +!WC_NH3/HO2=0.0 +! +!WC_NH3/CO=0.0 +! +!WC_NH3/H2O2=0.0 +! +!WC_NH3/SO2=0.0 +! +!WC_NH3/H2SO4=0.0 +! +!WC_NH3/OH=0.0 +! +!WC_NH3/ETHE=0.0 +! +!WC_NH3/OLEL=0.0 +! +!WC_NH3/OLEH=0.0 +! +!WC_NH3/ALKL=0.0 +! +!WC_NH3/ALKM=0.0 +! +!WC_NH3/ALKH=0.0 +! +!WC_NH3/AROH=0.0 +! +!WC_NH3/AROL=0.0 +! +!WC_NH3/AROO=0.0 +! +!WC_NH3/ARAL=0.0 +! +!WC_NH3/ARAC=0.0 +! +!WC_NH3/PAH=0.0 +! +!WC_NH3/HCHO=0.0 +! +!WC_NH3/ALD2=0.0 +! +!WC_NH3/KETL=0.0 +! +!WC_NH3/KETH=0.0 +! +!WC_NH3/MEOH=0.0 +! +!WC_NH3/ETOH=0.0 +! +!WC_NH3/ALCH=0.0 +! +!WC_NH3/ISOP=0.0 +! +!WC_NH3/BIOL=0.0 +! +!WC_NH3/BIOH=0.0 +! +!WC_NH3/MTBE=0.0 +! +!WC_NH3/MVK=0.0 +! +!WC_NH3/MCR=0.0 +! +!WC_NH3/MGLY=0.0 +! +!WC_NH3/GLY=0.0 +! +!WC_NH3/ORA1=0.0 +! +!WC_NH3/ORA2=0.0 +! +!WC_NH3/ACID=0.0 +! +!WC_NH3/UR28=0.0 +! +!WC_NH3/UR21=0.0 +! +!WC_NH3/URG2=0.0 +! +!WC_NH3/UR26=0.0 +! +!WC_NH3/RPG2=0.0 +! +!WC_NH3/RP18=0.0 +! +!WC_NH3/RPG3=0.0 +! +!WC_NH3/URG4=0.0 +! +!WC_NH3/UR8=0.0 +! +!WC_NH3/UR17=0.0 +! +!WC_NH3/UR7=0.0 +! +!WC_NH3/RPR3=0.0 +! +!WC_NH3/URG6=0.0 +! +!WC_NH3/UR22=0.0 +! +!WC_NH3/URG7=0.0 +! +!WC_NH3/RPR4=0.0 +! +!WC_NH3/RPR7=0.0 +! +!WC_NH3/RPG7=0.0 +! +!WC_NH3/URG8=0.0 +! +!WC_NH3/UR19=0.0 +! +!WC_NH3/URG9=0.0 +! +!WC_NH3/AP7=0.0 +! +!WC_NH3/URG10=0.0 +! +!WC_NH3/RPR1=0.0 +! +!WC_NH3/RPR5=0.0 +! +!WC_NH3/RPR8=0.0 +! +!WC_NH3/RP10=0.0 +! +!WC_NH3/RP11=0.0 +! +!WC_NH3/RP16=0.0 +! +!WC_NH3/RPRL=0.0 +! +!WC_NH3/APAN=0.0 +! +!WC_NH3/PAN1=0.0 +! +!WC_NH3/PAN2=0.0 +! +!WC_NH3/PAN3=0.0 +! +!WC_NH3/PAN4=0.0 +! +!WC_NH3/PAN6=0.0 +! +!WC_NH3/PAN7=0.0 +! +!WC_NH3/PAN8=0.0 +! +!WC_NH3/PN10=0.0 +! +!WC_NH3/RO2T=0.0 +! +!WC_NH3/RO21=0.0 +! +!WC_NH3/RO25=0.0 +! +!WC_NH3/WC_O3=0.0 +! +!WC_NH3/WC_H2O2=0.0 +! +!WC_NH3/WC_NO=0.0 +! +!WC_NH3/WC_NO2=0.0 +! +!WC_NH3/WC_NO3=0.0 +! +!WC_NH3/WC_N2O5=0.0 +! +!WC_NH3/WC_HONO=0.0 +! +!WC_NH3/WC_HNO3=0.0 +! +!WC_NH3/WC_HNO4=0.0 +! +!WC_NH3/WC_NH3=-KTC41 + PJAC(:,97,97)=-TPK%KTC41(:) +! +!WC_NH3/WC_OH=0.0 +! +!WC_NH3/WC_HO2=0.0 +! +!WC_NH3/WC_CO2=0.0 +! +!WC_NH3/WC_SO2=0.0 +! +!WC_NH3/WC_H2SO4=0.0 +! +!WC_NH3/WC_RO21=0.0 +! +!WC_NH3/WC_RO25=0.0 +! +!WC_NH3/WC_MEOH=0.0 +! +!WC_NH3/WC_ETOH=0.0 +! +!WC_NH3/WC_ALCH=0.0 +! +!WC_NH3/WC_HCHO=0.0 +! +!WC_NH3/WC_ALD2=0.0 +! +!WC_NH3/WC_GLY=0.0 +! +!WC_NH3/WC_MGLY=0.0 +! +!WC_NH3/WC_KETL=0.0 +! +!WC_NH3/WC_ORA1=0.0 +! +!WC_NH3/WC_ORA2=0.0 +! +!WC_NH3/WC_ACID=0.0 +! +!WC_NH3/WC_RP16=0.0 +! +!WC_NH3/WC_UR21=0.0 +! +!WC_NH3/WC_UR28=0.0 +! +!WC_NH3/WC_ACID2=0.0 +! +!WC_NH3/WC_ASO3=0.0 +! +!WC_NH3/WC_ASO4=0.0 +! +!WC_NH3/WC_ASO5=0.0 +! +!WC_NH3/WC_AHSO5=0.0 +! +!WC_NH3/WC_AHMS=0.0 +! +!WC_NH3/WR_O3=0.0 +! +!WC_NH3/WR_H2O2=0.0 +! +!WC_NH3/WR_NO=0.0 +! +!WC_NH3/WR_NO2=0.0 +! +!WC_NH3/WR_NO3=0.0 +! +!WC_NH3/WR_N2O5=0.0 +! +!WC_NH3/WR_HONO=0.0 +! +!WC_NH3/WR_HNO3=0.0 +! +!WC_NH3/WR_HNO4=0.0 +! +!WC_NH3/WR_NH3=0.0 +! +!WC_NH3/WR_OH=0.0 +! +!WC_NH3/WR_HO2=0.0 +! +!WC_NH3/WR_CO2=0.0 +! +!WC_NH3/WR_SO2=0.0 +! +!WC_NH3/WR_H2SO4=0.0 +! +!WC_NH3/WR_RO21=0.0 +! +!WC_NH3/WR_RO25=0.0 +! +!WC_NH3/WR_MEOH=0.0 +! +!WC_NH3/WR_ETOH=0.0 +! +!WC_NH3/WR_ALCH=0.0 +! +!WC_NH3/WR_HCHO=0.0 +! +!WC_NH3/WR_ALD2=0.0 +! +!WC_NH3/WR_GLY=0.0 +! +!WC_NH3/WR_MGLY=0.0 +! +!WC_NH3/WR_KETL=0.0 +! +!WC_NH3/WR_ORA1=0.0 +! +!WC_NH3/WR_ORA2=0.0 +! +!WC_NH3/WR_ACID=0.0 +! +!WC_NH3/WR_RP16=0.0 +! +!WC_NH3/WR_UR21=0.0 +! +!WC_NH3/WR_UR28=0.0 +! +!WC_NH3/WR_ACID2=0.0 +! +!WC_NH3/WR_ASO3=0.0 +! +!WC_NH3/WR_ASO4=0.0 +! +!WC_NH3/WR_ASO5=0.0 +! +!WC_NH3/WR_AHSO5=0.0 +! +!WC_NH3/WR_AHMS=0.0 +! +!WC_OH/NO=0.0 +! +!WC_OH/NO2=0.0 +! +!WC_OH/O3=0.0 +! +!WC_OH/HONO=0.0 +! +!WC_OH/HNO3=0.0 +! +!WC_OH/HNO4=0.0 +! +!WC_OH/N2O5=0.0 +! +!WC_OH/NO3=0.0 +! +!WC_OH/NH3=0.0 +! +!WC_OH/HO2=0.0 +! +!WC_OH/CO=0.0 +! +!WC_OH/H2O2=0.0 +! +!WC_OH/SO2=0.0 +! +!WC_OH/H2SO4=0.0 +! +!WC_OH/OH=+KTC11 + PJAC(:,98,15)=+TPK%KTC11(:) +! +!WC_OH/ETHE=0.0 +! +!WC_OH/OLEL=0.0 +! +!WC_OH/OLEH=0.0 +! +!WC_OH/ALKL=0.0 +! +!WC_OH/ALKM=0.0 +! +!WC_OH/ALKH=0.0 +! +!WC_OH/AROH=0.0 +! +!WC_OH/AROL=0.0 +! +!WC_OH/AROO=0.0 +! +!WC_OH/ARAL=0.0 +! +!WC_OH/ARAC=0.0 +! +!WC_OH/PAH=0.0 +! +!WC_OH/HCHO=0.0 +! +!WC_OH/ALD2=0.0 +! +!WC_OH/KETL=0.0 +! +!WC_OH/KETH=0.0 +! +!WC_OH/MEOH=0.0 +! +!WC_OH/ETOH=0.0 +! +!WC_OH/ALCH=0.0 +! +!WC_OH/ISOP=0.0 +! +!WC_OH/BIOL=0.0 +! +!WC_OH/BIOH=0.0 +! +!WC_OH/MTBE=0.0 +! +!WC_OH/MVK=0.0 +! +!WC_OH/MCR=0.0 +! +!WC_OH/MGLY=0.0 +! +!WC_OH/GLY=0.0 +! +!WC_OH/ORA1=0.0 +! +!WC_OH/ORA2=0.0 +! +!WC_OH/ACID=0.0 +! +!WC_OH/UR28=0.0 +! +!WC_OH/UR21=0.0 +! +!WC_OH/URG2=0.0 +! +!WC_OH/UR26=0.0 +! +!WC_OH/RPG2=0.0 +! +!WC_OH/RP18=0.0 +! +!WC_OH/RPG3=0.0 +! +!WC_OH/URG4=0.0 +! +!WC_OH/UR8=0.0 +! +!WC_OH/UR17=0.0 +! +!WC_OH/UR7=0.0 +! +!WC_OH/RPR3=0.0 +! +!WC_OH/URG6=0.0 +! +!WC_OH/UR22=0.0 +! +!WC_OH/URG7=0.0 +! +!WC_OH/RPR4=0.0 +! +!WC_OH/RPR7=0.0 +! +!WC_OH/RPG7=0.0 +! +!WC_OH/URG8=0.0 +! +!WC_OH/UR19=0.0 +! +!WC_OH/URG9=0.0 +! +!WC_OH/AP7=0.0 +! +!WC_OH/URG10=0.0 +! +!WC_OH/RPR1=0.0 +! +!WC_OH/RPR5=0.0 +! +!WC_OH/RPR8=0.0 +! +!WC_OH/RP10=0.0 +! +!WC_OH/RP11=0.0 +! +!WC_OH/RP16=0.0 +! +!WC_OH/RPRL=0.0 +! +!WC_OH/APAN=0.0 +! +!WC_OH/PAN1=0.0 +! +!WC_OH/PAN2=0.0 +! +!WC_OH/PAN3=0.0 +! +!WC_OH/PAN4=0.0 +! +!WC_OH/PAN6=0.0 +! +!WC_OH/PAN7=0.0 +! +!WC_OH/PAN8=0.0 +! +!WC_OH/PN10=0.0 +! +!WC_OH/RO2T=0.0 +! +!WC_OH/RO21=0.0 +! +!WC_OH/RO25=0.0 +! +!WC_OH/WC_O3=+KC6*<WC_HO2> + PJAC(:,98,88)=+TPK%KC6(:)*PCONC(:,99) +! +!WC_OH/WC_H2O2=+KC1+KC1-KC4*<WC_OH> + PJAC(:,98,89)=+TPK%KC1(:)+TPK%KC1(:)-TPK%KC4(:)*PCONC(:,98) +! +!WC_OH/WC_NO=0.0 +! +!WC_OH/WC_NO2=0.0 +! +!WC_OH/WC_NO3=0.0 +! +!WC_OH/WC_N2O5=0.0 +! +!WC_OH/WC_HONO=-KC8*<WC_OH> + PJAC(:,98,94)=-TPK%KC8(:)*PCONC(:,98) +! +!WC_OH/WC_HNO3=+KC13 + PJAC(:,98,95)=+TPK%KC13(:) +! +!WC_OH/WC_HNO4=0.0 +! +!WC_OH/WC_NH3=0.0 +! +!WC_OH/WC_OH=-KTC42-KC2*<WC_OH>-KC2*<WC_OH>-KC2*<WC_OH>-KC2*<WC_OH>-KC3*<WC_HO2 +!>-KC4*<WC_H2O2>-KC7*<WC_SO2>-KC8*<WC_HONO>-KC19*<WC_AHMS>-KC30*<WC_MEOH>-KC31* +!<WC_ETOH>-KC32*<WC_ALCH>-KC33*<WC_HCHO>-KC34*<WC_ALD2>-KC35*<WC_GLY>-KC36*<WC_ +!MGLY>-KC37*<WC_KETL>-KC38*<WC_ORA1>-KC39*<WC_ORA2>-KC40*<WC_ACID>-KC41*<WC_ACI +!D>-KC42*<WC_UR28>-KC43*<WC_UR21>-KC44*<WC_RP16>-KC45*<WC_RP16>-KC46*<WC_ACID2> + PJAC(:,98,98)=-TPK%KTC42(:)-TPK%KC2(:)*PCONC(:,98)-TPK%KC2(:)*PCONC(:,98)-TPK%& +&KC2(:)*PCONC(:,98)-TPK%KC2(:)*PCONC(:,98)-TPK%KC3(:)*PCONC(:,99)-TPK%KC4(:)*PC& +&ONC(:,89)-TPK%KC7(:)*PCONC(:,101)-TPK%KC8(:)*PCONC(:,94)-TPK%KC19(:)*PCONC(:,1& +&24)-TPK%KC30(:)*PCONC(:,105)-TPK%KC31(:)*PCONC(:,106)-TPK%KC32(:)*PCONC(:,107)& +&-TPK%KC33(:)*PCONC(:,108)-TPK%KC34(:)*PCONC(:,109)-TPK%KC35(:)*PCONC(:,110)-TP& +&K%KC36(:)*PCONC(:,111)-TPK%KC37(:)*PCONC(:,112)-TPK%KC38(:)*PCONC(:,113)-TPK%K& +&C39(:)*PCONC(:,114)-TPK%KC40(:)*PCONC(:,115)-TPK%KC41(:)*PCONC(:,115)-TPK%KC42& +&(:)*PCONC(:,118)-TPK%KC43(:)*PCONC(:,117)-TPK%KC44(:)*PCONC(:,116)-TPK%KC45(:)& +&*PCONC(:,116)-TPK%KC46(:)*PCONC(:,119) +! +!WC_OH/WC_HO2=-KC3*<WC_OH>+KC6*<WC_O3> + PJAC(:,98,99)=-TPK%KC3(:)*PCONC(:,98)+TPK%KC6(:)*PCONC(:,88) +! +!WC_OH/WC_CO2=0.0 +! +!WC_OH/WC_SO2=-KC7*<WC_OH> + PJAC(:,98,101)=-TPK%KC7(:)*PCONC(:,98) +! +!WC_OH/WC_H2SO4=0.0 +! +!WC_OH/WC_RO21=0.0 +! +!WC_OH/WC_RO25=0.0 +! +!WC_OH/WC_MEOH=-KC30*<WC_OH> + PJAC(:,98,105)=-TPK%KC30(:)*PCONC(:,98) +! +!WC_OH/WC_ETOH=-KC31*<WC_OH> + PJAC(:,98,106)=-TPK%KC31(:)*PCONC(:,98) +! +!WC_OH/WC_ALCH=-KC32*<WC_OH> + PJAC(:,98,107)=-TPK%KC32(:)*PCONC(:,98) +! +!WC_OH/WC_HCHO=-KC33*<WC_OH> + PJAC(:,98,108)=-TPK%KC33(:)*PCONC(:,98) +! +!WC_OH/WC_ALD2=-KC34*<WC_OH> + PJAC(:,98,109)=-TPK%KC34(:)*PCONC(:,98) +! +!WC_OH/WC_GLY=-KC35*<WC_OH> + PJAC(:,98,110)=-TPK%KC35(:)*PCONC(:,98) +! +!WC_OH/WC_MGLY=-KC36*<WC_OH> + PJAC(:,98,111)=-TPK%KC36(:)*PCONC(:,98) +! +!WC_OH/WC_KETL=-KC37*<WC_OH> + PJAC(:,98,112)=-TPK%KC37(:)*PCONC(:,98) +! +!WC_OH/WC_ORA1=-KC38*<WC_OH> + PJAC(:,98,113)=-TPK%KC38(:)*PCONC(:,98) +! +!WC_OH/WC_ORA2=-KC39*<WC_OH> + PJAC(:,98,114)=-TPK%KC39(:)*PCONC(:,98) +! +!WC_OH/WC_ACID=-KC40*<WC_OH>-KC41*<WC_OH> + PJAC(:,98,115)=-TPK%KC40(:)*PCONC(:,98)-TPK%KC41(:)*PCONC(:,98) +! +!WC_OH/WC_RP16=-KC44*<WC_OH>-KC45*<WC_OH> + PJAC(:,98,116)=-TPK%KC44(:)*PCONC(:,98)-TPK%KC45(:)*PCONC(:,98) +! +!WC_OH/WC_UR21=-KC43*<WC_OH> + PJAC(:,98,117)=-TPK%KC43(:)*PCONC(:,98) +! +!WC_OH/WC_UR28=-KC42*<WC_OH> + PJAC(:,98,118)=-TPK%KC42(:)*PCONC(:,98) +! +!WC_OH/WC_ACID2=-KC46*<WC_OH> + PJAC(:,98,119)=-TPK%KC46(:)*PCONC(:,98) +! +!WC_OH/WC_ASO3=0.0 +! +!WC_OH/WC_ASO4=+KC24 + PJAC(:,98,121)=+TPK%KC24(:) +! +!WC_OH/WC_ASO5=0.0 +! +!WC_OH/WC_AHSO5=0.0 +! +!WC_OH/WC_AHMS=-KC19*<WC_OH> + PJAC(:,98,124)=-TPK%KC19(:)*PCONC(:,98) +! +!WC_OH/WR_O3=0.0 +! +!WC_OH/WR_H2O2=0.0 +! +!WC_OH/WR_NO=0.0 +! +!WC_OH/WR_NO2=0.0 +! +!WC_OH/WR_NO3=0.0 +! +!WC_OH/WR_N2O5=0.0 +! +!WC_OH/WR_HONO=0.0 +! +!WC_OH/WR_HNO3=0.0 +! +!WC_OH/WR_HNO4=0.0 +! +!WC_OH/WR_NH3=0.0 +! +!WC_OH/WR_OH=0.0 +! +!WC_OH/WR_HO2=0.0 +! +!WC_OH/WR_CO2=0.0 +! +!WC_OH/WR_SO2=0.0 +! +!WC_OH/WR_H2SO4=0.0 +! +!WC_OH/WR_RO21=0.0 +! +!WC_OH/WR_RO25=0.0 +! +!WC_OH/WR_MEOH=0.0 +! +!WC_OH/WR_ETOH=0.0 +! +!WC_OH/WR_ALCH=0.0 +! +!WC_OH/WR_HCHO=0.0 +! +!WC_OH/WR_ALD2=0.0 +! +!WC_OH/WR_GLY=0.0 +! +!WC_OH/WR_MGLY=0.0 +! +!WC_OH/WR_KETL=0.0 +! +!WC_OH/WR_ORA1=0.0 +! +!WC_OH/WR_ORA2=0.0 +! +!WC_OH/WR_ACID=0.0 +! +!WC_OH/WR_RP16=0.0 +! +!WC_OH/WR_UR21=0.0 +! +!WC_OH/WR_UR28=0.0 +! +!WC_OH/WR_ACID2=0.0 +! +!WC_OH/WR_ASO3=0.0 +! +!WC_OH/WR_ASO4=0.0 +! +!WC_OH/WR_ASO5=0.0 +! +!WC_OH/WR_AHSO5=0.0 +! +!WC_OH/WR_AHMS=0.0 +! +!WC_HO2/NO=0.0 +! +!WC_HO2/NO2=0.0 +! +!WC_HO2/O3=0.0 +! +!WC_HO2/HONO=0.0 +! +!WC_HO2/HNO3=0.0 +! +!WC_HO2/HNO4=0.0 +! +!WC_HO2/N2O5=0.0 +! +!WC_HO2/NO3=0.0 +! +!WC_HO2/NH3=0.0 +! +!WC_HO2/HO2=+KTC12 + PJAC(:,99,10)=+TPK%KTC12(:) +! +!WC_HO2/CO=0.0 +! +!WC_HO2/H2O2=0.0 +! +!WC_HO2/SO2=0.0 +! +!WC_HO2/H2SO4=0.0 +! +!WC_HO2/OH=0.0 +! +!WC_HO2/ETHE=0.0 +! +!WC_HO2/OLEL=0.0 +! +!WC_HO2/OLEH=0.0 +! +!WC_HO2/ALKL=0.0 +! +!WC_HO2/ALKM=0.0 +! +!WC_HO2/ALKH=0.0 +! +!WC_HO2/AROH=0.0 +! +!WC_HO2/AROL=0.0 +! +!WC_HO2/AROO=0.0 +! +!WC_HO2/ARAL=0.0 +! +!WC_HO2/ARAC=0.0 +! +!WC_HO2/PAH=0.0 +! +!WC_HO2/HCHO=0.0 +! +!WC_HO2/ALD2=0.0 +! +!WC_HO2/KETL=0.0 +! +!WC_HO2/KETH=0.0 +! +!WC_HO2/MEOH=0.0 +! +!WC_HO2/ETOH=0.0 +! +!WC_HO2/ALCH=0.0 +! +!WC_HO2/ISOP=0.0 +! +!WC_HO2/BIOL=0.0 +! +!WC_HO2/BIOH=0.0 +! +!WC_HO2/MTBE=0.0 +! +!WC_HO2/MVK=0.0 +! +!WC_HO2/MCR=0.0 +! +!WC_HO2/MGLY=0.0 +! +!WC_HO2/GLY=0.0 +! +!WC_HO2/ORA1=0.0 +! +!WC_HO2/ORA2=0.0 +! +!WC_HO2/ACID=0.0 +! +!WC_HO2/UR28=0.0 +! +!WC_HO2/UR21=0.0 +! +!WC_HO2/URG2=0.0 +! +!WC_HO2/UR26=0.0 +! +!WC_HO2/RPG2=0.0 +! +!WC_HO2/RP18=0.0 +! +!WC_HO2/RPG3=0.0 +! +!WC_HO2/URG4=0.0 +! +!WC_HO2/UR8=0.0 +! +!WC_HO2/UR17=0.0 +! +!WC_HO2/UR7=0.0 +! +!WC_HO2/RPR3=0.0 +! +!WC_HO2/URG6=0.0 +! +!WC_HO2/UR22=0.0 +! +!WC_HO2/URG7=0.0 +! +!WC_HO2/RPR4=0.0 +! +!WC_HO2/RPR7=0.0 +! +!WC_HO2/RPG7=0.0 +! +!WC_HO2/URG8=0.0 +! +!WC_HO2/UR19=0.0 +! +!WC_HO2/URG9=0.0 +! +!WC_HO2/AP7=0.0 +! +!WC_HO2/URG10=0.0 +! +!WC_HO2/RPR1=0.0 +! +!WC_HO2/RPR5=0.0 +! +!WC_HO2/RPR8=0.0 +! +!WC_HO2/RP10=0.0 +! +!WC_HO2/RP11=0.0 +! +!WC_HO2/RP16=0.0 +! +!WC_HO2/RPRL=0.0 +! +!WC_HO2/APAN=0.0 +! +!WC_HO2/PAN1=0.0 +! +!WC_HO2/PAN2=0.0 +! +!WC_HO2/PAN3=0.0 +! +!WC_HO2/PAN4=0.0 +! +!WC_HO2/PAN6=0.0 +! +!WC_HO2/PAN7=0.0 +! +!WC_HO2/PAN8=0.0 +! +!WC_HO2/PN10=0.0 +! +!WC_HO2/RO2T=0.0 +! +!WC_HO2/RO21=0.0 +! +!WC_HO2/RO25=0.0 +! +!WC_HO2/WC_O3=-KC6*<WC_HO2> + PJAC(:,99,88)=-TPK%KC6(:)*PCONC(:,99) +! +!WC_HO2/WC_H2O2=+KC4*<WC_OH> + PJAC(:,99,89)=+TPK%KC4(:)*PCONC(:,98) +! +!WC_HO2/WC_NO=0.0 +! +!WC_HO2/WC_NO2=-KC9*<WC_HO2> + PJAC(:,99,91)=-TPK%KC9(:)*PCONC(:,99) +! +!WC_HO2/WC_NO3=0.0 +! +!WC_HO2/WC_N2O5=0.0 +! +!WC_HO2/WC_HONO=0.0 +! +!WC_HO2/WC_HNO3=0.0 +! +!WC_HO2/WC_HNO4=+KC10 + PJAC(:,99,96)=+TPK%KC10(:) +! +!WC_HO2/WC_NH3=0.0 +! +!WC_HO2/WC_OH=-KC3*<WC_HO2>+KC4*<WC_H2O2>+KC19*<WC_AHMS>+KC30*<WC_MEOH>+KC31*<W +!C_ETOH>+KC32*<WC_ALCH>+KC33*<WC_HCHO>+KC35*<WC_GLY>+KC36*<WC_MGLY>+KC37*<WC_KE +!TL>+KC38*<WC_ORA1>+0.11*KC41*<WC_ACID>+KC42*<WC_UR28>+0.81*KC43*<WC_UR21>+KC44 +!*<WC_RP16>+0.71*KC45*<WC_RP16> + PJAC(:,99,98)=-TPK%KC3(:)*PCONC(:,99)+TPK%KC4(:)*PCONC(:,89)+TPK%KC19(:)*PCONC& +&(:,124)+TPK%KC30(:)*PCONC(:,105)+TPK%KC31(:)*PCONC(:,106)+TPK%KC32(:)*PCONC(:,& +&107)+TPK%KC33(:)*PCONC(:,108)+TPK%KC35(:)*PCONC(:,110)+TPK%KC36(:)*PCONC(:,111& +&)+TPK%KC37(:)*PCONC(:,112)+TPK%KC38(:)*PCONC(:,113)+0.11*TPK%KC41(:)*PCONC(:,1& +&15)+TPK%KC42(:)*PCONC(:,118)+0.81*TPK%KC43(:)*PCONC(:,117)+TPK%KC44(:)*PCONC(:& +&,116)+0.71*TPK%KC45(:)*PCONC(:,116) +! +!WC_HO2/WC_HO2=-KTC43-KC3*<WC_OH>-KC5*<WC_HO2>-KC5*<WC_HO2>-KC5*<WC_HO2>-KC5*<W +!C_HO2>-KC6*<WC_O3>-KC9*<WC_NO2>-KC21*<WC_ASO5> + PJAC(:,99,99)=-TPK%KTC43(:)-TPK%KC3(:)*PCONC(:,98)-TPK%KC5(:)*PCONC(:,99)-TPK%& +&KC5(:)*PCONC(:,99)-TPK%KC5(:)*PCONC(:,99)-TPK%KC5(:)*PCONC(:,99)-TPK%KC6(:)*PC& +&ONC(:,88)-TPK%KC9(:)*PCONC(:,91)-TPK%KC21(:)*PCONC(:,122) +! +!WC_HO2/WC_CO2=0.0 +! +!WC_HO2/WC_SO2=0.0 +! +!WC_HO2/WC_H2SO4=0.0 +! +!WC_HO2/WC_RO21=+2.00*KC27*<WC_RO21>+2.00*KC27*<WC_RO21> + PJAC(:,99,103)=+2.00*TPK%KC27(:)*PCONC(:,103)+2.00*TPK%KC27(:)*PCONC(:,103) +! +!WC_HO2/WC_RO25=+KC29*<WC_RO25>+KC29*<WC_RO25> + PJAC(:,99,104)=+TPK%KC29(:)*PCONC(:,104)+TPK%KC29(:)*PCONC(:,104) +! +!WC_HO2/WC_MEOH=+KC30*<WC_OH> + PJAC(:,99,105)=+TPK%KC30(:)*PCONC(:,98) +! +!WC_HO2/WC_ETOH=+KC31*<WC_OH> + PJAC(:,99,106)=+TPK%KC31(:)*PCONC(:,98) +! +!WC_HO2/WC_ALCH=+KC32*<WC_OH> + PJAC(:,99,107)=+TPK%KC32(:)*PCONC(:,98) +! +!WC_HO2/WC_HCHO=+KC33*<WC_OH> + PJAC(:,99,108)=+TPK%KC33(:)*PCONC(:,98) +! +!WC_HO2/WC_ALD2=0.0 +! +!WC_HO2/WC_GLY=+KC35*<WC_OH> + PJAC(:,99,110)=+TPK%KC35(:)*PCONC(:,98) +! +!WC_HO2/WC_MGLY=+KC36*<WC_OH> + PJAC(:,99,111)=+TPK%KC36(:)*PCONC(:,98) +! +!WC_HO2/WC_KETL=+KC37*<WC_OH> + PJAC(:,99,112)=+TPK%KC37(:)*PCONC(:,98) +! +!WC_HO2/WC_ORA1=+KC38*<WC_OH> + PJAC(:,99,113)=+TPK%KC38(:)*PCONC(:,98) +! +!WC_HO2/WC_ORA2=0.0 +! +!WC_HO2/WC_ACID=+0.11*KC41*<WC_OH> + PJAC(:,99,115)=+0.11*TPK%KC41(:)*PCONC(:,98) +! +!WC_HO2/WC_RP16=+KC44*<WC_OH>+0.71*KC45*<WC_OH> + PJAC(:,99,116)=+TPK%KC44(:)*PCONC(:,98)+0.71*TPK%KC45(:)*PCONC(:,98) +! +!WC_HO2/WC_UR21=+0.81*KC43*<WC_OH> + PJAC(:,99,117)=+0.81*TPK%KC43(:)*PCONC(:,98) +! +!WC_HO2/WC_UR28=+KC42*<WC_OH> + PJAC(:,99,118)=+TPK%KC42(:)*PCONC(:,98) +! +!WC_HO2/WC_ACID2=0.0 +! +!WC_HO2/WC_ASO3=0.0 +! +!WC_HO2/WC_ASO4=0.0 +! +!WC_HO2/WC_ASO5=-KC21*<WC_HO2> + PJAC(:,99,122)=-TPK%KC21(:)*PCONC(:,99) +! +!WC_HO2/WC_AHSO5=0.0 +! +!WC_HO2/WC_AHMS=+KC19*<WC_OH> + PJAC(:,99,124)=+TPK%KC19(:)*PCONC(:,98) +! +!WC_HO2/WR_O3=0.0 +! +!WC_HO2/WR_H2O2=0.0 +! +!WC_HO2/WR_NO=0.0 +! +!WC_HO2/WR_NO2=0.0 +! +!WC_HO2/WR_NO3=0.0 +! +!WC_HO2/WR_N2O5=0.0 +! +!WC_HO2/WR_HONO=0.0 +! +!WC_HO2/WR_HNO3=0.0 +! +!WC_HO2/WR_HNO4=0.0 +! +!WC_HO2/WR_NH3=0.0 +! +!WC_HO2/WR_OH=0.0 +! +!WC_HO2/WR_HO2=0.0 +! +!WC_HO2/WR_CO2=0.0 +! +!WC_HO2/WR_SO2=0.0 +! +!WC_HO2/WR_H2SO4=0.0 +! +!WC_HO2/WR_RO21=0.0 +! +!WC_HO2/WR_RO25=0.0 +! +!WC_HO2/WR_MEOH=0.0 +! +!WC_HO2/WR_ETOH=0.0 +! +!WC_HO2/WR_ALCH=0.0 +! +!WC_HO2/WR_HCHO=0.0 +! +!WC_HO2/WR_ALD2=0.0 +! +!WC_HO2/WR_GLY=0.0 +! +!WC_HO2/WR_MGLY=0.0 +! +!WC_HO2/WR_KETL=0.0 +! +!WC_HO2/WR_ORA1=0.0 +! +!WC_HO2/WR_ORA2=0.0 +! +!WC_HO2/WR_ACID=0.0 +! +!WC_HO2/WR_RP16=0.0 +! +!WC_HO2/WR_UR21=0.0 +! +!WC_HO2/WR_UR28=0.0 +! +!WC_HO2/WR_ACID2=0.0 +! +!WC_HO2/WR_ASO3=0.0 +! +!WC_HO2/WR_ASO4=0.0 +! +!WC_HO2/WR_ASO5=0.0 +! +!WC_HO2/WR_AHSO5=0.0 +! +!WC_HO2/WR_AHMS=0.0 +! +!WC_CO2/NO=0.0 +! +!WC_CO2/NO2=0.0 +! +!WC_CO2/O3=0.0 +! +!WC_CO2/HONO=0.0 +! +!WC_CO2/HNO3=0.0 +! +!WC_CO2/HNO4=0.0 +! +!WC_CO2/N2O5=0.0 +! +!WC_CO2/NO3=0.0 +! +!WC_CO2/NH3=0.0 +! +!WC_CO2/HO2=0.0 +! +!WC_CO2/CO=0.0 +! +!WC_CO2/H2O2=0.0 +! +!WC_CO2/SO2=0.0 +! +!WC_CO2/H2SO4=0.0 +! +!WC_CO2/OH=0.0 +! +!WC_CO2/ETHE=0.0 +! +!WC_CO2/OLEL=0.0 +! +!WC_CO2/OLEH=0.0 +! +!WC_CO2/ALKL=0.0 +! +!WC_CO2/ALKM=0.0 +! +!WC_CO2/ALKH=0.0 +! +!WC_CO2/AROH=0.0 +! +!WC_CO2/AROL=0.0 +! +!WC_CO2/AROO=0.0 +! +!WC_CO2/ARAL=0.0 +! +!WC_CO2/ARAC=0.0 +! +!WC_CO2/PAH=0.0 +! +!WC_CO2/HCHO=0.0 +! +!WC_CO2/ALD2=0.0 +! +!WC_CO2/KETL=0.0 +! +!WC_CO2/KETH=0.0 +! +!WC_CO2/MEOH=0.0 +! +!WC_CO2/ETOH=0.0 +! +!WC_CO2/ALCH=0.0 +! +!WC_CO2/ISOP=0.0 +! +!WC_CO2/BIOL=0.0 +! +!WC_CO2/BIOH=0.0 +! +!WC_CO2/MTBE=0.0 +! +!WC_CO2/MVK=0.0 +! +!WC_CO2/MCR=0.0 +! +!WC_CO2/MGLY=0.0 +! +!WC_CO2/GLY=0.0 +! +!WC_CO2/ORA1=0.0 +! +!WC_CO2/ORA2=0.0 +! +!WC_CO2/ACID=0.0 +! +!WC_CO2/UR28=0.0 +! +!WC_CO2/UR21=0.0 +! +!WC_CO2/URG2=0.0 +! +!WC_CO2/UR26=0.0 +! +!WC_CO2/RPG2=0.0 +! +!WC_CO2/RP18=0.0 +! +!WC_CO2/RPG3=0.0 +! +!WC_CO2/URG4=0.0 +! +!WC_CO2/UR8=0.0 +! +!WC_CO2/UR17=0.0 +! +!WC_CO2/UR7=0.0 +! +!WC_CO2/RPR3=0.0 +! +!WC_CO2/URG6=0.0 +! +!WC_CO2/UR22=0.0 +! +!WC_CO2/URG7=0.0 +! +!WC_CO2/RPR4=0.0 +! +!WC_CO2/RPR7=0.0 +! +!WC_CO2/RPG7=0.0 +! +!WC_CO2/URG8=0.0 +! +!WC_CO2/UR19=0.0 +! +!WC_CO2/URG9=0.0 +! +!WC_CO2/AP7=0.0 +! +!WC_CO2/URG10=0.0 +! +!WC_CO2/RPR1=0.0 +! +!WC_CO2/RPR5=0.0 +! +!WC_CO2/RPR8=0.0 +! +!WC_CO2/RP10=0.0 +! +!WC_CO2/RP11=0.0 +! +!WC_CO2/RP16=0.0 +! +!WC_CO2/RPRL=0.0 +! +!WC_CO2/APAN=0.0 +! +!WC_CO2/PAN1=0.0 +! +!WC_CO2/PAN2=0.0 +! +!WC_CO2/PAN3=0.0 +! +!WC_CO2/PAN4=0.0 +! +!WC_CO2/PAN6=0.0 +! +!WC_CO2/PAN7=0.0 +! +!WC_CO2/PAN8=0.0 +! +!WC_CO2/PN10=0.0 +! +!WC_CO2/RO2T=0.0 +! +!WC_CO2/RO21=0.0 +! +!WC_CO2/RO25=0.0 +! +!WC_CO2/WC_O3=0.0 +! +!WC_CO2/WC_H2O2=0.0 +! +!WC_CO2/WC_NO=0.0 +! +!WC_CO2/WC_NO2=0.0 +! +!WC_CO2/WC_NO3=0.0 +! +!WC_CO2/WC_N2O5=0.0 +! +!WC_CO2/WC_HONO=0.0 +! +!WC_CO2/WC_HNO3=0.0 +! +!WC_CO2/WC_HNO4=0.0 +! +!WC_CO2/WC_NH3=0.0 +! +!WC_CO2/WC_OH=+KC34*<WC_ALD2>+KC37*<WC_KETL>+KC38*<WC_ORA1>+KC40*<WC_ACID>+2*KC +!42*<WC_UR28>+0.43*KC43*<WC_UR21>+2*KC45*<WC_RP16> + PJAC(:,100,98)=+TPK%KC34(:)*PCONC(:,109)+TPK%KC37(:)*PCONC(:,112)+TPK%KC38(:)*& +&PCONC(:,113)+TPK%KC40(:)*PCONC(:,115)+2*TPK%KC42(:)*PCONC(:,118)+0.43*TPK%KC43& +&(:)*PCONC(:,117)+2*TPK%KC45(:)*PCONC(:,116) +! +!WC_CO2/WC_HO2=0.0 +! +!WC_CO2/WC_CO2=-KTC44 + PJAC(:,100,100)=-TPK%KTC44(:) +! +!WC_CO2/WC_SO2=0.0 +! +!WC_CO2/WC_H2SO4=0.0 +! +!WC_CO2/WC_RO21=0.0 +! +!WC_CO2/WC_RO25=0.0 +! +!WC_CO2/WC_MEOH=0.0 +! +!WC_CO2/WC_ETOH=0.0 +! +!WC_CO2/WC_ALCH=0.0 +! +!WC_CO2/WC_HCHO=0.0 +! +!WC_CO2/WC_ALD2=+KC34*<WC_OH> + PJAC(:,100,109)=+TPK%KC34(:)*PCONC(:,98) +! +!WC_CO2/WC_GLY=0.0 +! +!WC_CO2/WC_MGLY=0.0 +! +!WC_CO2/WC_KETL=+KC37*<WC_OH> + PJAC(:,100,112)=+TPK%KC37(:)*PCONC(:,98) +! +!WC_CO2/WC_ORA1=+KC38*<WC_OH> + PJAC(:,100,113)=+TPK%KC38(:)*PCONC(:,98) +! +!WC_CO2/WC_ORA2=0.0 +! +!WC_CO2/WC_ACID=+KC40*<WC_OH> + PJAC(:,100,115)=+TPK%KC40(:)*PCONC(:,98) +! +!WC_CO2/WC_RP16=+2*KC45*<WC_OH> + PJAC(:,100,116)=+2*TPK%KC45(:)*PCONC(:,98) +! +!WC_CO2/WC_UR21=+0.43*KC43*<WC_OH> + PJAC(:,100,117)=+0.43*TPK%KC43(:)*PCONC(:,98) +! +!WC_CO2/WC_UR28=+2*KC42*<WC_OH> + PJAC(:,100,118)=+2*TPK%KC42(:)*PCONC(:,98) +! +!WC_CO2/WC_ACID2=0.0 +! +!WC_CO2/WC_ASO3=0.0 +! +!WC_CO2/WC_ASO4=0.0 +! +!WC_CO2/WC_ASO5=0.0 +! +!WC_CO2/WC_AHSO5=0.0 +! +!WC_CO2/WC_AHMS=0.0 +! +!WC_CO2/WR_O3=0.0 +! +!WC_CO2/WR_H2O2=0.0 +! +!WC_CO2/WR_NO=0.0 +! +!WC_CO2/WR_NO2=0.0 +! +!WC_CO2/WR_NO3=0.0 +! +!WC_CO2/WR_N2O5=0.0 +! +!WC_CO2/WR_HONO=0.0 +! +!WC_CO2/WR_HNO3=0.0 +! +!WC_CO2/WR_HNO4=0.0 +! +!WC_CO2/WR_NH3=0.0 +! +!WC_CO2/WR_OH=0.0 +! +!WC_CO2/WR_HO2=0.0 +! +!WC_CO2/WR_CO2=0.0 +! +!WC_CO2/WR_SO2=0.0 +! +!WC_CO2/WR_H2SO4=0.0 +! +!WC_CO2/WR_RO21=0.0 +! +!WC_CO2/WR_RO25=0.0 +! +!WC_CO2/WR_MEOH=0.0 +! +!WC_CO2/WR_ETOH=0.0 +! +!WC_CO2/WR_ALCH=0.0 +! +!WC_CO2/WR_HCHO=0.0 +! +!WC_CO2/WR_ALD2=0.0 +! +!WC_CO2/WR_GLY=0.0 +! +!WC_CO2/WR_MGLY=0.0 +! +!WC_CO2/WR_KETL=0.0 +! +!WC_CO2/WR_ORA1=0.0 +! +!WC_CO2/WR_ORA2=0.0 +! +!WC_CO2/WR_ACID=0.0 +! +!WC_CO2/WR_RP16=0.0 +! +!WC_CO2/WR_UR21=0.0 +! +!WC_CO2/WR_UR28=0.0 +! +!WC_CO2/WR_ACID2=0.0 +! +!WC_CO2/WR_ASO3=0.0 +! +!WC_CO2/WR_ASO4=0.0 +! +!WC_CO2/WR_ASO5=0.0 +! +!WC_CO2/WR_AHSO5=0.0 +! +!WC_CO2/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ19 +! +SUBROUTINE SUBJ20 +! +!Indices 101 a 105 +! +! +!WC_SO2/NO=0.0 +! +!WC_SO2/NO2=0.0 +! +!WC_SO2/O3=0.0 +! +!WC_SO2/HONO=0.0 +! +!WC_SO2/HNO3=0.0 +! +!WC_SO2/HNO4=0.0 +! +!WC_SO2/N2O5=0.0 +! +!WC_SO2/NO3=0.0 +! +!WC_SO2/NH3=0.0 +! +!WC_SO2/HO2=0.0 +! +!WC_SO2/CO=0.0 +! +!WC_SO2/H2O2=0.0 +! +!WC_SO2/SO2=+KTC14 + PJAC(:,101,13)=+TPK%KTC14(:) +! +!WC_SO2/H2SO4=0.0 +! +!WC_SO2/OH=0.0 +! +!WC_SO2/ETHE=0.0 +! +!WC_SO2/OLEL=0.0 +! +!WC_SO2/OLEH=0.0 +! +!WC_SO2/ALKL=0.0 +! +!WC_SO2/ALKM=0.0 +! +!WC_SO2/ALKH=0.0 +! +!WC_SO2/AROH=0.0 +! +!WC_SO2/AROL=0.0 +! +!WC_SO2/AROO=0.0 +! +!WC_SO2/ARAL=0.0 +! +!WC_SO2/ARAC=0.0 +! +!WC_SO2/PAH=0.0 +! +!WC_SO2/HCHO=0.0 +! +!WC_SO2/ALD2=0.0 +! +!WC_SO2/KETL=0.0 +! +!WC_SO2/KETH=0.0 +! +!WC_SO2/MEOH=0.0 +! +!WC_SO2/ETOH=0.0 +! +!WC_SO2/ALCH=0.0 +! +!WC_SO2/ISOP=0.0 +! +!WC_SO2/BIOL=0.0 +! +!WC_SO2/BIOH=0.0 +! +!WC_SO2/MTBE=0.0 +! +!WC_SO2/MVK=0.0 +! +!WC_SO2/MCR=0.0 +! +!WC_SO2/MGLY=0.0 +! +!WC_SO2/GLY=0.0 +! +!WC_SO2/ORA1=0.0 +! +!WC_SO2/ORA2=0.0 +! +!WC_SO2/ACID=0.0 +! +!WC_SO2/UR28=0.0 +! +!WC_SO2/UR21=0.0 +! +!WC_SO2/URG2=0.0 +! +!WC_SO2/UR26=0.0 +! +!WC_SO2/RPG2=0.0 +! +!WC_SO2/RP18=0.0 +! +!WC_SO2/RPG3=0.0 +! +!WC_SO2/URG4=0.0 +! +!WC_SO2/UR8=0.0 +! +!WC_SO2/UR17=0.0 +! +!WC_SO2/UR7=0.0 +! +!WC_SO2/RPR3=0.0 +! +!WC_SO2/URG6=0.0 +! +!WC_SO2/UR22=0.0 +! +!WC_SO2/URG7=0.0 +! +!WC_SO2/RPR4=0.0 +! +!WC_SO2/RPR7=0.0 +! +!WC_SO2/RPG7=0.0 +! +!WC_SO2/URG8=0.0 +! +!WC_SO2/UR19=0.0 +! +!WC_SO2/URG9=0.0 +! +!WC_SO2/AP7=0.0 +! +!WC_SO2/URG10=0.0 +! +!WC_SO2/RPR1=0.0 +! +!WC_SO2/RPR5=0.0 +! +!WC_SO2/RPR8=0.0 +! +!WC_SO2/RP10=0.0 +! +!WC_SO2/RP11=0.0 +! +!WC_SO2/RP16=0.0 +! +!WC_SO2/RPRL=0.0 +! +!WC_SO2/APAN=0.0 +! +!WC_SO2/PAN1=0.0 +! +!WC_SO2/PAN2=0.0 +! +!WC_SO2/PAN3=0.0 +! +!WC_SO2/PAN4=0.0 +! +!WC_SO2/PAN6=0.0 +! +!WC_SO2/PAN7=0.0 +! +!WC_SO2/PAN8=0.0 +! +!WC_SO2/PN10=0.0 +! +!WC_SO2/RO2T=0.0 +! +!WC_SO2/RO21=0.0 +! +!WC_SO2/RO25=0.0 +! +!WC_SO2/WC_O3=-KC25*<WC_SO2> + PJAC(:,101,88)=-TPK%KC25(:)*PCONC(:,101) +! +!WC_SO2/WC_H2O2=-KC26*<WC_SO2> + PJAC(:,101,89)=-TPK%KC26(:)*PCONC(:,101) +! +!WC_SO2/WC_NO=0.0 +! +!WC_SO2/WC_NO2=0.0 +! +!WC_SO2/WC_NO3=-KC16*<WC_SO2> + PJAC(:,101,92)=-TPK%KC16(:)*PCONC(:,101) +! +!WC_SO2/WC_N2O5=0.0 +! +!WC_SO2/WC_HONO=0.0 +! +!WC_SO2/WC_HNO3=0.0 +! +!WC_SO2/WC_HNO4=-KC12*<WC_SO2> + PJAC(:,101,96)=-TPK%KC12(:)*PCONC(:,101) +! +!WC_SO2/WC_NH3=0.0 +! +!WC_SO2/WC_OH=-KC7*<WC_SO2>+KC19*<WC_AHMS> + PJAC(:,101,98)=-TPK%KC7(:)*PCONC(:,101)+TPK%KC19(:)*PCONC(:,124) +! +!WC_SO2/WC_HO2=0.0 +! +!WC_SO2/WC_CO2=0.0 +! +!WC_SO2/WC_SO2=-KTC45-KC7*<WC_OH>-KC12*<WC_HNO4>-KC16*<WC_NO3>-KC17*<WC_HCHO>-K +!C23*<WC_AHSO5>-KC25*<WC_O3>-KC26*<WC_H2O2>-KC28*<WC_RO21> + PJAC(:,101,101)=-TPK%KTC45(:)-TPK%KC7(:)*PCONC(:,98)-TPK%KC12(:)*PCONC(:,96)-T& +&PK%KC16(:)*PCONC(:,92)-TPK%KC17(:)*PCONC(:,108)-TPK%KC23(:)*PCONC(:,123)-TPK%K& +&C25(:)*PCONC(:,88)-TPK%KC26(:)*PCONC(:,89)-TPK%KC28(:)*PCONC(:,103) +! +!WC_SO2/WC_H2SO4=0.0 +! +!WC_SO2/WC_RO21=-KC28*<WC_SO2> + PJAC(:,101,103)=-TPK%KC28(:)*PCONC(:,101) +! +!WC_SO2/WC_RO25=0.0 +! +!WC_SO2/WC_MEOH=0.0 +! +!WC_SO2/WC_ETOH=0.0 +! +!WC_SO2/WC_ALCH=0.0 +! +!WC_SO2/WC_HCHO=-KC17*<WC_SO2> + PJAC(:,101,108)=-TPK%KC17(:)*PCONC(:,101) +! +!WC_SO2/WC_ALD2=0.0 +! +!WC_SO2/WC_GLY=0.0 +! +!WC_SO2/WC_MGLY=0.0 +! +!WC_SO2/WC_KETL=0.0 +! +!WC_SO2/WC_ORA1=0.0 +! +!WC_SO2/WC_ORA2=0.0 +! +!WC_SO2/WC_ACID=0.0 +! +!WC_SO2/WC_RP16=0.0 +! +!WC_SO2/WC_UR21=0.0 +! +!WC_SO2/WC_UR28=0.0 +! +!WC_SO2/WC_ACID2=0.0 +! +!WC_SO2/WC_ASO3=0.0 +! +!WC_SO2/WC_ASO4=0.0 +! +!WC_SO2/WC_ASO5=0.0 +! +!WC_SO2/WC_AHSO5=-KC23*<WC_SO2> + PJAC(:,101,123)=-TPK%KC23(:)*PCONC(:,101) +! +!WC_SO2/WC_AHMS=+KC18+KC19*<WC_OH> + PJAC(:,101,124)=+TPK%KC18(:)+TPK%KC19(:)*PCONC(:,98) +! +!WC_SO2/WR_O3=0.0 +! +!WC_SO2/WR_H2O2=0.0 +! +!WC_SO2/WR_NO=0.0 +! +!WC_SO2/WR_NO2=0.0 +! +!WC_SO2/WR_NO3=0.0 +! +!WC_SO2/WR_N2O5=0.0 +! +!WC_SO2/WR_HONO=0.0 +! +!WC_SO2/WR_HNO3=0.0 +! +!WC_SO2/WR_HNO4=0.0 +! +!WC_SO2/WR_NH3=0.0 +! +!WC_SO2/WR_OH=0.0 +! +!WC_SO2/WR_HO2=0.0 +! +!WC_SO2/WR_CO2=0.0 +! +!WC_SO2/WR_SO2=0.0 +! +!WC_SO2/WR_H2SO4=0.0 +! +!WC_SO2/WR_RO21=0.0 +! +!WC_SO2/WR_RO25=0.0 +! +!WC_SO2/WR_MEOH=0.0 +! +!WC_SO2/WR_ETOH=0.0 +! +!WC_SO2/WR_ALCH=0.0 +! +!WC_SO2/WR_HCHO=0.0 +! +!WC_SO2/WR_ALD2=0.0 +! +!WC_SO2/WR_GLY=0.0 +! +!WC_SO2/WR_MGLY=0.0 +! +!WC_SO2/WR_KETL=0.0 +! +!WC_SO2/WR_ORA1=0.0 +! +!WC_SO2/WR_ORA2=0.0 +! +!WC_SO2/WR_ACID=0.0 +! +!WC_SO2/WR_RP16=0.0 +! +!WC_SO2/WR_UR21=0.0 +! +!WC_SO2/WR_UR28=0.0 +! +!WC_SO2/WR_ACID2=0.0 +! +!WC_SO2/WR_ASO3=0.0 +! +!WC_SO2/WR_ASO4=0.0 +! +!WC_SO2/WR_ASO5=0.0 +! +!WC_SO2/WR_AHSO5=0.0 +! +!WC_SO2/WR_AHMS=0.0 +! +!WC_H2SO4/NO=0.0 +! +!WC_H2SO4/NO2=0.0 +! +!WC_H2SO4/O3=0.0 +! +!WC_H2SO4/HONO=0.0 +! +!WC_H2SO4/HNO3=0.0 +! +!WC_H2SO4/HNO4=0.0 +! +!WC_H2SO4/N2O5=0.0 +! +!WC_H2SO4/NO3=0.0 +! +!WC_H2SO4/NH3=0.0 +! +!WC_H2SO4/HO2=0.0 +! +!WC_H2SO4/CO=0.0 +! +!WC_H2SO4/H2O2=0.0 +! +!WC_H2SO4/SO2=0.0 +! +!WC_H2SO4/H2SO4=+KTC15 + PJAC(:,102,14)=+TPK%KTC15(:) +! +!WC_H2SO4/OH=0.0 +! +!WC_H2SO4/ETHE=0.0 +! +!WC_H2SO4/OLEL=0.0 +! +!WC_H2SO4/OLEH=0.0 +! +!WC_H2SO4/ALKL=0.0 +! +!WC_H2SO4/ALKM=0.0 +! +!WC_H2SO4/ALKH=0.0 +! +!WC_H2SO4/AROH=0.0 +! +!WC_H2SO4/AROL=0.0 +! +!WC_H2SO4/AROO=0.0 +! +!WC_H2SO4/ARAL=0.0 +! +!WC_H2SO4/ARAC=0.0 +! +!WC_H2SO4/PAH=0.0 +! +!WC_H2SO4/HCHO=0.0 +! +!WC_H2SO4/ALD2=0.0 +! +!WC_H2SO4/KETL=0.0 +! +!WC_H2SO4/KETH=0.0 +! +!WC_H2SO4/MEOH=0.0 +! +!WC_H2SO4/ETOH=0.0 +! +!WC_H2SO4/ALCH=0.0 +! +!WC_H2SO4/ISOP=0.0 +! +!WC_H2SO4/BIOL=0.0 +! +!WC_H2SO4/BIOH=0.0 +! +!WC_H2SO4/MTBE=0.0 +! +!WC_H2SO4/MVK=0.0 +! +!WC_H2SO4/MCR=0.0 +! +!WC_H2SO4/MGLY=0.0 +! +!WC_H2SO4/GLY=0.0 +! +!WC_H2SO4/ORA1=0.0 +! +!WC_H2SO4/ORA2=0.0 +! +!WC_H2SO4/ACID=0.0 +! +!WC_H2SO4/UR28=0.0 +! +!WC_H2SO4/UR21=0.0 +! +!WC_H2SO4/URG2=0.0 +! +!WC_H2SO4/UR26=0.0 +! +!WC_H2SO4/RPG2=0.0 +! +!WC_H2SO4/RP18=0.0 +! +!WC_H2SO4/RPG3=0.0 +! +!WC_H2SO4/URG4=0.0 +! +!WC_H2SO4/UR8=0.0 +! +!WC_H2SO4/UR17=0.0 +! +!WC_H2SO4/UR7=0.0 +! +!WC_H2SO4/RPR3=0.0 +! +!WC_H2SO4/URG6=0.0 +! +!WC_H2SO4/UR22=0.0 +! +!WC_H2SO4/URG7=0.0 +! +!WC_H2SO4/RPR4=0.0 +! +!WC_H2SO4/RPR7=0.0 +! +!WC_H2SO4/RPG7=0.0 +! +!WC_H2SO4/URG8=0.0 +! +!WC_H2SO4/UR19=0.0 +! +!WC_H2SO4/URG9=0.0 +! +!WC_H2SO4/AP7=0.0 +! +!WC_H2SO4/URG10=0.0 +! +!WC_H2SO4/RPR1=0.0 +! +!WC_H2SO4/RPR5=0.0 +! +!WC_H2SO4/RPR8=0.0 +! +!WC_H2SO4/RP10=0.0 +! +!WC_H2SO4/RP11=0.0 +! +!WC_H2SO4/RP16=0.0 +! +!WC_H2SO4/RPRL=0.0 +! +!WC_H2SO4/APAN=0.0 +! +!WC_H2SO4/PAN1=0.0 +! +!WC_H2SO4/PAN2=0.0 +! +!WC_H2SO4/PAN3=0.0 +! +!WC_H2SO4/PAN4=0.0 +! +!WC_H2SO4/PAN6=0.0 +! +!WC_H2SO4/PAN7=0.0 +! +!WC_H2SO4/PAN8=0.0 +! +!WC_H2SO4/PN10=0.0 +! +!WC_H2SO4/RO2T=0.0 +! +!WC_H2SO4/RO21=0.0 +! +!WC_H2SO4/RO25=0.0 +! +!WC_H2SO4/WC_O3=+KC25*<WC_SO2> + PJAC(:,102,88)=+TPK%KC25(:)*PCONC(:,101) +! +!WC_H2SO4/WC_H2O2=+KC26*<WC_SO2> + PJAC(:,102,89)=+TPK%KC26(:)*PCONC(:,101) +! +!WC_H2SO4/WC_NO=0.0 +! +!WC_H2SO4/WC_NO2=0.0 +! +!WC_H2SO4/WC_NO3=-KC15*<WC_H2SO4> + PJAC(:,102,92)=-TPK%KC15(:)*PCONC(:,102) +! +!WC_H2SO4/WC_N2O5=0.0 +! +!WC_H2SO4/WC_HONO=0.0 +! +!WC_H2SO4/WC_HNO3=0.0 +! +!WC_H2SO4/WC_HNO4=+KC12*<WC_SO2> + PJAC(:,102,96)=+TPK%KC12(:)*PCONC(:,101) +! +!WC_H2SO4/WC_NH3=0.0 +! +!WC_H2SO4/WC_OH=0.0 +! +!WC_H2SO4/WC_HO2=0.0 +! +!WC_H2SO4/WC_CO2=0.0 +! +!WC_H2SO4/WC_SO2=+KC12*<WC_HNO4>+2.00*KC23*<WC_AHSO5>+KC25*<WC_O3>+KC26*<WC_H2O +!2> + PJAC(:,102,101)=+TPK%KC12(:)*PCONC(:,96)+2.00*TPK%KC23(:)*PCONC(:,123)+TPK%KC2& +&5(:)*PCONC(:,88)+TPK%KC26(:)*PCONC(:,89) +! +!WC_H2SO4/WC_H2SO4=-KTC46-KC15*<WC_NO3> + PJAC(:,102,102)=-TPK%KTC46(:)-TPK%KC15(:)*PCONC(:,92) +! +!WC_H2SO4/WC_RO21=0.0 +! +!WC_H2SO4/WC_RO25=0.0 +! +!WC_H2SO4/WC_MEOH=0.0 +! +!WC_H2SO4/WC_ETOH=0.0 +! +!WC_H2SO4/WC_ALCH=0.0 +! +!WC_H2SO4/WC_HCHO=0.0 +! +!WC_H2SO4/WC_ALD2=0.0 +! +!WC_H2SO4/WC_GLY=0.0 +! +!WC_H2SO4/WC_MGLY=0.0 +! +!WC_H2SO4/WC_KETL=0.0 +! +!WC_H2SO4/WC_ORA1=0.0 +! +!WC_H2SO4/WC_ORA2=0.0 +! +!WC_H2SO4/WC_ACID=0.0 +! +!WC_H2SO4/WC_RP16=0.0 +! +!WC_H2SO4/WC_UR21=0.0 +! +!WC_H2SO4/WC_UR28=0.0 +! +!WC_H2SO4/WC_ACID2=0.0 +! +!WC_H2SO4/WC_ASO3=0.0 +! +!WC_H2SO4/WC_ASO4=+KC24 + PJAC(:,102,121)=+TPK%KC24(:) +! +!WC_H2SO4/WC_ASO5=0.0 +! +!WC_H2SO4/WC_AHSO5=+2.00*KC23*<WC_SO2> + PJAC(:,102,123)=+2.00*TPK%KC23(:)*PCONC(:,101) +! +!WC_H2SO4/WC_AHMS=0.0 +! +!WC_H2SO4/WR_O3=0.0 +! +!WC_H2SO4/WR_H2O2=0.0 +! +!WC_H2SO4/WR_NO=0.0 +! +!WC_H2SO4/WR_NO2=0.0 +! +!WC_H2SO4/WR_NO3=0.0 +! +!WC_H2SO4/WR_N2O5=0.0 +! +!WC_H2SO4/WR_HONO=0.0 +! +!WC_H2SO4/WR_HNO3=0.0 +! +!WC_H2SO4/WR_HNO4=0.0 +! +!WC_H2SO4/WR_NH3=0.0 +! +!WC_H2SO4/WR_OH=0.0 +! +!WC_H2SO4/WR_HO2=0.0 +! +!WC_H2SO4/WR_CO2=0.0 +! +!WC_H2SO4/WR_SO2=0.0 +! +!WC_H2SO4/WR_H2SO4=0.0 +! +!WC_H2SO4/WR_RO21=0.0 +! +!WC_H2SO4/WR_RO25=0.0 +! +!WC_H2SO4/WR_MEOH=0.0 +! +!WC_H2SO4/WR_ETOH=0.0 +! +!WC_H2SO4/WR_ALCH=0.0 +! +!WC_H2SO4/WR_HCHO=0.0 +! +!WC_H2SO4/WR_ALD2=0.0 +! +!WC_H2SO4/WR_GLY=0.0 +! +!WC_H2SO4/WR_MGLY=0.0 +! +!WC_H2SO4/WR_KETL=0.0 +! +!WC_H2SO4/WR_ORA1=0.0 +! +!WC_H2SO4/WR_ORA2=0.0 +! +!WC_H2SO4/WR_ACID=0.0 +! +!WC_H2SO4/WR_RP16=0.0 +! +!WC_H2SO4/WR_UR21=0.0 +! +!WC_H2SO4/WR_UR28=0.0 +! +!WC_H2SO4/WR_ACID2=0.0 +! +!WC_H2SO4/WR_ASO3=0.0 +! +!WC_H2SO4/WR_ASO4=0.0 +! +!WC_H2SO4/WR_ASO5=0.0 +! +!WC_H2SO4/WR_AHSO5=0.0 +! +!WC_H2SO4/WR_AHMS=0.0 +! +!WC_RO21/NO=0.0 +! +!WC_RO21/NO2=0.0 +! +!WC_RO21/O3=0.0 +! +!WC_RO21/HONO=0.0 +! +!WC_RO21/HNO3=0.0 +! +!WC_RO21/HNO4=0.0 +! +!WC_RO21/N2O5=0.0 +! +!WC_RO21/NO3=0.0 +! +!WC_RO21/NH3=0.0 +! +!WC_RO21/HO2=0.0 +! +!WC_RO21/CO=0.0 +! +!WC_RO21/H2O2=0.0 +! +!WC_RO21/SO2=0.0 +! +!WC_RO21/H2SO4=0.0 +! +!WC_RO21/OH=0.0 +! +!WC_RO21/ETHE=0.0 +! +!WC_RO21/OLEL=0.0 +! +!WC_RO21/OLEH=0.0 +! +!WC_RO21/ALKL=0.0 +! +!WC_RO21/ALKM=0.0 +! +!WC_RO21/ALKH=0.0 +! +!WC_RO21/AROH=0.0 +! +!WC_RO21/AROL=0.0 +! +!WC_RO21/AROO=0.0 +! +!WC_RO21/ARAL=0.0 +! +!WC_RO21/ARAC=0.0 +! +!WC_RO21/PAH=0.0 +! +!WC_RO21/HCHO=0.0 +! +!WC_RO21/ALD2=0.0 +! +!WC_RO21/KETL=0.0 +! +!WC_RO21/KETH=0.0 +! +!WC_RO21/MEOH=0.0 +! +!WC_RO21/ETOH=0.0 +! +!WC_RO21/ALCH=0.0 +! +!WC_RO21/ISOP=0.0 +! +!WC_RO21/BIOL=0.0 +! +!WC_RO21/BIOH=0.0 +! +!WC_RO21/MTBE=0.0 +! +!WC_RO21/MVK=0.0 +! +!WC_RO21/MCR=0.0 +! +!WC_RO21/MGLY=0.0 +! +!WC_RO21/GLY=0.0 +! +!WC_RO21/ORA1=0.0 +! +!WC_RO21/ORA2=0.0 +! +!WC_RO21/ACID=0.0 +! +!WC_RO21/UR28=0.0 +! +!WC_RO21/UR21=0.0 +! +!WC_RO21/URG2=0.0 +! +!WC_RO21/UR26=0.0 +! +!WC_RO21/RPG2=0.0 +! +!WC_RO21/RP18=0.0 +! +!WC_RO21/RPG3=0.0 +! +!WC_RO21/URG4=0.0 +! +!WC_RO21/UR8=0.0 +! +!WC_RO21/UR17=0.0 +! +!WC_RO21/UR7=0.0 +! +!WC_RO21/RPR3=0.0 +! +!WC_RO21/URG6=0.0 +! +!WC_RO21/UR22=0.0 +! +!WC_RO21/URG7=0.0 +! +!WC_RO21/RPR4=0.0 +! +!WC_RO21/RPR7=0.0 +! +!WC_RO21/RPG7=0.0 +! +!WC_RO21/URG8=0.0 +! +!WC_RO21/UR19=0.0 +! +!WC_RO21/URG9=0.0 +! +!WC_RO21/AP7=0.0 +! +!WC_RO21/URG10=0.0 +! +!WC_RO21/RPR1=0.0 +! +!WC_RO21/RPR5=0.0 +! +!WC_RO21/RPR8=0.0 +! +!WC_RO21/RP10=0.0 +! +!WC_RO21/RP11=0.0 +! +!WC_RO21/RP16=0.0 +! +!WC_RO21/RPRL=0.0 +! +!WC_RO21/APAN=0.0 +! +!WC_RO21/PAN1=0.0 +! +!WC_RO21/PAN2=0.0 +! +!WC_RO21/PAN3=0.0 +! +!WC_RO21/PAN4=0.0 +! +!WC_RO21/PAN6=0.0 +! +!WC_RO21/PAN7=0.0 +! +!WC_RO21/PAN8=0.0 +! +!WC_RO21/PN10=0.0 +! +!WC_RO21/RO2T=0.0 +! +!WC_RO21/RO21=+KTC16 + PJAC(:,103,86)=+TPK%KTC16(:) +! +!WC_RO21/RO25=0.0 +! +!WC_RO21/WC_O3=0.0 +! +!WC_RO21/WC_H2O2=0.0 +! +!WC_RO21/WC_NO=0.0 +! +!WC_RO21/WC_NO2=0.0 +! +!WC_RO21/WC_NO3=0.0 +! +!WC_RO21/WC_N2O5=0.0 +! +!WC_RO21/WC_HONO=0.0 +! +!WC_RO21/WC_HNO3=0.0 +! +!WC_RO21/WC_HNO4=0.0 +! +!WC_RO21/WC_NH3=0.0 +! +!WC_RO21/WC_OH=+0.50*KC34*<WC_ALD2>+KC37*<WC_KETL> + PJAC(:,103,98)=+0.50*TPK%KC34(:)*PCONC(:,109)+TPK%KC37(:)*PCONC(:,112) +! +!WC_RO21/WC_HO2=0.0 +! +!WC_RO21/WC_CO2=0.0 +! +!WC_RO21/WC_SO2=-KC28*<WC_RO21> + PJAC(:,103,101)=-TPK%KC28(:)*PCONC(:,103) +! +!WC_RO21/WC_H2SO4=0.0 +! +!WC_RO21/WC_RO21=-KTC47-KC27*<WC_RO21>-KC27*<WC_RO21>-KC27*<WC_RO21>-KC27*<WC_R +!O21>-KC28*<WC_SO2> + PJAC(:,103,103)=-TPK%KTC47(:)-TPK%KC27(:)*PCONC(:,103)-TPK%KC27(:)*PCONC(:,103& +&)-TPK%KC27(:)*PCONC(:,103)-TPK%KC27(:)*PCONC(:,103)-TPK%KC28(:)*PCONC(:,101) +! +!WC_RO21/WC_RO25=0.0 +! +!WC_RO21/WC_MEOH=0.0 +! +!WC_RO21/WC_ETOH=0.0 +! +!WC_RO21/WC_ALCH=0.0 +! +!WC_RO21/WC_HCHO=0.0 +! +!WC_RO21/WC_ALD2=+0.50*KC34*<WC_OH> + PJAC(:,103,109)=+0.50*TPK%KC34(:)*PCONC(:,98) +! +!WC_RO21/WC_GLY=0.0 +! +!WC_RO21/WC_MGLY=0.0 +! +!WC_RO21/WC_KETL=+KC37*<WC_OH> + PJAC(:,103,112)=+TPK%KC37(:)*PCONC(:,98) +! +!WC_RO21/WC_ORA1=0.0 +! +!WC_RO21/WC_ORA2=0.0 +! +!WC_RO21/WC_ACID=0.0 +! +!WC_RO21/WC_RP16=0.0 +! +!WC_RO21/WC_UR21=0.0 +! +!WC_RO21/WC_UR28=0.0 +! +!WC_RO21/WC_ACID2=0.0 +! +!WC_RO21/WC_ASO3=0.0 +! +!WC_RO21/WC_ASO4=0.0 +! +!WC_RO21/WC_ASO5=0.0 +! +!WC_RO21/WC_AHSO5=0.0 +! +!WC_RO21/WC_AHMS=0.0 +! +!WC_RO21/WR_O3=0.0 +! +!WC_RO21/WR_H2O2=0.0 +! +!WC_RO21/WR_NO=0.0 +! +!WC_RO21/WR_NO2=0.0 +! +!WC_RO21/WR_NO3=0.0 +! +!WC_RO21/WR_N2O5=0.0 +! +!WC_RO21/WR_HONO=0.0 +! +!WC_RO21/WR_HNO3=0.0 +! +!WC_RO21/WR_HNO4=0.0 +! +!WC_RO21/WR_NH3=0.0 +! +!WC_RO21/WR_OH=0.0 +! +!WC_RO21/WR_HO2=0.0 +! +!WC_RO21/WR_CO2=0.0 +! +!WC_RO21/WR_SO2=0.0 +! +!WC_RO21/WR_H2SO4=0.0 +! +!WC_RO21/WR_RO21=0.0 +! +!WC_RO21/WR_RO25=0.0 +! +!WC_RO21/WR_MEOH=0.0 +! +!WC_RO21/WR_ETOH=0.0 +! +!WC_RO21/WR_ALCH=0.0 +! +!WC_RO21/WR_HCHO=0.0 +! +!WC_RO21/WR_ALD2=0.0 +! +!WC_RO21/WR_GLY=0.0 +! +!WC_RO21/WR_MGLY=0.0 +! +!WC_RO21/WR_KETL=0.0 +! +!WC_RO21/WR_ORA1=0.0 +! +!WC_RO21/WR_ORA2=0.0 +! +!WC_RO21/WR_ACID=0.0 +! +!WC_RO21/WR_RP16=0.0 +! +!WC_RO21/WR_UR21=0.0 +! +!WC_RO21/WR_UR28=0.0 +! +!WC_RO21/WR_ACID2=0.0 +! +!WC_RO21/WR_ASO3=0.0 +! +!WC_RO21/WR_ASO4=0.0 +! +!WC_RO21/WR_ASO5=0.0 +! +!WC_RO21/WR_AHSO5=0.0 +! +!WC_RO21/WR_AHMS=0.0 +! +!WC_RO25/NO=0.0 +! +!WC_RO25/NO2=0.0 +! +!WC_RO25/O3=0.0 +! +!WC_RO25/HONO=0.0 +! +!WC_RO25/HNO3=0.0 +! +!WC_RO25/HNO4=0.0 +! +!WC_RO25/N2O5=0.0 +! +!WC_RO25/NO3=0.0 +! +!WC_RO25/NH3=0.0 +! +!WC_RO25/HO2=0.0 +! +!WC_RO25/CO=0.0 +! +!WC_RO25/H2O2=0.0 +! +!WC_RO25/SO2=0.0 +! +!WC_RO25/H2SO4=0.0 +! +!WC_RO25/OH=0.0 +! +!WC_RO25/ETHE=0.0 +! +!WC_RO25/OLEL=0.0 +! +!WC_RO25/OLEH=0.0 +! +!WC_RO25/ALKL=0.0 +! +!WC_RO25/ALKM=0.0 +! +!WC_RO25/ALKH=0.0 +! +!WC_RO25/AROH=0.0 +! +!WC_RO25/AROL=0.0 +! +!WC_RO25/AROO=0.0 +! +!WC_RO25/ARAL=0.0 +! +!WC_RO25/ARAC=0.0 +! +!WC_RO25/PAH=0.0 +! +!WC_RO25/HCHO=0.0 +! +!WC_RO25/ALD2=0.0 +! +!WC_RO25/KETL=0.0 +! +!WC_RO25/KETH=0.0 +! +!WC_RO25/MEOH=0.0 +! +!WC_RO25/ETOH=0.0 +! +!WC_RO25/ALCH=0.0 +! +!WC_RO25/ISOP=0.0 +! +!WC_RO25/BIOL=0.0 +! +!WC_RO25/BIOH=0.0 +! +!WC_RO25/MTBE=0.0 +! +!WC_RO25/MVK=0.0 +! +!WC_RO25/MCR=0.0 +! +!WC_RO25/MGLY=0.0 +! +!WC_RO25/GLY=0.0 +! +!WC_RO25/ORA1=0.0 +! +!WC_RO25/ORA2=0.0 +! +!WC_RO25/ACID=0.0 +! +!WC_RO25/UR28=0.0 +! +!WC_RO25/UR21=0.0 +! +!WC_RO25/URG2=0.0 +! +!WC_RO25/UR26=0.0 +! +!WC_RO25/RPG2=0.0 +! +!WC_RO25/RP18=0.0 +! +!WC_RO25/RPG3=0.0 +! +!WC_RO25/URG4=0.0 +! +!WC_RO25/UR8=0.0 +! +!WC_RO25/UR17=0.0 +! +!WC_RO25/UR7=0.0 +! +!WC_RO25/RPR3=0.0 +! +!WC_RO25/URG6=0.0 +! +!WC_RO25/UR22=0.0 +! +!WC_RO25/URG7=0.0 +! +!WC_RO25/RPR4=0.0 +! +!WC_RO25/RPR7=0.0 +! +!WC_RO25/RPG7=0.0 +! +!WC_RO25/URG8=0.0 +! +!WC_RO25/UR19=0.0 +! +!WC_RO25/URG9=0.0 +! +!WC_RO25/AP7=0.0 +! +!WC_RO25/URG10=0.0 +! +!WC_RO25/RPR1=0.0 +! +!WC_RO25/RPR5=0.0 +! +!WC_RO25/RPR8=0.0 +! +!WC_RO25/RP10=0.0 +! +!WC_RO25/RP11=0.0 +! +!WC_RO25/RP16=0.0 +! +!WC_RO25/RPRL=0.0 +! +!WC_RO25/APAN=0.0 +! +!WC_RO25/PAN1=0.0 +! +!WC_RO25/PAN2=0.0 +! +!WC_RO25/PAN3=0.0 +! +!WC_RO25/PAN4=0.0 +! +!WC_RO25/PAN6=0.0 +! +!WC_RO25/PAN7=0.0 +! +!WC_RO25/PAN8=0.0 +! +!WC_RO25/PN10=0.0 +! +!WC_RO25/RO2T=0.0 +! +!WC_RO25/RO21=0.0 +! +!WC_RO25/RO25=+KTC17 + PJAC(:,104,87)=+TPK%KTC17(:) +! +!WC_RO25/WC_O3=0.0 +! +!WC_RO25/WC_H2O2=0.0 +! +!WC_RO25/WC_NO=0.0 +! +!WC_RO25/WC_NO2=0.0 +! +!WC_RO25/WC_NO3=0.0 +! +!WC_RO25/WC_N2O5=0.0 +! +!WC_RO25/WC_HONO=0.0 +! +!WC_RO25/WC_HNO3=0.0 +! +!WC_RO25/WC_HNO4=0.0 +! +!WC_RO25/WC_NH3=0.0 +! +!WC_RO25/WC_OH=+0.50*KC34*<WC_ALD2>+KC40*<WC_ACID> + PJAC(:,104,98)=+0.50*TPK%KC34(:)*PCONC(:,109)+TPK%KC40(:)*PCONC(:,115) +! +!WC_RO25/WC_HO2=0.0 +! +!WC_RO25/WC_CO2=0.0 +! +!WC_RO25/WC_SO2=0.0 +! +!WC_RO25/WC_H2SO4=0.0 +! +!WC_RO25/WC_RO21=0.0 +! +!WC_RO25/WC_RO25=-KTC48-KC29*<WC_RO25>-KC29*<WC_RO25>-KC29*<WC_RO25>-KC29*<WC_R +!O25> + PJAC(:,104,104)=-TPK%KTC48(:)-TPK%KC29(:)*PCONC(:,104)-TPK%KC29(:)*PCONC(:,104& +&)-TPK%KC29(:)*PCONC(:,104)-TPK%KC29(:)*PCONC(:,104) +! +!WC_RO25/WC_MEOH=0.0 +! +!WC_RO25/WC_ETOH=0.0 +! +!WC_RO25/WC_ALCH=0.0 +! +!WC_RO25/WC_HCHO=0.0 +! +!WC_RO25/WC_ALD2=+0.50*KC34*<WC_OH> + PJAC(:,104,109)=+0.50*TPK%KC34(:)*PCONC(:,98) +! +!WC_RO25/WC_GLY=0.0 +! +!WC_RO25/WC_MGLY=0.0 +! +!WC_RO25/WC_KETL=0.0 +! +!WC_RO25/WC_ORA1=0.0 +! +!WC_RO25/WC_ORA2=0.0 +! +!WC_RO25/WC_ACID=+KC40*<WC_OH> + PJAC(:,104,115)=+TPK%KC40(:)*PCONC(:,98) +! +!WC_RO25/WC_RP16=0.0 +! +!WC_RO25/WC_UR21=0.0 +! +!WC_RO25/WC_UR28=0.0 +! +!WC_RO25/WC_ACID2=0.0 +! +!WC_RO25/WC_ASO3=0.0 +! +!WC_RO25/WC_ASO4=0.0 +! +!WC_RO25/WC_ASO5=0.0 +! +!WC_RO25/WC_AHSO5=0.0 +! +!WC_RO25/WC_AHMS=0.0 +! +!WC_RO25/WR_O3=0.0 +! +!WC_RO25/WR_H2O2=0.0 +! +!WC_RO25/WR_NO=0.0 +! +!WC_RO25/WR_NO2=0.0 +! +!WC_RO25/WR_NO3=0.0 +! +!WC_RO25/WR_N2O5=0.0 +! +!WC_RO25/WR_HONO=0.0 +! +!WC_RO25/WR_HNO3=0.0 +! +!WC_RO25/WR_HNO4=0.0 +! +!WC_RO25/WR_NH3=0.0 +! +!WC_RO25/WR_OH=0.0 +! +!WC_RO25/WR_HO2=0.0 +! +!WC_RO25/WR_CO2=0.0 +! +!WC_RO25/WR_SO2=0.0 +! +!WC_RO25/WR_H2SO4=0.0 +! +!WC_RO25/WR_RO21=0.0 +! +!WC_RO25/WR_RO25=0.0 +! +!WC_RO25/WR_MEOH=0.0 +! +!WC_RO25/WR_ETOH=0.0 +! +!WC_RO25/WR_ALCH=0.0 +! +!WC_RO25/WR_HCHO=0.0 +! +!WC_RO25/WR_ALD2=0.0 +! +!WC_RO25/WR_GLY=0.0 +! +!WC_RO25/WR_MGLY=0.0 +! +!WC_RO25/WR_KETL=0.0 +! +!WC_RO25/WR_ORA1=0.0 +! +!WC_RO25/WR_ORA2=0.0 +! +!WC_RO25/WR_ACID=0.0 +! +!WC_RO25/WR_RP16=0.0 +! +!WC_RO25/WR_UR21=0.0 +! +!WC_RO25/WR_UR28=0.0 +! +!WC_RO25/WR_ACID2=0.0 +! +!WC_RO25/WR_ASO3=0.0 +! +!WC_RO25/WR_ASO4=0.0 +! +!WC_RO25/WR_ASO5=0.0 +! +!WC_RO25/WR_AHSO5=0.0 +! +!WC_RO25/WR_AHMS=0.0 +! +!WC_MEOH/NO=0.0 +! +!WC_MEOH/NO2=0.0 +! +!WC_MEOH/O3=0.0 +! +!WC_MEOH/HONO=0.0 +! +!WC_MEOH/HNO3=0.0 +! +!WC_MEOH/HNO4=0.0 +! +!WC_MEOH/N2O5=0.0 +! +!WC_MEOH/NO3=0.0 +! +!WC_MEOH/NH3=0.0 +! +!WC_MEOH/HO2=0.0 +! +!WC_MEOH/CO=0.0 +! +!WC_MEOH/H2O2=0.0 +! +!WC_MEOH/SO2=0.0 +! +!WC_MEOH/H2SO4=0.0 +! +!WC_MEOH/OH=0.0 +! +!WC_MEOH/ETHE=0.0 +! +!WC_MEOH/OLEL=0.0 +! +!WC_MEOH/OLEH=0.0 +! +!WC_MEOH/ALKL=0.0 +! +!WC_MEOH/ALKM=0.0 +! +!WC_MEOH/ALKH=0.0 +! +!WC_MEOH/AROH=0.0 +! +!WC_MEOH/AROL=0.0 +! +!WC_MEOH/AROO=0.0 +! +!WC_MEOH/ARAL=0.0 +! +!WC_MEOH/ARAC=0.0 +! +!WC_MEOH/PAH=0.0 +! +!WC_MEOH/HCHO=0.0 +! +!WC_MEOH/ALD2=0.0 +! +!WC_MEOH/KETL=0.0 +! +!WC_MEOH/KETH=0.0 +! +!WC_MEOH/MEOH=+KTC18 + PJAC(:,105,32)=+TPK%KTC18(:) +! +!WC_MEOH/ETOH=0.0 +! +!WC_MEOH/ALCH=0.0 +! +!WC_MEOH/ISOP=0.0 +! +!WC_MEOH/BIOL=0.0 +! +!WC_MEOH/BIOH=0.0 +! +!WC_MEOH/MTBE=0.0 +! +!WC_MEOH/MVK=0.0 +! +!WC_MEOH/MCR=0.0 +! +!WC_MEOH/MGLY=0.0 +! +!WC_MEOH/GLY=0.0 +! +!WC_MEOH/ORA1=0.0 +! +!WC_MEOH/ORA2=0.0 +! +!WC_MEOH/ACID=0.0 +! +!WC_MEOH/UR28=0.0 +! +!WC_MEOH/UR21=0.0 +! +!WC_MEOH/URG2=0.0 +! +!WC_MEOH/UR26=0.0 +! +!WC_MEOH/RPG2=0.0 +! +!WC_MEOH/RP18=0.0 +! +!WC_MEOH/RPG3=0.0 +! +!WC_MEOH/URG4=0.0 +! +!WC_MEOH/UR8=0.0 +! +!WC_MEOH/UR17=0.0 +! +!WC_MEOH/UR7=0.0 +! +!WC_MEOH/RPR3=0.0 +! +!WC_MEOH/URG6=0.0 +! +!WC_MEOH/UR22=0.0 +! +!WC_MEOH/URG7=0.0 +! +!WC_MEOH/RPR4=0.0 +! +!WC_MEOH/RPR7=0.0 +! +!WC_MEOH/RPG7=0.0 +! +!WC_MEOH/URG8=0.0 +! +!WC_MEOH/UR19=0.0 +! +!WC_MEOH/URG9=0.0 +! +!WC_MEOH/AP7=0.0 +! +!WC_MEOH/URG10=0.0 +! +!WC_MEOH/RPR1=0.0 +! +!WC_MEOH/RPR5=0.0 +! +!WC_MEOH/RPR8=0.0 +! +!WC_MEOH/RP10=0.0 +! +!WC_MEOH/RP11=0.0 +! +!WC_MEOH/RP16=0.0 +! +!WC_MEOH/RPRL=0.0 +! +!WC_MEOH/APAN=0.0 +! +!WC_MEOH/PAN1=0.0 +! +!WC_MEOH/PAN2=0.0 +! +!WC_MEOH/PAN3=0.0 +! +!WC_MEOH/PAN4=0.0 +! +!WC_MEOH/PAN6=0.0 +! +!WC_MEOH/PAN7=0.0 +! +!WC_MEOH/PAN8=0.0 +! +!WC_MEOH/PN10=0.0 +! +!WC_MEOH/RO2T=0.0 +! +!WC_MEOH/RO21=0.0 +! +!WC_MEOH/RO25=0.0 +! +!WC_MEOH/WC_O3=0.0 +! +!WC_MEOH/WC_H2O2=0.0 +! +!WC_MEOH/WC_NO=0.0 +! +!WC_MEOH/WC_NO2=0.0 +! +!WC_MEOH/WC_NO3=0.0 +! +!WC_MEOH/WC_N2O5=0.0 +! +!WC_MEOH/WC_HONO=0.0 +! +!WC_MEOH/WC_HNO3=0.0 +! +!WC_MEOH/WC_HNO4=0.0 +! +!WC_MEOH/WC_NH3=0.0 +! +!WC_MEOH/WC_OH=-KC30*<WC_MEOH> + PJAC(:,105,98)=-TPK%KC30(:)*PCONC(:,105) +! +!WC_MEOH/WC_HO2=0.0 +! +!WC_MEOH/WC_CO2=0.0 +! +!WC_MEOH/WC_SO2=0.0 +! +!WC_MEOH/WC_H2SO4=0.0 +! +!WC_MEOH/WC_RO21=0.0 +! +!WC_MEOH/WC_RO25=0.0 +! +!WC_MEOH/WC_MEOH=-KTC49-KC30*<WC_OH> + PJAC(:,105,105)=-TPK%KTC49(:)-TPK%KC30(:)*PCONC(:,98) +! +!WC_MEOH/WC_ETOH=0.0 +! +!WC_MEOH/WC_ALCH=0.0 +! +!WC_MEOH/WC_HCHO=0.0 +! +!WC_MEOH/WC_ALD2=0.0 +! +!WC_MEOH/WC_GLY=0.0 +! +!WC_MEOH/WC_MGLY=0.0 +! +!WC_MEOH/WC_KETL=0.0 +! +!WC_MEOH/WC_ORA1=0.0 +! +!WC_MEOH/WC_ORA2=0.0 +! +!WC_MEOH/WC_ACID=0.0 +! +!WC_MEOH/WC_RP16=0.0 +! +!WC_MEOH/WC_UR21=0.0 +! +!WC_MEOH/WC_UR28=0.0 +! +!WC_MEOH/WC_ACID2=0.0 +! +!WC_MEOH/WC_ASO3=0.0 +! +!WC_MEOH/WC_ASO4=0.0 +! +!WC_MEOH/WC_ASO5=0.0 +! +!WC_MEOH/WC_AHSO5=0.0 +! +!WC_MEOH/WC_AHMS=0.0 +! +!WC_MEOH/WR_O3=0.0 +! +!WC_MEOH/WR_H2O2=0.0 +! +!WC_MEOH/WR_NO=0.0 +! +!WC_MEOH/WR_NO2=0.0 +! +!WC_MEOH/WR_NO3=0.0 +! +!WC_MEOH/WR_N2O5=0.0 +! +!WC_MEOH/WR_HONO=0.0 +! +!WC_MEOH/WR_HNO3=0.0 +! +!WC_MEOH/WR_HNO4=0.0 +! +!WC_MEOH/WR_NH3=0.0 +! +!WC_MEOH/WR_OH=0.0 +! +!WC_MEOH/WR_HO2=0.0 +! +!WC_MEOH/WR_CO2=0.0 +! +!WC_MEOH/WR_SO2=0.0 +! +!WC_MEOH/WR_H2SO4=0.0 +! +!WC_MEOH/WR_RO21=0.0 +! +!WC_MEOH/WR_RO25=0.0 +! +!WC_MEOH/WR_MEOH=0.0 +! +!WC_MEOH/WR_ETOH=0.0 +! +!WC_MEOH/WR_ALCH=0.0 +! +!WC_MEOH/WR_HCHO=0.0 +! +!WC_MEOH/WR_ALD2=0.0 +! +!WC_MEOH/WR_GLY=0.0 +! +!WC_MEOH/WR_MGLY=0.0 +! +!WC_MEOH/WR_KETL=0.0 +! +!WC_MEOH/WR_ORA1=0.0 +! +!WC_MEOH/WR_ORA2=0.0 +! +!WC_MEOH/WR_ACID=0.0 +! +!WC_MEOH/WR_RP16=0.0 +! +!WC_MEOH/WR_UR21=0.0 +! +!WC_MEOH/WR_UR28=0.0 +! +!WC_MEOH/WR_ACID2=0.0 +! +!WC_MEOH/WR_ASO3=0.0 +! +!WC_MEOH/WR_ASO4=0.0 +! +!WC_MEOH/WR_ASO5=0.0 +! +!WC_MEOH/WR_AHSO5=0.0 +! +!WC_MEOH/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ20 +! +SUBROUTINE SUBJ21 +! +!Indices 106 a 110 +! +! +!WC_ETOH/NO=0.0 +! +!WC_ETOH/NO2=0.0 +! +!WC_ETOH/O3=0.0 +! +!WC_ETOH/HONO=0.0 +! +!WC_ETOH/HNO3=0.0 +! +!WC_ETOH/HNO4=0.0 +! +!WC_ETOH/N2O5=0.0 +! +!WC_ETOH/NO3=0.0 +! +!WC_ETOH/NH3=0.0 +! +!WC_ETOH/HO2=0.0 +! +!WC_ETOH/CO=0.0 +! +!WC_ETOH/H2O2=0.0 +! +!WC_ETOH/SO2=0.0 +! +!WC_ETOH/H2SO4=0.0 +! +!WC_ETOH/OH=0.0 +! +!WC_ETOH/ETHE=0.0 +! +!WC_ETOH/OLEL=0.0 +! +!WC_ETOH/OLEH=0.0 +! +!WC_ETOH/ALKL=0.0 +! +!WC_ETOH/ALKM=0.0 +! +!WC_ETOH/ALKH=0.0 +! +!WC_ETOH/AROH=0.0 +! +!WC_ETOH/AROL=0.0 +! +!WC_ETOH/AROO=0.0 +! +!WC_ETOH/ARAL=0.0 +! +!WC_ETOH/ARAC=0.0 +! +!WC_ETOH/PAH=0.0 +! +!WC_ETOH/HCHO=0.0 +! +!WC_ETOH/ALD2=0.0 +! +!WC_ETOH/KETL=0.0 +! +!WC_ETOH/KETH=0.0 +! +!WC_ETOH/MEOH=0.0 +! +!WC_ETOH/ETOH=+KTC19 + PJAC(:,106,33)=+TPK%KTC19(:) +! +!WC_ETOH/ALCH=0.0 +! +!WC_ETOH/ISOP=0.0 +! +!WC_ETOH/BIOL=0.0 +! +!WC_ETOH/BIOH=0.0 +! +!WC_ETOH/MTBE=0.0 +! +!WC_ETOH/MVK=0.0 +! +!WC_ETOH/MCR=0.0 +! +!WC_ETOH/MGLY=0.0 +! +!WC_ETOH/GLY=0.0 +! +!WC_ETOH/ORA1=0.0 +! +!WC_ETOH/ORA2=0.0 +! +!WC_ETOH/ACID=0.0 +! +!WC_ETOH/UR28=0.0 +! +!WC_ETOH/UR21=0.0 +! +!WC_ETOH/URG2=0.0 +! +!WC_ETOH/UR26=0.0 +! +!WC_ETOH/RPG2=0.0 +! +!WC_ETOH/RP18=0.0 +! +!WC_ETOH/RPG3=0.0 +! +!WC_ETOH/URG4=0.0 +! +!WC_ETOH/UR8=0.0 +! +!WC_ETOH/UR17=0.0 +! +!WC_ETOH/UR7=0.0 +! +!WC_ETOH/RPR3=0.0 +! +!WC_ETOH/URG6=0.0 +! +!WC_ETOH/UR22=0.0 +! +!WC_ETOH/URG7=0.0 +! +!WC_ETOH/RPR4=0.0 +! +!WC_ETOH/RPR7=0.0 +! +!WC_ETOH/RPG7=0.0 +! +!WC_ETOH/URG8=0.0 +! +!WC_ETOH/UR19=0.0 +! +!WC_ETOH/URG9=0.0 +! +!WC_ETOH/AP7=0.0 +! +!WC_ETOH/URG10=0.0 +! +!WC_ETOH/RPR1=0.0 +! +!WC_ETOH/RPR5=0.0 +! +!WC_ETOH/RPR8=0.0 +! +!WC_ETOH/RP10=0.0 +! +!WC_ETOH/RP11=0.0 +! +!WC_ETOH/RP16=0.0 +! +!WC_ETOH/RPRL=0.0 +! +!WC_ETOH/APAN=0.0 +! +!WC_ETOH/PAN1=0.0 +! +!WC_ETOH/PAN2=0.0 +! +!WC_ETOH/PAN3=0.0 +! +!WC_ETOH/PAN4=0.0 +! +!WC_ETOH/PAN6=0.0 +! +!WC_ETOH/PAN7=0.0 +! +!WC_ETOH/PAN8=0.0 +! +!WC_ETOH/PN10=0.0 +! +!WC_ETOH/RO2T=0.0 +! +!WC_ETOH/RO21=0.0 +! +!WC_ETOH/RO25=0.0 +! +!WC_ETOH/WC_O3=0.0 +! +!WC_ETOH/WC_H2O2=0.0 +! +!WC_ETOH/WC_NO=0.0 +! +!WC_ETOH/WC_NO2=0.0 +! +!WC_ETOH/WC_NO3=0.0 +! +!WC_ETOH/WC_N2O5=0.0 +! +!WC_ETOH/WC_HONO=0.0 +! +!WC_ETOH/WC_HNO3=0.0 +! +!WC_ETOH/WC_HNO4=0.0 +! +!WC_ETOH/WC_NH3=0.0 +! +!WC_ETOH/WC_OH=-KC31*<WC_ETOH> + PJAC(:,106,98)=-TPK%KC31(:)*PCONC(:,106) +! +!WC_ETOH/WC_HO2=0.0 +! +!WC_ETOH/WC_CO2=0.0 +! +!WC_ETOH/WC_SO2=0.0 +! +!WC_ETOH/WC_H2SO4=0.0 +! +!WC_ETOH/WC_RO21=0.0 +! +!WC_ETOH/WC_RO25=0.0 +! +!WC_ETOH/WC_MEOH=0.0 +! +!WC_ETOH/WC_ETOH=-KTC50-KC31*<WC_OH> + PJAC(:,106,106)=-TPK%KTC50(:)-TPK%KC31(:)*PCONC(:,98) +! +!WC_ETOH/WC_ALCH=0.0 +! +!WC_ETOH/WC_HCHO=0.0 +! +!WC_ETOH/WC_ALD2=0.0 +! +!WC_ETOH/WC_GLY=0.0 +! +!WC_ETOH/WC_MGLY=0.0 +! +!WC_ETOH/WC_KETL=0.0 +! +!WC_ETOH/WC_ORA1=0.0 +! +!WC_ETOH/WC_ORA2=0.0 +! +!WC_ETOH/WC_ACID=0.0 +! +!WC_ETOH/WC_RP16=0.0 +! +!WC_ETOH/WC_UR21=0.0 +! +!WC_ETOH/WC_UR28=0.0 +! +!WC_ETOH/WC_ACID2=0.0 +! +!WC_ETOH/WC_ASO3=0.0 +! +!WC_ETOH/WC_ASO4=0.0 +! +!WC_ETOH/WC_ASO5=0.0 +! +!WC_ETOH/WC_AHSO5=0.0 +! +!WC_ETOH/WC_AHMS=0.0 +! +!WC_ETOH/WR_O3=0.0 +! +!WC_ETOH/WR_H2O2=0.0 +! +!WC_ETOH/WR_NO=0.0 +! +!WC_ETOH/WR_NO2=0.0 +! +!WC_ETOH/WR_NO3=0.0 +! +!WC_ETOH/WR_N2O5=0.0 +! +!WC_ETOH/WR_HONO=0.0 +! +!WC_ETOH/WR_HNO3=0.0 +! +!WC_ETOH/WR_HNO4=0.0 +! +!WC_ETOH/WR_NH3=0.0 +! +!WC_ETOH/WR_OH=0.0 +! +!WC_ETOH/WR_HO2=0.0 +! +!WC_ETOH/WR_CO2=0.0 +! +!WC_ETOH/WR_SO2=0.0 +! +!WC_ETOH/WR_H2SO4=0.0 +! +!WC_ETOH/WR_RO21=0.0 +! +!WC_ETOH/WR_RO25=0.0 +! +!WC_ETOH/WR_MEOH=0.0 +! +!WC_ETOH/WR_ETOH=0.0 +! +!WC_ETOH/WR_ALCH=0.0 +! +!WC_ETOH/WR_HCHO=0.0 +! +!WC_ETOH/WR_ALD2=0.0 +! +!WC_ETOH/WR_GLY=0.0 +! +!WC_ETOH/WR_MGLY=0.0 +! +!WC_ETOH/WR_KETL=0.0 +! +!WC_ETOH/WR_ORA1=0.0 +! +!WC_ETOH/WR_ORA2=0.0 +! +!WC_ETOH/WR_ACID=0.0 +! +!WC_ETOH/WR_RP16=0.0 +! +!WC_ETOH/WR_UR21=0.0 +! +!WC_ETOH/WR_UR28=0.0 +! +!WC_ETOH/WR_ACID2=0.0 +! +!WC_ETOH/WR_ASO3=0.0 +! +!WC_ETOH/WR_ASO4=0.0 +! +!WC_ETOH/WR_ASO5=0.0 +! +!WC_ETOH/WR_AHSO5=0.0 +! +!WC_ETOH/WR_AHMS=0.0 +! +!WC_ALCH/NO=0.0 +! +!WC_ALCH/NO2=0.0 +! +!WC_ALCH/O3=0.0 +! +!WC_ALCH/HONO=0.0 +! +!WC_ALCH/HNO3=0.0 +! +!WC_ALCH/HNO4=0.0 +! +!WC_ALCH/N2O5=0.0 +! +!WC_ALCH/NO3=0.0 +! +!WC_ALCH/NH3=0.0 +! +!WC_ALCH/HO2=0.0 +! +!WC_ALCH/CO=0.0 +! +!WC_ALCH/H2O2=0.0 +! +!WC_ALCH/SO2=0.0 +! +!WC_ALCH/H2SO4=0.0 +! +!WC_ALCH/OH=0.0 +! +!WC_ALCH/ETHE=0.0 +! +!WC_ALCH/OLEL=0.0 +! +!WC_ALCH/OLEH=0.0 +! +!WC_ALCH/ALKL=0.0 +! +!WC_ALCH/ALKM=0.0 +! +!WC_ALCH/ALKH=0.0 +! +!WC_ALCH/AROH=0.0 +! +!WC_ALCH/AROL=0.0 +! +!WC_ALCH/AROO=0.0 +! +!WC_ALCH/ARAL=0.0 +! +!WC_ALCH/ARAC=0.0 +! +!WC_ALCH/PAH=0.0 +! +!WC_ALCH/HCHO=0.0 +! +!WC_ALCH/ALD2=0.0 +! +!WC_ALCH/KETL=0.0 +! +!WC_ALCH/KETH=0.0 +! +!WC_ALCH/MEOH=0.0 +! +!WC_ALCH/ETOH=0.0 +! +!WC_ALCH/ALCH=+KTC20 + PJAC(:,107,34)=+TPK%KTC20(:) +! +!WC_ALCH/ISOP=0.0 +! +!WC_ALCH/BIOL=0.0 +! +!WC_ALCH/BIOH=0.0 +! +!WC_ALCH/MTBE=0.0 +! +!WC_ALCH/MVK=0.0 +! +!WC_ALCH/MCR=0.0 +! +!WC_ALCH/MGLY=0.0 +! +!WC_ALCH/GLY=0.0 +! +!WC_ALCH/ORA1=0.0 +! +!WC_ALCH/ORA2=0.0 +! +!WC_ALCH/ACID=0.0 +! +!WC_ALCH/UR28=0.0 +! +!WC_ALCH/UR21=0.0 +! +!WC_ALCH/URG2=0.0 +! +!WC_ALCH/UR26=0.0 +! +!WC_ALCH/RPG2=0.0 +! +!WC_ALCH/RP18=0.0 +! +!WC_ALCH/RPG3=0.0 +! +!WC_ALCH/URG4=0.0 +! +!WC_ALCH/UR8=0.0 +! +!WC_ALCH/UR17=0.0 +! +!WC_ALCH/UR7=0.0 +! +!WC_ALCH/RPR3=0.0 +! +!WC_ALCH/URG6=0.0 +! +!WC_ALCH/UR22=0.0 +! +!WC_ALCH/URG7=0.0 +! +!WC_ALCH/RPR4=0.0 +! +!WC_ALCH/RPR7=0.0 +! +!WC_ALCH/RPG7=0.0 +! +!WC_ALCH/URG8=0.0 +! +!WC_ALCH/UR19=0.0 +! +!WC_ALCH/URG9=0.0 +! +!WC_ALCH/AP7=0.0 +! +!WC_ALCH/URG10=0.0 +! +!WC_ALCH/RPR1=0.0 +! +!WC_ALCH/RPR5=0.0 +! +!WC_ALCH/RPR8=0.0 +! +!WC_ALCH/RP10=0.0 +! +!WC_ALCH/RP11=0.0 +! +!WC_ALCH/RP16=0.0 +! +!WC_ALCH/RPRL=0.0 +! +!WC_ALCH/APAN=0.0 +! +!WC_ALCH/PAN1=0.0 +! +!WC_ALCH/PAN2=0.0 +! +!WC_ALCH/PAN3=0.0 +! +!WC_ALCH/PAN4=0.0 +! +!WC_ALCH/PAN6=0.0 +! +!WC_ALCH/PAN7=0.0 +! +!WC_ALCH/PAN8=0.0 +! +!WC_ALCH/PN10=0.0 +! +!WC_ALCH/RO2T=0.0 +! +!WC_ALCH/RO21=0.0 +! +!WC_ALCH/RO25=0.0 +! +!WC_ALCH/WC_O3=0.0 +! +!WC_ALCH/WC_H2O2=0.0 +! +!WC_ALCH/WC_NO=0.0 +! +!WC_ALCH/WC_NO2=0.0 +! +!WC_ALCH/WC_NO3=0.0 +! +!WC_ALCH/WC_N2O5=0.0 +! +!WC_ALCH/WC_HONO=0.0 +! +!WC_ALCH/WC_HNO3=0.0 +! +!WC_ALCH/WC_HNO4=0.0 +! +!WC_ALCH/WC_NH3=0.0 +! +!WC_ALCH/WC_OH=-KC32*<WC_ALCH> + PJAC(:,107,98)=-TPK%KC32(:)*PCONC(:,107) +! +!WC_ALCH/WC_HO2=0.0 +! +!WC_ALCH/WC_CO2=0.0 +! +!WC_ALCH/WC_SO2=0.0 +! +!WC_ALCH/WC_H2SO4=0.0 +! +!WC_ALCH/WC_RO21=0.0 +! +!WC_ALCH/WC_RO25=0.0 +! +!WC_ALCH/WC_MEOH=0.0 +! +!WC_ALCH/WC_ETOH=0.0 +! +!WC_ALCH/WC_ALCH=-KTC51-KC32*<WC_OH> + PJAC(:,107,107)=-TPK%KTC51(:)-TPK%KC32(:)*PCONC(:,98) +! +!WC_ALCH/WC_HCHO=0.0 +! +!WC_ALCH/WC_ALD2=0.0 +! +!WC_ALCH/WC_GLY=0.0 +! +!WC_ALCH/WC_MGLY=0.0 +! +!WC_ALCH/WC_KETL=0.0 +! +!WC_ALCH/WC_ORA1=0.0 +! +!WC_ALCH/WC_ORA2=0.0 +! +!WC_ALCH/WC_ACID=0.0 +! +!WC_ALCH/WC_RP16=0.0 +! +!WC_ALCH/WC_UR21=0.0 +! +!WC_ALCH/WC_UR28=0.0 +! +!WC_ALCH/WC_ACID2=0.0 +! +!WC_ALCH/WC_ASO3=0.0 +! +!WC_ALCH/WC_ASO4=0.0 +! +!WC_ALCH/WC_ASO5=0.0 +! +!WC_ALCH/WC_AHSO5=0.0 +! +!WC_ALCH/WC_AHMS=0.0 +! +!WC_ALCH/WR_O3=0.0 +! +!WC_ALCH/WR_H2O2=0.0 +! +!WC_ALCH/WR_NO=0.0 +! +!WC_ALCH/WR_NO2=0.0 +! +!WC_ALCH/WR_NO3=0.0 +! +!WC_ALCH/WR_N2O5=0.0 +! +!WC_ALCH/WR_HONO=0.0 +! +!WC_ALCH/WR_HNO3=0.0 +! +!WC_ALCH/WR_HNO4=0.0 +! +!WC_ALCH/WR_NH3=0.0 +! +!WC_ALCH/WR_OH=0.0 +! +!WC_ALCH/WR_HO2=0.0 +! +!WC_ALCH/WR_CO2=0.0 +! +!WC_ALCH/WR_SO2=0.0 +! +!WC_ALCH/WR_H2SO4=0.0 +! +!WC_ALCH/WR_RO21=0.0 +! +!WC_ALCH/WR_RO25=0.0 +! +!WC_ALCH/WR_MEOH=0.0 +! +!WC_ALCH/WR_ETOH=0.0 +! +!WC_ALCH/WR_ALCH=0.0 +! +!WC_ALCH/WR_HCHO=0.0 +! +!WC_ALCH/WR_ALD2=0.0 +! +!WC_ALCH/WR_GLY=0.0 +! +!WC_ALCH/WR_MGLY=0.0 +! +!WC_ALCH/WR_KETL=0.0 +! +!WC_ALCH/WR_ORA1=0.0 +! +!WC_ALCH/WR_ORA2=0.0 +! +!WC_ALCH/WR_ACID=0.0 +! +!WC_ALCH/WR_RP16=0.0 +! +!WC_ALCH/WR_UR21=0.0 +! +!WC_ALCH/WR_UR28=0.0 +! +!WC_ALCH/WR_ACID2=0.0 +! +!WC_ALCH/WR_ASO3=0.0 +! +!WC_ALCH/WR_ASO4=0.0 +! +!WC_ALCH/WR_ASO5=0.0 +! +!WC_ALCH/WR_AHSO5=0.0 +! +!WC_ALCH/WR_AHMS=0.0 +! +!WC_HCHO/NO=0.0 +! +!WC_HCHO/NO2=0.0 +! +!WC_HCHO/O3=0.0 +! +!WC_HCHO/HONO=0.0 +! +!WC_HCHO/HNO3=0.0 +! +!WC_HCHO/HNO4=0.0 +! +!WC_HCHO/N2O5=0.0 +! +!WC_HCHO/NO3=0.0 +! +!WC_HCHO/NH3=0.0 +! +!WC_HCHO/HO2=0.0 +! +!WC_HCHO/CO=0.0 +! +!WC_HCHO/H2O2=0.0 +! +!WC_HCHO/SO2=0.0 +! +!WC_HCHO/H2SO4=0.0 +! +!WC_HCHO/OH=0.0 +! +!WC_HCHO/ETHE=0.0 +! +!WC_HCHO/OLEL=0.0 +! +!WC_HCHO/OLEH=0.0 +! +!WC_HCHO/ALKL=0.0 +! +!WC_HCHO/ALKM=0.0 +! +!WC_HCHO/ALKH=0.0 +! +!WC_HCHO/AROH=0.0 +! +!WC_HCHO/AROL=0.0 +! +!WC_HCHO/AROO=0.0 +! +!WC_HCHO/ARAL=0.0 +! +!WC_HCHO/ARAC=0.0 +! +!WC_HCHO/PAH=0.0 +! +!WC_HCHO/HCHO=+KTC21 + PJAC(:,108,28)=+TPK%KTC21(:) +! +!WC_HCHO/ALD2=0.0 +! +!WC_HCHO/KETL=0.0 +! +!WC_HCHO/KETH=0.0 +! +!WC_HCHO/MEOH=0.0 +! +!WC_HCHO/ETOH=0.0 +! +!WC_HCHO/ALCH=0.0 +! +!WC_HCHO/ISOP=0.0 +! +!WC_HCHO/BIOL=0.0 +! +!WC_HCHO/BIOH=0.0 +! +!WC_HCHO/MTBE=0.0 +! +!WC_HCHO/MVK=0.0 +! +!WC_HCHO/MCR=0.0 +! +!WC_HCHO/MGLY=0.0 +! +!WC_HCHO/GLY=0.0 +! +!WC_HCHO/ORA1=0.0 +! +!WC_HCHO/ORA2=0.0 +! +!WC_HCHO/ACID=0.0 +! +!WC_HCHO/UR28=0.0 +! +!WC_HCHO/UR21=0.0 +! +!WC_HCHO/URG2=0.0 +! +!WC_HCHO/UR26=0.0 +! +!WC_HCHO/RPG2=0.0 +! +!WC_HCHO/RP18=0.0 +! +!WC_HCHO/RPG3=0.0 +! +!WC_HCHO/URG4=0.0 +! +!WC_HCHO/UR8=0.0 +! +!WC_HCHO/UR17=0.0 +! +!WC_HCHO/UR7=0.0 +! +!WC_HCHO/RPR3=0.0 +! +!WC_HCHO/URG6=0.0 +! +!WC_HCHO/UR22=0.0 +! +!WC_HCHO/URG7=0.0 +! +!WC_HCHO/RPR4=0.0 +! +!WC_HCHO/RPR7=0.0 +! +!WC_HCHO/RPG7=0.0 +! +!WC_HCHO/URG8=0.0 +! +!WC_HCHO/UR19=0.0 +! +!WC_HCHO/URG9=0.0 +! +!WC_HCHO/AP7=0.0 +! +!WC_HCHO/URG10=0.0 +! +!WC_HCHO/RPR1=0.0 +! +!WC_HCHO/RPR5=0.0 +! +!WC_HCHO/RPR8=0.0 +! +!WC_HCHO/RP10=0.0 +! +!WC_HCHO/RP11=0.0 +! +!WC_HCHO/RP16=0.0 +! +!WC_HCHO/RPRL=0.0 +! +!WC_HCHO/APAN=0.0 +! +!WC_HCHO/PAN1=0.0 +! +!WC_HCHO/PAN2=0.0 +! +!WC_HCHO/PAN3=0.0 +! +!WC_HCHO/PAN4=0.0 +! +!WC_HCHO/PAN6=0.0 +! +!WC_HCHO/PAN7=0.0 +! +!WC_HCHO/PAN8=0.0 +! +!WC_HCHO/PN10=0.0 +! +!WC_HCHO/RO2T=0.0 +! +!WC_HCHO/RO21=0.0 +! +!WC_HCHO/RO25=0.0 +! +!WC_HCHO/WC_O3=0.0 +! +!WC_HCHO/WC_H2O2=0.0 +! +!WC_HCHO/WC_NO=0.0 +! +!WC_HCHO/WC_NO2=0.0 +! +!WC_HCHO/WC_NO3=0.0 +! +!WC_HCHO/WC_N2O5=0.0 +! +!WC_HCHO/WC_HONO=0.0 +! +!WC_HCHO/WC_HNO3=0.0 +! +!WC_HCHO/WC_HNO4=0.0 +! +!WC_HCHO/WC_NH3=0.0 +! +!WC_HCHO/WC_OH=+KC30*<WC_MEOH>-KC33*<WC_HCHO>+KC37*<WC_KETL> + PJAC(:,108,98)=+TPK%KC30(:)*PCONC(:,105)-TPK%KC33(:)*PCONC(:,108)+TPK%KC37(:)*& +&PCONC(:,112) +! +!WC_HCHO/WC_HO2=0.0 +! +!WC_HCHO/WC_CO2=0.0 +! +!WC_HCHO/WC_SO2=-KC17*<WC_HCHO>+KC28*<WC_RO21> + PJAC(:,108,101)=-TPK%KC17(:)*PCONC(:,108)+TPK%KC28(:)*PCONC(:,103) +! +!WC_HCHO/WC_H2SO4=0.0 +! +!WC_HCHO/WC_RO21=+2.00*KC27*<WC_RO21>+2.00*KC27*<WC_RO21>+KC28*<WC_SO2> + PJAC(:,108,103)=+2.00*TPK%KC27(:)*PCONC(:,103)+2.00*TPK%KC27(:)*PCONC(:,103)+T& +&PK%KC28(:)*PCONC(:,101) +! +!WC_HCHO/WC_RO25=0.0 +! +!WC_HCHO/WC_MEOH=+KC30*<WC_OH> + PJAC(:,108,105)=+TPK%KC30(:)*PCONC(:,98) +! +!WC_HCHO/WC_ETOH=0.0 +! +!WC_HCHO/WC_ALCH=0.0 +! +!WC_HCHO/WC_HCHO=-KTC52-KC17*<WC_SO2>-KC33*<WC_OH> + PJAC(:,108,108)=-TPK%KTC52(:)-TPK%KC17(:)*PCONC(:,101)-TPK%KC33(:)*PCONC(:,98) +! +!WC_HCHO/WC_ALD2=0.0 +! +!WC_HCHO/WC_GLY=0.0 +! +!WC_HCHO/WC_MGLY=0.0 +! +!WC_HCHO/WC_KETL=+KC37*<WC_OH> + PJAC(:,108,112)=+TPK%KC37(:)*PCONC(:,98) +! +!WC_HCHO/WC_ORA1=0.0 +! +!WC_HCHO/WC_ORA2=0.0 +! +!WC_HCHO/WC_ACID=0.0 +! +!WC_HCHO/WC_RP16=0.0 +! +!WC_HCHO/WC_UR21=0.0 +! +!WC_HCHO/WC_UR28=0.0 +! +!WC_HCHO/WC_ACID2=0.0 +! +!WC_HCHO/WC_ASO3=0.0 +! +!WC_HCHO/WC_ASO4=0.0 +! +!WC_HCHO/WC_ASO5=0.0 +! +!WC_HCHO/WC_AHSO5=0.0 +! +!WC_HCHO/WC_AHMS=+KC18 + PJAC(:,108,124)=+TPK%KC18(:) +! +!WC_HCHO/WR_O3=0.0 +! +!WC_HCHO/WR_H2O2=0.0 +! +!WC_HCHO/WR_NO=0.0 +! +!WC_HCHO/WR_NO2=0.0 +! +!WC_HCHO/WR_NO3=0.0 +! +!WC_HCHO/WR_N2O5=0.0 +! +!WC_HCHO/WR_HONO=0.0 +! +!WC_HCHO/WR_HNO3=0.0 +! +!WC_HCHO/WR_HNO4=0.0 +! +!WC_HCHO/WR_NH3=0.0 +! +!WC_HCHO/WR_OH=0.0 +! +!WC_HCHO/WR_HO2=0.0 +! +!WC_HCHO/WR_CO2=0.0 +! +!WC_HCHO/WR_SO2=0.0 +! +!WC_HCHO/WR_H2SO4=0.0 +! +!WC_HCHO/WR_RO21=0.0 +! +!WC_HCHO/WR_RO25=0.0 +! +!WC_HCHO/WR_MEOH=0.0 +! +!WC_HCHO/WR_ETOH=0.0 +! +!WC_HCHO/WR_ALCH=0.0 +! +!WC_HCHO/WR_HCHO=0.0 +! +!WC_HCHO/WR_ALD2=0.0 +! +!WC_HCHO/WR_GLY=0.0 +! +!WC_HCHO/WR_MGLY=0.0 +! +!WC_HCHO/WR_KETL=0.0 +! +!WC_HCHO/WR_ORA1=0.0 +! +!WC_HCHO/WR_ORA2=0.0 +! +!WC_HCHO/WR_ACID=0.0 +! +!WC_HCHO/WR_RP16=0.0 +! +!WC_HCHO/WR_UR21=0.0 +! +!WC_HCHO/WR_UR28=0.0 +! +!WC_HCHO/WR_ACID2=0.0 +! +!WC_HCHO/WR_ASO3=0.0 +! +!WC_HCHO/WR_ASO4=0.0 +! +!WC_HCHO/WR_ASO5=0.0 +! +!WC_HCHO/WR_AHSO5=0.0 +! +!WC_HCHO/WR_AHMS=0.0 +! +!WC_ALD2/NO=0.0 +! +!WC_ALD2/NO2=0.0 +! +!WC_ALD2/O3=0.0 +! +!WC_ALD2/HONO=0.0 +! +!WC_ALD2/HNO3=0.0 +! +!WC_ALD2/HNO4=0.0 +! +!WC_ALD2/N2O5=0.0 +! +!WC_ALD2/NO3=0.0 +! +!WC_ALD2/NH3=0.0 +! +!WC_ALD2/HO2=0.0 +! +!WC_ALD2/CO=0.0 +! +!WC_ALD2/H2O2=0.0 +! +!WC_ALD2/SO2=0.0 +! +!WC_ALD2/H2SO4=0.0 +! +!WC_ALD2/OH=0.0 +! +!WC_ALD2/ETHE=0.0 +! +!WC_ALD2/OLEL=0.0 +! +!WC_ALD2/OLEH=0.0 +! +!WC_ALD2/ALKL=0.0 +! +!WC_ALD2/ALKM=0.0 +! +!WC_ALD2/ALKH=0.0 +! +!WC_ALD2/AROH=0.0 +! +!WC_ALD2/AROL=0.0 +! +!WC_ALD2/AROO=0.0 +! +!WC_ALD2/ARAL=0.0 +! +!WC_ALD2/ARAC=0.0 +! +!WC_ALD2/PAH=0.0 +! +!WC_ALD2/HCHO=0.0 +! +!WC_ALD2/ALD2=+KTC22 + PJAC(:,109,29)=+TPK%KTC22(:) +! +!WC_ALD2/KETL=0.0 +! +!WC_ALD2/KETH=0.0 +! +!WC_ALD2/MEOH=0.0 +! +!WC_ALD2/ETOH=0.0 +! +!WC_ALD2/ALCH=0.0 +! +!WC_ALD2/ISOP=0.0 +! +!WC_ALD2/BIOL=0.0 +! +!WC_ALD2/BIOH=0.0 +! +!WC_ALD2/MTBE=0.0 +! +!WC_ALD2/MVK=0.0 +! +!WC_ALD2/MCR=0.0 +! +!WC_ALD2/MGLY=0.0 +! +!WC_ALD2/GLY=0.0 +! +!WC_ALD2/ORA1=0.0 +! +!WC_ALD2/ORA2=0.0 +! +!WC_ALD2/ACID=0.0 +! +!WC_ALD2/UR28=0.0 +! +!WC_ALD2/UR21=0.0 +! +!WC_ALD2/URG2=0.0 +! +!WC_ALD2/UR26=0.0 +! +!WC_ALD2/RPG2=0.0 +! +!WC_ALD2/RP18=0.0 +! +!WC_ALD2/RPG3=0.0 +! +!WC_ALD2/URG4=0.0 +! +!WC_ALD2/UR8=0.0 +! +!WC_ALD2/UR17=0.0 +! +!WC_ALD2/UR7=0.0 +! +!WC_ALD2/RPR3=0.0 +! +!WC_ALD2/URG6=0.0 +! +!WC_ALD2/UR22=0.0 +! +!WC_ALD2/URG7=0.0 +! +!WC_ALD2/RPR4=0.0 +! +!WC_ALD2/RPR7=0.0 +! +!WC_ALD2/RPG7=0.0 +! +!WC_ALD2/URG8=0.0 +! +!WC_ALD2/UR19=0.0 +! +!WC_ALD2/URG9=0.0 +! +!WC_ALD2/AP7=0.0 +! +!WC_ALD2/URG10=0.0 +! +!WC_ALD2/RPR1=0.0 +! +!WC_ALD2/RPR5=0.0 +! +!WC_ALD2/RPR8=0.0 +! +!WC_ALD2/RP10=0.0 +! +!WC_ALD2/RP11=0.0 +! +!WC_ALD2/RP16=0.0 +! +!WC_ALD2/RPRL=0.0 +! +!WC_ALD2/APAN=0.0 +! +!WC_ALD2/PAN1=0.0 +! +!WC_ALD2/PAN2=0.0 +! +!WC_ALD2/PAN3=0.0 +! +!WC_ALD2/PAN4=0.0 +! +!WC_ALD2/PAN6=0.0 +! +!WC_ALD2/PAN7=0.0 +! +!WC_ALD2/PAN8=0.0 +! +!WC_ALD2/PN10=0.0 +! +!WC_ALD2/RO2T=0.0 +! +!WC_ALD2/RO21=0.0 +! +!WC_ALD2/RO25=0.0 +! +!WC_ALD2/WC_O3=0.0 +! +!WC_ALD2/WC_H2O2=0.0 +! +!WC_ALD2/WC_NO=0.0 +! +!WC_ALD2/WC_NO2=0.0 +! +!WC_ALD2/WC_NO3=0.0 +! +!WC_ALD2/WC_N2O5=0.0 +! +!WC_ALD2/WC_HONO=0.0 +! +!WC_ALD2/WC_HNO3=0.0 +! +!WC_ALD2/WC_HNO4=0.0 +! +!WC_ALD2/WC_NH3=0.0 +! +!WC_ALD2/WC_OH=+KC31*<WC_ETOH>+0.50*KC32*<WC_ALCH>-KC34*<WC_ALD2>+KC37*<WC_KETL +!>+0.29*KC41*<WC_ACID>+0.43*KC43*<WC_UR21> + PJAC(:,109,98)=+TPK%KC31(:)*PCONC(:,106)+0.50*TPK%KC32(:)*PCONC(:,107)-TPK%KC3& +&4(:)*PCONC(:,109)+TPK%KC37(:)*PCONC(:,112)+0.29*TPK%KC41(:)*PCONC(:,115)+0.43*& +&TPK%KC43(:)*PCONC(:,117) +! +!WC_ALD2/WC_HO2=0.0 +! +!WC_ALD2/WC_CO2=0.0 +! +!WC_ALD2/WC_SO2=0.0 +! +!WC_ALD2/WC_H2SO4=0.0 +! +!WC_ALD2/WC_RO21=0.0 +! +!WC_ALD2/WC_RO25=+KC29*<WC_RO25>+KC29*<WC_RO25> + PJAC(:,109,104)=+TPK%KC29(:)*PCONC(:,104)+TPK%KC29(:)*PCONC(:,104) +! +!WC_ALD2/WC_MEOH=0.0 +! +!WC_ALD2/WC_ETOH=+KC31*<WC_OH> + PJAC(:,109,106)=+TPK%KC31(:)*PCONC(:,98) +! +!WC_ALD2/WC_ALCH=+0.50*KC32*<WC_OH> + PJAC(:,109,107)=+0.50*TPK%KC32(:)*PCONC(:,98) +! +!WC_ALD2/WC_HCHO=0.0 +! +!WC_ALD2/WC_ALD2=-KTC53-KC34*<WC_OH> + PJAC(:,109,109)=-TPK%KTC53(:)-TPK%KC34(:)*PCONC(:,98) +! +!WC_ALD2/WC_GLY=0.0 +! +!WC_ALD2/WC_MGLY=0.0 +! +!WC_ALD2/WC_KETL=+KC37*<WC_OH> + PJAC(:,109,112)=+TPK%KC37(:)*PCONC(:,98) +! +!WC_ALD2/WC_ORA1=0.0 +! +!WC_ALD2/WC_ORA2=0.0 +! +!WC_ALD2/WC_ACID=+0.29*KC41*<WC_OH> + PJAC(:,109,115)=+0.29*TPK%KC41(:)*PCONC(:,98) +! +!WC_ALD2/WC_RP16=0.0 +! +!WC_ALD2/WC_UR21=+0.43*KC43*<WC_OH> + PJAC(:,109,117)=+0.43*TPK%KC43(:)*PCONC(:,98) +! +!WC_ALD2/WC_UR28=0.0 +! +!WC_ALD2/WC_ACID2=0.0 +! +!WC_ALD2/WC_ASO3=0.0 +! +!WC_ALD2/WC_ASO4=0.0 +! +!WC_ALD2/WC_ASO5=0.0 +! +!WC_ALD2/WC_AHSO5=0.0 +! +!WC_ALD2/WC_AHMS=0.0 +! +!WC_ALD2/WR_O3=0.0 +! +!WC_ALD2/WR_H2O2=0.0 +! +!WC_ALD2/WR_NO=0.0 +! +!WC_ALD2/WR_NO2=0.0 +! +!WC_ALD2/WR_NO3=0.0 +! +!WC_ALD2/WR_N2O5=0.0 +! +!WC_ALD2/WR_HONO=0.0 +! +!WC_ALD2/WR_HNO3=0.0 +! +!WC_ALD2/WR_HNO4=0.0 +! +!WC_ALD2/WR_NH3=0.0 +! +!WC_ALD2/WR_OH=0.0 +! +!WC_ALD2/WR_HO2=0.0 +! +!WC_ALD2/WR_CO2=0.0 +! +!WC_ALD2/WR_SO2=0.0 +! +!WC_ALD2/WR_H2SO4=0.0 +! +!WC_ALD2/WR_RO21=0.0 +! +!WC_ALD2/WR_RO25=0.0 +! +!WC_ALD2/WR_MEOH=0.0 +! +!WC_ALD2/WR_ETOH=0.0 +! +!WC_ALD2/WR_ALCH=0.0 +! +!WC_ALD2/WR_HCHO=0.0 +! +!WC_ALD2/WR_ALD2=0.0 +! +!WC_ALD2/WR_GLY=0.0 +! +!WC_ALD2/WR_MGLY=0.0 +! +!WC_ALD2/WR_KETL=0.0 +! +!WC_ALD2/WR_ORA1=0.0 +! +!WC_ALD2/WR_ORA2=0.0 +! +!WC_ALD2/WR_ACID=0.0 +! +!WC_ALD2/WR_RP16=0.0 +! +!WC_ALD2/WR_UR21=0.0 +! +!WC_ALD2/WR_UR28=0.0 +! +!WC_ALD2/WR_ACID2=0.0 +! +!WC_ALD2/WR_ASO3=0.0 +! +!WC_ALD2/WR_ASO4=0.0 +! +!WC_ALD2/WR_ASO5=0.0 +! +!WC_ALD2/WR_AHSO5=0.0 +! +!WC_ALD2/WR_AHMS=0.0 +! +!WC_GLY/NO=0.0 +! +!WC_GLY/NO2=0.0 +! +!WC_GLY/O3=0.0 +! +!WC_GLY/HONO=0.0 +! +!WC_GLY/HNO3=0.0 +! +!WC_GLY/HNO4=0.0 +! +!WC_GLY/N2O5=0.0 +! +!WC_GLY/NO3=0.0 +! +!WC_GLY/NH3=0.0 +! +!WC_GLY/HO2=0.0 +! +!WC_GLY/CO=0.0 +! +!WC_GLY/H2O2=0.0 +! +!WC_GLY/SO2=0.0 +! +!WC_GLY/H2SO4=0.0 +! +!WC_GLY/OH=0.0 +! +!WC_GLY/ETHE=0.0 +! +!WC_GLY/OLEL=0.0 +! +!WC_GLY/OLEH=0.0 +! +!WC_GLY/ALKL=0.0 +! +!WC_GLY/ALKM=0.0 +! +!WC_GLY/ALKH=0.0 +! +!WC_GLY/AROH=0.0 +! +!WC_GLY/AROL=0.0 +! +!WC_GLY/AROO=0.0 +! +!WC_GLY/ARAL=0.0 +! +!WC_GLY/ARAC=0.0 +! +!WC_GLY/PAH=0.0 +! +!WC_GLY/HCHO=0.0 +! +!WC_GLY/ALD2=0.0 +! +!WC_GLY/KETL=0.0 +! +!WC_GLY/KETH=0.0 +! +!WC_GLY/MEOH=0.0 +! +!WC_GLY/ETOH=0.0 +! +!WC_GLY/ALCH=0.0 +! +!WC_GLY/ISOP=0.0 +! +!WC_GLY/BIOL=0.0 +! +!WC_GLY/BIOH=0.0 +! +!WC_GLY/MTBE=0.0 +! +!WC_GLY/MVK=0.0 +! +!WC_GLY/MCR=0.0 +! +!WC_GLY/MGLY=0.0 +! +!WC_GLY/GLY=+KTC23 + PJAC(:,110,42)=+TPK%KTC23(:) +! +!WC_GLY/ORA1=0.0 +! +!WC_GLY/ORA2=0.0 +! +!WC_GLY/ACID=0.0 +! +!WC_GLY/UR28=0.0 +! +!WC_GLY/UR21=0.0 +! +!WC_GLY/URG2=0.0 +! +!WC_GLY/UR26=0.0 +! +!WC_GLY/RPG2=0.0 +! +!WC_GLY/RP18=0.0 +! +!WC_GLY/RPG3=0.0 +! +!WC_GLY/URG4=0.0 +! +!WC_GLY/UR8=0.0 +! +!WC_GLY/UR17=0.0 +! +!WC_GLY/UR7=0.0 +! +!WC_GLY/RPR3=0.0 +! +!WC_GLY/URG6=0.0 +! +!WC_GLY/UR22=0.0 +! +!WC_GLY/URG7=0.0 +! +!WC_GLY/RPR4=0.0 +! +!WC_GLY/RPR7=0.0 +! +!WC_GLY/RPG7=0.0 +! +!WC_GLY/URG8=0.0 +! +!WC_GLY/UR19=0.0 +! +!WC_GLY/URG9=0.0 +! +!WC_GLY/AP7=0.0 +! +!WC_GLY/URG10=0.0 +! +!WC_GLY/RPR1=0.0 +! +!WC_GLY/RPR5=0.0 +! +!WC_GLY/RPR8=0.0 +! +!WC_GLY/RP10=0.0 +! +!WC_GLY/RP11=0.0 +! +!WC_GLY/RP16=0.0 +! +!WC_GLY/RPRL=0.0 +! +!WC_GLY/APAN=0.0 +! +!WC_GLY/PAN1=0.0 +! +!WC_GLY/PAN2=0.0 +! +!WC_GLY/PAN3=0.0 +! +!WC_GLY/PAN4=0.0 +! +!WC_GLY/PAN6=0.0 +! +!WC_GLY/PAN7=0.0 +! +!WC_GLY/PAN8=0.0 +! +!WC_GLY/PN10=0.0 +! +!WC_GLY/RO2T=0.0 +! +!WC_GLY/RO21=0.0 +! +!WC_GLY/RO25=0.0 +! +!WC_GLY/WC_O3=0.0 +! +!WC_GLY/WC_H2O2=0.0 +! +!WC_GLY/WC_NO=0.0 +! +!WC_GLY/WC_NO2=0.0 +! +!WC_GLY/WC_NO3=0.0 +! +!WC_GLY/WC_N2O5=0.0 +! +!WC_GLY/WC_HONO=0.0 +! +!WC_GLY/WC_HNO3=0.0 +! +!WC_GLY/WC_HNO4=0.0 +! +!WC_GLY/WC_NH3=0.0 +! +!WC_GLY/WC_OH=-KC35*<WC_GLY> + PJAC(:,110,98)=-TPK%KC35(:)*PCONC(:,110) +! +!WC_GLY/WC_HO2=0.0 +! +!WC_GLY/WC_CO2=0.0 +! +!WC_GLY/WC_SO2=0.0 +! +!WC_GLY/WC_H2SO4=0.0 +! +!WC_GLY/WC_RO21=0.0 +! +!WC_GLY/WC_RO25=0.0 +! +!WC_GLY/WC_MEOH=0.0 +! +!WC_GLY/WC_ETOH=0.0 +! +!WC_GLY/WC_ALCH=0.0 +! +!WC_GLY/WC_HCHO=0.0 +! +!WC_GLY/WC_ALD2=0.0 +! +!WC_GLY/WC_GLY=-KTC54-KC35*<WC_OH> + PJAC(:,110,110)=-TPK%KTC54(:)-TPK%KC35(:)*PCONC(:,98) +! +!WC_GLY/WC_MGLY=0.0 +! +!WC_GLY/WC_KETL=0.0 +! +!WC_GLY/WC_ORA1=0.0 +! +!WC_GLY/WC_ORA2=0.0 +! +!WC_GLY/WC_ACID=0.0 +! +!WC_GLY/WC_RP16=0.0 +! +!WC_GLY/WC_UR21=0.0 +! +!WC_GLY/WC_UR28=0.0 +! +!WC_GLY/WC_ACID2=0.0 +! +!WC_GLY/WC_ASO3=0.0 +! +!WC_GLY/WC_ASO4=0.0 +! +!WC_GLY/WC_ASO5=0.0 +! +!WC_GLY/WC_AHSO5=0.0 +! +!WC_GLY/WC_AHMS=0.0 +! +!WC_GLY/WR_O3=0.0 +! +!WC_GLY/WR_H2O2=0.0 +! +!WC_GLY/WR_NO=0.0 +! +!WC_GLY/WR_NO2=0.0 +! +!WC_GLY/WR_NO3=0.0 +! +!WC_GLY/WR_N2O5=0.0 +! +!WC_GLY/WR_HONO=0.0 +! +!WC_GLY/WR_HNO3=0.0 +! +!WC_GLY/WR_HNO4=0.0 +! +!WC_GLY/WR_NH3=0.0 +! +!WC_GLY/WR_OH=0.0 +! +!WC_GLY/WR_HO2=0.0 +! +!WC_GLY/WR_CO2=0.0 +! +!WC_GLY/WR_SO2=0.0 +! +!WC_GLY/WR_H2SO4=0.0 +! +!WC_GLY/WR_RO21=0.0 +! +!WC_GLY/WR_RO25=0.0 +! +!WC_GLY/WR_MEOH=0.0 +! +!WC_GLY/WR_ETOH=0.0 +! +!WC_GLY/WR_ALCH=0.0 +! +!WC_GLY/WR_HCHO=0.0 +! +!WC_GLY/WR_ALD2=0.0 +! +!WC_GLY/WR_GLY=0.0 +! +!WC_GLY/WR_MGLY=0.0 +! +!WC_GLY/WR_KETL=0.0 +! +!WC_GLY/WR_ORA1=0.0 +! +!WC_GLY/WR_ORA2=0.0 +! +!WC_GLY/WR_ACID=0.0 +! +!WC_GLY/WR_RP16=0.0 +! +!WC_GLY/WR_UR21=0.0 +! +!WC_GLY/WR_UR28=0.0 +! +!WC_GLY/WR_ACID2=0.0 +! +!WC_GLY/WR_ASO3=0.0 +! +!WC_GLY/WR_ASO4=0.0 +! +!WC_GLY/WR_ASO5=0.0 +! +!WC_GLY/WR_AHSO5=0.0 +! +!WC_GLY/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ21 +! +SUBROUTINE SUBJ22 +! +!Indices 111 a 115 +! +! +!WC_MGLY/NO=0.0 +! +!WC_MGLY/NO2=0.0 +! +!WC_MGLY/O3=0.0 +! +!WC_MGLY/HONO=0.0 +! +!WC_MGLY/HNO3=0.0 +! +!WC_MGLY/HNO4=0.0 +! +!WC_MGLY/N2O5=0.0 +! +!WC_MGLY/NO3=0.0 +! +!WC_MGLY/NH3=0.0 +! +!WC_MGLY/HO2=0.0 +! +!WC_MGLY/CO=0.0 +! +!WC_MGLY/H2O2=0.0 +! +!WC_MGLY/SO2=0.0 +! +!WC_MGLY/H2SO4=0.0 +! +!WC_MGLY/OH=0.0 +! +!WC_MGLY/ETHE=0.0 +! +!WC_MGLY/OLEL=0.0 +! +!WC_MGLY/OLEH=0.0 +! +!WC_MGLY/ALKL=0.0 +! +!WC_MGLY/ALKM=0.0 +! +!WC_MGLY/ALKH=0.0 +! +!WC_MGLY/AROH=0.0 +! +!WC_MGLY/AROL=0.0 +! +!WC_MGLY/AROO=0.0 +! +!WC_MGLY/ARAL=0.0 +! +!WC_MGLY/ARAC=0.0 +! +!WC_MGLY/PAH=0.0 +! +!WC_MGLY/HCHO=0.0 +! +!WC_MGLY/ALD2=0.0 +! +!WC_MGLY/KETL=0.0 +! +!WC_MGLY/KETH=0.0 +! +!WC_MGLY/MEOH=0.0 +! +!WC_MGLY/ETOH=0.0 +! +!WC_MGLY/ALCH=0.0 +! +!WC_MGLY/ISOP=0.0 +! +!WC_MGLY/BIOL=0.0 +! +!WC_MGLY/BIOH=0.0 +! +!WC_MGLY/MTBE=0.0 +! +!WC_MGLY/MVK=0.0 +! +!WC_MGLY/MCR=0.0 +! +!WC_MGLY/MGLY=+KTC25 + PJAC(:,111,41)=+TPK%KTC25(:) +! +!WC_MGLY/GLY=0.0 +! +!WC_MGLY/ORA1=0.0 +! +!WC_MGLY/ORA2=0.0 +! +!WC_MGLY/ACID=0.0 +! +!WC_MGLY/UR28=0.0 +! +!WC_MGLY/UR21=0.0 +! +!WC_MGLY/URG2=0.0 +! +!WC_MGLY/UR26=0.0 +! +!WC_MGLY/RPG2=0.0 +! +!WC_MGLY/RP18=0.0 +! +!WC_MGLY/RPG3=0.0 +! +!WC_MGLY/URG4=0.0 +! +!WC_MGLY/UR8=0.0 +! +!WC_MGLY/UR17=0.0 +! +!WC_MGLY/UR7=0.0 +! +!WC_MGLY/RPR3=0.0 +! +!WC_MGLY/URG6=0.0 +! +!WC_MGLY/UR22=0.0 +! +!WC_MGLY/URG7=0.0 +! +!WC_MGLY/RPR4=0.0 +! +!WC_MGLY/RPR7=0.0 +! +!WC_MGLY/RPG7=0.0 +! +!WC_MGLY/URG8=0.0 +! +!WC_MGLY/UR19=0.0 +! +!WC_MGLY/URG9=0.0 +! +!WC_MGLY/AP7=0.0 +! +!WC_MGLY/URG10=0.0 +! +!WC_MGLY/RPR1=0.0 +! +!WC_MGLY/RPR5=0.0 +! +!WC_MGLY/RPR8=0.0 +! +!WC_MGLY/RP10=0.0 +! +!WC_MGLY/RP11=0.0 +! +!WC_MGLY/RP16=0.0 +! +!WC_MGLY/RPRL=0.0 +! +!WC_MGLY/APAN=0.0 +! +!WC_MGLY/PAN1=0.0 +! +!WC_MGLY/PAN2=0.0 +! +!WC_MGLY/PAN3=0.0 +! +!WC_MGLY/PAN4=0.0 +! +!WC_MGLY/PAN6=0.0 +! +!WC_MGLY/PAN7=0.0 +! +!WC_MGLY/PAN8=0.0 +! +!WC_MGLY/PN10=0.0 +! +!WC_MGLY/RO2T=0.0 +! +!WC_MGLY/RO21=0.0 +! +!WC_MGLY/RO25=0.0 +! +!WC_MGLY/WC_O3=0.0 +! +!WC_MGLY/WC_H2O2=0.0 +! +!WC_MGLY/WC_NO=0.0 +! +!WC_MGLY/WC_NO2=0.0 +! +!WC_MGLY/WC_NO3=0.0 +! +!WC_MGLY/WC_N2O5=0.0 +! +!WC_MGLY/WC_HONO=0.0 +! +!WC_MGLY/WC_HNO3=0.0 +! +!WC_MGLY/WC_HNO4=0.0 +! +!WC_MGLY/WC_NH3=0.0 +! +!WC_MGLY/WC_OH=-KC36*<WC_MGLY>+KC37*<WC_KETL> + PJAC(:,111,98)=-TPK%KC36(:)*PCONC(:,111)+TPK%KC37(:)*PCONC(:,112) +! +!WC_MGLY/WC_HO2=0.0 +! +!WC_MGLY/WC_CO2=0.0 +! +!WC_MGLY/WC_SO2=0.0 +! +!WC_MGLY/WC_H2SO4=0.0 +! +!WC_MGLY/WC_RO21=0.0 +! +!WC_MGLY/WC_RO25=0.0 +! +!WC_MGLY/WC_MEOH=0.0 +! +!WC_MGLY/WC_ETOH=0.0 +! +!WC_MGLY/WC_ALCH=0.0 +! +!WC_MGLY/WC_HCHO=0.0 +! +!WC_MGLY/WC_ALD2=0.0 +! +!WC_MGLY/WC_GLY=0.0 +! +!WC_MGLY/WC_MGLY=-KTC56-KC36*<WC_OH> + PJAC(:,111,111)=-TPK%KTC56(:)-TPK%KC36(:)*PCONC(:,98) +! +!WC_MGLY/WC_KETL=+KC37*<WC_OH> + PJAC(:,111,112)=+TPK%KC37(:)*PCONC(:,98) +! +!WC_MGLY/WC_ORA1=0.0 +! +!WC_MGLY/WC_ORA2=0.0 +! +!WC_MGLY/WC_ACID=0.0 +! +!WC_MGLY/WC_RP16=0.0 +! +!WC_MGLY/WC_UR21=0.0 +! +!WC_MGLY/WC_UR28=0.0 +! +!WC_MGLY/WC_ACID2=0.0 +! +!WC_MGLY/WC_ASO3=0.0 +! +!WC_MGLY/WC_ASO4=0.0 +! +!WC_MGLY/WC_ASO5=0.0 +! +!WC_MGLY/WC_AHSO5=0.0 +! +!WC_MGLY/WC_AHMS=0.0 +! +!WC_MGLY/WR_O3=0.0 +! +!WC_MGLY/WR_H2O2=0.0 +! +!WC_MGLY/WR_NO=0.0 +! +!WC_MGLY/WR_NO2=0.0 +! +!WC_MGLY/WR_NO3=0.0 +! +!WC_MGLY/WR_N2O5=0.0 +! +!WC_MGLY/WR_HONO=0.0 +! +!WC_MGLY/WR_HNO3=0.0 +! +!WC_MGLY/WR_HNO4=0.0 +! +!WC_MGLY/WR_NH3=0.0 +! +!WC_MGLY/WR_OH=0.0 +! +!WC_MGLY/WR_HO2=0.0 +! +!WC_MGLY/WR_CO2=0.0 +! +!WC_MGLY/WR_SO2=0.0 +! +!WC_MGLY/WR_H2SO4=0.0 +! +!WC_MGLY/WR_RO21=0.0 +! +!WC_MGLY/WR_RO25=0.0 +! +!WC_MGLY/WR_MEOH=0.0 +! +!WC_MGLY/WR_ETOH=0.0 +! +!WC_MGLY/WR_ALCH=0.0 +! +!WC_MGLY/WR_HCHO=0.0 +! +!WC_MGLY/WR_ALD2=0.0 +! +!WC_MGLY/WR_GLY=0.0 +! +!WC_MGLY/WR_MGLY=0.0 +! +!WC_MGLY/WR_KETL=0.0 +! +!WC_MGLY/WR_ORA1=0.0 +! +!WC_MGLY/WR_ORA2=0.0 +! +!WC_MGLY/WR_ACID=0.0 +! +!WC_MGLY/WR_RP16=0.0 +! +!WC_MGLY/WR_UR21=0.0 +! +!WC_MGLY/WR_UR28=0.0 +! +!WC_MGLY/WR_ACID2=0.0 +! +!WC_MGLY/WR_ASO3=0.0 +! +!WC_MGLY/WR_ASO4=0.0 +! +!WC_MGLY/WR_ASO5=0.0 +! +!WC_MGLY/WR_AHSO5=0.0 +! +!WC_MGLY/WR_AHMS=0.0 +! +!WC_KETL/NO=0.0 +! +!WC_KETL/NO2=0.0 +! +!WC_KETL/O3=0.0 +! +!WC_KETL/HONO=0.0 +! +!WC_KETL/HNO3=0.0 +! +!WC_KETL/HNO4=0.0 +! +!WC_KETL/N2O5=0.0 +! +!WC_KETL/NO3=0.0 +! +!WC_KETL/NH3=0.0 +! +!WC_KETL/HO2=0.0 +! +!WC_KETL/CO=0.0 +! +!WC_KETL/H2O2=0.0 +! +!WC_KETL/SO2=0.0 +! +!WC_KETL/H2SO4=0.0 +! +!WC_KETL/OH=0.0 +! +!WC_KETL/ETHE=0.0 +! +!WC_KETL/OLEL=0.0 +! +!WC_KETL/OLEH=0.0 +! +!WC_KETL/ALKL=0.0 +! +!WC_KETL/ALKM=0.0 +! +!WC_KETL/ALKH=0.0 +! +!WC_KETL/AROH=0.0 +! +!WC_KETL/AROL=0.0 +! +!WC_KETL/AROO=0.0 +! +!WC_KETL/ARAL=0.0 +! +!WC_KETL/ARAC=0.0 +! +!WC_KETL/PAH=0.0 +! +!WC_KETL/HCHO=0.0 +! +!WC_KETL/ALD2=0.0 +! +!WC_KETL/KETL=+KTC24 + PJAC(:,112,30)=+TPK%KTC24(:) +! +!WC_KETL/KETH=0.0 +! +!WC_KETL/MEOH=0.0 +! +!WC_KETL/ETOH=0.0 +! +!WC_KETL/ALCH=0.0 +! +!WC_KETL/ISOP=0.0 +! +!WC_KETL/BIOL=0.0 +! +!WC_KETL/BIOH=0.0 +! +!WC_KETL/MTBE=0.0 +! +!WC_KETL/MVK=0.0 +! +!WC_KETL/MCR=0.0 +! +!WC_KETL/MGLY=0.0 +! +!WC_KETL/GLY=0.0 +! +!WC_KETL/ORA1=0.0 +! +!WC_KETL/ORA2=0.0 +! +!WC_KETL/ACID=0.0 +! +!WC_KETL/UR28=0.0 +! +!WC_KETL/UR21=0.0 +! +!WC_KETL/URG2=0.0 +! +!WC_KETL/UR26=0.0 +! +!WC_KETL/RPG2=0.0 +! +!WC_KETL/RP18=0.0 +! +!WC_KETL/RPG3=0.0 +! +!WC_KETL/URG4=0.0 +! +!WC_KETL/UR8=0.0 +! +!WC_KETL/UR17=0.0 +! +!WC_KETL/UR7=0.0 +! +!WC_KETL/RPR3=0.0 +! +!WC_KETL/URG6=0.0 +! +!WC_KETL/UR22=0.0 +! +!WC_KETL/URG7=0.0 +! +!WC_KETL/RPR4=0.0 +! +!WC_KETL/RPR7=0.0 +! +!WC_KETL/RPG7=0.0 +! +!WC_KETL/URG8=0.0 +! +!WC_KETL/UR19=0.0 +! +!WC_KETL/URG9=0.0 +! +!WC_KETL/AP7=0.0 +! +!WC_KETL/URG10=0.0 +! +!WC_KETL/RPR1=0.0 +! +!WC_KETL/RPR5=0.0 +! +!WC_KETL/RPR8=0.0 +! +!WC_KETL/RP10=0.0 +! +!WC_KETL/RP11=0.0 +! +!WC_KETL/RP16=0.0 +! +!WC_KETL/RPRL=0.0 +! +!WC_KETL/APAN=0.0 +! +!WC_KETL/PAN1=0.0 +! +!WC_KETL/PAN2=0.0 +! +!WC_KETL/PAN3=0.0 +! +!WC_KETL/PAN4=0.0 +! +!WC_KETL/PAN6=0.0 +! +!WC_KETL/PAN7=0.0 +! +!WC_KETL/PAN8=0.0 +! +!WC_KETL/PN10=0.0 +! +!WC_KETL/RO2T=0.0 +! +!WC_KETL/RO21=0.0 +! +!WC_KETL/RO25=0.0 +! +!WC_KETL/WC_O3=0.0 +! +!WC_KETL/WC_H2O2=0.0 +! +!WC_KETL/WC_NO=0.0 +! +!WC_KETL/WC_NO2=0.0 +! +!WC_KETL/WC_NO3=0.0 +! +!WC_KETL/WC_N2O5=0.0 +! +!WC_KETL/WC_HONO=0.0 +! +!WC_KETL/WC_HNO3=0.0 +! +!WC_KETL/WC_HNO4=0.0 +! +!WC_KETL/WC_NH3=0.0 +! +!WC_KETL/WC_OH=+0.50*KC32*<WC_ALCH>+KC37*<WC_KETL>-KC37*<WC_KETL> + PJAC(:,112,98)=+0.50*TPK%KC32(:)*PCONC(:,107)+TPK%KC37(:)*PCONC(:,112)-TPK%KC3& +&7(:)*PCONC(:,112) +! +!WC_KETL/WC_HO2=0.0 +! +!WC_KETL/WC_CO2=0.0 +! +!WC_KETL/WC_SO2=0.0 +! +!WC_KETL/WC_H2SO4=0.0 +! +!WC_KETL/WC_RO21=0.0 +! +!WC_KETL/WC_RO25=0.0 +! +!WC_KETL/WC_MEOH=0.0 +! +!WC_KETL/WC_ETOH=0.0 +! +!WC_KETL/WC_ALCH=+0.50*KC32*<WC_OH> + PJAC(:,112,107)=+0.50*TPK%KC32(:)*PCONC(:,98) +! +!WC_KETL/WC_HCHO=0.0 +! +!WC_KETL/WC_ALD2=0.0 +! +!WC_KETL/WC_GLY=0.0 +! +!WC_KETL/WC_MGLY=0.0 +! +!WC_KETL/WC_KETL=-KTC55+KC37*<WC_OH>-KC37*<WC_OH> + PJAC(:,112,112)=-TPK%KTC55(:)+TPK%KC37(:)*PCONC(:,98)-TPK%KC37(:)*PCONC(:,98) +! +!WC_KETL/WC_ORA1=0.0 +! +!WC_KETL/WC_ORA2=0.0 +! +!WC_KETL/WC_ACID=0.0 +! +!WC_KETL/WC_RP16=0.0 +! +!WC_KETL/WC_UR21=0.0 +! +!WC_KETL/WC_UR28=0.0 +! +!WC_KETL/WC_ACID2=0.0 +! +!WC_KETL/WC_ASO3=0.0 +! +!WC_KETL/WC_ASO4=0.0 +! +!WC_KETL/WC_ASO5=0.0 +! +!WC_KETL/WC_AHSO5=0.0 +! +!WC_KETL/WC_AHMS=0.0 +! +!WC_KETL/WR_O3=0.0 +! +!WC_KETL/WR_H2O2=0.0 +! +!WC_KETL/WR_NO=0.0 +! +!WC_KETL/WR_NO2=0.0 +! +!WC_KETL/WR_NO3=0.0 +! +!WC_KETL/WR_N2O5=0.0 +! +!WC_KETL/WR_HONO=0.0 +! +!WC_KETL/WR_HNO3=0.0 +! +!WC_KETL/WR_HNO4=0.0 +! +!WC_KETL/WR_NH3=0.0 +! +!WC_KETL/WR_OH=0.0 +! +!WC_KETL/WR_HO2=0.0 +! +!WC_KETL/WR_CO2=0.0 +! +!WC_KETL/WR_SO2=0.0 +! +!WC_KETL/WR_H2SO4=0.0 +! +!WC_KETL/WR_RO21=0.0 +! +!WC_KETL/WR_RO25=0.0 +! +!WC_KETL/WR_MEOH=0.0 +! +!WC_KETL/WR_ETOH=0.0 +! +!WC_KETL/WR_ALCH=0.0 +! +!WC_KETL/WR_HCHO=0.0 +! +!WC_KETL/WR_ALD2=0.0 +! +!WC_KETL/WR_GLY=0.0 +! +!WC_KETL/WR_MGLY=0.0 +! +!WC_KETL/WR_KETL=0.0 +! +!WC_KETL/WR_ORA1=0.0 +! +!WC_KETL/WR_ORA2=0.0 +! +!WC_KETL/WR_ACID=0.0 +! +!WC_KETL/WR_RP16=0.0 +! +!WC_KETL/WR_UR21=0.0 +! +!WC_KETL/WR_UR28=0.0 +! +!WC_KETL/WR_ACID2=0.0 +! +!WC_KETL/WR_ASO3=0.0 +! +!WC_KETL/WR_ASO4=0.0 +! +!WC_KETL/WR_ASO5=0.0 +! +!WC_KETL/WR_AHSO5=0.0 +! +!WC_KETL/WR_AHMS=0.0 +! +!WC_ORA1/NO=0.0 +! +!WC_ORA1/NO2=0.0 +! +!WC_ORA1/O3=0.0 +! +!WC_ORA1/HONO=0.0 +! +!WC_ORA1/HNO3=0.0 +! +!WC_ORA1/HNO4=0.0 +! +!WC_ORA1/N2O5=0.0 +! +!WC_ORA1/NO3=0.0 +! +!WC_ORA1/NH3=0.0 +! +!WC_ORA1/HO2=0.0 +! +!WC_ORA1/CO=0.0 +! +!WC_ORA1/H2O2=0.0 +! +!WC_ORA1/SO2=0.0 +! +!WC_ORA1/H2SO4=0.0 +! +!WC_ORA1/OH=0.0 +! +!WC_ORA1/ETHE=0.0 +! +!WC_ORA1/OLEL=0.0 +! +!WC_ORA1/OLEH=0.0 +! +!WC_ORA1/ALKL=0.0 +! +!WC_ORA1/ALKM=0.0 +! +!WC_ORA1/ALKH=0.0 +! +!WC_ORA1/AROH=0.0 +! +!WC_ORA1/AROL=0.0 +! +!WC_ORA1/AROO=0.0 +! +!WC_ORA1/ARAL=0.0 +! +!WC_ORA1/ARAC=0.0 +! +!WC_ORA1/PAH=0.0 +! +!WC_ORA1/HCHO=0.0 +! +!WC_ORA1/ALD2=0.0 +! +!WC_ORA1/KETL=0.0 +! +!WC_ORA1/KETH=0.0 +! +!WC_ORA1/MEOH=0.0 +! +!WC_ORA1/ETOH=0.0 +! +!WC_ORA1/ALCH=0.0 +! +!WC_ORA1/ISOP=0.0 +! +!WC_ORA1/BIOL=0.0 +! +!WC_ORA1/BIOH=0.0 +! +!WC_ORA1/MTBE=0.0 +! +!WC_ORA1/MVK=0.0 +! +!WC_ORA1/MCR=0.0 +! +!WC_ORA1/MGLY=0.0 +! +!WC_ORA1/GLY=0.0 +! +!WC_ORA1/ORA1=+KTC26 + PJAC(:,113,43)=+TPK%KTC26(:) +! +!WC_ORA1/ORA2=0.0 +! +!WC_ORA1/ACID=0.0 +! +!WC_ORA1/UR28=0.0 +! +!WC_ORA1/UR21=0.0 +! +!WC_ORA1/URG2=0.0 +! +!WC_ORA1/UR26=0.0 +! +!WC_ORA1/RPG2=0.0 +! +!WC_ORA1/RP18=0.0 +! +!WC_ORA1/RPG3=0.0 +! +!WC_ORA1/URG4=0.0 +! +!WC_ORA1/UR8=0.0 +! +!WC_ORA1/UR17=0.0 +! +!WC_ORA1/UR7=0.0 +! +!WC_ORA1/RPR3=0.0 +! +!WC_ORA1/URG6=0.0 +! +!WC_ORA1/UR22=0.0 +! +!WC_ORA1/URG7=0.0 +! +!WC_ORA1/RPR4=0.0 +! +!WC_ORA1/RPR7=0.0 +! +!WC_ORA1/RPG7=0.0 +! +!WC_ORA1/URG8=0.0 +! +!WC_ORA1/UR19=0.0 +! +!WC_ORA1/URG9=0.0 +! +!WC_ORA1/AP7=0.0 +! +!WC_ORA1/URG10=0.0 +! +!WC_ORA1/RPR1=0.0 +! +!WC_ORA1/RPR5=0.0 +! +!WC_ORA1/RPR8=0.0 +! +!WC_ORA1/RP10=0.0 +! +!WC_ORA1/RP11=0.0 +! +!WC_ORA1/RP16=0.0 +! +!WC_ORA1/RPRL=0.0 +! +!WC_ORA1/APAN=0.0 +! +!WC_ORA1/PAN1=0.0 +! +!WC_ORA1/PAN2=0.0 +! +!WC_ORA1/PAN3=0.0 +! +!WC_ORA1/PAN4=0.0 +! +!WC_ORA1/PAN6=0.0 +! +!WC_ORA1/PAN7=0.0 +! +!WC_ORA1/PAN8=0.0 +! +!WC_ORA1/PN10=0.0 +! +!WC_ORA1/RO2T=0.0 +! +!WC_ORA1/RO21=0.0 +! +!WC_ORA1/RO25=0.0 +! +!WC_ORA1/WC_O3=0.0 +! +!WC_ORA1/WC_H2O2=0.0 +! +!WC_ORA1/WC_NO=0.0 +! +!WC_ORA1/WC_NO2=0.0 +! +!WC_ORA1/WC_NO3=0.0 +! +!WC_ORA1/WC_N2O5=0.0 +! +!WC_ORA1/WC_HONO=0.0 +! +!WC_ORA1/WC_HNO3=0.0 +! +!WC_ORA1/WC_HNO4=0.0 +! +!WC_ORA1/WC_NH3=0.0 +! +!WC_ORA1/WC_OH=+KC19*<WC_AHMS>+KC33*<WC_HCHO>-KC38*<WC_ORA1> + PJAC(:,113,98)=+TPK%KC19(:)*PCONC(:,124)+TPK%KC33(:)*PCONC(:,108)-TPK%KC38(:)*& +&PCONC(:,113) +! +!WC_ORA1/WC_HO2=0.0 +! +!WC_ORA1/WC_CO2=0.0 +! +!WC_ORA1/WC_SO2=0.0 +! +!WC_ORA1/WC_H2SO4=0.0 +! +!WC_ORA1/WC_RO21=0.0 +! +!WC_ORA1/WC_RO25=0.0 +! +!WC_ORA1/WC_MEOH=0.0 +! +!WC_ORA1/WC_ETOH=0.0 +! +!WC_ORA1/WC_ALCH=0.0 +! +!WC_ORA1/WC_HCHO=+KC33*<WC_OH> + PJAC(:,113,108)=+TPK%KC33(:)*PCONC(:,98) +! +!WC_ORA1/WC_ALD2=0.0 +! +!WC_ORA1/WC_GLY=0.0 +! +!WC_ORA1/WC_MGLY=0.0 +! +!WC_ORA1/WC_KETL=0.0 +! +!WC_ORA1/WC_ORA1=-KTC57-KC38*<WC_OH> + PJAC(:,113,113)=-TPK%KTC57(:)-TPK%KC38(:)*PCONC(:,98) +! +!WC_ORA1/WC_ORA2=0.0 +! +!WC_ORA1/WC_ACID=0.0 +! +!WC_ORA1/WC_RP16=0.0 +! +!WC_ORA1/WC_UR21=0.0 +! +!WC_ORA1/WC_UR28=0.0 +! +!WC_ORA1/WC_ACID2=0.0 +! +!WC_ORA1/WC_ASO3=0.0 +! +!WC_ORA1/WC_ASO4=0.0 +! +!WC_ORA1/WC_ASO5=0.0 +! +!WC_ORA1/WC_AHSO5=0.0 +! +!WC_ORA1/WC_AHMS=+KC19*<WC_OH> + PJAC(:,113,124)=+TPK%KC19(:)*PCONC(:,98) +! +!WC_ORA1/WR_O3=0.0 +! +!WC_ORA1/WR_H2O2=0.0 +! +!WC_ORA1/WR_NO=0.0 +! +!WC_ORA1/WR_NO2=0.0 +! +!WC_ORA1/WR_NO3=0.0 +! +!WC_ORA1/WR_N2O5=0.0 +! +!WC_ORA1/WR_HONO=0.0 +! +!WC_ORA1/WR_HNO3=0.0 +! +!WC_ORA1/WR_HNO4=0.0 +! +!WC_ORA1/WR_NH3=0.0 +! +!WC_ORA1/WR_OH=0.0 +! +!WC_ORA1/WR_HO2=0.0 +! +!WC_ORA1/WR_CO2=0.0 +! +!WC_ORA1/WR_SO2=0.0 +! +!WC_ORA1/WR_H2SO4=0.0 +! +!WC_ORA1/WR_RO21=0.0 +! +!WC_ORA1/WR_RO25=0.0 +! +!WC_ORA1/WR_MEOH=0.0 +! +!WC_ORA1/WR_ETOH=0.0 +! +!WC_ORA1/WR_ALCH=0.0 +! +!WC_ORA1/WR_HCHO=0.0 +! +!WC_ORA1/WR_ALD2=0.0 +! +!WC_ORA1/WR_GLY=0.0 +! +!WC_ORA1/WR_MGLY=0.0 +! +!WC_ORA1/WR_KETL=0.0 +! +!WC_ORA1/WR_ORA1=0.0 +! +!WC_ORA1/WR_ORA2=0.0 +! +!WC_ORA1/WR_ACID=0.0 +! +!WC_ORA1/WR_RP16=0.0 +! +!WC_ORA1/WR_UR21=0.0 +! +!WC_ORA1/WR_UR28=0.0 +! +!WC_ORA1/WR_ACID2=0.0 +! +!WC_ORA1/WR_ASO3=0.0 +! +!WC_ORA1/WR_ASO4=0.0 +! +!WC_ORA1/WR_ASO5=0.0 +! +!WC_ORA1/WR_AHSO5=0.0 +! +!WC_ORA1/WR_AHMS=0.0 +! +!WC_ORA2/NO=0.0 +! +!WC_ORA2/NO2=0.0 +! +!WC_ORA2/O3=0.0 +! +!WC_ORA2/HONO=0.0 +! +!WC_ORA2/HNO3=0.0 +! +!WC_ORA2/HNO4=0.0 +! +!WC_ORA2/N2O5=0.0 +! +!WC_ORA2/NO3=0.0 +! +!WC_ORA2/NH3=0.0 +! +!WC_ORA2/HO2=0.0 +! +!WC_ORA2/CO=0.0 +! +!WC_ORA2/H2O2=0.0 +! +!WC_ORA2/SO2=0.0 +! +!WC_ORA2/H2SO4=0.0 +! +!WC_ORA2/OH=0.0 +! +!WC_ORA2/ETHE=0.0 +! +!WC_ORA2/OLEL=0.0 +! +!WC_ORA2/OLEH=0.0 +! +!WC_ORA2/ALKL=0.0 +! +!WC_ORA2/ALKM=0.0 +! +!WC_ORA2/ALKH=0.0 +! +!WC_ORA2/AROH=0.0 +! +!WC_ORA2/AROL=0.0 +! +!WC_ORA2/AROO=0.0 +! +!WC_ORA2/ARAL=0.0 +! +!WC_ORA2/ARAC=0.0 +! +!WC_ORA2/PAH=0.0 +! +!WC_ORA2/HCHO=0.0 +! +!WC_ORA2/ALD2=0.0 +! +!WC_ORA2/KETL=0.0 +! +!WC_ORA2/KETH=0.0 +! +!WC_ORA2/MEOH=0.0 +! +!WC_ORA2/ETOH=0.0 +! +!WC_ORA2/ALCH=0.0 +! +!WC_ORA2/ISOP=0.0 +! +!WC_ORA2/BIOL=0.0 +! +!WC_ORA2/BIOH=0.0 +! +!WC_ORA2/MTBE=0.0 +! +!WC_ORA2/MVK=0.0 +! +!WC_ORA2/MCR=0.0 +! +!WC_ORA2/MGLY=0.0 +! +!WC_ORA2/GLY=0.0 +! +!WC_ORA2/ORA1=0.0 +! +!WC_ORA2/ORA2=+KTC27 + PJAC(:,114,44)=+TPK%KTC27(:) +! +!WC_ORA2/ACID=0.0 +! +!WC_ORA2/UR28=0.0 +! +!WC_ORA2/UR21=0.0 +! +!WC_ORA2/URG2=0.0 +! +!WC_ORA2/UR26=0.0 +! +!WC_ORA2/RPG2=0.0 +! +!WC_ORA2/RP18=0.0 +! +!WC_ORA2/RPG3=0.0 +! +!WC_ORA2/URG4=0.0 +! +!WC_ORA2/UR8=0.0 +! +!WC_ORA2/UR17=0.0 +! +!WC_ORA2/UR7=0.0 +! +!WC_ORA2/RPR3=0.0 +! +!WC_ORA2/URG6=0.0 +! +!WC_ORA2/UR22=0.0 +! +!WC_ORA2/URG7=0.0 +! +!WC_ORA2/RPR4=0.0 +! +!WC_ORA2/RPR7=0.0 +! +!WC_ORA2/RPG7=0.0 +! +!WC_ORA2/URG8=0.0 +! +!WC_ORA2/UR19=0.0 +! +!WC_ORA2/URG9=0.0 +! +!WC_ORA2/AP7=0.0 +! +!WC_ORA2/URG10=0.0 +! +!WC_ORA2/RPR1=0.0 +! +!WC_ORA2/RPR5=0.0 +! +!WC_ORA2/RPR8=0.0 +! +!WC_ORA2/RP10=0.0 +! +!WC_ORA2/RP11=0.0 +! +!WC_ORA2/RP16=0.0 +! +!WC_ORA2/RPRL=0.0 +! +!WC_ORA2/APAN=0.0 +! +!WC_ORA2/PAN1=0.0 +! +!WC_ORA2/PAN2=0.0 +! +!WC_ORA2/PAN3=0.0 +! +!WC_ORA2/PAN4=0.0 +! +!WC_ORA2/PAN6=0.0 +! +!WC_ORA2/PAN7=0.0 +! +!WC_ORA2/PAN8=0.0 +! +!WC_ORA2/PN10=0.0 +! +!WC_ORA2/RO2T=0.0 +! +!WC_ORA2/RO21=0.0 +! +!WC_ORA2/RO25=0.0 +! +!WC_ORA2/WC_O3=0.0 +! +!WC_ORA2/WC_H2O2=0.0 +! +!WC_ORA2/WC_NO=0.0 +! +!WC_ORA2/WC_NO2=0.0 +! +!WC_ORA2/WC_NO3=0.0 +! +!WC_ORA2/WC_N2O5=0.0 +! +!WC_ORA2/WC_HONO=0.0 +! +!WC_ORA2/WC_HNO3=0.0 +! +!WC_ORA2/WC_HNO4=0.0 +! +!WC_ORA2/WC_NH3=0.0 +! +!WC_ORA2/WC_OH=-KC39*<WC_ORA2> + PJAC(:,114,98)=-TPK%KC39(:)*PCONC(:,114) +! +!WC_ORA2/WC_HO2=0.0 +! +!WC_ORA2/WC_CO2=0.0 +! +!WC_ORA2/WC_SO2=0.0 +! +!WC_ORA2/WC_H2SO4=0.0 +! +!WC_ORA2/WC_RO21=0.0 +! +!WC_ORA2/WC_RO25=+KC29*<WC_RO25>+KC29*<WC_RO25> + PJAC(:,114,104)=+TPK%KC29(:)*PCONC(:,104)+TPK%KC29(:)*PCONC(:,104) +! +!WC_ORA2/WC_MEOH=0.0 +! +!WC_ORA2/WC_ETOH=0.0 +! +!WC_ORA2/WC_ALCH=0.0 +! +!WC_ORA2/WC_HCHO=0.0 +! +!WC_ORA2/WC_ALD2=0.0 +! +!WC_ORA2/WC_GLY=0.0 +! +!WC_ORA2/WC_MGLY=0.0 +! +!WC_ORA2/WC_KETL=0.0 +! +!WC_ORA2/WC_ORA1=0.0 +! +!WC_ORA2/WC_ORA2=-KTC58-KC39*<WC_OH> + PJAC(:,114,114)=-TPK%KTC58(:)-TPK%KC39(:)*PCONC(:,98) +! +!WC_ORA2/WC_ACID=0.0 +! +!WC_ORA2/WC_RP16=0.0 +! +!WC_ORA2/WC_UR21=0.0 +! +!WC_ORA2/WC_UR28=0.0 +! +!WC_ORA2/WC_ACID2=0.0 +! +!WC_ORA2/WC_ASO3=0.0 +! +!WC_ORA2/WC_ASO4=0.0 +! +!WC_ORA2/WC_ASO5=0.0 +! +!WC_ORA2/WC_AHSO5=0.0 +! +!WC_ORA2/WC_AHMS=0.0 +! +!WC_ORA2/WR_O3=0.0 +! +!WC_ORA2/WR_H2O2=0.0 +! +!WC_ORA2/WR_NO=0.0 +! +!WC_ORA2/WR_NO2=0.0 +! +!WC_ORA2/WR_NO3=0.0 +! +!WC_ORA2/WR_N2O5=0.0 +! +!WC_ORA2/WR_HONO=0.0 +! +!WC_ORA2/WR_HNO3=0.0 +! +!WC_ORA2/WR_HNO4=0.0 +! +!WC_ORA2/WR_NH3=0.0 +! +!WC_ORA2/WR_OH=0.0 +! +!WC_ORA2/WR_HO2=0.0 +! +!WC_ORA2/WR_CO2=0.0 +! +!WC_ORA2/WR_SO2=0.0 +! +!WC_ORA2/WR_H2SO4=0.0 +! +!WC_ORA2/WR_RO21=0.0 +! +!WC_ORA2/WR_RO25=0.0 +! +!WC_ORA2/WR_MEOH=0.0 +! +!WC_ORA2/WR_ETOH=0.0 +! +!WC_ORA2/WR_ALCH=0.0 +! +!WC_ORA2/WR_HCHO=0.0 +! +!WC_ORA2/WR_ALD2=0.0 +! +!WC_ORA2/WR_GLY=0.0 +! +!WC_ORA2/WR_MGLY=0.0 +! +!WC_ORA2/WR_KETL=0.0 +! +!WC_ORA2/WR_ORA1=0.0 +! +!WC_ORA2/WR_ORA2=0.0 +! +!WC_ORA2/WR_ACID=0.0 +! +!WC_ORA2/WR_RP16=0.0 +! +!WC_ORA2/WR_UR21=0.0 +! +!WC_ORA2/WR_UR28=0.0 +! +!WC_ORA2/WR_ACID2=0.0 +! +!WC_ORA2/WR_ASO3=0.0 +! +!WC_ORA2/WR_ASO4=0.0 +! +!WC_ORA2/WR_ASO5=0.0 +! +!WC_ORA2/WR_AHSO5=0.0 +! +!WC_ORA2/WR_AHMS=0.0 +! +!WC_ACID/NO=0.0 +! +!WC_ACID/NO2=0.0 +! +!WC_ACID/O3=0.0 +! +!WC_ACID/HONO=0.0 +! +!WC_ACID/HNO3=0.0 +! +!WC_ACID/HNO4=0.0 +! +!WC_ACID/N2O5=0.0 +! +!WC_ACID/NO3=0.0 +! +!WC_ACID/NH3=0.0 +! +!WC_ACID/HO2=0.0 +! +!WC_ACID/CO=0.0 +! +!WC_ACID/H2O2=0.0 +! +!WC_ACID/SO2=0.0 +! +!WC_ACID/H2SO4=0.0 +! +!WC_ACID/OH=0.0 +! +!WC_ACID/ETHE=0.0 +! +!WC_ACID/OLEL=0.0 +! +!WC_ACID/OLEH=0.0 +! +!WC_ACID/ALKL=0.0 +! +!WC_ACID/ALKM=0.0 +! +!WC_ACID/ALKH=0.0 +! +!WC_ACID/AROH=0.0 +! +!WC_ACID/AROL=0.0 +! +!WC_ACID/AROO=0.0 +! +!WC_ACID/ARAL=0.0 +! +!WC_ACID/ARAC=0.0 +! +!WC_ACID/PAH=0.0 +! +!WC_ACID/HCHO=0.0 +! +!WC_ACID/ALD2=0.0 +! +!WC_ACID/KETL=0.0 +! +!WC_ACID/KETH=0.0 +! +!WC_ACID/MEOH=0.0 +! +!WC_ACID/ETOH=0.0 +! +!WC_ACID/ALCH=0.0 +! +!WC_ACID/ISOP=0.0 +! +!WC_ACID/BIOL=0.0 +! +!WC_ACID/BIOH=0.0 +! +!WC_ACID/MTBE=0.0 +! +!WC_ACID/MVK=0.0 +! +!WC_ACID/MCR=0.0 +! +!WC_ACID/MGLY=0.0 +! +!WC_ACID/GLY=0.0 +! +!WC_ACID/ORA1=0.0 +! +!WC_ACID/ORA2=0.0 +! +!WC_ACID/ACID=+KTC28 + PJAC(:,115,45)=+TPK%KTC28(:) +! +!WC_ACID/UR28=0.0 +! +!WC_ACID/UR21=0.0 +! +!WC_ACID/URG2=0.0 +! +!WC_ACID/UR26=0.0 +! +!WC_ACID/RPG2=0.0 +! +!WC_ACID/RP18=0.0 +! +!WC_ACID/RPG3=0.0 +! +!WC_ACID/URG4=0.0 +! +!WC_ACID/UR8=0.0 +! +!WC_ACID/UR17=0.0 +! +!WC_ACID/UR7=0.0 +! +!WC_ACID/RPR3=0.0 +! +!WC_ACID/URG6=0.0 +! +!WC_ACID/UR22=0.0 +! +!WC_ACID/URG7=0.0 +! +!WC_ACID/RPR4=0.0 +! +!WC_ACID/RPR7=0.0 +! +!WC_ACID/RPG7=0.0 +! +!WC_ACID/URG8=0.0 +! +!WC_ACID/UR19=0.0 +! +!WC_ACID/URG9=0.0 +! +!WC_ACID/AP7=0.0 +! +!WC_ACID/URG10=0.0 +! +!WC_ACID/RPR1=0.0 +! +!WC_ACID/RPR5=0.0 +! +!WC_ACID/RPR8=0.0 +! +!WC_ACID/RP10=0.0 +! +!WC_ACID/RP11=0.0 +! +!WC_ACID/RP16=0.0 +! +!WC_ACID/RPRL=0.0 +! +!WC_ACID/APAN=0.0 +! +!WC_ACID/PAN1=0.0 +! +!WC_ACID/PAN2=0.0 +! +!WC_ACID/PAN3=0.0 +! +!WC_ACID/PAN4=0.0 +! +!WC_ACID/PAN6=0.0 +! +!WC_ACID/PAN7=0.0 +! +!WC_ACID/PAN8=0.0 +! +!WC_ACID/PN10=0.0 +! +!WC_ACID/RO2T=0.0 +! +!WC_ACID/RO21=0.0 +! +!WC_ACID/RO25=0.0 +! +!WC_ACID/WC_O3=0.0 +! +!WC_ACID/WC_H2O2=0.0 +! +!WC_ACID/WC_NO=0.0 +! +!WC_ACID/WC_NO2=0.0 +! +!WC_ACID/WC_NO3=0.0 +! +!WC_ACID/WC_N2O5=0.0 +! +!WC_ACID/WC_HONO=0.0 +! +!WC_ACID/WC_HNO3=0.0 +! +!WC_ACID/WC_HNO4=0.0 +! +!WC_ACID/WC_NH3=0.0 +! +!WC_ACID/WC_OH=-KC40*<WC_ACID>-KC41*<WC_ACID> + PJAC(:,115,98)=-TPK%KC40(:)*PCONC(:,115)-TPK%KC41(:)*PCONC(:,115) +! +!WC_ACID/WC_HO2=0.0 +! +!WC_ACID/WC_CO2=0.0 +! +!WC_ACID/WC_SO2=0.0 +! +!WC_ACID/WC_H2SO4=0.0 +! +!WC_ACID/WC_RO21=0.0 +! +!WC_ACID/WC_RO25=0.0 +! +!WC_ACID/WC_MEOH=0.0 +! +!WC_ACID/WC_ETOH=0.0 +! +!WC_ACID/WC_ALCH=0.0 +! +!WC_ACID/WC_HCHO=0.0 +! +!WC_ACID/WC_ALD2=0.0 +! +!WC_ACID/WC_GLY=0.0 +! +!WC_ACID/WC_MGLY=0.0 +! +!WC_ACID/WC_KETL=0.0 +! +!WC_ACID/WC_ORA1=0.0 +! +!WC_ACID/WC_ORA2=0.0 +! +!WC_ACID/WC_ACID=-KTC59-KC40*<WC_OH>-KC41*<WC_OH> + PJAC(:,115,115)=-TPK%KTC59(:)-TPK%KC40(:)*PCONC(:,98)-TPK%KC41(:)*PCONC(:,98) +! +!WC_ACID/WC_RP16=0.0 +! +!WC_ACID/WC_UR21=0.0 +! +!WC_ACID/WC_UR28=0.0 +! +!WC_ACID/WC_ACID2=0.0 +! +!WC_ACID/WC_ASO3=0.0 +! +!WC_ACID/WC_ASO4=0.0 +! +!WC_ACID/WC_ASO5=0.0 +! +!WC_ACID/WC_AHSO5=0.0 +! +!WC_ACID/WC_AHMS=0.0 +! +!WC_ACID/WR_O3=0.0 +! +!WC_ACID/WR_H2O2=0.0 +! +!WC_ACID/WR_NO=0.0 +! +!WC_ACID/WR_NO2=0.0 +! +!WC_ACID/WR_NO3=0.0 +! +!WC_ACID/WR_N2O5=0.0 +! +!WC_ACID/WR_HONO=0.0 +! +!WC_ACID/WR_HNO3=0.0 +! +!WC_ACID/WR_HNO4=0.0 +! +!WC_ACID/WR_NH3=0.0 +! +!WC_ACID/WR_OH=0.0 +! +!WC_ACID/WR_HO2=0.0 +! +!WC_ACID/WR_CO2=0.0 +! +!WC_ACID/WR_SO2=0.0 +! +!WC_ACID/WR_H2SO4=0.0 +! +!WC_ACID/WR_RO21=0.0 +! +!WC_ACID/WR_RO25=0.0 +! +!WC_ACID/WR_MEOH=0.0 +! +!WC_ACID/WR_ETOH=0.0 +! +!WC_ACID/WR_ALCH=0.0 +! +!WC_ACID/WR_HCHO=0.0 +! +!WC_ACID/WR_ALD2=0.0 +! +!WC_ACID/WR_GLY=0.0 +! +!WC_ACID/WR_MGLY=0.0 +! +!WC_ACID/WR_KETL=0.0 +! +!WC_ACID/WR_ORA1=0.0 +! +!WC_ACID/WR_ORA2=0.0 +! +!WC_ACID/WR_ACID=0.0 +! +!WC_ACID/WR_RP16=0.0 +! +!WC_ACID/WR_UR21=0.0 +! +!WC_ACID/WR_UR28=0.0 +! +!WC_ACID/WR_ACID2=0.0 +! +!WC_ACID/WR_ASO3=0.0 +! +!WC_ACID/WR_ASO4=0.0 +! +!WC_ACID/WR_ASO5=0.0 +! +!WC_ACID/WR_AHSO5=0.0 +! +!WC_ACID/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ22 +! +SUBROUTINE SUBJ23 +! +!Indices 116 a 120 +! +! +!WC_RP16/NO=0.0 +! +!WC_RP16/NO2=0.0 +! +!WC_RP16/O3=0.0 +! +!WC_RP16/HONO=0.0 +! +!WC_RP16/HNO3=0.0 +! +!WC_RP16/HNO4=0.0 +! +!WC_RP16/N2O5=0.0 +! +!WC_RP16/NO3=0.0 +! +!WC_RP16/NH3=0.0 +! +!WC_RP16/HO2=0.0 +! +!WC_RP16/CO=0.0 +! +!WC_RP16/H2O2=0.0 +! +!WC_RP16/SO2=0.0 +! +!WC_RP16/H2SO4=0.0 +! +!WC_RP16/OH=0.0 +! +!WC_RP16/ETHE=0.0 +! +!WC_RP16/OLEL=0.0 +! +!WC_RP16/OLEH=0.0 +! +!WC_RP16/ALKL=0.0 +! +!WC_RP16/ALKM=0.0 +! +!WC_RP16/ALKH=0.0 +! +!WC_RP16/AROH=0.0 +! +!WC_RP16/AROL=0.0 +! +!WC_RP16/AROO=0.0 +! +!WC_RP16/ARAL=0.0 +! +!WC_RP16/ARAC=0.0 +! +!WC_RP16/PAH=0.0 +! +!WC_RP16/HCHO=0.0 +! +!WC_RP16/ALD2=0.0 +! +!WC_RP16/KETL=0.0 +! +!WC_RP16/KETH=0.0 +! +!WC_RP16/MEOH=0.0 +! +!WC_RP16/ETOH=0.0 +! +!WC_RP16/ALCH=0.0 +! +!WC_RP16/ISOP=0.0 +! +!WC_RP16/BIOL=0.0 +! +!WC_RP16/BIOH=0.0 +! +!WC_RP16/MTBE=0.0 +! +!WC_RP16/MVK=0.0 +! +!WC_RP16/MCR=0.0 +! +!WC_RP16/MGLY=0.0 +! +!WC_RP16/GLY=0.0 +! +!WC_RP16/ORA1=0.0 +! +!WC_RP16/ORA2=0.0 +! +!WC_RP16/ACID=0.0 +! +!WC_RP16/UR28=0.0 +! +!WC_RP16/UR21=0.0 +! +!WC_RP16/URG2=0.0 +! +!WC_RP16/UR26=0.0 +! +!WC_RP16/RPG2=0.0 +! +!WC_RP16/RP18=0.0 +! +!WC_RP16/RPG3=0.0 +! +!WC_RP16/URG4=0.0 +! +!WC_RP16/UR8=0.0 +! +!WC_RP16/UR17=0.0 +! +!WC_RP16/UR7=0.0 +! +!WC_RP16/RPR3=0.0 +! +!WC_RP16/URG6=0.0 +! +!WC_RP16/UR22=0.0 +! +!WC_RP16/URG7=0.0 +! +!WC_RP16/RPR4=0.0 +! +!WC_RP16/RPR7=0.0 +! +!WC_RP16/RPG7=0.0 +! +!WC_RP16/URG8=0.0 +! +!WC_RP16/UR19=0.0 +! +!WC_RP16/URG9=0.0 +! +!WC_RP16/AP7=0.0 +! +!WC_RP16/URG10=0.0 +! +!WC_RP16/RPR1=0.0 +! +!WC_RP16/RPR5=0.0 +! +!WC_RP16/RPR8=0.0 +! +!WC_RP16/RP10=0.0 +! +!WC_RP16/RP11=0.0 +! +!WC_RP16/RP16=+KTC29 + PJAC(:,116,74)=+TPK%KTC29(:) +! +!WC_RP16/RPRL=0.0 +! +!WC_RP16/APAN=0.0 +! +!WC_RP16/PAN1=0.0 +! +!WC_RP16/PAN2=0.0 +! +!WC_RP16/PAN3=0.0 +! +!WC_RP16/PAN4=0.0 +! +!WC_RP16/PAN6=0.0 +! +!WC_RP16/PAN7=0.0 +! +!WC_RP16/PAN8=0.0 +! +!WC_RP16/PN10=0.0 +! +!WC_RP16/RO2T=0.0 +! +!WC_RP16/RO21=0.0 +! +!WC_RP16/RO25=0.0 +! +!WC_RP16/WC_O3=0.0 +! +!WC_RP16/WC_H2O2=0.0 +! +!WC_RP16/WC_NO=0.0 +! +!WC_RP16/WC_NO2=0.0 +! +!WC_RP16/WC_NO3=0.0 +! +!WC_RP16/WC_N2O5=0.0 +! +!WC_RP16/WC_HONO=0.0 +! +!WC_RP16/WC_HNO3=0.0 +! +!WC_RP16/WC_HNO4=0.0 +! +!WC_RP16/WC_NH3=0.0 +! +!WC_RP16/WC_OH=+KC35*<WC_GLY>+KC39*<WC_ORA2>-KC44*<WC_RP16>-KC45*<WC_RP16> + PJAC(:,116,98)=+TPK%KC35(:)*PCONC(:,110)+TPK%KC39(:)*PCONC(:,114)-TPK%KC44(:)*& +&PCONC(:,116)-TPK%KC45(:)*PCONC(:,116) +! +!WC_RP16/WC_HO2=0.0 +! +!WC_RP16/WC_CO2=0.0 +! +!WC_RP16/WC_SO2=0.0 +! +!WC_RP16/WC_H2SO4=0.0 +! +!WC_RP16/WC_RO21=0.0 +! +!WC_RP16/WC_RO25=0.0 +! +!WC_RP16/WC_MEOH=0.0 +! +!WC_RP16/WC_ETOH=0.0 +! +!WC_RP16/WC_ALCH=0.0 +! +!WC_RP16/WC_HCHO=0.0 +! +!WC_RP16/WC_ALD2=0.0 +! +!WC_RP16/WC_GLY=+KC35*<WC_OH> + PJAC(:,116,110)=+TPK%KC35(:)*PCONC(:,98) +! +!WC_RP16/WC_MGLY=0.0 +! +!WC_RP16/WC_KETL=0.0 +! +!WC_RP16/WC_ORA1=0.0 +! +!WC_RP16/WC_ORA2=+KC39*<WC_OH> + PJAC(:,116,114)=+TPK%KC39(:)*PCONC(:,98) +! +!WC_RP16/WC_ACID=0.0 +! +!WC_RP16/WC_RP16=-KTC60-KC44*<WC_OH>-KC45*<WC_OH> + PJAC(:,116,116)=-TPK%KTC60(:)-TPK%KC44(:)*PCONC(:,98)-TPK%KC45(:)*PCONC(:,98) +! +!WC_RP16/WC_UR21=0.0 +! +!WC_RP16/WC_UR28=0.0 +! +!WC_RP16/WC_ACID2=0.0 +! +!WC_RP16/WC_ASO3=0.0 +! +!WC_RP16/WC_ASO4=0.0 +! +!WC_RP16/WC_ASO5=0.0 +! +!WC_RP16/WC_AHSO5=0.0 +! +!WC_RP16/WC_AHMS=0.0 +! +!WC_RP16/WR_O3=0.0 +! +!WC_RP16/WR_H2O2=0.0 +! +!WC_RP16/WR_NO=0.0 +! +!WC_RP16/WR_NO2=0.0 +! +!WC_RP16/WR_NO3=0.0 +! +!WC_RP16/WR_N2O5=0.0 +! +!WC_RP16/WR_HONO=0.0 +! +!WC_RP16/WR_HNO3=0.0 +! +!WC_RP16/WR_HNO4=0.0 +! +!WC_RP16/WR_NH3=0.0 +! +!WC_RP16/WR_OH=0.0 +! +!WC_RP16/WR_HO2=0.0 +! +!WC_RP16/WR_CO2=0.0 +! +!WC_RP16/WR_SO2=0.0 +! +!WC_RP16/WR_H2SO4=0.0 +! +!WC_RP16/WR_RO21=0.0 +! +!WC_RP16/WR_RO25=0.0 +! +!WC_RP16/WR_MEOH=0.0 +! +!WC_RP16/WR_ETOH=0.0 +! +!WC_RP16/WR_ALCH=0.0 +! +!WC_RP16/WR_HCHO=0.0 +! +!WC_RP16/WR_ALD2=0.0 +! +!WC_RP16/WR_GLY=0.0 +! +!WC_RP16/WR_MGLY=0.0 +! +!WC_RP16/WR_KETL=0.0 +! +!WC_RP16/WR_ORA1=0.0 +! +!WC_RP16/WR_ORA2=0.0 +! +!WC_RP16/WR_ACID=0.0 +! +!WC_RP16/WR_RP16=0.0 +! +!WC_RP16/WR_UR21=0.0 +! +!WC_RP16/WR_UR28=0.0 +! +!WC_RP16/WR_ACID2=0.0 +! +!WC_RP16/WR_ASO3=0.0 +! +!WC_RP16/WR_ASO4=0.0 +! +!WC_RP16/WR_ASO5=0.0 +! +!WC_RP16/WR_AHSO5=0.0 +! +!WC_RP16/WR_AHMS=0.0 +! +!WC_UR21/NO=0.0 +! +!WC_UR21/NO2=0.0 +! +!WC_UR21/O3=0.0 +! +!WC_UR21/HONO=0.0 +! +!WC_UR21/HNO3=0.0 +! +!WC_UR21/HNO4=0.0 +! +!WC_UR21/N2O5=0.0 +! +!WC_UR21/NO3=0.0 +! +!WC_UR21/NH3=0.0 +! +!WC_UR21/HO2=0.0 +! +!WC_UR21/CO=0.0 +! +!WC_UR21/H2O2=0.0 +! +!WC_UR21/SO2=0.0 +! +!WC_UR21/H2SO4=0.0 +! +!WC_UR21/OH=0.0 +! +!WC_UR21/ETHE=0.0 +! +!WC_UR21/OLEL=0.0 +! +!WC_UR21/OLEH=0.0 +! +!WC_UR21/ALKL=0.0 +! +!WC_UR21/ALKM=0.0 +! +!WC_UR21/ALKH=0.0 +! +!WC_UR21/AROH=0.0 +! +!WC_UR21/AROL=0.0 +! +!WC_UR21/AROO=0.0 +! +!WC_UR21/ARAL=0.0 +! +!WC_UR21/ARAC=0.0 +! +!WC_UR21/PAH=0.0 +! +!WC_UR21/HCHO=0.0 +! +!WC_UR21/ALD2=0.0 +! +!WC_UR21/KETL=0.0 +! +!WC_UR21/KETH=0.0 +! +!WC_UR21/MEOH=0.0 +! +!WC_UR21/ETOH=0.0 +! +!WC_UR21/ALCH=0.0 +! +!WC_UR21/ISOP=0.0 +! +!WC_UR21/BIOL=0.0 +! +!WC_UR21/BIOH=0.0 +! +!WC_UR21/MTBE=0.0 +! +!WC_UR21/MVK=0.0 +! +!WC_UR21/MCR=0.0 +! +!WC_UR21/MGLY=0.0 +! +!WC_UR21/GLY=0.0 +! +!WC_UR21/ORA1=0.0 +! +!WC_UR21/ORA2=0.0 +! +!WC_UR21/ACID=0.0 +! +!WC_UR21/UR28=0.0 +! +!WC_UR21/UR21=+KTC30 + PJAC(:,117,47)=+TPK%KTC30(:) +! +!WC_UR21/URG2=0.0 +! +!WC_UR21/UR26=0.0 +! +!WC_UR21/RPG2=0.0 +! +!WC_UR21/RP18=0.0 +! +!WC_UR21/RPG3=0.0 +! +!WC_UR21/URG4=0.0 +! +!WC_UR21/UR8=0.0 +! +!WC_UR21/UR17=0.0 +! +!WC_UR21/UR7=0.0 +! +!WC_UR21/RPR3=0.0 +! +!WC_UR21/URG6=0.0 +! +!WC_UR21/UR22=0.0 +! +!WC_UR21/URG7=0.0 +! +!WC_UR21/RPR4=0.0 +! +!WC_UR21/RPR7=0.0 +! +!WC_UR21/RPG7=0.0 +! +!WC_UR21/URG8=0.0 +! +!WC_UR21/UR19=0.0 +! +!WC_UR21/URG9=0.0 +! +!WC_UR21/AP7=0.0 +! +!WC_UR21/URG10=0.0 +! +!WC_UR21/RPR1=0.0 +! +!WC_UR21/RPR5=0.0 +! +!WC_UR21/RPR8=0.0 +! +!WC_UR21/RP10=0.0 +! +!WC_UR21/RP11=0.0 +! +!WC_UR21/RP16=0.0 +! +!WC_UR21/RPRL=0.0 +! +!WC_UR21/APAN=0.0 +! +!WC_UR21/PAN1=0.0 +! +!WC_UR21/PAN2=0.0 +! +!WC_UR21/PAN3=0.0 +! +!WC_UR21/PAN4=0.0 +! +!WC_UR21/PAN6=0.0 +! +!WC_UR21/PAN7=0.0 +! +!WC_UR21/PAN8=0.0 +! +!WC_UR21/PN10=0.0 +! +!WC_UR21/RO2T=0.0 +! +!WC_UR21/RO21=0.0 +! +!WC_UR21/RO25=0.0 +! +!WC_UR21/WC_O3=0.0 +! +!WC_UR21/WC_H2O2=0.0 +! +!WC_UR21/WC_NO=0.0 +! +!WC_UR21/WC_NO2=0.0 +! +!WC_UR21/WC_NO3=0.0 +! +!WC_UR21/WC_N2O5=0.0 +! +!WC_UR21/WC_HONO=0.0 +! +!WC_UR21/WC_HNO3=0.0 +! +!WC_UR21/WC_HNO4=0.0 +! +!WC_UR21/WC_NH3=0.0 +! +!WC_UR21/WC_OH=+KC36*<WC_MGLY>+KC37*<WC_KETL>+0.56*KC41*<WC_ACID>-KC43*<WC_UR21 +!> + PJAC(:,117,98)=+TPK%KC36(:)*PCONC(:,111)+TPK%KC37(:)*PCONC(:,112)+0.56*TPK%KC4& +&1(:)*PCONC(:,115)-TPK%KC43(:)*PCONC(:,117) +! +!WC_UR21/WC_HO2=0.0 +! +!WC_UR21/WC_CO2=0.0 +! +!WC_UR21/WC_SO2=0.0 +! +!WC_UR21/WC_H2SO4=0.0 +! +!WC_UR21/WC_RO21=0.0 +! +!WC_UR21/WC_RO25=0.0 +! +!WC_UR21/WC_MEOH=0.0 +! +!WC_UR21/WC_ETOH=0.0 +! +!WC_UR21/WC_ALCH=0.0 +! +!WC_UR21/WC_HCHO=0.0 +! +!WC_UR21/WC_ALD2=0.0 +! +!WC_UR21/WC_GLY=0.0 +! +!WC_UR21/WC_MGLY=+KC36*<WC_OH> + PJAC(:,117,111)=+TPK%KC36(:)*PCONC(:,98) +! +!WC_UR21/WC_KETL=+KC37*<WC_OH> + PJAC(:,117,112)=+TPK%KC37(:)*PCONC(:,98) +! +!WC_UR21/WC_ORA1=0.0 +! +!WC_UR21/WC_ORA2=0.0 +! +!WC_UR21/WC_ACID=+0.56*KC41*<WC_OH> + PJAC(:,117,115)=+0.56*TPK%KC41(:)*PCONC(:,98) +! +!WC_UR21/WC_RP16=0.0 +! +!WC_UR21/WC_UR21=-KTC61-KC43*<WC_OH> + PJAC(:,117,117)=-TPK%KTC61(:)-TPK%KC43(:)*PCONC(:,98) +! +!WC_UR21/WC_UR28=0.0 +! +!WC_UR21/WC_ACID2=0.0 +! +!WC_UR21/WC_ASO3=0.0 +! +!WC_UR21/WC_ASO4=0.0 +! +!WC_UR21/WC_ASO5=0.0 +! +!WC_UR21/WC_AHSO5=0.0 +! +!WC_UR21/WC_AHMS=0.0 +! +!WC_UR21/WR_O3=0.0 +! +!WC_UR21/WR_H2O2=0.0 +! +!WC_UR21/WR_NO=0.0 +! +!WC_UR21/WR_NO2=0.0 +! +!WC_UR21/WR_NO3=0.0 +! +!WC_UR21/WR_N2O5=0.0 +! +!WC_UR21/WR_HONO=0.0 +! +!WC_UR21/WR_HNO3=0.0 +! +!WC_UR21/WR_HNO4=0.0 +! +!WC_UR21/WR_NH3=0.0 +! +!WC_UR21/WR_OH=0.0 +! +!WC_UR21/WR_HO2=0.0 +! +!WC_UR21/WR_CO2=0.0 +! +!WC_UR21/WR_SO2=0.0 +! +!WC_UR21/WR_H2SO4=0.0 +! +!WC_UR21/WR_RO21=0.0 +! +!WC_UR21/WR_RO25=0.0 +! +!WC_UR21/WR_MEOH=0.0 +! +!WC_UR21/WR_ETOH=0.0 +! +!WC_UR21/WR_ALCH=0.0 +! +!WC_UR21/WR_HCHO=0.0 +! +!WC_UR21/WR_ALD2=0.0 +! +!WC_UR21/WR_GLY=0.0 +! +!WC_UR21/WR_MGLY=0.0 +! +!WC_UR21/WR_KETL=0.0 +! +!WC_UR21/WR_ORA1=0.0 +! +!WC_UR21/WR_ORA2=0.0 +! +!WC_UR21/WR_ACID=0.0 +! +!WC_UR21/WR_RP16=0.0 +! +!WC_UR21/WR_UR21=0.0 +! +!WC_UR21/WR_UR28=0.0 +! +!WC_UR21/WR_ACID2=0.0 +! +!WC_UR21/WR_ASO3=0.0 +! +!WC_UR21/WR_ASO4=0.0 +! +!WC_UR21/WR_ASO5=0.0 +! +!WC_UR21/WR_AHSO5=0.0 +! +!WC_UR21/WR_AHMS=0.0 +! +!WC_UR28/NO=0.0 +! +!WC_UR28/NO2=0.0 +! +!WC_UR28/O3=0.0 +! +!WC_UR28/HONO=0.0 +! +!WC_UR28/HNO3=0.0 +! +!WC_UR28/HNO4=0.0 +! +!WC_UR28/N2O5=0.0 +! +!WC_UR28/NO3=0.0 +! +!WC_UR28/NH3=0.0 +! +!WC_UR28/HO2=0.0 +! +!WC_UR28/CO=0.0 +! +!WC_UR28/H2O2=0.0 +! +!WC_UR28/SO2=0.0 +! +!WC_UR28/H2SO4=0.0 +! +!WC_UR28/OH=0.0 +! +!WC_UR28/ETHE=0.0 +! +!WC_UR28/OLEL=0.0 +! +!WC_UR28/OLEH=0.0 +! +!WC_UR28/ALKL=0.0 +! +!WC_UR28/ALKM=0.0 +! +!WC_UR28/ALKH=0.0 +! +!WC_UR28/AROH=0.0 +! +!WC_UR28/AROL=0.0 +! +!WC_UR28/AROO=0.0 +! +!WC_UR28/ARAL=0.0 +! +!WC_UR28/ARAC=0.0 +! +!WC_UR28/PAH=0.0 +! +!WC_UR28/HCHO=0.0 +! +!WC_UR28/ALD2=0.0 +! +!WC_UR28/KETL=0.0 +! +!WC_UR28/KETH=0.0 +! +!WC_UR28/MEOH=0.0 +! +!WC_UR28/ETOH=0.0 +! +!WC_UR28/ALCH=0.0 +! +!WC_UR28/ISOP=0.0 +! +!WC_UR28/BIOL=0.0 +! +!WC_UR28/BIOH=0.0 +! +!WC_UR28/MTBE=0.0 +! +!WC_UR28/MVK=0.0 +! +!WC_UR28/MCR=0.0 +! +!WC_UR28/MGLY=0.0 +! +!WC_UR28/GLY=0.0 +! +!WC_UR28/ORA1=0.0 +! +!WC_UR28/ORA2=0.0 +! +!WC_UR28/ACID=0.0 +! +!WC_UR28/UR28=+KTC31 + PJAC(:,118,46)=+TPK%KTC31(:) +! +!WC_UR28/UR21=0.0 +! +!WC_UR28/URG2=0.0 +! +!WC_UR28/UR26=0.0 +! +!WC_UR28/RPG2=0.0 +! +!WC_UR28/RP18=0.0 +! +!WC_UR28/RPG3=0.0 +! +!WC_UR28/URG4=0.0 +! +!WC_UR28/UR8=0.0 +! +!WC_UR28/UR17=0.0 +! +!WC_UR28/UR7=0.0 +! +!WC_UR28/RPR3=0.0 +! +!WC_UR28/URG6=0.0 +! +!WC_UR28/UR22=0.0 +! +!WC_UR28/URG7=0.0 +! +!WC_UR28/RPR4=0.0 +! +!WC_UR28/RPR7=0.0 +! +!WC_UR28/RPG7=0.0 +! +!WC_UR28/URG8=0.0 +! +!WC_UR28/UR19=0.0 +! +!WC_UR28/URG9=0.0 +! +!WC_UR28/AP7=0.0 +! +!WC_UR28/URG10=0.0 +! +!WC_UR28/RPR1=0.0 +! +!WC_UR28/RPR5=0.0 +! +!WC_UR28/RPR8=0.0 +! +!WC_UR28/RP10=0.0 +! +!WC_UR28/RP11=0.0 +! +!WC_UR28/RP16=0.0 +! +!WC_UR28/RPRL=0.0 +! +!WC_UR28/APAN=0.0 +! +!WC_UR28/PAN1=0.0 +! +!WC_UR28/PAN2=0.0 +! +!WC_UR28/PAN3=0.0 +! +!WC_UR28/PAN4=0.0 +! +!WC_UR28/PAN6=0.0 +! +!WC_UR28/PAN7=0.0 +! +!WC_UR28/PAN8=0.0 +! +!WC_UR28/PN10=0.0 +! +!WC_UR28/RO2T=0.0 +! +!WC_UR28/RO21=0.0 +! +!WC_UR28/RO25=0.0 +! +!WC_UR28/WC_O3=0.0 +! +!WC_UR28/WC_H2O2=0.0 +! +!WC_UR28/WC_NO=0.0 +! +!WC_UR28/WC_NO2=0.0 +! +!WC_UR28/WC_NO3=0.0 +! +!WC_UR28/WC_N2O5=0.0 +! +!WC_UR28/WC_HONO=0.0 +! +!WC_UR28/WC_HNO3=0.0 +! +!WC_UR28/WC_HNO4=0.0 +! +!WC_UR28/WC_NH3=0.0 +! +!WC_UR28/WC_OH=-KC42*<WC_UR28>+KC44*<WC_RP16> + PJAC(:,118,98)=-TPK%KC42(:)*PCONC(:,118)+TPK%KC44(:)*PCONC(:,116) +! +!WC_UR28/WC_HO2=0.0 +! +!WC_UR28/WC_CO2=0.0 +! +!WC_UR28/WC_SO2=0.0 +! +!WC_UR28/WC_H2SO4=0.0 +! +!WC_UR28/WC_RO21=0.0 +! +!WC_UR28/WC_RO25=0.0 +! +!WC_UR28/WC_MEOH=0.0 +! +!WC_UR28/WC_ETOH=0.0 +! +!WC_UR28/WC_ALCH=0.0 +! +!WC_UR28/WC_HCHO=0.0 +! +!WC_UR28/WC_ALD2=0.0 +! +!WC_UR28/WC_GLY=0.0 +! +!WC_UR28/WC_MGLY=0.0 +! +!WC_UR28/WC_KETL=0.0 +! +!WC_UR28/WC_ORA1=0.0 +! +!WC_UR28/WC_ORA2=0.0 +! +!WC_UR28/WC_ACID=0.0 +! +!WC_UR28/WC_RP16=+KC44*<WC_OH> + PJAC(:,118,116)=+TPK%KC44(:)*PCONC(:,98) +! +!WC_UR28/WC_UR21=0.0 +! +!WC_UR28/WC_UR28=-KTC62-KC42*<WC_OH> + PJAC(:,118,118)=-TPK%KTC62(:)-TPK%KC42(:)*PCONC(:,98) +! +!WC_UR28/WC_ACID2=0.0 +! +!WC_UR28/WC_ASO3=0.0 +! +!WC_UR28/WC_ASO4=0.0 +! +!WC_UR28/WC_ASO5=0.0 +! +!WC_UR28/WC_AHSO5=0.0 +! +!WC_UR28/WC_AHMS=0.0 +! +!WC_UR28/WR_O3=0.0 +! +!WC_UR28/WR_H2O2=0.0 +! +!WC_UR28/WR_NO=0.0 +! +!WC_UR28/WR_NO2=0.0 +! +!WC_UR28/WR_NO3=0.0 +! +!WC_UR28/WR_N2O5=0.0 +! +!WC_UR28/WR_HONO=0.0 +! +!WC_UR28/WR_HNO3=0.0 +! +!WC_UR28/WR_HNO4=0.0 +! +!WC_UR28/WR_NH3=0.0 +! +!WC_UR28/WR_OH=0.0 +! +!WC_UR28/WR_HO2=0.0 +! +!WC_UR28/WR_CO2=0.0 +! +!WC_UR28/WR_SO2=0.0 +! +!WC_UR28/WR_H2SO4=0.0 +! +!WC_UR28/WR_RO21=0.0 +! +!WC_UR28/WR_RO25=0.0 +! +!WC_UR28/WR_MEOH=0.0 +! +!WC_UR28/WR_ETOH=0.0 +! +!WC_UR28/WR_ALCH=0.0 +! +!WC_UR28/WR_HCHO=0.0 +! +!WC_UR28/WR_ALD2=0.0 +! +!WC_UR28/WR_GLY=0.0 +! +!WC_UR28/WR_MGLY=0.0 +! +!WC_UR28/WR_KETL=0.0 +! +!WC_UR28/WR_ORA1=0.0 +! +!WC_UR28/WR_ORA2=0.0 +! +!WC_UR28/WR_ACID=0.0 +! +!WC_UR28/WR_RP16=0.0 +! +!WC_UR28/WR_UR21=0.0 +! +!WC_UR28/WR_UR28=0.0 +! +!WC_UR28/WR_ACID2=0.0 +! +!WC_UR28/WR_ASO3=0.0 +! +!WC_UR28/WR_ASO4=0.0 +! +!WC_UR28/WR_ASO5=0.0 +! +!WC_UR28/WR_AHSO5=0.0 +! +!WC_UR28/WR_AHMS=0.0 +! +!WC_ACID2/NO=0.0 +! +!WC_ACID2/NO2=0.0 +! +!WC_ACID2/O3=0.0 +! +!WC_ACID2/HONO=0.0 +! +!WC_ACID2/HNO3=0.0 +! +!WC_ACID2/HNO4=0.0 +! +!WC_ACID2/N2O5=0.0 +! +!WC_ACID2/NO3=0.0 +! +!WC_ACID2/NH3=0.0 +! +!WC_ACID2/HO2=0.0 +! +!WC_ACID2/CO=0.0 +! +!WC_ACID2/H2O2=0.0 +! +!WC_ACID2/SO2=0.0 +! +!WC_ACID2/H2SO4=0.0 +! +!WC_ACID2/OH=0.0 +! +!WC_ACID2/ETHE=0.0 +! +!WC_ACID2/OLEL=0.0 +! +!WC_ACID2/OLEH=0.0 +! +!WC_ACID2/ALKL=0.0 +! +!WC_ACID2/ALKM=0.0 +! +!WC_ACID2/ALKH=0.0 +! +!WC_ACID2/AROH=0.0 +! +!WC_ACID2/AROL=0.0 +! +!WC_ACID2/AROO=0.0 +! +!WC_ACID2/ARAL=0.0 +! +!WC_ACID2/ARAC=0.0 +! +!WC_ACID2/PAH=0.0 +! +!WC_ACID2/HCHO=0.0 +! +!WC_ACID2/ALD2=0.0 +! +!WC_ACID2/KETL=0.0 +! +!WC_ACID2/KETH=0.0 +! +!WC_ACID2/MEOH=0.0 +! +!WC_ACID2/ETOH=0.0 +! +!WC_ACID2/ALCH=0.0 +! +!WC_ACID2/ISOP=0.0 +! +!WC_ACID2/BIOL=0.0 +! +!WC_ACID2/BIOH=0.0 +! +!WC_ACID2/MTBE=0.0 +! +!WC_ACID2/MVK=0.0 +! +!WC_ACID2/MCR=0.0 +! +!WC_ACID2/MGLY=0.0 +! +!WC_ACID2/GLY=0.0 +! +!WC_ACID2/ORA1=0.0 +! +!WC_ACID2/ORA2=0.0 +! +!WC_ACID2/ACID=0.0 +! +!WC_ACID2/UR28=0.0 +! +!WC_ACID2/UR21=0.0 +! +!WC_ACID2/URG2=0.0 +! +!WC_ACID2/UR26=0.0 +! +!WC_ACID2/RPG2=0.0 +! +!WC_ACID2/RP18=0.0 +! +!WC_ACID2/RPG3=0.0 +! +!WC_ACID2/URG4=0.0 +! +!WC_ACID2/UR8=0.0 +! +!WC_ACID2/UR17=0.0 +! +!WC_ACID2/UR7=0.0 +! +!WC_ACID2/RPR3=0.0 +! +!WC_ACID2/URG6=0.0 +! +!WC_ACID2/UR22=0.0 +! +!WC_ACID2/URG7=0.0 +! +!WC_ACID2/RPR4=0.0 +! +!WC_ACID2/RPR7=0.0 +! +!WC_ACID2/RPG7=0.0 +! +!WC_ACID2/URG8=0.0 +! +!WC_ACID2/UR19=0.0 +! +!WC_ACID2/URG9=0.0 +! +!WC_ACID2/AP7=0.0 +! +!WC_ACID2/URG10=0.0 +! +!WC_ACID2/RPR1=0.0 +! +!WC_ACID2/RPR5=0.0 +! +!WC_ACID2/RPR8=0.0 +! +!WC_ACID2/RP10=0.0 +! +!WC_ACID2/RP11=0.0 +! +!WC_ACID2/RP16=0.0 +! +!WC_ACID2/RPRL=0.0 +! +!WC_ACID2/APAN=0.0 +! +!WC_ACID2/PAN1=0.0 +! +!WC_ACID2/PAN2=0.0 +! +!WC_ACID2/PAN3=0.0 +! +!WC_ACID2/PAN4=0.0 +! +!WC_ACID2/PAN6=0.0 +! +!WC_ACID2/PAN7=0.0 +! +!WC_ACID2/PAN8=0.0 +! +!WC_ACID2/PN10=0.0 +! +!WC_ACID2/RO2T=0.0 +! +!WC_ACID2/RO21=0.0 +! +!WC_ACID2/RO25=0.0 +! +!WC_ACID2/WC_O3=0.0 +! +!WC_ACID2/WC_H2O2=0.0 +! +!WC_ACID2/WC_NO=0.0 +! +!WC_ACID2/WC_NO2=0.0 +! +!WC_ACID2/WC_NO3=0.0 +! +!WC_ACID2/WC_N2O5=0.0 +! +!WC_ACID2/WC_HONO=0.0 +! +!WC_ACID2/WC_HNO3=0.0 +! +!WC_ACID2/WC_HNO4=0.0 +! +!WC_ACID2/WC_NH3=0.0 +! +!WC_ACID2/WC_OH=+0.15*KC41*<WC_ACID>+0.56*KC43*<WC_UR21>-KC46*<WC_ACID2> + PJAC(:,119,98)=+0.15*TPK%KC41(:)*PCONC(:,115)+0.56*TPK%KC43(:)*PCONC(:,117)-TP& +&K%KC46(:)*PCONC(:,119) +! +!WC_ACID2/WC_HO2=0.0 +! +!WC_ACID2/WC_CO2=0.0 +! +!WC_ACID2/WC_SO2=0.0 +! +!WC_ACID2/WC_H2SO4=0.0 +! +!WC_ACID2/WC_RO21=0.0 +! +!WC_ACID2/WC_RO25=0.0 +! +!WC_ACID2/WC_MEOH=0.0 +! +!WC_ACID2/WC_ETOH=0.0 +! +!WC_ACID2/WC_ALCH=0.0 +! +!WC_ACID2/WC_HCHO=0.0 +! +!WC_ACID2/WC_ALD2=0.0 +! +!WC_ACID2/WC_GLY=0.0 +! +!WC_ACID2/WC_MGLY=0.0 +! +!WC_ACID2/WC_KETL=0.0 +! +!WC_ACID2/WC_ORA1=0.0 +! +!WC_ACID2/WC_ORA2=0.0 +! +!WC_ACID2/WC_ACID=+0.15*KC41*<WC_OH> + PJAC(:,119,115)=+0.15*TPK%KC41(:)*PCONC(:,98) +! +!WC_ACID2/WC_RP16=0.0 +! +!WC_ACID2/WC_UR21=+0.56*KC43*<WC_OH> + PJAC(:,119,117)=+0.56*TPK%KC43(:)*PCONC(:,98) +! +!WC_ACID2/WC_UR28=0.0 +! +!WC_ACID2/WC_ACID2=-KC46*<WC_OH> + PJAC(:,119,119)=-TPK%KC46(:)*PCONC(:,98) +! +!WC_ACID2/WC_ASO3=0.0 +! +!WC_ACID2/WC_ASO4=0.0 +! +!WC_ACID2/WC_ASO5=0.0 +! +!WC_ACID2/WC_AHSO5=0.0 +! +!WC_ACID2/WC_AHMS=0.0 +! +!WC_ACID2/WR_O3=0.0 +! +!WC_ACID2/WR_H2O2=0.0 +! +!WC_ACID2/WR_NO=0.0 +! +!WC_ACID2/WR_NO2=0.0 +! +!WC_ACID2/WR_NO3=0.0 +! +!WC_ACID2/WR_N2O5=0.0 +! +!WC_ACID2/WR_HONO=0.0 +! +!WC_ACID2/WR_HNO3=0.0 +! +!WC_ACID2/WR_HNO4=0.0 +! +!WC_ACID2/WR_NH3=0.0 +! +!WC_ACID2/WR_OH=0.0 +! +!WC_ACID2/WR_HO2=0.0 +! +!WC_ACID2/WR_CO2=0.0 +! +!WC_ACID2/WR_SO2=0.0 +! +!WC_ACID2/WR_H2SO4=0.0 +! +!WC_ACID2/WR_RO21=0.0 +! +!WC_ACID2/WR_RO25=0.0 +! +!WC_ACID2/WR_MEOH=0.0 +! +!WC_ACID2/WR_ETOH=0.0 +! +!WC_ACID2/WR_ALCH=0.0 +! +!WC_ACID2/WR_HCHO=0.0 +! +!WC_ACID2/WR_ALD2=0.0 +! +!WC_ACID2/WR_GLY=0.0 +! +!WC_ACID2/WR_MGLY=0.0 +! +!WC_ACID2/WR_KETL=0.0 +! +!WC_ACID2/WR_ORA1=0.0 +! +!WC_ACID2/WR_ORA2=0.0 +! +!WC_ACID2/WR_ACID=0.0 +! +!WC_ACID2/WR_RP16=0.0 +! +!WC_ACID2/WR_UR21=0.0 +! +!WC_ACID2/WR_UR28=0.0 +! +!WC_ACID2/WR_ACID2=0.0 +! +!WC_ACID2/WR_ASO3=0.0 +! +!WC_ACID2/WR_ASO4=0.0 +! +!WC_ACID2/WR_ASO5=0.0 +! +!WC_ACID2/WR_AHSO5=0.0 +! +!WC_ACID2/WR_AHMS=0.0 +! +!WC_ASO3/NO=0.0 +! +!WC_ASO3/NO2=0.0 +! +!WC_ASO3/O3=0.0 +! +!WC_ASO3/HONO=0.0 +! +!WC_ASO3/HNO3=0.0 +! +!WC_ASO3/HNO4=0.0 +! +!WC_ASO3/N2O5=0.0 +! +!WC_ASO3/NO3=0.0 +! +!WC_ASO3/NH3=0.0 +! +!WC_ASO3/HO2=0.0 +! +!WC_ASO3/CO=0.0 +! +!WC_ASO3/H2O2=0.0 +! +!WC_ASO3/SO2=0.0 +! +!WC_ASO3/H2SO4=0.0 +! +!WC_ASO3/OH=0.0 +! +!WC_ASO3/ETHE=0.0 +! +!WC_ASO3/OLEL=0.0 +! +!WC_ASO3/OLEH=0.0 +! +!WC_ASO3/ALKL=0.0 +! +!WC_ASO3/ALKM=0.0 +! +!WC_ASO3/ALKH=0.0 +! +!WC_ASO3/AROH=0.0 +! +!WC_ASO3/AROL=0.0 +! +!WC_ASO3/AROO=0.0 +! +!WC_ASO3/ARAL=0.0 +! +!WC_ASO3/ARAC=0.0 +! +!WC_ASO3/PAH=0.0 +! +!WC_ASO3/HCHO=0.0 +! +!WC_ASO3/ALD2=0.0 +! +!WC_ASO3/KETL=0.0 +! +!WC_ASO3/KETH=0.0 +! +!WC_ASO3/MEOH=0.0 +! +!WC_ASO3/ETOH=0.0 +! +!WC_ASO3/ALCH=0.0 +! +!WC_ASO3/ISOP=0.0 +! +!WC_ASO3/BIOL=0.0 +! +!WC_ASO3/BIOH=0.0 +! +!WC_ASO3/MTBE=0.0 +! +!WC_ASO3/MVK=0.0 +! +!WC_ASO3/MCR=0.0 +! +!WC_ASO3/MGLY=0.0 +! +!WC_ASO3/GLY=0.0 +! +!WC_ASO3/ORA1=0.0 +! +!WC_ASO3/ORA2=0.0 +! +!WC_ASO3/ACID=0.0 +! +!WC_ASO3/UR28=0.0 +! +!WC_ASO3/UR21=0.0 +! +!WC_ASO3/URG2=0.0 +! +!WC_ASO3/UR26=0.0 +! +!WC_ASO3/RPG2=0.0 +! +!WC_ASO3/RP18=0.0 +! +!WC_ASO3/RPG3=0.0 +! +!WC_ASO3/URG4=0.0 +! +!WC_ASO3/UR8=0.0 +! +!WC_ASO3/UR17=0.0 +! +!WC_ASO3/UR7=0.0 +! +!WC_ASO3/RPR3=0.0 +! +!WC_ASO3/URG6=0.0 +! +!WC_ASO3/UR22=0.0 +! +!WC_ASO3/URG7=0.0 +! +!WC_ASO3/RPR4=0.0 +! +!WC_ASO3/RPR7=0.0 +! +!WC_ASO3/RPG7=0.0 +! +!WC_ASO3/URG8=0.0 +! +!WC_ASO3/UR19=0.0 +! +!WC_ASO3/URG9=0.0 +! +!WC_ASO3/AP7=0.0 +! +!WC_ASO3/URG10=0.0 +! +!WC_ASO3/RPR1=0.0 +! +!WC_ASO3/RPR5=0.0 +! +!WC_ASO3/RPR8=0.0 +! +!WC_ASO3/RP10=0.0 +! +!WC_ASO3/RP11=0.0 +! +!WC_ASO3/RP16=0.0 +! +!WC_ASO3/RPRL=0.0 +! +!WC_ASO3/APAN=0.0 +! +!WC_ASO3/PAN1=0.0 +! +!WC_ASO3/PAN2=0.0 +! +!WC_ASO3/PAN3=0.0 +! +!WC_ASO3/PAN4=0.0 +! +!WC_ASO3/PAN6=0.0 +! +!WC_ASO3/PAN7=0.0 +! +!WC_ASO3/PAN8=0.0 +! +!WC_ASO3/PN10=0.0 +! +!WC_ASO3/RO2T=0.0 +! +!WC_ASO3/RO21=0.0 +! +!WC_ASO3/RO25=0.0 +! +!WC_ASO3/WC_O3=0.0 +! +!WC_ASO3/WC_H2O2=0.0 +! +!WC_ASO3/WC_NO=0.0 +! +!WC_ASO3/WC_NO2=0.0 +! +!WC_ASO3/WC_NO3=+KC16*<WC_SO2> + PJAC(:,120,92)=+TPK%KC16(:)*PCONC(:,101) +! +!WC_ASO3/WC_N2O5=0.0 +! +!WC_ASO3/WC_HONO=0.0 +! +!WC_ASO3/WC_HNO3=0.0 +! +!WC_ASO3/WC_HNO4=0.0 +! +!WC_ASO3/WC_NH3=0.0 +! +!WC_ASO3/WC_OH=+KC7*<WC_SO2> + PJAC(:,120,98)=+TPK%KC7(:)*PCONC(:,101) +! +!WC_ASO3/WC_HO2=0.0 +! +!WC_ASO3/WC_CO2=0.0 +! +!WC_ASO3/WC_SO2=+KC7*<WC_OH>+KC16*<WC_NO3>+KC28*<WC_RO21> + PJAC(:,120,101)=+TPK%KC7(:)*PCONC(:,98)+TPK%KC16(:)*PCONC(:,92)+TPK%KC28(:)*PC& +&ONC(:,103) +! +!WC_ASO3/WC_H2SO4=0.0 +! +!WC_ASO3/WC_RO21=+KC28*<WC_SO2> + PJAC(:,120,103)=+TPK%KC28(:)*PCONC(:,101) +! +!WC_ASO3/WC_RO25=0.0 +! +!WC_ASO3/WC_MEOH=0.0 +! +!WC_ASO3/WC_ETOH=0.0 +! +!WC_ASO3/WC_ALCH=0.0 +! +!WC_ASO3/WC_HCHO=0.0 +! +!WC_ASO3/WC_ALD2=0.0 +! +!WC_ASO3/WC_GLY=0.0 +! +!WC_ASO3/WC_MGLY=0.0 +! +!WC_ASO3/WC_KETL=0.0 +! +!WC_ASO3/WC_ORA1=0.0 +! +!WC_ASO3/WC_ORA2=0.0 +! +!WC_ASO3/WC_ACID=0.0 +! +!WC_ASO3/WC_RP16=0.0 +! +!WC_ASO3/WC_UR21=0.0 +! +!WC_ASO3/WC_UR28=0.0 +! +!WC_ASO3/WC_ACID2=0.0 +! +!WC_ASO3/WC_ASO3=-KC20*<W_O2> + PJAC(:,120,120)=-TPK%KC20(:)*TPK%W_O2(:) +! +!WC_ASO3/WC_ASO4=0.0 +! +!WC_ASO3/WC_ASO5=0.0 +! +!WC_ASO3/WC_AHSO5=0.0 +! +!WC_ASO3/WC_AHMS=0.0 +! +!WC_ASO3/WR_O3=0.0 +! +!WC_ASO3/WR_H2O2=0.0 +! +!WC_ASO3/WR_NO=0.0 +! +!WC_ASO3/WR_NO2=0.0 +! +!WC_ASO3/WR_NO3=0.0 +! +!WC_ASO3/WR_N2O5=0.0 +! +!WC_ASO3/WR_HONO=0.0 +! +!WC_ASO3/WR_HNO3=0.0 +! +!WC_ASO3/WR_HNO4=0.0 +! +!WC_ASO3/WR_NH3=0.0 +! +!WC_ASO3/WR_OH=0.0 +! +!WC_ASO3/WR_HO2=0.0 +! +!WC_ASO3/WR_CO2=0.0 +! +!WC_ASO3/WR_SO2=0.0 +! +!WC_ASO3/WR_H2SO4=0.0 +! +!WC_ASO3/WR_RO21=0.0 +! +!WC_ASO3/WR_RO25=0.0 +! +!WC_ASO3/WR_MEOH=0.0 +! +!WC_ASO3/WR_ETOH=0.0 +! +!WC_ASO3/WR_ALCH=0.0 +! +!WC_ASO3/WR_HCHO=0.0 +! +!WC_ASO3/WR_ALD2=0.0 +! +!WC_ASO3/WR_GLY=0.0 +! +!WC_ASO3/WR_MGLY=0.0 +! +!WC_ASO3/WR_KETL=0.0 +! +!WC_ASO3/WR_ORA1=0.0 +! +!WC_ASO3/WR_ORA2=0.0 +! +!WC_ASO3/WR_ACID=0.0 +! +!WC_ASO3/WR_RP16=0.0 +! +!WC_ASO3/WR_UR21=0.0 +! +!WC_ASO3/WR_UR28=0.0 +! +!WC_ASO3/WR_ACID2=0.0 +! +!WC_ASO3/WR_ASO3=0.0 +! +!WC_ASO3/WR_ASO4=0.0 +! +!WC_ASO3/WR_ASO5=0.0 +! +!WC_ASO3/WR_AHSO5=0.0 +! +!WC_ASO3/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ23 +! +SUBROUTINE SUBJ24 +! +!Indices 121 a 125 +! +! +!WC_ASO4/NO=0.0 +! +!WC_ASO4/NO2=0.0 +! +!WC_ASO4/O3=0.0 +! +!WC_ASO4/HONO=0.0 +! +!WC_ASO4/HNO3=0.0 +! +!WC_ASO4/HNO4=0.0 +! +!WC_ASO4/N2O5=0.0 +! +!WC_ASO4/NO3=0.0 +! +!WC_ASO4/NH3=0.0 +! +!WC_ASO4/HO2=0.0 +! +!WC_ASO4/CO=0.0 +! +!WC_ASO4/H2O2=0.0 +! +!WC_ASO4/SO2=0.0 +! +!WC_ASO4/H2SO4=0.0 +! +!WC_ASO4/OH=0.0 +! +!WC_ASO4/ETHE=0.0 +! +!WC_ASO4/OLEL=0.0 +! +!WC_ASO4/OLEH=0.0 +! +!WC_ASO4/ALKL=0.0 +! +!WC_ASO4/ALKM=0.0 +! +!WC_ASO4/ALKH=0.0 +! +!WC_ASO4/AROH=0.0 +! +!WC_ASO4/AROL=0.0 +! +!WC_ASO4/AROO=0.0 +! +!WC_ASO4/ARAL=0.0 +! +!WC_ASO4/ARAC=0.0 +! +!WC_ASO4/PAH=0.0 +! +!WC_ASO4/HCHO=0.0 +! +!WC_ASO4/ALD2=0.0 +! +!WC_ASO4/KETL=0.0 +! +!WC_ASO4/KETH=0.0 +! +!WC_ASO4/MEOH=0.0 +! +!WC_ASO4/ETOH=0.0 +! +!WC_ASO4/ALCH=0.0 +! +!WC_ASO4/ISOP=0.0 +! +!WC_ASO4/BIOL=0.0 +! +!WC_ASO4/BIOH=0.0 +! +!WC_ASO4/MTBE=0.0 +! +!WC_ASO4/MVK=0.0 +! +!WC_ASO4/MCR=0.0 +! +!WC_ASO4/MGLY=0.0 +! +!WC_ASO4/GLY=0.0 +! +!WC_ASO4/ORA1=0.0 +! +!WC_ASO4/ORA2=0.0 +! +!WC_ASO4/ACID=0.0 +! +!WC_ASO4/UR28=0.0 +! +!WC_ASO4/UR21=0.0 +! +!WC_ASO4/URG2=0.0 +! +!WC_ASO4/UR26=0.0 +! +!WC_ASO4/RPG2=0.0 +! +!WC_ASO4/RP18=0.0 +! +!WC_ASO4/RPG3=0.0 +! +!WC_ASO4/URG4=0.0 +! +!WC_ASO4/UR8=0.0 +! +!WC_ASO4/UR17=0.0 +! +!WC_ASO4/UR7=0.0 +! +!WC_ASO4/RPR3=0.0 +! +!WC_ASO4/URG6=0.0 +! +!WC_ASO4/UR22=0.0 +! +!WC_ASO4/URG7=0.0 +! +!WC_ASO4/RPR4=0.0 +! +!WC_ASO4/RPR7=0.0 +! +!WC_ASO4/RPG7=0.0 +! +!WC_ASO4/URG8=0.0 +! +!WC_ASO4/UR19=0.0 +! +!WC_ASO4/URG9=0.0 +! +!WC_ASO4/AP7=0.0 +! +!WC_ASO4/URG10=0.0 +! +!WC_ASO4/RPR1=0.0 +! +!WC_ASO4/RPR5=0.0 +! +!WC_ASO4/RPR8=0.0 +! +!WC_ASO4/RP10=0.0 +! +!WC_ASO4/RP11=0.0 +! +!WC_ASO4/RP16=0.0 +! +!WC_ASO4/RPRL=0.0 +! +!WC_ASO4/APAN=0.0 +! +!WC_ASO4/PAN1=0.0 +! +!WC_ASO4/PAN2=0.0 +! +!WC_ASO4/PAN3=0.0 +! +!WC_ASO4/PAN4=0.0 +! +!WC_ASO4/PAN6=0.0 +! +!WC_ASO4/PAN7=0.0 +! +!WC_ASO4/PAN8=0.0 +! +!WC_ASO4/PN10=0.0 +! +!WC_ASO4/RO2T=0.0 +! +!WC_ASO4/RO21=0.0 +! +!WC_ASO4/RO25=0.0 +! +!WC_ASO4/WC_O3=0.0 +! +!WC_ASO4/WC_H2O2=0.0 +! +!WC_ASO4/WC_NO=0.0 +! +!WC_ASO4/WC_NO2=0.0 +! +!WC_ASO4/WC_NO3=+KC15*<WC_H2SO4> + PJAC(:,121,92)=+TPK%KC15(:)*PCONC(:,102) +! +!WC_ASO4/WC_N2O5=0.0 +! +!WC_ASO4/WC_HONO=0.0 +! +!WC_ASO4/WC_HNO3=0.0 +! +!WC_ASO4/WC_HNO4=0.0 +! +!WC_ASO4/WC_NH3=0.0 +! +!WC_ASO4/WC_OH=0.0 +! +!WC_ASO4/WC_HO2=0.0 +! +!WC_ASO4/WC_CO2=0.0 +! +!WC_ASO4/WC_SO2=0.0 +! +!WC_ASO4/WC_H2SO4=+KC15*<WC_NO3> + PJAC(:,121,102)=+TPK%KC15(:)*PCONC(:,92) +! +!WC_ASO4/WC_RO21=0.0 +! +!WC_ASO4/WC_RO25=0.0 +! +!WC_ASO4/WC_MEOH=0.0 +! +!WC_ASO4/WC_ETOH=0.0 +! +!WC_ASO4/WC_ALCH=0.0 +! +!WC_ASO4/WC_HCHO=0.0 +! +!WC_ASO4/WC_ALD2=0.0 +! +!WC_ASO4/WC_GLY=0.0 +! +!WC_ASO4/WC_MGLY=0.0 +! +!WC_ASO4/WC_KETL=0.0 +! +!WC_ASO4/WC_ORA1=0.0 +! +!WC_ASO4/WC_ORA2=0.0 +! +!WC_ASO4/WC_ACID=0.0 +! +!WC_ASO4/WC_RP16=0.0 +! +!WC_ASO4/WC_UR21=0.0 +! +!WC_ASO4/WC_UR28=0.0 +! +!WC_ASO4/WC_ACID2=0.0 +! +!WC_ASO4/WC_ASO3=0.0 +! +!WC_ASO4/WC_ASO4=-KC24 + PJAC(:,121,121)=-TPK%KC24(:) +! +!WC_ASO4/WC_ASO5=+KC22*<WC_ASO5>+KC22*<WC_ASO5>+KC22*<WC_ASO5>+KC22*<WC_ASO5> + PJAC(:,121,122)=+TPK%KC22(:)*PCONC(:,122)+TPK%KC22(:)*PCONC(:,122)+TPK%KC22(:)& +&*PCONC(:,122)+TPK%KC22(:)*PCONC(:,122) +! +!WC_ASO4/WC_AHSO5=0.0 +! +!WC_ASO4/WC_AHMS=0.0 +! +!WC_ASO4/WR_O3=0.0 +! +!WC_ASO4/WR_H2O2=0.0 +! +!WC_ASO4/WR_NO=0.0 +! +!WC_ASO4/WR_NO2=0.0 +! +!WC_ASO4/WR_NO3=0.0 +! +!WC_ASO4/WR_N2O5=0.0 +! +!WC_ASO4/WR_HONO=0.0 +! +!WC_ASO4/WR_HNO3=0.0 +! +!WC_ASO4/WR_HNO4=0.0 +! +!WC_ASO4/WR_NH3=0.0 +! +!WC_ASO4/WR_OH=0.0 +! +!WC_ASO4/WR_HO2=0.0 +! +!WC_ASO4/WR_CO2=0.0 +! +!WC_ASO4/WR_SO2=0.0 +! +!WC_ASO4/WR_H2SO4=0.0 +! +!WC_ASO4/WR_RO21=0.0 +! +!WC_ASO4/WR_RO25=0.0 +! +!WC_ASO4/WR_MEOH=0.0 +! +!WC_ASO4/WR_ETOH=0.0 +! +!WC_ASO4/WR_ALCH=0.0 +! +!WC_ASO4/WR_HCHO=0.0 +! +!WC_ASO4/WR_ALD2=0.0 +! +!WC_ASO4/WR_GLY=0.0 +! +!WC_ASO4/WR_MGLY=0.0 +! +!WC_ASO4/WR_KETL=0.0 +! +!WC_ASO4/WR_ORA1=0.0 +! +!WC_ASO4/WR_ORA2=0.0 +! +!WC_ASO4/WR_ACID=0.0 +! +!WC_ASO4/WR_RP16=0.0 +! +!WC_ASO4/WR_UR21=0.0 +! +!WC_ASO4/WR_UR28=0.0 +! +!WC_ASO4/WR_ACID2=0.0 +! +!WC_ASO4/WR_ASO3=0.0 +! +!WC_ASO4/WR_ASO4=0.0 +! +!WC_ASO4/WR_ASO5=0.0 +! +!WC_ASO4/WR_AHSO5=0.0 +! +!WC_ASO4/WR_AHMS=0.0 +! +!WC_ASO5/NO=0.0 +! +!WC_ASO5/NO2=0.0 +! +!WC_ASO5/O3=0.0 +! +!WC_ASO5/HONO=0.0 +! +!WC_ASO5/HNO3=0.0 +! +!WC_ASO5/HNO4=0.0 +! +!WC_ASO5/N2O5=0.0 +! +!WC_ASO5/NO3=0.0 +! +!WC_ASO5/NH3=0.0 +! +!WC_ASO5/HO2=0.0 +! +!WC_ASO5/CO=0.0 +! +!WC_ASO5/H2O2=0.0 +! +!WC_ASO5/SO2=0.0 +! +!WC_ASO5/H2SO4=0.0 +! +!WC_ASO5/OH=0.0 +! +!WC_ASO5/ETHE=0.0 +! +!WC_ASO5/OLEL=0.0 +! +!WC_ASO5/OLEH=0.0 +! +!WC_ASO5/ALKL=0.0 +! +!WC_ASO5/ALKM=0.0 +! +!WC_ASO5/ALKH=0.0 +! +!WC_ASO5/AROH=0.0 +! +!WC_ASO5/AROL=0.0 +! +!WC_ASO5/AROO=0.0 +! +!WC_ASO5/ARAL=0.0 +! +!WC_ASO5/ARAC=0.0 +! +!WC_ASO5/PAH=0.0 +! +!WC_ASO5/HCHO=0.0 +! +!WC_ASO5/ALD2=0.0 +! +!WC_ASO5/KETL=0.0 +! +!WC_ASO5/KETH=0.0 +! +!WC_ASO5/MEOH=0.0 +! +!WC_ASO5/ETOH=0.0 +! +!WC_ASO5/ALCH=0.0 +! +!WC_ASO5/ISOP=0.0 +! +!WC_ASO5/BIOL=0.0 +! +!WC_ASO5/BIOH=0.0 +! +!WC_ASO5/MTBE=0.0 +! +!WC_ASO5/MVK=0.0 +! +!WC_ASO5/MCR=0.0 +! +!WC_ASO5/MGLY=0.0 +! +!WC_ASO5/GLY=0.0 +! +!WC_ASO5/ORA1=0.0 +! +!WC_ASO5/ORA2=0.0 +! +!WC_ASO5/ACID=0.0 +! +!WC_ASO5/UR28=0.0 +! +!WC_ASO5/UR21=0.0 +! +!WC_ASO5/URG2=0.0 +! +!WC_ASO5/UR26=0.0 +! +!WC_ASO5/RPG2=0.0 +! +!WC_ASO5/RP18=0.0 +! +!WC_ASO5/RPG3=0.0 +! +!WC_ASO5/URG4=0.0 +! +!WC_ASO5/UR8=0.0 +! +!WC_ASO5/UR17=0.0 +! +!WC_ASO5/UR7=0.0 +! +!WC_ASO5/RPR3=0.0 +! +!WC_ASO5/URG6=0.0 +! +!WC_ASO5/UR22=0.0 +! +!WC_ASO5/URG7=0.0 +! +!WC_ASO5/RPR4=0.0 +! +!WC_ASO5/RPR7=0.0 +! +!WC_ASO5/RPG7=0.0 +! +!WC_ASO5/URG8=0.0 +! +!WC_ASO5/UR19=0.0 +! +!WC_ASO5/URG9=0.0 +! +!WC_ASO5/AP7=0.0 +! +!WC_ASO5/URG10=0.0 +! +!WC_ASO5/RPR1=0.0 +! +!WC_ASO5/RPR5=0.0 +! +!WC_ASO5/RPR8=0.0 +! +!WC_ASO5/RP10=0.0 +! +!WC_ASO5/RP11=0.0 +! +!WC_ASO5/RP16=0.0 +! +!WC_ASO5/RPRL=0.0 +! +!WC_ASO5/APAN=0.0 +! +!WC_ASO5/PAN1=0.0 +! +!WC_ASO5/PAN2=0.0 +! +!WC_ASO5/PAN3=0.0 +! +!WC_ASO5/PAN4=0.0 +! +!WC_ASO5/PAN6=0.0 +! +!WC_ASO5/PAN7=0.0 +! +!WC_ASO5/PAN8=0.0 +! +!WC_ASO5/PN10=0.0 +! +!WC_ASO5/RO2T=0.0 +! +!WC_ASO5/RO21=0.0 +! +!WC_ASO5/RO25=0.0 +! +!WC_ASO5/WC_O3=0.0 +! +!WC_ASO5/WC_H2O2=0.0 +! +!WC_ASO5/WC_NO=0.0 +! +!WC_ASO5/WC_NO2=0.0 +! +!WC_ASO5/WC_NO3=0.0 +! +!WC_ASO5/WC_N2O5=0.0 +! +!WC_ASO5/WC_HONO=0.0 +! +!WC_ASO5/WC_HNO3=0.0 +! +!WC_ASO5/WC_HNO4=0.0 +! +!WC_ASO5/WC_NH3=0.0 +! +!WC_ASO5/WC_OH=0.0 +! +!WC_ASO5/WC_HO2=-KC21*<WC_ASO5> + PJAC(:,122,99)=-TPK%KC21(:)*PCONC(:,122) +! +!WC_ASO5/WC_CO2=0.0 +! +!WC_ASO5/WC_SO2=0.0 +! +!WC_ASO5/WC_H2SO4=0.0 +! +!WC_ASO5/WC_RO21=0.0 +! +!WC_ASO5/WC_RO25=0.0 +! +!WC_ASO5/WC_MEOH=0.0 +! +!WC_ASO5/WC_ETOH=0.0 +! +!WC_ASO5/WC_ALCH=0.0 +! +!WC_ASO5/WC_HCHO=0.0 +! +!WC_ASO5/WC_ALD2=0.0 +! +!WC_ASO5/WC_GLY=0.0 +! +!WC_ASO5/WC_MGLY=0.0 +! +!WC_ASO5/WC_KETL=0.0 +! +!WC_ASO5/WC_ORA1=0.0 +! +!WC_ASO5/WC_ORA2=0.0 +! +!WC_ASO5/WC_ACID=0.0 +! +!WC_ASO5/WC_RP16=0.0 +! +!WC_ASO5/WC_UR21=0.0 +! +!WC_ASO5/WC_UR28=0.0 +! +!WC_ASO5/WC_ACID2=0.0 +! +!WC_ASO5/WC_ASO3=+KC20*<W_O2> + PJAC(:,122,120)=+TPK%KC20(:)*TPK%W_O2(:) +! +!WC_ASO5/WC_ASO4=0.0 +! +!WC_ASO5/WC_ASO5=-KC21*<WC_HO2>-KC22*<WC_ASO5>-KC22*<WC_ASO5>-KC22*<WC_ASO5>-KC +!22*<WC_ASO5> + PJAC(:,122,122)=-TPK%KC21(:)*PCONC(:,99)-TPK%KC22(:)*PCONC(:,122)-TPK%KC22(:)*& +&PCONC(:,122)-TPK%KC22(:)*PCONC(:,122)-TPK%KC22(:)*PCONC(:,122) +! +!WC_ASO5/WC_AHSO5=0.0 +! +!WC_ASO5/WC_AHMS=0.0 +! +!WC_ASO5/WR_O3=0.0 +! +!WC_ASO5/WR_H2O2=0.0 +! +!WC_ASO5/WR_NO=0.0 +! +!WC_ASO5/WR_NO2=0.0 +! +!WC_ASO5/WR_NO3=0.0 +! +!WC_ASO5/WR_N2O5=0.0 +! +!WC_ASO5/WR_HONO=0.0 +! +!WC_ASO5/WR_HNO3=0.0 +! +!WC_ASO5/WR_HNO4=0.0 +! +!WC_ASO5/WR_NH3=0.0 +! +!WC_ASO5/WR_OH=0.0 +! +!WC_ASO5/WR_HO2=0.0 +! +!WC_ASO5/WR_CO2=0.0 +! +!WC_ASO5/WR_SO2=0.0 +! +!WC_ASO5/WR_H2SO4=0.0 +! +!WC_ASO5/WR_RO21=0.0 +! +!WC_ASO5/WR_RO25=0.0 +! +!WC_ASO5/WR_MEOH=0.0 +! +!WC_ASO5/WR_ETOH=0.0 +! +!WC_ASO5/WR_ALCH=0.0 +! +!WC_ASO5/WR_HCHO=0.0 +! +!WC_ASO5/WR_ALD2=0.0 +! +!WC_ASO5/WR_GLY=0.0 +! +!WC_ASO5/WR_MGLY=0.0 +! +!WC_ASO5/WR_KETL=0.0 +! +!WC_ASO5/WR_ORA1=0.0 +! +!WC_ASO5/WR_ORA2=0.0 +! +!WC_ASO5/WR_ACID=0.0 +! +!WC_ASO5/WR_RP16=0.0 +! +!WC_ASO5/WR_UR21=0.0 +! +!WC_ASO5/WR_UR28=0.0 +! +!WC_ASO5/WR_ACID2=0.0 +! +!WC_ASO5/WR_ASO3=0.0 +! +!WC_ASO5/WR_ASO4=0.0 +! +!WC_ASO5/WR_ASO5=0.0 +! +!WC_ASO5/WR_AHSO5=0.0 +! +!WC_ASO5/WR_AHMS=0.0 +! +!WC_AHSO5/NO=0.0 +! +!WC_AHSO5/NO2=0.0 +! +!WC_AHSO5/O3=0.0 +! +!WC_AHSO5/HONO=0.0 +! +!WC_AHSO5/HNO3=0.0 +! +!WC_AHSO5/HNO4=0.0 +! +!WC_AHSO5/N2O5=0.0 +! +!WC_AHSO5/NO3=0.0 +! +!WC_AHSO5/NH3=0.0 +! +!WC_AHSO5/HO2=0.0 +! +!WC_AHSO5/CO=0.0 +! +!WC_AHSO5/H2O2=0.0 +! +!WC_AHSO5/SO2=0.0 +! +!WC_AHSO5/H2SO4=0.0 +! +!WC_AHSO5/OH=0.0 +! +!WC_AHSO5/ETHE=0.0 +! +!WC_AHSO5/OLEL=0.0 +! +!WC_AHSO5/OLEH=0.0 +! +!WC_AHSO5/ALKL=0.0 +! +!WC_AHSO5/ALKM=0.0 +! +!WC_AHSO5/ALKH=0.0 +! +!WC_AHSO5/AROH=0.0 +! +!WC_AHSO5/AROL=0.0 +! +!WC_AHSO5/AROO=0.0 +! +!WC_AHSO5/ARAL=0.0 +! +!WC_AHSO5/ARAC=0.0 +! +!WC_AHSO5/PAH=0.0 +! +!WC_AHSO5/HCHO=0.0 +! +!WC_AHSO5/ALD2=0.0 +! +!WC_AHSO5/KETL=0.0 +! +!WC_AHSO5/KETH=0.0 +! +!WC_AHSO5/MEOH=0.0 +! +!WC_AHSO5/ETOH=0.0 +! +!WC_AHSO5/ALCH=0.0 +! +!WC_AHSO5/ISOP=0.0 +! +!WC_AHSO5/BIOL=0.0 +! +!WC_AHSO5/BIOH=0.0 +! +!WC_AHSO5/MTBE=0.0 +! +!WC_AHSO5/MVK=0.0 +! +!WC_AHSO5/MCR=0.0 +! +!WC_AHSO5/MGLY=0.0 +! +!WC_AHSO5/GLY=0.0 +! +!WC_AHSO5/ORA1=0.0 +! +!WC_AHSO5/ORA2=0.0 +! +!WC_AHSO5/ACID=0.0 +! +!WC_AHSO5/UR28=0.0 +! +!WC_AHSO5/UR21=0.0 +! +!WC_AHSO5/URG2=0.0 +! +!WC_AHSO5/UR26=0.0 +! +!WC_AHSO5/RPG2=0.0 +! +!WC_AHSO5/RP18=0.0 +! +!WC_AHSO5/RPG3=0.0 +! +!WC_AHSO5/URG4=0.0 +! +!WC_AHSO5/UR8=0.0 +! +!WC_AHSO5/UR17=0.0 +! +!WC_AHSO5/UR7=0.0 +! +!WC_AHSO5/RPR3=0.0 +! +!WC_AHSO5/URG6=0.0 +! +!WC_AHSO5/UR22=0.0 +! +!WC_AHSO5/URG7=0.0 +! +!WC_AHSO5/RPR4=0.0 +! +!WC_AHSO5/RPR7=0.0 +! +!WC_AHSO5/RPG7=0.0 +! +!WC_AHSO5/URG8=0.0 +! +!WC_AHSO5/UR19=0.0 +! +!WC_AHSO5/URG9=0.0 +! +!WC_AHSO5/AP7=0.0 +! +!WC_AHSO5/URG10=0.0 +! +!WC_AHSO5/RPR1=0.0 +! +!WC_AHSO5/RPR5=0.0 +! +!WC_AHSO5/RPR8=0.0 +! +!WC_AHSO5/RP10=0.0 +! +!WC_AHSO5/RP11=0.0 +! +!WC_AHSO5/RP16=0.0 +! +!WC_AHSO5/RPRL=0.0 +! +!WC_AHSO5/APAN=0.0 +! +!WC_AHSO5/PAN1=0.0 +! +!WC_AHSO5/PAN2=0.0 +! +!WC_AHSO5/PAN3=0.0 +! +!WC_AHSO5/PAN4=0.0 +! +!WC_AHSO5/PAN6=0.0 +! +!WC_AHSO5/PAN7=0.0 +! +!WC_AHSO5/PAN8=0.0 +! +!WC_AHSO5/PN10=0.0 +! +!WC_AHSO5/RO2T=0.0 +! +!WC_AHSO5/RO21=0.0 +! +!WC_AHSO5/RO25=0.0 +! +!WC_AHSO5/WC_O3=0.0 +! +!WC_AHSO5/WC_H2O2=0.0 +! +!WC_AHSO5/WC_NO=0.0 +! +!WC_AHSO5/WC_NO2=0.0 +! +!WC_AHSO5/WC_NO3=0.0 +! +!WC_AHSO5/WC_N2O5=0.0 +! +!WC_AHSO5/WC_HONO=0.0 +! +!WC_AHSO5/WC_HNO3=0.0 +! +!WC_AHSO5/WC_HNO4=0.0 +! +!WC_AHSO5/WC_NH3=0.0 +! +!WC_AHSO5/WC_OH=0.0 +! +!WC_AHSO5/WC_HO2=+KC21*<WC_ASO5> + PJAC(:,123,99)=+TPK%KC21(:)*PCONC(:,122) +! +!WC_AHSO5/WC_CO2=0.0 +! +!WC_AHSO5/WC_SO2=-KC23*<WC_AHSO5> + PJAC(:,123,101)=-TPK%KC23(:)*PCONC(:,123) +! +!WC_AHSO5/WC_H2SO4=0.0 +! +!WC_AHSO5/WC_RO21=0.0 +! +!WC_AHSO5/WC_RO25=0.0 +! +!WC_AHSO5/WC_MEOH=0.0 +! +!WC_AHSO5/WC_ETOH=0.0 +! +!WC_AHSO5/WC_ALCH=0.0 +! +!WC_AHSO5/WC_HCHO=0.0 +! +!WC_AHSO5/WC_ALD2=0.0 +! +!WC_AHSO5/WC_GLY=0.0 +! +!WC_AHSO5/WC_MGLY=0.0 +! +!WC_AHSO5/WC_KETL=0.0 +! +!WC_AHSO5/WC_ORA1=0.0 +! +!WC_AHSO5/WC_ORA2=0.0 +! +!WC_AHSO5/WC_ACID=0.0 +! +!WC_AHSO5/WC_RP16=0.0 +! +!WC_AHSO5/WC_UR21=0.0 +! +!WC_AHSO5/WC_UR28=0.0 +! +!WC_AHSO5/WC_ACID2=0.0 +! +!WC_AHSO5/WC_ASO3=0.0 +! +!WC_AHSO5/WC_ASO4=0.0 +! +!WC_AHSO5/WC_ASO5=+KC21*<WC_HO2> + PJAC(:,123,122)=+TPK%KC21(:)*PCONC(:,99) +! +!WC_AHSO5/WC_AHSO5=-KC23*<WC_SO2> + PJAC(:,123,123)=-TPK%KC23(:)*PCONC(:,101) +! +!WC_AHSO5/WC_AHMS=0.0 +! +!WC_AHSO5/WR_O3=0.0 +! +!WC_AHSO5/WR_H2O2=0.0 +! +!WC_AHSO5/WR_NO=0.0 +! +!WC_AHSO5/WR_NO2=0.0 +! +!WC_AHSO5/WR_NO3=0.0 +! +!WC_AHSO5/WR_N2O5=0.0 +! +!WC_AHSO5/WR_HONO=0.0 +! +!WC_AHSO5/WR_HNO3=0.0 +! +!WC_AHSO5/WR_HNO4=0.0 +! +!WC_AHSO5/WR_NH3=0.0 +! +!WC_AHSO5/WR_OH=0.0 +! +!WC_AHSO5/WR_HO2=0.0 +! +!WC_AHSO5/WR_CO2=0.0 +! +!WC_AHSO5/WR_SO2=0.0 +! +!WC_AHSO5/WR_H2SO4=0.0 +! +!WC_AHSO5/WR_RO21=0.0 +! +!WC_AHSO5/WR_RO25=0.0 +! +!WC_AHSO5/WR_MEOH=0.0 +! +!WC_AHSO5/WR_ETOH=0.0 +! +!WC_AHSO5/WR_ALCH=0.0 +! +!WC_AHSO5/WR_HCHO=0.0 +! +!WC_AHSO5/WR_ALD2=0.0 +! +!WC_AHSO5/WR_GLY=0.0 +! +!WC_AHSO5/WR_MGLY=0.0 +! +!WC_AHSO5/WR_KETL=0.0 +! +!WC_AHSO5/WR_ORA1=0.0 +! +!WC_AHSO5/WR_ORA2=0.0 +! +!WC_AHSO5/WR_ACID=0.0 +! +!WC_AHSO5/WR_RP16=0.0 +! +!WC_AHSO5/WR_UR21=0.0 +! +!WC_AHSO5/WR_UR28=0.0 +! +!WC_AHSO5/WR_ACID2=0.0 +! +!WC_AHSO5/WR_ASO3=0.0 +! +!WC_AHSO5/WR_ASO4=0.0 +! +!WC_AHSO5/WR_ASO5=0.0 +! +!WC_AHSO5/WR_AHSO5=0.0 +! +!WC_AHSO5/WR_AHMS=0.0 +! +!WC_AHMS/NO=0.0 +! +!WC_AHMS/NO2=0.0 +! +!WC_AHMS/O3=0.0 +! +!WC_AHMS/HONO=0.0 +! +!WC_AHMS/HNO3=0.0 +! +!WC_AHMS/HNO4=0.0 +! +!WC_AHMS/N2O5=0.0 +! +!WC_AHMS/NO3=0.0 +! +!WC_AHMS/NH3=0.0 +! +!WC_AHMS/HO2=0.0 +! +!WC_AHMS/CO=0.0 +! +!WC_AHMS/H2O2=0.0 +! +!WC_AHMS/SO2=0.0 +! +!WC_AHMS/H2SO4=0.0 +! +!WC_AHMS/OH=0.0 +! +!WC_AHMS/ETHE=0.0 +! +!WC_AHMS/OLEL=0.0 +! +!WC_AHMS/OLEH=0.0 +! +!WC_AHMS/ALKL=0.0 +! +!WC_AHMS/ALKM=0.0 +! +!WC_AHMS/ALKH=0.0 +! +!WC_AHMS/AROH=0.0 +! +!WC_AHMS/AROL=0.0 +! +!WC_AHMS/AROO=0.0 +! +!WC_AHMS/ARAL=0.0 +! +!WC_AHMS/ARAC=0.0 +! +!WC_AHMS/PAH=0.0 +! +!WC_AHMS/HCHO=0.0 +! +!WC_AHMS/ALD2=0.0 +! +!WC_AHMS/KETL=0.0 +! +!WC_AHMS/KETH=0.0 +! +!WC_AHMS/MEOH=0.0 +! +!WC_AHMS/ETOH=0.0 +! +!WC_AHMS/ALCH=0.0 +! +!WC_AHMS/ISOP=0.0 +! +!WC_AHMS/BIOL=0.0 +! +!WC_AHMS/BIOH=0.0 +! +!WC_AHMS/MTBE=0.0 +! +!WC_AHMS/MVK=0.0 +! +!WC_AHMS/MCR=0.0 +! +!WC_AHMS/MGLY=0.0 +! +!WC_AHMS/GLY=0.0 +! +!WC_AHMS/ORA1=0.0 +! +!WC_AHMS/ORA2=0.0 +! +!WC_AHMS/ACID=0.0 +! +!WC_AHMS/UR28=0.0 +! +!WC_AHMS/UR21=0.0 +! +!WC_AHMS/URG2=0.0 +! +!WC_AHMS/UR26=0.0 +! +!WC_AHMS/RPG2=0.0 +! +!WC_AHMS/RP18=0.0 +! +!WC_AHMS/RPG3=0.0 +! +!WC_AHMS/URG4=0.0 +! +!WC_AHMS/UR8=0.0 +! +!WC_AHMS/UR17=0.0 +! +!WC_AHMS/UR7=0.0 +! +!WC_AHMS/RPR3=0.0 +! +!WC_AHMS/URG6=0.0 +! +!WC_AHMS/UR22=0.0 +! +!WC_AHMS/URG7=0.0 +! +!WC_AHMS/RPR4=0.0 +! +!WC_AHMS/RPR7=0.0 +! +!WC_AHMS/RPG7=0.0 +! +!WC_AHMS/URG8=0.0 +! +!WC_AHMS/UR19=0.0 +! +!WC_AHMS/URG9=0.0 +! +!WC_AHMS/AP7=0.0 +! +!WC_AHMS/URG10=0.0 +! +!WC_AHMS/RPR1=0.0 +! +!WC_AHMS/RPR5=0.0 +! +!WC_AHMS/RPR8=0.0 +! +!WC_AHMS/RP10=0.0 +! +!WC_AHMS/RP11=0.0 +! +!WC_AHMS/RP16=0.0 +! +!WC_AHMS/RPRL=0.0 +! +!WC_AHMS/APAN=0.0 +! +!WC_AHMS/PAN1=0.0 +! +!WC_AHMS/PAN2=0.0 +! +!WC_AHMS/PAN3=0.0 +! +!WC_AHMS/PAN4=0.0 +! +!WC_AHMS/PAN6=0.0 +! +!WC_AHMS/PAN7=0.0 +! +!WC_AHMS/PAN8=0.0 +! +!WC_AHMS/PN10=0.0 +! +!WC_AHMS/RO2T=0.0 +! +!WC_AHMS/RO21=0.0 +! +!WC_AHMS/RO25=0.0 +! +!WC_AHMS/WC_O3=0.0 +! +!WC_AHMS/WC_H2O2=0.0 +! +!WC_AHMS/WC_NO=0.0 +! +!WC_AHMS/WC_NO2=0.0 +! +!WC_AHMS/WC_NO3=0.0 +! +!WC_AHMS/WC_N2O5=0.0 +! +!WC_AHMS/WC_HONO=0.0 +! +!WC_AHMS/WC_HNO3=0.0 +! +!WC_AHMS/WC_HNO4=0.0 +! +!WC_AHMS/WC_NH3=0.0 +! +!WC_AHMS/WC_OH=-KC19*<WC_AHMS> + PJAC(:,124,98)=-TPK%KC19(:)*PCONC(:,124) +! +!WC_AHMS/WC_HO2=0.0 +! +!WC_AHMS/WC_CO2=0.0 +! +!WC_AHMS/WC_SO2=+KC17*<WC_HCHO> + PJAC(:,124,101)=+TPK%KC17(:)*PCONC(:,108) +! +!WC_AHMS/WC_H2SO4=0.0 +! +!WC_AHMS/WC_RO21=0.0 +! +!WC_AHMS/WC_RO25=0.0 +! +!WC_AHMS/WC_MEOH=0.0 +! +!WC_AHMS/WC_ETOH=0.0 +! +!WC_AHMS/WC_ALCH=0.0 +! +!WC_AHMS/WC_HCHO=+KC17*<WC_SO2> + PJAC(:,124,108)=+TPK%KC17(:)*PCONC(:,101) +! +!WC_AHMS/WC_ALD2=0.0 +! +!WC_AHMS/WC_GLY=0.0 +! +!WC_AHMS/WC_MGLY=0.0 +! +!WC_AHMS/WC_KETL=0.0 +! +!WC_AHMS/WC_ORA1=0.0 +! +!WC_AHMS/WC_ORA2=0.0 +! +!WC_AHMS/WC_ACID=0.0 +! +!WC_AHMS/WC_RP16=0.0 +! +!WC_AHMS/WC_UR21=0.0 +! +!WC_AHMS/WC_UR28=0.0 +! +!WC_AHMS/WC_ACID2=0.0 +! +!WC_AHMS/WC_ASO3=0.0 +! +!WC_AHMS/WC_ASO4=0.0 +! +!WC_AHMS/WC_ASO5=0.0 +! +!WC_AHMS/WC_AHSO5=0.0 +! +!WC_AHMS/WC_AHMS=-KC18-KC19*<WC_OH> + PJAC(:,124,124)=-TPK%KC18(:)-TPK%KC19(:)*PCONC(:,98) +! +!WC_AHMS/WR_O3=0.0 +! +!WC_AHMS/WR_H2O2=0.0 +! +!WC_AHMS/WR_NO=0.0 +! +!WC_AHMS/WR_NO2=0.0 +! +!WC_AHMS/WR_NO3=0.0 +! +!WC_AHMS/WR_N2O5=0.0 +! +!WC_AHMS/WR_HONO=0.0 +! +!WC_AHMS/WR_HNO3=0.0 +! +!WC_AHMS/WR_HNO4=0.0 +! +!WC_AHMS/WR_NH3=0.0 +! +!WC_AHMS/WR_OH=0.0 +! +!WC_AHMS/WR_HO2=0.0 +! +!WC_AHMS/WR_CO2=0.0 +! +!WC_AHMS/WR_SO2=0.0 +! +!WC_AHMS/WR_H2SO4=0.0 +! +!WC_AHMS/WR_RO21=0.0 +! +!WC_AHMS/WR_RO25=0.0 +! +!WC_AHMS/WR_MEOH=0.0 +! +!WC_AHMS/WR_ETOH=0.0 +! +!WC_AHMS/WR_ALCH=0.0 +! +!WC_AHMS/WR_HCHO=0.0 +! +!WC_AHMS/WR_ALD2=0.0 +! +!WC_AHMS/WR_GLY=0.0 +! +!WC_AHMS/WR_MGLY=0.0 +! +!WC_AHMS/WR_KETL=0.0 +! +!WC_AHMS/WR_ORA1=0.0 +! +!WC_AHMS/WR_ORA2=0.0 +! +!WC_AHMS/WR_ACID=0.0 +! +!WC_AHMS/WR_RP16=0.0 +! +!WC_AHMS/WR_UR21=0.0 +! +!WC_AHMS/WR_UR28=0.0 +! +!WC_AHMS/WR_ACID2=0.0 +! +!WC_AHMS/WR_ASO3=0.0 +! +!WC_AHMS/WR_ASO4=0.0 +! +!WC_AHMS/WR_ASO5=0.0 +! +!WC_AHMS/WR_AHSO5=0.0 +! +!WC_AHMS/WR_AHMS=0.0 +! +!WR_O3/NO=0.0 +! +!WR_O3/NO2=0.0 +! +!WR_O3/O3=+KTR1 + PJAC(:,125,3)=+TPK%KTR1(:) +! +!WR_O3/HONO=0.0 +! +!WR_O3/HNO3=0.0 +! +!WR_O3/HNO4=0.0 +! +!WR_O3/N2O5=0.0 +! +!WR_O3/NO3=0.0 +! +!WR_O3/NH3=0.0 +! +!WR_O3/HO2=0.0 +! +!WR_O3/CO=0.0 +! +!WR_O3/H2O2=0.0 +! +!WR_O3/SO2=0.0 +! +!WR_O3/H2SO4=0.0 +! +!WR_O3/OH=0.0 +! +!WR_O3/ETHE=0.0 +! +!WR_O3/OLEL=0.0 +! +!WR_O3/OLEH=0.0 +! +!WR_O3/ALKL=0.0 +! +!WR_O3/ALKM=0.0 +! +!WR_O3/ALKH=0.0 +! +!WR_O3/AROH=0.0 +! +!WR_O3/AROL=0.0 +! +!WR_O3/AROO=0.0 +! +!WR_O3/ARAL=0.0 +! +!WR_O3/ARAC=0.0 +! +!WR_O3/PAH=0.0 +! +!WR_O3/HCHO=0.0 +! +!WR_O3/ALD2=0.0 +! +!WR_O3/KETL=0.0 +! +!WR_O3/KETH=0.0 +! +!WR_O3/MEOH=0.0 +! +!WR_O3/ETOH=0.0 +! +!WR_O3/ALCH=0.0 +! +!WR_O3/ISOP=0.0 +! +!WR_O3/BIOL=0.0 +! +!WR_O3/BIOH=0.0 +! +!WR_O3/MTBE=0.0 +! +!WR_O3/MVK=0.0 +! +!WR_O3/MCR=0.0 +! +!WR_O3/MGLY=0.0 +! +!WR_O3/GLY=0.0 +! +!WR_O3/ORA1=0.0 +! +!WR_O3/ORA2=0.0 +! +!WR_O3/ACID=0.0 +! +!WR_O3/UR28=0.0 +! +!WR_O3/UR21=0.0 +! +!WR_O3/URG2=0.0 +! +!WR_O3/UR26=0.0 +! +!WR_O3/RPG2=0.0 +! +!WR_O3/RP18=0.0 +! +!WR_O3/RPG3=0.0 +! +!WR_O3/URG4=0.0 +! +!WR_O3/UR8=0.0 +! +!WR_O3/UR17=0.0 +! +!WR_O3/UR7=0.0 +! +!WR_O3/RPR3=0.0 +! +!WR_O3/URG6=0.0 +! +!WR_O3/UR22=0.0 +! +!WR_O3/URG7=0.0 +! +!WR_O3/RPR4=0.0 +! +!WR_O3/RPR7=0.0 +! +!WR_O3/RPG7=0.0 +! +!WR_O3/URG8=0.0 +! +!WR_O3/UR19=0.0 +! +!WR_O3/URG9=0.0 +! +!WR_O3/AP7=0.0 +! +!WR_O3/URG10=0.0 +! +!WR_O3/RPR1=0.0 +! +!WR_O3/RPR5=0.0 +! +!WR_O3/RPR8=0.0 +! +!WR_O3/RP10=0.0 +! +!WR_O3/RP11=0.0 +! +!WR_O3/RP16=0.0 +! +!WR_O3/RPRL=0.0 +! +!WR_O3/APAN=0.0 +! +!WR_O3/PAN1=0.0 +! +!WR_O3/PAN2=0.0 +! +!WR_O3/PAN3=0.0 +! +!WR_O3/PAN4=0.0 +! +!WR_O3/PAN6=0.0 +! +!WR_O3/PAN7=0.0 +! +!WR_O3/PAN8=0.0 +! +!WR_O3/PN10=0.0 +! +!WR_O3/RO2T=0.0 +! +!WR_O3/RO21=0.0 +! +!WR_O3/RO25=0.0 +! +!WR_O3/WC_O3=0.0 +! +!WR_O3/WC_H2O2=0.0 +! +!WR_O3/WC_NO=0.0 +! +!WR_O3/WC_NO2=0.0 +! +!WR_O3/WC_NO3=0.0 +! +!WR_O3/WC_N2O5=0.0 +! +!WR_O3/WC_HONO=0.0 +! +!WR_O3/WC_HNO3=0.0 +! +!WR_O3/WC_HNO4=0.0 +! +!WR_O3/WC_NH3=0.0 +! +!WR_O3/WC_OH=0.0 +! +!WR_O3/WC_HO2=0.0 +! +!WR_O3/WC_CO2=0.0 +! +!WR_O3/WC_SO2=0.0 +! +!WR_O3/WC_H2SO4=0.0 +! +!WR_O3/WC_RO21=0.0 +! +!WR_O3/WC_RO25=0.0 +! +!WR_O3/WC_MEOH=0.0 +! +!WR_O3/WC_ETOH=0.0 +! +!WR_O3/WC_ALCH=0.0 +! +!WR_O3/WC_HCHO=0.0 +! +!WR_O3/WC_ALD2=0.0 +! +!WR_O3/WC_GLY=0.0 +! +!WR_O3/WC_MGLY=0.0 +! +!WR_O3/WC_KETL=0.0 +! +!WR_O3/WC_ORA1=0.0 +! +!WR_O3/WC_ORA2=0.0 +! +!WR_O3/WC_ACID=0.0 +! +!WR_O3/WC_RP16=0.0 +! +!WR_O3/WC_UR21=0.0 +! +!WR_O3/WC_UR28=0.0 +! +!WR_O3/WC_ACID2=0.0 +! +!WR_O3/WC_ASO3=0.0 +! +!WR_O3/WC_ASO4=0.0 +! +!WR_O3/WC_ASO5=0.0 +! +!WR_O3/WC_AHSO5=0.0 +! +!WR_O3/WC_AHMS=0.0 +! +!WR_O3/WR_O3=-KTR32-KR6*<WR_HO2>-KR25*<WR_SO2> + PJAC(:,125,125)=-TPK%KTR32(:)-TPK%KR6(:)*PCONC(:,136)-TPK%KR25(:)*PCONC(:,138) +! +!WR_O3/WR_H2O2=0.0 +! +!WR_O3/WR_NO=0.0 +! +!WR_O3/WR_NO2=0.0 +! +!WR_O3/WR_NO3=0.0 +! +!WR_O3/WR_N2O5=0.0 +! +!WR_O3/WR_HONO=0.0 +! +!WR_O3/WR_HNO3=0.0 +! +!WR_O3/WR_HNO4=0.0 +! +!WR_O3/WR_NH3=0.0 +! +!WR_O3/WR_OH=0.0 +! +!WR_O3/WR_HO2=-KR6*<WR_O3> + PJAC(:,125,136)=-TPK%KR6(:)*PCONC(:,125) +! +!WR_O3/WR_CO2=0.0 +! +!WR_O3/WR_SO2=-KR25*<WR_O3> + PJAC(:,125,138)=-TPK%KR25(:)*PCONC(:,125) +! +!WR_O3/WR_H2SO4=0.0 +! +!WR_O3/WR_RO21=0.0 +! +!WR_O3/WR_RO25=0.0 +! +!WR_O3/WR_MEOH=0.0 +! +!WR_O3/WR_ETOH=0.0 +! +!WR_O3/WR_ALCH=0.0 +! +!WR_O3/WR_HCHO=0.0 +! +!WR_O3/WR_ALD2=0.0 +! +!WR_O3/WR_GLY=0.0 +! +!WR_O3/WR_MGLY=0.0 +! +!WR_O3/WR_KETL=0.0 +! +!WR_O3/WR_ORA1=0.0 +! +!WR_O3/WR_ORA2=0.0 +! +!WR_O3/WR_ACID=0.0 +! +!WR_O3/WR_RP16=0.0 +! +!WR_O3/WR_UR21=0.0 +! +!WR_O3/WR_UR28=0.0 +! +!WR_O3/WR_ACID2=0.0 +! +!WR_O3/WR_ASO3=0.0 +! +!WR_O3/WR_ASO4=0.0 +! +!WR_O3/WR_ASO5=0.0 +! +!WR_O3/WR_AHSO5=0.0 +! +!WR_O3/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ24 +! +SUBROUTINE SUBJ25 +! +!Indices 126 a 130 +! +! +!WR_H2O2/NO=0.0 +! +!WR_H2O2/NO2=0.0 +! +!WR_H2O2/O3=0.0 +! +!WR_H2O2/HONO=0.0 +! +!WR_H2O2/HNO3=0.0 +! +!WR_H2O2/HNO4=0.0 +! +!WR_H2O2/N2O5=0.0 +! +!WR_H2O2/NO3=0.0 +! +!WR_H2O2/NH3=0.0 +! +!WR_H2O2/HO2=0.0 +! +!WR_H2O2/CO=0.0 +! +!WR_H2O2/H2O2=+KTR2 + PJAC(:,126,12)=+TPK%KTR2(:) +! +!WR_H2O2/SO2=0.0 +! +!WR_H2O2/H2SO4=0.0 +! +!WR_H2O2/OH=0.0 +! +!WR_H2O2/ETHE=0.0 +! +!WR_H2O2/OLEL=0.0 +! +!WR_H2O2/OLEH=0.0 +! +!WR_H2O2/ALKL=0.0 +! +!WR_H2O2/ALKM=0.0 +! +!WR_H2O2/ALKH=0.0 +! +!WR_H2O2/AROH=0.0 +! +!WR_H2O2/AROL=0.0 +! +!WR_H2O2/AROO=0.0 +! +!WR_H2O2/ARAL=0.0 +! +!WR_H2O2/ARAC=0.0 +! +!WR_H2O2/PAH=0.0 +! +!WR_H2O2/HCHO=0.0 +! +!WR_H2O2/ALD2=0.0 +! +!WR_H2O2/KETL=0.0 +! +!WR_H2O2/KETH=0.0 +! +!WR_H2O2/MEOH=0.0 +! +!WR_H2O2/ETOH=0.0 +! +!WR_H2O2/ALCH=0.0 +! +!WR_H2O2/ISOP=0.0 +! +!WR_H2O2/BIOL=0.0 +! +!WR_H2O2/BIOH=0.0 +! +!WR_H2O2/MTBE=0.0 +! +!WR_H2O2/MVK=0.0 +! +!WR_H2O2/MCR=0.0 +! +!WR_H2O2/MGLY=0.0 +! +!WR_H2O2/GLY=0.0 +! +!WR_H2O2/ORA1=0.0 +! +!WR_H2O2/ORA2=0.0 +! +!WR_H2O2/ACID=0.0 +! +!WR_H2O2/UR28=0.0 +! +!WR_H2O2/UR21=0.0 +! +!WR_H2O2/URG2=0.0 +! +!WR_H2O2/UR26=0.0 +! +!WR_H2O2/RPG2=0.0 +! +!WR_H2O2/RP18=0.0 +! +!WR_H2O2/RPG3=0.0 +! +!WR_H2O2/URG4=0.0 +! +!WR_H2O2/UR8=0.0 +! +!WR_H2O2/UR17=0.0 +! +!WR_H2O2/UR7=0.0 +! +!WR_H2O2/RPR3=0.0 +! +!WR_H2O2/URG6=0.0 +! +!WR_H2O2/UR22=0.0 +! +!WR_H2O2/URG7=0.0 +! +!WR_H2O2/RPR4=0.0 +! +!WR_H2O2/RPR7=0.0 +! +!WR_H2O2/RPG7=0.0 +! +!WR_H2O2/URG8=0.0 +! +!WR_H2O2/UR19=0.0 +! +!WR_H2O2/URG9=0.0 +! +!WR_H2O2/AP7=0.0 +! +!WR_H2O2/URG10=0.0 +! +!WR_H2O2/RPR1=0.0 +! +!WR_H2O2/RPR5=0.0 +! +!WR_H2O2/RPR8=0.0 +! +!WR_H2O2/RP10=0.0 +! +!WR_H2O2/RP11=0.0 +! +!WR_H2O2/RP16=0.0 +! +!WR_H2O2/RPRL=0.0 +! +!WR_H2O2/APAN=0.0 +! +!WR_H2O2/PAN1=0.0 +! +!WR_H2O2/PAN2=0.0 +! +!WR_H2O2/PAN3=0.0 +! +!WR_H2O2/PAN4=0.0 +! +!WR_H2O2/PAN6=0.0 +! +!WR_H2O2/PAN7=0.0 +! +!WR_H2O2/PAN8=0.0 +! +!WR_H2O2/PN10=0.0 +! +!WR_H2O2/RO2T=0.0 +! +!WR_H2O2/RO21=0.0 +! +!WR_H2O2/RO25=0.0 +! +!WR_H2O2/WC_O3=0.0 +! +!WR_H2O2/WC_H2O2=0.0 +! +!WR_H2O2/WC_NO=0.0 +! +!WR_H2O2/WC_NO2=0.0 +! +!WR_H2O2/WC_NO3=0.0 +! +!WR_H2O2/WC_N2O5=0.0 +! +!WR_H2O2/WC_HONO=0.0 +! +!WR_H2O2/WC_HNO3=0.0 +! +!WR_H2O2/WC_HNO4=0.0 +! +!WR_H2O2/WC_NH3=0.0 +! +!WR_H2O2/WC_OH=0.0 +! +!WR_H2O2/WC_HO2=0.0 +! +!WR_H2O2/WC_CO2=0.0 +! +!WR_H2O2/WC_SO2=0.0 +! +!WR_H2O2/WC_H2SO4=0.0 +! +!WR_H2O2/WC_RO21=0.0 +! +!WR_H2O2/WC_RO25=0.0 +! +!WR_H2O2/WC_MEOH=0.0 +! +!WR_H2O2/WC_ETOH=0.0 +! +!WR_H2O2/WC_ALCH=0.0 +! +!WR_H2O2/WC_HCHO=0.0 +! +!WR_H2O2/WC_ALD2=0.0 +! +!WR_H2O2/WC_GLY=0.0 +! +!WR_H2O2/WC_MGLY=0.0 +! +!WR_H2O2/WC_KETL=0.0 +! +!WR_H2O2/WC_ORA1=0.0 +! +!WR_H2O2/WC_ORA2=0.0 +! +!WR_H2O2/WC_ACID=0.0 +! +!WR_H2O2/WC_RP16=0.0 +! +!WR_H2O2/WC_UR21=0.0 +! +!WR_H2O2/WC_UR28=0.0 +! +!WR_H2O2/WC_ACID2=0.0 +! +!WR_H2O2/WC_ASO3=0.0 +! +!WR_H2O2/WC_ASO4=0.0 +! +!WR_H2O2/WC_ASO5=0.0 +! +!WR_H2O2/WC_AHSO5=0.0 +! +!WR_H2O2/WC_AHMS=0.0 +! +!WR_H2O2/WR_O3=0.0 +! +!WR_H2O2/WR_H2O2=-KTR33-KR1-KR4*<WR_OH>-KR26*<WR_SO2> + PJAC(:,126,126)=-TPK%KTR33(:)-TPK%KR1(:)-TPK%KR4(:)*PCONC(:,135)-TPK%KR26(:)*P& +&CONC(:,138) +! +!WR_H2O2/WR_NO=0.0 +! +!WR_H2O2/WR_NO2=0.0 +! +!WR_H2O2/WR_NO3=0.0 +! +!WR_H2O2/WR_N2O5=0.0 +! +!WR_H2O2/WR_HONO=0.0 +! +!WR_H2O2/WR_HNO3=0.0 +! +!WR_H2O2/WR_HNO4=0.0 +! +!WR_H2O2/WR_NH3=0.0 +! +!WR_H2O2/WR_OH=+KR2*<WR_OH>+KR2*<WR_OH>-KR4*<WR_H2O2>+KR37*<WR_KETL>+0.5*KR39*< +!WR_ORA2>+0.29*KR41*<WR_ACID>+0.3*KR43*<WR_UR21>+0.45*KR45*<WR_RP16> + PJAC(:,126,135)=+TPK%KR2(:)*PCONC(:,135)+TPK%KR2(:)*PCONC(:,135)-TPK%KR4(:)*PC& +&ONC(:,126)+TPK%KR37(:)*PCONC(:,149)+0.5*TPK%KR39(:)*PCONC(:,151)+0.29*TPK%KR41& +&(:)*PCONC(:,152)+0.3*TPK%KR43(:)*PCONC(:,154)+0.45*TPK%KR45(:)*PCONC(:,153) +! +!WR_H2O2/WR_HO2=+KR5*<WR_HO2>+KR5*<WR_HO2> + PJAC(:,126,136)=+TPK%KR5(:)*PCONC(:,136)+TPK%KR5(:)*PCONC(:,136) +! +!WR_H2O2/WR_CO2=0.0 +! +!WR_H2O2/WR_SO2=-KR26*<WR_H2O2> + PJAC(:,126,138)=-TPK%KR26(:)*PCONC(:,126) +! +!WR_H2O2/WR_H2SO4=0.0 +! +!WR_H2O2/WR_RO21=0.0 +! +!WR_H2O2/WR_RO25=+KR29*<WR_RO25>+KR29*<WR_RO25> + PJAC(:,126,141)=+TPK%KR29(:)*PCONC(:,141)+TPK%KR29(:)*PCONC(:,141) +! +!WR_H2O2/WR_MEOH=0.0 +! +!WR_H2O2/WR_ETOH=0.0 +! +!WR_H2O2/WR_ALCH=0.0 +! +!WR_H2O2/WR_HCHO=0.0 +! +!WR_H2O2/WR_ALD2=0.0 +! +!WR_H2O2/WR_GLY=0.0 +! +!WR_H2O2/WR_MGLY=0.0 +! +!WR_H2O2/WR_KETL=+KR37*<WR_OH> + PJAC(:,126,149)=+TPK%KR37(:)*PCONC(:,135) +! +!WR_H2O2/WR_ORA1=0.0 +! +!WR_H2O2/WR_ORA2=+0.5*KR39*<WR_OH> + PJAC(:,126,151)=+0.5*TPK%KR39(:)*PCONC(:,135) +! +!WR_H2O2/WR_ACID=+0.29*KR41*<WR_OH> + PJAC(:,126,152)=+0.29*TPK%KR41(:)*PCONC(:,135) +! +!WR_H2O2/WR_RP16=+0.45*KR45*<WR_OH> + PJAC(:,126,153)=+0.45*TPK%KR45(:)*PCONC(:,135) +! +!WR_H2O2/WR_UR21=+0.3*KR43*<WR_OH> + PJAC(:,126,154)=+0.3*TPK%KR43(:)*PCONC(:,135) +! +!WR_H2O2/WR_UR28=0.0 +! +!WR_H2O2/WR_ACID2=0.0 +! +!WR_H2O2/WR_ASO3=0.0 +! +!WR_H2O2/WR_ASO4=0.0 +! +!WR_H2O2/WR_ASO5=0.0 +! +!WR_H2O2/WR_AHSO5=0.0 +! +!WR_H2O2/WR_AHMS=0.0 +! +!WR_NO/NO=+KTR3 + PJAC(:,127,1)=+TPK%KTR3(:) +! +!WR_NO/NO2=0.0 +! +!WR_NO/O3=0.0 +! +!WR_NO/HONO=0.0 +! +!WR_NO/HNO3=0.0 +! +!WR_NO/HNO4=0.0 +! +!WR_NO/N2O5=0.0 +! +!WR_NO/NO3=0.0 +! +!WR_NO/NH3=0.0 +! +!WR_NO/HO2=0.0 +! +!WR_NO/CO=0.0 +! +!WR_NO/H2O2=0.0 +! +!WR_NO/SO2=0.0 +! +!WR_NO/H2SO4=0.0 +! +!WR_NO/OH=0.0 +! +!WR_NO/ETHE=0.0 +! +!WR_NO/OLEL=0.0 +! +!WR_NO/OLEH=0.0 +! +!WR_NO/ALKL=0.0 +! +!WR_NO/ALKM=0.0 +! +!WR_NO/ALKH=0.0 +! +!WR_NO/AROH=0.0 +! +!WR_NO/AROL=0.0 +! +!WR_NO/AROO=0.0 +! +!WR_NO/ARAL=0.0 +! +!WR_NO/ARAC=0.0 +! +!WR_NO/PAH=0.0 +! +!WR_NO/HCHO=0.0 +! +!WR_NO/ALD2=0.0 +! +!WR_NO/KETL=0.0 +! +!WR_NO/KETH=0.0 +! +!WR_NO/MEOH=0.0 +! +!WR_NO/ETOH=0.0 +! +!WR_NO/ALCH=0.0 +! +!WR_NO/ISOP=0.0 +! +!WR_NO/BIOL=0.0 +! +!WR_NO/BIOH=0.0 +! +!WR_NO/MTBE=0.0 +! +!WR_NO/MVK=0.0 +! +!WR_NO/MCR=0.0 +! +!WR_NO/MGLY=0.0 +! +!WR_NO/GLY=0.0 +! +!WR_NO/ORA1=0.0 +! +!WR_NO/ORA2=0.0 +! +!WR_NO/ACID=0.0 +! +!WR_NO/UR28=0.0 +! +!WR_NO/UR21=0.0 +! +!WR_NO/URG2=0.0 +! +!WR_NO/UR26=0.0 +! +!WR_NO/RPG2=0.0 +! +!WR_NO/RP18=0.0 +! +!WR_NO/RPG3=0.0 +! +!WR_NO/URG4=0.0 +! +!WR_NO/UR8=0.0 +! +!WR_NO/UR17=0.0 +! +!WR_NO/UR7=0.0 +! +!WR_NO/RPR3=0.0 +! +!WR_NO/URG6=0.0 +! +!WR_NO/UR22=0.0 +! +!WR_NO/URG7=0.0 +! +!WR_NO/RPR4=0.0 +! +!WR_NO/RPR7=0.0 +! +!WR_NO/RPG7=0.0 +! +!WR_NO/URG8=0.0 +! +!WR_NO/UR19=0.0 +! +!WR_NO/URG9=0.0 +! +!WR_NO/AP7=0.0 +! +!WR_NO/URG10=0.0 +! +!WR_NO/RPR1=0.0 +! +!WR_NO/RPR5=0.0 +! +!WR_NO/RPR8=0.0 +! +!WR_NO/RP10=0.0 +! +!WR_NO/RP11=0.0 +! +!WR_NO/RP16=0.0 +! +!WR_NO/RPRL=0.0 +! +!WR_NO/APAN=0.0 +! +!WR_NO/PAN1=0.0 +! +!WR_NO/PAN2=0.0 +! +!WR_NO/PAN3=0.0 +! +!WR_NO/PAN4=0.0 +! +!WR_NO/PAN6=0.0 +! +!WR_NO/PAN7=0.0 +! +!WR_NO/PAN8=0.0 +! +!WR_NO/PN10=0.0 +! +!WR_NO/RO2T=0.0 +! +!WR_NO/RO21=0.0 +! +!WR_NO/RO25=0.0 +! +!WR_NO/WC_O3=0.0 +! +!WR_NO/WC_H2O2=0.0 +! +!WR_NO/WC_NO=0.0 +! +!WR_NO/WC_NO2=0.0 +! +!WR_NO/WC_NO3=0.0 +! +!WR_NO/WC_N2O5=0.0 +! +!WR_NO/WC_HONO=0.0 +! +!WR_NO/WC_HNO3=0.0 +! +!WR_NO/WC_HNO4=0.0 +! +!WR_NO/WC_NH3=0.0 +! +!WR_NO/WC_OH=0.0 +! +!WR_NO/WC_HO2=0.0 +! +!WR_NO/WC_CO2=0.0 +! +!WR_NO/WC_SO2=0.0 +! +!WR_NO/WC_H2SO4=0.0 +! +!WR_NO/WC_RO21=0.0 +! +!WR_NO/WC_RO25=0.0 +! +!WR_NO/WC_MEOH=0.0 +! +!WR_NO/WC_ETOH=0.0 +! +!WR_NO/WC_ALCH=0.0 +! +!WR_NO/WC_HCHO=0.0 +! +!WR_NO/WC_ALD2=0.0 +! +!WR_NO/WC_GLY=0.0 +! +!WR_NO/WC_MGLY=0.0 +! +!WR_NO/WC_KETL=0.0 +! +!WR_NO/WC_ORA1=0.0 +! +!WR_NO/WC_ORA2=0.0 +! +!WR_NO/WC_ACID=0.0 +! +!WR_NO/WC_RP16=0.0 +! +!WR_NO/WC_UR21=0.0 +! +!WR_NO/WC_UR28=0.0 +! +!WR_NO/WC_ACID2=0.0 +! +!WR_NO/WC_ASO3=0.0 +! +!WR_NO/WC_ASO4=0.0 +! +!WR_NO/WC_ASO5=0.0 +! +!WR_NO/WC_AHSO5=0.0 +! +!WR_NO/WC_AHMS=0.0 +! +!WR_NO/WR_O3=0.0 +! +!WR_NO/WR_H2O2=0.0 +! +!WR_NO/WR_NO=-KTR34 + PJAC(:,127,127)=-TPK%KTR34(:) +! +!WR_NO/WR_NO2=0.0 +! +!WR_NO/WR_NO3=0.0 +! +!WR_NO/WR_N2O5=0.0 +! +!WR_NO/WR_HONO=0.0 +! +!WR_NO/WR_HNO3=0.0 +! +!WR_NO/WR_HNO4=0.0 +! +!WR_NO/WR_NH3=0.0 +! +!WR_NO/WR_OH=0.0 +! +!WR_NO/WR_HO2=0.0 +! +!WR_NO/WR_CO2=0.0 +! +!WR_NO/WR_SO2=0.0 +! +!WR_NO/WR_H2SO4=0.0 +! +!WR_NO/WR_RO21=0.0 +! +!WR_NO/WR_RO25=0.0 +! +!WR_NO/WR_MEOH=0.0 +! +!WR_NO/WR_ETOH=0.0 +! +!WR_NO/WR_ALCH=0.0 +! +!WR_NO/WR_HCHO=0.0 +! +!WR_NO/WR_ALD2=0.0 +! +!WR_NO/WR_GLY=0.0 +! +!WR_NO/WR_MGLY=0.0 +! +!WR_NO/WR_KETL=0.0 +! +!WR_NO/WR_ORA1=0.0 +! +!WR_NO/WR_ORA2=0.0 +! +!WR_NO/WR_ACID=0.0 +! +!WR_NO/WR_RP16=0.0 +! +!WR_NO/WR_UR21=0.0 +! +!WR_NO/WR_UR28=0.0 +! +!WR_NO/WR_ACID2=0.0 +! +!WR_NO/WR_ASO3=0.0 +! +!WR_NO/WR_ASO4=0.0 +! +!WR_NO/WR_ASO5=0.0 +! +!WR_NO/WR_AHSO5=0.0 +! +!WR_NO/WR_AHMS=0.0 +! +!WR_NO2/NO=0.0 +! +!WR_NO2/NO2=+KTR4 + PJAC(:,128,2)=+TPK%KTR4(:) +! +!WR_NO2/O3=0.0 +! +!WR_NO2/HONO=0.0 +! +!WR_NO2/HNO3=0.0 +! +!WR_NO2/HNO4=0.0 +! +!WR_NO2/N2O5=0.0 +! +!WR_NO2/NO3=0.0 +! +!WR_NO2/NH3=0.0 +! +!WR_NO2/HO2=0.0 +! +!WR_NO2/CO=0.0 +! +!WR_NO2/H2O2=0.0 +! +!WR_NO2/SO2=0.0 +! +!WR_NO2/H2SO4=0.0 +! +!WR_NO2/OH=0.0 +! +!WR_NO2/ETHE=0.0 +! +!WR_NO2/OLEL=0.0 +! +!WR_NO2/OLEH=0.0 +! +!WR_NO2/ALKL=0.0 +! +!WR_NO2/ALKM=0.0 +! +!WR_NO2/ALKH=0.0 +! +!WR_NO2/AROH=0.0 +! +!WR_NO2/AROL=0.0 +! +!WR_NO2/AROO=0.0 +! +!WR_NO2/ARAL=0.0 +! +!WR_NO2/ARAC=0.0 +! +!WR_NO2/PAH=0.0 +! +!WR_NO2/HCHO=0.0 +! +!WR_NO2/ALD2=0.0 +! +!WR_NO2/KETL=0.0 +! +!WR_NO2/KETH=0.0 +! +!WR_NO2/MEOH=0.0 +! +!WR_NO2/ETOH=0.0 +! +!WR_NO2/ALCH=0.0 +! +!WR_NO2/ISOP=0.0 +! +!WR_NO2/BIOL=0.0 +! +!WR_NO2/BIOH=0.0 +! +!WR_NO2/MTBE=0.0 +! +!WR_NO2/MVK=0.0 +! +!WR_NO2/MCR=0.0 +! +!WR_NO2/MGLY=0.0 +! +!WR_NO2/GLY=0.0 +! +!WR_NO2/ORA1=0.0 +! +!WR_NO2/ORA2=0.0 +! +!WR_NO2/ACID=0.0 +! +!WR_NO2/UR28=0.0 +! +!WR_NO2/UR21=0.0 +! +!WR_NO2/URG2=0.0 +! +!WR_NO2/UR26=0.0 +! +!WR_NO2/RPG2=0.0 +! +!WR_NO2/RP18=0.0 +! +!WR_NO2/RPG3=0.0 +! +!WR_NO2/URG4=0.0 +! +!WR_NO2/UR8=0.0 +! +!WR_NO2/UR17=0.0 +! +!WR_NO2/UR7=0.0 +! +!WR_NO2/RPR3=0.0 +! +!WR_NO2/URG6=0.0 +! +!WR_NO2/UR22=0.0 +! +!WR_NO2/URG7=0.0 +! +!WR_NO2/RPR4=0.0 +! +!WR_NO2/RPR7=0.0 +! +!WR_NO2/RPG7=0.0 +! +!WR_NO2/URG8=0.0 +! +!WR_NO2/UR19=0.0 +! +!WR_NO2/URG9=0.0 +! +!WR_NO2/AP7=0.0 +! +!WR_NO2/URG10=0.0 +! +!WR_NO2/RPR1=0.0 +! +!WR_NO2/RPR5=0.0 +! +!WR_NO2/RPR8=0.0 +! +!WR_NO2/RP10=0.0 +! +!WR_NO2/RP11=0.0 +! +!WR_NO2/RP16=0.0 +! +!WR_NO2/RPRL=0.0 +! +!WR_NO2/APAN=0.0 +! +!WR_NO2/PAN1=0.0 +! +!WR_NO2/PAN2=0.0 +! +!WR_NO2/PAN3=0.0 +! +!WR_NO2/PAN4=0.0 +! +!WR_NO2/PAN6=0.0 +! +!WR_NO2/PAN7=0.0 +! +!WR_NO2/PAN8=0.0 +! +!WR_NO2/PN10=0.0 +! +!WR_NO2/RO2T=0.0 +! +!WR_NO2/RO21=0.0 +! +!WR_NO2/RO25=0.0 +! +!WR_NO2/WC_O3=0.0 +! +!WR_NO2/WC_H2O2=0.0 +! +!WR_NO2/WC_NO=0.0 +! +!WR_NO2/WC_NO2=0.0 +! +!WR_NO2/WC_NO3=0.0 +! +!WR_NO2/WC_N2O5=0.0 +! +!WR_NO2/WC_HONO=0.0 +! +!WR_NO2/WC_HNO3=0.0 +! +!WR_NO2/WC_HNO4=0.0 +! +!WR_NO2/WC_NH3=0.0 +! +!WR_NO2/WC_OH=0.0 +! +!WR_NO2/WC_HO2=0.0 +! +!WR_NO2/WC_CO2=0.0 +! +!WR_NO2/WC_SO2=0.0 +! +!WR_NO2/WC_H2SO4=0.0 +! +!WR_NO2/WC_RO21=0.0 +! +!WR_NO2/WC_RO25=0.0 +! +!WR_NO2/WC_MEOH=0.0 +! +!WR_NO2/WC_ETOH=0.0 +! +!WR_NO2/WC_ALCH=0.0 +! +!WR_NO2/WC_HCHO=0.0 +! +!WR_NO2/WC_ALD2=0.0 +! +!WR_NO2/WC_GLY=0.0 +! +!WR_NO2/WC_MGLY=0.0 +! +!WR_NO2/WC_KETL=0.0 +! +!WR_NO2/WC_ORA1=0.0 +! +!WR_NO2/WC_ORA2=0.0 +! +!WR_NO2/WC_ACID=0.0 +! +!WR_NO2/WC_RP16=0.0 +! +!WR_NO2/WC_UR21=0.0 +! +!WR_NO2/WC_UR28=0.0 +! +!WR_NO2/WC_ACID2=0.0 +! +!WR_NO2/WC_ASO3=0.0 +! +!WR_NO2/WC_ASO4=0.0 +! +!WR_NO2/WC_ASO5=0.0 +! +!WR_NO2/WC_AHSO5=0.0 +! +!WR_NO2/WC_AHMS=0.0 +! +!WR_NO2/WR_O3=0.0 +! +!WR_NO2/WR_H2O2=0.0 +! +!WR_NO2/WR_NO=0.0 +! +!WR_NO2/WR_NO2=-KTR35-KR9*<WR_HO2> + PJAC(:,128,128)=-TPK%KTR35(:)-TPK%KR9(:)*PCONC(:,136) +! +!WR_NO2/WR_NO3=0.0 +! +!WR_NO2/WR_N2O5=0.0 +! +!WR_NO2/WR_HONO=+KR8*<WR_OH> + PJAC(:,128,131)=+TPK%KR8(:)*PCONC(:,135) +! +!WR_NO2/WR_HNO3=+KR13 + PJAC(:,128,132)=+TPK%KR13(:) +! +!WR_NO2/WR_HNO4=+KR10 + PJAC(:,128,133)=+TPK%KR10(:) +! +!WR_NO2/WR_NH3=0.0 +! +!WR_NO2/WR_OH=+KR8*<WR_HONO> + PJAC(:,128,135)=+TPK%KR8(:)*PCONC(:,131) +! +!WR_NO2/WR_HO2=-KR9*<WR_NO2> + PJAC(:,128,136)=-TPK%KR9(:)*PCONC(:,128) +! +!WR_NO2/WR_CO2=0.0 +! +!WR_NO2/WR_SO2=0.0 +! +!WR_NO2/WR_H2SO4=0.0 +! +!WR_NO2/WR_RO21=0.0 +! +!WR_NO2/WR_RO25=0.0 +! +!WR_NO2/WR_MEOH=0.0 +! +!WR_NO2/WR_ETOH=0.0 +! +!WR_NO2/WR_ALCH=0.0 +! +!WR_NO2/WR_HCHO=0.0 +! +!WR_NO2/WR_ALD2=0.0 +! +!WR_NO2/WR_GLY=0.0 +! +!WR_NO2/WR_MGLY=0.0 +! +!WR_NO2/WR_KETL=0.0 +! +!WR_NO2/WR_ORA1=0.0 +! +!WR_NO2/WR_ORA2=0.0 +! +!WR_NO2/WR_ACID=0.0 +! +!WR_NO2/WR_RP16=0.0 +! +!WR_NO2/WR_UR21=0.0 +! +!WR_NO2/WR_UR28=0.0 +! +!WR_NO2/WR_ACID2=0.0 +! +!WR_NO2/WR_ASO3=0.0 +! +!WR_NO2/WR_ASO4=0.0 +! +!WR_NO2/WR_ASO5=0.0 +! +!WR_NO2/WR_AHSO5=0.0 +! +!WR_NO2/WR_AHMS=0.0 +! +!WR_NO3/NO=0.0 +! +!WR_NO3/NO2=0.0 +! +!WR_NO3/O3=0.0 +! +!WR_NO3/HONO=0.0 +! +!WR_NO3/HNO3=0.0 +! +!WR_NO3/HNO4=0.0 +! +!WR_NO3/N2O5=0.0 +! +!WR_NO3/NO3=+KTR5 + PJAC(:,129,8)=+TPK%KTR5(:) +! +!WR_NO3/NH3=0.0 +! +!WR_NO3/HO2=0.0 +! +!WR_NO3/CO=0.0 +! +!WR_NO3/H2O2=0.0 +! +!WR_NO3/SO2=0.0 +! +!WR_NO3/H2SO4=0.0 +! +!WR_NO3/OH=0.0 +! +!WR_NO3/ETHE=0.0 +! +!WR_NO3/OLEL=0.0 +! +!WR_NO3/OLEH=0.0 +! +!WR_NO3/ALKL=0.0 +! +!WR_NO3/ALKM=0.0 +! +!WR_NO3/ALKH=0.0 +! +!WR_NO3/AROH=0.0 +! +!WR_NO3/AROL=0.0 +! +!WR_NO3/AROO=0.0 +! +!WR_NO3/ARAL=0.0 +! +!WR_NO3/ARAC=0.0 +! +!WR_NO3/PAH=0.0 +! +!WR_NO3/HCHO=0.0 +! +!WR_NO3/ALD2=0.0 +! +!WR_NO3/KETL=0.0 +! +!WR_NO3/KETH=0.0 +! +!WR_NO3/MEOH=0.0 +! +!WR_NO3/ETOH=0.0 +! +!WR_NO3/ALCH=0.0 +! +!WR_NO3/ISOP=0.0 +! +!WR_NO3/BIOL=0.0 +! +!WR_NO3/BIOH=0.0 +! +!WR_NO3/MTBE=0.0 +! +!WR_NO3/MVK=0.0 +! +!WR_NO3/MCR=0.0 +! +!WR_NO3/MGLY=0.0 +! +!WR_NO3/GLY=0.0 +! +!WR_NO3/ORA1=0.0 +! +!WR_NO3/ORA2=0.0 +! +!WR_NO3/ACID=0.0 +! +!WR_NO3/UR28=0.0 +! +!WR_NO3/UR21=0.0 +! +!WR_NO3/URG2=0.0 +! +!WR_NO3/UR26=0.0 +! +!WR_NO3/RPG2=0.0 +! +!WR_NO3/RP18=0.0 +! +!WR_NO3/RPG3=0.0 +! +!WR_NO3/URG4=0.0 +! +!WR_NO3/UR8=0.0 +! +!WR_NO3/UR17=0.0 +! +!WR_NO3/UR7=0.0 +! +!WR_NO3/RPR3=0.0 +! +!WR_NO3/URG6=0.0 +! +!WR_NO3/UR22=0.0 +! +!WR_NO3/URG7=0.0 +! +!WR_NO3/RPR4=0.0 +! +!WR_NO3/RPR7=0.0 +! +!WR_NO3/RPG7=0.0 +! +!WR_NO3/URG8=0.0 +! +!WR_NO3/UR19=0.0 +! +!WR_NO3/URG9=0.0 +! +!WR_NO3/AP7=0.0 +! +!WR_NO3/URG10=0.0 +! +!WR_NO3/RPR1=0.0 +! +!WR_NO3/RPR5=0.0 +! +!WR_NO3/RPR8=0.0 +! +!WR_NO3/RP10=0.0 +! +!WR_NO3/RP11=0.0 +! +!WR_NO3/RP16=0.0 +! +!WR_NO3/RPRL=0.0 +! +!WR_NO3/APAN=0.0 +! +!WR_NO3/PAN1=0.0 +! +!WR_NO3/PAN2=0.0 +! +!WR_NO3/PAN3=0.0 +! +!WR_NO3/PAN4=0.0 +! +!WR_NO3/PAN6=0.0 +! +!WR_NO3/PAN7=0.0 +! +!WR_NO3/PAN8=0.0 +! +!WR_NO3/PN10=0.0 +! +!WR_NO3/RO2T=0.0 +! +!WR_NO3/RO21=0.0 +! +!WR_NO3/RO25=0.0 +! +!WR_NO3/WC_O3=0.0 +! +!WR_NO3/WC_H2O2=0.0 +! +!WR_NO3/WC_NO=0.0 +! +!WR_NO3/WC_NO2=0.0 +! +!WR_NO3/WC_NO3=0.0 +! +!WR_NO3/WC_N2O5=0.0 +! +!WR_NO3/WC_HONO=0.0 +! +!WR_NO3/WC_HNO3=0.0 +! +!WR_NO3/WC_HNO4=0.0 +! +!WR_NO3/WC_NH3=0.0 +! +!WR_NO3/WC_OH=0.0 +! +!WR_NO3/WC_HO2=0.0 +! +!WR_NO3/WC_CO2=0.0 +! +!WR_NO3/WC_SO2=0.0 +! +!WR_NO3/WC_H2SO4=0.0 +! +!WR_NO3/WC_RO21=0.0 +! +!WR_NO3/WC_RO25=0.0 +! +!WR_NO3/WC_MEOH=0.0 +! +!WR_NO3/WC_ETOH=0.0 +! +!WR_NO3/WC_ALCH=0.0 +! +!WR_NO3/WC_HCHO=0.0 +! +!WR_NO3/WC_ALD2=0.0 +! +!WR_NO3/WC_GLY=0.0 +! +!WR_NO3/WC_MGLY=0.0 +! +!WR_NO3/WC_KETL=0.0 +! +!WR_NO3/WC_ORA1=0.0 +! +!WR_NO3/WC_ORA2=0.0 +! +!WR_NO3/WC_ACID=0.0 +! +!WR_NO3/WC_RP16=0.0 +! +!WR_NO3/WC_UR21=0.0 +! +!WR_NO3/WC_UR28=0.0 +! +!WR_NO3/WC_ACID2=0.0 +! +!WR_NO3/WC_ASO3=0.0 +! +!WR_NO3/WC_ASO4=0.0 +! +!WR_NO3/WC_ASO5=0.0 +! +!WR_NO3/WC_AHSO5=0.0 +! +!WR_NO3/WC_AHMS=0.0 +! +!WR_NO3/WR_O3=0.0 +! +!WR_NO3/WR_H2O2=0.0 +! +!WR_NO3/WR_NO=0.0 +! +!WR_NO3/WR_NO2=0.0 +! +!WR_NO3/WR_NO3=-KTR36-KR15*<WR_H2SO4>-KR16*<WR_SO2> + PJAC(:,129,129)=-TPK%KTR36(:)-TPK%KR15(:)*PCONC(:,139)-TPK%KR16(:)*PCONC(:,138& +&) +! +!WR_NO3/WR_N2O5=0.0 +! +!WR_NO3/WR_HONO=0.0 +! +!WR_NO3/WR_HNO3=0.0 +! +!WR_NO3/WR_HNO4=0.0 +! +!WR_NO3/WR_NH3=0.0 +! +!WR_NO3/WR_OH=0.0 +! +!WR_NO3/WR_HO2=0.0 +! +!WR_NO3/WR_CO2=0.0 +! +!WR_NO3/WR_SO2=-KR16*<WR_NO3> + PJAC(:,129,138)=-TPK%KR16(:)*PCONC(:,129) +! +!WR_NO3/WR_H2SO4=-KR15*<WR_NO3> + PJAC(:,129,139)=-TPK%KR15(:)*PCONC(:,129) +! +!WR_NO3/WR_RO21=0.0 +! +!WR_NO3/WR_RO25=0.0 +! +!WR_NO3/WR_MEOH=0.0 +! +!WR_NO3/WR_ETOH=0.0 +! +!WR_NO3/WR_ALCH=0.0 +! +!WR_NO3/WR_HCHO=0.0 +! +!WR_NO3/WR_ALD2=0.0 +! +!WR_NO3/WR_GLY=0.0 +! +!WR_NO3/WR_MGLY=0.0 +! +!WR_NO3/WR_KETL=0.0 +! +!WR_NO3/WR_ORA1=0.0 +! +!WR_NO3/WR_ORA2=0.0 +! +!WR_NO3/WR_ACID=0.0 +! +!WR_NO3/WR_RP16=0.0 +! +!WR_NO3/WR_UR21=0.0 +! +!WR_NO3/WR_UR28=0.0 +! +!WR_NO3/WR_ACID2=0.0 +! +!WR_NO3/WR_ASO3=0.0 +! +!WR_NO3/WR_ASO4=0.0 +! +!WR_NO3/WR_ASO5=0.0 +! +!WR_NO3/WR_AHSO5=0.0 +! +!WR_NO3/WR_AHMS=0.0 +! +!WR_N2O5/NO=0.0 +! +!WR_N2O5/NO2=0.0 +! +!WR_N2O5/O3=0.0 +! +!WR_N2O5/HONO=0.0 +! +!WR_N2O5/HNO3=0.0 +! +!WR_N2O5/HNO4=0.0 +! +!WR_N2O5/N2O5=+KTR6 + PJAC(:,130,7)=+TPK%KTR6(:) +! +!WR_N2O5/NO3=0.0 +! +!WR_N2O5/NH3=0.0 +! +!WR_N2O5/HO2=0.0 +! +!WR_N2O5/CO=0.0 +! +!WR_N2O5/H2O2=0.0 +! +!WR_N2O5/SO2=0.0 +! +!WR_N2O5/H2SO4=0.0 +! +!WR_N2O5/OH=0.0 +! +!WR_N2O5/ETHE=0.0 +! +!WR_N2O5/OLEL=0.0 +! +!WR_N2O5/OLEH=0.0 +! +!WR_N2O5/ALKL=0.0 +! +!WR_N2O5/ALKM=0.0 +! +!WR_N2O5/ALKH=0.0 +! +!WR_N2O5/AROH=0.0 +! +!WR_N2O5/AROL=0.0 +! +!WR_N2O5/AROO=0.0 +! +!WR_N2O5/ARAL=0.0 +! +!WR_N2O5/ARAC=0.0 +! +!WR_N2O5/PAH=0.0 +! +!WR_N2O5/HCHO=0.0 +! +!WR_N2O5/ALD2=0.0 +! +!WR_N2O5/KETL=0.0 +! +!WR_N2O5/KETH=0.0 +! +!WR_N2O5/MEOH=0.0 +! +!WR_N2O5/ETOH=0.0 +! +!WR_N2O5/ALCH=0.0 +! +!WR_N2O5/ISOP=0.0 +! +!WR_N2O5/BIOL=0.0 +! +!WR_N2O5/BIOH=0.0 +! +!WR_N2O5/MTBE=0.0 +! +!WR_N2O5/MVK=0.0 +! +!WR_N2O5/MCR=0.0 +! +!WR_N2O5/MGLY=0.0 +! +!WR_N2O5/GLY=0.0 +! +!WR_N2O5/ORA1=0.0 +! +!WR_N2O5/ORA2=0.0 +! +!WR_N2O5/ACID=0.0 +! +!WR_N2O5/UR28=0.0 +! +!WR_N2O5/UR21=0.0 +! +!WR_N2O5/URG2=0.0 +! +!WR_N2O5/UR26=0.0 +! +!WR_N2O5/RPG2=0.0 +! +!WR_N2O5/RP18=0.0 +! +!WR_N2O5/RPG3=0.0 +! +!WR_N2O5/URG4=0.0 +! +!WR_N2O5/UR8=0.0 +! +!WR_N2O5/UR17=0.0 +! +!WR_N2O5/UR7=0.0 +! +!WR_N2O5/RPR3=0.0 +! +!WR_N2O5/URG6=0.0 +! +!WR_N2O5/UR22=0.0 +! +!WR_N2O5/URG7=0.0 +! +!WR_N2O5/RPR4=0.0 +! +!WR_N2O5/RPR7=0.0 +! +!WR_N2O5/RPG7=0.0 +! +!WR_N2O5/URG8=0.0 +! +!WR_N2O5/UR19=0.0 +! +!WR_N2O5/URG9=0.0 +! +!WR_N2O5/AP7=0.0 +! +!WR_N2O5/URG10=0.0 +! +!WR_N2O5/RPR1=0.0 +! +!WR_N2O5/RPR5=0.0 +! +!WR_N2O5/RPR8=0.0 +! +!WR_N2O5/RP10=0.0 +! +!WR_N2O5/RP11=0.0 +! +!WR_N2O5/RP16=0.0 +! +!WR_N2O5/RPRL=0.0 +! +!WR_N2O5/APAN=0.0 +! +!WR_N2O5/PAN1=0.0 +! +!WR_N2O5/PAN2=0.0 +! +!WR_N2O5/PAN3=0.0 +! +!WR_N2O5/PAN4=0.0 +! +!WR_N2O5/PAN6=0.0 +! +!WR_N2O5/PAN7=0.0 +! +!WR_N2O5/PAN8=0.0 +! +!WR_N2O5/PN10=0.0 +! +!WR_N2O5/RO2T=0.0 +! +!WR_N2O5/RO21=0.0 +! +!WR_N2O5/RO25=0.0 +! +!WR_N2O5/WC_O3=0.0 +! +!WR_N2O5/WC_H2O2=0.0 +! +!WR_N2O5/WC_NO=0.0 +! +!WR_N2O5/WC_NO2=0.0 +! +!WR_N2O5/WC_NO3=0.0 +! +!WR_N2O5/WC_N2O5=0.0 +! +!WR_N2O5/WC_HONO=0.0 +! +!WR_N2O5/WC_HNO3=0.0 +! +!WR_N2O5/WC_HNO4=0.0 +! +!WR_N2O5/WC_NH3=0.0 +! +!WR_N2O5/WC_OH=0.0 +! +!WR_N2O5/WC_HO2=0.0 +! +!WR_N2O5/WC_CO2=0.0 +! +!WR_N2O5/WC_SO2=0.0 +! +!WR_N2O5/WC_H2SO4=0.0 +! +!WR_N2O5/WC_RO21=0.0 +! +!WR_N2O5/WC_RO25=0.0 +! +!WR_N2O5/WC_MEOH=0.0 +! +!WR_N2O5/WC_ETOH=0.0 +! +!WR_N2O5/WC_ALCH=0.0 +! +!WR_N2O5/WC_HCHO=0.0 +! +!WR_N2O5/WC_ALD2=0.0 +! +!WR_N2O5/WC_GLY=0.0 +! +!WR_N2O5/WC_MGLY=0.0 +! +!WR_N2O5/WC_KETL=0.0 +! +!WR_N2O5/WC_ORA1=0.0 +! +!WR_N2O5/WC_ORA2=0.0 +! +!WR_N2O5/WC_ACID=0.0 +! +!WR_N2O5/WC_RP16=0.0 +! +!WR_N2O5/WC_UR21=0.0 +! +!WR_N2O5/WC_UR28=0.0 +! +!WR_N2O5/WC_ACID2=0.0 +! +!WR_N2O5/WC_ASO3=0.0 +! +!WR_N2O5/WC_ASO4=0.0 +! +!WR_N2O5/WC_ASO5=0.0 +! +!WR_N2O5/WC_AHSO5=0.0 +! +!WR_N2O5/WC_AHMS=0.0 +! +!WR_N2O5/WR_O3=0.0 +! +!WR_N2O5/WR_H2O2=0.0 +! +!WR_N2O5/WR_NO=0.0 +! +!WR_N2O5/WR_NO2=0.0 +! +!WR_N2O5/WR_NO3=0.0 +! +!WR_N2O5/WR_N2O5=-KTR37-KR14 + PJAC(:,130,130)=-TPK%KTR37(:)-TPK%KR14(:) +! +!WR_N2O5/WR_HONO=0.0 +! +!WR_N2O5/WR_HNO3=0.0 +! +!WR_N2O5/WR_HNO4=0.0 +! +!WR_N2O5/WR_NH3=0.0 +! +!WR_N2O5/WR_OH=0.0 +! +!WR_N2O5/WR_HO2=0.0 +! +!WR_N2O5/WR_CO2=0.0 +! +!WR_N2O5/WR_SO2=0.0 +! +!WR_N2O5/WR_H2SO4=0.0 +! +!WR_N2O5/WR_RO21=0.0 +! +!WR_N2O5/WR_RO25=0.0 +! +!WR_N2O5/WR_MEOH=0.0 +! +!WR_N2O5/WR_ETOH=0.0 +! +!WR_N2O5/WR_ALCH=0.0 +! +!WR_N2O5/WR_HCHO=0.0 +! +!WR_N2O5/WR_ALD2=0.0 +! +!WR_N2O5/WR_GLY=0.0 +! +!WR_N2O5/WR_MGLY=0.0 +! +!WR_N2O5/WR_KETL=0.0 +! +!WR_N2O5/WR_ORA1=0.0 +! +!WR_N2O5/WR_ORA2=0.0 +! +!WR_N2O5/WR_ACID=0.0 +! +!WR_N2O5/WR_RP16=0.0 +! +!WR_N2O5/WR_UR21=0.0 +! +!WR_N2O5/WR_UR28=0.0 +! +!WR_N2O5/WR_ACID2=0.0 +! +!WR_N2O5/WR_ASO3=0.0 +! +!WR_N2O5/WR_ASO4=0.0 +! +!WR_N2O5/WR_ASO5=0.0 +! +!WR_N2O5/WR_AHSO5=0.0 +! +!WR_N2O5/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ25 +! +SUBROUTINE SUBJ26 +! +!Indices 131 a 135 +! +! +!WR_HONO/NO=0.0 +! +!WR_HONO/NO2=0.0 +! +!WR_HONO/O3=0.0 +! +!WR_HONO/HONO=+KTR7 + PJAC(:,131,4)=+TPK%KTR7(:) +! +!WR_HONO/HNO3=0.0 +! +!WR_HONO/HNO4=0.0 +! +!WR_HONO/N2O5=0.0 +! +!WR_HONO/NO3=0.0 +! +!WR_HONO/NH3=0.0 +! +!WR_HONO/HO2=0.0 +! +!WR_HONO/CO=0.0 +! +!WR_HONO/H2O2=0.0 +! +!WR_HONO/SO2=0.0 +! +!WR_HONO/H2SO4=0.0 +! +!WR_HONO/OH=0.0 +! +!WR_HONO/ETHE=0.0 +! +!WR_HONO/OLEL=0.0 +! +!WR_HONO/OLEH=0.0 +! +!WR_HONO/ALKL=0.0 +! +!WR_HONO/ALKM=0.0 +! +!WR_HONO/ALKH=0.0 +! +!WR_HONO/AROH=0.0 +! +!WR_HONO/AROL=0.0 +! +!WR_HONO/AROO=0.0 +! +!WR_HONO/ARAL=0.0 +! +!WR_HONO/ARAC=0.0 +! +!WR_HONO/PAH=0.0 +! +!WR_HONO/HCHO=0.0 +! +!WR_HONO/ALD2=0.0 +! +!WR_HONO/KETL=0.0 +! +!WR_HONO/KETH=0.0 +! +!WR_HONO/MEOH=0.0 +! +!WR_HONO/ETOH=0.0 +! +!WR_HONO/ALCH=0.0 +! +!WR_HONO/ISOP=0.0 +! +!WR_HONO/BIOL=0.0 +! +!WR_HONO/BIOH=0.0 +! +!WR_HONO/MTBE=0.0 +! +!WR_HONO/MVK=0.0 +! +!WR_HONO/MCR=0.0 +! +!WR_HONO/MGLY=0.0 +! +!WR_HONO/GLY=0.0 +! +!WR_HONO/ORA1=0.0 +! +!WR_HONO/ORA2=0.0 +! +!WR_HONO/ACID=0.0 +! +!WR_HONO/UR28=0.0 +! +!WR_HONO/UR21=0.0 +! +!WR_HONO/URG2=0.0 +! +!WR_HONO/UR26=0.0 +! +!WR_HONO/RPG2=0.0 +! +!WR_HONO/RP18=0.0 +! +!WR_HONO/RPG3=0.0 +! +!WR_HONO/URG4=0.0 +! +!WR_HONO/UR8=0.0 +! +!WR_HONO/UR17=0.0 +! +!WR_HONO/UR7=0.0 +! +!WR_HONO/RPR3=0.0 +! +!WR_HONO/URG6=0.0 +! +!WR_HONO/UR22=0.0 +! +!WR_HONO/URG7=0.0 +! +!WR_HONO/RPR4=0.0 +! +!WR_HONO/RPR7=0.0 +! +!WR_HONO/RPG7=0.0 +! +!WR_HONO/URG8=0.0 +! +!WR_HONO/UR19=0.0 +! +!WR_HONO/URG9=0.0 +! +!WR_HONO/AP7=0.0 +! +!WR_HONO/URG10=0.0 +! +!WR_HONO/RPR1=0.0 +! +!WR_HONO/RPR5=0.0 +! +!WR_HONO/RPR8=0.0 +! +!WR_HONO/RP10=0.0 +! +!WR_HONO/RP11=0.0 +! +!WR_HONO/RP16=0.0 +! +!WR_HONO/RPRL=0.0 +! +!WR_HONO/APAN=0.0 +! +!WR_HONO/PAN1=0.0 +! +!WR_HONO/PAN2=0.0 +! +!WR_HONO/PAN3=0.0 +! +!WR_HONO/PAN4=0.0 +! +!WR_HONO/PAN6=0.0 +! +!WR_HONO/PAN7=0.0 +! +!WR_HONO/PAN8=0.0 +! +!WR_HONO/PN10=0.0 +! +!WR_HONO/RO2T=0.0 +! +!WR_HONO/RO21=0.0 +! +!WR_HONO/RO25=0.0 +! +!WR_HONO/WC_O3=0.0 +! +!WR_HONO/WC_H2O2=0.0 +! +!WR_HONO/WC_NO=0.0 +! +!WR_HONO/WC_NO2=0.0 +! +!WR_HONO/WC_NO3=0.0 +! +!WR_HONO/WC_N2O5=0.0 +! +!WR_HONO/WC_HONO=0.0 +! +!WR_HONO/WC_HNO3=0.0 +! +!WR_HONO/WC_HNO4=0.0 +! +!WR_HONO/WC_NH3=0.0 +! +!WR_HONO/WC_OH=0.0 +! +!WR_HONO/WC_HO2=0.0 +! +!WR_HONO/WC_CO2=0.0 +! +!WR_HONO/WC_SO2=0.0 +! +!WR_HONO/WC_H2SO4=0.0 +! +!WR_HONO/WC_RO21=0.0 +! +!WR_HONO/WC_RO25=0.0 +! +!WR_HONO/WC_MEOH=0.0 +! +!WR_HONO/WC_ETOH=0.0 +! +!WR_HONO/WC_ALCH=0.0 +! +!WR_HONO/WC_HCHO=0.0 +! +!WR_HONO/WC_ALD2=0.0 +! +!WR_HONO/WC_GLY=0.0 +! +!WR_HONO/WC_MGLY=0.0 +! +!WR_HONO/WC_KETL=0.0 +! +!WR_HONO/WC_ORA1=0.0 +! +!WR_HONO/WC_ORA2=0.0 +! +!WR_HONO/WC_ACID=0.0 +! +!WR_HONO/WC_RP16=0.0 +! +!WR_HONO/WC_UR21=0.0 +! +!WR_HONO/WC_UR28=0.0 +! +!WR_HONO/WC_ACID2=0.0 +! +!WR_HONO/WC_ASO3=0.0 +! +!WR_HONO/WC_ASO4=0.0 +! +!WR_HONO/WC_ASO5=0.0 +! +!WR_HONO/WC_AHSO5=0.0 +! +!WR_HONO/WC_AHMS=0.0 +! +!WR_HONO/WR_O3=0.0 +! +!WR_HONO/WR_H2O2=0.0 +! +!WR_HONO/WR_NO=0.0 +! +!WR_HONO/WR_NO2=0.0 +! +!WR_HONO/WR_NO3=0.0 +! +!WR_HONO/WR_N2O5=0.0 +! +!WR_HONO/WR_HONO=-KTR38-KR8*<WR_OH> + PJAC(:,131,131)=-TPK%KTR38(:)-TPK%KR8(:)*PCONC(:,135) +! +!WR_HONO/WR_HNO3=0.0 +! +!WR_HONO/WR_HNO4=+KR11 + PJAC(:,131,133)=+TPK%KR11(:) +! +!WR_HONO/WR_NH3=0.0 +! +!WR_HONO/WR_OH=-KR8*<WR_HONO> + PJAC(:,131,135)=-TPK%KR8(:)*PCONC(:,131) +! +!WR_HONO/WR_HO2=0.0 +! +!WR_HONO/WR_CO2=0.0 +! +!WR_HONO/WR_SO2=0.0 +! +!WR_HONO/WR_H2SO4=0.0 +! +!WR_HONO/WR_RO21=0.0 +! +!WR_HONO/WR_RO25=0.0 +! +!WR_HONO/WR_MEOH=0.0 +! +!WR_HONO/WR_ETOH=0.0 +! +!WR_HONO/WR_ALCH=0.0 +! +!WR_HONO/WR_HCHO=0.0 +! +!WR_HONO/WR_ALD2=0.0 +! +!WR_HONO/WR_GLY=0.0 +! +!WR_HONO/WR_MGLY=0.0 +! +!WR_HONO/WR_KETL=0.0 +! +!WR_HONO/WR_ORA1=0.0 +! +!WR_HONO/WR_ORA2=0.0 +! +!WR_HONO/WR_ACID=0.0 +! +!WR_HONO/WR_RP16=0.0 +! +!WR_HONO/WR_UR21=0.0 +! +!WR_HONO/WR_UR28=0.0 +! +!WR_HONO/WR_ACID2=0.0 +! +!WR_HONO/WR_ASO3=0.0 +! +!WR_HONO/WR_ASO4=0.0 +! +!WR_HONO/WR_ASO5=0.0 +! +!WR_HONO/WR_AHSO5=0.0 +! +!WR_HONO/WR_AHMS=0.0 +! +!WR_HNO3/NO=0.0 +! +!WR_HNO3/NO2=0.0 +! +!WR_HNO3/O3=0.0 +! +!WR_HNO3/HONO=0.0 +! +!WR_HNO3/HNO3=+KTR8 + PJAC(:,132,5)=+TPK%KTR8(:) +! +!WR_HNO3/HNO4=0.0 +! +!WR_HNO3/N2O5=0.0 +! +!WR_HNO3/NO3=0.0 +! +!WR_HNO3/NH3=0.0 +! +!WR_HNO3/HO2=0.0 +! +!WR_HNO3/CO=0.0 +! +!WR_HNO3/H2O2=0.0 +! +!WR_HNO3/SO2=0.0 +! +!WR_HNO3/H2SO4=0.0 +! +!WR_HNO3/OH=0.0 +! +!WR_HNO3/ETHE=0.0 +! +!WR_HNO3/OLEL=0.0 +! +!WR_HNO3/OLEH=0.0 +! +!WR_HNO3/ALKL=0.0 +! +!WR_HNO3/ALKM=0.0 +! +!WR_HNO3/ALKH=0.0 +! +!WR_HNO3/AROH=0.0 +! +!WR_HNO3/AROL=0.0 +! +!WR_HNO3/AROO=0.0 +! +!WR_HNO3/ARAL=0.0 +! +!WR_HNO3/ARAC=0.0 +! +!WR_HNO3/PAH=0.0 +! +!WR_HNO3/HCHO=0.0 +! +!WR_HNO3/ALD2=0.0 +! +!WR_HNO3/KETL=0.0 +! +!WR_HNO3/KETH=0.0 +! +!WR_HNO3/MEOH=0.0 +! +!WR_HNO3/ETOH=0.0 +! +!WR_HNO3/ALCH=0.0 +! +!WR_HNO3/ISOP=0.0 +! +!WR_HNO3/BIOL=0.0 +! +!WR_HNO3/BIOH=0.0 +! +!WR_HNO3/MTBE=0.0 +! +!WR_HNO3/MVK=0.0 +! +!WR_HNO3/MCR=0.0 +! +!WR_HNO3/MGLY=0.0 +! +!WR_HNO3/GLY=0.0 +! +!WR_HNO3/ORA1=0.0 +! +!WR_HNO3/ORA2=0.0 +! +!WR_HNO3/ACID=0.0 +! +!WR_HNO3/UR28=0.0 +! +!WR_HNO3/UR21=0.0 +! +!WR_HNO3/URG2=0.0 +! +!WR_HNO3/UR26=0.0 +! +!WR_HNO3/RPG2=0.0 +! +!WR_HNO3/RP18=0.0 +! +!WR_HNO3/RPG3=0.0 +! +!WR_HNO3/URG4=0.0 +! +!WR_HNO3/UR8=0.0 +! +!WR_HNO3/UR17=0.0 +! +!WR_HNO3/UR7=0.0 +! +!WR_HNO3/RPR3=0.0 +! +!WR_HNO3/URG6=0.0 +! +!WR_HNO3/UR22=0.0 +! +!WR_HNO3/URG7=0.0 +! +!WR_HNO3/RPR4=0.0 +! +!WR_HNO3/RPR7=0.0 +! +!WR_HNO3/RPG7=0.0 +! +!WR_HNO3/URG8=0.0 +! +!WR_HNO3/UR19=0.0 +! +!WR_HNO3/URG9=0.0 +! +!WR_HNO3/AP7=0.0 +! +!WR_HNO3/URG10=0.0 +! +!WR_HNO3/RPR1=0.0 +! +!WR_HNO3/RPR5=0.0 +! +!WR_HNO3/RPR8=0.0 +! +!WR_HNO3/RP10=0.0 +! +!WR_HNO3/RP11=0.0 +! +!WR_HNO3/RP16=0.0 +! +!WR_HNO3/RPRL=0.0 +! +!WR_HNO3/APAN=0.0 +! +!WR_HNO3/PAN1=0.0 +! +!WR_HNO3/PAN2=0.0 +! +!WR_HNO3/PAN3=0.0 +! +!WR_HNO3/PAN4=0.0 +! +!WR_HNO3/PAN6=0.0 +! +!WR_HNO3/PAN7=0.0 +! +!WR_HNO3/PAN8=0.0 +! +!WR_HNO3/PN10=0.0 +! +!WR_HNO3/RO2T=0.0 +! +!WR_HNO3/RO21=0.0 +! +!WR_HNO3/RO25=0.0 +! +!WR_HNO3/WC_O3=0.0 +! +!WR_HNO3/WC_H2O2=0.0 +! +!WR_HNO3/WC_NO=0.0 +! +!WR_HNO3/WC_NO2=0.0 +! +!WR_HNO3/WC_NO3=0.0 +! +!WR_HNO3/WC_N2O5=0.0 +! +!WR_HNO3/WC_HONO=0.0 +! +!WR_HNO3/WC_HNO3=0.0 +! +!WR_HNO3/WC_HNO4=0.0 +! +!WR_HNO3/WC_NH3=0.0 +! +!WR_HNO3/WC_OH=0.0 +! +!WR_HNO3/WC_HO2=0.0 +! +!WR_HNO3/WC_CO2=0.0 +! +!WR_HNO3/WC_SO2=0.0 +! +!WR_HNO3/WC_H2SO4=0.0 +! +!WR_HNO3/WC_RO21=0.0 +! +!WR_HNO3/WC_RO25=0.0 +! +!WR_HNO3/WC_MEOH=0.0 +! +!WR_HNO3/WC_ETOH=0.0 +! +!WR_HNO3/WC_ALCH=0.0 +! +!WR_HNO3/WC_HCHO=0.0 +! +!WR_HNO3/WC_ALD2=0.0 +! +!WR_HNO3/WC_GLY=0.0 +! +!WR_HNO3/WC_MGLY=0.0 +! +!WR_HNO3/WC_KETL=0.0 +! +!WR_HNO3/WC_ORA1=0.0 +! +!WR_HNO3/WC_ORA2=0.0 +! +!WR_HNO3/WC_ACID=0.0 +! +!WR_HNO3/WC_RP16=0.0 +! +!WR_HNO3/WC_UR21=0.0 +! +!WR_HNO3/WC_UR28=0.0 +! +!WR_HNO3/WC_ACID2=0.0 +! +!WR_HNO3/WC_ASO3=0.0 +! +!WR_HNO3/WC_ASO4=0.0 +! +!WR_HNO3/WC_ASO5=0.0 +! +!WR_HNO3/WC_AHSO5=0.0 +! +!WR_HNO3/WC_AHMS=0.0 +! +!WR_HNO3/WR_O3=0.0 +! +!WR_HNO3/WR_H2O2=0.0 +! +!WR_HNO3/WR_NO=0.0 +! +!WR_HNO3/WR_NO2=0.0 +! +!WR_HNO3/WR_NO3=+KR15*<WR_H2SO4>+KR16*<WR_SO2> + PJAC(:,132,129)=+TPK%KR15(:)*PCONC(:,139)+TPK%KR16(:)*PCONC(:,138) +! +!WR_HNO3/WR_N2O5=+KR14+KR14 + PJAC(:,132,130)=+TPK%KR14(:)+TPK%KR14(:) +! +!WR_HNO3/WR_HONO=0.0 +! +!WR_HNO3/WR_HNO3=-KTR39-KR13 + PJAC(:,132,132)=-TPK%KTR39(:)-TPK%KR13(:) +! +!WR_HNO3/WR_HNO4=+KR12*<WR_SO2> + PJAC(:,132,133)=+TPK%KR12(:)*PCONC(:,138) +! +!WR_HNO3/WR_NH3=0.0 +! +!WR_HNO3/WR_OH=0.0 +! +!WR_HNO3/WR_HO2=0.0 +! +!WR_HNO3/WR_CO2=0.0 +! +!WR_HNO3/WR_SO2=+KR12*<WR_HNO4>+KR16*<WR_NO3> + PJAC(:,132,138)=+TPK%KR12(:)*PCONC(:,133)+TPK%KR16(:)*PCONC(:,129) +! +!WR_HNO3/WR_H2SO4=+KR15*<WR_NO3> + PJAC(:,132,139)=+TPK%KR15(:)*PCONC(:,129) +! +!WR_HNO3/WR_RO21=0.0 +! +!WR_HNO3/WR_RO25=0.0 +! +!WR_HNO3/WR_MEOH=0.0 +! +!WR_HNO3/WR_ETOH=0.0 +! +!WR_HNO3/WR_ALCH=0.0 +! +!WR_HNO3/WR_HCHO=0.0 +! +!WR_HNO3/WR_ALD2=0.0 +! +!WR_HNO3/WR_GLY=0.0 +! +!WR_HNO3/WR_MGLY=0.0 +! +!WR_HNO3/WR_KETL=0.0 +! +!WR_HNO3/WR_ORA1=0.0 +! +!WR_HNO3/WR_ORA2=0.0 +! +!WR_HNO3/WR_ACID=0.0 +! +!WR_HNO3/WR_RP16=0.0 +! +!WR_HNO3/WR_UR21=0.0 +! +!WR_HNO3/WR_UR28=0.0 +! +!WR_HNO3/WR_ACID2=0.0 +! +!WR_HNO3/WR_ASO3=0.0 +! +!WR_HNO3/WR_ASO4=0.0 +! +!WR_HNO3/WR_ASO5=0.0 +! +!WR_HNO3/WR_AHSO5=0.0 +! +!WR_HNO3/WR_AHMS=0.0 +! +!WR_HNO4/NO=0.0 +! +!WR_HNO4/NO2=0.0 +! +!WR_HNO4/O3=0.0 +! +!WR_HNO4/HONO=0.0 +! +!WR_HNO4/HNO3=0.0 +! +!WR_HNO4/HNO4=+KTR9 + PJAC(:,133,6)=+TPK%KTR9(:) +! +!WR_HNO4/N2O5=0.0 +! +!WR_HNO4/NO3=0.0 +! +!WR_HNO4/NH3=0.0 +! +!WR_HNO4/HO2=0.0 +! +!WR_HNO4/CO=0.0 +! +!WR_HNO4/H2O2=0.0 +! +!WR_HNO4/SO2=0.0 +! +!WR_HNO4/H2SO4=0.0 +! +!WR_HNO4/OH=0.0 +! +!WR_HNO4/ETHE=0.0 +! +!WR_HNO4/OLEL=0.0 +! +!WR_HNO4/OLEH=0.0 +! +!WR_HNO4/ALKL=0.0 +! +!WR_HNO4/ALKM=0.0 +! +!WR_HNO4/ALKH=0.0 +! +!WR_HNO4/AROH=0.0 +! +!WR_HNO4/AROL=0.0 +! +!WR_HNO4/AROO=0.0 +! +!WR_HNO4/ARAL=0.0 +! +!WR_HNO4/ARAC=0.0 +! +!WR_HNO4/PAH=0.0 +! +!WR_HNO4/HCHO=0.0 +! +!WR_HNO4/ALD2=0.0 +! +!WR_HNO4/KETL=0.0 +! +!WR_HNO4/KETH=0.0 +! +!WR_HNO4/MEOH=0.0 +! +!WR_HNO4/ETOH=0.0 +! +!WR_HNO4/ALCH=0.0 +! +!WR_HNO4/ISOP=0.0 +! +!WR_HNO4/BIOL=0.0 +! +!WR_HNO4/BIOH=0.0 +! +!WR_HNO4/MTBE=0.0 +! +!WR_HNO4/MVK=0.0 +! +!WR_HNO4/MCR=0.0 +! +!WR_HNO4/MGLY=0.0 +! +!WR_HNO4/GLY=0.0 +! +!WR_HNO4/ORA1=0.0 +! +!WR_HNO4/ORA2=0.0 +! +!WR_HNO4/ACID=0.0 +! +!WR_HNO4/UR28=0.0 +! +!WR_HNO4/UR21=0.0 +! +!WR_HNO4/URG2=0.0 +! +!WR_HNO4/UR26=0.0 +! +!WR_HNO4/RPG2=0.0 +! +!WR_HNO4/RP18=0.0 +! +!WR_HNO4/RPG3=0.0 +! +!WR_HNO4/URG4=0.0 +! +!WR_HNO4/UR8=0.0 +! +!WR_HNO4/UR17=0.0 +! +!WR_HNO4/UR7=0.0 +! +!WR_HNO4/RPR3=0.0 +! +!WR_HNO4/URG6=0.0 +! +!WR_HNO4/UR22=0.0 +! +!WR_HNO4/URG7=0.0 +! +!WR_HNO4/RPR4=0.0 +! +!WR_HNO4/RPR7=0.0 +! +!WR_HNO4/RPG7=0.0 +! +!WR_HNO4/URG8=0.0 +! +!WR_HNO4/UR19=0.0 +! +!WR_HNO4/URG9=0.0 +! +!WR_HNO4/AP7=0.0 +! +!WR_HNO4/URG10=0.0 +! +!WR_HNO4/RPR1=0.0 +! +!WR_HNO4/RPR5=0.0 +! +!WR_HNO4/RPR8=0.0 +! +!WR_HNO4/RP10=0.0 +! +!WR_HNO4/RP11=0.0 +! +!WR_HNO4/RP16=0.0 +! +!WR_HNO4/RPRL=0.0 +! +!WR_HNO4/APAN=0.0 +! +!WR_HNO4/PAN1=0.0 +! +!WR_HNO4/PAN2=0.0 +! +!WR_HNO4/PAN3=0.0 +! +!WR_HNO4/PAN4=0.0 +! +!WR_HNO4/PAN6=0.0 +! +!WR_HNO4/PAN7=0.0 +! +!WR_HNO4/PAN8=0.0 +! +!WR_HNO4/PN10=0.0 +! +!WR_HNO4/RO2T=0.0 +! +!WR_HNO4/RO21=0.0 +! +!WR_HNO4/RO25=0.0 +! +!WR_HNO4/WC_O3=0.0 +! +!WR_HNO4/WC_H2O2=0.0 +! +!WR_HNO4/WC_NO=0.0 +! +!WR_HNO4/WC_NO2=0.0 +! +!WR_HNO4/WC_NO3=0.0 +! +!WR_HNO4/WC_N2O5=0.0 +! +!WR_HNO4/WC_HONO=0.0 +! +!WR_HNO4/WC_HNO3=0.0 +! +!WR_HNO4/WC_HNO4=0.0 +! +!WR_HNO4/WC_NH3=0.0 +! +!WR_HNO4/WC_OH=0.0 +! +!WR_HNO4/WC_HO2=0.0 +! +!WR_HNO4/WC_CO2=0.0 +! +!WR_HNO4/WC_SO2=0.0 +! +!WR_HNO4/WC_H2SO4=0.0 +! +!WR_HNO4/WC_RO21=0.0 +! +!WR_HNO4/WC_RO25=0.0 +! +!WR_HNO4/WC_MEOH=0.0 +! +!WR_HNO4/WC_ETOH=0.0 +! +!WR_HNO4/WC_ALCH=0.0 +! +!WR_HNO4/WC_HCHO=0.0 +! +!WR_HNO4/WC_ALD2=0.0 +! +!WR_HNO4/WC_GLY=0.0 +! +!WR_HNO4/WC_MGLY=0.0 +! +!WR_HNO4/WC_KETL=0.0 +! +!WR_HNO4/WC_ORA1=0.0 +! +!WR_HNO4/WC_ORA2=0.0 +! +!WR_HNO4/WC_ACID=0.0 +! +!WR_HNO4/WC_RP16=0.0 +! +!WR_HNO4/WC_UR21=0.0 +! +!WR_HNO4/WC_UR28=0.0 +! +!WR_HNO4/WC_ACID2=0.0 +! +!WR_HNO4/WC_ASO3=0.0 +! +!WR_HNO4/WC_ASO4=0.0 +! +!WR_HNO4/WC_ASO5=0.0 +! +!WR_HNO4/WC_AHSO5=0.0 +! +!WR_HNO4/WC_AHMS=0.0 +! +!WR_HNO4/WR_O3=0.0 +! +!WR_HNO4/WR_H2O2=0.0 +! +!WR_HNO4/WR_NO=0.0 +! +!WR_HNO4/WR_NO2=+KR9*<WR_HO2> + PJAC(:,133,128)=+TPK%KR9(:)*PCONC(:,136) +! +!WR_HNO4/WR_NO3=0.0 +! +!WR_HNO4/WR_N2O5=0.0 +! +!WR_HNO4/WR_HONO=0.0 +! +!WR_HNO4/WR_HNO3=0.0 +! +!WR_HNO4/WR_HNO4=-KTR40-KR10-KR11-KR12*<WR_SO2> + PJAC(:,133,133)=-TPK%KTR40(:)-TPK%KR10(:)-TPK%KR11(:)-TPK%KR12(:)*PCONC(:,138) +! +!WR_HNO4/WR_NH3=0.0 +! +!WR_HNO4/WR_OH=0.0 +! +!WR_HNO4/WR_HO2=+KR9*<WR_NO2> + PJAC(:,133,136)=+TPK%KR9(:)*PCONC(:,128) +! +!WR_HNO4/WR_CO2=0.0 +! +!WR_HNO4/WR_SO2=-KR12*<WR_HNO4> + PJAC(:,133,138)=-TPK%KR12(:)*PCONC(:,133) +! +!WR_HNO4/WR_H2SO4=0.0 +! +!WR_HNO4/WR_RO21=0.0 +! +!WR_HNO4/WR_RO25=0.0 +! +!WR_HNO4/WR_MEOH=0.0 +! +!WR_HNO4/WR_ETOH=0.0 +! +!WR_HNO4/WR_ALCH=0.0 +! +!WR_HNO4/WR_HCHO=0.0 +! +!WR_HNO4/WR_ALD2=0.0 +! +!WR_HNO4/WR_GLY=0.0 +! +!WR_HNO4/WR_MGLY=0.0 +! +!WR_HNO4/WR_KETL=0.0 +! +!WR_HNO4/WR_ORA1=0.0 +! +!WR_HNO4/WR_ORA2=0.0 +! +!WR_HNO4/WR_ACID=0.0 +! +!WR_HNO4/WR_RP16=0.0 +! +!WR_HNO4/WR_UR21=0.0 +! +!WR_HNO4/WR_UR28=0.0 +! +!WR_HNO4/WR_ACID2=0.0 +! +!WR_HNO4/WR_ASO3=0.0 +! +!WR_HNO4/WR_ASO4=0.0 +! +!WR_HNO4/WR_ASO5=0.0 +! +!WR_HNO4/WR_AHSO5=0.0 +! +!WR_HNO4/WR_AHMS=0.0 +! +!WR_NH3/NO=0.0 +! +!WR_NH3/NO2=0.0 +! +!WR_NH3/O3=0.0 +! +!WR_NH3/HONO=0.0 +! +!WR_NH3/HNO3=0.0 +! +!WR_NH3/HNO4=0.0 +! +!WR_NH3/N2O5=0.0 +! +!WR_NH3/NO3=0.0 +! +!WR_NH3/NH3=+KTR10 + PJAC(:,134,9)=+TPK%KTR10(:) +! +!WR_NH3/HO2=0.0 +! +!WR_NH3/CO=0.0 +! +!WR_NH3/H2O2=0.0 +! +!WR_NH3/SO2=0.0 +! +!WR_NH3/H2SO4=0.0 +! +!WR_NH3/OH=0.0 +! +!WR_NH3/ETHE=0.0 +! +!WR_NH3/OLEL=0.0 +! +!WR_NH3/OLEH=0.0 +! +!WR_NH3/ALKL=0.0 +! +!WR_NH3/ALKM=0.0 +! +!WR_NH3/ALKH=0.0 +! +!WR_NH3/AROH=0.0 +! +!WR_NH3/AROL=0.0 +! +!WR_NH3/AROO=0.0 +! +!WR_NH3/ARAL=0.0 +! +!WR_NH3/ARAC=0.0 +! +!WR_NH3/PAH=0.0 +! +!WR_NH3/HCHO=0.0 +! +!WR_NH3/ALD2=0.0 +! +!WR_NH3/KETL=0.0 +! +!WR_NH3/KETH=0.0 +! +!WR_NH3/MEOH=0.0 +! +!WR_NH3/ETOH=0.0 +! +!WR_NH3/ALCH=0.0 +! +!WR_NH3/ISOP=0.0 +! +!WR_NH3/BIOL=0.0 +! +!WR_NH3/BIOH=0.0 +! +!WR_NH3/MTBE=0.0 +! +!WR_NH3/MVK=0.0 +! +!WR_NH3/MCR=0.0 +! +!WR_NH3/MGLY=0.0 +! +!WR_NH3/GLY=0.0 +! +!WR_NH3/ORA1=0.0 +! +!WR_NH3/ORA2=0.0 +! +!WR_NH3/ACID=0.0 +! +!WR_NH3/UR28=0.0 +! +!WR_NH3/UR21=0.0 +! +!WR_NH3/URG2=0.0 +! +!WR_NH3/UR26=0.0 +! +!WR_NH3/RPG2=0.0 +! +!WR_NH3/RP18=0.0 +! +!WR_NH3/RPG3=0.0 +! +!WR_NH3/URG4=0.0 +! +!WR_NH3/UR8=0.0 +! +!WR_NH3/UR17=0.0 +! +!WR_NH3/UR7=0.0 +! +!WR_NH3/RPR3=0.0 +! +!WR_NH3/URG6=0.0 +! +!WR_NH3/UR22=0.0 +! +!WR_NH3/URG7=0.0 +! +!WR_NH3/RPR4=0.0 +! +!WR_NH3/RPR7=0.0 +! +!WR_NH3/RPG7=0.0 +! +!WR_NH3/URG8=0.0 +! +!WR_NH3/UR19=0.0 +! +!WR_NH3/URG9=0.0 +! +!WR_NH3/AP7=0.0 +! +!WR_NH3/URG10=0.0 +! +!WR_NH3/RPR1=0.0 +! +!WR_NH3/RPR5=0.0 +! +!WR_NH3/RPR8=0.0 +! +!WR_NH3/RP10=0.0 +! +!WR_NH3/RP11=0.0 +! +!WR_NH3/RP16=0.0 +! +!WR_NH3/RPRL=0.0 +! +!WR_NH3/APAN=0.0 +! +!WR_NH3/PAN1=0.0 +! +!WR_NH3/PAN2=0.0 +! +!WR_NH3/PAN3=0.0 +! +!WR_NH3/PAN4=0.0 +! +!WR_NH3/PAN6=0.0 +! +!WR_NH3/PAN7=0.0 +! +!WR_NH3/PAN8=0.0 +! +!WR_NH3/PN10=0.0 +! +!WR_NH3/RO2T=0.0 +! +!WR_NH3/RO21=0.0 +! +!WR_NH3/RO25=0.0 +! +!WR_NH3/WC_O3=0.0 +! +!WR_NH3/WC_H2O2=0.0 +! +!WR_NH3/WC_NO=0.0 +! +!WR_NH3/WC_NO2=0.0 +! +!WR_NH3/WC_NO3=0.0 +! +!WR_NH3/WC_N2O5=0.0 +! +!WR_NH3/WC_HONO=0.0 +! +!WR_NH3/WC_HNO3=0.0 +! +!WR_NH3/WC_HNO4=0.0 +! +!WR_NH3/WC_NH3=0.0 +! +!WR_NH3/WC_OH=0.0 +! +!WR_NH3/WC_HO2=0.0 +! +!WR_NH3/WC_CO2=0.0 +! +!WR_NH3/WC_SO2=0.0 +! +!WR_NH3/WC_H2SO4=0.0 +! +!WR_NH3/WC_RO21=0.0 +! +!WR_NH3/WC_RO25=0.0 +! +!WR_NH3/WC_MEOH=0.0 +! +!WR_NH3/WC_ETOH=0.0 +! +!WR_NH3/WC_ALCH=0.0 +! +!WR_NH3/WC_HCHO=0.0 +! +!WR_NH3/WC_ALD2=0.0 +! +!WR_NH3/WC_GLY=0.0 +! +!WR_NH3/WC_MGLY=0.0 +! +!WR_NH3/WC_KETL=0.0 +! +!WR_NH3/WC_ORA1=0.0 +! +!WR_NH3/WC_ORA2=0.0 +! +!WR_NH3/WC_ACID=0.0 +! +!WR_NH3/WC_RP16=0.0 +! +!WR_NH3/WC_UR21=0.0 +! +!WR_NH3/WC_UR28=0.0 +! +!WR_NH3/WC_ACID2=0.0 +! +!WR_NH3/WC_ASO3=0.0 +! +!WR_NH3/WC_ASO4=0.0 +! +!WR_NH3/WC_ASO5=0.0 +! +!WR_NH3/WC_AHSO5=0.0 +! +!WR_NH3/WC_AHMS=0.0 +! +!WR_NH3/WR_O3=0.0 +! +!WR_NH3/WR_H2O2=0.0 +! +!WR_NH3/WR_NO=0.0 +! +!WR_NH3/WR_NO2=0.0 +! +!WR_NH3/WR_NO3=0.0 +! +!WR_NH3/WR_N2O5=0.0 +! +!WR_NH3/WR_HONO=0.0 +! +!WR_NH3/WR_HNO3=0.0 +! +!WR_NH3/WR_HNO4=0.0 +! +!WR_NH3/WR_NH3=-KTR41 + PJAC(:,134,134)=-TPK%KTR41(:) +! +!WR_NH3/WR_OH=0.0 +! +!WR_NH3/WR_HO2=0.0 +! +!WR_NH3/WR_CO2=0.0 +! +!WR_NH3/WR_SO2=0.0 +! +!WR_NH3/WR_H2SO4=0.0 +! +!WR_NH3/WR_RO21=0.0 +! +!WR_NH3/WR_RO25=0.0 +! +!WR_NH3/WR_MEOH=0.0 +! +!WR_NH3/WR_ETOH=0.0 +! +!WR_NH3/WR_ALCH=0.0 +! +!WR_NH3/WR_HCHO=0.0 +! +!WR_NH3/WR_ALD2=0.0 +! +!WR_NH3/WR_GLY=0.0 +! +!WR_NH3/WR_MGLY=0.0 +! +!WR_NH3/WR_KETL=0.0 +! +!WR_NH3/WR_ORA1=0.0 +! +!WR_NH3/WR_ORA2=0.0 +! +!WR_NH3/WR_ACID=0.0 +! +!WR_NH3/WR_RP16=0.0 +! +!WR_NH3/WR_UR21=0.0 +! +!WR_NH3/WR_UR28=0.0 +! +!WR_NH3/WR_ACID2=0.0 +! +!WR_NH3/WR_ASO3=0.0 +! +!WR_NH3/WR_ASO4=0.0 +! +!WR_NH3/WR_ASO5=0.0 +! +!WR_NH3/WR_AHSO5=0.0 +! +!WR_NH3/WR_AHMS=0.0 +! +!WR_OH/NO=0.0 +! +!WR_OH/NO2=0.0 +! +!WR_OH/O3=0.0 +! +!WR_OH/HONO=0.0 +! +!WR_OH/HNO3=0.0 +! +!WR_OH/HNO4=0.0 +! +!WR_OH/N2O5=0.0 +! +!WR_OH/NO3=0.0 +! +!WR_OH/NH3=0.0 +! +!WR_OH/HO2=0.0 +! +!WR_OH/CO=0.0 +! +!WR_OH/H2O2=0.0 +! +!WR_OH/SO2=0.0 +! +!WR_OH/H2SO4=0.0 +! +!WR_OH/OH=+KTR11 + PJAC(:,135,15)=+TPK%KTR11(:) +! +!WR_OH/ETHE=0.0 +! +!WR_OH/OLEL=0.0 +! +!WR_OH/OLEH=0.0 +! +!WR_OH/ALKL=0.0 +! +!WR_OH/ALKM=0.0 +! +!WR_OH/ALKH=0.0 +! +!WR_OH/AROH=0.0 +! +!WR_OH/AROL=0.0 +! +!WR_OH/AROO=0.0 +! +!WR_OH/ARAL=0.0 +! +!WR_OH/ARAC=0.0 +! +!WR_OH/PAH=0.0 +! +!WR_OH/HCHO=0.0 +! +!WR_OH/ALD2=0.0 +! +!WR_OH/KETL=0.0 +! +!WR_OH/KETH=0.0 +! +!WR_OH/MEOH=0.0 +! +!WR_OH/ETOH=0.0 +! +!WR_OH/ALCH=0.0 +! +!WR_OH/ISOP=0.0 +! +!WR_OH/BIOL=0.0 +! +!WR_OH/BIOH=0.0 +! +!WR_OH/MTBE=0.0 +! +!WR_OH/MVK=0.0 +! +!WR_OH/MCR=0.0 +! +!WR_OH/MGLY=0.0 +! +!WR_OH/GLY=0.0 +! +!WR_OH/ORA1=0.0 +! +!WR_OH/ORA2=0.0 +! +!WR_OH/ACID=0.0 +! +!WR_OH/UR28=0.0 +! +!WR_OH/UR21=0.0 +! +!WR_OH/URG2=0.0 +! +!WR_OH/UR26=0.0 +! +!WR_OH/RPG2=0.0 +! +!WR_OH/RP18=0.0 +! +!WR_OH/RPG3=0.0 +! +!WR_OH/URG4=0.0 +! +!WR_OH/UR8=0.0 +! +!WR_OH/UR17=0.0 +! +!WR_OH/UR7=0.0 +! +!WR_OH/RPR3=0.0 +! +!WR_OH/URG6=0.0 +! +!WR_OH/UR22=0.0 +! +!WR_OH/URG7=0.0 +! +!WR_OH/RPR4=0.0 +! +!WR_OH/RPR7=0.0 +! +!WR_OH/RPG7=0.0 +! +!WR_OH/URG8=0.0 +! +!WR_OH/UR19=0.0 +! +!WR_OH/URG9=0.0 +! +!WR_OH/AP7=0.0 +! +!WR_OH/URG10=0.0 +! +!WR_OH/RPR1=0.0 +! +!WR_OH/RPR5=0.0 +! +!WR_OH/RPR8=0.0 +! +!WR_OH/RP10=0.0 +! +!WR_OH/RP11=0.0 +! +!WR_OH/RP16=0.0 +! +!WR_OH/RPRL=0.0 +! +!WR_OH/APAN=0.0 +! +!WR_OH/PAN1=0.0 +! +!WR_OH/PAN2=0.0 +! +!WR_OH/PAN3=0.0 +! +!WR_OH/PAN4=0.0 +! +!WR_OH/PAN6=0.0 +! +!WR_OH/PAN7=0.0 +! +!WR_OH/PAN8=0.0 +! +!WR_OH/PN10=0.0 +! +!WR_OH/RO2T=0.0 +! +!WR_OH/RO21=0.0 +! +!WR_OH/RO25=0.0 +! +!WR_OH/WC_O3=0.0 +! +!WR_OH/WC_H2O2=0.0 +! +!WR_OH/WC_NO=0.0 +! +!WR_OH/WC_NO2=0.0 +! +!WR_OH/WC_NO3=0.0 +! +!WR_OH/WC_N2O5=0.0 +! +!WR_OH/WC_HONO=0.0 +! +!WR_OH/WC_HNO3=0.0 +! +!WR_OH/WC_HNO4=0.0 +! +!WR_OH/WC_NH3=0.0 +! +!WR_OH/WC_OH=0.0 +! +!WR_OH/WC_HO2=0.0 +! +!WR_OH/WC_CO2=0.0 +! +!WR_OH/WC_SO2=0.0 +! +!WR_OH/WC_H2SO4=0.0 +! +!WR_OH/WC_RO21=0.0 +! +!WR_OH/WC_RO25=0.0 +! +!WR_OH/WC_MEOH=0.0 +! +!WR_OH/WC_ETOH=0.0 +! +!WR_OH/WC_ALCH=0.0 +! +!WR_OH/WC_HCHO=0.0 +! +!WR_OH/WC_ALD2=0.0 +! +!WR_OH/WC_GLY=0.0 +! +!WR_OH/WC_MGLY=0.0 +! +!WR_OH/WC_KETL=0.0 +! +!WR_OH/WC_ORA1=0.0 +! +!WR_OH/WC_ORA2=0.0 +! +!WR_OH/WC_ACID=0.0 +! +!WR_OH/WC_RP16=0.0 +! +!WR_OH/WC_UR21=0.0 +! +!WR_OH/WC_UR28=0.0 +! +!WR_OH/WC_ACID2=0.0 +! +!WR_OH/WC_ASO3=0.0 +! +!WR_OH/WC_ASO4=0.0 +! +!WR_OH/WC_ASO5=0.0 +! +!WR_OH/WC_AHSO5=0.0 +! +!WR_OH/WC_AHMS=0.0 +! +!WR_OH/WR_O3=+KR6*<WR_HO2> + PJAC(:,135,125)=+TPK%KR6(:)*PCONC(:,136) +! +!WR_OH/WR_H2O2=+KR1+KR1-KR4*<WR_OH> + PJAC(:,135,126)=+TPK%KR1(:)+TPK%KR1(:)-TPK%KR4(:)*PCONC(:,135) +! +!WR_OH/WR_NO=0.0 +! +!WR_OH/WR_NO2=0.0 +! +!WR_OH/WR_NO3=0.0 +! +!WR_OH/WR_N2O5=0.0 +! +!WR_OH/WR_HONO=-KR8*<WR_OH> + PJAC(:,135,131)=-TPK%KR8(:)*PCONC(:,135) +! +!WR_OH/WR_HNO3=+KR13 + PJAC(:,135,132)=+TPK%KR13(:) +! +!WR_OH/WR_HNO4=0.0 +! +!WR_OH/WR_NH3=0.0 +! +!WR_OH/WR_OH=-KTR42-KR2*<WR_OH>-KR2*<WR_OH>-KR2*<WR_OH>-KR2*<WR_OH>-KR3*<WR_HO2 +!>-KR4*<WR_H2O2>-KR7*<WR_SO2>-KR8*<WR_HONO>-KR19*<WR_AHMS>-KR30*<WR_MEOH>-KR31* +!<WR_ETOH>-KR32*<WR_ALCH>-KR33*<WR_HCHO>-KR34*<WR_ALD2>-KR35*<WR_GLY>-KR36*<WR_ +!MGLY>-KR37*<WR_KETL>-KR38*<WR_ORA1>-KR39*<WR_ORA2>-KR40*<WR_ACID>-KR41*<WR_ACI +!D>-KR42*<WR_UR28>-KR43*<WR_UR21>-KR44*<WR_RP16>-KR45*<WR_RP16>-KR46*<WR_ACID2> + PJAC(:,135,135)=-TPK%KTR42(:)-TPK%KR2(:)*PCONC(:,135)-TPK%KR2(:)*PCONC(:,135)-& +&TPK%KR2(:)*PCONC(:,135)-TPK%KR2(:)*PCONC(:,135)-TPK%KR3(:)*PCONC(:,136)-TPK%KR& +&4(:)*PCONC(:,126)-TPK%KR7(:)*PCONC(:,138)-TPK%KR8(:)*PCONC(:,131)-TPK%KR19(:)*& +&PCONC(:,161)-TPK%KR30(:)*PCONC(:,142)-TPK%KR31(:)*PCONC(:,143)-TPK%KR32(:)*PCO& +&NC(:,144)-TPK%KR33(:)*PCONC(:,145)-TPK%KR34(:)*PCONC(:,146)-TPK%KR35(:)*PCONC(& +&:,147)-TPK%KR36(:)*PCONC(:,148)-TPK%KR37(:)*PCONC(:,149)-TPK%KR38(:)*PCONC(:,1& +&50)-TPK%KR39(:)*PCONC(:,151)-TPK%KR40(:)*PCONC(:,152)-TPK%KR41(:)*PCONC(:,152)& +&-TPK%KR42(:)*PCONC(:,155)-TPK%KR43(:)*PCONC(:,154)-TPK%KR44(:)*PCONC(:,153)-TP& +&K%KR45(:)*PCONC(:,153)-TPK%KR46(:)*PCONC(:,156) +! +!WR_OH/WR_HO2=-KR3*<WR_OH>+KR6*<WR_O3> + PJAC(:,135,136)=-TPK%KR3(:)*PCONC(:,135)+TPK%KR6(:)*PCONC(:,125) +! +!WR_OH/WR_CO2=0.0 +! +!WR_OH/WR_SO2=-KR7*<WR_OH> + PJAC(:,135,138)=-TPK%KR7(:)*PCONC(:,135) +! +!WR_OH/WR_H2SO4=0.0 +! +!WR_OH/WR_RO21=0.0 +! +!WR_OH/WR_RO25=0.0 +! +!WR_OH/WR_MEOH=-KR30*<WR_OH> + PJAC(:,135,142)=-TPK%KR30(:)*PCONC(:,135) +! +!WR_OH/WR_ETOH=-KR31*<WR_OH> + PJAC(:,135,143)=-TPK%KR31(:)*PCONC(:,135) +! +!WR_OH/WR_ALCH=-KR32*<WR_OH> + PJAC(:,135,144)=-TPK%KR32(:)*PCONC(:,135) +! +!WR_OH/WR_HCHO=-KR33*<WR_OH> + PJAC(:,135,145)=-TPK%KR33(:)*PCONC(:,135) +! +!WR_OH/WR_ALD2=-KR34*<WR_OH> + PJAC(:,135,146)=-TPK%KR34(:)*PCONC(:,135) +! +!WR_OH/WR_GLY=-KR35*<WR_OH> + PJAC(:,135,147)=-TPK%KR35(:)*PCONC(:,135) +! +!WR_OH/WR_MGLY=-KR36*<WR_OH> + PJAC(:,135,148)=-TPK%KR36(:)*PCONC(:,135) +! +!WR_OH/WR_KETL=-KR37*<WR_OH> + PJAC(:,135,149)=-TPK%KR37(:)*PCONC(:,135) +! +!WR_OH/WR_ORA1=-KR38*<WR_OH> + PJAC(:,135,150)=-TPK%KR38(:)*PCONC(:,135) +! +!WR_OH/WR_ORA2=-KR39*<WR_OH> + PJAC(:,135,151)=-TPK%KR39(:)*PCONC(:,135) +! +!WR_OH/WR_ACID=-KR40*<WR_OH>-KR41*<WR_OH> + PJAC(:,135,152)=-TPK%KR40(:)*PCONC(:,135)-TPK%KR41(:)*PCONC(:,135) +! +!WR_OH/WR_RP16=-KR44*<WR_OH>-KR45*<WR_OH> + PJAC(:,135,153)=-TPK%KR44(:)*PCONC(:,135)-TPK%KR45(:)*PCONC(:,135) +! +!WR_OH/WR_UR21=-KR43*<WR_OH> + PJAC(:,135,154)=-TPK%KR43(:)*PCONC(:,135) +! +!WR_OH/WR_UR28=-KR42*<WR_OH> + PJAC(:,135,155)=-TPK%KR42(:)*PCONC(:,135) +! +!WR_OH/WR_ACID2=-KR46*<WR_OH> + PJAC(:,135,156)=-TPK%KR46(:)*PCONC(:,135) +! +!WR_OH/WR_ASO3=0.0 +! +!WR_OH/WR_ASO4=+KR24 + PJAC(:,135,158)=+TPK%KR24(:) +! +!WR_OH/WR_ASO5=0.0 +! +!WR_OH/WR_AHSO5=0.0 +! +!WR_OH/WR_AHMS=-KR19*<WR_OH> + PJAC(:,135,161)=-TPK%KR19(:)*PCONC(:,135) +! +RETURN +END SUBROUTINE SUBJ26 +! +SUBROUTINE SUBJ27 +! +!Indices 136 a 140 +! +! +!WR_HO2/NO=0.0 +! +!WR_HO2/NO2=0.0 +! +!WR_HO2/O3=0.0 +! +!WR_HO2/HONO=0.0 +! +!WR_HO2/HNO3=0.0 +! +!WR_HO2/HNO4=0.0 +! +!WR_HO2/N2O5=0.0 +! +!WR_HO2/NO3=0.0 +! +!WR_HO2/NH3=0.0 +! +!WR_HO2/HO2=+KTR12 + PJAC(:,136,10)=+TPK%KTR12(:) +! +!WR_HO2/CO=0.0 +! +!WR_HO2/H2O2=0.0 +! +!WR_HO2/SO2=0.0 +! +!WR_HO2/H2SO4=0.0 +! +!WR_HO2/OH=0.0 +! +!WR_HO2/ETHE=0.0 +! +!WR_HO2/OLEL=0.0 +! +!WR_HO2/OLEH=0.0 +! +!WR_HO2/ALKL=0.0 +! +!WR_HO2/ALKM=0.0 +! +!WR_HO2/ALKH=0.0 +! +!WR_HO2/AROH=0.0 +! +!WR_HO2/AROL=0.0 +! +!WR_HO2/AROO=0.0 +! +!WR_HO2/ARAL=0.0 +! +!WR_HO2/ARAC=0.0 +! +!WR_HO2/PAH=0.0 +! +!WR_HO2/HCHO=0.0 +! +!WR_HO2/ALD2=0.0 +! +!WR_HO2/KETL=0.0 +! +!WR_HO2/KETH=0.0 +! +!WR_HO2/MEOH=0.0 +! +!WR_HO2/ETOH=0.0 +! +!WR_HO2/ALCH=0.0 +! +!WR_HO2/ISOP=0.0 +! +!WR_HO2/BIOL=0.0 +! +!WR_HO2/BIOH=0.0 +! +!WR_HO2/MTBE=0.0 +! +!WR_HO2/MVK=0.0 +! +!WR_HO2/MCR=0.0 +! +!WR_HO2/MGLY=0.0 +! +!WR_HO2/GLY=0.0 +! +!WR_HO2/ORA1=0.0 +! +!WR_HO2/ORA2=0.0 +! +!WR_HO2/ACID=0.0 +! +!WR_HO2/UR28=0.0 +! +!WR_HO2/UR21=0.0 +! +!WR_HO2/URG2=0.0 +! +!WR_HO2/UR26=0.0 +! +!WR_HO2/RPG2=0.0 +! +!WR_HO2/RP18=0.0 +! +!WR_HO2/RPG3=0.0 +! +!WR_HO2/URG4=0.0 +! +!WR_HO2/UR8=0.0 +! +!WR_HO2/UR17=0.0 +! +!WR_HO2/UR7=0.0 +! +!WR_HO2/RPR3=0.0 +! +!WR_HO2/URG6=0.0 +! +!WR_HO2/UR22=0.0 +! +!WR_HO2/URG7=0.0 +! +!WR_HO2/RPR4=0.0 +! +!WR_HO2/RPR7=0.0 +! +!WR_HO2/RPG7=0.0 +! +!WR_HO2/URG8=0.0 +! +!WR_HO2/UR19=0.0 +! +!WR_HO2/URG9=0.0 +! +!WR_HO2/AP7=0.0 +! +!WR_HO2/URG10=0.0 +! +!WR_HO2/RPR1=0.0 +! +!WR_HO2/RPR5=0.0 +! +!WR_HO2/RPR8=0.0 +! +!WR_HO2/RP10=0.0 +! +!WR_HO2/RP11=0.0 +! +!WR_HO2/RP16=0.0 +! +!WR_HO2/RPRL=0.0 +! +!WR_HO2/APAN=0.0 +! +!WR_HO2/PAN1=0.0 +! +!WR_HO2/PAN2=0.0 +! +!WR_HO2/PAN3=0.0 +! +!WR_HO2/PAN4=0.0 +! +!WR_HO2/PAN6=0.0 +! +!WR_HO2/PAN7=0.0 +! +!WR_HO2/PAN8=0.0 +! +!WR_HO2/PN10=0.0 +! +!WR_HO2/RO2T=0.0 +! +!WR_HO2/RO21=0.0 +! +!WR_HO2/RO25=0.0 +! +!WR_HO2/WC_O3=0.0 +! +!WR_HO2/WC_H2O2=0.0 +! +!WR_HO2/WC_NO=0.0 +! +!WR_HO2/WC_NO2=0.0 +! +!WR_HO2/WC_NO3=0.0 +! +!WR_HO2/WC_N2O5=0.0 +! +!WR_HO2/WC_HONO=0.0 +! +!WR_HO2/WC_HNO3=0.0 +! +!WR_HO2/WC_HNO4=0.0 +! +!WR_HO2/WC_NH3=0.0 +! +!WR_HO2/WC_OH=0.0 +! +!WR_HO2/WC_HO2=0.0 +! +!WR_HO2/WC_CO2=0.0 +! +!WR_HO2/WC_SO2=0.0 +! +!WR_HO2/WC_H2SO4=0.0 +! +!WR_HO2/WC_RO21=0.0 +! +!WR_HO2/WC_RO25=0.0 +! +!WR_HO2/WC_MEOH=0.0 +! +!WR_HO2/WC_ETOH=0.0 +! +!WR_HO2/WC_ALCH=0.0 +! +!WR_HO2/WC_HCHO=0.0 +! +!WR_HO2/WC_ALD2=0.0 +! +!WR_HO2/WC_GLY=0.0 +! +!WR_HO2/WC_MGLY=0.0 +! +!WR_HO2/WC_KETL=0.0 +! +!WR_HO2/WC_ORA1=0.0 +! +!WR_HO2/WC_ORA2=0.0 +! +!WR_HO2/WC_ACID=0.0 +! +!WR_HO2/WC_RP16=0.0 +! +!WR_HO2/WC_UR21=0.0 +! +!WR_HO2/WC_UR28=0.0 +! +!WR_HO2/WC_ACID2=0.0 +! +!WR_HO2/WC_ASO3=0.0 +! +!WR_HO2/WC_ASO4=0.0 +! +!WR_HO2/WC_ASO5=0.0 +! +!WR_HO2/WC_AHSO5=0.0 +! +!WR_HO2/WC_AHMS=0.0 +! +!WR_HO2/WR_O3=-KR6*<WR_HO2> + PJAC(:,136,125)=-TPK%KR6(:)*PCONC(:,136) +! +!WR_HO2/WR_H2O2=+KR4*<WR_OH> + PJAC(:,136,126)=+TPK%KR4(:)*PCONC(:,135) +! +!WR_HO2/WR_NO=0.0 +! +!WR_HO2/WR_NO2=-KR9*<WR_HO2> + PJAC(:,136,128)=-TPK%KR9(:)*PCONC(:,136) +! +!WR_HO2/WR_NO3=0.0 +! +!WR_HO2/WR_N2O5=0.0 +! +!WR_HO2/WR_HONO=0.0 +! +!WR_HO2/WR_HNO3=0.0 +! +!WR_HO2/WR_HNO4=+KR10 + PJAC(:,136,133)=+TPK%KR10(:) +! +!WR_HO2/WR_NH3=0.0 +! +!WR_HO2/WR_OH=-KR3*<WR_HO2>+KR4*<WR_H2O2>+KR19*<WR_AHMS>+KR30*<WR_MEOH>+KR31*<W +!R_ETOH>+KR32*<WR_ALCH>+KR33*<WR_HCHO>+KR35*<WR_GLY>+KR36*<WR_MGLY>+KR37*<WR_KE +!TL>+KR38*<WR_ORA1>+0.11*KR41*<WR_ACID>+KR42*<WR_UR28>+0.81*KR43*<WR_UR21>+KR44 +!*<WR_RP16>+0.71*KR45*<WR_RP16> + PJAC(:,136,135)=-TPK%KR3(:)*PCONC(:,136)+TPK%KR4(:)*PCONC(:,126)+TPK%KR19(:)*P& +&CONC(:,161)+TPK%KR30(:)*PCONC(:,142)+TPK%KR31(:)*PCONC(:,143)+TPK%KR32(:)*PCON& +&C(:,144)+TPK%KR33(:)*PCONC(:,145)+TPK%KR35(:)*PCONC(:,147)+TPK%KR36(:)*PCONC(:& +&,148)+TPK%KR37(:)*PCONC(:,149)+TPK%KR38(:)*PCONC(:,150)+0.11*TPK%KR41(:)*PCONC& +&(:,152)+TPK%KR42(:)*PCONC(:,155)+0.81*TPK%KR43(:)*PCONC(:,154)+TPK%KR44(:)*PCO& +&NC(:,153)+0.71*TPK%KR45(:)*PCONC(:,153) +! +!WR_HO2/WR_HO2=-KTR43-KR3*<WR_OH>-KR5*<WR_HO2>-KR5*<WR_HO2>-KR5*<WR_HO2>-KR5*<W +!R_HO2>-KR6*<WR_O3>-KR9*<WR_NO2>-KR21*<WR_ASO5> + PJAC(:,136,136)=-TPK%KTR43(:)-TPK%KR3(:)*PCONC(:,135)-TPK%KR5(:)*PCONC(:,136)-& +&TPK%KR5(:)*PCONC(:,136)-TPK%KR5(:)*PCONC(:,136)-TPK%KR5(:)*PCONC(:,136)-TPK%KR& +&6(:)*PCONC(:,125)-TPK%KR9(:)*PCONC(:,128)-TPK%KR21(:)*PCONC(:,159) +! +!WR_HO2/WR_CO2=0.0 +! +!WR_HO2/WR_SO2=0.0 +! +!WR_HO2/WR_H2SO4=0.0 +! +!WR_HO2/WR_RO21=+2.00*KR27*<WR_RO21>+2.00*KR27*<WR_RO21> + PJAC(:,136,140)=+2.00*TPK%KR27(:)*PCONC(:,140)+2.00*TPK%KR27(:)*PCONC(:,140) +! +!WR_HO2/WR_RO25=+KR29*<WR_RO25>+KR29*<WR_RO25> + PJAC(:,136,141)=+TPK%KR29(:)*PCONC(:,141)+TPK%KR29(:)*PCONC(:,141) +! +!WR_HO2/WR_MEOH=+KR30*<WR_OH> + PJAC(:,136,142)=+TPK%KR30(:)*PCONC(:,135) +! +!WR_HO2/WR_ETOH=+KR31*<WR_OH> + PJAC(:,136,143)=+TPK%KR31(:)*PCONC(:,135) +! +!WR_HO2/WR_ALCH=+KR32*<WR_OH> + PJAC(:,136,144)=+TPK%KR32(:)*PCONC(:,135) +! +!WR_HO2/WR_HCHO=+KR33*<WR_OH> + PJAC(:,136,145)=+TPK%KR33(:)*PCONC(:,135) +! +!WR_HO2/WR_ALD2=0.0 +! +!WR_HO2/WR_GLY=+KR35*<WR_OH> + PJAC(:,136,147)=+TPK%KR35(:)*PCONC(:,135) +! +!WR_HO2/WR_MGLY=+KR36*<WR_OH> + PJAC(:,136,148)=+TPK%KR36(:)*PCONC(:,135) +! +!WR_HO2/WR_KETL=+KR37*<WR_OH> + PJAC(:,136,149)=+TPK%KR37(:)*PCONC(:,135) +! +!WR_HO2/WR_ORA1=+KR38*<WR_OH> + PJAC(:,136,150)=+TPK%KR38(:)*PCONC(:,135) +! +!WR_HO2/WR_ORA2=0.0 +! +!WR_HO2/WR_ACID=+0.11*KR41*<WR_OH> + PJAC(:,136,152)=+0.11*TPK%KR41(:)*PCONC(:,135) +! +!WR_HO2/WR_RP16=+KR44*<WR_OH>+0.71*KR45*<WR_OH> + PJAC(:,136,153)=+TPK%KR44(:)*PCONC(:,135)+0.71*TPK%KR45(:)*PCONC(:,135) +! +!WR_HO2/WR_UR21=+0.81*KR43*<WR_OH> + PJAC(:,136,154)=+0.81*TPK%KR43(:)*PCONC(:,135) +! +!WR_HO2/WR_UR28=+KR42*<WR_OH> + PJAC(:,136,155)=+TPK%KR42(:)*PCONC(:,135) +! +!WR_HO2/WR_ACID2=0.0 +! +!WR_HO2/WR_ASO3=0.0 +! +!WR_HO2/WR_ASO4=0.0 +! +!WR_HO2/WR_ASO5=-KR21*<WR_HO2> + PJAC(:,136,159)=-TPK%KR21(:)*PCONC(:,136) +! +!WR_HO2/WR_AHSO5=0.0 +! +!WR_HO2/WR_AHMS=+KR19*<WR_OH> + PJAC(:,136,161)=+TPK%KR19(:)*PCONC(:,135) +! +!WR_CO2/NO=0.0 +! +!WR_CO2/NO2=0.0 +! +!WR_CO2/O3=0.0 +! +!WR_CO2/HONO=0.0 +! +!WR_CO2/HNO3=0.0 +! +!WR_CO2/HNO4=0.0 +! +!WR_CO2/N2O5=0.0 +! +!WR_CO2/NO3=0.0 +! +!WR_CO2/NH3=0.0 +! +!WR_CO2/HO2=0.0 +! +!WR_CO2/CO=0.0 +! +!WR_CO2/H2O2=0.0 +! +!WR_CO2/SO2=0.0 +! +!WR_CO2/H2SO4=0.0 +! +!WR_CO2/OH=0.0 +! +!WR_CO2/ETHE=0.0 +! +!WR_CO2/OLEL=0.0 +! +!WR_CO2/OLEH=0.0 +! +!WR_CO2/ALKL=0.0 +! +!WR_CO2/ALKM=0.0 +! +!WR_CO2/ALKH=0.0 +! +!WR_CO2/AROH=0.0 +! +!WR_CO2/AROL=0.0 +! +!WR_CO2/AROO=0.0 +! +!WR_CO2/ARAL=0.0 +! +!WR_CO2/ARAC=0.0 +! +!WR_CO2/PAH=0.0 +! +!WR_CO2/HCHO=0.0 +! +!WR_CO2/ALD2=0.0 +! +!WR_CO2/KETL=0.0 +! +!WR_CO2/KETH=0.0 +! +!WR_CO2/MEOH=0.0 +! +!WR_CO2/ETOH=0.0 +! +!WR_CO2/ALCH=0.0 +! +!WR_CO2/ISOP=0.0 +! +!WR_CO2/BIOL=0.0 +! +!WR_CO2/BIOH=0.0 +! +!WR_CO2/MTBE=0.0 +! +!WR_CO2/MVK=0.0 +! +!WR_CO2/MCR=0.0 +! +!WR_CO2/MGLY=0.0 +! +!WR_CO2/GLY=0.0 +! +!WR_CO2/ORA1=0.0 +! +!WR_CO2/ORA2=0.0 +! +!WR_CO2/ACID=0.0 +! +!WR_CO2/UR28=0.0 +! +!WR_CO2/UR21=0.0 +! +!WR_CO2/URG2=0.0 +! +!WR_CO2/UR26=0.0 +! +!WR_CO2/RPG2=0.0 +! +!WR_CO2/RP18=0.0 +! +!WR_CO2/RPG3=0.0 +! +!WR_CO2/URG4=0.0 +! +!WR_CO2/UR8=0.0 +! +!WR_CO2/UR17=0.0 +! +!WR_CO2/UR7=0.0 +! +!WR_CO2/RPR3=0.0 +! +!WR_CO2/URG6=0.0 +! +!WR_CO2/UR22=0.0 +! +!WR_CO2/URG7=0.0 +! +!WR_CO2/RPR4=0.0 +! +!WR_CO2/RPR7=0.0 +! +!WR_CO2/RPG7=0.0 +! +!WR_CO2/URG8=0.0 +! +!WR_CO2/UR19=0.0 +! +!WR_CO2/URG9=0.0 +! +!WR_CO2/AP7=0.0 +! +!WR_CO2/URG10=0.0 +! +!WR_CO2/RPR1=0.0 +! +!WR_CO2/RPR5=0.0 +! +!WR_CO2/RPR8=0.0 +! +!WR_CO2/RP10=0.0 +! +!WR_CO2/RP11=0.0 +! +!WR_CO2/RP16=0.0 +! +!WR_CO2/RPRL=0.0 +! +!WR_CO2/APAN=0.0 +! +!WR_CO2/PAN1=0.0 +! +!WR_CO2/PAN2=0.0 +! +!WR_CO2/PAN3=0.0 +! +!WR_CO2/PAN4=0.0 +! +!WR_CO2/PAN6=0.0 +! +!WR_CO2/PAN7=0.0 +! +!WR_CO2/PAN8=0.0 +! +!WR_CO2/PN10=0.0 +! +!WR_CO2/RO2T=0.0 +! +!WR_CO2/RO21=0.0 +! +!WR_CO2/RO25=0.0 +! +!WR_CO2/WC_O3=0.0 +! +!WR_CO2/WC_H2O2=0.0 +! +!WR_CO2/WC_NO=0.0 +! +!WR_CO2/WC_NO2=0.0 +! +!WR_CO2/WC_NO3=0.0 +! +!WR_CO2/WC_N2O5=0.0 +! +!WR_CO2/WC_HONO=0.0 +! +!WR_CO2/WC_HNO3=0.0 +! +!WR_CO2/WC_HNO4=0.0 +! +!WR_CO2/WC_NH3=0.0 +! +!WR_CO2/WC_OH=0.0 +! +!WR_CO2/WC_HO2=0.0 +! +!WR_CO2/WC_CO2=0.0 +! +!WR_CO2/WC_SO2=0.0 +! +!WR_CO2/WC_H2SO4=0.0 +! +!WR_CO2/WC_RO21=0.0 +! +!WR_CO2/WC_RO25=0.0 +! +!WR_CO2/WC_MEOH=0.0 +! +!WR_CO2/WC_ETOH=0.0 +! +!WR_CO2/WC_ALCH=0.0 +! +!WR_CO2/WC_HCHO=0.0 +! +!WR_CO2/WC_ALD2=0.0 +! +!WR_CO2/WC_GLY=0.0 +! +!WR_CO2/WC_MGLY=0.0 +! +!WR_CO2/WC_KETL=0.0 +! +!WR_CO2/WC_ORA1=0.0 +! +!WR_CO2/WC_ORA2=0.0 +! +!WR_CO2/WC_ACID=0.0 +! +!WR_CO2/WC_RP16=0.0 +! +!WR_CO2/WC_UR21=0.0 +! +!WR_CO2/WC_UR28=0.0 +! +!WR_CO2/WC_ACID2=0.0 +! +!WR_CO2/WC_ASO3=0.0 +! +!WR_CO2/WC_ASO4=0.0 +! +!WR_CO2/WC_ASO5=0.0 +! +!WR_CO2/WC_AHSO5=0.0 +! +!WR_CO2/WC_AHMS=0.0 +! +!WR_CO2/WR_O3=0.0 +! +!WR_CO2/WR_H2O2=0.0 +! +!WR_CO2/WR_NO=0.0 +! +!WR_CO2/WR_NO2=0.0 +! +!WR_CO2/WR_NO3=0.0 +! +!WR_CO2/WR_N2O5=0.0 +! +!WR_CO2/WR_HONO=0.0 +! +!WR_CO2/WR_HNO3=0.0 +! +!WR_CO2/WR_HNO4=0.0 +! +!WR_CO2/WR_NH3=0.0 +! +!WR_CO2/WR_OH=+KR34*<WR_ALD2>+KR37*<WR_KETL>+KR38*<WR_ORA1>+KR40*<WR_ACID>+2*KR +!42*<WR_UR28>+0.43*KR43*<WR_UR21>+2*KR45*<WR_RP16> + PJAC(:,137,135)=+TPK%KR34(:)*PCONC(:,146)+TPK%KR37(:)*PCONC(:,149)+TPK%KR38(:)& +&*PCONC(:,150)+TPK%KR40(:)*PCONC(:,152)+2*TPK%KR42(:)*PCONC(:,155)+0.43*TPK%KR4& +&3(:)*PCONC(:,154)+2*TPK%KR45(:)*PCONC(:,153) +! +!WR_CO2/WR_HO2=0.0 +! +!WR_CO2/WR_CO2=-KTR44 + PJAC(:,137,137)=-TPK%KTR44(:) +! +!WR_CO2/WR_SO2=0.0 +! +!WR_CO2/WR_H2SO4=0.0 +! +!WR_CO2/WR_RO21=0.0 +! +!WR_CO2/WR_RO25=0.0 +! +!WR_CO2/WR_MEOH=0.0 +! +!WR_CO2/WR_ETOH=0.0 +! +!WR_CO2/WR_ALCH=0.0 +! +!WR_CO2/WR_HCHO=0.0 +! +!WR_CO2/WR_ALD2=+KR34*<WR_OH> + PJAC(:,137,146)=+TPK%KR34(:)*PCONC(:,135) +! +!WR_CO2/WR_GLY=0.0 +! +!WR_CO2/WR_MGLY=0.0 +! +!WR_CO2/WR_KETL=+KR37*<WR_OH> + PJAC(:,137,149)=+TPK%KR37(:)*PCONC(:,135) +! +!WR_CO2/WR_ORA1=+KR38*<WR_OH> + PJAC(:,137,150)=+TPK%KR38(:)*PCONC(:,135) +! +!WR_CO2/WR_ORA2=0.0 +! +!WR_CO2/WR_ACID=+KR40*<WR_OH> + PJAC(:,137,152)=+TPK%KR40(:)*PCONC(:,135) +! +!WR_CO2/WR_RP16=+2*KR45*<WR_OH> + PJAC(:,137,153)=+2*TPK%KR45(:)*PCONC(:,135) +! +!WR_CO2/WR_UR21=+0.43*KR43*<WR_OH> + PJAC(:,137,154)=+0.43*TPK%KR43(:)*PCONC(:,135) +! +!WR_CO2/WR_UR28=+2*KR42*<WR_OH> + PJAC(:,137,155)=+2*TPK%KR42(:)*PCONC(:,135) +! +!WR_CO2/WR_ACID2=0.0 +! +!WR_CO2/WR_ASO3=0.0 +! +!WR_CO2/WR_ASO4=0.0 +! +!WR_CO2/WR_ASO5=0.0 +! +!WR_CO2/WR_AHSO5=0.0 +! +!WR_CO2/WR_AHMS=0.0 +! +!WR_SO2/NO=0.0 +! +!WR_SO2/NO2=0.0 +! +!WR_SO2/O3=0.0 +! +!WR_SO2/HONO=0.0 +! +!WR_SO2/HNO3=0.0 +! +!WR_SO2/HNO4=0.0 +! +!WR_SO2/N2O5=0.0 +! +!WR_SO2/NO3=0.0 +! +!WR_SO2/NH3=0.0 +! +!WR_SO2/HO2=0.0 +! +!WR_SO2/CO=0.0 +! +!WR_SO2/H2O2=0.0 +! +!WR_SO2/SO2=+KTR14 + PJAC(:,138,13)=+TPK%KTR14(:) +! +!WR_SO2/H2SO4=0.0 +! +!WR_SO2/OH=0.0 +! +!WR_SO2/ETHE=0.0 +! +!WR_SO2/OLEL=0.0 +! +!WR_SO2/OLEH=0.0 +! +!WR_SO2/ALKL=0.0 +! +!WR_SO2/ALKM=0.0 +! +!WR_SO2/ALKH=0.0 +! +!WR_SO2/AROH=0.0 +! +!WR_SO2/AROL=0.0 +! +!WR_SO2/AROO=0.0 +! +!WR_SO2/ARAL=0.0 +! +!WR_SO2/ARAC=0.0 +! +!WR_SO2/PAH=0.0 +! +!WR_SO2/HCHO=0.0 +! +!WR_SO2/ALD2=0.0 +! +!WR_SO2/KETL=0.0 +! +!WR_SO2/KETH=0.0 +! +!WR_SO2/MEOH=0.0 +! +!WR_SO2/ETOH=0.0 +! +!WR_SO2/ALCH=0.0 +! +!WR_SO2/ISOP=0.0 +! +!WR_SO2/BIOL=0.0 +! +!WR_SO2/BIOH=0.0 +! +!WR_SO2/MTBE=0.0 +! +!WR_SO2/MVK=0.0 +! +!WR_SO2/MCR=0.0 +! +!WR_SO2/MGLY=0.0 +! +!WR_SO2/GLY=0.0 +! +!WR_SO2/ORA1=0.0 +! +!WR_SO2/ORA2=0.0 +! +!WR_SO2/ACID=0.0 +! +!WR_SO2/UR28=0.0 +! +!WR_SO2/UR21=0.0 +! +!WR_SO2/URG2=0.0 +! +!WR_SO2/UR26=0.0 +! +!WR_SO2/RPG2=0.0 +! +!WR_SO2/RP18=0.0 +! +!WR_SO2/RPG3=0.0 +! +!WR_SO2/URG4=0.0 +! +!WR_SO2/UR8=0.0 +! +!WR_SO2/UR17=0.0 +! +!WR_SO2/UR7=0.0 +! +!WR_SO2/RPR3=0.0 +! +!WR_SO2/URG6=0.0 +! +!WR_SO2/UR22=0.0 +! +!WR_SO2/URG7=0.0 +! +!WR_SO2/RPR4=0.0 +! +!WR_SO2/RPR7=0.0 +! +!WR_SO2/RPG7=0.0 +! +!WR_SO2/URG8=0.0 +! +!WR_SO2/UR19=0.0 +! +!WR_SO2/URG9=0.0 +! +!WR_SO2/AP7=0.0 +! +!WR_SO2/URG10=0.0 +! +!WR_SO2/RPR1=0.0 +! +!WR_SO2/RPR5=0.0 +! +!WR_SO2/RPR8=0.0 +! +!WR_SO2/RP10=0.0 +! +!WR_SO2/RP11=0.0 +! +!WR_SO2/RP16=0.0 +! +!WR_SO2/RPRL=0.0 +! +!WR_SO2/APAN=0.0 +! +!WR_SO2/PAN1=0.0 +! +!WR_SO2/PAN2=0.0 +! +!WR_SO2/PAN3=0.0 +! +!WR_SO2/PAN4=0.0 +! +!WR_SO2/PAN6=0.0 +! +!WR_SO2/PAN7=0.0 +! +!WR_SO2/PAN8=0.0 +! +!WR_SO2/PN10=0.0 +! +!WR_SO2/RO2T=0.0 +! +!WR_SO2/RO21=0.0 +! +!WR_SO2/RO25=0.0 +! +!WR_SO2/WC_O3=0.0 +! +!WR_SO2/WC_H2O2=0.0 +! +!WR_SO2/WC_NO=0.0 +! +!WR_SO2/WC_NO2=0.0 +! +!WR_SO2/WC_NO3=0.0 +! +!WR_SO2/WC_N2O5=0.0 +! +!WR_SO2/WC_HONO=0.0 +! +!WR_SO2/WC_HNO3=0.0 +! +!WR_SO2/WC_HNO4=0.0 +! +!WR_SO2/WC_NH3=0.0 +! +!WR_SO2/WC_OH=0.0 +! +!WR_SO2/WC_HO2=0.0 +! +!WR_SO2/WC_CO2=0.0 +! +!WR_SO2/WC_SO2=0.0 +! +!WR_SO2/WC_H2SO4=0.0 +! +!WR_SO2/WC_RO21=0.0 +! +!WR_SO2/WC_RO25=0.0 +! +!WR_SO2/WC_MEOH=0.0 +! +!WR_SO2/WC_ETOH=0.0 +! +!WR_SO2/WC_ALCH=0.0 +! +!WR_SO2/WC_HCHO=0.0 +! +!WR_SO2/WC_ALD2=0.0 +! +!WR_SO2/WC_GLY=0.0 +! +!WR_SO2/WC_MGLY=0.0 +! +!WR_SO2/WC_KETL=0.0 +! +!WR_SO2/WC_ORA1=0.0 +! +!WR_SO2/WC_ORA2=0.0 +! +!WR_SO2/WC_ACID=0.0 +! +!WR_SO2/WC_RP16=0.0 +! +!WR_SO2/WC_UR21=0.0 +! +!WR_SO2/WC_UR28=0.0 +! +!WR_SO2/WC_ACID2=0.0 +! +!WR_SO2/WC_ASO3=0.0 +! +!WR_SO2/WC_ASO4=0.0 +! +!WR_SO2/WC_ASO5=0.0 +! +!WR_SO2/WC_AHSO5=0.0 +! +!WR_SO2/WC_AHMS=0.0 +! +!WR_SO2/WR_O3=-KR25*<WR_SO2> + PJAC(:,138,125)=-TPK%KR25(:)*PCONC(:,138) +! +!WR_SO2/WR_H2O2=-KR26*<WR_SO2> + PJAC(:,138,126)=-TPK%KR26(:)*PCONC(:,138) +! +!WR_SO2/WR_NO=0.0 +! +!WR_SO2/WR_NO2=0.0 +! +!WR_SO2/WR_NO3=-KR16*<WR_SO2> + PJAC(:,138,129)=-TPK%KR16(:)*PCONC(:,138) +! +!WR_SO2/WR_N2O5=0.0 +! +!WR_SO2/WR_HONO=0.0 +! +!WR_SO2/WR_HNO3=0.0 +! +!WR_SO2/WR_HNO4=-KR12*<WR_SO2> + PJAC(:,138,133)=-TPK%KR12(:)*PCONC(:,138) +! +!WR_SO2/WR_NH3=0.0 +! +!WR_SO2/WR_OH=-KR7*<WR_SO2>+KR19*<WR_AHMS> + PJAC(:,138,135)=-TPK%KR7(:)*PCONC(:,138)+TPK%KR19(:)*PCONC(:,161) +! +!WR_SO2/WR_HO2=0.0 +! +!WR_SO2/WR_CO2=0.0 +! +!WR_SO2/WR_SO2=-KTR45-KR7*<WR_OH>-KR12*<WR_HNO4>-KR16*<WR_NO3>-KR17*<WR_HCHO>-K +!R23*<WR_AHSO5>-KR25*<WR_O3>-KR26*<WR_H2O2>-KR28*<WR_RO21> + PJAC(:,138,138)=-TPK%KTR45(:)-TPK%KR7(:)*PCONC(:,135)-TPK%KR12(:)*PCONC(:,133)& +&-TPK%KR16(:)*PCONC(:,129)-TPK%KR17(:)*PCONC(:,145)-TPK%KR23(:)*PCONC(:,160)-TP& +&K%KR25(:)*PCONC(:,125)-TPK%KR26(:)*PCONC(:,126)-TPK%KR28(:)*PCONC(:,140) +! +!WR_SO2/WR_H2SO4=0.0 +! +!WR_SO2/WR_RO21=-KR28*<WR_SO2> + PJAC(:,138,140)=-TPK%KR28(:)*PCONC(:,138) +! +!WR_SO2/WR_RO25=0.0 +! +!WR_SO2/WR_MEOH=0.0 +! +!WR_SO2/WR_ETOH=0.0 +! +!WR_SO2/WR_ALCH=0.0 +! +!WR_SO2/WR_HCHO=-KR17*<WR_SO2> + PJAC(:,138,145)=-TPK%KR17(:)*PCONC(:,138) +! +!WR_SO2/WR_ALD2=0.0 +! +!WR_SO2/WR_GLY=0.0 +! +!WR_SO2/WR_MGLY=0.0 +! +!WR_SO2/WR_KETL=0.0 +! +!WR_SO2/WR_ORA1=0.0 +! +!WR_SO2/WR_ORA2=0.0 +! +!WR_SO2/WR_ACID=0.0 +! +!WR_SO2/WR_RP16=0.0 +! +!WR_SO2/WR_UR21=0.0 +! +!WR_SO2/WR_UR28=0.0 +! +!WR_SO2/WR_ACID2=0.0 +! +!WR_SO2/WR_ASO3=0.0 +! +!WR_SO2/WR_ASO4=0.0 +! +!WR_SO2/WR_ASO5=0.0 +! +!WR_SO2/WR_AHSO5=-KR23*<WR_SO2> + PJAC(:,138,160)=-TPK%KR23(:)*PCONC(:,138) +! +!WR_SO2/WR_AHMS=+KR18+KR19*<WR_OH> + PJAC(:,138,161)=+TPK%KR18(:)+TPK%KR19(:)*PCONC(:,135) +! +!WR_H2SO4/NO=0.0 +! +!WR_H2SO4/NO2=0.0 +! +!WR_H2SO4/O3=0.0 +! +!WR_H2SO4/HONO=0.0 +! +!WR_H2SO4/HNO3=0.0 +! +!WR_H2SO4/HNO4=0.0 +! +!WR_H2SO4/N2O5=0.0 +! +!WR_H2SO4/NO3=0.0 +! +!WR_H2SO4/NH3=0.0 +! +!WR_H2SO4/HO2=0.0 +! +!WR_H2SO4/CO=0.0 +! +!WR_H2SO4/H2O2=0.0 +! +!WR_H2SO4/SO2=0.0 +! +!WR_H2SO4/H2SO4=+KTR15 + PJAC(:,139,14)=+TPK%KTR15(:) +! +!WR_H2SO4/OH=0.0 +! +!WR_H2SO4/ETHE=0.0 +! +!WR_H2SO4/OLEL=0.0 +! +!WR_H2SO4/OLEH=0.0 +! +!WR_H2SO4/ALKL=0.0 +! +!WR_H2SO4/ALKM=0.0 +! +!WR_H2SO4/ALKH=0.0 +! +!WR_H2SO4/AROH=0.0 +! +!WR_H2SO4/AROL=0.0 +! +!WR_H2SO4/AROO=0.0 +! +!WR_H2SO4/ARAL=0.0 +! +!WR_H2SO4/ARAC=0.0 +! +!WR_H2SO4/PAH=0.0 +! +!WR_H2SO4/HCHO=0.0 +! +!WR_H2SO4/ALD2=0.0 +! +!WR_H2SO4/KETL=0.0 +! +!WR_H2SO4/KETH=0.0 +! +!WR_H2SO4/MEOH=0.0 +! +!WR_H2SO4/ETOH=0.0 +! +!WR_H2SO4/ALCH=0.0 +! +!WR_H2SO4/ISOP=0.0 +! +!WR_H2SO4/BIOL=0.0 +! +!WR_H2SO4/BIOH=0.0 +! +!WR_H2SO4/MTBE=0.0 +! +!WR_H2SO4/MVK=0.0 +! +!WR_H2SO4/MCR=0.0 +! +!WR_H2SO4/MGLY=0.0 +! +!WR_H2SO4/GLY=0.0 +! +!WR_H2SO4/ORA1=0.0 +! +!WR_H2SO4/ORA2=0.0 +! +!WR_H2SO4/ACID=0.0 +! +!WR_H2SO4/UR28=0.0 +! +!WR_H2SO4/UR21=0.0 +! +!WR_H2SO4/URG2=0.0 +! +!WR_H2SO4/UR26=0.0 +! +!WR_H2SO4/RPG2=0.0 +! +!WR_H2SO4/RP18=0.0 +! +!WR_H2SO4/RPG3=0.0 +! +!WR_H2SO4/URG4=0.0 +! +!WR_H2SO4/UR8=0.0 +! +!WR_H2SO4/UR17=0.0 +! +!WR_H2SO4/UR7=0.0 +! +!WR_H2SO4/RPR3=0.0 +! +!WR_H2SO4/URG6=0.0 +! +!WR_H2SO4/UR22=0.0 +! +!WR_H2SO4/URG7=0.0 +! +!WR_H2SO4/RPR4=0.0 +! +!WR_H2SO4/RPR7=0.0 +! +!WR_H2SO4/RPG7=0.0 +! +!WR_H2SO4/URG8=0.0 +! +!WR_H2SO4/UR19=0.0 +! +!WR_H2SO4/URG9=0.0 +! +!WR_H2SO4/AP7=0.0 +! +!WR_H2SO4/URG10=0.0 +! +!WR_H2SO4/RPR1=0.0 +! +!WR_H2SO4/RPR5=0.0 +! +!WR_H2SO4/RPR8=0.0 +! +!WR_H2SO4/RP10=0.0 +! +!WR_H2SO4/RP11=0.0 +! +!WR_H2SO4/RP16=0.0 +! +!WR_H2SO4/RPRL=0.0 +! +!WR_H2SO4/APAN=0.0 +! +!WR_H2SO4/PAN1=0.0 +! +!WR_H2SO4/PAN2=0.0 +! +!WR_H2SO4/PAN3=0.0 +! +!WR_H2SO4/PAN4=0.0 +! +!WR_H2SO4/PAN6=0.0 +! +!WR_H2SO4/PAN7=0.0 +! +!WR_H2SO4/PAN8=0.0 +! +!WR_H2SO4/PN10=0.0 +! +!WR_H2SO4/RO2T=0.0 +! +!WR_H2SO4/RO21=0.0 +! +!WR_H2SO4/RO25=0.0 +! +!WR_H2SO4/WC_O3=0.0 +! +!WR_H2SO4/WC_H2O2=0.0 +! +!WR_H2SO4/WC_NO=0.0 +! +!WR_H2SO4/WC_NO2=0.0 +! +!WR_H2SO4/WC_NO3=0.0 +! +!WR_H2SO4/WC_N2O5=0.0 +! +!WR_H2SO4/WC_HONO=0.0 +! +!WR_H2SO4/WC_HNO3=0.0 +! +!WR_H2SO4/WC_HNO4=0.0 +! +!WR_H2SO4/WC_NH3=0.0 +! +!WR_H2SO4/WC_OH=0.0 +! +!WR_H2SO4/WC_HO2=0.0 +! +!WR_H2SO4/WC_CO2=0.0 +! +!WR_H2SO4/WC_SO2=0.0 +! +!WR_H2SO4/WC_H2SO4=0.0 +! +!WR_H2SO4/WC_RO21=0.0 +! +!WR_H2SO4/WC_RO25=0.0 +! +!WR_H2SO4/WC_MEOH=0.0 +! +!WR_H2SO4/WC_ETOH=0.0 +! +!WR_H2SO4/WC_ALCH=0.0 +! +!WR_H2SO4/WC_HCHO=0.0 +! +!WR_H2SO4/WC_ALD2=0.0 +! +!WR_H2SO4/WC_GLY=0.0 +! +!WR_H2SO4/WC_MGLY=0.0 +! +!WR_H2SO4/WC_KETL=0.0 +! +!WR_H2SO4/WC_ORA1=0.0 +! +!WR_H2SO4/WC_ORA2=0.0 +! +!WR_H2SO4/WC_ACID=0.0 +! +!WR_H2SO4/WC_RP16=0.0 +! +!WR_H2SO4/WC_UR21=0.0 +! +!WR_H2SO4/WC_UR28=0.0 +! +!WR_H2SO4/WC_ACID2=0.0 +! +!WR_H2SO4/WC_ASO3=0.0 +! +!WR_H2SO4/WC_ASO4=0.0 +! +!WR_H2SO4/WC_ASO5=0.0 +! +!WR_H2SO4/WC_AHSO5=0.0 +! +!WR_H2SO4/WC_AHMS=0.0 +! +!WR_H2SO4/WR_O3=+KR25*<WR_SO2> + PJAC(:,139,125)=+TPK%KR25(:)*PCONC(:,138) +! +!WR_H2SO4/WR_H2O2=+KR26*<WR_SO2> + PJAC(:,139,126)=+TPK%KR26(:)*PCONC(:,138) +! +!WR_H2SO4/WR_NO=0.0 +! +!WR_H2SO4/WR_NO2=0.0 +! +!WR_H2SO4/WR_NO3=-KR15*<WR_H2SO4> + PJAC(:,139,129)=-TPK%KR15(:)*PCONC(:,139) +! +!WR_H2SO4/WR_N2O5=0.0 +! +!WR_H2SO4/WR_HONO=0.0 +! +!WR_H2SO4/WR_HNO3=0.0 +! +!WR_H2SO4/WR_HNO4=+KR12*<WR_SO2> + PJAC(:,139,133)=+TPK%KR12(:)*PCONC(:,138) +! +!WR_H2SO4/WR_NH3=0.0 +! +!WR_H2SO4/WR_OH=0.0 +! +!WR_H2SO4/WR_HO2=0.0 +! +!WR_H2SO4/WR_CO2=0.0 +! +!WR_H2SO4/WR_SO2=+KR12*<WR_HNO4>+2.00*KR23*<WR_AHSO5>+KR25*<WR_O3>+KR26*<WR_H2O +!2> + PJAC(:,139,138)=+TPK%KR12(:)*PCONC(:,133)+2.00*TPK%KR23(:)*PCONC(:,160)+TPK%KR& +&25(:)*PCONC(:,125)+TPK%KR26(:)*PCONC(:,126) +! +!WR_H2SO4/WR_H2SO4=-KTR46-KR15*<WR_NO3> + PJAC(:,139,139)=-TPK%KTR46(:)-TPK%KR15(:)*PCONC(:,129) +! +!WR_H2SO4/WR_RO21=0.0 +! +!WR_H2SO4/WR_RO25=0.0 +! +!WR_H2SO4/WR_MEOH=0.0 +! +!WR_H2SO4/WR_ETOH=0.0 +! +!WR_H2SO4/WR_ALCH=0.0 +! +!WR_H2SO4/WR_HCHO=0.0 +! +!WR_H2SO4/WR_ALD2=0.0 +! +!WR_H2SO4/WR_GLY=0.0 +! +!WR_H2SO4/WR_MGLY=0.0 +! +!WR_H2SO4/WR_KETL=0.0 +! +!WR_H2SO4/WR_ORA1=0.0 +! +!WR_H2SO4/WR_ORA2=0.0 +! +!WR_H2SO4/WR_ACID=0.0 +! +!WR_H2SO4/WR_RP16=0.0 +! +!WR_H2SO4/WR_UR21=0.0 +! +!WR_H2SO4/WR_UR28=0.0 +! +!WR_H2SO4/WR_ACID2=0.0 +! +!WR_H2SO4/WR_ASO3=0.0 +! +!WR_H2SO4/WR_ASO4=+KR24 + PJAC(:,139,158)=+TPK%KR24(:) +! +!WR_H2SO4/WR_ASO5=0.0 +! +!WR_H2SO4/WR_AHSO5=+2.00*KR23*<WR_SO2> + PJAC(:,139,160)=+2.00*TPK%KR23(:)*PCONC(:,138) +! +!WR_H2SO4/WR_AHMS=0.0 +! +!WR_RO21/NO=0.0 +! +!WR_RO21/NO2=0.0 +! +!WR_RO21/O3=0.0 +! +!WR_RO21/HONO=0.0 +! +!WR_RO21/HNO3=0.0 +! +!WR_RO21/HNO4=0.0 +! +!WR_RO21/N2O5=0.0 +! +!WR_RO21/NO3=0.0 +! +!WR_RO21/NH3=0.0 +! +!WR_RO21/HO2=0.0 +! +!WR_RO21/CO=0.0 +! +!WR_RO21/H2O2=0.0 +! +!WR_RO21/SO2=0.0 +! +!WR_RO21/H2SO4=0.0 +! +!WR_RO21/OH=0.0 +! +!WR_RO21/ETHE=0.0 +! +!WR_RO21/OLEL=0.0 +! +!WR_RO21/OLEH=0.0 +! +!WR_RO21/ALKL=0.0 +! +!WR_RO21/ALKM=0.0 +! +!WR_RO21/ALKH=0.0 +! +!WR_RO21/AROH=0.0 +! +!WR_RO21/AROL=0.0 +! +!WR_RO21/AROO=0.0 +! +!WR_RO21/ARAL=0.0 +! +!WR_RO21/ARAC=0.0 +! +!WR_RO21/PAH=0.0 +! +!WR_RO21/HCHO=0.0 +! +!WR_RO21/ALD2=0.0 +! +!WR_RO21/KETL=0.0 +! +!WR_RO21/KETH=0.0 +! +!WR_RO21/MEOH=0.0 +! +!WR_RO21/ETOH=0.0 +! +!WR_RO21/ALCH=0.0 +! +!WR_RO21/ISOP=0.0 +! +!WR_RO21/BIOL=0.0 +! +!WR_RO21/BIOH=0.0 +! +!WR_RO21/MTBE=0.0 +! +!WR_RO21/MVK=0.0 +! +!WR_RO21/MCR=0.0 +! +!WR_RO21/MGLY=0.0 +! +!WR_RO21/GLY=0.0 +! +!WR_RO21/ORA1=0.0 +! +!WR_RO21/ORA2=0.0 +! +!WR_RO21/ACID=0.0 +! +!WR_RO21/UR28=0.0 +! +!WR_RO21/UR21=0.0 +! +!WR_RO21/URG2=0.0 +! +!WR_RO21/UR26=0.0 +! +!WR_RO21/RPG2=0.0 +! +!WR_RO21/RP18=0.0 +! +!WR_RO21/RPG3=0.0 +! +!WR_RO21/URG4=0.0 +! +!WR_RO21/UR8=0.0 +! +!WR_RO21/UR17=0.0 +! +!WR_RO21/UR7=0.0 +! +!WR_RO21/RPR3=0.0 +! +!WR_RO21/URG6=0.0 +! +!WR_RO21/UR22=0.0 +! +!WR_RO21/URG7=0.0 +! +!WR_RO21/RPR4=0.0 +! +!WR_RO21/RPR7=0.0 +! +!WR_RO21/RPG7=0.0 +! +!WR_RO21/URG8=0.0 +! +!WR_RO21/UR19=0.0 +! +!WR_RO21/URG9=0.0 +! +!WR_RO21/AP7=0.0 +! +!WR_RO21/URG10=0.0 +! +!WR_RO21/RPR1=0.0 +! +!WR_RO21/RPR5=0.0 +! +!WR_RO21/RPR8=0.0 +! +!WR_RO21/RP10=0.0 +! +!WR_RO21/RP11=0.0 +! +!WR_RO21/RP16=0.0 +! +!WR_RO21/RPRL=0.0 +! +!WR_RO21/APAN=0.0 +! +!WR_RO21/PAN1=0.0 +! +!WR_RO21/PAN2=0.0 +! +!WR_RO21/PAN3=0.0 +! +!WR_RO21/PAN4=0.0 +! +!WR_RO21/PAN6=0.0 +! +!WR_RO21/PAN7=0.0 +! +!WR_RO21/PAN8=0.0 +! +!WR_RO21/PN10=0.0 +! +!WR_RO21/RO2T=0.0 +! +!WR_RO21/RO21=+KTR16 + PJAC(:,140,86)=+TPK%KTR16(:) +! +!WR_RO21/RO25=0.0 +! +!WR_RO21/WC_O3=0.0 +! +!WR_RO21/WC_H2O2=0.0 +! +!WR_RO21/WC_NO=0.0 +! +!WR_RO21/WC_NO2=0.0 +! +!WR_RO21/WC_NO3=0.0 +! +!WR_RO21/WC_N2O5=0.0 +! +!WR_RO21/WC_HONO=0.0 +! +!WR_RO21/WC_HNO3=0.0 +! +!WR_RO21/WC_HNO4=0.0 +! +!WR_RO21/WC_NH3=0.0 +! +!WR_RO21/WC_OH=0.0 +! +!WR_RO21/WC_HO2=0.0 +! +!WR_RO21/WC_CO2=0.0 +! +!WR_RO21/WC_SO2=0.0 +! +!WR_RO21/WC_H2SO4=0.0 +! +!WR_RO21/WC_RO21=0.0 +! +!WR_RO21/WC_RO25=0.0 +! +!WR_RO21/WC_MEOH=0.0 +! +!WR_RO21/WC_ETOH=0.0 +! +!WR_RO21/WC_ALCH=0.0 +! +!WR_RO21/WC_HCHO=0.0 +! +!WR_RO21/WC_ALD2=0.0 +! +!WR_RO21/WC_GLY=0.0 +! +!WR_RO21/WC_MGLY=0.0 +! +!WR_RO21/WC_KETL=0.0 +! +!WR_RO21/WC_ORA1=0.0 +! +!WR_RO21/WC_ORA2=0.0 +! +!WR_RO21/WC_ACID=0.0 +! +!WR_RO21/WC_RP16=0.0 +! +!WR_RO21/WC_UR21=0.0 +! +!WR_RO21/WC_UR28=0.0 +! +!WR_RO21/WC_ACID2=0.0 +! +!WR_RO21/WC_ASO3=0.0 +! +!WR_RO21/WC_ASO4=0.0 +! +!WR_RO21/WC_ASO5=0.0 +! +!WR_RO21/WC_AHSO5=0.0 +! +!WR_RO21/WC_AHMS=0.0 +! +!WR_RO21/WR_O3=0.0 +! +!WR_RO21/WR_H2O2=0.0 +! +!WR_RO21/WR_NO=0.0 +! +!WR_RO21/WR_NO2=0.0 +! +!WR_RO21/WR_NO3=0.0 +! +!WR_RO21/WR_N2O5=0.0 +! +!WR_RO21/WR_HONO=0.0 +! +!WR_RO21/WR_HNO3=0.0 +! +!WR_RO21/WR_HNO4=0.0 +! +!WR_RO21/WR_NH3=0.0 +! +!WR_RO21/WR_OH=+0.50*KR34*<WR_ALD2>+KR37*<WR_KETL> + PJAC(:,140,135)=+0.50*TPK%KR34(:)*PCONC(:,146)+TPK%KR37(:)*PCONC(:,149) +! +!WR_RO21/WR_HO2=0.0 +! +!WR_RO21/WR_CO2=0.0 +! +!WR_RO21/WR_SO2=-KR28*<WR_RO21> + PJAC(:,140,138)=-TPK%KR28(:)*PCONC(:,140) +! +!WR_RO21/WR_H2SO4=0.0 +! +!WR_RO21/WR_RO21=-KTR47-KR27*<WR_RO21>-KR27*<WR_RO21>-KR27*<WR_RO21>-KR27*<WR_R +!O21>-KR28*<WR_SO2> + PJAC(:,140,140)=-TPK%KTR47(:)-TPK%KR27(:)*PCONC(:,140)-TPK%KR27(:)*PCONC(:,140& +&)-TPK%KR27(:)*PCONC(:,140)-TPK%KR27(:)*PCONC(:,140)-TPK%KR28(:)*PCONC(:,138) +! +!WR_RO21/WR_RO25=0.0 +! +!WR_RO21/WR_MEOH=0.0 +! +!WR_RO21/WR_ETOH=0.0 +! +!WR_RO21/WR_ALCH=0.0 +! +!WR_RO21/WR_HCHO=0.0 +! +!WR_RO21/WR_ALD2=+0.50*KR34*<WR_OH> + PJAC(:,140,146)=+0.50*TPK%KR34(:)*PCONC(:,135) +! +!WR_RO21/WR_GLY=0.0 +! +!WR_RO21/WR_MGLY=0.0 +! +!WR_RO21/WR_KETL=+KR37*<WR_OH> + PJAC(:,140,149)=+TPK%KR37(:)*PCONC(:,135) +! +!WR_RO21/WR_ORA1=0.0 +! +!WR_RO21/WR_ORA2=0.0 +! +!WR_RO21/WR_ACID=0.0 +! +!WR_RO21/WR_RP16=0.0 +! +!WR_RO21/WR_UR21=0.0 +! +!WR_RO21/WR_UR28=0.0 +! +!WR_RO21/WR_ACID2=0.0 +! +!WR_RO21/WR_ASO3=0.0 +! +!WR_RO21/WR_ASO4=0.0 +! +!WR_RO21/WR_ASO5=0.0 +! +!WR_RO21/WR_AHSO5=0.0 +! +!WR_RO21/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ27 +! +SUBROUTINE SUBJ28 +! +!Indices 141 a 145 +! +! +!WR_RO25/NO=0.0 +! +!WR_RO25/NO2=0.0 +! +!WR_RO25/O3=0.0 +! +!WR_RO25/HONO=0.0 +! +!WR_RO25/HNO3=0.0 +! +!WR_RO25/HNO4=0.0 +! +!WR_RO25/N2O5=0.0 +! +!WR_RO25/NO3=0.0 +! +!WR_RO25/NH3=0.0 +! +!WR_RO25/HO2=0.0 +! +!WR_RO25/CO=0.0 +! +!WR_RO25/H2O2=0.0 +! +!WR_RO25/SO2=0.0 +! +!WR_RO25/H2SO4=0.0 +! +!WR_RO25/OH=0.0 +! +!WR_RO25/ETHE=0.0 +! +!WR_RO25/OLEL=0.0 +! +!WR_RO25/OLEH=0.0 +! +!WR_RO25/ALKL=0.0 +! +!WR_RO25/ALKM=0.0 +! +!WR_RO25/ALKH=0.0 +! +!WR_RO25/AROH=0.0 +! +!WR_RO25/AROL=0.0 +! +!WR_RO25/AROO=0.0 +! +!WR_RO25/ARAL=0.0 +! +!WR_RO25/ARAC=0.0 +! +!WR_RO25/PAH=0.0 +! +!WR_RO25/HCHO=0.0 +! +!WR_RO25/ALD2=0.0 +! +!WR_RO25/KETL=0.0 +! +!WR_RO25/KETH=0.0 +! +!WR_RO25/MEOH=0.0 +! +!WR_RO25/ETOH=0.0 +! +!WR_RO25/ALCH=0.0 +! +!WR_RO25/ISOP=0.0 +! +!WR_RO25/BIOL=0.0 +! +!WR_RO25/BIOH=0.0 +! +!WR_RO25/MTBE=0.0 +! +!WR_RO25/MVK=0.0 +! +!WR_RO25/MCR=0.0 +! +!WR_RO25/MGLY=0.0 +! +!WR_RO25/GLY=0.0 +! +!WR_RO25/ORA1=0.0 +! +!WR_RO25/ORA2=0.0 +! +!WR_RO25/ACID=0.0 +! +!WR_RO25/UR28=0.0 +! +!WR_RO25/UR21=0.0 +! +!WR_RO25/URG2=0.0 +! +!WR_RO25/UR26=0.0 +! +!WR_RO25/RPG2=0.0 +! +!WR_RO25/RP18=0.0 +! +!WR_RO25/RPG3=0.0 +! +!WR_RO25/URG4=0.0 +! +!WR_RO25/UR8=0.0 +! +!WR_RO25/UR17=0.0 +! +!WR_RO25/UR7=0.0 +! +!WR_RO25/RPR3=0.0 +! +!WR_RO25/URG6=0.0 +! +!WR_RO25/UR22=0.0 +! +!WR_RO25/URG7=0.0 +! +!WR_RO25/RPR4=0.0 +! +!WR_RO25/RPR7=0.0 +! +!WR_RO25/RPG7=0.0 +! +!WR_RO25/URG8=0.0 +! +!WR_RO25/UR19=0.0 +! +!WR_RO25/URG9=0.0 +! +!WR_RO25/AP7=0.0 +! +!WR_RO25/URG10=0.0 +! +!WR_RO25/RPR1=0.0 +! +!WR_RO25/RPR5=0.0 +! +!WR_RO25/RPR8=0.0 +! +!WR_RO25/RP10=0.0 +! +!WR_RO25/RP11=0.0 +! +!WR_RO25/RP16=0.0 +! +!WR_RO25/RPRL=0.0 +! +!WR_RO25/APAN=0.0 +! +!WR_RO25/PAN1=0.0 +! +!WR_RO25/PAN2=0.0 +! +!WR_RO25/PAN3=0.0 +! +!WR_RO25/PAN4=0.0 +! +!WR_RO25/PAN6=0.0 +! +!WR_RO25/PAN7=0.0 +! +!WR_RO25/PAN8=0.0 +! +!WR_RO25/PN10=0.0 +! +!WR_RO25/RO2T=0.0 +! +!WR_RO25/RO21=0.0 +! +!WR_RO25/RO25=+KTR17 + PJAC(:,141,87)=+TPK%KTR17(:) +! +!WR_RO25/WC_O3=0.0 +! +!WR_RO25/WC_H2O2=0.0 +! +!WR_RO25/WC_NO=0.0 +! +!WR_RO25/WC_NO2=0.0 +! +!WR_RO25/WC_NO3=0.0 +! +!WR_RO25/WC_N2O5=0.0 +! +!WR_RO25/WC_HONO=0.0 +! +!WR_RO25/WC_HNO3=0.0 +! +!WR_RO25/WC_HNO4=0.0 +! +!WR_RO25/WC_NH3=0.0 +! +!WR_RO25/WC_OH=0.0 +! +!WR_RO25/WC_HO2=0.0 +! +!WR_RO25/WC_CO2=0.0 +! +!WR_RO25/WC_SO2=0.0 +! +!WR_RO25/WC_H2SO4=0.0 +! +!WR_RO25/WC_RO21=0.0 +! +!WR_RO25/WC_RO25=0.0 +! +!WR_RO25/WC_MEOH=0.0 +! +!WR_RO25/WC_ETOH=0.0 +! +!WR_RO25/WC_ALCH=0.0 +! +!WR_RO25/WC_HCHO=0.0 +! +!WR_RO25/WC_ALD2=0.0 +! +!WR_RO25/WC_GLY=0.0 +! +!WR_RO25/WC_MGLY=0.0 +! +!WR_RO25/WC_KETL=0.0 +! +!WR_RO25/WC_ORA1=0.0 +! +!WR_RO25/WC_ORA2=0.0 +! +!WR_RO25/WC_ACID=0.0 +! +!WR_RO25/WC_RP16=0.0 +! +!WR_RO25/WC_UR21=0.0 +! +!WR_RO25/WC_UR28=0.0 +! +!WR_RO25/WC_ACID2=0.0 +! +!WR_RO25/WC_ASO3=0.0 +! +!WR_RO25/WC_ASO4=0.0 +! +!WR_RO25/WC_ASO5=0.0 +! +!WR_RO25/WC_AHSO5=0.0 +! +!WR_RO25/WC_AHMS=0.0 +! +!WR_RO25/WR_O3=0.0 +! +!WR_RO25/WR_H2O2=0.0 +! +!WR_RO25/WR_NO=0.0 +! +!WR_RO25/WR_NO2=0.0 +! +!WR_RO25/WR_NO3=0.0 +! +!WR_RO25/WR_N2O5=0.0 +! +!WR_RO25/WR_HONO=0.0 +! +!WR_RO25/WR_HNO3=0.0 +! +!WR_RO25/WR_HNO4=0.0 +! +!WR_RO25/WR_NH3=0.0 +! +!WR_RO25/WR_OH=+0.50*KR34*<WR_ALD2>+KR40*<WR_ACID> + PJAC(:,141,135)=+0.50*TPK%KR34(:)*PCONC(:,146)+TPK%KR40(:)*PCONC(:,152) +! +!WR_RO25/WR_HO2=0.0 +! +!WR_RO25/WR_CO2=0.0 +! +!WR_RO25/WR_SO2=0.0 +! +!WR_RO25/WR_H2SO4=0.0 +! +!WR_RO25/WR_RO21=0.0 +! +!WR_RO25/WR_RO25=-KTR48-KR29*<WR_RO25>-KR29*<WR_RO25>-KR29*<WR_RO25>-KR29*<WR_R +!O25> + PJAC(:,141,141)=-TPK%KTR48(:)-TPK%KR29(:)*PCONC(:,141)-TPK%KR29(:)*PCONC(:,141& +&)-TPK%KR29(:)*PCONC(:,141)-TPK%KR29(:)*PCONC(:,141) +! +!WR_RO25/WR_MEOH=0.0 +! +!WR_RO25/WR_ETOH=0.0 +! +!WR_RO25/WR_ALCH=0.0 +! +!WR_RO25/WR_HCHO=0.0 +! +!WR_RO25/WR_ALD2=+0.50*KR34*<WR_OH> + PJAC(:,141,146)=+0.50*TPK%KR34(:)*PCONC(:,135) +! +!WR_RO25/WR_GLY=0.0 +! +!WR_RO25/WR_MGLY=0.0 +! +!WR_RO25/WR_KETL=0.0 +! +!WR_RO25/WR_ORA1=0.0 +! +!WR_RO25/WR_ORA2=0.0 +! +!WR_RO25/WR_ACID=+KR40*<WR_OH> + PJAC(:,141,152)=+TPK%KR40(:)*PCONC(:,135) +! +!WR_RO25/WR_RP16=0.0 +! +!WR_RO25/WR_UR21=0.0 +! +!WR_RO25/WR_UR28=0.0 +! +!WR_RO25/WR_ACID2=0.0 +! +!WR_RO25/WR_ASO3=0.0 +! +!WR_RO25/WR_ASO4=0.0 +! +!WR_RO25/WR_ASO5=0.0 +! +!WR_RO25/WR_AHSO5=0.0 +! +!WR_RO25/WR_AHMS=0.0 +! +!WR_MEOH/NO=0.0 +! +!WR_MEOH/NO2=0.0 +! +!WR_MEOH/O3=0.0 +! +!WR_MEOH/HONO=0.0 +! +!WR_MEOH/HNO3=0.0 +! +!WR_MEOH/HNO4=0.0 +! +!WR_MEOH/N2O5=0.0 +! +!WR_MEOH/NO3=0.0 +! +!WR_MEOH/NH3=0.0 +! +!WR_MEOH/HO2=0.0 +! +!WR_MEOH/CO=0.0 +! +!WR_MEOH/H2O2=0.0 +! +!WR_MEOH/SO2=0.0 +! +!WR_MEOH/H2SO4=0.0 +! +!WR_MEOH/OH=0.0 +! +!WR_MEOH/ETHE=0.0 +! +!WR_MEOH/OLEL=0.0 +! +!WR_MEOH/OLEH=0.0 +! +!WR_MEOH/ALKL=0.0 +! +!WR_MEOH/ALKM=0.0 +! +!WR_MEOH/ALKH=0.0 +! +!WR_MEOH/AROH=0.0 +! +!WR_MEOH/AROL=0.0 +! +!WR_MEOH/AROO=0.0 +! +!WR_MEOH/ARAL=0.0 +! +!WR_MEOH/ARAC=0.0 +! +!WR_MEOH/PAH=0.0 +! +!WR_MEOH/HCHO=0.0 +! +!WR_MEOH/ALD2=0.0 +! +!WR_MEOH/KETL=0.0 +! +!WR_MEOH/KETH=0.0 +! +!WR_MEOH/MEOH=+KTR18 + PJAC(:,142,32)=+TPK%KTR18(:) +! +!WR_MEOH/ETOH=0.0 +! +!WR_MEOH/ALCH=0.0 +! +!WR_MEOH/ISOP=0.0 +! +!WR_MEOH/BIOL=0.0 +! +!WR_MEOH/BIOH=0.0 +! +!WR_MEOH/MTBE=0.0 +! +!WR_MEOH/MVK=0.0 +! +!WR_MEOH/MCR=0.0 +! +!WR_MEOH/MGLY=0.0 +! +!WR_MEOH/GLY=0.0 +! +!WR_MEOH/ORA1=0.0 +! +!WR_MEOH/ORA2=0.0 +! +!WR_MEOH/ACID=0.0 +! +!WR_MEOH/UR28=0.0 +! +!WR_MEOH/UR21=0.0 +! +!WR_MEOH/URG2=0.0 +! +!WR_MEOH/UR26=0.0 +! +!WR_MEOH/RPG2=0.0 +! +!WR_MEOH/RP18=0.0 +! +!WR_MEOH/RPG3=0.0 +! +!WR_MEOH/URG4=0.0 +! +!WR_MEOH/UR8=0.0 +! +!WR_MEOH/UR17=0.0 +! +!WR_MEOH/UR7=0.0 +! +!WR_MEOH/RPR3=0.0 +! +!WR_MEOH/URG6=0.0 +! +!WR_MEOH/UR22=0.0 +! +!WR_MEOH/URG7=0.0 +! +!WR_MEOH/RPR4=0.0 +! +!WR_MEOH/RPR7=0.0 +! +!WR_MEOH/RPG7=0.0 +! +!WR_MEOH/URG8=0.0 +! +!WR_MEOH/UR19=0.0 +! +!WR_MEOH/URG9=0.0 +! +!WR_MEOH/AP7=0.0 +! +!WR_MEOH/URG10=0.0 +! +!WR_MEOH/RPR1=0.0 +! +!WR_MEOH/RPR5=0.0 +! +!WR_MEOH/RPR8=0.0 +! +!WR_MEOH/RP10=0.0 +! +!WR_MEOH/RP11=0.0 +! +!WR_MEOH/RP16=0.0 +! +!WR_MEOH/RPRL=0.0 +! +!WR_MEOH/APAN=0.0 +! +!WR_MEOH/PAN1=0.0 +! +!WR_MEOH/PAN2=0.0 +! +!WR_MEOH/PAN3=0.0 +! +!WR_MEOH/PAN4=0.0 +! +!WR_MEOH/PAN6=0.0 +! +!WR_MEOH/PAN7=0.0 +! +!WR_MEOH/PAN8=0.0 +! +!WR_MEOH/PN10=0.0 +! +!WR_MEOH/RO2T=0.0 +! +!WR_MEOH/RO21=0.0 +! +!WR_MEOH/RO25=0.0 +! +!WR_MEOH/WC_O3=0.0 +! +!WR_MEOH/WC_H2O2=0.0 +! +!WR_MEOH/WC_NO=0.0 +! +!WR_MEOH/WC_NO2=0.0 +! +!WR_MEOH/WC_NO3=0.0 +! +!WR_MEOH/WC_N2O5=0.0 +! +!WR_MEOH/WC_HONO=0.0 +! +!WR_MEOH/WC_HNO3=0.0 +! +!WR_MEOH/WC_HNO4=0.0 +! +!WR_MEOH/WC_NH3=0.0 +! +!WR_MEOH/WC_OH=0.0 +! +!WR_MEOH/WC_HO2=0.0 +! +!WR_MEOH/WC_CO2=0.0 +! +!WR_MEOH/WC_SO2=0.0 +! +!WR_MEOH/WC_H2SO4=0.0 +! +!WR_MEOH/WC_RO21=0.0 +! +!WR_MEOH/WC_RO25=0.0 +! +!WR_MEOH/WC_MEOH=0.0 +! +!WR_MEOH/WC_ETOH=0.0 +! +!WR_MEOH/WC_ALCH=0.0 +! +!WR_MEOH/WC_HCHO=0.0 +! +!WR_MEOH/WC_ALD2=0.0 +! +!WR_MEOH/WC_GLY=0.0 +! +!WR_MEOH/WC_MGLY=0.0 +! +!WR_MEOH/WC_KETL=0.0 +! +!WR_MEOH/WC_ORA1=0.0 +! +!WR_MEOH/WC_ORA2=0.0 +! +!WR_MEOH/WC_ACID=0.0 +! +!WR_MEOH/WC_RP16=0.0 +! +!WR_MEOH/WC_UR21=0.0 +! +!WR_MEOH/WC_UR28=0.0 +! +!WR_MEOH/WC_ACID2=0.0 +! +!WR_MEOH/WC_ASO3=0.0 +! +!WR_MEOH/WC_ASO4=0.0 +! +!WR_MEOH/WC_ASO5=0.0 +! +!WR_MEOH/WC_AHSO5=0.0 +! +!WR_MEOH/WC_AHMS=0.0 +! +!WR_MEOH/WR_O3=0.0 +! +!WR_MEOH/WR_H2O2=0.0 +! +!WR_MEOH/WR_NO=0.0 +! +!WR_MEOH/WR_NO2=0.0 +! +!WR_MEOH/WR_NO3=0.0 +! +!WR_MEOH/WR_N2O5=0.0 +! +!WR_MEOH/WR_HONO=0.0 +! +!WR_MEOH/WR_HNO3=0.0 +! +!WR_MEOH/WR_HNO4=0.0 +! +!WR_MEOH/WR_NH3=0.0 +! +!WR_MEOH/WR_OH=-KR30*<WR_MEOH> + PJAC(:,142,135)=-TPK%KR30(:)*PCONC(:,142) +! +!WR_MEOH/WR_HO2=0.0 +! +!WR_MEOH/WR_CO2=0.0 +! +!WR_MEOH/WR_SO2=0.0 +! +!WR_MEOH/WR_H2SO4=0.0 +! +!WR_MEOH/WR_RO21=0.0 +! +!WR_MEOH/WR_RO25=0.0 +! +!WR_MEOH/WR_MEOH=-KTR49-KR30*<WR_OH> + PJAC(:,142,142)=-TPK%KTR49(:)-TPK%KR30(:)*PCONC(:,135) +! +!WR_MEOH/WR_ETOH=0.0 +! +!WR_MEOH/WR_ALCH=0.0 +! +!WR_MEOH/WR_HCHO=0.0 +! +!WR_MEOH/WR_ALD2=0.0 +! +!WR_MEOH/WR_GLY=0.0 +! +!WR_MEOH/WR_MGLY=0.0 +! +!WR_MEOH/WR_KETL=0.0 +! +!WR_MEOH/WR_ORA1=0.0 +! +!WR_MEOH/WR_ORA2=0.0 +! +!WR_MEOH/WR_ACID=0.0 +! +!WR_MEOH/WR_RP16=0.0 +! +!WR_MEOH/WR_UR21=0.0 +! +!WR_MEOH/WR_UR28=0.0 +! +!WR_MEOH/WR_ACID2=0.0 +! +!WR_MEOH/WR_ASO3=0.0 +! +!WR_MEOH/WR_ASO4=0.0 +! +!WR_MEOH/WR_ASO5=0.0 +! +!WR_MEOH/WR_AHSO5=0.0 +! +!WR_MEOH/WR_AHMS=0.0 +! +!WR_ETOH/NO=0.0 +! +!WR_ETOH/NO2=0.0 +! +!WR_ETOH/O3=0.0 +! +!WR_ETOH/HONO=0.0 +! +!WR_ETOH/HNO3=0.0 +! +!WR_ETOH/HNO4=0.0 +! +!WR_ETOH/N2O5=0.0 +! +!WR_ETOH/NO3=0.0 +! +!WR_ETOH/NH3=0.0 +! +!WR_ETOH/HO2=0.0 +! +!WR_ETOH/CO=0.0 +! +!WR_ETOH/H2O2=0.0 +! +!WR_ETOH/SO2=0.0 +! +!WR_ETOH/H2SO4=0.0 +! +!WR_ETOH/OH=0.0 +! +!WR_ETOH/ETHE=0.0 +! +!WR_ETOH/OLEL=0.0 +! +!WR_ETOH/OLEH=0.0 +! +!WR_ETOH/ALKL=0.0 +! +!WR_ETOH/ALKM=0.0 +! +!WR_ETOH/ALKH=0.0 +! +!WR_ETOH/AROH=0.0 +! +!WR_ETOH/AROL=0.0 +! +!WR_ETOH/AROO=0.0 +! +!WR_ETOH/ARAL=0.0 +! +!WR_ETOH/ARAC=0.0 +! +!WR_ETOH/PAH=0.0 +! +!WR_ETOH/HCHO=0.0 +! +!WR_ETOH/ALD2=0.0 +! +!WR_ETOH/KETL=0.0 +! +!WR_ETOH/KETH=0.0 +! +!WR_ETOH/MEOH=0.0 +! +!WR_ETOH/ETOH=+KTR19 + PJAC(:,143,33)=+TPK%KTR19(:) +! +!WR_ETOH/ALCH=0.0 +! +!WR_ETOH/ISOP=0.0 +! +!WR_ETOH/BIOL=0.0 +! +!WR_ETOH/BIOH=0.0 +! +!WR_ETOH/MTBE=0.0 +! +!WR_ETOH/MVK=0.0 +! +!WR_ETOH/MCR=0.0 +! +!WR_ETOH/MGLY=0.0 +! +!WR_ETOH/GLY=0.0 +! +!WR_ETOH/ORA1=0.0 +! +!WR_ETOH/ORA2=0.0 +! +!WR_ETOH/ACID=0.0 +! +!WR_ETOH/UR28=0.0 +! +!WR_ETOH/UR21=0.0 +! +!WR_ETOH/URG2=0.0 +! +!WR_ETOH/UR26=0.0 +! +!WR_ETOH/RPG2=0.0 +! +!WR_ETOH/RP18=0.0 +! +!WR_ETOH/RPG3=0.0 +! +!WR_ETOH/URG4=0.0 +! +!WR_ETOH/UR8=0.0 +! +!WR_ETOH/UR17=0.0 +! +!WR_ETOH/UR7=0.0 +! +!WR_ETOH/RPR3=0.0 +! +!WR_ETOH/URG6=0.0 +! +!WR_ETOH/UR22=0.0 +! +!WR_ETOH/URG7=0.0 +! +!WR_ETOH/RPR4=0.0 +! +!WR_ETOH/RPR7=0.0 +! +!WR_ETOH/RPG7=0.0 +! +!WR_ETOH/URG8=0.0 +! +!WR_ETOH/UR19=0.0 +! +!WR_ETOH/URG9=0.0 +! +!WR_ETOH/AP7=0.0 +! +!WR_ETOH/URG10=0.0 +! +!WR_ETOH/RPR1=0.0 +! +!WR_ETOH/RPR5=0.0 +! +!WR_ETOH/RPR8=0.0 +! +!WR_ETOH/RP10=0.0 +! +!WR_ETOH/RP11=0.0 +! +!WR_ETOH/RP16=0.0 +! +!WR_ETOH/RPRL=0.0 +! +!WR_ETOH/APAN=0.0 +! +!WR_ETOH/PAN1=0.0 +! +!WR_ETOH/PAN2=0.0 +! +!WR_ETOH/PAN3=0.0 +! +!WR_ETOH/PAN4=0.0 +! +!WR_ETOH/PAN6=0.0 +! +!WR_ETOH/PAN7=0.0 +! +!WR_ETOH/PAN8=0.0 +! +!WR_ETOH/PN10=0.0 +! +!WR_ETOH/RO2T=0.0 +! +!WR_ETOH/RO21=0.0 +! +!WR_ETOH/RO25=0.0 +! +!WR_ETOH/WC_O3=0.0 +! +!WR_ETOH/WC_H2O2=0.0 +! +!WR_ETOH/WC_NO=0.0 +! +!WR_ETOH/WC_NO2=0.0 +! +!WR_ETOH/WC_NO3=0.0 +! +!WR_ETOH/WC_N2O5=0.0 +! +!WR_ETOH/WC_HONO=0.0 +! +!WR_ETOH/WC_HNO3=0.0 +! +!WR_ETOH/WC_HNO4=0.0 +! +!WR_ETOH/WC_NH3=0.0 +! +!WR_ETOH/WC_OH=0.0 +! +!WR_ETOH/WC_HO2=0.0 +! +!WR_ETOH/WC_CO2=0.0 +! +!WR_ETOH/WC_SO2=0.0 +! +!WR_ETOH/WC_H2SO4=0.0 +! +!WR_ETOH/WC_RO21=0.0 +! +!WR_ETOH/WC_RO25=0.0 +! +!WR_ETOH/WC_MEOH=0.0 +! +!WR_ETOH/WC_ETOH=0.0 +! +!WR_ETOH/WC_ALCH=0.0 +! +!WR_ETOH/WC_HCHO=0.0 +! +!WR_ETOH/WC_ALD2=0.0 +! +!WR_ETOH/WC_GLY=0.0 +! +!WR_ETOH/WC_MGLY=0.0 +! +!WR_ETOH/WC_KETL=0.0 +! +!WR_ETOH/WC_ORA1=0.0 +! +!WR_ETOH/WC_ORA2=0.0 +! +!WR_ETOH/WC_ACID=0.0 +! +!WR_ETOH/WC_RP16=0.0 +! +!WR_ETOH/WC_UR21=0.0 +! +!WR_ETOH/WC_UR28=0.0 +! +!WR_ETOH/WC_ACID2=0.0 +! +!WR_ETOH/WC_ASO3=0.0 +! +!WR_ETOH/WC_ASO4=0.0 +! +!WR_ETOH/WC_ASO5=0.0 +! +!WR_ETOH/WC_AHSO5=0.0 +! +!WR_ETOH/WC_AHMS=0.0 +! +!WR_ETOH/WR_O3=0.0 +! +!WR_ETOH/WR_H2O2=0.0 +! +!WR_ETOH/WR_NO=0.0 +! +!WR_ETOH/WR_NO2=0.0 +! +!WR_ETOH/WR_NO3=0.0 +! +!WR_ETOH/WR_N2O5=0.0 +! +!WR_ETOH/WR_HONO=0.0 +! +!WR_ETOH/WR_HNO3=0.0 +! +!WR_ETOH/WR_HNO4=0.0 +! +!WR_ETOH/WR_NH3=0.0 +! +!WR_ETOH/WR_OH=-KR31*<WR_ETOH> + PJAC(:,143,135)=-TPK%KR31(:)*PCONC(:,143) +! +!WR_ETOH/WR_HO2=0.0 +! +!WR_ETOH/WR_CO2=0.0 +! +!WR_ETOH/WR_SO2=0.0 +! +!WR_ETOH/WR_H2SO4=0.0 +! +!WR_ETOH/WR_RO21=0.0 +! +!WR_ETOH/WR_RO25=0.0 +! +!WR_ETOH/WR_MEOH=0.0 +! +!WR_ETOH/WR_ETOH=-KTR50-KR31*<WR_OH> + PJAC(:,143,143)=-TPK%KTR50(:)-TPK%KR31(:)*PCONC(:,135) +! +!WR_ETOH/WR_ALCH=0.0 +! +!WR_ETOH/WR_HCHO=0.0 +! +!WR_ETOH/WR_ALD2=0.0 +! +!WR_ETOH/WR_GLY=0.0 +! +!WR_ETOH/WR_MGLY=0.0 +! +!WR_ETOH/WR_KETL=0.0 +! +!WR_ETOH/WR_ORA1=0.0 +! +!WR_ETOH/WR_ORA2=0.0 +! +!WR_ETOH/WR_ACID=0.0 +! +!WR_ETOH/WR_RP16=0.0 +! +!WR_ETOH/WR_UR21=0.0 +! +!WR_ETOH/WR_UR28=0.0 +! +!WR_ETOH/WR_ACID2=0.0 +! +!WR_ETOH/WR_ASO3=0.0 +! +!WR_ETOH/WR_ASO4=0.0 +! +!WR_ETOH/WR_ASO5=0.0 +! +!WR_ETOH/WR_AHSO5=0.0 +! +!WR_ETOH/WR_AHMS=0.0 +! +!WR_ALCH/NO=0.0 +! +!WR_ALCH/NO2=0.0 +! +!WR_ALCH/O3=0.0 +! +!WR_ALCH/HONO=0.0 +! +!WR_ALCH/HNO3=0.0 +! +!WR_ALCH/HNO4=0.0 +! +!WR_ALCH/N2O5=0.0 +! +!WR_ALCH/NO3=0.0 +! +!WR_ALCH/NH3=0.0 +! +!WR_ALCH/HO2=0.0 +! +!WR_ALCH/CO=0.0 +! +!WR_ALCH/H2O2=0.0 +! +!WR_ALCH/SO2=0.0 +! +!WR_ALCH/H2SO4=0.0 +! +!WR_ALCH/OH=0.0 +! +!WR_ALCH/ETHE=0.0 +! +!WR_ALCH/OLEL=0.0 +! +!WR_ALCH/OLEH=0.0 +! +!WR_ALCH/ALKL=0.0 +! +!WR_ALCH/ALKM=0.0 +! +!WR_ALCH/ALKH=0.0 +! +!WR_ALCH/AROH=0.0 +! +!WR_ALCH/AROL=0.0 +! +!WR_ALCH/AROO=0.0 +! +!WR_ALCH/ARAL=0.0 +! +!WR_ALCH/ARAC=0.0 +! +!WR_ALCH/PAH=0.0 +! +!WR_ALCH/HCHO=0.0 +! +!WR_ALCH/ALD2=0.0 +! +!WR_ALCH/KETL=0.0 +! +!WR_ALCH/KETH=0.0 +! +!WR_ALCH/MEOH=0.0 +! +!WR_ALCH/ETOH=0.0 +! +!WR_ALCH/ALCH=+KTR20 + PJAC(:,144,34)=+TPK%KTR20(:) +! +!WR_ALCH/ISOP=0.0 +! +!WR_ALCH/BIOL=0.0 +! +!WR_ALCH/BIOH=0.0 +! +!WR_ALCH/MTBE=0.0 +! +!WR_ALCH/MVK=0.0 +! +!WR_ALCH/MCR=0.0 +! +!WR_ALCH/MGLY=0.0 +! +!WR_ALCH/GLY=0.0 +! +!WR_ALCH/ORA1=0.0 +! +!WR_ALCH/ORA2=0.0 +! +!WR_ALCH/ACID=0.0 +! +!WR_ALCH/UR28=0.0 +! +!WR_ALCH/UR21=0.0 +! +!WR_ALCH/URG2=0.0 +! +!WR_ALCH/UR26=0.0 +! +!WR_ALCH/RPG2=0.0 +! +!WR_ALCH/RP18=0.0 +! +!WR_ALCH/RPG3=0.0 +! +!WR_ALCH/URG4=0.0 +! +!WR_ALCH/UR8=0.0 +! +!WR_ALCH/UR17=0.0 +! +!WR_ALCH/UR7=0.0 +! +!WR_ALCH/RPR3=0.0 +! +!WR_ALCH/URG6=0.0 +! +!WR_ALCH/UR22=0.0 +! +!WR_ALCH/URG7=0.0 +! +!WR_ALCH/RPR4=0.0 +! +!WR_ALCH/RPR7=0.0 +! +!WR_ALCH/RPG7=0.0 +! +!WR_ALCH/URG8=0.0 +! +!WR_ALCH/UR19=0.0 +! +!WR_ALCH/URG9=0.0 +! +!WR_ALCH/AP7=0.0 +! +!WR_ALCH/URG10=0.0 +! +!WR_ALCH/RPR1=0.0 +! +!WR_ALCH/RPR5=0.0 +! +!WR_ALCH/RPR8=0.0 +! +!WR_ALCH/RP10=0.0 +! +!WR_ALCH/RP11=0.0 +! +!WR_ALCH/RP16=0.0 +! +!WR_ALCH/RPRL=0.0 +! +!WR_ALCH/APAN=0.0 +! +!WR_ALCH/PAN1=0.0 +! +!WR_ALCH/PAN2=0.0 +! +!WR_ALCH/PAN3=0.0 +! +!WR_ALCH/PAN4=0.0 +! +!WR_ALCH/PAN6=0.0 +! +!WR_ALCH/PAN7=0.0 +! +!WR_ALCH/PAN8=0.0 +! +!WR_ALCH/PN10=0.0 +! +!WR_ALCH/RO2T=0.0 +! +!WR_ALCH/RO21=0.0 +! +!WR_ALCH/RO25=0.0 +! +!WR_ALCH/WC_O3=0.0 +! +!WR_ALCH/WC_H2O2=0.0 +! +!WR_ALCH/WC_NO=0.0 +! +!WR_ALCH/WC_NO2=0.0 +! +!WR_ALCH/WC_NO3=0.0 +! +!WR_ALCH/WC_N2O5=0.0 +! +!WR_ALCH/WC_HONO=0.0 +! +!WR_ALCH/WC_HNO3=0.0 +! +!WR_ALCH/WC_HNO4=0.0 +! +!WR_ALCH/WC_NH3=0.0 +! +!WR_ALCH/WC_OH=0.0 +! +!WR_ALCH/WC_HO2=0.0 +! +!WR_ALCH/WC_CO2=0.0 +! +!WR_ALCH/WC_SO2=0.0 +! +!WR_ALCH/WC_H2SO4=0.0 +! +!WR_ALCH/WC_RO21=0.0 +! +!WR_ALCH/WC_RO25=0.0 +! +!WR_ALCH/WC_MEOH=0.0 +! +!WR_ALCH/WC_ETOH=0.0 +! +!WR_ALCH/WC_ALCH=0.0 +! +!WR_ALCH/WC_HCHO=0.0 +! +!WR_ALCH/WC_ALD2=0.0 +! +!WR_ALCH/WC_GLY=0.0 +! +!WR_ALCH/WC_MGLY=0.0 +! +!WR_ALCH/WC_KETL=0.0 +! +!WR_ALCH/WC_ORA1=0.0 +! +!WR_ALCH/WC_ORA2=0.0 +! +!WR_ALCH/WC_ACID=0.0 +! +!WR_ALCH/WC_RP16=0.0 +! +!WR_ALCH/WC_UR21=0.0 +! +!WR_ALCH/WC_UR28=0.0 +! +!WR_ALCH/WC_ACID2=0.0 +! +!WR_ALCH/WC_ASO3=0.0 +! +!WR_ALCH/WC_ASO4=0.0 +! +!WR_ALCH/WC_ASO5=0.0 +! +!WR_ALCH/WC_AHSO5=0.0 +! +!WR_ALCH/WC_AHMS=0.0 +! +!WR_ALCH/WR_O3=0.0 +! +!WR_ALCH/WR_H2O2=0.0 +! +!WR_ALCH/WR_NO=0.0 +! +!WR_ALCH/WR_NO2=0.0 +! +!WR_ALCH/WR_NO3=0.0 +! +!WR_ALCH/WR_N2O5=0.0 +! +!WR_ALCH/WR_HONO=0.0 +! +!WR_ALCH/WR_HNO3=0.0 +! +!WR_ALCH/WR_HNO4=0.0 +! +!WR_ALCH/WR_NH3=0.0 +! +!WR_ALCH/WR_OH=-KR32*<WR_ALCH> + PJAC(:,144,135)=-TPK%KR32(:)*PCONC(:,144) +! +!WR_ALCH/WR_HO2=0.0 +! +!WR_ALCH/WR_CO2=0.0 +! +!WR_ALCH/WR_SO2=0.0 +! +!WR_ALCH/WR_H2SO4=0.0 +! +!WR_ALCH/WR_RO21=0.0 +! +!WR_ALCH/WR_RO25=0.0 +! +!WR_ALCH/WR_MEOH=0.0 +! +!WR_ALCH/WR_ETOH=0.0 +! +!WR_ALCH/WR_ALCH=-KTR51-KR32*<WR_OH> + PJAC(:,144,144)=-TPK%KTR51(:)-TPK%KR32(:)*PCONC(:,135) +! +!WR_ALCH/WR_HCHO=0.0 +! +!WR_ALCH/WR_ALD2=0.0 +! +!WR_ALCH/WR_GLY=0.0 +! +!WR_ALCH/WR_MGLY=0.0 +! +!WR_ALCH/WR_KETL=0.0 +! +!WR_ALCH/WR_ORA1=0.0 +! +!WR_ALCH/WR_ORA2=0.0 +! +!WR_ALCH/WR_ACID=0.0 +! +!WR_ALCH/WR_RP16=0.0 +! +!WR_ALCH/WR_UR21=0.0 +! +!WR_ALCH/WR_UR28=0.0 +! +!WR_ALCH/WR_ACID2=0.0 +! +!WR_ALCH/WR_ASO3=0.0 +! +!WR_ALCH/WR_ASO4=0.0 +! +!WR_ALCH/WR_ASO5=0.0 +! +!WR_ALCH/WR_AHSO5=0.0 +! +!WR_ALCH/WR_AHMS=0.0 +! +!WR_HCHO/NO=0.0 +! +!WR_HCHO/NO2=0.0 +! +!WR_HCHO/O3=0.0 +! +!WR_HCHO/HONO=0.0 +! +!WR_HCHO/HNO3=0.0 +! +!WR_HCHO/HNO4=0.0 +! +!WR_HCHO/N2O5=0.0 +! +!WR_HCHO/NO3=0.0 +! +!WR_HCHO/NH3=0.0 +! +!WR_HCHO/HO2=0.0 +! +!WR_HCHO/CO=0.0 +! +!WR_HCHO/H2O2=0.0 +! +!WR_HCHO/SO2=0.0 +! +!WR_HCHO/H2SO4=0.0 +! +!WR_HCHO/OH=0.0 +! +!WR_HCHO/ETHE=0.0 +! +!WR_HCHO/OLEL=0.0 +! +!WR_HCHO/OLEH=0.0 +! +!WR_HCHO/ALKL=0.0 +! +!WR_HCHO/ALKM=0.0 +! +!WR_HCHO/ALKH=0.0 +! +!WR_HCHO/AROH=0.0 +! +!WR_HCHO/AROL=0.0 +! +!WR_HCHO/AROO=0.0 +! +!WR_HCHO/ARAL=0.0 +! +!WR_HCHO/ARAC=0.0 +! +!WR_HCHO/PAH=0.0 +! +!WR_HCHO/HCHO=+KTR21 + PJAC(:,145,28)=+TPK%KTR21(:) +! +!WR_HCHO/ALD2=0.0 +! +!WR_HCHO/KETL=0.0 +! +!WR_HCHO/KETH=0.0 +! +!WR_HCHO/MEOH=0.0 +! +!WR_HCHO/ETOH=0.0 +! +!WR_HCHO/ALCH=0.0 +! +!WR_HCHO/ISOP=0.0 +! +!WR_HCHO/BIOL=0.0 +! +!WR_HCHO/BIOH=0.0 +! +!WR_HCHO/MTBE=0.0 +! +!WR_HCHO/MVK=0.0 +! +!WR_HCHO/MCR=0.0 +! +!WR_HCHO/MGLY=0.0 +! +!WR_HCHO/GLY=0.0 +! +!WR_HCHO/ORA1=0.0 +! +!WR_HCHO/ORA2=0.0 +! +!WR_HCHO/ACID=0.0 +! +!WR_HCHO/UR28=0.0 +! +!WR_HCHO/UR21=0.0 +! +!WR_HCHO/URG2=0.0 +! +!WR_HCHO/UR26=0.0 +! +!WR_HCHO/RPG2=0.0 +! +!WR_HCHO/RP18=0.0 +! +!WR_HCHO/RPG3=0.0 +! +!WR_HCHO/URG4=0.0 +! +!WR_HCHO/UR8=0.0 +! +!WR_HCHO/UR17=0.0 +! +!WR_HCHO/UR7=0.0 +! +!WR_HCHO/RPR3=0.0 +! +!WR_HCHO/URG6=0.0 +! +!WR_HCHO/UR22=0.0 +! +!WR_HCHO/URG7=0.0 +! +!WR_HCHO/RPR4=0.0 +! +!WR_HCHO/RPR7=0.0 +! +!WR_HCHO/RPG7=0.0 +! +!WR_HCHO/URG8=0.0 +! +!WR_HCHO/UR19=0.0 +! +!WR_HCHO/URG9=0.0 +! +!WR_HCHO/AP7=0.0 +! +!WR_HCHO/URG10=0.0 +! +!WR_HCHO/RPR1=0.0 +! +!WR_HCHO/RPR5=0.0 +! +!WR_HCHO/RPR8=0.0 +! +!WR_HCHO/RP10=0.0 +! +!WR_HCHO/RP11=0.0 +! +!WR_HCHO/RP16=0.0 +! +!WR_HCHO/RPRL=0.0 +! +!WR_HCHO/APAN=0.0 +! +!WR_HCHO/PAN1=0.0 +! +!WR_HCHO/PAN2=0.0 +! +!WR_HCHO/PAN3=0.0 +! +!WR_HCHO/PAN4=0.0 +! +!WR_HCHO/PAN6=0.0 +! +!WR_HCHO/PAN7=0.0 +! +!WR_HCHO/PAN8=0.0 +! +!WR_HCHO/PN10=0.0 +! +!WR_HCHO/RO2T=0.0 +! +!WR_HCHO/RO21=0.0 +! +!WR_HCHO/RO25=0.0 +! +!WR_HCHO/WC_O3=0.0 +! +!WR_HCHO/WC_H2O2=0.0 +! +!WR_HCHO/WC_NO=0.0 +! +!WR_HCHO/WC_NO2=0.0 +! +!WR_HCHO/WC_NO3=0.0 +! +!WR_HCHO/WC_N2O5=0.0 +! +!WR_HCHO/WC_HONO=0.0 +! +!WR_HCHO/WC_HNO3=0.0 +! +!WR_HCHO/WC_HNO4=0.0 +! +!WR_HCHO/WC_NH3=0.0 +! +!WR_HCHO/WC_OH=0.0 +! +!WR_HCHO/WC_HO2=0.0 +! +!WR_HCHO/WC_CO2=0.0 +! +!WR_HCHO/WC_SO2=0.0 +! +!WR_HCHO/WC_H2SO4=0.0 +! +!WR_HCHO/WC_RO21=0.0 +! +!WR_HCHO/WC_RO25=0.0 +! +!WR_HCHO/WC_MEOH=0.0 +! +!WR_HCHO/WC_ETOH=0.0 +! +!WR_HCHO/WC_ALCH=0.0 +! +!WR_HCHO/WC_HCHO=0.0 +! +!WR_HCHO/WC_ALD2=0.0 +! +!WR_HCHO/WC_GLY=0.0 +! +!WR_HCHO/WC_MGLY=0.0 +! +!WR_HCHO/WC_KETL=0.0 +! +!WR_HCHO/WC_ORA1=0.0 +! +!WR_HCHO/WC_ORA2=0.0 +! +!WR_HCHO/WC_ACID=0.0 +! +!WR_HCHO/WC_RP16=0.0 +! +!WR_HCHO/WC_UR21=0.0 +! +!WR_HCHO/WC_UR28=0.0 +! +!WR_HCHO/WC_ACID2=0.0 +! +!WR_HCHO/WC_ASO3=0.0 +! +!WR_HCHO/WC_ASO4=0.0 +! +!WR_HCHO/WC_ASO5=0.0 +! +!WR_HCHO/WC_AHSO5=0.0 +! +!WR_HCHO/WC_AHMS=0.0 +! +!WR_HCHO/WR_O3=0.0 +! +!WR_HCHO/WR_H2O2=0.0 +! +!WR_HCHO/WR_NO=0.0 +! +!WR_HCHO/WR_NO2=0.0 +! +!WR_HCHO/WR_NO3=0.0 +! +!WR_HCHO/WR_N2O5=0.0 +! +!WR_HCHO/WR_HONO=0.0 +! +!WR_HCHO/WR_HNO3=0.0 +! +!WR_HCHO/WR_HNO4=0.0 +! +!WR_HCHO/WR_NH3=0.0 +! +!WR_HCHO/WR_OH=+KR30*<WR_MEOH>-KR33*<WR_HCHO>+KR37*<WR_KETL> + PJAC(:,145,135)=+TPK%KR30(:)*PCONC(:,142)-TPK%KR33(:)*PCONC(:,145)+TPK%KR37(:)& +&*PCONC(:,149) +! +!WR_HCHO/WR_HO2=0.0 +! +!WR_HCHO/WR_CO2=0.0 +! +!WR_HCHO/WR_SO2=-KR17*<WR_HCHO>+KR28*<WR_RO21> + PJAC(:,145,138)=-TPK%KR17(:)*PCONC(:,145)+TPK%KR28(:)*PCONC(:,140) +! +!WR_HCHO/WR_H2SO4=0.0 +! +!WR_HCHO/WR_RO21=+2.00*KR27*<WR_RO21>+2.00*KR27*<WR_RO21>+KR28*<WR_SO2> + PJAC(:,145,140)=+2.00*TPK%KR27(:)*PCONC(:,140)+2.00*TPK%KR27(:)*PCONC(:,140)+T& +&PK%KR28(:)*PCONC(:,138) +! +!WR_HCHO/WR_RO25=0.0 +! +!WR_HCHO/WR_MEOH=+KR30*<WR_OH> + PJAC(:,145,142)=+TPK%KR30(:)*PCONC(:,135) +! +!WR_HCHO/WR_ETOH=0.0 +! +!WR_HCHO/WR_ALCH=0.0 +! +!WR_HCHO/WR_HCHO=-KTR52-KR17*<WR_SO2>-KR33*<WR_OH> + PJAC(:,145,145)=-TPK%KTR52(:)-TPK%KR17(:)*PCONC(:,138)-TPK%KR33(:)*PCONC(:,135& +&) +! +!WR_HCHO/WR_ALD2=0.0 +! +!WR_HCHO/WR_GLY=0.0 +! +!WR_HCHO/WR_MGLY=0.0 +! +!WR_HCHO/WR_KETL=+KR37*<WR_OH> + PJAC(:,145,149)=+TPK%KR37(:)*PCONC(:,135) +! +!WR_HCHO/WR_ORA1=0.0 +! +!WR_HCHO/WR_ORA2=0.0 +! +!WR_HCHO/WR_ACID=0.0 +! +!WR_HCHO/WR_RP16=0.0 +! +!WR_HCHO/WR_UR21=0.0 +! +!WR_HCHO/WR_UR28=0.0 +! +!WR_HCHO/WR_ACID2=0.0 +! +!WR_HCHO/WR_ASO3=0.0 +! +!WR_HCHO/WR_ASO4=0.0 +! +!WR_HCHO/WR_ASO5=0.0 +! +!WR_HCHO/WR_AHSO5=0.0 +! +!WR_HCHO/WR_AHMS=+KR18 + PJAC(:,145,161)=+TPK%KR18(:) +! +RETURN +END SUBROUTINE SUBJ28 +! +SUBROUTINE SUBJ29 +! +!Indices 146 a 150 +! +! +!WR_ALD2/NO=0.0 +! +!WR_ALD2/NO2=0.0 +! +!WR_ALD2/O3=0.0 +! +!WR_ALD2/HONO=0.0 +! +!WR_ALD2/HNO3=0.0 +! +!WR_ALD2/HNO4=0.0 +! +!WR_ALD2/N2O5=0.0 +! +!WR_ALD2/NO3=0.0 +! +!WR_ALD2/NH3=0.0 +! +!WR_ALD2/HO2=0.0 +! +!WR_ALD2/CO=0.0 +! +!WR_ALD2/H2O2=0.0 +! +!WR_ALD2/SO2=0.0 +! +!WR_ALD2/H2SO4=0.0 +! +!WR_ALD2/OH=0.0 +! +!WR_ALD2/ETHE=0.0 +! +!WR_ALD2/OLEL=0.0 +! +!WR_ALD2/OLEH=0.0 +! +!WR_ALD2/ALKL=0.0 +! +!WR_ALD2/ALKM=0.0 +! +!WR_ALD2/ALKH=0.0 +! +!WR_ALD2/AROH=0.0 +! +!WR_ALD2/AROL=0.0 +! +!WR_ALD2/AROO=0.0 +! +!WR_ALD2/ARAL=0.0 +! +!WR_ALD2/ARAC=0.0 +! +!WR_ALD2/PAH=0.0 +! +!WR_ALD2/HCHO=0.0 +! +!WR_ALD2/ALD2=+KTR22 + PJAC(:,146,29)=+TPK%KTR22(:) +! +!WR_ALD2/KETL=0.0 +! +!WR_ALD2/KETH=0.0 +! +!WR_ALD2/MEOH=0.0 +! +!WR_ALD2/ETOH=0.0 +! +!WR_ALD2/ALCH=0.0 +! +!WR_ALD2/ISOP=0.0 +! +!WR_ALD2/BIOL=0.0 +! +!WR_ALD2/BIOH=0.0 +! +!WR_ALD2/MTBE=0.0 +! +!WR_ALD2/MVK=0.0 +! +!WR_ALD2/MCR=0.0 +! +!WR_ALD2/MGLY=0.0 +! +!WR_ALD2/GLY=0.0 +! +!WR_ALD2/ORA1=0.0 +! +!WR_ALD2/ORA2=0.0 +! +!WR_ALD2/ACID=0.0 +! +!WR_ALD2/UR28=0.0 +! +!WR_ALD2/UR21=0.0 +! +!WR_ALD2/URG2=0.0 +! +!WR_ALD2/UR26=0.0 +! +!WR_ALD2/RPG2=0.0 +! +!WR_ALD2/RP18=0.0 +! +!WR_ALD2/RPG3=0.0 +! +!WR_ALD2/URG4=0.0 +! +!WR_ALD2/UR8=0.0 +! +!WR_ALD2/UR17=0.0 +! +!WR_ALD2/UR7=0.0 +! +!WR_ALD2/RPR3=0.0 +! +!WR_ALD2/URG6=0.0 +! +!WR_ALD2/UR22=0.0 +! +!WR_ALD2/URG7=0.0 +! +!WR_ALD2/RPR4=0.0 +! +!WR_ALD2/RPR7=0.0 +! +!WR_ALD2/RPG7=0.0 +! +!WR_ALD2/URG8=0.0 +! +!WR_ALD2/UR19=0.0 +! +!WR_ALD2/URG9=0.0 +! +!WR_ALD2/AP7=0.0 +! +!WR_ALD2/URG10=0.0 +! +!WR_ALD2/RPR1=0.0 +! +!WR_ALD2/RPR5=0.0 +! +!WR_ALD2/RPR8=0.0 +! +!WR_ALD2/RP10=0.0 +! +!WR_ALD2/RP11=0.0 +! +!WR_ALD2/RP16=0.0 +! +!WR_ALD2/RPRL=0.0 +! +!WR_ALD2/APAN=0.0 +! +!WR_ALD2/PAN1=0.0 +! +!WR_ALD2/PAN2=0.0 +! +!WR_ALD2/PAN3=0.0 +! +!WR_ALD2/PAN4=0.0 +! +!WR_ALD2/PAN6=0.0 +! +!WR_ALD2/PAN7=0.0 +! +!WR_ALD2/PAN8=0.0 +! +!WR_ALD2/PN10=0.0 +! +!WR_ALD2/RO2T=0.0 +! +!WR_ALD2/RO21=0.0 +! +!WR_ALD2/RO25=0.0 +! +!WR_ALD2/WC_O3=0.0 +! +!WR_ALD2/WC_H2O2=0.0 +! +!WR_ALD2/WC_NO=0.0 +! +!WR_ALD2/WC_NO2=0.0 +! +!WR_ALD2/WC_NO3=0.0 +! +!WR_ALD2/WC_N2O5=0.0 +! +!WR_ALD2/WC_HONO=0.0 +! +!WR_ALD2/WC_HNO3=0.0 +! +!WR_ALD2/WC_HNO4=0.0 +! +!WR_ALD2/WC_NH3=0.0 +! +!WR_ALD2/WC_OH=0.0 +! +!WR_ALD2/WC_HO2=0.0 +! +!WR_ALD2/WC_CO2=0.0 +! +!WR_ALD2/WC_SO2=0.0 +! +!WR_ALD2/WC_H2SO4=0.0 +! +!WR_ALD2/WC_RO21=0.0 +! +!WR_ALD2/WC_RO25=0.0 +! +!WR_ALD2/WC_MEOH=0.0 +! +!WR_ALD2/WC_ETOH=0.0 +! +!WR_ALD2/WC_ALCH=0.0 +! +!WR_ALD2/WC_HCHO=0.0 +! +!WR_ALD2/WC_ALD2=0.0 +! +!WR_ALD2/WC_GLY=0.0 +! +!WR_ALD2/WC_MGLY=0.0 +! +!WR_ALD2/WC_KETL=0.0 +! +!WR_ALD2/WC_ORA1=0.0 +! +!WR_ALD2/WC_ORA2=0.0 +! +!WR_ALD2/WC_ACID=0.0 +! +!WR_ALD2/WC_RP16=0.0 +! +!WR_ALD2/WC_UR21=0.0 +! +!WR_ALD2/WC_UR28=0.0 +! +!WR_ALD2/WC_ACID2=0.0 +! +!WR_ALD2/WC_ASO3=0.0 +! +!WR_ALD2/WC_ASO4=0.0 +! +!WR_ALD2/WC_ASO5=0.0 +! +!WR_ALD2/WC_AHSO5=0.0 +! +!WR_ALD2/WC_AHMS=0.0 +! +!WR_ALD2/WR_O3=0.0 +! +!WR_ALD2/WR_H2O2=0.0 +! +!WR_ALD2/WR_NO=0.0 +! +!WR_ALD2/WR_NO2=0.0 +! +!WR_ALD2/WR_NO3=0.0 +! +!WR_ALD2/WR_N2O5=0.0 +! +!WR_ALD2/WR_HONO=0.0 +! +!WR_ALD2/WR_HNO3=0.0 +! +!WR_ALD2/WR_HNO4=0.0 +! +!WR_ALD2/WR_NH3=0.0 +! +!WR_ALD2/WR_OH=+KR31*<WR_ETOH>+0.50*KR32*<WR_ALCH>-KR34*<WR_ALD2>+KR37*<WR_KETL +!>+0.29*KR41*<WR_ACID>+0.43*KR43*<WR_UR21> + PJAC(:,146,135)=+TPK%KR31(:)*PCONC(:,143)+0.50*TPK%KR32(:)*PCONC(:,144)-TPK%KR& +&34(:)*PCONC(:,146)+TPK%KR37(:)*PCONC(:,149)+0.29*TPK%KR41(:)*PCONC(:,152)+0.43& +&*TPK%KR43(:)*PCONC(:,154) +! +!WR_ALD2/WR_HO2=0.0 +! +!WR_ALD2/WR_CO2=0.0 +! +!WR_ALD2/WR_SO2=0.0 +! +!WR_ALD2/WR_H2SO4=0.0 +! +!WR_ALD2/WR_RO21=0.0 +! +!WR_ALD2/WR_RO25=+KR29*<WR_RO25>+KR29*<WR_RO25> + PJAC(:,146,141)=+TPK%KR29(:)*PCONC(:,141)+TPK%KR29(:)*PCONC(:,141) +! +!WR_ALD2/WR_MEOH=0.0 +! +!WR_ALD2/WR_ETOH=+KR31*<WR_OH> + PJAC(:,146,143)=+TPK%KR31(:)*PCONC(:,135) +! +!WR_ALD2/WR_ALCH=+0.50*KR32*<WR_OH> + PJAC(:,146,144)=+0.50*TPK%KR32(:)*PCONC(:,135) +! +!WR_ALD2/WR_HCHO=0.0 +! +!WR_ALD2/WR_ALD2=-KTR53-KR34*<WR_OH> + PJAC(:,146,146)=-TPK%KTR53(:)-TPK%KR34(:)*PCONC(:,135) +! +!WR_ALD2/WR_GLY=0.0 +! +!WR_ALD2/WR_MGLY=0.0 +! +!WR_ALD2/WR_KETL=+KR37*<WR_OH> + PJAC(:,146,149)=+TPK%KR37(:)*PCONC(:,135) +! +!WR_ALD2/WR_ORA1=0.0 +! +!WR_ALD2/WR_ORA2=0.0 +! +!WR_ALD2/WR_ACID=+0.29*KR41*<WR_OH> + PJAC(:,146,152)=+0.29*TPK%KR41(:)*PCONC(:,135) +! +!WR_ALD2/WR_RP16=0.0 +! +!WR_ALD2/WR_UR21=+0.43*KR43*<WR_OH> + PJAC(:,146,154)=+0.43*TPK%KR43(:)*PCONC(:,135) +! +!WR_ALD2/WR_UR28=0.0 +! +!WR_ALD2/WR_ACID2=0.0 +! +!WR_ALD2/WR_ASO3=0.0 +! +!WR_ALD2/WR_ASO4=0.0 +! +!WR_ALD2/WR_ASO5=0.0 +! +!WR_ALD2/WR_AHSO5=0.0 +! +!WR_ALD2/WR_AHMS=0.0 +! +!WR_GLY/NO=0.0 +! +!WR_GLY/NO2=0.0 +! +!WR_GLY/O3=0.0 +! +!WR_GLY/HONO=0.0 +! +!WR_GLY/HNO3=0.0 +! +!WR_GLY/HNO4=0.0 +! +!WR_GLY/N2O5=0.0 +! +!WR_GLY/NO3=0.0 +! +!WR_GLY/NH3=0.0 +! +!WR_GLY/HO2=0.0 +! +!WR_GLY/CO=0.0 +! +!WR_GLY/H2O2=0.0 +! +!WR_GLY/SO2=0.0 +! +!WR_GLY/H2SO4=0.0 +! +!WR_GLY/OH=0.0 +! +!WR_GLY/ETHE=0.0 +! +!WR_GLY/OLEL=0.0 +! +!WR_GLY/OLEH=0.0 +! +!WR_GLY/ALKL=0.0 +! +!WR_GLY/ALKM=0.0 +! +!WR_GLY/ALKH=0.0 +! +!WR_GLY/AROH=0.0 +! +!WR_GLY/AROL=0.0 +! +!WR_GLY/AROO=0.0 +! +!WR_GLY/ARAL=0.0 +! +!WR_GLY/ARAC=0.0 +! +!WR_GLY/PAH=0.0 +! +!WR_GLY/HCHO=0.0 +! +!WR_GLY/ALD2=0.0 +! +!WR_GLY/KETL=0.0 +! +!WR_GLY/KETH=0.0 +! +!WR_GLY/MEOH=0.0 +! +!WR_GLY/ETOH=0.0 +! +!WR_GLY/ALCH=0.0 +! +!WR_GLY/ISOP=0.0 +! +!WR_GLY/BIOL=0.0 +! +!WR_GLY/BIOH=0.0 +! +!WR_GLY/MTBE=0.0 +! +!WR_GLY/MVK=0.0 +! +!WR_GLY/MCR=0.0 +! +!WR_GLY/MGLY=0.0 +! +!WR_GLY/GLY=+KTR23 + PJAC(:,147,42)=+TPK%KTR23(:) +! +!WR_GLY/ORA1=0.0 +! +!WR_GLY/ORA2=0.0 +! +!WR_GLY/ACID=0.0 +! +!WR_GLY/UR28=0.0 +! +!WR_GLY/UR21=0.0 +! +!WR_GLY/URG2=0.0 +! +!WR_GLY/UR26=0.0 +! +!WR_GLY/RPG2=0.0 +! +!WR_GLY/RP18=0.0 +! +!WR_GLY/RPG3=0.0 +! +!WR_GLY/URG4=0.0 +! +!WR_GLY/UR8=0.0 +! +!WR_GLY/UR17=0.0 +! +!WR_GLY/UR7=0.0 +! +!WR_GLY/RPR3=0.0 +! +!WR_GLY/URG6=0.0 +! +!WR_GLY/UR22=0.0 +! +!WR_GLY/URG7=0.0 +! +!WR_GLY/RPR4=0.0 +! +!WR_GLY/RPR7=0.0 +! +!WR_GLY/RPG7=0.0 +! +!WR_GLY/URG8=0.0 +! +!WR_GLY/UR19=0.0 +! +!WR_GLY/URG9=0.0 +! +!WR_GLY/AP7=0.0 +! +!WR_GLY/URG10=0.0 +! +!WR_GLY/RPR1=0.0 +! +!WR_GLY/RPR5=0.0 +! +!WR_GLY/RPR8=0.0 +! +!WR_GLY/RP10=0.0 +! +!WR_GLY/RP11=0.0 +! +!WR_GLY/RP16=0.0 +! +!WR_GLY/RPRL=0.0 +! +!WR_GLY/APAN=0.0 +! +!WR_GLY/PAN1=0.0 +! +!WR_GLY/PAN2=0.0 +! +!WR_GLY/PAN3=0.0 +! +!WR_GLY/PAN4=0.0 +! +!WR_GLY/PAN6=0.0 +! +!WR_GLY/PAN7=0.0 +! +!WR_GLY/PAN8=0.0 +! +!WR_GLY/PN10=0.0 +! +!WR_GLY/RO2T=0.0 +! +!WR_GLY/RO21=0.0 +! +!WR_GLY/RO25=0.0 +! +!WR_GLY/WC_O3=0.0 +! +!WR_GLY/WC_H2O2=0.0 +! +!WR_GLY/WC_NO=0.0 +! +!WR_GLY/WC_NO2=0.0 +! +!WR_GLY/WC_NO3=0.0 +! +!WR_GLY/WC_N2O5=0.0 +! +!WR_GLY/WC_HONO=0.0 +! +!WR_GLY/WC_HNO3=0.0 +! +!WR_GLY/WC_HNO4=0.0 +! +!WR_GLY/WC_NH3=0.0 +! +!WR_GLY/WC_OH=0.0 +! +!WR_GLY/WC_HO2=0.0 +! +!WR_GLY/WC_CO2=0.0 +! +!WR_GLY/WC_SO2=0.0 +! +!WR_GLY/WC_H2SO4=0.0 +! +!WR_GLY/WC_RO21=0.0 +! +!WR_GLY/WC_RO25=0.0 +! +!WR_GLY/WC_MEOH=0.0 +! +!WR_GLY/WC_ETOH=0.0 +! +!WR_GLY/WC_ALCH=0.0 +! +!WR_GLY/WC_HCHO=0.0 +! +!WR_GLY/WC_ALD2=0.0 +! +!WR_GLY/WC_GLY=0.0 +! +!WR_GLY/WC_MGLY=0.0 +! +!WR_GLY/WC_KETL=0.0 +! +!WR_GLY/WC_ORA1=0.0 +! +!WR_GLY/WC_ORA2=0.0 +! +!WR_GLY/WC_ACID=0.0 +! +!WR_GLY/WC_RP16=0.0 +! +!WR_GLY/WC_UR21=0.0 +! +!WR_GLY/WC_UR28=0.0 +! +!WR_GLY/WC_ACID2=0.0 +! +!WR_GLY/WC_ASO3=0.0 +! +!WR_GLY/WC_ASO4=0.0 +! +!WR_GLY/WC_ASO5=0.0 +! +!WR_GLY/WC_AHSO5=0.0 +! +!WR_GLY/WC_AHMS=0.0 +! +!WR_GLY/WR_O3=0.0 +! +!WR_GLY/WR_H2O2=0.0 +! +!WR_GLY/WR_NO=0.0 +! +!WR_GLY/WR_NO2=0.0 +! +!WR_GLY/WR_NO3=0.0 +! +!WR_GLY/WR_N2O5=0.0 +! +!WR_GLY/WR_HONO=0.0 +! +!WR_GLY/WR_HNO3=0.0 +! +!WR_GLY/WR_HNO4=0.0 +! +!WR_GLY/WR_NH3=0.0 +! +!WR_GLY/WR_OH=-KR35*<WR_GLY> + PJAC(:,147,135)=-TPK%KR35(:)*PCONC(:,147) +! +!WR_GLY/WR_HO2=0.0 +! +!WR_GLY/WR_CO2=0.0 +! +!WR_GLY/WR_SO2=0.0 +! +!WR_GLY/WR_H2SO4=0.0 +! +!WR_GLY/WR_RO21=0.0 +! +!WR_GLY/WR_RO25=0.0 +! +!WR_GLY/WR_MEOH=0.0 +! +!WR_GLY/WR_ETOH=0.0 +! +!WR_GLY/WR_ALCH=0.0 +! +!WR_GLY/WR_HCHO=0.0 +! +!WR_GLY/WR_ALD2=0.0 +! +!WR_GLY/WR_GLY=-KTR54-KR35*<WR_OH> + PJAC(:,147,147)=-TPK%KTR54(:)-TPK%KR35(:)*PCONC(:,135) +! +!WR_GLY/WR_MGLY=0.0 +! +!WR_GLY/WR_KETL=0.0 +! +!WR_GLY/WR_ORA1=0.0 +! +!WR_GLY/WR_ORA2=0.0 +! +!WR_GLY/WR_ACID=0.0 +! +!WR_GLY/WR_RP16=0.0 +! +!WR_GLY/WR_UR21=0.0 +! +!WR_GLY/WR_UR28=0.0 +! +!WR_GLY/WR_ACID2=0.0 +! +!WR_GLY/WR_ASO3=0.0 +! +!WR_GLY/WR_ASO4=0.0 +! +!WR_GLY/WR_ASO5=0.0 +! +!WR_GLY/WR_AHSO5=0.0 +! +!WR_GLY/WR_AHMS=0.0 +! +!WR_MGLY/NO=0.0 +! +!WR_MGLY/NO2=0.0 +! +!WR_MGLY/O3=0.0 +! +!WR_MGLY/HONO=0.0 +! +!WR_MGLY/HNO3=0.0 +! +!WR_MGLY/HNO4=0.0 +! +!WR_MGLY/N2O5=0.0 +! +!WR_MGLY/NO3=0.0 +! +!WR_MGLY/NH3=0.0 +! +!WR_MGLY/HO2=0.0 +! +!WR_MGLY/CO=0.0 +! +!WR_MGLY/H2O2=0.0 +! +!WR_MGLY/SO2=0.0 +! +!WR_MGLY/H2SO4=0.0 +! +!WR_MGLY/OH=0.0 +! +!WR_MGLY/ETHE=0.0 +! +!WR_MGLY/OLEL=0.0 +! +!WR_MGLY/OLEH=0.0 +! +!WR_MGLY/ALKL=0.0 +! +!WR_MGLY/ALKM=0.0 +! +!WR_MGLY/ALKH=0.0 +! +!WR_MGLY/AROH=0.0 +! +!WR_MGLY/AROL=0.0 +! +!WR_MGLY/AROO=0.0 +! +!WR_MGLY/ARAL=0.0 +! +!WR_MGLY/ARAC=0.0 +! +!WR_MGLY/PAH=0.0 +! +!WR_MGLY/HCHO=0.0 +! +!WR_MGLY/ALD2=0.0 +! +!WR_MGLY/KETL=0.0 +! +!WR_MGLY/KETH=0.0 +! +!WR_MGLY/MEOH=0.0 +! +!WR_MGLY/ETOH=0.0 +! +!WR_MGLY/ALCH=0.0 +! +!WR_MGLY/ISOP=0.0 +! +!WR_MGLY/BIOL=0.0 +! +!WR_MGLY/BIOH=0.0 +! +!WR_MGLY/MTBE=0.0 +! +!WR_MGLY/MVK=0.0 +! +!WR_MGLY/MCR=0.0 +! +!WR_MGLY/MGLY=+KTR25 + PJAC(:,148,41)=+TPK%KTR25(:) +! +!WR_MGLY/GLY=0.0 +! +!WR_MGLY/ORA1=0.0 +! +!WR_MGLY/ORA2=0.0 +! +!WR_MGLY/ACID=0.0 +! +!WR_MGLY/UR28=0.0 +! +!WR_MGLY/UR21=0.0 +! +!WR_MGLY/URG2=0.0 +! +!WR_MGLY/UR26=0.0 +! +!WR_MGLY/RPG2=0.0 +! +!WR_MGLY/RP18=0.0 +! +!WR_MGLY/RPG3=0.0 +! +!WR_MGLY/URG4=0.0 +! +!WR_MGLY/UR8=0.0 +! +!WR_MGLY/UR17=0.0 +! +!WR_MGLY/UR7=0.0 +! +!WR_MGLY/RPR3=0.0 +! +!WR_MGLY/URG6=0.0 +! +!WR_MGLY/UR22=0.0 +! +!WR_MGLY/URG7=0.0 +! +!WR_MGLY/RPR4=0.0 +! +!WR_MGLY/RPR7=0.0 +! +!WR_MGLY/RPG7=0.0 +! +!WR_MGLY/URG8=0.0 +! +!WR_MGLY/UR19=0.0 +! +!WR_MGLY/URG9=0.0 +! +!WR_MGLY/AP7=0.0 +! +!WR_MGLY/URG10=0.0 +! +!WR_MGLY/RPR1=0.0 +! +!WR_MGLY/RPR5=0.0 +! +!WR_MGLY/RPR8=0.0 +! +!WR_MGLY/RP10=0.0 +! +!WR_MGLY/RP11=0.0 +! +!WR_MGLY/RP16=0.0 +! +!WR_MGLY/RPRL=0.0 +! +!WR_MGLY/APAN=0.0 +! +!WR_MGLY/PAN1=0.0 +! +!WR_MGLY/PAN2=0.0 +! +!WR_MGLY/PAN3=0.0 +! +!WR_MGLY/PAN4=0.0 +! +!WR_MGLY/PAN6=0.0 +! +!WR_MGLY/PAN7=0.0 +! +!WR_MGLY/PAN8=0.0 +! +!WR_MGLY/PN10=0.0 +! +!WR_MGLY/RO2T=0.0 +! +!WR_MGLY/RO21=0.0 +! +!WR_MGLY/RO25=0.0 +! +!WR_MGLY/WC_O3=0.0 +! +!WR_MGLY/WC_H2O2=0.0 +! +!WR_MGLY/WC_NO=0.0 +! +!WR_MGLY/WC_NO2=0.0 +! +!WR_MGLY/WC_NO3=0.0 +! +!WR_MGLY/WC_N2O5=0.0 +! +!WR_MGLY/WC_HONO=0.0 +! +!WR_MGLY/WC_HNO3=0.0 +! +!WR_MGLY/WC_HNO4=0.0 +! +!WR_MGLY/WC_NH3=0.0 +! +!WR_MGLY/WC_OH=0.0 +! +!WR_MGLY/WC_HO2=0.0 +! +!WR_MGLY/WC_CO2=0.0 +! +!WR_MGLY/WC_SO2=0.0 +! +!WR_MGLY/WC_H2SO4=0.0 +! +!WR_MGLY/WC_RO21=0.0 +! +!WR_MGLY/WC_RO25=0.0 +! +!WR_MGLY/WC_MEOH=0.0 +! +!WR_MGLY/WC_ETOH=0.0 +! +!WR_MGLY/WC_ALCH=0.0 +! +!WR_MGLY/WC_HCHO=0.0 +! +!WR_MGLY/WC_ALD2=0.0 +! +!WR_MGLY/WC_GLY=0.0 +! +!WR_MGLY/WC_MGLY=0.0 +! +!WR_MGLY/WC_KETL=0.0 +! +!WR_MGLY/WC_ORA1=0.0 +! +!WR_MGLY/WC_ORA2=0.0 +! +!WR_MGLY/WC_ACID=0.0 +! +!WR_MGLY/WC_RP16=0.0 +! +!WR_MGLY/WC_UR21=0.0 +! +!WR_MGLY/WC_UR28=0.0 +! +!WR_MGLY/WC_ACID2=0.0 +! +!WR_MGLY/WC_ASO3=0.0 +! +!WR_MGLY/WC_ASO4=0.0 +! +!WR_MGLY/WC_ASO5=0.0 +! +!WR_MGLY/WC_AHSO5=0.0 +! +!WR_MGLY/WC_AHMS=0.0 +! +!WR_MGLY/WR_O3=0.0 +! +!WR_MGLY/WR_H2O2=0.0 +! +!WR_MGLY/WR_NO=0.0 +! +!WR_MGLY/WR_NO2=0.0 +! +!WR_MGLY/WR_NO3=0.0 +! +!WR_MGLY/WR_N2O5=0.0 +! +!WR_MGLY/WR_HONO=0.0 +! +!WR_MGLY/WR_HNO3=0.0 +! +!WR_MGLY/WR_HNO4=0.0 +! +!WR_MGLY/WR_NH3=0.0 +! +!WR_MGLY/WR_OH=-KR36*<WR_MGLY>+KR37*<WR_KETL> + PJAC(:,148,135)=-TPK%KR36(:)*PCONC(:,148)+TPK%KR37(:)*PCONC(:,149) +! +!WR_MGLY/WR_HO2=0.0 +! +!WR_MGLY/WR_CO2=0.0 +! +!WR_MGLY/WR_SO2=0.0 +! +!WR_MGLY/WR_H2SO4=0.0 +! +!WR_MGLY/WR_RO21=0.0 +! +!WR_MGLY/WR_RO25=0.0 +! +!WR_MGLY/WR_MEOH=0.0 +! +!WR_MGLY/WR_ETOH=0.0 +! +!WR_MGLY/WR_ALCH=0.0 +! +!WR_MGLY/WR_HCHO=0.0 +! +!WR_MGLY/WR_ALD2=0.0 +! +!WR_MGLY/WR_GLY=0.0 +! +!WR_MGLY/WR_MGLY=-KTR56-KR36*<WR_OH> + PJAC(:,148,148)=-TPK%KTR56(:)-TPK%KR36(:)*PCONC(:,135) +! +!WR_MGLY/WR_KETL=+KR37*<WR_OH> + PJAC(:,148,149)=+TPK%KR37(:)*PCONC(:,135) +! +!WR_MGLY/WR_ORA1=0.0 +! +!WR_MGLY/WR_ORA2=0.0 +! +!WR_MGLY/WR_ACID=0.0 +! +!WR_MGLY/WR_RP16=0.0 +! +!WR_MGLY/WR_UR21=0.0 +! +!WR_MGLY/WR_UR28=0.0 +! +!WR_MGLY/WR_ACID2=0.0 +! +!WR_MGLY/WR_ASO3=0.0 +! +!WR_MGLY/WR_ASO4=0.0 +! +!WR_MGLY/WR_ASO5=0.0 +! +!WR_MGLY/WR_AHSO5=0.0 +! +!WR_MGLY/WR_AHMS=0.0 +! +!WR_KETL/NO=0.0 +! +!WR_KETL/NO2=0.0 +! +!WR_KETL/O3=0.0 +! +!WR_KETL/HONO=0.0 +! +!WR_KETL/HNO3=0.0 +! +!WR_KETL/HNO4=0.0 +! +!WR_KETL/N2O5=0.0 +! +!WR_KETL/NO3=0.0 +! +!WR_KETL/NH3=0.0 +! +!WR_KETL/HO2=0.0 +! +!WR_KETL/CO=0.0 +! +!WR_KETL/H2O2=0.0 +! +!WR_KETL/SO2=0.0 +! +!WR_KETL/H2SO4=0.0 +! +!WR_KETL/OH=0.0 +! +!WR_KETL/ETHE=0.0 +! +!WR_KETL/OLEL=0.0 +! +!WR_KETL/OLEH=0.0 +! +!WR_KETL/ALKL=0.0 +! +!WR_KETL/ALKM=0.0 +! +!WR_KETL/ALKH=0.0 +! +!WR_KETL/AROH=0.0 +! +!WR_KETL/AROL=0.0 +! +!WR_KETL/AROO=0.0 +! +!WR_KETL/ARAL=0.0 +! +!WR_KETL/ARAC=0.0 +! +!WR_KETL/PAH=0.0 +! +!WR_KETL/HCHO=0.0 +! +!WR_KETL/ALD2=0.0 +! +!WR_KETL/KETL=+KTR24 + PJAC(:,149,30)=+TPK%KTR24(:) +! +!WR_KETL/KETH=0.0 +! +!WR_KETL/MEOH=0.0 +! +!WR_KETL/ETOH=0.0 +! +!WR_KETL/ALCH=0.0 +! +!WR_KETL/ISOP=0.0 +! +!WR_KETL/BIOL=0.0 +! +!WR_KETL/BIOH=0.0 +! +!WR_KETL/MTBE=0.0 +! +!WR_KETL/MVK=0.0 +! +!WR_KETL/MCR=0.0 +! +!WR_KETL/MGLY=0.0 +! +!WR_KETL/GLY=0.0 +! +!WR_KETL/ORA1=0.0 +! +!WR_KETL/ORA2=0.0 +! +!WR_KETL/ACID=0.0 +! +!WR_KETL/UR28=0.0 +! +!WR_KETL/UR21=0.0 +! +!WR_KETL/URG2=0.0 +! +!WR_KETL/UR26=0.0 +! +!WR_KETL/RPG2=0.0 +! +!WR_KETL/RP18=0.0 +! +!WR_KETL/RPG3=0.0 +! +!WR_KETL/URG4=0.0 +! +!WR_KETL/UR8=0.0 +! +!WR_KETL/UR17=0.0 +! +!WR_KETL/UR7=0.0 +! +!WR_KETL/RPR3=0.0 +! +!WR_KETL/URG6=0.0 +! +!WR_KETL/UR22=0.0 +! +!WR_KETL/URG7=0.0 +! +!WR_KETL/RPR4=0.0 +! +!WR_KETL/RPR7=0.0 +! +!WR_KETL/RPG7=0.0 +! +!WR_KETL/URG8=0.0 +! +!WR_KETL/UR19=0.0 +! +!WR_KETL/URG9=0.0 +! +!WR_KETL/AP7=0.0 +! +!WR_KETL/URG10=0.0 +! +!WR_KETL/RPR1=0.0 +! +!WR_KETL/RPR5=0.0 +! +!WR_KETL/RPR8=0.0 +! +!WR_KETL/RP10=0.0 +! +!WR_KETL/RP11=0.0 +! +!WR_KETL/RP16=0.0 +! +!WR_KETL/RPRL=0.0 +! +!WR_KETL/APAN=0.0 +! +!WR_KETL/PAN1=0.0 +! +!WR_KETL/PAN2=0.0 +! +!WR_KETL/PAN3=0.0 +! +!WR_KETL/PAN4=0.0 +! +!WR_KETL/PAN6=0.0 +! +!WR_KETL/PAN7=0.0 +! +!WR_KETL/PAN8=0.0 +! +!WR_KETL/PN10=0.0 +! +!WR_KETL/RO2T=0.0 +! +!WR_KETL/RO21=0.0 +! +!WR_KETL/RO25=0.0 +! +!WR_KETL/WC_O3=0.0 +! +!WR_KETL/WC_H2O2=0.0 +! +!WR_KETL/WC_NO=0.0 +! +!WR_KETL/WC_NO2=0.0 +! +!WR_KETL/WC_NO3=0.0 +! +!WR_KETL/WC_N2O5=0.0 +! +!WR_KETL/WC_HONO=0.0 +! +!WR_KETL/WC_HNO3=0.0 +! +!WR_KETL/WC_HNO4=0.0 +! +!WR_KETL/WC_NH3=0.0 +! +!WR_KETL/WC_OH=0.0 +! +!WR_KETL/WC_HO2=0.0 +! +!WR_KETL/WC_CO2=0.0 +! +!WR_KETL/WC_SO2=0.0 +! +!WR_KETL/WC_H2SO4=0.0 +! +!WR_KETL/WC_RO21=0.0 +! +!WR_KETL/WC_RO25=0.0 +! +!WR_KETL/WC_MEOH=0.0 +! +!WR_KETL/WC_ETOH=0.0 +! +!WR_KETL/WC_ALCH=0.0 +! +!WR_KETL/WC_HCHO=0.0 +! +!WR_KETL/WC_ALD2=0.0 +! +!WR_KETL/WC_GLY=0.0 +! +!WR_KETL/WC_MGLY=0.0 +! +!WR_KETL/WC_KETL=0.0 +! +!WR_KETL/WC_ORA1=0.0 +! +!WR_KETL/WC_ORA2=0.0 +! +!WR_KETL/WC_ACID=0.0 +! +!WR_KETL/WC_RP16=0.0 +! +!WR_KETL/WC_UR21=0.0 +! +!WR_KETL/WC_UR28=0.0 +! +!WR_KETL/WC_ACID2=0.0 +! +!WR_KETL/WC_ASO3=0.0 +! +!WR_KETL/WC_ASO4=0.0 +! +!WR_KETL/WC_ASO5=0.0 +! +!WR_KETL/WC_AHSO5=0.0 +! +!WR_KETL/WC_AHMS=0.0 +! +!WR_KETL/WR_O3=0.0 +! +!WR_KETL/WR_H2O2=0.0 +! +!WR_KETL/WR_NO=0.0 +! +!WR_KETL/WR_NO2=0.0 +! +!WR_KETL/WR_NO3=0.0 +! +!WR_KETL/WR_N2O5=0.0 +! +!WR_KETL/WR_HONO=0.0 +! +!WR_KETL/WR_HNO3=0.0 +! +!WR_KETL/WR_HNO4=0.0 +! +!WR_KETL/WR_NH3=0.0 +! +!WR_KETL/WR_OH=+0.50*KR32*<WR_ALCH>+KR37*<WR_KETL>-KR37*<WR_KETL> + PJAC(:,149,135)=+0.50*TPK%KR32(:)*PCONC(:,144)+TPK%KR37(:)*PCONC(:,149)-TPK%KR& +&37(:)*PCONC(:,149) +! +!WR_KETL/WR_HO2=0.0 +! +!WR_KETL/WR_CO2=0.0 +! +!WR_KETL/WR_SO2=0.0 +! +!WR_KETL/WR_H2SO4=0.0 +! +!WR_KETL/WR_RO21=0.0 +! +!WR_KETL/WR_RO25=0.0 +! +!WR_KETL/WR_MEOH=0.0 +! +!WR_KETL/WR_ETOH=0.0 +! +!WR_KETL/WR_ALCH=+0.50*KR32*<WR_OH> + PJAC(:,149,144)=+0.50*TPK%KR32(:)*PCONC(:,135) +! +!WR_KETL/WR_HCHO=0.0 +! +!WR_KETL/WR_ALD2=0.0 +! +!WR_KETL/WR_GLY=0.0 +! +!WR_KETL/WR_MGLY=0.0 +! +!WR_KETL/WR_KETL=-KTR55+KR37*<WR_OH>-KR37*<WR_OH> + PJAC(:,149,149)=-TPK%KTR55(:)+TPK%KR37(:)*PCONC(:,135)-TPK%KR37(:)*PCONC(:,135& +&) +! +!WR_KETL/WR_ORA1=0.0 +! +!WR_KETL/WR_ORA2=0.0 +! +!WR_KETL/WR_ACID=0.0 +! +!WR_KETL/WR_RP16=0.0 +! +!WR_KETL/WR_UR21=0.0 +! +!WR_KETL/WR_UR28=0.0 +! +!WR_KETL/WR_ACID2=0.0 +! +!WR_KETL/WR_ASO3=0.0 +! +!WR_KETL/WR_ASO4=0.0 +! +!WR_KETL/WR_ASO5=0.0 +! +!WR_KETL/WR_AHSO5=0.0 +! +!WR_KETL/WR_AHMS=0.0 +! +!WR_ORA1/NO=0.0 +! +!WR_ORA1/NO2=0.0 +! +!WR_ORA1/O3=0.0 +! +!WR_ORA1/HONO=0.0 +! +!WR_ORA1/HNO3=0.0 +! +!WR_ORA1/HNO4=0.0 +! +!WR_ORA1/N2O5=0.0 +! +!WR_ORA1/NO3=0.0 +! +!WR_ORA1/NH3=0.0 +! +!WR_ORA1/HO2=0.0 +! +!WR_ORA1/CO=0.0 +! +!WR_ORA1/H2O2=0.0 +! +!WR_ORA1/SO2=0.0 +! +!WR_ORA1/H2SO4=0.0 +! +!WR_ORA1/OH=0.0 +! +!WR_ORA1/ETHE=0.0 +! +!WR_ORA1/OLEL=0.0 +! +!WR_ORA1/OLEH=0.0 +! +!WR_ORA1/ALKL=0.0 +! +!WR_ORA1/ALKM=0.0 +! +!WR_ORA1/ALKH=0.0 +! +!WR_ORA1/AROH=0.0 +! +!WR_ORA1/AROL=0.0 +! +!WR_ORA1/AROO=0.0 +! +!WR_ORA1/ARAL=0.0 +! +!WR_ORA1/ARAC=0.0 +! +!WR_ORA1/PAH=0.0 +! +!WR_ORA1/HCHO=0.0 +! +!WR_ORA1/ALD2=0.0 +! +!WR_ORA1/KETL=0.0 +! +!WR_ORA1/KETH=0.0 +! +!WR_ORA1/MEOH=0.0 +! +!WR_ORA1/ETOH=0.0 +! +!WR_ORA1/ALCH=0.0 +! +!WR_ORA1/ISOP=0.0 +! +!WR_ORA1/BIOL=0.0 +! +!WR_ORA1/BIOH=0.0 +! +!WR_ORA1/MTBE=0.0 +! +!WR_ORA1/MVK=0.0 +! +!WR_ORA1/MCR=0.0 +! +!WR_ORA1/MGLY=0.0 +! +!WR_ORA1/GLY=0.0 +! +!WR_ORA1/ORA1=+KTR26 + PJAC(:,150,43)=+TPK%KTR26(:) +! +!WR_ORA1/ORA2=0.0 +! +!WR_ORA1/ACID=0.0 +! +!WR_ORA1/UR28=0.0 +! +!WR_ORA1/UR21=0.0 +! +!WR_ORA1/URG2=0.0 +! +!WR_ORA1/UR26=0.0 +! +!WR_ORA1/RPG2=0.0 +! +!WR_ORA1/RP18=0.0 +! +!WR_ORA1/RPG3=0.0 +! +!WR_ORA1/URG4=0.0 +! +!WR_ORA1/UR8=0.0 +! +!WR_ORA1/UR17=0.0 +! +!WR_ORA1/UR7=0.0 +! +!WR_ORA1/RPR3=0.0 +! +!WR_ORA1/URG6=0.0 +! +!WR_ORA1/UR22=0.0 +! +!WR_ORA1/URG7=0.0 +! +!WR_ORA1/RPR4=0.0 +! +!WR_ORA1/RPR7=0.0 +! +!WR_ORA1/RPG7=0.0 +! +!WR_ORA1/URG8=0.0 +! +!WR_ORA1/UR19=0.0 +! +!WR_ORA1/URG9=0.0 +! +!WR_ORA1/AP7=0.0 +! +!WR_ORA1/URG10=0.0 +! +!WR_ORA1/RPR1=0.0 +! +!WR_ORA1/RPR5=0.0 +! +!WR_ORA1/RPR8=0.0 +! +!WR_ORA1/RP10=0.0 +! +!WR_ORA1/RP11=0.0 +! +!WR_ORA1/RP16=0.0 +! +!WR_ORA1/RPRL=0.0 +! +!WR_ORA1/APAN=0.0 +! +!WR_ORA1/PAN1=0.0 +! +!WR_ORA1/PAN2=0.0 +! +!WR_ORA1/PAN3=0.0 +! +!WR_ORA1/PAN4=0.0 +! +!WR_ORA1/PAN6=0.0 +! +!WR_ORA1/PAN7=0.0 +! +!WR_ORA1/PAN8=0.0 +! +!WR_ORA1/PN10=0.0 +! +!WR_ORA1/RO2T=0.0 +! +!WR_ORA1/RO21=0.0 +! +!WR_ORA1/RO25=0.0 +! +!WR_ORA1/WC_O3=0.0 +! +!WR_ORA1/WC_H2O2=0.0 +! +!WR_ORA1/WC_NO=0.0 +! +!WR_ORA1/WC_NO2=0.0 +! +!WR_ORA1/WC_NO3=0.0 +! +!WR_ORA1/WC_N2O5=0.0 +! +!WR_ORA1/WC_HONO=0.0 +! +!WR_ORA1/WC_HNO3=0.0 +! +!WR_ORA1/WC_HNO4=0.0 +! +!WR_ORA1/WC_NH3=0.0 +! +!WR_ORA1/WC_OH=0.0 +! +!WR_ORA1/WC_HO2=0.0 +! +!WR_ORA1/WC_CO2=0.0 +! +!WR_ORA1/WC_SO2=0.0 +! +!WR_ORA1/WC_H2SO4=0.0 +! +!WR_ORA1/WC_RO21=0.0 +! +!WR_ORA1/WC_RO25=0.0 +! +!WR_ORA1/WC_MEOH=0.0 +! +!WR_ORA1/WC_ETOH=0.0 +! +!WR_ORA1/WC_ALCH=0.0 +! +!WR_ORA1/WC_HCHO=0.0 +! +!WR_ORA1/WC_ALD2=0.0 +! +!WR_ORA1/WC_GLY=0.0 +! +!WR_ORA1/WC_MGLY=0.0 +! +!WR_ORA1/WC_KETL=0.0 +! +!WR_ORA1/WC_ORA1=0.0 +! +!WR_ORA1/WC_ORA2=0.0 +! +!WR_ORA1/WC_ACID=0.0 +! +!WR_ORA1/WC_RP16=0.0 +! +!WR_ORA1/WC_UR21=0.0 +! +!WR_ORA1/WC_UR28=0.0 +! +!WR_ORA1/WC_ACID2=0.0 +! +!WR_ORA1/WC_ASO3=0.0 +! +!WR_ORA1/WC_ASO4=0.0 +! +!WR_ORA1/WC_ASO5=0.0 +! +!WR_ORA1/WC_AHSO5=0.0 +! +!WR_ORA1/WC_AHMS=0.0 +! +!WR_ORA1/WR_O3=0.0 +! +!WR_ORA1/WR_H2O2=0.0 +! +!WR_ORA1/WR_NO=0.0 +! +!WR_ORA1/WR_NO2=0.0 +! +!WR_ORA1/WR_NO3=0.0 +! +!WR_ORA1/WR_N2O5=0.0 +! +!WR_ORA1/WR_HONO=0.0 +! +!WR_ORA1/WR_HNO3=0.0 +! +!WR_ORA1/WR_HNO4=0.0 +! +!WR_ORA1/WR_NH3=0.0 +! +!WR_ORA1/WR_OH=+KR19*<WR_AHMS>+KR33*<WR_HCHO>-KR38*<WR_ORA1> + PJAC(:,150,135)=+TPK%KR19(:)*PCONC(:,161)+TPK%KR33(:)*PCONC(:,145)-TPK%KR38(:)& +&*PCONC(:,150) +! +!WR_ORA1/WR_HO2=0.0 +! +!WR_ORA1/WR_CO2=0.0 +! +!WR_ORA1/WR_SO2=0.0 +! +!WR_ORA1/WR_H2SO4=0.0 +! +!WR_ORA1/WR_RO21=0.0 +! +!WR_ORA1/WR_RO25=0.0 +! +!WR_ORA1/WR_MEOH=0.0 +! +!WR_ORA1/WR_ETOH=0.0 +! +!WR_ORA1/WR_ALCH=0.0 +! +!WR_ORA1/WR_HCHO=+KR33*<WR_OH> + PJAC(:,150,145)=+TPK%KR33(:)*PCONC(:,135) +! +!WR_ORA1/WR_ALD2=0.0 +! +!WR_ORA1/WR_GLY=0.0 +! +!WR_ORA1/WR_MGLY=0.0 +! +!WR_ORA1/WR_KETL=0.0 +! +!WR_ORA1/WR_ORA1=-KTR57-KR38*<WR_OH> + PJAC(:,150,150)=-TPK%KTR57(:)-TPK%KR38(:)*PCONC(:,135) +! +!WR_ORA1/WR_ORA2=0.0 +! +!WR_ORA1/WR_ACID=0.0 +! +!WR_ORA1/WR_RP16=0.0 +! +!WR_ORA1/WR_UR21=0.0 +! +!WR_ORA1/WR_UR28=0.0 +! +!WR_ORA1/WR_ACID2=0.0 +! +!WR_ORA1/WR_ASO3=0.0 +! +!WR_ORA1/WR_ASO4=0.0 +! +!WR_ORA1/WR_ASO5=0.0 +! +!WR_ORA1/WR_AHSO5=0.0 +! +!WR_ORA1/WR_AHMS=+KR19*<WR_OH> + PJAC(:,150,161)=+TPK%KR19(:)*PCONC(:,135) +! +RETURN +END SUBROUTINE SUBJ29 +! +SUBROUTINE SUBJ30 +! +!Indices 151 a 155 +! +! +!WR_ORA2/NO=0.0 +! +!WR_ORA2/NO2=0.0 +! +!WR_ORA2/O3=0.0 +! +!WR_ORA2/HONO=0.0 +! +!WR_ORA2/HNO3=0.0 +! +!WR_ORA2/HNO4=0.0 +! +!WR_ORA2/N2O5=0.0 +! +!WR_ORA2/NO3=0.0 +! +!WR_ORA2/NH3=0.0 +! +!WR_ORA2/HO2=0.0 +! +!WR_ORA2/CO=0.0 +! +!WR_ORA2/H2O2=0.0 +! +!WR_ORA2/SO2=0.0 +! +!WR_ORA2/H2SO4=0.0 +! +!WR_ORA2/OH=0.0 +! +!WR_ORA2/ETHE=0.0 +! +!WR_ORA2/OLEL=0.0 +! +!WR_ORA2/OLEH=0.0 +! +!WR_ORA2/ALKL=0.0 +! +!WR_ORA2/ALKM=0.0 +! +!WR_ORA2/ALKH=0.0 +! +!WR_ORA2/AROH=0.0 +! +!WR_ORA2/AROL=0.0 +! +!WR_ORA2/AROO=0.0 +! +!WR_ORA2/ARAL=0.0 +! +!WR_ORA2/ARAC=0.0 +! +!WR_ORA2/PAH=0.0 +! +!WR_ORA2/HCHO=0.0 +! +!WR_ORA2/ALD2=0.0 +! +!WR_ORA2/KETL=0.0 +! +!WR_ORA2/KETH=0.0 +! +!WR_ORA2/MEOH=0.0 +! +!WR_ORA2/ETOH=0.0 +! +!WR_ORA2/ALCH=0.0 +! +!WR_ORA2/ISOP=0.0 +! +!WR_ORA2/BIOL=0.0 +! +!WR_ORA2/BIOH=0.0 +! +!WR_ORA2/MTBE=0.0 +! +!WR_ORA2/MVK=0.0 +! +!WR_ORA2/MCR=0.0 +! +!WR_ORA2/MGLY=0.0 +! +!WR_ORA2/GLY=0.0 +! +!WR_ORA2/ORA1=0.0 +! +!WR_ORA2/ORA2=+KTR27 + PJAC(:,151,44)=+TPK%KTR27(:) +! +!WR_ORA2/ACID=0.0 +! +!WR_ORA2/UR28=0.0 +! +!WR_ORA2/UR21=0.0 +! +!WR_ORA2/URG2=0.0 +! +!WR_ORA2/UR26=0.0 +! +!WR_ORA2/RPG2=0.0 +! +!WR_ORA2/RP18=0.0 +! +!WR_ORA2/RPG3=0.0 +! +!WR_ORA2/URG4=0.0 +! +!WR_ORA2/UR8=0.0 +! +!WR_ORA2/UR17=0.0 +! +!WR_ORA2/UR7=0.0 +! +!WR_ORA2/RPR3=0.0 +! +!WR_ORA2/URG6=0.0 +! +!WR_ORA2/UR22=0.0 +! +!WR_ORA2/URG7=0.0 +! +!WR_ORA2/RPR4=0.0 +! +!WR_ORA2/RPR7=0.0 +! +!WR_ORA2/RPG7=0.0 +! +!WR_ORA2/URG8=0.0 +! +!WR_ORA2/UR19=0.0 +! +!WR_ORA2/URG9=0.0 +! +!WR_ORA2/AP7=0.0 +! +!WR_ORA2/URG10=0.0 +! +!WR_ORA2/RPR1=0.0 +! +!WR_ORA2/RPR5=0.0 +! +!WR_ORA2/RPR8=0.0 +! +!WR_ORA2/RP10=0.0 +! +!WR_ORA2/RP11=0.0 +! +!WR_ORA2/RP16=0.0 +! +!WR_ORA2/RPRL=0.0 +! +!WR_ORA2/APAN=0.0 +! +!WR_ORA2/PAN1=0.0 +! +!WR_ORA2/PAN2=0.0 +! +!WR_ORA2/PAN3=0.0 +! +!WR_ORA2/PAN4=0.0 +! +!WR_ORA2/PAN6=0.0 +! +!WR_ORA2/PAN7=0.0 +! +!WR_ORA2/PAN8=0.0 +! +!WR_ORA2/PN10=0.0 +! +!WR_ORA2/RO2T=0.0 +! +!WR_ORA2/RO21=0.0 +! +!WR_ORA2/RO25=0.0 +! +!WR_ORA2/WC_O3=0.0 +! +!WR_ORA2/WC_H2O2=0.0 +! +!WR_ORA2/WC_NO=0.0 +! +!WR_ORA2/WC_NO2=0.0 +! +!WR_ORA2/WC_NO3=0.0 +! +!WR_ORA2/WC_N2O5=0.0 +! +!WR_ORA2/WC_HONO=0.0 +! +!WR_ORA2/WC_HNO3=0.0 +! +!WR_ORA2/WC_HNO4=0.0 +! +!WR_ORA2/WC_NH3=0.0 +! +!WR_ORA2/WC_OH=0.0 +! +!WR_ORA2/WC_HO2=0.0 +! +!WR_ORA2/WC_CO2=0.0 +! +!WR_ORA2/WC_SO2=0.0 +! +!WR_ORA2/WC_H2SO4=0.0 +! +!WR_ORA2/WC_RO21=0.0 +! +!WR_ORA2/WC_RO25=0.0 +! +!WR_ORA2/WC_MEOH=0.0 +! +!WR_ORA2/WC_ETOH=0.0 +! +!WR_ORA2/WC_ALCH=0.0 +! +!WR_ORA2/WC_HCHO=0.0 +! +!WR_ORA2/WC_ALD2=0.0 +! +!WR_ORA2/WC_GLY=0.0 +! +!WR_ORA2/WC_MGLY=0.0 +! +!WR_ORA2/WC_KETL=0.0 +! +!WR_ORA2/WC_ORA1=0.0 +! +!WR_ORA2/WC_ORA2=0.0 +! +!WR_ORA2/WC_ACID=0.0 +! +!WR_ORA2/WC_RP16=0.0 +! +!WR_ORA2/WC_UR21=0.0 +! +!WR_ORA2/WC_UR28=0.0 +! +!WR_ORA2/WC_ACID2=0.0 +! +!WR_ORA2/WC_ASO3=0.0 +! +!WR_ORA2/WC_ASO4=0.0 +! +!WR_ORA2/WC_ASO5=0.0 +! +!WR_ORA2/WC_AHSO5=0.0 +! +!WR_ORA2/WC_AHMS=0.0 +! +!WR_ORA2/WR_O3=0.0 +! +!WR_ORA2/WR_H2O2=0.0 +! +!WR_ORA2/WR_NO=0.0 +! +!WR_ORA2/WR_NO2=0.0 +! +!WR_ORA2/WR_NO3=0.0 +! +!WR_ORA2/WR_N2O5=0.0 +! +!WR_ORA2/WR_HONO=0.0 +! +!WR_ORA2/WR_HNO3=0.0 +! +!WR_ORA2/WR_HNO4=0.0 +! +!WR_ORA2/WR_NH3=0.0 +! +!WR_ORA2/WR_OH=-KR39*<WR_ORA2> + PJAC(:,151,135)=-TPK%KR39(:)*PCONC(:,151) +! +!WR_ORA2/WR_HO2=0.0 +! +!WR_ORA2/WR_CO2=0.0 +! +!WR_ORA2/WR_SO2=0.0 +! +!WR_ORA2/WR_H2SO4=0.0 +! +!WR_ORA2/WR_RO21=0.0 +! +!WR_ORA2/WR_RO25=+KR29*<WR_RO25>+KR29*<WR_RO25> + PJAC(:,151,141)=+TPK%KR29(:)*PCONC(:,141)+TPK%KR29(:)*PCONC(:,141) +! +!WR_ORA2/WR_MEOH=0.0 +! +!WR_ORA2/WR_ETOH=0.0 +! +!WR_ORA2/WR_ALCH=0.0 +! +!WR_ORA2/WR_HCHO=0.0 +! +!WR_ORA2/WR_ALD2=0.0 +! +!WR_ORA2/WR_GLY=0.0 +! +!WR_ORA2/WR_MGLY=0.0 +! +!WR_ORA2/WR_KETL=0.0 +! +!WR_ORA2/WR_ORA1=0.0 +! +!WR_ORA2/WR_ORA2=-KTR58-KR39*<WR_OH> + PJAC(:,151,151)=-TPK%KTR58(:)-TPK%KR39(:)*PCONC(:,135) +! +!WR_ORA2/WR_ACID=0.0 +! +!WR_ORA2/WR_RP16=0.0 +! +!WR_ORA2/WR_UR21=0.0 +! +!WR_ORA2/WR_UR28=0.0 +! +!WR_ORA2/WR_ACID2=0.0 +! +!WR_ORA2/WR_ASO3=0.0 +! +!WR_ORA2/WR_ASO4=0.0 +! +!WR_ORA2/WR_ASO5=0.0 +! +!WR_ORA2/WR_AHSO5=0.0 +! +!WR_ORA2/WR_AHMS=0.0 +! +!WR_ACID/NO=0.0 +! +!WR_ACID/NO2=0.0 +! +!WR_ACID/O3=0.0 +! +!WR_ACID/HONO=0.0 +! +!WR_ACID/HNO3=0.0 +! +!WR_ACID/HNO4=0.0 +! +!WR_ACID/N2O5=0.0 +! +!WR_ACID/NO3=0.0 +! +!WR_ACID/NH3=0.0 +! +!WR_ACID/HO2=0.0 +! +!WR_ACID/CO=0.0 +! +!WR_ACID/H2O2=0.0 +! +!WR_ACID/SO2=0.0 +! +!WR_ACID/H2SO4=0.0 +! +!WR_ACID/OH=0.0 +! +!WR_ACID/ETHE=0.0 +! +!WR_ACID/OLEL=0.0 +! +!WR_ACID/OLEH=0.0 +! +!WR_ACID/ALKL=0.0 +! +!WR_ACID/ALKM=0.0 +! +!WR_ACID/ALKH=0.0 +! +!WR_ACID/AROH=0.0 +! +!WR_ACID/AROL=0.0 +! +!WR_ACID/AROO=0.0 +! +!WR_ACID/ARAL=0.0 +! +!WR_ACID/ARAC=0.0 +! +!WR_ACID/PAH=0.0 +! +!WR_ACID/HCHO=0.0 +! +!WR_ACID/ALD2=0.0 +! +!WR_ACID/KETL=0.0 +! +!WR_ACID/KETH=0.0 +! +!WR_ACID/MEOH=0.0 +! +!WR_ACID/ETOH=0.0 +! +!WR_ACID/ALCH=0.0 +! +!WR_ACID/ISOP=0.0 +! +!WR_ACID/BIOL=0.0 +! +!WR_ACID/BIOH=0.0 +! +!WR_ACID/MTBE=0.0 +! +!WR_ACID/MVK=0.0 +! +!WR_ACID/MCR=0.0 +! +!WR_ACID/MGLY=0.0 +! +!WR_ACID/GLY=0.0 +! +!WR_ACID/ORA1=0.0 +! +!WR_ACID/ORA2=0.0 +! +!WR_ACID/ACID=+KTR28 + PJAC(:,152,45)=+TPK%KTR28(:) +! +!WR_ACID/UR28=0.0 +! +!WR_ACID/UR21=0.0 +! +!WR_ACID/URG2=0.0 +! +!WR_ACID/UR26=0.0 +! +!WR_ACID/RPG2=0.0 +! +!WR_ACID/RP18=0.0 +! +!WR_ACID/RPG3=0.0 +! +!WR_ACID/URG4=0.0 +! +!WR_ACID/UR8=0.0 +! +!WR_ACID/UR17=0.0 +! +!WR_ACID/UR7=0.0 +! +!WR_ACID/RPR3=0.0 +! +!WR_ACID/URG6=0.0 +! +!WR_ACID/UR22=0.0 +! +!WR_ACID/URG7=0.0 +! +!WR_ACID/RPR4=0.0 +! +!WR_ACID/RPR7=0.0 +! +!WR_ACID/RPG7=0.0 +! +!WR_ACID/URG8=0.0 +! +!WR_ACID/UR19=0.0 +! +!WR_ACID/URG9=0.0 +! +!WR_ACID/AP7=0.0 +! +!WR_ACID/URG10=0.0 +! +!WR_ACID/RPR1=0.0 +! +!WR_ACID/RPR5=0.0 +! +!WR_ACID/RPR8=0.0 +! +!WR_ACID/RP10=0.0 +! +!WR_ACID/RP11=0.0 +! +!WR_ACID/RP16=0.0 +! +!WR_ACID/RPRL=0.0 +! +!WR_ACID/APAN=0.0 +! +!WR_ACID/PAN1=0.0 +! +!WR_ACID/PAN2=0.0 +! +!WR_ACID/PAN3=0.0 +! +!WR_ACID/PAN4=0.0 +! +!WR_ACID/PAN6=0.0 +! +!WR_ACID/PAN7=0.0 +! +!WR_ACID/PAN8=0.0 +! +!WR_ACID/PN10=0.0 +! +!WR_ACID/RO2T=0.0 +! +!WR_ACID/RO21=0.0 +! +!WR_ACID/RO25=0.0 +! +!WR_ACID/WC_O3=0.0 +! +!WR_ACID/WC_H2O2=0.0 +! +!WR_ACID/WC_NO=0.0 +! +!WR_ACID/WC_NO2=0.0 +! +!WR_ACID/WC_NO3=0.0 +! +!WR_ACID/WC_N2O5=0.0 +! +!WR_ACID/WC_HONO=0.0 +! +!WR_ACID/WC_HNO3=0.0 +! +!WR_ACID/WC_HNO4=0.0 +! +!WR_ACID/WC_NH3=0.0 +! +!WR_ACID/WC_OH=0.0 +! +!WR_ACID/WC_HO2=0.0 +! +!WR_ACID/WC_CO2=0.0 +! +!WR_ACID/WC_SO2=0.0 +! +!WR_ACID/WC_H2SO4=0.0 +! +!WR_ACID/WC_RO21=0.0 +! +!WR_ACID/WC_RO25=0.0 +! +!WR_ACID/WC_MEOH=0.0 +! +!WR_ACID/WC_ETOH=0.0 +! +!WR_ACID/WC_ALCH=0.0 +! +!WR_ACID/WC_HCHO=0.0 +! +!WR_ACID/WC_ALD2=0.0 +! +!WR_ACID/WC_GLY=0.0 +! +!WR_ACID/WC_MGLY=0.0 +! +!WR_ACID/WC_KETL=0.0 +! +!WR_ACID/WC_ORA1=0.0 +! +!WR_ACID/WC_ORA2=0.0 +! +!WR_ACID/WC_ACID=0.0 +! +!WR_ACID/WC_RP16=0.0 +! +!WR_ACID/WC_UR21=0.0 +! +!WR_ACID/WC_UR28=0.0 +! +!WR_ACID/WC_ACID2=0.0 +! +!WR_ACID/WC_ASO3=0.0 +! +!WR_ACID/WC_ASO4=0.0 +! +!WR_ACID/WC_ASO5=0.0 +! +!WR_ACID/WC_AHSO5=0.0 +! +!WR_ACID/WC_AHMS=0.0 +! +!WR_ACID/WR_O3=0.0 +! +!WR_ACID/WR_H2O2=0.0 +! +!WR_ACID/WR_NO=0.0 +! +!WR_ACID/WR_NO2=0.0 +! +!WR_ACID/WR_NO3=0.0 +! +!WR_ACID/WR_N2O5=0.0 +! +!WR_ACID/WR_HONO=0.0 +! +!WR_ACID/WR_HNO3=0.0 +! +!WR_ACID/WR_HNO4=0.0 +! +!WR_ACID/WR_NH3=0.0 +! +!WR_ACID/WR_OH=-KR40*<WR_ACID>-KR41*<WR_ACID> + PJAC(:,152,135)=-TPK%KR40(:)*PCONC(:,152)-TPK%KR41(:)*PCONC(:,152) +! +!WR_ACID/WR_HO2=0.0 +! +!WR_ACID/WR_CO2=0.0 +! +!WR_ACID/WR_SO2=0.0 +! +!WR_ACID/WR_H2SO4=0.0 +! +!WR_ACID/WR_RO21=0.0 +! +!WR_ACID/WR_RO25=0.0 +! +!WR_ACID/WR_MEOH=0.0 +! +!WR_ACID/WR_ETOH=0.0 +! +!WR_ACID/WR_ALCH=0.0 +! +!WR_ACID/WR_HCHO=0.0 +! +!WR_ACID/WR_ALD2=0.0 +! +!WR_ACID/WR_GLY=0.0 +! +!WR_ACID/WR_MGLY=0.0 +! +!WR_ACID/WR_KETL=0.0 +! +!WR_ACID/WR_ORA1=0.0 +! +!WR_ACID/WR_ORA2=0.0 +! +!WR_ACID/WR_ACID=-KTR59-KR40*<WR_OH>-KR41*<WR_OH> + PJAC(:,152,152)=-TPK%KTR59(:)-TPK%KR40(:)*PCONC(:,135)-TPK%KR41(:)*PCONC(:,135& +&) +! +!WR_ACID/WR_RP16=0.0 +! +!WR_ACID/WR_UR21=0.0 +! +!WR_ACID/WR_UR28=0.0 +! +!WR_ACID/WR_ACID2=0.0 +! +!WR_ACID/WR_ASO3=0.0 +! +!WR_ACID/WR_ASO4=0.0 +! +!WR_ACID/WR_ASO5=0.0 +! +!WR_ACID/WR_AHSO5=0.0 +! +!WR_ACID/WR_AHMS=0.0 +! +!WR_RP16/NO=0.0 +! +!WR_RP16/NO2=0.0 +! +!WR_RP16/O3=0.0 +! +!WR_RP16/HONO=0.0 +! +!WR_RP16/HNO3=0.0 +! +!WR_RP16/HNO4=0.0 +! +!WR_RP16/N2O5=0.0 +! +!WR_RP16/NO3=0.0 +! +!WR_RP16/NH3=0.0 +! +!WR_RP16/HO2=0.0 +! +!WR_RP16/CO=0.0 +! +!WR_RP16/H2O2=0.0 +! +!WR_RP16/SO2=0.0 +! +!WR_RP16/H2SO4=0.0 +! +!WR_RP16/OH=0.0 +! +!WR_RP16/ETHE=0.0 +! +!WR_RP16/OLEL=0.0 +! +!WR_RP16/OLEH=0.0 +! +!WR_RP16/ALKL=0.0 +! +!WR_RP16/ALKM=0.0 +! +!WR_RP16/ALKH=0.0 +! +!WR_RP16/AROH=0.0 +! +!WR_RP16/AROL=0.0 +! +!WR_RP16/AROO=0.0 +! +!WR_RP16/ARAL=0.0 +! +!WR_RP16/ARAC=0.0 +! +!WR_RP16/PAH=0.0 +! +!WR_RP16/HCHO=0.0 +! +!WR_RP16/ALD2=0.0 +! +!WR_RP16/KETL=0.0 +! +!WR_RP16/KETH=0.0 +! +!WR_RP16/MEOH=0.0 +! +!WR_RP16/ETOH=0.0 +! +!WR_RP16/ALCH=0.0 +! +!WR_RP16/ISOP=0.0 +! +!WR_RP16/BIOL=0.0 +! +!WR_RP16/BIOH=0.0 +! +!WR_RP16/MTBE=0.0 +! +!WR_RP16/MVK=0.0 +! +!WR_RP16/MCR=0.0 +! +!WR_RP16/MGLY=0.0 +! +!WR_RP16/GLY=0.0 +! +!WR_RP16/ORA1=0.0 +! +!WR_RP16/ORA2=0.0 +! +!WR_RP16/ACID=0.0 +! +!WR_RP16/UR28=0.0 +! +!WR_RP16/UR21=0.0 +! +!WR_RP16/URG2=0.0 +! +!WR_RP16/UR26=0.0 +! +!WR_RP16/RPG2=0.0 +! +!WR_RP16/RP18=0.0 +! +!WR_RP16/RPG3=0.0 +! +!WR_RP16/URG4=0.0 +! +!WR_RP16/UR8=0.0 +! +!WR_RP16/UR17=0.0 +! +!WR_RP16/UR7=0.0 +! +!WR_RP16/RPR3=0.0 +! +!WR_RP16/URG6=0.0 +! +!WR_RP16/UR22=0.0 +! +!WR_RP16/URG7=0.0 +! +!WR_RP16/RPR4=0.0 +! +!WR_RP16/RPR7=0.0 +! +!WR_RP16/RPG7=0.0 +! +!WR_RP16/URG8=0.0 +! +!WR_RP16/UR19=0.0 +! +!WR_RP16/URG9=0.0 +! +!WR_RP16/AP7=0.0 +! +!WR_RP16/URG10=0.0 +! +!WR_RP16/RPR1=0.0 +! +!WR_RP16/RPR5=0.0 +! +!WR_RP16/RPR8=0.0 +! +!WR_RP16/RP10=0.0 +! +!WR_RP16/RP11=0.0 +! +!WR_RP16/RP16=+KTR29 + PJAC(:,153,74)=+TPK%KTR29(:) +! +!WR_RP16/RPRL=0.0 +! +!WR_RP16/APAN=0.0 +! +!WR_RP16/PAN1=0.0 +! +!WR_RP16/PAN2=0.0 +! +!WR_RP16/PAN3=0.0 +! +!WR_RP16/PAN4=0.0 +! +!WR_RP16/PAN6=0.0 +! +!WR_RP16/PAN7=0.0 +! +!WR_RP16/PAN8=0.0 +! +!WR_RP16/PN10=0.0 +! +!WR_RP16/RO2T=0.0 +! +!WR_RP16/RO21=0.0 +! +!WR_RP16/RO25=0.0 +! +!WR_RP16/WC_O3=0.0 +! +!WR_RP16/WC_H2O2=0.0 +! +!WR_RP16/WC_NO=0.0 +! +!WR_RP16/WC_NO2=0.0 +! +!WR_RP16/WC_NO3=0.0 +! +!WR_RP16/WC_N2O5=0.0 +! +!WR_RP16/WC_HONO=0.0 +! +!WR_RP16/WC_HNO3=0.0 +! +!WR_RP16/WC_HNO4=0.0 +! +!WR_RP16/WC_NH3=0.0 +! +!WR_RP16/WC_OH=0.0 +! +!WR_RP16/WC_HO2=0.0 +! +!WR_RP16/WC_CO2=0.0 +! +!WR_RP16/WC_SO2=0.0 +! +!WR_RP16/WC_H2SO4=0.0 +! +!WR_RP16/WC_RO21=0.0 +! +!WR_RP16/WC_RO25=0.0 +! +!WR_RP16/WC_MEOH=0.0 +! +!WR_RP16/WC_ETOH=0.0 +! +!WR_RP16/WC_ALCH=0.0 +! +!WR_RP16/WC_HCHO=0.0 +! +!WR_RP16/WC_ALD2=0.0 +! +!WR_RP16/WC_GLY=0.0 +! +!WR_RP16/WC_MGLY=0.0 +! +!WR_RP16/WC_KETL=0.0 +! +!WR_RP16/WC_ORA1=0.0 +! +!WR_RP16/WC_ORA2=0.0 +! +!WR_RP16/WC_ACID=0.0 +! +!WR_RP16/WC_RP16=0.0 +! +!WR_RP16/WC_UR21=0.0 +! +!WR_RP16/WC_UR28=0.0 +! +!WR_RP16/WC_ACID2=0.0 +! +!WR_RP16/WC_ASO3=0.0 +! +!WR_RP16/WC_ASO4=0.0 +! +!WR_RP16/WC_ASO5=0.0 +! +!WR_RP16/WC_AHSO5=0.0 +! +!WR_RP16/WC_AHMS=0.0 +! +!WR_RP16/WR_O3=0.0 +! +!WR_RP16/WR_H2O2=0.0 +! +!WR_RP16/WR_NO=0.0 +! +!WR_RP16/WR_NO2=0.0 +! +!WR_RP16/WR_NO3=0.0 +! +!WR_RP16/WR_N2O5=0.0 +! +!WR_RP16/WR_HONO=0.0 +! +!WR_RP16/WR_HNO3=0.0 +! +!WR_RP16/WR_HNO4=0.0 +! +!WR_RP16/WR_NH3=0.0 +! +!WR_RP16/WR_OH=+KR35*<WR_GLY>+KR39*<WR_ORA2>-KR44*<WR_RP16>-KR45*<WR_RP16> + PJAC(:,153,135)=+TPK%KR35(:)*PCONC(:,147)+TPK%KR39(:)*PCONC(:,151)-TPK%KR44(:)& +&*PCONC(:,153)-TPK%KR45(:)*PCONC(:,153) +! +!WR_RP16/WR_HO2=0.0 +! +!WR_RP16/WR_CO2=0.0 +! +!WR_RP16/WR_SO2=0.0 +! +!WR_RP16/WR_H2SO4=0.0 +! +!WR_RP16/WR_RO21=0.0 +! +!WR_RP16/WR_RO25=0.0 +! +!WR_RP16/WR_MEOH=0.0 +! +!WR_RP16/WR_ETOH=0.0 +! +!WR_RP16/WR_ALCH=0.0 +! +!WR_RP16/WR_HCHO=0.0 +! +!WR_RP16/WR_ALD2=0.0 +! +!WR_RP16/WR_GLY=+KR35*<WR_OH> + PJAC(:,153,147)=+TPK%KR35(:)*PCONC(:,135) +! +!WR_RP16/WR_MGLY=0.0 +! +!WR_RP16/WR_KETL=0.0 +! +!WR_RP16/WR_ORA1=0.0 +! +!WR_RP16/WR_ORA2=+KR39*<WR_OH> + PJAC(:,153,151)=+TPK%KR39(:)*PCONC(:,135) +! +!WR_RP16/WR_ACID=0.0 +! +!WR_RP16/WR_RP16=-KTR60-KR44*<WR_OH>-KR45*<WR_OH> + PJAC(:,153,153)=-TPK%KTR60(:)-TPK%KR44(:)*PCONC(:,135)-TPK%KR45(:)*PCONC(:,135& +&) +! +!WR_RP16/WR_UR21=0.0 +! +!WR_RP16/WR_UR28=0.0 +! +!WR_RP16/WR_ACID2=0.0 +! +!WR_RP16/WR_ASO3=0.0 +! +!WR_RP16/WR_ASO4=0.0 +! +!WR_RP16/WR_ASO5=0.0 +! +!WR_RP16/WR_AHSO5=0.0 +! +!WR_RP16/WR_AHMS=0.0 +! +!WR_UR21/NO=0.0 +! +!WR_UR21/NO2=0.0 +! +!WR_UR21/O3=0.0 +! +!WR_UR21/HONO=0.0 +! +!WR_UR21/HNO3=0.0 +! +!WR_UR21/HNO4=0.0 +! +!WR_UR21/N2O5=0.0 +! +!WR_UR21/NO3=0.0 +! +!WR_UR21/NH3=0.0 +! +!WR_UR21/HO2=0.0 +! +!WR_UR21/CO=0.0 +! +!WR_UR21/H2O2=0.0 +! +!WR_UR21/SO2=0.0 +! +!WR_UR21/H2SO4=0.0 +! +!WR_UR21/OH=0.0 +! +!WR_UR21/ETHE=0.0 +! +!WR_UR21/OLEL=0.0 +! +!WR_UR21/OLEH=0.0 +! +!WR_UR21/ALKL=0.0 +! +!WR_UR21/ALKM=0.0 +! +!WR_UR21/ALKH=0.0 +! +!WR_UR21/AROH=0.0 +! +!WR_UR21/AROL=0.0 +! +!WR_UR21/AROO=0.0 +! +!WR_UR21/ARAL=0.0 +! +!WR_UR21/ARAC=0.0 +! +!WR_UR21/PAH=0.0 +! +!WR_UR21/HCHO=0.0 +! +!WR_UR21/ALD2=0.0 +! +!WR_UR21/KETL=0.0 +! +!WR_UR21/KETH=0.0 +! +!WR_UR21/MEOH=0.0 +! +!WR_UR21/ETOH=0.0 +! +!WR_UR21/ALCH=0.0 +! +!WR_UR21/ISOP=0.0 +! +!WR_UR21/BIOL=0.0 +! +!WR_UR21/BIOH=0.0 +! +!WR_UR21/MTBE=0.0 +! +!WR_UR21/MVK=0.0 +! +!WR_UR21/MCR=0.0 +! +!WR_UR21/MGLY=0.0 +! +!WR_UR21/GLY=0.0 +! +!WR_UR21/ORA1=0.0 +! +!WR_UR21/ORA2=0.0 +! +!WR_UR21/ACID=0.0 +! +!WR_UR21/UR28=0.0 +! +!WR_UR21/UR21=+KTR30 + PJAC(:,154,47)=+TPK%KTR30(:) +! +!WR_UR21/URG2=0.0 +! +!WR_UR21/UR26=0.0 +! +!WR_UR21/RPG2=0.0 +! +!WR_UR21/RP18=0.0 +! +!WR_UR21/RPG3=0.0 +! +!WR_UR21/URG4=0.0 +! +!WR_UR21/UR8=0.0 +! +!WR_UR21/UR17=0.0 +! +!WR_UR21/UR7=0.0 +! +!WR_UR21/RPR3=0.0 +! +!WR_UR21/URG6=0.0 +! +!WR_UR21/UR22=0.0 +! +!WR_UR21/URG7=0.0 +! +!WR_UR21/RPR4=0.0 +! +!WR_UR21/RPR7=0.0 +! +!WR_UR21/RPG7=0.0 +! +!WR_UR21/URG8=0.0 +! +!WR_UR21/UR19=0.0 +! +!WR_UR21/URG9=0.0 +! +!WR_UR21/AP7=0.0 +! +!WR_UR21/URG10=0.0 +! +!WR_UR21/RPR1=0.0 +! +!WR_UR21/RPR5=0.0 +! +!WR_UR21/RPR8=0.0 +! +!WR_UR21/RP10=0.0 +! +!WR_UR21/RP11=0.0 +! +!WR_UR21/RP16=0.0 +! +!WR_UR21/RPRL=0.0 +! +!WR_UR21/APAN=0.0 +! +!WR_UR21/PAN1=0.0 +! +!WR_UR21/PAN2=0.0 +! +!WR_UR21/PAN3=0.0 +! +!WR_UR21/PAN4=0.0 +! +!WR_UR21/PAN6=0.0 +! +!WR_UR21/PAN7=0.0 +! +!WR_UR21/PAN8=0.0 +! +!WR_UR21/PN10=0.0 +! +!WR_UR21/RO2T=0.0 +! +!WR_UR21/RO21=0.0 +! +!WR_UR21/RO25=0.0 +! +!WR_UR21/WC_O3=0.0 +! +!WR_UR21/WC_H2O2=0.0 +! +!WR_UR21/WC_NO=0.0 +! +!WR_UR21/WC_NO2=0.0 +! +!WR_UR21/WC_NO3=0.0 +! +!WR_UR21/WC_N2O5=0.0 +! +!WR_UR21/WC_HONO=0.0 +! +!WR_UR21/WC_HNO3=0.0 +! +!WR_UR21/WC_HNO4=0.0 +! +!WR_UR21/WC_NH3=0.0 +! +!WR_UR21/WC_OH=0.0 +! +!WR_UR21/WC_HO2=0.0 +! +!WR_UR21/WC_CO2=0.0 +! +!WR_UR21/WC_SO2=0.0 +! +!WR_UR21/WC_H2SO4=0.0 +! +!WR_UR21/WC_RO21=0.0 +! +!WR_UR21/WC_RO25=0.0 +! +!WR_UR21/WC_MEOH=0.0 +! +!WR_UR21/WC_ETOH=0.0 +! +!WR_UR21/WC_ALCH=0.0 +! +!WR_UR21/WC_HCHO=0.0 +! +!WR_UR21/WC_ALD2=0.0 +! +!WR_UR21/WC_GLY=0.0 +! +!WR_UR21/WC_MGLY=0.0 +! +!WR_UR21/WC_KETL=0.0 +! +!WR_UR21/WC_ORA1=0.0 +! +!WR_UR21/WC_ORA2=0.0 +! +!WR_UR21/WC_ACID=0.0 +! +!WR_UR21/WC_RP16=0.0 +! +!WR_UR21/WC_UR21=0.0 +! +!WR_UR21/WC_UR28=0.0 +! +!WR_UR21/WC_ACID2=0.0 +! +!WR_UR21/WC_ASO3=0.0 +! +!WR_UR21/WC_ASO4=0.0 +! +!WR_UR21/WC_ASO5=0.0 +! +!WR_UR21/WC_AHSO5=0.0 +! +!WR_UR21/WC_AHMS=0.0 +! +!WR_UR21/WR_O3=0.0 +! +!WR_UR21/WR_H2O2=0.0 +! +!WR_UR21/WR_NO=0.0 +! +!WR_UR21/WR_NO2=0.0 +! +!WR_UR21/WR_NO3=0.0 +! +!WR_UR21/WR_N2O5=0.0 +! +!WR_UR21/WR_HONO=0.0 +! +!WR_UR21/WR_HNO3=0.0 +! +!WR_UR21/WR_HNO4=0.0 +! +!WR_UR21/WR_NH3=0.0 +! +!WR_UR21/WR_OH=+KR36*<WR_MGLY>+KR37*<WR_KETL>+0.56*KR41*<WR_ACID>-KR43*<WR_UR21 +!> + PJAC(:,154,135)=+TPK%KR36(:)*PCONC(:,148)+TPK%KR37(:)*PCONC(:,149)+0.56*TPK%KR& +&41(:)*PCONC(:,152)-TPK%KR43(:)*PCONC(:,154) +! +!WR_UR21/WR_HO2=0.0 +! +!WR_UR21/WR_CO2=0.0 +! +!WR_UR21/WR_SO2=0.0 +! +!WR_UR21/WR_H2SO4=0.0 +! +!WR_UR21/WR_RO21=0.0 +! +!WR_UR21/WR_RO25=0.0 +! +!WR_UR21/WR_MEOH=0.0 +! +!WR_UR21/WR_ETOH=0.0 +! +!WR_UR21/WR_ALCH=0.0 +! +!WR_UR21/WR_HCHO=0.0 +! +!WR_UR21/WR_ALD2=0.0 +! +!WR_UR21/WR_GLY=0.0 +! +!WR_UR21/WR_MGLY=+KR36*<WR_OH> + PJAC(:,154,148)=+TPK%KR36(:)*PCONC(:,135) +! +!WR_UR21/WR_KETL=+KR37*<WR_OH> + PJAC(:,154,149)=+TPK%KR37(:)*PCONC(:,135) +! +!WR_UR21/WR_ORA1=0.0 +! +!WR_UR21/WR_ORA2=0.0 +! +!WR_UR21/WR_ACID=+0.56*KR41*<WR_OH> + PJAC(:,154,152)=+0.56*TPK%KR41(:)*PCONC(:,135) +! +!WR_UR21/WR_RP16=0.0 +! +!WR_UR21/WR_UR21=-KTR61-KR43*<WR_OH> + PJAC(:,154,154)=-TPK%KTR61(:)-TPK%KR43(:)*PCONC(:,135) +! +!WR_UR21/WR_UR28=0.0 +! +!WR_UR21/WR_ACID2=0.0 +! +!WR_UR21/WR_ASO3=0.0 +! +!WR_UR21/WR_ASO4=0.0 +! +!WR_UR21/WR_ASO5=0.0 +! +!WR_UR21/WR_AHSO5=0.0 +! +!WR_UR21/WR_AHMS=0.0 +! +!WR_UR28/NO=0.0 +! +!WR_UR28/NO2=0.0 +! +!WR_UR28/O3=0.0 +! +!WR_UR28/HONO=0.0 +! +!WR_UR28/HNO3=0.0 +! +!WR_UR28/HNO4=0.0 +! +!WR_UR28/N2O5=0.0 +! +!WR_UR28/NO3=0.0 +! +!WR_UR28/NH3=0.0 +! +!WR_UR28/HO2=0.0 +! +!WR_UR28/CO=0.0 +! +!WR_UR28/H2O2=0.0 +! +!WR_UR28/SO2=0.0 +! +!WR_UR28/H2SO4=0.0 +! +!WR_UR28/OH=0.0 +! +!WR_UR28/ETHE=0.0 +! +!WR_UR28/OLEL=0.0 +! +!WR_UR28/OLEH=0.0 +! +!WR_UR28/ALKL=0.0 +! +!WR_UR28/ALKM=0.0 +! +!WR_UR28/ALKH=0.0 +! +!WR_UR28/AROH=0.0 +! +!WR_UR28/AROL=0.0 +! +!WR_UR28/AROO=0.0 +! +!WR_UR28/ARAL=0.0 +! +!WR_UR28/ARAC=0.0 +! +!WR_UR28/PAH=0.0 +! +!WR_UR28/HCHO=0.0 +! +!WR_UR28/ALD2=0.0 +! +!WR_UR28/KETL=0.0 +! +!WR_UR28/KETH=0.0 +! +!WR_UR28/MEOH=0.0 +! +!WR_UR28/ETOH=0.0 +! +!WR_UR28/ALCH=0.0 +! +!WR_UR28/ISOP=0.0 +! +!WR_UR28/BIOL=0.0 +! +!WR_UR28/BIOH=0.0 +! +!WR_UR28/MTBE=0.0 +! +!WR_UR28/MVK=0.0 +! +!WR_UR28/MCR=0.0 +! +!WR_UR28/MGLY=0.0 +! +!WR_UR28/GLY=0.0 +! +!WR_UR28/ORA1=0.0 +! +!WR_UR28/ORA2=0.0 +! +!WR_UR28/ACID=0.0 +! +!WR_UR28/UR28=+KTR31 + PJAC(:,155,46)=+TPK%KTR31(:) +! +!WR_UR28/UR21=0.0 +! +!WR_UR28/URG2=0.0 +! +!WR_UR28/UR26=0.0 +! +!WR_UR28/RPG2=0.0 +! +!WR_UR28/RP18=0.0 +! +!WR_UR28/RPG3=0.0 +! +!WR_UR28/URG4=0.0 +! +!WR_UR28/UR8=0.0 +! +!WR_UR28/UR17=0.0 +! +!WR_UR28/UR7=0.0 +! +!WR_UR28/RPR3=0.0 +! +!WR_UR28/URG6=0.0 +! +!WR_UR28/UR22=0.0 +! +!WR_UR28/URG7=0.0 +! +!WR_UR28/RPR4=0.0 +! +!WR_UR28/RPR7=0.0 +! +!WR_UR28/RPG7=0.0 +! +!WR_UR28/URG8=0.0 +! +!WR_UR28/UR19=0.0 +! +!WR_UR28/URG9=0.0 +! +!WR_UR28/AP7=0.0 +! +!WR_UR28/URG10=0.0 +! +!WR_UR28/RPR1=0.0 +! +!WR_UR28/RPR5=0.0 +! +!WR_UR28/RPR8=0.0 +! +!WR_UR28/RP10=0.0 +! +!WR_UR28/RP11=0.0 +! +!WR_UR28/RP16=0.0 +! +!WR_UR28/RPRL=0.0 +! +!WR_UR28/APAN=0.0 +! +!WR_UR28/PAN1=0.0 +! +!WR_UR28/PAN2=0.0 +! +!WR_UR28/PAN3=0.0 +! +!WR_UR28/PAN4=0.0 +! +!WR_UR28/PAN6=0.0 +! +!WR_UR28/PAN7=0.0 +! +!WR_UR28/PAN8=0.0 +! +!WR_UR28/PN10=0.0 +! +!WR_UR28/RO2T=0.0 +! +!WR_UR28/RO21=0.0 +! +!WR_UR28/RO25=0.0 +! +!WR_UR28/WC_O3=0.0 +! +!WR_UR28/WC_H2O2=0.0 +! +!WR_UR28/WC_NO=0.0 +! +!WR_UR28/WC_NO2=0.0 +! +!WR_UR28/WC_NO3=0.0 +! +!WR_UR28/WC_N2O5=0.0 +! +!WR_UR28/WC_HONO=0.0 +! +!WR_UR28/WC_HNO3=0.0 +! +!WR_UR28/WC_HNO4=0.0 +! +!WR_UR28/WC_NH3=0.0 +! +!WR_UR28/WC_OH=0.0 +! +!WR_UR28/WC_HO2=0.0 +! +!WR_UR28/WC_CO2=0.0 +! +!WR_UR28/WC_SO2=0.0 +! +!WR_UR28/WC_H2SO4=0.0 +! +!WR_UR28/WC_RO21=0.0 +! +!WR_UR28/WC_RO25=0.0 +! +!WR_UR28/WC_MEOH=0.0 +! +!WR_UR28/WC_ETOH=0.0 +! +!WR_UR28/WC_ALCH=0.0 +! +!WR_UR28/WC_HCHO=0.0 +! +!WR_UR28/WC_ALD2=0.0 +! +!WR_UR28/WC_GLY=0.0 +! +!WR_UR28/WC_MGLY=0.0 +! +!WR_UR28/WC_KETL=0.0 +! +!WR_UR28/WC_ORA1=0.0 +! +!WR_UR28/WC_ORA2=0.0 +! +!WR_UR28/WC_ACID=0.0 +! +!WR_UR28/WC_RP16=0.0 +! +!WR_UR28/WC_UR21=0.0 +! +!WR_UR28/WC_UR28=0.0 +! +!WR_UR28/WC_ACID2=0.0 +! +!WR_UR28/WC_ASO3=0.0 +! +!WR_UR28/WC_ASO4=0.0 +! +!WR_UR28/WC_ASO5=0.0 +! +!WR_UR28/WC_AHSO5=0.0 +! +!WR_UR28/WC_AHMS=0.0 +! +!WR_UR28/WR_O3=0.0 +! +!WR_UR28/WR_H2O2=0.0 +! +!WR_UR28/WR_NO=0.0 +! +!WR_UR28/WR_NO2=0.0 +! +!WR_UR28/WR_NO3=0.0 +! +!WR_UR28/WR_N2O5=0.0 +! +!WR_UR28/WR_HONO=0.0 +! +!WR_UR28/WR_HNO3=0.0 +! +!WR_UR28/WR_HNO4=0.0 +! +!WR_UR28/WR_NH3=0.0 +! +!WR_UR28/WR_OH=-KR42*<WR_UR28>+KR44*<WR_RP16> + PJAC(:,155,135)=-TPK%KR42(:)*PCONC(:,155)+TPK%KR44(:)*PCONC(:,153) +! +!WR_UR28/WR_HO2=0.0 +! +!WR_UR28/WR_CO2=0.0 +! +!WR_UR28/WR_SO2=0.0 +! +!WR_UR28/WR_H2SO4=0.0 +! +!WR_UR28/WR_RO21=0.0 +! +!WR_UR28/WR_RO25=0.0 +! +!WR_UR28/WR_MEOH=0.0 +! +!WR_UR28/WR_ETOH=0.0 +! +!WR_UR28/WR_ALCH=0.0 +! +!WR_UR28/WR_HCHO=0.0 +! +!WR_UR28/WR_ALD2=0.0 +! +!WR_UR28/WR_GLY=0.0 +! +!WR_UR28/WR_MGLY=0.0 +! +!WR_UR28/WR_KETL=0.0 +! +!WR_UR28/WR_ORA1=0.0 +! +!WR_UR28/WR_ORA2=0.0 +! +!WR_UR28/WR_ACID=0.0 +! +!WR_UR28/WR_RP16=+KR44*<WR_OH> + PJAC(:,155,153)=+TPK%KR44(:)*PCONC(:,135) +! +!WR_UR28/WR_UR21=0.0 +! +!WR_UR28/WR_UR28=-KTR62-KR42*<WR_OH> + PJAC(:,155,155)=-TPK%KTR62(:)-TPK%KR42(:)*PCONC(:,135) +! +!WR_UR28/WR_ACID2=0.0 +! +!WR_UR28/WR_ASO3=0.0 +! +!WR_UR28/WR_ASO4=0.0 +! +!WR_UR28/WR_ASO5=0.0 +! +!WR_UR28/WR_AHSO5=0.0 +! +!WR_UR28/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ30 +! +SUBROUTINE SUBJ31 +! +!Indices 156 a 160 +! +! +!WR_ACID2/NO=0.0 +! +!WR_ACID2/NO2=0.0 +! +!WR_ACID2/O3=0.0 +! +!WR_ACID2/HONO=0.0 +! +!WR_ACID2/HNO3=0.0 +! +!WR_ACID2/HNO4=0.0 +! +!WR_ACID2/N2O5=0.0 +! +!WR_ACID2/NO3=0.0 +! +!WR_ACID2/NH3=0.0 +! +!WR_ACID2/HO2=0.0 +! +!WR_ACID2/CO=0.0 +! +!WR_ACID2/H2O2=0.0 +! +!WR_ACID2/SO2=0.0 +! +!WR_ACID2/H2SO4=0.0 +! +!WR_ACID2/OH=0.0 +! +!WR_ACID2/ETHE=0.0 +! +!WR_ACID2/OLEL=0.0 +! +!WR_ACID2/OLEH=0.0 +! +!WR_ACID2/ALKL=0.0 +! +!WR_ACID2/ALKM=0.0 +! +!WR_ACID2/ALKH=0.0 +! +!WR_ACID2/AROH=0.0 +! +!WR_ACID2/AROL=0.0 +! +!WR_ACID2/AROO=0.0 +! +!WR_ACID2/ARAL=0.0 +! +!WR_ACID2/ARAC=0.0 +! +!WR_ACID2/PAH=0.0 +! +!WR_ACID2/HCHO=0.0 +! +!WR_ACID2/ALD2=0.0 +! +!WR_ACID2/KETL=0.0 +! +!WR_ACID2/KETH=0.0 +! +!WR_ACID2/MEOH=0.0 +! +!WR_ACID2/ETOH=0.0 +! +!WR_ACID2/ALCH=0.0 +! +!WR_ACID2/ISOP=0.0 +! +!WR_ACID2/BIOL=0.0 +! +!WR_ACID2/BIOH=0.0 +! +!WR_ACID2/MTBE=0.0 +! +!WR_ACID2/MVK=0.0 +! +!WR_ACID2/MCR=0.0 +! +!WR_ACID2/MGLY=0.0 +! +!WR_ACID2/GLY=0.0 +! +!WR_ACID2/ORA1=0.0 +! +!WR_ACID2/ORA2=0.0 +! +!WR_ACID2/ACID=0.0 +! +!WR_ACID2/UR28=0.0 +! +!WR_ACID2/UR21=0.0 +! +!WR_ACID2/URG2=0.0 +! +!WR_ACID2/UR26=0.0 +! +!WR_ACID2/RPG2=0.0 +! +!WR_ACID2/RP18=0.0 +! +!WR_ACID2/RPG3=0.0 +! +!WR_ACID2/URG4=0.0 +! +!WR_ACID2/UR8=0.0 +! +!WR_ACID2/UR17=0.0 +! +!WR_ACID2/UR7=0.0 +! +!WR_ACID2/RPR3=0.0 +! +!WR_ACID2/URG6=0.0 +! +!WR_ACID2/UR22=0.0 +! +!WR_ACID2/URG7=0.0 +! +!WR_ACID2/RPR4=0.0 +! +!WR_ACID2/RPR7=0.0 +! +!WR_ACID2/RPG7=0.0 +! +!WR_ACID2/URG8=0.0 +! +!WR_ACID2/UR19=0.0 +! +!WR_ACID2/URG9=0.0 +! +!WR_ACID2/AP7=0.0 +! +!WR_ACID2/URG10=0.0 +! +!WR_ACID2/RPR1=0.0 +! +!WR_ACID2/RPR5=0.0 +! +!WR_ACID2/RPR8=0.0 +! +!WR_ACID2/RP10=0.0 +! +!WR_ACID2/RP11=0.0 +! +!WR_ACID2/RP16=0.0 +! +!WR_ACID2/RPRL=0.0 +! +!WR_ACID2/APAN=0.0 +! +!WR_ACID2/PAN1=0.0 +! +!WR_ACID2/PAN2=0.0 +! +!WR_ACID2/PAN3=0.0 +! +!WR_ACID2/PAN4=0.0 +! +!WR_ACID2/PAN6=0.0 +! +!WR_ACID2/PAN7=0.0 +! +!WR_ACID2/PAN8=0.0 +! +!WR_ACID2/PN10=0.0 +! +!WR_ACID2/RO2T=0.0 +! +!WR_ACID2/RO21=0.0 +! +!WR_ACID2/RO25=0.0 +! +!WR_ACID2/WC_O3=0.0 +! +!WR_ACID2/WC_H2O2=0.0 +! +!WR_ACID2/WC_NO=0.0 +! +!WR_ACID2/WC_NO2=0.0 +! +!WR_ACID2/WC_NO3=0.0 +! +!WR_ACID2/WC_N2O5=0.0 +! +!WR_ACID2/WC_HONO=0.0 +! +!WR_ACID2/WC_HNO3=0.0 +! +!WR_ACID2/WC_HNO4=0.0 +! +!WR_ACID2/WC_NH3=0.0 +! +!WR_ACID2/WC_OH=0.0 +! +!WR_ACID2/WC_HO2=0.0 +! +!WR_ACID2/WC_CO2=0.0 +! +!WR_ACID2/WC_SO2=0.0 +! +!WR_ACID2/WC_H2SO4=0.0 +! +!WR_ACID2/WC_RO21=0.0 +! +!WR_ACID2/WC_RO25=0.0 +! +!WR_ACID2/WC_MEOH=0.0 +! +!WR_ACID2/WC_ETOH=0.0 +! +!WR_ACID2/WC_ALCH=0.0 +! +!WR_ACID2/WC_HCHO=0.0 +! +!WR_ACID2/WC_ALD2=0.0 +! +!WR_ACID2/WC_GLY=0.0 +! +!WR_ACID2/WC_MGLY=0.0 +! +!WR_ACID2/WC_KETL=0.0 +! +!WR_ACID2/WC_ORA1=0.0 +! +!WR_ACID2/WC_ORA2=0.0 +! +!WR_ACID2/WC_ACID=0.0 +! +!WR_ACID2/WC_RP16=0.0 +! +!WR_ACID2/WC_UR21=0.0 +! +!WR_ACID2/WC_UR28=0.0 +! +!WR_ACID2/WC_ACID2=0.0 +! +!WR_ACID2/WC_ASO3=0.0 +! +!WR_ACID2/WC_ASO4=0.0 +! +!WR_ACID2/WC_ASO5=0.0 +! +!WR_ACID2/WC_AHSO5=0.0 +! +!WR_ACID2/WC_AHMS=0.0 +! +!WR_ACID2/WR_O3=0.0 +! +!WR_ACID2/WR_H2O2=0.0 +! +!WR_ACID2/WR_NO=0.0 +! +!WR_ACID2/WR_NO2=0.0 +! +!WR_ACID2/WR_NO3=0.0 +! +!WR_ACID2/WR_N2O5=0.0 +! +!WR_ACID2/WR_HONO=0.0 +! +!WR_ACID2/WR_HNO3=0.0 +! +!WR_ACID2/WR_HNO4=0.0 +! +!WR_ACID2/WR_NH3=0.0 +! +!WR_ACID2/WR_OH=+0.15*KR41*<WR_ACID>+0.56*KR43*<WR_UR21>-KR46*<WR_ACID2> + PJAC(:,156,135)=+0.15*TPK%KR41(:)*PCONC(:,152)+0.56*TPK%KR43(:)*PCONC(:,154)-T& +&PK%KR46(:)*PCONC(:,156) +! +!WR_ACID2/WR_HO2=0.0 +! +!WR_ACID2/WR_CO2=0.0 +! +!WR_ACID2/WR_SO2=0.0 +! +!WR_ACID2/WR_H2SO4=0.0 +! +!WR_ACID2/WR_RO21=0.0 +! +!WR_ACID2/WR_RO25=0.0 +! +!WR_ACID2/WR_MEOH=0.0 +! +!WR_ACID2/WR_ETOH=0.0 +! +!WR_ACID2/WR_ALCH=0.0 +! +!WR_ACID2/WR_HCHO=0.0 +! +!WR_ACID2/WR_ALD2=0.0 +! +!WR_ACID2/WR_GLY=0.0 +! +!WR_ACID2/WR_MGLY=0.0 +! +!WR_ACID2/WR_KETL=0.0 +! +!WR_ACID2/WR_ORA1=0.0 +! +!WR_ACID2/WR_ORA2=0.0 +! +!WR_ACID2/WR_ACID=+0.15*KR41*<WR_OH> + PJAC(:,156,152)=+0.15*TPK%KR41(:)*PCONC(:,135) +! +!WR_ACID2/WR_RP16=0.0 +! +!WR_ACID2/WR_UR21=+0.56*KR43*<WR_OH> + PJAC(:,156,154)=+0.56*TPK%KR43(:)*PCONC(:,135) +! +!WR_ACID2/WR_UR28=0.0 +! +!WR_ACID2/WR_ACID2=-KR46*<WR_OH> + PJAC(:,156,156)=-TPK%KR46(:)*PCONC(:,135) +! +!WR_ACID2/WR_ASO3=0.0 +! +!WR_ACID2/WR_ASO4=0.0 +! +!WR_ACID2/WR_ASO5=0.0 +! +!WR_ACID2/WR_AHSO5=0.0 +! +!WR_ACID2/WR_AHMS=0.0 +! +!WR_ASO3/NO=0.0 +! +!WR_ASO3/NO2=0.0 +! +!WR_ASO3/O3=0.0 +! +!WR_ASO3/HONO=0.0 +! +!WR_ASO3/HNO3=0.0 +! +!WR_ASO3/HNO4=0.0 +! +!WR_ASO3/N2O5=0.0 +! +!WR_ASO3/NO3=0.0 +! +!WR_ASO3/NH3=0.0 +! +!WR_ASO3/HO2=0.0 +! +!WR_ASO3/CO=0.0 +! +!WR_ASO3/H2O2=0.0 +! +!WR_ASO3/SO2=0.0 +! +!WR_ASO3/H2SO4=0.0 +! +!WR_ASO3/OH=0.0 +! +!WR_ASO3/ETHE=0.0 +! +!WR_ASO3/OLEL=0.0 +! +!WR_ASO3/OLEH=0.0 +! +!WR_ASO3/ALKL=0.0 +! +!WR_ASO3/ALKM=0.0 +! +!WR_ASO3/ALKH=0.0 +! +!WR_ASO3/AROH=0.0 +! +!WR_ASO3/AROL=0.0 +! +!WR_ASO3/AROO=0.0 +! +!WR_ASO3/ARAL=0.0 +! +!WR_ASO3/ARAC=0.0 +! +!WR_ASO3/PAH=0.0 +! +!WR_ASO3/HCHO=0.0 +! +!WR_ASO3/ALD2=0.0 +! +!WR_ASO3/KETL=0.0 +! +!WR_ASO3/KETH=0.0 +! +!WR_ASO3/MEOH=0.0 +! +!WR_ASO3/ETOH=0.0 +! +!WR_ASO3/ALCH=0.0 +! +!WR_ASO3/ISOP=0.0 +! +!WR_ASO3/BIOL=0.0 +! +!WR_ASO3/BIOH=0.0 +! +!WR_ASO3/MTBE=0.0 +! +!WR_ASO3/MVK=0.0 +! +!WR_ASO3/MCR=0.0 +! +!WR_ASO3/MGLY=0.0 +! +!WR_ASO3/GLY=0.0 +! +!WR_ASO3/ORA1=0.0 +! +!WR_ASO3/ORA2=0.0 +! +!WR_ASO3/ACID=0.0 +! +!WR_ASO3/UR28=0.0 +! +!WR_ASO3/UR21=0.0 +! +!WR_ASO3/URG2=0.0 +! +!WR_ASO3/UR26=0.0 +! +!WR_ASO3/RPG2=0.0 +! +!WR_ASO3/RP18=0.0 +! +!WR_ASO3/RPG3=0.0 +! +!WR_ASO3/URG4=0.0 +! +!WR_ASO3/UR8=0.0 +! +!WR_ASO3/UR17=0.0 +! +!WR_ASO3/UR7=0.0 +! +!WR_ASO3/RPR3=0.0 +! +!WR_ASO3/URG6=0.0 +! +!WR_ASO3/UR22=0.0 +! +!WR_ASO3/URG7=0.0 +! +!WR_ASO3/RPR4=0.0 +! +!WR_ASO3/RPR7=0.0 +! +!WR_ASO3/RPG7=0.0 +! +!WR_ASO3/URG8=0.0 +! +!WR_ASO3/UR19=0.0 +! +!WR_ASO3/URG9=0.0 +! +!WR_ASO3/AP7=0.0 +! +!WR_ASO3/URG10=0.0 +! +!WR_ASO3/RPR1=0.0 +! +!WR_ASO3/RPR5=0.0 +! +!WR_ASO3/RPR8=0.0 +! +!WR_ASO3/RP10=0.0 +! +!WR_ASO3/RP11=0.0 +! +!WR_ASO3/RP16=0.0 +! +!WR_ASO3/RPRL=0.0 +! +!WR_ASO3/APAN=0.0 +! +!WR_ASO3/PAN1=0.0 +! +!WR_ASO3/PAN2=0.0 +! +!WR_ASO3/PAN3=0.0 +! +!WR_ASO3/PAN4=0.0 +! +!WR_ASO3/PAN6=0.0 +! +!WR_ASO3/PAN7=0.0 +! +!WR_ASO3/PAN8=0.0 +! +!WR_ASO3/PN10=0.0 +! +!WR_ASO3/RO2T=0.0 +! +!WR_ASO3/RO21=0.0 +! +!WR_ASO3/RO25=0.0 +! +!WR_ASO3/WC_O3=0.0 +! +!WR_ASO3/WC_H2O2=0.0 +! +!WR_ASO3/WC_NO=0.0 +! +!WR_ASO3/WC_NO2=0.0 +! +!WR_ASO3/WC_NO3=0.0 +! +!WR_ASO3/WC_N2O5=0.0 +! +!WR_ASO3/WC_HONO=0.0 +! +!WR_ASO3/WC_HNO3=0.0 +! +!WR_ASO3/WC_HNO4=0.0 +! +!WR_ASO3/WC_NH3=0.0 +! +!WR_ASO3/WC_OH=0.0 +! +!WR_ASO3/WC_HO2=0.0 +! +!WR_ASO3/WC_CO2=0.0 +! +!WR_ASO3/WC_SO2=0.0 +! +!WR_ASO3/WC_H2SO4=0.0 +! +!WR_ASO3/WC_RO21=0.0 +! +!WR_ASO3/WC_RO25=0.0 +! +!WR_ASO3/WC_MEOH=0.0 +! +!WR_ASO3/WC_ETOH=0.0 +! +!WR_ASO3/WC_ALCH=0.0 +! +!WR_ASO3/WC_HCHO=0.0 +! +!WR_ASO3/WC_ALD2=0.0 +! +!WR_ASO3/WC_GLY=0.0 +! +!WR_ASO3/WC_MGLY=0.0 +! +!WR_ASO3/WC_KETL=0.0 +! +!WR_ASO3/WC_ORA1=0.0 +! +!WR_ASO3/WC_ORA2=0.0 +! +!WR_ASO3/WC_ACID=0.0 +! +!WR_ASO3/WC_RP16=0.0 +! +!WR_ASO3/WC_UR21=0.0 +! +!WR_ASO3/WC_UR28=0.0 +! +!WR_ASO3/WC_ACID2=0.0 +! +!WR_ASO3/WC_ASO3=0.0 +! +!WR_ASO3/WC_ASO4=0.0 +! +!WR_ASO3/WC_ASO5=0.0 +! +!WR_ASO3/WC_AHSO5=0.0 +! +!WR_ASO3/WC_AHMS=0.0 +! +!WR_ASO3/WR_O3=0.0 +! +!WR_ASO3/WR_H2O2=0.0 +! +!WR_ASO3/WR_NO=0.0 +! +!WR_ASO3/WR_NO2=0.0 +! +!WR_ASO3/WR_NO3=+KR16*<WR_SO2> + PJAC(:,157,129)=+TPK%KR16(:)*PCONC(:,138) +! +!WR_ASO3/WR_N2O5=0.0 +! +!WR_ASO3/WR_HONO=0.0 +! +!WR_ASO3/WR_HNO3=0.0 +! +!WR_ASO3/WR_HNO4=0.0 +! +!WR_ASO3/WR_NH3=0.0 +! +!WR_ASO3/WR_OH=+KR7*<WR_SO2> + PJAC(:,157,135)=+TPK%KR7(:)*PCONC(:,138) +! +!WR_ASO3/WR_HO2=0.0 +! +!WR_ASO3/WR_CO2=0.0 +! +!WR_ASO3/WR_SO2=+KR7*<WR_OH>+KR16*<WR_NO3>+KR28*<WR_RO21> + PJAC(:,157,138)=+TPK%KR7(:)*PCONC(:,135)+TPK%KR16(:)*PCONC(:,129)+TPK%KR28(:)*& +&PCONC(:,140) +! +!WR_ASO3/WR_H2SO4=0.0 +! +!WR_ASO3/WR_RO21=+KR28*<WR_SO2> + PJAC(:,157,140)=+TPK%KR28(:)*PCONC(:,138) +! +!WR_ASO3/WR_RO25=0.0 +! +!WR_ASO3/WR_MEOH=0.0 +! +!WR_ASO3/WR_ETOH=0.0 +! +!WR_ASO3/WR_ALCH=0.0 +! +!WR_ASO3/WR_HCHO=0.0 +! +!WR_ASO3/WR_ALD2=0.0 +! +!WR_ASO3/WR_GLY=0.0 +! +!WR_ASO3/WR_MGLY=0.0 +! +!WR_ASO3/WR_KETL=0.0 +! +!WR_ASO3/WR_ORA1=0.0 +! +!WR_ASO3/WR_ORA2=0.0 +! +!WR_ASO3/WR_ACID=0.0 +! +!WR_ASO3/WR_RP16=0.0 +! +!WR_ASO3/WR_UR21=0.0 +! +!WR_ASO3/WR_UR28=0.0 +! +!WR_ASO3/WR_ACID2=0.0 +! +!WR_ASO3/WR_ASO3=-KR20*<W_O2> + PJAC(:,157,157)=-TPK%KR20(:)*TPK%W_O2(:) +! +!WR_ASO3/WR_ASO4=0.0 +! +!WR_ASO3/WR_ASO5=0.0 +! +!WR_ASO3/WR_AHSO5=0.0 +! +!WR_ASO3/WR_AHMS=0.0 +! +!WR_ASO4/NO=0.0 +! +!WR_ASO4/NO2=0.0 +! +!WR_ASO4/O3=0.0 +! +!WR_ASO4/HONO=0.0 +! +!WR_ASO4/HNO3=0.0 +! +!WR_ASO4/HNO4=0.0 +! +!WR_ASO4/N2O5=0.0 +! +!WR_ASO4/NO3=0.0 +! +!WR_ASO4/NH3=0.0 +! +!WR_ASO4/HO2=0.0 +! +!WR_ASO4/CO=0.0 +! +!WR_ASO4/H2O2=0.0 +! +!WR_ASO4/SO2=0.0 +! +!WR_ASO4/H2SO4=0.0 +! +!WR_ASO4/OH=0.0 +! +!WR_ASO4/ETHE=0.0 +! +!WR_ASO4/OLEL=0.0 +! +!WR_ASO4/OLEH=0.0 +! +!WR_ASO4/ALKL=0.0 +! +!WR_ASO4/ALKM=0.0 +! +!WR_ASO4/ALKH=0.0 +! +!WR_ASO4/AROH=0.0 +! +!WR_ASO4/AROL=0.0 +! +!WR_ASO4/AROO=0.0 +! +!WR_ASO4/ARAL=0.0 +! +!WR_ASO4/ARAC=0.0 +! +!WR_ASO4/PAH=0.0 +! +!WR_ASO4/HCHO=0.0 +! +!WR_ASO4/ALD2=0.0 +! +!WR_ASO4/KETL=0.0 +! +!WR_ASO4/KETH=0.0 +! +!WR_ASO4/MEOH=0.0 +! +!WR_ASO4/ETOH=0.0 +! +!WR_ASO4/ALCH=0.0 +! +!WR_ASO4/ISOP=0.0 +! +!WR_ASO4/BIOL=0.0 +! +!WR_ASO4/BIOH=0.0 +! +!WR_ASO4/MTBE=0.0 +! +!WR_ASO4/MVK=0.0 +! +!WR_ASO4/MCR=0.0 +! +!WR_ASO4/MGLY=0.0 +! +!WR_ASO4/GLY=0.0 +! +!WR_ASO4/ORA1=0.0 +! +!WR_ASO4/ORA2=0.0 +! +!WR_ASO4/ACID=0.0 +! +!WR_ASO4/UR28=0.0 +! +!WR_ASO4/UR21=0.0 +! +!WR_ASO4/URG2=0.0 +! +!WR_ASO4/UR26=0.0 +! +!WR_ASO4/RPG2=0.0 +! +!WR_ASO4/RP18=0.0 +! +!WR_ASO4/RPG3=0.0 +! +!WR_ASO4/URG4=0.0 +! +!WR_ASO4/UR8=0.0 +! +!WR_ASO4/UR17=0.0 +! +!WR_ASO4/UR7=0.0 +! +!WR_ASO4/RPR3=0.0 +! +!WR_ASO4/URG6=0.0 +! +!WR_ASO4/UR22=0.0 +! +!WR_ASO4/URG7=0.0 +! +!WR_ASO4/RPR4=0.0 +! +!WR_ASO4/RPR7=0.0 +! +!WR_ASO4/RPG7=0.0 +! +!WR_ASO4/URG8=0.0 +! +!WR_ASO4/UR19=0.0 +! +!WR_ASO4/URG9=0.0 +! +!WR_ASO4/AP7=0.0 +! +!WR_ASO4/URG10=0.0 +! +!WR_ASO4/RPR1=0.0 +! +!WR_ASO4/RPR5=0.0 +! +!WR_ASO4/RPR8=0.0 +! +!WR_ASO4/RP10=0.0 +! +!WR_ASO4/RP11=0.0 +! +!WR_ASO4/RP16=0.0 +! +!WR_ASO4/RPRL=0.0 +! +!WR_ASO4/APAN=0.0 +! +!WR_ASO4/PAN1=0.0 +! +!WR_ASO4/PAN2=0.0 +! +!WR_ASO4/PAN3=0.0 +! +!WR_ASO4/PAN4=0.0 +! +!WR_ASO4/PAN6=0.0 +! +!WR_ASO4/PAN7=0.0 +! +!WR_ASO4/PAN8=0.0 +! +!WR_ASO4/PN10=0.0 +! +!WR_ASO4/RO2T=0.0 +! +!WR_ASO4/RO21=0.0 +! +!WR_ASO4/RO25=0.0 +! +!WR_ASO4/WC_O3=0.0 +! +!WR_ASO4/WC_H2O2=0.0 +! +!WR_ASO4/WC_NO=0.0 +! +!WR_ASO4/WC_NO2=0.0 +! +!WR_ASO4/WC_NO3=0.0 +! +!WR_ASO4/WC_N2O5=0.0 +! +!WR_ASO4/WC_HONO=0.0 +! +!WR_ASO4/WC_HNO3=0.0 +! +!WR_ASO4/WC_HNO4=0.0 +! +!WR_ASO4/WC_NH3=0.0 +! +!WR_ASO4/WC_OH=0.0 +! +!WR_ASO4/WC_HO2=0.0 +! +!WR_ASO4/WC_CO2=0.0 +! +!WR_ASO4/WC_SO2=0.0 +! +!WR_ASO4/WC_H2SO4=0.0 +! +!WR_ASO4/WC_RO21=0.0 +! +!WR_ASO4/WC_RO25=0.0 +! +!WR_ASO4/WC_MEOH=0.0 +! +!WR_ASO4/WC_ETOH=0.0 +! +!WR_ASO4/WC_ALCH=0.0 +! +!WR_ASO4/WC_HCHO=0.0 +! +!WR_ASO4/WC_ALD2=0.0 +! +!WR_ASO4/WC_GLY=0.0 +! +!WR_ASO4/WC_MGLY=0.0 +! +!WR_ASO4/WC_KETL=0.0 +! +!WR_ASO4/WC_ORA1=0.0 +! +!WR_ASO4/WC_ORA2=0.0 +! +!WR_ASO4/WC_ACID=0.0 +! +!WR_ASO4/WC_RP16=0.0 +! +!WR_ASO4/WC_UR21=0.0 +! +!WR_ASO4/WC_UR28=0.0 +! +!WR_ASO4/WC_ACID2=0.0 +! +!WR_ASO4/WC_ASO3=0.0 +! +!WR_ASO4/WC_ASO4=0.0 +! +!WR_ASO4/WC_ASO5=0.0 +! +!WR_ASO4/WC_AHSO5=0.0 +! +!WR_ASO4/WC_AHMS=0.0 +! +!WR_ASO4/WR_O3=0.0 +! +!WR_ASO4/WR_H2O2=0.0 +! +!WR_ASO4/WR_NO=0.0 +! +!WR_ASO4/WR_NO2=0.0 +! +!WR_ASO4/WR_NO3=+KR15*<WR_H2SO4> + PJAC(:,158,129)=+TPK%KR15(:)*PCONC(:,139) +! +!WR_ASO4/WR_N2O5=0.0 +! +!WR_ASO4/WR_HONO=0.0 +! +!WR_ASO4/WR_HNO3=0.0 +! +!WR_ASO4/WR_HNO4=0.0 +! +!WR_ASO4/WR_NH3=0.0 +! +!WR_ASO4/WR_OH=0.0 +! +!WR_ASO4/WR_HO2=0.0 +! +!WR_ASO4/WR_CO2=0.0 +! +!WR_ASO4/WR_SO2=0.0 +! +!WR_ASO4/WR_H2SO4=+KR15*<WR_NO3> + PJAC(:,158,139)=+TPK%KR15(:)*PCONC(:,129) +! +!WR_ASO4/WR_RO21=0.0 +! +!WR_ASO4/WR_RO25=0.0 +! +!WR_ASO4/WR_MEOH=0.0 +! +!WR_ASO4/WR_ETOH=0.0 +! +!WR_ASO4/WR_ALCH=0.0 +! +!WR_ASO4/WR_HCHO=0.0 +! +!WR_ASO4/WR_ALD2=0.0 +! +!WR_ASO4/WR_GLY=0.0 +! +!WR_ASO4/WR_MGLY=0.0 +! +!WR_ASO4/WR_KETL=0.0 +! +!WR_ASO4/WR_ORA1=0.0 +! +!WR_ASO4/WR_ORA2=0.0 +! +!WR_ASO4/WR_ACID=0.0 +! +!WR_ASO4/WR_RP16=0.0 +! +!WR_ASO4/WR_UR21=0.0 +! +!WR_ASO4/WR_UR28=0.0 +! +!WR_ASO4/WR_ACID2=0.0 +! +!WR_ASO4/WR_ASO3=0.0 +! +!WR_ASO4/WR_ASO4=-KR24 + PJAC(:,158,158)=-TPK%KR24(:) +! +!WR_ASO4/WR_ASO5=+KR22*<WR_ASO5>+KR22*<WR_ASO5>+KR22*<WR_ASO5>+KR22*<WR_ASO5> + PJAC(:,158,159)=+TPK%KR22(:)*PCONC(:,159)+TPK%KR22(:)*PCONC(:,159)+TPK%KR22(:)& +&*PCONC(:,159)+TPK%KR22(:)*PCONC(:,159) +! +!WR_ASO4/WR_AHSO5=0.0 +! +!WR_ASO4/WR_AHMS=0.0 +! +!WR_ASO5/NO=0.0 +! +!WR_ASO5/NO2=0.0 +! +!WR_ASO5/O3=0.0 +! +!WR_ASO5/HONO=0.0 +! +!WR_ASO5/HNO3=0.0 +! +!WR_ASO5/HNO4=0.0 +! +!WR_ASO5/N2O5=0.0 +! +!WR_ASO5/NO3=0.0 +! +!WR_ASO5/NH3=0.0 +! +!WR_ASO5/HO2=0.0 +! +!WR_ASO5/CO=0.0 +! +!WR_ASO5/H2O2=0.0 +! +!WR_ASO5/SO2=0.0 +! +!WR_ASO5/H2SO4=0.0 +! +!WR_ASO5/OH=0.0 +! +!WR_ASO5/ETHE=0.0 +! +!WR_ASO5/OLEL=0.0 +! +!WR_ASO5/OLEH=0.0 +! +!WR_ASO5/ALKL=0.0 +! +!WR_ASO5/ALKM=0.0 +! +!WR_ASO5/ALKH=0.0 +! +!WR_ASO5/AROH=0.0 +! +!WR_ASO5/AROL=0.0 +! +!WR_ASO5/AROO=0.0 +! +!WR_ASO5/ARAL=0.0 +! +!WR_ASO5/ARAC=0.0 +! +!WR_ASO5/PAH=0.0 +! +!WR_ASO5/HCHO=0.0 +! +!WR_ASO5/ALD2=0.0 +! +!WR_ASO5/KETL=0.0 +! +!WR_ASO5/KETH=0.0 +! +!WR_ASO5/MEOH=0.0 +! +!WR_ASO5/ETOH=0.0 +! +!WR_ASO5/ALCH=0.0 +! +!WR_ASO5/ISOP=0.0 +! +!WR_ASO5/BIOL=0.0 +! +!WR_ASO5/BIOH=0.0 +! +!WR_ASO5/MTBE=0.0 +! +!WR_ASO5/MVK=0.0 +! +!WR_ASO5/MCR=0.0 +! +!WR_ASO5/MGLY=0.0 +! +!WR_ASO5/GLY=0.0 +! +!WR_ASO5/ORA1=0.0 +! +!WR_ASO5/ORA2=0.0 +! +!WR_ASO5/ACID=0.0 +! +!WR_ASO5/UR28=0.0 +! +!WR_ASO5/UR21=0.0 +! +!WR_ASO5/URG2=0.0 +! +!WR_ASO5/UR26=0.0 +! +!WR_ASO5/RPG2=0.0 +! +!WR_ASO5/RP18=0.0 +! +!WR_ASO5/RPG3=0.0 +! +!WR_ASO5/URG4=0.0 +! +!WR_ASO5/UR8=0.0 +! +!WR_ASO5/UR17=0.0 +! +!WR_ASO5/UR7=0.0 +! +!WR_ASO5/RPR3=0.0 +! +!WR_ASO5/URG6=0.0 +! +!WR_ASO5/UR22=0.0 +! +!WR_ASO5/URG7=0.0 +! +!WR_ASO5/RPR4=0.0 +! +!WR_ASO5/RPR7=0.0 +! +!WR_ASO5/RPG7=0.0 +! +!WR_ASO5/URG8=0.0 +! +!WR_ASO5/UR19=0.0 +! +!WR_ASO5/URG9=0.0 +! +!WR_ASO5/AP7=0.0 +! +!WR_ASO5/URG10=0.0 +! +!WR_ASO5/RPR1=0.0 +! +!WR_ASO5/RPR5=0.0 +! +!WR_ASO5/RPR8=0.0 +! +!WR_ASO5/RP10=0.0 +! +!WR_ASO5/RP11=0.0 +! +!WR_ASO5/RP16=0.0 +! +!WR_ASO5/RPRL=0.0 +! +!WR_ASO5/APAN=0.0 +! +!WR_ASO5/PAN1=0.0 +! +!WR_ASO5/PAN2=0.0 +! +!WR_ASO5/PAN3=0.0 +! +!WR_ASO5/PAN4=0.0 +! +!WR_ASO5/PAN6=0.0 +! +!WR_ASO5/PAN7=0.0 +! +!WR_ASO5/PAN8=0.0 +! +!WR_ASO5/PN10=0.0 +! +!WR_ASO5/RO2T=0.0 +! +!WR_ASO5/RO21=0.0 +! +!WR_ASO5/RO25=0.0 +! +!WR_ASO5/WC_O3=0.0 +! +!WR_ASO5/WC_H2O2=0.0 +! +!WR_ASO5/WC_NO=0.0 +! +!WR_ASO5/WC_NO2=0.0 +! +!WR_ASO5/WC_NO3=0.0 +! +!WR_ASO5/WC_N2O5=0.0 +! +!WR_ASO5/WC_HONO=0.0 +! +!WR_ASO5/WC_HNO3=0.0 +! +!WR_ASO5/WC_HNO4=0.0 +! +!WR_ASO5/WC_NH3=0.0 +! +!WR_ASO5/WC_OH=0.0 +! +!WR_ASO5/WC_HO2=0.0 +! +!WR_ASO5/WC_CO2=0.0 +! +!WR_ASO5/WC_SO2=0.0 +! +!WR_ASO5/WC_H2SO4=0.0 +! +!WR_ASO5/WC_RO21=0.0 +! +!WR_ASO5/WC_RO25=0.0 +! +!WR_ASO5/WC_MEOH=0.0 +! +!WR_ASO5/WC_ETOH=0.0 +! +!WR_ASO5/WC_ALCH=0.0 +! +!WR_ASO5/WC_HCHO=0.0 +! +!WR_ASO5/WC_ALD2=0.0 +! +!WR_ASO5/WC_GLY=0.0 +! +!WR_ASO5/WC_MGLY=0.0 +! +!WR_ASO5/WC_KETL=0.0 +! +!WR_ASO5/WC_ORA1=0.0 +! +!WR_ASO5/WC_ORA2=0.0 +! +!WR_ASO5/WC_ACID=0.0 +! +!WR_ASO5/WC_RP16=0.0 +! +!WR_ASO5/WC_UR21=0.0 +! +!WR_ASO5/WC_UR28=0.0 +! +!WR_ASO5/WC_ACID2=0.0 +! +!WR_ASO5/WC_ASO3=0.0 +! +!WR_ASO5/WC_ASO4=0.0 +! +!WR_ASO5/WC_ASO5=0.0 +! +!WR_ASO5/WC_AHSO5=0.0 +! +!WR_ASO5/WC_AHMS=0.0 +! +!WR_ASO5/WR_O3=0.0 +! +!WR_ASO5/WR_H2O2=0.0 +! +!WR_ASO5/WR_NO=0.0 +! +!WR_ASO5/WR_NO2=0.0 +! +!WR_ASO5/WR_NO3=0.0 +! +!WR_ASO5/WR_N2O5=0.0 +! +!WR_ASO5/WR_HONO=0.0 +! +!WR_ASO5/WR_HNO3=0.0 +! +!WR_ASO5/WR_HNO4=0.0 +! +!WR_ASO5/WR_NH3=0.0 +! +!WR_ASO5/WR_OH=0.0 +! +!WR_ASO5/WR_HO2=-KR21*<WR_ASO5> + PJAC(:,159,136)=-TPK%KR21(:)*PCONC(:,159) +! +!WR_ASO5/WR_CO2=0.0 +! +!WR_ASO5/WR_SO2=0.0 +! +!WR_ASO5/WR_H2SO4=0.0 +! +!WR_ASO5/WR_RO21=0.0 +! +!WR_ASO5/WR_RO25=0.0 +! +!WR_ASO5/WR_MEOH=0.0 +! +!WR_ASO5/WR_ETOH=0.0 +! +!WR_ASO5/WR_ALCH=0.0 +! +!WR_ASO5/WR_HCHO=0.0 +! +!WR_ASO5/WR_ALD2=0.0 +! +!WR_ASO5/WR_GLY=0.0 +! +!WR_ASO5/WR_MGLY=0.0 +! +!WR_ASO5/WR_KETL=0.0 +! +!WR_ASO5/WR_ORA1=0.0 +! +!WR_ASO5/WR_ORA2=0.0 +! +!WR_ASO5/WR_ACID=0.0 +! +!WR_ASO5/WR_RP16=0.0 +! +!WR_ASO5/WR_UR21=0.0 +! +!WR_ASO5/WR_UR28=0.0 +! +!WR_ASO5/WR_ACID2=0.0 +! +!WR_ASO5/WR_ASO3=+KR20*<W_O2> + PJAC(:,159,157)=+TPK%KR20(:)*TPK%W_O2(:) +! +!WR_ASO5/WR_ASO4=0.0 +! +!WR_ASO5/WR_ASO5=-KR21*<WR_HO2>-KR22*<WR_ASO5>-KR22*<WR_ASO5>-KR22*<WR_ASO5>-KR +!22*<WR_ASO5> + PJAC(:,159,159)=-TPK%KR21(:)*PCONC(:,136)-TPK%KR22(:)*PCONC(:,159)-TPK%KR22(:)& +&*PCONC(:,159)-TPK%KR22(:)*PCONC(:,159)-TPK%KR22(:)*PCONC(:,159) +! +!WR_ASO5/WR_AHSO5=0.0 +! +!WR_ASO5/WR_AHMS=0.0 +! +!WR_AHSO5/NO=0.0 +! +!WR_AHSO5/NO2=0.0 +! +!WR_AHSO5/O3=0.0 +! +!WR_AHSO5/HONO=0.0 +! +!WR_AHSO5/HNO3=0.0 +! +!WR_AHSO5/HNO4=0.0 +! +!WR_AHSO5/N2O5=0.0 +! +!WR_AHSO5/NO3=0.0 +! +!WR_AHSO5/NH3=0.0 +! +!WR_AHSO5/HO2=0.0 +! +!WR_AHSO5/CO=0.0 +! +!WR_AHSO5/H2O2=0.0 +! +!WR_AHSO5/SO2=0.0 +! +!WR_AHSO5/H2SO4=0.0 +! +!WR_AHSO5/OH=0.0 +! +!WR_AHSO5/ETHE=0.0 +! +!WR_AHSO5/OLEL=0.0 +! +!WR_AHSO5/OLEH=0.0 +! +!WR_AHSO5/ALKL=0.0 +! +!WR_AHSO5/ALKM=0.0 +! +!WR_AHSO5/ALKH=0.0 +! +!WR_AHSO5/AROH=0.0 +! +!WR_AHSO5/AROL=0.0 +! +!WR_AHSO5/AROO=0.0 +! +!WR_AHSO5/ARAL=0.0 +! +!WR_AHSO5/ARAC=0.0 +! +!WR_AHSO5/PAH=0.0 +! +!WR_AHSO5/HCHO=0.0 +! +!WR_AHSO5/ALD2=0.0 +! +!WR_AHSO5/KETL=0.0 +! +!WR_AHSO5/KETH=0.0 +! +!WR_AHSO5/MEOH=0.0 +! +!WR_AHSO5/ETOH=0.0 +! +!WR_AHSO5/ALCH=0.0 +! +!WR_AHSO5/ISOP=0.0 +! +!WR_AHSO5/BIOL=0.0 +! +!WR_AHSO5/BIOH=0.0 +! +!WR_AHSO5/MTBE=0.0 +! +!WR_AHSO5/MVK=0.0 +! +!WR_AHSO5/MCR=0.0 +! +!WR_AHSO5/MGLY=0.0 +! +!WR_AHSO5/GLY=0.0 +! +!WR_AHSO5/ORA1=0.0 +! +!WR_AHSO5/ORA2=0.0 +! +!WR_AHSO5/ACID=0.0 +! +!WR_AHSO5/UR28=0.0 +! +!WR_AHSO5/UR21=0.0 +! +!WR_AHSO5/URG2=0.0 +! +!WR_AHSO5/UR26=0.0 +! +!WR_AHSO5/RPG2=0.0 +! +!WR_AHSO5/RP18=0.0 +! +!WR_AHSO5/RPG3=0.0 +! +!WR_AHSO5/URG4=0.0 +! +!WR_AHSO5/UR8=0.0 +! +!WR_AHSO5/UR17=0.0 +! +!WR_AHSO5/UR7=0.0 +! +!WR_AHSO5/RPR3=0.0 +! +!WR_AHSO5/URG6=0.0 +! +!WR_AHSO5/UR22=0.0 +! +!WR_AHSO5/URG7=0.0 +! +!WR_AHSO5/RPR4=0.0 +! +!WR_AHSO5/RPR7=0.0 +! +!WR_AHSO5/RPG7=0.0 +! +!WR_AHSO5/URG8=0.0 +! +!WR_AHSO5/UR19=0.0 +! +!WR_AHSO5/URG9=0.0 +! +!WR_AHSO5/AP7=0.0 +! +!WR_AHSO5/URG10=0.0 +! +!WR_AHSO5/RPR1=0.0 +! +!WR_AHSO5/RPR5=0.0 +! +!WR_AHSO5/RPR8=0.0 +! +!WR_AHSO5/RP10=0.0 +! +!WR_AHSO5/RP11=0.0 +! +!WR_AHSO5/RP16=0.0 +! +!WR_AHSO5/RPRL=0.0 +! +!WR_AHSO5/APAN=0.0 +! +!WR_AHSO5/PAN1=0.0 +! +!WR_AHSO5/PAN2=0.0 +! +!WR_AHSO5/PAN3=0.0 +! +!WR_AHSO5/PAN4=0.0 +! +!WR_AHSO5/PAN6=0.0 +! +!WR_AHSO5/PAN7=0.0 +! +!WR_AHSO5/PAN8=0.0 +! +!WR_AHSO5/PN10=0.0 +! +!WR_AHSO5/RO2T=0.0 +! +!WR_AHSO5/RO21=0.0 +! +!WR_AHSO5/RO25=0.0 +! +!WR_AHSO5/WC_O3=0.0 +! +!WR_AHSO5/WC_H2O2=0.0 +! +!WR_AHSO5/WC_NO=0.0 +! +!WR_AHSO5/WC_NO2=0.0 +! +!WR_AHSO5/WC_NO3=0.0 +! +!WR_AHSO5/WC_N2O5=0.0 +! +!WR_AHSO5/WC_HONO=0.0 +! +!WR_AHSO5/WC_HNO3=0.0 +! +!WR_AHSO5/WC_HNO4=0.0 +! +!WR_AHSO5/WC_NH3=0.0 +! +!WR_AHSO5/WC_OH=0.0 +! +!WR_AHSO5/WC_HO2=0.0 +! +!WR_AHSO5/WC_CO2=0.0 +! +!WR_AHSO5/WC_SO2=0.0 +! +!WR_AHSO5/WC_H2SO4=0.0 +! +!WR_AHSO5/WC_RO21=0.0 +! +!WR_AHSO5/WC_RO25=0.0 +! +!WR_AHSO5/WC_MEOH=0.0 +! +!WR_AHSO5/WC_ETOH=0.0 +! +!WR_AHSO5/WC_ALCH=0.0 +! +!WR_AHSO5/WC_HCHO=0.0 +! +!WR_AHSO5/WC_ALD2=0.0 +! +!WR_AHSO5/WC_GLY=0.0 +! +!WR_AHSO5/WC_MGLY=0.0 +! +!WR_AHSO5/WC_KETL=0.0 +! +!WR_AHSO5/WC_ORA1=0.0 +! +!WR_AHSO5/WC_ORA2=0.0 +! +!WR_AHSO5/WC_ACID=0.0 +! +!WR_AHSO5/WC_RP16=0.0 +! +!WR_AHSO5/WC_UR21=0.0 +! +!WR_AHSO5/WC_UR28=0.0 +! +!WR_AHSO5/WC_ACID2=0.0 +! +!WR_AHSO5/WC_ASO3=0.0 +! +!WR_AHSO5/WC_ASO4=0.0 +! +!WR_AHSO5/WC_ASO5=0.0 +! +!WR_AHSO5/WC_AHSO5=0.0 +! +!WR_AHSO5/WC_AHMS=0.0 +! +!WR_AHSO5/WR_O3=0.0 +! +!WR_AHSO5/WR_H2O2=0.0 +! +!WR_AHSO5/WR_NO=0.0 +! +!WR_AHSO5/WR_NO2=0.0 +! +!WR_AHSO5/WR_NO3=0.0 +! +!WR_AHSO5/WR_N2O5=0.0 +! +!WR_AHSO5/WR_HONO=0.0 +! +!WR_AHSO5/WR_HNO3=0.0 +! +!WR_AHSO5/WR_HNO4=0.0 +! +!WR_AHSO5/WR_NH3=0.0 +! +!WR_AHSO5/WR_OH=0.0 +! +!WR_AHSO5/WR_HO2=+KR21*<WR_ASO5> + PJAC(:,160,136)=+TPK%KR21(:)*PCONC(:,159) +! +!WR_AHSO5/WR_CO2=0.0 +! +!WR_AHSO5/WR_SO2=-KR23*<WR_AHSO5> + PJAC(:,160,138)=-TPK%KR23(:)*PCONC(:,160) +! +!WR_AHSO5/WR_H2SO4=0.0 +! +!WR_AHSO5/WR_RO21=0.0 +! +!WR_AHSO5/WR_RO25=0.0 +! +!WR_AHSO5/WR_MEOH=0.0 +! +!WR_AHSO5/WR_ETOH=0.0 +! +!WR_AHSO5/WR_ALCH=0.0 +! +!WR_AHSO5/WR_HCHO=0.0 +! +!WR_AHSO5/WR_ALD2=0.0 +! +!WR_AHSO5/WR_GLY=0.0 +! +!WR_AHSO5/WR_MGLY=0.0 +! +!WR_AHSO5/WR_KETL=0.0 +! +!WR_AHSO5/WR_ORA1=0.0 +! +!WR_AHSO5/WR_ORA2=0.0 +! +!WR_AHSO5/WR_ACID=0.0 +! +!WR_AHSO5/WR_RP16=0.0 +! +!WR_AHSO5/WR_UR21=0.0 +! +!WR_AHSO5/WR_UR28=0.0 +! +!WR_AHSO5/WR_ACID2=0.0 +! +!WR_AHSO5/WR_ASO3=0.0 +! +!WR_AHSO5/WR_ASO4=0.0 +! +!WR_AHSO5/WR_ASO5=+KR21*<WR_HO2> + PJAC(:,160,159)=+TPK%KR21(:)*PCONC(:,136) +! +!WR_AHSO5/WR_AHSO5=-KR23*<WR_SO2> + PJAC(:,160,160)=-TPK%KR23(:)*PCONC(:,138) +! +!WR_AHSO5/WR_AHMS=0.0 +! +RETURN +END SUBROUTINE SUBJ31 +! +SUBROUTINE SUBJ32 +! +!Indices 161 a 161 +! +! +!WR_AHMS/NO=0.0 +! +!WR_AHMS/NO2=0.0 +! +!WR_AHMS/O3=0.0 +! +!WR_AHMS/HONO=0.0 +! +!WR_AHMS/HNO3=0.0 +! +!WR_AHMS/HNO4=0.0 +! +!WR_AHMS/N2O5=0.0 +! +!WR_AHMS/NO3=0.0 +! +!WR_AHMS/NH3=0.0 +! +!WR_AHMS/HO2=0.0 +! +!WR_AHMS/CO=0.0 +! +!WR_AHMS/H2O2=0.0 +! +!WR_AHMS/SO2=0.0 +! +!WR_AHMS/H2SO4=0.0 +! +!WR_AHMS/OH=0.0 +! +!WR_AHMS/ETHE=0.0 +! +!WR_AHMS/OLEL=0.0 +! +!WR_AHMS/OLEH=0.0 +! +!WR_AHMS/ALKL=0.0 +! +!WR_AHMS/ALKM=0.0 +! +!WR_AHMS/ALKH=0.0 +! +!WR_AHMS/AROH=0.0 +! +!WR_AHMS/AROL=0.0 +! +!WR_AHMS/AROO=0.0 +! +!WR_AHMS/ARAL=0.0 +! +!WR_AHMS/ARAC=0.0 +! +!WR_AHMS/PAH=0.0 +! +!WR_AHMS/HCHO=0.0 +! +!WR_AHMS/ALD2=0.0 +! +!WR_AHMS/KETL=0.0 +! +!WR_AHMS/KETH=0.0 +! +!WR_AHMS/MEOH=0.0 +! +!WR_AHMS/ETOH=0.0 +! +!WR_AHMS/ALCH=0.0 +! +!WR_AHMS/ISOP=0.0 +! +!WR_AHMS/BIOL=0.0 +! +!WR_AHMS/BIOH=0.0 +! +!WR_AHMS/MTBE=0.0 +! +!WR_AHMS/MVK=0.0 +! +!WR_AHMS/MCR=0.0 +! +!WR_AHMS/MGLY=0.0 +! +!WR_AHMS/GLY=0.0 +! +!WR_AHMS/ORA1=0.0 +! +!WR_AHMS/ORA2=0.0 +! +!WR_AHMS/ACID=0.0 +! +!WR_AHMS/UR28=0.0 +! +!WR_AHMS/UR21=0.0 +! +!WR_AHMS/URG2=0.0 +! +!WR_AHMS/UR26=0.0 +! +!WR_AHMS/RPG2=0.0 +! +!WR_AHMS/RP18=0.0 +! +!WR_AHMS/RPG3=0.0 +! +!WR_AHMS/URG4=0.0 +! +!WR_AHMS/UR8=0.0 +! +!WR_AHMS/UR17=0.0 +! +!WR_AHMS/UR7=0.0 +! +!WR_AHMS/RPR3=0.0 +! +!WR_AHMS/URG6=0.0 +! +!WR_AHMS/UR22=0.0 +! +!WR_AHMS/URG7=0.0 +! +!WR_AHMS/RPR4=0.0 +! +!WR_AHMS/RPR7=0.0 +! +!WR_AHMS/RPG7=0.0 +! +!WR_AHMS/URG8=0.0 +! +!WR_AHMS/UR19=0.0 +! +!WR_AHMS/URG9=0.0 +! +!WR_AHMS/AP7=0.0 +! +!WR_AHMS/URG10=0.0 +! +!WR_AHMS/RPR1=0.0 +! +!WR_AHMS/RPR5=0.0 +! +!WR_AHMS/RPR8=0.0 +! +!WR_AHMS/RP10=0.0 +! +!WR_AHMS/RP11=0.0 +! +!WR_AHMS/RP16=0.0 +! +!WR_AHMS/RPRL=0.0 +! +!WR_AHMS/APAN=0.0 +! +!WR_AHMS/PAN1=0.0 +! +!WR_AHMS/PAN2=0.0 +! +!WR_AHMS/PAN3=0.0 +! +!WR_AHMS/PAN4=0.0 +! +!WR_AHMS/PAN6=0.0 +! +!WR_AHMS/PAN7=0.0 +! +!WR_AHMS/PAN8=0.0 +! +!WR_AHMS/PN10=0.0 +! +!WR_AHMS/RO2T=0.0 +! +!WR_AHMS/RO21=0.0 +! +!WR_AHMS/RO25=0.0 +! +!WR_AHMS/WC_O3=0.0 +! +!WR_AHMS/WC_H2O2=0.0 +! +!WR_AHMS/WC_NO=0.0 +! +!WR_AHMS/WC_NO2=0.0 +! +!WR_AHMS/WC_NO3=0.0 +! +!WR_AHMS/WC_N2O5=0.0 +! +!WR_AHMS/WC_HONO=0.0 +! +!WR_AHMS/WC_HNO3=0.0 +! +!WR_AHMS/WC_HNO4=0.0 +! +!WR_AHMS/WC_NH3=0.0 +! +!WR_AHMS/WC_OH=0.0 +! +!WR_AHMS/WC_HO2=0.0 +! +!WR_AHMS/WC_CO2=0.0 +! +!WR_AHMS/WC_SO2=0.0 +! +!WR_AHMS/WC_H2SO4=0.0 +! +!WR_AHMS/WC_RO21=0.0 +! +!WR_AHMS/WC_RO25=0.0 +! +!WR_AHMS/WC_MEOH=0.0 +! +!WR_AHMS/WC_ETOH=0.0 +! +!WR_AHMS/WC_ALCH=0.0 +! +!WR_AHMS/WC_HCHO=0.0 +! +!WR_AHMS/WC_ALD2=0.0 +! +!WR_AHMS/WC_GLY=0.0 +! +!WR_AHMS/WC_MGLY=0.0 +! +!WR_AHMS/WC_KETL=0.0 +! +!WR_AHMS/WC_ORA1=0.0 +! +!WR_AHMS/WC_ORA2=0.0 +! +!WR_AHMS/WC_ACID=0.0 +! +!WR_AHMS/WC_RP16=0.0 +! +!WR_AHMS/WC_UR21=0.0 +! +!WR_AHMS/WC_UR28=0.0 +! +!WR_AHMS/WC_ACID2=0.0 +! +!WR_AHMS/WC_ASO3=0.0 +! +!WR_AHMS/WC_ASO4=0.0 +! +!WR_AHMS/WC_ASO5=0.0 +! +!WR_AHMS/WC_AHSO5=0.0 +! +!WR_AHMS/WC_AHMS=0.0 +! +!WR_AHMS/WR_O3=0.0 +! +!WR_AHMS/WR_H2O2=0.0 +! +!WR_AHMS/WR_NO=0.0 +! +!WR_AHMS/WR_NO2=0.0 +! +!WR_AHMS/WR_NO3=0.0 +! +!WR_AHMS/WR_N2O5=0.0 +! +!WR_AHMS/WR_HONO=0.0 +! +!WR_AHMS/WR_HNO3=0.0 +! +!WR_AHMS/WR_HNO4=0.0 +! +!WR_AHMS/WR_NH3=0.0 +! +!WR_AHMS/WR_OH=-KR19*<WR_AHMS> + PJAC(:,161,135)=-TPK%KR19(:)*PCONC(:,161) +! +!WR_AHMS/WR_HO2=0.0 +! +!WR_AHMS/WR_CO2=0.0 +! +!WR_AHMS/WR_SO2=+KR17*<WR_HCHO> + PJAC(:,161,138)=+TPK%KR17(:)*PCONC(:,145) +! +!WR_AHMS/WR_H2SO4=0.0 +! +!WR_AHMS/WR_RO21=0.0 +! +!WR_AHMS/WR_RO25=0.0 +! +!WR_AHMS/WR_MEOH=0.0 +! +!WR_AHMS/WR_ETOH=0.0 +! +!WR_AHMS/WR_ALCH=0.0 +! +!WR_AHMS/WR_HCHO=+KR17*<WR_SO2> + PJAC(:,161,145)=+TPK%KR17(:)*PCONC(:,138) +! +!WR_AHMS/WR_ALD2=0.0 +! +!WR_AHMS/WR_GLY=0.0 +! +!WR_AHMS/WR_MGLY=0.0 +! +!WR_AHMS/WR_KETL=0.0 +! +!WR_AHMS/WR_ORA1=0.0 +! +!WR_AHMS/WR_ORA2=0.0 +! +!WR_AHMS/WR_ACID=0.0 +! +!WR_AHMS/WR_RP16=0.0 +! +!WR_AHMS/WR_UR21=0.0 +! +!WR_AHMS/WR_UR28=0.0 +! +!WR_AHMS/WR_ACID2=0.0 +! +!WR_AHMS/WR_ASO3=0.0 +! +!WR_AHMS/WR_ASO4=0.0 +! +!WR_AHMS/WR_ASO5=0.0 +! +!WR_AHMS/WR_AHSO5=0.0 +! +!WR_AHMS/WR_AHMS=-KR18-KR19*<WR_OH> + PJAC(:,161,161)=-TPK%KR18(:)-TPK%KR19(:)*PCONC(:,135) +! +RETURN +END SUBROUTINE SUBJ32 +! +END SUBROUTINE CH_JAC_AQ +! +! +!======================================================================== +! +!! ######################## + MODULE MODI_CH_SET_RATES +!! ######################## +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +INTERFACE +SUBROUTINE CH_SET_RATES(PTIME,PCONC,TPM,KMI,KOUT,KVERB,KVECNPT,KEQ,KRRL,PPH) +USE MODD_CH_M9_n, ONLY: METEOTRANSTYPE +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +TYPE(METEOTRANSTYPE), DIMENSION(KVECNPT), INTENT(IN):: TPM +INTEGER, INTENT(IN) :: KMI +INTEGER, INTENT(IN) :: KOUT,KVERB +INTEGER, INTENT(INOUT) :: KRRL +REAL, INTENT(INOUT), DIMENSION(:,:), OPTIONAL :: PPH +END SUBROUTINE CH_SET_RATES +END INTERFACE +END MODULE MODI_CH_SET_RATES +! +!======================================================================== +! +!! ############################################################################ + SUBROUTINE CH_SET_RATES(PTIME,PCONC,TPM,KMI,KOUT,KVERB,KVECNPT,KEQ,KRRL,PPH) +!! ############################################################################ +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +!!*** *MODD_CH_SET_RATES* +!! +!! PURPOSE +!! ------- +! set or calculate reaction rates +!! +!!** METHOD +!! ------ +!! simple +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Karsten Suhre (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) +!! Modified 01/06/07: Add pH calculation (M. Leriche & JP Pinty) +!! Modified 01/06/08: Add reaction constant in cloud/rain (M. Leriche) +!! Modified 14/11/08: Put LWC and LWR to zero where <XRTMIN_AQ +!! +!!---------------------------------------------------------------------- +!! +!! EXTERNAL +!! -------- +!! +USE MODI_CH_ALLOCATE_TACCS +USE MODI_CH_DEALLOCATE_TACCS +USE MODI_CH_SET_PH +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +!! +USE MODD_CH_M9_SCHEME +USE MODD_CH_M9_n, ONLY : METEOTRANSTYPE +USE MODD_CH_MNHC_n, ONLY : XRTMIN_AQ, XCH_PHINIT +! USER DEFINED FUNCTIONS +USE MODI_KT +USE MODI_TROE +USE MODI_TROE_KA +USE MODI_TROE_KB +USE MODI_HENRY +USE MODI_TROE_EQUIL +USE MODI_HEFFA +USE MODI_HEFFB +!! +!! EXPLICIT ARGUMENTS +!! ------------------ +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +TYPE(METEOTRANSTYPE), DIMENSION(KVECNPT), INTENT(IN):: TPM +INTEGER, INTENT(IN) :: KMI +INTEGER, INTENT(IN) :: KOUT,KVERB +INTEGER, INTENT(INOUT) :: KRRL +REAL, INTENT(INOUT), DIMENSION(:,:), OPTIONAL :: PPH +!! +!!---------------------------------------------------------------------- +! /BEGIN_SET_RATES/ +! +! transfer of meteo-variables into variables used by the +! chemical core system (and some unit conversion): +! +! molecular weight of air: m_mol^air = 28.8 g/mol +! molecular weight of H2O: m_mol^H2O = 18.0 g/mol +! ==> m_mol^air / m_mol^H2O = 1.6 +! density conversion factor: 1 g/cm3 = 1E+3 kg/m3 +! n_molec (moelc./cm3): M = 1E-3*RHO(kg/m3) * Navo / m_mol +! n_water: H2O = M * 1.6 * Rv +! pressure = RHO * T * R * 1E-5 (in atm) +! assuming 20.95 vol% O2 +! +TYPE(CCSTYPE), POINTER :: TPK +! +REAL :: A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z +REAL :: NC, YI300, Y300, MINF +REAL, DIMENSION(KVECNPT) :: HF3, HF5, HF7, HF17, HF19, HF21, HF23,& + HF25, HF27, HF29, HF31, HF33, HF35, HF41,& + HF43 +!---------------------------------------------------------------------- +! +IF (.NOT. ASSOCIATED(TACCS(KMI)%NVERB)) THEN + CALL CH_ALLOCATE_TACCS(KMI,KVECNPT) +END IF +! +IF (SIZE(TACCS(KMI)%NVERB) .NE. KVECNPT) THEN + CALL CH_DEALLOCATE_TACCS(KMI) + CALL CH_ALLOCATE_TACCS(KMI,KVECNPT) +END IF +! +TPK=>TACCS(KMI) +! +TPK%MODELLEVEL = TPM%XMETEOVAR(1) +TPK%M = 1E-3*TPM%XMETEOVAR(2) * 6.0221367E+23 / 28.9644 +TPK%T = TPM%XMETEOVAR(3) +TPK%H2O = TPK%M*1.6077*TPM%XMETEOVAR(4) +TPK%CLOUDWATER = TPM%XMETEOVAR(5) +TPK%LAT = TPM%XMETEOVAR(6) +TPK%LON = TPM%XMETEOVAR(7) +TPK%YEAR = INT(TPM%XMETEOVAR(8)) +TPK%MONTH = INT(TPM%XMETEOVAR(9)) +TPK%DAY = INT(TPM%XMETEOVAR(10)) +TPK%RAINWATER = TPM%XMETEOVAR(11) +TPK%RHODREF = TPM%XMETEOVAR(2) +! derived variables +TPK%PRESSURE = TPM%XMETEOVAR(2) * TPK%T * 288.290947 * 1E-5 +TPK%O2 = 0.2095 * TPK%M +TPK%N2 = TPK%M - TPK%O2 +TPK%H2 = 1.23e13 +TPK%CH4 = 0.4335E+14 +! fixed concentration of CO2 +TPK%CO2 = 330. * 1.E-6 * TPK%M +! for chemistry in aqueous phase, kinetic mass transfer +! cloud lwc (vol/vol) = cloud m.r.(kg/kg) * rho_air(kg/m3) / rho_eau(kg/m3) +TPK%LWC = TPM%XMETEOVAR(5)*TPM%XMETEOVAR(2) / 1.E3 +WHERE ( TPK%LWC < XRTMIN_AQ ) !to get reaction rate for mass transfer = 0 + TPK%LWC = 0. +ENDWHERE +TPK%RADC = TPM%XMETEOVAR(12) +! conversion factor for reaction constant in cloud +! give minimum value to avoir division by zero +TPK%MOL2MOLECCLOUD = 6.023e+23*1.e-3*XRTMIN_AQ +WHERE (TPK%LWC >= XRTMIN_AQ) + TPK%MOL2MOLECCLOUD = 6.023e+23*1.e-3*TPK%LWC +END WHERE +! +TPK%LWR = TPM%XMETEOVAR(11)*TPM%XMETEOVAR(2) / 1.E3 +WHERE ( TPK%LWR < XRTMIN_AQ ) !to get reaction rate for mass transfer = 0 + TPK%LWR = 0. +ENDWHERE +TPK%RADR = TPM%XMETEOVAR(13) +! conversion factor for reaction constant in rain +! give minimum value to avoir division by zero +TPK%MOL2MOLECRAIN = 6.023e+23*1.e-3*XRTMIN_AQ +WHERE (TPK%LWR >= XRTMIN_AQ) + TPK%MOL2MOLECRAIN = 6.023e+23*1.e-3*TPK%LWR +END WHERE +!pH calculation if required +IF (PRESENT(PPH)) THEN + TPK%PHC(:)=PPH(:,1) + CALL CH_SET_PH(KOUT,KMI,KVECNPT,PCONC,TPK%PHC(:),KVERB,2) ! pH cloud water +! TPK%PHC(:) = 0.01*TPK%PHC(:) + 0.99*PPH(:,1) ! apply a strong filter + PPH(:,1) = TPK%PHC(:) + IF (KRRL>=2) THEN + TPK%PHR(:)=PPH(:,2) + CALL CH_SET_PH(KOUT,KMI,KVECNPT,PCONC,TPK%PHR(:),KVERB,3) ! pH rain water +! TPK%PHR(:) = 0.01*TPK%PHR(:) + 0.99*PPH(:,2) ! apply a strong filter + PPH(:,2) = TPK%PHR(:) + ENDIF +ELSE + IF (.NOT.TPK%LCH_PH) TPK%PHC = XCH_PHINIT + IF (KRRL>=2) THEN + IF (.NOT.TPK%LCH_PH) TPK%PHR = XCH_PHINIT + ENDIF +ENDIF +! +TPK%RCH = 0.08206 ! R in atm M-1 K-1 +TPK%W_O2 = 1.3E-3*exp(-1500.*(1./TPK%T-1./298.15))*TPK%RCH*TPK%T*TPK%O2*1.e3/6.023e+23 +! +!...VARIABLE STOICHIOMETRIC COEFFICIENTS... +! EQUIVALENT TO CF1 through CF36, CF39 THROUGH CF47 +! P. Tulet from R. Griffin +! (B01) ALD2 IN ETOH + OH-> +! (B02) RO22 IN ETOH + OH-> +! (B03) ALKL (ALK NIT) IN RO25 + NO-> +! (B04) ALD2 (NO->NO2) IN RO25 + NO-> +! (B05) OLEL (OLE NIT) IN RO29 + NO-> +! (B06) HCHO (NO->NO2) IN RO29 + NO-> +! (B07) OLEL (OLE NIT) IN RO214 + NO-> +! (B08) RO27 (NO->NO2) IN RO214 + NO-> +! (B09) ALD2 IN RO215 + NO-> +! (B10) HCHO IN RO215 + NO-> +! (B11) MEK IN RO215 + NO-> +! (B12) ALKL IN RO215 + NO-> +! (B13) ALD2 IN RO215 + RO2T-> +! (B14) HCHO IN RO215 + RO2T-> +! (B15) MEK IN RO215 + RO2T-> +! (B16) ALKL IN RO215 + RO2T-> +! (B17) AP3 (ALK NIT) IN RO220 + NO-> +! (B18) RO218(NO->NO2) IN RO220 + NO-> +! (B19) AP2 (ALK NIT) IN RO218 + NO-> +! (B20) UR16 (NO->NO2) IN RO218 + NO-> +! (B21) AP1 (ALK NIT) IN RO217 + NO-> +! (B22) RPR2 (NO->NO2) IN RO217 + NO-> +! (B23) AP4 (ALK NIT) IN RO221 + NO-> +! (B24) BALD (NO->NO2) IN RO221 + NO-> +! (B25) AP7 (ALK NIT) IN RO224 + NO-> +! (B26) RPR3 (NO->NO2) IN RO224 + NO-> +! (B27) AP8 (ALK NIT) IN RO227 + NO-> +! (B28) UR7 (NO->NO2) IN RO227 + NO-> +! (B29) AP9 (ALK NIT) IN RO229 + NO-> +! (B30) RO240(NO->NO2) IN RO229 + NO-> +! (B31) AP10 (ALK NIT) IN RO231 + NO-> +! (B32) UR19 (NO->NO2) IN RO231 + NO-> +! (B33) AP11 (ALK NIT) IN RO232 + NO-> +! (B34) RO241(NO->NO2) IN RO232 + NO-> +! (B35) AP12 (ALK NIT) IN RO241 + NO-> +! (B36) UR16 (NO->NO2) IN RO241 + NO-> +! (B39) OH ATTACK OF CHO IN BALD +! (B40) RADICAL IN BALD/OH REACTION +! (B41) AP5 (ALK NIT) IN RO222 + NO-> +! (B42) RPR6 (NO->NO2) IN RO222 + NO-> +! (B43) AP6 (ALK NIT) IN RO223 + NO-> +! (B44) RPR7 (NO->NO2) IN RO223 + NO-> +! (B45) SIDE CHAIN ATTACK OF BALD +! (B46) ALDEHYDIC ATTACK IN MCR +! (B47) DOUBLE BOND ATTACK IN MCR + + TPK%CF1 = 0. + TPK%CF2 = 0. + TPK%CF3 = 0. + TPK%CF4 = 0. + TPK%CF5 = 0. + TPK%CF6 = 0. + TPK%CF7 = 0. + TPK%CF8 = 0. + TPK%CF9 = 0. + TPK%CF10 = 0. + TPK%CF11 = 0. + TPK%CF12 = 0. + TPK%CF13 = 0. + TPK%CF14 = 0. + TPK%CF15 = 0. + TPK%CF16 = 0. + TPK%CF17 = 0. + TPK%CF18 = 0. + TPK%CF19 = 0. + TPK%CF20 = 0. + TPK%CF21 = 0. + TPK%CF22 = 0. + TPK%CF23 = 0. + TPK%CF24 = 0. + TPK%CF25 = 0. + TPK%CF26 = 0. + TPK%CF27 = 0. + TPK%CF28 = 0. + TPK%CF29 = 0. + TPK%CF30 = 0. + TPK%CF31 = 0. + TPK%CF32 = 0. + TPK%CF33 = 0. + TPK%CF34 = 0. + TPK%CF35 = 0. + TPK%CF36 = 0. + TPK%CF37 = 0. + TPK%CF38 = 0. + TPK%CF39 = 0. + TPK%CF40 = 0. + TPK%CF41 = 0. + TPK%CF42 = 0. + TPK%CF43 = 0. + TPK%CF44 = 0. + TPK%CF45 = 0. + TPK%CF46 = 0. + TPK%CF47 = 0. + TPK%CF48 = 0. + TPK%CF49 = 0. + + A = 4.49E-18 + B = -320.0 + C = 4.5E-18 + D = 253.0 + E = 61.69 + F = 2.12E-18 + G = 696.0 + H = 2.10E-18 + I = -85.0 + J = 373.32 + K = -85.73 + L= 2.63E-11 + P = 2.22E-11 + Q = 8.69E-11 + V = 1.1E-10 + S = 5.2E-13 + W = 6.4E-11 + T = 3.6E-13 + U = -959.23 + ! + +TPK%CF1 = (C*EXP(D/TPK%T)*EXP(J/TPK%T)+ H*EXP(I/TPK%T)*EXP(E/TPK%T))& + /(A*EXP(B/TPK%T)*EXP(E/TPK%T) + & + C*EXP(D/TPK%T)*EXP(J/TPK%T) + H*EXP(I/TPK%T)*EXP(E/TPK%T)) + +TPK%CF2 = 1.0 - TPK%CF1 + A = 1.94E-22 + B = 0.97 + NC = 3.0 + YI300 = 0.826 + Y300 = A*EXP(B*NC) + MINF = 8.1 + F = 0.411 + C = 0.4 + + HF3 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & + **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & + (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) + ! +TPK%CF3= HF3/(1.0+HF3) +TPK%CF4= 1.0 - TPK%CF3 + ! + NC = 5.0 + C = 0.3 + Y300 = A*EXP(B*NC) + HF5 = 0.5 + 0.5*(C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/ & + (TPK%T/300.0)**(-1.*MINF)))*F**(1.0/(1.0+(LOG10 & + (Y300*TPK%M/YI300/(TPK%T/300.0)**(-1.*MINF))) & + **2))) + ! +TPK%CF5 = HF5/(1.0+HF5) +TPK%CF6 = 1 - TPK%CF5 + ! + NC = 3.0 + Y300 = A*EXP(B*NC) + HF7 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & + **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & + (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) + +TPK%CF7 = HF7/(1.0+HF7) +TPK%CF8 = 1.0 - TPK%CF7 + ! +TPK%CF9 = 0.2 +TPK%CF10 = 0.4 +TPK%CF11 = 0.2 +TPK%CF12 = 1.0 - TPK%CF9 - TPK%CF10 - TPK%CF11 + ! +TPK%CF13 = TPK%CF9 +TPK%CF14 = TPK%CF10 +TPK%CF15 = TPK%CF11 +TPK%CF16 = 1.0 - TPK%CF13 - TPK%CF14 - TPK%CF15 + ! + NC = 8.0 + C = 1.0 + Y300 = A*EXP(NC*B) + HF17 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & + **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & + (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) + ! +TPK%CF17 = HF17/(1.0+HF17) +TPK%CF18 = 1.0 - TPK%CF17 + ! + HF19 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & + **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & + (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) + ! +TPK%CF19 = HF19/(1.0+HF19) +TPK%CF20 = 1.0 - TPK%CF19 + ! + C = 0.40 + HF21 = 0.4*(C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & + **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & + (TPK%T/300.0)**(-1.*MINF)))**2)**(-1))+1.0-0.4 + ! +TPK%CF21 = HF21/(1.0 + HF21) +TPK%CF22 = 1.0 - TPK%CF21 + ! + NC = 9.0 + Y300 = A*EXP(NC*B) + HF23 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & + **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & + (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) + ! +TPK%CF23 = HF23/(1.0 + HF23) +TPK%CF24 = 1.0 - TPK%CF23 + ! + NC = 10.0 + Y300 = A*EXP(B*NC) + C = 0.3 + HF25 = 0.5*(C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & + **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & + (TPK%T/300.0)**(-1.*MINF)))**2)**(-1)) + 0.5 + ! +TPK%CF25 = HF25/(1.0 + HF25) +TPK%CF26 = 1.0 - TPK%CF25 + ! + HF27 = 0.5*(C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & + **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & + (TPK%T/300.0)**(-1.*MINF)))**2)**(-1)) + 0.5 + ! +TPK%CF27 = HF27/(1+HF27) +TPK%CF28 = 1.0 - TPK%CF27 + ! + NC = 9.0 + Y300 = A*EXP(B*NC) + C = 0.4 + HF29 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & + **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & + (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) + ! +TPK%CF29 = HF29/(1.0 + HF29) +TPK%CF30 = 1.0 - TPK%CF29 + ! + NC = 12.0 + Y300 = A*EXP(B*NC) + HF31 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & + **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & + (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) + ! +TPK%CF31 = HF31/(1.0 + HF31) +TPK%CF32 = 1.0 - TPK%CF31 + ! + NC = 16.0 + Y300 = A*EXP(B*NC) + C = 1.0 + ! + HF33 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & + **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & + (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) + ! +TPK%CF33 = HF33/(1.0 + HF33) +TPK%CF34 = 1.0 - TPK%CF33 + ! + HF35 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & + **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & + (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) + ! +TPK%CF35 = HF35/(1.0 + HF35) +TPK%CF36 = 1.0 - TPK%CF35 + ! +TPK%CF39 = 2.22E-11/(2.22E-11 + 7.66E-12 + (4.49E-18 * & + TPK%T *TPK%T * EXP(-320.0/TPK%T))) +TPK%CF45 = 4.49E-18*TPK%T*TPK%T*EXP(-320.0/TPK%T) & + /(2.22E-11 + 7.66E-12 + (4.49E-18 * & + TPK%T *TPK%T * EXP(-320.0/TPK%T))) +TPK%CF40 = 0.84 - TPK%CF39 - TPK%CF45 + ! + NC = 8.0 + Y300 = A*EXP(B*NC) + C = 0.4 + HF41 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & + **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & + (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) + ! +TPK%CF41 = HF41/(1.0 + HF41) +TPK%CF42 = 1.0 - TPK%CF41 + ! + ! + HF43 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & + **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & + (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) + ! +TPK%CF43 = HF43/(1.0 + HF43) +TPK%CF44 = 1.0 - TPK%CF43 + ! +TPK%CF46 = 2.22E-11/(2.22E-11 + 5.14E-11) +TPK%CF47 = 1.0 - TPK%CF46 + + ! for reaction 82: H2O stochiometric coef +TPK%CF48 = .16 - TPK%CF39 +TPK%CF49 = TPK%CF39 + TPK%CF45 + +TPK%CF1 = MAX(0., TPK%CF1) +TPK%CF2 = MAX(0., TPK%CF2) +TPK%CF3 = MAX(0., TPK%CF3) +TPK%CF4 = MAX(0., TPK%CF4) +TPK%CF5 = MAX(0., TPK%CF5) +TPK%CF6 = MAX(0., TPK%CF6) +TPK%CF7 = MAX(0., TPK%CF7) +TPK%CF8 = MAX(0., TPK%CF8) +TPK%CF9 = MAX(0., TPK%CF9) +TPK%CF10 = MAX(0., TPK%CF10) +TPK%CF11 = MAX(0., TPK%CF11) +TPK%CF12 = MAX(0., TPK%CF12) +TPK%CF13 = MAX(0., TPK%CF13) +TPK%CF14 = MAX(0., TPK%CF14) +TPK%CF15 = MAX(0., TPK%CF15) +TPK%CF16 = MAX(0., TPK%CF16) +TPK%CF17 = MAX(0., TPK%CF17) +TPK%CF18 = MAX(0., TPK%CF18) +TPK%CF19 = MAX(0., TPK%CF19) +TPK%CF20 = MAX(0., TPK%CF20) +TPK%CF21 = MAX(0., TPK%CF21) +TPK%CF22 = MAX(0., TPK%CF22) +TPK%CF23 = MAX(0., TPK%CF23) +TPK%CF24 = MAX(0., TPK%CF24) +TPK%CF25 = MAX(0., TPK%CF25) +TPK%CF26 = MAX(0., TPK%CF26) +TPK%CF27 = MAX(0., TPK%CF27) +TPK%CF28 = MAX(0., TPK%CF28) +TPK%CF29 = MAX(0., TPK%CF29) +TPK%CF30 = MAX(0., TPK%CF30) +TPK%CF31 = MAX(0., TPK%CF31) +TPK%CF32 = MAX(0., TPK%CF32) +TPK%CF33 = MAX(0., TPK%CF33) +TPK%CF34 = MAX(0., TPK%CF34) +TPK%CF35 = MAX(0., TPK%CF35) +TPK%CF36 = MAX(0., TPK%CF36) +TPK%CF37 = MAX(0., TPK%CF37) +TPK%CF38 = MAX(0., TPK%CF38) +TPK%CF39 = MAX(0., TPK%CF39) +TPK%CF40 = MAX(0., TPK%CF40) +TPK%CF41 = MAX(0., TPK%CF41) +TPK%CF42 = MAX(0., TPK%CF42) +TPK%CF43 = MAX(0., TPK%CF43) +TPK%CF44 = MAX(0., TPK%CF44) +TPK%CF45 = MAX(0., TPK%CF45) +TPK%CF46 = MAX(0., TPK%CF46) +TPK%CF47 = MAX(0., TPK%CF47) +TPK%CF48 = MAX(0., TPK%CF48) +TPK%CF49 = MAX(0., TPK%CF49) + + +TPK%CFA2 = 0.9983609 *TPK%CF22 +TPK%CFA3 = 1.0000000 *TPK%CF19 +TPK%CFA4 = 1.0000000 *TPK%CF17 +TPK%CFA5 = 1.0000000 *TPK%CF23 +TPK%CFA6 = 1.0000000 *TPK%CF41 +TPK%CFA7 = 0.9983609 *TPK%CF42 +TPK%CFA9 = 1.0000000 *TPK%CF44 +TPK%CFA10 = TPK%CF26 +TPK%CFA12 = 0.3*TPK%CF28 +TPK%CFA13 = 1.0000000 *TPK%CF29 +TPK%CFA14 = 0.9999996 *TPK%CF33 +TPK%CFA15 = 0.9999996 *TPK%CF35 +TPK%CFA16 = 0.9999996 *TPK%CF36 +TPK%CFA17 = 0.8808107 *TPK%CF46 +TPK%CFA18 = 0.0000000E+00 *TPK%CF47 +TPK%CFA19 = TPK%CF6 +TPK%CFA20 = 1.0000005 *TPK%CF46 +TPK%CFA21 = 1.0000005 *TPK%CF46 +TPK%CFA22 = 0.5021558 *TPK%CF47 +TPK%CFA23 = 1.0000000 *TPK%CF25 +TPK%CFA24 = 1.0000000 *TPK%CF46 +! +! +! the following prints will be erased +IF (KVERB >= 15) THEN + WRITE(KOUT,*) "CH_SET_RATES: the following variables have been updated" + WRITE(KOUT,*) "MODELLEVEL: ", TPK%MODELLEVEL(1) + WRITE(KOUT,*) "M: ", TPK%M(1) , "molec/cm3" + WRITE(KOUT,*) "T: ", TPK%T(1) , "K" + WRITE(KOUT,*) "H2O ", TPK%H2O(1) , "molec/cm3" + WRITE(KOUT,*) "CLOUDWATER: ", TPK%CLOUDWATER(1) , "kg/kg" + WRITE(KOUT,*) "LATITUDE: ", TPK%LAT(1) , "degree" + WRITE(KOUT,*) "LONGITUDE: ", TPK%LON(1) , "degree" + WRITE(KOUT,*) "YEAR: ", TPK%YEAR(1) + WRITE(KOUT,*) "MONTH: ", TPK%MONTH(1) + WRITE(KOUT,*) "DAY: ", TPK%DAY(1) + WRITE(KOUT,*) "RAINWATER: ", TPK%RAINWATER(1) , "kg/kg" + WRITE(KOUT,*) "RHODREF: ", TPK%RHODREF(1) , "kg/m3" + WRITE(KOUT,*) "PRESSURE: ", TPK%PRESSURE(1) , "atm" + WRITE(KOUT,*) "O2: ", TPK%O2(1) , "molec/cm3" + WRITE(KOUT,*) "N2: ", TPK%N2(1) , "molec/cm3" + WRITE(KOUT,*) "H2: ", TPK%H2(1) , "molec/cm3" + WRITE(KOUT,*) "CO2: ", TPK%CO2(1) , "molec/cm3" + WRITE(KOUT,*) "LWC: ", TPK%LWC(1) , "m3/m3" + WRITE(KOUT,*) "RADC: ", TPK%RADC(1) , "m" + WRITE(KOUT,*) "PHC: ", TPK%PHC(1) + WRITE(KOUT,*) "LWR: ", TPK%LWR(1) , "m3/m3" + WRITE(KOUT,*) "RADR: ", TPK%RADR(1) , "m" + WRITE(KOUT,*) "PHR: ", TPK%PHR(1) + WRITE(KOUT,*) "W_O2: ", TPK%W_O2(1) , "M" +END IF +! +! /END_SET_RATES/ +CALL SUBSRG0 +CALL SUBSRG1 +CALL SUBSRG2 +CALL SUBSRG3 +CALL SUBSRG4 +CALL SUBSRG5 +CALL SUBSRG6 +CALL SUBSRG7 +CALL SUBSRG8 +CALL SUBSRG9 +CALL SUBSRG10 +CALL SUBSRG11 +CALL SUBSRG12 +CALL SUBSRG13 +CALL SUBSRG14 +CALL SUBSRG15 +CALL SUBSRG16 +CALL SUBSRG17 +CALL SUBSRG18 +CALL SUBSRG19 +CALL SUBSRG20 +CALL SUBSRG21 +CALL SUBSRG22 +CALL SUBSRG23 +CALL SUBSRG24 +CALL SUBSRG25 +CALL SUBSRG26 +CALL SUBSRG27 +CALL SUBSRG28 +CALL SUBSRG29 +CALL SUBSRG30 +CALL SUBSRG31 +CALL SUBSRG32 +CALL SUBSRG33 +CALL SUBSRG34 +CALL SUBSRG35 +CALL SUBSRG36 +IF (TPK%LUSECHAQ) THEN + CALL SUBSRW0 + CALL SUBSRW1 + CALL SUBSRW2 + CALL SUBSRW3 + CALL SUBSRW4 + CALL SUBSRW5 + CALL SUBSRW6 + CALL SUBSRW7 + CALL SUBSRW8 + CALL SUBSRW9 + CALL SUBSRW10 + CALL SUBSRW11 + CALL SUBSRW12 + CALL SUBSRW13 + CALL SUBSRW14 + CALL SUBSRW15 + CALL SUBSRW16 + CALL SUBSRW17 + CALL SUBSRW18 + CALL SUBSRW19 + CALL SUBSRW20 + CALL SUBSRW21 +END IF +TPK%NOUT = KOUT +TPK%NVERB(:) = KVERB +RETURN + +CONTAINS + +SUBROUTINE SUBSRG0 +! +!Indices 1 a 10 +! + TPK%K002=TPK%M*5.60E-34*(TPK%T/300)**(-2.6) + TPK%K003=6.5E-12*EXP(119.8/TPK%T) + TPK%K004=TROE(1.,9.0E-32,2.,2.2E-11,0.,0.8,TPK%M,TPK%T,KVECNPT) + TPK%K005=1.8E-12*EXP(-1368.9/TPK%T) + TPK%K006=1.4E-13*EXP(-2471.1/TPK%T) + TPK%K007=1.8E-11*EXP(110.7/TPK%T) + TPK%K008=5.09E-18/TPK%T*EXP(528.4/TPK%T) + TPK%K009=TROE(1.,2.8E-30,3.5,2.0E-12,0.2,0.45,TPK%M,TPK%T,KVECNPT) + TPK%K010=TROE_EQUIL(2.8E-30,3.5,2.0E-12,0.2,3.70E+26,11000.0,0.45,TPK%M,TPK%T,& +&KVECNPT) +! +RETURN +END SUBROUTINE SUBSRG0 +! +SUBROUTINE SUBSRG1 +! +!Indices 11 a 20 +! + TPK%K011=2.59E-22 + TPK%K012=4.5E-14*EXP(-1258.2/TPK%T) + TPK%K017=2.2E-10 + TPK%K018A=1.80E-11*exp(-(-110.0/TPK%T)) + TPK%K018B=3.20E-11*exp(-(-70.0/TPK%T)) + TPK%K019=TROE(1.,7.0E-31,2.6,3.6E-11,0.1,0.6,TPK%M,TPK%T,KVECNPT) +! +RETURN +END SUBROUTINE SUBSRG1 +! +SUBROUTINE SUBSRG2 +! +!Indices 21 a 30 +! + TPK%K021=4.0E-24 + TPK%K022=TROE(1.,2.85E-30,2.67,3.13E-11,0.,0.6,TPK%M,TPK%T,KVECNPT) + TPK%K023=TROE_KA(7.2E-15,785.1,4.1E-16,1439.4,1.9E-33,724.7,TPK%M,TPK%T,KVECNP& +&T) + TPK%K024=TROE_KB(1.3E-13,0.,3.19E-33,0.,TPK%M,TPK%T,KVECNPT) + TPK%K025=1.9E-12*EXP(-1001.5/TPK%T) + TPK%K026=3.41E-12*EXP(271.8/TPK%T) + TPK%K027=TROE(1.,1.8E-31,3.2,4.7E-12,0.,0.6,TPK%M,TPK%T,KVECNPT) + TPK%K028=TROE_EQUIL(1.8E-31,3.2,4.7E-12,0.,4.76E+26,10900.,0.6,TPK%M,TPK%T,KVE& +&CNPT) + TPK%K029=1.5E-12*EXP(362.4/TPK%T) +! +RETURN +END SUBROUTINE SUBSRG2 +! +SUBROUTINE SUBSRG3 +! +!Indices 31 a 40 +! + TPK%K030=1.4E-14*EXP(-598.9/TPK%T) + TPK%K031=TROE_KB(2.2E-13,598.9,1.85E-33,981.4,TPK%M,TPK%T,KVECNPT) + TPK%K032=TROE_KB(3.08E-34,2798.2,2.59E-54,3180.7,TPK%M,TPK%T,KVECNPT) + TPK%K033=4.0E-12 + TPK%K034=8.0E-12*EXP(-2058.4/TPK%T) + TPK%K035=TROE(1.,4.1E-31,3.3,2.0E-12,0.,0.45,TPK%M,TPK%T,KVECNPT) + TPK%K037=2.91E-12*EXP(-161/TPK%T) + TPK%K038=TROE(1.,9.00E-32,1.5,3.00E-11,0.0,0.6,TPK%M,TPK%T,KVECNPT) + TPK%K039=2.7E-12*EXP(261.7/TPK%T) +! +RETURN +END SUBROUTINE SUBSRG3 +! +SUBROUTINE SUBSRG4 +! +!Indices 41 a 50 +! + TPK%K040=2.0E-11 + TPK%K041=8.5E-13*EXP(-2450.9/TPK%T) + TPK%K042=4.8E-11*EXP(251.6/TPK%T) + TPK%K043=2.66E-12*EXP(-1800.2/TPK%T) + TPK%K046=1.2E-14*TPK%T*EXP(286.9/TPK%T) + TPK%K047=2.0E-12*EXP(-2430.8/TPK%T) + TPK%K048=6.0E-18*TPK%T**2*EXP(170.1/TPK%T) + TPK%K049=1.96E-12*EXP(437.8/TPK%T) +! +RETURN +END SUBROUTINE SUBSRG4 +! +SUBROUTINE SUBSRG5 +! +!Indices 51 a 60 +! + TPK%K050=4.89E-18*TPK%T**2*EXP(-2282.3/TPK%T) + TPK%K051=9.14E-15*EXP(-2580.3/TPK%T) + TPK%K052=7.3E-13 + TPK%K053=6.18E-18*TPK%T**2*EXP(532/TPK%T) + TPK%K054=5.86E-12*EXP(500.3/TPK%T) + TPK%K055=1.0E-13*EXP(-800.2/TPK%T) + TPK%K056=1.0E-17 + TPK%K057=4.66E-12 + TPK%K058=3.91E-12 +! +RETURN +END SUBROUTINE SUBSRG5 +! +SUBROUTINE SUBSRG6 +! +!Indices 61 a 70 +! + TPK%K060=6.91E-12*EXP(250/TPK%T) + TPK%K061=3.0E-13*EXP(-1427/TPK%T) + TPK%K062=4.91E-12 + TPK%K064=2.55E-11*EXP(410.2/TPK%T) + TPK%K065=3.02E-12*EXP(-445.9/TPK%T) + TPK%K066=7.86E-15*EXP(-1912.9/TPK%T) + TPK%K067=3.5E-11 + TPK%K068=3.2E-12 + TPK%K069=1.28E-11 +! +RETURN +END SUBROUTINE SUBSRG6 +! +SUBROUTINE SUBSRG7 +! +!Indices 71 a 80 +! + TPK%K070=5.1E-12 + TPK%K072=3.77E-12 + TPK%K073=2.264E-10 + TPK%K074=3.47E-11 + TPK%K075=3.47E-11*1.0E-13*EXP(-800.2/TPK%T)/(5.86E-12*EXP(500.3/TPK%T)) + TPK%K076=3.47E-11*1.0E-17/(5.86E-12*EXP(500.3/TPK%T)) + TPK%K077=3.47E-11*4.66E-12/(5.86E-12*EXP(500.3/TPK%T)) + TPK%K078=1.03E-11 + TPK%K079=3.27E-11 +! +RETURN +END SUBROUTINE SUBSRG7 +! +SUBROUTINE SUBSRG8 +! +!Indices 81 a 90 +! + TPK%K080=1.52E-11 + TPK%K081=1.4E-12*EXP(-1872.2/TPK%T) + TPK%K082=1.29E-11 + TPK%K083=1.1E-12 + TPK%K084=1.7E-10 + TPK%K085=1.46E-11 + TPK%K086=2.5E-16 + TPK%K087=1.7E-10*4.66E-12/(5.86E-12*EXP(500.3/TPK%T)) + TPK%K088=1.77E-10 + TPK%K089=2.91E-11 +! +RETURN +END SUBROUTINE SUBSRG8 +! +SUBROUTINE SUBSRG9 +! +!Indices 91 a 100 +! + TPK%K090=1.4E-16 + TPK%K091=8.59E-11 + TPK%K092=7.7E-11 + TPK%K093=1.97E-11 + TPK%K094=3.41E-13*EXP(800.2/TPK%T) + TPK%K095=4.2E-12*EXP(181.2/TPK%T) + TPK%K096=1.0E-15 + TPK%K097=0.9*7.7E5/TPK%T + TPK%K098=0.9*7.7E5/TPK%T + TPK%K099=0.9*7.7E5/TPK%T +! +RETURN +END SUBROUTINE SUBSRG9 +! +SUBROUTINE SUBSRG10 +! +!Indices 101 a 110 +! + TPK%K100=0.9*7.7E5/TPK%T + TPK%K101=0.9*7.7E5/TPK%T + TPK%K102=0.9*7.7E5/TPK%T + TPK%K103=1.7*3.0E-11 + TPK%K104=1.7*3.0E-11 + TPK%K105=1.7*3.0E-11 + TPK%K106=1.7*3.0E-11 + TPK%K107=1.7*3.0E-11 + TPK%K108=1.7*3.0E-11 + TPK%K109=1.7*3.0E-11 +! +RETURN +END SUBROUTINE SUBSRG10 +! +SUBROUTINE SUBSRG11 +! +!Indices 111 a 120 +! + TPK%K110=4.09E-12*EXP(180.2/TPK%T) + TPK%K111=1.0E-15 + TPK%K112=3.41E-13*EXP(800.2/TPK%T) + TPK%K113=2.45E-12*EXP(180.2/TPK%T) + TPK%K114=1.0E-15 + TPK%K115=3.41E-13*EXP(800.2/TPK%T) + TPK%K116=2.45E-12*EXP(180.2/TPK%T) + TPK%K117=1.0E-15 + TPK%K118=3.41E-13*EXP(800.2/TPK%T) + TPK%K119=3.45E-12*EXP(180.2/TPK%T) +! +RETURN +END SUBROUTINE SUBSRG11 +! +SUBROUTINE SUBSRG12 +! +!Indices 121 a 130 +! + TPK%K120=1.0E-15 + TPK%K121=3.41E-13*EXP(800.2/TPK%T) + TPK%K122=2.91E-12*EXP(180.2/TPK%T) + TPK%K123=1.0E-15 + TPK%K124=3.41E-13*EXP(800.2/TPK%T) + TPK%K125=1.11E-11*EXP(180.2/TPK%T) + TPK%K126=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) + TPK%K127=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) + TPK%K128=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) + TPK%K129=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) +! +RETURN +END SUBROUTINE SUBSRG12 +! +SUBROUTINE SUBSRG13 +! +!Indices 131 a 140 +! + TPK%K130=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) + TPK%K131=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) + TPK%K132=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) + TPK%K133=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) + TPK%K134=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) + TPK%K135=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& +&ECNPT) + TPK%K136=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& +&ECNPT) + TPK%K137=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& +&ECNPT) + TPK%K138=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& +&ECNPT) + TPK%K139=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& +&ECNPT) +! +RETURN +END SUBROUTINE SUBSRG13 +! +SUBROUTINE SUBSRG14 +! +!Indices 141 a 150 +! + TPK%K140=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& +&ECNPT) + TPK%K141=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& +&ECNPT) + TPK%K142=3.41E-13*EXP(800.2/TPK%T)/3.5 + TPK%K143=1.0E-15 + TPK%K144=2.45E-12*EXP(180.2/TPK%T) + TPK%K145=1.0E-15 + TPK%K146=3.41E-13*EXP(800.2/TPK%T) + TPK%K147=1.11E-11*EXP(180.2/TPK%T) + TPK%K148=3.41E-13*EXP(800.2/TPK%T)/3.5 + TPK%K149=1.0E-15 +! +RETURN +END SUBROUTINE SUBSRG14 +! +SUBROUTINE SUBSRG15 +! +!Indices 151 a 160 +! + TPK%K150=2.08E-12*EXP(180.2/TPK%T) + TPK%K151=1.0E-15 + TPK%K152=3.41E-13*EXP(800.2/TPK%T) + TPK%K153=2.08E-12*EXP(180.2/TPK%T) + TPK%K154=1.0E-15 + TPK%K155=3.41E-13*EXP(800.2/TPK%T) + TPK%K156=2.08E-12*EXP(180.2/TPK%T) + TPK%K157=1.0E-15 + TPK%K158=3.41E-13*EXP(800.2/TPK%T) + TPK%K159=2.08E-12*EXP(180.2/TPK%T) +! +RETURN +END SUBROUTINE SUBSRG15 +! +SUBROUTINE SUBSRG16 +! +!Indices 161 a 170 +! + TPK%K160=1.0E-15 + TPK%K161=3.41E-13*EXP(800.2/TPK%T) + TPK%K162=2.45E-12*EXP(180.2/TPK%T) + TPK%K163=1.0E-15 + TPK%K164=3.41E-13*EXP(800.2/TPK%T) + TPK%K165=1.11E-11*EXP(180.2/TPK%T) + TPK%K166=3.41E-13*EXP(800.2/TPK%T)/3.5 + TPK%K167=1.0E-15 + TPK%K168=2.91E-12*EXP(180.2/TPK%T) + TPK%K169=1.0E-15 +! +RETURN +END SUBROUTINE SUBSRG16 +! +SUBROUTINE SUBSRG17 +! +!Indices 171 a 180 +! + TPK%K170=3.41E-13*EXP(800.2/TPK%T) + TPK%K171=2.08E-12*EXP(180.2/TPK%T) + TPK%K172=1.0E-15 + TPK%K173=3.41E-13*EXP(800.2/TPK%T) + TPK%K174=1.48E-12*EXP(180.2/TPK%T) + TPK%K175=1.0E-15 + TPK%K176=3.41E-13*EXP(800.2/TPK%T) + TPK%K177=1.25E-12*EXP(180.2/TPK%T) + TPK%K178=1.0E-15 + TPK%K179=3.41E-13*EXP(800.2/TPK%T) +! +RETURN +END SUBROUTINE SUBSRG17 +! +SUBROUTINE SUBSRG18 +! +!Indices 181 a 190 +! + TPK%K180=1.25E-12*EXP(180.2/TPK%T) + TPK%K181=1.0E-15 + TPK%K182=3.41E-13*EXP(800.2/TPK%T) + TPK%K183=1.05E-12*EXP(180.2/TPK%T) + TPK%K184=1.0E-15 + TPK%K185=3.41E-13*EXP(800.2/TPK%T) + TPK%K186=1.25E-12*EXP(180.2/TPK%T) + TPK%K187=1.0E-15 + TPK%K188=3.41E-13*EXP(800.2/TPK%T) + TPK%K189=1.05E-12*EXP(180.2/TPK%T) +! +RETURN +END SUBROUTINE SUBSRG18 +! +SUBROUTINE SUBSRG19 +! +!Indices 191 a 200 +! + TPK%K190=1.0E-15 + TPK%K191=3.41E-13*EXP(800.2/TPK%T) + TPK%K192=1.25E-12*EXP(180.2/TPK%T) + TPK%K193=1.0E-15 + TPK%K194=3.41E-13*EXP(800.2/TPK%T) + TPK%K195=1.25E-12*EXP(180.2/TPK%T) + TPK%K196=1.0E-15 + TPK%K197=3.41E-13*EXP(800.2/TPK%T) + TPK%K198=8.89E-13*EXP(180.2/TPK%T) + TPK%K199=1.0E-15 +! +RETURN +END SUBROUTINE SUBSRG19 +! +SUBROUTINE SUBSRG20 +! +!Indices 201 a 210 +! + TPK%K200=3.41E-13*EXP(800.2/TPK%T) + TPK%K201=8.89E-13*EXP(180.2/TPK%T) + TPK%K202=1.0E-15 + TPK%K203=3.41E-13*EXP(800.2/TPK%T) + TPK%K204=8.89E-13*EXP(180.2/TPK%T) + TPK%K205=1.0E-15 + TPK%K206=3.41E-13*EXP(800.2/TPK%T) + TPK%K207=8.89E-13*EXP(180.2/TPK%T) + TPK%K208=1.0E-15 + TPK%K209=3.41E-13*EXP(800.2/TPK%T) +! +RETURN +END SUBROUTINE SUBSRG20 +! +SUBROUTINE SUBSRG21 +! +!Indices 211 a 220 +! + TPK%K210=8.89E-13*EXP(180.2/TPK%T) + TPK%K211=1.0E-15 + TPK%K212=3.41E-13*EXP(800.2/TPK%T) + TPK%K213=1.05E-12*EXP(180.2/TPK%T) + TPK%K214=1.0E-15 + TPK%K215=3.41E-13*EXP(800.2/TPK%T) + TPK%K216=1.05E-12*EXP(180.2/TPK%T) + TPK%K217=1.0E-15 + TPK%K218=3.41E-13*EXP(800.2/TPK%T) + TPK%K219=1.0E-15 +! +RETURN +END SUBROUTINE SUBSRG21 +! +SUBROUTINE SUBSRG22 +! +!Indices 221 a 230 +! + TPK%K220=3.41E-13*EXP(800.2/TPK%T) + TPK%K221=6.32E-13*EXP(180.2/TPK%T) + TPK%K222=1.0E-15 + TPK%K223=3.41E-13*EXP(800.2/TPK%T) + TPK%K224=3.2E-13*EXP(180.2/TPK%T) + TPK%K225=1.0E-15 + TPK%K226=3.41E-13*EXP(800.2/TPK%T) + TPK%K227=3.2E-13*EXP(180.2/TPK%T) + TPK%K228=1.0E-15 + TPK%K229=3.41E-13*EXP(800.2/TPK%T) +! +RETURN +END SUBROUTINE SUBSRG22 +! +SUBROUTINE SUBSRG23 +! +!Indices 231 a 240 +! + TPK%K230=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T) + TPK%K231=1.25E-12*EXP(180.2/TPK%T) + TPK%K232=1.0E-15 + TPK%K233=3.41E-13*EXP(800.2/TPK%T) + TPK%K234=1.25E-12*EXP(180.2/TPK%T) + TPK%K235=1.0E-15 + TPK%K236=3.41E-13*EXP(800.2/TPK%T) + TPK%K237=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T) + TPK%K238=1.05E-12*EXP(180.2/TPK%T) + TPK%K239=1.0E-15 +! +RETURN +END SUBROUTINE SUBSRG23 +! +SUBROUTINE SUBSRG24 +! +!Indices 241 a 250 +! + TPK%K240=3.41E-13*EXP(800.2/TPK%T) + TPK%K241=1.05E-12*EXP(180.2/TPK%T) + TPK%K242=1.0E-15 + TPK%K243=3.41E-13*EXP(800.2/TPK%T) + TPK%K244=1.1*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T) + TPK%K245=8.89E-13*EXP(180.2/TPK%T) + TPK%K246=1.0E-15 + TPK%K247=3.41E-13*EXP(800.2/TPK%T) + TPK%K248=8.89E-13*EXP(180.2/TPK%T) + TPK%K249=1.0E-15 +! +RETURN +END SUBROUTINE SUBSRG24 +! +SUBROUTINE SUBSRG25 +! +!Indices 251 a 260 +! + TPK%K250=3.41E-13*EXP(800.2/TPK%T) + TPK%K251=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T) + TPK%K252=1.25E-12*EXP(180.2/TPK%T) + TPK%K253=1.0E-15 + TPK%K254=3.41E-13*EXP(800.2/TPK%T) + TPK%K255=1.25E-12*EXP(180.2/TPK%T) + TPK%K256=1.0E-15 + TPK%K257=3.41E-13*EXP(800.2/TPK%T) + TPK%K258=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T) + TPK%K259=1.25E-12*EXP(180.2/TPK%T) +! +RETURN +END SUBROUTINE SUBSRG25 +! +SUBROUTINE SUBSRG26 +! +!Indices 261 a 270 +! + TPK%K260=1.0E-15 + TPK%K261=3.41E-13*EXP(800.2/TPK%T) + TPK%K262=1.25E-12*EXP(180.2/TPK%T) + TPK%K263=1.0E-15 + TPK%K264=3.41E-13*EXP(800.2/TPK%T) + TPK%K265=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T) + TPK%K266=6.32E-13*EXP(180.2/TPK%T) + TPK%K267=1.0E-15 + TPK%K268=3.41E-13*EXP(800.2/TPK%T) + TPK%K269=6.32E-13*EXP(180.2/TPK%T) +! +RETURN +END SUBROUTINE SUBSRG26 +! +SUBROUTINE SUBSRG27 +! +!Indices 271 a 280 +! + TPK%K270=1.0E-15 + TPK%K271=3.41E-13*EXP(800.2/TPK%T) + TPK%K272=4.14E-12*EXP(452.9/TPK%T) + TPK%K273=1.86E-11*EXP(176.1/TPK%T) + TPK%K274=1.72E-11 + TPK%K275=1.5E-12*EXP(-1726.2/TPK%T) + TPK%K277=1.11E-11*EXP(180.2/TPK%T) + TPK%K278=1.4E-12*EXP(-1897.3/TPK%T) + TPK%K279=3.41E-13*EXP(800.2/TPK%T)/3.5 +! +RETURN +END SUBROUTINE SUBSRG27 +! +SUBROUTINE SUBSRG28 +! +!Indices 281 a 290 +! + TPK%K280=1.0E-15 + TPK%K281=7.5E-16*EXP(-1519.9/TPK%T) + TPK%K282=1.36E-15*EXP(-2113.7/TPK%T) + TPK%K283=4.32E-12 + TPK%K284=6.34E-12 + TPK%K285=2.45E-12*EXP(180.2/TPK%T) + TPK%K286=1.0E-15 + TPK%K287=3.41E-13*EXP(800.2/TPK%T) + TPK%K288=1.11E-11*EXP(180.2/TPK%T) + TPK%K289=3.41E-13*EXP(800.2/TPK%T)/3.5 +! +RETURN +END SUBROUTINE SUBSRG28 +! +SUBROUTINE SUBSRG29 +! +!Indices 291 a 300 +! + TPK%K290=1.0E-15 + TPK%K291=2.45E-12*EXP(180.2/TPK%T) + TPK%K292=3.41E-13*EXP(800.2/TPK%T) + TPK%K293=1.0E-15 + TPK%K294=2.45E-12*EXP(180.2/TPK%T) + TPK%K295=3.41E-13*EXP(800.2/TPK%T) + TPK%K296=1.0E-15 + TPK%K297=2.91E-12*EXP(180.2/TPK%T) + TPK%K298=3.41E-13*EXP(800.2/TPK%T) + TPK%K299=1.0E-15 +! +RETURN +END SUBROUTINE SUBSRG29 +! +SUBROUTINE SUBSRG30 +! +!Indices 301 a 310 +! + TPK%K300=1.11E-11*EXP(180.2/TPK%T) + TPK%K301=3.41E-13*EXP(800.2/TPK%T)/3.5 + TPK%K302=1.0E-15 + TPK%K303=1.29E-11 + TPK%K304=3.54E-11 + TPK%K305=1.72E-11 + TPK%K306=1.2940467E-11 + TPK%K307=3.0E-13*EXP(-1427/TPK%T)*3.54E-11/(6.91E-12*EXP(250/TPK%T)) + TPK%K309=1.11E-11*EXP(180.2/TPK%T) +! +RETURN +END SUBROUTINE SUBSRG30 +! +SUBROUTINE SUBSRG31 +! +!Indices 311 a 320 +! + TPK%K310=3.41E-13*EXP(800.2/TPK%T)/3.5 + TPK%K311=1.0E-15 + TPK%K312=4.24E-11 + TPK%K313=3.0E-13*EXP(-1427/TPK%T)*4.24E-11/(6.91E-12*EXP(250/TPK%T)) + TPK%K315=1.11E-11*EXP(180.2/TPK%T) + TPK%K316=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) + TPK%K317=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& +&ECNPT) + TPK%K318=3.41E-13*EXP(800.2/TPK%T)/3.5 + TPK%K319=1.0E-15 +! +RETURN +END SUBROUTINE SUBSRG31 +! +SUBROUTINE SUBSRG32 +! +!Indices 321 a 330 +! + TPK%K320=3.77E-12 + TPK%K321=2.30E-11*EXP(151.0/TPK%T) + TPK%K322=1.29E-11 + TPK%K323=1.3918362E-10 + TPK%K324=1.145E-10 + TPK%K325=1.098E-10 + TPK%K326=1.964E-10 + TPK%K327=3.0E-13*EXP(-1427/TPK%T)*1.145E-10/(6.91E-12*EXP(250/TPK%T)) +! +RETURN +END SUBROUTINE SUBSRG32 +! +SUBROUTINE SUBSRG33 +! +!Indices 331 a 340 +! + TPK%K331=1.11E-11*EXP(180.2/TPK%T) + TPK%K332=3.41E-13*EXP(800.2/TPK%T)/3.5 + TPK%K333=1.0E-15 + TPK%K334=2.4131647E-10 + TPK%K335=2.1923330E-10 + TPK%K337=1.97E-10 + TPK%K338=1.4E-12*EXP(-1897.3/TPK%T) + TPK%K340=1.11E-11*EXP(180.2/TPK%T) +! +RETURN +END SUBROUTINE SUBSRG33 +! +SUBROUTINE SUBSRG34 +! +!Indices 341 a 350 +! + TPK%K341=3.41E-13*EXP(800.2/TPK%T) + TPK%K342=1.0E-15 + TPK%K343=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& +&ECNPT) + TPK%K344=8.89E-13*EXP(180.2/TPK%T) + TPK%K345=3.30E-12*exp(-(900.0/TPK%T)) + TPK%K346=1.00E-40 + TPK%K347=4.50E-13 + TPK%K348=6.00E-13 + TPK%K349=1.20E-12 + TPK%K350=1.00E-40 +! +RETURN +END SUBROUTINE SUBSRG34 +! +SUBROUTINE SUBSRG35 +! +!Indices 351 a 360 +! + TPK%K351=1.00E-40 + TPK%K352=1.00E-40 + TPK%K353=1.00E-40 + TPK%K354=1.00E-40 + TPK%K355=1.00E-40 + TPK%K356=1.00E-40 + TPK%K357=1.00E-40 + TPK%K358=1.00E-40 + TPK%K359=1.00E-40 + TPK%K360=1.00E-40 +! +RETURN +END SUBROUTINE SUBSRG35 +! +SUBROUTINE SUBSRG36 +! +!Indices 361 a 365 +! + TPK%K361=1.00E-40 + TPK%K362=1.00E-40 + TPK%K363=1.00E-40 + TPK%K364=1.00E-40 + TPK%K365=1.00E-40 +! +RETURN +END SUBROUTINE SUBSRG36 +! +SUBROUTINE SUBSRW0 +! +!Indices 366 a 375 +! + TPK%KTC1=KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC2=KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC3=KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC4=KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC5=KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC6=KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC7=KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC8=KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC9=KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC10=KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC +! +RETURN +END SUBROUTINE SUBSRW0 +! +SUBROUTINE SUBSRW1 +! +!Indices 376 a 385 +! + TPK%KTC11=KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC12=KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC13=KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC14=KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC15=KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC16=KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC17=KT(0.05,75.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC18=KT(0.027,32.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC19=KT(0.017,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC20=KT(0.011,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC +! +RETURN +END SUBROUTINE SUBSRW1 +! +SUBROUTINE SUBSRW2 +! +!Indices 386 a 395 +! + TPK%KTC21=KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC22=KT(0.03,44.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC23=KT(0.01,58.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC24=KT(0.008,58.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC25=KT(0.0003,72.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC26=KT(0.023,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC27=KT(0.032,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC28=KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC29=KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC30=KT(0.05,88.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC +! +RETURN +END SUBROUTINE SUBSRW2 +! +SUBROUTINE SUBSRW3 +! +!Indices 396 a 405 +! + TPK%KTC31=KT(0.05,90.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC32=KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.1e-2,-2830.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTC33=KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(7.73e4,-7310.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTC34=KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.92e-3,-1790.,TPK%T,KV& +&ECNPT)*TPK%RCH*TPK%T) + TPK%KTC35=KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.4e-2,-2516.,TPK%T,KVE& +&CNPT)*TPK%RCH*TPK%T) + TPK%KTC36=KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.8e-2,-8707.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTC37=KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(2.1e0,-3400.,TPK%T,KVE& +&CNPT)*TPK%RCH*TPK%T) + TPK%KTC38=KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(5.0e1,-4880.,1.6e-3,1760.& +&,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC39=KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(2.1e5,-8700.,2.2e1,0.,0.& +&,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC40=KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(1.2e4,-6900.,1.26e-6,0.,0& +&.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) +! +RETURN +END SUBROUTINE SUBSRW3 +! +SUBROUTINE SUBSRW4 +! +!Indices 406 a 415 +! + TPK%KTC41=KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)/(HEFFB(6.02e1,-4160.,1.7e-5,4350& +&.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC42=KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.9e1,0.,TPK%T,KVECNPT)*T& +&PK%RCH*TPK%T) + TPK%KTC43=KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(6.9e2,-6643.,1.6e-5,0.,0.,& +&0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC44=KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(3.4e-2,-2710.,4.3e-7,92& +&0.,4.7e-11,1780.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC45=KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(1.36,-2930.,1.3e-2,-1965.& +&,6.4e-8,-1430.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC46=KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(2.1e5,-8700.,1.0e3,0.,1.0& +&e-2,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC47=KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(2.7e0,0.,TPK%T,KVECNPT)*T& +&PK%RCH*TPK%T) + TPK%KTC48=KT(0.05,75.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(7.5e1,0.,TPK%T,KVECNPT)*T& +&PK%RCH*TPK%T) + TPK%KTC49=KT(0.027,32.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(2.2e2,-5210.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTC50=KT(0.017,46.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.9e2,-6600.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) +! +RETURN +END SUBROUTINE SUBSRW4 +! +SUBROUTINE SUBSRW5 +! +!Indices 416 a 425 +! + TPK%KTC51=KT(0.011,60.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.3e2,-7500.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTC52=KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.23e3,-7100.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTC53=KT(0.03,44.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.29e1,-5890.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTC54=KT(0.01,58.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.6e5,0.,TPK%T,KVECNPT)*T& +&PK%RCH*TPK%T) + TPK%KTC55=KT(0.008,58.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(2.81e1,-5050.,TPK%T,KVEC& +&NPT)*TPK%RCH*TPK%T) + TPK%KTC56=KT(0.0003,72.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.7e3,0.,TPK%T,KVECNPT)& +&*TPK%RCH*TPK%T) + TPK%KTC57=KT(0.023,46.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(8.9e3,-6100.,1.8e-4,150.& +&,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC58=KT(0.032,60.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(4.1e3,-6200.,1.75e-5,0.,& +&0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC59=KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(5.7e3,0.,1.35e-5,0.,0.,0.& +&,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC60=KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(9.0e3,0.,3.2e-4,0.,0.,0.,& +&TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) +! +RETURN +END SUBROUTINE SUBSRW5 +! +SUBROUTINE SUBSRW6 +! +!Indices 426 a 435 +! + TPK%KTC61=KT(0.05,88.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(3.11e5,-5090.,3.55e-3,0.,& +&0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC62=KT(0.05,90.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(5.0e8,0.,5.6e-2,0.,5.4e-5& +&,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR1=KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR2=KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR3=KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR4=KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR5=KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR6=KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR7=KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR8=KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR +! +RETURN +END SUBROUTINE SUBSRW6 +! +SUBROUTINE SUBSRW7 +! +!Indices 436 a 445 +! + TPK%KTR9=KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR10=KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR11=KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR12=KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR13=KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR14=KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR15=KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR16=KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR17=KT(0.05,75.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR18=KT(0.027,32.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR +! +RETURN +END SUBROUTINE SUBSRW7 +! +SUBROUTINE SUBSRW8 +! +!Indices 446 a 455 +! + TPK%KTR19=KT(0.017,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR20=KT(0.011,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR21=KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR22=KT(0.03,44.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR23=KT(0.01,58.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR24=KT(0.008,58.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR25=KT(0.0003,72.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR26=KT(0.023,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR27=KT(0.032,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR28=KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR +! +RETURN +END SUBROUTINE SUBSRW8 +! +SUBROUTINE SUBSRW9 +! +!Indices 456 a 465 +! + TPK%KTR29=KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR30=KT(0.05,88.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR31=KT(0.05,90.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR32=KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.1e-2,-2830.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTR33=KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(7.73e4,-7310.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTR34=KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.92e-3,-1790.,TPK%T,KV& +&ECNPT)*TPK%RCH*TPK%T) + TPK%KTR35=KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.4e-2,-2516.,TPK%T,KVE& +&CNPT)*TPK%RCH*TPK%T) + TPK%KTR36=KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.8e-2,-8707.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTR37=KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(2.1e0,-3400.,TPK%T,KVE& +&CNPT)*TPK%RCH*TPK%T) + TPK%KTR38=KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(5.0e1,-4880.,1.6e-3,1760.& +&,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) +! +RETURN +END SUBROUTINE SUBSRW9 +! +SUBROUTINE SUBSRW10 +! +!Indices 466 a 475 +! + TPK%KTR39=KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(2.1e5,-8700.,2.2e1,0.,0.& +&,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR40=KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(1.2e4,-6900.,1.26e-6,0.,0& +&.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR41=KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)/(HEFFB(6.02e1,-4160.,1.7e-5,4350& +&.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR42=KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.9e1,0.,TPK%T,KVECNPT)*T& +&PK%RCH*TPK%T) + TPK%KTR43=KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(6.9e2,-6643.,1.6e-5,0.,0.,& +&0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR44=KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(3.4e-2,-2710.,4.3e-7,92& +&0.,4.7e-11,1780.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR45=KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(1.36,-2930.,1.3e-2,-1965.& +&,6.4e-8,-1430.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR46=KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(2.1e5,-8700.,1.0e3,0.,1.0& +&e-2,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR47=KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(2.7e0,0.,TPK%T,KVECNPT)*T& +&PK%RCH*TPK%T) + TPK%KTR48=KT(0.05,75.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(7.5e1,0.,TPK%T,KVECNPT)*T& +&PK%RCH*TPK%T) +! +RETURN +END SUBROUTINE SUBSRW10 +! +SUBROUTINE SUBSRW11 +! +!Indices 476 a 485 +! + TPK%KTR49=KT(0.027,32.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(2.2e2,-5210.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTR50=KT(0.017,46.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.9e2,-6600.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTR51=KT(0.011,60.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.3e2,-7500.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTR52=KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.23e3,-7100.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTR53=KT(0.03,44.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.29e1,-5890.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTR54=KT(0.01,58.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.6e5,0.,TPK%T,KVECNPT)*T& +&PK%RCH*TPK%T) + TPK%KTR55=KT(0.008,58.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(2.81e1,-5050.,TPK%T,KVEC& +&NPT)*TPK%RCH*TPK%T) + TPK%KTR56=KT(0.0003,72.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.7e3,0.,TPK%T,KVECNPT)& +&*TPK%RCH*TPK%T) + TPK%KTR57=KT(0.023,46.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(8.9e3,-6100.,1.8e-4,150.& +&,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR58=KT(0.032,60.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(4.1e3,-6200.,1.75e-5,0.,& +&0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) +! +RETURN +END SUBROUTINE SUBSRW11 +! +SUBROUTINE SUBSRW12 +! +!Indices 486 a 495 +! + TPK%KTR59=KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(5.7e3,0.,1.35e-5,0.,0.,0.& +&,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR60=KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(9.0e3,0.,3.2e-4,0.,0.,0.,& +&TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR61=KT(0.05,88.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(3.11e5,-5090.,3.55e-3,0.,& +&0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR62=KT(0.05,90.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(5.0e8,0.,5.6e-2,0.,5.4e-5& +&,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KC2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD + TPK%KC3=((2.8E+10*10.**(-TPK%PHC)+3.5E+10*exp(-720.*(1./TPK%T-1./298.15))*1.6e& +&-5)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD + TPK%KC4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD + TPK%KC5=((8.3E+5*exp(-2700.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHC))**2.+9.6E+7& +&*exp(-910.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*1.6e-5)/(1.6e-5+10.**(-TPK%PH& +&C))**2.)/TPK%MOL2MOLECCLOUD + TPK%KC6=(1.5E+9*exp(-1500.*(1./TPK%T-1./298.15))*1.6e-5/(1.6e-5+10.**(-TPK%PHC& +&)))/TPK%MOL2MOLECCLOUD +! +RETURN +END SUBROUTINE SUBSRW12 +! +SUBROUTINE SUBSRW13 +! +!Indices 496 a 505 +! + TPK%KC7=(2.7E+9*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.3e-2& +&*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2& +&*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%M& +&OL2MOLECCLOUD + TPK%KC8=(1.0E+10*10.**(-TPK%PHC)/(1.6e-3*exp(-1760.*(1./TPK%T-1./298.15))+10.*& +&*(-TPK%PHC)))/TPK%MOL2MOLECCLOUD + TPK%KC9=((1.8E+9*10.**(-TPK%PHC)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-TPK%PHC)))/TPK%& +&MOL2MOLECCLOUD + TPK%KC10=2.6E-2*10.**(-TPK%PHC)/(1.26e-6+10.**(-TPK%PHC)) + TPK%KC11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHC)) + TPK%KC12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHC))**2./& +&((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)& +&)+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.& +&)*(1.26e-6+10.**(-TPK%PHC))))/TPK%MOL2MOLECCLOUD + TPK%KC14=1.0E+10 + TPK%KC15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK%PHC)+(10.**(-T& +&PK%PHC))**2.))/TPK%MOL2MOLECCLOUD + TPK%KC16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1& +&./298.15))*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(& +&1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%& +&PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD +! +RETURN +END SUBROUTINE SUBSRW13 +! +SUBROUTINE SUBSRW14 +! +!Indices 506 a 515 +! + TPK%KC17=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-& +&1./298.15))*10.**(-TPK%PHC)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.15))*1.3e-2*exp& +&(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/((1.3e-2*& +&exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*& +&exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.)*(1.+2.5& +&e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECCLOUD + TPK%KC18=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*EXP(-6716*(1./T& +&PK%T-1./298.15))/10.**(-TPK%PHC) + TPK%KC19=3.0E+8/TPK%MOL2MOLECCLOUD + TPK%KC20=1.1E+9 + TPK%KC21=(1.7E+9*10.**(-TPK%PHC)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD + TPK%KC22=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD + TPK%KC23=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*10.**(& +&-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1& +&./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%& +&PHC))**2.))/TPK%MOL2MOLECCLOUD + TPK%KC24=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15)) + TPK%KC25=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-& +&1./298.15))*10.**(-TPK%PHC)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.15))*1.3e-2*exp& +&(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/(1.3e-2*e& +&xp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*e& +&xp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL& +&2MOLECCLOUD + TPK%KC26=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1& +&./298.15))*10.**(-TPK%PHC)*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.& +&15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.& +&15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD +! +RETURN +END SUBROUTINE SUBSRW14 +! +SUBROUTINE SUBSRW15 +! +!Indices 516 a 525 +! + TPK%KC27=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD + TPK%KC28=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.3e-& +&2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-& +&2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%& +&MOL2MOLECCLOUD + TPK%KC29=1.5E+8/TPK%MOL2MOLECCLOUD + TPK%KC30=(1.7E+9*exp(-600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD + TPK%KC31=(2.1E+9*exp(-1200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD + TPK%KC32=(3.3E+9*exp(-1000.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD + TPK%KC33=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(4030.*(1./TPK%T-1.& +&/298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2MOLECCLOUD + TPK%KC34=3.4E+9/TPK%MOL2MOLECCLOUD + TPK%KC35=(1.1E+9*exp(-1500.*(1./TPK%T-1./298.15))*3.9e3/(1.+3.9e3))/TPK%MOL2MO& +&LECCLOUD + TPK%KC36=(7.9E+8*exp(-1600.*(1./TPK%T-1./298.15))*4.86e2/(1.+4.86e2))/TPK%MOL2& +&MOLECCLOUD +! +RETURN +END SUBROUTINE SUBSRW15 +! +SUBROUTINE SUBSRW16 +! +!Indices 526 a 535 +! + TPK%KC37=(8.9E+8*exp(-1400.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD + TPK%KC38=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+3.4E+9*exp(& +&-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.15)))/(1.8e-4*ex& +&p(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD + TPK%KC39=((1.5E+7*exp(-1300.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+1.0E+8*exp(& +&-1800.*(1./TPK%T-1./298.15))*1.75e-5)/(1.75e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLEC& +&CLOUD + TPK%KC40=(3.2E+8*exp(-2300.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.35e-5+10.& +&**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD + TPK%KC41=(7.3E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.35e-5/(1.35e-5+10.**(-TPK%& +&PHC)))/TPK%MOL2MOLECCLOUD + TPK%KC42=((4.7E+7*10.**(-TPK%PHC)*5.6E-2+7.7E+6*5.6E-2*5.4e-5)/(5.6E-2*5.4E-5+& +&5.4E-5*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD + TPK%KC43=((1.2E+8*exp(-2800.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+7.0E+8*exp(& +&-2300.*(1./TPK%T-1./298.15))*3.55E-3)/(3.55E-3+10.**(-TPK%PHC)))/TPK%MOL2MOLEC& +&CLOUD + TPK%KC44=(3.6E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(10.**(-TPK%& +&PHC)+3.2E-4))/TPK%MOL2MOLECCLOUD + TPK%KC45=(2.6E+9*exp(-4300.*(1./TPK%T-1./298.15))*3.2E-4/(10.**(-TPK%PHC)+3.2E& +&-4))/TPK%MOL2MOLECCLOUD + TPK%KC46=1.6E+7/TPK%MOL2MOLECCLOUD +! +RETURN +END SUBROUTINE SUBSRW16 +! +SUBROUTINE SUBSRW17 +! +!Indices 536 a 545 +! + TPK%KR2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN + TPK%KR3=((2.8E+10*10.**(-TPK%PHR)+3.5E+10*exp(-720.*(1./TPK%T-1./298.15))*1.6e& +&-5)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN + TPK%KR4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN + TPK%KR5=((8.3E+5*exp(-2700.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHR))**2.+9.6E+7& +&*exp(-910.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*1.6e-5)/(1.6e-5+10.**(-TPK%PH& +&R))**2.)/TPK%MOL2MOLECRAIN + TPK%KR6=(1.5E+9*exp(-1500.*(1./TPK%T-1./298.15))*1.6e-5/(1.6e-5+10.**(-TPK%PHR& &)))/TPK%MOL2MOLECRAIN TPK%KR7=(2.7E+9*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.3e-2& &*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2& @@ -29026,701 +84387,5549 @@ SUBROUTINE SUBSRW11 TPK%KR10=2.6E-2*10.**(-TPK%PHR)/(1.26e-6+10.**(-TPK%PHR)) ! RETURN -END SUBROUTINE SUBSRW11 +END SUBROUTINE SUBSRW17 +! +SUBROUTINE SUBSRW18 +! +!Indices 546 a 555 +! + TPK%KR11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHR)) + TPK%KR12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHR))**2./& +&((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)& +&)+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.& +&)*(1.26e-6+10.**(-TPK%PHR))))/TPK%MOL2MOLECRAIN + TPK%KR14=1.0E+10 + TPK%KR15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK%PHR)+(10.**(-T& +&PK%PHR))**2.))/TPK%MOL2MOLECRAIN + TPK%KR16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1& +&./298.15))*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(& +&1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%& +&PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN + TPK%KR17=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-& +&1./298.15))*10.**(-TPK%PHR)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.15))*1.3e-2*exp& +&(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/((1.3e-2*& +&exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*& +&exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.)*(1.+2.5& +&e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECRAIN + TPK%KR18=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*EXP(-6716*(1./T& +&PK%T-1./298.15))/10.**(-TPK%PHR) + TPK%KR19=3.0E+8/TPK%MOL2MOLECRAIN + TPK%KR20=1.1E+9 +! +RETURN +END SUBROUTINE SUBSRW18 +! +SUBROUTINE SUBSRW19 +! +!Indices 556 a 565 +! + TPK%KR21=(1.7E+9*10.**(-TPK%PHR)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN + TPK%KR22=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN + TPK%KR23=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*10.**(& +&-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1& +&./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%& +&PHR))**2.))/TPK%MOL2MOLECRAIN + TPK%KR24=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15)) + TPK%KR25=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-& +&1./298.15))*10.**(-TPK%PHR)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.15))*1.3e-2*exp& +&(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/(1.3e-2*e& +&xp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*e& +&xp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL& +&2MOLECRAIN + TPK%KR26=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1& +&./298.15))*10.**(-TPK%PHR)*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.& +&15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.& +&15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN + TPK%KR27=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN + TPK%KR28=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.3e-& +&2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-& +&2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%& +&MOL2MOLECRAIN + TPK%KR29=1.5E+8/TPK%MOL2MOLECRAIN + TPK%KR30=(1.7E+9*exp(-600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN +! +RETURN +END SUBROUTINE SUBSRW19 +! +SUBROUTINE SUBSRW20 +! +!Indices 566 a 575 +! + TPK%KR31=(2.1E+9*exp(-1200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN + TPK%KR32=(3.3E+9*exp(-1000.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN + TPK%KR33=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(4030.*(1./TPK%T-1.& +&/298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2MOLECRAIN + TPK%KR34=3.4E+9/TPK%MOL2MOLECRAIN + TPK%KR35=(1.1E+9*exp(-1500.*(1./TPK%T-1./298.15))*3.9e3/(1.+3.9e3))/TPK%MOL2MO& +&LECRAIN + TPK%KR36=(7.9E+8*exp(-1600.*(1./TPK%T-1./298.15))*4.86e2/(1.+4.86e2))/TPK%MOL2& +&MOLECRAIN + TPK%KR37=(8.9E+8*exp(-1400.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN + TPK%KR38=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+3.4E+9*exp(& +&-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.15)))/(1.8e-4*ex& +&p(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN + TPK%KR39=((1.5E+7*exp(-1300.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+1.0E+8*exp(& +&-1800.*(1./TPK%T-1./298.15))*1.75e-5)/(1.75e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLEC& +&RAIN + TPK%KR40=(3.2E+8*exp(-2300.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.35e-5+10.& +&**(-TPK%PHR)))/TPK%MOL2MOLECRAIN +! +RETURN +END SUBROUTINE SUBSRW20 +! +SUBROUTINE SUBSRW21 +! +!Indices 576 a 581 +! + TPK%KR41=(7.3E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.35e-5/(1.35e-5+10.**(-TPK%& +&PHR)))/TPK%MOL2MOLECRAIN + TPK%KR42=((4.7E+7*10.**(-TPK%PHR)*5.6E-2+7.7E+6*5.6E-2*5.4e-5)/(5.6E-2*5.4E-5+& +&5.4E-5*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN + TPK%KR43=((1.2E+8*exp(-2800.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+7.0E+8*exp(& +&-2300.*(1./TPK%T-1./298.15))*3.55E-3)/(3.55E-3+10.**(-TPK%PHR)))/TPK%MOL2MOLEC& +&RAIN + TPK%KR44=(3.6E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(10.**(-TPK%& +&PHR)+3.2E-4))/TPK%MOL2MOLECRAIN + TPK%KR45=(2.6E+9*exp(-4300.*(1./TPK%T-1./298.15))*3.2E-4/(10.**(-TPK%PHR)+3.2E& +&-4))/TPK%MOL2MOLECRAIN + TPK%KR46=1.6E+7/TPK%MOL2MOLECRAIN +! +RETURN +END SUBROUTINE SUBSRW21 +! +END SUBROUTINE CH_SET_RATES +! +! +!======================================================================== +! +!! ############################## + MODULE MODI_CH_SET_PHOTO_RATES +!! ############################## +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +INTERFACE +SUBROUTINE CH_SET_PHOTO_RATES(PTIME,PCONC,KL,TPM,KMI,KOUT,KVERB,KVECNPT,KVECMASK,KEQ,PJVALUES) +USE MODD_CH_M9_n, ONLY: METEOTRANSTYPE +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT,KL,KEQ,KMI +INTEGER, DIMENSION(:,:), INTENT(IN) :: KVECMASK +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +TYPE(METEOTRANSTYPE), DIMENSION(KVECNPT), INTENT(IN) :: TPM +INTEGER, INTENT(IN) :: KOUT,KVERB +REAL,DIMENSION(:,:,:,:), INTENT(IN) :: PJVALUES ! Tuv coefficient +END SUBROUTINE CH_SET_PHOTO_RATES +END INTERFACE +END MODULE MODI_CH_SET_PHOTO_RATES +! +!======================================================================== +! +!! ############################################################# + SUBROUTINE CH_SET_PHOTO_RATES(PTIME,PCONC,KL,TPM,KMI,KOUT,KVERB,KVECNPT,KVECMASK,KEQ,PJVALUES) +!! ############################################################# +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +!!*** *MODD_CH_SET_PHOTO_RATES* +!! +!! PURPOSE +!! ------- +! set or calculate photolysis rates +!! +!!** METHOD +!! ------ +!! simple +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Karsten Suhre (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) +!! Modified 29/03/01: Vectorization + nesting (C. Mari) +!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) +!! +!!---------------------------------------------------------------------- +!! +!! EXTERNAL +!! -------- +!! none +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +USE MODD_CH_M9_SCHEME +USE MODD_CH_M9_n, ONLY : METEOTRANSTYPE +USE MODI_CH_ALLOCATE_TACCS +! USER DEFINED FUNCTIONS +USE MODI_KT +USE MODI_TROE +USE MODI_TROE_KA +USE MODI_TROE_KB +USE MODI_HENRY +USE MODI_TROE_EQUIL +USE MODI_HEFFA +USE MODI_HEFFB +!! +!! EXPLICIT ARGUMENTS +!! ------------------ +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT,KL,KEQ,KMI +INTEGER, DIMENSION(:,:), INTENT(IN) :: KVECMASK +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +TYPE(METEOTRANSTYPE), DIMENSION(KVECNPT), INTENT(IN) :: TPM +INTEGER, INTENT(IN) :: KOUT,KVERB +REAL,DIMENSION(:,:,:,:), INTENT(IN) :: PJVALUES ! Tuv coefficient +!! +! /BEGIN_SET_PHOTO_RATES/ +! parameter for use by subroutine JVALUES, +! contains the actual photolysis rates +REAL, DIMENSION(KVECNPT,42) :: ZRATESIO ! TUV photolysis rates at one level +REAL, DIMENSION(KVECNPT,25) :: ZRATES ! photolysis rates of ReLACS3 (vector) +INTEGER :: JITPK ! loop counter for J-Value transfer +INTEGER :: IDTI,IDTJ +INTEGER :: JITPKPLUS +INTEGER, DIMENSION(KVECNPT) :: ITABI, ITABJ +INTEGER, DIMENSION(KVECNPT) :: IMODELLEVEL +TYPE(CCSTYPE), POINTER :: TPK +! +! Normally allocated in CH_SET_RATES but who knows ? +IF (.NOT. ASSOCIATED(TACCS(KMI)%NVERB)) THEN + CALL CH_ALLOCATE_TACCS(KMI, KVECNPT) +END IF +! +! TPK is set for current model +TPK=>TACCS(KMI) +! +! calculation of photolysis rates and transfer into local variables +! +IDTI=KVECMASK(2,KL)-KVECMASK(1,KL)+1 +IDTJ=KVECMASK(4,KL)-KVECMASK(3,KL)+1 +DO JITPK = 0, KVECNPT-1 +! + JITPKPLUS=JITPK+1 + ITABI(JITPKPLUS)=JITPK-IDTI*(JITPK/IDTI)+KVECMASK(1,KL) + ITABJ(JITPKPLUS)=JITPK/IDTI-IDTJ*(JITPK/(IDTI*IDTJ))+KVECMASK(3,KL) +! +! modification for VPP optimization + ZRATESIO(JITPK+1,:) = PJVALUES(ITABI(JITPKPLUS),ITABJ(JITPKPLUS),TPK%MODELLEVEL(JITPK+1),:) +ENDDO +! +! +DO JITPK = 0, KVECNPT-1 +! +! associate TUV J-Values to CACM J-Values +! update 03/2018 new TUV version and new data availables +! + ZRATES(JITPK+1, 1) = ZRATESIO(JITPK+1,5) + ZRATES(JITPK+1, 2) = ZRATESIO(JITPK+1,2) + ZRATES(JITPK+1, 3) = ZRATESIO(JITPK+1,3) + ZRATES(JITPK+1, 4) = ZRATESIO(JITPK+1,8) + ZRATES(JITPK+1, 7) = ZRATESIO(JITPK+1,6) + ZRATES(JITPK+1, 8) = ZRATESIO(JITPK+1,7) + ZRATES(JITPK+1, 9) = ZRATESIO(JITPK+1,4) + ZRATES(JITPK+1, 10) = ZRATESIO(JITPK+1,12) + ZRATES(JITPK+1, 11) = ZRATESIO(JITPK+1,11) +! ALD2 data available for propionaldehyde + ZRATES(JITPK+1, 12) = ZRATESIO(JITPK+1,16) +! KETH use data for 2-pentanone + ZRATES(JITPK+1, 16) = ZRATESIO(JITPK+1,39) +! MGLY use data for methylglyoxal + ZRATES(JITPK+1, 19) = ZRATESIO(JITPK+1,37) + ZRATES(JITPK+1, 23) = ZRATESIO(JITPK+1,39) +! +! aqueous phase photolysis + ZRATES(JITPK+1, 24) = ZRATESIO(JITPK+1,41) + ZRATES(JITPK+1, 25) = ZRATESIO(JITPK+1,42) +! +END DO +! +! /END_SET_PHOTO_RATES/ + TPK%K001=ZRATES(:,001) + TPK%K013=ZRATES(:,007) + TPK%K014=ZRATES(:,008) + TPK%K015=ZRATES(:,003) + TPK%K016=ZRATES(:,002) + TPK%K020=ZRATES(:,004) + TPK%K036=ZRATES(:,009) + TPK%K044=ZRATES(:,011) + TPK%K045=ZRATES(:,010) + TPK%K059=ZRATES(:,012) + TPK%K063=ZRATES(:,023) + TPK%K071=ZRATES(:,016) + TPK%K276=ZRATES(:,019) + TPK%K308=ZRATES(:,012) + TPK%K314=ZRATES(:,012) + TPK%K328=ZRATES(:,012) + TPK%K329=ZRATES(:,012) + TPK%K330=ZRATES(:,012) + TPK%K339=ZRATES(:,019) +IF (TPK%LUSECHAQ) THEN + TPK%KC1=ZRATES(:,024) + TPK%KC13=ZRATES(:,025)*2.2e+1/(2.2e+1+10.**(-TPK%PHC)) + TPK%KR1=ZRATES(:,024) + TPK%KR13=ZRATES(:,025)*2.2e+1/(2.2e+1+10.**(-TPK%PHR)) +END IF +TPK%NOUT = KOUT +TPK%NVERB = KVERB +RETURN +END SUBROUTINE CH_SET_PHOTO_RATES +! +! +!======================================================================== +! +!! ######################## + MODULE MODI_CH_GET_RATES +!! ######################## +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +INTERFACE +SUBROUTINE CH_GET_RATES(PRATE,KMI,KVECNPT,KREAC) +IMPLICIT NONE +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KREAC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KREAC) :: PRATE +INTEGER, INTENT(IN) :: KMI +END SUBROUTINE CH_GET_RATES +END INTERFACE +END MODULE MODI_CH_GET_RATES +! +!======================================================================== +! +!! ############################################ + SUBROUTINE CH_GET_RATES(PRATE,KMI,KVECNPT,KREAC) +!! ############################################ +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +!! +!!*** *MODD_CH_GETRATES* +!! +!! PURPOSE +!! ------- +! retrieve reaction rates from TPK in an array +!! +!!** METHOD +!! ------ +!! simple +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Karsten Suhre (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) +!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) +!! +!!---------------------------------------------------------------------- +!! +!! EXTERNAL +!! -------- +!! none +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +USE MODD_CH_M9_SCHEME +!! +!! EXPLICIT ARGUMENTS +!! ------------------ +IMPLICIT NONE +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KREAC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KREAC) :: PRATE +INTEGER, INTENT(IN) :: KMI +!! +!! LOCAL VARIABLES +!! --------------- +TYPE(CCSTYPE), POINTER :: TPK +!!---------------------------------------------------------------------- +!! +!! EXECUTABLE STATEMENTS +!! --------------------- +TPK=>TACCS(KMI) +!! +PRATE(:,1) = TPK%K001(:) +PRATE(:,2) = TPK%K002(:) +PRATE(:,3) = TPK%K003(:) +PRATE(:,4) = TPK%K004(:) +PRATE(:,5) = TPK%K005(:) +PRATE(:,6) = TPK%K006(:) +PRATE(:,7) = TPK%K007(:) +PRATE(:,8) = TPK%K008(:) +PRATE(:,9) = TPK%K009(:) +PRATE(:,10) = TPK%K010(:) +PRATE(:,11) = TPK%K011(:) +PRATE(:,12) = TPK%K012(:) +PRATE(:,13) = TPK%K013(:) +PRATE(:,14) = TPK%K014(:) +PRATE(:,15) = TPK%K015(:) +PRATE(:,16) = TPK%K016(:) +PRATE(:,17) = TPK%K017(:) +PRATE(:,18) = TPK%K018A(:) +PRATE(:,19) = TPK%K018B(:) +PRATE(:,20) = TPK%K019(:) +PRATE(:,21) = TPK%K020(:) +PRATE(:,22) = TPK%K021(:) +PRATE(:,23) = TPK%K022(:) +PRATE(:,24) = TPK%K023(:) +PRATE(:,25) = TPK%K024(:) +PRATE(:,26) = TPK%K025(:) +PRATE(:,27) = TPK%K026(:) +PRATE(:,28) = TPK%K027(:) +PRATE(:,29) = TPK%K028(:) +PRATE(:,30) = TPK%K029(:) +PRATE(:,31) = TPK%K030(:) +PRATE(:,32) = TPK%K031(:) +PRATE(:,33) = TPK%K032(:) +PRATE(:,34) = TPK%K033(:) +PRATE(:,35) = TPK%K034(:) +PRATE(:,36) = TPK%K035(:) +PRATE(:,37) = TPK%K036(:) +PRATE(:,38) = TPK%K037(:) +PRATE(:,39) = TPK%K038(:) +PRATE(:,40) = TPK%K039(:) +PRATE(:,41) = TPK%K040(:) +PRATE(:,42) = TPK%K041(:) +PRATE(:,43) = TPK%K042(:) +PRATE(:,44) = TPK%K043(:) +PRATE(:,45) = TPK%K044(:) +PRATE(:,46) = TPK%K045(:) +PRATE(:,47) = TPK%K046(:) +PRATE(:,48) = TPK%K047(:) +PRATE(:,49) = TPK%K048(:) +PRATE(:,50) = TPK%K049(:) +PRATE(:,51) = TPK%K050(:) +PRATE(:,52) = TPK%K051(:) +PRATE(:,53) = TPK%K052(:) +PRATE(:,54) = TPK%K053(:) +PRATE(:,55) = TPK%K054(:) +PRATE(:,56) = TPK%K055(:) +PRATE(:,57) = TPK%K056(:) +PRATE(:,58) = TPK%K057(:) +PRATE(:,59) = TPK%K058(:) +PRATE(:,60) = TPK%K059(:) +PRATE(:,61) = TPK%K060(:) +PRATE(:,62) = TPK%K061(:) +PRATE(:,63) = TPK%K062(:) +PRATE(:,64) = TPK%K063(:) +PRATE(:,65) = TPK%K064(:) +PRATE(:,66) = TPK%K065(:) +PRATE(:,67) = TPK%K066(:) +PRATE(:,68) = TPK%K067(:) +PRATE(:,69) = TPK%K068(:) +PRATE(:,70) = TPK%K069(:) +PRATE(:,71) = TPK%K070(:) +PRATE(:,72) = TPK%K071(:) +PRATE(:,73) = TPK%K072(:) +PRATE(:,74) = TPK%K073(:) +PRATE(:,75) = TPK%K074(:) +PRATE(:,76) = TPK%K075(:) +PRATE(:,77) = TPK%K076(:) +PRATE(:,78) = TPK%K077(:) +PRATE(:,79) = TPK%K078(:) +PRATE(:,80) = TPK%K079(:) +PRATE(:,81) = TPK%K080(:) +PRATE(:,82) = TPK%K081(:) +PRATE(:,83) = TPK%K082(:) +PRATE(:,84) = TPK%K083(:) +PRATE(:,85) = TPK%K084(:) +PRATE(:,86) = TPK%K085(:) +PRATE(:,87) = TPK%K086(:) +PRATE(:,88) = TPK%K087(:) +PRATE(:,89) = TPK%K088(:) +PRATE(:,90) = TPK%K089(:) +PRATE(:,91) = TPK%K090(:) +PRATE(:,92) = TPK%K091(:) +PRATE(:,93) = TPK%K092(:) +PRATE(:,94) = TPK%K093(:) +PRATE(:,95) = TPK%K094(:) +PRATE(:,96) = TPK%K095(:) +PRATE(:,97) = TPK%K096(:) +PRATE(:,98) = TPK%K097(:) +PRATE(:,99) = TPK%K098(:) +PRATE(:,100) = TPK%K099(:) +PRATE(:,101) = TPK%K100(:) +PRATE(:,102) = TPK%K101(:) +PRATE(:,103) = TPK%K102(:) +PRATE(:,104) = TPK%K103(:) +PRATE(:,105) = TPK%K104(:) +PRATE(:,106) = TPK%K105(:) +PRATE(:,107) = TPK%K106(:) +PRATE(:,108) = TPK%K107(:) +PRATE(:,109) = TPK%K108(:) +PRATE(:,110) = TPK%K109(:) +PRATE(:,111) = TPK%K110(:) +PRATE(:,112) = TPK%K111(:) +PRATE(:,113) = TPK%K112(:) +PRATE(:,114) = TPK%K113(:) +PRATE(:,115) = TPK%K114(:) +PRATE(:,116) = TPK%K115(:) +PRATE(:,117) = TPK%K116(:) +PRATE(:,118) = TPK%K117(:) +PRATE(:,119) = TPK%K118(:) +PRATE(:,120) = TPK%K119(:) +PRATE(:,121) = TPK%K120(:) +PRATE(:,122) = TPK%K121(:) +PRATE(:,123) = TPK%K122(:) +PRATE(:,124) = TPK%K123(:) +PRATE(:,125) = TPK%K124(:) +PRATE(:,126) = TPK%K125(:) +PRATE(:,127) = TPK%K126(:) +PRATE(:,128) = TPK%K127(:) +PRATE(:,129) = TPK%K128(:) +PRATE(:,130) = TPK%K129(:) +PRATE(:,131) = TPK%K130(:) +PRATE(:,132) = TPK%K131(:) +PRATE(:,133) = TPK%K132(:) +PRATE(:,134) = TPK%K133(:) +PRATE(:,135) = TPK%K134(:) +PRATE(:,136) = TPK%K135(:) +PRATE(:,137) = TPK%K136(:) +PRATE(:,138) = TPK%K137(:) +PRATE(:,139) = TPK%K138(:) +PRATE(:,140) = TPK%K139(:) +PRATE(:,141) = TPK%K140(:) +PRATE(:,142) = TPK%K141(:) +PRATE(:,143) = TPK%K142(:) +PRATE(:,144) = TPK%K143(:) +PRATE(:,145) = TPK%K144(:) +PRATE(:,146) = TPK%K145(:) +PRATE(:,147) = TPK%K146(:) +PRATE(:,148) = TPK%K147(:) +PRATE(:,149) = TPK%K148(:) +PRATE(:,150) = TPK%K149(:) +PRATE(:,151) = TPK%K150(:) +PRATE(:,152) = TPK%K151(:) +PRATE(:,153) = TPK%K152(:) +PRATE(:,154) = TPK%K153(:) +PRATE(:,155) = TPK%K154(:) +PRATE(:,156) = TPK%K155(:) +PRATE(:,157) = TPK%K156(:) +PRATE(:,158) = TPK%K157(:) +PRATE(:,159) = TPK%K158(:) +PRATE(:,160) = TPK%K159(:) +PRATE(:,161) = TPK%K160(:) +PRATE(:,162) = TPK%K161(:) +PRATE(:,163) = TPK%K162(:) +PRATE(:,164) = TPK%K163(:) +PRATE(:,165) = TPK%K164(:) +PRATE(:,166) = TPK%K165(:) +PRATE(:,167) = TPK%K166(:) +PRATE(:,168) = TPK%K167(:) +PRATE(:,169) = TPK%K168(:) +PRATE(:,170) = TPK%K169(:) +PRATE(:,171) = TPK%K170(:) +PRATE(:,172) = TPK%K171(:) +PRATE(:,173) = TPK%K172(:) +PRATE(:,174) = TPK%K173(:) +PRATE(:,175) = TPK%K174(:) +PRATE(:,176) = TPK%K175(:) +PRATE(:,177) = TPK%K176(:) +PRATE(:,178) = TPK%K177(:) +PRATE(:,179) = TPK%K178(:) +PRATE(:,180) = TPK%K179(:) +PRATE(:,181) = TPK%K180(:) +PRATE(:,182) = TPK%K181(:) +PRATE(:,183) = TPK%K182(:) +PRATE(:,184) = TPK%K183(:) +PRATE(:,185) = TPK%K184(:) +PRATE(:,186) = TPK%K185(:) +PRATE(:,187) = TPK%K186(:) +PRATE(:,188) = TPK%K187(:) +PRATE(:,189) = TPK%K188(:) +PRATE(:,190) = TPK%K189(:) +PRATE(:,191) = TPK%K190(:) +PRATE(:,192) = TPK%K191(:) +PRATE(:,193) = TPK%K192(:) +PRATE(:,194) = TPK%K193(:) +PRATE(:,195) = TPK%K194(:) +PRATE(:,196) = TPK%K195(:) +PRATE(:,197) = TPK%K196(:) +PRATE(:,198) = TPK%K197(:) +PRATE(:,199) = TPK%K198(:) +PRATE(:,200) = TPK%K199(:) +PRATE(:,201) = TPK%K200(:) +PRATE(:,202) = TPK%K201(:) +PRATE(:,203) = TPK%K202(:) +PRATE(:,204) = TPK%K203(:) +PRATE(:,205) = TPK%K204(:) +PRATE(:,206) = TPK%K205(:) +PRATE(:,207) = TPK%K206(:) +PRATE(:,208) = TPK%K207(:) +PRATE(:,209) = TPK%K208(:) +PRATE(:,210) = TPK%K209(:) +PRATE(:,211) = TPK%K210(:) +PRATE(:,212) = TPK%K211(:) +PRATE(:,213) = TPK%K212(:) +PRATE(:,214) = TPK%K213(:) +PRATE(:,215) = TPK%K214(:) +PRATE(:,216) = TPK%K215(:) +PRATE(:,217) = TPK%K216(:) +PRATE(:,218) = TPK%K217(:) +PRATE(:,219) = TPK%K218(:) +PRATE(:,220) = TPK%K219(:) +PRATE(:,221) = TPK%K220(:) +PRATE(:,222) = TPK%K221(:) +PRATE(:,223) = TPK%K222(:) +PRATE(:,224) = TPK%K223(:) +PRATE(:,225) = TPK%K224(:) +PRATE(:,226) = TPK%K225(:) +PRATE(:,227) = TPK%K226(:) +PRATE(:,228) = TPK%K227(:) +PRATE(:,229) = TPK%K228(:) +PRATE(:,230) = TPK%K229(:) +PRATE(:,231) = TPK%K230(:) +PRATE(:,232) = TPK%K231(:) +PRATE(:,233) = TPK%K232(:) +PRATE(:,234) = TPK%K233(:) +PRATE(:,235) = TPK%K234(:) +PRATE(:,236) = TPK%K235(:) +PRATE(:,237) = TPK%K236(:) +PRATE(:,238) = TPK%K237(:) +PRATE(:,239) = TPK%K238(:) +PRATE(:,240) = TPK%K239(:) +PRATE(:,241) = TPK%K240(:) +PRATE(:,242) = TPK%K241(:) +PRATE(:,243) = TPK%K242(:) +PRATE(:,244) = TPK%K243(:) +PRATE(:,245) = TPK%K244(:) +PRATE(:,246) = TPK%K245(:) +PRATE(:,247) = TPK%K246(:) +PRATE(:,248) = TPK%K247(:) +PRATE(:,249) = TPK%K248(:) +PRATE(:,250) = TPK%K249(:) +PRATE(:,251) = TPK%K250(:) +PRATE(:,252) = TPK%K251(:) +PRATE(:,253) = TPK%K252(:) +PRATE(:,254) = TPK%K253(:) +PRATE(:,255) = TPK%K254(:) +PRATE(:,256) = TPK%K255(:) +PRATE(:,257) = TPK%K256(:) +PRATE(:,258) = TPK%K257(:) +PRATE(:,259) = TPK%K258(:) +PRATE(:,260) = TPK%K259(:) +PRATE(:,261) = TPK%K260(:) +PRATE(:,262) = TPK%K261(:) +PRATE(:,263) = TPK%K262(:) +PRATE(:,264) = TPK%K263(:) +PRATE(:,265) = TPK%K264(:) +PRATE(:,266) = TPK%K265(:) +PRATE(:,267) = TPK%K266(:) +PRATE(:,268) = TPK%K267(:) +PRATE(:,269) = TPK%K268(:) +PRATE(:,270) = TPK%K269(:) +PRATE(:,271) = TPK%K270(:) +PRATE(:,272) = TPK%K271(:) +PRATE(:,273) = TPK%K272(:) +PRATE(:,274) = TPK%K273(:) +PRATE(:,275) = TPK%K274(:) +PRATE(:,276) = TPK%K275(:) +PRATE(:,277) = TPK%K276(:) +PRATE(:,278) = TPK%K277(:) +PRATE(:,279) = TPK%K278(:) +PRATE(:,280) = TPK%K279(:) +PRATE(:,281) = TPK%K280(:) +PRATE(:,282) = TPK%K281(:) +PRATE(:,283) = TPK%K282(:) +PRATE(:,284) = TPK%K283(:) +PRATE(:,285) = TPK%K284(:) +PRATE(:,286) = TPK%K285(:) +PRATE(:,287) = TPK%K286(:) +PRATE(:,288) = TPK%K287(:) +PRATE(:,289) = TPK%K288(:) +PRATE(:,290) = TPK%K289(:) +PRATE(:,291) = TPK%K290(:) +PRATE(:,292) = TPK%K291(:) +PRATE(:,293) = TPK%K292(:) +PRATE(:,294) = TPK%K293(:) +PRATE(:,295) = TPK%K294(:) +PRATE(:,296) = TPK%K295(:) +PRATE(:,297) = TPK%K296(:) +PRATE(:,298) = TPK%K297(:) +PRATE(:,299) = TPK%K298(:) +PRATE(:,300) = TPK%K299(:) +PRATE(:,301) = TPK%K300(:) +PRATE(:,302) = TPK%K301(:) +PRATE(:,303) = TPK%K302(:) +PRATE(:,304) = TPK%K303(:) +PRATE(:,305) = TPK%K304(:) +PRATE(:,306) = TPK%K305(:) +PRATE(:,307) = TPK%K306(:) +PRATE(:,308) = TPK%K307(:) +PRATE(:,309) = TPK%K308(:) +PRATE(:,310) = TPK%K309(:) +PRATE(:,311) = TPK%K310(:) +PRATE(:,312) = TPK%K311(:) +PRATE(:,313) = TPK%K312(:) +PRATE(:,314) = TPK%K313(:) +PRATE(:,315) = TPK%K314(:) +PRATE(:,316) = TPK%K315(:) +PRATE(:,317) = TPK%K316(:) +PRATE(:,318) = TPK%K317(:) +PRATE(:,319) = TPK%K318(:) +PRATE(:,320) = TPK%K319(:) +PRATE(:,321) = TPK%K320(:) +PRATE(:,322) = TPK%K321(:) +PRATE(:,323) = TPK%K322(:) +PRATE(:,324) = TPK%K323(:) +PRATE(:,325) = TPK%K324(:) +PRATE(:,326) = TPK%K325(:) +PRATE(:,327) = TPK%K326(:) +PRATE(:,328) = TPK%K327(:) +PRATE(:,329) = TPK%K328(:) +PRATE(:,330) = TPK%K329(:) +PRATE(:,331) = TPK%K330(:) +PRATE(:,332) = TPK%K331(:) +PRATE(:,333) = TPK%K332(:) +PRATE(:,334) = TPK%K333(:) +PRATE(:,335) = TPK%K334(:) +PRATE(:,336) = TPK%K335(:) +PRATE(:,337) = TPK%K337(:) +PRATE(:,338) = TPK%K338(:) +PRATE(:,339) = TPK%K339(:) +PRATE(:,340) = TPK%K340(:) +PRATE(:,341) = TPK%K341(:) +PRATE(:,342) = TPK%K342(:) +PRATE(:,343) = TPK%K343(:) +PRATE(:,344) = TPK%K344(:) +PRATE(:,345) = TPK%K345(:) +PRATE(:,346) = TPK%K346(:) +PRATE(:,347) = TPK%K347(:) +PRATE(:,348) = TPK%K348(:) +PRATE(:,349) = TPK%K349(:) +PRATE(:,350) = TPK%K350(:) +PRATE(:,351) = TPK%K351(:) +PRATE(:,352) = TPK%K352(:) +PRATE(:,353) = TPK%K353(:) +PRATE(:,354) = TPK%K354(:) +PRATE(:,355) = TPK%K355(:) +PRATE(:,356) = TPK%K356(:) +PRATE(:,357) = TPK%K357(:) +PRATE(:,358) = TPK%K358(:) +PRATE(:,359) = TPK%K359(:) +PRATE(:,360) = TPK%K360(:) +PRATE(:,361) = TPK%K361(:) +PRATE(:,362) = TPK%K362(:) +PRATE(:,363) = TPK%K363(:) +PRATE(:,364) = TPK%K364(:) +PRATE(:,365) = TPK%K365(:) +IF (TPK%LUSECHAQ) THEN + PRATE(:,366) = TPK%KTC1(:) + PRATE(:,367) = TPK%KTC2(:) + PRATE(:,368) = TPK%KTC3(:) + PRATE(:,369) = TPK%KTC4(:) + PRATE(:,370) = TPK%KTC5(:) + PRATE(:,371) = TPK%KTC6(:) + PRATE(:,372) = TPK%KTC7(:) + PRATE(:,373) = TPK%KTC8(:) + PRATE(:,374) = TPK%KTC9(:) + PRATE(:,375) = TPK%KTC10(:) + PRATE(:,376) = TPK%KTC11(:) + PRATE(:,377) = TPK%KTC12(:) + PRATE(:,378) = TPK%KTC13(:) + PRATE(:,379) = TPK%KTC14(:) + PRATE(:,380) = TPK%KTC15(:) + PRATE(:,381) = TPK%KTC16(:) + PRATE(:,382) = TPK%KTC17(:) + PRATE(:,383) = TPK%KTC18(:) + PRATE(:,384) = TPK%KTC19(:) + PRATE(:,385) = TPK%KTC20(:) + PRATE(:,386) = TPK%KTC21(:) + PRATE(:,387) = TPK%KTC22(:) + PRATE(:,388) = TPK%KTC23(:) + PRATE(:,389) = TPK%KTC24(:) + PRATE(:,390) = TPK%KTC25(:) + PRATE(:,391) = TPK%KTC26(:) + PRATE(:,392) = TPK%KTC27(:) + PRATE(:,393) = TPK%KTC28(:) + PRATE(:,394) = TPK%KTC29(:) + PRATE(:,395) = TPK%KTC30(:) + PRATE(:,396) = TPK%KTC31(:) + PRATE(:,397) = TPK%KTC32(:) + PRATE(:,398) = TPK%KTC33(:) + PRATE(:,399) = TPK%KTC34(:) + PRATE(:,400) = TPK%KTC35(:) + PRATE(:,401) = TPK%KTC36(:) + PRATE(:,402) = TPK%KTC37(:) + PRATE(:,403) = TPK%KTC38(:) + PRATE(:,404) = TPK%KTC39(:) + PRATE(:,405) = TPK%KTC40(:) + PRATE(:,406) = TPK%KTC41(:) + PRATE(:,407) = TPK%KTC42(:) + PRATE(:,408) = TPK%KTC43(:) + PRATE(:,409) = TPK%KTC44(:) + PRATE(:,410) = TPK%KTC45(:) + PRATE(:,411) = TPK%KTC46(:) + PRATE(:,412) = TPK%KTC47(:) + PRATE(:,413) = TPK%KTC48(:) + PRATE(:,414) = TPK%KTC49(:) + PRATE(:,415) = TPK%KTC50(:) + PRATE(:,416) = TPK%KTC51(:) + PRATE(:,417) = TPK%KTC52(:) + PRATE(:,418) = TPK%KTC53(:) + PRATE(:,419) = TPK%KTC54(:) + PRATE(:,420) = TPK%KTC55(:) + PRATE(:,421) = TPK%KTC56(:) + PRATE(:,422) = TPK%KTC57(:) + PRATE(:,423) = TPK%KTC58(:) + PRATE(:,424) = TPK%KTC59(:) + PRATE(:,425) = TPK%KTC60(:) + PRATE(:,426) = TPK%KTC61(:) + PRATE(:,427) = TPK%KTC62(:) + PRATE(:,428) = TPK%KTR1(:) + PRATE(:,429) = TPK%KTR2(:) + PRATE(:,430) = TPK%KTR3(:) + PRATE(:,431) = TPK%KTR4(:) + PRATE(:,432) = TPK%KTR5(:) + PRATE(:,433) = TPK%KTR6(:) + PRATE(:,434) = TPK%KTR7(:) + PRATE(:,435) = TPK%KTR8(:) + PRATE(:,436) = TPK%KTR9(:) + PRATE(:,437) = TPK%KTR10(:) + PRATE(:,438) = TPK%KTR11(:) + PRATE(:,439) = TPK%KTR12(:) + PRATE(:,440) = TPK%KTR13(:) + PRATE(:,441) = TPK%KTR14(:) + PRATE(:,442) = TPK%KTR15(:) + PRATE(:,443) = TPK%KTR16(:) + PRATE(:,444) = TPK%KTR17(:) + PRATE(:,445) = TPK%KTR18(:) + PRATE(:,446) = TPK%KTR19(:) + PRATE(:,447) = TPK%KTR20(:) + PRATE(:,448) = TPK%KTR21(:) + PRATE(:,449) = TPK%KTR22(:) + PRATE(:,450) = TPK%KTR23(:) + PRATE(:,451) = TPK%KTR24(:) + PRATE(:,452) = TPK%KTR25(:) + PRATE(:,453) = TPK%KTR26(:) + PRATE(:,454) = TPK%KTR27(:) + PRATE(:,455) = TPK%KTR28(:) + PRATE(:,456) = TPK%KTR29(:) + PRATE(:,457) = TPK%KTR30(:) + PRATE(:,458) = TPK%KTR31(:) + PRATE(:,459) = TPK%KTR32(:) + PRATE(:,460) = TPK%KTR33(:) + PRATE(:,461) = TPK%KTR34(:) + PRATE(:,462) = TPK%KTR35(:) + PRATE(:,463) = TPK%KTR36(:) + PRATE(:,464) = TPK%KTR37(:) + PRATE(:,465) = TPK%KTR38(:) + PRATE(:,466) = TPK%KTR39(:) + PRATE(:,467) = TPK%KTR40(:) + PRATE(:,468) = TPK%KTR41(:) + PRATE(:,469) = TPK%KTR42(:) + PRATE(:,470) = TPK%KTR43(:) + PRATE(:,471) = TPK%KTR44(:) + PRATE(:,472) = TPK%KTR45(:) + PRATE(:,473) = TPK%KTR46(:) + PRATE(:,474) = TPK%KTR47(:) + PRATE(:,475) = TPK%KTR48(:) + PRATE(:,476) = TPK%KTR49(:) + PRATE(:,477) = TPK%KTR50(:) + PRATE(:,478) = TPK%KTR51(:) + PRATE(:,479) = TPK%KTR52(:) + PRATE(:,480) = TPK%KTR53(:) + PRATE(:,481) = TPK%KTR54(:) + PRATE(:,482) = TPK%KTR55(:) + PRATE(:,483) = TPK%KTR56(:) + PRATE(:,484) = TPK%KTR57(:) + PRATE(:,485) = TPK%KTR58(:) + PRATE(:,486) = TPK%KTR59(:) + PRATE(:,487) = TPK%KTR60(:) + PRATE(:,488) = TPK%KTR61(:) + PRATE(:,489) = TPK%KTR62(:) + PRATE(:,490) = TPK%KC1(:) + PRATE(:,491) = TPK%KC2(:) + PRATE(:,492) = TPK%KC3(:) + PRATE(:,493) = TPK%KC4(:) + PRATE(:,494) = TPK%KC5(:) + PRATE(:,495) = TPK%KC6(:) + PRATE(:,496) = TPK%KC7(:) + PRATE(:,497) = TPK%KC8(:) + PRATE(:,498) = TPK%KC9(:) + PRATE(:,499) = TPK%KC10(:) + PRATE(:,500) = TPK%KC11(:) + PRATE(:,501) = TPK%KC12(:) + PRATE(:,502) = TPK%KC13(:) + PRATE(:,503) = TPK%KC14(:) + PRATE(:,504) = TPK%KC15(:) + PRATE(:,505) = TPK%KC16(:) + PRATE(:,506) = TPK%KC17(:) + PRATE(:,507) = TPK%KC18(:) + PRATE(:,508) = TPK%KC19(:) + PRATE(:,509) = TPK%KC20(:) + PRATE(:,510) = TPK%KC21(:) + PRATE(:,511) = TPK%KC22(:) + PRATE(:,512) = TPK%KC23(:) + PRATE(:,513) = TPK%KC24(:) + PRATE(:,514) = TPK%KC25(:) + PRATE(:,515) = TPK%KC26(:) + PRATE(:,516) = TPK%KC27(:) + PRATE(:,517) = TPK%KC28(:) + PRATE(:,518) = TPK%KC29(:) + PRATE(:,519) = TPK%KC30(:) + PRATE(:,520) = TPK%KC31(:) + PRATE(:,521) = TPK%KC32(:) + PRATE(:,522) = TPK%KC33(:) + PRATE(:,523) = TPK%KC34(:) + PRATE(:,524) = TPK%KC35(:) + PRATE(:,525) = TPK%KC36(:) + PRATE(:,526) = TPK%KC37(:) + PRATE(:,527) = TPK%KC38(:) + PRATE(:,528) = TPK%KC39(:) + PRATE(:,529) = TPK%KC40(:) + PRATE(:,530) = TPK%KC41(:) + PRATE(:,531) = TPK%KC42(:) + PRATE(:,532) = TPK%KC43(:) + PRATE(:,533) = TPK%KC44(:) + PRATE(:,534) = TPK%KC45(:) + PRATE(:,535) = TPK%KC46(:) + PRATE(:,536) = TPK%KR1(:) + PRATE(:,537) = TPK%KR2(:) + PRATE(:,538) = TPK%KR3(:) + PRATE(:,539) = TPK%KR4(:) + PRATE(:,540) = TPK%KR5(:) + PRATE(:,541) = TPK%KR6(:) + PRATE(:,542) = TPK%KR7(:) + PRATE(:,543) = TPK%KR8(:) + PRATE(:,544) = TPK%KR9(:) + PRATE(:,545) = TPK%KR10(:) + PRATE(:,546) = TPK%KR11(:) + PRATE(:,547) = TPK%KR12(:) + PRATE(:,548) = TPK%KR13(:) + PRATE(:,549) = TPK%KR14(:) + PRATE(:,550) = TPK%KR15(:) + PRATE(:,551) = TPK%KR16(:) + PRATE(:,552) = TPK%KR17(:) + PRATE(:,553) = TPK%KR18(:) + PRATE(:,554) = TPK%KR19(:) + PRATE(:,555) = TPK%KR20(:) + PRATE(:,556) = TPK%KR21(:) + PRATE(:,557) = TPK%KR22(:) + PRATE(:,558) = TPK%KR23(:) + PRATE(:,559) = TPK%KR24(:) + PRATE(:,560) = TPK%KR25(:) + PRATE(:,561) = TPK%KR26(:) + PRATE(:,562) = TPK%KR27(:) + PRATE(:,563) = TPK%KR28(:) + PRATE(:,564) = TPK%KR29(:) + PRATE(:,565) = TPK%KR30(:) + PRATE(:,566) = TPK%KR31(:) + PRATE(:,567) = TPK%KR32(:) + PRATE(:,568) = TPK%KR33(:) + PRATE(:,569) = TPK%KR34(:) + PRATE(:,570) = TPK%KR35(:) + PRATE(:,571) = TPK%KR36(:) + PRATE(:,572) = TPK%KR37(:) + PRATE(:,573) = TPK%KR38(:) + PRATE(:,574) = TPK%KR39(:) + PRATE(:,575) = TPK%KR40(:) + PRATE(:,576) = TPK%KR41(:) + PRATE(:,577) = TPK%KR42(:) + PRATE(:,578) = TPK%KR43(:) + PRATE(:,579) = TPK%KR44(:) + PRATE(:,580) = TPK%KR45(:) + PRATE(:,581) = TPK%KR46(:) +END IF +RETURN +END SUBROUTINE CH_GET_RATES +! +! +!======================================================================== +! +!! #################### + MODULE MODI_CH_TERMS +!! #################### +INTERFACE +SUBROUTINE CH_TERMS(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ, KREAC +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KREAC):: PTERMS +INTEGER, INTENT(IN) :: KMI +END SUBROUTINE CH_TERMS +END INTERFACE +END MODULE MODI_CH_TERMS +! +!======================================================================== +! +!! ############################################################# + SUBROUTINE CH_TERMS(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) +!! ############################################################# +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +!! +!!*** *MODD_CH_TERMS* +!! +!! PURPOSE +!! ------- +! calculation of the contribution of each term in each reaction +!! +!!** METHOD +!! ------ +!! The contribution of reaction i to the evolution of species j +!! is returned in PTERMS. +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Karsten Suhre (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) +!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) +!! +!!---------------------------------------------------------------------- +!! +!! EXTERNAL +!! -------- +!! none +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +USE MODD_CH_M9_SCHEME +USE MODI_CH_TERMS_AQ +USE MODI_CH_TERMS_GAZ +!! +!! EXPLICIT ARGUMENTS +!! ------------------ +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ, KREAC +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KREAC):: PTERMS +INTEGER, INTENT(IN) :: KMI +!! +TYPE(CCSTYPE), POINTER :: TPK +TPK=>TACCS(KMI) +IF (TPK%LUSECHAQ) THEN + CALL CH_TERMS_AQ(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) +ELSE + CALL CH_TERMS_GAZ(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) +END IF +END SUBROUTINE CH_TERMS +! +!======================================================================== +! +!! #################### + MODULE MODI_CH_TERMS_GAZ +!! #################### +INTERFACE +SUBROUTINE CH_TERMS_GAZ(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ, KREAC +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KREAC):: PTERMS +INTEGER, INTENT(IN) :: KMI +END SUBROUTINE CH_TERMS_GAZ +END INTERFACE +END MODULE MODI_CH_TERMS_GAZ +! +!======================================================================== +! +!! +!! ###################### + SUBROUTINE CH_TERMS_GAZ(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) +!! ###################### +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +!! +!!*** *MODD_CH_TERMS* +!! +!! PURPOSE +!! ------- +! calculation of the contribution of each term in each reaction +!! +!!** METHOD +!! ------ +!! The contribution of reaction i to the evolution of species j +!! is returned in PTERMS. +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Karsten Suhre (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) +!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) +!! +!!---------------------------------------------------------------------- +!! +!! EXTERNAL +!! -------- +!! none +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +USE MODD_CH_M9_SCHEME +!! +!! EXPLICIT ARGUMENTS +!! ------------------ +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ, KREAC +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KREAC):: PTERMS +INTEGER, INTENT(IN) :: KMI +!! +TYPE(CCSTYPE), POINTER :: TPK +TPK=>TACCS(KMI) +! /BEGIN_CODE/ +TPK%OSD = ( +TPK%K016*PCONC(:,JP_O3) ) / & + ( +TPK%K017*TPK%H2O+TPK%K018A*TPK%N2(:)+TPK%K018B*TPK%O2(:) ) +! +TPK%O = ( +TPK%K001*PCONC(:,JP_NO2)+TPK%K014*PCONC(:,JP_NO3)+TPK%& +&K015*PCONC(:,JP_O3)+TPK%K018A*TPK%OSD*TPK%N2(:)+TPK%K018B*TPK%OSD*TPK%O2(:) ) / & +( +TPK%K002*TPK%O2(:)+TPK%K003*PCONC(:,JP_NO2)+TPK%K004*PCONC(:,JP_NO2)+TPK%K034*& +PCONC(:,JP_O3)+TPK%K038*PCONC(:,JP_NO)+TPK%K052*PCONC(:,JP_ETHE)+& +&TPK%K057*PCONC(:,JP_OLEL)+TPK%K067*PCONC(:,JP_ISOP)+TPK%K077*PCONC(:,& +&JP_OLEH)+TPK%K087*PCONC(:,JP_BIOL)+TPK%K091*PCONC(:,JP_BIOH)+TPK%K283& +&*PCONC(:,JP_MVK)+TPK%K284*PCONC(:,JP_MCR) ) +! +TPK%RO225 = ( TPK%K085*PCONC(:,JP_BIOL)*PCONC(:,JP_NO3) ) / & +( +TPK%K201*PCONC(:,JP_NO)+TPK%K202*PCONC(:,JP_RO2T)+TPK%K203*PCONC(:,JP_HO2)) +! +TPK%RO228 = ( TPK%K089*PCONC(:,JP_BIOH)*PCONC(:,JP_NO3) ) / & +( +TPK%K210*PCONC(:,JP_NO)+TPK%K211*PCONC(:,JP_RO2T)+TPK%K212*PCONC(:,JP_HO2)) + +! +TPK%RO253 = ( +0.41*TPK%K282*PCONC(:,JP_MCR)*PCONC(:,JP_O3) ) / & +( +TPK%K297*PCONC(:,JP_NO)+TPK%K298*PCONC(:,JP_HO2)+TPK%K299*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO254 = ( +TPK%K140*PCONC(:,JP_PAN6)+TPK%K297*TPK%RO253*& +&PCONC(:,JP_NO)+TPK%K298*TPK%RO253*PCONC(:,JP_HO2)+TPK%K299*& +&TPK%RO253*PCONC(:,JP_RO2T) ) / & +( +TPK%K131*PCONC(:,JP_NO2)+TPK%K300*PCONC(:,JP_NO)+TPK%K301*PCONC(& +&:,JP_HO2)+TPK%K302*PCONC(:,JP_RO2T) ) +! +TPK%RO213 = ( +0.271*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3) ) / & +( +TPK%K162*PCONC(:,JP_NO)+TPK%K163*PCONC(:,JP_RO2T)+TPK%K164*PCONC& +&(:,JP_HO2) ) +! +TPK%RO239 = ( +TPK%K137*PCONC(:,JP_PAN3)+TPK%K162*TPK%RO213*& +&PCONC(:,JP_NO)+TPK%K163*TPK%RO213*PCONC(:,JP_RO2T)+TPK%K164*TPK%RO213*PCONC(:,JP_HO2) ) / & +( +TPK%K128*PCONC(:,JP_NO2)+TPK%K165*PCONC(:,JP_NO)+TPK%K166*PCONC(& +&:,JP_HO2)+TPK%K167*PCONC(:,JP_RO2T) ) +! +TPK%RO248 = ( +TPK%K141*PCONC(:,JP_PAN4)+TPK%K274*PCONC(:,JP_MGLY)*P& +&CONC(:,JP_OH)+TPK%K278*PCONC(:,JP_MGLY)*PCONC(:,JP_NO3) ) / & +( +TPK%K129*PCONC(:,JP_NO2)+TPK%K277*PCONC(:,JP_NO)+TPK%K279*PCONC(& +&:,JP_HO2)+TPK%K280*PCONC(:,JP_RO2T) ) +! +TPK%RO249 = ( +TPK%K272*PCONC(:,JP_MVK)*PCONC(:,JP_OH) ) / & +( +TPK%K285*PCONC(:,JP_NO)+TPK%K286*PCONC(:,JP_RO2T)+TPK%K287*PCONC& +&(:,JP_HO2) ) +! +TPK%RO250 = ( +0.3750353*TPK%K139*PCONC(:,JP_APAN)+TPK%CF46*TPK%K2& +&73*PCONC(:,JP_MCR)*PCONC(:,JP_OH)+TPK%CF46*TPK%K275*PCONC(:,JP_MCR)*PCONC& +&(:,JP_NO3) ) / & +( +TPK%K130*PCONC(:,JP_NO2)+TPK%K288*PCONC(:,JP_NO)+TPK%K289*PCONC(& +&:,JP_HO2)+TPK%K290*PCONC(:,JP_RO2T) ) +! +TPK%RO214 = ( +0.095*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3)+TPK%K1& +&65*TPK%RO239*PCONC(:,JP_NO)+TPK%K167*TPK%RO239*PCONC(:,JP_R& +&O2T)+TPK%K288*TPK%RO250*PCONC(:,JP_NO)+TPK%K290*TPK%RO250& +&*PCONC(:,JP_RO2T) ) / & +( +TPK%K168*PCONC(:,JP_NO)+TPK%K169*PCONC(:,JP_RO2T)+TPK%K170*PCONC& +&(:,JP_HO2) ) +! +TPK%RO251 = ( +TPK%CF47*TPK%K273*PCONC(:,JP_MCR)*PCONC(:,JP_OH) ) / & +( +TPK%K291*PCONC(:,JP_NO)+TPK%K292*PCONC(:,JP_HO2)+TPK%K293*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO252 = ( +TPK%CF47*TPK%K275*PCONC(:,JP_MCR)*PCONC(:,JP_NO3) ) /& +( +TPK%K294*PCONC(:,JP_NO)+TPK%K295*PCONC(:,JP_HO2)+TPK%K296*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO258 = ( +TPK%K138*PCONC(:,JP_PN10)+TPK%K305*PCONC(:,JP_RP16)*P& +&CONC(:,JP_OH)+TPK%K338*PCONC(:,JP_RP16)*PCONC(:,JP_NO3) ) / & +( +TPK%K134*PCONC(:,JP_NO2)+TPK%K340*PCONC(:,JP_NO)+TPK%K341*PCONC(& +&:,JP_HO2)+TPK%K342*PCONC(:,JP_RO2T) ) +! +TPK%RO255 = ( +TPK%K304*PCONC(:,JP_RPR1)*PCONC(:,JP_OH)+TPK%K307*PCO& +&NC(:,JP_RPR1)*PCONC(:,JP_NO3)+TPK%K343*PCONC(:,JP_PAN7) ) / & +( +TPK%K132*PCONC(:,JP_NO2)+TPK%K309*PCONC(:,JP_NO)+TPK%K310*PCONC(& +&:,JP_HO2)+TPK%K311*PCONC(:,JP_RO2T) ) +! +TPK%RO256 = ( +TPK%K312*PCONC(:,JP_RPR3)*PCONC(:,JP_OH)+TPK%K313*PCO& +&NC(:,JP_RPR3)*PCONC(:,JP_NO3)+TPK%K317*PCONC(:,JP_PAN8) ) / & +( +TPK%K315*PCONC(:,JP_NO)+TPK%K316*PCONC(:,JP_NO2)+TPK%K318*PCONC(& +&:,JP_HO2)+TPK%K319*PCONC(:,JP_RO2T) ) +! +TPK%RO257 = ( +0.6249651*TPK%K139*PCONC(:,JP_APAN)+TPK%K324*PCONC(:,& +&JP_RPR8)*PCONC(:,JP_OH)+TPK%K327*PCONC(:,JP_RPR8)*PCONC(:,JP_NO3)+TPK%K3& +&30*PCONC(:,JP_RPR8) ) / & +( +TPK%K133*PCONC(:,JP_NO2)+TPK%K331*PCONC(:,JP_NO)+TPK%K332*PCONC(& +&:,JP_HO2)+TPK%K333*PCONC(:,JP_RO2T) ) +! +TPK%RO29 = ( +0.66*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH)+TPK%K329& +&*PCONC(:,JP_RPR8)+TPK%K331*TPK%RO257*PCONC(:,JP_NO)+TPK%K333*TPK%RO257*& +PCONC(:,JP_RO2T) ) / & +( +TPK%K150*PCONC(:,JP_NO)+TPK%K151*PCONC(:,JP_RO2T)+TPK%K152*PCONC& +&(:,JP_HO2) ) +! +!avoid division by zero in prodloss +WHERE (PCONC(:,JP_NO2)>0.) + TPK%RAD1 = ( +TPK%K072*PCONC(:,JP_AROO)*PCONC(:,JP_NO3) ) / & + ( +TPK%K103*PCONC(:,JP_NO2) ) +! + TPK%RAD8 = ( +TPK%K320*PCONC(:,JP_RPR4)*PCONC(:,JP_NO3) ) / & + ( +TPK%K321*PCONC(:,JP_NO2) ) +ELSEWHERE + TPK%RAD1 = 0. + TPK%RAD8 = 0. +ENDWHERE +! +TPK%RAD2 = ( +0.74*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & +( +TPK%K097+TPK%K104*PCONC(:,JP_NO2) ) +! +TPK%RAD3 = ( +0.74*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & +( +TPK%K098+TPK%K105*PCONC(:,JP_NO2) ) +! +TPK%RAD4 = ( +0.84*TPK%K080*PCONC(:,JP_AROH)*PCONC(:,JP_OH) ) / & +( +TPK%K099+TPK%K106*PCONC(:,JP_NO2) ) +! +TPK%RAD5 = ( +TPK%CF40*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) / & +( +TPK%K100+TPK%K107*PCONC(:,JP_NO2) ) +! +TPK%RAD6 = ( +0.74*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & +( +TPK%K101+TPK%K108*PCONC(:,JP_NO2) ) +! +TPK%RAD7 = ( +0.74*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & +( +TPK%K102+TPK%K109*PCONC(:,JP_NO2) ) +! +TPK%RO22 = ( +TPK%K049*PCONC(:,JP_ETHE)*PCONC(:,JP_OH)+TPK%CF2*TPK& +&%K053*PCONC(:,JP_ETOH)*PCONC(:,JP_OH)+TPK%K054*PCONC(:,JP_OLEL)*PCONC(:,JP_& +&OH)+TPK%K069*PCONC(:,JP_ALCH)*PCONC(:,JP_OH) ) / & +( +TPK%K113*PCONC(:,JP_NO)+TPK%K114*PCONC(:,JP_RO2T)+TPK%K115*PCONC& +&(:,JP_HO2) ) +! +TPK%RO23 = ( +TPK%K050*PCONC(:,JP_ETHE)*PCONC(:,JP_NO3)+TPK%K055*PCO& +&NC(:,JP_OLEL)*PCONC(:,JP_NO3) ) / & +( +TPK%K116*PCONC(:,JP_NO)+TPK%K117*PCONC(:,JP_RO2T)+TPK%K118*PCONC& +&(:,JP_HO2) ) +! +TPK%RO24 = ( +0.4*TPK%K052*PCONC(:,JP_ETHE)*TPK%O+0.1*TPK%K0& +&57*PCONC(:,JP_OLEL)*TPK%O+0.1*TPK%K077*PCONC(:,JP_OLEH)*& +&TPK%O+0.15*TPK%K283*PCONC(:,JP_MVK)*TPK%O ) / & +( +TPK%K119*PCONC(:,JP_NO)+TPK%K120*PCONC(:,JP_RO2T)+TPK%K121*PCONC& +&(:,JP_HO2) ) +! +TPK%RO26 = ( +TPK%K060*PCONC(:,JP_ALD2)*PCONC(:,JP_OH)+TPK%K061*PCON& +&C(:,JP_ALD2)*PCONC(:,JP_NO3)+TPK%K135*PCONC(:,JP_PAN1) ) / & +( +TPK%K125*PCONC(:,JP_NO)+TPK%K126*PCONC(:,JP_NO2)+TPK%K142*PCONC(& +&:,JP_HO2)+TPK%K143*PCONC(:,JP_RO2T) ) +! +TPK%RO27 = ( +TPK%K062*PCONC(:,JP_KETL)*PCONC(:,JP_OH)+TPK%CF8*TPK& +&%K168*TPK%RO214*PCONC(:,JP_NO)+TPK%K169*TPK%RO214*PCONC(:,J& +&P_RO2T)+TPK%K170*TPK%RO214*PCONC(:,JP_HO2)+0.15*TPK%K284*PCONC(:& +&,JP_MCR)*TPK%O ) / & +( +TPK%K144*PCONC(:,JP_NO)+TPK%K145*PCONC(:,JP_RO2T)+TPK%K146*PCONC& +&(:,JP_HO2) ) +! +TPK%RO210 = ( +0.34*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH) ) / & +( +TPK%K153*PCONC(:,JP_NO)+TPK%K154*PCONC(:,JP_RO2T)+TPK%K155*PCONC& +&(:,JP_HO2) ) +! +TPK%RO211 = ( +0.66*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & +( +TPK%K156*PCONC(:,JP_NO)+TPK%K157*PCONC(:,JP_RO2T)+TPK%K158*PCONC& +&(:,JP_HO2) ) +! +TPK%RO212 = ( +0.34*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & +( +TPK%K159*PCONC(:,JP_NO)+TPK%K160*PCONC(:,JP_RO2T)+TPK%K161*PCONC& +&(:,JP_HO2) ) +! +TPK%RO215 = ( +TPK%K068*PCONC(:,JP_MTBE)*PCONC(:,JP_OH) ) / & +( +TPK%K171*PCONC(:,JP_NO)+TPK%K172*PCONC(:,JP_RO2T)+TPK%K173*PCONC& +&(:,JP_HO2) ) +! +TPK%RO216 = ( +TPK%K070*PCONC(:,JP_KETH)*PCONC(:,JP_OH) ) / & +( +TPK%K174*PCONC(:,JP_NO)+TPK%K175*PCONC(:,JP_RO2T)+TPK%K176*PCONC& +&(:,JP_HO2) ) +! +TPK%RO217 = ( +0.1*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & +( +TPK%K177*PCONC(:,JP_NO)+TPK%K178*PCONC(:,JP_RO2T)+TPK%K179*PCONC& +&(:,JP_HO2) ) +! +TPK%RO220 = ( +0.28*TPK%K076*PCONC(:,JP_OLEH)*PCONC(:,JP_O3)+0.1*TPK& +&%K077*PCONC(:,JP_OLEH)*TPK%O+TPK%K078*PCONC(:,JP_ALKM)*PCONC(:,JP_O& +&H)+TPK%K308*PCONC(:,JP_RPR1)+TPK%K309*TPK%RO255*PCONC(:,JP_NO)+T& +&PK%K311*TPK%RO255*PCONC(:,JP_RO2T) ) / & +( +TPK%K186*PCONC(:,JP_NO)+TPK%K187*PCONC(:,JP_RO2T)+TPK%K188*PCONC& +&(:,JP_HO2) ) +! +TPK%RO218 = ( +TPK%K074*PCONC(:,JP_OLEH)*PCONC(:,JP_OH)+TPK%CF18*TPK%K186*& +TPK%RO220*PCONC(:,JP_NO)+TPK%K187*TPK%RO220*PCONC(:& +&,JP_RO2T)+TPK%K188*TPK%RO220*PCONC(:,JP_HO2) ) / & +( +TPK%K180*PCONC(:,JP_NO)+TPK%K181*PCONC(:,JP_RO2T)+TPK%K182*PCONC& +&(:,JP_HO2) ) +! +TPK%RO219 = ( +TPK%K075*PCONC(:,JP_OLEH)*PCONC(:,JP_NO3) ) / & +( +TPK%K183*PCONC(:,JP_NO)+TPK%K184*PCONC(:,JP_RO2T)+TPK%K185*PCONC& +&(:,JP_HO2) ) +! +TPK%RO221 = ( +0.1*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & +( +TPK%K189*PCONC(:,JP_NO)+TPK%K190*PCONC(:,JP_RO2T)+TPK%K191*PCONC& +&(:,JP_HO2) ) +! +TPK%RO222 = ( +TPK%CF45*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) /& +& & +( +TPK%K192*PCONC(:,JP_NO)+TPK%K193*PCONC(:,JP_RO2T)+TPK%K194*PCONC& +&(:,JP_HO2) ) +! +TPK%RO223 = ( +0.1*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & +( +TPK%K195*PCONC(:,JP_NO)+TPK%K196*PCONC(:,JP_RO2T)+TPK%K197*PCONC& +&(:,JP_HO2) ) +! +TPK%RO224 = ( +TPK%K084*PCONC(:,JP_BIOL)*PCONC(:,JP_OH) ) / & +( +TPK%K198*PCONC(:,JP_NO)+TPK%K199*PCONC(:,JP_RO2T)+TPK%K200*PCONC& +&(:,JP_HO2) ) +! +TPK%RO226 = ( +0.445*TPK%K086*PCONC(:,JP_BIOL)*PCONC(:,JP_O3) ) / & +( +TPK%K204*PCONC(:,JP_NO)+TPK%K205*PCONC(:,JP_RO2T)+TPK%K206*PCONC& +&(:,JP_HO2) ) +! +TPK%RO227 = ( +TPK%K088*PCONC(:,JP_BIOH)*PCONC(:,JP_OH) ) / & +( +TPK%K207*PCONC(:,JP_NO)+TPK%K208*PCONC(:,JP_RO2T)+TPK%K209*PCONC& +&(:,JP_HO2) ) +! +TPK%RO229 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & +( +TPK%K213*PCONC(:,JP_NO)+TPK%K214*PCONC(:,JP_RO2T)+TPK%K215*PCONC& +&(:,JP_HO2) ) +! +TPK%RO230 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & +( +TPK%K219*PCONC(:,JP_RO2T)+TPK%K220*PCONC(:,JP_HO2)+TPK%K344*PCON& +&C(:,JP_NO) ) +! +TPK%RO231 = ( +0.1*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & +( +TPK%K221*PCONC(:,JP_NO)+TPK%K222*PCONC(:,JP_RO2T)+TPK%K223*PCONC& +&(:,JP_HO2) ) +! +TPK%RO232 = ( +TPK%K093*PCONC(:,JP_ALKH)*PCONC(:,JP_OH) ) / & +( +TPK%K224*PCONC(:,JP_NO)+TPK%K225*PCONC(:,JP_RO2T)+TPK%K226*PCONC& +&(:,JP_HO2) ) +! +TPK%RO233 = ( +TPK%K097*TPK%RAD2 ) / & +( +TPK%K230+TPK%K231*PCONC(:,JP_NO)+TPK%K232*PCONC(:,JP_RO2T)+TPK%K233*& +PCONC(:,JP_HO2) ) +! +TPK%RO234 = ( +TPK%K098*TPK%RAD3 ) / & +( +TPK%K237+TPK%K238*PCONC(:,JP_NO)+TPK%K239*PCONC(:,JP_RO2T)+TPK%K240*& +PCONC(:,JP_HO2) ) +! +TPK%RO235 = ( +TPK%K099*TPK%RAD4 ) / & +( +TPK%K244+TPK%K245*PCONC(:,JP_NO)+TPK%K246*PCONC(:,JP_RO2T)+TPK%K247*& +PCONC(:,JP_HO2) ) +! +TPK%RO236 = ( +TPK%K100*TPK%RAD5 ) / & +( +TPK%K251+TPK%K252*PCONC(:,JP_NO)+TPK%K253*PCONC(:,JP_RO2T)+TPK%K254*& +PCONC(:,JP_HO2) ) +! +TPK%RO237 = ( +TPK%K101*TPK%RAD6 ) / & +( +TPK%K258+TPK%K259*PCONC(:,JP_NO)+TPK%K260*PCONC(:,JP_RO2T)+TPK%K261*& +PCONC(:,JP_HO2) ) +! +TPK%RO238 = ( +TPK%K102*TPK%RAD7 ) / & +( +TPK%K265+TPK%K266*PCONC(:,JP_NO)+TPK%K267*PCONC(:,JP_RO2T)+TPK%K268*& +PCONC(:,JP_HO2) ) +! +TPK%RO240 = ( +TPK%CF30*TPK%K213*TPK%RO229*PCONC(:,JP_NO)+TPK%K214*& +TPK%RO229*PCONC(:,JP_RO2T)+TPK%K215*TPK%RO229*PCON& +&C(:,JP_HO2) ) / & +( +TPK%K216*PCONC(:,JP_NO)+TPK%K217*PCONC(:,JP_RO2T)+TPK%K218*PCONC& +&(:,JP_HO2) ) +! +TPK%RO241 = ( +TPK%CF34*TPK%K224*TPK%RO232*PCONC(:,JP_NO)+TPK%K225*& +TPK%RO232*PCONC(:,JP_RO2T)+TPK%K226*TPK%RO232*PCON& +&C(:,JP_HO2) ) / & +( +TPK%K227*PCONC(:,JP_NO)+TPK%K228*PCONC(:,JP_RO2T)+TPK%K229*PCONC& +&(:,JP_HO2) ) +! +TPK%RO242 = ( +TPK%K230*TPK%RO233 ) / & +( +TPK%K234*PCONC(:,JP_NO)+TPK%K235*PCONC(:,JP_RO2T)+TPK%K236*PCONC& +&(:,JP_HO2) ) +! +TPK%RO243 = ( +TPK%K237*TPK%RO234 ) / & +( +TPK%K241*PCONC(:,JP_NO)+TPK%K242*PCONC(:,JP_RO2T)+TPK%K243*PCONC& +&(:,JP_HO2) ) +! +TPK%RO244 = ( +TPK%K244*TPK%RO235 ) / & +( +TPK%K248*PCONC(:,JP_NO)+TPK%K249*PCONC(:,JP_RO2T)+TPK%K250*PCONC& +&(:,JP_HO2) ) +! +TPK%RO245 = ( +TPK%K251*TPK%RO236 ) / & +( +TPK%K255*PCONC(:,JP_NO)+TPK%K256*PCONC(:,JP_RO2T)+TPK%K257*PCONC& +&(:,JP_HO2) ) +! +TPK%RO246 = ( +TPK%K258*TPK%RO237 ) / & +( +TPK%K262*PCONC(:,JP_NO)+TPK%K263*PCONC(:,JP_RO2T)+TPK%K264*PCONC& +&(:,JP_HO2) ) +! +TPK%RO247 = ( +TPK%K265*TPK%RO238 ) / & +( +TPK%K269*PCONC(:,JP_NO)+TPK%K270*PCONC(:,JP_RO2T)+TPK%K271*PCONC& +&(:,JP_HO2) ) +! +TPK%RO28 = ( +TPK%K063*PCONC(:,JP_KETL)+TPK%K071*PCONC(:,JP_KETH)+TP& +&K%K136*PCONC(:,JP_PAN2)+TPK%K144*TPK%RO27*PCONC(:,JP_NO)+TPK%& +&K145*TPK%RO27*PCONC(:,JP_RO2T)+TPK%K146*TPK%RO27*PCONC(:,JP& +&_HO2)+TPK%K174*TPK%RO216*PCONC(:,JP_NO)+TPK%K175*TPK%RO21& +&6*PCONC(:,JP_RO2T)+TPK%K176*TPK%RO216*PCONC(:,JP_HO2)+TPK%K204*& +&TPK%RO226*PCONC(:,JP_NO)+TPK%K205*TPK%RO226*PCONC(:,JP_RO2T)& +&+TPK%K206*TPK%RO226*PCONC(:,JP_HO2)+TPK%K216*TPK%RO240*& +&PCONC(:,JP_NO)+TPK%K217*TPK%RO240*PCONC(:,JP_RO2T)+TPK%K218*& +&TPK%RO240*PCONC(:,JP_HO2)+TPK%K219*TPK%RO230*PCONC(:,JP_RO2T)+T& +&PK%K220*TPK%RO230*PCONC(:,JP_HO2)+TPK%K276*PCONC(:,JP_MGLY)+TPK%K277*& +TPK%RO248*PCONC(:,JP_NO)+TPK%K280*TPK%RO248*PCONC(:& +&,JP_RO2T)+0.28*TPK%K281*PCONC(:,JP_MVK)*PCONC(:,JP_O3)+0.15*TPK%K283*PCO& +&NC(:,JP_MVK)*TPK%O+TPK%K344*TPK%RO230*PCONC(:,JP_NO) ) / & +( +TPK%K127*PCONC(:,JP_NO2)+TPK%K147*PCONC(:,JP_NO)+TPK%K148*PCONC(& +&:,JP_HO2)+TPK%K149*PCONC(:,JP_RO2T) ) +! +! /END_CODE/ +PTERMS(:,:,:) = 0.0 +CALL SUBT0 +CALL SUBT1 +CALL SUBT2 +CALL SUBT3 +CALL SUBT4 +CALL SUBT5 +CALL SUBT6 +CALL SUBT7 +CALL SUBT8 +CALL SUBT9 +CALL SUBT10 +CALL SUBT11 +CALL SUBT12 +CALL SUBT13 +CALL SUBT14 +CALL SUBT15 +CALL SUBT16 +CALL SUBT17 +CALL SUBT18 +CALL SUBT19 +CALL SUBT20 +CALL SUBT21 +CALL SUBT22 +CALL SUBT23 +CALL SUBT24 +CALL SUBT25 +CALL SUBT26 +CALL SUBT27 +CALL SUBT28 +CALL SUBT29 +CALL SUBT30 +CALL SUBT31 +CALL SUBT32 +CALL SUBT33 +CALL SUBT34 +CALL SUBT35 +CALL SUBT36 +CALL SUBT37 +CALL SUBT38 +CALL SUBT39 +CALL SUBT40 +CALL SUBT41 +CALL SUBT42 +CALL SUBT43 +CALL SUBT44 +CALL SUBT45 +CALL SUBT46 +CALL SUBT47 +CALL SUBT48 +CALL SUBT49 +CALL SUBT50 +CALL SUBT51 +CALL SUBT52 +CALL SUBT53 +CALL SUBT54 +CALL SUBT55 +CALL SUBT56 +CALL SUBT57 +CALL SUBT58 +CALL SUBT59 +! + +CONTAINS + +SUBROUTINE SUBT0 +! +!Indices 1 a 20 +! +!PTERMS(NO,K001) = +K001*<NO2> + PTERMS(:,1,1) = +TPK%K001(:)*PCONC(:,2) +! +!PTERMS(NO2,K001) = -K001*<NO2> + PTERMS(:,2,1) = -TPK%K001(:)*PCONC(:,2) +! +!PTERMS(O3,K002) = +K002*<O2>*<O> + PTERMS(:,3,2) = +TPK%K002(:)*TPK%O2(:)*TPK%O(:) +! +!PTERMS(NO,K003) = +K003*<NO2>*<O> + PTERMS(:,1,3) = +TPK%K003(:)*PCONC(:,2)*TPK%O(:) +! +!PTERMS(NO2,K003) = -K003*<NO2>*<O> + PTERMS(:,2,3) = -TPK%K003(:)*PCONC(:,2)*TPK%O(:) +! +!PTERMS(NO2,K004) = -K004*<NO2>*<O> + PTERMS(:,2,4) = -TPK%K004(:)*PCONC(:,2)*TPK%O(:) +! +!PTERMS(NO3,K004) = +K004*<NO2>*<O> + PTERMS(:,8,4) = +TPK%K004(:)*PCONC(:,2)*TPK%O(:) +! +!PTERMS(NO,K005) = -K005*<O3>*<NO> + PTERMS(:,1,5) = -TPK%K005(:)*PCONC(:,3)*PCONC(:,1) +! +!PTERMS(NO2,K005) = +K005*<O3>*<NO> + PTERMS(:,2,5) = +TPK%K005(:)*PCONC(:,3)*PCONC(:,1) +! +!PTERMS(O3,K005) = -K005*<O3>*<NO> + PTERMS(:,3,5) = -TPK%K005(:)*PCONC(:,3)*PCONC(:,1) +! +!PTERMS(NO2,K006) = -K006*<O3>*<NO2> + PTERMS(:,2,6) = -TPK%K006(:)*PCONC(:,3)*PCONC(:,2) +! +!PTERMS(O3,K006) = -K006*<O3>*<NO2> + PTERMS(:,3,6) = -TPK%K006(:)*PCONC(:,3)*PCONC(:,2) +! +!PTERMS(NO3,K006) = +K006*<O3>*<NO2> + PTERMS(:,8,6) = +TPK%K006(:)*PCONC(:,3)*PCONC(:,2) +! +!PTERMS(NO,K007) = -K007*<NO3>*<NO> + PTERMS(:,1,7) = -TPK%K007(:)*PCONC(:,8)*PCONC(:,1) +! +!PTERMS(NO2,K007) = +2.*K007*<NO3>*<NO> + PTERMS(:,2,7) = +2.*TPK%K007(:)*PCONC(:,8)*PCONC(:,1) +! +!PTERMS(NO3,K007) = -K007*<NO3>*<NO> + PTERMS(:,8,7) = -TPK%K007(:)*PCONC(:,8)*PCONC(:,1) +! +!PTERMS(NO,K008) = -K008*<NO>*<NO> + PTERMS(:,1,8) = -TPK%K008(:)*PCONC(:,1)*PCONC(:,1) +! +!PTERMS(NO2,K008) = +2.*K008*<NO>*<NO> + PTERMS(:,2,8) = +2.*TPK%K008(:)*PCONC(:,1)*PCONC(:,1) +! +!PTERMS(NO2,K009) = -K009*<NO3>*<NO2> + PTERMS(:,2,9) = -TPK%K009(:)*PCONC(:,8)*PCONC(:,2) +! +!PTERMS(N2O5,K009) = +K009*<NO3>*<NO2> + PTERMS(:,7,9) = +TPK%K009(:)*PCONC(:,8)*PCONC(:,2) +! +! +RETURN +END SUBROUTINE SUBT0 +! +SUBROUTINE SUBT1 +! +!Indices 21 a 40 +! +!PTERMS(NO3,K009) = -K009*<NO3>*<NO2> + PTERMS(:,8,9) = -TPK%K009(:)*PCONC(:,8)*PCONC(:,2) +! +!PTERMS(NO2,K010) = +K010*<N2O5> + PTERMS(:,2,10) = +TPK%K010(:)*PCONC(:,7) +! +!PTERMS(N2O5,K010) = -K010*<N2O5> + PTERMS(:,7,10) = -TPK%K010(:)*PCONC(:,7) +! +!PTERMS(NO3,K010) = +K010*<N2O5> + PTERMS(:,8,10) = +TPK%K010(:)*PCONC(:,7) +! +!PTERMS(HNO3,K011) = +2.*K011*<H2O>*<N2O5> + PTERMS(:,5,11) = +2.*TPK%K011(:)*TPK%H2O(:)*PCONC(:,7) +! +!PTERMS(N2O5,K011) = -K011*<H2O>*<N2O5> + PTERMS(:,7,11) = -TPK%K011(:)*TPK%H2O(:)*PCONC(:,7) +! +!PTERMS(NO,K012) = +K012*<NO3>*<NO2> + PTERMS(:,1,12) = +TPK%K012(:)*PCONC(:,8)*PCONC(:,2) +! +!PTERMS(NO2,K012) = -K012*<NO3>*<NO2> + PTERMS(:,2,12) = -TPK%K012(:)*PCONC(:,8)*PCONC(:,2) +! +!PTERMS(NO3,K012) = -K012*<NO3>*<NO2> + PTERMS(:,8,12) = -TPK%K012(:)*PCONC(:,8)*PCONC(:,2) +! +!PTERMS(NO,K013) = +K013*<NO3> + PTERMS(:,1,13) = +TPK%K013(:)*PCONC(:,8) +! +!PTERMS(NO3,K013) = -K013*<NO3> + PTERMS(:,8,13) = -TPK%K013(:)*PCONC(:,8) +! +!PTERMS(NO2,K014) = +K014*<NO3> + PTERMS(:,2,14) = +TPK%K014(:)*PCONC(:,8) +! +!PTERMS(NO3,K014) = -K014*<NO3> + PTERMS(:,8,14) = -TPK%K014(:)*PCONC(:,8) +! +!PTERMS(O3,K015) = -K015*<O3> + PTERMS(:,3,15) = -TPK%K015(:)*PCONC(:,3) +! +!PTERMS(O3,K016) = -K016*<O3> + PTERMS(:,3,16) = -TPK%K016(:)*PCONC(:,3) +! +!PTERMS(OH,K017) = +K017*<H2O>*<OSD> + PTERMS(:,15,17) = +TPK%K017(:)*TPK%H2O(:)*TPK%OSD(:) +! +!PTERMS(NO,K019) = -K019*<OH>*<NO> + PTERMS(:,1,20) = -TPK%K019(:)*PCONC(:,15)*PCONC(:,1) +! +!PTERMS(HONO,K019) = +K019*<OH>*<NO> + PTERMS(:,4,20) = +TPK%K019(:)*PCONC(:,15)*PCONC(:,1) +! +!PTERMS(OH,K019) = -K019*<OH>*<NO> + PTERMS(:,15,20) = -TPK%K019(:)*PCONC(:,15)*PCONC(:,1) +! +!PTERMS(NO,K020) = +0.9*K020*<HONO> + PTERMS(:,1,21) = +0.9*TPK%K020(:)*PCONC(:,4) +! +! +RETURN +END SUBROUTINE SUBT1 +! +SUBROUTINE SUBT2 +! +!Indices 41 a 60 +! +!PTERMS(NO2,K020) = +0.1*K020*<HONO> + PTERMS(:,2,21) = +0.1*TPK%K020(:)*PCONC(:,4) +! +!PTERMS(HONO,K020) = -K020*<HONO> + PTERMS(:,4,21) = -TPK%K020(:)*PCONC(:,4) +! +!PTERMS(HO2,K020) = +0.1*K020*<HONO> + PTERMS(:,10,21) = +0.1*TPK%K020(:)*PCONC(:,4) +! +!PTERMS(OH,K020) = +0.9*K020*<HONO> + PTERMS(:,15,21) = +0.9*TPK%K020(:)*PCONC(:,4) +! +!PTERMS(NO2,K021) = -K021*<H2O>*<NO2> + PTERMS(:,2,22) = -TPK%K021(:)*TPK%H2O(:)*PCONC(:,2) +! +!PTERMS(HONO,K021) = +0.5*K021*<H2O>*<NO2> + PTERMS(:,4,22) = +0.5*TPK%K021(:)*TPK%H2O(:)*PCONC(:,2) +! +!PTERMS(HNO3,K021) = +0.5*K021*<H2O>*<NO2> + PTERMS(:,5,22) = +0.5*TPK%K021(:)*TPK%H2O(:)*PCONC(:,2) +! +!PTERMS(NO2,K022) = -K022*<OH>*<NO2> + PTERMS(:,2,23) = -TPK%K022(:)*PCONC(:,15)*PCONC(:,2) +! +!PTERMS(HNO3,K022) = +K022*<OH>*<NO2> + PTERMS(:,5,23) = +TPK%K022(:)*PCONC(:,15)*PCONC(:,2) +! +!PTERMS(OH,K022) = -K022*<OH>*<NO2> + PTERMS(:,15,23) = -TPK%K022(:)*PCONC(:,15)*PCONC(:,2) +! +!PTERMS(HNO3,K023) = -K023*<OH>*<HNO3> + PTERMS(:,5,24) = -TPK%K023(:)*PCONC(:,15)*PCONC(:,5) +! +!PTERMS(NO3,K023) = +K023*<OH>*<HNO3> + PTERMS(:,8,24) = +TPK%K023(:)*PCONC(:,15)*PCONC(:,5) +! +!PTERMS(OH,K023) = -K023*<OH>*<HNO3> + PTERMS(:,15,24) = -TPK%K023(:)*PCONC(:,15)*PCONC(:,5) +! +!PTERMS(HO2,K024) = +K024*<OH>*<CO> + PTERMS(:,10,25) = +TPK%K024(:)*PCONC(:,15)*PCONC(:,11) +! +!PTERMS(CO,K024) = -K024*<OH>*<CO> + PTERMS(:,11,25) = -TPK%K024(:)*PCONC(:,15)*PCONC(:,11) +! +!PTERMS(OH,K024) = -K024*<OH>*<CO> + PTERMS(:,15,25) = -TPK%K024(:)*PCONC(:,15)*PCONC(:,11) +! +!PTERMS(O3,K025) = -K025*<OH>*<O3> + PTERMS(:,3,26) = -TPK%K025(:)*PCONC(:,15)*PCONC(:,3) +! +!PTERMS(HO2,K025) = +K025*<OH>*<O3> + PTERMS(:,10,26) = +TPK%K025(:)*PCONC(:,15)*PCONC(:,3) +! +!PTERMS(OH,K025) = -K025*<OH>*<O3> + PTERMS(:,15,26) = -TPK%K025(:)*PCONC(:,15)*PCONC(:,3) +! +!PTERMS(NO,K026) = -K026*<HO2>*<NO> + PTERMS(:,1,27) = -TPK%K026(:)*PCONC(:,10)*PCONC(:,1) +! +! +RETURN +END SUBROUTINE SUBT2 +! +SUBROUTINE SUBT3 +! +!Indices 61 a 80 +! +!PTERMS(NO2,K026) = +K026*<HO2>*<NO> + PTERMS(:,2,27) = +TPK%K026(:)*PCONC(:,10)*PCONC(:,1) +! +!PTERMS(HO2,K026) = -K026*<HO2>*<NO> + PTERMS(:,10,27) = -TPK%K026(:)*PCONC(:,10)*PCONC(:,1) +! +!PTERMS(OH,K026) = +K026*<HO2>*<NO> + PTERMS(:,15,27) = +TPK%K026(:)*PCONC(:,10)*PCONC(:,1) +! +!PTERMS(NO2,K027) = -K027*<HO2>*<NO2> + PTERMS(:,2,28) = -TPK%K027(:)*PCONC(:,10)*PCONC(:,2) +! +!PTERMS(HNO4,K027) = +K027*<HO2>*<NO2> + PTERMS(:,6,28) = +TPK%K027(:)*PCONC(:,10)*PCONC(:,2) +! +!PTERMS(HO2,K027) = -K027*<HO2>*<NO2> + PTERMS(:,10,28) = -TPK%K027(:)*PCONC(:,10)*PCONC(:,2) +! +!PTERMS(NO2,K028) = +K028*<HNO4> + PTERMS(:,2,29) = +TPK%K028(:)*PCONC(:,6) +! +!PTERMS(HNO4,K028) = -K028*<HNO4> + PTERMS(:,6,29) = -TPK%K028(:)*PCONC(:,6) +! +!PTERMS(HO2,K028) = +K028*<HNO4> + PTERMS(:,10,29) = +TPK%K028(:)*PCONC(:,6) +! +!PTERMS(NO2,K029) = +K029*<OH>*<HNO4> + PTERMS(:,2,30) = +TPK%K029(:)*PCONC(:,15)*PCONC(:,6) +! +!PTERMS(HNO4,K029) = -K029*<OH>*<HNO4> + PTERMS(:,6,30) = -TPK%K029(:)*PCONC(:,15)*PCONC(:,6) +! +!PTERMS(OH,K029) = -K029*<OH>*<HNO4> + PTERMS(:,15,30) = -TPK%K029(:)*PCONC(:,15)*PCONC(:,6) +! +!PTERMS(O3,K030) = -K030*<HO2>*<O3> + PTERMS(:,3,31) = -TPK%K030(:)*PCONC(:,10)*PCONC(:,3) +! +!PTERMS(HO2,K030) = -K030*<HO2>*<O3> + PTERMS(:,10,31) = -TPK%K030(:)*PCONC(:,10)*PCONC(:,3) +! +!PTERMS(OH,K030) = +K030*<HO2>*<O3> + PTERMS(:,15,31) = +TPK%K030(:)*PCONC(:,10)*PCONC(:,3) +! +!PTERMS(HO2,K031) = -K031*<HO2>*<HO2> + PTERMS(:,10,32) = -TPK%K031(:)*PCONC(:,10)*PCONC(:,10) +! +!PTERMS(H2O2,K031) = +K031*<HO2>*<HO2> + PTERMS(:,12,32) = +TPK%K031(:)*PCONC(:,10)*PCONC(:,10) +! +!PTERMS(HO2,K032) = -K032*<HO2>*<H2O>*<HO2> + PTERMS(:,10,33) = -TPK%K032(:)*PCONC(:,10)*TPK%H2O(:)*PCONC(:,10) +! +!PTERMS(H2O2,K032) = +K032*<HO2>*<H2O>*<HO2> + PTERMS(:,12,33) = +TPK%K032(:)*PCONC(:,10)*TPK%H2O(:)*PCONC(:,10) +! +!PTERMS(NO2,K033) = +0.8*K033*<HO2>*<NO3> + PTERMS(:,2,34) = +0.8*TPK%K033(:)*PCONC(:,10)*PCONC(:,8) +! +! +RETURN +END SUBROUTINE SUBT3 +! +SUBROUTINE SUBT4 +! +!Indices 81 a 100 +! +!PTERMS(HNO3,K033) = +0.2*K033*<HO2>*<NO3> + PTERMS(:,5,34) = +0.2*TPK%K033(:)*PCONC(:,10)*PCONC(:,8) +! +!PTERMS(NO3,K033) = -K033*<HO2>*<NO3> + PTERMS(:,8,34) = -TPK%K033(:)*PCONC(:,10)*PCONC(:,8) +! +!PTERMS(HO2,K033) = -K033*<HO2>*<NO3> + PTERMS(:,10,34) = -TPK%K033(:)*PCONC(:,10)*PCONC(:,8) +! +!PTERMS(OH,K033) = +0.8*K033*<HO2>*<NO3> + PTERMS(:,15,34) = +0.8*TPK%K033(:)*PCONC(:,10)*PCONC(:,8) +! +!PTERMS(O3,K034) = -K034*<O3>*<O> + PTERMS(:,3,35) = -TPK%K034(:)*PCONC(:,3)*TPK%O(:) +! +!PTERMS(HO2,K035) = +K035*<OH>*<SO2> + PTERMS(:,10,36) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,13) +! +!PTERMS(SO2,K035) = -K035*<OH>*<SO2> + PTERMS(:,13,36) = -TPK%K035(:)*PCONC(:,15)*PCONC(:,13) +! +!PTERMS(H2SO4,K035) = +K035*<OH>*<SO2> + PTERMS(:,14,36) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,13) +! +!PTERMS(OH,K035) = -K035*<OH>*<SO2> + PTERMS(:,15,36) = -TPK%K035(:)*PCONC(:,15)*PCONC(:,13) +! +!PTERMS(H2O2,K036) = -K036*<H2O2> + PTERMS(:,12,37) = -TPK%K036(:)*PCONC(:,12) +! +!PTERMS(OH,K036) = +2.*K036*<H2O2> + PTERMS(:,15,37) = +2.*TPK%K036(:)*PCONC(:,12) +! +!PTERMS(HO2,K037) = +K037*<OH>*<H2O2> + PTERMS(:,10,38) = +TPK%K037(:)*PCONC(:,15)*PCONC(:,12) +! +!PTERMS(H2O2,K037) = -K037*<OH>*<H2O2> + PTERMS(:,12,38) = -TPK%K037(:)*PCONC(:,15)*PCONC(:,12) +! +!PTERMS(OH,K037) = -K037*<OH>*<H2O2> + PTERMS(:,15,38) = -TPK%K037(:)*PCONC(:,15)*PCONC(:,12) +! +!PTERMS(NO,K038) = -K038*<NO>*<O> + PTERMS(:,1,39) = -TPK%K038(:)*PCONC(:,1)*TPK%O(:) +! +!PTERMS(NO2,K038) = +K038*<NO>*<O> + PTERMS(:,2,39) = +TPK%K038(:)*PCONC(:,1)*TPK%O(:) +! +!PTERMS(NO2,K039) = +K039*<OH>*<HONO> + PTERMS(:,2,40) = +TPK%K039(:)*PCONC(:,15)*PCONC(:,4) +! +!PTERMS(HONO,K039) = -K039*<OH>*<HONO> + PTERMS(:,4,40) = -TPK%K039(:)*PCONC(:,15)*PCONC(:,4) +! +!PTERMS(OH,K039) = -K039*<OH>*<HONO> + PTERMS(:,15,40) = -TPK%K039(:)*PCONC(:,15)*PCONC(:,4) +! +!PTERMS(NO2,K040) = +K040*<OH>*<NO3> + PTERMS(:,2,41) = +TPK%K040(:)*PCONC(:,15)*PCONC(:,8) +! +! +RETURN +END SUBROUTINE SUBT4 +! +SUBROUTINE SUBT5 +! +!Indices 101 a 120 +! +!PTERMS(NO3,K040) = -K040*<OH>*<NO3> + PTERMS(:,8,41) = -TPK%K040(:)*PCONC(:,15)*PCONC(:,8) +! +!PTERMS(HO2,K040) = +K040*<OH>*<NO3> + PTERMS(:,10,41) = +TPK%K040(:)*PCONC(:,15)*PCONC(:,8) +! +!PTERMS(OH,K040) = -K040*<OH>*<NO3> + PTERMS(:,15,41) = -TPK%K040(:)*PCONC(:,15)*PCONC(:,8) +! +!PTERMS(NO2,K041) = +2.*K041*<NO3>*<NO3> + PTERMS(:,2,42) = +2.*TPK%K041(:)*PCONC(:,8)*PCONC(:,8) +! +!PTERMS(NO3,K041) = -K041*<NO3>*<NO3> + PTERMS(:,8,42) = -TPK%K041(:)*PCONC(:,8)*PCONC(:,8) +! +!PTERMS(HO2,K042) = -K042*<HO2>*<OH> + PTERMS(:,10,43) = -TPK%K042(:)*PCONC(:,10)*PCONC(:,15) +! +!PTERMS(OH,K042) = -K042*<HO2>*<OH> + PTERMS(:,15,43) = -TPK%K042(:)*PCONC(:,10)*PCONC(:,15) +! +!PTERMS(OH,K043) = -K043*<OH>*<CH4> + PTERMS(:,15,44) = -TPK%K043(:)*PCONC(:,15)*TPK%CH4(:) +! +!PTERMS(RO2T,K043) = +K043*<OH>*<CH4> + PTERMS(:,85,44) = +TPK%K043(:)*PCONC(:,15)*TPK%CH4(:) +! +!PTERMS(RO21,K043) = +K043*<OH>*<CH4> + PTERMS(:,86,44) = +TPK%K043(:)*PCONC(:,15)*TPK%CH4(:) +! +!PTERMS(HO2,K044) = +2.0*K044*<HCHO> + PTERMS(:,10,45) = +2.0*TPK%K044(:)*PCONC(:,28) +! +!PTERMS(CO,K044) = +K044*<HCHO> + PTERMS(:,11,45) = +TPK%K044(:)*PCONC(:,28) +! +!PTERMS(HCHO,K044) = -K044*<HCHO> + PTERMS(:,28,45) = -TPK%K044(:)*PCONC(:,28) +! +!PTERMS(CO,K045) = +K045*<HCHO> + PTERMS(:,11,46) = +TPK%K045(:)*PCONC(:,28) +! +!PTERMS(HCHO,K045) = -K045*<HCHO> + PTERMS(:,28,46) = -TPK%K045(:)*PCONC(:,28) +! +!PTERMS(HO2,K046) = +K046*<OH>*<HCHO> + PTERMS(:,10,47) = +TPK%K046(:)*PCONC(:,15)*PCONC(:,28) +! +!PTERMS(CO,K046) = +K046*<OH>*<HCHO> + PTERMS(:,11,47) = +TPK%K046(:)*PCONC(:,15)*PCONC(:,28) +! +!PTERMS(OH,K046) = -K046*<OH>*<HCHO> + PTERMS(:,15,47) = -TPK%K046(:)*PCONC(:,15)*PCONC(:,28) +! +!PTERMS(HCHO,K046) = -K046*<OH>*<HCHO> + PTERMS(:,28,47) = -TPK%K046(:)*PCONC(:,15)*PCONC(:,28) +! +!PTERMS(HNO3,K047) = +K047*<NO3>*<HCHO> + PTERMS(:,5,48) = +TPK%K047(:)*PCONC(:,8)*PCONC(:,28) +! +! +RETURN +END SUBROUTINE SUBT5 +! +SUBROUTINE SUBT6 +! +!Indices 121 a 140 +! +!PTERMS(NO3,K047) = -K047*<NO3>*<HCHO> + PTERMS(:,8,48) = -TPK%K047(:)*PCONC(:,8)*PCONC(:,28) +! +!PTERMS(HO2,K047) = +K047*<NO3>*<HCHO> + PTERMS(:,10,48) = +TPK%K047(:)*PCONC(:,8)*PCONC(:,28) +! +!PTERMS(CO,K047) = +K047*<NO3>*<HCHO> + PTERMS(:,11,48) = +TPK%K047(:)*PCONC(:,8)*PCONC(:,28) +! +!PTERMS(HCHO,K047) = -K047*<NO3>*<HCHO> + PTERMS(:,28,48) = -TPK%K047(:)*PCONC(:,8)*PCONC(:,28) +! +!PTERMS(HO2,K048) = +K048*<OH>*<MEOH> + PTERMS(:,10,49) = +TPK%K048(:)*PCONC(:,15)*PCONC(:,32) +! +!PTERMS(OH,K048) = -K048*<OH>*<MEOH> + PTERMS(:,15,49) = -TPK%K048(:)*PCONC(:,15)*PCONC(:,32) +! +!PTERMS(HCHO,K048) = +K048*<OH>*<MEOH> + PTERMS(:,28,49) = +TPK%K048(:)*PCONC(:,15)*PCONC(:,32) +! +!PTERMS(MEOH,K048) = -K048*<OH>*<MEOH> + PTERMS(:,32,49) = -TPK%K048(:)*PCONC(:,15)*PCONC(:,32) +! +!PTERMS(OH,K049) = -K049*<OH>*<ETHE> + PTERMS(:,15,50) = -TPK%K049(:)*PCONC(:,15)*PCONC(:,16) +! +!PTERMS(ETHE,K049) = -K049*<OH>*<ETHE> + PTERMS(:,16,50) = -TPK%K049(:)*PCONC(:,15)*PCONC(:,16) +! +!PTERMS(RO2T,K049) = +K049*<OH>*<ETHE> + PTERMS(:,85,50) = +TPK%K049(:)*PCONC(:,15)*PCONC(:,16) +! +!PTERMS(NO3,K050) = -K050*<NO3>*<ETHE> + PTERMS(:,8,51) = -TPK%K050(:)*PCONC(:,8)*PCONC(:,16) +! +!PTERMS(ETHE,K050) = -K050*<NO3>*<ETHE> + PTERMS(:,16,51) = -TPK%K050(:)*PCONC(:,8)*PCONC(:,16) +! +!PTERMS(RO2T,K050) = +K050*<NO3>*<ETHE> + PTERMS(:,85,51) = +TPK%K050(:)*PCONC(:,8)*PCONC(:,16) +! +!PTERMS(O3,K051) = -K051*<O3>*<ETHE> + PTERMS(:,3,52) = -TPK%K051(:)*PCONC(:,3)*PCONC(:,16) +! +!PTERMS(HO2,K051) = +0.06*K051*<O3>*<ETHE> + PTERMS(:,10,52) = +0.06*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) +! +!PTERMS(CO,K051) = +0.315*K051*<O3>*<ETHE> + PTERMS(:,11,52) = +0.315*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) +! +!PTERMS(OH,K051) = +0.06*K051*<O3>*<ETHE> + PTERMS(:,15,52) = +0.06*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) +! +!PTERMS(ETHE,K051) = -K051*<O3>*<ETHE> + PTERMS(:,16,52) = -TPK%K051(:)*PCONC(:,3)*PCONC(:,16) +! +!PTERMS(HCHO,K051) = +0.5*K051*<O3>*<ETHE> + PTERMS(:,28,52) = +0.5*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) +! +! +RETURN +END SUBROUTINE SUBT6 +! +SUBROUTINE SUBT7 +! +!Indices 141 a 160 +! +!PTERMS(ORA1,K051) = +0.185*K051*<O3>*<ETHE> + PTERMS(:,43,52) = +0.185*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) +! +!PTERMS(HO2,K052) = +K052*<O>*<ETHE> + PTERMS(:,10,53) = +TPK%K052(:)*TPK%O(:)*PCONC(:,16) +! +!PTERMS(CO,K052) = +0.6*K052*<O>*<ETHE> + PTERMS(:,11,53) = +0.6*TPK%K052(:)*TPK%O(:)*PCONC(:,16) +! +!PTERMS(ETHE,K052) = -K052*<O>*<ETHE> + PTERMS(:,16,53) = -TPK%K052(:)*TPK%O(:)*PCONC(:,16) +! +!PTERMS(RO2T,K052) = +K052*<O>*<ETHE> + PTERMS(:,85,53) = +TPK%K052(:)*TPK%O(:)*PCONC(:,16) +! +!PTERMS(RO21,K052) = +0.6*K052*<O>*<ETHE> + PTERMS(:,86,53) = +0.6*TPK%K052(:)*TPK%O(:)*PCONC(:,16) +! +!PTERMS(HO2,K053) = +TPK%CF1*K053*<OH>*<ETOH> + PTERMS(:,10,54) = +TPK%CF1*TPK%K053(:)*PCONC(:,15)*PCONC(:,33) +! +!PTERMS(OH,K053) = -K053*<OH>*<ETOH> + PTERMS(:,15,54) = -TPK%K053(:)*PCONC(:,15)*PCONC(:,33) +! +!PTERMS(ALD2,K053) = +TPK%CF1*K053*<OH>*<ETOH> + PTERMS(:,29,54) = +TPK%CF1*TPK%K053(:)*PCONC(:,15)*PCONC(:,33) +! +!PTERMS(ETOH,K053) = -K053*<OH>*<ETOH> + PTERMS(:,33,54) = -TPK%K053(:)*PCONC(:,15)*PCONC(:,33) +! +!PTERMS(RO2T,K053) = +TPK%CF2*K053*<OH>*<ETOH> + PTERMS(:,85,54) = +TPK%CF2*TPK%K053(:)*PCONC(:,15)*PCONC(:,33) +! +!PTERMS(OH,K054) = -K054*<OH>*<OLEL> + PTERMS(:,15,55) = -TPK%K054(:)*PCONC(:,15)*PCONC(:,17) +! +!PTERMS(OLEL,K054) = -K054*<OH>*<OLEL> + PTERMS(:,17,55) = -TPK%K054(:)*PCONC(:,15)*PCONC(:,17) +! +!PTERMS(RO2T,K054) = +K054*<OH>*<OLEL> + PTERMS(:,85,55) = +TPK%K054(:)*PCONC(:,15)*PCONC(:,17) +! +!PTERMS(NO3,K055) = -K055*<NO3>*<OLEL> + PTERMS(:,8,56) = -TPK%K055(:)*PCONC(:,8)*PCONC(:,17) +! +!PTERMS(OLEL,K055) = -K055*<NO3>*<OLEL> + PTERMS(:,17,56) = -TPK%K055(:)*PCONC(:,8)*PCONC(:,17) +! +!PTERMS(RO2T,K055) = +K055*<NO3>*<OLEL> + PTERMS(:,85,56) = +TPK%K055(:)*PCONC(:,8)*PCONC(:,17) +! +!PTERMS(O3,K056) = -K056*<O3>*<OLEL> + PTERMS(:,3,57) = -TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +! +!PTERMS(HO2,K056) = +0.28*K056*<O3>*<OLEL> + PTERMS(:,10,57) = +0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +! +!PTERMS(CO,K056) = +0.56*K056*<O3>*<OLEL> + PTERMS(:,11,57) = +0.56*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +! +! +RETURN +END SUBROUTINE SUBT7 +! +SUBROUTINE SUBT8 +! +!Indices 161 a 180 +! +!PTERMS(OH,K056) = +0.36*K056*<O3>*<OLEL> + PTERMS(:,15,57) = +0.36*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +! +!PTERMS(OLEL,K056) = -K056*<O3>*<OLEL> + PTERMS(:,17,57) = -TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +! +!PTERMS(ALKL,K056) = +0.1*K056*<O3>*<OLEL> + PTERMS(:,19,57) = +0.1*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +! +!PTERMS(HCHO,K056) = +0.5*K056*<O3>*<OLEL> + PTERMS(:,28,57) = +0.5*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +! +!PTERMS(ALD2,K056) = +0.5*K056*<O3>*<OLEL> + PTERMS(:,29,57) = +0.5*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +! +!PTERMS(ORA1,K056) = +0.12*K056*<O3>*<OLEL> + PTERMS(:,43,57) = +0.12*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +! +!PTERMS(ORA2,K056) = +0.12*K056*<O3>*<OLEL> + PTERMS(:,44,57) = +0.12*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +! +!PTERMS(RO2T,K056) = +0.28*K056*<O3>*<OLEL> + PTERMS(:,85,57) = +0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +! +!PTERMS(RO25,K056) = +0.28*K056*<O3>*<OLEL> + PTERMS(:,87,57) = +0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +! +!PTERMS(OLEL,K057) = -K057*<O>*<OLEL> + PTERMS(:,17,58) = -TPK%K057(:)*TPK%O(:)*PCONC(:,17) +! +!PTERMS(ALKL,K057) = +0.5*K057*<O>*<OLEL> + PTERMS(:,19,58) = +0.5*TPK%K057(:)*TPK%O(:)*PCONC(:,17) +! +!PTERMS(ALD2,K057) = +0.4*K057*<O>*<OLEL> + PTERMS(:,29,58) = +0.4*TPK%K057(:)*TPK%O(:)*PCONC(:,17) +! +!PTERMS(RO2T,K057) = +0.2*K057*<O>*<OLEL> + PTERMS(:,85,58) = +0.2*TPK%K057(:)*TPK%O(:)*PCONC(:,17) +! +!PTERMS(RO25,K057) = +0.1*K057*<O>*<OLEL> + PTERMS(:,87,58) = +0.1*TPK%K057(:)*TPK%O(:)*PCONC(:,17) +! +!PTERMS(OH,K058) = -K058*<OH>*<ALKL> + PTERMS(:,15,59) = -TPK%K058(:)*PCONC(:,15)*PCONC(:,19) +! +!PTERMS(ALKL,K058) = -K058*<OH>*<ALKL> + PTERMS(:,19,59) = -TPK%K058(:)*PCONC(:,15)*PCONC(:,19) +! +!PTERMS(RO2T,K058) = +K058*<OH>*<ALKL> + PTERMS(:,85,59) = +TPK%K058(:)*PCONC(:,15)*PCONC(:,19) +! +!PTERMS(RO25,K058) = +K058*<OH>*<ALKL> + PTERMS(:,87,59) = +TPK%K058(:)*PCONC(:,15)*PCONC(:,19) +! +!PTERMS(HO2,K059) = +K059*<ALD2> + PTERMS(:,10,60) = +TPK%K059(:)*PCONC(:,29) +! +!PTERMS(CO,K059) = +K059*<ALD2> + PTERMS(:,11,60) = +TPK%K059(:)*PCONC(:,29) +! +! +RETURN +END SUBROUTINE SUBT8 +! +SUBROUTINE SUBT9 +! +!Indices 181 a 200 +! +!PTERMS(ALD2,K059) = -K059*<ALD2> + PTERMS(:,29,60) = -TPK%K059(:)*PCONC(:,29) +! +!PTERMS(RO2T,K059) = +K059*<ALD2> + PTERMS(:,85,60) = +TPK%K059(:)*PCONC(:,29) +! +!PTERMS(RO25,K059) = +K059*<ALD2> + PTERMS(:,87,60) = +TPK%K059(:)*PCONC(:,29) +! +!PTERMS(OH,K060) = -K060*<OH>*<ALD2> + PTERMS(:,15,61) = -TPK%K060(:)*PCONC(:,15)*PCONC(:,29) +! +!PTERMS(ALD2,K060) = -K060*<OH>*<ALD2> + PTERMS(:,29,61) = -TPK%K060(:)*PCONC(:,15)*PCONC(:,29) +! +!PTERMS(RO2T,K060) = +K060*<OH>*<ALD2> + PTERMS(:,85,61) = +TPK%K060(:)*PCONC(:,15)*PCONC(:,29) +! +!PTERMS(HNO3,K061) = +K061*<NO3>*<ALD2> + PTERMS(:,5,62) = +TPK%K061(:)*PCONC(:,8)*PCONC(:,29) +! +!PTERMS(NO3,K061) = -K061*<NO3>*<ALD2> + PTERMS(:,8,62) = -TPK%K061(:)*PCONC(:,8)*PCONC(:,29) +! +!PTERMS(ALD2,K061) = -K061*<NO3>*<ALD2> + PTERMS(:,29,62) = -TPK%K061(:)*PCONC(:,8)*PCONC(:,29) +! +!PTERMS(RO2T,K061) = +K061*<NO3>*<ALD2> + PTERMS(:,85,62) = +TPK%K061(:)*PCONC(:,8)*PCONC(:,29) +! +!PTERMS(OH,K062) = -K062*<OH>*<KETL> + PTERMS(:,15,63) = -TPK%K062(:)*PCONC(:,15)*PCONC(:,30) +! +!PTERMS(KETL,K062) = -K062*<OH>*<KETL> + PTERMS(:,30,63) = -TPK%K062(:)*PCONC(:,15)*PCONC(:,30) +! +!PTERMS(RO2T,K062) = +K062*<OH>*<KETL> + PTERMS(:,85,63) = +TPK%K062(:)*PCONC(:,15)*PCONC(:,30) +! +!PTERMS(KETL,K063) = -K063*<KETL> + PTERMS(:,30,64) = -TPK%K063(:)*PCONC(:,30) +! +!PTERMS(RO2T,K063) = +2.*K063*<KETL> + PTERMS(:,85,64) = +2.*TPK%K063(:)*PCONC(:,30) +! +!PTERMS(RO25,K063) = +K063*<KETL> + PTERMS(:,87,64) = +TPK%K063(:)*PCONC(:,30) +! +!PTERMS(OH,K064) = -K064*<OH>*<ISOP> + PTERMS(:,15,65) = -TPK%K064(:)*PCONC(:,15)*PCONC(:,35) +! +!PTERMS(ISOP,K064) = -K064*<OH>*<ISOP> + PTERMS(:,35,65) = -TPK%K064(:)*PCONC(:,15)*PCONC(:,35) +! +!PTERMS(RO2T,K064) = +K064*<OH>*<ISOP> + PTERMS(:,85,65) = +TPK%K064(:)*PCONC(:,15)*PCONC(:,35) +! +!PTERMS(NO3,K065) = -K065*<NO3>*<ISOP> + PTERMS(:,8,66) = -TPK%K065(:)*PCONC(:,8)*PCONC(:,35) +! +! +RETURN +END SUBROUTINE SUBT9 +! +SUBROUTINE SUBT10 +! +!Indices 201 a 220 +! +!PTERMS(ISOP,K065) = -K065*<NO3>*<ISOP> + PTERMS(:,35,66) = -TPK%K065(:)*PCONC(:,8)*PCONC(:,35) +! +!PTERMS(RO2T,K065) = +K065*<NO3>*<ISOP> + PTERMS(:,85,66) = +TPK%K065(:)*PCONC(:,8)*PCONC(:,35) +! +!PTERMS(O3,K066) = -K066*<O3>*<ISOP> + PTERMS(:,3,67) = -TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +! +!PTERMS(HO2,K066) = +0.366*K066*<O3>*<ISOP> + PTERMS(:,10,67) = +0.366*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +! +!PTERMS(CO,K066) = +0.461*K066*<O3>*<ISOP> + PTERMS(:,11,67) = +0.461*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +! +!PTERMS(OH,K066) = +0.664*K066*<O3>*<ISOP> + PTERMS(:,15,67) = +0.664*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +! +!PTERMS(OLEL,K066) = +0.054*K066*<O3>*<ISOP> + PTERMS(:,17,67) = +0.054*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +! +!PTERMS(HCHO,K066) = +0.5*K066*<O3>*<ISOP> + PTERMS(:,28,67) = +0.5*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +! +!PTERMS(ISOP,K066) = -K066*<O3>*<ISOP> + PTERMS(:,35,67) = -TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +! +!PTERMS(MVK,K066) = +0.389*K066*<O3>*<ISOP> + PTERMS(:,39,67) = +0.389*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +! +!PTERMS(MCR,K066) = +0.17*K066*<O3>*<ISOP> + PTERMS(:,40,67) = +0.17*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +! +!PTERMS(ORA1,K066) = +0.121*K066*<O3>*<ISOP> + PTERMS(:,43,67) = +0.121*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +! +!PTERMS(RO2T,K066) = +0.366*K066*<O3>*<ISOP> + PTERMS(:,85,67) = +0.366*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +! +!PTERMS(OLEL,K067) = +0.925*K067*<O>*<ISOP> + PTERMS(:,17,68) = +0.925*TPK%K067(:)*TPK%O(:)*PCONC(:,35) +! +!PTERMS(ALD2,K067) = +0.075*K067*<O>*<ISOP> + PTERMS(:,29,68) = +0.075*TPK%K067(:)*TPK%O(:)*PCONC(:,35) +! +!PTERMS(ISOP,K067) = -K067*<O>*<ISOP> + PTERMS(:,35,68) = -TPK%K067(:)*TPK%O(:)*PCONC(:,35) +! +!PTERMS(OH,K068) = -K068*<OH>*<MTBE> + PTERMS(:,15,69) = -TPK%K068(:)*PCONC(:,15)*PCONC(:,38) +! +!PTERMS(MTBE,K068) = -K068*<OH>*<MTBE> + PTERMS(:,38,69) = -TPK%K068(:)*PCONC(:,15)*PCONC(:,38) +! +!PTERMS(RO2T,K068) = +K068*<OH>*<MTBE> + PTERMS(:,85,69) = +TPK%K068(:)*PCONC(:,15)*PCONC(:,38) +! +!PTERMS(OH,K069) = -K069*<OH>*<ALCH> + PTERMS(:,15,70) = -TPK%K069(:)*PCONC(:,15)*PCONC(:,34) +! +! +RETURN +END SUBROUTINE SUBT10 +! +SUBROUTINE SUBT11 +! +!Indices 221 a 240 +! +!PTERMS(ALCH,K069) = -K069*<OH>*<ALCH> + PTERMS(:,34,70) = -TPK%K069(:)*PCONC(:,15)*PCONC(:,34) +! +!PTERMS(RO2T,K069) = +K069*<OH>*<ALCH> + PTERMS(:,85,70) = +TPK%K069(:)*PCONC(:,15)*PCONC(:,34) +! +!PTERMS(OH,K070) = -K070*<OH>*<KETH> + PTERMS(:,15,71) = -TPK%K070(:)*PCONC(:,15)*PCONC(:,31) +! +!PTERMS(KETH,K070) = -K070*<OH>*<KETH> + PTERMS(:,31,71) = -TPK%K070(:)*PCONC(:,15)*PCONC(:,31) +! +!PTERMS(RO2T,K070) = +K070*<OH>*<KETH> + PTERMS(:,85,71) = +TPK%K070(:)*PCONC(:,15)*PCONC(:,31) +! +!PTERMS(KETH,K071) = -K071*<KETH> + PTERMS(:,31,72) = -TPK%K071(:)*PCONC(:,31) +! +!PTERMS(RO2T,K071) = +2.*K071*<KETH> + PTERMS(:,85,72) = +2.*TPK%K071(:)*PCONC(:,31) +! +!PTERMS(RO25,K071) = +K071*<KETH> + PTERMS(:,87,72) = +TPK%K071(:)*PCONC(:,31) +! +!PTERMS(HNO3,K072) = +K072*<NO3>*<AROO> + PTERMS(:,5,73) = +TPK%K072(:)*PCONC(:,8)*PCONC(:,24) +! +!PTERMS(NO3,K072) = -K072*<NO3>*<AROO> + PTERMS(:,8,73) = -TPK%K072(:)*PCONC(:,8)*PCONC(:,24) +! +!PTERMS(AROO,K072) = -K072*<NO3>*<AROO> + PTERMS(:,24,73) = -TPK%K072(:)*PCONC(:,8)*PCONC(:,24) +! +!PTERMS(HO2,K073) = +0.16*K073*<OH>*<AROO> + PTERMS(:,10,74) = +0.16*TPK%K073(:)*PCONC(:,15)*PCONC(:,24) +! +!PTERMS(OH,K073) = -K073*<OH>*<AROO> + PTERMS(:,15,74) = -TPK%K073(:)*PCONC(:,15)*PCONC(:,24) +! +!PTERMS(AROO,K073) = -K073*<OH>*<AROO> + PTERMS(:,24,74) = -TPK%K073(:)*PCONC(:,15)*PCONC(:,24) +! +!PTERMS(RO2T,K073) = +0.1*K073*<OH>*<AROO> + PTERMS(:,85,74) = +0.1*TPK%K073(:)*PCONC(:,15)*PCONC(:,24) +! +!PTERMS(OH,K074) = -K074*<OH>*<OLEH> + PTERMS(:,15,75) = -TPK%K074(:)*PCONC(:,15)*PCONC(:,18) +! +!PTERMS(OLEH,K074) = -K074*<OH>*<OLEH> + PTERMS(:,18,75) = -TPK%K074(:)*PCONC(:,15)*PCONC(:,18) +! +!PTERMS(RO2T,K074) = +K074*<OH>*<OLEH> + PTERMS(:,85,75) = +TPK%K074(:)*PCONC(:,15)*PCONC(:,18) +! +!PTERMS(NO3,K075) = -K075*<NO3>*<OLEH> + PTERMS(:,8,76) = -TPK%K075(:)*PCONC(:,8)*PCONC(:,18) +! +!PTERMS(OLEH,K075) = -K075*<NO3>*<OLEH> + PTERMS(:,18,76) = -TPK%K075(:)*PCONC(:,8)*PCONC(:,18) +! +! +RETURN +END SUBROUTINE SUBT11 +! +SUBROUTINE SUBT12 +! +!Indices 241 a 260 +! +!PTERMS(RO2T,K075) = +K075*<NO3>*<OLEH> + PTERMS(:,85,76) = +TPK%K075(:)*PCONC(:,8)*PCONC(:,18) +! +!PTERMS(O3,K076) = -K076*<O3>*<OLEH> + PTERMS(:,3,77) = -TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(HO2,K076) = +0.28*K076*<O3>*<OLEH> + PTERMS(:,10,77) = +0.28*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(CO,K076) = +0.56*K076*<O3>*<OLEH> + PTERMS(:,11,77) = +0.56*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(OH,K076) = +0.36*K076*<O3>*<OLEH> + PTERMS(:,15,77) = +0.36*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(OLEH,K076) = -K076*<O3>*<OLEH> + PTERMS(:,18,77) = -TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(ALKM,K076) = +0.1*K076*<O3>*<OLEH> + PTERMS(:,20,77) = +0.1*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(HCHO,K076) = +0.5*K076*<O3>*<OLEH> + PTERMS(:,28,77) = +0.5*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(ACID,K076) = +0.12*K076*<O3>*<OLEH> + PTERMS(:,45,77) = +0.12*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(RPR1,K076) = +0.5*K076*<O3>*<OLEH> + PTERMS(:,69,77) = +0.5*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(RO2T,K076) = +0.28*K076*<O3>*<OLEH> + PTERMS(:,85,77) = +0.28*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(OLEH,K077) = -K077*<O>*<OLEH> + PTERMS(:,18,78) = -TPK%K077(:)*TPK%O(:)*PCONC(:,18) +! +!PTERMS(ALKM,K077) = +0.5*K077*<O>*<OLEH> + PTERMS(:,20,78) = +0.5*TPK%K077(:)*TPK%O(:)*PCONC(:,18) +! +!PTERMS(RPR1,K077) = +0.4*K077*<O>*<OLEH> + PTERMS(:,69,78) = +0.4*TPK%K077(:)*TPK%O(:)*PCONC(:,18) +! +!PTERMS(RO2T,K077) = +0.2*K077*<O>*<OLEH> + PTERMS(:,85,78) = +0.2*TPK%K077(:)*TPK%O(:)*PCONC(:,18) +! +!PTERMS(OH,K078) = -K078*<OH>*<ALKM> + PTERMS(:,15,79) = -TPK%K078(:)*PCONC(:,15)*PCONC(:,20) +! +!PTERMS(ALKM,K078) = -K078*<OH>*<ALKM> + PTERMS(:,20,79) = -TPK%K078(:)*PCONC(:,15)*PCONC(:,20) +! +!PTERMS(RO2T,K078) = +K078*<OH>*<ALKM> + PTERMS(:,85,79) = +TPK%K078(:)*PCONC(:,15)*PCONC(:,20) +! +!PTERMS(HO2,K079) = +0.16*K079*<OH>*<AROL> + PTERMS(:,10,80) = +0.16*TPK%K079(:)*PCONC(:,15)*PCONC(:,23) +! +!PTERMS(OH,K079) = -K079*<OH>*<AROL> + PTERMS(:,15,80) = -TPK%K079(:)*PCONC(:,15)*PCONC(:,23) +! +! +RETURN +END SUBROUTINE SUBT12 +! +SUBROUTINE SUBT13 +! +!Indices 261 a 280 +! +!PTERMS(AROL,K079) = -K079*<OH>*<AROL> + PTERMS(:,23,80) = -TPK%K079(:)*PCONC(:,15)*PCONC(:,23) +! +!PTERMS(AROO,K079) = +0.16*K079*<OH>*<AROL> + PTERMS(:,24,80) = +0.16*TPK%K079(:)*PCONC(:,15)*PCONC(:,23) +! +!PTERMS(RO2T,K079) = +0.06*K079*<OH>*<AROL> + PTERMS(:,85,80) = +0.06*TPK%K079(:)*PCONC(:,15)*PCONC(:,23) +! +!PTERMS(HO2,K080) = +0.16*K080*<OH>*<AROH> + PTERMS(:,10,81) = +0.16*TPK%K080(:)*PCONC(:,15)*PCONC(:,22) +! +!PTERMS(OH,K080) = -K080*<OH>*<AROH> + PTERMS(:,15,81) = -TPK%K080(:)*PCONC(:,15)*PCONC(:,22) +! +!PTERMS(AROH,K080) = -K080*<OH>*<AROH> + PTERMS(:,22,81) = -TPK%K080(:)*PCONC(:,15)*PCONC(:,22) +! +!PTERMS(AROO,K080) = +0.16*K080*<OH>*<AROH> + PTERMS(:,24,81) = +0.16*TPK%K080(:)*PCONC(:,15)*PCONC(:,22) +! +!PTERMS(O3,K081) = +K081*<NO3>*<ARAL> + PTERMS(:,3,82) = +TPK%K081(:)*PCONC(:,8)*PCONC(:,25) +! +!PTERMS(HNO3,K081) = +K081*<NO3>*<ARAL> + PTERMS(:,5,82) = +TPK%K081(:)*PCONC(:,8)*PCONC(:,25) +! +!PTERMS(NO3,K081) = -K081*<NO3>*<ARAL> + PTERMS(:,8,82) = -TPK%K081(:)*PCONC(:,8)*PCONC(:,25) +! +!PTERMS(ARAL,K081) = -K081*<NO3>*<ARAL> + PTERMS(:,25,82) = -TPK%K081(:)*PCONC(:,8)*PCONC(:,25) +! +!PTERMS(ARAC,K081) = +K081*<NO3>*<ARAL> + PTERMS(:,26,82) = +TPK%K081(:)*PCONC(:,8)*PCONC(:,25) +! +!PTERMS(O3,K082) = +TPK%CF39*K082*<OH>*<ARAL> + PTERMS(:,3,83) = +TPK%CF39*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) +! +!PTERMS(HO2,K082) = +TPK%CF48*K082*<OH>*<ARAL> + PTERMS(:,10,83) = +TPK%CF48*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) +! +!PTERMS(OH,K082) = -K082*<OH>*<ARAL> + PTERMS(:,15,83) = -TPK%K082(:)*PCONC(:,15)*PCONC(:,25) +! +!PTERMS(ARAL,K082) = -K082*<OH>*<ARAL> + PTERMS(:,25,83) = -TPK%K082(:)*PCONC(:,15)*PCONC(:,25) +! +!PTERMS(ARAC,K082) = +TPK%CF39*K082*<OH>*<ARAL> + PTERMS(:,26,83) = +TPK%CF39*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) +! +!PTERMS(RPRL,K082) = +0.9983609*K082*<OH>*<ARAL> + PTERMS(:,75,83) = +0.9983609*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) +! +!PTERMS(RO2T,K082) = +TPK%CF45*K082*<OH>*<ARAL> + PTERMS(:,85,83) = +TPK%CF45*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) +! +!PTERMS(HO2,K083) = +0.16*K083*<OH>*<ARAC> + PTERMS(:,10,84) = +0.16*TPK%K083(:)*PCONC(:,15)*PCONC(:,26) +! +! +RETURN +END SUBROUTINE SUBT13 +! +SUBROUTINE SUBT14 +! +!Indices 281 a 300 +! +!PTERMS(OH,K083) = -K083*<OH>*<ARAC> + PTERMS(:,15,84) = -TPK%K083(:)*PCONC(:,15)*PCONC(:,26) +! +!PTERMS(ARAC,K083) = -K083*<OH>*<ARAC> + PTERMS(:,26,84) = -TPK%K083(:)*PCONC(:,15)*PCONC(:,26) +! +!PTERMS(URG7,K083) = +0.1599999*K083*<OH>*<ARAC> + PTERMS(:,60,84) = +0.1599999*TPK%K083(:)*PCONC(:,15)*PCONC(:,26) +! +!PTERMS(RO2T,K083) = +0.1*K083*<OH>*<ARAC> + PTERMS(:,85,84) = +0.1*TPK%K083(:)*PCONC(:,15)*PCONC(:,26) +! +!PTERMS(OH,K084) = -K084*<OH>*<BIOL> + PTERMS(:,15,85) = -TPK%K084(:)*PCONC(:,15)*PCONC(:,36) +! +!PTERMS(BIOL,K084) = -K084*<OH>*<BIOL> + PTERMS(:,36,85) = -TPK%K084(:)*PCONC(:,15)*PCONC(:,36) +! +!PTERMS(RO2T,K084) = +K084*<OH>*<BIOL> + PTERMS(:,85,85) = +TPK%K084(:)*PCONC(:,15)*PCONC(:,36) +! +!PTERMS(NO3,K085) = -K085*<NO3>*<BIOL> + PTERMS(:,8,86) = -TPK%K085(:)*PCONC(:,8)*PCONC(:,36) +! +!PTERMS(BIOL,K085) = -K085*<NO3>*<BIOL> + PTERMS(:,36,86) = -TPK%K085(:)*PCONC(:,8)*PCONC(:,36) +! +!PTERMS(RO2T,K085) = +K085*<NO3>*<BIOL> + PTERMS(:,85,86) = +TPK%K085(:)*PCONC(:,8)*PCONC(:,36) +! +!PTERMS(O3,K086) = -K086*<O3>*<BIOL> + PTERMS(:,3,87) = -TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(HO2,K086) = +0.445*K086*<O3>*<BIOL> + PTERMS(:,10,87) = +0.445*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(CO,K086) = +0.445*K086*<O3>*<BIOL> + PTERMS(:,11,87) = +0.445*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(H2O2,K086) = +0.055*K086*<O3>*<BIOL> + PTERMS(:,12,87) = +0.055*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(OH,K086) = +0.89*K086*<O3>*<BIOL> + PTERMS(:,15,87) = +0.89*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(BIOL,K086) = -K086*<O3>*<BIOL> + PTERMS(:,36,87) = -TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(URG4,K086) = +5.5000000E-02*K086*<O3>*<BIOL> + PTERMS(:,53,87) = +5.5000000E-02*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(RPR3,K086) = +0.055*K086*<O3>*<BIOL> + PTERMS(:,57,87) = +0.055*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(RO2T,K086) = +0.445*K086*<O3>*<BIOL> + PTERMS(:,85,87) = +0.445*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(BIOL,K087) = -K087*<O>*<BIOL> + PTERMS(:,36,88) = -TPK%K087(:)*TPK%O(:)*PCONC(:,36) +! +! +RETURN +END SUBROUTINE SUBT14 +! +SUBROUTINE SUBT15 +! +!Indices 301 a 320 +! +!PTERMS(URG10,K087) = +0.7500000*K087*<O>*<BIOL> + PTERMS(:,68,88) = +0.7500000*TPK%K087(:)*TPK%O(:)*PCONC(:,36) +! +!PTERMS(OH,K088) = -K088*<OH>*<BIOH> + PTERMS(:,15,89) = -TPK%K088(:)*PCONC(:,15)*PCONC(:,37) +! +!PTERMS(BIOH,K088) = -K088*<OH>*<BIOH> + PTERMS(:,37,89) = -TPK%K088(:)*PCONC(:,15)*PCONC(:,37) +! +!PTERMS(RO2T,K088) = +K088*<OH>*<BIOH> + PTERMS(:,85,89) = +TPK%K088(:)*PCONC(:,15)*PCONC(:,37) +! +!PTERMS(NO3,K089) = -K089*<NO3>*<BIOH> + PTERMS(:,8,90) = -TPK%K089(:)*PCONC(:,8)*PCONC(:,37) +! +!PTERMS(BIOH,K089) = -K089*<NO3>*<BIOH> + PTERMS(:,37,90) = -TPK%K089(:)*PCONC(:,8)*PCONC(:,37) +! +!PTERMS(RO2T,K089) = +K089*<NO3>*<BIOH> + PTERMS(:,85,90) = +TPK%K089(:)*PCONC(:,8)*PCONC(:,37) +! +!PTERMS(O3,K090) = -K090*<O3>*<BIOH> + PTERMS(:,3,91) = -TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +! +!PTERMS(CO,K090) = +0.445*K090*<O3>*<BIOH> + PTERMS(:,11,91) = +0.445*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +! +!PTERMS(H2O2,K090) = +0.055*K090*<O3>*<BIOH> + PTERMS(:,12,91) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +! +!PTERMS(OH,K090) = +0.89*K090*<O3>*<BIOH> + PTERMS(:,15,91) = +0.89*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +! +!PTERMS(BIOH,K090) = -K090*<O3>*<BIOH> + PTERMS(:,37,91) = -TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +! +!PTERMS(UR8,K090) = +0.055*K090*<O3>*<BIOH> + PTERMS(:,54,91) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +! +!PTERMS(UR7,K090) = +0.055*K090*<O3>*<BIOH> + PTERMS(:,56,91) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +! +!PTERMS(RO2T,K090) = +0.89*K090*<O3>*<BIOH> + PTERMS(:,85,91) = +0.89*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +! +!PTERMS(BIOH,K091) = -K091*<O>*<BIOH> + PTERMS(:,37,92) = -TPK%K091(:)*TPK%O(:)*PCONC(:,37) +! +!PTERMS(HO2,K092) = +0.16*K092*<OH>*<PAH> + PTERMS(:,10,93) = +0.16*TPK%K092(:)*PCONC(:,15)*PCONC(:,27) +! +!PTERMS(OH,K092) = -K092*<OH>*<PAH> + PTERMS(:,15,93) = -TPK%K092(:)*PCONC(:,15)*PCONC(:,27) +! +!PTERMS(PAH,K092) = -K092*<OH>*<PAH> + PTERMS(:,27,93) = -TPK%K092(:)*PCONC(:,15)*PCONC(:,27) +! +!PTERMS(URG8,K092) = +0.1600000*K092*<OH>*<PAH> + PTERMS(:,64,93) = +0.1600000*TPK%K092(:)*PCONC(:,15)*PCONC(:,27) +! +! +RETURN +END SUBROUTINE SUBT15 +! +SUBROUTINE SUBT16 +! +!Indices 321 a 340 +! +!PTERMS(RO2T,K092) = +0.1*K092*<OH>*<PAH> + PTERMS(:,85,93) = +0.1*TPK%K092(:)*PCONC(:,15)*PCONC(:,27) +! +!PTERMS(OH,K093) = -K093*<OH>*<ALKH> + PTERMS(:,15,94) = -TPK%K093(:)*PCONC(:,15)*PCONC(:,21) +! +!PTERMS(ALKH,K093) = -K093*<OH>*<ALKH> + PTERMS(:,21,94) = -TPK%K093(:)*PCONC(:,15)*PCONC(:,21) +! +!PTERMS(RO2T,K093) = +K093*<OH>*<ALKH> + PTERMS(:,85,94) = +TPK%K093(:)*PCONC(:,15)*PCONC(:,21) +! +!PTERMS(HO2,K094) = -K094*<HO2>*<RO2T> + PTERMS(:,10,95) = -TPK%K094(:)*PCONC(:,10)*PCONC(:,85) +! +!PTERMS(RO2T,K094) = -K094*<HO2>*<RO2T> + PTERMS(:,85,95) = -TPK%K094(:)*PCONC(:,10)*PCONC(:,85) +! +!PTERMS(NO,K095) = -K095*<NO>*<RO2T> + PTERMS(:,1,96) = -TPK%K095(:)*PCONC(:,1)*PCONC(:,85) +! +!PTERMS(RO2T,K095) = -K095*<NO>*<RO2T> + PTERMS(:,85,96) = -TPK%K095(:)*PCONC(:,1)*PCONC(:,85) +! +!PTERMS(RO2T,K096) = -K096*<RO2T>*<RO2T> + PTERMS(:,85,97) = -TPK%K096(:)*PCONC(:,85)*PCONC(:,85) +! +!PTERMS(RO2T,K097) = +K097*<RAD2> + PTERMS(:,85,98) = +TPK%K097(:)*TPK%RAD2(:) +! +!PTERMS(RO2T,K098) = +K098*<RAD3> + PTERMS(:,85,99) = +TPK%K098(:)*TPK%RAD3(:) +! +!PTERMS(RO2T,K099) = +K099*<RAD4> + PTERMS(:,85,100) = +TPK%K099(:)*TPK%RAD4(:) +! +!PTERMS(RO2T,K100) = +K100*<RAD5> + PTERMS(:,85,101) = +TPK%K100(:)*TPK%RAD5(:) +! +!PTERMS(RO2T,K101) = +K101*<RAD6> + PTERMS(:,85,102) = +TPK%K101(:)*TPK%RAD6(:) +! +!PTERMS(RO2T,K102) = +K102*<RAD7> + PTERMS(:,85,103) = +TPK%K102(:)*TPK%RAD7(:) +! +!PTERMS(NO2,K103) = -K103*<NO2>*<RAD1> + PTERMS(:,2,104) = -TPK%K103(:)*PCONC(:,2)*TPK%RAD1(:) +! +!PTERMS(RPR4,K103) = +K103*<NO2>*<RAD1> + PTERMS(:,61,104) = +TPK%K103(:)*PCONC(:,2)*TPK%RAD1(:) +! +!PTERMS(NO2,K104) = -K104*<NO2>*<RAD2> + PTERMS(:,2,105) = -TPK%K104(:)*PCONC(:,2)*TPK%RAD2(:) +! +!PTERMS(RPR4,K104) = +K104*<NO2>*<RAD2> + PTERMS(:,61,105) = +TPK%K104(:)*PCONC(:,2)*TPK%RAD2(:) +! +!PTERMS(NO2,K105) = -K105*<NO2>*<RAD3> + PTERMS(:,2,106) = -TPK%K105(:)*PCONC(:,2)*TPK%RAD3(:) +! +! +RETURN +END SUBROUTINE SUBT16 +! +SUBROUTINE SUBT17 +! +!Indices 341 a 360 +! +!PTERMS(NO2,K106) = -K106*<NO2>*<RAD4> + PTERMS(:,2,107) = -TPK%K106(:)*PCONC(:,2)*TPK%RAD4(:) +! +!PTERMS(NO2,K107) = -K107*<NO2>*<RAD5> + PTERMS(:,2,108) = -TPK%K107(:)*PCONC(:,2)*TPK%RAD5(:) +! +!PTERMS(RPR5,K107) = +K107*<NO2>*<RAD5> + PTERMS(:,70,108) = +TPK%K107(:)*PCONC(:,2)*TPK%RAD5(:) +! +!PTERMS(NO2,K108) = -K108*<NO2>*<RAD6> + PTERMS(:,2,109) = -TPK%K108(:)*PCONC(:,2)*TPK%RAD6(:) +! +!PTERMS(URG7,K108) = +0.9999993*K108*<NO2>*<RAD6> + PTERMS(:,60,109) = +0.9999993*TPK%K108(:)*PCONC(:,2)*TPK%RAD6(:) +! +!PTERMS(NO2,K109) = -K109*<NO2>*<RAD7> + PTERMS(:,2,110) = -TPK%K109(:)*PCONC(:,2)*TPK%RAD7(:) +! +!PTERMS(URG8,K109) = +1.0000000*K109*<NO2>*<RAD7> + PTERMS(:,64,110) = +1.0000000*TPK%K109(:)*PCONC(:,2)*TPK%RAD7(:) +! +!PTERMS(NO,K110) = -K110*<NO>*<RO21> + PTERMS(:,1,111) = -TPK%K110(:)*PCONC(:,1)*PCONC(:,86) +! +!PTERMS(NO2,K110) = +K110*<NO>*<RO21> + PTERMS(:,2,111) = +TPK%K110(:)*PCONC(:,1)*PCONC(:,86) +! +!PTERMS(HO2,K110) = +K110*<NO>*<RO21> + PTERMS(:,10,111) = +TPK%K110(:)*PCONC(:,1)*PCONC(:,86) +! +!PTERMS(HCHO,K110) = +K110*<NO>*<RO21> + PTERMS(:,28,111) = +TPK%K110(:)*PCONC(:,1)*PCONC(:,86) +! +!PTERMS(RO21,K110) = -K110*<NO>*<RO21> + PTERMS(:,86,111) = -TPK%K110(:)*PCONC(:,1)*PCONC(:,86) +! +!PTERMS(HO2,K111) = +K111*<RO2T>*<RO21> + PTERMS(:,10,112) = +TPK%K111(:)*PCONC(:,85)*PCONC(:,86) +! +!PTERMS(HCHO,K111) = +K111*<RO2T>*<RO21> + PTERMS(:,28,112) = +TPK%K111(:)*PCONC(:,85)*PCONC(:,86) +! +!PTERMS(RO2T,K111) = -K111*<RO2T>*<RO21> + PTERMS(:,85,112) = -TPK%K111(:)*PCONC(:,85)*PCONC(:,86) +! +!PTERMS(RO21,K111) = -K111*<RO2T>*<RO21> + PTERMS(:,86,112) = -TPK%K111(:)*PCONC(:,85)*PCONC(:,86) +! +!PTERMS(HO2,K112) = -K112*<HO2>*<RO21> + PTERMS(:,10,113) = -TPK%K112(:)*PCONC(:,10)*PCONC(:,86) +! +!PTERMS(OH,K112) = +K112*<HO2>*<RO21> + PTERMS(:,15,113) = +TPK%K112(:)*PCONC(:,10)*PCONC(:,86) +! +!PTERMS(HCHO,K112) = +K112*<HO2>*<RO21> + PTERMS(:,28,113) = +TPK%K112(:)*PCONC(:,10)*PCONC(:,86) +! +!PTERMS(RO21,K112) = -K112*<HO2>*<RO21> + PTERMS(:,86,113) = -TPK%K112(:)*PCONC(:,10)*PCONC(:,86) +! +! +RETURN +END SUBROUTINE SUBT17 +! +SUBROUTINE SUBT18 +! +!Indices 361 a 380 +! +!PTERMS(NO,K113) = -K113*<NO>*<RO22> + PTERMS(:,1,114) = -TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) +! +!PTERMS(NO2,K113) = +K113*<NO>*<RO22> + PTERMS(:,2,114) = +TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) +! +!PTERMS(HO2,K113) = +K113*<NO>*<RO22> + PTERMS(:,10,114) = +TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) +! +!PTERMS(HCHO,K113) = +K113*<NO>*<RO22> + PTERMS(:,28,114) = +TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) +! +!PTERMS(ALD2,K113) = +K113*<NO>*<RO22> + PTERMS(:,29,114) = +TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) +! +!PTERMS(HO2,K114) = +K114*<RO2T>*<RO22> + PTERMS(:,10,115) = +TPK%K114(:)*PCONC(:,85)*TPK%RO22(:) +! +!PTERMS(HCHO,K114) = +K114*<RO2T>*<RO22> + PTERMS(:,28,115) = +TPK%K114(:)*PCONC(:,85)*TPK%RO22(:) +! +!PTERMS(ALD2,K114) = +K114*<RO2T>*<RO22> + PTERMS(:,29,115) = +TPK%K114(:)*PCONC(:,85)*TPK%RO22(:) +! +!PTERMS(RO2T,K114) = -K114*<RO2T>*<RO22> + PTERMS(:,85,115) = -TPK%K114(:)*PCONC(:,85)*TPK%RO22(:) +! +!PTERMS(HO2,K115) = -K115*<HO2>*<RO22> + PTERMS(:,10,116) = -TPK%K115(:)*PCONC(:,10)*TPK%RO22(:) +! +!PTERMS(OH,K115) = +K115*<HO2>*<RO22> + PTERMS(:,15,116) = +TPK%K115(:)*PCONC(:,10)*TPK%RO22(:) +! +!PTERMS(HCHO,K115) = +K115*<HO2>*<RO22> + PTERMS(:,28,116) = +TPK%K115(:)*PCONC(:,10)*TPK%RO22(:) +! +!PTERMS(ALD2,K115) = +K115*<HO2>*<RO22> + PTERMS(:,29,116) = +TPK%K115(:)*PCONC(:,10)*TPK%RO22(:) +! +!PTERMS(NO,K116) = -K116*<NO>*<RO23> + PTERMS(:,1,117) = -TPK%K116(:)*PCONC(:,1)*TPK%RO23(:) +! +!PTERMS(NO2,K116) = +2.*K116*<NO>*<RO23> + PTERMS(:,2,117) = +2.*TPK%K116(:)*PCONC(:,1)*TPK%RO23(:) +! +!PTERMS(HCHO,K116) = +K116*<NO>*<RO23> + PTERMS(:,28,117) = +TPK%K116(:)*PCONC(:,1)*TPK%RO23(:) +! +!PTERMS(ALD2,K116) = +K116*<NO>*<RO23> + PTERMS(:,29,117) = +TPK%K116(:)*PCONC(:,1)*TPK%RO23(:) +! +!PTERMS(NO2,K117) = +K117*<RO2T>*<RO23> + PTERMS(:,2,118) = +TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) +! +!PTERMS(HO2,K117) = +K117*<RO2T>*<RO23> + PTERMS(:,10,118) = +TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) +! +!PTERMS(HCHO,K117) = +K117*<RO2T>*<RO23> + PTERMS(:,28,118) = +TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) +! +! +RETURN +END SUBROUTINE SUBT18 +! +SUBROUTINE SUBT19 +! +!Indices 381 a 400 +! +!PTERMS(ALD2,K117) = +K117*<RO2T>*<RO23> + PTERMS(:,29,118) = +TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) +! +!PTERMS(RO2T,K117) = -K117*<RO2T>*<RO23> + PTERMS(:,85,118) = -TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) +! +!PTERMS(NO2,K118) = +K118*<HO2>*<RO23> + PTERMS(:,2,119) = +TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) +! +!PTERMS(HO2,K118) = -K118*<HO2>*<RO23> + PTERMS(:,10,119) = -TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) +! +!PTERMS(OH,K118) = +K118*<HO2>*<RO23> + PTERMS(:,15,119) = +TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) +! +!PTERMS(HCHO,K118) = +K118*<HO2>*<RO23> + PTERMS(:,28,119) = +TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) +! +!PTERMS(ALD2,K118) = +K118*<HO2>*<RO23> + PTERMS(:,29,119) = +TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) +! +!PTERMS(NO,K119) = -K119*<NO>*<RO24> + PTERMS(:,1,120) = -TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) +! +!PTERMS(NO2,K119) = +K119*<NO>*<RO24> + PTERMS(:,2,120) = +TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) +! +!PTERMS(HO2,K119) = +K119*<NO>*<RO24> + PTERMS(:,10,120) = +TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) +! +!PTERMS(CO,K119) = +K119*<NO>*<RO24> + PTERMS(:,11,120) = +TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) +! +!PTERMS(HCHO,K119) = +K119*<NO>*<RO24> + PTERMS(:,28,120) = +TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) +! +!PTERMS(HO2,K120) = +K120*<RO2T>*<RO24> + PTERMS(:,10,121) = +TPK%K120(:)*PCONC(:,85)*TPK%RO24(:) +! +!PTERMS(CO,K120) = +K120*<RO2T>*<RO24> + PTERMS(:,11,121) = +TPK%K120(:)*PCONC(:,85)*TPK%RO24(:) +! +!PTERMS(HCHO,K120) = +K120*<RO2T>*<RO24> + PTERMS(:,28,121) = +TPK%K120(:)*PCONC(:,85)*TPK%RO24(:) +! +!PTERMS(RO2T,K120) = -K120*<RO2T>*<RO24> + PTERMS(:,85,121) = -TPK%K120(:)*PCONC(:,85)*TPK%RO24(:) +! +!PTERMS(HO2,K121) = -K121*<HO2>*<RO24> + PTERMS(:,10,122) = -TPK%K121(:)*PCONC(:,10)*TPK%RO24(:) +! +!PTERMS(CO,K121) = +K121*<HO2>*<RO24> + PTERMS(:,11,122) = +TPK%K121(:)*PCONC(:,10)*TPK%RO24(:) +! +!PTERMS(OH,K121) = +K121*<HO2>*<RO24> + PTERMS(:,15,122) = +TPK%K121(:)*PCONC(:,10)*TPK%RO24(:) +! +!PTERMS(HCHO,K121) = +K121*<HO2>*<RO24> + PTERMS(:,28,122) = +TPK%K121(:)*PCONC(:,10)*TPK%RO24(:) +! +! +RETURN +END SUBROUTINE SUBT19 +! +SUBROUTINE SUBT20 +! +!Indices 401 a 420 +! +!PTERMS(NO,K122) = -K122*<NO>*<RO25> + PTERMS(:,1,123) = -TPK%K122(:)*PCONC(:,1)*PCONC(:,87) +! +!PTERMS(NO2,K122) = +TPK%CF4*K122*<NO>*<RO25> + PTERMS(:,2,123) = +TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87) +! +!PTERMS(HO2,K122) = +TPK%CF4*K122*<NO>*<RO25> + PTERMS(:,10,123) = +TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87) +! +!PTERMS(ALKL,K122) = +TPK%CF3*K122*<NO>*<RO25> + PTERMS(:,19,123) = +TPK%CF3*TPK%K122(:)*PCONC(:,1)*PCONC(:,87) +! +!PTERMS(ALD2,K122) = +TPK%CF4*K122*<NO>*<RO25> + PTERMS(:,29,123) = +TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87) +! +!PTERMS(RO25,K122) = -K122*<NO>*<RO25> + PTERMS(:,87,123) = -TPK%K122(:)*PCONC(:,1)*PCONC(:,87) +! +!PTERMS(HO2,K123) = +K123*<RO2T>*<RO25> + PTERMS(:,10,124) = +TPK%K123(:)*PCONC(:,85)*PCONC(:,87) +! +!PTERMS(ALD2,K123) = +K123*<RO2T>*<RO25> + PTERMS(:,29,124) = +TPK%K123(:)*PCONC(:,85)*PCONC(:,87) +! +!PTERMS(RO2T,K123) = -K123*<RO2T>*<RO25> + PTERMS(:,85,124) = -TPK%K123(:)*PCONC(:,85)*PCONC(:,87) +! +!PTERMS(RO25,K123) = -K123*<RO2T>*<RO25> + PTERMS(:,87,124) = -TPK%K123(:)*PCONC(:,85)*PCONC(:,87) +! +!PTERMS(HO2,K124) = -K124*<HO2>*<RO25> + PTERMS(:,10,125) = -TPK%K124(:)*PCONC(:,10)*PCONC(:,87) +! +!PTERMS(OH,K124) = +K124*<HO2>*<RO25> + PTERMS(:,15,125) = +TPK%K124(:)*PCONC(:,10)*PCONC(:,87) +! +!PTERMS(ALD2,K124) = +K124*<HO2>*<RO25> + PTERMS(:,29,125) = +TPK%K124(:)*PCONC(:,10)*PCONC(:,87) +! +!PTERMS(RO25,K124) = -K124*<HO2>*<RO25> + PTERMS(:,87,125) = -TPK%K124(:)*PCONC(:,10)*PCONC(:,87) +! +!PTERMS(NO,K125) = -K125*<NO>*<RO26> + PTERMS(:,1,126) = -TPK%K125(:)*PCONC(:,1)*TPK%RO26(:) +! +!PTERMS(NO2,K125) = +K125*<NO>*<RO26> + PTERMS(:,2,126) = +TPK%K125(:)*PCONC(:,1)*TPK%RO26(:) +! +!PTERMS(RO2T,K125) = +K125*<NO>*<RO26> + PTERMS(:,85,126) = +TPK%K125(:)*PCONC(:,1)*TPK%RO26(:) +! +!PTERMS(RO25,K125) = +K125*<NO>*<RO26> + PTERMS(:,87,126) = +TPK%K125(:)*PCONC(:,1)*TPK%RO26(:) +! +!PTERMS(NO2,K126) = -K126*<NO2>*<RO26> + PTERMS(:,2,127) = -TPK%K126(:)*PCONC(:,2)*TPK%RO26(:) +! +!PTERMS(PAN1,K126) = +K126*<NO2>*<RO26> + PTERMS(:,77,127) = +TPK%K126(:)*PCONC(:,2)*TPK%RO26(:) +! +! +RETURN +END SUBROUTINE SUBT20 +! +SUBROUTINE SUBT21 +! +!Indices 421 a 440 +! +!PTERMS(NO2,K127) = -K127*<NO2>*<RO28> + PTERMS(:,2,128) = -TPK%K127(:)*PCONC(:,2)*TPK%RO28(:) +! +!PTERMS(PAN2,K127) = +K127*<NO2>*<RO28> + PTERMS(:,78,128) = +TPK%K127(:)*PCONC(:,2)*TPK%RO28(:) +! +!PTERMS(NO2,K128) = -K128*<NO2>*<RO239> + PTERMS(:,2,129) = -TPK%K128(:)*PCONC(:,2)*TPK%RO239(:) +! +!PTERMS(PAN3,K128) = +K128*<NO2>*<RO239> + PTERMS(:,79,129) = +TPK%K128(:)*PCONC(:,2)*TPK%RO239(:) +! +!PTERMS(NO2,K129) = -K129*<NO2>*<RO248> + PTERMS(:,2,130) = -TPK%K129(:)*PCONC(:,2)*TPK%RO248(:) +! +!PTERMS(PAN4,K129) = +K129*<NO2>*<RO248> + PTERMS(:,80,130) = +TPK%K129(:)*PCONC(:,2)*TPK%RO248(:) +! +!PTERMS(NO2,K130) = -K130*<NO2>*<RO250> + PTERMS(:,2,131) = -TPK%K130(:)*PCONC(:,2)*TPK%RO250(:) +! +!PTERMS(APAN,K130) = +K130*<NO2>*<RO250> + PTERMS(:,76,131) = +TPK%K130(:)*PCONC(:,2)*TPK%RO250(:) +! +!PTERMS(NO2,K131) = -K131*<NO2>*<RO254> + PTERMS(:,2,132) = -TPK%K131(:)*PCONC(:,2)*TPK%RO254(:) +! +!PTERMS(PAN6,K131) = +K131*<NO2>*<RO254> + PTERMS(:,81,132) = +TPK%K131(:)*PCONC(:,2)*TPK%RO254(:) +! +!PTERMS(NO2,K132) = -K132*<NO2>*<RO255> + PTERMS(:,2,133) = -TPK%K132(:)*PCONC(:,2)*TPK%RO255(:) +! +!PTERMS(PAN7,K132) = +K132*<NO2>*<RO255> + PTERMS(:,82,133) = +TPK%K132(:)*PCONC(:,2)*TPK%RO255(:) +! +!PTERMS(NO2,K133) = -K133*<NO2>*<RO257> + PTERMS(:,2,134) = -TPK%K133(:)*PCONC(:,2)*TPK%RO257(:) +! +!PTERMS(APAN,K133) = +K133*<NO2>*<RO257> + PTERMS(:,76,134) = +TPK%K133(:)*PCONC(:,2)*TPK%RO257(:) +! +!PTERMS(NO2,K134) = -K134*<NO2>*<RO258> + PTERMS(:,2,135) = -TPK%K134(:)*PCONC(:,2)*TPK%RO258(:) +! +!PTERMS(PN10,K134) = +K134*<NO2>*<RO258> + PTERMS(:,84,135) = +TPK%K134(:)*PCONC(:,2)*TPK%RO258(:) +! +!PTERMS(NO2,K135) = +K135*<PAN1> + PTERMS(:,2,136) = +TPK%K135(:)*PCONC(:,77) +! +!PTERMS(PAN1,K135) = -K135*<PAN1> + PTERMS(:,77,136) = -TPK%K135(:)*PCONC(:,77) +! +!PTERMS(RO2T,K135) = +K135*<PAN1> + PTERMS(:,85,136) = +TPK%K135(:)*PCONC(:,77) +! +!PTERMS(NO2,K136) = +K136*<PAN2> + PTERMS(:,2,137) = +TPK%K136(:)*PCONC(:,78) +! +! +RETURN +END SUBROUTINE SUBT21 +! +SUBROUTINE SUBT22 +! +!Indices 441 a 460 +! +!PTERMS(PAN2,K136) = -K136*<PAN2> + PTERMS(:,78,137) = -TPK%K136(:)*PCONC(:,78) +! +!PTERMS(RO2T,K136) = +K136*<PAN2> + PTERMS(:,85,137) = +TPK%K136(:)*PCONC(:,78) +! +!PTERMS(NO2,K137) = +K137*<PAN3> + PTERMS(:,2,138) = +TPK%K137(:)*PCONC(:,79) +! +!PTERMS(PAN3,K137) = -K137*<PAN3> + PTERMS(:,79,138) = -TPK%K137(:)*PCONC(:,79) +! +!PTERMS(RO2T,K137) = +K137*<PAN3> + PTERMS(:,85,138) = +TPK%K137(:)*PCONC(:,79) +! +!PTERMS(NO2,K138) = +K138*<PN10> + PTERMS(:,2,139) = +TPK%K138(:)*PCONC(:,84) +! +!PTERMS(PN10,K138) = -K138*<PN10> + PTERMS(:,84,139) = -TPK%K138(:)*PCONC(:,84) +! +!PTERMS(RO2T,K138) = +K138*<PN10> + PTERMS(:,85,139) = +TPK%K138(:)*PCONC(:,84) +! +!PTERMS(NO2,K139) = +1.0000000*K139*<APAN> + PTERMS(:,2,140) = +1.0000000*TPK%K139(:)*PCONC(:,76) +! +!PTERMS(APAN,K139) = -K139*<APAN> + PTERMS(:,76,140) = -TPK%K139(:)*PCONC(:,76) +! +!PTERMS(RO2T,K139) = +1.0000000*K139*<APAN> + PTERMS(:,85,140) = +1.0000000*TPK%K139(:)*PCONC(:,76) +! +!PTERMS(NO2,K140) = +K140*<PAN6> + PTERMS(:,2,141) = +TPK%K140(:)*PCONC(:,81) +! +!PTERMS(PAN6,K140) = -K140*<PAN6> + PTERMS(:,81,141) = -TPK%K140(:)*PCONC(:,81) +! +!PTERMS(RO2T,K140) = +K140*<PAN6> + PTERMS(:,85,141) = +TPK%K140(:)*PCONC(:,81) +! +!PTERMS(NO2,K141) = +K141*<PAN4> + PTERMS(:,2,142) = +TPK%K141(:)*PCONC(:,80) +! +!PTERMS(PAN4,K141) = -K141*<PAN4> + PTERMS(:,80,142) = -TPK%K141(:)*PCONC(:,80) +! +!PTERMS(RO2T,K141) = +K141*<PAN4> + PTERMS(:,85,142) = +TPK%K141(:)*PCONC(:,80) +! +!PTERMS(O3,K142) = +K142*<HO2>*<RO26> + PTERMS(:,3,143) = +TPK%K142(:)*PCONC(:,10)*TPK%RO26(:) +! +!PTERMS(HO2,K142) = -K142*<HO2>*<RO26> + PTERMS(:,10,143) = -TPK%K142(:)*PCONC(:,10)*TPK%RO26(:) +! +!PTERMS(ORA2,K142) = +K142*<HO2>*<RO26> + PTERMS(:,44,143) = +TPK%K142(:)*PCONC(:,10)*TPK%RO26(:) +! +! +RETURN +END SUBROUTINE SUBT22 +! +SUBROUTINE SUBT23 +! +!Indices 461 a 480 +! +!PTERMS(ACID,K142) = +K142*<HO2>*<RO26> + PTERMS(:,45,143) = +TPK%K142(:)*PCONC(:,10)*TPK%RO26(:) +! +!PTERMS(RO2T,K143) = -K143*<RO2T>*<RO26> + PTERMS(:,85,144) = -TPK%K143(:)*PCONC(:,85)*TPK%RO26(:) +! +!PTERMS(RO25,K143) = +K143*<RO2T>*<RO26> + PTERMS(:,87,144) = +TPK%K143(:)*PCONC(:,85)*TPK%RO26(:) +! +!PTERMS(NO,K144) = -K144*<NO>*<RO27> + PTERMS(:,1,145) = -TPK%K144(:)*PCONC(:,1)*TPK%RO27(:) +! +!PTERMS(NO2,K144) = +K144*<NO>*<RO27> + PTERMS(:,2,145) = +TPK%K144(:)*PCONC(:,1)*TPK%RO27(:) +! +!PTERMS(ALD2,K144) = +K144*<NO>*<RO27> + PTERMS(:,29,145) = +TPK%K144(:)*PCONC(:,1)*TPK%RO27(:) +! +!PTERMS(RO2T,K144) = +K144*<NO>*<RO27> + PTERMS(:,85,145) = +TPK%K144(:)*PCONC(:,1)*TPK%RO27(:) +! +!PTERMS(ALD2,K145) = +K145*<RO2T>*<RO27> + PTERMS(:,29,146) = +TPK%K145(:)*PCONC(:,85)*TPK%RO27(:) +! +!PTERMS(RO2T,K145) = -K145*<RO2T>*<RO27> + PTERMS(:,85,146) = -TPK%K145(:)*PCONC(:,85)*TPK%RO27(:) +! +!PTERMS(HO2,K146) = -K146*<HO2>*<RO27> + PTERMS(:,10,147) = -TPK%K146(:)*PCONC(:,10)*TPK%RO27(:) +! +!PTERMS(OH,K146) = +K146*<HO2>*<RO27> + PTERMS(:,15,147) = +TPK%K146(:)*PCONC(:,10)*TPK%RO27(:) +! +!PTERMS(ALD2,K146) = +K146*<HO2>*<RO27> + PTERMS(:,29,147) = +TPK%K146(:)*PCONC(:,10)*TPK%RO27(:) +! +!PTERMS(RO2T,K146) = +K146*<HO2>*<RO27> + PTERMS(:,85,147) = +TPK%K146(:)*PCONC(:,10)*TPK%RO27(:) +! +!PTERMS(NO,K147) = -K147*<NO>*<RO28> + PTERMS(:,1,148) = -TPK%K147(:)*PCONC(:,1)*TPK%RO28(:) +! +!PTERMS(NO2,K147) = +K147*<NO>*<RO28> + PTERMS(:,2,148) = +TPK%K147(:)*PCONC(:,1)*TPK%RO28(:) +! +!PTERMS(RO2T,K147) = +K147*<NO>*<RO28> + PTERMS(:,85,148) = +TPK%K147(:)*PCONC(:,1)*TPK%RO28(:) +! +!PTERMS(RO21,K147) = +K147*<NO>*<RO28> + PTERMS(:,86,148) = +TPK%K147(:)*PCONC(:,1)*TPK%RO28(:) +! +!PTERMS(O3,K148) = +K148*<HO2>*<RO28> + PTERMS(:,3,149) = +TPK%K148(:)*PCONC(:,10)*TPK%RO28(:) +! +!PTERMS(HO2,K148) = -K148*<HO2>*<RO28> + PTERMS(:,10,149) = -TPK%K148(:)*PCONC(:,10)*TPK%RO28(:) +! +!PTERMS(ORA2,K148) = +K148*<HO2>*<RO28> + PTERMS(:,44,149) = +TPK%K148(:)*PCONC(:,10)*TPK%RO28(:) +! +! +RETURN +END SUBROUTINE SUBT23 +! +SUBROUTINE SUBT24 +! +!Indices 481 a 500 +! +!PTERMS(RO2T,K149) = -K149*<RO2T>*<RO28> + PTERMS(:,85,150) = -TPK%K149(:)*PCONC(:,85)*TPK%RO28(:) +! +!PTERMS(RO21,K149) = +K149*<RO2T>*<RO28> + PTERMS(:,86,150) = +TPK%K149(:)*PCONC(:,85)*TPK%RO28(:) +! +!PTERMS(NO,K150) = -K150*<NO>*<RO29> + PTERMS(:,1,151) = -TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) +! +!PTERMS(NO2,K150) = +TPK%CF6*K150*<NO>*<RO29> + PTERMS(:,2,151) = +TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) +! +!PTERMS(HO2,K150) = +TPK%CF6*K150*<NO>*<RO29> + PTERMS(:,10,151) = +TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) +! +!PTERMS(OLEL,K150) = +TPK%CF5*K150*<NO>*<RO29> + PTERMS(:,17,151) = +TPK%CF5*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) +! +!PTERMS(HCHO,K150) = +TPK%CF6*K150*<NO>*<RO29> + PTERMS(:,28,151) = +TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) +! +!PTERMS(MVK,K150) = +TPK%CF6*K150*<NO>*<RO29> + PTERMS(:,39,151) = +TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) +! +!PTERMS(HO2,K151) = +K151*<RO2T>*<RO29> + PTERMS(:,10,152) = +TPK%K151(:)*PCONC(:,85)*TPK%RO29(:) +! +!PTERMS(HCHO,K151) = +K151*<RO2T>*<RO29> + PTERMS(:,28,152) = +TPK%K151(:)*PCONC(:,85)*TPK%RO29(:) +! +!PTERMS(MVK,K151) = +K151*<RO2T>*<RO29> + PTERMS(:,39,152) = +TPK%K151(:)*PCONC(:,85)*TPK%RO29(:) +! +!PTERMS(RO2T,K151) = -K151*<RO2T>*<RO29> + PTERMS(:,85,152) = -TPK%K151(:)*PCONC(:,85)*TPK%RO29(:) +! +!PTERMS(HO2,K152) = -K152*<HO2>*<RO29> + PTERMS(:,10,153) = -TPK%K152(:)*PCONC(:,10)*TPK%RO29(:) +! +!PTERMS(OH,K152) = +K152*<HO2>*<RO29> + PTERMS(:,15,153) = +TPK%K152(:)*PCONC(:,10)*TPK%RO29(:) +! +!PTERMS(HCHO,K152) = +K152*<HO2>*<RO29> + PTERMS(:,28,153) = +TPK%K152(:)*PCONC(:,10)*TPK%RO29(:) +! +!PTERMS(MVK,K152) = +K152*<HO2>*<RO29> + PTERMS(:,39,153) = +TPK%K152(:)*PCONC(:,10)*TPK%RO29(:) +! +!PTERMS(NO,K153) = -K153*<NO>*<RO210> + PTERMS(:,1,154) = -TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) +! +!PTERMS(NO2,K153) = +K153*<NO>*<RO210> + PTERMS(:,2,154) = +TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) +! +!PTERMS(HO2,K153) = +K153*<NO>*<RO210> + PTERMS(:,10,154) = +TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) +! +!PTERMS(HCHO,K153) = +K153*<NO>*<RO210> + PTERMS(:,28,154) = +TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) +! +! +RETURN +END SUBROUTINE SUBT24 +! +SUBROUTINE SUBT25 +! +!Indices 501 a 520 +! +!PTERMS(MCR,K153) = +K153*<NO>*<RO210> + PTERMS(:,40,154) = +TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) +! +!PTERMS(HO2,K154) = +K154*<RO2T>*<RO210> + PTERMS(:,10,155) = +TPK%K154(:)*PCONC(:,85)*TPK%RO210(:) +! +!PTERMS(HCHO,K154) = +K154*<RO2T>*<RO210> + PTERMS(:,28,155) = +TPK%K154(:)*PCONC(:,85)*TPK%RO210(:) +! +!PTERMS(MCR,K154) = +K154*<RO2T>*<RO210> + PTERMS(:,40,155) = +TPK%K154(:)*PCONC(:,85)*TPK%RO210(:) +! +!PTERMS(RO2T,K154) = -K154*<RO2T>*<RO210> + PTERMS(:,85,155) = -TPK%K154(:)*PCONC(:,85)*TPK%RO210(:) +! +!PTERMS(HO2,K155) = -K155*<HO2>*<RO210> + PTERMS(:,10,156) = -TPK%K155(:)*PCONC(:,10)*TPK%RO210(:) +! +!PTERMS(OH,K155) = +K155*<HO2>*<RO210> + PTERMS(:,15,156) = +TPK%K155(:)*PCONC(:,10)*TPK%RO210(:) +! +!PTERMS(HCHO,K155) = +K155*<HO2>*<RO210> + PTERMS(:,28,156) = +TPK%K155(:)*PCONC(:,10)*TPK%RO210(:) +! +!PTERMS(MCR,K155) = +K155*<HO2>*<RO210> + PTERMS(:,40,156) = +TPK%K155(:)*PCONC(:,10)*TPK%RO210(:) +! +!PTERMS(NO,K156) = -K156*<NO>*<RO211> + PTERMS(:,1,157) = -TPK%K156(:)*PCONC(:,1)*TPK%RO211(:) +! +!PTERMS(NO2,K156) = +2.*K156*<NO>*<RO211> + PTERMS(:,2,157) = +2.*TPK%K156(:)*PCONC(:,1)*TPK%RO211(:) +! +!PTERMS(HCHO,K156) = +K156*<NO>*<RO211> + PTERMS(:,28,157) = +TPK%K156(:)*PCONC(:,1)*TPK%RO211(:) +! +!PTERMS(MVK,K156) = +K156*<NO>*<RO211> + PTERMS(:,39,157) = +TPK%K156(:)*PCONC(:,1)*TPK%RO211(:) +! +!PTERMS(NO2,K157) = +K157*<RO2T>*<RO211> + PTERMS(:,2,158) = +TPK%K157(:)*PCONC(:,85)*TPK%RO211(:) +! +!PTERMS(HCHO,K157) = +K157*<RO2T>*<RO211> + PTERMS(:,28,158) = +TPK%K157(:)*PCONC(:,85)*TPK%RO211(:) +! +!PTERMS(MVK,K157) = +K157*<RO2T>*<RO211> + PTERMS(:,39,158) = +TPK%K157(:)*PCONC(:,85)*TPK%RO211(:) +! +!PTERMS(RO2T,K157) = -K157*<RO2T>*<RO211> + PTERMS(:,85,158) = -TPK%K157(:)*PCONC(:,85)*TPK%RO211(:) +! +!PTERMS(NO2,K158) = +K158*<HO2>*<RO211> + PTERMS(:,2,159) = +TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) +! +!PTERMS(HO2,K158) = -K158*<HO2>*<RO211> + PTERMS(:,10,159) = -TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) +! +!PTERMS(OH,K158) = +K158*<HO2>*<RO211> + PTERMS(:,15,159) = +TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) +! +! +RETURN +END SUBROUTINE SUBT25 +! +SUBROUTINE SUBT26 +! +!Indices 521 a 540 +! +!PTERMS(HCHO,K158) = +K158*<HO2>*<RO211> + PTERMS(:,28,159) = +TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) +! +!PTERMS(MVK,K158) = +K158*<HO2>*<RO211> + PTERMS(:,39,159) = +TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) +! +!PTERMS(NO,K159) = -K159*<NO>*<RO212> + PTERMS(:,1,160) = -TPK%K159(:)*PCONC(:,1)*TPK%RO212(:) +! +!PTERMS(NO2,K159) = +2.*K159*<NO>*<RO212> + PTERMS(:,2,160) = +2.*TPK%K159(:)*PCONC(:,1)*TPK%RO212(:) +! +!PTERMS(HCHO,K159) = +K159*<NO>*<RO212> + PTERMS(:,28,160) = +TPK%K159(:)*PCONC(:,1)*TPK%RO212(:) +! +!PTERMS(MCR,K159) = +K159*<NO>*<RO212> + PTERMS(:,40,160) = +TPK%K159(:)*PCONC(:,1)*TPK%RO212(:) +! +!PTERMS(NO2,K160) = +K160*<RO2T>*<RO212> + PTERMS(:,2,161) = +TPK%K160(:)*PCONC(:,85)*TPK%RO212(:) +! +!PTERMS(HCHO,K160) = +K160*<RO2T>*<RO212> + PTERMS(:,28,161) = +TPK%K160(:)*PCONC(:,85)*TPK%RO212(:) +! +!PTERMS(MCR,K160) = +K160*<RO2T>*<RO212> + PTERMS(:,40,161) = +TPK%K160(:)*PCONC(:,85)*TPK%RO212(:) +! +!PTERMS(RO2T,K160) = -K160*<RO2T>*<RO212> + PTERMS(:,85,161) = -TPK%K160(:)*PCONC(:,85)*TPK%RO212(:) +! +!PTERMS(NO2,K161) = +K161*<HO2>*<RO212> + PTERMS(:,2,162) = +TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) +! +!PTERMS(HO2,K161) = -K161*<HO2>*<RO212> + PTERMS(:,10,162) = -TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) +! +!PTERMS(OH,K161) = +K161*<HO2>*<RO212> + PTERMS(:,15,162) = +TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) +! +!PTERMS(HCHO,K161) = +K161*<HO2>*<RO212> + PTERMS(:,28,162) = +TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) +! +!PTERMS(MCR,K161) = +K161*<HO2>*<RO212> + PTERMS(:,40,162) = +TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) +! +!PTERMS(NO,K162) = -K162*<NO>*<RO213> + PTERMS(:,1,163) = -TPK%K162(:)*PCONC(:,1)*TPK%RO213(:) +! +!PTERMS(NO2,K162) = +K162*<NO>*<RO213> + PTERMS(:,2,163) = +TPK%K162(:)*PCONC(:,1)*TPK%RO213(:) +! +!PTERMS(HCHO,K162) = +K162*<NO>*<RO213> + PTERMS(:,28,163) = +TPK%K162(:)*PCONC(:,1)*TPK%RO213(:) +! +!PTERMS(RO2T,K162) = +K162*<NO>*<RO213> + PTERMS(:,85,163) = +TPK%K162(:)*PCONC(:,1)*TPK%RO213(:) +! +!PTERMS(HCHO,K163) = +K163*<RO2T>*<RO213> + PTERMS(:,28,164) = +TPK%K163(:)*PCONC(:,85)*TPK%RO213(:) +! +! +RETURN +END SUBROUTINE SUBT26 +! +SUBROUTINE SUBT27 +! +!Indices 541 a 560 +! +!PTERMS(RO2T,K163) = -K163*<RO2T>*<RO213> + PTERMS(:,85,164) = -TPK%K163(:)*PCONC(:,85)*TPK%RO213(:) +! +!PTERMS(HO2,K164) = -K164*<HO2>*<RO213> + PTERMS(:,10,165) = -TPK%K164(:)*PCONC(:,10)*TPK%RO213(:) +! +!PTERMS(OH,K164) = +K164*<HO2>*<RO213> + PTERMS(:,15,165) = +TPK%K164(:)*PCONC(:,10)*TPK%RO213(:) +! +!PTERMS(HCHO,K164) = +K164*<HO2>*<RO213> + PTERMS(:,28,165) = +TPK%K164(:)*PCONC(:,10)*TPK%RO213(:) +! +!PTERMS(RO2T,K164) = +K164*<HO2>*<RO213> + PTERMS(:,85,165) = +TPK%K164(:)*PCONC(:,10)*TPK%RO213(:) +! +!PTERMS(NO,K165) = -K165*<NO>*<RO239> + PTERMS(:,1,166) = -TPK%K165(:)*PCONC(:,1)*TPK%RO239(:) +! +!PTERMS(NO2,K165) = +K165*<NO>*<RO239> + PTERMS(:,2,166) = +TPK%K165(:)*PCONC(:,1)*TPK%RO239(:) +! +!PTERMS(RO2T,K165) = +K165*<NO>*<RO239> + PTERMS(:,85,166) = +TPK%K165(:)*PCONC(:,1)*TPK%RO239(:) +! +!PTERMS(O3,K166) = +K166*<HO2>*<RO239> + PTERMS(:,3,167) = +TPK%K166(:)*PCONC(:,10)*TPK%RO239(:) +! +!PTERMS(HO2,K166) = -K166*<HO2>*<RO239> + PTERMS(:,10,167) = -TPK%K166(:)*PCONC(:,10)*TPK%RO239(:) +! +!PTERMS(OLEL,K166) = +0.5*K166*<HO2>*<RO239> + PTERMS(:,17,167) = +0.5*TPK%K166(:)*PCONC(:,10)*TPK%RO239(:) +! +!PTERMS(ORA2,K166) = +0.5*K166*<HO2>*<RO239> + PTERMS(:,44,167) = +0.5*TPK%K166(:)*PCONC(:,10)*TPK%RO239(:) +! +!PTERMS(RO2T,K167) = -K167*<RO2T>*<RO239> + PTERMS(:,85,168) = -TPK%K167(:)*PCONC(:,85)*TPK%RO239(:) +! +!PTERMS(NO,K168) = -K168*<NO>*<RO214> + PTERMS(:,1,169) = -TPK%K168(:)*PCONC(:,1)*TPK%RO214(:) +! +!PTERMS(NO2,K168) = +TPK%CF8*K168*<NO>*<RO214> + PTERMS(:,2,169) = +TPK%CF8*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:) +! +!PTERMS(OLEL,K168) = +TPK%CF7*K168*<NO>*<RO214> + PTERMS(:,17,169) = +TPK%CF7*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:) +! +!PTERMS(RO2T,K168) = +TPK%CF8*K168*<NO>*<RO214> + PTERMS(:,85,169) = +TPK%CF8*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:) +! +!PTERMS(RO2T,K169) = -K169*<RO2T>*<RO214> + PTERMS(:,85,170) = -TPK%K169(:)*PCONC(:,85)*TPK%RO214(:) +! +!PTERMS(HO2,K170) = -K170*<HO2>*<RO214> + PTERMS(:,10,171) = -TPK%K170(:)*PCONC(:,10)*TPK%RO214(:) +! +!PTERMS(OH,K170) = +K170*<HO2>*<RO214> + PTERMS(:,15,171) = +TPK%K170(:)*PCONC(:,10)*TPK%RO214(:) +! +! +RETURN +END SUBROUTINE SUBT27 +! +SUBROUTINE SUBT28 +! +!Indices 561 a 580 +! +!PTERMS(RO2T,K170) = +K170*<HO2>*<RO214> + PTERMS(:,85,171) = +TPK%K170(:)*PCONC(:,10)*TPK%RO214(:) +! +!PTERMS(NO,K171) = -K171*<NO>*<RO215> + PTERMS(:,1,172) = -TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) +! +!PTERMS(NO2,K171) = +K171*<NO>*<RO215> + PTERMS(:,2,172) = +TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) +! +!PTERMS(HO2,K171) = +K171*<NO>*<RO215> + PTERMS(:,10,172) = +TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) +! +!PTERMS(ALKL,K171) = +TPK%CF12*K171*<NO>*<RO215> + PTERMS(:,19,172) = +TPK%CF12*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) +! +!PTERMS(HCHO,K171) = +TPK%CF10*K171*<NO>*<RO215> + PTERMS(:,28,172) = +TPK%CF10*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) +! +!PTERMS(ALD2,K171) = +TPK%CF9*K171*<NO>*<RO215> + PTERMS(:,29,172) = +TPK%CF9*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) +! +!PTERMS(KETL,K171) = +TPK%CF11*K171*<NO>*<RO215> + PTERMS(:,30,172) = +TPK%CF11*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) +! +!PTERMS(HO2,K172) = +K172*<RO2T>*<RO215> + PTERMS(:,10,173) = +TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) +! +!PTERMS(ALKL,K172) = +TPK%CF16*K172*<RO2T>*<RO215> + PTERMS(:,19,173) = +TPK%CF16*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) +! +!PTERMS(HCHO,K172) = +TPK%CF14*K172*<RO2T>*<RO215> + PTERMS(:,28,173) = +TPK%CF14*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) +! +!PTERMS(ALD2,K172) = +TPK%CF13*K172*<RO2T>*<RO215> + PTERMS(:,29,173) = +TPK%CF13*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) +! +!PTERMS(KETL,K172) = +TPK%CF15*K172*<RO2T>*<RO215> + PTERMS(:,30,173) = +TPK%CF15*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) +! +!PTERMS(RO2T,K172) = -K172*<RO2T>*<RO215> + PTERMS(:,85,173) = -TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) +! +!PTERMS(HO2,K173) = -K173*<HO2>*<RO215> + PTERMS(:,10,174) = -TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) +! +!PTERMS(OH,K173) = +K173*<HO2>*<RO215> + PTERMS(:,15,174) = +TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) +! +!PTERMS(ALKL,K173) = +TPK%CF16*K173*<HO2>*<RO215> + PTERMS(:,19,174) = +TPK%CF16*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) +! +!PTERMS(HCHO,K173) = +TPK%CF14*K173*<HO2>*<RO215> + PTERMS(:,28,174) = +TPK%CF14*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) +! +!PTERMS(ALD2,K173) = +TPK%CF13*K173*<HO2>*<RO215> + PTERMS(:,29,174) = +TPK%CF13*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) +! +!PTERMS(KETL,K173) = +TPK%CF15*K173*<HO2>*<RO215> + PTERMS(:,30,174) = +TPK%CF15*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) +! +! +RETURN +END SUBROUTINE SUBT28 +! +SUBROUTINE SUBT29 +! +!Indices 581 a 600 +! +!PTERMS(NO,K174) = -K174*<NO>*<RO216> + PTERMS(:,1,175) = -TPK%K174(:)*PCONC(:,1)*TPK%RO216(:) +! +!PTERMS(NO2,K174) = +K174*<NO>*<RO216> + PTERMS(:,2,175) = +TPK%K174(:)*PCONC(:,1)*TPK%RO216(:) +! +!PTERMS(ALD2,K174) = +K174*<NO>*<RO216> + PTERMS(:,29,175) = +TPK%K174(:)*PCONC(:,1)*TPK%RO216(:) +! +!PTERMS(RO2T,K174) = +K174*<NO>*<RO216> + PTERMS(:,85,175) = +TPK%K174(:)*PCONC(:,1)*TPK%RO216(:) +! +!PTERMS(ALD2,K175) = +K175*<RO2T>*<RO216> + PTERMS(:,29,176) = +TPK%K175(:)*PCONC(:,85)*TPK%RO216(:) +! +!PTERMS(RO2T,K175) = -K175*<RO2T>*<RO216> + PTERMS(:,85,176) = -TPK%K175(:)*PCONC(:,85)*TPK%RO216(:) +! +!PTERMS(HO2,K176) = -K176*<HO2>*<RO216> + PTERMS(:,10,177) = -TPK%K176(:)*PCONC(:,10)*TPK%RO216(:) +! +!PTERMS(OH,K176) = +K176*<HO2>*<RO216> + PTERMS(:,15,177) = +TPK%K176(:)*PCONC(:,10)*TPK%RO216(:) +! +!PTERMS(ALD2,K176) = +K176*<HO2>*<RO216> + PTERMS(:,29,177) = +TPK%K176(:)*PCONC(:,10)*TPK%RO216(:) +! +!PTERMS(RO2T,K176) = +K176*<HO2>*<RO216> + PTERMS(:,85,177) = +TPK%K176(:)*PCONC(:,10)*TPK%RO216(:) +! +!PTERMS(NO,K177) = -K177*<NO>*<RO217> + PTERMS(:,1,178) = -TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) +! +!PTERMS(NO2,K177) = +TPK%CF22*K177*<NO>*<RO217> + PTERMS(:,2,178) = +TPK%CF22*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) +! +!PTERMS(HO2,K177) = +TPK%CF22*K177*<NO>*<RO217> + PTERMS(:,10,178) = +TPK%CF22*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) +! +!PTERMS(URG6,K177) = +TPK%CF21*K177*<NO>*<RO217> + PTERMS(:,58,178) = +TPK%CF21*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) +! +!PTERMS(RPRL,K177) = +TPK%CFA2*K177*<NO>*<RO217> + PTERMS(:,75,178) = +TPK%CFA2*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) +! +!PTERMS(HO2,K178) = +K178*<RO2T>*<RO217> + PTERMS(:,10,179) = +TPK%K178(:)*PCONC(:,85)*TPK%RO217(:) +! +!PTERMS(RPRL,K178) = +0.9983609*K178*<RO2T>*<RO217> + PTERMS(:,75,179) = +0.9983609*TPK%K178(:)*PCONC(:,85)*TPK%RO217(:) +! +!PTERMS(RO2T,K178) = -K178*<RO2T>*<RO217> + PTERMS(:,85,179) = -TPK%K178(:)*PCONC(:,85)*TPK%RO217(:) +! +!PTERMS(HO2,K179) = -K179*<HO2>*<RO217> + PTERMS(:,10,180) = -TPK%K179(:)*PCONC(:,10)*TPK%RO217(:) +! +!PTERMS(OH,K179) = +K179*<HO2>*<RO217> + PTERMS(:,15,180) = +TPK%K179(:)*PCONC(:,10)*TPK%RO217(:) +! +! +RETURN +END SUBROUTINE SUBT29 +! +SUBROUTINE SUBT30 +! +!Indices 601 a 620 +! +!PTERMS(RPRL,K179) = +0.9983609*K179*<HO2>*<RO217> + PTERMS(:,75,180) = +0.9983609*TPK%K179(:)*PCONC(:,10)*TPK%RO217(:) +! +!PTERMS(NO,K180) = -K180*<NO>*<RO218> + PTERMS(:,1,181) = -TPK%K180(:)*PCONC(:,1)*TPK%RO218(:) +! +!PTERMS(NO2,K180) = +TPK%CF20*K180*<NO>*<RO218> + PTERMS(:,2,181) = +TPK%CF20*TPK%K180(:)*PCONC(:,1)*TPK%RO218(:) +! +!PTERMS(HO2,K180) = +TPK%CF20*K180*<NO>*<RO218> + PTERMS(:,10,181) = +TPK%CF20*TPK%K180(:)*PCONC(:,1)*TPK%RO218(:) +! +!PTERMS(HO2,K181) = +K181*<RO2T>*<RO218> + PTERMS(:,10,182) = +TPK%K181(:)*PCONC(:,85)*TPK%RO218(:) +! +!PTERMS(RO2T,K181) = -K181*<RO2T>*<RO218> + PTERMS(:,85,182) = -TPK%K181(:)*PCONC(:,85)*TPK%RO218(:) +! +!PTERMS(HO2,K182) = -K182*<HO2>*<RO218> + PTERMS(:,10,183) = -TPK%K182(:)*PCONC(:,10)*TPK%RO218(:) +! +!PTERMS(OH,K182) = +K182*<HO2>*<RO218> + PTERMS(:,15,183) = +TPK%K182(:)*PCONC(:,10)*TPK%RO218(:) +! +!PTERMS(NO,K183) = -K183*<NO>*<RO219> + PTERMS(:,1,184) = -TPK%K183(:)*PCONC(:,1)*TPK%RO219(:) +! +!PTERMS(NO2,K183) = +2.*K183*<NO>*<RO219> + PTERMS(:,2,184) = +2.*TPK%K183(:)*PCONC(:,1)*TPK%RO219(:) +! +!PTERMS(HCHO,K183) = +K183*<NO>*<RO219> + PTERMS(:,28,184) = +TPK%K183(:)*PCONC(:,1)*TPK%RO219(:) +! +!PTERMS(RPR1,K183) = +K183*<NO>*<RO219> + PTERMS(:,69,184) = +TPK%K183(:)*PCONC(:,1)*TPK%RO219(:) +! +!PTERMS(NO2,K184) = +K184*<RO2T>*<RO219> + PTERMS(:,2,185) = +TPK%K184(:)*PCONC(:,85)*TPK%RO219(:) +! +!PTERMS(HCHO,K184) = +K184*<RO2T>*<RO219> + PTERMS(:,28,185) = +TPK%K184(:)*PCONC(:,85)*TPK%RO219(:) +! +!PTERMS(RPR1,K184) = +K184*<RO2T>*<RO219> + PTERMS(:,69,185) = +TPK%K184(:)*PCONC(:,85)*TPK%RO219(:) +! +!PTERMS(RO2T,K184) = -K184*<RO2T>*<RO219> + PTERMS(:,85,185) = -TPK%K184(:)*PCONC(:,85)*TPK%RO219(:) +! +!PTERMS(NO2,K185) = +K185*<HO2>*<RO219> + PTERMS(:,2,186) = +TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) +! +!PTERMS(HO2,K185) = -K185*<HO2>*<RO219> + PTERMS(:,10,186) = -TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) +! +!PTERMS(OH,K185) = +K185*<HO2>*<RO219> + PTERMS(:,15,186) = +TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) +! +!PTERMS(HCHO,K185) = +K185*<HO2>*<RO219> + PTERMS(:,28,186) = +TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) +! +! +RETURN +END SUBROUTINE SUBT30 +! +SUBROUTINE SUBT31 +! +!Indices 621 a 640 +! +!PTERMS(RPR1,K185) = +K185*<HO2>*<RO219> + PTERMS(:,69,186) = +TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) +! +!PTERMS(NO,K186) = -K186*<NO>*<RO220> + PTERMS(:,1,187) = -TPK%K186(:)*PCONC(:,1)*TPK%RO220(:) +! +!PTERMS(NO2,K186) = +TPK%CF18*K186*<NO>*<RO220> + PTERMS(:,2,187) = +TPK%CF18*TPK%K186(:)*PCONC(:,1)*TPK%RO220(:) +! +!PTERMS(RO2T,K186) = +TPK%CF18*K186*<NO>*<RO220> + PTERMS(:,85,187) = +TPK%CF18*TPK%K186(:)*PCONC(:,1)*TPK%RO220(:) +! +!PTERMS(RO2T,K187) = -K187*<RO2T>*<RO220> + PTERMS(:,85,188) = -TPK%K187(:)*PCONC(:,85)*TPK%RO220(:) +! +!PTERMS(HO2,K188) = -K188*<HO2>*<RO220> + PTERMS(:,10,189) = -TPK%K188(:)*PCONC(:,10)*TPK%RO220(:) +! +!PTERMS(OH,K188) = +K188*<HO2>*<RO220> + PTERMS(:,15,189) = +TPK%K188(:)*PCONC(:,10)*TPK%RO220(:) +! +!PTERMS(RO2T,K188) = +K188*<HO2>*<RO220> + PTERMS(:,85,189) = +TPK%K188(:)*PCONC(:,10)*TPK%RO220(:) +! +!PTERMS(NO,K189) = -K189*<NO>*<RO221> + PTERMS(:,1,190) = -TPK%K189(:)*PCONC(:,1)*TPK%RO221(:) +! +!PTERMS(NO2,K189) = +TPK%CF24*K189*<NO>*<RO221> + PTERMS(:,2,190) = +TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:) +! +!PTERMS(HO2,K189) = +TPK%CF24*K189*<NO>*<RO221> + PTERMS(:,10,190) = +TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:) +! +!PTERMS(ARAL,K189) = +TPK%CF24*K189*<NO>*<RO221> + PTERMS(:,25,190) = +TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:) +! +!PTERMS(HO2,K190) = +K190*<RO2T>*<RO221> + PTERMS(:,10,191) = +TPK%K190(:)*PCONC(:,85)*TPK%RO221(:) +! +!PTERMS(ARAL,K190) = +K190*<RO2T>*<RO221> + PTERMS(:,25,191) = +TPK%K190(:)*PCONC(:,85)*TPK%RO221(:) +! +!PTERMS(RO2T,K190) = -K190*<RO2T>*<RO221> + PTERMS(:,85,191) = -TPK%K190(:)*PCONC(:,85)*TPK%RO221(:) +! +!PTERMS(HO2,K191) = -K191*<HO2>*<RO221> + PTERMS(:,10,192) = -TPK%K191(:)*PCONC(:,10)*TPK%RO221(:) +! +!PTERMS(OH,K191) = +K191*<HO2>*<RO221> + PTERMS(:,15,192) = +TPK%K191(:)*PCONC(:,10)*TPK%RO221(:) +! +!PTERMS(ARAL,K191) = +K191*<HO2>*<RO221> + PTERMS(:,25,192) = +TPK%K191(:)*PCONC(:,10)*TPK%RO221(:) +! +!PTERMS(NO,K192) = -K192*<NO>*<RO222> + PTERMS(:,1,193) = -TPK%K192(:)*PCONC(:,1)*TPK%RO222(:) +! +!PTERMS(NO2,K192) = +TPK%CF42*K192*<NO>*<RO222> + PTERMS(:,2,193) = +TPK%CF42*TPK%K192(:)*PCONC(:,1)*TPK%RO222(:) +! +! +RETURN +END SUBROUTINE SUBT31 +! +SUBROUTINE SUBT32 +! +!Indices 641 a 660 +! +!PTERMS(HO2,K192) = +TPK%CF42*K192*<NO>*<RO222> + PTERMS(:,10,193) = +TPK%CF42*TPK%K192(:)*PCONC(:,1)*TPK%RO222(:) +! +!PTERMS(RPRL,K192) = +TPK%CFA7*K192*<NO>*<RO222> + PTERMS(:,75,193) = +TPK%CFA7*TPK%K192(:)*PCONC(:,1)*TPK%RO222(:) +! +!PTERMS(HO2,K193) = +K193*<RO2T>*<RO222> + PTERMS(:,10,194) = +TPK%K193(:)*PCONC(:,85)*TPK%RO222(:) +! +!PTERMS(RPRL,K193) = +0.9983609*K193*<RO2T>*<RO222> + PTERMS(:,75,194) = +0.9983609*TPK%K193(:)*PCONC(:,85)*TPK%RO222(:) +! +!PTERMS(RO2T,K193) = -K193*<RO2T>*<RO222> + PTERMS(:,85,194) = -TPK%K193(:)*PCONC(:,85)*TPK%RO222(:) +! +!PTERMS(HO2,K194) = -K194*<HO2>*<RO222> + PTERMS(:,10,195) = -TPK%K194(:)*PCONC(:,10)*TPK%RO222(:) +! +!PTERMS(OH,K194) = +K194*<HO2>*<RO222> + PTERMS(:,15,195) = +TPK%K194(:)*PCONC(:,10)*TPK%RO222(:) +! +!PTERMS(RPRL,K194) = +0.9983609*K194*<HO2>*<RO222> + PTERMS(:,75,195) = +0.9983609*TPK%K194(:)*PCONC(:,10)*TPK%RO222(:) +! +!PTERMS(NO,K195) = -K195*<NO>*<RO223> + PTERMS(:,1,196) = -TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) +! +!PTERMS(NO2,K195) = +TPK%CF44*K195*<NO>*<RO223> + PTERMS(:,2,196) = +TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) +! +!PTERMS(HO2,K195) = +TPK%CF44*K195*<NO>*<RO223> + PTERMS(:,10,196) = +TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) +! +!PTERMS(URG6,K195) = +TPK%CF43*K195*<NO>*<RO223> + PTERMS(:,58,196) = +TPK%CF43*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) +! +!PTERMS(RPR7,K195) = +TPK%CF44*K195*<NO>*<RO223> + PTERMS(:,62,196) = +TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) +! +!PTERMS(HO2,K196) = +K196*<RO2T>*<RO223> + PTERMS(:,10,197) = +TPK%K196(:)*PCONC(:,85)*TPK%RO223(:) +! +!PTERMS(RPR7,K196) = +K196*<RO2T>*<RO223> + PTERMS(:,62,197) = +TPK%K196(:)*PCONC(:,85)*TPK%RO223(:) +! +!PTERMS(RO2T,K196) = -K196*<RO2T>*<RO223> + PTERMS(:,85,197) = -TPK%K196(:)*PCONC(:,85)*TPK%RO223(:) +! +!PTERMS(HO2,K197) = -K197*<HO2>*<RO223> + PTERMS(:,10,198) = -TPK%K197(:)*PCONC(:,10)*TPK%RO223(:) +! +!PTERMS(OH,K197) = +K197*<HO2>*<RO223> + PTERMS(:,15,198) = +TPK%K197(:)*PCONC(:,10)*TPK%RO223(:) +! +!PTERMS(RPR7,K197) = +K197*<HO2>*<RO223> + PTERMS(:,62,198) = +TPK%K197(:)*PCONC(:,10)*TPK%RO223(:) +! +!PTERMS(NO,K198) = -K198*<NO>*<RO224> + PTERMS(:,1,199) = -TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) +! +! +RETURN +END SUBROUTINE SUBT32 +! +SUBROUTINE SUBT33 +! +!Indices 661 a 680 +! +!PTERMS(NO2,K198) = +TPK%CF26*K198*<NO>*<RO224> + PTERMS(:,2,199) = +TPK%CF26*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) +! +!PTERMS(HO2,K198) = +TPK%CF26*K198*<NO>*<RO224> + PTERMS(:,10,199) = +TPK%CF26*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) +! +!PTERMS(RPR3,K198) = +TPK%CFA10*K198*<NO>*<RO224> + PTERMS(:,57,199) = +TPK%CFA10*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) +! +!PTERMS(AP7,K198) = +TPK%CFA23*K198*<NO>*<RO224> + PTERMS(:,67,199) = +TPK%CFA23*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) +! +!PTERMS(HO2,K199) = +K199*<RO2T>*<RO224> + PTERMS(:,10,200) = +TPK%K199(:)*PCONC(:,85)*TPK%RO224(:) +! +!PTERMS(RPR3,K199) = +K199*<RO2T>*<RO224> + PTERMS(:,57,200) = +TPK%K199(:)*PCONC(:,85)*TPK%RO224(:) +! +!PTERMS(RO2T,K199) = -K199*<RO2T>*<RO224> + PTERMS(:,85,200) = -TPK%K199(:)*PCONC(:,85)*TPK%RO224(:) +! +!PTERMS(HO2,K200) = -K200*<HO2>*<RO224> + PTERMS(:,10,201) = -TPK%K200(:)*PCONC(:,10)*TPK%RO224(:) +! +!PTERMS(OH,K200) = +K200*<HO2>*<RO224> + PTERMS(:,15,201) = +TPK%K200(:)*PCONC(:,10)*TPK%RO224(:) +! +!PTERMS(RPR3,K200) = +K200*<HO2>*<RO224> + PTERMS(:,57,201) = +TPK%K200(:)*PCONC(:,10)*TPK%RO224(:) +! +!PTERMS(NO,K201) = -K201*<NO>*<RO225> + PTERMS(:,1,202) = -TPK%K201(:)*PCONC(:,1)*TPK%RO225(:) +! +!PTERMS(NO2,K201) = +2.*K201*<NO>*<RO225> + PTERMS(:,2,202) = +2.*TPK%K201(:)*PCONC(:,1)*TPK%RO225(:) +! +!PTERMS(RPR3,K201) = +K201*<NO>*<RO225> + PTERMS(:,57,202) = +TPK%K201(:)*PCONC(:,1)*TPK%RO225(:) +! +!PTERMS(NO2,K202) = +K202*<RO2T>*<RO225> + PTERMS(:,2,203) = +TPK%K202(:)*PCONC(:,85)*TPK%RO225(:) +! +!PTERMS(RPR3,K202) = +K202*<RO2T>*<RO225> + PTERMS(:,57,203) = +TPK%K202(:)*PCONC(:,85)*TPK%RO225(:) +! +!PTERMS(RO2T,K202) = -K202*<RO2T>*<RO225> + PTERMS(:,85,203) = -TPK%K202(:)*PCONC(:,85)*TPK%RO225(:) +! +!PTERMS(NO2,K203) = +K203*<HO2>*<RO225> + PTERMS(:,2,204) = +TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) +! +!PTERMS(HO2,K203) = -K203*<HO2>*<RO225> + PTERMS(:,10,204) = -TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) +! +!PTERMS(OH,K203) = +K203*<HO2>*<RO225> + PTERMS(:,15,204) = +TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) +! +!PTERMS(RPR3,K203) = +K203*<HO2>*<RO225> + PTERMS(:,57,204) = +TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) +! +! +RETURN +END SUBROUTINE SUBT33 +! +SUBROUTINE SUBT34 +! +!Indices 681 a 700 +! +!PTERMS(NO,K204) = -K204*<NO>*<RO226> + PTERMS(:,1,205) = -TPK%K204(:)*PCONC(:,1)*TPK%RO226(:) +! +!PTERMS(NO2,K204) = +K204*<NO>*<RO226> + PTERMS(:,2,205) = +TPK%K204(:)*PCONC(:,1)*TPK%RO226(:) +! +!PTERMS(UR17,K204) = +1.0000000*K204*<NO>*<RO226> + PTERMS(:,55,205) = +1.0000000*TPK%K204(:)*PCONC(:,1)*TPK%RO226(:) +! +!PTERMS(RO2T,K204) = +K204*<NO>*<RO226> + PTERMS(:,85,205) = +TPK%K204(:)*PCONC(:,1)*TPK%RO226(:) +! +!PTERMS(UR17,K205) = +1.0000000*K205*<RO2T>*<RO226> + PTERMS(:,55,206) = +1.0000000*TPK%K205(:)*PCONC(:,85)*TPK%RO226(:) +! +!PTERMS(RO2T,K205) = -K205*<RO2T>*<RO226> + PTERMS(:,85,206) = -TPK%K205(:)*PCONC(:,85)*TPK%RO226(:) +! +!PTERMS(HO2,K206) = -K206*<HO2>*<RO226> + PTERMS(:,10,207) = -TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) +! +!PTERMS(OH,K206) = +K206*<HO2>*<RO226> + PTERMS(:,15,207) = +TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) +! +!PTERMS(UR17,K206) = +1.0000000*K206*<HO2>*<RO226> + PTERMS(:,55,207) = +1.0000000*TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) +! +!PTERMS(RO2T,K206) = +K206*<HO2>*<RO226> + PTERMS(:,85,207) = +TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) +! +!PTERMS(NO,K207) = -K207*<NO>*<RO227> + PTERMS(:,1,208) = -TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) +! +!PTERMS(NO2,K207) = +TPK%CF28*K207*<NO>*<RO227> + PTERMS(:,2,208) = +TPK%CF28*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) +! +!PTERMS(HO2,K207) = +TPK%CF28*K207*<NO>*<RO227> + PTERMS(:,10,208) = +TPK%CF28*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) +! +!PTERMS(UR7,K207) = +TPK%CFA12*K207*<NO>*<RO227> + PTERMS(:,56,208) = +TPK%CFA12*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) +! +!PTERMS(URG10,K207) = +TPK%CF27*K207*<NO>*<RO227> + PTERMS(:,68,208) = +TPK%CF27*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) +! +!PTERMS(HO2,K208) = +K208*<RO2T>*<RO227> + PTERMS(:,10,209) = +TPK%K208(:)*PCONC(:,85)*TPK%RO227(:) +! +!PTERMS(UR7,K208) = +K208*<RO2T>*<RO227> + PTERMS(:,56,209) = +TPK%K208(:)*PCONC(:,85)*TPK%RO227(:) +! +!PTERMS(RO2T,K208) = -K208*<RO2T>*<RO227> + PTERMS(:,85,209) = -TPK%K208(:)*PCONC(:,85)*TPK%RO227(:) +! +!PTERMS(HO2,K209) = -K209*<HO2>*<RO227> + PTERMS(:,10,210) = -TPK%K209(:)*PCONC(:,10)*TPK%RO227(:) +! +!PTERMS(OH,K209) = +K209*<HO2>*<RO227> + PTERMS(:,15,210) = +TPK%K209(:)*PCONC(:,10)*TPK%RO227(:) +! +! +RETURN +END SUBROUTINE SUBT34 +! +SUBROUTINE SUBT35 +! +!Indices 701 a 720 +! +!PTERMS(UR7,K209) = +0.3*K209*<HO2>*<RO227> + PTERMS(:,56,210) = +0.3*TPK%K209(:)*PCONC(:,10)*TPK%RO227(:) +! +!PTERMS(NO,K210) = -K210*<NO>*<RO228> + PTERMS(:,1,211) = -TPK%K210(:)*PCONC(:,1)*TPK%RO228(:) +! +!PTERMS(NO2,K210) = +2.*K210*<NO>*<RO228> + PTERMS(:,2,211) = +2.*TPK%K210(:)*PCONC(:,1)*TPK%RO228(:) +! +!PTERMS(UR7,K210) = +0.3*K210*<NO>*<RO228> + PTERMS(:,56,211) = +0.3*TPK%K210(:)*PCONC(:,1)*TPK%RO228(:) +! +!PTERMS(NO2,K211) = +K211*<RO2T>*<RO228> + PTERMS(:,2,212) = +TPK%K211(:)*PCONC(:,85)*TPK%RO228(:) +! +!PTERMS(UR7,K211) = +0.3*K211*<RO2T>*<RO228> + PTERMS(:,56,212) = +0.3*TPK%K211(:)*PCONC(:,85)*TPK%RO228(:) +! +!PTERMS(RO2T,K211) = -K211*<RO2T>*<RO228> + PTERMS(:,85,212) = -TPK%K211(:)*PCONC(:,85)*TPK%RO228(:) +! +!PTERMS(NO2,K212) = +K212*<HO2>*<RO228> + PTERMS(:,2,213) = +TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) +! +!PTERMS(HO2,K212) = -K212*<HO2>*<RO228> + PTERMS(:,10,213) = -TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) +! +!PTERMS(OH,K212) = +K212*<HO2>*<RO228> + PTERMS(:,15,213) = +TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) +! +!PTERMS(UR7,K212) = +0.3*K212*<HO2>*<RO228> + PTERMS(:,56,213) = +0.3*TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) +! +!PTERMS(NO,K213) = -K213*<NO>*<RO229> + PTERMS(:,1,214) = -TPK%K213(:)*PCONC(:,1)*TPK%RO229(:) +! +!PTERMS(NO2,K213) = +TPK%CF30*K213*<NO>*<RO229> + PTERMS(:,2,214) = +TPK%CF30*TPK%K213(:)*PCONC(:,1)*TPK%RO229(:) +! +!PTERMS(RO2T,K213) = +TPK%CF30*K213*<NO>*<RO229> + PTERMS(:,85,214) = +TPK%CF30*TPK%K213(:)*PCONC(:,1)*TPK%RO229(:) +! +!PTERMS(RO2T,K214) = -K214*<RO2T>*<RO229> + PTERMS(:,85,215) = -TPK%K214(:)*PCONC(:,85)*TPK%RO229(:) +! +!PTERMS(HO2,K215) = -K215*<HO2>*<RO229> + PTERMS(:,10,216) = -TPK%K215(:)*PCONC(:,10)*TPK%RO229(:) +! +!PTERMS(OH,K215) = +K215*<HO2>*<RO229> + PTERMS(:,15,216) = +TPK%K215(:)*PCONC(:,10)*TPK%RO229(:) +! +!PTERMS(RO2T,K215) = +K215*<HO2>*<RO229> + PTERMS(:,85,216) = +TPK%K215(:)*PCONC(:,10)*TPK%RO229(:) +! +!PTERMS(NO,K216) = -K216*<NO>*<RO240> + PTERMS(:,1,217) = -TPK%K216(:)*PCONC(:,1)*TPK%RO240(:) +! +!PTERMS(NO2,K216) = +K216*<NO>*<RO240> + PTERMS(:,2,217) = +TPK%K216(:)*PCONC(:,1)*TPK%RO240(:) +! +! +RETURN +END SUBROUTINE SUBT35 +! +SUBROUTINE SUBT36 +! +!Indices 721 a 740 +! +!PTERMS(RPR8,K216) = +K216*<NO>*<RO240> + PTERMS(:,71,217) = +TPK%K216(:)*PCONC(:,1)*TPK%RO240(:) +! +!PTERMS(RO2T,K216) = +K216*<NO>*<RO240> + PTERMS(:,85,217) = +TPK%K216(:)*PCONC(:,1)*TPK%RO240(:) +! +!PTERMS(RPR8,K217) = +K217*<RO2T>*<RO240> + PTERMS(:,71,218) = +TPK%K217(:)*PCONC(:,85)*TPK%RO240(:) +! +!PTERMS(RO2T,K217) = -K217*<RO2T>*<RO240> + PTERMS(:,85,218) = -TPK%K217(:)*PCONC(:,85)*TPK%RO240(:) +! +!PTERMS(HO2,K218) = -K218*<HO2>*<RO240> + PTERMS(:,10,219) = -TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) +! +!PTERMS(OH,K218) = +K218*<HO2>*<RO240> + PTERMS(:,15,219) = +TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) +! +!PTERMS(RPR8,K218) = +K218*<HO2>*<RO240> + PTERMS(:,71,219) = +TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) +! +!PTERMS(RO2T,K218) = +K218*<HO2>*<RO240> + PTERMS(:,85,219) = +TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) +! +!PTERMS(RO2T,K219) = -K219*<RO2T>*<RO230> + PTERMS(:,85,220) = -TPK%K219(:)*PCONC(:,85)*TPK%RO230(:) +! +!PTERMS(HO2,K220) = -K220*<HO2>*<RO230> + PTERMS(:,10,221) = -TPK%K220(:)*PCONC(:,10)*TPK%RO230(:) +! +!PTERMS(OH,K220) = +K220*<HO2>*<RO230> + PTERMS(:,15,221) = +TPK%K220(:)*PCONC(:,10)*TPK%RO230(:) +! +!PTERMS(RO2T,K220) = +K220*<HO2>*<RO230> + PTERMS(:,85,221) = +TPK%K220(:)*PCONC(:,10)*TPK%RO230(:) +! +!PTERMS(NO,K221) = -K221*<NO>*<RO231> + PTERMS(:,1,222) = -TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) +! +!PTERMS(NO2,K221) = +TPK%CF32*K221*<NO>*<RO231> + PTERMS(:,2,222) = +TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) +! +!PTERMS(HO2,K221) = +TPK%CF32*K221*<NO>*<RO231> + PTERMS(:,10,222) = +TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) +! +!PTERMS(URG8,K221) = +TPK%CF31*K221*<NO>*<RO231> + PTERMS(:,64,222) = +TPK%CF31*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) +! +!PTERMS(UR19,K221) = +TPK%CF32*K221*<NO>*<RO231> + PTERMS(:,65,222) = +TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) +! +!PTERMS(HO2,K222) = +K222*<RO2T>*<RO231> + PTERMS(:,10,223) = +TPK%K222(:)*PCONC(:,85)*TPK%RO231(:) +! +!PTERMS(UR19,K222) = +K222*<RO2T>*<RO231> + PTERMS(:,65,223) = +TPK%K222(:)*PCONC(:,85)*TPK%RO231(:) +! +!PTERMS(RO2T,K222) = -K222*<RO2T>*<RO231> + PTERMS(:,85,223) = -TPK%K222(:)*PCONC(:,85)*TPK%RO231(:) +! +! +RETURN +END SUBROUTINE SUBT36 +! +SUBROUTINE SUBT37 +! +!Indices 741 a 760 +! +!PTERMS(HO2,K223) = -K223*<HO2>*<RO231> + PTERMS(:,10,224) = -TPK%K223(:)*PCONC(:,10)*TPK%RO231(:) +! +!PTERMS(OH,K223) = +K223*<HO2>*<RO231> + PTERMS(:,15,224) = +TPK%K223(:)*PCONC(:,10)*TPK%RO231(:) +! +!PTERMS(UR19,K223) = +K223*<HO2>*<RO231> + PTERMS(:,65,224) = +TPK%K223(:)*PCONC(:,10)*TPK%RO231(:) +! +!PTERMS(NO,K224) = -K224*<NO>*<RO232> + PTERMS(:,1,225) = -TPK%K224(:)*PCONC(:,1)*TPK%RO232(:) +! +!PTERMS(NO2,K224) = +TPK%CF34*K224*<NO>*<RO232> + PTERMS(:,2,225) = +TPK%CF34*TPK%K224(:)*PCONC(:,1)*TPK%RO232(:) +! +!PTERMS(URG9,K224) = +TPK%CFA14*K224*<NO>*<RO232> + PTERMS(:,66,225) = +TPK%CFA14*TPK%K224(:)*PCONC(:,1)*TPK%RO232(:) +! +!PTERMS(RO2T,K224) = +TPK%CF34*K224*<NO>*<RO232> + PTERMS(:,85,225) = +TPK%CF34*TPK%K224(:)*PCONC(:,1)*TPK%RO232(:) +! +!PTERMS(RO2T,K225) = -K225*<RO2T>*<RO232> + PTERMS(:,85,226) = -TPK%K225(:)*PCONC(:,85)*TPK%RO232(:) +! +!PTERMS(HO2,K226) = -K226*<HO2>*<RO232> + PTERMS(:,10,227) = -TPK%K226(:)*PCONC(:,10)*TPK%RO232(:) +! +!PTERMS(OH,K226) = +K226*<HO2>*<RO232> + PTERMS(:,15,227) = +TPK%K226(:)*PCONC(:,10)*TPK%RO232(:) +! +!PTERMS(RO2T,K226) = +K226*<HO2>*<RO232> + PTERMS(:,85,227) = +TPK%K226(:)*PCONC(:,10)*TPK%RO232(:) +! +!PTERMS(NO,K227) = -K227*<NO>*<RO241> + PTERMS(:,1,228) = -TPK%K227(:)*PCONC(:,1)*TPK%RO241(:) +! +!PTERMS(NO2,K227) = +TPK%CF36*K227*<NO>*<RO241> + PTERMS(:,2,228) = +TPK%CF36*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:) +! +!PTERMS(HO2,K227) = +TPK%CF36*K227*<NO>*<RO241> + PTERMS(:,10,228) = +TPK%CF36*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:) +! +!PTERMS(URG9,K227) = +TPK%CFA15*K227*<NO>*<RO241> + PTERMS(:,66,228) = +TPK%CFA15*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:) +! +!PTERMS(HO2,K228) = +K228*<RO2T>*<RO241> + PTERMS(:,10,229) = +TPK%K228(:)*PCONC(:,85)*TPK%RO241(:) +! +!PTERMS(URG9,K228) = +0.9999996*K228*<RO2T>*<RO241> + PTERMS(:,66,229) = +0.9999996*TPK%K228(:)*PCONC(:,85)*TPK%RO241(:) +! +!PTERMS(RO2T,K228) = -K228*<RO2T>*<RO241> + PTERMS(:,85,229) = -TPK%K228(:)*PCONC(:,85)*TPK%RO241(:) +! +!PTERMS(HO2,K229) = -K229*<HO2>*<RO241> + PTERMS(:,10,230) = -TPK%K229(:)*PCONC(:,10)*TPK%RO241(:) +! +!PTERMS(OH,K229) = +K229*<HO2>*<RO241> + PTERMS(:,15,230) = +TPK%K229(:)*PCONC(:,10)*TPK%RO241(:) +! +! +RETURN +END SUBROUTINE SUBT37 +! +SUBROUTINE SUBT38 +! +!Indices 761 a 780 +! +!PTERMS(URG9,K229) = +0.9999996*K229*<HO2>*<RO241> + PTERMS(:,66,230) = +0.9999996*TPK%K229(:)*PCONC(:,10)*TPK%RO241(:) +! +!PTERMS(RO2T,K230) = +K230*<RO233> + PTERMS(:,85,231) = +TPK%K230(:)*TPK%RO233(:) +! +!PTERMS(NO,K231) = -K231*<NO>*<RO233> + PTERMS(:,1,232) = -TPK%K231(:)*PCONC(:,1)*TPK%RO233(:) +! +!PTERMS(NO2,K231) = +K231*<NO>*<RO233> + PTERMS(:,2,232) = +TPK%K231(:)*PCONC(:,1)*TPK%RO233(:) +! +!PTERMS(HO2,K231) = +K231*<NO>*<RO233> + PTERMS(:,10,232) = +TPK%K231(:)*PCONC(:,1)*TPK%RO233(:) +! +!PTERMS(RPG3,K231) = +0.3000000*K231*<NO>*<RO233> + PTERMS(:,52,232) = +0.3000000*TPK%K231(:)*PCONC(:,1)*TPK%RO233(:) +! +!PTERMS(HO2,K232) = +K232*<RO2T>*<RO233> + PTERMS(:,10,233) = +TPK%K232(:)*PCONC(:,85)*TPK%RO233(:) +! +!PTERMS(RPG3,K232) = +1.0000000*K232*<RO2T>*<RO233> + PTERMS(:,52,233) = +1.0000000*TPK%K232(:)*PCONC(:,85)*TPK%RO233(:) +! +!PTERMS(RO2T,K232) = -K232*<RO2T>*<RO233> + PTERMS(:,85,233) = -TPK%K232(:)*PCONC(:,85)*TPK%RO233(:) +! +!PTERMS(HO2,K233) = -K233*<HO2>*<RO233> + PTERMS(:,10,234) = -TPK%K233(:)*PCONC(:,10)*TPK%RO233(:) +! +!PTERMS(OH,K233) = +K233*<HO2>*<RO233> + PTERMS(:,15,234) = +TPK%K233(:)*PCONC(:,10)*TPK%RO233(:) +! +!PTERMS(RPG3,K233) = +0.3000000*K233*<HO2>*<RO233> + PTERMS(:,52,234) = +0.3000000*TPK%K233(:)*PCONC(:,10)*TPK%RO233(:) +! +!PTERMS(NO,K234) = -K234*<NO>*<RO242> + PTERMS(:,1,235) = -TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) +! +!PTERMS(NO2,K234) = +K234*<NO>*<RO242> + PTERMS(:,2,235) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) +! +!PTERMS(HO2,K234) = +K234*<NO>*<RO242> + PTERMS(:,10,235) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) +! +!PTERMS(MGLY,K234) = +K234*<NO>*<RO242> + PTERMS(:,41,235) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) +! +!PTERMS(RP10,K234) = +K234*<NO>*<RO242> + PTERMS(:,72,235) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) +! +!PTERMS(HO2,K235) = +K235*<RO2T>*<RO242> + PTERMS(:,10,236) = +TPK%K235(:)*PCONC(:,85)*TPK%RO242(:) +! +!PTERMS(MGLY,K235) = +K235*<RO2T>*<RO242> + PTERMS(:,41,236) = +TPK%K235(:)*PCONC(:,85)*TPK%RO242(:) +! +!PTERMS(RP10,K235) = +K235*<RO2T>*<RO242> + PTERMS(:,72,236) = +TPK%K235(:)*PCONC(:,85)*TPK%RO242(:) +! +! +RETURN +END SUBROUTINE SUBT38 +! +SUBROUTINE SUBT39 +! +!Indices 781 a 800 +! +!PTERMS(RO2T,K235) = -K235*<RO2T>*<RO242> + PTERMS(:,85,236) = -TPK%K235(:)*PCONC(:,85)*TPK%RO242(:) +! +!PTERMS(HO2,K236) = -K236*<HO2>*<RO242> + PTERMS(:,10,237) = -TPK%K236(:)*PCONC(:,10)*TPK%RO242(:) +! +!PTERMS(OH,K236) = +K236*<HO2>*<RO242> + PTERMS(:,15,237) = +TPK%K236(:)*PCONC(:,10)*TPK%RO242(:) +! +!PTERMS(MGLY,K236) = +K236*<HO2>*<RO242> + PTERMS(:,41,237) = +TPK%K236(:)*PCONC(:,10)*TPK%RO242(:) +! +!PTERMS(RP10,K236) = +K236*<HO2>*<RO242> + PTERMS(:,72,237) = +TPK%K236(:)*PCONC(:,10)*TPK%RO242(:) +! +!PTERMS(RO2T,K237) = +K237*<RO234> + PTERMS(:,85,238) = +TPK%K237(:)*TPK%RO234(:) +! +!PTERMS(NO,K238) = -K238*<NO>*<RO234> + PTERMS(:,1,239) = -TPK%K238(:)*PCONC(:,1)*TPK%RO234(:) +! +!PTERMS(NO2,K238) = +K238*<NO>*<RO234> + PTERMS(:,2,239) = +TPK%K238(:)*PCONC(:,1)*TPK%RO234(:) +! +!PTERMS(HO2,K238) = +K238*<NO>*<RO234> + PTERMS(:,10,239) = +TPK%K238(:)*PCONC(:,1)*TPK%RO234(:) +! +!PTERMS(RP11,K238) = +0.3*K238*<NO>*<RO234> + PTERMS(:,73,239) = +0.3*TPK%K238(:)*PCONC(:,1)*TPK%RO234(:) +! +!PTERMS(HO2,K239) = +K239*<RO2T>*<RO234> + PTERMS(:,10,240) = +TPK%K239(:)*PCONC(:,85)*TPK%RO234(:) +! +!PTERMS(RP11,K239) = +K239*<RO2T>*<RO234> + PTERMS(:,73,240) = +TPK%K239(:)*PCONC(:,85)*TPK%RO234(:) +! +!PTERMS(RO2T,K239) = -K239*<RO2T>*<RO234> + PTERMS(:,85,240) = -TPK%K239(:)*PCONC(:,85)*TPK%RO234(:) +! +!PTERMS(HO2,K240) = -K240*<HO2>*<RO234> + PTERMS(:,10,241) = -TPK%K240(:)*PCONC(:,10)*TPK%RO234(:) +! +!PTERMS(OH,K240) = +K240*<HO2>*<RO234> + PTERMS(:,15,241) = +TPK%K240(:)*PCONC(:,10)*TPK%RO234(:) +! +!PTERMS(RP11,K240) = +0.3*K240*<HO2>*<RO234> + PTERMS(:,73,241) = +0.3*TPK%K240(:)*PCONC(:,10)*TPK%RO234(:) +! +!PTERMS(NO,K241) = -K241*<NO>*<RO243> + PTERMS(:,1,242) = -TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) +! +!PTERMS(NO2,K241) = +K241*<NO>*<RO243> + PTERMS(:,2,242) = +TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) +! +!PTERMS(HO2,K241) = +K241*<NO>*<RO243> + PTERMS(:,10,242) = +TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) +! +!PTERMS(MGLY,K241) = +K241*<NO>*<RO243> + PTERMS(:,41,242) = +TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) +! +! +RETURN +END SUBROUTINE SUBT39 +! +SUBROUTINE SUBT40 +! +!Indices 801 a 820 +! +!PTERMS(RP10,K241) = +K241*<NO>*<RO243> + PTERMS(:,72,242) = +TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) +! +!PTERMS(HO2,K242) = +K242*<RO2T>*<RO243> + PTERMS(:,10,243) = +TPK%K242(:)*PCONC(:,85)*TPK%RO243(:) +! +!PTERMS(MGLY,K242) = +K242*<RO2T>*<RO243> + PTERMS(:,41,243) = +TPK%K242(:)*PCONC(:,85)*TPK%RO243(:) +! +!PTERMS(RP10,K242) = +K242*<RO2T>*<RO243> + PTERMS(:,72,243) = +TPK%K242(:)*PCONC(:,85)*TPK%RO243(:) +! +!PTERMS(RO2T,K242) = -K242*<RO2T>*<RO243> + PTERMS(:,85,243) = -TPK%K242(:)*PCONC(:,85)*TPK%RO243(:) +! +!PTERMS(HO2,K243) = -K243*<HO2>*<RO243> + PTERMS(:,10,244) = -TPK%K243(:)*PCONC(:,10)*TPK%RO243(:) +! +!PTERMS(OH,K243) = +K243*<HO2>*<RO243> + PTERMS(:,15,244) = +TPK%K243(:)*PCONC(:,10)*TPK%RO243(:) +! +!PTERMS(MGLY,K243) = +K243*<HO2>*<RO243> + PTERMS(:,41,244) = +TPK%K243(:)*PCONC(:,10)*TPK%RO243(:) +! +!PTERMS(RP10,K243) = +K243*<HO2>*<RO243> + PTERMS(:,72,244) = +TPK%K243(:)*PCONC(:,10)*TPK%RO243(:) +! +!PTERMS(RO2T,K244) = +K244*<RO235> + PTERMS(:,85,245) = +TPK%K244(:)*TPK%RO235(:) +! +!PTERMS(NO,K245) = -K245*<NO>*<RO235> + PTERMS(:,1,246) = -TPK%K245(:)*PCONC(:,1)*TPK%RO235(:) +! +!PTERMS(NO2,K245) = +K245*<NO>*<RO235> + PTERMS(:,2,246) = +TPK%K245(:)*PCONC(:,1)*TPK%RO235(:) +! +!PTERMS(HO2,K245) = +K245*<NO>*<RO235> + PTERMS(:,10,246) = +TPK%K245(:)*PCONC(:,1)*TPK%RO235(:) +! +!PTERMS(RP11,K245) = +0.5*K245*<NO>*<RO235> + PTERMS(:,73,246) = +0.5*TPK%K245(:)*PCONC(:,1)*TPK%RO235(:) +! +!PTERMS(HO2,K246) = +K246*<RO2T>*<RO235> + PTERMS(:,10,247) = +TPK%K246(:)*PCONC(:,85)*TPK%RO235(:) +! +!PTERMS(RP11,K246) = +K246*<RO2T>*<RO235> + PTERMS(:,73,247) = +TPK%K246(:)*PCONC(:,85)*TPK%RO235(:) +! +!PTERMS(RO2T,K246) = -K246*<RO2T>*<RO235> + PTERMS(:,85,247) = -TPK%K246(:)*PCONC(:,85)*TPK%RO235(:) +! +!PTERMS(HO2,K247) = -K247*<HO2>*<RO235> + PTERMS(:,10,248) = -TPK%K247(:)*PCONC(:,10)*TPK%RO235(:) +! +!PTERMS(OH,K247) = +K247*<HO2>*<RO235> + PTERMS(:,15,248) = +TPK%K247(:)*PCONC(:,10)*TPK%RO235(:) +! +!PTERMS(RP11,K247) = +K247*<HO2>*<RO235> + PTERMS(:,73,248) = +TPK%K247(:)*PCONC(:,10)*TPK%RO235(:) +! +! +RETURN +END SUBROUTINE SUBT40 +! +SUBROUTINE SUBT41 +! +!Indices 821 a 840 +! +!PTERMS(NO,K248) = -K248*<NO>*<RO244> + PTERMS(:,1,249) = -TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) +! +!PTERMS(NO2,K248) = +K248*<NO>*<RO244> + PTERMS(:,2,249) = +TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) +! +!PTERMS(HO2,K248) = +K248*<NO>*<RO244> + PTERMS(:,10,249) = +TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) +! +!PTERMS(MGLY,K248) = +K248*<NO>*<RO244> + PTERMS(:,41,249) = +TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) +! +!PTERMS(RP10,K248) = +K248*<NO>*<RO244> + PTERMS(:,72,249) = +TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) +! +!PTERMS(HO2,K249) = +K249*<RO2T>*<RO244> + PTERMS(:,10,250) = +TPK%K249(:)*PCONC(:,85)*TPK%RO244(:) +! +!PTERMS(MGLY,K249) = +K249*<RO2T>*<RO244> + PTERMS(:,41,250) = +TPK%K249(:)*PCONC(:,85)*TPK%RO244(:) +! +!PTERMS(RP10,K249) = +K249*<RO2T>*<RO244> + PTERMS(:,72,250) = +TPK%K249(:)*PCONC(:,85)*TPK%RO244(:) +! +!PTERMS(RO2T,K249) = -K249*<RO2T>*<RO244> + PTERMS(:,85,250) = -TPK%K249(:)*PCONC(:,85)*TPK%RO244(:) +! +!PTERMS(HO2,K250) = -K250*<HO2>*<RO244> + PTERMS(:,10,251) = -TPK%K250(:)*PCONC(:,10)*TPK%RO244(:) +! +!PTERMS(OH,K250) = +K250*<HO2>*<RO244> + PTERMS(:,15,251) = +TPK%K250(:)*PCONC(:,10)*TPK%RO244(:) +! +!PTERMS(MGLY,K250) = +K250*<HO2>*<RO244> + PTERMS(:,41,251) = +TPK%K250(:)*PCONC(:,10)*TPK%RO244(:) +! +!PTERMS(RP10,K250) = +K250*<HO2>*<RO244> + PTERMS(:,72,251) = +TPK%K250(:)*PCONC(:,10)*TPK%RO244(:) +! +!PTERMS(RO2T,K251) = +K251*<RO236> + PTERMS(:,85,252) = +TPK%K251(:)*TPK%RO236(:) +! +!PTERMS(NO,K252) = -K252*<NO>*<RO236> + PTERMS(:,1,253) = -TPK%K252(:)*PCONC(:,1)*TPK%RO236(:) +! +!PTERMS(NO2,K252) = +K252*<NO>*<RO236> + PTERMS(:,2,253) = +TPK%K252(:)*PCONC(:,1)*TPK%RO236(:) +! +!PTERMS(HO2,K252) = +K252*<NO>*<RO236> + PTERMS(:,10,253) = +TPK%K252(:)*PCONC(:,1)*TPK%RO236(:) +! +!PTERMS(RPG3,K252) = +0.3000000*K252*<NO>*<RO236> + PTERMS(:,52,253) = +0.3000000*TPK%K252(:)*PCONC(:,1)*TPK%RO236(:) +! +!PTERMS(HO2,K253) = +K253*<RO2T>*<RO236> + PTERMS(:,10,254) = +TPK%K253(:)*PCONC(:,85)*TPK%RO236(:) +! +!PTERMS(RPG3,K253) = +1.0000000*K253*<RO2T>*<RO236> + PTERMS(:,52,254) = +1.0000000*TPK%K253(:)*PCONC(:,85)*TPK%RO236(:) +! +! +RETURN +END SUBROUTINE SUBT41 +! +SUBROUTINE SUBT42 +! +!Indices 841 a 860 +! +!PTERMS(RO2T,K253) = -K253*<RO2T>*<RO236> + PTERMS(:,85,254) = -TPK%K253(:)*PCONC(:,85)*TPK%RO236(:) +! +!PTERMS(HO2,K254) = -K254*<HO2>*<RO236> + PTERMS(:,10,255) = -TPK%K254(:)*PCONC(:,10)*TPK%RO236(:) +! +!PTERMS(OH,K254) = +K254*<HO2>*<RO236> + PTERMS(:,15,255) = +TPK%K254(:)*PCONC(:,10)*TPK%RO236(:) +! +!PTERMS(RPG3,K254) = +0.3000000*K254*<HO2>*<RO236> + PTERMS(:,52,255) = +0.3000000*TPK%K254(:)*PCONC(:,10)*TPK%RO236(:) +! +!PTERMS(NO,K255) = -K255*<NO>*<RO245> + PTERMS(:,1,256) = -TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) +! +!PTERMS(NO2,K255) = +K255*<NO>*<RO245> + PTERMS(:,2,256) = +TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) +! +!PTERMS(HO2,K255) = +K255*<NO>*<RO245> + PTERMS(:,10,256) = +TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) +! +!PTERMS(MGLY,K255) = +K255*<NO>*<RO245> + PTERMS(:,41,256) = +TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) +! +!PTERMS(RP10,K255) = +K255*<NO>*<RO245> + PTERMS(:,72,256) = +TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) +! +!PTERMS(HO2,K256) = +K256*<RO2T>*<RO245> + PTERMS(:,10,257) = +TPK%K256(:)*PCONC(:,85)*TPK%RO245(:) +! +!PTERMS(MGLY,K256) = +K256*<RO2T>*<RO245> + PTERMS(:,41,257) = +TPK%K256(:)*PCONC(:,85)*TPK%RO245(:) +! +!PTERMS(RP10,K256) = +K256*<RO2T>*<RO245> + PTERMS(:,72,257) = +TPK%K256(:)*PCONC(:,85)*TPK%RO245(:) +! +!PTERMS(RO2T,K256) = -K256*<RO2T>*<RO245> + PTERMS(:,85,257) = -TPK%K256(:)*PCONC(:,85)*TPK%RO245(:) +! +!PTERMS(HO2,K257) = -K257*<HO2>*<RO245> + PTERMS(:,10,258) = -TPK%K257(:)*PCONC(:,10)*TPK%RO245(:) +! +!PTERMS(OH,K257) = +K257*<HO2>*<RO245> + PTERMS(:,15,258) = +TPK%K257(:)*PCONC(:,10)*TPK%RO245(:) +! +!PTERMS(MGLY,K257) = +K257*<HO2>*<RO245> + PTERMS(:,41,258) = +TPK%K257(:)*PCONC(:,10)*TPK%RO245(:) +! +!PTERMS(RP10,K257) = +K257*<HO2>*<RO245> + PTERMS(:,72,258) = +TPK%K257(:)*PCONC(:,10)*TPK%RO245(:) +! +!PTERMS(RO2T,K258) = +K258*<RO237> + PTERMS(:,85,259) = +TPK%K258(:)*TPK%RO237(:) +! +!PTERMS(NO,K259) = -K259*<NO>*<RO237> + PTERMS(:,1,260) = -TPK%K259(:)*PCONC(:,1)*TPK%RO237(:) +! +!PTERMS(NO2,K259) = +K259*<NO>*<RO237> + PTERMS(:,2,260) = +TPK%K259(:)*PCONC(:,1)*TPK%RO237(:) +! +! +RETURN +END SUBROUTINE SUBT42 +! +SUBROUTINE SUBT43 +! +!Indices 861 a 880 +! +!PTERMS(HO2,K259) = +K259*<NO>*<RO237> + PTERMS(:,10,260) = +TPK%K259(:)*PCONC(:,1)*TPK%RO237(:) +! +!PTERMS(RPG2,K259) = +0.3000000*K259*<NO>*<RO237> + PTERMS(:,50,260) = +0.3000000*TPK%K259(:)*PCONC(:,1)*TPK%RO237(:) +! +!PTERMS(HO2,K260) = +K260*<RO2T>*<RO237> + PTERMS(:,10,261) = +TPK%K260(:)*PCONC(:,85)*TPK%RO237(:) +! +!PTERMS(RPG2,K260) = +1.0000000*K260*<RO2T>*<RO237> + PTERMS(:,50,261) = +1.0000000*TPK%K260(:)*PCONC(:,85)*TPK%RO237(:) +! +!PTERMS(RO2T,K260) = -K260*<RO2T>*<RO237> + PTERMS(:,85,261) = -TPK%K260(:)*PCONC(:,85)*TPK%RO237(:) +! +!PTERMS(HO2,K261) = -K261*<HO2>*<RO237> + PTERMS(:,10,262) = -TPK%K261(:)*PCONC(:,10)*TPK%RO237(:) +! +!PTERMS(OH,K261) = +K261*<HO2>*<RO237> + PTERMS(:,15,262) = +TPK%K261(:)*PCONC(:,10)*TPK%RO237(:) +! +!PTERMS(RPG2,K261) = +0.3000000*K261*<HO2>*<RO237> + PTERMS(:,50,262) = +0.3000000*TPK%K261(:)*PCONC(:,10)*TPK%RO237(:) +! +!PTERMS(NO,K262) = -K262*<NO>*<RO246> + PTERMS(:,1,263) = -TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) +! +!PTERMS(NO2,K262) = +K262*<NO>*<RO246> + PTERMS(:,2,263) = +TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) +! +!PTERMS(HO2,K262) = +K262*<NO>*<RO246> + PTERMS(:,10,263) = +TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) +! +!PTERMS(MGLY,K262) = +K262*<NO>*<RO246> + PTERMS(:,41,263) = +TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) +! +!PTERMS(RP10,K262) = +K262*<NO>*<RO246> + PTERMS(:,72,263) = +TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) +! +!PTERMS(HO2,K263) = +K263*<RO2T>*<RO246> + PTERMS(:,10,264) = +TPK%K263(:)*PCONC(:,85)*TPK%RO246(:) +! +!PTERMS(MGLY,K263) = +K263*<RO2T>*<RO246> + PTERMS(:,41,264) = +TPK%K263(:)*PCONC(:,85)*TPK%RO246(:) +! +!PTERMS(RP10,K263) = +K263*<RO2T>*<RO246> + PTERMS(:,72,264) = +TPK%K263(:)*PCONC(:,85)*TPK%RO246(:) +! +!PTERMS(RO2T,K263) = -K263*<RO2T>*<RO246> + PTERMS(:,85,264) = -TPK%K263(:)*PCONC(:,85)*TPK%RO246(:) +! +!PTERMS(HO2,K264) = -K264*<HO2>*<RO246> + PTERMS(:,10,265) = -TPK%K264(:)*PCONC(:,10)*TPK%RO246(:) +! +!PTERMS(OH,K264) = +K264*<HO2>*<RO246> + PTERMS(:,15,265) = +TPK%K264(:)*PCONC(:,10)*TPK%RO246(:) +! +!PTERMS(MGLY,K264) = +K264*<HO2>*<RO246> + PTERMS(:,41,265) = +TPK%K264(:)*PCONC(:,10)*TPK%RO246(:) +! +! +RETURN +END SUBROUTINE SUBT43 ! -SUBROUTINE SUBSRW12 +SUBROUTINE SUBT44 ! -!Indices 253 a 262 +!Indices 881 a 900 +! +!PTERMS(RP10,K264) = +K264*<HO2>*<RO246> + PTERMS(:,72,265) = +TPK%K264(:)*PCONC(:,10)*TPK%RO246(:) +! +!PTERMS(RO2T,K265) = +K265*<RO238> + PTERMS(:,85,266) = +TPK%K265(:)*TPK%RO238(:) +! +!PTERMS(NO,K266) = -K266*<NO>*<RO238> + PTERMS(:,1,267) = -TPK%K266(:)*PCONC(:,1)*TPK%RO238(:) +! +!PTERMS(NO2,K266) = +K266*<NO>*<RO238> + PTERMS(:,2,267) = +TPK%K266(:)*PCONC(:,1)*TPK%RO238(:) +! +!PTERMS(HO2,K266) = +K266*<NO>*<RO238> + PTERMS(:,10,267) = +TPK%K266(:)*PCONC(:,1)*TPK%RO238(:) +! +!PTERMS(RPG7,K266) = +1.0000013*K266*<NO>*<RO238> + PTERMS(:,63,267) = +1.0000013*TPK%K266(:)*PCONC(:,1)*TPK%RO238(:) +! +!PTERMS(HO2,K267) = +K267*<RO2T>*<RO238> + PTERMS(:,10,268) = +TPK%K267(:)*PCONC(:,85)*TPK%RO238(:) +! +!PTERMS(RPG7,K267) = +1.0000013*K267*<RO2T>*<RO238> + PTERMS(:,63,268) = +1.0000013*TPK%K267(:)*PCONC(:,85)*TPK%RO238(:) +! +!PTERMS(RO2T,K267) = -K267*<RO2T>*<RO238> + PTERMS(:,85,268) = -TPK%K267(:)*PCONC(:,85)*TPK%RO238(:) +! +!PTERMS(HO2,K268) = -K268*<HO2>*<RO238> + PTERMS(:,10,269) = -TPK%K268(:)*PCONC(:,10)*TPK%RO238(:) +! +!PTERMS(OH,K268) = +K268*<HO2>*<RO238> + PTERMS(:,15,269) = +TPK%K268(:)*PCONC(:,10)*TPK%RO238(:) +! +!PTERMS(RPG7,K268) = +1.0000013*K268*<HO2>*<RO238> + PTERMS(:,63,269) = +1.0000013*TPK%K268(:)*PCONC(:,10)*TPK%RO238(:) +! +!PTERMS(NO,K269) = -K269*<NO>*<RO247> + PTERMS(:,1,270) = -TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) +! +!PTERMS(NO2,K269) = +K269*<NO>*<RO247> + PTERMS(:,2,270) = +TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) +! +!PTERMS(HO2,K269) = +K269*<NO>*<RO247> + PTERMS(:,10,270) = +TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) +! +!PTERMS(MGLY,K269) = +K269*<NO>*<RO247> + PTERMS(:,41,270) = +TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) +! +!PTERMS(RPRL,K269) = +1.0023998*K269*<NO>*<RO247> + PTERMS(:,75,270) = +1.0023998*TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) +! +!PTERMS(HO2,K270) = +K270*<RO2T>*<RO247> + PTERMS(:,10,271) = +TPK%K270(:)*PCONC(:,85)*TPK%RO247(:) +! +!PTERMS(MGLY,K270) = +K270*<RO2T>*<RO247> + PTERMS(:,41,271) = +TPK%K270(:)*PCONC(:,85)*TPK%RO247(:) +! +!PTERMS(RPRL,K270) = +1.0023998*K270*<RO2T>*<RO247> + PTERMS(:,75,271) = +1.0023998*TPK%K270(:)*PCONC(:,85)*TPK%RO247(:) ! - TPK%KR11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHR)) - TPK%KR12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHR))**2./& -&((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)& -&)+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.& -&)*(1.26e-6+10.**(-TPK%PHR))))/TPK%MOL2MOLECRAIN - TPK%KR14=1.0E+10 - TPK%KR15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK%PHR)+(10.**(-T& -&PK%PHR))**2.))/TPK%MOL2MOLECRAIN - TPK%KR16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1& -&./298.15))*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(& -&1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%& -&PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN - TPK%KR17=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN - TPK%KR18=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.3e-& -&2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-& -&2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%& -&MOL2MOLECRAIN - TPK%KR19=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(4030.*(1./TPK%T-1.& -&/298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2MOLECRAIN - TPK%KR20=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+3.4E+9*exp(& -&-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.15)))/(1.8e-4*ex& -&p(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN ! RETURN -END SUBROUTINE SUBSRW12 +END SUBROUTINE SUBT44 ! -SUBROUTINE SUBSRW13 +SUBROUTINE SUBT45 ! -!Indices 263 a 272 +!Indices 901 a 920 +! +!PTERMS(RO2T,K270) = -K270*<RO2T>*<RO247> + PTERMS(:,85,271) = -TPK%K270(:)*PCONC(:,85)*TPK%RO247(:) +! +!PTERMS(HO2,K271) = -K271*<HO2>*<RO247> + PTERMS(:,10,272) = -TPK%K271(:)*PCONC(:,10)*TPK%RO247(:) +! +!PTERMS(OH,K271) = +K271*<HO2>*<RO247> + PTERMS(:,15,272) = +TPK%K271(:)*PCONC(:,10)*TPK%RO247(:) +! +!PTERMS(MGLY,K271) = +K271*<HO2>*<RO247> + PTERMS(:,41,272) = +TPK%K271(:)*PCONC(:,10)*TPK%RO247(:) +! +!PTERMS(RPRL,K271) = +1.0023998*K271*<HO2>*<RO247> + PTERMS(:,75,272) = +1.0023998*TPK%K271(:)*PCONC(:,10)*TPK%RO247(:) +! +!PTERMS(OH,K272) = -K272*<OH>*<MVK> + PTERMS(:,15,273) = -TPK%K272(:)*PCONC(:,15)*PCONC(:,39) +! +!PTERMS(MVK,K272) = -K272*<OH>*<MVK> + PTERMS(:,39,273) = -TPK%K272(:)*PCONC(:,15)*PCONC(:,39) +! +!PTERMS(RO2T,K272) = +K272*<OH>*<MVK> + PTERMS(:,85,273) = +TPK%K272(:)*PCONC(:,15)*PCONC(:,39) +! +!PTERMS(OH,K273) = -K273*<OH>*<MCR> + PTERMS(:,15,274) = -TPK%K273(:)*PCONC(:,15)*PCONC(:,40) +! +!PTERMS(MCR,K273) = -K273*<OH>*<MCR> + PTERMS(:,40,274) = -TPK%K273(:)*PCONC(:,15)*PCONC(:,40) +! +!PTERMS(RO2T,K273) = +K273*<OH>*<MCR> + PTERMS(:,85,274) = +TPK%K273(:)*PCONC(:,15)*PCONC(:,40) +! +!PTERMS(OH,K274) = -K274*<OH>*<MGLY> + PTERMS(:,15,275) = -TPK%K274(:)*PCONC(:,15)*PCONC(:,41) +! +!PTERMS(MGLY,K274) = -K274*<OH>*<MGLY> + PTERMS(:,41,275) = -TPK%K274(:)*PCONC(:,15)*PCONC(:,41) +! +!PTERMS(RO2T,K274) = +K274*<OH>*<MGLY> + PTERMS(:,85,275) = +TPK%K274(:)*PCONC(:,15)*PCONC(:,41) +! +!PTERMS(HNO3,K275) = +TPK%CF46*K275*<NO3>*<MCR> + PTERMS(:,5,276) = +TPK%CF46*TPK%K275(:)*PCONC(:,8)*PCONC(:,40) +! +!PTERMS(NO3,K275) = -K275*<NO3>*<MCR> + PTERMS(:,8,276) = -TPK%K275(:)*PCONC(:,8)*PCONC(:,40) +! +!PTERMS(MCR,K275) = -K275*<NO3>*<MCR> + PTERMS(:,40,276) = -TPK%K275(:)*PCONC(:,8)*PCONC(:,40) +! +!PTERMS(RO2T,K275) = +K275*<NO3>*<MCR> + PTERMS(:,85,276) = +TPK%K275(:)*PCONC(:,8)*PCONC(:,40) +! +!PTERMS(HO2,K276) = +K276*<MGLY> + PTERMS(:,10,277) = +TPK%K276(:)*PCONC(:,41) +! +!PTERMS(CO,K276) = +K276*<MGLY> + PTERMS(:,11,277) = +TPK%K276(:)*PCONC(:,41) ! - TPK%KR21=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-& -&1./298.15))*10.**(-TPK%PHR)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.15))*1.3e-2*exp& -&(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/((1.3e-2*& -&exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*& -&exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.)*(1.+2.5& -&e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECRAIN - TPK%KR22=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*EXP(-6716*(1./T& -&PK%T-1./298.15))/10.**(-TPK%PHR) - TPK%KR23=3.0E+8/TPK%MOL2MOLECRAIN - TPK%KR24=1.1E+9 - TPK%KR25=(1.7E+9*10.**(-TPK%PHR)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN - TPK%KR26=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN - TPK%KR27=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*10.**(& -&-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1& -&./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%& -&PHR))**2.))/TPK%MOL2MOLECRAIN - TPK%KR28=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15)) - TPK%KR29=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-& -&1./298.15))*10.**(-TPK%PHR)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.15))*1.3e-2*exp& -&(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/(1.3e-2*e& -&xp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*e& -&xp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL& -&2MOLECRAIN - TPK%KR30=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1& -&./298.15))*10.**(-TPK%PHR)*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.& -&15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.& -&15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN ! RETURN -END SUBROUTINE SUBSRW13 +END SUBROUTINE SUBT45 ! -END SUBROUTINE CH_SET_RATES +SUBROUTINE SUBT46 ! +!Indices 921 a 940 ! -!======================================================================== +!PTERMS(MGLY,K276) = -K276*<MGLY> + PTERMS(:,41,277) = -TPK%K276(:)*PCONC(:,41) ! -!! ############################## - MODULE MODI_CH_SET_PHOTO_RATES -!! ############################## -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -INTERFACE -SUBROUTINE CH_SET_PHOTO_RATES(PTIME,PCONC,KL,TPM,KMI,KOUT,KVERB,KVECNPT,KVECMASK,KEQ,PJVALUES) -USE MODD_CH_M9_n, ONLY: METEOTRANSTYPE -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT,KL,KEQ,KMI -INTEGER, DIMENSION(:,:), INTENT(IN) :: KVECMASK -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -TYPE(METEOTRANSTYPE), DIMENSION(KVECNPT), INTENT(IN) :: TPM -INTEGER, INTENT(IN) :: KOUT,KVERB -REAL,DIMENSION(:,:,:,:), INTENT(IN) :: PJVALUES ! Tuv coefficient -END SUBROUTINE CH_SET_PHOTO_RATES -END INTERFACE -END MODULE MODI_CH_SET_PHOTO_RATES +!PTERMS(RO2T,K276) = +K276*<MGLY> + PTERMS(:,85,277) = +TPK%K276(:)*PCONC(:,41) ! -!======================================================================== +!PTERMS(NO,K277) = -K277*<NO>*<RO248> + PTERMS(:,1,278) = -TPK%K277(:)*PCONC(:,1)*TPK%RO248(:) ! -!! ############################################################# - SUBROUTINE CH_SET_PHOTO_RATES(PTIME,PCONC,KL,TPM,KMI,KOUT,KVERB,KVECNPT,KVECMASK,KEQ,PJVALUES) -!! ############################################################# -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -!!*** *MODD_CH_SET_PHOTO_RATES* -!! -!! PURPOSE -!! ------- -! set or calculate photolysis rates -!! -!!** METHOD -!! ------ -!! simple -!! -!! REFERENCE -!! --------- -!! none -!! -!! AUTHOR -!! ------ -!! Karsten Suhre (LA) -!! -!! MODIFICATIONS -!! ------------- -!! Original 26/07/96 -!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) -!! Modified 29/03/01: Vectorization + nesting (C. Mari) -!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) -!! -!!---------------------------------------------------------------------- -!! -!! EXTERNAL -!! -------- -!! none -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -USE MODD_CH_M9_SCHEME -USE MODD_CH_M9_n, ONLY : METEOTRANSTYPE -USE MODI_CH_ALLOCATE_TACCS -! USER DEFINED FUNCTIONS -USE MODI_KT -USE MODI_TROE -USE MODI_HENRY -USE MODI_HEFFA -USE MODI_TROE_EQUIL -USE MODI_HEFFB -!! -!! EXPLICIT ARGUMENTS -!! ------------------ -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT,KL,KEQ,KMI -INTEGER, DIMENSION(:,:), INTENT(IN) :: KVECMASK -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -TYPE(METEOTRANSTYPE), DIMENSION(KVECNPT), INTENT(IN) :: TPM -INTEGER, INTENT(IN) :: KOUT,KVERB -REAL,DIMENSION(:,:,:,:), INTENT(IN) :: PJVALUES ! Tuv coefficient -!! -! /BEGIN_SET_PHOTO_RATES/ -! parameter for use by subroutine JVALUES, -! contains the actual photolysis rates -REAL, DIMENSION(KVECNPT,42) :: ZRATESIO ! TUV photolysis rates at one level -REAL, DIMENSION(KVECNPT,19) :: ZRATES ! photolysis rates of RACM (vector) -INTEGER :: JITPK ! loop counter for J-Value transfer -INTEGER :: IDTI,IDTJ -INTEGER :: JITPKPLUS -INTEGER, DIMENSION(KVECNPT) :: ITABI, ITABJ -INTEGER, DIMENSION(KVECNPT) :: IMODELLEVEL -TYPE(CCSTYPE), POINTER :: TPK +!PTERMS(NO2,K277) = +K277*<NO>*<RO248> + PTERMS(:,2,278) = +TPK%K277(:)*PCONC(:,1)*TPK%RO248(:) ! -! Normally allocated in CH_SET_RATES but who knows ? -IF (.NOT. ASSOCIATED(TACCS(KMI)%NVERB)) THEN - CALL CH_ALLOCATE_TACCS(KMI, KVECNPT) -END IF +!PTERMS(RO2T,K277) = +K277*<NO>*<RO248> + PTERMS(:,85,278) = +TPK%K277(:)*PCONC(:,1)*TPK%RO248(:) ! -! TPK is set for current model -TPK=>TACCS(KMI) +!PTERMS(HNO3,K278) = +K278*<NO3>*<MGLY> + PTERMS(:,5,279) = +TPK%K278(:)*PCONC(:,8)*PCONC(:,41) ! -! calculation of photolysis rates and transfer into local variables +!PTERMS(NO3,K278) = -K278*<NO3>*<MGLY> + PTERMS(:,8,279) = -TPK%K278(:)*PCONC(:,8)*PCONC(:,41) ! -IDTI=KVECMASK(2,KL)-KVECMASK(1,KL)+1 -IDTJ=KVECMASK(4,KL)-KVECMASK(3,KL)+1 -DO JITPK = 0, KVECNPT-1 +!PTERMS(MGLY,K278) = -K278*<NO3>*<MGLY> + PTERMS(:,41,279) = -TPK%K278(:)*PCONC(:,8)*PCONC(:,41) ! - JITPKPLUS=JITPK+1 - ITABI(JITPKPLUS)=JITPK-IDTI*(JITPK/IDTI)+KVECMASK(1,KL) - ITABJ(JITPKPLUS)=JITPK/IDTI-IDTJ*(JITPK/(IDTI*IDTJ))+KVECMASK(3,KL) +!PTERMS(RO2T,K278) = +K278*<NO3>*<MGLY> + PTERMS(:,85,279) = +TPK%K278(:)*PCONC(:,8)*PCONC(:,41) ! - ZRATESIO(JITPKPLUS,:) = PJVALUES(ITABI(JITPKPLUS),ITABJ(JITPKPLUS),TPK%MODELLEVEL(JITPKPLUS),:) +!PTERMS(O3,K279) = +K279*<HO2>*<RO248> + PTERMS(:,3,280) = +TPK%K279(:)*PCONC(:,10)*TPK%RO248(:) ! -ENDDO +!PTERMS(HO2,K279) = -K279*<HO2>*<RO248> + PTERMS(:,10,280) = -TPK%K279(:)*PCONC(:,10)*TPK%RO248(:) ! +!PTERMS(UR21,K279) = +K279*<HO2>*<RO248> + PTERMS(:,47,280) = +TPK%K279(:)*PCONC(:,10)*TPK%RO248(:) ! -DO JITPK = 0, KVECNPT-1 +!PTERMS(RO2T,K280) = -K280*<RO2T>*<RO248> + PTERMS(:,85,281) = -TPK%K280(:)*PCONC(:,85)*TPK%RO248(:) ! -! associate TUV J-Values to ReLACS J-Values -! -! change according to original coefficients and modified RACM +!PTERMS(O3,K281) = -K281*<O3>*<MVK> + PTERMS(:,3,282) = -TPK%K281(:)*PCONC(:,3)*PCONC(:,39) ! - ZRATES(JITPK+1, 1) = ZRATESIO(JITPK+1,5) - ZRATES(JITPK+1, 2) = ZRATESIO(JITPK+1,2) - ZRATES(JITPK+1, 3) = ZRATESIO(JITPK+1,3) - ZRATES(JITPK+1, 4) = ZRATESIO(JITPK+1,8) - ZRATES(JITPK+1, 5) = ZRATESIO(JITPK+1,9) - ZRATES(JITPK+1, 6) = ZRATESIO(JITPK+1,10) - ZRATES(JITPK+1, 7) = ZRATESIO(JITPK+1,6) - ZRATES(JITPK+1, 8) = ZRATESIO(JITPK+1,7) - ZRATES(JITPK+1, 9) = ZRATESIO(JITPK+1,4) - ZRATES(JITPK+1, 10) = ZRATESIO(JITPK+1,12) - ZRATES(JITPK+1, 11) = ZRATESIO(JITPK+1,11) - ZRATES(JITPK+1, 12) = ZRATESIO(JITPK+1,13) - ZRATES(JITPK+1, 13) = ZRATESIO(JITPK+1,17) - ZRATES(JITPK+1, 14) = 0.962055 *ZRATESIO(JITPK+1,17)+& - & 3.79454E-02 *ZRATESIO(JITPK+1,38) - ZRATES(JITPK+1, 15) = ZRATESIO(JITPK+1,33) - ZRATES(JITPK+1, 16) = 0.20842 *ZRATESIO(JITPK+1,35)& - &+ 6.43207E-02 *ZRATESIO(JITPK+1,36)& - &+ 3.10372E-02 *ZRATESIO(JITPK+1,34)& - &+ 0.376 *ZRATESIO(JITPK+1,37)& - &+ 0.31937 *ZRATESIO(JITPK+1,26) - ZRATES(JITPK+1, 17) = 0.20*ZRATESIO(JITPK+1,20)& - &+ 0.80*ZRATESIO(JITPK+1,21) -! aqueous phase photolysis - ZRATES(JITPK+1, 18) = ZRATESIO(JITPK+1,41) - ZRATES(JITPK+1, 19) = ZRATESIO(JITPK+1,42) +!PTERMS(HO2,K281) = +0.28*K281*<O3>*<MVK> + PTERMS(:,10,282) = +0.28*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +! +!PTERMS(CO,K281) = +0.56*K281*<O3>*<MVK> + PTERMS(:,11,282) = +0.56*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +! +!PTERMS(OH,K281) = +0.36*K281*<O3>*<MVK> + PTERMS(:,15,282) = +0.36*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +! +!PTERMS(HCHO,K281) = +0.5*K281*<O3>*<MVK> + PTERMS(:,28,282) = +0.5*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +! +!PTERMS(ALD2,K281) = +0.1*K281*<O3>*<MVK> + PTERMS(:,29,282) = +0.1*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +! +!PTERMS(MVK,K281) = -K281*<O3>*<MVK> + PTERMS(:,39,282) = -TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +! +! +RETURN +END SUBROUTINE SUBT46 +! +SUBROUTINE SUBT47 +! +!Indices 941 a 960 +! +!PTERMS(MGLY,K281) = +0.5*K281*<O3>*<MVK> + PTERMS(:,41,282) = +0.5*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +! +!PTERMS(ORA1,K281) = +0.12*K281*<O3>*<MVK> + PTERMS(:,43,282) = +0.12*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +! +!PTERMS(UR21,K281) = +0.12*K281*<O3>*<MVK> + PTERMS(:,47,282) = +0.12*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +! +!PTERMS(RO2T,K281) = +0.28*K281*<O3>*<MVK> + PTERMS(:,85,282) = +0.28*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +! +!PTERMS(O3,K282) = -K282*<O3>*<MCR> + PTERMS(:,3,283) = -TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +! +!PTERMS(HO2,K282) = +0.41*K282*<O3>*<MCR> + PTERMS(:,10,283) = +0.41*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +! +!PTERMS(CO,K282) = +0.41*K282*<O3>*<MCR> + PTERMS(:,11,283) = +0.41*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +! +!PTERMS(OH,K282) = +0.82*K282*<O3>*<MCR> + PTERMS(:,15,283) = +0.82*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +! +!PTERMS(HCHO,K282) = +0.5*K282*<O3>*<MCR> + PTERMS(:,28,283) = +0.5*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +! +!PTERMS(MCR,K282) = -K282*<O3>*<MCR> + PTERMS(:,40,283) = -TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +! +!PTERMS(MGLY,K282) = +0.59*K282*<O3>*<MCR> + PTERMS(:,41,283) = +0.59*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +! +!PTERMS(ORA1,K282) = +0.09*K282*<O3>*<MCR> + PTERMS(:,43,283) = +0.09*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +! +!PTERMS(RO2T,K282) = +0.41*K282*<O3>*<MCR> + PTERMS(:,85,283) = +0.41*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +! +!PTERMS(KETL,K283) = +0.85*K283*<O>*<MVK> + PTERMS(:,30,284) = +0.85*TPK%K283(:)*TPK%O(:)*PCONC(:,39) +! +!PTERMS(MVK,K283) = -K283*<O>*<MVK> + PTERMS(:,39,284) = -TPK%K283(:)*TPK%O(:)*PCONC(:,39) +! +!PTERMS(RO2T,K283) = +0.3*K283*<O>*<MVK> + PTERMS(:,85,284) = +0.3*TPK%K283(:)*TPK%O(:)*PCONC(:,39) +! +!PTERMS(HO2,K284) = +0.15*K284*<O>*<MCR> + PTERMS(:,10,285) = +0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40) +! +!PTERMS(CO,K284) = +0.15*K284*<O>*<MCR> + PTERMS(:,11,285) = +0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40) +! +!PTERMS(ALD2,K284) = +0.85*K284*<O>*<MCR> + PTERMS(:,29,285) = +0.85*TPK%K284(:)*TPK%O(:)*PCONC(:,40) +! +!PTERMS(MCR,K284) = -K284*<O>*<MCR> + PTERMS(:,40,285) = -TPK%K284(:)*TPK%O(:)*PCONC(:,40) +! +! +RETURN +END SUBROUTINE SUBT47 +! +SUBROUTINE SUBT48 +! +!Indices 961 a 980 +! +!PTERMS(RO2T,K284) = +0.15*K284*<O>*<MCR> + PTERMS(:,85,285) = +0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40) +! +!PTERMS(NO,K285) = -K285*<NO>*<RO249> + PTERMS(:,1,286) = -TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) +! +!PTERMS(NO2,K285) = +K285*<NO>*<RO249> + PTERMS(:,2,286) = +TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) +! +!PTERMS(HO2,K285) = +K285*<NO>*<RO249> + PTERMS(:,10,286) = +TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) +! +!PTERMS(HCHO,K285) = +K285*<NO>*<RO249> + PTERMS(:,28,286) = +TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) +! +!PTERMS(MGLY,K285) = +K285*<NO>*<RO249> + PTERMS(:,41,286) = +TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) +! +!PTERMS(HO2,K286) = +K286*<RO2T>*<RO249> + PTERMS(:,10,287) = +TPK%K286(:)*PCONC(:,85)*TPK%RO249(:) +! +!PTERMS(HCHO,K286) = +K286*<RO2T>*<RO249> + PTERMS(:,28,287) = +TPK%K286(:)*PCONC(:,85)*TPK%RO249(:) +! +!PTERMS(MGLY,K286) = +K286*<RO2T>*<RO249> + PTERMS(:,41,287) = +TPK%K286(:)*PCONC(:,85)*TPK%RO249(:) +! +!PTERMS(RO2T,K286) = -K286*<RO2T>*<RO249> + PTERMS(:,85,287) = -TPK%K286(:)*PCONC(:,85)*TPK%RO249(:) +! +!PTERMS(HO2,K287) = -K287*<HO2>*<RO249> + PTERMS(:,10,288) = -TPK%K287(:)*PCONC(:,10)*TPK%RO249(:) +! +!PTERMS(OH,K287) = +K287*<HO2>*<RO249> + PTERMS(:,15,288) = +TPK%K287(:)*PCONC(:,10)*TPK%RO249(:) +! +!PTERMS(HCHO,K287) = +K287*<HO2>*<RO249> + PTERMS(:,28,288) = +TPK%K287(:)*PCONC(:,10)*TPK%RO249(:) +! +!PTERMS(MGLY,K287) = +K287*<HO2>*<RO249> + PTERMS(:,41,288) = +TPK%K287(:)*PCONC(:,10)*TPK%RO249(:) +! +!PTERMS(NO,K288) = -K288*<NO>*<RO250> + PTERMS(:,1,289) = -TPK%K288(:)*PCONC(:,1)*TPK%RO250(:) +! +!PTERMS(NO2,K288) = +K288*<NO>*<RO250> + PTERMS(:,2,289) = +TPK%K288(:)*PCONC(:,1)*TPK%RO250(:) +! +!PTERMS(RO2T,K288) = +K288*<NO>*<RO250> + PTERMS(:,85,289) = +TPK%K288(:)*PCONC(:,1)*TPK%RO250(:) +! +!PTERMS(O3,K289) = +K289*<HO2>*<RO250> + PTERMS(:,3,290) = +TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) +! +!PTERMS(HO2,K289) = -K289*<HO2>*<RO250> + PTERMS(:,10,290) = -TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) +! +!PTERMS(OLEL,K289) = +0.5*K289*<HO2>*<RO250> + PTERMS(:,17,290) = +0.5*TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) +! +! +RETURN +END SUBROUTINE SUBT48 +! +SUBROUTINE SUBT49 +! +!Indices 981 a 1000 +! +!PTERMS(ORA2,K289) = +0.5*K289*<HO2>*<RO250> + PTERMS(:,44,290) = +0.5*TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) +! +!PTERMS(RO2T,K290) = -K290*<RO2T>*<RO250> + PTERMS(:,85,291) = -TPK%K290(:)*PCONC(:,85)*TPK%RO250(:) +! +!PTERMS(NO,K291) = -K291*<NO>*<RO251> + PTERMS(:,1,292) = -TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) +! +!PTERMS(NO2,K291) = +K291*<NO>*<RO251> + PTERMS(:,2,292) = +TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) +! +!PTERMS(HO2,K291) = +K291*<NO>*<RO251> + PTERMS(:,10,292) = +TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) +! +!PTERMS(HCHO,K291) = +K291*<NO>*<RO251> + PTERMS(:,28,292) = +TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) +! +!PTERMS(MGLY,K291) = +K291*<NO>*<RO251> + PTERMS(:,41,292) = +TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) +! +!PTERMS(HO2,K292) = -K292*<HO2>*<RO251> + PTERMS(:,10,293) = -TPK%K292(:)*PCONC(:,10)*TPK%RO251(:) +! +!PTERMS(HCHO,K292) = +K292*<HO2>*<RO251> + PTERMS(:,28,293) = +TPK%K292(:)*PCONC(:,10)*TPK%RO251(:) +! +!PTERMS(MGLY,K292) = +K292*<HO2>*<RO251> + PTERMS(:,41,293) = +TPK%K292(:)*PCONC(:,10)*TPK%RO251(:) +! +!PTERMS(RO2T,K292) = +K292*<HO2>*<RO251> + PTERMS(:,85,293) = +TPK%K292(:)*PCONC(:,10)*TPK%RO251(:) +! +!PTERMS(HO2,K293) = +K293*<RO2T>*<RO251> + PTERMS(:,10,294) = +TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) +! +!PTERMS(OH,K293) = +K293*<RO2T>*<RO251> + PTERMS(:,15,294) = +TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) +! +!PTERMS(HCHO,K293) = +K293*<RO2T>*<RO251> + PTERMS(:,28,294) = +TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) +! +!PTERMS(MGLY,K293) = +K293*<RO2T>*<RO251> + PTERMS(:,41,294) = +TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) +! +!PTERMS(RO2T,K293) = -K293*<RO2T>*<RO251> + PTERMS(:,85,294) = -TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) +! +!PTERMS(NO,K294) = -K294*<NO>*<RO252> + PTERMS(:,1,295) = -TPK%K294(:)*PCONC(:,1)*TPK%RO252(:) +! +!PTERMS(NO2,K294) = +2.*K294*<NO>*<RO252> + PTERMS(:,2,295) = +2.*TPK%K294(:)*PCONC(:,1)*TPK%RO252(:) +! +!PTERMS(HCHO,K294) = +K294*<NO>*<RO252> + PTERMS(:,28,295) = +TPK%K294(:)*PCONC(:,1)*TPK%RO252(:) +! +!PTERMS(MGLY,K294) = +K294*<NO>*<RO252> + PTERMS(:,41,295) = +TPK%K294(:)*PCONC(:,1)*TPK%RO252(:) +! +! +RETURN +END SUBROUTINE SUBT49 +! +SUBROUTINE SUBT50 +! +!Indices 1001 a 1020 +! +!PTERMS(NO2,K295) = +K295*<HO2>*<RO252> + PTERMS(:,2,296) = +TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) +! +!PTERMS(HO2,K295) = -K295*<HO2>*<RO252> + PTERMS(:,10,296) = -TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) +! +!PTERMS(HCHO,K295) = +K295*<HO2>*<RO252> + PTERMS(:,28,296) = +TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) +! +!PTERMS(MGLY,K295) = +K295*<HO2>*<RO252> + PTERMS(:,41,296) = +TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) +! +!PTERMS(RO2T,K295) = +K295*<HO2>*<RO252> + PTERMS(:,85,296) = +TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) +! +!PTERMS(NO2,K296) = +K296*<RO2T>*<RO252> + PTERMS(:,2,297) = +TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) +! +!PTERMS(OH,K296) = +K296*<RO2T>*<RO252> + PTERMS(:,15,297) = +TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) +! +!PTERMS(HCHO,K296) = +K296*<RO2T>*<RO252> + PTERMS(:,28,297) = +TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) +! +!PTERMS(MGLY,K296) = +K296*<RO2T>*<RO252> + PTERMS(:,41,297) = +TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) +! +!PTERMS(RO2T,K296) = -K296*<RO2T>*<RO252> + PTERMS(:,85,297) = -TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) +! +!PTERMS(NO,K297) = -K297*<NO>*<RO253> + PTERMS(:,1,298) = -TPK%K297(:)*PCONC(:,1)*TPK%RO253(:) +! +!PTERMS(NO2,K297) = +K297*<NO>*<RO253> + PTERMS(:,2,298) = +TPK%K297(:)*PCONC(:,1)*TPK%RO253(:) +! +!PTERMS(HCHO,K297) = +K297*<NO>*<RO253> + PTERMS(:,28,298) = +TPK%K297(:)*PCONC(:,1)*TPK%RO253(:) +! +!PTERMS(RO2T,K297) = +K297*<NO>*<RO253> + PTERMS(:,85,298) = +TPK%K297(:)*PCONC(:,1)*TPK%RO253(:) +! +!PTERMS(HO2,K298) = -K298*<HO2>*<RO253> + PTERMS(:,10,299) = -TPK%K298(:)*PCONC(:,10)*TPK%RO253(:) +! +!PTERMS(HCHO,K298) = +K298*<HO2>*<RO253> + PTERMS(:,28,299) = +TPK%K298(:)*PCONC(:,10)*TPK%RO253(:) +! +!PTERMS(RO2T,K298) = +2.*K298*<HO2>*<RO253> + PTERMS(:,85,299) = +2.*TPK%K298(:)*PCONC(:,10)*TPK%RO253(:) +! +!PTERMS(OH,K299) = +K299*<RO2T>*<RO253> + PTERMS(:,15,300) = +TPK%K299(:)*PCONC(:,85)*TPK%RO253(:) +! +!PTERMS(HCHO,K299) = +K299*<RO2T>*<RO253> + PTERMS(:,28,300) = +TPK%K299(:)*PCONC(:,85)*TPK%RO253(:) +! +!PTERMS(RO2T,K299) = -K299*<RO2T>*<RO253> + PTERMS(:,85,300) = -TPK%K299(:)*PCONC(:,85)*TPK%RO253(:) +! +! +RETURN +END SUBROUTINE SUBT50 +! +SUBROUTINE SUBT51 +! +!Indices 1021 a 1040 +! +!PTERMS(NO,K300) = -K300*<NO>*<RO254> + PTERMS(:,1,301) = -TPK%K300(:)*PCONC(:,1)*TPK%RO254(:) +! +!PTERMS(NO2,K300) = +K300*<NO>*<RO254> + PTERMS(:,2,301) = +TPK%K300(:)*PCONC(:,1)*TPK%RO254(:) +! +!PTERMS(HO2,K300) = +K300*<NO>*<RO254> + PTERMS(:,10,301) = +TPK%K300(:)*PCONC(:,1)*TPK%RO254(:) +! +!PTERMS(CO,K300) = +K300*<NO>*<RO254> + PTERMS(:,11,301) = +TPK%K300(:)*PCONC(:,1)*TPK%RO254(:) +! +!PTERMS(O3,K301) = +K301*<HO2>*<RO254> + PTERMS(:,3,302) = +TPK%K301(:)*PCONC(:,10)*TPK%RO254(:) +! +!PTERMS(HO2,K301) = -K301*<HO2>*<RO254> + PTERMS(:,10,302) = -TPK%K301(:)*PCONC(:,10)*TPK%RO254(:) +! +!PTERMS(RP16,K301) = +K301*<HO2>*<RO254> + PTERMS(:,74,302) = +TPK%K301(:)*PCONC(:,10)*TPK%RO254(:) +! +!PTERMS(HO2,K302) = +K302*<RO2T>*<RO254> + PTERMS(:,10,303) = +TPK%K302(:)*PCONC(:,85)*TPK%RO254(:) +! +!PTERMS(CO,K302) = +K302*<RO2T>*<RO254> + PTERMS(:,11,303) = +TPK%K302(:)*PCONC(:,85)*TPK%RO254(:) +! +!PTERMS(RO2T,K302) = -K302*<RO2T>*<RO254> + PTERMS(:,85,303) = -TPK%K302(:)*PCONC(:,85)*TPK%RO254(:) +! +!PTERMS(O3,K303) = +K303*<OH>*<RPR5> + PTERMS(:,3,304) = +TPK%K303(:)*PCONC(:,15)*PCONC(:,70) +! +!PTERMS(OH,K303) = -K303*<OH>*<RPR5> + PTERMS(:,15,304) = -TPK%K303(:)*PCONC(:,15)*PCONC(:,70) +! +!PTERMS(URG7,K303) = +0.9999993*K303*<OH>*<RPR5> + PTERMS(:,60,304) = +0.9999993*TPK%K303(:)*PCONC(:,15)*PCONC(:,70) +! +!PTERMS(RPR5,K303) = -K303*<OH>*<RPR5> + PTERMS(:,70,304) = -TPK%K303(:)*PCONC(:,15)*PCONC(:,70) +! +!PTERMS(OH,K304) = -K304*<OH>*<RPR1> + PTERMS(:,15,305) = -TPK%K304(:)*PCONC(:,15)*PCONC(:,69) +! +!PTERMS(RPR1,K304) = -K304*<OH>*<RPR1> + PTERMS(:,69,305) = -TPK%K304(:)*PCONC(:,15)*PCONC(:,69) +! +!PTERMS(RO2T,K304) = +K304*<OH>*<RPR1> + PTERMS(:,85,305) = +TPK%K304(:)*PCONC(:,15)*PCONC(:,69) +! +!PTERMS(OH,K305) = -K305*<OH>*<RP16> + PTERMS(:,15,306) = -TPK%K305(:)*PCONC(:,15)*PCONC(:,74) +! +!PTERMS(RP16,K305) = -K305*<OH>*<RP16> + PTERMS(:,74,306) = -TPK%K305(:)*PCONC(:,15)*PCONC(:,74) +! +!PTERMS(RO2T,K305) = +K305*<OH>*<RP16> + PTERMS(:,85,306) = +TPK%K305(:)*PCONC(:,15)*PCONC(:,74) +! +! +RETURN +END SUBROUTINE SUBT51 +! +SUBROUTINE SUBT52 +! +!Indices 1041 a 1060 +! +!PTERMS(O3,K306) = +1.0000011*K306*<OH>*<RPRL> + PTERMS(:,3,307) = +1.0000011*TPK%K306(:)*PCONC(:,15)*PCONC(:,75) +! +!PTERMS(OH,K306) = -K306*<OH>*<RPRL> + PTERMS(:,15,307) = -TPK%K306(:)*PCONC(:,15)*PCONC(:,75) +! +!PTERMS(URG7,K306) = +0.9979297*K306*<OH>*<RPRL> + PTERMS(:,60,307) = +0.9979297*TPK%K306(:)*PCONC(:,15)*PCONC(:,75) +! +!PTERMS(RPR7,K306) = +2.0714202E-03*K306*<OH>*<RPRL> + PTERMS(:,62,307) = +2.0714202E-03*TPK%K306(:)*PCONC(:,15)*PCONC(:,75) +! +!PTERMS(RPRL,K306) = -K306*<OH>*<RPRL> + PTERMS(:,75,307) = -TPK%K306(:)*PCONC(:,15)*PCONC(:,75) +! +!PTERMS(HNO3,K307) = +K307*<NO3>*<RPR1> + PTERMS(:,5,308) = +TPK%K307(:)*PCONC(:,8)*PCONC(:,69) +! +!PTERMS(NO3,K307) = -K307*<NO3>*<RPR1> + PTERMS(:,8,308) = -TPK%K307(:)*PCONC(:,8)*PCONC(:,69) +! +!PTERMS(RPR1,K307) = -K307*<NO3>*<RPR1> + PTERMS(:,69,308) = -TPK%K307(:)*PCONC(:,8)*PCONC(:,69) +! +!PTERMS(RO2T,K307) = +K307*<NO3>*<RPR1> + PTERMS(:,85,308) = +TPK%K307(:)*PCONC(:,8)*PCONC(:,69) +! +!PTERMS(HO2,K308) = +K308*<RPR1> + PTERMS(:,10,309) = +TPK%K308(:)*PCONC(:,69) +! +!PTERMS(CO,K308) = +K308*<RPR1> + PTERMS(:,11,309) = +TPK%K308(:)*PCONC(:,69) +! +!PTERMS(RPR1,K308) = -K308*<RPR1> + PTERMS(:,69,309) = -TPK%K308(:)*PCONC(:,69) +! +!PTERMS(RO2T,K308) = +K308*<RPR1> + PTERMS(:,85,309) = +TPK%K308(:)*PCONC(:,69) +! +!PTERMS(NO,K309) = -K309*<NO>*<RO255> + PTERMS(:,1,310) = -TPK%K309(:)*PCONC(:,1)*TPK%RO255(:) +! +!PTERMS(NO2,K309) = +K309*<NO>*<RO255> + PTERMS(:,2,310) = +TPK%K309(:)*PCONC(:,1)*TPK%RO255(:) +! +!PTERMS(RO2T,K309) = +K309*<NO>*<RO255> + PTERMS(:,85,310) = +TPK%K309(:)*PCONC(:,1)*TPK%RO255(:) +! +!PTERMS(O3,K310) = +K310*<HO2>*<RO255> + PTERMS(:,3,311) = +TPK%K310(:)*PCONC(:,10)*TPK%RO255(:) +! +!PTERMS(HO2,K310) = -K310*<HO2>*<RO255> + PTERMS(:,10,311) = -TPK%K310(:)*PCONC(:,10)*TPK%RO255(:) +! +!PTERMS(ACID,K310) = +K310*<HO2>*<RO255> + PTERMS(:,45,311) = +TPK%K310(:)*PCONC(:,10)*TPK%RO255(:) +! +!PTERMS(RO2T,K311) = -K311*<RO2T>*<RO255> + PTERMS(:,85,312) = -TPK%K311(:)*PCONC(:,85)*TPK%RO255(:) +! +! +RETURN +END SUBROUTINE SUBT52 +! +SUBROUTINE SUBT53 +! +!Indices 1061 a 1080 +! +!PTERMS(OH,K312) = -K312*<OH>*<RPR3> + PTERMS(:,15,313) = -TPK%K312(:)*PCONC(:,15)*PCONC(:,57) +! +!PTERMS(RPR3,K312) = -K312*<OH>*<RPR3> + PTERMS(:,57,313) = -TPK%K312(:)*PCONC(:,15)*PCONC(:,57) +! +!PTERMS(RO2T,K312) = +K312*<OH>*<RPR3> + PTERMS(:,85,313) = +TPK%K312(:)*PCONC(:,15)*PCONC(:,57) +! +!PTERMS(HNO3,K313) = +K313*<NO3>*<RPR3> + PTERMS(:,5,314) = +TPK%K313(:)*PCONC(:,8)*PCONC(:,57) +! +!PTERMS(NO3,K313) = -K313*<NO3>*<RPR3> + PTERMS(:,8,314) = -TPK%K313(:)*PCONC(:,8)*PCONC(:,57) +! +!PTERMS(RPR3,K313) = -K313*<NO3>*<RPR3> + PTERMS(:,57,314) = -TPK%K313(:)*PCONC(:,8)*PCONC(:,57) +! +!PTERMS(RO2T,K313) = +K313*<NO3>*<RPR3> + PTERMS(:,85,314) = +TPK%K313(:)*PCONC(:,8)*PCONC(:,57) +! +!PTERMS(HO2,K314) = +2.*K314*<RPR3> + PTERMS(:,10,315) = +2.*TPK%K314(:)*PCONC(:,57) +! +!PTERMS(CO,K314) = +K314*<RPR3> + PTERMS(:,11,315) = +TPK%K314(:)*PCONC(:,57) +! +!PTERMS(RPR3,K314) = -K314*<RPR3> + PTERMS(:,57,315) = -TPK%K314(:)*PCONC(:,57) +! +!PTERMS(NO,K315) = -K315*<NO>*<RO256> + PTERMS(:,1,316) = -TPK%K315(:)*PCONC(:,1)*TPK%RO256(:) +! +!PTERMS(NO2,K315) = +K315*<NO>*<RO256> + PTERMS(:,2,316) = +TPK%K315(:)*PCONC(:,1)*TPK%RO256(:) +! +!PTERMS(HO2,K315) = +K315*<NO>*<RO256> + PTERMS(:,10,316) = +TPK%K315(:)*PCONC(:,1)*TPK%RO256(:) +! +!PTERMS(NO2,K316) = -K316*<NO2>*<RO256> + PTERMS(:,2,317) = -TPK%K316(:)*PCONC(:,2)*TPK%RO256(:) +! +!PTERMS(PAN8,K316) = +K316*<NO2>*<RO256> + PTERMS(:,83,317) = +TPK%K316(:)*PCONC(:,2)*TPK%RO256(:) +! +!PTERMS(NO2,K317) = +K317*<PAN8> + PTERMS(:,2,318) = +TPK%K317(:)*PCONC(:,83) +! +!PTERMS(PAN8,K317) = -K317*<PAN8> + PTERMS(:,83,318) = -TPK%K317(:)*PCONC(:,83) +! +!PTERMS(RO2T,K317) = +K317*<PAN8> + PTERMS(:,85,318) = +TPK%K317(:)*PCONC(:,83) +! +!PTERMS(O3,K318) = +K318*<HO2>*<RO256> + PTERMS(:,3,319) = +TPK%K318(:)*PCONC(:,10)*TPK%RO256(:) +! +!PTERMS(HO2,K318) = -K318*<HO2>*<RO256> + PTERMS(:,10,319) = -TPK%K318(:)*PCONC(:,10)*TPK%RO256(:) +! +! +RETURN +END SUBROUTINE SUBT53 +! +SUBROUTINE SUBT54 +! +!Indices 1081 a 1100 +! +!PTERMS(URG4,K318) = +1.0000000*K318*<HO2>*<RO256> + PTERMS(:,53,319) = +1.0000000*TPK%K318(:)*PCONC(:,10)*TPK%RO256(:) +! +!PTERMS(HO2,K319) = +K319*<RO2T>*<RO256> + PTERMS(:,10,320) = +TPK%K319(:)*PCONC(:,85)*TPK%RO256(:) +! +!PTERMS(RO2T,K319) = -K319*<RO2T>*<RO256> + PTERMS(:,85,320) = -TPK%K319(:)*PCONC(:,85)*TPK%RO256(:) +! +!PTERMS(HNO3,K320) = +K320*<NO3>*<RPR4> + PTERMS(:,5,321) = +TPK%K320(:)*PCONC(:,8)*PCONC(:,61) +! +!PTERMS(NO3,K320) = -K320*<NO3>*<RPR4> + PTERMS(:,8,321) = -TPK%K320(:)*PCONC(:,8)*PCONC(:,61) +! +!PTERMS(RPR4,K320) = -K320*<NO3>*<RPR4> + PTERMS(:,61,321) = -TPK%K320(:)*PCONC(:,8)*PCONC(:,61) +! +!PTERMS(NO2,K321) = -K321*<NO2>*<RAD8> + PTERMS(:,2,322) = -TPK%K321(:)*PCONC(:,2)*TPK%RAD8(:) +! +!PTERMS(UR22,K321) = +K321*<NO2>*<RAD8> + PTERMS(:,59,322) = +TPK%K321(:)*PCONC(:,2)*TPK%RAD8(:) +! +!PTERMS(O3,K322) = +K322*<OH>*<RPR7> + PTERMS(:,3,323) = +TPK%K322(:)*PCONC(:,15)*PCONC(:,62) +! +!PTERMS(OH,K322) = -K322*<OH>*<RPR7> + PTERMS(:,15,323) = -TPK%K322(:)*PCONC(:,15)*PCONC(:,62) +! +!PTERMS(URG7,K322) = +0.9999993*K322*<OH>*<RPR7> + PTERMS(:,60,323) = +0.9999993*TPK%K322(:)*PCONC(:,15)*PCONC(:,62) +! +!PTERMS(RPR7,K322) = -K322*<OH>*<RPR7> + PTERMS(:,62,323) = -TPK%K322(:)*PCONC(:,15)*PCONC(:,62) +! +!PTERMS(O3,K323) = +1.0000005*K323*<OH>*<RPG7> + PTERMS(:,3,324) = +1.0000005*TPK%K323(:)*PCONC(:,15)*PCONC(:,63) +! +!PTERMS(OH,K323) = -K323*<OH>*<RPG7> + PTERMS(:,15,324) = -TPK%K323(:)*PCONC(:,15)*PCONC(:,63) +! +!PTERMS(URG6,K323) = +0.4978440*K323*<OH>*<RPG7> + PTERMS(:,58,324) = +0.4978440*TPK%K323(:)*PCONC(:,15)*PCONC(:,63) +! +!PTERMS(RPG7,K323) = -K323*<OH>*<RPG7> + PTERMS(:,63,324) = -TPK%K323(:)*PCONC(:,15)*PCONC(:,63) +! +!PTERMS(OH,K324) = -K324*<OH>*<RPR8> + PTERMS(:,15,325) = -TPK%K324(:)*PCONC(:,15)*PCONC(:,71) +! +!PTERMS(RPR8,K324) = -K324*<OH>*<RPR8> + PTERMS(:,71,325) = -TPK%K324(:)*PCONC(:,15)*PCONC(:,71) +! +!PTERMS(RO2T,K324) = +K324*<OH>*<RPR8> + PTERMS(:,85,325) = +TPK%K324(:)*PCONC(:,15)*PCONC(:,71) +! +!PTERMS(HO2,K325) = +K325*<OH>*<RP10> + PTERMS(:,10,326) = +TPK%K325(:)*PCONC(:,15)*PCONC(:,72) +! +! +RETURN +END SUBROUTINE SUBT54 +! +SUBROUTINE SUBT55 +! +!Indices 1101 a 1120 +! +!PTERMS(OH,K325) = -K325*<OH>*<RP10> + PTERMS(:,15,326) = -TPK%K325(:)*PCONC(:,15)*PCONC(:,72) +! +!PTERMS(RP10,K325) = -K325*<OH>*<RP10> + PTERMS(:,72,326) = -TPK%K325(:)*PCONC(:,15)*PCONC(:,72) +! +!PTERMS(O3,K326) = +K326*<OH>*<RP11> + PTERMS(:,3,327) = +TPK%K326(:)*PCONC(:,15)*PCONC(:,73) +! +!PTERMS(OH,K326) = -K326*<OH>*<RP11> + PTERMS(:,15,327) = -TPK%K326(:)*PCONC(:,15)*PCONC(:,73) +! +!PTERMS(UR26,K326) = +0.67*K326*<OH>*<RP11> + PTERMS(:,49,327) = +0.67*TPK%K326(:)*PCONC(:,15)*PCONC(:,73) +! +!PTERMS(RP11,K326) = -K326*<OH>*<RP11> + PTERMS(:,73,327) = -TPK%K326(:)*PCONC(:,15)*PCONC(:,73) +! +!PTERMS(HNO3,K327) = +K327*<NO3>*<RPR8> + PTERMS(:,5,328) = +TPK%K327(:)*PCONC(:,8)*PCONC(:,71) +! +!PTERMS(NO3,K327) = -K327*<NO3>*<RPR8> + PTERMS(:,8,328) = -TPK%K327(:)*PCONC(:,8)*PCONC(:,71) +! +!PTERMS(RPR8,K327) = -K327*<NO3>*<RPR8> + PTERMS(:,71,328) = -TPK%K327(:)*PCONC(:,8)*PCONC(:,71) +! +!PTERMS(RO2T,K327) = +K327*<NO3>*<RPR8> + PTERMS(:,85,328) = +TPK%K327(:)*PCONC(:,8)*PCONC(:,71) +! +!PTERMS(RP10,K328) = -K328*<RP10> + PTERMS(:,72,329) = -TPK%K328(:)*PCONC(:,72) +! +!PTERMS(HO2,K329) = +K329*<RPR8> + PTERMS(:,10,330) = +TPK%K329(:)*PCONC(:,71) +! +!PTERMS(CO,K329) = +K329*<RPR8> + PTERMS(:,11,330) = +TPK%K329(:)*PCONC(:,71) +! +!PTERMS(RPR8,K329) = -K329*<RPR8> + PTERMS(:,71,330) = -TPK%K329(:)*PCONC(:,71) +! +!PTERMS(RO2T,K329) = +K329*<RPR8> + PTERMS(:,85,330) = +TPK%K329(:)*PCONC(:,71) +! +!PTERMS(HO2,K330) = +K330*<RPR8> + PTERMS(:,10,331) = +TPK%K330(:)*PCONC(:,71) +! +!PTERMS(RPR8,K330) = -K330*<RPR8> + PTERMS(:,71,331) = -TPK%K330(:)*PCONC(:,71) +! +!PTERMS(RO2T,K330) = +K330*<RPR8> + PTERMS(:,85,331) = +TPK%K330(:)*PCONC(:,71) +! +!PTERMS(NO,K331) = -K331*<NO>*<RO257> + PTERMS(:,1,332) = -TPK%K331(:)*PCONC(:,1)*TPK%RO257(:) +! +!PTERMS(NO2,K331) = +K331*<NO>*<RO257> + PTERMS(:,2,332) = +TPK%K331(:)*PCONC(:,1)*TPK%RO257(:) +! +! +RETURN +END SUBROUTINE SUBT55 +! +SUBROUTINE SUBT56 +! +!Indices 1121 a 1140 +! +!PTERMS(RO2T,K331) = +K331*<NO>*<RO257> + PTERMS(:,85,332) = +TPK%K331(:)*PCONC(:,1)*TPK%RO257(:) +! +!PTERMS(O3,K332) = +K332*<HO2>*<RO257> + PTERMS(:,3,333) = +TPK%K332(:)*PCONC(:,10)*TPK%RO257(:) +! +!PTERMS(HO2,K332) = -K332*<HO2>*<RO257> + PTERMS(:,10,333) = -TPK%K332(:)*PCONC(:,10)*TPK%RO257(:) +! +!PTERMS(URG4,K332) = +1.0000000*K332*<HO2>*<RO257> + PTERMS(:,53,333) = +1.0000000*TPK%K332(:)*PCONC(:,10)*TPK%RO257(:) +! +!PTERMS(RO2T,K333) = -K333*<RO2T>*<RO257> + PTERMS(:,85,334) = -TPK%K333(:)*PCONC(:,85)*TPK%RO257(:) +! +!PTERMS(O3,K334) = +1.0000000*K334*<OH>*<RPG3> + PTERMS(:,3,335) = +1.0000000*TPK%K334(:)*PCONC(:,15)*PCONC(:,52) +! +!PTERMS(OH,K334) = -K334*<OH>*<RPG3> + PTERMS(:,15,335) = -TPK%K334(:)*PCONC(:,15)*PCONC(:,52) +! +!PTERMS(RPG2,K334) = +0.8808107*K334*<OH>*<RPG3> + PTERMS(:,50,335) = +0.8808107*TPK%K334(:)*PCONC(:,15)*PCONC(:,52) +! +!PTERMS(RPG3,K334) = -K334*<OH>*<RPG3> + PTERMS(:,52,335) = -TPK%K334(:)*PCONC(:,15)*PCONC(:,52) +! +!PTERMS(O3,K335) = +1.0000000*K335*<OH>*<RPG2> + PTERMS(:,3,336) = +1.0000000*TPK%K335(:)*PCONC(:,15)*PCONC(:,50) +! +!PTERMS(OH,K335) = -K335*<OH>*<RPG2> + PTERMS(:,15,336) = -TPK%K335(:)*PCONC(:,15)*PCONC(:,50) +! +!PTERMS(URG2,K335) = +0.5562513*K335*<OH>*<RPG2> + PTERMS(:,48,336) = +0.5562513*TPK%K335(:)*PCONC(:,15)*PCONC(:,50) +! +!PTERMS(RPG2,K335) = -K335*<OH>*<RPG2> + PTERMS(:,50,336) = -TPK%K335(:)*PCONC(:,15)*PCONC(:,50) +! +!PTERMS(RP18,K335) = +0.4437492*K335*<OH>*<RPG2> + PTERMS(:,51,336) = +0.4437492*TPK%K335(:)*PCONC(:,15)*PCONC(:,50) +! +!PTERMS(O3,K337) = +K337*<OH>*<RP18> + PTERMS(:,3,337) = +TPK%K337(:)*PCONC(:,15)*PCONC(:,51) +! +!PTERMS(OH,K337) = -K337*<OH>*<RP18> + PTERMS(:,15,337) = -TPK%K337(:)*PCONC(:,15)*PCONC(:,51) +! +!PTERMS(URG2,K337) = +K337*<OH>*<RP18> + PTERMS(:,48,337) = +TPK%K337(:)*PCONC(:,15)*PCONC(:,51) +! +!PTERMS(RP18,K337) = -K337*<OH>*<RP18> + PTERMS(:,51,337) = -TPK%K337(:)*PCONC(:,15)*PCONC(:,51) +! +!PTERMS(HNO3,K338) = +K338*<NO3>*<RP16> + PTERMS(:,5,338) = +TPK%K338(:)*PCONC(:,8)*PCONC(:,74) +! +!PTERMS(NO3,K338) = -K338*<NO3>*<RP16> + PTERMS(:,8,338) = -TPK%K338(:)*PCONC(:,8)*PCONC(:,74) +! +! +RETURN +END SUBROUTINE SUBT56 +! +SUBROUTINE SUBT57 +! +!Indices 1141 a 1160 +! +!PTERMS(RP16,K338) = -K338*<NO3>*<RP16> + PTERMS(:,74,338) = -TPK%K338(:)*PCONC(:,8)*PCONC(:,74) +! +!PTERMS(RO2T,K338) = +K338*<NO3>*<RP16> + PTERMS(:,85,338) = +TPK%K338(:)*PCONC(:,8)*PCONC(:,74) +! +!PTERMS(HO2,K339) = +K339*<RP16> + PTERMS(:,10,339) = +TPK%K339(:)*PCONC(:,74) +! +!PTERMS(CO,K339) = +2.*K339*<RP16> + PTERMS(:,11,339) = +2.*TPK%K339(:)*PCONC(:,74) +! +!PTERMS(OH,K339) = +K339*<RP16> + PTERMS(:,15,339) = +TPK%K339(:)*PCONC(:,74) +! +!PTERMS(RP16,K339) = -K339*<RP16> + PTERMS(:,74,339) = -TPK%K339(:)*PCONC(:,74) +! +!PTERMS(NO,K340) = -K340*<NO>*<RO258> + PTERMS(:,1,340) = -TPK%K340(:)*PCONC(:,1)*TPK%RO258(:) +! +!PTERMS(NO2,K340) = +K340*<NO>*<RO258> + PTERMS(:,2,340) = +TPK%K340(:)*PCONC(:,1)*TPK%RO258(:) +! +!PTERMS(CO,K340) = +K340*<NO>*<RO258> + PTERMS(:,11,340) = +TPK%K340(:)*PCONC(:,1)*TPK%RO258(:) +! +!PTERMS(OH,K340) = +K340*<NO>*<RO258> + PTERMS(:,15,340) = +TPK%K340(:)*PCONC(:,1)*TPK%RO258(:) +! +!PTERMS(O3,K341) = +K341*<HO2>*<RO258> + PTERMS(:,3,341) = +TPK%K341(:)*PCONC(:,10)*TPK%RO258(:) +! +!PTERMS(HO2,K341) = -K341*<HO2>*<RO258> + PTERMS(:,10,341) = -TPK%K341(:)*PCONC(:,10)*TPK%RO258(:) +! +!PTERMS(UR28,K341) = +K341*<HO2>*<RO258> + PTERMS(:,46,341) = +TPK%K341(:)*PCONC(:,10)*TPK%RO258(:) +! +!PTERMS(CO,K342) = +K342*<RO2T>*<RO258> + PTERMS(:,11,342) = +TPK%K342(:)*PCONC(:,85)*TPK%RO258(:) +! +!PTERMS(OH,K342) = +K342*<RO2T>*<RO258> + PTERMS(:,15,342) = +TPK%K342(:)*PCONC(:,85)*TPK%RO258(:) +! +!PTERMS(RO2T,K342) = -K342*<RO2T>*<RO258> + PTERMS(:,85,342) = -TPK%K342(:)*PCONC(:,85)*TPK%RO258(:) +! +!PTERMS(NO2,K343) = +K343*<PAN7> + PTERMS(:,2,343) = +TPK%K343(:)*PCONC(:,82) +! +!PTERMS(PAN7,K343) = -K343*<PAN7> + PTERMS(:,82,343) = -TPK%K343(:)*PCONC(:,82) +! +!PTERMS(RO2T,K343) = +K343*<PAN7> + PTERMS(:,85,343) = +TPK%K343(:)*PCONC(:,82) +! +!PTERMS(NO,K344) = -K344*<NO>*<RO230> + PTERMS(:,1,344) = -TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) +! +! +RETURN +END SUBROUTINE SUBT57 +! +SUBROUTINE SUBT58 +! +!Indices 1161 a 1180 +! +!PTERMS(NO2,K344) = +K344*<NO>*<RO230> + PTERMS(:,2,344) = +TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) +! +!PTERMS(RO2T,K344) = +K344*<NO>*<RO230> + PTERMS(:,85,344) = +TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) +! +!PTERMS(NH3,K345) = -K345*<OH>*<NH3> + PTERMS(:,9,345) = -TPK%K345(:)*PCONC(:,15)*PCONC(:,9) +! +!PTERMS(OH,K345) = -K345*<OH>*<NH3> + PTERMS(:,15,345) = -TPK%K345(:)*PCONC(:,15)*PCONC(:,9) +! +!PTERMS(H2SO4,K346) = -K346*<H2SO4> + PTERMS(:,14,346) = -TPK%K346(:)*PCONC(:,14) +! +!PTERMS(HO2,K347) = +K347*<OH>*<ORA1> + PTERMS(:,10,347) = +TPK%K347(:)*PCONC(:,15)*PCONC(:,43) +! +!PTERMS(OH,K347) = -K347*<OH>*<ORA1> + PTERMS(:,15,347) = -TPK%K347(:)*PCONC(:,15)*PCONC(:,43) +! +!PTERMS(ORA1,K347) = -K347*<OH>*<ORA1> + PTERMS(:,43,347) = -TPK%K347(:)*PCONC(:,15)*PCONC(:,43) +! +!PTERMS(OH,K348) = -K348*<OH>*<ORA2> + PTERMS(:,15,348) = -TPK%K348(:)*PCONC(:,15)*PCONC(:,44) +! +!PTERMS(ORA2,K348) = -K348*<OH>*<ORA2> + PTERMS(:,44,348) = -TPK%K348(:)*PCONC(:,15)*PCONC(:,44) +! +!PTERMS(OH,K349) = -K349*<OH>*<ACID> + PTERMS(:,15,349) = -TPK%K349(:)*PCONC(:,15)*PCONC(:,45) +! +!PTERMS(ACID,K349) = -K349*<OH>*<ACID> + PTERMS(:,45,349) = -TPK%K349(:)*PCONC(:,15)*PCONC(:,45) +! +!PTERMS(URG2,K350) = -K350*<URG2> + PTERMS(:,48,350) = -TPK%K350(:)*PCONC(:,48) +! +!PTERMS(URG4,K351) = -K351*<URG4> + PTERMS(:,53,351) = -TPK%K351(:)*PCONC(:,53) +! +!PTERMS(URG6,K352) = -K352*<URG6> + PTERMS(:,58,352) = -TPK%K352(:)*PCONC(:,58) ! -END DO +!PTERMS(URG7,K353) = -K353*<URG7> + PTERMS(:,60,353) = -TPK%K353(:)*PCONC(:,60) ! -! /END_SET_PHOTO_RATES/ - TPK%K001=ZRATES(:,001) - TPK%K002=ZRATES(:,002) - TPK%K003=ZRATES(:,003) - TPK%K004=ZRATES(:,004) - TPK%K005=ZRATES(:,005) - TPK%K006=ZRATES(:,006) - TPK%K007=ZRATES(:,007) - TPK%K008=ZRATES(:,008) - TPK%K009=ZRATES(:,009) - TPK%K010=ZRATES(:,010) - TPK%K011=ZRATES(:,011) - TPK%K012=ZRATES(:,012) - TPK%K013=ZRATES(:,013) - TPK%K014=ZRATES(:,014) - TPK%K015=ZRATES(:,015) - TPK%K016=ZRATES(:,016) - TPK%K017=ZRATES(:,017) -IF (TPK%LUSECHAQ) THEN - TPK%KC1=ZRATES(:,018) - TPK%KC13=ZRATES(:,019)*2.2e+1/(2.2e+1+10.**(-TPK%PHC)) - TPK%KR1=ZRATES(:,018) - TPK%KR13=ZRATES(:,019)*2.2e+1/(2.2e+1+10.**(-TPK%PHR)) -END IF -TPK%NOUT = KOUT -TPK%NVERB = KVERB -RETURN -END SUBROUTINE CH_SET_PHOTO_RATES +!PTERMS(URG8,K354) = -K354*<URG8> + PTERMS(:,64,354) = -TPK%K354(:)*PCONC(:,64) ! +!PTERMS(URG9,K355) = -K355*<URG9> + PTERMS(:,66,355) = -TPK%K355(:)*PCONC(:,66) ! -!======================================================================== +!PTERMS(URG10,K356) = -K356*<URG10> + PTERMS(:,68,356) = -TPK%K356(:)*PCONC(:,68) ! -!! ######################## - MODULE MODI_CH_GET_RATES -!! ######################## -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -INTERFACE -SUBROUTINE CH_GET_RATES(PRATE,KMI,KVECNPT,KREAC) -IMPLICIT NONE -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KREAC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KREAC) :: PRATE -INTEGER, INTENT(IN) :: KMI -END SUBROUTINE CH_GET_RATES -END INTERFACE -END MODULE MODI_CH_GET_RATES +!PTERMS(UR7,K357) = -K357*<UR7> + PTERMS(:,56,357) = -TPK%K357(:)*PCONC(:,56) ! -!======================================================================== ! -!! ############################################ - SUBROUTINE CH_GET_RATES(PRATE,KMI,KVECNPT,KREAC) -!! ############################################ -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -!! -!!*** *MODD_CH_GETRATES* -!! -!! PURPOSE -!! ------- -! retrieve reaction rates from TPK in an array -!! -!!** METHOD -!! ------ -!! simple -!! -!! REFERENCE -!! --------- -!! none -!! -!! AUTHOR -!! ------ -!! Karsten Suhre (LA) -!! -!! MODIFICATIONS -!! ------------- -!! Original 26/07/96 -!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) -!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) -!! -!!---------------------------------------------------------------------- -!! -!! EXTERNAL -!! -------- -!! none -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -USE MODD_CH_M9_SCHEME -!! -!! EXPLICIT ARGUMENTS -!! ------------------ -IMPLICIT NONE -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KREAC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KREAC) :: PRATE -INTEGER, INTENT(IN) :: KMI -!! -!! LOCAL VARIABLES -!! --------------- -TYPE(CCSTYPE), POINTER :: TPK -!!---------------------------------------------------------------------- -!! -!! EXECUTABLE STATEMENTS -!! --------------------- -TPK=>TACCS(KMI) -!! -PRATE(:,1) = TPK%K001(:) -PRATE(:,2) = TPK%K002(:) -PRATE(:,3) = TPK%K003(:) -PRATE(:,4) = TPK%K004(:) -PRATE(:,5) = TPK%K005(:) -PRATE(:,6) = TPK%K006(:) -PRATE(:,7) = TPK%K007(:) -PRATE(:,8) = TPK%K008(:) -PRATE(:,9) = TPK%K009(:) -PRATE(:,10) = TPK%K010(:) -PRATE(:,11) = TPK%K011(:) -PRATE(:,12) = TPK%K012(:) -PRATE(:,13) = TPK%K013(:) -PRATE(:,14) = TPK%K014(:) -PRATE(:,15) = TPK%K015(:) -PRATE(:,16) = TPK%K016(:) -PRATE(:,17) = TPK%K017(:) -PRATE(:,18) = TPK%K018(:) -PRATE(:,19) = TPK%K019(:) -PRATE(:,20) = TPK%K020(:) -PRATE(:,21) = TPK%K021(:) -PRATE(:,22) = TPK%K022(:) -PRATE(:,23) = TPK%K023(:) -PRATE(:,24) = TPK%K024(:) -PRATE(:,25) = TPK%K025(:) -PRATE(:,26) = TPK%K026(:) -PRATE(:,27) = TPK%K027(:) -PRATE(:,28) = TPK%K028(:) -PRATE(:,29) = TPK%K029(:) -PRATE(:,30) = TPK%K030(:) -PRATE(:,31) = TPK%K031(:) -PRATE(:,32) = TPK%K032(:) -PRATE(:,33) = TPK%K033(:) -PRATE(:,34) = TPK%K034(:) -PRATE(:,35) = TPK%K035(:) -PRATE(:,36) = TPK%K036(:) -PRATE(:,37) = TPK%K037(:) -PRATE(:,38) = TPK%K038(:) -PRATE(:,39) = TPK%K039(:) -PRATE(:,40) = TPK%K040(:) -PRATE(:,41) = TPK%K041(:) -PRATE(:,42) = TPK%K042(:) -PRATE(:,43) = TPK%K043(:) -PRATE(:,44) = TPK%K044(:) -PRATE(:,45) = TPK%K045(:) -PRATE(:,46) = TPK%K046(:) -PRATE(:,47) = TPK%K047(:) -PRATE(:,48) = TPK%K048(:) -PRATE(:,49) = TPK%K049(:) -PRATE(:,50) = TPK%K050(:) -PRATE(:,51) = TPK%K051(:) -PRATE(:,52) = TPK%K052(:) -PRATE(:,53) = TPK%K053(:) -PRATE(:,54) = TPK%K054(:) -PRATE(:,55) = TPK%K055(:) -PRATE(:,56) = TPK%K056(:) -PRATE(:,57) = TPK%K057(:) -PRATE(:,58) = TPK%K058(:) -PRATE(:,59) = TPK%K059(:) -PRATE(:,60) = TPK%K060(:) -PRATE(:,61) = TPK%K061(:) -PRATE(:,62) = TPK%K062(:) -PRATE(:,63) = TPK%K063(:) -PRATE(:,64) = TPK%K064(:) -PRATE(:,65) = TPK%K065(:) -PRATE(:,66) = TPK%K066(:) -PRATE(:,67) = TPK%K067(:) -PRATE(:,68) = TPK%K068(:) -PRATE(:,69) = TPK%K069(:) -PRATE(:,70) = TPK%K070(:) -PRATE(:,71) = TPK%K071(:) -PRATE(:,72) = TPK%K072(:) -PRATE(:,73) = TPK%K073(:) -PRATE(:,74) = TPK%K074(:) -PRATE(:,75) = TPK%K075(:) -PRATE(:,76) = TPK%K076(:) -PRATE(:,77) = TPK%K077(:) -PRATE(:,78) = TPK%K078(:) -PRATE(:,79) = TPK%K079(:) -PRATE(:,80) = TPK%K080(:) -PRATE(:,81) = TPK%K081(:) -PRATE(:,82) = TPK%K082(:) -PRATE(:,83) = TPK%K083(:) -PRATE(:,84) = TPK%K084(:) -PRATE(:,85) = TPK%K085(:) -PRATE(:,86) = TPK%K086(:) -PRATE(:,87) = TPK%K087(:) -PRATE(:,88) = TPK%K088(:) -PRATE(:,89) = TPK%K089(:) -PRATE(:,90) = TPK%K090(:) -PRATE(:,91) = TPK%K091(:) -PRATE(:,92) = TPK%K092(:) -PRATE(:,93) = TPK%K093(:) -PRATE(:,94) = TPK%K094(:) -PRATE(:,95) = TPK%K095(:) -PRATE(:,96) = TPK%K096(:) -PRATE(:,97) = TPK%K097(:) -PRATE(:,98) = TPK%K098(:) -PRATE(:,99) = TPK%K099(:) -PRATE(:,100) = TPK%K0100(:) -PRATE(:,101) = TPK%K0101(:) -PRATE(:,102) = TPK%K0102(:) -PRATE(:,103) = TPK%K103(:) -PRATE(:,104) = TPK%K104(:) -PRATE(:,105) = TPK%K105(:) -PRATE(:,106) = TPK%K106(:) -PRATE(:,107) = TPK%K107(:) -PRATE(:,108) = TPK%K108(:) -PRATE(:,109) = TPK%K109(:) -PRATE(:,110) = TPK%K110(:) -PRATE(:,111) = TPK%K111(:) -PRATE(:,112) = TPK%K112(:) -PRATE(:,113) = TPK%K113(:) -PRATE(:,114) = TPK%K114(:) -PRATE(:,115) = TPK%K115(:) -PRATE(:,116) = TPK%K116(:) -PRATE(:,117) = TPK%K117(:) -PRATE(:,118) = TPK%K118(:) -PRATE(:,119) = TPK%K119(:) -PRATE(:,120) = TPK%K120(:) -PRATE(:,121) = TPK%K121(:) -PRATE(:,122) = TPK%K122(:) -PRATE(:,123) = TPK%K123(:) -PRATE(:,124) = TPK%K124(:) -PRATE(:,125) = TPK%K125(:) -PRATE(:,126) = TPK%K126(:) -PRATE(:,127) = TPK%K127(:) -PRATE(:,128) = TPK%K128(:) -PRATE(:,129) = TPK%K129(:) -PRATE(:,130) = TPK%K130(:) -PRATE(:,131) = TPK%K131(:) -PRATE(:,132) = TPK%K132(:) -IF (TPK%LUSECHAQ) THEN - PRATE(:,133) = TPK%KTC1(:) - PRATE(:,134) = TPK%KTC2(:) - PRATE(:,135) = TPK%KTC3(:) - PRATE(:,136) = TPK%KTC4(:) - PRATE(:,137) = TPK%KTC5(:) - PRATE(:,138) = TPK%KTC6(:) - PRATE(:,139) = TPK%KTC7(:) - PRATE(:,140) = TPK%KTC8(:) - PRATE(:,141) = TPK%KTC9(:) - PRATE(:,142) = TPK%KTC10(:) - PRATE(:,143) = TPK%KTC11(:) - PRATE(:,144) = TPK%KTC12(:) - PRATE(:,145) = TPK%KTC13(:) - PRATE(:,146) = TPK%KTC14(:) - PRATE(:,147) = TPK%KTC15(:) - PRATE(:,148) = TPK%KTC16(:) - PRATE(:,149) = TPK%KTC17(:) - PRATE(:,150) = TPK%KTC18(:) - PRATE(:,151) = TPK%KTC19(:) - PRATE(:,152) = TPK%KTC20(:) - PRATE(:,153) = TPK%KTC21(:) - PRATE(:,154) = TPK%KTC22(:) - PRATE(:,155) = TPK%KTC23(:) - PRATE(:,156) = TPK%KTC24(:) - PRATE(:,157) = TPK%KTC25(:) - PRATE(:,158) = TPK%KTC26(:) - PRATE(:,159) = TPK%KTC27(:) - PRATE(:,160) = TPK%KTC28(:) - PRATE(:,161) = TPK%KTC29(:) - PRATE(:,162) = TPK%KTC30(:) - PRATE(:,163) = TPK%KTC31(:) - PRATE(:,164) = TPK%KTC32(:) - PRATE(:,165) = TPK%KTC33(:) - PRATE(:,166) = TPK%KTC34(:) - PRATE(:,167) = TPK%KTC35(:) - PRATE(:,168) = TPK%KTC36(:) - PRATE(:,169) = TPK%KTC37(:) - PRATE(:,170) = TPK%KTC38(:) - PRATE(:,171) = TPK%KTC39(:) - PRATE(:,172) = TPK%KTC40(:) - PRATE(:,173) = TPK%KTR1(:) - PRATE(:,174) = TPK%KTR2(:) - PRATE(:,175) = TPK%KTR3(:) - PRATE(:,176) = TPK%KTR4(:) - PRATE(:,177) = TPK%KTR5(:) - PRATE(:,178) = TPK%KTR6(:) - PRATE(:,179) = TPK%KTR7(:) - PRATE(:,180) = TPK%KTR8(:) - PRATE(:,181) = TPK%KTR9(:) - PRATE(:,182) = TPK%KTR10(:) - PRATE(:,183) = TPK%KTR11(:) - PRATE(:,184) = TPK%KTR12(:) - PRATE(:,185) = TPK%KTR13(:) - PRATE(:,186) = TPK%KTR14(:) - PRATE(:,187) = TPK%KTR15(:) - PRATE(:,188) = TPK%KTR16(:) - PRATE(:,189) = TPK%KTR17(:) - PRATE(:,190) = TPK%KTR18(:) - PRATE(:,191) = TPK%KTR19(:) - PRATE(:,192) = TPK%KTR20(:) - PRATE(:,193) = TPK%KTR21(:) - PRATE(:,194) = TPK%KTR22(:) - PRATE(:,195) = TPK%KTR23(:) - PRATE(:,196) = TPK%KTR24(:) - PRATE(:,197) = TPK%KTR25(:) - PRATE(:,198) = TPK%KTR26(:) - PRATE(:,199) = TPK%KTR27(:) - PRATE(:,200) = TPK%KTR28(:) - PRATE(:,201) = TPK%KTR29(:) - PRATE(:,202) = TPK%KTR30(:) - PRATE(:,203) = TPK%KTR31(:) - PRATE(:,204) = TPK%KTR32(:) - PRATE(:,205) = TPK%KTR33(:) - PRATE(:,206) = TPK%KTR34(:) - PRATE(:,207) = TPK%KTR35(:) - PRATE(:,208) = TPK%KTR36(:) - PRATE(:,209) = TPK%KTR37(:) - PRATE(:,210) = TPK%KTR38(:) - PRATE(:,211) = TPK%KTR39(:) - PRATE(:,212) = TPK%KTR40(:) - PRATE(:,213) = TPK%KC1(:) - PRATE(:,214) = TPK%KC2(:) - PRATE(:,215) = TPK%KC3(:) - PRATE(:,216) = TPK%KC4(:) - PRATE(:,217) = TPK%KC5(:) - PRATE(:,218) = TPK%KC6(:) - PRATE(:,219) = TPK%KC7(:) - PRATE(:,220) = TPK%KC8(:) - PRATE(:,221) = TPK%KC9(:) - PRATE(:,222) = TPK%KC10(:) - PRATE(:,223) = TPK%KC11(:) - PRATE(:,224) = TPK%KC12(:) - PRATE(:,225) = TPK%KC13(:) - PRATE(:,226) = TPK%KC14(:) - PRATE(:,227) = TPK%KC15(:) - PRATE(:,228) = TPK%KC16(:) - PRATE(:,229) = TPK%KC17(:) - PRATE(:,230) = TPK%KC18(:) - PRATE(:,231) = TPK%KC19(:) - PRATE(:,232) = TPK%KC20(:) - PRATE(:,233) = TPK%KC21(:) - PRATE(:,234) = TPK%KC22(:) - PRATE(:,235) = TPK%KC23(:) - PRATE(:,236) = TPK%KC24(:) - PRATE(:,237) = TPK%KC25(:) - PRATE(:,238) = TPK%KC26(:) - PRATE(:,239) = TPK%KC27(:) - PRATE(:,240) = TPK%KC28(:) - PRATE(:,241) = TPK%KC29(:) - PRATE(:,242) = TPK%KC30(:) - PRATE(:,243) = TPK%KR1(:) - PRATE(:,244) = TPK%KR2(:) - PRATE(:,245) = TPK%KR3(:) - PRATE(:,246) = TPK%KR4(:) - PRATE(:,247) = TPK%KR5(:) - PRATE(:,248) = TPK%KR6(:) - PRATE(:,249) = TPK%KR7(:) - PRATE(:,250) = TPK%KR8(:) - PRATE(:,251) = TPK%KR9(:) - PRATE(:,252) = TPK%KR10(:) - PRATE(:,253) = TPK%KR11(:) - PRATE(:,254) = TPK%KR12(:) - PRATE(:,255) = TPK%KR13(:) - PRATE(:,256) = TPK%KR14(:) - PRATE(:,257) = TPK%KR15(:) - PRATE(:,258) = TPK%KR16(:) - PRATE(:,259) = TPK%KR17(:) - PRATE(:,260) = TPK%KR18(:) - PRATE(:,261) = TPK%KR19(:) - PRATE(:,262) = TPK%KR20(:) - PRATE(:,263) = TPK%KR21(:) - PRATE(:,264) = TPK%KR22(:) - PRATE(:,265) = TPK%KR23(:) - PRATE(:,266) = TPK%KR24(:) - PRATE(:,267) = TPK%KR25(:) - PRATE(:,268) = TPK%KR26(:) - PRATE(:,269) = TPK%KR27(:) - PRATE(:,270) = TPK%KR28(:) - PRATE(:,271) = TPK%KR29(:) - PRATE(:,272) = TPK%KR30(:) -END IF RETURN -END SUBROUTINE CH_GET_RATES +END SUBROUTINE SUBT58 ! +SUBROUTINE SUBT59 ! -!======================================================================== +!Indices 1181 a 1188 ! -!! #################### - MODULE MODI_CH_TERMS -!! #################### -INTERFACE -SUBROUTINE CH_TERMS(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ, KREAC -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KREAC):: PTERMS -INTEGER, INTENT(IN) :: KMI -END SUBROUTINE CH_TERMS -END INTERFACE -END MODULE MODI_CH_TERMS +!PTERMS(UR8,K358) = -K358*<UR8> + PTERMS(:,54,358) = -TPK%K358(:)*PCONC(:,54) ! -!======================================================================== +!PTERMS(UR17,K359) = -K359*<UR17> + PTERMS(:,55,359) = -TPK%K359(:)*PCONC(:,55) ! -!! ############################################################# - SUBROUTINE CH_TERMS(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) -!! ############################################################# -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -!! -!!*** *MODD_CH_TERMS* -!! -!! PURPOSE -!! ------- -! calculation of the contribution of each term in each reaction -!! -!!** METHOD -!! ------ -!! The contribution of reaction i to the evolution of species j -!! is returned in PTERMS. -!! -!! REFERENCE -!! --------- -!! none -!! -!! AUTHOR -!! ------ -!! Karsten Suhre (LA) -!! -!! MODIFICATIONS -!! ------------- -!! Original 26/07/96 -!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) -!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) -!! -!!---------------------------------------------------------------------- -!! -!! EXTERNAL -!! -------- -!! none -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -USE MODD_CH_M9_SCHEME -USE MODI_CH_TERMS_AQ -USE MODI_CH_TERMS_GAZ -!! -!! EXPLICIT ARGUMENTS -!! ------------------ -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ, KREAC -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KREAC):: PTERMS -INTEGER, INTENT(IN) :: KMI -!! -TYPE(CCSTYPE), POINTER :: TPK -TPK=>TACCS(KMI) -IF (TPK%LUSECHAQ) THEN - CALL CH_TERMS_AQ(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) -ELSE - CALL CH_TERMS_GAZ(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) -END IF -END SUBROUTINE CH_TERMS +!PTERMS(UR19,K360) = -K360*<UR19> + PTERMS(:,65,360) = -TPK%K360(:)*PCONC(:,65) +! +!PTERMS(UR21,K361) = -K361*<UR21> + PTERMS(:,47,361) = -TPK%K361(:)*PCONC(:,47) +! +!PTERMS(UR22,K362) = -K362*<UR22> + PTERMS(:,59,362) = -TPK%K362(:)*PCONC(:,59) +! +!PTERMS(UR26,K363) = -K363*<UR26> + PTERMS(:,49,363) = -TPK%K363(:)*PCONC(:,49) +! +!PTERMS(UR28,K364) = -K364*<UR28> + PTERMS(:,46,364) = -TPK%K364(:)*PCONC(:,46) +! +!PTERMS(AP7,K365) = -K365*<AP7> + PTERMS(:,67,365) = -TPK%K365(:)*PCONC(:,67) +! +! +RETURN +END SUBROUTINE SUBT59 +! +END SUBROUTINE CH_TERMS_GAZ ! !======================================================================== ! @@ -29798,15 +90007,317 @@ INTEGER, INTENT(IN) :: KMI TYPE(CCSTYPE), POINTER :: TPK TPK=>TACCS(KMI) ! /BEGIN_CODE/ -TPK%O1D(:)=(TPK%K002(:)*PCONC(:,JP_O3))/(TPK%K020(:)*TPK%N2(:)+TPK%K021(:)*TPK%O2(:)+& - &TPK%K022(:)*TPK%H2O(:)) -TPK%O3P(:)=(TPK%K001(:)*PCONC(:,JP_NO2)+TPK%K003(:)*PCONC(:,JP_O3)+TPK%K008(:)*PCONC(:,JP_NO3)+& - &TPK%K020(:)*TPK%O1D(:)*TPK%N2(:)+TPK%K021(:)*TPK%O1D(:)*TPK%O2(:)+& - &0.00000*TPK%K079(:)*PCONC(:,JP_ALKE)*PCONC(:,JP_O3)+& - &0.09000*TPK%K080(:)*PCONC(:,JP_BIO)*PCONC(:,JP_O3))/& - &(TPK%K018(:)*TPK%O2(:)+TPK%K019(:)*PCONC(:,JP_O3)+TPK%K029(:)*PCONC(:,JP_NO)+& - &TPK%K030(:)*PCONC(:,JP_NO2)+TPK%K031(:)*PCONC(:,JP_NO2)+TPK%K054(:)*PCONC(:,JP_BIO)+& - &TPK%K055(:)*PCONC(:,JP_CARBO)) +TPK%OSD = ( +TPK%K016*PCONC(:,JP_O3) ) / & + ( +TPK%K017*TPK%H2O+TPK%K018A*TPK%N2(:)+TPK%K018B*TPK%O2(:) ) +! +TPK%O = ( +TPK%K001*PCONC(:,JP_NO2)+TPK%K014*PCONC(:,JP_NO3)+TPK%& +&K015*PCONC(:,JP_O3)+TPK%K018A*TPK%OSD*TPK%N2(:)+TPK%K018B*TPK%OSD*TPK%O2(:) ) / & +( +TPK%K002*TPK%O2(:)+TPK%K003*PCONC(:,JP_NO2)+TPK%K004*PCONC(:,JP_NO2)+TPK%K034*& +PCONC(:,JP_O3)+TPK%K038*PCONC(:,JP_NO)+TPK%K052*PCONC(:,JP_ETHE)+& +&TPK%K057*PCONC(:,JP_OLEL)+TPK%K067*PCONC(:,JP_ISOP)+TPK%K077*PCONC(:,& +&JP_OLEH)+TPK%K087*PCONC(:,JP_BIOL)+TPK%K091*PCONC(:,JP_BIOH)+TPK%K283& +&*PCONC(:,JP_MVK)+TPK%K284*PCONC(:,JP_MCR) ) +! +TPK%RO225 = ( TPK%K085*PCONC(:,JP_BIOL)*PCONC(:,JP_NO3) ) / & +( +TPK%K201*PCONC(:,JP_NO)+TPK%K202*PCONC(:,JP_RO2T)+TPK%K203*PCONC(:,JP_HO2)) +! +TPK%RO228 = ( TPK%K089*PCONC(:,JP_BIOH)*PCONC(:,JP_NO3) ) / & +( +TPK%K210*PCONC(:,JP_NO)+TPK%K211*PCONC(:,JP_RO2T)+TPK%K212*PCONC(:,JP_HO2)) + +! +TPK%RO253 = ( +0.41*TPK%K282*PCONC(:,JP_MCR)*PCONC(:,JP_O3) ) / & +( +TPK%K297*PCONC(:,JP_NO)+TPK%K298*PCONC(:,JP_HO2)+TPK%K299*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO254 = ( +TPK%K140*PCONC(:,JP_PAN6)+TPK%K297*TPK%RO253*& +&PCONC(:,JP_NO)+TPK%K298*TPK%RO253*PCONC(:,JP_HO2)+TPK%K299*& +&TPK%RO253*PCONC(:,JP_RO2T) ) / & +( +TPK%K131*PCONC(:,JP_NO2)+TPK%K300*PCONC(:,JP_NO)+TPK%K301*PCONC(& +&:,JP_HO2)+TPK%K302*PCONC(:,JP_RO2T) ) +! +TPK%RO213 = ( +0.271*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3) ) / & +( +TPK%K162*PCONC(:,JP_NO)+TPK%K163*PCONC(:,JP_RO2T)+TPK%K164*PCONC& +&(:,JP_HO2) ) +! +TPK%RO239 = ( +TPK%K137*PCONC(:,JP_PAN3)+TPK%K162*TPK%RO213*& +&PCONC(:,JP_NO)+TPK%K163*TPK%RO213*PCONC(:,JP_RO2T)+TPK%K164*TPK%RO213*PCONC(:,JP_HO2) ) / & +( +TPK%K128*PCONC(:,JP_NO2)+TPK%K165*PCONC(:,JP_NO)+TPK%K166*PCONC(& +&:,JP_HO2)+TPK%K167*PCONC(:,JP_RO2T) ) +! +TPK%RO248 = ( +TPK%K141*PCONC(:,JP_PAN4)+TPK%K274*PCONC(:,JP_MGLY)*P& +&CONC(:,JP_OH)+TPK%K278*PCONC(:,JP_MGLY)*PCONC(:,JP_NO3) ) / & +( +TPK%K129*PCONC(:,JP_NO2)+TPK%K277*PCONC(:,JP_NO)+TPK%K279*PCONC(& +&:,JP_HO2)+TPK%K280*PCONC(:,JP_RO2T) ) +! +TPK%RO249 = ( +TPK%K272*PCONC(:,JP_MVK)*PCONC(:,JP_OH) ) / & +( +TPK%K285*PCONC(:,JP_NO)+TPK%K286*PCONC(:,JP_RO2T)+TPK%K287*PCONC& +&(:,JP_HO2) ) +! +TPK%RO250 = ( +0.3750353*TPK%K139*PCONC(:,JP_APAN)+TPK%CF46*TPK%K2& +&73*PCONC(:,JP_MCR)*PCONC(:,JP_OH)+TPK%CF46*TPK%K275*PCONC(:,JP_MCR)*PCONC& +&(:,JP_NO3) ) / & +( +TPK%K130*PCONC(:,JP_NO2)+TPK%K288*PCONC(:,JP_NO)+TPK%K289*PCONC(& +&:,JP_HO2)+TPK%K290*PCONC(:,JP_RO2T) ) +! +TPK%RO214 = ( +0.095*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3)+TPK%K1& +&65*TPK%RO239*PCONC(:,JP_NO)+TPK%K167*TPK%RO239*PCONC(:,JP_R& +&O2T)+TPK%K288*TPK%RO250*PCONC(:,JP_NO)+TPK%K290*TPK%RO250& +&*PCONC(:,JP_RO2T) ) / & +( +TPK%K168*PCONC(:,JP_NO)+TPK%K169*PCONC(:,JP_RO2T)+TPK%K170*PCONC& +&(:,JP_HO2) ) +! +TPK%RO251 = ( +TPK%CF47*TPK%K273*PCONC(:,JP_MCR)*PCONC(:,JP_OH) ) / & +( +TPK%K291*PCONC(:,JP_NO)+TPK%K292*PCONC(:,JP_HO2)+TPK%K293*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO252 = ( +TPK%CF47*TPK%K275*PCONC(:,JP_MCR)*PCONC(:,JP_NO3) ) /& +( +TPK%K294*PCONC(:,JP_NO)+TPK%K295*PCONC(:,JP_HO2)+TPK%K296*PCONC(& +&:,JP_RO2T) ) +! +TPK%RO258 = ( +TPK%K138*PCONC(:,JP_PN10)+TPK%K305*PCONC(:,JP_RP16)*P& +&CONC(:,JP_OH)+TPK%K338*PCONC(:,JP_RP16)*PCONC(:,JP_NO3) ) / & +( +TPK%K134*PCONC(:,JP_NO2)+TPK%K340*PCONC(:,JP_NO)+TPK%K341*PCONC(& +&:,JP_HO2)+TPK%K342*PCONC(:,JP_RO2T) ) +! +TPK%RO255 = ( +TPK%K304*PCONC(:,JP_RPR1)*PCONC(:,JP_OH)+TPK%K307*PCO& +&NC(:,JP_RPR1)*PCONC(:,JP_NO3)+TPK%K343*PCONC(:,JP_PAN7) ) / & +( +TPK%K132*PCONC(:,JP_NO2)+TPK%K309*PCONC(:,JP_NO)+TPK%K310*PCONC(& +&:,JP_HO2)+TPK%K311*PCONC(:,JP_RO2T) ) +! +TPK%RO256 = ( +TPK%K312*PCONC(:,JP_RPR3)*PCONC(:,JP_OH)+TPK%K313*PCO& +&NC(:,JP_RPR3)*PCONC(:,JP_NO3)+TPK%K317*PCONC(:,JP_PAN8) ) / & +( +TPK%K315*PCONC(:,JP_NO)+TPK%K316*PCONC(:,JP_NO2)+TPK%K318*PCONC(& +&:,JP_HO2)+TPK%K319*PCONC(:,JP_RO2T) ) +! +TPK%RO257 = ( +0.6249651*TPK%K139*PCONC(:,JP_APAN)+TPK%K324*PCONC(:,& +&JP_RPR8)*PCONC(:,JP_OH)+TPK%K327*PCONC(:,JP_RPR8)*PCONC(:,JP_NO3)+TPK%K3& +&30*PCONC(:,JP_RPR8) ) / & +( +TPK%K133*PCONC(:,JP_NO2)+TPK%K331*PCONC(:,JP_NO)+TPK%K332*PCONC(& +&:,JP_HO2)+TPK%K333*PCONC(:,JP_RO2T) ) +! +TPK%RO29 = ( +0.66*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH)+TPK%K329& +&*PCONC(:,JP_RPR8)+TPK%K331*TPK%RO257*PCONC(:,JP_NO)+TPK%K333*TPK%RO257*& +PCONC(:,JP_RO2T) ) / & +( +TPK%K150*PCONC(:,JP_NO)+TPK%K151*PCONC(:,JP_RO2T)+TPK%K152*PCONC& +&(:,JP_HO2) ) +! +!avoid division by zero in prodloss +WHERE (PCONC(:,JP_NO2)>0.) + TPK%RAD1 = ( +TPK%K072*PCONC(:,JP_AROO)*PCONC(:,JP_NO3) ) / & + ( +TPK%K103*PCONC(:,JP_NO2) ) +! + TPK%RAD8 = ( +TPK%K320*PCONC(:,JP_RPR4)*PCONC(:,JP_NO3) ) / & + ( +TPK%K321*PCONC(:,JP_NO2) ) +ELSEWHERE + TPK%RAD1 = 0. + TPK%RAD8 = 0. +ENDWHERE +! +TPK%RAD2 = ( +0.74*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & +( +TPK%K097+TPK%K104*PCONC(:,JP_NO2) ) +! +TPK%RAD3 = ( +0.74*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & +( +TPK%K098+TPK%K105*PCONC(:,JP_NO2) ) +! +TPK%RAD4 = ( +0.84*TPK%K080*PCONC(:,JP_AROH)*PCONC(:,JP_OH) ) / & +( +TPK%K099+TPK%K106*PCONC(:,JP_NO2) ) +! +TPK%RAD5 = ( +TPK%CF40*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) / & +( +TPK%K100+TPK%K107*PCONC(:,JP_NO2) ) +! +TPK%RAD6 = ( +0.74*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & +( +TPK%K101+TPK%K108*PCONC(:,JP_NO2) ) +! +TPK%RAD7 = ( +0.74*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & +( +TPK%K102+TPK%K109*PCONC(:,JP_NO2) ) +! +TPK%RO22 = ( +TPK%K049*PCONC(:,JP_ETHE)*PCONC(:,JP_OH)+TPK%CF2*TPK& +&%K053*PCONC(:,JP_ETOH)*PCONC(:,JP_OH)+TPK%K054*PCONC(:,JP_OLEL)*PCONC(:,JP_& +&OH)+TPK%K069*PCONC(:,JP_ALCH)*PCONC(:,JP_OH) ) / & +( +TPK%K113*PCONC(:,JP_NO)+TPK%K114*PCONC(:,JP_RO2T)+TPK%K115*PCONC& +&(:,JP_HO2) ) +! +TPK%RO23 = ( +TPK%K050*PCONC(:,JP_ETHE)*PCONC(:,JP_NO3)+TPK%K055*PCO& +&NC(:,JP_OLEL)*PCONC(:,JP_NO3) ) / & +( +TPK%K116*PCONC(:,JP_NO)+TPK%K117*PCONC(:,JP_RO2T)+TPK%K118*PCONC& +&(:,JP_HO2) ) +! +TPK%RO24 = ( +0.4*TPK%K052*PCONC(:,JP_ETHE)*TPK%O+0.1*TPK%K0& +&57*PCONC(:,JP_OLEL)*TPK%O+0.1*TPK%K077*PCONC(:,JP_OLEH)*& +&TPK%O+0.15*TPK%K283*PCONC(:,JP_MVK)*TPK%O ) / & +( +TPK%K119*PCONC(:,JP_NO)+TPK%K120*PCONC(:,JP_RO2T)+TPK%K121*PCONC& +&(:,JP_HO2) ) +! +TPK%RO26 = ( +TPK%K060*PCONC(:,JP_ALD2)*PCONC(:,JP_OH)+TPK%K061*PCON& +&C(:,JP_ALD2)*PCONC(:,JP_NO3)+TPK%K135*PCONC(:,JP_PAN1) ) / & +( +TPK%K125*PCONC(:,JP_NO)+TPK%K126*PCONC(:,JP_NO2)+TPK%K142*PCONC(& +&:,JP_HO2)+TPK%K143*PCONC(:,JP_RO2T) ) +! +TPK%RO27 = ( +TPK%K062*PCONC(:,JP_KETL)*PCONC(:,JP_OH)+TPK%CF8*TPK& +&%K168*TPK%RO214*PCONC(:,JP_NO)+TPK%K169*TPK%RO214*PCONC(:,J& +&P_RO2T)+TPK%K170*TPK%RO214*PCONC(:,JP_HO2)+0.15*TPK%K284*PCONC(:& +&,JP_MCR)*TPK%O ) / & +( +TPK%K144*PCONC(:,JP_NO)+TPK%K145*PCONC(:,JP_RO2T)+TPK%K146*PCONC& +&(:,JP_HO2) ) +! +TPK%RO210 = ( +0.34*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH) ) / & +( +TPK%K153*PCONC(:,JP_NO)+TPK%K154*PCONC(:,JP_RO2T)+TPK%K155*PCONC& +&(:,JP_HO2) ) +! +TPK%RO211 = ( +0.66*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & +( +TPK%K156*PCONC(:,JP_NO)+TPK%K157*PCONC(:,JP_RO2T)+TPK%K158*PCONC& +&(:,JP_HO2) ) +! +TPK%RO212 = ( +0.34*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & +( +TPK%K159*PCONC(:,JP_NO)+TPK%K160*PCONC(:,JP_RO2T)+TPK%K161*PCONC& +&(:,JP_HO2) ) +! +TPK%RO215 = ( +TPK%K068*PCONC(:,JP_MTBE)*PCONC(:,JP_OH) ) / & +( +TPK%K171*PCONC(:,JP_NO)+TPK%K172*PCONC(:,JP_RO2T)+TPK%K173*PCONC& +&(:,JP_HO2) ) +! +TPK%RO216 = ( +TPK%K070*PCONC(:,JP_KETH)*PCONC(:,JP_OH) ) / & +( +TPK%K174*PCONC(:,JP_NO)+TPK%K175*PCONC(:,JP_RO2T)+TPK%K176*PCONC& +&(:,JP_HO2) ) +! +TPK%RO217 = ( +0.1*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & +( +TPK%K177*PCONC(:,JP_NO)+TPK%K178*PCONC(:,JP_RO2T)+TPK%K179*PCONC& +&(:,JP_HO2) ) +! +TPK%RO220 = ( +0.28*TPK%K076*PCONC(:,JP_OLEH)*PCONC(:,JP_O3)+0.1*TPK& +&%K077*PCONC(:,JP_OLEH)*TPK%O+TPK%K078*PCONC(:,JP_ALKM)*PCONC(:,JP_O& +&H)+TPK%K308*PCONC(:,JP_RPR1)+TPK%K309*TPK%RO255*PCONC(:,JP_NO)+T& +&PK%K311*TPK%RO255*PCONC(:,JP_RO2T) ) / & +( +TPK%K186*PCONC(:,JP_NO)+TPK%K187*PCONC(:,JP_RO2T)+TPK%K188*PCONC& +&(:,JP_HO2) ) +! +TPK%RO218 = ( +TPK%K074*PCONC(:,JP_OLEH)*PCONC(:,JP_OH)+TPK%CF18*TPK%K186*& +TPK%RO220*PCONC(:,JP_NO)+TPK%K187*TPK%RO220*PCONC(:& +&,JP_RO2T)+TPK%K188*TPK%RO220*PCONC(:,JP_HO2) ) / & +( +TPK%K180*PCONC(:,JP_NO)+TPK%K181*PCONC(:,JP_RO2T)+TPK%K182*PCONC& +&(:,JP_HO2) ) +! +TPK%RO219 = ( +TPK%K075*PCONC(:,JP_OLEH)*PCONC(:,JP_NO3) ) / & +( +TPK%K183*PCONC(:,JP_NO)+TPK%K184*PCONC(:,JP_RO2T)+TPK%K185*PCONC& +&(:,JP_HO2) ) +! +TPK%RO221 = ( +0.1*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & +( +TPK%K189*PCONC(:,JP_NO)+TPK%K190*PCONC(:,JP_RO2T)+TPK%K191*PCONC& +&(:,JP_HO2) ) +! +TPK%RO222 = ( +TPK%CF45*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) /& +& & +( +TPK%K192*PCONC(:,JP_NO)+TPK%K193*PCONC(:,JP_RO2T)+TPK%K194*PCONC& +&(:,JP_HO2) ) +! +TPK%RO223 = ( +0.1*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & +( +TPK%K195*PCONC(:,JP_NO)+TPK%K196*PCONC(:,JP_RO2T)+TPK%K197*PCONC& +&(:,JP_HO2) ) +! +TPK%RO224 = ( +TPK%K084*PCONC(:,JP_BIOL)*PCONC(:,JP_OH) ) / & +( +TPK%K198*PCONC(:,JP_NO)+TPK%K199*PCONC(:,JP_RO2T)+TPK%K200*PCONC& +&(:,JP_HO2) ) +! +TPK%RO226 = ( +0.445*TPK%K086*PCONC(:,JP_BIOL)*PCONC(:,JP_O3) ) / & +( +TPK%K204*PCONC(:,JP_NO)+TPK%K205*PCONC(:,JP_RO2T)+TPK%K206*PCONC& +&(:,JP_HO2) ) +! +TPK%RO227 = ( +TPK%K088*PCONC(:,JP_BIOH)*PCONC(:,JP_OH) ) / & +( +TPK%K207*PCONC(:,JP_NO)+TPK%K208*PCONC(:,JP_RO2T)+TPK%K209*PCONC& +&(:,JP_HO2) ) +! +TPK%RO229 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & +( +TPK%K213*PCONC(:,JP_NO)+TPK%K214*PCONC(:,JP_RO2T)+TPK%K215*PCONC& +&(:,JP_HO2) ) +! +TPK%RO230 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & +( +TPK%K219*PCONC(:,JP_RO2T)+TPK%K220*PCONC(:,JP_HO2)+TPK%K344*PCON& +&C(:,JP_NO) ) +! +TPK%RO231 = ( +0.1*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & +( +TPK%K221*PCONC(:,JP_NO)+TPK%K222*PCONC(:,JP_RO2T)+TPK%K223*PCONC& +&(:,JP_HO2) ) +! +TPK%RO232 = ( +TPK%K093*PCONC(:,JP_ALKH)*PCONC(:,JP_OH) ) / & +( +TPK%K224*PCONC(:,JP_NO)+TPK%K225*PCONC(:,JP_RO2T)+TPK%K226*PCONC& +&(:,JP_HO2) ) +! +TPK%RO233 = ( +TPK%K097*TPK%RAD2 ) / & +( +TPK%K230+TPK%K231*PCONC(:,JP_NO)+TPK%K232*PCONC(:,JP_RO2T)+TPK%K233*& +PCONC(:,JP_HO2) ) +! +TPK%RO234 = ( +TPK%K098*TPK%RAD3 ) / & +( +TPK%K237+TPK%K238*PCONC(:,JP_NO)+TPK%K239*PCONC(:,JP_RO2T)+TPK%K240*& +PCONC(:,JP_HO2) ) +! +TPK%RO235 = ( +TPK%K099*TPK%RAD4 ) / & +( +TPK%K244+TPK%K245*PCONC(:,JP_NO)+TPK%K246*PCONC(:,JP_RO2T)+TPK%K247*& +PCONC(:,JP_HO2) ) +! +TPK%RO236 = ( +TPK%K100*TPK%RAD5 ) / & +( +TPK%K251+TPK%K252*PCONC(:,JP_NO)+TPK%K253*PCONC(:,JP_RO2T)+TPK%K254*& +PCONC(:,JP_HO2) ) +! +TPK%RO237 = ( +TPK%K101*TPK%RAD6 ) / & +( +TPK%K258+TPK%K259*PCONC(:,JP_NO)+TPK%K260*PCONC(:,JP_RO2T)+TPK%K261*& +PCONC(:,JP_HO2) ) +! +TPK%RO238 = ( +TPK%K102*TPK%RAD7 ) / & +( +TPK%K265+TPK%K266*PCONC(:,JP_NO)+TPK%K267*PCONC(:,JP_RO2T)+TPK%K268*& +PCONC(:,JP_HO2) ) +! +TPK%RO240 = ( +TPK%CF30*TPK%K213*TPK%RO229*PCONC(:,JP_NO)+TPK%K214*& +TPK%RO229*PCONC(:,JP_RO2T)+TPK%K215*TPK%RO229*PCON& +&C(:,JP_HO2) ) / & +( +TPK%K216*PCONC(:,JP_NO)+TPK%K217*PCONC(:,JP_RO2T)+TPK%K218*PCONC& +&(:,JP_HO2) ) +! +TPK%RO241 = ( +TPK%CF34*TPK%K224*TPK%RO232*PCONC(:,JP_NO)+TPK%K225*& +TPK%RO232*PCONC(:,JP_RO2T)+TPK%K226*TPK%RO232*PCON& +&C(:,JP_HO2) ) / & +( +TPK%K227*PCONC(:,JP_NO)+TPK%K228*PCONC(:,JP_RO2T)+TPK%K229*PCONC& +&(:,JP_HO2) ) +! +TPK%RO242 = ( +TPK%K230*TPK%RO233 ) / & +( +TPK%K234*PCONC(:,JP_NO)+TPK%K235*PCONC(:,JP_RO2T)+TPK%K236*PCONC& +&(:,JP_HO2) ) +! +TPK%RO243 = ( +TPK%K237*TPK%RO234 ) / & +( +TPK%K241*PCONC(:,JP_NO)+TPK%K242*PCONC(:,JP_RO2T)+TPK%K243*PCONC& +&(:,JP_HO2) ) +! +TPK%RO244 = ( +TPK%K244*TPK%RO235 ) / & +( +TPK%K248*PCONC(:,JP_NO)+TPK%K249*PCONC(:,JP_RO2T)+TPK%K250*PCONC& +&(:,JP_HO2) ) +! +TPK%RO245 = ( +TPK%K251*TPK%RO236 ) / & +( +TPK%K255*PCONC(:,JP_NO)+TPK%K256*PCONC(:,JP_RO2T)+TPK%K257*PCONC& +&(:,JP_HO2) ) +! +TPK%RO246 = ( +TPK%K258*TPK%RO237 ) / & +( +TPK%K262*PCONC(:,JP_NO)+TPK%K263*PCONC(:,JP_RO2T)+TPK%K264*PCONC& +&(:,JP_HO2) ) +! +TPK%RO247 = ( +TPK%K265*TPK%RO238 ) / & +( +TPK%K269*PCONC(:,JP_NO)+TPK%K270*PCONC(:,JP_RO2T)+TPK%K271*PCONC& +&(:,JP_HO2) ) +! +TPK%RO28 = ( +TPK%K063*PCONC(:,JP_KETL)+TPK%K071*PCONC(:,JP_KETH)+TP& +&K%K136*PCONC(:,JP_PAN2)+TPK%K144*TPK%RO27*PCONC(:,JP_NO)+TPK%& +&K145*TPK%RO27*PCONC(:,JP_RO2T)+TPK%K146*TPK%RO27*PCONC(:,JP& +&_HO2)+TPK%K174*TPK%RO216*PCONC(:,JP_NO)+TPK%K175*TPK%RO21& +&6*PCONC(:,JP_RO2T)+TPK%K176*TPK%RO216*PCONC(:,JP_HO2)+TPK%K204*& +&TPK%RO226*PCONC(:,JP_NO)+TPK%K205*TPK%RO226*PCONC(:,JP_RO2T)& +&+TPK%K206*TPK%RO226*PCONC(:,JP_HO2)+TPK%K216*TPK%RO240*& +&PCONC(:,JP_NO)+TPK%K217*TPK%RO240*PCONC(:,JP_RO2T)+TPK%K218*& +&TPK%RO240*PCONC(:,JP_HO2)+TPK%K219*TPK%RO230*PCONC(:,JP_RO2T)+T& +&PK%K220*TPK%RO230*PCONC(:,JP_HO2)+TPK%K276*PCONC(:,JP_MGLY)+TPK%K277*& +TPK%RO248*PCONC(:,JP_NO)+TPK%K280*TPK%RO248*PCONC(:& +&,JP_RO2T)+0.28*TPK%K281*PCONC(:,JP_MVK)*PCONC(:,JP_O3)+0.15*TPK%K283*PCO& +&NC(:,JP_MVK)*TPK%O+TPK%K344*TPK%RO230*PCONC(:,JP_NO) ) / & +( +TPK%K127*PCONC(:,JP_NO2)+TPK%K147*PCONC(:,JP_NO)+TPK%K148*PCONC(& +&:,JP_HO2)+TPK%K149*PCONC(:,JP_RO2T) ) +! ! /END_CODE/ PTERMS(:,:,:) = 0.0 CALL SUBT0 @@ -29857,6 +90368,47 @@ CALL SUBT44 CALL SUBT45 CALL SUBT46 CALL SUBT47 +CALL SUBT48 +CALL SUBT49 +CALL SUBT50 +CALL SUBT51 +CALL SUBT52 +CALL SUBT53 +CALL SUBT54 +CALL SUBT55 +CALL SUBT56 +CALL SUBT57 +CALL SUBT58 +CALL SUBT59 +CALL SUBT60 +CALL SUBT61 +CALL SUBT62 +CALL SUBT63 +CALL SUBT64 +CALL SUBT65 +CALL SUBT66 +CALL SUBT67 +CALL SUBT68 +CALL SUBT69 +CALL SUBT70 +CALL SUBT71 +CALL SUBT72 +CALL SUBT73 +CALL SUBT74 +CALL SUBT75 +CALL SUBT76 +CALL SUBT77 +CALL SUBT78 +CALL SUBT79 +CALL SUBT80 +CALL SUBT81 +CALL SUBT82 +CALL SUBT83 +CALL SUBT84 +CALL SUBT85 +CALL SUBT86 +CALL SUBT87 +CALL SUBT88 ! CONTAINS @@ -29866,64 +90418,64 @@ SUBROUTINE SUBT0 !Indices 1 a 20 ! !PTERMS(NO,K001) = +K001*<NO2> - PTERMS(:,3,1) = +TPK%K001(:)*PCONC(:,4) + PTERMS(:,1,1) = +TPK%K001(:)*PCONC(:,2) ! !PTERMS(NO2,K001) = -K001*<NO2> - PTERMS(:,4,1) = -TPK%K001(:)*PCONC(:,4) + PTERMS(:,2,1) = -TPK%K001(:)*PCONC(:,2) ! -!PTERMS(O3,K002) = -K002*<O3> - PTERMS(:,1,2) = -TPK%K002(:)*PCONC(:,1) +!PTERMS(O3,K002) = +K002*<O2>*<O> + PTERMS(:,3,2) = +TPK%K002(:)*TPK%O2(:)*TPK%O(:) ! -!PTERMS(O3,K003) = -K003*<O3> - PTERMS(:,1,3) = -TPK%K003(:)*PCONC(:,1) +!PTERMS(NO,K003) = +K003*<NO2>*<O> + PTERMS(:,1,3) = +TPK%K003(:)*PCONC(:,2)*TPK%O(:) ! -!PTERMS(NO,K004) = +K004*<HONO> - PTERMS(:,3,4) = +TPK%K004(:)*PCONC(:,7) +!PTERMS(NO2,K003) = -K003*<NO2>*<O> + PTERMS(:,2,3) = -TPK%K003(:)*PCONC(:,2)*TPK%O(:) ! -!PTERMS(HONO,K004) = -K004*<HONO> - PTERMS(:,7,4) = -TPK%K004(:)*PCONC(:,7) +!PTERMS(NO2,K004) = -K004*<NO2>*<O> + PTERMS(:,2,4) = -TPK%K004(:)*PCONC(:,2)*TPK%O(:) ! -!PTERMS(OH,K004) = +K004*<HONO> - PTERMS(:,14,4) = +TPK%K004(:)*PCONC(:,7) +!PTERMS(NO3,K004) = +K004*<NO2>*<O> + PTERMS(:,8,4) = +TPK%K004(:)*PCONC(:,2)*TPK%O(:) ! -!PTERMS(NO2,K005) = +K005*<HNO3> - PTERMS(:,4,5) = +TPK%K005(:)*PCONC(:,8) +!PTERMS(NO,K005) = -K005*<O3>*<NO> + PTERMS(:,1,5) = -TPK%K005(:)*PCONC(:,3)*PCONC(:,1) ! -!PTERMS(HNO3,K005) = -K005*<HNO3> - PTERMS(:,8,5) = -TPK%K005(:)*PCONC(:,8) +!PTERMS(NO2,K005) = +K005*<O3>*<NO> + PTERMS(:,2,5) = +TPK%K005(:)*PCONC(:,3)*PCONC(:,1) ! -!PTERMS(OH,K005) = +K005*<HNO3> - PTERMS(:,14,5) = +TPK%K005(:)*PCONC(:,8) +!PTERMS(O3,K005) = -K005*<O3>*<NO> + PTERMS(:,3,5) = -TPK%K005(:)*PCONC(:,3)*PCONC(:,1) ! -!PTERMS(NO2,K006) = +0.65*K006*<HNO4> - PTERMS(:,4,6) = +0.65*TPK%K006(:)*PCONC(:,9) +!PTERMS(NO2,K006) = -K006*<O3>*<NO2> + PTERMS(:,2,6) = -TPK%K006(:)*PCONC(:,3)*PCONC(:,2) ! -!PTERMS(NO3,K006) = +0.35*K006*<HNO4> - PTERMS(:,5,6) = +0.35*TPK%K006(:)*PCONC(:,9) +!PTERMS(O3,K006) = -K006*<O3>*<NO2> + PTERMS(:,3,6) = -TPK%K006(:)*PCONC(:,3)*PCONC(:,2) ! -!PTERMS(HNO4,K006) = -K006*<HNO4> - PTERMS(:,9,6) = -TPK%K006(:)*PCONC(:,9) +!PTERMS(NO3,K006) = +K006*<O3>*<NO2> + PTERMS(:,8,6) = +TPK%K006(:)*PCONC(:,3)*PCONC(:,2) ! -!PTERMS(OH,K006) = +0.35*K006*<HNO4> - PTERMS(:,14,6) = +0.35*TPK%K006(:)*PCONC(:,9) +!PTERMS(NO,K007) = -K007*<NO3>*<NO> + PTERMS(:,1,7) = -TPK%K007(:)*PCONC(:,8)*PCONC(:,1) ! -!PTERMS(HO2,K006) = +0.65*K006*<HNO4> - PTERMS(:,15,6) = +0.65*TPK%K006(:)*PCONC(:,9) +!PTERMS(NO2,K007) = +2.*K007*<NO3>*<NO> + PTERMS(:,2,7) = +2.*TPK%K007(:)*PCONC(:,8)*PCONC(:,1) ! -!PTERMS(NO,K007) = +K007*<NO3> - PTERMS(:,3,7) = +TPK%K007(:)*PCONC(:,5) +!PTERMS(NO3,K007) = -K007*<NO3>*<NO> + PTERMS(:,8,7) = -TPK%K007(:)*PCONC(:,8)*PCONC(:,1) ! -!PTERMS(NO3,K007) = -K007*<NO3> - PTERMS(:,5,7) = -TPK%K007(:)*PCONC(:,5) +!PTERMS(NO,K008) = -K008*<NO>*<NO> + PTERMS(:,1,8) = -TPK%K008(:)*PCONC(:,1)*PCONC(:,1) ! -!PTERMS(NO2,K008) = +K008*<NO3> - PTERMS(:,4,8) = +TPK%K008(:)*PCONC(:,5) +!PTERMS(NO2,K008) = +2.*K008*<NO>*<NO> + PTERMS(:,2,8) = +2.*TPK%K008(:)*PCONC(:,1)*PCONC(:,1) ! -!PTERMS(NO3,K008) = -K008*<NO3> - PTERMS(:,5,8) = -TPK%K008(:)*PCONC(:,5) +!PTERMS(NO2,K009) = -K009*<NO3>*<NO2> + PTERMS(:,2,9) = -TPK%K009(:)*PCONC(:,8)*PCONC(:,2) ! -!PTERMS(H2O2,K009) = -K009*<H2O2> - PTERMS(:,2,9) = -TPK%K009(:)*PCONC(:,2) +!PTERMS(N2O5,K009) = +K009*<NO3>*<NO2> + PTERMS(:,7,9) = +TPK%K009(:)*PCONC(:,8)*PCONC(:,2) ! ! RETURN @@ -29933,65 +90485,65 @@ SUBROUTINE SUBT1 ! !Indices 21 a 40 ! -!PTERMS(OH,K009) = +K009*<H2O2> - PTERMS(:,14,9) = +TPK%K009(:)*PCONC(:,2) +!PTERMS(NO3,K009) = -K009*<NO3>*<NO2> + PTERMS(:,8,9) = -TPK%K009(:)*PCONC(:,8)*PCONC(:,2) ! -!PTERMS(CO,K010) = +K010*<HCHO> - PTERMS(:,13,10) = +TPK%K010(:)*PCONC(:,22) +!PTERMS(NO2,K010) = +K010*<N2O5> + PTERMS(:,2,10) = +TPK%K010(:)*PCONC(:,7) ! -!PTERMS(HCHO,K010) = -K010*<HCHO> - PTERMS(:,22,10) = -TPK%K010(:)*PCONC(:,22) +!PTERMS(N2O5,K010) = -K010*<N2O5> + PTERMS(:,7,10) = -TPK%K010(:)*PCONC(:,7) ! -!PTERMS(CO,K011) = +K011*<HCHO> - PTERMS(:,13,11) = +TPK%K011(:)*PCONC(:,22) +!PTERMS(NO3,K010) = +K010*<N2O5> + PTERMS(:,8,10) = +TPK%K010(:)*PCONC(:,7) ! -!PTERMS(HO2,K011) = +K011*<HCHO> - PTERMS(:,15,11) = +TPK%K011(:)*PCONC(:,22) +!PTERMS(HNO3,K011) = +2.*K011*<H2O>*<N2O5> + PTERMS(:,5,11) = +2.*TPK%K011(:)*TPK%H2O(:)*PCONC(:,7) ! -!PTERMS(HCHO,K011) = -K011*<HCHO> - PTERMS(:,22,11) = -TPK%K011(:)*PCONC(:,22) +!PTERMS(N2O5,K011) = -K011*<H2O>*<N2O5> + PTERMS(:,7,11) = -TPK%K011(:)*TPK%H2O(:)*PCONC(:,7) ! -!PTERMS(CO,K012) = +K012*<ALD> - PTERMS(:,13,12) = +TPK%K012(:)*PCONC(:,23) +!PTERMS(NO,K012) = +K012*<NO3>*<NO2> + PTERMS(:,1,12) = +TPK%K012(:)*PCONC(:,8)*PCONC(:,2) ! -!PTERMS(HO2,K012) = +K012*<ALD> - PTERMS(:,15,12) = +TPK%K012(:)*PCONC(:,23) +!PTERMS(NO2,K012) = -K012*<NO3>*<NO2> + PTERMS(:,2,12) = -TPK%K012(:)*PCONC(:,8)*PCONC(:,2) ! -!PTERMS(ALD,K012) = -K012*<ALD> - PTERMS(:,23,12) = -TPK%K012(:)*PCONC(:,23) +!PTERMS(NO3,K012) = -K012*<NO3>*<NO2> + PTERMS(:,8,12) = -TPK%K012(:)*PCONC(:,8)*PCONC(:,2) ! -!PTERMS(MO2,K012) = +K012*<ALD> - PTERMS(:,32,12) = +TPK%K012(:)*PCONC(:,23) +!PTERMS(NO,K013) = +K013*<NO3> + PTERMS(:,1,13) = +TPK%K013(:)*PCONC(:,8) ! -!PTERMS(OH,K013) = +K013*<OP1> - PTERMS(:,14,13) = +TPK%K013(:)*PCONC(:,28) +!PTERMS(NO3,K013) = -K013*<NO3> + PTERMS(:,8,13) = -TPK%K013(:)*PCONC(:,8) ! -!PTERMS(HO2,K013) = +K013*<OP1> - PTERMS(:,15,13) = +TPK%K013(:)*PCONC(:,28) +!PTERMS(NO2,K014) = +K014*<NO3> + PTERMS(:,2,14) = +TPK%K014(:)*PCONC(:,8) ! -!PTERMS(HCHO,K013) = +K013*<OP1> - PTERMS(:,22,13) = +TPK%K013(:)*PCONC(:,28) +!PTERMS(NO3,K014) = -K014*<NO3> + PTERMS(:,8,14) = -TPK%K014(:)*PCONC(:,8) ! -!PTERMS(OP1,K013) = -K013*<OP1> - PTERMS(:,28,13) = -TPK%K013(:)*PCONC(:,28) +!PTERMS(O3,K015) = -K015*<O3> + PTERMS(:,3,15) = -TPK%K015(:)*PCONC(:,3) ! -!PTERMS(OH,K014) = +K014*<OP2> - PTERMS(:,14,14) = +TPK%K014(:)*PCONC(:,29) +!PTERMS(O3,K016) = -K016*<O3> + PTERMS(:,3,16) = -TPK%K016(:)*PCONC(:,3) ! -!PTERMS(HO2,K014) = +0.96205*K014*<OP2> - PTERMS(:,15,14) = +0.96205*TPK%K014(:)*PCONC(:,29) +!PTERMS(OH,K017) = +K017*<H2O>*<OSD> + PTERMS(:,15,17) = +TPK%K017(:)*TPK%H2O(:)*TPK%OSD(:) ! -!PTERMS(ALD,K014) = +0.96205*K014*<OP2> - PTERMS(:,23,14) = +0.96205*TPK%K014(:)*PCONC(:,29) +!PTERMS(NO,K019) = -K019*<OH>*<NO> + PTERMS(:,1,20) = -TPK%K019(:)*PCONC(:,15)*PCONC(:,1) ! -!PTERMS(OP2,K014) = -K014*<OP2> - PTERMS(:,29,14) = -TPK%K014(:)*PCONC(:,29) +!PTERMS(HONO,K019) = +K019*<OH>*<NO> + PTERMS(:,4,20) = +TPK%K019(:)*PCONC(:,15)*PCONC(:,1) ! -!PTERMS(MO2,K014) = +0.03795*K014*<OP2> - PTERMS(:,32,14) = +0.03795*TPK%K014(:)*PCONC(:,29) +!PTERMS(OH,K019) = -K019*<OH>*<NO> + PTERMS(:,15,20) = -TPK%K019(:)*PCONC(:,15)*PCONC(:,1) ! -!PTERMS(KET,K015) = -K015*<KET> - PTERMS(:,24,15) = -TPK%K015(:)*PCONC(:,24) +!PTERMS(NO,K020) = +0.9*K020*<HONO> + PTERMS(:,1,21) = +0.9*TPK%K020(:)*PCONC(:,4) ! ! RETURN @@ -30001,65 +90553,65 @@ SUBROUTINE SUBT2 ! !Indices 41 a 60 ! -!PTERMS(ALKAP,K015) = +1.00000*K015*<KET> - PTERMS(:,33,15) = +1.00000*TPK%K015(:)*PCONC(:,24) +!PTERMS(NO2,K020) = +0.1*K020*<HONO> + PTERMS(:,2,21) = +0.1*TPK%K020(:)*PCONC(:,4) ! -!PTERMS(CARBOP,K015) = +1.00000*K015*<KET> - PTERMS(:,39,15) = +1.00000*TPK%K015(:)*PCONC(:,24) +!PTERMS(HONO,K020) = -K020*<HONO> + PTERMS(:,4,21) = -TPK%K020(:)*PCONC(:,4) ! -!PTERMS(CO,K016) = +0.91924*K016*<CARBO> - PTERMS(:,13,16) = +0.91924*TPK%K016(:)*PCONC(:,25) +!PTERMS(HO2,K020) = +0.1*K020*<HONO> + PTERMS(:,10,21) = +0.1*TPK%K020(:)*PCONC(:,4) ! -!PTERMS(HO2,K016) = +0.75830*K016*<CARBO> - PTERMS(:,15,16) = +0.75830*TPK%K016(:)*PCONC(:,25) +!PTERMS(OH,K020) = +0.9*K020*<HONO> + PTERMS(:,15,21) = +0.9*TPK%K020(:)*PCONC(:,4) ! -!PTERMS(HCHO,K016) = +0.06517*K016*<CARBO> - PTERMS(:,22,16) = +0.06517*TPK%K016(:)*PCONC(:,25) +!PTERMS(NO2,K021) = -K021*<H2O>*<NO2> + PTERMS(:,2,22) = -TPK%K021(:)*TPK%H2O(:)*PCONC(:,2) ! -!PTERMS(CARBO,K016) = -K016*<CARBO> - PTERMS(:,25,16) = -TPK%K016(:)*PCONC(:,25) +!PTERMS(HONO,K021) = +0.5*K021*<H2O>*<NO2> + PTERMS(:,4,22) = +0.5*TPK%K021(:)*TPK%H2O(:)*PCONC(:,2) ! -!PTERMS(CARBOP,K016) = +0.69622*K016*<CARBO> - PTERMS(:,39,16) = +0.69622*TPK%K016(:)*PCONC(:,25) +!PTERMS(HNO3,K021) = +0.5*K021*<H2O>*<NO2> + PTERMS(:,5,22) = +0.5*TPK%K021(:)*TPK%H2O(:)*PCONC(:,2) ! -!PTERMS(NO2,K017) = +K017*<ONIT> - PTERMS(:,4,17) = +TPK%K017(:)*PCONC(:,26) +!PTERMS(NO2,K022) = -K022*<OH>*<NO2> + PTERMS(:,2,23) = -TPK%K022(:)*PCONC(:,15)*PCONC(:,2) ! -!PTERMS(HO2,K017) = +K017*<ONIT> - PTERMS(:,15,17) = +TPK%K017(:)*PCONC(:,26) +!PTERMS(HNO3,K022) = +K022*<OH>*<NO2> + PTERMS(:,5,23) = +TPK%K022(:)*PCONC(:,15)*PCONC(:,2) ! -!PTERMS(ALD,K017) = +0.20*K017*<ONIT> - PTERMS(:,23,17) = +0.20*TPK%K017(:)*PCONC(:,26) +!PTERMS(OH,K022) = -K022*<OH>*<NO2> + PTERMS(:,15,23) = -TPK%K022(:)*PCONC(:,15)*PCONC(:,2) ! -!PTERMS(KET,K017) = +0.80*K017*<ONIT> - PTERMS(:,24,17) = +0.80*TPK%K017(:)*PCONC(:,26) +!PTERMS(HNO3,K023) = -K023*<OH>*<HNO3> + PTERMS(:,5,24) = -TPK%K023(:)*PCONC(:,15)*PCONC(:,5) ! -!PTERMS(ONIT,K017) = -K017*<ONIT> - PTERMS(:,26,17) = -TPK%K017(:)*PCONC(:,26) +!PTERMS(NO3,K023) = +K023*<OH>*<HNO3> + PTERMS(:,8,24) = +TPK%K023(:)*PCONC(:,15)*PCONC(:,5) ! -!PTERMS(O3,K018) = +K018*<O3P>*<O2> - PTERMS(:,1,18) = +TPK%K018(:)*TPK%O3P(:)*TPK%O2(:) +!PTERMS(OH,K023) = -K023*<OH>*<HNO3> + PTERMS(:,15,24) = -TPK%K023(:)*PCONC(:,15)*PCONC(:,5) ! -!PTERMS(O3,K019) = -K019*<O3P>*<O3> - PTERMS(:,1,19) = -TPK%K019(:)*TPK%O3P(:)*PCONC(:,1) +!PTERMS(HO2,K024) = +K024*<OH>*<CO> + PTERMS(:,10,25) = +TPK%K024(:)*PCONC(:,15)*PCONC(:,11) ! -!PTERMS(OH,K022) = +K022*<O1D>*<H2O> - PTERMS(:,14,22) = +TPK%K022(:)*TPK%O1D(:)*TPK%H2O(:) +!PTERMS(CO,K024) = -K024*<OH>*<CO> + PTERMS(:,11,25) = -TPK%K024(:)*PCONC(:,15)*PCONC(:,11) ! -!PTERMS(O3,K023) = -K023*<O3>*<OH> - PTERMS(:,1,23) = -TPK%K023(:)*PCONC(:,1)*PCONC(:,14) +!PTERMS(OH,K024) = -K024*<OH>*<CO> + PTERMS(:,15,25) = -TPK%K024(:)*PCONC(:,15)*PCONC(:,11) ! -!PTERMS(OH,K023) = -K023*<O3>*<OH> - PTERMS(:,14,23) = -TPK%K023(:)*PCONC(:,1)*PCONC(:,14) +!PTERMS(O3,K025) = -K025*<OH>*<O3> + PTERMS(:,3,26) = -TPK%K025(:)*PCONC(:,15)*PCONC(:,3) ! -!PTERMS(HO2,K023) = +K023*<O3>*<OH> - PTERMS(:,15,23) = +TPK%K023(:)*PCONC(:,1)*PCONC(:,14) +!PTERMS(HO2,K025) = +K025*<OH>*<O3> + PTERMS(:,10,26) = +TPK%K025(:)*PCONC(:,15)*PCONC(:,3) ! -!PTERMS(O3,K024) = -K024*<O3>*<HO2> - PTERMS(:,1,24) = -TPK%K024(:)*PCONC(:,1)*PCONC(:,15) +!PTERMS(OH,K025) = -K025*<OH>*<O3> + PTERMS(:,15,26) = -TPK%K025(:)*PCONC(:,15)*PCONC(:,3) ! -!PTERMS(OH,K024) = +K024*<O3>*<HO2> - PTERMS(:,14,24) = +TPK%K024(:)*PCONC(:,1)*PCONC(:,15) +!PTERMS(NO,K026) = -K026*<HO2>*<NO> + PTERMS(:,1,27) = -TPK%K026(:)*PCONC(:,10)*PCONC(:,1) ! ! RETURN @@ -30069,65 +90621,65 @@ SUBROUTINE SUBT3 ! !Indices 61 a 80 ! -!PTERMS(HO2,K024) = -K024*<O3>*<HO2> - PTERMS(:,15,24) = -TPK%K024(:)*PCONC(:,1)*PCONC(:,15) +!PTERMS(NO2,K026) = +K026*<HO2>*<NO> + PTERMS(:,2,27) = +TPK%K026(:)*PCONC(:,10)*PCONC(:,1) ! -!PTERMS(OH,K025) = -K025*<OH>*<HO2> - PTERMS(:,14,25) = -TPK%K025(:)*PCONC(:,14)*PCONC(:,15) +!PTERMS(HO2,K026) = -K026*<HO2>*<NO> + PTERMS(:,10,27) = -TPK%K026(:)*PCONC(:,10)*PCONC(:,1) ! -!PTERMS(HO2,K025) = -K025*<OH>*<HO2> - PTERMS(:,15,25) = -TPK%K025(:)*PCONC(:,14)*PCONC(:,15) +!PTERMS(OH,K026) = +K026*<HO2>*<NO> + PTERMS(:,15,27) = +TPK%K026(:)*PCONC(:,10)*PCONC(:,1) ! -!PTERMS(H2O2,K026) = -K026*<H2O2>*<OH> - PTERMS(:,2,26) = -TPK%K026(:)*PCONC(:,2)*PCONC(:,14) +!PTERMS(NO2,K027) = -K027*<HO2>*<NO2> + PTERMS(:,2,28) = -TPK%K027(:)*PCONC(:,10)*PCONC(:,2) ! -!PTERMS(OH,K026) = -K026*<H2O2>*<OH> - PTERMS(:,14,26) = -TPK%K026(:)*PCONC(:,2)*PCONC(:,14) +!PTERMS(HNO4,K027) = +K027*<HO2>*<NO2> + PTERMS(:,6,28) = +TPK%K027(:)*PCONC(:,10)*PCONC(:,2) ! -!PTERMS(HO2,K026) = +K026*<H2O2>*<OH> - PTERMS(:,15,26) = +TPK%K026(:)*PCONC(:,2)*PCONC(:,14) +!PTERMS(HO2,K027) = -K027*<HO2>*<NO2> + PTERMS(:,10,28) = -TPK%K027(:)*PCONC(:,10)*PCONC(:,2) ! -!PTERMS(H2O2,K027) = +K027*<HO2>*<HO2> - PTERMS(:,2,27) = +TPK%K027(:)*PCONC(:,15)*PCONC(:,15) +!PTERMS(NO2,K028) = +K028*<HNO4> + PTERMS(:,2,29) = +TPK%K028(:)*PCONC(:,6) ! -!PTERMS(HO2,K027) = -K027*<HO2>*<HO2> - PTERMS(:,15,27) = -TPK%K027(:)*PCONC(:,15)*PCONC(:,15) +!PTERMS(HNO4,K028) = -K028*<HNO4> + PTERMS(:,6,29) = -TPK%K028(:)*PCONC(:,6) ! -!PTERMS(H2O2,K028) = +K028*<HO2>*<HO2>*<H2O> - PTERMS(:,2,28) = +TPK%K028(:)*PCONC(:,15)*PCONC(:,15)*TPK%H2O(:) +!PTERMS(HO2,K028) = +K028*<HNO4> + PTERMS(:,10,29) = +TPK%K028(:)*PCONC(:,6) ! -!PTERMS(HO2,K028) = -K028*<HO2>*<HO2>*<H2O> - PTERMS(:,15,28) = -TPK%K028(:)*PCONC(:,15)*PCONC(:,15)*TPK%H2O(:) +!PTERMS(NO2,K029) = +K029*<OH>*<HNO4> + PTERMS(:,2,30) = +TPK%K029(:)*PCONC(:,15)*PCONC(:,6) ! -!PTERMS(NO,K029) = -K029*<O3P>*<NO> - PTERMS(:,3,29) = -TPK%K029(:)*TPK%O3P(:)*PCONC(:,3) +!PTERMS(HNO4,K029) = -K029*<OH>*<HNO4> + PTERMS(:,6,30) = -TPK%K029(:)*PCONC(:,15)*PCONC(:,6) ! -!PTERMS(NO2,K029) = +K029*<O3P>*<NO> - PTERMS(:,4,29) = +TPK%K029(:)*TPK%O3P(:)*PCONC(:,3) +!PTERMS(OH,K029) = -K029*<OH>*<HNO4> + PTERMS(:,15,30) = -TPK%K029(:)*PCONC(:,15)*PCONC(:,6) ! -!PTERMS(NO,K030) = +K030*<O3P>*<NO2> - PTERMS(:,3,30) = +TPK%K030(:)*TPK%O3P(:)*PCONC(:,4) +!PTERMS(O3,K030) = -K030*<HO2>*<O3> + PTERMS(:,3,31) = -TPK%K030(:)*PCONC(:,10)*PCONC(:,3) ! -!PTERMS(NO2,K030) = -K030*<O3P>*<NO2> - PTERMS(:,4,30) = -TPK%K030(:)*TPK%O3P(:)*PCONC(:,4) +!PTERMS(HO2,K030) = -K030*<HO2>*<O3> + PTERMS(:,10,31) = -TPK%K030(:)*PCONC(:,10)*PCONC(:,3) ! -!PTERMS(NO2,K031) = -K031*<O3P>*<NO2> - PTERMS(:,4,31) = -TPK%K031(:)*TPK%O3P(:)*PCONC(:,4) +!PTERMS(OH,K030) = +K030*<HO2>*<O3> + PTERMS(:,15,31) = +TPK%K030(:)*PCONC(:,10)*PCONC(:,3) ! -!PTERMS(NO3,K031) = +K031*<O3P>*<NO2> - PTERMS(:,5,31) = +TPK%K031(:)*TPK%O3P(:)*PCONC(:,4) +!PTERMS(HO2,K031) = -K031*<HO2>*<HO2> + PTERMS(:,10,32) = -TPK%K031(:)*PCONC(:,10)*PCONC(:,10) ! -!PTERMS(NO,K032) = -K032*<OH>*<NO> - PTERMS(:,3,32) = -TPK%K032(:)*PCONC(:,14)*PCONC(:,3) +!PTERMS(H2O2,K031) = +K031*<HO2>*<HO2> + PTERMS(:,12,32) = +TPK%K031(:)*PCONC(:,10)*PCONC(:,10) ! -!PTERMS(HONO,K032) = +K032*<OH>*<NO> - PTERMS(:,7,32) = +TPK%K032(:)*PCONC(:,14)*PCONC(:,3) +!PTERMS(HO2,K032) = -K032*<HO2>*<H2O>*<HO2> + PTERMS(:,10,33) = -TPK%K032(:)*PCONC(:,10)*TPK%H2O(:)*PCONC(:,10) ! -!PTERMS(OH,K032) = -K032*<OH>*<NO> - PTERMS(:,14,32) = -TPK%K032(:)*PCONC(:,14)*PCONC(:,3) +!PTERMS(H2O2,K032) = +K032*<HO2>*<H2O>*<HO2> + PTERMS(:,12,33) = +TPK%K032(:)*PCONC(:,10)*TPK%H2O(:)*PCONC(:,10) ! -!PTERMS(NO2,K033) = -K033*<OH>*<NO2> - PTERMS(:,4,33) = -TPK%K033(:)*PCONC(:,14)*PCONC(:,4) +!PTERMS(NO2,K033) = +0.8*K033*<HO2>*<NO3> + PTERMS(:,2,34) = +0.8*TPK%K033(:)*PCONC(:,10)*PCONC(:,8) ! ! RETURN @@ -30137,65 +90689,65 @@ SUBROUTINE SUBT4 ! !Indices 81 a 100 ! -!PTERMS(HNO3,K033) = +K033*<OH>*<NO2> - PTERMS(:,8,33) = +TPK%K033(:)*PCONC(:,14)*PCONC(:,4) +!PTERMS(HNO3,K033) = +0.2*K033*<HO2>*<NO3> + PTERMS(:,5,34) = +0.2*TPK%K033(:)*PCONC(:,10)*PCONC(:,8) ! -!PTERMS(OH,K033) = -K033*<OH>*<NO2> - PTERMS(:,14,33) = -TPK%K033(:)*PCONC(:,14)*PCONC(:,4) +!PTERMS(NO3,K033) = -K033*<HO2>*<NO3> + PTERMS(:,8,34) = -TPK%K033(:)*PCONC(:,10)*PCONC(:,8) ! -!PTERMS(NO2,K034) = +K034*<OH>*<NO3> - PTERMS(:,4,34) = +TPK%K034(:)*PCONC(:,14)*PCONC(:,5) +!PTERMS(HO2,K033) = -K033*<HO2>*<NO3> + PTERMS(:,10,34) = -TPK%K033(:)*PCONC(:,10)*PCONC(:,8) ! -!PTERMS(NO3,K034) = -K034*<OH>*<NO3> - PTERMS(:,5,34) = -TPK%K034(:)*PCONC(:,14)*PCONC(:,5) +!PTERMS(OH,K033) = +0.8*K033*<HO2>*<NO3> + PTERMS(:,15,34) = +0.8*TPK%K033(:)*PCONC(:,10)*PCONC(:,8) ! -!PTERMS(OH,K034) = -K034*<OH>*<NO3> - PTERMS(:,14,34) = -TPK%K034(:)*PCONC(:,14)*PCONC(:,5) +!PTERMS(O3,K034) = -K034*<O3>*<O> + PTERMS(:,3,35) = -TPK%K034(:)*PCONC(:,3)*TPK%O(:) ! -!PTERMS(HO2,K034) = +K034*<OH>*<NO3> - PTERMS(:,15,34) = +TPK%K034(:)*PCONC(:,14)*PCONC(:,5) +!PTERMS(HO2,K035) = +K035*<OH>*<SO2> + PTERMS(:,10,36) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,13) ! -!PTERMS(NO,K035) = -K035*<HO2>*<NO> - PTERMS(:,3,35) = -TPK%K035(:)*PCONC(:,15)*PCONC(:,3) +!PTERMS(SO2,K035) = -K035*<OH>*<SO2> + PTERMS(:,13,36) = -TPK%K035(:)*PCONC(:,15)*PCONC(:,13) ! -!PTERMS(NO2,K035) = +K035*<HO2>*<NO> - PTERMS(:,4,35) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,3) +!PTERMS(H2SO4,K035) = +K035*<OH>*<SO2> + PTERMS(:,14,36) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,13) ! -!PTERMS(OH,K035) = +K035*<HO2>*<NO> - PTERMS(:,14,35) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,3) +!PTERMS(OH,K035) = -K035*<OH>*<SO2> + PTERMS(:,15,36) = -TPK%K035(:)*PCONC(:,15)*PCONC(:,13) ! -!PTERMS(HO2,K035) = -K035*<HO2>*<NO> - PTERMS(:,15,35) = -TPK%K035(:)*PCONC(:,15)*PCONC(:,3) +!PTERMS(H2O2,K036) = -K036*<H2O2> + PTERMS(:,12,37) = -TPK%K036(:)*PCONC(:,12) ! -!PTERMS(NO2,K036) = -K036*<HO2>*<NO2> - PTERMS(:,4,36) = -TPK%K036(:)*PCONC(:,15)*PCONC(:,4) +!PTERMS(OH,K036) = +2.*K036*<H2O2> + PTERMS(:,15,37) = +2.*TPK%K036(:)*PCONC(:,12) ! -!PTERMS(HNO4,K036) = +K036*<HO2>*<NO2> - PTERMS(:,9,36) = +TPK%K036(:)*PCONC(:,15)*PCONC(:,4) +!PTERMS(HO2,K037) = +K037*<OH>*<H2O2> + PTERMS(:,10,38) = +TPK%K037(:)*PCONC(:,15)*PCONC(:,12) ! -!PTERMS(HO2,K036) = -K036*<HO2>*<NO2> - PTERMS(:,15,36) = -TPK%K036(:)*PCONC(:,15)*PCONC(:,4) +!PTERMS(H2O2,K037) = -K037*<OH>*<H2O2> + PTERMS(:,12,38) = -TPK%K037(:)*PCONC(:,15)*PCONC(:,12) ! -!PTERMS(NO2,K037) = +K037*<HNO4> - PTERMS(:,4,37) = +TPK%K037(:)*PCONC(:,9) +!PTERMS(OH,K037) = -K037*<OH>*<H2O2> + PTERMS(:,15,38) = -TPK%K037(:)*PCONC(:,15)*PCONC(:,12) ! -!PTERMS(HNO4,K037) = -K037*<HNO4> - PTERMS(:,9,37) = -TPK%K037(:)*PCONC(:,9) +!PTERMS(NO,K038) = -K038*<NO>*<O> + PTERMS(:,1,39) = -TPK%K038(:)*PCONC(:,1)*TPK%O(:) ! -!PTERMS(HO2,K037) = +K037*<HNO4> - PTERMS(:,15,37) = +TPK%K037(:)*PCONC(:,9) +!PTERMS(NO2,K038) = +K038*<NO>*<O> + PTERMS(:,2,39) = +TPK%K038(:)*PCONC(:,1)*TPK%O(:) ! -!PTERMS(NO2,K038) = +0.7*K038*<HO2>*<NO3> - PTERMS(:,4,38) = +0.7*TPK%K038(:)*PCONC(:,15)*PCONC(:,5) +!PTERMS(NO2,K039) = +K039*<OH>*<HONO> + PTERMS(:,2,40) = +TPK%K039(:)*PCONC(:,15)*PCONC(:,4) ! -!PTERMS(NO3,K038) = -K038*<HO2>*<NO3> - PTERMS(:,5,38) = -TPK%K038(:)*PCONC(:,15)*PCONC(:,5) +!PTERMS(HONO,K039) = -K039*<OH>*<HONO> + PTERMS(:,4,40) = -TPK%K039(:)*PCONC(:,15)*PCONC(:,4) ! -!PTERMS(HNO3,K038) = +0.3*K038*<HO2>*<NO3> - PTERMS(:,8,38) = +0.3*TPK%K038(:)*PCONC(:,15)*PCONC(:,5) +!PTERMS(OH,K039) = -K039*<OH>*<HONO> + PTERMS(:,15,40) = -TPK%K039(:)*PCONC(:,15)*PCONC(:,4) ! -!PTERMS(OH,K038) = +0.7*K038*<HO2>*<NO3> - PTERMS(:,14,38) = +0.7*TPK%K038(:)*PCONC(:,15)*PCONC(:,5) +!PTERMS(NO2,K040) = +K040*<OH>*<NO3> + PTERMS(:,2,41) = +TPK%K040(:)*PCONC(:,15)*PCONC(:,8) ! ! RETURN @@ -30205,65 +90757,65 @@ SUBROUTINE SUBT5 ! !Indices 101 a 120 ! -!PTERMS(HO2,K038) = -K038*<HO2>*<NO3> - PTERMS(:,15,38) = -TPK%K038(:)*PCONC(:,15)*PCONC(:,5) +!PTERMS(NO3,K040) = -K040*<OH>*<NO3> + PTERMS(:,8,41) = -TPK%K040(:)*PCONC(:,15)*PCONC(:,8) ! -!PTERMS(NO2,K039) = +K039*<OH>*<HONO> - PTERMS(:,4,39) = +TPK%K039(:)*PCONC(:,14)*PCONC(:,7) +!PTERMS(HO2,K040) = +K040*<OH>*<NO3> + PTERMS(:,10,41) = +TPK%K040(:)*PCONC(:,15)*PCONC(:,8) ! -!PTERMS(HONO,K039) = -K039*<OH>*<HONO> - PTERMS(:,7,39) = -TPK%K039(:)*PCONC(:,14)*PCONC(:,7) +!PTERMS(OH,K040) = -K040*<OH>*<NO3> + PTERMS(:,15,41) = -TPK%K040(:)*PCONC(:,15)*PCONC(:,8) ! -!PTERMS(OH,K039) = -K039*<OH>*<HONO> - PTERMS(:,14,39) = -TPK%K039(:)*PCONC(:,14)*PCONC(:,7) +!PTERMS(NO2,K041) = +2.*K041*<NO3>*<NO3> + PTERMS(:,2,42) = +2.*TPK%K041(:)*PCONC(:,8)*PCONC(:,8) ! -!PTERMS(NO3,K040) = +K040*<OH>*<HNO3> - PTERMS(:,5,40) = +TPK%K040(:)*PCONC(:,14)*PCONC(:,8) +!PTERMS(NO3,K041) = -K041*<NO3>*<NO3> + PTERMS(:,8,42) = -TPK%K041(:)*PCONC(:,8)*PCONC(:,8) ! -!PTERMS(HNO3,K040) = -K040*<OH>*<HNO3> - PTERMS(:,8,40) = -TPK%K040(:)*PCONC(:,14)*PCONC(:,8) +!PTERMS(HO2,K042) = -K042*<HO2>*<OH> + PTERMS(:,10,43) = -TPK%K042(:)*PCONC(:,10)*PCONC(:,15) ! -!PTERMS(OH,K040) = -K040*<OH>*<HNO3> - PTERMS(:,14,40) = -TPK%K040(:)*PCONC(:,14)*PCONC(:,8) +!PTERMS(OH,K042) = -K042*<HO2>*<OH> + PTERMS(:,15,43) = -TPK%K042(:)*PCONC(:,10)*PCONC(:,15) ! -!PTERMS(NO2,K041) = +K041*<OH>*<HNO4> - PTERMS(:,4,41) = +TPK%K041(:)*PCONC(:,14)*PCONC(:,9) +!PTERMS(OH,K043) = -K043*<OH>*<CH4> + PTERMS(:,15,44) = -TPK%K043(:)*PCONC(:,15)*TPK%CH4(:) ! -!PTERMS(HNO4,K041) = -K041*<OH>*<HNO4> - PTERMS(:,9,41) = -TPK%K041(:)*PCONC(:,14)*PCONC(:,9) +!PTERMS(RO2T,K043) = +K043*<OH>*<CH4> + PTERMS(:,85,44) = +TPK%K043(:)*PCONC(:,15)*TPK%CH4(:) ! -!PTERMS(OH,K041) = -K041*<OH>*<HNO4> - PTERMS(:,14,41) = -TPK%K041(:)*PCONC(:,14)*PCONC(:,9) +!PTERMS(RO21,K043) = +K043*<OH>*<CH4> + PTERMS(:,86,44) = +TPK%K043(:)*PCONC(:,15)*TPK%CH4(:) ! -!PTERMS(O3,K042) = -K042*<O3>*<NO> - PTERMS(:,1,42) = -TPK%K042(:)*PCONC(:,1)*PCONC(:,3) +!PTERMS(HO2,K044) = +2.0*K044*<HCHO> + PTERMS(:,10,45) = +2.0*TPK%K044(:)*PCONC(:,28) ! -!PTERMS(NO,K042) = -K042*<O3>*<NO> - PTERMS(:,3,42) = -TPK%K042(:)*PCONC(:,1)*PCONC(:,3) +!PTERMS(CO,K044) = +K044*<HCHO> + PTERMS(:,11,45) = +TPK%K044(:)*PCONC(:,28) ! -!PTERMS(NO2,K042) = +K042*<O3>*<NO> - PTERMS(:,4,42) = +TPK%K042(:)*PCONC(:,1)*PCONC(:,3) +!PTERMS(HCHO,K044) = -K044*<HCHO> + PTERMS(:,28,45) = -TPK%K044(:)*PCONC(:,28) ! -!PTERMS(O3,K043) = -K043*<O3>*<NO2> - PTERMS(:,1,43) = -TPK%K043(:)*PCONC(:,1)*PCONC(:,4) +!PTERMS(CO,K045) = +K045*<HCHO> + PTERMS(:,11,46) = +TPK%K045(:)*PCONC(:,28) ! -!PTERMS(NO2,K043) = -K043*<O3>*<NO2> - PTERMS(:,4,43) = -TPK%K043(:)*PCONC(:,1)*PCONC(:,4) +!PTERMS(HCHO,K045) = -K045*<HCHO> + PTERMS(:,28,46) = -TPK%K045(:)*PCONC(:,28) ! -!PTERMS(NO3,K043) = +K043*<O3>*<NO2> - PTERMS(:,5,43) = +TPK%K043(:)*PCONC(:,1)*PCONC(:,4) +!PTERMS(HO2,K046) = +K046*<OH>*<HCHO> + PTERMS(:,10,47) = +TPK%K046(:)*PCONC(:,15)*PCONC(:,28) ! -!PTERMS(NO,K044) = -K044*<NO>*<NO>*<O2> - PTERMS(:,3,44) = -TPK%K044(:)*PCONC(:,3)*PCONC(:,3)*TPK%O2(:) +!PTERMS(CO,K046) = +K046*<OH>*<HCHO> + PTERMS(:,11,47) = +TPK%K046(:)*PCONC(:,15)*PCONC(:,28) ! -!PTERMS(NO2,K044) = +K044*<NO>*<NO>*<O2> - PTERMS(:,4,44) = +TPK%K044(:)*PCONC(:,3)*PCONC(:,3)*TPK%O2(:) +!PTERMS(OH,K046) = -K046*<OH>*<HCHO> + PTERMS(:,15,47) = -TPK%K046(:)*PCONC(:,15)*PCONC(:,28) ! -!PTERMS(NO,K045) = -K045*<NO3>*<NO> - PTERMS(:,3,45) = -TPK%K045(:)*PCONC(:,5)*PCONC(:,3) +!PTERMS(HCHO,K046) = -K046*<OH>*<HCHO> + PTERMS(:,28,47) = -TPK%K046(:)*PCONC(:,15)*PCONC(:,28) ! -!PTERMS(NO2,K045) = +K045*<NO3>*<NO> - PTERMS(:,4,45) = +TPK%K045(:)*PCONC(:,5)*PCONC(:,3) +!PTERMS(HNO3,K047) = +K047*<NO3>*<HCHO> + PTERMS(:,5,48) = +TPK%K047(:)*PCONC(:,8)*PCONC(:,28) ! ! RETURN @@ -30273,65 +90825,65 @@ SUBROUTINE SUBT6 ! !Indices 121 a 140 ! -!PTERMS(NO3,K045) = -K045*<NO3>*<NO> - PTERMS(:,5,45) = -TPK%K045(:)*PCONC(:,5)*PCONC(:,3) +!PTERMS(NO3,K047) = -K047*<NO3>*<HCHO> + PTERMS(:,8,48) = -TPK%K047(:)*PCONC(:,8)*PCONC(:,28) ! -!PTERMS(NO,K046) = +K046*<NO3>*<NO2> - PTERMS(:,3,46) = +TPK%K046(:)*PCONC(:,5)*PCONC(:,4) +!PTERMS(HO2,K047) = +K047*<NO3>*<HCHO> + PTERMS(:,10,48) = +TPK%K047(:)*PCONC(:,8)*PCONC(:,28) ! -!PTERMS(NO2,K046) = -K046*<NO3>*<NO2> - PTERMS(:,4,46) = -TPK%K046(:)*PCONC(:,5)*PCONC(:,4) +!PTERMS(CO,K047) = +K047*<NO3>*<HCHO> + PTERMS(:,11,48) = +TPK%K047(:)*PCONC(:,8)*PCONC(:,28) ! -!PTERMS(NO3,K046) = -K046*<NO3>*<NO2> - PTERMS(:,5,46) = -TPK%K046(:)*PCONC(:,5)*PCONC(:,4) +!PTERMS(HCHO,K047) = -K047*<NO3>*<HCHO> + PTERMS(:,28,48) = -TPK%K047(:)*PCONC(:,8)*PCONC(:,28) ! -!PTERMS(NO2,K047) = -K047*<NO3>*<NO2> - PTERMS(:,4,47) = -TPK%K047(:)*PCONC(:,5)*PCONC(:,4) +!PTERMS(HO2,K048) = +K048*<OH>*<MEOH> + PTERMS(:,10,49) = +TPK%K048(:)*PCONC(:,15)*PCONC(:,32) ! -!PTERMS(NO3,K047) = -K047*<NO3>*<NO2> - PTERMS(:,5,47) = -TPK%K047(:)*PCONC(:,5)*PCONC(:,4) +!PTERMS(OH,K048) = -K048*<OH>*<MEOH> + PTERMS(:,15,49) = -TPK%K048(:)*PCONC(:,15)*PCONC(:,32) ! -!PTERMS(N2O5,K047) = +K047*<NO3>*<NO2> - PTERMS(:,6,47) = +TPK%K047(:)*PCONC(:,5)*PCONC(:,4) +!PTERMS(HCHO,K048) = +K048*<OH>*<MEOH> + PTERMS(:,28,49) = +TPK%K048(:)*PCONC(:,15)*PCONC(:,32) ! -!PTERMS(NO2,K048) = +K048*<N2O5> - PTERMS(:,4,48) = +TPK%K048(:)*PCONC(:,6) +!PTERMS(MEOH,K048) = -K048*<OH>*<MEOH> + PTERMS(:,32,49) = -TPK%K048(:)*PCONC(:,15)*PCONC(:,32) ! -!PTERMS(NO3,K048) = +K048*<N2O5> - PTERMS(:,5,48) = +TPK%K048(:)*PCONC(:,6) +!PTERMS(OH,K049) = -K049*<OH>*<ETHE> + PTERMS(:,15,50) = -TPK%K049(:)*PCONC(:,15)*PCONC(:,16) ! -!PTERMS(N2O5,K048) = -K048*<N2O5> - PTERMS(:,6,48) = -TPK%K048(:)*PCONC(:,6) +!PTERMS(ETHE,K049) = -K049*<OH>*<ETHE> + PTERMS(:,16,50) = -TPK%K049(:)*PCONC(:,15)*PCONC(:,16) ! -!PTERMS(NO2,K049) = +K049*<NO3>*<NO3> - PTERMS(:,4,49) = +TPK%K049(:)*PCONC(:,5)*PCONC(:,5) +!PTERMS(RO2T,K049) = +K049*<OH>*<ETHE> + PTERMS(:,85,50) = +TPK%K049(:)*PCONC(:,15)*PCONC(:,16) ! -!PTERMS(NO3,K049) = -K049*<NO3>*<NO3> - PTERMS(:,5,49) = -TPK%K049(:)*PCONC(:,5)*PCONC(:,5) +!PTERMS(NO3,K050) = -K050*<NO3>*<ETHE> + PTERMS(:,8,51) = -TPK%K050(:)*PCONC(:,8)*PCONC(:,16) ! -!PTERMS(NH3,K050) = -K050*<NH3>*<OH> - PTERMS(:,10,50) = -TPK%K050(:)*PCONC(:,10)*PCONC(:,14) +!PTERMS(ETHE,K050) = -K050*<NO3>*<ETHE> + PTERMS(:,16,51) = -TPK%K050(:)*PCONC(:,8)*PCONC(:,16) ! -!PTERMS(OH,K050) = -K050*<NH3>*<OH> - PTERMS(:,14,50) = -TPK%K050(:)*PCONC(:,10)*PCONC(:,14) +!PTERMS(RO2T,K050) = +K050*<NO3>*<ETHE> + PTERMS(:,85,51) = +TPK%K050(:)*PCONC(:,8)*PCONC(:,16) ! -!PTERMS(OH,K051) = -K051*<OH>*<H2> - PTERMS(:,14,51) = -TPK%K051(:)*PCONC(:,14)*TPK%H2(:) +!PTERMS(O3,K051) = -K051*<O3>*<ETHE> + PTERMS(:,3,52) = -TPK%K051(:)*PCONC(:,3)*PCONC(:,16) ! -!PTERMS(HO2,K051) = +K051*<OH>*<H2> - PTERMS(:,15,51) = +TPK%K051(:)*PCONC(:,14)*TPK%H2(:) +!PTERMS(HO2,K051) = +0.06*K051*<O3>*<ETHE> + PTERMS(:,10,52) = +0.06*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) ! -!PTERMS(SO2,K052) = -K052*<OH>*<SO2> - PTERMS(:,11,52) = -TPK%K052(:)*PCONC(:,14)*PCONC(:,11) +!PTERMS(CO,K051) = +0.315*K051*<O3>*<ETHE> + PTERMS(:,11,52) = +0.315*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) ! -!PTERMS(SULF,K052) = +K052*<OH>*<SO2> - PTERMS(:,12,52) = +TPK%K052(:)*PCONC(:,14)*PCONC(:,11) +!PTERMS(OH,K051) = +0.06*K051*<O3>*<ETHE> + PTERMS(:,15,52) = +0.06*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) ! -!PTERMS(OH,K052) = -K052*<OH>*<SO2> - PTERMS(:,14,52) = -TPK%K052(:)*PCONC(:,14)*PCONC(:,11) +!PTERMS(ETHE,K051) = -K051*<O3>*<ETHE> + PTERMS(:,16,52) = -TPK%K051(:)*PCONC(:,3)*PCONC(:,16) ! -!PTERMS(HO2,K052) = +K052*<OH>*<SO2> - PTERMS(:,15,52) = +TPK%K052(:)*PCONC(:,14)*PCONC(:,11) +!PTERMS(HCHO,K051) = +0.5*K051*<O3>*<ETHE> + PTERMS(:,28,52) = +0.5*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) ! ! RETURN @@ -30341,65 +90893,65 @@ SUBROUTINE SUBT7 ! !Indices 141 a 160 ! -!PTERMS(CO,K053) = -K053*<CO>*<OH> - PTERMS(:,13,53) = -TPK%K053(:)*PCONC(:,13)*PCONC(:,14) +!PTERMS(ORA1,K051) = +0.185*K051*<O3>*<ETHE> + PTERMS(:,43,52) = +0.185*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) ! -!PTERMS(OH,K053) = -K053*<CO>*<OH> - PTERMS(:,14,53) = -TPK%K053(:)*PCONC(:,13)*PCONC(:,14) +!PTERMS(HO2,K052) = +K052*<O>*<ETHE> + PTERMS(:,10,53) = +TPK%K052(:)*TPK%O(:)*PCONC(:,16) ! -!PTERMS(HO2,K053) = +K053*<CO>*<OH> - PTERMS(:,15,53) = +TPK%K053(:)*PCONC(:,13)*PCONC(:,14) +!PTERMS(CO,K052) = +0.6*K052*<O>*<ETHE> + PTERMS(:,11,53) = +0.6*TPK%K052(:)*TPK%O(:)*PCONC(:,16) ! -!PTERMS(CO,K054) = +0.01*K054*<BIO>*<O3P> - PTERMS(:,13,54) = +0.01*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) +!PTERMS(ETHE,K052) = -K052*<O>*<ETHE> + PTERMS(:,16,53) = -TPK%K052(:)*TPK%O(:)*PCONC(:,16) ! -!PTERMS(OH,K054) = +0.02*K054*<BIO>*<O3P> - PTERMS(:,14,54) = +0.02*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) +!PTERMS(RO2T,K052) = +K052*<O>*<ETHE> + PTERMS(:,85,53) = +TPK%K052(:)*TPK%O(:)*PCONC(:,16) ! -!PTERMS(HO2,K054) = +0.28*K054*<BIO>*<O3P> - PTERMS(:,15,54) = +0.28*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) +!PTERMS(RO21,K052) = +0.6*K052*<O>*<ETHE> + PTERMS(:,86,53) = +0.6*TPK%K052(:)*TPK%O(:)*PCONC(:,16) ! -!PTERMS(ALKE,K054) = +0.91868*K054*<BIO>*<O3P> - PTERMS(:,19,54) = +0.91868*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) +!PTERMS(HO2,K053) = +TPK%CF1*K053*<OH>*<ETOH> + PTERMS(:,10,54) = +TPK%CF1*TPK%K053(:)*PCONC(:,15)*PCONC(:,33) ! -!PTERMS(BIO,K054) = -K054*<BIO>*<O3P> - PTERMS(:,20,54) = -TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) +!PTERMS(OH,K053) = -K053*<OH>*<ETOH> + PTERMS(:,15,54) = -TPK%K053(:)*PCONC(:,15)*PCONC(:,33) ! -!PTERMS(HCHO,K054) = +0.05*K054*<BIO>*<O3P> - PTERMS(:,22,54) = +0.05*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) +!PTERMS(ALD2,K053) = +TPK%CF1*K053*<OH>*<ETOH> + PTERMS(:,29,54) = +TPK%CF1*TPK%K053(:)*PCONC(:,15)*PCONC(:,33) ! -!PTERMS(CARBO,K054) = +0.13255*K054*<BIO>*<O3P> - PTERMS(:,25,54) = +0.13255*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) +!PTERMS(ETOH,K053) = -K053*<OH>*<ETOH> + PTERMS(:,33,54) = -TPK%K053(:)*PCONC(:,15)*PCONC(:,33) ! -!PTERMS(XO2,K054) = +0.15*K054*<BIO>*<O3P> - PTERMS(:,41,54) = +0.15*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) +!PTERMS(RO2T,K053) = +TPK%CF2*K053*<OH>*<ETOH> + PTERMS(:,85,54) = +TPK%CF2*TPK%K053(:)*PCONC(:,15)*PCONC(:,33) ! -!PTERMS(ALD,K055) = +K055*<CARBO>*<O3P> - PTERMS(:,23,55) = +TPK%K055(:)*PCONC(:,25)*TPK%O3P(:) +!PTERMS(OH,K054) = -K054*<OH>*<OLEL> + PTERMS(:,15,55) = -TPK%K054(:)*PCONC(:,15)*PCONC(:,17) ! -!PTERMS(CARBO,K055) = -K055*<CARBO>*<O3P> - PTERMS(:,25,55) = -TPK%K055(:)*PCONC(:,25)*TPK%O3P(:) +!PTERMS(OLEL,K054) = -K054*<OH>*<OLEL> + PTERMS(:,17,55) = -TPK%K054(:)*PCONC(:,15)*PCONC(:,17) ! -!PTERMS(OH,K056) = -K056*<CH4>*<OH> - PTERMS(:,14,56) = -TPK%K056(:)*PCONC(:,16)*PCONC(:,14) +!PTERMS(RO2T,K054) = +K054*<OH>*<OLEL> + PTERMS(:,85,55) = +TPK%K054(:)*PCONC(:,15)*PCONC(:,17) ! -!PTERMS(CH4,K056) = -K056*<CH4>*<OH> - PTERMS(:,16,56) = -TPK%K056(:)*PCONC(:,16)*PCONC(:,14) +!PTERMS(NO3,K055) = -K055*<NO3>*<OLEL> + PTERMS(:,8,56) = -TPK%K055(:)*PCONC(:,8)*PCONC(:,17) ! -!PTERMS(MO2,K056) = +K056*<CH4>*<OH> - PTERMS(:,32,56) = +TPK%K056(:)*PCONC(:,16)*PCONC(:,14) +!PTERMS(OLEL,K055) = -K055*<NO3>*<OLEL> + PTERMS(:,17,56) = -TPK%K055(:)*PCONC(:,8)*PCONC(:,17) ! -!PTERMS(OH,K057) = -K057*<ETH>*<OH> - PTERMS(:,14,57) = -TPK%K057(:)*PCONC(:,17)*PCONC(:,14) +!PTERMS(RO2T,K055) = +K055*<NO3>*<OLEL> + PTERMS(:,85,56) = +TPK%K055(:)*PCONC(:,8)*PCONC(:,17) ! -!PTERMS(ETH,K057) = -K057*<ETH>*<OH> - PTERMS(:,17,57) = -TPK%K057(:)*PCONC(:,17)*PCONC(:,14) +!PTERMS(O3,K056) = -K056*<O3>*<OLEL> + PTERMS(:,3,57) = -TPK%K056(:)*PCONC(:,3)*PCONC(:,17) ! -!PTERMS(ALKAP,K057) = +K057*<ETH>*<OH> - PTERMS(:,33,57) = +TPK%K057(:)*PCONC(:,17)*PCONC(:,14) +!PTERMS(HO2,K056) = +0.28*K056*<O3>*<OLEL> + PTERMS(:,10,57) = +0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) ! -!PTERMS(CO,K058) = +0.00878*K058*<ALKA>*<OH> - PTERMS(:,13,58) = +0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(CO,K056) = +0.56*K056*<O3>*<OLEL> + PTERMS(:,11,57) = +0.56*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) ! ! RETURN @@ -30409,65 +90961,65 @@ SUBROUTINE SUBT8 ! !Indices 161 a 180 ! -!PTERMS(OH,K058) = -K058*<ALKA>*<OH> - PTERMS(:,14,58) = -TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(OH,K056) = +0.36*K056*<O3>*<OLEL> + PTERMS(:,15,57) = +0.36*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) ! -!PTERMS(HO2,K058) = +0.12793*K058*<ALKA>*<OH> - PTERMS(:,15,58) = +0.12793*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(OLEL,K056) = -K056*<O3>*<OLEL> + PTERMS(:,17,57) = -TPK%K056(:)*PCONC(:,3)*PCONC(:,17) ! -!PTERMS(ALKA,K058) = -K058*<ALKA>*<OH> - PTERMS(:,18,58) = -TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(ALKL,K056) = +0.1*K056*<O3>*<OLEL> + PTERMS(:,19,57) = +0.1*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) ! -!PTERMS(HCHO,K058) = +0.00140*K058*<ALKA>*<OH> - PTERMS(:,22,58) = +0.00140*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(HCHO,K056) = +0.5*K056*<O3>*<OLEL> + PTERMS(:,28,57) = +0.5*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) ! -!PTERMS(ALD,K058) = +0.08173*K058*<ALKA>*<OH> - PTERMS(:,23,58) = +0.08173*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(ALD2,K056) = +0.5*K056*<O3>*<OLEL> + PTERMS(:,29,57) = +0.5*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) ! -!PTERMS(KET,K058) = +0.03498*K058*<ALKA>*<OH> - PTERMS(:,24,58) = +0.03498*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(ORA1,K056) = +0.12*K056*<O3>*<OLEL> + PTERMS(:,43,57) = +0.12*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) ! -!PTERMS(CARBO,K058) = +0.00835*K058*<ALKA>*<OH> - PTERMS(:,25,58) = +0.00835*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(ORA2,K056) = +0.12*K056*<O3>*<OLEL> + PTERMS(:,44,57) = +0.12*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) ! -!PTERMS(ORA1,K058) = +0.00878*K058*<ALKA>*<OH> - PTERMS(:,30,58) = +0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(RO2T,K056) = +0.28*K056*<O3>*<OLEL> + PTERMS(:,85,57) = +0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) ! -!PTERMS(ALKAP,K058) = +0.87811*K058*<ALKA>*<OH> - PTERMS(:,33,58) = +0.87811*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(RO25,K056) = +0.28*K056*<O3>*<OLEL> + PTERMS(:,87,57) = +0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) ! -!PTERMS(OH,K059) = -K059*<ALKE>*<OH> - PTERMS(:,14,59) = -TPK%K059(:)*PCONC(:,19)*PCONC(:,14) +!PTERMS(OLEL,K057) = -K057*<O>*<OLEL> + PTERMS(:,17,58) = -TPK%K057(:)*TPK%O(:)*PCONC(:,17) ! -!PTERMS(ALKE,K059) = -K059*<ALKE>*<OH> - PTERMS(:,19,59) = -TPK%K059(:)*PCONC(:,19)*PCONC(:,14) +!PTERMS(ALKL,K057) = +0.5*K057*<O>*<OLEL> + PTERMS(:,19,58) = +0.5*TPK%K057(:)*TPK%O(:)*PCONC(:,17) ! -!PTERMS(ALKEP,K059) = +1.02529*K059*<ALKE>*<OH> - PTERMS(:,34,59) = +1.02529*TPK%K059(:)*PCONC(:,19)*PCONC(:,14) +!PTERMS(ALD2,K057) = +0.4*K057*<O>*<OLEL> + PTERMS(:,29,58) = +0.4*TPK%K057(:)*TPK%O(:)*PCONC(:,17) ! -!PTERMS(BIOP,K059) = +0.00000*K059*<ALKE>*<OH> - PTERMS(:,35,59) = +0.00000*TPK%K059(:)*PCONC(:,19)*PCONC(:,14) +!PTERMS(RO2T,K057) = +0.2*K057*<O>*<OLEL> + PTERMS(:,85,58) = +0.2*TPK%K057(:)*TPK%O(:)*PCONC(:,17) ! -!PTERMS(OH,K060) = -K060*<BIO>*<OH> - PTERMS(:,14,60) = -TPK%K060(:)*PCONC(:,20)*PCONC(:,14) +!PTERMS(RO25,K057) = +0.1*K057*<O>*<OLEL> + PTERMS(:,87,58) = +0.1*TPK%K057(:)*TPK%O(:)*PCONC(:,17) ! -!PTERMS(BIO,K060) = -K060*<BIO>*<OH> - PTERMS(:,20,60) = -TPK%K060(:)*PCONC(:,20)*PCONC(:,14) +!PTERMS(OH,K058) = -K058*<OH>*<ALKL> + PTERMS(:,15,59) = -TPK%K058(:)*PCONC(:,15)*PCONC(:,19) ! -!PTERMS(BIOP,K060) = +1.00000*K060*<BIO>*<OH> - PTERMS(:,35,60) = +1.00000*TPK%K060(:)*PCONC(:,20)*PCONC(:,14) +!PTERMS(ALKL,K058) = -K058*<OH>*<ALKL> + PTERMS(:,19,59) = -TPK%K058(:)*PCONC(:,15)*PCONC(:,19) ! -!PTERMS(OH,K061) = -K061*<ARO>*<OH> - PTERMS(:,14,61) = -TPK%K061(:)*PCONC(:,21)*PCONC(:,14) +!PTERMS(RO2T,K058) = +K058*<OH>*<ALKL> + PTERMS(:,85,59) = +TPK%K058(:)*PCONC(:,15)*PCONC(:,19) ! -!PTERMS(HO2,K061) = +0.10318*K061*<ARO>*<OH> - PTERMS(:,15,61) = +0.10318*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) +!PTERMS(RO25,K058) = +K058*<OH>*<ALKL> + PTERMS(:,87,59) = +TPK%K058(:)*PCONC(:,15)*PCONC(:,19) ! -!PTERMS(ARO,K061) = -K061*<ARO>*<OH> - PTERMS(:,21,61) = -TPK%K061(:)*PCONC(:,21)*PCONC(:,14) +!PTERMS(HO2,K059) = +K059*<ALD2> + PTERMS(:,10,60) = +TPK%K059(:)*PCONC(:,29) ! -!PTERMS(PHO,K061) = +0.00276*K061*<ARO>*<OH> - PTERMS(:,36,61) = +0.00276*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) +!PTERMS(CO,K059) = +K059*<ALD2> + PTERMS(:,11,60) = +TPK%K059(:)*PCONC(:,29) ! ! RETURN @@ -30477,65 +91029,65 @@ SUBROUTINE SUBT9 ! !Indices 181 a 200 ! -!PTERMS(ADD,K061) = +0.93968*K061*<ARO>*<OH> - PTERMS(:,37,61) = +0.93968*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) +!PTERMS(ALD2,K059) = -K059*<ALD2> + PTERMS(:,29,60) = -TPK%K059(:)*PCONC(:,29) ! -!PTERMS(XO2,K061) = +0.10318*K061*<ARO>*<OH> - PTERMS(:,41,61) = +0.10318*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) +!PTERMS(RO2T,K059) = +K059*<ALD2> + PTERMS(:,85,60) = +TPK%K059(:)*PCONC(:,29) ! -!PTERMS(CO,K062) = +K062*<HCHO>*<OH> - PTERMS(:,13,62) = +TPK%K062(:)*PCONC(:,22)*PCONC(:,14) +!PTERMS(RO25,K059) = +K059*<ALD2> + PTERMS(:,87,60) = +TPK%K059(:)*PCONC(:,29) ! -!PTERMS(OH,K062) = -K062*<HCHO>*<OH> - PTERMS(:,14,62) = -TPK%K062(:)*PCONC(:,22)*PCONC(:,14) +!PTERMS(OH,K060) = -K060*<OH>*<ALD2> + PTERMS(:,15,61) = -TPK%K060(:)*PCONC(:,15)*PCONC(:,29) ! -!PTERMS(HO2,K062) = +K062*<HCHO>*<OH> - PTERMS(:,15,62) = +TPK%K062(:)*PCONC(:,22)*PCONC(:,14) +!PTERMS(ALD2,K060) = -K060*<OH>*<ALD2> + PTERMS(:,29,61) = -TPK%K060(:)*PCONC(:,15)*PCONC(:,29) ! -!PTERMS(HCHO,K062) = -K062*<HCHO>*<OH> - PTERMS(:,22,62) = -TPK%K062(:)*PCONC(:,22)*PCONC(:,14) +!PTERMS(RO2T,K060) = +K060*<OH>*<ALD2> + PTERMS(:,85,61) = +TPK%K060(:)*PCONC(:,15)*PCONC(:,29) ! -!PTERMS(OH,K063) = -K063*<ALD>*<OH> - PTERMS(:,14,63) = -TPK%K063(:)*PCONC(:,23)*PCONC(:,14) +!PTERMS(HNO3,K061) = +K061*<NO3>*<ALD2> + PTERMS(:,5,62) = +TPK%K061(:)*PCONC(:,8)*PCONC(:,29) ! -!PTERMS(ALD,K063) = -K063*<ALD>*<OH> - PTERMS(:,23,63) = -TPK%K063(:)*PCONC(:,23)*PCONC(:,14) +!PTERMS(NO3,K061) = -K061*<NO3>*<ALD2> + PTERMS(:,8,62) = -TPK%K061(:)*PCONC(:,8)*PCONC(:,29) ! -!PTERMS(CARBOP,K063) = +1.00000*K063*<ALD>*<OH> - PTERMS(:,39,63) = +1.00000*TPK%K063(:)*PCONC(:,23)*PCONC(:,14) +!PTERMS(ALD2,K061) = -K061*<NO3>*<ALD2> + PTERMS(:,29,62) = -TPK%K061(:)*PCONC(:,8)*PCONC(:,29) ! -!PTERMS(OH,K064) = -K064*<KET>*<OH> - PTERMS(:,14,64) = -TPK%K064(:)*PCONC(:,24)*PCONC(:,14) +!PTERMS(RO2T,K061) = +K061*<NO3>*<ALD2> + PTERMS(:,85,62) = +TPK%K061(:)*PCONC(:,8)*PCONC(:,29) ! -!PTERMS(KET,K064) = -K064*<KET>*<OH> - PTERMS(:,24,64) = -TPK%K064(:)*PCONC(:,24)*PCONC(:,14) +!PTERMS(OH,K062) = -K062*<OH>*<KETL> + PTERMS(:,15,63) = -TPK%K062(:)*PCONC(:,15)*PCONC(:,30) ! -!PTERMS(CARBOP,K064) = +1.00000*K064*<KET>*<OH> - PTERMS(:,39,64) = +1.00000*TPK%K064(:)*PCONC(:,24)*PCONC(:,14) +!PTERMS(KETL,K062) = -K062*<OH>*<KETL> + PTERMS(:,30,63) = -TPK%K062(:)*PCONC(:,15)*PCONC(:,30) ! -!PTERMS(CO,K065) = +1.01732*K065*<CARBO>*<OH> - PTERMS(:,13,65) = +1.01732*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(RO2T,K062) = +K062*<OH>*<KETL> + PTERMS(:,85,63) = +TPK%K062(:)*PCONC(:,15)*PCONC(:,30) ! -!PTERMS(OH,K065) = -K065*<CARBO>*<OH> - PTERMS(:,14,65) = -TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(KETL,K063) = -K063*<KETL> + PTERMS(:,30,64) = -TPK%K063(:)*PCONC(:,30) ! -!PTERMS(HO2,K065) = +0.51208*K065*<CARBO>*<OH> - PTERMS(:,15,65) = +0.51208*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(RO2T,K063) = +2.*K063*<KETL> + PTERMS(:,85,64) = +2.*TPK%K063(:)*PCONC(:,30) ! -!PTERMS(HCHO,K065) = +0.00000*K065*<CARBO>*<OH> - PTERMS(:,22,65) = +0.00000*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(RO25,K063) = +K063*<KETL> + PTERMS(:,87,64) = +TPK%K063(:)*PCONC(:,30) ! -!PTERMS(ALD,K065) = +0.06253*K065*<CARBO>*<OH> - PTERMS(:,23,65) = +0.06253*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(OH,K064) = -K064*<OH>*<ISOP> + PTERMS(:,15,65) = -TPK%K064(:)*PCONC(:,15)*PCONC(:,35) ! -!PTERMS(KET,K065) = +0.00853*K065*<CARBO>*<OH> - PTERMS(:,24,65) = +0.00853*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(ISOP,K064) = -K064*<OH>*<ISOP> + PTERMS(:,35,65) = -TPK%K064(:)*PCONC(:,15)*PCONC(:,35) ! -!PTERMS(CARBO,K065) = -K065*<CARBO>*<OH> - PTERMS(:,25,65) = -TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(RO2T,K064) = +K064*<OH>*<ISOP> + PTERMS(:,85,65) = +TPK%K064(:)*PCONC(:,15)*PCONC(:,35) ! -!PTERMS(CARBOP,K065) = +0.51419*K065*<CARBO>*<OH> - PTERMS(:,39,65) = +0.51419*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(NO3,K065) = -K065*<NO3>*<ISOP> + PTERMS(:,8,66) = -TPK%K065(:)*PCONC(:,8)*PCONC(:,35) ! ! RETURN @@ -30545,65 +91097,65 @@ SUBROUTINE SUBT10 ! !Indices 201 a 220 ! -!PTERMS(XO2,K065) = +0.10162*K065*<CARBO>*<OH> - PTERMS(:,41,65) = +0.10162*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(ISOP,K065) = -K065*<NO3>*<ISOP> + PTERMS(:,35,66) = -TPK%K065(:)*PCONC(:,8)*PCONC(:,35) ! -!PTERMS(OH,K066) = -K066*<ORA1>*<OH> - PTERMS(:,14,66) = -TPK%K066(:)*PCONC(:,30)*PCONC(:,14) +!PTERMS(RO2T,K065) = +K065*<NO3>*<ISOP> + PTERMS(:,85,66) = +TPK%K065(:)*PCONC(:,8)*PCONC(:,35) ! -!PTERMS(HO2,K066) = +K066*<ORA1>*<OH> - PTERMS(:,15,66) = +TPK%K066(:)*PCONC(:,30)*PCONC(:,14) +!PTERMS(O3,K066) = -K066*<O3>*<ISOP> + PTERMS(:,3,67) = -TPK%K066(:)*PCONC(:,3)*PCONC(:,35) ! -!PTERMS(ORA1,K066) = -K066*<ORA1>*<OH> - PTERMS(:,30,66) = -TPK%K066(:)*PCONC(:,30)*PCONC(:,14) +!PTERMS(HO2,K066) = +0.366*K066*<O3>*<ISOP> + PTERMS(:,10,67) = +0.366*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) ! -!PTERMS(OH,K067) = -K067*<ORA2>*<OH> - PTERMS(:,14,67) = -TPK%K067(:)*PCONC(:,31)*PCONC(:,14) +!PTERMS(CO,K066) = +0.461*K066*<O3>*<ISOP> + PTERMS(:,11,67) = +0.461*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) ! -!PTERMS(ORA2,K067) = -K067*<ORA2>*<OH> - PTERMS(:,31,67) = -TPK%K067(:)*PCONC(:,31)*PCONC(:,14) +!PTERMS(OH,K066) = +0.664*K066*<O3>*<ISOP> + PTERMS(:,15,67) = +0.664*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) ! -!PTERMS(OH,K068) = -K068*<OP1>*<OH> - PTERMS(:,14,68) = -TPK%K068(:)*PCONC(:,28)*PCONC(:,14) +!PTERMS(OLEL,K066) = +0.054*K066*<O3>*<ISOP> + PTERMS(:,17,67) = +0.054*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) ! -!PTERMS(HCHO,K068) = +0.35*K068*<OP1>*<OH> - PTERMS(:,22,68) = +0.35*TPK%K068(:)*PCONC(:,28)*PCONC(:,14) +!PTERMS(HCHO,K066) = +0.5*K066*<O3>*<ISOP> + PTERMS(:,28,67) = +0.5*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) ! -!PTERMS(OP1,K068) = -K068*<OP1>*<OH> - PTERMS(:,28,68) = -TPK%K068(:)*PCONC(:,28)*PCONC(:,14) +!PTERMS(ISOP,K066) = -K066*<O3>*<ISOP> + PTERMS(:,35,67) = -TPK%K066(:)*PCONC(:,3)*PCONC(:,35) ! -!PTERMS(MO2,K068) = +0.65*K068*<OP1>*<OH> - PTERMS(:,32,68) = +0.65*TPK%K068(:)*PCONC(:,28)*PCONC(:,14) +!PTERMS(MVK,K066) = +0.389*K066*<O3>*<ISOP> + PTERMS(:,39,67) = +0.389*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) ! -!PTERMS(OH,K069) = -K069*<OP2>*<OH> - PTERMS(:,14,69) = -TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(MCR,K066) = +0.17*K066*<O3>*<ISOP> + PTERMS(:,40,67) = +0.17*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) ! -!PTERMS(HO2,K069) = +0.02915*K069*<OP2>*<OH> - PTERMS(:,15,69) = +0.02915*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(ORA1,K066) = +0.121*K066*<O3>*<ISOP> + PTERMS(:,43,67) = +0.121*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) ! -!PTERMS(HCHO,K069) = +0.02915*K069*<OP2>*<OH> - PTERMS(:,22,69) = +0.02915*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(RO2T,K066) = +0.366*K066*<O3>*<ISOP> + PTERMS(:,85,67) = +0.366*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) ! -!PTERMS(ALD,K069) = +0.07335*K069*<OP2>*<OH> - PTERMS(:,23,69) = +0.07335*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(OLEL,K067) = +0.925*K067*<O>*<ISOP> + PTERMS(:,17,68) = +0.925*TPK%K067(:)*TPK%O(:)*PCONC(:,35) ! -!PTERMS(KET,K069) = +0.37591*K069*<OP2>*<OH> - PTERMS(:,24,69) = +0.37591*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(ALD2,K067) = +0.075*K067*<O>*<ISOP> + PTERMS(:,29,68) = +0.075*TPK%K067(:)*TPK%O(:)*PCONC(:,35) ! -!PTERMS(OP2,K069) = -K069*<OP2>*<OH> - PTERMS(:,29,69) = -TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(ISOP,K067) = -K067*<O>*<ISOP> + PTERMS(:,35,68) = -TPK%K067(:)*TPK%O(:)*PCONC(:,35) ! -!PTERMS(ALKAP,K069) = +0.40341*K069*<OP2>*<OH> - PTERMS(:,33,69) = +0.40341*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(OH,K068) = -K068*<OH>*<MTBE> + PTERMS(:,15,69) = -TPK%K068(:)*PCONC(:,15)*PCONC(:,38) ! -!PTERMS(CARBOP,K069) = +0.05413*K069*<OP2>*<OH> - PTERMS(:,39,69) = +0.05413*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(MTBE,K068) = -K068*<OH>*<MTBE> + PTERMS(:,38,69) = -TPK%K068(:)*PCONC(:,15)*PCONC(:,38) ! -!PTERMS(XO2,K069) = +0.09333*K069*<OP2>*<OH> - PTERMS(:,41,69) = +0.09333*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(RO2T,K068) = +K068*<OH>*<MTBE> + PTERMS(:,85,69) = +TPK%K068(:)*PCONC(:,15)*PCONC(:,38) ! -!PTERMS(NO3,K070) = +0.71893*K070*<PAN>*<OH> - PTERMS(:,5,70) = +0.71893*TPK%K070(:)*PCONC(:,27)*PCONC(:,14) +!PTERMS(OH,K069) = -K069*<OH>*<ALCH> + PTERMS(:,15,70) = -TPK%K069(:)*PCONC(:,15)*PCONC(:,34) ! ! RETURN @@ -30613,65 +91165,65 @@ SUBROUTINE SUBT11 ! !Indices 221 a 240 ! -!PTERMS(OH,K070) = -K070*<PAN>*<OH> - PTERMS(:,14,70) = -TPK%K070(:)*PCONC(:,27)*PCONC(:,14) +!PTERMS(ALCH,K069) = -K069*<OH>*<ALCH> + PTERMS(:,34,70) = -TPK%K069(:)*PCONC(:,15)*PCONC(:,34) ! -!PTERMS(HO2,K070) = +0.28107*K070*<PAN>*<OH> - PTERMS(:,15,70) = +0.28107*TPK%K070(:)*PCONC(:,27)*PCONC(:,14) +!PTERMS(RO2T,K069) = +K069*<OH>*<ALCH> + PTERMS(:,85,70) = +TPK%K069(:)*PCONC(:,15)*PCONC(:,34) ! -!PTERMS(HCHO,K070) = +0.57839*K070*<PAN>*<OH> - PTERMS(:,22,70) = +0.57839*TPK%K070(:)*PCONC(:,27)*PCONC(:,14) +!PTERMS(OH,K070) = -K070*<OH>*<KETH> + PTERMS(:,15,71) = -TPK%K070(:)*PCONC(:,15)*PCONC(:,31) ! -!PTERMS(CARBO,K070) = +0.21863*K070*<PAN>*<OH> - PTERMS(:,25,70) = +0.21863*TPK%K070(:)*PCONC(:,27)*PCONC(:,14) +!PTERMS(KETH,K070) = -K070*<OH>*<KETH> + PTERMS(:,31,71) = -TPK%K070(:)*PCONC(:,15)*PCONC(:,31) ! -!PTERMS(PAN,K070) = -K070*<PAN>*<OH> - PTERMS(:,27,70) = -TPK%K070(:)*PCONC(:,27)*PCONC(:,14) +!PTERMS(RO2T,K070) = +K070*<OH>*<KETH> + PTERMS(:,85,71) = +TPK%K070(:)*PCONC(:,15)*PCONC(:,31) ! -!PTERMS(XO2,K070) = +K070*<PAN>*<OH> - PTERMS(:,41,70) = +TPK%K070(:)*PCONC(:,27)*PCONC(:,14) +!PTERMS(KETH,K071) = -K071*<KETH> + PTERMS(:,31,72) = -TPK%K071(:)*PCONC(:,31) ! -!PTERMS(NO2,K071) = +K071*<ONIT>*<OH> - PTERMS(:,4,71) = +TPK%K071(:)*PCONC(:,26)*PCONC(:,14) +!PTERMS(RO2T,K071) = +2.*K071*<KETH> + PTERMS(:,85,72) = +2.*TPK%K071(:)*PCONC(:,31) ! -!PTERMS(OH,K071) = -K071*<ONIT>*<OH> - PTERMS(:,14,71) = -TPK%K071(:)*PCONC(:,26)*PCONC(:,14) +!PTERMS(RO25,K071) = +K071*<KETH> + PTERMS(:,87,72) = +TPK%K071(:)*PCONC(:,31) ! -!PTERMS(ONIT,K071) = -K071*<ONIT>*<OH> - PTERMS(:,26,71) = -TPK%K071(:)*PCONC(:,26)*PCONC(:,14) +!PTERMS(HNO3,K072) = +K072*<NO3>*<AROO> + PTERMS(:,5,73) = +TPK%K072(:)*PCONC(:,8)*PCONC(:,24) ! -!PTERMS(ALKAP,K071) = +1.00000*K071*<ONIT>*<OH> - PTERMS(:,33,71) = +1.00000*TPK%K071(:)*PCONC(:,26)*PCONC(:,14) +!PTERMS(NO3,K072) = -K072*<NO3>*<AROO> + PTERMS(:,8,73) = -TPK%K072(:)*PCONC(:,8)*PCONC(:,24) ! -!PTERMS(NO3,K072) = -K072*<HCHO>*<NO3> - PTERMS(:,5,72) = -TPK%K072(:)*PCONC(:,22)*PCONC(:,5) +!PTERMS(AROO,K072) = -K072*<NO3>*<AROO> + PTERMS(:,24,73) = -TPK%K072(:)*PCONC(:,8)*PCONC(:,24) ! -!PTERMS(HNO3,K072) = +K072*<HCHO>*<NO3> - PTERMS(:,8,72) = +TPK%K072(:)*PCONC(:,22)*PCONC(:,5) +!PTERMS(HO2,K073) = +0.16*K073*<OH>*<AROO> + PTERMS(:,10,74) = +0.16*TPK%K073(:)*PCONC(:,15)*PCONC(:,24) ! -!PTERMS(CO,K072) = +K072*<HCHO>*<NO3> - PTERMS(:,13,72) = +TPK%K072(:)*PCONC(:,22)*PCONC(:,5) +!PTERMS(OH,K073) = -K073*<OH>*<AROO> + PTERMS(:,15,74) = -TPK%K073(:)*PCONC(:,15)*PCONC(:,24) ! -!PTERMS(HO2,K072) = +K072*<HCHO>*<NO3> - PTERMS(:,15,72) = +TPK%K072(:)*PCONC(:,22)*PCONC(:,5) +!PTERMS(AROO,K073) = -K073*<OH>*<AROO> + PTERMS(:,24,74) = -TPK%K073(:)*PCONC(:,15)*PCONC(:,24) ! -!PTERMS(HCHO,K072) = -K072*<HCHO>*<NO3> - PTERMS(:,22,72) = -TPK%K072(:)*PCONC(:,22)*PCONC(:,5) +!PTERMS(RO2T,K073) = +0.1*K073*<OH>*<AROO> + PTERMS(:,85,74) = +0.1*TPK%K073(:)*PCONC(:,15)*PCONC(:,24) ! -!PTERMS(NO3,K073) = -K073*<ALD>*<NO3> - PTERMS(:,5,73) = -TPK%K073(:)*PCONC(:,23)*PCONC(:,5) +!PTERMS(OH,K074) = -K074*<OH>*<OLEH> + PTERMS(:,15,75) = -TPK%K074(:)*PCONC(:,15)*PCONC(:,18) ! -!PTERMS(HNO3,K073) = +K073*<ALD>*<NO3> - PTERMS(:,8,73) = +TPK%K073(:)*PCONC(:,23)*PCONC(:,5) +!PTERMS(OLEH,K074) = -K074*<OH>*<OLEH> + PTERMS(:,18,75) = -TPK%K074(:)*PCONC(:,15)*PCONC(:,18) ! -!PTERMS(ALD,K073) = -K073*<ALD>*<NO3> - PTERMS(:,23,73) = -TPK%K073(:)*PCONC(:,23)*PCONC(:,5) +!PTERMS(RO2T,K074) = +K074*<OH>*<OLEH> + PTERMS(:,85,75) = +TPK%K074(:)*PCONC(:,15)*PCONC(:,18) ! -!PTERMS(CARBOP,K073) = +1.00000*K073*<ALD>*<NO3> - PTERMS(:,39,73) = +1.00000*TPK%K073(:)*PCONC(:,23)*PCONC(:,5) +!PTERMS(NO3,K075) = -K075*<NO3>*<OLEH> + PTERMS(:,8,76) = -TPK%K075(:)*PCONC(:,8)*PCONC(:,18) ! -!PTERMS(NO2,K074) = +0.10530*K074*<CARBO>*<NO3> - PTERMS(:,4,74) = +0.10530*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(OLEH,K075) = -K075*<NO3>*<OLEH> + PTERMS(:,18,76) = -TPK%K075(:)*PCONC(:,8)*PCONC(:,18) ! ! RETURN @@ -30681,4587 +91233,5203 @@ SUBROUTINE SUBT12 ! !Indices 241 a 260 ! -!PTERMS(NO3,K074) = -K074*<CARBO>*<NO3> - PTERMS(:,5,74) = -TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(RO2T,K075) = +K075*<NO3>*<OLEH> + PTERMS(:,85,76) = +TPK%K075(:)*PCONC(:,8)*PCONC(:,18) +! +!PTERMS(O3,K076) = -K076*<O3>*<OLEH> + PTERMS(:,3,77) = -TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(HO2,K076) = +0.28*K076*<O3>*<OLEH> + PTERMS(:,10,77) = +0.28*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(CO,K076) = +0.56*K076*<O3>*<OLEH> + PTERMS(:,11,77) = +0.56*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(OH,K076) = +0.36*K076*<O3>*<OLEH> + PTERMS(:,15,77) = +0.36*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(OLEH,K076) = -K076*<O3>*<OLEH> + PTERMS(:,18,77) = -TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(ALKM,K076) = +0.1*K076*<O3>*<OLEH> + PTERMS(:,20,77) = +0.1*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(HCHO,K076) = +0.5*K076*<O3>*<OLEH> + PTERMS(:,28,77) = +0.5*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(ACID,K076) = +0.12*K076*<O3>*<OLEH> + PTERMS(:,45,77) = +0.12*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(RPR1,K076) = +0.5*K076*<O3>*<OLEH> + PTERMS(:,69,77) = +0.5*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(RO2T,K076) = +0.28*K076*<O3>*<OLEH> + PTERMS(:,85,77) = +0.28*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) +! +!PTERMS(OLEH,K077) = -K077*<O>*<OLEH> + PTERMS(:,18,78) = -TPK%K077(:)*TPK%O(:)*PCONC(:,18) +! +!PTERMS(ALKM,K077) = +0.5*K077*<O>*<OLEH> + PTERMS(:,20,78) = +0.5*TPK%K077(:)*TPK%O(:)*PCONC(:,18) +! +!PTERMS(RPR1,K077) = +0.4*K077*<O>*<OLEH> + PTERMS(:,69,78) = +0.4*TPK%K077(:)*TPK%O(:)*PCONC(:,18) +! +!PTERMS(RO2T,K077) = +0.2*K077*<O>*<OLEH> + PTERMS(:,85,78) = +0.2*TPK%K077(:)*TPK%O(:)*PCONC(:,18) +! +!PTERMS(OH,K078) = -K078*<OH>*<ALKM> + PTERMS(:,15,79) = -TPK%K078(:)*PCONC(:,15)*PCONC(:,20) +! +!PTERMS(ALKM,K078) = -K078*<OH>*<ALKM> + PTERMS(:,20,79) = -TPK%K078(:)*PCONC(:,15)*PCONC(:,20) +! +!PTERMS(RO2T,K078) = +K078*<OH>*<ALKM> + PTERMS(:,85,79) = +TPK%K078(:)*PCONC(:,15)*PCONC(:,20) +! +!PTERMS(HO2,K079) = +0.16*K079*<OH>*<AROL> + PTERMS(:,10,80) = +0.16*TPK%K079(:)*PCONC(:,15)*PCONC(:,23) +! +!PTERMS(OH,K079) = -K079*<OH>*<AROL> + PTERMS(:,15,80) = -TPK%K079(:)*PCONC(:,15)*PCONC(:,23) +! +! +RETURN +END SUBROUTINE SUBT12 +! +SUBROUTINE SUBT13 +! +!Indices 261 a 280 +! +!PTERMS(AROL,K079) = -K079*<OH>*<AROL> + PTERMS(:,23,80) = -TPK%K079(:)*PCONC(:,15)*PCONC(:,23) +! +!PTERMS(AROO,K079) = +0.16*K079*<OH>*<AROL> + PTERMS(:,24,80) = +0.16*TPK%K079(:)*PCONC(:,15)*PCONC(:,23) +! +!PTERMS(RO2T,K079) = +0.06*K079*<OH>*<AROL> + PTERMS(:,85,80) = +0.06*TPK%K079(:)*PCONC(:,15)*PCONC(:,23) +! +!PTERMS(HO2,K080) = +0.16*K080*<OH>*<AROH> + PTERMS(:,10,81) = +0.16*TPK%K080(:)*PCONC(:,15)*PCONC(:,22) +! +!PTERMS(OH,K080) = -K080*<OH>*<AROH> + PTERMS(:,15,81) = -TPK%K080(:)*PCONC(:,15)*PCONC(:,22) +! +!PTERMS(AROH,K080) = -K080*<OH>*<AROH> + PTERMS(:,22,81) = -TPK%K080(:)*PCONC(:,15)*PCONC(:,22) +! +!PTERMS(AROO,K080) = +0.16*K080*<OH>*<AROH> + PTERMS(:,24,81) = +0.16*TPK%K080(:)*PCONC(:,15)*PCONC(:,22) +! +!PTERMS(O3,K081) = +K081*<NO3>*<ARAL> + PTERMS(:,3,82) = +TPK%K081(:)*PCONC(:,8)*PCONC(:,25) +! +!PTERMS(HNO3,K081) = +K081*<NO3>*<ARAL> + PTERMS(:,5,82) = +TPK%K081(:)*PCONC(:,8)*PCONC(:,25) +! +!PTERMS(NO3,K081) = -K081*<NO3>*<ARAL> + PTERMS(:,8,82) = -TPK%K081(:)*PCONC(:,8)*PCONC(:,25) +! +!PTERMS(ARAL,K081) = -K081*<NO3>*<ARAL> + PTERMS(:,25,82) = -TPK%K081(:)*PCONC(:,8)*PCONC(:,25) +! +!PTERMS(ARAC,K081) = +K081*<NO3>*<ARAL> + PTERMS(:,26,82) = +TPK%K081(:)*PCONC(:,8)*PCONC(:,25) +! +!PTERMS(O3,K082) = +TPK%CF39*K082*<OH>*<ARAL> + PTERMS(:,3,83) = +TPK%CF39*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) +! +!PTERMS(HO2,K082) = +TPK%CF48*K082*<OH>*<ARAL> + PTERMS(:,10,83) = +TPK%CF48*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) +! +!PTERMS(OH,K082) = -K082*<OH>*<ARAL> + PTERMS(:,15,83) = -TPK%K082(:)*PCONC(:,15)*PCONC(:,25) +! +!PTERMS(ARAL,K082) = -K082*<OH>*<ARAL> + PTERMS(:,25,83) = -TPK%K082(:)*PCONC(:,15)*PCONC(:,25) +! +!PTERMS(ARAC,K082) = +TPK%CF39*K082*<OH>*<ARAL> + PTERMS(:,26,83) = +TPK%CF39*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) +! +!PTERMS(RPRL,K082) = +0.9983609*K082*<OH>*<ARAL> + PTERMS(:,75,83) = +0.9983609*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) +! +!PTERMS(RO2T,K082) = +TPK%CF45*K082*<OH>*<ARAL> + PTERMS(:,85,83) = +TPK%CF45*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) +! +!PTERMS(HO2,K083) = +0.16*K083*<OH>*<ARAC> + PTERMS(:,10,84) = +0.16*TPK%K083(:)*PCONC(:,15)*PCONC(:,26) +! +! +RETURN +END SUBROUTINE SUBT13 +! +SUBROUTINE SUBT14 +! +!Indices 281 a 300 +! +!PTERMS(OH,K083) = -K083*<OH>*<ARAC> + PTERMS(:,15,84) = -TPK%K083(:)*PCONC(:,15)*PCONC(:,26) +! +!PTERMS(ARAC,K083) = -K083*<OH>*<ARAC> + PTERMS(:,26,84) = -TPK%K083(:)*PCONC(:,15)*PCONC(:,26) +! +!PTERMS(URG7,K083) = +0.1599999*K083*<OH>*<ARAC> + PTERMS(:,60,84) = +0.1599999*TPK%K083(:)*PCONC(:,15)*PCONC(:,26) +! +!PTERMS(RO2T,K083) = +0.1*K083*<OH>*<ARAC> + PTERMS(:,85,84) = +0.1*TPK%K083(:)*PCONC(:,15)*PCONC(:,26) +! +!PTERMS(OH,K084) = -K084*<OH>*<BIOL> + PTERMS(:,15,85) = -TPK%K084(:)*PCONC(:,15)*PCONC(:,36) +! +!PTERMS(BIOL,K084) = -K084*<OH>*<BIOL> + PTERMS(:,36,85) = -TPK%K084(:)*PCONC(:,15)*PCONC(:,36) +! +!PTERMS(RO2T,K084) = +K084*<OH>*<BIOL> + PTERMS(:,85,85) = +TPK%K084(:)*PCONC(:,15)*PCONC(:,36) +! +!PTERMS(NO3,K085) = -K085*<NO3>*<BIOL> + PTERMS(:,8,86) = -TPK%K085(:)*PCONC(:,8)*PCONC(:,36) +! +!PTERMS(BIOL,K085) = -K085*<NO3>*<BIOL> + PTERMS(:,36,86) = -TPK%K085(:)*PCONC(:,8)*PCONC(:,36) +! +!PTERMS(RO2T,K085) = +K085*<NO3>*<BIOL> + PTERMS(:,85,86) = +TPK%K085(:)*PCONC(:,8)*PCONC(:,36) +! +!PTERMS(O3,K086) = -K086*<O3>*<BIOL> + PTERMS(:,3,87) = -TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(HO2,K086) = +0.445*K086*<O3>*<BIOL> + PTERMS(:,10,87) = +0.445*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(CO,K086) = +0.445*K086*<O3>*<BIOL> + PTERMS(:,11,87) = +0.445*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(H2O2,K086) = +0.055*K086*<O3>*<BIOL> + PTERMS(:,12,87) = +0.055*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(OH,K086) = +0.89*K086*<O3>*<BIOL> + PTERMS(:,15,87) = +0.89*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(BIOL,K086) = -K086*<O3>*<BIOL> + PTERMS(:,36,87) = -TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(URG4,K086) = +5.5000000E-02*K086*<O3>*<BIOL> + PTERMS(:,53,87) = +5.5000000E-02*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(RPR3,K086) = +0.055*K086*<O3>*<BIOL> + PTERMS(:,57,87) = +0.055*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(RO2T,K086) = +0.445*K086*<O3>*<BIOL> + PTERMS(:,85,87) = +0.445*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) +! +!PTERMS(BIOL,K087) = -K087*<O>*<BIOL> + PTERMS(:,36,88) = -TPK%K087(:)*TPK%O(:)*PCONC(:,36) +! +! +RETURN +END SUBROUTINE SUBT14 +! +SUBROUTINE SUBT15 +! +!Indices 301 a 320 +! +!PTERMS(URG10,K087) = +0.7500000*K087*<O>*<BIOL> + PTERMS(:,68,88) = +0.7500000*TPK%K087(:)*TPK%O(:)*PCONC(:,36) +! +!PTERMS(OH,K088) = -K088*<OH>*<BIOH> + PTERMS(:,15,89) = -TPK%K088(:)*PCONC(:,15)*PCONC(:,37) +! +!PTERMS(BIOH,K088) = -K088*<OH>*<BIOH> + PTERMS(:,37,89) = -TPK%K088(:)*PCONC(:,15)*PCONC(:,37) +! +!PTERMS(RO2T,K088) = +K088*<OH>*<BIOH> + PTERMS(:,85,89) = +TPK%K088(:)*PCONC(:,15)*PCONC(:,37) +! +!PTERMS(NO3,K089) = -K089*<NO3>*<BIOH> + PTERMS(:,8,90) = -TPK%K089(:)*PCONC(:,8)*PCONC(:,37) +! +!PTERMS(BIOH,K089) = -K089*<NO3>*<BIOH> + PTERMS(:,37,90) = -TPK%K089(:)*PCONC(:,8)*PCONC(:,37) +! +!PTERMS(RO2T,K089) = +K089*<NO3>*<BIOH> + PTERMS(:,85,90) = +TPK%K089(:)*PCONC(:,8)*PCONC(:,37) +! +!PTERMS(O3,K090) = -K090*<O3>*<BIOH> + PTERMS(:,3,91) = -TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +! +!PTERMS(CO,K090) = +0.445*K090*<O3>*<BIOH> + PTERMS(:,11,91) = +0.445*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +! +!PTERMS(H2O2,K090) = +0.055*K090*<O3>*<BIOH> + PTERMS(:,12,91) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +! +!PTERMS(OH,K090) = +0.89*K090*<O3>*<BIOH> + PTERMS(:,15,91) = +0.89*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +! +!PTERMS(BIOH,K090) = -K090*<O3>*<BIOH> + PTERMS(:,37,91) = -TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +! +!PTERMS(UR8,K090) = +0.055*K090*<O3>*<BIOH> + PTERMS(:,54,91) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +! +!PTERMS(UR7,K090) = +0.055*K090*<O3>*<BIOH> + PTERMS(:,56,91) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +! +!PTERMS(RO2T,K090) = +0.89*K090*<O3>*<BIOH> + PTERMS(:,85,91) = +0.89*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) +! +!PTERMS(BIOH,K091) = -K091*<O>*<BIOH> + PTERMS(:,37,92) = -TPK%K091(:)*TPK%O(:)*PCONC(:,37) +! +!PTERMS(HO2,K092) = +0.16*K092*<OH>*<PAH> + PTERMS(:,10,93) = +0.16*TPK%K092(:)*PCONC(:,15)*PCONC(:,27) +! +!PTERMS(OH,K092) = -K092*<OH>*<PAH> + PTERMS(:,15,93) = -TPK%K092(:)*PCONC(:,15)*PCONC(:,27) +! +!PTERMS(PAH,K092) = -K092*<OH>*<PAH> + PTERMS(:,27,93) = -TPK%K092(:)*PCONC(:,15)*PCONC(:,27) +! +!PTERMS(URG8,K092) = +0.1600000*K092*<OH>*<PAH> + PTERMS(:,64,93) = +0.1600000*TPK%K092(:)*PCONC(:,15)*PCONC(:,27) +! +! +RETURN +END SUBROUTINE SUBT15 +! +SUBROUTINE SUBT16 +! +!Indices 321 a 340 +! +!PTERMS(RO2T,K092) = +0.1*K092*<OH>*<PAH> + PTERMS(:,85,93) = +0.1*TPK%K092(:)*PCONC(:,15)*PCONC(:,27) +! +!PTERMS(OH,K093) = -K093*<OH>*<ALKH> + PTERMS(:,15,94) = -TPK%K093(:)*PCONC(:,15)*PCONC(:,21) +! +!PTERMS(ALKH,K093) = -K093*<OH>*<ALKH> + PTERMS(:,21,94) = -TPK%K093(:)*PCONC(:,15)*PCONC(:,21) +! +!PTERMS(RO2T,K093) = +K093*<OH>*<ALKH> + PTERMS(:,85,94) = +TPK%K093(:)*PCONC(:,15)*PCONC(:,21) +! +!PTERMS(HO2,K094) = -K094*<HO2>*<RO2T> + PTERMS(:,10,95) = -TPK%K094(:)*PCONC(:,10)*PCONC(:,85) +! +!PTERMS(RO2T,K094) = -K094*<HO2>*<RO2T> + PTERMS(:,85,95) = -TPK%K094(:)*PCONC(:,10)*PCONC(:,85) +! +!PTERMS(NO,K095) = -K095*<NO>*<RO2T> + PTERMS(:,1,96) = -TPK%K095(:)*PCONC(:,1)*PCONC(:,85) +! +!PTERMS(RO2T,K095) = -K095*<NO>*<RO2T> + PTERMS(:,85,96) = -TPK%K095(:)*PCONC(:,1)*PCONC(:,85) +! +!PTERMS(RO2T,K096) = -K096*<RO2T>*<RO2T> + PTERMS(:,85,97) = -TPK%K096(:)*PCONC(:,85)*PCONC(:,85) +! +!PTERMS(RO2T,K097) = +K097*<RAD2> + PTERMS(:,85,98) = +TPK%K097(:)*TPK%RAD2(:) +! +!PTERMS(RO2T,K098) = +K098*<RAD3> + PTERMS(:,85,99) = +TPK%K098(:)*TPK%RAD3(:) +! +!PTERMS(RO2T,K099) = +K099*<RAD4> + PTERMS(:,85,100) = +TPK%K099(:)*TPK%RAD4(:) +! +!PTERMS(RO2T,K100) = +K100*<RAD5> + PTERMS(:,85,101) = +TPK%K100(:)*TPK%RAD5(:) +! +!PTERMS(RO2T,K101) = +K101*<RAD6> + PTERMS(:,85,102) = +TPK%K101(:)*TPK%RAD6(:) +! +!PTERMS(RO2T,K102) = +K102*<RAD7> + PTERMS(:,85,103) = +TPK%K102(:)*TPK%RAD7(:) +! +!PTERMS(NO2,K103) = -K103*<NO2>*<RAD1> + PTERMS(:,2,104) = -TPK%K103(:)*PCONC(:,2)*TPK%RAD1(:) +! +!PTERMS(RPR4,K103) = +K103*<NO2>*<RAD1> + PTERMS(:,61,104) = +TPK%K103(:)*PCONC(:,2)*TPK%RAD1(:) +! +!PTERMS(NO2,K104) = -K104*<NO2>*<RAD2> + PTERMS(:,2,105) = -TPK%K104(:)*PCONC(:,2)*TPK%RAD2(:) +! +!PTERMS(RPR4,K104) = +K104*<NO2>*<RAD2> + PTERMS(:,61,105) = +TPK%K104(:)*PCONC(:,2)*TPK%RAD2(:) +! +!PTERMS(NO2,K105) = -K105*<NO2>*<RAD3> + PTERMS(:,2,106) = -TPK%K105(:)*PCONC(:,2)*TPK%RAD3(:) +! +! +RETURN +END SUBROUTINE SUBT16 +! +SUBROUTINE SUBT17 +! +!Indices 341 a 360 +! +!PTERMS(NO2,K106) = -K106*<NO2>*<RAD4> + PTERMS(:,2,107) = -TPK%K106(:)*PCONC(:,2)*TPK%RAD4(:) +! +!PTERMS(NO2,K107) = -K107*<NO2>*<RAD5> + PTERMS(:,2,108) = -TPK%K107(:)*PCONC(:,2)*TPK%RAD5(:) +! +!PTERMS(RPR5,K107) = +K107*<NO2>*<RAD5> + PTERMS(:,70,108) = +TPK%K107(:)*PCONC(:,2)*TPK%RAD5(:) +! +!PTERMS(NO2,K108) = -K108*<NO2>*<RAD6> + PTERMS(:,2,109) = -TPK%K108(:)*PCONC(:,2)*TPK%RAD6(:) +! +!PTERMS(URG7,K108) = +0.9999993*K108*<NO2>*<RAD6> + PTERMS(:,60,109) = +0.9999993*TPK%K108(:)*PCONC(:,2)*TPK%RAD6(:) +! +!PTERMS(NO2,K109) = -K109*<NO2>*<RAD7> + PTERMS(:,2,110) = -TPK%K109(:)*PCONC(:,2)*TPK%RAD7(:) +! +!PTERMS(URG8,K109) = +1.0000000*K109*<NO2>*<RAD7> + PTERMS(:,64,110) = +1.0000000*TPK%K109(:)*PCONC(:,2)*TPK%RAD7(:) +! +!PTERMS(NO,K110) = -K110*<NO>*<RO21> + PTERMS(:,1,111) = -TPK%K110(:)*PCONC(:,1)*PCONC(:,86) +! +!PTERMS(NO2,K110) = +K110*<NO>*<RO21> + PTERMS(:,2,111) = +TPK%K110(:)*PCONC(:,1)*PCONC(:,86) +! +!PTERMS(HO2,K110) = +K110*<NO>*<RO21> + PTERMS(:,10,111) = +TPK%K110(:)*PCONC(:,1)*PCONC(:,86) +! +!PTERMS(HCHO,K110) = +K110*<NO>*<RO21> + PTERMS(:,28,111) = +TPK%K110(:)*PCONC(:,1)*PCONC(:,86) +! +!PTERMS(RO21,K110) = -K110*<NO>*<RO21> + PTERMS(:,86,111) = -TPK%K110(:)*PCONC(:,1)*PCONC(:,86) +! +!PTERMS(HO2,K111) = +K111*<RO2T>*<RO21> + PTERMS(:,10,112) = +TPK%K111(:)*PCONC(:,85)*PCONC(:,86) +! +!PTERMS(HCHO,K111) = +K111*<RO2T>*<RO21> + PTERMS(:,28,112) = +TPK%K111(:)*PCONC(:,85)*PCONC(:,86) +! +!PTERMS(RO2T,K111) = -K111*<RO2T>*<RO21> + PTERMS(:,85,112) = -TPK%K111(:)*PCONC(:,85)*PCONC(:,86) +! +!PTERMS(RO21,K111) = -K111*<RO2T>*<RO21> + PTERMS(:,86,112) = -TPK%K111(:)*PCONC(:,85)*PCONC(:,86) +! +!PTERMS(HO2,K112) = -K112*<HO2>*<RO21> + PTERMS(:,10,113) = -TPK%K112(:)*PCONC(:,10)*PCONC(:,86) +! +!PTERMS(OH,K112) = +K112*<HO2>*<RO21> + PTERMS(:,15,113) = +TPK%K112(:)*PCONC(:,10)*PCONC(:,86) +! +!PTERMS(HCHO,K112) = +K112*<HO2>*<RO21> + PTERMS(:,28,113) = +TPK%K112(:)*PCONC(:,10)*PCONC(:,86) +! +!PTERMS(RO21,K112) = -K112*<HO2>*<RO21> + PTERMS(:,86,113) = -TPK%K112(:)*PCONC(:,10)*PCONC(:,86) +! +! +RETURN +END SUBROUTINE SUBT17 +! +SUBROUTINE SUBT18 +! +!Indices 361 a 380 +! +!PTERMS(NO,K113) = -K113*<NO>*<RO22> + PTERMS(:,1,114) = -TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) +! +!PTERMS(NO2,K113) = +K113*<NO>*<RO22> + PTERMS(:,2,114) = +TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) +! +!PTERMS(HO2,K113) = +K113*<NO>*<RO22> + PTERMS(:,10,114) = +TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) +! +!PTERMS(HCHO,K113) = +K113*<NO>*<RO22> + PTERMS(:,28,114) = +TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) +! +!PTERMS(ALD2,K113) = +K113*<NO>*<RO22> + PTERMS(:,29,114) = +TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) +! +!PTERMS(HO2,K114) = +K114*<RO2T>*<RO22> + PTERMS(:,10,115) = +TPK%K114(:)*PCONC(:,85)*TPK%RO22(:) +! +!PTERMS(HCHO,K114) = +K114*<RO2T>*<RO22> + PTERMS(:,28,115) = +TPK%K114(:)*PCONC(:,85)*TPK%RO22(:) +! +!PTERMS(ALD2,K114) = +K114*<RO2T>*<RO22> + PTERMS(:,29,115) = +TPK%K114(:)*PCONC(:,85)*TPK%RO22(:) +! +!PTERMS(RO2T,K114) = -K114*<RO2T>*<RO22> + PTERMS(:,85,115) = -TPK%K114(:)*PCONC(:,85)*TPK%RO22(:) +! +!PTERMS(HO2,K115) = -K115*<HO2>*<RO22> + PTERMS(:,10,116) = -TPK%K115(:)*PCONC(:,10)*TPK%RO22(:) +! +!PTERMS(OH,K115) = +K115*<HO2>*<RO22> + PTERMS(:,15,116) = +TPK%K115(:)*PCONC(:,10)*TPK%RO22(:) +! +!PTERMS(HCHO,K115) = +K115*<HO2>*<RO22> + PTERMS(:,28,116) = +TPK%K115(:)*PCONC(:,10)*TPK%RO22(:) +! +!PTERMS(ALD2,K115) = +K115*<HO2>*<RO22> + PTERMS(:,29,116) = +TPK%K115(:)*PCONC(:,10)*TPK%RO22(:) +! +!PTERMS(NO,K116) = -K116*<NO>*<RO23> + PTERMS(:,1,117) = -TPK%K116(:)*PCONC(:,1)*TPK%RO23(:) +! +!PTERMS(NO2,K116) = +2.*K116*<NO>*<RO23> + PTERMS(:,2,117) = +2.*TPK%K116(:)*PCONC(:,1)*TPK%RO23(:) +! +!PTERMS(HCHO,K116) = +K116*<NO>*<RO23> + PTERMS(:,28,117) = +TPK%K116(:)*PCONC(:,1)*TPK%RO23(:) +! +!PTERMS(ALD2,K116) = +K116*<NO>*<RO23> + PTERMS(:,29,117) = +TPK%K116(:)*PCONC(:,1)*TPK%RO23(:) +! +!PTERMS(NO2,K117) = +K117*<RO2T>*<RO23> + PTERMS(:,2,118) = +TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) +! +!PTERMS(HO2,K117) = +K117*<RO2T>*<RO23> + PTERMS(:,10,118) = +TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) +! +!PTERMS(HCHO,K117) = +K117*<RO2T>*<RO23> + PTERMS(:,28,118) = +TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) +! +! +RETURN +END SUBROUTINE SUBT18 +! +SUBROUTINE SUBT19 +! +!Indices 381 a 400 +! +!PTERMS(ALD2,K117) = +K117*<RO2T>*<RO23> + PTERMS(:,29,118) = +TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) +! +!PTERMS(RO2T,K117) = -K117*<RO2T>*<RO23> + PTERMS(:,85,118) = -TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) +! +!PTERMS(NO2,K118) = +K118*<HO2>*<RO23> + PTERMS(:,2,119) = +TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) +! +!PTERMS(HO2,K118) = -K118*<HO2>*<RO23> + PTERMS(:,10,119) = -TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) +! +!PTERMS(OH,K118) = +K118*<HO2>*<RO23> + PTERMS(:,15,119) = +TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) +! +!PTERMS(HCHO,K118) = +K118*<HO2>*<RO23> + PTERMS(:,28,119) = +TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) +! +!PTERMS(ALD2,K118) = +K118*<HO2>*<RO23> + PTERMS(:,29,119) = +TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) +! +!PTERMS(NO,K119) = -K119*<NO>*<RO24> + PTERMS(:,1,120) = -TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) +! +!PTERMS(NO2,K119) = +K119*<NO>*<RO24> + PTERMS(:,2,120) = +TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) +! +!PTERMS(HO2,K119) = +K119*<NO>*<RO24> + PTERMS(:,10,120) = +TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) +! +!PTERMS(CO,K119) = +K119*<NO>*<RO24> + PTERMS(:,11,120) = +TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) +! +!PTERMS(HCHO,K119) = +K119*<NO>*<RO24> + PTERMS(:,28,120) = +TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) +! +!PTERMS(HO2,K120) = +K120*<RO2T>*<RO24> + PTERMS(:,10,121) = +TPK%K120(:)*PCONC(:,85)*TPK%RO24(:) +! +!PTERMS(CO,K120) = +K120*<RO2T>*<RO24> + PTERMS(:,11,121) = +TPK%K120(:)*PCONC(:,85)*TPK%RO24(:) +! +!PTERMS(HCHO,K120) = +K120*<RO2T>*<RO24> + PTERMS(:,28,121) = +TPK%K120(:)*PCONC(:,85)*TPK%RO24(:) +! +!PTERMS(RO2T,K120) = -K120*<RO2T>*<RO24> + PTERMS(:,85,121) = -TPK%K120(:)*PCONC(:,85)*TPK%RO24(:) +! +!PTERMS(HO2,K121) = -K121*<HO2>*<RO24> + PTERMS(:,10,122) = -TPK%K121(:)*PCONC(:,10)*TPK%RO24(:) +! +!PTERMS(CO,K121) = +K121*<HO2>*<RO24> + PTERMS(:,11,122) = +TPK%K121(:)*PCONC(:,10)*TPK%RO24(:) +! +!PTERMS(OH,K121) = +K121*<HO2>*<RO24> + PTERMS(:,15,122) = +TPK%K121(:)*PCONC(:,10)*TPK%RO24(:) +! +!PTERMS(HCHO,K121) = +K121*<HO2>*<RO24> + PTERMS(:,28,122) = +TPK%K121(:)*PCONC(:,10)*TPK%RO24(:) +! +! +RETURN +END SUBROUTINE SUBT19 +! +SUBROUTINE SUBT20 +! +!Indices 401 a 420 +! +!PTERMS(NO,K122) = -K122*<NO>*<RO25> + PTERMS(:,1,123) = -TPK%K122(:)*PCONC(:,1)*PCONC(:,87) +! +!PTERMS(NO2,K122) = +TPK%CF4*K122*<NO>*<RO25> + PTERMS(:,2,123) = +TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87) +! +!PTERMS(HO2,K122) = +TPK%CF4*K122*<NO>*<RO25> + PTERMS(:,10,123) = +TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87) +! +!PTERMS(ALKL,K122) = +TPK%CF3*K122*<NO>*<RO25> + PTERMS(:,19,123) = +TPK%CF3*TPK%K122(:)*PCONC(:,1)*PCONC(:,87) +! +!PTERMS(ALD2,K122) = +TPK%CF4*K122*<NO>*<RO25> + PTERMS(:,29,123) = +TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87) +! +!PTERMS(RO25,K122) = -K122*<NO>*<RO25> + PTERMS(:,87,123) = -TPK%K122(:)*PCONC(:,1)*PCONC(:,87) +! +!PTERMS(HO2,K123) = +K123*<RO2T>*<RO25> + PTERMS(:,10,124) = +TPK%K123(:)*PCONC(:,85)*PCONC(:,87) +! +!PTERMS(ALD2,K123) = +K123*<RO2T>*<RO25> + PTERMS(:,29,124) = +TPK%K123(:)*PCONC(:,85)*PCONC(:,87) +! +!PTERMS(RO2T,K123) = -K123*<RO2T>*<RO25> + PTERMS(:,85,124) = -TPK%K123(:)*PCONC(:,85)*PCONC(:,87) +! +!PTERMS(RO25,K123) = -K123*<RO2T>*<RO25> + PTERMS(:,87,124) = -TPK%K123(:)*PCONC(:,85)*PCONC(:,87) +! +!PTERMS(HO2,K124) = -K124*<HO2>*<RO25> + PTERMS(:,10,125) = -TPK%K124(:)*PCONC(:,10)*PCONC(:,87) +! +!PTERMS(OH,K124) = +K124*<HO2>*<RO25> + PTERMS(:,15,125) = +TPK%K124(:)*PCONC(:,10)*PCONC(:,87) +! +!PTERMS(ALD2,K124) = +K124*<HO2>*<RO25> + PTERMS(:,29,125) = +TPK%K124(:)*PCONC(:,10)*PCONC(:,87) +! +!PTERMS(RO25,K124) = -K124*<HO2>*<RO25> + PTERMS(:,87,125) = -TPK%K124(:)*PCONC(:,10)*PCONC(:,87) +! +!PTERMS(NO,K125) = -K125*<NO>*<RO26> + PTERMS(:,1,126) = -TPK%K125(:)*PCONC(:,1)*TPK%RO26(:) +! +!PTERMS(NO2,K125) = +K125*<NO>*<RO26> + PTERMS(:,2,126) = +TPK%K125(:)*PCONC(:,1)*TPK%RO26(:) +! +!PTERMS(RO2T,K125) = +K125*<NO>*<RO26> + PTERMS(:,85,126) = +TPK%K125(:)*PCONC(:,1)*TPK%RO26(:) +! +!PTERMS(RO25,K125) = +K125*<NO>*<RO26> + PTERMS(:,87,126) = +TPK%K125(:)*PCONC(:,1)*TPK%RO26(:) +! +!PTERMS(NO2,K126) = -K126*<NO2>*<RO26> + PTERMS(:,2,127) = -TPK%K126(:)*PCONC(:,2)*TPK%RO26(:) +! +!PTERMS(PAN1,K126) = +K126*<NO2>*<RO26> + PTERMS(:,77,127) = +TPK%K126(:)*PCONC(:,2)*TPK%RO26(:) +! +! +RETURN +END SUBROUTINE SUBT20 +! +SUBROUTINE SUBT21 +! +!Indices 421 a 440 +! +!PTERMS(NO2,K127) = -K127*<NO2>*<RO28> + PTERMS(:,2,128) = -TPK%K127(:)*PCONC(:,2)*TPK%RO28(:) +! +!PTERMS(PAN2,K127) = +K127*<NO2>*<RO28> + PTERMS(:,78,128) = +TPK%K127(:)*PCONC(:,2)*TPK%RO28(:) +! +!PTERMS(NO2,K128) = -K128*<NO2>*<RO239> + PTERMS(:,2,129) = -TPK%K128(:)*PCONC(:,2)*TPK%RO239(:) +! +!PTERMS(PAN3,K128) = +K128*<NO2>*<RO239> + PTERMS(:,79,129) = +TPK%K128(:)*PCONC(:,2)*TPK%RO239(:) +! +!PTERMS(NO2,K129) = -K129*<NO2>*<RO248> + PTERMS(:,2,130) = -TPK%K129(:)*PCONC(:,2)*TPK%RO248(:) +! +!PTERMS(PAN4,K129) = +K129*<NO2>*<RO248> + PTERMS(:,80,130) = +TPK%K129(:)*PCONC(:,2)*TPK%RO248(:) +! +!PTERMS(NO2,K130) = -K130*<NO2>*<RO250> + PTERMS(:,2,131) = -TPK%K130(:)*PCONC(:,2)*TPK%RO250(:) +! +!PTERMS(APAN,K130) = +K130*<NO2>*<RO250> + PTERMS(:,76,131) = +TPK%K130(:)*PCONC(:,2)*TPK%RO250(:) +! +!PTERMS(NO2,K131) = -K131*<NO2>*<RO254> + PTERMS(:,2,132) = -TPK%K131(:)*PCONC(:,2)*TPK%RO254(:) +! +!PTERMS(PAN6,K131) = +K131*<NO2>*<RO254> + PTERMS(:,81,132) = +TPK%K131(:)*PCONC(:,2)*TPK%RO254(:) +! +!PTERMS(NO2,K132) = -K132*<NO2>*<RO255> + PTERMS(:,2,133) = -TPK%K132(:)*PCONC(:,2)*TPK%RO255(:) +! +!PTERMS(PAN7,K132) = +K132*<NO2>*<RO255> + PTERMS(:,82,133) = +TPK%K132(:)*PCONC(:,2)*TPK%RO255(:) +! +!PTERMS(NO2,K133) = -K133*<NO2>*<RO257> + PTERMS(:,2,134) = -TPK%K133(:)*PCONC(:,2)*TPK%RO257(:) +! +!PTERMS(APAN,K133) = +K133*<NO2>*<RO257> + PTERMS(:,76,134) = +TPK%K133(:)*PCONC(:,2)*TPK%RO257(:) +! +!PTERMS(NO2,K134) = -K134*<NO2>*<RO258> + PTERMS(:,2,135) = -TPK%K134(:)*PCONC(:,2)*TPK%RO258(:) +! +!PTERMS(PN10,K134) = +K134*<NO2>*<RO258> + PTERMS(:,84,135) = +TPK%K134(:)*PCONC(:,2)*TPK%RO258(:) +! +!PTERMS(NO2,K135) = +K135*<PAN1> + PTERMS(:,2,136) = +TPK%K135(:)*PCONC(:,77) +! +!PTERMS(PAN1,K135) = -K135*<PAN1> + PTERMS(:,77,136) = -TPK%K135(:)*PCONC(:,77) +! +!PTERMS(RO2T,K135) = +K135*<PAN1> + PTERMS(:,85,136) = +TPK%K135(:)*PCONC(:,77) +! +!PTERMS(NO2,K136) = +K136*<PAN2> + PTERMS(:,2,137) = +TPK%K136(:)*PCONC(:,78) +! +! +RETURN +END SUBROUTINE SUBT21 +! +SUBROUTINE SUBT22 +! +!Indices 441 a 460 +! +!PTERMS(PAN2,K136) = -K136*<PAN2> + PTERMS(:,78,137) = -TPK%K136(:)*PCONC(:,78) +! +!PTERMS(RO2T,K136) = +K136*<PAN2> + PTERMS(:,85,137) = +TPK%K136(:)*PCONC(:,78) +! +!PTERMS(NO2,K137) = +K137*<PAN3> + PTERMS(:,2,138) = +TPK%K137(:)*PCONC(:,79) +! +!PTERMS(PAN3,K137) = -K137*<PAN3> + PTERMS(:,79,138) = -TPK%K137(:)*PCONC(:,79) +! +!PTERMS(RO2T,K137) = +K137*<PAN3> + PTERMS(:,85,138) = +TPK%K137(:)*PCONC(:,79) +! +!PTERMS(NO2,K138) = +K138*<PN10> + PTERMS(:,2,139) = +TPK%K138(:)*PCONC(:,84) +! +!PTERMS(PN10,K138) = -K138*<PN10> + PTERMS(:,84,139) = -TPK%K138(:)*PCONC(:,84) +! +!PTERMS(RO2T,K138) = +K138*<PN10> + PTERMS(:,85,139) = +TPK%K138(:)*PCONC(:,84) +! +!PTERMS(NO2,K139) = +1.0000000*K139*<APAN> + PTERMS(:,2,140) = +1.0000000*TPK%K139(:)*PCONC(:,76) +! +!PTERMS(APAN,K139) = -K139*<APAN> + PTERMS(:,76,140) = -TPK%K139(:)*PCONC(:,76) +! +!PTERMS(RO2T,K139) = +1.0000000*K139*<APAN> + PTERMS(:,85,140) = +1.0000000*TPK%K139(:)*PCONC(:,76) +! +!PTERMS(NO2,K140) = +K140*<PAN6> + PTERMS(:,2,141) = +TPK%K140(:)*PCONC(:,81) +! +!PTERMS(PAN6,K140) = -K140*<PAN6> + PTERMS(:,81,141) = -TPK%K140(:)*PCONC(:,81) +! +!PTERMS(RO2T,K140) = +K140*<PAN6> + PTERMS(:,85,141) = +TPK%K140(:)*PCONC(:,81) +! +!PTERMS(NO2,K141) = +K141*<PAN4> + PTERMS(:,2,142) = +TPK%K141(:)*PCONC(:,80) +! +!PTERMS(PAN4,K141) = -K141*<PAN4> + PTERMS(:,80,142) = -TPK%K141(:)*PCONC(:,80) +! +!PTERMS(RO2T,K141) = +K141*<PAN4> + PTERMS(:,85,142) = +TPK%K141(:)*PCONC(:,80) +! +!PTERMS(O3,K142) = +K142*<HO2>*<RO26> + PTERMS(:,3,143) = +TPK%K142(:)*PCONC(:,10)*TPK%RO26(:) +! +!PTERMS(HO2,K142) = -K142*<HO2>*<RO26> + PTERMS(:,10,143) = -TPK%K142(:)*PCONC(:,10)*TPK%RO26(:) +! +!PTERMS(ORA2,K142) = +K142*<HO2>*<RO26> + PTERMS(:,44,143) = +TPK%K142(:)*PCONC(:,10)*TPK%RO26(:) +! +! +RETURN +END SUBROUTINE SUBT22 +! +SUBROUTINE SUBT23 +! +!Indices 461 a 480 +! +!PTERMS(ACID,K142) = +K142*<HO2>*<RO26> + PTERMS(:,45,143) = +TPK%K142(:)*PCONC(:,10)*TPK%RO26(:) ! -!PTERMS(HNO3,K074) = +0.91567*K074*<CARBO>*<NO3> - PTERMS(:,8,74) = +0.91567*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(RO2T,K143) = -K143*<RO2T>*<RO26> + PTERMS(:,85,144) = -TPK%K143(:)*PCONC(:,85)*TPK%RO26(:) ! -!PTERMS(CO,K074) = +1.33723*K074*<CARBO>*<NO3> - PTERMS(:,13,74) = +1.33723*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(RO25,K143) = +K143*<RO2T>*<RO26> + PTERMS(:,87,144) = +TPK%K143(:)*PCONC(:,85)*TPK%RO26(:) ! -!PTERMS(HO2,K074) = +0.63217*K074*<CARBO>*<NO3> - PTERMS(:,15,74) = +0.63217*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(NO,K144) = -K144*<NO>*<RO27> + PTERMS(:,1,145) = -TPK%K144(:)*PCONC(:,1)*TPK%RO27(:) ! -!PTERMS(ALD,K074) = +0.05265*K074*<CARBO>*<NO3> - PTERMS(:,23,74) = +0.05265*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(NO2,K144) = +K144*<NO>*<RO27> + PTERMS(:,2,145) = +TPK%K144(:)*PCONC(:,1)*TPK%RO27(:) ! -!PTERMS(KET,K074) = +0.00632*K074*<CARBO>*<NO3> - PTERMS(:,24,74) = +0.00632*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(ALD2,K144) = +K144*<NO>*<RO27> + PTERMS(:,29,145) = +TPK%K144(:)*PCONC(:,1)*TPK%RO27(:) ! -!PTERMS(CARBO,K074) = -K074*<CARBO>*<NO3> - PTERMS(:,25,74) = -TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(RO2T,K144) = +K144*<NO>*<RO27> + PTERMS(:,85,145) = +TPK%K144(:)*PCONC(:,1)*TPK%RO27(:) ! -!PTERMS(CARBOP,K074) = +0.38881*K074*<CARBO>*<NO3> - PTERMS(:,39,74) = +0.38881*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(ALD2,K145) = +K145*<RO2T>*<RO27> + PTERMS(:,29,146) = +TPK%K145(:)*PCONC(:,85)*TPK%RO27(:) ! -!PTERMS(OLN,K074) = +0.00000*K074*<CARBO>*<NO3> - PTERMS(:,40,74) = +0.00000*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(RO2T,K145) = -K145*<RO2T>*<RO27> + PTERMS(:,85,146) = -TPK%K145(:)*PCONC(:,85)*TPK%RO27(:) ! -!PTERMS(XO2,K074) = +0.10530*K074*<CARBO>*<NO3> - PTERMS(:,41,74) = +0.10530*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(HO2,K146) = -K146*<HO2>*<RO27> + PTERMS(:,10,147) = -TPK%K146(:)*PCONC(:,10)*TPK%RO27(:) ! -!PTERMS(NO3,K075) = -K075*<ARO>*<NO3> - PTERMS(:,5,75) = -TPK%K075(:)*PCONC(:,21)*PCONC(:,5) +!PTERMS(OH,K146) = +K146*<HO2>*<RO27> + PTERMS(:,15,147) = +TPK%K146(:)*PCONC(:,10)*TPK%RO27(:) ! -!PTERMS(HNO3,K075) = +K075*<ARO>*<NO3> - PTERMS(:,8,75) = +TPK%K075(:)*PCONC(:,21)*PCONC(:,5) +!PTERMS(ALD2,K146) = +K146*<HO2>*<RO27> + PTERMS(:,29,147) = +TPK%K146(:)*PCONC(:,10)*TPK%RO27(:) ! -!PTERMS(ARO,K075) = -K075*<ARO>*<NO3> - PTERMS(:,21,75) = -TPK%K075(:)*PCONC(:,21)*PCONC(:,5) +!PTERMS(RO2T,K146) = +K146*<HO2>*<RO27> + PTERMS(:,85,147) = +TPK%K146(:)*PCONC(:,10)*TPK%RO27(:) ! -!PTERMS(PHO,K075) = +K075*<ARO>*<NO3> - PTERMS(:,36,75) = +TPK%K075(:)*PCONC(:,21)*PCONC(:,5) +!PTERMS(NO,K147) = -K147*<NO>*<RO28> + PTERMS(:,1,148) = -TPK%K147(:)*PCONC(:,1)*TPK%RO28(:) ! -!PTERMS(NO3,K076) = -K076*<ALKE>*<NO3> - PTERMS(:,5,76) = -TPK%K076(:)*PCONC(:,19)*PCONC(:,5) +!PTERMS(NO2,K147) = +K147*<NO>*<RO28> + PTERMS(:,2,148) = +TPK%K147(:)*PCONC(:,1)*TPK%RO28(:) ! -!PTERMS(ALKE,K076) = -K076*<ALKE>*<NO3> - PTERMS(:,19,76) = -TPK%K076(:)*PCONC(:,19)*PCONC(:,5) +!PTERMS(RO2T,K147) = +K147*<NO>*<RO28> + PTERMS(:,85,148) = +TPK%K147(:)*PCONC(:,1)*TPK%RO28(:) ! -!PTERMS(CARBO,K076) = +0.00000*K076*<ALKE>*<NO3> - PTERMS(:,25,76) = +0.00000*TPK%K076(:)*PCONC(:,19)*PCONC(:,5) +!PTERMS(RO21,K147) = +K147*<NO>*<RO28> + PTERMS(:,86,148) = +TPK%K147(:)*PCONC(:,1)*TPK%RO28(:) ! -!PTERMS(OLN,K076) = +0.93768*K076*<ALKE>*<NO3> - PTERMS(:,40,76) = +0.93768*TPK%K076(:)*PCONC(:,19)*PCONC(:,5) +!PTERMS(O3,K148) = +K148*<HO2>*<RO28> + PTERMS(:,3,149) = +TPK%K148(:)*PCONC(:,10)*TPK%RO28(:) ! -!PTERMS(NO3,K077) = -K077*<BIO>*<NO3> - PTERMS(:,5,77) = -TPK%K077(:)*PCONC(:,20)*PCONC(:,5) +!PTERMS(HO2,K148) = -K148*<HO2>*<RO28> + PTERMS(:,10,149) = -TPK%K148(:)*PCONC(:,10)*TPK%RO28(:) ! -!PTERMS(BIO,K077) = -K077*<BIO>*<NO3> - PTERMS(:,20,77) = -TPK%K077(:)*PCONC(:,20)*PCONC(:,5) +!PTERMS(ORA2,K148) = +K148*<HO2>*<RO28> + PTERMS(:,44,149) = +TPK%K148(:)*PCONC(:,10)*TPK%RO28(:) ! ! RETURN -END SUBROUTINE SUBT12 +END SUBROUTINE SUBT23 ! -SUBROUTINE SUBT13 +SUBROUTINE SUBT24 ! -!Indices 261 a 280 +!Indices 481 a 500 ! -!PTERMS(CARBO,K077) = +0.91741*K077*<BIO>*<NO3> - PTERMS(:,25,77) = +0.91741*TPK%K077(:)*PCONC(:,20)*PCONC(:,5) +!PTERMS(RO2T,K149) = -K149*<RO2T>*<RO28> + PTERMS(:,85,150) = -TPK%K149(:)*PCONC(:,85)*TPK%RO28(:) ! -!PTERMS(OLN,K077) = +1.00000*K077*<BIO>*<NO3> - PTERMS(:,40,77) = +1.00000*TPK%K077(:)*PCONC(:,20)*PCONC(:,5) +!PTERMS(RO21,K149) = +K149*<RO2T>*<RO28> + PTERMS(:,86,150) = +TPK%K149(:)*PCONC(:,85)*TPK%RO28(:) ! -!PTERMS(NO2,K078) = +0.40*K078*<PAN>*<NO3> - PTERMS(:,4,78) = +0.40*TPK%K078(:)*PCONC(:,27)*PCONC(:,5) +!PTERMS(NO,K150) = -K150*<NO>*<RO29> + PTERMS(:,1,151) = -TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) ! -!PTERMS(NO3,K078) = -K078*<PAN>*<NO3> - PTERMS(:,5,78) = -TPK%K078(:)*PCONC(:,27)*PCONC(:,5) +!PTERMS(NO2,K150) = +TPK%CF6*K150*<NO>*<RO29> + PTERMS(:,2,151) = +TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) ! -!PTERMS(HCHO,K078) = +0.40*K078*<PAN>*<NO3> - PTERMS(:,22,78) = +0.40*TPK%K078(:)*PCONC(:,27)*PCONC(:,5) +!PTERMS(HO2,K150) = +TPK%CF6*K150*<NO>*<RO29> + PTERMS(:,10,151) = +TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) ! -!PTERMS(ONIT,K078) = +0.60*K078*<PAN>*<NO3> - PTERMS(:,26,78) = +0.60*TPK%K078(:)*PCONC(:,27)*PCONC(:,5) +!PTERMS(OLEL,K150) = +TPK%CF5*K150*<NO>*<RO29> + PTERMS(:,17,151) = +TPK%CF5*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) ! -!PTERMS(PAN,K078) = -K078*<PAN>*<NO3> - PTERMS(:,27,78) = -TPK%K078(:)*PCONC(:,27)*PCONC(:,5) +!PTERMS(HCHO,K150) = +TPK%CF6*K150*<NO>*<RO29> + PTERMS(:,28,151) = +TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) ! -!PTERMS(XO2,K078) = +K078*<PAN>*<NO3> - PTERMS(:,41,78) = +TPK%K078(:)*PCONC(:,27)*PCONC(:,5) +!PTERMS(MVK,K150) = +TPK%CF6*K150*<NO>*<RO29> + PTERMS(:,39,151) = +TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) ! -!PTERMS(O3,K079) = -K079*<ALKE>*<O3> - PTERMS(:,1,79) = -TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(HO2,K151) = +K151*<RO2T>*<RO29> + PTERMS(:,10,152) = +TPK%K151(:)*PCONC(:,85)*TPK%RO29(:) ! -!PTERMS(H2O2,K079) = +0.01833*K079*<ALKE>*<O3> - PTERMS(:,2,79) = +0.01833*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(HCHO,K151) = +K151*<RO2T>*<RO29> + PTERMS(:,28,152) = +TPK%K151(:)*PCONC(:,85)*TPK%RO29(:) ! -!PTERMS(CO,K079) = +0.35120*K079*<ALKE>*<O3> - PTERMS(:,13,79) = +0.35120*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(MVK,K151) = +K151*<RO2T>*<RO29> + PTERMS(:,39,152) = +TPK%K151(:)*PCONC(:,85)*TPK%RO29(:) ! -!PTERMS(OH,K079) = +0.39435*K079*<ALKE>*<O3> - PTERMS(:,14,79) = +0.39435*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(RO2T,K151) = -K151*<RO2T>*<RO29> + PTERMS(:,85,152) = -TPK%K151(:)*PCONC(:,85)*TPK%RO29(:) ! -!PTERMS(HO2,K079) = +0.23451*K079*<ALKE>*<O3> - PTERMS(:,15,79) = +0.23451*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(HO2,K152) = -K152*<HO2>*<RO29> + PTERMS(:,10,153) = -TPK%K152(:)*PCONC(:,10)*TPK%RO29(:) ! -!PTERMS(CH4,K079) = +0.04300*K079*<ALKE>*<O3> - PTERMS(:,16,79) = +0.04300*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(OH,K152) = +K152*<HO2>*<RO29> + PTERMS(:,15,153) = +TPK%K152(:)*PCONC(:,10)*TPK%RO29(:) ! -!PTERMS(ETH,K079) = +0.03196*K079*<ALKE>*<O3> - PTERMS(:,17,79) = +0.03196*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(HCHO,K152) = +K152*<HO2>*<RO29> + PTERMS(:,28,153) = +TPK%K152(:)*PCONC(:,10)*TPK%RO29(:) ! -!PTERMS(ALKE,K079) = -K079*<ALKE>*<O3> - PTERMS(:,19,79) = -TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(MVK,K152) = +K152*<HO2>*<RO29> + PTERMS(:,39,153) = +TPK%K152(:)*PCONC(:,10)*TPK%RO29(:) ! -!PTERMS(HCHO,K079) = +0.48290*K079*<ALKE>*<O3> - PTERMS(:,22,79) = +0.48290*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(NO,K153) = -K153*<NO>*<RO210> + PTERMS(:,1,154) = -TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) ! -!PTERMS(ALD,K079) = +0.51468*K079*<ALKE>*<O3> - PTERMS(:,23,79) = +0.51468*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(NO2,K153) = +K153*<NO>*<RO210> + PTERMS(:,2,154) = +TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) ! -!PTERMS(KET,K079) = +0.07377*K079*<ALKE>*<O3> - PTERMS(:,24,79) = +0.07377*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(HO2,K153) = +K153*<NO>*<RO210> + PTERMS(:,10,154) = +TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) ! -!PTERMS(CARBO,K079) = +0.00000*K079*<ALKE>*<O3> - PTERMS(:,25,79) = +0.00000*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(HCHO,K153) = +K153*<NO>*<RO210> + PTERMS(:,28,154) = +TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) ! ! RETURN -END SUBROUTINE SUBT13 +END SUBROUTINE SUBT24 ! -SUBROUTINE SUBT14 +SUBROUTINE SUBT25 ! -!Indices 281 a 300 +!Indices 501 a 520 ! -!PTERMS(ORA1,K079) = +0.15343*K079*<ALKE>*<O3> - PTERMS(:,30,79) = +0.15343*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(MCR,K153) = +K153*<NO>*<RO210> + PTERMS(:,40,154) = +TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) ! -!PTERMS(ORA2,K079) = +0.08143*K079*<ALKE>*<O3> - PTERMS(:,31,79) = +0.08143*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(HO2,K154) = +K154*<RO2T>*<RO210> + PTERMS(:,10,155) = +TPK%K154(:)*PCONC(:,85)*TPK%RO210(:) ! -!PTERMS(MO2,K079) = +0.13966*K079*<ALKE>*<O3> - PTERMS(:,32,79) = +0.13966*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(HCHO,K154) = +K154*<RO2T>*<RO210> + PTERMS(:,28,155) = +TPK%K154(:)*PCONC(:,85)*TPK%RO210(:) ! -!PTERMS(ALKAP,K079) = +0.09815*K079*<ALKE>*<O3> - PTERMS(:,33,79) = +0.09815*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(MCR,K154) = +K154*<RO2T>*<RO210> + PTERMS(:,40,155) = +TPK%K154(:)*PCONC(:,85)*TPK%RO210(:) ! -!PTERMS(CARBOP,K079) = +0.05705*K079*<ALKE>*<O3> - PTERMS(:,39,79) = +0.05705*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(RO2T,K154) = -K154*<RO2T>*<RO210> + PTERMS(:,85,155) = -TPK%K154(:)*PCONC(:,85)*TPK%RO210(:) ! -!PTERMS(XO2,K079) = +0.00000*K079*<ALKE>*<O3> - PTERMS(:,41,79) = +0.00000*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(HO2,K155) = -K155*<HO2>*<RO210> + PTERMS(:,10,156) = -TPK%K155(:)*PCONC(:,10)*TPK%RO210(:) ! -!PTERMS(O3,K080) = -K080*<BIO>*<O3> - PTERMS(:,1,80) = -TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(OH,K155) = +K155*<HO2>*<RO210> + PTERMS(:,15,156) = +TPK%K155(:)*PCONC(:,10)*TPK%RO210(:) ! -!PTERMS(H2O2,K080) = +0.00100*K080*<BIO>*<O3> - PTERMS(:,2,80) = +0.00100*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(HCHO,K155) = +K155*<HO2>*<RO210> + PTERMS(:,28,156) = +TPK%K155(:)*PCONC(:,10)*TPK%RO210(:) ! -!PTERMS(CO,K080) = +0.36000*K080*<BIO>*<O3> - PTERMS(:,13,80) = +0.36000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(MCR,K155) = +K155*<HO2>*<RO210> + PTERMS(:,40,156) = +TPK%K155(:)*PCONC(:,10)*TPK%RO210(:) ! -!PTERMS(OH,K080) = +0.28000*K080*<BIO>*<O3> - PTERMS(:,14,80) = +0.28000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(NO,K156) = -K156*<NO>*<RO211> + PTERMS(:,1,157) = -TPK%K156(:)*PCONC(:,1)*TPK%RO211(:) ! -!PTERMS(HO2,K080) = +0.30000*K080*<BIO>*<O3> - PTERMS(:,15,80) = +0.30000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(NO2,K156) = +2.*K156*<NO>*<RO211> + PTERMS(:,2,157) = +2.*TPK%K156(:)*PCONC(:,1)*TPK%RO211(:) ! -!PTERMS(ALKE,K080) = +0.37388*K080*<BIO>*<O3> - PTERMS(:,19,80) = +0.37388*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(HCHO,K156) = +K156*<NO>*<RO211> + PTERMS(:,28,157) = +TPK%K156(:)*PCONC(:,1)*TPK%RO211(:) ! -!PTERMS(BIO,K080) = -K080*<BIO>*<O3> - PTERMS(:,20,80) = -TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(MVK,K156) = +K156*<NO>*<RO211> + PTERMS(:,39,157) = +TPK%K156(:)*PCONC(:,1)*TPK%RO211(:) ! -!PTERMS(HCHO,K080) = +0.90000*K080*<BIO>*<O3> - PTERMS(:,22,80) = +0.90000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(NO2,K157) = +K157*<RO2T>*<RO211> + PTERMS(:,2,158) = +TPK%K157(:)*PCONC(:,85)*TPK%RO211(:) ! -!PTERMS(ALD,K080) = +0.00000*K080*<BIO>*<O3> - PTERMS(:,23,80) = +0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(HCHO,K157) = +K157*<RO2T>*<RO211> + PTERMS(:,28,158) = +TPK%K157(:)*PCONC(:,85)*TPK%RO211(:) ! -!PTERMS(KET,K080) = +0.00000*K080*<BIO>*<O3> - PTERMS(:,24,80) = +0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(MVK,K157) = +K157*<RO2T>*<RO211> + PTERMS(:,39,158) = +TPK%K157(:)*PCONC(:,85)*TPK%RO211(:) ! -!PTERMS(CARBO,K080) = +0.39754*K080*<BIO>*<O3> - PTERMS(:,25,80) = +0.39754*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(RO2T,K157) = -K157*<RO2T>*<RO211> + PTERMS(:,85,158) = -TPK%K157(:)*PCONC(:,85)*TPK%RO211(:) ! -!PTERMS(ORA1,K080) = +0.15000*K080*<BIO>*<O3> - PTERMS(:,30,80) = +0.15000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(NO2,K158) = +K158*<HO2>*<RO211> + PTERMS(:,2,159) = +TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) ! -!PTERMS(ORA2,K080) = +0.00000*K080*<BIO>*<O3> - PTERMS(:,31,80) = +0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(HO2,K158) = -K158*<HO2>*<RO211> + PTERMS(:,10,159) = -TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) ! -!PTERMS(MO2,K080) = +0.03000*K080*<BIO>*<O3> - PTERMS(:,32,80) = +0.03000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(OH,K158) = +K158*<HO2>*<RO211> + PTERMS(:,15,159) = +TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) ! ! RETURN -END SUBROUTINE SUBT14 +END SUBROUTINE SUBT25 ! -SUBROUTINE SUBT15 +SUBROUTINE SUBT26 ! -!Indices 301 a 320 +!Indices 521 a 540 ! -!PTERMS(ALKAP,K080) = +0.00000*K080*<BIO>*<O3> - PTERMS(:,33,80) = +0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(HCHO,K158) = +K158*<HO2>*<RO211> + PTERMS(:,28,159) = +TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) ! -!PTERMS(CARBOP,K080) = +0.17000*K080*<BIO>*<O3> - PTERMS(:,39,80) = +0.17000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(MVK,K158) = +K158*<HO2>*<RO211> + PTERMS(:,39,159) = +TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) ! -!PTERMS(XO2,K080) = +0.13000*K080*<BIO>*<O3> - PTERMS(:,41,80) = +0.13000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(NO,K159) = -K159*<NO>*<RO212> + PTERMS(:,1,160) = -TPK%K159(:)*PCONC(:,1)*TPK%RO212(:) ! -!PTERMS(O3,K081) = -K081*<CARBO>*<O3> - PTERMS(:,1,81) = -TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(NO2,K159) = +2.*K159*<NO>*<RO212> + PTERMS(:,2,160) = +2.*TPK%K159(:)*PCONC(:,1)*TPK%RO212(:) ! -!PTERMS(CO,K081) = +0.64728*K081*<CARBO>*<O3> - PTERMS(:,13,81) = +0.64728*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(HCHO,K159) = +K159*<NO>*<RO212> + PTERMS(:,28,160) = +TPK%K159(:)*PCONC(:,1)*TPK%RO212(:) ! -!PTERMS(OH,K081) = +0.20595*K081*<CARBO>*<O3> - PTERMS(:,14,81) = +0.20595*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(MCR,K159) = +K159*<NO>*<RO212> + PTERMS(:,40,160) = +TPK%K159(:)*PCONC(:,1)*TPK%RO212(:) ! -!PTERMS(HO2,K081) = +0.28441*K081*<CARBO>*<O3> - PTERMS(:,15,81) = +0.28441*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(NO2,K160) = +K160*<RO2T>*<RO212> + PTERMS(:,2,161) = +TPK%K160(:)*PCONC(:,85)*TPK%RO212(:) ! -!PTERMS(HCHO,K081) = +0.00000*K081*<CARBO>*<O3> - PTERMS(:,22,81) = +0.00000*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(HCHO,K160) = +K160*<RO2T>*<RO212> + PTERMS(:,28,161) = +TPK%K160(:)*PCONC(:,85)*TPK%RO212(:) ! -!PTERMS(ALD,K081) = +0.15692*K081*<CARBO>*<O3> - PTERMS(:,23,81) = +0.15692*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(MCR,K160) = +K160*<RO2T>*<RO212> + PTERMS(:,40,161) = +TPK%K160(:)*PCONC(:,85)*TPK%RO212(:) ! -!PTERMS(CARBO,K081) = -K081*<CARBO>*<O3> - PTERMS(:,25,81) = -TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(RO2T,K160) = -K160*<RO2T>*<RO212> + PTERMS(:,85,161) = -TPK%K160(:)*PCONC(:,85)*TPK%RO212(:) ! -!PTERMS(OP2,K081) = +0.10149*K081*<CARBO>*<O3> - PTERMS(:,29,81) = +0.10149*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(NO2,K161) = +K161*<HO2>*<RO212> + PTERMS(:,2,162) = +TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) ! -!PTERMS(ORA1,K081) = +0.10788*K081*<CARBO>*<O3> - PTERMS(:,30,81) = +0.10788*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(HO2,K161) = -K161*<HO2>*<RO212> + PTERMS(:,10,162) = -TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) ! -!PTERMS(ORA2,K081) = +0.20595*K081*<CARBO>*<O3> - PTERMS(:,31,81) = +0.20595*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(OH,K161) = +K161*<HO2>*<RO212> + PTERMS(:,15,162) = +TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) ! -!PTERMS(CARBOP,K081) = +0.27460*K081*<CARBO>*<O3> - PTERMS(:,39,81) = +0.27460*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(HCHO,K161) = +K161*<HO2>*<RO212> + PTERMS(:,28,162) = +TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) ! -!PTERMS(O3,K082) = -K082*<PAN>*<O3> - PTERMS(:,1,82) = -TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(MCR,K161) = +K161*<HO2>*<RO212> + PTERMS(:,40,162) = +TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) ! -!PTERMS(NO2,K082) = +0.70*K082*<PAN>*<O3> - PTERMS(:,4,82) = +0.70*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(NO,K162) = -K162*<NO>*<RO213> + PTERMS(:,1,163) = -TPK%K162(:)*PCONC(:,1)*TPK%RO213(:) ! -!PTERMS(CO,K082) = +0.13*K082*<PAN>*<O3> - PTERMS(:,13,82) = +0.13*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(NO2,K162) = +K162*<NO>*<RO213> + PTERMS(:,2,163) = +TPK%K162(:)*PCONC(:,1)*TPK%RO213(:) ! -!PTERMS(OH,K082) = +0.036*K082*<PAN>*<O3> - PTERMS(:,14,82) = +0.036*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(HCHO,K162) = +K162*<NO>*<RO213> + PTERMS(:,28,163) = +TPK%K162(:)*PCONC(:,1)*TPK%RO213(:) ! -!PTERMS(HO2,K082) = +0.08*K082*<PAN>*<O3> - PTERMS(:,15,82) = +0.08*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(RO2T,K162) = +K162*<NO>*<RO213> + PTERMS(:,85,163) = +TPK%K162(:)*PCONC(:,1)*TPK%RO213(:) ! -!PTERMS(HCHO,K082) = +0.70*K082*<PAN>*<O3> - PTERMS(:,22,82) = +0.70*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(HCHO,K163) = +K163*<RO2T>*<RO213> + PTERMS(:,28,164) = +TPK%K163(:)*PCONC(:,85)*TPK%RO213(:) ! ! RETURN -END SUBROUTINE SUBT15 +END SUBROUTINE SUBT26 ! -SUBROUTINE SUBT16 +SUBROUTINE SUBT27 ! -!Indices 321 a 340 +!Indices 541 a 560 ! -!PTERMS(PAN,K082) = -K082*<PAN>*<O3> - PTERMS(:,27,82) = -TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(RO2T,K163) = -K163*<RO2T>*<RO213> + PTERMS(:,85,164) = -TPK%K163(:)*PCONC(:,85)*TPK%RO213(:) ! -!PTERMS(ORA1,K082) = +0.11*K082*<PAN>*<O3> - PTERMS(:,30,82) = +0.11*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(HO2,K164) = -K164*<HO2>*<RO213> + PTERMS(:,10,165) = -TPK%K164(:)*PCONC(:,10)*TPK%RO213(:) ! -!PTERMS(CARBOP,K082) = +0.70000*K082*<PAN>*<O3> - PTERMS(:,39,82) = +0.70000*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(OH,K164) = +K164*<HO2>*<RO213> + PTERMS(:,15,165) = +TPK%K164(:)*PCONC(:,10)*TPK%RO213(:) ! -!PTERMS(NO2,K083) = -K083*<PHO>*<NO2> - PTERMS(:,4,83) = -TPK%K083(:)*PCONC(:,36)*PCONC(:,4) +!PTERMS(HCHO,K164) = +K164*<HO2>*<RO213> + PTERMS(:,28,165) = +TPK%K164(:)*PCONC(:,10)*TPK%RO213(:) ! -!PTERMS(ARO,K083) = +0.10670*K083*<PHO>*<NO2> - PTERMS(:,21,83) = +0.10670*TPK%K083(:)*PCONC(:,36)*PCONC(:,4) +!PTERMS(RO2T,K164) = +K164*<HO2>*<RO213> + PTERMS(:,85,165) = +TPK%K164(:)*PCONC(:,10)*TPK%RO213(:) ! -!PTERMS(ONIT,K083) = +K083*<PHO>*<NO2> - PTERMS(:,26,83) = +TPK%K083(:)*PCONC(:,36)*PCONC(:,4) +!PTERMS(NO,K165) = -K165*<NO>*<RO239> + PTERMS(:,1,166) = -TPK%K165(:)*PCONC(:,1)*TPK%RO239(:) ! -!PTERMS(PHO,K083) = -K083*<PHO>*<NO2> - PTERMS(:,36,83) = -TPK%K083(:)*PCONC(:,36)*PCONC(:,4) +!PTERMS(NO2,K165) = +K165*<NO>*<RO239> + PTERMS(:,2,166) = +TPK%K165(:)*PCONC(:,1)*TPK%RO239(:) ! -!PTERMS(HO2,K084) = -K084*<PHO>*<HO2> - PTERMS(:,15,84) = -TPK%K084(:)*PCONC(:,36)*PCONC(:,15) +!PTERMS(RO2T,K165) = +K165*<NO>*<RO239> + PTERMS(:,85,166) = +TPK%K165(:)*PCONC(:,1)*TPK%RO239(:) ! -!PTERMS(ARO,K084) = +1.06698*K084*<PHO>*<HO2> - PTERMS(:,21,84) = +1.06698*TPK%K084(:)*PCONC(:,36)*PCONC(:,15) +!PTERMS(O3,K166) = +K166*<HO2>*<RO239> + PTERMS(:,3,167) = +TPK%K166(:)*PCONC(:,10)*TPK%RO239(:) ! -!PTERMS(PHO,K084) = -K084*<PHO>*<HO2> - PTERMS(:,36,84) = -TPK%K084(:)*PCONC(:,36)*PCONC(:,15) +!PTERMS(HO2,K166) = -K166*<HO2>*<RO239> + PTERMS(:,10,167) = -TPK%K166(:)*PCONC(:,10)*TPK%RO239(:) ! -!PTERMS(NO2,K085) = -K085*<ADD>*<NO2> - PTERMS(:,4,85) = -TPK%K085(:)*PCONC(:,37)*PCONC(:,4) +!PTERMS(OLEL,K166) = +0.5*K166*<HO2>*<RO239> + PTERMS(:,17,167) = +0.5*TPK%K166(:)*PCONC(:,10)*TPK%RO239(:) ! -!PTERMS(HONO,K085) = +K085*<ADD>*<NO2> - PTERMS(:,7,85) = +TPK%K085(:)*PCONC(:,37)*PCONC(:,4) +!PTERMS(ORA2,K166) = +0.5*K166*<HO2>*<RO239> + PTERMS(:,44,167) = +0.5*TPK%K166(:)*PCONC(:,10)*TPK%RO239(:) ! -!PTERMS(ARO,K085) = +K085*<ADD>*<NO2> - PTERMS(:,21,85) = +TPK%K085(:)*PCONC(:,37)*PCONC(:,4) +!PTERMS(RO2T,K167) = -K167*<RO2T>*<RO239> + PTERMS(:,85,168) = -TPK%K167(:)*PCONC(:,85)*TPK%RO239(:) ! -!PTERMS(ADD,K085) = -K085*<ADD>*<NO2> - PTERMS(:,37,85) = -TPK%K085(:)*PCONC(:,37)*PCONC(:,4) +!PTERMS(NO,K168) = -K168*<NO>*<RO214> + PTERMS(:,1,169) = -TPK%K168(:)*PCONC(:,1)*TPK%RO214(:) ! -!PTERMS(HO2,K086) = +0.02*K086*<ADD>*<O2> - PTERMS(:,15,86) = +0.02*TPK%K086(:)*PCONC(:,37)*TPK%O2(:) +!PTERMS(NO2,K168) = +TPK%CF8*K168*<NO>*<RO214> + PTERMS(:,2,169) = +TPK%CF8*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:) ! -!PTERMS(ARO,K086) = +0.02*K086*<ADD>*<O2> - PTERMS(:,21,86) = +0.02*TPK%K086(:)*PCONC(:,37)*TPK%O2(:) +!PTERMS(OLEL,K168) = +TPK%CF7*K168*<NO>*<RO214> + PTERMS(:,17,169) = +TPK%CF7*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:) ! -!PTERMS(ADD,K086) = -K086*<ADD>*<O2> - PTERMS(:,37,86) = -TPK%K086(:)*PCONC(:,37)*TPK%O2(:) +!PTERMS(RO2T,K168) = +TPK%CF8*K168*<NO>*<RO214> + PTERMS(:,85,169) = +TPK%CF8*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:) ! -!PTERMS(AROP,K086) = +0.98*K086*<ADD>*<O2> - PTERMS(:,38,86) = +0.98*TPK%K086(:)*PCONC(:,37)*TPK%O2(:) +!PTERMS(RO2T,K169) = -K169*<RO2T>*<RO214> + PTERMS(:,85,170) = -TPK%K169(:)*PCONC(:,85)*TPK%RO214(:) ! -!PTERMS(O3,K087) = -K087*<ADD>*<O3> - PTERMS(:,1,87) = -TPK%K087(:)*PCONC(:,37)*PCONC(:,1) +!PTERMS(HO2,K170) = -K170*<HO2>*<RO214> + PTERMS(:,10,171) = -TPK%K170(:)*PCONC(:,10)*TPK%RO214(:) ! -!PTERMS(OH,K087) = +K087*<ADD>*<O3> - PTERMS(:,14,87) = +TPK%K087(:)*PCONC(:,37)*PCONC(:,1) +!PTERMS(OH,K170) = +K170*<HO2>*<RO214> + PTERMS(:,15,171) = +TPK%K170(:)*PCONC(:,10)*TPK%RO214(:) ! ! RETURN -END SUBROUTINE SUBT16 +END SUBROUTINE SUBT27 ! -SUBROUTINE SUBT17 +SUBROUTINE SUBT28 ! -!Indices 341 a 360 +!Indices 561 a 580 ! -!PTERMS(ARO,K087) = +K087*<ADD>*<O3> - PTERMS(:,21,87) = +TPK%K087(:)*PCONC(:,37)*PCONC(:,1) +!PTERMS(RO2T,K170) = +K170*<HO2>*<RO214> + PTERMS(:,85,171) = +TPK%K170(:)*PCONC(:,10)*TPK%RO214(:) ! -!PTERMS(ADD,K087) = -K087*<ADD>*<O3> - PTERMS(:,37,87) = -TPK%K087(:)*PCONC(:,37)*PCONC(:,1) +!PTERMS(NO,K171) = -K171*<NO>*<RO215> + PTERMS(:,1,172) = -TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) ! -!PTERMS(NO2,K088) = -K088*<CARBOP>*<NO2> - PTERMS(:,4,88) = -TPK%K088(:)*PCONC(:,39)*PCONC(:,4) +!PTERMS(NO2,K171) = +K171*<NO>*<RO215> + PTERMS(:,2,172) = +TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) ! -!PTERMS(PAN,K088) = +1.00000*K088*<CARBOP>*<NO2> - PTERMS(:,27,88) = +1.00000*TPK%K088(:)*PCONC(:,39)*PCONC(:,4) +!PTERMS(HO2,K171) = +K171*<NO>*<RO215> + PTERMS(:,10,172) = +TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) ! -!PTERMS(CARBOP,K088) = -K088*<CARBOP>*<NO2> - PTERMS(:,39,88) = -TPK%K088(:)*PCONC(:,39)*PCONC(:,4) +!PTERMS(ALKL,K171) = +TPK%CF12*K171*<NO>*<RO215> + PTERMS(:,19,172) = +TPK%CF12*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) ! -!PTERMS(NO2,K089) = +K089*<PAN> - PTERMS(:,4,89) = +TPK%K089(:)*PCONC(:,27) +!PTERMS(HCHO,K171) = +TPK%CF10*K171*<NO>*<RO215> + PTERMS(:,28,172) = +TPK%CF10*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) ! -!PTERMS(PAN,K089) = -K089*<PAN> - PTERMS(:,27,89) = -TPK%K089(:)*PCONC(:,27) +!PTERMS(ALD2,K171) = +TPK%CF9*K171*<NO>*<RO215> + PTERMS(:,29,172) = +TPK%CF9*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) ! -!PTERMS(CARBOP,K089) = +1.00000*K089*<PAN> - PTERMS(:,39,89) = +1.00000*TPK%K089(:)*PCONC(:,27) +!PTERMS(KETL,K171) = +TPK%CF11*K171*<NO>*<RO215> + PTERMS(:,30,172) = +TPK%CF11*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) ! -!PTERMS(NO,K090) = -K090*<MO2>*<NO> - PTERMS(:,3,90) = -TPK%K090(:)*PCONC(:,32)*PCONC(:,3) +!PTERMS(HO2,K172) = +K172*<RO2T>*<RO215> + PTERMS(:,10,173) = +TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) ! -!PTERMS(NO2,K090) = +K090*<MO2>*<NO> - PTERMS(:,4,90) = +TPK%K090(:)*PCONC(:,32)*PCONC(:,3) +!PTERMS(ALKL,K172) = +TPK%CF16*K172*<RO2T>*<RO215> + PTERMS(:,19,173) = +TPK%CF16*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) ! -!PTERMS(HO2,K090) = +K090*<MO2>*<NO> - PTERMS(:,15,90) = +TPK%K090(:)*PCONC(:,32)*PCONC(:,3) +!PTERMS(HCHO,K172) = +TPK%CF14*K172*<RO2T>*<RO215> + PTERMS(:,28,173) = +TPK%CF14*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) ! -!PTERMS(HCHO,K090) = +K090*<MO2>*<NO> - PTERMS(:,22,90) = +TPK%K090(:)*PCONC(:,32)*PCONC(:,3) +!PTERMS(ALD2,K172) = +TPK%CF13*K172*<RO2T>*<RO215> + PTERMS(:,29,173) = +TPK%CF13*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) ! -!PTERMS(MO2,K090) = -K090*<MO2>*<NO> - PTERMS(:,32,90) = -TPK%K090(:)*PCONC(:,32)*PCONC(:,3) +!PTERMS(KETL,K172) = +TPK%CF15*K172*<RO2T>*<RO215> + PTERMS(:,30,173) = +TPK%CF15*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) ! -!PTERMS(NO,K091) = -K091*<ALKAP>*<NO> - PTERMS(:,3,91) = -TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(RO2T,K172) = -K172*<RO2T>*<RO215> + PTERMS(:,85,173) = -TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) ! -!PTERMS(NO2,K091) = +0.91541*K091*<ALKAP>*<NO> - PTERMS(:,4,91) = +0.91541*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(HO2,K173) = -K173*<HO2>*<RO215> + PTERMS(:,10,174) = -TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) ! -!PTERMS(HO2,K091) = +0.74265*K091*<ALKAP>*<NO> - PTERMS(:,15,91) = +0.74265*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(OH,K173) = +K173*<HO2>*<RO215> + PTERMS(:,15,174) = +TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) ! -!PTERMS(HCHO,K091) = +0.03002*K091*<ALKAP>*<NO> - PTERMS(:,22,91) = +0.03002*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(ALKL,K173) = +TPK%CF16*K173*<HO2>*<RO215> + PTERMS(:,19,174) = +TPK%CF16*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) ! -!PTERMS(ALD,K091) = +0.33144*K091*<ALKAP>*<NO> - PTERMS(:,23,91) = +0.33144*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(HCHO,K173) = +TPK%CF14*K173*<HO2>*<RO215> + PTERMS(:,28,174) = +TPK%CF14*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) ! -!PTERMS(KET,K091) = +0.54531*K091*<ALKAP>*<NO> - PTERMS(:,24,91) = +0.54531*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(ALD2,K173) = +TPK%CF13*K173*<HO2>*<RO215> + PTERMS(:,29,174) = +TPK%CF13*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) ! -!PTERMS(CARBO,K091) = +0.03407*K091*<ALKAP>*<NO> - PTERMS(:,25,91) = +0.03407*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(KETL,K173) = +TPK%CF15*K173*<HO2>*<RO215> + PTERMS(:,30,174) = +TPK%CF15*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) ! ! RETURN -END SUBROUTINE SUBT17 +END SUBROUTINE SUBT28 ! -SUBROUTINE SUBT18 +SUBROUTINE SUBT29 ! -!Indices 361 a 380 +!Indices 581 a 600 ! -!PTERMS(ONIT,K091) = +0.08459*K091*<ALKAP>*<NO> - PTERMS(:,26,91) = +0.08459*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(NO,K174) = -K174*<NO>*<RO216> + PTERMS(:,1,175) = -TPK%K174(:)*PCONC(:,1)*TPK%RO216(:) ! -!PTERMS(MO2,K091) = +0.09016*K091*<ALKAP>*<NO> - PTERMS(:,32,91) = +0.09016*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(NO2,K174) = +K174*<NO>*<RO216> + PTERMS(:,2,175) = +TPK%K174(:)*PCONC(:,1)*TPK%RO216(:) ! -!PTERMS(ALKAP,K091) = -K091*<ALKAP>*<NO> - PTERMS(:,33,91) = -TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(ALD2,K174) = +K174*<NO>*<RO216> + PTERMS(:,29,175) = +TPK%K174(:)*PCONC(:,1)*TPK%RO216(:) ! -!PTERMS(XO2,K091) = +0.13007*K091*<ALKAP>*<NO> - PTERMS(:,41,91) = +0.13007*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(RO2T,K174) = +K174*<NO>*<RO216> + PTERMS(:,85,175) = +TPK%K174(:)*PCONC(:,1)*TPK%RO216(:) ! -!PTERMS(NO,K092) = -K092*<ALKEP>*<NO> - PTERMS(:,3,92) = -TPK%K092(:)*PCONC(:,34)*PCONC(:,3) +!PTERMS(ALD2,K175) = +K175*<RO2T>*<RO216> + PTERMS(:,29,176) = +TPK%K175(:)*PCONC(:,85)*TPK%RO216(:) ! -!PTERMS(NO2,K092) = +K092*<ALKEP>*<NO> - PTERMS(:,4,92) = +TPK%K092(:)*PCONC(:,34)*PCONC(:,3) +!PTERMS(RO2T,K175) = -K175*<RO2T>*<RO216> + PTERMS(:,85,176) = -TPK%K175(:)*PCONC(:,85)*TPK%RO216(:) ! -!PTERMS(HO2,K092) = +K092*<ALKEP>*<NO> - PTERMS(:,15,92) = +TPK%K092(:)*PCONC(:,34)*PCONC(:,3) +!PTERMS(HO2,K176) = -K176*<HO2>*<RO216> + PTERMS(:,10,177) = -TPK%K176(:)*PCONC(:,10)*TPK%RO216(:) ! -!PTERMS(HCHO,K092) = +1.39870*K092*<ALKEP>*<NO> - PTERMS(:,22,92) = +1.39870*TPK%K092(:)*PCONC(:,34)*PCONC(:,3) +!PTERMS(OH,K176) = +K176*<HO2>*<RO216> + PTERMS(:,15,177) = +TPK%K176(:)*PCONC(:,10)*TPK%RO216(:) ! -!PTERMS(ALD,K092) = +0.42125*K092*<ALKEP>*<NO> - PTERMS(:,23,92) = +0.42125*TPK%K092(:)*PCONC(:,34)*PCONC(:,3) +!PTERMS(ALD2,K176) = +K176*<HO2>*<RO216> + PTERMS(:,29,177) = +TPK%K176(:)*PCONC(:,10)*TPK%RO216(:) ! -!PTERMS(KET,K092) = +0.05220*K092*<ALKEP>*<NO> - PTERMS(:,24,92) = +0.05220*TPK%K092(:)*PCONC(:,34)*PCONC(:,3) +!PTERMS(RO2T,K176) = +K176*<HO2>*<RO216> + PTERMS(:,85,177) = +TPK%K176(:)*PCONC(:,10)*TPK%RO216(:) ! -!PTERMS(ALKEP,K092) = -K092*<ALKEP>*<NO> - PTERMS(:,34,92) = -TPK%K092(:)*PCONC(:,34)*PCONC(:,3) +!PTERMS(NO,K177) = -K177*<NO>*<RO217> + PTERMS(:,1,178) = -TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) ! -!PTERMS(NO,K093) = -K093*<BIOP>*<NO> - PTERMS(:,3,93) = -TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(NO2,K177) = +TPK%CF22*K177*<NO>*<RO217> + PTERMS(:,2,178) = +TPK%CF22*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) ! -!PTERMS(NO2,K093) = +0.84700*K093*<BIOP>*<NO> - PTERMS(:,4,93) = +0.84700*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(HO2,K177) = +TPK%CF22*K177*<NO>*<RO217> + PTERMS(:,10,178) = +TPK%CF22*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) ! -!PTERMS(HO2,K093) = +0.84700*K093*<BIOP>*<NO> - PTERMS(:,15,93) = +0.84700*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(URG6,K177) = +TPK%CF21*K177*<NO>*<RO217> + PTERMS(:,58,178) = +TPK%CF21*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) ! -!PTERMS(ALKE,K093) = +0.37815*K093*<BIOP>*<NO> - PTERMS(:,19,93) = +0.37815*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(RPRL,K177) = +TPK%CFA2*K177*<NO>*<RO217> + PTERMS(:,75,178) = +TPK%CFA2*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) ! -!PTERMS(HCHO,K093) = +0.60600*K093*<BIOP>*<NO> - PTERMS(:,22,93) = +0.60600*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(HO2,K178) = +K178*<RO2T>*<RO217> + PTERMS(:,10,179) = +TPK%K178(:)*PCONC(:,85)*TPK%RO217(:) ! -!PTERMS(ALD,K093) = +0.00000*K093*<BIOP>*<NO> - PTERMS(:,23,93) = +0.00000*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(RPRL,K178) = +0.9983609*K178*<RO2T>*<RO217> + PTERMS(:,75,179) = +0.9983609*TPK%K178(:)*PCONC(:,85)*TPK%RO217(:) ! -!PTERMS(KET,K093) = +0.00000*K093*<BIOP>*<NO> - PTERMS(:,24,93) = +0.00000*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(RO2T,K178) = -K178*<RO2T>*<RO217> + PTERMS(:,85,179) = -TPK%K178(:)*PCONC(:,85)*TPK%RO217(:) ! -!PTERMS(CARBO,K093) = +0.45463*K093*<BIOP>*<NO> - PTERMS(:,25,93) = +0.45463*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(HO2,K179) = -K179*<HO2>*<RO217> + PTERMS(:,10,180) = -TPK%K179(:)*PCONC(:,10)*TPK%RO217(:) ! -!PTERMS(ONIT,K093) = +0.15300*K093*<BIOP>*<NO> - PTERMS(:,26,93) = +0.15300*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(OH,K179) = +K179*<HO2>*<RO217> + PTERMS(:,15,180) = +TPK%K179(:)*PCONC(:,10)*TPK%RO217(:) ! ! RETURN -END SUBROUTINE SUBT18 +END SUBROUTINE SUBT29 ! -SUBROUTINE SUBT19 +SUBROUTINE SUBT30 ! -!Indices 381 a 400 +!Indices 601 a 620 ! -!PTERMS(BIOP,K093) = -K093*<BIOP>*<NO> - PTERMS(:,35,93) = -TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(RPRL,K179) = +0.9983609*K179*<HO2>*<RO217> + PTERMS(:,75,180) = +0.9983609*TPK%K179(:)*PCONC(:,10)*TPK%RO217(:) ! -!PTERMS(NO,K094) = -K094*<AROP>*<NO> - PTERMS(:,3,94) = -TPK%K094(:)*PCONC(:,38)*PCONC(:,3) +!PTERMS(NO,K180) = -K180*<NO>*<RO218> + PTERMS(:,1,181) = -TPK%K180(:)*PCONC(:,1)*TPK%RO218(:) ! -!PTERMS(NO2,K094) = +0.95115*K094*<AROP>*<NO> - PTERMS(:,4,94) = +0.95115*TPK%K094(:)*PCONC(:,38)*PCONC(:,3) +!PTERMS(NO2,K180) = +TPK%CF20*K180*<NO>*<RO218> + PTERMS(:,2,181) = +TPK%CF20*TPK%K180(:)*PCONC(:,1)*TPK%RO218(:) ! -!PTERMS(HO2,K094) = +0.95115*K094*<AROP>*<NO> - PTERMS(:,15,94) = +0.95115*TPK%K094(:)*PCONC(:,38)*PCONC(:,3) +!PTERMS(HO2,K180) = +TPK%CF20*K180*<NO>*<RO218> + PTERMS(:,10,181) = +TPK%CF20*TPK%K180(:)*PCONC(:,1)*TPK%RO218(:) ! -!PTERMS(CARBO,K094) = +2.06993*K094*<AROP>*<NO> - PTERMS(:,25,94) = +2.06993*TPK%K094(:)*PCONC(:,38)*PCONC(:,3) +!PTERMS(HO2,K181) = +K181*<RO2T>*<RO218> + PTERMS(:,10,182) = +TPK%K181(:)*PCONC(:,85)*TPK%RO218(:) ! -!PTERMS(ONIT,K094) = +0.04885*K094*<AROP>*<NO> - PTERMS(:,26,94) = +0.04885*TPK%K094(:)*PCONC(:,38)*PCONC(:,3) +!PTERMS(RO2T,K181) = -K181*<RO2T>*<RO218> + PTERMS(:,85,182) = -TPK%K181(:)*PCONC(:,85)*TPK%RO218(:) ! -!PTERMS(AROP,K094) = -K094*<AROP>*<NO> - PTERMS(:,38,94) = -TPK%K094(:)*PCONC(:,38)*PCONC(:,3) +!PTERMS(HO2,K182) = -K182*<HO2>*<RO218> + PTERMS(:,10,183) = -TPK%K182(:)*PCONC(:,10)*TPK%RO218(:) ! -!PTERMS(NO,K095) = -K095*<CARBOP>*<NO> - PTERMS(:,3,95) = -TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(OH,K182) = +K182*<HO2>*<RO218> + PTERMS(:,15,183) = +TPK%K182(:)*PCONC(:,10)*TPK%RO218(:) ! -!PTERMS(NO2,K095) = +K095*<CARBOP>*<NO> - PTERMS(:,4,95) = +TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(NO,K183) = -K183*<NO>*<RO219> + PTERMS(:,1,184) = -TPK%K183(:)*PCONC(:,1)*TPK%RO219(:) ! -!PTERMS(HO2,K095) = +0.12334*K095*<CARBOP>*<NO> - PTERMS(:,15,95) = +0.12334*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(NO2,K183) = +2.*K183*<NO>*<RO219> + PTERMS(:,2,184) = +2.*TPK%K183(:)*PCONC(:,1)*TPK%RO219(:) ! -!PTERMS(HCHO,K095) = +0.05848*K095*<CARBOP>*<NO> - PTERMS(:,22,95) = +0.05848*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(HCHO,K183) = +K183*<NO>*<RO219> + PTERMS(:,28,184) = +TPK%K183(:)*PCONC(:,1)*TPK%RO219(:) ! -!PTERMS(ALD,K095) = +0.07368*K095*<CARBOP>*<NO> - PTERMS(:,23,95) = +0.07368*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(RPR1,K183) = +K183*<NO>*<RO219> + PTERMS(:,69,184) = +TPK%K183(:)*PCONC(:,1)*TPK%RO219(:) ! -!PTERMS(CARBO,K095) = +0.08670*K095*<CARBOP>*<NO> - PTERMS(:,25,95) = +0.08670*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(NO2,K184) = +K184*<RO2T>*<RO219> + PTERMS(:,2,185) = +TPK%K184(:)*PCONC(:,85)*TPK%RO219(:) ! -!PTERMS(MO2,K095) = +0.78134*K095*<CARBOP>*<NO> - PTERMS(:,32,95) = +0.78134*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(HCHO,K184) = +K184*<RO2T>*<RO219> + PTERMS(:,28,185) = +TPK%K184(:)*PCONC(:,85)*TPK%RO219(:) ! -!PTERMS(CARBOP,K095) = -K095*<CARBOP>*<NO> - PTERMS(:,39,95) = -TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(RPR1,K184) = +K184*<RO2T>*<RO219> + PTERMS(:,69,185) = +TPK%K184(:)*PCONC(:,85)*TPK%RO219(:) ! -!PTERMS(XO2,K095) = +0.02563*K095*<CARBOP>*<NO> - PTERMS(:,41,95) = +0.02563*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(RO2T,K184) = -K184*<RO2T>*<RO219> + PTERMS(:,85,185) = -TPK%K184(:)*PCONC(:,85)*TPK%RO219(:) ! -!PTERMS(NO,K096) = -K096*<OLN>*<NO> - PTERMS(:,3,96) = -TPK%K096(:)*PCONC(:,40)*PCONC(:,3) +!PTERMS(NO2,K185) = +K185*<HO2>*<RO219> + PTERMS(:,2,186) = +TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) ! -!PTERMS(NO2,K096) = +1.81599*K096*<OLN>*<NO> - PTERMS(:,4,96) = +1.81599*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) +!PTERMS(HO2,K185) = -K185*<HO2>*<RO219> + PTERMS(:,10,186) = -TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) ! -!PTERMS(HO2,K096) = +0.18401*K096*<OLN>*<NO> - PTERMS(:,15,96) = +0.18401*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) +!PTERMS(OH,K185) = +K185*<HO2>*<RO219> + PTERMS(:,15,186) = +TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) ! -!PTERMS(HCHO,K096) = +0.23419*K096*<OLN>*<NO> - PTERMS(:,22,96) = +0.23419*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) +!PTERMS(HCHO,K185) = +K185*<HO2>*<RO219> + PTERMS(:,28,186) = +TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) ! ! RETURN -END SUBROUTINE SUBT19 +END SUBROUTINE SUBT30 ! -SUBROUTINE SUBT20 +SUBROUTINE SUBT31 ! -!Indices 401 a 420 +!Indices 621 a 640 ! -!PTERMS(ALD,K096) = +1.01182*K096*<OLN>*<NO> - PTERMS(:,23,96) = +1.01182*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) +!PTERMS(RPR1,K185) = +K185*<HO2>*<RO219> + PTERMS(:,69,186) = +TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) ! -!PTERMS(KET,K096) = +0.37862*K096*<OLN>*<NO> - PTERMS(:,24,96) = +0.37862*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) +!PTERMS(NO,K186) = -K186*<NO>*<RO220> + PTERMS(:,1,187) = -TPK%K186(:)*PCONC(:,1)*TPK%RO220(:) ! -!PTERMS(ONIT,K096) = +0.18401*K096*<OLN>*<NO> - PTERMS(:,26,96) = +0.18401*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) +!PTERMS(NO2,K186) = +TPK%CF18*K186*<NO>*<RO220> + PTERMS(:,2,187) = +TPK%CF18*TPK%K186(:)*PCONC(:,1)*TPK%RO220(:) ! -!PTERMS(OLN,K096) = -K096*<OLN>*<NO> - PTERMS(:,40,96) = -TPK%K096(:)*PCONC(:,40)*PCONC(:,3) +!PTERMS(RO2T,K186) = +TPK%CF18*K186*<NO>*<RO220> + PTERMS(:,85,187) = +TPK%CF18*TPK%K186(:)*PCONC(:,1)*TPK%RO220(:) ! -!PTERMS(HO2,K097) = -K097*<MO2>*<HO2> - PTERMS(:,15,97) = -TPK%K097(:)*PCONC(:,32)*PCONC(:,15) +!PTERMS(RO2T,K187) = -K187*<RO2T>*<RO220> + PTERMS(:,85,188) = -TPK%K187(:)*PCONC(:,85)*TPK%RO220(:) ! -!PTERMS(OP1,K097) = +K097*<MO2>*<HO2> - PTERMS(:,28,97) = +TPK%K097(:)*PCONC(:,32)*PCONC(:,15) +!PTERMS(HO2,K188) = -K188*<HO2>*<RO220> + PTERMS(:,10,189) = -TPK%K188(:)*PCONC(:,10)*TPK%RO220(:) ! -!PTERMS(MO2,K097) = -K097*<MO2>*<HO2> - PTERMS(:,32,97) = -TPK%K097(:)*PCONC(:,32)*PCONC(:,15) +!PTERMS(OH,K188) = +K188*<HO2>*<RO220> + PTERMS(:,15,189) = +TPK%K188(:)*PCONC(:,10)*TPK%RO220(:) ! -!PTERMS(HO2,K098) = -K098*<ALKAP>*<HO2> - PTERMS(:,15,98) = -TPK%K098(:)*PCONC(:,33)*PCONC(:,15) +!PTERMS(RO2T,K188) = +K188*<HO2>*<RO220> + PTERMS(:,85,189) = +TPK%K188(:)*PCONC(:,10)*TPK%RO220(:) ! -!PTERMS(OP2,K098) = +1.00524*K098*<ALKAP>*<HO2> - PTERMS(:,29,98) = +1.00524*TPK%K098(:)*PCONC(:,33)*PCONC(:,15) +!PTERMS(NO,K189) = -K189*<NO>*<RO221> + PTERMS(:,1,190) = -TPK%K189(:)*PCONC(:,1)*TPK%RO221(:) ! -!PTERMS(ALKAP,K098) = -K098*<ALKAP>*<HO2> - PTERMS(:,33,98) = -TPK%K098(:)*PCONC(:,33)*PCONC(:,15) +!PTERMS(NO2,K189) = +TPK%CF24*K189*<NO>*<RO221> + PTERMS(:,2,190) = +TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:) ! -!PTERMS(HO2,K099) = -K099*<ALKEP>*<HO2> - PTERMS(:,15,99) = -TPK%K099(:)*PCONC(:,34)*PCONC(:,15) +!PTERMS(HO2,K189) = +TPK%CF24*K189*<NO>*<RO221> + PTERMS(:,10,190) = +TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:) ! -!PTERMS(OP2,K099) = +1.00524*K099*<ALKEP>*<HO2> - PTERMS(:,29,99) = +1.00524*TPK%K099(:)*PCONC(:,34)*PCONC(:,15) +!PTERMS(ARAL,K189) = +TPK%CF24*K189*<NO>*<RO221> + PTERMS(:,25,190) = +TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:) ! -!PTERMS(ALKEP,K099) = -K099*<ALKEP>*<HO2> - PTERMS(:,34,99) = -TPK%K099(:)*PCONC(:,34)*PCONC(:,15) +!PTERMS(HO2,K190) = +K190*<RO2T>*<RO221> + PTERMS(:,10,191) = +TPK%K190(:)*PCONC(:,85)*TPK%RO221(:) ! -!PTERMS(HO2,K0100) = -K0100*<BIOP>*<HO2> - PTERMS(:,15,100) = -TPK%K0100(:)*PCONC(:,35)*PCONC(:,15) +!PTERMS(ARAL,K190) = +K190*<RO2T>*<RO221> + PTERMS(:,25,191) = +TPK%K190(:)*PCONC(:,85)*TPK%RO221(:) ! -!PTERMS(OP2,K0100) = +1.00524*K0100*<BIOP>*<HO2> - PTERMS(:,29,100) = +1.00524*TPK%K0100(:)*PCONC(:,35)*PCONC(:,15) +!PTERMS(RO2T,K190) = -K190*<RO2T>*<RO221> + PTERMS(:,85,191) = -TPK%K190(:)*PCONC(:,85)*TPK%RO221(:) ! -!PTERMS(BIOP,K0100) = -K0100*<BIOP>*<HO2> - PTERMS(:,35,100) = -TPK%K0100(:)*PCONC(:,35)*PCONC(:,15) +!PTERMS(HO2,K191) = -K191*<HO2>*<RO221> + PTERMS(:,10,192) = -TPK%K191(:)*PCONC(:,10)*TPK%RO221(:) ! -!PTERMS(HO2,K0101) = -K0101*<AROP>*<HO2> - PTERMS(:,15,101) = -TPK%K0101(:)*PCONC(:,38)*PCONC(:,15) +!PTERMS(OH,K191) = +K191*<HO2>*<RO221> + PTERMS(:,15,192) = +TPK%K191(:)*PCONC(:,10)*TPK%RO221(:) ! -!PTERMS(OP2,K0101) = +1.00524*K0101*<AROP>*<HO2> - PTERMS(:,29,101) = +1.00524*TPK%K0101(:)*PCONC(:,38)*PCONC(:,15) +!PTERMS(ARAL,K191) = +K191*<HO2>*<RO221> + PTERMS(:,25,192) = +TPK%K191(:)*PCONC(:,10)*TPK%RO221(:) ! -!PTERMS(AROP,K0101) = -K0101*<AROP>*<HO2> - PTERMS(:,38,101) = -TPK%K0101(:)*PCONC(:,38)*PCONC(:,15) +!PTERMS(NO,K192) = -K192*<NO>*<RO222> + PTERMS(:,1,193) = -TPK%K192(:)*PCONC(:,1)*TPK%RO222(:) ! -!PTERMS(O3,K0102) = +0.17307*K0102*<CARBOP>*<HO2> - PTERMS(:,1,102) = +0.17307*TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) +!PTERMS(NO2,K192) = +TPK%CF42*K192*<NO>*<RO222> + PTERMS(:,2,193) = +TPK%CF42*TPK%K192(:)*PCONC(:,1)*TPK%RO222(:) ! ! RETURN -END SUBROUTINE SUBT20 +END SUBROUTINE SUBT31 ! -SUBROUTINE SUBT21 +SUBROUTINE SUBT32 ! -!Indices 421 a 440 +!Indices 641 a 660 ! -!PTERMS(HO2,K0102) = -K0102*<CARBOP>*<HO2> - PTERMS(:,15,102) = -TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) +!PTERMS(HO2,K192) = +TPK%CF42*K192*<NO>*<RO222> + PTERMS(:,10,193) = +TPK%CF42*TPK%K192(:)*PCONC(:,1)*TPK%RO222(:) ! -!PTERMS(OP2,K0102) = +0.80904*K0102*<CARBOP>*<HO2> - PTERMS(:,29,102) = +0.80904*TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) +!PTERMS(RPRL,K192) = +TPK%CFA7*K192*<NO>*<RO222> + PTERMS(:,75,193) = +TPK%CFA7*TPK%K192(:)*PCONC(:,1)*TPK%RO222(:) ! -!PTERMS(ORA2,K0102) = +0.17307*K0102*<CARBOP>*<HO2> - PTERMS(:,31,102) = +0.17307*TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) +!PTERMS(HO2,K193) = +K193*<RO2T>*<RO222> + PTERMS(:,10,194) = +TPK%K193(:)*PCONC(:,85)*TPK%RO222(:) ! -!PTERMS(CARBOP,K0102) = -K0102*<CARBOP>*<HO2> - PTERMS(:,39,102) = -TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) +!PTERMS(RPRL,K193) = +0.9983609*K193*<RO2T>*<RO222> + PTERMS(:,75,194) = +0.9983609*TPK%K193(:)*PCONC(:,85)*TPK%RO222(:) ! -!PTERMS(HO2,K103) = -K103*<OLN>*<HO2> - PTERMS(:,15,103) = -TPK%K103(:)*PCONC(:,40)*PCONC(:,15) +!PTERMS(RO2T,K193) = -K193*<RO2T>*<RO222> + PTERMS(:,85,194) = -TPK%K193(:)*PCONC(:,85)*TPK%RO222(:) ! -!PTERMS(ONIT,K103) = +K103*<OLN>*<HO2> - PTERMS(:,26,103) = +TPK%K103(:)*PCONC(:,40)*PCONC(:,15) +!PTERMS(HO2,K194) = -K194*<HO2>*<RO222> + PTERMS(:,10,195) = -TPK%K194(:)*PCONC(:,10)*TPK%RO222(:) ! -!PTERMS(OLN,K103) = -K103*<OLN>*<HO2> - PTERMS(:,40,103) = -TPK%K103(:)*PCONC(:,40)*PCONC(:,15) +!PTERMS(OH,K194) = +K194*<HO2>*<RO222> + PTERMS(:,15,195) = +TPK%K194(:)*PCONC(:,10)*TPK%RO222(:) ! -!PTERMS(HO2,K104) = +0.66*K104*<MO2>*<MO2> - PTERMS(:,15,104) = +0.66*TPK%K104(:)*PCONC(:,32)*PCONC(:,32) +!PTERMS(RPRL,K194) = +0.9983609*K194*<HO2>*<RO222> + PTERMS(:,75,195) = +0.9983609*TPK%K194(:)*PCONC(:,10)*TPK%RO222(:) ! -!PTERMS(HCHO,K104) = +1.33*K104*<MO2>*<MO2> - PTERMS(:,22,104) = +1.33*TPK%K104(:)*PCONC(:,32)*PCONC(:,32) +!PTERMS(NO,K195) = -K195*<NO>*<RO223> + PTERMS(:,1,196) = -TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) ! -!PTERMS(MO2,K104) = -K104*<MO2>*<MO2> - PTERMS(:,32,104) = -TPK%K104(:)*PCONC(:,32)*PCONC(:,32) +!PTERMS(NO2,K195) = +TPK%CF44*K195*<NO>*<RO223> + PTERMS(:,2,196) = +TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) ! -!PTERMS(HO2,K105) = +0.98383*K105*<ALKAP>*<MO2> - PTERMS(:,15,105) = +0.98383*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) +!PTERMS(HO2,K195) = +TPK%CF44*K195*<NO>*<RO223> + PTERMS(:,10,196) = +TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) ! -!PTERMS(HCHO,K105) = +0.80556*K105*<ALKAP>*<MO2> - PTERMS(:,22,105) = +0.80556*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) +!PTERMS(URG6,K195) = +TPK%CF43*K195*<NO>*<RO223> + PTERMS(:,58,196) = +TPK%CF43*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) ! -!PTERMS(ALD,K105) = +0.56070*K105*<ALKAP>*<MO2> - PTERMS(:,23,105) = +0.56070*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) +!PTERMS(RPR7,K195) = +TPK%CF44*K195*<NO>*<RO223> + PTERMS(:,62,196) = +TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) ! -!PTERMS(KET,K105) = +0.09673*K105*<ALKAP>*<MO2> - PTERMS(:,24,105) = +0.09673*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) +!PTERMS(HO2,K196) = +K196*<RO2T>*<RO223> + PTERMS(:,10,197) = +TPK%K196(:)*PCONC(:,85)*TPK%RO223(:) ! -!PTERMS(CARBO,K105) = +0.07976*K105*<ALKAP>*<MO2> - PTERMS(:,25,105) = +0.07976*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) +!PTERMS(RPR7,K196) = +K196*<RO2T>*<RO223> + PTERMS(:,62,197) = +TPK%K196(:)*PCONC(:,85)*TPK%RO223(:) ! -!PTERMS(MO2,K105) = -K105*<ALKAP>*<MO2> - PTERMS(:,32,105) = -TPK%K105(:)*PCONC(:,33)*PCONC(:,32) +!PTERMS(RO2T,K196) = -K196*<RO2T>*<RO223> + PTERMS(:,85,197) = -TPK%K196(:)*PCONC(:,85)*TPK%RO223(:) ! -!PTERMS(ALKAP,K105) = -K105*<ALKAP>*<MO2> - PTERMS(:,33,105) = -TPK%K105(:)*PCONC(:,33)*PCONC(:,32) +!PTERMS(HO2,K197) = -K197*<HO2>*<RO223> + PTERMS(:,10,198) = -TPK%K197(:)*PCONC(:,10)*TPK%RO223(:) ! -!PTERMS(XO2,K105) = +0.13370*K105*<ALKAP>*<MO2> - PTERMS(:,41,105) = +0.13370*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) +!PTERMS(OH,K197) = +K197*<HO2>*<RO223> + PTERMS(:,15,198) = +TPK%K197(:)*PCONC(:,10)*TPK%RO223(:) ! -!PTERMS(HO2,K106) = +K106*<ALKEP>*<MO2> - PTERMS(:,15,106) = +TPK%K106(:)*PCONC(:,34)*PCONC(:,32) +!PTERMS(RPR7,K197) = +K197*<HO2>*<RO223> + PTERMS(:,62,198) = +TPK%K197(:)*PCONC(:,10)*TPK%RO223(:) ! -!PTERMS(HCHO,K106) = +1.42894*K106*<ALKEP>*<MO2> - PTERMS(:,22,106) = +1.42894*TPK%K106(:)*PCONC(:,34)*PCONC(:,32) +!PTERMS(NO,K198) = -K198*<NO>*<RO224> + PTERMS(:,1,199) = -TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) ! ! RETURN -END SUBROUTINE SUBT21 +END SUBROUTINE SUBT32 ! -SUBROUTINE SUBT22 +SUBROUTINE SUBT33 ! -!Indices 441 a 460 +!Indices 661 a 680 ! -!PTERMS(ALD,K106) = +0.46413*K106*<ALKEP>*<MO2> - PTERMS(:,23,106) = +0.46413*TPK%K106(:)*PCONC(:,34)*PCONC(:,32) +!PTERMS(NO2,K198) = +TPK%CF26*K198*<NO>*<RO224> + PTERMS(:,2,199) = +TPK%CF26*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) ! -!PTERMS(KET,K106) = +0.03814*K106*<ALKEP>*<MO2> - PTERMS(:,24,106) = +0.03814*TPK%K106(:)*PCONC(:,34)*PCONC(:,32) +!PTERMS(HO2,K198) = +TPK%CF26*K198*<NO>*<RO224> + PTERMS(:,10,199) = +TPK%CF26*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) ! -!PTERMS(MO2,K106) = -K106*<ALKEP>*<MO2> - PTERMS(:,32,106) = -TPK%K106(:)*PCONC(:,34)*PCONC(:,32) +!PTERMS(RPR3,K198) = +TPK%CFA10*K198*<NO>*<RO224> + PTERMS(:,57,199) = +TPK%CFA10*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) ! -!PTERMS(ALKEP,K106) = -K106*<ALKEP>*<MO2> - PTERMS(:,34,106) = -TPK%K106(:)*PCONC(:,34)*PCONC(:,32) +!PTERMS(AP7,K198) = +TPK%CFA23*K198*<NO>*<RO224> + PTERMS(:,67,199) = +TPK%CFA23*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) ! -!PTERMS(HO2,K107) = +1.00000*K107*<BIOP>*<MO2> - PTERMS(:,15,107) = +1.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) +!PTERMS(HO2,K199) = +K199*<RO2T>*<RO224> + PTERMS(:,10,200) = +TPK%K199(:)*PCONC(:,85)*TPK%RO224(:) ! -!PTERMS(ALKE,K107) = +0.48074*K107*<BIOP>*<MO2> - PTERMS(:,19,107) = +0.48074*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) +!PTERMS(RPR3,K199) = +K199*<RO2T>*<RO224> + PTERMS(:,57,200) = +TPK%K199(:)*PCONC(:,85)*TPK%RO224(:) ! -!PTERMS(HCHO,K107) = +1.09000*K107*<BIOP>*<MO2> - PTERMS(:,22,107) = +1.09000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) +!PTERMS(RO2T,K199) = -K199*<RO2T>*<RO224> + PTERMS(:,85,200) = -TPK%K199(:)*PCONC(:,85)*TPK%RO224(:) ! -!PTERMS(ALD,K107) = +0.00000*K107*<BIOP>*<MO2> - PTERMS(:,23,107) = +0.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) +!PTERMS(HO2,K200) = -K200*<HO2>*<RO224> + PTERMS(:,10,201) = -TPK%K200(:)*PCONC(:,10)*TPK%RO224(:) ! -!PTERMS(KET,K107) = +0.00000*K107*<BIOP>*<MO2> - PTERMS(:,24,107) = +0.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) +!PTERMS(OH,K200) = +K200*<HO2>*<RO224> + PTERMS(:,15,201) = +TPK%K200(:)*PCONC(:,10)*TPK%RO224(:) ! -!PTERMS(CARBO,K107) = +0.56064*K107*<BIOP>*<MO2> - PTERMS(:,25,107) = +0.56064*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) +!PTERMS(RPR3,K200) = +K200*<HO2>*<RO224> + PTERMS(:,57,201) = +TPK%K200(:)*PCONC(:,10)*TPK%RO224(:) ! -!PTERMS(MO2,K107) = -K107*<BIOP>*<MO2> - PTERMS(:,32,107) = -TPK%K107(:)*PCONC(:,35)*PCONC(:,32) +!PTERMS(NO,K201) = -K201*<NO>*<RO225> + PTERMS(:,1,202) = -TPK%K201(:)*PCONC(:,1)*TPK%RO225(:) ! -!PTERMS(BIOP,K107) = -K107*<BIOP>*<MO2> - PTERMS(:,35,107) = -TPK%K107(:)*PCONC(:,35)*PCONC(:,32) +!PTERMS(NO2,K201) = +2.*K201*<NO>*<RO225> + PTERMS(:,2,202) = +2.*TPK%K201(:)*PCONC(:,1)*TPK%RO225(:) ! -!PTERMS(HO2,K108) = +1.02767*K108*<AROP>*<MO2> - PTERMS(:,15,108) = +1.02767*TPK%K108(:)*PCONC(:,38)*PCONC(:,32) +!PTERMS(RPR3,K201) = +K201*<NO>*<RO225> + PTERMS(:,57,202) = +TPK%K201(:)*PCONC(:,1)*TPK%RO225(:) ! -!PTERMS(HCHO,K108) = +K108*<AROP>*<MO2> - PTERMS(:,22,108) = +TPK%K108(:)*PCONC(:,38)*PCONC(:,32) +!PTERMS(NO2,K202) = +K202*<RO2T>*<RO225> + PTERMS(:,2,203) = +TPK%K202(:)*PCONC(:,85)*TPK%RO225(:) ! -!PTERMS(CARBO,K108) = +1.99461*K108*<AROP>*<MO2> - PTERMS(:,25,108) = +1.99461*TPK%K108(:)*PCONC(:,38)*PCONC(:,32) +!PTERMS(RPR3,K202) = +K202*<RO2T>*<RO225> + PTERMS(:,57,203) = +TPK%K202(:)*PCONC(:,85)*TPK%RO225(:) ! -!PTERMS(MO2,K108) = -K108*<AROP>*<MO2> - PTERMS(:,32,108) = -TPK%K108(:)*PCONC(:,38)*PCONC(:,32) +!PTERMS(RO2T,K202) = -K202*<RO2T>*<RO225> + PTERMS(:,85,203) = -TPK%K202(:)*PCONC(:,85)*TPK%RO225(:) ! -!PTERMS(AROP,K108) = -K108*<AROP>*<MO2> - PTERMS(:,38,108) = -TPK%K108(:)*PCONC(:,38)*PCONC(:,32) +!PTERMS(NO2,K203) = +K203*<HO2>*<RO225> + PTERMS(:,2,204) = +TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) ! -!PTERMS(HO2,K109) = +0.82998*K109*<CARBOP>*<MO2> - PTERMS(:,15,109) = +0.82998*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) +!PTERMS(HO2,K203) = -K203*<HO2>*<RO225> + PTERMS(:,10,204) = -TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) ! -!PTERMS(HCHO,K109) = +0.95723*K109*<CARBOP>*<MO2> - PTERMS(:,22,109) = +0.95723*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) +!PTERMS(OH,K203) = +K203*<HO2>*<RO225> + PTERMS(:,15,204) = +TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) ! -!PTERMS(ALD,K109) = +0.08295*K109*<CARBOP>*<MO2> - PTERMS(:,23,109) = +0.08295*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) +!PTERMS(RPR3,K203) = +K203*<HO2>*<RO225> + PTERMS(:,57,204) = +TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) ! ! RETURN -END SUBROUTINE SUBT22 +END SUBROUTINE SUBT33 ! -SUBROUTINE SUBT23 +SUBROUTINE SUBT34 ! -!Indices 461 a 480 +!Indices 681 a 700 ! -!PTERMS(CARBO,K109) = +0.15387*K109*<CARBOP>*<MO2> - PTERMS(:,25,109) = +0.15387*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) +!PTERMS(NO,K204) = -K204*<NO>*<RO226> + PTERMS(:,1,205) = -TPK%K204(:)*PCONC(:,1)*TPK%RO226(:) ! -!PTERMS(ORA2,K109) = +0.13684*K109*<CARBOP>*<MO2> - PTERMS(:,31,109) = +0.13684*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) +!PTERMS(NO2,K204) = +K204*<NO>*<RO226> + PTERMS(:,2,205) = +TPK%K204(:)*PCONC(:,1)*TPK%RO226(:) ! -!PTERMS(MO2,K109) = -K109*<CARBOP>*<MO2> - PTERMS(:,32,109) = -TPK%K109(:)*PCONC(:,39)*PCONC(:,32) +!PTERMS(UR17,K204) = +1.0000000*K204*<NO>*<RO226> + PTERMS(:,55,205) = +1.0000000*TPK%K204(:)*PCONC(:,1)*TPK%RO226(:) ! -!PTERMS(CARBOP,K109) = -K109*<CARBOP>*<MO2> - PTERMS(:,39,109) = -TPK%K109(:)*PCONC(:,39)*PCONC(:,32) +!PTERMS(RO2T,K204) = +K204*<NO>*<RO226> + PTERMS(:,85,205) = +TPK%K204(:)*PCONC(:,1)*TPK%RO226(:) ! -!PTERMS(XO2,K109) = +0.02212*K109*<CARBOP>*<MO2> - PTERMS(:,41,109) = +0.02212*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) +!PTERMS(UR17,K205) = +1.0000000*K205*<RO2T>*<RO226> + PTERMS(:,55,206) = +1.0000000*TPK%K205(:)*PCONC(:,85)*TPK%RO226(:) ! -!PTERMS(NO2,K110) = +0.32440*K110*<OLN>*<MO2> - PTERMS(:,4,110) = +0.32440*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) +!PTERMS(RO2T,K205) = -K205*<RO2T>*<RO226> + PTERMS(:,85,206) = -TPK%K205(:)*PCONC(:,85)*TPK%RO226(:) ! -!PTERMS(HO2,K110) = +0.67560*K110*<OLN>*<MO2> - PTERMS(:,15,110) = +0.67560*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) +!PTERMS(HO2,K206) = -K206*<HO2>*<RO226> + PTERMS(:,10,207) = -TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) ! -!PTERMS(HCHO,K110) = +0.88625*K110*<OLN>*<MO2> - PTERMS(:,22,110) = +0.88625*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) +!PTERMS(OH,K206) = +K206*<HO2>*<RO226> + PTERMS(:,15,207) = +TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) ! -!PTERMS(ALD,K110) = +0.41524*K110*<OLN>*<MO2> - PTERMS(:,23,110) = +0.41524*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) +!PTERMS(UR17,K206) = +1.0000000*K206*<HO2>*<RO226> + PTERMS(:,55,207) = +1.0000000*TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) ! -!PTERMS(KET,K110) = +0.09667*K110*<OLN>*<MO2> - PTERMS(:,24,110) = +0.09667*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) +!PTERMS(RO2T,K206) = +K206*<HO2>*<RO226> + PTERMS(:,85,207) = +TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) ! -!PTERMS(ONIT,K110) = +0.67560*K110*<OLN>*<MO2> - PTERMS(:,26,110) = +0.67560*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) +!PTERMS(NO,K207) = -K207*<NO>*<RO227> + PTERMS(:,1,208) = -TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) ! -!PTERMS(MO2,K110) = -K110*<OLN>*<MO2> - PTERMS(:,32,110) = -TPK%K110(:)*PCONC(:,40)*PCONC(:,32) +!PTERMS(NO2,K207) = +TPK%CF28*K207*<NO>*<RO227> + PTERMS(:,2,208) = +TPK%CF28*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) ! -!PTERMS(OLN,K110) = -K110*<OLN>*<MO2> - PTERMS(:,40,110) = -TPK%K110(:)*PCONC(:,40)*PCONC(:,32) +!PTERMS(HO2,K207) = +TPK%CF28*K207*<NO>*<RO227> + PTERMS(:,10,208) = +TPK%CF28*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) ! -!PTERMS(HO2,K111) = +0.48079*K111*<ALKAP>*<CARBOP> - PTERMS(:,15,111) = +0.48079*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(UR7,K207) = +TPK%CFA12*K207*<NO>*<RO227> + PTERMS(:,56,208) = +TPK%CFA12*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) ! -!PTERMS(HCHO,K111) = +0.07600*K111*<ALKAP>*<CARBOP> - PTERMS(:,22,111) = +0.07600*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(URG10,K207) = +TPK%CF27*K207*<NO>*<RO227> + PTERMS(:,68,208) = +TPK%CF27*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) ! -!PTERMS(ALD,K111) = +0.71461*K111*<ALKAP>*<CARBOP> - PTERMS(:,23,111) = +0.71461*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(HO2,K208) = +K208*<RO2T>*<RO227> + PTERMS(:,10,209) = +TPK%K208(:)*PCONC(:,85)*TPK%RO227(:) ! -!PTERMS(KET,K111) = +0.18819*K111*<ALKAP>*<CARBOP> - PTERMS(:,24,111) = +0.18819*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(UR7,K208) = +K208*<RO2T>*<RO227> + PTERMS(:,56,209) = +TPK%K208(:)*PCONC(:,85)*TPK%RO227(:) ! -!PTERMS(CARBO,K111) = +0.06954*K111*<ALKAP>*<CARBOP> - PTERMS(:,25,111) = +0.06954*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(RO2T,K208) = -K208*<RO2T>*<RO227> + PTERMS(:,85,209) = -TPK%K208(:)*PCONC(:,85)*TPK%RO227(:) ! -!PTERMS(ORA2,K111) = +0.49810*K111*<ALKAP>*<CARBOP> - PTERMS(:,31,111) = +0.49810*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(HO2,K209) = -K209*<HO2>*<RO227> + PTERMS(:,10,210) = -TPK%K209(:)*PCONC(:,10)*TPK%RO227(:) ! -!PTERMS(MO2,K111) = +0.51480*K111*<ALKAP>*<CARBOP> - PTERMS(:,32,111) = +0.51480*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(OH,K209) = +K209*<HO2>*<RO227> + PTERMS(:,15,210) = +TPK%K209(:)*PCONC(:,10)*TPK%RO227(:) ! ! RETURN -END SUBROUTINE SUBT23 +END SUBROUTINE SUBT34 ! -SUBROUTINE SUBT24 +SUBROUTINE SUBT35 ! -!Indices 481 a 500 +!Indices 701 a 720 ! -!PTERMS(ALKAP,K111) = -K111*<ALKAP>*<CARBOP> - PTERMS(:,33,111) = -TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(UR7,K209) = +0.3*K209*<HO2>*<RO227> + PTERMS(:,56,210) = +0.3*TPK%K209(:)*PCONC(:,10)*TPK%RO227(:) ! -!PTERMS(CARBOP,K111) = -K111*<ALKAP>*<CARBOP> - PTERMS(:,39,111) = -TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(NO,K210) = -K210*<NO>*<RO228> + PTERMS(:,1,211) = -TPK%K210(:)*PCONC(:,1)*TPK%RO228(:) ! -!PTERMS(XO2,K111) = +0.11306*K111*<ALKAP>*<CARBOP> - PTERMS(:,41,111) = +0.11306*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(NO2,K210) = +2.*K210*<NO>*<RO228> + PTERMS(:,2,211) = +2.*TPK%K210(:)*PCONC(:,1)*TPK%RO228(:) ! -!PTERMS(HO2,K112) = +0.50078*K112*<ALKEP>*<CARBOP> - PTERMS(:,15,112) = +0.50078*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) +!PTERMS(UR7,K210) = +0.3*K210*<NO>*<RO228> + PTERMS(:,56,211) = +0.3*TPK%K210(:)*PCONC(:,1)*TPK%RO228(:) ! -!PTERMS(HCHO,K112) = +0.68192*K112*<ALKEP>*<CARBOP> - PTERMS(:,22,112) = +0.68192*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) +!PTERMS(NO2,K211) = +K211*<RO2T>*<RO228> + PTERMS(:,2,212) = +TPK%K211(:)*PCONC(:,85)*TPK%RO228(:) ! -!PTERMS(ALD,K112) = +0.68374*K112*<ALKEP>*<CARBOP> - PTERMS(:,23,112) = +0.68374*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) +!PTERMS(UR7,K211) = +0.3*K211*<RO2T>*<RO228> + PTERMS(:,56,212) = +0.3*TPK%K211(:)*PCONC(:,85)*TPK%RO228(:) ! -!PTERMS(KET,K112) = +0.06579*K112*<ALKEP>*<CARBOP> - PTERMS(:,24,112) = +0.06579*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) +!PTERMS(RO2T,K211) = -K211*<RO2T>*<RO228> + PTERMS(:,85,212) = -TPK%K211(:)*PCONC(:,85)*TPK%RO228(:) ! -!PTERMS(ORA2,K112) = +0.49922*K112*<ALKEP>*<CARBOP> - PTERMS(:,31,112) = +0.49922*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) +!PTERMS(NO2,K212) = +K212*<HO2>*<RO228> + PTERMS(:,2,213) = +TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) ! -!PTERMS(MO2,K112) = +0.50078*K112*<ALKEP>*<CARBOP> - PTERMS(:,32,112) = +0.50078*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) +!PTERMS(HO2,K212) = -K212*<HO2>*<RO228> + PTERMS(:,10,213) = -TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) ! -!PTERMS(ALKEP,K112) = -K112*<ALKEP>*<CARBOP> - PTERMS(:,34,112) = -TPK%K112(:)*PCONC(:,34)*PCONC(:,39) +!PTERMS(OH,K212) = +K212*<HO2>*<RO228> + PTERMS(:,15,213) = +TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) ! -!PTERMS(CARBOP,K112) = -K112*<ALKEP>*<CARBOP> - PTERMS(:,39,112) = -TPK%K112(:)*PCONC(:,34)*PCONC(:,39) +!PTERMS(UR7,K212) = +0.3*K212*<HO2>*<RO228> + PTERMS(:,56,213) = +0.3*TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) ! -!PTERMS(HO2,K113) = +0.50600*K113*<BIOP>*<CARBOP> - PTERMS(:,15,113) = +0.50600*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(NO,K213) = -K213*<NO>*<RO229> + PTERMS(:,1,214) = -TPK%K213(:)*PCONC(:,1)*TPK%RO229(:) ! -!PTERMS(ALKE,K113) = +0.24463*K113*<BIOP>*<CARBOP> - PTERMS(:,19,113) = +0.24463*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(NO2,K213) = +TPK%CF30*K213*<NO>*<RO229> + PTERMS(:,2,214) = +TPK%CF30*TPK%K213(:)*PCONC(:,1)*TPK%RO229(:) ! -!PTERMS(HCHO,K113) = +0.34000*K113*<BIOP>*<CARBOP> - PTERMS(:,22,113) = +0.34000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(RO2T,K213) = +TPK%CF30*K213*<NO>*<RO229> + PTERMS(:,85,214) = +TPK%CF30*TPK%K213(:)*PCONC(:,1)*TPK%RO229(:) ! -!PTERMS(ALD,K113) = +0.00000*K113*<BIOP>*<CARBOP> - PTERMS(:,23,113) = +0.00000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(RO2T,K214) = -K214*<RO2T>*<RO229> + PTERMS(:,85,215) = -TPK%K214(:)*PCONC(:,85)*TPK%RO229(:) ! -!PTERMS(KET,K113) = +0.00000*K113*<BIOP>*<CARBOP> - PTERMS(:,24,113) = +0.00000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(HO2,K215) = -K215*<HO2>*<RO229> + PTERMS(:,10,216) = -TPK%K215(:)*PCONC(:,10)*TPK%RO229(:) ! -!PTERMS(CARBO,K113) = +0.78591*K113*<BIOP>*<CARBOP> - PTERMS(:,25,113) = +0.78591*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(OH,K215) = +K215*<HO2>*<RO229> + PTERMS(:,15,216) = +TPK%K215(:)*PCONC(:,10)*TPK%RO229(:) ! -!PTERMS(ORA2,K113) = +0.49400*K113*<BIOP>*<CARBOP> - PTERMS(:,31,113) = +0.49400*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(RO2T,K215) = +K215*<HO2>*<RO229> + PTERMS(:,85,216) = +TPK%K215(:)*PCONC(:,10)*TPK%RO229(:) ! -!PTERMS(MO2,K113) = +0.50600*K113*<BIOP>*<CARBOP> - PTERMS(:,32,113) = +0.50600*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(NO,K216) = -K216*<NO>*<RO240> + PTERMS(:,1,217) = -TPK%K216(:)*PCONC(:,1)*TPK%RO240(:) ! -!PTERMS(BIOP,K113) = -K113*<BIOP>*<CARBOP> - PTERMS(:,35,113) = -TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(NO2,K216) = +K216*<NO>*<RO240> + PTERMS(:,2,217) = +TPK%K216(:)*PCONC(:,1)*TPK%RO240(:) ! ! RETURN -END SUBROUTINE SUBT24 +END SUBROUTINE SUBT35 ! -SUBROUTINE SUBT25 +SUBROUTINE SUBT36 ! -!Indices 501 a 520 +!Indices 721 a 740 ! -!PTERMS(CARBOP,K113) = -K113*<BIOP>*<CARBOP> - PTERMS(:,39,113) = -TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(RPR8,K216) = +K216*<NO>*<RO240> + PTERMS(:,71,217) = +TPK%K216(:)*PCONC(:,1)*TPK%RO240(:) ! -!PTERMS(HO2,K114) = +K114*<AROP>*<CARBOP> - PTERMS(:,15,114) = +TPK%K114(:)*PCONC(:,38)*PCONC(:,39) +!PTERMS(RO2T,K216) = +K216*<NO>*<RO240> + PTERMS(:,85,217) = +TPK%K216(:)*PCONC(:,1)*TPK%RO240(:) ! -!PTERMS(CARBO,K114) = +1.99455*K114*<AROP>*<CARBOP> - PTERMS(:,25,114) = +1.99455*TPK%K114(:)*PCONC(:,38)*PCONC(:,39) +!PTERMS(RPR8,K217) = +K217*<RO2T>*<RO240> + PTERMS(:,71,218) = +TPK%K217(:)*PCONC(:,85)*TPK%RO240(:) ! -!PTERMS(MO2,K114) = +K114*<AROP>*<CARBOP> - PTERMS(:,32,114) = +TPK%K114(:)*PCONC(:,38)*PCONC(:,39) +!PTERMS(RO2T,K217) = -K217*<RO2T>*<RO240> + PTERMS(:,85,218) = -TPK%K217(:)*PCONC(:,85)*TPK%RO240(:) ! -!PTERMS(AROP,K114) = -K114*<AROP>*<CARBOP> - PTERMS(:,38,114) = -TPK%K114(:)*PCONC(:,38)*PCONC(:,39) +!PTERMS(HO2,K218) = -K218*<HO2>*<RO240> + PTERMS(:,10,219) = -TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) ! -!PTERMS(CARBOP,K114) = -K114*<AROP>*<CARBOP> - PTERMS(:,39,114) = -TPK%K114(:)*PCONC(:,38)*PCONC(:,39) +!PTERMS(OH,K218) = +K218*<HO2>*<RO240> + PTERMS(:,15,219) = +TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) ! -!PTERMS(HO2,K115) = +0.07566*K115*<CARBOP>*<CARBOP> - PTERMS(:,15,115) = +0.07566*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(RPR8,K218) = +K218*<HO2>*<RO240> + PTERMS(:,71,219) = +TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) ! -!PTERMS(HCHO,K115) = +0.03432*K115*<CARBOP>*<CARBOP> - PTERMS(:,22,115) = +0.03432*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(RO2T,K218) = +K218*<HO2>*<RO240> + PTERMS(:,85,219) = +TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) ! -!PTERMS(ALD,K115) = +0.06969*K115*<CARBOP>*<CARBOP> - PTERMS(:,23,115) = +0.06969*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(RO2T,K219) = -K219*<RO2T>*<RO230> + PTERMS(:,85,220) = -TPK%K219(:)*PCONC(:,85)*TPK%RO230(:) ! -!PTERMS(KET,K115) = +0.02190*K115*<CARBOP>*<CARBOP> - PTERMS(:,24,115) = +0.02190*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(HO2,K220) = -K220*<HO2>*<RO230> + PTERMS(:,10,221) = -TPK%K220(:)*PCONC(:,10)*TPK%RO230(:) ! -!PTERMS(CARBO,K115) = +0.10777*K115*<CARBOP>*<CARBOP> - PTERMS(:,25,115) = +0.10777*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(OH,K220) = +K220*<HO2>*<RO230> + PTERMS(:,15,221) = +TPK%K220(:)*PCONC(:,10)*TPK%RO230(:) ! -!PTERMS(ORA2,K115) = +0.09955*K115*<CARBOP>*<CARBOP> - PTERMS(:,31,115) = +0.09955*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(RO2T,K220) = +K220*<HO2>*<RO230> + PTERMS(:,85,221) = +TPK%K220(:)*PCONC(:,10)*TPK%RO230(:) ! -!PTERMS(MO2,K115) = +1.66702*K115*<CARBOP>*<CARBOP> - PTERMS(:,32,115) = +1.66702*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(NO,K221) = -K221*<NO>*<RO231> + PTERMS(:,1,222) = -TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) ! -!PTERMS(CARBOP,K115) = -K115*<CARBOP>*<CARBOP> - PTERMS(:,39,115) = -TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(NO2,K221) = +TPK%CF32*K221*<NO>*<RO231> + PTERMS(:,2,222) = +TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) ! -!PTERMS(XO2,K115) = +0.01593*K115*<CARBOP>*<CARBOP> - PTERMS(:,41,115) = +0.01593*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(HO2,K221) = +TPK%CF32*K221*<NO>*<RO231> + PTERMS(:,10,222) = +TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) ! -!PTERMS(NO2,K116) = +0.00000*K116*<OLN>*<CARBOP> - PTERMS(:,4,116) = +0.00000*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(URG8,K221) = +TPK%CF31*K221*<NO>*<RO231> + PTERMS(:,64,222) = +TPK%CF31*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) ! -!PTERMS(HO2,K116) = +0.17599*K116*<OLN>*<CARBOP> - PTERMS(:,15,116) = +0.17599*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(UR19,K221) = +TPK%CF32*K221*<NO>*<RO231> + PTERMS(:,65,222) = +TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) ! -!PTERMS(HCHO,K116) = +0.13414*K116*<OLN>*<CARBOP> - PTERMS(:,22,116) = +0.13414*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(HO2,K222) = +K222*<RO2T>*<RO231> + PTERMS(:,10,223) = +TPK%K222(:)*PCONC(:,85)*TPK%RO231(:) ! -!PTERMS(ALD,K116) = +0.42122*K116*<OLN>*<CARBOP> - PTERMS(:,23,116) = +0.42122*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(UR19,K222) = +K222*<RO2T>*<RO231> + PTERMS(:,65,223) = +TPK%K222(:)*PCONC(:,85)*TPK%RO231(:) ! -!PTERMS(KET,K116) = +0.10822*K116*<OLN>*<CARBOP> - PTERMS(:,24,116) = +0.10822*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(RO2T,K222) = -K222*<RO2T>*<RO231> + PTERMS(:,85,223) = -TPK%K222(:)*PCONC(:,85)*TPK%RO231(:) ! ! RETURN -END SUBROUTINE SUBT25 +END SUBROUTINE SUBT36 ! -SUBROUTINE SUBT26 +SUBROUTINE SUBT37 ! -!Indices 521 a 540 +!Indices 741 a 760 ! -!PTERMS(ONIT,K116) = +0.66562*K116*<OLN>*<CARBOP> - PTERMS(:,26,116) = +0.66562*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(HO2,K223) = -K223*<HO2>*<RO231> + PTERMS(:,10,224) = -TPK%K223(:)*PCONC(:,10)*TPK%RO231(:) ! -!PTERMS(ORA2,K116) = +0.48963*K116*<OLN>*<CARBOP> - PTERMS(:,31,116) = +0.48963*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(OH,K223) = +K223*<HO2>*<RO231> + PTERMS(:,15,224) = +TPK%K223(:)*PCONC(:,10)*TPK%RO231(:) ! -!PTERMS(MO2,K116) = +0.51037*K116*<OLN>*<CARBOP> - PTERMS(:,32,116) = +0.51037*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(UR19,K223) = +K223*<HO2>*<RO231> + PTERMS(:,65,224) = +TPK%K223(:)*PCONC(:,10)*TPK%RO231(:) ! -!PTERMS(CARBOP,K116) = -K116*<OLN>*<CARBOP> - PTERMS(:,39,116) = -TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(NO,K224) = -K224*<NO>*<RO232> + PTERMS(:,1,225) = -TPK%K224(:)*PCONC(:,1)*TPK%RO232(:) ! -!PTERMS(OLN,K116) = -K116*<OLN>*<CARBOP> - PTERMS(:,40,116) = -TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(NO2,K224) = +TPK%CF34*K224*<NO>*<RO232> + PTERMS(:,2,225) = +TPK%CF34*TPK%K224(:)*PCONC(:,1)*TPK%RO232(:) ! -!PTERMS(HO2,K117) = +K117*<OLN>*<OLN> - PTERMS(:,15,117) = +TPK%K117(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(URG9,K224) = +TPK%CFA14*K224*<NO>*<RO232> + PTERMS(:,66,225) = +TPK%CFA14*TPK%K224(:)*PCONC(:,1)*TPK%RO232(:) ! -!PTERMS(ONIT,K117) = +2.00*K117*<OLN>*<OLN> - PTERMS(:,26,117) = +2.00*TPK%K117(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(RO2T,K224) = +TPK%CF34*K224*<NO>*<RO232> + PTERMS(:,85,225) = +TPK%CF34*TPK%K224(:)*PCONC(:,1)*TPK%RO232(:) ! -!PTERMS(OLN,K117) = -K117*<OLN>*<OLN> - PTERMS(:,40,117) = -TPK%K117(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(RO2T,K225) = -K225*<RO2T>*<RO232> + PTERMS(:,85,226) = -TPK%K225(:)*PCONC(:,85)*TPK%RO232(:) ! -!PTERMS(NO2,K118) = +0.00000*K118*<OLN>*<OLN> - PTERMS(:,4,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(HO2,K226) = -K226*<HO2>*<RO232> + PTERMS(:,10,227) = -TPK%K226(:)*PCONC(:,10)*TPK%RO232(:) ! -!PTERMS(HO2,K118) = +0.00000*K118*<OLN>*<OLN> - PTERMS(:,15,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(OH,K226) = +K226*<HO2>*<RO232> + PTERMS(:,15,227) = +TPK%K226(:)*PCONC(:,10)*TPK%RO232(:) ! -!PTERMS(HCHO,K118) = +0.00000*K118*<OLN>*<OLN> - PTERMS(:,22,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(RO2T,K226) = +K226*<HO2>*<RO232> + PTERMS(:,85,227) = +TPK%K226(:)*PCONC(:,10)*TPK%RO232(:) ! -!PTERMS(ALD,K118) = +0.00000*K118*<OLN>*<OLN> - PTERMS(:,23,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(NO,K227) = -K227*<NO>*<RO241> + PTERMS(:,1,228) = -TPK%K227(:)*PCONC(:,1)*TPK%RO241(:) ! -!PTERMS(KET,K118) = +0.00000*K118*<OLN>*<OLN> - PTERMS(:,24,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(NO2,K227) = +TPK%CF36*K227*<NO>*<RO241> + PTERMS(:,2,228) = +TPK%CF36*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:) ! -!PTERMS(ONIT,K118) = +0.00000*K118*<OLN>*<OLN> - PTERMS(:,26,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(HO2,K227) = +TPK%CF36*K227*<NO>*<RO241> + PTERMS(:,10,228) = +TPK%CF36*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:) ! -!PTERMS(OLN,K118) = -K118*<OLN>*<OLN> - PTERMS(:,40,118) = -TPK%K118(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(URG9,K227) = +TPK%CFA15*K227*<NO>*<RO241> + PTERMS(:,66,228) = +TPK%CFA15*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:) ! -!PTERMS(NO2,K119) = +K119*<MO2>*<NO3> - PTERMS(:,4,119) = +TPK%K119(:)*PCONC(:,32)*PCONC(:,5) +!PTERMS(HO2,K228) = +K228*<RO2T>*<RO241> + PTERMS(:,10,229) = +TPK%K228(:)*PCONC(:,85)*TPK%RO241(:) ! -!PTERMS(NO3,K119) = -K119*<MO2>*<NO3> - PTERMS(:,5,119) = -TPK%K119(:)*PCONC(:,32)*PCONC(:,5) +!PTERMS(URG9,K228) = +0.9999996*K228*<RO2T>*<RO241> + PTERMS(:,66,229) = +0.9999996*TPK%K228(:)*PCONC(:,85)*TPK%RO241(:) ! -!PTERMS(HO2,K119) = +K119*<MO2>*<NO3> - PTERMS(:,15,119) = +TPK%K119(:)*PCONC(:,32)*PCONC(:,5) +!PTERMS(RO2T,K228) = -K228*<RO2T>*<RO241> + PTERMS(:,85,229) = -TPK%K228(:)*PCONC(:,85)*TPK%RO241(:) ! -!PTERMS(HCHO,K119) = +K119*<MO2>*<NO3> - PTERMS(:,22,119) = +TPK%K119(:)*PCONC(:,32)*PCONC(:,5) +!PTERMS(HO2,K229) = -K229*<HO2>*<RO241> + PTERMS(:,10,230) = -TPK%K229(:)*PCONC(:,10)*TPK%RO241(:) ! -!PTERMS(MO2,K119) = -K119*<MO2>*<NO3> - PTERMS(:,32,119) = -TPK%K119(:)*PCONC(:,32)*PCONC(:,5) +!PTERMS(OH,K229) = +K229*<HO2>*<RO241> + PTERMS(:,15,230) = +TPK%K229(:)*PCONC(:,10)*TPK%RO241(:) ! ! RETURN -END SUBROUTINE SUBT26 +END SUBROUTINE SUBT37 ! -SUBROUTINE SUBT27 +SUBROUTINE SUBT38 ! -!Indices 541 a 560 +!Indices 761 a 780 ! -!PTERMS(NO2,K120) = +K120*<ALKAP>*<NO3> - PTERMS(:,4,120) = +TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(URG9,K229) = +0.9999996*K229*<HO2>*<RO241> + PTERMS(:,66,230) = +0.9999996*TPK%K229(:)*PCONC(:,10)*TPK%RO241(:) ! -!PTERMS(NO3,K120) = -K120*<ALKAP>*<NO3> - PTERMS(:,5,120) = -TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(RO2T,K230) = +K230*<RO233> + PTERMS(:,85,231) = +TPK%K230(:)*TPK%RO233(:) ! -!PTERMS(HO2,K120) = +0.81290*K120*<ALKAP>*<NO3> - PTERMS(:,15,120) = +0.81290*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(NO,K231) = -K231*<NO>*<RO233> + PTERMS(:,1,232) = -TPK%K231(:)*PCONC(:,1)*TPK%RO233(:) ! -!PTERMS(HCHO,K120) = +0.03142*K120*<ALKAP>*<NO3> - PTERMS(:,22,120) = +0.03142*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(NO2,K231) = +K231*<NO>*<RO233> + PTERMS(:,2,232) = +TPK%K231(:)*PCONC(:,1)*TPK%RO233(:) ! -!PTERMS(ALD,K120) = +0.33743*K120*<ALKAP>*<NO3> - PTERMS(:,23,120) = +0.33743*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(HO2,K231) = +K231*<NO>*<RO233> + PTERMS(:,10,232) = +TPK%K231(:)*PCONC(:,1)*TPK%RO233(:) ! -!PTERMS(KET,K120) = +0.62978*K120*<ALKAP>*<NO3> - PTERMS(:,24,120) = +0.62978*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(RPG3,K231) = +0.3000000*K231*<NO>*<RO233> + PTERMS(:,52,232) = +0.3000000*TPK%K231(:)*PCONC(:,1)*TPK%RO233(:) ! -!PTERMS(CARBO,K120) = +0.03531*K120*<ALKAP>*<NO3> - PTERMS(:,25,120) = +0.03531*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(HO2,K232) = +K232*<RO2T>*<RO233> + PTERMS(:,10,233) = +TPK%K232(:)*PCONC(:,85)*TPK%RO233(:) ! -!PTERMS(MO2,K120) = +0.09731*K120*<ALKAP>*<NO3> - PTERMS(:,32,120) = +0.09731*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(RPG3,K232) = +1.0000000*K232*<RO2T>*<RO233> + PTERMS(:,52,233) = +1.0000000*TPK%K232(:)*PCONC(:,85)*TPK%RO233(:) ! -!PTERMS(ALKAP,K120) = -K120*<ALKAP>*<NO3> - PTERMS(:,33,120) = -TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(RO2T,K232) = -K232*<RO2T>*<RO233> + PTERMS(:,85,233) = -TPK%K232(:)*PCONC(:,85)*TPK%RO233(:) ! -!PTERMS(XO2,K120) = +0.16271*K120*<ALKAP>*<NO3> - PTERMS(:,41,120) = +0.16271*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(HO2,K233) = -K233*<HO2>*<RO233> + PTERMS(:,10,234) = -TPK%K233(:)*PCONC(:,10)*TPK%RO233(:) ! -!PTERMS(NO2,K121) = +K121*<ALKEP>*<NO3> - PTERMS(:,4,121) = +TPK%K121(:)*PCONC(:,34)*PCONC(:,5) +!PTERMS(OH,K233) = +K233*<HO2>*<RO233> + PTERMS(:,15,234) = +TPK%K233(:)*PCONC(:,10)*TPK%RO233(:) ! -!PTERMS(NO3,K121) = -K121*<ALKEP>*<NO3> - PTERMS(:,5,121) = -TPK%K121(:)*PCONC(:,34)*PCONC(:,5) +!PTERMS(RPG3,K233) = +0.3000000*K233*<HO2>*<RO233> + PTERMS(:,52,234) = +0.3000000*TPK%K233(:)*PCONC(:,10)*TPK%RO233(:) ! -!PTERMS(HO2,K121) = +K121*<ALKEP>*<NO3> - PTERMS(:,15,121) = +TPK%K121(:)*PCONC(:,34)*PCONC(:,5) +!PTERMS(NO,K234) = -K234*<NO>*<RO242> + PTERMS(:,1,235) = -TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) ! -!PTERMS(HCHO,K121) = +1.40909*K121*<ALKEP>*<NO3> - PTERMS(:,22,121) = +1.40909*TPK%K121(:)*PCONC(:,34)*PCONC(:,5) +!PTERMS(NO2,K234) = +K234*<NO>*<RO242> + PTERMS(:,2,235) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) ! -!PTERMS(ALD,K121) = +0.43039*K121*<ALKEP>*<NO3> - PTERMS(:,23,121) = +0.43039*TPK%K121(:)*PCONC(:,34)*PCONC(:,5) +!PTERMS(HO2,K234) = +K234*<NO>*<RO242> + PTERMS(:,10,235) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) ! -!PTERMS(KET,K121) = +0.02051*K121*<ALKEP>*<NO3> - PTERMS(:,24,121) = +0.02051*TPK%K121(:)*PCONC(:,34)*PCONC(:,5) +!PTERMS(MGLY,K234) = +K234*<NO>*<RO242> + PTERMS(:,41,235) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) ! -!PTERMS(ALKEP,K121) = -K121*<ALKEP>*<NO3> - PTERMS(:,34,121) = -TPK%K121(:)*PCONC(:,34)*PCONC(:,5) +!PTERMS(RP10,K234) = +K234*<NO>*<RO242> + PTERMS(:,72,235) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) ! -!PTERMS(NO2,K122) = +K122*<BIOP>*<NO3> - PTERMS(:,4,122) = +TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(HO2,K235) = +K235*<RO2T>*<RO242> + PTERMS(:,10,236) = +TPK%K235(:)*PCONC(:,85)*TPK%RO242(:) ! -!PTERMS(NO3,K122) = -K122*<BIOP>*<NO3> - PTERMS(:,5,122) = -TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(MGLY,K235) = +K235*<RO2T>*<RO242> + PTERMS(:,41,236) = +TPK%K235(:)*PCONC(:,85)*TPK%RO242(:) ! -!PTERMS(HO2,K122) = +K122*<BIOP>*<NO3> - PTERMS(:,15,122) = +TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(RP10,K235) = +K235*<RO2T>*<RO242> + PTERMS(:,72,236) = +TPK%K235(:)*PCONC(:,85)*TPK%RO242(:) ! ! RETURN -END SUBROUTINE SUBT27 +END SUBROUTINE SUBT38 ! -SUBROUTINE SUBT28 +SUBROUTINE SUBT39 ! -!Indices 561 a 580 +!Indices 781 a 800 ! -!PTERMS(ALKE,K122) = +0.42729*K122*<BIOP>*<NO3> - PTERMS(:,19,122) = +0.42729*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(RO2T,K235) = -K235*<RO2T>*<RO242> + PTERMS(:,85,236) = -TPK%K235(:)*PCONC(:,85)*TPK%RO242(:) ! -!PTERMS(HCHO,K122) = +0.68600*K122*<BIOP>*<NO3> - PTERMS(:,22,122) = +0.68600*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(HO2,K236) = -K236*<HO2>*<RO242> + PTERMS(:,10,237) = -TPK%K236(:)*PCONC(:,10)*TPK%RO242(:) ! -!PTERMS(ALD,K122) = +0.00000*K122*<BIOP>*<NO3> - PTERMS(:,23,122) = +0.00000*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(OH,K236) = +K236*<HO2>*<RO242> + PTERMS(:,15,237) = +TPK%K236(:)*PCONC(:,10)*TPK%RO242(:) ! -!PTERMS(KET,K122) = +0.00000*K122*<BIOP>*<NO3> - PTERMS(:,24,122) = +0.00000*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(MGLY,K236) = +K236*<HO2>*<RO242> + PTERMS(:,41,237) = +TPK%K236(:)*PCONC(:,10)*TPK%RO242(:) ! -!PTERMS(CARBO,K122) = +0.61160*K122*<BIOP>*<NO3> - PTERMS(:,25,122) = +0.61160*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(RP10,K236) = +K236*<HO2>*<RO242> + PTERMS(:,72,237) = +TPK%K236(:)*PCONC(:,10)*TPK%RO242(:) ! -!PTERMS(BIOP,K122) = -K122*<BIOP>*<NO3> - PTERMS(:,35,122) = -TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(RO2T,K237) = +K237*<RO234> + PTERMS(:,85,238) = +TPK%K237(:)*TPK%RO234(:) ! -!PTERMS(NO2,K123) = +K123*<AROP>*<NO3> - PTERMS(:,4,123) = +TPK%K123(:)*PCONC(:,38)*PCONC(:,5) +!PTERMS(NO,K238) = -K238*<NO>*<RO234> + PTERMS(:,1,239) = -TPK%K238(:)*PCONC(:,1)*TPK%RO234(:) ! -!PTERMS(NO3,K123) = -K123*<AROP>*<NO3> - PTERMS(:,5,123) = -TPK%K123(:)*PCONC(:,38)*PCONC(:,5) +!PTERMS(NO2,K238) = +K238*<NO>*<RO234> + PTERMS(:,2,239) = +TPK%K238(:)*PCONC(:,1)*TPK%RO234(:) ! -!PTERMS(HO2,K123) = +K123*<AROP>*<NO3> - PTERMS(:,15,123) = +TPK%K123(:)*PCONC(:,38)*PCONC(:,5) +!PTERMS(HO2,K238) = +K238*<NO>*<RO234> + PTERMS(:,10,239) = +TPK%K238(:)*PCONC(:,1)*TPK%RO234(:) ! -!PTERMS(CARBO,K123) = +2.81904*K123*<AROP>*<NO3> - PTERMS(:,25,123) = +2.81904*TPK%K123(:)*PCONC(:,38)*PCONC(:,5) +!PTERMS(RP11,K238) = +0.3*K238*<NO>*<RO234> + PTERMS(:,73,239) = +0.3*TPK%K238(:)*PCONC(:,1)*TPK%RO234(:) ! -!PTERMS(AROP,K123) = -K123*<AROP>*<NO3> - PTERMS(:,38,123) = -TPK%K123(:)*PCONC(:,38)*PCONC(:,5) +!PTERMS(HO2,K239) = +K239*<RO2T>*<RO234> + PTERMS(:,10,240) = +TPK%K239(:)*PCONC(:,85)*TPK%RO234(:) ! -!PTERMS(NO2,K124) = +K124*<CARBOP>*<NO3> - PTERMS(:,4,124) = +TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(RP11,K239) = +K239*<RO2T>*<RO234> + PTERMS(:,73,240) = +TPK%K239(:)*PCONC(:,85)*TPK%RO234(:) ! -!PTERMS(NO3,K124) = -K124*<CARBOP>*<NO3> - PTERMS(:,5,124) = -TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(RO2T,K239) = -K239*<RO2T>*<RO234> + PTERMS(:,85,240) = -TPK%K239(:)*PCONC(:,85)*TPK%RO234(:) ! -!PTERMS(HO2,K124) = +0.04915*K124*<CARBOP>*<NO3> - PTERMS(:,15,124) = +0.04915*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(HO2,K240) = -K240*<HO2>*<RO234> + PTERMS(:,10,241) = -TPK%K240(:)*PCONC(:,10)*TPK%RO234(:) ! -!PTERMS(HCHO,K124) = +0.03175*K124*<CARBOP>*<NO3> - PTERMS(:,22,124) = +0.03175*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(OH,K240) = +K240*<HO2>*<RO234> + PTERMS(:,15,241) = +TPK%K240(:)*PCONC(:,10)*TPK%RO234(:) ! -!PTERMS(ALD,K124) = +0.02936*K124*<CARBOP>*<NO3> - PTERMS(:,23,124) = +0.02936*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(RP11,K240) = +0.3*K240*<HO2>*<RO234> + PTERMS(:,73,241) = +0.3*TPK%K240(:)*PCONC(:,10)*TPK%RO234(:) ! -!PTERMS(CARBO,K124) = +0.03455*K124*<CARBOP>*<NO3> - PTERMS(:,25,124) = +0.03455*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(NO,K241) = -K241*<NO>*<RO243> + PTERMS(:,1,242) = -TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) ! -!PTERMS(MO2,K124) = +0.91910*K124*<CARBOP>*<NO3> - PTERMS(:,32,124) = +0.91910*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(NO2,K241) = +K241*<NO>*<RO243> + PTERMS(:,2,242) = +TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) ! -!PTERMS(CARBOP,K124) = -K124*<CARBOP>*<NO3> - PTERMS(:,39,124) = -TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(HO2,K241) = +K241*<NO>*<RO243> + PTERMS(:,10,242) = +TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) ! -!PTERMS(XO2,K124) = +0.01021*K124*<CARBOP>*<NO3> - PTERMS(:,41,124) = +0.01021*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(MGLY,K241) = +K241*<NO>*<RO243> + PTERMS(:,41,242) = +TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) ! ! RETURN -END SUBROUTINE SUBT28 +END SUBROUTINE SUBT39 ! -SUBROUTINE SUBT29 +SUBROUTINE SUBT40 ! -!Indices 581 a 600 +!Indices 801 a 820 ! -!PTERMS(NO2,K125) = +1.74072*K125*<OLN>*<NO3> - PTERMS(:,4,125) = +1.74072*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PTERMS(RP10,K241) = +K241*<NO>*<RO243> + PTERMS(:,72,242) = +TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) ! -!PTERMS(NO3,K125) = -K125*<OLN>*<NO3> - PTERMS(:,5,125) = -TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PTERMS(HO2,K242) = +K242*<RO2T>*<RO243> + PTERMS(:,10,243) = +TPK%K242(:)*PCONC(:,85)*TPK%RO243(:) ! -!PTERMS(HO2,K125) = +0.25928*K125*<OLN>*<NO3> - PTERMS(:,15,125) = +0.25928*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PTERMS(MGLY,K242) = +K242*<RO2T>*<RO243> + PTERMS(:,41,243) = +TPK%K242(:)*PCONC(:,85)*TPK%RO243(:) ! -!PTERMS(HCHO,K125) = +0.20740*K125*<OLN>*<NO3> - PTERMS(:,22,125) = +0.20740*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PTERMS(RP10,K242) = +K242*<RO2T>*<RO243> + PTERMS(:,72,243) = +TPK%K242(:)*PCONC(:,85)*TPK%RO243(:) ! -!PTERMS(ALD,K125) = +0.91850*K125*<OLN>*<NO3> - PTERMS(:,23,125) = +0.91850*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PTERMS(RO2T,K242) = -K242*<RO2T>*<RO243> + PTERMS(:,85,243) = -TPK%K242(:)*PCONC(:,85)*TPK%RO243(:) ! -!PTERMS(KET,K125) = +0.34740*K125*<OLN>*<NO3> - PTERMS(:,24,125) = +0.34740*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PTERMS(HO2,K243) = -K243*<HO2>*<RO243> + PTERMS(:,10,244) = -TPK%K243(:)*PCONC(:,10)*TPK%RO243(:) ! -!PTERMS(ONIT,K125) = +0.25928*K125*<OLN>*<NO3> - PTERMS(:,26,125) = +0.25928*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PTERMS(OH,K243) = +K243*<HO2>*<RO243> + PTERMS(:,15,244) = +TPK%K243(:)*PCONC(:,10)*TPK%RO243(:) ! -!PTERMS(OLN,K125) = -K125*<OLN>*<NO3> - PTERMS(:,40,125) = -TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PTERMS(MGLY,K243) = +K243*<HO2>*<RO243> + PTERMS(:,41,244) = +TPK%K243(:)*PCONC(:,10)*TPK%RO243(:) ! -!PTERMS(HO2,K126) = -K126*<XO2>*<HO2> - PTERMS(:,15,126) = -TPK%K126(:)*PCONC(:,41)*PCONC(:,15) +!PTERMS(RP10,K243) = +K243*<HO2>*<RO243> + PTERMS(:,72,244) = +TPK%K243(:)*PCONC(:,10)*TPK%RO243(:) ! -!PTERMS(OP2,K126) = +1.00524*K126*<XO2>*<HO2> - PTERMS(:,29,126) = +1.00524*TPK%K126(:)*PCONC(:,41)*PCONC(:,15) +!PTERMS(RO2T,K244) = +K244*<RO235> + PTERMS(:,85,245) = +TPK%K244(:)*TPK%RO235(:) ! -!PTERMS(XO2,K126) = -K126*<XO2>*<HO2> - PTERMS(:,41,126) = -TPK%K126(:)*PCONC(:,41)*PCONC(:,15) +!PTERMS(NO,K245) = -K245*<NO>*<RO235> + PTERMS(:,1,246) = -TPK%K245(:)*PCONC(:,1)*TPK%RO235(:) ! -!PTERMS(HO2,K127) = +K127*<XO2>*<MO2> - PTERMS(:,15,127) = +TPK%K127(:)*PCONC(:,41)*PCONC(:,32) +!PTERMS(NO2,K245) = +K245*<NO>*<RO235> + PTERMS(:,2,246) = +TPK%K245(:)*PCONC(:,1)*TPK%RO235(:) ! -!PTERMS(HCHO,K127) = +K127*<XO2>*<MO2> - PTERMS(:,22,127) = +TPK%K127(:)*PCONC(:,41)*PCONC(:,32) +!PTERMS(HO2,K245) = +K245*<NO>*<RO235> + PTERMS(:,10,246) = +TPK%K245(:)*PCONC(:,1)*TPK%RO235(:) ! -!PTERMS(MO2,K127) = -K127*<XO2>*<MO2> - PTERMS(:,32,127) = -TPK%K127(:)*PCONC(:,41)*PCONC(:,32) +!PTERMS(RP11,K245) = +0.5*K245*<NO>*<RO235> + PTERMS(:,73,246) = +0.5*TPK%K245(:)*PCONC(:,1)*TPK%RO235(:) ! -!PTERMS(XO2,K127) = -K127*<XO2>*<MO2> - PTERMS(:,41,127) = -TPK%K127(:)*PCONC(:,41)*PCONC(:,32) +!PTERMS(HO2,K246) = +K246*<RO2T>*<RO235> + PTERMS(:,10,247) = +TPK%K246(:)*PCONC(:,85)*TPK%RO235(:) ! -!PTERMS(MO2,K128) = +K128*<XO2>*<CARBOP> - PTERMS(:,32,128) = +TPK%K128(:)*PCONC(:,41)*PCONC(:,39) +!PTERMS(RP11,K246) = +K246*<RO2T>*<RO235> + PTERMS(:,73,247) = +TPK%K246(:)*PCONC(:,85)*TPK%RO235(:) ! -!PTERMS(CARBOP,K128) = -K128*<XO2>*<CARBOP> - PTERMS(:,39,128) = -TPK%K128(:)*PCONC(:,41)*PCONC(:,39) +!PTERMS(RO2T,K246) = -K246*<RO2T>*<RO235> + PTERMS(:,85,247) = -TPK%K246(:)*PCONC(:,85)*TPK%RO235(:) ! -!PTERMS(XO2,K128) = -K128*<XO2>*<CARBOP> - PTERMS(:,41,128) = -TPK%K128(:)*PCONC(:,41)*PCONC(:,39) +!PTERMS(HO2,K247) = -K247*<HO2>*<RO235> + PTERMS(:,10,248) = -TPK%K247(:)*PCONC(:,10)*TPK%RO235(:) ! -!PTERMS(XO2,K129) = -K129*<XO2>*<XO2> - PTERMS(:,41,129) = -TPK%K129(:)*PCONC(:,41)*PCONC(:,41) +!PTERMS(OH,K247) = +K247*<HO2>*<RO235> + PTERMS(:,15,248) = +TPK%K247(:)*PCONC(:,10)*TPK%RO235(:) ! -!PTERMS(NO,K130) = -K130*<XO2>*<NO> - PTERMS(:,3,130) = -TPK%K130(:)*PCONC(:,41)*PCONC(:,3) +!PTERMS(RP11,K247) = +K247*<HO2>*<RO235> + PTERMS(:,73,248) = +TPK%K247(:)*PCONC(:,10)*TPK%RO235(:) ! ! RETURN -END SUBROUTINE SUBT29 +END SUBROUTINE SUBT40 ! -SUBROUTINE SUBT30 +SUBROUTINE SUBT41 ! -!Indices 601 a 620 +!Indices 821 a 840 ! -!PTERMS(NO2,K130) = +K130*<XO2>*<NO> - PTERMS(:,4,130) = +TPK%K130(:)*PCONC(:,41)*PCONC(:,3) +!PTERMS(NO,K248) = -K248*<NO>*<RO244> + PTERMS(:,1,249) = -TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) ! -!PTERMS(XO2,K130) = -K130*<XO2>*<NO> - PTERMS(:,41,130) = -TPK%K130(:)*PCONC(:,41)*PCONC(:,3) +!PTERMS(NO2,K248) = +K248*<NO>*<RO244> + PTERMS(:,2,249) = +TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) ! -!PTERMS(NO2,K131) = +K131*<XO2>*<NO3> - PTERMS(:,4,131) = +TPK%K131(:)*PCONC(:,41)*PCONC(:,5) +!PTERMS(HO2,K248) = +K248*<NO>*<RO244> + PTERMS(:,10,249) = +TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) ! -!PTERMS(NO3,K131) = -K131*<XO2>*<NO3> - PTERMS(:,5,131) = -TPK%K131(:)*PCONC(:,41)*PCONC(:,5) +!PTERMS(MGLY,K248) = +K248*<NO>*<RO244> + PTERMS(:,41,249) = +TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) ! -!PTERMS(XO2,K131) = -K131*<XO2>*<NO3> - PTERMS(:,41,131) = -TPK%K131(:)*PCONC(:,41)*PCONC(:,5) +!PTERMS(RP10,K248) = +K248*<NO>*<RO244> + PTERMS(:,72,249) = +TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) ! -!PTERMS(SULF,K132) = -K132*<SULF> - PTERMS(:,12,132) = -TPK%K132(:)*PCONC(:,12) +!PTERMS(HO2,K249) = +K249*<RO2T>*<RO244> + PTERMS(:,10,250) = +TPK%K249(:)*PCONC(:,85)*TPK%RO244(:) ! -!PTERMS(O3,KTC1) = -KTC1*<O3> - PTERMS(:,1,133) = -TPK%KTC1(:)*PCONC(:,1) +!PTERMS(MGLY,K249) = +K249*<RO2T>*<RO244> + PTERMS(:,41,250) = +TPK%K249(:)*PCONC(:,85)*TPK%RO244(:) ! -!PTERMS(WC_O3,KTC1) = +KTC1*<O3> - PTERMS(:,42,133) = +TPK%KTC1(:)*PCONC(:,1) +!PTERMS(RP10,K249) = +K249*<RO2T>*<RO244> + PTERMS(:,72,250) = +TPK%K249(:)*PCONC(:,85)*TPK%RO244(:) ! -!PTERMS(H2O2,KTC2) = -KTC2*<H2O2> - PTERMS(:,2,134) = -TPK%KTC2(:)*PCONC(:,2) +!PTERMS(RO2T,K249) = -K249*<RO2T>*<RO244> + PTERMS(:,85,250) = -TPK%K249(:)*PCONC(:,85)*TPK%RO244(:) ! -!PTERMS(WC_H2O2,KTC2) = +KTC2*<H2O2> - PTERMS(:,43,134) = +TPK%KTC2(:)*PCONC(:,2) +!PTERMS(HO2,K250) = -K250*<HO2>*<RO244> + PTERMS(:,10,251) = -TPK%K250(:)*PCONC(:,10)*TPK%RO244(:) ! -!PTERMS(NO,KTC3) = -KTC3*<NO> - PTERMS(:,3,135) = -TPK%KTC3(:)*PCONC(:,3) +!PTERMS(OH,K250) = +K250*<HO2>*<RO244> + PTERMS(:,15,251) = +TPK%K250(:)*PCONC(:,10)*TPK%RO244(:) ! -!PTERMS(WC_NO,KTC3) = +KTC3*<NO> - PTERMS(:,44,135) = +TPK%KTC3(:)*PCONC(:,3) +!PTERMS(MGLY,K250) = +K250*<HO2>*<RO244> + PTERMS(:,41,251) = +TPK%K250(:)*PCONC(:,10)*TPK%RO244(:) ! -!PTERMS(NO2,KTC4) = -KTC4*<NO2> - PTERMS(:,4,136) = -TPK%KTC4(:)*PCONC(:,4) +!PTERMS(RP10,K250) = +K250*<HO2>*<RO244> + PTERMS(:,72,251) = +TPK%K250(:)*PCONC(:,10)*TPK%RO244(:) ! -!PTERMS(WC_NO2,KTC4) = +KTC4*<NO2> - PTERMS(:,45,136) = +TPK%KTC4(:)*PCONC(:,4) +!PTERMS(RO2T,K251) = +K251*<RO236> + PTERMS(:,85,252) = +TPK%K251(:)*TPK%RO236(:) ! -!PTERMS(NO3,KTC5) = -KTC5*<NO3> - PTERMS(:,5,137) = -TPK%KTC5(:)*PCONC(:,5) +!PTERMS(NO,K252) = -K252*<NO>*<RO236> + PTERMS(:,1,253) = -TPK%K252(:)*PCONC(:,1)*TPK%RO236(:) ! -!PTERMS(WC_NO3,KTC5) = +KTC5*<NO3> - PTERMS(:,46,137) = +TPK%KTC5(:)*PCONC(:,5) +!PTERMS(NO2,K252) = +K252*<NO>*<RO236> + PTERMS(:,2,253) = +TPK%K252(:)*PCONC(:,1)*TPK%RO236(:) ! -!PTERMS(N2O5,KTC6) = -KTC6*<N2O5> - PTERMS(:,6,138) = -TPK%KTC6(:)*PCONC(:,6) +!PTERMS(HO2,K252) = +K252*<NO>*<RO236> + PTERMS(:,10,253) = +TPK%K252(:)*PCONC(:,1)*TPK%RO236(:) ! -!PTERMS(WC_N2O5,KTC6) = +KTC6*<N2O5> - PTERMS(:,47,138) = +TPK%KTC6(:)*PCONC(:,6) +!PTERMS(RPG3,K252) = +0.3000000*K252*<NO>*<RO236> + PTERMS(:,52,253) = +0.3000000*TPK%K252(:)*PCONC(:,1)*TPK%RO236(:) ! -!PTERMS(HONO,KTC7) = -KTC7*<HONO> - PTERMS(:,7,139) = -TPK%KTC7(:)*PCONC(:,7) +!PTERMS(HO2,K253) = +K253*<RO2T>*<RO236> + PTERMS(:,10,254) = +TPK%K253(:)*PCONC(:,85)*TPK%RO236(:) ! -!PTERMS(WC_HONO,KTC7) = +KTC7*<HONO> - PTERMS(:,48,139) = +TPK%KTC7(:)*PCONC(:,7) +!PTERMS(RPG3,K253) = +1.0000000*K253*<RO2T>*<RO236> + PTERMS(:,52,254) = +1.0000000*TPK%K253(:)*PCONC(:,85)*TPK%RO236(:) ! ! RETURN -END SUBROUTINE SUBT30 +END SUBROUTINE SUBT41 ! -SUBROUTINE SUBT31 +SUBROUTINE SUBT42 ! -!Indices 621 a 640 +!Indices 841 a 860 ! -!PTERMS(HNO3,KTC8) = -KTC8*<HNO3> - PTERMS(:,8,140) = -TPK%KTC8(:)*PCONC(:,8) +!PTERMS(RO2T,K253) = -K253*<RO2T>*<RO236> + PTERMS(:,85,254) = -TPK%K253(:)*PCONC(:,85)*TPK%RO236(:) ! -!PTERMS(WC_HNO3,KTC8) = +KTC8*<HNO3> - PTERMS(:,49,140) = +TPK%KTC8(:)*PCONC(:,8) +!PTERMS(HO2,K254) = -K254*<HO2>*<RO236> + PTERMS(:,10,255) = -TPK%K254(:)*PCONC(:,10)*TPK%RO236(:) ! -!PTERMS(HNO4,KTC9) = -KTC9*<HNO4> - PTERMS(:,9,141) = -TPK%KTC9(:)*PCONC(:,9) +!PTERMS(OH,K254) = +K254*<HO2>*<RO236> + PTERMS(:,15,255) = +TPK%K254(:)*PCONC(:,10)*TPK%RO236(:) ! -!PTERMS(WC_HNO4,KTC9) = +KTC9*<HNO4> - PTERMS(:,50,141) = +TPK%KTC9(:)*PCONC(:,9) +!PTERMS(RPG3,K254) = +0.3000000*K254*<HO2>*<RO236> + PTERMS(:,52,255) = +0.3000000*TPK%K254(:)*PCONC(:,10)*TPK%RO236(:) ! -!PTERMS(NH3,KTC10) = -KTC10*<NH3> - PTERMS(:,10,142) = -TPK%KTC10(:)*PCONC(:,10) +!PTERMS(NO,K255) = -K255*<NO>*<RO245> + PTERMS(:,1,256) = -TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) ! -!PTERMS(WC_NH3,KTC10) = +KTC10*<NH3> - PTERMS(:,51,142) = +TPK%KTC10(:)*PCONC(:,10) +!PTERMS(NO2,K255) = +K255*<NO>*<RO245> + PTERMS(:,2,256) = +TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) ! -!PTERMS(OH,KTC11) = -KTC11*<OH> - PTERMS(:,14,143) = -TPK%KTC11(:)*PCONC(:,14) +!PTERMS(HO2,K255) = +K255*<NO>*<RO245> + PTERMS(:,10,256) = +TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) ! -!PTERMS(WC_OH,KTC11) = +KTC11*<OH> - PTERMS(:,52,143) = +TPK%KTC11(:)*PCONC(:,14) +!PTERMS(MGLY,K255) = +K255*<NO>*<RO245> + PTERMS(:,41,256) = +TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) ! -!PTERMS(HO2,KTC12) = -KTC12*<HO2> - PTERMS(:,15,144) = -TPK%KTC12(:)*PCONC(:,15) +!PTERMS(RP10,K255) = +K255*<NO>*<RO245> + PTERMS(:,72,256) = +TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) ! -!PTERMS(WC_HO2,KTC12) = +KTC12*<HO2> - PTERMS(:,53,144) = +TPK%KTC12(:)*PCONC(:,15) +!PTERMS(HO2,K256) = +K256*<RO2T>*<RO245> + PTERMS(:,10,257) = +TPK%K256(:)*PCONC(:,85)*TPK%RO245(:) ! -!PTERMS(WC_CO2,KTC13) = +KTC13*<CO2> - PTERMS(:,54,145) = +TPK%KTC13(:)*TPK%CO2(:) +!PTERMS(MGLY,K256) = +K256*<RO2T>*<RO245> + PTERMS(:,41,257) = +TPK%K256(:)*PCONC(:,85)*TPK%RO245(:) ! -!PTERMS(SO2,KTC14) = -KTC14*<SO2> - PTERMS(:,11,146) = -TPK%KTC14(:)*PCONC(:,11) +!PTERMS(RP10,K256) = +K256*<RO2T>*<RO245> + PTERMS(:,72,257) = +TPK%K256(:)*PCONC(:,85)*TPK%RO245(:) ! -!PTERMS(WC_SO2,KTC14) = +KTC14*<SO2> - PTERMS(:,55,146) = +TPK%KTC14(:)*PCONC(:,11) +!PTERMS(RO2T,K256) = -K256*<RO2T>*<RO245> + PTERMS(:,85,257) = -TPK%K256(:)*PCONC(:,85)*TPK%RO245(:) ! -!PTERMS(SULF,KTC15) = -KTC15*<SULF> - PTERMS(:,12,147) = -TPK%KTC15(:)*PCONC(:,12) +!PTERMS(HO2,K257) = -K257*<HO2>*<RO245> + PTERMS(:,10,258) = -TPK%K257(:)*PCONC(:,10)*TPK%RO245(:) ! -!PTERMS(WC_SULF,KTC15) = +KTC15*<SULF> - PTERMS(:,56,147) = +TPK%KTC15(:)*PCONC(:,12) +!PTERMS(OH,K257) = +K257*<HO2>*<RO245> + PTERMS(:,15,258) = +TPK%K257(:)*PCONC(:,10)*TPK%RO245(:) ! -!PTERMS(HCHO,KTC16) = -KTC16*<HCHO> - PTERMS(:,22,148) = -TPK%KTC16(:)*PCONC(:,22) +!PTERMS(MGLY,K257) = +K257*<HO2>*<RO245> + PTERMS(:,41,258) = +TPK%K257(:)*PCONC(:,10)*TPK%RO245(:) ! -!PTERMS(WC_HCHO,KTC16) = +KTC16*<HCHO> - PTERMS(:,57,148) = +TPK%KTC16(:)*PCONC(:,22) +!PTERMS(RP10,K257) = +K257*<HO2>*<RO245> + PTERMS(:,72,258) = +TPK%K257(:)*PCONC(:,10)*TPK%RO245(:) ! -!PTERMS(ORA1,KTC17) = -KTC17*<ORA1> - PTERMS(:,30,149) = -TPK%KTC17(:)*PCONC(:,30) +!PTERMS(RO2T,K258) = +K258*<RO237> + PTERMS(:,85,259) = +TPK%K258(:)*TPK%RO237(:) ! -!PTERMS(WC_ORA1,KTC17) = +KTC17*<ORA1> - PTERMS(:,58,149) = +TPK%KTC17(:)*PCONC(:,30) +!PTERMS(NO,K259) = -K259*<NO>*<RO237> + PTERMS(:,1,260) = -TPK%K259(:)*PCONC(:,1)*TPK%RO237(:) ! -!PTERMS(ORA2,KTC18) = -KTC18*<ORA2> - PTERMS(:,31,150) = -TPK%KTC18(:)*PCONC(:,31) +!PTERMS(NO2,K259) = +K259*<NO>*<RO237> + PTERMS(:,2,260) = +TPK%K259(:)*PCONC(:,1)*TPK%RO237(:) ! ! RETURN -END SUBROUTINE SUBT31 +END SUBROUTINE SUBT42 ! -SUBROUTINE SUBT32 +SUBROUTINE SUBT43 ! -!Indices 641 a 660 +!Indices 861 a 880 ! -!PTERMS(WC_ORA2,KTC18) = +KTC18*<ORA2> - PTERMS(:,59,150) = +TPK%KTC18(:)*PCONC(:,31) +!PTERMS(HO2,K259) = +K259*<NO>*<RO237> + PTERMS(:,10,260) = +TPK%K259(:)*PCONC(:,1)*TPK%RO237(:) ! -!PTERMS(MO2,KTC19) = -KTC19*<MO2> - PTERMS(:,32,151) = -TPK%KTC19(:)*PCONC(:,32) +!PTERMS(RPG2,K259) = +0.3000000*K259*<NO>*<RO237> + PTERMS(:,50,260) = +0.3000000*TPK%K259(:)*PCONC(:,1)*TPK%RO237(:) ! -!PTERMS(WC_MO2,KTC19) = +KTC19*<MO2> - PTERMS(:,60,151) = +TPK%KTC19(:)*PCONC(:,32) +!PTERMS(HO2,K260) = +K260*<RO2T>*<RO237> + PTERMS(:,10,261) = +TPK%K260(:)*PCONC(:,85)*TPK%RO237(:) ! -!PTERMS(OP1,KTC20) = -KTC20*<OP1> - PTERMS(:,28,152) = -TPK%KTC20(:)*PCONC(:,28) +!PTERMS(RPG2,K260) = +1.0000000*K260*<RO2T>*<RO237> + PTERMS(:,50,261) = +1.0000000*TPK%K260(:)*PCONC(:,85)*TPK%RO237(:) ! -!PTERMS(WC_OP1,KTC20) = +KTC20*<OP1> - PTERMS(:,61,152) = +TPK%KTC20(:)*PCONC(:,28) +!PTERMS(RO2T,K260) = -K260*<RO2T>*<RO237> + PTERMS(:,85,261) = -TPK%K260(:)*PCONC(:,85)*TPK%RO237(:) ! -!PTERMS(O3,KTC21) = +KTC21*<WC_O3> - PTERMS(:,1,153) = +TPK%KTC21(:)*PCONC(:,42) +!PTERMS(HO2,K261) = -K261*<HO2>*<RO237> + PTERMS(:,10,262) = -TPK%K261(:)*PCONC(:,10)*TPK%RO237(:) ! -!PTERMS(WC_O3,KTC21) = -KTC21*<WC_O3> - PTERMS(:,42,153) = -TPK%KTC21(:)*PCONC(:,42) +!PTERMS(OH,K261) = +K261*<HO2>*<RO237> + PTERMS(:,15,262) = +TPK%K261(:)*PCONC(:,10)*TPK%RO237(:) ! -!PTERMS(H2O2,KTC22) = +KTC22*<WC_H2O2> - PTERMS(:,2,154) = +TPK%KTC22(:)*PCONC(:,43) +!PTERMS(RPG2,K261) = +0.3000000*K261*<HO2>*<RO237> + PTERMS(:,50,262) = +0.3000000*TPK%K261(:)*PCONC(:,10)*TPK%RO237(:) ! -!PTERMS(WC_H2O2,KTC22) = -KTC22*<WC_H2O2> - PTERMS(:,43,154) = -TPK%KTC22(:)*PCONC(:,43) +!PTERMS(NO,K262) = -K262*<NO>*<RO246> + PTERMS(:,1,263) = -TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) ! -!PTERMS(NO,KTC23) = +KTC23*<WC_NO> - PTERMS(:,3,155) = +TPK%KTC23(:)*PCONC(:,44) +!PTERMS(NO2,K262) = +K262*<NO>*<RO246> + PTERMS(:,2,263) = +TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) ! -!PTERMS(WC_NO,KTC23) = -KTC23*<WC_NO> - PTERMS(:,44,155) = -TPK%KTC23(:)*PCONC(:,44) +!PTERMS(HO2,K262) = +K262*<NO>*<RO246> + PTERMS(:,10,263) = +TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) ! -!PTERMS(NO2,KTC24) = +KTC24*<WC_NO2> - PTERMS(:,4,156) = +TPK%KTC24(:)*PCONC(:,45) +!PTERMS(MGLY,K262) = +K262*<NO>*<RO246> + PTERMS(:,41,263) = +TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) ! -!PTERMS(WC_NO2,KTC24) = -KTC24*<WC_NO2> - PTERMS(:,45,156) = -TPK%KTC24(:)*PCONC(:,45) +!PTERMS(RP10,K262) = +K262*<NO>*<RO246> + PTERMS(:,72,263) = +TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) ! -!PTERMS(NO3,KTC25) = +KTC25*<WC_NO3> - PTERMS(:,5,157) = +TPK%KTC25(:)*PCONC(:,46) +!PTERMS(HO2,K263) = +K263*<RO2T>*<RO246> + PTERMS(:,10,264) = +TPK%K263(:)*PCONC(:,85)*TPK%RO246(:) ! -!PTERMS(WC_NO3,KTC25) = -KTC25*<WC_NO3> - PTERMS(:,46,157) = -TPK%KTC25(:)*PCONC(:,46) +!PTERMS(MGLY,K263) = +K263*<RO2T>*<RO246> + PTERMS(:,41,264) = +TPK%K263(:)*PCONC(:,85)*TPK%RO246(:) ! -!PTERMS(N2O5,KTC26) = +KTC26*<WC_N2O5> - PTERMS(:,6,158) = +TPK%KTC26(:)*PCONC(:,47) +!PTERMS(RP10,K263) = +K263*<RO2T>*<RO246> + PTERMS(:,72,264) = +TPK%K263(:)*PCONC(:,85)*TPK%RO246(:) ! -!PTERMS(WC_N2O5,KTC26) = -KTC26*<WC_N2O5> - PTERMS(:,47,158) = -TPK%KTC26(:)*PCONC(:,47) +!PTERMS(RO2T,K263) = -K263*<RO2T>*<RO246> + PTERMS(:,85,264) = -TPK%K263(:)*PCONC(:,85)*TPK%RO246(:) ! -!PTERMS(HONO,KTC27) = +KTC27*<WC_HONO> - PTERMS(:,7,159) = +TPK%KTC27(:)*PCONC(:,48) +!PTERMS(HO2,K264) = -K264*<HO2>*<RO246> + PTERMS(:,10,265) = -TPK%K264(:)*PCONC(:,10)*TPK%RO246(:) ! -!PTERMS(WC_HONO,KTC27) = -KTC27*<WC_HONO> - PTERMS(:,48,159) = -TPK%KTC27(:)*PCONC(:,48) +!PTERMS(OH,K264) = +K264*<HO2>*<RO246> + PTERMS(:,15,265) = +TPK%K264(:)*PCONC(:,10)*TPK%RO246(:) ! -!PTERMS(HNO3,KTC28) = +KTC28*<WC_HNO3> - PTERMS(:,8,160) = +TPK%KTC28(:)*PCONC(:,49) +!PTERMS(MGLY,K264) = +K264*<HO2>*<RO246> + PTERMS(:,41,265) = +TPK%K264(:)*PCONC(:,10)*TPK%RO246(:) ! ! RETURN -END SUBROUTINE SUBT32 +END SUBROUTINE SUBT43 ! -SUBROUTINE SUBT33 +SUBROUTINE SUBT44 ! -!Indices 661 a 680 +!Indices 881 a 900 ! -!PTERMS(WC_HNO3,KTC28) = -KTC28*<WC_HNO3> - PTERMS(:,49,160) = -TPK%KTC28(:)*PCONC(:,49) +!PTERMS(RP10,K264) = +K264*<HO2>*<RO246> + PTERMS(:,72,265) = +TPK%K264(:)*PCONC(:,10)*TPK%RO246(:) ! -!PTERMS(HNO4,KTC29) = +KTC29*<WC_HNO4> - PTERMS(:,9,161) = +TPK%KTC29(:)*PCONC(:,50) +!PTERMS(RO2T,K265) = +K265*<RO238> + PTERMS(:,85,266) = +TPK%K265(:)*TPK%RO238(:) ! -!PTERMS(WC_HNO4,KTC29) = -KTC29*<WC_HNO4> - PTERMS(:,50,161) = -TPK%KTC29(:)*PCONC(:,50) +!PTERMS(NO,K266) = -K266*<NO>*<RO238> + PTERMS(:,1,267) = -TPK%K266(:)*PCONC(:,1)*TPK%RO238(:) ! -!PTERMS(NH3,KTC30) = +KTC30*<WC_NH3> - PTERMS(:,10,162) = +TPK%KTC30(:)*PCONC(:,51) +!PTERMS(NO2,K266) = +K266*<NO>*<RO238> + PTERMS(:,2,267) = +TPK%K266(:)*PCONC(:,1)*TPK%RO238(:) ! -!PTERMS(WC_NH3,KTC30) = -KTC30*<WC_NH3> - PTERMS(:,51,162) = -TPK%KTC30(:)*PCONC(:,51) +!PTERMS(HO2,K266) = +K266*<NO>*<RO238> + PTERMS(:,10,267) = +TPK%K266(:)*PCONC(:,1)*TPK%RO238(:) ! -!PTERMS(OH,KTC31) = +KTC31*<WC_OH> - PTERMS(:,14,163) = +TPK%KTC31(:)*PCONC(:,52) +!PTERMS(RPG7,K266) = +1.0000013*K266*<NO>*<RO238> + PTERMS(:,63,267) = +1.0000013*TPK%K266(:)*PCONC(:,1)*TPK%RO238(:) ! -!PTERMS(WC_OH,KTC31) = -KTC31*<WC_OH> - PTERMS(:,52,163) = -TPK%KTC31(:)*PCONC(:,52) +!PTERMS(HO2,K267) = +K267*<RO2T>*<RO238> + PTERMS(:,10,268) = +TPK%K267(:)*PCONC(:,85)*TPK%RO238(:) ! -!PTERMS(HO2,KTC32) = +KTC32*<WC_HO2> - PTERMS(:,15,164) = +TPK%KTC32(:)*PCONC(:,53) +!PTERMS(RPG7,K267) = +1.0000013*K267*<RO2T>*<RO238> + PTERMS(:,63,268) = +1.0000013*TPK%K267(:)*PCONC(:,85)*TPK%RO238(:) ! -!PTERMS(WC_HO2,KTC32) = -KTC32*<WC_HO2> - PTERMS(:,53,164) = -TPK%KTC32(:)*PCONC(:,53) +!PTERMS(RO2T,K267) = -K267*<RO2T>*<RO238> + PTERMS(:,85,268) = -TPK%K267(:)*PCONC(:,85)*TPK%RO238(:) ! -!PTERMS(WC_CO2,KTC33) = -KTC33*<WC_CO2> - PTERMS(:,54,165) = -TPK%KTC33(:)*PCONC(:,54) +!PTERMS(HO2,K268) = -K268*<HO2>*<RO238> + PTERMS(:,10,269) = -TPK%K268(:)*PCONC(:,10)*TPK%RO238(:) ! -!PTERMS(SO2,KTC34) = +KTC34*<WC_SO2> - PTERMS(:,11,166) = +TPK%KTC34(:)*PCONC(:,55) +!PTERMS(OH,K268) = +K268*<HO2>*<RO238> + PTERMS(:,15,269) = +TPK%K268(:)*PCONC(:,10)*TPK%RO238(:) ! -!PTERMS(WC_SO2,KTC34) = -KTC34*<WC_SO2> - PTERMS(:,55,166) = -TPK%KTC34(:)*PCONC(:,55) +!PTERMS(RPG7,K268) = +1.0000013*K268*<HO2>*<RO238> + PTERMS(:,63,269) = +1.0000013*TPK%K268(:)*PCONC(:,10)*TPK%RO238(:) ! -!PTERMS(SULF,KTC35) = +KTC35*<WC_SULF> - PTERMS(:,12,167) = +TPK%KTC35(:)*PCONC(:,56) +!PTERMS(NO,K269) = -K269*<NO>*<RO247> + PTERMS(:,1,270) = -TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) ! -!PTERMS(WC_SULF,KTC35) = -KTC35*<WC_SULF> - PTERMS(:,56,167) = -TPK%KTC35(:)*PCONC(:,56) +!PTERMS(NO2,K269) = +K269*<NO>*<RO247> + PTERMS(:,2,270) = +TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) ! -!PTERMS(HCHO,KTC36) = +KTC36*<WC_HCHO> - PTERMS(:,22,168) = +TPK%KTC36(:)*PCONC(:,57) +!PTERMS(HO2,K269) = +K269*<NO>*<RO247> + PTERMS(:,10,270) = +TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) ! -!PTERMS(WC_HCHO,KTC36) = -KTC36*<WC_HCHO> - PTERMS(:,57,168) = -TPK%KTC36(:)*PCONC(:,57) +!PTERMS(MGLY,K269) = +K269*<NO>*<RO247> + PTERMS(:,41,270) = +TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) ! -!PTERMS(ORA1,KTC37) = +KTC37*<WC_ORA1> - PTERMS(:,30,169) = +TPK%KTC37(:)*PCONC(:,58) +!PTERMS(RPRL,K269) = +1.0023998*K269*<NO>*<RO247> + PTERMS(:,75,270) = +1.0023998*TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) ! -!PTERMS(WC_ORA1,KTC37) = -KTC37*<WC_ORA1> - PTERMS(:,58,169) = -TPK%KTC37(:)*PCONC(:,58) +!PTERMS(HO2,K270) = +K270*<RO2T>*<RO247> + PTERMS(:,10,271) = +TPK%K270(:)*PCONC(:,85)*TPK%RO247(:) ! -!PTERMS(ORA2,KTC38) = +KTC38*<WC_ORA2> - PTERMS(:,31,170) = +TPK%KTC38(:)*PCONC(:,59) +!PTERMS(MGLY,K270) = +K270*<RO2T>*<RO247> + PTERMS(:,41,271) = +TPK%K270(:)*PCONC(:,85)*TPK%RO247(:) ! -!PTERMS(WC_ORA2,KTC38) = -KTC38*<WC_ORA2> - PTERMS(:,59,170) = -TPK%KTC38(:)*PCONC(:,59) +!PTERMS(RPRL,K270) = +1.0023998*K270*<RO2T>*<RO247> + PTERMS(:,75,271) = +1.0023998*TPK%K270(:)*PCONC(:,85)*TPK%RO247(:) ! ! RETURN -END SUBROUTINE SUBT33 +END SUBROUTINE SUBT44 ! -SUBROUTINE SUBT34 +SUBROUTINE SUBT45 ! -!Indices 681 a 700 +!Indices 901 a 920 ! -!PTERMS(MO2,KTC39) = +KTC39*<WC_MO2> - PTERMS(:,32,171) = +TPK%KTC39(:)*PCONC(:,60) +!PTERMS(RO2T,K270) = -K270*<RO2T>*<RO247> + PTERMS(:,85,271) = -TPK%K270(:)*PCONC(:,85)*TPK%RO247(:) ! -!PTERMS(WC_MO2,KTC39) = -KTC39*<WC_MO2> - PTERMS(:,60,171) = -TPK%KTC39(:)*PCONC(:,60) +!PTERMS(HO2,K271) = -K271*<HO2>*<RO247> + PTERMS(:,10,272) = -TPK%K271(:)*PCONC(:,10)*TPK%RO247(:) ! -!PTERMS(OP1,KTC40) = +KTC40*<WC_OP1> - PTERMS(:,28,172) = +TPK%KTC40(:)*PCONC(:,61) +!PTERMS(OH,K271) = +K271*<HO2>*<RO247> + PTERMS(:,15,272) = +TPK%K271(:)*PCONC(:,10)*TPK%RO247(:) ! -!PTERMS(WC_OP1,KTC40) = -KTC40*<WC_OP1> - PTERMS(:,61,172) = -TPK%KTC40(:)*PCONC(:,61) +!PTERMS(MGLY,K271) = +K271*<HO2>*<RO247> + PTERMS(:,41,272) = +TPK%K271(:)*PCONC(:,10)*TPK%RO247(:) ! -!PTERMS(O3,KTR1) = -KTR1*<O3> - PTERMS(:,1,173) = -TPK%KTR1(:)*PCONC(:,1) +!PTERMS(RPRL,K271) = +1.0023998*K271*<HO2>*<RO247> + PTERMS(:,75,272) = +1.0023998*TPK%K271(:)*PCONC(:,10)*TPK%RO247(:) ! -!PTERMS(WR_O3,KTR1) = +KTR1*<O3> - PTERMS(:,67,173) = +TPK%KTR1(:)*PCONC(:,1) +!PTERMS(OH,K272) = -K272*<OH>*<MVK> + PTERMS(:,15,273) = -TPK%K272(:)*PCONC(:,15)*PCONC(:,39) ! -!PTERMS(H2O2,KTR2) = -KTR2*<H2O2> - PTERMS(:,2,174) = -TPK%KTR2(:)*PCONC(:,2) +!PTERMS(MVK,K272) = -K272*<OH>*<MVK> + PTERMS(:,39,273) = -TPK%K272(:)*PCONC(:,15)*PCONC(:,39) ! -!PTERMS(WR_H2O2,KTR2) = +KTR2*<H2O2> - PTERMS(:,68,174) = +TPK%KTR2(:)*PCONC(:,2) +!PTERMS(RO2T,K272) = +K272*<OH>*<MVK> + PTERMS(:,85,273) = +TPK%K272(:)*PCONC(:,15)*PCONC(:,39) ! -!PTERMS(NO,KTR3) = -KTR3*<NO> - PTERMS(:,3,175) = -TPK%KTR3(:)*PCONC(:,3) +!PTERMS(OH,K273) = -K273*<OH>*<MCR> + PTERMS(:,15,274) = -TPK%K273(:)*PCONC(:,15)*PCONC(:,40) ! -!PTERMS(WR_NO,KTR3) = +KTR3*<NO> - PTERMS(:,69,175) = +TPK%KTR3(:)*PCONC(:,3) +!PTERMS(MCR,K273) = -K273*<OH>*<MCR> + PTERMS(:,40,274) = -TPK%K273(:)*PCONC(:,15)*PCONC(:,40) ! -!PTERMS(NO2,KTR4) = -KTR4*<NO2> - PTERMS(:,4,176) = -TPK%KTR4(:)*PCONC(:,4) +!PTERMS(RO2T,K273) = +K273*<OH>*<MCR> + PTERMS(:,85,274) = +TPK%K273(:)*PCONC(:,15)*PCONC(:,40) ! -!PTERMS(WR_NO2,KTR4) = +KTR4*<NO2> - PTERMS(:,70,176) = +TPK%KTR4(:)*PCONC(:,4) +!PTERMS(OH,K274) = -K274*<OH>*<MGLY> + PTERMS(:,15,275) = -TPK%K274(:)*PCONC(:,15)*PCONC(:,41) ! -!PTERMS(NO3,KTR5) = -KTR5*<NO3> - PTERMS(:,5,177) = -TPK%KTR5(:)*PCONC(:,5) +!PTERMS(MGLY,K274) = -K274*<OH>*<MGLY> + PTERMS(:,41,275) = -TPK%K274(:)*PCONC(:,15)*PCONC(:,41) ! -!PTERMS(WR_NO3,KTR5) = +KTR5*<NO3> - PTERMS(:,71,177) = +TPK%KTR5(:)*PCONC(:,5) +!PTERMS(RO2T,K274) = +K274*<OH>*<MGLY> + PTERMS(:,85,275) = +TPK%K274(:)*PCONC(:,15)*PCONC(:,41) ! -!PTERMS(N2O5,KTR6) = -KTR6*<N2O5> - PTERMS(:,6,178) = -TPK%KTR6(:)*PCONC(:,6) +!PTERMS(HNO3,K275) = +TPK%CF46*K275*<NO3>*<MCR> + PTERMS(:,5,276) = +TPK%CF46*TPK%K275(:)*PCONC(:,8)*PCONC(:,40) ! -!PTERMS(WR_N2O5,KTR6) = +KTR6*<N2O5> - PTERMS(:,72,178) = +TPK%KTR6(:)*PCONC(:,6) +!PTERMS(NO3,K275) = -K275*<NO3>*<MCR> + PTERMS(:,8,276) = -TPK%K275(:)*PCONC(:,8)*PCONC(:,40) ! -!PTERMS(HONO,KTR7) = -KTR7*<HONO> - PTERMS(:,7,179) = -TPK%KTR7(:)*PCONC(:,7) +!PTERMS(MCR,K275) = -K275*<NO3>*<MCR> + PTERMS(:,40,276) = -TPK%K275(:)*PCONC(:,8)*PCONC(:,40) ! -!PTERMS(WR_HONO,KTR7) = +KTR7*<HONO> - PTERMS(:,73,179) = +TPK%KTR7(:)*PCONC(:,7) +!PTERMS(RO2T,K275) = +K275*<NO3>*<MCR> + PTERMS(:,85,276) = +TPK%K275(:)*PCONC(:,8)*PCONC(:,40) ! -!PTERMS(HNO3,KTR8) = -KTR8*<HNO3> - PTERMS(:,8,180) = -TPK%KTR8(:)*PCONC(:,8) +!PTERMS(HO2,K276) = +K276*<MGLY> + PTERMS(:,10,277) = +TPK%K276(:)*PCONC(:,41) ! -!PTERMS(WR_HNO3,KTR8) = +KTR8*<HNO3> - PTERMS(:,74,180) = +TPK%KTR8(:)*PCONC(:,8) +!PTERMS(CO,K276) = +K276*<MGLY> + PTERMS(:,11,277) = +TPK%K276(:)*PCONC(:,41) ! ! RETURN -END SUBROUTINE SUBT34 +END SUBROUTINE SUBT45 ! -SUBROUTINE SUBT35 +SUBROUTINE SUBT46 ! -!Indices 701 a 720 +!Indices 921 a 940 ! -!PTERMS(HNO4,KTR9) = -KTR9*<HNO4> - PTERMS(:,9,181) = -TPK%KTR9(:)*PCONC(:,9) +!PTERMS(MGLY,K276) = -K276*<MGLY> + PTERMS(:,41,277) = -TPK%K276(:)*PCONC(:,41) ! -!PTERMS(WR_HNO4,KTR9) = +KTR9*<HNO4> - PTERMS(:,75,181) = +TPK%KTR9(:)*PCONC(:,9) +!PTERMS(RO2T,K276) = +K276*<MGLY> + PTERMS(:,85,277) = +TPK%K276(:)*PCONC(:,41) ! -!PTERMS(NH3,KTR10) = -KTR10*<NH3> - PTERMS(:,10,182) = -TPK%KTR10(:)*PCONC(:,10) +!PTERMS(NO,K277) = -K277*<NO>*<RO248> + PTERMS(:,1,278) = -TPK%K277(:)*PCONC(:,1)*TPK%RO248(:) ! -!PTERMS(WR_NH3,KTR10) = +KTR10*<NH3> - PTERMS(:,76,182) = +TPK%KTR10(:)*PCONC(:,10) +!PTERMS(NO2,K277) = +K277*<NO>*<RO248> + PTERMS(:,2,278) = +TPK%K277(:)*PCONC(:,1)*TPK%RO248(:) ! -!PTERMS(OH,KTR11) = -KTR11*<OH> - PTERMS(:,14,183) = -TPK%KTR11(:)*PCONC(:,14) +!PTERMS(RO2T,K277) = +K277*<NO>*<RO248> + PTERMS(:,85,278) = +TPK%K277(:)*PCONC(:,1)*TPK%RO248(:) ! -!PTERMS(WR_OH,KTR11) = +KTR11*<OH> - PTERMS(:,77,183) = +TPK%KTR11(:)*PCONC(:,14) +!PTERMS(HNO3,K278) = +K278*<NO3>*<MGLY> + PTERMS(:,5,279) = +TPK%K278(:)*PCONC(:,8)*PCONC(:,41) ! -!PTERMS(HO2,KTR12) = -KTR12*<HO2> - PTERMS(:,15,184) = -TPK%KTR12(:)*PCONC(:,15) +!PTERMS(NO3,K278) = -K278*<NO3>*<MGLY> + PTERMS(:,8,279) = -TPK%K278(:)*PCONC(:,8)*PCONC(:,41) ! -!PTERMS(WR_HO2,KTR12) = +KTR12*<HO2> - PTERMS(:,78,184) = +TPK%KTR12(:)*PCONC(:,15) +!PTERMS(MGLY,K278) = -K278*<NO3>*<MGLY> + PTERMS(:,41,279) = -TPK%K278(:)*PCONC(:,8)*PCONC(:,41) ! -!PTERMS(WR_CO2,KTR13) = +KTR13*<CO2> - PTERMS(:,79,185) = +TPK%KTR13(:)*TPK%CO2(:) +!PTERMS(RO2T,K278) = +K278*<NO3>*<MGLY> + PTERMS(:,85,279) = +TPK%K278(:)*PCONC(:,8)*PCONC(:,41) ! -!PTERMS(SO2,KTR14) = -KTR14*<SO2> - PTERMS(:,11,186) = -TPK%KTR14(:)*PCONC(:,11) +!PTERMS(O3,K279) = +K279*<HO2>*<RO248> + PTERMS(:,3,280) = +TPK%K279(:)*PCONC(:,10)*TPK%RO248(:) ! -!PTERMS(WR_SO2,KTR14) = +KTR14*<SO2> - PTERMS(:,80,186) = +TPK%KTR14(:)*PCONC(:,11) +!PTERMS(HO2,K279) = -K279*<HO2>*<RO248> + PTERMS(:,10,280) = -TPK%K279(:)*PCONC(:,10)*TPK%RO248(:) ! -!PTERMS(SULF,KTR15) = -KTR15*<SULF> - PTERMS(:,12,187) = -TPK%KTR15(:)*PCONC(:,12) +!PTERMS(UR21,K279) = +K279*<HO2>*<RO248> + PTERMS(:,47,280) = +TPK%K279(:)*PCONC(:,10)*TPK%RO248(:) ! -!PTERMS(WR_SULF,KTR15) = +KTR15*<SULF> - PTERMS(:,81,187) = +TPK%KTR15(:)*PCONC(:,12) +!PTERMS(RO2T,K280) = -K280*<RO2T>*<RO248> + PTERMS(:,85,281) = -TPK%K280(:)*PCONC(:,85)*TPK%RO248(:) ! -!PTERMS(HCHO,KTR16) = -KTR16*<HCHO> - PTERMS(:,22,188) = -TPK%KTR16(:)*PCONC(:,22) +!PTERMS(O3,K281) = -K281*<O3>*<MVK> + PTERMS(:,3,282) = -TPK%K281(:)*PCONC(:,3)*PCONC(:,39) ! -!PTERMS(WR_HCHO,KTR16) = +KTR16*<HCHO> - PTERMS(:,82,188) = +TPK%KTR16(:)*PCONC(:,22) +!PTERMS(HO2,K281) = +0.28*K281*<O3>*<MVK> + PTERMS(:,10,282) = +0.28*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) ! -!PTERMS(ORA1,KTR17) = -KTR17*<ORA1> - PTERMS(:,30,189) = -TPK%KTR17(:)*PCONC(:,30) +!PTERMS(CO,K281) = +0.56*K281*<O3>*<MVK> + PTERMS(:,11,282) = +0.56*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) ! -!PTERMS(WR_ORA1,KTR17) = +KTR17*<ORA1> - PTERMS(:,83,189) = +TPK%KTR17(:)*PCONC(:,30) +!PTERMS(OH,K281) = +0.36*K281*<O3>*<MVK> + PTERMS(:,15,282) = +0.36*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) ! -!PTERMS(ORA2,KTR18) = -KTR18*<ORA2> - PTERMS(:,31,190) = -TPK%KTR18(:)*PCONC(:,31) +!PTERMS(HCHO,K281) = +0.5*K281*<O3>*<MVK> + PTERMS(:,28,282) = +0.5*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) ! -!PTERMS(WR_ORA2,KTR18) = +KTR18*<ORA2> - PTERMS(:,84,190) = +TPK%KTR18(:)*PCONC(:,31) +!PTERMS(ALD2,K281) = +0.1*K281*<O3>*<MVK> + PTERMS(:,29,282) = +0.1*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) ! -!PTERMS(MO2,KTR19) = -KTR19*<MO2> - PTERMS(:,32,191) = -TPK%KTR19(:)*PCONC(:,32) +!PTERMS(MVK,K281) = -K281*<O3>*<MVK> + PTERMS(:,39,282) = -TPK%K281(:)*PCONC(:,3)*PCONC(:,39) ! ! RETURN -END SUBROUTINE SUBT35 +END SUBROUTINE SUBT46 ! -SUBROUTINE SUBT36 +SUBROUTINE SUBT47 ! -!Indices 721 a 740 +!Indices 941 a 960 ! -!PTERMS(WR_MO2,KTR19) = +KTR19*<MO2> - PTERMS(:,85,191) = +TPK%KTR19(:)*PCONC(:,32) +!PTERMS(MGLY,K281) = +0.5*K281*<O3>*<MVK> + PTERMS(:,41,282) = +0.5*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) ! -!PTERMS(OP1,KTR20) = -KTR20*<OP1> - PTERMS(:,28,192) = -TPK%KTR20(:)*PCONC(:,28) +!PTERMS(ORA1,K281) = +0.12*K281*<O3>*<MVK> + PTERMS(:,43,282) = +0.12*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) ! -!PTERMS(WR_OP1,KTR20) = +KTR20*<OP1> - PTERMS(:,86,192) = +TPK%KTR20(:)*PCONC(:,28) +!PTERMS(UR21,K281) = +0.12*K281*<O3>*<MVK> + PTERMS(:,47,282) = +0.12*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) ! -!PTERMS(O3,KTR21) = +KTR21*<WR_O3> - PTERMS(:,1,193) = +TPK%KTR21(:)*PCONC(:,67) +!PTERMS(RO2T,K281) = +0.28*K281*<O3>*<MVK> + PTERMS(:,85,282) = +0.28*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) ! -!PTERMS(WR_O3,KTR21) = -KTR21*<WR_O3> - PTERMS(:,67,193) = -TPK%KTR21(:)*PCONC(:,67) +!PTERMS(O3,K282) = -K282*<O3>*<MCR> + PTERMS(:,3,283) = -TPK%K282(:)*PCONC(:,3)*PCONC(:,40) ! -!PTERMS(H2O2,KTR22) = +KTR22*<WR_H2O2> - PTERMS(:,2,194) = +TPK%KTR22(:)*PCONC(:,68) +!PTERMS(HO2,K282) = +0.41*K282*<O3>*<MCR> + PTERMS(:,10,283) = +0.41*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) ! -!PTERMS(WR_H2O2,KTR22) = -KTR22*<WR_H2O2> - PTERMS(:,68,194) = -TPK%KTR22(:)*PCONC(:,68) +!PTERMS(CO,K282) = +0.41*K282*<O3>*<MCR> + PTERMS(:,11,283) = +0.41*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) ! -!PTERMS(NO,KTR23) = +KTR23*<WR_NO> - PTERMS(:,3,195) = +TPK%KTR23(:)*PCONC(:,69) +!PTERMS(OH,K282) = +0.82*K282*<O3>*<MCR> + PTERMS(:,15,283) = +0.82*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) ! -!PTERMS(WR_NO,KTR23) = -KTR23*<WR_NO> - PTERMS(:,69,195) = -TPK%KTR23(:)*PCONC(:,69) +!PTERMS(HCHO,K282) = +0.5*K282*<O3>*<MCR> + PTERMS(:,28,283) = +0.5*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) ! -!PTERMS(NO2,KTR24) = +KTR24*<WR_NO2> - PTERMS(:,4,196) = +TPK%KTR24(:)*PCONC(:,70) +!PTERMS(MCR,K282) = -K282*<O3>*<MCR> + PTERMS(:,40,283) = -TPK%K282(:)*PCONC(:,3)*PCONC(:,40) ! -!PTERMS(WR_NO2,KTR24) = -KTR24*<WR_NO2> - PTERMS(:,70,196) = -TPK%KTR24(:)*PCONC(:,70) +!PTERMS(MGLY,K282) = +0.59*K282*<O3>*<MCR> + PTERMS(:,41,283) = +0.59*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) ! -!PTERMS(NO3,KTR25) = +KTR25*<WR_NO3> - PTERMS(:,5,197) = +TPK%KTR25(:)*PCONC(:,71) +!PTERMS(ORA1,K282) = +0.09*K282*<O3>*<MCR> + PTERMS(:,43,283) = +0.09*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) ! -!PTERMS(WR_NO3,KTR25) = -KTR25*<WR_NO3> - PTERMS(:,71,197) = -TPK%KTR25(:)*PCONC(:,71) +!PTERMS(RO2T,K282) = +0.41*K282*<O3>*<MCR> + PTERMS(:,85,283) = +0.41*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) ! -!PTERMS(N2O5,KTR26) = +KTR26*<WR_N2O5> - PTERMS(:,6,198) = +TPK%KTR26(:)*PCONC(:,72) +!PTERMS(KETL,K283) = +0.85*K283*<O>*<MVK> + PTERMS(:,30,284) = +0.85*TPK%K283(:)*TPK%O(:)*PCONC(:,39) ! -!PTERMS(WR_N2O5,KTR26) = -KTR26*<WR_N2O5> - PTERMS(:,72,198) = -TPK%KTR26(:)*PCONC(:,72) +!PTERMS(MVK,K283) = -K283*<O>*<MVK> + PTERMS(:,39,284) = -TPK%K283(:)*TPK%O(:)*PCONC(:,39) ! -!PTERMS(HONO,KTR27) = +KTR27*<WR_HONO> - PTERMS(:,7,199) = +TPK%KTR27(:)*PCONC(:,73) +!PTERMS(RO2T,K283) = +0.3*K283*<O>*<MVK> + PTERMS(:,85,284) = +0.3*TPK%K283(:)*TPK%O(:)*PCONC(:,39) ! -!PTERMS(WR_HONO,KTR27) = -KTR27*<WR_HONO> - PTERMS(:,73,199) = -TPK%KTR27(:)*PCONC(:,73) +!PTERMS(HO2,K284) = +0.15*K284*<O>*<MCR> + PTERMS(:,10,285) = +0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40) ! -!PTERMS(HNO3,KTR28) = +KTR28*<WR_HNO3> - PTERMS(:,8,200) = +TPK%KTR28(:)*PCONC(:,74) +!PTERMS(CO,K284) = +0.15*K284*<O>*<MCR> + PTERMS(:,11,285) = +0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40) ! -!PTERMS(WR_HNO3,KTR28) = -KTR28*<WR_HNO3> - PTERMS(:,74,200) = -TPK%KTR28(:)*PCONC(:,74) +!PTERMS(ALD2,K284) = +0.85*K284*<O>*<MCR> + PTERMS(:,29,285) = +0.85*TPK%K284(:)*TPK%O(:)*PCONC(:,40) ! -!PTERMS(HNO4,KTR29) = +KTR29*<WR_HNO4> - PTERMS(:,9,201) = +TPK%KTR29(:)*PCONC(:,75) +!PTERMS(MCR,K284) = -K284*<O>*<MCR> + PTERMS(:,40,285) = -TPK%K284(:)*TPK%O(:)*PCONC(:,40) ! ! RETURN -END SUBROUTINE SUBT36 +END SUBROUTINE SUBT47 ! -SUBROUTINE SUBT37 +SUBROUTINE SUBT48 ! -!Indices 741 a 760 +!Indices 961 a 980 ! -!PTERMS(WR_HNO4,KTR29) = -KTR29*<WR_HNO4> - PTERMS(:,75,201) = -TPK%KTR29(:)*PCONC(:,75) +!PTERMS(RO2T,K284) = +0.15*K284*<O>*<MCR> + PTERMS(:,85,285) = +0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40) ! -!PTERMS(NH3,KTR30) = +KTR30*<WR_NH3> - PTERMS(:,10,202) = +TPK%KTR30(:)*PCONC(:,76) +!PTERMS(NO,K285) = -K285*<NO>*<RO249> + PTERMS(:,1,286) = -TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) ! -!PTERMS(WR_NH3,KTR30) = -KTR30*<WR_NH3> - PTERMS(:,76,202) = -TPK%KTR30(:)*PCONC(:,76) +!PTERMS(NO2,K285) = +K285*<NO>*<RO249> + PTERMS(:,2,286) = +TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) ! -!PTERMS(OH,KTR31) = +KTR31*<WR_OH> - PTERMS(:,14,203) = +TPK%KTR31(:)*PCONC(:,77) +!PTERMS(HO2,K285) = +K285*<NO>*<RO249> + PTERMS(:,10,286) = +TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) ! -!PTERMS(WR_OH,KTR31) = -KTR31*<WR_OH> - PTERMS(:,77,203) = -TPK%KTR31(:)*PCONC(:,77) +!PTERMS(HCHO,K285) = +K285*<NO>*<RO249> + PTERMS(:,28,286) = +TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) ! -!PTERMS(HO2,KTR32) = +KTR32*<WR_HO2> - PTERMS(:,15,204) = +TPK%KTR32(:)*PCONC(:,78) +!PTERMS(MGLY,K285) = +K285*<NO>*<RO249> + PTERMS(:,41,286) = +TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) ! -!PTERMS(WR_HO2,KTR32) = -KTR32*<WR_HO2> - PTERMS(:,78,204) = -TPK%KTR32(:)*PCONC(:,78) +!PTERMS(HO2,K286) = +K286*<RO2T>*<RO249> + PTERMS(:,10,287) = +TPK%K286(:)*PCONC(:,85)*TPK%RO249(:) ! -!PTERMS(WR_CO2,KTR33) = -KTR33*<WR_CO2> - PTERMS(:,79,205) = -TPK%KTR33(:)*PCONC(:,79) +!PTERMS(HCHO,K286) = +K286*<RO2T>*<RO249> + PTERMS(:,28,287) = +TPK%K286(:)*PCONC(:,85)*TPK%RO249(:) ! -!PTERMS(SO2,KTR34) = +KTR34*<WR_SO2> - PTERMS(:,11,206) = +TPK%KTR34(:)*PCONC(:,80) +!PTERMS(MGLY,K286) = +K286*<RO2T>*<RO249> + PTERMS(:,41,287) = +TPK%K286(:)*PCONC(:,85)*TPK%RO249(:) ! -!PTERMS(WR_SO2,KTR34) = -KTR34*<WR_SO2> - PTERMS(:,80,206) = -TPK%KTR34(:)*PCONC(:,80) +!PTERMS(RO2T,K286) = -K286*<RO2T>*<RO249> + PTERMS(:,85,287) = -TPK%K286(:)*PCONC(:,85)*TPK%RO249(:) ! -!PTERMS(SULF,KTR35) = +KTR35*<WR_SULF> - PTERMS(:,12,207) = +TPK%KTR35(:)*PCONC(:,81) +!PTERMS(HO2,K287) = -K287*<HO2>*<RO249> + PTERMS(:,10,288) = -TPK%K287(:)*PCONC(:,10)*TPK%RO249(:) ! -!PTERMS(WR_SULF,KTR35) = -KTR35*<WR_SULF> - PTERMS(:,81,207) = -TPK%KTR35(:)*PCONC(:,81) +!PTERMS(OH,K287) = +K287*<HO2>*<RO249> + PTERMS(:,15,288) = +TPK%K287(:)*PCONC(:,10)*TPK%RO249(:) ! -!PTERMS(HCHO,KTR36) = +KTR36*<WR_HCHO> - PTERMS(:,22,208) = +TPK%KTR36(:)*PCONC(:,82) +!PTERMS(HCHO,K287) = +K287*<HO2>*<RO249> + PTERMS(:,28,288) = +TPK%K287(:)*PCONC(:,10)*TPK%RO249(:) ! -!PTERMS(WR_HCHO,KTR36) = -KTR36*<WR_HCHO> - PTERMS(:,82,208) = -TPK%KTR36(:)*PCONC(:,82) +!PTERMS(MGLY,K287) = +K287*<HO2>*<RO249> + PTERMS(:,41,288) = +TPK%K287(:)*PCONC(:,10)*TPK%RO249(:) ! -!PTERMS(ORA1,KTR37) = +KTR37*<WR_ORA1> - PTERMS(:,30,209) = +TPK%KTR37(:)*PCONC(:,83) +!PTERMS(NO,K288) = -K288*<NO>*<RO250> + PTERMS(:,1,289) = -TPK%K288(:)*PCONC(:,1)*TPK%RO250(:) ! -!PTERMS(WR_ORA1,KTR37) = -KTR37*<WR_ORA1> - PTERMS(:,83,209) = -TPK%KTR37(:)*PCONC(:,83) +!PTERMS(NO2,K288) = +K288*<NO>*<RO250> + PTERMS(:,2,289) = +TPK%K288(:)*PCONC(:,1)*TPK%RO250(:) ! -!PTERMS(ORA2,KTR38) = +KTR38*<WR_ORA2> - PTERMS(:,31,210) = +TPK%KTR38(:)*PCONC(:,84) +!PTERMS(RO2T,K288) = +K288*<NO>*<RO250> + PTERMS(:,85,289) = +TPK%K288(:)*PCONC(:,1)*TPK%RO250(:) ! -!PTERMS(WR_ORA2,KTR38) = -KTR38*<WR_ORA2> - PTERMS(:,84,210) = -TPK%KTR38(:)*PCONC(:,84) +!PTERMS(O3,K289) = +K289*<HO2>*<RO250> + PTERMS(:,3,290) = +TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) ! -!PTERMS(MO2,KTR39) = +KTR39*<WR_MO2> - PTERMS(:,32,211) = +TPK%KTR39(:)*PCONC(:,85) +!PTERMS(HO2,K289) = -K289*<HO2>*<RO250> + PTERMS(:,10,290) = -TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) ! -!PTERMS(WR_MO2,KTR39) = -KTR39*<WR_MO2> - PTERMS(:,85,211) = -TPK%KTR39(:)*PCONC(:,85) +!PTERMS(OLEL,K289) = +0.5*K289*<HO2>*<RO250> + PTERMS(:,17,290) = +0.5*TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) ! ! RETURN -END SUBROUTINE SUBT37 +END SUBROUTINE SUBT48 ! -SUBROUTINE SUBT38 +SUBROUTINE SUBT49 ! -!Indices 761 a 780 +!Indices 981 a 1000 ! -!PTERMS(OP1,KTR40) = +KTR40*<WR_OP1> - PTERMS(:,28,212) = +TPK%KTR40(:)*PCONC(:,86) +!PTERMS(ORA2,K289) = +0.5*K289*<HO2>*<RO250> + PTERMS(:,44,290) = +0.5*TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) ! -!PTERMS(WR_OP1,KTR40) = -KTR40*<WR_OP1> - PTERMS(:,86,212) = -TPK%KTR40(:)*PCONC(:,86) +!PTERMS(RO2T,K290) = -K290*<RO2T>*<RO250> + PTERMS(:,85,291) = -TPK%K290(:)*PCONC(:,85)*TPK%RO250(:) ! -!PTERMS(WC_H2O2,KC1) = -KC1*<WC_H2O2> - PTERMS(:,43,213) = -TPK%KC1(:)*PCONC(:,43) +!PTERMS(NO,K291) = -K291*<NO>*<RO251> + PTERMS(:,1,292) = -TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) ! -!PTERMS(WC_OH,KC1) = +KC1*<WC_H2O2> - PTERMS(:,52,213) = +TPK%KC1(:)*PCONC(:,43) +!PTERMS(NO2,K291) = +K291*<NO>*<RO251> + PTERMS(:,2,292) = +TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) ! -!PTERMS(WC_H2O2,KC2) = +KC2*<WC_OH>*<WC_OH> - PTERMS(:,43,214) = +TPK%KC2(:)*PCONC(:,52)*PCONC(:,52) +!PTERMS(HO2,K291) = +K291*<NO>*<RO251> + PTERMS(:,10,292) = +TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) ! -!PTERMS(WC_OH,KC2) = -KC2*<WC_OH>*<WC_OH> - PTERMS(:,52,214) = -TPK%KC2(:)*PCONC(:,52)*PCONC(:,52) +!PTERMS(HCHO,K291) = +K291*<NO>*<RO251> + PTERMS(:,28,292) = +TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) ! -!PTERMS(WC_OH,KC3) = -KC3*<WC_OH>*<WC_HO2> - PTERMS(:,52,215) = -TPK%KC3(:)*PCONC(:,52)*PCONC(:,53) +!PTERMS(MGLY,K291) = +K291*<NO>*<RO251> + PTERMS(:,41,292) = +TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) ! -!PTERMS(WC_HO2,KC3) = -KC3*<WC_OH>*<WC_HO2> - PTERMS(:,53,215) = -TPK%KC3(:)*PCONC(:,52)*PCONC(:,53) +!PTERMS(HO2,K292) = -K292*<HO2>*<RO251> + PTERMS(:,10,293) = -TPK%K292(:)*PCONC(:,10)*TPK%RO251(:) ! -!PTERMS(WC_H2O2,KC4) = -KC4*<WC_H2O2>*<WC_OH> - PTERMS(:,43,216) = -TPK%KC4(:)*PCONC(:,43)*PCONC(:,52) +!PTERMS(HCHO,K292) = +K292*<HO2>*<RO251> + PTERMS(:,28,293) = +TPK%K292(:)*PCONC(:,10)*TPK%RO251(:) ! -!PTERMS(WC_OH,KC4) = -KC4*<WC_H2O2>*<WC_OH> - PTERMS(:,52,216) = -TPK%KC4(:)*PCONC(:,43)*PCONC(:,52) +!PTERMS(MGLY,K292) = +K292*<HO2>*<RO251> + PTERMS(:,41,293) = +TPK%K292(:)*PCONC(:,10)*TPK%RO251(:) ! -!PTERMS(WC_HO2,KC4) = +KC4*<WC_H2O2>*<WC_OH> - PTERMS(:,53,216) = +TPK%KC4(:)*PCONC(:,43)*PCONC(:,52) +!PTERMS(RO2T,K292) = +K292*<HO2>*<RO251> + PTERMS(:,85,293) = +TPK%K292(:)*PCONC(:,10)*TPK%RO251(:) ! -!PTERMS(WC_H2O2,KC5) = +KC5*<WC_HO2>*<WC_HO2> - PTERMS(:,43,217) = +TPK%KC5(:)*PCONC(:,53)*PCONC(:,53) +!PTERMS(HO2,K293) = +K293*<RO2T>*<RO251> + PTERMS(:,10,294) = +TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) ! -!PTERMS(WC_HO2,KC5) = -KC5*<WC_HO2>*<WC_HO2> - PTERMS(:,53,217) = -TPK%KC5(:)*PCONC(:,53)*PCONC(:,53) +!PTERMS(OH,K293) = +K293*<RO2T>*<RO251> + PTERMS(:,15,294) = +TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) ! -!PTERMS(WC_O3,KC6) = -KC6*<WC_O3>*<WC_HO2> - PTERMS(:,42,218) = -TPK%KC6(:)*PCONC(:,42)*PCONC(:,53) +!PTERMS(HCHO,K293) = +K293*<RO2T>*<RO251> + PTERMS(:,28,294) = +TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) ! -!PTERMS(WC_OH,KC6) = +KC6*<WC_O3>*<WC_HO2> - PTERMS(:,52,218) = +TPK%KC6(:)*PCONC(:,42)*PCONC(:,53) +!PTERMS(MGLY,K293) = +K293*<RO2T>*<RO251> + PTERMS(:,41,294) = +TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) ! -!PTERMS(WC_HO2,KC6) = -KC6*<WC_O3>*<WC_HO2> - PTERMS(:,53,218) = -TPK%KC6(:)*PCONC(:,42)*PCONC(:,53) +!PTERMS(RO2T,K293) = -K293*<RO2T>*<RO251> + PTERMS(:,85,294) = -TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) ! -!PTERMS(WC_OH,KC7) = -KC7*<WC_OH>*<WC_SO2> - PTERMS(:,52,219) = -TPK%KC7(:)*PCONC(:,52)*PCONC(:,55) +!PTERMS(NO,K294) = -K294*<NO>*<RO252> + PTERMS(:,1,295) = -TPK%K294(:)*PCONC(:,1)*TPK%RO252(:) ! -!PTERMS(WC_SO2,KC7) = -KC7*<WC_OH>*<WC_SO2> - PTERMS(:,55,219) = -TPK%KC7(:)*PCONC(:,52)*PCONC(:,55) +!PTERMS(NO2,K294) = +2.*K294*<NO>*<RO252> + PTERMS(:,2,295) = +2.*TPK%K294(:)*PCONC(:,1)*TPK%RO252(:) ! -!PTERMS(WC_ASO3,KC7) = +KC7*<WC_OH>*<WC_SO2> - PTERMS(:,62,219) = +TPK%KC7(:)*PCONC(:,52)*PCONC(:,55) +!PTERMS(HCHO,K294) = +K294*<NO>*<RO252> + PTERMS(:,28,295) = +TPK%K294(:)*PCONC(:,1)*TPK%RO252(:) ! -!PTERMS(WC_NO2,KC8) = +KC8*<WC_HONO>*<WC_OH> - PTERMS(:,45,220) = +TPK%KC8(:)*PCONC(:,48)*PCONC(:,52) +!PTERMS(MGLY,K294) = +K294*<NO>*<RO252> + PTERMS(:,41,295) = +TPK%K294(:)*PCONC(:,1)*TPK%RO252(:) ! ! RETURN -END SUBROUTINE SUBT38 +END SUBROUTINE SUBT49 ! -SUBROUTINE SUBT39 +SUBROUTINE SUBT50 ! -!Indices 781 a 800 +!Indices 1001 a 1020 ! -!PTERMS(WC_HONO,KC8) = -KC8*<WC_HONO>*<WC_OH> - PTERMS(:,48,220) = -TPK%KC8(:)*PCONC(:,48)*PCONC(:,52) +!PTERMS(NO2,K295) = +K295*<HO2>*<RO252> + PTERMS(:,2,296) = +TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) ! -!PTERMS(WC_OH,KC8) = -KC8*<WC_HONO>*<WC_OH> - PTERMS(:,52,220) = -TPK%KC8(:)*PCONC(:,48)*PCONC(:,52) +!PTERMS(HO2,K295) = -K295*<HO2>*<RO252> + PTERMS(:,10,296) = -TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) ! -!PTERMS(WC_NO2,KC9) = -KC9*<WC_NO2>*<WC_HO2> - PTERMS(:,45,221) = -TPK%KC9(:)*PCONC(:,45)*PCONC(:,53) +!PTERMS(HCHO,K295) = +K295*<HO2>*<RO252> + PTERMS(:,28,296) = +TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) ! -!PTERMS(WC_HNO4,KC9) = +KC9*<WC_NO2>*<WC_HO2> - PTERMS(:,50,221) = +TPK%KC9(:)*PCONC(:,45)*PCONC(:,53) +!PTERMS(MGLY,K295) = +K295*<HO2>*<RO252> + PTERMS(:,41,296) = +TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) ! -!PTERMS(WC_HO2,KC9) = -KC9*<WC_NO2>*<WC_HO2> - PTERMS(:,53,221) = -TPK%KC9(:)*PCONC(:,45)*PCONC(:,53) +!PTERMS(RO2T,K295) = +K295*<HO2>*<RO252> + PTERMS(:,85,296) = +TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) ! -!PTERMS(WC_NO2,KC10) = +KC10*<WC_HNO4> - PTERMS(:,45,222) = +TPK%KC10(:)*PCONC(:,50) +!PTERMS(NO2,K296) = +K296*<RO2T>*<RO252> + PTERMS(:,2,297) = +TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) ! -!PTERMS(WC_HNO4,KC10) = -KC10*<WC_HNO4> - PTERMS(:,50,222) = -TPK%KC10(:)*PCONC(:,50) +!PTERMS(OH,K296) = +K296*<RO2T>*<RO252> + PTERMS(:,15,297) = +TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) ! -!PTERMS(WC_HO2,KC10) = +KC10*<WC_HNO4> - PTERMS(:,53,222) = +TPK%KC10(:)*PCONC(:,50) +!PTERMS(HCHO,K296) = +K296*<RO2T>*<RO252> + PTERMS(:,28,297) = +TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) ! -!PTERMS(WC_HONO,KC11) = +KC11*<WC_HNO4> - PTERMS(:,48,223) = +TPK%KC11(:)*PCONC(:,50) +!PTERMS(MGLY,K296) = +K296*<RO2T>*<RO252> + PTERMS(:,41,297) = +TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) ! -!PTERMS(WC_HNO4,KC11) = -KC11*<WC_HNO4> - PTERMS(:,50,223) = -TPK%KC11(:)*PCONC(:,50) +!PTERMS(RO2T,K296) = -K296*<RO2T>*<RO252> + PTERMS(:,85,297) = -TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) ! -!PTERMS(WC_HNO3,KC12) = +KC12*<WC_HNO4>*<WC_SO2> - PTERMS(:,49,224) = +TPK%KC12(:)*PCONC(:,50)*PCONC(:,55) +!PTERMS(NO,K297) = -K297*<NO>*<RO253> + PTERMS(:,1,298) = -TPK%K297(:)*PCONC(:,1)*TPK%RO253(:) ! -!PTERMS(WC_HNO4,KC12) = -KC12*<WC_HNO4>*<WC_SO2> - PTERMS(:,50,224) = -TPK%KC12(:)*PCONC(:,50)*PCONC(:,55) +!PTERMS(NO2,K297) = +K297*<NO>*<RO253> + PTERMS(:,2,298) = +TPK%K297(:)*PCONC(:,1)*TPK%RO253(:) ! -!PTERMS(WC_SO2,KC12) = -KC12*<WC_HNO4>*<WC_SO2> - PTERMS(:,55,224) = -TPK%KC12(:)*PCONC(:,50)*PCONC(:,55) +!PTERMS(HCHO,K297) = +K297*<NO>*<RO253> + PTERMS(:,28,298) = +TPK%K297(:)*PCONC(:,1)*TPK%RO253(:) ! -!PTERMS(WC_SULF,KC12) = +KC12*<WC_HNO4>*<WC_SO2> - PTERMS(:,56,224) = +TPK%KC12(:)*PCONC(:,50)*PCONC(:,55) +!PTERMS(RO2T,K297) = +K297*<NO>*<RO253> + PTERMS(:,85,298) = +TPK%K297(:)*PCONC(:,1)*TPK%RO253(:) ! -!PTERMS(WC_NO2,KC13) = +KC13*<WC_HNO3> - PTERMS(:,45,225) = +TPK%KC13(:)*PCONC(:,49) +!PTERMS(HO2,K298) = -K298*<HO2>*<RO253> + PTERMS(:,10,299) = -TPK%K298(:)*PCONC(:,10)*TPK%RO253(:) ! -!PTERMS(WC_HNO3,KC13) = -KC13*<WC_HNO3> - PTERMS(:,49,225) = -TPK%KC13(:)*PCONC(:,49) +!PTERMS(HCHO,K298) = +K298*<HO2>*<RO253> + PTERMS(:,28,299) = +TPK%K298(:)*PCONC(:,10)*TPK%RO253(:) ! -!PTERMS(WC_OH,KC13) = +KC13*<WC_HNO3> - PTERMS(:,52,225) = +TPK%KC13(:)*PCONC(:,49) +!PTERMS(RO2T,K298) = +2.*K298*<HO2>*<RO253> + PTERMS(:,85,299) = +2.*TPK%K298(:)*PCONC(:,10)*TPK%RO253(:) ! -!PTERMS(WC_N2O5,KC14) = -KC14*<WC_N2O5> - PTERMS(:,47,226) = -TPK%KC14(:)*PCONC(:,47) +!PTERMS(OH,K299) = +K299*<RO2T>*<RO253> + PTERMS(:,15,300) = +TPK%K299(:)*PCONC(:,85)*TPK%RO253(:) ! -!PTERMS(WC_HNO3,KC14) = +KC14*<WC_N2O5> - PTERMS(:,49,226) = +TPK%KC14(:)*PCONC(:,47) +!PTERMS(HCHO,K299) = +K299*<RO2T>*<RO253> + PTERMS(:,28,300) = +TPK%K299(:)*PCONC(:,85)*TPK%RO253(:) ! -!PTERMS(WC_NO3,KC15) = -KC15*<WC_NO3>*<WC_SULF> - PTERMS(:,46,227) = -TPK%KC15(:)*PCONC(:,46)*PCONC(:,56) +!PTERMS(RO2T,K299) = -K299*<RO2T>*<RO253> + PTERMS(:,85,300) = -TPK%K299(:)*PCONC(:,85)*TPK%RO253(:) ! ! RETURN -END SUBROUTINE SUBT39 +END SUBROUTINE SUBT50 ! -SUBROUTINE SUBT40 +SUBROUTINE SUBT51 ! -!Indices 801 a 820 +!Indices 1021 a 1040 ! -!PTERMS(WC_HNO3,KC15) = +KC15*<WC_NO3>*<WC_SULF> - PTERMS(:,49,227) = +TPK%KC15(:)*PCONC(:,46)*PCONC(:,56) +!PTERMS(NO,K300) = -K300*<NO>*<RO254> + PTERMS(:,1,301) = -TPK%K300(:)*PCONC(:,1)*TPK%RO254(:) ! -!PTERMS(WC_SULF,KC15) = -KC15*<WC_NO3>*<WC_SULF> - PTERMS(:,56,227) = -TPK%KC15(:)*PCONC(:,46)*PCONC(:,56) +!PTERMS(NO2,K300) = +K300*<NO>*<RO254> + PTERMS(:,2,301) = +TPK%K300(:)*PCONC(:,1)*TPK%RO254(:) ! -!PTERMS(WC_ASO4,KC15) = +KC15*<WC_NO3>*<WC_SULF> - PTERMS(:,63,227) = +TPK%KC15(:)*PCONC(:,46)*PCONC(:,56) +!PTERMS(HO2,K300) = +K300*<NO>*<RO254> + PTERMS(:,10,301) = +TPK%K300(:)*PCONC(:,1)*TPK%RO254(:) ! -!PTERMS(WC_NO3,KC16) = -KC16*<WC_NO3>*<WC_SO2> - PTERMS(:,46,228) = -TPK%KC16(:)*PCONC(:,46)*PCONC(:,55) +!PTERMS(CO,K300) = +K300*<NO>*<RO254> + PTERMS(:,11,301) = +TPK%K300(:)*PCONC(:,1)*TPK%RO254(:) ! -!PTERMS(WC_HNO3,KC16) = +KC16*<WC_NO3>*<WC_SO2> - PTERMS(:,49,228) = +TPK%KC16(:)*PCONC(:,46)*PCONC(:,55) +!PTERMS(O3,K301) = +K301*<HO2>*<RO254> + PTERMS(:,3,302) = +TPK%K301(:)*PCONC(:,10)*TPK%RO254(:) ! -!PTERMS(WC_SO2,KC16) = -KC16*<WC_NO3>*<WC_SO2> - PTERMS(:,55,228) = -TPK%KC16(:)*PCONC(:,46)*PCONC(:,55) +!PTERMS(HO2,K301) = -K301*<HO2>*<RO254> + PTERMS(:,10,302) = -TPK%K301(:)*PCONC(:,10)*TPK%RO254(:) ! -!PTERMS(WC_ASO3,KC16) = +KC16*<WC_NO3>*<WC_SO2> - PTERMS(:,62,228) = +TPK%KC16(:)*PCONC(:,46)*PCONC(:,55) +!PTERMS(RP16,K301) = +K301*<HO2>*<RO254> + PTERMS(:,74,302) = +TPK%K301(:)*PCONC(:,10)*TPK%RO254(:) ! -!PTERMS(WC_HO2,KC17) = +2.00*KC17*<WC_MO2>*<WC_MO2> - PTERMS(:,53,229) = +2.00*TPK%KC17(:)*PCONC(:,60)*PCONC(:,60) +!PTERMS(HO2,K302) = +K302*<RO2T>*<RO254> + PTERMS(:,10,303) = +TPK%K302(:)*PCONC(:,85)*TPK%RO254(:) ! -!PTERMS(WC_HCHO,KC17) = +2.00*KC17*<WC_MO2>*<WC_MO2> - PTERMS(:,57,229) = +2.00*TPK%KC17(:)*PCONC(:,60)*PCONC(:,60) +!PTERMS(CO,K302) = +K302*<RO2T>*<RO254> + PTERMS(:,11,303) = +TPK%K302(:)*PCONC(:,85)*TPK%RO254(:) ! -!PTERMS(WC_MO2,KC17) = -KC17*<WC_MO2>*<WC_MO2> - PTERMS(:,60,229) = -TPK%KC17(:)*PCONC(:,60)*PCONC(:,60) +!PTERMS(RO2T,K302) = -K302*<RO2T>*<RO254> + PTERMS(:,85,303) = -TPK%K302(:)*PCONC(:,85)*TPK%RO254(:) ! -!PTERMS(WC_SO2,KC18) = -KC18*<WC_MO2>*<WC_SO2> - PTERMS(:,55,230) = -TPK%KC18(:)*PCONC(:,60)*PCONC(:,55) +!PTERMS(O3,K303) = +K303*<OH>*<RPR5> + PTERMS(:,3,304) = +TPK%K303(:)*PCONC(:,15)*PCONC(:,70) ! -!PTERMS(WC_MO2,KC18) = -KC18*<WC_MO2>*<WC_SO2> - PTERMS(:,60,230) = -TPK%KC18(:)*PCONC(:,60)*PCONC(:,55) +!PTERMS(OH,K303) = -K303*<OH>*<RPR5> + PTERMS(:,15,304) = -TPK%K303(:)*PCONC(:,15)*PCONC(:,70) ! -!PTERMS(WC_OP1,KC18) = +KC18*<WC_MO2>*<WC_SO2> - PTERMS(:,61,230) = +TPK%KC18(:)*PCONC(:,60)*PCONC(:,55) +!PTERMS(URG7,K303) = +0.9999993*K303*<OH>*<RPR5> + PTERMS(:,60,304) = +0.9999993*TPK%K303(:)*PCONC(:,15)*PCONC(:,70) ! -!PTERMS(WC_ASO3,KC18) = +KC18*<WC_MO2>*<WC_SO2> - PTERMS(:,62,230) = +TPK%KC18(:)*PCONC(:,60)*PCONC(:,55) +!PTERMS(RPR5,K303) = -K303*<OH>*<RPR5> + PTERMS(:,70,304) = -TPK%K303(:)*PCONC(:,15)*PCONC(:,70) ! -!PTERMS(WC_OH,KC19) = -KC19*<WC_HCHO>*<WC_OH> - PTERMS(:,52,231) = -TPK%KC19(:)*PCONC(:,57)*PCONC(:,52) +!PTERMS(OH,K304) = -K304*<OH>*<RPR1> + PTERMS(:,15,305) = -TPK%K304(:)*PCONC(:,15)*PCONC(:,69) ! -!PTERMS(WC_HO2,KC19) = +KC19*<WC_HCHO>*<WC_OH> - PTERMS(:,53,231) = +TPK%KC19(:)*PCONC(:,57)*PCONC(:,52) +!PTERMS(RPR1,K304) = -K304*<OH>*<RPR1> + PTERMS(:,69,305) = -TPK%K304(:)*PCONC(:,15)*PCONC(:,69) ! -!PTERMS(WC_HCHO,KC19) = -KC19*<WC_HCHO>*<WC_OH> - PTERMS(:,57,231) = -TPK%KC19(:)*PCONC(:,57)*PCONC(:,52) +!PTERMS(RO2T,K304) = +K304*<OH>*<RPR1> + PTERMS(:,85,305) = +TPK%K304(:)*PCONC(:,15)*PCONC(:,69) ! -!PTERMS(WC_ORA1,KC19) = +KC19*<WC_HCHO>*<WC_OH> - PTERMS(:,58,231) = +TPK%KC19(:)*PCONC(:,57)*PCONC(:,52) +!PTERMS(OH,K305) = -K305*<OH>*<RP16> + PTERMS(:,15,306) = -TPK%K305(:)*PCONC(:,15)*PCONC(:,74) ! -!PTERMS(WC_OH,KC20) = -KC20*<WC_ORA1>*<WC_OH> - PTERMS(:,52,232) = -TPK%KC20(:)*PCONC(:,58)*PCONC(:,52) +!PTERMS(RP16,K305) = -K305*<OH>*<RP16> + PTERMS(:,74,306) = -TPK%K305(:)*PCONC(:,15)*PCONC(:,74) ! -!PTERMS(WC_HO2,KC20) = +KC20*<WC_ORA1>*<WC_OH> - PTERMS(:,53,232) = +TPK%KC20(:)*PCONC(:,58)*PCONC(:,52) +!PTERMS(RO2T,K305) = +K305*<OH>*<RP16> + PTERMS(:,85,306) = +TPK%K305(:)*PCONC(:,15)*PCONC(:,74) ! ! RETURN -END SUBROUTINE SUBT40 +END SUBROUTINE SUBT51 ! -SUBROUTINE SUBT41 +SUBROUTINE SUBT52 ! -!Indices 821 a 840 +!Indices 1041 a 1060 ! -!PTERMS(WC_CO2,KC20) = +KC20*<WC_ORA1>*<WC_OH> - PTERMS(:,54,232) = +TPK%KC20(:)*PCONC(:,58)*PCONC(:,52) +!PTERMS(O3,K306) = +1.0000011*K306*<OH>*<RPRL> + PTERMS(:,3,307) = +1.0000011*TPK%K306(:)*PCONC(:,15)*PCONC(:,75) ! -!PTERMS(WC_ORA1,KC20) = -KC20*<WC_ORA1>*<WC_OH> - PTERMS(:,58,232) = -TPK%KC20(:)*PCONC(:,58)*PCONC(:,52) +!PTERMS(OH,K306) = -K306*<OH>*<RPRL> + PTERMS(:,15,307) = -TPK%K306(:)*PCONC(:,15)*PCONC(:,75) ! -!PTERMS(WC_SO2,KC21) = -KC21*<WC_SO2>*<WC_HCHO> - PTERMS(:,55,233) = -TPK%KC21(:)*PCONC(:,55)*PCONC(:,57) +!PTERMS(URG7,K306) = +0.9979297*K306*<OH>*<RPRL> + PTERMS(:,60,307) = +0.9979297*TPK%K306(:)*PCONC(:,15)*PCONC(:,75) ! -!PTERMS(WC_HCHO,KC21) = -KC21*<WC_SO2>*<WC_HCHO> - PTERMS(:,57,233) = -TPK%KC21(:)*PCONC(:,55)*PCONC(:,57) +!PTERMS(RPR7,K306) = +2.0714202E-03*K306*<OH>*<RPRL> + PTERMS(:,62,307) = +2.0714202E-03*TPK%K306(:)*PCONC(:,15)*PCONC(:,75) ! -!PTERMS(WC_AHMS,KC21) = +KC21*<WC_SO2>*<WC_HCHO> - PTERMS(:,66,233) = +TPK%KC21(:)*PCONC(:,55)*PCONC(:,57) +!PTERMS(RPRL,K306) = -K306*<OH>*<RPRL> + PTERMS(:,75,307) = -TPK%K306(:)*PCONC(:,15)*PCONC(:,75) ! -!PTERMS(WC_SO2,KC22) = +KC22*<WC_AHMS> - PTERMS(:,55,234) = +TPK%KC22(:)*PCONC(:,66) +!PTERMS(HNO3,K307) = +K307*<NO3>*<RPR1> + PTERMS(:,5,308) = +TPK%K307(:)*PCONC(:,8)*PCONC(:,69) ! -!PTERMS(WC_HCHO,KC22) = +KC22*<WC_AHMS> - PTERMS(:,57,234) = +TPK%KC22(:)*PCONC(:,66) +!PTERMS(NO3,K307) = -K307*<NO3>*<RPR1> + PTERMS(:,8,308) = -TPK%K307(:)*PCONC(:,8)*PCONC(:,69) ! -!PTERMS(WC_AHMS,KC22) = -KC22*<WC_AHMS> - PTERMS(:,66,234) = -TPK%KC22(:)*PCONC(:,66) +!PTERMS(RPR1,K307) = -K307*<NO3>*<RPR1> + PTERMS(:,69,308) = -TPK%K307(:)*PCONC(:,8)*PCONC(:,69) ! -!PTERMS(WC_OH,KC23) = -KC23*<WC_AHMS>*<WC_OH> - PTERMS(:,52,235) = -TPK%KC23(:)*PCONC(:,66)*PCONC(:,52) +!PTERMS(RO2T,K307) = +K307*<NO3>*<RPR1> + PTERMS(:,85,308) = +TPK%K307(:)*PCONC(:,8)*PCONC(:,69) ! -!PTERMS(WC_HO2,KC23) = +KC23*<WC_AHMS>*<WC_OH> - PTERMS(:,53,235) = +TPK%KC23(:)*PCONC(:,66)*PCONC(:,52) +!PTERMS(HO2,K308) = +K308*<RPR1> + PTERMS(:,10,309) = +TPK%K308(:)*PCONC(:,69) ! -!PTERMS(WC_SO2,KC23) = +KC23*<WC_AHMS>*<WC_OH> - PTERMS(:,55,235) = +TPK%KC23(:)*PCONC(:,66)*PCONC(:,52) +!PTERMS(CO,K308) = +K308*<RPR1> + PTERMS(:,11,309) = +TPK%K308(:)*PCONC(:,69) ! -!PTERMS(WC_ORA1,KC23) = +KC23*<WC_AHMS>*<WC_OH> - PTERMS(:,58,235) = +TPK%KC23(:)*PCONC(:,66)*PCONC(:,52) +!PTERMS(RPR1,K308) = -K308*<RPR1> + PTERMS(:,69,309) = -TPK%K308(:)*PCONC(:,69) ! -!PTERMS(WC_AHMS,KC23) = -KC23*<WC_AHMS>*<WC_OH> - PTERMS(:,66,235) = -TPK%KC23(:)*PCONC(:,66)*PCONC(:,52) +!PTERMS(RO2T,K308) = +K308*<RPR1> + PTERMS(:,85,309) = +TPK%K308(:)*PCONC(:,69) ! -!PTERMS(WC_ASO3,KC24) = -KC24*<WC_ASO3>*<W_O2> - PTERMS(:,62,236) = -TPK%KC24(:)*PCONC(:,62)*TPK%W_O2(:) +!PTERMS(NO,K309) = -K309*<NO>*<RO255> + PTERMS(:,1,310) = -TPK%K309(:)*PCONC(:,1)*TPK%RO255(:) ! -!PTERMS(WC_ASO5,KC24) = +KC24*<WC_ASO3>*<W_O2> - PTERMS(:,64,236) = +TPK%KC24(:)*PCONC(:,62)*TPK%W_O2(:) +!PTERMS(NO2,K309) = +K309*<NO>*<RO255> + PTERMS(:,2,310) = +TPK%K309(:)*PCONC(:,1)*TPK%RO255(:) ! -!PTERMS(WC_HO2,KC25) = -KC25*<WC_ASO5>*<WC_HO2> - PTERMS(:,53,237) = -TPK%KC25(:)*PCONC(:,64)*PCONC(:,53) +!PTERMS(RO2T,K309) = +K309*<NO>*<RO255> + PTERMS(:,85,310) = +TPK%K309(:)*PCONC(:,1)*TPK%RO255(:) ! -!PTERMS(WC_ASO5,KC25) = -KC25*<WC_ASO5>*<WC_HO2> - PTERMS(:,64,237) = -TPK%KC25(:)*PCONC(:,64)*PCONC(:,53) +!PTERMS(O3,K310) = +K310*<HO2>*<RO255> + PTERMS(:,3,311) = +TPK%K310(:)*PCONC(:,10)*TPK%RO255(:) ! -!PTERMS(WC_AHSO5,KC25) = +KC25*<WC_ASO5>*<WC_HO2> - PTERMS(:,65,237) = +TPK%KC25(:)*PCONC(:,64)*PCONC(:,53) +!PTERMS(HO2,K310) = -K310*<HO2>*<RO255> + PTERMS(:,10,311) = -TPK%K310(:)*PCONC(:,10)*TPK%RO255(:) ! -!PTERMS(WC_ASO4,KC26) = +KC26*<WC_ASO5>*<WC_ASO5> - PTERMS(:,63,238) = +TPK%KC26(:)*PCONC(:,64)*PCONC(:,64) +!PTERMS(ACID,K310) = +K310*<HO2>*<RO255> + PTERMS(:,45,311) = +TPK%K310(:)*PCONC(:,10)*TPK%RO255(:) ! -!PTERMS(WC_ASO5,KC26) = -KC26*<WC_ASO5>*<WC_ASO5> - PTERMS(:,64,238) = -TPK%KC26(:)*PCONC(:,64)*PCONC(:,64) +!PTERMS(RO2T,K311) = -K311*<RO2T>*<RO255> + PTERMS(:,85,312) = -TPK%K311(:)*PCONC(:,85)*TPK%RO255(:) ! ! RETURN -END SUBROUTINE SUBT41 +END SUBROUTINE SUBT52 ! -SUBROUTINE SUBT42 +SUBROUTINE SUBT53 ! -!Indices 841 a 860 +!Indices 1061 a 1080 ! -!PTERMS(WC_SO2,KC27) = -KC27*<WC_AHSO5>*<WC_SO2> - PTERMS(:,55,239) = -TPK%KC27(:)*PCONC(:,65)*PCONC(:,55) +!PTERMS(OH,K312) = -K312*<OH>*<RPR3> + PTERMS(:,15,313) = -TPK%K312(:)*PCONC(:,15)*PCONC(:,57) ! -!PTERMS(WC_SULF,KC27) = +2.00*KC27*<WC_AHSO5>*<WC_SO2> - PTERMS(:,56,239) = +2.00*TPK%KC27(:)*PCONC(:,65)*PCONC(:,55) +!PTERMS(RPR3,K312) = -K312*<OH>*<RPR3> + PTERMS(:,57,313) = -TPK%K312(:)*PCONC(:,15)*PCONC(:,57) ! -!PTERMS(WC_AHSO5,KC27) = -KC27*<WC_AHSO5>*<WC_SO2> - PTERMS(:,65,239) = -TPK%KC27(:)*PCONC(:,65)*PCONC(:,55) +!PTERMS(RO2T,K312) = +K312*<OH>*<RPR3> + PTERMS(:,85,313) = +TPK%K312(:)*PCONC(:,15)*PCONC(:,57) ! -!PTERMS(WC_OH,KC28) = +KC28*<WC_ASO4> - PTERMS(:,52,240) = +TPK%KC28(:)*PCONC(:,63) +!PTERMS(HNO3,K313) = +K313*<NO3>*<RPR3> + PTERMS(:,5,314) = +TPK%K313(:)*PCONC(:,8)*PCONC(:,57) ! -!PTERMS(WC_SULF,KC28) = +KC28*<WC_ASO4> - PTERMS(:,56,240) = +TPK%KC28(:)*PCONC(:,63) +!PTERMS(NO3,K313) = -K313*<NO3>*<RPR3> + PTERMS(:,8,314) = -TPK%K313(:)*PCONC(:,8)*PCONC(:,57) ! -!PTERMS(WC_ASO4,KC28) = -KC28*<WC_ASO4> - PTERMS(:,63,240) = -TPK%KC28(:)*PCONC(:,63) +!PTERMS(RPR3,K313) = -K313*<NO3>*<RPR3> + PTERMS(:,57,314) = -TPK%K313(:)*PCONC(:,8)*PCONC(:,57) ! -!PTERMS(WC_O3,KC29) = -KC29*<WC_SO2>*<WC_O3> - PTERMS(:,42,241) = -TPK%KC29(:)*PCONC(:,55)*PCONC(:,42) +!PTERMS(RO2T,K313) = +K313*<NO3>*<RPR3> + PTERMS(:,85,314) = +TPK%K313(:)*PCONC(:,8)*PCONC(:,57) ! -!PTERMS(WC_SO2,KC29) = -KC29*<WC_SO2>*<WC_O3> - PTERMS(:,55,241) = -TPK%KC29(:)*PCONC(:,55)*PCONC(:,42) +!PTERMS(HO2,K314) = +2.*K314*<RPR3> + PTERMS(:,10,315) = +2.*TPK%K314(:)*PCONC(:,57) ! -!PTERMS(WC_SULF,KC29) = +KC29*<WC_SO2>*<WC_O3> - PTERMS(:,56,241) = +TPK%KC29(:)*PCONC(:,55)*PCONC(:,42) +!PTERMS(CO,K314) = +K314*<RPR3> + PTERMS(:,11,315) = +TPK%K314(:)*PCONC(:,57) ! -!PTERMS(WC_H2O2,KC30) = -KC30*<WC_SO2>*<WC_H2O2> - PTERMS(:,43,242) = -TPK%KC30(:)*PCONC(:,55)*PCONC(:,43) +!PTERMS(RPR3,K314) = -K314*<RPR3> + PTERMS(:,57,315) = -TPK%K314(:)*PCONC(:,57) ! -!PTERMS(WC_SO2,KC30) = -KC30*<WC_SO2>*<WC_H2O2> - PTERMS(:,55,242) = -TPK%KC30(:)*PCONC(:,55)*PCONC(:,43) +!PTERMS(NO,K315) = -K315*<NO>*<RO256> + PTERMS(:,1,316) = -TPK%K315(:)*PCONC(:,1)*TPK%RO256(:) ! -!PTERMS(WC_SULF,KC30) = +KC30*<WC_SO2>*<WC_H2O2> - PTERMS(:,56,242) = +TPK%KC30(:)*PCONC(:,55)*PCONC(:,43) +!PTERMS(NO2,K315) = +K315*<NO>*<RO256> + PTERMS(:,2,316) = +TPK%K315(:)*PCONC(:,1)*TPK%RO256(:) ! -!PTERMS(WR_H2O2,KR1) = -KR1*<WR_H2O2> - PTERMS(:,68,243) = -TPK%KR1(:)*PCONC(:,68) +!PTERMS(HO2,K315) = +K315*<NO>*<RO256> + PTERMS(:,10,316) = +TPK%K315(:)*PCONC(:,1)*TPK%RO256(:) ! -!PTERMS(WR_OH,KR1) = +KR1*<WR_H2O2> - PTERMS(:,77,243) = +TPK%KR1(:)*PCONC(:,68) +!PTERMS(NO2,K316) = -K316*<NO2>*<RO256> + PTERMS(:,2,317) = -TPK%K316(:)*PCONC(:,2)*TPK%RO256(:) ! -!PTERMS(WR_H2O2,KR2) = +KR2*<WR_OH>*<WR_OH> - PTERMS(:,68,244) = +TPK%KR2(:)*PCONC(:,77)*PCONC(:,77) +!PTERMS(PAN8,K316) = +K316*<NO2>*<RO256> + PTERMS(:,83,317) = +TPK%K316(:)*PCONC(:,2)*TPK%RO256(:) ! -!PTERMS(WR_OH,KR2) = -KR2*<WR_OH>*<WR_OH> - PTERMS(:,77,244) = -TPK%KR2(:)*PCONC(:,77)*PCONC(:,77) +!PTERMS(NO2,K317) = +K317*<PAN8> + PTERMS(:,2,318) = +TPK%K317(:)*PCONC(:,83) ! -!PTERMS(WR_OH,KR3) = -KR3*<WR_OH>*<WR_HO2> - PTERMS(:,77,245) = -TPK%KR3(:)*PCONC(:,77)*PCONC(:,78) +!PTERMS(PAN8,K317) = -K317*<PAN8> + PTERMS(:,83,318) = -TPK%K317(:)*PCONC(:,83) ! -!PTERMS(WR_HO2,KR3) = -KR3*<WR_OH>*<WR_HO2> - PTERMS(:,78,245) = -TPK%KR3(:)*PCONC(:,77)*PCONC(:,78) +!PTERMS(RO2T,K317) = +K317*<PAN8> + PTERMS(:,85,318) = +TPK%K317(:)*PCONC(:,83) ! -!PTERMS(WR_H2O2,KR4) = -KR4*<WR_H2O2>*<WR_OH> - PTERMS(:,68,246) = -TPK%KR4(:)*PCONC(:,68)*PCONC(:,77) +!PTERMS(O3,K318) = +K318*<HO2>*<RO256> + PTERMS(:,3,319) = +TPK%K318(:)*PCONC(:,10)*TPK%RO256(:) ! -!PTERMS(WR_OH,KR4) = -KR4*<WR_H2O2>*<WR_OH> - PTERMS(:,77,246) = -TPK%KR4(:)*PCONC(:,68)*PCONC(:,77) +!PTERMS(HO2,K318) = -K318*<HO2>*<RO256> + PTERMS(:,10,319) = -TPK%K318(:)*PCONC(:,10)*TPK%RO256(:) ! ! RETURN -END SUBROUTINE SUBT42 +END SUBROUTINE SUBT53 ! -SUBROUTINE SUBT43 +SUBROUTINE SUBT54 ! -!Indices 861 a 880 +!Indices 1081 a 1100 ! -!PTERMS(WR_HO2,KR4) = +KR4*<WR_H2O2>*<WR_OH> - PTERMS(:,78,246) = +TPK%KR4(:)*PCONC(:,68)*PCONC(:,77) +!PTERMS(URG4,K318) = +1.0000000*K318*<HO2>*<RO256> + PTERMS(:,53,319) = +1.0000000*TPK%K318(:)*PCONC(:,10)*TPK%RO256(:) ! -!PTERMS(WR_H2O2,KR5) = +KR5*<WR_HO2>*<WR_HO2> - PTERMS(:,68,247) = +TPK%KR5(:)*PCONC(:,78)*PCONC(:,78) +!PTERMS(HO2,K319) = +K319*<RO2T>*<RO256> + PTERMS(:,10,320) = +TPK%K319(:)*PCONC(:,85)*TPK%RO256(:) ! -!PTERMS(WR_HO2,KR5) = -KR5*<WR_HO2>*<WR_HO2> - PTERMS(:,78,247) = -TPK%KR5(:)*PCONC(:,78)*PCONC(:,78) +!PTERMS(RO2T,K319) = -K319*<RO2T>*<RO256> + PTERMS(:,85,320) = -TPK%K319(:)*PCONC(:,85)*TPK%RO256(:) ! -!PTERMS(WR_O3,KR6) = -KR6*<WR_O3>*<WR_HO2> - PTERMS(:,67,248) = -TPK%KR6(:)*PCONC(:,67)*PCONC(:,78) +!PTERMS(HNO3,K320) = +K320*<NO3>*<RPR4> + PTERMS(:,5,321) = +TPK%K320(:)*PCONC(:,8)*PCONC(:,61) ! -!PTERMS(WR_OH,KR6) = +KR6*<WR_O3>*<WR_HO2> - PTERMS(:,77,248) = +TPK%KR6(:)*PCONC(:,67)*PCONC(:,78) +!PTERMS(NO3,K320) = -K320*<NO3>*<RPR4> + PTERMS(:,8,321) = -TPK%K320(:)*PCONC(:,8)*PCONC(:,61) ! -!PTERMS(WR_HO2,KR6) = -KR6*<WR_O3>*<WR_HO2> - PTERMS(:,78,248) = -TPK%KR6(:)*PCONC(:,67)*PCONC(:,78) +!PTERMS(RPR4,K320) = -K320*<NO3>*<RPR4> + PTERMS(:,61,321) = -TPK%K320(:)*PCONC(:,8)*PCONC(:,61) ! -!PTERMS(WR_OH,KR7) = -KR7*<WR_OH>*<WR_SO2> - PTERMS(:,77,249) = -TPK%KR7(:)*PCONC(:,77)*PCONC(:,80) +!PTERMS(NO2,K321) = -K321*<NO2>*<RAD8> + PTERMS(:,2,322) = -TPK%K321(:)*PCONC(:,2)*TPK%RAD8(:) ! -!PTERMS(WR_SO2,KR7) = -KR7*<WR_OH>*<WR_SO2> - PTERMS(:,80,249) = -TPK%KR7(:)*PCONC(:,77)*PCONC(:,80) +!PTERMS(UR22,K321) = +K321*<NO2>*<RAD8> + PTERMS(:,59,322) = +TPK%K321(:)*PCONC(:,2)*TPK%RAD8(:) ! -!PTERMS(WR_ASO3,KR7) = +KR7*<WR_OH>*<WR_SO2> - PTERMS(:,87,249) = +TPK%KR7(:)*PCONC(:,77)*PCONC(:,80) +!PTERMS(O3,K322) = +K322*<OH>*<RPR7> + PTERMS(:,3,323) = +TPK%K322(:)*PCONC(:,15)*PCONC(:,62) ! -!PTERMS(WR_NO2,KR8) = +KR8*<WR_HONO>*<WR_OH> - PTERMS(:,70,250) = +TPK%KR8(:)*PCONC(:,73)*PCONC(:,77) +!PTERMS(OH,K322) = -K322*<OH>*<RPR7> + PTERMS(:,15,323) = -TPK%K322(:)*PCONC(:,15)*PCONC(:,62) ! -!PTERMS(WR_HONO,KR8) = -KR8*<WR_HONO>*<WR_OH> - PTERMS(:,73,250) = -TPK%KR8(:)*PCONC(:,73)*PCONC(:,77) +!PTERMS(URG7,K322) = +0.9999993*K322*<OH>*<RPR7> + PTERMS(:,60,323) = +0.9999993*TPK%K322(:)*PCONC(:,15)*PCONC(:,62) ! -!PTERMS(WR_OH,KR8) = -KR8*<WR_HONO>*<WR_OH> - PTERMS(:,77,250) = -TPK%KR8(:)*PCONC(:,73)*PCONC(:,77) +!PTERMS(RPR7,K322) = -K322*<OH>*<RPR7> + PTERMS(:,62,323) = -TPK%K322(:)*PCONC(:,15)*PCONC(:,62) ! -!PTERMS(WR_NO2,KR9) = -KR9*<WR_NO2>*<WR_HO2> - PTERMS(:,70,251) = -TPK%KR9(:)*PCONC(:,70)*PCONC(:,78) +!PTERMS(O3,K323) = +1.0000005*K323*<OH>*<RPG7> + PTERMS(:,3,324) = +1.0000005*TPK%K323(:)*PCONC(:,15)*PCONC(:,63) ! -!PTERMS(WR_HNO4,KR9) = +KR9*<WR_NO2>*<WR_HO2> - PTERMS(:,75,251) = +TPK%KR9(:)*PCONC(:,70)*PCONC(:,78) +!PTERMS(OH,K323) = -K323*<OH>*<RPG7> + PTERMS(:,15,324) = -TPK%K323(:)*PCONC(:,15)*PCONC(:,63) ! -!PTERMS(WR_HO2,KR9) = -KR9*<WR_NO2>*<WR_HO2> - PTERMS(:,78,251) = -TPK%KR9(:)*PCONC(:,70)*PCONC(:,78) +!PTERMS(URG6,K323) = +0.4978440*K323*<OH>*<RPG7> + PTERMS(:,58,324) = +0.4978440*TPK%K323(:)*PCONC(:,15)*PCONC(:,63) ! -!PTERMS(WR_NO2,KR10) = +KR10*<WR_HNO4> - PTERMS(:,70,252) = +TPK%KR10(:)*PCONC(:,75) +!PTERMS(RPG7,K323) = -K323*<OH>*<RPG7> + PTERMS(:,63,324) = -TPK%K323(:)*PCONC(:,15)*PCONC(:,63) ! -!PTERMS(WR_HNO4,KR10) = -KR10*<WR_HNO4> - PTERMS(:,75,252) = -TPK%KR10(:)*PCONC(:,75) +!PTERMS(OH,K324) = -K324*<OH>*<RPR8> + PTERMS(:,15,325) = -TPK%K324(:)*PCONC(:,15)*PCONC(:,71) ! -!PTERMS(WR_HO2,KR10) = +KR10*<WR_HNO4> - PTERMS(:,78,252) = +TPK%KR10(:)*PCONC(:,75) +!PTERMS(RPR8,K324) = -K324*<OH>*<RPR8> + PTERMS(:,71,325) = -TPK%K324(:)*PCONC(:,15)*PCONC(:,71) ! -!PTERMS(WR_HONO,KR11) = +KR11*<WR_HNO4> - PTERMS(:,73,253) = +TPK%KR11(:)*PCONC(:,75) +!PTERMS(RO2T,K324) = +K324*<OH>*<RPR8> + PTERMS(:,85,325) = +TPK%K324(:)*PCONC(:,15)*PCONC(:,71) ! -!PTERMS(WR_HNO4,KR11) = -KR11*<WR_HNO4> - PTERMS(:,75,253) = -TPK%KR11(:)*PCONC(:,75) +!PTERMS(HO2,K325) = +K325*<OH>*<RP10> + PTERMS(:,10,326) = +TPK%K325(:)*PCONC(:,15)*PCONC(:,72) ! ! RETURN -END SUBROUTINE SUBT43 +END SUBROUTINE SUBT54 ! -SUBROUTINE SUBT44 +SUBROUTINE SUBT55 ! -!Indices 881 a 900 +!Indices 1101 a 1120 ! -!PTERMS(WR_HNO3,KR12) = +KR12*<WR_HNO4>*<WR_SO2> - PTERMS(:,74,254) = +TPK%KR12(:)*PCONC(:,75)*PCONC(:,80) +!PTERMS(OH,K325) = -K325*<OH>*<RP10> + PTERMS(:,15,326) = -TPK%K325(:)*PCONC(:,15)*PCONC(:,72) ! -!PTERMS(WR_HNO4,KR12) = -KR12*<WR_HNO4>*<WR_SO2> - PTERMS(:,75,254) = -TPK%KR12(:)*PCONC(:,75)*PCONC(:,80) +!PTERMS(RP10,K325) = -K325*<OH>*<RP10> + PTERMS(:,72,326) = -TPK%K325(:)*PCONC(:,15)*PCONC(:,72) ! -!PTERMS(WR_SO2,KR12) = -KR12*<WR_HNO4>*<WR_SO2> - PTERMS(:,80,254) = -TPK%KR12(:)*PCONC(:,75)*PCONC(:,80) +!PTERMS(O3,K326) = +K326*<OH>*<RP11> + PTERMS(:,3,327) = +TPK%K326(:)*PCONC(:,15)*PCONC(:,73) ! -!PTERMS(WR_SULF,KR12) = +KR12*<WR_HNO4>*<WR_SO2> - PTERMS(:,81,254) = +TPK%KR12(:)*PCONC(:,75)*PCONC(:,80) +!PTERMS(OH,K326) = -K326*<OH>*<RP11> + PTERMS(:,15,327) = -TPK%K326(:)*PCONC(:,15)*PCONC(:,73) ! -!PTERMS(WR_NO2,KR13) = +KR13*<WR_HNO3> - PTERMS(:,70,255) = +TPK%KR13(:)*PCONC(:,74) +!PTERMS(UR26,K326) = +0.67*K326*<OH>*<RP11> + PTERMS(:,49,327) = +0.67*TPK%K326(:)*PCONC(:,15)*PCONC(:,73) ! -!PTERMS(WR_HNO3,KR13) = -KR13*<WR_HNO3> - PTERMS(:,74,255) = -TPK%KR13(:)*PCONC(:,74) +!PTERMS(RP11,K326) = -K326*<OH>*<RP11> + PTERMS(:,73,327) = -TPK%K326(:)*PCONC(:,15)*PCONC(:,73) ! -!PTERMS(WR_OH,KR13) = +KR13*<WR_HNO3> - PTERMS(:,77,255) = +TPK%KR13(:)*PCONC(:,74) +!PTERMS(HNO3,K327) = +K327*<NO3>*<RPR8> + PTERMS(:,5,328) = +TPK%K327(:)*PCONC(:,8)*PCONC(:,71) ! -!PTERMS(WR_N2O5,KR14) = -KR14*<WR_N2O5> - PTERMS(:,72,256) = -TPK%KR14(:)*PCONC(:,72) +!PTERMS(NO3,K327) = -K327*<NO3>*<RPR8> + PTERMS(:,8,328) = -TPK%K327(:)*PCONC(:,8)*PCONC(:,71) ! -!PTERMS(WR_HNO3,KR14) = +KR14*<WR_N2O5> - PTERMS(:,74,256) = +TPK%KR14(:)*PCONC(:,72) +!PTERMS(RPR8,K327) = -K327*<NO3>*<RPR8> + PTERMS(:,71,328) = -TPK%K327(:)*PCONC(:,8)*PCONC(:,71) ! -!PTERMS(WR_NO3,KR15) = -KR15*<WR_NO3>*<WR_SULF> - PTERMS(:,71,257) = -TPK%KR15(:)*PCONC(:,71)*PCONC(:,81) +!PTERMS(RO2T,K327) = +K327*<NO3>*<RPR8> + PTERMS(:,85,328) = +TPK%K327(:)*PCONC(:,8)*PCONC(:,71) ! -!PTERMS(WR_HNO3,KR15) = +KR15*<WR_NO3>*<WR_SULF> - PTERMS(:,74,257) = +TPK%KR15(:)*PCONC(:,71)*PCONC(:,81) +!PTERMS(RP10,K328) = -K328*<RP10> + PTERMS(:,72,329) = -TPK%K328(:)*PCONC(:,72) ! -!PTERMS(WR_SULF,KR15) = -KR15*<WR_NO3>*<WR_SULF> - PTERMS(:,81,257) = -TPK%KR15(:)*PCONC(:,71)*PCONC(:,81) +!PTERMS(HO2,K329) = +K329*<RPR8> + PTERMS(:,10,330) = +TPK%K329(:)*PCONC(:,71) ! -!PTERMS(WR_ASO4,KR15) = +KR15*<WR_NO3>*<WR_SULF> - PTERMS(:,88,257) = +TPK%KR15(:)*PCONC(:,71)*PCONC(:,81) +!PTERMS(CO,K329) = +K329*<RPR8> + PTERMS(:,11,330) = +TPK%K329(:)*PCONC(:,71) ! -!PTERMS(WR_NO3,KR16) = -KR16*<WR_NO3>*<WR_SO2> - PTERMS(:,71,258) = -TPK%KR16(:)*PCONC(:,71)*PCONC(:,80) +!PTERMS(RPR8,K329) = -K329*<RPR8> + PTERMS(:,71,330) = -TPK%K329(:)*PCONC(:,71) ! -!PTERMS(WR_HNO3,KR16) = +KR16*<WR_NO3>*<WR_SO2> - PTERMS(:,74,258) = +TPK%KR16(:)*PCONC(:,71)*PCONC(:,80) +!PTERMS(RO2T,K329) = +K329*<RPR8> + PTERMS(:,85,330) = +TPK%K329(:)*PCONC(:,71) ! -!PTERMS(WR_SO2,KR16) = -KR16*<WR_NO3>*<WR_SO2> - PTERMS(:,80,258) = -TPK%KR16(:)*PCONC(:,71)*PCONC(:,80) +!PTERMS(HO2,K330) = +K330*<RPR8> + PTERMS(:,10,331) = +TPK%K330(:)*PCONC(:,71) ! -!PTERMS(WR_ASO3,KR16) = +KR16*<WR_NO3>*<WR_SO2> - PTERMS(:,87,258) = +TPK%KR16(:)*PCONC(:,71)*PCONC(:,80) +!PTERMS(RPR8,K330) = -K330*<RPR8> + PTERMS(:,71,331) = -TPK%K330(:)*PCONC(:,71) ! -!PTERMS(WR_HO2,KR17) = +2.00*KR17*<WR_MO2>*<WR_MO2> - PTERMS(:,78,259) = +2.00*TPK%KR17(:)*PCONC(:,85)*PCONC(:,85) +!PTERMS(RO2T,K330) = +K330*<RPR8> + PTERMS(:,85,331) = +TPK%K330(:)*PCONC(:,71) ! -!PTERMS(WR_HCHO,KR17) = +2.00*KR17*<WR_MO2>*<WR_MO2> - PTERMS(:,82,259) = +2.00*TPK%KR17(:)*PCONC(:,85)*PCONC(:,85) +!PTERMS(NO,K331) = -K331*<NO>*<RO257> + PTERMS(:,1,332) = -TPK%K331(:)*PCONC(:,1)*TPK%RO257(:) ! -!PTERMS(WR_MO2,KR17) = -KR17*<WR_MO2>*<WR_MO2> - PTERMS(:,85,259) = -TPK%KR17(:)*PCONC(:,85)*PCONC(:,85) +!PTERMS(NO2,K331) = +K331*<NO>*<RO257> + PTERMS(:,2,332) = +TPK%K331(:)*PCONC(:,1)*TPK%RO257(:) ! ! RETURN -END SUBROUTINE SUBT44 -! -SUBROUTINE SUBT45 -! -!Indices 901 a 920 +END SUBROUTINE SUBT55 ! -!PTERMS(WR_SO2,KR18) = -KR18*<WR_MO2>*<WR_SO2> - PTERMS(:,80,260) = -TPK%KR18(:)*PCONC(:,85)*PCONC(:,80) +SUBROUTINE SUBT56 ! -!PTERMS(WR_MO2,KR18) = -KR18*<WR_MO2>*<WR_SO2> - PTERMS(:,85,260) = -TPK%KR18(:)*PCONC(:,85)*PCONC(:,80) +!Indices 1121 a 1140 ! -!PTERMS(WR_OP1,KR18) = +KR18*<WR_MO2>*<WR_SO2> - PTERMS(:,86,260) = +TPK%KR18(:)*PCONC(:,85)*PCONC(:,80) +!PTERMS(RO2T,K331) = +K331*<NO>*<RO257> + PTERMS(:,85,332) = +TPK%K331(:)*PCONC(:,1)*TPK%RO257(:) ! -!PTERMS(WR_ASO3,KR18) = +KR18*<WR_MO2>*<WR_SO2> - PTERMS(:,87,260) = +TPK%KR18(:)*PCONC(:,85)*PCONC(:,80) +!PTERMS(O3,K332) = +K332*<HO2>*<RO257> + PTERMS(:,3,333) = +TPK%K332(:)*PCONC(:,10)*TPK%RO257(:) ! -!PTERMS(WR_OH,KR19) = -KR19*<WR_HCHO>*<WR_OH> - PTERMS(:,77,261) = -TPK%KR19(:)*PCONC(:,82)*PCONC(:,77) +!PTERMS(HO2,K332) = -K332*<HO2>*<RO257> + PTERMS(:,10,333) = -TPK%K332(:)*PCONC(:,10)*TPK%RO257(:) ! -!PTERMS(WR_HO2,KR19) = +KR19*<WR_HCHO>*<WR_OH> - PTERMS(:,78,261) = +TPK%KR19(:)*PCONC(:,82)*PCONC(:,77) +!PTERMS(URG4,K332) = +1.0000000*K332*<HO2>*<RO257> + PTERMS(:,53,333) = +1.0000000*TPK%K332(:)*PCONC(:,10)*TPK%RO257(:) ! -!PTERMS(WR_HCHO,KR19) = -KR19*<WR_HCHO>*<WR_OH> - PTERMS(:,82,261) = -TPK%KR19(:)*PCONC(:,82)*PCONC(:,77) +!PTERMS(RO2T,K333) = -K333*<RO2T>*<RO257> + PTERMS(:,85,334) = -TPK%K333(:)*PCONC(:,85)*TPK%RO257(:) ! -!PTERMS(WR_ORA1,KR19) = +KR19*<WR_HCHO>*<WR_OH> - PTERMS(:,83,261) = +TPK%KR19(:)*PCONC(:,82)*PCONC(:,77) +!PTERMS(O3,K334) = +1.0000000*K334*<OH>*<RPG3> + PTERMS(:,3,335) = +1.0000000*TPK%K334(:)*PCONC(:,15)*PCONC(:,52) ! -!PTERMS(WR_OH,KR20) = -KR20*<WR_ORA1>*<WR_OH> - PTERMS(:,77,262) = -TPK%KR20(:)*PCONC(:,83)*PCONC(:,77) +!PTERMS(OH,K334) = -K334*<OH>*<RPG3> + PTERMS(:,15,335) = -TPK%K334(:)*PCONC(:,15)*PCONC(:,52) ! -!PTERMS(WR_HO2,KR20) = +KR20*<WR_ORA1>*<WR_OH> - PTERMS(:,78,262) = +TPK%KR20(:)*PCONC(:,83)*PCONC(:,77) +!PTERMS(RPG2,K334) = +0.8808107*K334*<OH>*<RPG3> + PTERMS(:,50,335) = +0.8808107*TPK%K334(:)*PCONC(:,15)*PCONC(:,52) ! -!PTERMS(WR_CO2,KR20) = +KR20*<WR_ORA1>*<WR_OH> - PTERMS(:,79,262) = +TPK%KR20(:)*PCONC(:,83)*PCONC(:,77) +!PTERMS(RPG3,K334) = -K334*<OH>*<RPG3> + PTERMS(:,52,335) = -TPK%K334(:)*PCONC(:,15)*PCONC(:,52) ! -!PTERMS(WR_ORA1,KR20) = -KR20*<WR_ORA1>*<WR_OH> - PTERMS(:,83,262) = -TPK%KR20(:)*PCONC(:,83)*PCONC(:,77) +!PTERMS(O3,K335) = +1.0000000*K335*<OH>*<RPG2> + PTERMS(:,3,336) = +1.0000000*TPK%K335(:)*PCONC(:,15)*PCONC(:,50) ! -!PTERMS(WR_SO2,KR21) = -KR21*<WR_SO2>*<WR_HCHO> - PTERMS(:,80,263) = -TPK%KR21(:)*PCONC(:,80)*PCONC(:,82) +!PTERMS(OH,K335) = -K335*<OH>*<RPG2> + PTERMS(:,15,336) = -TPK%K335(:)*PCONC(:,15)*PCONC(:,50) ! -!PTERMS(WR_HCHO,KR21) = -KR21*<WR_SO2>*<WR_HCHO> - PTERMS(:,82,263) = -TPK%KR21(:)*PCONC(:,80)*PCONC(:,82) +!PTERMS(URG2,K335) = +0.5562513*K335*<OH>*<RPG2> + PTERMS(:,48,336) = +0.5562513*TPK%K335(:)*PCONC(:,15)*PCONC(:,50) ! -!PTERMS(WR_AHMS,KR21) = +KR21*<WR_SO2>*<WR_HCHO> - PTERMS(:,91,263) = +TPK%KR21(:)*PCONC(:,80)*PCONC(:,82) +!PTERMS(RPG2,K335) = -K335*<OH>*<RPG2> + PTERMS(:,50,336) = -TPK%K335(:)*PCONC(:,15)*PCONC(:,50) ! -!PTERMS(WR_SO2,KR22) = +KR22*<WR_AHMS> - PTERMS(:,80,264) = +TPK%KR22(:)*PCONC(:,91) +!PTERMS(RP18,K335) = +0.4437492*K335*<OH>*<RPG2> + PTERMS(:,51,336) = +0.4437492*TPK%K335(:)*PCONC(:,15)*PCONC(:,50) ! -!PTERMS(WR_HCHO,KR22) = +KR22*<WR_AHMS> - PTERMS(:,82,264) = +TPK%KR22(:)*PCONC(:,91) +!PTERMS(O3,K337) = +K337*<OH>*<RP18> + PTERMS(:,3,337) = +TPK%K337(:)*PCONC(:,15)*PCONC(:,51) ! -!PTERMS(WR_AHMS,KR22) = -KR22*<WR_AHMS> - PTERMS(:,91,264) = -TPK%KR22(:)*PCONC(:,91) +!PTERMS(OH,K337) = -K337*<OH>*<RP18> + PTERMS(:,15,337) = -TPK%K337(:)*PCONC(:,15)*PCONC(:,51) ! -!PTERMS(WR_OH,KR23) = -KR23*<WR_AHMS>*<WR_OH> - PTERMS(:,77,265) = -TPK%KR23(:)*PCONC(:,91)*PCONC(:,77) +!PTERMS(URG2,K337) = +K337*<OH>*<RP18> + PTERMS(:,48,337) = +TPK%K337(:)*PCONC(:,15)*PCONC(:,51) ! -!PTERMS(WR_HO2,KR23) = +KR23*<WR_AHMS>*<WR_OH> - PTERMS(:,78,265) = +TPK%KR23(:)*PCONC(:,91)*PCONC(:,77) +!PTERMS(RP18,K337) = -K337*<OH>*<RP18> + PTERMS(:,51,337) = -TPK%K337(:)*PCONC(:,15)*PCONC(:,51) ! +!PTERMS(HNO3,K338) = +K338*<NO3>*<RP16> + PTERMS(:,5,338) = +TPK%K338(:)*PCONC(:,8)*PCONC(:,74) ! -RETURN -END SUBROUTINE SUBT45 +!PTERMS(NO3,K338) = -K338*<NO3>*<RP16> + PTERMS(:,8,338) = -TPK%K338(:)*PCONC(:,8)*PCONC(:,74) ! -SUBROUTINE SUBT46 -! -!Indices 921 a 940 ! -!PTERMS(WR_SO2,KR23) = +KR23*<WR_AHMS>*<WR_OH> - PTERMS(:,80,265) = +TPK%KR23(:)*PCONC(:,91)*PCONC(:,77) +RETURN +END SUBROUTINE SUBT56 ! -!PTERMS(WR_ORA1,KR23) = +KR23*<WR_AHMS>*<WR_OH> - PTERMS(:,83,265) = +TPK%KR23(:)*PCONC(:,91)*PCONC(:,77) +SUBROUTINE SUBT57 ! -!PTERMS(WR_AHMS,KR23) = -KR23*<WR_AHMS>*<WR_OH> - PTERMS(:,91,265) = -TPK%KR23(:)*PCONC(:,91)*PCONC(:,77) +!Indices 1141 a 1160 ! -!PTERMS(WR_ASO3,KR24) = -KR24*<WR_ASO3>*<W_O2> - PTERMS(:,87,266) = -TPK%KR24(:)*PCONC(:,87)*TPK%W_O2(:) +!PTERMS(RP16,K338) = -K338*<NO3>*<RP16> + PTERMS(:,74,338) = -TPK%K338(:)*PCONC(:,8)*PCONC(:,74) ! -!PTERMS(WR_ASO5,KR24) = +KR24*<WR_ASO3>*<W_O2> - PTERMS(:,89,266) = +TPK%KR24(:)*PCONC(:,87)*TPK%W_O2(:) +!PTERMS(RO2T,K338) = +K338*<NO3>*<RP16> + PTERMS(:,85,338) = +TPK%K338(:)*PCONC(:,8)*PCONC(:,74) ! -!PTERMS(WR_HO2,KR25) = -KR25*<WR_ASO5>*<WR_HO2> - PTERMS(:,78,267) = -TPK%KR25(:)*PCONC(:,89)*PCONC(:,78) +!PTERMS(HO2,K339) = +K339*<RP16> + PTERMS(:,10,339) = +TPK%K339(:)*PCONC(:,74) ! -!PTERMS(WR_ASO5,KR25) = -KR25*<WR_ASO5>*<WR_HO2> - PTERMS(:,89,267) = -TPK%KR25(:)*PCONC(:,89)*PCONC(:,78) +!PTERMS(CO,K339) = +2.*K339*<RP16> + PTERMS(:,11,339) = +2.*TPK%K339(:)*PCONC(:,74) ! -!PTERMS(WR_AHSO5,KR25) = +KR25*<WR_ASO5>*<WR_HO2> - PTERMS(:,90,267) = +TPK%KR25(:)*PCONC(:,89)*PCONC(:,78) +!PTERMS(OH,K339) = +K339*<RP16> + PTERMS(:,15,339) = +TPK%K339(:)*PCONC(:,74) ! -!PTERMS(WR_ASO4,KR26) = +KR26*<WR_ASO5>*<WR_ASO5> - PTERMS(:,88,268) = +TPK%KR26(:)*PCONC(:,89)*PCONC(:,89) +!PTERMS(RP16,K339) = -K339*<RP16> + PTERMS(:,74,339) = -TPK%K339(:)*PCONC(:,74) ! -!PTERMS(WR_ASO5,KR26) = -KR26*<WR_ASO5>*<WR_ASO5> - PTERMS(:,89,268) = -TPK%KR26(:)*PCONC(:,89)*PCONC(:,89) +!PTERMS(NO,K340) = -K340*<NO>*<RO258> + PTERMS(:,1,340) = -TPK%K340(:)*PCONC(:,1)*TPK%RO258(:) ! -!PTERMS(WR_SO2,KR27) = -KR27*<WR_AHSO5>*<WR_SO2> - PTERMS(:,80,269) = -TPK%KR27(:)*PCONC(:,90)*PCONC(:,80) +!PTERMS(NO2,K340) = +K340*<NO>*<RO258> + PTERMS(:,2,340) = +TPK%K340(:)*PCONC(:,1)*TPK%RO258(:) ! -!PTERMS(WR_SULF,KR27) = +2.00*KR27*<WR_AHSO5>*<WR_SO2> - PTERMS(:,81,269) = +2.00*TPK%KR27(:)*PCONC(:,90)*PCONC(:,80) +!PTERMS(CO,K340) = +K340*<NO>*<RO258> + PTERMS(:,11,340) = +TPK%K340(:)*PCONC(:,1)*TPK%RO258(:) ! -!PTERMS(WR_AHSO5,KR27) = -KR27*<WR_AHSO5>*<WR_SO2> - PTERMS(:,90,269) = -TPK%KR27(:)*PCONC(:,90)*PCONC(:,80) +!PTERMS(OH,K340) = +K340*<NO>*<RO258> + PTERMS(:,15,340) = +TPK%K340(:)*PCONC(:,1)*TPK%RO258(:) ! -!PTERMS(WR_OH,KR28) = +KR28*<WR_ASO4> - PTERMS(:,77,270) = +TPK%KR28(:)*PCONC(:,88) +!PTERMS(O3,K341) = +K341*<HO2>*<RO258> + PTERMS(:,3,341) = +TPK%K341(:)*PCONC(:,10)*TPK%RO258(:) ! -!PTERMS(WR_SULF,KR28) = +KR28*<WR_ASO4> - PTERMS(:,81,270) = +TPK%KR28(:)*PCONC(:,88) +!PTERMS(HO2,K341) = -K341*<HO2>*<RO258> + PTERMS(:,10,341) = -TPK%K341(:)*PCONC(:,10)*TPK%RO258(:) ! -!PTERMS(WR_ASO4,KR28) = -KR28*<WR_ASO4> - PTERMS(:,88,270) = -TPK%KR28(:)*PCONC(:,88) +!PTERMS(UR28,K341) = +K341*<HO2>*<RO258> + PTERMS(:,46,341) = +TPK%K341(:)*PCONC(:,10)*TPK%RO258(:) ! -!PTERMS(WR_O3,KR29) = -KR29*<WR_SO2>*<WR_O3> - PTERMS(:,67,271) = -TPK%KR29(:)*PCONC(:,80)*PCONC(:,67) +!PTERMS(CO,K342) = +K342*<RO2T>*<RO258> + PTERMS(:,11,342) = +TPK%K342(:)*PCONC(:,85)*TPK%RO258(:) ! -!PTERMS(WR_SO2,KR29) = -KR29*<WR_SO2>*<WR_O3> - PTERMS(:,80,271) = -TPK%KR29(:)*PCONC(:,80)*PCONC(:,67) +!PTERMS(OH,K342) = +K342*<RO2T>*<RO258> + PTERMS(:,15,342) = +TPK%K342(:)*PCONC(:,85)*TPK%RO258(:) ! -!PTERMS(WR_SULF,KR29) = +KR29*<WR_SO2>*<WR_O3> - PTERMS(:,81,271) = +TPK%KR29(:)*PCONC(:,80)*PCONC(:,67) +!PTERMS(RO2T,K342) = -K342*<RO2T>*<RO258> + PTERMS(:,85,342) = -TPK%K342(:)*PCONC(:,85)*TPK%RO258(:) ! -!PTERMS(WR_H2O2,KR30) = -KR30*<WR_SO2>*<WR_H2O2> - PTERMS(:,68,272) = -TPK%KR30(:)*PCONC(:,80)*PCONC(:,68) +!PTERMS(NO2,K343) = +K343*<PAN7> + PTERMS(:,2,343) = +TPK%K343(:)*PCONC(:,82) ! +!PTERMS(PAN7,K343) = -K343*<PAN7> + PTERMS(:,82,343) = -TPK%K343(:)*PCONC(:,82) ! -RETURN -END SUBROUTINE SUBT46 +!PTERMS(RO2T,K343) = +K343*<PAN7> + PTERMS(:,85,343) = +TPK%K343(:)*PCONC(:,82) ! -SUBROUTINE SUBT47 -! -!Indices 941 a 942 -! -!PTERMS(WR_SO2,KR30) = -KR30*<WR_SO2>*<WR_H2O2> - PTERMS(:,80,272) = -TPK%KR30(:)*PCONC(:,80)*PCONC(:,68) -! -!PTERMS(WR_SULF,KR30) = +KR30*<WR_SO2>*<WR_H2O2> - PTERMS(:,81,272) = +TPK%KR30(:)*PCONC(:,80)*PCONC(:,68) +!PTERMS(NO,K344) = -K344*<NO>*<RO230> + PTERMS(:,1,344) = -TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) ! ! RETURN -END SUBROUTINE SUBT47 -! -END SUBROUTINE CH_TERMS_AQ -! -!======================================================================== -! -!! #################### - MODULE MODI_CH_TERMS_GAZ -!! #################### -INTERFACE -SUBROUTINE CH_TERMS_GAZ(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ, KREAC -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KREAC):: PTERMS -INTEGER, INTENT(IN) :: KMI -END SUBROUTINE CH_TERMS_GAZ -END INTERFACE -END MODULE MODI_CH_TERMS_GAZ -! -!======================================================================== -! -!! -!! ###################### - SUBROUTINE CH_TERMS_GAZ(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) -!! ###################### -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -!! -!!*** *MODD_CH_TERMS* -!! -!! PURPOSE -!! ------- -! calculation of the contribution of each term in each reaction -!! -!!** METHOD -!! ------ -!! The contribution of reaction i to the evolution of species j -!! is returned in PTERMS. -!! -!! REFERENCE -!! --------- -!! none -!! -!! AUTHOR -!! ------ -!! Karsten Suhre (LA) -!! -!! MODIFICATIONS -!! ------------- -!! Original 26/07/96 -!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) -!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) -!! -!!---------------------------------------------------------------------- -!! -!! EXTERNAL -!! -------- -!! none -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -USE MODD_CH_M9_SCHEME -!! -!! EXPLICIT ARGUMENTS -!! ------------------ -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ, KREAC -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KREAC):: PTERMS -INTEGER, INTENT(IN) :: KMI -!! -TYPE(CCSTYPE), POINTER :: TPK -TPK=>TACCS(KMI) -! /BEGIN_CODE/ -TPK%O1D(:)=(TPK%K002(:)*PCONC(:,JP_O3))/(TPK%K020(:)*TPK%N2(:)+TPK%K021(:)*TPK%O2(:)+& - &TPK%K022(:)*TPK%H2O(:)) -TPK%O3P(:)=(TPK%K001(:)*PCONC(:,JP_NO2)+TPK%K003(:)*PCONC(:,JP_O3)+TPK%K008(:)*PCONC(:,JP_NO3)+& - &TPK%K020(:)*TPK%O1D(:)*TPK%N2(:)+TPK%K021(:)*TPK%O1D(:)*TPK%O2(:)+& - &0.00000*TPK%K079(:)*PCONC(:,JP_ALKE)*PCONC(:,JP_O3)+& - &0.09000*TPK%K080(:)*PCONC(:,JP_BIO)*PCONC(:,JP_O3))/& - &(TPK%K018(:)*TPK%O2(:)+TPK%K019(:)*PCONC(:,JP_O3)+TPK%K029(:)*PCONC(:,JP_NO)+& - &TPK%K030(:)*PCONC(:,JP_NO2)+TPK%K031(:)*PCONC(:,JP_NO2)+TPK%K054(:)*PCONC(:,JP_BIO)+& - &TPK%K055(:)*PCONC(:,JP_CARBO)) -! /END_CODE/ -PTERMS(:,:,:) = 0.0 -CALL SUBT0 -CALL SUBT1 -CALL SUBT2 -CALL SUBT3 -CALL SUBT4 -CALL SUBT5 -CALL SUBT6 -CALL SUBT7 -CALL SUBT8 -CALL SUBT9 -CALL SUBT10 -CALL SUBT11 -CALL SUBT12 -CALL SUBT13 -CALL SUBT14 -CALL SUBT15 -CALL SUBT16 -CALL SUBT17 -CALL SUBT18 -CALL SUBT19 -CALL SUBT20 -CALL SUBT21 -CALL SUBT22 -CALL SUBT23 -CALL SUBT24 -CALL SUBT25 -CALL SUBT26 -CALL SUBT27 -CALL SUBT28 -CALL SUBT29 -CALL SUBT30 +END SUBROUTINE SUBT57 ! - -CONTAINS - -SUBROUTINE SUBT0 +SUBROUTINE SUBT58 ! -!Indices 1 a 20 +!Indices 1161 a 1180 ! -!PTERMS(NO,K001) = +K001*<NO2> - PTERMS(:,3,1) = +TPK%K001(:)*PCONC(:,4) +!PTERMS(NO2,K344) = +K344*<NO>*<RO230> + PTERMS(:,2,344) = +TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) ! -!PTERMS(NO2,K001) = -K001*<NO2> - PTERMS(:,4,1) = -TPK%K001(:)*PCONC(:,4) +!PTERMS(RO2T,K344) = +K344*<NO>*<RO230> + PTERMS(:,85,344) = +TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) ! -!PTERMS(O3,K002) = -K002*<O3> - PTERMS(:,1,2) = -TPK%K002(:)*PCONC(:,1) +!PTERMS(NH3,K345) = -K345*<OH>*<NH3> + PTERMS(:,9,345) = -TPK%K345(:)*PCONC(:,15)*PCONC(:,9) ! -!PTERMS(O3,K003) = -K003*<O3> - PTERMS(:,1,3) = -TPK%K003(:)*PCONC(:,1) +!PTERMS(OH,K345) = -K345*<OH>*<NH3> + PTERMS(:,15,345) = -TPK%K345(:)*PCONC(:,15)*PCONC(:,9) ! -!PTERMS(NO,K004) = +K004*<HONO> - PTERMS(:,3,4) = +TPK%K004(:)*PCONC(:,7) +!PTERMS(H2SO4,K346) = -K346*<H2SO4> + PTERMS(:,14,346) = -TPK%K346(:)*PCONC(:,14) ! -!PTERMS(HONO,K004) = -K004*<HONO> - PTERMS(:,7,4) = -TPK%K004(:)*PCONC(:,7) +!PTERMS(HO2,K347) = +K347*<OH>*<ORA1> + PTERMS(:,10,347) = +TPK%K347(:)*PCONC(:,15)*PCONC(:,43) ! -!PTERMS(OH,K004) = +K004*<HONO> - PTERMS(:,14,4) = +TPK%K004(:)*PCONC(:,7) +!PTERMS(OH,K347) = -K347*<OH>*<ORA1> + PTERMS(:,15,347) = -TPK%K347(:)*PCONC(:,15)*PCONC(:,43) ! -!PTERMS(NO2,K005) = +K005*<HNO3> - PTERMS(:,4,5) = +TPK%K005(:)*PCONC(:,8) +!PTERMS(ORA1,K347) = -K347*<OH>*<ORA1> + PTERMS(:,43,347) = -TPK%K347(:)*PCONC(:,15)*PCONC(:,43) ! -!PTERMS(HNO3,K005) = -K005*<HNO3> - PTERMS(:,8,5) = -TPK%K005(:)*PCONC(:,8) +!PTERMS(OH,K348) = -K348*<OH>*<ORA2> + PTERMS(:,15,348) = -TPK%K348(:)*PCONC(:,15)*PCONC(:,44) ! -!PTERMS(OH,K005) = +K005*<HNO3> - PTERMS(:,14,5) = +TPK%K005(:)*PCONC(:,8) +!PTERMS(ORA2,K348) = -K348*<OH>*<ORA2> + PTERMS(:,44,348) = -TPK%K348(:)*PCONC(:,15)*PCONC(:,44) ! -!PTERMS(NO2,K006) = +0.65*K006*<HNO4> - PTERMS(:,4,6) = +0.65*TPK%K006(:)*PCONC(:,9) +!PTERMS(OH,K349) = -K349*<OH>*<ACID> + PTERMS(:,15,349) = -TPK%K349(:)*PCONC(:,15)*PCONC(:,45) ! -!PTERMS(NO3,K006) = +0.35*K006*<HNO4> - PTERMS(:,5,6) = +0.35*TPK%K006(:)*PCONC(:,9) +!PTERMS(ACID,K349) = -K349*<OH>*<ACID> + PTERMS(:,45,349) = -TPK%K349(:)*PCONC(:,15)*PCONC(:,45) ! -!PTERMS(HNO4,K006) = -K006*<HNO4> - PTERMS(:,9,6) = -TPK%K006(:)*PCONC(:,9) +!PTERMS(URG2,K350) = -K350*<URG2> + PTERMS(:,48,350) = -TPK%K350(:)*PCONC(:,48) ! -!PTERMS(OH,K006) = +0.35*K006*<HNO4> - PTERMS(:,14,6) = +0.35*TPK%K006(:)*PCONC(:,9) +!PTERMS(URG4,K351) = -K351*<URG4> + PTERMS(:,53,351) = -TPK%K351(:)*PCONC(:,53) ! -!PTERMS(HO2,K006) = +0.65*K006*<HNO4> - PTERMS(:,15,6) = +0.65*TPK%K006(:)*PCONC(:,9) +!PTERMS(URG6,K352) = -K352*<URG6> + PTERMS(:,58,352) = -TPK%K352(:)*PCONC(:,58) ! -!PTERMS(NO,K007) = +K007*<NO3> - PTERMS(:,3,7) = +TPK%K007(:)*PCONC(:,5) +!PTERMS(URG7,K353) = -K353*<URG7> + PTERMS(:,60,353) = -TPK%K353(:)*PCONC(:,60) ! -!PTERMS(NO3,K007) = -K007*<NO3> - PTERMS(:,5,7) = -TPK%K007(:)*PCONC(:,5) +!PTERMS(URG8,K354) = -K354*<URG8> + PTERMS(:,64,354) = -TPK%K354(:)*PCONC(:,64) ! -!PTERMS(NO2,K008) = +K008*<NO3> - PTERMS(:,4,8) = +TPK%K008(:)*PCONC(:,5) +!PTERMS(URG9,K355) = -K355*<URG9> + PTERMS(:,66,355) = -TPK%K355(:)*PCONC(:,66) ! -!PTERMS(NO3,K008) = -K008*<NO3> - PTERMS(:,5,8) = -TPK%K008(:)*PCONC(:,5) +!PTERMS(URG10,K356) = -K356*<URG10> + PTERMS(:,68,356) = -TPK%K356(:)*PCONC(:,68) ! -!PTERMS(H2O2,K009) = -K009*<H2O2> - PTERMS(:,2,9) = -TPK%K009(:)*PCONC(:,2) +!PTERMS(UR7,K357) = -K357*<UR7> + PTERMS(:,56,357) = -TPK%K357(:)*PCONC(:,56) ! ! RETURN -END SUBROUTINE SUBT0 +END SUBROUTINE SUBT58 ! -SUBROUTINE SUBT1 +SUBROUTINE SUBT59 ! -!Indices 21 a 40 +!Indices 1181 a 1200 ! -!PTERMS(OH,K009) = +K009*<H2O2> - PTERMS(:,14,9) = +TPK%K009(:)*PCONC(:,2) +!PTERMS(UR8,K358) = -K358*<UR8> + PTERMS(:,54,358) = -TPK%K358(:)*PCONC(:,54) ! -!PTERMS(CO,K010) = +K010*<HCHO> - PTERMS(:,13,10) = +TPK%K010(:)*PCONC(:,22) +!PTERMS(UR17,K359) = -K359*<UR17> + PTERMS(:,55,359) = -TPK%K359(:)*PCONC(:,55) ! -!PTERMS(HCHO,K010) = -K010*<HCHO> - PTERMS(:,22,10) = -TPK%K010(:)*PCONC(:,22) +!PTERMS(UR19,K360) = -K360*<UR19> + PTERMS(:,65,360) = -TPK%K360(:)*PCONC(:,65) ! -!PTERMS(CO,K011) = +K011*<HCHO> - PTERMS(:,13,11) = +TPK%K011(:)*PCONC(:,22) +!PTERMS(UR21,K361) = -K361*<UR21> + PTERMS(:,47,361) = -TPK%K361(:)*PCONC(:,47) ! -!PTERMS(HO2,K011) = +K011*<HCHO> - PTERMS(:,15,11) = +TPK%K011(:)*PCONC(:,22) +!PTERMS(UR22,K362) = -K362*<UR22> + PTERMS(:,59,362) = -TPK%K362(:)*PCONC(:,59) ! -!PTERMS(HCHO,K011) = -K011*<HCHO> - PTERMS(:,22,11) = -TPK%K011(:)*PCONC(:,22) +!PTERMS(UR26,K363) = -K363*<UR26> + PTERMS(:,49,363) = -TPK%K363(:)*PCONC(:,49) ! -!PTERMS(CO,K012) = +K012*<ALD> - PTERMS(:,13,12) = +TPK%K012(:)*PCONC(:,23) +!PTERMS(UR28,K364) = -K364*<UR28> + PTERMS(:,46,364) = -TPK%K364(:)*PCONC(:,46) ! -!PTERMS(HO2,K012) = +K012*<ALD> - PTERMS(:,15,12) = +TPK%K012(:)*PCONC(:,23) +!PTERMS(AP7,K365) = -K365*<AP7> + PTERMS(:,67,365) = -TPK%K365(:)*PCONC(:,67) ! -!PTERMS(ALD,K012) = -K012*<ALD> - PTERMS(:,23,12) = -TPK%K012(:)*PCONC(:,23) +!PTERMS(O3,KTC1) = -KTC1*<O3> + PTERMS(:,3,366) = -TPK%KTC1(:)*PCONC(:,3) ! -!PTERMS(MO2,K012) = +K012*<ALD> - PTERMS(:,32,12) = +TPK%K012(:)*PCONC(:,23) +!PTERMS(WC_O3,KTC1) = +KTC1*<O3> + PTERMS(:,88,366) = +TPK%KTC1(:)*PCONC(:,3) ! -!PTERMS(OH,K013) = +K013*<OP1> - PTERMS(:,14,13) = +TPK%K013(:)*PCONC(:,28) +!PTERMS(H2O2,KTC2) = -KTC2*<H2O2> + PTERMS(:,12,367) = -TPK%KTC2(:)*PCONC(:,12) ! -!PTERMS(HO2,K013) = +K013*<OP1> - PTERMS(:,15,13) = +TPK%K013(:)*PCONC(:,28) +!PTERMS(WC_H2O2,KTC2) = +KTC2*<H2O2> + PTERMS(:,89,367) = +TPK%KTC2(:)*PCONC(:,12) ! -!PTERMS(HCHO,K013) = +K013*<OP1> - PTERMS(:,22,13) = +TPK%K013(:)*PCONC(:,28) +!PTERMS(NO,KTC3) = -KTC3*<NO> + PTERMS(:,1,368) = -TPK%KTC3(:)*PCONC(:,1) ! -!PTERMS(OP1,K013) = -K013*<OP1> - PTERMS(:,28,13) = -TPK%K013(:)*PCONC(:,28) +!PTERMS(WC_NO,KTC3) = +KTC3*<NO> + PTERMS(:,90,368) = +TPK%KTC3(:)*PCONC(:,1) ! -!PTERMS(OH,K014) = +K014*<OP2> - PTERMS(:,14,14) = +TPK%K014(:)*PCONC(:,29) +!PTERMS(NO2,KTC4) = -KTC4*<NO2> + PTERMS(:,2,369) = -TPK%KTC4(:)*PCONC(:,2) ! -!PTERMS(HO2,K014) = +0.96205*K014*<OP2> - PTERMS(:,15,14) = +0.96205*TPK%K014(:)*PCONC(:,29) +!PTERMS(WC_NO2,KTC4) = +KTC4*<NO2> + PTERMS(:,91,369) = +TPK%KTC4(:)*PCONC(:,2) ! -!PTERMS(ALD,K014) = +0.96205*K014*<OP2> - PTERMS(:,23,14) = +0.96205*TPK%K014(:)*PCONC(:,29) +!PTERMS(NO3,KTC5) = -KTC5*<NO3> + PTERMS(:,8,370) = -TPK%KTC5(:)*PCONC(:,8) ! -!PTERMS(OP2,K014) = -K014*<OP2> - PTERMS(:,29,14) = -TPK%K014(:)*PCONC(:,29) +!PTERMS(WC_NO3,KTC5) = +KTC5*<NO3> + PTERMS(:,92,370) = +TPK%KTC5(:)*PCONC(:,8) ! -!PTERMS(MO2,K014) = +0.03795*K014*<OP2> - PTERMS(:,32,14) = +0.03795*TPK%K014(:)*PCONC(:,29) +!PTERMS(N2O5,KTC6) = -KTC6*<N2O5> + PTERMS(:,7,371) = -TPK%KTC6(:)*PCONC(:,7) ! -!PTERMS(KET,K015) = -K015*<KET> - PTERMS(:,24,15) = -TPK%K015(:)*PCONC(:,24) +!PTERMS(WC_N2O5,KTC6) = +KTC6*<N2O5> + PTERMS(:,93,371) = +TPK%KTC6(:)*PCONC(:,7) ! ! RETURN -END SUBROUTINE SUBT1 +END SUBROUTINE SUBT59 ! -SUBROUTINE SUBT2 +SUBROUTINE SUBT60 ! -!Indices 41 a 60 +!Indices 1201 a 1220 ! -!PTERMS(ALKAP,K015) = +1.00000*K015*<KET> - PTERMS(:,33,15) = +1.00000*TPK%K015(:)*PCONC(:,24) +!PTERMS(HONO,KTC7) = -KTC7*<HONO> + PTERMS(:,4,372) = -TPK%KTC7(:)*PCONC(:,4) ! -!PTERMS(CARBOP,K015) = +1.00000*K015*<KET> - PTERMS(:,39,15) = +1.00000*TPK%K015(:)*PCONC(:,24) +!PTERMS(WC_HONO,KTC7) = +KTC7*<HONO> + PTERMS(:,94,372) = +TPK%KTC7(:)*PCONC(:,4) ! -!PTERMS(CO,K016) = +0.91924*K016*<CARBO> - PTERMS(:,13,16) = +0.91924*TPK%K016(:)*PCONC(:,25) +!PTERMS(HNO3,KTC8) = -KTC8*<HNO3> + PTERMS(:,5,373) = -TPK%KTC8(:)*PCONC(:,5) ! -!PTERMS(HO2,K016) = +0.75830*K016*<CARBO> - PTERMS(:,15,16) = +0.75830*TPK%K016(:)*PCONC(:,25) +!PTERMS(WC_HNO3,KTC8) = +KTC8*<HNO3> + PTERMS(:,95,373) = +TPK%KTC8(:)*PCONC(:,5) ! -!PTERMS(HCHO,K016) = +0.06517*K016*<CARBO> - PTERMS(:,22,16) = +0.06517*TPK%K016(:)*PCONC(:,25) +!PTERMS(HNO4,KTC9) = -KTC9*<HNO4> + PTERMS(:,6,374) = -TPK%KTC9(:)*PCONC(:,6) ! -!PTERMS(CARBO,K016) = -K016*<CARBO> - PTERMS(:,25,16) = -TPK%K016(:)*PCONC(:,25) +!PTERMS(WC_HNO4,KTC9) = +KTC9*<HNO4> + PTERMS(:,96,374) = +TPK%KTC9(:)*PCONC(:,6) ! -!PTERMS(CARBOP,K016) = +0.69622*K016*<CARBO> - PTERMS(:,39,16) = +0.69622*TPK%K016(:)*PCONC(:,25) +!PTERMS(NH3,KTC10) = -KTC10*<NH3> + PTERMS(:,9,375) = -TPK%KTC10(:)*PCONC(:,9) ! -!PTERMS(NO2,K017) = +K017*<ONIT> - PTERMS(:,4,17) = +TPK%K017(:)*PCONC(:,26) +!PTERMS(WC_NH3,KTC10) = +KTC10*<NH3> + PTERMS(:,97,375) = +TPK%KTC10(:)*PCONC(:,9) ! -!PTERMS(HO2,K017) = +K017*<ONIT> - PTERMS(:,15,17) = +TPK%K017(:)*PCONC(:,26) +!PTERMS(OH,KTC11) = -KTC11*<OH> + PTERMS(:,15,376) = -TPK%KTC11(:)*PCONC(:,15) ! -!PTERMS(ALD,K017) = +0.20*K017*<ONIT> - PTERMS(:,23,17) = +0.20*TPK%K017(:)*PCONC(:,26) +!PTERMS(WC_OH,KTC11) = +KTC11*<OH> + PTERMS(:,98,376) = +TPK%KTC11(:)*PCONC(:,15) ! -!PTERMS(KET,K017) = +0.80*K017*<ONIT> - PTERMS(:,24,17) = +0.80*TPK%K017(:)*PCONC(:,26) +!PTERMS(HO2,KTC12) = -KTC12*<HO2> + PTERMS(:,10,377) = -TPK%KTC12(:)*PCONC(:,10) ! -!PTERMS(ONIT,K017) = -K017*<ONIT> - PTERMS(:,26,17) = -TPK%K017(:)*PCONC(:,26) +!PTERMS(WC_HO2,KTC12) = +KTC12*<HO2> + PTERMS(:,99,377) = +TPK%KTC12(:)*PCONC(:,10) ! -!PTERMS(O3,K018) = +K018*<O3P>*<O2> - PTERMS(:,1,18) = +TPK%K018(:)*TPK%O3P(:)*TPK%O2(:) +!PTERMS(WC_CO2,KTC13) = +KTC13*<CO2> + PTERMS(:,100,378) = +TPK%KTC13(:)*TPK%CO2(:) ! -!PTERMS(O3,K019) = -K019*<O3P>*<O3> - PTERMS(:,1,19) = -TPK%K019(:)*TPK%O3P(:)*PCONC(:,1) +!PTERMS(SO2,KTC14) = -KTC14*<SO2> + PTERMS(:,13,379) = -TPK%KTC14(:)*PCONC(:,13) ! -!PTERMS(OH,K022) = +K022*<O1D>*<H2O> - PTERMS(:,14,22) = +TPK%K022(:)*TPK%O1D(:)*TPK%H2O(:) +!PTERMS(WC_SO2,KTC14) = +KTC14*<SO2> + PTERMS(:,101,379) = +TPK%KTC14(:)*PCONC(:,13) ! -!PTERMS(O3,K023) = -K023*<O3>*<OH> - PTERMS(:,1,23) = -TPK%K023(:)*PCONC(:,1)*PCONC(:,14) +!PTERMS(H2SO4,KTC15) = -KTC15*<H2SO4> + PTERMS(:,14,380) = -TPK%KTC15(:)*PCONC(:,14) ! -!PTERMS(OH,K023) = -K023*<O3>*<OH> - PTERMS(:,14,23) = -TPK%K023(:)*PCONC(:,1)*PCONC(:,14) +!PTERMS(WC_H2SO4,KTC15) = +KTC15*<H2SO4> + PTERMS(:,102,380) = +TPK%KTC15(:)*PCONC(:,14) ! -!PTERMS(HO2,K023) = +K023*<O3>*<OH> - PTERMS(:,15,23) = +TPK%K023(:)*PCONC(:,1)*PCONC(:,14) +!PTERMS(RO21,KTC16) = -KTC16*<RO21> + PTERMS(:,86,381) = -TPK%KTC16(:)*PCONC(:,86) ! -!PTERMS(O3,K024) = -K024*<O3>*<HO2> - PTERMS(:,1,24) = -TPK%K024(:)*PCONC(:,1)*PCONC(:,15) +!PTERMS(WC_RO21,KTC16) = +KTC16*<RO21> + PTERMS(:,103,381) = +TPK%KTC16(:)*PCONC(:,86) ! -!PTERMS(OH,K024) = +K024*<O3>*<HO2> - PTERMS(:,14,24) = +TPK%K024(:)*PCONC(:,1)*PCONC(:,15) +!PTERMS(RO25,KTC17) = -KTC17*<RO25> + PTERMS(:,87,382) = -TPK%KTC17(:)*PCONC(:,87) ! ! RETURN -END SUBROUTINE SUBT2 +END SUBROUTINE SUBT60 ! -SUBROUTINE SUBT3 +SUBROUTINE SUBT61 ! -!Indices 61 a 80 +!Indices 1221 a 1240 ! -!PTERMS(HO2,K024) = -K024*<O3>*<HO2> - PTERMS(:,15,24) = -TPK%K024(:)*PCONC(:,1)*PCONC(:,15) +!PTERMS(WC_RO25,KTC17) = +KTC17*<RO25> + PTERMS(:,104,382) = +TPK%KTC17(:)*PCONC(:,87) ! -!PTERMS(OH,K025) = -K025*<OH>*<HO2> - PTERMS(:,14,25) = -TPK%K025(:)*PCONC(:,14)*PCONC(:,15) +!PTERMS(MEOH,KTC18) = -KTC18*<MEOH> + PTERMS(:,32,383) = -TPK%KTC18(:)*PCONC(:,32) ! -!PTERMS(HO2,K025) = -K025*<OH>*<HO2> - PTERMS(:,15,25) = -TPK%K025(:)*PCONC(:,14)*PCONC(:,15) +!PTERMS(WC_MEOH,KTC18) = +KTC18*<MEOH> + PTERMS(:,105,383) = +TPK%KTC18(:)*PCONC(:,32) ! -!PTERMS(H2O2,K026) = -K026*<H2O2>*<OH> - PTERMS(:,2,26) = -TPK%K026(:)*PCONC(:,2)*PCONC(:,14) +!PTERMS(ETOH,KTC19) = -KTC19*<ETOH> + PTERMS(:,33,384) = -TPK%KTC19(:)*PCONC(:,33) ! -!PTERMS(OH,K026) = -K026*<H2O2>*<OH> - PTERMS(:,14,26) = -TPK%K026(:)*PCONC(:,2)*PCONC(:,14) +!PTERMS(WC_ETOH,KTC19) = +KTC19*<ETOH> + PTERMS(:,106,384) = +TPK%KTC19(:)*PCONC(:,33) ! -!PTERMS(HO2,K026) = +K026*<H2O2>*<OH> - PTERMS(:,15,26) = +TPK%K026(:)*PCONC(:,2)*PCONC(:,14) +!PTERMS(ALCH,KTC20) = -KTC20*<ALCH> + PTERMS(:,34,385) = -TPK%KTC20(:)*PCONC(:,34) ! -!PTERMS(H2O2,K027) = +K027*<HO2>*<HO2> - PTERMS(:,2,27) = +TPK%K027(:)*PCONC(:,15)*PCONC(:,15) +!PTERMS(WC_ALCH,KTC20) = +KTC20*<ALCH> + PTERMS(:,107,385) = +TPK%KTC20(:)*PCONC(:,34) ! -!PTERMS(HO2,K027) = -K027*<HO2>*<HO2> - PTERMS(:,15,27) = -TPK%K027(:)*PCONC(:,15)*PCONC(:,15) +!PTERMS(HCHO,KTC21) = -KTC21*<HCHO> + PTERMS(:,28,386) = -TPK%KTC21(:)*PCONC(:,28) ! -!PTERMS(H2O2,K028) = +K028*<HO2>*<HO2>*<H2O> - PTERMS(:,2,28) = +TPK%K028(:)*PCONC(:,15)*PCONC(:,15)*TPK%H2O(:) +!PTERMS(WC_HCHO,KTC21) = +KTC21*<HCHO> + PTERMS(:,108,386) = +TPK%KTC21(:)*PCONC(:,28) ! -!PTERMS(HO2,K028) = -K028*<HO2>*<HO2>*<H2O> - PTERMS(:,15,28) = -TPK%K028(:)*PCONC(:,15)*PCONC(:,15)*TPK%H2O(:) +!PTERMS(ALD2,KTC22) = -KTC22*<ALD2> + PTERMS(:,29,387) = -TPK%KTC22(:)*PCONC(:,29) ! -!PTERMS(NO,K029) = -K029*<O3P>*<NO> - PTERMS(:,3,29) = -TPK%K029(:)*TPK%O3P(:)*PCONC(:,3) +!PTERMS(WC_ALD2,KTC22) = +KTC22*<ALD2> + PTERMS(:,109,387) = +TPK%KTC22(:)*PCONC(:,29) ! -!PTERMS(NO2,K029) = +K029*<O3P>*<NO> - PTERMS(:,4,29) = +TPK%K029(:)*TPK%O3P(:)*PCONC(:,3) +!PTERMS(GLY,KTC23) = -KTC23*<GLY> + PTERMS(:,42,388) = -TPK%KTC23(:)*PCONC(:,42) ! -!PTERMS(NO,K030) = +K030*<O3P>*<NO2> - PTERMS(:,3,30) = +TPK%K030(:)*TPK%O3P(:)*PCONC(:,4) +!PTERMS(WC_GLY,KTC23) = +KTC23*<GLY> + PTERMS(:,110,388) = +TPK%KTC23(:)*PCONC(:,42) ! -!PTERMS(NO2,K030) = -K030*<O3P>*<NO2> - PTERMS(:,4,30) = -TPK%K030(:)*TPK%O3P(:)*PCONC(:,4) +!PTERMS(KETL,KTC24) = -KTC24*<KETL> + PTERMS(:,30,389) = -TPK%KTC24(:)*PCONC(:,30) ! -!PTERMS(NO2,K031) = -K031*<O3P>*<NO2> - PTERMS(:,4,31) = -TPK%K031(:)*TPK%O3P(:)*PCONC(:,4) +!PTERMS(WC_KETL,KTC24) = +KTC24*<KETL> + PTERMS(:,112,389) = +TPK%KTC24(:)*PCONC(:,30) ! -!PTERMS(NO3,K031) = +K031*<O3P>*<NO2> - PTERMS(:,5,31) = +TPK%K031(:)*TPK%O3P(:)*PCONC(:,4) +!PTERMS(MGLY,KTC25) = -KTC25*<MGLY> + PTERMS(:,41,390) = -TPK%KTC25(:)*PCONC(:,41) ! -!PTERMS(NO,K032) = -K032*<OH>*<NO> - PTERMS(:,3,32) = -TPK%K032(:)*PCONC(:,14)*PCONC(:,3) +!PTERMS(WC_MGLY,KTC25) = +KTC25*<MGLY> + PTERMS(:,111,390) = +TPK%KTC25(:)*PCONC(:,41) ! -!PTERMS(HONO,K032) = +K032*<OH>*<NO> - PTERMS(:,7,32) = +TPK%K032(:)*PCONC(:,14)*PCONC(:,3) +!PTERMS(ORA1,KTC26) = -KTC26*<ORA1> + PTERMS(:,43,391) = -TPK%KTC26(:)*PCONC(:,43) ! -!PTERMS(OH,K032) = -K032*<OH>*<NO> - PTERMS(:,14,32) = -TPK%K032(:)*PCONC(:,14)*PCONC(:,3) +!PTERMS(WC_ORA1,KTC26) = +KTC26*<ORA1> + PTERMS(:,113,391) = +TPK%KTC26(:)*PCONC(:,43) ! -!PTERMS(NO2,K033) = -K033*<OH>*<NO2> - PTERMS(:,4,33) = -TPK%K033(:)*PCONC(:,14)*PCONC(:,4) +!PTERMS(ORA2,KTC27) = -KTC27*<ORA2> + PTERMS(:,44,392) = -TPK%KTC27(:)*PCONC(:,44) ! ! RETURN -END SUBROUTINE SUBT3 +END SUBROUTINE SUBT61 ! -SUBROUTINE SUBT4 +SUBROUTINE SUBT62 ! -!Indices 81 a 100 +!Indices 1241 a 1260 ! -!PTERMS(HNO3,K033) = +K033*<OH>*<NO2> - PTERMS(:,8,33) = +TPK%K033(:)*PCONC(:,14)*PCONC(:,4) +!PTERMS(WC_ORA2,KTC27) = +KTC27*<ORA2> + PTERMS(:,114,392) = +TPK%KTC27(:)*PCONC(:,44) ! -!PTERMS(OH,K033) = -K033*<OH>*<NO2> - PTERMS(:,14,33) = -TPK%K033(:)*PCONC(:,14)*PCONC(:,4) +!PTERMS(ACID,KTC28) = -KTC28*<ACID> + PTERMS(:,45,393) = -TPK%KTC28(:)*PCONC(:,45) ! -!PTERMS(NO2,K034) = +K034*<OH>*<NO3> - PTERMS(:,4,34) = +TPK%K034(:)*PCONC(:,14)*PCONC(:,5) +!PTERMS(WC_ACID,KTC28) = +KTC28*<ACID> + PTERMS(:,115,393) = +TPK%KTC28(:)*PCONC(:,45) ! -!PTERMS(NO3,K034) = -K034*<OH>*<NO3> - PTERMS(:,5,34) = -TPK%K034(:)*PCONC(:,14)*PCONC(:,5) +!PTERMS(RP16,KTC29) = -KTC29*<RP16> + PTERMS(:,74,394) = -TPK%KTC29(:)*PCONC(:,74) ! -!PTERMS(OH,K034) = -K034*<OH>*<NO3> - PTERMS(:,14,34) = -TPK%K034(:)*PCONC(:,14)*PCONC(:,5) +!PTERMS(WC_RP16,KTC29) = +KTC29*<RP16> + PTERMS(:,116,394) = +TPK%KTC29(:)*PCONC(:,74) ! -!PTERMS(HO2,K034) = +K034*<OH>*<NO3> - PTERMS(:,15,34) = +TPK%K034(:)*PCONC(:,14)*PCONC(:,5) +!PTERMS(UR21,KTC30) = -KTC30*<UR21> + PTERMS(:,47,395) = -TPK%KTC30(:)*PCONC(:,47) ! -!PTERMS(NO,K035) = -K035*<HO2>*<NO> - PTERMS(:,3,35) = -TPK%K035(:)*PCONC(:,15)*PCONC(:,3) +!PTERMS(WC_UR21,KTC30) = +KTC30*<UR21> + PTERMS(:,117,395) = +TPK%KTC30(:)*PCONC(:,47) ! -!PTERMS(NO2,K035) = +K035*<HO2>*<NO> - PTERMS(:,4,35) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,3) +!PTERMS(UR28,KTC31) = -KTC31*<UR28> + PTERMS(:,46,396) = -TPK%KTC31(:)*PCONC(:,46) ! -!PTERMS(OH,K035) = +K035*<HO2>*<NO> - PTERMS(:,14,35) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,3) +!PTERMS(WC_UR28,KTC31) = +KTC31*<UR28> + PTERMS(:,118,396) = +TPK%KTC31(:)*PCONC(:,46) ! -!PTERMS(HO2,K035) = -K035*<HO2>*<NO> - PTERMS(:,15,35) = -TPK%K035(:)*PCONC(:,15)*PCONC(:,3) +!PTERMS(O3,KTC32) = +KTC32*<WC_O3> + PTERMS(:,3,397) = +TPK%KTC32(:)*PCONC(:,88) ! -!PTERMS(NO2,K036) = -K036*<HO2>*<NO2> - PTERMS(:,4,36) = -TPK%K036(:)*PCONC(:,15)*PCONC(:,4) +!PTERMS(WC_O3,KTC32) = -KTC32*<WC_O3> + PTERMS(:,88,397) = -TPK%KTC32(:)*PCONC(:,88) ! -!PTERMS(HNO4,K036) = +K036*<HO2>*<NO2> - PTERMS(:,9,36) = +TPK%K036(:)*PCONC(:,15)*PCONC(:,4) +!PTERMS(H2O2,KTC33) = +KTC33*<WC_H2O2> + PTERMS(:,12,398) = +TPK%KTC33(:)*PCONC(:,89) ! -!PTERMS(HO2,K036) = -K036*<HO2>*<NO2> - PTERMS(:,15,36) = -TPK%K036(:)*PCONC(:,15)*PCONC(:,4) +!PTERMS(WC_H2O2,KTC33) = -KTC33*<WC_H2O2> + PTERMS(:,89,398) = -TPK%KTC33(:)*PCONC(:,89) ! -!PTERMS(NO2,K037) = +K037*<HNO4> - PTERMS(:,4,37) = +TPK%K037(:)*PCONC(:,9) +!PTERMS(NO,KTC34) = +KTC34*<WC_NO> + PTERMS(:,1,399) = +TPK%KTC34(:)*PCONC(:,90) ! -!PTERMS(HNO4,K037) = -K037*<HNO4> - PTERMS(:,9,37) = -TPK%K037(:)*PCONC(:,9) +!PTERMS(WC_NO,KTC34) = -KTC34*<WC_NO> + PTERMS(:,90,399) = -TPK%KTC34(:)*PCONC(:,90) ! -!PTERMS(HO2,K037) = +K037*<HNO4> - PTERMS(:,15,37) = +TPK%K037(:)*PCONC(:,9) +!PTERMS(NO2,KTC35) = +KTC35*<WC_NO2> + PTERMS(:,2,400) = +TPK%KTC35(:)*PCONC(:,91) ! -!PTERMS(NO2,K038) = +0.7*K038*<HO2>*<NO3> - PTERMS(:,4,38) = +0.7*TPK%K038(:)*PCONC(:,15)*PCONC(:,5) +!PTERMS(WC_NO2,KTC35) = -KTC35*<WC_NO2> + PTERMS(:,91,400) = -TPK%KTC35(:)*PCONC(:,91) ! -!PTERMS(NO3,K038) = -K038*<HO2>*<NO3> - PTERMS(:,5,38) = -TPK%K038(:)*PCONC(:,15)*PCONC(:,5) +!PTERMS(NO3,KTC36) = +KTC36*<WC_NO3> + PTERMS(:,8,401) = +TPK%KTC36(:)*PCONC(:,92) ! -!PTERMS(HNO3,K038) = +0.3*K038*<HO2>*<NO3> - PTERMS(:,8,38) = +0.3*TPK%K038(:)*PCONC(:,15)*PCONC(:,5) +!PTERMS(WC_NO3,KTC36) = -KTC36*<WC_NO3> + PTERMS(:,92,401) = -TPK%KTC36(:)*PCONC(:,92) ! -!PTERMS(OH,K038) = +0.7*K038*<HO2>*<NO3> - PTERMS(:,14,38) = +0.7*TPK%K038(:)*PCONC(:,15)*PCONC(:,5) +!PTERMS(N2O5,KTC37) = +KTC37*<WC_N2O5> + PTERMS(:,7,402) = +TPK%KTC37(:)*PCONC(:,93) ! ! RETURN -END SUBROUTINE SUBT4 +END SUBROUTINE SUBT62 ! -SUBROUTINE SUBT5 +SUBROUTINE SUBT63 ! -!Indices 101 a 120 +!Indices 1261 a 1280 ! -!PTERMS(HO2,K038) = -K038*<HO2>*<NO3> - PTERMS(:,15,38) = -TPK%K038(:)*PCONC(:,15)*PCONC(:,5) +!PTERMS(WC_N2O5,KTC37) = -KTC37*<WC_N2O5> + PTERMS(:,93,402) = -TPK%KTC37(:)*PCONC(:,93) ! -!PTERMS(NO2,K039) = +K039*<OH>*<HONO> - PTERMS(:,4,39) = +TPK%K039(:)*PCONC(:,14)*PCONC(:,7) +!PTERMS(HONO,KTC38) = +KTC38*<WC_HONO> + PTERMS(:,4,403) = +TPK%KTC38(:)*PCONC(:,94) ! -!PTERMS(HONO,K039) = -K039*<OH>*<HONO> - PTERMS(:,7,39) = -TPK%K039(:)*PCONC(:,14)*PCONC(:,7) +!PTERMS(WC_HONO,KTC38) = -KTC38*<WC_HONO> + PTERMS(:,94,403) = -TPK%KTC38(:)*PCONC(:,94) ! -!PTERMS(OH,K039) = -K039*<OH>*<HONO> - PTERMS(:,14,39) = -TPK%K039(:)*PCONC(:,14)*PCONC(:,7) +!PTERMS(HNO3,KTC39) = +KTC39*<WC_HNO3> + PTERMS(:,5,404) = +TPK%KTC39(:)*PCONC(:,95) ! -!PTERMS(NO3,K040) = +K040*<OH>*<HNO3> - PTERMS(:,5,40) = +TPK%K040(:)*PCONC(:,14)*PCONC(:,8) +!PTERMS(WC_HNO3,KTC39) = -KTC39*<WC_HNO3> + PTERMS(:,95,404) = -TPK%KTC39(:)*PCONC(:,95) ! -!PTERMS(HNO3,K040) = -K040*<OH>*<HNO3> - PTERMS(:,8,40) = -TPK%K040(:)*PCONC(:,14)*PCONC(:,8) +!PTERMS(HNO4,KTC40) = +KTC40*<WC_HNO4> + PTERMS(:,6,405) = +TPK%KTC40(:)*PCONC(:,96) ! -!PTERMS(OH,K040) = -K040*<OH>*<HNO3> - PTERMS(:,14,40) = -TPK%K040(:)*PCONC(:,14)*PCONC(:,8) +!PTERMS(WC_HNO4,KTC40) = -KTC40*<WC_HNO4> + PTERMS(:,96,405) = -TPK%KTC40(:)*PCONC(:,96) ! -!PTERMS(NO2,K041) = +K041*<OH>*<HNO4> - PTERMS(:,4,41) = +TPK%K041(:)*PCONC(:,14)*PCONC(:,9) +!PTERMS(NH3,KTC41) = +KTC41*<WC_NH3> + PTERMS(:,9,406) = +TPK%KTC41(:)*PCONC(:,97) ! -!PTERMS(HNO4,K041) = -K041*<OH>*<HNO4> - PTERMS(:,9,41) = -TPK%K041(:)*PCONC(:,14)*PCONC(:,9) +!PTERMS(WC_NH3,KTC41) = -KTC41*<WC_NH3> + PTERMS(:,97,406) = -TPK%KTC41(:)*PCONC(:,97) ! -!PTERMS(OH,K041) = -K041*<OH>*<HNO4> - PTERMS(:,14,41) = -TPK%K041(:)*PCONC(:,14)*PCONC(:,9) +!PTERMS(OH,KTC42) = +KTC42*<WC_OH> + PTERMS(:,15,407) = +TPK%KTC42(:)*PCONC(:,98) ! -!PTERMS(O3,K042) = -K042*<O3>*<NO> - PTERMS(:,1,42) = -TPK%K042(:)*PCONC(:,1)*PCONC(:,3) +!PTERMS(WC_OH,KTC42) = -KTC42*<WC_OH> + PTERMS(:,98,407) = -TPK%KTC42(:)*PCONC(:,98) ! -!PTERMS(NO,K042) = -K042*<O3>*<NO> - PTERMS(:,3,42) = -TPK%K042(:)*PCONC(:,1)*PCONC(:,3) +!PTERMS(HO2,KTC43) = +KTC43*<WC_HO2> + PTERMS(:,10,408) = +TPK%KTC43(:)*PCONC(:,99) ! -!PTERMS(NO2,K042) = +K042*<O3>*<NO> - PTERMS(:,4,42) = +TPK%K042(:)*PCONC(:,1)*PCONC(:,3) +!PTERMS(WC_HO2,KTC43) = -KTC43*<WC_HO2> + PTERMS(:,99,408) = -TPK%KTC43(:)*PCONC(:,99) ! -!PTERMS(O3,K043) = -K043*<O3>*<NO2> - PTERMS(:,1,43) = -TPK%K043(:)*PCONC(:,1)*PCONC(:,4) +!PTERMS(WC_CO2,KTC44) = -KTC44*<WC_CO2> + PTERMS(:,100,409) = -TPK%KTC44(:)*PCONC(:,100) ! -!PTERMS(NO2,K043) = -K043*<O3>*<NO2> - PTERMS(:,4,43) = -TPK%K043(:)*PCONC(:,1)*PCONC(:,4) +!PTERMS(SO2,KTC45) = +KTC45*<WC_SO2> + PTERMS(:,13,410) = +TPK%KTC45(:)*PCONC(:,101) ! -!PTERMS(NO3,K043) = +K043*<O3>*<NO2> - PTERMS(:,5,43) = +TPK%K043(:)*PCONC(:,1)*PCONC(:,4) +!PTERMS(WC_SO2,KTC45) = -KTC45*<WC_SO2> + PTERMS(:,101,410) = -TPK%KTC45(:)*PCONC(:,101) ! -!PTERMS(NO,K044) = -K044*<NO>*<NO>*<O2> - PTERMS(:,3,44) = -TPK%K044(:)*PCONC(:,3)*PCONC(:,3)*TPK%O2(:) +!PTERMS(H2SO4,KTC46) = +KTC46*<WC_H2SO4> + PTERMS(:,14,411) = +TPK%KTC46(:)*PCONC(:,102) ! -!PTERMS(NO2,K044) = +K044*<NO>*<NO>*<O2> - PTERMS(:,4,44) = +TPK%K044(:)*PCONC(:,3)*PCONC(:,3)*TPK%O2(:) +!PTERMS(WC_H2SO4,KTC46) = -KTC46*<WC_H2SO4> + PTERMS(:,102,411) = -TPK%KTC46(:)*PCONC(:,102) ! -!PTERMS(NO,K045) = -K045*<NO3>*<NO> - PTERMS(:,3,45) = -TPK%K045(:)*PCONC(:,5)*PCONC(:,3) +!PTERMS(RO21,KTC47) = +KTC47*<WC_RO21> + PTERMS(:,86,412) = +TPK%KTC47(:)*PCONC(:,103) ! -!PTERMS(NO2,K045) = +K045*<NO3>*<NO> - PTERMS(:,4,45) = +TPK%K045(:)*PCONC(:,5)*PCONC(:,3) +!PTERMS(WC_RO21,KTC47) = -KTC47*<WC_RO21> + PTERMS(:,103,412) = -TPK%KTC47(:)*PCONC(:,103) ! ! RETURN -END SUBROUTINE SUBT5 +END SUBROUTINE SUBT63 ! -SUBROUTINE SUBT6 +SUBROUTINE SUBT64 ! -!Indices 121 a 140 +!Indices 1281 a 1300 ! -!PTERMS(NO3,K045) = -K045*<NO3>*<NO> - PTERMS(:,5,45) = -TPK%K045(:)*PCONC(:,5)*PCONC(:,3) +!PTERMS(RO25,KTC48) = +KTC48*<WC_RO25> + PTERMS(:,87,413) = +TPK%KTC48(:)*PCONC(:,104) ! -!PTERMS(NO,K046) = +K046*<NO3>*<NO2> - PTERMS(:,3,46) = +TPK%K046(:)*PCONC(:,5)*PCONC(:,4) +!PTERMS(WC_RO25,KTC48) = -KTC48*<WC_RO25> + PTERMS(:,104,413) = -TPK%KTC48(:)*PCONC(:,104) ! -!PTERMS(NO2,K046) = -K046*<NO3>*<NO2> - PTERMS(:,4,46) = -TPK%K046(:)*PCONC(:,5)*PCONC(:,4) +!PTERMS(MEOH,KTC49) = +KTC49*<WC_MEOH> + PTERMS(:,32,414) = +TPK%KTC49(:)*PCONC(:,105) ! -!PTERMS(NO3,K046) = -K046*<NO3>*<NO2> - PTERMS(:,5,46) = -TPK%K046(:)*PCONC(:,5)*PCONC(:,4) +!PTERMS(WC_MEOH,KTC49) = -KTC49*<WC_MEOH> + PTERMS(:,105,414) = -TPK%KTC49(:)*PCONC(:,105) ! -!PTERMS(NO2,K047) = -K047*<NO3>*<NO2> - PTERMS(:,4,47) = -TPK%K047(:)*PCONC(:,5)*PCONC(:,4) +!PTERMS(ETOH,KTC50) = +KTC50*<WC_ETOH> + PTERMS(:,33,415) = +TPK%KTC50(:)*PCONC(:,106) ! -!PTERMS(NO3,K047) = -K047*<NO3>*<NO2> - PTERMS(:,5,47) = -TPK%K047(:)*PCONC(:,5)*PCONC(:,4) +!PTERMS(WC_ETOH,KTC50) = -KTC50*<WC_ETOH> + PTERMS(:,106,415) = -TPK%KTC50(:)*PCONC(:,106) ! -!PTERMS(N2O5,K047) = +K047*<NO3>*<NO2> - PTERMS(:,6,47) = +TPK%K047(:)*PCONC(:,5)*PCONC(:,4) +!PTERMS(ALCH,KTC51) = +KTC51*<WC_ALCH> + PTERMS(:,34,416) = +TPK%KTC51(:)*PCONC(:,107) ! -!PTERMS(NO2,K048) = +K048*<N2O5> - PTERMS(:,4,48) = +TPK%K048(:)*PCONC(:,6) +!PTERMS(WC_ALCH,KTC51) = -KTC51*<WC_ALCH> + PTERMS(:,107,416) = -TPK%KTC51(:)*PCONC(:,107) ! -!PTERMS(NO3,K048) = +K048*<N2O5> - PTERMS(:,5,48) = +TPK%K048(:)*PCONC(:,6) +!PTERMS(HCHO,KTC52) = +KTC52*<WC_HCHO> + PTERMS(:,28,417) = +TPK%KTC52(:)*PCONC(:,108) ! -!PTERMS(N2O5,K048) = -K048*<N2O5> - PTERMS(:,6,48) = -TPK%K048(:)*PCONC(:,6) +!PTERMS(WC_HCHO,KTC52) = -KTC52*<WC_HCHO> + PTERMS(:,108,417) = -TPK%KTC52(:)*PCONC(:,108) ! -!PTERMS(NO2,K049) = +K049*<NO3>*<NO3> - PTERMS(:,4,49) = +TPK%K049(:)*PCONC(:,5)*PCONC(:,5) +!PTERMS(ALD2,KTC53) = +KTC53*<WC_ALD2> + PTERMS(:,29,418) = +TPK%KTC53(:)*PCONC(:,109) ! -!PTERMS(NO3,K049) = -K049*<NO3>*<NO3> - PTERMS(:,5,49) = -TPK%K049(:)*PCONC(:,5)*PCONC(:,5) +!PTERMS(WC_ALD2,KTC53) = -KTC53*<WC_ALD2> + PTERMS(:,109,418) = -TPK%KTC53(:)*PCONC(:,109) ! -!PTERMS(NH3,K050) = -K050*<NH3>*<OH> - PTERMS(:,10,50) = -TPK%K050(:)*PCONC(:,10)*PCONC(:,14) +!PTERMS(GLY,KTC54) = +KTC54*<WC_GLY> + PTERMS(:,42,419) = +TPK%KTC54(:)*PCONC(:,110) ! -!PTERMS(OH,K050) = -K050*<NH3>*<OH> - PTERMS(:,14,50) = -TPK%K050(:)*PCONC(:,10)*PCONC(:,14) +!PTERMS(WC_GLY,KTC54) = -KTC54*<WC_GLY> + PTERMS(:,110,419) = -TPK%KTC54(:)*PCONC(:,110) ! -!PTERMS(OH,K051) = -K051*<OH>*<H2> - PTERMS(:,14,51) = -TPK%K051(:)*PCONC(:,14)*TPK%H2(:) +!PTERMS(KETL,KTC55) = +KTC55*<WC_KETL> + PTERMS(:,30,420) = +TPK%KTC55(:)*PCONC(:,112) ! -!PTERMS(HO2,K051) = +K051*<OH>*<H2> - PTERMS(:,15,51) = +TPK%K051(:)*PCONC(:,14)*TPK%H2(:) +!PTERMS(WC_KETL,KTC55) = -KTC55*<WC_KETL> + PTERMS(:,112,420) = -TPK%KTC55(:)*PCONC(:,112) ! -!PTERMS(SO2,K052) = -K052*<OH>*<SO2> - PTERMS(:,11,52) = -TPK%K052(:)*PCONC(:,14)*PCONC(:,11) +!PTERMS(MGLY,KTC56) = +KTC56*<WC_MGLY> + PTERMS(:,41,421) = +TPK%KTC56(:)*PCONC(:,111) ! -!PTERMS(SULF,K052) = +K052*<OH>*<SO2> - PTERMS(:,12,52) = +TPK%K052(:)*PCONC(:,14)*PCONC(:,11) +!PTERMS(WC_MGLY,KTC56) = -KTC56*<WC_MGLY> + PTERMS(:,111,421) = -TPK%KTC56(:)*PCONC(:,111) ! -!PTERMS(OH,K052) = -K052*<OH>*<SO2> - PTERMS(:,14,52) = -TPK%K052(:)*PCONC(:,14)*PCONC(:,11) +!PTERMS(ORA1,KTC57) = +KTC57*<WC_ORA1> + PTERMS(:,43,422) = +TPK%KTC57(:)*PCONC(:,113) ! -!PTERMS(HO2,K052) = +K052*<OH>*<SO2> - PTERMS(:,15,52) = +TPK%K052(:)*PCONC(:,14)*PCONC(:,11) +!PTERMS(WC_ORA1,KTC57) = -KTC57*<WC_ORA1> + PTERMS(:,113,422) = -TPK%KTC57(:)*PCONC(:,113) ! ! RETURN -END SUBROUTINE SUBT6 +END SUBROUTINE SUBT64 ! -SUBROUTINE SUBT7 +SUBROUTINE SUBT65 ! -!Indices 141 a 160 +!Indices 1301 a 1320 ! -!PTERMS(CO,K053) = -K053*<CO>*<OH> - PTERMS(:,13,53) = -TPK%K053(:)*PCONC(:,13)*PCONC(:,14) +!PTERMS(ORA2,KTC58) = +KTC58*<WC_ORA2> + PTERMS(:,44,423) = +TPK%KTC58(:)*PCONC(:,114) ! -!PTERMS(OH,K053) = -K053*<CO>*<OH> - PTERMS(:,14,53) = -TPK%K053(:)*PCONC(:,13)*PCONC(:,14) +!PTERMS(WC_ORA2,KTC58) = -KTC58*<WC_ORA2> + PTERMS(:,114,423) = -TPK%KTC58(:)*PCONC(:,114) ! -!PTERMS(HO2,K053) = +K053*<CO>*<OH> - PTERMS(:,15,53) = +TPK%K053(:)*PCONC(:,13)*PCONC(:,14) +!PTERMS(ACID,KTC59) = +KTC59*<WC_ACID> + PTERMS(:,45,424) = +TPK%KTC59(:)*PCONC(:,115) ! -!PTERMS(CO,K054) = +0.01*K054*<BIO>*<O3P> - PTERMS(:,13,54) = +0.01*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) +!PTERMS(WC_ACID,KTC59) = -KTC59*<WC_ACID> + PTERMS(:,115,424) = -TPK%KTC59(:)*PCONC(:,115) ! -!PTERMS(OH,K054) = +0.02*K054*<BIO>*<O3P> - PTERMS(:,14,54) = +0.02*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) +!PTERMS(RP16,KTC60) = +KTC60*<WC_RP16> + PTERMS(:,74,425) = +TPK%KTC60(:)*PCONC(:,116) ! -!PTERMS(HO2,K054) = +0.28*K054*<BIO>*<O3P> - PTERMS(:,15,54) = +0.28*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) +!PTERMS(WC_RP16,KTC60) = -KTC60*<WC_RP16> + PTERMS(:,116,425) = -TPK%KTC60(:)*PCONC(:,116) ! -!PTERMS(ALKE,K054) = +0.91868*K054*<BIO>*<O3P> - PTERMS(:,19,54) = +0.91868*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) +!PTERMS(UR21,KTC61) = +KTC61*<WC_UR21> + PTERMS(:,47,426) = +TPK%KTC61(:)*PCONC(:,117) ! -!PTERMS(BIO,K054) = -K054*<BIO>*<O3P> - PTERMS(:,20,54) = -TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) +!PTERMS(WC_UR21,KTC61) = -KTC61*<WC_UR21> + PTERMS(:,117,426) = -TPK%KTC61(:)*PCONC(:,117) ! -!PTERMS(HCHO,K054) = +0.05*K054*<BIO>*<O3P> - PTERMS(:,22,54) = +0.05*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) +!PTERMS(UR28,KTC62) = +KTC62*<WC_UR28> + PTERMS(:,46,427) = +TPK%KTC62(:)*PCONC(:,118) ! -!PTERMS(CARBO,K054) = +0.13255*K054*<BIO>*<O3P> - PTERMS(:,25,54) = +0.13255*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) +!PTERMS(WC_UR28,KTC62) = -KTC62*<WC_UR28> + PTERMS(:,118,427) = -TPK%KTC62(:)*PCONC(:,118) ! -!PTERMS(XO2,K054) = +0.15*K054*<BIO>*<O3P> - PTERMS(:,41,54) = +0.15*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) +!PTERMS(O3,KTR1) = -KTR1*<O3> + PTERMS(:,3,428) = -TPK%KTR1(:)*PCONC(:,3) ! -!PTERMS(ALD,K055) = +K055*<CARBO>*<O3P> - PTERMS(:,23,55) = +TPK%K055(:)*PCONC(:,25)*TPK%O3P(:) +!PTERMS(WR_O3,KTR1) = +KTR1*<O3> + PTERMS(:,125,428) = +TPK%KTR1(:)*PCONC(:,3) ! -!PTERMS(CARBO,K055) = -K055*<CARBO>*<O3P> - PTERMS(:,25,55) = -TPK%K055(:)*PCONC(:,25)*TPK%O3P(:) +!PTERMS(H2O2,KTR2) = -KTR2*<H2O2> + PTERMS(:,12,429) = -TPK%KTR2(:)*PCONC(:,12) ! -!PTERMS(OH,K056) = -K056*<CH4>*<OH> - PTERMS(:,14,56) = -TPK%K056(:)*PCONC(:,16)*PCONC(:,14) +!PTERMS(WR_H2O2,KTR2) = +KTR2*<H2O2> + PTERMS(:,126,429) = +TPK%KTR2(:)*PCONC(:,12) ! -!PTERMS(CH4,K056) = -K056*<CH4>*<OH> - PTERMS(:,16,56) = -TPK%K056(:)*PCONC(:,16)*PCONC(:,14) +!PTERMS(NO,KTR3) = -KTR3*<NO> + PTERMS(:,1,430) = -TPK%KTR3(:)*PCONC(:,1) ! -!PTERMS(MO2,K056) = +K056*<CH4>*<OH> - PTERMS(:,32,56) = +TPK%K056(:)*PCONC(:,16)*PCONC(:,14) +!PTERMS(WR_NO,KTR3) = +KTR3*<NO> + PTERMS(:,127,430) = +TPK%KTR3(:)*PCONC(:,1) ! -!PTERMS(OH,K057) = -K057*<ETH>*<OH> - PTERMS(:,14,57) = -TPK%K057(:)*PCONC(:,17)*PCONC(:,14) +!PTERMS(NO2,KTR4) = -KTR4*<NO2> + PTERMS(:,2,431) = -TPK%KTR4(:)*PCONC(:,2) ! -!PTERMS(ETH,K057) = -K057*<ETH>*<OH> - PTERMS(:,17,57) = -TPK%K057(:)*PCONC(:,17)*PCONC(:,14) +!PTERMS(WR_NO2,KTR4) = +KTR4*<NO2> + PTERMS(:,128,431) = +TPK%KTR4(:)*PCONC(:,2) ! -!PTERMS(ALKAP,K057) = +K057*<ETH>*<OH> - PTERMS(:,33,57) = +TPK%K057(:)*PCONC(:,17)*PCONC(:,14) +!PTERMS(NO3,KTR5) = -KTR5*<NO3> + PTERMS(:,8,432) = -TPK%KTR5(:)*PCONC(:,8) ! -!PTERMS(CO,K058) = +0.00878*K058*<ALKA>*<OH> - PTERMS(:,13,58) = +0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(WR_NO3,KTR5) = +KTR5*<NO3> + PTERMS(:,129,432) = +TPK%KTR5(:)*PCONC(:,8) ! ! RETURN -END SUBROUTINE SUBT7 +END SUBROUTINE SUBT65 ! -SUBROUTINE SUBT8 +SUBROUTINE SUBT66 ! -!Indices 161 a 180 +!Indices 1321 a 1340 ! -!PTERMS(OH,K058) = -K058*<ALKA>*<OH> - PTERMS(:,14,58) = -TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(N2O5,KTR6) = -KTR6*<N2O5> + PTERMS(:,7,433) = -TPK%KTR6(:)*PCONC(:,7) ! -!PTERMS(HO2,K058) = +0.12793*K058*<ALKA>*<OH> - PTERMS(:,15,58) = +0.12793*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(WR_N2O5,KTR6) = +KTR6*<N2O5> + PTERMS(:,130,433) = +TPK%KTR6(:)*PCONC(:,7) ! -!PTERMS(ALKA,K058) = -K058*<ALKA>*<OH> - PTERMS(:,18,58) = -TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(HONO,KTR7) = -KTR7*<HONO> + PTERMS(:,4,434) = -TPK%KTR7(:)*PCONC(:,4) ! -!PTERMS(HCHO,K058) = +0.00140*K058*<ALKA>*<OH> - PTERMS(:,22,58) = +0.00140*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(WR_HONO,KTR7) = +KTR7*<HONO> + PTERMS(:,131,434) = +TPK%KTR7(:)*PCONC(:,4) ! -!PTERMS(ALD,K058) = +0.08173*K058*<ALKA>*<OH> - PTERMS(:,23,58) = +0.08173*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(HNO3,KTR8) = -KTR8*<HNO3> + PTERMS(:,5,435) = -TPK%KTR8(:)*PCONC(:,5) ! -!PTERMS(KET,K058) = +0.03498*K058*<ALKA>*<OH> - PTERMS(:,24,58) = +0.03498*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(WR_HNO3,KTR8) = +KTR8*<HNO3> + PTERMS(:,132,435) = +TPK%KTR8(:)*PCONC(:,5) ! -!PTERMS(CARBO,K058) = +0.00835*K058*<ALKA>*<OH> - PTERMS(:,25,58) = +0.00835*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(HNO4,KTR9) = -KTR9*<HNO4> + PTERMS(:,6,436) = -TPK%KTR9(:)*PCONC(:,6) ! -!PTERMS(ORA1,K058) = +0.00878*K058*<ALKA>*<OH> - PTERMS(:,30,58) = +0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(WR_HNO4,KTR9) = +KTR9*<HNO4> + PTERMS(:,133,436) = +TPK%KTR9(:)*PCONC(:,6) ! -!PTERMS(ALKAP,K058) = +0.87811*K058*<ALKA>*<OH> - PTERMS(:,33,58) = +0.87811*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) +!PTERMS(NH3,KTR10) = -KTR10*<NH3> + PTERMS(:,9,437) = -TPK%KTR10(:)*PCONC(:,9) ! -!PTERMS(OH,K059) = -K059*<ALKE>*<OH> - PTERMS(:,14,59) = -TPK%K059(:)*PCONC(:,19)*PCONC(:,14) +!PTERMS(WR_NH3,KTR10) = +KTR10*<NH3> + PTERMS(:,134,437) = +TPK%KTR10(:)*PCONC(:,9) ! -!PTERMS(ALKE,K059) = -K059*<ALKE>*<OH> - PTERMS(:,19,59) = -TPK%K059(:)*PCONC(:,19)*PCONC(:,14) +!PTERMS(OH,KTR11) = -KTR11*<OH> + PTERMS(:,15,438) = -TPK%KTR11(:)*PCONC(:,15) ! -!PTERMS(ALKEP,K059) = +1.02529*K059*<ALKE>*<OH> - PTERMS(:,34,59) = +1.02529*TPK%K059(:)*PCONC(:,19)*PCONC(:,14) +!PTERMS(WR_OH,KTR11) = +KTR11*<OH> + PTERMS(:,135,438) = +TPK%KTR11(:)*PCONC(:,15) ! -!PTERMS(BIOP,K059) = +0.00000*K059*<ALKE>*<OH> - PTERMS(:,35,59) = +0.00000*TPK%K059(:)*PCONC(:,19)*PCONC(:,14) +!PTERMS(HO2,KTR12) = -KTR12*<HO2> + PTERMS(:,10,439) = -TPK%KTR12(:)*PCONC(:,10) ! -!PTERMS(OH,K060) = -K060*<BIO>*<OH> - PTERMS(:,14,60) = -TPK%K060(:)*PCONC(:,20)*PCONC(:,14) +!PTERMS(WR_HO2,KTR12) = +KTR12*<HO2> + PTERMS(:,136,439) = +TPK%KTR12(:)*PCONC(:,10) ! -!PTERMS(BIO,K060) = -K060*<BIO>*<OH> - PTERMS(:,20,60) = -TPK%K060(:)*PCONC(:,20)*PCONC(:,14) +!PTERMS(WR_CO2,KTR13) = +KTR13*<CO2> + PTERMS(:,137,440) = +TPK%KTR13(:)*TPK%CO2(:) ! -!PTERMS(BIOP,K060) = +1.00000*K060*<BIO>*<OH> - PTERMS(:,35,60) = +1.00000*TPK%K060(:)*PCONC(:,20)*PCONC(:,14) +!PTERMS(SO2,KTR14) = -KTR14*<SO2> + PTERMS(:,13,441) = -TPK%KTR14(:)*PCONC(:,13) ! -!PTERMS(OH,K061) = -K061*<ARO>*<OH> - PTERMS(:,14,61) = -TPK%K061(:)*PCONC(:,21)*PCONC(:,14) +!PTERMS(WR_SO2,KTR14) = +KTR14*<SO2> + PTERMS(:,138,441) = +TPK%KTR14(:)*PCONC(:,13) ! -!PTERMS(HO2,K061) = +0.10318*K061*<ARO>*<OH> - PTERMS(:,15,61) = +0.10318*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) +!PTERMS(H2SO4,KTR15) = -KTR15*<H2SO4> + PTERMS(:,14,442) = -TPK%KTR15(:)*PCONC(:,14) ! -!PTERMS(ARO,K061) = -K061*<ARO>*<OH> - PTERMS(:,21,61) = -TPK%K061(:)*PCONC(:,21)*PCONC(:,14) +!PTERMS(WR_H2SO4,KTR15) = +KTR15*<H2SO4> + PTERMS(:,139,442) = +TPK%KTR15(:)*PCONC(:,14) ! -!PTERMS(PHO,K061) = +0.00276*K061*<ARO>*<OH> - PTERMS(:,36,61) = +0.00276*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) +!PTERMS(RO21,KTR16) = -KTR16*<RO21> + PTERMS(:,86,443) = -TPK%KTR16(:)*PCONC(:,86) ! ! RETURN -END SUBROUTINE SUBT8 +END SUBROUTINE SUBT66 ! -SUBROUTINE SUBT9 +SUBROUTINE SUBT67 ! -!Indices 181 a 200 +!Indices 1341 a 1360 ! -!PTERMS(ADD,K061) = +0.93968*K061*<ARO>*<OH> - PTERMS(:,37,61) = +0.93968*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) +!PTERMS(WR_RO21,KTR16) = +KTR16*<RO21> + PTERMS(:,140,443) = +TPK%KTR16(:)*PCONC(:,86) ! -!PTERMS(XO2,K061) = +0.10318*K061*<ARO>*<OH> - PTERMS(:,41,61) = +0.10318*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) +!PTERMS(RO25,KTR17) = -KTR17*<RO25> + PTERMS(:,87,444) = -TPK%KTR17(:)*PCONC(:,87) ! -!PTERMS(CO,K062) = +K062*<HCHO>*<OH> - PTERMS(:,13,62) = +TPK%K062(:)*PCONC(:,22)*PCONC(:,14) +!PTERMS(WR_RO25,KTR17) = +KTR17*<RO25> + PTERMS(:,141,444) = +TPK%KTR17(:)*PCONC(:,87) ! -!PTERMS(OH,K062) = -K062*<HCHO>*<OH> - PTERMS(:,14,62) = -TPK%K062(:)*PCONC(:,22)*PCONC(:,14) +!PTERMS(MEOH,KTR18) = -KTR18*<MEOH> + PTERMS(:,32,445) = -TPK%KTR18(:)*PCONC(:,32) ! -!PTERMS(HO2,K062) = +K062*<HCHO>*<OH> - PTERMS(:,15,62) = +TPK%K062(:)*PCONC(:,22)*PCONC(:,14) +!PTERMS(WR_MEOH,KTR18) = +KTR18*<MEOH> + PTERMS(:,142,445) = +TPK%KTR18(:)*PCONC(:,32) ! -!PTERMS(HCHO,K062) = -K062*<HCHO>*<OH> - PTERMS(:,22,62) = -TPK%K062(:)*PCONC(:,22)*PCONC(:,14) +!PTERMS(ETOH,KTR19) = -KTR19*<ETOH> + PTERMS(:,33,446) = -TPK%KTR19(:)*PCONC(:,33) ! -!PTERMS(OH,K063) = -K063*<ALD>*<OH> - PTERMS(:,14,63) = -TPK%K063(:)*PCONC(:,23)*PCONC(:,14) +!PTERMS(WR_ETOH,KTR19) = +KTR19*<ETOH> + PTERMS(:,143,446) = +TPK%KTR19(:)*PCONC(:,33) ! -!PTERMS(ALD,K063) = -K063*<ALD>*<OH> - PTERMS(:,23,63) = -TPK%K063(:)*PCONC(:,23)*PCONC(:,14) +!PTERMS(ALCH,KTR20) = -KTR20*<ALCH> + PTERMS(:,34,447) = -TPK%KTR20(:)*PCONC(:,34) ! -!PTERMS(CARBOP,K063) = +1.00000*K063*<ALD>*<OH> - PTERMS(:,39,63) = +1.00000*TPK%K063(:)*PCONC(:,23)*PCONC(:,14) +!PTERMS(WR_ALCH,KTR20) = +KTR20*<ALCH> + PTERMS(:,144,447) = +TPK%KTR20(:)*PCONC(:,34) ! -!PTERMS(OH,K064) = -K064*<KET>*<OH> - PTERMS(:,14,64) = -TPK%K064(:)*PCONC(:,24)*PCONC(:,14) +!PTERMS(HCHO,KTR21) = -KTR21*<HCHO> + PTERMS(:,28,448) = -TPK%KTR21(:)*PCONC(:,28) ! -!PTERMS(KET,K064) = -K064*<KET>*<OH> - PTERMS(:,24,64) = -TPK%K064(:)*PCONC(:,24)*PCONC(:,14) +!PTERMS(WR_HCHO,KTR21) = +KTR21*<HCHO> + PTERMS(:,145,448) = +TPK%KTR21(:)*PCONC(:,28) ! -!PTERMS(CARBOP,K064) = +1.00000*K064*<KET>*<OH> - PTERMS(:,39,64) = +1.00000*TPK%K064(:)*PCONC(:,24)*PCONC(:,14) +!PTERMS(ALD2,KTR22) = -KTR22*<ALD2> + PTERMS(:,29,449) = -TPK%KTR22(:)*PCONC(:,29) ! -!PTERMS(CO,K065) = +1.01732*K065*<CARBO>*<OH> - PTERMS(:,13,65) = +1.01732*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(WR_ALD2,KTR22) = +KTR22*<ALD2> + PTERMS(:,146,449) = +TPK%KTR22(:)*PCONC(:,29) ! -!PTERMS(OH,K065) = -K065*<CARBO>*<OH> - PTERMS(:,14,65) = -TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(GLY,KTR23) = -KTR23*<GLY> + PTERMS(:,42,450) = -TPK%KTR23(:)*PCONC(:,42) ! -!PTERMS(HO2,K065) = +0.51208*K065*<CARBO>*<OH> - PTERMS(:,15,65) = +0.51208*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(WR_GLY,KTR23) = +KTR23*<GLY> + PTERMS(:,147,450) = +TPK%KTR23(:)*PCONC(:,42) ! -!PTERMS(HCHO,K065) = +0.00000*K065*<CARBO>*<OH> - PTERMS(:,22,65) = +0.00000*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(KETL,KTR24) = -KTR24*<KETL> + PTERMS(:,30,451) = -TPK%KTR24(:)*PCONC(:,30) ! -!PTERMS(ALD,K065) = +0.06253*K065*<CARBO>*<OH> - PTERMS(:,23,65) = +0.06253*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(WR_KETL,KTR24) = +KTR24*<KETL> + PTERMS(:,149,451) = +TPK%KTR24(:)*PCONC(:,30) ! -!PTERMS(KET,K065) = +0.00853*K065*<CARBO>*<OH> - PTERMS(:,24,65) = +0.00853*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(MGLY,KTR25) = -KTR25*<MGLY> + PTERMS(:,41,452) = -TPK%KTR25(:)*PCONC(:,41) ! -!PTERMS(CARBO,K065) = -K065*<CARBO>*<OH> - PTERMS(:,25,65) = -TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(WR_MGLY,KTR25) = +KTR25*<MGLY> + PTERMS(:,148,452) = +TPK%KTR25(:)*PCONC(:,41) ! -!PTERMS(CARBOP,K065) = +0.51419*K065*<CARBO>*<OH> - PTERMS(:,39,65) = +0.51419*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(ORA1,KTR26) = -KTR26*<ORA1> + PTERMS(:,43,453) = -TPK%KTR26(:)*PCONC(:,43) ! ! RETURN -END SUBROUTINE SUBT9 +END SUBROUTINE SUBT67 ! -SUBROUTINE SUBT10 +SUBROUTINE SUBT68 ! -!Indices 201 a 220 +!Indices 1361 a 1380 ! -!PTERMS(XO2,K065) = +0.10162*K065*<CARBO>*<OH> - PTERMS(:,41,65) = +0.10162*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) +!PTERMS(WR_ORA1,KTR26) = +KTR26*<ORA1> + PTERMS(:,150,453) = +TPK%KTR26(:)*PCONC(:,43) ! -!PTERMS(OH,K066) = -K066*<ORA1>*<OH> - PTERMS(:,14,66) = -TPK%K066(:)*PCONC(:,30)*PCONC(:,14) +!PTERMS(ORA2,KTR27) = -KTR27*<ORA2> + PTERMS(:,44,454) = -TPK%KTR27(:)*PCONC(:,44) ! -!PTERMS(HO2,K066) = +K066*<ORA1>*<OH> - PTERMS(:,15,66) = +TPK%K066(:)*PCONC(:,30)*PCONC(:,14) +!PTERMS(WR_ORA2,KTR27) = +KTR27*<ORA2> + PTERMS(:,151,454) = +TPK%KTR27(:)*PCONC(:,44) ! -!PTERMS(ORA1,K066) = -K066*<ORA1>*<OH> - PTERMS(:,30,66) = -TPK%K066(:)*PCONC(:,30)*PCONC(:,14) +!PTERMS(ACID,KTR28) = -KTR28*<ACID> + PTERMS(:,45,455) = -TPK%KTR28(:)*PCONC(:,45) ! -!PTERMS(OH,K067) = -K067*<ORA2>*<OH> - PTERMS(:,14,67) = -TPK%K067(:)*PCONC(:,31)*PCONC(:,14) +!PTERMS(WR_ACID,KTR28) = +KTR28*<ACID> + PTERMS(:,152,455) = +TPK%KTR28(:)*PCONC(:,45) ! -!PTERMS(ORA2,K067) = -K067*<ORA2>*<OH> - PTERMS(:,31,67) = -TPK%K067(:)*PCONC(:,31)*PCONC(:,14) +!PTERMS(RP16,KTR29) = -KTR29*<RP16> + PTERMS(:,74,456) = -TPK%KTR29(:)*PCONC(:,74) ! -!PTERMS(OH,K068) = -K068*<OP1>*<OH> - PTERMS(:,14,68) = -TPK%K068(:)*PCONC(:,28)*PCONC(:,14) +!PTERMS(WR_RP16,KTR29) = +KTR29*<RP16> + PTERMS(:,153,456) = +TPK%KTR29(:)*PCONC(:,74) ! -!PTERMS(HCHO,K068) = +0.35*K068*<OP1>*<OH> - PTERMS(:,22,68) = +0.35*TPK%K068(:)*PCONC(:,28)*PCONC(:,14) +!PTERMS(UR21,KTR30) = -KTR30*<UR21> + PTERMS(:,47,457) = -TPK%KTR30(:)*PCONC(:,47) ! -!PTERMS(OP1,K068) = -K068*<OP1>*<OH> - PTERMS(:,28,68) = -TPK%K068(:)*PCONC(:,28)*PCONC(:,14) +!PTERMS(WR_UR21,KTR30) = +KTR30*<UR21> + PTERMS(:,154,457) = +TPK%KTR30(:)*PCONC(:,47) ! -!PTERMS(MO2,K068) = +0.65*K068*<OP1>*<OH> - PTERMS(:,32,68) = +0.65*TPK%K068(:)*PCONC(:,28)*PCONC(:,14) +!PTERMS(UR28,KTR31) = -KTR31*<UR28> + PTERMS(:,46,458) = -TPK%KTR31(:)*PCONC(:,46) ! -!PTERMS(OH,K069) = -K069*<OP2>*<OH> - PTERMS(:,14,69) = -TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(WR_UR28,KTR31) = +KTR31*<UR28> + PTERMS(:,155,458) = +TPK%KTR31(:)*PCONC(:,46) ! -!PTERMS(HO2,K069) = +0.02915*K069*<OP2>*<OH> - PTERMS(:,15,69) = +0.02915*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(O3,KTR32) = +KTR32*<WR_O3> + PTERMS(:,3,459) = +TPK%KTR32(:)*PCONC(:,125) ! -!PTERMS(HCHO,K069) = +0.02915*K069*<OP2>*<OH> - PTERMS(:,22,69) = +0.02915*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(WR_O3,KTR32) = -KTR32*<WR_O3> + PTERMS(:,125,459) = -TPK%KTR32(:)*PCONC(:,125) ! -!PTERMS(ALD,K069) = +0.07335*K069*<OP2>*<OH> - PTERMS(:,23,69) = +0.07335*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(H2O2,KTR33) = +KTR33*<WR_H2O2> + PTERMS(:,12,460) = +TPK%KTR33(:)*PCONC(:,126) ! -!PTERMS(KET,K069) = +0.37591*K069*<OP2>*<OH> - PTERMS(:,24,69) = +0.37591*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(WR_H2O2,KTR33) = -KTR33*<WR_H2O2> + PTERMS(:,126,460) = -TPK%KTR33(:)*PCONC(:,126) ! -!PTERMS(OP2,K069) = -K069*<OP2>*<OH> - PTERMS(:,29,69) = -TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(NO,KTR34) = +KTR34*<WR_NO> + PTERMS(:,1,461) = +TPK%KTR34(:)*PCONC(:,127) ! -!PTERMS(ALKAP,K069) = +0.40341*K069*<OP2>*<OH> - PTERMS(:,33,69) = +0.40341*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(WR_NO,KTR34) = -KTR34*<WR_NO> + PTERMS(:,127,461) = -TPK%KTR34(:)*PCONC(:,127) ! -!PTERMS(CARBOP,K069) = +0.05413*K069*<OP2>*<OH> - PTERMS(:,39,69) = +0.05413*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(NO2,KTR35) = +KTR35*<WR_NO2> + PTERMS(:,2,462) = +TPK%KTR35(:)*PCONC(:,128) ! -!PTERMS(XO2,K069) = +0.09333*K069*<OP2>*<OH> - PTERMS(:,41,69) = +0.09333*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) +!PTERMS(WR_NO2,KTR35) = -KTR35*<WR_NO2> + PTERMS(:,128,462) = -TPK%KTR35(:)*PCONC(:,128) ! -!PTERMS(NO3,K070) = +0.71893*K070*<PAN>*<OH> - PTERMS(:,5,70) = +0.71893*TPK%K070(:)*PCONC(:,27)*PCONC(:,14) +!PTERMS(NO3,KTR36) = +KTR36*<WR_NO3> + PTERMS(:,8,463) = +TPK%KTR36(:)*PCONC(:,129) ! ! RETURN -END SUBROUTINE SUBT10 +END SUBROUTINE SUBT68 ! -SUBROUTINE SUBT11 +SUBROUTINE SUBT69 ! -!Indices 221 a 240 +!Indices 1381 a 1400 ! -!PTERMS(OH,K070) = -K070*<PAN>*<OH> - PTERMS(:,14,70) = -TPK%K070(:)*PCONC(:,27)*PCONC(:,14) +!PTERMS(WR_NO3,KTR36) = -KTR36*<WR_NO3> + PTERMS(:,129,463) = -TPK%KTR36(:)*PCONC(:,129) ! -!PTERMS(HO2,K070) = +0.28107*K070*<PAN>*<OH> - PTERMS(:,15,70) = +0.28107*TPK%K070(:)*PCONC(:,27)*PCONC(:,14) +!PTERMS(N2O5,KTR37) = +KTR37*<WR_N2O5> + PTERMS(:,7,464) = +TPK%KTR37(:)*PCONC(:,130) ! -!PTERMS(HCHO,K070) = +0.57839*K070*<PAN>*<OH> - PTERMS(:,22,70) = +0.57839*TPK%K070(:)*PCONC(:,27)*PCONC(:,14) +!PTERMS(WR_N2O5,KTR37) = -KTR37*<WR_N2O5> + PTERMS(:,130,464) = -TPK%KTR37(:)*PCONC(:,130) ! -!PTERMS(CARBO,K070) = +0.21863*K070*<PAN>*<OH> - PTERMS(:,25,70) = +0.21863*TPK%K070(:)*PCONC(:,27)*PCONC(:,14) +!PTERMS(HONO,KTR38) = +KTR38*<WR_HONO> + PTERMS(:,4,465) = +TPK%KTR38(:)*PCONC(:,131) ! -!PTERMS(PAN,K070) = -K070*<PAN>*<OH> - PTERMS(:,27,70) = -TPK%K070(:)*PCONC(:,27)*PCONC(:,14) +!PTERMS(WR_HONO,KTR38) = -KTR38*<WR_HONO> + PTERMS(:,131,465) = -TPK%KTR38(:)*PCONC(:,131) ! -!PTERMS(XO2,K070) = +K070*<PAN>*<OH> - PTERMS(:,41,70) = +TPK%K070(:)*PCONC(:,27)*PCONC(:,14) +!PTERMS(HNO3,KTR39) = +KTR39*<WR_HNO3> + PTERMS(:,5,466) = +TPK%KTR39(:)*PCONC(:,132) ! -!PTERMS(NO2,K071) = +K071*<ONIT>*<OH> - PTERMS(:,4,71) = +TPK%K071(:)*PCONC(:,26)*PCONC(:,14) +!PTERMS(WR_HNO3,KTR39) = -KTR39*<WR_HNO3> + PTERMS(:,132,466) = -TPK%KTR39(:)*PCONC(:,132) ! -!PTERMS(OH,K071) = -K071*<ONIT>*<OH> - PTERMS(:,14,71) = -TPK%K071(:)*PCONC(:,26)*PCONC(:,14) +!PTERMS(HNO4,KTR40) = +KTR40*<WR_HNO4> + PTERMS(:,6,467) = +TPK%KTR40(:)*PCONC(:,133) ! -!PTERMS(ONIT,K071) = -K071*<ONIT>*<OH> - PTERMS(:,26,71) = -TPK%K071(:)*PCONC(:,26)*PCONC(:,14) +!PTERMS(WR_HNO4,KTR40) = -KTR40*<WR_HNO4> + PTERMS(:,133,467) = -TPK%KTR40(:)*PCONC(:,133) ! -!PTERMS(ALKAP,K071) = +1.00000*K071*<ONIT>*<OH> - PTERMS(:,33,71) = +1.00000*TPK%K071(:)*PCONC(:,26)*PCONC(:,14) +!PTERMS(NH3,KTR41) = +KTR41*<WR_NH3> + PTERMS(:,9,468) = +TPK%KTR41(:)*PCONC(:,134) ! -!PTERMS(NO3,K072) = -K072*<HCHO>*<NO3> - PTERMS(:,5,72) = -TPK%K072(:)*PCONC(:,22)*PCONC(:,5) +!PTERMS(WR_NH3,KTR41) = -KTR41*<WR_NH3> + PTERMS(:,134,468) = -TPK%KTR41(:)*PCONC(:,134) ! -!PTERMS(HNO3,K072) = +K072*<HCHO>*<NO3> - PTERMS(:,8,72) = +TPK%K072(:)*PCONC(:,22)*PCONC(:,5) +!PTERMS(OH,KTR42) = +KTR42*<WR_OH> + PTERMS(:,15,469) = +TPK%KTR42(:)*PCONC(:,135) ! -!PTERMS(CO,K072) = +K072*<HCHO>*<NO3> - PTERMS(:,13,72) = +TPK%K072(:)*PCONC(:,22)*PCONC(:,5) +!PTERMS(WR_OH,KTR42) = -KTR42*<WR_OH> + PTERMS(:,135,469) = -TPK%KTR42(:)*PCONC(:,135) ! -!PTERMS(HO2,K072) = +K072*<HCHO>*<NO3> - PTERMS(:,15,72) = +TPK%K072(:)*PCONC(:,22)*PCONC(:,5) +!PTERMS(HO2,KTR43) = +KTR43*<WR_HO2> + PTERMS(:,10,470) = +TPK%KTR43(:)*PCONC(:,136) ! -!PTERMS(HCHO,K072) = -K072*<HCHO>*<NO3> - PTERMS(:,22,72) = -TPK%K072(:)*PCONC(:,22)*PCONC(:,5) +!PTERMS(WR_HO2,KTR43) = -KTR43*<WR_HO2> + PTERMS(:,136,470) = -TPK%KTR43(:)*PCONC(:,136) ! -!PTERMS(NO3,K073) = -K073*<ALD>*<NO3> - PTERMS(:,5,73) = -TPK%K073(:)*PCONC(:,23)*PCONC(:,5) +!PTERMS(WR_CO2,KTR44) = -KTR44*<WR_CO2> + PTERMS(:,137,471) = -TPK%KTR44(:)*PCONC(:,137) ! -!PTERMS(HNO3,K073) = +K073*<ALD>*<NO3> - PTERMS(:,8,73) = +TPK%K073(:)*PCONC(:,23)*PCONC(:,5) +!PTERMS(SO2,KTR45) = +KTR45*<WR_SO2> + PTERMS(:,13,472) = +TPK%KTR45(:)*PCONC(:,138) ! -!PTERMS(ALD,K073) = -K073*<ALD>*<NO3> - PTERMS(:,23,73) = -TPK%K073(:)*PCONC(:,23)*PCONC(:,5) +!PTERMS(WR_SO2,KTR45) = -KTR45*<WR_SO2> + PTERMS(:,138,472) = -TPK%KTR45(:)*PCONC(:,138) ! -!PTERMS(CARBOP,K073) = +1.00000*K073*<ALD>*<NO3> - PTERMS(:,39,73) = +1.00000*TPK%K073(:)*PCONC(:,23)*PCONC(:,5) +!PTERMS(H2SO4,KTR46) = +KTR46*<WR_H2SO4> + PTERMS(:,14,473) = +TPK%KTR46(:)*PCONC(:,139) ! -!PTERMS(NO2,K074) = +0.10530*K074*<CARBO>*<NO3> - PTERMS(:,4,74) = +0.10530*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(WR_H2SO4,KTR46) = -KTR46*<WR_H2SO4> + PTERMS(:,139,473) = -TPK%KTR46(:)*PCONC(:,139) ! ! RETURN -END SUBROUTINE SUBT11 +END SUBROUTINE SUBT69 ! -SUBROUTINE SUBT12 +SUBROUTINE SUBT70 ! -!Indices 241 a 260 +!Indices 1401 a 1420 ! -!PTERMS(NO3,K074) = -K074*<CARBO>*<NO3> - PTERMS(:,5,74) = -TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(RO21,KTR47) = +KTR47*<WR_RO21> + PTERMS(:,86,474) = +TPK%KTR47(:)*PCONC(:,140) ! -!PTERMS(HNO3,K074) = +0.91567*K074*<CARBO>*<NO3> - PTERMS(:,8,74) = +0.91567*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(WR_RO21,KTR47) = -KTR47*<WR_RO21> + PTERMS(:,140,474) = -TPK%KTR47(:)*PCONC(:,140) ! -!PTERMS(CO,K074) = +1.33723*K074*<CARBO>*<NO3> - PTERMS(:,13,74) = +1.33723*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(RO25,KTR48) = +KTR48*<WR_RO25> + PTERMS(:,87,475) = +TPK%KTR48(:)*PCONC(:,141) ! -!PTERMS(HO2,K074) = +0.63217*K074*<CARBO>*<NO3> - PTERMS(:,15,74) = +0.63217*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(WR_RO25,KTR48) = -KTR48*<WR_RO25> + PTERMS(:,141,475) = -TPK%KTR48(:)*PCONC(:,141) ! -!PTERMS(ALD,K074) = +0.05265*K074*<CARBO>*<NO3> - PTERMS(:,23,74) = +0.05265*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(MEOH,KTR49) = +KTR49*<WR_MEOH> + PTERMS(:,32,476) = +TPK%KTR49(:)*PCONC(:,142) ! -!PTERMS(KET,K074) = +0.00632*K074*<CARBO>*<NO3> - PTERMS(:,24,74) = +0.00632*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(WR_MEOH,KTR49) = -KTR49*<WR_MEOH> + PTERMS(:,142,476) = -TPK%KTR49(:)*PCONC(:,142) ! -!PTERMS(CARBO,K074) = -K074*<CARBO>*<NO3> - PTERMS(:,25,74) = -TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(ETOH,KTR50) = +KTR50*<WR_ETOH> + PTERMS(:,33,477) = +TPK%KTR50(:)*PCONC(:,143) ! -!PTERMS(CARBOP,K074) = +0.38881*K074*<CARBO>*<NO3> - PTERMS(:,39,74) = +0.38881*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(WR_ETOH,KTR50) = -KTR50*<WR_ETOH> + PTERMS(:,143,477) = -TPK%KTR50(:)*PCONC(:,143) ! -!PTERMS(OLN,K074) = +0.00000*K074*<CARBO>*<NO3> - PTERMS(:,40,74) = +0.00000*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(ALCH,KTR51) = +KTR51*<WR_ALCH> + PTERMS(:,34,478) = +TPK%KTR51(:)*PCONC(:,144) ! -!PTERMS(XO2,K074) = +0.10530*K074*<CARBO>*<NO3> - PTERMS(:,41,74) = +0.10530*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) +!PTERMS(WR_ALCH,KTR51) = -KTR51*<WR_ALCH> + PTERMS(:,144,478) = -TPK%KTR51(:)*PCONC(:,144) ! -!PTERMS(NO3,K075) = -K075*<ARO>*<NO3> - PTERMS(:,5,75) = -TPK%K075(:)*PCONC(:,21)*PCONC(:,5) +!PTERMS(HCHO,KTR52) = +KTR52*<WR_HCHO> + PTERMS(:,28,479) = +TPK%KTR52(:)*PCONC(:,145) ! -!PTERMS(HNO3,K075) = +K075*<ARO>*<NO3> - PTERMS(:,8,75) = +TPK%K075(:)*PCONC(:,21)*PCONC(:,5) +!PTERMS(WR_HCHO,KTR52) = -KTR52*<WR_HCHO> + PTERMS(:,145,479) = -TPK%KTR52(:)*PCONC(:,145) ! -!PTERMS(ARO,K075) = -K075*<ARO>*<NO3> - PTERMS(:,21,75) = -TPK%K075(:)*PCONC(:,21)*PCONC(:,5) +!PTERMS(ALD2,KTR53) = +KTR53*<WR_ALD2> + PTERMS(:,29,480) = +TPK%KTR53(:)*PCONC(:,146) ! -!PTERMS(PHO,K075) = +K075*<ARO>*<NO3> - PTERMS(:,36,75) = +TPK%K075(:)*PCONC(:,21)*PCONC(:,5) +!PTERMS(WR_ALD2,KTR53) = -KTR53*<WR_ALD2> + PTERMS(:,146,480) = -TPK%KTR53(:)*PCONC(:,146) ! -!PTERMS(NO3,K076) = -K076*<ALKE>*<NO3> - PTERMS(:,5,76) = -TPK%K076(:)*PCONC(:,19)*PCONC(:,5) +!PTERMS(GLY,KTR54) = +KTR54*<WR_GLY> + PTERMS(:,42,481) = +TPK%KTR54(:)*PCONC(:,147) ! -!PTERMS(ALKE,K076) = -K076*<ALKE>*<NO3> - PTERMS(:,19,76) = -TPK%K076(:)*PCONC(:,19)*PCONC(:,5) +!PTERMS(WR_GLY,KTR54) = -KTR54*<WR_GLY> + PTERMS(:,147,481) = -TPK%KTR54(:)*PCONC(:,147) ! -!PTERMS(CARBO,K076) = +0.00000*K076*<ALKE>*<NO3> - PTERMS(:,25,76) = +0.00000*TPK%K076(:)*PCONC(:,19)*PCONC(:,5) +!PTERMS(KETL,KTR55) = +KTR55*<WR_KETL> + PTERMS(:,30,482) = +TPK%KTR55(:)*PCONC(:,149) ! -!PTERMS(OLN,K076) = +0.93768*K076*<ALKE>*<NO3> - PTERMS(:,40,76) = +0.93768*TPK%K076(:)*PCONC(:,19)*PCONC(:,5) +!PTERMS(WR_KETL,KTR55) = -KTR55*<WR_KETL> + PTERMS(:,149,482) = -TPK%KTR55(:)*PCONC(:,149) ! -!PTERMS(NO3,K077) = -K077*<BIO>*<NO3> - PTERMS(:,5,77) = -TPK%K077(:)*PCONC(:,20)*PCONC(:,5) +!PTERMS(MGLY,KTR56) = +KTR56*<WR_MGLY> + PTERMS(:,41,483) = +TPK%KTR56(:)*PCONC(:,148) ! -!PTERMS(BIO,K077) = -K077*<BIO>*<NO3> - PTERMS(:,20,77) = -TPK%K077(:)*PCONC(:,20)*PCONC(:,5) +!PTERMS(WR_MGLY,KTR56) = -KTR56*<WR_MGLY> + PTERMS(:,148,483) = -TPK%KTR56(:)*PCONC(:,148) ! ! RETURN -END SUBROUTINE SUBT12 +END SUBROUTINE SUBT70 ! -SUBROUTINE SUBT13 +SUBROUTINE SUBT71 ! -!Indices 261 a 280 +!Indices 1421 a 1440 ! -!PTERMS(CARBO,K077) = +0.91741*K077*<BIO>*<NO3> - PTERMS(:,25,77) = +0.91741*TPK%K077(:)*PCONC(:,20)*PCONC(:,5) +!PTERMS(ORA1,KTR57) = +KTR57*<WR_ORA1> + PTERMS(:,43,484) = +TPK%KTR57(:)*PCONC(:,150) ! -!PTERMS(OLN,K077) = +1.00000*K077*<BIO>*<NO3> - PTERMS(:,40,77) = +1.00000*TPK%K077(:)*PCONC(:,20)*PCONC(:,5) +!PTERMS(WR_ORA1,KTR57) = -KTR57*<WR_ORA1> + PTERMS(:,150,484) = -TPK%KTR57(:)*PCONC(:,150) ! -!PTERMS(NO2,K078) = +0.40*K078*<PAN>*<NO3> - PTERMS(:,4,78) = +0.40*TPK%K078(:)*PCONC(:,27)*PCONC(:,5) +!PTERMS(ORA2,KTR58) = +KTR58*<WR_ORA2> + PTERMS(:,44,485) = +TPK%KTR58(:)*PCONC(:,151) ! -!PTERMS(NO3,K078) = -K078*<PAN>*<NO3> - PTERMS(:,5,78) = -TPK%K078(:)*PCONC(:,27)*PCONC(:,5) +!PTERMS(WR_ORA2,KTR58) = -KTR58*<WR_ORA2> + PTERMS(:,151,485) = -TPK%KTR58(:)*PCONC(:,151) ! -!PTERMS(HCHO,K078) = +0.40*K078*<PAN>*<NO3> - PTERMS(:,22,78) = +0.40*TPK%K078(:)*PCONC(:,27)*PCONC(:,5) +!PTERMS(ACID,KTR59) = +KTR59*<WR_ACID> + PTERMS(:,45,486) = +TPK%KTR59(:)*PCONC(:,152) ! -!PTERMS(ONIT,K078) = +0.60*K078*<PAN>*<NO3> - PTERMS(:,26,78) = +0.60*TPK%K078(:)*PCONC(:,27)*PCONC(:,5) +!PTERMS(WR_ACID,KTR59) = -KTR59*<WR_ACID> + PTERMS(:,152,486) = -TPK%KTR59(:)*PCONC(:,152) ! -!PTERMS(PAN,K078) = -K078*<PAN>*<NO3> - PTERMS(:,27,78) = -TPK%K078(:)*PCONC(:,27)*PCONC(:,5) +!PTERMS(RP16,KTR60) = +KTR60*<WR_RP16> + PTERMS(:,74,487) = +TPK%KTR60(:)*PCONC(:,153) ! -!PTERMS(XO2,K078) = +K078*<PAN>*<NO3> - PTERMS(:,41,78) = +TPK%K078(:)*PCONC(:,27)*PCONC(:,5) +!PTERMS(WR_RP16,KTR60) = -KTR60*<WR_RP16> + PTERMS(:,153,487) = -TPK%KTR60(:)*PCONC(:,153) ! -!PTERMS(O3,K079) = -K079*<ALKE>*<O3> - PTERMS(:,1,79) = -TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(UR21,KTR61) = +KTR61*<WR_UR21> + PTERMS(:,47,488) = +TPK%KTR61(:)*PCONC(:,154) ! -!PTERMS(H2O2,K079) = +0.01833*K079*<ALKE>*<O3> - PTERMS(:,2,79) = +0.01833*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(WR_UR21,KTR61) = -KTR61*<WR_UR21> + PTERMS(:,154,488) = -TPK%KTR61(:)*PCONC(:,154) ! -!PTERMS(CO,K079) = +0.35120*K079*<ALKE>*<O3> - PTERMS(:,13,79) = +0.35120*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(UR28,KTR62) = +KTR62*<WR_UR28> + PTERMS(:,46,489) = +TPK%KTR62(:)*PCONC(:,155) ! -!PTERMS(OH,K079) = +0.39435*K079*<ALKE>*<O3> - PTERMS(:,14,79) = +0.39435*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(WR_UR28,KTR62) = -KTR62*<WR_UR28> + PTERMS(:,155,489) = -TPK%KTR62(:)*PCONC(:,155) ! -!PTERMS(HO2,K079) = +0.23451*K079*<ALKE>*<O3> - PTERMS(:,15,79) = +0.23451*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(WC_H2O2,KC1) = -KC1*<WC_H2O2> + PTERMS(:,89,490) = -TPK%KC1(:)*PCONC(:,89) ! -!PTERMS(CH4,K079) = +0.04300*K079*<ALKE>*<O3> - PTERMS(:,16,79) = +0.04300*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(WC_OH,KC1) = +KC1*<WC_H2O2> + PTERMS(:,98,490) = +TPK%KC1(:)*PCONC(:,89) ! -!PTERMS(ETH,K079) = +0.03196*K079*<ALKE>*<O3> - PTERMS(:,17,79) = +0.03196*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(WC_H2O2,KC2) = +KC2*<WC_OH>*<WC_OH> + PTERMS(:,89,491) = +TPK%KC2(:)*PCONC(:,98)*PCONC(:,98) ! -!PTERMS(ALKE,K079) = -K079*<ALKE>*<O3> - PTERMS(:,19,79) = -TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(WC_OH,KC2) = -KC2*<WC_OH>*<WC_OH> + PTERMS(:,98,491) = -TPK%KC2(:)*PCONC(:,98)*PCONC(:,98) ! -!PTERMS(HCHO,K079) = +0.48290*K079*<ALKE>*<O3> - PTERMS(:,22,79) = +0.48290*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(WC_OH,KC3) = -KC3*<WC_HO2>*<WC_OH> + PTERMS(:,98,492) = -TPK%KC3(:)*PCONC(:,99)*PCONC(:,98) ! -!PTERMS(ALD,K079) = +0.51468*K079*<ALKE>*<O3> - PTERMS(:,23,79) = +0.51468*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(WC_HO2,KC3) = -KC3*<WC_HO2>*<WC_OH> + PTERMS(:,99,492) = -TPK%KC3(:)*PCONC(:,99)*PCONC(:,98) ! -!PTERMS(KET,K079) = +0.07377*K079*<ALKE>*<O3> - PTERMS(:,24,79) = +0.07377*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(WC_H2O2,KC4) = -KC4*<WC_OH>*<WC_H2O2> + PTERMS(:,89,493) = -TPK%KC4(:)*PCONC(:,98)*PCONC(:,89) ! -!PTERMS(CARBO,K079) = +0.00000*K079*<ALKE>*<O3> - PTERMS(:,25,79) = +0.00000*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(WC_OH,KC4) = -KC4*<WC_OH>*<WC_H2O2> + PTERMS(:,98,493) = -TPK%KC4(:)*PCONC(:,98)*PCONC(:,89) ! ! RETURN -END SUBROUTINE SUBT13 +END SUBROUTINE SUBT71 ! -SUBROUTINE SUBT14 +SUBROUTINE SUBT72 ! -!Indices 281 a 300 +!Indices 1441 a 1460 ! -!PTERMS(ORA1,K079) = +0.15343*K079*<ALKE>*<O3> - PTERMS(:,30,79) = +0.15343*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(WC_HO2,KC4) = +KC4*<WC_OH>*<WC_H2O2> + PTERMS(:,99,493) = +TPK%KC4(:)*PCONC(:,98)*PCONC(:,89) ! -!PTERMS(ORA2,K079) = +0.08143*K079*<ALKE>*<O3> - PTERMS(:,31,79) = +0.08143*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(WC_H2O2,KC5) = +KC5*<WC_HO2>*<WC_HO2> + PTERMS(:,89,494) = +TPK%KC5(:)*PCONC(:,99)*PCONC(:,99) ! -!PTERMS(MO2,K079) = +0.13966*K079*<ALKE>*<O3> - PTERMS(:,32,79) = +0.13966*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(WC_HO2,KC5) = -KC5*<WC_HO2>*<WC_HO2> + PTERMS(:,99,494) = -TPK%KC5(:)*PCONC(:,99)*PCONC(:,99) ! -!PTERMS(ALKAP,K079) = +0.09815*K079*<ALKE>*<O3> - PTERMS(:,33,79) = +0.09815*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(WC_O3,KC6) = -KC6*<WC_HO2>*<WC_O3> + PTERMS(:,88,495) = -TPK%KC6(:)*PCONC(:,99)*PCONC(:,88) ! -!PTERMS(CARBOP,K079) = +0.05705*K079*<ALKE>*<O3> - PTERMS(:,39,79) = +0.05705*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(WC_OH,KC6) = +KC6*<WC_HO2>*<WC_O3> + PTERMS(:,98,495) = +TPK%KC6(:)*PCONC(:,99)*PCONC(:,88) ! -!PTERMS(XO2,K079) = +0.00000*K079*<ALKE>*<O3> - PTERMS(:,41,79) = +0.00000*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PTERMS(WC_HO2,KC6) = -KC6*<WC_HO2>*<WC_O3> + PTERMS(:,99,495) = -TPK%KC6(:)*PCONC(:,99)*PCONC(:,88) ! -!PTERMS(O3,K080) = -K080*<BIO>*<O3> - PTERMS(:,1,80) = -TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_OH,KC7) = -KC7*<WC_SO2>*<WC_OH> + PTERMS(:,98,496) = -TPK%KC7(:)*PCONC(:,101)*PCONC(:,98) ! -!PTERMS(H2O2,K080) = +0.00100*K080*<BIO>*<O3> - PTERMS(:,2,80) = +0.00100*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_SO2,KC7) = -KC7*<WC_SO2>*<WC_OH> + PTERMS(:,101,496) = -TPK%KC7(:)*PCONC(:,101)*PCONC(:,98) ! -!PTERMS(CO,K080) = +0.36000*K080*<BIO>*<O3> - PTERMS(:,13,80) = +0.36000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_ASO3,KC7) = +KC7*<WC_SO2>*<WC_OH> + PTERMS(:,120,496) = +TPK%KC7(:)*PCONC(:,101)*PCONC(:,98) ! -!PTERMS(OH,K080) = +0.28000*K080*<BIO>*<O3> - PTERMS(:,14,80) = +0.28000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_NO2,KC8) = +KC8*<WC_OH>*<WC_HONO> + PTERMS(:,91,497) = +TPK%KC8(:)*PCONC(:,98)*PCONC(:,94) ! -!PTERMS(HO2,K080) = +0.30000*K080*<BIO>*<O3> - PTERMS(:,15,80) = +0.30000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_HONO,KC8) = -KC8*<WC_OH>*<WC_HONO> + PTERMS(:,94,497) = -TPK%KC8(:)*PCONC(:,98)*PCONC(:,94) ! -!PTERMS(ALKE,K080) = +0.37388*K080*<BIO>*<O3> - PTERMS(:,19,80) = +0.37388*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_OH,KC8) = -KC8*<WC_OH>*<WC_HONO> + PTERMS(:,98,497) = -TPK%KC8(:)*PCONC(:,98)*PCONC(:,94) ! -!PTERMS(BIO,K080) = -K080*<BIO>*<O3> - PTERMS(:,20,80) = -TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_NO2,KC9) = -KC9*<WC_HO2>*<WC_NO2> + PTERMS(:,91,498) = -TPK%KC9(:)*PCONC(:,99)*PCONC(:,91) ! -!PTERMS(HCHO,K080) = +0.90000*K080*<BIO>*<O3> - PTERMS(:,22,80) = +0.90000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_HNO4,KC9) = +KC9*<WC_HO2>*<WC_NO2> + PTERMS(:,96,498) = +TPK%KC9(:)*PCONC(:,99)*PCONC(:,91) ! -!PTERMS(ALD,K080) = +0.00000*K080*<BIO>*<O3> - PTERMS(:,23,80) = +0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_HO2,KC9) = -KC9*<WC_HO2>*<WC_NO2> + PTERMS(:,99,498) = -TPK%KC9(:)*PCONC(:,99)*PCONC(:,91) ! -!PTERMS(KET,K080) = +0.00000*K080*<BIO>*<O3> - PTERMS(:,24,80) = +0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_NO2,KC10) = +KC10*<WC_HNO4> + PTERMS(:,91,499) = +TPK%KC10(:)*PCONC(:,96) ! -!PTERMS(CARBO,K080) = +0.39754*K080*<BIO>*<O3> - PTERMS(:,25,80) = +0.39754*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_HNO4,KC10) = -KC10*<WC_HNO4> + PTERMS(:,96,499) = -TPK%KC10(:)*PCONC(:,96) ! -!PTERMS(ORA1,K080) = +0.15000*K080*<BIO>*<O3> - PTERMS(:,30,80) = +0.15000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_HO2,KC10) = +KC10*<WC_HNO4> + PTERMS(:,99,499) = +TPK%KC10(:)*PCONC(:,96) ! -!PTERMS(ORA2,K080) = +0.00000*K080*<BIO>*<O3> - PTERMS(:,31,80) = +0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_HONO,KC11) = +KC11*<WC_HNO4> + PTERMS(:,94,500) = +TPK%KC11(:)*PCONC(:,96) ! -!PTERMS(MO2,K080) = +0.03000*K080*<BIO>*<O3> - PTERMS(:,32,80) = +0.03000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_HNO4,KC11) = -KC11*<WC_HNO4> + PTERMS(:,96,500) = -TPK%KC11(:)*PCONC(:,96) ! ! RETURN -END SUBROUTINE SUBT14 +END SUBROUTINE SUBT72 ! -SUBROUTINE SUBT15 +SUBROUTINE SUBT73 ! -!Indices 301 a 320 +!Indices 1461 a 1480 ! -!PTERMS(ALKAP,K080) = +0.00000*K080*<BIO>*<O3> - PTERMS(:,33,80) = +0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_HNO3,KC12) = +KC12*<WC_SO2>*<WC_HNO4> + PTERMS(:,95,501) = +TPK%KC12(:)*PCONC(:,101)*PCONC(:,96) ! -!PTERMS(CARBOP,K080) = +0.17000*K080*<BIO>*<O3> - PTERMS(:,39,80) = +0.17000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_HNO4,KC12) = -KC12*<WC_SO2>*<WC_HNO4> + PTERMS(:,96,501) = -TPK%KC12(:)*PCONC(:,101)*PCONC(:,96) ! -!PTERMS(XO2,K080) = +0.13000*K080*<BIO>*<O3> - PTERMS(:,41,80) = +0.13000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) +!PTERMS(WC_SO2,KC12) = -KC12*<WC_SO2>*<WC_HNO4> + PTERMS(:,101,501) = -TPK%KC12(:)*PCONC(:,101)*PCONC(:,96) ! -!PTERMS(O3,K081) = -K081*<CARBO>*<O3> - PTERMS(:,1,81) = -TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(WC_H2SO4,KC12) = +KC12*<WC_SO2>*<WC_HNO4> + PTERMS(:,102,501) = +TPK%KC12(:)*PCONC(:,101)*PCONC(:,96) ! -!PTERMS(CO,K081) = +0.64728*K081*<CARBO>*<O3> - PTERMS(:,13,81) = +0.64728*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(WC_NO2,KC13) = +KC13*<WC_HNO3> + PTERMS(:,91,502) = +TPK%KC13(:)*PCONC(:,95) ! -!PTERMS(OH,K081) = +0.20595*K081*<CARBO>*<O3> - PTERMS(:,14,81) = +0.20595*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(WC_HNO3,KC13) = -KC13*<WC_HNO3> + PTERMS(:,95,502) = -TPK%KC13(:)*PCONC(:,95) ! -!PTERMS(HO2,K081) = +0.28441*K081*<CARBO>*<O3> - PTERMS(:,15,81) = +0.28441*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(WC_OH,KC13) = +KC13*<WC_HNO3> + PTERMS(:,98,502) = +TPK%KC13(:)*PCONC(:,95) ! -!PTERMS(HCHO,K081) = +0.00000*K081*<CARBO>*<O3> - PTERMS(:,22,81) = +0.00000*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(WC_N2O5,KC14) = -KC14*<WC_N2O5> + PTERMS(:,93,503) = -TPK%KC14(:)*PCONC(:,93) ! -!PTERMS(ALD,K081) = +0.15692*K081*<CARBO>*<O3> - PTERMS(:,23,81) = +0.15692*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(WC_HNO3,KC14) = +KC14*<WC_N2O5> + PTERMS(:,95,503) = +TPK%KC14(:)*PCONC(:,93) ! -!PTERMS(CARBO,K081) = -K081*<CARBO>*<O3> - PTERMS(:,25,81) = -TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(WC_NO3,KC15) = -KC15*<WC_H2SO4>*<WC_NO3> + PTERMS(:,92,504) = -TPK%KC15(:)*PCONC(:,102)*PCONC(:,92) ! -!PTERMS(OP2,K081) = +0.10149*K081*<CARBO>*<O3> - PTERMS(:,29,81) = +0.10149*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(WC_HNO3,KC15) = +KC15*<WC_H2SO4>*<WC_NO3> + PTERMS(:,95,504) = +TPK%KC15(:)*PCONC(:,102)*PCONC(:,92) ! -!PTERMS(ORA1,K081) = +0.10788*K081*<CARBO>*<O3> - PTERMS(:,30,81) = +0.10788*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(WC_H2SO4,KC15) = -KC15*<WC_H2SO4>*<WC_NO3> + PTERMS(:,102,504) = -TPK%KC15(:)*PCONC(:,102)*PCONC(:,92) ! -!PTERMS(ORA2,K081) = +0.20595*K081*<CARBO>*<O3> - PTERMS(:,31,81) = +0.20595*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(WC_ASO4,KC15) = +KC15*<WC_H2SO4>*<WC_NO3> + PTERMS(:,121,504) = +TPK%KC15(:)*PCONC(:,102)*PCONC(:,92) ! -!PTERMS(CARBOP,K081) = +0.27460*K081*<CARBO>*<O3> - PTERMS(:,39,81) = +0.27460*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) +!PTERMS(WC_NO3,KC16) = -KC16*<WC_SO2>*<WC_NO3> + PTERMS(:,92,505) = -TPK%KC16(:)*PCONC(:,101)*PCONC(:,92) ! -!PTERMS(O3,K082) = -K082*<PAN>*<O3> - PTERMS(:,1,82) = -TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(WC_HNO3,KC16) = +KC16*<WC_SO2>*<WC_NO3> + PTERMS(:,95,505) = +TPK%KC16(:)*PCONC(:,101)*PCONC(:,92) ! -!PTERMS(NO2,K082) = +0.70*K082*<PAN>*<O3> - PTERMS(:,4,82) = +0.70*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(WC_SO2,KC16) = -KC16*<WC_SO2>*<WC_NO3> + PTERMS(:,101,505) = -TPK%KC16(:)*PCONC(:,101)*PCONC(:,92) ! -!PTERMS(CO,K082) = +0.13*K082*<PAN>*<O3> - PTERMS(:,13,82) = +0.13*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(WC_ASO3,KC16) = +KC16*<WC_SO2>*<WC_NO3> + PTERMS(:,120,505) = +TPK%KC16(:)*PCONC(:,101)*PCONC(:,92) ! -!PTERMS(OH,K082) = +0.036*K082*<PAN>*<O3> - PTERMS(:,14,82) = +0.036*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(WC_SO2,KC17) = -KC17*<WC_HCHO>*<WC_SO2> + PTERMS(:,101,506) = -TPK%KC17(:)*PCONC(:,108)*PCONC(:,101) ! -!PTERMS(HO2,K082) = +0.08*K082*<PAN>*<O3> - PTERMS(:,15,82) = +0.08*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(WC_HCHO,KC17) = -KC17*<WC_HCHO>*<WC_SO2> + PTERMS(:,108,506) = -TPK%KC17(:)*PCONC(:,108)*PCONC(:,101) ! -!PTERMS(HCHO,K082) = +0.70*K082*<PAN>*<O3> - PTERMS(:,22,82) = +0.70*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(WC_AHMS,KC17) = +KC17*<WC_HCHO>*<WC_SO2> + PTERMS(:,124,506) = +TPK%KC17(:)*PCONC(:,108)*PCONC(:,101) ! ! RETURN -END SUBROUTINE SUBT15 +END SUBROUTINE SUBT73 ! -SUBROUTINE SUBT16 +SUBROUTINE SUBT74 ! -!Indices 321 a 340 +!Indices 1481 a 1500 ! -!PTERMS(PAN,K082) = -K082*<PAN>*<O3> - PTERMS(:,27,82) = -TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(WC_SO2,KC18) = +KC18*<WC_AHMS> + PTERMS(:,101,507) = +TPK%KC18(:)*PCONC(:,124) ! -!PTERMS(ORA1,K082) = +0.11*K082*<PAN>*<O3> - PTERMS(:,30,82) = +0.11*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(WC_HCHO,KC18) = +KC18*<WC_AHMS> + PTERMS(:,108,507) = +TPK%KC18(:)*PCONC(:,124) ! -!PTERMS(CARBOP,K082) = +0.70000*K082*<PAN>*<O3> - PTERMS(:,39,82) = +0.70000*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PTERMS(WC_AHMS,KC18) = -KC18*<WC_AHMS> + PTERMS(:,124,507) = -TPK%KC18(:)*PCONC(:,124) ! -!PTERMS(NO2,K083) = -K083*<PHO>*<NO2> - PTERMS(:,4,83) = -TPK%K083(:)*PCONC(:,36)*PCONC(:,4) +!PTERMS(WC_OH,KC19) = -KC19*<WC_OH>*<WC_AHMS> + PTERMS(:,98,508) = -TPK%KC19(:)*PCONC(:,98)*PCONC(:,124) ! -!PTERMS(ARO,K083) = +0.10670*K083*<PHO>*<NO2> - PTERMS(:,21,83) = +0.10670*TPK%K083(:)*PCONC(:,36)*PCONC(:,4) +!PTERMS(WC_HO2,KC19) = +KC19*<WC_OH>*<WC_AHMS> + PTERMS(:,99,508) = +TPK%KC19(:)*PCONC(:,98)*PCONC(:,124) ! -!PTERMS(ONIT,K083) = +K083*<PHO>*<NO2> - PTERMS(:,26,83) = +TPK%K083(:)*PCONC(:,36)*PCONC(:,4) +!PTERMS(WC_SO2,KC19) = +KC19*<WC_OH>*<WC_AHMS> + PTERMS(:,101,508) = +TPK%KC19(:)*PCONC(:,98)*PCONC(:,124) ! -!PTERMS(PHO,K083) = -K083*<PHO>*<NO2> - PTERMS(:,36,83) = -TPK%K083(:)*PCONC(:,36)*PCONC(:,4) +!PTERMS(WC_ORA1,KC19) = +KC19*<WC_OH>*<WC_AHMS> + PTERMS(:,113,508) = +TPK%KC19(:)*PCONC(:,98)*PCONC(:,124) ! -!PTERMS(HO2,K084) = -K084*<PHO>*<HO2> - PTERMS(:,15,84) = -TPK%K084(:)*PCONC(:,36)*PCONC(:,15) +!PTERMS(WC_AHMS,KC19) = -KC19*<WC_OH>*<WC_AHMS> + PTERMS(:,124,508) = -TPK%KC19(:)*PCONC(:,98)*PCONC(:,124) ! -!PTERMS(ARO,K084) = +1.06698*K084*<PHO>*<HO2> - PTERMS(:,21,84) = +1.06698*TPK%K084(:)*PCONC(:,36)*PCONC(:,15) +!PTERMS(WC_ASO3,KC20) = -KC20*<W_O2>*<WC_ASO3> + PTERMS(:,120,509) = -TPK%KC20(:)*TPK%W_O2(:)*PCONC(:,120) ! -!PTERMS(PHO,K084) = -K084*<PHO>*<HO2> - PTERMS(:,36,84) = -TPK%K084(:)*PCONC(:,36)*PCONC(:,15) +!PTERMS(WC_ASO5,KC20) = +KC20*<W_O2>*<WC_ASO3> + PTERMS(:,122,509) = +TPK%KC20(:)*TPK%W_O2(:)*PCONC(:,120) ! -!PTERMS(NO2,K085) = -K085*<ADD>*<NO2> - PTERMS(:,4,85) = -TPK%K085(:)*PCONC(:,37)*PCONC(:,4) +!PTERMS(WC_HO2,KC21) = -KC21*<WC_HO2>*<WC_ASO5> + PTERMS(:,99,510) = -TPK%KC21(:)*PCONC(:,99)*PCONC(:,122) ! -!PTERMS(HONO,K085) = +K085*<ADD>*<NO2> - PTERMS(:,7,85) = +TPK%K085(:)*PCONC(:,37)*PCONC(:,4) +!PTERMS(WC_ASO5,KC21) = -KC21*<WC_HO2>*<WC_ASO5> + PTERMS(:,122,510) = -TPK%KC21(:)*PCONC(:,99)*PCONC(:,122) ! -!PTERMS(ARO,K085) = +K085*<ADD>*<NO2> - PTERMS(:,21,85) = +TPK%K085(:)*PCONC(:,37)*PCONC(:,4) +!PTERMS(WC_AHSO5,KC21) = +KC21*<WC_HO2>*<WC_ASO5> + PTERMS(:,123,510) = +TPK%KC21(:)*PCONC(:,99)*PCONC(:,122) ! -!PTERMS(ADD,K085) = -K085*<ADD>*<NO2> - PTERMS(:,37,85) = -TPK%K085(:)*PCONC(:,37)*PCONC(:,4) +!PTERMS(WC_ASO4,KC22) = +KC22*<WC_ASO5>*<WC_ASO5> + PTERMS(:,121,511) = +TPK%KC22(:)*PCONC(:,122)*PCONC(:,122) ! -!PTERMS(HO2,K086) = +0.02*K086*<ADD>*<O2> - PTERMS(:,15,86) = +0.02*TPK%K086(:)*PCONC(:,37)*TPK%O2(:) +!PTERMS(WC_ASO5,KC22) = -KC22*<WC_ASO5>*<WC_ASO5> + PTERMS(:,122,511) = -TPK%KC22(:)*PCONC(:,122)*PCONC(:,122) ! -!PTERMS(ARO,K086) = +0.02*K086*<ADD>*<O2> - PTERMS(:,21,86) = +0.02*TPK%K086(:)*PCONC(:,37)*TPK%O2(:) +!PTERMS(WC_SO2,KC23) = -KC23*<WC_SO2>*<WC_AHSO5> + PTERMS(:,101,512) = -TPK%KC23(:)*PCONC(:,101)*PCONC(:,123) ! -!PTERMS(ADD,K086) = -K086*<ADD>*<O2> - PTERMS(:,37,86) = -TPK%K086(:)*PCONC(:,37)*TPK%O2(:) +!PTERMS(WC_H2SO4,KC23) = +2.00*KC23*<WC_SO2>*<WC_AHSO5> + PTERMS(:,102,512) = +2.00*TPK%KC23(:)*PCONC(:,101)*PCONC(:,123) ! -!PTERMS(AROP,K086) = +0.98*K086*<ADD>*<O2> - PTERMS(:,38,86) = +0.98*TPK%K086(:)*PCONC(:,37)*TPK%O2(:) +!PTERMS(WC_AHSO5,KC23) = -KC23*<WC_SO2>*<WC_AHSO5> + PTERMS(:,123,512) = -TPK%KC23(:)*PCONC(:,101)*PCONC(:,123) ! -!PTERMS(O3,K087) = -K087*<ADD>*<O3> - PTERMS(:,1,87) = -TPK%K087(:)*PCONC(:,37)*PCONC(:,1) +!PTERMS(WC_OH,KC24) = +KC24*<WC_ASO4> + PTERMS(:,98,513) = +TPK%KC24(:)*PCONC(:,121) ! -!PTERMS(OH,K087) = +K087*<ADD>*<O3> - PTERMS(:,14,87) = +TPK%K087(:)*PCONC(:,37)*PCONC(:,1) +!PTERMS(WC_H2SO4,KC24) = +KC24*<WC_ASO4> + PTERMS(:,102,513) = +TPK%KC24(:)*PCONC(:,121) ! ! RETURN -END SUBROUTINE SUBT16 +END SUBROUTINE SUBT74 ! -SUBROUTINE SUBT17 +SUBROUTINE SUBT75 ! -!Indices 341 a 360 +!Indices 1501 a 1520 ! -!PTERMS(ARO,K087) = +K087*<ADD>*<O3> - PTERMS(:,21,87) = +TPK%K087(:)*PCONC(:,37)*PCONC(:,1) +!PTERMS(WC_ASO4,KC24) = -KC24*<WC_ASO4> + PTERMS(:,121,513) = -TPK%KC24(:)*PCONC(:,121) ! -!PTERMS(ADD,K087) = -K087*<ADD>*<O3> - PTERMS(:,37,87) = -TPK%K087(:)*PCONC(:,37)*PCONC(:,1) +!PTERMS(WC_O3,KC25) = -KC25*<WC_O3>*<WC_SO2> + PTERMS(:,88,514) = -TPK%KC25(:)*PCONC(:,88)*PCONC(:,101) ! -!PTERMS(NO2,K088) = -K088*<CARBOP>*<NO2> - PTERMS(:,4,88) = -TPK%K088(:)*PCONC(:,39)*PCONC(:,4) +!PTERMS(WC_SO2,KC25) = -KC25*<WC_O3>*<WC_SO2> + PTERMS(:,101,514) = -TPK%KC25(:)*PCONC(:,88)*PCONC(:,101) ! -!PTERMS(PAN,K088) = +1.00000*K088*<CARBOP>*<NO2> - PTERMS(:,27,88) = +1.00000*TPK%K088(:)*PCONC(:,39)*PCONC(:,4) +!PTERMS(WC_H2SO4,KC25) = +KC25*<WC_O3>*<WC_SO2> + PTERMS(:,102,514) = +TPK%KC25(:)*PCONC(:,88)*PCONC(:,101) ! -!PTERMS(CARBOP,K088) = -K088*<CARBOP>*<NO2> - PTERMS(:,39,88) = -TPK%K088(:)*PCONC(:,39)*PCONC(:,4) +!PTERMS(WC_H2O2,KC26) = -KC26*<WC_H2O2>*<WC_SO2> + PTERMS(:,89,515) = -TPK%KC26(:)*PCONC(:,89)*PCONC(:,101) ! -!PTERMS(NO2,K089) = +K089*<PAN> - PTERMS(:,4,89) = +TPK%K089(:)*PCONC(:,27) +!PTERMS(WC_SO2,KC26) = -KC26*<WC_H2O2>*<WC_SO2> + PTERMS(:,101,515) = -TPK%KC26(:)*PCONC(:,89)*PCONC(:,101) ! -!PTERMS(PAN,K089) = -K089*<PAN> - PTERMS(:,27,89) = -TPK%K089(:)*PCONC(:,27) +!PTERMS(WC_H2SO4,KC26) = +KC26*<WC_H2O2>*<WC_SO2> + PTERMS(:,102,515) = +TPK%KC26(:)*PCONC(:,89)*PCONC(:,101) ! -!PTERMS(CARBOP,K089) = +1.00000*K089*<PAN> - PTERMS(:,39,89) = +1.00000*TPK%K089(:)*PCONC(:,27) +!PTERMS(WC_HO2,KC27) = +2.00*KC27*<WC_RO21>*<WC_RO21> + PTERMS(:,99,516) = +2.00*TPK%KC27(:)*PCONC(:,103)*PCONC(:,103) ! -!PTERMS(NO,K090) = -K090*<MO2>*<NO> - PTERMS(:,3,90) = -TPK%K090(:)*PCONC(:,32)*PCONC(:,3) +!PTERMS(WC_RO21,KC27) = -KC27*<WC_RO21>*<WC_RO21> + PTERMS(:,103,516) = -TPK%KC27(:)*PCONC(:,103)*PCONC(:,103) ! -!PTERMS(NO2,K090) = +K090*<MO2>*<NO> - PTERMS(:,4,90) = +TPK%K090(:)*PCONC(:,32)*PCONC(:,3) +!PTERMS(WC_HCHO,KC27) = +2.00*KC27*<WC_RO21>*<WC_RO21> + PTERMS(:,108,516) = +2.00*TPK%KC27(:)*PCONC(:,103)*PCONC(:,103) ! -!PTERMS(HO2,K090) = +K090*<MO2>*<NO> - PTERMS(:,15,90) = +TPK%K090(:)*PCONC(:,32)*PCONC(:,3) +!PTERMS(WC_SO2,KC28) = -KC28*<WC_SO2>*<WC_RO21> + PTERMS(:,101,517) = -TPK%KC28(:)*PCONC(:,101)*PCONC(:,103) ! -!PTERMS(HCHO,K090) = +K090*<MO2>*<NO> - PTERMS(:,22,90) = +TPK%K090(:)*PCONC(:,32)*PCONC(:,3) +!PTERMS(WC_RO21,KC28) = -KC28*<WC_SO2>*<WC_RO21> + PTERMS(:,103,517) = -TPK%KC28(:)*PCONC(:,101)*PCONC(:,103) ! -!PTERMS(MO2,K090) = -K090*<MO2>*<NO> - PTERMS(:,32,90) = -TPK%K090(:)*PCONC(:,32)*PCONC(:,3) +!PTERMS(WC_HCHO,KC28) = +KC28*<WC_SO2>*<WC_RO21> + PTERMS(:,108,517) = +TPK%KC28(:)*PCONC(:,101)*PCONC(:,103) ! -!PTERMS(NO,K091) = -K091*<ALKAP>*<NO> - PTERMS(:,3,91) = -TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(WC_ASO3,KC28) = +KC28*<WC_SO2>*<WC_RO21> + PTERMS(:,120,517) = +TPK%KC28(:)*PCONC(:,101)*PCONC(:,103) ! -!PTERMS(NO2,K091) = +0.91541*K091*<ALKAP>*<NO> - PTERMS(:,4,91) = +0.91541*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(WC_H2O2,KC29) = +KC29*<WC_RO25>*<WC_RO25> + PTERMS(:,89,518) = +TPK%KC29(:)*PCONC(:,104)*PCONC(:,104) ! -!PTERMS(HO2,K091) = +0.74265*K091*<ALKAP>*<NO> - PTERMS(:,15,91) = +0.74265*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(WC_HO2,KC29) = +KC29*<WC_RO25>*<WC_RO25> + PTERMS(:,99,518) = +TPK%KC29(:)*PCONC(:,104)*PCONC(:,104) ! -!PTERMS(HCHO,K091) = +0.03002*K091*<ALKAP>*<NO> - PTERMS(:,22,91) = +0.03002*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(WC_RO25,KC29) = -KC29*<WC_RO25>*<WC_RO25> + PTERMS(:,104,518) = -TPK%KC29(:)*PCONC(:,104)*PCONC(:,104) ! -!PTERMS(ALD,K091) = +0.33144*K091*<ALKAP>*<NO> - PTERMS(:,23,91) = +0.33144*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(WC_ALD2,KC29) = +KC29*<WC_RO25>*<WC_RO25> + PTERMS(:,109,518) = +TPK%KC29(:)*PCONC(:,104)*PCONC(:,104) ! -!PTERMS(KET,K091) = +0.54531*K091*<ALKAP>*<NO> - PTERMS(:,24,91) = +0.54531*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(WC_ORA2,KC29) = +KC29*<WC_RO25>*<WC_RO25> + PTERMS(:,114,518) = +TPK%KC29(:)*PCONC(:,104)*PCONC(:,104) ! -!PTERMS(CARBO,K091) = +0.03407*K091*<ALKAP>*<NO> - PTERMS(:,25,91) = +0.03407*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(WC_OH,KC30) = -KC30*<WC_OH>*<WC_MEOH> + PTERMS(:,98,519) = -TPK%KC30(:)*PCONC(:,98)*PCONC(:,105) ! ! RETURN -END SUBROUTINE SUBT17 +END SUBROUTINE SUBT75 ! -SUBROUTINE SUBT18 +SUBROUTINE SUBT76 ! -!Indices 361 a 380 +!Indices 1521 a 1540 ! -!PTERMS(ONIT,K091) = +0.08459*K091*<ALKAP>*<NO> - PTERMS(:,26,91) = +0.08459*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(WC_HO2,KC30) = +KC30*<WC_OH>*<WC_MEOH> + PTERMS(:,99,519) = +TPK%KC30(:)*PCONC(:,98)*PCONC(:,105) ! -!PTERMS(MO2,K091) = +0.09016*K091*<ALKAP>*<NO> - PTERMS(:,32,91) = +0.09016*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(WC_MEOH,KC30) = -KC30*<WC_OH>*<WC_MEOH> + PTERMS(:,105,519) = -TPK%KC30(:)*PCONC(:,98)*PCONC(:,105) ! -!PTERMS(ALKAP,K091) = -K091*<ALKAP>*<NO> - PTERMS(:,33,91) = -TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(WC_HCHO,KC30) = +KC30*<WC_OH>*<WC_MEOH> + PTERMS(:,108,519) = +TPK%KC30(:)*PCONC(:,98)*PCONC(:,105) ! -!PTERMS(XO2,K091) = +0.13007*K091*<ALKAP>*<NO> - PTERMS(:,41,91) = +0.13007*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) +!PTERMS(WC_OH,KC31) = -KC31*<WC_OH>*<WC_ETOH> + PTERMS(:,98,520) = -TPK%KC31(:)*PCONC(:,98)*PCONC(:,106) ! -!PTERMS(NO,K092) = -K092*<ALKEP>*<NO> - PTERMS(:,3,92) = -TPK%K092(:)*PCONC(:,34)*PCONC(:,3) +!PTERMS(WC_HO2,KC31) = +KC31*<WC_OH>*<WC_ETOH> + PTERMS(:,99,520) = +TPK%KC31(:)*PCONC(:,98)*PCONC(:,106) ! -!PTERMS(NO2,K092) = +K092*<ALKEP>*<NO> - PTERMS(:,4,92) = +TPK%K092(:)*PCONC(:,34)*PCONC(:,3) +!PTERMS(WC_ETOH,KC31) = -KC31*<WC_OH>*<WC_ETOH> + PTERMS(:,106,520) = -TPK%KC31(:)*PCONC(:,98)*PCONC(:,106) ! -!PTERMS(HO2,K092) = +K092*<ALKEP>*<NO> - PTERMS(:,15,92) = +TPK%K092(:)*PCONC(:,34)*PCONC(:,3) +!PTERMS(WC_ALD2,KC31) = +KC31*<WC_OH>*<WC_ETOH> + PTERMS(:,109,520) = +TPK%KC31(:)*PCONC(:,98)*PCONC(:,106) ! -!PTERMS(HCHO,K092) = +1.39870*K092*<ALKEP>*<NO> - PTERMS(:,22,92) = +1.39870*TPK%K092(:)*PCONC(:,34)*PCONC(:,3) +!PTERMS(WC_OH,KC32) = -KC32*<WC_OH>*<WC_ALCH> + PTERMS(:,98,521) = -TPK%KC32(:)*PCONC(:,98)*PCONC(:,107) ! -!PTERMS(ALD,K092) = +0.42125*K092*<ALKEP>*<NO> - PTERMS(:,23,92) = +0.42125*TPK%K092(:)*PCONC(:,34)*PCONC(:,3) +!PTERMS(WC_HO2,KC32) = +KC32*<WC_OH>*<WC_ALCH> + PTERMS(:,99,521) = +TPK%KC32(:)*PCONC(:,98)*PCONC(:,107) ! -!PTERMS(KET,K092) = +0.05220*K092*<ALKEP>*<NO> - PTERMS(:,24,92) = +0.05220*TPK%K092(:)*PCONC(:,34)*PCONC(:,3) +!PTERMS(WC_ALCH,KC32) = -KC32*<WC_OH>*<WC_ALCH> + PTERMS(:,107,521) = -TPK%KC32(:)*PCONC(:,98)*PCONC(:,107) ! -!PTERMS(ALKEP,K092) = -K092*<ALKEP>*<NO> - PTERMS(:,34,92) = -TPK%K092(:)*PCONC(:,34)*PCONC(:,3) +!PTERMS(WC_ALD2,KC32) = +0.50*KC32*<WC_OH>*<WC_ALCH> + PTERMS(:,109,521) = +0.50*TPK%KC32(:)*PCONC(:,98)*PCONC(:,107) ! -!PTERMS(NO,K093) = -K093*<BIOP>*<NO> - PTERMS(:,3,93) = -TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(WC_KETL,KC32) = +0.50*KC32*<WC_OH>*<WC_ALCH> + PTERMS(:,112,521) = +0.50*TPK%KC32(:)*PCONC(:,98)*PCONC(:,107) ! -!PTERMS(NO2,K093) = +0.84700*K093*<BIOP>*<NO> - PTERMS(:,4,93) = +0.84700*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(WC_OH,KC33) = -KC33*<WC_OH>*<WC_HCHO> + PTERMS(:,98,522) = -TPK%KC33(:)*PCONC(:,98)*PCONC(:,108) ! -!PTERMS(HO2,K093) = +0.84700*K093*<BIOP>*<NO> - PTERMS(:,15,93) = +0.84700*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(WC_HO2,KC33) = +KC33*<WC_OH>*<WC_HCHO> + PTERMS(:,99,522) = +TPK%KC33(:)*PCONC(:,98)*PCONC(:,108) ! -!PTERMS(ALKE,K093) = +0.37815*K093*<BIOP>*<NO> - PTERMS(:,19,93) = +0.37815*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(WC_HCHO,KC33) = -KC33*<WC_OH>*<WC_HCHO> + PTERMS(:,108,522) = -TPK%KC33(:)*PCONC(:,98)*PCONC(:,108) ! -!PTERMS(HCHO,K093) = +0.60600*K093*<BIOP>*<NO> - PTERMS(:,22,93) = +0.60600*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(WC_ORA1,KC33) = +KC33*<WC_OH>*<WC_HCHO> + PTERMS(:,113,522) = +TPK%KC33(:)*PCONC(:,98)*PCONC(:,108) ! -!PTERMS(ALD,K093) = +0.00000*K093*<BIOP>*<NO> - PTERMS(:,23,93) = +0.00000*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(WC_OH,KC34) = -KC34*<WC_OH>*<WC_ALD2> + PTERMS(:,98,523) = -TPK%KC34(:)*PCONC(:,98)*PCONC(:,109) ! -!PTERMS(KET,K093) = +0.00000*K093*<BIOP>*<NO> - PTERMS(:,24,93) = +0.00000*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(WC_CO2,KC34) = +KC34*<WC_OH>*<WC_ALD2> + PTERMS(:,100,523) = +TPK%KC34(:)*PCONC(:,98)*PCONC(:,109) ! -!PTERMS(CARBO,K093) = +0.45463*K093*<BIOP>*<NO> - PTERMS(:,25,93) = +0.45463*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(WC_RO21,KC34) = +0.50*KC34*<WC_OH>*<WC_ALD2> + PTERMS(:,103,523) = +0.50*TPK%KC34(:)*PCONC(:,98)*PCONC(:,109) ! -!PTERMS(ONIT,K093) = +0.15300*K093*<BIOP>*<NO> - PTERMS(:,26,93) = +0.15300*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(WC_RO25,KC34) = +0.50*KC34*<WC_OH>*<WC_ALD2> + PTERMS(:,104,523) = +0.50*TPK%KC34(:)*PCONC(:,98)*PCONC(:,109) ! ! RETURN -END SUBROUTINE SUBT18 +END SUBROUTINE SUBT76 ! -SUBROUTINE SUBT19 +SUBROUTINE SUBT77 ! -!Indices 381 a 400 +!Indices 1541 a 1560 ! -!PTERMS(BIOP,K093) = -K093*<BIOP>*<NO> - PTERMS(:,35,93) = -TPK%K093(:)*PCONC(:,35)*PCONC(:,3) +!PTERMS(WC_ALD2,KC34) = -KC34*<WC_OH>*<WC_ALD2> + PTERMS(:,109,523) = -TPK%KC34(:)*PCONC(:,98)*PCONC(:,109) ! -!PTERMS(NO,K094) = -K094*<AROP>*<NO> - PTERMS(:,3,94) = -TPK%K094(:)*PCONC(:,38)*PCONC(:,3) +!PTERMS(WC_OH,KC35) = -KC35*<WC_OH>*<WC_GLY> + PTERMS(:,98,524) = -TPK%KC35(:)*PCONC(:,98)*PCONC(:,110) ! -!PTERMS(NO2,K094) = +0.95115*K094*<AROP>*<NO> - PTERMS(:,4,94) = +0.95115*TPK%K094(:)*PCONC(:,38)*PCONC(:,3) +!PTERMS(WC_HO2,KC35) = +KC35*<WC_OH>*<WC_GLY> + PTERMS(:,99,524) = +TPK%KC35(:)*PCONC(:,98)*PCONC(:,110) ! -!PTERMS(HO2,K094) = +0.95115*K094*<AROP>*<NO> - PTERMS(:,15,94) = +0.95115*TPK%K094(:)*PCONC(:,38)*PCONC(:,3) +!PTERMS(WC_GLY,KC35) = -KC35*<WC_OH>*<WC_GLY> + PTERMS(:,110,524) = -TPK%KC35(:)*PCONC(:,98)*PCONC(:,110) ! -!PTERMS(CARBO,K094) = +2.06993*K094*<AROP>*<NO> - PTERMS(:,25,94) = +2.06993*TPK%K094(:)*PCONC(:,38)*PCONC(:,3) +!PTERMS(WC_RP16,KC35) = +KC35*<WC_OH>*<WC_GLY> + PTERMS(:,116,524) = +TPK%KC35(:)*PCONC(:,98)*PCONC(:,110) ! -!PTERMS(ONIT,K094) = +0.04885*K094*<AROP>*<NO> - PTERMS(:,26,94) = +0.04885*TPK%K094(:)*PCONC(:,38)*PCONC(:,3) +!PTERMS(WC_OH,KC36) = -KC36*<WC_OH>*<WC_MGLY> + PTERMS(:,98,525) = -TPK%KC36(:)*PCONC(:,98)*PCONC(:,111) ! -!PTERMS(AROP,K094) = -K094*<AROP>*<NO> - PTERMS(:,38,94) = -TPK%K094(:)*PCONC(:,38)*PCONC(:,3) +!PTERMS(WC_HO2,KC36) = +KC36*<WC_OH>*<WC_MGLY> + PTERMS(:,99,525) = +TPK%KC36(:)*PCONC(:,98)*PCONC(:,111) ! -!PTERMS(NO,K095) = -K095*<CARBOP>*<NO> - PTERMS(:,3,95) = -TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(WC_MGLY,KC36) = -KC36*<WC_OH>*<WC_MGLY> + PTERMS(:,111,525) = -TPK%KC36(:)*PCONC(:,98)*PCONC(:,111) ! -!PTERMS(NO2,K095) = +K095*<CARBOP>*<NO> - PTERMS(:,4,95) = +TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(WC_UR21,KC36) = +KC36*<WC_OH>*<WC_MGLY> + PTERMS(:,117,525) = +TPK%KC36(:)*PCONC(:,98)*PCONC(:,111) ! -!PTERMS(HO2,K095) = +0.12334*K095*<CARBOP>*<NO> - PTERMS(:,15,95) = +0.12334*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(WC_H2O2,KC37) = +KC37*<WC_OH>*<WC_KETL> + PTERMS(:,89,526) = +TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) ! -!PTERMS(HCHO,K095) = +0.05848*K095*<CARBOP>*<NO> - PTERMS(:,22,95) = +0.05848*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(WC_OH,KC37) = -KC37*<WC_OH>*<WC_KETL> + PTERMS(:,98,526) = -TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) ! -!PTERMS(ALD,K095) = +0.07368*K095*<CARBOP>*<NO> - PTERMS(:,23,95) = +0.07368*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(WC_HO2,KC37) = +KC37*<WC_OH>*<WC_KETL> + PTERMS(:,99,526) = +TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) ! -!PTERMS(CARBO,K095) = +0.08670*K095*<CARBOP>*<NO> - PTERMS(:,25,95) = +0.08670*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(WC_CO2,KC37) = +KC37*<WC_OH>*<WC_KETL> + PTERMS(:,100,526) = +TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) ! -!PTERMS(MO2,K095) = +0.78134*K095*<CARBOP>*<NO> - PTERMS(:,32,95) = +0.78134*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(WC_RO21,KC37) = +KC37*<WC_OH>*<WC_KETL> + PTERMS(:,103,526) = +TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) ! -!PTERMS(CARBOP,K095) = -K095*<CARBOP>*<NO> - PTERMS(:,39,95) = -TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(WC_HCHO,KC37) = +KC37*<WC_OH>*<WC_KETL> + PTERMS(:,108,526) = +TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) ! -!PTERMS(XO2,K095) = +0.02563*K095*<CARBOP>*<NO> - PTERMS(:,41,95) = +0.02563*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) +!PTERMS(WC_ALD2,KC37) = +KC37*<WC_OH>*<WC_KETL> + PTERMS(:,109,526) = +TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) ! -!PTERMS(NO,K096) = -K096*<OLN>*<NO> - PTERMS(:,3,96) = -TPK%K096(:)*PCONC(:,40)*PCONC(:,3) +!PTERMS(WC_MGLY,KC37) = +KC37*<WC_OH>*<WC_KETL> + PTERMS(:,111,526) = +TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) ! -!PTERMS(NO2,K096) = +1.81599*K096*<OLN>*<NO> - PTERMS(:,4,96) = +1.81599*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) +!PTERMS(WC_KETL,KC37) = -KC37*<WC_OH>*<WC_KETL> + PTERMS(:,112,526) = -TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) ! -!PTERMS(HO2,K096) = +0.18401*K096*<OLN>*<NO> - PTERMS(:,15,96) = +0.18401*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) +!PTERMS(WC_UR21,KC37) = +KC37*<WC_OH>*<WC_KETL> + PTERMS(:,117,526) = +TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) ! -!PTERMS(HCHO,K096) = +0.23419*K096*<OLN>*<NO> - PTERMS(:,22,96) = +0.23419*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) +!PTERMS(WC_OH,KC38) = -KC38*<WC_OH>*<WC_ORA1> + PTERMS(:,98,527) = -TPK%KC38(:)*PCONC(:,98)*PCONC(:,113) ! ! RETURN -END SUBROUTINE SUBT19 +END SUBROUTINE SUBT77 ! -SUBROUTINE SUBT20 +SUBROUTINE SUBT78 ! -!Indices 401 a 420 +!Indices 1561 a 1580 ! -!PTERMS(ALD,K096) = +1.01182*K096*<OLN>*<NO> - PTERMS(:,23,96) = +1.01182*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) +!PTERMS(WC_HO2,KC38) = +KC38*<WC_OH>*<WC_ORA1> + PTERMS(:,99,527) = +TPK%KC38(:)*PCONC(:,98)*PCONC(:,113) ! -!PTERMS(KET,K096) = +0.37862*K096*<OLN>*<NO> - PTERMS(:,24,96) = +0.37862*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) +!PTERMS(WC_CO2,KC38) = +KC38*<WC_OH>*<WC_ORA1> + PTERMS(:,100,527) = +TPK%KC38(:)*PCONC(:,98)*PCONC(:,113) ! -!PTERMS(ONIT,K096) = +0.18401*K096*<OLN>*<NO> - PTERMS(:,26,96) = +0.18401*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) +!PTERMS(WC_ORA1,KC38) = -KC38*<WC_OH>*<WC_ORA1> + PTERMS(:,113,527) = -TPK%KC38(:)*PCONC(:,98)*PCONC(:,113) ! -!PTERMS(OLN,K096) = -K096*<OLN>*<NO> - PTERMS(:,40,96) = -TPK%K096(:)*PCONC(:,40)*PCONC(:,3) +!PTERMS(WC_H2O2,KC39) = +0.5*KC39*<WC_OH>*<WC_ORA2> + PTERMS(:,89,528) = +0.5*TPK%KC39(:)*PCONC(:,98)*PCONC(:,114) ! -!PTERMS(HO2,K097) = -K097*<MO2>*<HO2> - PTERMS(:,15,97) = -TPK%K097(:)*PCONC(:,32)*PCONC(:,15) +!PTERMS(WC_OH,KC39) = -KC39*<WC_OH>*<WC_ORA2> + PTERMS(:,98,528) = -TPK%KC39(:)*PCONC(:,98)*PCONC(:,114) ! -!PTERMS(OP1,K097) = +K097*<MO2>*<HO2> - PTERMS(:,28,97) = +TPK%K097(:)*PCONC(:,32)*PCONC(:,15) +!PTERMS(WC_ORA2,KC39) = -KC39*<WC_OH>*<WC_ORA2> + PTERMS(:,114,528) = -TPK%KC39(:)*PCONC(:,98)*PCONC(:,114) ! -!PTERMS(MO2,K097) = -K097*<MO2>*<HO2> - PTERMS(:,32,97) = -TPK%K097(:)*PCONC(:,32)*PCONC(:,15) +!PTERMS(WC_RP16,KC39) = +KC39*<WC_OH>*<WC_ORA2> + PTERMS(:,116,528) = +TPK%KC39(:)*PCONC(:,98)*PCONC(:,114) ! -!PTERMS(HO2,K098) = -K098*<ALKAP>*<HO2> - PTERMS(:,15,98) = -TPK%K098(:)*PCONC(:,33)*PCONC(:,15) +!PTERMS(WC_OH,KC40) = -KC40*<WC_OH>*<WC_ACID> + PTERMS(:,98,529) = -TPK%KC40(:)*PCONC(:,98)*PCONC(:,115) ! -!PTERMS(OP2,K098) = +1.00524*K098*<ALKAP>*<HO2> - PTERMS(:,29,98) = +1.00524*TPK%K098(:)*PCONC(:,33)*PCONC(:,15) +!PTERMS(WC_CO2,KC40) = +KC40*<WC_OH>*<WC_ACID> + PTERMS(:,100,529) = +TPK%KC40(:)*PCONC(:,98)*PCONC(:,115) ! -!PTERMS(ALKAP,K098) = -K098*<ALKAP>*<HO2> - PTERMS(:,33,98) = -TPK%K098(:)*PCONC(:,33)*PCONC(:,15) +!PTERMS(WC_RO25,KC40) = +KC40*<WC_OH>*<WC_ACID> + PTERMS(:,104,529) = +TPK%KC40(:)*PCONC(:,98)*PCONC(:,115) ! -!PTERMS(HO2,K099) = -K099*<ALKEP>*<HO2> - PTERMS(:,15,99) = -TPK%K099(:)*PCONC(:,34)*PCONC(:,15) +!PTERMS(WC_ACID,KC40) = -KC40*<WC_OH>*<WC_ACID> + PTERMS(:,115,529) = -TPK%KC40(:)*PCONC(:,98)*PCONC(:,115) ! -!PTERMS(OP2,K099) = +1.00524*K099*<ALKEP>*<HO2> - PTERMS(:,29,99) = +1.00524*TPK%K099(:)*PCONC(:,34)*PCONC(:,15) +!PTERMS(WC_H2O2,KC41) = +0.29*KC41*<WC_OH>*<WC_ACID> + PTERMS(:,89,530) = +0.29*TPK%KC41(:)*PCONC(:,98)*PCONC(:,115) ! -!PTERMS(ALKEP,K099) = -K099*<ALKEP>*<HO2> - PTERMS(:,34,99) = -TPK%K099(:)*PCONC(:,34)*PCONC(:,15) +!PTERMS(WC_OH,KC41) = -KC41*<WC_OH>*<WC_ACID> + PTERMS(:,98,530) = -TPK%KC41(:)*PCONC(:,98)*PCONC(:,115) ! -!PTERMS(HO2,K0100) = -K0100*<BIOP>*<HO2> - PTERMS(:,15,100) = -TPK%K0100(:)*PCONC(:,35)*PCONC(:,15) +!PTERMS(WC_HO2,KC41) = +0.11*KC41*<WC_OH>*<WC_ACID> + PTERMS(:,99,530) = +0.11*TPK%KC41(:)*PCONC(:,98)*PCONC(:,115) ! -!PTERMS(OP2,K0100) = +1.00524*K0100*<BIOP>*<HO2> - PTERMS(:,29,100) = +1.00524*TPK%K0100(:)*PCONC(:,35)*PCONC(:,15) +!PTERMS(WC_ALD2,KC41) = +0.29*KC41*<WC_OH>*<WC_ACID> + PTERMS(:,109,530) = +0.29*TPK%KC41(:)*PCONC(:,98)*PCONC(:,115) ! -!PTERMS(BIOP,K0100) = -K0100*<BIOP>*<HO2> - PTERMS(:,35,100) = -TPK%K0100(:)*PCONC(:,35)*PCONC(:,15) +!PTERMS(WC_ACID,KC41) = -KC41*<WC_OH>*<WC_ACID> + PTERMS(:,115,530) = -TPK%KC41(:)*PCONC(:,98)*PCONC(:,115) ! -!PTERMS(HO2,K0101) = -K0101*<AROP>*<HO2> - PTERMS(:,15,101) = -TPK%K0101(:)*PCONC(:,38)*PCONC(:,15) +!PTERMS(WC_UR21,KC41) = +0.56*KC41*<WC_OH>*<WC_ACID> + PTERMS(:,117,530) = +0.56*TPK%KC41(:)*PCONC(:,98)*PCONC(:,115) ! -!PTERMS(OP2,K0101) = +1.00524*K0101*<AROP>*<HO2> - PTERMS(:,29,101) = +1.00524*TPK%K0101(:)*PCONC(:,38)*PCONC(:,15) +!PTERMS(WC_ACID2,KC41) = +0.15*KC41*<WC_OH>*<WC_ACID> + PTERMS(:,119,530) = +0.15*TPK%KC41(:)*PCONC(:,98)*PCONC(:,115) ! -!PTERMS(AROP,K0101) = -K0101*<AROP>*<HO2> - PTERMS(:,38,101) = -TPK%K0101(:)*PCONC(:,38)*PCONC(:,15) +!PTERMS(WC_OH,KC42) = -KC42*<WC_OH>*<WC_UR28> + PTERMS(:,98,531) = -TPK%KC42(:)*PCONC(:,98)*PCONC(:,118) ! -!PTERMS(O3,K0102) = +0.17307*K0102*<CARBOP>*<HO2> - PTERMS(:,1,102) = +0.17307*TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) +!PTERMS(WC_HO2,KC42) = +KC42*<WC_OH>*<WC_UR28> + PTERMS(:,99,531) = +TPK%KC42(:)*PCONC(:,98)*PCONC(:,118) ! ! RETURN -END SUBROUTINE SUBT20 +END SUBROUTINE SUBT78 ! -SUBROUTINE SUBT21 +SUBROUTINE SUBT79 ! -!Indices 421 a 440 +!Indices 1581 a 1600 ! -!PTERMS(HO2,K0102) = -K0102*<CARBOP>*<HO2> - PTERMS(:,15,102) = -TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) +!PTERMS(WC_CO2,KC42) = +2*KC42*<WC_OH>*<WC_UR28> + PTERMS(:,100,531) = +2*TPK%KC42(:)*PCONC(:,98)*PCONC(:,118) ! -!PTERMS(OP2,K0102) = +0.80904*K0102*<CARBOP>*<HO2> - PTERMS(:,29,102) = +0.80904*TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) +!PTERMS(WC_UR28,KC42) = -KC42*<WC_OH>*<WC_UR28> + PTERMS(:,118,531) = -TPK%KC42(:)*PCONC(:,98)*PCONC(:,118) ! -!PTERMS(ORA2,K0102) = +0.17307*K0102*<CARBOP>*<HO2> - PTERMS(:,31,102) = +0.17307*TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) +!PTERMS(WC_H2O2,KC43) = +0.3*KC43*<WC_OH>*<WC_UR21> + PTERMS(:,89,532) = +0.3*TPK%KC43(:)*PCONC(:,98)*PCONC(:,117) ! -!PTERMS(CARBOP,K0102) = -K0102*<CARBOP>*<HO2> - PTERMS(:,39,102) = -TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) +!PTERMS(WC_OH,KC43) = -KC43*<WC_OH>*<WC_UR21> + PTERMS(:,98,532) = -TPK%KC43(:)*PCONC(:,98)*PCONC(:,117) ! -!PTERMS(HO2,K103) = -K103*<OLN>*<HO2> - PTERMS(:,15,103) = -TPK%K103(:)*PCONC(:,40)*PCONC(:,15) +!PTERMS(WC_HO2,KC43) = +0.81*KC43*<WC_OH>*<WC_UR21> + PTERMS(:,99,532) = +0.81*TPK%KC43(:)*PCONC(:,98)*PCONC(:,117) ! -!PTERMS(ONIT,K103) = +K103*<OLN>*<HO2> - PTERMS(:,26,103) = +TPK%K103(:)*PCONC(:,40)*PCONC(:,15) +!PTERMS(WC_CO2,KC43) = +0.43*KC43*<WC_OH>*<WC_UR21> + PTERMS(:,100,532) = +0.43*TPK%KC43(:)*PCONC(:,98)*PCONC(:,117) ! -!PTERMS(OLN,K103) = -K103*<OLN>*<HO2> - PTERMS(:,40,103) = -TPK%K103(:)*PCONC(:,40)*PCONC(:,15) +!PTERMS(WC_ALD2,KC43) = +0.43*KC43*<WC_OH>*<WC_UR21> + PTERMS(:,109,532) = +0.43*TPK%KC43(:)*PCONC(:,98)*PCONC(:,117) ! -!PTERMS(HO2,K104) = +0.66*K104*<MO2>*<MO2> - PTERMS(:,15,104) = +0.66*TPK%K104(:)*PCONC(:,32)*PCONC(:,32) +!PTERMS(WC_UR21,KC43) = -KC43*<WC_OH>*<WC_UR21> + PTERMS(:,117,532) = -TPK%KC43(:)*PCONC(:,98)*PCONC(:,117) ! -!PTERMS(HCHO,K104) = +1.33*K104*<MO2>*<MO2> - PTERMS(:,22,104) = +1.33*TPK%K104(:)*PCONC(:,32)*PCONC(:,32) +!PTERMS(WC_ACID2,KC43) = +0.56*KC43*<WC_OH>*<WC_UR21> + PTERMS(:,119,532) = +0.56*TPK%KC43(:)*PCONC(:,98)*PCONC(:,117) ! -!PTERMS(MO2,K104) = -K104*<MO2>*<MO2> - PTERMS(:,32,104) = -TPK%K104(:)*PCONC(:,32)*PCONC(:,32) +!PTERMS(WC_OH,KC44) = -KC44*<WC_OH>*<WC_RP16> + PTERMS(:,98,533) = -TPK%KC44(:)*PCONC(:,98)*PCONC(:,116) ! -!PTERMS(HO2,K105) = +0.98383*K105*<ALKAP>*<MO2> - PTERMS(:,15,105) = +0.98383*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) +!PTERMS(WC_HO2,KC44) = +KC44*<WC_OH>*<WC_RP16> + PTERMS(:,99,533) = +TPK%KC44(:)*PCONC(:,98)*PCONC(:,116) ! -!PTERMS(HCHO,K105) = +0.80556*K105*<ALKAP>*<MO2> - PTERMS(:,22,105) = +0.80556*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) +!PTERMS(WC_RP16,KC44) = -KC44*<WC_OH>*<WC_RP16> + PTERMS(:,116,533) = -TPK%KC44(:)*PCONC(:,98)*PCONC(:,116) ! -!PTERMS(ALD,K105) = +0.56070*K105*<ALKAP>*<MO2> - PTERMS(:,23,105) = +0.56070*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) +!PTERMS(WC_UR28,KC44) = +KC44*<WC_OH>*<WC_RP16> + PTERMS(:,118,533) = +TPK%KC44(:)*PCONC(:,98)*PCONC(:,116) ! -!PTERMS(KET,K105) = +0.09673*K105*<ALKAP>*<MO2> - PTERMS(:,24,105) = +0.09673*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) +!PTERMS(WC_H2O2,KC45) = +0.45*KC45*<WC_OH>*<WC_RP16> + PTERMS(:,89,534) = +0.45*TPK%KC45(:)*PCONC(:,98)*PCONC(:,116) ! -!PTERMS(CARBO,K105) = +0.07976*K105*<ALKAP>*<MO2> - PTERMS(:,25,105) = +0.07976*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) +!PTERMS(WC_OH,KC45) = -KC45*<WC_OH>*<WC_RP16> + PTERMS(:,98,534) = -TPK%KC45(:)*PCONC(:,98)*PCONC(:,116) ! -!PTERMS(MO2,K105) = -K105*<ALKAP>*<MO2> - PTERMS(:,32,105) = -TPK%K105(:)*PCONC(:,33)*PCONC(:,32) +!PTERMS(WC_HO2,KC45) = +0.71*KC45*<WC_OH>*<WC_RP16> + PTERMS(:,99,534) = +0.71*TPK%KC45(:)*PCONC(:,98)*PCONC(:,116) ! -!PTERMS(ALKAP,K105) = -K105*<ALKAP>*<MO2> - PTERMS(:,33,105) = -TPK%K105(:)*PCONC(:,33)*PCONC(:,32) +!PTERMS(WC_CO2,KC45) = +2*KC45*<WC_OH>*<WC_RP16> + PTERMS(:,100,534) = +2*TPK%KC45(:)*PCONC(:,98)*PCONC(:,116) ! -!PTERMS(XO2,K105) = +0.13370*K105*<ALKAP>*<MO2> - PTERMS(:,41,105) = +0.13370*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) +!PTERMS(WC_RP16,KC45) = -KC45*<WC_OH>*<WC_RP16> + PTERMS(:,116,534) = -TPK%KC45(:)*PCONC(:,98)*PCONC(:,116) ! -!PTERMS(HO2,K106) = +K106*<ALKEP>*<MO2> - PTERMS(:,15,106) = +TPK%K106(:)*PCONC(:,34)*PCONC(:,32) +!PTERMS(WC_OH,KC46) = -KC46*<WC_OH>*<WC_ACID2> + PTERMS(:,98,535) = -TPK%KC46(:)*PCONC(:,98)*PCONC(:,119) ! -!PTERMS(HCHO,K106) = +1.42894*K106*<ALKEP>*<MO2> - PTERMS(:,22,106) = +1.42894*TPK%K106(:)*PCONC(:,34)*PCONC(:,32) +!PTERMS(WC_ACID2,KC46) = -KC46*<WC_OH>*<WC_ACID2> + PTERMS(:,119,535) = -TPK%KC46(:)*PCONC(:,98)*PCONC(:,119) ! ! RETURN -END SUBROUTINE SUBT21 +END SUBROUTINE SUBT79 ! -SUBROUTINE SUBT22 +SUBROUTINE SUBT80 ! -!Indices 441 a 460 +!Indices 1601 a 1620 ! -!PTERMS(ALD,K106) = +0.46413*K106*<ALKEP>*<MO2> - PTERMS(:,23,106) = +0.46413*TPK%K106(:)*PCONC(:,34)*PCONC(:,32) +!PTERMS(WR_H2O2,KR1) = -KR1*<WR_H2O2> + PTERMS(:,126,536) = -TPK%KR1(:)*PCONC(:,126) ! -!PTERMS(KET,K106) = +0.03814*K106*<ALKEP>*<MO2> - PTERMS(:,24,106) = +0.03814*TPK%K106(:)*PCONC(:,34)*PCONC(:,32) +!PTERMS(WR_OH,KR1) = +KR1*<WR_H2O2> + PTERMS(:,135,536) = +TPK%KR1(:)*PCONC(:,126) ! -!PTERMS(MO2,K106) = -K106*<ALKEP>*<MO2> - PTERMS(:,32,106) = -TPK%K106(:)*PCONC(:,34)*PCONC(:,32) +!PTERMS(WR_H2O2,KR2) = +KR2*<WR_OH>*<WR_OH> + PTERMS(:,126,537) = +TPK%KR2(:)*PCONC(:,135)*PCONC(:,135) ! -!PTERMS(ALKEP,K106) = -K106*<ALKEP>*<MO2> - PTERMS(:,34,106) = -TPK%K106(:)*PCONC(:,34)*PCONC(:,32) +!PTERMS(WR_OH,KR2) = -KR2*<WR_OH>*<WR_OH> + PTERMS(:,135,537) = -TPK%KR2(:)*PCONC(:,135)*PCONC(:,135) ! -!PTERMS(HO2,K107) = +1.00000*K107*<BIOP>*<MO2> - PTERMS(:,15,107) = +1.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) +!PTERMS(WR_OH,KR3) = -KR3*<WR_HO2>*<WR_OH> + PTERMS(:,135,538) = -TPK%KR3(:)*PCONC(:,136)*PCONC(:,135) ! -!PTERMS(ALKE,K107) = +0.48074*K107*<BIOP>*<MO2> - PTERMS(:,19,107) = +0.48074*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) +!PTERMS(WR_HO2,KR3) = -KR3*<WR_HO2>*<WR_OH> + PTERMS(:,136,538) = -TPK%KR3(:)*PCONC(:,136)*PCONC(:,135) ! -!PTERMS(HCHO,K107) = +1.09000*K107*<BIOP>*<MO2> - PTERMS(:,22,107) = +1.09000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) +!PTERMS(WR_H2O2,KR4) = -KR4*<WR_OH>*<WR_H2O2> + PTERMS(:,126,539) = -TPK%KR4(:)*PCONC(:,135)*PCONC(:,126) ! -!PTERMS(ALD,K107) = +0.00000*K107*<BIOP>*<MO2> - PTERMS(:,23,107) = +0.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) +!PTERMS(WR_OH,KR4) = -KR4*<WR_OH>*<WR_H2O2> + PTERMS(:,135,539) = -TPK%KR4(:)*PCONC(:,135)*PCONC(:,126) ! -!PTERMS(KET,K107) = +0.00000*K107*<BIOP>*<MO2> - PTERMS(:,24,107) = +0.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) +!PTERMS(WR_HO2,KR4) = +KR4*<WR_OH>*<WR_H2O2> + PTERMS(:,136,539) = +TPK%KR4(:)*PCONC(:,135)*PCONC(:,126) ! -!PTERMS(CARBO,K107) = +0.56064*K107*<BIOP>*<MO2> - PTERMS(:,25,107) = +0.56064*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) +!PTERMS(WR_H2O2,KR5) = +KR5*<WR_HO2>*<WR_HO2> + PTERMS(:,126,540) = +TPK%KR5(:)*PCONC(:,136)*PCONC(:,136) ! -!PTERMS(MO2,K107) = -K107*<BIOP>*<MO2> - PTERMS(:,32,107) = -TPK%K107(:)*PCONC(:,35)*PCONC(:,32) +!PTERMS(WR_HO2,KR5) = -KR5*<WR_HO2>*<WR_HO2> + PTERMS(:,136,540) = -TPK%KR5(:)*PCONC(:,136)*PCONC(:,136) ! -!PTERMS(BIOP,K107) = -K107*<BIOP>*<MO2> - PTERMS(:,35,107) = -TPK%K107(:)*PCONC(:,35)*PCONC(:,32) +!PTERMS(WR_O3,KR6) = -KR6*<WR_HO2>*<WR_O3> + PTERMS(:,125,541) = -TPK%KR6(:)*PCONC(:,136)*PCONC(:,125) ! -!PTERMS(HO2,K108) = +1.02767*K108*<AROP>*<MO2> - PTERMS(:,15,108) = +1.02767*TPK%K108(:)*PCONC(:,38)*PCONC(:,32) +!PTERMS(WR_OH,KR6) = +KR6*<WR_HO2>*<WR_O3> + PTERMS(:,135,541) = +TPK%KR6(:)*PCONC(:,136)*PCONC(:,125) ! -!PTERMS(HCHO,K108) = +K108*<AROP>*<MO2> - PTERMS(:,22,108) = +TPK%K108(:)*PCONC(:,38)*PCONC(:,32) +!PTERMS(WR_HO2,KR6) = -KR6*<WR_HO2>*<WR_O3> + PTERMS(:,136,541) = -TPK%KR6(:)*PCONC(:,136)*PCONC(:,125) ! -!PTERMS(CARBO,K108) = +1.99461*K108*<AROP>*<MO2> - PTERMS(:,25,108) = +1.99461*TPK%K108(:)*PCONC(:,38)*PCONC(:,32) +!PTERMS(WR_OH,KR7) = -KR7*<WR_SO2>*<WR_OH> + PTERMS(:,135,542) = -TPK%KR7(:)*PCONC(:,138)*PCONC(:,135) ! -!PTERMS(MO2,K108) = -K108*<AROP>*<MO2> - PTERMS(:,32,108) = -TPK%K108(:)*PCONC(:,38)*PCONC(:,32) +!PTERMS(WR_SO2,KR7) = -KR7*<WR_SO2>*<WR_OH> + PTERMS(:,138,542) = -TPK%KR7(:)*PCONC(:,138)*PCONC(:,135) ! -!PTERMS(AROP,K108) = -K108*<AROP>*<MO2> - PTERMS(:,38,108) = -TPK%K108(:)*PCONC(:,38)*PCONC(:,32) +!PTERMS(WR_ASO3,KR7) = +KR7*<WR_SO2>*<WR_OH> + PTERMS(:,157,542) = +TPK%KR7(:)*PCONC(:,138)*PCONC(:,135) ! -!PTERMS(HO2,K109) = +0.82998*K109*<CARBOP>*<MO2> - PTERMS(:,15,109) = +0.82998*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) +!PTERMS(WR_NO2,KR8) = +KR8*<WR_OH>*<WR_HONO> + PTERMS(:,128,543) = +TPK%KR8(:)*PCONC(:,135)*PCONC(:,131) ! -!PTERMS(HCHO,K109) = +0.95723*K109*<CARBOP>*<MO2> - PTERMS(:,22,109) = +0.95723*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) +!PTERMS(WR_HONO,KR8) = -KR8*<WR_OH>*<WR_HONO> + PTERMS(:,131,543) = -TPK%KR8(:)*PCONC(:,135)*PCONC(:,131) ! -!PTERMS(ALD,K109) = +0.08295*K109*<CARBOP>*<MO2> - PTERMS(:,23,109) = +0.08295*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) +!PTERMS(WR_OH,KR8) = -KR8*<WR_OH>*<WR_HONO> + PTERMS(:,135,543) = -TPK%KR8(:)*PCONC(:,135)*PCONC(:,131) ! ! RETURN -END SUBROUTINE SUBT22 +END SUBROUTINE SUBT80 ! -SUBROUTINE SUBT23 +SUBROUTINE SUBT81 ! -!Indices 461 a 480 +!Indices 1621 a 1640 ! -!PTERMS(CARBO,K109) = +0.15387*K109*<CARBOP>*<MO2> - PTERMS(:,25,109) = +0.15387*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) +!PTERMS(WR_NO2,KR9) = -KR9*<WR_HO2>*<WR_NO2> + PTERMS(:,128,544) = -TPK%KR9(:)*PCONC(:,136)*PCONC(:,128) ! -!PTERMS(ORA2,K109) = +0.13684*K109*<CARBOP>*<MO2> - PTERMS(:,31,109) = +0.13684*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) +!PTERMS(WR_HNO4,KR9) = +KR9*<WR_HO2>*<WR_NO2> + PTERMS(:,133,544) = +TPK%KR9(:)*PCONC(:,136)*PCONC(:,128) ! -!PTERMS(MO2,K109) = -K109*<CARBOP>*<MO2> - PTERMS(:,32,109) = -TPK%K109(:)*PCONC(:,39)*PCONC(:,32) +!PTERMS(WR_HO2,KR9) = -KR9*<WR_HO2>*<WR_NO2> + PTERMS(:,136,544) = -TPK%KR9(:)*PCONC(:,136)*PCONC(:,128) ! -!PTERMS(CARBOP,K109) = -K109*<CARBOP>*<MO2> - PTERMS(:,39,109) = -TPK%K109(:)*PCONC(:,39)*PCONC(:,32) +!PTERMS(WR_NO2,KR10) = +KR10*<WR_HNO4> + PTERMS(:,128,545) = +TPK%KR10(:)*PCONC(:,133) ! -!PTERMS(XO2,K109) = +0.02212*K109*<CARBOP>*<MO2> - PTERMS(:,41,109) = +0.02212*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) +!PTERMS(WR_HNO4,KR10) = -KR10*<WR_HNO4> + PTERMS(:,133,545) = -TPK%KR10(:)*PCONC(:,133) ! -!PTERMS(NO2,K110) = +0.32440*K110*<OLN>*<MO2> - PTERMS(:,4,110) = +0.32440*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) +!PTERMS(WR_HO2,KR10) = +KR10*<WR_HNO4> + PTERMS(:,136,545) = +TPK%KR10(:)*PCONC(:,133) ! -!PTERMS(HO2,K110) = +0.67560*K110*<OLN>*<MO2> - PTERMS(:,15,110) = +0.67560*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) +!PTERMS(WR_HONO,KR11) = +KR11*<WR_HNO4> + PTERMS(:,131,546) = +TPK%KR11(:)*PCONC(:,133) ! -!PTERMS(HCHO,K110) = +0.88625*K110*<OLN>*<MO2> - PTERMS(:,22,110) = +0.88625*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) +!PTERMS(WR_HNO4,KR11) = -KR11*<WR_HNO4> + PTERMS(:,133,546) = -TPK%KR11(:)*PCONC(:,133) ! -!PTERMS(ALD,K110) = +0.41524*K110*<OLN>*<MO2> - PTERMS(:,23,110) = +0.41524*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) +!PTERMS(WR_HNO3,KR12) = +KR12*<WR_SO2>*<WR_HNO4> + PTERMS(:,132,547) = +TPK%KR12(:)*PCONC(:,138)*PCONC(:,133) ! -!PTERMS(KET,K110) = +0.09667*K110*<OLN>*<MO2> - PTERMS(:,24,110) = +0.09667*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) +!PTERMS(WR_HNO4,KR12) = -KR12*<WR_SO2>*<WR_HNO4> + PTERMS(:,133,547) = -TPK%KR12(:)*PCONC(:,138)*PCONC(:,133) ! -!PTERMS(ONIT,K110) = +0.67560*K110*<OLN>*<MO2> - PTERMS(:,26,110) = +0.67560*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) +!PTERMS(WR_SO2,KR12) = -KR12*<WR_SO2>*<WR_HNO4> + PTERMS(:,138,547) = -TPK%KR12(:)*PCONC(:,138)*PCONC(:,133) ! -!PTERMS(MO2,K110) = -K110*<OLN>*<MO2> - PTERMS(:,32,110) = -TPK%K110(:)*PCONC(:,40)*PCONC(:,32) +!PTERMS(WR_H2SO4,KR12) = +KR12*<WR_SO2>*<WR_HNO4> + PTERMS(:,139,547) = +TPK%KR12(:)*PCONC(:,138)*PCONC(:,133) ! -!PTERMS(OLN,K110) = -K110*<OLN>*<MO2> - PTERMS(:,40,110) = -TPK%K110(:)*PCONC(:,40)*PCONC(:,32) +!PTERMS(WR_NO2,KR13) = +KR13*<WR_HNO3> + PTERMS(:,128,548) = +TPK%KR13(:)*PCONC(:,132) ! -!PTERMS(HO2,K111) = +0.48079*K111*<ALKAP>*<CARBOP> - PTERMS(:,15,111) = +0.48079*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(WR_HNO3,KR13) = -KR13*<WR_HNO3> + PTERMS(:,132,548) = -TPK%KR13(:)*PCONC(:,132) ! -!PTERMS(HCHO,K111) = +0.07600*K111*<ALKAP>*<CARBOP> - PTERMS(:,22,111) = +0.07600*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(WR_OH,KR13) = +KR13*<WR_HNO3> + PTERMS(:,135,548) = +TPK%KR13(:)*PCONC(:,132) ! -!PTERMS(ALD,K111) = +0.71461*K111*<ALKAP>*<CARBOP> - PTERMS(:,23,111) = +0.71461*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(WR_N2O5,KR14) = -KR14*<WR_N2O5> + PTERMS(:,130,549) = -TPK%KR14(:)*PCONC(:,130) ! -!PTERMS(KET,K111) = +0.18819*K111*<ALKAP>*<CARBOP> - PTERMS(:,24,111) = +0.18819*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(WR_HNO3,KR14) = +KR14*<WR_N2O5> + PTERMS(:,132,549) = +TPK%KR14(:)*PCONC(:,130) ! -!PTERMS(CARBO,K111) = +0.06954*K111*<ALKAP>*<CARBOP> - PTERMS(:,25,111) = +0.06954*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(WR_NO3,KR15) = -KR15*<WR_H2SO4>*<WR_NO3> + PTERMS(:,129,550) = -TPK%KR15(:)*PCONC(:,139)*PCONC(:,129) ! -!PTERMS(ORA2,K111) = +0.49810*K111*<ALKAP>*<CARBOP> - PTERMS(:,31,111) = +0.49810*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(WR_HNO3,KR15) = +KR15*<WR_H2SO4>*<WR_NO3> + PTERMS(:,132,550) = +TPK%KR15(:)*PCONC(:,139)*PCONC(:,129) ! -!PTERMS(MO2,K111) = +0.51480*K111*<ALKAP>*<CARBOP> - PTERMS(:,32,111) = +0.51480*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(WR_H2SO4,KR15) = -KR15*<WR_H2SO4>*<WR_NO3> + PTERMS(:,139,550) = -TPK%KR15(:)*PCONC(:,139)*PCONC(:,129) ! ! RETURN -END SUBROUTINE SUBT23 +END SUBROUTINE SUBT81 ! -SUBROUTINE SUBT24 +SUBROUTINE SUBT82 ! -!Indices 481 a 500 +!Indices 1641 a 1660 ! -!PTERMS(ALKAP,K111) = -K111*<ALKAP>*<CARBOP> - PTERMS(:,33,111) = -TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(WR_ASO4,KR15) = +KR15*<WR_H2SO4>*<WR_NO3> + PTERMS(:,158,550) = +TPK%KR15(:)*PCONC(:,139)*PCONC(:,129) ! -!PTERMS(CARBOP,K111) = -K111*<ALKAP>*<CARBOP> - PTERMS(:,39,111) = -TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(WR_NO3,KR16) = -KR16*<WR_SO2>*<WR_NO3> + PTERMS(:,129,551) = -TPK%KR16(:)*PCONC(:,138)*PCONC(:,129) ! -!PTERMS(XO2,K111) = +0.11306*K111*<ALKAP>*<CARBOP> - PTERMS(:,41,111) = +0.11306*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) +!PTERMS(WR_HNO3,KR16) = +KR16*<WR_SO2>*<WR_NO3> + PTERMS(:,132,551) = +TPK%KR16(:)*PCONC(:,138)*PCONC(:,129) ! -!PTERMS(HO2,K112) = +0.50078*K112*<ALKEP>*<CARBOP> - PTERMS(:,15,112) = +0.50078*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) +!PTERMS(WR_SO2,KR16) = -KR16*<WR_SO2>*<WR_NO3> + PTERMS(:,138,551) = -TPK%KR16(:)*PCONC(:,138)*PCONC(:,129) ! -!PTERMS(HCHO,K112) = +0.68192*K112*<ALKEP>*<CARBOP> - PTERMS(:,22,112) = +0.68192*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) +!PTERMS(WR_ASO3,KR16) = +KR16*<WR_SO2>*<WR_NO3> + PTERMS(:,157,551) = +TPK%KR16(:)*PCONC(:,138)*PCONC(:,129) ! -!PTERMS(ALD,K112) = +0.68374*K112*<ALKEP>*<CARBOP> - PTERMS(:,23,112) = +0.68374*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) +!PTERMS(WR_SO2,KR17) = -KR17*<WR_HCHO>*<WR_SO2> + PTERMS(:,138,552) = -TPK%KR17(:)*PCONC(:,145)*PCONC(:,138) ! -!PTERMS(KET,K112) = +0.06579*K112*<ALKEP>*<CARBOP> - PTERMS(:,24,112) = +0.06579*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) +!PTERMS(WR_HCHO,KR17) = -KR17*<WR_HCHO>*<WR_SO2> + PTERMS(:,145,552) = -TPK%KR17(:)*PCONC(:,145)*PCONC(:,138) ! -!PTERMS(ORA2,K112) = +0.49922*K112*<ALKEP>*<CARBOP> - PTERMS(:,31,112) = +0.49922*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) +!PTERMS(WR_AHMS,KR17) = +KR17*<WR_HCHO>*<WR_SO2> + PTERMS(:,161,552) = +TPK%KR17(:)*PCONC(:,145)*PCONC(:,138) ! -!PTERMS(MO2,K112) = +0.50078*K112*<ALKEP>*<CARBOP> - PTERMS(:,32,112) = +0.50078*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) +!PTERMS(WR_SO2,KR18) = +KR18*<WR_AHMS> + PTERMS(:,138,553) = +TPK%KR18(:)*PCONC(:,161) ! -!PTERMS(ALKEP,K112) = -K112*<ALKEP>*<CARBOP> - PTERMS(:,34,112) = -TPK%K112(:)*PCONC(:,34)*PCONC(:,39) +!PTERMS(WR_HCHO,KR18) = +KR18*<WR_AHMS> + PTERMS(:,145,553) = +TPK%KR18(:)*PCONC(:,161) ! -!PTERMS(CARBOP,K112) = -K112*<ALKEP>*<CARBOP> - PTERMS(:,39,112) = -TPK%K112(:)*PCONC(:,34)*PCONC(:,39) +!PTERMS(WR_AHMS,KR18) = -KR18*<WR_AHMS> + PTERMS(:,161,553) = -TPK%KR18(:)*PCONC(:,161) ! -!PTERMS(HO2,K113) = +0.50600*K113*<BIOP>*<CARBOP> - PTERMS(:,15,113) = +0.50600*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(WR_OH,KR19) = -KR19*<WR_OH>*<WR_AHMS> + PTERMS(:,135,554) = -TPK%KR19(:)*PCONC(:,135)*PCONC(:,161) ! -!PTERMS(ALKE,K113) = +0.24463*K113*<BIOP>*<CARBOP> - PTERMS(:,19,113) = +0.24463*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(WR_HO2,KR19) = +KR19*<WR_OH>*<WR_AHMS> + PTERMS(:,136,554) = +TPK%KR19(:)*PCONC(:,135)*PCONC(:,161) ! -!PTERMS(HCHO,K113) = +0.34000*K113*<BIOP>*<CARBOP> - PTERMS(:,22,113) = +0.34000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(WR_SO2,KR19) = +KR19*<WR_OH>*<WR_AHMS> + PTERMS(:,138,554) = +TPK%KR19(:)*PCONC(:,135)*PCONC(:,161) ! -!PTERMS(ALD,K113) = +0.00000*K113*<BIOP>*<CARBOP> - PTERMS(:,23,113) = +0.00000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(WR_ORA1,KR19) = +KR19*<WR_OH>*<WR_AHMS> + PTERMS(:,150,554) = +TPK%KR19(:)*PCONC(:,135)*PCONC(:,161) ! -!PTERMS(KET,K113) = +0.00000*K113*<BIOP>*<CARBOP> - PTERMS(:,24,113) = +0.00000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(WR_AHMS,KR19) = -KR19*<WR_OH>*<WR_AHMS> + PTERMS(:,161,554) = -TPK%KR19(:)*PCONC(:,135)*PCONC(:,161) ! -!PTERMS(CARBO,K113) = +0.78591*K113*<BIOP>*<CARBOP> - PTERMS(:,25,113) = +0.78591*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(WR_ASO3,KR20) = -KR20*<W_O2>*<WR_ASO3> + PTERMS(:,157,555) = -TPK%KR20(:)*TPK%W_O2(:)*PCONC(:,157) ! -!PTERMS(ORA2,K113) = +0.49400*K113*<BIOP>*<CARBOP> - PTERMS(:,31,113) = +0.49400*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(WR_ASO5,KR20) = +KR20*<W_O2>*<WR_ASO3> + PTERMS(:,159,555) = +TPK%KR20(:)*TPK%W_O2(:)*PCONC(:,157) ! -!PTERMS(MO2,K113) = +0.50600*K113*<BIOP>*<CARBOP> - PTERMS(:,32,113) = +0.50600*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(WR_HO2,KR21) = -KR21*<WR_HO2>*<WR_ASO5> + PTERMS(:,136,556) = -TPK%KR21(:)*PCONC(:,136)*PCONC(:,159) ! -!PTERMS(BIOP,K113) = -K113*<BIOP>*<CARBOP> - PTERMS(:,35,113) = -TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(WR_ASO5,KR21) = -KR21*<WR_HO2>*<WR_ASO5> + PTERMS(:,159,556) = -TPK%KR21(:)*PCONC(:,136)*PCONC(:,159) ! ! RETURN -END SUBROUTINE SUBT24 +END SUBROUTINE SUBT82 ! -SUBROUTINE SUBT25 +SUBROUTINE SUBT83 ! -!Indices 501 a 520 +!Indices 1661 a 1680 ! -!PTERMS(CARBOP,K113) = -K113*<BIOP>*<CARBOP> - PTERMS(:,39,113) = -TPK%K113(:)*PCONC(:,35)*PCONC(:,39) +!PTERMS(WR_AHSO5,KR21) = +KR21*<WR_HO2>*<WR_ASO5> + PTERMS(:,160,556) = +TPK%KR21(:)*PCONC(:,136)*PCONC(:,159) ! -!PTERMS(HO2,K114) = +K114*<AROP>*<CARBOP> - PTERMS(:,15,114) = +TPK%K114(:)*PCONC(:,38)*PCONC(:,39) +!PTERMS(WR_ASO4,KR22) = +KR22*<WR_ASO5>*<WR_ASO5> + PTERMS(:,158,557) = +TPK%KR22(:)*PCONC(:,159)*PCONC(:,159) ! -!PTERMS(CARBO,K114) = +1.99455*K114*<AROP>*<CARBOP> - PTERMS(:,25,114) = +1.99455*TPK%K114(:)*PCONC(:,38)*PCONC(:,39) +!PTERMS(WR_ASO5,KR22) = -KR22*<WR_ASO5>*<WR_ASO5> + PTERMS(:,159,557) = -TPK%KR22(:)*PCONC(:,159)*PCONC(:,159) ! -!PTERMS(MO2,K114) = +K114*<AROP>*<CARBOP> - PTERMS(:,32,114) = +TPK%K114(:)*PCONC(:,38)*PCONC(:,39) +!PTERMS(WR_SO2,KR23) = -KR23*<WR_SO2>*<WR_AHSO5> + PTERMS(:,138,558) = -TPK%KR23(:)*PCONC(:,138)*PCONC(:,160) ! -!PTERMS(AROP,K114) = -K114*<AROP>*<CARBOP> - PTERMS(:,38,114) = -TPK%K114(:)*PCONC(:,38)*PCONC(:,39) +!PTERMS(WR_H2SO4,KR23) = +2.00*KR23*<WR_SO2>*<WR_AHSO5> + PTERMS(:,139,558) = +2.00*TPK%KR23(:)*PCONC(:,138)*PCONC(:,160) ! -!PTERMS(CARBOP,K114) = -K114*<AROP>*<CARBOP> - PTERMS(:,39,114) = -TPK%K114(:)*PCONC(:,38)*PCONC(:,39) +!PTERMS(WR_AHSO5,KR23) = -KR23*<WR_SO2>*<WR_AHSO5> + PTERMS(:,160,558) = -TPK%KR23(:)*PCONC(:,138)*PCONC(:,160) ! -!PTERMS(HO2,K115) = +0.07566*K115*<CARBOP>*<CARBOP> - PTERMS(:,15,115) = +0.07566*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(WR_OH,KR24) = +KR24*<WR_ASO4> + PTERMS(:,135,559) = +TPK%KR24(:)*PCONC(:,158) ! -!PTERMS(HCHO,K115) = +0.03432*K115*<CARBOP>*<CARBOP> - PTERMS(:,22,115) = +0.03432*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(WR_H2SO4,KR24) = +KR24*<WR_ASO4> + PTERMS(:,139,559) = +TPK%KR24(:)*PCONC(:,158) ! -!PTERMS(ALD,K115) = +0.06969*K115*<CARBOP>*<CARBOP> - PTERMS(:,23,115) = +0.06969*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(WR_ASO4,KR24) = -KR24*<WR_ASO4> + PTERMS(:,158,559) = -TPK%KR24(:)*PCONC(:,158) ! -!PTERMS(KET,K115) = +0.02190*K115*<CARBOP>*<CARBOP> - PTERMS(:,24,115) = +0.02190*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(WR_O3,KR25) = -KR25*<WR_O3>*<WR_SO2> + PTERMS(:,125,560) = -TPK%KR25(:)*PCONC(:,125)*PCONC(:,138) ! -!PTERMS(CARBO,K115) = +0.10777*K115*<CARBOP>*<CARBOP> - PTERMS(:,25,115) = +0.10777*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(WR_SO2,KR25) = -KR25*<WR_O3>*<WR_SO2> + PTERMS(:,138,560) = -TPK%KR25(:)*PCONC(:,125)*PCONC(:,138) ! -!PTERMS(ORA2,K115) = +0.09955*K115*<CARBOP>*<CARBOP> - PTERMS(:,31,115) = +0.09955*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(WR_H2SO4,KR25) = +KR25*<WR_O3>*<WR_SO2> + PTERMS(:,139,560) = +TPK%KR25(:)*PCONC(:,125)*PCONC(:,138) ! -!PTERMS(MO2,K115) = +1.66702*K115*<CARBOP>*<CARBOP> - PTERMS(:,32,115) = +1.66702*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(WR_H2O2,KR26) = -KR26*<WR_H2O2>*<WR_SO2> + PTERMS(:,126,561) = -TPK%KR26(:)*PCONC(:,126)*PCONC(:,138) ! -!PTERMS(CARBOP,K115) = -K115*<CARBOP>*<CARBOP> - PTERMS(:,39,115) = -TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(WR_SO2,KR26) = -KR26*<WR_H2O2>*<WR_SO2> + PTERMS(:,138,561) = -TPK%KR26(:)*PCONC(:,126)*PCONC(:,138) ! -!PTERMS(XO2,K115) = +0.01593*K115*<CARBOP>*<CARBOP> - PTERMS(:,41,115) = +0.01593*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) +!PTERMS(WR_H2SO4,KR26) = +KR26*<WR_H2O2>*<WR_SO2> + PTERMS(:,139,561) = +TPK%KR26(:)*PCONC(:,126)*PCONC(:,138) ! -!PTERMS(NO2,K116) = +0.00000*K116*<OLN>*<CARBOP> - PTERMS(:,4,116) = +0.00000*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(WR_HO2,KR27) = +2.00*KR27*<WR_RO21>*<WR_RO21> + PTERMS(:,136,562) = +2.00*TPK%KR27(:)*PCONC(:,140)*PCONC(:,140) ! -!PTERMS(HO2,K116) = +0.17599*K116*<OLN>*<CARBOP> - PTERMS(:,15,116) = +0.17599*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(WR_RO21,KR27) = -KR27*<WR_RO21>*<WR_RO21> + PTERMS(:,140,562) = -TPK%KR27(:)*PCONC(:,140)*PCONC(:,140) ! -!PTERMS(HCHO,K116) = +0.13414*K116*<OLN>*<CARBOP> - PTERMS(:,22,116) = +0.13414*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(WR_HCHO,KR27) = +2.00*KR27*<WR_RO21>*<WR_RO21> + PTERMS(:,145,562) = +2.00*TPK%KR27(:)*PCONC(:,140)*PCONC(:,140) ! -!PTERMS(ALD,K116) = +0.42122*K116*<OLN>*<CARBOP> - PTERMS(:,23,116) = +0.42122*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(WR_SO2,KR28) = -KR28*<WR_SO2>*<WR_RO21> + PTERMS(:,138,563) = -TPK%KR28(:)*PCONC(:,138)*PCONC(:,140) ! -!PTERMS(KET,K116) = +0.10822*K116*<OLN>*<CARBOP> - PTERMS(:,24,116) = +0.10822*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(WR_RO21,KR28) = -KR28*<WR_SO2>*<WR_RO21> + PTERMS(:,140,563) = -TPK%KR28(:)*PCONC(:,138)*PCONC(:,140) ! ! RETURN -END SUBROUTINE SUBT25 +END SUBROUTINE SUBT83 ! -SUBROUTINE SUBT26 +SUBROUTINE SUBT84 ! -!Indices 521 a 540 +!Indices 1681 a 1700 ! -!PTERMS(ONIT,K116) = +0.66562*K116*<OLN>*<CARBOP> - PTERMS(:,26,116) = +0.66562*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(WR_HCHO,KR28) = +KR28*<WR_SO2>*<WR_RO21> + PTERMS(:,145,563) = +TPK%KR28(:)*PCONC(:,138)*PCONC(:,140) ! -!PTERMS(ORA2,K116) = +0.48963*K116*<OLN>*<CARBOP> - PTERMS(:,31,116) = +0.48963*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(WR_ASO3,KR28) = +KR28*<WR_SO2>*<WR_RO21> + PTERMS(:,157,563) = +TPK%KR28(:)*PCONC(:,138)*PCONC(:,140) ! -!PTERMS(MO2,K116) = +0.51037*K116*<OLN>*<CARBOP> - PTERMS(:,32,116) = +0.51037*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(WR_H2O2,KR29) = +KR29*<WR_RO25>*<WR_RO25> + PTERMS(:,126,564) = +TPK%KR29(:)*PCONC(:,141)*PCONC(:,141) ! -!PTERMS(CARBOP,K116) = -K116*<OLN>*<CARBOP> - PTERMS(:,39,116) = -TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(WR_HO2,KR29) = +KR29*<WR_RO25>*<WR_RO25> + PTERMS(:,136,564) = +TPK%KR29(:)*PCONC(:,141)*PCONC(:,141) ! -!PTERMS(OLN,K116) = -K116*<OLN>*<CARBOP> - PTERMS(:,40,116) = -TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PTERMS(WR_RO25,KR29) = -KR29*<WR_RO25>*<WR_RO25> + PTERMS(:,141,564) = -TPK%KR29(:)*PCONC(:,141)*PCONC(:,141) ! -!PTERMS(HO2,K117) = +K117*<OLN>*<OLN> - PTERMS(:,15,117) = +TPK%K117(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(WR_ALD2,KR29) = +KR29*<WR_RO25>*<WR_RO25> + PTERMS(:,146,564) = +TPK%KR29(:)*PCONC(:,141)*PCONC(:,141) ! -!PTERMS(ONIT,K117) = +2.00*K117*<OLN>*<OLN> - PTERMS(:,26,117) = +2.00*TPK%K117(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(WR_ORA2,KR29) = +KR29*<WR_RO25>*<WR_RO25> + PTERMS(:,151,564) = +TPK%KR29(:)*PCONC(:,141)*PCONC(:,141) ! -!PTERMS(OLN,K117) = -K117*<OLN>*<OLN> - PTERMS(:,40,117) = -TPK%K117(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(WR_OH,KR30) = -KR30*<WR_OH>*<WR_MEOH> + PTERMS(:,135,565) = -TPK%KR30(:)*PCONC(:,135)*PCONC(:,142) ! -!PTERMS(NO2,K118) = +0.00000*K118*<OLN>*<OLN> - PTERMS(:,4,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(WR_HO2,KR30) = +KR30*<WR_OH>*<WR_MEOH> + PTERMS(:,136,565) = +TPK%KR30(:)*PCONC(:,135)*PCONC(:,142) ! -!PTERMS(HO2,K118) = +0.00000*K118*<OLN>*<OLN> - PTERMS(:,15,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(WR_MEOH,KR30) = -KR30*<WR_OH>*<WR_MEOH> + PTERMS(:,142,565) = -TPK%KR30(:)*PCONC(:,135)*PCONC(:,142) ! -!PTERMS(HCHO,K118) = +0.00000*K118*<OLN>*<OLN> - PTERMS(:,22,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(WR_HCHO,KR30) = +KR30*<WR_OH>*<WR_MEOH> + PTERMS(:,145,565) = +TPK%KR30(:)*PCONC(:,135)*PCONC(:,142) ! -!PTERMS(ALD,K118) = +0.00000*K118*<OLN>*<OLN> - PTERMS(:,23,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(WR_OH,KR31) = -KR31*<WR_OH>*<WR_ETOH> + PTERMS(:,135,566) = -TPK%KR31(:)*PCONC(:,135)*PCONC(:,143) ! -!PTERMS(KET,K118) = +0.00000*K118*<OLN>*<OLN> - PTERMS(:,24,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(WR_HO2,KR31) = +KR31*<WR_OH>*<WR_ETOH> + PTERMS(:,136,566) = +TPK%KR31(:)*PCONC(:,135)*PCONC(:,143) ! -!PTERMS(ONIT,K118) = +0.00000*K118*<OLN>*<OLN> - PTERMS(:,26,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(WR_ETOH,KR31) = -KR31*<WR_OH>*<WR_ETOH> + PTERMS(:,143,566) = -TPK%KR31(:)*PCONC(:,135)*PCONC(:,143) ! -!PTERMS(OLN,K118) = -K118*<OLN>*<OLN> - PTERMS(:,40,118) = -TPK%K118(:)*PCONC(:,40)*PCONC(:,40) +!PTERMS(WR_ALD2,KR31) = +KR31*<WR_OH>*<WR_ETOH> + PTERMS(:,146,566) = +TPK%KR31(:)*PCONC(:,135)*PCONC(:,143) ! -!PTERMS(NO2,K119) = +K119*<MO2>*<NO3> - PTERMS(:,4,119) = +TPK%K119(:)*PCONC(:,32)*PCONC(:,5) +!PTERMS(WR_OH,KR32) = -KR32*<WR_OH>*<WR_ALCH> + PTERMS(:,135,567) = -TPK%KR32(:)*PCONC(:,135)*PCONC(:,144) ! -!PTERMS(NO3,K119) = -K119*<MO2>*<NO3> - PTERMS(:,5,119) = -TPK%K119(:)*PCONC(:,32)*PCONC(:,5) +!PTERMS(WR_HO2,KR32) = +KR32*<WR_OH>*<WR_ALCH> + PTERMS(:,136,567) = +TPK%KR32(:)*PCONC(:,135)*PCONC(:,144) ! -!PTERMS(HO2,K119) = +K119*<MO2>*<NO3> - PTERMS(:,15,119) = +TPK%K119(:)*PCONC(:,32)*PCONC(:,5) +!PTERMS(WR_ALCH,KR32) = -KR32*<WR_OH>*<WR_ALCH> + PTERMS(:,144,567) = -TPK%KR32(:)*PCONC(:,135)*PCONC(:,144) ! -!PTERMS(HCHO,K119) = +K119*<MO2>*<NO3> - PTERMS(:,22,119) = +TPK%K119(:)*PCONC(:,32)*PCONC(:,5) +!PTERMS(WR_ALD2,KR32) = +0.50*KR32*<WR_OH>*<WR_ALCH> + PTERMS(:,146,567) = +0.50*TPK%KR32(:)*PCONC(:,135)*PCONC(:,144) ! -!PTERMS(MO2,K119) = -K119*<MO2>*<NO3> - PTERMS(:,32,119) = -TPK%K119(:)*PCONC(:,32)*PCONC(:,5) +!PTERMS(WR_KETL,KR32) = +0.50*KR32*<WR_OH>*<WR_ALCH> + PTERMS(:,149,567) = +0.50*TPK%KR32(:)*PCONC(:,135)*PCONC(:,144) ! ! RETURN -END SUBROUTINE SUBT26 +END SUBROUTINE SUBT84 ! -SUBROUTINE SUBT27 +SUBROUTINE SUBT85 ! -!Indices 541 a 560 +!Indices 1701 a 1720 ! -!PTERMS(NO2,K120) = +K120*<ALKAP>*<NO3> - PTERMS(:,4,120) = +TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(WR_OH,KR33) = -KR33*<WR_OH>*<WR_HCHO> + PTERMS(:,135,568) = -TPK%KR33(:)*PCONC(:,135)*PCONC(:,145) ! -!PTERMS(NO3,K120) = -K120*<ALKAP>*<NO3> - PTERMS(:,5,120) = -TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(WR_HO2,KR33) = +KR33*<WR_OH>*<WR_HCHO> + PTERMS(:,136,568) = +TPK%KR33(:)*PCONC(:,135)*PCONC(:,145) ! -!PTERMS(HO2,K120) = +0.81290*K120*<ALKAP>*<NO3> - PTERMS(:,15,120) = +0.81290*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(WR_HCHO,KR33) = -KR33*<WR_OH>*<WR_HCHO> + PTERMS(:,145,568) = -TPK%KR33(:)*PCONC(:,135)*PCONC(:,145) ! -!PTERMS(HCHO,K120) = +0.03142*K120*<ALKAP>*<NO3> - PTERMS(:,22,120) = +0.03142*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(WR_ORA1,KR33) = +KR33*<WR_OH>*<WR_HCHO> + PTERMS(:,150,568) = +TPK%KR33(:)*PCONC(:,135)*PCONC(:,145) ! -!PTERMS(ALD,K120) = +0.33743*K120*<ALKAP>*<NO3> - PTERMS(:,23,120) = +0.33743*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(WR_OH,KR34) = -KR34*<WR_OH>*<WR_ALD2> + PTERMS(:,135,569) = -TPK%KR34(:)*PCONC(:,135)*PCONC(:,146) ! -!PTERMS(KET,K120) = +0.62978*K120*<ALKAP>*<NO3> - PTERMS(:,24,120) = +0.62978*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(WR_CO2,KR34) = +KR34*<WR_OH>*<WR_ALD2> + PTERMS(:,137,569) = +TPK%KR34(:)*PCONC(:,135)*PCONC(:,146) ! -!PTERMS(CARBO,K120) = +0.03531*K120*<ALKAP>*<NO3> - PTERMS(:,25,120) = +0.03531*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(WR_RO21,KR34) = +0.50*KR34*<WR_OH>*<WR_ALD2> + PTERMS(:,140,569) = +0.50*TPK%KR34(:)*PCONC(:,135)*PCONC(:,146) ! -!PTERMS(MO2,K120) = +0.09731*K120*<ALKAP>*<NO3> - PTERMS(:,32,120) = +0.09731*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(WR_RO25,KR34) = +0.50*KR34*<WR_OH>*<WR_ALD2> + PTERMS(:,141,569) = +0.50*TPK%KR34(:)*PCONC(:,135)*PCONC(:,146) ! -!PTERMS(ALKAP,K120) = -K120*<ALKAP>*<NO3> - PTERMS(:,33,120) = -TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(WR_ALD2,KR34) = -KR34*<WR_OH>*<WR_ALD2> + PTERMS(:,146,569) = -TPK%KR34(:)*PCONC(:,135)*PCONC(:,146) ! -!PTERMS(XO2,K120) = +0.16271*K120*<ALKAP>*<NO3> - PTERMS(:,41,120) = +0.16271*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) +!PTERMS(WR_OH,KR35) = -KR35*<WR_OH>*<WR_GLY> + PTERMS(:,135,570) = -TPK%KR35(:)*PCONC(:,135)*PCONC(:,147) ! -!PTERMS(NO2,K121) = +K121*<ALKEP>*<NO3> - PTERMS(:,4,121) = +TPK%K121(:)*PCONC(:,34)*PCONC(:,5) +!PTERMS(WR_HO2,KR35) = +KR35*<WR_OH>*<WR_GLY> + PTERMS(:,136,570) = +TPK%KR35(:)*PCONC(:,135)*PCONC(:,147) ! -!PTERMS(NO3,K121) = -K121*<ALKEP>*<NO3> - PTERMS(:,5,121) = -TPK%K121(:)*PCONC(:,34)*PCONC(:,5) +!PTERMS(WR_GLY,KR35) = -KR35*<WR_OH>*<WR_GLY> + PTERMS(:,147,570) = -TPK%KR35(:)*PCONC(:,135)*PCONC(:,147) ! -!PTERMS(HO2,K121) = +K121*<ALKEP>*<NO3> - PTERMS(:,15,121) = +TPK%K121(:)*PCONC(:,34)*PCONC(:,5) +!PTERMS(WR_RP16,KR35) = +KR35*<WR_OH>*<WR_GLY> + PTERMS(:,153,570) = +TPK%KR35(:)*PCONC(:,135)*PCONC(:,147) ! -!PTERMS(HCHO,K121) = +1.40909*K121*<ALKEP>*<NO3> - PTERMS(:,22,121) = +1.40909*TPK%K121(:)*PCONC(:,34)*PCONC(:,5) +!PTERMS(WR_OH,KR36) = -KR36*<WR_OH>*<WR_MGLY> + PTERMS(:,135,571) = -TPK%KR36(:)*PCONC(:,135)*PCONC(:,148) ! -!PTERMS(ALD,K121) = +0.43039*K121*<ALKEP>*<NO3> - PTERMS(:,23,121) = +0.43039*TPK%K121(:)*PCONC(:,34)*PCONC(:,5) +!PTERMS(WR_HO2,KR36) = +KR36*<WR_OH>*<WR_MGLY> + PTERMS(:,136,571) = +TPK%KR36(:)*PCONC(:,135)*PCONC(:,148) ! -!PTERMS(KET,K121) = +0.02051*K121*<ALKEP>*<NO3> - PTERMS(:,24,121) = +0.02051*TPK%K121(:)*PCONC(:,34)*PCONC(:,5) +!PTERMS(WR_MGLY,KR36) = -KR36*<WR_OH>*<WR_MGLY> + PTERMS(:,148,571) = -TPK%KR36(:)*PCONC(:,135)*PCONC(:,148) ! -!PTERMS(ALKEP,K121) = -K121*<ALKEP>*<NO3> - PTERMS(:,34,121) = -TPK%K121(:)*PCONC(:,34)*PCONC(:,5) +!PTERMS(WR_UR21,KR36) = +KR36*<WR_OH>*<WR_MGLY> + PTERMS(:,154,571) = +TPK%KR36(:)*PCONC(:,135)*PCONC(:,148) ! -!PTERMS(NO2,K122) = +K122*<BIOP>*<NO3> - PTERMS(:,4,122) = +TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(WR_H2O2,KR37) = +KR37*<WR_OH>*<WR_KETL> + PTERMS(:,126,572) = +TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) ! -!PTERMS(NO3,K122) = -K122*<BIOP>*<NO3> - PTERMS(:,5,122) = -TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(WR_OH,KR37) = -KR37*<WR_OH>*<WR_KETL> + PTERMS(:,135,572) = -TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) ! -!PTERMS(HO2,K122) = +K122*<BIOP>*<NO3> - PTERMS(:,15,122) = +TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(WR_HO2,KR37) = +KR37*<WR_OH>*<WR_KETL> + PTERMS(:,136,572) = +TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) ! ! RETURN -END SUBROUTINE SUBT27 +END SUBROUTINE SUBT85 ! -SUBROUTINE SUBT28 +SUBROUTINE SUBT86 ! -!Indices 561 a 580 +!Indices 1721 a 1740 ! -!PTERMS(ALKE,K122) = +0.42729*K122*<BIOP>*<NO3> - PTERMS(:,19,122) = +0.42729*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(WR_CO2,KR37) = +KR37*<WR_OH>*<WR_KETL> + PTERMS(:,137,572) = +TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) ! -!PTERMS(HCHO,K122) = +0.68600*K122*<BIOP>*<NO3> - PTERMS(:,22,122) = +0.68600*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(WR_RO21,KR37) = +KR37*<WR_OH>*<WR_KETL> + PTERMS(:,140,572) = +TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) ! -!PTERMS(ALD,K122) = +0.00000*K122*<BIOP>*<NO3> - PTERMS(:,23,122) = +0.00000*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(WR_HCHO,KR37) = +KR37*<WR_OH>*<WR_KETL> + PTERMS(:,145,572) = +TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) ! -!PTERMS(KET,K122) = +0.00000*K122*<BIOP>*<NO3> - PTERMS(:,24,122) = +0.00000*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(WR_ALD2,KR37) = +KR37*<WR_OH>*<WR_KETL> + PTERMS(:,146,572) = +TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) ! -!PTERMS(CARBO,K122) = +0.61160*K122*<BIOP>*<NO3> - PTERMS(:,25,122) = +0.61160*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(WR_MGLY,KR37) = +KR37*<WR_OH>*<WR_KETL> + PTERMS(:,148,572) = +TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) ! -!PTERMS(BIOP,K122) = -K122*<BIOP>*<NO3> - PTERMS(:,35,122) = -TPK%K122(:)*PCONC(:,35)*PCONC(:,5) +!PTERMS(WR_KETL,KR37) = -KR37*<WR_OH>*<WR_KETL> + PTERMS(:,149,572) = -TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) ! -!PTERMS(NO2,K123) = +K123*<AROP>*<NO3> - PTERMS(:,4,123) = +TPK%K123(:)*PCONC(:,38)*PCONC(:,5) +!PTERMS(WR_UR21,KR37) = +KR37*<WR_OH>*<WR_KETL> + PTERMS(:,154,572) = +TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) ! -!PTERMS(NO3,K123) = -K123*<AROP>*<NO3> - PTERMS(:,5,123) = -TPK%K123(:)*PCONC(:,38)*PCONC(:,5) +!PTERMS(WR_OH,KR38) = -KR38*<WR_OH>*<WR_ORA1> + PTERMS(:,135,573) = -TPK%KR38(:)*PCONC(:,135)*PCONC(:,150) ! -!PTERMS(HO2,K123) = +K123*<AROP>*<NO3> - PTERMS(:,15,123) = +TPK%K123(:)*PCONC(:,38)*PCONC(:,5) +!PTERMS(WR_HO2,KR38) = +KR38*<WR_OH>*<WR_ORA1> + PTERMS(:,136,573) = +TPK%KR38(:)*PCONC(:,135)*PCONC(:,150) ! -!PTERMS(CARBO,K123) = +2.81904*K123*<AROP>*<NO3> - PTERMS(:,25,123) = +2.81904*TPK%K123(:)*PCONC(:,38)*PCONC(:,5) +!PTERMS(WR_CO2,KR38) = +KR38*<WR_OH>*<WR_ORA1> + PTERMS(:,137,573) = +TPK%KR38(:)*PCONC(:,135)*PCONC(:,150) ! -!PTERMS(AROP,K123) = -K123*<AROP>*<NO3> - PTERMS(:,38,123) = -TPK%K123(:)*PCONC(:,38)*PCONC(:,5) +!PTERMS(WR_ORA1,KR38) = -KR38*<WR_OH>*<WR_ORA1> + PTERMS(:,150,573) = -TPK%KR38(:)*PCONC(:,135)*PCONC(:,150) ! -!PTERMS(NO2,K124) = +K124*<CARBOP>*<NO3> - PTERMS(:,4,124) = +TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(WR_H2O2,KR39) = +0.5*KR39*<WR_OH>*<WR_ORA2> + PTERMS(:,126,574) = +0.5*TPK%KR39(:)*PCONC(:,135)*PCONC(:,151) ! -!PTERMS(NO3,K124) = -K124*<CARBOP>*<NO3> - PTERMS(:,5,124) = -TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(WR_OH,KR39) = -KR39*<WR_OH>*<WR_ORA2> + PTERMS(:,135,574) = -TPK%KR39(:)*PCONC(:,135)*PCONC(:,151) ! -!PTERMS(HO2,K124) = +0.04915*K124*<CARBOP>*<NO3> - PTERMS(:,15,124) = +0.04915*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(WR_ORA2,KR39) = -KR39*<WR_OH>*<WR_ORA2> + PTERMS(:,151,574) = -TPK%KR39(:)*PCONC(:,135)*PCONC(:,151) ! -!PTERMS(HCHO,K124) = +0.03175*K124*<CARBOP>*<NO3> - PTERMS(:,22,124) = +0.03175*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(WR_RP16,KR39) = +KR39*<WR_OH>*<WR_ORA2> + PTERMS(:,153,574) = +TPK%KR39(:)*PCONC(:,135)*PCONC(:,151) ! -!PTERMS(ALD,K124) = +0.02936*K124*<CARBOP>*<NO3> - PTERMS(:,23,124) = +0.02936*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(WR_OH,KR40) = -KR40*<WR_OH>*<WR_ACID> + PTERMS(:,135,575) = -TPK%KR40(:)*PCONC(:,135)*PCONC(:,152) ! -!PTERMS(CARBO,K124) = +0.03455*K124*<CARBOP>*<NO3> - PTERMS(:,25,124) = +0.03455*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(WR_CO2,KR40) = +KR40*<WR_OH>*<WR_ACID> + PTERMS(:,137,575) = +TPK%KR40(:)*PCONC(:,135)*PCONC(:,152) ! -!PTERMS(MO2,K124) = +0.91910*K124*<CARBOP>*<NO3> - PTERMS(:,32,124) = +0.91910*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(WR_RO25,KR40) = +KR40*<WR_OH>*<WR_ACID> + PTERMS(:,141,575) = +TPK%KR40(:)*PCONC(:,135)*PCONC(:,152) ! -!PTERMS(CARBOP,K124) = -K124*<CARBOP>*<NO3> - PTERMS(:,39,124) = -TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(WR_ACID,KR40) = -KR40*<WR_OH>*<WR_ACID> + PTERMS(:,152,575) = -TPK%KR40(:)*PCONC(:,135)*PCONC(:,152) ! -!PTERMS(XO2,K124) = +0.01021*K124*<CARBOP>*<NO3> - PTERMS(:,41,124) = +0.01021*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PTERMS(WR_H2O2,KR41) = +0.29*KR41*<WR_OH>*<WR_ACID> + PTERMS(:,126,576) = +0.29*TPK%KR41(:)*PCONC(:,135)*PCONC(:,152) ! ! RETURN -END SUBROUTINE SUBT28 +END SUBROUTINE SUBT86 ! -SUBROUTINE SUBT29 +SUBROUTINE SUBT87 ! -!Indices 581 a 600 +!Indices 1741 a 1760 ! -!PTERMS(NO2,K125) = +1.74072*K125*<OLN>*<NO3> - PTERMS(:,4,125) = +1.74072*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PTERMS(WR_OH,KR41) = -KR41*<WR_OH>*<WR_ACID> + PTERMS(:,135,576) = -TPK%KR41(:)*PCONC(:,135)*PCONC(:,152) ! -!PTERMS(NO3,K125) = -K125*<OLN>*<NO3> - PTERMS(:,5,125) = -TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PTERMS(WR_HO2,KR41) = +0.11*KR41*<WR_OH>*<WR_ACID> + PTERMS(:,136,576) = +0.11*TPK%KR41(:)*PCONC(:,135)*PCONC(:,152) ! -!PTERMS(HO2,K125) = +0.25928*K125*<OLN>*<NO3> - PTERMS(:,15,125) = +0.25928*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PTERMS(WR_ALD2,KR41) = +0.29*KR41*<WR_OH>*<WR_ACID> + PTERMS(:,146,576) = +0.29*TPK%KR41(:)*PCONC(:,135)*PCONC(:,152) ! -!PTERMS(HCHO,K125) = +0.20740*K125*<OLN>*<NO3> - PTERMS(:,22,125) = +0.20740*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PTERMS(WR_ACID,KR41) = -KR41*<WR_OH>*<WR_ACID> + PTERMS(:,152,576) = -TPK%KR41(:)*PCONC(:,135)*PCONC(:,152) ! -!PTERMS(ALD,K125) = +0.91850*K125*<OLN>*<NO3> - PTERMS(:,23,125) = +0.91850*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PTERMS(WR_UR21,KR41) = +0.56*KR41*<WR_OH>*<WR_ACID> + PTERMS(:,154,576) = +0.56*TPK%KR41(:)*PCONC(:,135)*PCONC(:,152) ! -!PTERMS(KET,K125) = +0.34740*K125*<OLN>*<NO3> - PTERMS(:,24,125) = +0.34740*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PTERMS(WR_ACID2,KR41) = +0.15*KR41*<WR_OH>*<WR_ACID> + PTERMS(:,156,576) = +0.15*TPK%KR41(:)*PCONC(:,135)*PCONC(:,152) ! -!PTERMS(ONIT,K125) = +0.25928*K125*<OLN>*<NO3> - PTERMS(:,26,125) = +0.25928*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PTERMS(WR_OH,KR42) = -KR42*<WR_OH>*<WR_UR28> + PTERMS(:,135,577) = -TPK%KR42(:)*PCONC(:,135)*PCONC(:,155) ! -!PTERMS(OLN,K125) = -K125*<OLN>*<NO3> - PTERMS(:,40,125) = -TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PTERMS(WR_HO2,KR42) = +KR42*<WR_OH>*<WR_UR28> + PTERMS(:,136,577) = +TPK%KR42(:)*PCONC(:,135)*PCONC(:,155) ! -!PTERMS(HO2,K126) = -K126*<XO2>*<HO2> - PTERMS(:,15,126) = -TPK%K126(:)*PCONC(:,41)*PCONC(:,15) +!PTERMS(WR_CO2,KR42) = +2*KR42*<WR_OH>*<WR_UR28> + PTERMS(:,137,577) = +2*TPK%KR42(:)*PCONC(:,135)*PCONC(:,155) ! -!PTERMS(OP2,K126) = +1.00524*K126*<XO2>*<HO2> - PTERMS(:,29,126) = +1.00524*TPK%K126(:)*PCONC(:,41)*PCONC(:,15) +!PTERMS(WR_UR28,KR42) = -KR42*<WR_OH>*<WR_UR28> + PTERMS(:,155,577) = -TPK%KR42(:)*PCONC(:,135)*PCONC(:,155) ! -!PTERMS(XO2,K126) = -K126*<XO2>*<HO2> - PTERMS(:,41,126) = -TPK%K126(:)*PCONC(:,41)*PCONC(:,15) +!PTERMS(WR_H2O2,KR43) = +0.3*KR43*<WR_OH>*<WR_UR21> + PTERMS(:,126,578) = +0.3*TPK%KR43(:)*PCONC(:,135)*PCONC(:,154) ! -!PTERMS(HO2,K127) = +K127*<XO2>*<MO2> - PTERMS(:,15,127) = +TPK%K127(:)*PCONC(:,41)*PCONC(:,32) +!PTERMS(WR_OH,KR43) = -KR43*<WR_OH>*<WR_UR21> + PTERMS(:,135,578) = -TPK%KR43(:)*PCONC(:,135)*PCONC(:,154) ! -!PTERMS(HCHO,K127) = +K127*<XO2>*<MO2> - PTERMS(:,22,127) = +TPK%K127(:)*PCONC(:,41)*PCONC(:,32) +!PTERMS(WR_HO2,KR43) = +0.81*KR43*<WR_OH>*<WR_UR21> + PTERMS(:,136,578) = +0.81*TPK%KR43(:)*PCONC(:,135)*PCONC(:,154) ! -!PTERMS(MO2,K127) = -K127*<XO2>*<MO2> - PTERMS(:,32,127) = -TPK%K127(:)*PCONC(:,41)*PCONC(:,32) +!PTERMS(WR_CO2,KR43) = +0.43*KR43*<WR_OH>*<WR_UR21> + PTERMS(:,137,578) = +0.43*TPK%KR43(:)*PCONC(:,135)*PCONC(:,154) ! -!PTERMS(XO2,K127) = -K127*<XO2>*<MO2> - PTERMS(:,41,127) = -TPK%K127(:)*PCONC(:,41)*PCONC(:,32) +!PTERMS(WR_ALD2,KR43) = +0.43*KR43*<WR_OH>*<WR_UR21> + PTERMS(:,146,578) = +0.43*TPK%KR43(:)*PCONC(:,135)*PCONC(:,154) ! -!PTERMS(MO2,K128) = +K128*<XO2>*<CARBOP> - PTERMS(:,32,128) = +TPK%K128(:)*PCONC(:,41)*PCONC(:,39) +!PTERMS(WR_UR21,KR43) = -KR43*<WR_OH>*<WR_UR21> + PTERMS(:,154,578) = -TPK%KR43(:)*PCONC(:,135)*PCONC(:,154) ! -!PTERMS(CARBOP,K128) = -K128*<XO2>*<CARBOP> - PTERMS(:,39,128) = -TPK%K128(:)*PCONC(:,41)*PCONC(:,39) +!PTERMS(WR_ACID2,KR43) = +0.56*KR43*<WR_OH>*<WR_UR21> + PTERMS(:,156,578) = +0.56*TPK%KR43(:)*PCONC(:,135)*PCONC(:,154) ! -!PTERMS(XO2,K128) = -K128*<XO2>*<CARBOP> - PTERMS(:,41,128) = -TPK%K128(:)*PCONC(:,41)*PCONC(:,39) +!PTERMS(WR_OH,KR44) = -KR44*<WR_OH>*<WR_RP16> + PTERMS(:,135,579) = -TPK%KR44(:)*PCONC(:,135)*PCONC(:,153) ! -!PTERMS(XO2,K129) = -K129*<XO2>*<XO2> - PTERMS(:,41,129) = -TPK%K129(:)*PCONC(:,41)*PCONC(:,41) +!PTERMS(WR_HO2,KR44) = +KR44*<WR_OH>*<WR_RP16> + PTERMS(:,136,579) = +TPK%KR44(:)*PCONC(:,135)*PCONC(:,153) ! -!PTERMS(NO,K130) = -K130*<XO2>*<NO> - PTERMS(:,3,130) = -TPK%K130(:)*PCONC(:,41)*PCONC(:,3) +!PTERMS(WR_RP16,KR44) = -KR44*<WR_OH>*<WR_RP16> + PTERMS(:,153,579) = -TPK%KR44(:)*PCONC(:,135)*PCONC(:,153) ! ! RETURN -END SUBROUTINE SUBT29 +END SUBROUTINE SUBT87 ! -SUBROUTINE SUBT30 +SUBROUTINE SUBT88 ! -!Indices 601 a 606 +!Indices 1761 a 1768 ! -!PTERMS(NO2,K130) = +K130*<XO2>*<NO> - PTERMS(:,4,130) = +TPK%K130(:)*PCONC(:,41)*PCONC(:,3) +!PTERMS(WR_UR28,KR44) = +KR44*<WR_OH>*<WR_RP16> + PTERMS(:,155,579) = +TPK%KR44(:)*PCONC(:,135)*PCONC(:,153) ! -!PTERMS(XO2,K130) = -K130*<XO2>*<NO> - PTERMS(:,41,130) = -TPK%K130(:)*PCONC(:,41)*PCONC(:,3) +!PTERMS(WR_H2O2,KR45) = +0.45*KR45*<WR_OH>*<WR_RP16> + PTERMS(:,126,580) = +0.45*TPK%KR45(:)*PCONC(:,135)*PCONC(:,153) ! -!PTERMS(NO2,K131) = +K131*<XO2>*<NO3> - PTERMS(:,4,131) = +TPK%K131(:)*PCONC(:,41)*PCONC(:,5) +!PTERMS(WR_OH,KR45) = -KR45*<WR_OH>*<WR_RP16> + PTERMS(:,135,580) = -TPK%KR45(:)*PCONC(:,135)*PCONC(:,153) ! -!PTERMS(NO3,K131) = -K131*<XO2>*<NO3> - PTERMS(:,5,131) = -TPK%K131(:)*PCONC(:,41)*PCONC(:,5) +!PTERMS(WR_HO2,KR45) = +0.71*KR45*<WR_OH>*<WR_RP16> + PTERMS(:,136,580) = +0.71*TPK%KR45(:)*PCONC(:,135)*PCONC(:,153) ! -!PTERMS(XO2,K131) = -K131*<XO2>*<NO3> - PTERMS(:,41,131) = -TPK%K131(:)*PCONC(:,41)*PCONC(:,5) +!PTERMS(WR_CO2,KR45) = +2*KR45*<WR_OH>*<WR_RP16> + PTERMS(:,137,580) = +2*TPK%KR45(:)*PCONC(:,135)*PCONC(:,153) ! -!PTERMS(SULF,K132) = -K132*<SULF> - PTERMS(:,12,132) = -TPK%K132(:)*PCONC(:,12) +!PTERMS(WR_RP16,KR45) = -KR45*<WR_OH>*<WR_RP16> + PTERMS(:,153,580) = -TPK%KR45(:)*PCONC(:,135)*PCONC(:,153) +! +!PTERMS(WR_OH,KR46) = -KR46*<WR_OH>*<WR_ACID2> + PTERMS(:,135,581) = -TPK%KR46(:)*PCONC(:,135)*PCONC(:,156) +! +!PTERMS(WR_ACID2,KR46) = -KR46*<WR_OH>*<WR_ACID2> + PTERMS(:,156,581) = -TPK%KR46(:)*PCONC(:,135)*PCONC(:,156) ! ! RETURN -END SUBROUTINE SUBT30 +END SUBROUTINE SUBT88 ! -END SUBROUTINE CH_TERMS_GAZ +END SUBROUTINE CH_TERMS_AQ ! !======================================================================== ! @@ -35335,7 +96503,7 @@ END IF CONTAINS !! !! ############################# - SUBROUTINE CH_NONZEROTERMS_AQ + SUBROUTINE CH_NONZEROTERMS_GAZ !! ############################# !! This code has been created automatically by preprocessor m10, !! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. @@ -35379,1899 +96547,2391 @@ CONTAINS !! ------------------ IMPLICIT NONE ! check if output array is large enough -IF (KINDEXDIM.LT.942) THEN +IF (KINDEXDIM.LT.1188) THEN STOP 'CH_NONZEROTERMS ERROR: array KINDEX is too small!' END IF - KINDEX(1, 1)=3 + KINDEX(1, 1)=1 KINDEX(2, 1)=1 - KINDEX(1, 2)=4 + KINDEX(1, 2)=2 KINDEX(2, 2)=1 - KINDEX(1, 3)=1 + KINDEX(1, 3)=3 KINDEX(2, 3)=2 KINDEX(1, 4)=1 KINDEX(2, 4)=3 - KINDEX(1, 5)=3 - KINDEX(2, 5)=4 - KINDEX(1, 6)=7 + KINDEX(1, 5)=2 + KINDEX(2, 5)=3 + KINDEX(1, 6)=2 KINDEX(2, 6)=4 - KINDEX(1, 7)=14 + KINDEX(1, 7)=8 KINDEX(2, 7)=4 - KINDEX(1, 8)=4 + KINDEX(1, 8)=1 KINDEX(2, 8)=5 - KINDEX(1, 9)=8 + KINDEX(1, 9)=2 KINDEX(2, 9)=5 - KINDEX(1, 10)=14 + KINDEX(1, 10)=3 KINDEX(2, 10)=5 - KINDEX(1, 11)=4 + KINDEX(1, 11)=2 KINDEX(2, 11)=6 - KINDEX(1, 12)=5 + KINDEX(1, 12)=3 KINDEX(2, 12)=6 - KINDEX(1, 13)=9 + KINDEX(1, 13)=8 KINDEX(2, 13)=6 - KINDEX(1, 14)=14 - KINDEX(2, 14)=6 - KINDEX(1, 15)=15 - KINDEX(2, 15)=6 - KINDEX(1, 16)=3 + KINDEX(1, 14)=1 + KINDEX(2, 14)=7 + KINDEX(1, 15)=2 + KINDEX(2, 15)=7 + KINDEX(1, 16)=8 KINDEX(2, 16)=7 - KINDEX(1, 17)=5 - KINDEX(2, 17)=7 - KINDEX(1, 18)=4 + KINDEX(1, 17)=1 + KINDEX(2, 17)=8 + KINDEX(1, 18)=2 KINDEX(2, 18)=8 - KINDEX(1, 19)=5 - KINDEX(2, 19)=8 - KINDEX(1, 20)=2 + KINDEX(1, 19)=2 + KINDEX(2, 19)=9 + KINDEX(1, 20)=7 KINDEX(2, 20)=9 - KINDEX(1, 21)=14 + KINDEX(1, 21)=8 KINDEX(2, 21)=9 - KINDEX(1, 22)=13 + KINDEX(1, 22)=2 KINDEX(2, 22)=10 - KINDEX(1, 23)=22 + KINDEX(1, 23)=7 KINDEX(2, 23)=10 - KINDEX(1, 24)=13 - KINDEX(2, 24)=11 - KINDEX(1, 25)=15 + KINDEX(1, 24)=8 + KINDEX(2, 24)=10 + KINDEX(1, 25)=5 KINDEX(2, 25)=11 - KINDEX(1, 26)=22 + KINDEX(1, 26)=7 KINDEX(2, 26)=11 - KINDEX(1, 27)=13 + KINDEX(1, 27)=1 KINDEX(2, 27)=12 - KINDEX(1, 28)=15 + KINDEX(1, 28)=2 KINDEX(2, 28)=12 - KINDEX(1, 29)=23 + KINDEX(1, 29)=8 KINDEX(2, 29)=12 - KINDEX(1, 30)=32 - KINDEX(2, 30)=12 - KINDEX(1, 31)=14 + KINDEX(1, 30)=1 + KINDEX(2, 30)=13 + KINDEX(1, 31)=8 KINDEX(2, 31)=13 - KINDEX(1, 32)=15 - KINDEX(2, 32)=13 - KINDEX(1, 33)=22 - KINDEX(2, 33)=13 - KINDEX(1, 34)=28 - KINDEX(2, 34)=13 - KINDEX(1, 35)=14 - KINDEX(2, 35)=14 + KINDEX(1, 32)=2 + KINDEX(2, 32)=14 + KINDEX(1, 33)=8 + KINDEX(2, 33)=14 + KINDEX(1, 34)=3 + KINDEX(2, 34)=15 + KINDEX(1, 35)=3 + KINDEX(2, 35)=16 KINDEX(1, 36)=15 - KINDEX(2, 36)=14 - KINDEX(1, 37)=23 - KINDEX(2, 37)=14 - KINDEX(1, 38)=29 - KINDEX(2, 38)=14 - KINDEX(1, 39)=32 - KINDEX(2, 39)=14 - KINDEX(1, 40)=24 - KINDEX(2, 40)=15 - KINDEX(1, 41)=33 - KINDEX(2, 41)=15 - KINDEX(1, 42)=39 - KINDEX(2, 42)=15 - KINDEX(1, 43)=13 - KINDEX(2, 43)=16 + KINDEX(2, 36)=17 + KINDEX(1, 37)=1 + KINDEX(2, 37)=20 + KINDEX(1, 38)=4 + KINDEX(2, 38)=20 + KINDEX(1, 39)=15 + KINDEX(2, 39)=20 + KINDEX(1, 40)=1 + KINDEX(2, 40)=21 + KINDEX(1, 41)=2 + KINDEX(2, 41)=21 + KINDEX(1, 42)=4 + KINDEX(2, 42)=21 + KINDEX(1, 43)=10 + KINDEX(2, 43)=21 KINDEX(1, 44)=15 - KINDEX(2, 44)=16 - KINDEX(1, 45)=22 - KINDEX(2, 45)=16 - KINDEX(1, 46)=25 - KINDEX(2, 46)=16 - KINDEX(1, 47)=39 - KINDEX(2, 47)=16 - KINDEX(1, 48)=4 - KINDEX(2, 48)=17 - KINDEX(1, 49)=15 - KINDEX(2, 49)=17 - KINDEX(1, 50)=23 - KINDEX(2, 50)=17 - KINDEX(1, 51)=24 - KINDEX(2, 51)=17 - KINDEX(1, 52)=26 - KINDEX(2, 52)=17 - KINDEX(1, 53)=1 - KINDEX(2, 53)=18 - KINDEX(1, 54)=1 - KINDEX(2, 54)=19 - KINDEX(1, 55)=14 - KINDEX(2, 55)=22 - KINDEX(1, 56)=1 - KINDEX(2, 56)=23 - KINDEX(1, 57)=14 - KINDEX(2, 57)=23 - KINDEX(1, 58)=15 - KINDEX(2, 58)=23 - KINDEX(1, 59)=1 - KINDEX(2, 59)=24 - KINDEX(1, 60)=14 - KINDEX(2, 60)=24 - KINDEX(1, 61)=15 - KINDEX(2, 61)=24 - KINDEX(1, 62)=14 - KINDEX(2, 62)=25 + KINDEX(2, 44)=21 + KINDEX(1, 45)=2 + KINDEX(2, 45)=22 + KINDEX(1, 46)=4 + KINDEX(2, 46)=22 + KINDEX(1, 47)=5 + KINDEX(2, 47)=22 + KINDEX(1, 48)=2 + KINDEX(2, 48)=23 + KINDEX(1, 49)=5 + KINDEX(2, 49)=23 + KINDEX(1, 50)=15 + KINDEX(2, 50)=23 + KINDEX(1, 51)=5 + KINDEX(2, 51)=24 + KINDEX(1, 52)=8 + KINDEX(2, 52)=24 + KINDEX(1, 53)=15 + KINDEX(2, 53)=24 + KINDEX(1, 54)=10 + KINDEX(2, 54)=25 + KINDEX(1, 55)=11 + KINDEX(2, 55)=25 + KINDEX(1, 56)=15 + KINDEX(2, 56)=25 + KINDEX(1, 57)=3 + KINDEX(2, 57)=26 + KINDEX(1, 58)=10 + KINDEX(2, 58)=26 + KINDEX(1, 59)=15 + KINDEX(2, 59)=26 + KINDEX(1, 60)=1 + KINDEX(2, 60)=27 + KINDEX(1, 61)=2 + KINDEX(2, 61)=27 + KINDEX(1, 62)=10 + KINDEX(2, 62)=27 KINDEX(1, 63)=15 - KINDEX(2, 63)=25 + KINDEX(2, 63)=27 KINDEX(1, 64)=2 - KINDEX(2, 64)=26 - KINDEX(1, 65)=14 - KINDEX(2, 65)=26 - KINDEX(1, 66)=15 - KINDEX(2, 66)=26 + KINDEX(2, 64)=28 + KINDEX(1, 65)=6 + KINDEX(2, 65)=28 + KINDEX(1, 66)=10 + KINDEX(2, 66)=28 KINDEX(1, 67)=2 - KINDEX(2, 67)=27 - KINDEX(1, 68)=15 - KINDEX(2, 68)=27 - KINDEX(1, 69)=2 - KINDEX(2, 69)=28 - KINDEX(1, 70)=15 - KINDEX(2, 70)=28 - KINDEX(1, 71)=3 - KINDEX(2, 71)=29 - KINDEX(1, 72)=4 - KINDEX(2, 72)=29 + KINDEX(2, 67)=29 + KINDEX(1, 68)=6 + KINDEX(2, 68)=29 + KINDEX(1, 69)=10 + KINDEX(2, 69)=29 + KINDEX(1, 70)=2 + KINDEX(2, 70)=30 + KINDEX(1, 71)=6 + KINDEX(2, 71)=30 + KINDEX(1, 72)=15 + KINDEX(2, 72)=30 KINDEX(1, 73)=3 - KINDEX(2, 73)=30 - KINDEX(1, 74)=4 - KINDEX(2, 74)=30 - KINDEX(1, 75)=4 + KINDEX(2, 73)=31 + KINDEX(1, 74)=10 + KINDEX(2, 74)=31 + KINDEX(1, 75)=15 KINDEX(2, 75)=31 - KINDEX(1, 76)=5 - KINDEX(2, 76)=31 - KINDEX(1, 77)=3 + KINDEX(1, 76)=10 + KINDEX(2, 76)=32 + KINDEX(1, 77)=12 KINDEX(2, 77)=32 - KINDEX(1, 78)=7 - KINDEX(2, 78)=32 - KINDEX(1, 79)=14 - KINDEX(2, 79)=32 - KINDEX(1, 80)=4 - KINDEX(2, 80)=33 - KINDEX(1, 81)=8 - KINDEX(2, 81)=33 - KINDEX(1, 82)=14 - KINDEX(2, 82)=33 - KINDEX(1, 83)=4 + KINDEX(1, 78)=10 + KINDEX(2, 78)=33 + KINDEX(1, 79)=12 + KINDEX(2, 79)=33 + KINDEX(1, 80)=2 + KINDEX(2, 80)=34 + KINDEX(1, 81)=5 + KINDEX(2, 81)=34 + KINDEX(1, 82)=8 + KINDEX(2, 82)=34 + KINDEX(1, 83)=10 KINDEX(2, 83)=34 - KINDEX(1, 84)=5 + KINDEX(1, 84)=15 KINDEX(2, 84)=34 - KINDEX(1, 85)=14 - KINDEX(2, 85)=34 - KINDEX(1, 86)=15 - KINDEX(2, 86)=34 - KINDEX(1, 87)=3 - KINDEX(2, 87)=35 - KINDEX(1, 88)=4 - KINDEX(2, 88)=35 - KINDEX(1, 89)=14 - KINDEX(2, 89)=35 - KINDEX(1, 90)=15 - KINDEX(2, 90)=35 - KINDEX(1, 91)=4 - KINDEX(2, 91)=36 - KINDEX(1, 92)=9 - KINDEX(2, 92)=36 - KINDEX(1, 93)=15 - KINDEX(2, 93)=36 - KINDEX(1, 94)=4 - KINDEX(2, 94)=37 - KINDEX(1, 95)=9 - KINDEX(2, 95)=37 - KINDEX(1, 96)=15 - KINDEX(2, 96)=37 - KINDEX(1, 97)=4 - KINDEX(2, 97)=38 - KINDEX(1, 98)=5 - KINDEX(2, 98)=38 - KINDEX(1, 99)=8 - KINDEX(2, 99)=38 - KINDEX(1, 100)=14 - KINDEX(2, 100)=38 - KINDEX(1, 101)=15 - KINDEX(2, 101)=38 - KINDEX(1, 102)=4 - KINDEX(2, 102)=39 - KINDEX(1, 103)=7 - KINDEX(2, 103)=39 - KINDEX(1, 104)=14 - KINDEX(2, 104)=39 - KINDEX(1, 105)=5 - KINDEX(2, 105)=40 - KINDEX(1, 106)=8 - KINDEX(2, 106)=40 - KINDEX(1, 107)=14 - KINDEX(2, 107)=40 - KINDEX(1, 108)=4 - KINDEX(2, 108)=41 - KINDEX(1, 109)=9 - KINDEX(2, 109)=41 - KINDEX(1, 110)=14 - KINDEX(2, 110)=41 - KINDEX(1, 111)=1 - KINDEX(2, 111)=42 - KINDEX(1, 112)=3 - KINDEX(2, 112)=42 - KINDEX(1, 113)=4 - KINDEX(2, 113)=42 - KINDEX(1, 114)=1 - KINDEX(2, 114)=43 - KINDEX(1, 115)=4 - KINDEX(2, 115)=43 - KINDEX(1, 116)=5 - KINDEX(2, 116)=43 - KINDEX(1, 117)=3 - KINDEX(2, 117)=44 - KINDEX(1, 118)=4 - KINDEX(2, 118)=44 - KINDEX(1, 119)=3 - KINDEX(2, 119)=45 - KINDEX(1, 120)=4 - KINDEX(2, 120)=45 - KINDEX(1, 121)=5 - KINDEX(2, 121)=45 - KINDEX(1, 122)=3 - KINDEX(2, 122)=46 - KINDEX(1, 123)=4 - KINDEX(2, 123)=46 - KINDEX(1, 124)=5 - KINDEX(2, 124)=46 - KINDEX(1, 125)=4 - KINDEX(2, 125)=47 - KINDEX(1, 126)=5 - KINDEX(2, 126)=47 - KINDEX(1, 127)=6 - KINDEX(2, 127)=47 - KINDEX(1, 128)=4 - KINDEX(2, 128)=48 - KINDEX(1, 129)=5 - KINDEX(2, 129)=48 - KINDEX(1, 130)=6 - KINDEX(2, 130)=48 - KINDEX(1, 131)=4 - KINDEX(2, 131)=49 - KINDEX(1, 132)=5 - KINDEX(2, 132)=49 - KINDEX(1, 133)=10 - KINDEX(2, 133)=50 - KINDEX(1, 134)=14 - KINDEX(2, 134)=50 - KINDEX(1, 135)=14 - KINDEX(2, 135)=51 - KINDEX(1, 136)=15 - KINDEX(2, 136)=51 + KINDEX(1, 85)=3 + KINDEX(2, 85)=35 + KINDEX(1, 86)=10 + KINDEX(2, 86)=36 + KINDEX(1, 87)=13 + KINDEX(2, 87)=36 + KINDEX(1, 88)=14 + KINDEX(2, 88)=36 + KINDEX(1, 89)=15 + KINDEX(2, 89)=36 + KINDEX(1, 90)=12 + KINDEX(2, 90)=37 + KINDEX(1, 91)=15 + KINDEX(2, 91)=37 + KINDEX(1, 92)=10 + KINDEX(2, 92)=38 + KINDEX(1, 93)=12 + KINDEX(2, 93)=38 + KINDEX(1, 94)=15 + KINDEX(2, 94)=38 + KINDEX(1, 95)=1 + KINDEX(2, 95)=39 + KINDEX(1, 96)=2 + KINDEX(2, 96)=39 + KINDEX(1, 97)=2 + KINDEX(2, 97)=40 + KINDEX(1, 98)=4 + KINDEX(2, 98)=40 + KINDEX(1, 99)=15 + KINDEX(2, 99)=40 + KINDEX(1, 100)=2 + KINDEX(2, 100)=41 + KINDEX(1, 101)=8 + KINDEX(2, 101)=41 + KINDEX(1, 102)=10 + KINDEX(2, 102)=41 + KINDEX(1, 103)=15 + KINDEX(2, 103)=41 + KINDEX(1, 104)=2 + KINDEX(2, 104)=42 + KINDEX(1, 105)=8 + KINDEX(2, 105)=42 + KINDEX(1, 106)=10 + KINDEX(2, 106)=43 + KINDEX(1, 107)=15 + KINDEX(2, 107)=43 + KINDEX(1, 108)=15 + KINDEX(2, 108)=44 + KINDEX(1, 109)=85 + KINDEX(2, 109)=44 + KINDEX(1, 110)=86 + KINDEX(2, 110)=44 + KINDEX(1, 111)=10 + KINDEX(2, 111)=45 + KINDEX(1, 112)=11 + KINDEX(2, 112)=45 + KINDEX(1, 113)=28 + KINDEX(2, 113)=45 + KINDEX(1, 114)=11 + KINDEX(2, 114)=46 + KINDEX(1, 115)=28 + KINDEX(2, 115)=46 + KINDEX(1, 116)=10 + KINDEX(2, 116)=47 + KINDEX(1, 117)=11 + KINDEX(2, 117)=47 + KINDEX(1, 118)=15 + KINDEX(2, 118)=47 + KINDEX(1, 119)=28 + KINDEX(2, 119)=47 + KINDEX(1, 120)=5 + KINDEX(2, 120)=48 + KINDEX(1, 121)=8 + KINDEX(2, 121)=48 + KINDEX(1, 122)=10 + KINDEX(2, 122)=48 + KINDEX(1, 123)=11 + KINDEX(2, 123)=48 + KINDEX(1, 124)=28 + KINDEX(2, 124)=48 + KINDEX(1, 125)=10 + KINDEX(2, 125)=49 + KINDEX(1, 126)=15 + KINDEX(2, 126)=49 + KINDEX(1, 127)=28 + KINDEX(2, 127)=49 + KINDEX(1, 128)=32 + KINDEX(2, 128)=49 + KINDEX(1, 129)=15 + KINDEX(2, 129)=50 + KINDEX(1, 130)=16 + KINDEX(2, 130)=50 + KINDEX(1, 131)=85 + KINDEX(2, 131)=50 + KINDEX(1, 132)=8 + KINDEX(2, 132)=51 + KINDEX(1, 133)=16 + KINDEX(2, 133)=51 + KINDEX(1, 134)=85 + KINDEX(2, 134)=51 + KINDEX(1, 135)=3 + KINDEX(2, 135)=52 + KINDEX(1, 136)=10 + KINDEX(2, 136)=52 KINDEX(1, 137)=11 KINDEX(2, 137)=52 - KINDEX(1, 138)=12 + KINDEX(1, 138)=15 KINDEX(2, 138)=52 - KINDEX(1, 139)=14 + KINDEX(1, 139)=16 KINDEX(2, 139)=52 - KINDEX(1, 140)=15 + KINDEX(1, 140)=28 KINDEX(2, 140)=52 - KINDEX(1, 141)=13 - KINDEX(2, 141)=53 - KINDEX(1, 142)=14 + KINDEX(1, 141)=43 + KINDEX(2, 141)=52 + KINDEX(1, 142)=10 KINDEX(2, 142)=53 - KINDEX(1, 143)=15 + KINDEX(1, 143)=11 KINDEX(2, 143)=53 - KINDEX(1, 144)=13 - KINDEX(2, 144)=54 - KINDEX(1, 145)=14 - KINDEX(2, 145)=54 - KINDEX(1, 146)=15 - KINDEX(2, 146)=54 - KINDEX(1, 147)=19 + KINDEX(1, 144)=16 + KINDEX(2, 144)=53 + KINDEX(1, 145)=85 + KINDEX(2, 145)=53 + KINDEX(1, 146)=86 + KINDEX(2, 146)=53 + KINDEX(1, 147)=10 KINDEX(2, 147)=54 - KINDEX(1, 148)=20 + KINDEX(1, 148)=15 KINDEX(2, 148)=54 - KINDEX(1, 149)=22 + KINDEX(1, 149)=29 KINDEX(2, 149)=54 - KINDEX(1, 150)=25 + KINDEX(1, 150)=33 KINDEX(2, 150)=54 - KINDEX(1, 151)=41 + KINDEX(1, 151)=85 KINDEX(2, 151)=54 - KINDEX(1, 152)=23 + KINDEX(1, 152)=15 KINDEX(2, 152)=55 - KINDEX(1, 153)=25 + KINDEX(1, 153)=17 KINDEX(2, 153)=55 - KINDEX(1, 154)=14 - KINDEX(2, 154)=56 - KINDEX(1, 155)=16 + KINDEX(1, 154)=85 + KINDEX(2, 154)=55 + KINDEX(1, 155)=8 KINDEX(2, 155)=56 - KINDEX(1, 156)=32 + KINDEX(1, 156)=17 KINDEX(2, 156)=56 - KINDEX(1, 157)=14 - KINDEX(2, 157)=57 - KINDEX(1, 158)=17 + KINDEX(1, 157)=85 + KINDEX(2, 157)=56 + KINDEX(1, 158)=3 KINDEX(2, 158)=57 - KINDEX(1, 159)=33 + KINDEX(1, 159)=10 KINDEX(2, 159)=57 - KINDEX(1, 160)=13 - KINDEX(2, 160)=58 - KINDEX(1, 161)=14 - KINDEX(2, 161)=58 - KINDEX(1, 162)=15 - KINDEX(2, 162)=58 - KINDEX(1, 163)=18 - KINDEX(2, 163)=58 - KINDEX(1, 164)=22 - KINDEX(2, 164)=58 - KINDEX(1, 165)=23 - KINDEX(2, 165)=58 - KINDEX(1, 166)=24 - KINDEX(2, 166)=58 - KINDEX(1, 167)=25 - KINDEX(2, 167)=58 - KINDEX(1, 168)=30 - KINDEX(2, 168)=58 - KINDEX(1, 169)=33 - KINDEX(2, 169)=58 - KINDEX(1, 170)=14 - KINDEX(2, 170)=59 + KINDEX(1, 160)=11 + KINDEX(2, 160)=57 + KINDEX(1, 161)=15 + KINDEX(2, 161)=57 + KINDEX(1, 162)=17 + KINDEX(2, 162)=57 + KINDEX(1, 163)=19 + KINDEX(2, 163)=57 + KINDEX(1, 164)=28 + KINDEX(2, 164)=57 + KINDEX(1, 165)=29 + KINDEX(2, 165)=57 + KINDEX(1, 166)=43 + KINDEX(2, 166)=57 + KINDEX(1, 167)=44 + KINDEX(2, 167)=57 + KINDEX(1, 168)=85 + KINDEX(2, 168)=57 + KINDEX(1, 169)=87 + KINDEX(2, 169)=57 + KINDEX(1, 170)=17 + KINDEX(2, 170)=58 KINDEX(1, 171)=19 - KINDEX(2, 171)=59 - KINDEX(1, 172)=34 - KINDEX(2, 172)=59 - KINDEX(1, 173)=35 - KINDEX(2, 173)=59 - KINDEX(1, 174)=14 - KINDEX(2, 174)=60 - KINDEX(1, 175)=20 - KINDEX(2, 175)=60 - KINDEX(1, 176)=35 - KINDEX(2, 176)=60 - KINDEX(1, 177)=14 - KINDEX(2, 177)=61 - KINDEX(1, 178)=15 - KINDEX(2, 178)=61 - KINDEX(1, 179)=21 - KINDEX(2, 179)=61 - KINDEX(1, 180)=36 - KINDEX(2, 180)=61 - KINDEX(1, 181)=37 - KINDEX(2, 181)=61 - KINDEX(1, 182)=41 - KINDEX(2, 182)=61 - KINDEX(1, 183)=13 - KINDEX(2, 183)=62 - KINDEX(1, 184)=14 - KINDEX(2, 184)=62 - KINDEX(1, 185)=15 - KINDEX(2, 185)=62 - KINDEX(1, 186)=22 - KINDEX(2, 186)=62 - KINDEX(1, 187)=14 - KINDEX(2, 187)=63 - KINDEX(1, 188)=23 - KINDEX(2, 188)=63 - KINDEX(1, 189)=39 - KINDEX(2, 189)=63 - KINDEX(1, 190)=14 - KINDEX(2, 190)=64 - KINDEX(1, 191)=24 - KINDEX(2, 191)=64 - KINDEX(1, 192)=39 - KINDEX(2, 192)=64 - KINDEX(1, 193)=13 - KINDEX(2, 193)=65 - KINDEX(1, 194)=14 - KINDEX(2, 194)=65 - KINDEX(1, 195)=15 - KINDEX(2, 195)=65 - KINDEX(1, 196)=22 - KINDEX(2, 196)=65 - KINDEX(1, 197)=23 + KINDEX(2, 171)=58 + KINDEX(1, 172)=29 + KINDEX(2, 172)=58 + KINDEX(1, 173)=85 + KINDEX(2, 173)=58 + KINDEX(1, 174)=87 + KINDEX(2, 174)=58 + KINDEX(1, 175)=15 + KINDEX(2, 175)=59 + KINDEX(1, 176)=19 + KINDEX(2, 176)=59 + KINDEX(1, 177)=85 + KINDEX(2, 177)=59 + KINDEX(1, 178)=87 + KINDEX(2, 178)=59 + KINDEX(1, 179)=10 + KINDEX(2, 179)=60 + KINDEX(1, 180)=11 + KINDEX(2, 180)=60 + KINDEX(1, 181)=29 + KINDEX(2, 181)=60 + KINDEX(1, 182)=85 + KINDEX(2, 182)=60 + KINDEX(1, 183)=87 + KINDEX(2, 183)=60 + KINDEX(1, 184)=15 + KINDEX(2, 184)=61 + KINDEX(1, 185)=29 + KINDEX(2, 185)=61 + KINDEX(1, 186)=85 + KINDEX(2, 186)=61 + KINDEX(1, 187)=5 + KINDEX(2, 187)=62 + KINDEX(1, 188)=8 + KINDEX(2, 188)=62 + KINDEX(1, 189)=29 + KINDEX(2, 189)=62 + KINDEX(1, 190)=85 + KINDEX(2, 190)=62 + KINDEX(1, 191)=15 + KINDEX(2, 191)=63 + KINDEX(1, 192)=30 + KINDEX(2, 192)=63 + KINDEX(1, 193)=85 + KINDEX(2, 193)=63 + KINDEX(1, 194)=30 + KINDEX(2, 194)=64 + KINDEX(1, 195)=85 + KINDEX(2, 195)=64 + KINDEX(1, 196)=87 + KINDEX(2, 196)=64 + KINDEX(1, 197)=15 KINDEX(2, 197)=65 - KINDEX(1, 198)=24 + KINDEX(1, 198)=35 KINDEX(2, 198)=65 - KINDEX(1, 199)=25 + KINDEX(1, 199)=85 KINDEX(2, 199)=65 - KINDEX(1, 200)=39 - KINDEX(2, 200)=65 - KINDEX(1, 201)=41 - KINDEX(2, 201)=65 - KINDEX(1, 202)=14 + KINDEX(1, 200)=8 + KINDEX(2, 200)=66 + KINDEX(1, 201)=35 + KINDEX(2, 201)=66 + KINDEX(1, 202)=85 KINDEX(2, 202)=66 - KINDEX(1, 203)=15 - KINDEX(2, 203)=66 - KINDEX(1, 204)=30 - KINDEX(2, 204)=66 - KINDEX(1, 205)=14 + KINDEX(1, 203)=3 + KINDEX(2, 203)=67 + KINDEX(1, 204)=10 + KINDEX(2, 204)=67 + KINDEX(1, 205)=11 KINDEX(2, 205)=67 - KINDEX(1, 206)=31 + KINDEX(1, 206)=15 KINDEX(2, 206)=67 - KINDEX(1, 207)=14 - KINDEX(2, 207)=68 - KINDEX(1, 208)=22 - KINDEX(2, 208)=68 - KINDEX(1, 209)=28 - KINDEX(2, 209)=68 - KINDEX(1, 210)=32 - KINDEX(2, 210)=68 - KINDEX(1, 211)=14 - KINDEX(2, 211)=69 - KINDEX(1, 212)=15 - KINDEX(2, 212)=69 - KINDEX(1, 213)=22 - KINDEX(2, 213)=69 - KINDEX(1, 214)=23 - KINDEX(2, 214)=69 - KINDEX(1, 215)=24 - KINDEX(2, 215)=69 - KINDEX(1, 216)=29 - KINDEX(2, 216)=69 - KINDEX(1, 217)=33 + KINDEX(1, 207)=17 + KINDEX(2, 207)=67 + KINDEX(1, 208)=28 + KINDEX(2, 208)=67 + KINDEX(1, 209)=35 + KINDEX(2, 209)=67 + KINDEX(1, 210)=39 + KINDEX(2, 210)=67 + KINDEX(1, 211)=40 + KINDEX(2, 211)=67 + KINDEX(1, 212)=43 + KINDEX(2, 212)=67 + KINDEX(1, 213)=85 + KINDEX(2, 213)=67 + KINDEX(1, 214)=17 + KINDEX(2, 214)=68 + KINDEX(1, 215)=29 + KINDEX(2, 215)=68 + KINDEX(1, 216)=35 + KINDEX(2, 216)=68 + KINDEX(1, 217)=15 KINDEX(2, 217)=69 - KINDEX(1, 218)=39 + KINDEX(1, 218)=38 KINDEX(2, 218)=69 - KINDEX(1, 219)=41 + KINDEX(1, 219)=85 KINDEX(2, 219)=69 - KINDEX(1, 220)=5 + KINDEX(1, 220)=15 KINDEX(2, 220)=70 - KINDEX(1, 221)=14 + KINDEX(1, 221)=34 KINDEX(2, 221)=70 - KINDEX(1, 222)=15 + KINDEX(1, 222)=85 KINDEX(2, 222)=70 - KINDEX(1, 223)=22 - KINDEX(2, 223)=70 - KINDEX(1, 224)=25 - KINDEX(2, 224)=70 - KINDEX(1, 225)=27 - KINDEX(2, 225)=70 - KINDEX(1, 226)=41 - KINDEX(2, 226)=70 - KINDEX(1, 227)=4 - KINDEX(2, 227)=71 - KINDEX(1, 228)=14 - KINDEX(2, 228)=71 - KINDEX(1, 229)=26 - KINDEX(2, 229)=71 - KINDEX(1, 230)=33 - KINDEX(2, 230)=71 - KINDEX(1, 231)=5 - KINDEX(2, 231)=72 - KINDEX(1, 232)=8 - KINDEX(2, 232)=72 - KINDEX(1, 233)=13 - KINDEX(2, 233)=72 - KINDEX(1, 234)=15 - KINDEX(2, 234)=72 - KINDEX(1, 235)=22 - KINDEX(2, 235)=72 - KINDEX(1, 236)=5 - KINDEX(2, 236)=73 - KINDEX(1, 237)=8 - KINDEX(2, 237)=73 - KINDEX(1, 238)=23 - KINDEX(2, 238)=73 - KINDEX(1, 239)=39 - KINDEX(2, 239)=73 - KINDEX(1, 240)=4 - KINDEX(2, 240)=74 - KINDEX(1, 241)=5 - KINDEX(2, 241)=74 - KINDEX(1, 242)=8 - KINDEX(2, 242)=74 - KINDEX(1, 243)=13 - KINDEX(2, 243)=74 - KINDEX(1, 244)=15 - KINDEX(2, 244)=74 - KINDEX(1, 245)=23 - KINDEX(2, 245)=74 - KINDEX(1, 246)=24 - KINDEX(2, 246)=74 - KINDEX(1, 247)=25 - KINDEX(2, 247)=74 - KINDEX(1, 248)=39 - KINDEX(2, 248)=74 - KINDEX(1, 249)=40 - KINDEX(2, 249)=74 - KINDEX(1, 250)=41 - KINDEX(2, 250)=74 - KINDEX(1, 251)=5 - KINDEX(2, 251)=75 - KINDEX(1, 252)=8 - KINDEX(2, 252)=75 - KINDEX(1, 253)=21 - KINDEX(2, 253)=75 - KINDEX(1, 254)=36 - KINDEX(2, 254)=75 - KINDEX(1, 255)=5 - KINDEX(2, 255)=76 - KINDEX(1, 256)=19 - KINDEX(2, 256)=76 - KINDEX(1, 257)=25 - KINDEX(2, 257)=76 - KINDEX(1, 258)=40 - KINDEX(2, 258)=76 - KINDEX(1, 259)=5 - KINDEX(2, 259)=77 - KINDEX(1, 260)=20 - KINDEX(2, 260)=77 - KINDEX(1, 261)=25 - KINDEX(2, 261)=77 - KINDEX(1, 262)=40 - KINDEX(2, 262)=77 - KINDEX(1, 263)=4 - KINDEX(2, 263)=78 - KINDEX(1, 264)=5 - KINDEX(2, 264)=78 - KINDEX(1, 265)=22 - KINDEX(2, 265)=78 - KINDEX(1, 266)=26 - KINDEX(2, 266)=78 - KINDEX(1, 267)=27 - KINDEX(2, 267)=78 - KINDEX(1, 268)=41 - KINDEX(2, 268)=78 - KINDEX(1, 269)=1 - KINDEX(2, 269)=79 - KINDEX(1, 270)=2 - KINDEX(2, 270)=79 - KINDEX(1, 271)=13 - KINDEX(2, 271)=79 - KINDEX(1, 272)=14 - KINDEX(2, 272)=79 - KINDEX(1, 273)=15 - KINDEX(2, 273)=79 - KINDEX(1, 274)=16 - KINDEX(2, 274)=79 - KINDEX(1, 275)=17 - KINDEX(2, 275)=79 - KINDEX(1, 276)=19 - KINDEX(2, 276)=79 - KINDEX(1, 277)=22 - KINDEX(2, 277)=79 - KINDEX(1, 278)=23 - KINDEX(2, 278)=79 - KINDEX(1, 279)=24 - KINDEX(2, 279)=79 - KINDEX(1, 280)=25 - KINDEX(2, 280)=79 - KINDEX(1, 281)=30 - KINDEX(2, 281)=79 - KINDEX(1, 282)=31 - KINDEX(2, 282)=79 - KINDEX(1, 283)=32 - KINDEX(2, 283)=79 - KINDEX(1, 284)=33 - KINDEX(2, 284)=79 - KINDEX(1, 285)=39 - KINDEX(2, 285)=79 - KINDEX(1, 286)=41 - KINDEX(2, 286)=79 - KINDEX(1, 287)=1 - KINDEX(2, 287)=80 - KINDEX(1, 288)=2 - KINDEX(2, 288)=80 - KINDEX(1, 289)=13 - KINDEX(2, 289)=80 - KINDEX(1, 290)=14 - KINDEX(2, 290)=80 - KINDEX(1, 291)=15 - KINDEX(2, 291)=80 - KINDEX(1, 292)=19 - KINDEX(2, 292)=80 - KINDEX(1, 293)=20 - KINDEX(2, 293)=80 - KINDEX(1, 294)=22 - KINDEX(2, 294)=80 - KINDEX(1, 295)=23 - KINDEX(2, 295)=80 - KINDEX(1, 296)=24 - KINDEX(2, 296)=80 - KINDEX(1, 297)=25 - KINDEX(2, 297)=80 - KINDEX(1, 298)=30 - KINDEX(2, 298)=80 - KINDEX(1, 299)=31 - KINDEX(2, 299)=80 - KINDEX(1, 300)=32 - KINDEX(2, 300)=80 - KINDEX(1, 301)=33 - KINDEX(2, 301)=80 - KINDEX(1, 302)=39 - KINDEX(2, 302)=80 - KINDEX(1, 303)=41 - KINDEX(2, 303)=80 - KINDEX(1, 304)=1 - KINDEX(2, 304)=81 - KINDEX(1, 305)=13 - KINDEX(2, 305)=81 - KINDEX(1, 306)=14 - KINDEX(2, 306)=81 - KINDEX(1, 307)=15 - KINDEX(2, 307)=81 - KINDEX(1, 308)=22 - KINDEX(2, 308)=81 - KINDEX(1, 309)=23 - KINDEX(2, 309)=81 - KINDEX(1, 310)=25 - KINDEX(2, 310)=81 - KINDEX(1, 311)=29 - KINDEX(2, 311)=81 - KINDEX(1, 312)=30 - KINDEX(2, 312)=81 - KINDEX(1, 313)=31 - KINDEX(2, 313)=81 - KINDEX(1, 314)=39 - KINDEX(2, 314)=81 - KINDEX(1, 315)=1 - KINDEX(2, 315)=82 - KINDEX(1, 316)=4 - KINDEX(2, 316)=82 - KINDEX(1, 317)=13 - KINDEX(2, 317)=82 - KINDEX(1, 318)=14 - KINDEX(2, 318)=82 - KINDEX(1, 319)=15 - KINDEX(2, 319)=82 - KINDEX(1, 320)=22 - KINDEX(2, 320)=82 - KINDEX(1, 321)=27 - KINDEX(2, 321)=82 - KINDEX(1, 322)=30 - KINDEX(2, 322)=82 - KINDEX(1, 323)=39 - KINDEX(2, 323)=82 - KINDEX(1, 324)=4 - KINDEX(2, 324)=83 - KINDEX(1, 325)=21 - KINDEX(2, 325)=83 - KINDEX(1, 326)=26 - KINDEX(2, 326)=83 - KINDEX(1, 327)=36 - KINDEX(2, 327)=83 - KINDEX(1, 328)=15 - KINDEX(2, 328)=84 - KINDEX(1, 329)=21 - KINDEX(2, 329)=84 - KINDEX(1, 330)=36 - KINDEX(2, 330)=84 - KINDEX(1, 331)=4 - KINDEX(2, 331)=85 - KINDEX(1, 332)=7 - KINDEX(2, 332)=85 - KINDEX(1, 333)=21 - KINDEX(2, 333)=85 - KINDEX(1, 334)=37 - KINDEX(2, 334)=85 - KINDEX(1, 335)=15 - KINDEX(2, 335)=86 - KINDEX(1, 336)=21 - KINDEX(2, 336)=86 - KINDEX(1, 337)=37 - KINDEX(2, 337)=86 - KINDEX(1, 338)=38 - KINDEX(2, 338)=86 - KINDEX(1, 339)=1 - KINDEX(2, 339)=87 - KINDEX(1, 340)=14 - KINDEX(2, 340)=87 - KINDEX(1, 341)=21 - KINDEX(2, 341)=87 - KINDEX(1, 342)=37 - KINDEX(2, 342)=87 - KINDEX(1, 343)=4 - KINDEX(2, 343)=88 - KINDEX(1, 344)=27 - KINDEX(2, 344)=88 - KINDEX(1, 345)=39 - KINDEX(2, 345)=88 - KINDEX(1, 346)=4 - KINDEX(2, 346)=89 - KINDEX(1, 347)=27 - KINDEX(2, 347)=89 - KINDEX(1, 348)=39 - KINDEX(2, 348)=89 - KINDEX(1, 349)=3 - KINDEX(2, 349)=90 - KINDEX(1, 350)=4 - KINDEX(2, 350)=90 - KINDEX(1, 351)=15 - KINDEX(2, 351)=90 - KINDEX(1, 352)=22 - KINDEX(2, 352)=90 - KINDEX(1, 353)=32 - KINDEX(2, 353)=90 - KINDEX(1, 354)=3 - KINDEX(2, 354)=91 - KINDEX(1, 355)=4 - KINDEX(2, 355)=91 - KINDEX(1, 356)=15 - KINDEX(2, 356)=91 - KINDEX(1, 357)=22 - KINDEX(2, 357)=91 - KINDEX(1, 358)=23 - KINDEX(2, 358)=91 - KINDEX(1, 359)=24 - KINDEX(2, 359)=91 - KINDEX(1, 360)=25 - KINDEX(2, 360)=91 - KINDEX(1, 361)=26 - KINDEX(2, 361)=91 - KINDEX(1, 362)=32 - KINDEX(2, 362)=91 - KINDEX(1, 363)=33 - KINDEX(2, 363)=91 - KINDEX(1, 364)=41 - KINDEX(2, 364)=91 - KINDEX(1, 365)=3 - KINDEX(2, 365)=92 - KINDEX(1, 366)=4 - KINDEX(2, 366)=92 - KINDEX(1, 367)=15 - KINDEX(2, 367)=92 - KINDEX(1, 368)=22 - KINDEX(2, 368)=92 - KINDEX(1, 369)=23 - KINDEX(2, 369)=92 - KINDEX(1, 370)=24 - KINDEX(2, 370)=92 - KINDEX(1, 371)=34 - KINDEX(2, 371)=92 - KINDEX(1, 372)=3 - KINDEX(2, 372)=93 - KINDEX(1, 373)=4 - KINDEX(2, 373)=93 - KINDEX(1, 374)=15 - KINDEX(2, 374)=93 - KINDEX(1, 375)=19 - KINDEX(2, 375)=93 - KINDEX(1, 376)=22 - KINDEX(2, 376)=93 - KINDEX(1, 377)=23 - KINDEX(2, 377)=93 - KINDEX(1, 378)=24 - KINDEX(2, 378)=93 - KINDEX(1, 379)=25 - KINDEX(2, 379)=93 - KINDEX(1, 380)=26 - KINDEX(2, 380)=93 - KINDEX(1, 381)=35 - KINDEX(2, 381)=93 - KINDEX(1, 382)=3 - KINDEX(2, 382)=94 - KINDEX(1, 383)=4 - KINDEX(2, 383)=94 - KINDEX(1, 384)=15 - KINDEX(2, 384)=94 - KINDEX(1, 385)=25 - KINDEX(2, 385)=94 - KINDEX(1, 386)=26 - KINDEX(2, 386)=94 - KINDEX(1, 387)=38 - KINDEX(2, 387)=94 - KINDEX(1, 388)=3 - KINDEX(2, 388)=95 - KINDEX(1, 389)=4 - KINDEX(2, 389)=95 - KINDEX(1, 390)=15 - KINDEX(2, 390)=95 - KINDEX(1, 391)=22 - KINDEX(2, 391)=95 - KINDEX(1, 392)=23 - KINDEX(2, 392)=95 - KINDEX(1, 393)=25 - KINDEX(2, 393)=95 - KINDEX(1, 394)=32 - KINDEX(2, 394)=95 - KINDEX(1, 395)=39 - KINDEX(2, 395)=95 - KINDEX(1, 396)=41 - KINDEX(2, 396)=95 - KINDEX(1, 397)=3 - KINDEX(2, 397)=96 - KINDEX(1, 398)=4 - KINDEX(2, 398)=96 + KINDEX(1, 223)=15 + KINDEX(2, 223)=71 + KINDEX(1, 224)=31 + KINDEX(2, 224)=71 + KINDEX(1, 225)=85 + KINDEX(2, 225)=71 + KINDEX(1, 226)=31 + KINDEX(2, 226)=72 + KINDEX(1, 227)=85 + KINDEX(2, 227)=72 + KINDEX(1, 228)=87 + KINDEX(2, 228)=72 + KINDEX(1, 229)=5 + KINDEX(2, 229)=73 + KINDEX(1, 230)=8 + KINDEX(2, 230)=73 + KINDEX(1, 231)=24 + KINDEX(2, 231)=73 + KINDEX(1, 232)=10 + KINDEX(2, 232)=74 + KINDEX(1, 233)=15 + KINDEX(2, 233)=74 + KINDEX(1, 234)=24 + KINDEX(2, 234)=74 + KINDEX(1, 235)=85 + KINDEX(2, 235)=74 + KINDEX(1, 236)=15 + KINDEX(2, 236)=75 + KINDEX(1, 237)=18 + KINDEX(2, 237)=75 + KINDEX(1, 238)=85 + KINDEX(2, 238)=75 + KINDEX(1, 239)=8 + KINDEX(2, 239)=76 + KINDEX(1, 240)=18 + KINDEX(2, 240)=76 + KINDEX(1, 241)=85 + KINDEX(2, 241)=76 + KINDEX(1, 242)=3 + KINDEX(2, 242)=77 + KINDEX(1, 243)=10 + KINDEX(2, 243)=77 + KINDEX(1, 244)=11 + KINDEX(2, 244)=77 + KINDEX(1, 245)=15 + KINDEX(2, 245)=77 + KINDEX(1, 246)=18 + KINDEX(2, 246)=77 + KINDEX(1, 247)=20 + KINDEX(2, 247)=77 + KINDEX(1, 248)=28 + KINDEX(2, 248)=77 + KINDEX(1, 249)=45 + KINDEX(2, 249)=77 + KINDEX(1, 250)=69 + KINDEX(2, 250)=77 + KINDEX(1, 251)=85 + KINDEX(2, 251)=77 + KINDEX(1, 252)=18 + KINDEX(2, 252)=78 + KINDEX(1, 253)=20 + KINDEX(2, 253)=78 + KINDEX(1, 254)=69 + KINDEX(2, 254)=78 + KINDEX(1, 255)=85 + KINDEX(2, 255)=78 + KINDEX(1, 256)=15 + KINDEX(2, 256)=79 + KINDEX(1, 257)=20 + KINDEX(2, 257)=79 + KINDEX(1, 258)=85 + KINDEX(2, 258)=79 + KINDEX(1, 259)=10 + KINDEX(2, 259)=80 + KINDEX(1, 260)=15 + KINDEX(2, 260)=80 + KINDEX(1, 261)=23 + KINDEX(2, 261)=80 + KINDEX(1, 262)=24 + KINDEX(2, 262)=80 + KINDEX(1, 263)=85 + KINDEX(2, 263)=80 + KINDEX(1, 264)=10 + KINDEX(2, 264)=81 + KINDEX(1, 265)=15 + KINDEX(2, 265)=81 + KINDEX(1, 266)=22 + KINDEX(2, 266)=81 + KINDEX(1, 267)=24 + KINDEX(2, 267)=81 + KINDEX(1, 268)=3 + KINDEX(2, 268)=82 + KINDEX(1, 269)=5 + KINDEX(2, 269)=82 + KINDEX(1, 270)=8 + KINDEX(2, 270)=82 + KINDEX(1, 271)=25 + KINDEX(2, 271)=82 + KINDEX(1, 272)=26 + KINDEX(2, 272)=82 + KINDEX(1, 273)=3 + KINDEX(2, 273)=83 + KINDEX(1, 274)=10 + KINDEX(2, 274)=83 + KINDEX(1, 275)=15 + KINDEX(2, 275)=83 + KINDEX(1, 276)=25 + KINDEX(2, 276)=83 + KINDEX(1, 277)=26 + KINDEX(2, 277)=83 + KINDEX(1, 278)=75 + KINDEX(2, 278)=83 + KINDEX(1, 279)=85 + KINDEX(2, 279)=83 + KINDEX(1, 280)=10 + KINDEX(2, 280)=84 + KINDEX(1, 281)=15 + KINDEX(2, 281)=84 + KINDEX(1, 282)=26 + KINDEX(2, 282)=84 + KINDEX(1, 283)=60 + KINDEX(2, 283)=84 + KINDEX(1, 284)=85 + KINDEX(2, 284)=84 + KINDEX(1, 285)=15 + KINDEX(2, 285)=85 + KINDEX(1, 286)=36 + KINDEX(2, 286)=85 + KINDEX(1, 287)=85 + KINDEX(2, 287)=85 + KINDEX(1, 288)=8 + KINDEX(2, 288)=86 + KINDEX(1, 289)=36 + KINDEX(2, 289)=86 + KINDEX(1, 290)=85 + KINDEX(2, 290)=86 + KINDEX(1, 291)=3 + KINDEX(2, 291)=87 + KINDEX(1, 292)=10 + KINDEX(2, 292)=87 + KINDEX(1, 293)=11 + KINDEX(2, 293)=87 + KINDEX(1, 294)=12 + KINDEX(2, 294)=87 + KINDEX(1, 295)=15 + KINDEX(2, 295)=87 + KINDEX(1, 296)=36 + KINDEX(2, 296)=87 + KINDEX(1, 297)=53 + KINDEX(2, 297)=87 + KINDEX(1, 298)=57 + KINDEX(2, 298)=87 + KINDEX(1, 299)=85 + KINDEX(2, 299)=87 + KINDEX(1, 300)=36 + KINDEX(2, 300)=88 + KINDEX(1, 301)=68 + KINDEX(2, 301)=88 + KINDEX(1, 302)=15 + KINDEX(2, 302)=89 + KINDEX(1, 303)=37 + KINDEX(2, 303)=89 + KINDEX(1, 304)=85 + KINDEX(2, 304)=89 + KINDEX(1, 305)=8 + KINDEX(2, 305)=90 + KINDEX(1, 306)=37 + KINDEX(2, 306)=90 + KINDEX(1, 307)=85 + KINDEX(2, 307)=90 + KINDEX(1, 308)=3 + KINDEX(2, 308)=91 + KINDEX(1, 309)=11 + KINDEX(2, 309)=91 + KINDEX(1, 310)=12 + KINDEX(2, 310)=91 + KINDEX(1, 311)=15 + KINDEX(2, 311)=91 + KINDEX(1, 312)=37 + KINDEX(2, 312)=91 + KINDEX(1, 313)=54 + KINDEX(2, 313)=91 + KINDEX(1, 314)=56 + KINDEX(2, 314)=91 + KINDEX(1, 315)=85 + KINDEX(2, 315)=91 + KINDEX(1, 316)=37 + KINDEX(2, 316)=92 + KINDEX(1, 317)=10 + KINDEX(2, 317)=93 + KINDEX(1, 318)=15 + KINDEX(2, 318)=93 + KINDEX(1, 319)=27 + KINDEX(2, 319)=93 + KINDEX(1, 320)=64 + KINDEX(2, 320)=93 + KINDEX(1, 321)=85 + KINDEX(2, 321)=93 + KINDEX(1, 322)=15 + KINDEX(2, 322)=94 + KINDEX(1, 323)=21 + KINDEX(2, 323)=94 + KINDEX(1, 324)=85 + KINDEX(2, 324)=94 + KINDEX(1, 325)=10 + KINDEX(2, 325)=95 + KINDEX(1, 326)=85 + KINDEX(2, 326)=95 + KINDEX(1, 327)=1 + KINDEX(2, 327)=96 + KINDEX(1, 328)=85 + KINDEX(2, 328)=96 + KINDEX(1, 329)=85 + KINDEX(2, 329)=97 + KINDEX(1, 330)=85 + KINDEX(2, 330)=98 + KINDEX(1, 331)=85 + KINDEX(2, 331)=99 + KINDEX(1, 332)=85 + KINDEX(2, 332)=100 + KINDEX(1, 333)=85 + KINDEX(2, 333)=101 + KINDEX(1, 334)=85 + KINDEX(2, 334)=102 + KINDEX(1, 335)=85 + KINDEX(2, 335)=103 + KINDEX(1, 336)=2 + KINDEX(2, 336)=104 + KINDEX(1, 337)=61 + KINDEX(2, 337)=104 + KINDEX(1, 338)=2 + KINDEX(2, 338)=105 + KINDEX(1, 339)=61 + KINDEX(2, 339)=105 + KINDEX(1, 340)=2 + KINDEX(2, 340)=106 + KINDEX(1, 341)=2 + KINDEX(2, 341)=107 + KINDEX(1, 342)=2 + KINDEX(2, 342)=108 + KINDEX(1, 343)=70 + KINDEX(2, 343)=108 + KINDEX(1, 344)=2 + KINDEX(2, 344)=109 + KINDEX(1, 345)=60 + KINDEX(2, 345)=109 + KINDEX(1, 346)=2 + KINDEX(2, 346)=110 + KINDEX(1, 347)=64 + KINDEX(2, 347)=110 + KINDEX(1, 348)=1 + KINDEX(2, 348)=111 + KINDEX(1, 349)=2 + KINDEX(2, 349)=111 + KINDEX(1, 350)=10 + KINDEX(2, 350)=111 + KINDEX(1, 351)=28 + KINDEX(2, 351)=111 + KINDEX(1, 352)=86 + KINDEX(2, 352)=111 + KINDEX(1, 353)=10 + KINDEX(2, 353)=112 + KINDEX(1, 354)=28 + KINDEX(2, 354)=112 + KINDEX(1, 355)=85 + KINDEX(2, 355)=112 + KINDEX(1, 356)=86 + KINDEX(2, 356)=112 + KINDEX(1, 357)=10 + KINDEX(2, 357)=113 + KINDEX(1, 358)=15 + KINDEX(2, 358)=113 + KINDEX(1, 359)=28 + KINDEX(2, 359)=113 + KINDEX(1, 360)=86 + KINDEX(2, 360)=113 + KINDEX(1, 361)=1 + KINDEX(2, 361)=114 + KINDEX(1, 362)=2 + KINDEX(2, 362)=114 + KINDEX(1, 363)=10 + KINDEX(2, 363)=114 + KINDEX(1, 364)=28 + KINDEX(2, 364)=114 + KINDEX(1, 365)=29 + KINDEX(2, 365)=114 + KINDEX(1, 366)=10 + KINDEX(2, 366)=115 + KINDEX(1, 367)=28 + KINDEX(2, 367)=115 + KINDEX(1, 368)=29 + KINDEX(2, 368)=115 + KINDEX(1, 369)=85 + KINDEX(2, 369)=115 + KINDEX(1, 370)=10 + KINDEX(2, 370)=116 + KINDEX(1, 371)=15 + KINDEX(2, 371)=116 + KINDEX(1, 372)=28 + KINDEX(2, 372)=116 + KINDEX(1, 373)=29 + KINDEX(2, 373)=116 + KINDEX(1, 374)=1 + KINDEX(2, 374)=117 + KINDEX(1, 375)=2 + KINDEX(2, 375)=117 + KINDEX(1, 376)=28 + KINDEX(2, 376)=117 + KINDEX(1, 377)=29 + KINDEX(2, 377)=117 + KINDEX(1, 378)=2 + KINDEX(2, 378)=118 + KINDEX(1, 379)=10 + KINDEX(2, 379)=118 + KINDEX(1, 380)=28 + KINDEX(2, 380)=118 + KINDEX(1, 381)=29 + KINDEX(2, 381)=118 + KINDEX(1, 382)=85 + KINDEX(2, 382)=118 + KINDEX(1, 383)=2 + KINDEX(2, 383)=119 + KINDEX(1, 384)=10 + KINDEX(2, 384)=119 + KINDEX(1, 385)=15 + KINDEX(2, 385)=119 + KINDEX(1, 386)=28 + KINDEX(2, 386)=119 + KINDEX(1, 387)=29 + KINDEX(2, 387)=119 + KINDEX(1, 388)=1 + KINDEX(2, 388)=120 + KINDEX(1, 389)=2 + KINDEX(2, 389)=120 + KINDEX(1, 390)=10 + KINDEX(2, 390)=120 + KINDEX(1, 391)=11 + KINDEX(2, 391)=120 + KINDEX(1, 392)=28 + KINDEX(2, 392)=120 + KINDEX(1, 393)=10 + KINDEX(2, 393)=121 + KINDEX(1, 394)=11 + KINDEX(2, 394)=121 + KINDEX(1, 395)=28 + KINDEX(2, 395)=121 + KINDEX(1, 396)=85 + KINDEX(2, 396)=121 + KINDEX(1, 397)=10 + KINDEX(2, 397)=122 + KINDEX(1, 398)=11 + KINDEX(2, 398)=122 KINDEX(1, 399)=15 - KINDEX(2, 399)=96 - KINDEX(1, 400)=22 - KINDEX(2, 400)=96 - KINDEX(1, 401)=23 - KINDEX(2, 401)=96 - KINDEX(1, 402)=24 - KINDEX(2, 402)=96 - KINDEX(1, 403)=26 - KINDEX(2, 403)=96 - KINDEX(1, 404)=40 - KINDEX(2, 404)=96 - KINDEX(1, 405)=15 - KINDEX(2, 405)=97 - KINDEX(1, 406)=28 - KINDEX(2, 406)=97 - KINDEX(1, 407)=32 - KINDEX(2, 407)=97 - KINDEX(1, 408)=15 - KINDEX(2, 408)=98 - KINDEX(1, 409)=29 - KINDEX(2, 409)=98 - KINDEX(1, 410)=33 - KINDEX(2, 410)=98 - KINDEX(1, 411)=15 - KINDEX(2, 411)=99 - KINDEX(1, 412)=29 - KINDEX(2, 412)=99 - KINDEX(1, 413)=34 - KINDEX(2, 413)=99 - KINDEX(1, 414)=15 - KINDEX(2, 414)=100 - KINDEX(1, 415)=29 - KINDEX(2, 415)=100 - KINDEX(1, 416)=35 - KINDEX(2, 416)=100 - KINDEX(1, 417)=15 - KINDEX(2, 417)=101 - KINDEX(1, 418)=29 - KINDEX(2, 418)=101 - KINDEX(1, 419)=38 - KINDEX(2, 419)=101 - KINDEX(1, 420)=1 - KINDEX(2, 420)=102 - KINDEX(1, 421)=15 - KINDEX(2, 421)=102 - KINDEX(1, 422)=29 - KINDEX(2, 422)=102 - KINDEX(1, 423)=31 - KINDEX(2, 423)=102 - KINDEX(1, 424)=39 - KINDEX(2, 424)=102 - KINDEX(1, 425)=15 - KINDEX(2, 425)=103 - KINDEX(1, 426)=26 - KINDEX(2, 426)=103 - KINDEX(1, 427)=40 - KINDEX(2, 427)=103 - KINDEX(1, 428)=15 - KINDEX(2, 428)=104 - KINDEX(1, 429)=22 - KINDEX(2, 429)=104 - KINDEX(1, 430)=32 - KINDEX(2, 430)=104 - KINDEX(1, 431)=15 - KINDEX(2, 431)=105 - KINDEX(1, 432)=22 - KINDEX(2, 432)=105 - KINDEX(1, 433)=23 - KINDEX(2, 433)=105 - KINDEX(1, 434)=24 - KINDEX(2, 434)=105 - KINDEX(1, 435)=25 - KINDEX(2, 435)=105 - KINDEX(1, 436)=32 - KINDEX(2, 436)=105 - KINDEX(1, 437)=33 - KINDEX(2, 437)=105 - KINDEX(1, 438)=41 - KINDEX(2, 438)=105 - KINDEX(1, 439)=15 - KINDEX(2, 439)=106 - KINDEX(1, 440)=22 - KINDEX(2, 440)=106 - KINDEX(1, 441)=23 - KINDEX(2, 441)=106 - KINDEX(1, 442)=24 - KINDEX(2, 442)=106 - KINDEX(1, 443)=32 - KINDEX(2, 443)=106 - KINDEX(1, 444)=34 - KINDEX(2, 444)=106 - KINDEX(1, 445)=15 - KINDEX(2, 445)=107 - KINDEX(1, 446)=19 - KINDEX(2, 446)=107 - KINDEX(1, 447)=22 - KINDEX(2, 447)=107 - KINDEX(1, 448)=23 - KINDEX(2, 448)=107 - KINDEX(1, 449)=24 - KINDEX(2, 449)=107 - KINDEX(1, 450)=25 - KINDEX(2, 450)=107 - KINDEX(1, 451)=32 - KINDEX(2, 451)=107 - KINDEX(1, 452)=35 - KINDEX(2, 452)=107 - KINDEX(1, 453)=15 - KINDEX(2, 453)=108 - KINDEX(1, 454)=22 - KINDEX(2, 454)=108 - KINDEX(1, 455)=25 - KINDEX(2, 455)=108 - KINDEX(1, 456)=32 - KINDEX(2, 456)=108 - KINDEX(1, 457)=38 - KINDEX(2, 457)=108 - KINDEX(1, 458)=15 - KINDEX(2, 458)=109 - KINDEX(1, 459)=22 - KINDEX(2, 459)=109 - KINDEX(1, 460)=23 - KINDEX(2, 460)=109 - KINDEX(1, 461)=25 - KINDEX(2, 461)=109 - KINDEX(1, 462)=31 - KINDEX(2, 462)=109 - KINDEX(1, 463)=32 - KINDEX(2, 463)=109 - KINDEX(1, 464)=39 - KINDEX(2, 464)=109 - KINDEX(1, 465)=41 - KINDEX(2, 465)=109 - KINDEX(1, 466)=4 - KINDEX(2, 466)=110 - KINDEX(1, 467)=15 - KINDEX(2, 467)=110 - KINDEX(1, 468)=22 - KINDEX(2, 468)=110 - KINDEX(1, 469)=23 - KINDEX(2, 469)=110 - KINDEX(1, 470)=24 - KINDEX(2, 470)=110 - KINDEX(1, 471)=26 - KINDEX(2, 471)=110 - KINDEX(1, 472)=32 - KINDEX(2, 472)=110 - KINDEX(1, 473)=40 - KINDEX(2, 473)=110 - KINDEX(1, 474)=15 - KINDEX(2, 474)=111 - KINDEX(1, 475)=22 - KINDEX(2, 475)=111 - KINDEX(1, 476)=23 - KINDEX(2, 476)=111 - KINDEX(1, 477)=24 - KINDEX(2, 477)=111 - KINDEX(1, 478)=25 - KINDEX(2, 478)=111 - KINDEX(1, 479)=31 - KINDEX(2, 479)=111 - KINDEX(1, 480)=32 - KINDEX(2, 480)=111 - KINDEX(1, 481)=33 - KINDEX(2, 481)=111 - KINDEX(1, 482)=39 - KINDEX(2, 482)=111 - KINDEX(1, 483)=41 - KINDEX(2, 483)=111 - KINDEX(1, 484)=15 - KINDEX(2, 484)=112 - KINDEX(1, 485)=22 - KINDEX(2, 485)=112 - KINDEX(1, 486)=23 - KINDEX(2, 486)=112 - KINDEX(1, 487)=24 - KINDEX(2, 487)=112 - KINDEX(1, 488)=31 - KINDEX(2, 488)=112 - KINDEX(1, 489)=32 - KINDEX(2, 489)=112 - KINDEX(1, 490)=34 - KINDEX(2, 490)=112 + KINDEX(2, 399)=122 + KINDEX(1, 400)=28 + KINDEX(2, 400)=122 + KINDEX(1, 401)=1 + KINDEX(2, 401)=123 + KINDEX(1, 402)=2 + KINDEX(2, 402)=123 + KINDEX(1, 403)=10 + KINDEX(2, 403)=123 + KINDEX(1, 404)=19 + KINDEX(2, 404)=123 + KINDEX(1, 405)=29 + KINDEX(2, 405)=123 + KINDEX(1, 406)=87 + KINDEX(2, 406)=123 + KINDEX(1, 407)=10 + KINDEX(2, 407)=124 + KINDEX(1, 408)=29 + KINDEX(2, 408)=124 + KINDEX(1, 409)=85 + KINDEX(2, 409)=124 + KINDEX(1, 410)=87 + KINDEX(2, 410)=124 + KINDEX(1, 411)=10 + KINDEX(2, 411)=125 + KINDEX(1, 412)=15 + KINDEX(2, 412)=125 + KINDEX(1, 413)=29 + KINDEX(2, 413)=125 + KINDEX(1, 414)=87 + KINDEX(2, 414)=125 + KINDEX(1, 415)=1 + KINDEX(2, 415)=126 + KINDEX(1, 416)=2 + KINDEX(2, 416)=126 + KINDEX(1, 417)=85 + KINDEX(2, 417)=126 + KINDEX(1, 418)=87 + KINDEX(2, 418)=126 + KINDEX(1, 419)=2 + KINDEX(2, 419)=127 + KINDEX(1, 420)=77 + KINDEX(2, 420)=127 + KINDEX(1, 421)=2 + KINDEX(2, 421)=128 + KINDEX(1, 422)=78 + KINDEX(2, 422)=128 + KINDEX(1, 423)=2 + KINDEX(2, 423)=129 + KINDEX(1, 424)=79 + KINDEX(2, 424)=129 + KINDEX(1, 425)=2 + KINDEX(2, 425)=130 + KINDEX(1, 426)=80 + KINDEX(2, 426)=130 + KINDEX(1, 427)=2 + KINDEX(2, 427)=131 + KINDEX(1, 428)=76 + KINDEX(2, 428)=131 + KINDEX(1, 429)=2 + KINDEX(2, 429)=132 + KINDEX(1, 430)=81 + KINDEX(2, 430)=132 + KINDEX(1, 431)=2 + KINDEX(2, 431)=133 + KINDEX(1, 432)=82 + KINDEX(2, 432)=133 + KINDEX(1, 433)=2 + KINDEX(2, 433)=134 + KINDEX(1, 434)=76 + KINDEX(2, 434)=134 + KINDEX(1, 435)=2 + KINDEX(2, 435)=135 + KINDEX(1, 436)=84 + KINDEX(2, 436)=135 + KINDEX(1, 437)=2 + KINDEX(2, 437)=136 + KINDEX(1, 438)=77 + KINDEX(2, 438)=136 + KINDEX(1, 439)=85 + KINDEX(2, 439)=136 + KINDEX(1, 440)=2 + KINDEX(2, 440)=137 + KINDEX(1, 441)=78 + KINDEX(2, 441)=137 + KINDEX(1, 442)=85 + KINDEX(2, 442)=137 + KINDEX(1, 443)=2 + KINDEX(2, 443)=138 + KINDEX(1, 444)=79 + KINDEX(2, 444)=138 + KINDEX(1, 445)=85 + KINDEX(2, 445)=138 + KINDEX(1, 446)=2 + KINDEX(2, 446)=139 + KINDEX(1, 447)=84 + KINDEX(2, 447)=139 + KINDEX(1, 448)=85 + KINDEX(2, 448)=139 + KINDEX(1, 449)=2 + KINDEX(2, 449)=140 + KINDEX(1, 450)=76 + KINDEX(2, 450)=140 + KINDEX(1, 451)=85 + KINDEX(2, 451)=140 + KINDEX(1, 452)=2 + KINDEX(2, 452)=141 + KINDEX(1, 453)=81 + KINDEX(2, 453)=141 + KINDEX(1, 454)=85 + KINDEX(2, 454)=141 + KINDEX(1, 455)=2 + KINDEX(2, 455)=142 + KINDEX(1, 456)=80 + KINDEX(2, 456)=142 + KINDEX(1, 457)=85 + KINDEX(2, 457)=142 + KINDEX(1, 458)=3 + KINDEX(2, 458)=143 + KINDEX(1, 459)=10 + KINDEX(2, 459)=143 + KINDEX(1, 460)=44 + KINDEX(2, 460)=143 + KINDEX(1, 461)=45 + KINDEX(2, 461)=143 + KINDEX(1, 462)=85 + KINDEX(2, 462)=144 + KINDEX(1, 463)=87 + KINDEX(2, 463)=144 + KINDEX(1, 464)=1 + KINDEX(2, 464)=145 + KINDEX(1, 465)=2 + KINDEX(2, 465)=145 + KINDEX(1, 466)=29 + KINDEX(2, 466)=145 + KINDEX(1, 467)=85 + KINDEX(2, 467)=145 + KINDEX(1, 468)=29 + KINDEX(2, 468)=146 + KINDEX(1, 469)=85 + KINDEX(2, 469)=146 + KINDEX(1, 470)=10 + KINDEX(2, 470)=147 + KINDEX(1, 471)=15 + KINDEX(2, 471)=147 + KINDEX(1, 472)=29 + KINDEX(2, 472)=147 + KINDEX(1, 473)=85 + KINDEX(2, 473)=147 + KINDEX(1, 474)=1 + KINDEX(2, 474)=148 + KINDEX(1, 475)=2 + KINDEX(2, 475)=148 + KINDEX(1, 476)=85 + KINDEX(2, 476)=148 + KINDEX(1, 477)=86 + KINDEX(2, 477)=148 + KINDEX(1, 478)=3 + KINDEX(2, 478)=149 + KINDEX(1, 479)=10 + KINDEX(2, 479)=149 + KINDEX(1, 480)=44 + KINDEX(2, 480)=149 + KINDEX(1, 481)=85 + KINDEX(2, 481)=150 + KINDEX(1, 482)=86 + KINDEX(2, 482)=150 + KINDEX(1, 483)=1 + KINDEX(2, 483)=151 + KINDEX(1, 484)=2 + KINDEX(2, 484)=151 + KINDEX(1, 485)=10 + KINDEX(2, 485)=151 + KINDEX(1, 486)=17 + KINDEX(2, 486)=151 + KINDEX(1, 487)=28 + KINDEX(2, 487)=151 + KINDEX(1, 488)=39 + KINDEX(2, 488)=151 + KINDEX(1, 489)=10 + KINDEX(2, 489)=152 + KINDEX(1, 490)=28 + KINDEX(2, 490)=152 KINDEX(1, 491)=39 - KINDEX(2, 491)=112 - KINDEX(1, 492)=15 - KINDEX(2, 492)=113 - KINDEX(1, 493)=19 - KINDEX(2, 493)=113 - KINDEX(1, 494)=22 - KINDEX(2, 494)=113 - KINDEX(1, 495)=23 - KINDEX(2, 495)=113 - KINDEX(1, 496)=24 - KINDEX(2, 496)=113 - KINDEX(1, 497)=25 - KINDEX(2, 497)=113 - KINDEX(1, 498)=31 - KINDEX(2, 498)=113 - KINDEX(1, 499)=32 - KINDEX(2, 499)=113 - KINDEX(1, 500)=35 - KINDEX(2, 500)=113 - KINDEX(1, 501)=39 - KINDEX(2, 501)=113 - KINDEX(1, 502)=15 - KINDEX(2, 502)=114 - KINDEX(1, 503)=25 - KINDEX(2, 503)=114 - KINDEX(1, 504)=32 - KINDEX(2, 504)=114 - KINDEX(1, 505)=38 - KINDEX(2, 505)=114 - KINDEX(1, 506)=39 - KINDEX(2, 506)=114 + KINDEX(2, 491)=152 + KINDEX(1, 492)=85 + KINDEX(2, 492)=152 + KINDEX(1, 493)=10 + KINDEX(2, 493)=153 + KINDEX(1, 494)=15 + KINDEX(2, 494)=153 + KINDEX(1, 495)=28 + KINDEX(2, 495)=153 + KINDEX(1, 496)=39 + KINDEX(2, 496)=153 + KINDEX(1, 497)=1 + KINDEX(2, 497)=154 + KINDEX(1, 498)=2 + KINDEX(2, 498)=154 + KINDEX(1, 499)=10 + KINDEX(2, 499)=154 + KINDEX(1, 500)=28 + KINDEX(2, 500)=154 + KINDEX(1, 501)=40 + KINDEX(2, 501)=154 + KINDEX(1, 502)=10 + KINDEX(2, 502)=155 + KINDEX(1, 503)=28 + KINDEX(2, 503)=155 + KINDEX(1, 504)=40 + KINDEX(2, 504)=155 + KINDEX(1, 505)=85 + KINDEX(2, 505)=155 + KINDEX(1, 506)=10 + KINDEX(2, 506)=156 KINDEX(1, 507)=15 - KINDEX(2, 507)=115 - KINDEX(1, 508)=22 - KINDEX(2, 508)=115 - KINDEX(1, 509)=23 - KINDEX(2, 509)=115 - KINDEX(1, 510)=24 - KINDEX(2, 510)=115 - KINDEX(1, 511)=25 - KINDEX(2, 511)=115 - KINDEX(1, 512)=31 - KINDEX(2, 512)=115 - KINDEX(1, 513)=32 - KINDEX(2, 513)=115 - KINDEX(1, 514)=39 - KINDEX(2, 514)=115 - KINDEX(1, 515)=41 - KINDEX(2, 515)=115 - KINDEX(1, 516)=4 - KINDEX(2, 516)=116 - KINDEX(1, 517)=15 - KINDEX(2, 517)=116 - KINDEX(1, 518)=22 - KINDEX(2, 518)=116 - KINDEX(1, 519)=23 - KINDEX(2, 519)=116 - KINDEX(1, 520)=24 - KINDEX(2, 520)=116 - KINDEX(1, 521)=26 - KINDEX(2, 521)=116 - KINDEX(1, 522)=31 - KINDEX(2, 522)=116 - KINDEX(1, 523)=32 - KINDEX(2, 523)=116 - KINDEX(1, 524)=39 - KINDEX(2, 524)=116 - KINDEX(1, 525)=40 - KINDEX(2, 525)=116 - KINDEX(1, 526)=15 - KINDEX(2, 526)=117 - KINDEX(1, 527)=26 - KINDEX(2, 527)=117 - KINDEX(1, 528)=40 - KINDEX(2, 528)=117 - KINDEX(1, 529)=4 - KINDEX(2, 529)=118 - KINDEX(1, 530)=15 - KINDEX(2, 530)=118 - KINDEX(1, 531)=22 - KINDEX(2, 531)=118 - KINDEX(1, 532)=23 - KINDEX(2, 532)=118 - KINDEX(1, 533)=24 - KINDEX(2, 533)=118 - KINDEX(1, 534)=26 - KINDEX(2, 534)=118 + KINDEX(2, 507)=156 + KINDEX(1, 508)=28 + KINDEX(2, 508)=156 + KINDEX(1, 509)=40 + KINDEX(2, 509)=156 + KINDEX(1, 510)=1 + KINDEX(2, 510)=157 + KINDEX(1, 511)=2 + KINDEX(2, 511)=157 + KINDEX(1, 512)=28 + KINDEX(2, 512)=157 + KINDEX(1, 513)=39 + KINDEX(2, 513)=157 + KINDEX(1, 514)=2 + KINDEX(2, 514)=158 + KINDEX(1, 515)=28 + KINDEX(2, 515)=158 + KINDEX(1, 516)=39 + KINDEX(2, 516)=158 + KINDEX(1, 517)=85 + KINDEX(2, 517)=158 + KINDEX(1, 518)=2 + KINDEX(2, 518)=159 + KINDEX(1, 519)=10 + KINDEX(2, 519)=159 + KINDEX(1, 520)=15 + KINDEX(2, 520)=159 + KINDEX(1, 521)=28 + KINDEX(2, 521)=159 + KINDEX(1, 522)=39 + KINDEX(2, 522)=159 + KINDEX(1, 523)=1 + KINDEX(2, 523)=160 + KINDEX(1, 524)=2 + KINDEX(2, 524)=160 + KINDEX(1, 525)=28 + KINDEX(2, 525)=160 + KINDEX(1, 526)=40 + KINDEX(2, 526)=160 + KINDEX(1, 527)=2 + KINDEX(2, 527)=161 + KINDEX(1, 528)=28 + KINDEX(2, 528)=161 + KINDEX(1, 529)=40 + KINDEX(2, 529)=161 + KINDEX(1, 530)=85 + KINDEX(2, 530)=161 + KINDEX(1, 531)=2 + KINDEX(2, 531)=162 + KINDEX(1, 532)=10 + KINDEX(2, 532)=162 + KINDEX(1, 533)=15 + KINDEX(2, 533)=162 + KINDEX(1, 534)=28 + KINDEX(2, 534)=162 KINDEX(1, 535)=40 - KINDEX(2, 535)=118 - KINDEX(1, 536)=4 - KINDEX(2, 536)=119 - KINDEX(1, 537)=5 - KINDEX(2, 537)=119 - KINDEX(1, 538)=15 - KINDEX(2, 538)=119 - KINDEX(1, 539)=22 - KINDEX(2, 539)=119 - KINDEX(1, 540)=32 - KINDEX(2, 540)=119 - KINDEX(1, 541)=4 - KINDEX(2, 541)=120 - KINDEX(1, 542)=5 - KINDEX(2, 542)=120 + KINDEX(2, 535)=162 + KINDEX(1, 536)=1 + KINDEX(2, 536)=163 + KINDEX(1, 537)=2 + KINDEX(2, 537)=163 + KINDEX(1, 538)=28 + KINDEX(2, 538)=163 + KINDEX(1, 539)=85 + KINDEX(2, 539)=163 + KINDEX(1, 540)=28 + KINDEX(2, 540)=164 + KINDEX(1, 541)=85 + KINDEX(2, 541)=164 + KINDEX(1, 542)=10 + KINDEX(2, 542)=165 KINDEX(1, 543)=15 - KINDEX(2, 543)=120 - KINDEX(1, 544)=22 - KINDEX(2, 544)=120 - KINDEX(1, 545)=23 - KINDEX(2, 545)=120 - KINDEX(1, 546)=24 - KINDEX(2, 546)=120 - KINDEX(1, 547)=25 - KINDEX(2, 547)=120 - KINDEX(1, 548)=32 - KINDEX(2, 548)=120 - KINDEX(1, 549)=33 - KINDEX(2, 549)=120 - KINDEX(1, 550)=41 - KINDEX(2, 550)=120 - KINDEX(1, 551)=4 - KINDEX(2, 551)=121 - KINDEX(1, 552)=5 - KINDEX(2, 552)=121 - KINDEX(1, 553)=15 - KINDEX(2, 553)=121 - KINDEX(1, 554)=22 - KINDEX(2, 554)=121 - KINDEX(1, 555)=23 - KINDEX(2, 555)=121 - KINDEX(1, 556)=24 - KINDEX(2, 556)=121 - KINDEX(1, 557)=34 - KINDEX(2, 557)=121 - KINDEX(1, 558)=4 - KINDEX(2, 558)=122 - KINDEX(1, 559)=5 - KINDEX(2, 559)=122 + KINDEX(2, 543)=165 + KINDEX(1, 544)=28 + KINDEX(2, 544)=165 + KINDEX(1, 545)=85 + KINDEX(2, 545)=165 + KINDEX(1, 546)=1 + KINDEX(2, 546)=166 + KINDEX(1, 547)=2 + KINDEX(2, 547)=166 + KINDEX(1, 548)=85 + KINDEX(2, 548)=166 + KINDEX(1, 549)=3 + KINDEX(2, 549)=167 + KINDEX(1, 550)=10 + KINDEX(2, 550)=167 + KINDEX(1, 551)=17 + KINDEX(2, 551)=167 + KINDEX(1, 552)=44 + KINDEX(2, 552)=167 + KINDEX(1, 553)=85 + KINDEX(2, 553)=168 + KINDEX(1, 554)=1 + KINDEX(2, 554)=169 + KINDEX(1, 555)=2 + KINDEX(2, 555)=169 + KINDEX(1, 556)=17 + KINDEX(2, 556)=169 + KINDEX(1, 557)=85 + KINDEX(2, 557)=169 + KINDEX(1, 558)=85 + KINDEX(2, 558)=170 + KINDEX(1, 559)=10 + KINDEX(2, 559)=171 KINDEX(1, 560)=15 - KINDEX(2, 560)=122 - KINDEX(1, 561)=19 - KINDEX(2, 561)=122 - KINDEX(1, 562)=22 - KINDEX(2, 562)=122 - KINDEX(1, 563)=23 - KINDEX(2, 563)=122 - KINDEX(1, 564)=24 - KINDEX(2, 564)=122 - KINDEX(1, 565)=25 - KINDEX(2, 565)=122 - KINDEX(1, 566)=35 - KINDEX(2, 566)=122 - KINDEX(1, 567)=4 - KINDEX(2, 567)=123 - KINDEX(1, 568)=5 - KINDEX(2, 568)=123 - KINDEX(1, 569)=15 - KINDEX(2, 569)=123 - KINDEX(1, 570)=25 - KINDEX(2, 570)=123 - KINDEX(1, 571)=38 - KINDEX(2, 571)=123 - KINDEX(1, 572)=4 - KINDEX(2, 572)=124 - KINDEX(1, 573)=5 - KINDEX(2, 573)=124 - KINDEX(1, 574)=15 - KINDEX(2, 574)=124 - KINDEX(1, 575)=22 - KINDEX(2, 575)=124 - KINDEX(1, 576)=23 - KINDEX(2, 576)=124 - KINDEX(1, 577)=25 - KINDEX(2, 577)=124 - KINDEX(1, 578)=32 - KINDEX(2, 578)=124 - KINDEX(1, 579)=39 - KINDEX(2, 579)=124 - KINDEX(1, 580)=41 - KINDEX(2, 580)=124 - KINDEX(1, 581)=4 - KINDEX(2, 581)=125 - KINDEX(1, 582)=5 - KINDEX(2, 582)=125 - KINDEX(1, 583)=15 - KINDEX(2, 583)=125 - KINDEX(1, 584)=22 - KINDEX(2, 584)=125 - KINDEX(1, 585)=23 - KINDEX(2, 585)=125 - KINDEX(1, 586)=24 - KINDEX(2, 586)=125 - KINDEX(1, 587)=26 - KINDEX(2, 587)=125 - KINDEX(1, 588)=40 - KINDEX(2, 588)=125 - KINDEX(1, 589)=15 - KINDEX(2, 589)=126 - KINDEX(1, 590)=29 - KINDEX(2, 590)=126 - KINDEX(1, 591)=41 - KINDEX(2, 591)=126 - KINDEX(1, 592)=15 - KINDEX(2, 592)=127 - KINDEX(1, 593)=22 - KINDEX(2, 593)=127 - KINDEX(1, 594)=32 - KINDEX(2, 594)=127 - KINDEX(1, 595)=41 - KINDEX(2, 595)=127 - KINDEX(1, 596)=32 - KINDEX(2, 596)=128 - KINDEX(1, 597)=39 - KINDEX(2, 597)=128 - KINDEX(1, 598)=41 - KINDEX(2, 598)=128 - KINDEX(1, 599)=41 - KINDEX(2, 599)=129 - KINDEX(1, 600)=3 - KINDEX(2, 600)=130 - KINDEX(1, 601)=4 - KINDEX(2, 601)=130 - KINDEX(1, 602)=41 - KINDEX(2, 602)=130 - KINDEX(1, 603)=4 - KINDEX(2, 603)=131 - KINDEX(1, 604)=5 - KINDEX(2, 604)=131 - KINDEX(1, 605)=41 - KINDEX(2, 605)=131 - KINDEX(1, 606)=12 - KINDEX(2, 606)=132 - KINDEX(1, 607)=1 - KINDEX(2, 607)=133 - KINDEX(1, 608)=42 - KINDEX(2, 608)=133 - KINDEX(1, 609)=2 - KINDEX(2, 609)=134 - KINDEX(1, 610)=43 - KINDEX(2, 610)=134 - KINDEX(1, 611)=3 - KINDEX(2, 611)=135 - KINDEX(1, 612)=44 - KINDEX(2, 612)=135 - KINDEX(1, 613)=4 - KINDEX(2, 613)=136 - KINDEX(1, 614)=45 - KINDEX(2, 614)=136 - KINDEX(1, 615)=5 - KINDEX(2, 615)=137 - KINDEX(1, 616)=46 - KINDEX(2, 616)=137 - KINDEX(1, 617)=6 - KINDEX(2, 617)=138 - KINDEX(1, 618)=47 - KINDEX(2, 618)=138 - KINDEX(1, 619)=7 - KINDEX(2, 619)=139 - KINDEX(1, 620)=48 - KINDEX(2, 620)=139 - KINDEX(1, 621)=8 - KINDEX(2, 621)=140 - KINDEX(1, 622)=49 - KINDEX(2, 622)=140 - KINDEX(1, 623)=9 - KINDEX(2, 623)=141 - KINDEX(1, 624)=50 - KINDEX(2, 624)=141 - KINDEX(1, 625)=10 - KINDEX(2, 625)=142 - KINDEX(1, 626)=51 - KINDEX(2, 626)=142 - KINDEX(1, 627)=14 - KINDEX(2, 627)=143 - KINDEX(1, 628)=52 - KINDEX(2, 628)=143 - KINDEX(1, 629)=15 - KINDEX(2, 629)=144 - KINDEX(1, 630)=53 - KINDEX(2, 630)=144 - KINDEX(1, 631)=54 - KINDEX(2, 631)=145 - KINDEX(1, 632)=11 - KINDEX(2, 632)=146 - KINDEX(1, 633)=55 - KINDEX(2, 633)=146 - KINDEX(1, 634)=12 - KINDEX(2, 634)=147 - KINDEX(1, 635)=56 - KINDEX(2, 635)=147 - KINDEX(1, 636)=22 - KINDEX(2, 636)=148 - KINDEX(1, 637)=57 - KINDEX(2, 637)=148 - KINDEX(1, 638)=30 - KINDEX(2, 638)=149 - KINDEX(1, 639)=58 - KINDEX(2, 639)=149 - KINDEX(1, 640)=31 - KINDEX(2, 640)=150 - KINDEX(1, 641)=59 - KINDEX(2, 641)=150 - KINDEX(1, 642)=32 - KINDEX(2, 642)=151 - KINDEX(1, 643)=60 - KINDEX(2, 643)=151 - KINDEX(1, 644)=28 - KINDEX(2, 644)=152 - KINDEX(1, 645)=61 - KINDEX(2, 645)=152 - KINDEX(1, 646)=1 - KINDEX(2, 646)=153 - KINDEX(1, 647)=42 - KINDEX(2, 647)=153 - KINDEX(1, 648)=2 - KINDEX(2, 648)=154 - KINDEX(1, 649)=43 - KINDEX(2, 649)=154 - KINDEX(1, 650)=3 - KINDEX(2, 650)=155 - KINDEX(1, 651)=44 - KINDEX(2, 651)=155 - KINDEX(1, 652)=4 - KINDEX(2, 652)=156 - KINDEX(1, 653)=45 - KINDEX(2, 653)=156 - KINDEX(1, 654)=5 - KINDEX(2, 654)=157 - KINDEX(1, 655)=46 - KINDEX(2, 655)=157 - KINDEX(1, 656)=6 - KINDEX(2, 656)=158 - KINDEX(1, 657)=47 - KINDEX(2, 657)=158 - KINDEX(1, 658)=7 - KINDEX(2, 658)=159 - KINDEX(1, 659)=48 - KINDEX(2, 659)=159 - KINDEX(1, 660)=8 - KINDEX(2, 660)=160 - KINDEX(1, 661)=49 - KINDEX(2, 661)=160 - KINDEX(1, 662)=9 - KINDEX(2, 662)=161 - KINDEX(1, 663)=50 - KINDEX(2, 663)=161 - KINDEX(1, 664)=10 - KINDEX(2, 664)=162 - KINDEX(1, 665)=51 - KINDEX(2, 665)=162 - KINDEX(1, 666)=14 - KINDEX(2, 666)=163 - KINDEX(1, 667)=52 - KINDEX(2, 667)=163 - KINDEX(1, 668)=15 - KINDEX(2, 668)=164 - KINDEX(1, 669)=53 - KINDEX(2, 669)=164 - KINDEX(1, 670)=54 - KINDEX(2, 670)=165 - KINDEX(1, 671)=11 - KINDEX(2, 671)=166 - KINDEX(1, 672)=55 - KINDEX(2, 672)=166 - KINDEX(1, 673)=12 - KINDEX(2, 673)=167 - KINDEX(1, 674)=56 - KINDEX(2, 674)=167 - KINDEX(1, 675)=22 - KINDEX(2, 675)=168 - KINDEX(1, 676)=57 - KINDEX(2, 676)=168 - KINDEX(1, 677)=30 - KINDEX(2, 677)=169 - KINDEX(1, 678)=58 - KINDEX(2, 678)=169 - KINDEX(1, 679)=31 - KINDEX(2, 679)=170 - KINDEX(1, 680)=59 - KINDEX(2, 680)=170 - KINDEX(1, 681)=32 - KINDEX(2, 681)=171 - KINDEX(1, 682)=60 - KINDEX(2, 682)=171 - KINDEX(1, 683)=28 - KINDEX(2, 683)=172 - KINDEX(1, 684)=61 - KINDEX(2, 684)=172 - KINDEX(1, 685)=1 - KINDEX(2, 685)=173 - KINDEX(1, 686)=67 - KINDEX(2, 686)=173 - KINDEX(1, 687)=2 - KINDEX(2, 687)=174 - KINDEX(1, 688)=68 - KINDEX(2, 688)=174 - KINDEX(1, 689)=3 - KINDEX(2, 689)=175 - KINDEX(1, 690)=69 - KINDEX(2, 690)=175 - KINDEX(1, 691)=4 - KINDEX(2, 691)=176 - KINDEX(1, 692)=70 - KINDEX(2, 692)=176 - KINDEX(1, 693)=5 - KINDEX(2, 693)=177 - KINDEX(1, 694)=71 - KINDEX(2, 694)=177 - KINDEX(1, 695)=6 - KINDEX(2, 695)=178 - KINDEX(1, 696)=72 - KINDEX(2, 696)=178 - KINDEX(1, 697)=7 - KINDEX(2, 697)=179 - KINDEX(1, 698)=73 - KINDEX(2, 698)=179 - KINDEX(1, 699)=8 - KINDEX(2, 699)=180 - KINDEX(1, 700)=74 - KINDEX(2, 700)=180 - KINDEX(1, 701)=9 - KINDEX(2, 701)=181 - KINDEX(1, 702)=75 - KINDEX(2, 702)=181 - KINDEX(1, 703)=10 - KINDEX(2, 703)=182 - KINDEX(1, 704)=76 - KINDEX(2, 704)=182 - KINDEX(1, 705)=14 - KINDEX(2, 705)=183 - KINDEX(1, 706)=77 - KINDEX(2, 706)=183 - KINDEX(1, 707)=15 - KINDEX(2, 707)=184 - KINDEX(1, 708)=78 - KINDEX(2, 708)=184 - KINDEX(1, 709)=79 - KINDEX(2, 709)=185 - KINDEX(1, 710)=11 - KINDEX(2, 710)=186 - KINDEX(1, 711)=80 - KINDEX(2, 711)=186 - KINDEX(1, 712)=12 - KINDEX(2, 712)=187 - KINDEX(1, 713)=81 - KINDEX(2, 713)=187 - KINDEX(1, 714)=22 - KINDEX(2, 714)=188 - KINDEX(1, 715)=82 - KINDEX(2, 715)=188 - KINDEX(1, 716)=30 - KINDEX(2, 716)=189 - KINDEX(1, 717)=83 - KINDEX(2, 717)=189 - KINDEX(1, 718)=31 - KINDEX(2, 718)=190 - KINDEX(1, 719)=84 - KINDEX(2, 719)=190 - KINDEX(1, 720)=32 - KINDEX(2, 720)=191 - KINDEX(1, 721)=85 - KINDEX(2, 721)=191 - KINDEX(1, 722)=28 - KINDEX(2, 722)=192 - KINDEX(1, 723)=86 - KINDEX(2, 723)=192 - KINDEX(1, 724)=1 - KINDEX(2, 724)=193 - KINDEX(1, 725)=67 - KINDEX(2, 725)=193 - KINDEX(1, 726)=2 - KINDEX(2, 726)=194 - KINDEX(1, 727)=68 - KINDEX(2, 727)=194 - KINDEX(1, 728)=3 - KINDEX(2, 728)=195 - KINDEX(1, 729)=69 - KINDEX(2, 729)=195 - KINDEX(1, 730)=4 - KINDEX(2, 730)=196 - KINDEX(1, 731)=70 - KINDEX(2, 731)=196 - KINDEX(1, 732)=5 - KINDEX(2, 732)=197 - KINDEX(1, 733)=71 - KINDEX(2, 733)=197 - KINDEX(1, 734)=6 - KINDEX(2, 734)=198 - KINDEX(1, 735)=72 - KINDEX(2, 735)=198 - KINDEX(1, 736)=7 - KINDEX(2, 736)=199 - KINDEX(1, 737)=73 - KINDEX(2, 737)=199 - KINDEX(1, 738)=8 - KINDEX(2, 738)=200 - KINDEX(1, 739)=74 - KINDEX(2, 739)=200 - KINDEX(1, 740)=9 - KINDEX(2, 740)=201 - KINDEX(1, 741)=75 - KINDEX(2, 741)=201 - KINDEX(1, 742)=10 - KINDEX(2, 742)=202 - KINDEX(1, 743)=76 - KINDEX(2, 743)=202 - KINDEX(1, 744)=14 - KINDEX(2, 744)=203 - KINDEX(1, 745)=77 - KINDEX(2, 745)=203 - KINDEX(1, 746)=15 - KINDEX(2, 746)=204 - KINDEX(1, 747)=78 - KINDEX(2, 747)=204 - KINDEX(1, 748)=79 - KINDEX(2, 748)=205 - KINDEX(1, 749)=11 - KINDEX(2, 749)=206 - KINDEX(1, 750)=80 - KINDEX(2, 750)=206 - KINDEX(1, 751)=12 - KINDEX(2, 751)=207 - KINDEX(1, 752)=81 - KINDEX(2, 752)=207 - KINDEX(1, 753)=22 - KINDEX(2, 753)=208 - KINDEX(1, 754)=82 - KINDEX(2, 754)=208 - KINDEX(1, 755)=30 - KINDEX(2, 755)=209 - KINDEX(1, 756)=83 - KINDEX(2, 756)=209 - KINDEX(1, 757)=31 - KINDEX(2, 757)=210 - KINDEX(1, 758)=84 - KINDEX(2, 758)=210 - KINDEX(1, 759)=32 - KINDEX(2, 759)=211 - KINDEX(1, 760)=85 - KINDEX(2, 760)=211 - KINDEX(1, 761)=28 - KINDEX(2, 761)=212 - KINDEX(1, 762)=86 - KINDEX(2, 762)=212 - KINDEX(1, 763)=43 - KINDEX(2, 763)=213 - KINDEX(1, 764)=52 - KINDEX(2, 764)=213 - KINDEX(1, 765)=43 - KINDEX(2, 765)=214 + KINDEX(2, 560)=171 + KINDEX(1, 561)=85 + KINDEX(2, 561)=171 + KINDEX(1, 562)=1 + KINDEX(2, 562)=172 + KINDEX(1, 563)=2 + KINDEX(2, 563)=172 + KINDEX(1, 564)=10 + KINDEX(2, 564)=172 + KINDEX(1, 565)=19 + KINDEX(2, 565)=172 + KINDEX(1, 566)=28 + KINDEX(2, 566)=172 + KINDEX(1, 567)=29 + KINDEX(2, 567)=172 + KINDEX(1, 568)=30 + KINDEX(2, 568)=172 + KINDEX(1, 569)=10 + KINDEX(2, 569)=173 + KINDEX(1, 570)=19 + KINDEX(2, 570)=173 + KINDEX(1, 571)=28 + KINDEX(2, 571)=173 + KINDEX(1, 572)=29 + KINDEX(2, 572)=173 + KINDEX(1, 573)=30 + KINDEX(2, 573)=173 + KINDEX(1, 574)=85 + KINDEX(2, 574)=173 + KINDEX(1, 575)=10 + KINDEX(2, 575)=174 + KINDEX(1, 576)=15 + KINDEX(2, 576)=174 + KINDEX(1, 577)=19 + KINDEX(2, 577)=174 + KINDEX(1, 578)=28 + KINDEX(2, 578)=174 + KINDEX(1, 579)=29 + KINDEX(2, 579)=174 + KINDEX(1, 580)=30 + KINDEX(2, 580)=174 + KINDEX(1, 581)=1 + KINDEX(2, 581)=175 + KINDEX(1, 582)=2 + KINDEX(2, 582)=175 + KINDEX(1, 583)=29 + KINDEX(2, 583)=175 + KINDEX(1, 584)=85 + KINDEX(2, 584)=175 + KINDEX(1, 585)=29 + KINDEX(2, 585)=176 + KINDEX(1, 586)=85 + KINDEX(2, 586)=176 + KINDEX(1, 587)=10 + KINDEX(2, 587)=177 + KINDEX(1, 588)=15 + KINDEX(2, 588)=177 + KINDEX(1, 589)=29 + KINDEX(2, 589)=177 + KINDEX(1, 590)=85 + KINDEX(2, 590)=177 + KINDEX(1, 591)=1 + KINDEX(2, 591)=178 + KINDEX(1, 592)=2 + KINDEX(2, 592)=178 + KINDEX(1, 593)=10 + KINDEX(2, 593)=178 + KINDEX(1, 594)=58 + KINDEX(2, 594)=178 + KINDEX(1, 595)=75 + KINDEX(2, 595)=178 + KINDEX(1, 596)=10 + KINDEX(2, 596)=179 + KINDEX(1, 597)=75 + KINDEX(2, 597)=179 + KINDEX(1, 598)=85 + KINDEX(2, 598)=179 + KINDEX(1, 599)=10 + KINDEX(2, 599)=180 + KINDEX(1, 600)=15 + KINDEX(2, 600)=180 + KINDEX(1, 601)=75 + KINDEX(2, 601)=180 + KINDEX(1, 602)=1 + KINDEX(2, 602)=181 + KINDEX(1, 603)=2 + KINDEX(2, 603)=181 + KINDEX(1, 604)=10 + KINDEX(2, 604)=181 + KINDEX(1, 605)=10 + KINDEX(2, 605)=182 + KINDEX(1, 606)=85 + KINDEX(2, 606)=182 + KINDEX(1, 607)=10 + KINDEX(2, 607)=183 + KINDEX(1, 608)=15 + KINDEX(2, 608)=183 + KINDEX(1, 609)=1 + KINDEX(2, 609)=184 + KINDEX(1, 610)=2 + KINDEX(2, 610)=184 + KINDEX(1, 611)=28 + KINDEX(2, 611)=184 + KINDEX(1, 612)=69 + KINDEX(2, 612)=184 + KINDEX(1, 613)=2 + KINDEX(2, 613)=185 + KINDEX(1, 614)=28 + KINDEX(2, 614)=185 + KINDEX(1, 615)=69 + KINDEX(2, 615)=185 + KINDEX(1, 616)=85 + KINDEX(2, 616)=185 + KINDEX(1, 617)=2 + KINDEX(2, 617)=186 + KINDEX(1, 618)=10 + KINDEX(2, 618)=186 + KINDEX(1, 619)=15 + KINDEX(2, 619)=186 + KINDEX(1, 620)=28 + KINDEX(2, 620)=186 + KINDEX(1, 621)=69 + KINDEX(2, 621)=186 + KINDEX(1, 622)=1 + KINDEX(2, 622)=187 + KINDEX(1, 623)=2 + KINDEX(2, 623)=187 + KINDEX(1, 624)=85 + KINDEX(2, 624)=187 + KINDEX(1, 625)=85 + KINDEX(2, 625)=188 + KINDEX(1, 626)=10 + KINDEX(2, 626)=189 + KINDEX(1, 627)=15 + KINDEX(2, 627)=189 + KINDEX(1, 628)=85 + KINDEX(2, 628)=189 + KINDEX(1, 629)=1 + KINDEX(2, 629)=190 + KINDEX(1, 630)=2 + KINDEX(2, 630)=190 + KINDEX(1, 631)=10 + KINDEX(2, 631)=190 + KINDEX(1, 632)=25 + KINDEX(2, 632)=190 + KINDEX(1, 633)=10 + KINDEX(2, 633)=191 + KINDEX(1, 634)=25 + KINDEX(2, 634)=191 + KINDEX(1, 635)=85 + KINDEX(2, 635)=191 + KINDEX(1, 636)=10 + KINDEX(2, 636)=192 + KINDEX(1, 637)=15 + KINDEX(2, 637)=192 + KINDEX(1, 638)=25 + KINDEX(2, 638)=192 + KINDEX(1, 639)=1 + KINDEX(2, 639)=193 + KINDEX(1, 640)=2 + KINDEX(2, 640)=193 + KINDEX(1, 641)=10 + KINDEX(2, 641)=193 + KINDEX(1, 642)=75 + KINDEX(2, 642)=193 + KINDEX(1, 643)=10 + KINDEX(2, 643)=194 + KINDEX(1, 644)=75 + KINDEX(2, 644)=194 + KINDEX(1, 645)=85 + KINDEX(2, 645)=194 + KINDEX(1, 646)=10 + KINDEX(2, 646)=195 + KINDEX(1, 647)=15 + KINDEX(2, 647)=195 + KINDEX(1, 648)=75 + KINDEX(2, 648)=195 + KINDEX(1, 649)=1 + KINDEX(2, 649)=196 + KINDEX(1, 650)=2 + KINDEX(2, 650)=196 + KINDEX(1, 651)=10 + KINDEX(2, 651)=196 + KINDEX(1, 652)=58 + KINDEX(2, 652)=196 + KINDEX(1, 653)=62 + KINDEX(2, 653)=196 + KINDEX(1, 654)=10 + KINDEX(2, 654)=197 + KINDEX(1, 655)=62 + KINDEX(2, 655)=197 + KINDEX(1, 656)=85 + KINDEX(2, 656)=197 + KINDEX(1, 657)=10 + KINDEX(2, 657)=198 + KINDEX(1, 658)=15 + KINDEX(2, 658)=198 + KINDEX(1, 659)=62 + KINDEX(2, 659)=198 + KINDEX(1, 660)=1 + KINDEX(2, 660)=199 + KINDEX(1, 661)=2 + KINDEX(2, 661)=199 + KINDEX(1, 662)=10 + KINDEX(2, 662)=199 + KINDEX(1, 663)=57 + KINDEX(2, 663)=199 + KINDEX(1, 664)=67 + KINDEX(2, 664)=199 + KINDEX(1, 665)=10 + KINDEX(2, 665)=200 + KINDEX(1, 666)=57 + KINDEX(2, 666)=200 + KINDEX(1, 667)=85 + KINDEX(2, 667)=200 + KINDEX(1, 668)=10 + KINDEX(2, 668)=201 + KINDEX(1, 669)=15 + KINDEX(2, 669)=201 + KINDEX(1, 670)=57 + KINDEX(2, 670)=201 + KINDEX(1, 671)=1 + KINDEX(2, 671)=202 + KINDEX(1, 672)=2 + KINDEX(2, 672)=202 + KINDEX(1, 673)=57 + KINDEX(2, 673)=202 + KINDEX(1, 674)=2 + KINDEX(2, 674)=203 + KINDEX(1, 675)=57 + KINDEX(2, 675)=203 + KINDEX(1, 676)=85 + KINDEX(2, 676)=203 + KINDEX(1, 677)=2 + KINDEX(2, 677)=204 + KINDEX(1, 678)=10 + KINDEX(2, 678)=204 + KINDEX(1, 679)=15 + KINDEX(2, 679)=204 + KINDEX(1, 680)=57 + KINDEX(2, 680)=204 + KINDEX(1, 681)=1 + KINDEX(2, 681)=205 + KINDEX(1, 682)=2 + KINDEX(2, 682)=205 + KINDEX(1, 683)=55 + KINDEX(2, 683)=205 + KINDEX(1, 684)=85 + KINDEX(2, 684)=205 + KINDEX(1, 685)=55 + KINDEX(2, 685)=206 + KINDEX(1, 686)=85 + KINDEX(2, 686)=206 + KINDEX(1, 687)=10 + KINDEX(2, 687)=207 + KINDEX(1, 688)=15 + KINDEX(2, 688)=207 + KINDEX(1, 689)=55 + KINDEX(2, 689)=207 + KINDEX(1, 690)=85 + KINDEX(2, 690)=207 + KINDEX(1, 691)=1 + KINDEX(2, 691)=208 + KINDEX(1, 692)=2 + KINDEX(2, 692)=208 + KINDEX(1, 693)=10 + KINDEX(2, 693)=208 + KINDEX(1, 694)=56 + KINDEX(2, 694)=208 + KINDEX(1, 695)=68 + KINDEX(2, 695)=208 + KINDEX(1, 696)=10 + KINDEX(2, 696)=209 + KINDEX(1, 697)=56 + KINDEX(2, 697)=209 + KINDEX(1, 698)=85 + KINDEX(2, 698)=209 + KINDEX(1, 699)=10 + KINDEX(2, 699)=210 + KINDEX(1, 700)=15 + KINDEX(2, 700)=210 + KINDEX(1, 701)=56 + KINDEX(2, 701)=210 + KINDEX(1, 702)=1 + KINDEX(2, 702)=211 + KINDEX(1, 703)=2 + KINDEX(2, 703)=211 + KINDEX(1, 704)=56 + KINDEX(2, 704)=211 + KINDEX(1, 705)=2 + KINDEX(2, 705)=212 + KINDEX(1, 706)=56 + KINDEX(2, 706)=212 + KINDEX(1, 707)=85 + KINDEX(2, 707)=212 + KINDEX(1, 708)=2 + KINDEX(2, 708)=213 + KINDEX(1, 709)=10 + KINDEX(2, 709)=213 + KINDEX(1, 710)=15 + KINDEX(2, 710)=213 + KINDEX(1, 711)=56 + KINDEX(2, 711)=213 + KINDEX(1, 712)=1 + KINDEX(2, 712)=214 + KINDEX(1, 713)=2 + KINDEX(2, 713)=214 + KINDEX(1, 714)=85 + KINDEX(2, 714)=214 + KINDEX(1, 715)=85 + KINDEX(2, 715)=215 + KINDEX(1, 716)=10 + KINDEX(2, 716)=216 + KINDEX(1, 717)=15 + KINDEX(2, 717)=216 + KINDEX(1, 718)=85 + KINDEX(2, 718)=216 + KINDEX(1, 719)=1 + KINDEX(2, 719)=217 + KINDEX(1, 720)=2 + KINDEX(2, 720)=217 + KINDEX(1, 721)=71 + KINDEX(2, 721)=217 + KINDEX(1, 722)=85 + KINDEX(2, 722)=217 + KINDEX(1, 723)=71 + KINDEX(2, 723)=218 + KINDEX(1, 724)=85 + KINDEX(2, 724)=218 + KINDEX(1, 725)=10 + KINDEX(2, 725)=219 + KINDEX(1, 726)=15 + KINDEX(2, 726)=219 + KINDEX(1, 727)=71 + KINDEX(2, 727)=219 + KINDEX(1, 728)=85 + KINDEX(2, 728)=219 + KINDEX(1, 729)=85 + KINDEX(2, 729)=220 + KINDEX(1, 730)=10 + KINDEX(2, 730)=221 + KINDEX(1, 731)=15 + KINDEX(2, 731)=221 + KINDEX(1, 732)=85 + KINDEX(2, 732)=221 + KINDEX(1, 733)=1 + KINDEX(2, 733)=222 + KINDEX(1, 734)=2 + KINDEX(2, 734)=222 + KINDEX(1, 735)=10 + KINDEX(2, 735)=222 + KINDEX(1, 736)=64 + KINDEX(2, 736)=222 + KINDEX(1, 737)=65 + KINDEX(2, 737)=222 + KINDEX(1, 738)=10 + KINDEX(2, 738)=223 + KINDEX(1, 739)=65 + KINDEX(2, 739)=223 + KINDEX(1, 740)=85 + KINDEX(2, 740)=223 + KINDEX(1, 741)=10 + KINDEX(2, 741)=224 + KINDEX(1, 742)=15 + KINDEX(2, 742)=224 + KINDEX(1, 743)=65 + KINDEX(2, 743)=224 + KINDEX(1, 744)=1 + KINDEX(2, 744)=225 + KINDEX(1, 745)=2 + KINDEX(2, 745)=225 + KINDEX(1, 746)=66 + KINDEX(2, 746)=225 + KINDEX(1, 747)=85 + KINDEX(2, 747)=225 + KINDEX(1, 748)=85 + KINDEX(2, 748)=226 + KINDEX(1, 749)=10 + KINDEX(2, 749)=227 + KINDEX(1, 750)=15 + KINDEX(2, 750)=227 + KINDEX(1, 751)=85 + KINDEX(2, 751)=227 + KINDEX(1, 752)=1 + KINDEX(2, 752)=228 + KINDEX(1, 753)=2 + KINDEX(2, 753)=228 + KINDEX(1, 754)=10 + KINDEX(2, 754)=228 + KINDEX(1, 755)=66 + KINDEX(2, 755)=228 + KINDEX(1, 756)=10 + KINDEX(2, 756)=229 + KINDEX(1, 757)=66 + KINDEX(2, 757)=229 + KINDEX(1, 758)=85 + KINDEX(2, 758)=229 + KINDEX(1, 759)=10 + KINDEX(2, 759)=230 + KINDEX(1, 760)=15 + KINDEX(2, 760)=230 + KINDEX(1, 761)=66 + KINDEX(2, 761)=230 + KINDEX(1, 762)=85 + KINDEX(2, 762)=231 + KINDEX(1, 763)=1 + KINDEX(2, 763)=232 + KINDEX(1, 764)=2 + KINDEX(2, 764)=232 + KINDEX(1, 765)=10 + KINDEX(2, 765)=232 KINDEX(1, 766)=52 - KINDEX(2, 766)=214 - KINDEX(1, 767)=52 - KINDEX(2, 767)=215 - KINDEX(1, 768)=53 - KINDEX(2, 768)=215 - KINDEX(1, 769)=43 - KINDEX(2, 769)=216 - KINDEX(1, 770)=52 - KINDEX(2, 770)=216 - KINDEX(1, 771)=53 - KINDEX(2, 771)=216 - KINDEX(1, 772)=43 - KINDEX(2, 772)=217 - KINDEX(1, 773)=53 - KINDEX(2, 773)=217 - KINDEX(1, 774)=42 - KINDEX(2, 774)=218 - KINDEX(1, 775)=52 - KINDEX(2, 775)=218 - KINDEX(1, 776)=53 - KINDEX(2, 776)=218 - KINDEX(1, 777)=52 - KINDEX(2, 777)=219 - KINDEX(1, 778)=55 - KINDEX(2, 778)=219 - KINDEX(1, 779)=62 - KINDEX(2, 779)=219 - KINDEX(1, 780)=45 - KINDEX(2, 780)=220 - KINDEX(1, 781)=48 - KINDEX(2, 781)=220 - KINDEX(1, 782)=52 - KINDEX(2, 782)=220 - KINDEX(1, 783)=45 - KINDEX(2, 783)=221 - KINDEX(1, 784)=50 - KINDEX(2, 784)=221 - KINDEX(1, 785)=53 - KINDEX(2, 785)=221 - KINDEX(1, 786)=45 - KINDEX(2, 786)=222 - KINDEX(1, 787)=50 - KINDEX(2, 787)=222 - KINDEX(1, 788)=53 - KINDEX(2, 788)=222 - KINDEX(1, 789)=48 - KINDEX(2, 789)=223 - KINDEX(1, 790)=50 - KINDEX(2, 790)=223 - KINDEX(1, 791)=49 - KINDEX(2, 791)=224 - KINDEX(1, 792)=50 - KINDEX(2, 792)=224 - KINDEX(1, 793)=55 - KINDEX(2, 793)=224 - KINDEX(1, 794)=56 - KINDEX(2, 794)=224 - KINDEX(1, 795)=45 - KINDEX(2, 795)=225 - KINDEX(1, 796)=49 - KINDEX(2, 796)=225 - KINDEX(1, 797)=52 - KINDEX(2, 797)=225 - KINDEX(1, 798)=47 - KINDEX(2, 798)=226 - KINDEX(1, 799)=49 - KINDEX(2, 799)=226 - KINDEX(1, 800)=46 - KINDEX(2, 800)=227 - KINDEX(1, 801)=49 - KINDEX(2, 801)=227 - KINDEX(1, 802)=56 - KINDEX(2, 802)=227 - KINDEX(1, 803)=63 - KINDEX(2, 803)=227 - KINDEX(1, 804)=46 - KINDEX(2, 804)=228 - KINDEX(1, 805)=49 - KINDEX(2, 805)=228 - KINDEX(1, 806)=55 - KINDEX(2, 806)=228 - KINDEX(1, 807)=62 - KINDEX(2, 807)=228 - KINDEX(1, 808)=53 - KINDEX(2, 808)=229 - KINDEX(1, 809)=57 - KINDEX(2, 809)=229 - KINDEX(1, 810)=60 - KINDEX(2, 810)=229 - KINDEX(1, 811)=55 - KINDEX(2, 811)=230 - KINDEX(1, 812)=60 - KINDEX(2, 812)=230 - KINDEX(1, 813)=61 - KINDEX(2, 813)=230 - KINDEX(1, 814)=62 - KINDEX(2, 814)=230 - KINDEX(1, 815)=52 - KINDEX(2, 815)=231 - KINDEX(1, 816)=53 - KINDEX(2, 816)=231 - KINDEX(1, 817)=57 - KINDEX(2, 817)=231 - KINDEX(1, 818)=58 - KINDEX(2, 818)=231 - KINDEX(1, 819)=52 - KINDEX(2, 819)=232 - KINDEX(1, 820)=53 - KINDEX(2, 820)=232 - KINDEX(1, 821)=54 - KINDEX(2, 821)=232 - KINDEX(1, 822)=58 - KINDEX(2, 822)=232 - KINDEX(1, 823)=55 - KINDEX(2, 823)=233 - KINDEX(1, 824)=57 - KINDEX(2, 824)=233 - KINDEX(1, 825)=66 - KINDEX(2, 825)=233 - KINDEX(1, 826)=55 - KINDEX(2, 826)=234 - KINDEX(1, 827)=57 - KINDEX(2, 827)=234 - KINDEX(1, 828)=66 - KINDEX(2, 828)=234 - KINDEX(1, 829)=52 - KINDEX(2, 829)=235 - KINDEX(1, 830)=53 - KINDEX(2, 830)=235 - KINDEX(1, 831)=55 - KINDEX(2, 831)=235 - KINDEX(1, 832)=58 - KINDEX(2, 832)=235 - KINDEX(1, 833)=66 - KINDEX(2, 833)=235 - KINDEX(1, 834)=62 - KINDEX(2, 834)=236 - KINDEX(1, 835)=64 - KINDEX(2, 835)=236 - KINDEX(1, 836)=53 - KINDEX(2, 836)=237 - KINDEX(1, 837)=64 - KINDEX(2, 837)=237 - KINDEX(1, 838)=65 - KINDEX(2, 838)=237 - KINDEX(1, 839)=63 - KINDEX(2, 839)=238 - KINDEX(1, 840)=64 - KINDEX(2, 840)=238 - KINDEX(1, 841)=55 - KINDEX(2, 841)=239 - KINDEX(1, 842)=56 - KINDEX(2, 842)=239 - KINDEX(1, 843)=65 - KINDEX(2, 843)=239 + KINDEX(2, 766)=232 + KINDEX(1, 767)=10 + KINDEX(2, 767)=233 + KINDEX(1, 768)=52 + KINDEX(2, 768)=233 + KINDEX(1, 769)=85 + KINDEX(2, 769)=233 + KINDEX(1, 770)=10 + KINDEX(2, 770)=234 + KINDEX(1, 771)=15 + KINDEX(2, 771)=234 + KINDEX(1, 772)=52 + KINDEX(2, 772)=234 + KINDEX(1, 773)=1 + KINDEX(2, 773)=235 + KINDEX(1, 774)=2 + KINDEX(2, 774)=235 + KINDEX(1, 775)=10 + KINDEX(2, 775)=235 + KINDEX(1, 776)=41 + KINDEX(2, 776)=235 + KINDEX(1, 777)=72 + KINDEX(2, 777)=235 + KINDEX(1, 778)=10 + KINDEX(2, 778)=236 + KINDEX(1, 779)=41 + KINDEX(2, 779)=236 + KINDEX(1, 780)=72 + KINDEX(2, 780)=236 + KINDEX(1, 781)=85 + KINDEX(2, 781)=236 + KINDEX(1, 782)=10 + KINDEX(2, 782)=237 + KINDEX(1, 783)=15 + KINDEX(2, 783)=237 + KINDEX(1, 784)=41 + KINDEX(2, 784)=237 + KINDEX(1, 785)=72 + KINDEX(2, 785)=237 + KINDEX(1, 786)=85 + KINDEX(2, 786)=238 + KINDEX(1, 787)=1 + KINDEX(2, 787)=239 + KINDEX(1, 788)=2 + KINDEX(2, 788)=239 + KINDEX(1, 789)=10 + KINDEX(2, 789)=239 + KINDEX(1, 790)=73 + KINDEX(2, 790)=239 + KINDEX(1, 791)=10 + KINDEX(2, 791)=240 + KINDEX(1, 792)=73 + KINDEX(2, 792)=240 + KINDEX(1, 793)=85 + KINDEX(2, 793)=240 + KINDEX(1, 794)=10 + KINDEX(2, 794)=241 + KINDEX(1, 795)=15 + KINDEX(2, 795)=241 + KINDEX(1, 796)=73 + KINDEX(2, 796)=241 + KINDEX(1, 797)=1 + KINDEX(2, 797)=242 + KINDEX(1, 798)=2 + KINDEX(2, 798)=242 + KINDEX(1, 799)=10 + KINDEX(2, 799)=242 + KINDEX(1, 800)=41 + KINDEX(2, 800)=242 + KINDEX(1, 801)=72 + KINDEX(2, 801)=242 + KINDEX(1, 802)=10 + KINDEX(2, 802)=243 + KINDEX(1, 803)=41 + KINDEX(2, 803)=243 + KINDEX(1, 804)=72 + KINDEX(2, 804)=243 + KINDEX(1, 805)=85 + KINDEX(2, 805)=243 + KINDEX(1, 806)=10 + KINDEX(2, 806)=244 + KINDEX(1, 807)=15 + KINDEX(2, 807)=244 + KINDEX(1, 808)=41 + KINDEX(2, 808)=244 + KINDEX(1, 809)=72 + KINDEX(2, 809)=244 + KINDEX(1, 810)=85 + KINDEX(2, 810)=245 + KINDEX(1, 811)=1 + KINDEX(2, 811)=246 + KINDEX(1, 812)=2 + KINDEX(2, 812)=246 + KINDEX(1, 813)=10 + KINDEX(2, 813)=246 + KINDEX(1, 814)=73 + KINDEX(2, 814)=246 + KINDEX(1, 815)=10 + KINDEX(2, 815)=247 + KINDEX(1, 816)=73 + KINDEX(2, 816)=247 + KINDEX(1, 817)=85 + KINDEX(2, 817)=247 + KINDEX(1, 818)=10 + KINDEX(2, 818)=248 + KINDEX(1, 819)=15 + KINDEX(2, 819)=248 + KINDEX(1, 820)=73 + KINDEX(2, 820)=248 + KINDEX(1, 821)=1 + KINDEX(2, 821)=249 + KINDEX(1, 822)=2 + KINDEX(2, 822)=249 + KINDEX(1, 823)=10 + KINDEX(2, 823)=249 + KINDEX(1, 824)=41 + KINDEX(2, 824)=249 + KINDEX(1, 825)=72 + KINDEX(2, 825)=249 + KINDEX(1, 826)=10 + KINDEX(2, 826)=250 + KINDEX(1, 827)=41 + KINDEX(2, 827)=250 + KINDEX(1, 828)=72 + KINDEX(2, 828)=250 + KINDEX(1, 829)=85 + KINDEX(2, 829)=250 + KINDEX(1, 830)=10 + KINDEX(2, 830)=251 + KINDEX(1, 831)=15 + KINDEX(2, 831)=251 + KINDEX(1, 832)=41 + KINDEX(2, 832)=251 + KINDEX(1, 833)=72 + KINDEX(2, 833)=251 + KINDEX(1, 834)=85 + KINDEX(2, 834)=252 + KINDEX(1, 835)=1 + KINDEX(2, 835)=253 + KINDEX(1, 836)=2 + KINDEX(2, 836)=253 + KINDEX(1, 837)=10 + KINDEX(2, 837)=253 + KINDEX(1, 838)=52 + KINDEX(2, 838)=253 + KINDEX(1, 839)=10 + KINDEX(2, 839)=254 + KINDEX(1, 840)=52 + KINDEX(2, 840)=254 + KINDEX(1, 841)=85 + KINDEX(2, 841)=254 + KINDEX(1, 842)=10 + KINDEX(2, 842)=255 + KINDEX(1, 843)=15 + KINDEX(2, 843)=255 KINDEX(1, 844)=52 - KINDEX(2, 844)=240 - KINDEX(1, 845)=56 - KINDEX(2, 845)=240 - KINDEX(1, 846)=63 - KINDEX(2, 846)=240 - KINDEX(1, 847)=42 - KINDEX(2, 847)=241 - KINDEX(1, 848)=55 - KINDEX(2, 848)=241 - KINDEX(1, 849)=56 - KINDEX(2, 849)=241 - KINDEX(1, 850)=43 - KINDEX(2, 850)=242 - KINDEX(1, 851)=55 - KINDEX(2, 851)=242 - KINDEX(1, 852)=56 - KINDEX(2, 852)=242 - KINDEX(1, 853)=68 - KINDEX(2, 853)=243 - KINDEX(1, 854)=77 - KINDEX(2, 854)=243 - KINDEX(1, 855)=68 - KINDEX(2, 855)=244 - KINDEX(1, 856)=77 - KINDEX(2, 856)=244 - KINDEX(1, 857)=77 - KINDEX(2, 857)=245 - KINDEX(1, 858)=78 - KINDEX(2, 858)=245 - KINDEX(1, 859)=68 - KINDEX(2, 859)=246 - KINDEX(1, 860)=77 - KINDEX(2, 860)=246 - KINDEX(1, 861)=78 - KINDEX(2, 861)=246 - KINDEX(1, 862)=68 - KINDEX(2, 862)=247 - KINDEX(1, 863)=78 - KINDEX(2, 863)=247 - KINDEX(1, 864)=67 - KINDEX(2, 864)=248 - KINDEX(1, 865)=77 - KINDEX(2, 865)=248 - KINDEX(1, 866)=78 - KINDEX(2, 866)=248 - KINDEX(1, 867)=77 - KINDEX(2, 867)=249 - KINDEX(1, 868)=80 - KINDEX(2, 868)=249 - KINDEX(1, 869)=87 - KINDEX(2, 869)=249 - KINDEX(1, 870)=70 - KINDEX(2, 870)=250 - KINDEX(1, 871)=73 - KINDEX(2, 871)=250 - KINDEX(1, 872)=77 - KINDEX(2, 872)=250 - KINDEX(1, 873)=70 - KINDEX(2, 873)=251 - KINDEX(1, 874)=75 - KINDEX(2, 874)=251 - KINDEX(1, 875)=78 - KINDEX(2, 875)=251 - KINDEX(1, 876)=70 - KINDEX(2, 876)=252 - KINDEX(1, 877)=75 - KINDEX(2, 877)=252 - KINDEX(1, 878)=78 - KINDEX(2, 878)=252 - KINDEX(1, 879)=73 - KINDEX(2, 879)=253 - KINDEX(1, 880)=75 - KINDEX(2, 880)=253 - KINDEX(1, 881)=74 - KINDEX(2, 881)=254 - KINDEX(1, 882)=75 - KINDEX(2, 882)=254 - KINDEX(1, 883)=80 - KINDEX(2, 883)=254 - KINDEX(1, 884)=81 - KINDEX(2, 884)=254 - KINDEX(1, 885)=70 - KINDEX(2, 885)=255 - KINDEX(1, 886)=74 - KINDEX(2, 886)=255 - KINDEX(1, 887)=77 - KINDEX(2, 887)=255 - KINDEX(1, 888)=72 - KINDEX(2, 888)=256 - KINDEX(1, 889)=74 - KINDEX(2, 889)=256 - KINDEX(1, 890)=71 - KINDEX(2, 890)=257 - KINDEX(1, 891)=74 - KINDEX(2, 891)=257 - KINDEX(1, 892)=81 - KINDEX(2, 892)=257 - KINDEX(1, 893)=88 - KINDEX(2, 893)=257 - KINDEX(1, 894)=71 - KINDEX(2, 894)=258 - KINDEX(1, 895)=74 - KINDEX(2, 895)=258 - KINDEX(1, 896)=80 - KINDEX(2, 896)=258 - KINDEX(1, 897)=87 - KINDEX(2, 897)=258 - KINDEX(1, 898)=78 - KINDEX(2, 898)=259 - KINDEX(1, 899)=82 - KINDEX(2, 899)=259 - KINDEX(1, 900)=85 - KINDEX(2, 900)=259 - KINDEX(1, 901)=80 - KINDEX(2, 901)=260 - KINDEX(1, 902)=85 - KINDEX(2, 902)=260 - KINDEX(1, 903)=86 - KINDEX(2, 903)=260 - KINDEX(1, 904)=87 - KINDEX(2, 904)=260 - KINDEX(1, 905)=77 - KINDEX(2, 905)=261 - KINDEX(1, 906)=78 - KINDEX(2, 906)=261 - KINDEX(1, 907)=82 - KINDEX(2, 907)=261 - KINDEX(1, 908)=83 - KINDEX(2, 908)=261 - KINDEX(1, 909)=77 - KINDEX(2, 909)=262 - KINDEX(1, 910)=78 - KINDEX(2, 910)=262 - KINDEX(1, 911)=79 - KINDEX(2, 911)=262 - KINDEX(1, 912)=83 - KINDEX(2, 912)=262 - KINDEX(1, 913)=80 - KINDEX(2, 913)=263 - KINDEX(1, 914)=82 - KINDEX(2, 914)=263 - KINDEX(1, 915)=91 - KINDEX(2, 915)=263 - KINDEX(1, 916)=80 - KINDEX(2, 916)=264 - KINDEX(1, 917)=82 - KINDEX(2, 917)=264 - KINDEX(1, 918)=91 - KINDEX(2, 918)=264 - KINDEX(1, 919)=77 - KINDEX(2, 919)=265 - KINDEX(1, 920)=78 - KINDEX(2, 920)=265 - KINDEX(1, 921)=80 - KINDEX(2, 921)=265 - KINDEX(1, 922)=83 - KINDEX(2, 922)=265 - KINDEX(1, 923)=91 - KINDEX(2, 923)=265 - KINDEX(1, 924)=87 - KINDEX(2, 924)=266 - KINDEX(1, 925)=89 - KINDEX(2, 925)=266 - KINDEX(1, 926)=78 - KINDEX(2, 926)=267 - KINDEX(1, 927)=89 - KINDEX(2, 927)=267 - KINDEX(1, 928)=90 - KINDEX(2, 928)=267 - KINDEX(1, 929)=88 - KINDEX(2, 929)=268 - KINDEX(1, 930)=89 - KINDEX(2, 930)=268 - KINDEX(1, 931)=80 - KINDEX(2, 931)=269 - KINDEX(1, 932)=81 - KINDEX(2, 932)=269 - KINDEX(1, 933)=90 - KINDEX(2, 933)=269 - KINDEX(1, 934)=77 - KINDEX(2, 934)=270 - KINDEX(1, 935)=81 - KINDEX(2, 935)=270 - KINDEX(1, 936)=88 - KINDEX(2, 936)=270 - KINDEX(1, 937)=67 - KINDEX(2, 937)=271 - KINDEX(1, 938)=80 - KINDEX(2, 938)=271 - KINDEX(1, 939)=81 - KINDEX(2, 939)=271 - KINDEX(1, 940)=68 - KINDEX(2, 940)=272 - KINDEX(1, 941)=80 - KINDEX(2, 941)=272 - KINDEX(1, 942)=81 - KINDEX(2, 942)=272 + KINDEX(2, 844)=255 + KINDEX(1, 845)=1 + KINDEX(2, 845)=256 + KINDEX(1, 846)=2 + KINDEX(2, 846)=256 + KINDEX(1, 847)=10 + KINDEX(2, 847)=256 + KINDEX(1, 848)=41 + KINDEX(2, 848)=256 + KINDEX(1, 849)=72 + KINDEX(2, 849)=256 + KINDEX(1, 850)=10 + KINDEX(2, 850)=257 + KINDEX(1, 851)=41 + KINDEX(2, 851)=257 + KINDEX(1, 852)=72 + KINDEX(2, 852)=257 + KINDEX(1, 853)=85 + KINDEX(2, 853)=257 + KINDEX(1, 854)=10 + KINDEX(2, 854)=258 + KINDEX(1, 855)=15 + KINDEX(2, 855)=258 + KINDEX(1, 856)=41 + KINDEX(2, 856)=258 + KINDEX(1, 857)=72 + KINDEX(2, 857)=258 + KINDEX(1, 858)=85 + KINDEX(2, 858)=259 + KINDEX(1, 859)=1 + KINDEX(2, 859)=260 + KINDEX(1, 860)=2 + KINDEX(2, 860)=260 + KINDEX(1, 861)=10 + KINDEX(2, 861)=260 + KINDEX(1, 862)=50 + KINDEX(2, 862)=260 + KINDEX(1, 863)=10 + KINDEX(2, 863)=261 + KINDEX(1, 864)=50 + KINDEX(2, 864)=261 + KINDEX(1, 865)=85 + KINDEX(2, 865)=261 + KINDEX(1, 866)=10 + KINDEX(2, 866)=262 + KINDEX(1, 867)=15 + KINDEX(2, 867)=262 + KINDEX(1, 868)=50 + KINDEX(2, 868)=262 + KINDEX(1, 869)=1 + KINDEX(2, 869)=263 + KINDEX(1, 870)=2 + KINDEX(2, 870)=263 + KINDEX(1, 871)=10 + KINDEX(2, 871)=263 + KINDEX(1, 872)=41 + KINDEX(2, 872)=263 + KINDEX(1, 873)=72 + KINDEX(2, 873)=263 + KINDEX(1, 874)=10 + KINDEX(2, 874)=264 + KINDEX(1, 875)=41 + KINDEX(2, 875)=264 + KINDEX(1, 876)=72 + KINDEX(2, 876)=264 + KINDEX(1, 877)=85 + KINDEX(2, 877)=264 + KINDEX(1, 878)=10 + KINDEX(2, 878)=265 + KINDEX(1, 879)=15 + KINDEX(2, 879)=265 + KINDEX(1, 880)=41 + KINDEX(2, 880)=265 + KINDEX(1, 881)=72 + KINDEX(2, 881)=265 + KINDEX(1, 882)=85 + KINDEX(2, 882)=266 + KINDEX(1, 883)=1 + KINDEX(2, 883)=267 + KINDEX(1, 884)=2 + KINDEX(2, 884)=267 + KINDEX(1, 885)=10 + KINDEX(2, 885)=267 + KINDEX(1, 886)=63 + KINDEX(2, 886)=267 + KINDEX(1, 887)=10 + KINDEX(2, 887)=268 + KINDEX(1, 888)=63 + KINDEX(2, 888)=268 + KINDEX(1, 889)=85 + KINDEX(2, 889)=268 + KINDEX(1, 890)=10 + KINDEX(2, 890)=269 + KINDEX(1, 891)=15 + KINDEX(2, 891)=269 + KINDEX(1, 892)=63 + KINDEX(2, 892)=269 + KINDEX(1, 893)=1 + KINDEX(2, 893)=270 + KINDEX(1, 894)=2 + KINDEX(2, 894)=270 + KINDEX(1, 895)=10 + KINDEX(2, 895)=270 + KINDEX(1, 896)=41 + KINDEX(2, 896)=270 + KINDEX(1, 897)=75 + KINDEX(2, 897)=270 + KINDEX(1, 898)=10 + KINDEX(2, 898)=271 + KINDEX(1, 899)=41 + KINDEX(2, 899)=271 + KINDEX(1, 900)=75 + KINDEX(2, 900)=271 + KINDEX(1, 901)=85 + KINDEX(2, 901)=271 + KINDEX(1, 902)=10 + KINDEX(2, 902)=272 + KINDEX(1, 903)=15 + KINDEX(2, 903)=272 + KINDEX(1, 904)=41 + KINDEX(2, 904)=272 + KINDEX(1, 905)=75 + KINDEX(2, 905)=272 + KINDEX(1, 906)=15 + KINDEX(2, 906)=273 + KINDEX(1, 907)=39 + KINDEX(2, 907)=273 + KINDEX(1, 908)=85 + KINDEX(2, 908)=273 + KINDEX(1, 909)=15 + KINDEX(2, 909)=274 + KINDEX(1, 910)=40 + KINDEX(2, 910)=274 + KINDEX(1, 911)=85 + KINDEX(2, 911)=274 + KINDEX(1, 912)=15 + KINDEX(2, 912)=275 + KINDEX(1, 913)=41 + KINDEX(2, 913)=275 + KINDEX(1, 914)=85 + KINDEX(2, 914)=275 + KINDEX(1, 915)=5 + KINDEX(2, 915)=276 + KINDEX(1, 916)=8 + KINDEX(2, 916)=276 + KINDEX(1, 917)=40 + KINDEX(2, 917)=276 + KINDEX(1, 918)=85 + KINDEX(2, 918)=276 + KINDEX(1, 919)=10 + KINDEX(2, 919)=277 + KINDEX(1, 920)=11 + KINDEX(2, 920)=277 + KINDEX(1, 921)=41 + KINDEX(2, 921)=277 + KINDEX(1, 922)=85 + KINDEX(2, 922)=277 + KINDEX(1, 923)=1 + KINDEX(2, 923)=278 + KINDEX(1, 924)=2 + KINDEX(2, 924)=278 + KINDEX(1, 925)=85 + KINDEX(2, 925)=278 + KINDEX(1, 926)=5 + KINDEX(2, 926)=279 + KINDEX(1, 927)=8 + KINDEX(2, 927)=279 + KINDEX(1, 928)=41 + KINDEX(2, 928)=279 + KINDEX(1, 929)=85 + KINDEX(2, 929)=279 + KINDEX(1, 930)=3 + KINDEX(2, 930)=280 + KINDEX(1, 931)=10 + KINDEX(2, 931)=280 + KINDEX(1, 932)=47 + KINDEX(2, 932)=280 + KINDEX(1, 933)=85 + KINDEX(2, 933)=281 + KINDEX(1, 934)=3 + KINDEX(2, 934)=282 + KINDEX(1, 935)=10 + KINDEX(2, 935)=282 + KINDEX(1, 936)=11 + KINDEX(2, 936)=282 + KINDEX(1, 937)=15 + KINDEX(2, 937)=282 + KINDEX(1, 938)=28 + KINDEX(2, 938)=282 + KINDEX(1, 939)=29 + KINDEX(2, 939)=282 + KINDEX(1, 940)=39 + KINDEX(2, 940)=282 + KINDEX(1, 941)=41 + KINDEX(2, 941)=282 + KINDEX(1, 942)=43 + KINDEX(2, 942)=282 + KINDEX(1, 943)=47 + KINDEX(2, 943)=282 + KINDEX(1, 944)=85 + KINDEX(2, 944)=282 + KINDEX(1, 945)=3 + KINDEX(2, 945)=283 + KINDEX(1, 946)=10 + KINDEX(2, 946)=283 + KINDEX(1, 947)=11 + KINDEX(2, 947)=283 + KINDEX(1, 948)=15 + KINDEX(2, 948)=283 + KINDEX(1, 949)=28 + KINDEX(2, 949)=283 + KINDEX(1, 950)=40 + KINDEX(2, 950)=283 + KINDEX(1, 951)=41 + KINDEX(2, 951)=283 + KINDEX(1, 952)=43 + KINDEX(2, 952)=283 + KINDEX(1, 953)=85 + KINDEX(2, 953)=283 + KINDEX(1, 954)=30 + KINDEX(2, 954)=284 + KINDEX(1, 955)=39 + KINDEX(2, 955)=284 + KINDEX(1, 956)=85 + KINDEX(2, 956)=284 + KINDEX(1, 957)=10 + KINDEX(2, 957)=285 + KINDEX(1, 958)=11 + KINDEX(2, 958)=285 + KINDEX(1, 959)=29 + KINDEX(2, 959)=285 + KINDEX(1, 960)=40 + KINDEX(2, 960)=285 + KINDEX(1, 961)=85 + KINDEX(2, 961)=285 + KINDEX(1, 962)=1 + KINDEX(2, 962)=286 + KINDEX(1, 963)=2 + KINDEX(2, 963)=286 + KINDEX(1, 964)=10 + KINDEX(2, 964)=286 + KINDEX(1, 965)=28 + KINDEX(2, 965)=286 + KINDEX(1, 966)=41 + KINDEX(2, 966)=286 + KINDEX(1, 967)=10 + KINDEX(2, 967)=287 + KINDEX(1, 968)=28 + KINDEX(2, 968)=287 + KINDEX(1, 969)=41 + KINDEX(2, 969)=287 + KINDEX(1, 970)=85 + KINDEX(2, 970)=287 + KINDEX(1, 971)=10 + KINDEX(2, 971)=288 + KINDEX(1, 972)=15 + KINDEX(2, 972)=288 + KINDEX(1, 973)=28 + KINDEX(2, 973)=288 + KINDEX(1, 974)=41 + KINDEX(2, 974)=288 + KINDEX(1, 975)=1 + KINDEX(2, 975)=289 + KINDEX(1, 976)=2 + KINDEX(2, 976)=289 + KINDEX(1, 977)=85 + KINDEX(2, 977)=289 + KINDEX(1, 978)=3 + KINDEX(2, 978)=290 + KINDEX(1, 979)=10 + KINDEX(2, 979)=290 + KINDEX(1, 980)=17 + KINDEX(2, 980)=290 + KINDEX(1, 981)=44 + KINDEX(2, 981)=290 + KINDEX(1, 982)=85 + KINDEX(2, 982)=291 + KINDEX(1, 983)=1 + KINDEX(2, 983)=292 + KINDEX(1, 984)=2 + KINDEX(2, 984)=292 + KINDEX(1, 985)=10 + KINDEX(2, 985)=292 + KINDEX(1, 986)=28 + KINDEX(2, 986)=292 + KINDEX(1, 987)=41 + KINDEX(2, 987)=292 + KINDEX(1, 988)=10 + KINDEX(2, 988)=293 + KINDEX(1, 989)=28 + KINDEX(2, 989)=293 + KINDEX(1, 990)=41 + KINDEX(2, 990)=293 + KINDEX(1, 991)=85 + KINDEX(2, 991)=293 + KINDEX(1, 992)=10 + KINDEX(2, 992)=294 + KINDEX(1, 993)=15 + KINDEX(2, 993)=294 + KINDEX(1, 994)=28 + KINDEX(2, 994)=294 + KINDEX(1, 995)=41 + KINDEX(2, 995)=294 + KINDEX(1, 996)=85 + KINDEX(2, 996)=294 + KINDEX(1, 997)=1 + KINDEX(2, 997)=295 + KINDEX(1, 998)=2 + KINDEX(2, 998)=295 + KINDEX(1, 999)=28 + KINDEX(2, 999)=295 + KINDEX(1, 1000)=41 + KINDEX(2, 1000)=295 + KINDEX(1, 1001)=2 + KINDEX(2, 1001)=296 + KINDEX(1, 1002)=10 + KINDEX(2, 1002)=296 + KINDEX(1, 1003)=28 + KINDEX(2, 1003)=296 + KINDEX(1, 1004)=41 + KINDEX(2, 1004)=296 + KINDEX(1, 1005)=85 + KINDEX(2, 1005)=296 + KINDEX(1, 1006)=2 + KINDEX(2, 1006)=297 + KINDEX(1, 1007)=15 + KINDEX(2, 1007)=297 + KINDEX(1, 1008)=28 + KINDEX(2, 1008)=297 + KINDEX(1, 1009)=41 + KINDEX(2, 1009)=297 + KINDEX(1, 1010)=85 + KINDEX(2, 1010)=297 + KINDEX(1, 1011)=1 + KINDEX(2, 1011)=298 + KINDEX(1, 1012)=2 + KINDEX(2, 1012)=298 + KINDEX(1, 1013)=28 + KINDEX(2, 1013)=298 + KINDEX(1, 1014)=85 + KINDEX(2, 1014)=298 + KINDEX(1, 1015)=10 + KINDEX(2, 1015)=299 + KINDEX(1, 1016)=28 + KINDEX(2, 1016)=299 + KINDEX(1, 1017)=85 + KINDEX(2, 1017)=299 + KINDEX(1, 1018)=15 + KINDEX(2, 1018)=300 + KINDEX(1, 1019)=28 + KINDEX(2, 1019)=300 + KINDEX(1, 1020)=85 + KINDEX(2, 1020)=300 + KINDEX(1, 1021)=1 + KINDEX(2, 1021)=301 + KINDEX(1, 1022)=2 + KINDEX(2, 1022)=301 + KINDEX(1, 1023)=10 + KINDEX(2, 1023)=301 + KINDEX(1, 1024)=11 + KINDEX(2, 1024)=301 + KINDEX(1, 1025)=3 + KINDEX(2, 1025)=302 + KINDEX(1, 1026)=10 + KINDEX(2, 1026)=302 + KINDEX(1, 1027)=74 + KINDEX(2, 1027)=302 + KINDEX(1, 1028)=10 + KINDEX(2, 1028)=303 + KINDEX(1, 1029)=11 + KINDEX(2, 1029)=303 + KINDEX(1, 1030)=85 + KINDEX(2, 1030)=303 + KINDEX(1, 1031)=3 + KINDEX(2, 1031)=304 + KINDEX(1, 1032)=15 + KINDEX(2, 1032)=304 + KINDEX(1, 1033)=60 + KINDEX(2, 1033)=304 + KINDEX(1, 1034)=70 + KINDEX(2, 1034)=304 + KINDEX(1, 1035)=15 + KINDEX(2, 1035)=305 + KINDEX(1, 1036)=69 + KINDEX(2, 1036)=305 + KINDEX(1, 1037)=85 + KINDEX(2, 1037)=305 + KINDEX(1, 1038)=15 + KINDEX(2, 1038)=306 + KINDEX(1, 1039)=74 + KINDEX(2, 1039)=306 + KINDEX(1, 1040)=85 + KINDEX(2, 1040)=306 + KINDEX(1, 1041)=3 + KINDEX(2, 1041)=307 + KINDEX(1, 1042)=15 + KINDEX(2, 1042)=307 + KINDEX(1, 1043)=60 + KINDEX(2, 1043)=307 + KINDEX(1, 1044)=62 + KINDEX(2, 1044)=307 + KINDEX(1, 1045)=75 + KINDEX(2, 1045)=307 + KINDEX(1, 1046)=5 + KINDEX(2, 1046)=308 + KINDEX(1, 1047)=8 + KINDEX(2, 1047)=308 + KINDEX(1, 1048)=69 + KINDEX(2, 1048)=308 + KINDEX(1, 1049)=85 + KINDEX(2, 1049)=308 + KINDEX(1, 1050)=10 + KINDEX(2, 1050)=309 + KINDEX(1, 1051)=11 + KINDEX(2, 1051)=309 + KINDEX(1, 1052)=69 + KINDEX(2, 1052)=309 + KINDEX(1, 1053)=85 + KINDEX(2, 1053)=309 + KINDEX(1, 1054)=1 + KINDEX(2, 1054)=310 + KINDEX(1, 1055)=2 + KINDEX(2, 1055)=310 + KINDEX(1, 1056)=85 + KINDEX(2, 1056)=310 + KINDEX(1, 1057)=3 + KINDEX(2, 1057)=311 + KINDEX(1, 1058)=10 + KINDEX(2, 1058)=311 + KINDEX(1, 1059)=45 + KINDEX(2, 1059)=311 + KINDEX(1, 1060)=85 + KINDEX(2, 1060)=312 + KINDEX(1, 1061)=15 + KINDEX(2, 1061)=313 + KINDEX(1, 1062)=57 + KINDEX(2, 1062)=313 + KINDEX(1, 1063)=85 + KINDEX(2, 1063)=313 + KINDEX(1, 1064)=5 + KINDEX(2, 1064)=314 + KINDEX(1, 1065)=8 + KINDEX(2, 1065)=314 + KINDEX(1, 1066)=57 + KINDEX(2, 1066)=314 + KINDEX(1, 1067)=85 + KINDEX(2, 1067)=314 + KINDEX(1, 1068)=10 + KINDEX(2, 1068)=315 + KINDEX(1, 1069)=11 + KINDEX(2, 1069)=315 + KINDEX(1, 1070)=57 + KINDEX(2, 1070)=315 + KINDEX(1, 1071)=1 + KINDEX(2, 1071)=316 + KINDEX(1, 1072)=2 + KINDEX(2, 1072)=316 + KINDEX(1, 1073)=10 + KINDEX(2, 1073)=316 + KINDEX(1, 1074)=2 + KINDEX(2, 1074)=317 + KINDEX(1, 1075)=83 + KINDEX(2, 1075)=317 + KINDEX(1, 1076)=2 + KINDEX(2, 1076)=318 + KINDEX(1, 1077)=83 + KINDEX(2, 1077)=318 + KINDEX(1, 1078)=85 + KINDEX(2, 1078)=318 + KINDEX(1, 1079)=3 + KINDEX(2, 1079)=319 + KINDEX(1, 1080)=10 + KINDEX(2, 1080)=319 + KINDEX(1, 1081)=53 + KINDEX(2, 1081)=319 + KINDEX(1, 1082)=10 + KINDEX(2, 1082)=320 + KINDEX(1, 1083)=85 + KINDEX(2, 1083)=320 + KINDEX(1, 1084)=5 + KINDEX(2, 1084)=321 + KINDEX(1, 1085)=8 + KINDEX(2, 1085)=321 + KINDEX(1, 1086)=61 + KINDEX(2, 1086)=321 + KINDEX(1, 1087)=2 + KINDEX(2, 1087)=322 + KINDEX(1, 1088)=59 + KINDEX(2, 1088)=322 + KINDEX(1, 1089)=3 + KINDEX(2, 1089)=323 + KINDEX(1, 1090)=15 + KINDEX(2, 1090)=323 + KINDEX(1, 1091)=60 + KINDEX(2, 1091)=323 + KINDEX(1, 1092)=62 + KINDEX(2, 1092)=323 + KINDEX(1, 1093)=3 + KINDEX(2, 1093)=324 + KINDEX(1, 1094)=15 + KINDEX(2, 1094)=324 + KINDEX(1, 1095)=58 + KINDEX(2, 1095)=324 + KINDEX(1, 1096)=63 + KINDEX(2, 1096)=324 + KINDEX(1, 1097)=15 + KINDEX(2, 1097)=325 + KINDEX(1, 1098)=71 + KINDEX(2, 1098)=325 + KINDEX(1, 1099)=85 + KINDEX(2, 1099)=325 + KINDEX(1, 1100)=10 + KINDEX(2, 1100)=326 + KINDEX(1, 1101)=15 + KINDEX(2, 1101)=326 + KINDEX(1, 1102)=72 + KINDEX(2, 1102)=326 + KINDEX(1, 1103)=3 + KINDEX(2, 1103)=327 + KINDEX(1, 1104)=15 + KINDEX(2, 1104)=327 + KINDEX(1, 1105)=49 + KINDEX(2, 1105)=327 + KINDEX(1, 1106)=73 + KINDEX(2, 1106)=327 + KINDEX(1, 1107)=5 + KINDEX(2, 1107)=328 + KINDEX(1, 1108)=8 + KINDEX(2, 1108)=328 + KINDEX(1, 1109)=71 + KINDEX(2, 1109)=328 + KINDEX(1, 1110)=85 + KINDEX(2, 1110)=328 + KINDEX(1, 1111)=72 + KINDEX(2, 1111)=329 + KINDEX(1, 1112)=10 + KINDEX(2, 1112)=330 + KINDEX(1, 1113)=11 + KINDEX(2, 1113)=330 + KINDEX(1, 1114)=71 + KINDEX(2, 1114)=330 + KINDEX(1, 1115)=85 + KINDEX(2, 1115)=330 + KINDEX(1, 1116)=10 + KINDEX(2, 1116)=331 + KINDEX(1, 1117)=71 + KINDEX(2, 1117)=331 + KINDEX(1, 1118)=85 + KINDEX(2, 1118)=331 + KINDEX(1, 1119)=1 + KINDEX(2, 1119)=332 + KINDEX(1, 1120)=2 + KINDEX(2, 1120)=332 + KINDEX(1, 1121)=85 + KINDEX(2, 1121)=332 + KINDEX(1, 1122)=3 + KINDEX(2, 1122)=333 + KINDEX(1, 1123)=10 + KINDEX(2, 1123)=333 + KINDEX(1, 1124)=53 + KINDEX(2, 1124)=333 + KINDEX(1, 1125)=85 + KINDEX(2, 1125)=334 + KINDEX(1, 1126)=3 + KINDEX(2, 1126)=335 + KINDEX(1, 1127)=15 + KINDEX(2, 1127)=335 + KINDEX(1, 1128)=50 + KINDEX(2, 1128)=335 + KINDEX(1, 1129)=52 + KINDEX(2, 1129)=335 + KINDEX(1, 1130)=3 + KINDEX(2, 1130)=336 + KINDEX(1, 1131)=15 + KINDEX(2, 1131)=336 + KINDEX(1, 1132)=48 + KINDEX(2, 1132)=336 + KINDEX(1, 1133)=50 + KINDEX(2, 1133)=336 + KINDEX(1, 1134)=51 + KINDEX(2, 1134)=336 + KINDEX(1, 1135)=3 + KINDEX(2, 1135)=337 + KINDEX(1, 1136)=15 + KINDEX(2, 1136)=337 + KINDEX(1, 1137)=48 + KINDEX(2, 1137)=337 + KINDEX(1, 1138)=51 + KINDEX(2, 1138)=337 + KINDEX(1, 1139)=5 + KINDEX(2, 1139)=338 + KINDEX(1, 1140)=8 + KINDEX(2, 1140)=338 + KINDEX(1, 1141)=74 + KINDEX(2, 1141)=338 + KINDEX(1, 1142)=85 + KINDEX(2, 1142)=338 + KINDEX(1, 1143)=10 + KINDEX(2, 1143)=339 + KINDEX(1, 1144)=11 + KINDEX(2, 1144)=339 + KINDEX(1, 1145)=15 + KINDEX(2, 1145)=339 + KINDEX(1, 1146)=74 + KINDEX(2, 1146)=339 + KINDEX(1, 1147)=1 + KINDEX(2, 1147)=340 + KINDEX(1, 1148)=2 + KINDEX(2, 1148)=340 + KINDEX(1, 1149)=11 + KINDEX(2, 1149)=340 + KINDEX(1, 1150)=15 + KINDEX(2, 1150)=340 + KINDEX(1, 1151)=3 + KINDEX(2, 1151)=341 + KINDEX(1, 1152)=10 + KINDEX(2, 1152)=341 + KINDEX(1, 1153)=46 + KINDEX(2, 1153)=341 + KINDEX(1, 1154)=11 + KINDEX(2, 1154)=342 + KINDEX(1, 1155)=15 + KINDEX(2, 1155)=342 + KINDEX(1, 1156)=85 + KINDEX(2, 1156)=342 + KINDEX(1, 1157)=2 + KINDEX(2, 1157)=343 + KINDEX(1, 1158)=82 + KINDEX(2, 1158)=343 + KINDEX(1, 1159)=85 + KINDEX(2, 1159)=343 + KINDEX(1, 1160)=1 + KINDEX(2, 1160)=344 + KINDEX(1, 1161)=2 + KINDEX(2, 1161)=344 + KINDEX(1, 1162)=85 + KINDEX(2, 1162)=344 + KINDEX(1, 1163)=9 + KINDEX(2, 1163)=345 + KINDEX(1, 1164)=15 + KINDEX(2, 1164)=345 + KINDEX(1, 1165)=14 + KINDEX(2, 1165)=346 + KINDEX(1, 1166)=10 + KINDEX(2, 1166)=347 + KINDEX(1, 1167)=15 + KINDEX(2, 1167)=347 + KINDEX(1, 1168)=43 + KINDEX(2, 1168)=347 + KINDEX(1, 1169)=15 + KINDEX(2, 1169)=348 + KINDEX(1, 1170)=44 + KINDEX(2, 1170)=348 + KINDEX(1, 1171)=15 + KINDEX(2, 1171)=349 + KINDEX(1, 1172)=45 + KINDEX(2, 1172)=349 + KINDEX(1, 1173)=48 + KINDEX(2, 1173)=350 + KINDEX(1, 1174)=53 + KINDEX(2, 1174)=351 + KINDEX(1, 1175)=58 + KINDEX(2, 1175)=352 + KINDEX(1, 1176)=60 + KINDEX(2, 1176)=353 + KINDEX(1, 1177)=64 + KINDEX(2, 1177)=354 + KINDEX(1, 1178)=66 + KINDEX(2, 1178)=355 + KINDEX(1, 1179)=68 + KINDEX(2, 1179)=356 + KINDEX(1, 1180)=56 + KINDEX(2, 1180)=357 + KINDEX(1, 1181)=54 + KINDEX(2, 1181)=358 + KINDEX(1, 1182)=55 + KINDEX(2, 1182)=359 + KINDEX(1, 1183)=65 + KINDEX(2, 1183)=360 + KINDEX(1, 1184)=47 + KINDEX(2, 1184)=361 + KINDEX(1, 1185)=59 + KINDEX(2, 1185)=362 + KINDEX(1, 1186)=49 + KINDEX(2, 1186)=363 + KINDEX(1, 1187)=46 + KINDEX(2, 1187)=364 + KINDEX(1, 1188)=67 + KINDEX(2, 1188)=365 RETURN -END SUBROUTINE CH_NONZEROTERMS_AQ +END SUBROUTINE CH_NONZEROTERMS_GAZ !! !! !! ############################# - SUBROUTINE CH_NONZEROTERMS_GAZ + SUBROUTINE CH_NONZEROTERMS_AQ !! ############################# !! This code has been created automatically by preprocessor m10, !! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. @@ -37315,1223 +98975,3547 @@ END SUBROUTINE CH_NONZEROTERMS_AQ !! ------------------ IMPLICIT NONE ! check if output array is large enough -IF (KINDEXDIM.LT.606) THEN +IF (KINDEXDIM.LT.1768) THEN STOP 'CH_NONZEROTERMS ERROR: array KINDEX is too small!' END IF - KINDEX(1, 1)=3 + KINDEX(1, 1)=1 KINDEX(2, 1)=1 - KINDEX(1, 2)=4 + KINDEX(1, 2)=2 KINDEX(2, 2)=1 - KINDEX(1, 3)=1 + KINDEX(1, 3)=3 KINDEX(2, 3)=2 KINDEX(1, 4)=1 KINDEX(2, 4)=3 - KINDEX(1, 5)=3 - KINDEX(2, 5)=4 - KINDEX(1, 6)=7 + KINDEX(1, 5)=2 + KINDEX(2, 5)=3 + KINDEX(1, 6)=2 KINDEX(2, 6)=4 - KINDEX(1, 7)=14 + KINDEX(1, 7)=8 KINDEX(2, 7)=4 - KINDEX(1, 8)=4 + KINDEX(1, 8)=1 KINDEX(2, 8)=5 - KINDEX(1, 9)=8 + KINDEX(1, 9)=2 KINDEX(2, 9)=5 - KINDEX(1, 10)=14 + KINDEX(1, 10)=3 KINDEX(2, 10)=5 - KINDEX(1, 11)=4 + KINDEX(1, 11)=2 KINDEX(2, 11)=6 - KINDEX(1, 12)=5 + KINDEX(1, 12)=3 KINDEX(2, 12)=6 - KINDEX(1, 13)=9 + KINDEX(1, 13)=8 KINDEX(2, 13)=6 - KINDEX(1, 14)=14 - KINDEX(2, 14)=6 - KINDEX(1, 15)=15 - KINDEX(2, 15)=6 - KINDEX(1, 16)=3 + KINDEX(1, 14)=1 + KINDEX(2, 14)=7 + KINDEX(1, 15)=2 + KINDEX(2, 15)=7 + KINDEX(1, 16)=8 KINDEX(2, 16)=7 - KINDEX(1, 17)=5 - KINDEX(2, 17)=7 - KINDEX(1, 18)=4 + KINDEX(1, 17)=1 + KINDEX(2, 17)=8 + KINDEX(1, 18)=2 KINDEX(2, 18)=8 - KINDEX(1, 19)=5 - KINDEX(2, 19)=8 - KINDEX(1, 20)=2 + KINDEX(1, 19)=2 + KINDEX(2, 19)=9 + KINDEX(1, 20)=7 KINDEX(2, 20)=9 - KINDEX(1, 21)=14 + KINDEX(1, 21)=8 KINDEX(2, 21)=9 - KINDEX(1, 22)=13 + KINDEX(1, 22)=2 KINDEX(2, 22)=10 - KINDEX(1, 23)=22 + KINDEX(1, 23)=7 KINDEX(2, 23)=10 - KINDEX(1, 24)=13 - KINDEX(2, 24)=11 - KINDEX(1, 25)=15 + KINDEX(1, 24)=8 + KINDEX(2, 24)=10 + KINDEX(1, 25)=5 KINDEX(2, 25)=11 - KINDEX(1, 26)=22 + KINDEX(1, 26)=7 KINDEX(2, 26)=11 - KINDEX(1, 27)=13 + KINDEX(1, 27)=1 KINDEX(2, 27)=12 - KINDEX(1, 28)=15 + KINDEX(1, 28)=2 KINDEX(2, 28)=12 - KINDEX(1, 29)=23 + KINDEX(1, 29)=8 KINDEX(2, 29)=12 - KINDEX(1, 30)=32 - KINDEX(2, 30)=12 - KINDEX(1, 31)=14 + KINDEX(1, 30)=1 + KINDEX(2, 30)=13 + KINDEX(1, 31)=8 KINDEX(2, 31)=13 - KINDEX(1, 32)=15 - KINDEX(2, 32)=13 - KINDEX(1, 33)=22 - KINDEX(2, 33)=13 - KINDEX(1, 34)=28 - KINDEX(2, 34)=13 - KINDEX(1, 35)=14 - KINDEX(2, 35)=14 + KINDEX(1, 32)=2 + KINDEX(2, 32)=14 + KINDEX(1, 33)=8 + KINDEX(2, 33)=14 + KINDEX(1, 34)=3 + KINDEX(2, 34)=15 + KINDEX(1, 35)=3 + KINDEX(2, 35)=16 KINDEX(1, 36)=15 - KINDEX(2, 36)=14 - KINDEX(1, 37)=23 - KINDEX(2, 37)=14 - KINDEX(1, 38)=29 - KINDEX(2, 38)=14 - KINDEX(1, 39)=32 - KINDEX(2, 39)=14 - KINDEX(1, 40)=24 - KINDEX(2, 40)=15 - KINDEX(1, 41)=33 - KINDEX(2, 41)=15 - KINDEX(1, 42)=39 - KINDEX(2, 42)=15 - KINDEX(1, 43)=13 - KINDEX(2, 43)=16 + KINDEX(2, 36)=17 + KINDEX(1, 37)=1 + KINDEX(2, 37)=20 + KINDEX(1, 38)=4 + KINDEX(2, 38)=20 + KINDEX(1, 39)=15 + KINDEX(2, 39)=20 + KINDEX(1, 40)=1 + KINDEX(2, 40)=21 + KINDEX(1, 41)=2 + KINDEX(2, 41)=21 + KINDEX(1, 42)=4 + KINDEX(2, 42)=21 + KINDEX(1, 43)=10 + KINDEX(2, 43)=21 KINDEX(1, 44)=15 - KINDEX(2, 44)=16 - KINDEX(1, 45)=22 - KINDEX(2, 45)=16 - KINDEX(1, 46)=25 - KINDEX(2, 46)=16 - KINDEX(1, 47)=39 - KINDEX(2, 47)=16 - KINDEX(1, 48)=4 - KINDEX(2, 48)=17 - KINDEX(1, 49)=15 - KINDEX(2, 49)=17 - KINDEX(1, 50)=23 - KINDEX(2, 50)=17 - KINDEX(1, 51)=24 - KINDEX(2, 51)=17 - KINDEX(1, 52)=26 - KINDEX(2, 52)=17 - KINDEX(1, 53)=1 - KINDEX(2, 53)=18 - KINDEX(1, 54)=1 - KINDEX(2, 54)=19 - KINDEX(1, 55)=14 - KINDEX(2, 55)=22 - KINDEX(1, 56)=1 - KINDEX(2, 56)=23 - KINDEX(1, 57)=14 - KINDEX(2, 57)=23 - KINDEX(1, 58)=15 - KINDEX(2, 58)=23 - KINDEX(1, 59)=1 - KINDEX(2, 59)=24 - KINDEX(1, 60)=14 - KINDEX(2, 60)=24 - KINDEX(1, 61)=15 - KINDEX(2, 61)=24 - KINDEX(1, 62)=14 - KINDEX(2, 62)=25 + KINDEX(2, 44)=21 + KINDEX(1, 45)=2 + KINDEX(2, 45)=22 + KINDEX(1, 46)=4 + KINDEX(2, 46)=22 + KINDEX(1, 47)=5 + KINDEX(2, 47)=22 + KINDEX(1, 48)=2 + KINDEX(2, 48)=23 + KINDEX(1, 49)=5 + KINDEX(2, 49)=23 + KINDEX(1, 50)=15 + KINDEX(2, 50)=23 + KINDEX(1, 51)=5 + KINDEX(2, 51)=24 + KINDEX(1, 52)=8 + KINDEX(2, 52)=24 + KINDEX(1, 53)=15 + KINDEX(2, 53)=24 + KINDEX(1, 54)=10 + KINDEX(2, 54)=25 + KINDEX(1, 55)=11 + KINDEX(2, 55)=25 + KINDEX(1, 56)=15 + KINDEX(2, 56)=25 + KINDEX(1, 57)=3 + KINDEX(2, 57)=26 + KINDEX(1, 58)=10 + KINDEX(2, 58)=26 + KINDEX(1, 59)=15 + KINDEX(2, 59)=26 + KINDEX(1, 60)=1 + KINDEX(2, 60)=27 + KINDEX(1, 61)=2 + KINDEX(2, 61)=27 + KINDEX(1, 62)=10 + KINDEX(2, 62)=27 KINDEX(1, 63)=15 - KINDEX(2, 63)=25 + KINDEX(2, 63)=27 KINDEX(1, 64)=2 - KINDEX(2, 64)=26 - KINDEX(1, 65)=14 - KINDEX(2, 65)=26 - KINDEX(1, 66)=15 - KINDEX(2, 66)=26 + KINDEX(2, 64)=28 + KINDEX(1, 65)=6 + KINDEX(2, 65)=28 + KINDEX(1, 66)=10 + KINDEX(2, 66)=28 KINDEX(1, 67)=2 - KINDEX(2, 67)=27 - KINDEX(1, 68)=15 - KINDEX(2, 68)=27 - KINDEX(1, 69)=2 - KINDEX(2, 69)=28 - KINDEX(1, 70)=15 - KINDEX(2, 70)=28 - KINDEX(1, 71)=3 - KINDEX(2, 71)=29 - KINDEX(1, 72)=4 - KINDEX(2, 72)=29 + KINDEX(2, 67)=29 + KINDEX(1, 68)=6 + KINDEX(2, 68)=29 + KINDEX(1, 69)=10 + KINDEX(2, 69)=29 + KINDEX(1, 70)=2 + KINDEX(2, 70)=30 + KINDEX(1, 71)=6 + KINDEX(2, 71)=30 + KINDEX(1, 72)=15 + KINDEX(2, 72)=30 KINDEX(1, 73)=3 - KINDEX(2, 73)=30 - KINDEX(1, 74)=4 - KINDEX(2, 74)=30 - KINDEX(1, 75)=4 + KINDEX(2, 73)=31 + KINDEX(1, 74)=10 + KINDEX(2, 74)=31 + KINDEX(1, 75)=15 KINDEX(2, 75)=31 - KINDEX(1, 76)=5 - KINDEX(2, 76)=31 - KINDEX(1, 77)=3 + KINDEX(1, 76)=10 + KINDEX(2, 76)=32 + KINDEX(1, 77)=12 KINDEX(2, 77)=32 - KINDEX(1, 78)=7 - KINDEX(2, 78)=32 - KINDEX(1, 79)=14 - KINDEX(2, 79)=32 - KINDEX(1, 80)=4 - KINDEX(2, 80)=33 - KINDEX(1, 81)=8 - KINDEX(2, 81)=33 - KINDEX(1, 82)=14 - KINDEX(2, 82)=33 - KINDEX(1, 83)=4 + KINDEX(1, 78)=10 + KINDEX(2, 78)=33 + KINDEX(1, 79)=12 + KINDEX(2, 79)=33 + KINDEX(1, 80)=2 + KINDEX(2, 80)=34 + KINDEX(1, 81)=5 + KINDEX(2, 81)=34 + KINDEX(1, 82)=8 + KINDEX(2, 82)=34 + KINDEX(1, 83)=10 KINDEX(2, 83)=34 - KINDEX(1, 84)=5 + KINDEX(1, 84)=15 KINDEX(2, 84)=34 - KINDEX(1, 85)=14 - KINDEX(2, 85)=34 - KINDEX(1, 86)=15 - KINDEX(2, 86)=34 - KINDEX(1, 87)=3 - KINDEX(2, 87)=35 - KINDEX(1, 88)=4 - KINDEX(2, 88)=35 - KINDEX(1, 89)=14 - KINDEX(2, 89)=35 - KINDEX(1, 90)=15 - KINDEX(2, 90)=35 - KINDEX(1, 91)=4 - KINDEX(2, 91)=36 - KINDEX(1, 92)=9 - KINDEX(2, 92)=36 - KINDEX(1, 93)=15 - KINDEX(2, 93)=36 - KINDEX(1, 94)=4 - KINDEX(2, 94)=37 - KINDEX(1, 95)=9 - KINDEX(2, 95)=37 - KINDEX(1, 96)=15 - KINDEX(2, 96)=37 - KINDEX(1, 97)=4 - KINDEX(2, 97)=38 - KINDEX(1, 98)=5 - KINDEX(2, 98)=38 - KINDEX(1, 99)=8 - KINDEX(2, 99)=38 - KINDEX(1, 100)=14 - KINDEX(2, 100)=38 - KINDEX(1, 101)=15 - KINDEX(2, 101)=38 - KINDEX(1, 102)=4 - KINDEX(2, 102)=39 - KINDEX(1, 103)=7 - KINDEX(2, 103)=39 - KINDEX(1, 104)=14 - KINDEX(2, 104)=39 - KINDEX(1, 105)=5 - KINDEX(2, 105)=40 - KINDEX(1, 106)=8 - KINDEX(2, 106)=40 - KINDEX(1, 107)=14 - KINDEX(2, 107)=40 - KINDEX(1, 108)=4 - KINDEX(2, 108)=41 - KINDEX(1, 109)=9 - KINDEX(2, 109)=41 - KINDEX(1, 110)=14 - KINDEX(2, 110)=41 - KINDEX(1, 111)=1 - KINDEX(2, 111)=42 - KINDEX(1, 112)=3 - KINDEX(2, 112)=42 - KINDEX(1, 113)=4 - KINDEX(2, 113)=42 - KINDEX(1, 114)=1 - KINDEX(2, 114)=43 - KINDEX(1, 115)=4 - KINDEX(2, 115)=43 - KINDEX(1, 116)=5 - KINDEX(2, 116)=43 - KINDEX(1, 117)=3 - KINDEX(2, 117)=44 - KINDEX(1, 118)=4 - KINDEX(2, 118)=44 - KINDEX(1, 119)=3 - KINDEX(2, 119)=45 - KINDEX(1, 120)=4 - KINDEX(2, 120)=45 - KINDEX(1, 121)=5 - KINDEX(2, 121)=45 - KINDEX(1, 122)=3 - KINDEX(2, 122)=46 - KINDEX(1, 123)=4 - KINDEX(2, 123)=46 - KINDEX(1, 124)=5 - KINDEX(2, 124)=46 - KINDEX(1, 125)=4 - KINDEX(2, 125)=47 - KINDEX(1, 126)=5 - KINDEX(2, 126)=47 - KINDEX(1, 127)=6 - KINDEX(2, 127)=47 - KINDEX(1, 128)=4 - KINDEX(2, 128)=48 - KINDEX(1, 129)=5 - KINDEX(2, 129)=48 - KINDEX(1, 130)=6 - KINDEX(2, 130)=48 - KINDEX(1, 131)=4 - KINDEX(2, 131)=49 - KINDEX(1, 132)=5 - KINDEX(2, 132)=49 - KINDEX(1, 133)=10 - KINDEX(2, 133)=50 - KINDEX(1, 134)=14 - KINDEX(2, 134)=50 - KINDEX(1, 135)=14 - KINDEX(2, 135)=51 - KINDEX(1, 136)=15 - KINDEX(2, 136)=51 + KINDEX(1, 85)=3 + KINDEX(2, 85)=35 + KINDEX(1, 86)=10 + KINDEX(2, 86)=36 + KINDEX(1, 87)=13 + KINDEX(2, 87)=36 + KINDEX(1, 88)=14 + KINDEX(2, 88)=36 + KINDEX(1, 89)=15 + KINDEX(2, 89)=36 + KINDEX(1, 90)=12 + KINDEX(2, 90)=37 + KINDEX(1, 91)=15 + KINDEX(2, 91)=37 + KINDEX(1, 92)=10 + KINDEX(2, 92)=38 + KINDEX(1, 93)=12 + KINDEX(2, 93)=38 + KINDEX(1, 94)=15 + KINDEX(2, 94)=38 + KINDEX(1, 95)=1 + KINDEX(2, 95)=39 + KINDEX(1, 96)=2 + KINDEX(2, 96)=39 + KINDEX(1, 97)=2 + KINDEX(2, 97)=40 + KINDEX(1, 98)=4 + KINDEX(2, 98)=40 + KINDEX(1, 99)=15 + KINDEX(2, 99)=40 + KINDEX(1, 100)=2 + KINDEX(2, 100)=41 + KINDEX(1, 101)=8 + KINDEX(2, 101)=41 + KINDEX(1, 102)=10 + KINDEX(2, 102)=41 + KINDEX(1, 103)=15 + KINDEX(2, 103)=41 + KINDEX(1, 104)=2 + KINDEX(2, 104)=42 + KINDEX(1, 105)=8 + KINDEX(2, 105)=42 + KINDEX(1, 106)=10 + KINDEX(2, 106)=43 + KINDEX(1, 107)=15 + KINDEX(2, 107)=43 + KINDEX(1, 108)=15 + KINDEX(2, 108)=44 + KINDEX(1, 109)=85 + KINDEX(2, 109)=44 + KINDEX(1, 110)=86 + KINDEX(2, 110)=44 + KINDEX(1, 111)=10 + KINDEX(2, 111)=45 + KINDEX(1, 112)=11 + KINDEX(2, 112)=45 + KINDEX(1, 113)=28 + KINDEX(2, 113)=45 + KINDEX(1, 114)=11 + KINDEX(2, 114)=46 + KINDEX(1, 115)=28 + KINDEX(2, 115)=46 + KINDEX(1, 116)=10 + KINDEX(2, 116)=47 + KINDEX(1, 117)=11 + KINDEX(2, 117)=47 + KINDEX(1, 118)=15 + KINDEX(2, 118)=47 + KINDEX(1, 119)=28 + KINDEX(2, 119)=47 + KINDEX(1, 120)=5 + KINDEX(2, 120)=48 + KINDEX(1, 121)=8 + KINDEX(2, 121)=48 + KINDEX(1, 122)=10 + KINDEX(2, 122)=48 + KINDEX(1, 123)=11 + KINDEX(2, 123)=48 + KINDEX(1, 124)=28 + KINDEX(2, 124)=48 + KINDEX(1, 125)=10 + KINDEX(2, 125)=49 + KINDEX(1, 126)=15 + KINDEX(2, 126)=49 + KINDEX(1, 127)=28 + KINDEX(2, 127)=49 + KINDEX(1, 128)=32 + KINDEX(2, 128)=49 + KINDEX(1, 129)=15 + KINDEX(2, 129)=50 + KINDEX(1, 130)=16 + KINDEX(2, 130)=50 + KINDEX(1, 131)=85 + KINDEX(2, 131)=50 + KINDEX(1, 132)=8 + KINDEX(2, 132)=51 + KINDEX(1, 133)=16 + KINDEX(2, 133)=51 + KINDEX(1, 134)=85 + KINDEX(2, 134)=51 + KINDEX(1, 135)=3 + KINDEX(2, 135)=52 + KINDEX(1, 136)=10 + KINDEX(2, 136)=52 KINDEX(1, 137)=11 KINDEX(2, 137)=52 - KINDEX(1, 138)=12 + KINDEX(1, 138)=15 KINDEX(2, 138)=52 - KINDEX(1, 139)=14 + KINDEX(1, 139)=16 KINDEX(2, 139)=52 - KINDEX(1, 140)=15 + KINDEX(1, 140)=28 KINDEX(2, 140)=52 - KINDEX(1, 141)=13 - KINDEX(2, 141)=53 - KINDEX(1, 142)=14 + KINDEX(1, 141)=43 + KINDEX(2, 141)=52 + KINDEX(1, 142)=10 KINDEX(2, 142)=53 - KINDEX(1, 143)=15 + KINDEX(1, 143)=11 KINDEX(2, 143)=53 - KINDEX(1, 144)=13 - KINDEX(2, 144)=54 - KINDEX(1, 145)=14 - KINDEX(2, 145)=54 - KINDEX(1, 146)=15 - KINDEX(2, 146)=54 - KINDEX(1, 147)=19 + KINDEX(1, 144)=16 + KINDEX(2, 144)=53 + KINDEX(1, 145)=85 + KINDEX(2, 145)=53 + KINDEX(1, 146)=86 + KINDEX(2, 146)=53 + KINDEX(1, 147)=10 KINDEX(2, 147)=54 - KINDEX(1, 148)=20 + KINDEX(1, 148)=15 KINDEX(2, 148)=54 - KINDEX(1, 149)=22 + KINDEX(1, 149)=29 KINDEX(2, 149)=54 - KINDEX(1, 150)=25 + KINDEX(1, 150)=33 KINDEX(2, 150)=54 - KINDEX(1, 151)=41 + KINDEX(1, 151)=85 KINDEX(2, 151)=54 - KINDEX(1, 152)=23 + KINDEX(1, 152)=15 KINDEX(2, 152)=55 - KINDEX(1, 153)=25 + KINDEX(1, 153)=17 KINDEX(2, 153)=55 - KINDEX(1, 154)=14 - KINDEX(2, 154)=56 - KINDEX(1, 155)=16 + KINDEX(1, 154)=85 + KINDEX(2, 154)=55 + KINDEX(1, 155)=8 KINDEX(2, 155)=56 - KINDEX(1, 156)=32 + KINDEX(1, 156)=17 KINDEX(2, 156)=56 - KINDEX(1, 157)=14 - KINDEX(2, 157)=57 - KINDEX(1, 158)=17 + KINDEX(1, 157)=85 + KINDEX(2, 157)=56 + KINDEX(1, 158)=3 KINDEX(2, 158)=57 - KINDEX(1, 159)=33 + KINDEX(1, 159)=10 KINDEX(2, 159)=57 - KINDEX(1, 160)=13 - KINDEX(2, 160)=58 - KINDEX(1, 161)=14 - KINDEX(2, 161)=58 - KINDEX(1, 162)=15 - KINDEX(2, 162)=58 - KINDEX(1, 163)=18 - KINDEX(2, 163)=58 - KINDEX(1, 164)=22 - KINDEX(2, 164)=58 - KINDEX(1, 165)=23 - KINDEX(2, 165)=58 - KINDEX(1, 166)=24 - KINDEX(2, 166)=58 - KINDEX(1, 167)=25 - KINDEX(2, 167)=58 - KINDEX(1, 168)=30 - KINDEX(2, 168)=58 - KINDEX(1, 169)=33 - KINDEX(2, 169)=58 - KINDEX(1, 170)=14 - KINDEX(2, 170)=59 + KINDEX(1, 160)=11 + KINDEX(2, 160)=57 + KINDEX(1, 161)=15 + KINDEX(2, 161)=57 + KINDEX(1, 162)=17 + KINDEX(2, 162)=57 + KINDEX(1, 163)=19 + KINDEX(2, 163)=57 + KINDEX(1, 164)=28 + KINDEX(2, 164)=57 + KINDEX(1, 165)=29 + KINDEX(2, 165)=57 + KINDEX(1, 166)=43 + KINDEX(2, 166)=57 + KINDEX(1, 167)=44 + KINDEX(2, 167)=57 + KINDEX(1, 168)=85 + KINDEX(2, 168)=57 + KINDEX(1, 169)=87 + KINDEX(2, 169)=57 + KINDEX(1, 170)=17 + KINDEX(2, 170)=58 KINDEX(1, 171)=19 - KINDEX(2, 171)=59 - KINDEX(1, 172)=34 - KINDEX(2, 172)=59 - KINDEX(1, 173)=35 - KINDEX(2, 173)=59 - KINDEX(1, 174)=14 - KINDEX(2, 174)=60 - KINDEX(1, 175)=20 - KINDEX(2, 175)=60 - KINDEX(1, 176)=35 - KINDEX(2, 176)=60 - KINDEX(1, 177)=14 - KINDEX(2, 177)=61 - KINDEX(1, 178)=15 - KINDEX(2, 178)=61 - KINDEX(1, 179)=21 - KINDEX(2, 179)=61 - KINDEX(1, 180)=36 - KINDEX(2, 180)=61 - KINDEX(1, 181)=37 - KINDEX(2, 181)=61 - KINDEX(1, 182)=41 - KINDEX(2, 182)=61 - KINDEX(1, 183)=13 - KINDEX(2, 183)=62 - KINDEX(1, 184)=14 - KINDEX(2, 184)=62 - KINDEX(1, 185)=15 - KINDEX(2, 185)=62 - KINDEX(1, 186)=22 - KINDEX(2, 186)=62 - KINDEX(1, 187)=14 - KINDEX(2, 187)=63 - KINDEX(1, 188)=23 - KINDEX(2, 188)=63 - KINDEX(1, 189)=39 - KINDEX(2, 189)=63 - KINDEX(1, 190)=14 - KINDEX(2, 190)=64 - KINDEX(1, 191)=24 - KINDEX(2, 191)=64 - KINDEX(1, 192)=39 - KINDEX(2, 192)=64 - KINDEX(1, 193)=13 - KINDEX(2, 193)=65 - KINDEX(1, 194)=14 - KINDEX(2, 194)=65 - KINDEX(1, 195)=15 - KINDEX(2, 195)=65 - KINDEX(1, 196)=22 - KINDEX(2, 196)=65 - KINDEX(1, 197)=23 + KINDEX(2, 171)=58 + KINDEX(1, 172)=29 + KINDEX(2, 172)=58 + KINDEX(1, 173)=85 + KINDEX(2, 173)=58 + KINDEX(1, 174)=87 + KINDEX(2, 174)=58 + KINDEX(1, 175)=15 + KINDEX(2, 175)=59 + KINDEX(1, 176)=19 + KINDEX(2, 176)=59 + KINDEX(1, 177)=85 + KINDEX(2, 177)=59 + KINDEX(1, 178)=87 + KINDEX(2, 178)=59 + KINDEX(1, 179)=10 + KINDEX(2, 179)=60 + KINDEX(1, 180)=11 + KINDEX(2, 180)=60 + KINDEX(1, 181)=29 + KINDEX(2, 181)=60 + KINDEX(1, 182)=85 + KINDEX(2, 182)=60 + KINDEX(1, 183)=87 + KINDEX(2, 183)=60 + KINDEX(1, 184)=15 + KINDEX(2, 184)=61 + KINDEX(1, 185)=29 + KINDEX(2, 185)=61 + KINDEX(1, 186)=85 + KINDEX(2, 186)=61 + KINDEX(1, 187)=5 + KINDEX(2, 187)=62 + KINDEX(1, 188)=8 + KINDEX(2, 188)=62 + KINDEX(1, 189)=29 + KINDEX(2, 189)=62 + KINDEX(1, 190)=85 + KINDEX(2, 190)=62 + KINDEX(1, 191)=15 + KINDEX(2, 191)=63 + KINDEX(1, 192)=30 + KINDEX(2, 192)=63 + KINDEX(1, 193)=85 + KINDEX(2, 193)=63 + KINDEX(1, 194)=30 + KINDEX(2, 194)=64 + KINDEX(1, 195)=85 + KINDEX(2, 195)=64 + KINDEX(1, 196)=87 + KINDEX(2, 196)=64 + KINDEX(1, 197)=15 KINDEX(2, 197)=65 - KINDEX(1, 198)=24 + KINDEX(1, 198)=35 KINDEX(2, 198)=65 - KINDEX(1, 199)=25 + KINDEX(1, 199)=85 KINDEX(2, 199)=65 - KINDEX(1, 200)=39 - KINDEX(2, 200)=65 - KINDEX(1, 201)=41 - KINDEX(2, 201)=65 - KINDEX(1, 202)=14 + KINDEX(1, 200)=8 + KINDEX(2, 200)=66 + KINDEX(1, 201)=35 + KINDEX(2, 201)=66 + KINDEX(1, 202)=85 KINDEX(2, 202)=66 - KINDEX(1, 203)=15 - KINDEX(2, 203)=66 - KINDEX(1, 204)=30 - KINDEX(2, 204)=66 - KINDEX(1, 205)=14 + KINDEX(1, 203)=3 + KINDEX(2, 203)=67 + KINDEX(1, 204)=10 + KINDEX(2, 204)=67 + KINDEX(1, 205)=11 KINDEX(2, 205)=67 - KINDEX(1, 206)=31 + KINDEX(1, 206)=15 KINDEX(2, 206)=67 - KINDEX(1, 207)=14 - KINDEX(2, 207)=68 - KINDEX(1, 208)=22 - KINDEX(2, 208)=68 - KINDEX(1, 209)=28 - KINDEX(2, 209)=68 - KINDEX(1, 210)=32 - KINDEX(2, 210)=68 - KINDEX(1, 211)=14 - KINDEX(2, 211)=69 - KINDEX(1, 212)=15 - KINDEX(2, 212)=69 - KINDEX(1, 213)=22 - KINDEX(2, 213)=69 - KINDEX(1, 214)=23 - KINDEX(2, 214)=69 - KINDEX(1, 215)=24 - KINDEX(2, 215)=69 - KINDEX(1, 216)=29 - KINDEX(2, 216)=69 - KINDEX(1, 217)=33 + KINDEX(1, 207)=17 + KINDEX(2, 207)=67 + KINDEX(1, 208)=28 + KINDEX(2, 208)=67 + KINDEX(1, 209)=35 + KINDEX(2, 209)=67 + KINDEX(1, 210)=39 + KINDEX(2, 210)=67 + KINDEX(1, 211)=40 + KINDEX(2, 211)=67 + KINDEX(1, 212)=43 + KINDEX(2, 212)=67 + KINDEX(1, 213)=85 + KINDEX(2, 213)=67 + KINDEX(1, 214)=17 + KINDEX(2, 214)=68 + KINDEX(1, 215)=29 + KINDEX(2, 215)=68 + KINDEX(1, 216)=35 + KINDEX(2, 216)=68 + KINDEX(1, 217)=15 KINDEX(2, 217)=69 - KINDEX(1, 218)=39 + KINDEX(1, 218)=38 KINDEX(2, 218)=69 - KINDEX(1, 219)=41 + KINDEX(1, 219)=85 KINDEX(2, 219)=69 - KINDEX(1, 220)=5 + KINDEX(1, 220)=15 KINDEX(2, 220)=70 - KINDEX(1, 221)=14 + KINDEX(1, 221)=34 KINDEX(2, 221)=70 - KINDEX(1, 222)=15 + KINDEX(1, 222)=85 KINDEX(2, 222)=70 - KINDEX(1, 223)=22 - KINDEX(2, 223)=70 - KINDEX(1, 224)=25 - KINDEX(2, 224)=70 - KINDEX(1, 225)=27 - KINDEX(2, 225)=70 - KINDEX(1, 226)=41 - KINDEX(2, 226)=70 - KINDEX(1, 227)=4 - KINDEX(2, 227)=71 - KINDEX(1, 228)=14 - KINDEX(2, 228)=71 - KINDEX(1, 229)=26 - KINDEX(2, 229)=71 - KINDEX(1, 230)=33 - KINDEX(2, 230)=71 - KINDEX(1, 231)=5 - KINDEX(2, 231)=72 - KINDEX(1, 232)=8 - KINDEX(2, 232)=72 - KINDEX(1, 233)=13 - KINDEX(2, 233)=72 - KINDEX(1, 234)=15 - KINDEX(2, 234)=72 - KINDEX(1, 235)=22 - KINDEX(2, 235)=72 - KINDEX(1, 236)=5 - KINDEX(2, 236)=73 - KINDEX(1, 237)=8 - KINDEX(2, 237)=73 - KINDEX(1, 238)=23 - KINDEX(2, 238)=73 - KINDEX(1, 239)=39 - KINDEX(2, 239)=73 - KINDEX(1, 240)=4 - KINDEX(2, 240)=74 - KINDEX(1, 241)=5 - KINDEX(2, 241)=74 - KINDEX(1, 242)=8 - KINDEX(2, 242)=74 - KINDEX(1, 243)=13 - KINDEX(2, 243)=74 - KINDEX(1, 244)=15 - KINDEX(2, 244)=74 - KINDEX(1, 245)=23 - KINDEX(2, 245)=74 - KINDEX(1, 246)=24 - KINDEX(2, 246)=74 - KINDEX(1, 247)=25 - KINDEX(2, 247)=74 - KINDEX(1, 248)=39 - KINDEX(2, 248)=74 - KINDEX(1, 249)=40 - KINDEX(2, 249)=74 - KINDEX(1, 250)=41 - KINDEX(2, 250)=74 - KINDEX(1, 251)=5 - KINDEX(2, 251)=75 - KINDEX(1, 252)=8 - KINDEX(2, 252)=75 - KINDEX(1, 253)=21 - KINDEX(2, 253)=75 - KINDEX(1, 254)=36 - KINDEX(2, 254)=75 - KINDEX(1, 255)=5 - KINDEX(2, 255)=76 - KINDEX(1, 256)=19 - KINDEX(2, 256)=76 - KINDEX(1, 257)=25 - KINDEX(2, 257)=76 - KINDEX(1, 258)=40 - KINDEX(2, 258)=76 - KINDEX(1, 259)=5 - KINDEX(2, 259)=77 - KINDEX(1, 260)=20 - KINDEX(2, 260)=77 - KINDEX(1, 261)=25 - KINDEX(2, 261)=77 - KINDEX(1, 262)=40 - KINDEX(2, 262)=77 - KINDEX(1, 263)=4 - KINDEX(2, 263)=78 - KINDEX(1, 264)=5 - KINDEX(2, 264)=78 - KINDEX(1, 265)=22 - KINDEX(2, 265)=78 - KINDEX(1, 266)=26 - KINDEX(2, 266)=78 - KINDEX(1, 267)=27 - KINDEX(2, 267)=78 - KINDEX(1, 268)=41 - KINDEX(2, 268)=78 - KINDEX(1, 269)=1 - KINDEX(2, 269)=79 - KINDEX(1, 270)=2 - KINDEX(2, 270)=79 - KINDEX(1, 271)=13 - KINDEX(2, 271)=79 - KINDEX(1, 272)=14 - KINDEX(2, 272)=79 - KINDEX(1, 273)=15 - KINDEX(2, 273)=79 - KINDEX(1, 274)=16 - KINDEX(2, 274)=79 - KINDEX(1, 275)=17 - KINDEX(2, 275)=79 - KINDEX(1, 276)=19 - KINDEX(2, 276)=79 - KINDEX(1, 277)=22 - KINDEX(2, 277)=79 - KINDEX(1, 278)=23 - KINDEX(2, 278)=79 - KINDEX(1, 279)=24 - KINDEX(2, 279)=79 - KINDEX(1, 280)=25 - KINDEX(2, 280)=79 - KINDEX(1, 281)=30 - KINDEX(2, 281)=79 - KINDEX(1, 282)=31 - KINDEX(2, 282)=79 - KINDEX(1, 283)=32 - KINDEX(2, 283)=79 - KINDEX(1, 284)=33 - KINDEX(2, 284)=79 - KINDEX(1, 285)=39 - KINDEX(2, 285)=79 - KINDEX(1, 286)=41 - KINDEX(2, 286)=79 - KINDEX(1, 287)=1 - KINDEX(2, 287)=80 - KINDEX(1, 288)=2 - KINDEX(2, 288)=80 - KINDEX(1, 289)=13 - KINDEX(2, 289)=80 - KINDEX(1, 290)=14 - KINDEX(2, 290)=80 - KINDEX(1, 291)=15 - KINDEX(2, 291)=80 - KINDEX(1, 292)=19 - KINDEX(2, 292)=80 - KINDEX(1, 293)=20 - KINDEX(2, 293)=80 - KINDEX(1, 294)=22 - KINDEX(2, 294)=80 - KINDEX(1, 295)=23 - KINDEX(2, 295)=80 - KINDEX(1, 296)=24 - KINDEX(2, 296)=80 - KINDEX(1, 297)=25 - KINDEX(2, 297)=80 - KINDEX(1, 298)=30 - KINDEX(2, 298)=80 - KINDEX(1, 299)=31 - KINDEX(2, 299)=80 - KINDEX(1, 300)=32 - KINDEX(2, 300)=80 - KINDEX(1, 301)=33 - KINDEX(2, 301)=80 - KINDEX(1, 302)=39 - KINDEX(2, 302)=80 - KINDEX(1, 303)=41 - KINDEX(2, 303)=80 - KINDEX(1, 304)=1 - KINDEX(2, 304)=81 - KINDEX(1, 305)=13 - KINDEX(2, 305)=81 - KINDEX(1, 306)=14 - KINDEX(2, 306)=81 - KINDEX(1, 307)=15 - KINDEX(2, 307)=81 - KINDEX(1, 308)=22 - KINDEX(2, 308)=81 - KINDEX(1, 309)=23 - KINDEX(2, 309)=81 - KINDEX(1, 310)=25 - KINDEX(2, 310)=81 - KINDEX(1, 311)=29 - KINDEX(2, 311)=81 - KINDEX(1, 312)=30 - KINDEX(2, 312)=81 - KINDEX(1, 313)=31 - KINDEX(2, 313)=81 - KINDEX(1, 314)=39 - KINDEX(2, 314)=81 - KINDEX(1, 315)=1 - KINDEX(2, 315)=82 - KINDEX(1, 316)=4 - KINDEX(2, 316)=82 - KINDEX(1, 317)=13 - KINDEX(2, 317)=82 - KINDEX(1, 318)=14 - KINDEX(2, 318)=82 - KINDEX(1, 319)=15 - KINDEX(2, 319)=82 - KINDEX(1, 320)=22 - KINDEX(2, 320)=82 - KINDEX(1, 321)=27 - KINDEX(2, 321)=82 - KINDEX(1, 322)=30 - KINDEX(2, 322)=82 - KINDEX(1, 323)=39 - KINDEX(2, 323)=82 - KINDEX(1, 324)=4 - KINDEX(2, 324)=83 - KINDEX(1, 325)=21 - KINDEX(2, 325)=83 - KINDEX(1, 326)=26 - KINDEX(2, 326)=83 - KINDEX(1, 327)=36 - KINDEX(2, 327)=83 - KINDEX(1, 328)=15 - KINDEX(2, 328)=84 - KINDEX(1, 329)=21 - KINDEX(2, 329)=84 - KINDEX(1, 330)=36 - KINDEX(2, 330)=84 - KINDEX(1, 331)=4 - KINDEX(2, 331)=85 - KINDEX(1, 332)=7 - KINDEX(2, 332)=85 - KINDEX(1, 333)=21 - KINDEX(2, 333)=85 - KINDEX(1, 334)=37 - KINDEX(2, 334)=85 - KINDEX(1, 335)=15 - KINDEX(2, 335)=86 - KINDEX(1, 336)=21 - KINDEX(2, 336)=86 - KINDEX(1, 337)=37 - KINDEX(2, 337)=86 - KINDEX(1, 338)=38 - KINDEX(2, 338)=86 - KINDEX(1, 339)=1 - KINDEX(2, 339)=87 - KINDEX(1, 340)=14 - KINDEX(2, 340)=87 - KINDEX(1, 341)=21 - KINDEX(2, 341)=87 - KINDEX(1, 342)=37 - KINDEX(2, 342)=87 - KINDEX(1, 343)=4 - KINDEX(2, 343)=88 - KINDEX(1, 344)=27 - KINDEX(2, 344)=88 - KINDEX(1, 345)=39 - KINDEX(2, 345)=88 - KINDEX(1, 346)=4 - KINDEX(2, 346)=89 - KINDEX(1, 347)=27 - KINDEX(2, 347)=89 - KINDEX(1, 348)=39 - KINDEX(2, 348)=89 - KINDEX(1, 349)=3 - KINDEX(2, 349)=90 - KINDEX(1, 350)=4 - KINDEX(2, 350)=90 - KINDEX(1, 351)=15 - KINDEX(2, 351)=90 - KINDEX(1, 352)=22 - KINDEX(2, 352)=90 - KINDEX(1, 353)=32 - KINDEX(2, 353)=90 - KINDEX(1, 354)=3 - KINDEX(2, 354)=91 - KINDEX(1, 355)=4 - KINDEX(2, 355)=91 - KINDEX(1, 356)=15 - KINDEX(2, 356)=91 - KINDEX(1, 357)=22 - KINDEX(2, 357)=91 - KINDEX(1, 358)=23 - KINDEX(2, 358)=91 - KINDEX(1, 359)=24 - KINDEX(2, 359)=91 - KINDEX(1, 360)=25 - KINDEX(2, 360)=91 - KINDEX(1, 361)=26 - KINDEX(2, 361)=91 - KINDEX(1, 362)=32 - KINDEX(2, 362)=91 - KINDEX(1, 363)=33 - KINDEX(2, 363)=91 - KINDEX(1, 364)=41 - KINDEX(2, 364)=91 - KINDEX(1, 365)=3 - KINDEX(2, 365)=92 - KINDEX(1, 366)=4 - KINDEX(2, 366)=92 - KINDEX(1, 367)=15 - KINDEX(2, 367)=92 - KINDEX(1, 368)=22 - KINDEX(2, 368)=92 - KINDEX(1, 369)=23 - KINDEX(2, 369)=92 - KINDEX(1, 370)=24 - KINDEX(2, 370)=92 - KINDEX(1, 371)=34 - KINDEX(2, 371)=92 - KINDEX(1, 372)=3 - KINDEX(2, 372)=93 - KINDEX(1, 373)=4 - KINDEX(2, 373)=93 - KINDEX(1, 374)=15 - KINDEX(2, 374)=93 - KINDEX(1, 375)=19 - KINDEX(2, 375)=93 - KINDEX(1, 376)=22 - KINDEX(2, 376)=93 - KINDEX(1, 377)=23 - KINDEX(2, 377)=93 - KINDEX(1, 378)=24 - KINDEX(2, 378)=93 - KINDEX(1, 379)=25 - KINDEX(2, 379)=93 - KINDEX(1, 380)=26 - KINDEX(2, 380)=93 - KINDEX(1, 381)=35 - KINDEX(2, 381)=93 - KINDEX(1, 382)=3 - KINDEX(2, 382)=94 - KINDEX(1, 383)=4 - KINDEX(2, 383)=94 - KINDEX(1, 384)=15 - KINDEX(2, 384)=94 - KINDEX(1, 385)=25 - KINDEX(2, 385)=94 - KINDEX(1, 386)=26 - KINDEX(2, 386)=94 - KINDEX(1, 387)=38 - KINDEX(2, 387)=94 - KINDEX(1, 388)=3 - KINDEX(2, 388)=95 - KINDEX(1, 389)=4 - KINDEX(2, 389)=95 - KINDEX(1, 390)=15 - KINDEX(2, 390)=95 - KINDEX(1, 391)=22 - KINDEX(2, 391)=95 - KINDEX(1, 392)=23 - KINDEX(2, 392)=95 - KINDEX(1, 393)=25 - KINDEX(2, 393)=95 - KINDEX(1, 394)=32 - KINDEX(2, 394)=95 - KINDEX(1, 395)=39 - KINDEX(2, 395)=95 - KINDEX(1, 396)=41 - KINDEX(2, 396)=95 - KINDEX(1, 397)=3 - KINDEX(2, 397)=96 - KINDEX(1, 398)=4 - KINDEX(2, 398)=96 + KINDEX(1, 223)=15 + KINDEX(2, 223)=71 + KINDEX(1, 224)=31 + KINDEX(2, 224)=71 + KINDEX(1, 225)=85 + KINDEX(2, 225)=71 + KINDEX(1, 226)=31 + KINDEX(2, 226)=72 + KINDEX(1, 227)=85 + KINDEX(2, 227)=72 + KINDEX(1, 228)=87 + KINDEX(2, 228)=72 + KINDEX(1, 229)=5 + KINDEX(2, 229)=73 + KINDEX(1, 230)=8 + KINDEX(2, 230)=73 + KINDEX(1, 231)=24 + KINDEX(2, 231)=73 + KINDEX(1, 232)=10 + KINDEX(2, 232)=74 + KINDEX(1, 233)=15 + KINDEX(2, 233)=74 + KINDEX(1, 234)=24 + KINDEX(2, 234)=74 + KINDEX(1, 235)=85 + KINDEX(2, 235)=74 + KINDEX(1, 236)=15 + KINDEX(2, 236)=75 + KINDEX(1, 237)=18 + KINDEX(2, 237)=75 + KINDEX(1, 238)=85 + KINDEX(2, 238)=75 + KINDEX(1, 239)=8 + KINDEX(2, 239)=76 + KINDEX(1, 240)=18 + KINDEX(2, 240)=76 + KINDEX(1, 241)=85 + KINDEX(2, 241)=76 + KINDEX(1, 242)=3 + KINDEX(2, 242)=77 + KINDEX(1, 243)=10 + KINDEX(2, 243)=77 + KINDEX(1, 244)=11 + KINDEX(2, 244)=77 + KINDEX(1, 245)=15 + KINDEX(2, 245)=77 + KINDEX(1, 246)=18 + KINDEX(2, 246)=77 + KINDEX(1, 247)=20 + KINDEX(2, 247)=77 + KINDEX(1, 248)=28 + KINDEX(2, 248)=77 + KINDEX(1, 249)=45 + KINDEX(2, 249)=77 + KINDEX(1, 250)=69 + KINDEX(2, 250)=77 + KINDEX(1, 251)=85 + KINDEX(2, 251)=77 + KINDEX(1, 252)=18 + KINDEX(2, 252)=78 + KINDEX(1, 253)=20 + KINDEX(2, 253)=78 + KINDEX(1, 254)=69 + KINDEX(2, 254)=78 + KINDEX(1, 255)=85 + KINDEX(2, 255)=78 + KINDEX(1, 256)=15 + KINDEX(2, 256)=79 + KINDEX(1, 257)=20 + KINDEX(2, 257)=79 + KINDEX(1, 258)=85 + KINDEX(2, 258)=79 + KINDEX(1, 259)=10 + KINDEX(2, 259)=80 + KINDEX(1, 260)=15 + KINDEX(2, 260)=80 + KINDEX(1, 261)=23 + KINDEX(2, 261)=80 + KINDEX(1, 262)=24 + KINDEX(2, 262)=80 + KINDEX(1, 263)=85 + KINDEX(2, 263)=80 + KINDEX(1, 264)=10 + KINDEX(2, 264)=81 + KINDEX(1, 265)=15 + KINDEX(2, 265)=81 + KINDEX(1, 266)=22 + KINDEX(2, 266)=81 + KINDEX(1, 267)=24 + KINDEX(2, 267)=81 + KINDEX(1, 268)=3 + KINDEX(2, 268)=82 + KINDEX(1, 269)=5 + KINDEX(2, 269)=82 + KINDEX(1, 270)=8 + KINDEX(2, 270)=82 + KINDEX(1, 271)=25 + KINDEX(2, 271)=82 + KINDEX(1, 272)=26 + KINDEX(2, 272)=82 + KINDEX(1, 273)=3 + KINDEX(2, 273)=83 + KINDEX(1, 274)=10 + KINDEX(2, 274)=83 + KINDEX(1, 275)=15 + KINDEX(2, 275)=83 + KINDEX(1, 276)=25 + KINDEX(2, 276)=83 + KINDEX(1, 277)=26 + KINDEX(2, 277)=83 + KINDEX(1, 278)=75 + KINDEX(2, 278)=83 + KINDEX(1, 279)=85 + KINDEX(2, 279)=83 + KINDEX(1, 280)=10 + KINDEX(2, 280)=84 + KINDEX(1, 281)=15 + KINDEX(2, 281)=84 + KINDEX(1, 282)=26 + KINDEX(2, 282)=84 + KINDEX(1, 283)=60 + KINDEX(2, 283)=84 + KINDEX(1, 284)=85 + KINDEX(2, 284)=84 + KINDEX(1, 285)=15 + KINDEX(2, 285)=85 + KINDEX(1, 286)=36 + KINDEX(2, 286)=85 + KINDEX(1, 287)=85 + KINDEX(2, 287)=85 + KINDEX(1, 288)=8 + KINDEX(2, 288)=86 + KINDEX(1, 289)=36 + KINDEX(2, 289)=86 + KINDEX(1, 290)=85 + KINDEX(2, 290)=86 + KINDEX(1, 291)=3 + KINDEX(2, 291)=87 + KINDEX(1, 292)=10 + KINDEX(2, 292)=87 + KINDEX(1, 293)=11 + KINDEX(2, 293)=87 + KINDEX(1, 294)=12 + KINDEX(2, 294)=87 + KINDEX(1, 295)=15 + KINDEX(2, 295)=87 + KINDEX(1, 296)=36 + KINDEX(2, 296)=87 + KINDEX(1, 297)=53 + KINDEX(2, 297)=87 + KINDEX(1, 298)=57 + KINDEX(2, 298)=87 + KINDEX(1, 299)=85 + KINDEX(2, 299)=87 + KINDEX(1, 300)=36 + KINDEX(2, 300)=88 + KINDEX(1, 301)=68 + KINDEX(2, 301)=88 + KINDEX(1, 302)=15 + KINDEX(2, 302)=89 + KINDEX(1, 303)=37 + KINDEX(2, 303)=89 + KINDEX(1, 304)=85 + KINDEX(2, 304)=89 + KINDEX(1, 305)=8 + KINDEX(2, 305)=90 + KINDEX(1, 306)=37 + KINDEX(2, 306)=90 + KINDEX(1, 307)=85 + KINDEX(2, 307)=90 + KINDEX(1, 308)=3 + KINDEX(2, 308)=91 + KINDEX(1, 309)=11 + KINDEX(2, 309)=91 + KINDEX(1, 310)=12 + KINDEX(2, 310)=91 + KINDEX(1, 311)=15 + KINDEX(2, 311)=91 + KINDEX(1, 312)=37 + KINDEX(2, 312)=91 + KINDEX(1, 313)=54 + KINDEX(2, 313)=91 + KINDEX(1, 314)=56 + KINDEX(2, 314)=91 + KINDEX(1, 315)=85 + KINDEX(2, 315)=91 + KINDEX(1, 316)=37 + KINDEX(2, 316)=92 + KINDEX(1, 317)=10 + KINDEX(2, 317)=93 + KINDEX(1, 318)=15 + KINDEX(2, 318)=93 + KINDEX(1, 319)=27 + KINDEX(2, 319)=93 + KINDEX(1, 320)=64 + KINDEX(2, 320)=93 + KINDEX(1, 321)=85 + KINDEX(2, 321)=93 + KINDEX(1, 322)=15 + KINDEX(2, 322)=94 + KINDEX(1, 323)=21 + KINDEX(2, 323)=94 + KINDEX(1, 324)=85 + KINDEX(2, 324)=94 + KINDEX(1, 325)=10 + KINDEX(2, 325)=95 + KINDEX(1, 326)=85 + KINDEX(2, 326)=95 + KINDEX(1, 327)=1 + KINDEX(2, 327)=96 + KINDEX(1, 328)=85 + KINDEX(2, 328)=96 + KINDEX(1, 329)=85 + KINDEX(2, 329)=97 + KINDEX(1, 330)=85 + KINDEX(2, 330)=98 + KINDEX(1, 331)=85 + KINDEX(2, 331)=99 + KINDEX(1, 332)=85 + KINDEX(2, 332)=100 + KINDEX(1, 333)=85 + KINDEX(2, 333)=101 + KINDEX(1, 334)=85 + KINDEX(2, 334)=102 + KINDEX(1, 335)=85 + KINDEX(2, 335)=103 + KINDEX(1, 336)=2 + KINDEX(2, 336)=104 + KINDEX(1, 337)=61 + KINDEX(2, 337)=104 + KINDEX(1, 338)=2 + KINDEX(2, 338)=105 + KINDEX(1, 339)=61 + KINDEX(2, 339)=105 + KINDEX(1, 340)=2 + KINDEX(2, 340)=106 + KINDEX(1, 341)=2 + KINDEX(2, 341)=107 + KINDEX(1, 342)=2 + KINDEX(2, 342)=108 + KINDEX(1, 343)=70 + KINDEX(2, 343)=108 + KINDEX(1, 344)=2 + KINDEX(2, 344)=109 + KINDEX(1, 345)=60 + KINDEX(2, 345)=109 + KINDEX(1, 346)=2 + KINDEX(2, 346)=110 + KINDEX(1, 347)=64 + KINDEX(2, 347)=110 + KINDEX(1, 348)=1 + KINDEX(2, 348)=111 + KINDEX(1, 349)=2 + KINDEX(2, 349)=111 + KINDEX(1, 350)=10 + KINDEX(2, 350)=111 + KINDEX(1, 351)=28 + KINDEX(2, 351)=111 + KINDEX(1, 352)=86 + KINDEX(2, 352)=111 + KINDEX(1, 353)=10 + KINDEX(2, 353)=112 + KINDEX(1, 354)=28 + KINDEX(2, 354)=112 + KINDEX(1, 355)=85 + KINDEX(2, 355)=112 + KINDEX(1, 356)=86 + KINDEX(2, 356)=112 + KINDEX(1, 357)=10 + KINDEX(2, 357)=113 + KINDEX(1, 358)=15 + KINDEX(2, 358)=113 + KINDEX(1, 359)=28 + KINDEX(2, 359)=113 + KINDEX(1, 360)=86 + KINDEX(2, 360)=113 + KINDEX(1, 361)=1 + KINDEX(2, 361)=114 + KINDEX(1, 362)=2 + KINDEX(2, 362)=114 + KINDEX(1, 363)=10 + KINDEX(2, 363)=114 + KINDEX(1, 364)=28 + KINDEX(2, 364)=114 + KINDEX(1, 365)=29 + KINDEX(2, 365)=114 + KINDEX(1, 366)=10 + KINDEX(2, 366)=115 + KINDEX(1, 367)=28 + KINDEX(2, 367)=115 + KINDEX(1, 368)=29 + KINDEX(2, 368)=115 + KINDEX(1, 369)=85 + KINDEX(2, 369)=115 + KINDEX(1, 370)=10 + KINDEX(2, 370)=116 + KINDEX(1, 371)=15 + KINDEX(2, 371)=116 + KINDEX(1, 372)=28 + KINDEX(2, 372)=116 + KINDEX(1, 373)=29 + KINDEX(2, 373)=116 + KINDEX(1, 374)=1 + KINDEX(2, 374)=117 + KINDEX(1, 375)=2 + KINDEX(2, 375)=117 + KINDEX(1, 376)=28 + KINDEX(2, 376)=117 + KINDEX(1, 377)=29 + KINDEX(2, 377)=117 + KINDEX(1, 378)=2 + KINDEX(2, 378)=118 + KINDEX(1, 379)=10 + KINDEX(2, 379)=118 + KINDEX(1, 380)=28 + KINDEX(2, 380)=118 + KINDEX(1, 381)=29 + KINDEX(2, 381)=118 + KINDEX(1, 382)=85 + KINDEX(2, 382)=118 + KINDEX(1, 383)=2 + KINDEX(2, 383)=119 + KINDEX(1, 384)=10 + KINDEX(2, 384)=119 + KINDEX(1, 385)=15 + KINDEX(2, 385)=119 + KINDEX(1, 386)=28 + KINDEX(2, 386)=119 + KINDEX(1, 387)=29 + KINDEX(2, 387)=119 + KINDEX(1, 388)=1 + KINDEX(2, 388)=120 + KINDEX(1, 389)=2 + KINDEX(2, 389)=120 + KINDEX(1, 390)=10 + KINDEX(2, 390)=120 + KINDEX(1, 391)=11 + KINDEX(2, 391)=120 + KINDEX(1, 392)=28 + KINDEX(2, 392)=120 + KINDEX(1, 393)=10 + KINDEX(2, 393)=121 + KINDEX(1, 394)=11 + KINDEX(2, 394)=121 + KINDEX(1, 395)=28 + KINDEX(2, 395)=121 + KINDEX(1, 396)=85 + KINDEX(2, 396)=121 + KINDEX(1, 397)=10 + KINDEX(2, 397)=122 + KINDEX(1, 398)=11 + KINDEX(2, 398)=122 KINDEX(1, 399)=15 - KINDEX(2, 399)=96 - KINDEX(1, 400)=22 - KINDEX(2, 400)=96 - KINDEX(1, 401)=23 - KINDEX(2, 401)=96 - KINDEX(1, 402)=24 - KINDEX(2, 402)=96 - KINDEX(1, 403)=26 - KINDEX(2, 403)=96 - KINDEX(1, 404)=40 - KINDEX(2, 404)=96 - KINDEX(1, 405)=15 - KINDEX(2, 405)=97 - KINDEX(1, 406)=28 - KINDEX(2, 406)=97 - KINDEX(1, 407)=32 - KINDEX(2, 407)=97 - KINDEX(1, 408)=15 - KINDEX(2, 408)=98 - KINDEX(1, 409)=29 - KINDEX(2, 409)=98 - KINDEX(1, 410)=33 - KINDEX(2, 410)=98 - KINDEX(1, 411)=15 - KINDEX(2, 411)=99 - KINDEX(1, 412)=29 - KINDEX(2, 412)=99 - KINDEX(1, 413)=34 - KINDEX(2, 413)=99 - KINDEX(1, 414)=15 - KINDEX(2, 414)=100 - KINDEX(1, 415)=29 - KINDEX(2, 415)=100 - KINDEX(1, 416)=35 - KINDEX(2, 416)=100 - KINDEX(1, 417)=15 - KINDEX(2, 417)=101 - KINDEX(1, 418)=29 - KINDEX(2, 418)=101 - KINDEX(1, 419)=38 - KINDEX(2, 419)=101 - KINDEX(1, 420)=1 - KINDEX(2, 420)=102 - KINDEX(1, 421)=15 - KINDEX(2, 421)=102 - KINDEX(1, 422)=29 - KINDEX(2, 422)=102 - KINDEX(1, 423)=31 - KINDEX(2, 423)=102 - KINDEX(1, 424)=39 - KINDEX(2, 424)=102 - KINDEX(1, 425)=15 - KINDEX(2, 425)=103 - KINDEX(1, 426)=26 - KINDEX(2, 426)=103 - KINDEX(1, 427)=40 - KINDEX(2, 427)=103 - KINDEX(1, 428)=15 - KINDEX(2, 428)=104 - KINDEX(1, 429)=22 - KINDEX(2, 429)=104 - KINDEX(1, 430)=32 - KINDEX(2, 430)=104 - KINDEX(1, 431)=15 - KINDEX(2, 431)=105 - KINDEX(1, 432)=22 - KINDEX(2, 432)=105 - KINDEX(1, 433)=23 - KINDEX(2, 433)=105 - KINDEX(1, 434)=24 - KINDEX(2, 434)=105 - KINDEX(1, 435)=25 - KINDEX(2, 435)=105 - KINDEX(1, 436)=32 - KINDEX(2, 436)=105 - KINDEX(1, 437)=33 - KINDEX(2, 437)=105 - KINDEX(1, 438)=41 - KINDEX(2, 438)=105 - KINDEX(1, 439)=15 - KINDEX(2, 439)=106 - KINDEX(1, 440)=22 - KINDEX(2, 440)=106 - KINDEX(1, 441)=23 - KINDEX(2, 441)=106 - KINDEX(1, 442)=24 - KINDEX(2, 442)=106 - KINDEX(1, 443)=32 - KINDEX(2, 443)=106 - KINDEX(1, 444)=34 - KINDEX(2, 444)=106 - KINDEX(1, 445)=15 - KINDEX(2, 445)=107 - KINDEX(1, 446)=19 - KINDEX(2, 446)=107 - KINDEX(1, 447)=22 - KINDEX(2, 447)=107 - KINDEX(1, 448)=23 - KINDEX(2, 448)=107 - KINDEX(1, 449)=24 - KINDEX(2, 449)=107 - KINDEX(1, 450)=25 - KINDEX(2, 450)=107 - KINDEX(1, 451)=32 - KINDEX(2, 451)=107 - KINDEX(1, 452)=35 - KINDEX(2, 452)=107 - KINDEX(1, 453)=15 - KINDEX(2, 453)=108 - KINDEX(1, 454)=22 - KINDEX(2, 454)=108 - KINDEX(1, 455)=25 - KINDEX(2, 455)=108 - KINDEX(1, 456)=32 - KINDEX(2, 456)=108 - KINDEX(1, 457)=38 - KINDEX(2, 457)=108 - KINDEX(1, 458)=15 - KINDEX(2, 458)=109 - KINDEX(1, 459)=22 - KINDEX(2, 459)=109 - KINDEX(1, 460)=23 - KINDEX(2, 460)=109 - KINDEX(1, 461)=25 - KINDEX(2, 461)=109 - KINDEX(1, 462)=31 - KINDEX(2, 462)=109 - KINDEX(1, 463)=32 - KINDEX(2, 463)=109 - KINDEX(1, 464)=39 - KINDEX(2, 464)=109 - KINDEX(1, 465)=41 - KINDEX(2, 465)=109 - KINDEX(1, 466)=4 - KINDEX(2, 466)=110 - KINDEX(1, 467)=15 - KINDEX(2, 467)=110 - KINDEX(1, 468)=22 - KINDEX(2, 468)=110 - KINDEX(1, 469)=23 - KINDEX(2, 469)=110 - KINDEX(1, 470)=24 - KINDEX(2, 470)=110 - KINDEX(1, 471)=26 - KINDEX(2, 471)=110 - KINDEX(1, 472)=32 - KINDEX(2, 472)=110 - KINDEX(1, 473)=40 - KINDEX(2, 473)=110 - KINDEX(1, 474)=15 - KINDEX(2, 474)=111 - KINDEX(1, 475)=22 - KINDEX(2, 475)=111 - KINDEX(1, 476)=23 - KINDEX(2, 476)=111 - KINDEX(1, 477)=24 - KINDEX(2, 477)=111 - KINDEX(1, 478)=25 - KINDEX(2, 478)=111 - KINDEX(1, 479)=31 - KINDEX(2, 479)=111 - KINDEX(1, 480)=32 - KINDEX(2, 480)=111 - KINDEX(1, 481)=33 - KINDEX(2, 481)=111 - KINDEX(1, 482)=39 - KINDEX(2, 482)=111 - KINDEX(1, 483)=41 - KINDEX(2, 483)=111 - KINDEX(1, 484)=15 - KINDEX(2, 484)=112 - KINDEX(1, 485)=22 - KINDEX(2, 485)=112 - KINDEX(1, 486)=23 - KINDEX(2, 486)=112 - KINDEX(1, 487)=24 - KINDEX(2, 487)=112 - KINDEX(1, 488)=31 - KINDEX(2, 488)=112 - KINDEX(1, 489)=32 - KINDEX(2, 489)=112 - KINDEX(1, 490)=34 - KINDEX(2, 490)=112 + KINDEX(2, 399)=122 + KINDEX(1, 400)=28 + KINDEX(2, 400)=122 + KINDEX(1, 401)=1 + KINDEX(2, 401)=123 + KINDEX(1, 402)=2 + KINDEX(2, 402)=123 + KINDEX(1, 403)=10 + KINDEX(2, 403)=123 + KINDEX(1, 404)=19 + KINDEX(2, 404)=123 + KINDEX(1, 405)=29 + KINDEX(2, 405)=123 + KINDEX(1, 406)=87 + KINDEX(2, 406)=123 + KINDEX(1, 407)=10 + KINDEX(2, 407)=124 + KINDEX(1, 408)=29 + KINDEX(2, 408)=124 + KINDEX(1, 409)=85 + KINDEX(2, 409)=124 + KINDEX(1, 410)=87 + KINDEX(2, 410)=124 + KINDEX(1, 411)=10 + KINDEX(2, 411)=125 + KINDEX(1, 412)=15 + KINDEX(2, 412)=125 + KINDEX(1, 413)=29 + KINDEX(2, 413)=125 + KINDEX(1, 414)=87 + KINDEX(2, 414)=125 + KINDEX(1, 415)=1 + KINDEX(2, 415)=126 + KINDEX(1, 416)=2 + KINDEX(2, 416)=126 + KINDEX(1, 417)=85 + KINDEX(2, 417)=126 + KINDEX(1, 418)=87 + KINDEX(2, 418)=126 + KINDEX(1, 419)=2 + KINDEX(2, 419)=127 + KINDEX(1, 420)=77 + KINDEX(2, 420)=127 + KINDEX(1, 421)=2 + KINDEX(2, 421)=128 + KINDEX(1, 422)=78 + KINDEX(2, 422)=128 + KINDEX(1, 423)=2 + KINDEX(2, 423)=129 + KINDEX(1, 424)=79 + KINDEX(2, 424)=129 + KINDEX(1, 425)=2 + KINDEX(2, 425)=130 + KINDEX(1, 426)=80 + KINDEX(2, 426)=130 + KINDEX(1, 427)=2 + KINDEX(2, 427)=131 + KINDEX(1, 428)=76 + KINDEX(2, 428)=131 + KINDEX(1, 429)=2 + KINDEX(2, 429)=132 + KINDEX(1, 430)=81 + KINDEX(2, 430)=132 + KINDEX(1, 431)=2 + KINDEX(2, 431)=133 + KINDEX(1, 432)=82 + KINDEX(2, 432)=133 + KINDEX(1, 433)=2 + KINDEX(2, 433)=134 + KINDEX(1, 434)=76 + KINDEX(2, 434)=134 + KINDEX(1, 435)=2 + KINDEX(2, 435)=135 + KINDEX(1, 436)=84 + KINDEX(2, 436)=135 + KINDEX(1, 437)=2 + KINDEX(2, 437)=136 + KINDEX(1, 438)=77 + KINDEX(2, 438)=136 + KINDEX(1, 439)=85 + KINDEX(2, 439)=136 + KINDEX(1, 440)=2 + KINDEX(2, 440)=137 + KINDEX(1, 441)=78 + KINDEX(2, 441)=137 + KINDEX(1, 442)=85 + KINDEX(2, 442)=137 + KINDEX(1, 443)=2 + KINDEX(2, 443)=138 + KINDEX(1, 444)=79 + KINDEX(2, 444)=138 + KINDEX(1, 445)=85 + KINDEX(2, 445)=138 + KINDEX(1, 446)=2 + KINDEX(2, 446)=139 + KINDEX(1, 447)=84 + KINDEX(2, 447)=139 + KINDEX(1, 448)=85 + KINDEX(2, 448)=139 + KINDEX(1, 449)=2 + KINDEX(2, 449)=140 + KINDEX(1, 450)=76 + KINDEX(2, 450)=140 + KINDEX(1, 451)=85 + KINDEX(2, 451)=140 + KINDEX(1, 452)=2 + KINDEX(2, 452)=141 + KINDEX(1, 453)=81 + KINDEX(2, 453)=141 + KINDEX(1, 454)=85 + KINDEX(2, 454)=141 + KINDEX(1, 455)=2 + KINDEX(2, 455)=142 + KINDEX(1, 456)=80 + KINDEX(2, 456)=142 + KINDEX(1, 457)=85 + KINDEX(2, 457)=142 + KINDEX(1, 458)=3 + KINDEX(2, 458)=143 + KINDEX(1, 459)=10 + KINDEX(2, 459)=143 + KINDEX(1, 460)=44 + KINDEX(2, 460)=143 + KINDEX(1, 461)=45 + KINDEX(2, 461)=143 + KINDEX(1, 462)=85 + KINDEX(2, 462)=144 + KINDEX(1, 463)=87 + KINDEX(2, 463)=144 + KINDEX(1, 464)=1 + KINDEX(2, 464)=145 + KINDEX(1, 465)=2 + KINDEX(2, 465)=145 + KINDEX(1, 466)=29 + KINDEX(2, 466)=145 + KINDEX(1, 467)=85 + KINDEX(2, 467)=145 + KINDEX(1, 468)=29 + KINDEX(2, 468)=146 + KINDEX(1, 469)=85 + KINDEX(2, 469)=146 + KINDEX(1, 470)=10 + KINDEX(2, 470)=147 + KINDEX(1, 471)=15 + KINDEX(2, 471)=147 + KINDEX(1, 472)=29 + KINDEX(2, 472)=147 + KINDEX(1, 473)=85 + KINDEX(2, 473)=147 + KINDEX(1, 474)=1 + KINDEX(2, 474)=148 + KINDEX(1, 475)=2 + KINDEX(2, 475)=148 + KINDEX(1, 476)=85 + KINDEX(2, 476)=148 + KINDEX(1, 477)=86 + KINDEX(2, 477)=148 + KINDEX(1, 478)=3 + KINDEX(2, 478)=149 + KINDEX(1, 479)=10 + KINDEX(2, 479)=149 + KINDEX(1, 480)=44 + KINDEX(2, 480)=149 + KINDEX(1, 481)=85 + KINDEX(2, 481)=150 + KINDEX(1, 482)=86 + KINDEX(2, 482)=150 + KINDEX(1, 483)=1 + KINDEX(2, 483)=151 + KINDEX(1, 484)=2 + KINDEX(2, 484)=151 + KINDEX(1, 485)=10 + KINDEX(2, 485)=151 + KINDEX(1, 486)=17 + KINDEX(2, 486)=151 + KINDEX(1, 487)=28 + KINDEX(2, 487)=151 + KINDEX(1, 488)=39 + KINDEX(2, 488)=151 + KINDEX(1, 489)=10 + KINDEX(2, 489)=152 + KINDEX(1, 490)=28 + KINDEX(2, 490)=152 KINDEX(1, 491)=39 - KINDEX(2, 491)=112 - KINDEX(1, 492)=15 - KINDEX(2, 492)=113 - KINDEX(1, 493)=19 - KINDEX(2, 493)=113 - KINDEX(1, 494)=22 - KINDEX(2, 494)=113 - KINDEX(1, 495)=23 - KINDEX(2, 495)=113 - KINDEX(1, 496)=24 - KINDEX(2, 496)=113 - KINDEX(1, 497)=25 - KINDEX(2, 497)=113 - KINDEX(1, 498)=31 - KINDEX(2, 498)=113 - KINDEX(1, 499)=32 - KINDEX(2, 499)=113 - KINDEX(1, 500)=35 - KINDEX(2, 500)=113 - KINDEX(1, 501)=39 - KINDEX(2, 501)=113 - KINDEX(1, 502)=15 - KINDEX(2, 502)=114 - KINDEX(1, 503)=25 - KINDEX(2, 503)=114 - KINDEX(1, 504)=32 - KINDEX(2, 504)=114 - KINDEX(1, 505)=38 - KINDEX(2, 505)=114 - KINDEX(1, 506)=39 - KINDEX(2, 506)=114 + KINDEX(2, 491)=152 + KINDEX(1, 492)=85 + KINDEX(2, 492)=152 + KINDEX(1, 493)=10 + KINDEX(2, 493)=153 + KINDEX(1, 494)=15 + KINDEX(2, 494)=153 + KINDEX(1, 495)=28 + KINDEX(2, 495)=153 + KINDEX(1, 496)=39 + KINDEX(2, 496)=153 + KINDEX(1, 497)=1 + KINDEX(2, 497)=154 + KINDEX(1, 498)=2 + KINDEX(2, 498)=154 + KINDEX(1, 499)=10 + KINDEX(2, 499)=154 + KINDEX(1, 500)=28 + KINDEX(2, 500)=154 + KINDEX(1, 501)=40 + KINDEX(2, 501)=154 + KINDEX(1, 502)=10 + KINDEX(2, 502)=155 + KINDEX(1, 503)=28 + KINDEX(2, 503)=155 + KINDEX(1, 504)=40 + KINDEX(2, 504)=155 + KINDEX(1, 505)=85 + KINDEX(2, 505)=155 + KINDEX(1, 506)=10 + KINDEX(2, 506)=156 KINDEX(1, 507)=15 - KINDEX(2, 507)=115 - KINDEX(1, 508)=22 - KINDEX(2, 508)=115 - KINDEX(1, 509)=23 - KINDEX(2, 509)=115 - KINDEX(1, 510)=24 - KINDEX(2, 510)=115 - KINDEX(1, 511)=25 - KINDEX(2, 511)=115 - KINDEX(1, 512)=31 - KINDEX(2, 512)=115 - KINDEX(1, 513)=32 - KINDEX(2, 513)=115 - KINDEX(1, 514)=39 - KINDEX(2, 514)=115 - KINDEX(1, 515)=41 - KINDEX(2, 515)=115 - KINDEX(1, 516)=4 - KINDEX(2, 516)=116 - KINDEX(1, 517)=15 - KINDEX(2, 517)=116 - KINDEX(1, 518)=22 - KINDEX(2, 518)=116 - KINDEX(1, 519)=23 - KINDEX(2, 519)=116 - KINDEX(1, 520)=24 - KINDEX(2, 520)=116 - KINDEX(1, 521)=26 - KINDEX(2, 521)=116 - KINDEX(1, 522)=31 - KINDEX(2, 522)=116 - KINDEX(1, 523)=32 - KINDEX(2, 523)=116 - KINDEX(1, 524)=39 - KINDEX(2, 524)=116 - KINDEX(1, 525)=40 - KINDEX(2, 525)=116 - KINDEX(1, 526)=15 - KINDEX(2, 526)=117 - KINDEX(1, 527)=26 - KINDEX(2, 527)=117 - KINDEX(1, 528)=40 - KINDEX(2, 528)=117 - KINDEX(1, 529)=4 - KINDEX(2, 529)=118 - KINDEX(1, 530)=15 - KINDEX(2, 530)=118 - KINDEX(1, 531)=22 - KINDEX(2, 531)=118 - KINDEX(1, 532)=23 - KINDEX(2, 532)=118 - KINDEX(1, 533)=24 - KINDEX(2, 533)=118 - KINDEX(1, 534)=26 - KINDEX(2, 534)=118 + KINDEX(2, 507)=156 + KINDEX(1, 508)=28 + KINDEX(2, 508)=156 + KINDEX(1, 509)=40 + KINDEX(2, 509)=156 + KINDEX(1, 510)=1 + KINDEX(2, 510)=157 + KINDEX(1, 511)=2 + KINDEX(2, 511)=157 + KINDEX(1, 512)=28 + KINDEX(2, 512)=157 + KINDEX(1, 513)=39 + KINDEX(2, 513)=157 + KINDEX(1, 514)=2 + KINDEX(2, 514)=158 + KINDEX(1, 515)=28 + KINDEX(2, 515)=158 + KINDEX(1, 516)=39 + KINDEX(2, 516)=158 + KINDEX(1, 517)=85 + KINDEX(2, 517)=158 + KINDEX(1, 518)=2 + KINDEX(2, 518)=159 + KINDEX(1, 519)=10 + KINDEX(2, 519)=159 + KINDEX(1, 520)=15 + KINDEX(2, 520)=159 + KINDEX(1, 521)=28 + KINDEX(2, 521)=159 + KINDEX(1, 522)=39 + KINDEX(2, 522)=159 + KINDEX(1, 523)=1 + KINDEX(2, 523)=160 + KINDEX(1, 524)=2 + KINDEX(2, 524)=160 + KINDEX(1, 525)=28 + KINDEX(2, 525)=160 + KINDEX(1, 526)=40 + KINDEX(2, 526)=160 + KINDEX(1, 527)=2 + KINDEX(2, 527)=161 + KINDEX(1, 528)=28 + KINDEX(2, 528)=161 + KINDEX(1, 529)=40 + KINDEX(2, 529)=161 + KINDEX(1, 530)=85 + KINDEX(2, 530)=161 + KINDEX(1, 531)=2 + KINDEX(2, 531)=162 + KINDEX(1, 532)=10 + KINDEX(2, 532)=162 + KINDEX(1, 533)=15 + KINDEX(2, 533)=162 + KINDEX(1, 534)=28 + KINDEX(2, 534)=162 KINDEX(1, 535)=40 - KINDEX(2, 535)=118 - KINDEX(1, 536)=4 - KINDEX(2, 536)=119 - KINDEX(1, 537)=5 - KINDEX(2, 537)=119 - KINDEX(1, 538)=15 - KINDEX(2, 538)=119 - KINDEX(1, 539)=22 - KINDEX(2, 539)=119 - KINDEX(1, 540)=32 - KINDEX(2, 540)=119 - KINDEX(1, 541)=4 - KINDEX(2, 541)=120 - KINDEX(1, 542)=5 - KINDEX(2, 542)=120 + KINDEX(2, 535)=162 + KINDEX(1, 536)=1 + KINDEX(2, 536)=163 + KINDEX(1, 537)=2 + KINDEX(2, 537)=163 + KINDEX(1, 538)=28 + KINDEX(2, 538)=163 + KINDEX(1, 539)=85 + KINDEX(2, 539)=163 + KINDEX(1, 540)=28 + KINDEX(2, 540)=164 + KINDEX(1, 541)=85 + KINDEX(2, 541)=164 + KINDEX(1, 542)=10 + KINDEX(2, 542)=165 KINDEX(1, 543)=15 - KINDEX(2, 543)=120 - KINDEX(1, 544)=22 - KINDEX(2, 544)=120 - KINDEX(1, 545)=23 - KINDEX(2, 545)=120 - KINDEX(1, 546)=24 - KINDEX(2, 546)=120 - KINDEX(1, 547)=25 - KINDEX(2, 547)=120 - KINDEX(1, 548)=32 - KINDEX(2, 548)=120 - KINDEX(1, 549)=33 - KINDEX(2, 549)=120 - KINDEX(1, 550)=41 - KINDEX(2, 550)=120 - KINDEX(1, 551)=4 - KINDEX(2, 551)=121 - KINDEX(1, 552)=5 - KINDEX(2, 552)=121 - KINDEX(1, 553)=15 - KINDEX(2, 553)=121 - KINDEX(1, 554)=22 - KINDEX(2, 554)=121 - KINDEX(1, 555)=23 - KINDEX(2, 555)=121 - KINDEX(1, 556)=24 - KINDEX(2, 556)=121 - KINDEX(1, 557)=34 - KINDEX(2, 557)=121 - KINDEX(1, 558)=4 - KINDEX(2, 558)=122 - KINDEX(1, 559)=5 - KINDEX(2, 559)=122 + KINDEX(2, 543)=165 + KINDEX(1, 544)=28 + KINDEX(2, 544)=165 + KINDEX(1, 545)=85 + KINDEX(2, 545)=165 + KINDEX(1, 546)=1 + KINDEX(2, 546)=166 + KINDEX(1, 547)=2 + KINDEX(2, 547)=166 + KINDEX(1, 548)=85 + KINDEX(2, 548)=166 + KINDEX(1, 549)=3 + KINDEX(2, 549)=167 + KINDEX(1, 550)=10 + KINDEX(2, 550)=167 + KINDEX(1, 551)=17 + KINDEX(2, 551)=167 + KINDEX(1, 552)=44 + KINDEX(2, 552)=167 + KINDEX(1, 553)=85 + KINDEX(2, 553)=168 + KINDEX(1, 554)=1 + KINDEX(2, 554)=169 + KINDEX(1, 555)=2 + KINDEX(2, 555)=169 + KINDEX(1, 556)=17 + KINDEX(2, 556)=169 + KINDEX(1, 557)=85 + KINDEX(2, 557)=169 + KINDEX(1, 558)=85 + KINDEX(2, 558)=170 + KINDEX(1, 559)=10 + KINDEX(2, 559)=171 KINDEX(1, 560)=15 - KINDEX(2, 560)=122 - KINDEX(1, 561)=19 - KINDEX(2, 561)=122 - KINDEX(1, 562)=22 - KINDEX(2, 562)=122 - KINDEX(1, 563)=23 - KINDEX(2, 563)=122 - KINDEX(1, 564)=24 - KINDEX(2, 564)=122 - KINDEX(1, 565)=25 - KINDEX(2, 565)=122 - KINDEX(1, 566)=35 - KINDEX(2, 566)=122 - KINDEX(1, 567)=4 - KINDEX(2, 567)=123 - KINDEX(1, 568)=5 - KINDEX(2, 568)=123 - KINDEX(1, 569)=15 - KINDEX(2, 569)=123 - KINDEX(1, 570)=25 - KINDEX(2, 570)=123 - KINDEX(1, 571)=38 - KINDEX(2, 571)=123 - KINDEX(1, 572)=4 - KINDEX(2, 572)=124 - KINDEX(1, 573)=5 - KINDEX(2, 573)=124 - KINDEX(1, 574)=15 - KINDEX(2, 574)=124 - KINDEX(1, 575)=22 - KINDEX(2, 575)=124 - KINDEX(1, 576)=23 - KINDEX(2, 576)=124 - KINDEX(1, 577)=25 - KINDEX(2, 577)=124 - KINDEX(1, 578)=32 - KINDEX(2, 578)=124 - KINDEX(1, 579)=39 - KINDEX(2, 579)=124 - KINDEX(1, 580)=41 - KINDEX(2, 580)=124 - KINDEX(1, 581)=4 - KINDEX(2, 581)=125 - KINDEX(1, 582)=5 - KINDEX(2, 582)=125 - KINDEX(1, 583)=15 - KINDEX(2, 583)=125 - KINDEX(1, 584)=22 - KINDEX(2, 584)=125 - KINDEX(1, 585)=23 - KINDEX(2, 585)=125 - KINDEX(1, 586)=24 - KINDEX(2, 586)=125 - KINDEX(1, 587)=26 - KINDEX(2, 587)=125 - KINDEX(1, 588)=40 - KINDEX(2, 588)=125 - KINDEX(1, 589)=15 - KINDEX(2, 589)=126 - KINDEX(1, 590)=29 - KINDEX(2, 590)=126 - KINDEX(1, 591)=41 - KINDEX(2, 591)=126 - KINDEX(1, 592)=15 - KINDEX(2, 592)=127 - KINDEX(1, 593)=22 - KINDEX(2, 593)=127 - KINDEX(1, 594)=32 - KINDEX(2, 594)=127 - KINDEX(1, 595)=41 - KINDEX(2, 595)=127 - KINDEX(1, 596)=32 - KINDEX(2, 596)=128 - KINDEX(1, 597)=39 - KINDEX(2, 597)=128 - KINDEX(1, 598)=41 - KINDEX(2, 598)=128 - KINDEX(1, 599)=41 - KINDEX(2, 599)=129 - KINDEX(1, 600)=3 - KINDEX(2, 600)=130 - KINDEX(1, 601)=4 - KINDEX(2, 601)=130 - KINDEX(1, 602)=41 - KINDEX(2, 602)=130 - KINDEX(1, 603)=4 - KINDEX(2, 603)=131 - KINDEX(1, 604)=5 - KINDEX(2, 604)=131 - KINDEX(1, 605)=41 - KINDEX(2, 605)=131 - KINDEX(1, 606)=12 - KINDEX(2, 606)=132 + KINDEX(2, 560)=171 + KINDEX(1, 561)=85 + KINDEX(2, 561)=171 + KINDEX(1, 562)=1 + KINDEX(2, 562)=172 + KINDEX(1, 563)=2 + KINDEX(2, 563)=172 + KINDEX(1, 564)=10 + KINDEX(2, 564)=172 + KINDEX(1, 565)=19 + KINDEX(2, 565)=172 + KINDEX(1, 566)=28 + KINDEX(2, 566)=172 + KINDEX(1, 567)=29 + KINDEX(2, 567)=172 + KINDEX(1, 568)=30 + KINDEX(2, 568)=172 + KINDEX(1, 569)=10 + KINDEX(2, 569)=173 + KINDEX(1, 570)=19 + KINDEX(2, 570)=173 + KINDEX(1, 571)=28 + KINDEX(2, 571)=173 + KINDEX(1, 572)=29 + KINDEX(2, 572)=173 + KINDEX(1, 573)=30 + KINDEX(2, 573)=173 + KINDEX(1, 574)=85 + KINDEX(2, 574)=173 + KINDEX(1, 575)=10 + KINDEX(2, 575)=174 + KINDEX(1, 576)=15 + KINDEX(2, 576)=174 + KINDEX(1, 577)=19 + KINDEX(2, 577)=174 + KINDEX(1, 578)=28 + KINDEX(2, 578)=174 + KINDEX(1, 579)=29 + KINDEX(2, 579)=174 + KINDEX(1, 580)=30 + KINDEX(2, 580)=174 + KINDEX(1, 581)=1 + KINDEX(2, 581)=175 + KINDEX(1, 582)=2 + KINDEX(2, 582)=175 + KINDEX(1, 583)=29 + KINDEX(2, 583)=175 + KINDEX(1, 584)=85 + KINDEX(2, 584)=175 + KINDEX(1, 585)=29 + KINDEX(2, 585)=176 + KINDEX(1, 586)=85 + KINDEX(2, 586)=176 + KINDEX(1, 587)=10 + KINDEX(2, 587)=177 + KINDEX(1, 588)=15 + KINDEX(2, 588)=177 + KINDEX(1, 589)=29 + KINDEX(2, 589)=177 + KINDEX(1, 590)=85 + KINDEX(2, 590)=177 + KINDEX(1, 591)=1 + KINDEX(2, 591)=178 + KINDEX(1, 592)=2 + KINDEX(2, 592)=178 + KINDEX(1, 593)=10 + KINDEX(2, 593)=178 + KINDEX(1, 594)=58 + KINDEX(2, 594)=178 + KINDEX(1, 595)=75 + KINDEX(2, 595)=178 + KINDEX(1, 596)=10 + KINDEX(2, 596)=179 + KINDEX(1, 597)=75 + KINDEX(2, 597)=179 + KINDEX(1, 598)=85 + KINDEX(2, 598)=179 + KINDEX(1, 599)=10 + KINDEX(2, 599)=180 + KINDEX(1, 600)=15 + KINDEX(2, 600)=180 + KINDEX(1, 601)=75 + KINDEX(2, 601)=180 + KINDEX(1, 602)=1 + KINDEX(2, 602)=181 + KINDEX(1, 603)=2 + KINDEX(2, 603)=181 + KINDEX(1, 604)=10 + KINDEX(2, 604)=181 + KINDEX(1, 605)=10 + KINDEX(2, 605)=182 + KINDEX(1, 606)=85 + KINDEX(2, 606)=182 + KINDEX(1, 607)=10 + KINDEX(2, 607)=183 + KINDEX(1, 608)=15 + KINDEX(2, 608)=183 + KINDEX(1, 609)=1 + KINDEX(2, 609)=184 + KINDEX(1, 610)=2 + KINDEX(2, 610)=184 + KINDEX(1, 611)=28 + KINDEX(2, 611)=184 + KINDEX(1, 612)=69 + KINDEX(2, 612)=184 + KINDEX(1, 613)=2 + KINDEX(2, 613)=185 + KINDEX(1, 614)=28 + KINDEX(2, 614)=185 + KINDEX(1, 615)=69 + KINDEX(2, 615)=185 + KINDEX(1, 616)=85 + KINDEX(2, 616)=185 + KINDEX(1, 617)=2 + KINDEX(2, 617)=186 + KINDEX(1, 618)=10 + KINDEX(2, 618)=186 + KINDEX(1, 619)=15 + KINDEX(2, 619)=186 + KINDEX(1, 620)=28 + KINDEX(2, 620)=186 + KINDEX(1, 621)=69 + KINDEX(2, 621)=186 + KINDEX(1, 622)=1 + KINDEX(2, 622)=187 + KINDEX(1, 623)=2 + KINDEX(2, 623)=187 + KINDEX(1, 624)=85 + KINDEX(2, 624)=187 + KINDEX(1, 625)=85 + KINDEX(2, 625)=188 + KINDEX(1, 626)=10 + KINDEX(2, 626)=189 + KINDEX(1, 627)=15 + KINDEX(2, 627)=189 + KINDEX(1, 628)=85 + KINDEX(2, 628)=189 + KINDEX(1, 629)=1 + KINDEX(2, 629)=190 + KINDEX(1, 630)=2 + KINDEX(2, 630)=190 + KINDEX(1, 631)=10 + KINDEX(2, 631)=190 + KINDEX(1, 632)=25 + KINDEX(2, 632)=190 + KINDEX(1, 633)=10 + KINDEX(2, 633)=191 + KINDEX(1, 634)=25 + KINDEX(2, 634)=191 + KINDEX(1, 635)=85 + KINDEX(2, 635)=191 + KINDEX(1, 636)=10 + KINDEX(2, 636)=192 + KINDEX(1, 637)=15 + KINDEX(2, 637)=192 + KINDEX(1, 638)=25 + KINDEX(2, 638)=192 + KINDEX(1, 639)=1 + KINDEX(2, 639)=193 + KINDEX(1, 640)=2 + KINDEX(2, 640)=193 + KINDEX(1, 641)=10 + KINDEX(2, 641)=193 + KINDEX(1, 642)=75 + KINDEX(2, 642)=193 + KINDEX(1, 643)=10 + KINDEX(2, 643)=194 + KINDEX(1, 644)=75 + KINDEX(2, 644)=194 + KINDEX(1, 645)=85 + KINDEX(2, 645)=194 + KINDEX(1, 646)=10 + KINDEX(2, 646)=195 + KINDEX(1, 647)=15 + KINDEX(2, 647)=195 + KINDEX(1, 648)=75 + KINDEX(2, 648)=195 + KINDEX(1, 649)=1 + KINDEX(2, 649)=196 + KINDEX(1, 650)=2 + KINDEX(2, 650)=196 + KINDEX(1, 651)=10 + KINDEX(2, 651)=196 + KINDEX(1, 652)=58 + KINDEX(2, 652)=196 + KINDEX(1, 653)=62 + KINDEX(2, 653)=196 + KINDEX(1, 654)=10 + KINDEX(2, 654)=197 + KINDEX(1, 655)=62 + KINDEX(2, 655)=197 + KINDEX(1, 656)=85 + KINDEX(2, 656)=197 + KINDEX(1, 657)=10 + KINDEX(2, 657)=198 + KINDEX(1, 658)=15 + KINDEX(2, 658)=198 + KINDEX(1, 659)=62 + KINDEX(2, 659)=198 + KINDEX(1, 660)=1 + KINDEX(2, 660)=199 + KINDEX(1, 661)=2 + KINDEX(2, 661)=199 + KINDEX(1, 662)=10 + KINDEX(2, 662)=199 + KINDEX(1, 663)=57 + KINDEX(2, 663)=199 + KINDEX(1, 664)=67 + KINDEX(2, 664)=199 + KINDEX(1, 665)=10 + KINDEX(2, 665)=200 + KINDEX(1, 666)=57 + KINDEX(2, 666)=200 + KINDEX(1, 667)=85 + KINDEX(2, 667)=200 + KINDEX(1, 668)=10 + KINDEX(2, 668)=201 + KINDEX(1, 669)=15 + KINDEX(2, 669)=201 + KINDEX(1, 670)=57 + KINDEX(2, 670)=201 + KINDEX(1, 671)=1 + KINDEX(2, 671)=202 + KINDEX(1, 672)=2 + KINDEX(2, 672)=202 + KINDEX(1, 673)=57 + KINDEX(2, 673)=202 + KINDEX(1, 674)=2 + KINDEX(2, 674)=203 + KINDEX(1, 675)=57 + KINDEX(2, 675)=203 + KINDEX(1, 676)=85 + KINDEX(2, 676)=203 + KINDEX(1, 677)=2 + KINDEX(2, 677)=204 + KINDEX(1, 678)=10 + KINDEX(2, 678)=204 + KINDEX(1, 679)=15 + KINDEX(2, 679)=204 + KINDEX(1, 680)=57 + KINDEX(2, 680)=204 + KINDEX(1, 681)=1 + KINDEX(2, 681)=205 + KINDEX(1, 682)=2 + KINDEX(2, 682)=205 + KINDEX(1, 683)=55 + KINDEX(2, 683)=205 + KINDEX(1, 684)=85 + KINDEX(2, 684)=205 + KINDEX(1, 685)=55 + KINDEX(2, 685)=206 + KINDEX(1, 686)=85 + KINDEX(2, 686)=206 + KINDEX(1, 687)=10 + KINDEX(2, 687)=207 + KINDEX(1, 688)=15 + KINDEX(2, 688)=207 + KINDEX(1, 689)=55 + KINDEX(2, 689)=207 + KINDEX(1, 690)=85 + KINDEX(2, 690)=207 + KINDEX(1, 691)=1 + KINDEX(2, 691)=208 + KINDEX(1, 692)=2 + KINDEX(2, 692)=208 + KINDEX(1, 693)=10 + KINDEX(2, 693)=208 + KINDEX(1, 694)=56 + KINDEX(2, 694)=208 + KINDEX(1, 695)=68 + KINDEX(2, 695)=208 + KINDEX(1, 696)=10 + KINDEX(2, 696)=209 + KINDEX(1, 697)=56 + KINDEX(2, 697)=209 + KINDEX(1, 698)=85 + KINDEX(2, 698)=209 + KINDEX(1, 699)=10 + KINDEX(2, 699)=210 + KINDEX(1, 700)=15 + KINDEX(2, 700)=210 + KINDEX(1, 701)=56 + KINDEX(2, 701)=210 + KINDEX(1, 702)=1 + KINDEX(2, 702)=211 + KINDEX(1, 703)=2 + KINDEX(2, 703)=211 + KINDEX(1, 704)=56 + KINDEX(2, 704)=211 + KINDEX(1, 705)=2 + KINDEX(2, 705)=212 + KINDEX(1, 706)=56 + KINDEX(2, 706)=212 + KINDEX(1, 707)=85 + KINDEX(2, 707)=212 + KINDEX(1, 708)=2 + KINDEX(2, 708)=213 + KINDEX(1, 709)=10 + KINDEX(2, 709)=213 + KINDEX(1, 710)=15 + KINDEX(2, 710)=213 + KINDEX(1, 711)=56 + KINDEX(2, 711)=213 + KINDEX(1, 712)=1 + KINDEX(2, 712)=214 + KINDEX(1, 713)=2 + KINDEX(2, 713)=214 + KINDEX(1, 714)=85 + KINDEX(2, 714)=214 + KINDEX(1, 715)=85 + KINDEX(2, 715)=215 + KINDEX(1, 716)=10 + KINDEX(2, 716)=216 + KINDEX(1, 717)=15 + KINDEX(2, 717)=216 + KINDEX(1, 718)=85 + KINDEX(2, 718)=216 + KINDEX(1, 719)=1 + KINDEX(2, 719)=217 + KINDEX(1, 720)=2 + KINDEX(2, 720)=217 + KINDEX(1, 721)=71 + KINDEX(2, 721)=217 + KINDEX(1, 722)=85 + KINDEX(2, 722)=217 + KINDEX(1, 723)=71 + KINDEX(2, 723)=218 + KINDEX(1, 724)=85 + KINDEX(2, 724)=218 + KINDEX(1, 725)=10 + KINDEX(2, 725)=219 + KINDEX(1, 726)=15 + KINDEX(2, 726)=219 + KINDEX(1, 727)=71 + KINDEX(2, 727)=219 + KINDEX(1, 728)=85 + KINDEX(2, 728)=219 + KINDEX(1, 729)=85 + KINDEX(2, 729)=220 + KINDEX(1, 730)=10 + KINDEX(2, 730)=221 + KINDEX(1, 731)=15 + KINDEX(2, 731)=221 + KINDEX(1, 732)=85 + KINDEX(2, 732)=221 + KINDEX(1, 733)=1 + KINDEX(2, 733)=222 + KINDEX(1, 734)=2 + KINDEX(2, 734)=222 + KINDEX(1, 735)=10 + KINDEX(2, 735)=222 + KINDEX(1, 736)=64 + KINDEX(2, 736)=222 + KINDEX(1, 737)=65 + KINDEX(2, 737)=222 + KINDEX(1, 738)=10 + KINDEX(2, 738)=223 + KINDEX(1, 739)=65 + KINDEX(2, 739)=223 + KINDEX(1, 740)=85 + KINDEX(2, 740)=223 + KINDEX(1, 741)=10 + KINDEX(2, 741)=224 + KINDEX(1, 742)=15 + KINDEX(2, 742)=224 + KINDEX(1, 743)=65 + KINDEX(2, 743)=224 + KINDEX(1, 744)=1 + KINDEX(2, 744)=225 + KINDEX(1, 745)=2 + KINDEX(2, 745)=225 + KINDEX(1, 746)=66 + KINDEX(2, 746)=225 + KINDEX(1, 747)=85 + KINDEX(2, 747)=225 + KINDEX(1, 748)=85 + KINDEX(2, 748)=226 + KINDEX(1, 749)=10 + KINDEX(2, 749)=227 + KINDEX(1, 750)=15 + KINDEX(2, 750)=227 + KINDEX(1, 751)=85 + KINDEX(2, 751)=227 + KINDEX(1, 752)=1 + KINDEX(2, 752)=228 + KINDEX(1, 753)=2 + KINDEX(2, 753)=228 + KINDEX(1, 754)=10 + KINDEX(2, 754)=228 + KINDEX(1, 755)=66 + KINDEX(2, 755)=228 + KINDEX(1, 756)=10 + KINDEX(2, 756)=229 + KINDEX(1, 757)=66 + KINDEX(2, 757)=229 + KINDEX(1, 758)=85 + KINDEX(2, 758)=229 + KINDEX(1, 759)=10 + KINDEX(2, 759)=230 + KINDEX(1, 760)=15 + KINDEX(2, 760)=230 + KINDEX(1, 761)=66 + KINDEX(2, 761)=230 + KINDEX(1, 762)=85 + KINDEX(2, 762)=231 + KINDEX(1, 763)=1 + KINDEX(2, 763)=232 + KINDEX(1, 764)=2 + KINDEX(2, 764)=232 + KINDEX(1, 765)=10 + KINDEX(2, 765)=232 + KINDEX(1, 766)=52 + KINDEX(2, 766)=232 + KINDEX(1, 767)=10 + KINDEX(2, 767)=233 + KINDEX(1, 768)=52 + KINDEX(2, 768)=233 + KINDEX(1, 769)=85 + KINDEX(2, 769)=233 + KINDEX(1, 770)=10 + KINDEX(2, 770)=234 + KINDEX(1, 771)=15 + KINDEX(2, 771)=234 + KINDEX(1, 772)=52 + KINDEX(2, 772)=234 + KINDEX(1, 773)=1 + KINDEX(2, 773)=235 + KINDEX(1, 774)=2 + KINDEX(2, 774)=235 + KINDEX(1, 775)=10 + KINDEX(2, 775)=235 + KINDEX(1, 776)=41 + KINDEX(2, 776)=235 + KINDEX(1, 777)=72 + KINDEX(2, 777)=235 + KINDEX(1, 778)=10 + KINDEX(2, 778)=236 + KINDEX(1, 779)=41 + KINDEX(2, 779)=236 + KINDEX(1, 780)=72 + KINDEX(2, 780)=236 + KINDEX(1, 781)=85 + KINDEX(2, 781)=236 + KINDEX(1, 782)=10 + KINDEX(2, 782)=237 + KINDEX(1, 783)=15 + KINDEX(2, 783)=237 + KINDEX(1, 784)=41 + KINDEX(2, 784)=237 + KINDEX(1, 785)=72 + KINDEX(2, 785)=237 + KINDEX(1, 786)=85 + KINDEX(2, 786)=238 + KINDEX(1, 787)=1 + KINDEX(2, 787)=239 + KINDEX(1, 788)=2 + KINDEX(2, 788)=239 + KINDEX(1, 789)=10 + KINDEX(2, 789)=239 + KINDEX(1, 790)=73 + KINDEX(2, 790)=239 + KINDEX(1, 791)=10 + KINDEX(2, 791)=240 + KINDEX(1, 792)=73 + KINDEX(2, 792)=240 + KINDEX(1, 793)=85 + KINDEX(2, 793)=240 + KINDEX(1, 794)=10 + KINDEX(2, 794)=241 + KINDEX(1, 795)=15 + KINDEX(2, 795)=241 + KINDEX(1, 796)=73 + KINDEX(2, 796)=241 + KINDEX(1, 797)=1 + KINDEX(2, 797)=242 + KINDEX(1, 798)=2 + KINDEX(2, 798)=242 + KINDEX(1, 799)=10 + KINDEX(2, 799)=242 + KINDEX(1, 800)=41 + KINDEX(2, 800)=242 + KINDEX(1, 801)=72 + KINDEX(2, 801)=242 + KINDEX(1, 802)=10 + KINDEX(2, 802)=243 + KINDEX(1, 803)=41 + KINDEX(2, 803)=243 + KINDEX(1, 804)=72 + KINDEX(2, 804)=243 + KINDEX(1, 805)=85 + KINDEX(2, 805)=243 + KINDEX(1, 806)=10 + KINDEX(2, 806)=244 + KINDEX(1, 807)=15 + KINDEX(2, 807)=244 + KINDEX(1, 808)=41 + KINDEX(2, 808)=244 + KINDEX(1, 809)=72 + KINDEX(2, 809)=244 + KINDEX(1, 810)=85 + KINDEX(2, 810)=245 + KINDEX(1, 811)=1 + KINDEX(2, 811)=246 + KINDEX(1, 812)=2 + KINDEX(2, 812)=246 + KINDEX(1, 813)=10 + KINDEX(2, 813)=246 + KINDEX(1, 814)=73 + KINDEX(2, 814)=246 + KINDEX(1, 815)=10 + KINDEX(2, 815)=247 + KINDEX(1, 816)=73 + KINDEX(2, 816)=247 + KINDEX(1, 817)=85 + KINDEX(2, 817)=247 + KINDEX(1, 818)=10 + KINDEX(2, 818)=248 + KINDEX(1, 819)=15 + KINDEX(2, 819)=248 + KINDEX(1, 820)=73 + KINDEX(2, 820)=248 + KINDEX(1, 821)=1 + KINDEX(2, 821)=249 + KINDEX(1, 822)=2 + KINDEX(2, 822)=249 + KINDEX(1, 823)=10 + KINDEX(2, 823)=249 + KINDEX(1, 824)=41 + KINDEX(2, 824)=249 + KINDEX(1, 825)=72 + KINDEX(2, 825)=249 + KINDEX(1, 826)=10 + KINDEX(2, 826)=250 + KINDEX(1, 827)=41 + KINDEX(2, 827)=250 + KINDEX(1, 828)=72 + KINDEX(2, 828)=250 + KINDEX(1, 829)=85 + KINDEX(2, 829)=250 + KINDEX(1, 830)=10 + KINDEX(2, 830)=251 + KINDEX(1, 831)=15 + KINDEX(2, 831)=251 + KINDEX(1, 832)=41 + KINDEX(2, 832)=251 + KINDEX(1, 833)=72 + KINDEX(2, 833)=251 + KINDEX(1, 834)=85 + KINDEX(2, 834)=252 + KINDEX(1, 835)=1 + KINDEX(2, 835)=253 + KINDEX(1, 836)=2 + KINDEX(2, 836)=253 + KINDEX(1, 837)=10 + KINDEX(2, 837)=253 + KINDEX(1, 838)=52 + KINDEX(2, 838)=253 + KINDEX(1, 839)=10 + KINDEX(2, 839)=254 + KINDEX(1, 840)=52 + KINDEX(2, 840)=254 + KINDEX(1, 841)=85 + KINDEX(2, 841)=254 + KINDEX(1, 842)=10 + KINDEX(2, 842)=255 + KINDEX(1, 843)=15 + KINDEX(2, 843)=255 + KINDEX(1, 844)=52 + KINDEX(2, 844)=255 + KINDEX(1, 845)=1 + KINDEX(2, 845)=256 + KINDEX(1, 846)=2 + KINDEX(2, 846)=256 + KINDEX(1, 847)=10 + KINDEX(2, 847)=256 + KINDEX(1, 848)=41 + KINDEX(2, 848)=256 + KINDEX(1, 849)=72 + KINDEX(2, 849)=256 + KINDEX(1, 850)=10 + KINDEX(2, 850)=257 + KINDEX(1, 851)=41 + KINDEX(2, 851)=257 + KINDEX(1, 852)=72 + KINDEX(2, 852)=257 + KINDEX(1, 853)=85 + KINDEX(2, 853)=257 + KINDEX(1, 854)=10 + KINDEX(2, 854)=258 + KINDEX(1, 855)=15 + KINDEX(2, 855)=258 + KINDEX(1, 856)=41 + KINDEX(2, 856)=258 + KINDEX(1, 857)=72 + KINDEX(2, 857)=258 + KINDEX(1, 858)=85 + KINDEX(2, 858)=259 + KINDEX(1, 859)=1 + KINDEX(2, 859)=260 + KINDEX(1, 860)=2 + KINDEX(2, 860)=260 + KINDEX(1, 861)=10 + KINDEX(2, 861)=260 + KINDEX(1, 862)=50 + KINDEX(2, 862)=260 + KINDEX(1, 863)=10 + KINDEX(2, 863)=261 + KINDEX(1, 864)=50 + KINDEX(2, 864)=261 + KINDEX(1, 865)=85 + KINDEX(2, 865)=261 + KINDEX(1, 866)=10 + KINDEX(2, 866)=262 + KINDEX(1, 867)=15 + KINDEX(2, 867)=262 + KINDEX(1, 868)=50 + KINDEX(2, 868)=262 + KINDEX(1, 869)=1 + KINDEX(2, 869)=263 + KINDEX(1, 870)=2 + KINDEX(2, 870)=263 + KINDEX(1, 871)=10 + KINDEX(2, 871)=263 + KINDEX(1, 872)=41 + KINDEX(2, 872)=263 + KINDEX(1, 873)=72 + KINDEX(2, 873)=263 + KINDEX(1, 874)=10 + KINDEX(2, 874)=264 + KINDEX(1, 875)=41 + KINDEX(2, 875)=264 + KINDEX(1, 876)=72 + KINDEX(2, 876)=264 + KINDEX(1, 877)=85 + KINDEX(2, 877)=264 + KINDEX(1, 878)=10 + KINDEX(2, 878)=265 + KINDEX(1, 879)=15 + KINDEX(2, 879)=265 + KINDEX(1, 880)=41 + KINDEX(2, 880)=265 + KINDEX(1, 881)=72 + KINDEX(2, 881)=265 + KINDEX(1, 882)=85 + KINDEX(2, 882)=266 + KINDEX(1, 883)=1 + KINDEX(2, 883)=267 + KINDEX(1, 884)=2 + KINDEX(2, 884)=267 + KINDEX(1, 885)=10 + KINDEX(2, 885)=267 + KINDEX(1, 886)=63 + KINDEX(2, 886)=267 + KINDEX(1, 887)=10 + KINDEX(2, 887)=268 + KINDEX(1, 888)=63 + KINDEX(2, 888)=268 + KINDEX(1, 889)=85 + KINDEX(2, 889)=268 + KINDEX(1, 890)=10 + KINDEX(2, 890)=269 + KINDEX(1, 891)=15 + KINDEX(2, 891)=269 + KINDEX(1, 892)=63 + KINDEX(2, 892)=269 + KINDEX(1, 893)=1 + KINDEX(2, 893)=270 + KINDEX(1, 894)=2 + KINDEX(2, 894)=270 + KINDEX(1, 895)=10 + KINDEX(2, 895)=270 + KINDEX(1, 896)=41 + KINDEX(2, 896)=270 + KINDEX(1, 897)=75 + KINDEX(2, 897)=270 + KINDEX(1, 898)=10 + KINDEX(2, 898)=271 + KINDEX(1, 899)=41 + KINDEX(2, 899)=271 + KINDEX(1, 900)=75 + KINDEX(2, 900)=271 + KINDEX(1, 901)=85 + KINDEX(2, 901)=271 + KINDEX(1, 902)=10 + KINDEX(2, 902)=272 + KINDEX(1, 903)=15 + KINDEX(2, 903)=272 + KINDEX(1, 904)=41 + KINDEX(2, 904)=272 + KINDEX(1, 905)=75 + KINDEX(2, 905)=272 + KINDEX(1, 906)=15 + KINDEX(2, 906)=273 + KINDEX(1, 907)=39 + KINDEX(2, 907)=273 + KINDEX(1, 908)=85 + KINDEX(2, 908)=273 + KINDEX(1, 909)=15 + KINDEX(2, 909)=274 + KINDEX(1, 910)=40 + KINDEX(2, 910)=274 + KINDEX(1, 911)=85 + KINDEX(2, 911)=274 + KINDEX(1, 912)=15 + KINDEX(2, 912)=275 + KINDEX(1, 913)=41 + KINDEX(2, 913)=275 + KINDEX(1, 914)=85 + KINDEX(2, 914)=275 + KINDEX(1, 915)=5 + KINDEX(2, 915)=276 + KINDEX(1, 916)=8 + KINDEX(2, 916)=276 + KINDEX(1, 917)=40 + KINDEX(2, 917)=276 + KINDEX(1, 918)=85 + KINDEX(2, 918)=276 + KINDEX(1, 919)=10 + KINDEX(2, 919)=277 + KINDEX(1, 920)=11 + KINDEX(2, 920)=277 + KINDEX(1, 921)=41 + KINDEX(2, 921)=277 + KINDEX(1, 922)=85 + KINDEX(2, 922)=277 + KINDEX(1, 923)=1 + KINDEX(2, 923)=278 + KINDEX(1, 924)=2 + KINDEX(2, 924)=278 + KINDEX(1, 925)=85 + KINDEX(2, 925)=278 + KINDEX(1, 926)=5 + KINDEX(2, 926)=279 + KINDEX(1, 927)=8 + KINDEX(2, 927)=279 + KINDEX(1, 928)=41 + KINDEX(2, 928)=279 + KINDEX(1, 929)=85 + KINDEX(2, 929)=279 + KINDEX(1, 930)=3 + KINDEX(2, 930)=280 + KINDEX(1, 931)=10 + KINDEX(2, 931)=280 + KINDEX(1, 932)=47 + KINDEX(2, 932)=280 + KINDEX(1, 933)=85 + KINDEX(2, 933)=281 + KINDEX(1, 934)=3 + KINDEX(2, 934)=282 + KINDEX(1, 935)=10 + KINDEX(2, 935)=282 + KINDEX(1, 936)=11 + KINDEX(2, 936)=282 + KINDEX(1, 937)=15 + KINDEX(2, 937)=282 + KINDEX(1, 938)=28 + KINDEX(2, 938)=282 + KINDEX(1, 939)=29 + KINDEX(2, 939)=282 + KINDEX(1, 940)=39 + KINDEX(2, 940)=282 + KINDEX(1, 941)=41 + KINDEX(2, 941)=282 + KINDEX(1, 942)=43 + KINDEX(2, 942)=282 + KINDEX(1, 943)=47 + KINDEX(2, 943)=282 + KINDEX(1, 944)=85 + KINDEX(2, 944)=282 + KINDEX(1, 945)=3 + KINDEX(2, 945)=283 + KINDEX(1, 946)=10 + KINDEX(2, 946)=283 + KINDEX(1, 947)=11 + KINDEX(2, 947)=283 + KINDEX(1, 948)=15 + KINDEX(2, 948)=283 + KINDEX(1, 949)=28 + KINDEX(2, 949)=283 + KINDEX(1, 950)=40 + KINDEX(2, 950)=283 + KINDEX(1, 951)=41 + KINDEX(2, 951)=283 + KINDEX(1, 952)=43 + KINDEX(2, 952)=283 + KINDEX(1, 953)=85 + KINDEX(2, 953)=283 + KINDEX(1, 954)=30 + KINDEX(2, 954)=284 + KINDEX(1, 955)=39 + KINDEX(2, 955)=284 + KINDEX(1, 956)=85 + KINDEX(2, 956)=284 + KINDEX(1, 957)=10 + KINDEX(2, 957)=285 + KINDEX(1, 958)=11 + KINDEX(2, 958)=285 + KINDEX(1, 959)=29 + KINDEX(2, 959)=285 + KINDEX(1, 960)=40 + KINDEX(2, 960)=285 + KINDEX(1, 961)=85 + KINDEX(2, 961)=285 + KINDEX(1, 962)=1 + KINDEX(2, 962)=286 + KINDEX(1, 963)=2 + KINDEX(2, 963)=286 + KINDEX(1, 964)=10 + KINDEX(2, 964)=286 + KINDEX(1, 965)=28 + KINDEX(2, 965)=286 + KINDEX(1, 966)=41 + KINDEX(2, 966)=286 + KINDEX(1, 967)=10 + KINDEX(2, 967)=287 + KINDEX(1, 968)=28 + KINDEX(2, 968)=287 + KINDEX(1, 969)=41 + KINDEX(2, 969)=287 + KINDEX(1, 970)=85 + KINDEX(2, 970)=287 + KINDEX(1, 971)=10 + KINDEX(2, 971)=288 + KINDEX(1, 972)=15 + KINDEX(2, 972)=288 + KINDEX(1, 973)=28 + KINDEX(2, 973)=288 + KINDEX(1, 974)=41 + KINDEX(2, 974)=288 + KINDEX(1, 975)=1 + KINDEX(2, 975)=289 + KINDEX(1, 976)=2 + KINDEX(2, 976)=289 + KINDEX(1, 977)=85 + KINDEX(2, 977)=289 + KINDEX(1, 978)=3 + KINDEX(2, 978)=290 + KINDEX(1, 979)=10 + KINDEX(2, 979)=290 + KINDEX(1, 980)=17 + KINDEX(2, 980)=290 + KINDEX(1, 981)=44 + KINDEX(2, 981)=290 + KINDEX(1, 982)=85 + KINDEX(2, 982)=291 + KINDEX(1, 983)=1 + KINDEX(2, 983)=292 + KINDEX(1, 984)=2 + KINDEX(2, 984)=292 + KINDEX(1, 985)=10 + KINDEX(2, 985)=292 + KINDEX(1, 986)=28 + KINDEX(2, 986)=292 + KINDEX(1, 987)=41 + KINDEX(2, 987)=292 + KINDEX(1, 988)=10 + KINDEX(2, 988)=293 + KINDEX(1, 989)=28 + KINDEX(2, 989)=293 + KINDEX(1, 990)=41 + KINDEX(2, 990)=293 + KINDEX(1, 991)=85 + KINDEX(2, 991)=293 + KINDEX(1, 992)=10 + KINDEX(2, 992)=294 + KINDEX(1, 993)=15 + KINDEX(2, 993)=294 + KINDEX(1, 994)=28 + KINDEX(2, 994)=294 + KINDEX(1, 995)=41 + KINDEX(2, 995)=294 + KINDEX(1, 996)=85 + KINDEX(2, 996)=294 + KINDEX(1, 997)=1 + KINDEX(2, 997)=295 + KINDEX(1, 998)=2 + KINDEX(2, 998)=295 + KINDEX(1, 999)=28 + KINDEX(2, 999)=295 + KINDEX(1, 1000)=41 + KINDEX(2, 1000)=295 + KINDEX(1, 1001)=2 + KINDEX(2, 1001)=296 + KINDEX(1, 1002)=10 + KINDEX(2, 1002)=296 + KINDEX(1, 1003)=28 + KINDEX(2, 1003)=296 + KINDEX(1, 1004)=41 + KINDEX(2, 1004)=296 + KINDEX(1, 1005)=85 + KINDEX(2, 1005)=296 + KINDEX(1, 1006)=2 + KINDEX(2, 1006)=297 + KINDEX(1, 1007)=15 + KINDEX(2, 1007)=297 + KINDEX(1, 1008)=28 + KINDEX(2, 1008)=297 + KINDEX(1, 1009)=41 + KINDEX(2, 1009)=297 + KINDEX(1, 1010)=85 + KINDEX(2, 1010)=297 + KINDEX(1, 1011)=1 + KINDEX(2, 1011)=298 + KINDEX(1, 1012)=2 + KINDEX(2, 1012)=298 + KINDEX(1, 1013)=28 + KINDEX(2, 1013)=298 + KINDEX(1, 1014)=85 + KINDEX(2, 1014)=298 + KINDEX(1, 1015)=10 + KINDEX(2, 1015)=299 + KINDEX(1, 1016)=28 + KINDEX(2, 1016)=299 + KINDEX(1, 1017)=85 + KINDEX(2, 1017)=299 + KINDEX(1, 1018)=15 + KINDEX(2, 1018)=300 + KINDEX(1, 1019)=28 + KINDEX(2, 1019)=300 + KINDEX(1, 1020)=85 + KINDEX(2, 1020)=300 + KINDEX(1, 1021)=1 + KINDEX(2, 1021)=301 + KINDEX(1, 1022)=2 + KINDEX(2, 1022)=301 + KINDEX(1, 1023)=10 + KINDEX(2, 1023)=301 + KINDEX(1, 1024)=11 + KINDEX(2, 1024)=301 + KINDEX(1, 1025)=3 + KINDEX(2, 1025)=302 + KINDEX(1, 1026)=10 + KINDEX(2, 1026)=302 + KINDEX(1, 1027)=74 + KINDEX(2, 1027)=302 + KINDEX(1, 1028)=10 + KINDEX(2, 1028)=303 + KINDEX(1, 1029)=11 + KINDEX(2, 1029)=303 + KINDEX(1, 1030)=85 + KINDEX(2, 1030)=303 + KINDEX(1, 1031)=3 + KINDEX(2, 1031)=304 + KINDEX(1, 1032)=15 + KINDEX(2, 1032)=304 + KINDEX(1, 1033)=60 + KINDEX(2, 1033)=304 + KINDEX(1, 1034)=70 + KINDEX(2, 1034)=304 + KINDEX(1, 1035)=15 + KINDEX(2, 1035)=305 + KINDEX(1, 1036)=69 + KINDEX(2, 1036)=305 + KINDEX(1, 1037)=85 + KINDEX(2, 1037)=305 + KINDEX(1, 1038)=15 + KINDEX(2, 1038)=306 + KINDEX(1, 1039)=74 + KINDEX(2, 1039)=306 + KINDEX(1, 1040)=85 + KINDEX(2, 1040)=306 + KINDEX(1, 1041)=3 + KINDEX(2, 1041)=307 + KINDEX(1, 1042)=15 + KINDEX(2, 1042)=307 + KINDEX(1, 1043)=60 + KINDEX(2, 1043)=307 + KINDEX(1, 1044)=62 + KINDEX(2, 1044)=307 + KINDEX(1, 1045)=75 + KINDEX(2, 1045)=307 + KINDEX(1, 1046)=5 + KINDEX(2, 1046)=308 + KINDEX(1, 1047)=8 + KINDEX(2, 1047)=308 + KINDEX(1, 1048)=69 + KINDEX(2, 1048)=308 + KINDEX(1, 1049)=85 + KINDEX(2, 1049)=308 + KINDEX(1, 1050)=10 + KINDEX(2, 1050)=309 + KINDEX(1, 1051)=11 + KINDEX(2, 1051)=309 + KINDEX(1, 1052)=69 + KINDEX(2, 1052)=309 + KINDEX(1, 1053)=85 + KINDEX(2, 1053)=309 + KINDEX(1, 1054)=1 + KINDEX(2, 1054)=310 + KINDEX(1, 1055)=2 + KINDEX(2, 1055)=310 + KINDEX(1, 1056)=85 + KINDEX(2, 1056)=310 + KINDEX(1, 1057)=3 + KINDEX(2, 1057)=311 + KINDEX(1, 1058)=10 + KINDEX(2, 1058)=311 + KINDEX(1, 1059)=45 + KINDEX(2, 1059)=311 + KINDEX(1, 1060)=85 + KINDEX(2, 1060)=312 + KINDEX(1, 1061)=15 + KINDEX(2, 1061)=313 + KINDEX(1, 1062)=57 + KINDEX(2, 1062)=313 + KINDEX(1, 1063)=85 + KINDEX(2, 1063)=313 + KINDEX(1, 1064)=5 + KINDEX(2, 1064)=314 + KINDEX(1, 1065)=8 + KINDEX(2, 1065)=314 + KINDEX(1, 1066)=57 + KINDEX(2, 1066)=314 + KINDEX(1, 1067)=85 + KINDEX(2, 1067)=314 + KINDEX(1, 1068)=10 + KINDEX(2, 1068)=315 + KINDEX(1, 1069)=11 + KINDEX(2, 1069)=315 + KINDEX(1, 1070)=57 + KINDEX(2, 1070)=315 + KINDEX(1, 1071)=1 + KINDEX(2, 1071)=316 + KINDEX(1, 1072)=2 + KINDEX(2, 1072)=316 + KINDEX(1, 1073)=10 + KINDEX(2, 1073)=316 + KINDEX(1, 1074)=2 + KINDEX(2, 1074)=317 + KINDEX(1, 1075)=83 + KINDEX(2, 1075)=317 + KINDEX(1, 1076)=2 + KINDEX(2, 1076)=318 + KINDEX(1, 1077)=83 + KINDEX(2, 1077)=318 + KINDEX(1, 1078)=85 + KINDEX(2, 1078)=318 + KINDEX(1, 1079)=3 + KINDEX(2, 1079)=319 + KINDEX(1, 1080)=10 + KINDEX(2, 1080)=319 + KINDEX(1, 1081)=53 + KINDEX(2, 1081)=319 + KINDEX(1, 1082)=10 + KINDEX(2, 1082)=320 + KINDEX(1, 1083)=85 + KINDEX(2, 1083)=320 + KINDEX(1, 1084)=5 + KINDEX(2, 1084)=321 + KINDEX(1, 1085)=8 + KINDEX(2, 1085)=321 + KINDEX(1, 1086)=61 + KINDEX(2, 1086)=321 + KINDEX(1, 1087)=2 + KINDEX(2, 1087)=322 + KINDEX(1, 1088)=59 + KINDEX(2, 1088)=322 + KINDEX(1, 1089)=3 + KINDEX(2, 1089)=323 + KINDEX(1, 1090)=15 + KINDEX(2, 1090)=323 + KINDEX(1, 1091)=60 + KINDEX(2, 1091)=323 + KINDEX(1, 1092)=62 + KINDEX(2, 1092)=323 + KINDEX(1, 1093)=3 + KINDEX(2, 1093)=324 + KINDEX(1, 1094)=15 + KINDEX(2, 1094)=324 + KINDEX(1, 1095)=58 + KINDEX(2, 1095)=324 + KINDEX(1, 1096)=63 + KINDEX(2, 1096)=324 + KINDEX(1, 1097)=15 + KINDEX(2, 1097)=325 + KINDEX(1, 1098)=71 + KINDEX(2, 1098)=325 + KINDEX(1, 1099)=85 + KINDEX(2, 1099)=325 + KINDEX(1, 1100)=10 + KINDEX(2, 1100)=326 + KINDEX(1, 1101)=15 + KINDEX(2, 1101)=326 + KINDEX(1, 1102)=72 + KINDEX(2, 1102)=326 + KINDEX(1, 1103)=3 + KINDEX(2, 1103)=327 + KINDEX(1, 1104)=15 + KINDEX(2, 1104)=327 + KINDEX(1, 1105)=49 + KINDEX(2, 1105)=327 + KINDEX(1, 1106)=73 + KINDEX(2, 1106)=327 + KINDEX(1, 1107)=5 + KINDEX(2, 1107)=328 + KINDEX(1, 1108)=8 + KINDEX(2, 1108)=328 + KINDEX(1, 1109)=71 + KINDEX(2, 1109)=328 + KINDEX(1, 1110)=85 + KINDEX(2, 1110)=328 + KINDEX(1, 1111)=72 + KINDEX(2, 1111)=329 + KINDEX(1, 1112)=10 + KINDEX(2, 1112)=330 + KINDEX(1, 1113)=11 + KINDEX(2, 1113)=330 + KINDEX(1, 1114)=71 + KINDEX(2, 1114)=330 + KINDEX(1, 1115)=85 + KINDEX(2, 1115)=330 + KINDEX(1, 1116)=10 + KINDEX(2, 1116)=331 + KINDEX(1, 1117)=71 + KINDEX(2, 1117)=331 + KINDEX(1, 1118)=85 + KINDEX(2, 1118)=331 + KINDEX(1, 1119)=1 + KINDEX(2, 1119)=332 + KINDEX(1, 1120)=2 + KINDEX(2, 1120)=332 + KINDEX(1, 1121)=85 + KINDEX(2, 1121)=332 + KINDEX(1, 1122)=3 + KINDEX(2, 1122)=333 + KINDEX(1, 1123)=10 + KINDEX(2, 1123)=333 + KINDEX(1, 1124)=53 + KINDEX(2, 1124)=333 + KINDEX(1, 1125)=85 + KINDEX(2, 1125)=334 + KINDEX(1, 1126)=3 + KINDEX(2, 1126)=335 + KINDEX(1, 1127)=15 + KINDEX(2, 1127)=335 + KINDEX(1, 1128)=50 + KINDEX(2, 1128)=335 + KINDEX(1, 1129)=52 + KINDEX(2, 1129)=335 + KINDEX(1, 1130)=3 + KINDEX(2, 1130)=336 + KINDEX(1, 1131)=15 + KINDEX(2, 1131)=336 + KINDEX(1, 1132)=48 + KINDEX(2, 1132)=336 + KINDEX(1, 1133)=50 + KINDEX(2, 1133)=336 + KINDEX(1, 1134)=51 + KINDEX(2, 1134)=336 + KINDEX(1, 1135)=3 + KINDEX(2, 1135)=337 + KINDEX(1, 1136)=15 + KINDEX(2, 1136)=337 + KINDEX(1, 1137)=48 + KINDEX(2, 1137)=337 + KINDEX(1, 1138)=51 + KINDEX(2, 1138)=337 + KINDEX(1, 1139)=5 + KINDEX(2, 1139)=338 + KINDEX(1, 1140)=8 + KINDEX(2, 1140)=338 + KINDEX(1, 1141)=74 + KINDEX(2, 1141)=338 + KINDEX(1, 1142)=85 + KINDEX(2, 1142)=338 + KINDEX(1, 1143)=10 + KINDEX(2, 1143)=339 + KINDEX(1, 1144)=11 + KINDEX(2, 1144)=339 + KINDEX(1, 1145)=15 + KINDEX(2, 1145)=339 + KINDEX(1, 1146)=74 + KINDEX(2, 1146)=339 + KINDEX(1, 1147)=1 + KINDEX(2, 1147)=340 + KINDEX(1, 1148)=2 + KINDEX(2, 1148)=340 + KINDEX(1, 1149)=11 + KINDEX(2, 1149)=340 + KINDEX(1, 1150)=15 + KINDEX(2, 1150)=340 + KINDEX(1, 1151)=3 + KINDEX(2, 1151)=341 + KINDEX(1, 1152)=10 + KINDEX(2, 1152)=341 + KINDEX(1, 1153)=46 + KINDEX(2, 1153)=341 + KINDEX(1, 1154)=11 + KINDEX(2, 1154)=342 + KINDEX(1, 1155)=15 + KINDEX(2, 1155)=342 + KINDEX(1, 1156)=85 + KINDEX(2, 1156)=342 + KINDEX(1, 1157)=2 + KINDEX(2, 1157)=343 + KINDEX(1, 1158)=82 + KINDEX(2, 1158)=343 + KINDEX(1, 1159)=85 + KINDEX(2, 1159)=343 + KINDEX(1, 1160)=1 + KINDEX(2, 1160)=344 + KINDEX(1, 1161)=2 + KINDEX(2, 1161)=344 + KINDEX(1, 1162)=85 + KINDEX(2, 1162)=344 + KINDEX(1, 1163)=9 + KINDEX(2, 1163)=345 + KINDEX(1, 1164)=15 + KINDEX(2, 1164)=345 + KINDEX(1, 1165)=14 + KINDEX(2, 1165)=346 + KINDEX(1, 1166)=10 + KINDEX(2, 1166)=347 + KINDEX(1, 1167)=15 + KINDEX(2, 1167)=347 + KINDEX(1, 1168)=43 + KINDEX(2, 1168)=347 + KINDEX(1, 1169)=15 + KINDEX(2, 1169)=348 + KINDEX(1, 1170)=44 + KINDEX(2, 1170)=348 + KINDEX(1, 1171)=15 + KINDEX(2, 1171)=349 + KINDEX(1, 1172)=45 + KINDEX(2, 1172)=349 + KINDEX(1, 1173)=48 + KINDEX(2, 1173)=350 + KINDEX(1, 1174)=53 + KINDEX(2, 1174)=351 + KINDEX(1, 1175)=58 + KINDEX(2, 1175)=352 + KINDEX(1, 1176)=60 + KINDEX(2, 1176)=353 + KINDEX(1, 1177)=64 + KINDEX(2, 1177)=354 + KINDEX(1, 1178)=66 + KINDEX(2, 1178)=355 + KINDEX(1, 1179)=68 + KINDEX(2, 1179)=356 + KINDEX(1, 1180)=56 + KINDEX(2, 1180)=357 + KINDEX(1, 1181)=54 + KINDEX(2, 1181)=358 + KINDEX(1, 1182)=55 + KINDEX(2, 1182)=359 + KINDEX(1, 1183)=65 + KINDEX(2, 1183)=360 + KINDEX(1, 1184)=47 + KINDEX(2, 1184)=361 + KINDEX(1, 1185)=59 + KINDEX(2, 1185)=362 + KINDEX(1, 1186)=49 + KINDEX(2, 1186)=363 + KINDEX(1, 1187)=46 + KINDEX(2, 1187)=364 + KINDEX(1, 1188)=67 + KINDEX(2, 1188)=365 + KINDEX(1, 1189)=3 + KINDEX(2, 1189)=366 + KINDEX(1, 1190)=88 + KINDEX(2, 1190)=366 + KINDEX(1, 1191)=12 + KINDEX(2, 1191)=367 + KINDEX(1, 1192)=89 + KINDEX(2, 1192)=367 + KINDEX(1, 1193)=1 + KINDEX(2, 1193)=368 + KINDEX(1, 1194)=90 + KINDEX(2, 1194)=368 + KINDEX(1, 1195)=2 + KINDEX(2, 1195)=369 + KINDEX(1, 1196)=91 + KINDEX(2, 1196)=369 + KINDEX(1, 1197)=8 + KINDEX(2, 1197)=370 + KINDEX(1, 1198)=92 + KINDEX(2, 1198)=370 + KINDEX(1, 1199)=7 + KINDEX(2, 1199)=371 + KINDEX(1, 1200)=93 + KINDEX(2, 1200)=371 + KINDEX(1, 1201)=4 + KINDEX(2, 1201)=372 + KINDEX(1, 1202)=94 + KINDEX(2, 1202)=372 + KINDEX(1, 1203)=5 + KINDEX(2, 1203)=373 + KINDEX(1, 1204)=95 + KINDEX(2, 1204)=373 + KINDEX(1, 1205)=6 + KINDEX(2, 1205)=374 + KINDEX(1, 1206)=96 + KINDEX(2, 1206)=374 + KINDEX(1, 1207)=9 + KINDEX(2, 1207)=375 + KINDEX(1, 1208)=97 + KINDEX(2, 1208)=375 + KINDEX(1, 1209)=15 + KINDEX(2, 1209)=376 + KINDEX(1, 1210)=98 + KINDEX(2, 1210)=376 + KINDEX(1, 1211)=10 + KINDEX(2, 1211)=377 + KINDEX(1, 1212)=99 + KINDEX(2, 1212)=377 + KINDEX(1, 1213)=100 + KINDEX(2, 1213)=378 + KINDEX(1, 1214)=13 + KINDEX(2, 1214)=379 + KINDEX(1, 1215)=101 + KINDEX(2, 1215)=379 + KINDEX(1, 1216)=14 + KINDEX(2, 1216)=380 + KINDEX(1, 1217)=102 + KINDEX(2, 1217)=380 + KINDEX(1, 1218)=86 + KINDEX(2, 1218)=381 + KINDEX(1, 1219)=103 + KINDEX(2, 1219)=381 + KINDEX(1, 1220)=87 + KINDEX(2, 1220)=382 + KINDEX(1, 1221)=104 + KINDEX(2, 1221)=382 + KINDEX(1, 1222)=32 + KINDEX(2, 1222)=383 + KINDEX(1, 1223)=105 + KINDEX(2, 1223)=383 + KINDEX(1, 1224)=33 + KINDEX(2, 1224)=384 + KINDEX(1, 1225)=106 + KINDEX(2, 1225)=384 + KINDEX(1, 1226)=34 + KINDEX(2, 1226)=385 + KINDEX(1, 1227)=107 + KINDEX(2, 1227)=385 + KINDEX(1, 1228)=28 + KINDEX(2, 1228)=386 + KINDEX(1, 1229)=108 + KINDEX(2, 1229)=386 + KINDEX(1, 1230)=29 + KINDEX(2, 1230)=387 + KINDEX(1, 1231)=109 + KINDEX(2, 1231)=387 + KINDEX(1, 1232)=42 + KINDEX(2, 1232)=388 + KINDEX(1, 1233)=110 + KINDEX(2, 1233)=388 + KINDEX(1, 1234)=30 + KINDEX(2, 1234)=389 + KINDEX(1, 1235)=112 + KINDEX(2, 1235)=389 + KINDEX(1, 1236)=41 + KINDEX(2, 1236)=390 + KINDEX(1, 1237)=111 + KINDEX(2, 1237)=390 + KINDEX(1, 1238)=43 + KINDEX(2, 1238)=391 + KINDEX(1, 1239)=113 + KINDEX(2, 1239)=391 + KINDEX(1, 1240)=44 + KINDEX(2, 1240)=392 + KINDEX(1, 1241)=114 + KINDEX(2, 1241)=392 + KINDEX(1, 1242)=45 + KINDEX(2, 1242)=393 + KINDEX(1, 1243)=115 + KINDEX(2, 1243)=393 + KINDEX(1, 1244)=74 + KINDEX(2, 1244)=394 + KINDEX(1, 1245)=116 + KINDEX(2, 1245)=394 + KINDEX(1, 1246)=47 + KINDEX(2, 1246)=395 + KINDEX(1, 1247)=117 + KINDEX(2, 1247)=395 + KINDEX(1, 1248)=46 + KINDEX(2, 1248)=396 + KINDEX(1, 1249)=118 + KINDEX(2, 1249)=396 + KINDEX(1, 1250)=3 + KINDEX(2, 1250)=397 + KINDEX(1, 1251)=88 + KINDEX(2, 1251)=397 + KINDEX(1, 1252)=12 + KINDEX(2, 1252)=398 + KINDEX(1, 1253)=89 + KINDEX(2, 1253)=398 + KINDEX(1, 1254)=1 + KINDEX(2, 1254)=399 + KINDEX(1, 1255)=90 + KINDEX(2, 1255)=399 + KINDEX(1, 1256)=2 + KINDEX(2, 1256)=400 + KINDEX(1, 1257)=91 + KINDEX(2, 1257)=400 + KINDEX(1, 1258)=8 + KINDEX(2, 1258)=401 + KINDEX(1, 1259)=92 + KINDEX(2, 1259)=401 + KINDEX(1, 1260)=7 + KINDEX(2, 1260)=402 + KINDEX(1, 1261)=93 + KINDEX(2, 1261)=402 + KINDEX(1, 1262)=4 + KINDEX(2, 1262)=403 + KINDEX(1, 1263)=94 + KINDEX(2, 1263)=403 + KINDEX(1, 1264)=5 + KINDEX(2, 1264)=404 + KINDEX(1, 1265)=95 + KINDEX(2, 1265)=404 + KINDEX(1, 1266)=6 + KINDEX(2, 1266)=405 + KINDEX(1, 1267)=96 + KINDEX(2, 1267)=405 + KINDEX(1, 1268)=9 + KINDEX(2, 1268)=406 + KINDEX(1, 1269)=97 + KINDEX(2, 1269)=406 + KINDEX(1, 1270)=15 + KINDEX(2, 1270)=407 + KINDEX(1, 1271)=98 + KINDEX(2, 1271)=407 + KINDEX(1, 1272)=10 + KINDEX(2, 1272)=408 + KINDEX(1, 1273)=99 + KINDEX(2, 1273)=408 + KINDEX(1, 1274)=100 + KINDEX(2, 1274)=409 + KINDEX(1, 1275)=13 + KINDEX(2, 1275)=410 + KINDEX(1, 1276)=101 + KINDEX(2, 1276)=410 + KINDEX(1, 1277)=14 + KINDEX(2, 1277)=411 + KINDEX(1, 1278)=102 + KINDEX(2, 1278)=411 + KINDEX(1, 1279)=86 + KINDEX(2, 1279)=412 + KINDEX(1, 1280)=103 + KINDEX(2, 1280)=412 + KINDEX(1, 1281)=87 + KINDEX(2, 1281)=413 + KINDEX(1, 1282)=104 + KINDEX(2, 1282)=413 + KINDEX(1, 1283)=32 + KINDEX(2, 1283)=414 + KINDEX(1, 1284)=105 + KINDEX(2, 1284)=414 + KINDEX(1, 1285)=33 + KINDEX(2, 1285)=415 + KINDEX(1, 1286)=106 + KINDEX(2, 1286)=415 + KINDEX(1, 1287)=34 + KINDEX(2, 1287)=416 + KINDEX(1, 1288)=107 + KINDEX(2, 1288)=416 + KINDEX(1, 1289)=28 + KINDEX(2, 1289)=417 + KINDEX(1, 1290)=108 + KINDEX(2, 1290)=417 + KINDEX(1, 1291)=29 + KINDEX(2, 1291)=418 + KINDEX(1, 1292)=109 + KINDEX(2, 1292)=418 + KINDEX(1, 1293)=42 + KINDEX(2, 1293)=419 + KINDEX(1, 1294)=110 + KINDEX(2, 1294)=419 + KINDEX(1, 1295)=30 + KINDEX(2, 1295)=420 + KINDEX(1, 1296)=112 + KINDEX(2, 1296)=420 + KINDEX(1, 1297)=41 + KINDEX(2, 1297)=421 + KINDEX(1, 1298)=111 + KINDEX(2, 1298)=421 + KINDEX(1, 1299)=43 + KINDEX(2, 1299)=422 + KINDEX(1, 1300)=113 + KINDEX(2, 1300)=422 + KINDEX(1, 1301)=44 + KINDEX(2, 1301)=423 + KINDEX(1, 1302)=114 + KINDEX(2, 1302)=423 + KINDEX(1, 1303)=45 + KINDEX(2, 1303)=424 + KINDEX(1, 1304)=115 + KINDEX(2, 1304)=424 + KINDEX(1, 1305)=74 + KINDEX(2, 1305)=425 + KINDEX(1, 1306)=116 + KINDEX(2, 1306)=425 + KINDEX(1, 1307)=47 + KINDEX(2, 1307)=426 + KINDEX(1, 1308)=117 + KINDEX(2, 1308)=426 + KINDEX(1, 1309)=46 + KINDEX(2, 1309)=427 + KINDEX(1, 1310)=118 + KINDEX(2, 1310)=427 + KINDEX(1, 1311)=3 + KINDEX(2, 1311)=428 + KINDEX(1, 1312)=125 + KINDEX(2, 1312)=428 + KINDEX(1, 1313)=12 + KINDEX(2, 1313)=429 + KINDEX(1, 1314)=126 + KINDEX(2, 1314)=429 + KINDEX(1, 1315)=1 + KINDEX(2, 1315)=430 + KINDEX(1, 1316)=127 + KINDEX(2, 1316)=430 + KINDEX(1, 1317)=2 + KINDEX(2, 1317)=431 + KINDEX(1, 1318)=128 + KINDEX(2, 1318)=431 + KINDEX(1, 1319)=8 + KINDEX(2, 1319)=432 + KINDEX(1, 1320)=129 + KINDEX(2, 1320)=432 + KINDEX(1, 1321)=7 + KINDEX(2, 1321)=433 + KINDEX(1, 1322)=130 + KINDEX(2, 1322)=433 + KINDEX(1, 1323)=4 + KINDEX(2, 1323)=434 + KINDEX(1, 1324)=131 + KINDEX(2, 1324)=434 + KINDEX(1, 1325)=5 + KINDEX(2, 1325)=435 + KINDEX(1, 1326)=132 + KINDEX(2, 1326)=435 + KINDEX(1, 1327)=6 + KINDEX(2, 1327)=436 + KINDEX(1, 1328)=133 + KINDEX(2, 1328)=436 + KINDEX(1, 1329)=9 + KINDEX(2, 1329)=437 + KINDEX(1, 1330)=134 + KINDEX(2, 1330)=437 + KINDEX(1, 1331)=15 + KINDEX(2, 1331)=438 + KINDEX(1, 1332)=135 + KINDEX(2, 1332)=438 + KINDEX(1, 1333)=10 + KINDEX(2, 1333)=439 + KINDEX(1, 1334)=136 + KINDEX(2, 1334)=439 + KINDEX(1, 1335)=137 + KINDEX(2, 1335)=440 + KINDEX(1, 1336)=13 + KINDEX(2, 1336)=441 + KINDEX(1, 1337)=138 + KINDEX(2, 1337)=441 + KINDEX(1, 1338)=14 + KINDEX(2, 1338)=442 + KINDEX(1, 1339)=139 + KINDEX(2, 1339)=442 + KINDEX(1, 1340)=86 + KINDEX(2, 1340)=443 + KINDEX(1, 1341)=140 + KINDEX(2, 1341)=443 + KINDEX(1, 1342)=87 + KINDEX(2, 1342)=444 + KINDEX(1, 1343)=141 + KINDEX(2, 1343)=444 + KINDEX(1, 1344)=32 + KINDEX(2, 1344)=445 + KINDEX(1, 1345)=142 + KINDEX(2, 1345)=445 + KINDEX(1, 1346)=33 + KINDEX(2, 1346)=446 + KINDEX(1, 1347)=143 + KINDEX(2, 1347)=446 + KINDEX(1, 1348)=34 + KINDEX(2, 1348)=447 + KINDEX(1, 1349)=144 + KINDEX(2, 1349)=447 + KINDEX(1, 1350)=28 + KINDEX(2, 1350)=448 + KINDEX(1, 1351)=145 + KINDEX(2, 1351)=448 + KINDEX(1, 1352)=29 + KINDEX(2, 1352)=449 + KINDEX(1, 1353)=146 + KINDEX(2, 1353)=449 + KINDEX(1, 1354)=42 + KINDEX(2, 1354)=450 + KINDEX(1, 1355)=147 + KINDEX(2, 1355)=450 + KINDEX(1, 1356)=30 + KINDEX(2, 1356)=451 + KINDEX(1, 1357)=149 + KINDEX(2, 1357)=451 + KINDEX(1, 1358)=41 + KINDEX(2, 1358)=452 + KINDEX(1, 1359)=148 + KINDEX(2, 1359)=452 + KINDEX(1, 1360)=43 + KINDEX(2, 1360)=453 + KINDEX(1, 1361)=150 + KINDEX(2, 1361)=453 + KINDEX(1, 1362)=44 + KINDEX(2, 1362)=454 + KINDEX(1, 1363)=151 + KINDEX(2, 1363)=454 + KINDEX(1, 1364)=45 + KINDEX(2, 1364)=455 + KINDEX(1, 1365)=152 + KINDEX(2, 1365)=455 + KINDEX(1, 1366)=74 + KINDEX(2, 1366)=456 + KINDEX(1, 1367)=153 + KINDEX(2, 1367)=456 + KINDEX(1, 1368)=47 + KINDEX(2, 1368)=457 + KINDEX(1, 1369)=154 + KINDEX(2, 1369)=457 + KINDEX(1, 1370)=46 + KINDEX(2, 1370)=458 + KINDEX(1, 1371)=155 + KINDEX(2, 1371)=458 + KINDEX(1, 1372)=3 + KINDEX(2, 1372)=459 + KINDEX(1, 1373)=125 + KINDEX(2, 1373)=459 + KINDEX(1, 1374)=12 + KINDEX(2, 1374)=460 + KINDEX(1, 1375)=126 + KINDEX(2, 1375)=460 + KINDEX(1, 1376)=1 + KINDEX(2, 1376)=461 + KINDEX(1, 1377)=127 + KINDEX(2, 1377)=461 + KINDEX(1, 1378)=2 + KINDEX(2, 1378)=462 + KINDEX(1, 1379)=128 + KINDEX(2, 1379)=462 + KINDEX(1, 1380)=8 + KINDEX(2, 1380)=463 + KINDEX(1, 1381)=129 + KINDEX(2, 1381)=463 + KINDEX(1, 1382)=7 + KINDEX(2, 1382)=464 + KINDEX(1, 1383)=130 + KINDEX(2, 1383)=464 + KINDEX(1, 1384)=4 + KINDEX(2, 1384)=465 + KINDEX(1, 1385)=131 + KINDEX(2, 1385)=465 + KINDEX(1, 1386)=5 + KINDEX(2, 1386)=466 + KINDEX(1, 1387)=132 + KINDEX(2, 1387)=466 + KINDEX(1, 1388)=6 + KINDEX(2, 1388)=467 + KINDEX(1, 1389)=133 + KINDEX(2, 1389)=467 + KINDEX(1, 1390)=9 + KINDEX(2, 1390)=468 + KINDEX(1, 1391)=134 + KINDEX(2, 1391)=468 + KINDEX(1, 1392)=15 + KINDEX(2, 1392)=469 + KINDEX(1, 1393)=135 + KINDEX(2, 1393)=469 + KINDEX(1, 1394)=10 + KINDEX(2, 1394)=470 + KINDEX(1, 1395)=136 + KINDEX(2, 1395)=470 + KINDEX(1, 1396)=137 + KINDEX(2, 1396)=471 + KINDEX(1, 1397)=13 + KINDEX(2, 1397)=472 + KINDEX(1, 1398)=138 + KINDEX(2, 1398)=472 + KINDEX(1, 1399)=14 + KINDEX(2, 1399)=473 + KINDEX(1, 1400)=139 + KINDEX(2, 1400)=473 + KINDEX(1, 1401)=86 + KINDEX(2, 1401)=474 + KINDEX(1, 1402)=140 + KINDEX(2, 1402)=474 + KINDEX(1, 1403)=87 + KINDEX(2, 1403)=475 + KINDEX(1, 1404)=141 + KINDEX(2, 1404)=475 + KINDEX(1, 1405)=32 + KINDEX(2, 1405)=476 + KINDEX(1, 1406)=142 + KINDEX(2, 1406)=476 + KINDEX(1, 1407)=33 + KINDEX(2, 1407)=477 + KINDEX(1, 1408)=143 + KINDEX(2, 1408)=477 + KINDEX(1, 1409)=34 + KINDEX(2, 1409)=478 + KINDEX(1, 1410)=144 + KINDEX(2, 1410)=478 + KINDEX(1, 1411)=28 + KINDEX(2, 1411)=479 + KINDEX(1, 1412)=145 + KINDEX(2, 1412)=479 + KINDEX(1, 1413)=29 + KINDEX(2, 1413)=480 + KINDEX(1, 1414)=146 + KINDEX(2, 1414)=480 + KINDEX(1, 1415)=42 + KINDEX(2, 1415)=481 + KINDEX(1, 1416)=147 + KINDEX(2, 1416)=481 + KINDEX(1, 1417)=30 + KINDEX(2, 1417)=482 + KINDEX(1, 1418)=149 + KINDEX(2, 1418)=482 + KINDEX(1, 1419)=41 + KINDEX(2, 1419)=483 + KINDEX(1, 1420)=148 + KINDEX(2, 1420)=483 + KINDEX(1, 1421)=43 + KINDEX(2, 1421)=484 + KINDEX(1, 1422)=150 + KINDEX(2, 1422)=484 + KINDEX(1, 1423)=44 + KINDEX(2, 1423)=485 + KINDEX(1, 1424)=151 + KINDEX(2, 1424)=485 + KINDEX(1, 1425)=45 + KINDEX(2, 1425)=486 + KINDEX(1, 1426)=152 + KINDEX(2, 1426)=486 + KINDEX(1, 1427)=74 + KINDEX(2, 1427)=487 + KINDEX(1, 1428)=153 + KINDEX(2, 1428)=487 + KINDEX(1, 1429)=47 + KINDEX(2, 1429)=488 + KINDEX(1, 1430)=154 + KINDEX(2, 1430)=488 + KINDEX(1, 1431)=46 + KINDEX(2, 1431)=489 + KINDEX(1, 1432)=155 + KINDEX(2, 1432)=489 + KINDEX(1, 1433)=89 + KINDEX(2, 1433)=490 + KINDEX(1, 1434)=98 + KINDEX(2, 1434)=490 + KINDEX(1, 1435)=89 + KINDEX(2, 1435)=491 + KINDEX(1, 1436)=98 + KINDEX(2, 1436)=491 + KINDEX(1, 1437)=98 + KINDEX(2, 1437)=492 + KINDEX(1, 1438)=99 + KINDEX(2, 1438)=492 + KINDEX(1, 1439)=89 + KINDEX(2, 1439)=493 + KINDEX(1, 1440)=98 + KINDEX(2, 1440)=493 + KINDEX(1, 1441)=99 + KINDEX(2, 1441)=493 + KINDEX(1, 1442)=89 + KINDEX(2, 1442)=494 + KINDEX(1, 1443)=99 + KINDEX(2, 1443)=494 + KINDEX(1, 1444)=88 + KINDEX(2, 1444)=495 + KINDEX(1, 1445)=98 + KINDEX(2, 1445)=495 + KINDEX(1, 1446)=99 + KINDEX(2, 1446)=495 + KINDEX(1, 1447)=98 + KINDEX(2, 1447)=496 + KINDEX(1, 1448)=101 + KINDEX(2, 1448)=496 + KINDEX(1, 1449)=120 + KINDEX(2, 1449)=496 + KINDEX(1, 1450)=91 + KINDEX(2, 1450)=497 + KINDEX(1, 1451)=94 + KINDEX(2, 1451)=497 + KINDEX(1, 1452)=98 + KINDEX(2, 1452)=497 + KINDEX(1, 1453)=91 + KINDEX(2, 1453)=498 + KINDEX(1, 1454)=96 + KINDEX(2, 1454)=498 + KINDEX(1, 1455)=99 + KINDEX(2, 1455)=498 + KINDEX(1, 1456)=91 + KINDEX(2, 1456)=499 + KINDEX(1, 1457)=96 + KINDEX(2, 1457)=499 + KINDEX(1, 1458)=99 + KINDEX(2, 1458)=499 + KINDEX(1, 1459)=94 + KINDEX(2, 1459)=500 + KINDEX(1, 1460)=96 + KINDEX(2, 1460)=500 + KINDEX(1, 1461)=95 + KINDEX(2, 1461)=501 + KINDEX(1, 1462)=96 + KINDEX(2, 1462)=501 + KINDEX(1, 1463)=101 + KINDEX(2, 1463)=501 + KINDEX(1, 1464)=102 + KINDEX(2, 1464)=501 + KINDEX(1, 1465)=91 + KINDEX(2, 1465)=502 + KINDEX(1, 1466)=95 + KINDEX(2, 1466)=502 + KINDEX(1, 1467)=98 + KINDEX(2, 1467)=502 + KINDEX(1, 1468)=93 + KINDEX(2, 1468)=503 + KINDEX(1, 1469)=95 + KINDEX(2, 1469)=503 + KINDEX(1, 1470)=92 + KINDEX(2, 1470)=504 + KINDEX(1, 1471)=95 + KINDEX(2, 1471)=504 + KINDEX(1, 1472)=102 + KINDEX(2, 1472)=504 + KINDEX(1, 1473)=121 + KINDEX(2, 1473)=504 + KINDEX(1, 1474)=92 + KINDEX(2, 1474)=505 + KINDEX(1, 1475)=95 + KINDEX(2, 1475)=505 + KINDEX(1, 1476)=101 + KINDEX(2, 1476)=505 + KINDEX(1, 1477)=120 + KINDEX(2, 1477)=505 + KINDEX(1, 1478)=101 + KINDEX(2, 1478)=506 + KINDEX(1, 1479)=108 + KINDEX(2, 1479)=506 + KINDEX(1, 1480)=124 + KINDEX(2, 1480)=506 + KINDEX(1, 1481)=101 + KINDEX(2, 1481)=507 + KINDEX(1, 1482)=108 + KINDEX(2, 1482)=507 + KINDEX(1, 1483)=124 + KINDEX(2, 1483)=507 + KINDEX(1, 1484)=98 + KINDEX(2, 1484)=508 + KINDEX(1, 1485)=99 + KINDEX(2, 1485)=508 + KINDEX(1, 1486)=101 + KINDEX(2, 1486)=508 + KINDEX(1, 1487)=113 + KINDEX(2, 1487)=508 + KINDEX(1, 1488)=124 + KINDEX(2, 1488)=508 + KINDEX(1, 1489)=120 + KINDEX(2, 1489)=509 + KINDEX(1, 1490)=122 + KINDEX(2, 1490)=509 + KINDEX(1, 1491)=99 + KINDEX(2, 1491)=510 + KINDEX(1, 1492)=122 + KINDEX(2, 1492)=510 + KINDEX(1, 1493)=123 + KINDEX(2, 1493)=510 + KINDEX(1, 1494)=121 + KINDEX(2, 1494)=511 + KINDEX(1, 1495)=122 + KINDEX(2, 1495)=511 + KINDEX(1, 1496)=101 + KINDEX(2, 1496)=512 + KINDEX(1, 1497)=102 + KINDEX(2, 1497)=512 + KINDEX(1, 1498)=123 + KINDEX(2, 1498)=512 + KINDEX(1, 1499)=98 + KINDEX(2, 1499)=513 + KINDEX(1, 1500)=102 + KINDEX(2, 1500)=513 + KINDEX(1, 1501)=121 + KINDEX(2, 1501)=513 + KINDEX(1, 1502)=88 + KINDEX(2, 1502)=514 + KINDEX(1, 1503)=101 + KINDEX(2, 1503)=514 + KINDEX(1, 1504)=102 + KINDEX(2, 1504)=514 + KINDEX(1, 1505)=89 + KINDEX(2, 1505)=515 + KINDEX(1, 1506)=101 + KINDEX(2, 1506)=515 + KINDEX(1, 1507)=102 + KINDEX(2, 1507)=515 + KINDEX(1, 1508)=99 + KINDEX(2, 1508)=516 + KINDEX(1, 1509)=103 + KINDEX(2, 1509)=516 + KINDEX(1, 1510)=108 + KINDEX(2, 1510)=516 + KINDEX(1, 1511)=101 + KINDEX(2, 1511)=517 + KINDEX(1, 1512)=103 + KINDEX(2, 1512)=517 + KINDEX(1, 1513)=108 + KINDEX(2, 1513)=517 + KINDEX(1, 1514)=120 + KINDEX(2, 1514)=517 + KINDEX(1, 1515)=89 + KINDEX(2, 1515)=518 + KINDEX(1, 1516)=99 + KINDEX(2, 1516)=518 + KINDEX(1, 1517)=104 + KINDEX(2, 1517)=518 + KINDEX(1, 1518)=109 + KINDEX(2, 1518)=518 + KINDEX(1, 1519)=114 + KINDEX(2, 1519)=518 + KINDEX(1, 1520)=98 + KINDEX(2, 1520)=519 + KINDEX(1, 1521)=99 + KINDEX(2, 1521)=519 + KINDEX(1, 1522)=105 + KINDEX(2, 1522)=519 + KINDEX(1, 1523)=108 + KINDEX(2, 1523)=519 + KINDEX(1, 1524)=98 + KINDEX(2, 1524)=520 + KINDEX(1, 1525)=99 + KINDEX(2, 1525)=520 + KINDEX(1, 1526)=106 + KINDEX(2, 1526)=520 + KINDEX(1, 1527)=109 + KINDEX(2, 1527)=520 + KINDEX(1, 1528)=98 + KINDEX(2, 1528)=521 + KINDEX(1, 1529)=99 + KINDEX(2, 1529)=521 + KINDEX(1, 1530)=107 + KINDEX(2, 1530)=521 + KINDEX(1, 1531)=109 + KINDEX(2, 1531)=521 + KINDEX(1, 1532)=112 + KINDEX(2, 1532)=521 + KINDEX(1, 1533)=98 + KINDEX(2, 1533)=522 + KINDEX(1, 1534)=99 + KINDEX(2, 1534)=522 + KINDEX(1, 1535)=108 + KINDEX(2, 1535)=522 + KINDEX(1, 1536)=113 + KINDEX(2, 1536)=522 + KINDEX(1, 1537)=98 + KINDEX(2, 1537)=523 + KINDEX(1, 1538)=100 + KINDEX(2, 1538)=523 + KINDEX(1, 1539)=103 + KINDEX(2, 1539)=523 + KINDEX(1, 1540)=104 + KINDEX(2, 1540)=523 + KINDEX(1, 1541)=109 + KINDEX(2, 1541)=523 + KINDEX(1, 1542)=98 + KINDEX(2, 1542)=524 + KINDEX(1, 1543)=99 + KINDEX(2, 1543)=524 + KINDEX(1, 1544)=110 + KINDEX(2, 1544)=524 + KINDEX(1, 1545)=116 + KINDEX(2, 1545)=524 + KINDEX(1, 1546)=98 + KINDEX(2, 1546)=525 + KINDEX(1, 1547)=99 + KINDEX(2, 1547)=525 + KINDEX(1, 1548)=111 + KINDEX(2, 1548)=525 + KINDEX(1, 1549)=117 + KINDEX(2, 1549)=525 + KINDEX(1, 1550)=89 + KINDEX(2, 1550)=526 + KINDEX(1, 1551)=98 + KINDEX(2, 1551)=526 + KINDEX(1, 1552)=99 + KINDEX(2, 1552)=526 + KINDEX(1, 1553)=100 + KINDEX(2, 1553)=526 + KINDEX(1, 1554)=103 + KINDEX(2, 1554)=526 + KINDEX(1, 1555)=108 + KINDEX(2, 1555)=526 + KINDEX(1, 1556)=109 + KINDEX(2, 1556)=526 + KINDEX(1, 1557)=111 + KINDEX(2, 1557)=526 + KINDEX(1, 1558)=112 + KINDEX(2, 1558)=526 + KINDEX(1, 1559)=117 + KINDEX(2, 1559)=526 + KINDEX(1, 1560)=98 + KINDEX(2, 1560)=527 + KINDEX(1, 1561)=99 + KINDEX(2, 1561)=527 + KINDEX(1, 1562)=100 + KINDEX(2, 1562)=527 + KINDEX(1, 1563)=113 + KINDEX(2, 1563)=527 + KINDEX(1, 1564)=89 + KINDEX(2, 1564)=528 + KINDEX(1, 1565)=98 + KINDEX(2, 1565)=528 + KINDEX(1, 1566)=114 + KINDEX(2, 1566)=528 + KINDEX(1, 1567)=116 + KINDEX(2, 1567)=528 + KINDEX(1, 1568)=98 + KINDEX(2, 1568)=529 + KINDEX(1, 1569)=100 + KINDEX(2, 1569)=529 + KINDEX(1, 1570)=104 + KINDEX(2, 1570)=529 + KINDEX(1, 1571)=115 + KINDEX(2, 1571)=529 + KINDEX(1, 1572)=89 + KINDEX(2, 1572)=530 + KINDEX(1, 1573)=98 + KINDEX(2, 1573)=530 + KINDEX(1, 1574)=99 + KINDEX(2, 1574)=530 + KINDEX(1, 1575)=109 + KINDEX(2, 1575)=530 + KINDEX(1, 1576)=115 + KINDEX(2, 1576)=530 + KINDEX(1, 1577)=117 + KINDEX(2, 1577)=530 + KINDEX(1, 1578)=119 + KINDEX(2, 1578)=530 + KINDEX(1, 1579)=98 + KINDEX(2, 1579)=531 + KINDEX(1, 1580)=99 + KINDEX(2, 1580)=531 + KINDEX(1, 1581)=100 + KINDEX(2, 1581)=531 + KINDEX(1, 1582)=118 + KINDEX(2, 1582)=531 + KINDEX(1, 1583)=89 + KINDEX(2, 1583)=532 + KINDEX(1, 1584)=98 + KINDEX(2, 1584)=532 + KINDEX(1, 1585)=99 + KINDEX(2, 1585)=532 + KINDEX(1, 1586)=100 + KINDEX(2, 1586)=532 + KINDEX(1, 1587)=109 + KINDEX(2, 1587)=532 + KINDEX(1, 1588)=117 + KINDEX(2, 1588)=532 + KINDEX(1, 1589)=119 + KINDEX(2, 1589)=532 + KINDEX(1, 1590)=98 + KINDEX(2, 1590)=533 + KINDEX(1, 1591)=99 + KINDEX(2, 1591)=533 + KINDEX(1, 1592)=116 + KINDEX(2, 1592)=533 + KINDEX(1, 1593)=118 + KINDEX(2, 1593)=533 + KINDEX(1, 1594)=89 + KINDEX(2, 1594)=534 + KINDEX(1, 1595)=98 + KINDEX(2, 1595)=534 + KINDEX(1, 1596)=99 + KINDEX(2, 1596)=534 + KINDEX(1, 1597)=100 + KINDEX(2, 1597)=534 + KINDEX(1, 1598)=116 + KINDEX(2, 1598)=534 + KINDEX(1, 1599)=98 + KINDEX(2, 1599)=535 + KINDEX(1, 1600)=119 + KINDEX(2, 1600)=535 + KINDEX(1, 1601)=126 + KINDEX(2, 1601)=536 + KINDEX(1, 1602)=135 + KINDEX(2, 1602)=536 + KINDEX(1, 1603)=126 + KINDEX(2, 1603)=537 + KINDEX(1, 1604)=135 + KINDEX(2, 1604)=537 + KINDEX(1, 1605)=135 + KINDEX(2, 1605)=538 + KINDEX(1, 1606)=136 + KINDEX(2, 1606)=538 + KINDEX(1, 1607)=126 + KINDEX(2, 1607)=539 + KINDEX(1, 1608)=135 + KINDEX(2, 1608)=539 + KINDEX(1, 1609)=136 + KINDEX(2, 1609)=539 + KINDEX(1, 1610)=126 + KINDEX(2, 1610)=540 + KINDEX(1, 1611)=136 + KINDEX(2, 1611)=540 + KINDEX(1, 1612)=125 + KINDEX(2, 1612)=541 + KINDEX(1, 1613)=135 + KINDEX(2, 1613)=541 + KINDEX(1, 1614)=136 + KINDEX(2, 1614)=541 + KINDEX(1, 1615)=135 + KINDEX(2, 1615)=542 + KINDEX(1, 1616)=138 + KINDEX(2, 1616)=542 + KINDEX(1, 1617)=157 + KINDEX(2, 1617)=542 + KINDEX(1, 1618)=128 + KINDEX(2, 1618)=543 + KINDEX(1, 1619)=131 + KINDEX(2, 1619)=543 + KINDEX(1, 1620)=135 + KINDEX(2, 1620)=543 + KINDEX(1, 1621)=128 + KINDEX(2, 1621)=544 + KINDEX(1, 1622)=133 + KINDEX(2, 1622)=544 + KINDEX(1, 1623)=136 + KINDEX(2, 1623)=544 + KINDEX(1, 1624)=128 + KINDEX(2, 1624)=545 + KINDEX(1, 1625)=133 + KINDEX(2, 1625)=545 + KINDEX(1, 1626)=136 + KINDEX(2, 1626)=545 + KINDEX(1, 1627)=131 + KINDEX(2, 1627)=546 + KINDEX(1, 1628)=133 + KINDEX(2, 1628)=546 + KINDEX(1, 1629)=132 + KINDEX(2, 1629)=547 + KINDEX(1, 1630)=133 + KINDEX(2, 1630)=547 + KINDEX(1, 1631)=138 + KINDEX(2, 1631)=547 + KINDEX(1, 1632)=139 + KINDEX(2, 1632)=547 + KINDEX(1, 1633)=128 + KINDEX(2, 1633)=548 + KINDEX(1, 1634)=132 + KINDEX(2, 1634)=548 + KINDEX(1, 1635)=135 + KINDEX(2, 1635)=548 + KINDEX(1, 1636)=130 + KINDEX(2, 1636)=549 + KINDEX(1, 1637)=132 + KINDEX(2, 1637)=549 + KINDEX(1, 1638)=129 + KINDEX(2, 1638)=550 + KINDEX(1, 1639)=132 + KINDEX(2, 1639)=550 + KINDEX(1, 1640)=139 + KINDEX(2, 1640)=550 + KINDEX(1, 1641)=158 + KINDEX(2, 1641)=550 + KINDEX(1, 1642)=129 + KINDEX(2, 1642)=551 + KINDEX(1, 1643)=132 + KINDEX(2, 1643)=551 + KINDEX(1, 1644)=138 + KINDEX(2, 1644)=551 + KINDEX(1, 1645)=157 + KINDEX(2, 1645)=551 + KINDEX(1, 1646)=138 + KINDEX(2, 1646)=552 + KINDEX(1, 1647)=145 + KINDEX(2, 1647)=552 + KINDEX(1, 1648)=161 + KINDEX(2, 1648)=552 + KINDEX(1, 1649)=138 + KINDEX(2, 1649)=553 + KINDEX(1, 1650)=145 + KINDEX(2, 1650)=553 + KINDEX(1, 1651)=161 + KINDEX(2, 1651)=553 + KINDEX(1, 1652)=135 + KINDEX(2, 1652)=554 + KINDEX(1, 1653)=136 + KINDEX(2, 1653)=554 + KINDEX(1, 1654)=138 + KINDEX(2, 1654)=554 + KINDEX(1, 1655)=150 + KINDEX(2, 1655)=554 + KINDEX(1, 1656)=161 + KINDEX(2, 1656)=554 + KINDEX(1, 1657)=157 + KINDEX(2, 1657)=555 + KINDEX(1, 1658)=159 + KINDEX(2, 1658)=555 + KINDEX(1, 1659)=136 + KINDEX(2, 1659)=556 + KINDEX(1, 1660)=159 + KINDEX(2, 1660)=556 + KINDEX(1, 1661)=160 + KINDEX(2, 1661)=556 + KINDEX(1, 1662)=158 + KINDEX(2, 1662)=557 + KINDEX(1, 1663)=159 + KINDEX(2, 1663)=557 + KINDEX(1, 1664)=138 + KINDEX(2, 1664)=558 + KINDEX(1, 1665)=139 + KINDEX(2, 1665)=558 + KINDEX(1, 1666)=160 + KINDEX(2, 1666)=558 + KINDEX(1, 1667)=135 + KINDEX(2, 1667)=559 + KINDEX(1, 1668)=139 + KINDEX(2, 1668)=559 + KINDEX(1, 1669)=158 + KINDEX(2, 1669)=559 + KINDEX(1, 1670)=125 + KINDEX(2, 1670)=560 + KINDEX(1, 1671)=138 + KINDEX(2, 1671)=560 + KINDEX(1, 1672)=139 + KINDEX(2, 1672)=560 + KINDEX(1, 1673)=126 + KINDEX(2, 1673)=561 + KINDEX(1, 1674)=138 + KINDEX(2, 1674)=561 + KINDEX(1, 1675)=139 + KINDEX(2, 1675)=561 + KINDEX(1, 1676)=136 + KINDEX(2, 1676)=562 + KINDEX(1, 1677)=140 + KINDEX(2, 1677)=562 + KINDEX(1, 1678)=145 + KINDEX(2, 1678)=562 + KINDEX(1, 1679)=138 + KINDEX(2, 1679)=563 + KINDEX(1, 1680)=140 + KINDEX(2, 1680)=563 + KINDEX(1, 1681)=145 + KINDEX(2, 1681)=563 + KINDEX(1, 1682)=157 + KINDEX(2, 1682)=563 + KINDEX(1, 1683)=126 + KINDEX(2, 1683)=564 + KINDEX(1, 1684)=136 + KINDEX(2, 1684)=564 + KINDEX(1, 1685)=141 + KINDEX(2, 1685)=564 + KINDEX(1, 1686)=146 + KINDEX(2, 1686)=564 + KINDEX(1, 1687)=151 + KINDEX(2, 1687)=564 + KINDEX(1, 1688)=135 + KINDEX(2, 1688)=565 + KINDEX(1, 1689)=136 + KINDEX(2, 1689)=565 + KINDEX(1, 1690)=142 + KINDEX(2, 1690)=565 + KINDEX(1, 1691)=145 + KINDEX(2, 1691)=565 + KINDEX(1, 1692)=135 + KINDEX(2, 1692)=566 + KINDEX(1, 1693)=136 + KINDEX(2, 1693)=566 + KINDEX(1, 1694)=143 + KINDEX(2, 1694)=566 + KINDEX(1, 1695)=146 + KINDEX(2, 1695)=566 + KINDEX(1, 1696)=135 + KINDEX(2, 1696)=567 + KINDEX(1, 1697)=136 + KINDEX(2, 1697)=567 + KINDEX(1, 1698)=144 + KINDEX(2, 1698)=567 + KINDEX(1, 1699)=146 + KINDEX(2, 1699)=567 + KINDEX(1, 1700)=149 + KINDEX(2, 1700)=567 + KINDEX(1, 1701)=135 + KINDEX(2, 1701)=568 + KINDEX(1, 1702)=136 + KINDEX(2, 1702)=568 + KINDEX(1, 1703)=145 + KINDEX(2, 1703)=568 + KINDEX(1, 1704)=150 + KINDEX(2, 1704)=568 + KINDEX(1, 1705)=135 + KINDEX(2, 1705)=569 + KINDEX(1, 1706)=137 + KINDEX(2, 1706)=569 + KINDEX(1, 1707)=140 + KINDEX(2, 1707)=569 + KINDEX(1, 1708)=141 + KINDEX(2, 1708)=569 + KINDEX(1, 1709)=146 + KINDEX(2, 1709)=569 + KINDEX(1, 1710)=135 + KINDEX(2, 1710)=570 + KINDEX(1, 1711)=136 + KINDEX(2, 1711)=570 + KINDEX(1, 1712)=147 + KINDEX(2, 1712)=570 + KINDEX(1, 1713)=153 + KINDEX(2, 1713)=570 + KINDEX(1, 1714)=135 + KINDEX(2, 1714)=571 + KINDEX(1, 1715)=136 + KINDEX(2, 1715)=571 + KINDEX(1, 1716)=148 + KINDEX(2, 1716)=571 + KINDEX(1, 1717)=154 + KINDEX(2, 1717)=571 + KINDEX(1, 1718)=126 + KINDEX(2, 1718)=572 + KINDEX(1, 1719)=135 + KINDEX(2, 1719)=572 + KINDEX(1, 1720)=136 + KINDEX(2, 1720)=572 + KINDEX(1, 1721)=137 + KINDEX(2, 1721)=572 + KINDEX(1, 1722)=140 + KINDEX(2, 1722)=572 + KINDEX(1, 1723)=145 + KINDEX(2, 1723)=572 + KINDEX(1, 1724)=146 + KINDEX(2, 1724)=572 + KINDEX(1, 1725)=148 + KINDEX(2, 1725)=572 + KINDEX(1, 1726)=149 + KINDEX(2, 1726)=572 + KINDEX(1, 1727)=154 + KINDEX(2, 1727)=572 + KINDEX(1, 1728)=135 + KINDEX(2, 1728)=573 + KINDEX(1, 1729)=136 + KINDEX(2, 1729)=573 + KINDEX(1, 1730)=137 + KINDEX(2, 1730)=573 + KINDEX(1, 1731)=150 + KINDEX(2, 1731)=573 + KINDEX(1, 1732)=126 + KINDEX(2, 1732)=574 + KINDEX(1, 1733)=135 + KINDEX(2, 1733)=574 + KINDEX(1, 1734)=151 + KINDEX(2, 1734)=574 + KINDEX(1, 1735)=153 + KINDEX(2, 1735)=574 + KINDEX(1, 1736)=135 + KINDEX(2, 1736)=575 + KINDEX(1, 1737)=137 + KINDEX(2, 1737)=575 + KINDEX(1, 1738)=141 + KINDEX(2, 1738)=575 + KINDEX(1, 1739)=152 + KINDEX(2, 1739)=575 + KINDEX(1, 1740)=126 + KINDEX(2, 1740)=576 + KINDEX(1, 1741)=135 + KINDEX(2, 1741)=576 + KINDEX(1, 1742)=136 + KINDEX(2, 1742)=576 + KINDEX(1, 1743)=146 + KINDEX(2, 1743)=576 + KINDEX(1, 1744)=152 + KINDEX(2, 1744)=576 + KINDEX(1, 1745)=154 + KINDEX(2, 1745)=576 + KINDEX(1, 1746)=156 + KINDEX(2, 1746)=576 + KINDEX(1, 1747)=135 + KINDEX(2, 1747)=577 + KINDEX(1, 1748)=136 + KINDEX(2, 1748)=577 + KINDEX(1, 1749)=137 + KINDEX(2, 1749)=577 + KINDEX(1, 1750)=155 + KINDEX(2, 1750)=577 + KINDEX(1, 1751)=126 + KINDEX(2, 1751)=578 + KINDEX(1, 1752)=135 + KINDEX(2, 1752)=578 + KINDEX(1, 1753)=136 + KINDEX(2, 1753)=578 + KINDEX(1, 1754)=137 + KINDEX(2, 1754)=578 + KINDEX(1, 1755)=146 + KINDEX(2, 1755)=578 + KINDEX(1, 1756)=154 + KINDEX(2, 1756)=578 + KINDEX(1, 1757)=156 + KINDEX(2, 1757)=578 + KINDEX(1, 1758)=135 + KINDEX(2, 1758)=579 + KINDEX(1, 1759)=136 + KINDEX(2, 1759)=579 + KINDEX(1, 1760)=153 + KINDEX(2, 1760)=579 + KINDEX(1, 1761)=155 + KINDEX(2, 1761)=579 + KINDEX(1, 1762)=126 + KINDEX(2, 1762)=580 + KINDEX(1, 1763)=135 + KINDEX(2, 1763)=580 + KINDEX(1, 1764)=136 + KINDEX(2, 1764)=580 + KINDEX(1, 1765)=137 + KINDEX(2, 1765)=580 + KINDEX(1, 1766)=153 + KINDEX(2, 1766)=580 + KINDEX(1, 1767)=135 + KINDEX(2, 1767)=581 + KINDEX(1, 1768)=156 + KINDEX(2, 1768)=581 RETURN -END SUBROUTINE CH_NONZEROTERMS_GAZ +END SUBROUTINE CH_NONZEROTERMS_AQ !! END SUBROUTINE CH_NONZEROTERMS ! @@ -38612,7 +102596,7 @@ END IF CONTAINS !! !! ####################### - SUBROUTINE CH_SPARSE_AQ + SUBROUTINE CH_SPARSE_GAZ !! ####################### !! !!*** *MODD_CH_SPARSE* @@ -38661,3651 +102645,5190 @@ IMPLICIT NONE !! EXECUTABLE STATEMENTS !! --------------------- ! check if output array is large enough -IF (KSPARSEDIM.LT.745) THEN +IF (KSPARSEDIM.LT.599) THEN STOP 'CH_SPARSE ERROR: array KSPARSE is too small!' END IF -!O3/O3 +!NO/NO KSPARSE(1, 1)=1 KSPARSE(2, 1)=1 -!O3/NO +!NO/NO2 KSPARSE(1, 2)=1 - KSPARSE(2, 2)=3 -!O3/NO2 + KSPARSE(2, 2)=2 +!NO/O3 KSPARSE(1, 3)=1 - KSPARSE(2, 3)=4 -!O3/OH + KSPARSE(2, 3)=3 +!NO/HONO KSPARSE(1, 4)=1 - KSPARSE(2, 4)=14 -!O3/HO2 + KSPARSE(2, 4)=4 +!NO/NO3 KSPARSE(1, 5)=1 - KSPARSE(2, 5)=15 -!O3/ALKE + KSPARSE(2, 5)=8 +!NO/HO2 KSPARSE(1, 6)=1 - KSPARSE(2, 6)=19 -!O3/BIO + KSPARSE(2, 6)=10 +!NO/OH KSPARSE(1, 7)=1 - KSPARSE(2, 7)=20 -!O3/CARBO + KSPARSE(2, 7)=15 +!NO/RO2T KSPARSE(1, 8)=1 - KSPARSE(2, 8)=25 -!O3/PAN + KSPARSE(2, 8)=85 +!NO/RO21 KSPARSE(1, 9)=1 - KSPARSE(2, 9)=27 -!O3/ADD + KSPARSE(2, 9)=86 +!NO/RO25 KSPARSE(1, 10)=1 - KSPARSE(2, 10)=37 -!O3/CARBOP - KSPARSE(1, 11)=1 - KSPARSE(2, 11)=39 -!O3/WC_O3 - KSPARSE(1, 12)=1 - KSPARSE(2, 12)=42 -!O3/WR_O3 - KSPARSE(1, 13)=1 - KSPARSE(2, 13)=67 -!H2O2/O3 + KSPARSE(2, 10)=87 +!NO2/NO + KSPARSE(1, 11)=2 + KSPARSE(2, 11)=1 +!NO2/NO2 + KSPARSE(1, 12)=2 + KSPARSE(2, 12)=2 +!NO2/O3 + KSPARSE(1, 13)=2 + KSPARSE(2, 13)=3 +!NO2/HONO KSPARSE(1, 14)=2 - KSPARSE(2, 14)=1 -!H2O2/H2O2 + KSPARSE(2, 14)=4 +!NO2/HNO4 KSPARSE(1, 15)=2 - KSPARSE(2, 15)=2 -!H2O2/OH + KSPARSE(2, 15)=6 +!NO2/N2O5 KSPARSE(1, 16)=2 - KSPARSE(2, 16)=14 -!H2O2/HO2 + KSPARSE(2, 16)=7 +!NO2/NO3 KSPARSE(1, 17)=2 - KSPARSE(2, 17)=15 -!H2O2/ALKE + KSPARSE(2, 17)=8 +!NO2/HO2 KSPARSE(1, 18)=2 - KSPARSE(2, 18)=19 -!H2O2/BIO + KSPARSE(2, 18)=10 +!NO2/OH KSPARSE(1, 19)=2 - KSPARSE(2, 19)=20 -!H2O2/WC_H2O2 + KSPARSE(2, 19)=15 +!NO2/APAN KSPARSE(1, 20)=2 - KSPARSE(2, 20)=43 -!H2O2/WR_H2O2 + KSPARSE(2, 20)=76 +!NO2/PAN1 KSPARSE(1, 21)=2 - KSPARSE(2, 21)=68 -!NO/O3 - KSPARSE(1, 22)=3 - KSPARSE(2, 22)=1 -!NO/NO - KSPARSE(1, 23)=3 - KSPARSE(2, 23)=3 -!NO/NO2 - KSPARSE(1, 24)=3 - KSPARSE(2, 24)=4 -!NO/NO3 - KSPARSE(1, 25)=3 - KSPARSE(2, 25)=5 -!NO/HONO - KSPARSE(1, 26)=3 - KSPARSE(2, 26)=7 -!NO/OH - KSPARSE(1, 27)=3 - KSPARSE(2, 27)=14 -!NO/HO2 - KSPARSE(1, 28)=3 - KSPARSE(2, 28)=15 -!NO/MO2 - KSPARSE(1, 29)=3 - KSPARSE(2, 29)=32 -!NO/ALKAP - KSPARSE(1, 30)=3 - KSPARSE(2, 30)=33 -!NO/ALKEP - KSPARSE(1, 31)=3 - KSPARSE(2, 31)=34 -!NO/BIOP + KSPARSE(2, 21)=77 +!NO2/PAN2 + KSPARSE(1, 22)=2 + KSPARSE(2, 22)=78 +!NO2/PAN3 + KSPARSE(1, 23)=2 + KSPARSE(2, 23)=79 +!NO2/PAN4 + KSPARSE(1, 24)=2 + KSPARSE(2, 24)=80 +!NO2/PAN6 + KSPARSE(1, 25)=2 + KSPARSE(2, 25)=81 +!NO2/PAN7 + KSPARSE(1, 26)=2 + KSPARSE(2, 26)=82 +!NO2/PAN8 + KSPARSE(1, 27)=2 + KSPARSE(2, 27)=83 +!NO2/PN10 + KSPARSE(1, 28)=2 + KSPARSE(2, 28)=84 +!NO2/RO2T + KSPARSE(1, 29)=2 + KSPARSE(2, 29)=85 +!NO2/RO21 + KSPARSE(1, 30)=2 + KSPARSE(2, 30)=86 +!NO2/RO25 + KSPARSE(1, 31)=2 + KSPARSE(2, 31)=87 +!O3/NO KSPARSE(1, 32)=3 - KSPARSE(2, 32)=35 -!NO/AROP + KSPARSE(2, 32)=1 +!O3/NO2 KSPARSE(1, 33)=3 - KSPARSE(2, 33)=38 -!NO/CARBOP + KSPARSE(2, 33)=2 +!O3/O3 KSPARSE(1, 34)=3 - KSPARSE(2, 34)=39 -!NO/OLN + KSPARSE(2, 34)=3 +!O3/NO3 KSPARSE(1, 35)=3 - KSPARSE(2, 35)=40 -!NO/XO2 + KSPARSE(2, 35)=8 +!O3/HO2 KSPARSE(1, 36)=3 - KSPARSE(2, 36)=41 + KSPARSE(2, 36)=10 +!O3/OH + KSPARSE(1, 37)=3 + KSPARSE(2, 37)=15 +!O3/ETHE + KSPARSE(1, 38)=3 + KSPARSE(2, 38)=16 +!O3/OLEL + KSPARSE(1, 39)=3 + KSPARSE(2, 39)=17 +!O3/OLEH + KSPARSE(1, 40)=3 + KSPARSE(2, 40)=18 +!O3/ARAL + KSPARSE(1, 41)=3 + KSPARSE(2, 41)=25 +!O3/ISOP + KSPARSE(1, 42)=3 + KSPARSE(2, 42)=35 +!O3/BIOL + KSPARSE(1, 43)=3 + KSPARSE(2, 43)=36 +!O3/BIOH + KSPARSE(1, 44)=3 + KSPARSE(2, 44)=37 +!O3/MVK + KSPARSE(1, 45)=3 + KSPARSE(2, 45)=39 +!O3/MCR + KSPARSE(1, 46)=3 + KSPARSE(2, 46)=40 +!O3/RPG2 + KSPARSE(1, 47)=3 + KSPARSE(2, 47)=50 +!O3/RP18 + KSPARSE(1, 48)=3 + KSPARSE(2, 48)=51 +!O3/RPG3 + KSPARSE(1, 49)=3 + KSPARSE(2, 49)=52 +!O3/RPR7 + KSPARSE(1, 50)=3 + KSPARSE(2, 50)=62 +!O3/RPG7 + KSPARSE(1, 51)=3 + KSPARSE(2, 51)=63 +!O3/RPR5 + KSPARSE(1, 52)=3 + KSPARSE(2, 52)=70 +!O3/RP11 + KSPARSE(1, 53)=3 + KSPARSE(2, 53)=73 +!O3/RPRL + KSPARSE(1, 54)=3 + KSPARSE(2, 54)=75 +!HONO/NO + KSPARSE(1, 55)=4 + KSPARSE(2, 55)=1 +!HONO/NO2 + KSPARSE(1, 56)=4 + KSPARSE(2, 56)=2 +!HONO/HONO + KSPARSE(1, 57)=4 + KSPARSE(2, 57)=4 +!HONO/OH + KSPARSE(1, 58)=4 + KSPARSE(2, 58)=15 +!HNO3/NO2 + KSPARSE(1, 59)=5 + KSPARSE(2, 59)=2 +!HNO3/HNO3 + KSPARSE(1, 60)=5 + KSPARSE(2, 60)=5 +!HNO3/N2O5 + KSPARSE(1, 61)=5 + KSPARSE(2, 61)=7 +!HNO3/NO3 + KSPARSE(1, 62)=5 + KSPARSE(2, 62)=8 +!HNO3/HO2 + KSPARSE(1, 63)=5 + KSPARSE(2, 63)=10 +!HNO3/OH + KSPARSE(1, 64)=5 + KSPARSE(2, 64)=15 +!HNO3/AROO + KSPARSE(1, 65)=5 + KSPARSE(2, 65)=24 +!HNO3/ARAL + KSPARSE(1, 66)=5 + KSPARSE(2, 66)=25 +!HNO3/HCHO + KSPARSE(1, 67)=5 + KSPARSE(2, 67)=28 +!HNO3/ALD2 + KSPARSE(1, 68)=5 + KSPARSE(2, 68)=29 +!HNO3/MCR + KSPARSE(1, 69)=5 + KSPARSE(2, 69)=40 +!HNO3/MGLY + KSPARSE(1, 70)=5 + KSPARSE(2, 70)=41 +!HNO3/RPR3 + KSPARSE(1, 71)=5 + KSPARSE(2, 71)=57 +!HNO3/RPR4 + KSPARSE(1, 72)=5 + KSPARSE(2, 72)=61 +!HNO3/RPR1 + KSPARSE(1, 73)=5 + KSPARSE(2, 73)=69 +!HNO3/RPR8 + KSPARSE(1, 74)=5 + KSPARSE(2, 74)=71 +!HNO3/RP16 + KSPARSE(1, 75)=5 + KSPARSE(2, 75)=74 +!HNO4/NO2 + KSPARSE(1, 76)=6 + KSPARSE(2, 76)=2 +!HNO4/HNO4 + KSPARSE(1, 77)=6 + KSPARSE(2, 77)=6 +!HNO4/HO2 + KSPARSE(1, 78)=6 + KSPARSE(2, 78)=10 +!HNO4/OH + KSPARSE(1, 79)=6 + KSPARSE(2, 79)=15 +!N2O5/NO2 + KSPARSE(1, 80)=7 + KSPARSE(2, 80)=2 +!N2O5/N2O5 + KSPARSE(1, 81)=7 + KSPARSE(2, 81)=7 +!N2O5/NO3 + KSPARSE(1, 82)=7 + KSPARSE(2, 82)=8 +!NO3/NO + KSPARSE(1, 83)=8 + KSPARSE(2, 83)=1 +!NO3/NO2 + KSPARSE(1, 84)=8 + KSPARSE(2, 84)=2 +!NO3/O3 + KSPARSE(1, 85)=8 + KSPARSE(2, 85)=3 +!NO3/HNO3 + KSPARSE(1, 86)=8 + KSPARSE(2, 86)=5 +!NO3/N2O5 + KSPARSE(1, 87)=8 + KSPARSE(2, 87)=7 +!NO3/NO3 + KSPARSE(1, 88)=8 + KSPARSE(2, 88)=8 +!NO3/HO2 + KSPARSE(1, 89)=8 + KSPARSE(2, 89)=10 +!NO3/OH + KSPARSE(1, 90)=8 + KSPARSE(2, 90)=15 +!NO3/ETHE + KSPARSE(1, 91)=8 + KSPARSE(2, 91)=16 +!NO3/OLEL + KSPARSE(1, 92)=8 + KSPARSE(2, 92)=17 +!NO3/OLEH + KSPARSE(1, 93)=8 + KSPARSE(2, 93)=18 +!NO3/AROO + KSPARSE(1, 94)=8 + KSPARSE(2, 94)=24 +!NO3/ARAL + KSPARSE(1, 95)=8 + KSPARSE(2, 95)=25 +!NO3/HCHO + KSPARSE(1, 96)=8 + KSPARSE(2, 96)=28 +!NO3/ALD2 + KSPARSE(1, 97)=8 + KSPARSE(2, 97)=29 +!NO3/ISOP + KSPARSE(1, 98)=8 + KSPARSE(2, 98)=35 +!NO3/BIOL + KSPARSE(1, 99)=8 + KSPARSE(2, 99)=36 +!NO3/BIOH + KSPARSE(1, 100)=8 + KSPARSE(2, 100)=37 +!NO3/MCR + KSPARSE(1, 101)=8 + KSPARSE(2, 101)=40 +!NO3/MGLY + KSPARSE(1, 102)=8 + KSPARSE(2, 102)=41 +!NO3/RPR3 + KSPARSE(1, 103)=8 + KSPARSE(2, 103)=57 +!NO3/RPR4 + KSPARSE(1, 104)=8 + KSPARSE(2, 104)=61 +!NO3/RPR1 + KSPARSE(1, 105)=8 + KSPARSE(2, 105)=69 +!NO3/RPR8 + KSPARSE(1, 106)=8 + KSPARSE(2, 106)=71 +!NO3/RP16 + KSPARSE(1, 107)=8 + KSPARSE(2, 107)=74 +!NH3/NH3 + KSPARSE(1, 108)=9 + KSPARSE(2, 108)=9 +!NH3/OH + KSPARSE(1, 109)=9 + KSPARSE(2, 109)=15 +!HO2/NO + KSPARSE(1, 110)=10 + KSPARSE(2, 110)=1 +!HO2/NO2 + KSPARSE(1, 111)=10 + KSPARSE(2, 111)=2 +!HO2/O3 + KSPARSE(1, 112)=10 + KSPARSE(2, 112)=3 +!HO2/HONO + KSPARSE(1, 113)=10 + KSPARSE(2, 113)=4 +!HO2/HNO4 + KSPARSE(1, 114)=10 + KSPARSE(2, 114)=6 +!HO2/NO3 + KSPARSE(1, 115)=10 + KSPARSE(2, 115)=8 +!HO2/HO2 + KSPARSE(1, 116)=10 + KSPARSE(2, 116)=10 +!HO2/CO + KSPARSE(1, 117)=10 + KSPARSE(2, 117)=11 +!HO2/H2O2 + KSPARSE(1, 118)=10 + KSPARSE(2, 118)=12 +!HO2/SO2 + KSPARSE(1, 119)=10 + KSPARSE(2, 119)=13 +!HO2/OH + KSPARSE(1, 120)=10 + KSPARSE(2, 120)=15 +!HO2/ETHE + KSPARSE(1, 121)=10 + KSPARSE(2, 121)=16 +!HO2/OLEL + KSPARSE(1, 122)=10 + KSPARSE(2, 122)=17 +!HO2/OLEH + KSPARSE(1, 123)=10 + KSPARSE(2, 123)=18 +!HO2/AROH + KSPARSE(1, 124)=10 + KSPARSE(2, 124)=22 +!HO2/AROL + KSPARSE(1, 125)=10 + KSPARSE(2, 125)=23 +!HO2/AROO + KSPARSE(1, 126)=10 + KSPARSE(2, 126)=24 +!HO2/ARAL + KSPARSE(1, 127)=10 + KSPARSE(2, 127)=25 +!HO2/ARAC + KSPARSE(1, 128)=10 + KSPARSE(2, 128)=26 +!HO2/PAH + KSPARSE(1, 129)=10 + KSPARSE(2, 129)=27 +!HO2/HCHO + KSPARSE(1, 130)=10 + KSPARSE(2, 130)=28 +!HO2/ALD2 + KSPARSE(1, 131)=10 + KSPARSE(2, 131)=29 +!HO2/MEOH + KSPARSE(1, 132)=10 + KSPARSE(2, 132)=32 +!HO2/ETOH + KSPARSE(1, 133)=10 + KSPARSE(2, 133)=33 +!HO2/ISOP + KSPARSE(1, 134)=10 + KSPARSE(2, 134)=35 +!HO2/BIOL + KSPARSE(1, 135)=10 + KSPARSE(2, 135)=36 +!HO2/MVK + KSPARSE(1, 136)=10 + KSPARSE(2, 136)=39 +!HO2/MCR + KSPARSE(1, 137)=10 + KSPARSE(2, 137)=40 +!HO2/MGLY + KSPARSE(1, 138)=10 + KSPARSE(2, 138)=41 +!HO2/ORA1 + KSPARSE(1, 139)=10 + KSPARSE(2, 139)=43 +!HO2/RPR3 + KSPARSE(1, 140)=10 + KSPARSE(2, 140)=57 +!HO2/RPR1 + KSPARSE(1, 141)=10 + KSPARSE(2, 141)=69 +!HO2/RPR8 + KSPARSE(1, 142)=10 + KSPARSE(2, 142)=71 +!HO2/RP10 + KSPARSE(1, 143)=10 + KSPARSE(2, 143)=72 +!HO2/RP16 + KSPARSE(1, 144)=10 + KSPARSE(2, 144)=74 +!HO2/RO2T + KSPARSE(1, 145)=10 + KSPARSE(2, 145)=85 +!HO2/RO21 + KSPARSE(1, 146)=10 + KSPARSE(2, 146)=86 +!HO2/RO25 + KSPARSE(1, 147)=10 + KSPARSE(2, 147)=87 +!CO/NO + KSPARSE(1, 148)=11 + KSPARSE(2, 148)=1 +!CO/O3 + KSPARSE(1, 149)=11 + KSPARSE(2, 149)=3 +!CO/NO3 + KSPARSE(1, 150)=11 + KSPARSE(2, 150)=8 +!CO/HO2 + KSPARSE(1, 151)=11 + KSPARSE(2, 151)=10 +!CO/CO + KSPARSE(1, 152)=11 + KSPARSE(2, 152)=11 +!CO/OH + KSPARSE(1, 153)=11 + KSPARSE(2, 153)=15 +!CO/ETHE + KSPARSE(1, 154)=11 + KSPARSE(2, 154)=16 +!CO/OLEL + KSPARSE(1, 155)=11 + KSPARSE(2, 155)=17 +!CO/OLEH + KSPARSE(1, 156)=11 + KSPARSE(2, 156)=18 +!CO/HCHO + KSPARSE(1, 157)=11 + KSPARSE(2, 157)=28 +!CO/ALD2 + KSPARSE(1, 158)=11 + KSPARSE(2, 158)=29 +!CO/ISOP + KSPARSE(1, 159)=11 + KSPARSE(2, 159)=35 +!CO/BIOL + KSPARSE(1, 160)=11 + KSPARSE(2, 160)=36 +!CO/BIOH + KSPARSE(1, 161)=11 + KSPARSE(2, 161)=37 +!CO/MVK + KSPARSE(1, 162)=11 + KSPARSE(2, 162)=39 +!CO/MCR + KSPARSE(1, 163)=11 + KSPARSE(2, 163)=40 +!CO/MGLY + KSPARSE(1, 164)=11 + KSPARSE(2, 164)=41 +!CO/RPR3 + KSPARSE(1, 165)=11 + KSPARSE(2, 165)=57 +!CO/RPR1 + KSPARSE(1, 166)=11 + KSPARSE(2, 166)=69 +!CO/RPR8 + KSPARSE(1, 167)=11 + KSPARSE(2, 167)=71 +!CO/RP16 + KSPARSE(1, 168)=11 + KSPARSE(2, 168)=74 +!CO/RO2T + KSPARSE(1, 169)=11 + KSPARSE(2, 169)=85 +!H2O2/O3 + KSPARSE(1, 170)=12 + KSPARSE(2, 170)=3 +!H2O2/HO2 + KSPARSE(1, 171)=12 + KSPARSE(2, 171)=10 +!H2O2/H2O2 + KSPARSE(1, 172)=12 + KSPARSE(2, 172)=12 +!H2O2/OH + KSPARSE(1, 173)=12 + KSPARSE(2, 173)=15 +!H2O2/BIOL + KSPARSE(1, 174)=12 + KSPARSE(2, 174)=36 +!H2O2/BIOH + KSPARSE(1, 175)=12 + KSPARSE(2, 175)=37 +!SO2/SO2 + KSPARSE(1, 176)=13 + KSPARSE(2, 176)=13 +!SO2/OH + KSPARSE(1, 177)=13 + KSPARSE(2, 177)=15 +!H2SO4/SO2 + KSPARSE(1, 178)=14 + KSPARSE(2, 178)=13 +!H2SO4/H2SO4 + KSPARSE(1, 179)=14 + KSPARSE(2, 179)=14 +!H2SO4/OH + KSPARSE(1, 180)=14 + KSPARSE(2, 180)=15 +!OH/NO + KSPARSE(1, 181)=15 + KSPARSE(2, 181)=1 +!OH/NO2 + KSPARSE(1, 182)=15 + KSPARSE(2, 182)=2 +!OH/O3 + KSPARSE(1, 183)=15 + KSPARSE(2, 183)=3 +!OH/HONO + KSPARSE(1, 184)=15 + KSPARSE(2, 184)=4 +!OH/HNO3 + KSPARSE(1, 185)=15 + KSPARSE(2, 185)=5 +!OH/HNO4 + KSPARSE(1, 186)=15 + KSPARSE(2, 186)=6 +!OH/NO3 + KSPARSE(1, 187)=15 + KSPARSE(2, 187)=8 +!OH/NH3 + KSPARSE(1, 188)=15 + KSPARSE(2, 188)=9 +!OH/HO2 + KSPARSE(1, 189)=15 + KSPARSE(2, 189)=10 +!OH/CO + KSPARSE(1, 190)=15 + KSPARSE(2, 190)=11 +!OH/H2O2 + KSPARSE(1, 191)=15 + KSPARSE(2, 191)=12 +!OH/SO2 + KSPARSE(1, 192)=15 + KSPARSE(2, 192)=13 +!OH/OH + KSPARSE(1, 193)=15 + KSPARSE(2, 193)=15 +!OH/ETHE + KSPARSE(1, 194)=15 + KSPARSE(2, 194)=16 +!OH/OLEL + KSPARSE(1, 195)=15 + KSPARSE(2, 195)=17 +!OH/OLEH + KSPARSE(1, 196)=15 + KSPARSE(2, 196)=18 +!OH/ALKL + KSPARSE(1, 197)=15 + KSPARSE(2, 197)=19 +!OH/ALKM + KSPARSE(1, 198)=15 + KSPARSE(2, 198)=20 +!OH/ALKH + KSPARSE(1, 199)=15 + KSPARSE(2, 199)=21 +!OH/AROH + KSPARSE(1, 200)=15 + KSPARSE(2, 200)=22 +!OH/AROL + KSPARSE(1, 201)=15 + KSPARSE(2, 201)=23 +!OH/AROO + KSPARSE(1, 202)=15 + KSPARSE(2, 202)=24 +!OH/ARAL + KSPARSE(1, 203)=15 + KSPARSE(2, 203)=25 +!OH/ARAC + KSPARSE(1, 204)=15 + KSPARSE(2, 204)=26 +!OH/PAH + KSPARSE(1, 205)=15 + KSPARSE(2, 205)=27 +!OH/HCHO + KSPARSE(1, 206)=15 + KSPARSE(2, 206)=28 +!OH/ALD2 + KSPARSE(1, 207)=15 + KSPARSE(2, 207)=29 +!OH/KETL + KSPARSE(1, 208)=15 + KSPARSE(2, 208)=30 +!OH/KETH + KSPARSE(1, 209)=15 + KSPARSE(2, 209)=31 +!OH/MEOH + KSPARSE(1, 210)=15 + KSPARSE(2, 210)=32 +!OH/ETOH + KSPARSE(1, 211)=15 + KSPARSE(2, 211)=33 +!OH/ALCH + KSPARSE(1, 212)=15 + KSPARSE(2, 212)=34 +!OH/ISOP + KSPARSE(1, 213)=15 + KSPARSE(2, 213)=35 +!OH/BIOL + KSPARSE(1, 214)=15 + KSPARSE(2, 214)=36 +!OH/BIOH + KSPARSE(1, 215)=15 + KSPARSE(2, 215)=37 +!OH/MTBE + KSPARSE(1, 216)=15 + KSPARSE(2, 216)=38 +!OH/MVK + KSPARSE(1, 217)=15 + KSPARSE(2, 217)=39 +!OH/MCR + KSPARSE(1, 218)=15 + KSPARSE(2, 218)=40 +!OH/MGLY + KSPARSE(1, 219)=15 + KSPARSE(2, 219)=41 +!OH/ORA1 + KSPARSE(1, 220)=15 + KSPARSE(2, 220)=43 +!OH/ORA2 + KSPARSE(1, 221)=15 + KSPARSE(2, 221)=44 +!OH/ACID + KSPARSE(1, 222)=15 + KSPARSE(2, 222)=45 +!OH/RPG2 + KSPARSE(1, 223)=15 + KSPARSE(2, 223)=50 +!OH/RP18 + KSPARSE(1, 224)=15 + KSPARSE(2, 224)=51 +!OH/RPG3 + KSPARSE(1, 225)=15 + KSPARSE(2, 225)=52 +!OH/RPR3 + KSPARSE(1, 226)=15 + KSPARSE(2, 226)=57 +!OH/RPR7 + KSPARSE(1, 227)=15 + KSPARSE(2, 227)=62 +!OH/RPG7 + KSPARSE(1, 228)=15 + KSPARSE(2, 228)=63 +!OH/RPR1 + KSPARSE(1, 229)=15 + KSPARSE(2, 229)=69 +!OH/RPR5 + KSPARSE(1, 230)=15 + KSPARSE(2, 230)=70 +!OH/RPR8 + KSPARSE(1, 231)=15 + KSPARSE(2, 231)=71 +!OH/RP10 + KSPARSE(1, 232)=15 + KSPARSE(2, 232)=72 +!OH/RP11 + KSPARSE(1, 233)=15 + KSPARSE(2, 233)=73 +!OH/RP16 + KSPARSE(1, 234)=15 + KSPARSE(2, 234)=74 +!OH/RPRL + KSPARSE(1, 235)=15 + KSPARSE(2, 235)=75 +!OH/RO2T + KSPARSE(1, 236)=15 + KSPARSE(2, 236)=85 +!OH/RO21 + KSPARSE(1, 237)=15 + KSPARSE(2, 237)=86 +!OH/RO25 + KSPARSE(1, 238)=15 + KSPARSE(2, 238)=87 +!ETHE/O3 + KSPARSE(1, 239)=16 + KSPARSE(2, 239)=3 +!ETHE/NO3 + KSPARSE(1, 240)=16 + KSPARSE(2, 240)=8 +!ETHE/OH + KSPARSE(1, 241)=16 + KSPARSE(2, 241)=15 +!ETHE/ETHE + KSPARSE(1, 242)=16 + KSPARSE(2, 242)=16 +!OLEL/NO + KSPARSE(1, 243)=17 + KSPARSE(2, 243)=1 +!OLEL/O3 + KSPARSE(1, 244)=17 + KSPARSE(2, 244)=3 +!OLEL/NO3 + KSPARSE(1, 245)=17 + KSPARSE(2, 245)=8 +!OLEL/HO2 + KSPARSE(1, 246)=17 + KSPARSE(2, 246)=10 +!OLEL/OH + KSPARSE(1, 247)=17 + KSPARSE(2, 247)=15 +!OLEL/OLEL + KSPARSE(1, 248)=17 + KSPARSE(2, 248)=17 +!OLEL/ISOP + KSPARSE(1, 249)=17 + KSPARSE(2, 249)=35 +!OLEH/O3 + KSPARSE(1, 250)=18 + KSPARSE(2, 250)=3 +!OLEH/NO3 + KSPARSE(1, 251)=18 + KSPARSE(2, 251)=8 +!OLEH/OH + KSPARSE(1, 252)=18 + KSPARSE(2, 252)=15 +!OLEH/OLEH + KSPARSE(1, 253)=18 + KSPARSE(2, 253)=18 +!ALKL/NO + KSPARSE(1, 254)=19 + KSPARSE(2, 254)=1 +!ALKL/O3 + KSPARSE(1, 255)=19 + KSPARSE(2, 255)=3 +!ALKL/HO2 + KSPARSE(1, 256)=19 + KSPARSE(2, 256)=10 +!ALKL/OH + KSPARSE(1, 257)=19 + KSPARSE(2, 257)=15 +!ALKL/OLEL + KSPARSE(1, 258)=19 + KSPARSE(2, 258)=17 +!ALKL/ALKL + KSPARSE(1, 259)=19 + KSPARSE(2, 259)=19 +!ALKL/RO2T + KSPARSE(1, 260)=19 + KSPARSE(2, 260)=85 +!ALKL/RO25 + KSPARSE(1, 261)=19 + KSPARSE(2, 261)=87 +!ALKM/O3 + KSPARSE(1, 262)=20 + KSPARSE(2, 262)=3 +!ALKM/OH + KSPARSE(1, 263)=20 + KSPARSE(2, 263)=15 +!ALKM/OLEH + KSPARSE(1, 264)=20 + KSPARSE(2, 264)=18 +!ALKM/ALKM + KSPARSE(1, 265)=20 + KSPARSE(2, 265)=20 +!ALKH/OH + KSPARSE(1, 266)=21 + KSPARSE(2, 266)=15 +!ALKH/ALKH + KSPARSE(1, 267)=21 + KSPARSE(2, 267)=21 +!AROH/OH + KSPARSE(1, 268)=22 + KSPARSE(2, 268)=15 +!AROH/AROH + KSPARSE(1, 269)=22 + KSPARSE(2, 269)=22 +!AROL/OH + KSPARSE(1, 270)=23 + KSPARSE(2, 270)=15 +!AROL/AROL + KSPARSE(1, 271)=23 + KSPARSE(2, 271)=23 +!AROO/NO3 + KSPARSE(1, 272)=24 + KSPARSE(2, 272)=8 +!AROO/OH + KSPARSE(1, 273)=24 + KSPARSE(2, 273)=15 +!AROO/AROH + KSPARSE(1, 274)=24 + KSPARSE(2, 274)=22 +!AROO/AROL + KSPARSE(1, 275)=24 + KSPARSE(2, 275)=23 +!AROO/AROO + KSPARSE(1, 276)=24 + KSPARSE(2, 276)=24 +!ARAL/NO + KSPARSE(1, 277)=25 + KSPARSE(2, 277)=1 +!ARAL/NO3 + KSPARSE(1, 278)=25 + KSPARSE(2, 278)=8 +!ARAL/HO2 + KSPARSE(1, 279)=25 + KSPARSE(2, 279)=10 +!ARAL/OH + KSPARSE(1, 280)=25 + KSPARSE(2, 280)=15 +!ARAL/ARAL + KSPARSE(1, 281)=25 + KSPARSE(2, 281)=25 +!ARAL/RO2T + KSPARSE(1, 282)=25 + KSPARSE(2, 282)=85 +!ARAC/NO3 + KSPARSE(1, 283)=26 + KSPARSE(2, 283)=8 +!ARAC/OH + KSPARSE(1, 284)=26 + KSPARSE(2, 284)=15 +!ARAC/ARAL + KSPARSE(1, 285)=26 + KSPARSE(2, 285)=25 +!ARAC/ARAC + KSPARSE(1, 286)=26 + KSPARSE(2, 286)=26 +!PAH/OH + KSPARSE(1, 287)=27 + KSPARSE(2, 287)=15 +!PAH/PAH + KSPARSE(1, 288)=27 + KSPARSE(2, 288)=27 +!HCHO/NO + KSPARSE(1, 289)=28 + KSPARSE(2, 289)=1 +!HCHO/O3 + KSPARSE(1, 290)=28 + KSPARSE(2, 290)=3 +!HCHO/NO3 + KSPARSE(1, 291)=28 + KSPARSE(2, 291)=8 +!HCHO/HO2 + KSPARSE(1, 292)=28 + KSPARSE(2, 292)=10 +!HCHO/OH + KSPARSE(1, 293)=28 + KSPARSE(2, 293)=15 +!HCHO/ETHE + KSPARSE(1, 294)=28 + KSPARSE(2, 294)=16 +!HCHO/OLEL + KSPARSE(1, 295)=28 + KSPARSE(2, 295)=17 +!HCHO/OLEH + KSPARSE(1, 296)=28 + KSPARSE(2, 296)=18 +!HCHO/HCHO + KSPARSE(1, 297)=28 + KSPARSE(2, 297)=28 +!HCHO/MEOH + KSPARSE(1, 298)=28 + KSPARSE(2, 298)=32 +!HCHO/ISOP + KSPARSE(1, 299)=28 + KSPARSE(2, 299)=35 +!HCHO/MVK + KSPARSE(1, 300)=28 + KSPARSE(2, 300)=39 +!HCHO/MCR + KSPARSE(1, 301)=28 + KSPARSE(2, 301)=40 +!HCHO/RO2T + KSPARSE(1, 302)=28 + KSPARSE(2, 302)=85 +!HCHO/RO21 + KSPARSE(1, 303)=28 + KSPARSE(2, 303)=86 +!ALD2/NO + KSPARSE(1, 304)=29 + KSPARSE(2, 304)=1 +!ALD2/O3 + KSPARSE(1, 305)=29 + KSPARSE(2, 305)=3 +!ALD2/NO3 + KSPARSE(1, 306)=29 + KSPARSE(2, 306)=8 +!ALD2/HO2 + KSPARSE(1, 307)=29 + KSPARSE(2, 307)=10 +!ALD2/OH + KSPARSE(1, 308)=29 + KSPARSE(2, 308)=15 +!ALD2/OLEL + KSPARSE(1, 309)=29 + KSPARSE(2, 309)=17 +!ALD2/ALD2 + KSPARSE(1, 310)=29 + KSPARSE(2, 310)=29 +!ALD2/ETOH + KSPARSE(1, 311)=29 + KSPARSE(2, 311)=33 +!ALD2/ISOP + KSPARSE(1, 312)=29 + KSPARSE(2, 312)=35 +!ALD2/MVK + KSPARSE(1, 313)=29 + KSPARSE(2, 313)=39 +!ALD2/MCR + KSPARSE(1, 314)=29 + KSPARSE(2, 314)=40 +!ALD2/RO2T + KSPARSE(1, 315)=29 + KSPARSE(2, 315)=85 +!ALD2/RO25 + KSPARSE(1, 316)=29 + KSPARSE(2, 316)=87 +!KETL/NO + KSPARSE(1, 317)=30 + KSPARSE(2, 317)=1 +!KETL/HO2 + KSPARSE(1, 318)=30 + KSPARSE(2, 318)=10 +!KETL/OH + KSPARSE(1, 319)=30 + KSPARSE(2, 319)=15 +!KETL/KETL + KSPARSE(1, 320)=30 + KSPARSE(2, 320)=30 +!KETL/MVK + KSPARSE(1, 321)=30 + KSPARSE(2, 321)=39 +!KETL/RO2T + KSPARSE(1, 322)=30 + KSPARSE(2, 322)=85 +!KETH/OH + KSPARSE(1, 323)=31 + KSPARSE(2, 323)=15 +!KETH/KETH + KSPARSE(1, 324)=31 + KSPARSE(2, 324)=31 +!MEOH/OH + KSPARSE(1, 325)=32 + KSPARSE(2, 325)=15 +!MEOH/MEOH + KSPARSE(1, 326)=32 + KSPARSE(2, 326)=32 +!ETOH/OH + KSPARSE(1, 327)=33 + KSPARSE(2, 327)=15 +!ETOH/ETOH + KSPARSE(1, 328)=33 + KSPARSE(2, 328)=33 +!ALCH/OH + KSPARSE(1, 329)=34 + KSPARSE(2, 329)=15 +!ALCH/ALCH + KSPARSE(1, 330)=34 + KSPARSE(2, 330)=34 +!ISOP/O3 + KSPARSE(1, 331)=35 + KSPARSE(2, 331)=3 +!ISOP/NO3 + KSPARSE(1, 332)=35 + KSPARSE(2, 332)=8 +!ISOP/OH + KSPARSE(1, 333)=35 + KSPARSE(2, 333)=15 +!ISOP/ISOP + KSPARSE(1, 334)=35 + KSPARSE(2, 334)=35 +!BIOL/O3 + KSPARSE(1, 335)=36 + KSPARSE(2, 335)=3 +!BIOL/NO3 + KSPARSE(1, 336)=36 + KSPARSE(2, 336)=8 +!BIOL/OH + KSPARSE(1, 337)=36 + KSPARSE(2, 337)=15 +!BIOL/BIOL + KSPARSE(1, 338)=36 + KSPARSE(2, 338)=36 +!BIOH/O3 + KSPARSE(1, 339)=37 + KSPARSE(2, 339)=3 +!BIOH/NO3 + KSPARSE(1, 340)=37 + KSPARSE(2, 340)=8 +!BIOH/OH + KSPARSE(1, 341)=37 + KSPARSE(2, 341)=15 +!BIOH/BIOH + KSPARSE(1, 342)=37 + KSPARSE(2, 342)=37 +!MTBE/OH + KSPARSE(1, 343)=38 + KSPARSE(2, 343)=15 +!MTBE/MTBE + KSPARSE(1, 344)=38 + KSPARSE(2, 344)=38 +!MVK/NO + KSPARSE(1, 345)=39 + KSPARSE(2, 345)=1 +!MVK/O3 + KSPARSE(1, 346)=39 + KSPARSE(2, 346)=3 +!MVK/HO2 + KSPARSE(1, 347)=39 + KSPARSE(2, 347)=10 +!MVK/OH + KSPARSE(1, 348)=39 + KSPARSE(2, 348)=15 +!MVK/ISOP + KSPARSE(1, 349)=39 + KSPARSE(2, 349)=35 +!MVK/MVK + KSPARSE(1, 350)=39 + KSPARSE(2, 350)=39 +!MVK/RO2T + KSPARSE(1, 351)=39 + KSPARSE(2, 351)=85 +!MCR/NO + KSPARSE(1, 352)=40 + KSPARSE(2, 352)=1 +!MCR/O3 + KSPARSE(1, 353)=40 + KSPARSE(2, 353)=3 +!MCR/NO3 + KSPARSE(1, 354)=40 + KSPARSE(2, 354)=8 +!MCR/HO2 + KSPARSE(1, 355)=40 + KSPARSE(2, 355)=10 +!MCR/OH + KSPARSE(1, 356)=40 + KSPARSE(2, 356)=15 +!MCR/ISOP + KSPARSE(1, 357)=40 + KSPARSE(2, 357)=35 +!MCR/MCR + KSPARSE(1, 358)=40 + KSPARSE(2, 358)=40 +!MCR/RO2T + KSPARSE(1, 359)=40 + KSPARSE(2, 359)=85 +!MGLY/NO + KSPARSE(1, 360)=41 + KSPARSE(2, 360)=1 +!MGLY/O3 + KSPARSE(1, 361)=41 + KSPARSE(2, 361)=3 +!MGLY/NO3 + KSPARSE(1, 362)=41 + KSPARSE(2, 362)=8 +!MGLY/HO2 + KSPARSE(1, 363)=41 + KSPARSE(2, 363)=10 +!MGLY/OH + KSPARSE(1, 364)=41 + KSPARSE(2, 364)=15 +!MGLY/MVK + KSPARSE(1, 365)=41 + KSPARSE(2, 365)=39 +!MGLY/MCR + KSPARSE(1, 366)=41 + KSPARSE(2, 366)=40 +!MGLY/MGLY + KSPARSE(1, 367)=41 + KSPARSE(2, 367)=41 +!MGLY/RO2T + KSPARSE(1, 368)=41 + KSPARSE(2, 368)=85 +!ORA1/O3 + KSPARSE(1, 369)=43 + KSPARSE(2, 369)=3 +!ORA1/OH + KSPARSE(1, 370)=43 + KSPARSE(2, 370)=15 +!ORA1/ETHE + KSPARSE(1, 371)=43 + KSPARSE(2, 371)=16 +!ORA1/OLEL + KSPARSE(1, 372)=43 + KSPARSE(2, 372)=17 +!ORA1/ISOP + KSPARSE(1, 373)=43 + KSPARSE(2, 373)=35 +!ORA1/MVK + KSPARSE(1, 374)=43 + KSPARSE(2, 374)=39 +!ORA1/MCR + KSPARSE(1, 375)=43 + KSPARSE(2, 375)=40 +!ORA1/ORA1 + KSPARSE(1, 376)=43 + KSPARSE(2, 376)=43 +!ORA2/O3 + KSPARSE(1, 377)=44 + KSPARSE(2, 377)=3 +!ORA2/HO2 + KSPARSE(1, 378)=44 + KSPARSE(2, 378)=10 +!ORA2/OH + KSPARSE(1, 379)=44 + KSPARSE(2, 379)=15 +!ORA2/OLEL + KSPARSE(1, 380)=44 + KSPARSE(2, 380)=17 +!ORA2/ORA2 + KSPARSE(1, 381)=44 + KSPARSE(2, 381)=44 +!ACID/O3 + KSPARSE(1, 382)=45 + KSPARSE(2, 382)=3 +!ACID/HO2 + KSPARSE(1, 383)=45 + KSPARSE(2, 383)=10 +!ACID/OH + KSPARSE(1, 384)=45 + KSPARSE(2, 384)=15 +!ACID/OLEH + KSPARSE(1, 385)=45 + KSPARSE(2, 385)=18 +!ACID/ACID + KSPARSE(1, 386)=45 + KSPARSE(2, 386)=45 +!UR28/HO2 + KSPARSE(1, 387)=46 + KSPARSE(2, 387)=10 +!UR28/UR28 + KSPARSE(1, 388)=46 + KSPARSE(2, 388)=46 +!UR21/O3 + KSPARSE(1, 389)=47 + KSPARSE(2, 389)=3 +!UR21/HO2 + KSPARSE(1, 390)=47 + KSPARSE(2, 390)=10 +!UR21/MVK + KSPARSE(1, 391)=47 + KSPARSE(2, 391)=39 +!UR21/UR21 + KSPARSE(1, 392)=47 + KSPARSE(2, 392)=47 +!URG2/OH + KSPARSE(1, 393)=48 + KSPARSE(2, 393)=15 +!URG2/URG2 + KSPARSE(1, 394)=48 + KSPARSE(2, 394)=48 +!URG2/RPG2 + KSPARSE(1, 395)=48 + KSPARSE(2, 395)=50 +!URG2/RP18 + KSPARSE(1, 396)=48 + KSPARSE(2, 396)=51 +!UR26/OH + KSPARSE(1, 397)=49 + KSPARSE(2, 397)=15 +!UR26/UR26 + KSPARSE(1, 398)=49 + KSPARSE(2, 398)=49 +!UR26/RP11 + KSPARSE(1, 399)=49 + KSPARSE(2, 399)=73 +!RPG2/NO + KSPARSE(1, 400)=50 + KSPARSE(2, 400)=1 +!RPG2/HO2 + KSPARSE(1, 401)=50 + KSPARSE(2, 401)=10 +!RPG2/OH + KSPARSE(1, 402)=50 + KSPARSE(2, 402)=15 +!RPG2/RPG2 + KSPARSE(1, 403)=50 + KSPARSE(2, 403)=50 +!RPG2/RPG3 + KSPARSE(1, 404)=50 + KSPARSE(2, 404)=52 +!RPG2/RO2T + KSPARSE(1, 405)=50 + KSPARSE(2, 405)=85 +!RP18/OH + KSPARSE(1, 406)=51 + KSPARSE(2, 406)=15 +!RP18/RPG2 + KSPARSE(1, 407)=51 + KSPARSE(2, 407)=50 +!RP18/RP18 + KSPARSE(1, 408)=51 + KSPARSE(2, 408)=51 +!RPG3/NO + KSPARSE(1, 409)=52 + KSPARSE(2, 409)=1 +!RPG3/HO2 + KSPARSE(1, 410)=52 + KSPARSE(2, 410)=10 +!RPG3/OH + KSPARSE(1, 411)=52 + KSPARSE(2, 411)=15 +!RPG3/RPG3 + KSPARSE(1, 412)=52 + KSPARSE(2, 412)=52 +!RPG3/RO2T + KSPARSE(1, 413)=52 + KSPARSE(2, 413)=85 +!URG4/O3 + KSPARSE(1, 414)=53 + KSPARSE(2, 414)=3 +!URG4/HO2 + KSPARSE(1, 415)=53 + KSPARSE(2, 415)=10 +!URG4/BIOL + KSPARSE(1, 416)=53 + KSPARSE(2, 416)=36 +!URG4/URG4 + KSPARSE(1, 417)=53 + KSPARSE(2, 417)=53 +!UR8/O3 + KSPARSE(1, 418)=54 + KSPARSE(2, 418)=3 +!UR8/BIOH + KSPARSE(1, 419)=54 + KSPARSE(2, 419)=37 +!UR8/UR8 + KSPARSE(1, 420)=54 + KSPARSE(2, 420)=54 +!UR17/NO + KSPARSE(1, 421)=55 + KSPARSE(2, 421)=1 +!UR17/HO2 + KSPARSE(1, 422)=55 + KSPARSE(2, 422)=10 +!UR17/UR17 + KSPARSE(1, 423)=55 + KSPARSE(2, 423)=55 +!UR17/RO2T + KSPARSE(1, 424)=55 + KSPARSE(2, 424)=85 +!UR7/NO + KSPARSE(1, 425)=56 + KSPARSE(2, 425)=1 +!UR7/O3 + KSPARSE(1, 426)=56 + KSPARSE(2, 426)=3 +!UR7/HO2 + KSPARSE(1, 427)=56 + KSPARSE(2, 427)=10 +!UR7/BIOH + KSPARSE(1, 428)=56 + KSPARSE(2, 428)=37 +!UR7/UR7 + KSPARSE(1, 429)=56 + KSPARSE(2, 429)=56 +!UR7/RO2T + KSPARSE(1, 430)=56 + KSPARSE(2, 430)=85 +!RPR3/NO + KSPARSE(1, 431)=57 + KSPARSE(2, 431)=1 +!RPR3/O3 + KSPARSE(1, 432)=57 + KSPARSE(2, 432)=3 +!RPR3/NO3 + KSPARSE(1, 433)=57 + KSPARSE(2, 433)=8 +!RPR3/HO2 + KSPARSE(1, 434)=57 + KSPARSE(2, 434)=10 +!RPR3/OH + KSPARSE(1, 435)=57 + KSPARSE(2, 435)=15 +!RPR3/BIOL + KSPARSE(1, 436)=57 + KSPARSE(2, 436)=36 +!RPR3/RPR3 + KSPARSE(1, 437)=57 + KSPARSE(2, 437)=57 +!RPR3/RO2T + KSPARSE(1, 438)=57 + KSPARSE(2, 438)=85 +!URG6/NO + KSPARSE(1, 439)=58 + KSPARSE(2, 439)=1 +!URG6/OH + KSPARSE(1, 440)=58 + KSPARSE(2, 440)=15 +!URG6/URG6 + KSPARSE(1, 441)=58 + KSPARSE(2, 441)=58 +!URG6/RPG7 + KSPARSE(1, 442)=58 + KSPARSE(2, 442)=63 +!UR22/NO2 + KSPARSE(1, 443)=59 + KSPARSE(2, 443)=2 +!UR22/UR22 + KSPARSE(1, 444)=59 + KSPARSE(2, 444)=59 +!URG7/NO2 + KSPARSE(1, 445)=60 + KSPARSE(2, 445)=2 +!URG7/OH + KSPARSE(1, 446)=60 + KSPARSE(2, 446)=15 +!URG7/ARAC + KSPARSE(1, 447)=60 + KSPARSE(2, 447)=26 +!URG7/URG7 + KSPARSE(1, 448)=60 + KSPARSE(2, 448)=60 +!URG7/RPR7 + KSPARSE(1, 449)=60 + KSPARSE(2, 449)=62 +!URG7/RPR5 + KSPARSE(1, 450)=60 + KSPARSE(2, 450)=70 +!URG7/RPRL + KSPARSE(1, 451)=60 + KSPARSE(2, 451)=75 +!RPR4/NO2 + KSPARSE(1, 452)=61 + KSPARSE(2, 452)=2 +!RPR4/NO3 + KSPARSE(1, 453)=61 + KSPARSE(2, 453)=8 +!RPR4/RPR4 + KSPARSE(1, 454)=61 + KSPARSE(2, 454)=61 +!RPR7/NO + KSPARSE(1, 455)=62 + KSPARSE(2, 455)=1 +!RPR7/HO2 + KSPARSE(1, 456)=62 + KSPARSE(2, 456)=10 +!RPR7/OH + KSPARSE(1, 457)=62 + KSPARSE(2, 457)=15 +!RPR7/RPR7 + KSPARSE(1, 458)=62 + KSPARSE(2, 458)=62 +!RPR7/RPRL + KSPARSE(1, 459)=62 + KSPARSE(2, 459)=75 +!RPR7/RO2T + KSPARSE(1, 460)=62 + KSPARSE(2, 460)=85 +!RPG7/NO + KSPARSE(1, 461)=63 + KSPARSE(2, 461)=1 +!RPG7/HO2 + KSPARSE(1, 462)=63 + KSPARSE(2, 462)=10 +!RPG7/OH + KSPARSE(1, 463)=63 + KSPARSE(2, 463)=15 +!RPG7/RPG7 + KSPARSE(1, 464)=63 + KSPARSE(2, 464)=63 +!RPG7/RO2T + KSPARSE(1, 465)=63 + KSPARSE(2, 465)=85 +!URG8/NO + KSPARSE(1, 466)=64 + KSPARSE(2, 466)=1 +!URG8/NO2 + KSPARSE(1, 467)=64 + KSPARSE(2, 467)=2 +!URG8/OH + KSPARSE(1, 468)=64 + KSPARSE(2, 468)=15 +!URG8/PAH + KSPARSE(1, 469)=64 + KSPARSE(2, 469)=27 +!URG8/URG8 + KSPARSE(1, 470)=64 + KSPARSE(2, 470)=64 +!UR19/NO + KSPARSE(1, 471)=65 + KSPARSE(2, 471)=1 +!UR19/HO2 + KSPARSE(1, 472)=65 + KSPARSE(2, 472)=10 +!UR19/UR19 + KSPARSE(1, 473)=65 + KSPARSE(2, 473)=65 +!UR19/RO2T + KSPARSE(1, 474)=65 + KSPARSE(2, 474)=85 +!URG9/NO + KSPARSE(1, 475)=66 + KSPARSE(2, 475)=1 +!URG9/HO2 + KSPARSE(1, 476)=66 + KSPARSE(2, 476)=10 +!URG9/URG9 + KSPARSE(1, 477)=66 + KSPARSE(2, 477)=66 +!URG9/RO2T + KSPARSE(1, 478)=66 + KSPARSE(2, 478)=85 +!AP7/NO + KSPARSE(1, 479)=67 + KSPARSE(2, 479)=1 +!AP7/AP7 + KSPARSE(1, 480)=67 + KSPARSE(2, 480)=67 +!URG10/NO + KSPARSE(1, 481)=68 + KSPARSE(2, 481)=1 +!URG10/BIOL + KSPARSE(1, 482)=68 + KSPARSE(2, 482)=36 +!URG10/URG10 + KSPARSE(1, 483)=68 + KSPARSE(2, 483)=68 +!RPR1/NO + KSPARSE(1, 484)=69 + KSPARSE(2, 484)=1 +!RPR1/O3 + KSPARSE(1, 485)=69 + KSPARSE(2, 485)=3 +!RPR1/NO3 + KSPARSE(1, 486)=69 + KSPARSE(2, 486)=8 +!RPR1/HO2 + KSPARSE(1, 487)=69 + KSPARSE(2, 487)=10 +!RPR1/OH + KSPARSE(1, 488)=69 + KSPARSE(2, 488)=15 +!RPR1/OLEH + KSPARSE(1, 489)=69 + KSPARSE(2, 489)=18 +!RPR1/RPR1 + KSPARSE(1, 490)=69 + KSPARSE(2, 490)=69 +!RPR1/RO2T + KSPARSE(1, 491)=69 + KSPARSE(2, 491)=85 +!RPR5/NO2 + KSPARSE(1, 492)=70 + KSPARSE(2, 492)=2 +!RPR5/OH + KSPARSE(1, 493)=70 + KSPARSE(2, 493)=15 +!RPR5/RPR5 + KSPARSE(1, 494)=70 + KSPARSE(2, 494)=70 +!RPR8/NO + KSPARSE(1, 495)=71 + KSPARSE(2, 495)=1 +!RPR8/NO3 + KSPARSE(1, 496)=71 + KSPARSE(2, 496)=8 +!RPR8/HO2 + KSPARSE(1, 497)=71 + KSPARSE(2, 497)=10 +!RPR8/OH + KSPARSE(1, 498)=71 + KSPARSE(2, 498)=15 +!RPR8/RPR8 + KSPARSE(1, 499)=71 + KSPARSE(2, 499)=71 +!RPR8/RO2T + KSPARSE(1, 500)=71 + KSPARSE(2, 500)=85 +!RP10/NO + KSPARSE(1, 501)=72 + KSPARSE(2, 501)=1 +!RP10/HO2 + KSPARSE(1, 502)=72 + KSPARSE(2, 502)=10 +!RP10/OH + KSPARSE(1, 503)=72 + KSPARSE(2, 503)=15 +!RP10/RP10 + KSPARSE(1, 504)=72 + KSPARSE(2, 504)=72 +!RP10/RO2T + KSPARSE(1, 505)=72 + KSPARSE(2, 505)=85 +!RP11/NO + KSPARSE(1, 506)=73 + KSPARSE(2, 506)=1 +!RP11/HO2 + KSPARSE(1, 507)=73 + KSPARSE(2, 507)=10 +!RP11/OH + KSPARSE(1, 508)=73 + KSPARSE(2, 508)=15 +!RP11/RP11 + KSPARSE(1, 509)=73 + KSPARSE(2, 509)=73 +!RP11/RO2T + KSPARSE(1, 510)=73 + KSPARSE(2, 510)=85 +!RP16/NO3 + KSPARSE(1, 511)=74 + KSPARSE(2, 511)=8 +!RP16/HO2 + KSPARSE(1, 512)=74 + KSPARSE(2, 512)=10 +!RP16/OH + KSPARSE(1, 513)=74 + KSPARSE(2, 513)=15 +!RP16/RP16 + KSPARSE(1, 514)=74 + KSPARSE(2, 514)=74 +!RPRL/NO + KSPARSE(1, 515)=75 + KSPARSE(2, 515)=1 +!RPRL/HO2 + KSPARSE(1, 516)=75 + KSPARSE(2, 516)=10 +!RPRL/OH + KSPARSE(1, 517)=75 + KSPARSE(2, 517)=15 +!RPRL/ARAL + KSPARSE(1, 518)=75 + KSPARSE(2, 518)=25 +!RPRL/RPRL + KSPARSE(1, 519)=75 + KSPARSE(2, 519)=75 +!RPRL/RO2T + KSPARSE(1, 520)=75 + KSPARSE(2, 520)=85 +!APAN/NO2 + KSPARSE(1, 521)=76 + KSPARSE(2, 521)=2 +!APAN/APAN + KSPARSE(1, 522)=76 + KSPARSE(2, 522)=76 +!PAN1/NO2 + KSPARSE(1, 523)=77 + KSPARSE(2, 523)=2 +!PAN1/PAN1 + KSPARSE(1, 524)=77 + KSPARSE(2, 524)=77 +!PAN2/NO2 + KSPARSE(1, 525)=78 + KSPARSE(2, 525)=2 +!PAN2/PAN2 + KSPARSE(1, 526)=78 + KSPARSE(2, 526)=78 +!PAN3/NO2 + KSPARSE(1, 527)=79 + KSPARSE(2, 527)=2 +!PAN3/PAN3 + KSPARSE(1, 528)=79 + KSPARSE(2, 528)=79 +!PAN4/NO2 + KSPARSE(1, 529)=80 + KSPARSE(2, 529)=2 +!PAN4/PAN4 + KSPARSE(1, 530)=80 + KSPARSE(2, 530)=80 +!PAN6/NO2 + KSPARSE(1, 531)=81 + KSPARSE(2, 531)=2 +!PAN6/PAN6 + KSPARSE(1, 532)=81 + KSPARSE(2, 532)=81 +!PAN7/NO2 + KSPARSE(1, 533)=82 + KSPARSE(2, 533)=2 +!PAN7/PAN7 + KSPARSE(1, 534)=82 + KSPARSE(2, 534)=82 +!PAN8/NO2 + KSPARSE(1, 535)=83 + KSPARSE(2, 535)=2 +!PAN8/PAN8 + KSPARSE(1, 536)=83 + KSPARSE(2, 536)=83 +!PN10/NO2 + KSPARSE(1, 537)=84 + KSPARSE(2, 537)=2 +!PN10/PN10 + KSPARSE(1, 538)=84 + KSPARSE(2, 538)=84 +!RO2T/NO + KSPARSE(1, 539)=85 + KSPARSE(2, 539)=1 +!RO2T/O3 + KSPARSE(1, 540)=85 + KSPARSE(2, 540)=3 +!RO2T/NO3 + KSPARSE(1, 541)=85 + KSPARSE(2, 541)=8 +!RO2T/HO2 + KSPARSE(1, 542)=85 + KSPARSE(2, 542)=10 +!RO2T/OH + KSPARSE(1, 543)=85 + KSPARSE(2, 543)=15 +!RO2T/ETHE + KSPARSE(1, 544)=85 + KSPARSE(2, 544)=16 +!RO2T/OLEL + KSPARSE(1, 545)=85 + KSPARSE(2, 545)=17 +!RO2T/OLEH + KSPARSE(1, 546)=85 + KSPARSE(2, 546)=18 +!RO2T/ALKL + KSPARSE(1, 547)=85 + KSPARSE(2, 547)=19 +!RO2T/ALKM + KSPARSE(1, 548)=85 + KSPARSE(2, 548)=20 +!RO2T/ALKH + KSPARSE(1, 549)=85 + KSPARSE(2, 549)=21 +!RO2T/AROL + KSPARSE(1, 550)=85 + KSPARSE(2, 550)=23 +!RO2T/AROO + KSPARSE(1, 551)=85 + KSPARSE(2, 551)=24 +!RO2T/ARAL + KSPARSE(1, 552)=85 + KSPARSE(2, 552)=25 +!RO2T/ARAC + KSPARSE(1, 553)=85 + KSPARSE(2, 553)=26 +!RO2T/PAH + KSPARSE(1, 554)=85 + KSPARSE(2, 554)=27 +!RO2T/ALD2 + KSPARSE(1, 555)=85 + KSPARSE(2, 555)=29 +!RO2T/KETL + KSPARSE(1, 556)=85 + KSPARSE(2, 556)=30 +!RO2T/KETH + KSPARSE(1, 557)=85 + KSPARSE(2, 557)=31 +!RO2T/ETOH + KSPARSE(1, 558)=85 + KSPARSE(2, 558)=33 +!RO2T/ALCH + KSPARSE(1, 559)=85 + KSPARSE(2, 559)=34 +!RO2T/ISOP + KSPARSE(1, 560)=85 + KSPARSE(2, 560)=35 +!RO2T/BIOL + KSPARSE(1, 561)=85 + KSPARSE(2, 561)=36 +!RO2T/BIOH + KSPARSE(1, 562)=85 + KSPARSE(2, 562)=37 +!RO2T/MTBE + KSPARSE(1, 563)=85 + KSPARSE(2, 563)=38 +!RO2T/MVK + KSPARSE(1, 564)=85 + KSPARSE(2, 564)=39 +!RO2T/MCR + KSPARSE(1, 565)=85 + KSPARSE(2, 565)=40 +!RO2T/MGLY + KSPARSE(1, 566)=85 + KSPARSE(2, 566)=41 +!RO2T/RPR3 + KSPARSE(1, 567)=85 + KSPARSE(2, 567)=57 +!RO2T/RPR1 + KSPARSE(1, 568)=85 + KSPARSE(2, 568)=69 +!RO2T/RPR8 + KSPARSE(1, 569)=85 + KSPARSE(2, 569)=71 +!RO2T/RP16 + KSPARSE(1, 570)=85 + KSPARSE(2, 570)=74 +!RO2T/APAN + KSPARSE(1, 571)=85 + KSPARSE(2, 571)=76 +!RO2T/PAN1 + KSPARSE(1, 572)=85 + KSPARSE(2, 572)=77 +!RO2T/PAN2 + KSPARSE(1, 573)=85 + KSPARSE(2, 573)=78 +!RO2T/PAN3 + KSPARSE(1, 574)=85 + KSPARSE(2, 574)=79 +!RO2T/PAN4 + KSPARSE(1, 575)=85 + KSPARSE(2, 575)=80 +!RO2T/PAN6 + KSPARSE(1, 576)=85 + KSPARSE(2, 576)=81 +!RO2T/PAN7 + KSPARSE(1, 577)=85 + KSPARSE(2, 577)=82 +!RO2T/PAN8 + KSPARSE(1, 578)=85 + KSPARSE(2, 578)=83 +!RO2T/PN10 + KSPARSE(1, 579)=85 + KSPARSE(2, 579)=84 +!RO2T/RO2T + KSPARSE(1, 580)=85 + KSPARSE(2, 580)=85 +!RO2T/RO21 + KSPARSE(1, 581)=85 + KSPARSE(2, 581)=86 +!RO2T/RO25 + KSPARSE(1, 582)=85 + KSPARSE(2, 582)=87 +!RO21/NO + KSPARSE(1, 583)=86 + KSPARSE(2, 583)=1 +!RO21/HO2 + KSPARSE(1, 584)=86 + KSPARSE(2, 584)=10 +!RO21/OH + KSPARSE(1, 585)=86 + KSPARSE(2, 585)=15 +!RO21/ETHE + KSPARSE(1, 586)=86 + KSPARSE(2, 586)=16 +!RO21/RO2T + KSPARSE(1, 587)=86 + KSPARSE(2, 587)=85 +!RO21/RO21 + KSPARSE(1, 588)=86 + KSPARSE(2, 588)=86 +!RO25/NO + KSPARSE(1, 589)=87 + KSPARSE(2, 589)=1 +!RO25/O3 + KSPARSE(1, 590)=87 + KSPARSE(2, 590)=3 +!RO25/HO2 + KSPARSE(1, 591)=87 + KSPARSE(2, 591)=10 +!RO25/OH + KSPARSE(1, 592)=87 + KSPARSE(2, 592)=15 +!RO25/OLEL + KSPARSE(1, 593)=87 + KSPARSE(2, 593)=17 +!RO25/ALKL + KSPARSE(1, 594)=87 + KSPARSE(2, 594)=19 +!RO25/ALD2 + KSPARSE(1, 595)=87 + KSPARSE(2, 595)=29 +!RO25/KETL + KSPARSE(1, 596)=87 + KSPARSE(2, 596)=30 +!RO25/KETH + KSPARSE(1, 597)=87 + KSPARSE(2, 597)=31 +!RO25/RO2T + KSPARSE(1, 598)=87 + KSPARSE(2, 598)=85 +!RO25/RO25 + KSPARSE(1, 599)=87 + KSPARSE(2, 599)=87 +KSPARSEDIM = 599 +RETURN +END SUBROUTINE CH_SPARSE_GAZ +!! +!! ####################### + SUBROUTINE CH_SPARSE_AQ +!! ####################### +!! +!!*** *MODD_CH_SPARSE* +!! +!! PURPOSE +!! ------- +! calculation of the non-zero matrix elements in the Jacobian +!! +!!** METHOD +!! ------ +!! A 2D array KSPARSE of DIMESNSION(2,*) is returned, containing +!! the indices of the non-zero matrix elements in the Jacobian. +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Karsten Suhre (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) +!! +!!---------------------------------------------------------------------- +!! +!! EXTERNAL +!! -------- +!! none +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +!! none +!! +!! EXPLICIT ARGUMENTS +!! ------------------ +IMPLICIT NONE +!! +!! LOCAL VARIABLES +!! --------------- +!! none +!!---------------------------------------------------------------------- +!! +!! EXECUTABLE STATEMENTS +!! --------------------- +! check if output array is large enough +IF (KSPARSEDIM.LT.1108) THEN + STOP 'CH_SPARSE ERROR: array KSPARSE is too small!' +END IF +!NO/NO + KSPARSE(1, 1)=1 + KSPARSE(2, 1)=1 +!NO/NO2 + KSPARSE(1, 2)=1 + KSPARSE(2, 2)=2 +!NO/O3 + KSPARSE(1, 3)=1 + KSPARSE(2, 3)=3 +!NO/HONO + KSPARSE(1, 4)=1 + KSPARSE(2, 4)=4 +!NO/NO3 + KSPARSE(1, 5)=1 + KSPARSE(2, 5)=8 +!NO/HO2 + KSPARSE(1, 6)=1 + KSPARSE(2, 6)=10 +!NO/OH + KSPARSE(1, 7)=1 + KSPARSE(2, 7)=15 +!NO/RO2T + KSPARSE(1, 8)=1 + KSPARSE(2, 8)=85 +!NO/RO21 + KSPARSE(1, 9)=1 + KSPARSE(2, 9)=86 +!NO/RO25 + KSPARSE(1, 10)=1 + KSPARSE(2, 10)=87 !NO/WC_NO - KSPARSE(1, 37)=3 - KSPARSE(2, 37)=44 + KSPARSE(1, 11)=1 + KSPARSE(2, 11)=90 !NO/WR_NO - KSPARSE(1, 38)=3 - KSPARSE(2, 38)=69 -!NO2/O3 - KSPARSE(1, 39)=4 - KSPARSE(2, 39)=1 + KSPARSE(1, 12)=1 + KSPARSE(2, 12)=127 !NO2/NO - KSPARSE(1, 40)=4 - KSPARSE(2, 40)=3 + KSPARSE(1, 13)=2 + KSPARSE(2, 13)=1 !NO2/NO2 - KSPARSE(1, 41)=4 - KSPARSE(2, 41)=4 -!NO2/NO3 - KSPARSE(1, 42)=4 - KSPARSE(2, 42)=5 -!NO2/N2O5 - KSPARSE(1, 43)=4 - KSPARSE(2, 43)=6 + KSPARSE(1, 14)=2 + KSPARSE(2, 14)=2 +!NO2/O3 + KSPARSE(1, 15)=2 + KSPARSE(2, 15)=3 !NO2/HONO - KSPARSE(1, 44)=4 - KSPARSE(2, 44)=7 -!NO2/HNO3 - KSPARSE(1, 45)=4 - KSPARSE(2, 45)=8 + KSPARSE(1, 16)=2 + KSPARSE(2, 16)=4 !NO2/HNO4 - KSPARSE(1, 46)=4 - KSPARSE(2, 46)=9 -!NO2/OH - KSPARSE(1, 47)=4 - KSPARSE(2, 47)=14 + KSPARSE(1, 17)=2 + KSPARSE(2, 17)=6 +!NO2/N2O5 + KSPARSE(1, 18)=2 + KSPARSE(2, 18)=7 +!NO2/NO3 + KSPARSE(1, 19)=2 + KSPARSE(2, 19)=8 !NO2/HO2 - KSPARSE(1, 48)=4 - KSPARSE(2, 48)=15 -!NO2/CARBO - KSPARSE(1, 49)=4 - KSPARSE(2, 49)=25 -!NO2/ONIT - KSPARSE(1, 50)=4 - KSPARSE(2, 50)=26 -!NO2/PAN - KSPARSE(1, 51)=4 - KSPARSE(2, 51)=27 -!NO2/MO2 - KSPARSE(1, 52)=4 - KSPARSE(2, 52)=32 -!NO2/ALKAP - KSPARSE(1, 53)=4 - KSPARSE(2, 53)=33 -!NO2/ALKEP - KSPARSE(1, 54)=4 - KSPARSE(2, 54)=34 -!NO2/BIOP - KSPARSE(1, 55)=4 - KSPARSE(2, 55)=35 -!NO2/PHO - KSPARSE(1, 56)=4 - KSPARSE(2, 56)=36 -!NO2/ADD - KSPARSE(1, 57)=4 - KSPARSE(2, 57)=37 -!NO2/AROP - KSPARSE(1, 58)=4 - KSPARSE(2, 58)=38 -!NO2/CARBOP - KSPARSE(1, 59)=4 - KSPARSE(2, 59)=39 -!NO2/OLN - KSPARSE(1, 60)=4 - KSPARSE(2, 60)=40 -!NO2/XO2 - KSPARSE(1, 61)=4 - KSPARSE(2, 61)=41 + KSPARSE(1, 20)=2 + KSPARSE(2, 20)=10 +!NO2/OH + KSPARSE(1, 21)=2 + KSPARSE(2, 21)=15 +!NO2/APAN + KSPARSE(1, 22)=2 + KSPARSE(2, 22)=76 +!NO2/PAN1 + KSPARSE(1, 23)=2 + KSPARSE(2, 23)=77 +!NO2/PAN2 + KSPARSE(1, 24)=2 + KSPARSE(2, 24)=78 +!NO2/PAN3 + KSPARSE(1, 25)=2 + KSPARSE(2, 25)=79 +!NO2/PAN4 + KSPARSE(1, 26)=2 + KSPARSE(2, 26)=80 +!NO2/PAN6 + KSPARSE(1, 27)=2 + KSPARSE(2, 27)=81 +!NO2/PAN7 + KSPARSE(1, 28)=2 + KSPARSE(2, 28)=82 +!NO2/PAN8 + KSPARSE(1, 29)=2 + KSPARSE(2, 29)=83 +!NO2/PN10 + KSPARSE(1, 30)=2 + KSPARSE(2, 30)=84 +!NO2/RO2T + KSPARSE(1, 31)=2 + KSPARSE(2, 31)=85 +!NO2/RO21 + KSPARSE(1, 32)=2 + KSPARSE(2, 32)=86 +!NO2/RO25 + KSPARSE(1, 33)=2 + KSPARSE(2, 33)=87 !NO2/WC_NO2 - KSPARSE(1, 62)=4 - KSPARSE(2, 62)=45 + KSPARSE(1, 34)=2 + KSPARSE(2, 34)=91 !NO2/WR_NO2 + KSPARSE(1, 35)=2 + KSPARSE(2, 35)=128 +!O3/NO + KSPARSE(1, 36)=3 + KSPARSE(2, 36)=1 +!O3/NO2 + KSPARSE(1, 37)=3 + KSPARSE(2, 37)=2 +!O3/O3 + KSPARSE(1, 38)=3 + KSPARSE(2, 38)=3 +!O3/NO3 + KSPARSE(1, 39)=3 + KSPARSE(2, 39)=8 +!O3/HO2 + KSPARSE(1, 40)=3 + KSPARSE(2, 40)=10 +!O3/OH + KSPARSE(1, 41)=3 + KSPARSE(2, 41)=15 +!O3/ETHE + KSPARSE(1, 42)=3 + KSPARSE(2, 42)=16 +!O3/OLEL + KSPARSE(1, 43)=3 + KSPARSE(2, 43)=17 +!O3/OLEH + KSPARSE(1, 44)=3 + KSPARSE(2, 44)=18 +!O3/ARAL + KSPARSE(1, 45)=3 + KSPARSE(2, 45)=25 +!O3/ISOP + KSPARSE(1, 46)=3 + KSPARSE(2, 46)=35 +!O3/BIOL + KSPARSE(1, 47)=3 + KSPARSE(2, 47)=36 +!O3/BIOH + KSPARSE(1, 48)=3 + KSPARSE(2, 48)=37 +!O3/MVK + KSPARSE(1, 49)=3 + KSPARSE(2, 49)=39 +!O3/MCR + KSPARSE(1, 50)=3 + KSPARSE(2, 50)=40 +!O3/RPG2 + KSPARSE(1, 51)=3 + KSPARSE(2, 51)=50 +!O3/RP18 + KSPARSE(1, 52)=3 + KSPARSE(2, 52)=51 +!O3/RPG3 + KSPARSE(1, 53)=3 + KSPARSE(2, 53)=52 +!O3/RPR7 + KSPARSE(1, 54)=3 + KSPARSE(2, 54)=62 +!O3/RPG7 + KSPARSE(1, 55)=3 + KSPARSE(2, 55)=63 +!O3/RPR5 + KSPARSE(1, 56)=3 + KSPARSE(2, 56)=70 +!O3/RP11 + KSPARSE(1, 57)=3 + KSPARSE(2, 57)=73 +!O3/RPRL + KSPARSE(1, 58)=3 + KSPARSE(2, 58)=75 +!O3/WC_O3 + KSPARSE(1, 59)=3 + KSPARSE(2, 59)=88 +!O3/WR_O3 + KSPARSE(1, 60)=3 + KSPARSE(2, 60)=125 +!HONO/NO + KSPARSE(1, 61)=4 + KSPARSE(2, 61)=1 +!HONO/NO2 + KSPARSE(1, 62)=4 + KSPARSE(2, 62)=2 +!HONO/HONO KSPARSE(1, 63)=4 - KSPARSE(2, 63)=70 -!NO3/O3 - KSPARSE(1, 64)=5 - KSPARSE(2, 64)=1 -!NO3/NO - KSPARSE(1, 65)=5 - KSPARSE(2, 65)=3 -!NO3/NO2 - KSPARSE(1, 66)=5 - KSPARSE(2, 66)=4 -!NO3/NO3 + KSPARSE(2, 63)=4 +!HONO/OH + KSPARSE(1, 64)=4 + KSPARSE(2, 64)=15 +!HONO/WC_HONO + KSPARSE(1, 65)=4 + KSPARSE(2, 65)=94 +!HONO/WR_HONO + KSPARSE(1, 66)=4 + KSPARSE(2, 66)=131 +!HNO3/NO2 KSPARSE(1, 67)=5 - KSPARSE(2, 67)=5 -!NO3/N2O5 + KSPARSE(2, 67)=2 +!HNO3/HNO3 KSPARSE(1, 68)=5 - KSPARSE(2, 68)=6 -!NO3/HNO3 + KSPARSE(2, 68)=5 +!HNO3/N2O5 KSPARSE(1, 69)=5 - KSPARSE(2, 69)=8 -!NO3/HNO4 + KSPARSE(2, 69)=7 +!HNO3/NO3 KSPARSE(1, 70)=5 - KSPARSE(2, 70)=9 -!NO3/OH + KSPARSE(2, 70)=8 +!HNO3/HO2 KSPARSE(1, 71)=5 - KSPARSE(2, 71)=14 -!NO3/HO2 + KSPARSE(2, 71)=10 +!HNO3/OH KSPARSE(1, 72)=5 KSPARSE(2, 72)=15 -!NO3/ALKE +!HNO3/AROO KSPARSE(1, 73)=5 - KSPARSE(2, 73)=19 -!NO3/BIO + KSPARSE(2, 73)=24 +!HNO3/ARAL KSPARSE(1, 74)=5 - KSPARSE(2, 74)=20 -!NO3/ARO + KSPARSE(2, 74)=25 +!HNO3/HCHO KSPARSE(1, 75)=5 - KSPARSE(2, 75)=21 -!NO3/HCHO + KSPARSE(2, 75)=28 +!HNO3/ALD2 KSPARSE(1, 76)=5 - KSPARSE(2, 76)=22 -!NO3/ALD + KSPARSE(2, 76)=29 +!HNO3/MCR KSPARSE(1, 77)=5 - KSPARSE(2, 77)=23 -!NO3/CARBO + KSPARSE(2, 77)=40 +!HNO3/MGLY KSPARSE(1, 78)=5 - KSPARSE(2, 78)=25 -!NO3/PAN + KSPARSE(2, 78)=41 +!HNO3/RPR3 KSPARSE(1, 79)=5 - KSPARSE(2, 79)=27 -!NO3/MO2 + KSPARSE(2, 79)=57 +!HNO3/RPR4 KSPARSE(1, 80)=5 - KSPARSE(2, 80)=32 -!NO3/ALKAP + KSPARSE(2, 80)=61 +!HNO3/RPR1 KSPARSE(1, 81)=5 - KSPARSE(2, 81)=33 -!NO3/ALKEP + KSPARSE(2, 81)=69 +!HNO3/RPR8 KSPARSE(1, 82)=5 - KSPARSE(2, 82)=34 -!NO3/BIOP + KSPARSE(2, 82)=71 +!HNO3/RP16 KSPARSE(1, 83)=5 - KSPARSE(2, 83)=35 -!NO3/AROP + KSPARSE(2, 83)=74 +!HNO3/WC_HNO3 KSPARSE(1, 84)=5 - KSPARSE(2, 84)=38 -!NO3/CARBOP + KSPARSE(2, 84)=95 +!HNO3/WR_HNO3 KSPARSE(1, 85)=5 - KSPARSE(2, 85)=39 -!NO3/OLN - KSPARSE(1, 86)=5 - KSPARSE(2, 86)=40 -!NO3/XO2 - KSPARSE(1, 87)=5 - KSPARSE(2, 87)=41 -!NO3/WC_NO3 - KSPARSE(1, 88)=5 - KSPARSE(2, 88)=46 -!NO3/WR_NO3 - KSPARSE(1, 89)=5 - KSPARSE(2, 89)=71 -!N2O5/NO2 + KSPARSE(2, 85)=132 +!HNO4/NO2 + KSPARSE(1, 86)=6 + KSPARSE(2, 86)=2 +!HNO4/HNO4 + KSPARSE(1, 87)=6 + KSPARSE(2, 87)=6 +!HNO4/HO2 + KSPARSE(1, 88)=6 + KSPARSE(2, 88)=10 +!HNO4/OH + KSPARSE(1, 89)=6 + KSPARSE(2, 89)=15 +!HNO4/WC_HNO4 KSPARSE(1, 90)=6 - KSPARSE(2, 90)=4 -!N2O5/NO3 + KSPARSE(2, 90)=96 +!HNO4/WR_HNO4 KSPARSE(1, 91)=6 - KSPARSE(2, 91)=5 + KSPARSE(2, 91)=133 +!N2O5/NO2 + KSPARSE(1, 92)=7 + KSPARSE(2, 92)=2 !N2O5/N2O5 - KSPARSE(1, 92)=6 - KSPARSE(2, 92)=6 + KSPARSE(1, 93)=7 + KSPARSE(2, 93)=7 +!N2O5/NO3 + KSPARSE(1, 94)=7 + KSPARSE(2, 94)=8 !N2O5/WC_N2O5 - KSPARSE(1, 93)=6 - KSPARSE(2, 93)=47 -!N2O5/WR_N2O5 - KSPARSE(1, 94)=6 - KSPARSE(2, 94)=72 -!HONO/NO KSPARSE(1, 95)=7 - KSPARSE(2, 95)=3 -!HONO/NO2 + KSPARSE(2, 95)=93 +!N2O5/WR_N2O5 KSPARSE(1, 96)=7 - KSPARSE(2, 96)=4 -!HONO/HONO - KSPARSE(1, 97)=7 - KSPARSE(2, 97)=7 -!HONO/OH - KSPARSE(1, 98)=7 - KSPARSE(2, 98)=14 -!HONO/ADD - KSPARSE(1, 99)=7 - KSPARSE(2, 99)=37 -!HONO/WC_HONO - KSPARSE(1, 100)=7 - KSPARSE(2, 100)=48 -!HONO/WR_HONO - KSPARSE(1, 101)=7 - KSPARSE(2, 101)=73 -!HNO3/NO2 + KSPARSE(2, 96)=130 +!NO3/NO + KSPARSE(1, 97)=8 + KSPARSE(2, 97)=1 +!NO3/NO2 + KSPARSE(1, 98)=8 + KSPARSE(2, 98)=2 +!NO3/O3 + KSPARSE(1, 99)=8 + KSPARSE(2, 99)=3 +!NO3/HNO3 + KSPARSE(1, 100)=8 + KSPARSE(2, 100)=5 +!NO3/N2O5 + KSPARSE(1, 101)=8 + KSPARSE(2, 101)=7 +!NO3/NO3 KSPARSE(1, 102)=8 - KSPARSE(2, 102)=4 -!HNO3/NO3 + KSPARSE(2, 102)=8 +!NO3/HO2 KSPARSE(1, 103)=8 - KSPARSE(2, 103)=5 -!HNO3/HNO3 + KSPARSE(2, 103)=10 +!NO3/OH KSPARSE(1, 104)=8 - KSPARSE(2, 104)=8 -!HNO3/OH + KSPARSE(2, 104)=15 +!NO3/ETHE KSPARSE(1, 105)=8 - KSPARSE(2, 105)=14 -!HNO3/HO2 + KSPARSE(2, 105)=16 +!NO3/OLEL KSPARSE(1, 106)=8 - KSPARSE(2, 106)=15 -!HNO3/ARO + KSPARSE(2, 106)=17 +!NO3/OLEH KSPARSE(1, 107)=8 - KSPARSE(2, 107)=21 -!HNO3/HCHO + KSPARSE(2, 107)=18 +!NO3/AROO KSPARSE(1, 108)=8 - KSPARSE(2, 108)=22 -!HNO3/ALD + KSPARSE(2, 108)=24 +!NO3/ARAL KSPARSE(1, 109)=8 - KSPARSE(2, 109)=23 -!HNO3/CARBO + KSPARSE(2, 109)=25 +!NO3/HCHO KSPARSE(1, 110)=8 - KSPARSE(2, 110)=25 -!HNO3/WC_HNO3 + KSPARSE(2, 110)=28 +!NO3/ALD2 KSPARSE(1, 111)=8 - KSPARSE(2, 111)=49 -!HNO3/WR_HNO3 + KSPARSE(2, 111)=29 +!NO3/ISOP KSPARSE(1, 112)=8 - KSPARSE(2, 112)=74 -!HNO4/NO2 - KSPARSE(1, 113)=9 - KSPARSE(2, 113)=4 -!HNO4/HNO4 - KSPARSE(1, 114)=9 - KSPARSE(2, 114)=9 -!HNO4/OH - KSPARSE(1, 115)=9 - KSPARSE(2, 115)=14 -!HNO4/HO2 - KSPARSE(1, 116)=9 - KSPARSE(2, 116)=15 -!HNO4/WC_HNO4 - KSPARSE(1, 117)=9 - KSPARSE(2, 117)=50 -!HNO4/WR_HNO4 - KSPARSE(1, 118)=9 - KSPARSE(2, 118)=75 + KSPARSE(2, 112)=35 +!NO3/BIOL + KSPARSE(1, 113)=8 + KSPARSE(2, 113)=36 +!NO3/BIOH + KSPARSE(1, 114)=8 + KSPARSE(2, 114)=37 +!NO3/MCR + KSPARSE(1, 115)=8 + KSPARSE(2, 115)=40 +!NO3/MGLY + KSPARSE(1, 116)=8 + KSPARSE(2, 116)=41 +!NO3/RPR3 + KSPARSE(1, 117)=8 + KSPARSE(2, 117)=57 +!NO3/RPR4 + KSPARSE(1, 118)=8 + KSPARSE(2, 118)=61 +!NO3/RPR1 + KSPARSE(1, 119)=8 + KSPARSE(2, 119)=69 +!NO3/RPR8 + KSPARSE(1, 120)=8 + KSPARSE(2, 120)=71 +!NO3/RP16 + KSPARSE(1, 121)=8 + KSPARSE(2, 121)=74 +!NO3/WC_NO3 + KSPARSE(1, 122)=8 + KSPARSE(2, 122)=92 +!NO3/WR_NO3 + KSPARSE(1, 123)=8 + KSPARSE(2, 123)=129 !NH3/NH3 - KSPARSE(1, 119)=10 - KSPARSE(2, 119)=10 + KSPARSE(1, 124)=9 + KSPARSE(2, 124)=9 !NH3/OH - KSPARSE(1, 120)=10 - KSPARSE(2, 120)=14 + KSPARSE(1, 125)=9 + KSPARSE(2, 125)=15 !NH3/WC_NH3 - KSPARSE(1, 121)=10 - KSPARSE(2, 121)=51 + KSPARSE(1, 126)=9 + KSPARSE(2, 126)=97 !NH3/WR_NH3 - KSPARSE(1, 122)=10 - KSPARSE(2, 122)=76 -!SO2/SO2 - KSPARSE(1, 123)=11 - KSPARSE(2, 123)=11 -!SO2/OH - KSPARSE(1, 124)=11 - KSPARSE(2, 124)=14 -!SO2/WC_SO2 - KSPARSE(1, 125)=11 - KSPARSE(2, 125)=55 -!SO2/WR_SO2 - KSPARSE(1, 126)=11 - KSPARSE(2, 126)=80 -!SULF/SO2 - KSPARSE(1, 127)=12 - KSPARSE(2, 127)=11 -!SULF/SULF - KSPARSE(1, 128)=12 - KSPARSE(2, 128)=12 -!SULF/OH - KSPARSE(1, 129)=12 - KSPARSE(2, 129)=14 -!SULF/WC_SULF - KSPARSE(1, 130)=12 - KSPARSE(2, 130)=56 -!SULF/WR_SULF - KSPARSE(1, 131)=12 - KSPARSE(2, 131)=81 + KSPARSE(1, 127)=9 + KSPARSE(2, 127)=134 +!HO2/NO + KSPARSE(1, 128)=10 + KSPARSE(2, 128)=1 +!HO2/NO2 + KSPARSE(1, 129)=10 + KSPARSE(2, 129)=2 +!HO2/O3 + KSPARSE(1, 130)=10 + KSPARSE(2, 130)=3 +!HO2/HONO + KSPARSE(1, 131)=10 + KSPARSE(2, 131)=4 +!HO2/HNO4 + KSPARSE(1, 132)=10 + KSPARSE(2, 132)=6 +!HO2/NO3 + KSPARSE(1, 133)=10 + KSPARSE(2, 133)=8 +!HO2/HO2 + KSPARSE(1, 134)=10 + KSPARSE(2, 134)=10 +!HO2/CO + KSPARSE(1, 135)=10 + KSPARSE(2, 135)=11 +!HO2/H2O2 + KSPARSE(1, 136)=10 + KSPARSE(2, 136)=12 +!HO2/SO2 + KSPARSE(1, 137)=10 + KSPARSE(2, 137)=13 +!HO2/OH + KSPARSE(1, 138)=10 + KSPARSE(2, 138)=15 +!HO2/ETHE + KSPARSE(1, 139)=10 + KSPARSE(2, 139)=16 +!HO2/OLEL + KSPARSE(1, 140)=10 + KSPARSE(2, 140)=17 +!HO2/OLEH + KSPARSE(1, 141)=10 + KSPARSE(2, 141)=18 +!HO2/AROH + KSPARSE(1, 142)=10 + KSPARSE(2, 142)=22 +!HO2/AROL + KSPARSE(1, 143)=10 + KSPARSE(2, 143)=23 +!HO2/AROO + KSPARSE(1, 144)=10 + KSPARSE(2, 144)=24 +!HO2/ARAL + KSPARSE(1, 145)=10 + KSPARSE(2, 145)=25 +!HO2/ARAC + KSPARSE(1, 146)=10 + KSPARSE(2, 146)=26 +!HO2/PAH + KSPARSE(1, 147)=10 + KSPARSE(2, 147)=27 +!HO2/HCHO + KSPARSE(1, 148)=10 + KSPARSE(2, 148)=28 +!HO2/ALD2 + KSPARSE(1, 149)=10 + KSPARSE(2, 149)=29 +!HO2/MEOH + KSPARSE(1, 150)=10 + KSPARSE(2, 150)=32 +!HO2/ETOH + KSPARSE(1, 151)=10 + KSPARSE(2, 151)=33 +!HO2/ISOP + KSPARSE(1, 152)=10 + KSPARSE(2, 152)=35 +!HO2/BIOL + KSPARSE(1, 153)=10 + KSPARSE(2, 153)=36 +!HO2/MVK + KSPARSE(1, 154)=10 + KSPARSE(2, 154)=39 +!HO2/MCR + KSPARSE(1, 155)=10 + KSPARSE(2, 155)=40 +!HO2/MGLY + KSPARSE(1, 156)=10 + KSPARSE(2, 156)=41 +!HO2/ORA1 + KSPARSE(1, 157)=10 + KSPARSE(2, 157)=43 +!HO2/RPR3 + KSPARSE(1, 158)=10 + KSPARSE(2, 158)=57 +!HO2/RPR1 + KSPARSE(1, 159)=10 + KSPARSE(2, 159)=69 +!HO2/RPR8 + KSPARSE(1, 160)=10 + KSPARSE(2, 160)=71 +!HO2/RP10 + KSPARSE(1, 161)=10 + KSPARSE(2, 161)=72 +!HO2/RP16 + KSPARSE(1, 162)=10 + KSPARSE(2, 162)=74 +!HO2/RO2T + KSPARSE(1, 163)=10 + KSPARSE(2, 163)=85 +!HO2/RO21 + KSPARSE(1, 164)=10 + KSPARSE(2, 164)=86 +!HO2/RO25 + KSPARSE(1, 165)=10 + KSPARSE(2, 165)=87 +!HO2/WC_HO2 + KSPARSE(1, 166)=10 + KSPARSE(2, 166)=99 +!HO2/WR_HO2 + KSPARSE(1, 167)=10 + KSPARSE(2, 167)=136 +!CO/NO + KSPARSE(1, 168)=11 + KSPARSE(2, 168)=1 !CO/O3 - KSPARSE(1, 132)=13 - KSPARSE(2, 132)=1 + KSPARSE(1, 169)=11 + KSPARSE(2, 169)=3 !CO/NO3 - KSPARSE(1, 133)=13 - KSPARSE(2, 133)=5 + KSPARSE(1, 170)=11 + KSPARSE(2, 170)=8 +!CO/HO2 + KSPARSE(1, 171)=11 + KSPARSE(2, 171)=10 !CO/CO - KSPARSE(1, 134)=13 - KSPARSE(2, 134)=13 + KSPARSE(1, 172)=11 + KSPARSE(2, 172)=11 !CO/OH - KSPARSE(1, 135)=13 - KSPARSE(2, 135)=14 -!CO/ALKA - KSPARSE(1, 136)=13 - KSPARSE(2, 136)=18 -!CO/ALKE - KSPARSE(1, 137)=13 - KSPARSE(2, 137)=19 -!CO/BIO - KSPARSE(1, 138)=13 - KSPARSE(2, 138)=20 + KSPARSE(1, 173)=11 + KSPARSE(2, 173)=15 +!CO/ETHE + KSPARSE(1, 174)=11 + KSPARSE(2, 174)=16 +!CO/OLEL + KSPARSE(1, 175)=11 + KSPARSE(2, 175)=17 +!CO/OLEH + KSPARSE(1, 176)=11 + KSPARSE(2, 176)=18 !CO/HCHO - KSPARSE(1, 139)=13 - KSPARSE(2, 139)=22 -!CO/ALD - KSPARSE(1, 140)=13 - KSPARSE(2, 140)=23 -!CO/CARBO - KSPARSE(1, 141)=13 - KSPARSE(2, 141)=25 -!CO/PAN - KSPARSE(1, 142)=13 - KSPARSE(2, 142)=27 -!OH/O3 - KSPARSE(1, 143)=14 - KSPARSE(2, 143)=1 -!OH/H2O2 - KSPARSE(1, 144)=14 - KSPARSE(2, 144)=2 + KSPARSE(1, 177)=11 + KSPARSE(2, 177)=28 +!CO/ALD2 + KSPARSE(1, 178)=11 + KSPARSE(2, 178)=29 +!CO/ISOP + KSPARSE(1, 179)=11 + KSPARSE(2, 179)=35 +!CO/BIOL + KSPARSE(1, 180)=11 + KSPARSE(2, 180)=36 +!CO/BIOH + KSPARSE(1, 181)=11 + KSPARSE(2, 181)=37 +!CO/MVK + KSPARSE(1, 182)=11 + KSPARSE(2, 182)=39 +!CO/MCR + KSPARSE(1, 183)=11 + KSPARSE(2, 183)=40 +!CO/MGLY + KSPARSE(1, 184)=11 + KSPARSE(2, 184)=41 +!CO/RPR3 + KSPARSE(1, 185)=11 + KSPARSE(2, 185)=57 +!CO/RPR1 + KSPARSE(1, 186)=11 + KSPARSE(2, 186)=69 +!CO/RPR8 + KSPARSE(1, 187)=11 + KSPARSE(2, 187)=71 +!CO/RP16 + KSPARSE(1, 188)=11 + KSPARSE(2, 188)=74 +!CO/RO2T + KSPARSE(1, 189)=11 + KSPARSE(2, 189)=85 +!H2O2/O3 + KSPARSE(1, 190)=12 + KSPARSE(2, 190)=3 +!H2O2/HO2 + KSPARSE(1, 191)=12 + KSPARSE(2, 191)=10 +!H2O2/H2O2 + KSPARSE(1, 192)=12 + KSPARSE(2, 192)=12 +!H2O2/OH + KSPARSE(1, 193)=12 + KSPARSE(2, 193)=15 +!H2O2/BIOL + KSPARSE(1, 194)=12 + KSPARSE(2, 194)=36 +!H2O2/BIOH + KSPARSE(1, 195)=12 + KSPARSE(2, 195)=37 +!H2O2/WC_H2O2 + KSPARSE(1, 196)=12 + KSPARSE(2, 196)=89 +!H2O2/WR_H2O2 + KSPARSE(1, 197)=12 + KSPARSE(2, 197)=126 +!SO2/SO2 + KSPARSE(1, 198)=13 + KSPARSE(2, 198)=13 +!SO2/OH + KSPARSE(1, 199)=13 + KSPARSE(2, 199)=15 +!SO2/WC_SO2 + KSPARSE(1, 200)=13 + KSPARSE(2, 200)=101 +!SO2/WR_SO2 + KSPARSE(1, 201)=13 + KSPARSE(2, 201)=138 +!H2SO4/SO2 + KSPARSE(1, 202)=14 + KSPARSE(2, 202)=13 +!H2SO4/H2SO4 + KSPARSE(1, 203)=14 + KSPARSE(2, 203)=14 +!H2SO4/OH + KSPARSE(1, 204)=14 + KSPARSE(2, 204)=15 +!H2SO4/WC_H2SO4 + KSPARSE(1, 205)=14 + KSPARSE(2, 205)=102 +!H2SO4/WR_H2SO4 + KSPARSE(1, 206)=14 + KSPARSE(2, 206)=139 !OH/NO - KSPARSE(1, 145)=14 - KSPARSE(2, 145)=3 + KSPARSE(1, 207)=15 + KSPARSE(2, 207)=1 !OH/NO2 - KSPARSE(1, 146)=14 - KSPARSE(2, 146)=4 -!OH/NO3 - KSPARSE(1, 147)=14 - KSPARSE(2, 147)=5 + KSPARSE(1, 208)=15 + KSPARSE(2, 208)=2 +!OH/O3 + KSPARSE(1, 209)=15 + KSPARSE(2, 209)=3 !OH/HONO - KSPARSE(1, 148)=14 - KSPARSE(2, 148)=7 + KSPARSE(1, 210)=15 + KSPARSE(2, 210)=4 !OH/HNO3 - KSPARSE(1, 149)=14 - KSPARSE(2, 149)=8 + KSPARSE(1, 211)=15 + KSPARSE(2, 211)=5 !OH/HNO4 - KSPARSE(1, 150)=14 - KSPARSE(2, 150)=9 + KSPARSE(1, 212)=15 + KSPARSE(2, 212)=6 +!OH/NO3 + KSPARSE(1, 213)=15 + KSPARSE(2, 213)=8 !OH/NH3 - KSPARSE(1, 151)=14 - KSPARSE(2, 151)=10 -!OH/SO2 - KSPARSE(1, 152)=14 - KSPARSE(2, 152)=11 + KSPARSE(1, 214)=15 + KSPARSE(2, 214)=9 +!OH/HO2 + KSPARSE(1, 215)=15 + KSPARSE(2, 215)=10 !OH/CO - KSPARSE(1, 153)=14 - KSPARSE(2, 153)=13 + KSPARSE(1, 216)=15 + KSPARSE(2, 216)=11 +!OH/H2O2 + KSPARSE(1, 217)=15 + KSPARSE(2, 217)=12 +!OH/SO2 + KSPARSE(1, 218)=15 + KSPARSE(2, 218)=13 !OH/OH - KSPARSE(1, 154)=14 - KSPARSE(2, 154)=14 -!OH/HO2 - KSPARSE(1, 155)=14 - KSPARSE(2, 155)=15 -!OH/CH4 - KSPARSE(1, 156)=14 - KSPARSE(2, 156)=16 -!OH/ETH - KSPARSE(1, 157)=14 - KSPARSE(2, 157)=17 -!OH/ALKA - KSPARSE(1, 158)=14 - KSPARSE(2, 158)=18 -!OH/ALKE - KSPARSE(1, 159)=14 - KSPARSE(2, 159)=19 -!OH/BIO - KSPARSE(1, 160)=14 - KSPARSE(2, 160)=20 -!OH/ARO - KSPARSE(1, 161)=14 - KSPARSE(2, 161)=21 + KSPARSE(1, 219)=15 + KSPARSE(2, 219)=15 +!OH/ETHE + KSPARSE(1, 220)=15 + KSPARSE(2, 220)=16 +!OH/OLEL + KSPARSE(1, 221)=15 + KSPARSE(2, 221)=17 +!OH/OLEH + KSPARSE(1, 222)=15 + KSPARSE(2, 222)=18 +!OH/ALKL + KSPARSE(1, 223)=15 + KSPARSE(2, 223)=19 +!OH/ALKM + KSPARSE(1, 224)=15 + KSPARSE(2, 224)=20 +!OH/ALKH + KSPARSE(1, 225)=15 + KSPARSE(2, 225)=21 +!OH/AROH + KSPARSE(1, 226)=15 + KSPARSE(2, 226)=22 +!OH/AROL + KSPARSE(1, 227)=15 + KSPARSE(2, 227)=23 +!OH/AROO + KSPARSE(1, 228)=15 + KSPARSE(2, 228)=24 +!OH/ARAL + KSPARSE(1, 229)=15 + KSPARSE(2, 229)=25 +!OH/ARAC + KSPARSE(1, 230)=15 + KSPARSE(2, 230)=26 +!OH/PAH + KSPARSE(1, 231)=15 + KSPARSE(2, 231)=27 !OH/HCHO - KSPARSE(1, 162)=14 - KSPARSE(2, 162)=22 -!OH/ALD - KSPARSE(1, 163)=14 - KSPARSE(2, 163)=23 -!OH/KET - KSPARSE(1, 164)=14 - KSPARSE(2, 164)=24 -!OH/CARBO - KSPARSE(1, 165)=14 - KSPARSE(2, 165)=25 -!OH/ONIT - KSPARSE(1, 166)=14 - KSPARSE(2, 166)=26 -!OH/PAN - KSPARSE(1, 167)=14 - KSPARSE(2, 167)=27 -!OH/OP1 - KSPARSE(1, 168)=14 - KSPARSE(2, 168)=28 -!OH/OP2 - KSPARSE(1, 169)=14 - KSPARSE(2, 169)=29 + KSPARSE(1, 232)=15 + KSPARSE(2, 232)=28 +!OH/ALD2 + KSPARSE(1, 233)=15 + KSPARSE(2, 233)=29 +!OH/KETL + KSPARSE(1, 234)=15 + KSPARSE(2, 234)=30 +!OH/KETH + KSPARSE(1, 235)=15 + KSPARSE(2, 235)=31 +!OH/MEOH + KSPARSE(1, 236)=15 + KSPARSE(2, 236)=32 +!OH/ETOH + KSPARSE(1, 237)=15 + KSPARSE(2, 237)=33 +!OH/ALCH + KSPARSE(1, 238)=15 + KSPARSE(2, 238)=34 +!OH/ISOP + KSPARSE(1, 239)=15 + KSPARSE(2, 239)=35 +!OH/BIOL + KSPARSE(1, 240)=15 + KSPARSE(2, 240)=36 +!OH/BIOH + KSPARSE(1, 241)=15 + KSPARSE(2, 241)=37 +!OH/MTBE + KSPARSE(1, 242)=15 + KSPARSE(2, 242)=38 +!OH/MVK + KSPARSE(1, 243)=15 + KSPARSE(2, 243)=39 +!OH/MCR + KSPARSE(1, 244)=15 + KSPARSE(2, 244)=40 +!OH/MGLY + KSPARSE(1, 245)=15 + KSPARSE(2, 245)=41 !OH/ORA1 - KSPARSE(1, 170)=14 - KSPARSE(2, 170)=30 + KSPARSE(1, 246)=15 + KSPARSE(2, 246)=43 !OH/ORA2 - KSPARSE(1, 171)=14 - KSPARSE(2, 171)=31 -!OH/ADD - KSPARSE(1, 172)=14 - KSPARSE(2, 172)=37 + KSPARSE(1, 247)=15 + KSPARSE(2, 247)=44 +!OH/ACID + KSPARSE(1, 248)=15 + KSPARSE(2, 248)=45 +!OH/RPG2 + KSPARSE(1, 249)=15 + KSPARSE(2, 249)=50 +!OH/RP18 + KSPARSE(1, 250)=15 + KSPARSE(2, 250)=51 +!OH/RPG3 + KSPARSE(1, 251)=15 + KSPARSE(2, 251)=52 +!OH/RPR3 + KSPARSE(1, 252)=15 + KSPARSE(2, 252)=57 +!OH/RPR7 + KSPARSE(1, 253)=15 + KSPARSE(2, 253)=62 +!OH/RPG7 + KSPARSE(1, 254)=15 + KSPARSE(2, 254)=63 +!OH/RPR1 + KSPARSE(1, 255)=15 + KSPARSE(2, 255)=69 +!OH/RPR5 + KSPARSE(1, 256)=15 + KSPARSE(2, 256)=70 +!OH/RPR8 + KSPARSE(1, 257)=15 + KSPARSE(2, 257)=71 +!OH/RP10 + KSPARSE(1, 258)=15 + KSPARSE(2, 258)=72 +!OH/RP11 + KSPARSE(1, 259)=15 + KSPARSE(2, 259)=73 +!OH/RP16 + KSPARSE(1, 260)=15 + KSPARSE(2, 260)=74 +!OH/RPRL + KSPARSE(1, 261)=15 + KSPARSE(2, 261)=75 +!OH/RO2T + KSPARSE(1, 262)=15 + KSPARSE(2, 262)=85 +!OH/RO21 + KSPARSE(1, 263)=15 + KSPARSE(2, 263)=86 +!OH/RO25 + KSPARSE(1, 264)=15 + KSPARSE(2, 264)=87 !OH/WC_OH - KSPARSE(1, 173)=14 - KSPARSE(2, 173)=52 + KSPARSE(1, 265)=15 + KSPARSE(2, 265)=98 !OH/WR_OH - KSPARSE(1, 174)=14 - KSPARSE(2, 174)=77 -!HO2/O3 - KSPARSE(1, 175)=15 - KSPARSE(2, 175)=1 -!HO2/H2O2 - KSPARSE(1, 176)=15 - KSPARSE(2, 176)=2 -!HO2/NO - KSPARSE(1, 177)=15 - KSPARSE(2, 177)=3 -!HO2/NO2 - KSPARSE(1, 178)=15 - KSPARSE(2, 178)=4 -!HO2/NO3 - KSPARSE(1, 179)=15 - KSPARSE(2, 179)=5 -!HO2/HNO4 - KSPARSE(1, 180)=15 - KSPARSE(2, 180)=9 -!HO2/SO2 - KSPARSE(1, 181)=15 - KSPARSE(2, 181)=11 -!HO2/CO - KSPARSE(1, 182)=15 - KSPARSE(2, 182)=13 -!HO2/OH - KSPARSE(1, 183)=15 - KSPARSE(2, 183)=14 -!HO2/HO2 - KSPARSE(1, 184)=15 - KSPARSE(2, 184)=15 -!HO2/ALKA - KSPARSE(1, 185)=15 - KSPARSE(2, 185)=18 -!HO2/ALKE - KSPARSE(1, 186)=15 - KSPARSE(2, 186)=19 -!HO2/BIO - KSPARSE(1, 187)=15 - KSPARSE(2, 187)=20 -!HO2/ARO - KSPARSE(1, 188)=15 - KSPARSE(2, 188)=21 -!HO2/HCHO - KSPARSE(1, 189)=15 - KSPARSE(2, 189)=22 -!HO2/ALD - KSPARSE(1, 190)=15 - KSPARSE(2, 190)=23 -!HO2/CARBO - KSPARSE(1, 191)=15 - KSPARSE(2, 191)=25 -!HO2/ONIT - KSPARSE(1, 192)=15 - KSPARSE(2, 192)=26 -!HO2/PAN - KSPARSE(1, 193)=15 - KSPARSE(2, 193)=27 -!HO2/OP1 - KSPARSE(1, 194)=15 - KSPARSE(2, 194)=28 -!HO2/OP2 - KSPARSE(1, 195)=15 - KSPARSE(2, 195)=29 -!HO2/ORA1 - KSPARSE(1, 196)=15 - KSPARSE(2, 196)=30 -!HO2/MO2 - KSPARSE(1, 197)=15 - KSPARSE(2, 197)=32 -!HO2/ALKAP - KSPARSE(1, 198)=15 - KSPARSE(2, 198)=33 -!HO2/ALKEP - KSPARSE(1, 199)=15 - KSPARSE(2, 199)=34 -!HO2/BIOP - KSPARSE(1, 200)=15 - KSPARSE(2, 200)=35 -!HO2/PHO - KSPARSE(1, 201)=15 - KSPARSE(2, 201)=36 -!HO2/ADD - KSPARSE(1, 202)=15 - KSPARSE(2, 202)=37 -!HO2/AROP - KSPARSE(1, 203)=15 - KSPARSE(2, 203)=38 -!HO2/CARBOP - KSPARSE(1, 204)=15 - KSPARSE(2, 204)=39 -!HO2/OLN - KSPARSE(1, 205)=15 - KSPARSE(2, 205)=40 -!HO2/XO2 - KSPARSE(1, 206)=15 - KSPARSE(2, 206)=41 -!HO2/WC_HO2 - KSPARSE(1, 207)=15 - KSPARSE(2, 207)=53 -!HO2/WR_HO2 - KSPARSE(1, 208)=15 - KSPARSE(2, 208)=78 -!CH4/O3 - KSPARSE(1, 209)=16 - KSPARSE(2, 209)=1 -!CH4/OH - KSPARSE(1, 210)=16 - KSPARSE(2, 210)=14 -!CH4/CH4 - KSPARSE(1, 211)=16 - KSPARSE(2, 211)=16 -!CH4/ALKE - KSPARSE(1, 212)=16 - KSPARSE(2, 212)=19 -!ETH/O3 - KSPARSE(1, 213)=17 - KSPARSE(2, 213)=1 -!ETH/OH - KSPARSE(1, 214)=17 - KSPARSE(2, 214)=14 -!ETH/ETH - KSPARSE(1, 215)=17 - KSPARSE(2, 215)=17 -!ETH/ALKE - KSPARSE(1, 216)=17 - KSPARSE(2, 216)=19 -!ALKA/OH - KSPARSE(1, 217)=18 - KSPARSE(2, 217)=14 -!ALKA/ALKA - KSPARSE(1, 218)=18 - KSPARSE(2, 218)=18 -!ALKE/O3 - KSPARSE(1, 219)=19 - KSPARSE(2, 219)=1 -!ALKE/NO - KSPARSE(1, 220)=19 - KSPARSE(2, 220)=3 -!ALKE/NO3 - KSPARSE(1, 221)=19 - KSPARSE(2, 221)=5 -!ALKE/OH - KSPARSE(1, 222)=19 - KSPARSE(2, 222)=14 -!ALKE/ALKE - KSPARSE(1, 223)=19 - KSPARSE(2, 223)=19 -!ALKE/BIO - KSPARSE(1, 224)=19 - KSPARSE(2, 224)=20 -!ALKE/MO2 - KSPARSE(1, 225)=19 - KSPARSE(2, 225)=32 -!ALKE/BIOP - KSPARSE(1, 226)=19 - KSPARSE(2, 226)=35 -!ALKE/CARBOP - KSPARSE(1, 227)=19 - KSPARSE(2, 227)=39 -!BIO/O3 - KSPARSE(1, 228)=20 - KSPARSE(2, 228)=1 -!BIO/NO3 - KSPARSE(1, 229)=20 - KSPARSE(2, 229)=5 -!BIO/OH - KSPARSE(1, 230)=20 - KSPARSE(2, 230)=14 -!BIO/BIO - KSPARSE(1, 231)=20 - KSPARSE(2, 231)=20 -!ARO/O3 - KSPARSE(1, 232)=21 - KSPARSE(2, 232)=1 -!ARO/NO2 - KSPARSE(1, 233)=21 - KSPARSE(2, 233)=4 -!ARO/NO3 - KSPARSE(1, 234)=21 - KSPARSE(2, 234)=5 -!ARO/OH - KSPARSE(1, 235)=21 - KSPARSE(2, 235)=14 -!ARO/HO2 - KSPARSE(1, 236)=21 - KSPARSE(2, 236)=15 -!ARO/ARO - KSPARSE(1, 237)=21 - KSPARSE(2, 237)=21 -!ARO/PHO - KSPARSE(1, 238)=21 - KSPARSE(2, 238)=36 -!ARO/ADD - KSPARSE(1, 239)=21 - KSPARSE(2, 239)=37 -!HCHO/O3 - KSPARSE(1, 240)=22 - KSPARSE(2, 240)=1 -!HCHO/NO - KSPARSE(1, 241)=22 - KSPARSE(2, 241)=3 -!HCHO/NO3 - KSPARSE(1, 242)=22 - KSPARSE(2, 242)=5 -!HCHO/OH - KSPARSE(1, 243)=22 - KSPARSE(2, 243)=14 -!HCHO/ALKA - KSPARSE(1, 244)=22 - KSPARSE(2, 244)=18 -!HCHO/ALKE - KSPARSE(1, 245)=22 - KSPARSE(2, 245)=19 -!HCHO/BIO - KSPARSE(1, 246)=22 - KSPARSE(2, 246)=20 -!HCHO/HCHO - KSPARSE(1, 247)=22 - KSPARSE(2, 247)=22 -!HCHO/CARBO - KSPARSE(1, 248)=22 - KSPARSE(2, 248)=25 -!HCHO/PAN - KSPARSE(1, 249)=22 - KSPARSE(2, 249)=27 -!HCHO/OP1 - KSPARSE(1, 250)=22 - KSPARSE(2, 250)=28 -!HCHO/OP2 - KSPARSE(1, 251)=22 - KSPARSE(2, 251)=29 -!HCHO/MO2 - KSPARSE(1, 252)=22 - KSPARSE(2, 252)=32 -!HCHO/ALKAP - KSPARSE(1, 253)=22 - KSPARSE(2, 253)=33 -!HCHO/ALKEP - KSPARSE(1, 254)=22 - KSPARSE(2, 254)=34 -!HCHO/BIOP - KSPARSE(1, 255)=22 - KSPARSE(2, 255)=35 -!HCHO/AROP - KSPARSE(1, 256)=22 - KSPARSE(2, 256)=38 -!HCHO/CARBOP - KSPARSE(1, 257)=22 - KSPARSE(2, 257)=39 -!HCHO/OLN - KSPARSE(1, 258)=22 - KSPARSE(2, 258)=40 -!HCHO/XO2 - KSPARSE(1, 259)=22 - KSPARSE(2, 259)=41 -!HCHO/WC_HCHO - KSPARSE(1, 260)=22 - KSPARSE(2, 260)=57 -!HCHO/WR_HCHO - KSPARSE(1, 261)=22 - KSPARSE(2, 261)=82 -!ALD/O3 - KSPARSE(1, 262)=23 - KSPARSE(2, 262)=1 -!ALD/NO - KSPARSE(1, 263)=23 - KSPARSE(2, 263)=3 -!ALD/NO3 - KSPARSE(1, 264)=23 - KSPARSE(2, 264)=5 -!ALD/OH - KSPARSE(1, 265)=23 - KSPARSE(2, 265)=14 -!ALD/ALKA - KSPARSE(1, 266)=23 - KSPARSE(2, 266)=18 -!ALD/ALKE - KSPARSE(1, 267)=23 - KSPARSE(2, 267)=19 -!ALD/BIO - KSPARSE(1, 268)=23 - KSPARSE(2, 268)=20 -!ALD/ALD - KSPARSE(1, 269)=23 - KSPARSE(2, 269)=23 -!ALD/CARBO - KSPARSE(1, 270)=23 - KSPARSE(2, 270)=25 -!ALD/ONIT - KSPARSE(1, 271)=23 - KSPARSE(2, 271)=26 -!ALD/OP2 - KSPARSE(1, 272)=23 - KSPARSE(2, 272)=29 -!ALD/MO2 - KSPARSE(1, 273)=23 - KSPARSE(2, 273)=32 -!ALD/ALKAP - KSPARSE(1, 274)=23 - KSPARSE(2, 274)=33 -!ALD/ALKEP - KSPARSE(1, 275)=23 - KSPARSE(2, 275)=34 -!ALD/BIOP - KSPARSE(1, 276)=23 - KSPARSE(2, 276)=35 -!ALD/CARBOP - KSPARSE(1, 277)=23 - KSPARSE(2, 277)=39 -!ALD/OLN - KSPARSE(1, 278)=23 - KSPARSE(2, 278)=40 -!KET/O3 - KSPARSE(1, 279)=24 - KSPARSE(2, 279)=1 -!KET/NO - KSPARSE(1, 280)=24 - KSPARSE(2, 280)=3 -!KET/NO3 - KSPARSE(1, 281)=24 - KSPARSE(2, 281)=5 -!KET/OH - KSPARSE(1, 282)=24 - KSPARSE(2, 282)=14 -!KET/ALKA - KSPARSE(1, 283)=24 - KSPARSE(2, 283)=18 -!KET/ALKE - KSPARSE(1, 284)=24 - KSPARSE(2, 284)=19 -!KET/BIO - KSPARSE(1, 285)=24 - KSPARSE(2, 285)=20 -!KET/KET - KSPARSE(1, 286)=24 - KSPARSE(2, 286)=24 -!KET/CARBO - KSPARSE(1, 287)=24 - KSPARSE(2, 287)=25 -!KET/ONIT - KSPARSE(1, 288)=24 - KSPARSE(2, 288)=26 -!KET/OP2 - KSPARSE(1, 289)=24 - KSPARSE(2, 289)=29 -!KET/MO2 - KSPARSE(1, 290)=24 - KSPARSE(2, 290)=32 -!KET/ALKAP - KSPARSE(1, 291)=24 - KSPARSE(2, 291)=33 -!KET/ALKEP - KSPARSE(1, 292)=24 - KSPARSE(2, 292)=34 -!KET/BIOP - KSPARSE(1, 293)=24 - KSPARSE(2, 293)=35 -!KET/CARBOP - KSPARSE(1, 294)=24 - KSPARSE(2, 294)=39 -!KET/OLN - KSPARSE(1, 295)=24 - KSPARSE(2, 295)=40 -!CARBO/O3 - KSPARSE(1, 296)=25 - KSPARSE(2, 296)=1 -!CARBO/NO - KSPARSE(1, 297)=25 - KSPARSE(2, 297)=3 -!CARBO/NO3 - KSPARSE(1, 298)=25 - KSPARSE(2, 298)=5 -!CARBO/OH - KSPARSE(1, 299)=25 - KSPARSE(2, 299)=14 -!CARBO/ALKA - KSPARSE(1, 300)=25 - KSPARSE(2, 300)=18 -!CARBO/ALKE - KSPARSE(1, 301)=25 - KSPARSE(2, 301)=19 -!CARBO/BIO - KSPARSE(1, 302)=25 - KSPARSE(2, 302)=20 -!CARBO/CARBO - KSPARSE(1, 303)=25 - KSPARSE(2, 303)=25 -!CARBO/PAN - KSPARSE(1, 304)=25 - KSPARSE(2, 304)=27 -!CARBO/MO2 + KSPARSE(1, 266)=15 + KSPARSE(2, 266)=135 +!ETHE/O3 + KSPARSE(1, 267)=16 + KSPARSE(2, 267)=3 +!ETHE/NO3 + KSPARSE(1, 268)=16 + KSPARSE(2, 268)=8 +!ETHE/OH + KSPARSE(1, 269)=16 + KSPARSE(2, 269)=15 +!ETHE/ETHE + KSPARSE(1, 270)=16 + KSPARSE(2, 270)=16 +!OLEL/NO + KSPARSE(1, 271)=17 + KSPARSE(2, 271)=1 +!OLEL/O3 + KSPARSE(1, 272)=17 + KSPARSE(2, 272)=3 +!OLEL/NO3 + KSPARSE(1, 273)=17 + KSPARSE(2, 273)=8 +!OLEL/HO2 + KSPARSE(1, 274)=17 + KSPARSE(2, 274)=10 +!OLEL/OH + KSPARSE(1, 275)=17 + KSPARSE(2, 275)=15 +!OLEL/OLEL + KSPARSE(1, 276)=17 + KSPARSE(2, 276)=17 +!OLEL/ISOP + KSPARSE(1, 277)=17 + KSPARSE(2, 277)=35 +!OLEH/O3 + KSPARSE(1, 278)=18 + KSPARSE(2, 278)=3 +!OLEH/NO3 + KSPARSE(1, 279)=18 + KSPARSE(2, 279)=8 +!OLEH/OH + KSPARSE(1, 280)=18 + KSPARSE(2, 280)=15 +!OLEH/OLEH + KSPARSE(1, 281)=18 + KSPARSE(2, 281)=18 +!ALKL/NO + KSPARSE(1, 282)=19 + KSPARSE(2, 282)=1 +!ALKL/O3 + KSPARSE(1, 283)=19 + KSPARSE(2, 283)=3 +!ALKL/HO2 + KSPARSE(1, 284)=19 + KSPARSE(2, 284)=10 +!ALKL/OH + KSPARSE(1, 285)=19 + KSPARSE(2, 285)=15 +!ALKL/OLEL + KSPARSE(1, 286)=19 + KSPARSE(2, 286)=17 +!ALKL/ALKL + KSPARSE(1, 287)=19 + KSPARSE(2, 287)=19 +!ALKL/RO2T + KSPARSE(1, 288)=19 + KSPARSE(2, 288)=85 +!ALKL/RO25 + KSPARSE(1, 289)=19 + KSPARSE(2, 289)=87 +!ALKM/O3 + KSPARSE(1, 290)=20 + KSPARSE(2, 290)=3 +!ALKM/OH + KSPARSE(1, 291)=20 + KSPARSE(2, 291)=15 +!ALKM/OLEH + KSPARSE(1, 292)=20 + KSPARSE(2, 292)=18 +!ALKM/ALKM + KSPARSE(1, 293)=20 + KSPARSE(2, 293)=20 +!ALKH/OH + KSPARSE(1, 294)=21 + KSPARSE(2, 294)=15 +!ALKH/ALKH + KSPARSE(1, 295)=21 + KSPARSE(2, 295)=21 +!AROH/OH + KSPARSE(1, 296)=22 + KSPARSE(2, 296)=15 +!AROH/AROH + KSPARSE(1, 297)=22 + KSPARSE(2, 297)=22 +!AROL/OH + KSPARSE(1, 298)=23 + KSPARSE(2, 298)=15 +!AROL/AROL + KSPARSE(1, 299)=23 + KSPARSE(2, 299)=23 +!AROO/NO3 + KSPARSE(1, 300)=24 + KSPARSE(2, 300)=8 +!AROO/OH + KSPARSE(1, 301)=24 + KSPARSE(2, 301)=15 +!AROO/AROH + KSPARSE(1, 302)=24 + KSPARSE(2, 302)=22 +!AROO/AROL + KSPARSE(1, 303)=24 + KSPARSE(2, 303)=23 +!AROO/AROO + KSPARSE(1, 304)=24 + KSPARSE(2, 304)=24 +!ARAL/NO KSPARSE(1, 305)=25 - KSPARSE(2, 305)=32 -!CARBO/ALKAP + KSPARSE(2, 305)=1 +!ARAL/NO3 KSPARSE(1, 306)=25 - KSPARSE(2, 306)=33 -!CARBO/BIOP + KSPARSE(2, 306)=8 +!ARAL/HO2 KSPARSE(1, 307)=25 - KSPARSE(2, 307)=35 -!CARBO/AROP + KSPARSE(2, 307)=10 +!ARAL/OH KSPARSE(1, 308)=25 - KSPARSE(2, 308)=38 -!CARBO/CARBOP + KSPARSE(2, 308)=15 +!ARAL/ARAL KSPARSE(1, 309)=25 - KSPARSE(2, 309)=39 -!ONIT/NO - KSPARSE(1, 310)=26 - KSPARSE(2, 310)=3 -!ONIT/NO2 + KSPARSE(2, 309)=25 +!ARAL/RO2T + KSPARSE(1, 310)=25 + KSPARSE(2, 310)=85 +!ARAC/NO3 KSPARSE(1, 311)=26 - KSPARSE(2, 311)=4 -!ONIT/NO3 + KSPARSE(2, 311)=8 +!ARAC/OH KSPARSE(1, 312)=26 - KSPARSE(2, 312)=5 -!ONIT/OH + KSPARSE(2, 312)=15 +!ARAC/ARAL KSPARSE(1, 313)=26 - KSPARSE(2, 313)=14 -!ONIT/HO2 + KSPARSE(2, 313)=25 +!ARAC/ARAC KSPARSE(1, 314)=26 - KSPARSE(2, 314)=15 -!ONIT/ONIT - KSPARSE(1, 315)=26 - KSPARSE(2, 315)=26 -!ONIT/PAN - KSPARSE(1, 316)=26 + KSPARSE(2, 314)=26 +!PAH/OH + KSPARSE(1, 315)=27 + KSPARSE(2, 315)=15 +!PAH/PAH + KSPARSE(1, 316)=27 KSPARSE(2, 316)=27 -!ONIT/MO2 - KSPARSE(1, 317)=26 - KSPARSE(2, 317)=32 -!ONIT/ALKAP - KSPARSE(1, 318)=26 - KSPARSE(2, 318)=33 -!ONIT/BIOP - KSPARSE(1, 319)=26 - KSPARSE(2, 319)=35 -!ONIT/PHO - KSPARSE(1, 320)=26 - KSPARSE(2, 320)=36 -!ONIT/AROP - KSPARSE(1, 321)=26 - KSPARSE(2, 321)=38 -!ONIT/CARBOP - KSPARSE(1, 322)=26 - KSPARSE(2, 322)=39 -!ONIT/OLN - KSPARSE(1, 323)=26 - KSPARSE(2, 323)=40 -!PAN/O3 - KSPARSE(1, 324)=27 - KSPARSE(2, 324)=1 -!PAN/NO2 - KSPARSE(1, 325)=27 - KSPARSE(2, 325)=4 -!PAN/NO3 - KSPARSE(1, 326)=27 - KSPARSE(2, 326)=5 -!PAN/OH - KSPARSE(1, 327)=27 - KSPARSE(2, 327)=14 -!PAN/PAN - KSPARSE(1, 328)=27 - KSPARSE(2, 328)=27 -!PAN/CARBOP - KSPARSE(1, 329)=27 - KSPARSE(2, 329)=39 -!OP1/OH +!HCHO/NO + KSPARSE(1, 317)=28 + KSPARSE(2, 317)=1 +!HCHO/O3 + KSPARSE(1, 318)=28 + KSPARSE(2, 318)=3 +!HCHO/NO3 + KSPARSE(1, 319)=28 + KSPARSE(2, 319)=8 +!HCHO/HO2 + KSPARSE(1, 320)=28 + KSPARSE(2, 320)=10 +!HCHO/OH + KSPARSE(1, 321)=28 + KSPARSE(2, 321)=15 +!HCHO/ETHE + KSPARSE(1, 322)=28 + KSPARSE(2, 322)=16 +!HCHO/OLEL + KSPARSE(1, 323)=28 + KSPARSE(2, 323)=17 +!HCHO/OLEH + KSPARSE(1, 324)=28 + KSPARSE(2, 324)=18 +!HCHO/HCHO + KSPARSE(1, 325)=28 + KSPARSE(2, 325)=28 +!HCHO/MEOH + KSPARSE(1, 326)=28 + KSPARSE(2, 326)=32 +!HCHO/ISOP + KSPARSE(1, 327)=28 + KSPARSE(2, 327)=35 +!HCHO/MVK + KSPARSE(1, 328)=28 + KSPARSE(2, 328)=39 +!HCHO/MCR + KSPARSE(1, 329)=28 + KSPARSE(2, 329)=40 +!HCHO/RO2T KSPARSE(1, 330)=28 - KSPARSE(2, 330)=14 -!OP1/HO2 + KSPARSE(2, 330)=85 +!HCHO/RO21 KSPARSE(1, 331)=28 - KSPARSE(2, 331)=15 -!OP1/OP1 + KSPARSE(2, 331)=86 +!HCHO/WC_HCHO KSPARSE(1, 332)=28 - KSPARSE(2, 332)=28 -!OP1/MO2 + KSPARSE(2, 332)=108 +!HCHO/WR_HCHO KSPARSE(1, 333)=28 - KSPARSE(2, 333)=32 -!OP1/WC_OP1 - KSPARSE(1, 334)=28 - KSPARSE(2, 334)=61 -!OP1/WR_OP1 - KSPARSE(1, 335)=28 - KSPARSE(2, 335)=86 -!OP2/O3 + KSPARSE(2, 333)=145 +!ALD2/NO + KSPARSE(1, 334)=29 + KSPARSE(2, 334)=1 +!ALD2/O3 + KSPARSE(1, 335)=29 + KSPARSE(2, 335)=3 +!ALD2/NO3 KSPARSE(1, 336)=29 - KSPARSE(2, 336)=1 -!OP2/OH + KSPARSE(2, 336)=8 +!ALD2/HO2 KSPARSE(1, 337)=29 - KSPARSE(2, 337)=14 -!OP2/HO2 + KSPARSE(2, 337)=10 +!ALD2/OH KSPARSE(1, 338)=29 KSPARSE(2, 338)=15 -!OP2/CARBO +!ALD2/OLEL KSPARSE(1, 339)=29 - KSPARSE(2, 339)=25 -!OP2/OP2 + KSPARSE(2, 339)=17 +!ALD2/ALD2 KSPARSE(1, 340)=29 KSPARSE(2, 340)=29 -!OP2/ALKAP +!ALD2/ETOH KSPARSE(1, 341)=29 KSPARSE(2, 341)=33 -!OP2/ALKEP +!ALD2/ISOP KSPARSE(1, 342)=29 - KSPARSE(2, 342)=34 -!OP2/BIOP + KSPARSE(2, 342)=35 +!ALD2/MVK KSPARSE(1, 343)=29 - KSPARSE(2, 343)=35 -!OP2/AROP + KSPARSE(2, 343)=39 +!ALD2/MCR KSPARSE(1, 344)=29 - KSPARSE(2, 344)=38 -!OP2/CARBOP + KSPARSE(2, 344)=40 +!ALD2/RO2T KSPARSE(1, 345)=29 - KSPARSE(2, 345)=39 -!OP2/XO2 + KSPARSE(2, 345)=85 +!ALD2/RO25 KSPARSE(1, 346)=29 - KSPARSE(2, 346)=41 -!ORA1/O3 - KSPARSE(1, 347)=30 - KSPARSE(2, 347)=1 -!ORA1/OH - KSPARSE(1, 348)=30 - KSPARSE(2, 348)=14 -!ORA1/ALKA + KSPARSE(2, 346)=87 +!ALD2/WC_ALD2 + KSPARSE(1, 347)=29 + KSPARSE(2, 347)=109 +!ALD2/WR_ALD2 + KSPARSE(1, 348)=29 + KSPARSE(2, 348)=146 +!KETL/NO KSPARSE(1, 349)=30 - KSPARSE(2, 349)=18 -!ORA1/ALKE + KSPARSE(2, 349)=1 +!KETL/HO2 KSPARSE(1, 350)=30 - KSPARSE(2, 350)=19 -!ORA1/BIO + KSPARSE(2, 350)=10 +!KETL/OH KSPARSE(1, 351)=30 - KSPARSE(2, 351)=20 -!ORA1/CARBO + KSPARSE(2, 351)=15 +!KETL/KETL KSPARSE(1, 352)=30 - KSPARSE(2, 352)=25 -!ORA1/PAN + KSPARSE(2, 352)=30 +!KETL/MVK KSPARSE(1, 353)=30 - KSPARSE(2, 353)=27 -!ORA1/ORA1 + KSPARSE(2, 353)=39 +!KETL/RO2T KSPARSE(1, 354)=30 - KSPARSE(2, 354)=30 -!ORA1/WC_ORA1 + KSPARSE(2, 354)=85 +!KETL/WC_KETL KSPARSE(1, 355)=30 - KSPARSE(2, 355)=58 -!ORA1/WR_ORA1 + KSPARSE(2, 355)=112 +!KETL/WR_KETL KSPARSE(1, 356)=30 - KSPARSE(2, 356)=83 -!ORA2/O3 + KSPARSE(2, 356)=149 +!KETH/OH KSPARSE(1, 357)=31 - KSPARSE(2, 357)=1 -!ORA2/OH + KSPARSE(2, 357)=15 +!KETH/KETH KSPARSE(1, 358)=31 - KSPARSE(2, 358)=14 -!ORA2/HO2 - KSPARSE(1, 359)=31 + KSPARSE(2, 358)=31 +!MEOH/OH + KSPARSE(1, 359)=32 KSPARSE(2, 359)=15 -!ORA2/ALKE - KSPARSE(1, 360)=31 - KSPARSE(2, 360)=19 -!ORA2/BIO - KSPARSE(1, 361)=31 - KSPARSE(2, 361)=20 -!ORA2/CARBO - KSPARSE(1, 362)=31 - KSPARSE(2, 362)=25 +!MEOH/MEOH + KSPARSE(1, 360)=32 + KSPARSE(2, 360)=32 +!MEOH/WC_MEOH + KSPARSE(1, 361)=32 + KSPARSE(2, 361)=105 +!MEOH/WR_MEOH + KSPARSE(1, 362)=32 + KSPARSE(2, 362)=142 +!ETOH/OH + KSPARSE(1, 363)=33 + KSPARSE(2, 363)=15 +!ETOH/ETOH + KSPARSE(1, 364)=33 + KSPARSE(2, 364)=33 +!ETOH/WC_ETOH + KSPARSE(1, 365)=33 + KSPARSE(2, 365)=106 +!ETOH/WR_ETOH + KSPARSE(1, 366)=33 + KSPARSE(2, 366)=143 +!ALCH/OH + KSPARSE(1, 367)=34 + KSPARSE(2, 367)=15 +!ALCH/ALCH + KSPARSE(1, 368)=34 + KSPARSE(2, 368)=34 +!ALCH/WC_ALCH + KSPARSE(1, 369)=34 + KSPARSE(2, 369)=107 +!ALCH/WR_ALCH + KSPARSE(1, 370)=34 + KSPARSE(2, 370)=144 +!ISOP/O3 + KSPARSE(1, 371)=35 + KSPARSE(2, 371)=3 +!ISOP/NO3 + KSPARSE(1, 372)=35 + KSPARSE(2, 372)=8 +!ISOP/OH + KSPARSE(1, 373)=35 + KSPARSE(2, 373)=15 +!ISOP/ISOP + KSPARSE(1, 374)=35 + KSPARSE(2, 374)=35 +!BIOL/O3 + KSPARSE(1, 375)=36 + KSPARSE(2, 375)=3 +!BIOL/NO3 + KSPARSE(1, 376)=36 + KSPARSE(2, 376)=8 +!BIOL/OH + KSPARSE(1, 377)=36 + KSPARSE(2, 377)=15 +!BIOL/BIOL + KSPARSE(1, 378)=36 + KSPARSE(2, 378)=36 +!BIOH/O3 + KSPARSE(1, 379)=37 + KSPARSE(2, 379)=3 +!BIOH/NO3 + KSPARSE(1, 380)=37 + KSPARSE(2, 380)=8 +!BIOH/OH + KSPARSE(1, 381)=37 + KSPARSE(2, 381)=15 +!BIOH/BIOH + KSPARSE(1, 382)=37 + KSPARSE(2, 382)=37 +!MTBE/OH + KSPARSE(1, 383)=38 + KSPARSE(2, 383)=15 +!MTBE/MTBE + KSPARSE(1, 384)=38 + KSPARSE(2, 384)=38 +!MVK/NO + KSPARSE(1, 385)=39 + KSPARSE(2, 385)=1 +!MVK/O3 + KSPARSE(1, 386)=39 + KSPARSE(2, 386)=3 +!MVK/HO2 + KSPARSE(1, 387)=39 + KSPARSE(2, 387)=10 +!MVK/OH + KSPARSE(1, 388)=39 + KSPARSE(2, 388)=15 +!MVK/ISOP + KSPARSE(1, 389)=39 + KSPARSE(2, 389)=35 +!MVK/MVK + KSPARSE(1, 390)=39 + KSPARSE(2, 390)=39 +!MVK/RO2T + KSPARSE(1, 391)=39 + KSPARSE(2, 391)=85 +!MCR/NO + KSPARSE(1, 392)=40 + KSPARSE(2, 392)=1 +!MCR/O3 + KSPARSE(1, 393)=40 + KSPARSE(2, 393)=3 +!MCR/NO3 + KSPARSE(1, 394)=40 + KSPARSE(2, 394)=8 +!MCR/HO2 + KSPARSE(1, 395)=40 + KSPARSE(2, 395)=10 +!MCR/OH + KSPARSE(1, 396)=40 + KSPARSE(2, 396)=15 +!MCR/ISOP + KSPARSE(1, 397)=40 + KSPARSE(2, 397)=35 +!MCR/MCR + KSPARSE(1, 398)=40 + KSPARSE(2, 398)=40 +!MCR/RO2T + KSPARSE(1, 399)=40 + KSPARSE(2, 399)=85 +!MGLY/NO + KSPARSE(1, 400)=41 + KSPARSE(2, 400)=1 +!MGLY/O3 + KSPARSE(1, 401)=41 + KSPARSE(2, 401)=3 +!MGLY/NO3 + KSPARSE(1, 402)=41 + KSPARSE(2, 402)=8 +!MGLY/HO2 + KSPARSE(1, 403)=41 + KSPARSE(2, 403)=10 +!MGLY/OH + KSPARSE(1, 404)=41 + KSPARSE(2, 404)=15 +!MGLY/MVK + KSPARSE(1, 405)=41 + KSPARSE(2, 405)=39 +!MGLY/MCR + KSPARSE(1, 406)=41 + KSPARSE(2, 406)=40 +!MGLY/MGLY + KSPARSE(1, 407)=41 + KSPARSE(2, 407)=41 +!MGLY/RO2T + KSPARSE(1, 408)=41 + KSPARSE(2, 408)=85 +!MGLY/WC_MGLY + KSPARSE(1, 409)=41 + KSPARSE(2, 409)=111 +!MGLY/WR_MGLY + KSPARSE(1, 410)=41 + KSPARSE(2, 410)=148 +!GLY/GLY + KSPARSE(1, 411)=42 + KSPARSE(2, 411)=42 +!GLY/WC_GLY + KSPARSE(1, 412)=42 + KSPARSE(2, 412)=110 +!GLY/WR_GLY + KSPARSE(1, 413)=42 + KSPARSE(2, 413)=147 +!ORA1/O3 + KSPARSE(1, 414)=43 + KSPARSE(2, 414)=3 +!ORA1/OH + KSPARSE(1, 415)=43 + KSPARSE(2, 415)=15 +!ORA1/ETHE + KSPARSE(1, 416)=43 + KSPARSE(2, 416)=16 +!ORA1/OLEL + KSPARSE(1, 417)=43 + KSPARSE(2, 417)=17 +!ORA1/ISOP + KSPARSE(1, 418)=43 + KSPARSE(2, 418)=35 +!ORA1/MVK + KSPARSE(1, 419)=43 + KSPARSE(2, 419)=39 +!ORA1/MCR + KSPARSE(1, 420)=43 + KSPARSE(2, 420)=40 +!ORA1/ORA1 + KSPARSE(1, 421)=43 + KSPARSE(2, 421)=43 +!ORA1/WC_ORA1 + KSPARSE(1, 422)=43 + KSPARSE(2, 422)=113 +!ORA1/WR_ORA1 + KSPARSE(1, 423)=43 + KSPARSE(2, 423)=150 +!ORA2/O3 + KSPARSE(1, 424)=44 + KSPARSE(2, 424)=3 +!ORA2/HO2 + KSPARSE(1, 425)=44 + KSPARSE(2, 425)=10 +!ORA2/OH + KSPARSE(1, 426)=44 + KSPARSE(2, 426)=15 +!ORA2/OLEL + KSPARSE(1, 427)=44 + KSPARSE(2, 427)=17 !ORA2/ORA2 - KSPARSE(1, 363)=31 - KSPARSE(2, 363)=31 -!ORA2/MO2 - KSPARSE(1, 364)=31 - KSPARSE(2, 364)=32 -!ORA2/ALKAP - KSPARSE(1, 365)=31 - KSPARSE(2, 365)=33 -!ORA2/ALKEP - KSPARSE(1, 366)=31 - KSPARSE(2, 366)=34 -!ORA2/BIOP - KSPARSE(1, 367)=31 - KSPARSE(2, 367)=35 -!ORA2/CARBOP - KSPARSE(1, 368)=31 - KSPARSE(2, 368)=39 -!ORA2/OLN - KSPARSE(1, 369)=31 - KSPARSE(2, 369)=40 + KSPARSE(1, 428)=44 + KSPARSE(2, 428)=44 !ORA2/WC_ORA2 - KSPARSE(1, 370)=31 - KSPARSE(2, 370)=59 + KSPARSE(1, 429)=44 + KSPARSE(2, 429)=114 !ORA2/WR_ORA2 - KSPARSE(1, 371)=31 - KSPARSE(2, 371)=84 -!MO2/O3 - KSPARSE(1, 372)=32 - KSPARSE(2, 372)=1 -!MO2/NO - KSPARSE(1, 373)=32 - KSPARSE(2, 373)=3 -!MO2/NO3 - KSPARSE(1, 374)=32 - KSPARSE(2, 374)=5 -!MO2/OH - KSPARSE(1, 375)=32 - KSPARSE(2, 375)=14 -!MO2/HO2 - KSPARSE(1, 376)=32 - KSPARSE(2, 376)=15 -!MO2/CH4 - KSPARSE(1, 377)=32 - KSPARSE(2, 377)=16 -!MO2/ALKE - KSPARSE(1, 378)=32 - KSPARSE(2, 378)=19 -!MO2/BIO - KSPARSE(1, 379)=32 - KSPARSE(2, 379)=20 -!MO2/ALD - KSPARSE(1, 380)=32 - KSPARSE(2, 380)=23 -!MO2/OP1 - KSPARSE(1, 381)=32 - KSPARSE(2, 381)=28 -!MO2/OP2 - KSPARSE(1, 382)=32 - KSPARSE(2, 382)=29 -!MO2/MO2 - KSPARSE(1, 383)=32 - KSPARSE(2, 383)=32 -!MO2/ALKAP - KSPARSE(1, 384)=32 - KSPARSE(2, 384)=33 -!MO2/ALKEP - KSPARSE(1, 385)=32 - KSPARSE(2, 385)=34 -!MO2/BIOP - KSPARSE(1, 386)=32 - KSPARSE(2, 386)=35 -!MO2/AROP - KSPARSE(1, 387)=32 - KSPARSE(2, 387)=38 -!MO2/CARBOP - KSPARSE(1, 388)=32 - KSPARSE(2, 388)=39 -!MO2/OLN - KSPARSE(1, 389)=32 - KSPARSE(2, 389)=40 -!MO2/XO2 - KSPARSE(1, 390)=32 - KSPARSE(2, 390)=41 -!MO2/WC_MO2 - KSPARSE(1, 391)=32 - KSPARSE(2, 391)=60 -!MO2/WR_MO2 - KSPARSE(1, 392)=32 - KSPARSE(2, 392)=85 -!ALKAP/O3 - KSPARSE(1, 393)=33 - KSPARSE(2, 393)=1 -!ALKAP/NO - KSPARSE(1, 394)=33 - KSPARSE(2, 394)=3 -!ALKAP/NO3 - KSPARSE(1, 395)=33 - KSPARSE(2, 395)=5 -!ALKAP/OH - KSPARSE(1, 396)=33 - KSPARSE(2, 396)=14 -!ALKAP/HO2 - KSPARSE(1, 397)=33 - KSPARSE(2, 397)=15 -!ALKAP/ETH - KSPARSE(1, 398)=33 - KSPARSE(2, 398)=17 -!ALKAP/ALKA - KSPARSE(1, 399)=33 - KSPARSE(2, 399)=18 -!ALKAP/ALKE - KSPARSE(1, 400)=33 - KSPARSE(2, 400)=19 -!ALKAP/BIO - KSPARSE(1, 401)=33 - KSPARSE(2, 401)=20 -!ALKAP/KET - KSPARSE(1, 402)=33 - KSPARSE(2, 402)=24 -!ALKAP/ONIT - KSPARSE(1, 403)=33 - KSPARSE(2, 403)=26 -!ALKAP/OP2 - KSPARSE(1, 404)=33 - KSPARSE(2, 404)=29 -!ALKAP/MO2 - KSPARSE(1, 405)=33 - KSPARSE(2, 405)=32 -!ALKAP/ALKAP - KSPARSE(1, 406)=33 - KSPARSE(2, 406)=33 -!ALKAP/CARBOP - KSPARSE(1, 407)=33 - KSPARSE(2, 407)=39 -!ALKEP/NO - KSPARSE(1, 408)=34 - KSPARSE(2, 408)=3 -!ALKEP/NO3 - KSPARSE(1, 409)=34 - KSPARSE(2, 409)=5 -!ALKEP/OH - KSPARSE(1, 410)=34 - KSPARSE(2, 410)=14 -!ALKEP/HO2 - KSPARSE(1, 411)=34 - KSPARSE(2, 411)=15 -!ALKEP/ALKE - KSPARSE(1, 412)=34 - KSPARSE(2, 412)=19 -!ALKEP/MO2 - KSPARSE(1, 413)=34 - KSPARSE(2, 413)=32 -!ALKEP/ALKEP - KSPARSE(1, 414)=34 - KSPARSE(2, 414)=34 -!ALKEP/CARBOP - KSPARSE(1, 415)=34 - KSPARSE(2, 415)=39 -!BIOP/NO - KSPARSE(1, 416)=35 - KSPARSE(2, 416)=3 -!BIOP/NO3 - KSPARSE(1, 417)=35 - KSPARSE(2, 417)=5 -!BIOP/OH - KSPARSE(1, 418)=35 - KSPARSE(2, 418)=14 -!BIOP/HO2 - KSPARSE(1, 419)=35 - KSPARSE(2, 419)=15 -!BIOP/ALKE - KSPARSE(1, 420)=35 - KSPARSE(2, 420)=19 -!BIOP/BIO - KSPARSE(1, 421)=35 - KSPARSE(2, 421)=20 -!BIOP/MO2 - KSPARSE(1, 422)=35 - KSPARSE(2, 422)=32 -!BIOP/BIOP - KSPARSE(1, 423)=35 - KSPARSE(2, 423)=35 -!BIOP/CARBOP - KSPARSE(1, 424)=35 - KSPARSE(2, 424)=39 -!PHO/NO2 - KSPARSE(1, 425)=36 - KSPARSE(2, 425)=4 -!PHO/NO3 - KSPARSE(1, 426)=36 - KSPARSE(2, 426)=5 -!PHO/OH - KSPARSE(1, 427)=36 - KSPARSE(2, 427)=14 -!PHO/HO2 - KSPARSE(1, 428)=36 - KSPARSE(2, 428)=15 -!PHO/ARO - KSPARSE(1, 429)=36 - KSPARSE(2, 429)=21 -!PHO/PHO - KSPARSE(1, 430)=36 - KSPARSE(2, 430)=36 -!ADD/O3 - KSPARSE(1, 431)=37 - KSPARSE(2, 431)=1 -!ADD/NO2 - KSPARSE(1, 432)=37 - KSPARSE(2, 432)=4 -!ADD/OH - KSPARSE(1, 433)=37 - KSPARSE(2, 433)=14 -!ADD/ARO - KSPARSE(1, 434)=37 - KSPARSE(2, 434)=21 -!ADD/ADD - KSPARSE(1, 435)=37 - KSPARSE(2, 435)=37 -!AROP/NO - KSPARSE(1, 436)=38 - KSPARSE(2, 436)=3 -!AROP/NO3 - KSPARSE(1, 437)=38 - KSPARSE(2, 437)=5 -!AROP/HO2 - KSPARSE(1, 438)=38 - KSPARSE(2, 438)=15 -!AROP/MO2 - KSPARSE(1, 439)=38 - KSPARSE(2, 439)=32 -!AROP/ADD - KSPARSE(1, 440)=38 - KSPARSE(2, 440)=37 -!AROP/AROP - KSPARSE(1, 441)=38 - KSPARSE(2, 441)=38 -!AROP/CARBOP - KSPARSE(1, 442)=38 - KSPARSE(2, 442)=39 -!CARBOP/O3 - KSPARSE(1, 443)=39 - KSPARSE(2, 443)=1 -!CARBOP/NO - KSPARSE(1, 444)=39 - KSPARSE(2, 444)=3 -!CARBOP/NO2 - KSPARSE(1, 445)=39 - KSPARSE(2, 445)=4 -!CARBOP/NO3 - KSPARSE(1, 446)=39 - KSPARSE(2, 446)=5 -!CARBOP/OH - KSPARSE(1, 447)=39 - KSPARSE(2, 447)=14 -!CARBOP/HO2 - KSPARSE(1, 448)=39 + KSPARSE(1, 430)=44 + KSPARSE(2, 430)=151 +!ACID/O3 + KSPARSE(1, 431)=45 + KSPARSE(2, 431)=3 +!ACID/HO2 + KSPARSE(1, 432)=45 + KSPARSE(2, 432)=10 +!ACID/OH + KSPARSE(1, 433)=45 + KSPARSE(2, 433)=15 +!ACID/OLEH + KSPARSE(1, 434)=45 + KSPARSE(2, 434)=18 +!ACID/ACID + KSPARSE(1, 435)=45 + KSPARSE(2, 435)=45 +!ACID/WC_ACID + KSPARSE(1, 436)=45 + KSPARSE(2, 436)=115 +!ACID/WR_ACID + KSPARSE(1, 437)=45 + KSPARSE(2, 437)=152 +!UR28/HO2 + KSPARSE(1, 438)=46 + KSPARSE(2, 438)=10 +!UR28/UR28 + KSPARSE(1, 439)=46 + KSPARSE(2, 439)=46 +!UR28/WC_UR28 + KSPARSE(1, 440)=46 + KSPARSE(2, 440)=118 +!UR28/WR_UR28 + KSPARSE(1, 441)=46 + KSPARSE(2, 441)=155 +!UR21/O3 + KSPARSE(1, 442)=47 + KSPARSE(2, 442)=3 +!UR21/HO2 + KSPARSE(1, 443)=47 + KSPARSE(2, 443)=10 +!UR21/MVK + KSPARSE(1, 444)=47 + KSPARSE(2, 444)=39 +!UR21/UR21 + KSPARSE(1, 445)=47 + KSPARSE(2, 445)=47 +!UR21/WC_UR21 + KSPARSE(1, 446)=47 + KSPARSE(2, 446)=117 +!UR21/WR_UR21 + KSPARSE(1, 447)=47 + KSPARSE(2, 447)=154 +!URG2/OH + KSPARSE(1, 448)=48 KSPARSE(2, 448)=15 -!CARBOP/ALKE - KSPARSE(1, 449)=39 - KSPARSE(2, 449)=19 -!CARBOP/BIO - KSPARSE(1, 450)=39 - KSPARSE(2, 450)=20 -!CARBOP/ALD - KSPARSE(1, 451)=39 - KSPARSE(2, 451)=23 -!CARBOP/KET - KSPARSE(1, 452)=39 - KSPARSE(2, 452)=24 -!CARBOP/CARBO - KSPARSE(1, 453)=39 - KSPARSE(2, 453)=25 -!CARBOP/PAN - KSPARSE(1, 454)=39 - KSPARSE(2, 454)=27 -!CARBOP/OP2 - KSPARSE(1, 455)=39 - KSPARSE(2, 455)=29 -!CARBOP/MO2 - KSPARSE(1, 456)=39 - KSPARSE(2, 456)=32 -!CARBOP/ALKAP - KSPARSE(1, 457)=39 - KSPARSE(2, 457)=33 -!CARBOP/ALKEP - KSPARSE(1, 458)=39 - KSPARSE(2, 458)=34 -!CARBOP/BIOP - KSPARSE(1, 459)=39 - KSPARSE(2, 459)=35 -!CARBOP/AROP - KSPARSE(1, 460)=39 - KSPARSE(2, 460)=38 -!CARBOP/CARBOP - KSPARSE(1, 461)=39 - KSPARSE(2, 461)=39 -!CARBOP/OLN - KSPARSE(1, 462)=39 - KSPARSE(2, 462)=40 -!CARBOP/XO2 - KSPARSE(1, 463)=39 - KSPARSE(2, 463)=41 -!OLN/NO - KSPARSE(1, 464)=40 - KSPARSE(2, 464)=3 -!OLN/NO3 - KSPARSE(1, 465)=40 - KSPARSE(2, 465)=5 -!OLN/HO2 - KSPARSE(1, 466)=40 +!URG2/URG2 + KSPARSE(1, 449)=48 + KSPARSE(2, 449)=48 +!URG2/RPG2 + KSPARSE(1, 450)=48 + KSPARSE(2, 450)=50 +!URG2/RP18 + KSPARSE(1, 451)=48 + KSPARSE(2, 451)=51 +!UR26/OH + KSPARSE(1, 452)=49 + KSPARSE(2, 452)=15 +!UR26/UR26 + KSPARSE(1, 453)=49 + KSPARSE(2, 453)=49 +!UR26/RP11 + KSPARSE(1, 454)=49 + KSPARSE(2, 454)=73 +!RPG2/NO + KSPARSE(1, 455)=50 + KSPARSE(2, 455)=1 +!RPG2/HO2 + KSPARSE(1, 456)=50 + KSPARSE(2, 456)=10 +!RPG2/OH + KSPARSE(1, 457)=50 + KSPARSE(2, 457)=15 +!RPG2/RPG2 + KSPARSE(1, 458)=50 + KSPARSE(2, 458)=50 +!RPG2/RPG3 + KSPARSE(1, 459)=50 + KSPARSE(2, 459)=52 +!RPG2/RO2T + KSPARSE(1, 460)=50 + KSPARSE(2, 460)=85 +!RP18/OH + KSPARSE(1, 461)=51 + KSPARSE(2, 461)=15 +!RP18/RPG2 + KSPARSE(1, 462)=51 + KSPARSE(2, 462)=50 +!RP18/RP18 + KSPARSE(1, 463)=51 + KSPARSE(2, 463)=51 +!RPG3/NO + KSPARSE(1, 464)=52 + KSPARSE(2, 464)=1 +!RPG3/HO2 + KSPARSE(1, 465)=52 + KSPARSE(2, 465)=10 +!RPG3/OH + KSPARSE(1, 466)=52 KSPARSE(2, 466)=15 -!OLN/ALKE - KSPARSE(1, 467)=40 - KSPARSE(2, 467)=19 -!OLN/BIO - KSPARSE(1, 468)=40 - KSPARSE(2, 468)=20 -!OLN/CARBO - KSPARSE(1, 469)=40 - KSPARSE(2, 469)=25 -!OLN/MO2 - KSPARSE(1, 470)=40 - KSPARSE(2, 470)=32 -!OLN/CARBOP - KSPARSE(1, 471)=40 - KSPARSE(2, 471)=39 -!OLN/OLN - KSPARSE(1, 472)=40 - KSPARSE(2, 472)=40 -!XO2/O3 - KSPARSE(1, 473)=41 - KSPARSE(2, 473)=1 -!XO2/NO - KSPARSE(1, 474)=41 - KSPARSE(2, 474)=3 -!XO2/NO3 - KSPARSE(1, 475)=41 - KSPARSE(2, 475)=5 -!XO2/OH - KSPARSE(1, 476)=41 - KSPARSE(2, 476)=14 -!XO2/HO2 - KSPARSE(1, 477)=41 - KSPARSE(2, 477)=15 -!XO2/ALKE - KSPARSE(1, 478)=41 - KSPARSE(2, 478)=19 -!XO2/BIO - KSPARSE(1, 479)=41 - KSPARSE(2, 479)=20 -!XO2/ARO - KSPARSE(1, 480)=41 - KSPARSE(2, 480)=21 -!XO2/CARBO - KSPARSE(1, 481)=41 - KSPARSE(2, 481)=25 -!XO2/PAN - KSPARSE(1, 482)=41 - KSPARSE(2, 482)=27 -!XO2/OP2 - KSPARSE(1, 483)=41 - KSPARSE(2, 483)=29 -!XO2/MO2 - KSPARSE(1, 484)=41 - KSPARSE(2, 484)=32 -!XO2/ALKAP - KSPARSE(1, 485)=41 - KSPARSE(2, 485)=33 -!XO2/CARBOP - KSPARSE(1, 486)=41 - KSPARSE(2, 486)=39 -!XO2/XO2 - KSPARSE(1, 487)=41 - KSPARSE(2, 487)=41 +!RPG3/RPG3 + KSPARSE(1, 467)=52 + KSPARSE(2, 467)=52 +!RPG3/RO2T + KSPARSE(1, 468)=52 + KSPARSE(2, 468)=85 +!URG4/O3 + KSPARSE(1, 469)=53 + KSPARSE(2, 469)=3 +!URG4/HO2 + KSPARSE(1, 470)=53 + KSPARSE(2, 470)=10 +!URG4/BIOL + KSPARSE(1, 471)=53 + KSPARSE(2, 471)=36 +!URG4/URG4 + KSPARSE(1, 472)=53 + KSPARSE(2, 472)=53 +!UR8/O3 + KSPARSE(1, 473)=54 + KSPARSE(2, 473)=3 +!UR8/BIOH + KSPARSE(1, 474)=54 + KSPARSE(2, 474)=37 +!UR8/UR8 + KSPARSE(1, 475)=54 + KSPARSE(2, 475)=54 +!UR17/NO + KSPARSE(1, 476)=55 + KSPARSE(2, 476)=1 +!UR17/HO2 + KSPARSE(1, 477)=55 + KSPARSE(2, 477)=10 +!UR17/UR17 + KSPARSE(1, 478)=55 + KSPARSE(2, 478)=55 +!UR17/RO2T + KSPARSE(1, 479)=55 + KSPARSE(2, 479)=85 +!UR7/NO + KSPARSE(1, 480)=56 + KSPARSE(2, 480)=1 +!UR7/O3 + KSPARSE(1, 481)=56 + KSPARSE(2, 481)=3 +!UR7/HO2 + KSPARSE(1, 482)=56 + KSPARSE(2, 482)=10 +!UR7/BIOH + KSPARSE(1, 483)=56 + KSPARSE(2, 483)=37 +!UR7/UR7 + KSPARSE(1, 484)=56 + KSPARSE(2, 484)=56 +!UR7/RO2T + KSPARSE(1, 485)=56 + KSPARSE(2, 485)=85 +!RPR3/NO + KSPARSE(1, 486)=57 + KSPARSE(2, 486)=1 +!RPR3/O3 + KSPARSE(1, 487)=57 + KSPARSE(2, 487)=3 +!RPR3/NO3 + KSPARSE(1, 488)=57 + KSPARSE(2, 488)=8 +!RPR3/HO2 + KSPARSE(1, 489)=57 + KSPARSE(2, 489)=10 +!RPR3/OH + KSPARSE(1, 490)=57 + KSPARSE(2, 490)=15 +!RPR3/BIOL + KSPARSE(1, 491)=57 + KSPARSE(2, 491)=36 +!RPR3/RPR3 + KSPARSE(1, 492)=57 + KSPARSE(2, 492)=57 +!RPR3/RO2T + KSPARSE(1, 493)=57 + KSPARSE(2, 493)=85 +!URG6/NO + KSPARSE(1, 494)=58 + KSPARSE(2, 494)=1 +!URG6/OH + KSPARSE(1, 495)=58 + KSPARSE(2, 495)=15 +!URG6/URG6 + KSPARSE(1, 496)=58 + KSPARSE(2, 496)=58 +!URG6/RPG7 + KSPARSE(1, 497)=58 + KSPARSE(2, 497)=63 +!UR22/NO2 + KSPARSE(1, 498)=59 + KSPARSE(2, 498)=2 +!UR22/UR22 + KSPARSE(1, 499)=59 + KSPARSE(2, 499)=59 +!URG7/NO2 + KSPARSE(1, 500)=60 + KSPARSE(2, 500)=2 +!URG7/OH + KSPARSE(1, 501)=60 + KSPARSE(2, 501)=15 +!URG7/ARAC + KSPARSE(1, 502)=60 + KSPARSE(2, 502)=26 +!URG7/URG7 + KSPARSE(1, 503)=60 + KSPARSE(2, 503)=60 +!URG7/RPR7 + KSPARSE(1, 504)=60 + KSPARSE(2, 504)=62 +!URG7/RPR5 + KSPARSE(1, 505)=60 + KSPARSE(2, 505)=70 +!URG7/RPRL + KSPARSE(1, 506)=60 + KSPARSE(2, 506)=75 +!RPR4/NO2 + KSPARSE(1, 507)=61 + KSPARSE(2, 507)=2 +!RPR4/NO3 + KSPARSE(1, 508)=61 + KSPARSE(2, 508)=8 +!RPR4/RPR4 + KSPARSE(1, 509)=61 + KSPARSE(2, 509)=61 +!RPR7/NO + KSPARSE(1, 510)=62 + KSPARSE(2, 510)=1 +!RPR7/HO2 + KSPARSE(1, 511)=62 + KSPARSE(2, 511)=10 +!RPR7/OH + KSPARSE(1, 512)=62 + KSPARSE(2, 512)=15 +!RPR7/RPR7 + KSPARSE(1, 513)=62 + KSPARSE(2, 513)=62 +!RPR7/RPRL + KSPARSE(1, 514)=62 + KSPARSE(2, 514)=75 +!RPR7/RO2T + KSPARSE(1, 515)=62 + KSPARSE(2, 515)=85 +!RPG7/NO + KSPARSE(1, 516)=63 + KSPARSE(2, 516)=1 +!RPG7/HO2 + KSPARSE(1, 517)=63 + KSPARSE(2, 517)=10 +!RPG7/OH + KSPARSE(1, 518)=63 + KSPARSE(2, 518)=15 +!RPG7/RPG7 + KSPARSE(1, 519)=63 + KSPARSE(2, 519)=63 +!RPG7/RO2T + KSPARSE(1, 520)=63 + KSPARSE(2, 520)=85 +!URG8/NO + KSPARSE(1, 521)=64 + KSPARSE(2, 521)=1 +!URG8/NO2 + KSPARSE(1, 522)=64 + KSPARSE(2, 522)=2 +!URG8/OH + KSPARSE(1, 523)=64 + KSPARSE(2, 523)=15 +!URG8/PAH + KSPARSE(1, 524)=64 + KSPARSE(2, 524)=27 +!URG8/URG8 + KSPARSE(1, 525)=64 + KSPARSE(2, 525)=64 +!UR19/NO + KSPARSE(1, 526)=65 + KSPARSE(2, 526)=1 +!UR19/HO2 + KSPARSE(1, 527)=65 + KSPARSE(2, 527)=10 +!UR19/UR19 + KSPARSE(1, 528)=65 + KSPARSE(2, 528)=65 +!UR19/RO2T + KSPARSE(1, 529)=65 + KSPARSE(2, 529)=85 +!URG9/NO + KSPARSE(1, 530)=66 + KSPARSE(2, 530)=1 +!URG9/HO2 + KSPARSE(1, 531)=66 + KSPARSE(2, 531)=10 +!URG9/URG9 + KSPARSE(1, 532)=66 + KSPARSE(2, 532)=66 +!URG9/RO2T + KSPARSE(1, 533)=66 + KSPARSE(2, 533)=85 +!AP7/NO + KSPARSE(1, 534)=67 + KSPARSE(2, 534)=1 +!AP7/AP7 + KSPARSE(1, 535)=67 + KSPARSE(2, 535)=67 +!URG10/NO + KSPARSE(1, 536)=68 + KSPARSE(2, 536)=1 +!URG10/BIOL + KSPARSE(1, 537)=68 + KSPARSE(2, 537)=36 +!URG10/URG10 + KSPARSE(1, 538)=68 + KSPARSE(2, 538)=68 +!RPR1/NO + KSPARSE(1, 539)=69 + KSPARSE(2, 539)=1 +!RPR1/O3 + KSPARSE(1, 540)=69 + KSPARSE(2, 540)=3 +!RPR1/NO3 + KSPARSE(1, 541)=69 + KSPARSE(2, 541)=8 +!RPR1/HO2 + KSPARSE(1, 542)=69 + KSPARSE(2, 542)=10 +!RPR1/OH + KSPARSE(1, 543)=69 + KSPARSE(2, 543)=15 +!RPR1/OLEH + KSPARSE(1, 544)=69 + KSPARSE(2, 544)=18 +!RPR1/RPR1 + KSPARSE(1, 545)=69 + KSPARSE(2, 545)=69 +!RPR1/RO2T + KSPARSE(1, 546)=69 + KSPARSE(2, 546)=85 +!RPR5/NO2 + KSPARSE(1, 547)=70 + KSPARSE(2, 547)=2 +!RPR5/OH + KSPARSE(1, 548)=70 + KSPARSE(2, 548)=15 +!RPR5/RPR5 + KSPARSE(1, 549)=70 + KSPARSE(2, 549)=70 +!RPR8/NO + KSPARSE(1, 550)=71 + KSPARSE(2, 550)=1 +!RPR8/NO3 + KSPARSE(1, 551)=71 + KSPARSE(2, 551)=8 +!RPR8/HO2 + KSPARSE(1, 552)=71 + KSPARSE(2, 552)=10 +!RPR8/OH + KSPARSE(1, 553)=71 + KSPARSE(2, 553)=15 +!RPR8/RPR8 + KSPARSE(1, 554)=71 + KSPARSE(2, 554)=71 +!RPR8/RO2T + KSPARSE(1, 555)=71 + KSPARSE(2, 555)=85 +!RP10/NO + KSPARSE(1, 556)=72 + KSPARSE(2, 556)=1 +!RP10/HO2 + KSPARSE(1, 557)=72 + KSPARSE(2, 557)=10 +!RP10/OH + KSPARSE(1, 558)=72 + KSPARSE(2, 558)=15 +!RP10/RP10 + KSPARSE(1, 559)=72 + KSPARSE(2, 559)=72 +!RP10/RO2T + KSPARSE(1, 560)=72 + KSPARSE(2, 560)=85 +!RP11/NO + KSPARSE(1, 561)=73 + KSPARSE(2, 561)=1 +!RP11/HO2 + KSPARSE(1, 562)=73 + KSPARSE(2, 562)=10 +!RP11/OH + KSPARSE(1, 563)=73 + KSPARSE(2, 563)=15 +!RP11/RP11 + KSPARSE(1, 564)=73 + KSPARSE(2, 564)=73 +!RP11/RO2T + KSPARSE(1, 565)=73 + KSPARSE(2, 565)=85 +!RP16/NO3 + KSPARSE(1, 566)=74 + KSPARSE(2, 566)=8 +!RP16/HO2 + KSPARSE(1, 567)=74 + KSPARSE(2, 567)=10 +!RP16/OH + KSPARSE(1, 568)=74 + KSPARSE(2, 568)=15 +!RP16/RP16 + KSPARSE(1, 569)=74 + KSPARSE(2, 569)=74 +!RP16/WC_RP16 + KSPARSE(1, 570)=74 + KSPARSE(2, 570)=116 +!RP16/WR_RP16 + KSPARSE(1, 571)=74 + KSPARSE(2, 571)=153 +!RPRL/NO + KSPARSE(1, 572)=75 + KSPARSE(2, 572)=1 +!RPRL/HO2 + KSPARSE(1, 573)=75 + KSPARSE(2, 573)=10 +!RPRL/OH + KSPARSE(1, 574)=75 + KSPARSE(2, 574)=15 +!RPRL/ARAL + KSPARSE(1, 575)=75 + KSPARSE(2, 575)=25 +!RPRL/RPRL + KSPARSE(1, 576)=75 + KSPARSE(2, 576)=75 +!RPRL/RO2T + KSPARSE(1, 577)=75 + KSPARSE(2, 577)=85 +!APAN/NO2 + KSPARSE(1, 578)=76 + KSPARSE(2, 578)=2 +!APAN/APAN + KSPARSE(1, 579)=76 + KSPARSE(2, 579)=76 +!PAN1/NO2 + KSPARSE(1, 580)=77 + KSPARSE(2, 580)=2 +!PAN1/PAN1 + KSPARSE(1, 581)=77 + KSPARSE(2, 581)=77 +!PAN2/NO2 + KSPARSE(1, 582)=78 + KSPARSE(2, 582)=2 +!PAN2/PAN2 + KSPARSE(1, 583)=78 + KSPARSE(2, 583)=78 +!PAN3/NO2 + KSPARSE(1, 584)=79 + KSPARSE(2, 584)=2 +!PAN3/PAN3 + KSPARSE(1, 585)=79 + KSPARSE(2, 585)=79 +!PAN4/NO2 + KSPARSE(1, 586)=80 + KSPARSE(2, 586)=2 +!PAN4/PAN4 + KSPARSE(1, 587)=80 + KSPARSE(2, 587)=80 +!PAN6/NO2 + KSPARSE(1, 588)=81 + KSPARSE(2, 588)=2 +!PAN6/PAN6 + KSPARSE(1, 589)=81 + KSPARSE(2, 589)=81 +!PAN7/NO2 + KSPARSE(1, 590)=82 + KSPARSE(2, 590)=2 +!PAN7/PAN7 + KSPARSE(1, 591)=82 + KSPARSE(2, 591)=82 +!PAN8/NO2 + KSPARSE(1, 592)=83 + KSPARSE(2, 592)=2 +!PAN8/PAN8 + KSPARSE(1, 593)=83 + KSPARSE(2, 593)=83 +!PN10/NO2 + KSPARSE(1, 594)=84 + KSPARSE(2, 594)=2 +!PN10/PN10 + KSPARSE(1, 595)=84 + KSPARSE(2, 595)=84 +!RO2T/NO + KSPARSE(1, 596)=85 + KSPARSE(2, 596)=1 +!RO2T/O3 + KSPARSE(1, 597)=85 + KSPARSE(2, 597)=3 +!RO2T/NO3 + KSPARSE(1, 598)=85 + KSPARSE(2, 598)=8 +!RO2T/HO2 + KSPARSE(1, 599)=85 + KSPARSE(2, 599)=10 +!RO2T/OH + KSPARSE(1, 600)=85 + KSPARSE(2, 600)=15 +!RO2T/ETHE + KSPARSE(1, 601)=85 + KSPARSE(2, 601)=16 +!RO2T/OLEL + KSPARSE(1, 602)=85 + KSPARSE(2, 602)=17 +!RO2T/OLEH + KSPARSE(1, 603)=85 + KSPARSE(2, 603)=18 +!RO2T/ALKL + KSPARSE(1, 604)=85 + KSPARSE(2, 604)=19 +!RO2T/ALKM + KSPARSE(1, 605)=85 + KSPARSE(2, 605)=20 +!RO2T/ALKH + KSPARSE(1, 606)=85 + KSPARSE(2, 606)=21 +!RO2T/AROL + KSPARSE(1, 607)=85 + KSPARSE(2, 607)=23 +!RO2T/AROO + KSPARSE(1, 608)=85 + KSPARSE(2, 608)=24 +!RO2T/ARAL + KSPARSE(1, 609)=85 + KSPARSE(2, 609)=25 +!RO2T/ARAC + KSPARSE(1, 610)=85 + KSPARSE(2, 610)=26 +!RO2T/PAH + KSPARSE(1, 611)=85 + KSPARSE(2, 611)=27 +!RO2T/ALD2 + KSPARSE(1, 612)=85 + KSPARSE(2, 612)=29 +!RO2T/KETL + KSPARSE(1, 613)=85 + KSPARSE(2, 613)=30 +!RO2T/KETH + KSPARSE(1, 614)=85 + KSPARSE(2, 614)=31 +!RO2T/ETOH + KSPARSE(1, 615)=85 + KSPARSE(2, 615)=33 +!RO2T/ALCH + KSPARSE(1, 616)=85 + KSPARSE(2, 616)=34 +!RO2T/ISOP + KSPARSE(1, 617)=85 + KSPARSE(2, 617)=35 +!RO2T/BIOL + KSPARSE(1, 618)=85 + KSPARSE(2, 618)=36 +!RO2T/BIOH + KSPARSE(1, 619)=85 + KSPARSE(2, 619)=37 +!RO2T/MTBE + KSPARSE(1, 620)=85 + KSPARSE(2, 620)=38 +!RO2T/MVK + KSPARSE(1, 621)=85 + KSPARSE(2, 621)=39 +!RO2T/MCR + KSPARSE(1, 622)=85 + KSPARSE(2, 622)=40 +!RO2T/MGLY + KSPARSE(1, 623)=85 + KSPARSE(2, 623)=41 +!RO2T/RPR3 + KSPARSE(1, 624)=85 + KSPARSE(2, 624)=57 +!RO2T/RPR1 + KSPARSE(1, 625)=85 + KSPARSE(2, 625)=69 +!RO2T/RPR8 + KSPARSE(1, 626)=85 + KSPARSE(2, 626)=71 +!RO2T/RP16 + KSPARSE(1, 627)=85 + KSPARSE(2, 627)=74 +!RO2T/APAN + KSPARSE(1, 628)=85 + KSPARSE(2, 628)=76 +!RO2T/PAN1 + KSPARSE(1, 629)=85 + KSPARSE(2, 629)=77 +!RO2T/PAN2 + KSPARSE(1, 630)=85 + KSPARSE(2, 630)=78 +!RO2T/PAN3 + KSPARSE(1, 631)=85 + KSPARSE(2, 631)=79 +!RO2T/PAN4 + KSPARSE(1, 632)=85 + KSPARSE(2, 632)=80 +!RO2T/PAN6 + KSPARSE(1, 633)=85 + KSPARSE(2, 633)=81 +!RO2T/PAN7 + KSPARSE(1, 634)=85 + KSPARSE(2, 634)=82 +!RO2T/PAN8 + KSPARSE(1, 635)=85 + KSPARSE(2, 635)=83 +!RO2T/PN10 + KSPARSE(1, 636)=85 + KSPARSE(2, 636)=84 +!RO2T/RO2T + KSPARSE(1, 637)=85 + KSPARSE(2, 637)=85 +!RO2T/RO21 + KSPARSE(1, 638)=85 + KSPARSE(2, 638)=86 +!RO2T/RO25 + KSPARSE(1, 639)=85 + KSPARSE(2, 639)=87 +!RO21/NO + KSPARSE(1, 640)=86 + KSPARSE(2, 640)=1 +!RO21/HO2 + KSPARSE(1, 641)=86 + KSPARSE(2, 641)=10 +!RO21/OH + KSPARSE(1, 642)=86 + KSPARSE(2, 642)=15 +!RO21/ETHE + KSPARSE(1, 643)=86 + KSPARSE(2, 643)=16 +!RO21/RO2T + KSPARSE(1, 644)=86 + KSPARSE(2, 644)=85 +!RO21/RO21 + KSPARSE(1, 645)=86 + KSPARSE(2, 645)=86 +!RO21/WC_RO21 + KSPARSE(1, 646)=86 + KSPARSE(2, 646)=103 +!RO21/WR_RO21 + KSPARSE(1, 647)=86 + KSPARSE(2, 647)=140 +!RO25/NO + KSPARSE(1, 648)=87 + KSPARSE(2, 648)=1 +!RO25/O3 + KSPARSE(1, 649)=87 + KSPARSE(2, 649)=3 +!RO25/HO2 + KSPARSE(1, 650)=87 + KSPARSE(2, 650)=10 +!RO25/OH + KSPARSE(1, 651)=87 + KSPARSE(2, 651)=15 +!RO25/OLEL + KSPARSE(1, 652)=87 + KSPARSE(2, 652)=17 +!RO25/ALKL + KSPARSE(1, 653)=87 + KSPARSE(2, 653)=19 +!RO25/ALD2 + KSPARSE(1, 654)=87 + KSPARSE(2, 654)=29 +!RO25/KETL + KSPARSE(1, 655)=87 + KSPARSE(2, 655)=30 +!RO25/KETH + KSPARSE(1, 656)=87 + KSPARSE(2, 656)=31 +!RO25/RO2T + KSPARSE(1, 657)=87 + KSPARSE(2, 657)=85 +!RO25/RO25 + KSPARSE(1, 658)=87 + KSPARSE(2, 658)=87 +!RO25/WC_RO25 + KSPARSE(1, 659)=87 + KSPARSE(2, 659)=104 +!RO25/WR_RO25 + KSPARSE(1, 660)=87 + KSPARSE(2, 660)=141 !WC_O3/O3 - KSPARSE(1, 488)=42 - KSPARSE(2, 488)=1 + KSPARSE(1, 661)=88 + KSPARSE(2, 661)=3 !WC_O3/WC_O3 - KSPARSE(1, 489)=42 - KSPARSE(2, 489)=42 + KSPARSE(1, 662)=88 + KSPARSE(2, 662)=88 !WC_O3/WC_HO2 - KSPARSE(1, 490)=42 - KSPARSE(2, 490)=53 + KSPARSE(1, 663)=88 + KSPARSE(2, 663)=99 !WC_O3/WC_SO2 - KSPARSE(1, 491)=42 - KSPARSE(2, 491)=55 + KSPARSE(1, 664)=88 + KSPARSE(2, 664)=101 !WC_H2O2/H2O2 - KSPARSE(1, 492)=43 - KSPARSE(2, 492)=2 + KSPARSE(1, 665)=89 + KSPARSE(2, 665)=12 !WC_H2O2/WC_H2O2 - KSPARSE(1, 493)=43 - KSPARSE(2, 493)=43 + KSPARSE(1, 666)=89 + KSPARSE(2, 666)=89 !WC_H2O2/WC_OH - KSPARSE(1, 494)=43 - KSPARSE(2, 494)=52 + KSPARSE(1, 667)=89 + KSPARSE(2, 667)=98 !WC_H2O2/WC_HO2 - KSPARSE(1, 495)=43 - KSPARSE(2, 495)=53 + KSPARSE(1, 668)=89 + KSPARSE(2, 668)=99 !WC_H2O2/WC_SO2 - KSPARSE(1, 496)=43 - KSPARSE(2, 496)=55 + KSPARSE(1, 669)=89 + KSPARSE(2, 669)=101 +!WC_H2O2/WC_RO25 + KSPARSE(1, 670)=89 + KSPARSE(2, 670)=104 +!WC_H2O2/WC_KETL + KSPARSE(1, 671)=89 + KSPARSE(2, 671)=112 +!WC_H2O2/WC_ORA2 + KSPARSE(1, 672)=89 + KSPARSE(2, 672)=114 +!WC_H2O2/WC_ACID + KSPARSE(1, 673)=89 + KSPARSE(2, 673)=115 +!WC_H2O2/WC_RP16 + KSPARSE(1, 674)=89 + KSPARSE(2, 674)=116 +!WC_H2O2/WC_UR21 + KSPARSE(1, 675)=89 + KSPARSE(2, 675)=117 !WC_NO/NO - KSPARSE(1, 497)=44 - KSPARSE(2, 497)=3 + KSPARSE(1, 676)=90 + KSPARSE(2, 676)=1 !WC_NO/WC_NO - KSPARSE(1, 498)=44 - KSPARSE(2, 498)=44 + KSPARSE(1, 677)=90 + KSPARSE(2, 677)=90 !WC_NO2/NO2 - KSPARSE(1, 499)=45 - KSPARSE(2, 499)=4 + KSPARSE(1, 678)=91 + KSPARSE(2, 678)=2 !WC_NO2/WC_NO2 - KSPARSE(1, 500)=45 - KSPARSE(2, 500)=45 + KSPARSE(1, 679)=91 + KSPARSE(2, 679)=91 !WC_NO2/WC_HONO - KSPARSE(1, 501)=45 - KSPARSE(2, 501)=48 + KSPARSE(1, 680)=91 + KSPARSE(2, 680)=94 !WC_NO2/WC_HNO3 - KSPARSE(1, 502)=45 - KSPARSE(2, 502)=49 + KSPARSE(1, 681)=91 + KSPARSE(2, 681)=95 !WC_NO2/WC_HNO4 - KSPARSE(1, 503)=45 - KSPARSE(2, 503)=50 + KSPARSE(1, 682)=91 + KSPARSE(2, 682)=96 !WC_NO2/WC_OH - KSPARSE(1, 504)=45 - KSPARSE(2, 504)=52 + KSPARSE(1, 683)=91 + KSPARSE(2, 683)=98 !WC_NO2/WC_HO2 - KSPARSE(1, 505)=45 - KSPARSE(2, 505)=53 + KSPARSE(1, 684)=91 + KSPARSE(2, 684)=99 !WC_NO3/NO3 - KSPARSE(1, 506)=46 - KSPARSE(2, 506)=5 + KSPARSE(1, 685)=92 + KSPARSE(2, 685)=8 !WC_NO3/WC_NO3 - KSPARSE(1, 507)=46 - KSPARSE(2, 507)=46 + KSPARSE(1, 686)=92 + KSPARSE(2, 686)=92 !WC_NO3/WC_SO2 - KSPARSE(1, 508)=46 - KSPARSE(2, 508)=55 -!WC_NO3/WC_SULF - KSPARSE(1, 509)=46 - KSPARSE(2, 509)=56 + KSPARSE(1, 687)=92 + KSPARSE(2, 687)=101 +!WC_NO3/WC_H2SO4 + KSPARSE(1, 688)=92 + KSPARSE(2, 688)=102 !WC_N2O5/N2O5 - KSPARSE(1, 510)=47 - KSPARSE(2, 510)=6 + KSPARSE(1, 689)=93 + KSPARSE(2, 689)=7 !WC_N2O5/WC_N2O5 - KSPARSE(1, 511)=47 - KSPARSE(2, 511)=47 + KSPARSE(1, 690)=93 + KSPARSE(2, 690)=93 !WC_HONO/HONO - KSPARSE(1, 512)=48 - KSPARSE(2, 512)=7 + KSPARSE(1, 691)=94 + KSPARSE(2, 691)=4 !WC_HONO/WC_HONO - KSPARSE(1, 513)=48 - KSPARSE(2, 513)=48 + KSPARSE(1, 692)=94 + KSPARSE(2, 692)=94 !WC_HONO/WC_HNO4 - KSPARSE(1, 514)=48 - KSPARSE(2, 514)=50 + KSPARSE(1, 693)=94 + KSPARSE(2, 693)=96 !WC_HONO/WC_OH - KSPARSE(1, 515)=48 - KSPARSE(2, 515)=52 + KSPARSE(1, 694)=94 + KSPARSE(2, 694)=98 !WC_HNO3/HNO3 - KSPARSE(1, 516)=49 - KSPARSE(2, 516)=8 + KSPARSE(1, 695)=95 + KSPARSE(2, 695)=5 !WC_HNO3/WC_NO3 - KSPARSE(1, 517)=49 - KSPARSE(2, 517)=46 + KSPARSE(1, 696)=95 + KSPARSE(2, 696)=92 !WC_HNO3/WC_N2O5 - KSPARSE(1, 518)=49 - KSPARSE(2, 518)=47 + KSPARSE(1, 697)=95 + KSPARSE(2, 697)=93 !WC_HNO3/WC_HNO3 - KSPARSE(1, 519)=49 - KSPARSE(2, 519)=49 + KSPARSE(1, 698)=95 + KSPARSE(2, 698)=95 !WC_HNO3/WC_HNO4 - KSPARSE(1, 520)=49 - KSPARSE(2, 520)=50 + KSPARSE(1, 699)=95 + KSPARSE(2, 699)=96 !WC_HNO3/WC_SO2 - KSPARSE(1, 521)=49 - KSPARSE(2, 521)=55 -!WC_HNO3/WC_SULF - KSPARSE(1, 522)=49 - KSPARSE(2, 522)=56 + KSPARSE(1, 700)=95 + KSPARSE(2, 700)=101 +!WC_HNO3/WC_H2SO4 + KSPARSE(1, 701)=95 + KSPARSE(2, 701)=102 !WC_HNO4/HNO4 - KSPARSE(1, 523)=50 - KSPARSE(2, 523)=9 + KSPARSE(1, 702)=96 + KSPARSE(2, 702)=6 !WC_HNO4/WC_NO2 - KSPARSE(1, 524)=50 - KSPARSE(2, 524)=45 + KSPARSE(1, 703)=96 + KSPARSE(2, 703)=91 !WC_HNO4/WC_HNO4 - KSPARSE(1, 525)=50 - KSPARSE(2, 525)=50 + KSPARSE(1, 704)=96 + KSPARSE(2, 704)=96 !WC_HNO4/WC_HO2 - KSPARSE(1, 526)=50 - KSPARSE(2, 526)=53 + KSPARSE(1, 705)=96 + KSPARSE(2, 705)=99 !WC_HNO4/WC_SO2 - KSPARSE(1, 527)=50 - KSPARSE(2, 527)=55 + KSPARSE(1, 706)=96 + KSPARSE(2, 706)=101 !WC_NH3/NH3 - KSPARSE(1, 528)=51 - KSPARSE(2, 528)=10 + KSPARSE(1, 707)=97 + KSPARSE(2, 707)=9 !WC_NH3/WC_NH3 - KSPARSE(1, 529)=51 - KSPARSE(2, 529)=51 + KSPARSE(1, 708)=97 + KSPARSE(2, 708)=97 !WC_OH/OH - KSPARSE(1, 530)=52 - KSPARSE(2, 530)=14 + KSPARSE(1, 709)=98 + KSPARSE(2, 709)=15 !WC_OH/WC_O3 - KSPARSE(1, 531)=52 - KSPARSE(2, 531)=42 + KSPARSE(1, 710)=98 + KSPARSE(2, 710)=88 !WC_OH/WC_H2O2 - KSPARSE(1, 532)=52 - KSPARSE(2, 532)=43 + KSPARSE(1, 711)=98 + KSPARSE(2, 711)=89 !WC_OH/WC_HONO - KSPARSE(1, 533)=52 - KSPARSE(2, 533)=48 + KSPARSE(1, 712)=98 + KSPARSE(2, 712)=94 !WC_OH/WC_HNO3 - KSPARSE(1, 534)=52 - KSPARSE(2, 534)=49 + KSPARSE(1, 713)=98 + KSPARSE(2, 713)=95 !WC_OH/WC_OH - KSPARSE(1, 535)=52 - KSPARSE(2, 535)=52 + KSPARSE(1, 714)=98 + KSPARSE(2, 714)=98 !WC_OH/WC_HO2 - KSPARSE(1, 536)=52 - KSPARSE(2, 536)=53 + KSPARSE(1, 715)=98 + KSPARSE(2, 715)=99 !WC_OH/WC_SO2 - KSPARSE(1, 537)=52 - KSPARSE(2, 537)=55 + KSPARSE(1, 716)=98 + KSPARSE(2, 716)=101 +!WC_OH/WC_MEOH + KSPARSE(1, 717)=98 + KSPARSE(2, 717)=105 +!WC_OH/WC_ETOH + KSPARSE(1, 718)=98 + KSPARSE(2, 718)=106 +!WC_OH/WC_ALCH + KSPARSE(1, 719)=98 + KSPARSE(2, 719)=107 !WC_OH/WC_HCHO - KSPARSE(1, 538)=52 - KSPARSE(2, 538)=57 + KSPARSE(1, 720)=98 + KSPARSE(2, 720)=108 +!WC_OH/WC_ALD2 + KSPARSE(1, 721)=98 + KSPARSE(2, 721)=109 +!WC_OH/WC_GLY + KSPARSE(1, 722)=98 + KSPARSE(2, 722)=110 +!WC_OH/WC_MGLY + KSPARSE(1, 723)=98 + KSPARSE(2, 723)=111 +!WC_OH/WC_KETL + KSPARSE(1, 724)=98 + KSPARSE(2, 724)=112 !WC_OH/WC_ORA1 - KSPARSE(1, 539)=52 - KSPARSE(2, 539)=58 + KSPARSE(1, 725)=98 + KSPARSE(2, 725)=113 +!WC_OH/WC_ORA2 + KSPARSE(1, 726)=98 + KSPARSE(2, 726)=114 +!WC_OH/WC_ACID + KSPARSE(1, 727)=98 + KSPARSE(2, 727)=115 +!WC_OH/WC_RP16 + KSPARSE(1, 728)=98 + KSPARSE(2, 728)=116 +!WC_OH/WC_UR21 + KSPARSE(1, 729)=98 + KSPARSE(2, 729)=117 +!WC_OH/WC_UR28 + KSPARSE(1, 730)=98 + KSPARSE(2, 730)=118 +!WC_OH/WC_ACID2 + KSPARSE(1, 731)=98 + KSPARSE(2, 731)=119 !WC_OH/WC_ASO4 - KSPARSE(1, 540)=52 - KSPARSE(2, 540)=63 + KSPARSE(1, 732)=98 + KSPARSE(2, 732)=121 !WC_OH/WC_AHMS - KSPARSE(1, 541)=52 - KSPARSE(2, 541)=66 + KSPARSE(1, 733)=98 + KSPARSE(2, 733)=124 !WC_HO2/HO2 - KSPARSE(1, 542)=53 - KSPARSE(2, 542)=15 + KSPARSE(1, 734)=99 + KSPARSE(2, 734)=10 !WC_HO2/WC_O3 - KSPARSE(1, 543)=53 - KSPARSE(2, 543)=42 + KSPARSE(1, 735)=99 + KSPARSE(2, 735)=88 !WC_HO2/WC_H2O2 - KSPARSE(1, 544)=53 - KSPARSE(2, 544)=43 + KSPARSE(1, 736)=99 + KSPARSE(2, 736)=89 !WC_HO2/WC_NO2 - KSPARSE(1, 545)=53 - KSPARSE(2, 545)=45 + KSPARSE(1, 737)=99 + KSPARSE(2, 737)=91 !WC_HO2/WC_HNO4 - KSPARSE(1, 546)=53 - KSPARSE(2, 546)=50 + KSPARSE(1, 738)=99 + KSPARSE(2, 738)=96 !WC_HO2/WC_OH - KSPARSE(1, 547)=53 - KSPARSE(2, 547)=52 + KSPARSE(1, 739)=99 + KSPARSE(2, 739)=98 !WC_HO2/WC_HO2 - KSPARSE(1, 548)=53 - KSPARSE(2, 548)=53 + KSPARSE(1, 740)=99 + KSPARSE(2, 740)=99 +!WC_HO2/WC_RO21 + KSPARSE(1, 741)=99 + KSPARSE(2, 741)=103 +!WC_HO2/WC_RO25 + KSPARSE(1, 742)=99 + KSPARSE(2, 742)=104 +!WC_HO2/WC_MEOH + KSPARSE(1, 743)=99 + KSPARSE(2, 743)=105 +!WC_HO2/WC_ETOH + KSPARSE(1, 744)=99 + KSPARSE(2, 744)=106 +!WC_HO2/WC_ALCH + KSPARSE(1, 745)=99 + KSPARSE(2, 745)=107 !WC_HO2/WC_HCHO - KSPARSE(1, 549)=53 - KSPARSE(2, 549)=57 + KSPARSE(1, 746)=99 + KSPARSE(2, 746)=108 +!WC_HO2/WC_GLY + KSPARSE(1, 747)=99 + KSPARSE(2, 747)=110 +!WC_HO2/WC_MGLY + KSPARSE(1, 748)=99 + KSPARSE(2, 748)=111 +!WC_HO2/WC_KETL + KSPARSE(1, 749)=99 + KSPARSE(2, 749)=112 !WC_HO2/WC_ORA1 - KSPARSE(1, 550)=53 - KSPARSE(2, 550)=58 -!WC_HO2/WC_MO2 - KSPARSE(1, 551)=53 - KSPARSE(2, 551)=60 + KSPARSE(1, 750)=99 + KSPARSE(2, 750)=113 +!WC_HO2/WC_ACID + KSPARSE(1, 751)=99 + KSPARSE(2, 751)=115 +!WC_HO2/WC_RP16 + KSPARSE(1, 752)=99 + KSPARSE(2, 752)=116 +!WC_HO2/WC_UR21 + KSPARSE(1, 753)=99 + KSPARSE(2, 753)=117 +!WC_HO2/WC_UR28 + KSPARSE(1, 754)=99 + KSPARSE(2, 754)=118 !WC_HO2/WC_ASO5 - KSPARSE(1, 552)=53 - KSPARSE(2, 552)=64 + KSPARSE(1, 755)=99 + KSPARSE(2, 755)=122 !WC_HO2/WC_AHMS - KSPARSE(1, 553)=53 - KSPARSE(2, 553)=66 + KSPARSE(1, 756)=99 + KSPARSE(2, 756)=124 !WC_CO2/WC_OH - KSPARSE(1, 554)=54 - KSPARSE(2, 554)=52 + KSPARSE(1, 757)=100 + KSPARSE(2, 757)=98 !WC_CO2/WC_CO2 - KSPARSE(1, 555)=54 - KSPARSE(2, 555)=54 + KSPARSE(1, 758)=100 + KSPARSE(2, 758)=100 +!WC_CO2/WC_ALD2 + KSPARSE(1, 759)=100 + KSPARSE(2, 759)=109 +!WC_CO2/WC_KETL + KSPARSE(1, 760)=100 + KSPARSE(2, 760)=112 !WC_CO2/WC_ORA1 - KSPARSE(1, 556)=54 - KSPARSE(2, 556)=58 + KSPARSE(1, 761)=100 + KSPARSE(2, 761)=113 +!WC_CO2/WC_ACID + KSPARSE(1, 762)=100 + KSPARSE(2, 762)=115 +!WC_CO2/WC_RP16 + KSPARSE(1, 763)=100 + KSPARSE(2, 763)=116 +!WC_CO2/WC_UR21 + KSPARSE(1, 764)=100 + KSPARSE(2, 764)=117 +!WC_CO2/WC_UR28 + KSPARSE(1, 765)=100 + KSPARSE(2, 765)=118 !WC_SO2/SO2 - KSPARSE(1, 557)=55 - KSPARSE(2, 557)=11 + KSPARSE(1, 766)=101 + KSPARSE(2, 766)=13 !WC_SO2/WC_O3 - KSPARSE(1, 558)=55 - KSPARSE(2, 558)=42 + KSPARSE(1, 767)=101 + KSPARSE(2, 767)=88 !WC_SO2/WC_H2O2 - KSPARSE(1, 559)=55 - KSPARSE(2, 559)=43 + KSPARSE(1, 768)=101 + KSPARSE(2, 768)=89 !WC_SO2/WC_NO3 - KSPARSE(1, 560)=55 - KSPARSE(2, 560)=46 + KSPARSE(1, 769)=101 + KSPARSE(2, 769)=92 !WC_SO2/WC_HNO4 - KSPARSE(1, 561)=55 - KSPARSE(2, 561)=50 + KSPARSE(1, 770)=101 + KSPARSE(2, 770)=96 !WC_SO2/WC_OH - KSPARSE(1, 562)=55 - KSPARSE(2, 562)=52 + KSPARSE(1, 771)=101 + KSPARSE(2, 771)=98 !WC_SO2/WC_SO2 - KSPARSE(1, 563)=55 - KSPARSE(2, 563)=55 + KSPARSE(1, 772)=101 + KSPARSE(2, 772)=101 +!WC_SO2/WC_RO21 + KSPARSE(1, 773)=101 + KSPARSE(2, 773)=103 !WC_SO2/WC_HCHO - KSPARSE(1, 564)=55 - KSPARSE(2, 564)=57 -!WC_SO2/WC_MO2 - KSPARSE(1, 565)=55 - KSPARSE(2, 565)=60 + KSPARSE(1, 774)=101 + KSPARSE(2, 774)=108 !WC_SO2/WC_AHSO5 - KSPARSE(1, 566)=55 - KSPARSE(2, 566)=65 + KSPARSE(1, 775)=101 + KSPARSE(2, 775)=123 !WC_SO2/WC_AHMS - KSPARSE(1, 567)=55 - KSPARSE(2, 567)=66 -!WC_SULF/SULF - KSPARSE(1, 568)=56 - KSPARSE(2, 568)=12 -!WC_SULF/WC_O3 - KSPARSE(1, 569)=56 - KSPARSE(2, 569)=42 -!WC_SULF/WC_H2O2 - KSPARSE(1, 570)=56 - KSPARSE(2, 570)=43 -!WC_SULF/WC_NO3 - KSPARSE(1, 571)=56 - KSPARSE(2, 571)=46 -!WC_SULF/WC_HNO4 - KSPARSE(1, 572)=56 - KSPARSE(2, 572)=50 -!WC_SULF/WC_SO2 - KSPARSE(1, 573)=56 - KSPARSE(2, 573)=55 -!WC_SULF/WC_SULF - KSPARSE(1, 574)=56 - KSPARSE(2, 574)=56 -!WC_SULF/WC_ASO4 - KSPARSE(1, 575)=56 - KSPARSE(2, 575)=63 -!WC_SULF/WC_AHSO5 - KSPARSE(1, 576)=56 - KSPARSE(2, 576)=65 + KSPARSE(1, 776)=101 + KSPARSE(2, 776)=124 +!WC_H2SO4/H2SO4 + KSPARSE(1, 777)=102 + KSPARSE(2, 777)=14 +!WC_H2SO4/WC_O3 + KSPARSE(1, 778)=102 + KSPARSE(2, 778)=88 +!WC_H2SO4/WC_H2O2 + KSPARSE(1, 779)=102 + KSPARSE(2, 779)=89 +!WC_H2SO4/WC_NO3 + KSPARSE(1, 780)=102 + KSPARSE(2, 780)=92 +!WC_H2SO4/WC_HNO4 + KSPARSE(1, 781)=102 + KSPARSE(2, 781)=96 +!WC_H2SO4/WC_SO2 + KSPARSE(1, 782)=102 + KSPARSE(2, 782)=101 +!WC_H2SO4/WC_H2SO4 + KSPARSE(1, 783)=102 + KSPARSE(2, 783)=102 +!WC_H2SO4/WC_ASO4 + KSPARSE(1, 784)=102 + KSPARSE(2, 784)=121 +!WC_H2SO4/WC_AHSO5 + KSPARSE(1, 785)=102 + KSPARSE(2, 785)=123 +!WC_RO21/RO21 + KSPARSE(1, 786)=103 + KSPARSE(2, 786)=86 +!WC_RO21/WC_OH + KSPARSE(1, 787)=103 + KSPARSE(2, 787)=98 +!WC_RO21/WC_SO2 + KSPARSE(1, 788)=103 + KSPARSE(2, 788)=101 +!WC_RO21/WC_RO21 + KSPARSE(1, 789)=103 + KSPARSE(2, 789)=103 +!WC_RO21/WC_ALD2 + KSPARSE(1, 790)=103 + KSPARSE(2, 790)=109 +!WC_RO21/WC_KETL + KSPARSE(1, 791)=103 + KSPARSE(2, 791)=112 +!WC_RO25/RO25 + KSPARSE(1, 792)=104 + KSPARSE(2, 792)=87 +!WC_RO25/WC_OH + KSPARSE(1, 793)=104 + KSPARSE(2, 793)=98 +!WC_RO25/WC_RO25 + KSPARSE(1, 794)=104 + KSPARSE(2, 794)=104 +!WC_RO25/WC_ALD2 + KSPARSE(1, 795)=104 + KSPARSE(2, 795)=109 +!WC_RO25/WC_ACID + KSPARSE(1, 796)=104 + KSPARSE(2, 796)=115 +!WC_MEOH/MEOH + KSPARSE(1, 797)=105 + KSPARSE(2, 797)=32 +!WC_MEOH/WC_OH + KSPARSE(1, 798)=105 + KSPARSE(2, 798)=98 +!WC_MEOH/WC_MEOH + KSPARSE(1, 799)=105 + KSPARSE(2, 799)=105 +!WC_ETOH/ETOH + KSPARSE(1, 800)=106 + KSPARSE(2, 800)=33 +!WC_ETOH/WC_OH + KSPARSE(1, 801)=106 + KSPARSE(2, 801)=98 +!WC_ETOH/WC_ETOH + KSPARSE(1, 802)=106 + KSPARSE(2, 802)=106 +!WC_ALCH/ALCH + KSPARSE(1, 803)=107 + KSPARSE(2, 803)=34 +!WC_ALCH/WC_OH + KSPARSE(1, 804)=107 + KSPARSE(2, 804)=98 +!WC_ALCH/WC_ALCH + KSPARSE(1, 805)=107 + KSPARSE(2, 805)=107 !WC_HCHO/HCHO - KSPARSE(1, 577)=57 - KSPARSE(2, 577)=22 + KSPARSE(1, 806)=108 + KSPARSE(2, 806)=28 !WC_HCHO/WC_OH - KSPARSE(1, 578)=57 - KSPARSE(2, 578)=52 + KSPARSE(1, 807)=108 + KSPARSE(2, 807)=98 !WC_HCHO/WC_SO2 - KSPARSE(1, 579)=57 - KSPARSE(2, 579)=55 + KSPARSE(1, 808)=108 + KSPARSE(2, 808)=101 +!WC_HCHO/WC_RO21 + KSPARSE(1, 809)=108 + KSPARSE(2, 809)=103 +!WC_HCHO/WC_MEOH + KSPARSE(1, 810)=108 + KSPARSE(2, 810)=105 !WC_HCHO/WC_HCHO - KSPARSE(1, 580)=57 - KSPARSE(2, 580)=57 -!WC_HCHO/WC_MO2 - KSPARSE(1, 581)=57 - KSPARSE(2, 581)=60 + KSPARSE(1, 811)=108 + KSPARSE(2, 811)=108 +!WC_HCHO/WC_KETL + KSPARSE(1, 812)=108 + KSPARSE(2, 812)=112 !WC_HCHO/WC_AHMS - KSPARSE(1, 582)=57 - KSPARSE(2, 582)=66 + KSPARSE(1, 813)=108 + KSPARSE(2, 813)=124 +!WC_ALD2/ALD2 + KSPARSE(1, 814)=109 + KSPARSE(2, 814)=29 +!WC_ALD2/WC_OH + KSPARSE(1, 815)=109 + KSPARSE(2, 815)=98 +!WC_ALD2/WC_RO25 + KSPARSE(1, 816)=109 + KSPARSE(2, 816)=104 +!WC_ALD2/WC_ETOH + KSPARSE(1, 817)=109 + KSPARSE(2, 817)=106 +!WC_ALD2/WC_ALCH + KSPARSE(1, 818)=109 + KSPARSE(2, 818)=107 +!WC_ALD2/WC_ALD2 + KSPARSE(1, 819)=109 + KSPARSE(2, 819)=109 +!WC_ALD2/WC_KETL + KSPARSE(1, 820)=109 + KSPARSE(2, 820)=112 +!WC_ALD2/WC_ACID + KSPARSE(1, 821)=109 + KSPARSE(2, 821)=115 +!WC_ALD2/WC_UR21 + KSPARSE(1, 822)=109 + KSPARSE(2, 822)=117 +!WC_GLY/GLY + KSPARSE(1, 823)=110 + KSPARSE(2, 823)=42 +!WC_GLY/WC_OH + KSPARSE(1, 824)=110 + KSPARSE(2, 824)=98 +!WC_GLY/WC_GLY + KSPARSE(1, 825)=110 + KSPARSE(2, 825)=110 +!WC_MGLY/MGLY + KSPARSE(1, 826)=111 + KSPARSE(2, 826)=41 +!WC_MGLY/WC_OH + KSPARSE(1, 827)=111 + KSPARSE(2, 827)=98 +!WC_MGLY/WC_MGLY + KSPARSE(1, 828)=111 + KSPARSE(2, 828)=111 +!WC_MGLY/WC_KETL + KSPARSE(1, 829)=111 + KSPARSE(2, 829)=112 +!WC_KETL/KETL + KSPARSE(1, 830)=112 + KSPARSE(2, 830)=30 +!WC_KETL/WC_OH + KSPARSE(1, 831)=112 + KSPARSE(2, 831)=98 +!WC_KETL/WC_ALCH + KSPARSE(1, 832)=112 + KSPARSE(2, 832)=107 +!WC_KETL/WC_KETL + KSPARSE(1, 833)=112 + KSPARSE(2, 833)=112 !WC_ORA1/ORA1 - KSPARSE(1, 583)=58 - KSPARSE(2, 583)=30 + KSPARSE(1, 834)=113 + KSPARSE(2, 834)=43 !WC_ORA1/WC_OH - KSPARSE(1, 584)=58 - KSPARSE(2, 584)=52 + KSPARSE(1, 835)=113 + KSPARSE(2, 835)=98 !WC_ORA1/WC_HCHO - KSPARSE(1, 585)=58 - KSPARSE(2, 585)=57 + KSPARSE(1, 836)=113 + KSPARSE(2, 836)=108 !WC_ORA1/WC_ORA1 - KSPARSE(1, 586)=58 - KSPARSE(2, 586)=58 + KSPARSE(1, 837)=113 + KSPARSE(2, 837)=113 !WC_ORA1/WC_AHMS - KSPARSE(1, 587)=58 - KSPARSE(2, 587)=66 + KSPARSE(1, 838)=113 + KSPARSE(2, 838)=124 !WC_ORA2/ORA2 - KSPARSE(1, 588)=59 - KSPARSE(2, 588)=31 + KSPARSE(1, 839)=114 + KSPARSE(2, 839)=44 +!WC_ORA2/WC_OH + KSPARSE(1, 840)=114 + KSPARSE(2, 840)=98 +!WC_ORA2/WC_RO25 + KSPARSE(1, 841)=114 + KSPARSE(2, 841)=104 !WC_ORA2/WC_ORA2 - KSPARSE(1, 589)=59 - KSPARSE(2, 589)=59 -!WC_MO2/MO2 - KSPARSE(1, 590)=60 - KSPARSE(2, 590)=32 -!WC_MO2/WC_SO2 - KSPARSE(1, 591)=60 - KSPARSE(2, 591)=55 -!WC_MO2/WC_MO2 - KSPARSE(1, 592)=60 - KSPARSE(2, 592)=60 -!WC_OP1/OP1 - KSPARSE(1, 593)=61 - KSPARSE(2, 593)=28 -!WC_OP1/WC_SO2 - KSPARSE(1, 594)=61 - KSPARSE(2, 594)=55 -!WC_OP1/WC_MO2 - KSPARSE(1, 595)=61 - KSPARSE(2, 595)=60 -!WC_OP1/WC_OP1 - KSPARSE(1, 596)=61 - KSPARSE(2, 596)=61 + KSPARSE(1, 842)=114 + KSPARSE(2, 842)=114 +!WC_ACID/ACID + KSPARSE(1, 843)=115 + KSPARSE(2, 843)=45 +!WC_ACID/WC_OH + KSPARSE(1, 844)=115 + KSPARSE(2, 844)=98 +!WC_ACID/WC_ACID + KSPARSE(1, 845)=115 + KSPARSE(2, 845)=115 +!WC_RP16/RP16 + KSPARSE(1, 846)=116 + KSPARSE(2, 846)=74 +!WC_RP16/WC_OH + KSPARSE(1, 847)=116 + KSPARSE(2, 847)=98 +!WC_RP16/WC_GLY + KSPARSE(1, 848)=116 + KSPARSE(2, 848)=110 +!WC_RP16/WC_ORA2 + KSPARSE(1, 849)=116 + KSPARSE(2, 849)=114 +!WC_RP16/WC_RP16 + KSPARSE(1, 850)=116 + KSPARSE(2, 850)=116 +!WC_UR21/UR21 + KSPARSE(1, 851)=117 + KSPARSE(2, 851)=47 +!WC_UR21/WC_OH + KSPARSE(1, 852)=117 + KSPARSE(2, 852)=98 +!WC_UR21/WC_MGLY + KSPARSE(1, 853)=117 + KSPARSE(2, 853)=111 +!WC_UR21/WC_KETL + KSPARSE(1, 854)=117 + KSPARSE(2, 854)=112 +!WC_UR21/WC_ACID + KSPARSE(1, 855)=117 + KSPARSE(2, 855)=115 +!WC_UR21/WC_UR21 + KSPARSE(1, 856)=117 + KSPARSE(2, 856)=117 +!WC_UR28/UR28 + KSPARSE(1, 857)=118 + KSPARSE(2, 857)=46 +!WC_UR28/WC_OH + KSPARSE(1, 858)=118 + KSPARSE(2, 858)=98 +!WC_UR28/WC_RP16 + KSPARSE(1, 859)=118 + KSPARSE(2, 859)=116 +!WC_UR28/WC_UR28 + KSPARSE(1, 860)=118 + KSPARSE(2, 860)=118 +!WC_ACID2/WC_OH + KSPARSE(1, 861)=119 + KSPARSE(2, 861)=98 +!WC_ACID2/WC_ACID + KSPARSE(1, 862)=119 + KSPARSE(2, 862)=115 +!WC_ACID2/WC_UR21 + KSPARSE(1, 863)=119 + KSPARSE(2, 863)=117 +!WC_ACID2/WC_ACID2 + KSPARSE(1, 864)=119 + KSPARSE(2, 864)=119 !WC_ASO3/WC_NO3 - KSPARSE(1, 597)=62 - KSPARSE(2, 597)=46 + KSPARSE(1, 865)=120 + KSPARSE(2, 865)=92 !WC_ASO3/WC_OH - KSPARSE(1, 598)=62 - KSPARSE(2, 598)=52 + KSPARSE(1, 866)=120 + KSPARSE(2, 866)=98 !WC_ASO3/WC_SO2 - KSPARSE(1, 599)=62 - KSPARSE(2, 599)=55 -!WC_ASO3/WC_MO2 - KSPARSE(1, 600)=62 - KSPARSE(2, 600)=60 + KSPARSE(1, 867)=120 + KSPARSE(2, 867)=101 +!WC_ASO3/WC_RO21 + KSPARSE(1, 868)=120 + KSPARSE(2, 868)=103 !WC_ASO3/WC_ASO3 - KSPARSE(1, 601)=62 - KSPARSE(2, 601)=62 + KSPARSE(1, 869)=120 + KSPARSE(2, 869)=120 !WC_ASO4/WC_NO3 - KSPARSE(1, 602)=63 - KSPARSE(2, 602)=46 -!WC_ASO4/WC_SULF - KSPARSE(1, 603)=63 - KSPARSE(2, 603)=56 + KSPARSE(1, 870)=121 + KSPARSE(2, 870)=92 +!WC_ASO4/WC_H2SO4 + KSPARSE(1, 871)=121 + KSPARSE(2, 871)=102 !WC_ASO4/WC_ASO4 - KSPARSE(1, 604)=63 - KSPARSE(2, 604)=63 + KSPARSE(1, 872)=121 + KSPARSE(2, 872)=121 !WC_ASO4/WC_ASO5 - KSPARSE(1, 605)=63 - KSPARSE(2, 605)=64 + KSPARSE(1, 873)=121 + KSPARSE(2, 873)=122 !WC_ASO5/WC_HO2 - KSPARSE(1, 606)=64 - KSPARSE(2, 606)=53 + KSPARSE(1, 874)=122 + KSPARSE(2, 874)=99 !WC_ASO5/WC_ASO3 - KSPARSE(1, 607)=64 - KSPARSE(2, 607)=62 + KSPARSE(1, 875)=122 + KSPARSE(2, 875)=120 !WC_ASO5/WC_ASO5 - KSPARSE(1, 608)=64 - KSPARSE(2, 608)=64 + KSPARSE(1, 876)=122 + KSPARSE(2, 876)=122 !WC_AHSO5/WC_HO2 - KSPARSE(1, 609)=65 - KSPARSE(2, 609)=53 + KSPARSE(1, 877)=123 + KSPARSE(2, 877)=99 !WC_AHSO5/WC_SO2 - KSPARSE(1, 610)=65 - KSPARSE(2, 610)=55 + KSPARSE(1, 878)=123 + KSPARSE(2, 878)=101 !WC_AHSO5/WC_ASO5 - KSPARSE(1, 611)=65 - KSPARSE(2, 611)=64 + KSPARSE(1, 879)=123 + KSPARSE(2, 879)=122 !WC_AHSO5/WC_AHSO5 - KSPARSE(1, 612)=65 - KSPARSE(2, 612)=65 + KSPARSE(1, 880)=123 + KSPARSE(2, 880)=123 !WC_AHMS/WC_OH - KSPARSE(1, 613)=66 - KSPARSE(2, 613)=52 + KSPARSE(1, 881)=124 + KSPARSE(2, 881)=98 !WC_AHMS/WC_SO2 - KSPARSE(1, 614)=66 - KSPARSE(2, 614)=55 + KSPARSE(1, 882)=124 + KSPARSE(2, 882)=101 !WC_AHMS/WC_HCHO - KSPARSE(1, 615)=66 - KSPARSE(2, 615)=57 + KSPARSE(1, 883)=124 + KSPARSE(2, 883)=108 !WC_AHMS/WC_AHMS - KSPARSE(1, 616)=66 - KSPARSE(2, 616)=66 + KSPARSE(1, 884)=124 + KSPARSE(2, 884)=124 !WR_O3/O3 - KSPARSE(1, 617)=67 - KSPARSE(2, 617)=1 + KSPARSE(1, 885)=125 + KSPARSE(2, 885)=3 !WR_O3/WR_O3 - KSPARSE(1, 618)=67 - KSPARSE(2, 618)=67 + KSPARSE(1, 886)=125 + KSPARSE(2, 886)=125 !WR_O3/WR_HO2 - KSPARSE(1, 619)=67 - KSPARSE(2, 619)=78 + KSPARSE(1, 887)=125 + KSPARSE(2, 887)=136 !WR_O3/WR_SO2 - KSPARSE(1, 620)=67 - KSPARSE(2, 620)=80 + KSPARSE(1, 888)=125 + KSPARSE(2, 888)=138 !WR_H2O2/H2O2 - KSPARSE(1, 621)=68 - KSPARSE(2, 621)=2 + KSPARSE(1, 889)=126 + KSPARSE(2, 889)=12 !WR_H2O2/WR_H2O2 - KSPARSE(1, 622)=68 - KSPARSE(2, 622)=68 + KSPARSE(1, 890)=126 + KSPARSE(2, 890)=126 !WR_H2O2/WR_OH - KSPARSE(1, 623)=68 - KSPARSE(2, 623)=77 + KSPARSE(1, 891)=126 + KSPARSE(2, 891)=135 !WR_H2O2/WR_HO2 - KSPARSE(1, 624)=68 - KSPARSE(2, 624)=78 + KSPARSE(1, 892)=126 + KSPARSE(2, 892)=136 !WR_H2O2/WR_SO2 - KSPARSE(1, 625)=68 - KSPARSE(2, 625)=80 + KSPARSE(1, 893)=126 + KSPARSE(2, 893)=138 +!WR_H2O2/WR_RO25 + KSPARSE(1, 894)=126 + KSPARSE(2, 894)=141 +!WR_H2O2/WR_KETL + KSPARSE(1, 895)=126 + KSPARSE(2, 895)=149 +!WR_H2O2/WR_ORA2 + KSPARSE(1, 896)=126 + KSPARSE(2, 896)=151 +!WR_H2O2/WR_ACID + KSPARSE(1, 897)=126 + KSPARSE(2, 897)=152 +!WR_H2O2/WR_RP16 + KSPARSE(1, 898)=126 + KSPARSE(2, 898)=153 +!WR_H2O2/WR_UR21 + KSPARSE(1, 899)=126 + KSPARSE(2, 899)=154 !WR_NO/NO - KSPARSE(1, 626)=69 - KSPARSE(2, 626)=3 + KSPARSE(1, 900)=127 + KSPARSE(2, 900)=1 !WR_NO/WR_NO - KSPARSE(1, 627)=69 - KSPARSE(2, 627)=69 + KSPARSE(1, 901)=127 + KSPARSE(2, 901)=127 !WR_NO2/NO2 - KSPARSE(1, 628)=70 - KSPARSE(2, 628)=4 + KSPARSE(1, 902)=128 + KSPARSE(2, 902)=2 !WR_NO2/WR_NO2 - KSPARSE(1, 629)=70 - KSPARSE(2, 629)=70 + KSPARSE(1, 903)=128 + KSPARSE(2, 903)=128 !WR_NO2/WR_HONO - KSPARSE(1, 630)=70 - KSPARSE(2, 630)=73 + KSPARSE(1, 904)=128 + KSPARSE(2, 904)=131 !WR_NO2/WR_HNO3 - KSPARSE(1, 631)=70 - KSPARSE(2, 631)=74 + KSPARSE(1, 905)=128 + KSPARSE(2, 905)=132 !WR_NO2/WR_HNO4 - KSPARSE(1, 632)=70 - KSPARSE(2, 632)=75 + KSPARSE(1, 906)=128 + KSPARSE(2, 906)=133 !WR_NO2/WR_OH - KSPARSE(1, 633)=70 - KSPARSE(2, 633)=77 + KSPARSE(1, 907)=128 + KSPARSE(2, 907)=135 !WR_NO2/WR_HO2 - KSPARSE(1, 634)=70 - KSPARSE(2, 634)=78 + KSPARSE(1, 908)=128 + KSPARSE(2, 908)=136 !WR_NO3/NO3 - KSPARSE(1, 635)=71 - KSPARSE(2, 635)=5 + KSPARSE(1, 909)=129 + KSPARSE(2, 909)=8 !WR_NO3/WR_NO3 - KSPARSE(1, 636)=71 - KSPARSE(2, 636)=71 + KSPARSE(1, 910)=129 + KSPARSE(2, 910)=129 !WR_NO3/WR_SO2 - KSPARSE(1, 637)=71 - KSPARSE(2, 637)=80 -!WR_NO3/WR_SULF - KSPARSE(1, 638)=71 - KSPARSE(2, 638)=81 + KSPARSE(1, 911)=129 + KSPARSE(2, 911)=138 +!WR_NO3/WR_H2SO4 + KSPARSE(1, 912)=129 + KSPARSE(2, 912)=139 !WR_N2O5/N2O5 - KSPARSE(1, 639)=72 - KSPARSE(2, 639)=6 + KSPARSE(1, 913)=130 + KSPARSE(2, 913)=7 !WR_N2O5/WR_N2O5 - KSPARSE(1, 640)=72 - KSPARSE(2, 640)=72 + KSPARSE(1, 914)=130 + KSPARSE(2, 914)=130 !WR_HONO/HONO - KSPARSE(1, 641)=73 - KSPARSE(2, 641)=7 + KSPARSE(1, 915)=131 + KSPARSE(2, 915)=4 !WR_HONO/WR_HONO - KSPARSE(1, 642)=73 - KSPARSE(2, 642)=73 + KSPARSE(1, 916)=131 + KSPARSE(2, 916)=131 !WR_HONO/WR_HNO4 - KSPARSE(1, 643)=73 - KSPARSE(2, 643)=75 + KSPARSE(1, 917)=131 + KSPARSE(2, 917)=133 !WR_HONO/WR_OH - KSPARSE(1, 644)=73 - KSPARSE(2, 644)=77 + KSPARSE(1, 918)=131 + KSPARSE(2, 918)=135 !WR_HNO3/HNO3 - KSPARSE(1, 645)=74 - KSPARSE(2, 645)=8 + KSPARSE(1, 919)=132 + KSPARSE(2, 919)=5 !WR_HNO3/WR_NO3 - KSPARSE(1, 646)=74 - KSPARSE(2, 646)=71 + KSPARSE(1, 920)=132 + KSPARSE(2, 920)=129 !WR_HNO3/WR_N2O5 - KSPARSE(1, 647)=74 - KSPARSE(2, 647)=72 + KSPARSE(1, 921)=132 + KSPARSE(2, 921)=130 !WR_HNO3/WR_HNO3 - KSPARSE(1, 648)=74 - KSPARSE(2, 648)=74 + KSPARSE(1, 922)=132 + KSPARSE(2, 922)=132 !WR_HNO3/WR_HNO4 - KSPARSE(1, 649)=74 - KSPARSE(2, 649)=75 + KSPARSE(1, 923)=132 + KSPARSE(2, 923)=133 !WR_HNO3/WR_SO2 - KSPARSE(1, 650)=74 - KSPARSE(2, 650)=80 -!WR_HNO3/WR_SULF - KSPARSE(1, 651)=74 - KSPARSE(2, 651)=81 + KSPARSE(1, 924)=132 + KSPARSE(2, 924)=138 +!WR_HNO3/WR_H2SO4 + KSPARSE(1, 925)=132 + KSPARSE(2, 925)=139 !WR_HNO4/HNO4 - KSPARSE(1, 652)=75 - KSPARSE(2, 652)=9 + KSPARSE(1, 926)=133 + KSPARSE(2, 926)=6 !WR_HNO4/WR_NO2 - KSPARSE(1, 653)=75 - KSPARSE(2, 653)=70 + KSPARSE(1, 927)=133 + KSPARSE(2, 927)=128 !WR_HNO4/WR_HNO4 - KSPARSE(1, 654)=75 - KSPARSE(2, 654)=75 + KSPARSE(1, 928)=133 + KSPARSE(2, 928)=133 !WR_HNO4/WR_HO2 - KSPARSE(1, 655)=75 - KSPARSE(2, 655)=78 + KSPARSE(1, 929)=133 + KSPARSE(2, 929)=136 !WR_HNO4/WR_SO2 - KSPARSE(1, 656)=75 - KSPARSE(2, 656)=80 + KSPARSE(1, 930)=133 + KSPARSE(2, 930)=138 !WR_NH3/NH3 - KSPARSE(1, 657)=76 - KSPARSE(2, 657)=10 + KSPARSE(1, 931)=134 + KSPARSE(2, 931)=9 !WR_NH3/WR_NH3 - KSPARSE(1, 658)=76 - KSPARSE(2, 658)=76 + KSPARSE(1, 932)=134 + KSPARSE(2, 932)=134 !WR_OH/OH - KSPARSE(1, 659)=77 - KSPARSE(2, 659)=14 + KSPARSE(1, 933)=135 + KSPARSE(2, 933)=15 !WR_OH/WR_O3 - KSPARSE(1, 660)=77 - KSPARSE(2, 660)=67 + KSPARSE(1, 934)=135 + KSPARSE(2, 934)=125 !WR_OH/WR_H2O2 - KSPARSE(1, 661)=77 - KSPARSE(2, 661)=68 + KSPARSE(1, 935)=135 + KSPARSE(2, 935)=126 !WR_OH/WR_HONO - KSPARSE(1, 662)=77 - KSPARSE(2, 662)=73 + KSPARSE(1, 936)=135 + KSPARSE(2, 936)=131 !WR_OH/WR_HNO3 - KSPARSE(1, 663)=77 - KSPARSE(2, 663)=74 + KSPARSE(1, 937)=135 + KSPARSE(2, 937)=132 !WR_OH/WR_OH - KSPARSE(1, 664)=77 - KSPARSE(2, 664)=77 + KSPARSE(1, 938)=135 + KSPARSE(2, 938)=135 !WR_OH/WR_HO2 - KSPARSE(1, 665)=77 - KSPARSE(2, 665)=78 + KSPARSE(1, 939)=135 + KSPARSE(2, 939)=136 !WR_OH/WR_SO2 - KSPARSE(1, 666)=77 - KSPARSE(2, 666)=80 + KSPARSE(1, 940)=135 + KSPARSE(2, 940)=138 +!WR_OH/WR_MEOH + KSPARSE(1, 941)=135 + KSPARSE(2, 941)=142 +!WR_OH/WR_ETOH + KSPARSE(1, 942)=135 + KSPARSE(2, 942)=143 +!WR_OH/WR_ALCH + KSPARSE(1, 943)=135 + KSPARSE(2, 943)=144 !WR_OH/WR_HCHO - KSPARSE(1, 667)=77 - KSPARSE(2, 667)=82 + KSPARSE(1, 944)=135 + KSPARSE(2, 944)=145 +!WR_OH/WR_ALD2 + KSPARSE(1, 945)=135 + KSPARSE(2, 945)=146 +!WR_OH/WR_GLY + KSPARSE(1, 946)=135 + KSPARSE(2, 946)=147 +!WR_OH/WR_MGLY + KSPARSE(1, 947)=135 + KSPARSE(2, 947)=148 +!WR_OH/WR_KETL + KSPARSE(1, 948)=135 + KSPARSE(2, 948)=149 !WR_OH/WR_ORA1 - KSPARSE(1, 668)=77 - KSPARSE(2, 668)=83 + KSPARSE(1, 949)=135 + KSPARSE(2, 949)=150 +!WR_OH/WR_ORA2 + KSPARSE(1, 950)=135 + KSPARSE(2, 950)=151 +!WR_OH/WR_ACID + KSPARSE(1, 951)=135 + KSPARSE(2, 951)=152 +!WR_OH/WR_RP16 + KSPARSE(1, 952)=135 + KSPARSE(2, 952)=153 +!WR_OH/WR_UR21 + KSPARSE(1, 953)=135 + KSPARSE(2, 953)=154 +!WR_OH/WR_UR28 + KSPARSE(1, 954)=135 + KSPARSE(2, 954)=155 +!WR_OH/WR_ACID2 + KSPARSE(1, 955)=135 + KSPARSE(2, 955)=156 !WR_OH/WR_ASO4 - KSPARSE(1, 669)=77 - KSPARSE(2, 669)=88 + KSPARSE(1, 956)=135 + KSPARSE(2, 956)=158 !WR_OH/WR_AHMS - KSPARSE(1, 670)=77 - KSPARSE(2, 670)=91 + KSPARSE(1, 957)=135 + KSPARSE(2, 957)=161 !WR_HO2/HO2 - KSPARSE(1, 671)=78 - KSPARSE(2, 671)=15 + KSPARSE(1, 958)=136 + KSPARSE(2, 958)=10 !WR_HO2/WR_O3 - KSPARSE(1, 672)=78 - KSPARSE(2, 672)=67 + KSPARSE(1, 959)=136 + KSPARSE(2, 959)=125 !WR_HO2/WR_H2O2 - KSPARSE(1, 673)=78 - KSPARSE(2, 673)=68 + KSPARSE(1, 960)=136 + KSPARSE(2, 960)=126 !WR_HO2/WR_NO2 - KSPARSE(1, 674)=78 - KSPARSE(2, 674)=70 + KSPARSE(1, 961)=136 + KSPARSE(2, 961)=128 !WR_HO2/WR_HNO4 - KSPARSE(1, 675)=78 - KSPARSE(2, 675)=75 + KSPARSE(1, 962)=136 + KSPARSE(2, 962)=133 !WR_HO2/WR_OH - KSPARSE(1, 676)=78 - KSPARSE(2, 676)=77 + KSPARSE(1, 963)=136 + KSPARSE(2, 963)=135 !WR_HO2/WR_HO2 - KSPARSE(1, 677)=78 - KSPARSE(2, 677)=78 + KSPARSE(1, 964)=136 + KSPARSE(2, 964)=136 +!WR_HO2/WR_RO21 + KSPARSE(1, 965)=136 + KSPARSE(2, 965)=140 +!WR_HO2/WR_RO25 + KSPARSE(1, 966)=136 + KSPARSE(2, 966)=141 +!WR_HO2/WR_MEOH + KSPARSE(1, 967)=136 + KSPARSE(2, 967)=142 +!WR_HO2/WR_ETOH + KSPARSE(1, 968)=136 + KSPARSE(2, 968)=143 +!WR_HO2/WR_ALCH + KSPARSE(1, 969)=136 + KSPARSE(2, 969)=144 !WR_HO2/WR_HCHO - KSPARSE(1, 678)=78 - KSPARSE(2, 678)=82 + KSPARSE(1, 970)=136 + KSPARSE(2, 970)=145 +!WR_HO2/WR_GLY + KSPARSE(1, 971)=136 + KSPARSE(2, 971)=147 +!WR_HO2/WR_MGLY + KSPARSE(1, 972)=136 + KSPARSE(2, 972)=148 +!WR_HO2/WR_KETL + KSPARSE(1, 973)=136 + KSPARSE(2, 973)=149 !WR_HO2/WR_ORA1 - KSPARSE(1, 679)=78 - KSPARSE(2, 679)=83 -!WR_HO2/WR_MO2 - KSPARSE(1, 680)=78 - KSPARSE(2, 680)=85 + KSPARSE(1, 974)=136 + KSPARSE(2, 974)=150 +!WR_HO2/WR_ACID + KSPARSE(1, 975)=136 + KSPARSE(2, 975)=152 +!WR_HO2/WR_RP16 + KSPARSE(1, 976)=136 + KSPARSE(2, 976)=153 +!WR_HO2/WR_UR21 + KSPARSE(1, 977)=136 + KSPARSE(2, 977)=154 +!WR_HO2/WR_UR28 + KSPARSE(1, 978)=136 + KSPARSE(2, 978)=155 !WR_HO2/WR_ASO5 - KSPARSE(1, 681)=78 - KSPARSE(2, 681)=89 + KSPARSE(1, 979)=136 + KSPARSE(2, 979)=159 !WR_HO2/WR_AHMS - KSPARSE(1, 682)=78 - KSPARSE(2, 682)=91 + KSPARSE(1, 980)=136 + KSPARSE(2, 980)=161 !WR_CO2/WR_OH - KSPARSE(1, 683)=79 - KSPARSE(2, 683)=77 + KSPARSE(1, 981)=137 + KSPARSE(2, 981)=135 !WR_CO2/WR_CO2 - KSPARSE(1, 684)=79 - KSPARSE(2, 684)=79 + KSPARSE(1, 982)=137 + KSPARSE(2, 982)=137 +!WR_CO2/WR_ALD2 + KSPARSE(1, 983)=137 + KSPARSE(2, 983)=146 +!WR_CO2/WR_KETL + KSPARSE(1, 984)=137 + KSPARSE(2, 984)=149 !WR_CO2/WR_ORA1 - KSPARSE(1, 685)=79 - KSPARSE(2, 685)=83 + KSPARSE(1, 985)=137 + KSPARSE(2, 985)=150 +!WR_CO2/WR_ACID + KSPARSE(1, 986)=137 + KSPARSE(2, 986)=152 +!WR_CO2/WR_RP16 + KSPARSE(1, 987)=137 + KSPARSE(2, 987)=153 +!WR_CO2/WR_UR21 + KSPARSE(1, 988)=137 + KSPARSE(2, 988)=154 +!WR_CO2/WR_UR28 + KSPARSE(1, 989)=137 + KSPARSE(2, 989)=155 !WR_SO2/SO2 - KSPARSE(1, 686)=80 - KSPARSE(2, 686)=11 + KSPARSE(1, 990)=138 + KSPARSE(2, 990)=13 !WR_SO2/WR_O3 - KSPARSE(1, 687)=80 - KSPARSE(2, 687)=67 + KSPARSE(1, 991)=138 + KSPARSE(2, 991)=125 !WR_SO2/WR_H2O2 - KSPARSE(1, 688)=80 - KSPARSE(2, 688)=68 + KSPARSE(1, 992)=138 + KSPARSE(2, 992)=126 !WR_SO2/WR_NO3 - KSPARSE(1, 689)=80 - KSPARSE(2, 689)=71 + KSPARSE(1, 993)=138 + KSPARSE(2, 993)=129 !WR_SO2/WR_HNO4 - KSPARSE(1, 690)=80 - KSPARSE(2, 690)=75 + KSPARSE(1, 994)=138 + KSPARSE(2, 994)=133 !WR_SO2/WR_OH - KSPARSE(1, 691)=80 - KSPARSE(2, 691)=77 + KSPARSE(1, 995)=138 + KSPARSE(2, 995)=135 !WR_SO2/WR_SO2 - KSPARSE(1, 692)=80 - KSPARSE(2, 692)=80 + KSPARSE(1, 996)=138 + KSPARSE(2, 996)=138 +!WR_SO2/WR_RO21 + KSPARSE(1, 997)=138 + KSPARSE(2, 997)=140 !WR_SO2/WR_HCHO - KSPARSE(1, 693)=80 - KSPARSE(2, 693)=82 -!WR_SO2/WR_MO2 - KSPARSE(1, 694)=80 - KSPARSE(2, 694)=85 + KSPARSE(1, 998)=138 + KSPARSE(2, 998)=145 !WR_SO2/WR_AHSO5 - KSPARSE(1, 695)=80 - KSPARSE(2, 695)=90 + KSPARSE(1, 999)=138 + KSPARSE(2, 999)=160 !WR_SO2/WR_AHMS - KSPARSE(1, 696)=80 - KSPARSE(2, 696)=91 -!WR_SULF/SULF - KSPARSE(1, 697)=81 - KSPARSE(2, 697)=12 -!WR_SULF/WR_O3 - KSPARSE(1, 698)=81 - KSPARSE(2, 698)=67 -!WR_SULF/WR_H2O2 - KSPARSE(1, 699)=81 - KSPARSE(2, 699)=68 -!WR_SULF/WR_NO3 - KSPARSE(1, 700)=81 - KSPARSE(2, 700)=71 -!WR_SULF/WR_HNO4 - KSPARSE(1, 701)=81 - KSPARSE(2, 701)=75 -!WR_SULF/WR_SO2 - KSPARSE(1, 702)=81 - KSPARSE(2, 702)=80 -!WR_SULF/WR_SULF - KSPARSE(1, 703)=81 - KSPARSE(2, 703)=81 -!WR_SULF/WR_ASO4 - KSPARSE(1, 704)=81 - KSPARSE(2, 704)=88 -!WR_SULF/WR_AHSO5 - KSPARSE(1, 705)=81 - KSPARSE(2, 705)=90 + KSPARSE(1, 1000)=138 + KSPARSE(2, 1000)=161 +!WR_H2SO4/H2SO4 + KSPARSE(1, 1001)=139 + KSPARSE(2, 1001)=14 +!WR_H2SO4/WR_O3 + KSPARSE(1, 1002)=139 + KSPARSE(2, 1002)=125 +!WR_H2SO4/WR_H2O2 + KSPARSE(1, 1003)=139 + KSPARSE(2, 1003)=126 +!WR_H2SO4/WR_NO3 + KSPARSE(1, 1004)=139 + KSPARSE(2, 1004)=129 +!WR_H2SO4/WR_HNO4 + KSPARSE(1, 1005)=139 + KSPARSE(2, 1005)=133 +!WR_H2SO4/WR_SO2 + KSPARSE(1, 1006)=139 + KSPARSE(2, 1006)=138 +!WR_H2SO4/WR_H2SO4 + KSPARSE(1, 1007)=139 + KSPARSE(2, 1007)=139 +!WR_H2SO4/WR_ASO4 + KSPARSE(1, 1008)=139 + KSPARSE(2, 1008)=158 +!WR_H2SO4/WR_AHSO5 + KSPARSE(1, 1009)=139 + KSPARSE(2, 1009)=160 +!WR_RO21/RO21 + KSPARSE(1, 1010)=140 + KSPARSE(2, 1010)=86 +!WR_RO21/WR_OH + KSPARSE(1, 1011)=140 + KSPARSE(2, 1011)=135 +!WR_RO21/WR_SO2 + KSPARSE(1, 1012)=140 + KSPARSE(2, 1012)=138 +!WR_RO21/WR_RO21 + KSPARSE(1, 1013)=140 + KSPARSE(2, 1013)=140 +!WR_RO21/WR_ALD2 + KSPARSE(1, 1014)=140 + KSPARSE(2, 1014)=146 +!WR_RO21/WR_KETL + KSPARSE(1, 1015)=140 + KSPARSE(2, 1015)=149 +!WR_RO25/RO25 + KSPARSE(1, 1016)=141 + KSPARSE(2, 1016)=87 +!WR_RO25/WR_OH + KSPARSE(1, 1017)=141 + KSPARSE(2, 1017)=135 +!WR_RO25/WR_RO25 + KSPARSE(1, 1018)=141 + KSPARSE(2, 1018)=141 +!WR_RO25/WR_ALD2 + KSPARSE(1, 1019)=141 + KSPARSE(2, 1019)=146 +!WR_RO25/WR_ACID + KSPARSE(1, 1020)=141 + KSPARSE(2, 1020)=152 +!WR_MEOH/MEOH + KSPARSE(1, 1021)=142 + KSPARSE(2, 1021)=32 +!WR_MEOH/WR_OH + KSPARSE(1, 1022)=142 + KSPARSE(2, 1022)=135 +!WR_MEOH/WR_MEOH + KSPARSE(1, 1023)=142 + KSPARSE(2, 1023)=142 +!WR_ETOH/ETOH + KSPARSE(1, 1024)=143 + KSPARSE(2, 1024)=33 +!WR_ETOH/WR_OH + KSPARSE(1, 1025)=143 + KSPARSE(2, 1025)=135 +!WR_ETOH/WR_ETOH + KSPARSE(1, 1026)=143 + KSPARSE(2, 1026)=143 +!WR_ALCH/ALCH + KSPARSE(1, 1027)=144 + KSPARSE(2, 1027)=34 +!WR_ALCH/WR_OH + KSPARSE(1, 1028)=144 + KSPARSE(2, 1028)=135 +!WR_ALCH/WR_ALCH + KSPARSE(1, 1029)=144 + KSPARSE(2, 1029)=144 !WR_HCHO/HCHO - KSPARSE(1, 706)=82 - KSPARSE(2, 706)=22 + KSPARSE(1, 1030)=145 + KSPARSE(2, 1030)=28 !WR_HCHO/WR_OH - KSPARSE(1, 707)=82 - KSPARSE(2, 707)=77 + KSPARSE(1, 1031)=145 + KSPARSE(2, 1031)=135 !WR_HCHO/WR_SO2 - KSPARSE(1, 708)=82 - KSPARSE(2, 708)=80 + KSPARSE(1, 1032)=145 + KSPARSE(2, 1032)=138 +!WR_HCHO/WR_RO21 + KSPARSE(1, 1033)=145 + KSPARSE(2, 1033)=140 +!WR_HCHO/WR_MEOH + KSPARSE(1, 1034)=145 + KSPARSE(2, 1034)=142 !WR_HCHO/WR_HCHO - KSPARSE(1, 709)=82 - KSPARSE(2, 709)=82 -!WR_HCHO/WR_MO2 - KSPARSE(1, 710)=82 - KSPARSE(2, 710)=85 + KSPARSE(1, 1035)=145 + KSPARSE(2, 1035)=145 +!WR_HCHO/WR_KETL + KSPARSE(1, 1036)=145 + KSPARSE(2, 1036)=149 !WR_HCHO/WR_AHMS - KSPARSE(1, 711)=82 - KSPARSE(2, 711)=91 + KSPARSE(1, 1037)=145 + KSPARSE(2, 1037)=161 +!WR_ALD2/ALD2 + KSPARSE(1, 1038)=146 + KSPARSE(2, 1038)=29 +!WR_ALD2/WR_OH + KSPARSE(1, 1039)=146 + KSPARSE(2, 1039)=135 +!WR_ALD2/WR_RO25 + KSPARSE(1, 1040)=146 + KSPARSE(2, 1040)=141 +!WR_ALD2/WR_ETOH + KSPARSE(1, 1041)=146 + KSPARSE(2, 1041)=143 +!WR_ALD2/WR_ALCH + KSPARSE(1, 1042)=146 + KSPARSE(2, 1042)=144 +!WR_ALD2/WR_ALD2 + KSPARSE(1, 1043)=146 + KSPARSE(2, 1043)=146 +!WR_ALD2/WR_KETL + KSPARSE(1, 1044)=146 + KSPARSE(2, 1044)=149 +!WR_ALD2/WR_ACID + KSPARSE(1, 1045)=146 + KSPARSE(2, 1045)=152 +!WR_ALD2/WR_UR21 + KSPARSE(1, 1046)=146 + KSPARSE(2, 1046)=154 +!WR_GLY/GLY + KSPARSE(1, 1047)=147 + KSPARSE(2, 1047)=42 +!WR_GLY/WR_OH + KSPARSE(1, 1048)=147 + KSPARSE(2, 1048)=135 +!WR_GLY/WR_GLY + KSPARSE(1, 1049)=147 + KSPARSE(2, 1049)=147 +!WR_MGLY/MGLY + KSPARSE(1, 1050)=148 + KSPARSE(2, 1050)=41 +!WR_MGLY/WR_OH + KSPARSE(1, 1051)=148 + KSPARSE(2, 1051)=135 +!WR_MGLY/WR_MGLY + KSPARSE(1, 1052)=148 + KSPARSE(2, 1052)=148 +!WR_MGLY/WR_KETL + KSPARSE(1, 1053)=148 + KSPARSE(2, 1053)=149 +!WR_KETL/KETL + KSPARSE(1, 1054)=149 + KSPARSE(2, 1054)=30 +!WR_KETL/WR_OH + KSPARSE(1, 1055)=149 + KSPARSE(2, 1055)=135 +!WR_KETL/WR_ALCH + KSPARSE(1, 1056)=149 + KSPARSE(2, 1056)=144 +!WR_KETL/WR_KETL + KSPARSE(1, 1057)=149 + KSPARSE(2, 1057)=149 !WR_ORA1/ORA1 - KSPARSE(1, 712)=83 - KSPARSE(2, 712)=30 + KSPARSE(1, 1058)=150 + KSPARSE(2, 1058)=43 !WR_ORA1/WR_OH - KSPARSE(1, 713)=83 - KSPARSE(2, 713)=77 + KSPARSE(1, 1059)=150 + KSPARSE(2, 1059)=135 !WR_ORA1/WR_HCHO - KSPARSE(1, 714)=83 - KSPARSE(2, 714)=82 + KSPARSE(1, 1060)=150 + KSPARSE(2, 1060)=145 !WR_ORA1/WR_ORA1 - KSPARSE(1, 715)=83 - KSPARSE(2, 715)=83 + KSPARSE(1, 1061)=150 + KSPARSE(2, 1061)=150 !WR_ORA1/WR_AHMS - KSPARSE(1, 716)=83 - KSPARSE(2, 716)=91 + KSPARSE(1, 1062)=150 + KSPARSE(2, 1062)=161 !WR_ORA2/ORA2 - KSPARSE(1, 717)=84 - KSPARSE(2, 717)=31 + KSPARSE(1, 1063)=151 + KSPARSE(2, 1063)=44 +!WR_ORA2/WR_OH + KSPARSE(1, 1064)=151 + KSPARSE(2, 1064)=135 +!WR_ORA2/WR_RO25 + KSPARSE(1, 1065)=151 + KSPARSE(2, 1065)=141 !WR_ORA2/WR_ORA2 - KSPARSE(1, 718)=84 - KSPARSE(2, 718)=84 -!WR_MO2/MO2 - KSPARSE(1, 719)=85 - KSPARSE(2, 719)=32 -!WR_MO2/WR_SO2 - KSPARSE(1, 720)=85 - KSPARSE(2, 720)=80 -!WR_MO2/WR_MO2 - KSPARSE(1, 721)=85 - KSPARSE(2, 721)=85 -!WR_OP1/OP1 - KSPARSE(1, 722)=86 - KSPARSE(2, 722)=28 -!WR_OP1/WR_SO2 - KSPARSE(1, 723)=86 - KSPARSE(2, 723)=80 -!WR_OP1/WR_MO2 - KSPARSE(1, 724)=86 - KSPARSE(2, 724)=85 -!WR_OP1/WR_OP1 - KSPARSE(1, 725)=86 - KSPARSE(2, 725)=86 + KSPARSE(1, 1066)=151 + KSPARSE(2, 1066)=151 +!WR_ACID/ACID + KSPARSE(1, 1067)=152 + KSPARSE(2, 1067)=45 +!WR_ACID/WR_OH + KSPARSE(1, 1068)=152 + KSPARSE(2, 1068)=135 +!WR_ACID/WR_ACID + KSPARSE(1, 1069)=152 + KSPARSE(2, 1069)=152 +!WR_RP16/RP16 + KSPARSE(1, 1070)=153 + KSPARSE(2, 1070)=74 +!WR_RP16/WR_OH + KSPARSE(1, 1071)=153 + KSPARSE(2, 1071)=135 +!WR_RP16/WR_GLY + KSPARSE(1, 1072)=153 + KSPARSE(2, 1072)=147 +!WR_RP16/WR_ORA2 + KSPARSE(1, 1073)=153 + KSPARSE(2, 1073)=151 +!WR_RP16/WR_RP16 + KSPARSE(1, 1074)=153 + KSPARSE(2, 1074)=153 +!WR_UR21/UR21 + KSPARSE(1, 1075)=154 + KSPARSE(2, 1075)=47 +!WR_UR21/WR_OH + KSPARSE(1, 1076)=154 + KSPARSE(2, 1076)=135 +!WR_UR21/WR_MGLY + KSPARSE(1, 1077)=154 + KSPARSE(2, 1077)=148 +!WR_UR21/WR_KETL + KSPARSE(1, 1078)=154 + KSPARSE(2, 1078)=149 +!WR_UR21/WR_ACID + KSPARSE(1, 1079)=154 + KSPARSE(2, 1079)=152 +!WR_UR21/WR_UR21 + KSPARSE(1, 1080)=154 + KSPARSE(2, 1080)=154 +!WR_UR28/UR28 + KSPARSE(1, 1081)=155 + KSPARSE(2, 1081)=46 +!WR_UR28/WR_OH + KSPARSE(1, 1082)=155 + KSPARSE(2, 1082)=135 +!WR_UR28/WR_RP16 + KSPARSE(1, 1083)=155 + KSPARSE(2, 1083)=153 +!WR_UR28/WR_UR28 + KSPARSE(1, 1084)=155 + KSPARSE(2, 1084)=155 +!WR_ACID2/WR_OH + KSPARSE(1, 1085)=156 + KSPARSE(2, 1085)=135 +!WR_ACID2/WR_ACID + KSPARSE(1, 1086)=156 + KSPARSE(2, 1086)=152 +!WR_ACID2/WR_UR21 + KSPARSE(1, 1087)=156 + KSPARSE(2, 1087)=154 +!WR_ACID2/WR_ACID2 + KSPARSE(1, 1088)=156 + KSPARSE(2, 1088)=156 !WR_ASO3/WR_NO3 - KSPARSE(1, 726)=87 - KSPARSE(2, 726)=71 + KSPARSE(1, 1089)=157 + KSPARSE(2, 1089)=129 !WR_ASO3/WR_OH - KSPARSE(1, 727)=87 - KSPARSE(2, 727)=77 + KSPARSE(1, 1090)=157 + KSPARSE(2, 1090)=135 !WR_ASO3/WR_SO2 - KSPARSE(1, 728)=87 - KSPARSE(2, 728)=80 -!WR_ASO3/WR_MO2 - KSPARSE(1, 729)=87 - KSPARSE(2, 729)=85 + KSPARSE(1, 1091)=157 + KSPARSE(2, 1091)=138 +!WR_ASO3/WR_RO21 + KSPARSE(1, 1092)=157 + KSPARSE(2, 1092)=140 !WR_ASO3/WR_ASO3 - KSPARSE(1, 730)=87 - KSPARSE(2, 730)=87 + KSPARSE(1, 1093)=157 + KSPARSE(2, 1093)=157 !WR_ASO4/WR_NO3 - KSPARSE(1, 731)=88 - KSPARSE(2, 731)=71 -!WR_ASO4/WR_SULF - KSPARSE(1, 732)=88 - KSPARSE(2, 732)=81 + KSPARSE(1, 1094)=158 + KSPARSE(2, 1094)=129 +!WR_ASO4/WR_H2SO4 + KSPARSE(1, 1095)=158 + KSPARSE(2, 1095)=139 !WR_ASO4/WR_ASO4 - KSPARSE(1, 733)=88 - KSPARSE(2, 733)=88 + KSPARSE(1, 1096)=158 + KSPARSE(2, 1096)=158 !WR_ASO4/WR_ASO5 - KSPARSE(1, 734)=88 - KSPARSE(2, 734)=89 + KSPARSE(1, 1097)=158 + KSPARSE(2, 1097)=159 !WR_ASO5/WR_HO2 - KSPARSE(1, 735)=89 - KSPARSE(2, 735)=78 + KSPARSE(1, 1098)=159 + KSPARSE(2, 1098)=136 !WR_ASO5/WR_ASO3 - KSPARSE(1, 736)=89 - KSPARSE(2, 736)=87 + KSPARSE(1, 1099)=159 + KSPARSE(2, 1099)=157 !WR_ASO5/WR_ASO5 - KSPARSE(1, 737)=89 - KSPARSE(2, 737)=89 + KSPARSE(1, 1100)=159 + KSPARSE(2, 1100)=159 !WR_AHSO5/WR_HO2 - KSPARSE(1, 738)=90 - KSPARSE(2, 738)=78 + KSPARSE(1, 1101)=160 + KSPARSE(2, 1101)=136 !WR_AHSO5/WR_SO2 - KSPARSE(1, 739)=90 - KSPARSE(2, 739)=80 + KSPARSE(1, 1102)=160 + KSPARSE(2, 1102)=138 !WR_AHSO5/WR_ASO5 - KSPARSE(1, 740)=90 - KSPARSE(2, 740)=89 + KSPARSE(1, 1103)=160 + KSPARSE(2, 1103)=159 !WR_AHSO5/WR_AHSO5 - KSPARSE(1, 741)=90 - KSPARSE(2, 741)=90 + KSPARSE(1, 1104)=160 + KSPARSE(2, 1104)=160 !WR_AHMS/WR_OH - KSPARSE(1, 742)=91 - KSPARSE(2, 742)=77 + KSPARSE(1, 1105)=161 + KSPARSE(2, 1105)=135 !WR_AHMS/WR_SO2 - KSPARSE(1, 743)=91 - KSPARSE(2, 743)=80 + KSPARSE(1, 1106)=161 + KSPARSE(2, 1106)=138 !WR_AHMS/WR_HCHO - KSPARSE(1, 744)=91 - KSPARSE(2, 744)=82 + KSPARSE(1, 1107)=161 + KSPARSE(2, 1107)=145 !WR_AHMS/WR_AHMS - KSPARSE(1, 745)=91 - KSPARSE(2, 745)=91 -KSPARSEDIM = 745 + KSPARSE(1, 1108)=161 + KSPARSE(2, 1108)=161 +KSPARSEDIM = 1108 RETURN END SUBROUTINE CH_SPARSE_AQ -!! -!! ####################### - SUBROUTINE CH_SPARSE_GAZ -!! ####################### -!! -!!*** *MODD_CH_SPARSE* -!! -!! PURPOSE -!! ------- -! calculation of the non-zero matrix elements in the Jacobian -!! -!!** METHOD -!! ------ -!! A 2D array KSPARSE of DIMESNSION(2,*) is returned, containing -!! the indices of the non-zero matrix elements in the Jacobian. -!! -!! REFERENCE -!! --------- -!! none -!! -!! AUTHOR -!! ------ -!! Karsten Suhre (LA) -!! -!! MODIFICATIONS -!! ------------- -!! Original 26/07/96 -!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) -!! -!!---------------------------------------------------------------------- -!! -!! EXTERNAL -!! -------- -!! none -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -!! none -!! -!! EXPLICIT ARGUMENTS -!! ------------------ -IMPLICIT NONE -!! -!! LOCAL VARIABLES -!! --------------- -!! none -!!---------------------------------------------------------------------- -!! -!! EXECUTABLE STATEMENTS -!! --------------------- -! check if output array is large enough -IF (KSPARSEDIM.LT.449) THEN - STOP 'CH_SPARSE ERROR: array KSPARSE is too small!' -END IF -!O3/O3 - KSPARSE(1, 1)=1 - KSPARSE(2, 1)=1 -!O3/NO - KSPARSE(1, 2)=1 - KSPARSE(2, 2)=3 -!O3/NO2 - KSPARSE(1, 3)=1 - KSPARSE(2, 3)=4 -!O3/OH - KSPARSE(1, 4)=1 - KSPARSE(2, 4)=14 -!O3/HO2 - KSPARSE(1, 5)=1 - KSPARSE(2, 5)=15 -!O3/ALKE - KSPARSE(1, 6)=1 - KSPARSE(2, 6)=19 -!O3/BIO - KSPARSE(1, 7)=1 - KSPARSE(2, 7)=20 -!O3/CARBO - KSPARSE(1, 8)=1 - KSPARSE(2, 8)=25 -!O3/PAN - KSPARSE(1, 9)=1 - KSPARSE(2, 9)=27 -!O3/ADD - KSPARSE(1, 10)=1 - KSPARSE(2, 10)=37 -!O3/CARBOP - KSPARSE(1, 11)=1 - KSPARSE(2, 11)=39 -!H2O2/O3 - KSPARSE(1, 12)=2 - KSPARSE(2, 12)=1 -!H2O2/H2O2 - KSPARSE(1, 13)=2 - KSPARSE(2, 13)=2 -!H2O2/OH - KSPARSE(1, 14)=2 - KSPARSE(2, 14)=14 -!H2O2/HO2 - KSPARSE(1, 15)=2 - KSPARSE(2, 15)=15 -!H2O2/ALKE - KSPARSE(1, 16)=2 - KSPARSE(2, 16)=19 -!H2O2/BIO - KSPARSE(1, 17)=2 - KSPARSE(2, 17)=20 -!NO/O3 - KSPARSE(1, 18)=3 - KSPARSE(2, 18)=1 -!NO/NO - KSPARSE(1, 19)=3 - KSPARSE(2, 19)=3 -!NO/NO2 - KSPARSE(1, 20)=3 - KSPARSE(2, 20)=4 -!NO/NO3 - KSPARSE(1, 21)=3 - KSPARSE(2, 21)=5 -!NO/HONO - KSPARSE(1, 22)=3 - KSPARSE(2, 22)=7 -!NO/OH - KSPARSE(1, 23)=3 - KSPARSE(2, 23)=14 -!NO/HO2 - KSPARSE(1, 24)=3 - KSPARSE(2, 24)=15 -!NO/MO2 - KSPARSE(1, 25)=3 - KSPARSE(2, 25)=32 -!NO/ALKAP - KSPARSE(1, 26)=3 - KSPARSE(2, 26)=33 -!NO/ALKEP - KSPARSE(1, 27)=3 - KSPARSE(2, 27)=34 -!NO/BIOP - KSPARSE(1, 28)=3 - KSPARSE(2, 28)=35 -!NO/AROP - KSPARSE(1, 29)=3 - KSPARSE(2, 29)=38 -!NO/CARBOP - KSPARSE(1, 30)=3 - KSPARSE(2, 30)=39 -!NO/OLN - KSPARSE(1, 31)=3 - KSPARSE(2, 31)=40 -!NO/XO2 - KSPARSE(1, 32)=3 - KSPARSE(2, 32)=41 -!NO2/O3 - KSPARSE(1, 33)=4 - KSPARSE(2, 33)=1 -!NO2/NO - KSPARSE(1, 34)=4 - KSPARSE(2, 34)=3 -!NO2/NO2 - KSPARSE(1, 35)=4 - KSPARSE(2, 35)=4 -!NO2/NO3 - KSPARSE(1, 36)=4 - KSPARSE(2, 36)=5 -!NO2/N2O5 - KSPARSE(1, 37)=4 - KSPARSE(2, 37)=6 -!NO2/HONO - KSPARSE(1, 38)=4 - KSPARSE(2, 38)=7 -!NO2/HNO3 - KSPARSE(1, 39)=4 - KSPARSE(2, 39)=8 -!NO2/HNO4 - KSPARSE(1, 40)=4 - KSPARSE(2, 40)=9 -!NO2/OH - KSPARSE(1, 41)=4 - KSPARSE(2, 41)=14 -!NO2/HO2 - KSPARSE(1, 42)=4 - KSPARSE(2, 42)=15 -!NO2/CARBO - KSPARSE(1, 43)=4 - KSPARSE(2, 43)=25 -!NO2/ONIT - KSPARSE(1, 44)=4 - KSPARSE(2, 44)=26 -!NO2/PAN - KSPARSE(1, 45)=4 - KSPARSE(2, 45)=27 -!NO2/MO2 - KSPARSE(1, 46)=4 - KSPARSE(2, 46)=32 -!NO2/ALKAP - KSPARSE(1, 47)=4 - KSPARSE(2, 47)=33 -!NO2/ALKEP - KSPARSE(1, 48)=4 - KSPARSE(2, 48)=34 -!NO2/BIOP - KSPARSE(1, 49)=4 - KSPARSE(2, 49)=35 -!NO2/PHO - KSPARSE(1, 50)=4 - KSPARSE(2, 50)=36 -!NO2/ADD - KSPARSE(1, 51)=4 - KSPARSE(2, 51)=37 -!NO2/AROP - KSPARSE(1, 52)=4 - KSPARSE(2, 52)=38 -!NO2/CARBOP - KSPARSE(1, 53)=4 - KSPARSE(2, 53)=39 -!NO2/OLN - KSPARSE(1, 54)=4 - KSPARSE(2, 54)=40 -!NO2/XO2 - KSPARSE(1, 55)=4 - KSPARSE(2, 55)=41 -!NO3/O3 - KSPARSE(1, 56)=5 - KSPARSE(2, 56)=1 -!NO3/NO - KSPARSE(1, 57)=5 - KSPARSE(2, 57)=3 -!NO3/NO2 - KSPARSE(1, 58)=5 - KSPARSE(2, 58)=4 -!NO3/NO3 - KSPARSE(1, 59)=5 - KSPARSE(2, 59)=5 -!NO3/N2O5 - KSPARSE(1, 60)=5 - KSPARSE(2, 60)=6 -!NO3/HNO3 - KSPARSE(1, 61)=5 - KSPARSE(2, 61)=8 -!NO3/HNO4 - KSPARSE(1, 62)=5 - KSPARSE(2, 62)=9 -!NO3/OH - KSPARSE(1, 63)=5 - KSPARSE(2, 63)=14 -!NO3/HO2 - KSPARSE(1, 64)=5 - KSPARSE(2, 64)=15 -!NO3/ALKE - KSPARSE(1, 65)=5 - KSPARSE(2, 65)=19 -!NO3/BIO - KSPARSE(1, 66)=5 - KSPARSE(2, 66)=20 -!NO3/ARO - KSPARSE(1, 67)=5 - KSPARSE(2, 67)=21 -!NO3/HCHO - KSPARSE(1, 68)=5 - KSPARSE(2, 68)=22 -!NO3/ALD - KSPARSE(1, 69)=5 - KSPARSE(2, 69)=23 -!NO3/CARBO - KSPARSE(1, 70)=5 - KSPARSE(2, 70)=25 -!NO3/PAN - KSPARSE(1, 71)=5 - KSPARSE(2, 71)=27 -!NO3/MO2 - KSPARSE(1, 72)=5 - KSPARSE(2, 72)=32 -!NO3/ALKAP - KSPARSE(1, 73)=5 - KSPARSE(2, 73)=33 -!NO3/ALKEP - KSPARSE(1, 74)=5 - KSPARSE(2, 74)=34 -!NO3/BIOP - KSPARSE(1, 75)=5 - KSPARSE(2, 75)=35 -!NO3/AROP - KSPARSE(1, 76)=5 - KSPARSE(2, 76)=38 -!NO3/CARBOP - KSPARSE(1, 77)=5 - KSPARSE(2, 77)=39 -!NO3/OLN - KSPARSE(1, 78)=5 - KSPARSE(2, 78)=40 -!NO3/XO2 - KSPARSE(1, 79)=5 - KSPARSE(2, 79)=41 -!N2O5/NO2 - KSPARSE(1, 80)=6 - KSPARSE(2, 80)=4 -!N2O5/NO3 - KSPARSE(1, 81)=6 - KSPARSE(2, 81)=5 -!N2O5/N2O5 - KSPARSE(1, 82)=6 - KSPARSE(2, 82)=6 -!HONO/NO - KSPARSE(1, 83)=7 - KSPARSE(2, 83)=3 -!HONO/NO2 - KSPARSE(1, 84)=7 - KSPARSE(2, 84)=4 -!HONO/HONO - KSPARSE(1, 85)=7 - KSPARSE(2, 85)=7 -!HONO/OH - KSPARSE(1, 86)=7 - KSPARSE(2, 86)=14 -!HONO/ADD - KSPARSE(1, 87)=7 - KSPARSE(2, 87)=37 -!HNO3/NO2 - KSPARSE(1, 88)=8 - KSPARSE(2, 88)=4 -!HNO3/NO3 - KSPARSE(1, 89)=8 - KSPARSE(2, 89)=5 -!HNO3/HNO3 - KSPARSE(1, 90)=8 - KSPARSE(2, 90)=8 -!HNO3/OH - KSPARSE(1, 91)=8 - KSPARSE(2, 91)=14 -!HNO3/HO2 - KSPARSE(1, 92)=8 - KSPARSE(2, 92)=15 -!HNO3/ARO - KSPARSE(1, 93)=8 - KSPARSE(2, 93)=21 -!HNO3/HCHO - KSPARSE(1, 94)=8 - KSPARSE(2, 94)=22 -!HNO3/ALD - KSPARSE(1, 95)=8 - KSPARSE(2, 95)=23 -!HNO3/CARBO - KSPARSE(1, 96)=8 - KSPARSE(2, 96)=25 -!HNO4/NO2 - KSPARSE(1, 97)=9 - KSPARSE(2, 97)=4 -!HNO4/HNO4 - KSPARSE(1, 98)=9 - KSPARSE(2, 98)=9 -!HNO4/OH - KSPARSE(1, 99)=9 - KSPARSE(2, 99)=14 -!HNO4/HO2 - KSPARSE(1, 100)=9 - KSPARSE(2, 100)=15 -!NH3/NH3 - KSPARSE(1, 101)=10 - KSPARSE(2, 101)=10 -!NH3/OH - KSPARSE(1, 102)=10 - KSPARSE(2, 102)=14 -!SO2/SO2 - KSPARSE(1, 103)=11 - KSPARSE(2, 103)=11 -!SO2/OH - KSPARSE(1, 104)=11 - KSPARSE(2, 104)=14 -!SULF/SO2 - KSPARSE(1, 105)=12 - KSPARSE(2, 105)=11 -!SULF/SULF - KSPARSE(1, 106)=12 - KSPARSE(2, 106)=12 -!SULF/OH - KSPARSE(1, 107)=12 - KSPARSE(2, 107)=14 -!CO/O3 - KSPARSE(1, 108)=13 - KSPARSE(2, 108)=1 -!CO/NO3 - KSPARSE(1, 109)=13 - KSPARSE(2, 109)=5 -!CO/CO - KSPARSE(1, 110)=13 - KSPARSE(2, 110)=13 -!CO/OH - KSPARSE(1, 111)=13 - KSPARSE(2, 111)=14 -!CO/ALKA - KSPARSE(1, 112)=13 - KSPARSE(2, 112)=18 -!CO/ALKE - KSPARSE(1, 113)=13 - KSPARSE(2, 113)=19 -!CO/BIO - KSPARSE(1, 114)=13 - KSPARSE(2, 114)=20 -!CO/HCHO - KSPARSE(1, 115)=13 - KSPARSE(2, 115)=22 -!CO/ALD - KSPARSE(1, 116)=13 - KSPARSE(2, 116)=23 -!CO/CARBO - KSPARSE(1, 117)=13 - KSPARSE(2, 117)=25 -!CO/PAN - KSPARSE(1, 118)=13 - KSPARSE(2, 118)=27 -!OH/O3 - KSPARSE(1, 119)=14 - KSPARSE(2, 119)=1 -!OH/H2O2 - KSPARSE(1, 120)=14 - KSPARSE(2, 120)=2 -!OH/NO - KSPARSE(1, 121)=14 - KSPARSE(2, 121)=3 -!OH/NO2 - KSPARSE(1, 122)=14 - KSPARSE(2, 122)=4 -!OH/NO3 - KSPARSE(1, 123)=14 - KSPARSE(2, 123)=5 -!OH/HONO - KSPARSE(1, 124)=14 - KSPARSE(2, 124)=7 -!OH/HNO3 - KSPARSE(1, 125)=14 - KSPARSE(2, 125)=8 -!OH/HNO4 - KSPARSE(1, 126)=14 - KSPARSE(2, 126)=9 -!OH/NH3 - KSPARSE(1, 127)=14 - KSPARSE(2, 127)=10 -!OH/SO2 - KSPARSE(1, 128)=14 - KSPARSE(2, 128)=11 -!OH/CO - KSPARSE(1, 129)=14 - KSPARSE(2, 129)=13 -!OH/OH - KSPARSE(1, 130)=14 - KSPARSE(2, 130)=14 -!OH/HO2 - KSPARSE(1, 131)=14 - KSPARSE(2, 131)=15 -!OH/CH4 - KSPARSE(1, 132)=14 - KSPARSE(2, 132)=16 -!OH/ETH - KSPARSE(1, 133)=14 - KSPARSE(2, 133)=17 -!OH/ALKA - KSPARSE(1, 134)=14 - KSPARSE(2, 134)=18 -!OH/ALKE - KSPARSE(1, 135)=14 - KSPARSE(2, 135)=19 -!OH/BIO - KSPARSE(1, 136)=14 - KSPARSE(2, 136)=20 -!OH/ARO - KSPARSE(1, 137)=14 - KSPARSE(2, 137)=21 -!OH/HCHO - KSPARSE(1, 138)=14 - KSPARSE(2, 138)=22 -!OH/ALD - KSPARSE(1, 139)=14 - KSPARSE(2, 139)=23 -!OH/KET - KSPARSE(1, 140)=14 - KSPARSE(2, 140)=24 -!OH/CARBO - KSPARSE(1, 141)=14 - KSPARSE(2, 141)=25 -!OH/ONIT - KSPARSE(1, 142)=14 - KSPARSE(2, 142)=26 -!OH/PAN - KSPARSE(1, 143)=14 - KSPARSE(2, 143)=27 -!OH/OP1 - KSPARSE(1, 144)=14 - KSPARSE(2, 144)=28 -!OH/OP2 - KSPARSE(1, 145)=14 - KSPARSE(2, 145)=29 -!OH/ORA1 - KSPARSE(1, 146)=14 - KSPARSE(2, 146)=30 -!OH/ORA2 - KSPARSE(1, 147)=14 - KSPARSE(2, 147)=31 -!OH/ADD - KSPARSE(1, 148)=14 - KSPARSE(2, 148)=37 -!HO2/O3 - KSPARSE(1, 149)=15 - KSPARSE(2, 149)=1 -!HO2/H2O2 - KSPARSE(1, 150)=15 - KSPARSE(2, 150)=2 -!HO2/NO - KSPARSE(1, 151)=15 - KSPARSE(2, 151)=3 -!HO2/NO2 - KSPARSE(1, 152)=15 - KSPARSE(2, 152)=4 -!HO2/NO3 - KSPARSE(1, 153)=15 - KSPARSE(2, 153)=5 -!HO2/HNO4 - KSPARSE(1, 154)=15 - KSPARSE(2, 154)=9 -!HO2/SO2 - KSPARSE(1, 155)=15 - KSPARSE(2, 155)=11 -!HO2/CO - KSPARSE(1, 156)=15 - KSPARSE(2, 156)=13 -!HO2/OH - KSPARSE(1, 157)=15 - KSPARSE(2, 157)=14 -!HO2/HO2 - KSPARSE(1, 158)=15 - KSPARSE(2, 158)=15 -!HO2/ALKA - KSPARSE(1, 159)=15 - KSPARSE(2, 159)=18 -!HO2/ALKE - KSPARSE(1, 160)=15 - KSPARSE(2, 160)=19 -!HO2/BIO - KSPARSE(1, 161)=15 - KSPARSE(2, 161)=20 -!HO2/ARO - KSPARSE(1, 162)=15 - KSPARSE(2, 162)=21 -!HO2/HCHO - KSPARSE(1, 163)=15 - KSPARSE(2, 163)=22 -!HO2/ALD - KSPARSE(1, 164)=15 - KSPARSE(2, 164)=23 -!HO2/CARBO - KSPARSE(1, 165)=15 - KSPARSE(2, 165)=25 -!HO2/ONIT - KSPARSE(1, 166)=15 - KSPARSE(2, 166)=26 -!HO2/PAN - KSPARSE(1, 167)=15 - KSPARSE(2, 167)=27 -!HO2/OP1 - KSPARSE(1, 168)=15 - KSPARSE(2, 168)=28 -!HO2/OP2 - KSPARSE(1, 169)=15 - KSPARSE(2, 169)=29 -!HO2/ORA1 - KSPARSE(1, 170)=15 - KSPARSE(2, 170)=30 -!HO2/MO2 - KSPARSE(1, 171)=15 - KSPARSE(2, 171)=32 -!HO2/ALKAP - KSPARSE(1, 172)=15 - KSPARSE(2, 172)=33 -!HO2/ALKEP - KSPARSE(1, 173)=15 - KSPARSE(2, 173)=34 -!HO2/BIOP - KSPARSE(1, 174)=15 - KSPARSE(2, 174)=35 -!HO2/PHO - KSPARSE(1, 175)=15 - KSPARSE(2, 175)=36 -!HO2/ADD - KSPARSE(1, 176)=15 - KSPARSE(2, 176)=37 -!HO2/AROP - KSPARSE(1, 177)=15 - KSPARSE(2, 177)=38 -!HO2/CARBOP - KSPARSE(1, 178)=15 - KSPARSE(2, 178)=39 -!HO2/OLN - KSPARSE(1, 179)=15 - KSPARSE(2, 179)=40 -!HO2/XO2 - KSPARSE(1, 180)=15 - KSPARSE(2, 180)=41 -!CH4/O3 - KSPARSE(1, 181)=16 - KSPARSE(2, 181)=1 -!CH4/OH - KSPARSE(1, 182)=16 - KSPARSE(2, 182)=14 -!CH4/CH4 - KSPARSE(1, 183)=16 - KSPARSE(2, 183)=16 -!CH4/ALKE - KSPARSE(1, 184)=16 - KSPARSE(2, 184)=19 -!ETH/O3 - KSPARSE(1, 185)=17 - KSPARSE(2, 185)=1 -!ETH/OH - KSPARSE(1, 186)=17 - KSPARSE(2, 186)=14 -!ETH/ETH - KSPARSE(1, 187)=17 - KSPARSE(2, 187)=17 -!ETH/ALKE - KSPARSE(1, 188)=17 - KSPARSE(2, 188)=19 -!ALKA/OH - KSPARSE(1, 189)=18 - KSPARSE(2, 189)=14 -!ALKA/ALKA - KSPARSE(1, 190)=18 - KSPARSE(2, 190)=18 -!ALKE/O3 - KSPARSE(1, 191)=19 - KSPARSE(2, 191)=1 -!ALKE/NO - KSPARSE(1, 192)=19 - KSPARSE(2, 192)=3 -!ALKE/NO3 - KSPARSE(1, 193)=19 - KSPARSE(2, 193)=5 -!ALKE/OH - KSPARSE(1, 194)=19 - KSPARSE(2, 194)=14 -!ALKE/ALKE - KSPARSE(1, 195)=19 - KSPARSE(2, 195)=19 -!ALKE/BIO - KSPARSE(1, 196)=19 - KSPARSE(2, 196)=20 -!ALKE/MO2 - KSPARSE(1, 197)=19 - KSPARSE(2, 197)=32 -!ALKE/BIOP - KSPARSE(1, 198)=19 - KSPARSE(2, 198)=35 -!ALKE/CARBOP - KSPARSE(1, 199)=19 - KSPARSE(2, 199)=39 -!BIO/O3 - KSPARSE(1, 200)=20 - KSPARSE(2, 200)=1 -!BIO/NO3 - KSPARSE(1, 201)=20 - KSPARSE(2, 201)=5 -!BIO/OH - KSPARSE(1, 202)=20 - KSPARSE(2, 202)=14 -!BIO/BIO - KSPARSE(1, 203)=20 - KSPARSE(2, 203)=20 -!ARO/O3 - KSPARSE(1, 204)=21 - KSPARSE(2, 204)=1 -!ARO/NO2 - KSPARSE(1, 205)=21 - KSPARSE(2, 205)=4 -!ARO/NO3 - KSPARSE(1, 206)=21 - KSPARSE(2, 206)=5 -!ARO/OH - KSPARSE(1, 207)=21 - KSPARSE(2, 207)=14 -!ARO/HO2 - KSPARSE(1, 208)=21 - KSPARSE(2, 208)=15 -!ARO/ARO - KSPARSE(1, 209)=21 - KSPARSE(2, 209)=21 -!ARO/PHO - KSPARSE(1, 210)=21 - KSPARSE(2, 210)=36 -!ARO/ADD - KSPARSE(1, 211)=21 - KSPARSE(2, 211)=37 -!HCHO/O3 - KSPARSE(1, 212)=22 - KSPARSE(2, 212)=1 -!HCHO/NO - KSPARSE(1, 213)=22 - KSPARSE(2, 213)=3 -!HCHO/NO3 - KSPARSE(1, 214)=22 - KSPARSE(2, 214)=5 -!HCHO/OH - KSPARSE(1, 215)=22 - KSPARSE(2, 215)=14 -!HCHO/ALKA - KSPARSE(1, 216)=22 - KSPARSE(2, 216)=18 -!HCHO/ALKE - KSPARSE(1, 217)=22 - KSPARSE(2, 217)=19 -!HCHO/BIO - KSPARSE(1, 218)=22 - KSPARSE(2, 218)=20 -!HCHO/HCHO - KSPARSE(1, 219)=22 - KSPARSE(2, 219)=22 -!HCHO/CARBO - KSPARSE(1, 220)=22 - KSPARSE(2, 220)=25 -!HCHO/PAN - KSPARSE(1, 221)=22 - KSPARSE(2, 221)=27 -!HCHO/OP1 - KSPARSE(1, 222)=22 - KSPARSE(2, 222)=28 -!HCHO/OP2 - KSPARSE(1, 223)=22 - KSPARSE(2, 223)=29 -!HCHO/MO2 - KSPARSE(1, 224)=22 - KSPARSE(2, 224)=32 -!HCHO/ALKAP - KSPARSE(1, 225)=22 - KSPARSE(2, 225)=33 -!HCHO/ALKEP - KSPARSE(1, 226)=22 - KSPARSE(2, 226)=34 -!HCHO/BIOP - KSPARSE(1, 227)=22 - KSPARSE(2, 227)=35 -!HCHO/AROP - KSPARSE(1, 228)=22 - KSPARSE(2, 228)=38 -!HCHO/CARBOP - KSPARSE(1, 229)=22 - KSPARSE(2, 229)=39 -!HCHO/OLN - KSPARSE(1, 230)=22 - KSPARSE(2, 230)=40 -!HCHO/XO2 - KSPARSE(1, 231)=22 - KSPARSE(2, 231)=41 -!ALD/O3 - KSPARSE(1, 232)=23 - KSPARSE(2, 232)=1 -!ALD/NO - KSPARSE(1, 233)=23 - KSPARSE(2, 233)=3 -!ALD/NO3 - KSPARSE(1, 234)=23 - KSPARSE(2, 234)=5 -!ALD/OH - KSPARSE(1, 235)=23 - KSPARSE(2, 235)=14 -!ALD/ALKA - KSPARSE(1, 236)=23 - KSPARSE(2, 236)=18 -!ALD/ALKE - KSPARSE(1, 237)=23 - KSPARSE(2, 237)=19 -!ALD/BIO - KSPARSE(1, 238)=23 - KSPARSE(2, 238)=20 -!ALD/ALD - KSPARSE(1, 239)=23 - KSPARSE(2, 239)=23 -!ALD/CARBO - KSPARSE(1, 240)=23 - KSPARSE(2, 240)=25 -!ALD/ONIT - KSPARSE(1, 241)=23 - KSPARSE(2, 241)=26 -!ALD/OP2 - KSPARSE(1, 242)=23 - KSPARSE(2, 242)=29 -!ALD/MO2 - KSPARSE(1, 243)=23 - KSPARSE(2, 243)=32 -!ALD/ALKAP - KSPARSE(1, 244)=23 - KSPARSE(2, 244)=33 -!ALD/ALKEP - KSPARSE(1, 245)=23 - KSPARSE(2, 245)=34 -!ALD/BIOP - KSPARSE(1, 246)=23 - KSPARSE(2, 246)=35 -!ALD/CARBOP - KSPARSE(1, 247)=23 - KSPARSE(2, 247)=39 -!ALD/OLN - KSPARSE(1, 248)=23 - KSPARSE(2, 248)=40 -!KET/O3 - KSPARSE(1, 249)=24 - KSPARSE(2, 249)=1 -!KET/NO - KSPARSE(1, 250)=24 - KSPARSE(2, 250)=3 -!KET/NO3 - KSPARSE(1, 251)=24 - KSPARSE(2, 251)=5 -!KET/OH - KSPARSE(1, 252)=24 - KSPARSE(2, 252)=14 -!KET/ALKA - KSPARSE(1, 253)=24 - KSPARSE(2, 253)=18 -!KET/ALKE - KSPARSE(1, 254)=24 - KSPARSE(2, 254)=19 -!KET/BIO - KSPARSE(1, 255)=24 - KSPARSE(2, 255)=20 -!KET/KET - KSPARSE(1, 256)=24 - KSPARSE(2, 256)=24 -!KET/CARBO - KSPARSE(1, 257)=24 - KSPARSE(2, 257)=25 -!KET/ONIT - KSPARSE(1, 258)=24 - KSPARSE(2, 258)=26 -!KET/OP2 - KSPARSE(1, 259)=24 - KSPARSE(2, 259)=29 -!KET/MO2 - KSPARSE(1, 260)=24 - KSPARSE(2, 260)=32 -!KET/ALKAP - KSPARSE(1, 261)=24 - KSPARSE(2, 261)=33 -!KET/ALKEP - KSPARSE(1, 262)=24 - KSPARSE(2, 262)=34 -!KET/BIOP - KSPARSE(1, 263)=24 - KSPARSE(2, 263)=35 -!KET/CARBOP - KSPARSE(1, 264)=24 - KSPARSE(2, 264)=39 -!KET/OLN - KSPARSE(1, 265)=24 - KSPARSE(2, 265)=40 -!CARBO/O3 - KSPARSE(1, 266)=25 - KSPARSE(2, 266)=1 -!CARBO/NO - KSPARSE(1, 267)=25 - KSPARSE(2, 267)=3 -!CARBO/NO3 - KSPARSE(1, 268)=25 - KSPARSE(2, 268)=5 -!CARBO/OH - KSPARSE(1, 269)=25 - KSPARSE(2, 269)=14 -!CARBO/ALKA - KSPARSE(1, 270)=25 - KSPARSE(2, 270)=18 -!CARBO/ALKE - KSPARSE(1, 271)=25 - KSPARSE(2, 271)=19 -!CARBO/BIO - KSPARSE(1, 272)=25 - KSPARSE(2, 272)=20 -!CARBO/CARBO - KSPARSE(1, 273)=25 - KSPARSE(2, 273)=25 -!CARBO/PAN - KSPARSE(1, 274)=25 - KSPARSE(2, 274)=27 -!CARBO/MO2 - KSPARSE(1, 275)=25 - KSPARSE(2, 275)=32 -!CARBO/ALKAP - KSPARSE(1, 276)=25 - KSPARSE(2, 276)=33 -!CARBO/BIOP - KSPARSE(1, 277)=25 - KSPARSE(2, 277)=35 -!CARBO/AROP - KSPARSE(1, 278)=25 - KSPARSE(2, 278)=38 -!CARBO/CARBOP - KSPARSE(1, 279)=25 - KSPARSE(2, 279)=39 -!ONIT/NO - KSPARSE(1, 280)=26 - KSPARSE(2, 280)=3 -!ONIT/NO2 - KSPARSE(1, 281)=26 - KSPARSE(2, 281)=4 -!ONIT/NO3 - KSPARSE(1, 282)=26 - KSPARSE(2, 282)=5 -!ONIT/OH - KSPARSE(1, 283)=26 - KSPARSE(2, 283)=14 -!ONIT/HO2 - KSPARSE(1, 284)=26 - KSPARSE(2, 284)=15 -!ONIT/ONIT - KSPARSE(1, 285)=26 - KSPARSE(2, 285)=26 -!ONIT/PAN - KSPARSE(1, 286)=26 - KSPARSE(2, 286)=27 -!ONIT/MO2 - KSPARSE(1, 287)=26 - KSPARSE(2, 287)=32 -!ONIT/ALKAP - KSPARSE(1, 288)=26 - KSPARSE(2, 288)=33 -!ONIT/BIOP - KSPARSE(1, 289)=26 - KSPARSE(2, 289)=35 -!ONIT/PHO - KSPARSE(1, 290)=26 - KSPARSE(2, 290)=36 -!ONIT/AROP - KSPARSE(1, 291)=26 - KSPARSE(2, 291)=38 -!ONIT/CARBOP - KSPARSE(1, 292)=26 - KSPARSE(2, 292)=39 -!ONIT/OLN - KSPARSE(1, 293)=26 - KSPARSE(2, 293)=40 -!PAN/O3 - KSPARSE(1, 294)=27 - KSPARSE(2, 294)=1 -!PAN/NO2 - KSPARSE(1, 295)=27 - KSPARSE(2, 295)=4 -!PAN/NO3 - KSPARSE(1, 296)=27 - KSPARSE(2, 296)=5 -!PAN/OH - KSPARSE(1, 297)=27 - KSPARSE(2, 297)=14 -!PAN/PAN - KSPARSE(1, 298)=27 - KSPARSE(2, 298)=27 -!PAN/CARBOP - KSPARSE(1, 299)=27 - KSPARSE(2, 299)=39 -!OP1/OH - KSPARSE(1, 300)=28 - KSPARSE(2, 300)=14 -!OP1/HO2 - KSPARSE(1, 301)=28 - KSPARSE(2, 301)=15 -!OP1/OP1 - KSPARSE(1, 302)=28 - KSPARSE(2, 302)=28 -!OP1/MO2 - KSPARSE(1, 303)=28 - KSPARSE(2, 303)=32 -!OP2/O3 - KSPARSE(1, 304)=29 - KSPARSE(2, 304)=1 -!OP2/OH - KSPARSE(1, 305)=29 - KSPARSE(2, 305)=14 -!OP2/HO2 - KSPARSE(1, 306)=29 - KSPARSE(2, 306)=15 -!OP2/CARBO - KSPARSE(1, 307)=29 - KSPARSE(2, 307)=25 -!OP2/OP2 - KSPARSE(1, 308)=29 - KSPARSE(2, 308)=29 -!OP2/ALKAP - KSPARSE(1, 309)=29 - KSPARSE(2, 309)=33 -!OP2/ALKEP - KSPARSE(1, 310)=29 - KSPARSE(2, 310)=34 -!OP2/BIOP - KSPARSE(1, 311)=29 - KSPARSE(2, 311)=35 -!OP2/AROP - KSPARSE(1, 312)=29 - KSPARSE(2, 312)=38 -!OP2/CARBOP - KSPARSE(1, 313)=29 - KSPARSE(2, 313)=39 -!OP2/XO2 - KSPARSE(1, 314)=29 - KSPARSE(2, 314)=41 -!ORA1/O3 - KSPARSE(1, 315)=30 - KSPARSE(2, 315)=1 -!ORA1/OH - KSPARSE(1, 316)=30 - KSPARSE(2, 316)=14 -!ORA1/ALKA - KSPARSE(1, 317)=30 - KSPARSE(2, 317)=18 -!ORA1/ALKE - KSPARSE(1, 318)=30 - KSPARSE(2, 318)=19 -!ORA1/BIO - KSPARSE(1, 319)=30 - KSPARSE(2, 319)=20 -!ORA1/CARBO - KSPARSE(1, 320)=30 - KSPARSE(2, 320)=25 -!ORA1/PAN - KSPARSE(1, 321)=30 - KSPARSE(2, 321)=27 -!ORA1/ORA1 - KSPARSE(1, 322)=30 - KSPARSE(2, 322)=30 -!ORA2/O3 - KSPARSE(1, 323)=31 - KSPARSE(2, 323)=1 -!ORA2/OH - KSPARSE(1, 324)=31 - KSPARSE(2, 324)=14 -!ORA2/HO2 - KSPARSE(1, 325)=31 - KSPARSE(2, 325)=15 -!ORA2/ALKE - KSPARSE(1, 326)=31 - KSPARSE(2, 326)=19 -!ORA2/BIO - KSPARSE(1, 327)=31 - KSPARSE(2, 327)=20 -!ORA2/CARBO - KSPARSE(1, 328)=31 - KSPARSE(2, 328)=25 -!ORA2/ORA2 - KSPARSE(1, 329)=31 - KSPARSE(2, 329)=31 -!ORA2/MO2 - KSPARSE(1, 330)=31 - KSPARSE(2, 330)=32 -!ORA2/ALKAP - KSPARSE(1, 331)=31 - KSPARSE(2, 331)=33 -!ORA2/ALKEP - KSPARSE(1, 332)=31 - KSPARSE(2, 332)=34 -!ORA2/BIOP - KSPARSE(1, 333)=31 - KSPARSE(2, 333)=35 -!ORA2/CARBOP - KSPARSE(1, 334)=31 - KSPARSE(2, 334)=39 -!ORA2/OLN - KSPARSE(1, 335)=31 - KSPARSE(2, 335)=40 -!MO2/O3 - KSPARSE(1, 336)=32 - KSPARSE(2, 336)=1 -!MO2/NO - KSPARSE(1, 337)=32 - KSPARSE(2, 337)=3 -!MO2/NO3 - KSPARSE(1, 338)=32 - KSPARSE(2, 338)=5 -!MO2/OH - KSPARSE(1, 339)=32 - KSPARSE(2, 339)=14 -!MO2/HO2 - KSPARSE(1, 340)=32 - KSPARSE(2, 340)=15 -!MO2/CH4 - KSPARSE(1, 341)=32 - KSPARSE(2, 341)=16 -!MO2/ALKE - KSPARSE(1, 342)=32 - KSPARSE(2, 342)=19 -!MO2/BIO - KSPARSE(1, 343)=32 - KSPARSE(2, 343)=20 -!MO2/ALD - KSPARSE(1, 344)=32 - KSPARSE(2, 344)=23 -!MO2/OP1 - KSPARSE(1, 345)=32 - KSPARSE(2, 345)=28 -!MO2/OP2 - KSPARSE(1, 346)=32 - KSPARSE(2, 346)=29 -!MO2/MO2 - KSPARSE(1, 347)=32 - KSPARSE(2, 347)=32 -!MO2/ALKAP - KSPARSE(1, 348)=32 - KSPARSE(2, 348)=33 -!MO2/ALKEP - KSPARSE(1, 349)=32 - KSPARSE(2, 349)=34 -!MO2/BIOP - KSPARSE(1, 350)=32 - KSPARSE(2, 350)=35 -!MO2/AROP - KSPARSE(1, 351)=32 - KSPARSE(2, 351)=38 -!MO2/CARBOP - KSPARSE(1, 352)=32 - KSPARSE(2, 352)=39 -!MO2/OLN - KSPARSE(1, 353)=32 - KSPARSE(2, 353)=40 -!MO2/XO2 - KSPARSE(1, 354)=32 - KSPARSE(2, 354)=41 -!ALKAP/O3 - KSPARSE(1, 355)=33 - KSPARSE(2, 355)=1 -!ALKAP/NO - KSPARSE(1, 356)=33 - KSPARSE(2, 356)=3 -!ALKAP/NO3 - KSPARSE(1, 357)=33 - KSPARSE(2, 357)=5 -!ALKAP/OH - KSPARSE(1, 358)=33 - KSPARSE(2, 358)=14 -!ALKAP/HO2 - KSPARSE(1, 359)=33 - KSPARSE(2, 359)=15 -!ALKAP/ETH - KSPARSE(1, 360)=33 - KSPARSE(2, 360)=17 -!ALKAP/ALKA - KSPARSE(1, 361)=33 - KSPARSE(2, 361)=18 -!ALKAP/ALKE - KSPARSE(1, 362)=33 - KSPARSE(2, 362)=19 -!ALKAP/BIO - KSPARSE(1, 363)=33 - KSPARSE(2, 363)=20 -!ALKAP/KET - KSPARSE(1, 364)=33 - KSPARSE(2, 364)=24 -!ALKAP/ONIT - KSPARSE(1, 365)=33 - KSPARSE(2, 365)=26 -!ALKAP/OP2 - KSPARSE(1, 366)=33 - KSPARSE(2, 366)=29 -!ALKAP/MO2 - KSPARSE(1, 367)=33 - KSPARSE(2, 367)=32 -!ALKAP/ALKAP - KSPARSE(1, 368)=33 - KSPARSE(2, 368)=33 -!ALKAP/CARBOP - KSPARSE(1, 369)=33 - KSPARSE(2, 369)=39 -!ALKEP/NO - KSPARSE(1, 370)=34 - KSPARSE(2, 370)=3 -!ALKEP/NO3 - KSPARSE(1, 371)=34 - KSPARSE(2, 371)=5 -!ALKEP/OH - KSPARSE(1, 372)=34 - KSPARSE(2, 372)=14 -!ALKEP/HO2 - KSPARSE(1, 373)=34 - KSPARSE(2, 373)=15 -!ALKEP/ALKE - KSPARSE(1, 374)=34 - KSPARSE(2, 374)=19 -!ALKEP/MO2 - KSPARSE(1, 375)=34 - KSPARSE(2, 375)=32 -!ALKEP/ALKEP - KSPARSE(1, 376)=34 - KSPARSE(2, 376)=34 -!ALKEP/CARBOP - KSPARSE(1, 377)=34 - KSPARSE(2, 377)=39 -!BIOP/NO - KSPARSE(1, 378)=35 - KSPARSE(2, 378)=3 -!BIOP/NO3 - KSPARSE(1, 379)=35 - KSPARSE(2, 379)=5 -!BIOP/OH - KSPARSE(1, 380)=35 - KSPARSE(2, 380)=14 -!BIOP/HO2 - KSPARSE(1, 381)=35 - KSPARSE(2, 381)=15 -!BIOP/ALKE - KSPARSE(1, 382)=35 - KSPARSE(2, 382)=19 -!BIOP/BIO - KSPARSE(1, 383)=35 - KSPARSE(2, 383)=20 -!BIOP/MO2 - KSPARSE(1, 384)=35 - KSPARSE(2, 384)=32 -!BIOP/BIOP - KSPARSE(1, 385)=35 - KSPARSE(2, 385)=35 -!BIOP/CARBOP - KSPARSE(1, 386)=35 - KSPARSE(2, 386)=39 -!PHO/NO2 - KSPARSE(1, 387)=36 - KSPARSE(2, 387)=4 -!PHO/NO3 - KSPARSE(1, 388)=36 - KSPARSE(2, 388)=5 -!PHO/OH - KSPARSE(1, 389)=36 - KSPARSE(2, 389)=14 -!PHO/HO2 - KSPARSE(1, 390)=36 - KSPARSE(2, 390)=15 -!PHO/ARO - KSPARSE(1, 391)=36 - KSPARSE(2, 391)=21 -!PHO/PHO - KSPARSE(1, 392)=36 - KSPARSE(2, 392)=36 -!ADD/O3 - KSPARSE(1, 393)=37 - KSPARSE(2, 393)=1 -!ADD/NO2 - KSPARSE(1, 394)=37 - KSPARSE(2, 394)=4 -!ADD/OH - KSPARSE(1, 395)=37 - KSPARSE(2, 395)=14 -!ADD/ARO - KSPARSE(1, 396)=37 - KSPARSE(2, 396)=21 -!ADD/ADD - KSPARSE(1, 397)=37 - KSPARSE(2, 397)=37 -!AROP/NO - KSPARSE(1, 398)=38 - KSPARSE(2, 398)=3 -!AROP/NO3 - KSPARSE(1, 399)=38 - KSPARSE(2, 399)=5 -!AROP/HO2 - KSPARSE(1, 400)=38 - KSPARSE(2, 400)=15 -!AROP/MO2 - KSPARSE(1, 401)=38 - KSPARSE(2, 401)=32 -!AROP/ADD - KSPARSE(1, 402)=38 - KSPARSE(2, 402)=37 -!AROP/AROP - KSPARSE(1, 403)=38 - KSPARSE(2, 403)=38 -!AROP/CARBOP - KSPARSE(1, 404)=38 - KSPARSE(2, 404)=39 -!CARBOP/O3 - KSPARSE(1, 405)=39 - KSPARSE(2, 405)=1 -!CARBOP/NO - KSPARSE(1, 406)=39 - KSPARSE(2, 406)=3 -!CARBOP/NO2 - KSPARSE(1, 407)=39 - KSPARSE(2, 407)=4 -!CARBOP/NO3 - KSPARSE(1, 408)=39 - KSPARSE(2, 408)=5 -!CARBOP/OH - KSPARSE(1, 409)=39 - KSPARSE(2, 409)=14 -!CARBOP/HO2 - KSPARSE(1, 410)=39 - KSPARSE(2, 410)=15 -!CARBOP/ALKE - KSPARSE(1, 411)=39 - KSPARSE(2, 411)=19 -!CARBOP/BIO - KSPARSE(1, 412)=39 - KSPARSE(2, 412)=20 -!CARBOP/ALD - KSPARSE(1, 413)=39 - KSPARSE(2, 413)=23 -!CARBOP/KET - KSPARSE(1, 414)=39 - KSPARSE(2, 414)=24 -!CARBOP/CARBO - KSPARSE(1, 415)=39 - KSPARSE(2, 415)=25 -!CARBOP/PAN - KSPARSE(1, 416)=39 - KSPARSE(2, 416)=27 -!CARBOP/OP2 - KSPARSE(1, 417)=39 - KSPARSE(2, 417)=29 -!CARBOP/MO2 - KSPARSE(1, 418)=39 - KSPARSE(2, 418)=32 -!CARBOP/ALKAP - KSPARSE(1, 419)=39 - KSPARSE(2, 419)=33 -!CARBOP/ALKEP - KSPARSE(1, 420)=39 - KSPARSE(2, 420)=34 -!CARBOP/BIOP - KSPARSE(1, 421)=39 - KSPARSE(2, 421)=35 -!CARBOP/AROP - KSPARSE(1, 422)=39 - KSPARSE(2, 422)=38 -!CARBOP/CARBOP - KSPARSE(1, 423)=39 - KSPARSE(2, 423)=39 -!CARBOP/OLN - KSPARSE(1, 424)=39 - KSPARSE(2, 424)=40 -!CARBOP/XO2 - KSPARSE(1, 425)=39 - KSPARSE(2, 425)=41 -!OLN/NO - KSPARSE(1, 426)=40 - KSPARSE(2, 426)=3 -!OLN/NO3 - KSPARSE(1, 427)=40 - KSPARSE(2, 427)=5 -!OLN/HO2 - KSPARSE(1, 428)=40 - KSPARSE(2, 428)=15 -!OLN/ALKE - KSPARSE(1, 429)=40 - KSPARSE(2, 429)=19 -!OLN/BIO - KSPARSE(1, 430)=40 - KSPARSE(2, 430)=20 -!OLN/CARBO - KSPARSE(1, 431)=40 - KSPARSE(2, 431)=25 -!OLN/MO2 - KSPARSE(1, 432)=40 - KSPARSE(2, 432)=32 -!OLN/CARBOP - KSPARSE(1, 433)=40 - KSPARSE(2, 433)=39 -!OLN/OLN - KSPARSE(1, 434)=40 - KSPARSE(2, 434)=40 -!XO2/O3 - KSPARSE(1, 435)=41 - KSPARSE(2, 435)=1 -!XO2/NO - KSPARSE(1, 436)=41 - KSPARSE(2, 436)=3 -!XO2/NO3 - KSPARSE(1, 437)=41 - KSPARSE(2, 437)=5 -!XO2/OH - KSPARSE(1, 438)=41 - KSPARSE(2, 438)=14 -!XO2/HO2 - KSPARSE(1, 439)=41 - KSPARSE(2, 439)=15 -!XO2/ALKE - KSPARSE(1, 440)=41 - KSPARSE(2, 440)=19 -!XO2/BIO - KSPARSE(1, 441)=41 - KSPARSE(2, 441)=20 -!XO2/ARO - KSPARSE(1, 442)=41 - KSPARSE(2, 442)=21 -!XO2/CARBO - KSPARSE(1, 443)=41 - KSPARSE(2, 443)=25 -!XO2/PAN - KSPARSE(1, 444)=41 - KSPARSE(2, 444)=27 -!XO2/OP2 - KSPARSE(1, 445)=41 - KSPARSE(2, 445)=29 -!XO2/MO2 - KSPARSE(1, 446)=41 - KSPARSE(2, 446)=32 -!XO2/ALKAP - KSPARSE(1, 447)=41 - KSPARSE(2, 447)=33 -!XO2/CARBOP - KSPARSE(1, 448)=41 - KSPARSE(2, 448)=39 -!XO2/XO2 - KSPARSE(1, 449)=41 - KSPARSE(2, 449)=41 -KSPARSEDIM = 449 -RETURN -END SUBROUTINE CH_SPARSE_GAZ ! END SUBROUTINE CH_SPARSE ! diff --git a/src/MNH/read_chem_data_netcdf_case.f90 b/src/MNH/read_chem_data_netcdf_case.f90 index 23bf979a7..bd59e32da 100644 --- a/src/MNH/read_chem_data_netcdf_case.f90 +++ b/src/MNH/read_chem_data_netcdf_case.f90 @@ -83,6 +83,7 @@ END MODULE MODI_READ_CHEM_DATA_NETCDF_CASE !! Original 23/01/12 (C. Mari) !! A. Berger 20/03/12 adapt whatever the chemical mechanism in BASIC !! P. Wautelet 30/10/17 use F90 module for netCDF +!! J.Pianezzej 13/02/2019 : correction for use of MEGAN !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -389,7 +390,7 @@ ELSEIF (CDUMMY1=="12") THEN itimeindex=2 ELSEIF (CDUMMY1=="18") THEN itimeindex=3 -ELSEIF (CDUMMY1=="24") THEN +ELSEIF ((CDUMMY1=="24").OR.(CDUMMY1=="00")) THEN itimeindex=4 ENDIF start3d(4) = itimeindex diff --git a/src/SURFEX/coupling_isban.F90 b/src/SURFEX/coupling_isban.F90 index 1250e5719..45e5eea8f 100644 --- a/src/SURFEX/coupling_isban.F90 +++ b/src/SURFEX/coupling_isban.F90 @@ -69,6 +69,7 @@ SUBROUTINE COUPLING_ISBA_n (DTCO, UG, U, USS, NAG, CHI, NCHI, MGN, MSF, DTI, ID !! P. LeMoigne 12/2014 EBA scheme update !! R. Seferian 05/2015 : Add coupling fiels to vegetation_evol call !! P. Tulet 06/2016 : call coupling_megan add RN leaves for MEGAN +!! J. Pianezzej 02/2019 : correction for use of MEGAN !!------------------------------------------------------------------- ! USE MODD_DATA_COVER_n, ONLY : DATA_COVER_t @@ -1154,6 +1155,12 @@ ENDIF IF (CHI%SVI%NBEQ>0 .AND. CHI%LCH_BIO_FLUX) THEN IF ((TRIM(CHI%CPARAMBVOC) == 'MEGAN').AND.(ANY(PEK%XLAI(:)/=XUNDEF))) THEN +!UPG*PT + WHERE (GBK%XIACAN > 2000.) ! non physical values + GBK%XIACAN = 0. + END WHERE +!UPG*PT + CALL COUPLING_MEGAN_n(MGN, CHI, GK, PEK, & KYEAR, KMONTH, KDAY, PTIME, IO%LTR_ML, & IP_SLTYP, ZP_PFT, ZP_EF, & diff --git a/src/SURFEX/coupling_megann.F90 b/src/SURFEX/coupling_megann.F90 index 6d5641bf7..88bb6fd8a 100644 --- a/src/SURFEX/coupling_megann.F90 +++ b/src/SURFEX/coupling_megann.F90 @@ -29,6 +29,7 @@ !! ------------- !! Original: 25/10/2014 !! Modified: 06/07/2017, J. Pianezze, adaptation for SurfEx v8.0 +!! Modified: 06/07/2018, P. Tulet, correction for T leaf !! !! EXTERNAL !! -------- @@ -132,27 +133,14 @@ ZPFD(:) = 0. DO JSM = 1,SIZE(PIACAN,2) ZPFD(:) = ZPFD(:) + PIACAN(:, JSM) END DO -! Test car PIACAN prends des valeurs non physiques au lever du soleil -WHERE (ZPFD(:) .GT. 2000.) ZPFD(:) = 0. ! -! compute sun and shade leaf temperature upon RN_SHADE and RN_SUNLIT -! thanks to D. Carrer -! -ZLSUT(:) = PTEMP(:) + 3. +! UPG*PT en attendat un calcul propre. Temperature des feuilles à l'ombre egale a la +! température de l'air. La temparature des feuilles au soleil egale a la valeur +! max entre la temperature de l'air et la temperaure radiative. +ZLSUT(:) = MAX(PLEAFT(:),PTEMP(:)) ZLSHT(:) = PTEMP(:) -! -IF (OTR_ML) THEN - ! - ZRN(:) = PRN_SUNLIT(:)**2 + PRN_SHADE(:)**2 - ! - WHERE ( ZRN(:).NE.0. ) - ! for sun leaves - ZLSUT(:) = PLEAFT(:) * PRN_SUNLIT(:) * (PRN_SUNLIT(:)+PRN_SHADE(:))/ZRN(:) - ! for shade leaves - ZLSHT(:) = PLEAFT(:) * PRN_SHADE (:) * (PRN_SUNLIT(:)+PRN_SHADE(:))/ZRN(:) - END WHERE - ! -END IF +!UPG*PT + ! ! MEGAN : calcul des facteurs d'ajustement et de perte dans la canopée. ! ZCFSPEC: classe de sorties MEGAN (voir SPC_NOCONVER.EXT) diff --git a/src/SURFEX/default_ch_bio_flux.F90 b/src/SURFEX/default_ch_bio_flux.F90 index a7a3abb71..b303ab82f 100644 --- a/src/SURFEX/default_ch_bio_flux.F90 +++ b/src/SURFEX/default_ch_bio_flux.F90 @@ -3,7 +3,7 @@ !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. ! ######### - SUBROUTINE DEFAULT_CH_BIO_FLUX(OCH_BIO_FLUX) + SUBROUTINE DEFAULT_CH_BIO_FLUX(OCH_BIO_FLUX,PDAILYPAR,PDAILYTEMP) ! ######################################################################## ! !!**** *DEFAULT_CH_BIO_FLUX* - routine to set default values for the configuration for CH_BIO_FLUX scheme @@ -32,7 +32,7 @@ !! MODIFICATIONS !! ------------- !! Original 08/2007 - +!! J.Pianezzej 02/2019 : correction for use of MEGAN !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -49,6 +49,8 @@ IMPLICIT NONE ! ------------------------- ! LOGICAL, INTENT(OUT) :: OCH_BIO_FLUX ! flag for the calculation of biogenic fluxes +REAL, INTENT(OUT), OPTIONAL :: PDAILYPAR ! default values for megan PAR temperature +REAL, INTENT(OUT), OPTIONAL :: PDAILYTEMP ! default values for megan daily temperature REAL(KIND=JPRB) :: ZHOOK_HANDLE ! @@ -60,6 +62,8 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE ! IF (LHOOK) CALL DR_HOOK('DEFAULT_CH_BIO_FLUX',0,ZHOOK_HANDLE) OCH_BIO_FLUX= .FALSE. +IF (PRESENT(PDAILYPAR)) PDAILYPAR = 200. +IF (PRESENT(PDAILYTEMP)) PDAILYTEMP = 293. IF (LHOOK) CALL DR_HOOK('DEFAULT_CH_BIO_FLUX',1,ZHOOK_HANDLE) ! !------------------------------------------------------------------------------- diff --git a/src/SURFEX/init_isban.F90 b/src/SURFEX/init_isban.F90 index a6680248b..dfa0031ef 100644 --- a/src/SURFEX/init_isban.F90 +++ b/src/SURFEX/init_isban.F90 @@ -57,6 +57,7 @@ SUBROUTINE INIT_ISBA_n (DTCO, OREAD_BUDGETC, UG, U, USS, GCP, IM, DTZ,& !! P. Wautelet 16/02/2018: bug correction: allocate some work arrays to 0,1,1 instead of 0,0,1 (crash with XLF) !! V.VIonnet 2017 : Blow snow !! P.Tulet 06/16 : add MEGAN coupling +!! J.Pianezzej 02/2019 : correction for use of MEGAN !! !------------------------------------------------------------------------------- ! @@ -234,7 +235,7 @@ IF (LNAM_READ) THEN IM%O%NNBYEARSPINS, IM%O%NNBYEARSPINW, IM%O%LNITRO_DILU ) ! CALL DEFAULT_CH_DEP(IM%CHI%CCH_DRY_DEP) - CALL DEFAULT_CH_BIO_FLUX(IM%CHI%LCH_BIO_FLUX) + CALL DEFAULT_CH_BIO_FLUX(IM%CHI%LCH_BIO_FLUX,PDAILYPAR=IM%MGN%XDAILYPAR,PDAILYTEMP=IM%MGN%XDAILYTEMP) CALL DEFAULT_DIAG_ISBA(IM%ID%O%N2M, IM%ID%O%LSURF_BUDGET, IM%ID%O%L2M_MIN_ZS, IM%ID%O%LRAD_BUDGET, & IM%ID%O%LCOEF, IM%ID%O%LSURF_VARS, IM%ID%DE%LSURF_EVAP_BUDGET, & IM%ID%DM%LSURF_MISC_BUDGET, IM%ID%DM%LSURF_DIAG_ALBEDO, & diff --git a/src/SURFEX/init_megann.F90 b/src/SURFEX/init_megann.F90 index e4654e149..ee3b097f8 100644 --- a/src/SURFEX/init_megann.F90 +++ b/src/SURFEX/init_megann.F90 @@ -25,6 +25,7 @@ SUBROUTINE INIT_MEGAN_n(IO, S, K, NP, MSF, MGN, PLAT, HSV, PMEGAN_FIELDS) !! ------------- !! Original: 25/10/14 !! Modified: 06/2017, J. Pianezze, adaptation for SurfEx v8.0 +!! Modified: 06/2018, P. Tulet, add PFT and LAI !! !! !! EXTERNAL @@ -44,7 +45,8 @@ USE MODD_DATA_COVER_PAR, ONLY : NVT_C4, NVT_TRBE, NVT_TRBD, NVT_TEBE, & NVT_BOGR, NVT_SHRB, NVT_GRAS, NVT_TROG, NVT_C3, & NVT_NO, NVT_ROCK, NVT_SNOW, NVT_IRR, NVT_PARK ! -USE MODD_SURF_PAR, ONLY : XUNDEF +USE MODD_SURF_PAR, ONLY : XUNDEF +USE MODD_DATA_COVER, ONLY : XDATA_LAI ! USE MODI_VEGTYPE_TO_PATCH #ifdef MNH_MEGAN @@ -86,9 +88,9 @@ REAL, DIMENSION(SIZE(K%XCLAY,1),IO%NPATCH) :: ZH_TREE REAL,DIMENSION(SIZE(K%XCLAY,1)) :: ZSILT REAL,DIMENSION(SIZE(K%XCLAY,1)) :: ZLAI ! -IF (.NOT.IO%LTR_ML) THEN - CALL ABOR1_SFX('INIT_MEGANN: FATAL ERROR PUT LTR_ML = T in NAM_ISBA (PREP_PGD step)') -END IF +!IF (.NOT.IO%LTR_ML) THEN +! CALL ABOR1_SFX('INIT_MEGANN: FATAL ERROR PUT LTR_ML = T in NAM_ISBA (PREP_PGD step)') +!END IF ! ALLOCATE(MGN%XPFT (N_MGN_PFT,SIZE(K%XCLAY,1))) ALLOCATE(MGN%XEF (N_MGN_SPC,SIZE(K%XCLAY,1))) @@ -497,7 +499,25 @@ DO JSV=1, MSF%NMEGAN_NBR IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "EFBIDER") MGN%XEF(18,:) = PMEGAN_FIELDS(:,JSV) IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "EFSTRESS") MGN%XEF(19,:) = PMEGAN_FIELDS(:,JSV) IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "EFOTHER") MGN%XEF(20,:) = PMEGAN_FIELDS(:,JSV) +! IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "LAI") PLAI(:,1) = PMEGAN_FIELDS(:,JSV) + IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "PFT1") MGN%XPFT(1,:) = PMEGAN_FIELDS(:,JSV) + IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "PFT2") MGN%XPFT(2,:) = PMEGAN_FIELDS(:,JSV) + IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "PFT3") MGN%XPFT(3,:) = PMEGAN_FIELDS(:,JSV) + IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "PFT4") MGN%XPFT(4,:) = PMEGAN_FIELDS(:,JSV) + IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "PFT5") MGN%XPFT(5,:) = PMEGAN_FIELDS(:,JSV) + IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "PFT6") MGN%XPFT(6,:) = PMEGAN_FIELDS(:,JSV) + IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "PFT7") MGN%XPFT(7,:) = PMEGAN_FIELDS(:,JSV) + IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "PFT8") MGN%XPFT(8,:) = PMEGAN_FIELDS(:,JSV) + IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "PFT9") MGN%XPFT(9,:) = PMEGAN_FIELDS(:,JSV) + IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "PFT10") MGN%XPFT(10,:) = PMEGAN_FIELDS(:,JSV) + IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "PFT11") MGN%XPFT(11,:) = PMEGAN_FIELDS(:,JSV) + IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "PFT12") MGN%XPFT(12,:) = PMEGAN_FIELDS(:,JSV) + IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "PFT13") MGN%XPFT(13,:) = PMEGAN_FIELDS(:,JSV) + IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "PFT14") MGN%XPFT(14,:) = PMEGAN_FIELDS(:,JSV) + IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "PFT15") MGN%XPFT(15,:) = PMEGAN_FIELDS(:,JSV) + IF (TRIM(MSF%CMEGAN_NAME(JSV)) == "PFT16") MGN%XPFT(16,:) = PMEGAN_FIELDS(:,JSV) END DO + #endif ! !--------------------------------------------------------------------------- diff --git a/src/SURFEX/modd_megann.F90 b/src/SURFEX/modd_megann.F90 index 25702d033..3f1e4e1c6 100644 --- a/src/SURFEX/modd_megann.F90 +++ b/src/SURFEX/modd_megann.F90 @@ -26,6 +26,7 @@ !! ------------- !! 16/07/2003 (P. Tulet) restructured for externalization !! 24/05/2017 (J. Pianezze) adaptation for SurfEx v8.0 +!! 13/02/2019 (J. Pianezze) correction for use of MEGAN !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -185,8 +186,8 @@ YMEGAN%LCONVERSION=.FALSE. YMEGAN%NVARS3D=0 YMEGAN%N_SCON_SPC=0 YMEGAN%XDROUGHT=0. -YMEGAN%XDAILYPAR=0. -YMEGAN%XDAILYTEMP=0. +YMEGAN%XDAILYPAR=150. +YMEGAN%XDAILYTEMP=293. YMEGAN%XMODPREC=0. IF (LHOOK) CALL DR_HOOK("MODD_MEGAN_n:MEGAN_INIT",1,ZHOOK_HANDLE) END SUBROUTINE MEGAN_INIT -- GitLab From d15a64b74387ad4b6743b66c7961aea54a31fbce Mon Sep 17 00:00:00 2001 From: Juan Escobar <escj@aero.obs-mip.fr> Date: Thu, 14 Feb 2019 16:41:49 +0100 Subject: [PATCH 052/139] Juan 6/02/2019: For CDFAUTO & Forefire , add compilation of netcdf-cxx-4.2 --- conf/profile_mesonh.ihm | 3 ++- src/Makefile | 13 +++++++++++-- src/Makefile.MESONH.mk | 2 ++ src/Rules.LXgfortran.mk | 3 +++ src/Rules.LXifort.mk | 7 +++++++ src/configure | 6 ++++-- 6 files changed, 29 insertions(+), 5 deletions(-) diff --git a/conf/profile_mesonh.ihm b/conf/profile_mesonh.ihm index 576185e85..ca9d6bb8f 100755 --- a/conf/profile_mesonh.ihm +++ b/conf/profile_mesonh.ihm @@ -67,6 +67,7 @@ export CONF_DOLLAR=${CONF_DOLLAR} # export VER_CDF=${VER_CDF} export VERSION_CDFC=${VERSION_CDFC} +export VERSION_CDFCXX=${VERSION_CDFCXX} export VERSION_CDFF=${VERSION_CDFF} export VERSION_HDF=${VERSION_HDF} export VERSION_LIBAEC=${VERSION_LIBAEC} @@ -125,7 +126,7 @@ export VERSION_NCL=${VERSION_NCL} ########################################################## ########################################################## # -export XYZ="-\${ARCH}-R\${MNH_REAL}I\${MNH_INT}-\${VERSION_XYZ}\${MNH_ECRAD:+-ECRAD}\${VER_USER:+-\${VER_USER}}-\${VER_MPI}-\${OPTLEVEL}" +export XYZ="-\${ARCH}-R\${MNH_REAL}I\${MNH_INT}-\${VERSION_XYZ}\${MNH_ECRAD:+-ECRAD}\${MNH_FOREFIRE:+-FF}\${VER_USER:+-\${VER_USER}}-\${VER_MPI}-\${OPTLEVEL}" #[ "x\${VER_USER}" != "x" ] && export XYZ="\${XYZ}-\${VER_USER}" # PATH to find tools like "makegen, etc ..." export BIN_TOOLS=${BIN_TOOLS} diff --git a/src/Makefile b/src/Makefile index ef4e4220c..ef5a0b30f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -339,8 +339,8 @@ gribapi_clean : ########################################################## ifeq "$(VER_CDF)" "CDFAUTO" # -HDF_OPT = ${OPT_BASE_I4:-$OPT_BASE} -NETCDF_OPT = ${OPT_BASE_I4:-$OPT_BASE} +HDF_OPT ?= ${OPT_BASE_I4:-$OPT_BASE} +NETCDF_OPT ?= ${OPT_BASE_I4:-$OPT_BASE} # cdf : $(CDF_MOD) $(CDF_MOD) : @@ -352,6 +352,12 @@ $(CDF_MOD) : cd ${DIR_CDFC} && ./configure --disable-shared --prefix=${CDF_PATH} --libdir=${CDF_PATH}/lib64 --disable-dap \ CC="$(CC)" CFLAGS="$(NETCDF_OPT)" CPPFLAGS="${INC_NETCDF}" ${CDF_CONF} LDFLAGS="-L${CDF_PATH}/lib64" LIBS="-lhdf5_hl -lhdf5 -lsz -laec -lz" && \ $(MAKE) && $(MAKE) install && $(MAKE) clean +ifdef MNH_FOREFIRE + cd ${DIR_CDFCXX} && ./configure --disable-shared --prefix=${CDF_PATH} --libdir=${CDF_PATH}/lib64 \ + CXX="$(CXX)" CXXFLAGS="$(NETCDF_OPT)" FC="$(FC)" FCFLAGS="$(NETCDF_OPT) $(NETCDF_SUPPFLAGS)" FFLAGS="$(NETCDF_OPT)" \ + CPPFLAGS="${INC_NETCDF}" ${CDF_CONF} LDFLAGS="-L${CDF_PATH}/lib64" LIBS="-lnetcdf -lhdf5_hl -lhdf5 -lsz -laec -lz" && \ + $(MAKE) && $(MAKE) install && $(MAKE) clean +endif cd ${DIR_CDFF} && ./configure --disable-shared --prefix=${CDF_PATH} --libdir=${CDF_PATH}/lib64 \ CC="$(CC)" CFLAGS="$(NETCDF_OPT)" FC="$(FC)" FCFLAGS="$(NETCDF_OPT) $(NETCDF_SUPPFLAGS)" FFLAGS="$(NETCDF_OPT)" \ CPPFLAGS="${INC_NETCDF}" ${CDF_CONF} LDFLAGS="-L${CDF_PATH}/lib64" LIBS="-lnetcdf -lhdf5_hl -lhdf5 -lsz -laec -lz" && \ @@ -363,6 +369,9 @@ cleancdf : cd ${DIR_LIBAEC} && $(MAKE) clean cd ${DIR_HDF} && $(MAKE) clean cd ${DIR_CDFC} && $(MAKE) clean +ifdef MNH_FOREFIRE + cd ${DIR_CDFCXX} && $(MAKE) clean +endif cd ${DIR_CDFF} && $(MAKE) clean endif ########################################################## diff --git a/src/Makefile.MESONH.mk b/src/Makefile.MESONH.mk index bda290237..1a1607808 100644 --- a/src/Makefile.MESONH.mk +++ b/src/Makefile.MESONH.mk @@ -252,6 +252,7 @@ OBJS_LISTE_MASTER += C_ForeFire_Interface.o INC += $(INC_FOREFIRE) VPATH += $(DIR_FOREFIRE) CPPFLAGS += -DMNH_FOREFIRE +ARCH_XYZ := $(ARCH_XYZ)-FF endif ########################################################## # Source TOOLS # @@ -467,6 +468,7 @@ endif # ifeq "$(VER_CDF)" "CDFAUTO" DIR_CDFC?=${SRC_MESONH}/src/LIB/netcdf-${VERSION_CDFC} +DIR_CDFCXX?=${SRC_MESONH}/src/LIB/netcdf-cxx-${VERSION_CDFCXX} DIR_CDFF?=${SRC_MESONH}/src/LIB/netcdf-fortran-${VERSION_CDFF} CDF_PATH?=${SRC_MESONH}/src/LIB/netcdf-${ARCH}-R${MNH_REAL}I${MNH_INT} CDF_MOD?=${CDF_PATH}/include/netcdf.mod diff --git a/src/Rules.LXgfortran.mk b/src/Rules.LXgfortran.mk index 26ff8eee5..cdf8bc938 100644 --- a/src/Rules.LXgfortran.mk +++ b/src/Rules.LXgfortran.mk @@ -58,6 +58,7 @@ endif # # CC = gcc +CXX = g++ FC = gfortran ifeq "$(VER_MPI)" "MPIAUTO" F90 = mpif90 @@ -97,6 +98,8 @@ CNAME_GRIBEX=_gfortran # Netcdf/HDF5 flags # HDF_CONF= CFLAGS=-std=c99 +HDF_OPT ?= -fPIC +NETCDF_OPT ?= -fPIC # ## LIBTOOLS flags # diff --git a/src/Rules.LXifort.mk b/src/Rules.LXifort.mk index 48b9c5c99..3a3185d5a 100644 --- a/src/Rules.LXifort.mk +++ b/src/Rules.LXifort.mk @@ -128,6 +128,7 @@ endif # # CC ?= gcc +CXX ?= g++ FC = ifort ifeq "$(VER_MPI)" "MPIAUTO" ifneq "$(findstring TAU,$(XYZ))" "" @@ -191,6 +192,12 @@ endif TARGET_GRIBEX=linux CNAME_GRIBEX=ifort # +# Netcdf/HDF5 flags +# +HDF_CONF= CFLAGS=-std=c99 +HDF_OPT ?= -fPIC +NETCDF_OPT ?= -fPIC +# # LIBTOOLS flags # #if MNH_TOOLS exists => compile the tools diff --git a/src/configure b/src/configure index 4dfbf2c9a..9b3b03bec 100755 --- a/src/configure +++ b/src/configure @@ -9,12 +9,13 @@ if [ "x$XYZ" = "x" ] then # export VERSION_MASTER=${VERSION_MASTER:-MNH-V5-4} -export VERSION_BUG=${VERSION_BUG:-1} +export VERSION_BUG=${VERSION_BUG:-2} export VERSION_XYZ=${VERSION_XYZ:-${VERSION_MASTER}-${VERSION_BUG}${VER_OASIS:+-${VER_OASIS}}} export VERSION_DATE=${VERSION_DATE:-"dd/mm/yyyy"} export VERSION_LIBAEC=${VERSION_LIBAEC:-"0.3.2"} export VERSION_HDF=${VERSION_HDF:-"1.8.20"} export VERSION_CDFC=${VERSION_CDFC:-"4.5.0"} +export VERSION_CDFCXX=${VERSION_CDFCXX:-"4.2"} export VERSION_CDFF=${VERSION_CDFF:-"4.4.4"} export VERSION_GRIBAPI=${VERSION_GRIBAPI:-"1.26.0-Source"} export MNH_INT=${MNH_INT:-"4"} @@ -429,7 +430,7 @@ fi # ${LOCAL}/bin/eval_dollar profile_mesonh.ihm > profile_mesonh chmod +x profile_mesonh -XYZ=${ARCH}-R${MNH_REAL}I${MNH_INT}-${VERSION_XYZ}${MNH_ECRAD:+-ECRAD}${VER_USER:+-${VER_USER}}-${VER_MPI}-${OPTLEVEL} +XYZ=${ARCH}-R${MNH_REAL}I${MNH_INT}-${VERSION_XYZ}${MNH_ECRAD:+-ECRAD}${MNH_FOREFIRE:+-FF}${VER_USER:+-${VER_USER}}-${VER_MPI}-${OPTLEVEL} cp profile_mesonh profile_mesonh-${XYZ} # # Do some post-install stuff @@ -466,6 +467,7 @@ if [ "x${VER_CDF}" == "xCDFAUTO" ] ;then ( cd $LOCAL/src/LIB ; [ ! -d libaec-${VERSION_LIBAEC} ] && tar xvfz libaec-${VERSION_LIBAEC}.tar.gz ) ( cd $LOCAL/src/LIB ; [ ! -d hdf5-${VERSION_HDF} ] && tar xvfz hdf5-${VERSION_HDF}.tar.gz ) ( cd $LOCAL/src/LIB ; [ ! -d netcdf-${VERSION_CDFC} ] && tar xvfz netcdf-${VERSION_CDFC}.tar.gz ) +( cd $LOCAL/src/LIB ; [ ! -d netcdf-cxx-${VERSION_CDFCXX} ] && tar xvfz netcdf-cxx-${VERSION_CDFCXX}.tar.gz ) ( cd $LOCAL/src/LIB ; [ ! -d netcdf-fortran-${VERSION_CDFF} ] && tar xvfz netcdf-fortran-${VERSION_CDFF}.tar.gz ) fi # -- GitLab From c8b5c06e89d83615d083c2a89e3d6c7b24b8a833 Mon Sep 17 00:00:00 2001 From: Juan Escobar <escj@aero.obs-mip.fr> Date: Fri, 15 Feb 2019 16:11:56 +0100 Subject: [PATCH 053/139] Juan 6/02/2019: For CDFAUTO & Forefire , add netcdf-cxx-4.2.tar.gz --- src/LIB/netcdf-cxx-4.2.tar.gz | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/LIB/netcdf-cxx-4.2.tar.gz diff --git a/src/LIB/netcdf-cxx-4.2.tar.gz b/src/LIB/netcdf-cxx-4.2.tar.gz new file mode 100644 index 000000000..11c1c1553 --- /dev/null +++ b/src/LIB/netcdf-cxx-4.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95ed6ab49a0ee001255eac4e44aacb5ca4ea96ba850c08337a3e4c9a0872ccd1 +size 703482 -- GitLab From 091f65cb93852c5dd5ff79fe656709e74189710c Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 15 Feb 2019 11:16:40 +0100 Subject: [PATCH 054/139] Philippe 15/02/2019: SURFEX: move computation of ZLAND (to prevent use of non initialized values) --- src/SURFEX/get_type_dimn.F90 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/SURFEX/get_type_dimn.F90 b/src/SURFEX/get_type_dimn.F90 index b3b984622..05c60f73b 100644 --- a/src/SURFEX/get_type_dimn.F90 +++ b/src/SURFEX/get_type_dimn.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. ! ##################################### SUBROUTINE GET_TYPE_DIM_n (DTCO, U, & @@ -26,6 +26,7 @@ !! MODIFICATIONS !! ------------- !! Original 01/2004 +! P. Wautelet 15/02/2019: move computation of ZLAND (to prevent use of non initialized values) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -99,7 +100,6 @@ ELSE ZWATER = U%XWATER ZTOWN = U%XTOWN END IF -ZLAND = ZTOWN + ZNATURE ! ALLOCATE(ZFULL(ILU)) ZFULL=1. @@ -124,6 +124,7 @@ SELECT CASE (HTYPE) KDIM = COUNT(ZWATER(:) > 0.) ! CASE ('LAND ') + ZLAND = ZTOWN + ZNATURE KDIM = COUNT(ZLAND(:) > 0.) ! END SELECT -- GitLab From 4d946e6e89f3a60e2cdb0792243964ba255db655 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 15 Feb 2019 11:17:15 +0100 Subject: [PATCH 055/139] Philippe 15/02/2019: SURFEX: bugfix: allocate ZSTRESS only when its size has a meaning --- src/SURFEX/convert_patch_isba.F90 | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/SURFEX/convert_patch_isba.F90 b/src/SURFEX/convert_patch_isba.F90 index 0ad47ed03..cad666663 100644 --- a/src/SURFEX/convert_patch_isba.F90 +++ b/src/SURFEX/convert_patch_isba.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. ! ######### SUBROUTINE CONVERT_PATCH_ISBA (DTCO, DTV, IO, KDEC, KDEC2, PCOVER, OCOVER,& @@ -45,7 +45,8 @@ !! albedo, UV albedo not defined (conserv nrj when !! coupled to atmosphere) !! P Samuelsson 10/2014 MEB -!! +! P. Wautelet 15/02/2019: bugfix: allocate ZSTRESS only when its size has a meaning +! !---------------------------------------------------------------------------- ! !* 0. DECLARATION @@ -671,13 +672,14 @@ SUBROUTINE SET_STRESS IMPLICIT NONE ! REAL, DIMENSION(PK%NSIZE_P) :: ZWORK -REAL, DIMENSION(SIZE(DTV%LPAR_STRESS,1),NVEGTYPE) :: ZSTRESS +REAL, DIMENSION(:,:), ALLOCATABLE :: ZSTRESS INTEGER :: JI REAL(KIND=JPRB) :: ZHOOK_HANDLE ! IF (LHOOK) CALL DR_HOOK('CONVERT_PATCH_ISBA:SET_STRESS',0,ZHOOK_HANDLE) ! IF (GDATA .AND. ANY(DTV%LDATA_STRESS)) THEN + ALLOCATE( ZSTRESS( SIZE(DTV%LPAR_STRESS,1),NVEGTYPE ) ) ZSTRESS(:,:)=0. DO JVEG=1,NVEGTYPE DO JI = 1,PK%NSIZE_P @@ -686,6 +688,7 @@ IF (GDATA .AND. ANY(DTV%LDATA_STRESS)) THEN ENDDO CALL AV_PGD_PARAM(DTV%XPAR_LAI, DTV%XPAR_VEG, & ZWORK,DTV%XPAR_VEGTYPE,ZSTRESS,YVEG,'ARI',PK%NR_P,IO%NPATCH,KPATCH,KDECADE=KDEC2) + DEALLOCATE( ZSTRESS ) ELSE CALL AV_PGD_1P(DTCO, ZWORK,PCOVER,XDATA_STRESS(:,:),YVEG,'ARI',OCOVER,PK%NR_P,IO%NPATCH,KPATCH,KDECADE=KDEC) ENDIF -- GitLab From 0eb4b4e6cb6bf9b4021b9870ff7dce39a274e541 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 18 Feb 2019 15:03:48 +0100 Subject: [PATCH 056/139] Philippe 18/02/2019: IO: bugfixes for nsubfiles_ioz --- .../SURCOUCHE/src/mode_io_manage_struct.f90 | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 index b9472afd3..e3233b76c 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 @@ -15,6 +15,7 @@ ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines ! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! P. Wautelet 18/02/2019: bugfixes for nsubfiles_ioz !----------------------------------------------------------------- MODULE MODE_IO_MANAGE_STRUCT ! @@ -584,8 +585,8 @@ SUBROUTINE POPULATE_STRUCT(TPFILE_FIRST,TPFILE_LAST,KSTEPS,HFILETYPE,TPBAKOUTN) ! !Create file structures if Z-splitted files IF (NB_PROCIO_W>1) THEN + TPBAKOUTN(IPOS)%TFILE%NSUBFILES_IOZ = NB_PROCIO_W ALLOCATE(TPBAKOUTN(IPOS)%TFILE%TFILES_IOZ(NB_PROCIO_W)) -! ALLOCATE(TPBAKOUTN(IPOS)%TFILE_IOZ(NB_PROCIO_W)) IF (NB_PROCIO_W>999) THEN CALL PRINT_MSG(NVERB_FATAL,'IO','POPULATE_STRUCT','more than 999 z-levels') END IF @@ -800,17 +801,20 @@ else ! MNH/MNHBACKUP/MNHOUTPUT !Remark: 'MNH' is more general than MNHBACKUP and could be in fact a MNHBACKUP file gsplit_ioz = .true. - select case (hmode) - case('READ') - tpfile%nsubfiles_ioz = nb_procio_r - case('WRITE') - tpfile%nsubfiles_ioz = nb_procio_w - end select - if (tpfile%nsubfiles_ioz == 1) tpfile%nsubfiles_ioz = 0 end if end if end if -! + +if ( gsplit_ioz ) then + select case (hmode) + case('READ') + tpfile%nsubfiles_ioz = nb_procio_r + case('WRITE') + tpfile%nsubfiles_ioz = nb_procio_w + end select + if (tpfile%nsubfiles_ioz == 1) tpfile%nsubfiles_ioz = 0 +end if + SELECT CASE(TPFILE%CTYPE) !Chemistry input files CASE('CHEMINPUT') -- GitLab From a9f54bf9cdd4170075892b5e2786c449dd434d2c Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Mon, 18 Feb 2019 18:10:17 +0100 Subject: [PATCH 057/139] C.Lac 18/02/2019: adding rain fraction as an output field --- src/LIB/SURCOUCHE/src/mode_field.f90 | 17 +++++++++++++++++ src/MNH/deallocate_model1.f90 | 5 +++++ src/MNH/ini_modeln.f90 | 3 +++ src/MNH/modd_fieldn.f90 | 2 ++ src/MNH/modeln.f90 | 5 +++-- src/MNH/rain_ice.f90 | 20 +++++++++++--------- src/MNH/rain_ice_red.f90 | 15 +++++++++------ src/MNH/resolved_cloud.f90 | 25 ++++++++++++++----------- src/MNH/write_lfin.f90 | 3 ++- 9 files changed, 66 insertions(+), 29 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90 index e0858d4b3..ff01011b6 100644 --- a/src/LIB/SURCOUCHE/src/mode_field.f90 +++ b/src/LIB/SURCOUCHE/src/mode_field.f90 @@ -8,6 +8,7 @@ ! Modifications: ! Philippe Wautelet: 29/01/2019 : small bug correction (null pointers) in FIELDLIST_GOTO_MODEL if NESPGD or PGD ! Philippe Wautelet: 01/02/2019 : bug correction in case XRT is not associated +! 02/2019 C.Lac add rain fraction as an output field !----------------------------------------------------------------- MODULE MODE_FIELD ! @@ -2339,6 +2340,20 @@ TFIELDLIST(IDX)%LTIMEDEP = .TRUE. ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL)) IDX = IDX+1 ! +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST() +TFIELDLIST(IDX)%CMNHNAME = 'RAINFR' +TFIELDLIST(IDX)%CSTDNAME = '' +TFIELDLIST(IDX)%CLONGNAME = 'RAINFR' +TFIELDLIST(IDX)%CUNITS = '1' +TFIELDLIST(IDX)%CDIR = 'XY' +TFIELDLIST(IDX)%CCOMMENT = 'X_Y_Z_Rain FRaction' +TFIELDLIST(IDX)%NGRID = 1 +TFIELDLIST(IDX)%NTYPE = TYPEREAL +TFIELDLIST(IDX)%NDIMS = 3 +TFIELDLIST(IDX)%LTIMEDEP = .TRUE. +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL)) +IDX = IDX+1 +! END IF ! CPROGRAM=MESONH .OR. DIAG .OR. LFICDF ! ! @@ -3934,6 +3949,7 @@ IF (CPROGRAM == 'MESONH') THEN END IF CALL FIND_FIELD_ID_FROM_MNHNAME('CLDFR',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XCLDFR CALL FIND_FIELD_ID_FROM_MNHNAME('CIT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XCIT + CALL FIND_FIELD_ID_FROM_MNHNAME('RAINFR',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRAINFR ! END IF ! @@ -4258,6 +4274,7 @@ IF (CPROGRAM == 'MESONH') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('THS_CLD',IID,IRESP); XRTHS_CLD => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA CALL FIND_FIELD_ID_FROM_MNHNAME('CLDFR', IID,IRESP); XCLDFR => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA CALL FIND_FIELD_ID_FROM_MNHNAME('CIT', IID,IRESP); XCIT => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA + CALL FIND_FIELD_ID_FROM_MNHNAME('RAINFR', IID,IRESP); XRAINFR => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA END IF ! ! MODD_PAST_FIELD_n variables diff --git a/src/MNH/deallocate_model1.f90 b/src/MNH/deallocate_model1.f90 index 9a3b3a5c1..11a577e2e 100644 --- a/src/MNH/deallocate_model1.f90 +++ b/src/MNH/deallocate_model1.f90 @@ -66,6 +66,7 @@ END MODULE MODI_DEALLOCATE_MODEL1 !! 06/2012 M.Tomasini add 2D nesting ADVFRC !! 10/2016 M.Mazoyer New KHKO output fields !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! 02/2019 C.Lac add rain fraction as an output field !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -187,6 +188,10 @@ IF ( ASSOCIATED(XCLDFR) .AND. KCALL==2 ) THEN DEALLOCATE(XCLDFR) END IF ! +IF ( ASSOCIATED(XRAINFR) .AND. KCALL==2 ) THEN + DEALLOCATE(XRAINFR) +END IF +! IF ( KCALL == 3 ) THEN DEALLOCATE(XSVT) END IF diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index 41441eff3..dd7d2119f 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -281,6 +281,7 @@ END MODULE MODI_INI_MODEL_n ! P. Wautelet 29/01/2019: bug: add missing zero-size allocations ! P. Wautelet 13/02/2019: initialize XALBUV even if no radiation (needed in CH_INTERP_JVALUES) ! P. Wautelet 13/02/2019: removed PPABSM and PTSTEP dummy arguments of READ_FIELD +!! 02/2019 C.Lac add rain fraction as an output field !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -835,8 +836,10 @@ END IF ! IF (NRR>1) THEN ALLOCATE(XCLDFR(IIU,IJU,IKU)) + ALLOCATE(XRAINFR(IIU,IJU,IKU)) ELSE ALLOCATE(XCLDFR(0,0,0)) + ALLOCATE(XRAINFR(0,0,0)) END IF ! ALLOCATE(XSVT(IIU,IJU,IKU,NSV)) ; XSVT = 0. diff --git a/src/MNH/modd_fieldn.f90 b/src/MNH/modd_fieldn.f90 index 5f5e1847b..c1a0be8f9 100644 --- a/src/MNH/modd_fieldn.f90 +++ b/src/MNH/modd_fieldn.f90 @@ -49,6 +49,7 @@ !! for Theta and r (noted _CLD) !! 04/16 (M.Mazoyer) New supersaturation fields !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! 02/2019 C.Lac add rain fraction as an output field !! !------------------------------------------------------------------------------- ! @@ -133,6 +134,7 @@ REAL, DIMENSION(:,:,:), POINTER :: XSRC=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XSRCT=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XSIGS=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XCLDFR=>NULL() +REAL, DIMENSION(:,:,:), POINTER :: XRAINFR=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XCIT=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XTHM=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XPABSM=>NULL() diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index 84354e1f3..a903c134f 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -253,6 +253,7 @@ END MODULE MODI_MODEL_n !! 01/2018 (C.Lac) Add VISCOSITY !! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll ! to allow to disable writes (for bench purposes) +!! 02/2019 C.Lac add rain fraction as an output field !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -1802,7 +1803,7 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN XINPRC,ZINPRC3D,XINPRR, XINPRR3D, XEVAP3D, & XINPRS,ZINPRS3D, XINPRG,ZINPRG3D, XINPRH,ZINPRH3D, & XSOLORG, XMI,ZSPEEDC, ZSPEEDR, ZSPEEDS, ZSPEEDG, ZSPEEDH, & - XINDEP, XSUPSAT, XNACT, XNPRO,XSSPRO, & + XINDEP, XSUPSAT, XNACT, XNPRO,XSSPRO, XRAINFR, & ZSEA, ZTOWN ) DEALLOCATE(ZTOWN) ELSE @@ -1820,7 +1821,7 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN XINPRC,ZINPRC3D,XINPRR, XINPRR3D, XEVAP3D, & XINPRS,ZINPRS3D, XINPRG,ZINPRG3D, XINPRH,ZINPRH3D, & XSOLORG, XMI,ZSPEEDC, ZSPEEDR, ZSPEEDS, ZSPEEDG, ZSPEEDH, & - XINDEP, XSUPSAT, XNACT, XNPRO,XSSPRO ) + XINDEP, XSUPSAT, XNACT, XNPRO,XSSPRO, XRAINFR ) END IF XRTHS_CLD = XRTHS - XRTHS_CLD XRRS_CLD = XRRS - XRRS_CLD diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90 index 06f621435..7bffe8cfd 100644 --- a/src/MNH/rain_ice.f90 +++ b/src/MNH/rain_ice.f90 @@ -13,7 +13,7 @@ INTERFACE PTHT, PRVT, PRCT, PRRT, PRIT, PRST, & PRGT, PTHS, PRVS, PRCS, PRRS, PRIS, PRSS, PRGS, & PINPRC,PINPRR, PINPRR3D, PEVAP3D, & - PINPRS, PINPRG, PSIGS, PINDEP, PSEA, PTOWN, & + PINPRS, PINPRG, PSIGS, PINDEP, PRAINFR, PSEA, PTOWN, & PRHT, PRHS, PINPRH, PFPR ) ! ! @@ -69,6 +69,7 @@ REAL, DIMENSION(:,:,:),INTENT(OUT) :: PINPRR3D! Rain inst precip 3D REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PEVAP3D! Rain evap profile REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRS! Snow instant precip REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRG! Graupel instant precip +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRAINFR! Rain fraction REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! Sea Mask REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN! Fraction that is town REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t @@ -86,7 +87,7 @@ END MODULE MODI_RAIN_ICE PTHT, PRVT, PRCT, PRRT, PRIT, PRST, & PRGT, PTHS, PRVS, PRCS, PRRS, PRIS, PRSS, PRGS, & PINPRC,PINPRR, PINPRR3D, PEVAP3D, & - PINPRS, PINPRG, PSIGS, PINDEP, PSEA, PTOWN, & + PINPRS, PINPRG, PSIGS, PINDEP, PRAINFR, PSEA, PTOWN, & PRHT, PRHS, PINPRH, PFPR ) ! ###################################################################### ! @@ -238,6 +239,7 @@ END MODULE MODI_RAIN_ICE !! (C. Abiven, Y. Léauté, V. Seigner, S. Riette) Phasing of Turner rain subgrid param !! J.Escobar : 8/2018 : for real*4 , bis => limit exp() in RAIN_ICE_SLOW with XMNH_HUGE_12_LOG !! P.Wautelet 01/02/2019: add missing initialization for PFPR +!! 02/2019 C.Lac add rain fraction as an output field ! !* 0. DECLARATIONS ! ------------ @@ -316,6 +318,7 @@ REAL, DIMENSION(:,:,:),INTENT(OUT) :: PINPRR3D! Rain inst precip 3D REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PEVAP3D! Rain evap profile REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRS! Snow instant precip REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRG! Graupel instant precip +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRAINFR! Rain fraction REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! Sea Mask REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN! Fraction that is town REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t @@ -379,7 +382,6 @@ REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: & ZRAY, & ! Cloud Mean radius ZLBC, & ! XLBC weighted by sea fraction ZFSEDC -REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZRAINFR ! Rain fraction REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZHLC_HCF3D ! HLCLOUDS cloud fraction in high water content part REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZHLC_LCF3D ! HLCLOUDS cloud fraction in low water content part REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZHLC_HRC3D ! HLCLOUDS cloud water content in high water content part @@ -807,10 +809,10 @@ IF( IMICRO >= 0 ) THEN !Diagnostic of precipitation fraction ZW(:,:,:) = 0. - ZRAINFR(:,:,:) = UNPACK( ZRF(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) - CALL RAINFR_VERT(ZRAINFR(:,:,:), PRRT(:,:,:)) + PRAINFR(:,:,:) = UNPACK( ZRF(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) + CALL RAINFR_VERT(PRAINFR(:,:,:), PRRT(:,:,:)) DO JL=1,IMICRO - ZRF(JL)=ZRAINFR(I1(JL),I2(JL),I3(JL)) + ZRF(JL)=PRAINFR(I1(JL),I2(JL),I3(JL)) END DO ! CALL RAIN_ICE_SLOW @@ -900,8 +902,8 @@ IF( IMICRO >= 0 ) THEN ZW(:,:,:) = PCIT(:,:,:) PCIT(:,:,:) = UNPACK( ZCIT(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) ! - ZW(:,:,:) = ZRAINFR(:,:,:) - ZRAINFR(:,:,:) = UNPACK( ZRF(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) + ZW(:,:,:) = PRAINFR(:,:,:) + PRAINFR(:,:,:) = UNPACK( ZRF(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) ! ZW(:,:,:) = 0. ZHLC_HCF3D(:,:,:) = UNPACK( ZHLC_HCF(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) @@ -1082,7 +1084,7 @@ ELSE CALL PRINT_MSG(NVERB_FATAL,'GEN','RAIN_ICE','') END IF !sedimentation of rain fraction -CALL RAINFR_VERT(ZRAINFR, PRRS(:,:,:)*PTSTEP) +CALL RAINFR_VERT(PRAINFR, PRRS(:,:,:)*PTSTEP) ! ! diff --git a/src/MNH/rain_ice_red.f90 b/src/MNH/rain_ice_red.f90 index b2d30ddf9..eac902614 100644 --- a/src/MNH/rain_ice_red.f90 +++ b/src/MNH/rain_ice_red.f90 @@ -13,7 +13,7 @@ INTERFACE PTHT, PRVT, PRCT, PRRT, PRIT, PRST, & PRGT, PTHS, PRVS, PRCS, PRRS, PRIS, PRSS, PRGS, & PINPRC,PINPRR, PINPRR3D, PEVAP3D, & - PINPRS, PINPRG, PSIGS, PINDEP, PSEA, PTOWN, & + PINPRS, PINPRG, PSIGS, PINDEP, PRAINFR, PSEA, PTOWN, & PRHT, PRHS, PINPRH, PFPR ) ! ! @@ -69,6 +69,7 @@ REAL, DIMENSION(:,:,:),INTENT(OUT) :: PINPRR3D! Rain inst precip 3D REAL, DIMENSION(:,:,:), INTENT(OUT) :: PEVAP3D! Rain evap profile REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRS! Snow instant precip REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRG! Graupel instant precip +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRAINFR! Rain fraction REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! Sea Mask REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN! Fraction that is town REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t @@ -86,7 +87,7 @@ END MODULE MODI_RAIN_ICE_RED PTHT, PRVT, PRCT, PRRT, PRIT, PRST, & PRGT, PTHS, PRVS, PRCS, PRRS, PRIS, PRSS, PRGS, & PINPRC,PINPRR, PINPRR3D, PEVAP3D, & - PINPRS, PINPRG, PSIGS, PINDEP, PSEA, PTOWN, & + PINPRS, PINPRG, PSIGS, PINDEP, PRAINFR, PSEA, PTOWN, & PRHT, PRHS, PINPRH, PFPR ) ! ###################################################################### ! @@ -237,6 +238,7 @@ END MODULE MODI_RAIN_ICE_RED !! J.Escobar : 10/2017 : for real*4 , limit exp() in RAIN_ICE_SLOW with XMNH_HUGE_12_LOG !! (C. Abiven, Y. Léauté, V. Seigner, S. Riette) Phasing of Turner rain subgrid param !! (S. Riette) Source code split into several files +!! 02/2019 C.Lac add rain fraction as an output field ! !* 0. DECLARATIONS ! ------------ @@ -314,6 +316,7 @@ REAL, DIMENSION(:,:,:),INTENT(OUT) :: PINPRR3D! Rain inst precip 3D REAL, DIMENSION(:,:,:), INTENT(OUT) :: PEVAP3D! Rain evap profile REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRS! Snow instant precip REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRG! Graupel instant precip +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRAINFR! Rain fraction REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! Sea Mask REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN! Fraction that is town REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t @@ -346,7 +349,7 @@ REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: & REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: ZZ_LVFACT, ZZ_LSFACT ! !Diagnostics -REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: ZRAINFR, & +REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: & & ZHLC_HCF3D,& ! HLCLOUDS cloud fraction in high water content part & ZHLC_LCF3D,& ! HLCLOUDS cloud fraction in low water content part & ZHLC_HRC3D,& ! HLCLOUDS cloud water content in high water content @@ -779,7 +782,7 @@ DO WHILE(ANY(ZTIME(:)<PTSTEP)) ! Loop to *really* compute tendencies &ZRS_TEND, ZRG_TEND, ZRH_TEND, & &ZA_TH, ZA_RV, ZA_RC, ZA_RR, ZA_RI, ZA_RS, ZA_RG, ZA_RH, & &ZB_TH, ZB_RV, ZB_RC, ZB_RR, ZB_RI, ZB_RS, ZB_RG, ZB_RH, & - &ZHLC_HCF, ZHLC_LCF, ZHLC_HRC, ZHLC_LRC, ZRAINFR) + &ZHLC_HCF, ZHLC_LCF, ZHLC_HRC, ZHLC_LRC, PRAINFR) ! External tendencies IF(LEXT_TEND) THEN ZA_TH(:) = ZA_TH(:) + ZEXT_TH(:) @@ -1033,7 +1036,7 @@ IF(IMICRO>0) THEN ZHLC_LRC3D(:,:,:) = UNPACK(ZHLC_LRC(:), MASK=LDMICRO(:,:,:), FIELD=ZW(:,:,:)) PCIT(:,:,:) = UNPACK(ZCIT(:), MASK=LDMICRO(:,:,:), FIELD=PCIT(:,:,:)) ELSE - ZRAINFR(:,:,:)=0. + PRAINFR(:,:,:)=0. ZHLC_HCF3D(:,:,:)=0. ZHLC_LCF3D(:,:,:)=0. ZHLC_HRC3D(:,:,:)=0. @@ -1540,7 +1543,7 @@ IF(LSEDIM_AFTER) THEN CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:), 12, 'SEDI_BU_RRH') ! !sedimentation of rain fraction - CALL ICE4_RAINFR_VERT(IIB, IIE, IIT, IJB, IJE, IJT, IKB, IKE, IKT, KKL, ZRAINFR, PRRS(:,:,:)*PTSTEP) + CALL ICE4_RAINFR_VERT(IIB, IIE, IIT, IJB, IJE, IJT, IKB, IKE, IKT, KKL, PRAINFR, PRRS(:,:,:)*PTSTEP) ENDIF ! diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90 index 7713aeb71..fce4b46f7 100644 --- a/src/MNH/resolved_cloud.f90 +++ b/src/MNH/resolved_cloud.f90 @@ -22,7 +22,7 @@ INTERFACE PINPRS,PINPRS3D,PINPRG,PINPRG3D,PINPRH,PINPRH3D, & PSOLORG,PMI, & PSPEEDC, PSPEEDR, PSPEEDS, PSPEEDG, PSPEEDH, & - PINDEP, PSUPSAT, PNACT, PNPRO,PSSPRO, & + PINDEP, PSUPSAT, PNACT, PNPRO,PSSPRO, PRAINFR, & PSEA,PTOWN ) ! USE MODD_IO_ll, ONLY: TFILEDATA @@ -133,6 +133,7 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSUPSAT !sursat REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PNACT !concentrtaion d'aérosols activés au temps t REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PNPRO !concentrtaion d'aérosols activés au temps t REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSSPRO !sursat +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRAINFR ! Rain fraction REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! Land Sea mask REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN ! Town fraction ! @@ -156,7 +157,7 @@ END MODULE MODI_RESOLVED_CLOUD PINPRS,PINPRS3D,PINPRG,PINPRG3D,PINPRH,PINPRH3D, & PSOLORG,PMI, & PSPEEDC, PSPEEDR, PSPEEDS, PSPEEDG, PSPEEDH, & - PINDEP, PSUPSAT, PNACT, PNPRO,PSSPRO, & + PINDEP, PSUPSAT, PNACT, PNPRO,PSSPRO, PRAINFR, & PSEA,PTOWN ) ! ########################################################################## ! @@ -265,6 +266,7 @@ END MODULE MODI_RESOLVED_CLOUD !! ICE3/ICE4 modified, old version under LRED=F !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! P. Wautelet: 01/02/2019: ZRSMIN is now allocatable (instead of size of XRTMIN which was sometimes not allocated) +!! 02/2019 C.Lac add rain fraction as an output field !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -419,6 +421,7 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSUPSAT !sursat REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PNACT !concentrtaion d'aérosols activés au temps t REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PNPRO !concentrtaion d'aérosols activés au temps t REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSSPRO !sursat +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRAINFR ! Rain fraction REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! Land Sea mask REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN ! Town fraction ! @@ -918,8 +921,8 @@ SELECT CASE ( HCLOUD ) PRS(:,:,:,4)>ZRSMIN(4) .OR. & PRS(:,:,:,5)>ZRSMIN(5) .OR. & PRS(:,:,:,6)>ZRSMIN(6) - CALL RAIN_ICE_RED ( OSEDIC,CSEDIM, HSUBG_AUCV, OWARM,1,IKU,1, & - PTSTEP, KRR, LLMICRO, ZEXN, & + CALL RAIN_ICE_RED ( OSEDIC,CSEDIM, HSUBG_AUCV, OWARM,1,IKU,1, & + PTSTEP, KRR, LLMICRO, ZEXN, & ZDZZ, PRHODJ, PRHODREF, PEXNREF, PPABST, PCIT,PCLDFR,& PTHT, PRT(:,:,:,1), PRT(:,:,:,2), & PRT(:,:,:,3), PRT(:,:,:,4), & @@ -927,18 +930,18 @@ SELECT CASE ( HCLOUD ) PTHS, PRS(:,:,:,1), PRS(:,:,:,2), PRS(:,:,:,3), & PRS(:,:,:,4), PRS(:,:,:,5), PRS(:,:,:,6), & PINPRC,PINPRR, PINPRR3D, PEVAP3D, & - PINPRS, PINPRG, PSIGS, PINDEP, PSEA,PTOWN, PFPR=ZFPR) + PINPRS, PINPRG, PSIGS, PINDEP, PRAINFR, PSEA,PTOWN, PFPR=ZFPR) ELSE - CALL RAIN_ICE ( OSEDIC,CSEDIM, HSUBG_AUCV, OWARM,1,IKU,1, & - KSPLITR, PTSTEP, KRR, & + CALL RAIN_ICE ( OSEDIC,CSEDIM, HSUBG_AUCV, OWARM,1,IKU,1, & + KSPLITR, PTSTEP, KRR, & ZDZZ, PRHODJ, PRHODREF, PEXNREF, PPABST, PCIT,PCLDFR,& PTHT, PRT(:,:,:,1), PRT(:,:,:,2), & PRT(:,:,:,3), PRT(:,:,:,4), & PRT(:,:,:,5), PRT(:,:,:,6), & PTHS, PRS(:,:,:,1), PRS(:,:,:,2), PRS(:,:,:,3), & PRS(:,:,:,4), PRS(:,:,:,5), PRS(:,:,:,6), & - PINPRC,PINPRR, PINPRR3D, PEVAP3D, & - PINPRS, PINPRG, PSIGS,PINDEP, & + PINPRC,PINPRR, PINPRR3D, PEVAP3D, & + PINPRS, PINPRG, PSIGS,PINDEP, PRAINFR, & PSEA,PTOWN, PFPR=ZFPR) END IF ! @@ -1009,7 +1012,7 @@ SELECT CASE ( HCLOUD ) PTHS, PRS(:,:,:,1), PRS(:,:,:,2), PRS(:,:,:,3), & PRS(:,:,:,4), PRS(:,:,:,5), PRS(:,:,:,6), & PINPRC, PINPRR, PINPRR3D, PEVAP3D, & - PINPRS, PINPRG, PSIGS, PINDEP, PSEA, PTOWN, & + PINPRS, PINPRG, PSIGS, PINDEP, PRAINFR, PSEA, PTOWN, & PRT(:,:,:,7), PRS(:,:,:,7), PINPRH, PFPR=ZFPR ) ELSE CALL RAIN_ICE ( OSEDIC,CSEDIM, HSUBG_AUCV, OWARM,1,IKU,1, & @@ -1021,7 +1024,7 @@ SELECT CASE ( HCLOUD ) PTHS, PRS(:,:,:,1), PRS(:,:,:,2), PRS(:,:,:,3), & PRS(:,:,:,4), PRS(:,:,:,5), PRS(:,:,:,6), & PINPRC, PINPRR, PINPRR3D, PEVAP3D, & - PINPRS, PINPRG, PSIGS,PINDEP, & + PINPRS, PINPRG, PSIGS,PINDEP, PRAINFR, & PSEA, PTOWN, & PRT(:,:,:,7), PRS(:,:,:,7), PINPRH,PFPR=ZFPR ) END IF diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90 index 43257ca72..7d7b49854 100644 --- a/src/MNH/write_lfin.f90 +++ b/src/MNH/write_lfin.f90 @@ -169,7 +169,7 @@ END MODULE MODI_WRITE_LFIFM_n !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! V. Vionnet 07/2017, add blowing snow variables !! P.Wautelet 11/01/2019: bug correction in write XBL_DEPTH->XSBL_DEPTH -!! +!! C.Lac 18/02/2019: add rain fraction as an output field !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -1517,6 +1517,7 @@ ENDIF ! IF (NRR > 1 .AND. CPROGRAM == 'MESONH') THEN CALL IO_WRITE_FIELD(TPFILE,'CLDFR',XCLDFR) + CALL IO_WRITE_FIELD(TPFILE,'RAINFR',XRAINFR) END IF ! ! -- GitLab From 6974a6259f9b9ec510b62da36674ac4fffb9519f Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Mon, 18 Feb 2019 18:11:31 +0100 Subject: [PATCH 058/139] C.Lac 18/02/2019: adding rain fraction as a LES diagnostic --- src/MNH/ini_lesn.f90 | 5 ++++- src/MNH/lesn.f90 | 8 ++++++++ src/MNH/modd_lesn.f90 | 5 +++++ src/MNH/write_lesn.f90 | 7 ++++++- 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/MNH/ini_lesn.f90 b/src/MNH/ini_lesn.f90 index 3f398b419..3edab6944 100644 --- a/src/MNH/ini_lesn.f90 +++ b/src/MNH/ini_lesn.f90 @@ -33,7 +33,7 @@ !! 06/11/02 (V. Masson) add LES budgets !! 10/2016 (C.Lac) Add droplet deposition !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -!! +!! 02/2019 (C. Lac) Add rain fraction as a LES diagnostic !! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -539,8 +539,10 @@ ELSE END IF IF (LUSERR ) THEN ALLOCATE(XLES_MEAN_Rr (NLES_K,NLES_TIMES,NLES_MASKS)) + ALLOCATE(XLES_MEAN_RF (NLES_K,NLES_TIMES,NLES_MASKS)) ELSE ALLOCATE(XLES_MEAN_Rr (0,0,0)) + ALLOCATE(XLES_MEAN_RF (0,0,0)) END IF IF (LUSERI ) THEN ALLOCATE(XLES_MEAN_Ri (NLES_K,NLES_TIMES,NLES_MASKS)) @@ -646,6 +648,7 @@ IF (LUSERC ) XLES_MEAN_KHt = XUNDEF IF (LUSERC ) XLES_MEAN_Rt = XUNDEF IF (LUSERC ) XLES_MEAN_Rc = XUNDEF IF (LUSERC ) XLES_MEAN_Cf = XUNDEF +IF (LUSERC ) XLES_MEAN_RF = XUNDEF IF (LUSERC ) XLES_MEAN_INDCf = XUNDEF IF (LUSERC ) XLES_MEAN_INDCf2 = XUNDEF IF (LUSERR ) XLES_MEAN_Rr = XUNDEF diff --git a/src/MNH/lesn.f90 b/src/MNH/lesn.f90 index eea67385b..3eae3fc04 100644 --- a/src/MNH/lesn.f90 +++ b/src/MNH/lesn.f90 @@ -42,6 +42,7 @@ !! 10/14 (C.Lac) Correction on user masks !! 10/16 (C.Lac) Add ground droplet deposition amount !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! 02/2019 (C. Lac) Add rain fraction as a LES diagnostic !! !! -------------------------------------------------------------------------- ! @@ -107,6 +108,7 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZEW REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZINDCLD !indice cloud si rc>0 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZINDCLD2 !indice cloud rc>1E-5 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZCLDFR_LES! CLDFR on LES vertical grid +REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZRAINFR_LES! RAINFR on LES vertical grid REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZMASSF ! massflux=rho*w REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZREHU ! relative humidity @@ -333,12 +335,14 @@ IF (LUSERR) THEN ALLOCATE(ZRWP_LES(IIU,IJU)) ALLOCATE(ZINPRR3D_LES (IIU,IJU,NLES_K)) ALLOCATE(ZEVAP3D_LES (IIU,IJU,NLES_K)) + ALLOCATE(ZRAINFR_LES(IIU,IJU,NLES_K)) ELSE ALLOCATE(ZRR_LES (0,0,0)) ALLOCATE(ZMAXWRR2D(0,0)) ALLOCATE(ZRWP_LES(0,0)) ALLOCATE(ZINPRR3D_LES(0,0,0)) ALLOCATE(ZEVAP3D_LES(0,0,0)) + ALLOCATE(ZRAINFR_LES(0,0,0)) END IF IF (LUSERI) THEN ALLOCATE(ZRI_LES (IIU,IJU,NLES_K)) @@ -554,6 +558,7 @@ IF (LUSERR) THEN CALL LES_VER_INT( XRT(:,:,:,IRR) ,ZRR_LES ) CALL LES_VER_INT( XINPRR3D(:,:,:), ZINPRR3D_LES) CALL LES_VER_INT( XEVAP3D(:,:,:), ZEVAP3D_LES) + CALL LES_VER_INT( XRAINFR(:,:,:) ,ZRAINFR_LES ) END IF IF (LUSERC) THEN DO JJ=1,IJU @@ -779,6 +784,8 @@ END IF XLES_ACPRR(NLES_CURRENT_TCOUNT) ) ! conversion de m en mm XLES_ACPRR(NLES_CURRENT_TCOUNT)=XLES_ACPRR(NLES_CURRENT_TCOUNT)*1000. + CALL LES_MEAN_ll ( ZRAINFR_LES, LLES_CURRENT_CART_MASK, & + XLES_MEAN_RF(:,NLES_CURRENT_TCOUNT,1) ) ENDIF ! @@ -1041,6 +1048,7 @@ DEALLOCATE(ZINDCLD2 ) DEALLOCATE(ZINDCLD2D ) DEALLOCATE(ZINDCLD2D2) DEALLOCATE(ZCLDFR_LES) +DEALLOCATE(ZRAINFR_LES) DEALLOCATE(ZMASSF ) DEALLOCATE(ZTEMP ) DEALLOCATE(ZREHU ) diff --git a/src/MNH/modd_lesn.f90 b/src/MNH/modd_lesn.f90 index 582a56618..9fe76c3f8 100644 --- a/src/MNH/modd_lesn.f90 +++ b/src/MNH/modd_lesn.f90 @@ -40,6 +40,7 @@ !! O.Thouron June, 2008 New radiation diagnostics !! 10/2016 (C.Lac) Add droplet deposition ! P. Wautelet 08/02/2019: add missing NULL association for pointers +!! 02/2019 (C. Lac) Add rain fraction as a LES diagnostic !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -113,6 +114,7 @@ TYPE LES_t REAL, DIMENSION(:,:,:), POINTER :: XLES_MEAN_Cf=>NULL() ! <CLDFR> REAL, DIMENSION(:,:,:), POINTER :: XLES_MEAN_INDCf=>NULL() ! <Cf> tq rc>0 (0 OU 1) REAL, DIMENSION(:,:,:), POINTER :: XLES_MEAN_INDCf2=>NULL() ! <Cf> tq rc>1E-5 (0 OU 1) + REAL, DIMENSION(:,:,:), POINTER :: XLES_MEAN_RF=>NULL() ! <RAINFR> REAL, DIMENSION(:,:,:), POINTER :: XLES_MEAN_Mf=>NULL() ! <Mf> REAL, DIMENSION(:,:,:), POINTER :: XLES_MEAN_KHt=>NULL()! <Kh for thet REAL, DIMENSION(:,:,:), POINTER :: XLES_MEAN_KHr=>NULL()! <Kh for qr> @@ -694,6 +696,7 @@ REAL, DIMENSION(:,:,:), POINTER :: XLES_MEAN_Rc=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XLES_MEAN_Cf=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XLES_MEAN_INDCf=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XLES_MEAN_INDCf2=>NULL() +REAL, DIMENSION(:,:,:), POINTER :: XLES_MEAN_RF=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XLES_MEAN_Mf=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XLES_MEAN_KHt=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XLES_MEAN_KHr=>NULL() @@ -1121,6 +1124,7 @@ LES_MODEL(KFROM)%XLES_MEAN_Rc=>XLES_MEAN_Rc LES_MODEL(KFROM)%XLES_MEAN_Cf=>XLES_MEAN_Cf LES_MODEL(KFROM)%XLES_MEAN_INDCf=>XLES_MEAN_INDCf LES_MODEL(KFROM)%XLES_MEAN_INDCf2=>XLES_MEAN_INDCf2 +LES_MODEL(KFROM)%XLES_MEAN_RF=>XLES_MEAN_RF LES_MODEL(KFROM)%XLES_MEAN_Mf=>XLES_MEAN_Mf LES_MODEL(KFROM)%XLES_MEAN_KHt=>XLES_MEAN_KHt LES_MODEL(KFROM)%XLES_MEAN_KHr=>XLES_MEAN_KHr @@ -1549,6 +1553,7 @@ XLES_MEAN_Rc=>LES_MODEL(KTO)%XLES_MEAN_Rc XLES_MEAN_Cf=>LES_MODEL(KTO)%XLES_MEAN_Cf XLES_MEAN_INDCf=>LES_MODEL(KTO)%XLES_MEAN_INDCf XLES_MEAN_INDCf2=>LES_MODEL(KTO)%XLES_MEAN_INDCf2 +XLES_MEAN_RF=>LES_MODEL(KTO)%XLES_MEAN_RF XLES_MEAN_Mf=>LES_MODEL(KTO)%XLES_MEAN_Mf XLES_MEAN_KHt=>LES_MODEL(KTO)%XLES_MEAN_KHt XLES_MEAN_KHr=>LES_MODEL(KTO)%XLES_MEAN_KHr diff --git a/src/MNH/write_lesn.f90 b/src/MNH/write_lesn.f90 index 260b53bf0..033e38661 100644 --- a/src/MNH/write_lesn.f90 +++ b/src/MNH/write_lesn.f90 @@ -56,7 +56,8 @@ END MODULE MODI_WRITE_LES_n !! 11/15 (C.Lac) Add production terms of TKE !! 10/2016 (C.Lac) Add droplet deposition !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -!! +!!!! 02/2019 (C. Lac) Add rain fraction as a LES diagnostic + !! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -382,6 +383,10 @@ IF (LUSERR) & CALL LES_DIACHRO_MASKS(TPDIAFILE,"MEAN_RR ",YSUBTITLE(:), & "Mean Rr Profile"//YSUBTITLE(:),"kg kg-1",XLES_MEAN_Rr,HLES_AVG) +IF (LUSERR) & +CALL LES_DIACHRO_MASKS(TPDIAFILE,"MEAN_RF ",YSUBTITLE(:), & + "Mean RF Profile"//YSUBTITLE(:),"1",XLES_MEAN_RF,HLES_AVG) + IF (LUSERI) & CALL LES_DIACHRO_MASKS(TPDIAFILE,"MEAN_RI ",YSUBTITLE(:), & "Mean Ri Profile"//YSUBTITLE(:),"kg kg-1",XLES_MEAN_Ri,HLES_AVG) -- GitLab From 2e4b4288ba6541406e838f1f6af40a724cd605ad Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Tue, 19 Feb 2019 10:49:23 +0100 Subject: [PATCH 059/139] Philippe 19/02/2019: IO: simplification/restructuration/cleaning of open/close subroutines (to be continued) --- src/LIB/SURCOUCHE/src/mode_fm.f90 | 339 +++++++++++------------------- src/LIB/SURCOUCHE/src/mode_io.f90 | 196 +++++++---------- 2 files changed, 197 insertions(+), 338 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index 760c8710d..53c1fe8ea 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -3,25 +3,26 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- +! Author(s): +! ! Modifications: -! D.Gazen : avril 2016 change error message -! P. Wautelet : may 2016: use NetCDF Fortran module -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! Philippe Wautelet: 29/10/2018: better detection of older MNH version numbers -! Philippe Wautelet: 13/12/2018: moved some operations to new mode_io_*_nc4 modules -! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN + move management -! of NNCID and NLFIFLU to the nc4 and lfi subroutines -! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll -! to allow to disable writes (for bench purposes) +! D. Gazen April 2016: change error message +! P. Wautelet May 2016 : use NetCDF Fortran module +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 29/10/2018: better detection of older MNH version numbers +! P. Wautelet 13/12/2018: moved some operations to new mode_io_*_nc4 modules +! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN + move management +! of NNCID and NLFIFLU to the nc4 and lfi subroutines +! P. Wautelet 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll +! to allow to disable writes (for bench purposes) ! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines ! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! P. Wautelet 19/02/2019: simplification/restructuration/cleaning of open/close subroutines (TBCto be continued) !----------------------------------------------------------------- MODULE MODE_FM -USE MODD_MPIF - USE MODE_MSG IMPLICIT NONE @@ -34,10 +35,8 @@ PUBLIC IO_FILE_OPEN_ll, IO_FILE_CLOSE_ll CONTAINS SUBROUTINE SET_FMPACK_ll(O1D,O2D,OPACK) -USE MODD_IO_ll, ONLY : LPACK,L1D,L2D -!JUAN -USE MODD_VAR_ll, ONLY : IP -!JUAN +USE MODD_IO_ll, ONLY: LPACK, L1D, L2D +USE MODD_VAR_ll, ONLY: IP IMPLICIT NONE @@ -47,27 +46,27 @@ LPACK = OPACK L1D = O1D L2D = O2D -IF ( IP .EQ. 1 ) PRINT *,'INIT L1D,L2D,LPACK = ',L1D,L2D,LPACK +IF ( IP == 1 ) PRINT *,'INIT L1D,L2D,LPACK = ',L1D,L2D,LPACK END SUBROUTINE SET_FMPACK_ll SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,HPOSITION,HSTATUS,HPROGRAM_ORIG) ! -USE MODD_CONF, ONLY: CPROGRAM -USE MODD_IO_ll, ONLY: LIO_NO_WRITE, TFILEDATA -USE MODE_FMREAD -USE MODE_IO_ll, ONLY : OPEN_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST,IO_FILE_FIND_BYNAME +USE MODD_CONF, ONLY: CPROGRAM +USE MODD_IO_ll, ONLY: LIO_NO_WRITE, TFILEDATA ! -TYPE(TFILEDATA),POINTER,INTENT(INOUT) :: TPFILE ! File structure -INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! Return code -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPOSITION -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HSTATUS -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program +USE MODE_IO_ll, ONLY: OPEN_ll +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME ! -INTEGER :: IRESP -TYPE(TFILEDATA),POINTER :: TZFILE_DES -TYPE(TFILEDATA),POINTER :: TZFILE_DUMMY +TYPE(TFILEDATA), POINTER, INTENT(INOUT) :: TPFILE ! File structure +INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! Return code +CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPOSITION +CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HSTATUS +CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program +! +INTEGER :: IRESP +TYPE(TFILEDATA), POINTER :: TZFILE_DES +TYPE(TFILEDATA), POINTER :: TZFILE_DUMMY ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_OPEN_ll','opening '//TRIM(TPFILE%CNAME)//' for '//TRIM(TPFILE%CMODE)// & ' (filetype='//TRIM(TPFILE%CTYPE)//')') @@ -98,42 +97,42 @@ IF (IRESP/=0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_OPEN_ll','file '//TRIM(TP SELECT CASE(TPFILE%CTYPE) !Chemistry input files CASE('CHEMINPUT') - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,POSITION='REWIND',STATUS='OLD',MODE='GLOBAL') + CALL OPEN_ll(TPFILE,IRESP,HPOSITION='REWIND',HSTATUS='OLD',HMODE='GLOBAL') !Chemistry tabulation files CASE('CHEMTAB') - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,MODE='GLOBAL') + CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') !GPS files CASE('GPS') - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,MODE='SPECIFIC') + CALL OPEN_ll(TPFILE,IRESP,HMODE='SPECIFIC') !Meteo files CASE('METEO') - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,MODE='GLOBAL') + CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') !Namelist files CASE('NML') - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,DELIM='QUOTE',MODE='GLOBAL') + CALL OPEN_ll(TPFILE,IRESP,HDELIM='QUOTE',HMODE='GLOBAL') !OUTPUTLISTING files CASE('OUTPUTLISTING') - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,MODE='GLOBAL') + CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') !SURFACE_DATA files CASE('SURFACE_DATA') - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,MODE='GLOBAL') + CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') !Text files CASE('TXT') - CALL OPEN_ll(TPFILE,IOSTAT=IRESP,POSITION=HPOSITION,STATUS=HSTATUS,MODE='GLOBAL') + CALL OPEN_ll(TPFILE,IRESP,HPOSITION=HPOSITION,HSTATUS=HSTATUS,HMODE='GLOBAL') CASE DEFAULT @@ -141,7 +140,7 @@ SELECT CASE(TPFILE%CTYPE) IF(TPFILE%CTYPE/='MNHOUTPUT' .AND. CPROGRAM/='LFICDF') THEN CALL IO_FILE_ADD2LIST(TZFILE_DES,TRIM(TPFILE%CNAME)//'.des','DES',TPFILE%CMODE,TPDATAFILE=TPFILE,OOLD=.TRUE.) !OOLD=T because the file may already be in the list CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_OPEN_ll','OPEN_ll for '//TRIM(TPFILE%CNAME)//'.des') - CALL OPEN_ll(TZFILE_DES,IOSTAT=IRESP,DELIM='QUOTE') + CALL OPEN_ll(TZFILE_DES,IRESP,HDELIM='QUOTE') TZFILE_DES%LOPENED = .TRUE. TZFILE_DES%NOPEN_CURRENT = TZFILE_DES%NOPEN_CURRENT + 1 TZFILE_DES%NOPEN = TZFILE_DES%NOPEN + 1 @@ -155,29 +154,26 @@ IF (PRESENT(KRESP)) KRESP = IRESP ! END SUBROUTINE IO_FILE_OPEN_ll + SUBROUTINE FMOPEN_ll(TPFILE,KRESP,HPROGRAM_ORIG) -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODE_IO_ll, ONLY: OPEN_ll,GCONFIO -!JUANZ -USE MODD_CONFZ,ONLY : NB_PROCIO_R,NB_PROCIO_W -!JUANZ + +USE MODD_IO_ll, ONLY: TFILEDATA + #if defined(MNH_IOCDF4) -USE MODD_NETCDF, ONLY:IDCDF_KIND use mode_io_file_nc4, only: io_create_file_nc4, io_open_file_nc4 #endif use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi +USE MODE_IO_ll, ONLY: OPEN_ll, GCONFIO -TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure -INTEGER, INTENT(OUT) :: KRESP ! return-code -CHARACTER(LEN=*),INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program +TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure +INTEGER, INTENT(OUT) :: KRESP ! return-code +CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HPROGRAM_ORIG !To emulate a file coming from this program ! ! Local variables ! -INTEGER :: IROWF, IRESP +INTEGER :: IRESP CHARACTER(LEN=7) :: YACTION ! Action upon the file ('READ' or 'WRITE') CHARACTER(LEN=8) :: YRESP -INTEGER :: IERR -INTEGER :: INB_PROCIO LOGICAL :: GEXIST_LFI, GEXIST_NC4 YACTION = TPFILE%CMODE @@ -190,26 +186,9 @@ IF (.NOT. GCONFIO) THEN STOP END IF -IROWF = 0 IRESP = 0 -IROWF=LEN_TRIM(TPFILE%CNAME) - -IF (IROWF.EQ.0) THEN - IRESP=-45 - GOTO 1000 -ENDIF - - SELECT CASE (YACTION) - CASE('READ') - INB_PROCIO = NB_PROCIO_R - CASE('WRITE') - INB_PROCIO = NB_PROCIO_W - END SELECT - -CALL OPEN_ll(TPFILE,IOSTAT=IRESP,MODE='IO_ZSPLIT',HPROGRAM_ORIG=HPROGRAM_ORIG) - -IF (IRESP /= 0) GOTO 1000 +CALL OPEN_ll(TPFILE,IRESP,HMODE='IO_ZSPLIT',HPROGRAM_ORIG=HPROGRAM_ORIG) IF (TPFILE%LMASTER) THEN ! Proc I/O case @@ -277,14 +256,7 @@ IF (TPFILE%CFORMAT=='LFI' .OR. TPFILE%CFORMAT=='LFICDF4') THEN END SELECT END IF -! Broadcast ERROR -CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) -IF (IRESP /= 0) GOTO 1000 - - -1000 CONTINUE - -IF (IRESP.NE.0) THEN +IF ( IRESP /= 0 ) THEN WRITE(YRESP,"( I0 )") IRESP CALL PRINT_MSG(NVERB_ERROR,'IO','FMOPEN_ll',TRIM(TPFILE%CNAME)//': exit with IRESP='//TRIM(YRESP)) END IF @@ -293,16 +265,23 @@ KRESP=IRESP END SUBROUTINE FMOPEN_ll + SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,HPROGRAM_ORIG) ! -USE MODD_CONF, ONLY: CPROGRAM -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODE_IO_ll, ONLY : CLOSE_ll +USE MODD_CONF, ONLY: CPROGRAM +USE MODD_IO_ll, ONLY: TFILEDATA + +use mode_io_file_lfi, only: io_close_file_lfi +#if defined(MNH_IOCDF4) +use mode_io_file_nc4, only: io_close_file_nc4 +use mode_io_write_nc4, only: io_write_coordvar_nc4 +#endif +USE MODE_IO_ll, ONLY: CLOSE_ll USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME ! -TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure -INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! Return code -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program +TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure +INTEGER, OPTIONAL, INTENT(OUT) :: KRESP ! Return code +CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HPROGRAM_ORIG !To emulate a file coming from this program ! INTEGER :: IRESP, JI TYPE(TFILEDATA),POINTER :: TZFILE_DES @@ -331,62 +310,11 @@ IF (TPFILE%NOPEN_CURRENT>1) THEN END IF ! SELECT CASE(TPFILE%CTYPE) - !Chemistry input files - CASE('CHEMINPUT') - CALL CLOSE_ll(TPFILE,IOSTAT=IRESP) - ! - TPFILE%NLU = -1 - - - !Chemistry tabulation files - CASE('CHEMTAB') - CALL CLOSE_ll(TPFILE,IOSTAT=IRESP) + CASE('CHEMINPUT','CHEMTAB','GPS','METEO','NML','OUTPUTLISTING','SURFACE_DATA','TXT') + CALL CLOSE_ll(TPFILE,IRESP) ! TPFILE%NLU = -1 - - !GPS files - CASE('GPS') - CALL CLOSE_ll(TPFILE,IOSTAT=IRESP) - ! - TPFILE%NLU = -1 - - - !Meteo files - CASE('METEO') - CALL CLOSE_ll(TPFILE,IOSTAT=IRESP) - ! - TPFILE%NLU = -1 - - - !Namelist files - CASE('NML') - CALL CLOSE_ll(TPFILE,IOSTAT=IRESP) - ! - TPFILE%NLU = -1 - - - !OUTPUTLISTING files - CASE('OUTPUTLISTING') - CALL CLOSE_ll(TPFILE,IOSTAT=IRESP) - ! - TPFILE%NLU = -1 - - - !SURFACE_DATA files - CASE('SURFACE_DATA') - CALL CLOSE_ll(TPFILE,IOSTAT=IRESP) - ! - TPFILE%NLU = -1 - - - !Text files - CASE('TXT') - CALL CLOSE_ll(TPFILE,IOSTAT=IRESP) - ! - TPFILE%NLU = -1 - - CASE DEFAULT !Do not close (non-existing) '.des' file if OUTPUT IF(TPFILE%CTYPE/='OUTPUT' .AND. CPROGRAM/='LFICDF') THEN @@ -397,15 +325,29 @@ SELECT CASE(TPFILE%CTYPE) TZFILE_DES%NCLOSE = TZFILE_DES%NCLOSE + 1 ! IF (TZFILE_DES%NOPEN_CURRENT==0) THEN - CALL CLOSE_ll(TZFILE_DES,IOSTAT=IRESP) + CALL CLOSE_ll(TZFILE_DES,IRESP) TZFILE_DES%LOPENED = .FALSE. TZFILE_DES%NLU = -1 END IF ENDIF ! - CALL FMCLOS_ll(TPFILE,KRESP=IRESP,HPROGRAM_ORIG=HPROGRAM_ORIG) +#if defined(MNH_IOCDF4) + !Write coordinates variables in NetCDF file + IF (TPFILE%CMODE == 'WRITE' .AND. (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4')) THEN + CALL IO_WRITE_COORDVAR_NC4(TPFILE,HPROGRAM_ORIG=HPROGRAM_ORIG) + END IF +#endif + + if (tpfile%lmaster) then + if (tpfile%cformat == 'LFI' .or. tpfile%cformat == 'LFICDF4') call io_close_file_lfi(tpfile,iresp) +#if defined(MNH_IOCDF4) + if (tpfile%cformat == 'NETCDF4' .or. tpfile%cformat == 'LFICDF4') call io_close_file_nc4(tpfile,iresp) +#endif + end if + ! + CALL IO_ADD2TRANSFER_LIST(TPFILE) ! - DO JI = 1,TPFILE%NSUBFILES_IOZ + SUBFILES: DO JI = 1,TPFILE%NSUBFILES_IOZ TZFILE_IOZ => TPFILE%TFILES_IOZ(JI)%TFILE IF (.NOT.TZFILE_IOZ%LOPENED) & CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_CLOSE_ll','file '//TRIM(TZFILE_IOZ%CNAME)//' is not opened') @@ -415,7 +357,19 @@ SELECT CASE(TPFILE%CTYPE) TZFILE_IOZ%LOPENED = .FALSE. TZFILE_IOZ%NOPEN_CURRENT = 0 TZFILE_IOZ%NCLOSE = TZFILE_IOZ%NCLOSE + 1 - END DO +#if defined(MNH_IOCDF4) + !Write coordinates variables in netCDF file + IF (TZFILE_IOZ%CMODE == 'WRITE' .AND. (TZFILE_IOZ%CFORMAT=='NETCDF4' .OR. TZFILE_IOZ%CFORMAT=='LFICDF4')) THEN + CALL IO_WRITE_COORDVAR_NC4(TZFILE_IOZ,HPROGRAM_ORIG=HPROGRAM_ORIG) + END IF +#endif + IF (TZFILE_IOZ%LMASTER) THEN + if (tzfile_ioz%cformat == 'LFI' .or. tzfile_ioz%cformat == 'LFICDF4') call io_close_file_lfi(tzfile_ioz,iresp) +#if defined(MNH_IOCDF4) + if (tzfile_ioz%cformat == 'NETCDF4' .or. tzfile_ioz%cformat == 'LFICDF4') call io_close_file_nc4(tzfile_ioz,iresp) +#endif + END IF + END DO SUBFILES END SELECT ! TPFILE%LOPENED = .FALSE. @@ -426,106 +380,53 @@ IF (PRESENT(KRESP)) KRESP=IRESP ! END SUBROUTINE IO_FILE_CLOSE_ll -SUBROUTINE FMCLOS_ll(TPFILE,KRESP,HPROGRAM_ORIG) -! -!! MODIFICATIONS -!! ------------- -! -!! J.Escobar 18/10/10 bug with PGI compiler on ADJUSTL -!------------------------------------------------------------------------------- + +subroutine IO_ADD2TRANSFER_LIST(TPFILE) + USE MODD_CONF, ONLY : CPROGRAM USE MODD_IO_ll, ONLY : TFILEDATA -USE MODE_IO_ll, ONLY : CLOSE_ll,UPCASE -USE MODI_SYSTEM_MNH - use mode_io_file_lfi, only: io_close_file_lfi -#if defined(MNH_IOCDF4) - use mode_io_file_nc4, only: io_close_file_nc4 - use mode_io_write_nc4, only: io_write_coordvar_nc4 -#endif -TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure -INTEGER, INTENT(OUT) :: KRESP ! return-code if problems araised -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program - -INTEGER :: IRESP,IROWF -CHARACTER(LEN=28) :: YFILEM ! name of the file -CHARACTER(LEN=8) :: YRESP -CHARACTER(LEN=10) :: YCPIO -CHARACTER(LEN=14) :: YTRANS -CHARACTER(LEN=100) :: YCOMMAND -INTEGER :: IERR, IFITYP -INTEGER, SAVE :: ICPT=0 - -YFILEM = TPFILE%CNAME -CALL PRINT_MSG(NVERB_DEBUG,'IO','FMCLOS_ll','closing '//TRIM(YFILEM)) +USE MODI_SYSTEM_MNH -IRESP = 0 -IROWF = 0 +TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure -IROWF=LEN_TRIM(YFILEM) +CHARACTER(len=:),allocatable :: YFILEM ! name of the file +CHARACTER(len=:),allocatable :: YCPIO +CHARACTER(len=:),allocatable :: YTRANS +CHARACTER(LEN=100) :: YCOMMAND +INTEGER, SAVE :: ICPT = 0 -IF (IROWF.EQ.0) THEN - IRESP=-59 - GOTO 1000 -ENDIF +YFILEM = TPFILE%CNAME -#if defined(MNH_IOCDF4) -!Write coordinates variables in NetCDF file -IF (TPFILE%CMODE == 'WRITE' .AND. (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4')) THEN - CALL IO_WRITE_COORDVAR_NC4(TPFILE,HPROGRAM_ORIG=HPROGRAM_ORIG) -END IF -#endif +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_ADD2TRANSFER_LIST','called for '//TRIM(YFILEM)) -IF (TPFILE%LMASTER) THEN - if (tpfile%cformat == 'LFI' .or. tpfile%cformat == 'LFICDF4') call io_close_file_lfi(tpfile,iresp) -#if defined(MNH_IOCDF4) - if (tpfile%cformat == 'NETCDF4' .or. tpfile%cformat == 'LFICDF4') call io_close_file_nc4(tpfile,iresp) -#endif - IF (IRESP == 0 .AND. CPROGRAM/='LFICDF') THEN - !! Write in pipe +IF (TPFILE%LMASTER .AND. CPROGRAM/='LFICDF') THEN + !! Write in pipe #if defined(MNH_SX5) - YTRANS='nectransfer.x' + YTRANS='nectransfer.x' #else - YTRANS='xtransfer.x' + YTRANS='xtransfer.x' #endif - IFITYP = TPFILE%NLFITYPE - SELECT CASE (IFITYP) - CASE(:-1) - IRESP=-66 - GOTO 500 + SELECT CASE (TPFILE%NLFITYPE) + CASE(:-1,3:) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_ADD2TRANSFER_LIST',TRIM(YFILEM)//': incorrect NLFITYPE') CASE(0) YCPIO='NIL' CASE(1) YCPIO='MESONH' CASE(2) - CALL PRINT_MSG(NVERB_INFO,'IO','FMCLOS_ll','file '//TRIM(YFILEM)//' not transferred') - GOTO 500 - CASE(3:) - IRESP=-66 - GOTO 500 - END SELECT + CALL PRINT_MSG(NVERB_INFO,'IO','IO_ADD2TRANSFER_LIST','file '//TRIM(YFILEM)//' not transferred') + END SELECT + + if (TPFILE%NLFITYPE==0 .or. TPFILE%NLFITYPE==1) then ICPT=ICPT+1 - WRITE (YCOMMAND,'(A," ",A," ",A," >> OUTPUT_TRANSFER",I3.3," 2>&1 &")') TRIM(YTRANS),TRIM(YCPIO),TRIM(YFILEM),ICPT - CALL PRINT_MSG(NVERB_INFO,'IO','FMCLOS_ll','YCOMMAND='//TRIM(YCOMMAND)) + WRITE (YCOMMAND,'(A," ",A," ",A," >> OUTPUT_TRANSFER",I3.3," 2>&1 &")') YTRANS,YCPIO,TRIM(YFILEM),ICPT + CALL PRINT_MSG(NVERB_INFO,'IO','IO_ADD2TRANSFER_LIST','YCOMMAND='//TRIM(YCOMMAND)) CALL SYSTEM_MNH(YCOMMAND) - END IF + end if END IF -500 CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) -IF (IRESP /= 0) GOTO 1000 - -CALL CLOSE_ll(TPFILE,IOSTAT=IRESP) - -1000 CONTINUE - -IF (IRESP.NE.0) THEN - WRITE(YRESP,"( I0 )") IRESP - CALL PRINT_MSG(NVERB_ERROR,'IO','FMCLOS_ll',TRIM(YFILEM)//': exit with IRESP='//TRIM(YRESP)) -END IF - -KRESP=IRESP - -END SUBROUTINE FMCLOS_ll +end subroutine IO_ADD2TRANSFER_LIST END MODULE MODE_FM diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index b4f6ba125..1f86e1553 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -3,32 +3,32 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!! Authors -!! ------- -! -! D. Gazen -! Juan 19/08/2005: bug argument optinonel ACCESS --> YACCESS -! Juan 22/05/2008: bug mode SPECIFIC in OPEN_ll -! Juan 05/11/2009: allow JPMAX_UNIT=48 open files -! J.Escobar 18/10/10 bug with PGI compiler on ADJUSTL -! P. Wautelet 04/02/2016: bug with DELIM='NONE' and GCC 5.2/5.3 -! D.Gazen : avril 2016 change error message -! P. Wautelet : may 2016: use netCDF Fortran module -! P. Wautelet : July 2016: added type OUTBAK -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! J. Pianezze 01/08/2016 add LOASIS flag -! Philippe Wautelet: 13/12/2018: moved some operations to new mode_io_*_nc4 modules -! Philippe Wautelet: 10/01/2019: bug correction: close correctly Z-split files -! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN -! + move IOFREEFLU and IONEWFLU to mode_io_file_lfi.f90 -! + move management of NNCID and NLFIFLU to the nc4 and lfi subroutines -! Philippe Wautelet: 10/01/2019: bug: modify some metadata before open calls -! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll to allow -! to disable writes (for bench purposes) +! Author(s) +! D. Gazen +! Modifications: +! J. Escobar 19/08/2005: bug argument optinonel ACCESS --> YACCESS +! J. Escobar 22/05/2008: bug mode SPECIFIC in OPEN_ll +! J. Escobar 05/11/2009: allow JPMAX_UNIT=48 open files +! J. Escobar 18/10/2010: bug with PGI compiler on ADJUSTL +! P. Wautelet 04/02/2016: bug with DELIM='NONE' and GCC 5.2/5.3 +! D.Gazen April 2016: change error message +! P. Wautelet May 2016 : use netCDF Fortran module +! P. Wautelet July 2016 : added type OUTBAK +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! J. Pianezze 01/08/2016: add LOASIS flag +! P. Wautelet 13/12/2018: moved some operations to new mode_io_*_nc4 modules +! P. Wautelet 10/01/2019: bug correction: close correctly Z-split files +! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN +! + move IOFREEFLU and IONEWFLU to mode_io_file_lfi.f90 +! + move management of NNCID and NLFIFLU to the nc4 and lfi subroutines +! P. Wautelet 10/01/2019: bug: modify some metadata before open calls +! P. Wautelet 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll to allow +! to disable writes (for bench purposes) ! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines ! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) ! P. Wautelet 14/02/2019: move UPCASE function to tools.f90 +! P. Wautelet 19/02/2019: simplification/restructuration/cleaning of open/close subroutines (TBCto be continued) ! !----------------------------------------------------------------- MODULE MODE_IO_ll @@ -50,7 +50,7 @@ MODULE MODE_IO_ll CONTAINS SUBROUTINE SET_CONFIO_ll() - USE MODN_CONFIO + USE MODN_CONFIO, only: LCDF4, LLFIOUT, LLFIREAD !Use MODN_CONFIO namelist variables CALL SET_CONFIO_INTERN_ll(LCDF4, LLFIOUT, LLFIREAD) @@ -58,6 +58,7 @@ CONTAINS SUBROUTINE SET_CONFIO_INTERN_ll(OIOCDF4, OLFIOUT, OLFIREAD) USE MODD_IO_ll, ONLY : LIOCDF4, LLFIOUT, LLFIREAD, LIO_ALLOW_NO_BACKUP, LIO_NO_WRITE + LOGICAL, INTENT(IN) :: OIOCDF4, OLFIOUT, OLFIREAD CALL PRINT_MSG(NVERB_DEBUG,'IO','SET_CONFIO_ll','called') @@ -91,12 +92,14 @@ CONTAINS END SUBROUTINE SET_CONFIO_INTERN_ll SUBROUTINE INITIO_ll() + USE MODD_IO_ll, only: CNULLFILE, GSMONOPROC, ISIOP, ISNPROC, ISP, NNULLUNIT + USE MODE_MNH_WORLD, ONLY: INIT_NMNH_COMM_WORLD - USE MODD_IO_ll - USE MODE_FIELD + IMPLICIT NONE INTEGER :: IERR, IOS + character(len=256) :: yioerrmsg CALL PRINT_MSG(NVERB_DEBUG,'IO','INITIO_ll','called') @@ -118,27 +121,20 @@ CONTAINS !! Open /dev/null for GLOBAL mode #if defined(DEV_NULL) - OPEN(NEWUNIT=NNULLUNIT,FILE=CNULLFILE ,ACTION='WRITE',IOSTAT=IOS) + OPEN(NEWUNIT=NNULLUNIT,FILE=CNULLFILE ,ACTION='WRITE',IOSTAT=IOS, IOMSG=yioerrmsg) #else - OPEN(NEWUNIT=NNULLUNIT,STATUS='SCRATCH',ACTION='WRITE',IOSTAT=IOS) + OPEN(NEWUNIT=NNULLUNIT,STATUS='SCRATCH',ACTION='WRITE',IOSTAT=IOS, IOMSG=yioerrmsg) #endif - IF (IOS > 0) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','INITIO_ll','error opening /dev/null') + IF (IOS /= 0) THEN + CALL PRINT_MSG(NVERB_FATAL,'IO','INITIO_ll','problem opening /dev/null :'//trim(yioerrmsg)) END IF END SUBROUTINE INITIO_ll - SUBROUTINE OPEN_ll(& - TPFILE, & - IOSTAT, & - MODE, & - STATUS, & - POSITION,& - DELIM, & - HPROGRAM_ORIG) + + SUBROUTINE OPEN_ll(TPFILE, KRESP, HMODE, HSTATUS, HPOSITION, HDELIM, HPROGRAM_ORIG) USE MODD_IO_ll #if defined(MNH_IOCDF4) - USE MODD_NETCDF, ONLY:IDCDF_KIND use mode_io_file_nc4, only: io_create_file_nc4, io_open_file_nc4 #endif use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi @@ -146,37 +142,37 @@ CONTAINS use mode_io_tools, only: io_rank use mode_tools, only: upcase - TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE - INTEGER, INTENT(OUT) :: IOSTAT - CHARACTER(len=*),INTENT(IN), OPTIONAL :: MODE - CHARACTER(len=*),INTENT(IN), OPTIONAL :: STATUS - CHARACTER(len=*),INTENT(IN), OPTIONAL :: POSITION - CHARACTER(len=*),INTENT(IN), OPTIONAL :: DELIM - CHARACTER(LEN=*),INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program + TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE + INTEGER, INTENT(OUT) :: KRESP + CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HMODE + CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HSTATUS + CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HPOSITION + CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HDELIM + CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HPROGRAM_ORIG !To emulate a file coming from this program ! ! local var ! - CHARACTER(len=5) :: CFILE - INTEGER :: IFILE, IRANK_PROCIO - CHARACTER(len=20) :: YSTATUS - INTEGER :: YRECL - INTEGER ,PARAMETER :: RECL_DEF = 10000 - CHARACTER(len=20) :: YPOSITION - CHARACTER(len=20) :: YDELIM - CHARACTER(len=20) :: YACTION - CHARACTER(len=20) :: YMODE - CHARACTER(LEN=256) :: YIOERRMSG - INTEGER :: IOS,IRESP - TYPE(TFILEDATA),POINTER :: TZSPLITFILE + INTEGER, PARAMETER :: RECL_DEF = 10000 + ! + CHARACTER(len=5) :: YFILE + CHARACTER(len=20) :: YSTATUS + CHARACTER(len=20) :: YPOSITION + CHARACTER(len=20) :: YDELIM + CHARACTER(len=20) :: YACTION + CHARACTER(len=20) :: YMODE + CHARACTER(LEN=256) :: YIOERRMSG CHARACTER(LEN=:),ALLOCATABLE :: YPREFILENAME !To store the directory + filename - CHARACTER(LEN=:),ALLOCATABLE :: YFORSTATUS ! Status for open of a file (for LFI) ('OLD','NEW','UNKNOWN','SCRATCH','REPLACE') + INTEGER :: IFILE, IRANK_PROCIO + INTEGER :: YRECL + INTEGER :: IOS, IRESP + TYPE(TFILEDATA),POINTER :: TZSPLITFILE CALL PRINT_MSG(NVERB_DEBUG,'IO','OPEN_ll','opening '//TRIM(TPFILE%CNAME)//' for '//TRIM(TPFILE%CMODE)) IOS = 0 - IF (PRESENT(MODE)) THEN - YMODE = MODE + IF (PRESENT(HMODE)) THEN + YMODE = HMODE YMODE = UPCASE(TRIM(ADJUSTL(YMODE))) ELSE YMODE = 'GLOBAL' ! Default Mode @@ -185,21 +181,21 @@ CONTAINS YACTION = TPFILE%CMODE YACTION = UPCASE(TRIM(ADJUSTL(YACTION))) IF (YACTION /= "READ" .AND. YACTION /= "WRITE") THEN - IOSTAT = 99 + KRESP = 99 TPFILE%NLU = -1 CALL PRINT_MSG(NVERB_ERROR,'IO','OPEN_ll','action='//TRIM(YACTION)//' not supported') RETURN END IF IF (.NOT. ANY(YMODE == (/'GLOBAL ','SPECIFIC ', 'IO_ZSPLIT '/))) THEN - IOSTAT = 99 + KRESP = 99 TPFILE%NLU = -1 CALL PRINT_MSG(NVERB_ERROR,'IO','OPEN_ll','ymode='//TRIM(YMODE)//' not supported') RETURN END IF - IF (PRESENT(STATUS)) THEN - YSTATUS=STATUS + IF (PRESENT(HSTATUS)) THEN + YSTATUS=HSTATUS ELSE YSTATUS='UNKNOWN' ENDIF @@ -210,13 +206,13 @@ CONTAINS YRECL = TPFILE%NRECL END IF - IF (PRESENT(POSITION)) THEN - YPOSITION=POSITION + IF (PRESENT(HPOSITION)) THEN + YPOSITION=HPOSITION ELSE YPOSITION='ASIS' ENDIF - IF (PRESENT(DELIM)) THEN - YDELIM=DELIM + IF (PRESENT(HDELIM)) THEN + YDELIM=HDELIM ELSE YDELIM='NONE' ENDIF @@ -399,18 +395,18 @@ CONTAINS END IF DO IFILE=1,TPFILE%NSUBFILES_IOZ IRANK_PROCIO = 1 + IO_RANK(IFILE-1,ISNPROC,TPFILE%NSUBFILES_IOZ) - WRITE(CFILE ,'(".Z",i3.3)') IFILE + WRITE(YFILE ,'(".Z",i3.3)') IFILE - CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//TRIM(CFILE),TZSPLITFILE,IRESP) + CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//TRIM(YFILE),TZSPLITFILE,IRESP) IF (IRESP/=0) THEN !File not yet in filelist => add it (nothing to do if already in list) IF (ALLOCATED(TPFILE%CDIRNAME)) THEN - CALL IO_FILE_ADD2LIST(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(CFILE),TPFILE%CTYPE,TPFILE%CMODE, & + CALL IO_FILE_ADD2LIST(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & HDIRNAME=TPFILE%CDIRNAME, & KLFINPRAR=TPFILE%NLFINPRAR,KLFITYPE=TPFILE%NLFITYPE,KLFIVERB=TPFILE%NLFIVERB, & HFORMAT=TPFILE%CFORMAT) ELSE - CALL IO_FILE_ADD2LIST(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(CFILE),TPFILE%CTYPE,TPFILE%CMODE, & + CALL IO_FILE_ADD2LIST(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & KLFINPRAR=TPFILE%NLFINPRAR,KLFITYPE=TPFILE%NLFITYPE,KLFIVERB=TPFILE%NLFIVERB, & HFORMAT=TPFILE%CFORMAT) END IF @@ -471,7 +467,7 @@ CONTAINS TPFILE%NMPICOMM = NMNH_COMM_WORLD - IOSTAT = IOS + KRESP = IOS CONTAINS FUNCTION SUFFIX(HEXT) @@ -485,30 +481,19 @@ CONTAINS END SUBROUTINE OPEN_ll - SUBROUTINE CLOSE_ll(TPFILE,IOSTAT,HPROGRAM_ORIG) - USE MODD_IO_ll - USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME - use mode_io_file_lfi, only: io_close_file_lfi -#if defined(MNH_IOCDF4) - use mode_io_file_nc4, only: io_close_file_nc4 - use mode_io_write_nc4, only: io_write_coordvar_nc4 -#endif - TYPE(TFILEDATA), INTENT(IN) :: TPFILE - INTEGER, INTENT(OUT), OPTIONAL :: IOSTAT - CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program + SUBROUTINE CLOSE_ll(TPFILE,KRESP) + USE MODD_IO_ll + + TYPE(TFILEDATA), INTENT(IN) :: TPFILE + INTEGER, INTENT(OUT) :: KRESP character(len=256) :: yioerrmsg - INTEGER :: IERR, IGLOBALERR, IGLOBALERR2, IRESP, IRESP2 - INTEGER :: IFILE - TYPE(TFILEDATA),POINTER :: TZFILE + INTEGER :: IRESP CALL PRINT_MSG(NVERB_DEBUG,'IO','CLOSE_ll','closing '//TRIM(TPFILE%CNAME)) IRESP = 0 - IRESP2 = 0 - IGLOBALERR = 0 - IGLOBALERR2 = 0 IF (TPFILE%LMASTER) THEN IF (TPFILE%NLU/=-1 .AND. TPFILE%NLU/=NNULLUNIT) THEN @@ -519,37 +504,10 @@ CONTAINS !Warning and not error or fatal if close fails to allow continuation of execution IF (IRESP/=0) CALL PRINT_MSG(NVERB_WARNING,'IO','CLOSE_ll','Problem when closing '//TRIM(TPFILE%CNAME)//': '//TRIM(YIOERRMSG)) - DO IFILE=1,TPFILE%NSUBFILES_IOZ - TZFILE => TPFILE%TFILES_IOZ(IFILE)%TFILE -#if defined(MNH_IOCDF4) - !Write coordinates variables in netCDF file - IF (TZFILE%CMODE == 'WRITE' .AND. (TZFILE%CFORMAT=='NETCDF4' .OR. TZFILE%CFORMAT=='LFICDF4')) THEN - CALL IO_WRITE_COORDVAR_NC4(TZFILE,HPROGRAM_ORIG=HPROGRAM_ORIG) - END IF -#endif - IF (TZFILE%LMASTER) THEN - if (tzfile%cformat == 'LFI' .or. tzfile%cformat == 'LFICDF4') call io_close_file_lfi(tzfile,iresp2) -#if defined(MNH_IOCDF4) - if (tzfile%cformat == 'NETCDF4' .or. tzfile%cformat == 'LFICDF4') call io_close_file_nc4(tzfile,iresp2) -#endif - END IF - END DO - ! - IF (TPFILE%NSUBFILES_IOZ>0) CALL MPI_ALLREDUCE(IRESP2,IGLOBALERR2,1,MPI_INTEGER,MPI_BOR,TPFILE%NMPICOMM,IERR) - ! - CALL MPI_ALLREDUCE(IRESP, IGLOBALERR, 1,MPI_INTEGER,MPI_BOR,TPFILE%NMPICOMM,IERR) - - IF (PRESENT(IOSTAT)) THEN - IF (IGLOBALERR/=0) THEN - IOSTAT = IGLOBALERR - ELSE - IOSTAT = IGLOBALERR2 - END IF - END IF + KRESP = IRESP END SUBROUTINE CLOSE_ll - ! - ! + END MODULE MODE_IO_ll -- GitLab From ed3ae341c5417c9e27771cd514d09786d7cd7603 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Tue, 19 Feb 2019 14:08:37 +0100 Subject: [PATCH 060/139] Quentin 19/02/2019: adapt the chemistry-namelist for ICARTT KTEST to the new BASIC.f90 (commit of 14/02/2019) + add MNH_MEGAN in profile_mesonh.ihm --- .../009_ICARTT/003_mesonh/ReLACS_poet.nam | 27 +++++++++++-------- conf/profile_mesonh.ihm | 4 +++ 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/MY_RUN/KTEST/009_ICARTT/003_mesonh/ReLACS_poet.nam b/MY_RUN/KTEST/009_ICARTT/003_mesonh/ReLACS_poet.nam index 95e3e203b..915324567 100644 --- a/MY_RUN/KTEST/009_ICARTT/003_mesonh/ReLACS_poet.nam +++ b/MY_RUN/KTEST/009_ICARTT/003_mesonh/ReLACS_poet.nam @@ -25,7 +25,7 @@ different norm-profile =================================================================== NORMINIT -initial values (units are par per part = MIX) +!initial values (units are par per part = MIX) MIX 37 (1X,A12,1X,E17.2) @@ -120,9 +120,9 @@ norm-profiles to be associated SURF_RES surface resistances (s/m), refer to Seinfeld and Pandis, 1998, p. 975, Tab.19.2 - 1 -(A32,2E15.5) -NONE 0.0 +1 +(1X,A12,1X,F5.0) +'NONE ' 0.0 ===================================================================== *** the following section will be read by ch_init_depconst.F90 *** @@ -281,6 +281,8 @@ CON ================================================================ *** the following section will be read by build_pronoslistn.F90 *** *** <called by ch_init_emissionn.F90> *** +* Format: Nom espece pronostic Meso-NH - Facteur Aggregation - NOM ESPECE EMISE +* expl: NO (espece Meso-NH) 0.70 (facteur aggregation) ANOX (espece emise PGD) ================================================================ AGREGATION @@ -291,11 +293,14 @@ CO 1. COBB 1. COBIO 1. COAN NO 0.7 NOXBB 0.7 NOXAN NO2 0.3 NOXBB 0.3 NOXAN HCHO 1. CH2OBB 1. CH2OAN -BIO 1. ISOPBIO 1. TERPBIO -ETH 1. C2H6BB 1. C2H6BIO 1. C2H6AN -ARO 1. TOLUBB 1. TOLUAN -ALD 1. CH3CHOBB 1. CH3CHOAN -KET 0.33 ACETBB 0.33 ACETBIO 0.33 ACETAN 1.61 MEKBB 1.61 MEKAN -ALKE 0.96 C2H4BB 0.96 C2H4BIO 0.96 C2H4AN 1.04 C3H6BB 1.04 C3H6BIO 1.04 C3H6AN 1.04 BUTEBB 1.04 BUTEAN -ALKA 0.44 C3H8BB 0.44 C3H8BIO 0.44 C3H8AN 0.38 CH3OHBB 0.38 CH3OHBIO 0.38 CH3OHAN 1. BUTABB 1. BUTAAN 1. C2H5OHBB 1. C2H5OHAN +BIOL 1. ISOPBIO 1. TERPBIO +BIOH 1. ISOPBIO 1. TERPBIO +ETHE 1. C2H6BB 1. C2H6BIO 1. C2H6AN +AROH 1. TOLUBB 1. TOLUAN +AROL 1. TOLUBB 1. TOLUAN +AROO 1. TOLUBB 1. TOLUAN +ALD2 1. CH3CHOBB 1. CH3CHOAN +KETL 0.33 ACETBB 0.33 ACETBIO 0.33 ACETAN 1.61 MEKBB 1.61 MEKAN +KETH 0.33 ACETBB 0.33 ACETBIO 0.33 ACETAN 1.61 MEKBB 1.61 MEKAN + END_AGREGATION diff --git a/conf/profile_mesonh.ihm b/conf/profile_mesonh.ihm index ca9d6bb8f..7a9aa3618 100755 --- a/conf/profile_mesonh.ihm +++ b/conf/profile_mesonh.ihm @@ -116,6 +116,10 @@ export VER_OASIS=${VER_OASIS} # export VERSION_NCL=${VERSION_NCL} # +# MEGAN +# +export MNH_MEGAN=${MNH_MEGAN} +# ########################################################## ########################################################## ########################################################## -- GitLab From 80c1ebbc8f120126decfcf0f099d032613b070ce Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 21 Feb 2019 10:55:08 +0100 Subject: [PATCH 061/139] Philippe 21/02/2019: bugfix: intent of read fields: OUT->INOUT to keep initial value if not found in file --- src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 | 33 ++++++++--------- src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 | 41 +++++++++++----------- 2 files changed, 38 insertions(+), 36 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 index 91e4e0031..17ec7f6e2 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 @@ -5,9 +5,10 @@ !----------------------------------------------------------------- module mode_io_read_lfi ! Modifications: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! Philippe Wautelet: 21/06/2018: read and write correctly if MNH_REAL=4 -! Philippe Wautelet: 14/12/2018: split fmreadwrit.f90 +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 21/06/2018: read and write correctly if MNH_REAL=4 +! P. Wautelet 14/12/2018: split fmreadwrit.f90 +! P. Wautelet 21/02/2019: bugfix: intent of read fields: OUT->INOUT to keep initial value if not found in file ! USE MODD_IO_ll USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH @@ -47,7 +48,7 @@ IMPLICIT NONE ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -REAL, INTENT(OUT) :: PFIELD ! array containing the data field +REAL, INTENT(INOUT) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables @@ -86,7 +87,7 @@ IMPLICIT NONE ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -REAL,DIMENSION(:),INTENT(OUT) :: PFIELD ! array containing the data field +REAL,DIMENSION(:),INTENT(INOUT) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables @@ -120,7 +121,7 @@ IMPLICIT NONE ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -REAL,DIMENSION(:,:),INTENT(OUT) :: PFIELD ! array containing the data field +REAL,DIMENSION(:,:),INTENT(INOUT) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables @@ -154,7 +155,7 @@ IMPLICIT NONE ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -REAL,DIMENSION(:,:,:),INTENT(OUT) :: PFIELD ! array containing the data field +REAL,DIMENSION(:,:,:),INTENT(INOUT) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables @@ -188,7 +189,7 @@ IMPLICIT NONE ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -REAL,DIMENSION(:,:,:,:),INTENT(OUT) :: PFIELD ! array containing the data field +REAL,DIMENSION(:,:,:,:),INTENT(INOUT) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables @@ -222,7 +223,7 @@ IMPLICIT NONE ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -REAL,DIMENSION(:,:,:,:,:),INTENT(OUT) :: PFIELD ! array containing the data field +REAL,DIMENSION(:,:,:,:,:),INTENT(INOUT) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables @@ -256,7 +257,7 @@ IMPLICIT NONE ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -REAL,DIMENSION(:,:,:,:,:,:),INTENT(OUT) :: PFIELD ! array containing the data field +REAL,DIMENSION(:,:,:,:,:,:),INTENT(INOUT) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables @@ -290,7 +291,7 @@ IMPLICIT NONE ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA),INTENT(INOUT) :: TPFIELD -INTEGER, INTENT(OUT) :: KFIELD ! array containing the data field +INTEGER, INTENT(INOUT) :: KFIELD ! array containing the data field INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables @@ -324,7 +325,7 @@ IMPLICIT NONE ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -INTEGER,DIMENSION(:),INTENT(OUT) :: KFIELD ! array containing the data field +INTEGER,DIMENSION(:),INTENT(INOUT) :: KFIELD ! array containing the data field INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables @@ -358,7 +359,7 @@ IMPLICIT NONE ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -INTEGER,DIMENSION(:,:),INTENT(OUT) :: KFIELD ! array containing the data field +INTEGER,DIMENSION(:,:),INTENT(INOUT) :: KFIELD ! array containing the data field INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables @@ -392,7 +393,7 @@ IMPLICIT NONE ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA),INTENT(INOUT) :: TPFIELD -LOGICAL, INTENT(OUT) :: OFIELD ! array containing the data field +LOGICAL, INTENT(INOUT) :: OFIELD ! array containing the data field INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables @@ -439,7 +440,7 @@ IMPLICIT NONE ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -LOGICAL,DIMENSION(:),INTENT(OUT) :: OFIELD ! array containing the data field +LOGICAL,DIMENSION(:),INTENT(INOUT) :: OFIELD ! array containing the data field INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables @@ -494,7 +495,7 @@ IMPLICIT NONE ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA),INTENT(INOUT) :: TPFIELD -CHARACTER(LEN=*),INTENT(OUT) :: HFIELD ! array containing the data field +CHARACTER(LEN=*),INTENT(INOUT) :: HFIELD ! array containing the data field INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables diff --git a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 index 9fb6870ad..dbaf49d89 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 @@ -3,12 +3,13 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -! Modifications: -! P. Wautelet : may 2016 : use NetCDF Fortran module -! J.Escobar : 14/12/2017 : Correction for MNH_INT=8 -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet : 13/12/2018 : split of mode_netcdf into multiple modules/files -! Philippe Wautelet: 10/01/2019: replace handle_err by io_handle_err_nc4 for better netCDF error messages +! Modifications: +! P. Wautelet may 2016 : use NetCDF Fortran module +! J. Escobar 14/12/2017: correction for MNH_INT=8 +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 13/12/2018: split of mode_netcdf into multiple modules/files +! P. Wautelet 10/01/2019: replace handle_err by io_handle_err_nc4 for better netCDF error messages +! P. Wautelet 21/02/2019: bugfix: intent of read fields: OUT->INOUT to keep initial value if not found in file !----------------------------------------------------------------- #if defined(MNH_IOCDF4) module mode_io_read_nc4 @@ -258,7 +259,7 @@ END SUBROUTINE IO_READ_CHECK_FIELD_ATTR_NC4 SUBROUTINE IO_READ_FIELD_NC4_X0(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -REAL, INTENT(OUT) :: PFIELD +REAL, INTENT(INOUT) :: PFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code INTEGER(KIND=IDCDF_KIND) :: STATUS @@ -313,7 +314,7 @@ END SUBROUTINE IO_READ_FIELD_NC4_X0 SUBROUTINE IO_READ_FIELD_NC4_X1(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -REAL,DIMENSION(:),INTENT(OUT) :: PFIELD +REAL,DIMENSION(:),INTENT(INOUT) :: PFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code INTEGER(KIND=IDCDF_KIND) :: STATUS @@ -380,7 +381,7 @@ END SUBROUTINE IO_READ_FIELD_NC4_X1 SUBROUTINE IO_READ_FIELD_NC4_X2(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -REAL,DIMENSION(:,:),INTENT(OUT) :: PFIELD +REAL,DIMENSION(:,:),INTENT(INOUT) :: PFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code INTEGER(KIND=IDCDF_KIND) :: STATUS @@ -462,7 +463,7 @@ END SUBROUTINE IO_READ_FIELD_NC4_X2 SUBROUTINE IO_READ_FIELD_NC4_X3(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -REAL,DIMENSION(:,:,:),INTENT(OUT) :: PFIELD +REAL,DIMENSION(:,:,:),INTENT(INOUT) :: PFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code INTEGER(KIND=IDCDF_KIND) :: STATUS @@ -533,7 +534,7 @@ END SUBROUTINE IO_READ_FIELD_NC4_X3 SUBROUTINE IO_READ_FIELD_NC4_X4(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -REAL,DIMENSION(:,:,:,:),INTENT(OUT) :: PFIELD +REAL,DIMENSION(:,:,:,:),INTENT(INOUT) :: PFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code INTEGER(KIND=IDCDF_KIND) :: STATUS @@ -607,7 +608,7 @@ END SUBROUTINE IO_READ_FIELD_NC4_X4 SUBROUTINE IO_READ_FIELD_NC4_X5(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -REAL,DIMENSION(:,:,:,:,:),INTENT(OUT) :: PFIELD +REAL,DIMENSION(:,:,:,:,:),INTENT(INOUT) :: PFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code INTEGER(KIND=IDCDF_KIND) :: STATUS @@ -684,7 +685,7 @@ END SUBROUTINE IO_READ_FIELD_NC4_X5 SUBROUTINE IO_READ_FIELD_NC4_X6(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -REAL,DIMENSION(:,:,:,:,:,:),INTENT(OUT) :: PFIELD +REAL,DIMENSION(:,:,:,:,:,:),INTENT(INOUT) :: PFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code INTEGER(KIND=IDCDF_KIND) :: STATUS @@ -763,7 +764,7 @@ END SUBROUTINE IO_READ_FIELD_NC4_X6 SUBROUTINE IO_READ_FIELD_NC4_N0(TPFILE, TPFIELD, KFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -INTEGER, INTENT(OUT) :: KFIELD +INTEGER, INTENT(INOUT) :: KFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code INTEGER(KIND=IDCDF_KIND) :: STATUS @@ -819,7 +820,7 @@ END SUBROUTINE IO_READ_FIELD_NC4_N0 SUBROUTINE IO_READ_FIELD_NC4_N1(TPFILE, TPFIELD, KFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -INTEGER, DIMENSION(:), INTENT(OUT) :: KFIELD +INTEGER, DIMENSION(:), INTENT(INOUT) :: KFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code INTEGER(KIND=IDCDF_KIND) :: STATUS @@ -887,7 +888,7 @@ END SUBROUTINE IO_READ_FIELD_NC4_N1 SUBROUTINE IO_READ_FIELD_NC4_N2(TPFILE, TPFIELD, KFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -INTEGER, DIMENSION(:,:), INTENT(OUT) :: KFIELD +INTEGER, DIMENSION(:,:), INTENT(INOUT) :: KFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code INTEGER(KIND=IDCDF_KIND) :: STATUS @@ -969,7 +970,7 @@ END SUBROUTINE IO_READ_FIELD_NC4_N2 SUBROUTINE IO_READ_FIELD_NC4_L0(TPFILE, TPFIELD, OFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -LOGICAL, INTENT(OUT) :: OFIELD +LOGICAL, INTENT(INOUT) :: OFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code INTEGER(KIND=IDCDF_KIND) :: STATUS @@ -1039,7 +1040,7 @@ END SUBROUTINE IO_READ_FIELD_NC4_L0 SUBROUTINE IO_READ_FIELD_NC4_L1(TPFILE, TPFIELD, OFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -LOGICAL,DIMENSION(:),INTENT(OUT) :: OFIELD +LOGICAL,DIMENSION(:),INTENT(INOUT) :: OFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code INTEGER(KIND=IDCDF_KIND) :: STATUS @@ -1126,7 +1127,7 @@ END SUBROUTINE IO_READ_FIELD_NC4_L1 SUBROUTINE IO_READ_FIELD_NC4_C0(TPFILE, TPFIELD, HFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -CHARACTER(LEN=*), INTENT(OUT) :: HFIELD +CHARACTER(LEN=*), INTENT(INOUT) :: HFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code INTEGER(KIND=IDCDF_KIND) :: STATUS @@ -1195,7 +1196,7 @@ USE MODE_DATETIME ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -TYPE (DATE_TIME), INTENT(OUT) :: TPDATA +TYPE (DATE_TIME), INTENT(INOUT) :: TPDATA INTEGER, INTENT(OUT) :: KRESP ! return-code INTEGER(KIND=IDCDF_KIND) :: STATUS -- GitLab From d9c5d00944533644ebe424aacba9826d57848bf0 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 21 Feb 2019 15:19:07 +0100 Subject: [PATCH 062/139] Philippe 21/02/2019: COMPRESS: use IEEE_SUPPORT_NAN and IEEE_IS_NAN correctly --- LIBTOOLS/lib/COMPRESS/src/compress.f90 | 22 ++++++++++++---------- LIBTOOLS/lib/COMPRESS/src/ieee_is_nan.c | 11 ----------- 2 files changed, 12 insertions(+), 21 deletions(-) delete mode 100644 LIBTOOLS/lib/COMPRESS/src/ieee_is_nan.c diff --git a/LIBTOOLS/lib/COMPRESS/src/compress.f90 b/LIBTOOLS/lib/COMPRESS/src/compress.f90 index 2bc2dfaf3..950fdfb17 100644 --- a/LIBTOOLS/lib/COMPRESS/src/compress.f90 +++ b/LIBTOOLS/lib/COMPRESS/src/compress.f90 @@ -1,15 +1,13 @@ -!----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ $Date$ +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. !----------------------------------------------------------------- SUBROUTINE COMPRESS_FIELD(XTAB,KX,KY,KNBTOT,KNBUSE) USE MODD_COMPPAR USE MODE_SEARCHGRP -#ifdef NAGf95 USE,INTRINSIC :: IEEE_ARITHMETIC -#endif IMPLICIT NONE @@ -38,17 +36,21 @@ INTEGER :: IEXTCOD CHARACTER(LEN=8),PARAMETER :: KEYWORD='COMPRESS' REAL,DIMENSION(KNBTOT) :: XWORKTAB LOGICAL :: LUPREAL,LNAN -#ifndef NAGf95 -LOGICAL, EXTERNAL :: IEEE_IS_NAN -#endif +logical :: gnansupport ILEVNBELT = KX*KY LUPREAL = .FALSE. LNAN = .FALSE. +if ( IEEE_SUPPORT_NAN( xtab(1)) ) then + gnansupport=.true. +else + gnansupport=.false. +end if + ! Check for NAN and change Upper and Lower bound according to 32bits real limits. DO JI=1,KNBTOT - IF (IEEE_IS_NAN(XTAB(JI))) THEN + IF ( gnansupport .and. IEEE_IS_NAN(XTAB(JI)) ) THEN XTAB(JI)=0. LNAN = .TRUE. ELSE IF (ABS(XTAB(JI)) > HUGE(1.0_4)) THEN diff --git a/LIBTOOLS/lib/COMPRESS/src/ieee_is_nan.c b/LIBTOOLS/lib/COMPRESS/src/ieee_is_nan.c deleted file mode 100644 index f8682fbdb..000000000 --- a/LIBTOOLS/lib/COMPRESS/src/ieee_is_nan.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <math.h> - -#ifdef NO_UNDERSCORE -# define IEEE_IS_NAN ieee_is_nan -#else -# define IEEE_IS_NAN ieee_is_nan_ -#endif - -int IEEE_IS_NAN(double *x){ - return isnan(*x); -} -- GitLab From 17726cb80b09d85cdf75486811e0dae97f988f5e Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 21 Feb 2019 15:27:20 +0100 Subject: [PATCH 063/139] Philippe 21/02/2019: add flag to compile the COMPRESS library --- src/Makefile.MESONH.mk | 17 +++++++++++++++-- src/Rules.AIX64.mk | 5 +++++ src/Rules.BG.mk | 5 +++++ src/Rules.BGQ.mk | 5 +++++ src/Rules.LXNAGfor.mk | 5 +++++ src/Rules.LXarm.mk | 4 ++++ src/Rules.LXcray.mk | 5 +++++ src/Rules.LXg95.mk | 5 +++++ src/Rules.LXgfortran.mk | 4 ++++ src/Rules.LXifort.mk | 5 +++++ src/Rules.LXpathf95.mk | 5 +++++ src/Rules.LXpgi.mk | 5 +++++ src/Rules.SX8.mk | 5 +++++ 13 files changed, 73 insertions(+), 2 deletions(-) diff --git a/src/Makefile.MESONH.mk b/src/Makefile.MESONH.mk index 1a1607808..90e2b092e 100644 --- a/src/Makefile.MESONH.mk +++ b/src/Makefile.MESONH.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -242,6 +242,19 @@ VPATH += $(DIR_NEWLFI) #ARCH_XYZ := $(ARCH_XYZ)-$(VER_NEWLFI) endif ########################################################## +# Source COMPRESS # +########################################################## +ifdef MNH_COMPRESS +DIR_COMPRESS = ../LIBTOOLS/lib/COMPRESS/src +INC_COMPRESS = -I$(B)$(DIR_COMPRESS) +DIR_MASTER += $(DIR_COMPRESS) +OBJS_LISTE_MASTER += bitbuff.o nearestpow2.o +INC += $(INC_COMPRESS) +VPATH += $(DIR_COMPRESS) +CPPFLAGS_COMPRESS ?= -DLITTLE_endian +CPPFLAGS += $(CPPFLAGS_COMPRESS) +endif +########################################################## # Source FOREFIRE # ########################################################## ifdef MNH_FOREFIRE diff --git a/src/Rules.AIX64.mk b/src/Rules.AIX64.mk index b4de87fcf..c207e6df3 100644 --- a/src/Rules.AIX64.mk +++ b/src/Rules.AIX64.mk @@ -101,6 +101,11 @@ CNAME_GRIBEX="" #if MNH_TOOLS exists => compile the tools MNH_TOOLS = yes # +## COMPRESS flag +# +#if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) +MNH_COMPRESS=yes +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.BG.mk b/src/Rules.BG.mk index d3d34f3f6..d34ee73ae 100644 --- a/src/Rules.BG.mk +++ b/src/Rules.BG.mk @@ -112,6 +112,11 @@ CNAME_GRIBEX="" #if MNH_TOOLS exists => compile the tools #MNH_TOOLS = no # +## COMPRESS flag +# +#if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) +#MNH_COMPRESS=no +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.BGQ.mk b/src/Rules.BGQ.mk index e1e735144..afd158a03 100644 --- a/src/Rules.BGQ.mk +++ b/src/Rules.BGQ.mk @@ -171,6 +171,11 @@ GRIBAPI_CONF= --host=powerpc64-bgq-linux #if MNH_TOOLS exists => compile the tools #MNH_TOOLS = no # +## COMPRESS flag +# +#if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) +#MNH_COMPRESS=no +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.LXNAGfor.mk b/src/Rules.LXNAGfor.mk index d7a8adf96..00f9c48b2 100644 --- a/src/Rules.LXNAGfor.mk +++ b/src/Rules.LXNAGfor.mk @@ -94,6 +94,11 @@ NETCDF_SUPPFLAGS = -dusty -kind=byte #if MNH_TOOLS exists => compile the tools MNH_TOOLS = yes # +## COMPRESS flag +# +#if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) +MNH_COMPRESS=yes +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.LXarm.mk b/src/Rules.LXarm.mk index 7622b6807..918d1fc22 100644 --- a/src/Rules.LXarm.mk +++ b/src/Rules.LXarm.mk @@ -116,6 +116,10 @@ MNH_TOOLS=yes endif endif # +## COMPRESS flag +# +#if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) +MNH_COMPRESS=yes # # ########################################################## diff --git a/src/Rules.LXcray.mk b/src/Rules.LXcray.mk index 1fbd6578c..ae24c8420 100644 --- a/src/Rules.LXcray.mk +++ b/src/Rules.LXcray.mk @@ -109,6 +109,11 @@ GRIBAPI_CONF="FCFLAGS= -em -ef " #if MNH_TOOLS exists => compile the tools MNH_TOOLS = yes # +## COMPRESS flag +# +#if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) +MNH_COMPRESS=yes +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.LXg95.mk b/src/Rules.LXg95.mk index fa86c4daf..cdd6184f0 100644 --- a/src/Rules.LXg95.mk +++ b/src/Rules.LXg95.mk @@ -81,6 +81,11 @@ CNAME_GRIBEX=g95 #if MNH_TOOLS exists => compile the tools MNH_TOOLS = yes # +## COMPRESS flag +# +#if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) +MNH_COMPRESS=yes +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.LXgfortran.mk b/src/Rules.LXgfortran.mk index cdf8bc938..a606a2fc3 100644 --- a/src/Rules.LXgfortran.mk +++ b/src/Rules.LXgfortran.mk @@ -110,6 +110,10 @@ MNH_TOOLS=yes endif endif # +## COMPRESS flag +# +#if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) +MNH_COMPRESS=yes # # ########################################################## diff --git a/src/Rules.LXifort.mk b/src/Rules.LXifort.mk index 3a3185d5a..60af5234d 100644 --- a/src/Rules.LXifort.mk +++ b/src/Rules.LXifort.mk @@ -205,6 +205,11 @@ ifeq "$(MNH_INT)" "4" MNH_TOOLS=yes endif # +## COMPRESS flag +# +#if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) +MNH_COMPRESS=yes +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.LXpathf95.mk b/src/Rules.LXpathf95.mk index 014fcbaf4..1e0487f1f 100644 --- a/src/Rules.LXpathf95.mk +++ b/src/Rules.LXpathf95.mk @@ -57,6 +57,11 @@ CNAME_GRIBEX=pathf95 #if MNH_TOOLS exists => compile the tools MNH_TOOLS = yes # +## COMPRESS flag +# +#if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) +MNH_COMPRESS=yes +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.LXpgi.mk b/src/Rules.LXpgi.mk index 9b53a87c3..7bae40f42 100644 --- a/src/Rules.LXpgi.mk +++ b/src/Rules.LXpgi.mk @@ -116,6 +116,11 @@ CNAME_GRIBEX=_pgf77 #if MNH_TOOLS exists => compile the tools MNH_TOOLS = yes # +## COMPRESS flag +# +#if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) +MNH_COMPRESS=yes +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.SX8.mk b/src/Rules.SX8.mk index e5bb540f6..1246647cc 100644 --- a/src/Rules.SX8.mk +++ b/src/Rules.SX8.mk @@ -103,6 +103,11 @@ CNAME_GRIBEX=sxmpif90 #if MNH_TOOLS exists => compile the tools #MNH_TOOLS = no # +## COMPRESS flag +# +#if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) +#MNH_COMPRESS=no +# ########################################################## # # # Source of MESONH PACKAGE Distribution # -- GitLab From 024f4f788477d41c3f6489e62d882321f89213b4 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 21 Feb 2019 15:32:05 +0100 Subject: [PATCH 064/139] =?UTF-8?q?Philippe=20and=20S=C3=A9bastien=20Riett?= =?UTF-8?q?e=2021/02/2019:=20add=20libs4py=20library=20(for=20epygram=20to?= =?UTF-8?q?ol)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/spll | 7 +- src/LIB/s4py/init_gfortran.c | 15 + src/LIB/s4py/libs4py.f90 | 532 +++++++++++++++++++++++++++++++++++ src/Makefile | 24 +- src/Makefile.MESONH.mk | 11 + src/Rules.AIX64.mk | 5 + src/Rules.BG.mk | 5 + src/Rules.BGQ.mk | 5 + src/Rules.LXNAGfor.mk | 5 + src/Rules.LXarm.mk | 4 + src/Rules.LXcray.mk | 5 + src/Rules.LXg95.mk | 5 + src/Rules.LXgfortran.mk | 4 + src/Rules.LXifort.mk | 5 + src/Rules.LXpathf95.mk | 5 + src/Rules.LXpgi.mk | 5 + src/Rules.SX8.mk | 5 + 17 files changed, 641 insertions(+), 6 deletions(-) create mode 100644 src/LIB/s4py/init_gfortran.c create mode 100644 src/LIB/s4py/libs4py.f90 diff --git a/bin/spll b/bin/spll index c8b0ada9e..ba2fd7884 100755 --- a/bin/spll +++ b/bin/spll @@ -1,7 +1,7 @@ #!/bin/bash -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. #set -x if [ $# -ne 2 ] @@ -26,7 +26,8 @@ ini_cmfshall.f90|mode_double_double.f90|mode_fgau.f90|\ extern_usersurc_ll.f90|\ extern_userio.f90|fmreadwrit.f90|fm_read_ll.f90|poub.f90|\ mode_glt.*.F90|\ -rrtm_.*.F90|srtm_.*.F90" +rrtm_.*.F90|srtm_.*.F90|\ +libs4py.f90" # if [ "$SUF" = "f" ] diff --git a/src/LIB/s4py/init_gfortran.c b/src/LIB/s4py/init_gfortran.c new file mode 100644 index 000000000..2fb55869b --- /dev/null +++ b/src/LIB/s4py/init_gfortran.c @@ -0,0 +1,15 @@ +//MNH_LIC Copyright 2019-2019 CNRS, Meteo-France and Universite Paul Sabatier +//MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +//MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +//MNH_LIC for details. version 1. +//----------------------------------------------------------------- +#ifdef __GFORTRAN__ +/* Philippe Marguinaud idea */ + +void init_gfortran_big_endian_(){ + _gfortran_set_convert (2); +} +void init_gfortran_native_endian_(){ + _gfortran_set_convert (0); +} +#endif diff --git a/src/LIB/s4py/libs4py.f90 b/src/LIB/s4py/libs4py.f90 new file mode 100644 index 000000000..94a199754 --- /dev/null +++ b/src/LIB/s4py/libs4py.f90 @@ -0,0 +1,532 @@ +!MNH_LIC Copyright 2014-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +SUBROUTINE WLFIOUV(KRETURNCODE, CDFILE, CDSTATE, KNUMER) +! ** PURPOSE +! Open a LFI file +! +! ** DUMMY ARGUMENTS +! KRETURNCODE: error code +! CDFILE: path to file to open +! CDSTATE: state of file ('NEW', 'OLD', 'UNKNOWN', 'SCRATCH') +! KNUMER: logical unit number associated to file +! +! ** AUTHOR +! 9 April 2014, S. Riette +! +! ** MODIFICATIONS +! 26 sept 2014, S. Riette: use 64bits LFI subroutines +! 8 nov 2018, S. Riette: Meso-NH version +! P. Wautelet 21/02/2019: add copyright notice + use INT64 for 64-bits integers +! +! I. Dummy arguments declaration +use iso_fortran_env, only: INT64 +IMPLICIT NONE +INTEGER(KIND=INT64), INTENT(OUT) :: KRETURNCODE +CHARACTER(LEN=*), INTENT(IN) :: CDFILE +CHARACTER(LEN=*), INTENT(IN) :: CDSTATE +INTEGER(KIND=INT64), INTENT(OUT) :: KNUMER +! +! II. Local variables declaration +INTEGER, PARAMETER :: JPMAXLOGICALUNITNUMBER=5000 +INTEGER(KIND=LFI_INT) :: IRETURNCODE +LOGICAL :: LLEXISTS, LLOPEN +INTEGER(KIND=LFI_INT) :: IRECORDNUMBER +INTEGER(KIND=LFI_INT) :: INUMER +! +! III. File opening +! +! III.a Search for an available logical unit +INUMER=0 +LLEXISTS=.FALSE. +LLOPEN=.TRUE. +IRETURNCODE=0 +DO WHILE(INUMER.LT.JPMAXLOGICALUNITNUMBER .AND. (LLOPEN .OR. .NOT. LLEXISTS)) + INUMER=INUMER+1 + INQUIRE(UNIT=INUMER, EXIST=LLEXISTS, OPENED=LLOPEN) +ENDDO +IF(LLOPEN .OR. .NOT. LLEXISTS) THEN + IRETURNCODE=-999 +ENDIF +! +#ifdef __GFORTRAN__ +! III.b (Re)-init of libgfortran to enable big_endian file reading +!**** *** ** * only gfortran will work with this * ** *** **** +CALL INIT_GFORTRAN_BIG_ENDIAN() +#endif +! +! III.c LFI file opening +CALL LFIOUV(IRETURNCODE, INUMER, .TRUE., CDFILE, CDSTATE, .FALSE.,& + &.FALSE., INT(0, LFI_INT), INT(1, LFI_INT), IRECORDNUMBER) +IF(IRETURNCODE/=0)THEN + CALL LFIENG(INUMER, INT(0, LFI_INT), IRETURNCODE, .FALSE., '', 'LFIOUV', '') +ENDIF +! +#ifdef __GFORTRAN__ +! III.d (Re)-init of libgfortran to enable native endianess file reading +!**** *** ** * only gfortran will work with this * ** *** **** +CALL INIT_GFORTRAN_NATIVE_ENDIAN() +#endif +! +KNUMER=INT(INUMER, 8) +KRETURNCODE=INT(IRETURNCODE,8) + +END SUBROUTINE WLFIOUV + +!______________________________________________________________________ + +SUBROUTINE WLFINAF(KRETURNCODE, KNUMER, KNALDO, KNTROU, KNARES, KNAMAX) +! ** PURPOSE +! Wrapper to LFINAF +! +! ** DUMMY ARGUMENTS +! KRETURNCODE: error code +! KNUMER: logical unit number associated to file +! KNALDO: Number of actual logical data records (holes excluded) +! KNTROU: Number of logical records which are holes +! KNARES: Number of logical records which can be written in the reserved part of index (holes included) +! KNAMAX: Maximum number of logical records which one can write on logical unit +! +! ** AUTHOR +! 9 April 2014, S. Riette +! +! ** MODIFICATIONS +! 26 sept 2014, S. Riette: use 64bits LFI subroutines +! 8 nov 2018, S. Riette: Meso-NH version +! +! I. Dummy arguments declaration +use iso_fortran_env, only: INT64 +IMPLICIT NONE +INTEGER(KIND=INT64), INTENT(OUT) :: KRETURNCODE +INTEGER(KIND=INT64), INTENT(IN) :: KNUMER +INTEGER(KIND=INT64), INTENT(OUT) :: KNALDO, KNTROU, KNARES, KNAMAX +! +! II. Local variables declaration +INTEGER(KIND=LFI_INT) :: IRETURNCODE +INTEGER(KIND=LFI_INT) :: INUMER +INTEGER(KIND=LFI_INT) :: INALDO, INTROU, INARES, INAMAX +! +! III. LFINAF call +INUMER=INT(KNUMER, KIND(INUMER)) +CALL LFINAF(IRETURNCODE, INUMER, INALDO, INTROU, INARES, INAMAX) +IF(IRETURNCODE/=0)THEN + CALL LFIENG(INUMER, INT(0, LFI_INT), IRETURNCODE, .FALSE., '', 'LFINAF', '') +ENDIF +KRETURNCODE=INT(IRETURNCODE,8) +KNALDO=INT(INALDO, 8) +KNTROU=INT(INTROU, 8) +KNARES=INT(INARES, 8) +KNAMAX=INT(INAMAX, 8) +! +END SUBROUTINE WLFINAF + +!______________________________________________________________________ + +SUBROUTINE WLFIPOS(KRETURNCODE, KNUMER) +! ** PURPOSE +! Wrapper to LFIPOS +! +! ** DUMMY ARGUMENTS +! KRETURNCODE: error code +! KNUMER: logical unit number associated to file +! +! ** AUTHOR +! 9 April 2014, S. Riette +! +! ** MODIFICATIONS +! 26 sept 2014, S. Riette: use 64bits LFI subroutines +! 8 nov 2018, S. Riette: Meso-NH version +! +! I. Dummy arguments declaration +use iso_fortran_env, only: INT64 +IMPLICIT NONE +INTEGER(KIND=INT64), INTENT(OUT) :: KRETURNCODE +INTEGER(KIND=INT64), INTENT(IN) :: KNUMER +! +! II. Local variables declaration +INTEGER(KIND=LFI_INT) :: IRETURNCODE +INTEGER(KIND=LFI_INT) :: INUMER +! +! III. LFIPOS call +INUMER=INT(KNUMER, KIND(INUMER)) +CALL LFIPOS(IRETURNCODE, INUMER) +IF(IRETURNCODE/=0)THEN + CALL LFIENG(INUMER, INT(0, LFI_INT), IRETURNCODE, .FALSE., '', 'LFIPOS', '') +ENDIF +KRETURNCODE=INT(IRETURNCODE,8) +! +END SUBROUTINE WLFIPOS + +!______________________________________________________________________ + +SUBROUTINE WLFICAS(KRETURNCODE, KNUMER, CDNOMA, KLONG, KPOSEX, LDAVAN) +! ** PURPOSE +! Wrapper to LFICAS +! +! ** DUMMY ARGUMENTS +! KRETURNCODE: error code +! KNUMER: logical unit number associated to file +! CDNOMA: name of next record +! KLONG: length of next record +! KPOSEX: position in file of the first word of next record +! LDAVAN: true if one must move forward the pointer +! +! ** AUTHOR +! 9 April 2014, S. Riette +! +! ** MODIFICATIONS +! 26 sept 2014, S. Riette: use 64bits LFI subroutines +! use of true logical instead of integer +! 8 nov 2018, S. Riette: Meso-NH version +! +! I. Dummy arguments declaration +use iso_fortran_env, only: INT64 +IMPLICIT NONE +INTEGER(KIND=INT64), INTENT(OUT) :: KRETURNCODE +INTEGER(KIND=INT64), INTENT(IN) :: KNUMER +CHARACTER(LEN=16), INTENT(OUT) :: CDNOMA +INTEGER(KIND=INT64), INTENT(OUT) :: KLONG, KPOSEX +LOGICAL, INTENT(IN) :: LDAVAN +! +! II. Local variables declaration +INTEGER(KIND=LFI_INT) :: IRETURNCODE +INTEGER(KIND=LFI_INT) :: INUMER +INTEGER(KIND=LFI_INT) :: ILONG, IPOSEX +! +! III. LFICAS call +INUMER=INT(KNUMER, KIND(INUMER)) +CALL LFICAS(IRETURNCODE, INUMER, CDNOMA, ILONG, IPOSEX, LDAVAN) +IF(IRETURNCODE/=0)THEN + CALL LFIENG(INUMER, INT(0, LFI_INT), IRETURNCODE, .FALSE., '', 'LFICAS', '') +ENDIF +KRETURNCODE=INT(IRETURNCODE,8) +KLONG=INT(ILONG, 8) +KPOSEX=INT(IPOSEX, 8) +! +END SUBROUTINE WLFICAS + +!______________________________________________________________________ + +SUBROUTINE WLFINFO(KRETURNCODE, KNUMER, CDNOMA, KLONG, KPOSEX) +! ** PURPOSE +! Wrapper to LFINFO +! +! ** DUMMY ARGUMENTS +! KRETURNCODE: error code +! KNUMER: logical unit number associated to file +! CDNOMA: name of record +! KLONG: length of record +! KPOSEX: position in file of the first word of next record + +! ** AUTHOR +! 9 April 2014, S. Riette +! +! ** MODIFICATIONS +! 26 sept 2014, S. Riette: use 64bits LFI subroutines +! 8 nov 2018, S. Riette: Meso-NH version +! +! I. Dummy arguments declaration +use iso_fortran_env, only: INT64 +IMPLICIT NONE +INTEGER(KIND=INT64), INTENT(OUT) :: KRETURNCODE +INTEGER(KIND=INT64), INTENT(IN) :: KNUMER +CHARACTER(LEN=16), INTENT(IN) :: CDNOMA +INTEGER(KIND=INT64), INTENT(OUT) :: KLONG, KPOSEX +! +! II. Local variables declaration +INTEGER(KIND=LFI_INT) :: IRETURNCODE +INTEGER(KIND=LFI_INT) :: INUMER +INTEGER(KIND=LFI_INT) :: ILONG, IPOSEX +! +! III. LFINFO call +INUMER=INT(KNUMER, KIND(INUMER)) +CALL LFINFO(IRETURNCODE, INUMER, CDNOMA, ILONG, IPOSEX) +IF(IRETURNCODE/=0)THEN + CALL LFIENG(INUMER, INT(0, LFI_INT), IRETURNCODE, .FALSE., '', 'LFINFO', '') +ENDIF +KRETURNCODE=INT(IRETURNCODE,8) +KLONG=INT(ILONG, 8) +KPOSEX=INT(IPOSEX, 8) +! +END SUBROUTINE WLFINFO + +!______________________________________________________________________ + +SUBROUTINE WLFILEC(KRETURNCODE, KNUMER, CDNOMA, KLONG, LDABORT, KTAB) +! ** PURPOSE +! Wrapper to LFILEC +! +! ** DUMMY ARGUMENTS +! KRETURNCODE: error code +! KNUMER: logical unit number associated to file +! CDNOMA: name of record +! KLONG: length of record +! LDABORT: must we raise an exception on error -21 ? +! KTAB: integer array read + +! ** AUTHOR +! 9 April 2014, S. Riette +! +! ** MODIFICATIONS +! 26 sept 2014, S. Riette: use 64bits LFI subroutines +! use of true logical instead of integer +! 8 nov 2018, S. Riette: Meso-NH version +! +! I. Dummy arguments declaration +use iso_fortran_env, only: INT64 +IMPLICIT NONE +INTEGER(KIND=INT64), INTENT(OUT) :: KRETURNCODE +INTEGER(KIND=INT64), INTENT(IN) :: KNUMER +CHARACTER(LEN=16), INTENT(IN) :: CDNOMA +INTEGER(KIND=INT64), INTENT(IN) :: KLONG +LOGICAL, INTENT(IN) :: LDABORT +INTEGER(KIND=INT64), INTENT(OUT), DIMENSION(KLONG) :: KTAB +! +! II. Local variables declaration +INTEGER(KIND=LFI_INT) :: IRETURNCODE +INTEGER(KIND=LFI_INT) :: INUMER, ILONG +INTEGER(KIND=LFI_INT) :: ITOTLONG, IPOSEX +INTEGER(KIND=INT64), ALLOCATABLE :: KTABTOT(:) +! +! III. LFILEC call +INUMER=INT(KNUMER, KIND(INUMER)) +ILONG=INT(KLONG, KIND(ILONG)) +! +!Because NERFAG cannot be changed easily, we read the entire article +!even if only a part is needed, otherwise NERFAG=2 would be sufficient +CALL WLFINFO(IRETURNCODE, INUMER, CDNOMA, ITOTLONG, IPOSEX) +IF(ILONG .LT. ITOTLONG) THEN + ALLOCATE(KTABTOT(ITOTLONG)) + CALL LFILEC(IRETURNCODE, INUMER, CDNOMA, KTABTOT, ITOTLONG) +ELSE + CALL LFILEC(IRETURNCODE, INUMER, CDNOMA, KTAB, ILONG) +ENDIF +IF (IRETURNCODE/=0 .AND. .NOT. (IRETURNCODE==-21 .AND. .NOT. LDABORT)) THEN + CALL LFIENG(INUMER, INT(0, LFI_INT), IRETURNCODE, .FALSE., '', 'LFILEC', '') + KRETURNCODE=INT(IRETURNCODE,8) +ELSE + KRETURNCODE=INT(0,8) +ENDIF +IF(ILONG .LT. ITOTLONG) THEN + KTAB(:)=KTABTOT(1:ILONG) + DEALLOCATE(KTABTOT) +ENDIF +! +END SUBROUTINE WLFILEC + +!_________________________________________________________________________________________________ + +SUBROUTINE WGET_COMPHEADER(KSIZE, KDATA, KLONG, KLONU, KTYPECOMP) +! ** PURPOSE +! Wrapper to GET_COMPHEADER +! +! ** DUMMY ARGUMENTS +! KSIZE: Size of KDATA +! KDATA: (part of) integer array read from record +! KLONG: length of compressed data +! KLONU: length of uncompressed data +! KTYPECOMP: type of compression +! +! ** AUTHOR +! 9 April 2014, S. Riette +! +! ** MODIFICATIONS +! +! I. Dummy arguments declaration +use iso_fortran_env, only: INT64 +IMPLICIT NONE +INTEGER(KIND=INT64), INTENT(IN) :: KSIZE +INTEGER(KIND=INT64), INTENT(IN), DIMENSION(KSIZE) :: KDATA +INTEGER(KIND=INT64), INTENT(IN) :: KLONG +INTEGER(KIND=INT64), INTENT(OUT) :: KLONU +INTEGER(KIND=INT64), INTENT(OUT) :: KTYPECOMP +! +! II. Local variables declaration +INTEGER :: ILONG +INTEGER :: ILONU, ITYPECOMP +! +! III. GET_COMPHEADER call +#ifdef MNH_COMPRESS +ILONG=KLONG +CALL GET_COMPHEADER(KDATA, ILONG, ILONU, ITYPECOMP) +KLONU=INT(ILONU, 8) +KTYPECOMP=INT(ITYPECOMP, 8) +#else +print*, "Error: code was compiled without COMPRESS support, please define MNH_COMPRESS" +KLONU=INT(-1, 8) +KTYPECOMP=INT(-1, 8) +#endif +! +END SUBROUTINE WGET_COMPHEADER + +!_________________________________________________________________________________________________ + +SUBROUTINE WCOMPRESS_FIELD(KTAB, KX, KY, KSIZEDECOMP, KSIZECOMP) +! ** PURPOSE +! Wrapper to COMPRESS_FIELD +! +! ** DUMMY ARGUMENTS +! KTAB: decompressed integer array (IN) +! compressed data integer array (OUT) +! KX, KY: x and y dimensions +! KSIZEDECOMP: size of decompressed data +! KSIZECOMP: size of compressed integer array +! +! ** AUTHOR +! 16 July 2015, S. Riette +! +! ** MODIFICATIONS +! +! I. Dummy arguments declaration +use iso_fortran_env, only: INT64 +IMPLICIT NONE +INTEGER(KIND=INT64), INTENT(IN) :: KX, KY, KSIZEDECOMP +INTEGER(KIND=INT64), INTENT(INOUT), DIMENSION(KSIZEDECOMP) :: KTAB +INTEGER(KIND=INT64), INTENT(OUT) :: KSIZECOMP +! +! II. Local variables declaration +INTEGER :: ISIZEDECOMP, ISIZECOMP, IX, IY +! +! III. COMPRESS_FIELD call +#ifdef MNH_COMPRESS +ISIZEDECOMP=KSIZEDECOMP +IX=KX +IY=KY +CALL COMPRESS_FIELD(KTAB, IX, IY, ISIZEDECOMP, ISIZECOMP) +KSIZECOMP=ISIZECOMP +#else +print*, "Error: code was compiled without COMPRESS support, please define MNH_COMPRESS" +KSIZECOMP=INT(-1, 8) +#endif +! +END SUBROUTINE WCOMPRESS_FIELD + +!_________________________________________________________________________________________________ + +SUBROUTINE WDECOMPRESS_FIELD(KSIZE, KCOMP, KTYPECOMP, KLDECOMP, KDECOMP) +! ** PURPOSE +! Wrapper to DECOMPRESS_FIELD +! +! ** DUMMY ARGUMENTS +! KSIZE: size of KCOMP +! KCOMP: compressed integer array +! KTYPECOMP: type of compression +! KDECOMP: decompressed data integer array +! KLDECOMP: length of decompressed data +! +! ** AUTHOR +! 9 April 2014, S. Riette +! +! ** MODIFICATIONS +! +! I. Dummy arguments declaration +use iso_fortran_env, only: INT64 +IMPLICIT NONE +INTEGER(KIND=INT64), INTENT(IN) :: KSIZE +INTEGER(KIND=INT64), INTENT(IN), DIMENSION(KSIZE) :: KCOMP +INTEGER(KIND=INT64), INTENT(IN) :: KTYPECOMP +INTEGER(KIND=INT64), INTENT(IN) :: KLDECOMP +INTEGER(KIND=INT64), INTENT(OUT), DIMENSION(KLDECOMP) :: KDECOMP +! +! II. Local variables declaration +INTEGER :: ITYPECOMP, ILDECOMP +! +! III. DECOMPRESS_FIELD call +#ifdef MNH_COMPRESS +ILDECOMP=KLDECOMP +ITYPECOMP=KTYPECOMP +CALL DECOMPRESS_FIELD(KDECOMP, ILDECOMP, KCOMP, SIZE(KCOMP,1), ITYPECOMP) +#else +print*, "Error: code was compiled without COMPRESS support, please define MNH_COMPRESS" +KDECOMP(:)=-1 +#endif +! +END SUBROUTINE WDECOMPRESS_FIELD + +!_________________________________________________________________________________________________ + +SUBROUTINE WLFIFER(KRETURNCODE, KNUMER, CDSTTC) +! ** PURPOSE +! Close a LFI file +! +! ** DUMMY ARGUMENTS +! KRETURNCODE: error code +! KNUMER: logical unit number associated to file +! CDSTTC: close status ('KEEP', 'SCRATCH', 'DELETE') +! +! ** AUTHOR +! 9 April 2014, S. Riette +! +! ** MODIFICATIONS +! 26 sept 2014, S. Riette: use 64bits LFI subroutines +! 8 nov 2018, S. Riette: Meso-NH version +! +! I. Dummy arguments declaration +use iso_fortran_env, only: INT64 +IMPLICIT NONE +INTEGER(KIND=INT64), INTENT(OUT) :: KRETURNCODE +INTEGER(KIND=INT64), INTENT(IN) :: KNUMER +CHARACTER(LEN=7), INTENT(IN) :: CDSTTC +! +! II. Local variables declaration +INTEGER(KIND=LFI_INT) :: IRETURNCODE +INTEGER(KIND=LFI_INT) :: INUMER +! +! III. LFIFER call +INUMER=INT(KNUMER, KIND(INUMER)) +CALL LFIFER(IRETURNCODE, INUMER, CDSTTC) +IF(IRETURNCODE/=0)THEN + CALL LFIENG(INUMER, INT(0, LFI_INT), IRETURNCODE, .FALSE., '', 'LFIFER', '') +ENDIF +KRETURNCODE=INT(IRETURNCODE,8) +! +END SUBROUTINE WLFIFER + +!_________________________________________________________________________________________________ + +SUBROUTINE WLFIECR(KRETURNCODE, KNUMER, CDNOMA, KSIZE, KTAB) +! ** PURPOSE +! Wrapper to LFIECR +! +! ** DUMMY ARGUMENTS +! KRETURNCODE: error code +! KNUMER: logical unit number associated to file +! CDNOMA: name of field to write +! KSIZE: Size of KTAB +! KTAB: integer array to write +! +! ** AUTHOR +! 9 April 2014, S. Riette +! +! ** MODIFICATIONS +! 26 sept 2014, S. Riette: use 64bits LFI subroutines +! 8 nov 2018, S. Riette: Meso-NH version +! +! I. Dummy arguments declaration +use iso_fortran_env, only: INT64 +IMPLICIT NONE +INTEGER(KIND=INT64), INTENT(OUT) :: KRETURNCODE +INTEGER(KIND=INT64), INTENT(IN) :: KNUMER +CHARACTER(LEN=16), INTENT(IN) :: CDNOMA +INTEGER(KIND=INT64), INTENT(IN) :: KSIZE +INTEGER(KIND=INT64), INTENT(IN), DIMENSION(KSIZE) :: KTAB +! +! II. Local variables declaration +INTEGER(KIND=LFI_INT) :: IRETURNCODE +INTEGER(KIND=LFI_INT) :: INUMER +INTEGER(KIND=LFI_INT) :: ISIZE +! +! III. LFIECR call +INUMER=INT(KNUMER, KIND(INUMER)) +ISIZE=INT(KSIZE, KIND(ISIZE)) +CALL LFIECR(IRETURNCODE, INUMER, CDNOMA, KTAB, ISIZE) +IF(IRETURNCODE/=0)THEN + CALL LFIENG(INUMER, INT(0, LFI_INT), IRETURNCODE, .FALSE., '', 'LFIECR', '') +ENDIF +KRETURNCODE=INT(IRETURNCODE,8) +! +END SUBROUTINE WLFIECR + +!_________________________________________________________________________________________________ diff --git a/src/Makefile b/src/Makefile index ef5a0b30f..8a1039a07 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -58,7 +58,7 @@ include Rules.$(ARCH)$(F).mk # All modification are allowed !!!!! # # adding new subroutines # # or # -# adding new modules # +# adding new modules # # # # REM : if during modification, you deleting some # # FORTRAN subroutines you must also deleted the # @@ -389,8 +389,26 @@ cleanmaster : cleanoasis cleanoasis : - [ -d ${OASIS_PATH} ] && rm -fr ${OASIS_PATH} endif +########################################################## +# # +# EXTRA LIB : S4PY # +# # +########################################################## +ifdef MNH_S4PY +all : libs4py.so +OBJ_S4PY=$(OBJDIR_MASTER)/spll_wcompress_field.o $(OBJDIR_MASTER)/spll_wdecompress_field.o \ +$(OBJDIR_MASTER)/spll_wget_compheader.o $(OBJDIR_MASTER)/spll_wlficas.o \ +$(OBJDIR_MASTER)/spll_wlfiecr.o $(OBJDIR_MASTER)/spll_wlfifer.o \ +$(OBJDIR_MASTER)/spll_wlfilec.o $(OBJDIR_MASTER)/spll_wlfinaf.o \ +$(OBJDIR_MASTER)/spll_wlfinfo.o $(OBJDIR_MASTER)/spll_wlfiouv.o $(OBJDIR_MASTER)/spll_wlfipos.o \ +$(OBJDIR_MASTER)/spll_NEWLFI_ALL.o $(OBJDIR_MASTER)/spll_lockasgn.o \ +$(OBJDIR_MASTER)/spll_lockoff.o $(OBJDIR_MASTER)/spll_lockon.o $(OBJDIR_MASTER)/spll_lockrel.o \ +$(OBJDIR_MASTER)/fswap8buff.o $(OBJDIR_MASTER)/spll_remark2.o +libs4py.so : progmaster + $(F90) -shared $(LDFLAGS) -o $(OBJDIR_MASTER)/$@ $(OBJ_S4PY) $(LIBS) +endif ########################################################## # # # PROGRAM RULES # diff --git a/src/Makefile.MESONH.mk b/src/Makefile.MESONH.mk index 90e2b092e..e4f2f56c8 100644 --- a/src/Makefile.MESONH.mk +++ b/src/Makefile.MESONH.mk @@ -255,6 +255,17 @@ CPPFLAGS_COMPRESS ?= -DLITTLE_endian CPPFLAGS += $(CPPFLAGS_COMPRESS) endif ########################################################## +# Source S4PY # +########################################################## +ifdef MNH_S4PY +DIR_S4PY = LIB/s4py +INC_S4PY = -I$(B)$(DIR_S4PY) +DIR_MASTER += $(DIR_S4PY) +OBJS_LISTE_MASTER += init_gfortran.o +INC += $(INC_S4PY) +VPATH += $(DIR_S4PY) +endif +########################################################## # Source FOREFIRE # ########################################################## ifdef MNH_FOREFIRE diff --git a/src/Rules.AIX64.mk b/src/Rules.AIX64.mk index c207e6df3..9bf3b1262 100644 --- a/src/Rules.AIX64.mk +++ b/src/Rules.AIX64.mk @@ -106,6 +106,11 @@ MNH_TOOLS = yes #if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) MNH_COMPRESS=yes # +## S4PY flag +# +#if MNH_S4PY exists => compile the libs4py library (for epygram) +MNH_S4PY=yes +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.BG.mk b/src/Rules.BG.mk index d34ee73ae..bf5f73d9a 100644 --- a/src/Rules.BG.mk +++ b/src/Rules.BG.mk @@ -117,6 +117,11 @@ CNAME_GRIBEX="" #if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) #MNH_COMPRESS=no # +## S4PY flag +# +#if MNH_S4PY exists => compile the libs4py library (for epygram) +#MNH_S4PY=no +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.BGQ.mk b/src/Rules.BGQ.mk index afd158a03..6418fb149 100644 --- a/src/Rules.BGQ.mk +++ b/src/Rules.BGQ.mk @@ -176,6 +176,11 @@ GRIBAPI_CONF= --host=powerpc64-bgq-linux #if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) #MNH_COMPRESS=no # +## S4PY flag +# +#if MNH_S4PY exists => compile the libs4py library (for epygram) +#MNH_S4PY=no +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.LXNAGfor.mk b/src/Rules.LXNAGfor.mk index 00f9c48b2..64294f6c0 100644 --- a/src/Rules.LXNAGfor.mk +++ b/src/Rules.LXNAGfor.mk @@ -99,6 +99,11 @@ MNH_TOOLS = yes #if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) MNH_COMPRESS=yes # +## S4PY flag +# +#if MNH_S4PY exists => compile the libs4py library (for epygram) +MNH_S4PY=yes +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.LXarm.mk b/src/Rules.LXarm.mk index 918d1fc22..dc9369223 100644 --- a/src/Rules.LXarm.mk +++ b/src/Rules.LXarm.mk @@ -121,6 +121,10 @@ endif #if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) MNH_COMPRESS=yes # +## S4PY flag +# +#if MNH_S4PY exists => compile the libs4py library (for epygram) +MNH_S4PY=yes # ########################################################## # # diff --git a/src/Rules.LXcray.mk b/src/Rules.LXcray.mk index ae24c8420..425a0b9d6 100644 --- a/src/Rules.LXcray.mk +++ b/src/Rules.LXcray.mk @@ -114,6 +114,11 @@ MNH_TOOLS = yes #if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) MNH_COMPRESS=yes # +## S4PY flag +# +#if MNH_S4PY exists => compile the libs4py library (for epygram) +MNH_S4PY=yes +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.LXg95.mk b/src/Rules.LXg95.mk index cdd6184f0..e08e73ed7 100644 --- a/src/Rules.LXg95.mk +++ b/src/Rules.LXg95.mk @@ -86,6 +86,11 @@ MNH_TOOLS = yes #if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) MNH_COMPRESS=yes # +## S4PY flag +# +#if MNH_S4PY exists => compile the libs4py library (for epygram) +MNH_S4PY=yes +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.LXgfortran.mk b/src/Rules.LXgfortran.mk index a606a2fc3..58689e968 100644 --- a/src/Rules.LXgfortran.mk +++ b/src/Rules.LXgfortran.mk @@ -115,6 +115,10 @@ endif #if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) MNH_COMPRESS=yes # +## S4PY flag +# +#if MNH_S4PY exists => compile the libs4py library (for epygram) +MNH_S4PY=yes # ########################################################## # # diff --git a/src/Rules.LXifort.mk b/src/Rules.LXifort.mk index 60af5234d..231f1949a 100644 --- a/src/Rules.LXifort.mk +++ b/src/Rules.LXifort.mk @@ -210,6 +210,11 @@ endif #if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) MNH_COMPRESS=yes # +## S4PY flag +# +#if MNH_S4PY exists => compile the libs4py library (for epygram) +MNH_S4PY=yes +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.LXpathf95.mk b/src/Rules.LXpathf95.mk index 1e0487f1f..fe34aa467 100644 --- a/src/Rules.LXpathf95.mk +++ b/src/Rules.LXpathf95.mk @@ -62,6 +62,11 @@ MNH_TOOLS = yes #if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) MNH_COMPRESS=yes # +## S4PY flag +# +#if MNH_S4PY exists => compile the libs4py library (for epygram) +MNH_S4PY=yes +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.LXpgi.mk b/src/Rules.LXpgi.mk index 7bae40f42..498f56f7b 100644 --- a/src/Rules.LXpgi.mk +++ b/src/Rules.LXpgi.mk @@ -121,6 +121,11 @@ MNH_TOOLS = yes #if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) MNH_COMPRESS=yes # +## S4PY flag +# +#if MNH_S4PY exists => compile the libs4py library (for epygram) +MNH_S4PY=yes +# ########################################################## # # # Source of MESONH PACKAGE Distribution # diff --git a/src/Rules.SX8.mk b/src/Rules.SX8.mk index 1246647cc..abbaf8722 100644 --- a/src/Rules.SX8.mk +++ b/src/Rules.SX8.mk @@ -108,6 +108,11 @@ CNAME_GRIBEX=sxmpif90 #if MNH_COMPRESS exists => compile the COMPRESS library (for LFI files) #MNH_COMPRESS=no # +## S4PY flag +# +#if MNH_S4PY exists => compile the libs4py library (for epygram) +#MNH_S4PY=no +# ########################################################## # # # Source of MESONH PACKAGE Distribution # -- GitLab From eaab2f2d577fc8e768ae174f43509ad2b401ce72 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 21 Feb 2019 16:16:39 +0100 Subject: [PATCH 065/139] Philippe 21/02/2019: NAG and S4PY: fix compilation --- src/Makefile | 2 +- src/Rules.LXNAGfor.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Makefile b/src/Makefile index 8a1039a07..57b158f16 100644 --- a/src/Makefile +++ b/src/Makefile @@ -407,7 +407,7 @@ $(OBJDIR_MASTER)/spll_lockoff.o $(OBJDIR_MASTER)/spll_lockon.o $(OBJDIR_MASTER)/ $(OBJDIR_MASTER)/fswap8buff.o $(OBJDIR_MASTER)/spll_remark2.o libs4py.so : progmaster - $(F90) -shared $(LDFLAGS) -o $(OBJDIR_MASTER)/$@ $(OBJ_S4PY) $(LIBS) + $(CC) -shared $(LDFLAGS) -o $(OBJDIR_MASTER)/$@ $(OBJ_S4PY) $(LIBS) endif ########################################################## # # diff --git a/src/Rules.LXNAGfor.mk b/src/Rules.LXNAGfor.mk index 64294f6c0..397a18c4f 100644 --- a/src/Rules.LXNAGfor.mk +++ b/src/Rules.LXNAGfor.mk @@ -131,5 +131,5 @@ OBJS_I4=spll_modd_netcdf.o $(OBJS_I4) : OPT = $(OPT_BASE_I4) endif # -LIST_MISMATCH=MPI_Allgatherv,MPI_Allreduce,MPI_Bcast,MPI_Bsend,MPI_Gather,MPI_Gatherv,MPI_Recv,LEPOLY +LIST_MISMATCH=MPI_Allgatherv,MPI_Allreduce,MPI_Bcast,MPI_Bsend,MPI_Gather,MPI_Gatherv,MPI_Recv,LEPOLY,EXTRACT_BBUFF,FILL_BBUFF -- GitLab From 2a0cb6d73fda454868930b7fe6973af1dd815608 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 22 Feb 2019 10:06:01 +0100 Subject: [PATCH 066/139] Philippe 22/02/2019: replace Hollerith edit descriptor (deleted from Fortran 95 standard) --- src/MNH/error_on_temperature.f90 | 7 ++++--- src/MNH/fft.f | 12 +++++------- src/MNH/rms_at_z.f90 | 7 ++++--- src/MNH/spawn_model2.f90 | 7 ++++--- src/MNH/ver_int_thermo.f90 | 9 +++++---- src/MNH/ver_interp_to_mixed_grid.f90 | 9 +++++---- 6 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/MNH/error_on_temperature.f90 b/src/MNH/error_on_temperature.f90 index 50b3d4d18..bcdbb9aae 100644 --- a/src/MNH/error_on_temperature.f90 +++ b/src/MNH/error_on_temperature.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######spl @@ -60,6 +60,7 @@ END MODULE MODI_ERROR_ON_TEMPERATURE !! 26/08/97 (V. Masson) call to new linear vertical !! interpolation routine !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 22/02/2019: replace Hollerith edit descriptor (deleted from Fortran 95 standard) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -198,7 +199,7 @@ WRITE(ILUOUT0,*) '' WRITE(ILUOUT0,*) 'Temperature RMS between begin and end of PREP_REAL_CASE :' WRITE(ILUOUT0,*) '' DO JP=20,1,-1 - WRITE(ILUOUT0,'(6Hlevel ,F5.0,7H hPa : ,F5.3,2H K)') ZPLEVELS(JP)/100.,ZTRMS(JP) + WRITE(ILUOUT0,'( "level", F5.0, " hPa : ", F5.3, " K")') ZPLEVELS(JP)/100.,ZTRMS(JP) END DO WRITE(ILUOUT0,*) '' ! diff --git a/src/MNH/fft.f b/src/MNH/fft.f index 92b071484..b0fa5e744 100644 --- a/src/MNH/fft.f +++ b/src/MNH/fft.f @@ -1,12 +1,10 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 solver 2006/05/18 13:07:25 +! Modifications: +! P. Wautelet 22/02/2019: replace Hollerith edit descriptor (deleted from Fortran 95 standard) !----------------------------------------------------------------- SUBROUTINE SET99(TRIGS,IFAX,N) IMPLICIT LOGICAL (L) @@ -55,7 +53,7 @@ C LOOK FOR SIXES FIRST, STORE FACTORS IN DESCENDING ORDER IF (IFAC.GT.1) GO TO 20 C WRITE(6,40) N - 40 FORMAT(4H1N =,I4,27H - CONTAINS ILLEGAL FACTORS) + 40 FORMAT('1N =', I4, ' - CONTAINS ILLEGAL FACTORS') RETURN C C NOW REVERSE ORDER OF FACTORS diff --git a/src/MNH/rms_at_z.f90 b/src/MNH/rms_at_z.f90 index 94cbf8211..3e2b11a93 100644 --- a/src/MNH/rms_at_z.f90 +++ b/src/MNH/rms_at_z.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !################### @@ -62,6 +62,7 @@ END MODULE MODI_RMS_AT_Z !! 26/08/97 (V. Masson) call to new linear vertical !! interpolation routine !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 22/02/2019: replace Hollerith edit descriptor (deleted from Fortran 95 standard) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -172,7 +173,7 @@ WRITE(ILUOUT0,*) '' WRITE(ILUOUT0,*) HTITLE WRITE(ILUOUT0,*) '' DO JZ=1,40 - WRITE(ILUOUT0,'(6Hlevel ,F6.0,5H m : ,F9.3)') ZZLEVELS(JZ),ZRMS(JZ) + WRITE(ILUOUT0,'( "level ", F6.0, " m : ", F9.3 )') ZZLEVELS(JZ),ZRMS(JZ) END DO WRITE(ILUOUT0,*) '' ! diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90 index d920dbc0c..9a4a7eca0 100644 --- a/src/MNH/spawn_model2.f90 +++ b/src/MNH/spawn_model2.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !######################## MODULE MODI_SPAWN_MODEL2 @@ -191,6 +191,7 @@ END MODULE MODI_SPAWN_MODEL2 !! Modification 01/2016 (JP Pinty) Add LIMA !! 10/2016 (C.Lac) Add droplet deposition !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 22/02/2019: replace Hollerith edit descriptor (deleted from Fortran 95 standard) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -1201,7 +1202,7 @@ IF (NVERB>=2) THEN WRITE(ILUOUT,*) ' ' WRITE(ILUOUT,*) 'humidity (I=',IIJ(1),';J=',IIJ(2),')' DO JK=IKB,IKE - WRITE(ILUOUT,'(F6.2,2H %)') ZHUT(IIJ(1),IIJ(2),JK) + WRITE(ILUOUT,'(F6.2," %")') ZHUT(IIJ(1),IIJ(2),JK) END DO END IF !* 5.8 Retrieve model thermodynamical variables : diff --git a/src/MNH/ver_int_thermo.f90 b/src/MNH/ver_int_thermo.f90 index cb815488f..8f4cf7608 100644 --- a/src/MNH/ver_int_thermo.f90 +++ b/src/MNH/ver_int_thermo.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -134,6 +134,7 @@ END MODULE MODI_VER_INT_THERMO !! 08/2015 (M.Moge) add UPDATE_HALO_ll(PR(:,:,:,1)) in part 6.3 !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 22/02/2019: replace Hollerith edit descriptor (deleted from Fortran 95 standard) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -589,13 +590,13 @@ IF (NVERB>=1) THEN WRITE(ILUOUT0,*) ' ' WRITE(ILUOUT0,*) 'Altitude and humidity on shifted grid (I=',IIJ(1),';J=',IIJ(2),')' DO JK=IKB,IKE - WRITE(ILUOUT0,'(6Hlevel ,F6.0,5H m : ,F6.2,2H %)') ZZMASS_SH(IIJ(1),IIJ(2),JK),ZHU_SH(IIJ(1),IIJ(2),JK) + WRITE(ILUOUT0,'( "level ", F6.0, " m : ", F6.2, " %" )') ZZMASS_SH(IIJ(1),IIJ(2),JK),ZHU_SH(IIJ(1),IIJ(2),JK) END DO ! WRITE(ILUOUT0,*) ' ' WRITE(ILUOUT0,*) 'Altitude and humidity on MESO-NH grid (I=',IIJ(1),';J=',IIJ(2),')' DO JK=IKB,IKE - WRITE(ILUOUT0,'(6Hlevel ,F6.0,5H m : ,F6.2,2H %)') ZZMASS (IIJ(1),IIJ(2),JK),ZHU (IIJ(1),IIJ(2),JK) + WRITE(ILUOUT0,'( "level ", F6.0, " m : ", F6.2, " %" )') ZZMASS (IIJ(1),IIJ(2),JK),ZHU (IIJ(1),IIJ(2),JK) END DO END IF ! diff --git a/src/MNH/ver_interp_to_mixed_grid.f90 b/src/MNH/ver_interp_to_mixed_grid.f90 index 7325b1acd..af26de6e1 100644 --- a/src/MNH/ver_interp_to_mixed_grid.f90 +++ b/src/MNH/ver_interp_to_mixed_grid.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################################### @@ -160,6 +160,7 @@ END MODULE MODI_VER_INTERP_TO_MIXED_GRID !! 2014 (M.Faivre) !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 22/02/2019: replace Hollerith edit descriptor (deleted from Fortran 95 standard) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -450,13 +451,13 @@ ZCOUNT = FLOAT((IIE-IIB+1)*(IJE-IJB+1)) WRITE(ILUOUT0,*) ' ' WRITE(ILUOUT0,*) 'Altitude and humidity on large-scale grid (I=',IIJ(1),';J=',IIJ(2),')' DO JK=1,ILU - WRITE(ILUOUT0,'(6Hlevel ,F6.0,5H m : ,F6.2,2H %)') PZMASS_LS(IIJ(1),IIJ(2),JK),PHU_LS(IIJ(1),IIJ(2),JK) + WRITE(ILUOUT0,'( "level ", F6.0, " m : ", F6.2, " %" )') PZMASS_LS(IIJ(1),IIJ(2),JK),PHU_LS(IIJ(1),IIJ(2),JK) END DO ! WRITE(ILUOUT0,*) ' ' WRITE(ILUOUT0,*) 'Altitude and humidity on mixed grid (I=',IIJ(1),';J=',IIJ(2),')' DO JK=JPVEXT+1,IKE - WRITE(ILUOUT0,'(6Hlevel ,F6.0,5H m : ,F6.2,2H %)') XZMASS_MX(IIJ(1),IIJ(2),JK),ZHU_MX(IIJ(1),IIJ(2),JK) + WRITE(ILUOUT0,'( "level ", F6.0, " m : ", F6.2, " %" )') XZMASS_MX(IIJ(1),IIJ(2),JK),ZHU_MX(IIJ(1),IIJ(2),JK) END DO END IF ! -- GitLab From 3baca1f3a87577c63e701d10bfe817064d66b9a6 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 22 Feb 2019 10:31:48 +0100 Subject: [PATCH 067/139] Philippe 22/02/2019: DOUBLE COMPLEX -> COMPLEX(kind(0.0d0)) to respect Fortran standard --- src/MNH/mode_RBK90_linearalgebra.f90 | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/MNH/mode_RBK90_linearalgebra.f90 b/src/MNH/mode_RBK90_linearalgebra.f90 index ac5dc5fa4..8fd23aa13 100644 --- a/src/MNH/mode_RBK90_linearalgebra.f90 +++ b/src/MNH/mode_RBK90_linearalgebra.f90 @@ -1,10 +1,11 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. - -!****************************************************************** - +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 22/02/2019: DOUBLE COMPLEX -> COMPLEX(kind(0.0d0)) to respect Fortran standard +!----------------------------------------------------------------- ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ! ! Linear Algebra Data and Routines File @@ -97,7 +98,7 @@ SUBROUTINE KppDecompCmplx( JVS, IER ) USE MODD_RBK90_JacobianSP_n INTEGER :: IER - DOUBLE COMPLEX :: JVS(LU_NONZERO), W(NVAR), a + COMPLEX (KIND(0.0D0)) :: JVS(LU_NONZERO), W(NVAR), a REAL :: b = 0.0 INTEGER :: k, kk, j, jj @@ -243,7 +244,7 @@ SUBROUTINE KppSolveCmplx( JVS, X ) USE MODD_RBK90_JacobianSP_n INTEGER :: i, j - DOUBLE COMPLEX :: JVS(LU_NONZERO), X(NVAR), sum + COMPLEX (KIND(0.0D0)) :: JVS(LU_NONZERO), X(NVAR), sum DO i=1,NVAR DO j = LU_CROW(i), LU_DIAG(i)-1 @@ -305,7 +306,7 @@ SUBROUTINE KppSolveTRCmplx( JVS, X ) USE MODD_RBK90_JacobianSP_n INTEGER :: i, j - DOUBLE COMPLEX :: JVS(LU_NONZERO), X(NVAR) + COMPLEX (KIND(0.0D0)) :: JVS(LU_NONZERO), X(NVAR) DO i=1,NVAR X(i) = X(i)/JVS(LU_DIAG(i)) -- GitLab From 0444e01d0529e049ab33178e2dd9f619a7d9a668 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 22 Feb 2019 10:32:38 +0100 Subject: [PATCH 068/139] Philippe 22/02/2019: use MOD intrinsics with same kind for all arguments (to respect Fortran standard) --- src/MNH/flash_geom_elec.f90 | 8 +++++--- src/MNH/mode_datetime.f90 | 7 +++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/MNH/flash_geom_elec.f90 b/src/MNH/flash_geom_elec.f90 index e0b13e74f..cc467d1dd 100644 --- a/src/MNH/flash_geom_elec.f90 +++ b/src/MNH/flash_geom_elec.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ############################# MODULE MODI_FLASH_GEOM_ELEC_n ! ############################# @@ -91,8 +92,9 @@ END MODULE MODI_FLASH_GEOM_ELEC_n !! J.Escobar : 20/06/2018 : Correction of computation of global index I8VECT !! J.Escobar : 10/12/2018 : // Correction , mpi_bcast CG & CG_POS parameter !! & initialize INBLIGHT on all proc for filling/saving AREA* arrays -!! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN -!! Philippe Wautelet: 22/01/2019: use standard FLUSH statement instead of non standard intrinsics!! +! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN +! P. Wautelet 22/01/2019: use standard FLUSH statement instead of non standard intrinsics!! +! P. Wautelet 22/02/2019: use MOD intrinsics with same kind for all arguments (to respect Fortran standard) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -2191,7 +2193,7 @@ DO WHILE (IM .LE. IDELTA_IND .AND. ISTOP .NE. 1) IF (IRANK_LL(IORDER_LL(ICHOICE)) .EQ. IPROC) THEN JK = 1 + (I8VECT_LL(ICHOICE)-1) / ( IJU_ll*IIU_ll ) JJ = 1 + ( (I8VECT_LL(ICHOICE)-1) - IJU_ll*IIU_ll*(JK-1) ) / IIU_ll - IYOR +1 - JI = 1 + MOD((I8VECT_LL(ICHOICE)-1) , IIU_ll) - IXOR +1 + JI = 1 + MOD((I8VECT_LL(ICHOICE)-1) , int(IIU_ll,kind(I8VECT_LL(1)))) - IXOR +1 !print*,"OUT => I8VECT_LL(ICHOICE)=",I8VECT_ll(ICHOICE),JI,JJ,JK,ICHOICE ZFLASH(JI,JJ,JK,IL) = 2. END IF diff --git a/src/MNH/mode_datetime.f90 b/src/MNH/mode_datetime.f90 index a09557b78..2684e11d4 100644 --- a/src/MNH/mode_datetime.f90 +++ b/src/MNH/mode_datetime.f90 @@ -1,8 +1,11 @@ -!MNH_LIC Copyright 2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2018-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- +! Modifications: +! P. Wautelet 22/02/2019: use MOD intrinsics with same kind for all arguments (to respect Fortran standard) +!----------------------------------------------------------------- MODULE MODE_DATETIME ! USE MODD_TYPE_DATE @@ -57,7 +60,7 @@ IDAY_CUR = TZDATE%TDATE%DAY ZSEC = TZDATE%TIME ! !Compute number of days since beginning of the year -IF ( ((MOD(IYEAR_CUR,4)==0).AND.(MOD(IYEAR_CUR,100)/=0)) .OR. (MOD(IYEAR_CUR,400)==0)) ILEAPS=1 +IF ( ((MOD(IYEAR_CUR,4_8)==0).AND.(MOD(IYEAR_CUR,100_8)/=0)) .OR. (MOD(IYEAR_CUR,400_8)==0)) ILEAPS=1 SELECT CASE(IMONTH_CUR) CASE(1) IDAYS = IDAY_CUR-1 -- GitLab From 12e849435b65559816d9b6de1159239be69e550c Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 22 Feb 2019 14:54:21 +0100 Subject: [PATCH 069/139] Philippe 22/02/2019: add kind parameter for CMPLX intrinsics (if not it default to single precision) --- src/MNH/aeroopt_get.f90 | 98 +++++++++++++++++++------------------- src/MNH/bhmie.f90 | 13 ++--- src/MNH/bhmie_bhcoat.f90 | 13 ++--- src/MNH/ch_ph_polyroot.f90 | 13 ++--- src/MNH/ch_solve_ph.f90 | 13 ++--- src/MNH/mode_tmat.f90 | 11 +++-- 6 files changed, 81 insertions(+), 80 deletions(-) diff --git a/src/MNH/aeroopt_get.f90 b/src/MNH/aeroopt_get.f90 index c58b83a01..485e87b68 100644 --- a/src/MNH/aeroopt_get.f90 +++ b/src/MNH/aeroopt_get.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ################### MODULE MODI_AEROOPT_GET @@ -68,7 +68,8 @@ !! ------ !! Benjamin Aouizerats (CNRM/GMEI) !! -!! +! Modifications: +! P. Wautelet 22/02/2019: add kind parameter for CMPLX intrinsics (if not it default to single precision) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -160,48 +161,48 @@ DO JMDE=1,NMODE_AER - Ri(1,1)=CMPLX(1.80,-7.40E-1) - Ri(1,2)=CMPLX(1.80,-7.40E-1) - Ri(1,3)=CMPLX(1.83,-7.40E-1) - Ri(1,4)=CMPLX(1.88,-6.90E-1) - Ri(1,5)=CMPLX(1.97,-6.80E-1) - Ri(1,6)=CMPLX(2.10,-7.20E-1) - - Ri(2,1)=CMPLX(1.45,-1.00E-3) - Ri(2,2)=CMPLX(1.45,-1.00E-3) - Ri(2,3)=CMPLX(1.45,-1.00E-3) - Ri(2,4)=CMPLX(1.46,-1.00E-3) - Ri(2,5)=CMPLX(1.49,-1.00E-3) - Ri(2,6)=CMPLX(1.42,-1.26E-2) - - Ri(3,1)=CMPLX(1.36,-3.60E-8) - Ri(3,2)=CMPLX(1.34,-3.00E-9) - Ri(3,3)=CMPLX(1.33,-1.80E-8) - Ri(3,4)=CMPLX(1.33,-5.75E-7) - Ri(3,5)=CMPLX(1.31,-1.28E-4) - Ri(3,6)=CMPLX(1.42,-2.54E-1) + Ri(1,1)=CMPLX(1.80,-7.40E-1,kind=kind(Ri(1,1))) + Ri(1,2)=CMPLX(1.80,-7.40E-1,kind=kind(Ri(1,1))) + Ri(1,3)=CMPLX(1.83,-7.40E-1,kind=kind(Ri(1,1))) + Ri(1,4)=CMPLX(1.88,-6.90E-1,kind=kind(Ri(1,1))) + Ri(1,5)=CMPLX(1.97,-6.80E-1,kind=kind(Ri(1,1))) + Ri(1,6)=CMPLX(2.10,-7.20E-1,kind=kind(Ri(1,1))) + + Ri(2,1)=CMPLX(1.45,-1.00E-3,kind=kind(Ri(1,1))) + Ri(2,2)=CMPLX(1.45,-1.00E-3,kind=kind(Ri(1,1))) + Ri(2,3)=CMPLX(1.45,-1.00E-3,kind=kind(Ri(1,1))) + Ri(2,4)=CMPLX(1.46,-1.00E-3,kind=kind(Ri(1,1))) + Ri(2,5)=CMPLX(1.49,-1.00E-3,kind=kind(Ri(1,1))) + Ri(2,6)=CMPLX(1.42,-1.26E-2,kind=kind(Ri(1,1))) + + Ri(3,1)=CMPLX(1.36,-3.60E-8,kind=kind(Ri(1,1))) + Ri(3,2)=CMPLX(1.34,-3.00E-9,kind=kind(Ri(1,1))) + Ri(3,3)=CMPLX(1.33,-1.80E-8,kind=kind(Ri(1,1))) + Ri(3,4)=CMPLX(1.33,-5.75E-7,kind=kind(Ri(1,1))) + Ri(3,5)=CMPLX(1.31,-1.28E-4,kind=kind(Ri(1,1))) + Ri(3,6)=CMPLX(1.42,-2.54E-1,kind=kind(Ri(1,1))) - Ri(4,1)=CMPLX(1.52,-5.00E-4) - Ri(4,2)=CMPLX(1.52,-5.00E-4) - Ri(4,3)=CMPLX(1.52,-5.00E-4) - Ri(4,4)=CMPLX(1.52,-5.00E-4) - Ri(4,5)=CMPLX(1.51,-5.00E-4) - Ri(4,6)=CMPLX(1.35,-1.40E-2) + Ri(4,1)=CMPLX(1.52,-5.00E-4,kind=kind(Ri(1,1))) + Ri(4,2)=CMPLX(1.52,-5.00E-4,kind=kind(Ri(1,1))) + Ri(4,3)=CMPLX(1.52,-5.00E-4,kind=kind(Ri(1,1))) + Ri(4,4)=CMPLX(1.52,-5.00E-4,kind=kind(Ri(1,1))) + Ri(4,5)=CMPLX(1.51,-5.00E-4,kind=kind(Ri(1,1))) + Ri(4,6)=CMPLX(1.35,-1.40E-2,kind=kind(Ri(1,1))) - Ri(5,1)=CMPLX(1.53,-5.00E-3) - Ri(5,2)=CMPLX(1.53,-5.00E-3) - Ri(5,3)=CMPLX(1.53,-6.00E-3) - Ri(5,4)=CMPLX(1.52,-1.30E-2) - Ri(5,5)=CMPLX(1.52,-1.30E-2) - Ri(5,6)=CMPLX(1.45,-5.00E-1) + Ri(5,1)=CMPLX(1.53,-5.00E-3,kind=kind(Ri(1,1))) + Ri(5,2)=CMPLX(1.53,-5.00E-3,kind=kind(Ri(1,1))) + Ri(5,3)=CMPLX(1.53,-6.00E-3,kind=kind(Ri(1,1))) + Ri(5,4)=CMPLX(1.52,-1.30E-2,kind=kind(Ri(1,1))) + Ri(5,5)=CMPLX(1.52,-1.30E-2,kind=kind(Ri(1,1))) + Ri(5,6)=CMPLX(1.45,-5.00E-1,kind=kind(Ri(1,1))) - Ri(6,1)=CMPLX(1.448,-0.00292) - Ri(6,2)=CMPLX(1.448,-0.00292) - Ri(6,3)=CMPLX(1.4777,-0.01897) - Ri(6,4)=CMPLX(1.44023,-0.00116) - Ri(6,5)=CMPLX(1.41163,-0.00106) - Ri(6,6)=CMPLX(1.41163,-0.00106) + Ri(6,1)=CMPLX(1.448,-0.00292,kind=kind(Ri(1,1))) + Ri(6,2)=CMPLX(1.448,-0.00292,kind=kind(Ri(1,1))) + Ri(6,3)=CMPLX(1.4777,-0.01897,kind=kind(Ri(1,1))) + Ri(6,4)=CMPLX(1.44023,-0.00116,kind=kind(Ri(1,1))) + Ri(6,5)=CMPLX(1.41163,-0.00106,kind=kind(Ri(1,1))) + Ri(6,6)=CMPLX(1.41163,-0.00106,kind=kind(Ri(1,1))) ! Computation of the refractive index for the whole aerosol mode according to ! Maxwell-Garnett mixing rule @@ -235,17 +236,18 @@ DO JWVL=1,KSWB !Number of SW wavelengths - eps1(:,:,:)=CMPLX((Ri(1,JWVL)*VBC(:,:,:)+Ri(2,JWVL)*VOC(:,:,:)+VDDST(:,:,:)*Ri(6,JWVL))/(VBC(:,:,:)+VOC(:,:,:)))**2 - Req(:,:,:,JWVL)=sqrt(CMPLX(eps1(:,:,:))) + eps1(:,:,:)=CMPLX((Ri(1,JWVL)*VBC(:,:,:)+Ri(2,JWVL)*VOC(:,:,:)+VDDST(:,:,:)*Ri(6,JWVL))/(VBC(:,:,:)+VOC(:,:,:)), & + kind=kind(eps1(1,1,1)))**2 + Req(:,:,:,JWVL)=sqrt(CMPLX(eps1(:,:,:),kind=kind(eps1(1,1,1)))) WHERE (VEXTR(:,:,:).NE.0. ) eps2(:,:,:)=CMPLX((VSOA(:,:,:)*Ri(2,JWVL)+VH2O(:,:,:)*Ri(3,JWVL)+VAM(:,:,:)*Ri(4,JWVL)& +VSU(:,:,:)*Ri(4,JWVL)+VNI(:,:,:)*Ri(5,JWVL))/& - (VSOA(:,:,:)+VH2O(:,:,:)+VAM(:,:,:)+VSU(:,:,:)+VNI(:,:,:)))**2 + (VSOA(:,:,:)+VH2O(:,:,:)+VAM(:,:,:)+VSU(:,:,:)+VNI(:,:,:)),kind=kind(eps2(1,1,1)))**2 f1(:,:,:)=(VOC(:,:,:)+VBC(:,:,:))/(VSOA(:,:,:)+VH2O(:,:,:)+VAM(:,:,:)+VSU(:,:,:)+VNI(:,:,:)+VOC(:,:,:)+VBC(:,:,:)) eps3(:,:,:)=CMPLX(eps2(:,:,:)*(eps1(:,:,:)+2*eps2(:,:,:)+2*f1(:,:,:)*(eps1(:,:,:)-eps2(:,:,:)))/& - (eps1(:,:,:)+2*eps2(:,:,:)-f1(:,:,:)*(eps1(:,:,:)-eps2(:,:,:)))) - Req(:,:,:,JWVL)=sqrt(CMPLX(eps3(:,:,:))) + (eps1(:,:,:)+2*eps2(:,:,:)-f1(:,:,:)*(eps1(:,:,:)-eps2(:,:,:))),kind=kind(eps3(1,1,1))) + Req(:,:,:,JWVL)=sqrt(CMPLX(eps3(:,:,:),kind=kind(eps3(1,1,1)))) ENDWHERE ENDDO @@ -254,8 +256,8 @@ +ZMASS(:,:,:,8,JMDE)+ZMASS(:,:,:,9,JMDE)+ZMASS(:,:,:,10,JMDE)+ZMASS(:,:,:,11,JMDE)& +ZMASS(:,:,:,12,JMDE)+ZMASS(:,:,:,13,JMDE)+ZMASS(:,:,:,14,JMDE)+ZMASS(:,:,:,15,JMDE)& +ZMASS(:,:,:,16,JMDE) - PII(:,:,:,:) = aimag(CMPLX(Req(:,:,:,:))) - PIR(:,:,:,:) = real(CMPLX(Req(:,:,:,:))) + PII(:,:,:,:) = aimag(CMPLX(Req(:,:,:,:),kind=kind(PII(1,1,1,1)))) + PIR(:,:,:,:) = real( CMPLX(Req(:,:,:,:),kind=kind(PIR(1,1,1,1)))) !Get aerosol optical properties from look up tables diff --git a/src/MNH/bhmie.f90 b/src/MNH/bhmie.f90 index 5e1d0e340..8aeb78f03 100644 --- a/src/MNH/bhmie.f90 +++ b/src/MNH/bhmie.f90 @@ -63,7 +63,8 @@ END MODULE MODI_BHMIE !! portable. In event that portable version is !! needed, use src/bhmie_f77.f !! 93/06/01 (BTD): Changed AMAX1 to generic function MAX -!! 22/01/2019 (P.Wautelet): correct kind of complex datatype +! P. Wautelet 22/01/2019: correct kind of complex datatype +! P. Wautelet 22/02/2019: add kind parameter for CMPLX intrinsics (if not it default to single precision) !!*********************************************************************** ! !* 0. DECLARATIONS @@ -151,11 +152,11 @@ ZPSI0 = COS(PSIZE_PARAM) ZPSI1 = SIN(PSIZE_PARAM) ZCHI0 =-SIN(PSIZE_PARAM) ZCHI1 = COS(PSIZE_PARAM) -ZZXI1 = CMPLX(ZPSI1,-ZCHI1) +ZZXI1 = CMPLX(ZPSI1,-ZCHI1,kind=kind(ZZXI1)) ZONE = -1. ! -ZZAN1 = CMPLX(0.0,0.0) -ZZBN1 = CMPLX(0.0,0.0) +ZZAN1 = CMPLX(0.0d0,0.0d0,kind=kind(ZZAN1)) +ZZBN1 = CMPLX(0.0d0,0.0d0,kind=kind(ZZBN1)) DO J = 1,ISTOP ZEN = FLOAT(J) ZFN = (2.0*ZEN+1.0)/(ZEN*(ZEN+1.0)) @@ -167,7 +168,7 @@ DO J = 1,ISTOP ! ZPSI = (2.0*ZEN-1.0)*ZPSI1/PSIZE_PARAM-ZPSI0 ZCHI = (2.0*ZEN-1.0)*ZCHI1/PSIZE_PARAM-ZCHI0 - ZZXI = CMPLX(ZPSI,-ZCHI) + ZZXI = CMPLX(ZPSI,-ZCHI,kind=kind(ZZXI)) ! !*** Compute AN and BN: ! @@ -206,7 +207,7 @@ DO J = 1,ISTOP ZPSI1 = ZPSI ZCHI0 = ZCHI1 ZCHI1 = ZCHI - ZZXI1 = CMPLX(ZPSI1,-ZCHI1) + ZZXI1 = CMPLX(ZPSI1,-ZCHI1,kind=kind(ZZXI1)) ! !*** Compute pi_n for next value of n ! For each angle J, compute pi_n+1 diff --git a/src/MNH/bhmie_bhcoat.f90 b/src/MNH/bhmie_bhcoat.f90 index 6f315742c..c235f2ab1 100644 --- a/src/MNH/bhmie_bhcoat.f90 +++ b/src/MNH/bhmie_bhcoat.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ######################## MODULE MODI_BHMIE_BHCOAT @@ -46,6 +46,7 @@ END MODULE MODI_BHMIE_BHCOAT !! !! History: !! 92/11/24 (BTD) Explicit declaration of all variables +! P. Wautelet 22/02/2019: add kind parameter for CMPLX intrinsics (if not it default to single precision) !!*********************************************************************** ! !* 0. DECLARATIONS @@ -114,8 +115,8 @@ ZPSI0Y = COS(PSIZE_PARAM_COAT) ZPSI1Y = SIN(PSIZE_PARAM_COAT) ZCHI0Y =-SIN(PSIZE_PARAM_COAT) ZCHI1Y = COS(PSIZE_PARAM_COAT) -ZZXI0Y = CMPLX(ZPSI0Y,-ZCHI0Y) -ZZXI1Y = CMPLX(ZPSI1Y,-ZCHI1Y) +ZZXI0Y = CMPLX(ZPSI0Y,-ZCHI0Y,kind=kind(ZZXI0Y)) +ZZXI1Y = CMPLX(ZPSI1Y,-ZCHI1Y,kind=kind(ZZXI1Y)) ! ZZCHI0Y2 =-SIN(ZZY2) ZZCHI1Y2 = COS(ZZY2) @@ -130,7 +131,7 @@ DO JJ = 1,ISTOP ZEN = FLOAT(JJ) ZPSIY = (2.0*ZEN-1.)*ZPSI1Y/PSIZE_PARAM_COAT - ZPSI0Y ZCHIY = (2.0*ZEN-1.)*ZCHI1Y/PSIZE_PARAM_COAT - ZCHI0Y - ZZXIY = CMPLX(ZPSIY,-ZCHIY) + ZZXIY = CMPLX(ZPSIY,-ZCHIY,kind=kind(ZZXIY)) ! ZZD1Y2 = 1.0/(ZEN/ZZY2-ZZD0Y2) - ZEN/ZZY2 ! @@ -179,7 +180,7 @@ DO JJ = 1,ISTOP ZPSI1Y = ZPSIY ZCHI0Y = ZCHI1Y ZCHI1Y = ZCHIY - ZZXI1Y = CMPLX(ZPSI1Y,-ZCHI1Y) + ZZXI1Y = CMPLX(ZPSI1Y,-ZCHI1Y,kind=kind(ZZXI1Y)) ! ZZCHI0X2 = ZZCHI1X2 ZZCHI1X2 = ZZCHIX2 diff --git a/src/MNH/ch_ph_polyroot.f90 b/src/MNH/ch_ph_polyroot.f90 index c04194158..1ae312322 100644 --- a/src/MNH/ch_ph_polyroot.f90 +++ b/src/MNH/ch_ph_polyroot.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2007-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -34,6 +34,7 @@ END MODULE MODI_CH_PH_POLYROOT !! MODIFICATIONS !! ------------- !! Original 26/03/07 +! P. Wautelet 22/02/2019: add kind parameter for CMPLX intrinsics (if not it default to single precision) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -66,10 +67,10 @@ ZZDEFLATED_COEF(:) = PPCOEF(:) ! First estimate of the roots ! DO JJ=KORDER,1,-1 - ZROOT = CMPLX(0.0,0.0) + ZROOT = CMPLX(0.0d0,0.0d0,kind=kind(ZROOT)) CALL LAGUERRE(ZZDEFLATED_COEF, JJ, ZROOT, IITER) IF( ABS(AIMAG(ZROOT))<=2.0*ZEPS**(2*ABS(REAL(ZROOT))) ) THEN - ZROOT = CMPLX(REAL(ZROOT),0.0) + ZROOT = CMPLX(REAL(ZROOT,kind=kind(ZROOT)),0.0d0,kind=kind(ZROOT)) END IF PPALL_ROOTS(JJ) = ZROOT ZB = ZZDEFLATED_COEF(JJ+1) @@ -125,8 +126,8 @@ CONTAINS IITS = JITER ZZB = PA(IM+1) ZERR = ABS(ZZB) - ZZD = CMPLX(0.0,0.0) - ZZF = CMPLX(0.0,0.0) + ZZD = CMPLX(0.0d0,0.0d0,kind=kind(ZZD)) + ZZF = CMPLX(0.0d0,0.0d0,kind=kind(ZZF)) ZABX = ABS(PX) DO JJ=IM,1,-1 ZZF = PX*ZZF+ZZD @@ -154,7 +155,7 @@ CONTAINS IF(MAX(ZABP,ZABM) > 0.0) THEN ZZDX = FLOAT(IM)/ZZGP ELSE - ZZDX = EXP(CMPLX(LOG(1.0+ZABX),FLOAT(JITER))) + ZZDX = EXP(CMPLX(LOG(1.0+ZABX),REAL(JITER,kind=kind(ZZDX)),kind=kind(ZZDX))) END IF END IF ZZX1 = PX-ZZDX diff --git a/src/MNH/ch_solve_ph.f90 b/src/MNH/ch_solve_ph.f90 index f9b994cdf..566267544 100644 --- a/src/MNH/ch_solve_ph.f90 +++ b/src/MNH/ch_solve_ph.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2007-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source: /home//MESONH/MNH-V4-6-5/src/SRC_CHIMAQ/ch_solve_ph.f90 -!----------------------------------------------------------------- !! ####################### MODULE MODI_CH_SOLVE_PH !! ####################### @@ -63,6 +59,7 @@ END MODULE MODI_CH_SOLVE_PH !! M. Leriche 16/11/07 add sulfuric acid !! J.-P. Pinty 11/07/07 add CO3-- and SO3-- !! M. Leriche 05/06/08 add sum of ions +! P. Wautelet 22/02/2019: add kind parameter for CMPLX intrinsics (if not it default to single precision) !! !! EXTERNAL !! -------- @@ -217,9 +214,7 @@ ZCOEFS(:,2) = ZCOEFS(:,2) -2.0*(K11*K21*K3*KW*K22*(C1*K12+K12*C2)) ! ALLOCATE(ZZCOEFS(KLW,IORDER+1)) ALLOCATE(ZZROOTS(KLW,IORDER)) -DO JJ=1,IORDER+1 - ZZCOEFS(:,JJ) = CMPLX(ZCOEFS(:,JJ),0.0) -END DO +ZZCOEFS(:,:) = CMPLX(ZCOEFS(:,:),0.0d0,kind=kind(ZCOEFS(1,1))) GPOLISH=.TRUE. ! DO JI = 1, KLW diff --git a/src/MNH/mode_tmat.f90 b/src/MNH/mode_tmat.f90 index f0c98a799..bf86fd39e 100644 --- a/src/MNH/mode_tmat.f90 +++ b/src/MNH/mode_tmat.f90 @@ -15,7 +15,8 @@ ! ! Modif par Olivier Caumont (04/2008) pour interfaçage avec diagnostic ! radar de Méso-NH. -! P. Wautelet 22/01/2019: replace double precision declarations by real(kind(0.0d0)) (to allow compilation by NAG compiler) +! P. Wautelet 22/01/2019: replace double precision declarations by real(kind(0.0d0)) (to allow compilation by NAG compiler) +! P. Wautelet 22/02/2019: add kind parameter for CMPLX intrinsics (if not it default to single precision) ! !**************************************************************************** @@ -1388,8 +1389,8 @@ DV1N=M*DV1(N) DV2N=DV2(N) - CT11=CMPLX(XRT11(M1,N,NN),XIT11(M1,N,NN)) - CT22=CMPLX(XRT22(M1,N,NN),XIT22(M1,N,NN)) + CT11=CMPLX(XRT11(M1,N,NN),XIT11(M1,N,NN),kind=kind(CT11)) + CT22=CMPLX(XRT22(M1,N,NN),XIT22(M1,N,NN),kind=kind(CT22)) IF (M.EQ.0) THEN @@ -1400,8 +1401,8 @@ ELSE - CT12=CMPLX(XRT12(M1,N,NN),XIT12(M1,N,NN)) - CT21=CMPLX(XRT21(M1,N,NN),XIT21(M1,N,NN)) + CT12=CMPLX(XRT12(M1,N,NN),XIT12(M1,N,NN),kind=kind(CT12)) + CT21=CMPLX(XRT21(M1,N,NN),XIT21(M1,N,NN),kind=kind(CT21)) CN1=CAL(N,NN)*FC CN2=CAL(N,NN)*FS -- GitLab From 488b7b5e743ac05eec56a635eea0cc9ea91a9794 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 22 Feb 2019 15:59:02 +0100 Subject: [PATCH 070/139] Philippe 22/02/2019: set HCOMMENT for all subroutines (dummy argument with intent OUT) --- src/MNH/read_surf_mnh.f90 | 59 ++++++++++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 17 deletions(-) diff --git a/src/MNH/read_surf_mnh.f90 b/src/MNH/read_surf_mnh.f90 index 21ddfeba6..5415ffdef 100644 --- a/src/MNH/read_surf_mnh.f90 +++ b/src/MNH/read_surf_mnh.f90 @@ -5,6 +5,7 @@ !----------------------------------------------------------------- ! Modifications: !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 22/02/2019: set HCOMMENT for all subroutines (dummy argument with intent OUT) !----------------------------------------------------------------- MODULE MODE_READ_SURF_MNH_TOOLS @@ -157,7 +158,7 @@ IMPLICIT NONE CHARACTER(LEN=LEN_HREC),INTENT(IN) :: HREC ! name of the article to be read REAL, INTENT(OUT) :: PFIELD ! the real scalar to be read INTEGER, INTENT(OUT) :: KRESP ! KRESP : return-code if a problem appears -CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment +CHARACTER(LEN=*), INTENT(OUT) :: HCOMMENT ! comment ! !* 0.2 Declarations of local variables ! @@ -175,6 +176,7 @@ TYPE(TFIELDDATA) :: TZFIELD CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFX0_MNH',TRIM(TPINFILE%CNAME)//': reading '//TRIM(HREC)) ! ILUOUT = TOUT%NLU +HCOMMENT='' ! IF (HREC=='LONORI' .OR. HREC=='LATORI') THEN IF (TPINFILE%NMNHVERSION(1)<4 .OR. (TPINFILE%NMNHVERSION(1)==4 .AND. TPINFILE%NMNHVERSION(2)<=5)) THEN @@ -231,6 +233,7 @@ IF ( HREC=='LAT0' .OR. HREC=='LON0' .OR. HREC=='RPK' .OR. HREC=='BETA' & ELSE CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPEREAL,0,'READ_SURFX0_MNH',TZFIELD) CALL IO_READ_FIELD(TPINFILE,TZFIELD,PFIELD,KRESP) + HCOMMENT = TZFIELD%CCOMMENT END IF IF (KRESP /=0) THEN @@ -313,7 +316,7 @@ CHARACTER(LEN=LEN_HREC),INTENT(IN) :: HREC ! name of the article to be read INTEGER, INTENT(IN) :: KL ! number of points REAL, DIMENSION(KL), INTENT(OUT):: PFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP ! KRESP : return-code if a problem appears -CHARACTER(LEN=100), INTENT(OUT):: HCOMMENT ! comment +CHARACTER(LEN=*), INTENT(OUT):: HCOMMENT ! comment CHARACTER(LEN=1), INTENT(IN) :: HDIR ! type of field : ! ! 'H' for HOR : with hor. dim.; and distributed. ! ! 'A' for ALL : with hor. dim.; and not distributed. @@ -345,6 +348,7 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFX1_MNH',TRIM(TPINFILE%CNAME)//': readi ! KRESP = 0 ILUOUT = TOUT%NLU +HCOMMENT = ' ' ! IF (HDIR=='A'.OR.HDIR=='E') THEN IIU = NIU_ALL @@ -381,7 +385,6 @@ ELSE IF (HREC=='LON') THEN ELSE IF (HREC=='MESH_SIZE') THEN PFIELD(:) = 0. - HCOMMENT = ' ' ELSE IF (HREC=='XX') THEN !! reading of a 1D field along X in the file @@ -396,6 +399,7 @@ ELSE IF (HREC=='XX') THEN TZFIELD%CDIR = '--' END IF CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK1D,KRESP) + HCOMMENT = TZFIELD%CCOMMENT DO JJ = 1,IJU ZWORK(IIB:IIE,JJ) = 0.5 * ZWORK1D(IIB:IIE) + 0.5 * ZWORK1D(IIB+1:IIE+1) END DO @@ -415,6 +419,7 @@ ELSE IF (HREC=='DX') THEN TZFIELD%CDIR = '--' END IF CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK1D,KRESP) + HCOMMENT = TZFIELD%CCOMMENT DO JJ = 1,IJU ZWORK(IIB:IIE,JJ) = - ZWORK1D(IIB:IIE) + ZWORK1D(IIB+1:IIE+1) END DO @@ -434,6 +439,7 @@ ELSE IF (HREC=='YY') THEN TZFIELD%CDIR = '--' END IF CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK1D,KRESP) + HCOMMENT = TZFIELD%CCOMMENT DO JI = 1,IIU ZWORK(JI,IJB:IJE) = 0.5 * ZWORK1D(IJB:IJE) + 0.5 * ZWORK1D(IJB+1:IJE+1) END DO @@ -453,6 +459,7 @@ ELSE IF (HREC=='DY') THEN TZFIELD%CDIR = '--' END IF CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK1D,KRESP) + HCOMMENT = TZFIELD%CCOMMENT DO JI = 1,IIU ZWORK(JI,IJB:IJE) = - ZWORK1D(IJB:IJE) + ZWORK1D(IJB+1:IJE+1) END DO @@ -502,6 +509,7 @@ ELSE CALL PREPARE_METADATA_READ_SURF(YREC,'--',4,TYPEREAL,1,'READ_SURFX1_MNH',TZFIELD) CALL IO_READ_FIELD(TPINFILE,TZFIELD,PFIELD,KRESP) END IF + HCOMMENT = TZFIELD%CCOMMENT ! IF (KRESP /=0) THEN WRITE(ILUOUT,*) 'WARNING' @@ -598,7 +606,7 @@ INTEGER, INTENT(IN) :: KL1 ! number of points INTEGER, INTENT(IN) :: KL2 ! second dimension REAL, DIMENSION(KL1,KL2),INTENT(OUT) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT) :: KRESP ! KRESP : return-code if a problem appears -CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment +CHARACTER(LEN=*), INTENT(OUT) :: HCOMMENT ! comment CHARACTER(LEN=1), INTENT(IN) :: HDIR ! type of field : ! ! 'H' for HOR : with hor. dim.; and distributed. ! ! 'A' for ALL : with hor. dim.; and not distributed. @@ -641,6 +649,8 @@ ELSE CALL IO_READ_FIELD(TPINFILE,TZFIELD,PFIELD,KRESP) END IF ! +HCOMMENT = TZFIELD%CCOMMENT +! IF (KRESP /=0) THEN WRITE(ILUOUT,*) 'WARNING' WRITE(ILUOUT,*) '-------' @@ -736,7 +746,7 @@ INTEGER, INTENT(IN) :: KL1,KL2 ! number of points REAL, DIMENSION(KL1,KL2), INTENT(OUT):: PFIELD ! array containing the data field LOGICAL,DIMENSION(JPCOVER),INTENT(IN) :: OFLAG ! mask for array filling INTEGER, INTENT(OUT):: KRESP ! KRESP : return-code if a problem appears -CHARACTER(LEN=100), INTENT(OUT):: HCOMMENT ! comment +CHARACTER(LEN=*), INTENT(OUT):: HCOMMENT ! comment CHARACTER(LEN=1), INTENT(IN) :: HDIR ! type of field : ! ! 'H' for HOR : with hor. dim.; and distributed. ! ! 'A' for ALL : with hor. dim.; and not distributed. @@ -844,6 +854,8 @@ ELSE CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK3D(:,:,:),KRESP) END IF ! +HCOMMENT = TZFIELD%CCOMMENT +! IF (KRESP /=0) THEN WRITE(ILUOUT,*) 'WARNING' WRITE(ILUOUT,*) '-------' @@ -930,7 +942,7 @@ INTEGER, INTENT(IN) :: KL1 ! number of points INTEGER, INTENT(IN) :: KCOVER ! index of the vertical level, it should be a index such that LCOVER(KCOVER)=.TRUE. REAL, DIMENSION(KL1), INTENT(OUT):: PFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP ! KRESP : return-code if a problem appears -CHARACTER(LEN=100), INTENT(OUT):: HCOMMENT ! comment +CHARACTER(LEN=*), INTENT(OUT):: HCOMMENT ! comment CHARACTER(LEN=1), INTENT(IN) :: HDIR ! type of field : ! ! 'H' for HOR : with hor. dim.; and distributed. ! ! 'A' for ALL : with hor. dim.; and not distributed. @@ -1035,6 +1047,8 @@ ELSE CALL ABORT END IF ! +HCOMMENT = TZFIELD%CCOMMENT +! IF (KRESP /=0) THEN WRITE(ILUOUT,*) 'WARNING' WRITE(ILUOUT,*) '-------' @@ -1112,7 +1126,7 @@ IMPLICIT NONE CHARACTER(LEN=LEN_HREC),INTENT(IN) :: HREC ! name of the article to be read INTEGER, INTENT(OUT) :: KFIELD ! the integer to be read INTEGER, INTENT(OUT) :: KRESP ! KRESP : return-code if a problem appears -CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment +CHARACTER(LEN=*), INTENT(OUT) :: HCOMMENT ! comment ! !* 0.2 Declarations of local variables ! @@ -1126,6 +1140,7 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFN0_MNH',TRIM(TPINFILE%CNAME)//': readi ! KRESP=0 ILUOUT = TOUT%NLU +HCOMMENT='' ! IF (HREC=='DIM_FULL' .AND. ( CPROGRAM=='IDEAL ' .OR. & CPROGRAM=='SPAWN ' .OR. CPROGRAM=='ZOOMPG' ))THEN @@ -1135,6 +1150,7 @@ IF (HREC=='DIM_FULL' .AND. ( CPROGRAM=='IDEAL ' .OR. & ELSE CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPEINT,0,'READ_SURFN0_MNH',TZFIELD) CALL IO_READ_FIELD(TPINFILE,TZFIELD,KFIELD,KRESP) + HCOMMENT = TZFIELD%CCOMMENT IF (KRESP /=0) THEN WRITE(ILUOUT,*) 'WARNING' @@ -1208,7 +1224,7 @@ CHARACTER(LEN=LEN_HREC),INTENT(IN) :: HREC ! name of the article to be read INTEGER, INTENT(IN) :: KL ! number of points INTEGER, DIMENSION(KL), INTENT(OUT) :: KFIELD ! the integer to be read INTEGER, INTENT(OUT) :: KRESP ! KRESP : return-code if a problem appears -CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment +CHARACTER(LEN=*), INTENT(OUT) :: HCOMMENT ! comment CHARACTER(LEN=1), INTENT(IN) :: HDIR ! type of field : ! ! 'H' : field with ! ! horizontal spatial dim. @@ -1249,9 +1265,11 @@ ELSE IF (HDIR=='H') THEN CALL PACK_2D_1D(NMASK,IWORK(NIB:NIE,NJB:NJE),KFIELD) END IF ! -DEALLOCATE(IWORK) - + DEALLOCATE(IWORK) ENDIF + +HCOMMENT = TZFIELD%CCOMMENT + !------------------------------------------------------------------------------- END SUBROUTINE READ_SURFN1_MNH ! @@ -1315,7 +1333,7 @@ IMPLICIT NONE CHARACTER(LEN=LEN_HREC),INTENT(IN) :: HREC ! name of the article to be read CHARACTER(LEN=40), INTENT(OUT) :: HFIELD ! the integer to be read INTEGER, INTENT(OUT) :: KRESP ! KRESP : return-code if a problem appears -CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment +CHARACTER(LEN=*), INTENT(OUT) :: HCOMMENT ! comment ! !* 0.2 Declarations of local variables ! @@ -1338,6 +1356,7 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFC0_MNH',TRIM(TPINFILE%CNAME)//': readi ! KRESP = 0 ILUOUT = TOUT%NLU +HCOMMENT = '' ! IF (TPINFILE%NMNHVERSION(1)<4 .OR. (TPINFILE%NMNHVERSION(1)==4 .AND. TPINFILE%NMNHVERSION(2)<6)) THEN SELECT CASE(TRIM(HREC)) @@ -1400,6 +1419,7 @@ ELSE IF ( HREC=='GRID_TYPE'.AND. ( & ELSE CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPECHAR,0,'READ_SURFC0_MNH',TZFIELD) CALL IO_READ_FIELD(TPINFILE,TZFIELD,HFIELD,KRESP) + HCOMMENT = TZFIELD%CCOMMENT ! IF (KRESP /=0) THEN CALL PRINT_MSG(NVERB_FATAL,'IO','READ_SURFC0_MNH',TRIM(TPINFILE%CNAME)//': error when reading article '//TRIM(HREC)// & @@ -1472,7 +1492,7 @@ CHARACTER(LEN=LEN_HREC),INTENT(IN) :: HREC ! name of the article to be read INTEGER, INTENT(IN) :: KL ! number of points LOGICAL, DIMENSION(KL), INTENT(OUT) :: OFIELD ! array containing the data field INTEGER, INTENT(OUT) :: KRESP ! KRESP : return-code if a problem appears -CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment +CHARACTER(LEN=*), INTENT(OUT) :: HCOMMENT ! comment CHARACTER(LEN=1), INTENT(IN) :: HDIR ! type of field : ! ! 'H' : field with ! ! horizontal spatial dim. @@ -1524,6 +1544,9 @@ ELSE IF (HDIR=='H') THEN ! DEALLOCATE(GWORK) END IF + +HCOMMENT = TZFIELD%CCOMMENT + !------------------------------------------------------------------------------- END SUBROUTINE READ_SURFL1_MNH ! @@ -1583,7 +1606,7 @@ IMPLICIT NONE CHARACTER(LEN=LEN_HREC),INTENT(IN) :: HREC ! name of the article to be read LOGICAL, INTENT(OUT) :: OFIELD ! array containing the data field INTEGER, INTENT(OUT) :: KRESP ! KRESP : return-code if a problem appears -CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment +CHARACTER(LEN=*), INTENT(OUT) :: HCOMMENT ! comment ! !* 0.2 Declarations of local variables ! @@ -1684,7 +1707,7 @@ INTEGER, INTENT(OUT) :: KMONTH ! month INTEGER, INTENT(OUT) :: KDAY ! day REAL, INTENT(OUT) :: PTIME ! time INTEGER, INTENT(OUT) :: KRESP ! KRESP : return-code if a problem appears -CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment +CHARACTER(LEN=*), INTENT(OUT) :: HCOMMENT ! comment !* 0.2 Declarations of local variables ! @@ -1703,6 +1726,7 @@ TYPE(DATE_TIME) :: TZDATETIME CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFT0_MNH',TRIM(TPINFILE%CNAME)//': reading '//TRIM(HREC)) ! ILUOUT = TOUT%NLU +HCOMMENT = '' ! IF (TPINFILE%NMNHVERSION(1)<4 .OR. (TPINFILE%NMNHVERSION(1)==4 .AND. TPINFILE%NMNHVERSION(2)<6)) THEN CALL IO_READ_FIELD(TPINFILE,'STORAGE_TYPE',YFILETYPE2) @@ -1809,7 +1833,7 @@ INTEGER, DIMENSION(KL1), INTENT(OUT) :: KMONTH ! month INTEGER, DIMENSION(KL1), INTENT(OUT) :: KDAY ! day REAL, DIMENSION(KL1), INTENT(OUT) :: PTIME ! time INTEGER, INTENT(OUT) :: KRESP ! KRESP : return-code if a problem appears -CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment +CHARACTER(LEN=*), INTENT(OUT) :: HCOMMENT ! comment !* 0.2 Declarations of local variables ! @@ -1827,6 +1851,7 @@ TYPE(TFIELDDATA) :: TZFIELD CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFT1_MNH',TRIM(TPINFILE%CNAME)//': reading '//TRIM(HREC)) ! ILUOUT = TOUT%NLU +HCOMMENT = '' ! IF (TPINFILE%NMNHVERSION(1)<4 .OR. (TPINFILE%NMNHVERSION(1)==4 .AND. TPINFILE%NMNHVERSION(2)<6)) THEN CALL IO_READ_FIELD(TPINFILE,'STORAGE_TYPE',YFILETYPE2) @@ -1859,7 +1884,7 @@ TZFIELD%CSTDNAME = '' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = '' TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = TRIM(HCOMMENT) +TZFIELD%CCOMMENT = '' TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 2 @@ -1884,7 +1909,7 @@ TZFIELD%CSTDNAME = '' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = '' TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = TRIM(HCOMMENT) +TZFIELD%CCOMMENT = '' TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 -- GitLab From 646cff7de6402197dcb80c75f758ec68f8246e17 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Mon, 25 Feb 2019 12:04:12 +0100 Subject: [PATCH 071/139] Quentin 25/02/2019: correction in chemistry: cancel of previous commit : no need of change BASIC.f90 related to MEGAN emission scheme (one BASIC.f90 by RELACS scheme. The default RELACS scheme in MNH is still the same) --- .../009_ICARTT/003_mesonh/ReLACS_poet.nam | 27 +- src/MNH/BASIC.f90 | 119535 ++++----------- 2 files changed, 27017 insertions(+), 92545 deletions(-) diff --git a/MY_RUN/KTEST/009_ICARTT/003_mesonh/ReLACS_poet.nam b/MY_RUN/KTEST/009_ICARTT/003_mesonh/ReLACS_poet.nam index 915324567..95e3e203b 100644 --- a/MY_RUN/KTEST/009_ICARTT/003_mesonh/ReLACS_poet.nam +++ b/MY_RUN/KTEST/009_ICARTT/003_mesonh/ReLACS_poet.nam @@ -25,7 +25,7 @@ different norm-profile =================================================================== NORMINIT -!initial values (units are par per part = MIX) +initial values (units are par per part = MIX) MIX 37 (1X,A12,1X,E17.2) @@ -120,9 +120,9 @@ norm-profiles to be associated SURF_RES surface resistances (s/m), refer to Seinfeld and Pandis, 1998, p. 975, Tab.19.2 -1 -(1X,A12,1X,F5.0) -'NONE ' 0.0 + 1 +(A32,2E15.5) +NONE 0.0 ===================================================================== *** the following section will be read by ch_init_depconst.F90 *** @@ -281,8 +281,6 @@ CON ================================================================ *** the following section will be read by build_pronoslistn.F90 *** *** <called by ch_init_emissionn.F90> *** -* Format: Nom espece pronostic Meso-NH - Facteur Aggregation - NOM ESPECE EMISE -* expl: NO (espece Meso-NH) 0.70 (facteur aggregation) ANOX (espece emise PGD) ================================================================ AGREGATION @@ -293,14 +291,11 @@ CO 1. COBB 1. COBIO 1. COAN NO 0.7 NOXBB 0.7 NOXAN NO2 0.3 NOXBB 0.3 NOXAN HCHO 1. CH2OBB 1. CH2OAN -BIOL 1. ISOPBIO 1. TERPBIO -BIOH 1. ISOPBIO 1. TERPBIO -ETHE 1. C2H6BB 1. C2H6BIO 1. C2H6AN -AROH 1. TOLUBB 1. TOLUAN -AROL 1. TOLUBB 1. TOLUAN -AROO 1. TOLUBB 1. TOLUAN -ALD2 1. CH3CHOBB 1. CH3CHOAN -KETL 0.33 ACETBB 0.33 ACETBIO 0.33 ACETAN 1.61 MEKBB 1.61 MEKAN -KETH 0.33 ACETBB 0.33 ACETBIO 0.33 ACETAN 1.61 MEKBB 1.61 MEKAN - +BIO 1. ISOPBIO 1. TERPBIO +ETH 1. C2H6BB 1. C2H6BIO 1. C2H6AN +ARO 1. TOLUBB 1. TOLUAN +ALD 1. CH3CHOBB 1. CH3CHOAN +KET 0.33 ACETBB 0.33 ACETBIO 0.33 ACETAN 1.61 MEKBB 1.61 MEKAN +ALKE 0.96 C2H4BB 0.96 C2H4BIO 0.96 C2H4AN 1.04 C3H6BB 1.04 C3H6BIO 1.04 C3H6AN 1.04 BUTEBB 1.04 BUTEAN +ALKA 0.44 C3H8BB 0.44 C3H8BIO 0.44 C3H8AN 0.38 CH3OHBB 0.38 CH3OHBIO 0.38 CH3OHAN 1. BUTABB 1. BUTAAN 1. C2H5OHBB 1. C2H5OHAN END_AGREGATION diff --git a/src/MNH/BASIC.f90 b/src/MNH/BASIC.f90 index 4ba875fab..854c2bc06 100755 --- a/src/MNH/BASIC.f90 +++ b/src/MNH/BASIC.f90 @@ -4,77 +4,13 @@ ! The following species appear on the left hand side of a reaction, ! but they are not in the list of prognostic variables. Make sure that ! they are defined elsewhere (in begin_module as TPK%something): -! RO250 -! RO251 -! RO252 -! RO253 -! RO254 -! RO255 -! RO256 -! RO220 -! RO257 -! RO221 -! RO258 -! OSD +! H2 +! O1D ! W_O2 -! RO222 -! RO223 -! RO224 -! RO225 -! RO226 -! RO227 -! RO228 -! RO229 -! N2 -! RO240 -! CH4 +! O3P ! H2O -! RO241 -! RO242 -! RO243 -! RO244 -! RO245 -! RO246 -! RO247 -! RO210 -! RO211 -! RO248 -! O -! RO249 -! RO212 -! RO213 -! RO22 -! RO214 -! RO23 -! RO215 -! RO24 -! RO216 -! RAD1 -! RO217 -! RO26 -! RAD2 ! CO2 -! RO218 -! RO27 -! RAD3 -! RO219 -! RO28 -! RAD4 -! RO29 -! RAD5 -! RAD6 -! RO230 -! RAD7 -! RAD8 -! RO231 -! RO232 -! RO233 -! RO234 -! RO235 -! RO236 -! RO237 -! RO238 -! RO239 +! N2 ! O2 ! !======================================================================== @@ -82,76 +18,12 @@ ! The following species appear on the right hand side of a reaction, ! but they are not in the list of prognostic variables. Make sure that ! they are really final products or defined elsewhere: -! RO250 -! RO251 -! RO252 -! RO253 -! RO254 -! RO255 -! RO256 -! RO257 -! RO220 -! RO258 -! RO221 -! OSD -! RO222 -! RO223 -! RO224 -! RO225 -! RO226 -! RO227 -! RO228 -! RO229 -! N2 -! RO240 -! H2O -! RO241 -! RO242 -! RO243 -! RO244 -! RO245 -! RO246 -! RO247 -! RO210 -! RO248 -! RO211 -! O -! RO249 -! RO212 -! RO213 -! RO22 -! RO214 -! RO23 ! H2 -! RO215 -! RO24 -! RAD1 -! RO216 -! RAD2 -! RO217 -! RO26 -! RAD3 -! RO218 -! RO27 +! O1D +! O3P +! H2O ! CO2 -! RAD4 -! RO219 -! RO28 -! RAD5 -! RO29 -! RAD6 -! RAD7 -! RO230 -! RAD8 -! RO231 -! RO232 -! RO233 -! RO234 -! RO235 -! RO236 -! RO237 -! RO238 -! RO239 +! N2 ! O2 ! !======================================================================== @@ -162,371 +34,138 @@ ! ! the chemical reactions implemented are the following ... ! -! K001=!ZRATES(:,001)::NO2-->NO+O -! K002=TPK%M*5.60E-34*(TPK%T/300)**(-2.6)::O+O2-->O3 -! K003=6.5E-12*EXP(119.8/TPK%T)::O+NO2-->NO+O2 -! K004=@TROE(1.,9.0E-32,2.,2.2E-11,0.,0.8,TPK%M,TPK%T,KVECNPT)::O+NO2-->NO3 -! K005=1.8E-12*EXP(-1368.9/TPK%T)::NO+O3-->NO2+O2 -! K006=1.4E-13*EXP(-2471.1/TPK%T)::NO2+O3-->NO3+O2 -! K007=1.8E-11*EXP(110.7/TPK%T)::NO+NO3-->2.*NO2 -! K008=5.09E-18/TPK%T*EXP(528.4/TPK%T)::NO+NO-->2.*NO2 -! K009=@TROE(1.,2.8E-30,3.5,2.0E-12,0.2,0.45,TPK%M,TPK%T,KVECNPT)::NO2+NO3-->N2O5 -! K010=@TROE_EQUIL(2.8E-30,3.5,2.0E-12,0.2,3.70E+26,11000.0,0.45,TPK%M,TPK%T,KVECNPT)::N2O5-->NO2+NO3 -! K011=2.59E-22::N2O5+H2O-->2.*HNO3 -! K012=4.5E-14*EXP(-1258.2/TPK%T)::NO2+NO3-->NO+NO2+O2 -! K013=!ZRATES(:,007)::NO3-->NO+O2 -! K014=!ZRATES(:,008)::NO3-->NO2+O -! K015=!ZRATES(:,003)::O3-->O+O2 -! K016=!ZRATES(:,002)::O3-->OSD+O2 -! K017=2.2E-10::OSD+H2O-->OH+OH -! K018A=1.80E-11*exp(-(-110.0/TPK%T))::OSD+N2-->O+N2 -! K018B=3.20E-11*exp(-(-70.0/TPK%T))::OSD+O2-->O+O2 -! K019=@TROE(1.,7.0E-31,2.6,3.6E-11,0.1,0.6,TPK%M,TPK%T,KVECNPT)::NO+OH-->HONO -! K020=!ZRATES(:,004)::HONO-->0.9*NO+0.1*NO2+0.9*OH+0.1*HO2 -! K021=4.0E-24::NO2+H2O-->0.5*HONO+0.5*HNO3 -! K022=@TROE(1.,2.85E-30,2.67,3.13E-11,0.,0.6,TPK%M,TPK%T,KVECNPT)::NO2+OH-->HNO3 -! K023=@TROE_KA(7.2E-15,785.1,4.1E-16,1439.4,1.9E-33,724.7,TPK%M,TPK%T,KVECNPT)::HNO3+OH-->NO3+H2O -! K024=@TROE_KB(1.3E-13,0.,3.19E-33,0.,TPK%M,TPK%T,KVECNPT)::CO+OH-->HO2+CO2 -! K025=1.9E-12*EXP(-1001.5/TPK%T)::O3+OH-->HO2+O2 -! K026=3.41E-12*EXP(271.8/TPK%T)::NO+HO2-->NO2+OH -! K027=@TROE(1.,1.8E-31,3.2,4.7E-12,0.,0.6,TPK%M,TPK%T,KVECNPT)::NO2+HO2-->HNO4 -! K028=@TROE_EQUIL(1.8E-31,3.2,4.7E-12,0.,4.76E+26,10900.,0.6,TPK%M,TPK%T,KVECNPT)::HNO4-->NO2+HO2 -! K029=1.5E-12*EXP(362.4/TPK%T)::HNO4+OH-->NO2+O2+H2O -! K030=1.4E-14*EXP(-598.9/TPK%T)::O3+HO2-->OH+2.*O2 -! K031=@TROE_KB(2.2E-13,598.9,1.85E-33,981.4,TPK%M,TPK%T,KVECNPT)::HO2+HO2-->H2O2 -! K032=@TROE_KB(3.08E-34,2798.2,2.59E-54,3180.7,TPK%M,TPK%T,KVECNPT)::HO2+HO2+H2O-->H2O2+O2+H2O -! K033=4.0E-12::NO3+HO2-->0.8*NO2+0.2*HNO3+0.8*OH+O2 -! K034=8.0E-12*EXP(-2058.4/TPK%T)::O+O3-->2.*O2 -! K035=@TROE(1.,4.1E-31,3.3,2.0E-12,0.,0.45,TPK%M,TPK%T,KVECNPT)::SO2+OH-->H2SO4+HO2 -! K036=!ZRATES(:,009)::H2O2-->2.*OH -! K037=2.91E-12*EXP(-161/TPK%T)::H2O2+OH-->HO2+H2O -! K038=@TROE(1.,9.00E-32,1.5,3.00E-11,0.0,0.6,TPK%M,TPK%T,KVECNPT)::O+NO-->NO2 -! K039=2.7E-12*EXP(261.7/TPK%T)::HONO+OH-->NO2+H2O -! K040=2.0E-11::NO3+OH-->NO2+HO2 -! K041=8.5E-13*EXP(-2450.9/TPK%T)::NO3+NO3-->2.*NO2+O2 -! K042=4.8E-11*EXP(251.6/TPK%T)::OH+HO2-->H2O+O2 -! K043=2.66E-12*EXP(-1800.2/TPK%T)::CH4+OH-->RO21+RO2T+H2O -! K044=!ZRATES(:,011)::HCHO-->CO+2.0*HO2 -! K045=!ZRATES(:,010)::HCHO-->CO+H2 -! K046=1.2E-14*TPK%T*EXP(286.9/TPK%T)::HCHO+OH-->CO+HO2+H2O -! K047=2.0E-12*EXP(-2430.8/TPK%T)::HCHO+NO3-->HNO3+CO+HO2 -! K048=6.0E-18*TPK%T**2*EXP(170.1/TPK%T)::MEOH+OH-->HO2+HCHO+H2O -! K049=1.96E-12*EXP(437.8/TPK%T)::ETHE+OH-->RO22+RO2T -! K050=4.89E-18*TPK%T**2*EXP(-2282.3/TPK%T)::ETHE+NO3-->RO23+RO2T -! K051=9.14E-15*EXP(-2580.3/TPK%T)::ETHE+O3-->0.315*CO+0.06*HO2+0.06*OH+0.5*HCHO+0.07*H2O+0.185*ORA1 -! K052=7.3E-13::ETHE+O-->0.6*CO+HO2+0.6*RO21+0.4*RO24+RO2T -! K053=6.18E-18*TPK%T**2*EXP(532/TPK%T)::ETOH+OH-->TPK%CF1*HO2+TPK%CF1*ALD2+TPK%CF2*RO22+TPK%CF2*RO2T+H2O -! K054=5.86E-12*EXP(500.3/TPK%T)::OLEL+OH-->RO22+RO2T -! K055=1.0E-13*EXP(-800.2/TPK%T)::OLEL+NO3-->RO23+RO2T -! K056=1.0E-17::OLEL+O3-->0.56*CO+0.2*CO2+0.36*OH+0.28*HO2+0.5*HCHO+0.5*ALD2+0.1*ALKL+0.28*RO25+0.28*RO2T+0.12*ORA1+0.12*ORA2 -! K057=4.66E-12::OLEL+O-->0.5*ALKL+0.4*ALD2+0.1*RO24+0.1*RO25+0.2*RO2T -! K058=3.91E-12::ALKL+OH-->RO25+RO2T+H2O -! K059=!ZRATES(:,012)::ALD2-->CO+HO2+RO25+RO2T -! K060=6.91E-12*EXP(250/TPK%T)::ALD2+OH-->RO26+RO2T+H2O -! K061=3.0E-13*EXP(-1427/TPK%T)::ALD2+NO3-->HNO3+RO26+RO2T -! K062=4.91E-12::KETL+OH-->RO27+RO2T+H2O -! K063=!ZRATES(:,023)::KETL-->RO25+RO28+2.*RO2T -! K064=2.55E-11*EXP(410.2/TPK%T)::ISOP+OH-->0.66*RO29+0.34*RO210+RO2T -! K065=3.02E-12*EXP(-445.9/TPK%T)::ISOP+NO3-->0.66*RO211+0.34*RO212+RO2T -! K066=7.86E-15*EXP(-1912.9/TPK%T)::ISOP+O3-->0.068*CO2+0.461*CO+0.5*HCHO+0.664*OH+0.366*HO2+0.054*OLEL+0.389*MVK+0.17*MCR+0.271*RO213+0.095*RO214+0.366*RO2T+0.121*ORA1 -! K067=3.5E-11::ISOP+O-->0.925*OLEL+0.075*ALD2 -! K068=3.2E-12::MTBE+OH-->RO215+RO2T+H2O -! K069=1.28E-11::ALCH+OH-->RO22+RO2T+H2O -! K070=5.1E-12::KETH+OH-->RO216+RO2T+H2O -! K071=!ZRATES(:,016)::KETH-->RO25+RO28+2.*RO2T -! K072=3.77E-12::AROO+NO3-->HNO3+RAD1 -! K073=2.264E-10::AROO+OH-->0.16*HO2+0.16*AROO+0.1*RO217+0.1*RO2T+0.74*RAD2+0.1*H2O -! K074=3.47E-11::OLEH+OH-->RO218+RO2T -! K075=3.47E-11*1.0E-13*EXP(-800.2/TPK%T)/(5.86E-12*EXP(500.3/TPK%T))::OLEH+NO3-->RO219+RO2T -! K076=3.47E-11*1.0E-17/(5.86E-12*EXP(500.3/TPK%T))::OLEH+O3-->0.56*CO+0.2*CO2+0.36*OH+0.28*HO2+0.5*HCHO+0.5*RPR1+0.12*ACID+0.1*ALKM+0.28*RO220+0.28*RO2T -! K077=3.47E-11*4.66E-12/(5.86E-12*EXP(500.3/TPK%T))::OLEH+O-->0.5*ALKM+0.4*RPR1+0.1*RO24+0.1*RO220+0.2*RO2T -! K078=1.03E-11::ALKM+OH-->RO220+RO2T+H2O -! K079=3.27E-11::AROL+OH-->0.16*HO2+0.16*AROO+0.1*RO221+0.74*RAD3+0.06*RO2T+0.06*H2O -! K080=1.52E-11::AROH+OH-->0.16*HO2+0.16*AROO+0.84*RAD4 -! K081=1.4E-12*EXP(-1872.2/TPK%T)::ARAL+NO3-->HNO3+O3+ARAC -! K082=1.29E-11::ARAL+OH-->0.9983609*RPRL+TPK%CF48*HO2+TPK%CF39*O3+TPK%CF39*ARAC+TPK%CF45*RO222+TPK%CF40*RAD5+TPK%CF45*RO2T+TPK%CF48*H2O -! K083=1.1E-12::ARAC+OH-->0.16*HO2+0.1599999*URG7+0.1*RO223+0.74*RAD6+0.1*RO2T+0.1*H2O -! K084=1.7E-10::BIOL+OH-->RO224+RO2T -! K085=1.46E-11::BIOL+NO3-->RO225+RO2T -! K086=2.5E-16::BIOL+O3-->0.445*CO+0.055*H2O2+0.445*HO2+0.89*OH+5.5000000E-02*URG4+0.055*RPR3+0.445*RO226+0.445*RO2T -! K087=1.7E-10*4.66E-12/(5.86E-12*EXP(500.3/TPK%T))::BIOL+O-->0.7500000*URG10+0.2500000*URG10 -! K088=1.77E-10::BIOH+OH-->RO227+RO2T -! K089=2.91E-11::BIOH+NO3-->RO228+RO2T -! K090=1.4E-16::BIOH+O3-->0.445*CO+0.055*H2O2+0.89*OH+0.055*UR7+0.055*UR8+0.445*RO229+0.445*RO230+0.89*RO2T -! K091=8.59E-11::BIOH+O--> -! K092=7.7E-11::PAH+OH-->0.16*HO2+0.1600000*URG8+0.1*RO231+0.74*RAD7+0.1*RO2T+0.1*H2O -! K093=1.97E-11::ALKH+OH-->RO232+RO2T+H2O -! K094=3.41E-13*EXP(800.2/TPK%T)::RO2T+HO2-->HO2 -! K095=4.2E-12*EXP(181.2/TPK%T)::RO2T+NO-->NO -! K096=1.0E-15::RO2T+RO2T-->RO2T -! K097=0.9*7.7E5/TPK%T::RAD2-->RO233+RO2T -! K098=0.9*7.7E5/TPK%T::RAD3-->RO234+RO2T -! K099=0.9*7.7E5/TPK%T::RAD4-->RO235+RO2T -! K100=0.9*7.7E5/TPK%T::RAD5-->RO236+RO2T -! K101=0.9*7.7E5/TPK%T::RAD6-->RO237+RO2T -! K102=0.9*7.7E5/TPK%T::RAD7-->RO238+RO2T -! K103=1.7*3.0E-11::RAD1+NO2-->RPR4 -! K104=1.7*3.0E-11::RAD2+NO2-->RPR4+H2O -! K105=1.7*3.0E-11::RAD3+NO2-->H2O -! K106=1.7*3.0E-11::RAD4+NO2-->H2O -! K107=1.7*3.0E-11::RAD5+NO2-->RPR5+H2O -! K108=1.7*3.0E-11::RAD6+NO2-->0.9999993*URG7+H2O -! K109=1.7*3.0E-11::RAD7+NO2-->1.0000000*URG8+H2O -! K110=4.09E-12*EXP(180.2/TPK%T)::RO21+NO-->NO2+HO2+HCHO -! K111=1.0E-15::RO21+RO2T-->HO2+HCHO+RO2T+O2 -! K112=3.41E-13*EXP(800.2/TPK%T)::RO21+HO2-->HO2+OH+HCHO -! K113=2.45E-12*EXP(180.2/TPK%T)::RO22+NO-->NO2+HO2+HCHO+ALD2 -! K114=1.0E-15::RO22+RO2T-->HO2+HCHO+ALD2+RO2T+O2 -! K115=3.41E-13*EXP(800.2/TPK%T)::RO22+HO2-->OH+HO2+HCHO+ALD2 -! K116=2.45E-12*EXP(180.2/TPK%T)::RO23+NO-->2.*NO2+HCHO+ALD2 -! K117=1.0E-15::RO23+RO2T-->NO2+HO2+HCHO+ALD2+O2+RO2T -! K118=3.41E-13*EXP(800.2/TPK%T)::RO23+HO2-->NO2+HO2+OH+HCHO+ALD2 -! K119=3.45E-12*EXP(180.2/TPK%T)::RO24+NO-->NO2+CO+HO2+HCHO -! K120=1.0E-15::RO24+RO2T-->CO+HO2+HCHO+RO2T+O2 -! K121=3.41E-13*EXP(800.2/TPK%T)::RO24+HO2-->CO+HO2+OH+HCHO -! K122=2.91E-12*EXP(180.2/TPK%T)::RO25+NO-->TPK%CF3*ALKL+TPK%CF4*NO2+TPK%CF4*HO2+TPK%CF4*ALD2 -! K123=1.0E-15::RO25+RO2T-->HO2+ALD2+RO2T+O2 -! K124=3.41E-13*EXP(800.2/TPK%T)::RO25+HO2-->HO2+OH+ALD2 -! K125=1.11E-11*EXP(180.2/TPK%T)::RO26+NO-->NO2+CO2+RO25+RO2T -! K126=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO26+NO2-->PAN1 -! K127=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO28+NO2-->PAN2 -! K128=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO239+NO2-->PAN3 -! K129=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO248+NO2-->PAN4 -! K130=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO250+NO2-->APAN -! K131=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO254+NO2-->PAN6 -! K132=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO255+NO2-->PAN7 -! K133=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO257+NO2-->APAN -! K134=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO258+NO2-->PN10 -! K135=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::PAN1-->NO2+RO26+RO2T -! K136=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::PAN2-->NO2+RO28+RO2T -! K137=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::PAN3-->NO2+RO239+RO2T -! K138=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::PN10-->NO2+RO258+RO2T -! K139=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::APAN-->1.0000000*NO2+0.3750353*RO250+0.6249651*RO257+1.0000000*RO2T -! K140=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::PAN6-->NO2+RO254+RO2T -! K141=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::PAN4-->NO2+RO248+RO2T -! K142=3.41E-13*EXP(800.2/TPK%T)/3.5::RO26+HO2-->O3+ACID+ORA2 -! K143=1.0E-15::RO26+RO2T-->CO2+RO25+2.*RO2T+O2 -! K144=2.45E-12*EXP(180.2/TPK%T)::RO27+NO-->NO2+ALD2+RO28+RO2T -! K145=1.0E-15::RO27+RO2T-->ALD2+RO28+2.*RO2T+O2 -! K146=3.41E-13*EXP(800.2/TPK%T)::RO27+HO2-->OH+ALD2+RO28+RO2T -! K147=1.11E-11*EXP(180.2/TPK%T)::RO28+NO-->NO2+CO2+RO21+RO2T -! K148=3.41E-13*EXP(800.2/TPK%T)/3.5::RO28+HO2-->O3+ORA2 -! K149=1.0E-15::RO28+RO2T-->CO2+RO21+2.*RO2T+O2 -! K150=2.08E-12*EXP(180.2/TPK%T)::RO29+NO-->TPK%CF5*OLEL+TPK%CF6*NO2+TPK%CF6*HO2+TPK%CF6*HCHO+TPK%CF6*MVK -! K151=1.0E-15::RO29+RO2T-->HO2+MVK+HCHO+RO2T+O2 -! K152=3.41E-13*EXP(800.2/TPK%T)::RO29+HO2-->HO2+OH+MVK+HCHO -! K153=2.08E-12*EXP(180.2/TPK%T)::RO210+NO-->NO2+HO2+HCHO+MCR -! K154=1.0E-15::RO210+RO2T-->HO2+HCHO+MCR+RO2T+O2 -! K155=3.41E-13*EXP(800.2/TPK%T)::RO210+HO2-->HO2+OH+HCHO+MCR -! K156=2.08E-12*EXP(180.2/TPK%T)::RO211+NO-->2.*NO2+HCHO+MVK -! K157=1.0E-15::RO211+RO2T-->NO2+HCHO+MVK+RO2T+O2 -! K158=3.41E-13*EXP(800.2/TPK%T)::RO211+HO2-->NO2+OH+HCHO+MVK -! K159=2.08E-12*EXP(180.2/TPK%T)::RO212+NO-->2.*NO2+HCHO+MCR -! K160=1.0E-15::RO212+RO2T-->NO2+HCHO+MCR+RO2T+O2 -! K161=3.41E-13*EXP(800.2/TPK%T)::RO212+HO2-->NO2+OH+HCHO+MCR -! K162=2.45E-12*EXP(180.2/TPK%T)::RO213+NO-->NO2+HCHO+RO239+RO2T -! K163=1.0E-15::RO213+RO2T-->HCHO+RO239+2.*RO2T+O2 -! K164=3.41E-13*EXP(800.2/TPK%T)::RO213+HO2-->HCHO+OH+RO239+RO2T -! K165=1.11E-11*EXP(180.2/TPK%T)::RO239+NO-->NO2+CO2+RO214+RO2T -! K166=3.41E-13*EXP(800.2/TPK%T)/3.5::RO239+HO2-->O3+0.5*OLEL+0.5*ORA2 -! K167=1.0E-15::RO239+RO2T-->CO2+RO214+2.*RO2T+O2 -! K168=2.91E-12*EXP(180.2/TPK%T)::RO214+NO-->TPK%CF7*OLEL+TPK%CF8*NO2+TPK%CF8*RO27+TPK%CF8*RO2T -! K169=1.0E-15::RO214+RO2T-->RO27+2.*RO2T+O2 -! K170=3.41E-13*EXP(800.2/TPK%T)::RO214+HO2-->OH+RO27+RO2T -! K171=2.08E-12*EXP(180.2/TPK%T)::RO215+NO-->NO2+HO2+TPK%CF9*ALD2+TPK%CF10*HCHO+TPK%CF11*KETL+TPK%CF12*ALKL -! K172=1.0E-15::RO215+RO2T-->HO2+TPK%CF13*ALD2+TPK%CF14*HCHO+TPK%CF15*KETL+TPK%CF16*ALKL+RO2T+O2 -! K173=3.41E-13*EXP(800.2/TPK%T)::RO215+HO2-->OH+HO2+TPK%CF13*ALD2+TPK%CF14*HCHO+TPK%CF15*KETL+TPK%CF16*ALKL -! K174=1.48E-12*EXP(180.2/TPK%T)::RO216+NO-->NO2+ALD2+RO28+RO2T -! K175=1.0E-15::RO216+RO2T-->ALD2+RO28+2.*RO2T+O2 -! K176=3.41E-13*EXP(800.2/TPK%T)::RO216+HO2-->OH+ALD2+RO28+RO2T -! K177=1.25E-12*EXP(180.2/TPK%T)::RO217+NO-->TPK%CF21*URG6+TPK%CF22*NO2+TPK%CF22*HO2+TPK%CFA2*RPRL -! K178=1.0E-15::RO217+RO2T-->HO2+0.9983609*RPRL+RO2T+O2 -! K179=3.41E-13*EXP(800.2/TPK%T)::RO217+HO2-->HO2+OH+0.9983609*RPRL -! K180=1.25E-12*EXP(180.2/TPK%T)::RO218+NO-->TPK%CF20*NO2+TPK%CF20*HO2 -! K181=1.0E-15::RO218+RO2T-->HO2+RO2T+O2 -! K182=3.41E-13*EXP(800.2/TPK%T)::RO218+HO2-->HO2+OH -! K183=1.05E-12*EXP(180.2/TPK%T)::RO219+NO-->2.*NO2+HCHO+RPR1 -! K184=1.0E-15::RO219+RO2T-->NO2+HCHO+RPR1+RO2T+O2 -! K185=3.41E-13*EXP(800.2/TPK%T)::RO219+HO2-->NO2+OH+HCHO+RPR1 -! K186=1.25E-12*EXP(180.2/TPK%T)::RO220+NO-->TPK%CF18*NO2+TPK%CF18*RO218+TPK%CF18*RO2T -! K187=1.0E-15::RO220+RO2T-->RO218+2.*RO2T+O2 -! K188=3.41E-13*EXP(800.2/TPK%T)::RO220+HO2-->OH+RO218+RO2T -! K189=1.05E-12*EXP(180.2/TPK%T)::RO221+NO-->TPK%CF24*NO2+TPK%CF24*HO2+TPK%CF24*ARAL -! K190=1.0E-15::RO221+RO2T-->HO2+ARAL+RO2T+O2 -! K191=3.41E-13*EXP(800.2/TPK%T)::RO221+HO2-->HO2+OH+ARAL -! K192=1.25E-12*EXP(180.2/TPK%T)::RO222+NO-->TPK%CF42*NO2+TPK%CF42*HO2+TPK%CFA7*RPRL -! K193=1.0E-15::RO222+RO2T-->HO2+0.9983609*RPRL+RO2T+O2 -! K194=3.41E-13*EXP(800.2/TPK%T)::RO222+HO2-->HO2+OH+0.9983609*RPRL -! K195=1.25E-12*EXP(180.2/TPK%T)::RO223+NO-->TPK%CF43*URG6+TPK%CF44*NO2+TPK%CF44*HO2+TPK%CF44*RPR7 -! K196=1.0E-15::RO223+RO2T-->HO2+RPR7+RO2T+O2 -! K197=3.41E-13*EXP(800.2/TPK%T)::RO223+HO2-->HO2+OH+RPR7 -! K198=8.89E-13*EXP(180.2/TPK%T)::RO224+NO-->TPK%CFA23*AP7+TPK%CFA10*RPR3+TPK%CF26*NO2+TPK%CF26*HO2 -! K199=1.0E-15::RO224+RO2T-->HO2+RPR3+RO2T+O2 -! K200=3.41E-13*EXP(800.2/TPK%T)::RO224+HO2-->HO2+OH+RPR3 -! K201=8.89E-13*EXP(180.2/TPK%T)::RO225+NO-->2.*NO2+RPR3 -! K202=1.0E-15::RO225+RO2T-->NO2+RPR3+RO2T+O2 -! K203=3.41E-13*EXP(800.2/TPK%T)::RO225+HO2-->NO2+OH+RPR3 -! K204=8.89E-13*EXP(180.2/TPK%T)::RO226+NO-->NO2+1.0000000*UR17+RO28+RO2T -! K205=1.0E-15::RO226+RO2T-->1.0000000*UR17+RO28+2.*RO2T+O2 -! K206=3.41E-13*EXP(800.2/TPK%T)::RO226+HO2-->1.0000000*UR17+OH+RO28+RO2T -! K207=8.89E-13*EXP(180.2/TPK%T)::RO227+NO-->TPK%CF27*URG10+TPK%CF28*NO2+TPK%CF28*HO2+TPK%CFA12*UR7 -! K208=1.0E-15::RO227+RO2T-->HO2+UR7+RO2T+O2 -! K209=3.41E-13*EXP(800.2/TPK%T)::RO227+HO2-->HO2+OH+0.3*UR7 -! K210=8.89E-13*EXP(180.2/TPK%T)::RO228+NO-->2.*NO2+0.3*UR7 -! K211=1.0E-15::RO228+RO2T-->NO2+0.3*UR7+RO2T+O2 -! K212=3.41E-13*EXP(800.2/TPK%T)::RO228+HO2-->NO2+OH+0.3*UR7 -! K213=1.05E-12*EXP(180.2/TPK%T)::RO229+NO-->TPK%CF30*NO2+TPK%CF30*RO240+TPK%CF30*RO2T -! K214=1.0E-15::RO229+RO2T-->RO240+2.*RO2T+O2 -! K215=3.41E-13*EXP(800.2/TPK%T)::RO229+HO2-->OH+RO240+RO2T -! K216=1.05E-12*EXP(180.2/TPK%T)::RO240+NO-->NO2+RPR8+RO28+RO2T -! K217=1.0E-15::RO240+RO2T-->RPR8+RO28+2.*RO2T+O2 -! K218=3.41E-13*EXP(800.2/TPK%T)::RO240+HO2-->OH+RPR8+RO28+RO2T -! K219=1.0E-15::RO230+RO2T-->RO28+2.*RO2T+O2 -! K220=3.41E-13*EXP(800.2/TPK%T)::RO230+HO2-->OH+RO28+RO2T -! K221=6.32E-13*EXP(180.2/TPK%T)::RO231+NO-->TPK%CF31*URG8+TPK%CF32*NO2+TPK%CF32*HO2+TPK%CF32*UR19 -! K222=1.0E-15::RO231+RO2T-->HO2+UR19+RO2T+O2 -! K223=3.41E-13*EXP(800.2/TPK%T)::RO231+HO2-->HO2+OH+UR19 -! K224=3.2E-13*EXP(180.2/TPK%T)::RO232+NO-->TPK%CFA14*URG9+TPK%CF34*NO2+TPK%CF34*RO241+TPK%CF34*RO2T -! K225=1.0E-15::RO232+RO2T-->RO241+2.*RO2T+O2 -! K226=3.41E-13*EXP(800.2/TPK%T)::RO232+HO2-->OH+RO241+RO2T -! K227=3.2E-13*EXP(180.2/TPK%T)::RO241+NO-->TPK%CFA15*URG9+TPK%CF36*NO2+TPK%CF36*HO2+TPK%CFA16*URG9 -! K228=1.0E-15::RO241+RO2T-->HO2+0.9999996*URG9+RO2T+O2 -! K229=3.41E-13*EXP(800.2/TPK%T)::RO241+HO2-->HO2+OH+0.9999996*URG9 -! K230=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO233-->RO242+RO2T -! K231=1.25E-12*EXP(180.2/TPK%T)::RO233+NO-->NO2+HO2+0.3000000*RPG3 -! K232=1.0E-15::RO233+RO2T-->HO2+1.0000000*RPG3+RO2T+O2 -! K233=3.41E-13*EXP(800.2/TPK%T)::RO233+HO2-->HO2+OH+0.3000000*RPG3 -! K234=1.25E-12*EXP(180.2/TPK%T)::RO242+NO-->NO2+HO2+RP10+MGLY -! K235=1.0E-15::RO242+RO2T-->HO2+RP10+O2+RO2T+MGLY -! K236=3.41E-13*EXP(800.2/TPK%T)::RO242+HO2-->HO2+OH+RP10+MGLY -! K237=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO234-->RO243+RO2T -! K238=1.05E-12*EXP(180.2/TPK%T)::RO234+NO-->NO2+HO2+0.3*RP11 -! K239=1.0E-15::RO234+RO2T-->HO2+RP11+RO2T+O2 -! K240=3.41E-13*EXP(800.2/TPK%T)::RO234+HO2-->HO2+OH+0.3*RP11 -! K241=1.05E-12*EXP(180.2/TPK%T)::RO243+NO-->NO2+HO2+RP10+MGLY -! K242=1.0E-15::RO243+RO2T-->HO2+RP10+MGLY+O2+RO2T -! K243=3.41E-13*EXP(800.2/TPK%T)::RO243+HO2-->HO2+OH+RP10+MGLY -! K244=1.1*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO235-->RO244+RO2T -! K245=8.89E-13*EXP(180.2/TPK%T)::RO235+NO-->NO2+HO2+0.5*RP11 -! K246=1.0E-15::RO235+RO2T-->HO2+RP11+RO2T+O2 -! K247=3.41E-13*EXP(800.2/TPK%T)::RO235+HO2-->HO2+OH+RP11 -! K248=8.89E-13*EXP(180.2/TPK%T)::RO244+NO-->NO2+HO2+RP10+MGLY -! K249=1.0E-15::RO244+RO2T-->HO2+RP10+MGLY+O2+RO2T -! K250=3.41E-13*EXP(800.2/TPK%T)::RO244+HO2-->HO2+OH+RP10+MGLY -! K251=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO236-->RO245+RO2T -! K252=1.25E-12*EXP(180.2/TPK%T)::RO236+NO-->NO2+HO2+0.3000000*RPG3 -! K253=1.0E-15::RO236+RO2T-->HO2+1.0000000*RPG3+RO2T+O2 -! K254=3.41E-13*EXP(800.2/TPK%T)::RO236+HO2-->HO2+OH+0.3000000*RPG3 -! K255=1.25E-12*EXP(180.2/TPK%T)::RO245+NO-->NO2+HO2+RP10+MGLY -! K256=1.0E-15::RO245+RO2T-->HO2+RP10+MGLY+O2+RO2T -! K257=3.41E-13*EXP(800.2/TPK%T)::RO245+HO2-->HO2+OH+RP10+MGLY -! K258=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO237-->RO246+RO2T -! K259=1.25E-12*EXP(180.2/TPK%T)::RO237+NO-->NO2+HO2+0.3000000*RPG2 -! K260=1.0E-15::RO237+RO2T-->HO2+1.0000000*RPG2+RO2T+O2 -! K261=3.41E-13*EXP(800.2/TPK%T)::RO237+HO2-->HO2+OH+0.3000000*RPG2 -! K262=1.25E-12*EXP(180.2/TPK%T)::RO246+NO-->NO2+HO2+RP10+MGLY -! K263=1.0E-15::RO246+RO2T-->HO2+RP10+MGLY+O2+RO2T -! K264=3.41E-13*EXP(800.2/TPK%T)::RO246+HO2-->HO2+OH+RP10+MGLY -! K265=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO238-->RO247+RO2T -! K266=6.32E-13*EXP(180.2/TPK%T)::RO238+NO-->NO2+HO2+1.0000013*RPG7 -! K267=1.0E-15::RO238+RO2T-->HO2+1.0000013*RPG7+RO2T+O2 -! K268=3.41E-13*EXP(800.2/TPK%T)::RO238+HO2-->HO2+OH+1.0000013*RPG7 -! K269=6.32E-13*EXP(180.2/TPK%T)::RO247+NO-->NO2+HO2+1.0023998*RPRL+MGLY -! K270=1.0E-15::RO247+RO2T-->HO2+1.0023998*RPRL+MGLY+O2+RO2T -! K271=3.41E-13*EXP(800.2/TPK%T)::RO247+HO2-->HO2+OH+1.0023998*RPRL+MGLY -! K272=4.14E-12*EXP(452.9/TPK%T)::MVK+OH-->RO249+RO2T -! K273=1.86E-11*EXP(176.1/TPK%T)::MCR+OH-->TPK%CF46*RO250+TPK%CF46*H2O+TPK%CF47*RO251+RO2T -! K274=1.72E-11::MGLY+OH-->RO248+RO2T+H2O -! K275=1.5E-12*EXP(-1726.2/TPK%T)::MCR+NO3-->TPK%CF46*HNO3+TPK%CF46*RO250+TPK%CF47*RO252+RO2T -! K276=!ZRATES(:,019)::MGLY-->CO+HO2+RO28+RO2T -! K277=1.11E-11*EXP(180.2/TPK%T)::RO248+NO-->NO2+CO2+RO28+RO2T -! K278=1.4E-12*EXP(-1897.3/TPK%T)::MGLY+NO3-->HNO3+RO248+RO2T -! K279=3.41E-13*EXP(800.2/TPK%T)/3.5::RO248+HO2-->O3+UR21 -! K280=1.0E-15::RO248+RO2T-->CO2+RO28+2.*RO2T+O2 -! K281=7.5E-16*EXP(-1519.9/TPK%T)::MVK+O3-->0.56*CO+0.2*CO2+0.28*HO2+0.36*OH+0.5*MGLY+0.5*HCHO+0.1*ALD2+0.12*ORA1+0.12*UR21+0.28*RO28+0.28*RO2T+0.2*H2O -! K282=1.36E-15*EXP(-2113.7/TPK%T)::MCR+O3-->0.41*CO+0.41*HO2+0.82*OH+0.5*HCHO+0.59*MGLY+0.09*ORA1+0.41*RO253+0.41*RO2T -! K283=4.32E-12::MVK+O-->0.85*KETL+0.15*RO24+0.15*RO28+0.3*RO2T -! K284=6.34E-12::MCR+O-->0.15*CO+0.15*HO2+0.85*ALD2+0.15*RO27+0.15*RO2T -! K285=2.45E-12*EXP(180.2/TPK%T)::RO249+NO-->NO2+HO2+MGLY+HCHO -! K286=1.0E-15::RO249+RO2T-->HO2+MGLY+HCHO+RO2T+O2 -! K287=3.41E-13*EXP(800.2/TPK%T)::RO249+HO2-->HO2+OH+MGLY+HCHO -! K288=1.11E-11*EXP(180.2/TPK%T)::RO250+NO-->CO2+NO2+RO214+RO2T -! K289=3.41E-13*EXP(800.2/TPK%T)/3.5::RO250+HO2-->O3+0.5*ORA2+0.5*OLEL -! K290=1.0E-15::RO250+RO2T-->CO2+RO214+2.*RO2T+O2 -! K291=2.45E-12*EXP(180.2/TPK%T)::RO251+NO-->NO2+HO2+HCHO+MGLY -! K292=3.41E-13*EXP(800.2/TPK%T)::RO251+HO2-->HO2+HCHO+MGLY+RO2T+O2 -! K293=1.0E-15::RO251+RO2T-->HO2+OH+MGLY+HCHO -! K294=2.45E-12*EXP(180.2/TPK%T)::RO252+NO-->2.*NO2+MGLY+HCHO -! K295=3.41E-13*EXP(800.2/TPK%T)::RO252+HO2-->NO2+MGLY+HCHO+RO2T+O2 -! K296=1.0E-15::RO252+RO2T-->NO2+OH+MGLY+HCHO -! K297=2.91E-12*EXP(180.2/TPK%T)::RO253+NO-->NO2+HCHO+RO254+RO2T -! K298=3.41E-13*EXP(800.2/TPK%T)::RO253+HO2-->HCHO+RO254+2.*RO2T+O2 -! K299=1.0E-15::RO253+RO2T-->OH+HCHO+RO254+RO2T -! K300=1.11E-11*EXP(180.2/TPK%T)::RO254+NO-->CO2+CO+NO2+HO2 -! K301=3.41E-13*EXP(800.2/TPK%T)/3.5::RO254+HO2-->O3+RP16 -! K302=1.0E-15::RO254+RO2T-->CO2+CO+HO2+RO2T+O2 -! K303=1.29E-11::RPR5+OH-->O3+0.9999993*URG7+H2O -! K304=3.54E-11::RPR1+OH-->RO255+RO2T+H2O -! K305=1.72E-11::RP16+OH-->RO258+RO2T+H2O -! K306=1.2940467E-11::RPRL+OH-->1.0000011*H2O+1.0000011*O3+2.0714202E-03*RPR7+0.9979297*URG7 -! K307=3.0E-13*EXP(-1427/TPK%T)*3.54E-11/(6.91E-12*EXP(250/TPK%T))::RPR1+NO3-->HNO3+RO255+RO2T -! K308=!ZRATES(:,012)::RPR1-->CO+HO2+RO220+RO2T -! K309=1.11E-11*EXP(180.2/TPK%T)::RO255+NO-->NO2+CO2+RO220+RO2T -! K310=3.41E-13*EXP(800.2/TPK%T)/3.5::RO255+HO2-->O3+ACID -! K311=1.0E-15::RO255+RO2T-->CO2+RO220+2.*RO2T+O2 -! K312=4.24E-11::RPR3+OH-->RO256+RO2T+H2O -! K313=3.0E-13*EXP(-1427/TPK%T)*4.24E-11/(6.91E-12*EXP(250/TPK%T))::RPR3+NO3-->HNO3+RO256+RO2T -! K314=!ZRATES(:,012)::RPR3-->CO+2.*HO2 -! K315=1.11E-11*EXP(180.2/TPK%T)::RO256+NO-->NO2+CO2+HO2 -! K316=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT)::RO256+NO2-->PAN8 -! K317=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::PAN8-->NO2+RO256+RO2T -! K318=3.41E-13*EXP(800.2/TPK%T)/3.5::RO256+HO2-->O3+1.0000000*URG4 -! K319=1.0E-15::RO256+RO2T-->CO2+HO2+RO2T+O2 -! K320=3.77E-12::RPR4+NO3-->HNO3+RAD8 -! K321=2.30E-11*EXP(151.0/TPK%T)::RAD8+NO2-->UR22+H2O -! K322=1.29E-11::RPR7+OH-->O3+0.9999993*URG7+H2O -! K323=1.3918362E-10::RPG7+OH-->1.0000005*O3+1.0000005*H2O+0.5021558*RPG7+0.4978440*URG6 -! K324=1.145E-10::RPR8+OH-->RO257+RO2T+H2O -! K325=1.098E-10::RP10+OH-->HO2+H2O -! K326=1.964E-10::RP11+OH-->O3+0.67*UR26+H2O -! K327=3.0E-13*EXP(-1427/TPK%T)*1.145E-10/(6.91E-12*EXP(250/TPK%T))::RPR8+NO3-->HNO3+RO257+RO2T -! K328=!ZRATES(:,012)::RP10--> -! K329=!ZRATES(:,012)::RPR8-->CO+HO2+RO29+RO2T -! K330=!ZRATES(:,012)::RPR8-->HO2+RO257+RO2T -! K331=1.11E-11*EXP(180.2/TPK%T)::RO257+NO-->NO2+CO2+RO29+RO2T -! K332=3.41E-13*EXP(800.2/TPK%T)/3.5::RO257+HO2-->1.0000000*URG4+O3 -! K333=1.0E-15::RO257+RO2T-->CO2+RO29+2.*RO2T+O2 -! K334=2.4131647E-10::RPG3+OH-->1.0000000*O3+0.1191897*RPG2+1.0000000*H2O+0.8808107*RPG2 -! K335=2.1923330E-10::RPG2+OH-->1.0000000*O3+0.5562513*URG2+1.0000000*H2O+0.4437492*RP18 -! K337=1.97E-10::RP18+OH-->O3+URG2+H2O -! K338=1.4E-12*EXP(-1897.3/TPK%T)::RP16+NO3-->HNO3+RO258+RO2T -! K339=!ZRATES(:,019)::RP16-->2.*CO+OH+HO2 -! K340=1.11E-11*EXP(180.2/TPK%T)::RO258+NO-->CO+CO2+NO2+OH -! K341=3.41E-13*EXP(800.2/TPK%T)::RO258+HO2-->O3+UR28 -! K342=1.0E-15::RO258+RO2T-->CO+CO2+OH+RO2T+O2 -! K343=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KVECNPT)::PAN7-->NO2+RO255+RO2T -! K344=8.89E-13*EXP(180.2/TPK%T)::RO230+NO-->NO2+RO28+RO2T -! K345=3.30E-12*exp(-(900.0/TPK%T))::NH3+OH--> -! K346=1.00E-40::H2SO4--> -! K347=4.50E-13::ORA1+OH-->HO2+CO2+H2O -! K348=6.00E-13::ORA2+OH--> -! K349=1.20E-12::ACID+OH--> -! K350=1.00E-40::URG2--> -! K351=1.00E-40::URG4--> -! K352=1.00E-40::URG6--> -! K353=1.00E-40::URG7--> -! K354=1.00E-40::URG8--> -! K355=1.00E-40::URG9--> -! K356=1.00E-40::URG10--> -! K357=1.00E-40::UR7--> -! K358=1.00E-40::UR8--> -! K359=1.00E-40::UR17--> -! K360=1.00E-40::UR19--> -! K361=1.00E-40::UR21--> -! K362=1.00E-40::UR22--> -! K363=1.00E-40::UR26--> -! K364=1.00E-40::UR28--> -! K365=1.00E-40::AP7--> +! K001=!ZRATES(:,001)::NO2-->O3P+NO +! K002=!ZRATES(:,002)::O3-->O1D+O2 +! K003=!ZRATES(:,003)::O3-->O3P+O2 +! K004=!ZRATES(:,004)::HONO-->OH+NO +! K005=!ZRATES(:,005)::HNO3-->OH+NO2 +! K006=!ZRATES(:,006)::HNO4-->0.65*HO2+0.65*NO2+0.35*OH+0.35*NO3 +! K007=!ZRATES(:,007)::NO3-->NO+O2 +! K008=!ZRATES(:,008)::NO3-->NO2+O3P +! K009=!ZRATES(:,009)::H2O2-->OH+OH +! K010=!ZRATES(:,010)::HCHO-->H2+CO +! K011=!ZRATES(:,011)::HCHO-->HO2+HO2+CO +! K012=!ZRATES(:,012)::ALD-->MO2+HO2+CO +! K013=!ZRATES(:,013)::OP1-->HCHO+HO2+OH +! K014=!ZRATES(:,014)::OP2-->0.96205*ALD+0.96205*HO2+0.03795*MO2+OH +! K015=!ZRATES(:,015)::KET-->1.00000*CARBOP+1.00000*ALKAP +! K016=!ZRATES(:,016)::CARBO-->0.06517*HCHO+0.69622*CARBOP+0.75830*HO2+0.91924*CO+0.20842*H2 +! K017=!ZRATES(:,017)::ONIT-->0.20*ALD+0.80*KET+HO2+NO2 +! K018=TPK%M*6.00E-34*(TPK%T/300)**(-2.3)::O3P+O2-->O3 +! K019=8.00E-12*exp(-(2060.0/TPK%T))::O3P+O3-->2.0*O2 +! K020=1.80E-11*exp(-(-110.0/TPK%T))::O1D+N2-->O3P+N2 +! K021=3.20E-11*exp(-(-70.0/TPK%T))::O1D+O2-->O3P+O2 +! K022=2.20E-10::O1D+H2O-->OH+OH +! K023=1.60E-12*exp(-(940.0/TPK%T))::O3+OH-->HO2+O2 +! K024=1.10E-14*exp(-(500.0/TPK%T))::O3+HO2-->OH+2.0*O2 +! K025=4.80E-11*exp(-(-250.0/TPK%T))::OH+HO2-->H2O+O2 +! K026=2.90E-12*exp(-(160.0/TPK%T))::H2O2+OH-->HO2+H2O +! K027=2.3E-13*EXP(600./TPK%T)+1.7E-33*TPK%M*EXP(1000./TPK%T)::HO2+HO2-->H2O2+O2 +! K028=3.22E-34*EXP(2800./TPK%T)+2.38E-54*TPK%M*EXP(3200./TPK%T)::HO2+HO2+H2O-->H2O2+H2O+O2 +! K029=@TROE(1.,9.00E-32,1.5,3.00E-11,0.0,TPK%M,TPK%T,KVECNPT)::O3P+NO-->NO2 +! K030=6.50E-12*exp(-(-120.0/TPK%T))::O3P+NO2-->NO+O2 +! K031=@TROE(1.,9.00E-32,2.0,2.20E-11,0.0,TPK%M,TPK%T,KVECNPT)::O3P+NO2-->NO3 +! K032=@TROE(1.,7.00E-31,2.6,1.50E-11,0.5,TPK%M,TPK%T,KVECNPT)::OH+NO-->HONO +! K033=@TROE(1.,2.60E-30,3.2,2.40E-11,1.3,TPK%M,TPK%T,KVECNPT)::OH+NO2-->HNO3 +! K034=2.20E-11::OH+NO3-->NO2+HO2 +! K035=3.70E-12*exp(-(-250.0/TPK%T))::HO2+NO-->NO2+OH +! K036=@TROE(1.,1.80E-31,3.2,4.70E-12,1.4,TPK%M,TPK%T,KVECNPT)::HO2+NO2-->HNO4 +! K037=@TROE_EQUIL(1.80E-31,3.2,4.70E-12,1.4,4.76E+26,10900.,TPK%M,TPK%T,KVECNPT)::HNO4-->HO2+NO2 +! K038=3.50E-12::HO2+NO3-->0.3*HNO3+0.7*NO2+0.7*OH +! K039=1.80E-11*exp(-(390.0/TPK%T))::OH+HONO-->H2O+NO2 +! K040=(7.2E-15*EXP(785/TPK%T))+(1.9E-33*EXP(725/TPK%T)*TPK%M)/(1+(1.9E-33*EXP(725/TPK%T)*TPK%M)/(4.1E-16*EXP(1440/TPK%T)))::OH+HNO3-->NO3+H2O +! K041=1.30E-12*exp(-(-380.0/TPK%T))::OH+HNO4-->NO2+H2O+O2 +! K042=2.00E-12*exp(-(1400.0/TPK%T))::O3+NO-->NO2+O2 +! K043=1.20E-13*exp(-(2450.0/TPK%T))::O3+NO2-->NO3+O2 +! K044=3.30E-39*exp(-(-530.0/TPK%T))::NO+NO+O2-->NO2+NO2 +! K045=1.50E-11*exp(-(-170.0/TPK%T))::NO3+NO-->NO2+NO2 +! K046=4.50E-14*exp(-(1260.0/TPK%T))::NO3+NO2-->NO+NO2+O2 +! K047=@TROE(1.,2.20E-30,3.9,1.50E-12,0.7,TPK%M,TPK%T,KVECNPT)::NO3+NO2-->N2O5 +! K048=@TROE_EQUIL(2.20E-30,3.9,1.50E-12,0.7,3.70E+26,11000.0,TPK%M,TPK%T,KVECNPT)::N2O5-->NO2+NO3 +! K049=8.50E-13*exp(-(2450.0/TPK%T))::NO3+NO3-->NO2+NO2+O2 +! K050=3.30E-12*exp(-(900.0/TPK%T))::NH3+OH--> +! K051=5.50E-12*exp(-(2000.0/TPK%T))::OH+H2-->H2O+HO2 +! K052=@TROE(1.,3.00E-31,3.3,1.50E-12,0.0,TPK%M,TPK%T,KVECNPT)::OH+SO2-->SULF+HO2 +! K053=1.5E-13*(1.+2.439E-20*TPK%M)::CO+OH-->HO2+CO2 +! K054=6.00E-11::BIO+O3P-->0.91868*ALKE+0.05*HCHO+0.02*OH+0.01*CO+0.13255*CARBO+0.28*HO2+0.15*XO2 +! K055=0.00E-01*exp(-(-13.0/TPK%T))::CARBO+O3P-->ALD +! K056=TPK%T*TPK%T*7.44E-18*exp(-(1361./TPK%T))::CH4+OH-->MO2+H2O +! K057=1.51E-17*TPK%T*TPK%T*exp(-(492./TPK%T))::ETH+OH-->ALKAP +! K058=3.76E-12*exp(-(260.0/TPK%T))+1.70E-12*exp(-(155.0/TPK%T))+1.21E-12*exp(-(125.0/TPK%T))::ALKA+OH-->0.87811*ALKAP+0.12793*HO2+0.08173*ALD+0.03498*KET+0.00835*CARBO+0.00140*HCHO+0.00878*ORA1+0.00878*CO+0.00878*OH+H2O +! K059=1.78E-12*exp(-(-438.0/TPK%T))+6.07E-13*exp(-(-500.0/TPK%T))+0.00E-01*exp(-(-448.0/TPK%T))::ALKE+OH-->1.02529*ALKEP+0.00000*BIOP +! K060=2.54E-11*exp(-(-410.0/TPK%T))+0.00E-01*exp(-(-444.0/TPK%T))+0.00E-01::BIO+OH-->1.00000*BIOP +! K061=3.31E-12*exp(-(-355.0/TPK%T))+3.45E-13::ARO+OH-->0.93968*ADD+0.10318*XO2+0.10318*HO2+0.00276*PHO +! K062=1.00E-11::HCHO+OH-->HO2+CO+H2O +! K063=5.55E-12*exp(-(-331.0/TPK%T))::ALD+OH-->1.00000*CARBOP+H2O +! K064=TPK%T*TPK%T*5.68E-18*exp(-(-92.0/TPK%T))::KET+OH-->1.00000*CARBOP+H2O +! K065=1.32E-11+1.88E-12*exp(-(-175.0/TPK%T))::CARBO+OH-->0.51419*CARBOP+0.16919*CARBO+1.01732*CO+0.51208*HO2+0.00000*HCHO+0.06253*ALD+0.00853*KET+0.10162*XO2+0.75196*H2O +! K066=4.50E-13::ORA1+OH-->HO2+CO2+H2O +! K067=6.00E-13::ORA2+OH--> +! K068=2.93E-12*exp(-(-190.0/TPK%T))::OP1+OH-->0.65*MO2+0.35*HCHO+0.35*OH +! K069=3.36E-12*exp(-(-190.0/TPK%T))::OP2+OH-->0.40341*ALKAP+0.05413*CARBOP+0.07335*ALD+0.37591*KET+0.09333*XO2+0.02915*HO2+0.02915*HCHO+0.44925*OH +! K070=3.80E-14+1.59E-14*exp(-(-500.0/TPK%T))::PAN+OH-->0.57839*HCHO+0.21863*CARBO+0.71893*NO3+0.28107*PAN+0.28107*HO2+0.29733*H2O+XO2 +! K071=5.31E-12*exp(-(260.0/TPK%T))::ONIT+OH-->1.00000*ALKAP+NO2+H2O +! K072=3.40E-13*exp(-(1900.0/TPK%T))::HCHO+NO3-->HO2+HNO3+CO +! K073=1.40E-12*exp(-(1900.0/TPK%T))::ALD+NO3-->1.00000*CARBOP+HNO3 +! K074=1.62E-12*exp(-(1900.0/TPK%T))+0.00E-01*exp(-(150.0/TPK%T))+1.94E-14*exp(-(1000.0/TPK%T))::CARBO+NO3-->0.91567*HNO3+0.38881*CARBOP+0.10530*CARBO+0.05265*ALD+0.00632*KET+0.10530*NO2+0.10530*XO2+0.63217*HO2+1.33723*CO+0.00000*OLN +! K075=4.92E-16::ARO+NO3-->HNO3+PHO +! K076=4.35E-18*TPK%T*TPK%T*exp(-(2282.0/TPK%T))+1.91E-14*exp(-(450.0/TPK%T))+1.08E-15*exp(-(-450.0/TPK%T))+0.00E-01::ALKE+NO3-->0.00000*CARBO+0.93768*OLN +! K077=4.00E-12*exp(-(446.0/TPK%T))+0.00E-01*exp(-(-490.0/TPK%T))+0.00E-01::BIO+NO3-->0.91741*CARBO+1.00000*OLN +! K078=3.76E-16*exp(-(500.0/TPK%T))::PAN+NO3-->0.60*ONIT+0.60*NO3+0.40000*PAN+0.40*HCHO+0.40*NO2+XO2 +! K079=8.17E-15*exp(-(2580.0/TPK%T))+4.32E-16*exp(-(1800.0/TPK%T))+2.87E-17*exp(-(845.0/TPK%T))+0.00E-01*exp(-(2283.0/TPK%T))::ALKE+O3-->0.48290*HCHO+0.51468*ALD+0.07377*KET+0.00000*CARBO+0.35120*CO+0.15343*ORA1+0.08143*ORA2+0.23451*HO2+0.39435*OH+0.05705*CARBOP+0.03196*ETH+0.00000*ALKE+0.04300*CH4+0.13966*MO2+0.09815*ALKAP+0.01833*H2O2+0.00000*XO2+0.05409*H2+0.00000*O3P +! K080=7.86E-15*exp(-(1913.0/TPK%T))+0.00E-01*exp(-(732.0/TPK%T))+0.00E-01::BIO+O3-->0.90000*HCHO+0.00000*ALD+0.00000*KET+0.39754*CARBO+0.36000*CO+0.37388*ALKE+0.00000*ALKAP+0.17000*CARBOP+0.03000*MO2+0.15000*ORA1+0.00000*ORA2+0.28000*OH+0.30000*HO2+0.00100*H2O2+0.05000*H2+0.13000*XO2+0.09000*O3P +! K081=0.00E-01*exp(-(2112.0/TPK%T))+1.38E-19::CARBO+O3-->0.00000*HCHO+1.07583*CARBO+0.15692*ALD+0.10788*ORA1+0.20595*ORA2+0.27460*CARBOP+0.10149*OP2+0.64728*CO+0.28441*HO2+0.20595*OH+0.00000*H2 +! K082=7.20E-17*exp(-(1700.0/TPK%T))::PAN+O3-->0.70*HCHO+0.30000*PAN+0.70*NO2+0.13*CO+0.04*H2+0.11*ORA1+0.08*HO2+0.036*OH+0.70000*CARBOP +! K083=2.00E-11::PHO+NO2-->0.10670*ARO+ONIT +! K084=1.00E-11::PHO+HO2-->1.06698*ARO +! K085=3.60E-11::ADD+NO2-->ARO+HONO +! K086=1.66E-17*exp(-(-1044.0/TPK%T))::ADD+O2-->0.98*AROP+0.02*ARO+0.02*HO2 +! K087=2.80E-11::ADD+O3-->ARO+OH +! K088=@TROE(5.86E-01,9.70E-29,5.6,9.30E-12,1.5,TPK%M,TPK%T,KVECNPT)::CARBOP+NO2-->1.00000*PAN +! K089=@TROE_EQUIL(9.70E-29,5.6,9.30E-12,1.5,1.16E+28,13954.,TPK%M,TPK%T,KVECNPT)::PAN-->1.00000*CARBOP+NO2 +! K090=4.20E-12*exp(-(-180.0/TPK%T))::MO2+NO-->HCHO+HO2+NO2 +! K091=4.36E-12::ALKAP+NO-->0.33144*ALD+0.03002*HCHO+0.54531*KET+0.03407*CARBO+0.74265*HO2+0.09016*MO2+0.08187*ALKAP+0.13007*XO2+0.08459*ONIT+0.91541*NO2 +! K092=6.93E-12::ALKEP+NO-->1.39870*HCHO+0.42125*ALD+0.05220*KET+HO2+NO2 +! K093=4.00E-12::BIOP+NO-->0.45463*CARBO+0.60600*HCHO+0.00000*ALD+0.00000*KET+0.37815*ALKE+0.84700*HO2+0.84700*NO2+0.15300*ONIT +! K094=4.00E-12::AROP+NO-->0.95115*NO2+0.95115*HO2+2.06993*CARBO+0.04885*ONIT +! K095=1.22E-11::CARBOP+NO-->0.78134*MO2+0.09532*CARBOP+0.05848*HCHO+0.07368*ALD+0.08670*CARBO+0.12334*HO2+0.02563*XO2+NO2 +! K096=4.00E-12::OLN+NO-->0.18401*ONIT+1.81599*NO2+0.18401*HO2+0.23419*HCHO+1.01182*ALD+0.37862*KET +! K097=3.80E-13*exp(-(-800.0/TPK%T))::MO2+HO2-->OP1 +! K098=6.16E-14*exp(-(-700.0/TPK%T))+1.52E-13*exp(-(-1300.0/TPK%T))::ALKAP+HO2-->1.00524*OP2 +! K099=1.81E-13*exp(-(-1300.0/TPK%T))::ALKEP+HO2-->1.00524*OP2 +! K0100=1.28E-13*exp(-(-1300.0/TPK%T))+0.00E-01::BIOP+HO2-->1.00524*OP2 +! K0101=3.75E-13*exp(-(-980.0/TPK%T))::AROP+HO2-->1.00524*OP2 +! K0102=5.94E-13*exp(-(-550.0/TPK%T))+1.99E-16*exp(-(-2640.0/TPK%T))+5.56E-14*exp(-(-1300.0/TPK%T))::CARBOP+HO2-->0.80904*OP2+0.17307*ORA2+0.17307*O3 +! K103=1.66E-13*exp(-(-1300.0/TPK%T))::OLN+HO2-->ONIT +! K104=9.10E-14*exp(-(-416.0/TPK%T))::MO2+MO2-->1.33*HCHO+0.66*HO2 +! K105=1.03E-14*exp(-(-158.0/TPK%T))+6.24E-14*exp(-(-431.0/TPK%T))+1.53E-14*exp(-(-467.0/TPK%T))+4.34E-15*exp(-(-633.0/TPK%T))::ALKAP+MO2-->0.80556*HCHO+0.98383*HO2+0.56070*ALD+0.09673*KET+0.01390*MO2+0.07976*CARBO+0.13370*XO2+0.00385*ALKAP +! K106=1.57E-13*exp(-(-708.0/TPK%T))::ALKEP+MO2-->1.42894*HCHO+0.46413*ALD+0.03814*KET+HO2 +! K107=1.36E-13*exp(-(-708.0/TPK%T))::BIOP+MO2-->0.56064*CARBO+0.48074*ALKE+1.00000*HO2+1.09000*HCHO+0.00000*ALD+0.00000*KET +! K108=3.56E-14*exp(-(-708.0/TPK%T))::AROP+MO2-->HCHO+1.02767*HO2+1.99461*CARBO +! K109=1.77E-11*exp(-(440.0/TPK%T))+1.48E-16*exp(-(-2510.0/TPK%T))+3.10E-13*exp(-(-508.0/TPK%T))::CARBOP+MO2-->0.95723*HCHO+0.82998*HO2+0.56031*MO2+0.13684*ORA2+0.05954*CARBOP+0.15387*CARBO+0.08295*ALD+0.02212*XO2 +! K110=1.12E-13*exp(-(-708.0/TPK%T))::OLN+MO2-->0.88625*HCHO+0.67560*HO2+0.67560*ONIT+0.41524*ALD+0.09667*KET+0.32440*NO2 +! K111=4.44E-14*exp(-(-211.0/TPK%T))+2.23E-13*exp(-(-460.0/TPK%T))+4.10E-14*exp(-(-522.0/TPK%T))+1.17E-14*exp(-(-683.0/TPK%T))::ALKAP+CARBOP-->0.71461*ALD+0.48079*HO2+0.51480*MO2+0.49810*ORA2+0.18819*KET+0.07600*HCHO+0.00828*ALKAP+0.11306*XO2+0.06954*CARBO +! K112=4.36E-13*exp(-(-765.0/TPK%T))::ALKEP+CARBOP-->0.68192*HCHO+0.68374*ALD+0.50078*HO2+0.50078*MO2+0.49922*ORA2+0.06579*KET +! K113=7.60E-13*exp(-(-765.0/TPK%T))::BIOP+CARBOP-->0.78591*CARBO+0.24463*ALKE+0.50600*HO2+0.49400*ORA2+0.34000*HCHO+0.50600*MO2+0.00000*ALD+0.00000*KET +! K114=3.63E-13*exp(-(-765.0/TPK%T))::AROP+CARBOP-->MO2+HO2+1.99455*CARBO +! K115=7.73E-13*exp(-(-530.0/TPK%T))+1.70E-13*exp(-(-565.0/TPK%T))::CARBOP+CARBOP-->1.66702*MO2+0.05821*CARBOP+0.03432*HCHO+0.10777*CARBO+0.06969*ALD+0.02190*KET+0.07566*HO2+0.01593*XO2+0.09955*ORA2 +! K116=4.85E-13*exp(-(-765.0/TPK%T))::OLN+CARBOP-->0.66562*ONIT+0.51037*MO2+0.48963*ORA2+0.17599*HO2+0.13414*HCHO+0.42122*ALD+0.10822*KET+0.00000*NO2 +! K117=4.19E-15*exp(-(-1000.0/TPK%T))::OLN+OLN-->2.00*ONIT+HO2 +! K118=2.48E-14*exp(-(-1000.0/TPK%T))::OLN+OLN-->0.00000*HCHO+0.00000*ALD+0.00000*KET+0.00000*HO2+0.00000*NO2+0.00000*ONIT +! K119=1.20E-12::MO2+NO3-->HCHO+HO2+NO2 +! K120=1.20E-12::ALKAP+NO3-->0.33743*ALD+0.81290*HO2+0.03142*HCHO+0.62978*KET+0.03531*CARBO+0.09731*MO2+0.08994*ALKAP+0.16271*XO2+NO2 +! K121=1.20E-12::ALKEP+NO3-->1.40909*HCHO+0.43039*ALD+0.02051*KET+HO2+NO2 +! K122=1.20E-12::BIOP+NO3-->0.61160*CARBO+0.42729*ALKE+0.68600*HCHO+0.00000*ALD+0.00000*KET+HO2+NO2 +! K123=1.20E-12::AROP+NO3-->2.81904*CARBO+HO2+NO2 +! K124=3.48E-12::CARBOP+NO3-->0.91910*MO2+0.03175*CARBOP+0.03175*HCHO+0.03455*CARBO+0.02936*ALD+0.04915*HO2+0.01021*XO2+NO2 +! K125=1.20E-12::OLN+NO3-->0.25928*ONIT+1.74072*NO2+0.25928*HO2+0.20740*HCHO+0.91850*ALD+0.34740*KET +! K126=1.66E-13*exp(-(-1300.0/TPK%T))::XO2+HO2-->1.00524*OP2 +! K127=5.99E-15*exp(-(-1510.0/TPK%T))::XO2+MO2-->HCHO+HO2 +! K128=1.69E-14*exp(-(-1560.0/TPK%T))::XO2+CARBOP-->MO2 +! K129=7.13E-17*exp(-(-2950.0/TPK%T))::XO2+XO2--> +! K130=4.00E-12::XO2+NO-->NO2 +! K131=1.20E-12::XO2+NO3-->NO2 +! K132=1.00E-40::SULF--> ! KTC1=@KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::O3-->WC_O3 ! KTC2=@KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::H2O2-->WC_H2O2 ! KTC3=@KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NO-->WC_NO @@ -541,54 +180,32 @@ ! KTC12=@KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HO2-->WC_HO2 ! KTC13=@KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::CO2-->WC_CO2 ! KTC14=@KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::SO2-->WC_SO2 -! KTC15=@KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::H2SO4-->WC_H2SO4 -! KTC16=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::RO21-->WC_RO21 -! KTC17=@KT(0.05,75.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::RO25-->WC_RO25 -! KTC18=@KT(0.027,32.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::MEOH-->WC_MEOH -! KTC19=@KT(0.017,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ETOH-->WC_ETOH -! KTC20=@KT(0.011,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ALCH-->WC_ALCH -! KTC21=@KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HCHO-->WC_HCHO -! KTC22=@KT(0.03,44.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ALD2-->WC_ALD2 -! KTC23=@KT(0.01,58.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::GLY-->WC_GLY -! KTC24=@KT(0.008,58.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::KETL-->WC_KETL -! KTC25=@KT(0.0003,72.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::MGLY-->WC_MGLY -! KTC26=@KT(0.023,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ORA1-->WC_ORA1 -! KTC27=@KT(0.032,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ORA2-->WC_ORA2 -! KTC28=@KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ACID-->WC_ACID -! KTC29=@KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::RP16-->WC_RP16 -! KTC30=@KT(0.05,88.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::UR21-->WC_UR21 -! KTC31=@KT(0.05,90.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::UR28-->WC_UR28 -! KTC32=@KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.1e-2,-2830.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_O3-->O3 -! KTC33=@KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(7.73e4,-7310.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_H2O2-->H2O2 -! KTC34=@KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.92e-3,-1790.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO-->NO -! KTC35=@KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.4e-2,-2516.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO2-->NO2 -! KTC36=@KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.8e-2,-8707.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO3-->NO3 -! KTC37=@KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.1e0,-3400.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_N2O5-->N2O5 -! KTC38=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(5.0e1,-4880.,1.6e-3,1760.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HONO-->HONO -! KTC39=@KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(2.1e5,-8700.,2.2e1,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HNO3-->HNO3 -! KTC40=@KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(1.2e4,-6900.,1.26e-6,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HNO4-->HNO4 -! KTC41=@KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFB(6.02e1,-4160.,1.7e-5,4350.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NH3-->NH3 -! KTC42=@KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.9e1,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_OH-->OH -! KTC43=@KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(6.9e2,-6643.,1.6e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HO2-->HO2 -! KTC44=@KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(3.4e-2,-2710.,4.3e-7,920.,4.7e-11,1780.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_CO2-->CO2 -! KTC45=@KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(1.36,-2930.,1.3e-2,-1965.,6.4e-8,-1430.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_SO2-->SO2 -! KTC46=@KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(2.1e5,-8700.,1.0e3,0.,1.0e-2,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_H2SO4-->H2SO4 -! KTC47=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.7e0,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_RO21-->RO21 -! KTC48=@KT(0.05,75.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(7.5e1,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_RO25-->RO25 -! KTC49=@KT(0.027,32.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.2e2,-5210.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_MEOH-->MEOH -! KTC50=@KT(0.017,46.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.9e2,-6600.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ETOH-->ETOH -! KTC51=@KT(0.011,60.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.3e2,-7500.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ALCH-->ALCH -! KTC52=@KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.23e3,-7100.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HCHO-->HCHO -! KTC53=@KT(0.03,44.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.29e1,-5890.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ALD2-->ALD2 -! KTC54=@KT(0.01,58.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.6e5,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_GLY-->GLY -! KTC55=@KT(0.008,58.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.81e1,-5050.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_KETL-->KETL -! KTC56=@KT(0.0003,72.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.7e3,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_MGLY-->MGLY -! KTC57=@KT(0.023,46.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(8.9e3,-6100.,1.8e-4,150.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ORA1-->ORA1 -! KTC58=@KT(0.032,60.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(4.1e3,-6200.,1.75e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ORA2-->ORA2 -! KTC59=@KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(5.7e3,0.,1.35e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ACID-->ACID -! KTC60=@KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(9.0e3,0.,3.2e-4,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_RP16-->RP16 -! KTC61=@KT(0.05,88.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(3.11e5,-5090.,3.55e-3,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_UR21-->UR21 -! KTC62=@KT(0.05,90.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(5.0e8,0.,5.6e-2,0.,5.4e-5,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_UR28-->UR28 +! KTC15=@KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::SULF-->WC_SULF +! KTC16=@KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HCHO-->WC_HCHO +! KTC17=@KT(0.012,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ORA1-->WC_ORA1 +! KTC18=@KT(0.03,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ORA2-->WC_ORA2 +! KTC19=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::MO2-->WC_MO2 +! KTC20=@KT(0.007,48.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::OP1-->WC_OP1 +! KTC21=@KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.1e-2,-2830.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_O3-->O3 +! KTC22=@KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(7.73e4,-7310.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_H2O2-->H2O2 +! KTC23=@KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.92e-3,-1790.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO-->NO +! KTC24=@KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.4e-2,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO2-->NO2 +! KTC25=@KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.8e-2,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO3-->NO3 +! KTC26=@KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.1,-3400.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_N2O5-->N2O5 +! KTC27=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(5.0e1,-4880.,1.6e-3,1760.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HONO-->HONO +! KTC28=@KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(2.1e5,-8700.,2.2e1,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HNO3-->HNO3 +! KTC29=@KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(1.2e4,-6900.,1.26e-6,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HNO4-->HNO4 +! KTC30=@KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFB(6.02e1,-4160.,1.7e-5,4350.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NH3-->NH3 +! KTC31=@KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.9e1,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_OH-->OH +! KTC32=@KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(6.9e2,0.,1.6e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HO2-->HO2 +! KTC33=@KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(3.4e-2,-2710.,4.3e-7,920.,4.7e-11,1780.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_CO2-->CO2 +! KTC34=@KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(1.36,-2930.,1.3e-2,-1965.,6.4e-8,-1430.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_SO2-->SO2 +! KTC35=@KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(2.1e5,-8700.,1.0e3,0.,1.0e-2,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_SULF-->SULF +! KTC36=@KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.23e3,-7100.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HCHO-->HCHO +! KTC37=@KT(0.012,46.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(8.9e3,-6100.,1.8e-4,150.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ORA1-->ORA1 +! KTC38=@KT(0.03,60.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(4.1e3,-6200.,1.74e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ORA2-->ORA2 +! KTC39=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.7e0,-2030.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_MO2-->MO2 +! KTC40=@KT(0.007,48.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.e2,-5280.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_OP1-->OP1 ! KTR1=@KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::O3-->WR_O3 ! KTR2=@KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::H2O2-->WR_H2O2 ! KTR3=@KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NO-->WR_NO @@ -603,55 +220,33 @@ ! KTR12=@KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HO2-->WR_HO2 ! KTR13=@KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::CO2-->WR_CO2 ! KTR14=@KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::SO2-->WR_SO2 -! KTR15=@KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::H2SO4-->WR_H2SO4 -! KTR16=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::RO21-->WR_RO21 -! KTR17=@KT(0.05,75.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::RO25-->WR_RO25 -! KTR18=@KT(0.027,32.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::MEOH-->WR_MEOH -! KTR19=@KT(0.017,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ETOH-->WR_ETOH -! KTR20=@KT(0.011,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ALCH-->WR_ALCH -! KTR21=@KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HCHO-->WR_HCHO -! KTR22=@KT(0.03,44.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ALD2-->WR_ALD2 -! KTR23=@KT(0.01,58.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::GLY-->WR_GLY -! KTR24=@KT(0.008,58.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::KETL-->WR_KETL -! KTR25=@KT(0.0003,72.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::MGLY-->WR_MGLY -! KTR26=@KT(0.023,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ORA1-->WR_ORA1 -! KTR27=@KT(0.032,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ORA2-->WR_ORA2 -! KTR28=@KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ACID-->WR_ACID -! KTR29=@KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::RP16-->WR_RP16 -! KTR30=@KT(0.05,88.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::UR21-->WR_UR21 -! KTR31=@KT(0.05,90.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::UR28-->WR_UR28 -! KTR32=@KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.1e-2,-2830.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_O3-->O3 -! KTR33=@KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(7.73e4,-7310.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_H2O2-->H2O2 -! KTR34=@KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.92e-3,-1790.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO-->NO -! KTR35=@KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.4e-2,-2516.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO2-->NO2 -! KTR36=@KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.8e-2,-8707.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO3-->NO3 -! KTR37=@KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.1e0,-3400.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_N2O5-->N2O5 -! KTR38=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(5.0e1,-4880.,1.6e-3,1760.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HONO-->HONO -! KTR39=@KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(2.1e5,-8700.,2.2e1,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HNO3-->HNO3 -! KTR40=@KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(1.2e4,-6900.,1.26e-6,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HNO4-->HNO4 -! KTR41=@KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFB(6.02e1,-4160.,1.7e-5,4350.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NH3-->NH3 -! KTR42=@KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.9e1,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_OH-->OH -! KTR43=@KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(6.9e2,-6643.,1.6e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HO2-->HO2 -! KTR44=@KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(3.4e-2,-2710.,4.3e-7,920.,4.7e-11,1780.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_CO2-->CO2 -! KTR45=@KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(1.36,-2930.,1.3e-2,-1965.,6.4e-8,-1430.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_SO2-->SO2 -! KTR46=@KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(2.1e5,-8700.,1.0e3,0.,1.0e-2,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_H2SO4-->H2SO4 -! KTR47=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.7e0,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_RO21-->RO21 -! KTR48=@KT(0.05,75.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(7.5e1,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_RO25-->RO25 -! KTR49=@KT(0.027,32.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.2e2,-5210.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_MEOH-->MEOH -! KTR50=@KT(0.017,46.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.9e2,-6600.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ETOH-->ETOH -! KTR51=@KT(0.011,60.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.3e2,-7500.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ALCH-->ALCH -! KTR52=@KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.23e3,-7100.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HCHO-->HCHO -! KTR53=@KT(0.03,44.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.29e1,-5890.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ALD2-->ALD2 -! KTR54=@KT(0.01,58.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.6e5,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_GLY-->GLY -! KTR55=@KT(0.008,58.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.81e1,-5050.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_KETL-->KETL -! KTR56=@KT(0.0003,72.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.7e3,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_MGLY-->MGLY -! KTR57=@KT(0.023,46.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(8.9e3,-6100.,1.8e-4,150.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ORA1-->ORA1 -! KTR58=@KT(0.032,60.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(4.1e3,-6200.,1.75e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ORA2-->ORA2 -! KTR59=@KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(5.7e3,0.,1.35e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ACID-->ACID -! KTR60=@KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(9.0e3,0.,3.2e-4,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_RP16-->RP16 -! KTR61=@KT(0.05,88.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(3.11e5,-5090.,3.55e-3,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_UR21-->UR21 -! KTR62=@KT(0.05,90.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(5.0e8,0.,5.6e-2,0.,5.4e-5,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_UR28-->UR28 -! KC1=!ZRATES(:,024)::WC_H2O2-->WC_OH+WC_OH +! KTR15=@KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::SULF-->WR_SULF +! KTR16=@KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HCHO-->WR_HCHO +! KTR17=@KT(0.012,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ORA1-->WR_ORA1 +! KTR18=@KT(0.03,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ORA2-->WR_ORA2 +! KTR19=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::MO2-->WR_MO2 +! KTR20=@KT(0.007,48.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::OP1-->WR_OP1 +! KTR21=@KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.1e-2,-2830.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_O3-->O3 +! KTR22=@KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(7.73e4,-7310.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_H2O2-->H2O2 +! KTR23=@KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.92e-3,-1790.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO-->NO +! KTR24=@KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.4e-2,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO2-->NO2 +! KTR25=@KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.8e-2,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO3-->NO3 +! KTR26=@KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.1,-3400.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_N2O5-->N2O5 +! KTR27=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(5.0e1,-4880.,1.6e-3,1760.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HONO-->HONO +! KTR28=@KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(2.1e5,-8700.,2.2e1,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HNO3-->HNO3 +! KTR29=@KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(1.2e4,-6900.,1.26e-6,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HNO4-->HNO4 +! KTR30=@KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFB(6.02e1,-4160.,1.7e-5,4350.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NH3-->NH3 +! KTR31=@KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.9e1,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_OH-->OH +! KTR32=@KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(6.9e2,0.,1.6e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HO2-->HO2 +! KTR33=@KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(3.4e-2,-2710.,4.3e-7,920.,4.7e-11,1780.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_CO2-->CO2 +! KTR34=@KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(1.36,-2930.,1.3e-2,-1965.,6.4e-8,-1430.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_SO2-->SO2 +! KTR35=@KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(2.1e5,-8700.,1.0e3,0.,1.0e-2,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_SULF-->SULF +! KTR36=@KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.23e3,-7100.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HCHO-->HCHO +! KTR37=@KT(0.012,46.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(8.9e3,-6100.,1.8e-4,150.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ORA1-->ORA1 +! KTR38=@KT(0.03,60.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(4.1e3,-6200.,1.74e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ORA2-->ORA2 +! KTR39=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.7e0,-2030.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_MO2-->MO2 +! KTR40=@KT(0.007,48.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.e2,-5280.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_OP1-->OP1 +! KC1=!ZRATES(:,018)::WC_H2O2-->WC_OH+WC_OH ! KC2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_OH+WC_OH-->WC_H2O2 ! KC3=((2.8E+10*10.**(-TPK%PHC)+3.5E+10*exp(-720.*(1./TPK%T-1./298.15))*1.6e-5)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_OH+WC_HO2--> ! KC4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_H2O2+WC_OH-->WC_HO2 @@ -662,42 +257,26 @@ ! KC9=((1.8E+9*10.**(-TPK%PHC)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_NO2+WC_HO2-->WC_HNO4 ! KC10=2.6E-2*10.**(-TPK%PHC)/(1.26e-6+10.**(-TPK%PHC))::WC_HNO4-->WC_HO2+WC_NO2 ! KC11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHC))::WC_HNO4-->WC_HONO -! KC12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHC))**2./((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.)*(1.26e-6+10.**(-TPK%PHC))))/TPK%MOL2MOLECCLOUD::WC_HNO4+WC_SO2-->WC_H2SO4+WC_HNO3 -! KC13=!ZRATES(:,025)*2.2e+1/(2.2e+1+10.**(-TPK%PHC))::WC_HNO3-->WC_NO2+WC_OH +! KC12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHC))**2./((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.)*(1.26e-6+10.**(-TPK%PHC))))/TPK%MOL2MOLECCLOUD::WC_HNO4+WC_SO2-->WC_SULF+WC_HNO3 +! KC13=!ZRATES(:,019)*2.2e+1/(2.2e+1+10.**(-TPK%PHC))::WC_HNO3-->WC_NO2+WC_OH ! KC14=1.0E+10::WC_N2O5-->WC_HNO3+WC_HNO3 -! KC15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_NO3+WC_H2SO4-->WC_HNO3+WC_ASO4 +! KC15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_NO3+WC_SULF-->WC_HNO3+WC_ASO4 ! KC16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_NO3+WC_SO2-->WC_HNO3+WC_ASO3 -! KC17=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.)*(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECCLOUD::WC_SO2+WC_HCHO-->WC_AHMS -! KC18=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*EXP(-6716*(1./TPK%T-1./298.15))/10.**(-TPK%PHC)::WC_AHMS-->WC_SO2+WC_HCHO -! KC19=3.0E+8/TPK%MOL2MOLECCLOUD::WC_AHMS+WC_OH-->WC_HO2+WC_ORA1+WC_SO2 -! KC20=1.1E+9::WC_ASO3+W_O2-->WC_ASO5 -! KC21=(1.7E+9*10.**(-TPK%PHC)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ASO5+WC_HO2-->WC_AHSO5 -! KC22=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_ASO5+WC_ASO5-->WC_ASO4+WC_ASO4 -! KC23=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_AHSO5+WC_SO2-->2.00*WC_H2SO4 -! KC24=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15))::WC_ASO4-->WC_H2SO4+WC_OH -! KC25=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_SO2+WC_O3-->WC_H2SO4 -! KC26=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_SO2+WC_H2O2-->WC_H2SO4 -! KC27=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_RO21+WC_RO21-->2.00*WC_HCHO+2.00*WC_HO2 -! KC28=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_RO21+WC_SO2-->WC_HCHO+WC_ASO3 -! KC29=1.5E+8/TPK%MOL2MOLECCLOUD::WC_RO25+WC_RO25-->WC_ORA2+WC_H2O2+WC_ALD2+WC_HO2 -! KC30=(1.7E+9*exp(-600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_MEOH+WC_OH-->WC_HCHO+WC_HO2 -! KC31=(2.1E+9*exp(-1200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_ETOH+WC_OH-->WC_ALD2+WC_HO2 -! KC32=(3.3E+9*exp(-1000.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_ALCH+WC_OH-->0.50*WC_ALD2+0.50*WC_KETL+WC_HO2 -! KC33=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(4030.*(1./TPK%T-1./298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2MOLECCLOUD::WC_HCHO+WC_OH-->WC_ORA1+WC_HO2 -! KC34=3.4E+9/TPK%MOL2MOLECCLOUD::WC_ALD2+WC_OH-->0.50*WC_RO21+0.50*WC_RO25+WC_CO2 -! KC35=(1.1E+9*exp(-1500.*(1./TPK%T-1./298.15))*3.9e3/(1.+3.9e3))/TPK%MOL2MOLECCLOUD::WC_GLY+WC_OH-->WC_RP16+WC_HO2 -! KC36=(7.9E+8*exp(-1600.*(1./TPK%T-1./298.15))*4.86e2/(1.+4.86e2))/TPK%MOL2MOLECCLOUD::WC_MGLY+WC_OH-->WC_UR21+WC_HO2 -! KC37=(8.9E+8*exp(-1400.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_KETL+WC_OH-->WC_MGLY+WC_KETL+WC_HCHO+WC_UR21+WC_ALD2+WC_RO21+WC_CO2+WC_H2O2+WC_HO2 -! KC38=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+3.4E+9*exp(-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.15)))/(1.8e-4*exp(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ORA1+WC_OH-->WC_CO2+WC_HO2 -! KC39=((1.5E+7*exp(-1300.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+1.0E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.75e-5)/(1.75e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ORA2+WC_OH-->WC_RP16+0.5*WC_H2O2 -! KC40=(3.2E+8*exp(-2300.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.35e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ACID+WC_OH-->WC_RO25+WC_CO2 -! KC41=(7.3E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.35e-5/(1.35e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ACID+WC_OH-->0.56*WC_UR21+0.15*WC_ACID2+0.29*WC_ALD2+0.29*WC_H2O2+0.11*WC_HO2 -! KC42=((4.7E+7*10.**(-TPK%PHC)*5.6E-2+7.7E+6*5.6E-2*5.4e-5)/(5.6E-2*5.4E-5+5.4E-5*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_UR28+WC_OH-->2*WC_CO2+WC_HO2 -! KC43=((1.2E+8*exp(-2800.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+7.0E+8*exp(-2300.*(1./TPK%T-1./298.15))*3.55E-3)/(3.55E-3+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_UR21+WC_OH-->0.56*WC_ACID2+0.43*WC_ALD2+0.43*WC_CO2+0.3*WC_H2O2+0.81*WC_HO2 -! KC44=(3.6E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(10.**(-TPK%PHC)+3.2E-4))/TPK%MOL2MOLECCLOUD::WC_RP16+WC_OH-->WC_UR28+WC_HO2 -! KC45=(2.6E+9*exp(-4300.*(1./TPK%T-1./298.15))*3.2E-4/(10.**(-TPK%PHC)+3.2E-4))/TPK%MOL2MOLECCLOUD::WC_RP16+WC_OH-->2*WC_CO2+0.45*WC_H2O2+0.71*WC_HO2 -! KC46=1.6E+7/TPK%MOL2MOLECCLOUD::WC_ACID2+WC_OH--> -! KR1=!ZRATES(:,024)::WR_H2O2-->WR_OH+WR_OH +! KC17=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_MO2+WC_MO2-->2.00*WC_HCHO+2.00*WC_HO2 +! KC18=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_MO2+WC_SO2-->WC_OP1+WC_ASO3 +! KC19=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(4030.*(1./TPK%T-1./298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2MOLECCLOUD::WC_HCHO+WC_OH-->WC_ORA1+WC_HO2 +! KC20=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+3.4E+9*exp(-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.15)))/(1.8e-4*exp(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ORA1+WC_OH-->WC_CO2+WC_HO2 +! KC21=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.)*(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECCLOUD::WC_SO2+WC_HCHO-->WC_AHMS +! KC22=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*EXP(-6716*(1./TPK%T-1./298.15))/10.**(-TPK%PHC)::WC_AHMS-->WC_SO2+WC_HCHO +! KC23=3.0E+8/TPK%MOL2MOLECCLOUD::WC_AHMS+WC_OH-->WC_HO2+WC_ORA1+WC_SO2 +! KC24=1.1E+9::WC_ASO3+W_O2-->WC_ASO5 +! KC25=(1.7E+9*10.**(-TPK%PHC)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ASO5+WC_HO2-->WC_AHSO5 +! KC26=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD::WC_ASO5+WC_ASO5-->WC_ASO4+WC_ASO4 +! KC27=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_AHSO5+WC_SO2-->2.00*WC_SULF +! KC28=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15))::WC_ASO4-->WC_SULF+WC_OH +! KC29=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_SO2+WC_O3-->WC_SULF +! KC30=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_SO2+WC_H2O2-->WC_SULF +! KR1=!ZRATES(:,018)::WR_H2O2-->WR_OH+WR_OH ! KR2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_OH+WR_OH-->WR_H2O2 ! KR3=((2.8E+10*10.**(-TPK%PHR)+3.5E+10*exp(-720.*(1./TPK%T-1./298.15))*1.6e-5)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_OH+WR_HO2--> ! KR4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_H2O2+WR_OH-->WR_HO2 @@ -708,2272 +287,1212 @@ ! KR9=((1.8E+9*10.**(-TPK%PHR)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_NO2+WR_HO2-->WR_HNO4 ! KR10=2.6E-2*10.**(-TPK%PHR)/(1.26e-6+10.**(-TPK%PHR))::WR_HNO4-->WR_HO2+WR_NO2 ! KR11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHR))::WR_HNO4-->WR_HONO -! KR12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHR))**2./((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.)*(1.26e-6+10.**(-TPK%PHR))))/TPK%MOL2MOLECRAIN::WR_HNO4+WR_SO2-->WR_H2SO4+WR_HNO3 -! KR13=!ZRATES(:,025)*2.2e+1/(2.2e+1+10.**(-TPK%PHR))::WR_HNO3-->WR_NO2+WR_OH +! KR12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHR))**2./((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.)*(1.26e-6+10.**(-TPK%PHR))))/TPK%MOL2MOLECRAIN::WR_HNO4+WR_SO2-->WR_SULF+WR_HNO3 +! KR13=!ZRATES(:,019)*2.2e+1/(2.2e+1+10.**(-TPK%PHR))::WR_HNO3-->WR_NO2+WR_OH ! KR14=1.0E+10::WR_N2O5-->WR_HNO3+WR_HNO3 -! KR15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_NO3+WR_H2SO4-->WR_HNO3+WR_ASO4 +! KR15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_NO3+WR_SULF-->WR_HNO3+WR_ASO4 ! KR16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_NO3+WR_SO2-->WR_HNO3+WR_ASO3 -! KR17=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.)*(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECRAIN::WR_SO2+WR_HCHO-->WR_AHMS -! KR18=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*EXP(-6716*(1./TPK%T-1./298.15))/10.**(-TPK%PHR)::WR_AHMS-->WR_SO2+WR_HCHO -! KR19=3.0E+8/TPK%MOL2MOLECRAIN::WR_AHMS+WR_OH-->WR_HO2+WR_ORA1+WR_SO2 -! KR20=1.1E+9::WR_ASO3+W_O2-->WR_ASO5 -! KR21=(1.7E+9*10.**(-TPK%PHR)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ASO5+WR_HO2-->WR_AHSO5 -! KR22=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_ASO5+WR_ASO5-->WR_ASO4+WR_ASO4 -! KR23=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_AHSO5+WR_SO2-->2.00*WR_H2SO4 -! KR24=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15))::WR_ASO4-->WR_H2SO4+WR_OH -! KR25=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_SO2+WR_O3-->WR_H2SO4 -! KR26=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_SO2+WR_H2O2-->WR_H2SO4 -! KR27=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_RO21+WR_RO21-->2.00*WR_HCHO+2.00*WR_HO2 -! KR28=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_RO21+WR_SO2-->WR_HCHO+WR_ASO3 -! KR29=1.5E+8/TPK%MOL2MOLECRAIN::WR_RO25+WR_RO25-->WR_ORA2+WR_H2O2+WR_ALD2+WR_HO2 -! KR30=(1.7E+9*exp(-600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_MEOH+WR_OH-->WR_HCHO+WR_HO2 -! KR31=(2.1E+9*exp(-1200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_ETOH+WR_OH-->WR_ALD2+WR_HO2 -! KR32=(3.3E+9*exp(-1000.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_ALCH+WR_OH-->0.50*WR_ALD2+0.50*WR_KETL+WR_HO2 -! KR33=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(4030.*(1./TPK%T-1./298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2MOLECRAIN::WR_HCHO+WR_OH-->WR_ORA1+WR_HO2 -! KR34=3.4E+9/TPK%MOL2MOLECRAIN::WR_ALD2+WR_OH-->0.50*WR_RO21+0.50*WR_RO25+WR_CO2 -! KR35=(1.1E+9*exp(-1500.*(1./TPK%T-1./298.15))*3.9e3/(1.+3.9e3))/TPK%MOL2MOLECRAIN::WR_GLY+WR_OH-->WR_RP16+WR_HO2 -! KR36=(7.9E+8*exp(-1600.*(1./TPK%T-1./298.15))*4.86e2/(1.+4.86e2))/TPK%MOL2MOLECRAIN::WR_MGLY+WR_OH-->WR_UR21+WR_HO2 -! KR37=(8.9E+8*exp(-1400.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_KETL+WR_OH-->WR_MGLY+WR_KETL+WR_HCHO+WR_UR21+WR_ALD2+WR_RO21+WR_CO2+WR_H2O2+WR_HO2 -! KR38=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+3.4E+9*exp(-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.15)))/(1.8e-4*exp(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ORA1+WR_OH-->WR_CO2+WR_HO2 -! KR39=((1.5E+7*exp(-1300.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+1.0E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.75e-5)/(1.75e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ORA2+WR_OH-->WR_RP16+0.5*WR_H2O2 -! KR40=(3.2E+8*exp(-2300.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.35e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ACID+WR_OH-->WR_RO25+WR_CO2 -! KR41=(7.3E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.35e-5/(1.35e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ACID+WR_OH-->0.56*WR_UR21+0.15*WR_ACID2+0.29*WR_ALD2+0.29*WR_H2O2+0.11*WR_HO2 -! KR42=((4.7E+7*10.**(-TPK%PHR)*5.6E-2+7.7E+6*5.6E-2*5.4e-5)/(5.6E-2*5.4E-5+5.4E-5*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_UR28+WR_OH-->2*WR_CO2+WR_HO2 -! KR43=((1.2E+8*exp(-2800.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+7.0E+8*exp(-2300.*(1./TPK%T-1./298.15))*3.55E-3)/(3.55E-3+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_UR21+WR_OH-->0.56*WR_ACID2+0.43*WR_ALD2+0.43*WR_CO2+0.3*WR_H2O2+0.81*WR_HO2 -! KR44=(3.6E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(10.**(-TPK%PHR)+3.2E-4))/TPK%MOL2MOLECRAIN::WR_RP16+WR_OH-->WR_UR28+WR_HO2 -! KR45=(2.6E+9*exp(-4300.*(1./TPK%T-1./298.15))*3.2E-4/(10.**(-TPK%PHR)+3.2E-4))/TPK%MOL2MOLECRAIN::WR_RP16+WR_OH-->2*WR_CO2+0.45*WR_H2O2+0.71*WR_HO2 -! KR46=1.6E+7/TPK%MOL2MOLECRAIN::WR_ACID2+WR_OH--> +! KR17=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_MO2+WR_MO2-->2.00*WR_HCHO+2.00*WR_HO2 +! KR18=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_MO2+WR_SO2-->WR_OP1+WR_ASO3 +! KR19=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(4030.*(1./TPK%T-1./298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2MOLECRAIN::WR_HCHO+WR_OH-->WR_ORA1+WR_HO2 +! KR20=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+3.4E+9*exp(-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.15)))/(1.8e-4*exp(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ORA1+WR_OH-->WR_CO2+WR_HO2 +! KR21=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.)*(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECRAIN::WR_SO2+WR_HCHO-->WR_AHMS +! KR22=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*EXP(-6716*(1./TPK%T-1./298.15))/10.**(-TPK%PHR)::WR_AHMS-->WR_SO2+WR_HCHO +! KR23=3.0E+8/TPK%MOL2MOLECRAIN::WR_AHMS+WR_OH-->WR_HO2+WR_ORA1+WR_SO2 +! KR24=1.1E+9::WR_ASO3+W_O2-->WR_ASO5 +! KR25=(1.7E+9*10.**(-TPK%PHR)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ASO5+WR_HO2-->WR_AHSO5 +! KR26=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN::WR_ASO5+WR_ASO5-->WR_ASO4+WR_ASO4 +! KR27=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_AHSO5+WR_SO2-->2.00*WR_SULF +! KR28=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15))::WR_ASO4-->WR_SULF+WR_OH +! KR29=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_SO2+WR_O3-->WR_SULF +! KR30=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_SO2+WR_H2O2-->WR_SULF ! !======================================================================== ! ! the prognostic chemical species are the following ... ! -! 1. NO PCONC(:,1) -! 2. NO2 PCONC(:,2) -! 3. O3 PCONC(:,3) -! 4. HONO PCONC(:,4) -! 5. HNO3 PCONC(:,5) -! 6. HNO4 PCONC(:,6) -! 7. N2O5 PCONC(:,7) -! 8. NO3 PCONC(:,8) -! 9. NH3 PCONC(:,9) -! 10. HO2 PCONC(:,10) -! 11. CO PCONC(:,11) -! 12. H2O2 PCONC(:,12) -! 13. SO2 PCONC(:,13) -! 14. H2SO4 PCONC(:,14) -! 15. OH PCONC(:,15) -! 16. ETHE PCONC(:,16) -! 17. OLEL PCONC(:,17) -! 18. OLEH PCONC(:,18) -! 19. ALKL PCONC(:,19) -! 20. ALKM PCONC(:,20) -! 21. ALKH PCONC(:,21) -! 22. AROH PCONC(:,22) -! 23. AROL PCONC(:,23) -! 24. AROO PCONC(:,24) -! 25. ARAL PCONC(:,25) -! 26. ARAC PCONC(:,26) -! 27. PAH PCONC(:,27) -! 28. HCHO PCONC(:,28) -! 29. ALD2 PCONC(:,29) -! 30. KETL PCONC(:,30) -! 31. KETH PCONC(:,31) -! 32. MEOH PCONC(:,32) -! 33. ETOH PCONC(:,33) -! 34. ALCH PCONC(:,34) -! 35. ISOP PCONC(:,35) -! 36. BIOL PCONC(:,36) -! 37. BIOH PCONC(:,37) -! 38. MTBE PCONC(:,38) -! 39. MVK PCONC(:,39) -! 40. MCR PCONC(:,40) -! 41. MGLY PCONC(:,41) -! 42. GLY PCONC(:,42) -! 43. ORA1 PCONC(:,43) -! 44. ORA2 PCONC(:,44) -! 45. ACID PCONC(:,45) -! 46. UR28 PCONC(:,46) -! 47. UR21 PCONC(:,47) -! 48. URG2 PCONC(:,48) -! 49. UR26 PCONC(:,49) -! 50. RPG2 PCONC(:,50) -! 51. RP18 PCONC(:,51) -! 52. RPG3 PCONC(:,52) -! 53. URG4 PCONC(:,53) -! 54. UR8 PCONC(:,54) -! 55. UR17 PCONC(:,55) -! 56. UR7 PCONC(:,56) -! 57. RPR3 PCONC(:,57) -! 58. URG6 PCONC(:,58) -! 59. UR22 PCONC(:,59) -! 60. URG7 PCONC(:,60) -! 61. RPR4 PCONC(:,61) -! 62. RPR7 PCONC(:,62) -! 63. RPG7 PCONC(:,63) -! 64. URG8 PCONC(:,64) -! 65. UR19 PCONC(:,65) -! 66. URG9 PCONC(:,66) -! 67. AP7 PCONC(:,67) -! 68. URG10 PCONC(:,68) -! 69. RPR1 PCONC(:,69) -! 70. RPR5 PCONC(:,70) -! 71. RPR8 PCONC(:,71) -! 72. RP10 PCONC(:,72) -! 73. RP11 PCONC(:,73) -! 74. RP16 PCONC(:,74) -! 75. RPRL PCONC(:,75) -! 76. APAN PCONC(:,76) -! 77. PAN1 PCONC(:,77) -! 78. PAN2 PCONC(:,78) -! 79. PAN3 PCONC(:,79) -! 80. PAN4 PCONC(:,80) -! 81. PAN6 PCONC(:,81) -! 82. PAN7 PCONC(:,82) -! 83. PAN8 PCONC(:,83) -! 84. PN10 PCONC(:,84) -! 85. RO2T PCONC(:,85) -! 86. RO21 PCONC(:,86) -! 87. RO25 PCONC(:,87) -! 88. WC_O3 PCONC(:,88) -! 89. WC_H2O2 PCONC(:,89) -! 90. WC_NO PCONC(:,90) -! 91. WC_NO2 PCONC(:,91) -! 92. WC_NO3 PCONC(:,92) -! 93. WC_N2O5 PCONC(:,93) -! 94. WC_HONO PCONC(:,94) -! 95. WC_HNO3 PCONC(:,95) -! 96. WC_HNO4 PCONC(:,96) -! 97. WC_NH3 PCONC(:,97) -! 98. WC_OH PCONC(:,98) -! 99. WC_HO2 PCONC(:,99) -! 100. WC_CO2 PCONC(:,100) -! 101. WC_SO2 PCONC(:,101) -! 102. WC_H2SO4 PCONC(:,102) -! 103. WC_RO21 PCONC(:,103) -! 104. WC_RO25 PCONC(:,104) -! 105. WC_MEOH PCONC(:,105) -! 106. WC_ETOH PCONC(:,106) -! 107. WC_ALCH PCONC(:,107) -! 108. WC_HCHO PCONC(:,108) -! 109. WC_ALD2 PCONC(:,109) -! 110. WC_GLY PCONC(:,110) -! 111. WC_MGLY PCONC(:,111) -! 112. WC_KETL PCONC(:,112) -! 113. WC_ORA1 PCONC(:,113) -! 114. WC_ORA2 PCONC(:,114) -! 115. WC_ACID PCONC(:,115) -! 116. WC_RP16 PCONC(:,116) -! 117. WC_UR21 PCONC(:,117) -! 118. WC_UR28 PCONC(:,118) -! 119. WC_ACID2 PCONC(:,119) -! 120. WC_ASO3 PCONC(:,120) -! 121. WC_ASO4 PCONC(:,121) -! 122. WC_ASO5 PCONC(:,122) -! 123. WC_AHSO5 PCONC(:,123) -! 124. WC_AHMS PCONC(:,124) -! 125. WR_O3 PCONC(:,125) -! 126. WR_H2O2 PCONC(:,126) -! 127. WR_NO PCONC(:,127) -! 128. WR_NO2 PCONC(:,128) -! 129. WR_NO3 PCONC(:,129) -! 130. WR_N2O5 PCONC(:,130) -! 131. WR_HONO PCONC(:,131) -! 132. WR_HNO3 PCONC(:,132) -! 133. WR_HNO4 PCONC(:,133) -! 134. WR_NH3 PCONC(:,134) -! 135. WR_OH PCONC(:,135) -! 136. WR_HO2 PCONC(:,136) -! 137. WR_CO2 PCONC(:,137) -! 138. WR_SO2 PCONC(:,138) -! 139. WR_H2SO4 PCONC(:,139) -! 140. WR_RO21 PCONC(:,140) -! 141. WR_RO25 PCONC(:,141) -! 142. WR_MEOH PCONC(:,142) -! 143. WR_ETOH PCONC(:,143) -! 144. WR_ALCH PCONC(:,144) -! 145. WR_HCHO PCONC(:,145) -! 146. WR_ALD2 PCONC(:,146) -! 147. WR_GLY PCONC(:,147) -! 148. WR_MGLY PCONC(:,148) -! 149. WR_KETL PCONC(:,149) -! 150. WR_ORA1 PCONC(:,150) -! 151. WR_ORA2 PCONC(:,151) -! 152. WR_ACID PCONC(:,152) -! 153. WR_RP16 PCONC(:,153) -! 154. WR_UR21 PCONC(:,154) -! 155. WR_UR28 PCONC(:,155) -! 156. WR_ACID2 PCONC(:,156) -! 157. WR_ASO3 PCONC(:,157) -! 158. WR_ASO4 PCONC(:,158) -! 159. WR_ASO5 PCONC(:,159) -! 160. WR_AHSO5 PCONC(:,160) -! 161. WR_AHMS PCONC(:,161) +! 1. O3 PCONC(:,1) +! 2. H2O2 PCONC(:,2) +! 3. NO PCONC(:,3) +! 4. NO2 PCONC(:,4) +! 5. NO3 PCONC(:,5) +! 6. N2O5 PCONC(:,6) +! 7. HONO PCONC(:,7) +! 8. HNO3 PCONC(:,8) +! 9. HNO4 PCONC(:,9) +! 10. NH3 PCONC(:,10) +! 11. SO2 PCONC(:,11) +! 12. SULF PCONC(:,12) +! 13. CO PCONC(:,13) +! 14. OH PCONC(:,14) +! 15. HO2 PCONC(:,15) +! 16. CH4 PCONC(:,16) +! 17. ETH PCONC(:,17) +! 18. ALKA PCONC(:,18) +! 19. ALKE PCONC(:,19) +! 20. BIO PCONC(:,20) +! 21. ARO PCONC(:,21) +! 22. HCHO PCONC(:,22) +! 23. ALD PCONC(:,23) +! 24. KET PCONC(:,24) +! 25. CARBO PCONC(:,25) +! 26. ONIT PCONC(:,26) +! 27. PAN PCONC(:,27) +! 28. OP1 PCONC(:,28) +! 29. OP2 PCONC(:,29) +! 30. ORA1 PCONC(:,30) +! 31. ORA2 PCONC(:,31) +! 32. MO2 PCONC(:,32) +! 33. ALKAP PCONC(:,33) +! 34. ALKEP PCONC(:,34) +! 35. BIOP PCONC(:,35) +! 36. PHO PCONC(:,36) +! 37. ADD PCONC(:,37) +! 38. AROP PCONC(:,38) +! 39. CARBOP PCONC(:,39) +! 40. OLN PCONC(:,40) +! 41. XO2 PCONC(:,41) +! 42. WC_O3 PCONC(:,42) +! 43. WC_H2O2 PCONC(:,43) +! 44. WC_NO PCONC(:,44) +! 45. WC_NO2 PCONC(:,45) +! 46. WC_NO3 PCONC(:,46) +! 47. WC_N2O5 PCONC(:,47) +! 48. WC_HONO PCONC(:,48) +! 49. WC_HNO3 PCONC(:,49) +! 50. WC_HNO4 PCONC(:,50) +! 51. WC_NH3 PCONC(:,51) +! 52. WC_OH PCONC(:,52) +! 53. WC_HO2 PCONC(:,53) +! 54. WC_CO2 PCONC(:,54) +! 55. WC_SO2 PCONC(:,55) +! 56. WC_SULF PCONC(:,56) +! 57. WC_HCHO PCONC(:,57) +! 58. WC_ORA1 PCONC(:,58) +! 59. WC_ORA2 PCONC(:,59) +! 60. WC_MO2 PCONC(:,60) +! 61. WC_OP1 PCONC(:,61) +! 62. WC_ASO3 PCONC(:,62) +! 63. WC_ASO4 PCONC(:,63) +! 64. WC_ASO5 PCONC(:,64) +! 65. WC_AHSO5 PCONC(:,65) +! 66. WC_AHMS PCONC(:,66) +! 67. WR_O3 PCONC(:,67) +! 68. WR_H2O2 PCONC(:,68) +! 69. WR_NO PCONC(:,69) +! 70. WR_NO2 PCONC(:,70) +! 71. WR_NO3 PCONC(:,71) +! 72. WR_N2O5 PCONC(:,72) +! 73. WR_HONO PCONC(:,73) +! 74. WR_HNO3 PCONC(:,74) +! 75. WR_HNO4 PCONC(:,75) +! 76. WR_NH3 PCONC(:,76) +! 77. WR_OH PCONC(:,77) +! 78. WR_HO2 PCONC(:,78) +! 79. WR_CO2 PCONC(:,79) +! 80. WR_SO2 PCONC(:,80) +! 81. WR_SULF PCONC(:,81) +! 82. WR_HCHO PCONC(:,82) +! 83. WR_ORA1 PCONC(:,83) +! 84. WR_ORA2 PCONC(:,84) +! 85. WR_MO2 PCONC(:,85) +! 86. WR_OP1 PCONC(:,86) +! 87. WR_ASO3 PCONC(:,87) +! 88. WR_ASO4 PCONC(:,88) +! 89. WR_ASO5 PCONC(:,89) +! 90. WR_AHSO5 PCONC(:,90) +! 91. WR_AHMS PCONC(:,91) ! !======================================================================== ! ! the individual chemical terms are the following ... ! +! terms for O3: +! + K018*<O3P>*<O2> +! + 0.17307*K0102*<CARBOP>*<HO2> +! + KTC21*<WC_O3> +! + KTR21*<WR_O3> +! - K002*<O3> +! - K003*<O3> +! - K019*<O3P>*<O3> +! - K023*<O3>*<OH> +! - K024*<O3>*<HO2> +! - K042*<O3>*<NO> +! - K043*<O3>*<NO2> +! - K079*<ALKE>*<O3> +! - K080*<BIO>*<O3> +! - K081*<CARBO>*<O3> +! - K082*<PAN>*<O3> +! - K087*<ADD>*<O3> +! - KTC1*<O3> +! - KTR1*<O3> +! terms for H2O2: +! + K027*<HO2>*<HO2> +! + K028*<HO2>*<HO2>*<H2O> +! + 0.01833*K079*<ALKE>*<O3> +! + 0.00100*K080*<BIO>*<O3> +! + KTC22*<WC_H2O2> +! + KTR22*<WR_H2O2> +! - K009*<H2O2> +! - K026*<H2O2>*<OH> +! - KTC2*<H2O2> +! - KTR2*<H2O2> ! terms for NO: ! + K001*<NO2> -! + K003*<NO2>*<O> -! + K012*<NO3>*<NO2> -! + K013*<NO3> -! + 0.9*K020*<HONO> -! + K095*<NO>*<RO2T> -! + KTC34*<WC_NO> -! + KTR34*<WR_NO> -! - K005*<O3>*<NO> -! - K007*<NO3>*<NO> -! - K008*<NO>*<NO> -! - K008*<NO>*<NO> -! - K019*<OH>*<NO> -! - K026*<HO2>*<NO> -! - K038*<NO>*<O> -! - K095*<NO>*<RO2T> -! - K110*<NO>*<RO21> -! - K113*<NO>*<RO22> -! - K116*<NO>*<RO23> -! - K119*<NO>*<RO24> -! - K122*<NO>*<RO25> -! - K125*<NO>*<RO26> -! - K144*<NO>*<RO27> -! - K147*<NO>*<RO28> -! - K150*<NO>*<RO29> -! - K153*<NO>*<RO210> -! - K156*<NO>*<RO211> -! - K159*<NO>*<RO212> -! - K162*<NO>*<RO213> -! - K165*<NO>*<RO239> -! - K168*<NO>*<RO214> -! - K171*<NO>*<RO215> -! - K174*<NO>*<RO216> -! - K177*<NO>*<RO217> -! - K180*<NO>*<RO218> -! - K183*<NO>*<RO219> -! - K186*<NO>*<RO220> -! - K189*<NO>*<RO221> -! - K192*<NO>*<RO222> -! - K195*<NO>*<RO223> -! - K198*<NO>*<RO224> -! - K201*<NO>*<RO225> -! - K204*<NO>*<RO226> -! - K207*<NO>*<RO227> -! - K210*<NO>*<RO228> -! - K213*<NO>*<RO229> -! - K216*<NO>*<RO240> -! - K221*<NO>*<RO231> -! - K224*<NO>*<RO232> -! - K227*<NO>*<RO241> -! - K231*<NO>*<RO233> -! - K234*<NO>*<RO242> -! - K238*<NO>*<RO234> -! - K241*<NO>*<RO243> -! - K245*<NO>*<RO235> -! - K248*<NO>*<RO244> -! - K252*<NO>*<RO236> -! - K255*<NO>*<RO245> -! - K259*<NO>*<RO237> -! - K262*<NO>*<RO246> -! - K266*<NO>*<RO238> -! - K269*<NO>*<RO247> -! - K277*<NO>*<RO248> -! - K285*<NO>*<RO249> -! - K288*<NO>*<RO250> -! - K291*<NO>*<RO251> -! - K294*<NO>*<RO252> -! - K297*<NO>*<RO253> -! - K300*<NO>*<RO254> -! - K309*<NO>*<RO255> -! - K315*<NO>*<RO256> -! - K331*<NO>*<RO257> -! - K340*<NO>*<RO258> -! - K344*<NO>*<RO230> +! + K004*<HONO> +! + K007*<NO3> +! + K030*<O3P>*<NO2> +! + K046*<NO3>*<NO2> +! + KTC23*<WC_NO> +! + KTR23*<WR_NO> +! - K029*<O3P>*<NO> +! - K032*<OH>*<NO> +! - K035*<HO2>*<NO> +! - K042*<O3>*<NO> +! - K044*<NO>*<NO>*<O2> +! - K044*<NO>*<NO>*<O2> +! - K045*<NO3>*<NO> +! - K090*<MO2>*<NO> +! - K091*<ALKAP>*<NO> +! - K092*<ALKEP>*<NO> +! - K093*<BIOP>*<NO> +! - K094*<AROP>*<NO> +! - K095*<CARBOP>*<NO> +! - K096*<OLN>*<NO> +! - K130*<XO2>*<NO> ! - KTC3*<NO> ! - KTR3*<NO> ! terms for NO2: -! + K005*<O3>*<NO> -! + 2.*K007*<NO3>*<NO> -! + 2.*K008*<NO>*<NO> -! + K010*<N2O5> -! + K012*<NO3>*<NO2> -! + K014*<NO3> -! + 0.1*K020*<HONO> -! + K026*<HO2>*<NO> -! + K028*<HNO4> -! + K029*<OH>*<HNO4> -! + 0.8*K033*<HO2>*<NO3> -! + K038*<NO>*<O> +! + K005*<HNO3> +! + 0.65*K006*<HNO4> +! + K008*<NO3> +! + K017*<ONIT> +! + K029*<O3P>*<NO> +! + K034*<OH>*<NO3> +! + K035*<HO2>*<NO> +! + K037*<HNO4> +! + 0.7*K038*<HO2>*<NO3> ! + K039*<OH>*<HONO> -! + K040*<OH>*<NO3> -! + 2.*K041*<NO3>*<NO3> -! + K110*<NO>*<RO21> -! + K113*<NO>*<RO22> -! + 2.*K116*<NO>*<RO23> -! + K117*<RO2T>*<RO23> -! + K118*<HO2>*<RO23> -! + K119*<NO>*<RO24> -! + TPK%CF4*K122*<NO>*<RO25> -! + K125*<NO>*<RO26> -! + K135*<PAN1> -! + K136*<PAN2> -! + K137*<PAN3> -! + K138*<PN10> -! + 1.0000000*K139*<APAN> -! + K140*<PAN6> -! + K141*<PAN4> -! + K144*<NO>*<RO27> -! + K147*<NO>*<RO28> -! + TPK%CF6*K150*<NO>*<RO29> -! + K153*<NO>*<RO210> -! + 2.*K156*<NO>*<RO211> -! + K157*<RO2T>*<RO211> -! + K158*<HO2>*<RO211> -! + 2.*K159*<NO>*<RO212> -! + K160*<RO2T>*<RO212> -! + K161*<HO2>*<RO212> -! + K162*<NO>*<RO213> -! + K165*<NO>*<RO239> -! + TPK%CF8*K168*<NO>*<RO214> -! + K171*<NO>*<RO215> -! + K174*<NO>*<RO216> -! + TPK%CF22*K177*<NO>*<RO217> -! + TPK%CF20*K180*<NO>*<RO218> -! + 2.*K183*<NO>*<RO219> -! + K184*<RO2T>*<RO219> -! + K185*<HO2>*<RO219> -! + TPK%CF18*K186*<NO>*<RO220> -! + TPK%CF24*K189*<NO>*<RO221> -! + TPK%CF42*K192*<NO>*<RO222> -! + TPK%CF44*K195*<NO>*<RO223> -! + TPK%CF26*K198*<NO>*<RO224> -! + 2.*K201*<NO>*<RO225> -! + K202*<RO2T>*<RO225> -! + K203*<HO2>*<RO225> -! + K204*<NO>*<RO226> -! + TPK%CF28*K207*<NO>*<RO227> -! + 2.*K210*<NO>*<RO228> -! + K211*<RO2T>*<RO228> -! + K212*<HO2>*<RO228> -! + TPK%CF30*K213*<NO>*<RO229> -! + K216*<NO>*<RO240> -! + TPK%CF32*K221*<NO>*<RO231> -! + TPK%CF34*K224*<NO>*<RO232> -! + TPK%CF36*K227*<NO>*<RO241> -! + K231*<NO>*<RO233> -! + K234*<NO>*<RO242> -! + K238*<NO>*<RO234> -! + K241*<NO>*<RO243> -! + K245*<NO>*<RO235> -! + K248*<NO>*<RO244> -! + K252*<NO>*<RO236> -! + K255*<NO>*<RO245> -! + K259*<NO>*<RO237> -! + K262*<NO>*<RO246> -! + K266*<NO>*<RO238> -! + K269*<NO>*<RO247> -! + K277*<NO>*<RO248> -! + K285*<NO>*<RO249> -! + K288*<NO>*<RO250> -! + K291*<NO>*<RO251> -! + 2.*K294*<NO>*<RO252> -! + K295*<HO2>*<RO252> -! + K296*<RO2T>*<RO252> -! + K297*<NO>*<RO253> -! + K300*<NO>*<RO254> -! + K309*<NO>*<RO255> -! + K315*<NO>*<RO256> -! + K317*<PAN8> -! + K331*<NO>*<RO257> -! + K340*<NO>*<RO258> -! + K343*<PAN7> -! + K344*<NO>*<RO230> -! + KTC35*<WC_NO2> -! + KTR35*<WR_NO2> +! + K041*<OH>*<HNO4> +! + K042*<O3>*<NO> +! + K044*<NO>*<NO>*<O2> +! + K044*<NO>*<NO>*<O2> +! + K045*<NO3>*<NO> +! + K045*<NO3>*<NO> +! + K046*<NO3>*<NO2> +! + K048*<N2O5> +! + K049*<NO3>*<NO3> +! + K049*<NO3>*<NO3> +! + K071*<ONIT>*<OH> +! + 0.10530*K074*<CARBO>*<NO3> +! + 0.40*K078*<PAN>*<NO3> +! + 0.70*K082*<PAN>*<O3> +! + K089*<PAN> +! + K090*<MO2>*<NO> +! + 0.91541*K091*<ALKAP>*<NO> +! + K092*<ALKEP>*<NO> +! + 0.84700*K093*<BIOP>*<NO> +! + 0.95115*K094*<AROP>*<NO> +! + K095*<CARBOP>*<NO> +! + 1.81599*K096*<OLN>*<NO> +! + 0.32440*K110*<OLN>*<MO2> +! + 0.00000*K116*<OLN>*<CARBOP> +! + 0.00000*K118*<OLN>*<OLN> +! + K119*<MO2>*<NO3> +! + K120*<ALKAP>*<NO3> +! + K121*<ALKEP>*<NO3> +! + K122*<BIOP>*<NO3> +! + K123*<AROP>*<NO3> +! + K124*<CARBOP>*<NO3> +! + 1.74072*K125*<OLN>*<NO3> +! + K130*<XO2>*<NO> +! + K131*<XO2>*<NO3> +! + KTC24*<WC_NO2> +! + KTR24*<WR_NO2> ! - K001*<NO2> -! - K003*<NO2>*<O> -! - K004*<NO2>*<O> -! - K006*<O3>*<NO2> -! - K009*<NO3>*<NO2> -! - K012*<NO3>*<NO2> -! - K021*<H2O>*<NO2> -! - K022*<OH>*<NO2> -! - K027*<HO2>*<NO2> -! - K103*<NO2>*<RAD1> -! - K104*<NO2>*<RAD2> -! - K105*<NO2>*<RAD3> -! - K106*<NO2>*<RAD4> -! - K107*<NO2>*<RAD5> -! - K108*<NO2>*<RAD6> -! - K109*<NO2>*<RAD7> -! - K126*<NO2>*<RO26> -! - K127*<NO2>*<RO28> -! - K128*<NO2>*<RO239> -! - K129*<NO2>*<RO248> -! - K130*<NO2>*<RO250> -! - K131*<NO2>*<RO254> -! - K132*<NO2>*<RO255> -! - K133*<NO2>*<RO257> -! - K134*<NO2>*<RO258> -! - K316*<NO2>*<RO256> -! - K321*<NO2>*<RAD8> +! - K030*<O3P>*<NO2> +! - K031*<O3P>*<NO2> +! - K033*<OH>*<NO2> +! - K036*<HO2>*<NO2> +! - K043*<O3>*<NO2> +! - K046*<NO3>*<NO2> +! - K047*<NO3>*<NO2> +! - K083*<PHO>*<NO2> +! - K085*<ADD>*<NO2> +! - K088*<CARBOP>*<NO2> ! - KTC4*<NO2> ! - KTR4*<NO2> -! terms for O3: -! + K002*<O2>*<O> -! + K081*<NO3>*<ARAL> -! + TPK%CF39*K082*<OH>*<ARAL> -! + K142*<HO2>*<RO26> -! + K148*<HO2>*<RO28> -! + K166*<HO2>*<RO239> -! + K279*<HO2>*<RO248> -! + K289*<HO2>*<RO250> -! + K301*<HO2>*<RO254> -! + K303*<OH>*<RPR5> -! + 1.0000011*K306*<OH>*<RPRL> -! + K310*<HO2>*<RO255> -! + K318*<HO2>*<RO256> -! + K322*<OH>*<RPR7> -! + 1.0000005*K323*<OH>*<RPG7> -! + K326*<OH>*<RP11> -! + K332*<HO2>*<RO257> -! + 1.0000000*K334*<OH>*<RPG3> -! + 1.0000000*K335*<OH>*<RPG2> -! + K337*<OH>*<RP18> -! + K341*<HO2>*<RO258> -! + KTC32*<WC_O3> -! + KTR32*<WR_O3> -! - K005*<O3>*<NO> -! - K006*<O3>*<NO2> -! - K015*<O3> -! - K016*<O3> -! - K025*<OH>*<O3> -! - K030*<HO2>*<O3> -! - K034*<O3>*<O> -! - K051*<O3>*<ETHE> -! - K056*<O3>*<OLEL> -! - K066*<O3>*<ISOP> -! - K076*<O3>*<OLEH> -! - K086*<O3>*<BIOL> -! - K090*<O3>*<BIOH> -! - K281*<O3>*<MVK> -! - K282*<O3>*<MCR> -! - KTC1*<O3> -! - KTR1*<O3> +! terms for NO3: +! + 0.35*K006*<HNO4> +! + K031*<O3P>*<NO2> +! + K040*<OH>*<HNO3> +! + K043*<O3>*<NO2> +! + K048*<N2O5> +! + 0.71893*K070*<PAN>*<OH> +! + 0.60*K078*<PAN>*<NO3> +! + KTC25*<WC_NO3> +! + KTR25*<WR_NO3> +! - K007*<NO3> +! - K008*<NO3> +! - K034*<OH>*<NO3> +! - K038*<HO2>*<NO3> +! - K045*<NO3>*<NO> +! - K046*<NO3>*<NO2> +! - K047*<NO3>*<NO2> +! - K049*<NO3>*<NO3> +! - K049*<NO3>*<NO3> +! - K072*<HCHO>*<NO3> +! - K073*<ALD>*<NO3> +! - K074*<CARBO>*<NO3> +! - K075*<ARO>*<NO3> +! - K076*<ALKE>*<NO3> +! - K077*<BIO>*<NO3> +! - K078*<PAN>*<NO3> +! - K119*<MO2>*<NO3> +! - K120*<ALKAP>*<NO3> +! - K121*<ALKEP>*<NO3> +! - K122*<BIOP>*<NO3> +! - K123*<AROP>*<NO3> +! - K124*<CARBOP>*<NO3> +! - K125*<OLN>*<NO3> +! - K131*<XO2>*<NO3> +! - KTC5*<NO3> +! - KTR5*<NO3> +! terms for N2O5: +! + K047*<NO3>*<NO2> +! + KTC26*<WC_N2O5> +! + KTR26*<WR_N2O5> +! - K048*<N2O5> +! - KTC6*<N2O5> +! - KTR6*<N2O5> ! terms for HONO: -! + K019*<OH>*<NO> -! + 0.5*K021*<H2O>*<NO2> -! + KTC38*<WC_HONO> -! + KTR38*<WR_HONO> -! - K020*<HONO> +! + K032*<OH>*<NO> +! + K085*<ADD>*<NO2> +! + KTC27*<WC_HONO> +! + KTR27*<WR_HONO> +! - K004*<HONO> ! - K039*<OH>*<HONO> ! - KTC7*<HONO> ! - KTR7*<HONO> ! terms for HNO3: -! + 2.*K011*<H2O>*<N2O5> -! + 0.5*K021*<H2O>*<NO2> -! + K022*<OH>*<NO2> -! + 0.2*K033*<HO2>*<NO3> -! + K047*<NO3>*<HCHO> -! + K061*<NO3>*<ALD2> -! + K072*<NO3>*<AROO> -! + K081*<NO3>*<ARAL> -! + TPK%CF46*K275*<NO3>*<MCR> -! + K278*<NO3>*<MGLY> -! + K307*<NO3>*<RPR1> -! + K313*<NO3>*<RPR3> -! + K320*<NO3>*<RPR4> -! + K327*<NO3>*<RPR8> -! + K338*<NO3>*<RP16> -! + KTC39*<WC_HNO3> -! + KTR39*<WR_HNO3> -! - K023*<OH>*<HNO3> +! + K033*<OH>*<NO2> +! + 0.3*K038*<HO2>*<NO3> +! + K072*<HCHO>*<NO3> +! + K073*<ALD>*<NO3> +! + 0.91567*K074*<CARBO>*<NO3> +! + K075*<ARO>*<NO3> +! + KTC28*<WC_HNO3> +! + KTR28*<WR_HNO3> +! - K005*<HNO3> +! - K040*<OH>*<HNO3> ! - KTC8*<HNO3> ! - KTR8*<HNO3> ! terms for HNO4: -! + K027*<HO2>*<NO2> -! + KTC40*<WC_HNO4> -! + KTR40*<WR_HNO4> -! - K028*<HNO4> -! - K029*<OH>*<HNO4> +! + K036*<HO2>*<NO2> +! + KTC29*<WC_HNO4> +! + KTR29*<WR_HNO4> +! - K006*<HNO4> +! - K037*<HNO4> +! - K041*<OH>*<HNO4> ! - KTC9*<HNO4> ! - KTR9*<HNO4> -! terms for N2O5: -! + K009*<NO3>*<NO2> -! + KTC37*<WC_N2O5> -! + KTR37*<WR_N2O5> -! - K010*<N2O5> -! - K011*<H2O>*<N2O5> -! - KTC6*<N2O5> -! - KTR6*<N2O5> -! terms for NO3: -! + K004*<NO2>*<O> -! + K006*<O3>*<NO2> -! + K010*<N2O5> -! + K023*<OH>*<HNO3> -! + KTC36*<WC_NO3> -! + KTR36*<WR_NO3> -! - K007*<NO3>*<NO> -! - K009*<NO3>*<NO2> -! - K012*<NO3>*<NO2> -! - K013*<NO3> -! - K014*<NO3> -! - K033*<HO2>*<NO3> -! - K040*<OH>*<NO3> -! - K041*<NO3>*<NO3> -! - K041*<NO3>*<NO3> -! - K047*<NO3>*<HCHO> -! - K050*<NO3>*<ETHE> -! - K055*<NO3>*<OLEL> -! - K061*<NO3>*<ALD2> -! - K065*<NO3>*<ISOP> -! - K072*<NO3>*<AROO> -! - K075*<NO3>*<OLEH> -! - K081*<NO3>*<ARAL> -! - K085*<NO3>*<BIOL> -! - K089*<NO3>*<BIOH> -! - K275*<NO3>*<MCR> -! - K278*<NO3>*<MGLY> -! - K307*<NO3>*<RPR1> -! - K313*<NO3>*<RPR3> -! - K320*<NO3>*<RPR4> -! - K327*<NO3>*<RPR8> -! - K338*<NO3>*<RP16> -! - KTC5*<NO3> -! - KTR5*<NO3> ! terms for NH3: -! + KTC41*<WC_NH3> -! + KTR41*<WR_NH3> -! - K345*<OH>*<NH3> +! + KTC30*<WC_NH3> +! + KTR30*<WR_NH3> +! - K050*<NH3>*<OH> ! - KTC10*<NH3> ! - KTR10*<NH3> -! terms for HO2: -! + 0.1*K020*<HONO> -! + K024*<OH>*<CO> -! + K025*<OH>*<O3> -! + K028*<HNO4> -! + K035*<OH>*<SO2> -! + K037*<OH>*<H2O2> -! + K040*<OH>*<NO3> -! + 2.0*K044*<HCHO> -! + K046*<OH>*<HCHO> -! + K047*<NO3>*<HCHO> -! + K048*<OH>*<MEOH> -! + 0.06*K051*<O3>*<ETHE> -! + K052*<O>*<ETHE> -! + TPK%CF1*K053*<OH>*<ETOH> -! + 0.28*K056*<O3>*<OLEL> -! + K059*<ALD2> -! + 0.366*K066*<O3>*<ISOP> -! + 0.16*K073*<OH>*<AROO> -! + 0.28*K076*<O3>*<OLEH> -! + 0.16*K079*<OH>*<AROL> -! + 0.16*K080*<OH>*<AROH> -! + TPK%CF48*K082*<OH>*<ARAL> -! + 0.16*K083*<OH>*<ARAC> -! + 0.445*K086*<O3>*<BIOL> -! + 0.16*K092*<OH>*<PAH> -! + K094*<HO2>*<RO2T> -! + K110*<NO>*<RO21> -! + K111*<RO2T>*<RO21> -! + K112*<HO2>*<RO21> -! + K113*<NO>*<RO22> -! + K114*<RO2T>*<RO22> -! + K115*<HO2>*<RO22> -! + K117*<RO2T>*<RO23> -! + K118*<HO2>*<RO23> -! + K119*<NO>*<RO24> -! + K120*<RO2T>*<RO24> -! + K121*<HO2>*<RO24> -! + TPK%CF4*K122*<NO>*<RO25> -! + K123*<RO2T>*<RO25> -! + K124*<HO2>*<RO25> -! + TPK%CF6*K150*<NO>*<RO29> -! + K151*<RO2T>*<RO29> -! + K152*<HO2>*<RO29> -! + K153*<NO>*<RO210> -! + K154*<RO2T>*<RO210> -! + K155*<HO2>*<RO210> -! + K171*<NO>*<RO215> -! + K172*<RO2T>*<RO215> -! + K173*<HO2>*<RO215> -! + TPK%CF22*K177*<NO>*<RO217> -! + K178*<RO2T>*<RO217> -! + K179*<HO2>*<RO217> -! + TPK%CF20*K180*<NO>*<RO218> -! + K181*<RO2T>*<RO218> -! + K182*<HO2>*<RO218> -! + TPK%CF24*K189*<NO>*<RO221> -! + K190*<RO2T>*<RO221> -! + K191*<HO2>*<RO221> -! + TPK%CF42*K192*<NO>*<RO222> -! + K193*<RO2T>*<RO222> -! + K194*<HO2>*<RO222> -! + TPK%CF44*K195*<NO>*<RO223> -! + K196*<RO2T>*<RO223> -! + K197*<HO2>*<RO223> -! + TPK%CF26*K198*<NO>*<RO224> -! + K199*<RO2T>*<RO224> -! + K200*<HO2>*<RO224> -! + TPK%CF28*K207*<NO>*<RO227> -! + K208*<RO2T>*<RO227> -! + K209*<HO2>*<RO227> -! + TPK%CF32*K221*<NO>*<RO231> -! + K222*<RO2T>*<RO231> -! + K223*<HO2>*<RO231> -! + TPK%CF36*K227*<NO>*<RO241> -! + K228*<RO2T>*<RO241> -! + K229*<HO2>*<RO241> -! + K231*<NO>*<RO233> -! + K232*<RO2T>*<RO233> -! + K233*<HO2>*<RO233> -! + K234*<NO>*<RO242> -! + K235*<RO2T>*<RO242> -! + K236*<HO2>*<RO242> -! + K238*<NO>*<RO234> -! + K239*<RO2T>*<RO234> -! + K240*<HO2>*<RO234> -! + K241*<NO>*<RO243> -! + K242*<RO2T>*<RO243> -! + K243*<HO2>*<RO243> -! + K245*<NO>*<RO235> -! + K246*<RO2T>*<RO235> -! + K247*<HO2>*<RO235> -! + K248*<NO>*<RO244> -! + K249*<RO2T>*<RO244> -! + K250*<HO2>*<RO244> -! + K252*<NO>*<RO236> -! + K253*<RO2T>*<RO236> -! + K254*<HO2>*<RO236> -! + K255*<NO>*<RO245> -! + K256*<RO2T>*<RO245> -! + K257*<HO2>*<RO245> -! + K259*<NO>*<RO237> -! + K260*<RO2T>*<RO237> -! + K261*<HO2>*<RO237> -! + K262*<NO>*<RO246> -! + K263*<RO2T>*<RO246> -! + K264*<HO2>*<RO246> -! + K266*<NO>*<RO238> -! + K267*<RO2T>*<RO238> -! + K268*<HO2>*<RO238> -! + K269*<NO>*<RO247> -! + K270*<RO2T>*<RO247> -! + K271*<HO2>*<RO247> -! + K276*<MGLY> -! + 0.28*K281*<O3>*<MVK> -! + 0.41*K282*<O3>*<MCR> -! + 0.15*K284*<O>*<MCR> -! + K285*<NO>*<RO249> -! + K286*<RO2T>*<RO249> -! + K287*<HO2>*<RO249> -! + K291*<NO>*<RO251> -! + K292*<HO2>*<RO251> -! + K293*<RO2T>*<RO251> -! + K300*<NO>*<RO254> -! + K302*<RO2T>*<RO254> -! + K308*<RPR1> -! + 2.*K314*<RPR3> -! + K315*<NO>*<RO256> -! + K319*<RO2T>*<RO256> -! + K325*<OH>*<RP10> -! + K329*<RPR8> -! + K330*<RPR8> -! + K339*<RP16> -! + K347*<OH>*<ORA1> -! + KTC43*<WC_HO2> -! + KTR43*<WR_HO2> -! - K026*<HO2>*<NO> -! - K027*<HO2>*<NO2> -! - K030*<HO2>*<O3> -! - K031*<HO2>*<HO2> -! - K031*<HO2>*<HO2> -! - K032*<HO2>*<H2O>*<HO2> -! - K032*<HO2>*<H2O>*<HO2> -! - K033*<HO2>*<NO3> -! - K042*<HO2>*<OH> -! - K094*<HO2>*<RO2T> -! - K112*<HO2>*<RO21> -! - K115*<HO2>*<RO22> -! - K118*<HO2>*<RO23> -! - K121*<HO2>*<RO24> -! - K124*<HO2>*<RO25> -! - K142*<HO2>*<RO26> -! - K146*<HO2>*<RO27> -! - K148*<HO2>*<RO28> -! - K152*<HO2>*<RO29> -! - K155*<HO2>*<RO210> -! - K158*<HO2>*<RO211> -! - K161*<HO2>*<RO212> -! - K164*<HO2>*<RO213> -! - K166*<HO2>*<RO239> -! - K170*<HO2>*<RO214> -! - K173*<HO2>*<RO215> -! - K176*<HO2>*<RO216> -! - K179*<HO2>*<RO217> -! - K182*<HO2>*<RO218> -! - K185*<HO2>*<RO219> -! - K188*<HO2>*<RO220> -! - K191*<HO2>*<RO221> -! - K194*<HO2>*<RO222> -! - K197*<HO2>*<RO223> -! - K200*<HO2>*<RO224> -! - K203*<HO2>*<RO225> -! - K206*<HO2>*<RO226> -! - K209*<HO2>*<RO227> -! - K212*<HO2>*<RO228> -! - K215*<HO2>*<RO229> -! - K218*<HO2>*<RO240> -! - K220*<HO2>*<RO230> -! - K223*<HO2>*<RO231> -! - K226*<HO2>*<RO232> -! - K229*<HO2>*<RO241> -! - K233*<HO2>*<RO233> -! - K236*<HO2>*<RO242> -! - K240*<HO2>*<RO234> -! - K243*<HO2>*<RO243> -! - K247*<HO2>*<RO235> -! - K250*<HO2>*<RO244> -! - K254*<HO2>*<RO236> -! - K257*<HO2>*<RO245> -! - K261*<HO2>*<RO237> -! - K264*<HO2>*<RO246> -! - K268*<HO2>*<RO238> -! - K271*<HO2>*<RO247> -! - K279*<HO2>*<RO248> -! - K287*<HO2>*<RO249> -! - K289*<HO2>*<RO250> -! - K292*<HO2>*<RO251> -! - K295*<HO2>*<RO252> -! - K298*<HO2>*<RO253> -! - K301*<HO2>*<RO254> -! - K310*<HO2>*<RO255> -! - K318*<HO2>*<RO256> -! - K332*<HO2>*<RO257> -! - K341*<HO2>*<RO258> -! - KTC12*<HO2> -! - KTR12*<HO2> -! terms for CO: -! + K044*<HCHO> -! + K045*<HCHO> -! + K046*<OH>*<HCHO> -! + K047*<NO3>*<HCHO> -! + 0.315*K051*<O3>*<ETHE> -! + 0.6*K052*<O>*<ETHE> -! + 0.56*K056*<O3>*<OLEL> -! + K059*<ALD2> -! + 0.461*K066*<O3>*<ISOP> -! + 0.56*K076*<O3>*<OLEH> -! + 0.445*K086*<O3>*<BIOL> -! + 0.445*K090*<O3>*<BIOH> -! + K119*<NO>*<RO24> -! + K120*<RO2T>*<RO24> -! + K121*<HO2>*<RO24> -! + K276*<MGLY> -! + 0.56*K281*<O3>*<MVK> -! + 0.41*K282*<O3>*<MCR> -! + 0.15*K284*<O>*<MCR> -! + K300*<NO>*<RO254> -! + K302*<RO2T>*<RO254> -! + K308*<RPR1> -! + K314*<RPR3> -! + K329*<RPR8> -! + 2.*K339*<RP16> -! + K340*<NO>*<RO258> -! + K342*<RO2T>*<RO258> -! - K024*<OH>*<CO> -! terms for H2O2: -! + K031*<HO2>*<HO2> -! + K032*<HO2>*<H2O>*<HO2> -! + 0.055*K086*<O3>*<BIOL> -! + 0.055*K090*<O3>*<BIOH> -! + KTC33*<WC_H2O2> -! + KTR33*<WR_H2O2> -! - K036*<H2O2> -! - K037*<OH>*<H2O2> -! - KTC2*<H2O2> -! - KTR2*<H2O2> ! terms for SO2: -! + KTC45*<WC_SO2> -! + KTR45*<WR_SO2> -! - K035*<OH>*<SO2> +! + KTC34*<WC_SO2> +! + KTR34*<WR_SO2> +! - K052*<OH>*<SO2> ! - KTC14*<SO2> ! - KTR14*<SO2> -! terms for H2SO4: -! + K035*<OH>*<SO2> -! + KTC46*<WC_H2SO4> -! + KTR46*<WR_H2SO4> -! - K346*<H2SO4> -! - KTC15*<H2SO4> -! - KTR15*<H2SO4> +! terms for SULF: +! + K052*<OH>*<SO2> +! + KTC35*<WC_SULF> +! + KTR35*<WR_SULF> +! - K132*<SULF> +! - KTC15*<SULF> +! - KTR15*<SULF> +! terms for CO: +! + K010*<HCHO> +! + K011*<HCHO> +! + K012*<ALD> +! + 0.91924*K016*<CARBO> +! + 0.01*K054*<BIO>*<O3P> +! + 0.00878*K058*<ALKA>*<OH> +! + K062*<HCHO>*<OH> +! + 1.01732*K065*<CARBO>*<OH> +! + K072*<HCHO>*<NO3> +! + 1.33723*K074*<CARBO>*<NO3> +! + 0.35120*K079*<ALKE>*<O3> +! + 0.36000*K080*<BIO>*<O3> +! + 0.64728*K081*<CARBO>*<O3> +! + 0.13*K082*<PAN>*<O3> +! - K053*<CO>*<OH> ! terms for OH: -! + K017*<H2O>*<OSD> -! + K017*<H2O>*<OSD> -! + 0.9*K020*<HONO> -! + K026*<HO2>*<NO> -! + K030*<HO2>*<O3> -! + 0.8*K033*<HO2>*<NO3> -! + 2.*K036*<H2O2> -! + 0.06*K051*<O3>*<ETHE> -! + 0.36*K056*<O3>*<OLEL> -! + 0.664*K066*<O3>*<ISOP> -! + 0.36*K076*<O3>*<OLEH> -! + 0.89*K086*<O3>*<BIOL> -! + 0.89*K090*<O3>*<BIOH> -! + K112*<HO2>*<RO21> -! + K115*<HO2>*<RO22> -! + K118*<HO2>*<RO23> -! + K121*<HO2>*<RO24> -! + K124*<HO2>*<RO25> -! + K146*<HO2>*<RO27> -! + K152*<HO2>*<RO29> -! + K155*<HO2>*<RO210> -! + K158*<HO2>*<RO211> -! + K161*<HO2>*<RO212> -! + K164*<HO2>*<RO213> -! + K170*<HO2>*<RO214> -! + K173*<HO2>*<RO215> -! + K176*<HO2>*<RO216> -! + K179*<HO2>*<RO217> -! + K182*<HO2>*<RO218> -! + K185*<HO2>*<RO219> -! + K188*<HO2>*<RO220> -! + K191*<HO2>*<RO221> -! + K194*<HO2>*<RO222> -! + K197*<HO2>*<RO223> -! + K200*<HO2>*<RO224> -! + K203*<HO2>*<RO225> -! + K206*<HO2>*<RO226> -! + K209*<HO2>*<RO227> -! + K212*<HO2>*<RO228> -! + K215*<HO2>*<RO229> -! + K218*<HO2>*<RO240> -! + K220*<HO2>*<RO230> -! + K223*<HO2>*<RO231> -! + K226*<HO2>*<RO232> -! + K229*<HO2>*<RO241> -! + K233*<HO2>*<RO233> -! + K236*<HO2>*<RO242> -! + K240*<HO2>*<RO234> -! + K243*<HO2>*<RO243> -! + K247*<HO2>*<RO235> -! + K250*<HO2>*<RO244> -! + K254*<HO2>*<RO236> -! + K257*<HO2>*<RO245> -! + K261*<HO2>*<RO237> -! + K264*<HO2>*<RO246> -! + K268*<HO2>*<RO238> -! + K271*<HO2>*<RO247> -! + 0.36*K281*<O3>*<MVK> -! + 0.82*K282*<O3>*<MCR> -! + K287*<HO2>*<RO249> -! + K293*<RO2T>*<RO251> -! + K296*<RO2T>*<RO252> -! + K299*<RO2T>*<RO253> -! + K339*<RP16> -! + K340*<NO>*<RO258> -! + K342*<RO2T>*<RO258> -! + KTC42*<WC_OH> -! + KTR42*<WR_OH> -! - K019*<OH>*<NO> -! - K022*<OH>*<NO2> -! - K023*<OH>*<HNO3> -! - K024*<OH>*<CO> -! - K025*<OH>*<O3> -! - K029*<OH>*<HNO4> -! - K035*<OH>*<SO2> -! - K037*<OH>*<H2O2> +! + K004*<HONO> +! + K005*<HNO3> +! + 0.35*K006*<HNO4> +! + K009*<H2O2> +! + K009*<H2O2> +! + K013*<OP1> +! + K014*<OP2> +! + K022*<O1D>*<H2O> +! + K022*<O1D>*<H2O> +! + K024*<O3>*<HO2> +! + K035*<HO2>*<NO> +! + 0.7*K038*<HO2>*<NO3> +! + 0.02*K054*<BIO>*<O3P> +! + 0.00878*K058*<ALKA>*<OH> +! + 0.35*K068*<OP1>*<OH> +! + 0.44925*K069*<OP2>*<OH> +! + 0.39435*K079*<ALKE>*<O3> +! + 0.28000*K080*<BIO>*<O3> +! + 0.20595*K081*<CARBO>*<O3> +! + 0.036*K082*<PAN>*<O3> +! + K087*<ADD>*<O3> +! + KTC31*<WC_OH> +! + KTR31*<WR_OH> +! - K023*<O3>*<OH> +! - K025*<OH>*<HO2> +! - K026*<H2O2>*<OH> +! - K032*<OH>*<NO> +! - K033*<OH>*<NO2> +! - K034*<OH>*<NO3> ! - K039*<OH>*<HONO> -! - K040*<OH>*<NO3> -! - K042*<HO2>*<OH> -! - K043*<OH>*<CH4> -! - K046*<OH>*<HCHO> -! - K048*<OH>*<MEOH> -! - K049*<OH>*<ETHE> -! - K053*<OH>*<ETOH> -! - K054*<OH>*<OLEL> -! - K058*<OH>*<ALKL> -! - K060*<OH>*<ALD2> -! - K062*<OH>*<KETL> -! - K064*<OH>*<ISOP> -! - K068*<OH>*<MTBE> -! - K069*<OH>*<ALCH> -! - K070*<OH>*<KETH> -! - K073*<OH>*<AROO> -! - K074*<OH>*<OLEH> -! - K078*<OH>*<ALKM> -! - K079*<OH>*<AROL> -! - K080*<OH>*<AROH> -! - K082*<OH>*<ARAL> -! - K083*<OH>*<ARAC> -! - K084*<OH>*<BIOL> -! - K088*<OH>*<BIOH> -! - K092*<OH>*<PAH> -! - K093*<OH>*<ALKH> -! - K272*<OH>*<MVK> -! - K273*<OH>*<MCR> -! - K274*<OH>*<MGLY> -! - K303*<OH>*<RPR5> -! - K304*<OH>*<RPR1> -! - K305*<OH>*<RP16> -! - K306*<OH>*<RPRL> -! - K312*<OH>*<RPR3> -! - K322*<OH>*<RPR7> -! - K323*<OH>*<RPG7> -! - K324*<OH>*<RPR8> -! - K325*<OH>*<RP10> -! - K326*<OH>*<RP11> -! - K334*<OH>*<RPG3> -! - K335*<OH>*<RPG2> -! - K337*<OH>*<RP18> -! - K345*<OH>*<NH3> -! - K347*<OH>*<ORA1> -! - K348*<OH>*<ORA2> -! - K349*<OH>*<ACID> +! - K040*<OH>*<HNO3> +! - K041*<OH>*<HNO4> +! - K050*<NH3>*<OH> +! - K051*<OH>*<H2> +! - K052*<OH>*<SO2> +! - K053*<CO>*<OH> +! - K056*<CH4>*<OH> +! - K057*<ETH>*<OH> +! - K058*<ALKA>*<OH> +! - K059*<ALKE>*<OH> +! - K060*<BIO>*<OH> +! - K061*<ARO>*<OH> +! - K062*<HCHO>*<OH> +! - K063*<ALD>*<OH> +! - K064*<KET>*<OH> +! - K065*<CARBO>*<OH> +! - K066*<ORA1>*<OH> +! - K067*<ORA2>*<OH> +! - K068*<OP1>*<OH> +! - K069*<OP2>*<OH> +! - K070*<PAN>*<OH> +! - K071*<ONIT>*<OH> ! - KTC11*<OH> ! - KTR11*<OH> -! terms for ETHE: -! + 0.0 -! - K049*<OH>*<ETHE> -! - K050*<NO3>*<ETHE> -! - K051*<O3>*<ETHE> -! - K052*<O>*<ETHE> -! terms for OLEL: -! + 0.054*K066*<O3>*<ISOP> -! + 0.925*K067*<O>*<ISOP> -! + TPK%CF5*K150*<NO>*<RO29> -! + 0.5*K166*<HO2>*<RO239> -! + TPK%CF7*K168*<NO>*<RO214> -! + 0.5*K289*<HO2>*<RO250> -! - K054*<OH>*<OLEL> -! - K055*<NO3>*<OLEL> -! - K056*<O3>*<OLEL> -! - K057*<O>*<OLEL> -! terms for OLEH: -! + 0.0 -! - K074*<OH>*<OLEH> -! - K075*<NO3>*<OLEH> -! - K076*<O3>*<OLEH> -! - K077*<O>*<OLEH> -! terms for ALKL: -! + 0.1*K056*<O3>*<OLEL> -! + 0.5*K057*<O>*<OLEL> -! + TPK%CF3*K122*<NO>*<RO25> -! + TPK%CF12*K171*<NO>*<RO215> -! + TPK%CF16*K172*<RO2T>*<RO215> -! + TPK%CF16*K173*<HO2>*<RO215> -! - K058*<OH>*<ALKL> -! terms for ALKM: -! + 0.1*K076*<O3>*<OLEH> -! + 0.5*K077*<O>*<OLEH> -! - K078*<OH>*<ALKM> -! terms for ALKH: -! + 0.0 -! - K093*<OH>*<ALKH> -! terms for AROH: -! + 0.0 -! - K080*<OH>*<AROH> -! terms for AROL: +! terms for HO2: +! + 0.65*K006*<HNO4> +! + K011*<HCHO> +! + K011*<HCHO> +! + K012*<ALD> +! + K013*<OP1> +! + 0.96205*K014*<OP2> +! + 0.75830*K016*<CARBO> +! + K017*<ONIT> +! + K023*<O3>*<OH> +! + K026*<H2O2>*<OH> +! + K034*<OH>*<NO3> +! + K037*<HNO4> +! + K051*<OH>*<H2> +! + K052*<OH>*<SO2> +! + K053*<CO>*<OH> +! + 0.28*K054*<BIO>*<O3P> +! + 0.12793*K058*<ALKA>*<OH> +! + 0.10318*K061*<ARO>*<OH> +! + K062*<HCHO>*<OH> +! + 0.51208*K065*<CARBO>*<OH> +! + K066*<ORA1>*<OH> +! + 0.02915*K069*<OP2>*<OH> +! + 0.28107*K070*<PAN>*<OH> +! + K072*<HCHO>*<NO3> +! + 0.63217*K074*<CARBO>*<NO3> +! + 0.23451*K079*<ALKE>*<O3> +! + 0.30000*K080*<BIO>*<O3> +! + 0.28441*K081*<CARBO>*<O3> +! + 0.08*K082*<PAN>*<O3> +! + 0.02*K086*<ADD>*<O2> +! + K090*<MO2>*<NO> +! + 0.74265*K091*<ALKAP>*<NO> +! + K092*<ALKEP>*<NO> +! + 0.84700*K093*<BIOP>*<NO> +! + 0.95115*K094*<AROP>*<NO> +! + 0.12334*K095*<CARBOP>*<NO> +! + 0.18401*K096*<OLN>*<NO> +! + 0.66*K104*<MO2>*<MO2> +! + 0.98383*K105*<ALKAP>*<MO2> +! + K106*<ALKEP>*<MO2> +! + 1.00000*K107*<BIOP>*<MO2> +! + 1.02767*K108*<AROP>*<MO2> +! + 0.82998*K109*<CARBOP>*<MO2> +! + 0.67560*K110*<OLN>*<MO2> +! + 0.48079*K111*<ALKAP>*<CARBOP> +! + 0.50078*K112*<ALKEP>*<CARBOP> +! + 0.50600*K113*<BIOP>*<CARBOP> +! + K114*<AROP>*<CARBOP> +! + 0.07566*K115*<CARBOP>*<CARBOP> +! + 0.17599*K116*<OLN>*<CARBOP> +! + K117*<OLN>*<OLN> +! + 0.00000*K118*<OLN>*<OLN> +! + K119*<MO2>*<NO3> +! + 0.81290*K120*<ALKAP>*<NO3> +! + K121*<ALKEP>*<NO3> +! + K122*<BIOP>*<NO3> +! + K123*<AROP>*<NO3> +! + 0.04915*K124*<CARBOP>*<NO3> +! + 0.25928*K125*<OLN>*<NO3> +! + K127*<XO2>*<MO2> +! + KTC32*<WC_HO2> +! + KTR32*<WR_HO2> +! - K024*<O3>*<HO2> +! - K025*<OH>*<HO2> +! - K027*<HO2>*<HO2> +! - K027*<HO2>*<HO2> +! - K028*<HO2>*<HO2>*<H2O> +! - K028*<HO2>*<HO2>*<H2O> +! - K035*<HO2>*<NO> +! - K036*<HO2>*<NO2> +! - K038*<HO2>*<NO3> +! - K084*<PHO>*<HO2> +! - K097*<MO2>*<HO2> +! - K098*<ALKAP>*<HO2> +! - K099*<ALKEP>*<HO2> +! - K0100*<BIOP>*<HO2> +! - K0101*<AROP>*<HO2> +! - K0102*<CARBOP>*<HO2> +! - K103*<OLN>*<HO2> +! - K126*<XO2>*<HO2> +! - KTC12*<HO2> +! - KTR12*<HO2> +! terms for CH4: +! + 0.04300*K079*<ALKE>*<O3> +! - K056*<CH4>*<OH> +! terms for ETH: +! + 0.03196*K079*<ALKE>*<O3> +! - K057*<ETH>*<OH> +! terms for ALKA: ! + 0.0 -! - K079*<OH>*<AROL> -! terms for AROO: -! + 0.16*K073*<OH>*<AROO> -! + 0.16*K079*<OH>*<AROL> -! + 0.16*K080*<OH>*<AROH> -! - K072*<NO3>*<AROO> -! - K073*<OH>*<AROO> -! terms for ARAL: -! + TPK%CF24*K189*<NO>*<RO221> -! + K190*<RO2T>*<RO221> -! + K191*<HO2>*<RO221> -! - K081*<NO3>*<ARAL> -! - K082*<OH>*<ARAL> -! terms for ARAC: -! + K081*<NO3>*<ARAL> -! + TPK%CF39*K082*<OH>*<ARAL> -! - K083*<OH>*<ARAC> -! terms for PAH: +! - K058*<ALKA>*<OH> +! terms for ALKE: +! + 0.91868*K054*<BIO>*<O3P> +! + 0.00000*K079*<ALKE>*<O3> +! + 0.37388*K080*<BIO>*<O3> +! + 0.37815*K093*<BIOP>*<NO> +! + 0.48074*K107*<BIOP>*<MO2> +! + 0.24463*K113*<BIOP>*<CARBOP> +! + 0.42729*K122*<BIOP>*<NO3> +! - K059*<ALKE>*<OH> +! - K076*<ALKE>*<NO3> +! - K079*<ALKE>*<O3> +! terms for BIO: ! + 0.0 -! - K092*<OH>*<PAH> +! - K054*<BIO>*<O3P> +! - K060*<BIO>*<OH> +! - K077*<BIO>*<NO3> +! - K080*<BIO>*<O3> +! terms for ARO: +! + 0.10670*K083*<PHO>*<NO2> +! + 1.06698*K084*<PHO>*<HO2> +! + K085*<ADD>*<NO2> +! + 0.02*K086*<ADD>*<O2> +! + K087*<ADD>*<O3> +! - K061*<ARO>*<OH> +! - K075*<ARO>*<NO3> ! terms for HCHO: -! + K048*<OH>*<MEOH> -! + 0.5*K051*<O3>*<ETHE> -! + 0.5*K056*<O3>*<OLEL> -! + 0.5*K066*<O3>*<ISOP> -! + 0.5*K076*<O3>*<OLEH> -! + K110*<NO>*<RO21> -! + K111*<RO2T>*<RO21> -! + K112*<HO2>*<RO21> -! + K113*<NO>*<RO22> -! + K114*<RO2T>*<RO22> -! + K115*<HO2>*<RO22> -! + K116*<NO>*<RO23> -! + K117*<RO2T>*<RO23> -! + K118*<HO2>*<RO23> -! + K119*<NO>*<RO24> -! + K120*<RO2T>*<RO24> -! + K121*<HO2>*<RO24> -! + TPK%CF6*K150*<NO>*<RO29> -! + K151*<RO2T>*<RO29> -! + K152*<HO2>*<RO29> -! + K153*<NO>*<RO210> -! + K154*<RO2T>*<RO210> -! + K155*<HO2>*<RO210> -! + K156*<NO>*<RO211> -! + K157*<RO2T>*<RO211> -! + K158*<HO2>*<RO211> -! + K159*<NO>*<RO212> -! + K160*<RO2T>*<RO212> -! + K161*<HO2>*<RO212> -! + K162*<NO>*<RO213> -! + K163*<RO2T>*<RO213> -! + K164*<HO2>*<RO213> -! + TPK%CF10*K171*<NO>*<RO215> -! + TPK%CF14*K172*<RO2T>*<RO215> -! + TPK%CF14*K173*<HO2>*<RO215> -! + K183*<NO>*<RO219> -! + K184*<RO2T>*<RO219> -! + K185*<HO2>*<RO219> -! + 0.5*K281*<O3>*<MVK> -! + 0.5*K282*<O3>*<MCR> -! + K285*<NO>*<RO249> -! + K286*<RO2T>*<RO249> -! + K287*<HO2>*<RO249> -! + K291*<NO>*<RO251> -! + K292*<HO2>*<RO251> -! + K293*<RO2T>*<RO251> -! + K294*<NO>*<RO252> -! + K295*<HO2>*<RO252> -! + K296*<RO2T>*<RO252> -! + K297*<NO>*<RO253> -! + K298*<HO2>*<RO253> -! + K299*<RO2T>*<RO253> -! + KTC52*<WC_HCHO> -! + KTR52*<WR_HCHO> -! - K044*<HCHO> -! - K045*<HCHO> -! - K046*<OH>*<HCHO> -! - K047*<NO3>*<HCHO> -! - KTC21*<HCHO> -! - KTR21*<HCHO> -! terms for ALD2: -! + TPK%CF1*K053*<OH>*<ETOH> -! + 0.5*K056*<O3>*<OLEL> -! + 0.4*K057*<O>*<OLEL> -! + 0.075*K067*<O>*<ISOP> -! + K113*<NO>*<RO22> -! + K114*<RO2T>*<RO22> -! + K115*<HO2>*<RO22> -! + K116*<NO>*<RO23> -! + K117*<RO2T>*<RO23> -! + K118*<HO2>*<RO23> -! + TPK%CF4*K122*<NO>*<RO25> -! + K123*<RO2T>*<RO25> -! + K124*<HO2>*<RO25> -! + K144*<NO>*<RO27> -! + K145*<RO2T>*<RO27> -! + K146*<HO2>*<RO27> -! + TPK%CF9*K171*<NO>*<RO215> -! + TPK%CF13*K172*<RO2T>*<RO215> -! + TPK%CF13*K173*<HO2>*<RO215> -! + K174*<NO>*<RO216> -! + K175*<RO2T>*<RO216> -! + K176*<HO2>*<RO216> -! + 0.1*K281*<O3>*<MVK> -! + 0.85*K284*<O>*<MCR> -! + KTC53*<WC_ALD2> -! + KTR53*<WR_ALD2> -! - K059*<ALD2> -! - K060*<OH>*<ALD2> -! - K061*<NO3>*<ALD2> -! - KTC22*<ALD2> -! - KTR22*<ALD2> -! terms for KETL: -! + TPK%CF11*K171*<NO>*<RO215> -! + TPK%CF15*K172*<RO2T>*<RO215> -! + TPK%CF15*K173*<HO2>*<RO215> -! + 0.85*K283*<O>*<MVK> -! + KTC55*<WC_KETL> -! + KTR55*<WR_KETL> -! - K062*<OH>*<KETL> -! - K063*<KETL> -! - KTC24*<KETL> -! - KTR24*<KETL> -! terms for KETH: -! + 0.0 -! - K070*<OH>*<KETH> -! - K071*<KETH> -! terms for MEOH: -! + KTC49*<WC_MEOH> -! + KTR49*<WR_MEOH> -! - K048*<OH>*<MEOH> -! - KTC18*<MEOH> -! - KTR18*<MEOH> -! terms for ETOH: -! + KTC50*<WC_ETOH> -! + KTR50*<WR_ETOH> -! - K053*<OH>*<ETOH> -! - KTC19*<ETOH> -! - KTR19*<ETOH> -! terms for ALCH: -! + KTC51*<WC_ALCH> -! + KTR51*<WR_ALCH> -! - K069*<OH>*<ALCH> -! - KTC20*<ALCH> -! - KTR20*<ALCH> -! terms for ISOP: -! + 0.0 -! - K064*<OH>*<ISOP> -! - K065*<NO3>*<ISOP> -! - K066*<O3>*<ISOP> -! - K067*<O>*<ISOP> -! terms for BIOL: -! + 0.0 -! - K084*<OH>*<BIOL> -! - K085*<NO3>*<BIOL> -! - K086*<O3>*<BIOL> -! - K087*<O>*<BIOL> -! terms for BIOH: -! + 0.0 -! - K088*<OH>*<BIOH> -! - K089*<NO3>*<BIOH> -! - K090*<O3>*<BIOH> -! - K091*<O>*<BIOH> -! terms for MTBE: -! + 0.0 -! - K068*<OH>*<MTBE> -! terms for MVK: -! + 0.389*K066*<O3>*<ISOP> -! + TPK%CF6*K150*<NO>*<RO29> -! + K151*<RO2T>*<RO29> -! + K152*<HO2>*<RO29> -! + K156*<NO>*<RO211> -! + K157*<RO2T>*<RO211> -! + K158*<HO2>*<RO211> -! - K272*<OH>*<MVK> -! - K281*<O3>*<MVK> -! - K283*<O>*<MVK> -! terms for MCR: -! + 0.17*K066*<O3>*<ISOP> -! + K153*<NO>*<RO210> -! + K154*<RO2T>*<RO210> -! + K155*<HO2>*<RO210> -! + K159*<NO>*<RO212> -! + K160*<RO2T>*<RO212> -! + K161*<HO2>*<RO212> -! - K273*<OH>*<MCR> -! - K275*<NO3>*<MCR> -! - K282*<O3>*<MCR> -! - K284*<O>*<MCR> -! terms for MGLY: -! + K234*<NO>*<RO242> -! + K235*<RO2T>*<RO242> -! + K236*<HO2>*<RO242> -! + K241*<NO>*<RO243> -! + K242*<RO2T>*<RO243> -! + K243*<HO2>*<RO243> -! + K248*<NO>*<RO244> -! + K249*<RO2T>*<RO244> -! + K250*<HO2>*<RO244> -! + K255*<NO>*<RO245> -! + K256*<RO2T>*<RO245> -! + K257*<HO2>*<RO245> -! + K262*<NO>*<RO246> -! + K263*<RO2T>*<RO246> -! + K264*<HO2>*<RO246> -! + K269*<NO>*<RO247> -! + K270*<RO2T>*<RO247> -! + K271*<HO2>*<RO247> -! + 0.5*K281*<O3>*<MVK> -! + 0.59*K282*<O3>*<MCR> -! + K285*<NO>*<RO249> -! + K286*<RO2T>*<RO249> -! + K287*<HO2>*<RO249> -! + K291*<NO>*<RO251> -! + K292*<HO2>*<RO251> -! + K293*<RO2T>*<RO251> -! + K294*<NO>*<RO252> -! + K295*<HO2>*<RO252> -! + K296*<RO2T>*<RO252> -! + KTC56*<WC_MGLY> -! + KTR56*<WR_MGLY> -! - K274*<OH>*<MGLY> -! - K276*<MGLY> -! - K278*<NO3>*<MGLY> -! - KTC25*<MGLY> -! - KTR25*<MGLY> -! terms for GLY: -! + KTC54*<WC_GLY> -! + KTR54*<WR_GLY> -! - KTC23*<GLY> -! - KTR23*<GLY> +! + K013*<OP1> +! + 0.06517*K016*<CARBO> +! + 0.05*K054*<BIO>*<O3P> +! + 0.00140*K058*<ALKA>*<OH> +! + 0.00000*K065*<CARBO>*<OH> +! + 0.35*K068*<OP1>*<OH> +! + 0.02915*K069*<OP2>*<OH> +! + 0.57839*K070*<PAN>*<OH> +! + 0.40*K078*<PAN>*<NO3> +! + 0.48290*K079*<ALKE>*<O3> +! + 0.90000*K080*<BIO>*<O3> +! + 0.00000*K081*<CARBO>*<O3> +! + 0.70*K082*<PAN>*<O3> +! + K090*<MO2>*<NO> +! + 0.03002*K091*<ALKAP>*<NO> +! + 1.39870*K092*<ALKEP>*<NO> +! + 0.60600*K093*<BIOP>*<NO> +! + 0.05848*K095*<CARBOP>*<NO> +! + 0.23419*K096*<OLN>*<NO> +! + 1.33*K104*<MO2>*<MO2> +! + 0.80556*K105*<ALKAP>*<MO2> +! + 1.42894*K106*<ALKEP>*<MO2> +! + 1.09000*K107*<BIOP>*<MO2> +! + K108*<AROP>*<MO2> +! + 0.95723*K109*<CARBOP>*<MO2> +! + 0.88625*K110*<OLN>*<MO2> +! + 0.07600*K111*<ALKAP>*<CARBOP> +! + 0.68192*K112*<ALKEP>*<CARBOP> +! + 0.34000*K113*<BIOP>*<CARBOP> +! + 0.03432*K115*<CARBOP>*<CARBOP> +! + 0.13414*K116*<OLN>*<CARBOP> +! + 0.00000*K118*<OLN>*<OLN> +! + K119*<MO2>*<NO3> +! + 0.03142*K120*<ALKAP>*<NO3> +! + 1.40909*K121*<ALKEP>*<NO3> +! + 0.68600*K122*<BIOP>*<NO3> +! + 0.03175*K124*<CARBOP>*<NO3> +! + 0.20740*K125*<OLN>*<NO3> +! + K127*<XO2>*<MO2> +! + KTC36*<WC_HCHO> +! + KTR36*<WR_HCHO> +! - K010*<HCHO> +! - K011*<HCHO> +! - K062*<HCHO>*<OH> +! - K072*<HCHO>*<NO3> +! - KTC16*<HCHO> +! - KTR16*<HCHO> +! terms for ALD: +! + 0.96205*K014*<OP2> +! + 0.20*K017*<ONIT> +! + K055*<CARBO>*<O3P> +! + 0.08173*K058*<ALKA>*<OH> +! + 0.06253*K065*<CARBO>*<OH> +! + 0.07335*K069*<OP2>*<OH> +! + 0.05265*K074*<CARBO>*<NO3> +! + 0.51468*K079*<ALKE>*<O3> +! + 0.00000*K080*<BIO>*<O3> +! + 0.15692*K081*<CARBO>*<O3> +! + 0.33144*K091*<ALKAP>*<NO> +! + 0.42125*K092*<ALKEP>*<NO> +! + 0.00000*K093*<BIOP>*<NO> +! + 0.07368*K095*<CARBOP>*<NO> +! + 1.01182*K096*<OLN>*<NO> +! + 0.56070*K105*<ALKAP>*<MO2> +! + 0.46413*K106*<ALKEP>*<MO2> +! + 0.00000*K107*<BIOP>*<MO2> +! + 0.08295*K109*<CARBOP>*<MO2> +! + 0.41524*K110*<OLN>*<MO2> +! + 0.71461*K111*<ALKAP>*<CARBOP> +! + 0.68374*K112*<ALKEP>*<CARBOP> +! + 0.00000*K113*<BIOP>*<CARBOP> +! + 0.06969*K115*<CARBOP>*<CARBOP> +! + 0.42122*K116*<OLN>*<CARBOP> +! + 0.00000*K118*<OLN>*<OLN> +! + 0.33743*K120*<ALKAP>*<NO3> +! + 0.43039*K121*<ALKEP>*<NO3> +! + 0.00000*K122*<BIOP>*<NO3> +! + 0.02936*K124*<CARBOP>*<NO3> +! + 0.91850*K125*<OLN>*<NO3> +! - K012*<ALD> +! - K063*<ALD>*<OH> +! - K073*<ALD>*<NO3> +! terms for KET: +! + 0.80*K017*<ONIT> +! + 0.03498*K058*<ALKA>*<OH> +! + 0.00853*K065*<CARBO>*<OH> +! + 0.37591*K069*<OP2>*<OH> +! + 0.00632*K074*<CARBO>*<NO3> +! + 0.07377*K079*<ALKE>*<O3> +! + 0.00000*K080*<BIO>*<O3> +! + 0.54531*K091*<ALKAP>*<NO> +! + 0.05220*K092*<ALKEP>*<NO> +! + 0.00000*K093*<BIOP>*<NO> +! + 0.37862*K096*<OLN>*<NO> +! + 0.09673*K105*<ALKAP>*<MO2> +! + 0.03814*K106*<ALKEP>*<MO2> +! + 0.00000*K107*<BIOP>*<MO2> +! + 0.09667*K110*<OLN>*<MO2> +! + 0.18819*K111*<ALKAP>*<CARBOP> +! + 0.06579*K112*<ALKEP>*<CARBOP> +! + 0.00000*K113*<BIOP>*<CARBOP> +! + 0.02190*K115*<CARBOP>*<CARBOP> +! + 0.10822*K116*<OLN>*<CARBOP> +! + 0.00000*K118*<OLN>*<OLN> +! + 0.62978*K120*<ALKAP>*<NO3> +! + 0.02051*K121*<ALKEP>*<NO3> +! + 0.00000*K122*<BIOP>*<NO3> +! + 0.34740*K125*<OLN>*<NO3> +! - K015*<KET> +! - K064*<KET>*<OH> +! terms for CARBO: +! + 0.13255*K054*<BIO>*<O3P> +! + 0.00835*K058*<ALKA>*<OH> +! + 0.16919*K065*<CARBO>*<OH> +! + 0.21863*K070*<PAN>*<OH> +! + 0.10530*K074*<CARBO>*<NO3> +! + 0.00000*K076*<ALKE>*<NO3> +! + 0.91741*K077*<BIO>*<NO3> +! + 0.00000*K079*<ALKE>*<O3> +! + 0.39754*K080*<BIO>*<O3> +! + 1.07583*K081*<CARBO>*<O3> +! + 0.03407*K091*<ALKAP>*<NO> +! + 0.45463*K093*<BIOP>*<NO> +! + 2.06993*K094*<AROP>*<NO> +! + 0.08670*K095*<CARBOP>*<NO> +! + 0.07976*K105*<ALKAP>*<MO2> +! + 0.56064*K107*<BIOP>*<MO2> +! + 1.99461*K108*<AROP>*<MO2> +! + 0.15387*K109*<CARBOP>*<MO2> +! + 0.06954*K111*<ALKAP>*<CARBOP> +! + 0.78591*K113*<BIOP>*<CARBOP> +! + 1.99455*K114*<AROP>*<CARBOP> +! + 0.10777*K115*<CARBOP>*<CARBOP> +! + 0.03531*K120*<ALKAP>*<NO3> +! + 0.61160*K122*<BIOP>*<NO3> +! + 2.81904*K123*<AROP>*<NO3> +! + 0.03455*K124*<CARBOP>*<NO3> +! - K016*<CARBO> +! - K055*<CARBO>*<O3P> +! - K065*<CARBO>*<OH> +! - K074*<CARBO>*<NO3> +! - K081*<CARBO>*<O3> +! terms for ONIT: +! + 0.60*K078*<PAN>*<NO3> +! + K083*<PHO>*<NO2> +! + 0.08459*K091*<ALKAP>*<NO> +! + 0.15300*K093*<BIOP>*<NO> +! + 0.04885*K094*<AROP>*<NO> +! + 0.18401*K096*<OLN>*<NO> +! + K103*<OLN>*<HO2> +! + 0.67560*K110*<OLN>*<MO2> +! + 0.66562*K116*<OLN>*<CARBOP> +! + 2.00*K117*<OLN>*<OLN> +! + 0.00000*K118*<OLN>*<OLN> +! + 0.25928*K125*<OLN>*<NO3> +! - K017*<ONIT> +! - K071*<ONIT>*<OH> +! terms for PAN: +! + 0.28107*K070*<PAN>*<OH> +! + 0.40000*K078*<PAN>*<NO3> +! + 0.30000*K082*<PAN>*<O3> +! + 1.00000*K088*<CARBOP>*<NO2> +! - K070*<PAN>*<OH> +! - K078*<PAN>*<NO3> +! - K082*<PAN>*<O3> +! - K089*<PAN> +! terms for OP1: +! + K097*<MO2>*<HO2> +! + KTC40*<WC_OP1> +! + KTR40*<WR_OP1> +! - K013*<OP1> +! - K068*<OP1>*<OH> +! - KTC20*<OP1> +! - KTR20*<OP1> +! terms for OP2: +! + 0.10149*K081*<CARBO>*<O3> +! + 1.00524*K098*<ALKAP>*<HO2> +! + 1.00524*K099*<ALKEP>*<HO2> +! + 1.00524*K0100*<BIOP>*<HO2> +! + 1.00524*K0101*<AROP>*<HO2> +! + 0.80904*K0102*<CARBOP>*<HO2> +! + 1.00524*K126*<XO2>*<HO2> +! - K014*<OP2> +! - K069*<OP2>*<OH> ! terms for ORA1: -! + 0.185*K051*<O3>*<ETHE> -! + 0.12*K056*<O3>*<OLEL> -! + 0.121*K066*<O3>*<ISOP> -! + 0.12*K281*<O3>*<MVK> -! + 0.09*K282*<O3>*<MCR> -! + KTC57*<WC_ORA1> -! + KTR57*<WR_ORA1> -! - K347*<OH>*<ORA1> -! - KTC26*<ORA1> -! - KTR26*<ORA1> +! + 0.00878*K058*<ALKA>*<OH> +! + 0.15343*K079*<ALKE>*<O3> +! + 0.15000*K080*<BIO>*<O3> +! + 0.10788*K081*<CARBO>*<O3> +! + 0.11*K082*<PAN>*<O3> +! + KTC37*<WC_ORA1> +! + KTR37*<WR_ORA1> +! - K066*<ORA1>*<OH> +! - KTC17*<ORA1> +! - KTR17*<ORA1> ! terms for ORA2: -! + 0.12*K056*<O3>*<OLEL> -! + K142*<HO2>*<RO26> -! + K148*<HO2>*<RO28> -! + 0.5*K166*<HO2>*<RO239> -! + 0.5*K289*<HO2>*<RO250> -! + KTC58*<WC_ORA2> -! + KTR58*<WR_ORA2> -! - K348*<OH>*<ORA2> -! - KTC27*<ORA2> -! - KTR27*<ORA2> -! terms for ACID: -! + 0.12*K076*<O3>*<OLEH> -! + K142*<HO2>*<RO26> -! + K310*<HO2>*<RO255> -! + KTC59*<WC_ACID> -! + KTR59*<WR_ACID> -! - K349*<OH>*<ACID> -! - KTC28*<ACID> -! - KTR28*<ACID> -! terms for UR28: -! + K341*<HO2>*<RO258> -! + KTC62*<WC_UR28> -! + KTR62*<WR_UR28> -! - K364*<UR28> -! - KTC31*<UR28> -! - KTR31*<UR28> -! terms for UR21: -! + K279*<HO2>*<RO248> -! + 0.12*K281*<O3>*<MVK> -! + KTC61*<WC_UR21> -! + KTR61*<WR_UR21> -! - K361*<UR21> -! - KTC30*<UR21> -! - KTR30*<UR21> -! terms for URG2: -! + 0.5562513*K335*<OH>*<RPG2> -! + K337*<OH>*<RP18> -! - K350*<URG2> -! terms for UR26: -! + 0.67*K326*<OH>*<RP11> -! - K363*<UR26> -! terms for RPG2: -! + 0.3000000*K259*<NO>*<RO237> -! + 1.0000000*K260*<RO2T>*<RO237> -! + 0.3000000*K261*<HO2>*<RO237> -! + 0.1191897*K334*<OH>*<RPG3> -! + 0.8808107*K334*<OH>*<RPG3> -! - K335*<OH>*<RPG2> -! terms for RP18: -! + 0.4437492*K335*<OH>*<RPG2> -! - K337*<OH>*<RP18> -! terms for RPG3: -! + 0.3000000*K231*<NO>*<RO233> -! + 1.0000000*K232*<RO2T>*<RO233> -! + 0.3000000*K233*<HO2>*<RO233> -! + 0.3000000*K252*<NO>*<RO236> -! + 1.0000000*K253*<RO2T>*<RO236> -! + 0.3000000*K254*<HO2>*<RO236> -! - K334*<OH>*<RPG3> -! terms for URG4: -! + 5.5000000E-02*K086*<O3>*<BIOL> -! + 1.0000000*K318*<HO2>*<RO256> -! + 1.0000000*K332*<HO2>*<RO257> -! - K351*<URG4> -! terms for UR8: -! + 0.055*K090*<O3>*<BIOH> -! - K358*<UR8> -! terms for UR17: -! + 1.0000000*K204*<NO>*<RO226> -! + 1.0000000*K205*<RO2T>*<RO226> -! + 1.0000000*K206*<HO2>*<RO226> -! - K359*<UR17> -! terms for UR7: -! + 0.055*K090*<O3>*<BIOH> -! + TPK%CFA12*K207*<NO>*<RO227> -! + K208*<RO2T>*<RO227> -! + 0.3*K209*<HO2>*<RO227> -! + 0.3*K210*<NO>*<RO228> -! + 0.3*K211*<RO2T>*<RO228> -! + 0.3*K212*<HO2>*<RO228> -! - K357*<UR7> -! terms for RPR3: -! + 0.055*K086*<O3>*<BIOL> -! + TPK%CFA10*K198*<NO>*<RO224> -! + K199*<RO2T>*<RO224> -! + K200*<HO2>*<RO224> -! + K201*<NO>*<RO225> -! + K202*<RO2T>*<RO225> -! + K203*<HO2>*<RO225> -! - K312*<OH>*<RPR3> -! - K313*<NO3>*<RPR3> -! - K314*<RPR3> -! terms for URG6: -! + TPK%CF21*K177*<NO>*<RO217> -! + TPK%CF43*K195*<NO>*<RO223> -! + 0.4978440*K323*<OH>*<RPG7> -! - K352*<URG6> -! terms for UR22: -! + K321*<NO2>*<RAD8> -! - K362*<UR22> -! terms for URG7: -! + 0.1599999*K083*<OH>*<ARAC> -! + 0.9999993*K108*<NO2>*<RAD6> -! + 0.9999993*K303*<OH>*<RPR5> -! + 0.9979297*K306*<OH>*<RPRL> -! + 0.9999993*K322*<OH>*<RPR7> -! - K353*<URG7> -! terms for RPR4: -! + K103*<NO2>*<RAD1> -! + K104*<NO2>*<RAD2> -! - K320*<NO3>*<RPR4> -! terms for RPR7: -! + TPK%CF44*K195*<NO>*<RO223> -! + K196*<RO2T>*<RO223> -! + K197*<HO2>*<RO223> -! + 2.0714202E-03*K306*<OH>*<RPRL> -! - K322*<OH>*<RPR7> -! terms for RPG7: -! + 1.0000013*K266*<NO>*<RO238> -! + 1.0000013*K267*<RO2T>*<RO238> -! + 1.0000013*K268*<HO2>*<RO238> -! + 0.5021558*K323*<OH>*<RPG7> -! - K323*<OH>*<RPG7> -! terms for URG8: -! + 0.1600000*K092*<OH>*<PAH> -! + 1.0000000*K109*<NO2>*<RAD7> -! + TPK%CF31*K221*<NO>*<RO231> -! - K354*<URG8> -! terms for UR19: -! + TPK%CF32*K221*<NO>*<RO231> -! + K222*<RO2T>*<RO231> -! + K223*<HO2>*<RO231> -! - K360*<UR19> -! terms for URG9: -! + TPK%CFA14*K224*<NO>*<RO232> -! + TPK%CFA16*K227*<NO>*<RO241> -! + TPK%CFA15*K227*<NO>*<RO241> -! + 0.9999996*K228*<RO2T>*<RO241> -! + 0.9999996*K229*<HO2>*<RO241> -! - K355*<URG9> -! terms for AP7: -! + TPK%CFA23*K198*<NO>*<RO224> -! - K365*<AP7> -! terms for URG10: -! + 0.2500000*K087*<O>*<BIOL> -! + 0.7500000*K087*<O>*<BIOL> -! + TPK%CF27*K207*<NO>*<RO227> -! - K356*<URG10> -! terms for RPR1: -! + 0.5*K076*<O3>*<OLEH> -! + 0.4*K077*<O>*<OLEH> -! + K183*<NO>*<RO219> -! + K184*<RO2T>*<RO219> -! + K185*<HO2>*<RO219> -! - K304*<OH>*<RPR1> -! - K307*<NO3>*<RPR1> -! - K308*<RPR1> -! terms for RPR5: -! + K107*<NO2>*<RAD5> -! - K303*<OH>*<RPR5> -! terms for RPR8: -! + K216*<NO>*<RO240> -! + K217*<RO2T>*<RO240> -! + K218*<HO2>*<RO240> -! - K324*<OH>*<RPR8> -! - K327*<NO3>*<RPR8> -! - K329*<RPR8> -! - K330*<RPR8> -! terms for RP10: -! + K234*<NO>*<RO242> -! + K235*<RO2T>*<RO242> -! + K236*<HO2>*<RO242> -! + K241*<NO>*<RO243> -! + K242*<RO2T>*<RO243> -! + K243*<HO2>*<RO243> -! + K248*<NO>*<RO244> -! + K249*<RO2T>*<RO244> -! + K250*<HO2>*<RO244> -! + K255*<NO>*<RO245> -! + K256*<RO2T>*<RO245> -! + K257*<HO2>*<RO245> -! + K262*<NO>*<RO246> -! + K263*<RO2T>*<RO246> -! + K264*<HO2>*<RO246> -! - K325*<OH>*<RP10> -! - K328*<RP10> -! terms for RP11: -! + 0.3*K238*<NO>*<RO234> -! + K239*<RO2T>*<RO234> -! + 0.3*K240*<HO2>*<RO234> -! + 0.5*K245*<NO>*<RO235> -! + K246*<RO2T>*<RO235> -! + K247*<HO2>*<RO235> -! - K326*<OH>*<RP11> -! terms for RP16: -! + K301*<HO2>*<RO254> -! + KTC60*<WC_RP16> -! + KTR60*<WR_RP16> -! - K305*<OH>*<RP16> -! - K338*<NO3>*<RP16> -! - K339*<RP16> -! - KTC29*<RP16> -! - KTR29*<RP16> -! terms for RPRL: -! + 0.9983609*K082*<OH>*<ARAL> -! + TPK%CFA2*K177*<NO>*<RO217> -! + 0.9983609*K178*<RO2T>*<RO217> -! + 0.9983609*K179*<HO2>*<RO217> -! + TPK%CFA7*K192*<NO>*<RO222> -! + 0.9983609*K193*<RO2T>*<RO222> -! + 0.9983609*K194*<HO2>*<RO222> -! + 1.0023998*K269*<NO>*<RO247> -! + 1.0023998*K270*<RO2T>*<RO247> -! + 1.0023998*K271*<HO2>*<RO247> -! - K306*<OH>*<RPRL> -! terms for APAN: -! + K130*<NO2>*<RO250> -! + K133*<NO2>*<RO257> -! - K139*<APAN> -! terms for PAN1: -! + K126*<NO2>*<RO26> -! - K135*<PAN1> -! terms for PAN2: -! + K127*<NO2>*<RO28> -! - K136*<PAN2> -! terms for PAN3: -! + K128*<NO2>*<RO239> -! - K137*<PAN3> -! terms for PAN4: -! + K129*<NO2>*<RO248> -! - K141*<PAN4> -! terms for PAN6: -! + K131*<NO2>*<RO254> -! - K140*<PAN6> -! terms for PAN7: -! + K132*<NO2>*<RO255> -! - K343*<PAN7> -! terms for PAN8: -! + K316*<NO2>*<RO256> -! - K317*<PAN8> -! terms for PN10: -! + K134*<NO2>*<RO258> -! - K138*<PN10> -! terms for RO2T: -! + K043*<OH>*<CH4> -! + K049*<OH>*<ETHE> -! + K050*<NO3>*<ETHE> -! + K052*<O>*<ETHE> -! + TPK%CF2*K053*<OH>*<ETOH> -! + K054*<OH>*<OLEL> -! + K055*<NO3>*<OLEL> -! + 0.28*K056*<O3>*<OLEL> -! + 0.2*K057*<O>*<OLEL> -! + K058*<OH>*<ALKL> -! + K059*<ALD2> -! + K060*<OH>*<ALD2> -! + K061*<NO3>*<ALD2> -! + K062*<OH>*<KETL> -! + 2.*K063*<KETL> -! + K064*<OH>*<ISOP> -! + K065*<NO3>*<ISOP> -! + 0.366*K066*<O3>*<ISOP> -! + K068*<OH>*<MTBE> -! + K069*<OH>*<ALCH> -! + K070*<OH>*<KETH> -! + 2.*K071*<KETH> -! + 0.1*K073*<OH>*<AROO> -! + K074*<OH>*<OLEH> -! + K075*<NO3>*<OLEH> -! + 0.28*K076*<O3>*<OLEH> -! + 0.2*K077*<O>*<OLEH> -! + K078*<OH>*<ALKM> -! + 0.06*K079*<OH>*<AROL> -! + TPK%CF45*K082*<OH>*<ARAL> -! + 0.1*K083*<OH>*<ARAC> -! + K084*<OH>*<BIOL> -! + K085*<NO3>*<BIOL> -! + 0.445*K086*<O3>*<BIOL> -! + K088*<OH>*<BIOH> -! + K089*<NO3>*<BIOH> -! + 0.89*K090*<O3>*<BIOH> -! + 0.1*K092*<OH>*<PAH> -! + K093*<OH>*<ALKH> -! + K096*<RO2T>*<RO2T> -! + K097*<RAD2> -! + K098*<RAD3> -! + K099*<RAD4> -! + K100*<RAD5> -! + K101*<RAD6> -! + K102*<RAD7> -! + K111*<RO2T>*<RO21> -! + K114*<RO2T>*<RO22> -! + K117*<RO2T>*<RO23> -! + K120*<RO2T>*<RO24> -! + K123*<RO2T>*<RO25> -! + K125*<NO>*<RO26> -! + K135*<PAN1> -! + K136*<PAN2> -! + K137*<PAN3> -! + K138*<PN10> -! + 1.0000000*K139*<APAN> -! + K140*<PAN6> -! + K141*<PAN4> -! + 2.*K143*<RO2T>*<RO26> -! + K144*<NO>*<RO27> -! + 2.*K145*<RO2T>*<RO27> -! + K146*<HO2>*<RO27> -! + K147*<NO>*<RO28> -! + 2.*K149*<RO2T>*<RO28> -! + K151*<RO2T>*<RO29> -! + K154*<RO2T>*<RO210> -! + K157*<RO2T>*<RO211> -! + K160*<RO2T>*<RO212> -! + K162*<NO>*<RO213> -! + 2.*K163*<RO2T>*<RO213> -! + K164*<HO2>*<RO213> -! + K165*<NO>*<RO239> -! + 2.*K167*<RO2T>*<RO239> -! + TPK%CF8*K168*<NO>*<RO214> -! + 2.*K169*<RO2T>*<RO214> -! + K170*<HO2>*<RO214> -! + K172*<RO2T>*<RO215> -! + K174*<NO>*<RO216> -! + 2.*K175*<RO2T>*<RO216> -! + K176*<HO2>*<RO216> -! + K178*<RO2T>*<RO217> -! + K181*<RO2T>*<RO218> -! + K184*<RO2T>*<RO219> -! + TPK%CF18*K186*<NO>*<RO220> -! + 2.*K187*<RO2T>*<RO220> -! + K188*<HO2>*<RO220> -! + K190*<RO2T>*<RO221> -! + K193*<RO2T>*<RO222> -! + K196*<RO2T>*<RO223> -! + K199*<RO2T>*<RO224> -! + K202*<RO2T>*<RO225> -! + K204*<NO>*<RO226> -! + 2.*K205*<RO2T>*<RO226> -! + K206*<HO2>*<RO226> -! + K208*<RO2T>*<RO227> -! + K211*<RO2T>*<RO228> -! + TPK%CF30*K213*<NO>*<RO229> -! + 2.*K214*<RO2T>*<RO229> -! + K215*<HO2>*<RO229> -! + K216*<NO>*<RO240> -! + 2.*K217*<RO2T>*<RO240> -! + K218*<HO2>*<RO240> -! + 2.*K219*<RO2T>*<RO230> -! + K220*<HO2>*<RO230> -! + K222*<RO2T>*<RO231> -! + TPK%CF34*K224*<NO>*<RO232> -! + 2.*K225*<RO2T>*<RO232> -! + K226*<HO2>*<RO232> -! + K228*<RO2T>*<RO241> -! + K230*<RO233> -! + K232*<RO2T>*<RO233> -! + K235*<RO2T>*<RO242> -! + K237*<RO234> -! + K239*<RO2T>*<RO234> -! + K242*<RO2T>*<RO243> -! + K244*<RO235> -! + K246*<RO2T>*<RO235> -! + K249*<RO2T>*<RO244> -! + K251*<RO236> -! + K253*<RO2T>*<RO236> -! + K256*<RO2T>*<RO245> -! + K258*<RO237> -! + K260*<RO2T>*<RO237> -! + K263*<RO2T>*<RO246> -! + K265*<RO238> -! + K267*<RO2T>*<RO238> -! + K270*<RO2T>*<RO247> -! + K272*<OH>*<MVK> -! + K273*<OH>*<MCR> -! + K274*<OH>*<MGLY> -! + K275*<NO3>*<MCR> -! + K276*<MGLY> -! + K277*<NO>*<RO248> -! + K278*<NO3>*<MGLY> -! + 2.*K280*<RO2T>*<RO248> -! + 0.28*K281*<O3>*<MVK> -! + 0.41*K282*<O3>*<MCR> -! + 0.3*K283*<O>*<MVK> -! + 0.15*K284*<O>*<MCR> -! + K286*<RO2T>*<RO249> -! + K288*<NO>*<RO250> -! + 2.*K290*<RO2T>*<RO250> -! + K292*<HO2>*<RO251> -! + K295*<HO2>*<RO252> -! + K297*<NO>*<RO253> -! + 2.*K298*<HO2>*<RO253> -! + K299*<RO2T>*<RO253> -! + K302*<RO2T>*<RO254> -! + K304*<OH>*<RPR1> -! + K305*<OH>*<RP16> -! + K307*<NO3>*<RPR1> -! + K308*<RPR1> -! + K309*<NO>*<RO255> -! + 2.*K311*<RO2T>*<RO255> -! + K312*<OH>*<RPR3> -! + K313*<NO3>*<RPR3> -! + K317*<PAN8> -! + K319*<RO2T>*<RO256> -! + K324*<OH>*<RPR8> -! + K327*<NO3>*<RPR8> -! + K329*<RPR8> -! + K330*<RPR8> -! + K331*<NO>*<RO257> -! + 2.*K333*<RO2T>*<RO257> -! + K338*<NO3>*<RP16> -! + K342*<RO2T>*<RO258> -! + K343*<PAN7> -! + K344*<NO>*<RO230> -! - K094*<HO2>*<RO2T> -! - K095*<NO>*<RO2T> -! - K096*<RO2T>*<RO2T> -! - K096*<RO2T>*<RO2T> -! - K111*<RO2T>*<RO21> -! - K114*<RO2T>*<RO22> -! - K117*<RO2T>*<RO23> -! - K120*<RO2T>*<RO24> -! - K123*<RO2T>*<RO25> -! - K143*<RO2T>*<RO26> -! - K145*<RO2T>*<RO27> -! - K149*<RO2T>*<RO28> -! - K151*<RO2T>*<RO29> -! - K154*<RO2T>*<RO210> -! - K157*<RO2T>*<RO211> -! - K160*<RO2T>*<RO212> -! - K163*<RO2T>*<RO213> -! - K167*<RO2T>*<RO239> -! - K169*<RO2T>*<RO214> -! - K172*<RO2T>*<RO215> -! - K175*<RO2T>*<RO216> -! - K178*<RO2T>*<RO217> -! - K181*<RO2T>*<RO218> -! - K184*<RO2T>*<RO219> -! - K187*<RO2T>*<RO220> -! - K190*<RO2T>*<RO221> -! - K193*<RO2T>*<RO222> -! - K196*<RO2T>*<RO223> -! - K199*<RO2T>*<RO224> -! - K202*<RO2T>*<RO225> -! - K205*<RO2T>*<RO226> -! - K208*<RO2T>*<RO227> -! - K211*<RO2T>*<RO228> -! - K214*<RO2T>*<RO229> -! - K217*<RO2T>*<RO240> -! - K219*<RO2T>*<RO230> -! - K222*<RO2T>*<RO231> -! - K225*<RO2T>*<RO232> -! - K228*<RO2T>*<RO241> -! - K232*<RO2T>*<RO233> -! - K235*<RO2T>*<RO242> -! - K239*<RO2T>*<RO234> -! - K242*<RO2T>*<RO243> -! - K246*<RO2T>*<RO235> -! - K249*<RO2T>*<RO244> -! - K253*<RO2T>*<RO236> -! - K256*<RO2T>*<RO245> -! - K260*<RO2T>*<RO237> -! - K263*<RO2T>*<RO246> -! - K267*<RO2T>*<RO238> -! - K270*<RO2T>*<RO247> -! - K280*<RO2T>*<RO248> -! - K286*<RO2T>*<RO249> -! - K290*<RO2T>*<RO250> -! - K293*<RO2T>*<RO251> -! - K296*<RO2T>*<RO252> -! - K299*<RO2T>*<RO253> -! - K302*<RO2T>*<RO254> -! - K311*<RO2T>*<RO255> -! - K319*<RO2T>*<RO256> -! - K333*<RO2T>*<RO257> -! - K342*<RO2T>*<RO258> -! terms for RO21: -! + K043*<OH>*<CH4> -! + 0.6*K052*<O>*<ETHE> -! + K147*<NO>*<RO28> -! + K149*<RO2T>*<RO28> -! + KTC47*<WC_RO21> -! + KTR47*<WR_RO21> -! - K110*<NO>*<RO21> -! - K111*<RO2T>*<RO21> -! - K112*<HO2>*<RO21> -! - KTC16*<RO21> -! - KTR16*<RO21> -! terms for RO25: -! + 0.28*K056*<O3>*<OLEL> -! + 0.1*K057*<O>*<OLEL> -! + K058*<OH>*<ALKL> -! + K059*<ALD2> -! + K063*<KETL> -! + K071*<KETH> -! + K125*<NO>*<RO26> -! + K143*<RO2T>*<RO26> -! + KTC48*<WC_RO25> -! + KTR48*<WR_RO25> -! - K122*<NO>*<RO25> -! - K123*<RO2T>*<RO25> -! - K124*<HO2>*<RO25> -! - KTC17*<RO25> -! - KTR17*<RO25> +! + 0.08143*K079*<ALKE>*<O3> +! + 0.00000*K080*<BIO>*<O3> +! + 0.20595*K081*<CARBO>*<O3> +! + 0.17307*K0102*<CARBOP>*<HO2> +! + 0.13684*K109*<CARBOP>*<MO2> +! + 0.49810*K111*<ALKAP>*<CARBOP> +! + 0.49922*K112*<ALKEP>*<CARBOP> +! + 0.49400*K113*<BIOP>*<CARBOP> +! + 0.09955*K115*<CARBOP>*<CARBOP> +! + 0.48963*K116*<OLN>*<CARBOP> +! + KTC38*<WC_ORA2> +! + KTR38*<WR_ORA2> +! - K067*<ORA2>*<OH> +! - KTC18*<ORA2> +! - KTR18*<ORA2> +! terms for MO2: +! + K012*<ALD> +! + 0.03795*K014*<OP2> +! + K056*<CH4>*<OH> +! + 0.65*K068*<OP1>*<OH> +! + 0.13966*K079*<ALKE>*<O3> +! + 0.03000*K080*<BIO>*<O3> +! + 0.09016*K091*<ALKAP>*<NO> +! + 0.78134*K095*<CARBOP>*<NO> +! + 0.01390*K105*<ALKAP>*<MO2> +! + 0.56031*K109*<CARBOP>*<MO2> +! + 0.51480*K111*<ALKAP>*<CARBOP> +! + 0.50078*K112*<ALKEP>*<CARBOP> +! + 0.50600*K113*<BIOP>*<CARBOP> +! + K114*<AROP>*<CARBOP> +! + 1.66702*K115*<CARBOP>*<CARBOP> +! + 0.51037*K116*<OLN>*<CARBOP> +! + 0.09731*K120*<ALKAP>*<NO3> +! + 0.91910*K124*<CARBOP>*<NO3> +! + K128*<XO2>*<CARBOP> +! + KTC39*<WC_MO2> +! + KTR39*<WR_MO2> +! - K090*<MO2>*<NO> +! - K097*<MO2>*<HO2> +! - K104*<MO2>*<MO2> +! - K104*<MO2>*<MO2> +! - K105*<ALKAP>*<MO2> +! - K106*<ALKEP>*<MO2> +! - K107*<BIOP>*<MO2> +! - K108*<AROP>*<MO2> +! - K109*<CARBOP>*<MO2> +! - K110*<OLN>*<MO2> +! - K119*<MO2>*<NO3> +! - K127*<XO2>*<MO2> +! - KTC19*<MO2> +! - KTR19*<MO2> +! terms for ALKAP: +! + 1.00000*K015*<KET> +! + K057*<ETH>*<OH> +! + 0.87811*K058*<ALKA>*<OH> +! + 0.40341*K069*<OP2>*<OH> +! + 1.00000*K071*<ONIT>*<OH> +! + 0.09815*K079*<ALKE>*<O3> +! + 0.00000*K080*<BIO>*<O3> +! + 0.08187*K091*<ALKAP>*<NO> +! + 0.00385*K105*<ALKAP>*<MO2> +! + 0.00828*K111*<ALKAP>*<CARBOP> +! + 0.08994*K120*<ALKAP>*<NO3> +! - K091*<ALKAP>*<NO> +! - K098*<ALKAP>*<HO2> +! - K105*<ALKAP>*<MO2> +! - K111*<ALKAP>*<CARBOP> +! - K120*<ALKAP>*<NO3> +! terms for ALKEP: +! + 1.02529*K059*<ALKE>*<OH> +! - K092*<ALKEP>*<NO> +! - K099*<ALKEP>*<HO2> +! - K106*<ALKEP>*<MO2> +! - K112*<ALKEP>*<CARBOP> +! - K121*<ALKEP>*<NO3> +! terms for BIOP: +! + 0.00000*K059*<ALKE>*<OH> +! + 1.00000*K060*<BIO>*<OH> +! - K093*<BIOP>*<NO> +! - K0100*<BIOP>*<HO2> +! - K107*<BIOP>*<MO2> +! - K113*<BIOP>*<CARBOP> +! - K122*<BIOP>*<NO3> +! terms for PHO: +! + 0.00276*K061*<ARO>*<OH> +! + K075*<ARO>*<NO3> +! - K083*<PHO>*<NO2> +! - K084*<PHO>*<HO2> +! terms for ADD: +! + 0.93968*K061*<ARO>*<OH> +! - K085*<ADD>*<NO2> +! - K086*<ADD>*<O2> +! - K087*<ADD>*<O3> +! terms for AROP: +! + 0.98*K086*<ADD>*<O2> +! - K094*<AROP>*<NO> +! - K0101*<AROP>*<HO2> +! - K108*<AROP>*<MO2> +! - K114*<AROP>*<CARBOP> +! - K123*<AROP>*<NO3> +! terms for CARBOP: +! + 1.00000*K015*<KET> +! + 0.69622*K016*<CARBO> +! + 1.00000*K063*<ALD>*<OH> +! + 1.00000*K064*<KET>*<OH> +! + 0.51419*K065*<CARBO>*<OH> +! + 0.05413*K069*<OP2>*<OH> +! + 1.00000*K073*<ALD>*<NO3> +! + 0.38881*K074*<CARBO>*<NO3> +! + 0.05705*K079*<ALKE>*<O3> +! + 0.17000*K080*<BIO>*<O3> +! + 0.27460*K081*<CARBO>*<O3> +! + 0.70000*K082*<PAN>*<O3> +! + 1.00000*K089*<PAN> +! + 0.09532*K095*<CARBOP>*<NO> +! + 0.05954*K109*<CARBOP>*<MO2> +! + 0.05821*K115*<CARBOP>*<CARBOP> +! + 0.03175*K124*<CARBOP>*<NO3> +! - K088*<CARBOP>*<NO2> +! - K095*<CARBOP>*<NO> +! - K0102*<CARBOP>*<HO2> +! - K109*<CARBOP>*<MO2> +! - K111*<ALKAP>*<CARBOP> +! - K112*<ALKEP>*<CARBOP> +! - K113*<BIOP>*<CARBOP> +! - K114*<AROP>*<CARBOP> +! - K115*<CARBOP>*<CARBOP> +! - K115*<CARBOP>*<CARBOP> +! - K116*<OLN>*<CARBOP> +! - K124*<CARBOP>*<NO3> +! - K128*<XO2>*<CARBOP> +! terms for OLN: +! + 0.00000*K074*<CARBO>*<NO3> +! + 0.93768*K076*<ALKE>*<NO3> +! + 1.00000*K077*<BIO>*<NO3> +! - K096*<OLN>*<NO> +! - K103*<OLN>*<HO2> +! - K110*<OLN>*<MO2> +! - K116*<OLN>*<CARBOP> +! - K117*<OLN>*<OLN> +! - K117*<OLN>*<OLN> +! - K118*<OLN>*<OLN> +! - K118*<OLN>*<OLN> +! - K125*<OLN>*<NO3> +! terms for XO2: +! + 0.15*K054*<BIO>*<O3P> +! + 0.10318*K061*<ARO>*<OH> +! + 0.10162*K065*<CARBO>*<OH> +! + 0.09333*K069*<OP2>*<OH> +! + K070*<PAN>*<OH> +! + 0.10530*K074*<CARBO>*<NO3> +! + K078*<PAN>*<NO3> +! + 0.00000*K079*<ALKE>*<O3> +! + 0.13000*K080*<BIO>*<O3> +! + 0.13007*K091*<ALKAP>*<NO> +! + 0.02563*K095*<CARBOP>*<NO> +! + 0.13370*K105*<ALKAP>*<MO2> +! + 0.02212*K109*<CARBOP>*<MO2> +! + 0.11306*K111*<ALKAP>*<CARBOP> +! + 0.01593*K115*<CARBOP>*<CARBOP> +! + 0.16271*K120*<ALKAP>*<NO3> +! + 0.01021*K124*<CARBOP>*<NO3> +! - K126*<XO2>*<HO2> +! - K127*<XO2>*<MO2> +! - K128*<XO2>*<CARBOP> +! - K129*<XO2>*<XO2> +! - K129*<XO2>*<XO2> +! - K130*<XO2>*<NO> +! - K131*<XO2>*<NO3> ! terms for WC_O3: ! + KTC1*<O3> -! - KTC32*<WC_O3> -! - KC6*<WC_HO2>*<WC_O3> -! - KC25*<WC_O3>*<WC_SO2> +! - KTC21*<WC_O3> +! - KC6*<WC_O3>*<WC_HO2> +! - KC29*<WC_SO2>*<WC_O3> ! terms for WC_H2O2: ! + KTC2*<H2O2> ! + KC2*<WC_OH>*<WC_OH> ! + KC5*<WC_HO2>*<WC_HO2> -! + KC29*<WC_RO25>*<WC_RO25> -! + KC37*<WC_OH>*<WC_KETL> -! + 0.5*KC39*<WC_OH>*<WC_ORA2> -! + 0.29*KC41*<WC_OH>*<WC_ACID> -! + 0.3*KC43*<WC_OH>*<WC_UR21> -! + 0.45*KC45*<WC_OH>*<WC_RP16> -! - KTC33*<WC_H2O2> +! - KTC22*<WC_H2O2> ! - KC1*<WC_H2O2> -! - KC4*<WC_OH>*<WC_H2O2> -! - KC26*<WC_H2O2>*<WC_SO2> +! - KC4*<WC_H2O2>*<WC_OH> +! - KC30*<WC_SO2>*<WC_H2O2> ! terms for WC_NO: ! + KTC3*<NO> -! - KTC34*<WC_NO> +! - KTC23*<WC_NO> ! terms for WC_NO2: ! + KTC4*<NO2> -! + KC8*<WC_OH>*<WC_HONO> +! + KC8*<WC_HONO>*<WC_OH> ! + KC10*<WC_HNO4> ! + KC13*<WC_HNO3> -! - KTC35*<WC_NO2> -! - KC9*<WC_HO2>*<WC_NO2> +! - KTC24*<WC_NO2> +! - KC9*<WC_NO2>*<WC_HO2> ! terms for WC_NO3: ! + KTC5*<NO3> -! - KTC36*<WC_NO3> -! - KC15*<WC_H2SO4>*<WC_NO3> -! - KC16*<WC_SO2>*<WC_NO3> +! - KTC25*<WC_NO3> +! - KC15*<WC_NO3>*<WC_SULF> +! - KC16*<WC_NO3>*<WC_SO2> ! terms for WC_N2O5: ! + KTC6*<N2O5> -! - KTC37*<WC_N2O5> +! - KTC26*<WC_N2O5> ! - KC14*<WC_N2O5> ! terms for WC_HONO: ! + KTC7*<HONO> ! + KC11*<WC_HNO4> -! - KTC38*<WC_HONO> -! - KC8*<WC_OH>*<WC_HONO> +! - KTC27*<WC_HONO> +! - KC8*<WC_HONO>*<WC_OH> ! terms for WC_HNO3: ! + KTC8*<HNO3> -! + KC12*<WC_SO2>*<WC_HNO4> +! + KC12*<WC_HNO4>*<WC_SO2> ! + KC14*<WC_N2O5> ! + KC14*<WC_N2O5> -! + KC15*<WC_H2SO4>*<WC_NO3> -! + KC16*<WC_SO2>*<WC_NO3> -! - KTC39*<WC_HNO3> +! + KC15*<WC_NO3>*<WC_SULF> +! + KC16*<WC_NO3>*<WC_SO2> +! - KTC28*<WC_HNO3> ! - KC13*<WC_HNO3> ! terms for WC_HNO4: ! + KTC9*<HNO4> -! + KC9*<WC_HO2>*<WC_NO2> -! - KTC40*<WC_HNO4> +! + KC9*<WC_NO2>*<WC_HO2> +! - KTC29*<WC_HNO4> ! - KC10*<WC_HNO4> ! - KC11*<WC_HNO4> -! - KC12*<WC_SO2>*<WC_HNO4> +! - KC12*<WC_HNO4>*<WC_SO2> ! terms for WC_NH3: ! + KTC10*<NH3> -! - KTC41*<WC_NH3> +! - KTC30*<WC_NH3> ! terms for WC_OH: ! + KTC11*<OH> ! + KC1*<WC_H2O2> ! + KC1*<WC_H2O2> -! + KC6*<WC_HO2>*<WC_O3> +! + KC6*<WC_O3>*<WC_HO2> ! + KC13*<WC_HNO3> -! + KC24*<WC_ASO4> -! - KTC42*<WC_OH> +! + KC28*<WC_ASO4> +! - KTC31*<WC_OH> ! - KC2*<WC_OH>*<WC_OH> ! - KC2*<WC_OH>*<WC_OH> -! - KC3*<WC_HO2>*<WC_OH> -! - KC4*<WC_OH>*<WC_H2O2> -! - KC7*<WC_SO2>*<WC_OH> -! - KC8*<WC_OH>*<WC_HONO> -! - KC19*<WC_OH>*<WC_AHMS> -! - KC30*<WC_OH>*<WC_MEOH> -! - KC31*<WC_OH>*<WC_ETOH> -! - KC32*<WC_OH>*<WC_ALCH> -! - KC33*<WC_OH>*<WC_HCHO> -! - KC34*<WC_OH>*<WC_ALD2> -! - KC35*<WC_OH>*<WC_GLY> -! - KC36*<WC_OH>*<WC_MGLY> -! - KC37*<WC_OH>*<WC_KETL> -! - KC38*<WC_OH>*<WC_ORA1> -! - KC39*<WC_OH>*<WC_ORA2> -! - KC40*<WC_OH>*<WC_ACID> -! - KC41*<WC_OH>*<WC_ACID> -! - KC42*<WC_OH>*<WC_UR28> -! - KC43*<WC_OH>*<WC_UR21> -! - KC44*<WC_OH>*<WC_RP16> -! - KC45*<WC_OH>*<WC_RP16> -! - KC46*<WC_OH>*<WC_ACID2> +! - KC3*<WC_OH>*<WC_HO2> +! - KC4*<WC_H2O2>*<WC_OH> +! - KC7*<WC_OH>*<WC_SO2> +! - KC8*<WC_HONO>*<WC_OH> +! - KC19*<WC_HCHO>*<WC_OH> +! - KC20*<WC_ORA1>*<WC_OH> +! - KC23*<WC_AHMS>*<WC_OH> ! terms for WC_HO2: ! + KTC12*<HO2> -! + KC4*<WC_OH>*<WC_H2O2> +! + KC4*<WC_H2O2>*<WC_OH> ! + KC10*<WC_HNO4> -! + KC19*<WC_OH>*<WC_AHMS> -! + 2.00*KC27*<WC_RO21>*<WC_RO21> -! + KC29*<WC_RO25>*<WC_RO25> -! + KC30*<WC_OH>*<WC_MEOH> -! + KC31*<WC_OH>*<WC_ETOH> -! + KC32*<WC_OH>*<WC_ALCH> -! + KC33*<WC_OH>*<WC_HCHO> -! + KC35*<WC_OH>*<WC_GLY> -! + KC36*<WC_OH>*<WC_MGLY> -! + KC37*<WC_OH>*<WC_KETL> -! + KC38*<WC_OH>*<WC_ORA1> -! + 0.11*KC41*<WC_OH>*<WC_ACID> -! + KC42*<WC_OH>*<WC_UR28> -! + 0.81*KC43*<WC_OH>*<WC_UR21> -! + KC44*<WC_OH>*<WC_RP16> -! + 0.71*KC45*<WC_OH>*<WC_RP16> -! - KTC43*<WC_HO2> -! - KC3*<WC_HO2>*<WC_OH> +! + 2.00*KC17*<WC_MO2>*<WC_MO2> +! + KC19*<WC_HCHO>*<WC_OH> +! + KC20*<WC_ORA1>*<WC_OH> +! + KC23*<WC_AHMS>*<WC_OH> +! - KTC32*<WC_HO2> +! - KC3*<WC_OH>*<WC_HO2> ! - KC5*<WC_HO2>*<WC_HO2> ! - KC5*<WC_HO2>*<WC_HO2> -! - KC6*<WC_HO2>*<WC_O3> -! - KC9*<WC_HO2>*<WC_NO2> -! - KC21*<WC_HO2>*<WC_ASO5> +! - KC6*<WC_O3>*<WC_HO2> +! - KC9*<WC_NO2>*<WC_HO2> +! - KC25*<WC_ASO5>*<WC_HO2> ! terms for WC_CO2: ! + KTC13*<CO2> -! + KC34*<WC_OH>*<WC_ALD2> -! + KC37*<WC_OH>*<WC_KETL> -! + KC38*<WC_OH>*<WC_ORA1> -! + KC40*<WC_OH>*<WC_ACID> -! + 2*KC42*<WC_OH>*<WC_UR28> -! + 0.43*KC43*<WC_OH>*<WC_UR21> -! + 2*KC45*<WC_OH>*<WC_RP16> -! - KTC44*<WC_CO2> +! + KC20*<WC_ORA1>*<WC_OH> +! - KTC33*<WC_CO2> ! terms for WC_SO2: ! + KTC14*<SO2> -! + KC18*<WC_AHMS> -! + KC19*<WC_OH>*<WC_AHMS> -! - KTC45*<WC_SO2> -! - KC7*<WC_SO2>*<WC_OH> -! - KC12*<WC_SO2>*<WC_HNO4> -! - KC16*<WC_SO2>*<WC_NO3> -! - KC17*<WC_HCHO>*<WC_SO2> -! - KC23*<WC_SO2>*<WC_AHSO5> -! - KC25*<WC_O3>*<WC_SO2> -! - KC26*<WC_H2O2>*<WC_SO2> -! - KC28*<WC_SO2>*<WC_RO21> -! terms for WC_H2SO4: -! + KTC15*<H2SO4> -! + KC12*<WC_SO2>*<WC_HNO4> -! + 2.00*KC23*<WC_SO2>*<WC_AHSO5> -! + KC24*<WC_ASO4> -! + KC25*<WC_O3>*<WC_SO2> -! + KC26*<WC_H2O2>*<WC_SO2> -! - KTC46*<WC_H2SO4> -! - KC15*<WC_H2SO4>*<WC_NO3> -! terms for WC_RO21: -! + KTC16*<RO21> -! + 0.50*KC34*<WC_OH>*<WC_ALD2> -! + KC37*<WC_OH>*<WC_KETL> -! - KTC47*<WC_RO21> -! - KC27*<WC_RO21>*<WC_RO21> -! - KC27*<WC_RO21>*<WC_RO21> -! - KC28*<WC_SO2>*<WC_RO21> -! terms for WC_RO25: -! + KTC17*<RO25> -! + 0.50*KC34*<WC_OH>*<WC_ALD2> -! + KC40*<WC_OH>*<WC_ACID> -! - KTC48*<WC_RO25> -! - KC29*<WC_RO25>*<WC_RO25> -! - KC29*<WC_RO25>*<WC_RO25> -! terms for WC_MEOH: -! + KTC18*<MEOH> -! - KTC49*<WC_MEOH> -! - KC30*<WC_OH>*<WC_MEOH> -! terms for WC_ETOH: -! + KTC19*<ETOH> -! - KTC50*<WC_ETOH> -! - KC31*<WC_OH>*<WC_ETOH> -! terms for WC_ALCH: -! + KTC20*<ALCH> -! - KTC51*<WC_ALCH> -! - KC32*<WC_OH>*<WC_ALCH> +! + KC22*<WC_AHMS> +! + KC23*<WC_AHMS>*<WC_OH> +! - KTC34*<WC_SO2> +! - KC7*<WC_OH>*<WC_SO2> +! - KC12*<WC_HNO4>*<WC_SO2> +! - KC16*<WC_NO3>*<WC_SO2> +! - KC18*<WC_MO2>*<WC_SO2> +! - KC21*<WC_SO2>*<WC_HCHO> +! - KC27*<WC_AHSO5>*<WC_SO2> +! - KC29*<WC_SO2>*<WC_O3> +! - KC30*<WC_SO2>*<WC_H2O2> +! terms for WC_SULF: +! + KTC15*<SULF> +! + KC12*<WC_HNO4>*<WC_SO2> +! + 2.00*KC27*<WC_AHSO5>*<WC_SO2> +! + KC28*<WC_ASO4> +! + KC29*<WC_SO2>*<WC_O3> +! + KC30*<WC_SO2>*<WC_H2O2> +! - KTC35*<WC_SULF> +! - KC15*<WC_NO3>*<WC_SULF> ! terms for WC_HCHO: -! + KTC21*<HCHO> -! + KC18*<WC_AHMS> -! + 2.00*KC27*<WC_RO21>*<WC_RO21> -! + KC28*<WC_SO2>*<WC_RO21> -! + KC30*<WC_OH>*<WC_MEOH> -! + KC37*<WC_OH>*<WC_KETL> -! - KTC52*<WC_HCHO> -! - KC17*<WC_HCHO>*<WC_SO2> -! - KC33*<WC_OH>*<WC_HCHO> -! terms for WC_ALD2: -! + KTC22*<ALD2> -! + KC29*<WC_RO25>*<WC_RO25> -! + KC31*<WC_OH>*<WC_ETOH> -! + 0.50*KC32*<WC_OH>*<WC_ALCH> -! + KC37*<WC_OH>*<WC_KETL> -! + 0.29*KC41*<WC_OH>*<WC_ACID> -! + 0.43*KC43*<WC_OH>*<WC_UR21> -! - KTC53*<WC_ALD2> -! - KC34*<WC_OH>*<WC_ALD2> -! terms for WC_GLY: -! + KTC23*<GLY> -! - KTC54*<WC_GLY> -! - KC35*<WC_OH>*<WC_GLY> -! terms for WC_MGLY: -! + KTC25*<MGLY> -! + KC37*<WC_OH>*<WC_KETL> -! - KTC56*<WC_MGLY> -! - KC36*<WC_OH>*<WC_MGLY> -! terms for WC_KETL: -! + KTC24*<KETL> -! + 0.50*KC32*<WC_OH>*<WC_ALCH> -! + KC37*<WC_OH>*<WC_KETL> -! - KTC55*<WC_KETL> -! - KC37*<WC_OH>*<WC_KETL> +! + KTC16*<HCHO> +! + 2.00*KC17*<WC_MO2>*<WC_MO2> +! + KC22*<WC_AHMS> +! - KTC36*<WC_HCHO> +! - KC19*<WC_HCHO>*<WC_OH> +! - KC21*<WC_SO2>*<WC_HCHO> ! terms for WC_ORA1: -! + KTC26*<ORA1> -! + KC19*<WC_OH>*<WC_AHMS> -! + KC33*<WC_OH>*<WC_HCHO> -! - KTC57*<WC_ORA1> -! - KC38*<WC_OH>*<WC_ORA1> +! + KTC17*<ORA1> +! + KC19*<WC_HCHO>*<WC_OH> +! + KC23*<WC_AHMS>*<WC_OH> +! - KTC37*<WC_ORA1> +! - KC20*<WC_ORA1>*<WC_OH> ! terms for WC_ORA2: -! + KTC27*<ORA2> -! + KC29*<WC_RO25>*<WC_RO25> -! - KTC58*<WC_ORA2> -! - KC39*<WC_OH>*<WC_ORA2> -! terms for WC_ACID: -! + KTC28*<ACID> -! - KTC59*<WC_ACID> -! - KC40*<WC_OH>*<WC_ACID> -! - KC41*<WC_OH>*<WC_ACID> -! terms for WC_RP16: -! + KTC29*<RP16> -! + KC35*<WC_OH>*<WC_GLY> -! + KC39*<WC_OH>*<WC_ORA2> -! - KTC60*<WC_RP16> -! - KC44*<WC_OH>*<WC_RP16> -! - KC45*<WC_OH>*<WC_RP16> -! terms for WC_UR21: -! + KTC30*<UR21> -! + KC36*<WC_OH>*<WC_MGLY> -! + KC37*<WC_OH>*<WC_KETL> -! + 0.56*KC41*<WC_OH>*<WC_ACID> -! - KTC61*<WC_UR21> -! - KC43*<WC_OH>*<WC_UR21> -! terms for WC_UR28: -! + KTC31*<UR28> -! + KC44*<WC_OH>*<WC_RP16> -! - KTC62*<WC_UR28> -! - KC42*<WC_OH>*<WC_UR28> -! terms for WC_ACID2: -! + 0.15*KC41*<WC_OH>*<WC_ACID> -! + 0.56*KC43*<WC_OH>*<WC_UR21> -! - KC46*<WC_OH>*<WC_ACID2> +! + KTC18*<ORA2> +! - KTC38*<WC_ORA2> +! terms for WC_MO2: +! + KTC19*<MO2> +! - KTC39*<WC_MO2> +! - KC17*<WC_MO2>*<WC_MO2> +! - KC17*<WC_MO2>*<WC_MO2> +! - KC18*<WC_MO2>*<WC_SO2> +! terms for WC_OP1: +! + KTC20*<OP1> +! + KC18*<WC_MO2>*<WC_SO2> +! - KTC40*<WC_OP1> ! terms for WC_ASO3: -! + KC7*<WC_SO2>*<WC_OH> -! + KC16*<WC_SO2>*<WC_NO3> -! + KC28*<WC_SO2>*<WC_RO21> -! - KC20*<W_O2>*<WC_ASO3> +! + KC7*<WC_OH>*<WC_SO2> +! + KC16*<WC_NO3>*<WC_SO2> +! + KC18*<WC_MO2>*<WC_SO2> +! - KC24*<WC_ASO3>*<W_O2> ! terms for WC_ASO4: -! + KC15*<WC_H2SO4>*<WC_NO3> -! + KC22*<WC_ASO5>*<WC_ASO5> -! + KC22*<WC_ASO5>*<WC_ASO5> -! - KC24*<WC_ASO4> +! + KC15*<WC_NO3>*<WC_SULF> +! + KC26*<WC_ASO5>*<WC_ASO5> +! + KC26*<WC_ASO5>*<WC_ASO5> +! - KC28*<WC_ASO4> ! terms for WC_ASO5: -! + KC20*<W_O2>*<WC_ASO3> -! - KC21*<WC_HO2>*<WC_ASO5> -! - KC22*<WC_ASO5>*<WC_ASO5> -! - KC22*<WC_ASO5>*<WC_ASO5> +! + KC24*<WC_ASO3>*<W_O2> +! - KC25*<WC_ASO5>*<WC_HO2> +! - KC26*<WC_ASO5>*<WC_ASO5> +! - KC26*<WC_ASO5>*<WC_ASO5> ! terms for WC_AHSO5: -! + KC21*<WC_HO2>*<WC_ASO5> -! - KC23*<WC_SO2>*<WC_AHSO5> +! + KC25*<WC_ASO5>*<WC_HO2> +! - KC27*<WC_AHSO5>*<WC_SO2> ! terms for WC_AHMS: -! + KC17*<WC_HCHO>*<WC_SO2> -! - KC18*<WC_AHMS> -! - KC19*<WC_OH>*<WC_AHMS> +! + KC21*<WC_SO2>*<WC_HCHO> +! - KC22*<WC_AHMS> +! - KC23*<WC_AHMS>*<WC_OH> ! terms for WR_O3: ! + KTR1*<O3> -! - KTR32*<WR_O3> -! - KR6*<WR_HO2>*<WR_O3> -! - KR25*<WR_O3>*<WR_SO2> +! - KTR21*<WR_O3> +! - KR6*<WR_O3>*<WR_HO2> +! - KR29*<WR_SO2>*<WR_O3> ! terms for WR_H2O2: ! + KTR2*<H2O2> ! + KR2*<WR_OH>*<WR_OH> ! + KR5*<WR_HO2>*<WR_HO2> -! + KR29*<WR_RO25>*<WR_RO25> -! + KR37*<WR_OH>*<WR_KETL> -! + 0.5*KR39*<WR_OH>*<WR_ORA2> -! + 0.29*KR41*<WR_OH>*<WR_ACID> -! + 0.3*KR43*<WR_OH>*<WR_UR21> -! + 0.45*KR45*<WR_OH>*<WR_RP16> -! - KTR33*<WR_H2O2> +! - KTR22*<WR_H2O2> ! - KR1*<WR_H2O2> -! - KR4*<WR_OH>*<WR_H2O2> -! - KR26*<WR_H2O2>*<WR_SO2> +! - KR4*<WR_H2O2>*<WR_OH> +! - KR30*<WR_SO2>*<WR_H2O2> ! terms for WR_NO: ! + KTR3*<NO> -! - KTR34*<WR_NO> +! - KTR23*<WR_NO> ! terms for WR_NO2: ! + KTR4*<NO2> -! + KR8*<WR_OH>*<WR_HONO> +! + KR8*<WR_HONO>*<WR_OH> ! + KR10*<WR_HNO4> ! + KR13*<WR_HNO3> -! - KTR35*<WR_NO2> -! - KR9*<WR_HO2>*<WR_NO2> +! - KTR24*<WR_NO2> +! - KR9*<WR_NO2>*<WR_HO2> ! terms for WR_NO3: ! + KTR5*<NO3> -! - KTR36*<WR_NO3> -! - KR15*<WR_H2SO4>*<WR_NO3> -! - KR16*<WR_SO2>*<WR_NO3> +! - KTR25*<WR_NO3> +! - KR15*<WR_NO3>*<WR_SULF> +! - KR16*<WR_NO3>*<WR_SO2> ! terms for WR_N2O5: ! + KTR6*<N2O5> -! - KTR37*<WR_N2O5> +! - KTR26*<WR_N2O5> ! - KR14*<WR_N2O5> ! terms for WR_HONO: ! + KTR7*<HONO> ! + KR11*<WR_HNO4> -! - KTR38*<WR_HONO> -! - KR8*<WR_OH>*<WR_HONO> +! - KTR27*<WR_HONO> +! - KR8*<WR_HONO>*<WR_OH> ! terms for WR_HNO3: ! + KTR8*<HNO3> -! + KR12*<WR_SO2>*<WR_HNO4> +! + KR12*<WR_HNO4>*<WR_SO2> ! + KR14*<WR_N2O5> ! + KR14*<WR_N2O5> -! + KR15*<WR_H2SO4>*<WR_NO3> -! + KR16*<WR_SO2>*<WR_NO3> -! - KTR39*<WR_HNO3> +! + KR15*<WR_NO3>*<WR_SULF> +! + KR16*<WR_NO3>*<WR_SO2> +! - KTR28*<WR_HNO3> ! - KR13*<WR_HNO3> ! terms for WR_HNO4: ! + KTR9*<HNO4> -! + KR9*<WR_HO2>*<WR_NO2> -! - KTR40*<WR_HNO4> +! + KR9*<WR_NO2>*<WR_HO2> +! - KTR29*<WR_HNO4> ! - KR10*<WR_HNO4> ! - KR11*<WR_HNO4> -! - KR12*<WR_SO2>*<WR_HNO4> +! - KR12*<WR_HNO4>*<WR_SO2> ! terms for WR_NH3: ! + KTR10*<NH3> -! - KTR41*<WR_NH3> +! - KTR30*<WR_NH3> ! terms for WR_OH: ! + KTR11*<OH> ! + KR1*<WR_H2O2> ! + KR1*<WR_H2O2> -! + KR6*<WR_HO2>*<WR_O3> +! + KR6*<WR_O3>*<WR_HO2> ! + KR13*<WR_HNO3> -! + KR24*<WR_ASO4> -! - KTR42*<WR_OH> +! + KR28*<WR_ASO4> +! - KTR31*<WR_OH> ! - KR2*<WR_OH>*<WR_OH> ! - KR2*<WR_OH>*<WR_OH> -! - KR3*<WR_HO2>*<WR_OH> -! - KR4*<WR_OH>*<WR_H2O2> -! - KR7*<WR_SO2>*<WR_OH> -! - KR8*<WR_OH>*<WR_HONO> -! - KR19*<WR_OH>*<WR_AHMS> -! - KR30*<WR_OH>*<WR_MEOH> -! - KR31*<WR_OH>*<WR_ETOH> -! - KR32*<WR_OH>*<WR_ALCH> -! - KR33*<WR_OH>*<WR_HCHO> -! - KR34*<WR_OH>*<WR_ALD2> -! - KR35*<WR_OH>*<WR_GLY> -! - KR36*<WR_OH>*<WR_MGLY> -! - KR37*<WR_OH>*<WR_KETL> -! - KR38*<WR_OH>*<WR_ORA1> -! - KR39*<WR_OH>*<WR_ORA2> -! - KR40*<WR_OH>*<WR_ACID> -! - KR41*<WR_OH>*<WR_ACID> -! - KR42*<WR_OH>*<WR_UR28> -! - KR43*<WR_OH>*<WR_UR21> -! - KR44*<WR_OH>*<WR_RP16> -! - KR45*<WR_OH>*<WR_RP16> -! - KR46*<WR_OH>*<WR_ACID2> +! - KR3*<WR_OH>*<WR_HO2> +! - KR4*<WR_H2O2>*<WR_OH> +! - KR7*<WR_OH>*<WR_SO2> +! - KR8*<WR_HONO>*<WR_OH> +! - KR19*<WR_HCHO>*<WR_OH> +! - KR20*<WR_ORA1>*<WR_OH> +! - KR23*<WR_AHMS>*<WR_OH> ! terms for WR_HO2: ! + KTR12*<HO2> -! + KR4*<WR_OH>*<WR_H2O2> +! + KR4*<WR_H2O2>*<WR_OH> ! + KR10*<WR_HNO4> -! + KR19*<WR_OH>*<WR_AHMS> -! + 2.00*KR27*<WR_RO21>*<WR_RO21> -! + KR29*<WR_RO25>*<WR_RO25> -! + KR30*<WR_OH>*<WR_MEOH> -! + KR31*<WR_OH>*<WR_ETOH> -! + KR32*<WR_OH>*<WR_ALCH> -! + KR33*<WR_OH>*<WR_HCHO> -! + KR35*<WR_OH>*<WR_GLY> -! + KR36*<WR_OH>*<WR_MGLY> -! + KR37*<WR_OH>*<WR_KETL> -! + KR38*<WR_OH>*<WR_ORA1> -! + 0.11*KR41*<WR_OH>*<WR_ACID> -! + KR42*<WR_OH>*<WR_UR28> -! + 0.81*KR43*<WR_OH>*<WR_UR21> -! + KR44*<WR_OH>*<WR_RP16> -! + 0.71*KR45*<WR_OH>*<WR_RP16> -! - KTR43*<WR_HO2> -! - KR3*<WR_HO2>*<WR_OH> +! + 2.00*KR17*<WR_MO2>*<WR_MO2> +! + KR19*<WR_HCHO>*<WR_OH> +! + KR20*<WR_ORA1>*<WR_OH> +! + KR23*<WR_AHMS>*<WR_OH> +! - KTR32*<WR_HO2> +! - KR3*<WR_OH>*<WR_HO2> ! - KR5*<WR_HO2>*<WR_HO2> ! - KR5*<WR_HO2>*<WR_HO2> -! - KR6*<WR_HO2>*<WR_O3> -! - KR9*<WR_HO2>*<WR_NO2> -! - KR21*<WR_HO2>*<WR_ASO5> +! - KR6*<WR_O3>*<WR_HO2> +! - KR9*<WR_NO2>*<WR_HO2> +! - KR25*<WR_ASO5>*<WR_HO2> ! terms for WR_CO2: ! + KTR13*<CO2> -! + KR34*<WR_OH>*<WR_ALD2> -! + KR37*<WR_OH>*<WR_KETL> -! + KR38*<WR_OH>*<WR_ORA1> -! + KR40*<WR_OH>*<WR_ACID> -! + 2*KR42*<WR_OH>*<WR_UR28> -! + 0.43*KR43*<WR_OH>*<WR_UR21> -! + 2*KR45*<WR_OH>*<WR_RP16> -! - KTR44*<WR_CO2> +! + KR20*<WR_ORA1>*<WR_OH> +! - KTR33*<WR_CO2> ! terms for WR_SO2: ! + KTR14*<SO2> -! + KR18*<WR_AHMS> -! + KR19*<WR_OH>*<WR_AHMS> -! - KTR45*<WR_SO2> -! - KR7*<WR_SO2>*<WR_OH> -! - KR12*<WR_SO2>*<WR_HNO4> -! - KR16*<WR_SO2>*<WR_NO3> -! - KR17*<WR_HCHO>*<WR_SO2> -! - KR23*<WR_SO2>*<WR_AHSO5> -! - KR25*<WR_O3>*<WR_SO2> -! - KR26*<WR_H2O2>*<WR_SO2> -! - KR28*<WR_SO2>*<WR_RO21> -! terms for WR_H2SO4: -! + KTR15*<H2SO4> -! + KR12*<WR_SO2>*<WR_HNO4> -! + 2.00*KR23*<WR_SO2>*<WR_AHSO5> -! + KR24*<WR_ASO4> -! + KR25*<WR_O3>*<WR_SO2> -! + KR26*<WR_H2O2>*<WR_SO2> -! - KTR46*<WR_H2SO4> -! - KR15*<WR_H2SO4>*<WR_NO3> -! terms for WR_RO21: -! + KTR16*<RO21> -! + 0.50*KR34*<WR_OH>*<WR_ALD2> -! + KR37*<WR_OH>*<WR_KETL> -! - KTR47*<WR_RO21> -! - KR27*<WR_RO21>*<WR_RO21> -! - KR27*<WR_RO21>*<WR_RO21> -! - KR28*<WR_SO2>*<WR_RO21> -! terms for WR_RO25: -! + KTR17*<RO25> -! + 0.50*KR34*<WR_OH>*<WR_ALD2> -! + KR40*<WR_OH>*<WR_ACID> -! - KTR48*<WR_RO25> -! - KR29*<WR_RO25>*<WR_RO25> -! - KR29*<WR_RO25>*<WR_RO25> -! terms for WR_MEOH: -! + KTR18*<MEOH> -! - KTR49*<WR_MEOH> -! - KR30*<WR_OH>*<WR_MEOH> -! terms for WR_ETOH: -! + KTR19*<ETOH> -! - KTR50*<WR_ETOH> -! - KR31*<WR_OH>*<WR_ETOH> -! terms for WR_ALCH: -! + KTR20*<ALCH> -! - KTR51*<WR_ALCH> -! - KR32*<WR_OH>*<WR_ALCH> +! + KR22*<WR_AHMS> +! + KR23*<WR_AHMS>*<WR_OH> +! - KTR34*<WR_SO2> +! - KR7*<WR_OH>*<WR_SO2> +! - KR12*<WR_HNO4>*<WR_SO2> +! - KR16*<WR_NO3>*<WR_SO2> +! - KR18*<WR_MO2>*<WR_SO2> +! - KR21*<WR_SO2>*<WR_HCHO> +! - KR27*<WR_AHSO5>*<WR_SO2> +! - KR29*<WR_SO2>*<WR_O3> +! - KR30*<WR_SO2>*<WR_H2O2> +! terms for WR_SULF: +! + KTR15*<SULF> +! + KR12*<WR_HNO4>*<WR_SO2> +! + 2.00*KR27*<WR_AHSO5>*<WR_SO2> +! + KR28*<WR_ASO4> +! + KR29*<WR_SO2>*<WR_O3> +! + KR30*<WR_SO2>*<WR_H2O2> +! - KTR35*<WR_SULF> +! - KR15*<WR_NO3>*<WR_SULF> ! terms for WR_HCHO: -! + KTR21*<HCHO> -! + KR18*<WR_AHMS> -! + 2.00*KR27*<WR_RO21>*<WR_RO21> -! + KR28*<WR_SO2>*<WR_RO21> -! + KR30*<WR_OH>*<WR_MEOH> -! + KR37*<WR_OH>*<WR_KETL> -! - KTR52*<WR_HCHO> -! - KR17*<WR_HCHO>*<WR_SO2> -! - KR33*<WR_OH>*<WR_HCHO> -! terms for WR_ALD2: -! + KTR22*<ALD2> -! + KR29*<WR_RO25>*<WR_RO25> -! + KR31*<WR_OH>*<WR_ETOH> -! + 0.50*KR32*<WR_OH>*<WR_ALCH> -! + KR37*<WR_OH>*<WR_KETL> -! + 0.29*KR41*<WR_OH>*<WR_ACID> -! + 0.43*KR43*<WR_OH>*<WR_UR21> -! - KTR53*<WR_ALD2> -! - KR34*<WR_OH>*<WR_ALD2> -! terms for WR_GLY: -! + KTR23*<GLY> -! - KTR54*<WR_GLY> -! - KR35*<WR_OH>*<WR_GLY> -! terms for WR_MGLY: -! + KTR25*<MGLY> -! + KR37*<WR_OH>*<WR_KETL> -! - KTR56*<WR_MGLY> -! - KR36*<WR_OH>*<WR_MGLY> -! terms for WR_KETL: -! + KTR24*<KETL> -! + 0.50*KR32*<WR_OH>*<WR_ALCH> -! + KR37*<WR_OH>*<WR_KETL> -! - KTR55*<WR_KETL> -! - KR37*<WR_OH>*<WR_KETL> +! + KTR16*<HCHO> +! + 2.00*KR17*<WR_MO2>*<WR_MO2> +! + KR22*<WR_AHMS> +! - KTR36*<WR_HCHO> +! - KR19*<WR_HCHO>*<WR_OH> +! - KR21*<WR_SO2>*<WR_HCHO> ! terms for WR_ORA1: -! + KTR26*<ORA1> -! + KR19*<WR_OH>*<WR_AHMS> -! + KR33*<WR_OH>*<WR_HCHO> -! - KTR57*<WR_ORA1> -! - KR38*<WR_OH>*<WR_ORA1> +! + KTR17*<ORA1> +! + KR19*<WR_HCHO>*<WR_OH> +! + KR23*<WR_AHMS>*<WR_OH> +! - KTR37*<WR_ORA1> +! - KR20*<WR_ORA1>*<WR_OH> ! terms for WR_ORA2: -! + KTR27*<ORA2> -! + KR29*<WR_RO25>*<WR_RO25> -! - KTR58*<WR_ORA2> -! - KR39*<WR_OH>*<WR_ORA2> -! terms for WR_ACID: -! + KTR28*<ACID> -! - KTR59*<WR_ACID> -! - KR40*<WR_OH>*<WR_ACID> -! - KR41*<WR_OH>*<WR_ACID> -! terms for WR_RP16: -! + KTR29*<RP16> -! + KR35*<WR_OH>*<WR_GLY> -! + KR39*<WR_OH>*<WR_ORA2> -! - KTR60*<WR_RP16> -! - KR44*<WR_OH>*<WR_RP16> -! - KR45*<WR_OH>*<WR_RP16> -! terms for WR_UR21: -! + KTR30*<UR21> -! + KR36*<WR_OH>*<WR_MGLY> -! + KR37*<WR_OH>*<WR_KETL> -! + 0.56*KR41*<WR_OH>*<WR_ACID> -! - KTR61*<WR_UR21> -! - KR43*<WR_OH>*<WR_UR21> -! terms for WR_UR28: -! + KTR31*<UR28> -! + KR44*<WR_OH>*<WR_RP16> -! - KTR62*<WR_UR28> -! - KR42*<WR_OH>*<WR_UR28> -! terms for WR_ACID2: -! + 0.15*KR41*<WR_OH>*<WR_ACID> -! + 0.56*KR43*<WR_OH>*<WR_UR21> -! - KR46*<WR_OH>*<WR_ACID2> +! + KTR18*<ORA2> +! - KTR38*<WR_ORA2> +! terms for WR_MO2: +! + KTR19*<MO2> +! - KTR39*<WR_MO2> +! - KR17*<WR_MO2>*<WR_MO2> +! - KR17*<WR_MO2>*<WR_MO2> +! - KR18*<WR_MO2>*<WR_SO2> +! terms for WR_OP1: +! + KTR20*<OP1> +! + KR18*<WR_MO2>*<WR_SO2> +! - KTR40*<WR_OP1> ! terms for WR_ASO3: -! + KR7*<WR_SO2>*<WR_OH> -! + KR16*<WR_SO2>*<WR_NO3> -! + KR28*<WR_SO2>*<WR_RO21> -! - KR20*<W_O2>*<WR_ASO3> +! + KR7*<WR_OH>*<WR_SO2> +! + KR16*<WR_NO3>*<WR_SO2> +! + KR18*<WR_MO2>*<WR_SO2> +! - KR24*<WR_ASO3>*<W_O2> ! terms for WR_ASO4: -! + KR15*<WR_H2SO4>*<WR_NO3> -! + KR22*<WR_ASO5>*<WR_ASO5> -! + KR22*<WR_ASO5>*<WR_ASO5> -! - KR24*<WR_ASO4> +! + KR15*<WR_NO3>*<WR_SULF> +! + KR26*<WR_ASO5>*<WR_ASO5> +! + KR26*<WR_ASO5>*<WR_ASO5> +! - KR28*<WR_ASO4> ! terms for WR_ASO5: -! + KR20*<W_O2>*<WR_ASO3> -! - KR21*<WR_HO2>*<WR_ASO5> -! - KR22*<WR_ASO5>*<WR_ASO5> -! - KR22*<WR_ASO5>*<WR_ASO5> +! + KR24*<WR_ASO3>*<W_O2> +! - KR25*<WR_ASO5>*<WR_HO2> +! - KR26*<WR_ASO5>*<WR_ASO5> +! - KR26*<WR_ASO5>*<WR_ASO5> ! terms for WR_AHSO5: -! + KR21*<WR_HO2>*<WR_ASO5> -! - KR23*<WR_SO2>*<WR_AHSO5> +! + KR25*<WR_ASO5>*<WR_HO2> +! - KR27*<WR_AHSO5>*<WR_SO2> ! terms for WR_AHMS: -! + KR17*<WR_HCHO>*<WR_SO2> -! - KR18*<WR_AHMS> -! - KR19*<WR_OH>*<WR_AHMS> +! + KR21*<WR_SO2>*<WR_HCHO> +! - KR22*<WR_AHMS> +! - KR23*<WR_AHMS>*<WR_OH> ! !======================================================================== ! @@ -3018,11 +1537,11 @@ !! DECLARATIONS !! ------------ IMPLICIT NONE -INTEGER, DIMENSION(2), PARAMETER :: JPNEQ = (/87,161/) ! number of prognostic chemical species -INTEGER, DIMENSION(2), PARAMETER :: JPNEQAQ = (/0,74/) ! number of prognostic aqueous phase chemical species -INTEGER, DIMENSION(2), PARAMETER :: JPNREAC = (/365,581/) ! number of chemical reactions +INTEGER, DIMENSION(2), PARAMETER :: JPNEQ = (/41,91/) ! number of prognostic chemical species +INTEGER, DIMENSION(2), PARAMETER :: JPNEQAQ = (/0,50/) ! number of prognostic aqueous phase chemical species +INTEGER, DIMENSION(2), PARAMETER :: JPNREAC = (/132,272/) ! number of chemical reactions INTEGER, DIMENSION(2), PARAMETER :: JPNMETEOVARS = (/13,13/) ! number of meteorological variables -INTEGER, DIMENSION(2), PARAMETER :: JPNNONZEROTERMS = (/1188,1768/) ! number of non-zero terms returned by CH_TERMS +INTEGER, DIMENSION(2), PARAMETER :: JPNNONZEROTERMS = (/606,942/) ! number of non-zero terms returned by CH_TERMS ! CHARACTER(LEN=32), DIMENSION(JPNEQ(2)), TARGET :: CNAMES ! names of the species CHARACTER(LEN=32), DIMENSION(JPNREAC(2)), TARGET :: CREACS ! the reaction rate names @@ -3053,8 +1572,7 @@ REAL,DIMENSION(:),POINTER :: K014=>NULL() REAL,DIMENSION(:),POINTER :: K015=>NULL() REAL,DIMENSION(:),POINTER :: K016=>NULL() REAL,DIMENSION(:),POINTER :: K017=>NULL() -REAL,DIMENSION(:),POINTER :: K018A=>NULL() -REAL,DIMENSION(:),POINTER :: K018B=>NULL() +REAL,DIMENSION(:),POINTER :: K018=>NULL() REAL,DIMENSION(:),POINTER :: K019=>NULL() REAL,DIMENSION(:),POINTER :: K020=>NULL() REAL,DIMENSION(:),POINTER :: K021=>NULL() @@ -3136,9 +1654,9 @@ REAL,DIMENSION(:),POINTER :: K096=>NULL() REAL,DIMENSION(:),POINTER :: K097=>NULL() REAL,DIMENSION(:),POINTER :: K098=>NULL() REAL,DIMENSION(:),POINTER :: K099=>NULL() -REAL,DIMENSION(:),POINTER :: K100=>NULL() -REAL,DIMENSION(:),POINTER :: K101=>NULL() -REAL,DIMENSION(:),POINTER :: K102=>NULL() +REAL,DIMENSION(:),POINTER :: K0100=>NULL() +REAL,DIMENSION(:),POINTER :: K0101=>NULL() +REAL,DIMENSION(:),POINTER :: K0102=>NULL() REAL,DIMENSION(:),POINTER :: K103=>NULL() REAL,DIMENSION(:),POINTER :: K104=>NULL() REAL,DIMENSION(:),POINTER :: K105=>NULL() @@ -3169,238 +1687,6 @@ REAL,DIMENSION(:),POINTER :: K129=>NULL() REAL,DIMENSION(:),POINTER :: K130=>NULL() REAL,DIMENSION(:),POINTER :: K131=>NULL() REAL,DIMENSION(:),POINTER :: K132=>NULL() -REAL,DIMENSION(:),POINTER :: K133=>NULL() -REAL,DIMENSION(:),POINTER :: K134=>NULL() -REAL,DIMENSION(:),POINTER :: K135=>NULL() -REAL,DIMENSION(:),POINTER :: K136=>NULL() -REAL,DIMENSION(:),POINTER :: K137=>NULL() -REAL,DIMENSION(:),POINTER :: K138=>NULL() -REAL,DIMENSION(:),POINTER :: K139=>NULL() -REAL,DIMENSION(:),POINTER :: K140=>NULL() -REAL,DIMENSION(:),POINTER :: K141=>NULL() -REAL,DIMENSION(:),POINTER :: K142=>NULL() -REAL,DIMENSION(:),POINTER :: K143=>NULL() -REAL,DIMENSION(:),POINTER :: K144=>NULL() -REAL,DIMENSION(:),POINTER :: K145=>NULL() -REAL,DIMENSION(:),POINTER :: K146=>NULL() -REAL,DIMENSION(:),POINTER :: K147=>NULL() -REAL,DIMENSION(:),POINTER :: K148=>NULL() -REAL,DIMENSION(:),POINTER :: K149=>NULL() -REAL,DIMENSION(:),POINTER :: K150=>NULL() -REAL,DIMENSION(:),POINTER :: K151=>NULL() -REAL,DIMENSION(:),POINTER :: K152=>NULL() -REAL,DIMENSION(:),POINTER :: K153=>NULL() -REAL,DIMENSION(:),POINTER :: K154=>NULL() -REAL,DIMENSION(:),POINTER :: K155=>NULL() -REAL,DIMENSION(:),POINTER :: K156=>NULL() -REAL,DIMENSION(:),POINTER :: K157=>NULL() -REAL,DIMENSION(:),POINTER :: K158=>NULL() -REAL,DIMENSION(:),POINTER :: K159=>NULL() -REAL,DIMENSION(:),POINTER :: K160=>NULL() -REAL,DIMENSION(:),POINTER :: K161=>NULL() -REAL,DIMENSION(:),POINTER :: K162=>NULL() -REAL,DIMENSION(:),POINTER :: K163=>NULL() -REAL,DIMENSION(:),POINTER :: K164=>NULL() -REAL,DIMENSION(:),POINTER :: K165=>NULL() -REAL,DIMENSION(:),POINTER :: K166=>NULL() -REAL,DIMENSION(:),POINTER :: K167=>NULL() -REAL,DIMENSION(:),POINTER :: K168=>NULL() -REAL,DIMENSION(:),POINTER :: K169=>NULL() -REAL,DIMENSION(:),POINTER :: K170=>NULL() -REAL,DIMENSION(:),POINTER :: K171=>NULL() -REAL,DIMENSION(:),POINTER :: K172=>NULL() -REAL,DIMENSION(:),POINTER :: K173=>NULL() -REAL,DIMENSION(:),POINTER :: K174=>NULL() -REAL,DIMENSION(:),POINTER :: K175=>NULL() -REAL,DIMENSION(:),POINTER :: K176=>NULL() -REAL,DIMENSION(:),POINTER :: K177=>NULL() -REAL,DIMENSION(:),POINTER :: K178=>NULL() -REAL,DIMENSION(:),POINTER :: K179=>NULL() -REAL,DIMENSION(:),POINTER :: K180=>NULL() -REAL,DIMENSION(:),POINTER :: K181=>NULL() -REAL,DIMENSION(:),POINTER :: K182=>NULL() -REAL,DIMENSION(:),POINTER :: K183=>NULL() -REAL,DIMENSION(:),POINTER :: K184=>NULL() -REAL,DIMENSION(:),POINTER :: K185=>NULL() -REAL,DIMENSION(:),POINTER :: K186=>NULL() -REAL,DIMENSION(:),POINTER :: K187=>NULL() -REAL,DIMENSION(:),POINTER :: K188=>NULL() -REAL,DIMENSION(:),POINTER :: K189=>NULL() -REAL,DIMENSION(:),POINTER :: K190=>NULL() -REAL,DIMENSION(:),POINTER :: K191=>NULL() -REAL,DIMENSION(:),POINTER :: K192=>NULL() -REAL,DIMENSION(:),POINTER :: K193=>NULL() -REAL,DIMENSION(:),POINTER :: K194=>NULL() -REAL,DIMENSION(:),POINTER :: K195=>NULL() -REAL,DIMENSION(:),POINTER :: K196=>NULL() -REAL,DIMENSION(:),POINTER :: K197=>NULL() -REAL,DIMENSION(:),POINTER :: K198=>NULL() -REAL,DIMENSION(:),POINTER :: K199=>NULL() -REAL,DIMENSION(:),POINTER :: K200=>NULL() -REAL,DIMENSION(:),POINTER :: K201=>NULL() -REAL,DIMENSION(:),POINTER :: K202=>NULL() -REAL,DIMENSION(:),POINTER :: K203=>NULL() -REAL,DIMENSION(:),POINTER :: K204=>NULL() -REAL,DIMENSION(:),POINTER :: K205=>NULL() -REAL,DIMENSION(:),POINTER :: K206=>NULL() -REAL,DIMENSION(:),POINTER :: K207=>NULL() -REAL,DIMENSION(:),POINTER :: K208=>NULL() -REAL,DIMENSION(:),POINTER :: K209=>NULL() -REAL,DIMENSION(:),POINTER :: K210=>NULL() -REAL,DIMENSION(:),POINTER :: K211=>NULL() -REAL,DIMENSION(:),POINTER :: K212=>NULL() -REAL,DIMENSION(:),POINTER :: K213=>NULL() -REAL,DIMENSION(:),POINTER :: K214=>NULL() -REAL,DIMENSION(:),POINTER :: K215=>NULL() -REAL,DIMENSION(:),POINTER :: K216=>NULL() -REAL,DIMENSION(:),POINTER :: K217=>NULL() -REAL,DIMENSION(:),POINTER :: K218=>NULL() -REAL,DIMENSION(:),POINTER :: K219=>NULL() -REAL,DIMENSION(:),POINTER :: K220=>NULL() -REAL,DIMENSION(:),POINTER :: K221=>NULL() -REAL,DIMENSION(:),POINTER :: K222=>NULL() -REAL,DIMENSION(:),POINTER :: K223=>NULL() -REAL,DIMENSION(:),POINTER :: K224=>NULL() -REAL,DIMENSION(:),POINTER :: K225=>NULL() -REAL,DIMENSION(:),POINTER :: K226=>NULL() -REAL,DIMENSION(:),POINTER :: K227=>NULL() -REAL,DIMENSION(:),POINTER :: K228=>NULL() -REAL,DIMENSION(:),POINTER :: K229=>NULL() -REAL,DIMENSION(:),POINTER :: K230=>NULL() -REAL,DIMENSION(:),POINTER :: K231=>NULL() -REAL,DIMENSION(:),POINTER :: K232=>NULL() -REAL,DIMENSION(:),POINTER :: K233=>NULL() -REAL,DIMENSION(:),POINTER :: K234=>NULL() -REAL,DIMENSION(:),POINTER :: K235=>NULL() -REAL,DIMENSION(:),POINTER :: K236=>NULL() -REAL,DIMENSION(:),POINTER :: K237=>NULL() -REAL,DIMENSION(:),POINTER :: K238=>NULL() -REAL,DIMENSION(:),POINTER :: K239=>NULL() -REAL,DIMENSION(:),POINTER :: K240=>NULL() -REAL,DIMENSION(:),POINTER :: K241=>NULL() -REAL,DIMENSION(:),POINTER :: K242=>NULL() -REAL,DIMENSION(:),POINTER :: K243=>NULL() -REAL,DIMENSION(:),POINTER :: K244=>NULL() -REAL,DIMENSION(:),POINTER :: K245=>NULL() -REAL,DIMENSION(:),POINTER :: K246=>NULL() -REAL,DIMENSION(:),POINTER :: K247=>NULL() -REAL,DIMENSION(:),POINTER :: K248=>NULL() -REAL,DIMENSION(:),POINTER :: K249=>NULL() -REAL,DIMENSION(:),POINTER :: K250=>NULL() -REAL,DIMENSION(:),POINTER :: K251=>NULL() -REAL,DIMENSION(:),POINTER :: K252=>NULL() -REAL,DIMENSION(:),POINTER :: K253=>NULL() -REAL,DIMENSION(:),POINTER :: K254=>NULL() -REAL,DIMENSION(:),POINTER :: K255=>NULL() -REAL,DIMENSION(:),POINTER :: K256=>NULL() -REAL,DIMENSION(:),POINTER :: K257=>NULL() -REAL,DIMENSION(:),POINTER :: K258=>NULL() -REAL,DIMENSION(:),POINTER :: K259=>NULL() -REAL,DIMENSION(:),POINTER :: K260=>NULL() -REAL,DIMENSION(:),POINTER :: K261=>NULL() -REAL,DIMENSION(:),POINTER :: K262=>NULL() -REAL,DIMENSION(:),POINTER :: K263=>NULL() -REAL,DIMENSION(:),POINTER :: K264=>NULL() -REAL,DIMENSION(:),POINTER :: K265=>NULL() -REAL,DIMENSION(:),POINTER :: K266=>NULL() -REAL,DIMENSION(:),POINTER :: K267=>NULL() -REAL,DIMENSION(:),POINTER :: K268=>NULL() -REAL,DIMENSION(:),POINTER :: K269=>NULL() -REAL,DIMENSION(:),POINTER :: K270=>NULL() -REAL,DIMENSION(:),POINTER :: K271=>NULL() -REAL,DIMENSION(:),POINTER :: K272=>NULL() -REAL,DIMENSION(:),POINTER :: K273=>NULL() -REAL,DIMENSION(:),POINTER :: K274=>NULL() -REAL,DIMENSION(:),POINTER :: K275=>NULL() -REAL,DIMENSION(:),POINTER :: K276=>NULL() -REAL,DIMENSION(:),POINTER :: K277=>NULL() -REAL,DIMENSION(:),POINTER :: K278=>NULL() -REAL,DIMENSION(:),POINTER :: K279=>NULL() -REAL,DIMENSION(:),POINTER :: K280=>NULL() -REAL,DIMENSION(:),POINTER :: K281=>NULL() -REAL,DIMENSION(:),POINTER :: K282=>NULL() -REAL,DIMENSION(:),POINTER :: K283=>NULL() -REAL,DIMENSION(:),POINTER :: K284=>NULL() -REAL,DIMENSION(:),POINTER :: K285=>NULL() -REAL,DIMENSION(:),POINTER :: K286=>NULL() -REAL,DIMENSION(:),POINTER :: K287=>NULL() -REAL,DIMENSION(:),POINTER :: K288=>NULL() -REAL,DIMENSION(:),POINTER :: K289=>NULL() -REAL,DIMENSION(:),POINTER :: K290=>NULL() -REAL,DIMENSION(:),POINTER :: K291=>NULL() -REAL,DIMENSION(:),POINTER :: K292=>NULL() -REAL,DIMENSION(:),POINTER :: K293=>NULL() -REAL,DIMENSION(:),POINTER :: K294=>NULL() -REAL,DIMENSION(:),POINTER :: K295=>NULL() -REAL,DIMENSION(:),POINTER :: K296=>NULL() -REAL,DIMENSION(:),POINTER :: K297=>NULL() -REAL,DIMENSION(:),POINTER :: K298=>NULL() -REAL,DIMENSION(:),POINTER :: K299=>NULL() -REAL,DIMENSION(:),POINTER :: K300=>NULL() -REAL,DIMENSION(:),POINTER :: K301=>NULL() -REAL,DIMENSION(:),POINTER :: K302=>NULL() -REAL,DIMENSION(:),POINTER :: K303=>NULL() -REAL,DIMENSION(:),POINTER :: K304=>NULL() -REAL,DIMENSION(:),POINTER :: K305=>NULL() -REAL,DIMENSION(:),POINTER :: K306=>NULL() -REAL,DIMENSION(:),POINTER :: K307=>NULL() -REAL,DIMENSION(:),POINTER :: K308=>NULL() -REAL,DIMENSION(:),POINTER :: K309=>NULL() -REAL,DIMENSION(:),POINTER :: K310=>NULL() -REAL,DIMENSION(:),POINTER :: K311=>NULL() -REAL,DIMENSION(:),POINTER :: K312=>NULL() -REAL,DIMENSION(:),POINTER :: K313=>NULL() -REAL,DIMENSION(:),POINTER :: K314=>NULL() -REAL,DIMENSION(:),POINTER :: K315=>NULL() -REAL,DIMENSION(:),POINTER :: K316=>NULL() -REAL,DIMENSION(:),POINTER :: K317=>NULL() -REAL,DIMENSION(:),POINTER :: K318=>NULL() -REAL,DIMENSION(:),POINTER :: K319=>NULL() -REAL,DIMENSION(:),POINTER :: K320=>NULL() -REAL,DIMENSION(:),POINTER :: K321=>NULL() -REAL,DIMENSION(:),POINTER :: K322=>NULL() -REAL,DIMENSION(:),POINTER :: K323=>NULL() -REAL,DIMENSION(:),POINTER :: K324=>NULL() -REAL,DIMENSION(:),POINTER :: K325=>NULL() -REAL,DIMENSION(:),POINTER :: K326=>NULL() -REAL,DIMENSION(:),POINTER :: K327=>NULL() -REAL,DIMENSION(:),POINTER :: K328=>NULL() -REAL,DIMENSION(:),POINTER :: K329=>NULL() -REAL,DIMENSION(:),POINTER :: K330=>NULL() -REAL,DIMENSION(:),POINTER :: K331=>NULL() -REAL,DIMENSION(:),POINTER :: K332=>NULL() -REAL,DIMENSION(:),POINTER :: K333=>NULL() -REAL,DIMENSION(:),POINTER :: K334=>NULL() -REAL,DIMENSION(:),POINTER :: K335=>NULL() -REAL,DIMENSION(:),POINTER :: K337=>NULL() -REAL,DIMENSION(:),POINTER :: K338=>NULL() -REAL,DIMENSION(:),POINTER :: K339=>NULL() -REAL,DIMENSION(:),POINTER :: K340=>NULL() -REAL,DIMENSION(:),POINTER :: K341=>NULL() -REAL,DIMENSION(:),POINTER :: K342=>NULL() -REAL,DIMENSION(:),POINTER :: K343=>NULL() -REAL,DIMENSION(:),POINTER :: K344=>NULL() -REAL,DIMENSION(:),POINTER :: K345=>NULL() -REAL,DIMENSION(:),POINTER :: K346=>NULL() -REAL,DIMENSION(:),POINTER :: K347=>NULL() -REAL,DIMENSION(:),POINTER :: K348=>NULL() -REAL,DIMENSION(:),POINTER :: K349=>NULL() -REAL,DIMENSION(:),POINTER :: K350=>NULL() -REAL,DIMENSION(:),POINTER :: K351=>NULL() -REAL,DIMENSION(:),POINTER :: K352=>NULL() -REAL,DIMENSION(:),POINTER :: K353=>NULL() -REAL,DIMENSION(:),POINTER :: K354=>NULL() -REAL,DIMENSION(:),POINTER :: K355=>NULL() -REAL,DIMENSION(:),POINTER :: K356=>NULL() -REAL,DIMENSION(:),POINTER :: K357=>NULL() -REAL,DIMENSION(:),POINTER :: K358=>NULL() -REAL,DIMENSION(:),POINTER :: K359=>NULL() -REAL,DIMENSION(:),POINTER :: K360=>NULL() -REAL,DIMENSION(:),POINTER :: K361=>NULL() -REAL,DIMENSION(:),POINTER :: K362=>NULL() -REAL,DIMENSION(:),POINTER :: K363=>NULL() -REAL,DIMENSION(:),POINTER :: K364=>NULL() -REAL,DIMENSION(:),POINTER :: K365=>NULL() REAL,DIMENSION(:),POINTER :: KTC1=>NULL() REAL,DIMENSION(:),POINTER :: KTC2=>NULL() REAL,DIMENSION(:),POINTER :: KTC3=>NULL() @@ -3441,28 +1727,6 @@ REAL,DIMENSION(:),POINTER :: KTC37=>NULL() REAL,DIMENSION(:),POINTER :: KTC38=>NULL() REAL,DIMENSION(:),POINTER :: KTC39=>NULL() REAL,DIMENSION(:),POINTER :: KTC40=>NULL() -REAL,DIMENSION(:),POINTER :: KTC41=>NULL() -REAL,DIMENSION(:),POINTER :: KTC42=>NULL() -REAL,DIMENSION(:),POINTER :: KTC43=>NULL() -REAL,DIMENSION(:),POINTER :: KTC44=>NULL() -REAL,DIMENSION(:),POINTER :: KTC45=>NULL() -REAL,DIMENSION(:),POINTER :: KTC46=>NULL() -REAL,DIMENSION(:),POINTER :: KTC47=>NULL() -REAL,DIMENSION(:),POINTER :: KTC48=>NULL() -REAL,DIMENSION(:),POINTER :: KTC49=>NULL() -REAL,DIMENSION(:),POINTER :: KTC50=>NULL() -REAL,DIMENSION(:),POINTER :: KTC51=>NULL() -REAL,DIMENSION(:),POINTER :: KTC52=>NULL() -REAL,DIMENSION(:),POINTER :: KTC53=>NULL() -REAL,DIMENSION(:),POINTER :: KTC54=>NULL() -REAL,DIMENSION(:),POINTER :: KTC55=>NULL() -REAL,DIMENSION(:),POINTER :: KTC56=>NULL() -REAL,DIMENSION(:),POINTER :: KTC57=>NULL() -REAL,DIMENSION(:),POINTER :: KTC58=>NULL() -REAL,DIMENSION(:),POINTER :: KTC59=>NULL() -REAL,DIMENSION(:),POINTER :: KTC60=>NULL() -REAL,DIMENSION(:),POINTER :: KTC61=>NULL() -REAL,DIMENSION(:),POINTER :: KTC62=>NULL() REAL,DIMENSION(:),POINTER :: KTR1=>NULL() REAL,DIMENSION(:),POINTER :: KTR2=>NULL() REAL,DIMENSION(:),POINTER :: KTR3=>NULL() @@ -3503,28 +1767,6 @@ REAL,DIMENSION(:),POINTER :: KTR37=>NULL() REAL,DIMENSION(:),POINTER :: KTR38=>NULL() REAL,DIMENSION(:),POINTER :: KTR39=>NULL() REAL,DIMENSION(:),POINTER :: KTR40=>NULL() -REAL,DIMENSION(:),POINTER :: KTR41=>NULL() -REAL,DIMENSION(:),POINTER :: KTR42=>NULL() -REAL,DIMENSION(:),POINTER :: KTR43=>NULL() -REAL,DIMENSION(:),POINTER :: KTR44=>NULL() -REAL,DIMENSION(:),POINTER :: KTR45=>NULL() -REAL,DIMENSION(:),POINTER :: KTR46=>NULL() -REAL,DIMENSION(:),POINTER :: KTR47=>NULL() -REAL,DIMENSION(:),POINTER :: KTR48=>NULL() -REAL,DIMENSION(:),POINTER :: KTR49=>NULL() -REAL,DIMENSION(:),POINTER :: KTR50=>NULL() -REAL,DIMENSION(:),POINTER :: KTR51=>NULL() -REAL,DIMENSION(:),POINTER :: KTR52=>NULL() -REAL,DIMENSION(:),POINTER :: KTR53=>NULL() -REAL,DIMENSION(:),POINTER :: KTR54=>NULL() -REAL,DIMENSION(:),POINTER :: KTR55=>NULL() -REAL,DIMENSION(:),POINTER :: KTR56=>NULL() -REAL,DIMENSION(:),POINTER :: KTR57=>NULL() -REAL,DIMENSION(:),POINTER :: KTR58=>NULL() -REAL,DIMENSION(:),POINTER :: KTR59=>NULL() -REAL,DIMENSION(:),POINTER :: KTR60=>NULL() -REAL,DIMENSION(:),POINTER :: KTR61=>NULL() -REAL,DIMENSION(:),POINTER :: KTR62=>NULL() REAL,DIMENSION(:),POINTER :: KC1=>NULL() REAL,DIMENSION(:),POINTER :: KC2=>NULL() REAL,DIMENSION(:),POINTER :: KC3=>NULL() @@ -3555,22 +1797,6 @@ REAL,DIMENSION(:),POINTER :: KC27=>NULL() REAL,DIMENSION(:),POINTER :: KC28=>NULL() REAL,DIMENSION(:),POINTER :: KC29=>NULL() REAL,DIMENSION(:),POINTER :: KC30=>NULL() -REAL,DIMENSION(:),POINTER :: KC31=>NULL() -REAL,DIMENSION(:),POINTER :: KC32=>NULL() -REAL,DIMENSION(:),POINTER :: KC33=>NULL() -REAL,DIMENSION(:),POINTER :: KC34=>NULL() -REAL,DIMENSION(:),POINTER :: KC35=>NULL() -REAL,DIMENSION(:),POINTER :: KC36=>NULL() -REAL,DIMENSION(:),POINTER :: KC37=>NULL() -REAL,DIMENSION(:),POINTER :: KC38=>NULL() -REAL,DIMENSION(:),POINTER :: KC39=>NULL() -REAL,DIMENSION(:),POINTER :: KC40=>NULL() -REAL,DIMENSION(:),POINTER :: KC41=>NULL() -REAL,DIMENSION(:),POINTER :: KC42=>NULL() -REAL,DIMENSION(:),POINTER :: KC43=>NULL() -REAL,DIMENSION(:),POINTER :: KC44=>NULL() -REAL,DIMENSION(:),POINTER :: KC45=>NULL() -REAL,DIMENSION(:),POINTER :: KC46=>NULL() REAL,DIMENSION(:),POINTER :: KR1=>NULL() REAL,DIMENSION(:),POINTER :: KR2=>NULL() REAL,DIMENSION(:),POINTER :: KR3=>NULL() @@ -3601,22 +1827,6 @@ REAL,DIMENSION(:),POINTER :: KR27=>NULL() REAL,DIMENSION(:),POINTER :: KR28=>NULL() REAL,DIMENSION(:),POINTER :: KR29=>NULL() REAL,DIMENSION(:),POINTER :: KR30=>NULL() -REAL,DIMENSION(:),POINTER :: KR31=>NULL() -REAL,DIMENSION(:),POINTER :: KR32=>NULL() -REAL,DIMENSION(:),POINTER :: KR33=>NULL() -REAL,DIMENSION(:),POINTER :: KR34=>NULL() -REAL,DIMENSION(:),POINTER :: KR35=>NULL() -REAL,DIMENSION(:),POINTER :: KR36=>NULL() -REAL,DIMENSION(:),POINTER :: KR37=>NULL() -REAL,DIMENSION(:),POINTER :: KR38=>NULL() -REAL,DIMENSION(:),POINTER :: KR39=>NULL() -REAL,DIMENSION(:),POINTER :: KR40=>NULL() -REAL,DIMENSION(:),POINTER :: KR41=>NULL() -REAL,DIMENSION(:),POINTER :: KR42=>NULL() -REAL,DIMENSION(:),POINTER :: KR43=>NULL() -REAL,DIMENSION(:),POINTER :: KR44=>NULL() -REAL,DIMENSION(:),POINTER :: KR45=>NULL() -REAL,DIMENSION(:),POINTER :: KR46=>NULL() ! output channel (NOUT) and verbosity level (NVERB) INTEGER :: NOUT INTEGER,DIMENSION(:),POINTER :: NVERB=>NULL() @@ -3626,41 +1836,19 @@ INTEGER,DIMENSION(:),POINTER :: NVERB=>NULL() ! supplementary variables of the CCS that are to be placed into ! the TYPE definition of TPK (to be addressed e.g. as TPK%O2): ! -INTEGER,DIMENSION(:),POINTER :: MODELLEVEL, &! index of the model level (1 for box model) - LON, &! longitude of curtrent grid point (degree) - LAT ! latitude of curtrent grid point (degree) -INTEGER,DIMENSION(:),POINTER :: YEAR, MONTH, DAY ! starting date of experiment (~DTEXP) +INTEGER,DIMENSION(:),POINTER :: MODELLEVEL ! index of the model level (1 for box model) REAL,DIMENSION(:),POINTER :: T, &! temperature (K) - PRESSURE, &! pressure (atm) - M, &! air density (molec/cm3) - H2O, &! conc. of water molecules (molec/cm3) - CLOUDWATER, &! cloud water (kg/kg) - RAINWATER, &! rain water (kg/kg) - RHODREF, &! ref dry air density (kg/m3) - O2, N2, H2, &! conc. of oxigen, nitrogen, hydrogen (molec/cm3) - CH4, CO2, &! conc. of methane, carbon dioxide (molec/cm3) - O, OSD, &! (molec/cm3) at equilibrium (fast species) - RO22, RO23, RO24, &! continue - RO26, RO27, RO28, RO29, &! continue - RO210, RO211, RO212, &! continue - RO213, RO214, RO215, &! continue - RO216, RO217, RO218, &! continue - RO219, RO220, RO221, &! continue - RO222, RO223, RO224, &! continue - RO225, RO226, RO227, &! continue - RO228, RO229, RO230, &! continue - RO231, RO232, RO233, &! continue - RO234, RO235, RO236, &! continue - RO237, RO238, RO239, &! continue - RO240, RO241, RO242, &! continue - RO243, RO244, RO245, &! continue - RO246, RO247, RO248, &! continue - RO249, RO250, RO251, &! continue - RO252, RO253, RO254, &! continue - RO255, RO256, RO257, &! continue - RO258, RAD1, RAD2, &! continue - RAD3, RAD4, RAD5, &! continue - RAD6, RAD7, RAD8 + PRESSURE, &! pressure (atm) + M, &! air density (molec/cm3) + H2O, &! conc. of water molecules (molec/cm3) + CLOUDWATER, &! cloud water (kg/kg) + RAINWATER, &! rain water (kg/kg) + RHODREF, &! ref dry air density (kg/m3) + O2, N2, H2, &! conc. of oxigen nitrogen, hydrogen (molec/cm3) + OH, O1D, O3P, &! (molec/cm3) at equilibrium (fast species) + LON, &! longitude of curtrent grid point (degree) + LAT ! latitude of curtrent grid point (degree) +INTEGER,DIMENSION(:),POINTER :: YEAR, MONTH, DAY ! starting date of experiment (~DTEXP) REAL,DIMENSION(:),POINTER :: LWC, &! cloud liquid water content (vol/vol) MOL2MOLECCLOUD, &! conversion factor mole/L to molec/cm3 in cloud RADC, &! mean radius of cloud droplet (µm) @@ -3669,23 +1857,9 @@ REAL,DIMENSION(:),POINTER :: LWC, &! cloud liquid water content (v MOL2MOLECRAIN, &! conversion factor mole/L to molec/cm3 in rain RADR, &! mean radius of rain drops (µm) PHR, &! pH value of rain water + CO2, &! conc. of CO2 (molec/cm3) RCH, &! perfect gases constant W_O2 ! conc. of O2 in aqueous phase at equilibrium (M) -REAL,DIMENSION(:),POINTER :: CF1, CF2, CF3, CF4, CF5,& ! stochiometric coef. - CF6, CF7, CF8, CF9, CF10,& - CF11, CF12, CF13, CF14, CF15,& - CF16, CF17, CF18, CF19, CF20,& - CF21, CF22, CF23, CF24, CF25,& - CF26, CF27, CF28, CF29, CF30,& - CF31, CF32, CF33, CF34, CF35,& - CF36, CF37, CF38, CF39, CF40,& - CF41, CF42, CF43, CF44, CF45,& - CF46, CF47, CF48, CF49, CFA1,& - CFA2, CFA3, CFA4, CFA5, CFA6,& - CFA7, CFA8, CFA9, CFA10, CFA11,& - CFA12, CFA13, CFA14, CFA15, CFA16,& - CFA17, CFA18, CFA19, CFA20, CFA21,& - CFA22, CFA23, CFA24 ! ! /END_MODULE/ END TYPE CCSTYPE @@ -3702,167 +1876,97 @@ END TYPE CCSTYPE TYPE(CCSTYPE), DIMENSION(8), TARGET, SAVE :: TACCS ! 8 models ! ! list of chemical species indices -INTEGER, PARAMETER :: JP_NO = 1 -INTEGER, PARAMETER :: JP_NO2 = 2 -INTEGER, PARAMETER :: JP_O3 = 3 -INTEGER, PARAMETER :: JP_HONO = 4 -INTEGER, PARAMETER :: JP_HNO3 = 5 -INTEGER, PARAMETER :: JP_HNO4 = 6 -INTEGER, PARAMETER :: JP_N2O5 = 7 -INTEGER, PARAMETER :: JP_NO3 = 8 -INTEGER, PARAMETER :: JP_NH3 = 9 -INTEGER, PARAMETER :: JP_HO2 = 10 -INTEGER, PARAMETER :: JP_CO = 11 -INTEGER, PARAMETER :: JP_H2O2 = 12 -INTEGER, PARAMETER :: JP_SO2 = 13 -INTEGER, PARAMETER :: JP_H2SO4 = 14 -INTEGER, PARAMETER :: JP_OH = 15 -INTEGER, PARAMETER :: JP_ETHE = 16 -INTEGER, PARAMETER :: JP_OLEL = 17 -INTEGER, PARAMETER :: JP_OLEH = 18 -INTEGER, PARAMETER :: JP_ALKL = 19 -INTEGER, PARAMETER :: JP_ALKM = 20 -INTEGER, PARAMETER :: JP_ALKH = 21 -INTEGER, PARAMETER :: JP_AROH = 22 -INTEGER, PARAMETER :: JP_AROL = 23 -INTEGER, PARAMETER :: JP_AROO = 24 -INTEGER, PARAMETER :: JP_ARAL = 25 -INTEGER, PARAMETER :: JP_ARAC = 26 -INTEGER, PARAMETER :: JP_PAH = 27 -INTEGER, PARAMETER :: JP_HCHO = 28 -INTEGER, PARAMETER :: JP_ALD2 = 29 -INTEGER, PARAMETER :: JP_KETL = 30 -INTEGER, PARAMETER :: JP_KETH = 31 -INTEGER, PARAMETER :: JP_MEOH = 32 -INTEGER, PARAMETER :: JP_ETOH = 33 -INTEGER, PARAMETER :: JP_ALCH = 34 -INTEGER, PARAMETER :: JP_ISOP = 35 -INTEGER, PARAMETER :: JP_BIOL = 36 -INTEGER, PARAMETER :: JP_BIOH = 37 -INTEGER, PARAMETER :: JP_MTBE = 38 -INTEGER, PARAMETER :: JP_MVK = 39 -INTEGER, PARAMETER :: JP_MCR = 40 -INTEGER, PARAMETER :: JP_MGLY = 41 -INTEGER, PARAMETER :: JP_GLY = 42 -INTEGER, PARAMETER :: JP_ORA1 = 43 -INTEGER, PARAMETER :: JP_ORA2 = 44 -INTEGER, PARAMETER :: JP_ACID = 45 -INTEGER, PARAMETER :: JP_UR28 = 46 -INTEGER, PARAMETER :: JP_UR21 = 47 -INTEGER, PARAMETER :: JP_URG2 = 48 -INTEGER, PARAMETER :: JP_UR26 = 49 -INTEGER, PARAMETER :: JP_RPG2 = 50 -INTEGER, PARAMETER :: JP_RP18 = 51 -INTEGER, PARAMETER :: JP_RPG3 = 52 -INTEGER, PARAMETER :: JP_URG4 = 53 -INTEGER, PARAMETER :: JP_UR8 = 54 -INTEGER, PARAMETER :: JP_UR17 = 55 -INTEGER, PARAMETER :: JP_UR7 = 56 -INTEGER, PARAMETER :: JP_RPR3 = 57 -INTEGER, PARAMETER :: JP_URG6 = 58 -INTEGER, PARAMETER :: JP_UR22 = 59 -INTEGER, PARAMETER :: JP_URG7 = 60 -INTEGER, PARAMETER :: JP_RPR4 = 61 -INTEGER, PARAMETER :: JP_RPR7 = 62 -INTEGER, PARAMETER :: JP_RPG7 = 63 -INTEGER, PARAMETER :: JP_URG8 = 64 -INTEGER, PARAMETER :: JP_UR19 = 65 -INTEGER, PARAMETER :: JP_URG9 = 66 -INTEGER, PARAMETER :: JP_AP7 = 67 -INTEGER, PARAMETER :: JP_URG10 = 68 -INTEGER, PARAMETER :: JP_RPR1 = 69 -INTEGER, PARAMETER :: JP_RPR5 = 70 -INTEGER, PARAMETER :: JP_RPR8 = 71 -INTEGER, PARAMETER :: JP_RP10 = 72 -INTEGER, PARAMETER :: JP_RP11 = 73 -INTEGER, PARAMETER :: JP_RP16 = 74 -INTEGER, PARAMETER :: JP_RPRL = 75 -INTEGER, PARAMETER :: JP_APAN = 76 -INTEGER, PARAMETER :: JP_PAN1 = 77 -INTEGER, PARAMETER :: JP_PAN2 = 78 -INTEGER, PARAMETER :: JP_PAN3 = 79 -INTEGER, PARAMETER :: JP_PAN4 = 80 -INTEGER, PARAMETER :: JP_PAN6 = 81 -INTEGER, PARAMETER :: JP_PAN7 = 82 -INTEGER, PARAMETER :: JP_PAN8 = 83 -INTEGER, PARAMETER :: JP_PN10 = 84 -INTEGER, PARAMETER :: JP_RO2T = 85 -INTEGER, PARAMETER :: JP_RO21 = 86 -INTEGER, PARAMETER :: JP_RO25 = 87 -INTEGER, PARAMETER :: JP_WC_O3 = 88 -INTEGER, PARAMETER :: JP_WC_H2O2 = 89 -INTEGER, PARAMETER :: JP_WC_NO = 90 -INTEGER, PARAMETER :: JP_WC_NO2 = 91 -INTEGER, PARAMETER :: JP_WC_NO3 = 92 -INTEGER, PARAMETER :: JP_WC_N2O5 = 93 -INTEGER, PARAMETER :: JP_WC_HONO = 94 -INTEGER, PARAMETER :: JP_WC_HNO3 = 95 -INTEGER, PARAMETER :: JP_WC_HNO4 = 96 -INTEGER, PARAMETER :: JP_WC_NH3 = 97 -INTEGER, PARAMETER :: JP_WC_OH = 98 -INTEGER, PARAMETER :: JP_WC_HO2 = 99 -INTEGER, PARAMETER :: JP_WC_CO2 = 100 -INTEGER, PARAMETER :: JP_WC_SO2 = 101 -INTEGER, PARAMETER :: JP_WC_H2SO4 = 102 -INTEGER, PARAMETER :: JP_WC_RO21 = 103 -INTEGER, PARAMETER :: JP_WC_RO25 = 104 -INTEGER, PARAMETER :: JP_WC_MEOH = 105 -INTEGER, PARAMETER :: JP_WC_ETOH = 106 -INTEGER, PARAMETER :: JP_WC_ALCH = 107 -INTEGER, PARAMETER :: JP_WC_HCHO = 108 -INTEGER, PARAMETER :: JP_WC_ALD2 = 109 -INTEGER, PARAMETER :: JP_WC_GLY = 110 -INTEGER, PARAMETER :: JP_WC_MGLY = 111 -INTEGER, PARAMETER :: JP_WC_KETL = 112 -INTEGER, PARAMETER :: JP_WC_ORA1 = 113 -INTEGER, PARAMETER :: JP_WC_ORA2 = 114 -INTEGER, PARAMETER :: JP_WC_ACID = 115 -INTEGER, PARAMETER :: JP_WC_RP16 = 116 -INTEGER, PARAMETER :: JP_WC_UR21 = 117 -INTEGER, PARAMETER :: JP_WC_UR28 = 118 -INTEGER, PARAMETER :: JP_WC_ACID2 = 119 -INTEGER, PARAMETER :: JP_WC_ASO3 = 120 -INTEGER, PARAMETER :: JP_WC_ASO4 = 121 -INTEGER, PARAMETER :: JP_WC_ASO5 = 122 -INTEGER, PARAMETER :: JP_WC_AHSO5 = 123 -INTEGER, PARAMETER :: JP_WC_AHMS = 124 -INTEGER, PARAMETER :: JP_WR_O3 = 125 -INTEGER, PARAMETER :: JP_WR_H2O2 = 126 -INTEGER, PARAMETER :: JP_WR_NO = 127 -INTEGER, PARAMETER :: JP_WR_NO2 = 128 -INTEGER, PARAMETER :: JP_WR_NO3 = 129 -INTEGER, PARAMETER :: JP_WR_N2O5 = 130 -INTEGER, PARAMETER :: JP_WR_HONO = 131 -INTEGER, PARAMETER :: JP_WR_HNO3 = 132 -INTEGER, PARAMETER :: JP_WR_HNO4 = 133 -INTEGER, PARAMETER :: JP_WR_NH3 = 134 -INTEGER, PARAMETER :: JP_WR_OH = 135 -INTEGER, PARAMETER :: JP_WR_HO2 = 136 -INTEGER, PARAMETER :: JP_WR_CO2 = 137 -INTEGER, PARAMETER :: JP_WR_SO2 = 138 -INTEGER, PARAMETER :: JP_WR_H2SO4 = 139 -INTEGER, PARAMETER :: JP_WR_RO21 = 140 -INTEGER, PARAMETER :: JP_WR_RO25 = 141 -INTEGER, PARAMETER :: JP_WR_MEOH = 142 -INTEGER, PARAMETER :: JP_WR_ETOH = 143 -INTEGER, PARAMETER :: JP_WR_ALCH = 144 -INTEGER, PARAMETER :: JP_WR_HCHO = 145 -INTEGER, PARAMETER :: JP_WR_ALD2 = 146 -INTEGER, PARAMETER :: JP_WR_GLY = 147 -INTEGER, PARAMETER :: JP_WR_MGLY = 148 -INTEGER, PARAMETER :: JP_WR_KETL = 149 -INTEGER, PARAMETER :: JP_WR_ORA1 = 150 -INTEGER, PARAMETER :: JP_WR_ORA2 = 151 -INTEGER, PARAMETER :: JP_WR_ACID = 152 -INTEGER, PARAMETER :: JP_WR_RP16 = 153 -INTEGER, PARAMETER :: JP_WR_UR21 = 154 -INTEGER, PARAMETER :: JP_WR_UR28 = 155 -INTEGER, PARAMETER :: JP_WR_ACID2 = 156 -INTEGER, PARAMETER :: JP_WR_ASO3 = 157 -INTEGER, PARAMETER :: JP_WR_ASO4 = 158 -INTEGER, PARAMETER :: JP_WR_ASO5 = 159 -INTEGER, PARAMETER :: JP_WR_AHSO5 = 160 -INTEGER, PARAMETER :: JP_WR_AHMS = 161 +INTEGER, PARAMETER :: JP_O3 = 1 +INTEGER, PARAMETER :: JP_H2O2 = 2 +INTEGER, PARAMETER :: JP_NO = 3 +INTEGER, PARAMETER :: JP_NO2 = 4 +INTEGER, PARAMETER :: JP_NO3 = 5 +INTEGER, PARAMETER :: JP_N2O5 = 6 +INTEGER, PARAMETER :: JP_HONO = 7 +INTEGER, PARAMETER :: JP_HNO3 = 8 +INTEGER, PARAMETER :: JP_HNO4 = 9 +INTEGER, PARAMETER :: JP_NH3 = 10 +INTEGER, PARAMETER :: JP_SO2 = 11 +INTEGER, PARAMETER :: JP_SULF = 12 +INTEGER, PARAMETER :: JP_CO = 13 +INTEGER, PARAMETER :: JP_OH = 14 +INTEGER, PARAMETER :: JP_HO2 = 15 +INTEGER, PARAMETER :: JP_CH4 = 16 +INTEGER, PARAMETER :: JP_ETH = 17 +INTEGER, PARAMETER :: JP_ALKA = 18 +INTEGER, PARAMETER :: JP_ALKE = 19 +INTEGER, PARAMETER :: JP_BIO = 20 +INTEGER, PARAMETER :: JP_ARO = 21 +INTEGER, PARAMETER :: JP_HCHO = 22 +INTEGER, PARAMETER :: JP_ALD = 23 +INTEGER, PARAMETER :: JP_KET = 24 +INTEGER, PARAMETER :: JP_CARBO = 25 +INTEGER, PARAMETER :: JP_ONIT = 26 +INTEGER, PARAMETER :: JP_PAN = 27 +INTEGER, PARAMETER :: JP_OP1 = 28 +INTEGER, PARAMETER :: JP_OP2 = 29 +INTEGER, PARAMETER :: JP_ORA1 = 30 +INTEGER, PARAMETER :: JP_ORA2 = 31 +INTEGER, PARAMETER :: JP_MO2 = 32 +INTEGER, PARAMETER :: JP_ALKAP = 33 +INTEGER, PARAMETER :: JP_ALKEP = 34 +INTEGER, PARAMETER :: JP_BIOP = 35 +INTEGER, PARAMETER :: JP_PHO = 36 +INTEGER, PARAMETER :: JP_ADD = 37 +INTEGER, PARAMETER :: JP_AROP = 38 +INTEGER, PARAMETER :: JP_CARBOP = 39 +INTEGER, PARAMETER :: JP_OLN = 40 +INTEGER, PARAMETER :: JP_XO2 = 41 +INTEGER, PARAMETER :: JP_WC_O3 = 42 +INTEGER, PARAMETER :: JP_WC_H2O2 = 43 +INTEGER, PARAMETER :: JP_WC_NO = 44 +INTEGER, PARAMETER :: JP_WC_NO2 = 45 +INTEGER, PARAMETER :: JP_WC_NO3 = 46 +INTEGER, PARAMETER :: JP_WC_N2O5 = 47 +INTEGER, PARAMETER :: JP_WC_HONO = 48 +INTEGER, PARAMETER :: JP_WC_HNO3 = 49 +INTEGER, PARAMETER :: JP_WC_HNO4 = 50 +INTEGER, PARAMETER :: JP_WC_NH3 = 51 +INTEGER, PARAMETER :: JP_WC_OH = 52 +INTEGER, PARAMETER :: JP_WC_HO2 = 53 +INTEGER, PARAMETER :: JP_WC_CO2 = 54 +INTEGER, PARAMETER :: JP_WC_SO2 = 55 +INTEGER, PARAMETER :: JP_WC_SULF = 56 +INTEGER, PARAMETER :: JP_WC_HCHO = 57 +INTEGER, PARAMETER :: JP_WC_ORA1 = 58 +INTEGER, PARAMETER :: JP_WC_ORA2 = 59 +INTEGER, PARAMETER :: JP_WC_MO2 = 60 +INTEGER, PARAMETER :: JP_WC_OP1 = 61 +INTEGER, PARAMETER :: JP_WC_ASO3 = 62 +INTEGER, PARAMETER :: JP_WC_ASO4 = 63 +INTEGER, PARAMETER :: JP_WC_ASO5 = 64 +INTEGER, PARAMETER :: JP_WC_AHSO5 = 65 +INTEGER, PARAMETER :: JP_WC_AHMS = 66 +INTEGER, PARAMETER :: JP_WR_O3 = 67 +INTEGER, PARAMETER :: JP_WR_H2O2 = 68 +INTEGER, PARAMETER :: JP_WR_NO = 69 +INTEGER, PARAMETER :: JP_WR_NO2 = 70 +INTEGER, PARAMETER :: JP_WR_NO3 = 71 +INTEGER, PARAMETER :: JP_WR_N2O5 = 72 +INTEGER, PARAMETER :: JP_WR_HONO = 73 +INTEGER, PARAMETER :: JP_WR_HNO3 = 74 +INTEGER, PARAMETER :: JP_WR_HNO4 = 75 +INTEGER, PARAMETER :: JP_WR_NH3 = 76 +INTEGER, PARAMETER :: JP_WR_OH = 77 +INTEGER, PARAMETER :: JP_WR_HO2 = 78 +INTEGER, PARAMETER :: JP_WR_CO2 = 79 +INTEGER, PARAMETER :: JP_WR_SO2 = 80 +INTEGER, PARAMETER :: JP_WR_SULF = 81 +INTEGER, PARAMETER :: JP_WR_HCHO = 82 +INTEGER, PARAMETER :: JP_WR_ORA1 = 83 +INTEGER, PARAMETER :: JP_WR_ORA2 = 84 +INTEGER, PARAMETER :: JP_WR_MO2 = 85 +INTEGER, PARAMETER :: JP_WR_OP1 = 86 +INTEGER, PARAMETER :: JP_WR_ASO3 = 87 +INTEGER, PARAMETER :: JP_WR_ASO4 = 88 +INTEGER, PARAMETER :: JP_WR_ASO5 = 89 +INTEGER, PARAMETER :: JP_WR_AHSO5 = 90 +INTEGER, PARAMETER :: JP_WR_AHMS = 91 ! END MODULE MODD_CH_M9_SCHEME ! @@ -3951,8 +2055,7 @@ ALLOCATE(TACCS(KMI)%K014(KVECNPT)) ALLOCATE(TACCS(KMI)%K015(KVECNPT)) ALLOCATE(TACCS(KMI)%K016(KVECNPT)) ALLOCATE(TACCS(KMI)%K017(KVECNPT)) -ALLOCATE(TACCS(KMI)%K018A(KVECNPT)) -ALLOCATE(TACCS(KMI)%K018B(KVECNPT)) +ALLOCATE(TACCS(KMI)%K018(KVECNPT)) ALLOCATE(TACCS(KMI)%K019(KVECNPT)) ALLOCATE(TACCS(KMI)%K020(KVECNPT)) ALLOCATE(TACCS(KMI)%K021(KVECNPT)) @@ -4034,9 +2137,9 @@ ALLOCATE(TACCS(KMI)%K096(KVECNPT)) ALLOCATE(TACCS(KMI)%K097(KVECNPT)) ALLOCATE(TACCS(KMI)%K098(KVECNPT)) ALLOCATE(TACCS(KMI)%K099(KVECNPT)) -ALLOCATE(TACCS(KMI)%K100(KVECNPT)) -ALLOCATE(TACCS(KMI)%K101(KVECNPT)) -ALLOCATE(TACCS(KMI)%K102(KVECNPT)) +ALLOCATE(TACCS(KMI)%K0100(KVECNPT)) +ALLOCATE(TACCS(KMI)%K0101(KVECNPT)) +ALLOCATE(TACCS(KMI)%K0102(KVECNPT)) ALLOCATE(TACCS(KMI)%K103(KVECNPT)) ALLOCATE(TACCS(KMI)%K104(KVECNPT)) ALLOCATE(TACCS(KMI)%K105(KVECNPT)) @@ -4067,238 +2170,6 @@ ALLOCATE(TACCS(KMI)%K129(KVECNPT)) ALLOCATE(TACCS(KMI)%K130(KVECNPT)) ALLOCATE(TACCS(KMI)%K131(KVECNPT)) ALLOCATE(TACCS(KMI)%K132(KVECNPT)) -ALLOCATE(TACCS(KMI)%K133(KVECNPT)) -ALLOCATE(TACCS(KMI)%K134(KVECNPT)) -ALLOCATE(TACCS(KMI)%K135(KVECNPT)) -ALLOCATE(TACCS(KMI)%K136(KVECNPT)) -ALLOCATE(TACCS(KMI)%K137(KVECNPT)) -ALLOCATE(TACCS(KMI)%K138(KVECNPT)) -ALLOCATE(TACCS(KMI)%K139(KVECNPT)) -ALLOCATE(TACCS(KMI)%K140(KVECNPT)) -ALLOCATE(TACCS(KMI)%K141(KVECNPT)) -ALLOCATE(TACCS(KMI)%K142(KVECNPT)) -ALLOCATE(TACCS(KMI)%K143(KVECNPT)) -ALLOCATE(TACCS(KMI)%K144(KVECNPT)) -ALLOCATE(TACCS(KMI)%K145(KVECNPT)) -ALLOCATE(TACCS(KMI)%K146(KVECNPT)) -ALLOCATE(TACCS(KMI)%K147(KVECNPT)) -ALLOCATE(TACCS(KMI)%K148(KVECNPT)) -ALLOCATE(TACCS(KMI)%K149(KVECNPT)) -ALLOCATE(TACCS(KMI)%K150(KVECNPT)) -ALLOCATE(TACCS(KMI)%K151(KVECNPT)) -ALLOCATE(TACCS(KMI)%K152(KVECNPT)) -ALLOCATE(TACCS(KMI)%K153(KVECNPT)) -ALLOCATE(TACCS(KMI)%K154(KVECNPT)) -ALLOCATE(TACCS(KMI)%K155(KVECNPT)) -ALLOCATE(TACCS(KMI)%K156(KVECNPT)) -ALLOCATE(TACCS(KMI)%K157(KVECNPT)) -ALLOCATE(TACCS(KMI)%K158(KVECNPT)) -ALLOCATE(TACCS(KMI)%K159(KVECNPT)) -ALLOCATE(TACCS(KMI)%K160(KVECNPT)) -ALLOCATE(TACCS(KMI)%K161(KVECNPT)) -ALLOCATE(TACCS(KMI)%K162(KVECNPT)) -ALLOCATE(TACCS(KMI)%K163(KVECNPT)) -ALLOCATE(TACCS(KMI)%K164(KVECNPT)) -ALLOCATE(TACCS(KMI)%K165(KVECNPT)) -ALLOCATE(TACCS(KMI)%K166(KVECNPT)) -ALLOCATE(TACCS(KMI)%K167(KVECNPT)) -ALLOCATE(TACCS(KMI)%K168(KVECNPT)) -ALLOCATE(TACCS(KMI)%K169(KVECNPT)) -ALLOCATE(TACCS(KMI)%K170(KVECNPT)) -ALLOCATE(TACCS(KMI)%K171(KVECNPT)) -ALLOCATE(TACCS(KMI)%K172(KVECNPT)) -ALLOCATE(TACCS(KMI)%K173(KVECNPT)) -ALLOCATE(TACCS(KMI)%K174(KVECNPT)) -ALLOCATE(TACCS(KMI)%K175(KVECNPT)) -ALLOCATE(TACCS(KMI)%K176(KVECNPT)) -ALLOCATE(TACCS(KMI)%K177(KVECNPT)) -ALLOCATE(TACCS(KMI)%K178(KVECNPT)) -ALLOCATE(TACCS(KMI)%K179(KVECNPT)) -ALLOCATE(TACCS(KMI)%K180(KVECNPT)) -ALLOCATE(TACCS(KMI)%K181(KVECNPT)) -ALLOCATE(TACCS(KMI)%K182(KVECNPT)) -ALLOCATE(TACCS(KMI)%K183(KVECNPT)) -ALLOCATE(TACCS(KMI)%K184(KVECNPT)) -ALLOCATE(TACCS(KMI)%K185(KVECNPT)) -ALLOCATE(TACCS(KMI)%K186(KVECNPT)) -ALLOCATE(TACCS(KMI)%K187(KVECNPT)) -ALLOCATE(TACCS(KMI)%K188(KVECNPT)) -ALLOCATE(TACCS(KMI)%K189(KVECNPT)) -ALLOCATE(TACCS(KMI)%K190(KVECNPT)) -ALLOCATE(TACCS(KMI)%K191(KVECNPT)) -ALLOCATE(TACCS(KMI)%K192(KVECNPT)) -ALLOCATE(TACCS(KMI)%K193(KVECNPT)) -ALLOCATE(TACCS(KMI)%K194(KVECNPT)) -ALLOCATE(TACCS(KMI)%K195(KVECNPT)) -ALLOCATE(TACCS(KMI)%K196(KVECNPT)) -ALLOCATE(TACCS(KMI)%K197(KVECNPT)) -ALLOCATE(TACCS(KMI)%K198(KVECNPT)) -ALLOCATE(TACCS(KMI)%K199(KVECNPT)) -ALLOCATE(TACCS(KMI)%K200(KVECNPT)) -ALLOCATE(TACCS(KMI)%K201(KVECNPT)) -ALLOCATE(TACCS(KMI)%K202(KVECNPT)) -ALLOCATE(TACCS(KMI)%K203(KVECNPT)) -ALLOCATE(TACCS(KMI)%K204(KVECNPT)) -ALLOCATE(TACCS(KMI)%K205(KVECNPT)) -ALLOCATE(TACCS(KMI)%K206(KVECNPT)) -ALLOCATE(TACCS(KMI)%K207(KVECNPT)) -ALLOCATE(TACCS(KMI)%K208(KVECNPT)) -ALLOCATE(TACCS(KMI)%K209(KVECNPT)) -ALLOCATE(TACCS(KMI)%K210(KVECNPT)) -ALLOCATE(TACCS(KMI)%K211(KVECNPT)) -ALLOCATE(TACCS(KMI)%K212(KVECNPT)) -ALLOCATE(TACCS(KMI)%K213(KVECNPT)) -ALLOCATE(TACCS(KMI)%K214(KVECNPT)) -ALLOCATE(TACCS(KMI)%K215(KVECNPT)) -ALLOCATE(TACCS(KMI)%K216(KVECNPT)) -ALLOCATE(TACCS(KMI)%K217(KVECNPT)) -ALLOCATE(TACCS(KMI)%K218(KVECNPT)) -ALLOCATE(TACCS(KMI)%K219(KVECNPT)) -ALLOCATE(TACCS(KMI)%K220(KVECNPT)) -ALLOCATE(TACCS(KMI)%K221(KVECNPT)) -ALLOCATE(TACCS(KMI)%K222(KVECNPT)) -ALLOCATE(TACCS(KMI)%K223(KVECNPT)) -ALLOCATE(TACCS(KMI)%K224(KVECNPT)) -ALLOCATE(TACCS(KMI)%K225(KVECNPT)) -ALLOCATE(TACCS(KMI)%K226(KVECNPT)) -ALLOCATE(TACCS(KMI)%K227(KVECNPT)) -ALLOCATE(TACCS(KMI)%K228(KVECNPT)) -ALLOCATE(TACCS(KMI)%K229(KVECNPT)) -ALLOCATE(TACCS(KMI)%K230(KVECNPT)) -ALLOCATE(TACCS(KMI)%K231(KVECNPT)) -ALLOCATE(TACCS(KMI)%K232(KVECNPT)) -ALLOCATE(TACCS(KMI)%K233(KVECNPT)) -ALLOCATE(TACCS(KMI)%K234(KVECNPT)) -ALLOCATE(TACCS(KMI)%K235(KVECNPT)) -ALLOCATE(TACCS(KMI)%K236(KVECNPT)) -ALLOCATE(TACCS(KMI)%K237(KVECNPT)) -ALLOCATE(TACCS(KMI)%K238(KVECNPT)) -ALLOCATE(TACCS(KMI)%K239(KVECNPT)) -ALLOCATE(TACCS(KMI)%K240(KVECNPT)) -ALLOCATE(TACCS(KMI)%K241(KVECNPT)) -ALLOCATE(TACCS(KMI)%K242(KVECNPT)) -ALLOCATE(TACCS(KMI)%K243(KVECNPT)) -ALLOCATE(TACCS(KMI)%K244(KVECNPT)) -ALLOCATE(TACCS(KMI)%K245(KVECNPT)) -ALLOCATE(TACCS(KMI)%K246(KVECNPT)) -ALLOCATE(TACCS(KMI)%K247(KVECNPT)) -ALLOCATE(TACCS(KMI)%K248(KVECNPT)) -ALLOCATE(TACCS(KMI)%K249(KVECNPT)) -ALLOCATE(TACCS(KMI)%K250(KVECNPT)) -ALLOCATE(TACCS(KMI)%K251(KVECNPT)) -ALLOCATE(TACCS(KMI)%K252(KVECNPT)) -ALLOCATE(TACCS(KMI)%K253(KVECNPT)) -ALLOCATE(TACCS(KMI)%K254(KVECNPT)) -ALLOCATE(TACCS(KMI)%K255(KVECNPT)) -ALLOCATE(TACCS(KMI)%K256(KVECNPT)) -ALLOCATE(TACCS(KMI)%K257(KVECNPT)) -ALLOCATE(TACCS(KMI)%K258(KVECNPT)) -ALLOCATE(TACCS(KMI)%K259(KVECNPT)) -ALLOCATE(TACCS(KMI)%K260(KVECNPT)) -ALLOCATE(TACCS(KMI)%K261(KVECNPT)) -ALLOCATE(TACCS(KMI)%K262(KVECNPT)) -ALLOCATE(TACCS(KMI)%K263(KVECNPT)) -ALLOCATE(TACCS(KMI)%K264(KVECNPT)) -ALLOCATE(TACCS(KMI)%K265(KVECNPT)) -ALLOCATE(TACCS(KMI)%K266(KVECNPT)) -ALLOCATE(TACCS(KMI)%K267(KVECNPT)) -ALLOCATE(TACCS(KMI)%K268(KVECNPT)) -ALLOCATE(TACCS(KMI)%K269(KVECNPT)) -ALLOCATE(TACCS(KMI)%K270(KVECNPT)) -ALLOCATE(TACCS(KMI)%K271(KVECNPT)) -ALLOCATE(TACCS(KMI)%K272(KVECNPT)) -ALLOCATE(TACCS(KMI)%K273(KVECNPT)) -ALLOCATE(TACCS(KMI)%K274(KVECNPT)) -ALLOCATE(TACCS(KMI)%K275(KVECNPT)) -ALLOCATE(TACCS(KMI)%K276(KVECNPT)) -ALLOCATE(TACCS(KMI)%K277(KVECNPT)) -ALLOCATE(TACCS(KMI)%K278(KVECNPT)) -ALLOCATE(TACCS(KMI)%K279(KVECNPT)) -ALLOCATE(TACCS(KMI)%K280(KVECNPT)) -ALLOCATE(TACCS(KMI)%K281(KVECNPT)) -ALLOCATE(TACCS(KMI)%K282(KVECNPT)) -ALLOCATE(TACCS(KMI)%K283(KVECNPT)) -ALLOCATE(TACCS(KMI)%K284(KVECNPT)) -ALLOCATE(TACCS(KMI)%K285(KVECNPT)) -ALLOCATE(TACCS(KMI)%K286(KVECNPT)) -ALLOCATE(TACCS(KMI)%K287(KVECNPT)) -ALLOCATE(TACCS(KMI)%K288(KVECNPT)) -ALLOCATE(TACCS(KMI)%K289(KVECNPT)) -ALLOCATE(TACCS(KMI)%K290(KVECNPT)) -ALLOCATE(TACCS(KMI)%K291(KVECNPT)) -ALLOCATE(TACCS(KMI)%K292(KVECNPT)) -ALLOCATE(TACCS(KMI)%K293(KVECNPT)) -ALLOCATE(TACCS(KMI)%K294(KVECNPT)) -ALLOCATE(TACCS(KMI)%K295(KVECNPT)) -ALLOCATE(TACCS(KMI)%K296(KVECNPT)) -ALLOCATE(TACCS(KMI)%K297(KVECNPT)) -ALLOCATE(TACCS(KMI)%K298(KVECNPT)) -ALLOCATE(TACCS(KMI)%K299(KVECNPT)) -ALLOCATE(TACCS(KMI)%K300(KVECNPT)) -ALLOCATE(TACCS(KMI)%K301(KVECNPT)) -ALLOCATE(TACCS(KMI)%K302(KVECNPT)) -ALLOCATE(TACCS(KMI)%K303(KVECNPT)) -ALLOCATE(TACCS(KMI)%K304(KVECNPT)) -ALLOCATE(TACCS(KMI)%K305(KVECNPT)) -ALLOCATE(TACCS(KMI)%K306(KVECNPT)) -ALLOCATE(TACCS(KMI)%K307(KVECNPT)) -ALLOCATE(TACCS(KMI)%K308(KVECNPT)) -ALLOCATE(TACCS(KMI)%K309(KVECNPT)) -ALLOCATE(TACCS(KMI)%K310(KVECNPT)) -ALLOCATE(TACCS(KMI)%K311(KVECNPT)) -ALLOCATE(TACCS(KMI)%K312(KVECNPT)) -ALLOCATE(TACCS(KMI)%K313(KVECNPT)) -ALLOCATE(TACCS(KMI)%K314(KVECNPT)) -ALLOCATE(TACCS(KMI)%K315(KVECNPT)) -ALLOCATE(TACCS(KMI)%K316(KVECNPT)) -ALLOCATE(TACCS(KMI)%K317(KVECNPT)) -ALLOCATE(TACCS(KMI)%K318(KVECNPT)) -ALLOCATE(TACCS(KMI)%K319(KVECNPT)) -ALLOCATE(TACCS(KMI)%K320(KVECNPT)) -ALLOCATE(TACCS(KMI)%K321(KVECNPT)) -ALLOCATE(TACCS(KMI)%K322(KVECNPT)) -ALLOCATE(TACCS(KMI)%K323(KVECNPT)) -ALLOCATE(TACCS(KMI)%K324(KVECNPT)) -ALLOCATE(TACCS(KMI)%K325(KVECNPT)) -ALLOCATE(TACCS(KMI)%K326(KVECNPT)) -ALLOCATE(TACCS(KMI)%K327(KVECNPT)) -ALLOCATE(TACCS(KMI)%K328(KVECNPT)) -ALLOCATE(TACCS(KMI)%K329(KVECNPT)) -ALLOCATE(TACCS(KMI)%K330(KVECNPT)) -ALLOCATE(TACCS(KMI)%K331(KVECNPT)) -ALLOCATE(TACCS(KMI)%K332(KVECNPT)) -ALLOCATE(TACCS(KMI)%K333(KVECNPT)) -ALLOCATE(TACCS(KMI)%K334(KVECNPT)) -ALLOCATE(TACCS(KMI)%K335(KVECNPT)) -ALLOCATE(TACCS(KMI)%K337(KVECNPT)) -ALLOCATE(TACCS(KMI)%K338(KVECNPT)) -ALLOCATE(TACCS(KMI)%K339(KVECNPT)) -ALLOCATE(TACCS(KMI)%K340(KVECNPT)) -ALLOCATE(TACCS(KMI)%K341(KVECNPT)) -ALLOCATE(TACCS(KMI)%K342(KVECNPT)) -ALLOCATE(TACCS(KMI)%K343(KVECNPT)) -ALLOCATE(TACCS(KMI)%K344(KVECNPT)) -ALLOCATE(TACCS(KMI)%K345(KVECNPT)) -ALLOCATE(TACCS(KMI)%K346(KVECNPT)) -ALLOCATE(TACCS(KMI)%K347(KVECNPT)) -ALLOCATE(TACCS(KMI)%K348(KVECNPT)) -ALLOCATE(TACCS(KMI)%K349(KVECNPT)) -ALLOCATE(TACCS(KMI)%K350(KVECNPT)) -ALLOCATE(TACCS(KMI)%K351(KVECNPT)) -ALLOCATE(TACCS(KMI)%K352(KVECNPT)) -ALLOCATE(TACCS(KMI)%K353(KVECNPT)) -ALLOCATE(TACCS(KMI)%K354(KVECNPT)) -ALLOCATE(TACCS(KMI)%K355(KVECNPT)) -ALLOCATE(TACCS(KMI)%K356(KVECNPT)) -ALLOCATE(TACCS(KMI)%K357(KVECNPT)) -ALLOCATE(TACCS(KMI)%K358(KVECNPT)) -ALLOCATE(TACCS(KMI)%K359(KVECNPT)) -ALLOCATE(TACCS(KMI)%K360(KVECNPT)) -ALLOCATE(TACCS(KMI)%K361(KVECNPT)) -ALLOCATE(TACCS(KMI)%K362(KVECNPT)) -ALLOCATE(TACCS(KMI)%K363(KVECNPT)) -ALLOCATE(TACCS(KMI)%K364(KVECNPT)) -ALLOCATE(TACCS(KMI)%K365(KVECNPT)) IF (TACCS(KMI)%LUSECHAQ) THEN ALLOCATE(TACCS(KMI)%KTC1(KVECNPT)) ALLOCATE(TACCS(KMI)%KTC2(KVECNPT)) @@ -4340,28 +2211,6 @@ IF (TACCS(KMI)%LUSECHAQ) THEN ALLOCATE(TACCS(KMI)%KTC38(KVECNPT)) ALLOCATE(TACCS(KMI)%KTC39(KVECNPT)) ALLOCATE(TACCS(KMI)%KTC40(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC41(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC42(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC43(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC44(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC45(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC46(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC47(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC48(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC49(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC50(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC51(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC52(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC53(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC54(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC55(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC56(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC57(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC58(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC59(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC60(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC61(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTC62(KVECNPT)) ALLOCATE(TACCS(KMI)%KTR1(KVECNPT)) ALLOCATE(TACCS(KMI)%KTR2(KVECNPT)) ALLOCATE(TACCS(KMI)%KTR3(KVECNPT)) @@ -4402,28 +2251,6 @@ IF (TACCS(KMI)%LUSECHAQ) THEN ALLOCATE(TACCS(KMI)%KTR38(KVECNPT)) ALLOCATE(TACCS(KMI)%KTR39(KVECNPT)) ALLOCATE(TACCS(KMI)%KTR40(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR41(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR42(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR43(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR44(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR45(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR46(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR47(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR48(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR49(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR50(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR51(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR52(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR53(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR54(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR55(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR56(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR57(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR58(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR59(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR60(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR61(KVECNPT)) - ALLOCATE(TACCS(KMI)%KTR62(KVECNPT)) ALLOCATE(TACCS(KMI)%KC1(KVECNPT)) ALLOCATE(TACCS(KMI)%KC2(KVECNPT)) ALLOCATE(TACCS(KMI)%KC3(KVECNPT)) @@ -4454,22 +2281,6 @@ IF (TACCS(KMI)%LUSECHAQ) THEN ALLOCATE(TACCS(KMI)%KC28(KVECNPT)) ALLOCATE(TACCS(KMI)%KC29(KVECNPT)) ALLOCATE(TACCS(KMI)%KC30(KVECNPT)) - ALLOCATE(TACCS(KMI)%KC31(KVECNPT)) - ALLOCATE(TACCS(KMI)%KC32(KVECNPT)) - ALLOCATE(TACCS(KMI)%KC33(KVECNPT)) - ALLOCATE(TACCS(KMI)%KC34(KVECNPT)) - ALLOCATE(TACCS(KMI)%KC35(KVECNPT)) - ALLOCATE(TACCS(KMI)%KC36(KVECNPT)) - ALLOCATE(TACCS(KMI)%KC37(KVECNPT)) - ALLOCATE(TACCS(KMI)%KC38(KVECNPT)) - ALLOCATE(TACCS(KMI)%KC39(KVECNPT)) - ALLOCATE(TACCS(KMI)%KC40(KVECNPT)) - ALLOCATE(TACCS(KMI)%KC41(KVECNPT)) - ALLOCATE(TACCS(KMI)%KC42(KVECNPT)) - ALLOCATE(TACCS(KMI)%KC43(KVECNPT)) - ALLOCATE(TACCS(KMI)%KC44(KVECNPT)) - ALLOCATE(TACCS(KMI)%KC45(KVECNPT)) - ALLOCATE(TACCS(KMI)%KC46(KVECNPT)) ALLOCATE(TACCS(KMI)%KR1(KVECNPT)) ALLOCATE(TACCS(KMI)%KR2(KVECNPT)) ALLOCATE(TACCS(KMI)%KR3(KVECNPT)) @@ -4500,30 +2311,9 @@ IF (TACCS(KMI)%LUSECHAQ) THEN ALLOCATE(TACCS(KMI)%KR28(KVECNPT)) ALLOCATE(TACCS(KMI)%KR29(KVECNPT)) ALLOCATE(TACCS(KMI)%KR30(KVECNPT)) - ALLOCATE(TACCS(KMI)%KR31(KVECNPT)) - ALLOCATE(TACCS(KMI)%KR32(KVECNPT)) - ALLOCATE(TACCS(KMI)%KR33(KVECNPT)) - ALLOCATE(TACCS(KMI)%KR34(KVECNPT)) - ALLOCATE(TACCS(KMI)%KR35(KVECNPT)) - ALLOCATE(TACCS(KMI)%KR36(KVECNPT)) - ALLOCATE(TACCS(KMI)%KR37(KVECNPT)) - ALLOCATE(TACCS(KMI)%KR38(KVECNPT)) - ALLOCATE(TACCS(KMI)%KR39(KVECNPT)) - ALLOCATE(TACCS(KMI)%KR40(KVECNPT)) - ALLOCATE(TACCS(KMI)%KR41(KVECNPT)) - ALLOCATE(TACCS(KMI)%KR42(KVECNPT)) - ALLOCATE(TACCS(KMI)%KR43(KVECNPT)) - ALLOCATE(TACCS(KMI)%KR44(KVECNPT)) - ALLOCATE(TACCS(KMI)%KR45(KVECNPT)) - ALLOCATE(TACCS(KMI)%KR46(KVECNPT)) END IF ALLOCATE(TACCS(KMI)%NVERB(KVECNPT)) ALLOCATE(TACCS(KMI)%MODELLEVEL(KVECNPT)) -ALLOCATE(TACCS(KMI)%LAT(KVECNPT)) -ALLOCATE(TACCS(KMI)%LON(KVECNPT)) -ALLOCATE(TACCS(KMI)%YEAR(KVECNPT)) -ALLOCATE(TACCS(KMI)%MONTH(KVECNPT)) -ALLOCATE(TACCS(KMI)%DAY(KVECNPT)) ALLOCATE(TACCS(KMI)%T(KVECNPT)) ALLOCATE(TACCS(KMI)%PRESSURE(KVECNPT)) ALLOCATE(TACCS(KMI)%M(KVECNPT)) @@ -4534,74 +2324,14 @@ ALLOCATE(TACCS(KMI)%RHODREF(KVECNPT)) ALLOCATE(TACCS(KMI)%O2(KVECNPT)) ALLOCATE(TACCS(KMI)%N2(KVECNPT)) ALLOCATE(TACCS(KMI)%H2(KVECNPT)) -ALLOCATE(TACCS(KMI)%CO2(KVECNPT)) -ALLOCATE(TACCS(KMI)%CH4(KVECNPT)) -ALLOCATE(TACCS(KMI)%O (KVECNPT)) -ALLOCATE(TACCS(KMI)%OSD (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO22 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO23 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO24 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO26 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO27 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO28(KVECNPT)) -ALLOCATE(TACCS(KMI)%RO29 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO210 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO211 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO212 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO213 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO214 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO215 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO216 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO217 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO218 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO219 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO220 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO221 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO222 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO223 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO224 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO225 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO226 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO227 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO228 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO229 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO230 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO231 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO232 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO233 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO234 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO235 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO236 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO237 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO238 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO239 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO240 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO241 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO242 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO243 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO244 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO245 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO246 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO247 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO248 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO249 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO250 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO251 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO252 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO253 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO254 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO255 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO256 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO257 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RO258 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RAD1 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RAD2 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RAD3 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RAD4 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RAD5 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RAD6 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RAD7 (KVECNPT)) -ALLOCATE(TACCS(KMI)%RAD8 (KVECNPT)) +ALLOCATE(TACCS(KMI)%OH(KVECNPT)) +ALLOCATE(TACCS(KMI)%O1D(KVECNPT)) +ALLOCATE(TACCS(KMI)%O3P(KVECNPT)) +ALLOCATE(TACCS(KMI)%LAT(KVECNPT)) +ALLOCATE(TACCS(KMI)%LON(KVECNPT)) +ALLOCATE(TACCS(KMI)%YEAR(KVECNPT)) +ALLOCATE(TACCS(KMI)%MONTH(KVECNPT)) +ALLOCATE(TACCS(KMI)%DAY(KVECNPT)) ALLOCATE(TACCS(KMI)%LWC(KVECNPT)) ALLOCATE(TACCS(KMI)%MOL2MOLECCLOUD(KVECNPT)) ALLOCATE(TACCS(KMI)%RADC(KVECNPT)) @@ -4610,81 +2340,9 @@ ALLOCATE(TACCS(KMI)%LWR(KVECNPT)) ALLOCATE(TACCS(KMI)%MOL2MOLECRAIN(KVECNPT)) ALLOCATE(TACCS(KMI)%RADR(KVECNPT)) ALLOCATE(TACCS(KMI)%PHR(KVECNPT)) +ALLOCATE(TACCS(KMI)%CO2(KVECNPT)) ALLOCATE(TACCS(KMI)%RCH(KVECNPT)) ALLOCATE(TACCS(KMI)%W_O2(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF1(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF2(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF3(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF4(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF5(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF6(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF7(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF8(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF9(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF10(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF11(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF12(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF13(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF14(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF15(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF16(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF17(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF18(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF19(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF20(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF21(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF22(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF23(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF24(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF25(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF26(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF27(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF28(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF29(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF30(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF31(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF32(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF33(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF34(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF35(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF36(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF37(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF38(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF39(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF40(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF41(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF42(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF43(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF44(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF45(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF46(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF47(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF48(KVECNPT)) -ALLOCATE(TACCS(KMI)%CF49(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA1(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA2(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA3(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA4(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA5(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA6(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA7(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA8(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA9(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA10(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA11(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA12(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA13(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA14(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA15(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA16(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA17(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA18(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA19(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA20(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA21(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA22(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA23(KVECNPT)) -ALLOCATE(TACCS(KMI)%CFA24(KVECNPT)) END SUBROUTINE CH_ALLOCATE_TACCS ! !======================================================================== @@ -4770,8 +2428,7 @@ IF (ASSOCIATED(TACCS(KMI)%K014)) DEALLOCATE(TACCS(KMI)%K014) IF (ASSOCIATED(TACCS(KMI)%K015)) DEALLOCATE(TACCS(KMI)%K015) IF (ASSOCIATED(TACCS(KMI)%K016)) DEALLOCATE(TACCS(KMI)%K016) IF (ASSOCIATED(TACCS(KMI)%K017)) DEALLOCATE(TACCS(KMI)%K017) -IF (ASSOCIATED(TACCS(KMI)%K018A)) DEALLOCATE(TACCS(KMI)%K018A) -IF (ASSOCIATED(TACCS(KMI)%K018B)) DEALLOCATE(TACCS(KMI)%K018B) +IF (ASSOCIATED(TACCS(KMI)%K018)) DEALLOCATE(TACCS(KMI)%K018) IF (ASSOCIATED(TACCS(KMI)%K019)) DEALLOCATE(TACCS(KMI)%K019) IF (ASSOCIATED(TACCS(KMI)%K020)) DEALLOCATE(TACCS(KMI)%K020) IF (ASSOCIATED(TACCS(KMI)%K021)) DEALLOCATE(TACCS(KMI)%K021) @@ -4853,9 +2510,9 @@ IF (ASSOCIATED(TACCS(KMI)%K096)) DEALLOCATE(TACCS(KMI)%K096) IF (ASSOCIATED(TACCS(KMI)%K097)) DEALLOCATE(TACCS(KMI)%K097) IF (ASSOCIATED(TACCS(KMI)%K098)) DEALLOCATE(TACCS(KMI)%K098) IF (ASSOCIATED(TACCS(KMI)%K099)) DEALLOCATE(TACCS(KMI)%K099) -IF (ASSOCIATED(TACCS(KMI)%K100)) DEALLOCATE(TACCS(KMI)%K100) -IF (ASSOCIATED(TACCS(KMI)%K101)) DEALLOCATE(TACCS(KMI)%K101) -IF (ASSOCIATED(TACCS(KMI)%K102)) DEALLOCATE(TACCS(KMI)%K102) +IF (ASSOCIATED(TACCS(KMI)%K0100)) DEALLOCATE(TACCS(KMI)%K0100) +IF (ASSOCIATED(TACCS(KMI)%K0101)) DEALLOCATE(TACCS(KMI)%K0101) +IF (ASSOCIATED(TACCS(KMI)%K0102)) DEALLOCATE(TACCS(KMI)%K0102) IF (ASSOCIATED(TACCS(KMI)%K103)) DEALLOCATE(TACCS(KMI)%K103) IF (ASSOCIATED(TACCS(KMI)%K104)) DEALLOCATE(TACCS(KMI)%K104) IF (ASSOCIATED(TACCS(KMI)%K105)) DEALLOCATE(TACCS(KMI)%K105) @@ -4886,238 +2543,6 @@ IF (ASSOCIATED(TACCS(KMI)%K129)) DEALLOCATE(TACCS(KMI)%K129) IF (ASSOCIATED(TACCS(KMI)%K130)) DEALLOCATE(TACCS(KMI)%K130) IF (ASSOCIATED(TACCS(KMI)%K131)) DEALLOCATE(TACCS(KMI)%K131) IF (ASSOCIATED(TACCS(KMI)%K132)) DEALLOCATE(TACCS(KMI)%K132) -IF (ASSOCIATED(TACCS(KMI)%K133)) DEALLOCATE(TACCS(KMI)%K133) -IF (ASSOCIATED(TACCS(KMI)%K134)) DEALLOCATE(TACCS(KMI)%K134) -IF (ASSOCIATED(TACCS(KMI)%K135)) DEALLOCATE(TACCS(KMI)%K135) -IF (ASSOCIATED(TACCS(KMI)%K136)) DEALLOCATE(TACCS(KMI)%K136) -IF (ASSOCIATED(TACCS(KMI)%K137)) DEALLOCATE(TACCS(KMI)%K137) -IF (ASSOCIATED(TACCS(KMI)%K138)) DEALLOCATE(TACCS(KMI)%K138) -IF (ASSOCIATED(TACCS(KMI)%K139)) DEALLOCATE(TACCS(KMI)%K139) -IF (ASSOCIATED(TACCS(KMI)%K140)) DEALLOCATE(TACCS(KMI)%K140) -IF (ASSOCIATED(TACCS(KMI)%K141)) DEALLOCATE(TACCS(KMI)%K141) -IF (ASSOCIATED(TACCS(KMI)%K142)) DEALLOCATE(TACCS(KMI)%K142) -IF (ASSOCIATED(TACCS(KMI)%K143)) DEALLOCATE(TACCS(KMI)%K143) -IF (ASSOCIATED(TACCS(KMI)%K144)) DEALLOCATE(TACCS(KMI)%K144) -IF (ASSOCIATED(TACCS(KMI)%K145)) DEALLOCATE(TACCS(KMI)%K145) -IF (ASSOCIATED(TACCS(KMI)%K146)) DEALLOCATE(TACCS(KMI)%K146) -IF (ASSOCIATED(TACCS(KMI)%K147)) DEALLOCATE(TACCS(KMI)%K147) -IF (ASSOCIATED(TACCS(KMI)%K148)) DEALLOCATE(TACCS(KMI)%K148) -IF (ASSOCIATED(TACCS(KMI)%K149)) DEALLOCATE(TACCS(KMI)%K149) -IF (ASSOCIATED(TACCS(KMI)%K150)) DEALLOCATE(TACCS(KMI)%K150) -IF (ASSOCIATED(TACCS(KMI)%K151)) DEALLOCATE(TACCS(KMI)%K151) -IF (ASSOCIATED(TACCS(KMI)%K152)) DEALLOCATE(TACCS(KMI)%K152) -IF (ASSOCIATED(TACCS(KMI)%K153)) DEALLOCATE(TACCS(KMI)%K153) -IF (ASSOCIATED(TACCS(KMI)%K154)) DEALLOCATE(TACCS(KMI)%K154) -IF (ASSOCIATED(TACCS(KMI)%K155)) DEALLOCATE(TACCS(KMI)%K155) -IF (ASSOCIATED(TACCS(KMI)%K156)) DEALLOCATE(TACCS(KMI)%K156) -IF (ASSOCIATED(TACCS(KMI)%K157)) DEALLOCATE(TACCS(KMI)%K157) -IF (ASSOCIATED(TACCS(KMI)%K158)) DEALLOCATE(TACCS(KMI)%K158) -IF (ASSOCIATED(TACCS(KMI)%K159)) DEALLOCATE(TACCS(KMI)%K159) -IF (ASSOCIATED(TACCS(KMI)%K160)) DEALLOCATE(TACCS(KMI)%K160) -IF (ASSOCIATED(TACCS(KMI)%K161)) DEALLOCATE(TACCS(KMI)%K161) -IF (ASSOCIATED(TACCS(KMI)%K162)) DEALLOCATE(TACCS(KMI)%K162) -IF (ASSOCIATED(TACCS(KMI)%K163)) DEALLOCATE(TACCS(KMI)%K163) -IF (ASSOCIATED(TACCS(KMI)%K164)) DEALLOCATE(TACCS(KMI)%K164) -IF (ASSOCIATED(TACCS(KMI)%K165)) DEALLOCATE(TACCS(KMI)%K165) -IF (ASSOCIATED(TACCS(KMI)%K166)) DEALLOCATE(TACCS(KMI)%K166) -IF (ASSOCIATED(TACCS(KMI)%K167)) DEALLOCATE(TACCS(KMI)%K167) -IF (ASSOCIATED(TACCS(KMI)%K168)) DEALLOCATE(TACCS(KMI)%K168) -IF (ASSOCIATED(TACCS(KMI)%K169)) DEALLOCATE(TACCS(KMI)%K169) -IF (ASSOCIATED(TACCS(KMI)%K170)) DEALLOCATE(TACCS(KMI)%K170) -IF (ASSOCIATED(TACCS(KMI)%K171)) DEALLOCATE(TACCS(KMI)%K171) -IF (ASSOCIATED(TACCS(KMI)%K172)) DEALLOCATE(TACCS(KMI)%K172) -IF (ASSOCIATED(TACCS(KMI)%K173)) DEALLOCATE(TACCS(KMI)%K173) -IF (ASSOCIATED(TACCS(KMI)%K174)) DEALLOCATE(TACCS(KMI)%K174) -IF (ASSOCIATED(TACCS(KMI)%K175)) DEALLOCATE(TACCS(KMI)%K175) -IF (ASSOCIATED(TACCS(KMI)%K176)) DEALLOCATE(TACCS(KMI)%K176) -IF (ASSOCIATED(TACCS(KMI)%K177)) DEALLOCATE(TACCS(KMI)%K177) -IF (ASSOCIATED(TACCS(KMI)%K178)) DEALLOCATE(TACCS(KMI)%K178) -IF (ASSOCIATED(TACCS(KMI)%K179)) DEALLOCATE(TACCS(KMI)%K179) -IF (ASSOCIATED(TACCS(KMI)%K180)) DEALLOCATE(TACCS(KMI)%K180) -IF (ASSOCIATED(TACCS(KMI)%K181)) DEALLOCATE(TACCS(KMI)%K181) -IF (ASSOCIATED(TACCS(KMI)%K182)) DEALLOCATE(TACCS(KMI)%K182) -IF (ASSOCIATED(TACCS(KMI)%K183)) DEALLOCATE(TACCS(KMI)%K183) -IF (ASSOCIATED(TACCS(KMI)%K184)) DEALLOCATE(TACCS(KMI)%K184) -IF (ASSOCIATED(TACCS(KMI)%K185)) DEALLOCATE(TACCS(KMI)%K185) -IF (ASSOCIATED(TACCS(KMI)%K186)) DEALLOCATE(TACCS(KMI)%K186) -IF (ASSOCIATED(TACCS(KMI)%K187)) DEALLOCATE(TACCS(KMI)%K187) -IF (ASSOCIATED(TACCS(KMI)%K188)) DEALLOCATE(TACCS(KMI)%K188) -IF (ASSOCIATED(TACCS(KMI)%K189)) DEALLOCATE(TACCS(KMI)%K189) -IF (ASSOCIATED(TACCS(KMI)%K190)) DEALLOCATE(TACCS(KMI)%K190) -IF (ASSOCIATED(TACCS(KMI)%K191)) DEALLOCATE(TACCS(KMI)%K191) -IF (ASSOCIATED(TACCS(KMI)%K192)) DEALLOCATE(TACCS(KMI)%K192) -IF (ASSOCIATED(TACCS(KMI)%K193)) DEALLOCATE(TACCS(KMI)%K193) -IF (ASSOCIATED(TACCS(KMI)%K194)) DEALLOCATE(TACCS(KMI)%K194) -IF (ASSOCIATED(TACCS(KMI)%K195)) DEALLOCATE(TACCS(KMI)%K195) -IF (ASSOCIATED(TACCS(KMI)%K196)) DEALLOCATE(TACCS(KMI)%K196) -IF (ASSOCIATED(TACCS(KMI)%K197)) DEALLOCATE(TACCS(KMI)%K197) -IF (ASSOCIATED(TACCS(KMI)%K198)) DEALLOCATE(TACCS(KMI)%K198) -IF (ASSOCIATED(TACCS(KMI)%K199)) DEALLOCATE(TACCS(KMI)%K199) -IF (ASSOCIATED(TACCS(KMI)%K200)) DEALLOCATE(TACCS(KMI)%K200) -IF (ASSOCIATED(TACCS(KMI)%K201)) DEALLOCATE(TACCS(KMI)%K201) -IF (ASSOCIATED(TACCS(KMI)%K202)) DEALLOCATE(TACCS(KMI)%K202) -IF (ASSOCIATED(TACCS(KMI)%K203)) DEALLOCATE(TACCS(KMI)%K203) -IF (ASSOCIATED(TACCS(KMI)%K204)) DEALLOCATE(TACCS(KMI)%K204) -IF (ASSOCIATED(TACCS(KMI)%K205)) DEALLOCATE(TACCS(KMI)%K205) -IF (ASSOCIATED(TACCS(KMI)%K206)) DEALLOCATE(TACCS(KMI)%K206) -IF (ASSOCIATED(TACCS(KMI)%K207)) DEALLOCATE(TACCS(KMI)%K207) -IF (ASSOCIATED(TACCS(KMI)%K208)) DEALLOCATE(TACCS(KMI)%K208) -IF (ASSOCIATED(TACCS(KMI)%K209)) DEALLOCATE(TACCS(KMI)%K209) -IF (ASSOCIATED(TACCS(KMI)%K210)) DEALLOCATE(TACCS(KMI)%K210) -IF (ASSOCIATED(TACCS(KMI)%K211)) DEALLOCATE(TACCS(KMI)%K211) -IF (ASSOCIATED(TACCS(KMI)%K212)) DEALLOCATE(TACCS(KMI)%K212) -IF (ASSOCIATED(TACCS(KMI)%K213)) DEALLOCATE(TACCS(KMI)%K213) -IF (ASSOCIATED(TACCS(KMI)%K214)) DEALLOCATE(TACCS(KMI)%K214) -IF (ASSOCIATED(TACCS(KMI)%K215)) DEALLOCATE(TACCS(KMI)%K215) -IF (ASSOCIATED(TACCS(KMI)%K216)) DEALLOCATE(TACCS(KMI)%K216) -IF (ASSOCIATED(TACCS(KMI)%K217)) DEALLOCATE(TACCS(KMI)%K217) -IF (ASSOCIATED(TACCS(KMI)%K218)) DEALLOCATE(TACCS(KMI)%K218) -IF (ASSOCIATED(TACCS(KMI)%K219)) DEALLOCATE(TACCS(KMI)%K219) -IF (ASSOCIATED(TACCS(KMI)%K220)) DEALLOCATE(TACCS(KMI)%K220) -IF (ASSOCIATED(TACCS(KMI)%K221)) DEALLOCATE(TACCS(KMI)%K221) -IF (ASSOCIATED(TACCS(KMI)%K222)) DEALLOCATE(TACCS(KMI)%K222) -IF (ASSOCIATED(TACCS(KMI)%K223)) DEALLOCATE(TACCS(KMI)%K223) -IF (ASSOCIATED(TACCS(KMI)%K224)) DEALLOCATE(TACCS(KMI)%K224) -IF (ASSOCIATED(TACCS(KMI)%K225)) DEALLOCATE(TACCS(KMI)%K225) -IF (ASSOCIATED(TACCS(KMI)%K226)) DEALLOCATE(TACCS(KMI)%K226) -IF (ASSOCIATED(TACCS(KMI)%K227)) DEALLOCATE(TACCS(KMI)%K227) -IF (ASSOCIATED(TACCS(KMI)%K228)) DEALLOCATE(TACCS(KMI)%K228) -IF (ASSOCIATED(TACCS(KMI)%K229)) DEALLOCATE(TACCS(KMI)%K229) -IF (ASSOCIATED(TACCS(KMI)%K230)) DEALLOCATE(TACCS(KMI)%K230) -IF (ASSOCIATED(TACCS(KMI)%K231)) DEALLOCATE(TACCS(KMI)%K231) -IF (ASSOCIATED(TACCS(KMI)%K232)) DEALLOCATE(TACCS(KMI)%K232) -IF (ASSOCIATED(TACCS(KMI)%K233)) DEALLOCATE(TACCS(KMI)%K233) -IF (ASSOCIATED(TACCS(KMI)%K234)) DEALLOCATE(TACCS(KMI)%K234) -IF (ASSOCIATED(TACCS(KMI)%K235)) DEALLOCATE(TACCS(KMI)%K235) -IF (ASSOCIATED(TACCS(KMI)%K236)) DEALLOCATE(TACCS(KMI)%K236) -IF (ASSOCIATED(TACCS(KMI)%K237)) DEALLOCATE(TACCS(KMI)%K237) -IF (ASSOCIATED(TACCS(KMI)%K238)) DEALLOCATE(TACCS(KMI)%K238) -IF (ASSOCIATED(TACCS(KMI)%K239)) DEALLOCATE(TACCS(KMI)%K239) -IF (ASSOCIATED(TACCS(KMI)%K240)) DEALLOCATE(TACCS(KMI)%K240) -IF (ASSOCIATED(TACCS(KMI)%K241)) DEALLOCATE(TACCS(KMI)%K241) -IF (ASSOCIATED(TACCS(KMI)%K242)) DEALLOCATE(TACCS(KMI)%K242) -IF (ASSOCIATED(TACCS(KMI)%K243)) DEALLOCATE(TACCS(KMI)%K243) -IF (ASSOCIATED(TACCS(KMI)%K244)) DEALLOCATE(TACCS(KMI)%K244) -IF (ASSOCIATED(TACCS(KMI)%K245)) DEALLOCATE(TACCS(KMI)%K245) -IF (ASSOCIATED(TACCS(KMI)%K246)) DEALLOCATE(TACCS(KMI)%K246) -IF (ASSOCIATED(TACCS(KMI)%K247)) DEALLOCATE(TACCS(KMI)%K247) -IF (ASSOCIATED(TACCS(KMI)%K248)) DEALLOCATE(TACCS(KMI)%K248) -IF (ASSOCIATED(TACCS(KMI)%K249)) DEALLOCATE(TACCS(KMI)%K249) -IF (ASSOCIATED(TACCS(KMI)%K250)) DEALLOCATE(TACCS(KMI)%K250) -IF (ASSOCIATED(TACCS(KMI)%K251)) DEALLOCATE(TACCS(KMI)%K251) -IF (ASSOCIATED(TACCS(KMI)%K252)) DEALLOCATE(TACCS(KMI)%K252) -IF (ASSOCIATED(TACCS(KMI)%K253)) DEALLOCATE(TACCS(KMI)%K253) -IF (ASSOCIATED(TACCS(KMI)%K254)) DEALLOCATE(TACCS(KMI)%K254) -IF (ASSOCIATED(TACCS(KMI)%K255)) DEALLOCATE(TACCS(KMI)%K255) -IF (ASSOCIATED(TACCS(KMI)%K256)) DEALLOCATE(TACCS(KMI)%K256) -IF (ASSOCIATED(TACCS(KMI)%K257)) DEALLOCATE(TACCS(KMI)%K257) -IF (ASSOCIATED(TACCS(KMI)%K258)) DEALLOCATE(TACCS(KMI)%K258) -IF (ASSOCIATED(TACCS(KMI)%K259)) DEALLOCATE(TACCS(KMI)%K259) -IF (ASSOCIATED(TACCS(KMI)%K260)) DEALLOCATE(TACCS(KMI)%K260) -IF (ASSOCIATED(TACCS(KMI)%K261)) DEALLOCATE(TACCS(KMI)%K261) -IF (ASSOCIATED(TACCS(KMI)%K262)) DEALLOCATE(TACCS(KMI)%K262) -IF (ASSOCIATED(TACCS(KMI)%K263)) DEALLOCATE(TACCS(KMI)%K263) -IF (ASSOCIATED(TACCS(KMI)%K264)) DEALLOCATE(TACCS(KMI)%K264) -IF (ASSOCIATED(TACCS(KMI)%K265)) DEALLOCATE(TACCS(KMI)%K265) -IF (ASSOCIATED(TACCS(KMI)%K266)) DEALLOCATE(TACCS(KMI)%K266) -IF (ASSOCIATED(TACCS(KMI)%K267)) DEALLOCATE(TACCS(KMI)%K267) -IF (ASSOCIATED(TACCS(KMI)%K268)) DEALLOCATE(TACCS(KMI)%K268) -IF (ASSOCIATED(TACCS(KMI)%K269)) DEALLOCATE(TACCS(KMI)%K269) -IF (ASSOCIATED(TACCS(KMI)%K270)) DEALLOCATE(TACCS(KMI)%K270) -IF (ASSOCIATED(TACCS(KMI)%K271)) DEALLOCATE(TACCS(KMI)%K271) -IF (ASSOCIATED(TACCS(KMI)%K272)) DEALLOCATE(TACCS(KMI)%K272) -IF (ASSOCIATED(TACCS(KMI)%K273)) DEALLOCATE(TACCS(KMI)%K273) -IF (ASSOCIATED(TACCS(KMI)%K274)) DEALLOCATE(TACCS(KMI)%K274) -IF (ASSOCIATED(TACCS(KMI)%K275)) DEALLOCATE(TACCS(KMI)%K275) -IF (ASSOCIATED(TACCS(KMI)%K276)) DEALLOCATE(TACCS(KMI)%K276) -IF (ASSOCIATED(TACCS(KMI)%K277)) DEALLOCATE(TACCS(KMI)%K277) -IF (ASSOCIATED(TACCS(KMI)%K278)) DEALLOCATE(TACCS(KMI)%K278) -IF (ASSOCIATED(TACCS(KMI)%K279)) DEALLOCATE(TACCS(KMI)%K279) -IF (ASSOCIATED(TACCS(KMI)%K280)) DEALLOCATE(TACCS(KMI)%K280) -IF (ASSOCIATED(TACCS(KMI)%K281)) DEALLOCATE(TACCS(KMI)%K281) -IF (ASSOCIATED(TACCS(KMI)%K282)) DEALLOCATE(TACCS(KMI)%K282) -IF (ASSOCIATED(TACCS(KMI)%K283)) DEALLOCATE(TACCS(KMI)%K283) -IF (ASSOCIATED(TACCS(KMI)%K284)) DEALLOCATE(TACCS(KMI)%K284) -IF (ASSOCIATED(TACCS(KMI)%K285)) DEALLOCATE(TACCS(KMI)%K285) -IF (ASSOCIATED(TACCS(KMI)%K286)) DEALLOCATE(TACCS(KMI)%K286) -IF (ASSOCIATED(TACCS(KMI)%K287)) DEALLOCATE(TACCS(KMI)%K287) -IF (ASSOCIATED(TACCS(KMI)%K288)) DEALLOCATE(TACCS(KMI)%K288) -IF (ASSOCIATED(TACCS(KMI)%K289)) DEALLOCATE(TACCS(KMI)%K289) -IF (ASSOCIATED(TACCS(KMI)%K290)) DEALLOCATE(TACCS(KMI)%K290) -IF (ASSOCIATED(TACCS(KMI)%K291)) DEALLOCATE(TACCS(KMI)%K291) -IF (ASSOCIATED(TACCS(KMI)%K292)) DEALLOCATE(TACCS(KMI)%K292) -IF (ASSOCIATED(TACCS(KMI)%K293)) DEALLOCATE(TACCS(KMI)%K293) -IF (ASSOCIATED(TACCS(KMI)%K294)) DEALLOCATE(TACCS(KMI)%K294) -IF (ASSOCIATED(TACCS(KMI)%K295)) DEALLOCATE(TACCS(KMI)%K295) -IF (ASSOCIATED(TACCS(KMI)%K296)) DEALLOCATE(TACCS(KMI)%K296) -IF (ASSOCIATED(TACCS(KMI)%K297)) DEALLOCATE(TACCS(KMI)%K297) -IF (ASSOCIATED(TACCS(KMI)%K298)) DEALLOCATE(TACCS(KMI)%K298) -IF (ASSOCIATED(TACCS(KMI)%K299)) DEALLOCATE(TACCS(KMI)%K299) -IF (ASSOCIATED(TACCS(KMI)%K300)) DEALLOCATE(TACCS(KMI)%K300) -IF (ASSOCIATED(TACCS(KMI)%K301)) DEALLOCATE(TACCS(KMI)%K301) -IF (ASSOCIATED(TACCS(KMI)%K302)) DEALLOCATE(TACCS(KMI)%K302) -IF (ASSOCIATED(TACCS(KMI)%K303)) DEALLOCATE(TACCS(KMI)%K303) -IF (ASSOCIATED(TACCS(KMI)%K304)) DEALLOCATE(TACCS(KMI)%K304) -IF (ASSOCIATED(TACCS(KMI)%K305)) DEALLOCATE(TACCS(KMI)%K305) -IF (ASSOCIATED(TACCS(KMI)%K306)) DEALLOCATE(TACCS(KMI)%K306) -IF (ASSOCIATED(TACCS(KMI)%K307)) DEALLOCATE(TACCS(KMI)%K307) -IF (ASSOCIATED(TACCS(KMI)%K308)) DEALLOCATE(TACCS(KMI)%K308) -IF (ASSOCIATED(TACCS(KMI)%K309)) DEALLOCATE(TACCS(KMI)%K309) -IF (ASSOCIATED(TACCS(KMI)%K310)) DEALLOCATE(TACCS(KMI)%K310) -IF (ASSOCIATED(TACCS(KMI)%K311)) DEALLOCATE(TACCS(KMI)%K311) -IF (ASSOCIATED(TACCS(KMI)%K312)) DEALLOCATE(TACCS(KMI)%K312) -IF (ASSOCIATED(TACCS(KMI)%K313)) DEALLOCATE(TACCS(KMI)%K313) -IF (ASSOCIATED(TACCS(KMI)%K314)) DEALLOCATE(TACCS(KMI)%K314) -IF (ASSOCIATED(TACCS(KMI)%K315)) DEALLOCATE(TACCS(KMI)%K315) -IF (ASSOCIATED(TACCS(KMI)%K316)) DEALLOCATE(TACCS(KMI)%K316) -IF (ASSOCIATED(TACCS(KMI)%K317)) DEALLOCATE(TACCS(KMI)%K317) -IF (ASSOCIATED(TACCS(KMI)%K318)) DEALLOCATE(TACCS(KMI)%K318) -IF (ASSOCIATED(TACCS(KMI)%K319)) DEALLOCATE(TACCS(KMI)%K319) -IF (ASSOCIATED(TACCS(KMI)%K320)) DEALLOCATE(TACCS(KMI)%K320) -IF (ASSOCIATED(TACCS(KMI)%K321)) DEALLOCATE(TACCS(KMI)%K321) -IF (ASSOCIATED(TACCS(KMI)%K322)) DEALLOCATE(TACCS(KMI)%K322) -IF (ASSOCIATED(TACCS(KMI)%K323)) DEALLOCATE(TACCS(KMI)%K323) -IF (ASSOCIATED(TACCS(KMI)%K324)) DEALLOCATE(TACCS(KMI)%K324) -IF (ASSOCIATED(TACCS(KMI)%K325)) DEALLOCATE(TACCS(KMI)%K325) -IF (ASSOCIATED(TACCS(KMI)%K326)) DEALLOCATE(TACCS(KMI)%K326) -IF (ASSOCIATED(TACCS(KMI)%K327)) DEALLOCATE(TACCS(KMI)%K327) -IF (ASSOCIATED(TACCS(KMI)%K328)) DEALLOCATE(TACCS(KMI)%K328) -IF (ASSOCIATED(TACCS(KMI)%K329)) DEALLOCATE(TACCS(KMI)%K329) -IF (ASSOCIATED(TACCS(KMI)%K330)) DEALLOCATE(TACCS(KMI)%K330) -IF (ASSOCIATED(TACCS(KMI)%K331)) DEALLOCATE(TACCS(KMI)%K331) -IF (ASSOCIATED(TACCS(KMI)%K332)) DEALLOCATE(TACCS(KMI)%K332) -IF (ASSOCIATED(TACCS(KMI)%K333)) DEALLOCATE(TACCS(KMI)%K333) -IF (ASSOCIATED(TACCS(KMI)%K334)) DEALLOCATE(TACCS(KMI)%K334) -IF (ASSOCIATED(TACCS(KMI)%K335)) DEALLOCATE(TACCS(KMI)%K335) -IF (ASSOCIATED(TACCS(KMI)%K337)) DEALLOCATE(TACCS(KMI)%K337) -IF (ASSOCIATED(TACCS(KMI)%K338)) DEALLOCATE(TACCS(KMI)%K338) -IF (ASSOCIATED(TACCS(KMI)%K339)) DEALLOCATE(TACCS(KMI)%K339) -IF (ASSOCIATED(TACCS(KMI)%K340)) DEALLOCATE(TACCS(KMI)%K340) -IF (ASSOCIATED(TACCS(KMI)%K341)) DEALLOCATE(TACCS(KMI)%K341) -IF (ASSOCIATED(TACCS(KMI)%K342)) DEALLOCATE(TACCS(KMI)%K342) -IF (ASSOCIATED(TACCS(KMI)%K343)) DEALLOCATE(TACCS(KMI)%K343) -IF (ASSOCIATED(TACCS(KMI)%K344)) DEALLOCATE(TACCS(KMI)%K344) -IF (ASSOCIATED(TACCS(KMI)%K345)) DEALLOCATE(TACCS(KMI)%K345) -IF (ASSOCIATED(TACCS(KMI)%K346)) DEALLOCATE(TACCS(KMI)%K346) -IF (ASSOCIATED(TACCS(KMI)%K347)) DEALLOCATE(TACCS(KMI)%K347) -IF (ASSOCIATED(TACCS(KMI)%K348)) DEALLOCATE(TACCS(KMI)%K348) -IF (ASSOCIATED(TACCS(KMI)%K349)) DEALLOCATE(TACCS(KMI)%K349) -IF (ASSOCIATED(TACCS(KMI)%K350)) DEALLOCATE(TACCS(KMI)%K350) -IF (ASSOCIATED(TACCS(KMI)%K351)) DEALLOCATE(TACCS(KMI)%K351) -IF (ASSOCIATED(TACCS(KMI)%K352)) DEALLOCATE(TACCS(KMI)%K352) -IF (ASSOCIATED(TACCS(KMI)%K353)) DEALLOCATE(TACCS(KMI)%K353) -IF (ASSOCIATED(TACCS(KMI)%K354)) DEALLOCATE(TACCS(KMI)%K354) -IF (ASSOCIATED(TACCS(KMI)%K355)) DEALLOCATE(TACCS(KMI)%K355) -IF (ASSOCIATED(TACCS(KMI)%K356)) DEALLOCATE(TACCS(KMI)%K356) -IF (ASSOCIATED(TACCS(KMI)%K357)) DEALLOCATE(TACCS(KMI)%K357) -IF (ASSOCIATED(TACCS(KMI)%K358)) DEALLOCATE(TACCS(KMI)%K358) -IF (ASSOCIATED(TACCS(KMI)%K359)) DEALLOCATE(TACCS(KMI)%K359) -IF (ASSOCIATED(TACCS(KMI)%K360)) DEALLOCATE(TACCS(KMI)%K360) -IF (ASSOCIATED(TACCS(KMI)%K361)) DEALLOCATE(TACCS(KMI)%K361) -IF (ASSOCIATED(TACCS(KMI)%K362)) DEALLOCATE(TACCS(KMI)%K362) -IF (ASSOCIATED(TACCS(KMI)%K363)) DEALLOCATE(TACCS(KMI)%K363) -IF (ASSOCIATED(TACCS(KMI)%K364)) DEALLOCATE(TACCS(KMI)%K364) -IF (ASSOCIATED(TACCS(KMI)%K365)) DEALLOCATE(TACCS(KMI)%K365) IF (ASSOCIATED(TACCS(KMI)%KTC1)) DEALLOCATE(TACCS(KMI)%KTC1) IF (ASSOCIATED(TACCS(KMI)%KTC2)) DEALLOCATE(TACCS(KMI)%KTC2) IF (ASSOCIATED(TACCS(KMI)%KTC3)) DEALLOCATE(TACCS(KMI)%KTC3) @@ -5158,28 +2583,6 @@ IF (ASSOCIATED(TACCS(KMI)%KTC37)) DEALLOCATE(TACCS(KMI)%KTC37) IF (ASSOCIATED(TACCS(KMI)%KTC38)) DEALLOCATE(TACCS(KMI)%KTC38) IF (ASSOCIATED(TACCS(KMI)%KTC39)) DEALLOCATE(TACCS(KMI)%KTC39) IF (ASSOCIATED(TACCS(KMI)%KTC40)) DEALLOCATE(TACCS(KMI)%KTC40) -IF (ASSOCIATED(TACCS(KMI)%KTC41)) DEALLOCATE(TACCS(KMI)%KTC41) -IF (ASSOCIATED(TACCS(KMI)%KTC42)) DEALLOCATE(TACCS(KMI)%KTC42) -IF (ASSOCIATED(TACCS(KMI)%KTC43)) DEALLOCATE(TACCS(KMI)%KTC43) -IF (ASSOCIATED(TACCS(KMI)%KTC44)) DEALLOCATE(TACCS(KMI)%KTC44) -IF (ASSOCIATED(TACCS(KMI)%KTC45)) DEALLOCATE(TACCS(KMI)%KTC45) -IF (ASSOCIATED(TACCS(KMI)%KTC46)) DEALLOCATE(TACCS(KMI)%KTC46) -IF (ASSOCIATED(TACCS(KMI)%KTC47)) DEALLOCATE(TACCS(KMI)%KTC47) -IF (ASSOCIATED(TACCS(KMI)%KTC48)) DEALLOCATE(TACCS(KMI)%KTC48) -IF (ASSOCIATED(TACCS(KMI)%KTC49)) DEALLOCATE(TACCS(KMI)%KTC49) -IF (ASSOCIATED(TACCS(KMI)%KTC50)) DEALLOCATE(TACCS(KMI)%KTC50) -IF (ASSOCIATED(TACCS(KMI)%KTC51)) DEALLOCATE(TACCS(KMI)%KTC51) -IF (ASSOCIATED(TACCS(KMI)%KTC52)) DEALLOCATE(TACCS(KMI)%KTC52) -IF (ASSOCIATED(TACCS(KMI)%KTC53)) DEALLOCATE(TACCS(KMI)%KTC53) -IF (ASSOCIATED(TACCS(KMI)%KTC54)) DEALLOCATE(TACCS(KMI)%KTC54) -IF (ASSOCIATED(TACCS(KMI)%KTC55)) DEALLOCATE(TACCS(KMI)%KTC55) -IF (ASSOCIATED(TACCS(KMI)%KTC56)) DEALLOCATE(TACCS(KMI)%KTC56) -IF (ASSOCIATED(TACCS(KMI)%KTC57)) DEALLOCATE(TACCS(KMI)%KTC57) -IF (ASSOCIATED(TACCS(KMI)%KTC58)) DEALLOCATE(TACCS(KMI)%KTC58) -IF (ASSOCIATED(TACCS(KMI)%KTC59)) DEALLOCATE(TACCS(KMI)%KTC59) -IF (ASSOCIATED(TACCS(KMI)%KTC60)) DEALLOCATE(TACCS(KMI)%KTC60) -IF (ASSOCIATED(TACCS(KMI)%KTC61)) DEALLOCATE(TACCS(KMI)%KTC61) -IF (ASSOCIATED(TACCS(KMI)%KTC62)) DEALLOCATE(TACCS(KMI)%KTC62) IF (ASSOCIATED(TACCS(KMI)%KTR1)) DEALLOCATE(TACCS(KMI)%KTR1) IF (ASSOCIATED(TACCS(KMI)%KTR2)) DEALLOCATE(TACCS(KMI)%KTR2) IF (ASSOCIATED(TACCS(KMI)%KTR3)) DEALLOCATE(TACCS(KMI)%KTR3) @@ -5220,28 +2623,6 @@ IF (ASSOCIATED(TACCS(KMI)%KTR37)) DEALLOCATE(TACCS(KMI)%KTR37) IF (ASSOCIATED(TACCS(KMI)%KTR38)) DEALLOCATE(TACCS(KMI)%KTR38) IF (ASSOCIATED(TACCS(KMI)%KTR39)) DEALLOCATE(TACCS(KMI)%KTR39) IF (ASSOCIATED(TACCS(KMI)%KTR40)) DEALLOCATE(TACCS(KMI)%KTR40) -IF (ASSOCIATED(TACCS(KMI)%KTR41)) DEALLOCATE(TACCS(KMI)%KTR41) -IF (ASSOCIATED(TACCS(KMI)%KTR42)) DEALLOCATE(TACCS(KMI)%KTR42) -IF (ASSOCIATED(TACCS(KMI)%KTR43)) DEALLOCATE(TACCS(KMI)%KTR43) -IF (ASSOCIATED(TACCS(KMI)%KTR44)) DEALLOCATE(TACCS(KMI)%KTR44) -IF (ASSOCIATED(TACCS(KMI)%KTR45)) DEALLOCATE(TACCS(KMI)%KTR45) -IF (ASSOCIATED(TACCS(KMI)%KTR46)) DEALLOCATE(TACCS(KMI)%KTR46) -IF (ASSOCIATED(TACCS(KMI)%KTR47)) DEALLOCATE(TACCS(KMI)%KTR47) -IF (ASSOCIATED(TACCS(KMI)%KTR48)) DEALLOCATE(TACCS(KMI)%KTR48) -IF (ASSOCIATED(TACCS(KMI)%KTR49)) DEALLOCATE(TACCS(KMI)%KTR49) -IF (ASSOCIATED(TACCS(KMI)%KTR50)) DEALLOCATE(TACCS(KMI)%KTR50) -IF (ASSOCIATED(TACCS(KMI)%KTR51)) DEALLOCATE(TACCS(KMI)%KTR51) -IF (ASSOCIATED(TACCS(KMI)%KTR52)) DEALLOCATE(TACCS(KMI)%KTR52) -IF (ASSOCIATED(TACCS(KMI)%KTR53)) DEALLOCATE(TACCS(KMI)%KTR53) -IF (ASSOCIATED(TACCS(KMI)%KTR54)) DEALLOCATE(TACCS(KMI)%KTR54) -IF (ASSOCIATED(TACCS(KMI)%KTR55)) DEALLOCATE(TACCS(KMI)%KTR55) -IF (ASSOCIATED(TACCS(KMI)%KTR56)) DEALLOCATE(TACCS(KMI)%KTR56) -IF (ASSOCIATED(TACCS(KMI)%KTR57)) DEALLOCATE(TACCS(KMI)%KTR57) -IF (ASSOCIATED(TACCS(KMI)%KTR58)) DEALLOCATE(TACCS(KMI)%KTR58) -IF (ASSOCIATED(TACCS(KMI)%KTR59)) DEALLOCATE(TACCS(KMI)%KTR59) -IF (ASSOCIATED(TACCS(KMI)%KTR60)) DEALLOCATE(TACCS(KMI)%KTR60) -IF (ASSOCIATED(TACCS(KMI)%KTR61)) DEALLOCATE(TACCS(KMI)%KTR61) -IF (ASSOCIATED(TACCS(KMI)%KTR62)) DEALLOCATE(TACCS(KMI)%KTR62) IF (ASSOCIATED(TACCS(KMI)%KC1)) DEALLOCATE(TACCS(KMI)%KC1) IF (ASSOCIATED(TACCS(KMI)%KC2)) DEALLOCATE(TACCS(KMI)%KC2) IF (ASSOCIATED(TACCS(KMI)%KC3)) DEALLOCATE(TACCS(KMI)%KC3) @@ -5272,22 +2653,6 @@ IF (ASSOCIATED(TACCS(KMI)%KC27)) DEALLOCATE(TACCS(KMI)%KC27) IF (ASSOCIATED(TACCS(KMI)%KC28)) DEALLOCATE(TACCS(KMI)%KC28) IF (ASSOCIATED(TACCS(KMI)%KC29)) DEALLOCATE(TACCS(KMI)%KC29) IF (ASSOCIATED(TACCS(KMI)%KC30)) DEALLOCATE(TACCS(KMI)%KC30) -IF (ASSOCIATED(TACCS(KMI)%KC31)) DEALLOCATE(TACCS(KMI)%KC31) -IF (ASSOCIATED(TACCS(KMI)%KC32)) DEALLOCATE(TACCS(KMI)%KC32) -IF (ASSOCIATED(TACCS(KMI)%KC33)) DEALLOCATE(TACCS(KMI)%KC33) -IF (ASSOCIATED(TACCS(KMI)%KC34)) DEALLOCATE(TACCS(KMI)%KC34) -IF (ASSOCIATED(TACCS(KMI)%KC35)) DEALLOCATE(TACCS(KMI)%KC35) -IF (ASSOCIATED(TACCS(KMI)%KC36)) DEALLOCATE(TACCS(KMI)%KC36) -IF (ASSOCIATED(TACCS(KMI)%KC37)) DEALLOCATE(TACCS(KMI)%KC37) -IF (ASSOCIATED(TACCS(KMI)%KC38)) DEALLOCATE(TACCS(KMI)%KC38) -IF (ASSOCIATED(TACCS(KMI)%KC39)) DEALLOCATE(TACCS(KMI)%KC39) -IF (ASSOCIATED(TACCS(KMI)%KC40)) DEALLOCATE(TACCS(KMI)%KC40) -IF (ASSOCIATED(TACCS(KMI)%KC41)) DEALLOCATE(TACCS(KMI)%KC41) -IF (ASSOCIATED(TACCS(KMI)%KC42)) DEALLOCATE(TACCS(KMI)%KC42) -IF (ASSOCIATED(TACCS(KMI)%KC43)) DEALLOCATE(TACCS(KMI)%KC43) -IF (ASSOCIATED(TACCS(KMI)%KC44)) DEALLOCATE(TACCS(KMI)%KC44) -IF (ASSOCIATED(TACCS(KMI)%KC45)) DEALLOCATE(TACCS(KMI)%KC45) -IF (ASSOCIATED(TACCS(KMI)%KC46)) DEALLOCATE(TACCS(KMI)%KC46) IF (ASSOCIATED(TACCS(KMI)%KR1)) DEALLOCATE(TACCS(KMI)%KR1) IF (ASSOCIATED(TACCS(KMI)%KR2)) DEALLOCATE(TACCS(KMI)%KR2) IF (ASSOCIATED(TACCS(KMI)%KR3)) DEALLOCATE(TACCS(KMI)%KR3) @@ -5318,29 +2683,8 @@ IF (ASSOCIATED(TACCS(KMI)%KR27)) DEALLOCATE(TACCS(KMI)%KR27) IF (ASSOCIATED(TACCS(KMI)%KR28)) DEALLOCATE(TACCS(KMI)%KR28) IF (ASSOCIATED(TACCS(KMI)%KR29)) DEALLOCATE(TACCS(KMI)%KR29) IF (ASSOCIATED(TACCS(KMI)%KR30)) DEALLOCATE(TACCS(KMI)%KR30) -IF (ASSOCIATED(TACCS(KMI)%KR31)) DEALLOCATE(TACCS(KMI)%KR31) -IF (ASSOCIATED(TACCS(KMI)%KR32)) DEALLOCATE(TACCS(KMI)%KR32) -IF (ASSOCIATED(TACCS(KMI)%KR33)) DEALLOCATE(TACCS(KMI)%KR33) -IF (ASSOCIATED(TACCS(KMI)%KR34)) DEALLOCATE(TACCS(KMI)%KR34) -IF (ASSOCIATED(TACCS(KMI)%KR35)) DEALLOCATE(TACCS(KMI)%KR35) -IF (ASSOCIATED(TACCS(KMI)%KR36)) DEALLOCATE(TACCS(KMI)%KR36) -IF (ASSOCIATED(TACCS(KMI)%KR37)) DEALLOCATE(TACCS(KMI)%KR37) -IF (ASSOCIATED(TACCS(KMI)%KR38)) DEALLOCATE(TACCS(KMI)%KR38) -IF (ASSOCIATED(TACCS(KMI)%KR39)) DEALLOCATE(TACCS(KMI)%KR39) -IF (ASSOCIATED(TACCS(KMI)%KR40)) DEALLOCATE(TACCS(KMI)%KR40) -IF (ASSOCIATED(TACCS(KMI)%KR41)) DEALLOCATE(TACCS(KMI)%KR41) -IF (ASSOCIATED(TACCS(KMI)%KR42)) DEALLOCATE(TACCS(KMI)%KR42) -IF (ASSOCIATED(TACCS(KMI)%KR43)) DEALLOCATE(TACCS(KMI)%KR43) -IF (ASSOCIATED(TACCS(KMI)%KR44)) DEALLOCATE(TACCS(KMI)%KR44) -IF (ASSOCIATED(TACCS(KMI)%KR45)) DEALLOCATE(TACCS(KMI)%KR45) -IF (ASSOCIATED(TACCS(KMI)%KR46)) DEALLOCATE(TACCS(KMI)%KR46) IF (ASSOCIATED(TACCS(KMI)%NVERB)) DEALLOCATE(TACCS(KMI)%NVERB) IF (ASSOCIATED(TACCS(KMI)%MODELLEVEL)) DEALLOCATE(TACCS(KMI)%MODELLEVEL) -IF (ASSOCIATED(TACCS(KMI)%LAT)) DEALLOCATE(TACCS(KMI)%LAT) -IF (ASSOCIATED(TACCS(KMI)%LON)) DEALLOCATE(TACCS(KMI)%LON) -IF (ASSOCIATED(TACCS(KMI)%YEAR)) DEALLOCATE(TACCS(KMI)%YEAR) -IF (ASSOCIATED(TACCS(KMI)%MONTH)) DEALLOCATE(TACCS(KMI)%MONTH) -IF (ASSOCIATED(TACCS(KMI)%DAY)) DEALLOCATE(TACCS(KMI)%DAY) IF (ASSOCIATED(TACCS(KMI)%T)) DEALLOCATE(TACCS(KMI)%T) IF (ASSOCIATED(TACCS(KMI)%PRESSURE)) DEALLOCATE(TACCS(KMI)%PRESSURE) IF (ASSOCIATED(TACCS(KMI)%M)) DEALLOCATE(TACCS(KMI)%M) @@ -5351,74 +2695,14 @@ IF (ASSOCIATED(TACCS(KMI)%RHODREF)) DEALLOCATE(TACCS(KMI)%RHODREF) IF (ASSOCIATED(TACCS(KMI)%O2)) DEALLOCATE(TACCS(KMI)%O2) IF (ASSOCIATED(TACCS(KMI)%N2)) DEALLOCATE(TACCS(KMI)%N2) IF (ASSOCIATED(TACCS(KMI)%H2)) DEALLOCATE(TACCS(KMI)%H2) -IF (ASSOCIATED(TACCS(KMI)%CO2)) DEALLOCATE(TACCS(KMI)%CO2) -IF (ASSOCIATED(TACCS(KMI)%CH4)) DEALLOCATE(TACCS(KMI)%CH4) -IF (ASSOCIATED(TACCS(KMI)%O )) DEALLOCATE(TACCS(KMI)%O ) -IF (ASSOCIATED(TACCS(KMI)%OSD )) DEALLOCATE(TACCS(KMI)%OSD ) -IF (ASSOCIATED(TACCS(KMI)%RO22 )) DEALLOCATE(TACCS(KMI)%RO22 ) -IF (ASSOCIATED(TACCS(KMI)%RO23 )) DEALLOCATE(TACCS(KMI)%RO23 ) -IF (ASSOCIATED(TACCS(KMI)%RO24 )) DEALLOCATE(TACCS(KMI)%RO24 ) -IF (ASSOCIATED(TACCS(KMI)%RO26 )) DEALLOCATE(TACCS(KMI)%RO26 ) -IF (ASSOCIATED(TACCS(KMI)%RO27 )) DEALLOCATE(TACCS(KMI)%RO27 ) -IF (ASSOCIATED(TACCS(KMI)%RO28)) DEALLOCATE(TACCS(KMI)%RO28) -IF (ASSOCIATED(TACCS(KMI)%RO29 )) DEALLOCATE(TACCS(KMI)%RO29 ) -IF (ASSOCIATED(TACCS(KMI)%RO210 )) DEALLOCATE(TACCS(KMI)%RO210 ) -IF (ASSOCIATED(TACCS(KMI)%RO211 )) DEALLOCATE(TACCS(KMI)%RO211 ) -IF (ASSOCIATED(TACCS(KMI)%RO212 )) DEALLOCATE(TACCS(KMI)%RO212 ) -IF (ASSOCIATED(TACCS(KMI)%RO213 )) DEALLOCATE(TACCS(KMI)%RO213 ) -IF (ASSOCIATED(TACCS(KMI)%RO214 )) DEALLOCATE(TACCS(KMI)%RO214 ) -IF (ASSOCIATED(TACCS(KMI)%RO215 )) DEALLOCATE(TACCS(KMI)%RO215 ) -IF (ASSOCIATED(TACCS(KMI)%RO216 )) DEALLOCATE(TACCS(KMI)%RO216 ) -IF (ASSOCIATED(TACCS(KMI)%RO217 )) DEALLOCATE(TACCS(KMI)%RO217 ) -IF (ASSOCIATED(TACCS(KMI)%RO218 )) DEALLOCATE(TACCS(KMI)%RO218 ) -IF (ASSOCIATED(TACCS(KMI)%RO219 )) DEALLOCATE(TACCS(KMI)%RO219 ) -IF (ASSOCIATED(TACCS(KMI)%RO220 )) DEALLOCATE(TACCS(KMI)%RO220 ) -IF (ASSOCIATED(TACCS(KMI)%RO221 )) DEALLOCATE(TACCS(KMI)%RO221 ) -IF (ASSOCIATED(TACCS(KMI)%RO222 )) DEALLOCATE(TACCS(KMI)%RO222 ) -IF (ASSOCIATED(TACCS(KMI)%RO223 )) DEALLOCATE(TACCS(KMI)%RO223 ) -IF (ASSOCIATED(TACCS(KMI)%RO224 )) DEALLOCATE(TACCS(KMI)%RO224 ) -IF (ASSOCIATED(TACCS(KMI)%RO225 )) DEALLOCATE(TACCS(KMI)%RO225 ) -IF (ASSOCIATED(TACCS(KMI)%RO226 )) DEALLOCATE(TACCS(KMI)%RO226 ) -IF (ASSOCIATED(TACCS(KMI)%RO227 )) DEALLOCATE(TACCS(KMI)%RO227 ) -IF (ASSOCIATED(TACCS(KMI)%RO228 )) DEALLOCATE(TACCS(KMI)%RO228 ) -IF (ASSOCIATED(TACCS(KMI)%RO229 )) DEALLOCATE(TACCS(KMI)%RO229 ) -IF (ASSOCIATED(TACCS(KMI)%RO230 )) DEALLOCATE(TACCS(KMI)%RO230 ) -IF (ASSOCIATED(TACCS(KMI)%RO231 )) DEALLOCATE(TACCS(KMI)%RO231 ) -IF (ASSOCIATED(TACCS(KMI)%RO232 )) DEALLOCATE(TACCS(KMI)%RO232 ) -IF (ASSOCIATED(TACCS(KMI)%RO233 )) DEALLOCATE(TACCS(KMI)%RO233 ) -IF (ASSOCIATED(TACCS(KMI)%RO234 )) DEALLOCATE(TACCS(KMI)%RO234 ) -IF (ASSOCIATED(TACCS(KMI)%RO235 )) DEALLOCATE(TACCS(KMI)%RO235 ) -IF (ASSOCIATED(TACCS(KMI)%RO236 )) DEALLOCATE(TACCS(KMI)%RO236 ) -IF (ASSOCIATED(TACCS(KMI)%RO237 )) DEALLOCATE(TACCS(KMI)%RO237 ) -IF (ASSOCIATED(TACCS(KMI)%RO238 )) DEALLOCATE(TACCS(KMI)%RO238 ) -IF (ASSOCIATED(TACCS(KMI)%RO239 )) DEALLOCATE(TACCS(KMI)%RO239 ) -IF (ASSOCIATED(TACCS(KMI)%RO240 )) DEALLOCATE(TACCS(KMI)%RO240 ) -IF (ASSOCIATED(TACCS(KMI)%RO241 )) DEALLOCATE(TACCS(KMI)%RO241 ) -IF (ASSOCIATED(TACCS(KMI)%RO242 )) DEALLOCATE(TACCS(KMI)%RO242 ) -IF (ASSOCIATED(TACCS(KMI)%RO243 )) DEALLOCATE(TACCS(KMI)%RO243 ) -IF (ASSOCIATED(TACCS(KMI)%RO244 )) DEALLOCATE(TACCS(KMI)%RO244 ) -IF (ASSOCIATED(TACCS(KMI)%RO245 )) DEALLOCATE(TACCS(KMI)%RO245 ) -IF (ASSOCIATED(TACCS(KMI)%RO246 )) DEALLOCATE(TACCS(KMI)%RO246 ) -IF (ASSOCIATED(TACCS(KMI)%RO247 )) DEALLOCATE(TACCS(KMI)%RO247 ) -IF (ASSOCIATED(TACCS(KMI)%RO248 )) DEALLOCATE(TACCS(KMI)%RO248 ) -IF (ASSOCIATED(TACCS(KMI)%RO249 )) DEALLOCATE(TACCS(KMI)%RO249 ) -IF (ASSOCIATED(TACCS(KMI)%RO250 )) DEALLOCATE(TACCS(KMI)%RO250 ) -IF (ASSOCIATED(TACCS(KMI)%RO251 )) DEALLOCATE(TACCS(KMI)%RO251 ) -IF (ASSOCIATED(TACCS(KMI)%RO252 )) DEALLOCATE(TACCS(KMI)%RO252 ) -IF (ASSOCIATED(TACCS(KMI)%RO253 )) DEALLOCATE(TACCS(KMI)%RO253 ) -IF (ASSOCIATED(TACCS(KMI)%RO254 )) DEALLOCATE(TACCS(KMI)%RO254 ) -IF (ASSOCIATED(TACCS(KMI)%RO255 )) DEALLOCATE(TACCS(KMI)%RO255 ) -IF (ASSOCIATED(TACCS(KMI)%RO256 )) DEALLOCATE(TACCS(KMI)%RO256 ) -IF (ASSOCIATED(TACCS(KMI)%RO257 )) DEALLOCATE(TACCS(KMI)%RO257 ) -IF (ASSOCIATED(TACCS(KMI)%RO258 )) DEALLOCATE(TACCS(KMI)%RO258 ) -IF (ASSOCIATED(TACCS(KMI)%RAD1 )) DEALLOCATE(TACCS(KMI)%RAD1 ) -IF (ASSOCIATED(TACCS(KMI)%RAD2 )) DEALLOCATE(TACCS(KMI)%RAD2 ) -IF (ASSOCIATED(TACCS(KMI)%RAD3 )) DEALLOCATE(TACCS(KMI)%RAD3 ) -IF (ASSOCIATED(TACCS(KMI)%RAD4 )) DEALLOCATE(TACCS(KMI)%RAD4 ) -IF (ASSOCIATED(TACCS(KMI)%RAD5 )) DEALLOCATE(TACCS(KMI)%RAD5 ) -IF (ASSOCIATED(TACCS(KMI)%RAD6 )) DEALLOCATE(TACCS(KMI)%RAD6 ) -IF (ASSOCIATED(TACCS(KMI)%RAD7 )) DEALLOCATE(TACCS(KMI)%RAD7 ) -IF (ASSOCIATED(TACCS(KMI)%RAD8 )) DEALLOCATE(TACCS(KMI)%RAD8 ) +IF (ASSOCIATED(TACCS(KMI)%OH)) DEALLOCATE(TACCS(KMI)%OH) +IF (ASSOCIATED(TACCS(KMI)%O1D)) DEALLOCATE(TACCS(KMI)%O1D) +IF (ASSOCIATED(TACCS(KMI)%O3P)) DEALLOCATE(TACCS(KMI)%O3P) +IF (ASSOCIATED(TACCS(KMI)%LAT)) DEALLOCATE(TACCS(KMI)%LAT) +IF (ASSOCIATED(TACCS(KMI)%LON)) DEALLOCATE(TACCS(KMI)%LON) +IF (ASSOCIATED(TACCS(KMI)%YEAR)) DEALLOCATE(TACCS(KMI)%YEAR) +IF (ASSOCIATED(TACCS(KMI)%MONTH)) DEALLOCATE(TACCS(KMI)%MONTH) +IF (ASSOCIATED(TACCS(KMI)%DAY)) DEALLOCATE(TACCS(KMI)%DAY) IF (ASSOCIATED(TACCS(KMI)%LWC)) DEALLOCATE(TACCS(KMI)%LWC) IF (ASSOCIATED(TACCS(KMI)%MOL2MOLECCLOUD)) DEALLOCATE(TACCS(KMI)%MOL2MOLECCLOUD) IF (ASSOCIATED(TACCS(KMI)%RADC)) DEALLOCATE(TACCS(KMI)%RADC) @@ -5427,81 +2711,9 @@ IF (ASSOCIATED(TACCS(KMI)%LWR)) DEALLOCATE(TACCS(KMI)%LWR) IF (ASSOCIATED(TACCS(KMI)%MOL2MOLECRAIN)) DEALLOCATE(TACCS(KMI)%MOL2MOLECRAIN) IF (ASSOCIATED(TACCS(KMI)%RADR)) DEALLOCATE(TACCS(KMI)%RADR) IF (ASSOCIATED(TACCS(KMI)%PHR)) DEALLOCATE(TACCS(KMI)%PHR) +IF (ASSOCIATED(TACCS(KMI)%CO2)) DEALLOCATE(TACCS(KMI)%CO2) IF (ASSOCIATED(TACCS(KMI)%RCH)) DEALLOCATE(TACCS(KMI)%RCH) IF (ASSOCIATED(TACCS(KMI)%W_O2)) DEALLOCATE(TACCS(KMI)%W_O2) -IF (ASSOCIATED(TACCS(KMI)%CF1)) DEALLOCATE(TACCS(KMI)%CF1) -IF (ASSOCIATED(TACCS(KMI)%CF2)) DEALLOCATE(TACCS(KMI)%CF2) -IF (ASSOCIATED(TACCS(KMI)%CF3)) DEALLOCATE(TACCS(KMI)%CF3) -IF (ASSOCIATED(TACCS(KMI)%CF4)) DEALLOCATE(TACCS(KMI)%CF4) -IF (ASSOCIATED(TACCS(KMI)%CF5)) DEALLOCATE(TACCS(KMI)%CF5) -IF (ASSOCIATED(TACCS(KMI)%CF6)) DEALLOCATE(TACCS(KMI)%CF6) -IF (ASSOCIATED(TACCS(KMI)%CF7)) DEALLOCATE(TACCS(KMI)%CF7) -IF (ASSOCIATED(TACCS(KMI)%CF8)) DEALLOCATE(TACCS(KMI)%CF8) -IF (ASSOCIATED(TACCS(KMI)%CF9)) DEALLOCATE(TACCS(KMI)%CF9) -IF (ASSOCIATED(TACCS(KMI)%CF10)) DEALLOCATE(TACCS(KMI)%CF10) -IF (ASSOCIATED(TACCS(KMI)%CF11)) DEALLOCATE(TACCS(KMI)%CF11) -IF (ASSOCIATED(TACCS(KMI)%CF12)) DEALLOCATE(TACCS(KMI)%CF12) -IF (ASSOCIATED(TACCS(KMI)%CF13)) DEALLOCATE(TACCS(KMI)%CF13) -IF (ASSOCIATED(TACCS(KMI)%CF14)) DEALLOCATE(TACCS(KMI)%CF14) -IF (ASSOCIATED(TACCS(KMI)%CF15)) DEALLOCATE(TACCS(KMI)%CF15) -IF (ASSOCIATED(TACCS(KMI)%CF16)) DEALLOCATE(TACCS(KMI)%CF16) -IF (ASSOCIATED(TACCS(KMI)%CF17)) DEALLOCATE(TACCS(KMI)%CF17) -IF (ASSOCIATED(TACCS(KMI)%CF18)) DEALLOCATE(TACCS(KMI)%CF18) -IF (ASSOCIATED(TACCS(KMI)%CF19)) DEALLOCATE(TACCS(KMI)%CF19) -IF (ASSOCIATED(TACCS(KMI)%CF20)) DEALLOCATE(TACCS(KMI)%CF20) -IF (ASSOCIATED(TACCS(KMI)%CF21)) DEALLOCATE(TACCS(KMI)%CF21) -IF (ASSOCIATED(TACCS(KMI)%CF22)) DEALLOCATE(TACCS(KMI)%CF22) -IF (ASSOCIATED(TACCS(KMI)%CF23)) DEALLOCATE(TACCS(KMI)%CF23) -IF (ASSOCIATED(TACCS(KMI)%CF24)) DEALLOCATE(TACCS(KMI)%CF24) -IF (ASSOCIATED(TACCS(KMI)%CF25)) DEALLOCATE(TACCS(KMI)%CF25) -IF (ASSOCIATED(TACCS(KMI)%CF26)) DEALLOCATE(TACCS(KMI)%CF26) -IF (ASSOCIATED(TACCS(KMI)%CF27)) DEALLOCATE(TACCS(KMI)%CF27) -IF (ASSOCIATED(TACCS(KMI)%CF28)) DEALLOCATE(TACCS(KMI)%CF28) -IF (ASSOCIATED(TACCS(KMI)%CF29)) DEALLOCATE(TACCS(KMI)%CF29) -IF (ASSOCIATED(TACCS(KMI)%CF30)) DEALLOCATE(TACCS(KMI)%CF30) -IF (ASSOCIATED(TACCS(KMI)%CF31)) DEALLOCATE(TACCS(KMI)%CF31) -IF (ASSOCIATED(TACCS(KMI)%CF32)) DEALLOCATE(TACCS(KMI)%CF32) -IF (ASSOCIATED(TACCS(KMI)%CF33)) DEALLOCATE(TACCS(KMI)%CF33) -IF (ASSOCIATED(TACCS(KMI)%CF34)) DEALLOCATE(TACCS(KMI)%CF34) -IF (ASSOCIATED(TACCS(KMI)%CF35)) DEALLOCATE(TACCS(KMI)%CF35) -IF (ASSOCIATED(TACCS(KMI)%CF36)) DEALLOCATE(TACCS(KMI)%CF36) -IF (ASSOCIATED(TACCS(KMI)%CF37)) DEALLOCATE(TACCS(KMI)%CF37) -IF (ASSOCIATED(TACCS(KMI)%CF38)) DEALLOCATE(TACCS(KMI)%CF38) -IF (ASSOCIATED(TACCS(KMI)%CF39)) DEALLOCATE(TACCS(KMI)%CF39) -IF (ASSOCIATED(TACCS(KMI)%CF40)) DEALLOCATE(TACCS(KMI)%CF40) -IF (ASSOCIATED(TACCS(KMI)%CF41)) DEALLOCATE(TACCS(KMI)%CF41) -IF (ASSOCIATED(TACCS(KMI)%CF42)) DEALLOCATE(TACCS(KMI)%CF42) -IF (ASSOCIATED(TACCS(KMI)%CF43)) DEALLOCATE(TACCS(KMI)%CF43) -IF (ASSOCIATED(TACCS(KMI)%CF44)) DEALLOCATE(TACCS(KMI)%CF44) -IF (ASSOCIATED(TACCS(KMI)%CF45)) DEALLOCATE(TACCS(KMI)%CF45) -IF (ASSOCIATED(TACCS(KMI)%CF46)) DEALLOCATE(TACCS(KMI)%CF46) -IF (ASSOCIATED(TACCS(KMI)%CF47)) DEALLOCATE(TACCS(KMI)%CF47) -IF (ASSOCIATED(TACCS(KMI)%CF48)) DEALLOCATE(TACCS(KMI)%CF48) -IF (ASSOCIATED(TACCS(KMI)%CF49)) DEALLOCATE(TACCS(KMI)%CF49) -IF (ASSOCIATED(TACCS(KMI)%CFA1)) DEALLOCATE(TACCS(KMI)%CFA1) -IF (ASSOCIATED(TACCS(KMI)%CFA2)) DEALLOCATE(TACCS(KMI)%CFA2) -IF (ASSOCIATED(TACCS(KMI)%CFA3)) DEALLOCATE(TACCS(KMI)%CFA3) -IF (ASSOCIATED(TACCS(KMI)%CFA4)) DEALLOCATE(TACCS(KMI)%CFA4) -IF (ASSOCIATED(TACCS(KMI)%CFA5)) DEALLOCATE(TACCS(KMI)%CFA5) -IF (ASSOCIATED(TACCS(KMI)%CFA6)) DEALLOCATE(TACCS(KMI)%CFA6) -IF (ASSOCIATED(TACCS(KMI)%CFA7)) DEALLOCATE(TACCS(KMI)%CFA7) -IF (ASSOCIATED(TACCS(KMI)%CFA8)) DEALLOCATE(TACCS(KMI)%CFA8) -IF (ASSOCIATED(TACCS(KMI)%CFA9)) DEALLOCATE(TACCS(KMI)%CFA9) -IF (ASSOCIATED(TACCS(KMI)%CFA10)) DEALLOCATE(TACCS(KMI)%CFA10) -IF (ASSOCIATED(TACCS(KMI)%CFA11)) DEALLOCATE(TACCS(KMI)%CFA11) -IF (ASSOCIATED(TACCS(KMI)%CFA12)) DEALLOCATE(TACCS(KMI)%CFA12) -IF (ASSOCIATED(TACCS(KMI)%CFA13)) DEALLOCATE(TACCS(KMI)%CFA13) -IF (ASSOCIATED(TACCS(KMI)%CFA14)) DEALLOCATE(TACCS(KMI)%CFA14) -IF (ASSOCIATED(TACCS(KMI)%CFA15)) DEALLOCATE(TACCS(KMI)%CFA15) -IF (ASSOCIATED(TACCS(KMI)%CFA16)) DEALLOCATE(TACCS(KMI)%CFA16) -IF (ASSOCIATED(TACCS(KMI)%CFA17)) DEALLOCATE(TACCS(KMI)%CFA17) -IF (ASSOCIATED(TACCS(KMI)%CFA18)) DEALLOCATE(TACCS(KMI)%CFA18) -IF (ASSOCIATED(TACCS(KMI)%CFA19)) DEALLOCATE(TACCS(KMI)%CFA19) -IF (ASSOCIATED(TACCS(KMI)%CFA20)) DEALLOCATE(TACCS(KMI)%CFA20) -IF (ASSOCIATED(TACCS(KMI)%CFA21)) DEALLOCATE(TACCS(KMI)%CFA21) -IF (ASSOCIATED(TACCS(KMI)%CFA22)) DEALLOCATE(TACCS(KMI)%CFA22) -IF (ASSOCIATED(TACCS(KMI)%CFA23)) DEALLOCATE(TACCS(KMI)%CFA23) -IF (ASSOCIATED(TACCS(KMI)%CFA24)) DEALLOCATE(TACCS(KMI)%CFA24) END SUBROUTINE CH_DEALLOCATE_TACCS ! !======================================================================== @@ -5598,167 +2810,97 @@ TACCS(KMI)%NOUT = KOUT IF (GFIRSTCALL) THEN GFIRSTCALL = .FALSE. ! initialisation of the names of the chemical species - CNAMES(1) = 'NO' - CNAMES(2) = 'NO2' - CNAMES(3) = 'O3' - CNAMES(4) = 'HONO' - CNAMES(5) = 'HNO3' - CNAMES(6) = 'HNO4' - CNAMES(7) = 'N2O5' - CNAMES(8) = 'NO3' - CNAMES(9) = 'NH3' - CNAMES(10) = 'HO2' - CNAMES(11) = 'CO' - CNAMES(12) = 'H2O2' - CNAMES(13) = 'SO2' - CNAMES(14) = 'H2SO4' - CNAMES(15) = 'OH' - CNAMES(16) = 'ETHE' - CNAMES(17) = 'OLEL' - CNAMES(18) = 'OLEH' - CNAMES(19) = 'ALKL' - CNAMES(20) = 'ALKM' - CNAMES(21) = 'ALKH' - CNAMES(22) = 'AROH' - CNAMES(23) = 'AROL' - CNAMES(24) = 'AROO' - CNAMES(25) = 'ARAL' - CNAMES(26) = 'ARAC' - CNAMES(27) = 'PAH' - CNAMES(28) = 'HCHO' - CNAMES(29) = 'ALD2' - CNAMES(30) = 'KETL' - CNAMES(31) = 'KETH' - CNAMES(32) = 'MEOH' - CNAMES(33) = 'ETOH' - CNAMES(34) = 'ALCH' - CNAMES(35) = 'ISOP' - CNAMES(36) = 'BIOL' - CNAMES(37) = 'BIOH' - CNAMES(38) = 'MTBE' - CNAMES(39) = 'MVK' - CNAMES(40) = 'MCR' - CNAMES(41) = 'MGLY' - CNAMES(42) = 'GLY' - CNAMES(43) = 'ORA1' - CNAMES(44) = 'ORA2' - CNAMES(45) = 'ACID' - CNAMES(46) = 'UR28' - CNAMES(47) = 'UR21' - CNAMES(48) = 'URG2' - CNAMES(49) = 'UR26' - CNAMES(50) = 'RPG2' - CNAMES(51) = 'RP18' - CNAMES(52) = 'RPG3' - CNAMES(53) = 'URG4' - CNAMES(54) = 'UR8' - CNAMES(55) = 'UR17' - CNAMES(56) = 'UR7' - CNAMES(57) = 'RPR3' - CNAMES(58) = 'URG6' - CNAMES(59) = 'UR22' - CNAMES(60) = 'URG7' - CNAMES(61) = 'RPR4' - CNAMES(62) = 'RPR7' - CNAMES(63) = 'RPG7' - CNAMES(64) = 'URG8' - CNAMES(65) = 'UR19' - CNAMES(66) = 'URG9' - CNAMES(67) = 'AP7' - CNAMES(68) = 'URG10' - CNAMES(69) = 'RPR1' - CNAMES(70) = 'RPR5' - CNAMES(71) = 'RPR8' - CNAMES(72) = 'RP10' - CNAMES(73) = 'RP11' - CNAMES(74) = 'RP16' - CNAMES(75) = 'RPRL' - CNAMES(76) = 'APAN' - CNAMES(77) = 'PAN1' - CNAMES(78) = 'PAN2' - CNAMES(79) = 'PAN3' - CNAMES(80) = 'PAN4' - CNAMES(81) = 'PAN6' - CNAMES(82) = 'PAN7' - CNAMES(83) = 'PAN8' - CNAMES(84) = 'PN10' - CNAMES(85) = 'RO2T' - CNAMES(86) = 'RO21' - CNAMES(87) = 'RO25' - CNAMES(88) = 'WC_O3' - CNAMES(89) = 'WC_H2O2' - CNAMES(90) = 'WC_NO' - CNAMES(91) = 'WC_NO2' - CNAMES(92) = 'WC_NO3' - CNAMES(93) = 'WC_N2O5' - CNAMES(94) = 'WC_HONO' - CNAMES(95) = 'WC_HNO3' - CNAMES(96) = 'WC_HNO4' - CNAMES(97) = 'WC_NH3' - CNAMES(98) = 'WC_OH' - CNAMES(99) = 'WC_HO2' - CNAMES(100) = 'WC_CO2' - CNAMES(101) = 'WC_SO2' - CNAMES(102) = 'WC_H2SO4' - CNAMES(103) = 'WC_RO21' - CNAMES(104) = 'WC_RO25' - CNAMES(105) = 'WC_MEOH' - CNAMES(106) = 'WC_ETOH' - CNAMES(107) = 'WC_ALCH' - CNAMES(108) = 'WC_HCHO' - CNAMES(109) = 'WC_ALD2' - CNAMES(110) = 'WC_GLY' - CNAMES(111) = 'WC_MGLY' - CNAMES(112) = 'WC_KETL' - CNAMES(113) = 'WC_ORA1' - CNAMES(114) = 'WC_ORA2' - CNAMES(115) = 'WC_ACID' - CNAMES(116) = 'WC_RP16' - CNAMES(117) = 'WC_UR21' - CNAMES(118) = 'WC_UR28' - CNAMES(119) = 'WC_ACID2' - CNAMES(120) = 'WC_ASO3' - CNAMES(121) = 'WC_ASO4' - CNAMES(122) = 'WC_ASO5' - CNAMES(123) = 'WC_AHSO5' - CNAMES(124) = 'WC_AHMS' - CNAMES(125) = 'WR_O3' - CNAMES(126) = 'WR_H2O2' - CNAMES(127) = 'WR_NO' - CNAMES(128) = 'WR_NO2' - CNAMES(129) = 'WR_NO3' - CNAMES(130) = 'WR_N2O5' - CNAMES(131) = 'WR_HONO' - CNAMES(132) = 'WR_HNO3' - CNAMES(133) = 'WR_HNO4' - CNAMES(134) = 'WR_NH3' - CNAMES(135) = 'WR_OH' - CNAMES(136) = 'WR_HO2' - CNAMES(137) = 'WR_CO2' - CNAMES(138) = 'WR_SO2' - CNAMES(139) = 'WR_H2SO4' - CNAMES(140) = 'WR_RO21' - CNAMES(141) = 'WR_RO25' - CNAMES(142) = 'WR_MEOH' - CNAMES(143) = 'WR_ETOH' - CNAMES(144) = 'WR_ALCH' - CNAMES(145) = 'WR_HCHO' - CNAMES(146) = 'WR_ALD2' - CNAMES(147) = 'WR_GLY' - CNAMES(148) = 'WR_MGLY' - CNAMES(149) = 'WR_KETL' - CNAMES(150) = 'WR_ORA1' - CNAMES(151) = 'WR_ORA2' - CNAMES(152) = 'WR_ACID' - CNAMES(153) = 'WR_RP16' - CNAMES(154) = 'WR_UR21' - CNAMES(155) = 'WR_UR28' - CNAMES(156) = 'WR_ACID2' - CNAMES(157) = 'WR_ASO3' - CNAMES(158) = 'WR_ASO4' - CNAMES(159) = 'WR_ASO5' - CNAMES(160) = 'WR_AHSO5' - CNAMES(161) = 'WR_AHMS' + CNAMES(1) = 'O3' + CNAMES(2) = 'H2O2' + CNAMES(3) = 'NO' + CNAMES(4) = 'NO2' + CNAMES(5) = 'NO3' + CNAMES(6) = 'N2O5' + CNAMES(7) = 'HONO' + CNAMES(8) = 'HNO3' + CNAMES(9) = 'HNO4' + CNAMES(10) = 'NH3' + CNAMES(11) = 'SO2' + CNAMES(12) = 'SULF' + CNAMES(13) = 'CO' + CNAMES(14) = 'OH' + CNAMES(15) = 'HO2' + CNAMES(16) = 'CH4' + CNAMES(17) = 'ETH' + CNAMES(18) = 'ALKA' + CNAMES(19) = 'ALKE' + CNAMES(20) = 'BIO' + CNAMES(21) = 'ARO' + CNAMES(22) = 'HCHO' + CNAMES(23) = 'ALD' + CNAMES(24) = 'KET' + CNAMES(25) = 'CARBO' + CNAMES(26) = 'ONIT' + CNAMES(27) = 'PAN' + CNAMES(28) = 'OP1' + CNAMES(29) = 'OP2' + CNAMES(30) = 'ORA1' + CNAMES(31) = 'ORA2' + CNAMES(32) = 'MO2' + CNAMES(33) = 'ALKAP' + CNAMES(34) = 'ALKEP' + CNAMES(35) = 'BIOP' + CNAMES(36) = 'PHO' + CNAMES(37) = 'ADD' + CNAMES(38) = 'AROP' + CNAMES(39) = 'CARBOP' + CNAMES(40) = 'OLN' + CNAMES(41) = 'XO2' + CNAMES(42) = 'WC_O3' + CNAMES(43) = 'WC_H2O2' + CNAMES(44) = 'WC_NO' + CNAMES(45) = 'WC_NO2' + CNAMES(46) = 'WC_NO3' + CNAMES(47) = 'WC_N2O5' + CNAMES(48) = 'WC_HONO' + CNAMES(49) = 'WC_HNO3' + CNAMES(50) = 'WC_HNO4' + CNAMES(51) = 'WC_NH3' + CNAMES(52) = 'WC_OH' + CNAMES(53) = 'WC_HO2' + CNAMES(54) = 'WC_CO2' + CNAMES(55) = 'WC_SO2' + CNAMES(56) = 'WC_SULF' + CNAMES(57) = 'WC_HCHO' + CNAMES(58) = 'WC_ORA1' + CNAMES(59) = 'WC_ORA2' + CNAMES(60) = 'WC_MO2' + CNAMES(61) = 'WC_OP1' + CNAMES(62) = 'WC_ASO3' + CNAMES(63) = 'WC_ASO4' + CNAMES(64) = 'WC_ASO5' + CNAMES(65) = 'WC_AHSO5' + CNAMES(66) = 'WC_AHMS' + CNAMES(67) = 'WR_O3' + CNAMES(68) = 'WR_H2O2' + CNAMES(69) = 'WR_NO' + CNAMES(70) = 'WR_NO2' + CNAMES(71) = 'WR_NO3' + CNAMES(72) = 'WR_N2O5' + CNAMES(73) = 'WR_HONO' + CNAMES(74) = 'WR_HNO3' + CNAMES(75) = 'WR_HNO4' + CNAMES(76) = 'WR_NH3' + CNAMES(77) = 'WR_OH' + CNAMES(78) = 'WR_HO2' + CNAMES(79) = 'WR_CO2' + CNAMES(80) = 'WR_SO2' + CNAMES(81) = 'WR_SULF' + CNAMES(82) = 'WR_HCHO' + CNAMES(83) = 'WR_ORA1' + CNAMES(84) = 'WR_ORA2' + CNAMES(85) = 'WR_MO2' + CNAMES(86) = 'WR_OP1' + CNAMES(87) = 'WR_ASO3' + CNAMES(88) = 'WR_ASO4' + CNAMES(89) = 'WR_ASO5' + CNAMES(90) = 'WR_AHSO5' + CNAMES(91) = 'WR_AHMS' ! initialisation of the names of the reactions CREACS(1) = 'K001' CREACS(2) = 'K002' @@ -5777,1605 +2919,829 @@ IF (GFIRSTCALL) THEN CREACS(15) = 'K015' CREACS(16) = 'K016' CREACS(17) = 'K017' - CREACS(18) = 'K018A' - CREACS(19) = 'K018B' - CREACS(20) = 'K019' - CREACS(21) = 'K020' - CREACS(22) = 'K021' - CREACS(23) = 'K022' - CREACS(24) = 'K023' - CREACS(25) = 'K024' - CREACS(26) = 'K025' - CREACS(27) = 'K026' - CREACS(28) = 'K027' - CREACS(29) = 'K028' - CREACS(30) = 'K029' - CREACS(31) = 'K030' - CREACS(32) = 'K031' - CREACS(33) = 'K032' - CREACS(34) = 'K033' - CREACS(35) = 'K034' - CREACS(36) = 'K035' - CREACS(37) = 'K036' - CREACS(38) = 'K037' - CREACS(39) = 'K038' - CREACS(40) = 'K039' - CREACS(41) = 'K040' - CREACS(42) = 'K041' - CREACS(43) = 'K042' - CREACS(44) = 'K043' - CREACS(45) = 'K044' - CREACS(46) = 'K045' - CREACS(47) = 'K046' - CREACS(48) = 'K047' - CREACS(49) = 'K048' - CREACS(50) = 'K049' - CREACS(51) = 'K050' - CREACS(52) = 'K051' - CREACS(53) = 'K052' - CREACS(54) = 'K053' - CREACS(55) = 'K054' - CREACS(56) = 'K055' - CREACS(57) = 'K056' - CREACS(58) = 'K057' - CREACS(59) = 'K058' - CREACS(60) = 'K059' - CREACS(61) = 'K060' - CREACS(62) = 'K061' - CREACS(63) = 'K062' - CREACS(64) = 'K063' - CREACS(65) = 'K064' - CREACS(66) = 'K065' - CREACS(67) = 'K066' - CREACS(68) = 'K067' - CREACS(69) = 'K068' - CREACS(70) = 'K069' - CREACS(71) = 'K070' - CREACS(72) = 'K071' - CREACS(73) = 'K072' - CREACS(74) = 'K073' - CREACS(75) = 'K074' - CREACS(76) = 'K075' - CREACS(77) = 'K076' - CREACS(78) = 'K077' - CREACS(79) = 'K078' - CREACS(80) = 'K079' - CREACS(81) = 'K080' - CREACS(82) = 'K081' - CREACS(83) = 'K082' - CREACS(84) = 'K083' - CREACS(85) = 'K084' - CREACS(86) = 'K085' - CREACS(87) = 'K086' - CREACS(88) = 'K087' - CREACS(89) = 'K088' - CREACS(90) = 'K089' - CREACS(91) = 'K090' - CREACS(92) = 'K091' - CREACS(93) = 'K092' - CREACS(94) = 'K093' - CREACS(95) = 'K094' - CREACS(96) = 'K095' - CREACS(97) = 'K096' - CREACS(98) = 'K097' - CREACS(99) = 'K098' - CREACS(100) = 'K099' - CREACS(101) = 'K100' - CREACS(102) = 'K101' - CREACS(103) = 'K102' - CREACS(104) = 'K103' - CREACS(105) = 'K104' - CREACS(106) = 'K105' - CREACS(107) = 'K106' - CREACS(108) = 'K107' - CREACS(109) = 'K108' - CREACS(110) = 'K109' - CREACS(111) = 'K110' - CREACS(112) = 'K111' - CREACS(113) = 'K112' - CREACS(114) = 'K113' - CREACS(115) = 'K114' - CREACS(116) = 'K115' - CREACS(117) = 'K116' - CREACS(118) = 'K117' - CREACS(119) = 'K118' - CREACS(120) = 'K119' - CREACS(121) = 'K120' - CREACS(122) = 'K121' - CREACS(123) = 'K122' - CREACS(124) = 'K123' - CREACS(125) = 'K124' - CREACS(126) = 'K125' - CREACS(127) = 'K126' - CREACS(128) = 'K127' - CREACS(129) = 'K128' - CREACS(130) = 'K129' - CREACS(131) = 'K130' - CREACS(132) = 'K131' - CREACS(133) = 'K132' - CREACS(134) = 'K133' - CREACS(135) = 'K134' - CREACS(136) = 'K135' - CREACS(137) = 'K136' - CREACS(138) = 'K137' - CREACS(139) = 'K138' - CREACS(140) = 'K139' - CREACS(141) = 'K140' - CREACS(142) = 'K141' - CREACS(143) = 'K142' - CREACS(144) = 'K143' - CREACS(145) = 'K144' - CREACS(146) = 'K145' - CREACS(147) = 'K146' - CREACS(148) = 'K147' - CREACS(149) = 'K148' - CREACS(150) = 'K149' - CREACS(151) = 'K150' - CREACS(152) = 'K151' - CREACS(153) = 'K152' - CREACS(154) = 'K153' - CREACS(155) = 'K154' - CREACS(156) = 'K155' - CREACS(157) = 'K156' - CREACS(158) = 'K157' - CREACS(159) = 'K158' - CREACS(160) = 'K159' - CREACS(161) = 'K160' - CREACS(162) = 'K161' - CREACS(163) = 'K162' - CREACS(164) = 'K163' - CREACS(165) = 'K164' - CREACS(166) = 'K165' - CREACS(167) = 'K166' - CREACS(168) = 'K167' - CREACS(169) = 'K168' - CREACS(170) = 'K169' - CREACS(171) = 'K170' - CREACS(172) = 'K171' - CREACS(173) = 'K172' - CREACS(174) = 'K173' - CREACS(175) = 'K174' - CREACS(176) = 'K175' - CREACS(177) = 'K176' - CREACS(178) = 'K177' - CREACS(179) = 'K178' - CREACS(180) = 'K179' - CREACS(181) = 'K180' - CREACS(182) = 'K181' - CREACS(183) = 'K182' - CREACS(184) = 'K183' - CREACS(185) = 'K184' - CREACS(186) = 'K185' - CREACS(187) = 'K186' - CREACS(188) = 'K187' - CREACS(189) = 'K188' - CREACS(190) = 'K189' - CREACS(191) = 'K190' - CREACS(192) = 'K191' - CREACS(193) = 'K192' - CREACS(194) = 'K193' - CREACS(195) = 'K194' - CREACS(196) = 'K195' - CREACS(197) = 'K196' - CREACS(198) = 'K197' - CREACS(199) = 'K198' - CREACS(200) = 'K199' - CREACS(201) = 'K200' - CREACS(202) = 'K201' - CREACS(203) = 'K202' - CREACS(204) = 'K203' - CREACS(205) = 'K204' - CREACS(206) = 'K205' - CREACS(207) = 'K206' - CREACS(208) = 'K207' - CREACS(209) = 'K208' - CREACS(210) = 'K209' - CREACS(211) = 'K210' - CREACS(212) = 'K211' - CREACS(213) = 'K212' - CREACS(214) = 'K213' - CREACS(215) = 'K214' - CREACS(216) = 'K215' - CREACS(217) = 'K216' - CREACS(218) = 'K217' - CREACS(219) = 'K218' - CREACS(220) = 'K219' - CREACS(221) = 'K220' - CREACS(222) = 'K221' - CREACS(223) = 'K222' - CREACS(224) = 'K223' - CREACS(225) = 'K224' - CREACS(226) = 'K225' - CREACS(227) = 'K226' - CREACS(228) = 'K227' - CREACS(229) = 'K228' - CREACS(230) = 'K229' - CREACS(231) = 'K230' - CREACS(232) = 'K231' - CREACS(233) = 'K232' - CREACS(234) = 'K233' - CREACS(235) = 'K234' - CREACS(236) = 'K235' - CREACS(237) = 'K236' - CREACS(238) = 'K237' - CREACS(239) = 'K238' - CREACS(240) = 'K239' - CREACS(241) = 'K240' - CREACS(242) = 'K241' - CREACS(243) = 'K242' - CREACS(244) = 'K243' - CREACS(245) = 'K244' - CREACS(246) = 'K245' - CREACS(247) = 'K246' - CREACS(248) = 'K247' - CREACS(249) = 'K248' - CREACS(250) = 'K249' - CREACS(251) = 'K250' - CREACS(252) = 'K251' - CREACS(253) = 'K252' - CREACS(254) = 'K253' - CREACS(255) = 'K254' - CREACS(256) = 'K255' - CREACS(257) = 'K256' - CREACS(258) = 'K257' - CREACS(259) = 'K258' - CREACS(260) = 'K259' - CREACS(261) = 'K260' - CREACS(262) = 'K261' - CREACS(263) = 'K262' - CREACS(264) = 'K263' - CREACS(265) = 'K264' - CREACS(266) = 'K265' - CREACS(267) = 'K266' - CREACS(268) = 'K267' - CREACS(269) = 'K268' - CREACS(270) = 'K269' - CREACS(271) = 'K270' - CREACS(272) = 'K271' - CREACS(273) = 'K272' - CREACS(274) = 'K273' - CREACS(275) = 'K274' - CREACS(276) = 'K275' - CREACS(277) = 'K276' - CREACS(278) = 'K277' - CREACS(279) = 'K278' - CREACS(280) = 'K279' - CREACS(281) = 'K280' - CREACS(282) = 'K281' - CREACS(283) = 'K282' - CREACS(284) = 'K283' - CREACS(285) = 'K284' - CREACS(286) = 'K285' - CREACS(287) = 'K286' - CREACS(288) = 'K287' - CREACS(289) = 'K288' - CREACS(290) = 'K289' - CREACS(291) = 'K290' - CREACS(292) = 'K291' - CREACS(293) = 'K292' - CREACS(294) = 'K293' - CREACS(295) = 'K294' - CREACS(296) = 'K295' - CREACS(297) = 'K296' - CREACS(298) = 'K297' - CREACS(299) = 'K298' - CREACS(300) = 'K299' - CREACS(301) = 'K300' - CREACS(302) = 'K301' - CREACS(303) = 'K302' - CREACS(304) = 'K303' - CREACS(305) = 'K304' - CREACS(306) = 'K305' - CREACS(307) = 'K306' - CREACS(308) = 'K307' - CREACS(309) = 'K308' - CREACS(310) = 'K309' - CREACS(311) = 'K310' - CREACS(312) = 'K311' - CREACS(313) = 'K312' - CREACS(314) = 'K313' - CREACS(315) = 'K314' - CREACS(316) = 'K315' - CREACS(317) = 'K316' - CREACS(318) = 'K317' - CREACS(319) = 'K318' - CREACS(320) = 'K319' - CREACS(321) = 'K320' - CREACS(322) = 'K321' - CREACS(323) = 'K322' - CREACS(324) = 'K323' - CREACS(325) = 'K324' - CREACS(326) = 'K325' - CREACS(327) = 'K326' - CREACS(328) = 'K327' - CREACS(329) = 'K328' - CREACS(330) = 'K329' - CREACS(331) = 'K330' - CREACS(332) = 'K331' - CREACS(333) = 'K332' - CREACS(334) = 'K333' - CREACS(335) = 'K334' - CREACS(336) = 'K335' - CREACS(337) = 'K337' - CREACS(338) = 'K338' - CREACS(339) = 'K339' - CREACS(340) = 'K340' - CREACS(341) = 'K341' - CREACS(342) = 'K342' - CREACS(343) = 'K343' - CREACS(344) = 'K344' - CREACS(345) = 'K345' - CREACS(346) = 'K346' - CREACS(347) = 'K347' - CREACS(348) = 'K348' - CREACS(349) = 'K349' - CREACS(350) = 'K350' - CREACS(351) = 'K351' - CREACS(352) = 'K352' - CREACS(353) = 'K353' - CREACS(354) = 'K354' - CREACS(355) = 'K355' - CREACS(356) = 'K356' - CREACS(357) = 'K357' - CREACS(358) = 'K358' - CREACS(359) = 'K359' - CREACS(360) = 'K360' - CREACS(361) = 'K361' - CREACS(362) = 'K362' - CREACS(363) = 'K363' - CREACS(364) = 'K364' - CREACS(365) = 'K365' - CREACS(366) = 'KTC1' - CREACS(367) = 'KTC2' - CREACS(368) = 'KTC3' - CREACS(369) = 'KTC4' - CREACS(370) = 'KTC5' - CREACS(371) = 'KTC6' - CREACS(372) = 'KTC7' - CREACS(373) = 'KTC8' - CREACS(374) = 'KTC9' - CREACS(375) = 'KTC10' - CREACS(376) = 'KTC11' - CREACS(377) = 'KTC12' - CREACS(378) = 'KTC13' - CREACS(379) = 'KTC14' - CREACS(380) = 'KTC15' - CREACS(381) = 'KTC16' - CREACS(382) = 'KTC17' - CREACS(383) = 'KTC18' - CREACS(384) = 'KTC19' - CREACS(385) = 'KTC20' - CREACS(386) = 'KTC21' - CREACS(387) = 'KTC22' - CREACS(388) = 'KTC23' - CREACS(389) = 'KTC24' - CREACS(390) = 'KTC25' - CREACS(391) = 'KTC26' - CREACS(392) = 'KTC27' - CREACS(393) = 'KTC28' - CREACS(394) = 'KTC29' - CREACS(395) = 'KTC30' - CREACS(396) = 'KTC31' - CREACS(397) = 'KTC32' - CREACS(398) = 'KTC33' - CREACS(399) = 'KTC34' - CREACS(400) = 'KTC35' - CREACS(401) = 'KTC36' - CREACS(402) = 'KTC37' - CREACS(403) = 'KTC38' - CREACS(404) = 'KTC39' - CREACS(405) = 'KTC40' - CREACS(406) = 'KTC41' - CREACS(407) = 'KTC42' - CREACS(408) = 'KTC43' - CREACS(409) = 'KTC44' - CREACS(410) = 'KTC45' - CREACS(411) = 'KTC46' - CREACS(412) = 'KTC47' - CREACS(413) = 'KTC48' - CREACS(414) = 'KTC49' - CREACS(415) = 'KTC50' - CREACS(416) = 'KTC51' - CREACS(417) = 'KTC52' - CREACS(418) = 'KTC53' - CREACS(419) = 'KTC54' - CREACS(420) = 'KTC55' - CREACS(421) = 'KTC56' - CREACS(422) = 'KTC57' - CREACS(423) = 'KTC58' - CREACS(424) = 'KTC59' - CREACS(425) = 'KTC60' - CREACS(426) = 'KTC61' - CREACS(427) = 'KTC62' - CREACS(428) = 'KTR1' - CREACS(429) = 'KTR2' - CREACS(430) = 'KTR3' - CREACS(431) = 'KTR4' - CREACS(432) = 'KTR5' - CREACS(433) = 'KTR6' - CREACS(434) = 'KTR7' - CREACS(435) = 'KTR8' - CREACS(436) = 'KTR9' - CREACS(437) = 'KTR10' - CREACS(438) = 'KTR11' - CREACS(439) = 'KTR12' - CREACS(440) = 'KTR13' - CREACS(441) = 'KTR14' - CREACS(442) = 'KTR15' - CREACS(443) = 'KTR16' - CREACS(444) = 'KTR17' - CREACS(445) = 'KTR18' - CREACS(446) = 'KTR19' - CREACS(447) = 'KTR20' - CREACS(448) = 'KTR21' - CREACS(449) = 'KTR22' - CREACS(450) = 'KTR23' - CREACS(451) = 'KTR24' - CREACS(452) = 'KTR25' - CREACS(453) = 'KTR26' - CREACS(454) = 'KTR27' - CREACS(455) = 'KTR28' - CREACS(456) = 'KTR29' - CREACS(457) = 'KTR30' - CREACS(458) = 'KTR31' - CREACS(459) = 'KTR32' - CREACS(460) = 'KTR33' - CREACS(461) = 'KTR34' - CREACS(462) = 'KTR35' - CREACS(463) = 'KTR36' - CREACS(464) = 'KTR37' - CREACS(465) = 'KTR38' - CREACS(466) = 'KTR39' - CREACS(467) = 'KTR40' - CREACS(468) = 'KTR41' - CREACS(469) = 'KTR42' - CREACS(470) = 'KTR43' - CREACS(471) = 'KTR44' - CREACS(472) = 'KTR45' - CREACS(473) = 'KTR46' - CREACS(474) = 'KTR47' - CREACS(475) = 'KTR48' - CREACS(476) = 'KTR49' - CREACS(477) = 'KTR50' - CREACS(478) = 'KTR51' - CREACS(479) = 'KTR52' - CREACS(480) = 'KTR53' - CREACS(481) = 'KTR54' - CREACS(482) = 'KTR55' - CREACS(483) = 'KTR56' - CREACS(484) = 'KTR57' - CREACS(485) = 'KTR58' - CREACS(486) = 'KTR59' - CREACS(487) = 'KTR60' - CREACS(488) = 'KTR61' - CREACS(489) = 'KTR62' - CREACS(490) = 'KC1' - CREACS(491) = 'KC2' - CREACS(492) = 'KC3' - CREACS(493) = 'KC4' - CREACS(494) = 'KC5' - CREACS(495) = 'KC6' - CREACS(496) = 'KC7' - CREACS(497) = 'KC8' - CREACS(498) = 'KC9' - CREACS(499) = 'KC10' - CREACS(500) = 'KC11' - CREACS(501) = 'KC12' - CREACS(502) = 'KC13' - CREACS(503) = 'KC14' - CREACS(504) = 'KC15' - CREACS(505) = 'KC16' - CREACS(506) = 'KC17' - CREACS(507) = 'KC18' - CREACS(508) = 'KC19' - CREACS(509) = 'KC20' - CREACS(510) = 'KC21' - CREACS(511) = 'KC22' - CREACS(512) = 'KC23' - CREACS(513) = 'KC24' - CREACS(514) = 'KC25' - CREACS(515) = 'KC26' - CREACS(516) = 'KC27' - CREACS(517) = 'KC28' - CREACS(518) = 'KC29' - CREACS(519) = 'KC30' - CREACS(520) = 'KC31' - CREACS(521) = 'KC32' - CREACS(522) = 'KC33' - CREACS(523) = 'KC34' - CREACS(524) = 'KC35' - CREACS(525) = 'KC36' - CREACS(526) = 'KC37' - CREACS(527) = 'KC38' - CREACS(528) = 'KC39' - CREACS(529) = 'KC40' - CREACS(530) = 'KC41' - CREACS(531) = 'KC42' - CREACS(532) = 'KC43' - CREACS(533) = 'KC44' - CREACS(534) = 'KC45' - CREACS(535) = 'KC46' - CREACS(536) = 'KR1' - CREACS(537) = 'KR2' - CREACS(538) = 'KR3' - CREACS(539) = 'KR4' - CREACS(540) = 'KR5' - CREACS(541) = 'KR6' - CREACS(542) = 'KR7' - CREACS(543) = 'KR8' - CREACS(544) = 'KR9' - CREACS(545) = 'KR10' - CREACS(546) = 'KR11' - CREACS(547) = 'KR12' - CREACS(548) = 'KR13' - CREACS(549) = 'KR14' - CREACS(550) = 'KR15' - CREACS(551) = 'KR16' - CREACS(552) = 'KR17' - CREACS(553) = 'KR18' - CREACS(554) = 'KR19' - CREACS(555) = 'KR20' - CREACS(556) = 'KR21' - CREACS(557) = 'KR22' - CREACS(558) = 'KR23' - CREACS(559) = 'KR24' - CREACS(560) = 'KR25' - CREACS(561) = 'KR26' - CREACS(562) = 'KR27' - CREACS(563) = 'KR28' - CREACS(564) = 'KR29' - CREACS(565) = 'KR30' - CREACS(566) = 'KR31' - CREACS(567) = 'KR32' - CREACS(568) = 'KR33' - CREACS(569) = 'KR34' - CREACS(570) = 'KR35' - CREACS(571) = 'KR36' - CREACS(572) = 'KR37' - CREACS(573) = 'KR38' - CREACS(574) = 'KR39' - CREACS(575) = 'KR40' - CREACS(576) = 'KR41' - CREACS(577) = 'KR42' - CREACS(578) = 'KR43' - CREACS(579) = 'KR44' - CREACS(580) = 'KR45' - CREACS(581) = 'KR46' + CREACS(18) = 'K018' + CREACS(19) = 'K019' + CREACS(20) = 'K020' + CREACS(21) = 'K021' + CREACS(22) = 'K022' + CREACS(23) = 'K023' + CREACS(24) = 'K024' + CREACS(25) = 'K025' + CREACS(26) = 'K026' + CREACS(27) = 'K027' + CREACS(28) = 'K028' + CREACS(29) = 'K029' + CREACS(30) = 'K030' + CREACS(31) = 'K031' + CREACS(32) = 'K032' + CREACS(33) = 'K033' + CREACS(34) = 'K034' + CREACS(35) = 'K035' + CREACS(36) = 'K036' + CREACS(37) = 'K037' + CREACS(38) = 'K038' + CREACS(39) = 'K039' + CREACS(40) = 'K040' + CREACS(41) = 'K041' + CREACS(42) = 'K042' + CREACS(43) = 'K043' + CREACS(44) = 'K044' + CREACS(45) = 'K045' + CREACS(46) = 'K046' + CREACS(47) = 'K047' + CREACS(48) = 'K048' + CREACS(49) = 'K049' + CREACS(50) = 'K050' + CREACS(51) = 'K051' + CREACS(52) = 'K052' + CREACS(53) = 'K053' + CREACS(54) = 'K054' + CREACS(55) = 'K055' + CREACS(56) = 'K056' + CREACS(57) = 'K057' + CREACS(58) = 'K058' + CREACS(59) = 'K059' + CREACS(60) = 'K060' + CREACS(61) = 'K061' + CREACS(62) = 'K062' + CREACS(63) = 'K063' + CREACS(64) = 'K064' + CREACS(65) = 'K065' + CREACS(66) = 'K066' + CREACS(67) = 'K067' + CREACS(68) = 'K068' + CREACS(69) = 'K069' + CREACS(70) = 'K070' + CREACS(71) = 'K071' + CREACS(72) = 'K072' + CREACS(73) = 'K073' + CREACS(74) = 'K074' + CREACS(75) = 'K075' + CREACS(76) = 'K076' + CREACS(77) = 'K077' + CREACS(78) = 'K078' + CREACS(79) = 'K079' + CREACS(80) = 'K080' + CREACS(81) = 'K081' + CREACS(82) = 'K082' + CREACS(83) = 'K083' + CREACS(84) = 'K084' + CREACS(85) = 'K085' + CREACS(86) = 'K086' + CREACS(87) = 'K087' + CREACS(88) = 'K088' + CREACS(89) = 'K089' + CREACS(90) = 'K090' + CREACS(91) = 'K091' + CREACS(92) = 'K092' + CREACS(93) = 'K093' + CREACS(94) = 'K094' + CREACS(95) = 'K095' + CREACS(96) = 'K096' + CREACS(97) = 'K097' + CREACS(98) = 'K098' + CREACS(99) = 'K099' + CREACS(100) = 'K0100' + CREACS(101) = 'K0101' + CREACS(102) = 'K0102' + CREACS(103) = 'K103' + CREACS(104) = 'K104' + CREACS(105) = 'K105' + CREACS(106) = 'K106' + CREACS(107) = 'K107' + CREACS(108) = 'K108' + CREACS(109) = 'K109' + CREACS(110) = 'K110' + CREACS(111) = 'K111' + CREACS(112) = 'K112' + CREACS(113) = 'K113' + CREACS(114) = 'K114' + CREACS(115) = 'K115' + CREACS(116) = 'K116' + CREACS(117) = 'K117' + CREACS(118) = 'K118' + CREACS(119) = 'K119' + CREACS(120) = 'K120' + CREACS(121) = 'K121' + CREACS(122) = 'K122' + CREACS(123) = 'K123' + CREACS(124) = 'K124' + CREACS(125) = 'K125' + CREACS(126) = 'K126' + CREACS(127) = 'K127' + CREACS(128) = 'K128' + CREACS(129) = 'K129' + CREACS(130) = 'K130' + CREACS(131) = 'K131' + CREACS(132) = 'K132' + CREACS(133) = 'KTC1' + CREACS(134) = 'KTC2' + CREACS(135) = 'KTC3' + CREACS(136) = 'KTC4' + CREACS(137) = 'KTC5' + CREACS(138) = 'KTC6' + CREACS(139) = 'KTC7' + CREACS(140) = 'KTC8' + CREACS(141) = 'KTC9' + CREACS(142) = 'KTC10' + CREACS(143) = 'KTC11' + CREACS(144) = 'KTC12' + CREACS(145) = 'KTC13' + CREACS(146) = 'KTC14' + CREACS(147) = 'KTC15' + CREACS(148) = 'KTC16' + CREACS(149) = 'KTC17' + CREACS(150) = 'KTC18' + CREACS(151) = 'KTC19' + CREACS(152) = 'KTC20' + CREACS(153) = 'KTC21' + CREACS(154) = 'KTC22' + CREACS(155) = 'KTC23' + CREACS(156) = 'KTC24' + CREACS(157) = 'KTC25' + CREACS(158) = 'KTC26' + CREACS(159) = 'KTC27' + CREACS(160) = 'KTC28' + CREACS(161) = 'KTC29' + CREACS(162) = 'KTC30' + CREACS(163) = 'KTC31' + CREACS(164) = 'KTC32' + CREACS(165) = 'KTC33' + CREACS(166) = 'KTC34' + CREACS(167) = 'KTC35' + CREACS(168) = 'KTC36' + CREACS(169) = 'KTC37' + CREACS(170) = 'KTC38' + CREACS(171) = 'KTC39' + CREACS(172) = 'KTC40' + CREACS(173) = 'KTR1' + CREACS(174) = 'KTR2' + CREACS(175) = 'KTR3' + CREACS(176) = 'KTR4' + CREACS(177) = 'KTR5' + CREACS(178) = 'KTR6' + CREACS(179) = 'KTR7' + CREACS(180) = 'KTR8' + CREACS(181) = 'KTR9' + CREACS(182) = 'KTR10' + CREACS(183) = 'KTR11' + CREACS(184) = 'KTR12' + CREACS(185) = 'KTR13' + CREACS(186) = 'KTR14' + CREACS(187) = 'KTR15' + CREACS(188) = 'KTR16' + CREACS(189) = 'KTR17' + CREACS(190) = 'KTR18' + CREACS(191) = 'KTR19' + CREACS(192) = 'KTR20' + CREACS(193) = 'KTR21' + CREACS(194) = 'KTR22' + CREACS(195) = 'KTR23' + CREACS(196) = 'KTR24' + CREACS(197) = 'KTR25' + CREACS(198) = 'KTR26' + CREACS(199) = 'KTR27' + CREACS(200) = 'KTR28' + CREACS(201) = 'KTR29' + CREACS(202) = 'KTR30' + CREACS(203) = 'KTR31' + CREACS(204) = 'KTR32' + CREACS(205) = 'KTR33' + CREACS(206) = 'KTR34' + CREACS(207) = 'KTR35' + CREACS(208) = 'KTR36' + CREACS(209) = 'KTR37' + CREACS(210) = 'KTR38' + CREACS(211) = 'KTR39' + CREACS(212) = 'KTR40' + CREACS(213) = 'KC1' + CREACS(214) = 'KC2' + CREACS(215) = 'KC3' + CREACS(216) = 'KC4' + CREACS(217) = 'KC5' + CREACS(218) = 'KC6' + CREACS(219) = 'KC7' + CREACS(220) = 'KC8' + CREACS(221) = 'KC9' + CREACS(222) = 'KC10' + CREACS(223) = 'KC11' + CREACS(224) = 'KC12' + CREACS(225) = 'KC13' + CREACS(226) = 'KC14' + CREACS(227) = 'KC15' + CREACS(228) = 'KC16' + CREACS(229) = 'KC17' + CREACS(230) = 'KC18' + CREACS(231) = 'KC19' + CREACS(232) = 'KC20' + CREACS(233) = 'KC21' + CREACS(234) = 'KC22' + CREACS(235) = 'KC23' + CREACS(236) = 'KC24' + CREACS(237) = 'KC25' + CREACS(238) = 'KC26' + CREACS(239) = 'KC27' + CREACS(240) = 'KC28' + CREACS(241) = 'KC29' + CREACS(242) = 'KC30' + CREACS(243) = 'KR1' + CREACS(244) = 'KR2' + CREACS(245) = 'KR3' + CREACS(246) = 'KR4' + CREACS(247) = 'KR5' + CREACS(248) = 'KR6' + CREACS(249) = 'KR7' + CREACS(250) = 'KR8' + CREACS(251) = 'KR9' + CREACS(252) = 'KR10' + CREACS(253) = 'KR11' + CREACS(254) = 'KR12' + CREACS(255) = 'KR13' + CREACS(256) = 'KR14' + CREACS(257) = 'KR15' + CREACS(258) = 'KR16' + CREACS(259) = 'KR17' + CREACS(260) = 'KR18' + CREACS(261) = 'KR19' + CREACS(262) = 'KR20' + CREACS(263) = 'KR21' + CREACS(264) = 'KR22' + CREACS(265) = 'KR23' + CREACS(266) = 'KR24' + CREACS(267) = 'KR25' + CREACS(268) = 'KR26' + CREACS(269) = 'KR27' + CREACS(270) = 'KR28' + CREACS(271) = 'KR29' + CREACS(272) = 'KR30' ! initialisation of the full reactions - CFULLREACS(1) = 'K001=!ZRATES(:,001)::NO2-->NO+O' - CFULLREACS(2) = 'K002=TPK%M*5.60E-34*(TPK%T/300)**(-2.6)::O+O2-->O3' - CFULLREACS(3) = 'K003=6.5E-12*EXP(119.8/TPK%T)::O+NO2-->NO+O2' - CFULLREACS(4) = 'K004=@TROE(1.,9.0E-32,2.,2.2E-11,0.,0.8,TPK%M,TPK%T,KVECNPT):& -&:O+NO2-->NO3' - CFULLREACS(5) = 'K005=1.8E-12*EXP(-1368.9/TPK%T)::NO+O3-->NO2+O2' - CFULLREACS(6) = 'K006=1.4E-13*EXP(-2471.1/TPK%T)::NO2+O3-->NO3+O2' - CFULLREACS(7) = 'K007=1.8E-11*EXP(110.7/TPK%T)::NO+NO3-->2.*NO2' - CFULLREACS(8) = 'K008=5.09E-18/TPK%T*EXP(528.4/TPK%T)::NO+NO-->2.*NO2' - CFULLREACS(9) = 'K009=@TROE(1.,2.8E-30,3.5,2.0E-12,0.2,0.45,TPK%M,TPK%T,KVECNP& -&T)::NO2+NO3-->N2O5' - CFULLREACS(10) = 'K010=@TROE_EQUIL(2.8E-30,3.5,2.0E-12,0.2,3.70E+26,11000.0,0.& -&45,TPK%M,TPK%T,KVECNPT)::N2O5-->NO2+NO3' - CFULLREACS(11) = 'K011=2.59E-22::N2O5+H2O-->2.*HNO3' - CFULLREACS(12) = 'K012=4.5E-14*EXP(-1258.2/TPK%T)::NO2+NO3-->NO+NO2+O2' - CFULLREACS(13) = 'K013=!ZRATES(:,007)::NO3-->NO+O2' - CFULLREACS(14) = 'K014=!ZRATES(:,008)::NO3-->NO2+O' - CFULLREACS(15) = 'K015=!ZRATES(:,003)::O3-->O+O2' - CFULLREACS(16) = 'K016=!ZRATES(:,002)::O3-->OSD+O2' - CFULLREACS(17) = 'K017=2.2E-10::OSD+H2O-->OH+OH' - CFULLREACS(18) = 'K018A=1.80E-11*exp(-(-110.0/TPK%T))::OSD+N2-->O+N2' - CFULLREACS(19) = 'K018B=3.20E-11*exp(-(-70.0/TPK%T))::OSD+O2-->O+O2' - CFULLREACS(20) = 'K019=@TROE(1.,7.0E-31,2.6,3.6E-11,0.1,0.6,TPK%M,TPK%T,KVECNP& -&T)::NO+OH-->HONO' - CFULLREACS(21) = 'K020=!ZRATES(:,004)::HONO-->0.9*NO+0.1*NO2+0.9*OH+0.1*HO2' - CFULLREACS(22) = 'K021=4.0E-24::NO2+H2O-->0.5*HONO+0.5*HNO3' - CFULLREACS(23) = 'K022=@TROE(1.,2.85E-30,2.67,3.13E-11,0.,0.6,TPK%M,TPK%T,KVEC& -&NPT)::NO2+OH-->HNO3' - CFULLREACS(24) = 'K023=@TROE_KA(7.2E-15,785.1,4.1E-16,1439.4,1.9E-33,724.7,TPK& -&%M,TPK%T,KVECNPT)::HNO3+OH-->NO3+H2O' - CFULLREACS(25) = 'K024=@TROE_KB(1.3E-13,0.,3.19E-33,0.,TPK%M,TPK%T,KVECNPT)::C& -&O+OH-->HO2+CO2' - CFULLREACS(26) = 'K025=1.9E-12*EXP(-1001.5/TPK%T)::O3+OH-->HO2+O2' - CFULLREACS(27) = 'K026=3.41E-12*EXP(271.8/TPK%T)::NO+HO2-->NO2+OH' - CFULLREACS(28) = 'K027=@TROE(1.,1.8E-31,3.2,4.7E-12,0.,0.6,TPK%M,TPK%T,KVECNPT& -&)::NO2+HO2-->HNO4' - CFULLREACS(29) = 'K028=@TROE_EQUIL(1.8E-31,3.2,4.7E-12,0.,4.76E+26,10900.,0.6,& -&TPK%M,TPK%T,KVECNPT)::HNO4-->NO2+HO2' - CFULLREACS(30) = 'K029=1.5E-12*EXP(362.4/TPK%T)::HNO4+OH-->NO2+O2+H2O' - CFULLREACS(31) = 'K030=1.4E-14*EXP(-598.9/TPK%T)::O3+HO2-->OH+2.*O2' - CFULLREACS(32) = 'K031=@TROE_KB(2.2E-13,598.9,1.85E-33,981.4,TPK%M,TPK%T,KVECN& -&PT)::HO2+HO2-->H2O2' - CFULLREACS(33) = 'K032=@TROE_KB(3.08E-34,2798.2,2.59E-54,3180.7,TPK%M,TPK%T,KV& -&ECNPT)::HO2+HO2+H2O-->H2O2+O2+H2O' - CFULLREACS(34) = 'K033=4.0E-12::NO3+HO2-->0.8*NO2+0.2*HNO3+0.8*OH+O2' - CFULLREACS(35) = 'K034=8.0E-12*EXP(-2058.4/TPK%T)::O+O3-->2.*O2' - CFULLREACS(36) = 'K035=@TROE(1.,4.1E-31,3.3,2.0E-12,0.,0.45,TPK%M,TPK%T,KVECNP& -&T)::SO2+OH-->H2SO4+HO2' - CFULLREACS(37) = 'K036=!ZRATES(:,009)::H2O2-->2.*OH' - CFULLREACS(38) = 'K037=2.91E-12*EXP(-161/TPK%T)::H2O2+OH-->HO2+H2O' - CFULLREACS(39) = 'K038=@TROE(1.,9.00E-32,1.5,3.00E-11,0.0,0.6,TPK%M,TPK%T,KVEC& -&NPT)::O+NO-->NO2' - CFULLREACS(40) = 'K039=2.7E-12*EXP(261.7/TPK%T)::HONO+OH-->NO2+H2O' - CFULLREACS(41) = 'K040=2.0E-11::NO3+OH-->NO2+HO2' - CFULLREACS(42) = 'K041=8.5E-13*EXP(-2450.9/TPK%T)::NO3+NO3-->2.*NO2+O2' - CFULLREACS(43) = 'K042=4.8E-11*EXP(251.6/TPK%T)::OH+HO2-->H2O+O2' - CFULLREACS(44) = 'K043=2.66E-12*EXP(-1800.2/TPK%T)::CH4+OH-->RO21+RO2T+H2O' - CFULLREACS(45) = 'K044=!ZRATES(:,011)::HCHO-->CO+2.0*HO2' - CFULLREACS(46) = 'K045=!ZRATES(:,010)::HCHO-->CO+H2' - CFULLREACS(47) = 'K046=1.2E-14*TPK%T*EXP(286.9/TPK%T)::HCHO+OH-->CO+HO2+H2O' - CFULLREACS(48) = 'K047=2.0E-12*EXP(-2430.8/TPK%T)::HCHO+NO3-->HNO3+CO+HO2' - CFULLREACS(49) = 'K048=6.0E-18*TPK%T**2*EXP(170.1/TPK%T)::MEOH+OH-->HO2+HCHO+H& + CFULLREACS(1) = 'K001=!ZRATES(:,001)::NO2-->O3P+NO' + CFULLREACS(2) = 'K002=!ZRATES(:,002)::O3-->O1D+O2' + CFULLREACS(3) = 'K003=!ZRATES(:,003)::O3-->O3P+O2' + CFULLREACS(4) = 'K004=!ZRATES(:,004)::HONO-->OH+NO' + CFULLREACS(5) = 'K005=!ZRATES(:,005)::HNO3-->OH+NO2' + CFULLREACS(6) = 'K006=!ZRATES(:,006)::HNO4-->0.65*HO2+0.65*NO2+0.35*OH+0.35*NO& +&3' + CFULLREACS(7) = 'K007=!ZRATES(:,007)::NO3-->NO+O2' + CFULLREACS(8) = 'K008=!ZRATES(:,008)::NO3-->NO2+O3P' + CFULLREACS(9) = 'K009=!ZRATES(:,009)::H2O2-->OH+OH' + CFULLREACS(10) = 'K010=!ZRATES(:,010)::HCHO-->H2+CO' + CFULLREACS(11) = 'K011=!ZRATES(:,011)::HCHO-->HO2+HO2+CO' + CFULLREACS(12) = 'K012=!ZRATES(:,012)::ALD-->MO2+HO2+CO' + CFULLREACS(13) = 'K013=!ZRATES(:,013)::OP1-->HCHO+HO2+OH' + CFULLREACS(14) = 'K014=!ZRATES(:,014)::OP2-->0.96205*ALD+0.96205*HO2+0.03795*M& +&O2+OH' + CFULLREACS(15) = 'K015=!ZRATES(:,015)::KET-->1.00000*CARBOP+1.00000*ALKAP' + CFULLREACS(16) = 'K016=!ZRATES(:,016)::CARBO-->0.06517*HCHO+0.69622*CARBOP+0.7& +&5830*HO2+0.91924*CO+0.20842*H2' + CFULLREACS(17) = 'K017=!ZRATES(:,017)::ONIT-->0.20*ALD+0.80*KET+HO2+NO2' + CFULLREACS(18) = 'K018=TPK%M*6.00E-34*(TPK%T/300)**(-2.3)::O3P+O2-->O3' + CFULLREACS(19) = 'K019=8.00E-12*exp(-(2060.0/TPK%T))::O3P+O3-->2.0*O2' + CFULLREACS(20) = 'K020=1.80E-11*exp(-(-110.0/TPK%T))::O1D+N2-->O3P+N2' + CFULLREACS(21) = 'K021=3.20E-11*exp(-(-70.0/TPK%T))::O1D+O2-->O3P+O2' + CFULLREACS(22) = 'K022=2.20E-10::O1D+H2O-->OH+OH' + CFULLREACS(23) = 'K023=1.60E-12*exp(-(940.0/TPK%T))::O3+OH-->HO2+O2' + CFULLREACS(24) = 'K024=1.10E-14*exp(-(500.0/TPK%T))::O3+HO2-->OH+2.0*O2' + CFULLREACS(25) = 'K025=4.80E-11*exp(-(-250.0/TPK%T))::OH+HO2-->H2O+O2' + CFULLREACS(26) = 'K026=2.90E-12*exp(-(160.0/TPK%T))::H2O2+OH-->HO2+H2O' + CFULLREACS(27) = 'K027=2.3E-13*EXP(600./TPK%T)+1.7E-33*TPK%M*EXP(1000./TPK%T):& +&:HO2+HO2-->H2O2+O2' + CFULLREACS(28) = 'K028=3.22E-34*EXP(2800./TPK%T)+2.38E-54*TPK%M*EXP(3200./TPK%& +&T)::HO2+HO2+H2O-->H2O2+H2O+O2' + CFULLREACS(29) = 'K029=@TROE(1.,9.00E-32,1.5,3.00E-11,0.0,TPK%M,TPK%T,KVECNPT)& +&::O3P+NO-->NO2' + CFULLREACS(30) = 'K030=6.50E-12*exp(-(-120.0/TPK%T))::O3P+NO2-->NO+O2' + CFULLREACS(31) = 'K031=@TROE(1.,9.00E-32,2.0,2.20E-11,0.0,TPK%M,TPK%T,KVECNPT)& +&::O3P+NO2-->NO3' + CFULLREACS(32) = 'K032=@TROE(1.,7.00E-31,2.6,1.50E-11,0.5,TPK%M,TPK%T,KVECNPT)& +&::OH+NO-->HONO' + CFULLREACS(33) = 'K033=@TROE(1.,2.60E-30,3.2,2.40E-11,1.3,TPK%M,TPK%T,KVECNPT)& +&::OH+NO2-->HNO3' + CFULLREACS(34) = 'K034=2.20E-11::OH+NO3-->NO2+HO2' + CFULLREACS(35) = 'K035=3.70E-12*exp(-(-250.0/TPK%T))::HO2+NO-->NO2+OH' + CFULLREACS(36) = 'K036=@TROE(1.,1.80E-31,3.2,4.70E-12,1.4,TPK%M,TPK%T,KVECNPT)& +&::HO2+NO2-->HNO4' + CFULLREACS(37) = 'K037=@TROE_EQUIL(1.80E-31,3.2,4.70E-12,1.4,4.76E+26,10900.,T& +&PK%M,TPK%T,KVECNPT)::HNO4-->HO2+NO2' + CFULLREACS(38) = 'K038=3.50E-12::HO2+NO3-->0.3*HNO3+0.7*NO2+0.7*OH' + CFULLREACS(39) = 'K039=1.80E-11*exp(-(390.0/TPK%T))::OH+HONO-->H2O+NO2' + CFULLREACS(40) = 'K040=(7.2E-15*EXP(785/TPK%T))+(1.9E-33*EXP(725/TPK%T)*TPK%M)& +&/(1+(1.9E-33*EXP(725/TPK%T)*TPK%M)/(4.1E-16*EXP(1440/TPK%T)))::OH+HNO3-->NO3+H& &2O' - CFULLREACS(50) = 'K049=1.96E-12*EXP(437.8/TPK%T)::ETHE+OH-->RO22+RO2T' - CFULLREACS(51) = 'K050=4.89E-18*TPK%T**2*EXP(-2282.3/TPK%T)::ETHE+NO3-->RO23+R& -&O2T' - CFULLREACS(52) = 'K051=9.14E-15*EXP(-2580.3/TPK%T)::ETHE+O3-->0.315*CO+0.06*HO& -&2+0.06*OH+0.5*HCHO+0.07*H2O+0.185*ORA1' - CFULLREACS(53) = 'K052=7.3E-13::ETHE+O-->0.6*CO+HO2+0.6*RO21+0.4*RO24+RO2T' - CFULLREACS(54) = 'K053=6.18E-18*TPK%T**2*EXP(532/TPK%T)::ETOH+OH-->TPK%CF1*HO2& -&+TPK%CF1*ALD2+TPK%CF2*RO22+TPK%CF2*RO2T+H2O' - CFULLREACS(55) = 'K054=5.86E-12*EXP(500.3/TPK%T)::OLEL+OH-->RO22+RO2T' - CFULLREACS(56) = 'K055=1.0E-13*EXP(-800.2/TPK%T)::OLEL+NO3-->RO23+RO2T' - CFULLREACS(57) = 'K056=1.0E-17::OLEL+O3-->0.56*CO+0.2*CO2+0.36*OH+0.28*HO2+0.5& -&*HCHO+0.5*ALD2+0.1*ALKL+0.28*RO25+0.28*RO2T+0.12*ORA1+0.12*ORA2' - CFULLREACS(58) = 'K057=4.66E-12::OLEL+O-->0.5*ALKL+0.4*ALD2+0.1*RO24+0.1*RO25+& -&0.2*RO2T' - CFULLREACS(59) = 'K058=3.91E-12::ALKL+OH-->RO25+RO2T+H2O' - CFULLREACS(60) = 'K059=!ZRATES(:,012)::ALD2-->CO+HO2+RO25+RO2T' - CFULLREACS(61) = 'K060=6.91E-12*EXP(250/TPK%T)::ALD2+OH-->RO26+RO2T+H2O' - CFULLREACS(62) = 'K061=3.0E-13*EXP(-1427/TPK%T)::ALD2+NO3-->HNO3+RO26+RO2T' - CFULLREACS(63) = 'K062=4.91E-12::KETL+OH-->RO27+RO2T+H2O' - CFULLREACS(64) = 'K063=!ZRATES(:,023)::KETL-->RO25+RO28+2.*RO2T' - CFULLREACS(65) = 'K064=2.55E-11*EXP(410.2/TPK%T)::ISOP+OH-->0.66*RO29+0.34*RO2& -&10+RO2T' - CFULLREACS(66) = 'K065=3.02E-12*EXP(-445.9/TPK%T)::ISOP+NO3-->0.66*RO211+0.34*& -&RO212+RO2T' - CFULLREACS(67) = 'K066=7.86E-15*EXP(-1912.9/TPK%T)::ISOP+O3-->0.068*CO2+0.461*& -&CO+0.5*HCHO+0.664*OH+0.366*HO2+0.054*OLEL+0.389*MVK+0.17*MCR+0.271*RO213+0.095& -&*RO214+0.366*RO2T+0.121*ORA1' - CFULLREACS(68) = 'K067=3.5E-11::ISOP+O-->0.925*OLEL+0.075*ALD2' - CFULLREACS(69) = 'K068=3.2E-12::MTBE+OH-->RO215+RO2T+H2O' - CFULLREACS(70) = 'K069=1.28E-11::ALCH+OH-->RO22+RO2T+H2O' - CFULLREACS(71) = 'K070=5.1E-12::KETH+OH-->RO216+RO2T+H2O' - CFULLREACS(72) = 'K071=!ZRATES(:,016)::KETH-->RO25+RO28+2.*RO2T' - CFULLREACS(73) = 'K072=3.77E-12::AROO+NO3-->HNO3+RAD1' - CFULLREACS(74) = 'K073=2.264E-10::AROO+OH-->0.16*HO2+0.16*AROO+0.1*RO217+0.1*R& -&O2T+0.74*RAD2+0.1*H2O' - CFULLREACS(75) = 'K074=3.47E-11::OLEH+OH-->RO218+RO2T' - CFULLREACS(76) = 'K075=3.47E-11*1.0E-13*EXP(-800.2/TPK%T)/(5.86E-12*EXP(500.3/& -&TPK%T))::OLEH+NO3-->RO219+RO2T' - CFULLREACS(77) = 'K076=3.47E-11*1.0E-17/(5.86E-12*EXP(500.3/TPK%T))::OLEH+O3--& -&>0.56*CO+0.2*CO2+0.36*OH+0.28*HO2+0.5*HCHO+0.5*RPR1+0.12*ACID+0.1*ALKM+0.28*RO& -&220+0.28*RO2T' - CFULLREACS(78) = 'K077=3.47E-11*4.66E-12/(5.86E-12*EXP(500.3/TPK%T))::OLEH+O--& -&>0.5*ALKM+0.4*RPR1+0.1*RO24+0.1*RO220+0.2*RO2T' - CFULLREACS(79) = 'K078=1.03E-11::ALKM+OH-->RO220+RO2T+H2O' - CFULLREACS(80) = 'K079=3.27E-11::AROL+OH-->0.16*HO2+0.16*AROO+0.1*RO221+0.74*R& -&AD3+0.06*RO2T+0.06*H2O' - CFULLREACS(81) = 'K080=1.52E-11::AROH+OH-->0.16*HO2+0.16*AROO+0.84*RAD4' - CFULLREACS(82) = 'K081=1.4E-12*EXP(-1872.2/TPK%T)::ARAL+NO3-->HNO3+O3+ARAC' - CFULLREACS(83) = 'K082=1.29E-11::ARAL+OH-->0.9983609*RPRL+TPK%CF48*HO2+TPK%CF3& -&9*O3+TPK%CF39*ARAC+TPK%CF45*RO222+TPK%CF40*RAD5+TPK%CF45*RO2T+TPK%CF48*H2O' - CFULLREACS(84) = 'K083=1.1E-12::ARAC+OH-->0.16*HO2+0.1599999*URG7+0.1*RO223+0.& -&74*RAD6+0.1*RO2T+0.1*H2O' - CFULLREACS(85) = 'K084=1.7E-10::BIOL+OH-->RO224+RO2T' - CFULLREACS(86) = 'K085=1.46E-11::BIOL+NO3-->RO225+RO2T' - CFULLREACS(87) = 'K086=2.5E-16::BIOL+O3-->0.445*CO+0.055*H2O2+0.445*HO2+0.89*O& -&H+5.5000000E-02*URG4+0.055*RPR3+0.445*RO226+0.445*RO2T' - CFULLREACS(88) = 'K087=1.7E-10*4.66E-12/(5.86E-12*EXP(500.3/TPK%T))::BIOL+O-->& -&0.7500000*URG10+0.2500000*URG10' - CFULLREACS(89) = 'K088=1.77E-10::BIOH+OH-->RO227+RO2T' - CFULLREACS(90) = 'K089=2.91E-11::BIOH+NO3-->RO228+RO2T' - CFULLREACS(91) = 'K090=1.4E-16::BIOH+O3-->0.445*CO+0.055*H2O2+0.89*OH+0.055*UR& -&7+0.055*UR8+0.445*RO229+0.445*RO230+0.89*RO2T' - CFULLREACS(92) = 'K091=8.59E-11::BIOH+O-->' - CFULLREACS(93) = 'K092=7.7E-11::PAH+OH-->0.16*HO2+0.1600000*URG8+0.1*RO231+0.7& -&4*RAD7+0.1*RO2T+0.1*H2O' - CFULLREACS(94) = 'K093=1.97E-11::ALKH+OH-->RO232+RO2T+H2O' - CFULLREACS(95) = 'K094=3.41E-13*EXP(800.2/TPK%T)::RO2T+HO2-->HO2' - CFULLREACS(96) = 'K095=4.2E-12*EXP(181.2/TPK%T)::RO2T+NO-->NO' - CFULLREACS(97) = 'K096=1.0E-15::RO2T+RO2T-->RO2T' - CFULLREACS(98) = 'K097=0.9*7.7E5/TPK%T::RAD2-->RO233+RO2T' - CFULLREACS(99) = 'K098=0.9*7.7E5/TPK%T::RAD3-->RO234+RO2T' - CFULLREACS(100) = 'K099=0.9*7.7E5/TPK%T::RAD4-->RO235+RO2T' - CFULLREACS(101) = 'K100=0.9*7.7E5/TPK%T::RAD5-->RO236+RO2T' - CFULLREACS(102) = 'K101=0.9*7.7E5/TPK%T::RAD6-->RO237+RO2T' - CFULLREACS(103) = 'K102=0.9*7.7E5/TPK%T::RAD7-->RO238+RO2T' - CFULLREACS(104) = 'K103=1.7*3.0E-11::RAD1+NO2-->RPR4' - CFULLREACS(105) = 'K104=1.7*3.0E-11::RAD2+NO2-->RPR4+H2O' - CFULLREACS(106) = 'K105=1.7*3.0E-11::RAD3+NO2-->H2O' - CFULLREACS(107) = 'K106=1.7*3.0E-11::RAD4+NO2-->H2O' - CFULLREACS(108) = 'K107=1.7*3.0E-11::RAD5+NO2-->RPR5+H2O' - CFULLREACS(109) = 'K108=1.7*3.0E-11::RAD6+NO2-->0.9999993*URG7+H2O' - CFULLREACS(110) = 'K109=1.7*3.0E-11::RAD7+NO2-->1.0000000*URG8+H2O' - CFULLREACS(111) = 'K110=4.09E-12*EXP(180.2/TPK%T)::RO21+NO-->NO2+HO2+HCHO' - CFULLREACS(112) = 'K111=1.0E-15::RO21+RO2T-->HO2+HCHO+RO2T+O2' - CFULLREACS(113) = 'K112=3.41E-13*EXP(800.2/TPK%T)::RO21+HO2-->HO2+OH+HCHO' - CFULLREACS(114) = 'K113=2.45E-12*EXP(180.2/TPK%T)::RO22+NO-->NO2+HO2+HCHO+ALD2& -&' - CFULLREACS(115) = 'K114=1.0E-15::RO22+RO2T-->HO2+HCHO+ALD2+RO2T+O2' - CFULLREACS(116) = 'K115=3.41E-13*EXP(800.2/TPK%T)::RO22+HO2-->OH+HO2+HCHO+ALD2& -&' - CFULLREACS(117) = 'K116=2.45E-12*EXP(180.2/TPK%T)::RO23+NO-->2.*NO2+HCHO+ALD2' - CFULLREACS(118) = 'K117=1.0E-15::RO23+RO2T-->NO2+HO2+HCHO+ALD2+O2+RO2T' - CFULLREACS(119) = 'K118=3.41E-13*EXP(800.2/TPK%T)::RO23+HO2-->NO2+HO2+OH+HCHO+& -&ALD2' - CFULLREACS(120) = 'K119=3.45E-12*EXP(180.2/TPK%T)::RO24+NO-->NO2+CO+HO2+HCHO' - CFULLREACS(121) = 'K120=1.0E-15::RO24+RO2T-->CO+HO2+HCHO+RO2T+O2' - CFULLREACS(122) = 'K121=3.41E-13*EXP(800.2/TPK%T)::RO24+HO2-->CO+HO2+OH+HCHO' - CFULLREACS(123) = 'K122=2.91E-12*EXP(180.2/TPK%T)::RO25+NO-->TPK%CF3*ALKL+TPK%& -&CF4*NO2+TPK%CF4*HO2+TPK%CF4*ALD2' - CFULLREACS(124) = 'K123=1.0E-15::RO25+RO2T-->HO2+ALD2+RO2T+O2' - CFULLREACS(125) = 'K124=3.41E-13*EXP(800.2/TPK%T)::RO25+HO2-->HO2+OH+ALD2' - CFULLREACS(126) = 'K125=1.11E-11*EXP(180.2/TPK%T)::RO26+NO-->NO2+CO2+RO25+RO2T& -&' - CFULLREACS(127) = 'K126=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& -&PT)::RO26+NO2-->PAN1' - CFULLREACS(128) = 'K127=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& -&PT)::RO28+NO2-->PAN2' - CFULLREACS(129) = 'K128=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& -&PT)::RO239+NO2-->PAN3' - CFULLREACS(130) = 'K129=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& -&PT)::RO248+NO2-->PAN4' - CFULLREACS(131) = 'K130=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& -&PT)::RO250+NO2-->APAN' - CFULLREACS(132) = 'K131=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& -&PT)::RO254+NO2-->PAN6' - CFULLREACS(133) = 'K132=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& -&PT)::RO255+NO2-->PAN7' - CFULLREACS(134) = 'K133=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& -&PT)::RO257+NO2-->APAN' - CFULLREACS(135) = 'K134=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& -&PT)::RO258+NO2-->PN10' - CFULLREACS(136) = 'K135=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& -&6,TPK%M,TPK%T,KVECNPT)::PAN1-->NO2+RO26+RO2T' - CFULLREACS(137) = 'K136=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& -&6,TPK%M,TPK%T,KVECNPT)::PAN2-->NO2+RO28+RO2T' - CFULLREACS(138) = 'K137=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& -&6,TPK%M,TPK%T,KVECNPT)::PAN3-->NO2+RO239+RO2T' - CFULLREACS(139) = 'K138=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& -&6,TPK%M,TPK%T,KVECNPT)::PN10-->NO2+RO258+RO2T' - CFULLREACS(140) = 'K139=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& -&6,TPK%M,TPK%T,KVECNPT)::APAN-->1.0000000*NO2+0.3750353*RO250+0.6249651*RO257+1& -&.0000000*RO2T' - CFULLREACS(141) = 'K140=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& -&6,TPK%M,TPK%T,KVECNPT)::PAN6-->NO2+RO254+RO2T' - CFULLREACS(142) = 'K141=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& -&6,TPK%M,TPK%T,KVECNPT)::PAN4-->NO2+RO248+RO2T' - CFULLREACS(143) = 'K142=3.41E-13*EXP(800.2/TPK%T)/3.5::RO26+HO2-->O3+ACID+ORA2& + CFULLREACS(41) = 'K041=1.30E-12*exp(-(-380.0/TPK%T))::OH+HNO4-->NO2+H2O+O2' + CFULLREACS(42) = 'K042=2.00E-12*exp(-(1400.0/TPK%T))::O3+NO-->NO2+O2' + CFULLREACS(43) = 'K043=1.20E-13*exp(-(2450.0/TPK%T))::O3+NO2-->NO3+O2' + CFULLREACS(44) = 'K044=3.30E-39*exp(-(-530.0/TPK%T))::NO+NO+O2-->NO2+NO2' + CFULLREACS(45) = 'K045=1.50E-11*exp(-(-170.0/TPK%T))::NO3+NO-->NO2+NO2' + CFULLREACS(46) = 'K046=4.50E-14*exp(-(1260.0/TPK%T))::NO3+NO2-->NO+NO2+O2' + CFULLREACS(47) = 'K047=@TROE(1.,2.20E-30,3.9,1.50E-12,0.7,TPK%M,TPK%T,KVECNPT)& +&::NO3+NO2-->N2O5' + CFULLREACS(48) = 'K048=@TROE_EQUIL(2.20E-30,3.9,1.50E-12,0.7,3.70E+26,11000.0,& +&TPK%M,TPK%T,KVECNPT)::N2O5-->NO2+NO3' + CFULLREACS(49) = 'K049=8.50E-13*exp(-(2450.0/TPK%T))::NO3+NO3-->NO2+NO2+O2' + CFULLREACS(50) = 'K050=3.30E-12*exp(-(900.0/TPK%T))::NH3+OH-->' + CFULLREACS(51) = 'K051=5.50E-12*exp(-(2000.0/TPK%T))::OH+H2-->H2O+HO2' + CFULLREACS(52) = 'K052=@TROE(1.,3.00E-31,3.3,1.50E-12,0.0,TPK%M,TPK%T,KVECNPT)& +&::OH+SO2-->SULF+HO2' + CFULLREACS(53) = 'K053=1.5E-13*(1.+2.439E-20*TPK%M)::CO+OH-->HO2+CO2' + CFULLREACS(54) = 'K054=6.00E-11::BIO+O3P-->0.91868*ALKE+0.05*HCHO+0.02*OH+0.01& +&*CO+0.13255*CARBO+0.28*HO2+0.15*XO2' + CFULLREACS(55) = 'K055=0.00E-01*exp(-(-13.0/TPK%T))::CARBO+O3P-->ALD' + CFULLREACS(56) = 'K056=TPK%T*TPK%T*7.44E-18*exp(-(1361./TPK%T))::CH4+OH-->MO2+& +&H2O' + CFULLREACS(57) = 'K057=1.51E-17*TPK%T*TPK%T*exp(-(492./TPK%T))::ETH+OH-->ALKAP& &' - CFULLREACS(144) = 'K143=1.0E-15::RO26+RO2T-->CO2+RO25+2.*RO2T+O2' - CFULLREACS(145) = 'K144=2.45E-12*EXP(180.2/TPK%T)::RO27+NO-->NO2+ALD2+RO28+RO2& -&T' - CFULLREACS(146) = 'K145=1.0E-15::RO27+RO2T-->ALD2+RO28+2.*RO2T+O2' - CFULLREACS(147) = 'K146=3.41E-13*EXP(800.2/TPK%T)::RO27+HO2-->OH+ALD2+RO28+RO2& -&T' - CFULLREACS(148) = 'K147=1.11E-11*EXP(180.2/TPK%T)::RO28+NO-->NO2+CO2+RO21+RO2T& -&' - CFULLREACS(149) = 'K148=3.41E-13*EXP(800.2/TPK%T)/3.5::RO28+HO2-->O3+ORA2' - CFULLREACS(150) = 'K149=1.0E-15::RO28+RO2T-->CO2+RO21+2.*RO2T+O2' - CFULLREACS(151) = 'K150=2.08E-12*EXP(180.2/TPK%T)::RO29+NO-->TPK%CF5*OLEL+TPK%& -&CF6*NO2+TPK%CF6*HO2+TPK%CF6*HCHO+TPK%CF6*MVK' - CFULLREACS(152) = 'K151=1.0E-15::RO29+RO2T-->HO2+MVK+HCHO+RO2T+O2' - CFULLREACS(153) = 'K152=3.41E-13*EXP(800.2/TPK%T)::RO29+HO2-->HO2+OH+MVK+HCHO' - CFULLREACS(154) = 'K153=2.08E-12*EXP(180.2/TPK%T)::RO210+NO-->NO2+HO2+HCHO+MCR& -&' - CFULLREACS(155) = 'K154=1.0E-15::RO210+RO2T-->HO2+HCHO+MCR+RO2T+O2' - CFULLREACS(156) = 'K155=3.41E-13*EXP(800.2/TPK%T)::RO210+HO2-->HO2+OH+HCHO+MCR& -&' - CFULLREACS(157) = 'K156=2.08E-12*EXP(180.2/TPK%T)::RO211+NO-->2.*NO2+HCHO+MVK' - CFULLREACS(158) = 'K157=1.0E-15::RO211+RO2T-->NO2+HCHO+MVK+RO2T+O2' - CFULLREACS(159) = 'K158=3.41E-13*EXP(800.2/TPK%T)::RO211+HO2-->NO2+OH+HCHO+MVK& -&' - CFULLREACS(160) = 'K159=2.08E-12*EXP(180.2/TPK%T)::RO212+NO-->2.*NO2+HCHO+MCR' - CFULLREACS(161) = 'K160=1.0E-15::RO212+RO2T-->NO2+HCHO+MCR+RO2T+O2' - CFULLREACS(162) = 'K161=3.41E-13*EXP(800.2/TPK%T)::RO212+HO2-->NO2+OH+HCHO+MCR& -&' - CFULLREACS(163) = 'K162=2.45E-12*EXP(180.2/TPK%T)::RO213+NO-->NO2+HCHO+RO239+R& -&O2T' - CFULLREACS(164) = 'K163=1.0E-15::RO213+RO2T-->HCHO+RO239+2.*RO2T+O2' - CFULLREACS(165) = 'K164=3.41E-13*EXP(800.2/TPK%T)::RO213+HO2-->HCHO+OH+RO239+R& -&O2T' - CFULLREACS(166) = 'K165=1.11E-11*EXP(180.2/TPK%T)::RO239+NO-->NO2+CO2+RO214+RO& -&2T' - CFULLREACS(167) = 'K166=3.41E-13*EXP(800.2/TPK%T)/3.5::RO239+HO2-->O3+0.5*OLEL& -&+0.5*ORA2' - CFULLREACS(168) = 'K167=1.0E-15::RO239+RO2T-->CO2+RO214+2.*RO2T+O2' - CFULLREACS(169) = 'K168=2.91E-12*EXP(180.2/TPK%T)::RO214+NO-->TPK%CF7*OLEL+TPK& -&%CF8*NO2+TPK%CF8*RO27+TPK%CF8*RO2T' - CFULLREACS(170) = 'K169=1.0E-15::RO214+RO2T-->RO27+2.*RO2T+O2' - CFULLREACS(171) = 'K170=3.41E-13*EXP(800.2/TPK%T)::RO214+HO2-->OH+RO27+RO2T' - CFULLREACS(172) = 'K171=2.08E-12*EXP(180.2/TPK%T)::RO215+NO-->NO2+HO2+TPK%CF9*& -&ALD2+TPK%CF10*HCHO+TPK%CF11*KETL+TPK%CF12*ALKL' - CFULLREACS(173) = 'K172=1.0E-15::RO215+RO2T-->HO2+TPK%CF13*ALD2+TPK%CF14*HCHO+& -&TPK%CF15*KETL+TPK%CF16*ALKL+RO2T+O2' - CFULLREACS(174) = 'K173=3.41E-13*EXP(800.2/TPK%T)::RO215+HO2-->OH+HO2+TPK%CF13& -&*ALD2+TPK%CF14*HCHO+TPK%CF15*KETL+TPK%CF16*ALKL' - CFULLREACS(175) = 'K174=1.48E-12*EXP(180.2/TPK%T)::RO216+NO-->NO2+ALD2+RO28+RO& -&2T' - CFULLREACS(176) = 'K175=1.0E-15::RO216+RO2T-->ALD2+RO28+2.*RO2T+O2' - CFULLREACS(177) = 'K176=3.41E-13*EXP(800.2/TPK%T)::RO216+HO2-->OH+ALD2+RO28+RO& -&2T' - CFULLREACS(178) = 'K177=1.25E-12*EXP(180.2/TPK%T)::RO217+NO-->TPK%CF21*URG6+TP& -&K%CF22*NO2+TPK%CF22*HO2+TPK%CFA2*RPRL' - CFULLREACS(179) = 'K178=1.0E-15::RO217+RO2T-->HO2+0.9983609*RPRL+RO2T+O2' - CFULLREACS(180) = 'K179=3.41E-13*EXP(800.2/TPK%T)::RO217+HO2-->HO2+OH+0.998360& -&9*RPRL' - CFULLREACS(181) = 'K180=1.25E-12*EXP(180.2/TPK%T)::RO218+NO-->TPK%CF20*NO2+TPK& -&%CF20*HO2' - CFULLREACS(182) = 'K181=1.0E-15::RO218+RO2T-->HO2+RO2T+O2' - CFULLREACS(183) = 'K182=3.41E-13*EXP(800.2/TPK%T)::RO218+HO2-->HO2+OH' - CFULLREACS(184) = 'K183=1.05E-12*EXP(180.2/TPK%T)::RO219+NO-->2.*NO2+HCHO+RPR1& -&' - CFULLREACS(185) = 'K184=1.0E-15::RO219+RO2T-->NO2+HCHO+RPR1+RO2T+O2' - CFULLREACS(186) = 'K185=3.41E-13*EXP(800.2/TPK%T)::RO219+HO2-->NO2+OH+HCHO+RPR& -&1' - CFULLREACS(187) = 'K186=1.25E-12*EXP(180.2/TPK%T)::RO220+NO-->TPK%CF18*NO2+TPK& -&%CF18*RO218+TPK%CF18*RO2T' - CFULLREACS(188) = 'K187=1.0E-15::RO220+RO2T-->RO218+2.*RO2T+O2' - CFULLREACS(189) = 'K188=3.41E-13*EXP(800.2/TPK%T)::RO220+HO2-->OH+RO218+RO2T' - CFULLREACS(190) = 'K189=1.05E-12*EXP(180.2/TPK%T)::RO221+NO-->TPK%CF24*NO2+TPK& -&%CF24*HO2+TPK%CF24*ARAL' - CFULLREACS(191) = 'K190=1.0E-15::RO221+RO2T-->HO2+ARAL+RO2T+O2' - CFULLREACS(192) = 'K191=3.41E-13*EXP(800.2/TPK%T)::RO221+HO2-->HO2+OH+ARAL' - CFULLREACS(193) = 'K192=1.25E-12*EXP(180.2/TPK%T)::RO222+NO-->TPK%CF42*NO2+TPK& -&%CF42*HO2+TPK%CFA7*RPRL' - CFULLREACS(194) = 'K193=1.0E-15::RO222+RO2T-->HO2+0.9983609*RPRL+RO2T+O2' - CFULLREACS(195) = 'K194=3.41E-13*EXP(800.2/TPK%T)::RO222+HO2-->HO2+OH+0.998360& -&9*RPRL' - CFULLREACS(196) = 'K195=1.25E-12*EXP(180.2/TPK%T)::RO223+NO-->TPK%CF43*URG6+TP& -&K%CF44*NO2+TPK%CF44*HO2+TPK%CF44*RPR7' - CFULLREACS(197) = 'K196=1.0E-15::RO223+RO2T-->HO2+RPR7+RO2T+O2' - CFULLREACS(198) = 'K197=3.41E-13*EXP(800.2/TPK%T)::RO223+HO2-->HO2+OH+RPR7' - CFULLREACS(199) = 'K198=8.89E-13*EXP(180.2/TPK%T)::RO224+NO-->TPK%CFA23*AP7+TP& -&K%CFA10*RPR3+TPK%CF26*NO2+TPK%CF26*HO2' - CFULLREACS(200) = 'K199=1.0E-15::RO224+RO2T-->HO2+RPR3+RO2T+O2' - CFULLREACS(201) = 'K200=3.41E-13*EXP(800.2/TPK%T)::RO224+HO2-->HO2+OH+RPR3' - CFULLREACS(202) = 'K201=8.89E-13*EXP(180.2/TPK%T)::RO225+NO-->2.*NO2+RPR3' - CFULLREACS(203) = 'K202=1.0E-15::RO225+RO2T-->NO2+RPR3+RO2T+O2' - CFULLREACS(204) = 'K203=3.41E-13*EXP(800.2/TPK%T)::RO225+HO2-->NO2+OH+RPR3' - CFULLREACS(205) = 'K204=8.89E-13*EXP(180.2/TPK%T)::RO226+NO-->NO2+1.0000000*UR& -&17+RO28+RO2T' - CFULLREACS(206) = 'K205=1.0E-15::RO226+RO2T-->1.0000000*UR17+RO28+2.*RO2T+O2' - CFULLREACS(207) = 'K206=3.41E-13*EXP(800.2/TPK%T)::RO226+HO2-->1.0000000*UR17+& -&OH+RO28+RO2T' - CFULLREACS(208) = 'K207=8.89E-13*EXP(180.2/TPK%T)::RO227+NO-->TPK%CF27*URG10+T& -&PK%CF28*NO2+TPK%CF28*HO2+TPK%CFA12*UR7' - CFULLREACS(209) = 'K208=1.0E-15::RO227+RO2T-->HO2+UR7+RO2T+O2' - CFULLREACS(210) = 'K209=3.41E-13*EXP(800.2/TPK%T)::RO227+HO2-->HO2+OH+0.3*UR7' - CFULLREACS(211) = 'K210=8.89E-13*EXP(180.2/TPK%T)::RO228+NO-->2.*NO2+0.3*UR7' - CFULLREACS(212) = 'K211=1.0E-15::RO228+RO2T-->NO2+0.3*UR7+RO2T+O2' - CFULLREACS(213) = 'K212=3.41E-13*EXP(800.2/TPK%T)::RO228+HO2-->NO2+OH+0.3*UR7' - CFULLREACS(214) = 'K213=1.05E-12*EXP(180.2/TPK%T)::RO229+NO-->TPK%CF30*NO2+TPK& -&%CF30*RO240+TPK%CF30*RO2T' - CFULLREACS(215) = 'K214=1.0E-15::RO229+RO2T-->RO240+2.*RO2T+O2' - CFULLREACS(216) = 'K215=3.41E-13*EXP(800.2/TPK%T)::RO229+HO2-->OH+RO240+RO2T' - CFULLREACS(217) = 'K216=1.05E-12*EXP(180.2/TPK%T)::RO240+NO-->NO2+RPR8+RO28+RO& -&2T' - CFULLREACS(218) = 'K217=1.0E-15::RO240+RO2T-->RPR8+RO28+2.*RO2T+O2' - CFULLREACS(219) = 'K218=3.41E-13*EXP(800.2/TPK%T)::RO240+HO2-->OH+RPR8+RO28+RO& -&2T' - CFULLREACS(220) = 'K219=1.0E-15::RO230+RO2T-->RO28+2.*RO2T+O2' - CFULLREACS(221) = 'K220=3.41E-13*EXP(800.2/TPK%T)::RO230+HO2-->OH+RO28+RO2T' - CFULLREACS(222) = 'K221=6.32E-13*EXP(180.2/TPK%T)::RO231+NO-->TPK%CF31*URG8+TP& -&K%CF32*NO2+TPK%CF32*HO2+TPK%CF32*UR19' - CFULLREACS(223) = 'K222=1.0E-15::RO231+RO2T-->HO2+UR19+RO2T+O2' - CFULLREACS(224) = 'K223=3.41E-13*EXP(800.2/TPK%T)::RO231+HO2-->HO2+OH+UR19' - CFULLREACS(225) = 'K224=3.2E-13*EXP(180.2/TPK%T)::RO232+NO-->TPK%CFA14*URG9+TP& -&K%CF34*NO2+TPK%CF34*RO241+TPK%CF34*RO2T' - CFULLREACS(226) = 'K225=1.0E-15::RO232+RO2T-->RO241+2.*RO2T+O2' - CFULLREACS(227) = 'K226=3.41E-13*EXP(800.2/TPK%T)::RO232+HO2-->OH+RO241+RO2T' - CFULLREACS(228) = 'K227=3.2E-13*EXP(180.2/TPK%T)::RO241+NO-->TPK%CFA15*URG9+TP& -&K%CF36*NO2+TPK%CF36*HO2+TPK%CFA16*URG9' - CFULLREACS(229) = 'K228=1.0E-15::RO241+RO2T-->HO2+0.9999996*URG9+RO2T+O2' - CFULLREACS(230) = 'K229=3.41E-13*EXP(800.2/TPK%T)::RO241+HO2-->HO2+OH+0.999999& -&6*URG9' - CFULLREACS(231) = 'K230=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO233-->R& -&O242+RO2T' - CFULLREACS(232) = 'K231=1.25E-12*EXP(180.2/TPK%T)::RO233+NO-->NO2+HO2+0.300000& -&0*RPG3' - CFULLREACS(233) = 'K232=1.0E-15::RO233+RO2T-->HO2+1.0000000*RPG3+RO2T+O2' - CFULLREACS(234) = 'K233=3.41E-13*EXP(800.2/TPK%T)::RO233+HO2-->HO2+OH+0.300000& -&0*RPG3' - CFULLREACS(235) = 'K234=1.25E-12*EXP(180.2/TPK%T)::RO242+NO-->NO2+HO2+RP10+MGL& -&Y' - CFULLREACS(236) = 'K235=1.0E-15::RO242+RO2T-->HO2+RP10+O2+RO2T+MGLY' - CFULLREACS(237) = 'K236=3.41E-13*EXP(800.2/TPK%T)::RO242+HO2-->HO2+OH+RP10+MGL& -&Y' - CFULLREACS(238) = 'K237=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO234-->R& -&O243+RO2T' - CFULLREACS(239) = 'K238=1.05E-12*EXP(180.2/TPK%T)::RO234+NO-->NO2+HO2+0.3*RP11& -&' - CFULLREACS(240) = 'K239=1.0E-15::RO234+RO2T-->HO2+RP11+RO2T+O2' - CFULLREACS(241) = 'K240=3.41E-13*EXP(800.2/TPK%T)::RO234+HO2-->HO2+OH+0.3*RP11& -&' - CFULLREACS(242) = 'K241=1.05E-12*EXP(180.2/TPK%T)::RO243+NO-->NO2+HO2+RP10+MGL& -&Y' - CFULLREACS(243) = 'K242=1.0E-15::RO243+RO2T-->HO2+RP10+MGLY+O2+RO2T' - CFULLREACS(244) = 'K243=3.41E-13*EXP(800.2/TPK%T)::RO243+HO2-->HO2+OH+RP10+MGL& -&Y' - CFULLREACS(245) = 'K244=1.1*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO235-->R& -&O244+RO2T' - CFULLREACS(246) = 'K245=8.89E-13*EXP(180.2/TPK%T)::RO235+NO-->NO2+HO2+0.5*RP11& -&' - CFULLREACS(247) = 'K246=1.0E-15::RO235+RO2T-->HO2+RP11+RO2T+O2' - CFULLREACS(248) = 'K247=3.41E-13*EXP(800.2/TPK%T)::RO235+HO2-->HO2+OH+RP11' - CFULLREACS(249) = 'K248=8.89E-13*EXP(180.2/TPK%T)::RO244+NO-->NO2+HO2+RP10+MGL& -&Y' - CFULLREACS(250) = 'K249=1.0E-15::RO244+RO2T-->HO2+RP10+MGLY+O2+RO2T' - CFULLREACS(251) = 'K250=3.41E-13*EXP(800.2/TPK%T)::RO244+HO2-->HO2+OH+RP10+MGL& -&Y' - CFULLREACS(252) = 'K251=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO236-->R& -&O245+RO2T' - CFULLREACS(253) = 'K252=1.25E-12*EXP(180.2/TPK%T)::RO236+NO-->NO2+HO2+0.300000& -&0*RPG3' - CFULLREACS(254) = 'K253=1.0E-15::RO236+RO2T-->HO2+1.0000000*RPG3+RO2T+O2' - CFULLREACS(255) = 'K254=3.41E-13*EXP(800.2/TPK%T)::RO236+HO2-->HO2+OH+0.300000& -&0*RPG3' - CFULLREACS(256) = 'K255=1.25E-12*EXP(180.2/TPK%T)::RO245+NO-->NO2+HO2+RP10+MGL& -&Y' - CFULLREACS(257) = 'K256=1.0E-15::RO245+RO2T-->HO2+RP10+MGLY+O2+RO2T' - CFULLREACS(258) = 'K257=3.41E-13*EXP(800.2/TPK%T)::RO245+HO2-->HO2+OH+RP10+MGL& -&Y' - CFULLREACS(259) = 'K258=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO237-->R& -&O246+RO2T' - CFULLREACS(260) = 'K259=1.25E-12*EXP(180.2/TPK%T)::RO237+NO-->NO2+HO2+0.300000& -&0*RPG2' - CFULLREACS(261) = 'K260=1.0E-15::RO237+RO2T-->HO2+1.0000000*RPG2+RO2T+O2' - CFULLREACS(262) = 'K261=3.41E-13*EXP(800.2/TPK%T)::RO237+HO2-->HO2+OH+0.300000& -&0*RPG2' - CFULLREACS(263) = 'K262=1.25E-12*EXP(180.2/TPK%T)::RO246+NO-->NO2+HO2+RP10+MGL& -&Y' - CFULLREACS(264) = 'K263=1.0E-15::RO246+RO2T-->HO2+RP10+MGLY+O2+RO2T' - CFULLREACS(265) = 'K264=3.41E-13*EXP(800.2/TPK%T)::RO246+HO2-->HO2+OH+RP10+MGL& -&Y' - CFULLREACS(266) = 'K265=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T)::RO238-->R& -&O247+RO2T' - CFULLREACS(267) = 'K266=6.32E-13*EXP(180.2/TPK%T)::RO238+NO-->NO2+HO2+1.000001& -&3*RPG7' - CFULLREACS(268) = 'K267=1.0E-15::RO238+RO2T-->HO2+1.0000013*RPG7+RO2T+O2' - CFULLREACS(269) = 'K268=3.41E-13*EXP(800.2/TPK%T)::RO238+HO2-->HO2+OH+1.000001& -&3*RPG7' - CFULLREACS(270) = 'K269=6.32E-13*EXP(180.2/TPK%T)::RO247+NO-->NO2+HO2+1.002399& -&8*RPRL+MGLY' - CFULLREACS(271) = 'K270=1.0E-15::RO247+RO2T-->HO2+1.0023998*RPRL+MGLY+O2+RO2T' - CFULLREACS(272) = 'K271=3.41E-13*EXP(800.2/TPK%T)::RO247+HO2-->HO2+OH+1.002399& -&8*RPRL+MGLY' - CFULLREACS(273) = 'K272=4.14E-12*EXP(452.9/TPK%T)::MVK+OH-->RO249+RO2T' - CFULLREACS(274) = 'K273=1.86E-11*EXP(176.1/TPK%T)::MCR+OH-->TPK%CF46*RO250+TPK& -&%CF46*H2O+TPK%CF47*RO251+RO2T' - CFULLREACS(275) = 'K274=1.72E-11::MGLY+OH-->RO248+RO2T+H2O' - CFULLREACS(276) = 'K275=1.5E-12*EXP(-1726.2/TPK%T)::MCR+NO3-->TPK%CF46*HNO3+TP& -&K%CF46*RO250+TPK%CF47*RO252+RO2T' - CFULLREACS(277) = 'K276=!ZRATES(:,019)::MGLY-->CO+HO2+RO28+RO2T' - CFULLREACS(278) = 'K277=1.11E-11*EXP(180.2/TPK%T)::RO248+NO-->NO2+CO2+RO28+RO2& -&T' - CFULLREACS(279) = 'K278=1.4E-12*EXP(-1897.3/TPK%T)::MGLY+NO3-->HNO3+RO248+RO2T& -&' - CFULLREACS(280) = 'K279=3.41E-13*EXP(800.2/TPK%T)/3.5::RO248+HO2-->O3+UR21' - CFULLREACS(281) = 'K280=1.0E-15::RO248+RO2T-->CO2+RO28+2.*RO2T+O2' - CFULLREACS(282) = 'K281=7.5E-16*EXP(-1519.9/TPK%T)::MVK+O3-->0.56*CO+0.2*CO2+0& -&.28*HO2+0.36*OH+0.5*MGLY+0.5*HCHO+0.1*ALD2+0.12*ORA1+0.12*UR21+0.28*RO28+0.28*& -&RO2T+0.2*H2O' - CFULLREACS(283) = 'K282=1.36E-15*EXP(-2113.7/TPK%T)::MCR+O3-->0.41*CO+0.41*HO2& -&+0.82*OH+0.5*HCHO+0.59*MGLY+0.09*ORA1+0.41*RO253+0.41*RO2T' - CFULLREACS(284) = 'K283=4.32E-12::MVK+O-->0.85*KETL+0.15*RO24+0.15*RO28+0.3*RO& -&2T' - CFULLREACS(285) = 'K284=6.34E-12::MCR+O-->0.15*CO+0.15*HO2+0.85*ALD2+0.15*RO27& -&+0.15*RO2T' - CFULLREACS(286) = 'K285=2.45E-12*EXP(180.2/TPK%T)::RO249+NO-->NO2+HO2+MGLY+HCH& -&O' - CFULLREACS(287) = 'K286=1.0E-15::RO249+RO2T-->HO2+MGLY+HCHO+RO2T+O2' - CFULLREACS(288) = 'K287=3.41E-13*EXP(800.2/TPK%T)::RO249+HO2-->HO2+OH+MGLY+HCH& -&O' - CFULLREACS(289) = 'K288=1.11E-11*EXP(180.2/TPK%T)::RO250+NO-->CO2+NO2+RO214+RO& -&2T' - CFULLREACS(290) = 'K289=3.41E-13*EXP(800.2/TPK%T)/3.5::RO250+HO2-->O3+0.5*ORA2& -&+0.5*OLEL' - CFULLREACS(291) = 'K290=1.0E-15::RO250+RO2T-->CO2+RO214+2.*RO2T+O2' - CFULLREACS(292) = 'K291=2.45E-12*EXP(180.2/TPK%T)::RO251+NO-->NO2+HO2+HCHO+MGL& -&Y' - CFULLREACS(293) = 'K292=3.41E-13*EXP(800.2/TPK%T)::RO251+HO2-->HO2+HCHO+MGLY+R& -&O2T+O2' - CFULLREACS(294) = 'K293=1.0E-15::RO251+RO2T-->HO2+OH+MGLY+HCHO' - CFULLREACS(295) = 'K294=2.45E-12*EXP(180.2/TPK%T)::RO252+NO-->2.*NO2+MGLY+HCHO& + CFULLREACS(58) = 'K058=3.76E-12*exp(-(260.0/TPK%T))+1.70E-12*exp(-(155.0/TPK%T& +&))+1.21E-12*exp(-(125.0/TPK%T))::ALKA+OH-->0.87811*ALKAP+0.12793*HO2+0.08173*A& +&LD+0.03498*KET+0.00835*CARBO+0.00140*HCHO+0.00878*ORA1+0.00878*CO+0.00878*OH+H& +&2O' + CFULLREACS(59) = 'K059=1.78E-12*exp(-(-438.0/TPK%T))+6.07E-13*exp(-(-500.0/TPK& +&%T))+0.00E-01*exp(-(-448.0/TPK%T))::ALKE+OH-->1.02529*ALKEP+0.00000*BIOP' + CFULLREACS(60) = 'K060=2.54E-11*exp(-(-410.0/TPK%T))+0.00E-01*exp(-(-444.0/TPK& +&%T))+0.00E-01::BIO+OH-->1.00000*BIOP' + CFULLREACS(61) = 'K061=3.31E-12*exp(-(-355.0/TPK%T))+3.45E-13::ARO+OH-->0.9396& +&8*ADD+0.10318*XO2+0.10318*HO2+0.00276*PHO' + CFULLREACS(62) = 'K062=1.00E-11::HCHO+OH-->HO2+CO+H2O' + CFULLREACS(63) = 'K063=5.55E-12*exp(-(-331.0/TPK%T))::ALD+OH-->1.00000*CARBOP+& +&H2O' + CFULLREACS(64) = 'K064=TPK%T*TPK%T*5.68E-18*exp(-(-92.0/TPK%T))::KET+OH-->1.00& +&000*CARBOP+H2O' + CFULLREACS(65) = 'K065=1.32E-11+1.88E-12*exp(-(-175.0/TPK%T))::CARBO+OH-->0.51& +&419*CARBOP+0.16919*CARBO+1.01732*CO+0.51208*HO2+0.00000*HCHO+0.06253*ALD+0.008& +&53*KET+0.10162*XO2+0.75196*H2O' + CFULLREACS(66) = 'K066=4.50E-13::ORA1+OH-->HO2+CO2+H2O' + CFULLREACS(67) = 'K067=6.00E-13::ORA2+OH-->' + CFULLREACS(68) = 'K068=2.93E-12*exp(-(-190.0/TPK%T))::OP1+OH-->0.65*MO2+0.35*H& +&CHO+0.35*OH' + CFULLREACS(69) = 'K069=3.36E-12*exp(-(-190.0/TPK%T))::OP2+OH-->0.40341*ALKAP+0& +&.05413*CARBOP+0.07335*ALD+0.37591*KET+0.09333*XO2+0.02915*HO2+0.02915*HCHO+0.4& +&4925*OH' + CFULLREACS(70) = 'K070=3.80E-14+1.59E-14*exp(-(-500.0/TPK%T))::PAN+OH-->0.5783& +&9*HCHO+0.21863*CARBO+0.71893*NO3+0.28107*PAN+0.28107*HO2+0.29733*H2O+XO2' + CFULLREACS(71) = 'K071=5.31E-12*exp(-(260.0/TPK%T))::ONIT+OH-->1.00000*ALKAP+N& +&O2+H2O' + CFULLREACS(72) = 'K072=3.40E-13*exp(-(1900.0/TPK%T))::HCHO+NO3-->HO2+HNO3+CO' + CFULLREACS(73) = 'K073=1.40E-12*exp(-(1900.0/TPK%T))::ALD+NO3-->1.00000*CARBOP& +&+HNO3' + CFULLREACS(74) = 'K074=1.62E-12*exp(-(1900.0/TPK%T))+0.00E-01*exp(-(150.0/TPK%& +&T))+1.94E-14*exp(-(1000.0/TPK%T))::CARBO+NO3-->0.91567*HNO3+0.38881*CARBOP+0.1& +&0530*CARBO+0.05265*ALD+0.00632*KET+0.10530*NO2+0.10530*XO2+0.63217*HO2+1.33723& +&*CO+0.00000*OLN' + CFULLREACS(75) = 'K075=4.92E-16::ARO+NO3-->HNO3+PHO' + CFULLREACS(76) = 'K076=4.35E-18*TPK%T*TPK%T*exp(-(2282.0/TPK%T))+1.91E-14*exp(& +&-(450.0/TPK%T))+1.08E-15*exp(-(-450.0/TPK%T))+0.00E-01::ALKE+NO3-->0.00000*CAR& +&BO+0.93768*OLN' + CFULLREACS(77) = 'K077=4.00E-12*exp(-(446.0/TPK%T))+0.00E-01*exp(-(-490.0/TPK%& +&T))+0.00E-01::BIO+NO3-->0.91741*CARBO+1.00000*OLN' + CFULLREACS(78) = 'K078=3.76E-16*exp(-(500.0/TPK%T))::PAN+NO3-->0.60*ONIT+0.60*& +&NO3+0.40000*PAN+0.40*HCHO+0.40*NO2+XO2' + CFULLREACS(79) = 'K079=8.17E-15*exp(-(2580.0/TPK%T))+4.32E-16*exp(-(1800.0/TPK& +&%T))+2.87E-17*exp(-(845.0/TPK%T))+0.00E-01*exp(-(2283.0/TPK%T))::ALKE+O3-->0.4& +&8290*HCHO+0.51468*ALD+0.07377*KET+0.00000*CARBO+0.35120*CO+0.15343*ORA1+0.0814& +&3*ORA2+0.23451*HO2+0.39435*OH+0.05705*CARBOP+0.03196*ETH+0.00000*ALKE+0.04300*& +&CH4+0.13966*MO2+0.09815*ALKAP+0.01833*H2O2+0.00000*XO2+0.05409*H2+0.00000*O3P' + CFULLREACS(80) = 'K080=7.86E-15*exp(-(1913.0/TPK%T))+0.00E-01*exp(-(732.0/TPK%& +&T))+0.00E-01::BIO+O3-->0.90000*HCHO+0.00000*ALD+0.00000*KET+0.39754*CARBO+0.36& +&000*CO+0.37388*ALKE+0.00000*ALKAP+0.17000*CARBOP+0.03000*MO2+0.15000*ORA1+0.00& +&000*ORA2+0.28000*OH+0.30000*HO2+0.00100*H2O2+0.05000*H2+0.13000*XO2+0.09000*O3& +&P' + CFULLREACS(81) = 'K081=0.00E-01*exp(-(2112.0/TPK%T))+1.38E-19::CARBO+O3-->0.00& +&000*HCHO+1.07583*CARBO+0.15692*ALD+0.10788*ORA1+0.20595*ORA2+0.27460*CARBOP+0.& +&10149*OP2+0.64728*CO+0.28441*HO2+0.20595*OH+0.00000*H2' + CFULLREACS(82) = 'K082=7.20E-17*exp(-(1700.0/TPK%T))::PAN+O3-->0.70*HCHO+0.300& +&00*PAN+0.70*NO2+0.13*CO+0.04*H2+0.11*ORA1+0.08*HO2+0.036*OH+0.70000*CARBOP' + CFULLREACS(83) = 'K083=2.00E-11::PHO+NO2-->0.10670*ARO+ONIT' + CFULLREACS(84) = 'K084=1.00E-11::PHO+HO2-->1.06698*ARO' + CFULLREACS(85) = 'K085=3.60E-11::ADD+NO2-->ARO+HONO' + CFULLREACS(86) = 'K086=1.66E-17*exp(-(-1044.0/TPK%T))::ADD+O2-->0.98*AROP+0.02& +&*ARO+0.02*HO2' + CFULLREACS(87) = 'K087=2.80E-11::ADD+O3-->ARO+OH' + CFULLREACS(88) = 'K088=@TROE(5.86E-01,9.70E-29,5.6,9.30E-12,1.5,TPK%M,TPK%T,KV& +&ECNPT)::CARBOP+NO2-->1.00000*PAN' + CFULLREACS(89) = 'K089=@TROE_EQUIL(9.70E-29,5.6,9.30E-12,1.5,1.16E+28,13954.,T& +&PK%M,TPK%T,KVECNPT)::PAN-->1.00000*CARBOP+NO2' + CFULLREACS(90) = 'K090=4.20E-12*exp(-(-180.0/TPK%T))::MO2+NO-->HCHO+HO2+NO2' + CFULLREACS(91) = 'K091=4.36E-12::ALKAP+NO-->0.33144*ALD+0.03002*HCHO+0.54531*K& +&ET+0.03407*CARBO+0.74265*HO2+0.09016*MO2+0.08187*ALKAP+0.13007*XO2+0.08459*ONI& +&T+0.91541*NO2' + CFULLREACS(92) = 'K092=6.93E-12::ALKEP+NO-->1.39870*HCHO+0.42125*ALD+0.05220*K& +&ET+HO2+NO2' + CFULLREACS(93) = 'K093=4.00E-12::BIOP+NO-->0.45463*CARBO+0.60600*HCHO+0.00000*& +&ALD+0.00000*KET+0.37815*ALKE+0.84700*HO2+0.84700*NO2+0.15300*ONIT' + CFULLREACS(94) = 'K094=4.00E-12::AROP+NO-->0.95115*NO2+0.95115*HO2+2.06993*CAR& +&BO+0.04885*ONIT' + CFULLREACS(95) = 'K095=1.22E-11::CARBOP+NO-->0.78134*MO2+0.09532*CARBOP+0.0584& +&8*HCHO+0.07368*ALD+0.08670*CARBO+0.12334*HO2+0.02563*XO2+NO2' + CFULLREACS(96) = 'K096=4.00E-12::OLN+NO-->0.18401*ONIT+1.81599*NO2+0.18401*HO2& +&+0.23419*HCHO+1.01182*ALD+0.37862*KET' + CFULLREACS(97) = 'K097=3.80E-13*exp(-(-800.0/TPK%T))::MO2+HO2-->OP1' + CFULLREACS(98) = 'K098=6.16E-14*exp(-(-700.0/TPK%T))+1.52E-13*exp(-(-1300.0/TP& +&K%T))::ALKAP+HO2-->1.00524*OP2' + CFULLREACS(99) = 'K099=1.81E-13*exp(-(-1300.0/TPK%T))::ALKEP+HO2-->1.00524*OP2& &' - CFULLREACS(296) = 'K295=3.41E-13*EXP(800.2/TPK%T)::RO252+HO2-->NO2+MGLY+HCHO+R& -&O2T+O2' - CFULLREACS(297) = 'K296=1.0E-15::RO252+RO2T-->NO2+OH+MGLY+HCHO' - CFULLREACS(298) = 'K297=2.91E-12*EXP(180.2/TPK%T)::RO253+NO-->NO2+HCHO+RO254+R& -&O2T' - CFULLREACS(299) = 'K298=3.41E-13*EXP(800.2/TPK%T)::RO253+HO2-->HCHO+RO254+2.*R& -&O2T+O2' - CFULLREACS(300) = 'K299=1.0E-15::RO253+RO2T-->OH+HCHO+RO254+RO2T' - CFULLREACS(301) = 'K300=1.11E-11*EXP(180.2/TPK%T)::RO254+NO-->CO2+CO+NO2+HO2' - CFULLREACS(302) = 'K301=3.41E-13*EXP(800.2/TPK%T)/3.5::RO254+HO2-->O3+RP16' - CFULLREACS(303) = 'K302=1.0E-15::RO254+RO2T-->CO2+CO+HO2+RO2T+O2' - CFULLREACS(304) = 'K303=1.29E-11::RPR5+OH-->O3+0.9999993*URG7+H2O' - CFULLREACS(305) = 'K304=3.54E-11::RPR1+OH-->RO255+RO2T+H2O' - CFULLREACS(306) = 'K305=1.72E-11::RP16+OH-->RO258+RO2T+H2O' - CFULLREACS(307) = 'K306=1.2940467E-11::RPRL+OH-->1.0000011*H2O+1.0000011*O3+2.& -&0714202E-03*RPR7+0.9979297*URG7' - CFULLREACS(308) = 'K307=3.0E-13*EXP(-1427/TPK%T)*3.54E-11/(6.91E-12*EXP(250/TP& -&K%T))::RPR1+NO3-->HNO3+RO255+RO2T' - CFULLREACS(309) = 'K308=!ZRATES(:,012)::RPR1-->CO+HO2+RO220+RO2T' - CFULLREACS(310) = 'K309=1.11E-11*EXP(180.2/TPK%T)::RO255+NO-->NO2+CO2+RO220+RO& -&2T' - CFULLREACS(311) = 'K310=3.41E-13*EXP(800.2/TPK%T)/3.5::RO255+HO2-->O3+ACID' - CFULLREACS(312) = 'K311=1.0E-15::RO255+RO2T-->CO2+RO220+2.*RO2T+O2' - CFULLREACS(313) = 'K312=4.24E-11::RPR3+OH-->RO256+RO2T+H2O' - CFULLREACS(314) = 'K313=3.0E-13*EXP(-1427/TPK%T)*4.24E-11/(6.91E-12*EXP(250/TP& -&K%T))::RPR3+NO3-->HNO3+RO256+RO2T' - CFULLREACS(315) = 'K314=!ZRATES(:,012)::RPR3-->CO+2.*HO2' - CFULLREACS(316) = 'K315=1.11E-11*EXP(180.2/TPK%T)::RO256+NO-->NO2+CO2+HO2' - CFULLREACS(317) = 'K316=@TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECN& -&PT)::RO256+NO2-->PAN8' - CFULLREACS(318) = 'K317=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& -&6,TPK%M,TPK%T,KVECNPT)::PAN8-->NO2+RO256+RO2T' - CFULLREACS(319) = 'K318=3.41E-13*EXP(800.2/TPK%T)/3.5::RO256+HO2-->O3+1.000000& -&0*URG4' - CFULLREACS(320) = 'K319=1.0E-15::RO256+RO2T-->CO2+HO2+RO2T+O2' - CFULLREACS(321) = 'K320=3.77E-12::RPR4+NO3-->HNO3+RAD8' - CFULLREACS(322) = 'K321=2.30E-11*EXP(151.0/TPK%T)::RAD8+NO2-->UR22+H2O' - CFULLREACS(323) = 'K322=1.29E-11::RPR7+OH-->O3+0.9999993*URG7+H2O' - CFULLREACS(324) = 'K323=1.3918362E-10::RPG7+OH-->1.0000005*O3+1.0000005*H2O+0.& -&5021558*RPG7+0.4978440*URG6' - CFULLREACS(325) = 'K324=1.145E-10::RPR8+OH-->RO257+RO2T+H2O' - CFULLREACS(326) = 'K325=1.098E-10::RP10+OH-->HO2+H2O' - CFULLREACS(327) = 'K326=1.964E-10::RP11+OH-->O3+0.67*UR26+H2O' - CFULLREACS(328) = 'K327=3.0E-13*EXP(-1427/TPK%T)*1.145E-10/(6.91E-12*EXP(250/T& -&PK%T))::RPR8+NO3-->HNO3+RO257+RO2T' - CFULLREACS(329) = 'K328=!ZRATES(:,012)::RP10-->' - CFULLREACS(330) = 'K329=!ZRATES(:,012)::RPR8-->CO+HO2+RO29+RO2T' - CFULLREACS(331) = 'K330=!ZRATES(:,012)::RPR8-->HO2+RO257+RO2T' - CFULLREACS(332) = 'K331=1.11E-11*EXP(180.2/TPK%T)::RO257+NO-->NO2+CO2+RO29+RO2& -&T' - CFULLREACS(333) = 'K332=3.41E-13*EXP(800.2/TPK%T)/3.5::RO257+HO2-->1.0000000*U& -&RG4+O3' - CFULLREACS(334) = 'K333=1.0E-15::RO257+RO2T-->CO2+RO29+2.*RO2T+O2' - CFULLREACS(335) = 'K334=2.4131647E-10::RPG3+OH-->1.0000000*O3+0.1191897*RPG2+1& -&.0000000*H2O+0.8808107*RPG2' - CFULLREACS(336) = 'K335=2.1923330E-10::RPG2+OH-->1.0000000*O3+0.5562513*URG2+1& -&.0000000*H2O+0.4437492*RP18' - CFULLREACS(337) = 'K337=1.97E-10::RP18+OH-->O3+URG2+H2O' - CFULLREACS(338) = 'K338=1.4E-12*EXP(-1897.3/TPK%T)::RP16+NO3-->HNO3+RO258+RO2T& + CFULLREACS(100) = 'K0100=1.28E-13*exp(-(-1300.0/TPK%T))+0.00E-01::BIOP+HO2-->1& +&.00524*OP2' + CFULLREACS(101) = 'K0101=3.75E-13*exp(-(-980.0/TPK%T))::AROP+HO2-->1.00524*OP2& &' - CFULLREACS(339) = 'K339=!ZRATES(:,019)::RP16-->2.*CO+OH+HO2' - CFULLREACS(340) = 'K340=1.11E-11*EXP(180.2/TPK%T)::RO258+NO-->CO+CO2+NO2+OH' - CFULLREACS(341) = 'K341=3.41E-13*EXP(800.2/TPK%T)::RO258+HO2-->O3+UR28' - CFULLREACS(342) = 'K342=1.0E-15::RO258+RO2T-->CO+CO2+OH+RO2T+O2' - CFULLREACS(343) = 'K343=@TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.& -&6,TPK%M,TPK%T,KVECNPT)::PAN7-->NO2+RO255+RO2T' - CFULLREACS(344) = 'K344=8.89E-13*EXP(180.2/TPK%T)::RO230+NO-->NO2+RO28+RO2T' - CFULLREACS(345) = 'K345=3.30E-12*exp(-(900.0/TPK%T))::NH3+OH-->' - CFULLREACS(346) = 'K346=1.00E-40::H2SO4-->' - CFULLREACS(347) = 'K347=4.50E-13::ORA1+OH-->HO2+CO2+H2O' - CFULLREACS(348) = 'K348=6.00E-13::ORA2+OH-->' - CFULLREACS(349) = 'K349=1.20E-12::ACID+OH-->' - CFULLREACS(350) = 'K350=1.00E-40::URG2-->' - CFULLREACS(351) = 'K351=1.00E-40::URG4-->' - CFULLREACS(352) = 'K352=1.00E-40::URG6-->' - CFULLREACS(353) = 'K353=1.00E-40::URG7-->' - CFULLREACS(354) = 'K354=1.00E-40::URG8-->' - CFULLREACS(355) = 'K355=1.00E-40::URG9-->' - CFULLREACS(356) = 'K356=1.00E-40::URG10-->' - CFULLREACS(357) = 'K357=1.00E-40::UR7-->' - CFULLREACS(358) = 'K358=1.00E-40::UR8-->' - CFULLREACS(359) = 'K359=1.00E-40::UR17-->' - CFULLREACS(360) = 'K360=1.00E-40::UR19-->' - CFULLREACS(361) = 'K361=1.00E-40::UR21-->' - CFULLREACS(362) = 'K362=1.00E-40::UR22-->' - CFULLREACS(363) = 'K363=1.00E-40::UR26-->' - CFULLREACS(364) = 'K364=1.00E-40::UR28-->' - CFULLREACS(365) = 'K365=1.00E-40::AP7-->' - CFULLREACS(366) = 'KTC1=@KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::O3-->WC_& + CFULLREACS(102) = 'K0102=5.94E-13*exp(-(-550.0/TPK%T))+1.99E-16*exp(-(-2640.0/& +&TPK%T))+5.56E-14*exp(-(-1300.0/TPK%T))::CARBOP+HO2-->0.80904*OP2+0.17307*ORA2+& +&0.17307*O3' + CFULLREACS(103) = 'K103=1.66E-13*exp(-(-1300.0/TPK%T))::OLN+HO2-->ONIT' + CFULLREACS(104) = 'K104=9.10E-14*exp(-(-416.0/TPK%T))::MO2+MO2-->1.33*HCHO+0.6& +&6*HO2' + CFULLREACS(105) = 'K105=1.03E-14*exp(-(-158.0/TPK%T))+6.24E-14*exp(-(-431.0/TP& +&K%T))+1.53E-14*exp(-(-467.0/TPK%T))+4.34E-15*exp(-(-633.0/TPK%T))::ALKAP+MO2--& +&>0.80556*HCHO+0.98383*HO2+0.56070*ALD+0.09673*KET+0.01390*MO2+0.07976*CARBO+0.& +&13370*XO2+0.00385*ALKAP' + CFULLREACS(106) = 'K106=1.57E-13*exp(-(-708.0/TPK%T))::ALKEP+MO2-->1.42894*HCH& +&O+0.46413*ALD+0.03814*KET+HO2' + CFULLREACS(107) = 'K107=1.36E-13*exp(-(-708.0/TPK%T))::BIOP+MO2-->0.56064*CARB& +&O+0.48074*ALKE+1.00000*HO2+1.09000*HCHO+0.00000*ALD+0.00000*KET' + CFULLREACS(108) = 'K108=3.56E-14*exp(-(-708.0/TPK%T))::AROP+MO2-->HCHO+1.02767& +&*HO2+1.99461*CARBO' + CFULLREACS(109) = 'K109=1.77E-11*exp(-(440.0/TPK%T))+1.48E-16*exp(-(-2510.0/TP& +&K%T))+3.10E-13*exp(-(-508.0/TPK%T))::CARBOP+MO2-->0.95723*HCHO+0.82998*HO2+0.5& +&6031*MO2+0.13684*ORA2+0.05954*CARBOP+0.15387*CARBO+0.08295*ALD+0.02212*XO2' + CFULLREACS(110) = 'K110=1.12E-13*exp(-(-708.0/TPK%T))::OLN+MO2-->0.88625*HCHO+& +&0.67560*HO2+0.67560*ONIT+0.41524*ALD+0.09667*KET+0.32440*NO2' + CFULLREACS(111) = 'K111=4.44E-14*exp(-(-211.0/TPK%T))+2.23E-13*exp(-(-460.0/TP& +&K%T))+4.10E-14*exp(-(-522.0/TPK%T))+1.17E-14*exp(-(-683.0/TPK%T))::ALKAP+CARBO& +&P-->0.71461*ALD+0.48079*HO2+0.51480*MO2+0.49810*ORA2+0.18819*KET+0.07600*HCHO+& +&0.00828*ALKAP+0.11306*XO2+0.06954*CARBO' + CFULLREACS(112) = 'K112=4.36E-13*exp(-(-765.0/TPK%T))::ALKEP+CARBOP-->0.68192*& +&HCHO+0.68374*ALD+0.50078*HO2+0.50078*MO2+0.49922*ORA2+0.06579*KET' + CFULLREACS(113) = 'K113=7.60E-13*exp(-(-765.0/TPK%T))::BIOP+CARBOP-->0.78591*C& +&ARBO+0.24463*ALKE+0.50600*HO2+0.49400*ORA2+0.34000*HCHO+0.50600*MO2+0.00000*AL& +&D+0.00000*KET' + CFULLREACS(114) = 'K114=3.63E-13*exp(-(-765.0/TPK%T))::AROP+CARBOP-->MO2+HO2+1& +&.99455*CARBO' + CFULLREACS(115) = 'K115=7.73E-13*exp(-(-530.0/TPK%T))+1.70E-13*exp(-(-565.0/TP& +&K%T))::CARBOP+CARBOP-->1.66702*MO2+0.05821*CARBOP+0.03432*HCHO+0.10777*CARBO+0& +&.06969*ALD+0.02190*KET+0.07566*HO2+0.01593*XO2+0.09955*ORA2' + CFULLREACS(116) = 'K116=4.85E-13*exp(-(-765.0/TPK%T))::OLN+CARBOP-->0.66562*ON& +&IT+0.51037*MO2+0.48963*ORA2+0.17599*HO2+0.13414*HCHO+0.42122*ALD+0.10822*KET+0& +&.00000*NO2' + CFULLREACS(117) = 'K117=4.19E-15*exp(-(-1000.0/TPK%T))::OLN+OLN-->2.00*ONIT+HO& +&2' + CFULLREACS(118) = 'K118=2.48E-14*exp(-(-1000.0/TPK%T))::OLN+OLN-->0.00000*HCHO& +&+0.00000*ALD+0.00000*KET+0.00000*HO2+0.00000*NO2+0.00000*ONIT' + CFULLREACS(119) = 'K119=1.20E-12::MO2+NO3-->HCHO+HO2+NO2' + CFULLREACS(120) = 'K120=1.20E-12::ALKAP+NO3-->0.33743*ALD+0.81290*HO2+0.03142*& +&HCHO+0.62978*KET+0.03531*CARBO+0.09731*MO2+0.08994*ALKAP+0.16271*XO2+NO2' + CFULLREACS(121) = 'K121=1.20E-12::ALKEP+NO3-->1.40909*HCHO+0.43039*ALD+0.02051& +&*KET+HO2+NO2' + CFULLREACS(122) = 'K122=1.20E-12::BIOP+NO3-->0.61160*CARBO+0.42729*ALKE+0.6860& +&0*HCHO+0.00000*ALD+0.00000*KET+HO2+NO2' + CFULLREACS(123) = 'K123=1.20E-12::AROP+NO3-->2.81904*CARBO+HO2+NO2' + CFULLREACS(124) = 'K124=3.48E-12::CARBOP+NO3-->0.91910*MO2+0.03175*CARBOP+0.03& +&175*HCHO+0.03455*CARBO+0.02936*ALD+0.04915*HO2+0.01021*XO2+NO2' + CFULLREACS(125) = 'K125=1.20E-12::OLN+NO3-->0.25928*ONIT+1.74072*NO2+0.25928*H& +&O2+0.20740*HCHO+0.91850*ALD+0.34740*KET' + CFULLREACS(126) = 'K126=1.66E-13*exp(-(-1300.0/TPK%T))::XO2+HO2-->1.00524*OP2' + CFULLREACS(127) = 'K127=5.99E-15*exp(-(-1510.0/TPK%T))::XO2+MO2-->HCHO+HO2' + CFULLREACS(128) = 'K128=1.69E-14*exp(-(-1560.0/TPK%T))::XO2+CARBOP-->MO2' + CFULLREACS(129) = 'K129=7.13E-17*exp(-(-2950.0/TPK%T))::XO2+XO2-->' + CFULLREACS(130) = 'K130=4.00E-12::XO2+NO-->NO2' + CFULLREACS(131) = 'K131=1.20E-12::XO2+NO3-->NO2' + CFULLREACS(132) = 'K132=1.00E-40::SULF-->' + CFULLREACS(133) = 'KTC1=@KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::O3-->WC_& &O3' - CFULLREACS(367) = 'KTC2=@KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::H2O2-->W& + CFULLREACS(134) = 'KTC2=@KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::H2O2-->W& &C_H2O2' - CFULLREACS(368) = 'KTC3=@KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NO-->W& + CFULLREACS(135) = 'KTC3=@KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NO-->W& &C_NO' - CFULLREACS(369) = 'KTC4=@KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NO2-->& + CFULLREACS(136) = 'KTC4=@KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NO2-->& &WC_NO2' - CFULLREACS(370) = 'KTC5=@KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NO3-->WC& + CFULLREACS(137) = 'KTC5=@KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NO3-->WC& &_NO3' - CFULLREACS(371) = 'KTC6=@KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::N2O5-& + CFULLREACS(138) = 'KTC6=@KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::N2O5-& &->WC_N2O5' - CFULLREACS(372) = 'KTC7=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HONO-->W& + CFULLREACS(139) = 'KTC7=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HONO-->W& &C_HONO' - CFULLREACS(373) = 'KTC8=@KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HNO3-->& + CFULLREACS(140) = 'KTC8=@KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HNO3-->& &WC_HNO3' - CFULLREACS(374) = 'KTC9=@KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HNO4-->W& + CFULLREACS(141) = 'KTC9=@KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HNO4-->W& &C_HNO4' - CFULLREACS(375) = 'KTC10=@KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NH3-->W& + CFULLREACS(142) = 'KTC10=@KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::NH3-->W& &C_NH3' - CFULLREACS(376) = 'KTC11=@KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::OH-->WC& + CFULLREACS(143) = 'KTC11=@KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::OH-->WC& &_OH' - CFULLREACS(377) = 'KTC12=@KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HO2-->WC& + CFULLREACS(144) = 'KTC12=@KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HO2-->WC& &_HO2' - CFULLREACS(378) = 'KTC13=@KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::CO2--& + CFULLREACS(145) = 'KTC13=@KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::CO2--& &>WC_CO2' - CFULLREACS(379) = 'KTC14=@KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::SO2-->W& + CFULLREACS(146) = 'KTC14=@KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::SO2-->W& &C_SO2' - CFULLREACS(380) = 'KTC15=@KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::H2SO4--& -&>WC_H2SO4' - CFULLREACS(381) = 'KTC16=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::RO21-->& -&WC_RO21' - CFULLREACS(382) = 'KTC17=@KT(0.05,75.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::RO25-->& -&WC_RO25' - CFULLREACS(383) = 'KTC18=@KT(0.027,32.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::MEOH--& -&>WC_MEOH' - CFULLREACS(384) = 'KTC19=@KT(0.017,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ETOH--& -&>WC_ETOH' - CFULLREACS(385) = 'KTC20=@KT(0.011,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ALCH--& -&>WC_ALCH' - CFULLREACS(386) = 'KTC21=@KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HCHO-->& + CFULLREACS(147) = 'KTC15=@KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::SULF-->& +&WC_SULF' + CFULLREACS(148) = 'KTC16=@KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::HCHO-->& &WC_HCHO' - CFULLREACS(387) = 'KTC22=@KT(0.03,44.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ALD2-->& -&WC_ALD2' - CFULLREACS(388) = 'KTC23=@KT(0.01,58.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::GLY-->W& -&C_GLY' - CFULLREACS(389) = 'KTC24=@KT(0.008,58.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::KETL--& -&>WC_KETL' - CFULLREACS(390) = 'KTC25=@KT(0.0003,72.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::MGLY-& -&->WC_MGLY' - CFULLREACS(391) = 'KTC26=@KT(0.023,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ORA1--& + CFULLREACS(149) = 'KTC17=@KT(0.012,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ORA1--& &>WC_ORA1' - CFULLREACS(392) = 'KTC27=@KT(0.032,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ORA2--& -&>WC_ORA2' - CFULLREACS(393) = 'KTC28=@KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ACID-->& -&WC_ACID' - CFULLREACS(394) = 'KTC29=@KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::RP16-->& -&WC_RP16' - CFULLREACS(395) = 'KTC30=@KT(0.05,88.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::UR21-->& -&WC_UR21' - CFULLREACS(396) = 'KTC31=@KT(0.05,90.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::UR28-->& -&WC_UR28' - CFULLREACS(397) = 'KTC32=@KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.1e-2,-& + CFULLREACS(150) = 'KTC18=@KT(0.03,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::ORA2-->& +&WC_ORA2' + CFULLREACS(151) = 'KTC19=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::MO2-->W& +&C_MO2' + CFULLREACS(152) = 'KTC20=@KT(0.007,48.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC::OP1-->& +&WC_OP1' + CFULLREACS(153) = 'KTC21=@KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.1e-2,-& &2830.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_O3-->O3' - CFULLREACS(398) = 'KTC33=@KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(7.73e4,-& + CFULLREACS(154) = 'KTC22=@KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(7.73e4,-& &7310.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_H2O2-->H2O2' - CFULLREACS(399) = 'KTC34=@KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.92e-& + CFULLREACS(155) = 'KTC23=@KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.92e-& &3,-1790.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO-->NO' - CFULLREACS(400) = 'KTC35=@KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.4e-2& -&,-2516.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO2-->NO2' - CFULLREACS(401) = 'KTC36=@KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.8e-2,-& -&8707.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO3-->NO3' - CFULLREACS(402) = 'KTC37=@KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.1e0& -&,-3400.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_N2O5-->N2O5' - CFULLREACS(403) = 'KTC38=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(5.0e1,-4& + CFULLREACS(156) = 'KTC24=@KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.4e-2& +&,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO2-->NO2' + CFULLREACS(157) = 'KTC25=@KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.8e-2,0& +&.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NO3-->NO3' + CFULLREACS(158) = 'KTC26=@KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.1,-& +&3400.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_N2O5-->N2O5' + CFULLREACS(159) = 'KTC27=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(5.0e1,-4& &880.,1.6e-3,1760.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HONO-->HONO' - CFULLREACS(404) = 'KTC39=@KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(2.1e5,-& + CFULLREACS(160) = 'KTC28=@KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(2.1e5,-& &8700.,2.2e1,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HNO3-->HNO3' - CFULLREACS(405) = 'KTC40=@KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(1.2e4,-6& + CFULLREACS(161) = 'KTC29=@KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(1.2e4,-6& &900.,1.26e-6,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HNO4-->HNO4' - CFULLREACS(406) = 'KTC41=@KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFB(6.02e1,-& + CFULLREACS(162) = 'KTC30=@KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFB(6.02e1,-& &4160.,1.7e-5,4350.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_NH3-->NH3' - CFULLREACS(407) = 'KTC42=@KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.9e1,0.& + CFULLREACS(163) = 'KTC31=@KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.9e1,0.& &,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_OH-->OH' - CFULLREACS(408) = 'KTC43=@KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(6.9e2,-66& -&43.,1.6e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HO2-->HO2' - CFULLREACS(409) = 'KTC44=@KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(3.4e-2& + CFULLREACS(164) = 'KTC32=@KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(6.9e2,0.,& +&1.6e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HO2-->HO2' + CFULLREACS(165) = 'KTC33=@KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(3.4e-2& &,-2710.,4.3e-7,920.,4.7e-11,1780.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_CO& &2-->CO2' - CFULLREACS(410) = 'KTC45=@KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(1.36,-29& + CFULLREACS(166) = 'KTC34=@KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(1.36,-29& &30.,1.3e-2,-1965.,6.4e-8,-1430.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_SO2-& &->SO2' - CFULLREACS(411) = 'KTC46=@KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(2.1e5,-8& -&700.,1.0e3,0.,1.0e-2,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_H2SO4-->H2SO& -&4' - CFULLREACS(412) = 'KTC47=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.7e0,0.& -&,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_RO21-->RO21' - CFULLREACS(413) = 'KTC48=@KT(0.05,75.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(7.5e1,0.& -&,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_RO25-->RO25' - CFULLREACS(414) = 'KTC49=@KT(0.027,32.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.2e2,-& -&5210.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_MEOH-->MEOH' - CFULLREACS(415) = 'KTC50=@KT(0.017,46.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.9e2,-& -&6600.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ETOH-->ETOH' - CFULLREACS(416) = 'KTC51=@KT(0.011,60.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.3e2,-& -&7500.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ALCH-->ALCH' - CFULLREACS(417) = 'KTC52=@KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.23e3,-& + CFULLREACS(167) = 'KTC35=@KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(2.1e5,-8& +&700.,1.0e3,0.,1.0e-2,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_SULF-->SULF' + CFULLREACS(168) = 'KTC36=@KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.23e3,-& &7100.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_HCHO-->HCHO' - CFULLREACS(418) = 'KTC53=@KT(0.03,44.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(1.29e1,-& -&5890.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ALD2-->ALD2' - CFULLREACS(419) = 'KTC54=@KT(0.01,58.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.6e5,0.& -&,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_GLY-->GLY' - CFULLREACS(420) = 'KTC55=@KT(0.008,58.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.81e1,& -&-5050.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_KETL-->KETL' - CFULLREACS(421) = 'KTC56=@KT(0.0003,72.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.7e3,& -&0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_MGLY-->MGLY' - CFULLREACS(422) = 'KTC57=@KT(0.023,46.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(8.9e3,-& + CFULLREACS(169) = 'KTC37=@KT(0.012,46.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(8.9e3,-& &6100.,1.8e-4,150.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ORA1-->ORA1' - CFULLREACS(423) = 'KTC58=@KT(0.032,60.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(4.1e3,-& -&6200.,1.75e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ORA2-->ORA2' - CFULLREACS(424) = 'KTC59=@KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(5.7e3,0.& -&,1.35e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ACID-->ACID' - CFULLREACS(425) = 'KTC60=@KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(9.0e3,0.& -&,3.2e-4,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_RP16-->RP16' - CFULLREACS(426) = 'KTC61=@KT(0.05,88.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(3.11e5,-& -&5090.,3.55e-3,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_UR21-->UR21' - CFULLREACS(427) = 'KTC62=@KT(0.05,90.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(5.0e8,0.& -&,5.6e-2,0.,5.4e-5,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_UR28-->UR28' - CFULLREACS(428) = 'KTR1=@KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::O3-->WR_& + CFULLREACS(170) = 'KTC38=@KT(0.03,60.,TPK%T,TPK%RADC,KVECNPT)/(@HEFFA(4.1e3,-6& +&200.,1.74e-5,0.,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_ORA2-->ORA2' + CFULLREACS(171) = 'KTC39=@KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(2.7e0,-2& +&030.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_MO2-->MO2' + CFULLREACS(172) = 'KTC40=@KT(0.007,48.,TPK%T,TPK%RADC,KVECNPT)/(@HENRY(3.e2,-5& +&280.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WC_OP1-->OP1' + CFULLREACS(173) = 'KTR1=@KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::O3-->WR_& &O3' - CFULLREACS(429) = 'KTR2=@KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::H2O2-->W& + CFULLREACS(174) = 'KTR2=@KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::H2O2-->W& &R_H2O2' - CFULLREACS(430) = 'KTR3=@KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NO-->W& + CFULLREACS(175) = 'KTR3=@KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NO-->W& &R_NO' - CFULLREACS(431) = 'KTR4=@KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NO2-->& + CFULLREACS(176) = 'KTR4=@KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NO2-->& &WR_NO2' - CFULLREACS(432) = 'KTR5=@KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NO3-->WR& + CFULLREACS(177) = 'KTR5=@KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NO3-->WR& &_NO3' - CFULLREACS(433) = 'KTR6=@KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::N2O5-& + CFULLREACS(178) = 'KTR6=@KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::N2O5-& &->WR_N2O5' - CFULLREACS(434) = 'KTR7=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HONO-->W& + CFULLREACS(179) = 'KTR7=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HONO-->W& &R_HONO' - CFULLREACS(435) = 'KTR8=@KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HNO3-->& + CFULLREACS(180) = 'KTR8=@KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HNO3-->& &WR_HNO3' - CFULLREACS(436) = 'KTR9=@KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HNO4-->W& + CFULLREACS(181) = 'KTR9=@KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HNO4-->W& &R_HNO4' - CFULLREACS(437) = 'KTR10=@KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NH3-->W& + CFULLREACS(182) = 'KTR10=@KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::NH3-->W& &R_NH3' - CFULLREACS(438) = 'KTR11=@KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::OH-->WR& + CFULLREACS(183) = 'KTR11=@KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::OH-->WR& &_OH' - CFULLREACS(439) = 'KTR12=@KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HO2-->WR& + CFULLREACS(184) = 'KTR12=@KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HO2-->WR& &_HO2' - CFULLREACS(440) = 'KTR13=@KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::CO2--& + CFULLREACS(185) = 'KTR13=@KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::CO2--& &>WR_CO2' - CFULLREACS(441) = 'KTR14=@KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::SO2-->W& + CFULLREACS(186) = 'KTR14=@KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::SO2-->W& &R_SO2' - CFULLREACS(442) = 'KTR15=@KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::H2SO4--& -&>WR_H2SO4' - CFULLREACS(443) = 'KTR16=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::RO21-->& -&WR_RO21' - CFULLREACS(444) = 'KTR17=@KT(0.05,75.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::RO25-->& -&WR_RO25' - CFULLREACS(445) = 'KTR18=@KT(0.027,32.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::MEOH--& -&>WR_MEOH' - CFULLREACS(446) = 'KTR19=@KT(0.017,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ETOH--& -&>WR_ETOH' - CFULLREACS(447) = 'KTR20=@KT(0.011,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ALCH--& -&>WR_ALCH' - CFULLREACS(448) = 'KTR21=@KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HCHO-->& + CFULLREACS(187) = 'KTR15=@KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::SULF-->& +&WR_SULF' + CFULLREACS(188) = 'KTR16=@KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::HCHO-->& &WR_HCHO' - CFULLREACS(449) = 'KTR22=@KT(0.03,44.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ALD2-->& -&WR_ALD2' - CFULLREACS(450) = 'KTR23=@KT(0.01,58.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::GLY-->W& -&R_GLY' - CFULLREACS(451) = 'KTR24=@KT(0.008,58.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::KETL--& -&>WR_KETL' - CFULLREACS(452) = 'KTR25=@KT(0.0003,72.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::MGLY-& -&->WR_MGLY' - CFULLREACS(453) = 'KTR26=@KT(0.023,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ORA1--& + CFULLREACS(189) = 'KTR17=@KT(0.012,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ORA1--& &>WR_ORA1' - CFULLREACS(454) = 'KTR27=@KT(0.032,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ORA2--& -&>WR_ORA2' - CFULLREACS(455) = 'KTR28=@KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ACID-->& -&WR_ACID' - CFULLREACS(456) = 'KTR29=@KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::RP16-->& -&WR_RP16' - CFULLREACS(457) = 'KTR30=@KT(0.05,88.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::UR21-->& -&WR_UR21' - CFULLREACS(458) = 'KTR31=@KT(0.05,90.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::UR28-->& -&WR_UR28' - CFULLREACS(459) = 'KTR32=@KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.1e-2,-& + CFULLREACS(190) = 'KTR18=@KT(0.03,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::ORA2-->& +&WR_ORA2' + CFULLREACS(191) = 'KTR19=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::MO2-->W& +&R_MO2' + CFULLREACS(192) = 'KTR20=@KT(0.007,48.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR::OP1-->& +&WR_OP1' + CFULLREACS(193) = 'KTR21=@KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.1e-2,-& &2830.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_O3-->O3' - CFULLREACS(460) = 'KTR33=@KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(7.73e4,-& + CFULLREACS(194) = 'KTR22=@KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(7.73e4,-& &7310.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_H2O2-->H2O2' - CFULLREACS(461) = 'KTR34=@KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.92e-& + CFULLREACS(195) = 'KTR23=@KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.92e-& &3,-1790.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO-->NO' - CFULLREACS(462) = 'KTR35=@KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.4e-2& -&,-2516.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO2-->NO2' - CFULLREACS(463) = 'KTR36=@KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.8e-2,-& -&8707.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO3-->NO3' - CFULLREACS(464) = 'KTR37=@KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.1e0& -&,-3400.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_N2O5-->N2O5' - CFULLREACS(465) = 'KTR38=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(5.0e1,-4& + CFULLREACS(196) = 'KTR24=@KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.4e-2& +&,0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO2-->NO2' + CFULLREACS(197) = 'KTR25=@KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.8e-2,0& +&.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NO3-->NO3' + CFULLREACS(198) = 'KTR26=@KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.1,-& +&3400.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_N2O5-->N2O5' + CFULLREACS(199) = 'KTR27=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(5.0e1,-4& &880.,1.6e-3,1760.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HONO-->HONO' - CFULLREACS(466) = 'KTR39=@KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(2.1e5,-& + CFULLREACS(200) = 'KTR28=@KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(2.1e5,-& &8700.,2.2e1,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HNO3-->HNO3' - CFULLREACS(467) = 'KTR40=@KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(1.2e4,-6& + CFULLREACS(201) = 'KTR29=@KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(1.2e4,-6& &900.,1.26e-6,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HNO4-->HNO4' - CFULLREACS(468) = 'KTR41=@KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFB(6.02e1,-& + CFULLREACS(202) = 'KTR30=@KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFB(6.02e1,-& &4160.,1.7e-5,4350.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_NH3-->NH3' - CFULLREACS(469) = 'KTR42=@KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.9e1,0.& + CFULLREACS(203) = 'KTR31=@KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.9e1,0.& &,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_OH-->OH' - CFULLREACS(470) = 'KTR43=@KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(6.9e2,-66& -&43.,1.6e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HO2-->HO2' - CFULLREACS(471) = 'KTR44=@KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(3.4e-2& + CFULLREACS(204) = 'KTR32=@KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(6.9e2,0.,& +&1.6e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HO2-->HO2' + CFULLREACS(205) = 'KTR33=@KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(3.4e-2& &,-2710.,4.3e-7,920.,4.7e-11,1780.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_CO& &2-->CO2' - CFULLREACS(472) = 'KTR45=@KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(1.36,-29& + CFULLREACS(206) = 'KTR34=@KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(1.36,-29& &30.,1.3e-2,-1965.,6.4e-8,-1430.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_SO2-& &->SO2' - CFULLREACS(473) = 'KTR46=@KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(2.1e5,-8& -&700.,1.0e3,0.,1.0e-2,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_H2SO4-->H2SO& -&4' - CFULLREACS(474) = 'KTR47=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.7e0,0.& -&,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_RO21-->RO21' - CFULLREACS(475) = 'KTR48=@KT(0.05,75.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(7.5e1,0.& -&,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_RO25-->RO25' - CFULLREACS(476) = 'KTR49=@KT(0.027,32.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.2e2,-& -&5210.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_MEOH-->MEOH' - CFULLREACS(477) = 'KTR50=@KT(0.017,46.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.9e2,-& -&6600.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ETOH-->ETOH' - CFULLREACS(478) = 'KTR51=@KT(0.011,60.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.3e2,-& -&7500.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ALCH-->ALCH' - CFULLREACS(479) = 'KTR52=@KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.23e3,-& + CFULLREACS(207) = 'KTR35=@KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(2.1e5,-8& +&700.,1.0e3,0.,1.0e-2,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_SULF-->SULF' + CFULLREACS(208) = 'KTR36=@KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.23e3,-& &7100.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_HCHO-->HCHO' - CFULLREACS(480) = 'KTR53=@KT(0.03,44.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(1.29e1,-& -&5890.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ALD2-->ALD2' - CFULLREACS(481) = 'KTR54=@KT(0.01,58.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.6e5,0.& -&,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_GLY-->GLY' - CFULLREACS(482) = 'KTR55=@KT(0.008,58.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.81e1,& -&-5050.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_KETL-->KETL' - CFULLREACS(483) = 'KTR56=@KT(0.0003,72.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.7e3,& -&0.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_MGLY-->MGLY' - CFULLREACS(484) = 'KTR57=@KT(0.023,46.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(8.9e3,-& + CFULLREACS(209) = 'KTR37=@KT(0.012,46.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(8.9e3,-& &6100.,1.8e-4,150.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ORA1-->ORA1' - CFULLREACS(485) = 'KTR58=@KT(0.032,60.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(4.1e3,-& -&6200.,1.75e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ORA2-->ORA2' - CFULLREACS(486) = 'KTR59=@KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(5.7e3,0.& -&,1.35e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ACID-->ACID' - CFULLREACS(487) = 'KTR60=@KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(9.0e3,0.& -&,3.2e-4,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_RP16-->RP16' - CFULLREACS(488) = 'KTR61=@KT(0.05,88.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(3.11e5,-& -&5090.,3.55e-3,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_UR21-->UR21' - CFULLREACS(489) = 'KTR62=@KT(0.05,90.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(5.0e8,0.& -&,5.6e-2,0.,5.4e-5,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_UR28-->UR28' - CFULLREACS(490) = 'KC1=!ZRATES(:,024)::WC_H2O2-->WC_OH+WC_OH' - CFULLREACS(491) = 'KC2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECC& + CFULLREACS(210) = 'KTR38=@KT(0.03,60.,TPK%T,TPK%RADR,KVECNPT)/(@HEFFA(4.1e3,-6& +&200.,1.74e-5,0.,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_ORA2-->ORA2' + CFULLREACS(211) = 'KTR39=@KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(2.7e0,-2& +&030.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_MO2-->MO2' + CFULLREACS(212) = 'KTR40=@KT(0.007,48.,TPK%T,TPK%RADR,KVECNPT)/(@HENRY(3.e2,-5& +&280.,TPK%T,KVECNPT)*TPK%RCH*TPK%T)::WR_OP1-->OP1' + CFULLREACS(213) = 'KC1=!ZRATES(:,018)::WC_H2O2-->WC_OH+WC_OH' + CFULLREACS(214) = 'KC2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECC& &LOUD::WC_OH+WC_OH-->WC_H2O2' - CFULLREACS(492) = 'KC3=((2.8E+10*10.**(-TPK%PHC)+3.5E+10*exp(-720.*(1./TPK%T-1& + CFULLREACS(215) = 'KC3=((2.8E+10*10.**(-TPK%PHC)+3.5E+10*exp(-720.*(1./TPK%T-1& &./298.15))*1.6e-5)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_OH+WC_HO2-& &->' - CFULLREACS(493) = 'KC4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLEC& + CFULLREACS(216) = 'KC4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLEC& &CLOUD::WC_H2O2+WC_OH-->WC_HO2' - CFULLREACS(494) = 'KC5=((8.3E+5*exp(-2700.*(1./TPK%T-1./298.15))*(10.**(-TPK%P& + CFULLREACS(217) = 'KC5=((8.3E+5*exp(-2700.*(1./TPK%T-1./298.15))*(10.**(-TPK%P& &HC))**2.+9.6E+7*exp(-910.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*1.6e-5)/(1.6e-& &5+10.**(-TPK%PHC))**2.)/TPK%MOL2MOLECCLOUD::WC_HO2+WC_HO2-->WC_H2O2' - CFULLREACS(495) = 'KC6=(1.5E+9*exp(-1500.*(1./TPK%T-1./298.15))*1.6e-5/(1.6e-5& + CFULLREACS(218) = 'KC6=(1.5E+9*exp(-1500.*(1./TPK%T-1./298.15))*1.6e-5/(1.6e-5& &+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_O3+WC_HO2-->WC_OH' - CFULLREACS(496) = 'KC7=(2.7E+9*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-T& + CFULLREACS(219) = 'KC7=(2.7E+9*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-T& &PK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./& &298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PH& &C))**2.))/TPK%MOL2MOLECCLOUD::WC_OH+WC_SO2-->WC_ASO3' - CFULLREACS(497) = 'KC8=(1.0E+10*10.**(-TPK%PHC)/(1.6e-3*exp(-1760.*(1./TPK%T-1& + CFULLREACS(220) = 'KC8=(1.0E+10*10.**(-TPK%PHC)/(1.6e-3*exp(-1760.*(1./TPK%T-1& &./298.15))+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_HONO+WC_OH-->WC_NO2' - CFULLREACS(498) = 'KC9=((1.8E+9*10.**(-TPK%PHC)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-& + CFULLREACS(221) = 'KC9=((1.8E+9*10.**(-TPK%PHC)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-& &TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_NO2+WC_HO2-->WC_HNO4' - CFULLREACS(499) = 'KC10=2.6E-2*10.**(-TPK%PHC)/(1.26e-6+10.**(-TPK%PHC))::WC_H& + CFULLREACS(222) = 'KC10=2.6E-2*10.**(-TPK%PHC)/(1.26e-6+10.**(-TPK%PHC))::WC_H& &NO4-->WC_HO2+WC_NO2' - CFULLREACS(500) = 'KC11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHC))::WC_HNO4-->WC_& + CFULLREACS(223) = 'KC11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHC))::WC_HNO4-->WC_& &HONO' - CFULLREACS(501) = 'KC12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(& + CFULLREACS(224) = 'KC12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(& &-TPK%PHC))**2./((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./T& &PK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**& &(-TPK%PHC))**2.)*(1.26e-6+10.**(-TPK%PHC))))/TPK%MOL2MOLECCLOUD::WC_HNO4+WC_SO& -&2-->WC_H2SO4+WC_HNO3' - CFULLREACS(502) = 'KC13=!ZRATES(:,025)*2.2e+1/(2.2e+1+10.**(-TPK%PHC))::WC_HNO& +&2-->WC_SULF+WC_HNO3' + CFULLREACS(225) = 'KC13=!ZRATES(:,019)*2.2e+1/(2.2e+1+10.**(-TPK%PHC))::WC_HNO& &3-->WC_NO2+WC_OH' - CFULLREACS(503) = 'KC14=1.0E+10::WC_N2O5-->WC_HNO3+WC_HNO3' - CFULLREACS(504) = 'KC15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK& -&%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_NO3+WC_H2SO4-->WC_HNO3+WC& -&_ASO4' - CFULLREACS(505) = 'KC16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(19& + CFULLREACS(226) = 'KC14=1.0E+10::WC_N2O5-->WC_HNO3+WC_HNO3' + CFULLREACS(227) = 'KC15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK& +&%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_NO3+WC_SULF-->WC_HNO3+WC_& +&ASO4' + CFULLREACS(228) = 'KC16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(19& &65.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.1& &5))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.1& &5))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_NO3+WC_SO2-& &->WC_HNO3+WC_ASO3' - CFULLREACS(506) = 'KC17=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1& + CFULLREACS(229) = 'KC17=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& +&CCLOUD::WC_MO2+WC_MO2-->2.00*WC_HCHO+2.00*WC_HO2' + CFULLREACS(230) = 'KC18=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-& +&TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1.& +&/298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%P& +&HC))**2.))/TPK%MOL2MOLECCLOUD::WC_MO2+WC_SO2-->WC_OP1+WC_ASO3' + CFULLREACS(231) = 'KC19=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(403& +&0.*(1./TPK%T-1./298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2M& +&OLECCLOUD::WC_HCHO+WC_OH-->WC_ORA1+WC_HO2' + CFULLREACS(232) = 'KC20=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%P& +&HC)+3.4E+9*exp(-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.1& +&5)))/(1.8e-4*exp(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLO& +&UD::WC_ORA1+WC_OH-->WC_CO2+WC_HO2' + CFULLREACS(233) = 'KC21=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1& &965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.& &15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.& &15)))/((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./2& &98.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC& &))**2.)*(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECCLOUD::WC_SO& &2+WC_HCHO-->WC_AHMS' - CFULLREACS(507) = 'KC18=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*& + CFULLREACS(234) = 'KC22=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*& &EXP(-6716*(1./TPK%T-1./298.15))/10.**(-TPK%PHC)::WC_AHMS-->WC_SO2+WC_HCHO' - CFULLREACS(508) = 'KC19=3.0E+8/TPK%MOL2MOLECCLOUD::WC_AHMS+WC_OH-->WC_HO2+WC_O& + CFULLREACS(235) = 'KC23=3.0E+8/TPK%MOL2MOLECCLOUD::WC_AHMS+WC_OH-->WC_HO2+WC_O& &RA1+WC_SO2' - CFULLREACS(509) = 'KC20=1.1E+9::WC_ASO3+W_O2-->WC_ASO5' - CFULLREACS(510) = 'KC21=(1.7E+9*10.**(-TPK%PHC)/(1.6e-5+10.**(-TPK%PHC)))/TPK%& + CFULLREACS(236) = 'KC24=1.1E+9::WC_ASO3+W_O2-->WC_ASO5' + CFULLREACS(237) = 'KC25=(1.7E+9*10.**(-TPK%PHC)/(1.6e-5+10.**(-TPK%PHC)))/TPK%& &MOL2MOLECCLOUD::WC_ASO5+WC_HO2-->WC_AHSO5' - CFULLREACS(511) = 'KC22=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& + CFULLREACS(238) = 'KC26=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& &CCLOUD::WC_ASO5+WC_ASO5-->WC_ASO4+WC_ASO4' - CFULLREACS(512) = 'KC23=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-& + CFULLREACS(239) = 'KC27=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-& &TPK%PHC)*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(14& &30.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PH& -&C)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_AHSO5+WC_SO2-->2.00*WC_H2SO4& -&' - CFULLREACS(513) = 'KC24=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15))::WC_ASO4-->WC_& -&H2SO4+WC_OH' - CFULLREACS(514) = 'KC25=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1& +&C)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD::WC_AHSO5+WC_SO2-->2.00*WC_SULF' + CFULLREACS(240) = 'KC28=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15))::WC_ASO4-->WC_& +&SULF+WC_OH' + CFULLREACS(241) = 'KC29=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1& &965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.& &15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.& &15)))/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./29& &8.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC)& -&)**2.))/TPK%MOL2MOLECCLOUD::WC_SO2+WC_O3-->WC_H2SO4' - CFULLREACS(515) = 'KC26=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(19& +&)**2.))/TPK%MOL2MOLECCLOUD::WC_SO2+WC_O3-->WC_SULF' + CFULLREACS(242) = 'KC30=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(19& &65.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1& &./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1& &./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD& -&::WC_SO2+WC_H2O2-->WC_H2SO4' - CFULLREACS(516) = 'KC27=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& -&CCLOUD::WC_RO21+WC_RO21-->2.00*WC_HCHO+2.00*WC_HO2' - CFULLREACS(517) = 'KC28=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-& -&TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1.& -&/298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%P& -&HC))**2.))/TPK%MOL2MOLECCLOUD::WC_RO21+WC_SO2-->WC_HCHO+WC_ASO3' - CFULLREACS(518) = 'KC29=1.5E+8/TPK%MOL2MOLECCLOUD::WC_RO25+WC_RO25-->WC_ORA2+W& -&C_H2O2+WC_ALD2+WC_HO2' - CFULLREACS(519) = 'KC30=(1.7E+9*exp(-600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLEC& -&CLOUD::WC_MEOH+WC_OH-->WC_HCHO+WC_HO2' - CFULLREACS(520) = 'KC31=(2.1E+9*exp(-1200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& -&CCLOUD::WC_ETOH+WC_OH-->WC_ALD2+WC_HO2' - CFULLREACS(521) = 'KC32=(3.3E+9*exp(-1000.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& -&CCLOUD::WC_ALCH+WC_OH-->0.50*WC_ALD2+0.50*WC_KETL+WC_HO2' - CFULLREACS(522) = 'KC33=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(403& -&0.*(1./TPK%T-1./298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2M& -&OLECCLOUD::WC_HCHO+WC_OH-->WC_ORA1+WC_HO2' - CFULLREACS(523) = 'KC34=3.4E+9/TPK%MOL2MOLECCLOUD::WC_ALD2+WC_OH-->0.50*WC_RO2& -&1+0.50*WC_RO25+WC_CO2' - CFULLREACS(524) = 'KC35=(1.1E+9*exp(-1500.*(1./TPK%T-1./298.15))*3.9e3/(1.+3.9& -&e3))/TPK%MOL2MOLECCLOUD::WC_GLY+WC_OH-->WC_RP16+WC_HO2' - CFULLREACS(525) = 'KC36=(7.9E+8*exp(-1600.*(1./TPK%T-1./298.15))*4.86e2/(1.+4.& -&86e2))/TPK%MOL2MOLECCLOUD::WC_MGLY+WC_OH-->WC_UR21+WC_HO2' - CFULLREACS(526) = 'KC37=(8.9E+8*exp(-1400.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& -&CCLOUD::WC_KETL+WC_OH-->WC_MGLY+WC_KETL+WC_HCHO+WC_UR21+WC_ALD2+WC_RO21+WC_CO2& -&+WC_H2O2+WC_HO2' - CFULLREACS(527) = 'KC38=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%P& -&HC)+3.4E+9*exp(-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.1& -&5)))/(1.8e-4*exp(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLO& -&UD::WC_ORA1+WC_OH-->WC_CO2+WC_HO2' - CFULLREACS(528) = 'KC39=((1.5E+7*exp(-1300.*(1./TPK%T-1./298.15))*10.**(-TPK%P& -&HC)+1.0E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.75e-5)/(1.75e-5+10.**(-TPK%PHC))& -&)/TPK%MOL2MOLECCLOUD::WC_ORA2+WC_OH-->WC_RP16+0.5*WC_H2O2' - CFULLREACS(529) = 'KC40=(3.2E+8*exp(-2300.*(1./TPK%T-1./298.15))*10.**(-TPK%PH& -&C)/(1.35e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ACID+WC_OH-->WC_RO25+WC_C& -&O2' - CFULLREACS(530) = 'KC41=(7.3E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.35e-5/(1.35& -&e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD::WC_ACID+WC_OH-->0.56*WC_UR21+0.15*WC& -&_ACID2+0.29*WC_ALD2+0.29*WC_H2O2+0.11*WC_HO2' - CFULLREACS(531) = 'KC42=((4.7E+7*10.**(-TPK%PHC)*5.6E-2+7.7E+6*5.6E-2*5.4e-5)/& -&(5.6E-2*5.4E-5+5.4E-5*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLO& -&UD::WC_UR28+WC_OH-->2*WC_CO2+WC_HO2' - CFULLREACS(532) = 'KC43=((1.2E+8*exp(-2800.*(1./TPK%T-1./298.15))*10.**(-TPK%P& -&HC)+7.0E+8*exp(-2300.*(1./TPK%T-1./298.15))*3.55E-3)/(3.55E-3+10.**(-TPK%PHC))& -&)/TPK%MOL2MOLECCLOUD::WC_UR21+WC_OH-->0.56*WC_ACID2+0.43*WC_ALD2+0.43*WC_CO2+0& -&.3*WC_H2O2+0.81*WC_HO2' - CFULLREACS(533) = 'KC44=(3.6E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PH& -&C)/(10.**(-TPK%PHC)+3.2E-4))/TPK%MOL2MOLECCLOUD::WC_RP16+WC_OH-->WC_UR28+WC_HO& -&2' - CFULLREACS(534) = 'KC45=(2.6E+9*exp(-4300.*(1./TPK%T-1./298.15))*3.2E-4/(10.**& -&(-TPK%PHC)+3.2E-4))/TPK%MOL2MOLECCLOUD::WC_RP16+WC_OH-->2*WC_CO2+0.45*WC_H2O2+& -&0.71*WC_HO2' - CFULLREACS(535) = 'KC46=1.6E+7/TPK%MOL2MOLECCLOUD::WC_ACID2+WC_OH-->' - CFULLREACS(536) = 'KR1=!ZRATES(:,024)::WR_H2O2-->WR_OH+WR_OH' - CFULLREACS(537) = 'KR2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECR& +&::WC_SO2+WC_H2O2-->WC_SULF' + CFULLREACS(243) = 'KR1=!ZRATES(:,018)::WR_H2O2-->WR_OH+WR_OH' + CFULLREACS(244) = 'KR2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECR& &AIN::WR_OH+WR_OH-->WR_H2O2' - CFULLREACS(538) = 'KR3=((2.8E+10*10.**(-TPK%PHR)+3.5E+10*exp(-720.*(1./TPK%T-1& + CFULLREACS(245) = 'KR3=((2.8E+10*10.**(-TPK%PHR)+3.5E+10*exp(-720.*(1./TPK%T-1& &./298.15))*1.6e-5)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_OH+WR_HO2--& &>' - CFULLREACS(539) = 'KR4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLEC& + CFULLREACS(246) = 'KR4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLEC& &RAIN::WR_H2O2+WR_OH-->WR_HO2' - CFULLREACS(540) = 'KR5=((8.3E+5*exp(-2700.*(1./TPK%T-1./298.15))*(10.**(-TPK%P& + CFULLREACS(247) = 'KR5=((8.3E+5*exp(-2700.*(1./TPK%T-1./298.15))*(10.**(-TPK%P& &HR))**2.+9.6E+7*exp(-910.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*1.6e-5)/(1.6e-& &5+10.**(-TPK%PHR))**2.)/TPK%MOL2MOLECRAIN::WR_HO2+WR_HO2-->WR_H2O2' - CFULLREACS(541) = 'KR6=(1.5E+9*exp(-1500.*(1./TPK%T-1./298.15))*1.6e-5/(1.6e-5& + CFULLREACS(248) = 'KR6=(1.5E+9*exp(-1500.*(1./TPK%T-1./298.15))*1.6e-5/(1.6e-5& &+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_O3+WR_HO2-->WR_OH' - CFULLREACS(542) = 'KR7=(2.7E+9*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-T& + CFULLREACS(249) = 'KR7=(2.7E+9*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-T& &PK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./& &298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PH& &R))**2.))/TPK%MOL2MOLECRAIN::WR_OH+WR_SO2-->WR_ASO3' - CFULLREACS(543) = 'KR8=(1.0E+10*10.**(-TPK%PHR)/(1.6e-3*exp(-1760.*(1./TPK%T-1& + CFULLREACS(250) = 'KR8=(1.0E+10*10.**(-TPK%PHR)/(1.6e-3*exp(-1760.*(1./TPK%T-1& &./298.15))+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_HONO+WR_OH-->WR_NO2' - CFULLREACS(544) = 'KR9=((1.8E+9*10.**(-TPK%PHR)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-& + CFULLREACS(251) = 'KR9=((1.8E+9*10.**(-TPK%PHR)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-& &TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_NO2+WR_HO2-->WR_HNO4' - CFULLREACS(545) = 'KR10=2.6E-2*10.**(-TPK%PHR)/(1.26e-6+10.**(-TPK%PHR))::WR_H& + CFULLREACS(252) = 'KR10=2.6E-2*10.**(-TPK%PHR)/(1.26e-6+10.**(-TPK%PHR))::WR_H& &NO4-->WR_HO2+WR_NO2' - CFULLREACS(546) = 'KR11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHR))::WR_HNO4-->WR_& + CFULLREACS(253) = 'KR11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHR))::WR_HNO4-->WR_& &HONO' - CFULLREACS(547) = 'KR12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(& + CFULLREACS(254) = 'KR12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(& &-TPK%PHR))**2./((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./T& &PK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**& &(-TPK%PHR))**2.)*(1.26e-6+10.**(-TPK%PHR))))/TPK%MOL2MOLECRAIN::WR_HNO4+WR_SO2& -&-->WR_H2SO4+WR_HNO3' - CFULLREACS(548) = 'KR13=!ZRATES(:,025)*2.2e+1/(2.2e+1+10.**(-TPK%PHR))::WR_HNO& +&-->WR_SULF+WR_HNO3' + CFULLREACS(255) = 'KR13=!ZRATES(:,019)*2.2e+1/(2.2e+1+10.**(-TPK%PHR))::WR_HNO& &3-->WR_NO2+WR_OH' - CFULLREACS(549) = 'KR14=1.0E+10::WR_N2O5-->WR_HNO3+WR_HNO3' - CFULLREACS(550) = 'KR15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK& -&%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_NO3+WR_H2SO4-->WR_HNO3+WR_& -&ASO4' - CFULLREACS(551) = 'KR16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(19& + CFULLREACS(256) = 'KR14=1.0E+10::WR_N2O5-->WR_HNO3+WR_HNO3' + CFULLREACS(257) = 'KR15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK& +&%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_NO3+WR_SULF-->WR_HNO3+WR_A& +&SO4' + CFULLREACS(258) = 'KR16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(19& &65.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.1& &5))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.1& &5))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_NO3+WR_SO2--& &>WR_HNO3+WR_ASO3' - CFULLREACS(552) = 'KR17=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1& + CFULLREACS(259) = 'KR17=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& +&CRAIN::WR_MO2+WR_MO2-->2.00*WR_HCHO+2.00*WR_HO2' + CFULLREACS(260) = 'KR18=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-& +&TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1.& +&/298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%P& +&HR))**2.))/TPK%MOL2MOLECRAIN::WR_MO2+WR_SO2-->WR_OP1+WR_ASO3' + CFULLREACS(261) = 'KR19=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(403& +&0.*(1./TPK%T-1./298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2M& +&OLECRAIN::WR_HCHO+WR_OH-->WR_ORA1+WR_HO2' + CFULLREACS(262) = 'KR20=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%P& +&HR)+3.4E+9*exp(-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.1& +&5)))/(1.8e-4*exp(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAI& +&N::WR_ORA1+WR_OH-->WR_CO2+WR_HO2' + CFULLREACS(263) = 'KR21=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1& &965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.& &15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.& &15)))/((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./2& &98.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR& &))**2.)*(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECRAIN::WR_SO2& &+WR_HCHO-->WR_AHMS' - CFULLREACS(553) = 'KR18=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*& + CFULLREACS(264) = 'KR22=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*& &EXP(-6716*(1./TPK%T-1./298.15))/10.**(-TPK%PHR)::WR_AHMS-->WR_SO2+WR_HCHO' - CFULLREACS(554) = 'KR19=3.0E+8/TPK%MOL2MOLECRAIN::WR_AHMS+WR_OH-->WR_HO2+WR_OR& + CFULLREACS(265) = 'KR23=3.0E+8/TPK%MOL2MOLECRAIN::WR_AHMS+WR_OH-->WR_HO2+WR_OR& &A1+WR_SO2' - CFULLREACS(555) = 'KR20=1.1E+9::WR_ASO3+W_O2-->WR_ASO5' - CFULLREACS(556) = 'KR21=(1.7E+9*10.**(-TPK%PHR)/(1.6e-5+10.**(-TPK%PHR)))/TPK%& + CFULLREACS(266) = 'KR24=1.1E+9::WR_ASO3+W_O2-->WR_ASO5' + CFULLREACS(267) = 'KR25=(1.7E+9*10.**(-TPK%PHR)/(1.6e-5+10.**(-TPK%PHR)))/TPK%& &MOL2MOLECRAIN::WR_ASO5+WR_HO2-->WR_AHSO5' - CFULLREACS(557) = 'KR22=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& + CFULLREACS(268) = 'KR26=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& &CRAIN::WR_ASO5+WR_ASO5-->WR_ASO4+WR_ASO4' - CFULLREACS(558) = 'KR23=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-& + CFULLREACS(269) = 'KR27=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-& &TPK%PHR)*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(14& &30.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PH& -&R)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_AHSO5+WR_SO2-->2.00*WR_H2SO4' - CFULLREACS(559) = 'KR24=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15))::WR_ASO4-->WR_& -&H2SO4+WR_OH' - CFULLREACS(560) = 'KR25=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1& +&R)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN::WR_AHSO5+WR_SO2-->2.00*WR_SULF' + CFULLREACS(270) = 'KR28=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15))::WR_ASO4-->WR_& +&SULF+WR_OH' + CFULLREACS(271) = 'KR29=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1& &965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.& &15))*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.& &15)))/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./29& &8.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR)& -&)**2.))/TPK%MOL2MOLECRAIN::WR_SO2+WR_O3-->WR_H2SO4' - CFULLREACS(561) = 'KR26=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(19& +&)**2.))/TPK%MOL2MOLECRAIN::WR_SO2+WR_O3-->WR_SULF' + CFULLREACS(272) = 'KR30=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(19& &65.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1& &./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1& &./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN:& -&:WR_SO2+WR_H2O2-->WR_H2SO4' - CFULLREACS(562) = 'KR27=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& -&CRAIN::WR_RO21+WR_RO21-->2.00*WR_HCHO+2.00*WR_HO2' - CFULLREACS(563) = 'KR28=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-& -&TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1.& -&/298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%P& -&HR))**2.))/TPK%MOL2MOLECRAIN::WR_RO21+WR_SO2-->WR_HCHO+WR_ASO3' - CFULLREACS(564) = 'KR29=1.5E+8/TPK%MOL2MOLECRAIN::WR_RO25+WR_RO25-->WR_ORA2+WR& -&_H2O2+WR_ALD2+WR_HO2' - CFULLREACS(565) = 'KR30=(1.7E+9*exp(-600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLEC& -&RAIN::WR_MEOH+WR_OH-->WR_HCHO+WR_HO2' - CFULLREACS(566) = 'KR31=(2.1E+9*exp(-1200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& -&CRAIN::WR_ETOH+WR_OH-->WR_ALD2+WR_HO2' - CFULLREACS(567) = 'KR32=(3.3E+9*exp(-1000.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& -&CRAIN::WR_ALCH+WR_OH-->0.50*WR_ALD2+0.50*WR_KETL+WR_HO2' - CFULLREACS(568) = 'KR33=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(403& -&0.*(1./TPK%T-1./298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2M& -&OLECRAIN::WR_HCHO+WR_OH-->WR_ORA1+WR_HO2' - CFULLREACS(569) = 'KR34=3.4E+9/TPK%MOL2MOLECRAIN::WR_ALD2+WR_OH-->0.50*WR_RO21& -&+0.50*WR_RO25+WR_CO2' - CFULLREACS(570) = 'KR35=(1.1E+9*exp(-1500.*(1./TPK%T-1./298.15))*3.9e3/(1.+3.9& -&e3))/TPK%MOL2MOLECRAIN::WR_GLY+WR_OH-->WR_RP16+WR_HO2' - CFULLREACS(571) = 'KR36=(7.9E+8*exp(-1600.*(1./TPK%T-1./298.15))*4.86e2/(1.+4.& -&86e2))/TPK%MOL2MOLECRAIN::WR_MGLY+WR_OH-->WR_UR21+WR_HO2' - CFULLREACS(572) = 'KR37=(8.9E+8*exp(-1400.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLE& -&CRAIN::WR_KETL+WR_OH-->WR_MGLY+WR_KETL+WR_HCHO+WR_UR21+WR_ALD2+WR_RO21+WR_CO2+& -&WR_H2O2+WR_HO2' - CFULLREACS(573) = 'KR38=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%P& -&HR)+3.4E+9*exp(-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.1& -&5)))/(1.8e-4*exp(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAI& -&N::WR_ORA1+WR_OH-->WR_CO2+WR_HO2' - CFULLREACS(574) = 'KR39=((1.5E+7*exp(-1300.*(1./TPK%T-1./298.15))*10.**(-TPK%P& -&HR)+1.0E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.75e-5)/(1.75e-5+10.**(-TPK%PHR))& -&)/TPK%MOL2MOLECRAIN::WR_ORA2+WR_OH-->WR_RP16+0.5*WR_H2O2' - CFULLREACS(575) = 'KR40=(3.2E+8*exp(-2300.*(1./TPK%T-1./298.15))*10.**(-TPK%PH& -&R)/(1.35e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ACID+WR_OH-->WR_RO25+WR_CO& -&2' - CFULLREACS(576) = 'KR41=(7.3E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.35e-5/(1.35& -&e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN::WR_ACID+WR_OH-->0.56*WR_UR21+0.15*WR_& -&ACID2+0.29*WR_ALD2+0.29*WR_H2O2+0.11*WR_HO2' - CFULLREACS(577) = 'KR42=((4.7E+7*10.**(-TPK%PHR)*5.6E-2+7.7E+6*5.6E-2*5.4e-5)/& -&(5.6E-2*5.4E-5+5.4E-5*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAI& -&N::WR_UR28+WR_OH-->2*WR_CO2+WR_HO2' - CFULLREACS(578) = 'KR43=((1.2E+8*exp(-2800.*(1./TPK%T-1./298.15))*10.**(-TPK%P& -&HR)+7.0E+8*exp(-2300.*(1./TPK%T-1./298.15))*3.55E-3)/(3.55E-3+10.**(-TPK%PHR))& -&)/TPK%MOL2MOLECRAIN::WR_UR21+WR_OH-->0.56*WR_ACID2+0.43*WR_ALD2+0.43*WR_CO2+0.& -&3*WR_H2O2+0.81*WR_HO2' - CFULLREACS(579) = 'KR44=(3.6E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PH& -&R)/(10.**(-TPK%PHR)+3.2E-4))/TPK%MOL2MOLECRAIN::WR_RP16+WR_OH-->WR_UR28+WR_HO2& -&' - CFULLREACS(580) = 'KR45=(2.6E+9*exp(-4300.*(1./TPK%T-1./298.15))*3.2E-4/(10.**& -&(-TPK%PHR)+3.2E-4))/TPK%MOL2MOLECRAIN::WR_RP16+WR_OH-->2*WR_CO2+0.45*WR_H2O2+0& -&.71*WR_HO2' - CFULLREACS(581) = 'KR46=1.6E+7/TPK%MOL2MOLECRAIN::WR_ACID2+WR_OH-->' +&:WR_SO2+WR_H2O2-->WR_SULF' END IF IF (KVERB >= 5) THEN ! print information to KOUT @@ -7553,1640 +3919,6 @@ END SUBROUTINE CH_PRODLOSS ! !======================================================================== ! -!! ########################## - MODULE MODI_CH_PRODLOSS_GAZ -!! ########################## -INTERFACE -SUBROUTINE CH_PRODLOSS_GAZ(PTIME,PCONC,PPROD,PLOSS,KMI,KVECNPT,KEQ) -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ) :: PPROD, PLOSS -INTEGER, INTENT(IN) :: KMI -END SUBROUTINE CH_PRODLOSS_GAZ -END INTERFACE -END MODULE MODI_CH_PRODLOSS_GAZ -! -!======================================================================== -! -!! ################################################################## - SUBROUTINE CH_PRODLOSS_GAZ(PTIME,PCONC,PPROD,PLOSS,KMI,KVECNPT,KEQ) -!! ################################################################## -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -!! -!!*** *MODD_CH_PRODLOSS* -!! -!! PURPOSE -!! ------- -! calculation of production and loss terms for diagnostics -!! -!!** METHOD -!! ------ -!! The terms of temporal derivative of the chemical species, -!! written as: -!! d/dt PCONC = CH_FCN = PPROD - PCONC*PLOSS, -!! are calculated for diagnostic purposes. -!! -!! REFERENCE -!! --------- -!! none -!! -!! AUTHOR -!! ------ -!! Karsten Suhre (LA) -!! -!! MODIFICATIONS -!! ------------- -!! Original 26/07/96 -!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) -!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) -!! -!!---------------------------------------------------------------------- -!! -!! EXTERNAL -!! -------- -!! none -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -USE MODD_CH_M9_SCHEME -!! -!! EXPLICIT ARGUMENTS -!! ------------------ -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ) :: PPROD, PLOSS -INTEGER, INTENT(IN) :: KMI -TYPE(CCSTYPE), POINTER :: TPK -TPK=>TACCS(KMI) -! /BEGIN_CODE/ -TPK%OSD = ( +TPK%K016*PCONC(:,JP_O3) ) / & - ( +TPK%K017*TPK%H2O+TPK%K018A*TPK%N2(:)+TPK%K018B*TPK%O2(:) ) -! -TPK%O = ( +TPK%K001*PCONC(:,JP_NO2)+TPK%K014*PCONC(:,JP_NO3)+TPK%& -&K015*PCONC(:,JP_O3)+TPK%K018A*TPK%OSD*TPK%N2(:)+TPK%K018B*TPK%OSD*TPK%O2(:) ) / & -( +TPK%K002*TPK%O2(:)+TPK%K003*PCONC(:,JP_NO2)+TPK%K004*PCONC(:,JP_NO2)+TPK%K034*& -PCONC(:,JP_O3)+TPK%K038*PCONC(:,JP_NO)+TPK%K052*PCONC(:,JP_ETHE)+& -&TPK%K057*PCONC(:,JP_OLEL)+TPK%K067*PCONC(:,JP_ISOP)+TPK%K077*PCONC(:,& -&JP_OLEH)+TPK%K087*PCONC(:,JP_BIOL)+TPK%K091*PCONC(:,JP_BIOH)+TPK%K283& -&*PCONC(:,JP_MVK)+TPK%K284*PCONC(:,JP_MCR) ) -! -TPK%RO225 = ( TPK%K085*PCONC(:,JP_BIOL)*PCONC(:,JP_NO3) ) / & -( +TPK%K201*PCONC(:,JP_NO)+TPK%K202*PCONC(:,JP_RO2T)+TPK%K203*PCONC(:,JP_HO2)) -! -TPK%RO228 = ( TPK%K089*PCONC(:,JP_BIOH)*PCONC(:,JP_NO3) ) / & -( +TPK%K210*PCONC(:,JP_NO)+TPK%K211*PCONC(:,JP_RO2T)+TPK%K212*PCONC(:,JP_HO2)) - -! -TPK%RO253 = ( +0.41*TPK%K282*PCONC(:,JP_MCR)*PCONC(:,JP_O3) ) / & -( +TPK%K297*PCONC(:,JP_NO)+TPK%K298*PCONC(:,JP_HO2)+TPK%K299*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO254 = ( +TPK%K140*PCONC(:,JP_PAN6)+TPK%K297*TPK%RO253*& -&PCONC(:,JP_NO)+TPK%K298*TPK%RO253*PCONC(:,JP_HO2)+TPK%K299*& -&TPK%RO253*PCONC(:,JP_RO2T) ) / & -( +TPK%K131*PCONC(:,JP_NO2)+TPK%K300*PCONC(:,JP_NO)+TPK%K301*PCONC(& -&:,JP_HO2)+TPK%K302*PCONC(:,JP_RO2T) ) -! -TPK%RO213 = ( +0.271*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3) ) / & -( +TPK%K162*PCONC(:,JP_NO)+TPK%K163*PCONC(:,JP_RO2T)+TPK%K164*PCONC& -&(:,JP_HO2) ) -! -TPK%RO239 = ( +TPK%K137*PCONC(:,JP_PAN3)+TPK%K162*TPK%RO213*& -&PCONC(:,JP_NO)+TPK%K163*TPK%RO213*PCONC(:,JP_RO2T)+TPK%K164*TPK%RO213*PCONC(:,JP_HO2) ) / & -( +TPK%K128*PCONC(:,JP_NO2)+TPK%K165*PCONC(:,JP_NO)+TPK%K166*PCONC(& -&:,JP_HO2)+TPK%K167*PCONC(:,JP_RO2T) ) -! -TPK%RO248 = ( +TPK%K141*PCONC(:,JP_PAN4)+TPK%K274*PCONC(:,JP_MGLY)*P& -&CONC(:,JP_OH)+TPK%K278*PCONC(:,JP_MGLY)*PCONC(:,JP_NO3) ) / & -( +TPK%K129*PCONC(:,JP_NO2)+TPK%K277*PCONC(:,JP_NO)+TPK%K279*PCONC(& -&:,JP_HO2)+TPK%K280*PCONC(:,JP_RO2T) ) -! -TPK%RO249 = ( +TPK%K272*PCONC(:,JP_MVK)*PCONC(:,JP_OH) ) / & -( +TPK%K285*PCONC(:,JP_NO)+TPK%K286*PCONC(:,JP_RO2T)+TPK%K287*PCONC& -&(:,JP_HO2) ) -! -TPK%RO250 = ( +0.3750353*TPK%K139*PCONC(:,JP_APAN)+TPK%CF46*TPK%K2& -&73*PCONC(:,JP_MCR)*PCONC(:,JP_OH)+TPK%CF46*TPK%K275*PCONC(:,JP_MCR)*PCONC& -&(:,JP_NO3) ) / & -( +TPK%K130*PCONC(:,JP_NO2)+TPK%K288*PCONC(:,JP_NO)+TPK%K289*PCONC(& -&:,JP_HO2)+TPK%K290*PCONC(:,JP_RO2T) ) -! -TPK%RO214 = ( +0.095*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3)+TPK%K1& -&65*TPK%RO239*PCONC(:,JP_NO)+TPK%K167*TPK%RO239*PCONC(:,JP_R& -&O2T)+TPK%K288*TPK%RO250*PCONC(:,JP_NO)+TPK%K290*TPK%RO250& -&*PCONC(:,JP_RO2T) ) / & -( +TPK%K168*PCONC(:,JP_NO)+TPK%K169*PCONC(:,JP_RO2T)+TPK%K170*PCONC& -&(:,JP_HO2) ) -! -TPK%RO251 = ( +TPK%CF47*TPK%K273*PCONC(:,JP_MCR)*PCONC(:,JP_OH) ) / & -( +TPK%K291*PCONC(:,JP_NO)+TPK%K292*PCONC(:,JP_HO2)+TPK%K293*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO252 = ( +TPK%CF47*TPK%K275*PCONC(:,JP_MCR)*PCONC(:,JP_NO3) ) /& -( +TPK%K294*PCONC(:,JP_NO)+TPK%K295*PCONC(:,JP_HO2)+TPK%K296*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO258 = ( +TPK%K138*PCONC(:,JP_PN10)+TPK%K305*PCONC(:,JP_RP16)*P& -&CONC(:,JP_OH)+TPK%K338*PCONC(:,JP_RP16)*PCONC(:,JP_NO3) ) / & -( +TPK%K134*PCONC(:,JP_NO2)+TPK%K340*PCONC(:,JP_NO)+TPK%K341*PCONC(& -&:,JP_HO2)+TPK%K342*PCONC(:,JP_RO2T) ) -! -TPK%RO255 = ( +TPK%K304*PCONC(:,JP_RPR1)*PCONC(:,JP_OH)+TPK%K307*PCO& -&NC(:,JP_RPR1)*PCONC(:,JP_NO3)+TPK%K343*PCONC(:,JP_PAN7) ) / & -( +TPK%K132*PCONC(:,JP_NO2)+TPK%K309*PCONC(:,JP_NO)+TPK%K310*PCONC(& -&:,JP_HO2)+TPK%K311*PCONC(:,JP_RO2T) ) -! -TPK%RO256 = ( +TPK%K312*PCONC(:,JP_RPR3)*PCONC(:,JP_OH)+TPK%K313*PCO& -&NC(:,JP_RPR3)*PCONC(:,JP_NO3)+TPK%K317*PCONC(:,JP_PAN8) ) / & -( +TPK%K315*PCONC(:,JP_NO)+TPK%K316*PCONC(:,JP_NO2)+TPK%K318*PCONC(& -&:,JP_HO2)+TPK%K319*PCONC(:,JP_RO2T) ) -! -TPK%RO257 = ( +0.6249651*TPK%K139*PCONC(:,JP_APAN)+TPK%K324*PCONC(:,& -&JP_RPR8)*PCONC(:,JP_OH)+TPK%K327*PCONC(:,JP_RPR8)*PCONC(:,JP_NO3)+TPK%K3& -&30*PCONC(:,JP_RPR8) ) / & -( +TPK%K133*PCONC(:,JP_NO2)+TPK%K331*PCONC(:,JP_NO)+TPK%K332*PCONC(& -&:,JP_HO2)+TPK%K333*PCONC(:,JP_RO2T) ) -! -TPK%RO29 = ( +0.66*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH)+TPK%K329& -&*PCONC(:,JP_RPR8)+TPK%K331*TPK%RO257*PCONC(:,JP_NO)+TPK%K333*TPK%RO257*& -PCONC(:,JP_RO2T) ) / & -( +TPK%K150*PCONC(:,JP_NO)+TPK%K151*PCONC(:,JP_RO2T)+TPK%K152*PCONC& -&(:,JP_HO2) ) -! -!avoid division by zero in prodloss -WHERE (PCONC(:,JP_NO2)>0.) - TPK%RAD1 = ( +TPK%K072*PCONC(:,JP_AROO)*PCONC(:,JP_NO3) ) / & - ( +TPK%K103*PCONC(:,JP_NO2) ) -! - TPK%RAD8 = ( +TPK%K320*PCONC(:,JP_RPR4)*PCONC(:,JP_NO3) ) / & - ( +TPK%K321*PCONC(:,JP_NO2) ) -ELSEWHERE - TPK%RAD1 = 0. - TPK%RAD8 = 0. -ENDWHERE -! -TPK%RAD2 = ( +0.74*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & -( +TPK%K097+TPK%K104*PCONC(:,JP_NO2) ) -! -TPK%RAD3 = ( +0.74*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & -( +TPK%K098+TPK%K105*PCONC(:,JP_NO2) ) -! -TPK%RAD4 = ( +0.84*TPK%K080*PCONC(:,JP_AROH)*PCONC(:,JP_OH) ) / & -( +TPK%K099+TPK%K106*PCONC(:,JP_NO2) ) -! -TPK%RAD5 = ( +TPK%CF40*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) / & -( +TPK%K100+TPK%K107*PCONC(:,JP_NO2) ) -! -TPK%RAD6 = ( +0.74*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & -( +TPK%K101+TPK%K108*PCONC(:,JP_NO2) ) -! -TPK%RAD7 = ( +0.74*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & -( +TPK%K102+TPK%K109*PCONC(:,JP_NO2) ) -! -TPK%RO22 = ( +TPK%K049*PCONC(:,JP_ETHE)*PCONC(:,JP_OH)+TPK%CF2*TPK& -&%K053*PCONC(:,JP_ETOH)*PCONC(:,JP_OH)+TPK%K054*PCONC(:,JP_OLEL)*PCONC(:,JP_& -&OH)+TPK%K069*PCONC(:,JP_ALCH)*PCONC(:,JP_OH) ) / & -( +TPK%K113*PCONC(:,JP_NO)+TPK%K114*PCONC(:,JP_RO2T)+TPK%K115*PCONC& -&(:,JP_HO2) ) -! -TPK%RO23 = ( +TPK%K050*PCONC(:,JP_ETHE)*PCONC(:,JP_NO3)+TPK%K055*PCO& -&NC(:,JP_OLEL)*PCONC(:,JP_NO3) ) / & -( +TPK%K116*PCONC(:,JP_NO)+TPK%K117*PCONC(:,JP_RO2T)+TPK%K118*PCONC& -&(:,JP_HO2) ) -! -TPK%RO24 = ( +0.4*TPK%K052*PCONC(:,JP_ETHE)*TPK%O+0.1*TPK%K0& -&57*PCONC(:,JP_OLEL)*TPK%O+0.1*TPK%K077*PCONC(:,JP_OLEH)*& -&TPK%O+0.15*TPK%K283*PCONC(:,JP_MVK)*TPK%O ) / & -( +TPK%K119*PCONC(:,JP_NO)+TPK%K120*PCONC(:,JP_RO2T)+TPK%K121*PCONC& -&(:,JP_HO2) ) -! -TPK%RO26 = ( +TPK%K060*PCONC(:,JP_ALD2)*PCONC(:,JP_OH)+TPK%K061*PCON& -&C(:,JP_ALD2)*PCONC(:,JP_NO3)+TPK%K135*PCONC(:,JP_PAN1) ) / & -( +TPK%K125*PCONC(:,JP_NO)+TPK%K126*PCONC(:,JP_NO2)+TPK%K142*PCONC(& -&:,JP_HO2)+TPK%K143*PCONC(:,JP_RO2T) ) -! -TPK%RO27 = ( +TPK%K062*PCONC(:,JP_KETL)*PCONC(:,JP_OH)+TPK%CF8*TPK& -&%K168*TPK%RO214*PCONC(:,JP_NO)+TPK%K169*TPK%RO214*PCONC(:,J& -&P_RO2T)+TPK%K170*TPK%RO214*PCONC(:,JP_HO2)+0.15*TPK%K284*PCONC(:& -&,JP_MCR)*TPK%O ) / & -( +TPK%K144*PCONC(:,JP_NO)+TPK%K145*PCONC(:,JP_RO2T)+TPK%K146*PCONC& -&(:,JP_HO2) ) -! -TPK%RO210 = ( +0.34*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH) ) / & -( +TPK%K153*PCONC(:,JP_NO)+TPK%K154*PCONC(:,JP_RO2T)+TPK%K155*PCONC& -&(:,JP_HO2) ) -! -TPK%RO211 = ( +0.66*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & -( +TPK%K156*PCONC(:,JP_NO)+TPK%K157*PCONC(:,JP_RO2T)+TPK%K158*PCONC& -&(:,JP_HO2) ) -! -TPK%RO212 = ( +0.34*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & -( +TPK%K159*PCONC(:,JP_NO)+TPK%K160*PCONC(:,JP_RO2T)+TPK%K161*PCONC& -&(:,JP_HO2) ) -! -TPK%RO215 = ( +TPK%K068*PCONC(:,JP_MTBE)*PCONC(:,JP_OH) ) / & -( +TPK%K171*PCONC(:,JP_NO)+TPK%K172*PCONC(:,JP_RO2T)+TPK%K173*PCONC& -&(:,JP_HO2) ) -! -TPK%RO216 = ( +TPK%K070*PCONC(:,JP_KETH)*PCONC(:,JP_OH) ) / & -( +TPK%K174*PCONC(:,JP_NO)+TPK%K175*PCONC(:,JP_RO2T)+TPK%K176*PCONC& -&(:,JP_HO2) ) -! -TPK%RO217 = ( +0.1*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & -( +TPK%K177*PCONC(:,JP_NO)+TPK%K178*PCONC(:,JP_RO2T)+TPK%K179*PCONC& -&(:,JP_HO2) ) -! -TPK%RO220 = ( +0.28*TPK%K076*PCONC(:,JP_OLEH)*PCONC(:,JP_O3)+0.1*TPK& -&%K077*PCONC(:,JP_OLEH)*TPK%O+TPK%K078*PCONC(:,JP_ALKM)*PCONC(:,JP_O& -&H)+TPK%K308*PCONC(:,JP_RPR1)+TPK%K309*TPK%RO255*PCONC(:,JP_NO)+T& -&PK%K311*TPK%RO255*PCONC(:,JP_RO2T) ) / & -( +TPK%K186*PCONC(:,JP_NO)+TPK%K187*PCONC(:,JP_RO2T)+TPK%K188*PCONC& -&(:,JP_HO2) ) -! -TPK%RO218 = ( +TPK%K074*PCONC(:,JP_OLEH)*PCONC(:,JP_OH)+TPK%CF18*TPK%K186*& -TPK%RO220*PCONC(:,JP_NO)+TPK%K187*TPK%RO220*PCONC(:& -&,JP_RO2T)+TPK%K188*TPK%RO220*PCONC(:,JP_HO2) ) / & -( +TPK%K180*PCONC(:,JP_NO)+TPK%K181*PCONC(:,JP_RO2T)+TPK%K182*PCONC& -&(:,JP_HO2) ) -! -TPK%RO219 = ( +TPK%K075*PCONC(:,JP_OLEH)*PCONC(:,JP_NO3) ) / & -( +TPK%K183*PCONC(:,JP_NO)+TPK%K184*PCONC(:,JP_RO2T)+TPK%K185*PCONC& -&(:,JP_HO2) ) -! -TPK%RO221 = ( +0.1*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & -( +TPK%K189*PCONC(:,JP_NO)+TPK%K190*PCONC(:,JP_RO2T)+TPK%K191*PCONC& -&(:,JP_HO2) ) -! -TPK%RO222 = ( +TPK%CF45*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) /& -& & -( +TPK%K192*PCONC(:,JP_NO)+TPK%K193*PCONC(:,JP_RO2T)+TPK%K194*PCONC& -&(:,JP_HO2) ) -! -TPK%RO223 = ( +0.1*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & -( +TPK%K195*PCONC(:,JP_NO)+TPK%K196*PCONC(:,JP_RO2T)+TPK%K197*PCONC& -&(:,JP_HO2) ) -! -TPK%RO224 = ( +TPK%K084*PCONC(:,JP_BIOL)*PCONC(:,JP_OH) ) / & -( +TPK%K198*PCONC(:,JP_NO)+TPK%K199*PCONC(:,JP_RO2T)+TPK%K200*PCONC& -&(:,JP_HO2) ) -! -TPK%RO226 = ( +0.445*TPK%K086*PCONC(:,JP_BIOL)*PCONC(:,JP_O3) ) / & -( +TPK%K204*PCONC(:,JP_NO)+TPK%K205*PCONC(:,JP_RO2T)+TPK%K206*PCONC& -&(:,JP_HO2) ) -! -TPK%RO227 = ( +TPK%K088*PCONC(:,JP_BIOH)*PCONC(:,JP_OH) ) / & -( +TPK%K207*PCONC(:,JP_NO)+TPK%K208*PCONC(:,JP_RO2T)+TPK%K209*PCONC& -&(:,JP_HO2) ) -! -TPK%RO229 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & -( +TPK%K213*PCONC(:,JP_NO)+TPK%K214*PCONC(:,JP_RO2T)+TPK%K215*PCONC& -&(:,JP_HO2) ) -! -TPK%RO230 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & -( +TPK%K219*PCONC(:,JP_RO2T)+TPK%K220*PCONC(:,JP_HO2)+TPK%K344*PCON& -&C(:,JP_NO) ) -! -TPK%RO231 = ( +0.1*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & -( +TPK%K221*PCONC(:,JP_NO)+TPK%K222*PCONC(:,JP_RO2T)+TPK%K223*PCONC& -&(:,JP_HO2) ) -! -TPK%RO232 = ( +TPK%K093*PCONC(:,JP_ALKH)*PCONC(:,JP_OH) ) / & -( +TPK%K224*PCONC(:,JP_NO)+TPK%K225*PCONC(:,JP_RO2T)+TPK%K226*PCONC& -&(:,JP_HO2) ) -! -TPK%RO233 = ( +TPK%K097*TPK%RAD2 ) / & -( +TPK%K230+TPK%K231*PCONC(:,JP_NO)+TPK%K232*PCONC(:,JP_RO2T)+TPK%K233*& -PCONC(:,JP_HO2) ) -! -TPK%RO234 = ( +TPK%K098*TPK%RAD3 ) / & -( +TPK%K237+TPK%K238*PCONC(:,JP_NO)+TPK%K239*PCONC(:,JP_RO2T)+TPK%K240*& -PCONC(:,JP_HO2) ) -! -TPK%RO235 = ( +TPK%K099*TPK%RAD4 ) / & -( +TPK%K244+TPK%K245*PCONC(:,JP_NO)+TPK%K246*PCONC(:,JP_RO2T)+TPK%K247*& -PCONC(:,JP_HO2) ) -! -TPK%RO236 = ( +TPK%K100*TPK%RAD5 ) / & -( +TPK%K251+TPK%K252*PCONC(:,JP_NO)+TPK%K253*PCONC(:,JP_RO2T)+TPK%K254*& -PCONC(:,JP_HO2) ) -! -TPK%RO237 = ( +TPK%K101*TPK%RAD6 ) / & -( +TPK%K258+TPK%K259*PCONC(:,JP_NO)+TPK%K260*PCONC(:,JP_RO2T)+TPK%K261*& -PCONC(:,JP_HO2) ) -! -TPK%RO238 = ( +TPK%K102*TPK%RAD7 ) / & -( +TPK%K265+TPK%K266*PCONC(:,JP_NO)+TPK%K267*PCONC(:,JP_RO2T)+TPK%K268*& -PCONC(:,JP_HO2) ) -! -TPK%RO240 = ( +TPK%CF30*TPK%K213*TPK%RO229*PCONC(:,JP_NO)+TPK%K214*& -TPK%RO229*PCONC(:,JP_RO2T)+TPK%K215*TPK%RO229*PCON& -&C(:,JP_HO2) ) / & -( +TPK%K216*PCONC(:,JP_NO)+TPK%K217*PCONC(:,JP_RO2T)+TPK%K218*PCONC& -&(:,JP_HO2) ) -! -TPK%RO241 = ( +TPK%CF34*TPK%K224*TPK%RO232*PCONC(:,JP_NO)+TPK%K225*& -TPK%RO232*PCONC(:,JP_RO2T)+TPK%K226*TPK%RO232*PCON& -&C(:,JP_HO2) ) / & -( +TPK%K227*PCONC(:,JP_NO)+TPK%K228*PCONC(:,JP_RO2T)+TPK%K229*PCONC& -&(:,JP_HO2) ) -! -TPK%RO242 = ( +TPK%K230*TPK%RO233 ) / & -( +TPK%K234*PCONC(:,JP_NO)+TPK%K235*PCONC(:,JP_RO2T)+TPK%K236*PCONC& -&(:,JP_HO2) ) -! -TPK%RO243 = ( +TPK%K237*TPK%RO234 ) / & -( +TPK%K241*PCONC(:,JP_NO)+TPK%K242*PCONC(:,JP_RO2T)+TPK%K243*PCONC& -&(:,JP_HO2) ) -! -TPK%RO244 = ( +TPK%K244*TPK%RO235 ) / & -( +TPK%K248*PCONC(:,JP_NO)+TPK%K249*PCONC(:,JP_RO2T)+TPK%K250*PCONC& -&(:,JP_HO2) ) -! -TPK%RO245 = ( +TPK%K251*TPK%RO236 ) / & -( +TPK%K255*PCONC(:,JP_NO)+TPK%K256*PCONC(:,JP_RO2T)+TPK%K257*PCONC& -&(:,JP_HO2) ) -! -TPK%RO246 = ( +TPK%K258*TPK%RO237 ) / & -( +TPK%K262*PCONC(:,JP_NO)+TPK%K263*PCONC(:,JP_RO2T)+TPK%K264*PCONC& -&(:,JP_HO2) ) -! -TPK%RO247 = ( +TPK%K265*TPK%RO238 ) / & -( +TPK%K269*PCONC(:,JP_NO)+TPK%K270*PCONC(:,JP_RO2T)+TPK%K271*PCONC& -&(:,JP_HO2) ) -! -TPK%RO28 = ( +TPK%K063*PCONC(:,JP_KETL)+TPK%K071*PCONC(:,JP_KETH)+TP& -&K%K136*PCONC(:,JP_PAN2)+TPK%K144*TPK%RO27*PCONC(:,JP_NO)+TPK%& -&K145*TPK%RO27*PCONC(:,JP_RO2T)+TPK%K146*TPK%RO27*PCONC(:,JP& -&_HO2)+TPK%K174*TPK%RO216*PCONC(:,JP_NO)+TPK%K175*TPK%RO21& -&6*PCONC(:,JP_RO2T)+TPK%K176*TPK%RO216*PCONC(:,JP_HO2)+TPK%K204*& -&TPK%RO226*PCONC(:,JP_NO)+TPK%K205*TPK%RO226*PCONC(:,JP_RO2T)& -&+TPK%K206*TPK%RO226*PCONC(:,JP_HO2)+TPK%K216*TPK%RO240*& -&PCONC(:,JP_NO)+TPK%K217*TPK%RO240*PCONC(:,JP_RO2T)+TPK%K218*& -&TPK%RO240*PCONC(:,JP_HO2)+TPK%K219*TPK%RO230*PCONC(:,JP_RO2T)+T& -&PK%K220*TPK%RO230*PCONC(:,JP_HO2)+TPK%K276*PCONC(:,JP_MGLY)+TPK%K277*& -TPK%RO248*PCONC(:,JP_NO)+TPK%K280*TPK%RO248*PCONC(:& -&,JP_RO2T)+0.28*TPK%K281*PCONC(:,JP_MVK)*PCONC(:,JP_O3)+0.15*TPK%K283*PCO& -&NC(:,JP_MVK)*TPK%O+TPK%K344*TPK%RO230*PCONC(:,JP_NO) ) / & -( +TPK%K127*PCONC(:,JP_NO2)+TPK%K147*PCONC(:,JP_NO)+TPK%K148*PCONC(& -&:,JP_HO2)+TPK%K149*PCONC(:,JP_RO2T) ) -! -! /END_CODE/ -CALL SUB0 -CALL SUB1 -CALL SUB2 -CALL SUB3 -CALL SUB4 -CALL SUB5 -CALL SUB6 -CALL SUB7 -CALL SUB8 - -CONTAINS - -SUBROUTINE SUB0 -! -!Indices 1 a 10 -! -! -!PPROD(NO) = +K001*<NO2>+K003*<NO2>*<O>+K012*<NO3>*<NO2>+K013*<NO3>+0.9*K020*<H -!ONO>+K095*<NO>*<RO2T> - PPROD(:,1) = +TPK%K001(:)*PCONC(:,2)+TPK%K003(:)*PCONC(:,2)*TPK%O(:)+TPK%K012(& -&:)*PCONC(:,8)*PCONC(:,2)+TPK%K013(:)*PCONC(:,8)+0.9*TPK%K020(:)*PCONC(:,4)+TPK& -&%K095(:)*PCONC(:,1)*PCONC(:,85) -!PLOSS(NO) = +K005*<O3>+K007*<NO3>+K008*<NO>+K008*<NO>+K019*<OH>+K026*<HO2>+K03 -!8*<O>+K095*<RO2T>+K110*<RO21>+K113*<RO22>+K116*<RO23>+K119*<RO24>+K122*<RO25>+ -!K125*<RO26>+K144*<RO27>+K147*<RO28>+K150*<RO29>+K153*<RO210>+K156*<RO211>+K159 -!*<RO212>+K162*<RO213>+K165*<RO239>+K168*<RO214>+K171*<RO215>+K174*<RO216>+K177 -!*<RO217>+K180*<RO218>+K183*<RO219>+K186*<RO220>+K189*<RO221>+K192*<RO222>+K195 -!*<RO223>+K198*<RO224>+K201*<RO225>+K204*<RO226>+K207*<RO227>+K210*<RO228>+K213 -!*<RO229>+K216*<RO240>+K221*<RO231>+K224*<RO232>+K227*<RO241>+K231*<RO233>+K234 -!*<RO242>+K238*<RO234>+K241*<RO243>+K245*<RO235>+K248*<RO244>+K252*<RO236>+K255 -!*<RO245>+K259*<RO237>+K262*<RO246>+K266*<RO238>+K269*<RO247>+K277*<RO248>+K285 -!*<RO249>+K288*<RO250>+K291*<RO251>+K294*<RO252>+K297*<RO253>+K300*<RO254>+K309 -!*<RO255>+K315*<RO256>+K331*<RO257>+K340*<RO258>+K344*<RO230> - PLOSS(:,1) = +TPK%K005(:)*PCONC(:,3)+TPK%K007(:)*PCONC(:,8)+TPK%K008(:)*PCONC(& -&:,1)+TPK%K008(:)*PCONC(:,1)+TPK%K019(:)*PCONC(:,15)+TPK%K026(:)*PCONC(:,10)+TP& -&K%K038(:)*TPK%O(:)+TPK%K095(:)*PCONC(:,85)+TPK%K110(:)*PCONC(:,86)+TPK%K113(:)& -&*TPK%RO22(:)+TPK%K116(:)*TPK%RO23(:)+TPK%K119(:)*TPK%RO24(:)+TPK%K122(:)*PCONC& -&(:,87)+TPK%K125(:)*TPK%RO26(:)+TPK%K144(:)*TPK%RO27(:)+TPK%K147(:)*TPK%RO28(:)& -&+TPK%K150(:)*TPK%RO29(:)+TPK%K153(:)*TPK%RO210(:)+TPK%K156(:)*TPK%RO211(:)+TPK& -&%K159(:)*TPK%RO212(:)+TPK%K162(:)*TPK%RO213(:)+TPK%K165(:)*TPK%RO239(:)+TPK%K1& -&68(:)*TPK%RO214(:)+TPK%K171(:)*TPK%RO215(:)+TPK%K174(:)*TPK%RO216(:)+TPK%K177(& -&:)*TPK%RO217(:)+TPK%K180(:)*TPK%RO218(:)+TPK%K183(:)*TPK%RO219(:)+TPK%K186(:)*& -&TPK%RO220(:)+TPK%K189(:)*TPK%RO221(:)+TPK%K192(:)*TPK%RO222(:)+TPK%K195(:)*TPK& -&%RO223(:)+TPK%K198(:)*TPK%RO224(:)+TPK%K201(:)*TPK%RO225(:)+TPK%K204(:)*TPK%RO& -&226(:)+TPK%K207(:)*TPK%RO227(:)+TPK%K210(:)*TPK%RO228(:)+TPK%K213(:)*TPK%RO229& -&(:)+TPK%K216(:)*TPK%RO240(:)+TPK%K221(:)*TPK%RO231(:)+TPK%K224(:)*TPK%RO232(:)& -&+TPK%K227(:)*TPK%RO241(:)+TPK%K231(:)*TPK%RO233(:)+TPK%K234(:)*TPK%RO242(:)+TP& -&K%K238(:)*TPK%RO234(:)+TPK%K241(:)*TPK%RO243(:)+TPK%K245(:)*TPK%RO235(:)+TPK%K& -&248(:)*TPK%RO244(:)+TPK%K252(:)*TPK%RO236(:)+TPK%K255(:)*TPK%RO245(:)+TPK%K259& -&(:)*TPK%RO237(:)+TPK%K262(:)*TPK%RO246(:)+TPK%K266(:)*TPK%RO238(:)+TPK%K269(:)& -&*TPK%RO247(:)+TPK%K277(:)*TPK%RO248(:)+TPK%K285(:)*TPK%RO249(:)+TPK%K288(:)*TP& -&K%RO250(:)+TPK%K291(:)*TPK%RO251(:)+TPK%K294(:)*TPK%RO252(:)+TPK%K297(:)*TPK%R& -&O253(:)+TPK%K300(:)*TPK%RO254(:)+TPK%K309(:)*TPK%RO255(:)+TPK%K315(:)*TPK%RO25& -&6(:)+TPK%K331(:)*TPK%RO257(:)+TPK%K340(:)*TPK%RO258(:)+TPK%K344(:)*TPK%RO230(:& -&) -! -!PPROD(NO2) = +K005*<O3>*<NO>+2.*K007*<NO3>*<NO>+2.*K008*<NO>*<NO>+K010*<N2O5>+ -!K012*<NO3>*<NO2>+K014*<NO3>+0.1*K020*<HONO>+K026*<HO2>*<NO>+K028*<HNO4>+K029*< -!OH>*<HNO4>+0.8*K033*<HO2>*<NO3>+K038*<NO>*<O>+K039*<OH>*<HONO>+K040*<OH>*<NO3> -!+2.*K041*<NO3>*<NO3>+K110*<NO>*<RO21>+K113*<NO>*<RO22>+2.*K116*<NO>*<RO23>+K11 -!7*<RO2T>*<RO23>+K118*<HO2>*<RO23>+K119*<NO>*<RO24>+TPK%CF4*K122*<NO>*<RO25>+K1 -!25*<NO>*<RO26>+K135*<PAN1>+K136*<PAN2>+K137*<PAN3>+K138*<PN10>+1.0000000*K139* -!<APAN>+K140*<PAN6>+K141*<PAN4>+K144*<NO>*<RO27>+K147*<NO>*<RO28>+TPK%CF6*K150* -!<NO>*<RO29>+K153*<NO>*<RO210>+2.*K156*<NO>*<RO211>+K157*<RO2T>*<RO211>+K158*<H -!O2>*<RO211>+2.*K159*<NO>*<RO212>+K160*<RO2T>*<RO212>+K161*<HO2>*<RO212>+K162*< -!NO>*<RO213>+K165*<NO>*<RO239>+TPK%CF8*K168*<NO>*<RO214>+K171*<NO>*<RO215>+K174 -!*<NO>*<RO216>+TPK%CF22*K177*<NO>*<RO217>+TPK%CF20*K180*<NO>*<RO218>+2.*K183*<N -!O>*<RO219>+K184*<RO2T>*<RO219>+K185*<HO2>*<RO219>+TPK%CF18*K186*<NO>*<RO220>+T -!PK%CF24*K189*<NO>*<RO221>+TPK%CF42*K192*<NO>*<RO222>+TPK%CF44*K195*<NO>*<RO223 -!>+TPK%CF26*K198*<NO>*<RO224>+2.*K201*<NO>*<RO225>+K202*<RO2T>*<RO225>+K203*<HO -!2>*<RO225>+K204*<NO>*<RO226>+TPK%CF28*K207*<NO>*<RO227>+2.*K210*<NO>*<RO228>+K -!211*<RO2T>*<RO228>+K212*<HO2>*<RO228>+TPK%CF30*K213*<NO>*<RO229>+K216*<NO>*<RO -!240>+TPK%CF32*K221*<NO>*<RO231>+TPK%CF34*K224*<NO>*<RO232>+TPK%CF36*K227*<NO>* -!<RO241>+K231*<NO>*<RO233>+K234*<NO>*<RO242>+K238*<NO>*<RO234>+K241*<NO>*<RO243 -!>+K245*<NO>*<RO235>+K248*<NO>*<RO244>+K252*<NO>*<RO236>+K255*<NO>*<RO245>+K259 -!*<NO>*<RO237>+K262*<NO>*<RO246>+K266*<NO>*<RO238>+K269*<NO>*<RO247>+K277*<NO>* -!<RO248>+K285*<NO>*<RO249>+K288*<NO>*<RO250>+K291*<NO>*<RO251>+2.*K294*<NO>*<RO -!252>+K295*<HO2>*<RO252>+K296*<RO2T>*<RO252>+K297*<NO>*<RO253>+K300*<NO>*<RO254 -!>+K309*<NO>*<RO255>+K315*<NO>*<RO256>+K317*<PAN8>+K331*<NO>*<RO257>+K340*<NO>* -!<RO258>+K343*<PAN7>+K344*<NO>*<RO230> - PPROD(:,2) = +TPK%K005(:)*PCONC(:,3)*PCONC(:,1)+2.*TPK%K007(:)*PCONC(:,8)*PCON& -&C(:,1)+2.*TPK%K008(:)*PCONC(:,1)*PCONC(:,1)+TPK%K010(:)*PCONC(:,7)+TPK%K012(:)& -&*PCONC(:,8)*PCONC(:,2)+TPK%K014(:)*PCONC(:,8)+0.1*TPK%K020(:)*PCONC(:,4)+TPK%K& -&026(:)*PCONC(:,10)*PCONC(:,1)+TPK%K028(:)*PCONC(:,6)+TPK%K029(:)*PCONC(:,15)*P& -&CONC(:,6)+0.8*TPK%K033(:)*PCONC(:,10)*PCONC(:,8)+TPK%K038(:)*PCONC(:,1)*TPK%O(& -&:)+TPK%K039(:)*PCONC(:,15)*PCONC(:,4)+TPK%K040(:)*PCONC(:,15)*PCONC(:,8)+2.*TP& -&K%K041(:)*PCONC(:,8)*PCONC(:,8)+TPK%K110(:)*PCONC(:,1)*PCONC(:,86)+TPK%K113(:)& -&*PCONC(:,1)*TPK%RO22(:)+2.*TPK%K116(:)*PCONC(:,1)*TPK%RO23(:)+TPK%K117(:)*PCON& -&C(:,85)*TPK%RO23(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO23(:)+TPK%K119(:)*PCONC(:,1)& -&*TPK%RO24(:)+TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87)+TPK%K125(:)*PCONC(:,1)& -&*TPK%RO26(:)+TPK%K135(:)*PCONC(:,77)+TPK%K136(:)*PCONC(:,78)+TPK%K137(:)*PCONC& -&(:,79)+TPK%K138(:)*PCONC(:,84)+1.0000000*TPK%K139(:)*PCONC(:,76)+TPK%K140(:)*P& -&CONC(:,81)+TPK%K141(:)*PCONC(:,80)+TPK%K144(:)*PCONC(:,1)*TPK%RO27(:)+TPK%K147& -&(:)*PCONC(:,1)*TPK%RO28(:)+TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:)+TPK%K153& -&(:)*PCONC(:,1)*TPK%RO210(:)+2.*TPK%K156(:)*PCONC(:,1)*TPK%RO211(:)+TPK%K157(:)& -&*PCONC(:,85)*TPK%RO211(:)+TPK%K158(:)*PCONC(:,10)*TPK%RO211(:)+2.*TPK%K159(:)*& -&PCONC(:,1)*TPK%RO212(:)+TPK%K160(:)*PCONC(:,85)*TPK%RO212(:)+TPK%K161(:)*PCONC& -&(:,10)*TPK%RO212(:)+TPK%K162(:)*PCONC(:,1)*TPK%RO213(:)+TPK%K165(:)*PCONC(:,1)& -&*TPK%RO239(:)+TPK%CF8*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:)+TPK%K171(:)*PCONC(:,& -&1)*TPK%RO215(:)+TPK%K174(:)*PCONC(:,1)*TPK%RO216(:)+TPK%CF22*TPK%K177(:)*PCONC& -&(:,1)*TPK%RO217(:)+TPK%CF20*TPK%K180(:)*PCONC(:,1)*TPK%RO218(:)+2.*TPK%K183(:)& -&*PCONC(:,1)*TPK%RO219(:)+TPK%K184(:)*PCONC(:,85)*TPK%RO219(:)+TPK%K185(:)*PCON& -&C(:,10)*TPK%RO219(:)+TPK%CF18*TPK%K186(:)*PCONC(:,1)*TPK%RO220(:)+TPK%CF24*TPK& -&%K189(:)*PCONC(:,1)*TPK%RO221(:)+TPK%CF42*TPK%K192(:)*PCONC(:,1)*TPK%RO222(:)+& -&TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:)+TPK%CF26*TPK%K198(:)*PCONC(:,1)*T& -&PK%RO224(:)+2.*TPK%K201(:)*PCONC(:,1)*TPK%RO225(:)+TPK%K202(:)*PCONC(:,85)*TPK& -&%RO225(:)+TPK%K203(:)*PCONC(:,10)*TPK%RO225(:)+TPK%K204(:)*PCONC(:,1)*TPK%RO22& -&6(:)+TPK%CF28*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:)+2.*TPK%K210(:)*PCONC(:,1)*TP& -&K%RO228(:)+TPK%K211(:)*PCONC(:,85)*TPK%RO228(:)+TPK%K212(:)*PCONC(:,10)*TPK%RO& -&228(:)+TPK%CF30*TPK%K213(:)*PCONC(:,1)*TPK%RO229(:)+TPK%K216(:)*PCONC(:,1)*TPK& -&%RO240(:)+TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:)+TPK%CF34*TPK%K224(:)*PC& -&ONC(:,1)*TPK%RO232(:)+TPK%CF36*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:)+TPK%K231(:)& -&*PCONC(:,1)*TPK%RO233(:)+TPK%K234(:)*PCONC(:,1)*TPK%RO242(:)+TPK%K238(:)*PCONC& -&(:,1)*TPK%RO234(:)+TPK%K241(:)*PCONC(:,1)*TPK%RO243(:)+TPK%K245(:)*PCONC(:,1)*& -&TPK%RO235(:)+TPK%K248(:)*PCONC(:,1)*TPK%RO244(:)+TPK%K252(:)*PCONC(:,1)*TPK%RO& -&236(:)+TPK%K255(:)*PCONC(:,1)*TPK%RO245(:)+TPK%K259(:)*PCONC(:,1)*TPK%RO237(:)& -&+TPK%K262(:)*PCONC(:,1)*TPK%RO246(:)+TPK%K266(:)*PCONC(:,1)*TPK%RO238(:)+TPK%K& -&269(:)*PCONC(:,1)*TPK%RO247(:)+TPK%K277(:)*PCONC(:,1)*TPK%RO248(:)+TPK%K285(:)& -&*PCONC(:,1)*TPK%RO249(:)+TPK%K288(:)*PCONC(:,1)*TPK%RO250(:)+TPK%K291(:)*PCONC& -&(:,1)*TPK%RO251(:)+2.*TPK%K294(:)*PCONC(:,1)*TPK%RO252(:)+TPK%K295(:)*PCONC(:,& -&10)*TPK%RO252(:)+TPK%K296(:)*PCONC(:,85)*TPK%RO252(:)+TPK%K297(:)*PCONC(:,1)*T& -&PK%RO253(:)+TPK%K300(:)*PCONC(:,1)*TPK%RO254(:)+TPK%K309(:)*PCONC(:,1)*TPK%RO2& -&55(:)+TPK%K315(:)*PCONC(:,1)*TPK%RO256(:)+TPK%K317(:)*PCONC(:,83)+TPK%K331(:)*& -&PCONC(:,1)*TPK%RO257(:)+TPK%K340(:)*PCONC(:,1)*TPK%RO258(:)+TPK%K343(:)*PCONC(& -&:,82)+TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) -!PLOSS(NO2) = +K001+K003*<O>+K004*<O>+K006*<O3>+K009*<NO3>+K012*<NO3>+K021*<H2O -!>+K022*<OH>+K027*<HO2>+K103*<RAD1>+K104*<RAD2>+K105*<RAD3>+K106*<RAD4>+K107*<R -!AD5>+K108*<RAD6>+K109*<RAD7>+K126*<RO26>+K127*<RO28>+K128*<RO239>+K129*<RO248> -!+K130*<RO250>+K131*<RO254>+K132*<RO255>+K133*<RO257>+K134*<RO258>+K316*<RO256> -!+K321*<RAD8> - PLOSS(:,2) = +TPK%K001(:)+TPK%K003(:)*TPK%O(:)+TPK%K004(:)*TPK%O(:)+TPK%K006(:& -&)*PCONC(:,3)+TPK%K009(:)*PCONC(:,8)+TPK%K012(:)*PCONC(:,8)+TPK%K021(:)*TPK%H2O& -&(:)+TPK%K022(:)*PCONC(:,15)+TPK%K027(:)*PCONC(:,10)+TPK%K103(:)*TPK%RAD1(:)+TP& -&K%K104(:)*TPK%RAD2(:)+TPK%K105(:)*TPK%RAD3(:)+TPK%K106(:)*TPK%RAD4(:)+TPK%K107& -&(:)*TPK%RAD5(:)+TPK%K108(:)*TPK%RAD6(:)+TPK%K109(:)*TPK%RAD7(:)+TPK%K126(:)*TP& -&K%RO26(:)+TPK%K127(:)*TPK%RO28(:)+TPK%K128(:)*TPK%RO239(:)+TPK%K129(:)*TPK%RO2& -&48(:)+TPK%K130(:)*TPK%RO250(:)+TPK%K131(:)*TPK%RO254(:)+TPK%K132(:)*TPK%RO255(& -&:)+TPK%K133(:)*TPK%RO257(:)+TPK%K134(:)*TPK%RO258(:)+TPK%K316(:)*TPK%RO256(:)+& -&TPK%K321(:)*TPK%RAD8(:) -! -!PPROD(O3) = +K002*<O2>*<O>+K081*<NO3>*<ARAL>+TPK%CF39*K082*<OH>*<ARAL>+K142*<H -!O2>*<RO26>+K148*<HO2>*<RO28>+K166*<HO2>*<RO239>+K279*<HO2>*<RO248>+K289*<HO2>* -!<RO250>+K301*<HO2>*<RO254>+K303*<OH>*<RPR5>+1.0000011*K306*<OH>*<RPRL>+K310*<H -!O2>*<RO255>+K318*<HO2>*<RO256>+K322*<OH>*<RPR7>+1.0000005*K323*<OH>*<RPG7>+K32 -!6*<OH>*<RP11>+K332*<HO2>*<RO257>+1.0000000*K334*<OH>*<RPG3>+1.0000000*K335*<OH -!>*<RPG2>+K337*<OH>*<RP18>+K341*<HO2>*<RO258> - PPROD(:,3) = +TPK%K002(:)*TPK%O2(:)*TPK%O(:)+TPK%K081(:)*PCONC(:,8)*PCONC(:,25& -&)+TPK%CF39*TPK%K082(:)*PCONC(:,15)*PCONC(:,25)+TPK%K142(:)*PCONC(:,10)*TPK%RO2& -&6(:)+TPK%K148(:)*PCONC(:,10)*TPK%RO28(:)+TPK%K166(:)*PCONC(:,10)*TPK%RO239(:)+& -&TPK%K279(:)*PCONC(:,10)*TPK%RO248(:)+TPK%K289(:)*PCONC(:,10)*TPK%RO250(:)+TPK%& -&K301(:)*PCONC(:,10)*TPK%RO254(:)+TPK%K303(:)*PCONC(:,15)*PCONC(:,70)+1.0000011& -&*TPK%K306(:)*PCONC(:,15)*PCONC(:,75)+TPK%K310(:)*PCONC(:,10)*TPK%RO255(:)+TPK%& -&K318(:)*PCONC(:,10)*TPK%RO256(:)+TPK%K322(:)*PCONC(:,15)*PCONC(:,62)+1.0000005& -&*TPK%K323(:)*PCONC(:,15)*PCONC(:,63)+TPK%K326(:)*PCONC(:,15)*PCONC(:,73)+TPK%K& -&332(:)*PCONC(:,10)*TPK%RO257(:)+1.0000000*TPK%K334(:)*PCONC(:,15)*PCONC(:,52)+& -&1.0000000*TPK%K335(:)*PCONC(:,15)*PCONC(:,50)+TPK%K337(:)*PCONC(:,15)*PCONC(:,& -&51)+TPK%K341(:)*PCONC(:,10)*TPK%RO258(:) -!PLOSS(O3) = +K005*<NO>+K006*<NO2>+K015+K016+K025*<OH>+K030*<HO2>+K034*<O>+K051 -!*<ETHE>+K056*<OLEL>+K066*<ISOP>+K076*<OLEH>+K086*<BIOL>+K090*<BIOH>+K281*<MVK> -!+K282*<MCR> - PLOSS(:,3) = +TPK%K005(:)*PCONC(:,1)+TPK%K006(:)*PCONC(:,2)+TPK%K015(:)+TPK%K0& -&16(:)+TPK%K025(:)*PCONC(:,15)+TPK%K030(:)*PCONC(:,10)+TPK%K034(:)*TPK%O(:)+TPK& -&%K051(:)*PCONC(:,16)+TPK%K056(:)*PCONC(:,17)+TPK%K066(:)*PCONC(:,35)+TPK%K076(& -&:)*PCONC(:,18)+TPK%K086(:)*PCONC(:,36)+TPK%K090(:)*PCONC(:,37)+TPK%K281(:)*PCO& -&NC(:,39)+TPK%K282(:)*PCONC(:,40) -! -!PPROD(HONO) = +K019*<OH>*<NO>+0.5*K021*<H2O>*<NO2> - PPROD(:,4) = +TPK%K019(:)*PCONC(:,15)*PCONC(:,1)+0.5*TPK%K021(:)*TPK%H2O(:)*PC& -&ONC(:,2) -!PLOSS(HONO) = +K020+K039*<OH> - PLOSS(:,4) = +TPK%K020(:)+TPK%K039(:)*PCONC(:,15) -! -!PPROD(HNO3) = +2.*K011*<H2O>*<N2O5>+0.5*K021*<H2O>*<NO2>+K022*<OH>*<NO2>+0.2*K -!033*<HO2>*<NO3>+K047*<NO3>*<HCHO>+K061*<NO3>*<ALD2>+K072*<NO3>*<AROO>+K081*<NO -!3>*<ARAL>+TPK%CF46*K275*<NO3>*<MCR>+K278*<NO3>*<MGLY>+K307*<NO3>*<RPR1>+K313*< -!NO3>*<RPR3>+K320*<NO3>*<RPR4>+K327*<NO3>*<RPR8>+K338*<NO3>*<RP16> - PPROD(:,5) = +2.*TPK%K011(:)*TPK%H2O(:)*PCONC(:,7)+0.5*TPK%K021(:)*TPK%H2O(:)*& -&PCONC(:,2)+TPK%K022(:)*PCONC(:,15)*PCONC(:,2)+0.2*TPK%K033(:)*PCONC(:,10)*PCON& -&C(:,8)+TPK%K047(:)*PCONC(:,8)*PCONC(:,28)+TPK%K061(:)*PCONC(:,8)*PCONC(:,29)+T& -&PK%K072(:)*PCONC(:,8)*PCONC(:,24)+TPK%K081(:)*PCONC(:,8)*PCONC(:,25)+TPK%CF46*& -&TPK%K275(:)*PCONC(:,8)*PCONC(:,40)+TPK%K278(:)*PCONC(:,8)*PCONC(:,41)+TPK%K307& -&(:)*PCONC(:,8)*PCONC(:,69)+TPK%K313(:)*PCONC(:,8)*PCONC(:,57)+TPK%K320(:)*PCON& -&C(:,8)*PCONC(:,61)+TPK%K327(:)*PCONC(:,8)*PCONC(:,71)+TPK%K338(:)*PCONC(:,8)*P& -&CONC(:,74) -!PLOSS(HNO3) = +K023*<OH> - PLOSS(:,5) = +TPK%K023(:)*PCONC(:,15) -! -!PPROD(HNO4) = +K027*<HO2>*<NO2> - PPROD(:,6) = +TPK%K027(:)*PCONC(:,10)*PCONC(:,2) -!PLOSS(HNO4) = +K028+K029*<OH> - PLOSS(:,6) = +TPK%K028(:)+TPK%K029(:)*PCONC(:,15) -! -!PPROD(N2O5) = +K009*<NO3>*<NO2> - PPROD(:,7) = +TPK%K009(:)*PCONC(:,8)*PCONC(:,2) -!PLOSS(N2O5) = +K010+K011*<H2O> - PLOSS(:,7) = +TPK%K010(:)+TPK%K011(:)*TPK%H2O(:) -! -!PPROD(NO3) = +K004*<NO2>*<O>+K006*<O3>*<NO2>+K010*<N2O5>+K023*<OH>*<HNO3> - PPROD(:,8) = +TPK%K004(:)*PCONC(:,2)*TPK%O(:)+TPK%K006(:)*PCONC(:,3)*PCONC(:,2& -&)+TPK%K010(:)*PCONC(:,7)+TPK%K023(:)*PCONC(:,15)*PCONC(:,5) -!PLOSS(NO3) = +K007*<NO>+K009*<NO2>+K012*<NO2>+K013+K014+K033*<HO2>+K040*<OH>+K -!041*<NO3>+K041*<NO3>+K047*<HCHO>+K050*<ETHE>+K055*<OLEL>+K061*<ALD2>+K065*<ISO -!P>+K072*<AROO>+K075*<OLEH>+K081*<ARAL>+K085*<BIOL>+K089*<BIOH>+K275*<MCR>+K278 -!*<MGLY>+K307*<RPR1>+K313*<RPR3>+K320*<RPR4>+K327*<RPR8>+K338*<RP16> - PLOSS(:,8) = +TPK%K007(:)*PCONC(:,1)+TPK%K009(:)*PCONC(:,2)+TPK%K012(:)*PCONC(& -&:,2)+TPK%K013(:)+TPK%K014(:)+TPK%K033(:)*PCONC(:,10)+TPK%K040(:)*PCONC(:,15)+T& -&PK%K041(:)*PCONC(:,8)+TPK%K041(:)*PCONC(:,8)+TPK%K047(:)*PCONC(:,28)+TPK%K050(& -&:)*PCONC(:,16)+TPK%K055(:)*PCONC(:,17)+TPK%K061(:)*PCONC(:,29)+TPK%K065(:)*PCO& -&NC(:,35)+TPK%K072(:)*PCONC(:,24)+TPK%K075(:)*PCONC(:,18)+TPK%K081(:)*PCONC(:,2& -&5)+TPK%K085(:)*PCONC(:,36)+TPK%K089(:)*PCONC(:,37)+TPK%K275(:)*PCONC(:,40)+TPK& -&%K278(:)*PCONC(:,41)+TPK%K307(:)*PCONC(:,69)+TPK%K313(:)*PCONC(:,57)+TPK%K320(& -&:)*PCONC(:,61)+TPK%K327(:)*PCONC(:,71)+TPK%K338(:)*PCONC(:,74) -! -!PPROD(NH3) = 0.0 - PPROD(:,9) = 0.0 -!PLOSS(NH3) = +K345*<OH> - PLOSS(:,9) = +TPK%K345(:)*PCONC(:,15) -! -!PPROD(HO2) = +0.1*K020*<HONO>+K024*<OH>*<CO>+K025*<OH>*<O3>+K028*<HNO4>+K035*< -!OH>*<SO2>+K037*<OH>*<H2O2>+K040*<OH>*<NO3>+2.0*K044*<HCHO>+K046*<OH>*<HCHO>+K0 -!47*<NO3>*<HCHO>+K048*<OH>*<MEOH>+0.06*K051*<O3>*<ETHE>+K052*<O>*<ETHE>+TPK%CF1 -!*K053*<OH>*<ETOH>+0.28*K056*<O3>*<OLEL>+K059*<ALD2>+0.366*K066*<O3>*<ISOP>+0.1 -!6*K073*<OH>*<AROO>+0.28*K076*<O3>*<OLEH>+0.16*K079*<OH>*<AROL>+0.16*K080*<OH>* -!<AROH>+TPK%CF48*K082*<OH>*<ARAL>+0.16*K083*<OH>*<ARAC>+0.445*K086*<O3>*<BIOL>+ -!0.16*K092*<OH>*<PAH>+K094*<HO2>*<RO2T>+K110*<NO>*<RO21>+K111*<RO2T>*<RO21>+K11 -!2*<HO2>*<RO21>+K113*<NO>*<RO22>+K114*<RO2T>*<RO22>+K115*<HO2>*<RO22>+K117*<RO2 -!T>*<RO23>+K118*<HO2>*<RO23>+K119*<NO>*<RO24>+K120*<RO2T>*<RO24>+K121*<HO2>*<RO -!24>+TPK%CF4*K122*<NO>*<RO25>+K123*<RO2T>*<RO25>+K124*<HO2>*<RO25>+TPK%CF6*K150 -!*<NO>*<RO29>+K151*<RO2T>*<RO29>+K152*<HO2>*<RO29>+K153*<NO>*<RO210>+K154*<RO2T -!>*<RO210>+K155*<HO2>*<RO210>+K171*<NO>*<RO215>+K172*<RO2T>*<RO215>+K173*<HO2>* -!<RO215>+TPK%CF22*K177*<NO>*<RO217>+K178*<RO2T>*<RO217>+K179*<HO2>*<RO217>+TPK% -!CF20*K180*<NO>*<RO218>+K181*<RO2T>*<RO218>+K182*<HO2>*<RO218>+TPK%CF24*K189*<N -!O>*<RO221>+K190*<RO2T>*<RO221>+K191*<HO2>*<RO221>+TPK%CF42*K192*<NO>*<RO222>+K -!193*<RO2T>*<RO222>+K194*<HO2>*<RO222>+TPK%CF44*K195*<NO>*<RO223>+K196*<RO2T>*< -!RO223>+K197*<HO2>*<RO223>+TPK%CF26*K198*<NO>*<RO224>+K199*<RO2T>*<RO224>+K200* -!<HO2>*<RO224>+TPK%CF28*K207*<NO>*<RO227>+K208*<RO2T>*<RO227>+K209*<HO2>*<RO227 -!>+TPK%CF32*K221*<NO>*<RO231>+K222*<RO2T>*<RO231>+K223*<HO2>*<RO231>+TPK%CF36*K -!227*<NO>*<RO241>+K228*<RO2T>*<RO241>+K229*<HO2>*<RO241>+K231*<NO>*<RO233>+K232 -!*<RO2T>*<RO233>+K233*<HO2>*<RO233>+K234*<NO>*<RO242>+K235*<RO2T>*<RO242>+K236* -!<HO2>*<RO242>+K238*<NO>*<RO234>+K239*<RO2T>*<RO234>+K240*<HO2>*<RO234>+K241*<N -!O>*<RO243>+K242*<RO2T>*<RO243>+K243*<HO2>*<RO243>+K245*<NO>*<RO235>+K246*<RO2T -!>*<RO235>+K247*<HO2>*<RO235>+K248*<NO>*<RO244>+K249*<RO2T>*<RO244>+K250*<HO2>* -!<RO244>+K252*<NO>*<RO236>+K253*<RO2T>*<RO236>+K254*<HO2>*<RO236>+K255*<NO>*<RO -!245>+K256*<RO2T>*<RO245>+K257*<HO2>*<RO245>+K259*<NO>*<RO237>+K260*<RO2T>*<RO2 -!37>+K261*<HO2>*<RO237>+K262*<NO>*<RO246>+K263*<RO2T>*<RO246>+K264*<HO2>*<RO246 -!>+K266*<NO>*<RO238>+K267*<RO2T>*<RO238>+K268*<HO2>*<RO238>+K269*<NO>*<RO247>+K -!270*<RO2T>*<RO247>+K271*<HO2>*<RO247>+K276*<MGLY>+0.28*K281*<O3>*<MVK>+0.41*K2 -!82*<O3>*<MCR>+0.15*K284*<O>*<MCR>+K285*<NO>*<RO249>+K286*<RO2T>*<RO249>+K287*< -!HO2>*<RO249>+K291*<NO>*<RO251>+K292*<HO2>*<RO251>+K293*<RO2T>*<RO251>+K300*<NO -!>*<RO254>+K302*<RO2T>*<RO254>+K308*<RPR1>+2.*K314*<RPR3>+K315*<NO>*<RO256>+K31 -!9*<RO2T>*<RO256>+K325*<OH>*<RP10>+K329*<RPR8>+K330*<RPR8>+K339*<RP16>+K347*<OH -!>*<ORA1> - PPROD(:,10) = +0.1*TPK%K020(:)*PCONC(:,4)+TPK%K024(:)*PCONC(:,15)*PCONC(:,11)+& -&TPK%K025(:)*PCONC(:,15)*PCONC(:,3)+TPK%K028(:)*PCONC(:,6)+TPK%K035(:)*PCONC(:,& -&15)*PCONC(:,13)+TPK%K037(:)*PCONC(:,15)*PCONC(:,12)+TPK%K040(:)*PCONC(:,15)*PC& -&ONC(:,8)+2.0*TPK%K044(:)*PCONC(:,28)+TPK%K046(:)*PCONC(:,15)*PCONC(:,28)+TPK%K& -&047(:)*PCONC(:,8)*PCONC(:,28)+TPK%K048(:)*PCONC(:,15)*PCONC(:,32)+0.06*TPK%K05& -&1(:)*PCONC(:,3)*PCONC(:,16)+TPK%K052(:)*TPK%O(:)*PCONC(:,16)+TPK%CF1*TPK%K053(& -&:)*PCONC(:,15)*PCONC(:,33)+0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+TPK%K059(:)& -&*PCONC(:,29)+0.366*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+0.16*TPK%K073(:)*PCONC(:& -&,15)*PCONC(:,24)+0.28*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+0.16*TPK%K079(:)*PCON& -&C(:,15)*PCONC(:,23)+0.16*TPK%K080(:)*PCONC(:,15)*PCONC(:,22)+TPK%CF48*TPK%K082& -&(:)*PCONC(:,15)*PCONC(:,25)+0.16*TPK%K083(:)*PCONC(:,15)*PCONC(:,26)+0.445*TPK& -&%K086(:)*PCONC(:,3)*PCONC(:,36)+0.16*TPK%K092(:)*PCONC(:,15)*PCONC(:,27)+TPK%K& -&094(:)*PCONC(:,10)*PCONC(:,85)+TPK%K110(:)*PCONC(:,1)*PCONC(:,86)+TPK%K111(:)*& -&PCONC(:,85)*PCONC(:,86)+TPK%K112(:)*PCONC(:,10)*PCONC(:,86)+TPK%K113(:)*PCONC(& -&:,1)*TPK%RO22(:)+TPK%K114(:)*PCONC(:,85)*TPK%RO22(:)+TPK%K115(:)*PCONC(:,10)*T& -&PK%RO22(:)+TPK%K117(:)*PCONC(:,85)*TPK%RO23(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO2& -&3(:)+TPK%K119(:)*PCONC(:,1)*TPK%RO24(:)+TPK%K120(:)*PCONC(:,85)*TPK%RO24(:)+TP& -&K%K121(:)*PCONC(:,10)*TPK%RO24(:)+TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87)+T& -&PK%K123(:)*PCONC(:,85)*PCONC(:,87)+TPK%K124(:)*PCONC(:,10)*PCONC(:,87)+TPK%CF6& -&*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:)+TPK%K151(:)*PCONC(:,85)*TPK%RO29(:)+TPK%K1& -&52(:)*PCONC(:,10)*TPK%RO29(:)+TPK%K153(:)*PCONC(:,1)*TPK%RO210(:)+TPK%K154(:)*& -&PCONC(:,85)*TPK%RO210(:)+TPK%K155(:)*PCONC(:,10)*TPK%RO210(:)+TPK%K171(:)*PCON& -&C(:,1)*TPK%RO215(:)+TPK%K172(:)*PCONC(:,85)*TPK%RO215(:)+TPK%K173(:)*PCONC(:,1& -&0)*TPK%RO215(:)+TPK%CF22*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:)+TPK%K178(:)*PCONC& -&(:,85)*TPK%RO217(:)+TPK%K179(:)*PCONC(:,10)*TPK%RO217(:)+TPK%CF20*TPK%K180(:)*& -&PCONC(:,1)*TPK%RO218(:)+TPK%K181(:)*PCONC(:,85)*TPK%RO218(:)+TPK%K182(:)*PCONC& -&(:,10)*TPK%RO218(:)+TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:)+TPK%K190(:)*P& -&CONC(:,85)*TPK%RO221(:)+TPK%K191(:)*PCONC(:,10)*TPK%RO221(:)+TPK%CF42*TPK%K192& -&(:)*PCONC(:,1)*TPK%RO222(:)+TPK%K193(:)*PCONC(:,85)*TPK%RO222(:)+TPK%K194(:)*P& -&CONC(:,10)*TPK%RO222(:)+TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:)+TPK%K196(& -&:)*PCONC(:,85)*TPK%RO223(:)+TPK%K197(:)*PCONC(:,10)*TPK%RO223(:)+TPK%CF26*TPK%& -&K198(:)*PCONC(:,1)*TPK%RO224(:)+TPK%K199(:)*PCONC(:,85)*TPK%RO224(:)+TPK%K200(& -&:)*PCONC(:,10)*TPK%RO224(:)+TPK%CF28*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:)+TPK%K& -&208(:)*PCONC(:,85)*TPK%RO227(:)+TPK%K209(:)*PCONC(:,10)*TPK%RO227(:)+TPK%CF32*& -&TPK%K221(:)*PCONC(:,1)*TPK%RO231(:)+TPK%K222(:)*PCONC(:,85)*TPK%RO231(:)+TPK%K& -&223(:)*PCONC(:,10)*TPK%RO231(:)+TPK%CF36*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:)+T& -&PK%K228(:)*PCONC(:,85)*TPK%RO241(:)+TPK%K229(:)*PCONC(:,10)*TPK%RO241(:)+TPK%K& -&231(:)*PCONC(:,1)*TPK%RO233(:)+TPK%K232(:)*PCONC(:,85)*TPK%RO233(:)+TPK%K233(:& -&)*PCONC(:,10)*TPK%RO233(:)+TPK%K234(:)*PCONC(:,1)*TPK%RO242(:)+TPK%K235(:)*PCO& -&NC(:,85)*TPK%RO242(:)+TPK%K236(:)*PCONC(:,10)*TPK%RO242(:)+TPK%K238(:)*PCONC(:& -&,1)*TPK%RO234(:)+TPK%K239(:)*PCONC(:,85)*TPK%RO234(:)+TPK%K240(:)*PCONC(:,10)*& -&TPK%RO234(:)+TPK%K241(:)*PCONC(:,1)*TPK%RO243(:)+TPK%K242(:)*PCONC(:,85)*TPK%R& -&O243(:)+TPK%K243(:)*PCONC(:,10)*TPK%RO243(:)+TPK%K245(:)*PCONC(:,1)*TPK%RO235(& -&:)+TPK%K246(:)*PCONC(:,85)*TPK%RO235(:)+TPK%K247(:)*PCONC(:,10)*TPK%RO235(:)+T& -&PK%K248(:)*PCONC(:,1)*TPK%RO244(:)+TPK%K249(:)*PCONC(:,85)*TPK%RO244(:)+TPK%K2& -&50(:)*PCONC(:,10)*TPK%RO244(:)+TPK%K252(:)*PCONC(:,1)*TPK%RO236(:)+TPK%K253(:)& -&*PCONC(:,85)*TPK%RO236(:)+TPK%K254(:)*PCONC(:,10)*TPK%RO236(:)+TPK%K255(:)*PCO& -&NC(:,1)*TPK%RO245(:)+TPK%K256(:)*PCONC(:,85)*TPK%RO245(:)+TPK%K257(:)*PCONC(:,& -&10)*TPK%RO245(:)+TPK%K259(:)*PCONC(:,1)*TPK%RO237(:)+TPK%K260(:)*PCONC(:,85)*T& -&PK%RO237(:)+TPK%K261(:)*PCONC(:,10)*TPK%RO237(:)+TPK%K262(:)*PCONC(:,1)*TPK%RO& -&246(:)+TPK%K263(:)*PCONC(:,85)*TPK%RO246(:)+TPK%K264(:)*PCONC(:,10)*TPK%RO246(& -&:)+TPK%K266(:)*PCONC(:,1)*TPK%RO238(:)+TPK%K267(:)*PCONC(:,85)*TPK%RO238(:)+TP& -&K%K268(:)*PCONC(:,10)*TPK%RO238(:)+TPK%K269(:)*PCONC(:,1)*TPK%RO247(:)+TPK%K27& -&0(:)*PCONC(:,85)*TPK%RO247(:)+TPK%K271(:)*PCONC(:,10)*TPK%RO247(:)+TPK%K276(:)& -&*PCONC(:,41)+0.28*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.41*TPK%K282(:)*PCONC(:,& -&3)*PCONC(:,40)+0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40)+TPK%K285(:)*PCONC(:,1)*TP& -&K%RO249(:)+TPK%K286(:)*PCONC(:,85)*TPK%RO249(:)+TPK%K287(:)*PCONC(:,10)*TPK%RO& -&249(:)+TPK%K291(:)*PCONC(:,1)*TPK%RO251(:)+TPK%K292(:)*PCONC(:,10)*TPK%RO251(:& -&)+TPK%K293(:)*PCONC(:,85)*TPK%RO251(:)+TPK%K300(:)*PCONC(:,1)*TPK%RO254(:)+TPK& -&%K302(:)*PCONC(:,85)*TPK%RO254(:)+TPK%K308(:)*PCONC(:,69)+2.*TPK%K314(:)*PCONC& -&(:,57)+TPK%K315(:)*PCONC(:,1)*TPK%RO256(:)+TPK%K319(:)*PCONC(:,85)*TPK%RO256(:& -&)+TPK%K325(:)*PCONC(:,15)*PCONC(:,72)+TPK%K329(:)*PCONC(:,71)+TPK%K330(:)*PCON& -&C(:,71)+TPK%K339(:)*PCONC(:,74)+TPK%K347(:)*PCONC(:,15)*PCONC(:,43) -!PLOSS(HO2) = +K026*<NO>+K027*<NO2>+K030*<O3>+K031*<HO2>+K031*<HO2>+K032*<H2O>* -!<HO2>+K032*<H2O>*<HO2>+K033*<NO3>+K042*<OH>+K094*<RO2T>+K112*<RO21>+K115*<RO22 -!>+K118*<RO23>+K121*<RO24>+K124*<RO25>+K142*<RO26>+K146*<RO27>+K148*<RO28>+K152 -!*<RO29>+K155*<RO210>+K158*<RO211>+K161*<RO212>+K164*<RO213>+K166*<RO239>+K170* -!<RO214>+K173*<RO215>+K176*<RO216>+K179*<RO217>+K182*<RO218>+K185*<RO219>+K188* -!<RO220>+K191*<RO221>+K194*<RO222>+K197*<RO223>+K200*<RO224>+K203*<RO225>+K206* -!<RO226>+K209*<RO227>+K212*<RO228>+K215*<RO229>+K218*<RO240>+K220*<RO230>+K223* -!<RO231>+K226*<RO232>+K229*<RO241>+K233*<RO233>+K236*<RO242>+K240*<RO234>+K243* -!<RO243>+K247*<RO235>+K250*<RO244>+K254*<RO236>+K257*<RO245>+K261*<RO237>+K264* -!<RO246>+K268*<RO238>+K271*<RO247>+K279*<RO248>+K287*<RO249>+K289*<RO250>+K292* -!<RO251>+K295*<RO252>+K298*<RO253>+K301*<RO254>+K310*<RO255>+K318*<RO256>+K332* -!<RO257>+K341*<RO258> - PLOSS(:,10) = +TPK%K026(:)*PCONC(:,1)+TPK%K027(:)*PCONC(:,2)+TPK%K030(:)*PCONC& -&(:,3)+TPK%K031(:)*PCONC(:,10)+TPK%K031(:)*PCONC(:,10)+TPK%K032(:)*TPK%H2O(:)*P& -&CONC(:,10)+TPK%K032(:)*TPK%H2O(:)*PCONC(:,10)+TPK%K033(:)*PCONC(:,8)+TPK%K042(& -&:)*PCONC(:,15)+TPK%K094(:)*PCONC(:,85)+TPK%K112(:)*PCONC(:,86)+TPK%K115(:)*TPK& -&%RO22(:)+TPK%K118(:)*TPK%RO23(:)+TPK%K121(:)*TPK%RO24(:)+TPK%K124(:)*PCONC(:,8& -&7)+TPK%K142(:)*TPK%RO26(:)+TPK%K146(:)*TPK%RO27(:)+TPK%K148(:)*TPK%RO28(:)+TPK& -&%K152(:)*TPK%RO29(:)+TPK%K155(:)*TPK%RO210(:)+TPK%K158(:)*TPK%RO211(:)+TPK%K16& -&1(:)*TPK%RO212(:)+TPK%K164(:)*TPK%RO213(:)+TPK%K166(:)*TPK%RO239(:)+TPK%K170(:& -&)*TPK%RO214(:)+TPK%K173(:)*TPK%RO215(:)+TPK%K176(:)*TPK%RO216(:)+TPK%K179(:)*T& -&PK%RO217(:)+TPK%K182(:)*TPK%RO218(:)+TPK%K185(:)*TPK%RO219(:)+TPK%K188(:)*TPK%& -&RO220(:)+TPK%K191(:)*TPK%RO221(:)+TPK%K194(:)*TPK%RO222(:)+TPK%K197(:)*TPK%RO2& -&23(:)+TPK%K200(:)*TPK%RO224(:)+TPK%K203(:)*TPK%RO225(:)+TPK%K206(:)*TPK%RO226(& -&:)+TPK%K209(:)*TPK%RO227(:)+TPK%K212(:)*TPK%RO228(:)+TPK%K215(:)*TPK%RO229(:)+& -&TPK%K218(:)*TPK%RO240(:)+TPK%K220(:)*TPK%RO230(:)+TPK%K223(:)*TPK%RO231(:)+TPK& -&%K226(:)*TPK%RO232(:)+TPK%K229(:)*TPK%RO241(:)+TPK%K233(:)*TPK%RO233(:)+TPK%K2& -&36(:)*TPK%RO242(:)+TPK%K240(:)*TPK%RO234(:)+TPK%K243(:)*TPK%RO243(:)+TPK%K247(& -&:)*TPK%RO235(:)+TPK%K250(:)*TPK%RO244(:)+TPK%K254(:)*TPK%RO236(:)+TPK%K257(:)*& -&TPK%RO245(:)+TPK%K261(:)*TPK%RO237(:)+TPK%K264(:)*TPK%RO246(:)+TPK%K268(:)*TPK& -&%RO238(:)+TPK%K271(:)*TPK%RO247(:)+TPK%K279(:)*TPK%RO248(:)+TPK%K287(:)*TPK%RO& -&249(:)+TPK%K289(:)*TPK%RO250(:)+TPK%K292(:)*TPK%RO251(:)+TPK%K295(:)*TPK%RO252& -&(:)+TPK%K298(:)*TPK%RO253(:)+TPK%K301(:)*TPK%RO254(:)+TPK%K310(:)*TPK%RO255(:)& -&+TPK%K318(:)*TPK%RO256(:)+TPK%K332(:)*TPK%RO257(:)+TPK%K341(:)*TPK%RO258(:) -! -RETURN -END SUBROUTINE SUB0 -! -SUBROUTINE SUB1 -! -!Indices 11 a 20 -! -! -!PPROD(CO) = +K044*<HCHO>+K045*<HCHO>+K046*<OH>*<HCHO>+K047*<NO3>*<HCHO>+0.315* -!K051*<O3>*<ETHE>+0.6*K052*<O>*<ETHE>+0.56*K056*<O3>*<OLEL>+K059*<ALD2>+0.461*K -!066*<O3>*<ISOP>+0.56*K076*<O3>*<OLEH>+0.445*K086*<O3>*<BIOL>+0.445*K090*<O3>*< -!BIOH>+K119*<NO>*<RO24>+K120*<RO2T>*<RO24>+K121*<HO2>*<RO24>+K276*<MGLY>+0.56*K -!281*<O3>*<MVK>+0.41*K282*<O3>*<MCR>+0.15*K284*<O>*<MCR>+K300*<NO>*<RO254>+K302 -!*<RO2T>*<RO254>+K308*<RPR1>+K314*<RPR3>+K329*<RPR8>+2.*K339*<RP16>+K340*<NO>*< -!RO258>+K342*<RO2T>*<RO258> - PPROD(:,11) = +TPK%K044(:)*PCONC(:,28)+TPK%K045(:)*PCONC(:,28)+TPK%K046(:)*PCO& -&NC(:,15)*PCONC(:,28)+TPK%K047(:)*PCONC(:,8)*PCONC(:,28)+0.315*TPK%K051(:)*PCON& -&C(:,3)*PCONC(:,16)+0.6*TPK%K052(:)*TPK%O(:)*PCONC(:,16)+0.56*TPK%K056(:)*PCONC& -&(:,3)*PCONC(:,17)+TPK%K059(:)*PCONC(:,29)+0.461*TPK%K066(:)*PCONC(:,3)*PCONC(:& -&,35)+0.56*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+0.445*TPK%K086(:)*PCONC(:,3)*PCON& -&C(:,36)+0.445*TPK%K090(:)*PCONC(:,3)*PCONC(:,37)+TPK%K119(:)*PCONC(:,1)*TPK%RO& -&24(:)+TPK%K120(:)*PCONC(:,85)*TPK%RO24(:)+TPK%K121(:)*PCONC(:,10)*TPK%RO24(:)+& -&TPK%K276(:)*PCONC(:,41)+0.56*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.41*TPK%K282(& -&:)*PCONC(:,3)*PCONC(:,40)+0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40)+TPK%K300(:)*PC& -&ONC(:,1)*TPK%RO254(:)+TPK%K302(:)*PCONC(:,85)*TPK%RO254(:)+TPK%K308(:)*PCONC(:& -&,69)+TPK%K314(:)*PCONC(:,57)+TPK%K329(:)*PCONC(:,71)+2.*TPK%K339(:)*PCONC(:,74& -&)+TPK%K340(:)*PCONC(:,1)*TPK%RO258(:)+TPK%K342(:)*PCONC(:,85)*TPK%RO258(:) -!PLOSS(CO) = +K024*<OH> - PLOSS(:,11) = +TPK%K024(:)*PCONC(:,15) -! -!PPROD(H2O2) = +K031*<HO2>*<HO2>+K032*<HO2>*<H2O>*<HO2>+0.055*K086*<O3>*<BIOL>+ -!0.055*K090*<O3>*<BIOH> - PPROD(:,12) = +TPK%K031(:)*PCONC(:,10)*PCONC(:,10)+TPK%K032(:)*PCONC(:,10)*TPK& -&%H2O(:)*PCONC(:,10)+0.055*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)+0.055*TPK%K090(:)& -&*PCONC(:,3)*PCONC(:,37) -!PLOSS(H2O2) = +K036+K037*<OH> - PLOSS(:,12) = +TPK%K036(:)+TPK%K037(:)*PCONC(:,15) -! -!PPROD(SO2) = 0.0 - PPROD(:,13) = 0.0 -!PLOSS(SO2) = +K035*<OH> - PLOSS(:,13) = +TPK%K035(:)*PCONC(:,15) -! -!PPROD(H2SO4) = +K035*<OH>*<SO2> - PPROD(:,14) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,13) -!PLOSS(H2SO4) = +K346 - PLOSS(:,14) = +TPK%K346(:) -! -!PPROD(OH) = +K017*<H2O>*<OSD>+K017*<H2O>*<OSD>+0.9*K020*<HONO>+K026*<HO2>*<NO> -!+K030*<HO2>*<O3>+0.8*K033*<HO2>*<NO3>+2.*K036*<H2O2>+0.06*K051*<O3>*<ETHE>+0.3 -!6*K056*<O3>*<OLEL>+0.664*K066*<O3>*<ISOP>+0.36*K076*<O3>*<OLEH>+0.89*K086*<O3> -!*<BIOL>+0.89*K090*<O3>*<BIOH>+K112*<HO2>*<RO21>+K115*<HO2>*<RO22>+K118*<HO2>*< -!RO23>+K121*<HO2>*<RO24>+K124*<HO2>*<RO25>+K146*<HO2>*<RO27>+K152*<HO2>*<RO29>+ -!K155*<HO2>*<RO210>+K158*<HO2>*<RO211>+K161*<HO2>*<RO212>+K164*<HO2>*<RO213>+K1 -!70*<HO2>*<RO214>+K173*<HO2>*<RO215>+K176*<HO2>*<RO216>+K179*<HO2>*<RO217>+K182 -!*<HO2>*<RO218>+K185*<HO2>*<RO219>+K188*<HO2>*<RO220>+K191*<HO2>*<RO221>+K194*< -!HO2>*<RO222>+K197*<HO2>*<RO223>+K200*<HO2>*<RO224>+K203*<HO2>*<RO225>+K206*<HO -!2>*<RO226>+K209*<HO2>*<RO227>+K212*<HO2>*<RO228>+K215*<HO2>*<RO229>+K218*<HO2> -!*<RO240>+K220*<HO2>*<RO230>+K223*<HO2>*<RO231>+K226*<HO2>*<RO232>+K229*<HO2>*< -!RO241>+K233*<HO2>*<RO233>+K236*<HO2>*<RO242>+K240*<HO2>*<RO234>+K243*<HO2>*<RO -!243>+K247*<HO2>*<RO235>+K250*<HO2>*<RO244>+K254*<HO2>*<RO236>+K257*<HO2>*<RO24 -!5>+K261*<HO2>*<RO237>+K264*<HO2>*<RO246>+K268*<HO2>*<RO238>+K271*<HO2>*<RO247> -!+0.36*K281*<O3>*<MVK>+0.82*K282*<O3>*<MCR>+K287*<HO2>*<RO249>+K293*<RO2T>*<RO2 -!51>+K296*<RO2T>*<RO252>+K299*<RO2T>*<RO253>+K339*<RP16>+K340*<NO>*<RO258>+K342 -!*<RO2T>*<RO258> - PPROD(:,15) = +TPK%K017(:)*TPK%H2O(:)*TPK%OSD(:)+TPK%K017(:)*TPK%H2O(:)*TPK%OS& -&D(:)+0.9*TPK%K020(:)*PCONC(:,4)+TPK%K026(:)*PCONC(:,10)*PCONC(:,1)+TPK%K030(:)& -&*PCONC(:,10)*PCONC(:,3)+0.8*TPK%K033(:)*PCONC(:,10)*PCONC(:,8)+2.*TPK%K036(:)*& -&PCONC(:,12)+0.06*TPK%K051(:)*PCONC(:,3)*PCONC(:,16)+0.36*TPK%K056(:)*PCONC(:,3& -&)*PCONC(:,17)+0.664*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+0.36*TPK%K076(:)*PCONC(& -&:,3)*PCONC(:,18)+0.89*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)+0.89*TPK%K090(:)*PCON& -&C(:,3)*PCONC(:,37)+TPK%K112(:)*PCONC(:,10)*PCONC(:,86)+TPK%K115(:)*PCONC(:,10)& -&*TPK%RO22(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO23(:)+TPK%K121(:)*PCONC(:,10)*TPK%R& -&O24(:)+TPK%K124(:)*PCONC(:,10)*PCONC(:,87)+TPK%K146(:)*PCONC(:,10)*TPK%RO27(:)& -&+TPK%K152(:)*PCONC(:,10)*TPK%RO29(:)+TPK%K155(:)*PCONC(:,10)*TPK%RO210(:)+TPK%& -&K158(:)*PCONC(:,10)*TPK%RO211(:)+TPK%K161(:)*PCONC(:,10)*TPK%RO212(:)+TPK%K164& -&(:)*PCONC(:,10)*TPK%RO213(:)+TPK%K170(:)*PCONC(:,10)*TPK%RO214(:)+TPK%K173(:)*& -&PCONC(:,10)*TPK%RO215(:)+TPK%K176(:)*PCONC(:,10)*TPK%RO216(:)+TPK%K179(:)*PCON& -&C(:,10)*TPK%RO217(:)+TPK%K182(:)*PCONC(:,10)*TPK%RO218(:)+TPK%K185(:)*PCONC(:,& -&10)*TPK%RO219(:)+TPK%K188(:)*PCONC(:,10)*TPK%RO220(:)+TPK%K191(:)*PCONC(:,10)*& -&TPK%RO221(:)+TPK%K194(:)*PCONC(:,10)*TPK%RO222(:)+TPK%K197(:)*PCONC(:,10)*TPK%& -&RO223(:)+TPK%K200(:)*PCONC(:,10)*TPK%RO224(:)+TPK%K203(:)*PCONC(:,10)*TPK%RO22& -&5(:)+TPK%K206(:)*PCONC(:,10)*TPK%RO226(:)+TPK%K209(:)*PCONC(:,10)*TPK%RO227(:)& -&+TPK%K212(:)*PCONC(:,10)*TPK%RO228(:)+TPK%K215(:)*PCONC(:,10)*TPK%RO229(:)+TPK& -&%K218(:)*PCONC(:,10)*TPK%RO240(:)+TPK%K220(:)*PCONC(:,10)*TPK%RO230(:)+TPK%K22& -&3(:)*PCONC(:,10)*TPK%RO231(:)+TPK%K226(:)*PCONC(:,10)*TPK%RO232(:)+TPK%K229(:)& -&*PCONC(:,10)*TPK%RO241(:)+TPK%K233(:)*PCONC(:,10)*TPK%RO233(:)+TPK%K236(:)*PCO& -&NC(:,10)*TPK%RO242(:)+TPK%K240(:)*PCONC(:,10)*TPK%RO234(:)+TPK%K243(:)*PCONC(:& -&,10)*TPK%RO243(:)+TPK%K247(:)*PCONC(:,10)*TPK%RO235(:)+TPK%K250(:)*PCONC(:,10)& -&*TPK%RO244(:)+TPK%K254(:)*PCONC(:,10)*TPK%RO236(:)+TPK%K257(:)*PCONC(:,10)*TPK& -&%RO245(:)+TPK%K261(:)*PCONC(:,10)*TPK%RO237(:)+TPK%K264(:)*PCONC(:,10)*TPK%RO2& -&46(:)+TPK%K268(:)*PCONC(:,10)*TPK%RO238(:)+TPK%K271(:)*PCONC(:,10)*TPK%RO247(:& -&)+0.36*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.82*TPK%K282(:)*PCONC(:,3)*PCONC(:,& -&40)+TPK%K287(:)*PCONC(:,10)*TPK%RO249(:)+TPK%K293(:)*PCONC(:,85)*TPK%RO251(:)+& -&TPK%K296(:)*PCONC(:,85)*TPK%RO252(:)+TPK%K299(:)*PCONC(:,85)*TPK%RO253(:)+TPK%& -&K339(:)*PCONC(:,74)+TPK%K340(:)*PCONC(:,1)*TPK%RO258(:)+TPK%K342(:)*PCONC(:,85& -&)*TPK%RO258(:) -!PLOSS(OH) = +K019*<NO>+K022*<NO2>+K023*<HNO3>+K024*<CO>+K025*<O3>+K029*<HNO4>+ -!K035*<SO2>+K037*<H2O2>+K039*<HONO>+K040*<NO3>+K042*<HO2>+K043*<CH4>+K046*<HCHO -!>+K048*<MEOH>+K049*<ETHE>+K053*<ETOH>+K054*<OLEL>+K058*<ALKL>+K060*<ALD2>+K062 -!*<KETL>+K064*<ISOP>+K068*<MTBE>+K069*<ALCH>+K070*<KETH>+K073*<AROO>+K074*<OLEH -!>+K078*<ALKM>+K079*<AROL>+K080*<AROH>+K082*<ARAL>+K083*<ARAC>+K084*<BIOL>+K088 -!*<BIOH>+K092*<PAH>+K093*<ALKH>+K272*<MVK>+K273*<MCR>+K274*<MGLY>+K303*<RPR5>+K -!304*<RPR1>+K305*<RP16>+K306*<RPRL>+K312*<RPR3>+K322*<RPR7>+K323*<RPG7>+K324*<R -!PR8>+K325*<RP10>+K326*<RP11>+K334*<RPG3>+K335*<RPG2>+K337*<RP18>+K345*<NH3>+K3 -!47*<ORA1>+K348*<ORA2>+K349*<ACID> - PLOSS(:,15) = +TPK%K019(:)*PCONC(:,1)+TPK%K022(:)*PCONC(:,2)+TPK%K023(:)*PCONC& -&(:,5)+TPK%K024(:)*PCONC(:,11)+TPK%K025(:)*PCONC(:,3)+TPK%K029(:)*PCONC(:,6)+TP& -&K%K035(:)*PCONC(:,13)+TPK%K037(:)*PCONC(:,12)+TPK%K039(:)*PCONC(:,4)+TPK%K040(& -&:)*PCONC(:,8)+TPK%K042(:)*PCONC(:,10)+TPK%K043(:)*TPK%CH4(:)+TPK%K046(:)*PCONC& -&(:,28)+TPK%K048(:)*PCONC(:,32)+TPK%K049(:)*PCONC(:,16)+TPK%K053(:)*PCONC(:,33)& -&+TPK%K054(:)*PCONC(:,17)+TPK%K058(:)*PCONC(:,19)+TPK%K060(:)*PCONC(:,29)+TPK%K& -&062(:)*PCONC(:,30)+TPK%K064(:)*PCONC(:,35)+TPK%K068(:)*PCONC(:,38)+TPK%K069(:)& -&*PCONC(:,34)+TPK%K070(:)*PCONC(:,31)+TPK%K073(:)*PCONC(:,24)+TPK%K074(:)*PCONC& -&(:,18)+TPK%K078(:)*PCONC(:,20)+TPK%K079(:)*PCONC(:,23)+TPK%K080(:)*PCONC(:,22)& -&+TPK%K082(:)*PCONC(:,25)+TPK%K083(:)*PCONC(:,26)+TPK%K084(:)*PCONC(:,36)+TPK%K& -&088(:)*PCONC(:,37)+TPK%K092(:)*PCONC(:,27)+TPK%K093(:)*PCONC(:,21)+TPK%K272(:)& -&*PCONC(:,39)+TPK%K273(:)*PCONC(:,40)+TPK%K274(:)*PCONC(:,41)+TPK%K303(:)*PCONC& -&(:,70)+TPK%K304(:)*PCONC(:,69)+TPK%K305(:)*PCONC(:,74)+TPK%K306(:)*PCONC(:,75)& -&+TPK%K312(:)*PCONC(:,57)+TPK%K322(:)*PCONC(:,62)+TPK%K323(:)*PCONC(:,63)+TPK%K& -&324(:)*PCONC(:,71)+TPK%K325(:)*PCONC(:,72)+TPK%K326(:)*PCONC(:,73)+TPK%K334(:)& -&*PCONC(:,52)+TPK%K335(:)*PCONC(:,50)+TPK%K337(:)*PCONC(:,51)+TPK%K345(:)*PCONC& -&(:,9)+TPK%K347(:)*PCONC(:,43)+TPK%K348(:)*PCONC(:,44)+TPK%K349(:)*PCONC(:,45) -! -!PPROD(ETHE) = 0.0 - PPROD(:,16) = 0.0 -!PLOSS(ETHE) = +K049*<OH>+K050*<NO3>+K051*<O3>+K052*<O> - PLOSS(:,16) = +TPK%K049(:)*PCONC(:,15)+TPK%K050(:)*PCONC(:,8)+TPK%K051(:)*PCON& -&C(:,3)+TPK%K052(:)*TPK%O(:) -! -!PPROD(OLEL) = +0.054*K066*<O3>*<ISOP>+0.925*K067*<O>*<ISOP>+TPK%CF5*K150*<NO>* -!<RO29>+0.5*K166*<HO2>*<RO239>+TPK%CF7*K168*<NO>*<RO214>+0.5*K289*<HO2>*<RO250> - PPROD(:,17) = +0.054*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+0.925*TPK%K067(:)*TPK%& -&O(:)*PCONC(:,35)+TPK%CF5*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:)+0.5*TPK%K166(:)*PC& -&ONC(:,10)*TPK%RO239(:)+TPK%CF7*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:)+0.5*TPK%K28& -&9(:)*PCONC(:,10)*TPK%RO250(:) -!PLOSS(OLEL) = +K054*<OH>+K055*<NO3>+K056*<O3>+K057*<O> - PLOSS(:,17) = +TPK%K054(:)*PCONC(:,15)+TPK%K055(:)*PCONC(:,8)+TPK%K056(:)*PCON& -&C(:,3)+TPK%K057(:)*TPK%O(:) -! -!PPROD(OLEH) = 0.0 - PPROD(:,18) = 0.0 -!PLOSS(OLEH) = +K074*<OH>+K075*<NO3>+K076*<O3>+K077*<O> - PLOSS(:,18) = +TPK%K074(:)*PCONC(:,15)+TPK%K075(:)*PCONC(:,8)+TPK%K076(:)*PCON& -&C(:,3)+TPK%K077(:)*TPK%O(:) -! -!PPROD(ALKL) = +0.1*K056*<O3>*<OLEL>+0.5*K057*<O>*<OLEL>+TPK%CF3*K122*<NO>*<RO2 -!5>+TPK%CF12*K171*<NO>*<RO215>+TPK%CF16*K172*<RO2T>*<RO215>+TPK%CF16*K173*<HO2> -!*<RO215> - PPROD(:,19) = +0.1*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+0.5*TPK%K057(:)*TPK%O(:)& -&*PCONC(:,17)+TPK%CF3*TPK%K122(:)*PCONC(:,1)*PCONC(:,87)+TPK%CF12*TPK%K171(:)*P& -&CONC(:,1)*TPK%RO215(:)+TPK%CF16*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:)+TPK%CF16*& -&TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) -!PLOSS(ALKL) = +K058*<OH> - PLOSS(:,19) = +TPK%K058(:)*PCONC(:,15) -! -!PPROD(ALKM) = +0.1*K076*<O3>*<OLEH>+0.5*K077*<O>*<OLEH> - PPROD(:,20) = +0.1*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+0.5*TPK%K077(:)*TPK%O(:)& -&*PCONC(:,18) -!PLOSS(ALKM) = +K078*<OH> - PLOSS(:,20) = +TPK%K078(:)*PCONC(:,15) -! -RETURN -END SUBROUTINE SUB1 -! -SUBROUTINE SUB2 -! -!Indices 21 a 30 -! -! -!PPROD(ALKH) = 0.0 - PPROD(:,21) = 0.0 -!PLOSS(ALKH) = +K093*<OH> - PLOSS(:,21) = +TPK%K093(:)*PCONC(:,15) -! -!PPROD(AROH) = 0.0 - PPROD(:,22) = 0.0 -!PLOSS(AROH) = +K080*<OH> - PLOSS(:,22) = +TPK%K080(:)*PCONC(:,15) -! -!PPROD(AROL) = 0.0 - PPROD(:,23) = 0.0 -!PLOSS(AROL) = +K079*<OH> - PLOSS(:,23) = +TPK%K079(:)*PCONC(:,15) -! -!PPROD(AROO) = +0.16*K073*<OH>*<AROO>+0.16*K079*<OH>*<AROL>+0.16*K080*<OH>*<ARO -!H> - PPROD(:,24) = +0.16*TPK%K073(:)*PCONC(:,15)*PCONC(:,24)+0.16*TPK%K079(:)*PCONC& -&(:,15)*PCONC(:,23)+0.16*TPK%K080(:)*PCONC(:,15)*PCONC(:,22) -!PLOSS(AROO) = +K072*<NO3>+K073*<OH> - PLOSS(:,24) = +TPK%K072(:)*PCONC(:,8)+TPK%K073(:)*PCONC(:,15) -! -!PPROD(ARAL) = +TPK%CF24*K189*<NO>*<RO221>+K190*<RO2T>*<RO221>+K191*<HO2>*<RO22 -!1> - PPROD(:,25) = +TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:)+TPK%K190(:)*PCONC(& -&:,85)*TPK%RO221(:)+TPK%K191(:)*PCONC(:,10)*TPK%RO221(:) -!PLOSS(ARAL) = +K081*<NO3>+K082*<OH> - PLOSS(:,25) = +TPK%K081(:)*PCONC(:,8)+TPK%K082(:)*PCONC(:,15) -! -!PPROD(ARAC) = +K081*<NO3>*<ARAL>+TPK%CF39*K082*<OH>*<ARAL> - PPROD(:,26) = +TPK%K081(:)*PCONC(:,8)*PCONC(:,25)+TPK%CF39*TPK%K082(:)*PCONC(:& -&,15)*PCONC(:,25) -!PLOSS(ARAC) = +K083*<OH> - PLOSS(:,26) = +TPK%K083(:)*PCONC(:,15) -! -!PPROD(PAH) = 0.0 - PPROD(:,27) = 0.0 -!PLOSS(PAH) = +K092*<OH> - PLOSS(:,27) = +TPK%K092(:)*PCONC(:,15) -! -!PPROD(HCHO) = +K048*<OH>*<MEOH>+0.5*K051*<O3>*<ETHE>+0.5*K056*<O3>*<OLEL>+0.5* -!K066*<O3>*<ISOP>+0.5*K076*<O3>*<OLEH>+K110*<NO>*<RO21>+K111*<RO2T>*<RO21>+K112 -!*<HO2>*<RO21>+K113*<NO>*<RO22>+K114*<RO2T>*<RO22>+K115*<HO2>*<RO22>+K116*<NO>* -!<RO23>+K117*<RO2T>*<RO23>+K118*<HO2>*<RO23>+K119*<NO>*<RO24>+K120*<RO2T>*<RO24 -!>+K121*<HO2>*<RO24>+TPK%CF6*K150*<NO>*<RO29>+K151*<RO2T>*<RO29>+K152*<HO2>*<RO -!29>+K153*<NO>*<RO210>+K154*<RO2T>*<RO210>+K155*<HO2>*<RO210>+K156*<NO>*<RO211> -!+K157*<RO2T>*<RO211>+K158*<HO2>*<RO211>+K159*<NO>*<RO212>+K160*<RO2T>*<RO212>+ -!K161*<HO2>*<RO212>+K162*<NO>*<RO213>+K163*<RO2T>*<RO213>+K164*<HO2>*<RO213>+TP -!K%CF10*K171*<NO>*<RO215>+TPK%CF14*K172*<RO2T>*<RO215>+TPK%CF14*K173*<HO2>*<RO2 -!15>+K183*<NO>*<RO219>+K184*<RO2T>*<RO219>+K185*<HO2>*<RO219>+0.5*K281*<O3>*<MV -!K>+0.5*K282*<O3>*<MCR>+K285*<NO>*<RO249>+K286*<RO2T>*<RO249>+K287*<HO2>*<RO249 -!>+K291*<NO>*<RO251>+K292*<HO2>*<RO251>+K293*<RO2T>*<RO251>+K294*<NO>*<RO252>+K -!295*<HO2>*<RO252>+K296*<RO2T>*<RO252>+K297*<NO>*<RO253>+K298*<HO2>*<RO253>+K29 -!9*<RO2T>*<RO253> - PPROD(:,28) = +TPK%K048(:)*PCONC(:,15)*PCONC(:,32)+0.5*TPK%K051(:)*PCONC(:,3)*& -&PCONC(:,16)+0.5*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+0.5*TPK%K066(:)*PCONC(:,3)*& -&PCONC(:,35)+0.5*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+TPK%K110(:)*PCONC(:,1)*PCON& -&C(:,86)+TPK%K111(:)*PCONC(:,85)*PCONC(:,86)+TPK%K112(:)*PCONC(:,10)*PCONC(:,86& -&)+TPK%K113(:)*PCONC(:,1)*TPK%RO22(:)+TPK%K114(:)*PCONC(:,85)*TPK%RO22(:)+TPK%K& -&115(:)*PCONC(:,10)*TPK%RO22(:)+TPK%K116(:)*PCONC(:,1)*TPK%RO23(:)+TPK%K117(:)*& -&PCONC(:,85)*TPK%RO23(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO23(:)+TPK%K119(:)*PCONC(& -&:,1)*TPK%RO24(:)+TPK%K120(:)*PCONC(:,85)*TPK%RO24(:)+TPK%K121(:)*PCONC(:,10)*T& -&PK%RO24(:)+TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:)+TPK%K151(:)*PCONC(:,85)*& -&TPK%RO29(:)+TPK%K152(:)*PCONC(:,10)*TPK%RO29(:)+TPK%K153(:)*PCONC(:,1)*TPK%RO2& -&10(:)+TPK%K154(:)*PCONC(:,85)*TPK%RO210(:)+TPK%K155(:)*PCONC(:,10)*TPK%RO210(:& -&)+TPK%K156(:)*PCONC(:,1)*TPK%RO211(:)+TPK%K157(:)*PCONC(:,85)*TPK%RO211(:)+TPK& -&%K158(:)*PCONC(:,10)*TPK%RO211(:)+TPK%K159(:)*PCONC(:,1)*TPK%RO212(:)+TPK%K160& -&(:)*PCONC(:,85)*TPK%RO212(:)+TPK%K161(:)*PCONC(:,10)*TPK%RO212(:)+TPK%K162(:)*& -&PCONC(:,1)*TPK%RO213(:)+TPK%K163(:)*PCONC(:,85)*TPK%RO213(:)+TPK%K164(:)*PCONC& -&(:,10)*TPK%RO213(:)+TPK%CF10*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:)+TPK%CF14*TPK%& -&K172(:)*PCONC(:,85)*TPK%RO215(:)+TPK%CF14*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:)& -&+TPK%K183(:)*PCONC(:,1)*TPK%RO219(:)+TPK%K184(:)*PCONC(:,85)*TPK%RO219(:)+TPK%& -&K185(:)*PCONC(:,10)*TPK%RO219(:)+0.5*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.5*TP& -&K%K282(:)*PCONC(:,3)*PCONC(:,40)+TPK%K285(:)*PCONC(:,1)*TPK%RO249(:)+TPK%K286(& -&:)*PCONC(:,85)*TPK%RO249(:)+TPK%K287(:)*PCONC(:,10)*TPK%RO249(:)+TPK%K291(:)*P& -&CONC(:,1)*TPK%RO251(:)+TPK%K292(:)*PCONC(:,10)*TPK%RO251(:)+TPK%K293(:)*PCONC(& -&:,85)*TPK%RO251(:)+TPK%K294(:)*PCONC(:,1)*TPK%RO252(:)+TPK%K295(:)*PCONC(:,10)& -&*TPK%RO252(:)+TPK%K296(:)*PCONC(:,85)*TPK%RO252(:)+TPK%K297(:)*PCONC(:,1)*TPK%& -&RO253(:)+TPK%K298(:)*PCONC(:,10)*TPK%RO253(:)+TPK%K299(:)*PCONC(:,85)*TPK%RO25& -&3(:) -!PLOSS(HCHO) = +K044+K045+K046*<OH>+K047*<NO3> - PLOSS(:,28) = +TPK%K044(:)+TPK%K045(:)+TPK%K046(:)*PCONC(:,15)+TPK%K047(:)*PCO& -&NC(:,8) -! -!PPROD(ALD2) = +TPK%CF1*K053*<OH>*<ETOH>+0.5*K056*<O3>*<OLEL>+0.4*K057*<O>*<OLE -!L>+0.075*K067*<O>*<ISOP>+K113*<NO>*<RO22>+K114*<RO2T>*<RO22>+K115*<HO2>*<RO22> -!+K116*<NO>*<RO23>+K117*<RO2T>*<RO23>+K118*<HO2>*<RO23>+TPK%CF4*K122*<NO>*<RO25 -!>+K123*<RO2T>*<RO25>+K124*<HO2>*<RO25>+K144*<NO>*<RO27>+K145*<RO2T>*<RO27>+K14 -!6*<HO2>*<RO27>+TPK%CF9*K171*<NO>*<RO215>+TPK%CF13*K172*<RO2T>*<RO215>+TPK%CF13 -!*K173*<HO2>*<RO215>+K174*<NO>*<RO216>+K175*<RO2T>*<RO216>+K176*<HO2>*<RO216>+0 -!.1*K281*<O3>*<MVK>+0.85*K284*<O>*<MCR> - PPROD(:,29) = +TPK%CF1*TPK%K053(:)*PCONC(:,15)*PCONC(:,33)+0.5*TPK%K056(:)*PCO& -&NC(:,3)*PCONC(:,17)+0.4*TPK%K057(:)*TPK%O(:)*PCONC(:,17)+0.075*TPK%K067(:)*TPK& -&%O(:)*PCONC(:,35)+TPK%K113(:)*PCONC(:,1)*TPK%RO22(:)+TPK%K114(:)*PCONC(:,85)*T& -&PK%RO22(:)+TPK%K115(:)*PCONC(:,10)*TPK%RO22(:)+TPK%K116(:)*PCONC(:,1)*TPK%RO23& -&(:)+TPK%K117(:)*PCONC(:,85)*TPK%RO23(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO23(:)+TP& -&K%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87)+TPK%K123(:)*PCONC(:,85)*PCONC(:,87)+T& -&PK%K124(:)*PCONC(:,10)*PCONC(:,87)+TPK%K144(:)*PCONC(:,1)*TPK%RO27(:)+TPK%K145& -&(:)*PCONC(:,85)*TPK%RO27(:)+TPK%K146(:)*PCONC(:,10)*TPK%RO27(:)+TPK%CF9*TPK%K1& -&71(:)*PCONC(:,1)*TPK%RO215(:)+TPK%CF13*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:)+TP& -&K%CF13*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:)+TPK%K174(:)*PCONC(:,1)*TPK%RO216(:& -&)+TPK%K175(:)*PCONC(:,85)*TPK%RO216(:)+TPK%K176(:)*PCONC(:,10)*TPK%RO216(:)+0.& -&1*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.85*TPK%K284(:)*TPK%O(:)*PCONC(:,40) -!PLOSS(ALD2) = +K059+K060*<OH>+K061*<NO3> - PLOSS(:,29) = +TPK%K059(:)+TPK%K060(:)*PCONC(:,15)+TPK%K061(:)*PCONC(:,8) -! -!PPROD(KETL) = +TPK%CF11*K171*<NO>*<RO215>+TPK%CF15*K172*<RO2T>*<RO215>+TPK%CF1 -!5*K173*<HO2>*<RO215>+0.85*K283*<O>*<MVK> - PPROD(:,30) = +TPK%CF11*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:)+TPK%CF15*TPK%K172(& -&:)*PCONC(:,85)*TPK%RO215(:)+TPK%CF15*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:)+0.85& -&*TPK%K283(:)*TPK%O(:)*PCONC(:,39) -!PLOSS(KETL) = +K062*<OH>+K063 - PLOSS(:,30) = +TPK%K062(:)*PCONC(:,15)+TPK%K063(:) -! -RETURN -END SUBROUTINE SUB2 -! -SUBROUTINE SUB3 -! -!Indices 31 a 40 -! -! -!PPROD(KETH) = 0.0 - PPROD(:,31) = 0.0 -!PLOSS(KETH) = +K070*<OH>+K071 - PLOSS(:,31) = +TPK%K070(:)*PCONC(:,15)+TPK%K071(:) -! -!PPROD(MEOH) = 0.0 - PPROD(:,32) = 0.0 -!PLOSS(MEOH) = +K048*<OH> - PLOSS(:,32) = +TPK%K048(:)*PCONC(:,15) -! -!PPROD(ETOH) = 0.0 - PPROD(:,33) = 0.0 -!PLOSS(ETOH) = +K053*<OH> - PLOSS(:,33) = +TPK%K053(:)*PCONC(:,15) -! -!PPROD(ALCH) = 0.0 - PPROD(:,34) = 0.0 -!PLOSS(ALCH) = +K069*<OH> - PLOSS(:,34) = +TPK%K069(:)*PCONC(:,15) -! -!PPROD(ISOP) = 0.0 - PPROD(:,35) = 0.0 -!PLOSS(ISOP) = +K064*<OH>+K065*<NO3>+K066*<O3>+K067*<O> - PLOSS(:,35) = +TPK%K064(:)*PCONC(:,15)+TPK%K065(:)*PCONC(:,8)+TPK%K066(:)*PCON& -&C(:,3)+TPK%K067(:)*TPK%O(:) -! -!PPROD(BIOL) = 0.0 - PPROD(:,36) = 0.0 -!PLOSS(BIOL) = +K084*<OH>+K085*<NO3>+K086*<O3>+K087*<O> - PLOSS(:,36) = +TPK%K084(:)*PCONC(:,15)+TPK%K085(:)*PCONC(:,8)+TPK%K086(:)*PCON& -&C(:,3)+TPK%K087(:)*TPK%O(:) -! -!PPROD(BIOH) = 0.0 - PPROD(:,37) = 0.0 -!PLOSS(BIOH) = +K088*<OH>+K089*<NO3>+K090*<O3>+K091*<O> - PLOSS(:,37) = +TPK%K088(:)*PCONC(:,15)+TPK%K089(:)*PCONC(:,8)+TPK%K090(:)*PCON& -&C(:,3)+TPK%K091(:)*TPK%O(:) -! -!PPROD(MTBE) = 0.0 - PPROD(:,38) = 0.0 -!PLOSS(MTBE) = +K068*<OH> - PLOSS(:,38) = +TPK%K068(:)*PCONC(:,15) -! -!PPROD(MVK) = +0.389*K066*<O3>*<ISOP>+TPK%CF6*K150*<NO>*<RO29>+K151*<RO2T>*<RO2 -!9>+K152*<HO2>*<RO29>+K156*<NO>*<RO211>+K157*<RO2T>*<RO211>+K158*<HO2>*<RO211> - PPROD(:,39) = +0.389*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+TPK%CF6*TPK%K150(:)*PC& -&ONC(:,1)*TPK%RO29(:)+TPK%K151(:)*PCONC(:,85)*TPK%RO29(:)+TPK%K152(:)*PCONC(:,1& -&0)*TPK%RO29(:)+TPK%K156(:)*PCONC(:,1)*TPK%RO211(:)+TPK%K157(:)*PCONC(:,85)*TPK& -&%RO211(:)+TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) -!PLOSS(MVK) = +K272*<OH>+K281*<O3>+K283*<O> - PLOSS(:,39) = +TPK%K272(:)*PCONC(:,15)+TPK%K281(:)*PCONC(:,3)+TPK%K283(:)*TPK%& -&O(:) -! -!PPROD(MCR) = +0.17*K066*<O3>*<ISOP>+K153*<NO>*<RO210>+K154*<RO2T>*<RO210>+K155 -!*<HO2>*<RO210>+K159*<NO>*<RO212>+K160*<RO2T>*<RO212>+K161*<HO2>*<RO212> - PPROD(:,40) = +0.17*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+TPK%K153(:)*PCONC(:,1)*& -&TPK%RO210(:)+TPK%K154(:)*PCONC(:,85)*TPK%RO210(:)+TPK%K155(:)*PCONC(:,10)*TPK%& -&RO210(:)+TPK%K159(:)*PCONC(:,1)*TPK%RO212(:)+TPK%K160(:)*PCONC(:,85)*TPK%RO212& -&(:)+TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) -!PLOSS(MCR) = +K273*<OH>+K275*<NO3>+K282*<O3>+K284*<O> - PLOSS(:,40) = +TPK%K273(:)*PCONC(:,15)+TPK%K275(:)*PCONC(:,8)+TPK%K282(:)*PCON& -&C(:,3)+TPK%K284(:)*TPK%O(:) -! -RETURN -END SUBROUTINE SUB3 -! -SUBROUTINE SUB4 -! -!Indices 41 a 50 -! -! -!PPROD(MGLY) = +K234*<NO>*<RO242>+K235*<RO2T>*<RO242>+K236*<HO2>*<RO242>+K241*< -!NO>*<RO243>+K242*<RO2T>*<RO243>+K243*<HO2>*<RO243>+K248*<NO>*<RO244>+K249*<RO2 -!T>*<RO244>+K250*<HO2>*<RO244>+K255*<NO>*<RO245>+K256*<RO2T>*<RO245>+K257*<HO2> -!*<RO245>+K262*<NO>*<RO246>+K263*<RO2T>*<RO246>+K264*<HO2>*<RO246>+K269*<NO>*<R -!O247>+K270*<RO2T>*<RO247>+K271*<HO2>*<RO247>+0.5*K281*<O3>*<MVK>+0.59*K282*<O3 -!>*<MCR>+K285*<NO>*<RO249>+K286*<RO2T>*<RO249>+K287*<HO2>*<RO249>+K291*<NO>*<RO -!251>+K292*<HO2>*<RO251>+K293*<RO2T>*<RO251>+K294*<NO>*<RO252>+K295*<HO2>*<RO25 -!2>+K296*<RO2T>*<RO252> - PPROD(:,41) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:)+TPK%K235(:)*PCONC(:,85)*TPK& -&%RO242(:)+TPK%K236(:)*PCONC(:,10)*TPK%RO242(:)+TPK%K241(:)*PCONC(:,1)*TPK%RO24& -&3(:)+TPK%K242(:)*PCONC(:,85)*TPK%RO243(:)+TPK%K243(:)*PCONC(:,10)*TPK%RO243(:)& -&+TPK%K248(:)*PCONC(:,1)*TPK%RO244(:)+TPK%K249(:)*PCONC(:,85)*TPK%RO244(:)+TPK%& -&K250(:)*PCONC(:,10)*TPK%RO244(:)+TPK%K255(:)*PCONC(:,1)*TPK%RO245(:)+TPK%K256(& -&:)*PCONC(:,85)*TPK%RO245(:)+TPK%K257(:)*PCONC(:,10)*TPK%RO245(:)+TPK%K262(:)*P& -&CONC(:,1)*TPK%RO246(:)+TPK%K263(:)*PCONC(:,85)*TPK%RO246(:)+TPK%K264(:)*PCONC(& -&:,10)*TPK%RO246(:)+TPK%K269(:)*PCONC(:,1)*TPK%RO247(:)+TPK%K270(:)*PCONC(:,85)& -&*TPK%RO247(:)+TPK%K271(:)*PCONC(:,10)*TPK%RO247(:)+0.5*TPK%K281(:)*PCONC(:,3)*& -&PCONC(:,39)+0.59*TPK%K282(:)*PCONC(:,3)*PCONC(:,40)+TPK%K285(:)*PCONC(:,1)*TPK& -&%RO249(:)+TPK%K286(:)*PCONC(:,85)*TPK%RO249(:)+TPK%K287(:)*PCONC(:,10)*TPK%RO2& -&49(:)+TPK%K291(:)*PCONC(:,1)*TPK%RO251(:)+TPK%K292(:)*PCONC(:,10)*TPK%RO251(:)& -&+TPK%K293(:)*PCONC(:,85)*TPK%RO251(:)+TPK%K294(:)*PCONC(:,1)*TPK%RO252(:)+TPK%& -&K295(:)*PCONC(:,10)*TPK%RO252(:)+TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) -!PLOSS(MGLY) = +K274*<OH>+K276+K278*<NO3> - PLOSS(:,41) = +TPK%K274(:)*PCONC(:,15)+TPK%K276(:)+TPK%K278(:)*PCONC(:,8) -! -!PPROD(GLY) = 0.0 - PPROD(:,42) = 0.0 -!PLOSS(GLY) = 0.0 - PLOSS(:,42) = 0.0 -! -!PPROD(ORA1) = +0.185*K051*<O3>*<ETHE>+0.12*K056*<O3>*<OLEL>+0.121*K066*<O3>*<I -!SOP>+0.12*K281*<O3>*<MVK>+0.09*K282*<O3>*<MCR> - PPROD(:,43) = +0.185*TPK%K051(:)*PCONC(:,3)*PCONC(:,16)+0.12*TPK%K056(:)*PCONC& -&(:,3)*PCONC(:,17)+0.121*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+0.12*TPK%K281(:)*PC& -&ONC(:,3)*PCONC(:,39)+0.09*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) -!PLOSS(ORA1) = +K347*<OH> - PLOSS(:,43) = +TPK%K347(:)*PCONC(:,15) -! -!PPROD(ORA2) = +0.12*K056*<O3>*<OLEL>+K142*<HO2>*<RO26>+K148*<HO2>*<RO28>+0.5*K -!166*<HO2>*<RO239>+0.5*K289*<HO2>*<RO250> - PPROD(:,44) = +0.12*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+TPK%K142(:)*PCONC(:,10)& -&*TPK%RO26(:)+TPK%K148(:)*PCONC(:,10)*TPK%RO28(:)+0.5*TPK%K166(:)*PCONC(:,10)*T& -&PK%RO239(:)+0.5*TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) -!PLOSS(ORA2) = +K348*<OH> - PLOSS(:,44) = +TPK%K348(:)*PCONC(:,15) -! -!PPROD(ACID) = +0.12*K076*<O3>*<OLEH>+K142*<HO2>*<RO26>+K310*<HO2>*<RO255> - PPROD(:,45) = +0.12*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+TPK%K142(:)*PCONC(:,10)& -&*TPK%RO26(:)+TPK%K310(:)*PCONC(:,10)*TPK%RO255(:) -!PLOSS(ACID) = +K349*<OH> - PLOSS(:,45) = +TPK%K349(:)*PCONC(:,15) -! -!PPROD(UR28) = +K341*<HO2>*<RO258> - PPROD(:,46) = +TPK%K341(:)*PCONC(:,10)*TPK%RO258(:) -!PLOSS(UR28) = +K364 - PLOSS(:,46) = +TPK%K364(:) -! -!PPROD(UR21) = +K279*<HO2>*<RO248>+0.12*K281*<O3>*<MVK> - PPROD(:,47) = +TPK%K279(:)*PCONC(:,10)*TPK%RO248(:)+0.12*TPK%K281(:)*PCONC(:,3& -&)*PCONC(:,39) -!PLOSS(UR21) = +K361 - PLOSS(:,47) = +TPK%K361(:) -! -!PPROD(URG2) = +0.5562513*K335*<OH>*<RPG2>+K337*<OH>*<RP18> - PPROD(:,48) = +0.5562513*TPK%K335(:)*PCONC(:,15)*PCONC(:,50)+TPK%K337(:)*PCONC& -&(:,15)*PCONC(:,51) -!PLOSS(URG2) = +K350 - PLOSS(:,48) = +TPK%K350(:) -! -!PPROD(UR26) = +0.67*K326*<OH>*<RP11> - PPROD(:,49) = +0.67*TPK%K326(:)*PCONC(:,15)*PCONC(:,73) -!PLOSS(UR26) = +K363 - PLOSS(:,49) = +TPK%K363(:) -! -!PPROD(RPG2) = +0.3000000*K259*<NO>*<RO237>+1.0000000*K260*<RO2T>*<RO237>+0.300 -!0000*K261*<HO2>*<RO237>+0.1191897*K334*<OH>*<RPG3>+0.8808107*K334*<OH>*<RPG3> - PPROD(:,50) = +0.3000000*TPK%K259(:)*PCONC(:,1)*TPK%RO237(:)+1.0000000*TPK%K26& -&0(:)*PCONC(:,85)*TPK%RO237(:)+0.3000000*TPK%K261(:)*PCONC(:,10)*TPK%RO237(:)+0& -&.1191897*TPK%K334(:)*PCONC(:,15)*PCONC(:,52)+0.8808107*TPK%K334(:)*PCONC(:,15)& -&*PCONC(:,52) -!PLOSS(RPG2) = +K335*<OH> - PLOSS(:,50) = +TPK%K335(:)*PCONC(:,15) -! -RETURN -END SUBROUTINE SUB4 -! -SUBROUTINE SUB5 -! -!Indices 51 a 60 -! -! -!PPROD(RP18) = +0.4437492*K335*<OH>*<RPG2> - PPROD(:,51) = +0.4437492*TPK%K335(:)*PCONC(:,15)*PCONC(:,50) -!PLOSS(RP18) = +K337*<OH> - PLOSS(:,51) = +TPK%K337(:)*PCONC(:,15) -! -!PPROD(RPG3) = +0.3000000*K231*<NO>*<RO233>+1.0000000*K232*<RO2T>*<RO233>+0.300 -!0000*K233*<HO2>*<RO233>+0.3000000*K252*<NO>*<RO236>+1.0000000*K253*<RO2T>*<RO2 -!36>+0.3000000*K254*<HO2>*<RO236> - PPROD(:,52) = +0.3000000*TPK%K231(:)*PCONC(:,1)*TPK%RO233(:)+1.0000000*TPK%K23& -&2(:)*PCONC(:,85)*TPK%RO233(:)+0.3000000*TPK%K233(:)*PCONC(:,10)*TPK%RO233(:)+0& -&.3000000*TPK%K252(:)*PCONC(:,1)*TPK%RO236(:)+1.0000000*TPK%K253(:)*PCONC(:,85)& -&*TPK%RO236(:)+0.3000000*TPK%K254(:)*PCONC(:,10)*TPK%RO236(:) -!PLOSS(RPG3) = +K334*<OH> - PLOSS(:,52) = +TPK%K334(:)*PCONC(:,15) -! -!PPROD(URG4) = +5.5000000E-02*K086*<O3>*<BIOL>+1.0000000*K318*<HO2>*<RO256>+1.0 -!000000*K332*<HO2>*<RO257> - PPROD(:,53) = +5.5000000E-02*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)+1.0000000*TPK%& -&K318(:)*PCONC(:,10)*TPK%RO256(:)+1.0000000*TPK%K332(:)*PCONC(:,10)*TPK%RO257(:& -&) -!PLOSS(URG4) = +K351 - PLOSS(:,53) = +TPK%K351(:) -! -!PPROD(UR8) = +0.055*K090*<O3>*<BIOH> - PPROD(:,54) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -!PLOSS(UR8) = +K358 - PLOSS(:,54) = +TPK%K358(:) -! -!PPROD(UR17) = +1.0000000*K204*<NO>*<RO226>+1.0000000*K205*<RO2T>*<RO226>+1.000 -!0000*K206*<HO2>*<RO226> - PPROD(:,55) = +1.0000000*TPK%K204(:)*PCONC(:,1)*TPK%RO226(:)+1.0000000*TPK%K20& -&5(:)*PCONC(:,85)*TPK%RO226(:)+1.0000000*TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) -!PLOSS(UR17) = +K359 - PLOSS(:,55) = +TPK%K359(:) -! -!PPROD(UR7) = +0.055*K090*<O3>*<BIOH>+TPK%CFA12*K207*<NO>*<RO227>+K208*<RO2T>*< -!RO227>+0.3*K209*<HO2>*<RO227>+0.3*K210*<NO>*<RO228>+0.3*K211*<RO2T>*<RO228>+0. -!3*K212*<HO2>*<RO228> - PPROD(:,56) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37)+TPK%CFA12*TPK%K207(:)*& -&PCONC(:,1)*TPK%RO227(:)+TPK%K208(:)*PCONC(:,85)*TPK%RO227(:)+0.3*TPK%K209(:)*P& -&CONC(:,10)*TPK%RO227(:)+0.3*TPK%K210(:)*PCONC(:,1)*TPK%RO228(:)+0.3*TPK%K211(:& -&)*PCONC(:,85)*TPK%RO228(:)+0.3*TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) -!PLOSS(UR7) = +K357 - PLOSS(:,56) = +TPK%K357(:) -! -!PPROD(RPR3) = +0.055*K086*<O3>*<BIOL>+TPK%CFA10*K198*<NO>*<RO224>+K199*<RO2T>* -!<RO224>+K200*<HO2>*<RO224>+K201*<NO>*<RO225>+K202*<RO2T>*<RO225>+K203*<HO2>*<R -!O225> - PPROD(:,57) = +0.055*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)+TPK%CFA10*TPK%K198(:)*& -&PCONC(:,1)*TPK%RO224(:)+TPK%K199(:)*PCONC(:,85)*TPK%RO224(:)+TPK%K200(:)*PCONC& -&(:,10)*TPK%RO224(:)+TPK%K201(:)*PCONC(:,1)*TPK%RO225(:)+TPK%K202(:)*PCONC(:,85& -&)*TPK%RO225(:)+TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) -!PLOSS(RPR3) = +K312*<OH>+K313*<NO3>+K314 - PLOSS(:,57) = +TPK%K312(:)*PCONC(:,15)+TPK%K313(:)*PCONC(:,8)+TPK%K314(:) -! -!PPROD(URG6) = +TPK%CF21*K177*<NO>*<RO217>+TPK%CF43*K195*<NO>*<RO223>+0.4978440 -!*K323*<OH>*<RPG7> - PPROD(:,58) = +TPK%CF21*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:)+TPK%CF43*TPK%K195(& -&:)*PCONC(:,1)*TPK%RO223(:)+0.4978440*TPK%K323(:)*PCONC(:,15)*PCONC(:,63) -!PLOSS(URG6) = +K352 - PLOSS(:,58) = +TPK%K352(:) -! -!PPROD(UR22) = +K321*<NO2>*<RAD8> - PPROD(:,59) = +TPK%K321(:)*PCONC(:,2)*TPK%RAD8(:) -!PLOSS(UR22) = +K362 - PLOSS(:,59) = +TPK%K362(:) -! -!PPROD(URG7) = +0.1599999*K083*<OH>*<ARAC>+0.9999993*K108*<NO2>*<RAD6>+0.999999 -!3*K303*<OH>*<RPR5>+0.9979297*K306*<OH>*<RPRL>+0.9999993*K322*<OH>*<RPR7> - PPROD(:,60) = +0.1599999*TPK%K083(:)*PCONC(:,15)*PCONC(:,26)+0.9999993*TPK%K10& -&8(:)*PCONC(:,2)*TPK%RAD6(:)+0.9999993*TPK%K303(:)*PCONC(:,15)*PCONC(:,70)+0.99& -&79297*TPK%K306(:)*PCONC(:,15)*PCONC(:,75)+0.9999993*TPK%K322(:)*PCONC(:,15)*PC& -&ONC(:,62) -!PLOSS(URG7) = +K353 - PLOSS(:,60) = +TPK%K353(:) -! -RETURN -END SUBROUTINE SUB5 -! -SUBROUTINE SUB6 -! -!Indices 61 a 70 -! -! -!PPROD(RPR4) = +K103*<NO2>*<RAD1>+K104*<NO2>*<RAD2> - PPROD(:,61) = +TPK%K103(:)*PCONC(:,2)*TPK%RAD1(:)+TPK%K104(:)*PCONC(:,2)*TPK%R& -&AD2(:) -!PLOSS(RPR4) = +K320*<NO3> - PLOSS(:,61) = +TPK%K320(:)*PCONC(:,8) -! -!PPROD(RPR7) = +TPK%CF44*K195*<NO>*<RO223>+K196*<RO2T>*<RO223>+K197*<HO2>*<RO22 -!3>+2.0714202E-03*K306*<OH>*<RPRL> - PPROD(:,62) = +TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:)+TPK%K196(:)*PCONC(& -&:,85)*TPK%RO223(:)+TPK%K197(:)*PCONC(:,10)*TPK%RO223(:)+2.0714202E-03*TPK%K306& -&(:)*PCONC(:,15)*PCONC(:,75) -!PLOSS(RPR7) = +K322*<OH> - PLOSS(:,62) = +TPK%K322(:)*PCONC(:,15) -! -!PPROD(RPG7) = +1.0000013*K266*<NO>*<RO238>+1.0000013*K267*<RO2T>*<RO238>+1.000 -!0013*K268*<HO2>*<RO238>+0.5021558*K323*<OH>*<RPG7> - PPROD(:,63) = +1.0000013*TPK%K266(:)*PCONC(:,1)*TPK%RO238(:)+1.0000013*TPK%K26& -&7(:)*PCONC(:,85)*TPK%RO238(:)+1.0000013*TPK%K268(:)*PCONC(:,10)*TPK%RO238(:)+0& -&.5021558*TPK%K323(:)*PCONC(:,15)*PCONC(:,63) -!PLOSS(RPG7) = +K323*<OH> - PLOSS(:,63) = +TPK%K323(:)*PCONC(:,15) -! -!PPROD(URG8) = +0.1600000*K092*<OH>*<PAH>+1.0000000*K109*<NO2>*<RAD7>+TPK%CF31* -!K221*<NO>*<RO231> - PPROD(:,64) = +0.1600000*TPK%K092(:)*PCONC(:,15)*PCONC(:,27)+1.0000000*TPK%K10& -&9(:)*PCONC(:,2)*TPK%RAD7(:)+TPK%CF31*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) -!PLOSS(URG8) = +K354 - PLOSS(:,64) = +TPK%K354(:) -! -!PPROD(UR19) = +TPK%CF32*K221*<NO>*<RO231>+K222*<RO2T>*<RO231>+K223*<HO2>*<RO23 -!1> - PPROD(:,65) = +TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:)+TPK%K222(:)*PCONC(& -&:,85)*TPK%RO231(:)+TPK%K223(:)*PCONC(:,10)*TPK%RO231(:) -!PLOSS(UR19) = +K360 - PLOSS(:,65) = +TPK%K360(:) -! -!PPROD(URG9) = +TPK%CFA14*K224*<NO>*<RO232>+TPK%CFA16*K227*<NO>*<RO241>+TPK%CFA -!15*K227*<NO>*<RO241>+0.9999996*K228*<RO2T>*<RO241>+0.9999996*K229*<HO2>*<RO241 -!> - PPROD(:,66) = +TPK%CFA14*TPK%K224(:)*PCONC(:,1)*TPK%RO232(:)+TPK%CFA16*TPK%K22& -&7(:)*PCONC(:,1)*TPK%RO241(:)+TPK%CFA15*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:)+0.9& -&999996*TPK%K228(:)*PCONC(:,85)*TPK%RO241(:)+0.9999996*TPK%K229(:)*PCONC(:,10)*& -&TPK%RO241(:) -!PLOSS(URG9) = +K355 - PLOSS(:,66) = +TPK%K355(:) -! -!PPROD(AP7) = +TPK%CFA23*K198*<NO>*<RO224> - PPROD(:,67) = +TPK%CFA23*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) -!PLOSS(AP7) = +K365 - PLOSS(:,67) = +TPK%K365(:) -! -!PPROD(URG10) = +0.2500000*K087*<O>*<BIOL>+0.7500000*K087*<O>*<BIOL>+TPK%CF27*K -!207*<NO>*<RO227> - PPROD(:,68) = +0.2500000*TPK%K087(:)*TPK%O(:)*PCONC(:,36)+0.7500000*TPK%K087(:& -&)*TPK%O(:)*PCONC(:,36)+TPK%CF27*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) -!PLOSS(URG10) = +K356 - PLOSS(:,68) = +TPK%K356(:) -! -!PPROD(RPR1) = +0.5*K076*<O3>*<OLEH>+0.4*K077*<O>*<OLEH>+K183*<NO>*<RO219>+K184 -!*<RO2T>*<RO219>+K185*<HO2>*<RO219> - PPROD(:,69) = +0.5*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+0.4*TPK%K077(:)*TPK%O(:)& -&*PCONC(:,18)+TPK%K183(:)*PCONC(:,1)*TPK%RO219(:)+TPK%K184(:)*PCONC(:,85)*TPK%R& -&O219(:)+TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) -!PLOSS(RPR1) = +K304*<OH>+K307*<NO3>+K308 - PLOSS(:,69) = +TPK%K304(:)*PCONC(:,15)+TPK%K307(:)*PCONC(:,8)+TPK%K308(:) -! -!PPROD(RPR5) = +K107*<NO2>*<RAD5> - PPROD(:,70) = +TPK%K107(:)*PCONC(:,2)*TPK%RAD5(:) -!PLOSS(RPR5) = +K303*<OH> - PLOSS(:,70) = +TPK%K303(:)*PCONC(:,15) -! -RETURN -END SUBROUTINE SUB6 -! -SUBROUTINE SUB7 -! -!Indices 71 a 80 -! -! -!PPROD(RPR8) = +K216*<NO>*<RO240>+K217*<RO2T>*<RO240>+K218*<HO2>*<RO240> - PPROD(:,71) = +TPK%K216(:)*PCONC(:,1)*TPK%RO240(:)+TPK%K217(:)*PCONC(:,85)*TPK& -&%RO240(:)+TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) -!PLOSS(RPR8) = +K324*<OH>+K327*<NO3>+K329+K330 - PLOSS(:,71) = +TPK%K324(:)*PCONC(:,15)+TPK%K327(:)*PCONC(:,8)+TPK%K329(:)+TPK%& -&K330(:) -! -!PPROD(RP10) = +K234*<NO>*<RO242>+K235*<RO2T>*<RO242>+K236*<HO2>*<RO242>+K241*< -!NO>*<RO243>+K242*<RO2T>*<RO243>+K243*<HO2>*<RO243>+K248*<NO>*<RO244>+K249*<RO2 -!T>*<RO244>+K250*<HO2>*<RO244>+K255*<NO>*<RO245>+K256*<RO2T>*<RO245>+K257*<HO2> -!*<RO245>+K262*<NO>*<RO246>+K263*<RO2T>*<RO246>+K264*<HO2>*<RO246> - PPROD(:,72) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:)+TPK%K235(:)*PCONC(:,85)*TPK& -&%RO242(:)+TPK%K236(:)*PCONC(:,10)*TPK%RO242(:)+TPK%K241(:)*PCONC(:,1)*TPK%RO24& -&3(:)+TPK%K242(:)*PCONC(:,85)*TPK%RO243(:)+TPK%K243(:)*PCONC(:,10)*TPK%RO243(:)& -&+TPK%K248(:)*PCONC(:,1)*TPK%RO244(:)+TPK%K249(:)*PCONC(:,85)*TPK%RO244(:)+TPK%& -&K250(:)*PCONC(:,10)*TPK%RO244(:)+TPK%K255(:)*PCONC(:,1)*TPK%RO245(:)+TPK%K256(& -&:)*PCONC(:,85)*TPK%RO245(:)+TPK%K257(:)*PCONC(:,10)*TPK%RO245(:)+TPK%K262(:)*P& -&CONC(:,1)*TPK%RO246(:)+TPK%K263(:)*PCONC(:,85)*TPK%RO246(:)+TPK%K264(:)*PCONC(& -&:,10)*TPK%RO246(:) -!PLOSS(RP10) = +K325*<OH>+K328 - PLOSS(:,72) = +TPK%K325(:)*PCONC(:,15)+TPK%K328(:) -! -!PPROD(RP11) = +0.3*K238*<NO>*<RO234>+K239*<RO2T>*<RO234>+0.3*K240*<HO2>*<RO234 -!>+0.5*K245*<NO>*<RO235>+K246*<RO2T>*<RO235>+K247*<HO2>*<RO235> - PPROD(:,73) = +0.3*TPK%K238(:)*PCONC(:,1)*TPK%RO234(:)+TPK%K239(:)*PCONC(:,85)& -&*TPK%RO234(:)+0.3*TPK%K240(:)*PCONC(:,10)*TPK%RO234(:)+0.5*TPK%K245(:)*PCONC(:& -&,1)*TPK%RO235(:)+TPK%K246(:)*PCONC(:,85)*TPK%RO235(:)+TPK%K247(:)*PCONC(:,10)*& -&TPK%RO235(:) -!PLOSS(RP11) = +K326*<OH> - PLOSS(:,73) = +TPK%K326(:)*PCONC(:,15) -! -!PPROD(RP16) = +K301*<HO2>*<RO254> - PPROD(:,74) = +TPK%K301(:)*PCONC(:,10)*TPK%RO254(:) -!PLOSS(RP16) = +K305*<OH>+K338*<NO3>+K339 - PLOSS(:,74) = +TPK%K305(:)*PCONC(:,15)+TPK%K338(:)*PCONC(:,8)+TPK%K339(:) -! -!PPROD(RPRL) = +0.9983609*K082*<OH>*<ARAL>+TPK%CFA2*K177*<NO>*<RO217>+0.9983609 -!*K178*<RO2T>*<RO217>+0.9983609*K179*<HO2>*<RO217>+TPK%CFA7*K192*<NO>*<RO222>+0 -!.9983609*K193*<RO2T>*<RO222>+0.9983609*K194*<HO2>*<RO222>+1.0023998*K269*<NO>* -!<RO247>+1.0023998*K270*<RO2T>*<RO247>+1.0023998*K271*<HO2>*<RO247> - PPROD(:,75) = +0.9983609*TPK%K082(:)*PCONC(:,15)*PCONC(:,25)+TPK%CFA2*TPK%K177& -&(:)*PCONC(:,1)*TPK%RO217(:)+0.9983609*TPK%K178(:)*PCONC(:,85)*TPK%RO217(:)+0.9& -&983609*TPK%K179(:)*PCONC(:,10)*TPK%RO217(:)+TPK%CFA7*TPK%K192(:)*PCONC(:,1)*TP& -&K%RO222(:)+0.9983609*TPK%K193(:)*PCONC(:,85)*TPK%RO222(:)+0.9983609*TPK%K194(:& -&)*PCONC(:,10)*TPK%RO222(:)+1.0023998*TPK%K269(:)*PCONC(:,1)*TPK%RO247(:)+1.002& -&3998*TPK%K270(:)*PCONC(:,85)*TPK%RO247(:)+1.0023998*TPK%K271(:)*PCONC(:,10)*TP& -&K%RO247(:) -!PLOSS(RPRL) = +K306*<OH> - PLOSS(:,75) = +TPK%K306(:)*PCONC(:,15) -! -!PPROD(APAN) = +K130*<NO2>*<RO250>+K133*<NO2>*<RO257> - PPROD(:,76) = +TPK%K130(:)*PCONC(:,2)*TPK%RO250(:)+TPK%K133(:)*PCONC(:,2)*TPK%& -&RO257(:) -!PLOSS(APAN) = +K139 - PLOSS(:,76) = +TPK%K139(:) -! -!PPROD(PAN1) = +K126*<NO2>*<RO26> - PPROD(:,77) = +TPK%K126(:)*PCONC(:,2)*TPK%RO26(:) -!PLOSS(PAN1) = +K135 - PLOSS(:,77) = +TPK%K135(:) -! -!PPROD(PAN2) = +K127*<NO2>*<RO28> - PPROD(:,78) = +TPK%K127(:)*PCONC(:,2)*TPK%RO28(:) -!PLOSS(PAN2) = +K136 - PLOSS(:,78) = +TPK%K136(:) -! -!PPROD(PAN3) = +K128*<NO2>*<RO239> - PPROD(:,79) = +TPK%K128(:)*PCONC(:,2)*TPK%RO239(:) -!PLOSS(PAN3) = +K137 - PLOSS(:,79) = +TPK%K137(:) -! -!PPROD(PAN4) = +K129*<NO2>*<RO248> - PPROD(:,80) = +TPK%K129(:)*PCONC(:,2)*TPK%RO248(:) -!PLOSS(PAN4) = +K141 - PLOSS(:,80) = +TPK%K141(:) -! -RETURN -END SUBROUTINE SUB7 -! -SUBROUTINE SUB8 -! -!Indices 81 a 87 -! -! -!PPROD(PAN6) = +K131*<NO2>*<RO254> - PPROD(:,81) = +TPK%K131(:)*PCONC(:,2)*TPK%RO254(:) -!PLOSS(PAN6) = +K140 - PLOSS(:,81) = +TPK%K140(:) -! -!PPROD(PAN7) = +K132*<NO2>*<RO255> - PPROD(:,82) = +TPK%K132(:)*PCONC(:,2)*TPK%RO255(:) -!PLOSS(PAN7) = +K343 - PLOSS(:,82) = +TPK%K343(:) -! -!PPROD(PAN8) = +K316*<NO2>*<RO256> - PPROD(:,83) = +TPK%K316(:)*PCONC(:,2)*TPK%RO256(:) -!PLOSS(PAN8) = +K317 - PLOSS(:,83) = +TPK%K317(:) -! -!PPROD(PN10) = +K134*<NO2>*<RO258> - PPROD(:,84) = +TPK%K134(:)*PCONC(:,2)*TPK%RO258(:) -!PLOSS(PN10) = +K138 - PLOSS(:,84) = +TPK%K138(:) -! -!PPROD(RO2T) = +K043*<OH>*<CH4>+K049*<OH>*<ETHE>+K050*<NO3>*<ETHE>+K052*<O>*<ET -!HE>+TPK%CF2*K053*<OH>*<ETOH>+K054*<OH>*<OLEL>+K055*<NO3>*<OLEL>+0.28*K056*<O3> -!*<OLEL>+0.2*K057*<O>*<OLEL>+K058*<OH>*<ALKL>+K059*<ALD2>+K060*<OH>*<ALD2>+K061 -!*<NO3>*<ALD2>+K062*<OH>*<KETL>+2.*K063*<KETL>+K064*<OH>*<ISOP>+K065*<NO3>*<ISO -!P>+0.366*K066*<O3>*<ISOP>+K068*<OH>*<MTBE>+K069*<OH>*<ALCH>+K070*<OH>*<KETH>+2 -!.*K071*<KETH>+0.1*K073*<OH>*<AROO>+K074*<OH>*<OLEH>+K075*<NO3>*<OLEH>+0.28*K07 -!6*<O3>*<OLEH>+0.2*K077*<O>*<OLEH>+K078*<OH>*<ALKM>+0.06*K079*<OH>*<AROL>+TPK%C -!F45*K082*<OH>*<ARAL>+0.1*K083*<OH>*<ARAC>+K084*<OH>*<BIOL>+K085*<NO3>*<BIOL>+0 -!.445*K086*<O3>*<BIOL>+K088*<OH>*<BIOH>+K089*<NO3>*<BIOH>+0.89*K090*<O3>*<BIOH> -!+0.1*K092*<OH>*<PAH>+K093*<OH>*<ALKH>+K096*<RO2T>*<RO2T>+K097*<RAD2>+K098*<RAD -!3>+K099*<RAD4>+K100*<RAD5>+K101*<RAD6>+K102*<RAD7>+K111*<RO2T>*<RO21>+K114*<RO -!2T>*<RO22>+K117*<RO2T>*<RO23>+K120*<RO2T>*<RO24>+K123*<RO2T>*<RO25>+K125*<NO>* -!<RO26>+K135*<PAN1>+K136*<PAN2>+K137*<PAN3>+K138*<PN10>+1.0000000*K139*<APAN>+K -!140*<PAN6>+K141*<PAN4>+2.*K143*<RO2T>*<RO26>+K144*<NO>*<RO27>+2.*K145*<RO2T>*< -!RO27>+K146*<HO2>*<RO27>+K147*<NO>*<RO28>+2.*K149*<RO2T>*<RO28>+K151*<RO2T>*<RO -!29>+K154*<RO2T>*<RO210>+K157*<RO2T>*<RO211>+K160*<RO2T>*<RO212>+K162*<NO>*<RO2 -!13>+2.*K163*<RO2T>*<RO213>+K164*<HO2>*<RO213>+K165*<NO>*<RO239>+2.*K167*<RO2T> -!*<RO239>+TPK%CF8*K168*<NO>*<RO214>+2.*K169*<RO2T>*<RO214>+K170*<HO2>*<RO214>+K -!172*<RO2T>*<RO215>+K174*<NO>*<RO216>+2.*K175*<RO2T>*<RO216>+K176*<HO2>*<RO216> -!+K178*<RO2T>*<RO217>+K181*<RO2T>*<RO218>+K184*<RO2T>*<RO219>+TPK%CF18*K186*<NO -!>*<RO220>+2.*K187*<RO2T>*<RO220>+K188*<HO2>*<RO220>+K190*<RO2T>*<RO221>+K193*< -!RO2T>*<RO222>+K196*<RO2T>*<RO223>+K199*<RO2T>*<RO224>+K202*<RO2T>*<RO225>+K204 -!*<NO>*<RO226>+2.*K205*<RO2T>*<RO226>+K206*<HO2>*<RO226>+K208*<RO2T>*<RO227>+K2 -!11*<RO2T>*<RO228>+TPK%CF30*K213*<NO>*<RO229>+2.*K214*<RO2T>*<RO229>+K215*<HO2> -!*<RO229>+K216*<NO>*<RO240>+2.*K217*<RO2T>*<RO240>+K218*<HO2>*<RO240>+2.*K219*< -!RO2T>*<RO230>+K220*<HO2>*<RO230>+K222*<RO2T>*<RO231>+TPK%CF34*K224*<NO>*<RO232 -!>+2.*K225*<RO2T>*<RO232>+K226*<HO2>*<RO232>+K228*<RO2T>*<RO241>+K230*<RO233>+K -!232*<RO2T>*<RO233>+K235*<RO2T>*<RO242>+K237*<RO234>+K239*<RO2T>*<RO234>+K242*< -!RO2T>*<RO243>+K244*<RO235>+K246*<RO2T>*<RO235>+K249*<RO2T>*<RO244>+K251*<RO236 -!>+K253*<RO2T>*<RO236>+K256*<RO2T>*<RO245>+K258*<RO237>+K260*<RO2T>*<RO237>+K26 -!3*<RO2T>*<RO246>+K265*<RO238>+K267*<RO2T>*<RO238>+K270*<RO2T>*<RO247>+K272*<OH -!>*<MVK>+K273*<OH>*<MCR>+K274*<OH>*<MGLY>+K275*<NO3>*<MCR>+K276*<MGLY>+K277*<NO -!>*<RO248>+K278*<NO3>*<MGLY>+2.*K280*<RO2T>*<RO248>+0.28*K281*<O3>*<MVK>+0.41*K -!282*<O3>*<MCR>+0.3*K283*<O>*<MVK>+0.15*K284*<O>*<MCR>+K286*<RO2T>*<RO249>+K288 -!*<NO>*<RO250>+2.*K290*<RO2T>*<RO250>+K292*<HO2>*<RO251>+K295*<HO2>*<RO252>+K29 -!7*<NO>*<RO253>+2.*K298*<HO2>*<RO253>+K299*<RO2T>*<RO253>+K302*<RO2T>*<RO254>+K -!304*<OH>*<RPR1>+K305*<OH>*<RP16>+K307*<NO3>*<RPR1>+K308*<RPR1>+K309*<NO>*<RO25 -!5>+2.*K311*<RO2T>*<RO255>+K312*<OH>*<RPR3>+K313*<NO3>*<RPR3>+K317*<PAN8>+K319* -!<RO2T>*<RO256>+K324*<OH>*<RPR8>+K327*<NO3>*<RPR8>+K329*<RPR8>+K330*<RPR8>+K331 -!*<NO>*<RO257>+2.*K333*<RO2T>*<RO257>+K338*<NO3>*<RP16>+K342*<RO2T>*<RO258>+K34 -!3*<PAN7>+K344*<NO>*<RO230> - PPROD(:,85) = +TPK%K043(:)*PCONC(:,15)*TPK%CH4(:)+TPK%K049(:)*PCONC(:,15)*PCON& -&C(:,16)+TPK%K050(:)*PCONC(:,8)*PCONC(:,16)+TPK%K052(:)*TPK%O(:)*PCONC(:,16)+TP& -&K%CF2*TPK%K053(:)*PCONC(:,15)*PCONC(:,33)+TPK%K054(:)*PCONC(:,15)*PCONC(:,17)+& -&TPK%K055(:)*PCONC(:,8)*PCONC(:,17)+0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+0.2& -&*TPK%K057(:)*TPK%O(:)*PCONC(:,17)+TPK%K058(:)*PCONC(:,15)*PCONC(:,19)+TPK%K059& -&(:)*PCONC(:,29)+TPK%K060(:)*PCONC(:,15)*PCONC(:,29)+TPK%K061(:)*PCONC(:,8)*PCO& -&NC(:,29)+TPK%K062(:)*PCONC(:,15)*PCONC(:,30)+2.*TPK%K063(:)*PCONC(:,30)+TPK%K0& -&64(:)*PCONC(:,15)*PCONC(:,35)+TPK%K065(:)*PCONC(:,8)*PCONC(:,35)+0.366*TPK%K06& -&6(:)*PCONC(:,3)*PCONC(:,35)+TPK%K068(:)*PCONC(:,15)*PCONC(:,38)+TPK%K069(:)*PC& -&ONC(:,15)*PCONC(:,34)+TPK%K070(:)*PCONC(:,15)*PCONC(:,31)+2.*TPK%K071(:)*PCONC& -&(:,31)+0.1*TPK%K073(:)*PCONC(:,15)*PCONC(:,24)+TPK%K074(:)*PCONC(:,15)*PCONC(:& -&,18)+TPK%K075(:)*PCONC(:,8)*PCONC(:,18)+0.28*TPK%K076(:)*PCONC(:,3)*PCONC(:,18& -&)+0.2*TPK%K077(:)*TPK%O(:)*PCONC(:,18)+TPK%K078(:)*PCONC(:,15)*PCONC(:,20)+0.0& -&6*TPK%K079(:)*PCONC(:,15)*PCONC(:,23)+TPK%CF45*TPK%K082(:)*PCONC(:,15)*PCONC(:& -&,25)+0.1*TPK%K083(:)*PCONC(:,15)*PCONC(:,26)+TPK%K084(:)*PCONC(:,15)*PCONC(:,3& -&6)+TPK%K085(:)*PCONC(:,8)*PCONC(:,36)+0.445*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)& -&+TPK%K088(:)*PCONC(:,15)*PCONC(:,37)+TPK%K089(:)*PCONC(:,8)*PCONC(:,37)+0.89*T& -&PK%K090(:)*PCONC(:,3)*PCONC(:,37)+0.1*TPK%K092(:)*PCONC(:,15)*PCONC(:,27)+TPK%& -&K093(:)*PCONC(:,15)*PCONC(:,21)+TPK%K096(:)*PCONC(:,85)*PCONC(:,85)+TPK%K097(:& -&)*TPK%RAD2(:)+TPK%K098(:)*TPK%RAD3(:)+TPK%K099(:)*TPK%RAD4(:)+TPK%K100(:)*TPK%& -&RAD5(:)+TPK%K101(:)*TPK%RAD6(:)+TPK%K102(:)*TPK%RAD7(:)+TPK%K111(:)*PCONC(:,85& -&)*PCONC(:,86)+TPK%K114(:)*PCONC(:,85)*TPK%RO22(:)+TPK%K117(:)*PCONC(:,85)*TPK%& -&RO23(:)+TPK%K120(:)*PCONC(:,85)*TPK%RO24(:)+TPK%K123(:)*PCONC(:,85)*PCONC(:,87& -&)+TPK%K125(:)*PCONC(:,1)*TPK%RO26(:)+TPK%K135(:)*PCONC(:,77)+TPK%K136(:)*PCONC& -&(:,78)+TPK%K137(:)*PCONC(:,79)+TPK%K138(:)*PCONC(:,84)+1.0000000*TPK%K139(:)*P& -&CONC(:,76)+TPK%K140(:)*PCONC(:,81)+TPK%K141(:)*PCONC(:,80)+2.*TPK%K143(:)*PCON& -&C(:,85)*TPK%RO26(:)+TPK%K144(:)*PCONC(:,1)*TPK%RO27(:)+2.*TPK%K145(:)*PCONC(:,& -&85)*TPK%RO27(:)+TPK%K146(:)*PCONC(:,10)*TPK%RO27(:)+TPK%K147(:)*PCONC(:,1)*TPK& -&%RO28(:)+2.*TPK%K149(:)*PCONC(:,85)*TPK%RO28(:)+TPK%K151(:)*PCONC(:,85)*TPK%RO& -&29(:)+TPK%K154(:)*PCONC(:,85)*TPK%RO210(:)+TPK%K157(:)*PCONC(:,85)*TPK%RO211(:& -&)+TPK%K160(:)*PCONC(:,85)*TPK%RO212(:)+TPK%K162(:)*PCONC(:,1)*TPK%RO213(:)+2.*& -&TPK%K163(:)*PCONC(:,85)*TPK%RO213(:)+TPK%K164(:)*PCONC(:,10)*TPK%RO213(:)+TPK%& -&K165(:)*PCONC(:,1)*TPK%RO239(:)+2.*TPK%K167(:)*PCONC(:,85)*TPK%RO239(:)+TPK%CF& -&8*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:)+2.*TPK%K169(:)*PCONC(:,85)*TPK%RO214(:)+& -&TPK%K170(:)*PCONC(:,10)*TPK%RO214(:)+TPK%K172(:)*PCONC(:,85)*TPK%RO215(:)+TPK%& -&K174(:)*PCONC(:,1)*TPK%RO216(:)+2.*TPK%K175(:)*PCONC(:,85)*TPK%RO216(:)+TPK%K1& -&76(:)*PCONC(:,10)*TPK%RO216(:)+TPK%K178(:)*PCONC(:,85)*TPK%RO217(:)+TPK%K181(:& -&)*PCONC(:,85)*TPK%RO218(:)+TPK%K184(:)*PCONC(:,85)*TPK%RO219(:)+TPK%CF18*TPK%K& -&186(:)*PCONC(:,1)*TPK%RO220(:)+2.*TPK%K187(:)*PCONC(:,85)*TPK%RO220(:)+TPK%K18& -&8(:)*PCONC(:,10)*TPK%RO220(:)+TPK%K190(:)*PCONC(:,85)*TPK%RO221(:)+TPK%K193(:)& -&*PCONC(:,85)*TPK%RO222(:)+TPK%K196(:)*PCONC(:,85)*TPK%RO223(:)+TPK%K199(:)*PCO& -&NC(:,85)*TPK%RO224(:)+TPK%K202(:)*PCONC(:,85)*TPK%RO225(:)+TPK%K204(:)*PCONC(:& -&,1)*TPK%RO226(:)+2.*TPK%K205(:)*PCONC(:,85)*TPK%RO226(:)+TPK%K206(:)*PCONC(:,1& -&0)*TPK%RO226(:)+TPK%K208(:)*PCONC(:,85)*TPK%RO227(:)+TPK%K211(:)*PCONC(:,85)*T& -&PK%RO228(:)+TPK%CF30*TPK%K213(:)*PCONC(:,1)*TPK%RO229(:)+2.*TPK%K214(:)*PCONC(& -&:,85)*TPK%RO229(:)+TPK%K215(:)*PCONC(:,10)*TPK%RO229(:)+TPK%K216(:)*PCONC(:,1)& -&*TPK%RO240(:)+2.*TPK%K217(:)*PCONC(:,85)*TPK%RO240(:)+TPK%K218(:)*PCONC(:,10)*& -&TPK%RO240(:)+2.*TPK%K219(:)*PCONC(:,85)*TPK%RO230(:)+TPK%K220(:)*PCONC(:,10)*T& -&PK%RO230(:)+TPK%K222(:)*PCONC(:,85)*TPK%RO231(:)+TPK%CF34*TPK%K224(:)*PCONC(:,& -&1)*TPK%RO232(:)+2.*TPK%K225(:)*PCONC(:,85)*TPK%RO232(:)+TPK%K226(:)*PCONC(:,10& -&)*TPK%RO232(:)+TPK%K228(:)*PCONC(:,85)*TPK%RO241(:)+TPK%K230(:)*TPK%RO233(:)+T& -&PK%K232(:)*PCONC(:,85)*TPK%RO233(:)+TPK%K235(:)*PCONC(:,85)*TPK%RO242(:)+TPK%K& -&237(:)*TPK%RO234(:)+TPK%K239(:)*PCONC(:,85)*TPK%RO234(:)+TPK%K242(:)*PCONC(:,8& -&5)*TPK%RO243(:)+TPK%K244(:)*TPK%RO235(:)+TPK%K246(:)*PCONC(:,85)*TPK%RO235(:)+& -&TPK%K249(:)*PCONC(:,85)*TPK%RO244(:)+TPK%K251(:)*TPK%RO236(:)+TPK%K253(:)*PCON& -&C(:,85)*TPK%RO236(:)+TPK%K256(:)*PCONC(:,85)*TPK%RO245(:)+TPK%K258(:)*TPK%RO23& -&7(:)+TPK%K260(:)*PCONC(:,85)*TPK%RO237(:)+TPK%K263(:)*PCONC(:,85)*TPK%RO246(:)& -&+TPK%K265(:)*TPK%RO238(:)+TPK%K267(:)*PCONC(:,85)*TPK%RO238(:)+TPK%K270(:)*PCO& -&NC(:,85)*TPK%RO247(:)+TPK%K272(:)*PCONC(:,15)*PCONC(:,39)+TPK%K273(:)*PCONC(:,& -&15)*PCONC(:,40)+TPK%K274(:)*PCONC(:,15)*PCONC(:,41)+TPK%K275(:)*PCONC(:,8)*PCO& -&NC(:,40)+TPK%K276(:)*PCONC(:,41)+TPK%K277(:)*PCONC(:,1)*TPK%RO248(:)+TPK%K278(& -&:)*PCONC(:,8)*PCONC(:,41)+2.*TPK%K280(:)*PCONC(:,85)*TPK%RO248(:)+0.28*TPK%K28& -&1(:)*PCONC(:,3)*PCONC(:,39)+0.41*TPK%K282(:)*PCONC(:,3)*PCONC(:,40)+0.3*TPK%K2& -&83(:)*TPK%O(:)*PCONC(:,39)+0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40)+TPK%K286(:)*P& -&CONC(:,85)*TPK%RO249(:)+TPK%K288(:)*PCONC(:,1)*TPK%RO250(:)+2.*TPK%K290(:)*PCO& -&NC(:,85)*TPK%RO250(:)+TPK%K292(:)*PCONC(:,10)*TPK%RO251(:)+TPK%K295(:)*PCONC(:& -&,10)*TPK%RO252(:)+TPK%K297(:)*PCONC(:,1)*TPK%RO253(:)+2.*TPK%K298(:)*PCONC(:,1& -&0)*TPK%RO253(:)+TPK%K299(:)*PCONC(:,85)*TPK%RO253(:)+TPK%K302(:)*PCONC(:,85)*T& -&PK%RO254(:)+TPK%K304(:)*PCONC(:,15)*PCONC(:,69)+TPK%K305(:)*PCONC(:,15)*PCONC(& -&:,74)+TPK%K307(:)*PCONC(:,8)*PCONC(:,69)+TPK%K308(:)*PCONC(:,69)+TPK%K309(:)*P& -&CONC(:,1)*TPK%RO255(:)+2.*TPK%K311(:)*PCONC(:,85)*TPK%RO255(:)+TPK%K312(:)*PCO& -&NC(:,15)*PCONC(:,57)+TPK%K313(:)*PCONC(:,8)*PCONC(:,57)+TPK%K317(:)*PCONC(:,83& -&)+TPK%K319(:)*PCONC(:,85)*TPK%RO256(:)+TPK%K324(:)*PCONC(:,15)*PCONC(:,71)+TPK& -&%K327(:)*PCONC(:,8)*PCONC(:,71)+TPK%K329(:)*PCONC(:,71)+TPK%K330(:)*PCONC(:,71& -&)+TPK%K331(:)*PCONC(:,1)*TPK%RO257(:)+2.*TPK%K333(:)*PCONC(:,85)*TPK%RO257(:)+& -&TPK%K338(:)*PCONC(:,8)*PCONC(:,74)+TPK%K342(:)*PCONC(:,85)*TPK%RO258(:)+TPK%K3& -&43(:)*PCONC(:,82)+TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) -!PLOSS(RO2T) = +K094*<HO2>+K095*<NO>+K096*<RO2T>+K096*<RO2T>+K111*<RO21>+K114*< -!RO22>+K117*<RO23>+K120*<RO24>+K123*<RO25>+K143*<RO26>+K145*<RO27>+K149*<RO28>+ -!K151*<RO29>+K154*<RO210>+K157*<RO211>+K160*<RO212>+K163*<RO213>+K167*<RO239>+K -!169*<RO214>+K172*<RO215>+K175*<RO216>+K178*<RO217>+K181*<RO218>+K184*<RO219>+K -!187*<RO220>+K190*<RO221>+K193*<RO222>+K196*<RO223>+K199*<RO224>+K202*<RO225>+K -!205*<RO226>+K208*<RO227>+K211*<RO228>+K214*<RO229>+K217*<RO240>+K219*<RO230>+K -!222*<RO231>+K225*<RO232>+K228*<RO241>+K232*<RO233>+K235*<RO242>+K239*<RO234>+K -!242*<RO243>+K246*<RO235>+K249*<RO244>+K253*<RO236>+K256*<RO245>+K260*<RO237>+K -!263*<RO246>+K267*<RO238>+K270*<RO247>+K280*<RO248>+K286*<RO249>+K290*<RO250>+K -!293*<RO251>+K296*<RO252>+K299*<RO253>+K302*<RO254>+K311*<RO255>+K319*<RO256>+K -!333*<RO257>+K342*<RO258> - PLOSS(:,85) = +TPK%K094(:)*PCONC(:,10)+TPK%K095(:)*PCONC(:,1)+TPK%K096(:)*PCON& -&C(:,85)+TPK%K096(:)*PCONC(:,85)+TPK%K111(:)*PCONC(:,86)+TPK%K114(:)*TPK%RO22(:& -&)+TPK%K117(:)*TPK%RO23(:)+TPK%K120(:)*TPK%RO24(:)+TPK%K123(:)*PCONC(:,87)+TPK%& -&K143(:)*TPK%RO26(:)+TPK%K145(:)*TPK%RO27(:)+TPK%K149(:)*TPK%RO28(:)+TPK%K151(:& -&)*TPK%RO29(:)+TPK%K154(:)*TPK%RO210(:)+TPK%K157(:)*TPK%RO211(:)+TPK%K160(:)*TP& -&K%RO212(:)+TPK%K163(:)*TPK%RO213(:)+TPK%K167(:)*TPK%RO239(:)+TPK%K169(:)*TPK%R& -&O214(:)+TPK%K172(:)*TPK%RO215(:)+TPK%K175(:)*TPK%RO216(:)+TPK%K178(:)*TPK%RO21& -&7(:)+TPK%K181(:)*TPK%RO218(:)+TPK%K184(:)*TPK%RO219(:)+TPK%K187(:)*TPK%RO220(:& -&)+TPK%K190(:)*TPK%RO221(:)+TPK%K193(:)*TPK%RO222(:)+TPK%K196(:)*TPK%RO223(:)+T& -&PK%K199(:)*TPK%RO224(:)+TPK%K202(:)*TPK%RO225(:)+TPK%K205(:)*TPK%RO226(:)+TPK%& -&K208(:)*TPK%RO227(:)+TPK%K211(:)*TPK%RO228(:)+TPK%K214(:)*TPK%RO229(:)+TPK%K21& -&7(:)*TPK%RO240(:)+TPK%K219(:)*TPK%RO230(:)+TPK%K222(:)*TPK%RO231(:)+TPK%K225(:& -&)*TPK%RO232(:)+TPK%K228(:)*TPK%RO241(:)+TPK%K232(:)*TPK%RO233(:)+TPK%K235(:)*T& -&PK%RO242(:)+TPK%K239(:)*TPK%RO234(:)+TPK%K242(:)*TPK%RO243(:)+TPK%K246(:)*TPK%& -&RO235(:)+TPK%K249(:)*TPK%RO244(:)+TPK%K253(:)*TPK%RO236(:)+TPK%K256(:)*TPK%RO2& -&45(:)+TPK%K260(:)*TPK%RO237(:)+TPK%K263(:)*TPK%RO246(:)+TPK%K267(:)*TPK%RO238(& -&:)+TPK%K270(:)*TPK%RO247(:)+TPK%K280(:)*TPK%RO248(:)+TPK%K286(:)*TPK%RO249(:)+& -&TPK%K290(:)*TPK%RO250(:)+TPK%K293(:)*TPK%RO251(:)+TPK%K296(:)*TPK%RO252(:)+TPK& -&%K299(:)*TPK%RO253(:)+TPK%K302(:)*TPK%RO254(:)+TPK%K311(:)*TPK%RO255(:)+TPK%K3& -&19(:)*TPK%RO256(:)+TPK%K333(:)*TPK%RO257(:)+TPK%K342(:)*TPK%RO258(:) -! -!PPROD(RO21) = +K043*<OH>*<CH4>+0.6*K052*<O>*<ETHE>+K147*<NO>*<RO28>+K149*<RO2T -!>*<RO28> - PPROD(:,86) = +TPK%K043(:)*PCONC(:,15)*TPK%CH4(:)+0.6*TPK%K052(:)*TPK%O(:)*PCO& -&NC(:,16)+TPK%K147(:)*PCONC(:,1)*TPK%RO28(:)+TPK%K149(:)*PCONC(:,85)*TPK%RO28(:& -&) -!PLOSS(RO21) = +K110*<NO>+K111*<RO2T>+K112*<HO2> - PLOSS(:,86) = +TPK%K110(:)*PCONC(:,1)+TPK%K111(:)*PCONC(:,85)+TPK%K112(:)*PCON& -&C(:,10) -! -!PPROD(RO25) = +0.28*K056*<O3>*<OLEL>+0.1*K057*<O>*<OLEL>+K058*<OH>*<ALKL>+K059 -!*<ALD2>+K063*<KETL>+K071*<KETH>+K125*<NO>*<RO26>+K143*<RO2T>*<RO26> - PPROD(:,87) = +0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+0.1*TPK%K057(:)*TPK%O(:& -&)*PCONC(:,17)+TPK%K058(:)*PCONC(:,15)*PCONC(:,19)+TPK%K059(:)*PCONC(:,29)+TPK%& -&K063(:)*PCONC(:,30)+TPK%K071(:)*PCONC(:,31)+TPK%K125(:)*PCONC(:,1)*TPK%RO26(:)& -&+TPK%K143(:)*PCONC(:,85)*TPK%RO26(:) -!PLOSS(RO25) = +K122*<NO>+K123*<RO2T>+K124*<HO2> - PLOSS(:,87) = +TPK%K122(:)*PCONC(:,1)+TPK%K123(:)*PCONC(:,85)+TPK%K124(:)*PCON& -&C(:,10) -! -RETURN -END SUBROUTINE SUB8 -! -END SUBROUTINE CH_PRODLOSS_GAZ -! -! -!======================================================================== -! !! ########################## MODULE MODI_CH_PRODLOSS_AQ !! ########################## @@ -9261,317 +3993,15 @@ INTEGER, INTENT(IN) :: KMI TYPE(CCSTYPE), POINTER :: TPK TPK=>TACCS(KMI) ! /BEGIN_CODE/ -TPK%OSD = ( +TPK%K016*PCONC(:,JP_O3) ) / & - ( +TPK%K017*TPK%H2O+TPK%K018A*TPK%N2(:)+TPK%K018B*TPK%O2(:) ) -! -TPK%O = ( +TPK%K001*PCONC(:,JP_NO2)+TPK%K014*PCONC(:,JP_NO3)+TPK%& -&K015*PCONC(:,JP_O3)+TPK%K018A*TPK%OSD*TPK%N2(:)+TPK%K018B*TPK%OSD*TPK%O2(:) ) / & -( +TPK%K002*TPK%O2(:)+TPK%K003*PCONC(:,JP_NO2)+TPK%K004*PCONC(:,JP_NO2)+TPK%K034*& -PCONC(:,JP_O3)+TPK%K038*PCONC(:,JP_NO)+TPK%K052*PCONC(:,JP_ETHE)+& -&TPK%K057*PCONC(:,JP_OLEL)+TPK%K067*PCONC(:,JP_ISOP)+TPK%K077*PCONC(:,& -&JP_OLEH)+TPK%K087*PCONC(:,JP_BIOL)+TPK%K091*PCONC(:,JP_BIOH)+TPK%K283& -&*PCONC(:,JP_MVK)+TPK%K284*PCONC(:,JP_MCR) ) -! -TPK%RO225 = ( TPK%K085*PCONC(:,JP_BIOL)*PCONC(:,JP_NO3) ) / & -( +TPK%K201*PCONC(:,JP_NO)+TPK%K202*PCONC(:,JP_RO2T)+TPK%K203*PCONC(:,JP_HO2)) -! -TPK%RO228 = ( TPK%K089*PCONC(:,JP_BIOH)*PCONC(:,JP_NO3) ) / & -( +TPK%K210*PCONC(:,JP_NO)+TPK%K211*PCONC(:,JP_RO2T)+TPK%K212*PCONC(:,JP_HO2)) - -! -TPK%RO253 = ( +0.41*TPK%K282*PCONC(:,JP_MCR)*PCONC(:,JP_O3) ) / & -( +TPK%K297*PCONC(:,JP_NO)+TPK%K298*PCONC(:,JP_HO2)+TPK%K299*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO254 = ( +TPK%K140*PCONC(:,JP_PAN6)+TPK%K297*TPK%RO253*& -&PCONC(:,JP_NO)+TPK%K298*TPK%RO253*PCONC(:,JP_HO2)+TPK%K299*& -&TPK%RO253*PCONC(:,JP_RO2T) ) / & -( +TPK%K131*PCONC(:,JP_NO2)+TPK%K300*PCONC(:,JP_NO)+TPK%K301*PCONC(& -&:,JP_HO2)+TPK%K302*PCONC(:,JP_RO2T) ) -! -TPK%RO213 = ( +0.271*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3) ) / & -( +TPK%K162*PCONC(:,JP_NO)+TPK%K163*PCONC(:,JP_RO2T)+TPK%K164*PCONC& -&(:,JP_HO2) ) -! -TPK%RO239 = ( +TPK%K137*PCONC(:,JP_PAN3)+TPK%K162*TPK%RO213*& -&PCONC(:,JP_NO)+TPK%K163*TPK%RO213*PCONC(:,JP_RO2T)+TPK%K164*TPK%RO213*PCONC(:,JP_HO2) ) / & -( +TPK%K128*PCONC(:,JP_NO2)+TPK%K165*PCONC(:,JP_NO)+TPK%K166*PCONC(& -&:,JP_HO2)+TPK%K167*PCONC(:,JP_RO2T) ) -! -TPK%RO248 = ( +TPK%K141*PCONC(:,JP_PAN4)+TPK%K274*PCONC(:,JP_MGLY)*P& -&CONC(:,JP_OH)+TPK%K278*PCONC(:,JP_MGLY)*PCONC(:,JP_NO3) ) / & -( +TPK%K129*PCONC(:,JP_NO2)+TPK%K277*PCONC(:,JP_NO)+TPK%K279*PCONC(& -&:,JP_HO2)+TPK%K280*PCONC(:,JP_RO2T) ) -! -TPK%RO249 = ( +TPK%K272*PCONC(:,JP_MVK)*PCONC(:,JP_OH) ) / & -( +TPK%K285*PCONC(:,JP_NO)+TPK%K286*PCONC(:,JP_RO2T)+TPK%K287*PCONC& -&(:,JP_HO2) ) -! -TPK%RO250 = ( +0.3750353*TPK%K139*PCONC(:,JP_APAN)+TPK%CF46*TPK%K2& -&73*PCONC(:,JP_MCR)*PCONC(:,JP_OH)+TPK%CF46*TPK%K275*PCONC(:,JP_MCR)*PCONC& -&(:,JP_NO3) ) / & -( +TPK%K130*PCONC(:,JP_NO2)+TPK%K288*PCONC(:,JP_NO)+TPK%K289*PCONC(& -&:,JP_HO2)+TPK%K290*PCONC(:,JP_RO2T) ) -! -TPK%RO214 = ( +0.095*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3)+TPK%K1& -&65*TPK%RO239*PCONC(:,JP_NO)+TPK%K167*TPK%RO239*PCONC(:,JP_R& -&O2T)+TPK%K288*TPK%RO250*PCONC(:,JP_NO)+TPK%K290*TPK%RO250& -&*PCONC(:,JP_RO2T) ) / & -( +TPK%K168*PCONC(:,JP_NO)+TPK%K169*PCONC(:,JP_RO2T)+TPK%K170*PCONC& -&(:,JP_HO2) ) -! -TPK%RO251 = ( +TPK%CF47*TPK%K273*PCONC(:,JP_MCR)*PCONC(:,JP_OH) ) / & -( +TPK%K291*PCONC(:,JP_NO)+TPK%K292*PCONC(:,JP_HO2)+TPK%K293*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO252 = ( +TPK%CF47*TPK%K275*PCONC(:,JP_MCR)*PCONC(:,JP_NO3) ) /& -( +TPK%K294*PCONC(:,JP_NO)+TPK%K295*PCONC(:,JP_HO2)+TPK%K296*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO258 = ( +TPK%K138*PCONC(:,JP_PN10)+TPK%K305*PCONC(:,JP_RP16)*P& -&CONC(:,JP_OH)+TPK%K338*PCONC(:,JP_RP16)*PCONC(:,JP_NO3) ) / & -( +TPK%K134*PCONC(:,JP_NO2)+TPK%K340*PCONC(:,JP_NO)+TPK%K341*PCONC(& -&:,JP_HO2)+TPK%K342*PCONC(:,JP_RO2T) ) -! -TPK%RO255 = ( +TPK%K304*PCONC(:,JP_RPR1)*PCONC(:,JP_OH)+TPK%K307*PCO& -&NC(:,JP_RPR1)*PCONC(:,JP_NO3)+TPK%K343*PCONC(:,JP_PAN7) ) / & -( +TPK%K132*PCONC(:,JP_NO2)+TPK%K309*PCONC(:,JP_NO)+TPK%K310*PCONC(& -&:,JP_HO2)+TPK%K311*PCONC(:,JP_RO2T) ) -! -TPK%RO256 = ( +TPK%K312*PCONC(:,JP_RPR3)*PCONC(:,JP_OH)+TPK%K313*PCO& -&NC(:,JP_RPR3)*PCONC(:,JP_NO3)+TPK%K317*PCONC(:,JP_PAN8) ) / & -( +TPK%K315*PCONC(:,JP_NO)+TPK%K316*PCONC(:,JP_NO2)+TPK%K318*PCONC(& -&:,JP_HO2)+TPK%K319*PCONC(:,JP_RO2T) ) -! -TPK%RO257 = ( +0.6249651*TPK%K139*PCONC(:,JP_APAN)+TPK%K324*PCONC(:,& -&JP_RPR8)*PCONC(:,JP_OH)+TPK%K327*PCONC(:,JP_RPR8)*PCONC(:,JP_NO3)+TPK%K3& -&30*PCONC(:,JP_RPR8) ) / & -( +TPK%K133*PCONC(:,JP_NO2)+TPK%K331*PCONC(:,JP_NO)+TPK%K332*PCONC(& -&:,JP_HO2)+TPK%K333*PCONC(:,JP_RO2T) ) -! -TPK%RO29 = ( +0.66*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH)+TPK%K329& -&*PCONC(:,JP_RPR8)+TPK%K331*TPK%RO257*PCONC(:,JP_NO)+TPK%K333*TPK%RO257*& -PCONC(:,JP_RO2T) ) / & -( +TPK%K150*PCONC(:,JP_NO)+TPK%K151*PCONC(:,JP_RO2T)+TPK%K152*PCONC& -&(:,JP_HO2) ) -! -!avoid division by zero in prodloss -WHERE (PCONC(:,JP_NO2)>0.) - TPK%RAD1 = ( +TPK%K072*PCONC(:,JP_AROO)*PCONC(:,JP_NO3) ) / & - ( +TPK%K103*PCONC(:,JP_NO2) ) -! - TPK%RAD8 = ( +TPK%K320*PCONC(:,JP_RPR4)*PCONC(:,JP_NO3) ) / & - ( +TPK%K321*PCONC(:,JP_NO2) ) -ELSEWHERE - TPK%RAD1 = 0. - TPK%RAD8 = 0. -ENDWHERE -! -TPK%RAD2 = ( +0.74*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & -( +TPK%K097+TPK%K104*PCONC(:,JP_NO2) ) -! -TPK%RAD3 = ( +0.74*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & -( +TPK%K098+TPK%K105*PCONC(:,JP_NO2) ) -! -TPK%RAD4 = ( +0.84*TPK%K080*PCONC(:,JP_AROH)*PCONC(:,JP_OH) ) / & -( +TPK%K099+TPK%K106*PCONC(:,JP_NO2) ) -! -TPK%RAD5 = ( +TPK%CF40*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) / & -( +TPK%K100+TPK%K107*PCONC(:,JP_NO2) ) -! -TPK%RAD6 = ( +0.74*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & -( +TPK%K101+TPK%K108*PCONC(:,JP_NO2) ) -! -TPK%RAD7 = ( +0.74*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & -( +TPK%K102+TPK%K109*PCONC(:,JP_NO2) ) -! -TPK%RO22 = ( +TPK%K049*PCONC(:,JP_ETHE)*PCONC(:,JP_OH)+TPK%CF2*TPK& -&%K053*PCONC(:,JP_ETOH)*PCONC(:,JP_OH)+TPK%K054*PCONC(:,JP_OLEL)*PCONC(:,JP_& -&OH)+TPK%K069*PCONC(:,JP_ALCH)*PCONC(:,JP_OH) ) / & -( +TPK%K113*PCONC(:,JP_NO)+TPK%K114*PCONC(:,JP_RO2T)+TPK%K115*PCONC& -&(:,JP_HO2) ) -! -TPK%RO23 = ( +TPK%K050*PCONC(:,JP_ETHE)*PCONC(:,JP_NO3)+TPK%K055*PCO& -&NC(:,JP_OLEL)*PCONC(:,JP_NO3) ) / & -( +TPK%K116*PCONC(:,JP_NO)+TPK%K117*PCONC(:,JP_RO2T)+TPK%K118*PCONC& -&(:,JP_HO2) ) -! -TPK%RO24 = ( +0.4*TPK%K052*PCONC(:,JP_ETHE)*TPK%O+0.1*TPK%K0& -&57*PCONC(:,JP_OLEL)*TPK%O+0.1*TPK%K077*PCONC(:,JP_OLEH)*& -&TPK%O+0.15*TPK%K283*PCONC(:,JP_MVK)*TPK%O ) / & -( +TPK%K119*PCONC(:,JP_NO)+TPK%K120*PCONC(:,JP_RO2T)+TPK%K121*PCONC& -&(:,JP_HO2) ) -! -TPK%RO26 = ( +TPK%K060*PCONC(:,JP_ALD2)*PCONC(:,JP_OH)+TPK%K061*PCON& -&C(:,JP_ALD2)*PCONC(:,JP_NO3)+TPK%K135*PCONC(:,JP_PAN1) ) / & -( +TPK%K125*PCONC(:,JP_NO)+TPK%K126*PCONC(:,JP_NO2)+TPK%K142*PCONC(& -&:,JP_HO2)+TPK%K143*PCONC(:,JP_RO2T) ) -! -TPK%RO27 = ( +TPK%K062*PCONC(:,JP_KETL)*PCONC(:,JP_OH)+TPK%CF8*TPK& -&%K168*TPK%RO214*PCONC(:,JP_NO)+TPK%K169*TPK%RO214*PCONC(:,J& -&P_RO2T)+TPK%K170*TPK%RO214*PCONC(:,JP_HO2)+0.15*TPK%K284*PCONC(:& -&,JP_MCR)*TPK%O ) / & -( +TPK%K144*PCONC(:,JP_NO)+TPK%K145*PCONC(:,JP_RO2T)+TPK%K146*PCONC& -&(:,JP_HO2) ) -! -TPK%RO210 = ( +0.34*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH) ) / & -( +TPK%K153*PCONC(:,JP_NO)+TPK%K154*PCONC(:,JP_RO2T)+TPK%K155*PCONC& -&(:,JP_HO2) ) -! -TPK%RO211 = ( +0.66*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & -( +TPK%K156*PCONC(:,JP_NO)+TPK%K157*PCONC(:,JP_RO2T)+TPK%K158*PCONC& -&(:,JP_HO2) ) -! -TPK%RO212 = ( +0.34*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & -( +TPK%K159*PCONC(:,JP_NO)+TPK%K160*PCONC(:,JP_RO2T)+TPK%K161*PCONC& -&(:,JP_HO2) ) -! -TPK%RO215 = ( +TPK%K068*PCONC(:,JP_MTBE)*PCONC(:,JP_OH) ) / & -( +TPK%K171*PCONC(:,JP_NO)+TPK%K172*PCONC(:,JP_RO2T)+TPK%K173*PCONC& -&(:,JP_HO2) ) -! -TPK%RO216 = ( +TPK%K070*PCONC(:,JP_KETH)*PCONC(:,JP_OH) ) / & -( +TPK%K174*PCONC(:,JP_NO)+TPK%K175*PCONC(:,JP_RO2T)+TPK%K176*PCONC& -&(:,JP_HO2) ) -! -TPK%RO217 = ( +0.1*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & -( +TPK%K177*PCONC(:,JP_NO)+TPK%K178*PCONC(:,JP_RO2T)+TPK%K179*PCONC& -&(:,JP_HO2) ) -! -TPK%RO220 = ( +0.28*TPK%K076*PCONC(:,JP_OLEH)*PCONC(:,JP_O3)+0.1*TPK& -&%K077*PCONC(:,JP_OLEH)*TPK%O+TPK%K078*PCONC(:,JP_ALKM)*PCONC(:,JP_O& -&H)+TPK%K308*PCONC(:,JP_RPR1)+TPK%K309*TPK%RO255*PCONC(:,JP_NO)+T& -&PK%K311*TPK%RO255*PCONC(:,JP_RO2T) ) / & -( +TPK%K186*PCONC(:,JP_NO)+TPK%K187*PCONC(:,JP_RO2T)+TPK%K188*PCONC& -&(:,JP_HO2) ) -! -TPK%RO218 = ( +TPK%K074*PCONC(:,JP_OLEH)*PCONC(:,JP_OH)+TPK%CF18*TPK%K186*& -TPK%RO220*PCONC(:,JP_NO)+TPK%K187*TPK%RO220*PCONC(:& -&,JP_RO2T)+TPK%K188*TPK%RO220*PCONC(:,JP_HO2) ) / & -( +TPK%K180*PCONC(:,JP_NO)+TPK%K181*PCONC(:,JP_RO2T)+TPK%K182*PCONC& -&(:,JP_HO2) ) -! -TPK%RO219 = ( +TPK%K075*PCONC(:,JP_OLEH)*PCONC(:,JP_NO3) ) / & -( +TPK%K183*PCONC(:,JP_NO)+TPK%K184*PCONC(:,JP_RO2T)+TPK%K185*PCONC& -&(:,JP_HO2) ) -! -TPK%RO221 = ( +0.1*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & -( +TPK%K189*PCONC(:,JP_NO)+TPK%K190*PCONC(:,JP_RO2T)+TPK%K191*PCONC& -&(:,JP_HO2) ) -! -TPK%RO222 = ( +TPK%CF45*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) /& -& & -( +TPK%K192*PCONC(:,JP_NO)+TPK%K193*PCONC(:,JP_RO2T)+TPK%K194*PCONC& -&(:,JP_HO2) ) -! -TPK%RO223 = ( +0.1*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & -( +TPK%K195*PCONC(:,JP_NO)+TPK%K196*PCONC(:,JP_RO2T)+TPK%K197*PCONC& -&(:,JP_HO2) ) -! -TPK%RO224 = ( +TPK%K084*PCONC(:,JP_BIOL)*PCONC(:,JP_OH) ) / & -( +TPK%K198*PCONC(:,JP_NO)+TPK%K199*PCONC(:,JP_RO2T)+TPK%K200*PCONC& -&(:,JP_HO2) ) -! -TPK%RO226 = ( +0.445*TPK%K086*PCONC(:,JP_BIOL)*PCONC(:,JP_O3) ) / & -( +TPK%K204*PCONC(:,JP_NO)+TPK%K205*PCONC(:,JP_RO2T)+TPK%K206*PCONC& -&(:,JP_HO2) ) -! -TPK%RO227 = ( +TPK%K088*PCONC(:,JP_BIOH)*PCONC(:,JP_OH) ) / & -( +TPK%K207*PCONC(:,JP_NO)+TPK%K208*PCONC(:,JP_RO2T)+TPK%K209*PCONC& -&(:,JP_HO2) ) -! -TPK%RO229 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & -( +TPK%K213*PCONC(:,JP_NO)+TPK%K214*PCONC(:,JP_RO2T)+TPK%K215*PCONC& -&(:,JP_HO2) ) -! -TPK%RO230 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & -( +TPK%K219*PCONC(:,JP_RO2T)+TPK%K220*PCONC(:,JP_HO2)+TPK%K344*PCON& -&C(:,JP_NO) ) -! -TPK%RO231 = ( +0.1*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & -( +TPK%K221*PCONC(:,JP_NO)+TPK%K222*PCONC(:,JP_RO2T)+TPK%K223*PCONC& -&(:,JP_HO2) ) -! -TPK%RO232 = ( +TPK%K093*PCONC(:,JP_ALKH)*PCONC(:,JP_OH) ) / & -( +TPK%K224*PCONC(:,JP_NO)+TPK%K225*PCONC(:,JP_RO2T)+TPK%K226*PCONC& -&(:,JP_HO2) ) -! -TPK%RO233 = ( +TPK%K097*TPK%RAD2 ) / & -( +TPK%K230+TPK%K231*PCONC(:,JP_NO)+TPK%K232*PCONC(:,JP_RO2T)+TPK%K233*& -PCONC(:,JP_HO2) ) -! -TPK%RO234 = ( +TPK%K098*TPK%RAD3 ) / & -( +TPK%K237+TPK%K238*PCONC(:,JP_NO)+TPK%K239*PCONC(:,JP_RO2T)+TPK%K240*& -PCONC(:,JP_HO2) ) -! -TPK%RO235 = ( +TPK%K099*TPK%RAD4 ) / & -( +TPK%K244+TPK%K245*PCONC(:,JP_NO)+TPK%K246*PCONC(:,JP_RO2T)+TPK%K247*& -PCONC(:,JP_HO2) ) -! -TPK%RO236 = ( +TPK%K100*TPK%RAD5 ) / & -( +TPK%K251+TPK%K252*PCONC(:,JP_NO)+TPK%K253*PCONC(:,JP_RO2T)+TPK%K254*& -PCONC(:,JP_HO2) ) -! -TPK%RO237 = ( +TPK%K101*TPK%RAD6 ) / & -( +TPK%K258+TPK%K259*PCONC(:,JP_NO)+TPK%K260*PCONC(:,JP_RO2T)+TPK%K261*& -PCONC(:,JP_HO2) ) -! -TPK%RO238 = ( +TPK%K102*TPK%RAD7 ) / & -( +TPK%K265+TPK%K266*PCONC(:,JP_NO)+TPK%K267*PCONC(:,JP_RO2T)+TPK%K268*& -PCONC(:,JP_HO2) ) -! -TPK%RO240 = ( +TPK%CF30*TPK%K213*TPK%RO229*PCONC(:,JP_NO)+TPK%K214*& -TPK%RO229*PCONC(:,JP_RO2T)+TPK%K215*TPK%RO229*PCON& -&C(:,JP_HO2) ) / & -( +TPK%K216*PCONC(:,JP_NO)+TPK%K217*PCONC(:,JP_RO2T)+TPK%K218*PCONC& -&(:,JP_HO2) ) -! -TPK%RO241 = ( +TPK%CF34*TPK%K224*TPK%RO232*PCONC(:,JP_NO)+TPK%K225*& -TPK%RO232*PCONC(:,JP_RO2T)+TPK%K226*TPK%RO232*PCON& -&C(:,JP_HO2) ) / & -( +TPK%K227*PCONC(:,JP_NO)+TPK%K228*PCONC(:,JP_RO2T)+TPK%K229*PCONC& -&(:,JP_HO2) ) -! -TPK%RO242 = ( +TPK%K230*TPK%RO233 ) / & -( +TPK%K234*PCONC(:,JP_NO)+TPK%K235*PCONC(:,JP_RO2T)+TPK%K236*PCONC& -&(:,JP_HO2) ) -! -TPK%RO243 = ( +TPK%K237*TPK%RO234 ) / & -( +TPK%K241*PCONC(:,JP_NO)+TPK%K242*PCONC(:,JP_RO2T)+TPK%K243*PCONC& -&(:,JP_HO2) ) -! -TPK%RO244 = ( +TPK%K244*TPK%RO235 ) / & -( +TPK%K248*PCONC(:,JP_NO)+TPK%K249*PCONC(:,JP_RO2T)+TPK%K250*PCONC& -&(:,JP_HO2) ) -! -TPK%RO245 = ( +TPK%K251*TPK%RO236 ) / & -( +TPK%K255*PCONC(:,JP_NO)+TPK%K256*PCONC(:,JP_RO2T)+TPK%K257*PCONC& -&(:,JP_HO2) ) -! -TPK%RO246 = ( +TPK%K258*TPK%RO237 ) / & -( +TPK%K262*PCONC(:,JP_NO)+TPK%K263*PCONC(:,JP_RO2T)+TPK%K264*PCONC& -&(:,JP_HO2) ) -! -TPK%RO247 = ( +TPK%K265*TPK%RO238 ) / & -( +TPK%K269*PCONC(:,JP_NO)+TPK%K270*PCONC(:,JP_RO2T)+TPK%K271*PCONC& -&(:,JP_HO2) ) -! -TPK%RO28 = ( +TPK%K063*PCONC(:,JP_KETL)+TPK%K071*PCONC(:,JP_KETH)+TP& -&K%K136*PCONC(:,JP_PAN2)+TPK%K144*TPK%RO27*PCONC(:,JP_NO)+TPK%& -&K145*TPK%RO27*PCONC(:,JP_RO2T)+TPK%K146*TPK%RO27*PCONC(:,JP& -&_HO2)+TPK%K174*TPK%RO216*PCONC(:,JP_NO)+TPK%K175*TPK%RO21& -&6*PCONC(:,JP_RO2T)+TPK%K176*TPK%RO216*PCONC(:,JP_HO2)+TPK%K204*& -&TPK%RO226*PCONC(:,JP_NO)+TPK%K205*TPK%RO226*PCONC(:,JP_RO2T)& -&+TPK%K206*TPK%RO226*PCONC(:,JP_HO2)+TPK%K216*TPK%RO240*& -&PCONC(:,JP_NO)+TPK%K217*TPK%RO240*PCONC(:,JP_RO2T)+TPK%K218*& -&TPK%RO240*PCONC(:,JP_HO2)+TPK%K219*TPK%RO230*PCONC(:,JP_RO2T)+T& -&PK%K220*TPK%RO230*PCONC(:,JP_HO2)+TPK%K276*PCONC(:,JP_MGLY)+TPK%K277*& -TPK%RO248*PCONC(:,JP_NO)+TPK%K280*TPK%RO248*PCONC(:& -&,JP_RO2T)+0.28*TPK%K281*PCONC(:,JP_MVK)*PCONC(:,JP_O3)+0.15*TPK%K283*PCO& -&NC(:,JP_MVK)*TPK%O+TPK%K344*TPK%RO230*PCONC(:,JP_NO) ) / & -( +TPK%K127*PCONC(:,JP_NO2)+TPK%K147*PCONC(:,JP_NO)+TPK%K148*PCONC(& -&:,JP_HO2)+TPK%K149*PCONC(:,JP_RO2T) ) -! +TPK%O1D(:)=(TPK%K002(:)*PCONC(:,JP_O3))/(TPK%K020(:)*TPK%N2(:)+TPK%K021(:)*TPK%O2(:)+& + &TPK%K022(:)*TPK%H2O(:)) +TPK%O3P(:)=(TPK%K001(:)*PCONC(:,JP_NO2)+TPK%K003(:)*PCONC(:,JP_O3)+TPK%K008(:)*PCONC(:,JP_NO3)+& + &TPK%K020(:)*TPK%O1D(:)*TPK%N2(:)+TPK%K021(:)*TPK%O1D(:)*TPK%O2(:)+& + &0.00000*TPK%K079(:)*PCONC(:,JP_ALKE)*PCONC(:,JP_O3)+& + &0.09000*TPK%K080(:)*PCONC(:,JP_BIO)*PCONC(:,JP_O3))/& + &(TPK%K018(:)*TPK%O2(:)+TPK%K019(:)*PCONC(:,JP_O3)+TPK%K029(:)*PCONC(:,JP_NO)+& + &TPK%K030(:)*PCONC(:,JP_NO2)+TPK%K031(:)*PCONC(:,JP_NO2)+TPK%K054(:)*PCONC(:,JP_BIO)+& + &TPK%K055(:)*PCONC(:,JP_CARBO)) ! /END_CODE/ CALL SUB0 CALL SUB1 @@ -9583,13 +4013,6 @@ CALL SUB6 CALL SUB7 CALL SUB8 CALL SUB9 -CALL SUB10 -CALL SUB11 -CALL SUB12 -CALL SUB13 -CALL SUB14 -CALL SUB15 -CALL SUB16 CONTAINS @@ -9598,350 +4021,132 @@ SUBROUTINE SUB0 !Indices 1 a 10 ! ! -!PPROD(NO) = +K001*<NO2>+K003*<NO2>*<O>+K012*<NO3>*<NO2>+K013*<NO3>+0.9*K020*<H -!ONO>+K095*<NO>*<RO2T>+KTC34*<WC_NO>+KTR34*<WR_NO> - PPROD(:,1) = +TPK%K001(:)*PCONC(:,2)+TPK%K003(:)*PCONC(:,2)*TPK%O(:)+TPK%K012(& -&:)*PCONC(:,8)*PCONC(:,2)+TPK%K013(:)*PCONC(:,8)+0.9*TPK%K020(:)*PCONC(:,4)+TPK& -&%K095(:)*PCONC(:,1)*PCONC(:,85)+TPK%KTC34(:)*PCONC(:,90)+TPK%KTR34(:)*PCONC(:,& -&127) -!PLOSS(NO) = +K005*<O3>+K007*<NO3>+K008*<NO>+K008*<NO>+K019*<OH>+K026*<HO2>+K03 -!8*<O>+K095*<RO2T>+K110*<RO21>+K113*<RO22>+K116*<RO23>+K119*<RO24>+K122*<RO25>+ -!K125*<RO26>+K144*<RO27>+K147*<RO28>+K150*<RO29>+K153*<RO210>+K156*<RO211>+K159 -!*<RO212>+K162*<RO213>+K165*<RO239>+K168*<RO214>+K171*<RO215>+K174*<RO216>+K177 -!*<RO217>+K180*<RO218>+K183*<RO219>+K186*<RO220>+K189*<RO221>+K192*<RO222>+K195 -!*<RO223>+K198*<RO224>+K201*<RO225>+K204*<RO226>+K207*<RO227>+K210*<RO228>+K213 -!*<RO229>+K216*<RO240>+K221*<RO231>+K224*<RO232>+K227*<RO241>+K231*<RO233>+K234 -!*<RO242>+K238*<RO234>+K241*<RO243>+K245*<RO235>+K248*<RO244>+K252*<RO236>+K255 -!*<RO245>+K259*<RO237>+K262*<RO246>+K266*<RO238>+K269*<RO247>+K277*<RO248>+K285 -!*<RO249>+K288*<RO250>+K291*<RO251>+K294*<RO252>+K297*<RO253>+K300*<RO254>+K309 -!*<RO255>+K315*<RO256>+K331*<RO257>+K340*<RO258>+K344*<RO230>+KTC3+KTR3 - PLOSS(:,1) = +TPK%K005(:)*PCONC(:,3)+TPK%K007(:)*PCONC(:,8)+TPK%K008(:)*PCONC(& -&:,1)+TPK%K008(:)*PCONC(:,1)+TPK%K019(:)*PCONC(:,15)+TPK%K026(:)*PCONC(:,10)+TP& -&K%K038(:)*TPK%O(:)+TPK%K095(:)*PCONC(:,85)+TPK%K110(:)*PCONC(:,86)+TPK%K113(:)& -&*TPK%RO22(:)+TPK%K116(:)*TPK%RO23(:)+TPK%K119(:)*TPK%RO24(:)+TPK%K122(:)*PCONC& -&(:,87)+TPK%K125(:)*TPK%RO26(:)+TPK%K144(:)*TPK%RO27(:)+TPK%K147(:)*TPK%RO28(:)& -&+TPK%K150(:)*TPK%RO29(:)+TPK%K153(:)*TPK%RO210(:)+TPK%K156(:)*TPK%RO211(:)+TPK& -&%K159(:)*TPK%RO212(:)+TPK%K162(:)*TPK%RO213(:)+TPK%K165(:)*TPK%RO239(:)+TPK%K1& -&68(:)*TPK%RO214(:)+TPK%K171(:)*TPK%RO215(:)+TPK%K174(:)*TPK%RO216(:)+TPK%K177(& -&:)*TPK%RO217(:)+TPK%K180(:)*TPK%RO218(:)+TPK%K183(:)*TPK%RO219(:)+TPK%K186(:)*& -&TPK%RO220(:)+TPK%K189(:)*TPK%RO221(:)+TPK%K192(:)*TPK%RO222(:)+TPK%K195(:)*TPK& -&%RO223(:)+TPK%K198(:)*TPK%RO224(:)+TPK%K201(:)*TPK%RO225(:)+TPK%K204(:)*TPK%RO& -&226(:)+TPK%K207(:)*TPK%RO227(:)+TPK%K210(:)*TPK%RO228(:)+TPK%K213(:)*TPK%RO229& -&(:)+TPK%K216(:)*TPK%RO240(:)+TPK%K221(:)*TPK%RO231(:)+TPK%K224(:)*TPK%RO232(:)& -&+TPK%K227(:)*TPK%RO241(:)+TPK%K231(:)*TPK%RO233(:)+TPK%K234(:)*TPK%RO242(:)+TP& -&K%K238(:)*TPK%RO234(:)+TPK%K241(:)*TPK%RO243(:)+TPK%K245(:)*TPK%RO235(:)+TPK%K& -&248(:)*TPK%RO244(:)+TPK%K252(:)*TPK%RO236(:)+TPK%K255(:)*TPK%RO245(:)+TPK%K259& -&(:)*TPK%RO237(:)+TPK%K262(:)*TPK%RO246(:)+TPK%K266(:)*TPK%RO238(:)+TPK%K269(:)& -&*TPK%RO247(:)+TPK%K277(:)*TPK%RO248(:)+TPK%K285(:)*TPK%RO249(:)+TPK%K288(:)*TP& -&K%RO250(:)+TPK%K291(:)*TPK%RO251(:)+TPK%K294(:)*TPK%RO252(:)+TPK%K297(:)*TPK%R& -&O253(:)+TPK%K300(:)*TPK%RO254(:)+TPK%K309(:)*TPK%RO255(:)+TPK%K315(:)*TPK%RO25& -&6(:)+TPK%K331(:)*TPK%RO257(:)+TPK%K340(:)*TPK%RO258(:)+TPK%K344(:)*TPK%RO230(:& -&)+TPK%KTC3(:)+TPK%KTR3(:) -! -!PPROD(NO2) = +K005*<O3>*<NO>+2.*K007*<NO3>*<NO>+2.*K008*<NO>*<NO>+K010*<N2O5>+ -!K012*<NO3>*<NO2>+K014*<NO3>+0.1*K020*<HONO>+K026*<HO2>*<NO>+K028*<HNO4>+K029*< -!OH>*<HNO4>+0.8*K033*<HO2>*<NO3>+K038*<NO>*<O>+K039*<OH>*<HONO>+K040*<OH>*<NO3> -!+2.*K041*<NO3>*<NO3>+K110*<NO>*<RO21>+K113*<NO>*<RO22>+2.*K116*<NO>*<RO23>+K11 -!7*<RO2T>*<RO23>+K118*<HO2>*<RO23>+K119*<NO>*<RO24>+TPK%CF4*K122*<NO>*<RO25>+K1 -!25*<NO>*<RO26>+K135*<PAN1>+K136*<PAN2>+K137*<PAN3>+K138*<PN10>+1.0000000*K139* -!<APAN>+K140*<PAN6>+K141*<PAN4>+K144*<NO>*<RO27>+K147*<NO>*<RO28>+TPK%CF6*K150* -!<NO>*<RO29>+K153*<NO>*<RO210>+2.*K156*<NO>*<RO211>+K157*<RO2T>*<RO211>+K158*<H -!O2>*<RO211>+2.*K159*<NO>*<RO212>+K160*<RO2T>*<RO212>+K161*<HO2>*<RO212>+K162*< -!NO>*<RO213>+K165*<NO>*<RO239>+TPK%CF8*K168*<NO>*<RO214>+K171*<NO>*<RO215>+K174 -!*<NO>*<RO216>+TPK%CF22*K177*<NO>*<RO217>+TPK%CF20*K180*<NO>*<RO218>+2.*K183*<N -!O>*<RO219>+K184*<RO2T>*<RO219>+K185*<HO2>*<RO219>+TPK%CF18*K186*<NO>*<RO220>+T -!PK%CF24*K189*<NO>*<RO221>+TPK%CF42*K192*<NO>*<RO222>+TPK%CF44*K195*<NO>*<RO223 -!>+TPK%CF26*K198*<NO>*<RO224>+2.*K201*<NO>*<RO225>+K202*<RO2T>*<RO225>+K203*<HO -!2>*<RO225>+K204*<NO>*<RO226>+TPK%CF28*K207*<NO>*<RO227>+2.*K210*<NO>*<RO228>+K -!211*<RO2T>*<RO228>+K212*<HO2>*<RO228>+TPK%CF30*K213*<NO>*<RO229>+K216*<NO>*<RO -!240>+TPK%CF32*K221*<NO>*<RO231>+TPK%CF34*K224*<NO>*<RO232>+TPK%CF36*K227*<NO>* -!<RO241>+K231*<NO>*<RO233>+K234*<NO>*<RO242>+K238*<NO>*<RO234>+K241*<NO>*<RO243 -!>+K245*<NO>*<RO235>+K248*<NO>*<RO244>+K252*<NO>*<RO236>+K255*<NO>*<RO245>+K259 -!*<NO>*<RO237>+K262*<NO>*<RO246>+K266*<NO>*<RO238>+K269*<NO>*<RO247>+K277*<NO>* -!<RO248>+K285*<NO>*<RO249>+K288*<NO>*<RO250>+K291*<NO>*<RO251>+2.*K294*<NO>*<RO -!252>+K295*<HO2>*<RO252>+K296*<RO2T>*<RO252>+K297*<NO>*<RO253>+K300*<NO>*<RO254 -!>+K309*<NO>*<RO255>+K315*<NO>*<RO256>+K317*<PAN8>+K331*<NO>*<RO257>+K340*<NO>* -!<RO258>+K343*<PAN7>+K344*<NO>*<RO230>+KTC35*<WC_NO2>+KTR35*<WR_NO2> - PPROD(:,2) = +TPK%K005(:)*PCONC(:,3)*PCONC(:,1)+2.*TPK%K007(:)*PCONC(:,8)*PCON& -&C(:,1)+2.*TPK%K008(:)*PCONC(:,1)*PCONC(:,1)+TPK%K010(:)*PCONC(:,7)+TPK%K012(:)& -&*PCONC(:,8)*PCONC(:,2)+TPK%K014(:)*PCONC(:,8)+0.1*TPK%K020(:)*PCONC(:,4)+TPK%K& -&026(:)*PCONC(:,10)*PCONC(:,1)+TPK%K028(:)*PCONC(:,6)+TPK%K029(:)*PCONC(:,15)*P& -&CONC(:,6)+0.8*TPK%K033(:)*PCONC(:,10)*PCONC(:,8)+TPK%K038(:)*PCONC(:,1)*TPK%O(& -&:)+TPK%K039(:)*PCONC(:,15)*PCONC(:,4)+TPK%K040(:)*PCONC(:,15)*PCONC(:,8)+2.*TP& -&K%K041(:)*PCONC(:,8)*PCONC(:,8)+TPK%K110(:)*PCONC(:,1)*PCONC(:,86)+TPK%K113(:)& -&*PCONC(:,1)*TPK%RO22(:)+2.*TPK%K116(:)*PCONC(:,1)*TPK%RO23(:)+TPK%K117(:)*PCON& -&C(:,85)*TPK%RO23(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO23(:)+TPK%K119(:)*PCONC(:,1)& -&*TPK%RO24(:)+TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87)+TPK%K125(:)*PCONC(:,1)& -&*TPK%RO26(:)+TPK%K135(:)*PCONC(:,77)+TPK%K136(:)*PCONC(:,78)+TPK%K137(:)*PCONC& -&(:,79)+TPK%K138(:)*PCONC(:,84)+1.0000000*TPK%K139(:)*PCONC(:,76)+TPK%K140(:)*P& -&CONC(:,81)+TPK%K141(:)*PCONC(:,80)+TPK%K144(:)*PCONC(:,1)*TPK%RO27(:)+TPK%K147& -&(:)*PCONC(:,1)*TPK%RO28(:)+TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:)+TPK%K153& -&(:)*PCONC(:,1)*TPK%RO210(:)+2.*TPK%K156(:)*PCONC(:,1)*TPK%RO211(:)+TPK%K157(:)& -&*PCONC(:,85)*TPK%RO211(:)+TPK%K158(:)*PCONC(:,10)*TPK%RO211(:)+2.*TPK%K159(:)*& -&PCONC(:,1)*TPK%RO212(:)+TPK%K160(:)*PCONC(:,85)*TPK%RO212(:)+TPK%K161(:)*PCONC& -&(:,10)*TPK%RO212(:)+TPK%K162(:)*PCONC(:,1)*TPK%RO213(:)+TPK%K165(:)*PCONC(:,1)& -&*TPK%RO239(:)+TPK%CF8*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:)+TPK%K171(:)*PCONC(:,& -&1)*TPK%RO215(:)+TPK%K174(:)*PCONC(:,1)*TPK%RO216(:)+TPK%CF22*TPK%K177(:)*PCONC& -&(:,1)*TPK%RO217(:)+TPK%CF20*TPK%K180(:)*PCONC(:,1)*TPK%RO218(:)+2.*TPK%K183(:)& -&*PCONC(:,1)*TPK%RO219(:)+TPK%K184(:)*PCONC(:,85)*TPK%RO219(:)+TPK%K185(:)*PCON& -&C(:,10)*TPK%RO219(:)+TPK%CF18*TPK%K186(:)*PCONC(:,1)*TPK%RO220(:)+TPK%CF24*TPK& -&%K189(:)*PCONC(:,1)*TPK%RO221(:)+TPK%CF42*TPK%K192(:)*PCONC(:,1)*TPK%RO222(:)+& -&TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:)+TPK%CF26*TPK%K198(:)*PCONC(:,1)*T& -&PK%RO224(:)+2.*TPK%K201(:)*PCONC(:,1)*TPK%RO225(:)+TPK%K202(:)*PCONC(:,85)*TPK& -&%RO225(:)+TPK%K203(:)*PCONC(:,10)*TPK%RO225(:)+TPK%K204(:)*PCONC(:,1)*TPK%RO22& -&6(:)+TPK%CF28*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:)+2.*TPK%K210(:)*PCONC(:,1)*TP& -&K%RO228(:)+TPK%K211(:)*PCONC(:,85)*TPK%RO228(:)+TPK%K212(:)*PCONC(:,10)*TPK%RO& -&228(:)+TPK%CF30*TPK%K213(:)*PCONC(:,1)*TPK%RO229(:)+TPK%K216(:)*PCONC(:,1)*TPK& -&%RO240(:)+TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:)+TPK%CF34*TPK%K224(:)*PC& -&ONC(:,1)*TPK%RO232(:)+TPK%CF36*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:)+TPK%K231(:)& -&*PCONC(:,1)*TPK%RO233(:)+TPK%K234(:)*PCONC(:,1)*TPK%RO242(:)+TPK%K238(:)*PCONC& -&(:,1)*TPK%RO234(:)+TPK%K241(:)*PCONC(:,1)*TPK%RO243(:)+TPK%K245(:)*PCONC(:,1)*& -&TPK%RO235(:)+TPK%K248(:)*PCONC(:,1)*TPK%RO244(:)+TPK%K252(:)*PCONC(:,1)*TPK%RO& -&236(:)+TPK%K255(:)*PCONC(:,1)*TPK%RO245(:)+TPK%K259(:)*PCONC(:,1)*TPK%RO237(:)& -&+TPK%K262(:)*PCONC(:,1)*TPK%RO246(:)+TPK%K266(:)*PCONC(:,1)*TPK%RO238(:)+TPK%K& -&269(:)*PCONC(:,1)*TPK%RO247(:)+TPK%K277(:)*PCONC(:,1)*TPK%RO248(:)+TPK%K285(:)& -&*PCONC(:,1)*TPK%RO249(:)+TPK%K288(:)*PCONC(:,1)*TPK%RO250(:)+TPK%K291(:)*PCONC& -&(:,1)*TPK%RO251(:)+2.*TPK%K294(:)*PCONC(:,1)*TPK%RO252(:)+TPK%K295(:)*PCONC(:,& -&10)*TPK%RO252(:)+TPK%K296(:)*PCONC(:,85)*TPK%RO252(:)+TPK%K297(:)*PCONC(:,1)*T& -&PK%RO253(:)+TPK%K300(:)*PCONC(:,1)*TPK%RO254(:)+TPK%K309(:)*PCONC(:,1)*TPK%RO2& -&55(:)+TPK%K315(:)*PCONC(:,1)*TPK%RO256(:)+TPK%K317(:)*PCONC(:,83)+TPK%K331(:)*& -&PCONC(:,1)*TPK%RO257(:)+TPK%K340(:)*PCONC(:,1)*TPK%RO258(:)+TPK%K343(:)*PCONC(& -&:,82)+TPK%K344(:)*PCONC(:,1)*TPK%RO230(:)+TPK%KTC35(:)*PCONC(:,91)+TPK%KTR35(:& -&)*PCONC(:,128) -!PLOSS(NO2) = +K001+K003*<O>+K004*<O>+K006*<O3>+K009*<NO3>+K012*<NO3>+K021*<H2O -!>+K022*<OH>+K027*<HO2>+K103*<RAD1>+K104*<RAD2>+K105*<RAD3>+K106*<RAD4>+K107*<R -!AD5>+K108*<RAD6>+K109*<RAD7>+K126*<RO26>+K127*<RO28>+K128*<RO239>+K129*<RO248> -!+K130*<RO250>+K131*<RO254>+K132*<RO255>+K133*<RO257>+K134*<RO258>+K316*<RO256> -!+K321*<RAD8>+KTC4+KTR4 - PLOSS(:,2) = +TPK%K001(:)+TPK%K003(:)*TPK%O(:)+TPK%K004(:)*TPK%O(:)+TPK%K006(:& -&)*PCONC(:,3)+TPK%K009(:)*PCONC(:,8)+TPK%K012(:)*PCONC(:,8)+TPK%K021(:)*TPK%H2O& -&(:)+TPK%K022(:)*PCONC(:,15)+TPK%K027(:)*PCONC(:,10)+TPK%K103(:)*TPK%RAD1(:)+TP& -&K%K104(:)*TPK%RAD2(:)+TPK%K105(:)*TPK%RAD3(:)+TPK%K106(:)*TPK%RAD4(:)+TPK%K107& -&(:)*TPK%RAD5(:)+TPK%K108(:)*TPK%RAD6(:)+TPK%K109(:)*TPK%RAD7(:)+TPK%K126(:)*TP& -&K%RO26(:)+TPK%K127(:)*TPK%RO28(:)+TPK%K128(:)*TPK%RO239(:)+TPK%K129(:)*TPK%RO2& -&48(:)+TPK%K130(:)*TPK%RO250(:)+TPK%K131(:)*TPK%RO254(:)+TPK%K132(:)*TPK%RO255(& -&:)+TPK%K133(:)*TPK%RO257(:)+TPK%K134(:)*TPK%RO258(:)+TPK%K316(:)*TPK%RO256(:)+& -&TPK%K321(:)*TPK%RAD8(:)+TPK%KTC4(:)+TPK%KTR4(:) -! -!PPROD(O3) = +K002*<O2>*<O>+K081*<NO3>*<ARAL>+TPK%CF39*K082*<OH>*<ARAL>+K142*<H -!O2>*<RO26>+K148*<HO2>*<RO28>+K166*<HO2>*<RO239>+K279*<HO2>*<RO248>+K289*<HO2>* -!<RO250>+K301*<HO2>*<RO254>+K303*<OH>*<RPR5>+1.0000011*K306*<OH>*<RPRL>+K310*<H -!O2>*<RO255>+K318*<HO2>*<RO256>+K322*<OH>*<RPR7>+1.0000005*K323*<OH>*<RPG7>+K32 -!6*<OH>*<RP11>+K332*<HO2>*<RO257>+1.0000000*K334*<OH>*<RPG3>+1.0000000*K335*<OH -!>*<RPG2>+K337*<OH>*<RP18>+K341*<HO2>*<RO258>+KTC32*<WC_O3>+KTR32*<WR_O3> - PPROD(:,3) = +TPK%K002(:)*TPK%O2(:)*TPK%O(:)+TPK%K081(:)*PCONC(:,8)*PCONC(:,25& -&)+TPK%CF39*TPK%K082(:)*PCONC(:,15)*PCONC(:,25)+TPK%K142(:)*PCONC(:,10)*TPK%RO2& -&6(:)+TPK%K148(:)*PCONC(:,10)*TPK%RO28(:)+TPK%K166(:)*PCONC(:,10)*TPK%RO239(:)+& -&TPK%K279(:)*PCONC(:,10)*TPK%RO248(:)+TPK%K289(:)*PCONC(:,10)*TPK%RO250(:)+TPK%& -&K301(:)*PCONC(:,10)*TPK%RO254(:)+TPK%K303(:)*PCONC(:,15)*PCONC(:,70)+1.0000011& -&*TPK%K306(:)*PCONC(:,15)*PCONC(:,75)+TPK%K310(:)*PCONC(:,10)*TPK%RO255(:)+TPK%& -&K318(:)*PCONC(:,10)*TPK%RO256(:)+TPK%K322(:)*PCONC(:,15)*PCONC(:,62)+1.0000005& -&*TPK%K323(:)*PCONC(:,15)*PCONC(:,63)+TPK%K326(:)*PCONC(:,15)*PCONC(:,73)+TPK%K& -&332(:)*PCONC(:,10)*TPK%RO257(:)+1.0000000*TPK%K334(:)*PCONC(:,15)*PCONC(:,52)+& -&1.0000000*TPK%K335(:)*PCONC(:,15)*PCONC(:,50)+TPK%K337(:)*PCONC(:,15)*PCONC(:,& -&51)+TPK%K341(:)*PCONC(:,10)*TPK%RO258(:)+TPK%KTC32(:)*PCONC(:,88)+TPK%KTR32(:)& -&*PCONC(:,125) -!PLOSS(O3) = +K005*<NO>+K006*<NO2>+K015+K016+K025*<OH>+K030*<HO2>+K034*<O>+K051 -!*<ETHE>+K056*<OLEL>+K066*<ISOP>+K076*<OLEH>+K086*<BIOL>+K090*<BIOH>+K281*<MVK> -!+K282*<MCR>+KTC1+KTR1 - PLOSS(:,3) = +TPK%K005(:)*PCONC(:,1)+TPK%K006(:)*PCONC(:,2)+TPK%K015(:)+TPK%K0& -&16(:)+TPK%K025(:)*PCONC(:,15)+TPK%K030(:)*PCONC(:,10)+TPK%K034(:)*TPK%O(:)+TPK& -&%K051(:)*PCONC(:,16)+TPK%K056(:)*PCONC(:,17)+TPK%K066(:)*PCONC(:,35)+TPK%K076(& -&:)*PCONC(:,18)+TPK%K086(:)*PCONC(:,36)+TPK%K090(:)*PCONC(:,37)+TPK%K281(:)*PCO& -&NC(:,39)+TPK%K282(:)*PCONC(:,40)+TPK%KTC1(:)+TPK%KTR1(:) -! -!PPROD(HONO) = +K019*<OH>*<NO>+0.5*K021*<H2O>*<NO2>+KTC38*<WC_HONO>+KTR38*<WR_H -!ONO> - PPROD(:,4) = +TPK%K019(:)*PCONC(:,15)*PCONC(:,1)+0.5*TPK%K021(:)*TPK%H2O(:)*PC& -&ONC(:,2)+TPK%KTC38(:)*PCONC(:,94)+TPK%KTR38(:)*PCONC(:,131) -!PLOSS(HONO) = +K020+K039*<OH>+KTC7+KTR7 - PLOSS(:,4) = +TPK%K020(:)+TPK%K039(:)*PCONC(:,15)+TPK%KTC7(:)+TPK%KTR7(:) -! -!PPROD(HNO3) = +2.*K011*<H2O>*<N2O5>+0.5*K021*<H2O>*<NO2>+K022*<OH>*<NO2>+0.2*K -!033*<HO2>*<NO3>+K047*<NO3>*<HCHO>+K061*<NO3>*<ALD2>+K072*<NO3>*<AROO>+K081*<NO -!3>*<ARAL>+TPK%CF46*K275*<NO3>*<MCR>+K278*<NO3>*<MGLY>+K307*<NO3>*<RPR1>+K313*< -!NO3>*<RPR3>+K320*<NO3>*<RPR4>+K327*<NO3>*<RPR8>+K338*<NO3>*<RP16>+KTC39*<WC_HN -!O3>+KTR39*<WR_HNO3> - PPROD(:,5) = +2.*TPK%K011(:)*TPK%H2O(:)*PCONC(:,7)+0.5*TPK%K021(:)*TPK%H2O(:)*& -&PCONC(:,2)+TPK%K022(:)*PCONC(:,15)*PCONC(:,2)+0.2*TPK%K033(:)*PCONC(:,10)*PCON& -&C(:,8)+TPK%K047(:)*PCONC(:,8)*PCONC(:,28)+TPK%K061(:)*PCONC(:,8)*PCONC(:,29)+T& -&PK%K072(:)*PCONC(:,8)*PCONC(:,24)+TPK%K081(:)*PCONC(:,8)*PCONC(:,25)+TPK%CF46*& -&TPK%K275(:)*PCONC(:,8)*PCONC(:,40)+TPK%K278(:)*PCONC(:,8)*PCONC(:,41)+TPK%K307& -&(:)*PCONC(:,8)*PCONC(:,69)+TPK%K313(:)*PCONC(:,8)*PCONC(:,57)+TPK%K320(:)*PCON& -&C(:,8)*PCONC(:,61)+TPK%K327(:)*PCONC(:,8)*PCONC(:,71)+TPK%K338(:)*PCONC(:,8)*P& -&CONC(:,74)+TPK%KTC39(:)*PCONC(:,95)+TPK%KTR39(:)*PCONC(:,132) -!PLOSS(HNO3) = +K023*<OH>+KTC8+KTR8 - PLOSS(:,5) = +TPK%K023(:)*PCONC(:,15)+TPK%KTC8(:)+TPK%KTR8(:) -! -!PPROD(HNO4) = +K027*<HO2>*<NO2>+KTC40*<WC_HNO4>+KTR40*<WR_HNO4> - PPROD(:,6) = +TPK%K027(:)*PCONC(:,10)*PCONC(:,2)+TPK%KTC40(:)*PCONC(:,96)+TPK%& -&KTR40(:)*PCONC(:,133) -!PLOSS(HNO4) = +K028+K029*<OH>+KTC9+KTR9 - PLOSS(:,6) = +TPK%K028(:)+TPK%K029(:)*PCONC(:,15)+TPK%KTC9(:)+TPK%KTR9(:) -! -!PPROD(N2O5) = +K009*<NO3>*<NO2>+KTC37*<WC_N2O5>+KTR37*<WR_N2O5> - PPROD(:,7) = +TPK%K009(:)*PCONC(:,8)*PCONC(:,2)+TPK%KTC37(:)*PCONC(:,93)+TPK%K& -&TR37(:)*PCONC(:,130) -!PLOSS(N2O5) = +K010+K011*<H2O>+KTC6+KTR6 - PLOSS(:,7) = +TPK%K010(:)+TPK%K011(:)*TPK%H2O(:)+TPK%KTC6(:)+TPK%KTR6(:) -! -!PPROD(NO3) = +K004*<NO2>*<O>+K006*<O3>*<NO2>+K010*<N2O5>+K023*<OH>*<HNO3>+KTC3 -!6*<WC_NO3>+KTR36*<WR_NO3> - PPROD(:,8) = +TPK%K004(:)*PCONC(:,2)*TPK%O(:)+TPK%K006(:)*PCONC(:,3)*PCONC(:,2& -&)+TPK%K010(:)*PCONC(:,7)+TPK%K023(:)*PCONC(:,15)*PCONC(:,5)+TPK%KTC36(:)*PCONC& -&(:,92)+TPK%KTR36(:)*PCONC(:,129) -!PLOSS(NO3) = +K007*<NO>+K009*<NO2>+K012*<NO2>+K013+K014+K033*<HO2>+K040*<OH>+K -!041*<NO3>+K041*<NO3>+K047*<HCHO>+K050*<ETHE>+K055*<OLEL>+K061*<ALD2>+K065*<ISO -!P>+K072*<AROO>+K075*<OLEH>+K081*<ARAL>+K085*<BIOL>+K089*<BIOH>+K275*<MCR>+K278 -!*<MGLY>+K307*<RPR1>+K313*<RPR3>+K320*<RPR4>+K327*<RPR8>+K338*<RP16>+KTC5+KTR5 - PLOSS(:,8) = +TPK%K007(:)*PCONC(:,1)+TPK%K009(:)*PCONC(:,2)+TPK%K012(:)*PCONC(& -&:,2)+TPK%K013(:)+TPK%K014(:)+TPK%K033(:)*PCONC(:,10)+TPK%K040(:)*PCONC(:,15)+T& -&PK%K041(:)*PCONC(:,8)+TPK%K041(:)*PCONC(:,8)+TPK%K047(:)*PCONC(:,28)+TPK%K050(& -&:)*PCONC(:,16)+TPK%K055(:)*PCONC(:,17)+TPK%K061(:)*PCONC(:,29)+TPK%K065(:)*PCO& -&NC(:,35)+TPK%K072(:)*PCONC(:,24)+TPK%K075(:)*PCONC(:,18)+TPK%K081(:)*PCONC(:,2& -&5)+TPK%K085(:)*PCONC(:,36)+TPK%K089(:)*PCONC(:,37)+TPK%K275(:)*PCONC(:,40)+TPK& -&%K278(:)*PCONC(:,41)+TPK%K307(:)*PCONC(:,69)+TPK%K313(:)*PCONC(:,57)+TPK%K320(& -&:)*PCONC(:,61)+TPK%K327(:)*PCONC(:,71)+TPK%K338(:)*PCONC(:,74)+TPK%KTC5(:)+TPK& -&%KTR5(:) -! -!PPROD(NH3) = +KTC41*<WC_NH3>+KTR41*<WR_NH3> - PPROD(:,9) = +TPK%KTC41(:)*PCONC(:,97)+TPK%KTR41(:)*PCONC(:,134) -!PLOSS(NH3) = +K345*<OH>+KTC10+KTR10 - PLOSS(:,9) = +TPK%K345(:)*PCONC(:,15)+TPK%KTC10(:)+TPK%KTR10(:) -! -!PPROD(HO2) = +0.1*K020*<HONO>+K024*<OH>*<CO>+K025*<OH>*<O3>+K028*<HNO4>+K035*< -!OH>*<SO2>+K037*<OH>*<H2O2>+K040*<OH>*<NO3>+2.0*K044*<HCHO>+K046*<OH>*<HCHO>+K0 -!47*<NO3>*<HCHO>+K048*<OH>*<MEOH>+0.06*K051*<O3>*<ETHE>+K052*<O>*<ETHE>+TPK%CF1 -!*K053*<OH>*<ETOH>+0.28*K056*<O3>*<OLEL>+K059*<ALD2>+0.366*K066*<O3>*<ISOP>+0.1 -!6*K073*<OH>*<AROO>+0.28*K076*<O3>*<OLEH>+0.16*K079*<OH>*<AROL>+0.16*K080*<OH>* -!<AROH>+TPK%CF48*K082*<OH>*<ARAL>+0.16*K083*<OH>*<ARAC>+0.445*K086*<O3>*<BIOL>+ -!0.16*K092*<OH>*<PAH>+K094*<HO2>*<RO2T>+K110*<NO>*<RO21>+K111*<RO2T>*<RO21>+K11 -!2*<HO2>*<RO21>+K113*<NO>*<RO22>+K114*<RO2T>*<RO22>+K115*<HO2>*<RO22>+K117*<RO2 -!T>*<RO23>+K118*<HO2>*<RO23>+K119*<NO>*<RO24>+K120*<RO2T>*<RO24>+K121*<HO2>*<RO -!24>+TPK%CF4*K122*<NO>*<RO25>+K123*<RO2T>*<RO25>+K124*<HO2>*<RO25>+TPK%CF6*K150 -!*<NO>*<RO29>+K151*<RO2T>*<RO29>+K152*<HO2>*<RO29>+K153*<NO>*<RO210>+K154*<RO2T -!>*<RO210>+K155*<HO2>*<RO210>+K171*<NO>*<RO215>+K172*<RO2T>*<RO215>+K173*<HO2>* -!<RO215>+TPK%CF22*K177*<NO>*<RO217>+K178*<RO2T>*<RO217>+K179*<HO2>*<RO217>+TPK% -!CF20*K180*<NO>*<RO218>+K181*<RO2T>*<RO218>+K182*<HO2>*<RO218>+TPK%CF24*K189*<N -!O>*<RO221>+K190*<RO2T>*<RO221>+K191*<HO2>*<RO221>+TPK%CF42*K192*<NO>*<RO222>+K -!193*<RO2T>*<RO222>+K194*<HO2>*<RO222>+TPK%CF44*K195*<NO>*<RO223>+K196*<RO2T>*< -!RO223>+K197*<HO2>*<RO223>+TPK%CF26*K198*<NO>*<RO224>+K199*<RO2T>*<RO224>+K200* -!<HO2>*<RO224>+TPK%CF28*K207*<NO>*<RO227>+K208*<RO2T>*<RO227>+K209*<HO2>*<RO227 -!>+TPK%CF32*K221*<NO>*<RO231>+K222*<RO2T>*<RO231>+K223*<HO2>*<RO231>+TPK%CF36*K -!227*<NO>*<RO241>+K228*<RO2T>*<RO241>+K229*<HO2>*<RO241>+K231*<NO>*<RO233>+K232 -!*<RO2T>*<RO233>+K233*<HO2>*<RO233>+K234*<NO>*<RO242>+K235*<RO2T>*<RO242>+K236* -!<HO2>*<RO242>+K238*<NO>*<RO234>+K239*<RO2T>*<RO234>+K240*<HO2>*<RO234>+K241*<N -!O>*<RO243>+K242*<RO2T>*<RO243>+K243*<HO2>*<RO243>+K245*<NO>*<RO235>+K246*<RO2T -!>*<RO235>+K247*<HO2>*<RO235>+K248*<NO>*<RO244>+K249*<RO2T>*<RO244>+K250*<HO2>* -!<RO244>+K252*<NO>*<RO236>+K253*<RO2T>*<RO236>+K254*<HO2>*<RO236>+K255*<NO>*<RO -!245>+K256*<RO2T>*<RO245>+K257*<HO2>*<RO245>+K259*<NO>*<RO237>+K260*<RO2T>*<RO2 -!37>+K261*<HO2>*<RO237>+K262*<NO>*<RO246>+K263*<RO2T>*<RO246>+K264*<HO2>*<RO246 -!>+K266*<NO>*<RO238>+K267*<RO2T>*<RO238>+K268*<HO2>*<RO238>+K269*<NO>*<RO247>+K -!270*<RO2T>*<RO247>+K271*<HO2>*<RO247>+K276*<MGLY>+0.28*K281*<O3>*<MVK>+0.41*K2 -!82*<O3>*<MCR>+0.15*K284*<O>*<MCR>+K285*<NO>*<RO249>+K286*<RO2T>*<RO249>+K287*< -!HO2>*<RO249>+K291*<NO>*<RO251>+K292*<HO2>*<RO251>+K293*<RO2T>*<RO251>+K300*<NO -!>*<RO254>+K302*<RO2T>*<RO254>+K308*<RPR1>+2.*K314*<RPR3>+K315*<NO>*<RO256>+K31 -!9*<RO2T>*<RO256>+K325*<OH>*<RP10>+K329*<RPR8>+K330*<RPR8>+K339*<RP16>+K347*<OH -!>*<ORA1>+KTC43*<WC_HO2>+KTR43*<WR_HO2> - PPROD(:,10) = +0.1*TPK%K020(:)*PCONC(:,4)+TPK%K024(:)*PCONC(:,15)*PCONC(:,11)+& -&TPK%K025(:)*PCONC(:,15)*PCONC(:,3)+TPK%K028(:)*PCONC(:,6)+TPK%K035(:)*PCONC(:,& -&15)*PCONC(:,13)+TPK%K037(:)*PCONC(:,15)*PCONC(:,12)+TPK%K040(:)*PCONC(:,15)*PC& -&ONC(:,8)+2.0*TPK%K044(:)*PCONC(:,28)+TPK%K046(:)*PCONC(:,15)*PCONC(:,28)+TPK%K& -&047(:)*PCONC(:,8)*PCONC(:,28)+TPK%K048(:)*PCONC(:,15)*PCONC(:,32)+0.06*TPK%K05& -&1(:)*PCONC(:,3)*PCONC(:,16)+TPK%K052(:)*TPK%O(:)*PCONC(:,16)+TPK%CF1*TPK%K053(& -&:)*PCONC(:,15)*PCONC(:,33)+0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+TPK%K059(:)& -&*PCONC(:,29)+0.366*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+0.16*TPK%K073(:)*PCONC(:& -&,15)*PCONC(:,24)+0.28*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+0.16*TPK%K079(:)*PCON& -&C(:,15)*PCONC(:,23)+0.16*TPK%K080(:)*PCONC(:,15)*PCONC(:,22)+TPK%CF48*TPK%K082& -&(:)*PCONC(:,15)*PCONC(:,25)+0.16*TPK%K083(:)*PCONC(:,15)*PCONC(:,26)+0.445*TPK& -&%K086(:)*PCONC(:,3)*PCONC(:,36)+0.16*TPK%K092(:)*PCONC(:,15)*PCONC(:,27)+TPK%K& -&094(:)*PCONC(:,10)*PCONC(:,85)+TPK%K110(:)*PCONC(:,1)*PCONC(:,86)+TPK%K111(:)*& -&PCONC(:,85)*PCONC(:,86)+TPK%K112(:)*PCONC(:,10)*PCONC(:,86)+TPK%K113(:)*PCONC(& -&:,1)*TPK%RO22(:)+TPK%K114(:)*PCONC(:,85)*TPK%RO22(:)+TPK%K115(:)*PCONC(:,10)*T& -&PK%RO22(:)+TPK%K117(:)*PCONC(:,85)*TPK%RO23(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO2& -&3(:)+TPK%K119(:)*PCONC(:,1)*TPK%RO24(:)+TPK%K120(:)*PCONC(:,85)*TPK%RO24(:)+TP& -&K%K121(:)*PCONC(:,10)*TPK%RO24(:)+TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87)+T& -&PK%K123(:)*PCONC(:,85)*PCONC(:,87)+TPK%K124(:)*PCONC(:,10)*PCONC(:,87)+TPK%CF6& -&*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:)+TPK%K151(:)*PCONC(:,85)*TPK%RO29(:)+TPK%K1& -&52(:)*PCONC(:,10)*TPK%RO29(:)+TPK%K153(:)*PCONC(:,1)*TPK%RO210(:)+TPK%K154(:)*& -&PCONC(:,85)*TPK%RO210(:)+TPK%K155(:)*PCONC(:,10)*TPK%RO210(:)+TPK%K171(:)*PCON& -&C(:,1)*TPK%RO215(:)+TPK%K172(:)*PCONC(:,85)*TPK%RO215(:)+TPK%K173(:)*PCONC(:,1& -&0)*TPK%RO215(:)+TPK%CF22*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:)+TPK%K178(:)*PCONC& -&(:,85)*TPK%RO217(:)+TPK%K179(:)*PCONC(:,10)*TPK%RO217(:)+TPK%CF20*TPK%K180(:)*& -&PCONC(:,1)*TPK%RO218(:)+TPK%K181(:)*PCONC(:,85)*TPK%RO218(:)+TPK%K182(:)*PCONC& -&(:,10)*TPK%RO218(:)+TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:)+TPK%K190(:)*P& -&CONC(:,85)*TPK%RO221(:)+TPK%K191(:)*PCONC(:,10)*TPK%RO221(:)+TPK%CF42*TPK%K192& -&(:)*PCONC(:,1)*TPK%RO222(:)+TPK%K193(:)*PCONC(:,85)*TPK%RO222(:)+TPK%K194(:)*P& -&CONC(:,10)*TPK%RO222(:)+TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:)+TPK%K196(& -&:)*PCONC(:,85)*TPK%RO223(:)+TPK%K197(:)*PCONC(:,10)*TPK%RO223(:)+TPK%CF26*TPK%& -&K198(:)*PCONC(:,1)*TPK%RO224(:)+TPK%K199(:)*PCONC(:,85)*TPK%RO224(:)+TPK%K200(& -&:)*PCONC(:,10)*TPK%RO224(:)+TPK%CF28*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:)+TPK%K& -&208(:)*PCONC(:,85)*TPK%RO227(:)+TPK%K209(:)*PCONC(:,10)*TPK%RO227(:)+TPK%CF32*& -&TPK%K221(:)*PCONC(:,1)*TPK%RO231(:)+TPK%K222(:)*PCONC(:,85)*TPK%RO231(:)+TPK%K& -&223(:)*PCONC(:,10)*TPK%RO231(:)+TPK%CF36*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:)+T& -&PK%K228(:)*PCONC(:,85)*TPK%RO241(:)+TPK%K229(:)*PCONC(:,10)*TPK%RO241(:)+TPK%K& -&231(:)*PCONC(:,1)*TPK%RO233(:)+TPK%K232(:)*PCONC(:,85)*TPK%RO233(:)+TPK%K233(:& -&)*PCONC(:,10)*TPK%RO233(:)+TPK%K234(:)*PCONC(:,1)*TPK%RO242(:)+TPK%K235(:)*PCO& -&NC(:,85)*TPK%RO242(:)+TPK%K236(:)*PCONC(:,10)*TPK%RO242(:)+TPK%K238(:)*PCONC(:& -&,1)*TPK%RO234(:)+TPK%K239(:)*PCONC(:,85)*TPK%RO234(:)+TPK%K240(:)*PCONC(:,10)*& -&TPK%RO234(:)+TPK%K241(:)*PCONC(:,1)*TPK%RO243(:)+TPK%K242(:)*PCONC(:,85)*TPK%R& -&O243(:)+TPK%K243(:)*PCONC(:,10)*TPK%RO243(:)+TPK%K245(:)*PCONC(:,1)*TPK%RO235(& -&:)+TPK%K246(:)*PCONC(:,85)*TPK%RO235(:)+TPK%K247(:)*PCONC(:,10)*TPK%RO235(:)+T& -&PK%K248(:)*PCONC(:,1)*TPK%RO244(:)+TPK%K249(:)*PCONC(:,85)*TPK%RO244(:)+TPK%K2& -&50(:)*PCONC(:,10)*TPK%RO244(:)+TPK%K252(:)*PCONC(:,1)*TPK%RO236(:)+TPK%K253(:)& -&*PCONC(:,85)*TPK%RO236(:)+TPK%K254(:)*PCONC(:,10)*TPK%RO236(:)+TPK%K255(:)*PCO& -&NC(:,1)*TPK%RO245(:)+TPK%K256(:)*PCONC(:,85)*TPK%RO245(:)+TPK%K257(:)*PCONC(:,& -&10)*TPK%RO245(:)+TPK%K259(:)*PCONC(:,1)*TPK%RO237(:)+TPK%K260(:)*PCONC(:,85)*T& -&PK%RO237(:)+TPK%K261(:)*PCONC(:,10)*TPK%RO237(:)+TPK%K262(:)*PCONC(:,1)*TPK%RO& -&246(:)+TPK%K263(:)*PCONC(:,85)*TPK%RO246(:)+TPK%K264(:)*PCONC(:,10)*TPK%RO246(& -&:)+TPK%K266(:)*PCONC(:,1)*TPK%RO238(:)+TPK%K267(:)*PCONC(:,85)*TPK%RO238(:)+TP& -&K%K268(:)*PCONC(:,10)*TPK%RO238(:)+TPK%K269(:)*PCONC(:,1)*TPK%RO247(:)+TPK%K27& -&0(:)*PCONC(:,85)*TPK%RO247(:)+TPK%K271(:)*PCONC(:,10)*TPK%RO247(:)+TPK%K276(:)& -&*PCONC(:,41)+0.28*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.41*TPK%K282(:)*PCONC(:,& -&3)*PCONC(:,40)+0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40)+TPK%K285(:)*PCONC(:,1)*TP& -&K%RO249(:)+TPK%K286(:)*PCONC(:,85)*TPK%RO249(:)+TPK%K287(:)*PCONC(:,10)*TPK%RO& -&249(:)+TPK%K291(:)*PCONC(:,1)*TPK%RO251(:)+TPK%K292(:)*PCONC(:,10)*TPK%RO251(:& -&)+TPK%K293(:)*PCONC(:,85)*TPK%RO251(:)+TPK%K300(:)*PCONC(:,1)*TPK%RO254(:)+TPK& -&%K302(:)*PCONC(:,85)*TPK%RO254(:)+TPK%K308(:)*PCONC(:,69)+2.*TPK%K314(:)*PCONC& -&(:,57)+TPK%K315(:)*PCONC(:,1)*TPK%RO256(:)+TPK%K319(:)*PCONC(:,85)*TPK%RO256(:& -&)+TPK%K325(:)*PCONC(:,15)*PCONC(:,72)+TPK%K329(:)*PCONC(:,71)+TPK%K330(:)*PCON& -&C(:,71)+TPK%K339(:)*PCONC(:,74)+TPK%K347(:)*PCONC(:,15)*PCONC(:,43)+TPK%KTC43(& -&:)*PCONC(:,99)+TPK%KTR43(:)*PCONC(:,136) -!PLOSS(HO2) = +K026*<NO>+K027*<NO2>+K030*<O3>+K031*<HO2>+K031*<HO2>+K032*<H2O>* -!<HO2>+K032*<H2O>*<HO2>+K033*<NO3>+K042*<OH>+K094*<RO2T>+K112*<RO21>+K115*<RO22 -!>+K118*<RO23>+K121*<RO24>+K124*<RO25>+K142*<RO26>+K146*<RO27>+K148*<RO28>+K152 -!*<RO29>+K155*<RO210>+K158*<RO211>+K161*<RO212>+K164*<RO213>+K166*<RO239>+K170* -!<RO214>+K173*<RO215>+K176*<RO216>+K179*<RO217>+K182*<RO218>+K185*<RO219>+K188* -!<RO220>+K191*<RO221>+K194*<RO222>+K197*<RO223>+K200*<RO224>+K203*<RO225>+K206* -!<RO226>+K209*<RO227>+K212*<RO228>+K215*<RO229>+K218*<RO240>+K220*<RO230>+K223* -!<RO231>+K226*<RO232>+K229*<RO241>+K233*<RO233>+K236*<RO242>+K240*<RO234>+K243* -!<RO243>+K247*<RO235>+K250*<RO244>+K254*<RO236>+K257*<RO245>+K261*<RO237>+K264* -!<RO246>+K268*<RO238>+K271*<RO247>+K279*<RO248>+K287*<RO249>+K289*<RO250>+K292* -!<RO251>+K295*<RO252>+K298*<RO253>+K301*<RO254>+K310*<RO255>+K318*<RO256>+K332* -!<RO257>+K341*<RO258>+KTC12+KTR12 - PLOSS(:,10) = +TPK%K026(:)*PCONC(:,1)+TPK%K027(:)*PCONC(:,2)+TPK%K030(:)*PCONC& -&(:,3)+TPK%K031(:)*PCONC(:,10)+TPK%K031(:)*PCONC(:,10)+TPK%K032(:)*TPK%H2O(:)*P& -&CONC(:,10)+TPK%K032(:)*TPK%H2O(:)*PCONC(:,10)+TPK%K033(:)*PCONC(:,8)+TPK%K042(& -&:)*PCONC(:,15)+TPK%K094(:)*PCONC(:,85)+TPK%K112(:)*PCONC(:,86)+TPK%K115(:)*TPK& -&%RO22(:)+TPK%K118(:)*TPK%RO23(:)+TPK%K121(:)*TPK%RO24(:)+TPK%K124(:)*PCONC(:,8& -&7)+TPK%K142(:)*TPK%RO26(:)+TPK%K146(:)*TPK%RO27(:)+TPK%K148(:)*TPK%RO28(:)+TPK& -&%K152(:)*TPK%RO29(:)+TPK%K155(:)*TPK%RO210(:)+TPK%K158(:)*TPK%RO211(:)+TPK%K16& -&1(:)*TPK%RO212(:)+TPK%K164(:)*TPK%RO213(:)+TPK%K166(:)*TPK%RO239(:)+TPK%K170(:& -&)*TPK%RO214(:)+TPK%K173(:)*TPK%RO215(:)+TPK%K176(:)*TPK%RO216(:)+TPK%K179(:)*T& -&PK%RO217(:)+TPK%K182(:)*TPK%RO218(:)+TPK%K185(:)*TPK%RO219(:)+TPK%K188(:)*TPK%& -&RO220(:)+TPK%K191(:)*TPK%RO221(:)+TPK%K194(:)*TPK%RO222(:)+TPK%K197(:)*TPK%RO2& -&23(:)+TPK%K200(:)*TPK%RO224(:)+TPK%K203(:)*TPK%RO225(:)+TPK%K206(:)*TPK%RO226(& -&:)+TPK%K209(:)*TPK%RO227(:)+TPK%K212(:)*TPK%RO228(:)+TPK%K215(:)*TPK%RO229(:)+& -&TPK%K218(:)*TPK%RO240(:)+TPK%K220(:)*TPK%RO230(:)+TPK%K223(:)*TPK%RO231(:)+TPK& -&%K226(:)*TPK%RO232(:)+TPK%K229(:)*TPK%RO241(:)+TPK%K233(:)*TPK%RO233(:)+TPK%K2& -&36(:)*TPK%RO242(:)+TPK%K240(:)*TPK%RO234(:)+TPK%K243(:)*TPK%RO243(:)+TPK%K247(& -&:)*TPK%RO235(:)+TPK%K250(:)*TPK%RO244(:)+TPK%K254(:)*TPK%RO236(:)+TPK%K257(:)*& -&TPK%RO245(:)+TPK%K261(:)*TPK%RO237(:)+TPK%K264(:)*TPK%RO246(:)+TPK%K268(:)*TPK& -&%RO238(:)+TPK%K271(:)*TPK%RO247(:)+TPK%K279(:)*TPK%RO248(:)+TPK%K287(:)*TPK%RO& -&249(:)+TPK%K289(:)*TPK%RO250(:)+TPK%K292(:)*TPK%RO251(:)+TPK%K295(:)*TPK%RO252& -&(:)+TPK%K298(:)*TPK%RO253(:)+TPK%K301(:)*TPK%RO254(:)+TPK%K310(:)*TPK%RO255(:)& -&+TPK%K318(:)*TPK%RO256(:)+TPK%K332(:)*TPK%RO257(:)+TPK%K341(:)*TPK%RO258(:)+TP& -&K%KTC12(:)+TPK%KTR12(:) +!PPROD(O3) = +K018*<O3P>*<O2>+0.17307*K0102*<CARBOP>*<HO2>+KTC21*<WC_O3>+KTR21* +!<WR_O3> + PPROD(:,1) = +TPK%K018(:)*TPK%O3P(:)*TPK%O2(:)+0.17307*TPK%K0102(:)*PCONC(:,39& +&)*PCONC(:,15)+TPK%KTC21(:)*PCONC(:,42)+TPK%KTR21(:)*PCONC(:,67) +!PLOSS(O3) = +K002+K003+K019*<O3P>+K023*<OH>+K024*<HO2>+K042*<NO>+K043*<NO2>+K0 +!79*<ALKE>+K080*<BIO>+K081*<CARBO>+K082*<PAN>+K087*<ADD>+KTC1+KTR1 + PLOSS(:,1) = +TPK%K002(:)+TPK%K003(:)+TPK%K019(:)*TPK%O3P(:)+TPK%K023(:)*PCONC& +&(:,14)+TPK%K024(:)*PCONC(:,15)+TPK%K042(:)*PCONC(:,3)+TPK%K043(:)*PCONC(:,4)+T& +&PK%K079(:)*PCONC(:,19)+TPK%K080(:)*PCONC(:,20)+TPK%K081(:)*PCONC(:,25)+TPK%K08& +&2(:)*PCONC(:,27)+TPK%K087(:)*PCONC(:,37)+TPK%KTC1(:)+TPK%KTR1(:) +! +!PPROD(H2O2) = +K027*<HO2>*<HO2>+K028*<HO2>*<HO2>*<H2O>+0.01833*K079*<ALKE>*<O3 +!>+0.00100*K080*<BIO>*<O3>+KTC22*<WC_H2O2>+KTR22*<WR_H2O2> + PPROD(:,2) = +TPK%K027(:)*PCONC(:,15)*PCONC(:,15)+TPK%K028(:)*PCONC(:,15)*PCON& +&C(:,15)*TPK%H2O(:)+0.01833*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.00100*TPK%K080& +&(:)*PCONC(:,20)*PCONC(:,1)+TPK%KTC22(:)*PCONC(:,43)+TPK%KTR22(:)*PCONC(:,68) +!PLOSS(H2O2) = +K009+K026*<OH>+KTC2+KTR2 + PLOSS(:,2) = +TPK%K009(:)+TPK%K026(:)*PCONC(:,14)+TPK%KTC2(:)+TPK%KTR2(:) +! +!PPROD(NO) = +K001*<NO2>+K004*<HONO>+K007*<NO3>+K030*<O3P>*<NO2>+K046*<NO3>*<NO +!2>+KTC23*<WC_NO>+KTR23*<WR_NO> + PPROD(:,3) = +TPK%K001(:)*PCONC(:,4)+TPK%K004(:)*PCONC(:,7)+TPK%K007(:)*PCONC(& +&:,5)+TPK%K030(:)*TPK%O3P(:)*PCONC(:,4)+TPK%K046(:)*PCONC(:,5)*PCONC(:,4)+TPK%K& +&TC23(:)*PCONC(:,44)+TPK%KTR23(:)*PCONC(:,69) +!PLOSS(NO) = +K029*<O3P>+K032*<OH>+K035*<HO2>+K042*<O3>+K044*<NO>*<O2>+K044*<NO +!>*<O2>+K045*<NO3>+K090*<MO2>+K091*<ALKAP>+K092*<ALKEP>+K093*<BIOP>+K094*<AROP> +!+K095*<CARBOP>+K096*<OLN>+K130*<XO2>+KTC3+KTR3 + PLOSS(:,3) = +TPK%K029(:)*TPK%O3P(:)+TPK%K032(:)*PCONC(:,14)+TPK%K035(:)*PCONC& +&(:,15)+TPK%K042(:)*PCONC(:,1)+TPK%K044(:)*PCONC(:,3)*TPK%O2(:)+TPK%K044(:)*PCO& +&NC(:,3)*TPK%O2(:)+TPK%K045(:)*PCONC(:,5)+TPK%K090(:)*PCONC(:,32)+TPK%K091(:)*P& +&CONC(:,33)+TPK%K092(:)*PCONC(:,34)+TPK%K093(:)*PCONC(:,35)+TPK%K094(:)*PCONC(:& +&,38)+TPK%K095(:)*PCONC(:,39)+TPK%K096(:)*PCONC(:,40)+TPK%K130(:)*PCONC(:,41)+T& +&PK%KTC3(:)+TPK%KTR3(:) +! +!PPROD(NO2) = +K005*<HNO3>+0.65*K006*<HNO4>+K008*<NO3>+K017*<ONIT>+K029*<O3P>*< +!NO>+K034*<OH>*<NO3>+K035*<HO2>*<NO>+K037*<HNO4>+0.7*K038*<HO2>*<NO3>+K039*<OH> +!*<HONO>+K041*<OH>*<HNO4>+K042*<O3>*<NO>+K044*<NO>*<NO>*<O2>+K044*<NO>*<NO>*<O2 +!>+K045*<NO3>*<NO>+K045*<NO3>*<NO>+K046*<NO3>*<NO2>+K048*<N2O5>+K049*<NO3>*<NO3 +!>+K049*<NO3>*<NO3>+K071*<ONIT>*<OH>+0.10530*K074*<CARBO>*<NO3>+0.40*K078*<PAN> +!*<NO3>+0.70*K082*<PAN>*<O3>+K089*<PAN>+K090*<MO2>*<NO>+0.91541*K091*<ALKAP>*<N +!O>+K092*<ALKEP>*<NO>+0.84700*K093*<BIOP>*<NO>+0.95115*K094*<AROP>*<NO>+K095*<C +!ARBOP>*<NO>+1.81599*K096*<OLN>*<NO>+0.32440*K110*<OLN>*<MO2>+0.00000*K116*<OLN +!>*<CARBOP>+0.00000*K118*<OLN>*<OLN>+K119*<MO2>*<NO3>+K120*<ALKAP>*<NO3>+K121*< +!ALKEP>*<NO3>+K122*<BIOP>*<NO3>+K123*<AROP>*<NO3>+K124*<CARBOP>*<NO3>+1.74072*K +!125*<OLN>*<NO3>+K130*<XO2>*<NO>+K131*<XO2>*<NO3>+KTC24*<WC_NO2>+KTR24*<WR_NO2> + PPROD(:,4) = +TPK%K005(:)*PCONC(:,8)+0.65*TPK%K006(:)*PCONC(:,9)+TPK%K008(:)*P& +&CONC(:,5)+TPK%K017(:)*PCONC(:,26)+TPK%K029(:)*TPK%O3P(:)*PCONC(:,3)+TPK%K034(:& +&)*PCONC(:,14)*PCONC(:,5)+TPK%K035(:)*PCONC(:,15)*PCONC(:,3)+TPK%K037(:)*PCONC(& +&:,9)+0.7*TPK%K038(:)*PCONC(:,15)*PCONC(:,5)+TPK%K039(:)*PCONC(:,14)*PCONC(:,7)& +&+TPK%K041(:)*PCONC(:,14)*PCONC(:,9)+TPK%K042(:)*PCONC(:,1)*PCONC(:,3)+TPK%K044& +&(:)*PCONC(:,3)*PCONC(:,3)*TPK%O2(:)+TPK%K044(:)*PCONC(:,3)*PCONC(:,3)*TPK%O2(:& +&)+TPK%K045(:)*PCONC(:,5)*PCONC(:,3)+TPK%K045(:)*PCONC(:,5)*PCONC(:,3)+TPK%K046& +&(:)*PCONC(:,5)*PCONC(:,4)+TPK%K048(:)*PCONC(:,6)+TPK%K049(:)*PCONC(:,5)*PCONC(& +&:,5)+TPK%K049(:)*PCONC(:,5)*PCONC(:,5)+TPK%K071(:)*PCONC(:,26)*PCONC(:,14)+0.1& +&0530*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.40*TPK%K078(:)*PCONC(:,27)*PCONC(:,5& +&)+0.70*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+TPK%K089(:)*PCONC(:,27)+TPK%K090(:)*& +&PCONC(:,32)*PCONC(:,3)+0.91541*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+TPK%K092(:)*& +&PCONC(:,34)*PCONC(:,3)+0.84700*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0.95115*TPK%& +&K094(:)*PCONC(:,38)*PCONC(:,3)+TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+1.81599*TPK%& +&K096(:)*PCONC(:,40)*PCONC(:,3)+0.32440*TPK%K110(:)*PCONC(:,40)*PCONC(:,32)+0.0& +&0000*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)*PCONC& +&(:,40)+TPK%K119(:)*PCONC(:,32)*PCONC(:,5)+TPK%K120(:)*PCONC(:,33)*PCONC(:,5)+T& +&PK%K121(:)*PCONC(:,34)*PCONC(:,5)+TPK%K122(:)*PCONC(:,35)*PCONC(:,5)+TPK%K123(& +&:)*PCONC(:,38)*PCONC(:,5)+TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+1.74072*TPK%K125(& +&:)*PCONC(:,40)*PCONC(:,5)+TPK%K130(:)*PCONC(:,41)*PCONC(:,3)+TPK%K131(:)*PCONC& +&(:,41)*PCONC(:,5)+TPK%KTC24(:)*PCONC(:,45)+TPK%KTR24(:)*PCONC(:,70) +!PLOSS(NO2) = +K001+K030*<O3P>+K031*<O3P>+K033*<OH>+K036*<HO2>+K043*<O3>+K046*< +!NO3>+K047*<NO3>+K083*<PHO>+K085*<ADD>+K088*<CARBOP>+KTC4+KTR4 + PLOSS(:,4) = +TPK%K001(:)+TPK%K030(:)*TPK%O3P(:)+TPK%K031(:)*TPK%O3P(:)+TPK%K0& +&33(:)*PCONC(:,14)+TPK%K036(:)*PCONC(:,15)+TPK%K043(:)*PCONC(:,1)+TPK%K046(:)*P& +&CONC(:,5)+TPK%K047(:)*PCONC(:,5)+TPK%K083(:)*PCONC(:,36)+TPK%K085(:)*PCONC(:,3& +&7)+TPK%K088(:)*PCONC(:,39)+TPK%KTC4(:)+TPK%KTR4(:) +! +!PPROD(NO3) = +0.35*K006*<HNO4>+K031*<O3P>*<NO2>+K040*<OH>*<HNO3>+K043*<O3>*<NO +!2>+K048*<N2O5>+0.71893*K070*<PAN>*<OH>+0.60*K078*<PAN>*<NO3>+KTC25*<WC_NO3>+KT +!R25*<WR_NO3> + PPROD(:,5) = +0.35*TPK%K006(:)*PCONC(:,9)+TPK%K031(:)*TPK%O3P(:)*PCONC(:,4)+TP& +&K%K040(:)*PCONC(:,14)*PCONC(:,8)+TPK%K043(:)*PCONC(:,1)*PCONC(:,4)+TPK%K048(:)& +&*PCONC(:,6)+0.71893*TPK%K070(:)*PCONC(:,27)*PCONC(:,14)+0.60*TPK%K078(:)*PCONC& +&(:,27)*PCONC(:,5)+TPK%KTC25(:)*PCONC(:,46)+TPK%KTR25(:)*PCONC(:,71) +!PLOSS(NO3) = +K007+K008+K034*<OH>+K038*<HO2>+K045*<NO>+K046*<NO2>+K047*<NO2>+K +!049*<NO3>+K049*<NO3>+K072*<HCHO>+K073*<ALD>+K074*<CARBO>+K075*<ARO>+K076*<ALKE +!>+K077*<BIO>+K078*<PAN>+K119*<MO2>+K120*<ALKAP>+K121*<ALKEP>+K122*<BIOP>+K123* +!<AROP>+K124*<CARBOP>+K125*<OLN>+K131*<XO2>+KTC5+KTR5 + PLOSS(:,5) = +TPK%K007(:)+TPK%K008(:)+TPK%K034(:)*PCONC(:,14)+TPK%K038(:)*PCON& +&C(:,15)+TPK%K045(:)*PCONC(:,3)+TPK%K046(:)*PCONC(:,4)+TPK%K047(:)*PCONC(:,4)+T& +&PK%K049(:)*PCONC(:,5)+TPK%K049(:)*PCONC(:,5)+TPK%K072(:)*PCONC(:,22)+TPK%K073(& +&:)*PCONC(:,23)+TPK%K074(:)*PCONC(:,25)+TPK%K075(:)*PCONC(:,21)+TPK%K076(:)*PCO& +&NC(:,19)+TPK%K077(:)*PCONC(:,20)+TPK%K078(:)*PCONC(:,27)+TPK%K119(:)*PCONC(:,3& +&2)+TPK%K120(:)*PCONC(:,33)+TPK%K121(:)*PCONC(:,34)+TPK%K122(:)*PCONC(:,35)+TPK& +&%K123(:)*PCONC(:,38)+TPK%K124(:)*PCONC(:,39)+TPK%K125(:)*PCONC(:,40)+TPK%K131(& +&:)*PCONC(:,41)+TPK%KTC5(:)+TPK%KTR5(:) +! +!PPROD(N2O5) = +K047*<NO3>*<NO2>+KTC26*<WC_N2O5>+KTR26*<WR_N2O5> + PPROD(:,6) = +TPK%K047(:)*PCONC(:,5)*PCONC(:,4)+TPK%KTC26(:)*PCONC(:,47)+TPK%K& +&TR26(:)*PCONC(:,72) +!PLOSS(N2O5) = +K048+KTC6+KTR6 + PLOSS(:,6) = +TPK%K048(:)+TPK%KTC6(:)+TPK%KTR6(:) +! +!PPROD(HONO) = +K032*<OH>*<NO>+K085*<ADD>*<NO2>+KTC27*<WC_HONO>+KTR27*<WR_HONO> + PPROD(:,7) = +TPK%K032(:)*PCONC(:,14)*PCONC(:,3)+TPK%K085(:)*PCONC(:,37)*PCONC& +&(:,4)+TPK%KTC27(:)*PCONC(:,48)+TPK%KTR27(:)*PCONC(:,73) +!PLOSS(HONO) = +K004+K039*<OH>+KTC7+KTR7 + PLOSS(:,7) = +TPK%K004(:)+TPK%K039(:)*PCONC(:,14)+TPK%KTC7(:)+TPK%KTR7(:) +! +!PPROD(HNO3) = +K033*<OH>*<NO2>+0.3*K038*<HO2>*<NO3>+K072*<HCHO>*<NO3>+K073*<AL +!D>*<NO3>+0.91567*K074*<CARBO>*<NO3>+K075*<ARO>*<NO3>+KTC28*<WC_HNO3>+KTR28*<WR +!_HNO3> + PPROD(:,8) = +TPK%K033(:)*PCONC(:,14)*PCONC(:,4)+0.3*TPK%K038(:)*PCONC(:,15)*P& +&CONC(:,5)+TPK%K072(:)*PCONC(:,22)*PCONC(:,5)+TPK%K073(:)*PCONC(:,23)*PCONC(:,5& +&)+0.91567*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+TPK%K075(:)*PCONC(:,21)*PCONC(:,5& +&)+TPK%KTC28(:)*PCONC(:,49)+TPK%KTR28(:)*PCONC(:,74) +!PLOSS(HNO3) = +K005+K040*<OH>+KTC8+KTR8 + PLOSS(:,8) = +TPK%K005(:)+TPK%K040(:)*PCONC(:,14)+TPK%KTC8(:)+TPK%KTR8(:) +! +!PPROD(HNO4) = +K036*<HO2>*<NO2>+KTC29*<WC_HNO4>+KTR29*<WR_HNO4> + PPROD(:,9) = +TPK%K036(:)*PCONC(:,15)*PCONC(:,4)+TPK%KTC29(:)*PCONC(:,50)+TPK%& +&KTR29(:)*PCONC(:,75) +!PLOSS(HNO4) = +K006+K037+K041*<OH>+KTC9+KTR9 + PLOSS(:,9) = +TPK%K006(:)+TPK%K037(:)+TPK%K041(:)*PCONC(:,14)+TPK%KTC9(:)+TPK%& +&KTR9(:) +! +!PPROD(NH3) = +KTC30*<WC_NH3>+KTR30*<WR_NH3> + PPROD(:,10) = +TPK%KTC30(:)*PCONC(:,51)+TPK%KTR30(:)*PCONC(:,76) +!PLOSS(NH3) = +K050*<OH>+KTC10+KTR10 + PLOSS(:,10) = +TPK%K050(:)*PCONC(:,14)+TPK%KTC10(:)+TPK%KTR10(:) ! RETURN END SUBROUTINE SUB0 @@ -9951,161 +4156,156 @@ SUBROUTINE SUB1 !Indices 11 a 20 ! ! -!PPROD(CO) = +K044*<HCHO>+K045*<HCHO>+K046*<OH>*<HCHO>+K047*<NO3>*<HCHO>+0.315* -!K051*<O3>*<ETHE>+0.6*K052*<O>*<ETHE>+0.56*K056*<O3>*<OLEL>+K059*<ALD2>+0.461*K -!066*<O3>*<ISOP>+0.56*K076*<O3>*<OLEH>+0.445*K086*<O3>*<BIOL>+0.445*K090*<O3>*< -!BIOH>+K119*<NO>*<RO24>+K120*<RO2T>*<RO24>+K121*<HO2>*<RO24>+K276*<MGLY>+0.56*K -!281*<O3>*<MVK>+0.41*K282*<O3>*<MCR>+0.15*K284*<O>*<MCR>+K300*<NO>*<RO254>+K302 -!*<RO2T>*<RO254>+K308*<RPR1>+K314*<RPR3>+K329*<RPR8>+2.*K339*<RP16>+K340*<NO>*< -!RO258>+K342*<RO2T>*<RO258> - PPROD(:,11) = +TPK%K044(:)*PCONC(:,28)+TPK%K045(:)*PCONC(:,28)+TPK%K046(:)*PCO& -&NC(:,15)*PCONC(:,28)+TPK%K047(:)*PCONC(:,8)*PCONC(:,28)+0.315*TPK%K051(:)*PCON& -&C(:,3)*PCONC(:,16)+0.6*TPK%K052(:)*TPK%O(:)*PCONC(:,16)+0.56*TPK%K056(:)*PCONC& -&(:,3)*PCONC(:,17)+TPK%K059(:)*PCONC(:,29)+0.461*TPK%K066(:)*PCONC(:,3)*PCONC(:& -&,35)+0.56*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+0.445*TPK%K086(:)*PCONC(:,3)*PCON& -&C(:,36)+0.445*TPK%K090(:)*PCONC(:,3)*PCONC(:,37)+TPK%K119(:)*PCONC(:,1)*TPK%RO& -&24(:)+TPK%K120(:)*PCONC(:,85)*TPK%RO24(:)+TPK%K121(:)*PCONC(:,10)*TPK%RO24(:)+& -&TPK%K276(:)*PCONC(:,41)+0.56*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.41*TPK%K282(& -&:)*PCONC(:,3)*PCONC(:,40)+0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40)+TPK%K300(:)*PC& -&ONC(:,1)*TPK%RO254(:)+TPK%K302(:)*PCONC(:,85)*TPK%RO254(:)+TPK%K308(:)*PCONC(:& -&,69)+TPK%K314(:)*PCONC(:,57)+TPK%K329(:)*PCONC(:,71)+2.*TPK%K339(:)*PCONC(:,74& -&)+TPK%K340(:)*PCONC(:,1)*TPK%RO258(:)+TPK%K342(:)*PCONC(:,85)*TPK%RO258(:) -!PLOSS(CO) = +K024*<OH> - PLOSS(:,11) = +TPK%K024(:)*PCONC(:,15) -! -!PPROD(H2O2) = +K031*<HO2>*<HO2>+K032*<HO2>*<H2O>*<HO2>+0.055*K086*<O3>*<BIOL>+ -!0.055*K090*<O3>*<BIOH>+KTC33*<WC_H2O2>+KTR33*<WR_H2O2> - PPROD(:,12) = +TPK%K031(:)*PCONC(:,10)*PCONC(:,10)+TPK%K032(:)*PCONC(:,10)*TPK& -&%H2O(:)*PCONC(:,10)+0.055*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)+0.055*TPK%K090(:)& -&*PCONC(:,3)*PCONC(:,37)+TPK%KTC33(:)*PCONC(:,89)+TPK%KTR33(:)*PCONC(:,126) -!PLOSS(H2O2) = +K036+K037*<OH>+KTC2+KTR2 - PLOSS(:,12) = +TPK%K036(:)+TPK%K037(:)*PCONC(:,15)+TPK%KTC2(:)+TPK%KTR2(:) -! -!PPROD(SO2) = +KTC45*<WC_SO2>+KTR45*<WR_SO2> - PPROD(:,13) = +TPK%KTC45(:)*PCONC(:,101)+TPK%KTR45(:)*PCONC(:,138) -!PLOSS(SO2) = +K035*<OH>+KTC14+KTR14 - PLOSS(:,13) = +TPK%K035(:)*PCONC(:,15)+TPK%KTC14(:)+TPK%KTR14(:) -! -!PPROD(H2SO4) = +K035*<OH>*<SO2>+KTC46*<WC_H2SO4>+KTR46*<WR_H2SO4> - PPROD(:,14) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,13)+TPK%KTC46(:)*PCONC(:,102)+T& -&PK%KTR46(:)*PCONC(:,139) -!PLOSS(H2SO4) = +K346+KTC15+KTR15 - PLOSS(:,14) = +TPK%K346(:)+TPK%KTC15(:)+TPK%KTR15(:) -! -!PPROD(OH) = +K017*<H2O>*<OSD>+K017*<H2O>*<OSD>+0.9*K020*<HONO>+K026*<HO2>*<NO> -!+K030*<HO2>*<O3>+0.8*K033*<HO2>*<NO3>+2.*K036*<H2O2>+0.06*K051*<O3>*<ETHE>+0.3 -!6*K056*<O3>*<OLEL>+0.664*K066*<O3>*<ISOP>+0.36*K076*<O3>*<OLEH>+0.89*K086*<O3> -!*<BIOL>+0.89*K090*<O3>*<BIOH>+K112*<HO2>*<RO21>+K115*<HO2>*<RO22>+K118*<HO2>*< -!RO23>+K121*<HO2>*<RO24>+K124*<HO2>*<RO25>+K146*<HO2>*<RO27>+K152*<HO2>*<RO29>+ -!K155*<HO2>*<RO210>+K158*<HO2>*<RO211>+K161*<HO2>*<RO212>+K164*<HO2>*<RO213>+K1 -!70*<HO2>*<RO214>+K173*<HO2>*<RO215>+K176*<HO2>*<RO216>+K179*<HO2>*<RO217>+K182 -!*<HO2>*<RO218>+K185*<HO2>*<RO219>+K188*<HO2>*<RO220>+K191*<HO2>*<RO221>+K194*< -!HO2>*<RO222>+K197*<HO2>*<RO223>+K200*<HO2>*<RO224>+K203*<HO2>*<RO225>+K206*<HO -!2>*<RO226>+K209*<HO2>*<RO227>+K212*<HO2>*<RO228>+K215*<HO2>*<RO229>+K218*<HO2> -!*<RO240>+K220*<HO2>*<RO230>+K223*<HO2>*<RO231>+K226*<HO2>*<RO232>+K229*<HO2>*< -!RO241>+K233*<HO2>*<RO233>+K236*<HO2>*<RO242>+K240*<HO2>*<RO234>+K243*<HO2>*<RO -!243>+K247*<HO2>*<RO235>+K250*<HO2>*<RO244>+K254*<HO2>*<RO236>+K257*<HO2>*<RO24 -!5>+K261*<HO2>*<RO237>+K264*<HO2>*<RO246>+K268*<HO2>*<RO238>+K271*<HO2>*<RO247> -!+0.36*K281*<O3>*<MVK>+0.82*K282*<O3>*<MCR>+K287*<HO2>*<RO249>+K293*<RO2T>*<RO2 -!51>+K296*<RO2T>*<RO252>+K299*<RO2T>*<RO253>+K339*<RP16>+K340*<NO>*<RO258>+K342 -!*<RO2T>*<RO258>+KTC42*<WC_OH>+KTR42*<WR_OH> - PPROD(:,15) = +TPK%K017(:)*TPK%H2O(:)*TPK%OSD(:)+TPK%K017(:)*TPK%H2O(:)*TPK%OS& -&D(:)+0.9*TPK%K020(:)*PCONC(:,4)+TPK%K026(:)*PCONC(:,10)*PCONC(:,1)+TPK%K030(:)& -&*PCONC(:,10)*PCONC(:,3)+0.8*TPK%K033(:)*PCONC(:,10)*PCONC(:,8)+2.*TPK%K036(:)*& -&PCONC(:,12)+0.06*TPK%K051(:)*PCONC(:,3)*PCONC(:,16)+0.36*TPK%K056(:)*PCONC(:,3& -&)*PCONC(:,17)+0.664*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+0.36*TPK%K076(:)*PCONC(& -&:,3)*PCONC(:,18)+0.89*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)+0.89*TPK%K090(:)*PCON& -&C(:,3)*PCONC(:,37)+TPK%K112(:)*PCONC(:,10)*PCONC(:,86)+TPK%K115(:)*PCONC(:,10)& -&*TPK%RO22(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO23(:)+TPK%K121(:)*PCONC(:,10)*TPK%R& -&O24(:)+TPK%K124(:)*PCONC(:,10)*PCONC(:,87)+TPK%K146(:)*PCONC(:,10)*TPK%RO27(:)& -&+TPK%K152(:)*PCONC(:,10)*TPK%RO29(:)+TPK%K155(:)*PCONC(:,10)*TPK%RO210(:)+TPK%& -&K158(:)*PCONC(:,10)*TPK%RO211(:)+TPK%K161(:)*PCONC(:,10)*TPK%RO212(:)+TPK%K164& -&(:)*PCONC(:,10)*TPK%RO213(:)+TPK%K170(:)*PCONC(:,10)*TPK%RO214(:)+TPK%K173(:)*& -&PCONC(:,10)*TPK%RO215(:)+TPK%K176(:)*PCONC(:,10)*TPK%RO216(:)+TPK%K179(:)*PCON& -&C(:,10)*TPK%RO217(:)+TPK%K182(:)*PCONC(:,10)*TPK%RO218(:)+TPK%K185(:)*PCONC(:,& -&10)*TPK%RO219(:)+TPK%K188(:)*PCONC(:,10)*TPK%RO220(:)+TPK%K191(:)*PCONC(:,10)*& -&TPK%RO221(:)+TPK%K194(:)*PCONC(:,10)*TPK%RO222(:)+TPK%K197(:)*PCONC(:,10)*TPK%& -&RO223(:)+TPK%K200(:)*PCONC(:,10)*TPK%RO224(:)+TPK%K203(:)*PCONC(:,10)*TPK%RO22& -&5(:)+TPK%K206(:)*PCONC(:,10)*TPK%RO226(:)+TPK%K209(:)*PCONC(:,10)*TPK%RO227(:)& -&+TPK%K212(:)*PCONC(:,10)*TPK%RO228(:)+TPK%K215(:)*PCONC(:,10)*TPK%RO229(:)+TPK& -&%K218(:)*PCONC(:,10)*TPK%RO240(:)+TPK%K220(:)*PCONC(:,10)*TPK%RO230(:)+TPK%K22& -&3(:)*PCONC(:,10)*TPK%RO231(:)+TPK%K226(:)*PCONC(:,10)*TPK%RO232(:)+TPK%K229(:)& -&*PCONC(:,10)*TPK%RO241(:)+TPK%K233(:)*PCONC(:,10)*TPK%RO233(:)+TPK%K236(:)*PCO& -&NC(:,10)*TPK%RO242(:)+TPK%K240(:)*PCONC(:,10)*TPK%RO234(:)+TPK%K243(:)*PCONC(:& -&,10)*TPK%RO243(:)+TPK%K247(:)*PCONC(:,10)*TPK%RO235(:)+TPK%K250(:)*PCONC(:,10)& -&*TPK%RO244(:)+TPK%K254(:)*PCONC(:,10)*TPK%RO236(:)+TPK%K257(:)*PCONC(:,10)*TPK& -&%RO245(:)+TPK%K261(:)*PCONC(:,10)*TPK%RO237(:)+TPK%K264(:)*PCONC(:,10)*TPK%RO2& -&46(:)+TPK%K268(:)*PCONC(:,10)*TPK%RO238(:)+TPK%K271(:)*PCONC(:,10)*TPK%RO247(:& -&)+0.36*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.82*TPK%K282(:)*PCONC(:,3)*PCONC(:,& -&40)+TPK%K287(:)*PCONC(:,10)*TPK%RO249(:)+TPK%K293(:)*PCONC(:,85)*TPK%RO251(:)+& -&TPK%K296(:)*PCONC(:,85)*TPK%RO252(:)+TPK%K299(:)*PCONC(:,85)*TPK%RO253(:)+TPK%& -&K339(:)*PCONC(:,74)+TPK%K340(:)*PCONC(:,1)*TPK%RO258(:)+TPK%K342(:)*PCONC(:,85& -&)*TPK%RO258(:)+TPK%KTC42(:)*PCONC(:,98)+TPK%KTR42(:)*PCONC(:,135) -!PLOSS(OH) = +K019*<NO>+K022*<NO2>+K023*<HNO3>+K024*<CO>+K025*<O3>+K029*<HNO4>+ -!K035*<SO2>+K037*<H2O2>+K039*<HONO>+K040*<NO3>+K042*<HO2>+K043*<CH4>+K046*<HCHO -!>+K048*<MEOH>+K049*<ETHE>+K053*<ETOH>+K054*<OLEL>+K058*<ALKL>+K060*<ALD2>+K062 -!*<KETL>+K064*<ISOP>+K068*<MTBE>+K069*<ALCH>+K070*<KETH>+K073*<AROO>+K074*<OLEH -!>+K078*<ALKM>+K079*<AROL>+K080*<AROH>+K082*<ARAL>+K083*<ARAC>+K084*<BIOL>+K088 -!*<BIOH>+K092*<PAH>+K093*<ALKH>+K272*<MVK>+K273*<MCR>+K274*<MGLY>+K303*<RPR5>+K -!304*<RPR1>+K305*<RP16>+K306*<RPRL>+K312*<RPR3>+K322*<RPR7>+K323*<RPG7>+K324*<R -!PR8>+K325*<RP10>+K326*<RP11>+K334*<RPG3>+K335*<RPG2>+K337*<RP18>+K345*<NH3>+K3 -!47*<ORA1>+K348*<ORA2>+K349*<ACID>+KTC11+KTR11 - PLOSS(:,15) = +TPK%K019(:)*PCONC(:,1)+TPK%K022(:)*PCONC(:,2)+TPK%K023(:)*PCONC& -&(:,5)+TPK%K024(:)*PCONC(:,11)+TPK%K025(:)*PCONC(:,3)+TPK%K029(:)*PCONC(:,6)+TP& -&K%K035(:)*PCONC(:,13)+TPK%K037(:)*PCONC(:,12)+TPK%K039(:)*PCONC(:,4)+TPK%K040(& -&:)*PCONC(:,8)+TPK%K042(:)*PCONC(:,10)+TPK%K043(:)*TPK%CH4(:)+TPK%K046(:)*PCONC& -&(:,28)+TPK%K048(:)*PCONC(:,32)+TPK%K049(:)*PCONC(:,16)+TPK%K053(:)*PCONC(:,33)& -&+TPK%K054(:)*PCONC(:,17)+TPK%K058(:)*PCONC(:,19)+TPK%K060(:)*PCONC(:,29)+TPK%K& -&062(:)*PCONC(:,30)+TPK%K064(:)*PCONC(:,35)+TPK%K068(:)*PCONC(:,38)+TPK%K069(:)& -&*PCONC(:,34)+TPK%K070(:)*PCONC(:,31)+TPK%K073(:)*PCONC(:,24)+TPK%K074(:)*PCONC& -&(:,18)+TPK%K078(:)*PCONC(:,20)+TPK%K079(:)*PCONC(:,23)+TPK%K080(:)*PCONC(:,22)& -&+TPK%K082(:)*PCONC(:,25)+TPK%K083(:)*PCONC(:,26)+TPK%K084(:)*PCONC(:,36)+TPK%K& -&088(:)*PCONC(:,37)+TPK%K092(:)*PCONC(:,27)+TPK%K093(:)*PCONC(:,21)+TPK%K272(:)& -&*PCONC(:,39)+TPK%K273(:)*PCONC(:,40)+TPK%K274(:)*PCONC(:,41)+TPK%K303(:)*PCONC& -&(:,70)+TPK%K304(:)*PCONC(:,69)+TPK%K305(:)*PCONC(:,74)+TPK%K306(:)*PCONC(:,75)& -&+TPK%K312(:)*PCONC(:,57)+TPK%K322(:)*PCONC(:,62)+TPK%K323(:)*PCONC(:,63)+TPK%K& -&324(:)*PCONC(:,71)+TPK%K325(:)*PCONC(:,72)+TPK%K326(:)*PCONC(:,73)+TPK%K334(:)& -&*PCONC(:,52)+TPK%K335(:)*PCONC(:,50)+TPK%K337(:)*PCONC(:,51)+TPK%K345(:)*PCONC& -&(:,9)+TPK%K347(:)*PCONC(:,43)+TPK%K348(:)*PCONC(:,44)+TPK%K349(:)*PCONC(:,45)+& -&TPK%KTC11(:)+TPK%KTR11(:) -! -!PPROD(ETHE) = 0.0 - PPROD(:,16) = 0.0 -!PLOSS(ETHE) = +K049*<OH>+K050*<NO3>+K051*<O3>+K052*<O> - PLOSS(:,16) = +TPK%K049(:)*PCONC(:,15)+TPK%K050(:)*PCONC(:,8)+TPK%K051(:)*PCON& -&C(:,3)+TPK%K052(:)*TPK%O(:) -! -!PPROD(OLEL) = +0.054*K066*<O3>*<ISOP>+0.925*K067*<O>*<ISOP>+TPK%CF5*K150*<NO>* -!<RO29>+0.5*K166*<HO2>*<RO239>+TPK%CF7*K168*<NO>*<RO214>+0.5*K289*<HO2>*<RO250> - PPROD(:,17) = +0.054*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+0.925*TPK%K067(:)*TPK%& -&O(:)*PCONC(:,35)+TPK%CF5*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:)+0.5*TPK%K166(:)*PC& -&ONC(:,10)*TPK%RO239(:)+TPK%CF7*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:)+0.5*TPK%K28& -&9(:)*PCONC(:,10)*TPK%RO250(:) -!PLOSS(OLEL) = +K054*<OH>+K055*<NO3>+K056*<O3>+K057*<O> - PLOSS(:,17) = +TPK%K054(:)*PCONC(:,15)+TPK%K055(:)*PCONC(:,8)+TPK%K056(:)*PCON& -&C(:,3)+TPK%K057(:)*TPK%O(:) -! -!PPROD(OLEH) = 0.0 +!PPROD(SO2) = +KTC34*<WC_SO2>+KTR34*<WR_SO2> + PPROD(:,11) = +TPK%KTC34(:)*PCONC(:,55)+TPK%KTR34(:)*PCONC(:,80) +!PLOSS(SO2) = +K052*<OH>+KTC14+KTR14 + PLOSS(:,11) = +TPK%K052(:)*PCONC(:,14)+TPK%KTC14(:)+TPK%KTR14(:) +! +!PPROD(SULF) = +K052*<OH>*<SO2>+KTC35*<WC_SULF>+KTR35*<WR_SULF> + PPROD(:,12) = +TPK%K052(:)*PCONC(:,14)*PCONC(:,11)+TPK%KTC35(:)*PCONC(:,56)+TP& +&K%KTR35(:)*PCONC(:,81) +!PLOSS(SULF) = +K132+KTC15+KTR15 + PLOSS(:,12) = +TPK%K132(:)+TPK%KTC15(:)+TPK%KTR15(:) +! +!PPROD(CO) = +K010*<HCHO>+K011*<HCHO>+K012*<ALD>+0.91924*K016*<CARBO>+0.01*K054 +!*<BIO>*<O3P>+0.00878*K058*<ALKA>*<OH>+K062*<HCHO>*<OH>+1.01732*K065*<CARBO>*<O +!H>+K072*<HCHO>*<NO3>+1.33723*K074*<CARBO>*<NO3>+0.35120*K079*<ALKE>*<O3>+0.360 +!00*K080*<BIO>*<O3>+0.64728*K081*<CARBO>*<O3>+0.13*K082*<PAN>*<O3> + PPROD(:,13) = +TPK%K010(:)*PCONC(:,22)+TPK%K011(:)*PCONC(:,22)+TPK%K012(:)*PCO& +&NC(:,23)+0.91924*TPK%K016(:)*PCONC(:,25)+0.01*TPK%K054(:)*PCONC(:,20)*TPK%O3P(& +&:)+0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+TPK%K062(:)*PCONC(:,22)*PCONC(:& +&,14)+1.01732*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+TPK%K072(:)*PCONC(:,22)*PCONC& +&(:,5)+1.33723*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.35120*TPK%K079(:)*PCONC(:,1& +&9)*PCONC(:,1)+0.36000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.64728*TPK%K081(:)*P& +&CONC(:,25)*PCONC(:,1)+0.13*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PLOSS(CO) = +K053*<OH> + PLOSS(:,13) = +TPK%K053(:)*PCONC(:,14) +! +!PPROD(OH) = +K004*<HONO>+K005*<HNO3>+0.35*K006*<HNO4>+K009*<H2O2>+K009*<H2O2>+ +!K013*<OP1>+K014*<OP2>+K022*<O1D>*<H2O>+K022*<O1D>*<H2O>+K024*<O3>*<HO2>+K035*< +!HO2>*<NO>+0.7*K038*<HO2>*<NO3>+0.02*K054*<BIO>*<O3P>+0.00878*K058*<ALKA>*<OH>+ +!0.35*K068*<OP1>*<OH>+0.44925*K069*<OP2>*<OH>+0.39435*K079*<ALKE>*<O3>+0.28000* +!K080*<BIO>*<O3>+0.20595*K081*<CARBO>*<O3>+0.036*K082*<PAN>*<O3>+K087*<ADD>*<O3 +!>+KTC31*<WC_OH>+KTR31*<WR_OH> + PPROD(:,14) = +TPK%K004(:)*PCONC(:,7)+TPK%K005(:)*PCONC(:,8)+0.35*TPK%K006(:)*& +&PCONC(:,9)+TPK%K009(:)*PCONC(:,2)+TPK%K009(:)*PCONC(:,2)+TPK%K013(:)*PCONC(:,2& +&8)+TPK%K014(:)*PCONC(:,29)+TPK%K022(:)*TPK%O1D(:)*TPK%H2O(:)+TPK%K022(:)*TPK%O& +&1D(:)*TPK%H2O(:)+TPK%K024(:)*PCONC(:,1)*PCONC(:,15)+TPK%K035(:)*PCONC(:,15)*PC& +&ONC(:,3)+0.7*TPK%K038(:)*PCONC(:,15)*PCONC(:,5)+0.02*TPK%K054(:)*PCONC(:,20)*T& +&PK%O3P(:)+0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0.35*TPK%K068(:)*PCONC(:& +&,28)*PCONC(:,14)+0.44925*TPK%K069(:)*PCONC(:,29)*PCONC(:,14)+0.39435*TPK%K079(& +&:)*PCONC(:,19)*PCONC(:,1)+0.28000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.20595*T& +&PK%K081(:)*PCONC(:,25)*PCONC(:,1)+0.036*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+TPK& +&%K087(:)*PCONC(:,37)*PCONC(:,1)+TPK%KTC31(:)*PCONC(:,52)+TPK%KTR31(:)*PCONC(:,& +&77) +!PLOSS(OH) = +K023*<O3>+K025*<HO2>+K026*<H2O2>+K032*<NO>+K033*<NO2>+K034*<NO3>+ +!K039*<HONO>+K040*<HNO3>+K041*<HNO4>+K050*<NH3>+K051*<H2>+K052*<SO2>+K053*<CO>+ +!K056*<CH4>+K057*<ETH>+K058*<ALKA>+K059*<ALKE>+K060*<BIO>+K061*<ARO>+K062*<HCHO +!>+K063*<ALD>+K064*<KET>+K065*<CARBO>+K066*<ORA1>+K067*<ORA2>+K068*<OP1>+K069*< +!OP2>+K070*<PAN>+K071*<ONIT>+KTC11+KTR11 + PLOSS(:,14) = +TPK%K023(:)*PCONC(:,1)+TPK%K025(:)*PCONC(:,15)+TPK%K026(:)*PCON& +&C(:,2)+TPK%K032(:)*PCONC(:,3)+TPK%K033(:)*PCONC(:,4)+TPK%K034(:)*PCONC(:,5)+TP& +&K%K039(:)*PCONC(:,7)+TPK%K040(:)*PCONC(:,8)+TPK%K041(:)*PCONC(:,9)+TPK%K050(:)& +&*PCONC(:,10)+TPK%K051(:)*TPK%H2(:)+TPK%K052(:)*PCONC(:,11)+TPK%K053(:)*PCONC(:& +&,13)+TPK%K056(:)*PCONC(:,16)+TPK%K057(:)*PCONC(:,17)+TPK%K058(:)*PCONC(:,18)+T& +&PK%K059(:)*PCONC(:,19)+TPK%K060(:)*PCONC(:,20)+TPK%K061(:)*PCONC(:,21)+TPK%K06& +&2(:)*PCONC(:,22)+TPK%K063(:)*PCONC(:,23)+TPK%K064(:)*PCONC(:,24)+TPK%K065(:)*P& +&CONC(:,25)+TPK%K066(:)*PCONC(:,30)+TPK%K067(:)*PCONC(:,31)+TPK%K068(:)*PCONC(:& +&,28)+TPK%K069(:)*PCONC(:,29)+TPK%K070(:)*PCONC(:,27)+TPK%K071(:)*PCONC(:,26)+T& +&PK%KTC11(:)+TPK%KTR11(:) +! +!PPROD(HO2) = +0.65*K006*<HNO4>+K011*<HCHO>+K011*<HCHO>+K012*<ALD>+K013*<OP1>+0 +!.96205*K014*<OP2>+0.75830*K016*<CARBO>+K017*<ONIT>+K023*<O3>*<OH>+K026*<H2O2>* +!<OH>+K034*<OH>*<NO3>+K037*<HNO4>+K051*<OH>*<H2>+K052*<OH>*<SO2>+K053*<CO>*<OH> +!+0.28*K054*<BIO>*<O3P>+0.12793*K058*<ALKA>*<OH>+0.10318*K061*<ARO>*<OH>+K062*< +!HCHO>*<OH>+0.51208*K065*<CARBO>*<OH>+K066*<ORA1>*<OH>+0.02915*K069*<OP2>*<OH>+ +!0.28107*K070*<PAN>*<OH>+K072*<HCHO>*<NO3>+0.63217*K074*<CARBO>*<NO3>+0.23451*K +!079*<ALKE>*<O3>+0.30000*K080*<BIO>*<O3>+0.28441*K081*<CARBO>*<O3>+0.08*K082*<P +!AN>*<O3>+0.02*K086*<ADD>*<O2>+K090*<MO2>*<NO>+0.74265*K091*<ALKAP>*<NO>+K092*< +!ALKEP>*<NO>+0.84700*K093*<BIOP>*<NO>+0.95115*K094*<AROP>*<NO>+0.12334*K095*<CA +!RBOP>*<NO>+0.18401*K096*<OLN>*<NO>+0.66*K104*<MO2>*<MO2>+0.98383*K105*<ALKAP>* +!<MO2>+K106*<ALKEP>*<MO2>+1.00000*K107*<BIOP>*<MO2>+1.02767*K108*<AROP>*<MO2>+0 +!.82998*K109*<CARBOP>*<MO2>+0.67560*K110*<OLN>*<MO2>+0.48079*K111*<ALKAP>*<CARB +!OP>+0.50078*K112*<ALKEP>*<CARBOP>+0.50600*K113*<BIOP>*<CARBOP>+K114*<AROP>*<CA +!RBOP>+0.07566*K115*<CARBOP>*<CARBOP>+0.17599*K116*<OLN>*<CARBOP>+K117*<OLN>*<O +!LN>+0.00000*K118*<OLN>*<OLN>+K119*<MO2>*<NO3>+0.81290*K120*<ALKAP>*<NO3>+K121* +!<ALKEP>*<NO3>+K122*<BIOP>*<NO3>+K123*<AROP>*<NO3>+0.04915*K124*<CARBOP>*<NO3>+ +!0.25928*K125*<OLN>*<NO3>+K127*<XO2>*<MO2>+KTC32*<WC_HO2>+KTR32*<WR_HO2> + PPROD(:,15) = +0.65*TPK%K006(:)*PCONC(:,9)+TPK%K011(:)*PCONC(:,22)+TPK%K011(:)& +&*PCONC(:,22)+TPK%K012(:)*PCONC(:,23)+TPK%K013(:)*PCONC(:,28)+0.96205*TPK%K014(& +&:)*PCONC(:,29)+0.75830*TPK%K016(:)*PCONC(:,25)+TPK%K017(:)*PCONC(:,26)+TPK%K02& +&3(:)*PCONC(:,1)*PCONC(:,14)+TPK%K026(:)*PCONC(:,2)*PCONC(:,14)+TPK%K034(:)*PCO& +&NC(:,14)*PCONC(:,5)+TPK%K037(:)*PCONC(:,9)+TPK%K051(:)*PCONC(:,14)*TPK%H2(:)+T& +&PK%K052(:)*PCONC(:,14)*PCONC(:,11)+TPK%K053(:)*PCONC(:,13)*PCONC(:,14)+0.28*TP& +&K%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.12793*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0& +&.10318*TPK%K061(:)*PCONC(:,21)*PCONC(:,14)+TPK%K062(:)*PCONC(:,22)*PCONC(:,14)& +&+0.51208*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+TPK%K066(:)*PCONC(:,30)*PCONC(:,1& +&4)+0.02915*TPK%K069(:)*PCONC(:,29)*PCONC(:,14)+0.28107*TPK%K070(:)*PCONC(:,27)& +&*PCONC(:,14)+TPK%K072(:)*PCONC(:,22)*PCONC(:,5)+0.63217*TPK%K074(:)*PCONC(:,25& +&)*PCONC(:,5)+0.23451*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.30000*TPK%K080(:)*PC& +&ONC(:,20)*PCONC(:,1)+0.28441*TPK%K081(:)*PCONC(:,25)*PCONC(:,1)+0.08*TPK%K082(& +&:)*PCONC(:,27)*PCONC(:,1)+0.02*TPK%K086(:)*PCONC(:,37)*TPK%O2(:)+TPK%K090(:)*P& +&CONC(:,32)*PCONC(:,3)+0.74265*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+TPK%K092(:)*P& +&CONC(:,34)*PCONC(:,3)+0.84700*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0.95115*TPK%K& +&094(:)*PCONC(:,38)*PCONC(:,3)+0.12334*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+0.184& +&01*TPK%K096(:)*PCONC(:,40)*PCONC(:,3)+0.66*TPK%K104(:)*PCONC(:,32)*PCONC(:,32)& +&+0.98383*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+TPK%K106(:)*PCONC(:,34)*PCONC(:,3& +&2)+1.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32)+1.02767*TPK%K108(:)*PCONC(:,38)& +&*PCONC(:,32)+0.82998*TPK%K109(:)*PCONC(:,39)*PCONC(:,32)+0.67560*TPK%K110(:)*P& +&CONC(:,40)*PCONC(:,32)+0.48079*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.50078*TPK& +&%K112(:)*PCONC(:,34)*PCONC(:,39)+0.50600*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+T& +&PK%K114(:)*PCONC(:,38)*PCONC(:,39)+0.07566*TPK%K115(:)*PCONC(:,39)*PCONC(:,39)& +&+0.17599*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+TPK%K117(:)*PCONC(:,40)*PCONC(:,4& +&0)+0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40)+TPK%K119(:)*PCONC(:,32)*PCONC(:& +&,5)+0.81290*TPK%K120(:)*PCONC(:,33)*PCONC(:,5)+TPK%K121(:)*PCONC(:,34)*PCONC(:& +&,5)+TPK%K122(:)*PCONC(:,35)*PCONC(:,5)+TPK%K123(:)*PCONC(:,38)*PCONC(:,5)+0.04& +&915*TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+0.25928*TPK%K125(:)*PCONC(:,40)*PCONC(:& +&,5)+TPK%K127(:)*PCONC(:,41)*PCONC(:,32)+TPK%KTC32(:)*PCONC(:,53)+TPK%KTR32(:)*& +&PCONC(:,78) +!PLOSS(HO2) = +K024*<O3>+K025*<OH>+K027*<HO2>+K027*<HO2>+K028*<HO2>*<H2O>+K028* +!<HO2>*<H2O>+K035*<NO>+K036*<NO2>+K038*<NO3>+K084*<PHO>+K097*<MO2>+K098*<ALKAP> +!+K099*<ALKEP>+K0100*<BIOP>+K0101*<AROP>+K0102*<CARBOP>+K103*<OLN>+K126*<XO2>+K +!TC12+KTR12 + PLOSS(:,15) = +TPK%K024(:)*PCONC(:,1)+TPK%K025(:)*PCONC(:,14)+TPK%K027(:)*PCON& +&C(:,15)+TPK%K027(:)*PCONC(:,15)+TPK%K028(:)*PCONC(:,15)*TPK%H2O(:)+TPK%K028(:)& +&*PCONC(:,15)*TPK%H2O(:)+TPK%K035(:)*PCONC(:,3)+TPK%K036(:)*PCONC(:,4)+TPK%K038& +&(:)*PCONC(:,5)+TPK%K084(:)*PCONC(:,36)+TPK%K097(:)*PCONC(:,32)+TPK%K098(:)*PCO& +&NC(:,33)+TPK%K099(:)*PCONC(:,34)+TPK%K0100(:)*PCONC(:,35)+TPK%K0101(:)*PCONC(:& +&,38)+TPK%K0102(:)*PCONC(:,39)+TPK%K103(:)*PCONC(:,40)+TPK%K126(:)*PCONC(:,41)+& +&TPK%KTC12(:)+TPK%KTR12(:) +! +!PPROD(CH4) = +0.04300*K079*<ALKE>*<O3> + PPROD(:,16) = +0.04300*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PLOSS(CH4) = +K056*<OH> + PLOSS(:,16) = +TPK%K056(:)*PCONC(:,14) +! +!PPROD(ETH) = +0.03196*K079*<ALKE>*<O3> + PPROD(:,17) = +0.03196*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PLOSS(ETH) = +K057*<OH> + PLOSS(:,17) = +TPK%K057(:)*PCONC(:,14) +! +!PPROD(ALKA) = 0.0 PPROD(:,18) = 0.0 -!PLOSS(OLEH) = +K074*<OH>+K075*<NO3>+K076*<O3>+K077*<O> - PLOSS(:,18) = +TPK%K074(:)*PCONC(:,15)+TPK%K075(:)*PCONC(:,8)+TPK%K076(:)*PCON& -&C(:,3)+TPK%K077(:)*TPK%O(:) -! -!PPROD(ALKL) = +0.1*K056*<O3>*<OLEL>+0.5*K057*<O>*<OLEL>+TPK%CF3*K122*<NO>*<RO2 -!5>+TPK%CF12*K171*<NO>*<RO215>+TPK%CF16*K172*<RO2T>*<RO215>+TPK%CF16*K173*<HO2> -!*<RO215> - PPROD(:,19) = +0.1*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+0.5*TPK%K057(:)*TPK%O(:)& -&*PCONC(:,17)+TPK%CF3*TPK%K122(:)*PCONC(:,1)*PCONC(:,87)+TPK%CF12*TPK%K171(:)*P& -&CONC(:,1)*TPK%RO215(:)+TPK%CF16*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:)+TPK%CF16*& -&TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) -!PLOSS(ALKL) = +K058*<OH> - PLOSS(:,19) = +TPK%K058(:)*PCONC(:,15) -! -!PPROD(ALKM) = +0.1*K076*<O3>*<OLEH>+0.5*K077*<O>*<OLEH> - PPROD(:,20) = +0.1*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+0.5*TPK%K077(:)*TPK%O(:)& -&*PCONC(:,18) -!PLOSS(ALKM) = +K078*<OH> - PLOSS(:,20) = +TPK%K078(:)*PCONC(:,15) +!PLOSS(ALKA) = +K058*<OH> + PLOSS(:,18) = +TPK%K058(:)*PCONC(:,14) +! +!PPROD(ALKE) = +0.91868*K054*<BIO>*<O3P>+0.00000*K079*<ALKE>*<O3>+0.37388*K080* +!<BIO>*<O3>+0.37815*K093*<BIOP>*<NO>+0.48074*K107*<BIOP>*<MO2>+0.24463*K113*<BI +!OP>*<CARBOP>+0.42729*K122*<BIOP>*<NO3> + PPROD(:,19) = +0.91868*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.00000*TPK%K079(:)*& +&PCONC(:,19)*PCONC(:,1)+0.37388*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.37815*TPK%& +&K093(:)*PCONC(:,35)*PCONC(:,3)+0.48074*TPK%K107(:)*PCONC(:,35)*PCONC(:,32)+0.2& +&4463*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+0.42729*TPK%K122(:)*PCONC(:,35)*PCONC& +&(:,5) +!PLOSS(ALKE) = +K059*<OH>+K076*<NO3>+K079*<O3> + PLOSS(:,19) = +TPK%K059(:)*PCONC(:,14)+TPK%K076(:)*PCONC(:,5)+TPK%K079(:)*PCON& +&C(:,1) +! +!PPROD(BIO) = 0.0 + PPROD(:,20) = 0.0 +!PLOSS(BIO) = +K054*<O3P>+K060*<OH>+K077*<NO3>+K080*<O3> + PLOSS(:,20) = +TPK%K054(:)*TPK%O3P(:)+TPK%K060(:)*PCONC(:,14)+TPK%K077(:)*PCON& +&C(:,5)+TPK%K080(:)*PCONC(:,1) ! RETURN END SUBROUTINE SUB1 @@ -10115,122 +4315,189 @@ SUBROUTINE SUB2 !Indices 21 a 30 ! ! -!PPROD(ALKH) = 0.0 - PPROD(:,21) = 0.0 -!PLOSS(ALKH) = +K093*<OH> - PLOSS(:,21) = +TPK%K093(:)*PCONC(:,15) -! -!PPROD(AROH) = 0.0 - PPROD(:,22) = 0.0 -!PLOSS(AROH) = +K080*<OH> - PLOSS(:,22) = +TPK%K080(:)*PCONC(:,15) -! -!PPROD(AROL) = 0.0 - PPROD(:,23) = 0.0 -!PLOSS(AROL) = +K079*<OH> - PLOSS(:,23) = +TPK%K079(:)*PCONC(:,15) -! -!PPROD(AROO) = +0.16*K073*<OH>*<AROO>+0.16*K079*<OH>*<AROL>+0.16*K080*<OH>*<ARO -!H> - PPROD(:,24) = +0.16*TPK%K073(:)*PCONC(:,15)*PCONC(:,24)+0.16*TPK%K079(:)*PCONC& -&(:,15)*PCONC(:,23)+0.16*TPK%K080(:)*PCONC(:,15)*PCONC(:,22) -!PLOSS(AROO) = +K072*<NO3>+K073*<OH> - PLOSS(:,24) = +TPK%K072(:)*PCONC(:,8)+TPK%K073(:)*PCONC(:,15) -! -!PPROD(ARAL) = +TPK%CF24*K189*<NO>*<RO221>+K190*<RO2T>*<RO221>+K191*<HO2>*<RO22 -!1> - PPROD(:,25) = +TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:)+TPK%K190(:)*PCONC(& -&:,85)*TPK%RO221(:)+TPK%K191(:)*PCONC(:,10)*TPK%RO221(:) -!PLOSS(ARAL) = +K081*<NO3>+K082*<OH> - PLOSS(:,25) = +TPK%K081(:)*PCONC(:,8)+TPK%K082(:)*PCONC(:,15) -! -!PPROD(ARAC) = +K081*<NO3>*<ARAL>+TPK%CF39*K082*<OH>*<ARAL> - PPROD(:,26) = +TPK%K081(:)*PCONC(:,8)*PCONC(:,25)+TPK%CF39*TPK%K082(:)*PCONC(:& -&,15)*PCONC(:,25) -!PLOSS(ARAC) = +K083*<OH> - PLOSS(:,26) = +TPK%K083(:)*PCONC(:,15) -! -!PPROD(PAH) = 0.0 - PPROD(:,27) = 0.0 -!PLOSS(PAH) = +K092*<OH> - PLOSS(:,27) = +TPK%K092(:)*PCONC(:,15) -! -!PPROD(HCHO) = +K048*<OH>*<MEOH>+0.5*K051*<O3>*<ETHE>+0.5*K056*<O3>*<OLEL>+0.5* -!K066*<O3>*<ISOP>+0.5*K076*<O3>*<OLEH>+K110*<NO>*<RO21>+K111*<RO2T>*<RO21>+K112 -!*<HO2>*<RO21>+K113*<NO>*<RO22>+K114*<RO2T>*<RO22>+K115*<HO2>*<RO22>+K116*<NO>* -!<RO23>+K117*<RO2T>*<RO23>+K118*<HO2>*<RO23>+K119*<NO>*<RO24>+K120*<RO2T>*<RO24 -!>+K121*<HO2>*<RO24>+TPK%CF6*K150*<NO>*<RO29>+K151*<RO2T>*<RO29>+K152*<HO2>*<RO -!29>+K153*<NO>*<RO210>+K154*<RO2T>*<RO210>+K155*<HO2>*<RO210>+K156*<NO>*<RO211> -!+K157*<RO2T>*<RO211>+K158*<HO2>*<RO211>+K159*<NO>*<RO212>+K160*<RO2T>*<RO212>+ -!K161*<HO2>*<RO212>+K162*<NO>*<RO213>+K163*<RO2T>*<RO213>+K164*<HO2>*<RO213>+TP -!K%CF10*K171*<NO>*<RO215>+TPK%CF14*K172*<RO2T>*<RO215>+TPK%CF14*K173*<HO2>*<RO2 -!15>+K183*<NO>*<RO219>+K184*<RO2T>*<RO219>+K185*<HO2>*<RO219>+0.5*K281*<O3>*<MV -!K>+0.5*K282*<O3>*<MCR>+K285*<NO>*<RO249>+K286*<RO2T>*<RO249>+K287*<HO2>*<RO249 -!>+K291*<NO>*<RO251>+K292*<HO2>*<RO251>+K293*<RO2T>*<RO251>+K294*<NO>*<RO252>+K -!295*<HO2>*<RO252>+K296*<RO2T>*<RO252>+K297*<NO>*<RO253>+K298*<HO2>*<RO253>+K29 -!9*<RO2T>*<RO253>+KTC52*<WC_HCHO>+KTR52*<WR_HCHO> - PPROD(:,28) = +TPK%K048(:)*PCONC(:,15)*PCONC(:,32)+0.5*TPK%K051(:)*PCONC(:,3)*& -&PCONC(:,16)+0.5*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+0.5*TPK%K066(:)*PCONC(:,3)*& -&PCONC(:,35)+0.5*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+TPK%K110(:)*PCONC(:,1)*PCON& -&C(:,86)+TPK%K111(:)*PCONC(:,85)*PCONC(:,86)+TPK%K112(:)*PCONC(:,10)*PCONC(:,86& -&)+TPK%K113(:)*PCONC(:,1)*TPK%RO22(:)+TPK%K114(:)*PCONC(:,85)*TPK%RO22(:)+TPK%K& -&115(:)*PCONC(:,10)*TPK%RO22(:)+TPK%K116(:)*PCONC(:,1)*TPK%RO23(:)+TPK%K117(:)*& -&PCONC(:,85)*TPK%RO23(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO23(:)+TPK%K119(:)*PCONC(& -&:,1)*TPK%RO24(:)+TPK%K120(:)*PCONC(:,85)*TPK%RO24(:)+TPK%K121(:)*PCONC(:,10)*T& -&PK%RO24(:)+TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:)+TPK%K151(:)*PCONC(:,85)*& -&TPK%RO29(:)+TPK%K152(:)*PCONC(:,10)*TPK%RO29(:)+TPK%K153(:)*PCONC(:,1)*TPK%RO2& -&10(:)+TPK%K154(:)*PCONC(:,85)*TPK%RO210(:)+TPK%K155(:)*PCONC(:,10)*TPK%RO210(:& -&)+TPK%K156(:)*PCONC(:,1)*TPK%RO211(:)+TPK%K157(:)*PCONC(:,85)*TPK%RO211(:)+TPK& -&%K158(:)*PCONC(:,10)*TPK%RO211(:)+TPK%K159(:)*PCONC(:,1)*TPK%RO212(:)+TPK%K160& -&(:)*PCONC(:,85)*TPK%RO212(:)+TPK%K161(:)*PCONC(:,10)*TPK%RO212(:)+TPK%K162(:)*& -&PCONC(:,1)*TPK%RO213(:)+TPK%K163(:)*PCONC(:,85)*TPK%RO213(:)+TPK%K164(:)*PCONC& -&(:,10)*TPK%RO213(:)+TPK%CF10*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:)+TPK%CF14*TPK%& -&K172(:)*PCONC(:,85)*TPK%RO215(:)+TPK%CF14*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:)& -&+TPK%K183(:)*PCONC(:,1)*TPK%RO219(:)+TPK%K184(:)*PCONC(:,85)*TPK%RO219(:)+TPK%& -&K185(:)*PCONC(:,10)*TPK%RO219(:)+0.5*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.5*TP& -&K%K282(:)*PCONC(:,3)*PCONC(:,40)+TPK%K285(:)*PCONC(:,1)*TPK%RO249(:)+TPK%K286(& -&:)*PCONC(:,85)*TPK%RO249(:)+TPK%K287(:)*PCONC(:,10)*TPK%RO249(:)+TPK%K291(:)*P& -&CONC(:,1)*TPK%RO251(:)+TPK%K292(:)*PCONC(:,10)*TPK%RO251(:)+TPK%K293(:)*PCONC(& -&:,85)*TPK%RO251(:)+TPK%K294(:)*PCONC(:,1)*TPK%RO252(:)+TPK%K295(:)*PCONC(:,10)& -&*TPK%RO252(:)+TPK%K296(:)*PCONC(:,85)*TPK%RO252(:)+TPK%K297(:)*PCONC(:,1)*TPK%& -&RO253(:)+TPK%K298(:)*PCONC(:,10)*TPK%RO253(:)+TPK%K299(:)*PCONC(:,85)*TPK%RO25& -&3(:)+TPK%KTC52(:)*PCONC(:,108)+TPK%KTR52(:)*PCONC(:,145) -!PLOSS(HCHO) = +K044+K045+K046*<OH>+K047*<NO3>+KTC21+KTR21 - PLOSS(:,28) = +TPK%K044(:)+TPK%K045(:)+TPK%K046(:)*PCONC(:,15)+TPK%K047(:)*PCO& -&NC(:,8)+TPK%KTC21(:)+TPK%KTR21(:) -! -!PPROD(ALD2) = +TPK%CF1*K053*<OH>*<ETOH>+0.5*K056*<O3>*<OLEL>+0.4*K057*<O>*<OLE -!L>+0.075*K067*<O>*<ISOP>+K113*<NO>*<RO22>+K114*<RO2T>*<RO22>+K115*<HO2>*<RO22> -!+K116*<NO>*<RO23>+K117*<RO2T>*<RO23>+K118*<HO2>*<RO23>+TPK%CF4*K122*<NO>*<RO25 -!>+K123*<RO2T>*<RO25>+K124*<HO2>*<RO25>+K144*<NO>*<RO27>+K145*<RO2T>*<RO27>+K14 -!6*<HO2>*<RO27>+TPK%CF9*K171*<NO>*<RO215>+TPK%CF13*K172*<RO2T>*<RO215>+TPK%CF13 -!*K173*<HO2>*<RO215>+K174*<NO>*<RO216>+K175*<RO2T>*<RO216>+K176*<HO2>*<RO216>+0 -!.1*K281*<O3>*<MVK>+0.85*K284*<O>*<MCR>+KTC53*<WC_ALD2>+KTR53*<WR_ALD2> - PPROD(:,29) = +TPK%CF1*TPK%K053(:)*PCONC(:,15)*PCONC(:,33)+0.5*TPK%K056(:)*PCO& -&NC(:,3)*PCONC(:,17)+0.4*TPK%K057(:)*TPK%O(:)*PCONC(:,17)+0.075*TPK%K067(:)*TPK& -&%O(:)*PCONC(:,35)+TPK%K113(:)*PCONC(:,1)*TPK%RO22(:)+TPK%K114(:)*PCONC(:,85)*T& -&PK%RO22(:)+TPK%K115(:)*PCONC(:,10)*TPK%RO22(:)+TPK%K116(:)*PCONC(:,1)*TPK%RO23& -&(:)+TPK%K117(:)*PCONC(:,85)*TPK%RO23(:)+TPK%K118(:)*PCONC(:,10)*TPK%RO23(:)+TP& -&K%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87)+TPK%K123(:)*PCONC(:,85)*PCONC(:,87)+T& -&PK%K124(:)*PCONC(:,10)*PCONC(:,87)+TPK%K144(:)*PCONC(:,1)*TPK%RO27(:)+TPK%K145& -&(:)*PCONC(:,85)*TPK%RO27(:)+TPK%K146(:)*PCONC(:,10)*TPK%RO27(:)+TPK%CF9*TPK%K1& -&71(:)*PCONC(:,1)*TPK%RO215(:)+TPK%CF13*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:)+TP& -&K%CF13*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:)+TPK%K174(:)*PCONC(:,1)*TPK%RO216(:& -&)+TPK%K175(:)*PCONC(:,85)*TPK%RO216(:)+TPK%K176(:)*PCONC(:,10)*TPK%RO216(:)+0.& -&1*TPK%K281(:)*PCONC(:,3)*PCONC(:,39)+0.85*TPK%K284(:)*TPK%O(:)*PCONC(:,40)+TPK& -&%KTC53(:)*PCONC(:,109)+TPK%KTR53(:)*PCONC(:,146) -!PLOSS(ALD2) = +K059+K060*<OH>+K061*<NO3>+KTC22+KTR22 - PLOSS(:,29) = +TPK%K059(:)+TPK%K060(:)*PCONC(:,15)+TPK%K061(:)*PCONC(:,8)+TPK%& -&KTC22(:)+TPK%KTR22(:) -! -!PPROD(KETL) = +TPK%CF11*K171*<NO>*<RO215>+TPK%CF15*K172*<RO2T>*<RO215>+TPK%CF1 -!5*K173*<HO2>*<RO215>+0.85*K283*<O>*<MVK>+KTC55*<WC_KETL>+KTR55*<WR_KETL> - PPROD(:,30) = +TPK%CF11*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:)+TPK%CF15*TPK%K172(& -&:)*PCONC(:,85)*TPK%RO215(:)+TPK%CF15*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:)+0.85& -&*TPK%K283(:)*TPK%O(:)*PCONC(:,39)+TPK%KTC55(:)*PCONC(:,112)+TPK%KTR55(:)*PCONC& -&(:,149) -!PLOSS(KETL) = +K062*<OH>+K063+KTC24+KTR24 - PLOSS(:,30) = +TPK%K062(:)*PCONC(:,15)+TPK%K063(:)+TPK%KTC24(:)+TPK%KTR24(:) +!PPROD(ARO) = +0.10670*K083*<PHO>*<NO2>+1.06698*K084*<PHO>*<HO2>+K085*<ADD>*<NO +!2>+0.02*K086*<ADD>*<O2>+K087*<ADD>*<O3> + PPROD(:,21) = +0.10670*TPK%K083(:)*PCONC(:,36)*PCONC(:,4)+1.06698*TPK%K084(:)*& +&PCONC(:,36)*PCONC(:,15)+TPK%K085(:)*PCONC(:,37)*PCONC(:,4)+0.02*TPK%K086(:)*PC& +&ONC(:,37)*TPK%O2(:)+TPK%K087(:)*PCONC(:,37)*PCONC(:,1) +!PLOSS(ARO) = +K061*<OH>+K075*<NO3> + PLOSS(:,21) = +TPK%K061(:)*PCONC(:,14)+TPK%K075(:)*PCONC(:,5) +! +!PPROD(HCHO) = +K013*<OP1>+0.06517*K016*<CARBO>+0.05*K054*<BIO>*<O3P>+0.00140*K +!058*<ALKA>*<OH>+0.00000*K065*<CARBO>*<OH>+0.35*K068*<OP1>*<OH>+0.02915*K069*<O +!P2>*<OH>+0.57839*K070*<PAN>*<OH>+0.40*K078*<PAN>*<NO3>+0.48290*K079*<ALKE>*<O3 +!>+0.90000*K080*<BIO>*<O3>+0.00000*K081*<CARBO>*<O3>+0.70*K082*<PAN>*<O3>+K090* +!<MO2>*<NO>+0.03002*K091*<ALKAP>*<NO>+1.39870*K092*<ALKEP>*<NO>+0.60600*K093*<B +!IOP>*<NO>+0.05848*K095*<CARBOP>*<NO>+0.23419*K096*<OLN>*<NO>+1.33*K104*<MO2>*< +!MO2>+0.80556*K105*<ALKAP>*<MO2>+1.42894*K106*<ALKEP>*<MO2>+1.09000*K107*<BIOP> +!*<MO2>+K108*<AROP>*<MO2>+0.95723*K109*<CARBOP>*<MO2>+0.88625*K110*<OLN>*<MO2>+ +!0.07600*K111*<ALKAP>*<CARBOP>+0.68192*K112*<ALKEP>*<CARBOP>+0.34000*K113*<BIOP +!>*<CARBOP>+0.03432*K115*<CARBOP>*<CARBOP>+0.13414*K116*<OLN>*<CARBOP>+0.00000* +!K118*<OLN>*<OLN>+K119*<MO2>*<NO3>+0.03142*K120*<ALKAP>*<NO3>+1.40909*K121*<ALK +!EP>*<NO3>+0.68600*K122*<BIOP>*<NO3>+0.03175*K124*<CARBOP>*<NO3>+0.20740*K125*< +!OLN>*<NO3>+K127*<XO2>*<MO2>+KTC36*<WC_HCHO>+KTR36*<WR_HCHO> + PPROD(:,22) = +TPK%K013(:)*PCONC(:,28)+0.06517*TPK%K016(:)*PCONC(:,25)+0.05*TP& +&K%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.00140*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0& +&.00000*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.35*TPK%K068(:)*PCONC(:,28)*PCONC(& +&:,14)+0.02915*TPK%K069(:)*PCONC(:,29)*PCONC(:,14)+0.57839*TPK%K070(:)*PCONC(:,& +&27)*PCONC(:,14)+0.40*TPK%K078(:)*PCONC(:,27)*PCONC(:,5)+0.48290*TPK%K079(:)*PC& +&ONC(:,19)*PCONC(:,1)+0.90000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.00000*TPK%K0& +&81(:)*PCONC(:,25)*PCONC(:,1)+0.70*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+TPK%K090(& +&:)*PCONC(:,32)*PCONC(:,3)+0.03002*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+1.39870*T& +&PK%K092(:)*PCONC(:,34)*PCONC(:,3)+0.60600*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0& +&.05848*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+0.23419*TPK%K096(:)*PCONC(:,40)*PCON& +&C(:,3)+1.33*TPK%K104(:)*PCONC(:,32)*PCONC(:,32)+0.80556*TPK%K105(:)*PCONC(:,33& +&)*PCONC(:,32)+1.42894*TPK%K106(:)*PCONC(:,34)*PCONC(:,32)+1.09000*TPK%K107(:)*& +&PCONC(:,35)*PCONC(:,32)+TPK%K108(:)*PCONC(:,38)*PCONC(:,32)+0.95723*TPK%K109(:& +&)*PCONC(:,39)*PCONC(:,32)+0.88625*TPK%K110(:)*PCONC(:,40)*PCONC(:,32)+0.07600*& +&TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.68192*TPK%K112(:)*PCONC(:,34)*PCONC(:,39& +&)+0.34000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+0.03432*TPK%K115(:)*PCONC(:,39)*& +&PCONC(:,39)+0.13414*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+0.00000*TPK%K118(:)*PC& +&ONC(:,40)*PCONC(:,40)+TPK%K119(:)*PCONC(:,32)*PCONC(:,5)+0.03142*TPK%K120(:)*P& +&CONC(:,33)*PCONC(:,5)+1.40909*TPK%K121(:)*PCONC(:,34)*PCONC(:,5)+0.68600*TPK%K& +&122(:)*PCONC(:,35)*PCONC(:,5)+0.03175*TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+0.207& +&40*TPK%K125(:)*PCONC(:,40)*PCONC(:,5)+TPK%K127(:)*PCONC(:,41)*PCONC(:,32)+TPK%& +&KTC36(:)*PCONC(:,57)+TPK%KTR36(:)*PCONC(:,82) +!PLOSS(HCHO) = +K010+K011+K062*<OH>+K072*<NO3>+KTC16+KTR16 + PLOSS(:,22) = +TPK%K010(:)+TPK%K011(:)+TPK%K062(:)*PCONC(:,14)+TPK%K072(:)*PCO& +&NC(:,5)+TPK%KTC16(:)+TPK%KTR16(:) +! +!PPROD(ALD) = +0.96205*K014*<OP2>+0.20*K017*<ONIT>+K055*<CARBO>*<O3P>+0.08173*K +!058*<ALKA>*<OH>+0.06253*K065*<CARBO>*<OH>+0.07335*K069*<OP2>*<OH>+0.05265*K074 +!*<CARBO>*<NO3>+0.51468*K079*<ALKE>*<O3>+0.00000*K080*<BIO>*<O3>+0.15692*K081*< +!CARBO>*<O3>+0.33144*K091*<ALKAP>*<NO>+0.42125*K092*<ALKEP>*<NO>+0.00000*K093*< +!BIOP>*<NO>+0.07368*K095*<CARBOP>*<NO>+1.01182*K096*<OLN>*<NO>+0.56070*K105*<AL +!KAP>*<MO2>+0.46413*K106*<ALKEP>*<MO2>+0.00000*K107*<BIOP>*<MO2>+0.08295*K109*< +!CARBOP>*<MO2>+0.41524*K110*<OLN>*<MO2>+0.71461*K111*<ALKAP>*<CARBOP>+0.68374*K +!112*<ALKEP>*<CARBOP>+0.00000*K113*<BIOP>*<CARBOP>+0.06969*K115*<CARBOP>*<CARBO +!P>+0.42122*K116*<OLN>*<CARBOP>+0.00000*K118*<OLN>*<OLN>+0.33743*K120*<ALKAP>*< +!NO3>+0.43039*K121*<ALKEP>*<NO3>+0.00000*K122*<BIOP>*<NO3>+0.02936*K124*<CARBOP +!>*<NO3>+0.91850*K125*<OLN>*<NO3> + PPROD(:,23) = +0.96205*TPK%K014(:)*PCONC(:,29)+0.20*TPK%K017(:)*PCONC(:,26)+TP& +&K%K055(:)*PCONC(:,25)*TPK%O3P(:)+0.08173*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0& +&.06253*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.07335*TPK%K069(:)*PCONC(:,29)*PCO& +&NC(:,14)+0.05265*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.51468*TPK%K079(:)*PCONC(& +&:,19)*PCONC(:,1)+0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.15692*TPK%K081(:& +&)*PCONC(:,25)*PCONC(:,1)+0.33144*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.42125*TP& +&K%K092(:)*PCONC(:,34)*PCONC(:,3)+0.00000*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0.& +&07368*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+1.01182*TPK%K096(:)*PCONC(:,40)*PCONC& +&(:,3)+0.56070*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.46413*TPK%K106(:)*PCONC(:,& +&34)*PCONC(:,32)+0.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32)+0.08295*TPK%K109(:& +&)*PCONC(:,39)*PCONC(:,32)+0.41524*TPK%K110(:)*PCONC(:,40)*PCONC(:,32)+0.71461*& +&TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.68374*TPK%K112(:)*PCONC(:,34)*PCONC(:,39& +&)+0.00000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+0.06969*TPK%K115(:)*PCONC(:,39)*& +&PCONC(:,39)+0.42122*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+0.00000*TPK%K118(:)*PC& +&ONC(:,40)*PCONC(:,40)+0.33743*TPK%K120(:)*PCONC(:,33)*PCONC(:,5)+0.43039*TPK%K& +&121(:)*PCONC(:,34)*PCONC(:,5)+0.00000*TPK%K122(:)*PCONC(:,35)*PCONC(:,5)+0.029& +&36*TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+0.91850*TPK%K125(:)*PCONC(:,40)*PCONC(:,& +&5) +!PLOSS(ALD) = +K012+K063*<OH>+K073*<NO3> + PLOSS(:,23) = +TPK%K012(:)+TPK%K063(:)*PCONC(:,14)+TPK%K073(:)*PCONC(:,5) +! +!PPROD(KET) = +0.80*K017*<ONIT>+0.03498*K058*<ALKA>*<OH>+0.00853*K065*<CARBO>*< +!OH>+0.37591*K069*<OP2>*<OH>+0.00632*K074*<CARBO>*<NO3>+0.07377*K079*<ALKE>*<O3 +!>+0.00000*K080*<BIO>*<O3>+0.54531*K091*<ALKAP>*<NO>+0.05220*K092*<ALKEP>*<NO>+ +!0.00000*K093*<BIOP>*<NO>+0.37862*K096*<OLN>*<NO>+0.09673*K105*<ALKAP>*<MO2>+0. +!03814*K106*<ALKEP>*<MO2>+0.00000*K107*<BIOP>*<MO2>+0.09667*K110*<OLN>*<MO2>+0. +!18819*K111*<ALKAP>*<CARBOP>+0.06579*K112*<ALKEP>*<CARBOP>+0.00000*K113*<BIOP>* +!<CARBOP>+0.02190*K115*<CARBOP>*<CARBOP>+0.10822*K116*<OLN>*<CARBOP>+0.00000*K1 +!18*<OLN>*<OLN>+0.62978*K120*<ALKAP>*<NO3>+0.02051*K121*<ALKEP>*<NO3>+0.00000*K +!122*<BIOP>*<NO3>+0.34740*K125*<OLN>*<NO3> + PPROD(:,24) = +0.80*TPK%K017(:)*PCONC(:,26)+0.03498*TPK%K058(:)*PCONC(:,18)*PC& +&ONC(:,14)+0.00853*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.37591*TPK%K069(:)*PCON& +&C(:,29)*PCONC(:,14)+0.00632*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.07377*TPK%K07& +&9(:)*PCONC(:,19)*PCONC(:,1)+0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.54531& +&*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.05220*TPK%K092(:)*PCONC(:,34)*PCONC(:,3)& +&+0.00000*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0.37862*TPK%K096(:)*PCONC(:,40)*PC& +&ONC(:,3)+0.09673*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.03814*TPK%K106(:)*PCONC& +&(:,34)*PCONC(:,32)+0.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32)+0.09667*TPK%K11& +&0(:)*PCONC(:,40)*PCONC(:,32)+0.18819*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.065& +&79*TPK%K112(:)*PCONC(:,34)*PCONC(:,39)+0.00000*TPK%K113(:)*PCONC(:,35)*PCONC(:& +&,39)+0.02190*TPK%K115(:)*PCONC(:,39)*PCONC(:,39)+0.10822*TPK%K116(:)*PCONC(:,4& +&0)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40)+0.62978*TPK%K120(:)& +&*PCONC(:,33)*PCONC(:,5)+0.02051*TPK%K121(:)*PCONC(:,34)*PCONC(:,5)+0.00000*TPK& +&%K122(:)*PCONC(:,35)*PCONC(:,5)+0.34740*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PLOSS(KET) = +K015+K064*<OH> + PLOSS(:,24) = +TPK%K015(:)+TPK%K064(:)*PCONC(:,14) +! +!PPROD(CARBO) = +0.13255*K054*<BIO>*<O3P>+0.00835*K058*<ALKA>*<OH>+0.16919*K065 +!*<CARBO>*<OH>+0.21863*K070*<PAN>*<OH>+0.10530*K074*<CARBO>*<NO3>+0.00000*K076* +!<ALKE>*<NO3>+0.91741*K077*<BIO>*<NO3>+0.00000*K079*<ALKE>*<O3>+0.39754*K080*<B +!IO>*<O3>+1.07583*K081*<CARBO>*<O3>+0.03407*K091*<ALKAP>*<NO>+0.45463*K093*<BIO +!P>*<NO>+2.06993*K094*<AROP>*<NO>+0.08670*K095*<CARBOP>*<NO>+0.07976*K105*<ALKA +!P>*<MO2>+0.56064*K107*<BIOP>*<MO2>+1.99461*K108*<AROP>*<MO2>+0.15387*K109*<CAR +!BOP>*<MO2>+0.06954*K111*<ALKAP>*<CARBOP>+0.78591*K113*<BIOP>*<CARBOP>+1.99455* +!K114*<AROP>*<CARBOP>+0.10777*K115*<CARBOP>*<CARBOP>+0.03531*K120*<ALKAP>*<NO3> +!+0.61160*K122*<BIOP>*<NO3>+2.81904*K123*<AROP>*<NO3>+0.03455*K124*<CARBOP>*<NO +!3> + PPROD(:,25) = +0.13255*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.00835*TPK%K058(:)*& +&PCONC(:,18)*PCONC(:,14)+0.16919*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.21863*TP& +&K%K070(:)*PCONC(:,27)*PCONC(:,14)+0.10530*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0& +&.00000*TPK%K076(:)*PCONC(:,19)*PCONC(:,5)+0.91741*TPK%K077(:)*PCONC(:,20)*PCON& +&C(:,5)+0.00000*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.39754*TPK%K080(:)*PCONC(:,& +&20)*PCONC(:,1)+1.07583*TPK%K081(:)*PCONC(:,25)*PCONC(:,1)+0.03407*TPK%K091(:)*& +&PCONC(:,33)*PCONC(:,3)+0.45463*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+2.06993*TPK%& +&K094(:)*PCONC(:,38)*PCONC(:,3)+0.08670*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+0.07& +&976*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.56064*TPK%K107(:)*PCONC(:,35)*PCONC(& +&:,32)+1.99461*TPK%K108(:)*PCONC(:,38)*PCONC(:,32)+0.15387*TPK%K109(:)*PCONC(:,& +&39)*PCONC(:,32)+0.06954*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.78591*TPK%K113(:& +&)*PCONC(:,35)*PCONC(:,39)+1.99455*TPK%K114(:)*PCONC(:,38)*PCONC(:,39)+0.10777*& +&TPK%K115(:)*PCONC(:,39)*PCONC(:,39)+0.03531*TPK%K120(:)*PCONC(:,33)*PCONC(:,5)& +&+0.61160*TPK%K122(:)*PCONC(:,35)*PCONC(:,5)+2.81904*TPK%K123(:)*PCONC(:,38)*PC& +&ONC(:,5)+0.03455*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PLOSS(CARBO) = +K016+K055*<O3P>+K065*<OH>+K074*<NO3>+K081*<O3> + PLOSS(:,25) = +TPK%K016(:)+TPK%K055(:)*TPK%O3P(:)+TPK%K065(:)*PCONC(:,14)+TPK%& +&K074(:)*PCONC(:,5)+TPK%K081(:)*PCONC(:,1) +! +!PPROD(ONIT) = +0.60*K078*<PAN>*<NO3>+K083*<PHO>*<NO2>+0.08459*K091*<ALKAP>*<NO +!>+0.15300*K093*<BIOP>*<NO>+0.04885*K094*<AROP>*<NO>+0.18401*K096*<OLN>*<NO>+K1 +!03*<OLN>*<HO2>+0.67560*K110*<OLN>*<MO2>+0.66562*K116*<OLN>*<CARBOP>+2.00*K117* +!<OLN>*<OLN>+0.00000*K118*<OLN>*<OLN>+0.25928*K125*<OLN>*<NO3> + PPROD(:,26) = +0.60*TPK%K078(:)*PCONC(:,27)*PCONC(:,5)+TPK%K083(:)*PCONC(:,36)& +&*PCONC(:,4)+0.08459*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.15300*TPK%K093(:)*PCO& +&NC(:,35)*PCONC(:,3)+0.04885*TPK%K094(:)*PCONC(:,38)*PCONC(:,3)+0.18401*TPK%K09& +&6(:)*PCONC(:,40)*PCONC(:,3)+TPK%K103(:)*PCONC(:,40)*PCONC(:,15)+0.67560*TPK%K1& +&10(:)*PCONC(:,40)*PCONC(:,32)+0.66562*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+2.00& +&*TPK%K117(:)*PCONC(:,40)*PCONC(:,40)+0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,4& +&0)+0.25928*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PLOSS(ONIT) = +K017+K071*<OH> + PLOSS(:,26) = +TPK%K017(:)+TPK%K071(:)*PCONC(:,14) +! +!PPROD(PAN) = +0.28107*K070*<PAN>*<OH>+0.40000*K078*<PAN>*<NO3>+0.30000*K082*<P +!AN>*<O3>+1.00000*K088*<CARBOP>*<NO2> + PPROD(:,27) = +0.28107*TPK%K070(:)*PCONC(:,27)*PCONC(:,14)+0.40000*TPK%K078(:)& +&*PCONC(:,27)*PCONC(:,5)+0.30000*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+1.00000*TPK& +&%K088(:)*PCONC(:,39)*PCONC(:,4) +!PLOSS(PAN) = +K070*<OH>+K078*<NO3>+K082*<O3>+K089 + PLOSS(:,27) = +TPK%K070(:)*PCONC(:,14)+TPK%K078(:)*PCONC(:,5)+TPK%K082(:)*PCON& +&C(:,1)+TPK%K089(:) +! +!PPROD(OP1) = +K097*<MO2>*<HO2>+KTC40*<WC_OP1>+KTR40*<WR_OP1> + PPROD(:,28) = +TPK%K097(:)*PCONC(:,32)*PCONC(:,15)+TPK%KTC40(:)*PCONC(:,61)+TP& +&K%KTR40(:)*PCONC(:,86) +!PLOSS(OP1) = +K013+K068*<OH>+KTC20+KTR20 + PLOSS(:,28) = +TPK%K013(:)+TPK%K068(:)*PCONC(:,14)+TPK%KTC20(:)+TPK%KTR20(:) +! +!PPROD(OP2) = +0.10149*K081*<CARBO>*<O3>+1.00524*K098*<ALKAP>*<HO2>+1.00524*K09 +!9*<ALKEP>*<HO2>+1.00524*K0100*<BIOP>*<HO2>+1.00524*K0101*<AROP>*<HO2>+0.80904* +!K0102*<CARBOP>*<HO2>+1.00524*K126*<XO2>*<HO2> + PPROD(:,29) = +0.10149*TPK%K081(:)*PCONC(:,25)*PCONC(:,1)+1.00524*TPK%K098(:)*& +&PCONC(:,33)*PCONC(:,15)+1.00524*TPK%K099(:)*PCONC(:,34)*PCONC(:,15)+1.00524*TP& +&K%K0100(:)*PCONC(:,35)*PCONC(:,15)+1.00524*TPK%K0101(:)*PCONC(:,38)*PCONC(:,15& +&)+0.80904*TPK%K0102(:)*PCONC(:,39)*PCONC(:,15)+1.00524*TPK%K126(:)*PCONC(:,41)& +&*PCONC(:,15) +!PLOSS(OP2) = +K014+K069*<OH> + PLOSS(:,29) = +TPK%K014(:)+TPK%K069(:)*PCONC(:,14) +! +!PPROD(ORA1) = +0.00878*K058*<ALKA>*<OH>+0.15343*K079*<ALKE>*<O3>+0.15000*K080* +!<BIO>*<O3>+0.10788*K081*<CARBO>*<O3>+0.11*K082*<PAN>*<O3>+KTC37*<WC_ORA1>+KTR3 +!7*<WR_ORA1> + PPROD(:,30) = +0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0.15343*TPK%K079(:)& +&*PCONC(:,19)*PCONC(:,1)+0.15000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.10788*TPK& +&%K081(:)*PCONC(:,25)*PCONC(:,1)+0.11*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+TPK%KT& +&C37(:)*PCONC(:,58)+TPK%KTR37(:)*PCONC(:,83) +!PLOSS(ORA1) = +K066*<OH>+KTC17+KTR17 + PLOSS(:,30) = +TPK%K066(:)*PCONC(:,14)+TPK%KTC17(:)+TPK%KTR17(:) ! RETURN END SUBROUTINE SUB2 @@ -10240,68 +4507,128 @@ SUBROUTINE SUB3 !Indices 31 a 40 ! ! -!PPROD(KETH) = 0.0 - PPROD(:,31) = 0.0 -!PLOSS(KETH) = +K070*<OH>+K071 - PLOSS(:,31) = +TPK%K070(:)*PCONC(:,15)+TPK%K071(:) -! -!PPROD(MEOH) = +KTC49*<WC_MEOH>+KTR49*<WR_MEOH> - PPROD(:,32) = +TPK%KTC49(:)*PCONC(:,105)+TPK%KTR49(:)*PCONC(:,142) -!PLOSS(MEOH) = +K048*<OH>+KTC18+KTR18 - PLOSS(:,32) = +TPK%K048(:)*PCONC(:,15)+TPK%KTC18(:)+TPK%KTR18(:) -! -!PPROD(ETOH) = +KTC50*<WC_ETOH>+KTR50*<WR_ETOH> - PPROD(:,33) = +TPK%KTC50(:)*PCONC(:,106)+TPK%KTR50(:)*PCONC(:,143) -!PLOSS(ETOH) = +K053*<OH>+KTC19+KTR19 - PLOSS(:,33) = +TPK%K053(:)*PCONC(:,15)+TPK%KTC19(:)+TPK%KTR19(:) -! -!PPROD(ALCH) = +KTC51*<WC_ALCH>+KTR51*<WR_ALCH> - PPROD(:,34) = +TPK%KTC51(:)*PCONC(:,107)+TPK%KTR51(:)*PCONC(:,144) -!PLOSS(ALCH) = +K069*<OH>+KTC20+KTR20 - PLOSS(:,34) = +TPK%K069(:)*PCONC(:,15)+TPK%KTC20(:)+TPK%KTR20(:) -! -!PPROD(ISOP) = 0.0 - PPROD(:,35) = 0.0 -!PLOSS(ISOP) = +K064*<OH>+K065*<NO3>+K066*<O3>+K067*<O> - PLOSS(:,35) = +TPK%K064(:)*PCONC(:,15)+TPK%K065(:)*PCONC(:,8)+TPK%K066(:)*PCON& -&C(:,3)+TPK%K067(:)*TPK%O(:) -! -!PPROD(BIOL) = 0.0 - PPROD(:,36) = 0.0 -!PLOSS(BIOL) = +K084*<OH>+K085*<NO3>+K086*<O3>+K087*<O> - PLOSS(:,36) = +TPK%K084(:)*PCONC(:,15)+TPK%K085(:)*PCONC(:,8)+TPK%K086(:)*PCON& -&C(:,3)+TPK%K087(:)*TPK%O(:) -! -!PPROD(BIOH) = 0.0 - PPROD(:,37) = 0.0 -!PLOSS(BIOH) = +K088*<OH>+K089*<NO3>+K090*<O3>+K091*<O> - PLOSS(:,37) = +TPK%K088(:)*PCONC(:,15)+TPK%K089(:)*PCONC(:,8)+TPK%K090(:)*PCON& -&C(:,3)+TPK%K091(:)*TPK%O(:) -! -!PPROD(MTBE) = 0.0 - PPROD(:,38) = 0.0 -!PLOSS(MTBE) = +K068*<OH> - PLOSS(:,38) = +TPK%K068(:)*PCONC(:,15) -! -!PPROD(MVK) = +0.389*K066*<O3>*<ISOP>+TPK%CF6*K150*<NO>*<RO29>+K151*<RO2T>*<RO2 -!9>+K152*<HO2>*<RO29>+K156*<NO>*<RO211>+K157*<RO2T>*<RO211>+K158*<HO2>*<RO211> - PPROD(:,39) = +0.389*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+TPK%CF6*TPK%K150(:)*PC& -&ONC(:,1)*TPK%RO29(:)+TPK%K151(:)*PCONC(:,85)*TPK%RO29(:)+TPK%K152(:)*PCONC(:,1& -&0)*TPK%RO29(:)+TPK%K156(:)*PCONC(:,1)*TPK%RO211(:)+TPK%K157(:)*PCONC(:,85)*TPK& -&%RO211(:)+TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) -!PLOSS(MVK) = +K272*<OH>+K281*<O3>+K283*<O> - PLOSS(:,39) = +TPK%K272(:)*PCONC(:,15)+TPK%K281(:)*PCONC(:,3)+TPK%K283(:)*TPK%& -&O(:) -! -!PPROD(MCR) = +0.17*K066*<O3>*<ISOP>+K153*<NO>*<RO210>+K154*<RO2T>*<RO210>+K155 -!*<HO2>*<RO210>+K159*<NO>*<RO212>+K160*<RO2T>*<RO212>+K161*<HO2>*<RO212> - PPROD(:,40) = +0.17*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+TPK%K153(:)*PCONC(:,1)*& -&TPK%RO210(:)+TPK%K154(:)*PCONC(:,85)*TPK%RO210(:)+TPK%K155(:)*PCONC(:,10)*TPK%& -&RO210(:)+TPK%K159(:)*PCONC(:,1)*TPK%RO212(:)+TPK%K160(:)*PCONC(:,85)*TPK%RO212& -&(:)+TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) -!PLOSS(MCR) = +K273*<OH>+K275*<NO3>+K282*<O3>+K284*<O> - PLOSS(:,40) = +TPK%K273(:)*PCONC(:,15)+TPK%K275(:)*PCONC(:,8)+TPK%K282(:)*PCON& -&C(:,3)+TPK%K284(:)*TPK%O(:) +!PPROD(ORA2) = +0.08143*K079*<ALKE>*<O3>+0.00000*K080*<BIO>*<O3>+0.20595*K081*< +!CARBO>*<O3>+0.17307*K0102*<CARBOP>*<HO2>+0.13684*K109*<CARBOP>*<MO2>+0.49810*K +!111*<ALKAP>*<CARBOP>+0.49922*K112*<ALKEP>*<CARBOP>+0.49400*K113*<BIOP>*<CARBOP +!>+0.09955*K115*<CARBOP>*<CARBOP>+0.48963*K116*<OLN>*<CARBOP>+KTC38*<WC_ORA2>+K +!TR38*<WR_ORA2> + PPROD(:,31) = +0.08143*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.00000*TPK%K080(:)*& +&PCONC(:,20)*PCONC(:,1)+0.20595*TPK%K081(:)*PCONC(:,25)*PCONC(:,1)+0.17307*TPK%& +&K0102(:)*PCONC(:,39)*PCONC(:,15)+0.13684*TPK%K109(:)*PCONC(:,39)*PCONC(:,32)+0& +&.49810*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.49922*TPK%K112(:)*PCONC(:,34)*PCO& +&NC(:,39)+0.49400*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+0.09955*TPK%K115(:)*PCONC& +&(:,39)*PCONC(:,39)+0.48963*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+TPK%KTC38(:)*PC& +&ONC(:,59)+TPK%KTR38(:)*PCONC(:,84) +!PLOSS(ORA2) = +K067*<OH>+KTC18+KTR18 + PLOSS(:,31) = +TPK%K067(:)*PCONC(:,14)+TPK%KTC18(:)+TPK%KTR18(:) +! +!PPROD(MO2) = +K012*<ALD>+0.03795*K014*<OP2>+K056*<CH4>*<OH>+0.65*K068*<OP1>*<O +!H>+0.13966*K079*<ALKE>*<O3>+0.03000*K080*<BIO>*<O3>+0.09016*K091*<ALKAP>*<NO>+ +!0.78134*K095*<CARBOP>*<NO>+0.01390*K105*<ALKAP>*<MO2>+0.56031*K109*<CARBOP>*<M +!O2>+0.51480*K111*<ALKAP>*<CARBOP>+0.50078*K112*<ALKEP>*<CARBOP>+0.50600*K113*< +!BIOP>*<CARBOP>+K114*<AROP>*<CARBOP>+1.66702*K115*<CARBOP>*<CARBOP>+0.51037*K11 +!6*<OLN>*<CARBOP>+0.09731*K120*<ALKAP>*<NO3>+0.91910*K124*<CARBOP>*<NO3>+K128*< +!XO2>*<CARBOP>+KTC39*<WC_MO2>+KTR39*<WR_MO2> + PPROD(:,32) = +TPK%K012(:)*PCONC(:,23)+0.03795*TPK%K014(:)*PCONC(:,29)+TPK%K05& +&6(:)*PCONC(:,16)*PCONC(:,14)+0.65*TPK%K068(:)*PCONC(:,28)*PCONC(:,14)+0.13966*& +&TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.03000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+& +&0.09016*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.78134*TPK%K095(:)*PCONC(:,39)*PCO& +&NC(:,3)+0.01390*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.56031*TPK%K109(:)*PCONC(& +&:,39)*PCONC(:,32)+0.51480*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.50078*TPK%K112& +&(:)*PCONC(:,34)*PCONC(:,39)+0.50600*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+TPK%K1& +&14(:)*PCONC(:,38)*PCONC(:,39)+1.66702*TPK%K115(:)*PCONC(:,39)*PCONC(:,39)+0.51& +&037*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+0.09731*TPK%K120(:)*PCONC(:,33)*PCONC(& +&:,5)+0.91910*TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+TPK%K128(:)*PCONC(:,41)*PCONC(& +&:,39)+TPK%KTC39(:)*PCONC(:,60)+TPK%KTR39(:)*PCONC(:,85) +!PLOSS(MO2) = +K090*<NO>+K097*<HO2>+K104*<MO2>+K104*<MO2>+K105*<ALKAP>+K106*<AL +!KEP>+K107*<BIOP>+K108*<AROP>+K109*<CARBOP>+K110*<OLN>+K119*<NO3>+K127*<XO2>+KT +!C19+KTR19 + PLOSS(:,32) = +TPK%K090(:)*PCONC(:,3)+TPK%K097(:)*PCONC(:,15)+TPK%K104(:)*PCON& +&C(:,32)+TPK%K104(:)*PCONC(:,32)+TPK%K105(:)*PCONC(:,33)+TPK%K106(:)*PCONC(:,34& +&)+TPK%K107(:)*PCONC(:,35)+TPK%K108(:)*PCONC(:,38)+TPK%K109(:)*PCONC(:,39)+TPK%& +&K110(:)*PCONC(:,40)+TPK%K119(:)*PCONC(:,5)+TPK%K127(:)*PCONC(:,41)+TPK%KTC19(:& +&)+TPK%KTR19(:) +! +!PPROD(ALKAP) = +1.00000*K015*<KET>+K057*<ETH>*<OH>+0.87811*K058*<ALKA>*<OH>+0. +!40341*K069*<OP2>*<OH>+1.00000*K071*<ONIT>*<OH>+0.09815*K079*<ALKE>*<O3>+0.0000 +!0*K080*<BIO>*<O3>+0.08187*K091*<ALKAP>*<NO>+0.00385*K105*<ALKAP>*<MO2>+0.00828 +!*K111*<ALKAP>*<CARBOP>+0.08994*K120*<ALKAP>*<NO3> + PPROD(:,33) = +1.00000*TPK%K015(:)*PCONC(:,24)+TPK%K057(:)*PCONC(:,17)*PCONC(:& +&,14)+0.87811*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0.40341*TPK%K069(:)*PCONC(:,2& +&9)*PCONC(:,14)+1.00000*TPK%K071(:)*PCONC(:,26)*PCONC(:,14)+0.09815*TPK%K079(:)& +&*PCONC(:,19)*PCONC(:,1)+0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.08187*TPK& +&%K091(:)*PCONC(:,33)*PCONC(:,3)+0.00385*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.& +&00828*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.08994*TPK%K120(:)*PCONC(:,33)*PCON& +&C(:,5) +!PLOSS(ALKAP) = +K091*<NO>+K098*<HO2>+K105*<MO2>+K111*<CARBOP>+K120*<NO3> + PLOSS(:,33) = +TPK%K091(:)*PCONC(:,3)+TPK%K098(:)*PCONC(:,15)+TPK%K105(:)*PCON& +&C(:,32)+TPK%K111(:)*PCONC(:,39)+TPK%K120(:)*PCONC(:,5) +! +!PPROD(ALKEP) = +1.02529*K059*<ALKE>*<OH> + PPROD(:,34) = +1.02529*TPK%K059(:)*PCONC(:,19)*PCONC(:,14) +!PLOSS(ALKEP) = +K092*<NO>+K099*<HO2>+K106*<MO2>+K112*<CARBOP>+K121*<NO3> + PLOSS(:,34) = +TPK%K092(:)*PCONC(:,3)+TPK%K099(:)*PCONC(:,15)+TPK%K106(:)*PCON& +&C(:,32)+TPK%K112(:)*PCONC(:,39)+TPK%K121(:)*PCONC(:,5) +! +!PPROD(BIOP) = +0.00000*K059*<ALKE>*<OH>+1.00000*K060*<BIO>*<OH> + PPROD(:,35) = +0.00000*TPK%K059(:)*PCONC(:,19)*PCONC(:,14)+1.00000*TPK%K060(:)& +&*PCONC(:,20)*PCONC(:,14) +!PLOSS(BIOP) = +K093*<NO>+K0100*<HO2>+K107*<MO2>+K113*<CARBOP>+K122*<NO3> + PLOSS(:,35) = +TPK%K093(:)*PCONC(:,3)+TPK%K0100(:)*PCONC(:,15)+TPK%K107(:)*PCO& +&NC(:,32)+TPK%K113(:)*PCONC(:,39)+TPK%K122(:)*PCONC(:,5) +! +!PPROD(PHO) = +0.00276*K061*<ARO>*<OH>+K075*<ARO>*<NO3> + PPROD(:,36) = +0.00276*TPK%K061(:)*PCONC(:,21)*PCONC(:,14)+TPK%K075(:)*PCONC(:& +&,21)*PCONC(:,5) +!PLOSS(PHO) = +K083*<NO2>+K084*<HO2> + PLOSS(:,36) = +TPK%K083(:)*PCONC(:,4)+TPK%K084(:)*PCONC(:,15) +! +!PPROD(ADD) = +0.93968*K061*<ARO>*<OH> + PPROD(:,37) = +0.93968*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) +!PLOSS(ADD) = +K085*<NO2>+K086*<O2>+K087*<O3> + PLOSS(:,37) = +TPK%K085(:)*PCONC(:,4)+TPK%K086(:)*TPK%O2(:)+TPK%K087(:)*PCONC(& +&:,1) +! +!PPROD(AROP) = +0.98*K086*<ADD>*<O2> + PPROD(:,38) = +0.98*TPK%K086(:)*PCONC(:,37)*TPK%O2(:) +!PLOSS(AROP) = +K094*<NO>+K0101*<HO2>+K108*<MO2>+K114*<CARBOP>+K123*<NO3> + PLOSS(:,38) = +TPK%K094(:)*PCONC(:,3)+TPK%K0101(:)*PCONC(:,15)+TPK%K108(:)*PCO& +&NC(:,32)+TPK%K114(:)*PCONC(:,39)+TPK%K123(:)*PCONC(:,5) +! +!PPROD(CARBOP) = +1.00000*K015*<KET>+0.69622*K016*<CARBO>+1.00000*K063*<ALD>*<O +!H>+1.00000*K064*<KET>*<OH>+0.51419*K065*<CARBO>*<OH>+0.05413*K069*<OP2>*<OH>+1 +!.00000*K073*<ALD>*<NO3>+0.38881*K074*<CARBO>*<NO3>+0.05705*K079*<ALKE>*<O3>+0. +!17000*K080*<BIO>*<O3>+0.27460*K081*<CARBO>*<O3>+0.70000*K082*<PAN>*<O3>+1.0000 +!0*K089*<PAN>+0.09532*K095*<CARBOP>*<NO>+0.05954*K109*<CARBOP>*<MO2>+0.05821*K1 +!15*<CARBOP>*<CARBOP>+0.03175*K124*<CARBOP>*<NO3> + PPROD(:,39) = +1.00000*TPK%K015(:)*PCONC(:,24)+0.69622*TPK%K016(:)*PCONC(:,25)& +&+1.00000*TPK%K063(:)*PCONC(:,23)*PCONC(:,14)+1.00000*TPK%K064(:)*PCONC(:,24)*P& +&CONC(:,14)+0.51419*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.05413*TPK%K069(:)*PCO& +&NC(:,29)*PCONC(:,14)+1.00000*TPK%K073(:)*PCONC(:,23)*PCONC(:,5)+0.38881*TPK%K0& +&74(:)*PCONC(:,25)*PCONC(:,5)+0.05705*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.1700& +&0*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.27460*TPK%K081(:)*PCONC(:,25)*PCONC(:,1& +&)+0.70000*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+1.00000*TPK%K089(:)*PCONC(:,27)+0& +&.09532*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+0.05954*TPK%K109(:)*PCONC(:,39)*PCON& +&C(:,32)+0.05821*TPK%K115(:)*PCONC(:,39)*PCONC(:,39)+0.03175*TPK%K124(:)*PCONC(& +&:,39)*PCONC(:,5) +!PLOSS(CARBOP) = +K088*<NO2>+K095*<NO>+K0102*<HO2>+K109*<MO2>+K111*<ALKAP>+K112 +!*<ALKEP>+K113*<BIOP>+K114*<AROP>+K115*<CARBOP>+K115*<CARBOP>+K116*<OLN>+K124*< +!NO3>+K128*<XO2> + PLOSS(:,39) = +TPK%K088(:)*PCONC(:,4)+TPK%K095(:)*PCONC(:,3)+TPK%K0102(:)*PCON& +&C(:,15)+TPK%K109(:)*PCONC(:,32)+TPK%K111(:)*PCONC(:,33)+TPK%K112(:)*PCONC(:,34& +&)+TPK%K113(:)*PCONC(:,35)+TPK%K114(:)*PCONC(:,38)+TPK%K115(:)*PCONC(:,39)+TPK%& +&K115(:)*PCONC(:,39)+TPK%K116(:)*PCONC(:,40)+TPK%K124(:)*PCONC(:,5)+TPK%K128(:)& +&*PCONC(:,41) +! +!PPROD(OLN) = +0.00000*K074*<CARBO>*<NO3>+0.93768*K076*<ALKE>*<NO3>+1.00000*K07 +!7*<BIO>*<NO3> + PPROD(:,40) = +0.00000*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.93768*TPK%K076(:)*& +&PCONC(:,19)*PCONC(:,5)+1.00000*TPK%K077(:)*PCONC(:,20)*PCONC(:,5) +!PLOSS(OLN) = +K096*<NO>+K103*<HO2>+K110*<MO2>+K116*<CARBOP>+K117*<OLN>+K117*<O +!LN>+K118*<OLN>+K118*<OLN>+K125*<NO3> + PLOSS(:,40) = +TPK%K096(:)*PCONC(:,3)+TPK%K103(:)*PCONC(:,15)+TPK%K110(:)*PCON& +&C(:,32)+TPK%K116(:)*PCONC(:,39)+TPK%K117(:)*PCONC(:,40)+TPK%K117(:)*PCONC(:,40& +&)+TPK%K118(:)*PCONC(:,40)+TPK%K118(:)*PCONC(:,40)+TPK%K125(:)*PCONC(:,5) ! RETURN END SUBROUTINE SUB3 @@ -10311,96 +4638,79 @@ SUBROUTINE SUB4 !Indices 41 a 50 ! ! -!PPROD(MGLY) = +K234*<NO>*<RO242>+K235*<RO2T>*<RO242>+K236*<HO2>*<RO242>+K241*< -!NO>*<RO243>+K242*<RO2T>*<RO243>+K243*<HO2>*<RO243>+K248*<NO>*<RO244>+K249*<RO2 -!T>*<RO244>+K250*<HO2>*<RO244>+K255*<NO>*<RO245>+K256*<RO2T>*<RO245>+K257*<HO2> -!*<RO245>+K262*<NO>*<RO246>+K263*<RO2T>*<RO246>+K264*<HO2>*<RO246>+K269*<NO>*<R -!O247>+K270*<RO2T>*<RO247>+K271*<HO2>*<RO247>+0.5*K281*<O3>*<MVK>+0.59*K282*<O3 -!>*<MCR>+K285*<NO>*<RO249>+K286*<RO2T>*<RO249>+K287*<HO2>*<RO249>+K291*<NO>*<RO -!251>+K292*<HO2>*<RO251>+K293*<RO2T>*<RO251>+K294*<NO>*<RO252>+K295*<HO2>*<RO25 -!2>+K296*<RO2T>*<RO252>+KTC56*<WC_MGLY>+KTR56*<WR_MGLY> - PPROD(:,41) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:)+TPK%K235(:)*PCONC(:,85)*TPK& -&%RO242(:)+TPK%K236(:)*PCONC(:,10)*TPK%RO242(:)+TPK%K241(:)*PCONC(:,1)*TPK%RO24& -&3(:)+TPK%K242(:)*PCONC(:,85)*TPK%RO243(:)+TPK%K243(:)*PCONC(:,10)*TPK%RO243(:)& -&+TPK%K248(:)*PCONC(:,1)*TPK%RO244(:)+TPK%K249(:)*PCONC(:,85)*TPK%RO244(:)+TPK%& -&K250(:)*PCONC(:,10)*TPK%RO244(:)+TPK%K255(:)*PCONC(:,1)*TPK%RO245(:)+TPK%K256(& -&:)*PCONC(:,85)*TPK%RO245(:)+TPK%K257(:)*PCONC(:,10)*TPK%RO245(:)+TPK%K262(:)*P& -&CONC(:,1)*TPK%RO246(:)+TPK%K263(:)*PCONC(:,85)*TPK%RO246(:)+TPK%K264(:)*PCONC(& -&:,10)*TPK%RO246(:)+TPK%K269(:)*PCONC(:,1)*TPK%RO247(:)+TPK%K270(:)*PCONC(:,85)& -&*TPK%RO247(:)+TPK%K271(:)*PCONC(:,10)*TPK%RO247(:)+0.5*TPK%K281(:)*PCONC(:,3)*& -&PCONC(:,39)+0.59*TPK%K282(:)*PCONC(:,3)*PCONC(:,40)+TPK%K285(:)*PCONC(:,1)*TPK& -&%RO249(:)+TPK%K286(:)*PCONC(:,85)*TPK%RO249(:)+TPK%K287(:)*PCONC(:,10)*TPK%RO2& -&49(:)+TPK%K291(:)*PCONC(:,1)*TPK%RO251(:)+TPK%K292(:)*PCONC(:,10)*TPK%RO251(:)& -&+TPK%K293(:)*PCONC(:,85)*TPK%RO251(:)+TPK%K294(:)*PCONC(:,1)*TPK%RO252(:)+TPK%& -&K295(:)*PCONC(:,10)*TPK%RO252(:)+TPK%K296(:)*PCONC(:,85)*TPK%RO252(:)+TPK%KTC5& -&6(:)*PCONC(:,111)+TPK%KTR56(:)*PCONC(:,148) -!PLOSS(MGLY) = +K274*<OH>+K276+K278*<NO3>+KTC25+KTR25 - PLOSS(:,41) = +TPK%K274(:)*PCONC(:,15)+TPK%K276(:)+TPK%K278(:)*PCONC(:,8)+TPK%& -&KTC25(:)+TPK%KTR25(:) -! -!PPROD(GLY) = +KTC54*<WC_GLY>+KTR54*<WR_GLY> - PPROD(:,42) = +TPK%KTC54(:)*PCONC(:,110)+TPK%KTR54(:)*PCONC(:,147) -!PLOSS(GLY) = +KTC23+KTR23 - PLOSS(:,42) = +TPK%KTC23(:)+TPK%KTR23(:) -! -!PPROD(ORA1) = +0.185*K051*<O3>*<ETHE>+0.12*K056*<O3>*<OLEL>+0.121*K066*<O3>*<I -!SOP>+0.12*K281*<O3>*<MVK>+0.09*K282*<O3>*<MCR>+KTC57*<WC_ORA1>+KTR57*<WR_ORA1> - PPROD(:,43) = +0.185*TPK%K051(:)*PCONC(:,3)*PCONC(:,16)+0.12*TPK%K056(:)*PCONC& -&(:,3)*PCONC(:,17)+0.121*TPK%K066(:)*PCONC(:,3)*PCONC(:,35)+0.12*TPK%K281(:)*PC& -&ONC(:,3)*PCONC(:,39)+0.09*TPK%K282(:)*PCONC(:,3)*PCONC(:,40)+TPK%KTC57(:)*PCON& -&C(:,113)+TPK%KTR57(:)*PCONC(:,150) -!PLOSS(ORA1) = +K347*<OH>+KTC26+KTR26 - PLOSS(:,43) = +TPK%K347(:)*PCONC(:,15)+TPK%KTC26(:)+TPK%KTR26(:) -! -!PPROD(ORA2) = +0.12*K056*<O3>*<OLEL>+K142*<HO2>*<RO26>+K148*<HO2>*<RO28>+0.5*K -!166*<HO2>*<RO239>+0.5*K289*<HO2>*<RO250>+KTC58*<WC_ORA2>+KTR58*<WR_ORA2> - PPROD(:,44) = +0.12*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+TPK%K142(:)*PCONC(:,10)& -&*TPK%RO26(:)+TPK%K148(:)*PCONC(:,10)*TPK%RO28(:)+0.5*TPK%K166(:)*PCONC(:,10)*T& -&PK%RO239(:)+0.5*TPK%K289(:)*PCONC(:,10)*TPK%RO250(:)+TPK%KTC58(:)*PCONC(:,114)& -&+TPK%KTR58(:)*PCONC(:,151) -!PLOSS(ORA2) = +K348*<OH>+KTC27+KTR27 - PLOSS(:,44) = +TPK%K348(:)*PCONC(:,15)+TPK%KTC27(:)+TPK%KTR27(:) -! -!PPROD(ACID) = +0.12*K076*<O3>*<OLEH>+K142*<HO2>*<RO26>+K310*<HO2>*<RO255>+KTC5 -!9*<WC_ACID>+KTR59*<WR_ACID> - PPROD(:,45) = +0.12*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+TPK%K142(:)*PCONC(:,10)& -&*TPK%RO26(:)+TPK%K310(:)*PCONC(:,10)*TPK%RO255(:)+TPK%KTC59(:)*PCONC(:,115)+TP& -&K%KTR59(:)*PCONC(:,152) -!PLOSS(ACID) = +K349*<OH>+KTC28+KTR28 - PLOSS(:,45) = +TPK%K349(:)*PCONC(:,15)+TPK%KTC28(:)+TPK%KTR28(:) -! -!PPROD(UR28) = +K341*<HO2>*<RO258>+KTC62*<WC_UR28>+KTR62*<WR_UR28> - PPROD(:,46) = +TPK%K341(:)*PCONC(:,10)*TPK%RO258(:)+TPK%KTC62(:)*PCONC(:,118)+& -&TPK%KTR62(:)*PCONC(:,155) -!PLOSS(UR28) = +K364+KTC31+KTR31 - PLOSS(:,46) = +TPK%K364(:)+TPK%KTC31(:)+TPK%KTR31(:) -! -!PPROD(UR21) = +K279*<HO2>*<RO248>+0.12*K281*<O3>*<MVK>+KTC61*<WC_UR21>+KTR61*< -!WR_UR21> - PPROD(:,47) = +TPK%K279(:)*PCONC(:,10)*TPK%RO248(:)+0.12*TPK%K281(:)*PCONC(:,3& -&)*PCONC(:,39)+TPK%KTC61(:)*PCONC(:,117)+TPK%KTR61(:)*PCONC(:,154) -!PLOSS(UR21) = +K361+KTC30+KTR30 - PLOSS(:,47) = +TPK%K361(:)+TPK%KTC30(:)+TPK%KTR30(:) -! -!PPROD(URG2) = +0.5562513*K335*<OH>*<RPG2>+K337*<OH>*<RP18> - PPROD(:,48) = +0.5562513*TPK%K335(:)*PCONC(:,15)*PCONC(:,50)+TPK%K337(:)*PCONC& -&(:,15)*PCONC(:,51) -!PLOSS(URG2) = +K350 - PLOSS(:,48) = +TPK%K350(:) -! -!PPROD(UR26) = +0.67*K326*<OH>*<RP11> - PPROD(:,49) = +0.67*TPK%K326(:)*PCONC(:,15)*PCONC(:,73) -!PLOSS(UR26) = +K363 - PLOSS(:,49) = +TPK%K363(:) -! -!PPROD(RPG2) = +0.3000000*K259*<NO>*<RO237>+1.0000000*K260*<RO2T>*<RO237>+0.300 -!0000*K261*<HO2>*<RO237>+0.1191897*K334*<OH>*<RPG3>+0.8808107*K334*<OH>*<RPG3> - PPROD(:,50) = +0.3000000*TPK%K259(:)*PCONC(:,1)*TPK%RO237(:)+1.0000000*TPK%K26& -&0(:)*PCONC(:,85)*TPK%RO237(:)+0.3000000*TPK%K261(:)*PCONC(:,10)*TPK%RO237(:)+0& -&.1191897*TPK%K334(:)*PCONC(:,15)*PCONC(:,52)+0.8808107*TPK%K334(:)*PCONC(:,15)& -&*PCONC(:,52) -!PLOSS(RPG2) = +K335*<OH> - PLOSS(:,50) = +TPK%K335(:)*PCONC(:,15) +!PPROD(XO2) = +0.15*K054*<BIO>*<O3P>+0.10318*K061*<ARO>*<OH>+0.10162*K065*<CARB +!O>*<OH>+0.09333*K069*<OP2>*<OH>+K070*<PAN>*<OH>+0.10530*K074*<CARBO>*<NO3>+K07 +!8*<PAN>*<NO3>+0.00000*K079*<ALKE>*<O3>+0.13000*K080*<BIO>*<O3>+0.13007*K091*<A +!LKAP>*<NO>+0.02563*K095*<CARBOP>*<NO>+0.13370*K105*<ALKAP>*<MO2>+0.02212*K109* +!<CARBOP>*<MO2>+0.11306*K111*<ALKAP>*<CARBOP>+0.01593*K115*<CARBOP>*<CARBOP>+0. +!16271*K120*<ALKAP>*<NO3>+0.01021*K124*<CARBOP>*<NO3> + PPROD(:,41) = +0.15*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.10318*TPK%K061(:)*PCO& +&NC(:,21)*PCONC(:,14)+0.10162*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.09333*TPK%K& +&069(:)*PCONC(:,29)*PCONC(:,14)+TPK%K070(:)*PCONC(:,27)*PCONC(:,14)+0.10530*TPK& +&%K074(:)*PCONC(:,25)*PCONC(:,5)+TPK%K078(:)*PCONC(:,27)*PCONC(:,5)+0.00000*TPK& +&%K079(:)*PCONC(:,19)*PCONC(:,1)+0.13000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.1& +&3007*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.02563*TPK%K095(:)*PCONC(:,39)*PCONC(& +&:,3)+0.13370*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.02212*TPK%K109(:)*PCONC(:,3& +&9)*PCONC(:,32)+0.11306*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.01593*TPK%K115(:)& +&*PCONC(:,39)*PCONC(:,39)+0.16271*TPK%K120(:)*PCONC(:,33)*PCONC(:,5)+0.01021*TP& +&K%K124(:)*PCONC(:,39)*PCONC(:,5) +!PLOSS(XO2) = +K126*<HO2>+K127*<MO2>+K128*<CARBOP>+K129*<XO2>+K129*<XO2>+K130*< +!NO>+K131*<NO3> + PLOSS(:,41) = +TPK%K126(:)*PCONC(:,15)+TPK%K127(:)*PCONC(:,32)+TPK%K128(:)*PCO& +&NC(:,39)+TPK%K129(:)*PCONC(:,41)+TPK%K129(:)*PCONC(:,41)+TPK%K130(:)*PCONC(:,3& +&)+TPK%K131(:)*PCONC(:,5) +! +!PPROD(WC_O3) = +KTC1*<O3> + PPROD(:,42) = +TPK%KTC1(:)*PCONC(:,1) +!PLOSS(WC_O3) = +KTC21+KC6*<WC_HO2>+KC29*<WC_SO2> + PLOSS(:,42) = +TPK%KTC21(:)+TPK%KC6(:)*PCONC(:,53)+TPK%KC29(:)*PCONC(:,55) +! +!PPROD(WC_H2O2) = +KTC2*<H2O2>+KC2*<WC_OH>*<WC_OH>+KC5*<WC_HO2>*<WC_HO2> + PPROD(:,43) = +TPK%KTC2(:)*PCONC(:,2)+TPK%KC2(:)*PCONC(:,52)*PCONC(:,52)+TPK%K& +&C5(:)*PCONC(:,53)*PCONC(:,53) +!PLOSS(WC_H2O2) = +KTC22+KC1+KC4*<WC_OH>+KC30*<WC_SO2> + PLOSS(:,43) = +TPK%KTC22(:)+TPK%KC1(:)+TPK%KC4(:)*PCONC(:,52)+TPK%KC30(:)*PCON& +&C(:,55) +! +!PPROD(WC_NO) = +KTC3*<NO> + PPROD(:,44) = +TPK%KTC3(:)*PCONC(:,3) +!PLOSS(WC_NO) = +KTC23 + PLOSS(:,44) = +TPK%KTC23(:) +! +!PPROD(WC_NO2) = +KTC4*<NO2>+KC8*<WC_HONO>*<WC_OH>+KC10*<WC_HNO4>+KC13*<WC_HNO3 +!> + PPROD(:,45) = +TPK%KTC4(:)*PCONC(:,4)+TPK%KC8(:)*PCONC(:,48)*PCONC(:,52)+TPK%K& +&C10(:)*PCONC(:,50)+TPK%KC13(:)*PCONC(:,49) +!PLOSS(WC_NO2) = +KTC24+KC9*<WC_HO2> + PLOSS(:,45) = +TPK%KTC24(:)+TPK%KC9(:)*PCONC(:,53) +! +!PPROD(WC_NO3) = +KTC5*<NO3> + PPROD(:,46) = +TPK%KTC5(:)*PCONC(:,5) +!PLOSS(WC_NO3) = +KTC25+KC15*<WC_SULF>+KC16*<WC_SO2> + PLOSS(:,46) = +TPK%KTC25(:)+TPK%KC15(:)*PCONC(:,56)+TPK%KC16(:)*PCONC(:,55) +! +!PPROD(WC_N2O5) = +KTC6*<N2O5> + PPROD(:,47) = +TPK%KTC6(:)*PCONC(:,6) +!PLOSS(WC_N2O5) = +KTC26+KC14 + PLOSS(:,47) = +TPK%KTC26(:)+TPK%KC14(:) +! +!PPROD(WC_HONO) = +KTC7*<HONO>+KC11*<WC_HNO4> + PPROD(:,48) = +TPK%KTC7(:)*PCONC(:,7)+TPK%KC11(:)*PCONC(:,50) +!PLOSS(WC_HONO) = +KTC27+KC8*<WC_OH> + PLOSS(:,48) = +TPK%KTC27(:)+TPK%KC8(:)*PCONC(:,52) +! +!PPROD(WC_HNO3) = +KTC8*<HNO3>+KC12*<WC_HNO4>*<WC_SO2>+KC14*<WC_N2O5>+KC14*<WC_ +!N2O5>+KC15*<WC_NO3>*<WC_SULF>+KC16*<WC_NO3>*<WC_SO2> + PPROD(:,49) = +TPK%KTC8(:)*PCONC(:,8)+TPK%KC12(:)*PCONC(:,50)*PCONC(:,55)+TPK%& +&KC14(:)*PCONC(:,47)+TPK%KC14(:)*PCONC(:,47)+TPK%KC15(:)*PCONC(:,46)*PCONC(:,56& +&)+TPK%KC16(:)*PCONC(:,46)*PCONC(:,55) +!PLOSS(WC_HNO3) = +KTC28+KC13 + PLOSS(:,49) = +TPK%KTC28(:)+TPK%KC13(:) +! +!PPROD(WC_HNO4) = +KTC9*<HNO4>+KC9*<WC_NO2>*<WC_HO2> + PPROD(:,50) = +TPK%KTC9(:)*PCONC(:,9)+TPK%KC9(:)*PCONC(:,45)*PCONC(:,53) +!PLOSS(WC_HNO4) = +KTC29+KC10+KC11+KC12*<WC_SO2> + PLOSS(:,50) = +TPK%KTC29(:)+TPK%KC10(:)+TPK%KC11(:)+TPK%KC12(:)*PCONC(:,55) ! RETURN END SUBROUTINE SUB4 @@ -10410,81 +4720,80 @@ SUBROUTINE SUB5 !Indices 51 a 60 ! ! -!PPROD(RP18) = +0.4437492*K335*<OH>*<RPG2> - PPROD(:,51) = +0.4437492*TPK%K335(:)*PCONC(:,15)*PCONC(:,50) -!PLOSS(RP18) = +K337*<OH> - PLOSS(:,51) = +TPK%K337(:)*PCONC(:,15) -! -!PPROD(RPG3) = +0.3000000*K231*<NO>*<RO233>+1.0000000*K232*<RO2T>*<RO233>+0.300 -!0000*K233*<HO2>*<RO233>+0.3000000*K252*<NO>*<RO236>+1.0000000*K253*<RO2T>*<RO2 -!36>+0.3000000*K254*<HO2>*<RO236> - PPROD(:,52) = +0.3000000*TPK%K231(:)*PCONC(:,1)*TPK%RO233(:)+1.0000000*TPK%K23& -&2(:)*PCONC(:,85)*TPK%RO233(:)+0.3000000*TPK%K233(:)*PCONC(:,10)*TPK%RO233(:)+0& -&.3000000*TPK%K252(:)*PCONC(:,1)*TPK%RO236(:)+1.0000000*TPK%K253(:)*PCONC(:,85)& -&*TPK%RO236(:)+0.3000000*TPK%K254(:)*PCONC(:,10)*TPK%RO236(:) -!PLOSS(RPG3) = +K334*<OH> - PLOSS(:,52) = +TPK%K334(:)*PCONC(:,15) -! -!PPROD(URG4) = +5.5000000E-02*K086*<O3>*<BIOL>+1.0000000*K318*<HO2>*<RO256>+1.0 -!000000*K332*<HO2>*<RO257> - PPROD(:,53) = +5.5000000E-02*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)+1.0000000*TPK%& -&K318(:)*PCONC(:,10)*TPK%RO256(:)+1.0000000*TPK%K332(:)*PCONC(:,10)*TPK%RO257(:& -&) -!PLOSS(URG4) = +K351 - PLOSS(:,53) = +TPK%K351(:) -! -!PPROD(UR8) = +0.055*K090*<O3>*<BIOH> - PPROD(:,54) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -!PLOSS(UR8) = +K358 - PLOSS(:,54) = +TPK%K358(:) -! -!PPROD(UR17) = +1.0000000*K204*<NO>*<RO226>+1.0000000*K205*<RO2T>*<RO226>+1.000 -!0000*K206*<HO2>*<RO226> - PPROD(:,55) = +1.0000000*TPK%K204(:)*PCONC(:,1)*TPK%RO226(:)+1.0000000*TPK%K20& -&5(:)*PCONC(:,85)*TPK%RO226(:)+1.0000000*TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) -!PLOSS(UR17) = +K359 - PLOSS(:,55) = +TPK%K359(:) -! -!PPROD(UR7) = +0.055*K090*<O3>*<BIOH>+TPK%CFA12*K207*<NO>*<RO227>+K208*<RO2T>*< -!RO227>+0.3*K209*<HO2>*<RO227>+0.3*K210*<NO>*<RO228>+0.3*K211*<RO2T>*<RO228>+0. -!3*K212*<HO2>*<RO228> - PPROD(:,56) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37)+TPK%CFA12*TPK%K207(:)*& -&PCONC(:,1)*TPK%RO227(:)+TPK%K208(:)*PCONC(:,85)*TPK%RO227(:)+0.3*TPK%K209(:)*P& -&CONC(:,10)*TPK%RO227(:)+0.3*TPK%K210(:)*PCONC(:,1)*TPK%RO228(:)+0.3*TPK%K211(:& -&)*PCONC(:,85)*TPK%RO228(:)+0.3*TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) -!PLOSS(UR7) = +K357 - PLOSS(:,56) = +TPK%K357(:) -! -!PPROD(RPR3) = +0.055*K086*<O3>*<BIOL>+TPK%CFA10*K198*<NO>*<RO224>+K199*<RO2T>* -!<RO224>+K200*<HO2>*<RO224>+K201*<NO>*<RO225>+K202*<RO2T>*<RO225>+K203*<HO2>*<R -!O225> - PPROD(:,57) = +0.055*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)+TPK%CFA10*TPK%K198(:)*& -&PCONC(:,1)*TPK%RO224(:)+TPK%K199(:)*PCONC(:,85)*TPK%RO224(:)+TPK%K200(:)*PCONC& -&(:,10)*TPK%RO224(:)+TPK%K201(:)*PCONC(:,1)*TPK%RO225(:)+TPK%K202(:)*PCONC(:,85& -&)*TPK%RO225(:)+TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) -!PLOSS(RPR3) = +K312*<OH>+K313*<NO3>+K314 - PLOSS(:,57) = +TPK%K312(:)*PCONC(:,15)+TPK%K313(:)*PCONC(:,8)+TPK%K314(:) -! -!PPROD(URG6) = +TPK%CF21*K177*<NO>*<RO217>+TPK%CF43*K195*<NO>*<RO223>+0.4978440 -!*K323*<OH>*<RPG7> - PPROD(:,58) = +TPK%CF21*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:)+TPK%CF43*TPK%K195(& -&:)*PCONC(:,1)*TPK%RO223(:)+0.4978440*TPK%K323(:)*PCONC(:,15)*PCONC(:,63) -!PLOSS(URG6) = +K352 - PLOSS(:,58) = +TPK%K352(:) -! -!PPROD(UR22) = +K321*<NO2>*<RAD8> - PPROD(:,59) = +TPK%K321(:)*PCONC(:,2)*TPK%RAD8(:) -!PLOSS(UR22) = +K362 - PLOSS(:,59) = +TPK%K362(:) -! -!PPROD(URG7) = +0.1599999*K083*<OH>*<ARAC>+0.9999993*K108*<NO2>*<RAD6>+0.999999 -!3*K303*<OH>*<RPR5>+0.9979297*K306*<OH>*<RPRL>+0.9999993*K322*<OH>*<RPR7> - PPROD(:,60) = +0.1599999*TPK%K083(:)*PCONC(:,15)*PCONC(:,26)+0.9999993*TPK%K10& -&8(:)*PCONC(:,2)*TPK%RAD6(:)+0.9999993*TPK%K303(:)*PCONC(:,15)*PCONC(:,70)+0.99& -&79297*TPK%K306(:)*PCONC(:,15)*PCONC(:,75)+0.9999993*TPK%K322(:)*PCONC(:,15)*PC& -&ONC(:,62) -!PLOSS(URG7) = +K353 - PLOSS(:,60) = +TPK%K353(:) +!PPROD(WC_NH3) = +KTC10*<NH3> + PPROD(:,51) = +TPK%KTC10(:)*PCONC(:,10) +!PLOSS(WC_NH3) = +KTC30 + PLOSS(:,51) = +TPK%KTC30(:) +! +!PPROD(WC_OH) = +KTC11*<OH>+KC1*<WC_H2O2>+KC1*<WC_H2O2>+KC6*<WC_O3>*<WC_HO2>+KC +!13*<WC_HNO3>+KC28*<WC_ASO4> + PPROD(:,52) = +TPK%KTC11(:)*PCONC(:,14)+TPK%KC1(:)*PCONC(:,43)+TPK%KC1(:)*PCON& +&C(:,43)+TPK%KC6(:)*PCONC(:,42)*PCONC(:,53)+TPK%KC13(:)*PCONC(:,49)+TPK%KC28(:)& +&*PCONC(:,63) +!PLOSS(WC_OH) = +KTC31+KC2*<WC_OH>+KC2*<WC_OH>+KC3*<WC_HO2>+KC4*<WC_H2O2>+KC7*< +!WC_SO2>+KC8*<WC_HONO>+KC19*<WC_HCHO>+KC20*<WC_ORA1>+KC23*<WC_AHMS> + PLOSS(:,52) = +TPK%KTC31(:)+TPK%KC2(:)*PCONC(:,52)+TPK%KC2(:)*PCONC(:,52)+TPK%& +&KC3(:)*PCONC(:,53)+TPK%KC4(:)*PCONC(:,43)+TPK%KC7(:)*PCONC(:,55)+TPK%KC8(:)*PC& +&ONC(:,48)+TPK%KC19(:)*PCONC(:,57)+TPK%KC20(:)*PCONC(:,58)+TPK%KC23(:)*PCONC(:,& +&66) +! +!PPROD(WC_HO2) = +KTC12*<HO2>+KC4*<WC_H2O2>*<WC_OH>+KC10*<WC_HNO4>+2.00*KC17*<W +!C_MO2>*<WC_MO2>+KC19*<WC_HCHO>*<WC_OH>+KC20*<WC_ORA1>*<WC_OH>+KC23*<WC_AHMS>*< +!WC_OH> + PPROD(:,53) = +TPK%KTC12(:)*PCONC(:,15)+TPK%KC4(:)*PCONC(:,43)*PCONC(:,52)+TPK& +&%KC10(:)*PCONC(:,50)+2.00*TPK%KC17(:)*PCONC(:,60)*PCONC(:,60)+TPK%KC19(:)*PCON& +&C(:,57)*PCONC(:,52)+TPK%KC20(:)*PCONC(:,58)*PCONC(:,52)+TPK%KC23(:)*PCONC(:,66& +&)*PCONC(:,52) +!PLOSS(WC_HO2) = +KTC32+KC3*<WC_OH>+KC5*<WC_HO2>+KC5*<WC_HO2>+KC6*<WC_O3>+KC9*< +!WC_NO2>+KC25*<WC_ASO5> + PLOSS(:,53) = +TPK%KTC32(:)+TPK%KC3(:)*PCONC(:,52)+TPK%KC5(:)*PCONC(:,53)+TPK%& +&KC5(:)*PCONC(:,53)+TPK%KC6(:)*PCONC(:,42)+TPK%KC9(:)*PCONC(:,45)+TPK%KC25(:)*P& +&CONC(:,64) +! +!PPROD(WC_CO2) = +KTC13*<CO2>+KC20*<WC_ORA1>*<WC_OH> + PPROD(:,54) = +TPK%KTC13(:)*TPK%CO2(:)+TPK%KC20(:)*PCONC(:,58)*PCONC(:,52) +!PLOSS(WC_CO2) = +KTC33 + PLOSS(:,54) = +TPK%KTC33(:) +! +!PPROD(WC_SO2) = +KTC14*<SO2>+KC22*<WC_AHMS>+KC23*<WC_AHMS>*<WC_OH> + PPROD(:,55) = +TPK%KTC14(:)*PCONC(:,11)+TPK%KC22(:)*PCONC(:,66)+TPK%KC23(:)*PC& +&ONC(:,66)*PCONC(:,52) +!PLOSS(WC_SO2) = +KTC34+KC7*<WC_OH>+KC12*<WC_HNO4>+KC16*<WC_NO3>+KC18*<WC_MO2>+ +!KC21*<WC_HCHO>+KC27*<WC_AHSO5>+KC29*<WC_O3>+KC30*<WC_H2O2> + PLOSS(:,55) = +TPK%KTC34(:)+TPK%KC7(:)*PCONC(:,52)+TPK%KC12(:)*PCONC(:,50)+TPK& +&%KC16(:)*PCONC(:,46)+TPK%KC18(:)*PCONC(:,60)+TPK%KC21(:)*PCONC(:,57)+TPK%KC27(& +&:)*PCONC(:,65)+TPK%KC29(:)*PCONC(:,42)+TPK%KC30(:)*PCONC(:,43) +! +!PPROD(WC_SULF) = +KTC15*<SULF>+KC12*<WC_HNO4>*<WC_SO2>+2.00*KC27*<WC_AHSO5>*<W +!C_SO2>+KC28*<WC_ASO4>+KC29*<WC_SO2>*<WC_O3>+KC30*<WC_SO2>*<WC_H2O2> + PPROD(:,56) = +TPK%KTC15(:)*PCONC(:,12)+TPK%KC12(:)*PCONC(:,50)*PCONC(:,55)+2.& +&00*TPK%KC27(:)*PCONC(:,65)*PCONC(:,55)+TPK%KC28(:)*PCONC(:,63)+TPK%KC29(:)*PCO& +&NC(:,55)*PCONC(:,42)+TPK%KC30(:)*PCONC(:,55)*PCONC(:,43) +!PLOSS(WC_SULF) = +KTC35+KC15*<WC_NO3> + PLOSS(:,56) = +TPK%KTC35(:)+TPK%KC15(:)*PCONC(:,46) +! +!PPROD(WC_HCHO) = +KTC16*<HCHO>+2.00*KC17*<WC_MO2>*<WC_MO2>+KC22*<WC_AHMS> + PPROD(:,57) = +TPK%KTC16(:)*PCONC(:,22)+2.00*TPK%KC17(:)*PCONC(:,60)*PCONC(:,6& +&0)+TPK%KC22(:)*PCONC(:,66) +!PLOSS(WC_HCHO) = +KTC36+KC19*<WC_OH>+KC21*<WC_SO2> + PLOSS(:,57) = +TPK%KTC36(:)+TPK%KC19(:)*PCONC(:,52)+TPK%KC21(:)*PCONC(:,55) +! +!PPROD(WC_ORA1) = +KTC17*<ORA1>+KC19*<WC_HCHO>*<WC_OH>+KC23*<WC_AHMS>*<WC_OH> + PPROD(:,58) = +TPK%KTC17(:)*PCONC(:,30)+TPK%KC19(:)*PCONC(:,57)*PCONC(:,52)+TP& +&K%KC23(:)*PCONC(:,66)*PCONC(:,52) +!PLOSS(WC_ORA1) = +KTC37+KC20*<WC_OH> + PLOSS(:,58) = +TPK%KTC37(:)+TPK%KC20(:)*PCONC(:,52) +! +!PPROD(WC_ORA2) = +KTC18*<ORA2> + PPROD(:,59) = +TPK%KTC18(:)*PCONC(:,31) +!PLOSS(WC_ORA2) = +KTC38 + PLOSS(:,59) = +TPK%KTC38(:) +! +!PPROD(WC_MO2) = +KTC19*<MO2> + PPROD(:,60) = +TPK%KTC19(:)*PCONC(:,32) +!PLOSS(WC_MO2) = +KTC39+KC17*<WC_MO2>+KC17*<WC_MO2>+KC18*<WC_SO2> + PLOSS(:,60) = +TPK%KTC39(:)+TPK%KC17(:)*PCONC(:,60)+TPK%KC17(:)*PCONC(:,60)+TP& +&K%KC18(:)*PCONC(:,55) ! RETURN END SUBROUTINE SUB5 @@ -10494,76 +4803,64 @@ SUBROUTINE SUB6 !Indices 61 a 70 ! ! -!PPROD(RPR4) = +K103*<NO2>*<RAD1>+K104*<NO2>*<RAD2> - PPROD(:,61) = +TPK%K103(:)*PCONC(:,2)*TPK%RAD1(:)+TPK%K104(:)*PCONC(:,2)*TPK%R& -&AD2(:) -!PLOSS(RPR4) = +K320*<NO3> - PLOSS(:,61) = +TPK%K320(:)*PCONC(:,8) -! -!PPROD(RPR7) = +TPK%CF44*K195*<NO>*<RO223>+K196*<RO2T>*<RO223>+K197*<HO2>*<RO22 -!3>+2.0714202E-03*K306*<OH>*<RPRL> - PPROD(:,62) = +TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:)+TPK%K196(:)*PCONC(& -&:,85)*TPK%RO223(:)+TPK%K197(:)*PCONC(:,10)*TPK%RO223(:)+2.0714202E-03*TPK%K306& -&(:)*PCONC(:,15)*PCONC(:,75) -!PLOSS(RPR7) = +K322*<OH> - PLOSS(:,62) = +TPK%K322(:)*PCONC(:,15) -! -!PPROD(RPG7) = +1.0000013*K266*<NO>*<RO238>+1.0000013*K267*<RO2T>*<RO238>+1.000 -!0013*K268*<HO2>*<RO238>+0.5021558*K323*<OH>*<RPG7> - PPROD(:,63) = +1.0000013*TPK%K266(:)*PCONC(:,1)*TPK%RO238(:)+1.0000013*TPK%K26& -&7(:)*PCONC(:,85)*TPK%RO238(:)+1.0000013*TPK%K268(:)*PCONC(:,10)*TPK%RO238(:)+0& -&.5021558*TPK%K323(:)*PCONC(:,15)*PCONC(:,63) -!PLOSS(RPG7) = +K323*<OH> - PLOSS(:,63) = +TPK%K323(:)*PCONC(:,15) -! -!PPROD(URG8) = +0.1600000*K092*<OH>*<PAH>+1.0000000*K109*<NO2>*<RAD7>+TPK%CF31* -!K221*<NO>*<RO231> - PPROD(:,64) = +0.1600000*TPK%K092(:)*PCONC(:,15)*PCONC(:,27)+1.0000000*TPK%K10& -&9(:)*PCONC(:,2)*TPK%RAD7(:)+TPK%CF31*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) -!PLOSS(URG8) = +K354 - PLOSS(:,64) = +TPK%K354(:) -! -!PPROD(UR19) = +TPK%CF32*K221*<NO>*<RO231>+K222*<RO2T>*<RO231>+K223*<HO2>*<RO23 -!1> - PPROD(:,65) = +TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:)+TPK%K222(:)*PCONC(& -&:,85)*TPK%RO231(:)+TPK%K223(:)*PCONC(:,10)*TPK%RO231(:) -!PLOSS(UR19) = +K360 - PLOSS(:,65) = +TPK%K360(:) -! -!PPROD(URG9) = +TPK%CFA14*K224*<NO>*<RO232>+TPK%CFA16*K227*<NO>*<RO241>+TPK%CFA -!15*K227*<NO>*<RO241>+0.9999996*K228*<RO2T>*<RO241>+0.9999996*K229*<HO2>*<RO241 +!PPROD(WC_OP1) = +KTC20*<OP1>+KC18*<WC_MO2>*<WC_SO2> + PPROD(:,61) = +TPK%KTC20(:)*PCONC(:,28)+TPK%KC18(:)*PCONC(:,60)*PCONC(:,55) +!PLOSS(WC_OP1) = +KTC40 + PLOSS(:,61) = +TPK%KTC40(:) +! +!PPROD(WC_ASO3) = +KC7*<WC_OH>*<WC_SO2>+KC16*<WC_NO3>*<WC_SO2>+KC18*<WC_MO2>*<W +!C_SO2> + PPROD(:,62) = +TPK%KC7(:)*PCONC(:,52)*PCONC(:,55)+TPK%KC16(:)*PCONC(:,46)*PCON& +&C(:,55)+TPK%KC18(:)*PCONC(:,60)*PCONC(:,55) +!PLOSS(WC_ASO3) = +KC24*<W_O2> + PLOSS(:,62) = +TPK%KC24(:)*TPK%W_O2(:) +! +!PPROD(WC_ASO4) = +KC15*<WC_NO3>*<WC_SULF>+KC26*<WC_ASO5>*<WC_ASO5>+KC26*<WC_AS +!O5>*<WC_ASO5> + PPROD(:,63) = +TPK%KC15(:)*PCONC(:,46)*PCONC(:,56)+TPK%KC26(:)*PCONC(:,64)*PCO& +&NC(:,64)+TPK%KC26(:)*PCONC(:,64)*PCONC(:,64) +!PLOSS(WC_ASO4) = +KC28 + PLOSS(:,63) = +TPK%KC28(:) +! +!PPROD(WC_ASO5) = +KC24*<WC_ASO3>*<W_O2> + PPROD(:,64) = +TPK%KC24(:)*PCONC(:,62)*TPK%W_O2(:) +!PLOSS(WC_ASO5) = +KC25*<WC_HO2>+KC26*<WC_ASO5>+KC26*<WC_ASO5> + PLOSS(:,64) = +TPK%KC25(:)*PCONC(:,53)+TPK%KC26(:)*PCONC(:,64)+TPK%KC26(:)*PCO& +&NC(:,64) +! +!PPROD(WC_AHSO5) = +KC25*<WC_ASO5>*<WC_HO2> + PPROD(:,65) = +TPK%KC25(:)*PCONC(:,64)*PCONC(:,53) +!PLOSS(WC_AHSO5) = +KC27*<WC_SO2> + PLOSS(:,65) = +TPK%KC27(:)*PCONC(:,55) +! +!PPROD(WC_AHMS) = +KC21*<WC_SO2>*<WC_HCHO> + PPROD(:,66) = +TPK%KC21(:)*PCONC(:,55)*PCONC(:,57) +!PLOSS(WC_AHMS) = +KC22+KC23*<WC_OH> + PLOSS(:,66) = +TPK%KC22(:)+TPK%KC23(:)*PCONC(:,52) +! +!PPROD(WR_O3) = +KTR1*<O3> + PPROD(:,67) = +TPK%KTR1(:)*PCONC(:,1) +!PLOSS(WR_O3) = +KTR21+KR6*<WR_HO2>+KR29*<WR_SO2> + PLOSS(:,67) = +TPK%KTR21(:)+TPK%KR6(:)*PCONC(:,78)+TPK%KR29(:)*PCONC(:,80) +! +!PPROD(WR_H2O2) = +KTR2*<H2O2>+KR2*<WR_OH>*<WR_OH>+KR5*<WR_HO2>*<WR_HO2> + PPROD(:,68) = +TPK%KTR2(:)*PCONC(:,2)+TPK%KR2(:)*PCONC(:,77)*PCONC(:,77)+TPK%K& +&R5(:)*PCONC(:,78)*PCONC(:,78) +!PLOSS(WR_H2O2) = +KTR22+KR1+KR4*<WR_OH>+KR30*<WR_SO2> + PLOSS(:,68) = +TPK%KTR22(:)+TPK%KR1(:)+TPK%KR4(:)*PCONC(:,77)+TPK%KR30(:)*PCON& +&C(:,80) +! +!PPROD(WR_NO) = +KTR3*<NO> + PPROD(:,69) = +TPK%KTR3(:)*PCONC(:,3) +!PLOSS(WR_NO) = +KTR23 + PLOSS(:,69) = +TPK%KTR23(:) +! +!PPROD(WR_NO2) = +KTR4*<NO2>+KR8*<WR_HONO>*<WR_OH>+KR10*<WR_HNO4>+KR13*<WR_HNO3 !> - PPROD(:,66) = +TPK%CFA14*TPK%K224(:)*PCONC(:,1)*TPK%RO232(:)+TPK%CFA16*TPK%K22& -&7(:)*PCONC(:,1)*TPK%RO241(:)+TPK%CFA15*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:)+0.9& -&999996*TPK%K228(:)*PCONC(:,85)*TPK%RO241(:)+0.9999996*TPK%K229(:)*PCONC(:,10)*& -&TPK%RO241(:) -!PLOSS(URG9) = +K355 - PLOSS(:,66) = +TPK%K355(:) -! -!PPROD(AP7) = +TPK%CFA23*K198*<NO>*<RO224> - PPROD(:,67) = +TPK%CFA23*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) -!PLOSS(AP7) = +K365 - PLOSS(:,67) = +TPK%K365(:) -! -!PPROD(URG10) = +0.2500000*K087*<O>*<BIOL>+0.7500000*K087*<O>*<BIOL>+TPK%CF27*K -!207*<NO>*<RO227> - PPROD(:,68) = +0.2500000*TPK%K087(:)*TPK%O(:)*PCONC(:,36)+0.7500000*TPK%K087(:& -&)*TPK%O(:)*PCONC(:,36)+TPK%CF27*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) -!PLOSS(URG10) = +K356 - PLOSS(:,68) = +TPK%K356(:) -! -!PPROD(RPR1) = +0.5*K076*<O3>*<OLEH>+0.4*K077*<O>*<OLEH>+K183*<NO>*<RO219>+K184 -!*<RO2T>*<RO219>+K185*<HO2>*<RO219> - PPROD(:,69) = +0.5*TPK%K076(:)*PCONC(:,3)*PCONC(:,18)+0.4*TPK%K077(:)*TPK%O(:)& -&*PCONC(:,18)+TPK%K183(:)*PCONC(:,1)*TPK%RO219(:)+TPK%K184(:)*PCONC(:,85)*TPK%R& -&O219(:)+TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) -!PLOSS(RPR1) = +K304*<OH>+K307*<NO3>+K308 - PLOSS(:,69) = +TPK%K304(:)*PCONC(:,15)+TPK%K307(:)*PCONC(:,8)+TPK%K308(:) -! -!PPROD(RPR5) = +K107*<NO2>*<RAD5> - PPROD(:,70) = +TPK%K107(:)*PCONC(:,2)*TPK%RAD5(:) -!PLOSS(RPR5) = +K303*<OH> - PLOSS(:,70) = +TPK%K303(:)*PCONC(:,15) + PPROD(:,70) = +TPK%KTR4(:)*PCONC(:,4)+TPK%KR8(:)*PCONC(:,73)*PCONC(:,77)+TPK%K& +&R10(:)*PCONC(:,75)+TPK%KR13(:)*PCONC(:,74) +!PLOSS(WR_NO2) = +KTR24+KR9*<WR_HO2> + PLOSS(:,70) = +TPK%KTR24(:)+TPK%KR9(:)*PCONC(:,78) ! RETURN END SUBROUTINE SUB6 @@ -10573,83 +4870,77 @@ SUBROUTINE SUB7 !Indices 71 a 80 ! ! -!PPROD(RPR8) = +K216*<NO>*<RO240>+K217*<RO2T>*<RO240>+K218*<HO2>*<RO240> - PPROD(:,71) = +TPK%K216(:)*PCONC(:,1)*TPK%RO240(:)+TPK%K217(:)*PCONC(:,85)*TPK& -&%RO240(:)+TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) -!PLOSS(RPR8) = +K324*<OH>+K327*<NO3>+K329+K330 - PLOSS(:,71) = +TPK%K324(:)*PCONC(:,15)+TPK%K327(:)*PCONC(:,8)+TPK%K329(:)+TPK%& -&K330(:) -! -!PPROD(RP10) = +K234*<NO>*<RO242>+K235*<RO2T>*<RO242>+K236*<HO2>*<RO242>+K241*< -!NO>*<RO243>+K242*<RO2T>*<RO243>+K243*<HO2>*<RO243>+K248*<NO>*<RO244>+K249*<RO2 -!T>*<RO244>+K250*<HO2>*<RO244>+K255*<NO>*<RO245>+K256*<RO2T>*<RO245>+K257*<HO2> -!*<RO245>+K262*<NO>*<RO246>+K263*<RO2T>*<RO246>+K264*<HO2>*<RO246> - PPROD(:,72) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:)+TPK%K235(:)*PCONC(:,85)*TPK& -&%RO242(:)+TPK%K236(:)*PCONC(:,10)*TPK%RO242(:)+TPK%K241(:)*PCONC(:,1)*TPK%RO24& -&3(:)+TPK%K242(:)*PCONC(:,85)*TPK%RO243(:)+TPK%K243(:)*PCONC(:,10)*TPK%RO243(:)& -&+TPK%K248(:)*PCONC(:,1)*TPK%RO244(:)+TPK%K249(:)*PCONC(:,85)*TPK%RO244(:)+TPK%& -&K250(:)*PCONC(:,10)*TPK%RO244(:)+TPK%K255(:)*PCONC(:,1)*TPK%RO245(:)+TPK%K256(& -&:)*PCONC(:,85)*TPK%RO245(:)+TPK%K257(:)*PCONC(:,10)*TPK%RO245(:)+TPK%K262(:)*P& -&CONC(:,1)*TPK%RO246(:)+TPK%K263(:)*PCONC(:,85)*TPK%RO246(:)+TPK%K264(:)*PCONC(& -&:,10)*TPK%RO246(:) -!PLOSS(RP10) = +K325*<OH>+K328 - PLOSS(:,72) = +TPK%K325(:)*PCONC(:,15)+TPK%K328(:) -! -!PPROD(RP11) = +0.3*K238*<NO>*<RO234>+K239*<RO2T>*<RO234>+0.3*K240*<HO2>*<RO234 -!>+0.5*K245*<NO>*<RO235>+K246*<RO2T>*<RO235>+K247*<HO2>*<RO235> - PPROD(:,73) = +0.3*TPK%K238(:)*PCONC(:,1)*TPK%RO234(:)+TPK%K239(:)*PCONC(:,85)& -&*TPK%RO234(:)+0.3*TPK%K240(:)*PCONC(:,10)*TPK%RO234(:)+0.5*TPK%K245(:)*PCONC(:& -&,1)*TPK%RO235(:)+TPK%K246(:)*PCONC(:,85)*TPK%RO235(:)+TPK%K247(:)*PCONC(:,10)*& -&TPK%RO235(:) -!PLOSS(RP11) = +K326*<OH> - PLOSS(:,73) = +TPK%K326(:)*PCONC(:,15) -! -!PPROD(RP16) = +K301*<HO2>*<RO254>+KTC60*<WC_RP16>+KTR60*<WR_RP16> - PPROD(:,74) = +TPK%K301(:)*PCONC(:,10)*TPK%RO254(:)+TPK%KTC60(:)*PCONC(:,116)+& -&TPK%KTR60(:)*PCONC(:,153) -!PLOSS(RP16) = +K305*<OH>+K338*<NO3>+K339+KTC29+KTR29 - PLOSS(:,74) = +TPK%K305(:)*PCONC(:,15)+TPK%K338(:)*PCONC(:,8)+TPK%K339(:)+TPK%& -&KTC29(:)+TPK%KTR29(:) -! -!PPROD(RPRL) = +0.9983609*K082*<OH>*<ARAL>+TPK%CFA2*K177*<NO>*<RO217>+0.9983609 -!*K178*<RO2T>*<RO217>+0.9983609*K179*<HO2>*<RO217>+TPK%CFA7*K192*<NO>*<RO222>+0 -!.9983609*K193*<RO2T>*<RO222>+0.9983609*K194*<HO2>*<RO222>+1.0023998*K269*<NO>* -!<RO247>+1.0023998*K270*<RO2T>*<RO247>+1.0023998*K271*<HO2>*<RO247> - PPROD(:,75) = +0.9983609*TPK%K082(:)*PCONC(:,15)*PCONC(:,25)+TPK%CFA2*TPK%K177& -&(:)*PCONC(:,1)*TPK%RO217(:)+0.9983609*TPK%K178(:)*PCONC(:,85)*TPK%RO217(:)+0.9& -&983609*TPK%K179(:)*PCONC(:,10)*TPK%RO217(:)+TPK%CFA7*TPK%K192(:)*PCONC(:,1)*TP& -&K%RO222(:)+0.9983609*TPK%K193(:)*PCONC(:,85)*TPK%RO222(:)+0.9983609*TPK%K194(:& -&)*PCONC(:,10)*TPK%RO222(:)+1.0023998*TPK%K269(:)*PCONC(:,1)*TPK%RO247(:)+1.002& -&3998*TPK%K270(:)*PCONC(:,85)*TPK%RO247(:)+1.0023998*TPK%K271(:)*PCONC(:,10)*TP& -&K%RO247(:) -!PLOSS(RPRL) = +K306*<OH> - PLOSS(:,75) = +TPK%K306(:)*PCONC(:,15) -! -!PPROD(APAN) = +K130*<NO2>*<RO250>+K133*<NO2>*<RO257> - PPROD(:,76) = +TPK%K130(:)*PCONC(:,2)*TPK%RO250(:)+TPK%K133(:)*PCONC(:,2)*TPK%& -&RO257(:) -!PLOSS(APAN) = +K139 - PLOSS(:,76) = +TPK%K139(:) -! -!PPROD(PAN1) = +K126*<NO2>*<RO26> - PPROD(:,77) = +TPK%K126(:)*PCONC(:,2)*TPK%RO26(:) -!PLOSS(PAN1) = +K135 - PLOSS(:,77) = +TPK%K135(:) -! -!PPROD(PAN2) = +K127*<NO2>*<RO28> - PPROD(:,78) = +TPK%K127(:)*PCONC(:,2)*TPK%RO28(:) -!PLOSS(PAN2) = +K136 - PLOSS(:,78) = +TPK%K136(:) -! -!PPROD(PAN3) = +K128*<NO2>*<RO239> - PPROD(:,79) = +TPK%K128(:)*PCONC(:,2)*TPK%RO239(:) -!PLOSS(PAN3) = +K137 - PLOSS(:,79) = +TPK%K137(:) -! -!PPROD(PAN4) = +K129*<NO2>*<RO248> - PPROD(:,80) = +TPK%K129(:)*PCONC(:,2)*TPK%RO248(:) -!PLOSS(PAN4) = +K141 - PLOSS(:,80) = +TPK%K141(:) +!PPROD(WR_NO3) = +KTR5*<NO3> + PPROD(:,71) = +TPK%KTR5(:)*PCONC(:,5) +!PLOSS(WR_NO3) = +KTR25+KR15*<WR_SULF>+KR16*<WR_SO2> + PLOSS(:,71) = +TPK%KTR25(:)+TPK%KR15(:)*PCONC(:,81)+TPK%KR16(:)*PCONC(:,80) +! +!PPROD(WR_N2O5) = +KTR6*<N2O5> + PPROD(:,72) = +TPK%KTR6(:)*PCONC(:,6) +!PLOSS(WR_N2O5) = +KTR26+KR14 + PLOSS(:,72) = +TPK%KTR26(:)+TPK%KR14(:) +! +!PPROD(WR_HONO) = +KTR7*<HONO>+KR11*<WR_HNO4> + PPROD(:,73) = +TPK%KTR7(:)*PCONC(:,7)+TPK%KR11(:)*PCONC(:,75) +!PLOSS(WR_HONO) = +KTR27+KR8*<WR_OH> + PLOSS(:,73) = +TPK%KTR27(:)+TPK%KR8(:)*PCONC(:,77) +! +!PPROD(WR_HNO3) = +KTR8*<HNO3>+KR12*<WR_HNO4>*<WR_SO2>+KR14*<WR_N2O5>+KR14*<WR_ +!N2O5>+KR15*<WR_NO3>*<WR_SULF>+KR16*<WR_NO3>*<WR_SO2> + PPROD(:,74) = +TPK%KTR8(:)*PCONC(:,8)+TPK%KR12(:)*PCONC(:,75)*PCONC(:,80)+TPK%& +&KR14(:)*PCONC(:,72)+TPK%KR14(:)*PCONC(:,72)+TPK%KR15(:)*PCONC(:,71)*PCONC(:,81& +&)+TPK%KR16(:)*PCONC(:,71)*PCONC(:,80) +!PLOSS(WR_HNO3) = +KTR28+KR13 + PLOSS(:,74) = +TPK%KTR28(:)+TPK%KR13(:) +! +!PPROD(WR_HNO4) = +KTR9*<HNO4>+KR9*<WR_NO2>*<WR_HO2> + PPROD(:,75) = +TPK%KTR9(:)*PCONC(:,9)+TPK%KR9(:)*PCONC(:,70)*PCONC(:,78) +!PLOSS(WR_HNO4) = +KTR29+KR10+KR11+KR12*<WR_SO2> + PLOSS(:,75) = +TPK%KTR29(:)+TPK%KR10(:)+TPK%KR11(:)+TPK%KR12(:)*PCONC(:,80) +! +!PPROD(WR_NH3) = +KTR10*<NH3> + PPROD(:,76) = +TPK%KTR10(:)*PCONC(:,10) +!PLOSS(WR_NH3) = +KTR30 + PLOSS(:,76) = +TPK%KTR30(:) +! +!PPROD(WR_OH) = +KTR11*<OH>+KR1*<WR_H2O2>+KR1*<WR_H2O2>+KR6*<WR_O3>*<WR_HO2>+KR +!13*<WR_HNO3>+KR28*<WR_ASO4> + PPROD(:,77) = +TPK%KTR11(:)*PCONC(:,14)+TPK%KR1(:)*PCONC(:,68)+TPK%KR1(:)*PCON& +&C(:,68)+TPK%KR6(:)*PCONC(:,67)*PCONC(:,78)+TPK%KR13(:)*PCONC(:,74)+TPK%KR28(:)& +&*PCONC(:,88) +!PLOSS(WR_OH) = +KTR31+KR2*<WR_OH>+KR2*<WR_OH>+KR3*<WR_HO2>+KR4*<WR_H2O2>+KR7*< +!WR_SO2>+KR8*<WR_HONO>+KR19*<WR_HCHO>+KR20*<WR_ORA1>+KR23*<WR_AHMS> + PLOSS(:,77) = +TPK%KTR31(:)+TPK%KR2(:)*PCONC(:,77)+TPK%KR2(:)*PCONC(:,77)+TPK%& +&KR3(:)*PCONC(:,78)+TPK%KR4(:)*PCONC(:,68)+TPK%KR7(:)*PCONC(:,80)+TPK%KR8(:)*PC& +&ONC(:,73)+TPK%KR19(:)*PCONC(:,82)+TPK%KR20(:)*PCONC(:,83)+TPK%KR23(:)*PCONC(:,& +&91) +! +!PPROD(WR_HO2) = +KTR12*<HO2>+KR4*<WR_H2O2>*<WR_OH>+KR10*<WR_HNO4>+2.00*KR17*<W +!R_MO2>*<WR_MO2>+KR19*<WR_HCHO>*<WR_OH>+KR20*<WR_ORA1>*<WR_OH>+KR23*<WR_AHMS>*< +!WR_OH> + PPROD(:,78) = +TPK%KTR12(:)*PCONC(:,15)+TPK%KR4(:)*PCONC(:,68)*PCONC(:,77)+TPK& +&%KR10(:)*PCONC(:,75)+2.00*TPK%KR17(:)*PCONC(:,85)*PCONC(:,85)+TPK%KR19(:)*PCON& +&C(:,82)*PCONC(:,77)+TPK%KR20(:)*PCONC(:,83)*PCONC(:,77)+TPK%KR23(:)*PCONC(:,91& +&)*PCONC(:,77) +!PLOSS(WR_HO2) = +KTR32+KR3*<WR_OH>+KR5*<WR_HO2>+KR5*<WR_HO2>+KR6*<WR_O3>+KR9*< +!WR_NO2>+KR25*<WR_ASO5> + PLOSS(:,78) = +TPK%KTR32(:)+TPK%KR3(:)*PCONC(:,77)+TPK%KR5(:)*PCONC(:,78)+TPK%& +&KR5(:)*PCONC(:,78)+TPK%KR6(:)*PCONC(:,67)+TPK%KR9(:)*PCONC(:,70)+TPK%KR25(:)*P& +&CONC(:,89) +! +!PPROD(WR_CO2) = +KTR13*<CO2>+KR20*<WR_ORA1>*<WR_OH> + PPROD(:,79) = +TPK%KTR13(:)*TPK%CO2(:)+TPK%KR20(:)*PCONC(:,83)*PCONC(:,77) +!PLOSS(WR_CO2) = +KTR33 + PLOSS(:,79) = +TPK%KTR33(:) +! +!PPROD(WR_SO2) = +KTR14*<SO2>+KR22*<WR_AHMS>+KR23*<WR_AHMS>*<WR_OH> + PPROD(:,80) = +TPK%KTR14(:)*PCONC(:,11)+TPK%KR22(:)*PCONC(:,91)+TPK%KR23(:)*PC& +&ONC(:,91)*PCONC(:,77) +!PLOSS(WR_SO2) = +KTR34+KR7*<WR_OH>+KR12*<WR_HNO4>+KR16*<WR_NO3>+KR18*<WR_MO2>+ +!KR21*<WR_HCHO>+KR27*<WR_AHSO5>+KR29*<WR_O3>+KR30*<WR_H2O2> + PLOSS(:,80) = +TPK%KTR34(:)+TPK%KR7(:)*PCONC(:,77)+TPK%KR12(:)*PCONC(:,75)+TPK& +&%KR16(:)*PCONC(:,71)+TPK%KR18(:)*PCONC(:,85)+TPK%KR21(:)*PCONC(:,82)+TPK%KR27(& +&:)*PCONC(:,90)+TPK%KR29(:)*PCONC(:,67)+TPK%KR30(:)*PCONC(:,68) ! RETURN END SUBROUTINE SUB7 @@ -10659,797 +4950,806 @@ SUBROUTINE SUB8 !Indices 81 a 90 ! ! -!PPROD(PAN6) = +K131*<NO2>*<RO254> - PPROD(:,81) = +TPK%K131(:)*PCONC(:,2)*TPK%RO254(:) -!PLOSS(PAN6) = +K140 - PLOSS(:,81) = +TPK%K140(:) -! -!PPROD(PAN7) = +K132*<NO2>*<RO255> - PPROD(:,82) = +TPK%K132(:)*PCONC(:,2)*TPK%RO255(:) -!PLOSS(PAN7) = +K343 - PLOSS(:,82) = +TPK%K343(:) -! -!PPROD(PAN8) = +K316*<NO2>*<RO256> - PPROD(:,83) = +TPK%K316(:)*PCONC(:,2)*TPK%RO256(:) -!PLOSS(PAN8) = +K317 - PLOSS(:,83) = +TPK%K317(:) -! -!PPROD(PN10) = +K134*<NO2>*<RO258> - PPROD(:,84) = +TPK%K134(:)*PCONC(:,2)*TPK%RO258(:) -!PLOSS(PN10) = +K138 - PLOSS(:,84) = +TPK%K138(:) -! -!PPROD(RO2T) = +K043*<OH>*<CH4>+K049*<OH>*<ETHE>+K050*<NO3>*<ETHE>+K052*<O>*<ET -!HE>+TPK%CF2*K053*<OH>*<ETOH>+K054*<OH>*<OLEL>+K055*<NO3>*<OLEL>+0.28*K056*<O3> -!*<OLEL>+0.2*K057*<O>*<OLEL>+K058*<OH>*<ALKL>+K059*<ALD2>+K060*<OH>*<ALD2>+K061 -!*<NO3>*<ALD2>+K062*<OH>*<KETL>+2.*K063*<KETL>+K064*<OH>*<ISOP>+K065*<NO3>*<ISO -!P>+0.366*K066*<O3>*<ISOP>+K068*<OH>*<MTBE>+K069*<OH>*<ALCH>+K070*<OH>*<KETH>+2 -!.*K071*<KETH>+0.1*K073*<OH>*<AROO>+K074*<OH>*<OLEH>+K075*<NO3>*<OLEH>+0.28*K07 -!6*<O3>*<OLEH>+0.2*K077*<O>*<OLEH>+K078*<OH>*<ALKM>+0.06*K079*<OH>*<AROL>+TPK%C -!F45*K082*<OH>*<ARAL>+0.1*K083*<OH>*<ARAC>+K084*<OH>*<BIOL>+K085*<NO3>*<BIOL>+0 -!.445*K086*<O3>*<BIOL>+K088*<OH>*<BIOH>+K089*<NO3>*<BIOH>+0.89*K090*<O3>*<BIOH> -!+0.1*K092*<OH>*<PAH>+K093*<OH>*<ALKH>+K096*<RO2T>*<RO2T>+K097*<RAD2>+K098*<RAD -!3>+K099*<RAD4>+K100*<RAD5>+K101*<RAD6>+K102*<RAD7>+K111*<RO2T>*<RO21>+K114*<RO -!2T>*<RO22>+K117*<RO2T>*<RO23>+K120*<RO2T>*<RO24>+K123*<RO2T>*<RO25>+K125*<NO>* -!<RO26>+K135*<PAN1>+K136*<PAN2>+K137*<PAN3>+K138*<PN10>+1.0000000*K139*<APAN>+K -!140*<PAN6>+K141*<PAN4>+2.*K143*<RO2T>*<RO26>+K144*<NO>*<RO27>+2.*K145*<RO2T>*< -!RO27>+K146*<HO2>*<RO27>+K147*<NO>*<RO28>+2.*K149*<RO2T>*<RO28>+K151*<RO2T>*<RO -!29>+K154*<RO2T>*<RO210>+K157*<RO2T>*<RO211>+K160*<RO2T>*<RO212>+K162*<NO>*<RO2 -!13>+2.*K163*<RO2T>*<RO213>+K164*<HO2>*<RO213>+K165*<NO>*<RO239>+2.*K167*<RO2T> -!*<RO239>+TPK%CF8*K168*<NO>*<RO214>+2.*K169*<RO2T>*<RO214>+K170*<HO2>*<RO214>+K -!172*<RO2T>*<RO215>+K174*<NO>*<RO216>+2.*K175*<RO2T>*<RO216>+K176*<HO2>*<RO216> -!+K178*<RO2T>*<RO217>+K181*<RO2T>*<RO218>+K184*<RO2T>*<RO219>+TPK%CF18*K186*<NO -!>*<RO220>+2.*K187*<RO2T>*<RO220>+K188*<HO2>*<RO220>+K190*<RO2T>*<RO221>+K193*< -!RO2T>*<RO222>+K196*<RO2T>*<RO223>+K199*<RO2T>*<RO224>+K202*<RO2T>*<RO225>+K204 -!*<NO>*<RO226>+2.*K205*<RO2T>*<RO226>+K206*<HO2>*<RO226>+K208*<RO2T>*<RO227>+K2 -!11*<RO2T>*<RO228>+TPK%CF30*K213*<NO>*<RO229>+2.*K214*<RO2T>*<RO229>+K215*<HO2> -!*<RO229>+K216*<NO>*<RO240>+2.*K217*<RO2T>*<RO240>+K218*<HO2>*<RO240>+2.*K219*< -!RO2T>*<RO230>+K220*<HO2>*<RO230>+K222*<RO2T>*<RO231>+TPK%CF34*K224*<NO>*<RO232 -!>+2.*K225*<RO2T>*<RO232>+K226*<HO2>*<RO232>+K228*<RO2T>*<RO241>+K230*<RO233>+K -!232*<RO2T>*<RO233>+K235*<RO2T>*<RO242>+K237*<RO234>+K239*<RO2T>*<RO234>+K242*< -!RO2T>*<RO243>+K244*<RO235>+K246*<RO2T>*<RO235>+K249*<RO2T>*<RO244>+K251*<RO236 -!>+K253*<RO2T>*<RO236>+K256*<RO2T>*<RO245>+K258*<RO237>+K260*<RO2T>*<RO237>+K26 -!3*<RO2T>*<RO246>+K265*<RO238>+K267*<RO2T>*<RO238>+K270*<RO2T>*<RO247>+K272*<OH -!>*<MVK>+K273*<OH>*<MCR>+K274*<OH>*<MGLY>+K275*<NO3>*<MCR>+K276*<MGLY>+K277*<NO -!>*<RO248>+K278*<NO3>*<MGLY>+2.*K280*<RO2T>*<RO248>+0.28*K281*<O3>*<MVK>+0.41*K -!282*<O3>*<MCR>+0.3*K283*<O>*<MVK>+0.15*K284*<O>*<MCR>+K286*<RO2T>*<RO249>+K288 -!*<NO>*<RO250>+2.*K290*<RO2T>*<RO250>+K292*<HO2>*<RO251>+K295*<HO2>*<RO252>+K29 -!7*<NO>*<RO253>+2.*K298*<HO2>*<RO253>+K299*<RO2T>*<RO253>+K302*<RO2T>*<RO254>+K -!304*<OH>*<RPR1>+K305*<OH>*<RP16>+K307*<NO3>*<RPR1>+K308*<RPR1>+K309*<NO>*<RO25 -!5>+2.*K311*<RO2T>*<RO255>+K312*<OH>*<RPR3>+K313*<NO3>*<RPR3>+K317*<PAN8>+K319* -!<RO2T>*<RO256>+K324*<OH>*<RPR8>+K327*<NO3>*<RPR8>+K329*<RPR8>+K330*<RPR8>+K331 -!*<NO>*<RO257>+2.*K333*<RO2T>*<RO257>+K338*<NO3>*<RP16>+K342*<RO2T>*<RO258>+K34 -!3*<PAN7>+K344*<NO>*<RO230> - PPROD(:,85) = +TPK%K043(:)*PCONC(:,15)*TPK%CH4(:)+TPK%K049(:)*PCONC(:,15)*PCON& -&C(:,16)+TPK%K050(:)*PCONC(:,8)*PCONC(:,16)+TPK%K052(:)*TPK%O(:)*PCONC(:,16)+TP& -&K%CF2*TPK%K053(:)*PCONC(:,15)*PCONC(:,33)+TPK%K054(:)*PCONC(:,15)*PCONC(:,17)+& -&TPK%K055(:)*PCONC(:,8)*PCONC(:,17)+0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+0.2& -&*TPK%K057(:)*TPK%O(:)*PCONC(:,17)+TPK%K058(:)*PCONC(:,15)*PCONC(:,19)+TPK%K059& -&(:)*PCONC(:,29)+TPK%K060(:)*PCONC(:,15)*PCONC(:,29)+TPK%K061(:)*PCONC(:,8)*PCO& -&NC(:,29)+TPK%K062(:)*PCONC(:,15)*PCONC(:,30)+2.*TPK%K063(:)*PCONC(:,30)+TPK%K0& -&64(:)*PCONC(:,15)*PCONC(:,35)+TPK%K065(:)*PCONC(:,8)*PCONC(:,35)+0.366*TPK%K06& -&6(:)*PCONC(:,3)*PCONC(:,35)+TPK%K068(:)*PCONC(:,15)*PCONC(:,38)+TPK%K069(:)*PC& -&ONC(:,15)*PCONC(:,34)+TPK%K070(:)*PCONC(:,15)*PCONC(:,31)+2.*TPK%K071(:)*PCONC& -&(:,31)+0.1*TPK%K073(:)*PCONC(:,15)*PCONC(:,24)+TPK%K074(:)*PCONC(:,15)*PCONC(:& -&,18)+TPK%K075(:)*PCONC(:,8)*PCONC(:,18)+0.28*TPK%K076(:)*PCONC(:,3)*PCONC(:,18& -&)+0.2*TPK%K077(:)*TPK%O(:)*PCONC(:,18)+TPK%K078(:)*PCONC(:,15)*PCONC(:,20)+0.0& -&6*TPK%K079(:)*PCONC(:,15)*PCONC(:,23)+TPK%CF45*TPK%K082(:)*PCONC(:,15)*PCONC(:& -&,25)+0.1*TPK%K083(:)*PCONC(:,15)*PCONC(:,26)+TPK%K084(:)*PCONC(:,15)*PCONC(:,3& -&6)+TPK%K085(:)*PCONC(:,8)*PCONC(:,36)+0.445*TPK%K086(:)*PCONC(:,3)*PCONC(:,36)& -&+TPK%K088(:)*PCONC(:,15)*PCONC(:,37)+TPK%K089(:)*PCONC(:,8)*PCONC(:,37)+0.89*T& -&PK%K090(:)*PCONC(:,3)*PCONC(:,37)+0.1*TPK%K092(:)*PCONC(:,15)*PCONC(:,27)+TPK%& -&K093(:)*PCONC(:,15)*PCONC(:,21)+TPK%K096(:)*PCONC(:,85)*PCONC(:,85)+TPK%K097(:& -&)*TPK%RAD2(:)+TPK%K098(:)*TPK%RAD3(:)+TPK%K099(:)*TPK%RAD4(:)+TPK%K100(:)*TPK%& -&RAD5(:)+TPK%K101(:)*TPK%RAD6(:)+TPK%K102(:)*TPK%RAD7(:)+TPK%K111(:)*PCONC(:,85& -&)*PCONC(:,86)+TPK%K114(:)*PCONC(:,85)*TPK%RO22(:)+TPK%K117(:)*PCONC(:,85)*TPK%& -&RO23(:)+TPK%K120(:)*PCONC(:,85)*TPK%RO24(:)+TPK%K123(:)*PCONC(:,85)*PCONC(:,87& -&)+TPK%K125(:)*PCONC(:,1)*TPK%RO26(:)+TPK%K135(:)*PCONC(:,77)+TPK%K136(:)*PCONC& -&(:,78)+TPK%K137(:)*PCONC(:,79)+TPK%K138(:)*PCONC(:,84)+1.0000000*TPK%K139(:)*P& -&CONC(:,76)+TPK%K140(:)*PCONC(:,81)+TPK%K141(:)*PCONC(:,80)+2.*TPK%K143(:)*PCON& -&C(:,85)*TPK%RO26(:)+TPK%K144(:)*PCONC(:,1)*TPK%RO27(:)+2.*TPK%K145(:)*PCONC(:,& -&85)*TPK%RO27(:)+TPK%K146(:)*PCONC(:,10)*TPK%RO27(:)+TPK%K147(:)*PCONC(:,1)*TPK& -&%RO28(:)+2.*TPK%K149(:)*PCONC(:,85)*TPK%RO28(:)+TPK%K151(:)*PCONC(:,85)*TPK%RO& -&29(:)+TPK%K154(:)*PCONC(:,85)*TPK%RO210(:)+TPK%K157(:)*PCONC(:,85)*TPK%RO211(:& -&)+TPK%K160(:)*PCONC(:,85)*TPK%RO212(:)+TPK%K162(:)*PCONC(:,1)*TPK%RO213(:)+2.*& -&TPK%K163(:)*PCONC(:,85)*TPK%RO213(:)+TPK%K164(:)*PCONC(:,10)*TPK%RO213(:)+TPK%& -&K165(:)*PCONC(:,1)*TPK%RO239(:)+2.*TPK%K167(:)*PCONC(:,85)*TPK%RO239(:)+TPK%CF& -&8*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:)+2.*TPK%K169(:)*PCONC(:,85)*TPK%RO214(:)+& -&TPK%K170(:)*PCONC(:,10)*TPK%RO214(:)+TPK%K172(:)*PCONC(:,85)*TPK%RO215(:)+TPK%& -&K174(:)*PCONC(:,1)*TPK%RO216(:)+2.*TPK%K175(:)*PCONC(:,85)*TPK%RO216(:)+TPK%K1& -&76(:)*PCONC(:,10)*TPK%RO216(:)+TPK%K178(:)*PCONC(:,85)*TPK%RO217(:)+TPK%K181(:& -&)*PCONC(:,85)*TPK%RO218(:)+TPK%K184(:)*PCONC(:,85)*TPK%RO219(:)+TPK%CF18*TPK%K& -&186(:)*PCONC(:,1)*TPK%RO220(:)+2.*TPK%K187(:)*PCONC(:,85)*TPK%RO220(:)+TPK%K18& -&8(:)*PCONC(:,10)*TPK%RO220(:)+TPK%K190(:)*PCONC(:,85)*TPK%RO221(:)+TPK%K193(:)& -&*PCONC(:,85)*TPK%RO222(:)+TPK%K196(:)*PCONC(:,85)*TPK%RO223(:)+TPK%K199(:)*PCO& -&NC(:,85)*TPK%RO224(:)+TPK%K202(:)*PCONC(:,85)*TPK%RO225(:)+TPK%K204(:)*PCONC(:& -&,1)*TPK%RO226(:)+2.*TPK%K205(:)*PCONC(:,85)*TPK%RO226(:)+TPK%K206(:)*PCONC(:,1& -&0)*TPK%RO226(:)+TPK%K208(:)*PCONC(:,85)*TPK%RO227(:)+TPK%K211(:)*PCONC(:,85)*T& -&PK%RO228(:)+TPK%CF30*TPK%K213(:)*PCONC(:,1)*TPK%RO229(:)+2.*TPK%K214(:)*PCONC(& -&:,85)*TPK%RO229(:)+TPK%K215(:)*PCONC(:,10)*TPK%RO229(:)+TPK%K216(:)*PCONC(:,1)& -&*TPK%RO240(:)+2.*TPK%K217(:)*PCONC(:,85)*TPK%RO240(:)+TPK%K218(:)*PCONC(:,10)*& -&TPK%RO240(:)+2.*TPK%K219(:)*PCONC(:,85)*TPK%RO230(:)+TPK%K220(:)*PCONC(:,10)*T& -&PK%RO230(:)+TPK%K222(:)*PCONC(:,85)*TPK%RO231(:)+TPK%CF34*TPK%K224(:)*PCONC(:,& -&1)*TPK%RO232(:)+2.*TPK%K225(:)*PCONC(:,85)*TPK%RO232(:)+TPK%K226(:)*PCONC(:,10& -&)*TPK%RO232(:)+TPK%K228(:)*PCONC(:,85)*TPK%RO241(:)+TPK%K230(:)*TPK%RO233(:)+T& -&PK%K232(:)*PCONC(:,85)*TPK%RO233(:)+TPK%K235(:)*PCONC(:,85)*TPK%RO242(:)+TPK%K& -&237(:)*TPK%RO234(:)+TPK%K239(:)*PCONC(:,85)*TPK%RO234(:)+TPK%K242(:)*PCONC(:,8& -&5)*TPK%RO243(:)+TPK%K244(:)*TPK%RO235(:)+TPK%K246(:)*PCONC(:,85)*TPK%RO235(:)+& -&TPK%K249(:)*PCONC(:,85)*TPK%RO244(:)+TPK%K251(:)*TPK%RO236(:)+TPK%K253(:)*PCON& -&C(:,85)*TPK%RO236(:)+TPK%K256(:)*PCONC(:,85)*TPK%RO245(:)+TPK%K258(:)*TPK%RO23& -&7(:)+TPK%K260(:)*PCONC(:,85)*TPK%RO237(:)+TPK%K263(:)*PCONC(:,85)*TPK%RO246(:)& -&+TPK%K265(:)*TPK%RO238(:)+TPK%K267(:)*PCONC(:,85)*TPK%RO238(:)+TPK%K270(:)*PCO& -&NC(:,85)*TPK%RO247(:)+TPK%K272(:)*PCONC(:,15)*PCONC(:,39)+TPK%K273(:)*PCONC(:,& -&15)*PCONC(:,40)+TPK%K274(:)*PCONC(:,15)*PCONC(:,41)+TPK%K275(:)*PCONC(:,8)*PCO& -&NC(:,40)+TPK%K276(:)*PCONC(:,41)+TPK%K277(:)*PCONC(:,1)*TPK%RO248(:)+TPK%K278(& -&:)*PCONC(:,8)*PCONC(:,41)+2.*TPK%K280(:)*PCONC(:,85)*TPK%RO248(:)+0.28*TPK%K28& -&1(:)*PCONC(:,3)*PCONC(:,39)+0.41*TPK%K282(:)*PCONC(:,3)*PCONC(:,40)+0.3*TPK%K2& -&83(:)*TPK%O(:)*PCONC(:,39)+0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40)+TPK%K286(:)*P& -&CONC(:,85)*TPK%RO249(:)+TPK%K288(:)*PCONC(:,1)*TPK%RO250(:)+2.*TPK%K290(:)*PCO& -&NC(:,85)*TPK%RO250(:)+TPK%K292(:)*PCONC(:,10)*TPK%RO251(:)+TPK%K295(:)*PCONC(:& -&,10)*TPK%RO252(:)+TPK%K297(:)*PCONC(:,1)*TPK%RO253(:)+2.*TPK%K298(:)*PCONC(:,1& -&0)*TPK%RO253(:)+TPK%K299(:)*PCONC(:,85)*TPK%RO253(:)+TPK%K302(:)*PCONC(:,85)*T& -&PK%RO254(:)+TPK%K304(:)*PCONC(:,15)*PCONC(:,69)+TPK%K305(:)*PCONC(:,15)*PCONC(& -&:,74)+TPK%K307(:)*PCONC(:,8)*PCONC(:,69)+TPK%K308(:)*PCONC(:,69)+TPK%K309(:)*P& -&CONC(:,1)*TPK%RO255(:)+2.*TPK%K311(:)*PCONC(:,85)*TPK%RO255(:)+TPK%K312(:)*PCO& -&NC(:,15)*PCONC(:,57)+TPK%K313(:)*PCONC(:,8)*PCONC(:,57)+TPK%K317(:)*PCONC(:,83& -&)+TPK%K319(:)*PCONC(:,85)*TPK%RO256(:)+TPK%K324(:)*PCONC(:,15)*PCONC(:,71)+TPK& -&%K327(:)*PCONC(:,8)*PCONC(:,71)+TPK%K329(:)*PCONC(:,71)+TPK%K330(:)*PCONC(:,71& -&)+TPK%K331(:)*PCONC(:,1)*TPK%RO257(:)+2.*TPK%K333(:)*PCONC(:,85)*TPK%RO257(:)+& -&TPK%K338(:)*PCONC(:,8)*PCONC(:,74)+TPK%K342(:)*PCONC(:,85)*TPK%RO258(:)+TPK%K3& -&43(:)*PCONC(:,82)+TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) -!PLOSS(RO2T) = +K094*<HO2>+K095*<NO>+K096*<RO2T>+K096*<RO2T>+K111*<RO21>+K114*< -!RO22>+K117*<RO23>+K120*<RO24>+K123*<RO25>+K143*<RO26>+K145*<RO27>+K149*<RO28>+ -!K151*<RO29>+K154*<RO210>+K157*<RO211>+K160*<RO212>+K163*<RO213>+K167*<RO239>+K -!169*<RO214>+K172*<RO215>+K175*<RO216>+K178*<RO217>+K181*<RO218>+K184*<RO219>+K -!187*<RO220>+K190*<RO221>+K193*<RO222>+K196*<RO223>+K199*<RO224>+K202*<RO225>+K -!205*<RO226>+K208*<RO227>+K211*<RO228>+K214*<RO229>+K217*<RO240>+K219*<RO230>+K -!222*<RO231>+K225*<RO232>+K228*<RO241>+K232*<RO233>+K235*<RO242>+K239*<RO234>+K -!242*<RO243>+K246*<RO235>+K249*<RO244>+K253*<RO236>+K256*<RO245>+K260*<RO237>+K -!263*<RO246>+K267*<RO238>+K270*<RO247>+K280*<RO248>+K286*<RO249>+K290*<RO250>+K -!293*<RO251>+K296*<RO252>+K299*<RO253>+K302*<RO254>+K311*<RO255>+K319*<RO256>+K -!333*<RO257>+K342*<RO258> - PLOSS(:,85) = +TPK%K094(:)*PCONC(:,10)+TPK%K095(:)*PCONC(:,1)+TPK%K096(:)*PCON& -&C(:,85)+TPK%K096(:)*PCONC(:,85)+TPK%K111(:)*PCONC(:,86)+TPK%K114(:)*TPK%RO22(:& -&)+TPK%K117(:)*TPK%RO23(:)+TPK%K120(:)*TPK%RO24(:)+TPK%K123(:)*PCONC(:,87)+TPK%& -&K143(:)*TPK%RO26(:)+TPK%K145(:)*TPK%RO27(:)+TPK%K149(:)*TPK%RO28(:)+TPK%K151(:& -&)*TPK%RO29(:)+TPK%K154(:)*TPK%RO210(:)+TPK%K157(:)*TPK%RO211(:)+TPK%K160(:)*TP& -&K%RO212(:)+TPK%K163(:)*TPK%RO213(:)+TPK%K167(:)*TPK%RO239(:)+TPK%K169(:)*TPK%R& -&O214(:)+TPK%K172(:)*TPK%RO215(:)+TPK%K175(:)*TPK%RO216(:)+TPK%K178(:)*TPK%RO21& -&7(:)+TPK%K181(:)*TPK%RO218(:)+TPK%K184(:)*TPK%RO219(:)+TPK%K187(:)*TPK%RO220(:& -&)+TPK%K190(:)*TPK%RO221(:)+TPK%K193(:)*TPK%RO222(:)+TPK%K196(:)*TPK%RO223(:)+T& -&PK%K199(:)*TPK%RO224(:)+TPK%K202(:)*TPK%RO225(:)+TPK%K205(:)*TPK%RO226(:)+TPK%& -&K208(:)*TPK%RO227(:)+TPK%K211(:)*TPK%RO228(:)+TPK%K214(:)*TPK%RO229(:)+TPK%K21& -&7(:)*TPK%RO240(:)+TPK%K219(:)*TPK%RO230(:)+TPK%K222(:)*TPK%RO231(:)+TPK%K225(:& -&)*TPK%RO232(:)+TPK%K228(:)*TPK%RO241(:)+TPK%K232(:)*TPK%RO233(:)+TPK%K235(:)*T& -&PK%RO242(:)+TPK%K239(:)*TPK%RO234(:)+TPK%K242(:)*TPK%RO243(:)+TPK%K246(:)*TPK%& -&RO235(:)+TPK%K249(:)*TPK%RO244(:)+TPK%K253(:)*TPK%RO236(:)+TPK%K256(:)*TPK%RO2& -&45(:)+TPK%K260(:)*TPK%RO237(:)+TPK%K263(:)*TPK%RO246(:)+TPK%K267(:)*TPK%RO238(& -&:)+TPK%K270(:)*TPK%RO247(:)+TPK%K280(:)*TPK%RO248(:)+TPK%K286(:)*TPK%RO249(:)+& -&TPK%K290(:)*TPK%RO250(:)+TPK%K293(:)*TPK%RO251(:)+TPK%K296(:)*TPK%RO252(:)+TPK& -&%K299(:)*TPK%RO253(:)+TPK%K302(:)*TPK%RO254(:)+TPK%K311(:)*TPK%RO255(:)+TPK%K3& -&19(:)*TPK%RO256(:)+TPK%K333(:)*TPK%RO257(:)+TPK%K342(:)*TPK%RO258(:) -! -!PPROD(RO21) = +K043*<OH>*<CH4>+0.6*K052*<O>*<ETHE>+K147*<NO>*<RO28>+K149*<RO2T -!>*<RO28>+KTC47*<WC_RO21>+KTR47*<WR_RO21> - PPROD(:,86) = +TPK%K043(:)*PCONC(:,15)*TPK%CH4(:)+0.6*TPK%K052(:)*TPK%O(:)*PCO& -&NC(:,16)+TPK%K147(:)*PCONC(:,1)*TPK%RO28(:)+TPK%K149(:)*PCONC(:,85)*TPK%RO28(:& -&)+TPK%KTC47(:)*PCONC(:,103)+TPK%KTR47(:)*PCONC(:,140) -!PLOSS(RO21) = +K110*<NO>+K111*<RO2T>+K112*<HO2>+KTC16+KTR16 - PLOSS(:,86) = +TPK%K110(:)*PCONC(:,1)+TPK%K111(:)*PCONC(:,85)+TPK%K112(:)*PCON& -&C(:,10)+TPK%KTC16(:)+TPK%KTR16(:) -! -!PPROD(RO25) = +0.28*K056*<O3>*<OLEL>+0.1*K057*<O>*<OLEL>+K058*<OH>*<ALKL>+K059 -!*<ALD2>+K063*<KETL>+K071*<KETH>+K125*<NO>*<RO26>+K143*<RO2T>*<RO26>+KTC48*<WC_ -!RO25>+KTR48*<WR_RO25> - PPROD(:,87) = +0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17)+0.1*TPK%K057(:)*TPK%O(:& -&)*PCONC(:,17)+TPK%K058(:)*PCONC(:,15)*PCONC(:,19)+TPK%K059(:)*PCONC(:,29)+TPK%& -&K063(:)*PCONC(:,30)+TPK%K071(:)*PCONC(:,31)+TPK%K125(:)*PCONC(:,1)*TPK%RO26(:)& -&+TPK%K143(:)*PCONC(:,85)*TPK%RO26(:)+TPK%KTC48(:)*PCONC(:,104)+TPK%KTR48(:)*PC& -&ONC(:,141) -!PLOSS(RO25) = +K122*<NO>+K123*<RO2T>+K124*<HO2>+KTC17+KTR17 - PLOSS(:,87) = +TPK%K122(:)*PCONC(:,1)+TPK%K123(:)*PCONC(:,85)+TPK%K124(:)*PCON& -&C(:,10)+TPK%KTC17(:)+TPK%KTR17(:) -! -!PPROD(WC_O3) = +KTC1*<O3> - PPROD(:,88) = +TPK%KTC1(:)*PCONC(:,3) -!PLOSS(WC_O3) = +KTC32+KC6*<WC_HO2>+KC25*<WC_SO2> - PLOSS(:,88) = +TPK%KTC32(:)+TPK%KC6(:)*PCONC(:,99)+TPK%KC25(:)*PCONC(:,101) -! -!PPROD(WC_H2O2) = +KTC2*<H2O2>+KC2*<WC_OH>*<WC_OH>+KC5*<WC_HO2>*<WC_HO2>+KC29*< -!WC_RO25>*<WC_RO25>+KC37*<WC_OH>*<WC_KETL>+0.5*KC39*<WC_OH>*<WC_ORA2>+0.29*KC41 -!*<WC_OH>*<WC_ACID>+0.3*KC43*<WC_OH>*<WC_UR21>+0.45*KC45*<WC_OH>*<WC_RP16> - PPROD(:,89) = +TPK%KTC2(:)*PCONC(:,12)+TPK%KC2(:)*PCONC(:,98)*PCONC(:,98)+TPK%& -&KC5(:)*PCONC(:,99)*PCONC(:,99)+TPK%KC29(:)*PCONC(:,104)*PCONC(:,104)+TPK%KC37(& -&:)*PCONC(:,98)*PCONC(:,112)+0.5*TPK%KC39(:)*PCONC(:,98)*PCONC(:,114)+0.29*TPK%& -&KC41(:)*PCONC(:,98)*PCONC(:,115)+0.3*TPK%KC43(:)*PCONC(:,98)*PCONC(:,117)+0.45& -&*TPK%KC45(:)*PCONC(:,98)*PCONC(:,116) -!PLOSS(WC_H2O2) = +KTC33+KC1+KC4*<WC_OH>+KC26*<WC_SO2> - PLOSS(:,89) = +TPK%KTC33(:)+TPK%KC1(:)+TPK%KC4(:)*PCONC(:,98)+TPK%KC26(:)*PCON& -&C(:,101) -! -!PPROD(WC_NO) = +KTC3*<NO> - PPROD(:,90) = +TPK%KTC3(:)*PCONC(:,1) -!PLOSS(WC_NO) = +KTC34 - PLOSS(:,90) = +TPK%KTC34(:) +!PPROD(WR_SULF) = +KTR15*<SULF>+KR12*<WR_HNO4>*<WR_SO2>+2.00*KR27*<WR_AHSO5>*<W +!R_SO2>+KR28*<WR_ASO4>+KR29*<WR_SO2>*<WR_O3>+KR30*<WR_SO2>*<WR_H2O2> + PPROD(:,81) = +TPK%KTR15(:)*PCONC(:,12)+TPK%KR12(:)*PCONC(:,75)*PCONC(:,80)+2.& +&00*TPK%KR27(:)*PCONC(:,90)*PCONC(:,80)+TPK%KR28(:)*PCONC(:,88)+TPK%KR29(:)*PCO& +&NC(:,80)*PCONC(:,67)+TPK%KR30(:)*PCONC(:,80)*PCONC(:,68) +!PLOSS(WR_SULF) = +KTR35+KR15*<WR_NO3> + PLOSS(:,81) = +TPK%KTR35(:)+TPK%KR15(:)*PCONC(:,71) +! +!PPROD(WR_HCHO) = +KTR16*<HCHO>+2.00*KR17*<WR_MO2>*<WR_MO2>+KR22*<WR_AHMS> + PPROD(:,82) = +TPK%KTR16(:)*PCONC(:,22)+2.00*TPK%KR17(:)*PCONC(:,85)*PCONC(:,8& +&5)+TPK%KR22(:)*PCONC(:,91) +!PLOSS(WR_HCHO) = +KTR36+KR19*<WR_OH>+KR21*<WR_SO2> + PLOSS(:,82) = +TPK%KTR36(:)+TPK%KR19(:)*PCONC(:,77)+TPK%KR21(:)*PCONC(:,80) +! +!PPROD(WR_ORA1) = +KTR17*<ORA1>+KR19*<WR_HCHO>*<WR_OH>+KR23*<WR_AHMS>*<WR_OH> + PPROD(:,83) = +TPK%KTR17(:)*PCONC(:,30)+TPK%KR19(:)*PCONC(:,82)*PCONC(:,77)+TP& +&K%KR23(:)*PCONC(:,91)*PCONC(:,77) +!PLOSS(WR_ORA1) = +KTR37+KR20*<WR_OH> + PLOSS(:,83) = +TPK%KTR37(:)+TPK%KR20(:)*PCONC(:,77) +! +!PPROD(WR_ORA2) = +KTR18*<ORA2> + PPROD(:,84) = +TPK%KTR18(:)*PCONC(:,31) +!PLOSS(WR_ORA2) = +KTR38 + PLOSS(:,84) = +TPK%KTR38(:) +! +!PPROD(WR_MO2) = +KTR19*<MO2> + PPROD(:,85) = +TPK%KTR19(:)*PCONC(:,32) +!PLOSS(WR_MO2) = +KTR39+KR17*<WR_MO2>+KR17*<WR_MO2>+KR18*<WR_SO2> + PLOSS(:,85) = +TPK%KTR39(:)+TPK%KR17(:)*PCONC(:,85)+TPK%KR17(:)*PCONC(:,85)+TP& +&K%KR18(:)*PCONC(:,80) +! +!PPROD(WR_OP1) = +KTR20*<OP1>+KR18*<WR_MO2>*<WR_SO2> + PPROD(:,86) = +TPK%KTR20(:)*PCONC(:,28)+TPK%KR18(:)*PCONC(:,85)*PCONC(:,80) +!PLOSS(WR_OP1) = +KTR40 + PLOSS(:,86) = +TPK%KTR40(:) +! +!PPROD(WR_ASO3) = +KR7*<WR_OH>*<WR_SO2>+KR16*<WR_NO3>*<WR_SO2>+KR18*<WR_MO2>*<W +!R_SO2> + PPROD(:,87) = +TPK%KR7(:)*PCONC(:,77)*PCONC(:,80)+TPK%KR16(:)*PCONC(:,71)*PCON& +&C(:,80)+TPK%KR18(:)*PCONC(:,85)*PCONC(:,80) +!PLOSS(WR_ASO3) = +KR24*<W_O2> + PLOSS(:,87) = +TPK%KR24(:)*TPK%W_O2(:) +! +!PPROD(WR_ASO4) = +KR15*<WR_NO3>*<WR_SULF>+KR26*<WR_ASO5>*<WR_ASO5>+KR26*<WR_AS +!O5>*<WR_ASO5> + PPROD(:,88) = +TPK%KR15(:)*PCONC(:,71)*PCONC(:,81)+TPK%KR26(:)*PCONC(:,89)*PCO& +&NC(:,89)+TPK%KR26(:)*PCONC(:,89)*PCONC(:,89) +!PLOSS(WR_ASO4) = +KR28 + PLOSS(:,88) = +TPK%KR28(:) +! +!PPROD(WR_ASO5) = +KR24*<WR_ASO3>*<W_O2> + PPROD(:,89) = +TPK%KR24(:)*PCONC(:,87)*TPK%W_O2(:) +!PLOSS(WR_ASO5) = +KR25*<WR_HO2>+KR26*<WR_ASO5>+KR26*<WR_ASO5> + PLOSS(:,89) = +TPK%KR25(:)*PCONC(:,78)+TPK%KR26(:)*PCONC(:,89)+TPK%KR26(:)*PCO& +&NC(:,89) +! +!PPROD(WR_AHSO5) = +KR25*<WR_ASO5>*<WR_HO2> + PPROD(:,90) = +TPK%KR25(:)*PCONC(:,89)*PCONC(:,78) +!PLOSS(WR_AHSO5) = +KR27*<WR_SO2> + PLOSS(:,90) = +TPK%KR27(:)*PCONC(:,80) ! RETURN END SUBROUTINE SUB8 ! SUBROUTINE SUB9 ! -!Indices 91 a 100 -! -! -!PPROD(WC_NO2) = +KTC4*<NO2>+KC8*<WC_OH>*<WC_HONO>+KC10*<WC_HNO4>+KC13*<WC_HNO3 -!> - PPROD(:,91) = +TPK%KTC4(:)*PCONC(:,2)+TPK%KC8(:)*PCONC(:,98)*PCONC(:,94)+TPK%K& -&C10(:)*PCONC(:,96)+TPK%KC13(:)*PCONC(:,95) -!PLOSS(WC_NO2) = +KTC35+KC9*<WC_HO2> - PLOSS(:,91) = +TPK%KTC35(:)+TPK%KC9(:)*PCONC(:,99) -! -!PPROD(WC_NO3) = +KTC5*<NO3> - PPROD(:,92) = +TPK%KTC5(:)*PCONC(:,8) -!PLOSS(WC_NO3) = +KTC36+KC15*<WC_H2SO4>+KC16*<WC_SO2> - PLOSS(:,92) = +TPK%KTC36(:)+TPK%KC15(:)*PCONC(:,102)+TPK%KC16(:)*PCONC(:,101) -! -!PPROD(WC_N2O5) = +KTC6*<N2O5> - PPROD(:,93) = +TPK%KTC6(:)*PCONC(:,7) -!PLOSS(WC_N2O5) = +KTC37+KC14 - PLOSS(:,93) = +TPK%KTC37(:)+TPK%KC14(:) +!Indices 91 a 91 ! -!PPROD(WC_HONO) = +KTC7*<HONO>+KC11*<WC_HNO4> - PPROD(:,94) = +TPK%KTC7(:)*PCONC(:,4)+TPK%KC11(:)*PCONC(:,96) -!PLOSS(WC_HONO) = +KTC38+KC8*<WC_OH> - PLOSS(:,94) = +TPK%KTC38(:)+TPK%KC8(:)*PCONC(:,98) -! -!PPROD(WC_HNO3) = +KTC8*<HNO3>+KC12*<WC_SO2>*<WC_HNO4>+KC14*<WC_N2O5>+KC14*<WC_ -!N2O5>+KC15*<WC_H2SO4>*<WC_NO3>+KC16*<WC_SO2>*<WC_NO3> - PPROD(:,95) = +TPK%KTC8(:)*PCONC(:,5)+TPK%KC12(:)*PCONC(:,101)*PCONC(:,96)+TPK& -&%KC14(:)*PCONC(:,93)+TPK%KC14(:)*PCONC(:,93)+TPK%KC15(:)*PCONC(:,102)*PCONC(:,& -&92)+TPK%KC16(:)*PCONC(:,101)*PCONC(:,92) -!PLOSS(WC_HNO3) = +KTC39+KC13 - PLOSS(:,95) = +TPK%KTC39(:)+TPK%KC13(:) -! -!PPROD(WC_HNO4) = +KTC9*<HNO4>+KC9*<WC_HO2>*<WC_NO2> - PPROD(:,96) = +TPK%KTC9(:)*PCONC(:,6)+TPK%KC9(:)*PCONC(:,99)*PCONC(:,91) -!PLOSS(WC_HNO4) = +KTC40+KC10+KC11+KC12*<WC_SO2> - PLOSS(:,96) = +TPK%KTC40(:)+TPK%KC10(:)+TPK%KC11(:)+TPK%KC12(:)*PCONC(:,101) ! -!PPROD(WC_NH3) = +KTC10*<NH3> - PPROD(:,97) = +TPK%KTC10(:)*PCONC(:,9) -!PLOSS(WC_NH3) = +KTC41 - PLOSS(:,97) = +TPK%KTC41(:) -! -!PPROD(WC_OH) = +KTC11*<OH>+KC1*<WC_H2O2>+KC1*<WC_H2O2>+KC6*<WC_HO2>*<WC_O3>+KC -!13*<WC_HNO3>+KC24*<WC_ASO4> - PPROD(:,98) = +TPK%KTC11(:)*PCONC(:,15)+TPK%KC1(:)*PCONC(:,89)+TPK%KC1(:)*PCON& -&C(:,89)+TPK%KC6(:)*PCONC(:,99)*PCONC(:,88)+TPK%KC13(:)*PCONC(:,95)+TPK%KC24(:)& -&*PCONC(:,121) -!PLOSS(WC_OH) = +KTC42+KC2*<WC_OH>+KC2*<WC_OH>+KC3*<WC_HO2>+KC4*<WC_H2O2>+KC7*< -!WC_SO2>+KC8*<WC_HONO>+KC19*<WC_AHMS>+KC30*<WC_MEOH>+KC31*<WC_ETOH>+KC32*<WC_AL -!CH>+KC33*<WC_HCHO>+KC34*<WC_ALD2>+KC35*<WC_GLY>+KC36*<WC_MGLY>+KC37*<WC_KETL>+ -!KC38*<WC_ORA1>+KC39*<WC_ORA2>+KC40*<WC_ACID>+KC41*<WC_ACID>+KC42*<WC_UR28>+KC4 -!3*<WC_UR21>+KC44*<WC_RP16>+KC45*<WC_RP16>+KC46*<WC_ACID2> - PLOSS(:,98) = +TPK%KTC42(:)+TPK%KC2(:)*PCONC(:,98)+TPK%KC2(:)*PCONC(:,98)+TPK%& -&KC3(:)*PCONC(:,99)+TPK%KC4(:)*PCONC(:,89)+TPK%KC7(:)*PCONC(:,101)+TPK%KC8(:)*P& -&CONC(:,94)+TPK%KC19(:)*PCONC(:,124)+TPK%KC30(:)*PCONC(:,105)+TPK%KC31(:)*PCONC& -&(:,106)+TPK%KC32(:)*PCONC(:,107)+TPK%KC33(:)*PCONC(:,108)+TPK%KC34(:)*PCONC(:,& -&109)+TPK%KC35(:)*PCONC(:,110)+TPK%KC36(:)*PCONC(:,111)+TPK%KC37(:)*PCONC(:,112& -&)+TPK%KC38(:)*PCONC(:,113)+TPK%KC39(:)*PCONC(:,114)+TPK%KC40(:)*PCONC(:,115)+T& -&PK%KC41(:)*PCONC(:,115)+TPK%KC42(:)*PCONC(:,118)+TPK%KC43(:)*PCONC(:,117)+TPK%& -&KC44(:)*PCONC(:,116)+TPK%KC45(:)*PCONC(:,116)+TPK%KC46(:)*PCONC(:,119) -! -!PPROD(WC_HO2) = +KTC12*<HO2>+KC4*<WC_OH>*<WC_H2O2>+KC10*<WC_HNO4>+KC19*<WC_OH> -!*<WC_AHMS>+2.00*KC27*<WC_RO21>*<WC_RO21>+KC29*<WC_RO25>*<WC_RO25>+KC30*<WC_OH> -!*<WC_MEOH>+KC31*<WC_OH>*<WC_ETOH>+KC32*<WC_OH>*<WC_ALCH>+KC33*<WC_OH>*<WC_HCHO -!>+KC35*<WC_OH>*<WC_GLY>+KC36*<WC_OH>*<WC_MGLY>+KC37*<WC_OH>*<WC_KETL>+KC38*<WC -!_OH>*<WC_ORA1>+0.11*KC41*<WC_OH>*<WC_ACID>+KC42*<WC_OH>*<WC_UR28>+0.81*KC43*<W -!C_OH>*<WC_UR21>+KC44*<WC_OH>*<WC_RP16>+0.71*KC45*<WC_OH>*<WC_RP16> - PPROD(:,99) = +TPK%KTC12(:)*PCONC(:,10)+TPK%KC4(:)*PCONC(:,98)*PCONC(:,89)+TPK& -&%KC10(:)*PCONC(:,96)+TPK%KC19(:)*PCONC(:,98)*PCONC(:,124)+2.00*TPK%KC27(:)*PCO& -&NC(:,103)*PCONC(:,103)+TPK%KC29(:)*PCONC(:,104)*PCONC(:,104)+TPK%KC30(:)*PCONC& -&(:,98)*PCONC(:,105)+TPK%KC31(:)*PCONC(:,98)*PCONC(:,106)+TPK%KC32(:)*PCONC(:,9& -&8)*PCONC(:,107)+TPK%KC33(:)*PCONC(:,98)*PCONC(:,108)+TPK%KC35(:)*PCONC(:,98)*P& -&CONC(:,110)+TPK%KC36(:)*PCONC(:,98)*PCONC(:,111)+TPK%KC37(:)*PCONC(:,98)*PCONC& -&(:,112)+TPK%KC38(:)*PCONC(:,98)*PCONC(:,113)+0.11*TPK%KC41(:)*PCONC(:,98)*PCON& -&C(:,115)+TPK%KC42(:)*PCONC(:,98)*PCONC(:,118)+0.81*TPK%KC43(:)*PCONC(:,98)*PCO& -&NC(:,117)+TPK%KC44(:)*PCONC(:,98)*PCONC(:,116)+0.71*TPK%KC45(:)*PCONC(:,98)*PC& -&ONC(:,116) -!PLOSS(WC_HO2) = +KTC43+KC3*<WC_OH>+KC5*<WC_HO2>+KC5*<WC_HO2>+KC6*<WC_O3>+KC9*< -!WC_NO2>+KC21*<WC_ASO5> - PLOSS(:,99) = +TPK%KTC43(:)+TPK%KC3(:)*PCONC(:,98)+TPK%KC5(:)*PCONC(:,99)+TPK%& -&KC5(:)*PCONC(:,99)+TPK%KC6(:)*PCONC(:,88)+TPK%KC9(:)*PCONC(:,91)+TPK%KC21(:)*P& -&CONC(:,122) -! -!PPROD(WC_CO2) = +KTC13*<CO2>+KC34*<WC_OH>*<WC_ALD2>+KC37*<WC_OH>*<WC_KETL>+KC3 -!8*<WC_OH>*<WC_ORA1>+KC40*<WC_OH>*<WC_ACID>+2*KC42*<WC_OH>*<WC_UR28>+0.43*KC43* -!<WC_OH>*<WC_UR21>+2*KC45*<WC_OH>*<WC_RP16> - PPROD(:,100) = +TPK%KTC13(:)*TPK%CO2(:)+TPK%KC34(:)*PCONC(:,98)*PCONC(:,109)+T& -&PK%KC37(:)*PCONC(:,98)*PCONC(:,112)+TPK%KC38(:)*PCONC(:,98)*PCONC(:,113)+TPK%K& -&C40(:)*PCONC(:,98)*PCONC(:,115)+2*TPK%KC42(:)*PCONC(:,98)*PCONC(:,118)+0.43*TP& -&K%KC43(:)*PCONC(:,98)*PCONC(:,117)+2*TPK%KC45(:)*PCONC(:,98)*PCONC(:,116) -!PLOSS(WC_CO2) = +KTC44 - PLOSS(:,100) = +TPK%KTC44(:) +!PPROD(WR_AHMS) = +KR21*<WR_SO2>*<WR_HCHO> + PPROD(:,91) = +TPK%KR21(:)*PCONC(:,80)*PCONC(:,82) +!PLOSS(WR_AHMS) = +KR22+KR23*<WR_OH> + PLOSS(:,91) = +TPK%KR22(:)+TPK%KR23(:)*PCONC(:,77) ! RETURN END SUBROUTINE SUB9 ! -SUBROUTINE SUB10 -! -!Indices 101 a 110 -! -! -!PPROD(WC_SO2) = +KTC14*<SO2>+KC18*<WC_AHMS>+KC19*<WC_OH>*<WC_AHMS> - PPROD(:,101) = +TPK%KTC14(:)*PCONC(:,13)+TPK%KC18(:)*PCONC(:,124)+TPK%KC19(:)*& -&PCONC(:,98)*PCONC(:,124) -!PLOSS(WC_SO2) = +KTC45+KC7*<WC_OH>+KC12*<WC_HNO4>+KC16*<WC_NO3>+KC17*<WC_HCHO> -!+KC23*<WC_AHSO5>+KC25*<WC_O3>+KC26*<WC_H2O2>+KC28*<WC_RO21> - PLOSS(:,101) = +TPK%KTC45(:)+TPK%KC7(:)*PCONC(:,98)+TPK%KC12(:)*PCONC(:,96)+TP& -&K%KC16(:)*PCONC(:,92)+TPK%KC17(:)*PCONC(:,108)+TPK%KC23(:)*PCONC(:,123)+TPK%KC& -&25(:)*PCONC(:,88)+TPK%KC26(:)*PCONC(:,89)+TPK%KC28(:)*PCONC(:,103) -! -!PPROD(WC_H2SO4) = +KTC15*<H2SO4>+KC12*<WC_SO2>*<WC_HNO4>+2.00*KC23*<WC_SO2>*<W -!C_AHSO5>+KC24*<WC_ASO4>+KC25*<WC_O3>*<WC_SO2>+KC26*<WC_H2O2>*<WC_SO2> - PPROD(:,102) = +TPK%KTC15(:)*PCONC(:,14)+TPK%KC12(:)*PCONC(:,101)*PCONC(:,96)+& -&2.00*TPK%KC23(:)*PCONC(:,101)*PCONC(:,123)+TPK%KC24(:)*PCONC(:,121)+TPK%KC25(:& -&)*PCONC(:,88)*PCONC(:,101)+TPK%KC26(:)*PCONC(:,89)*PCONC(:,101) -!PLOSS(WC_H2SO4) = +KTC46+KC15*<WC_NO3> - PLOSS(:,102) = +TPK%KTC46(:)+TPK%KC15(:)*PCONC(:,92) -! -!PPROD(WC_RO21) = +KTC16*<RO21>+0.50*KC34*<WC_OH>*<WC_ALD2>+KC37*<WC_OH>*<WC_KE -!TL> - PPROD(:,103) = +TPK%KTC16(:)*PCONC(:,86)+0.50*TPK%KC34(:)*PCONC(:,98)*PCONC(:,& -&109)+TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) -!PLOSS(WC_RO21) = +KTC47+KC27*<WC_RO21>+KC27*<WC_RO21>+KC28*<WC_SO2> - PLOSS(:,103) = +TPK%KTC47(:)+TPK%KC27(:)*PCONC(:,103)+TPK%KC27(:)*PCONC(:,103)& -&+TPK%KC28(:)*PCONC(:,101) -! -!PPROD(WC_RO25) = +KTC17*<RO25>+0.50*KC34*<WC_OH>*<WC_ALD2>+KC40*<WC_OH>*<WC_AC -!ID> - PPROD(:,104) = +TPK%KTC17(:)*PCONC(:,87)+0.50*TPK%KC34(:)*PCONC(:,98)*PCONC(:,& -&109)+TPK%KC40(:)*PCONC(:,98)*PCONC(:,115) -!PLOSS(WC_RO25) = +KTC48+KC29*<WC_RO25>+KC29*<WC_RO25> - PLOSS(:,104) = +TPK%KTC48(:)+TPK%KC29(:)*PCONC(:,104)+TPK%KC29(:)*PCONC(:,104) -! -!PPROD(WC_MEOH) = +KTC18*<MEOH> - PPROD(:,105) = +TPK%KTC18(:)*PCONC(:,32) -!PLOSS(WC_MEOH) = +KTC49+KC30*<WC_OH> - PLOSS(:,105) = +TPK%KTC49(:)+TPK%KC30(:)*PCONC(:,98) -! -!PPROD(WC_ETOH) = +KTC19*<ETOH> - PPROD(:,106) = +TPK%KTC19(:)*PCONC(:,33) -!PLOSS(WC_ETOH) = +KTC50+KC31*<WC_OH> - PLOSS(:,106) = +TPK%KTC50(:)+TPK%KC31(:)*PCONC(:,98) -! -!PPROD(WC_ALCH) = +KTC20*<ALCH> - PPROD(:,107) = +TPK%KTC20(:)*PCONC(:,34) -!PLOSS(WC_ALCH) = +KTC51+KC32*<WC_OH> - PLOSS(:,107) = +TPK%KTC51(:)+TPK%KC32(:)*PCONC(:,98) -! -!PPROD(WC_HCHO) = +KTC21*<HCHO>+KC18*<WC_AHMS>+2.00*KC27*<WC_RO21>*<WC_RO21>+KC -!28*<WC_SO2>*<WC_RO21>+KC30*<WC_OH>*<WC_MEOH>+KC37*<WC_OH>*<WC_KETL> - PPROD(:,108) = +TPK%KTC21(:)*PCONC(:,28)+TPK%KC18(:)*PCONC(:,124)+2.00*TPK%KC2& -&7(:)*PCONC(:,103)*PCONC(:,103)+TPK%KC28(:)*PCONC(:,101)*PCONC(:,103)+TPK%KC30(& -&:)*PCONC(:,98)*PCONC(:,105)+TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) -!PLOSS(WC_HCHO) = +KTC52+KC17*<WC_SO2>+KC33*<WC_OH> - PLOSS(:,108) = +TPK%KTC52(:)+TPK%KC17(:)*PCONC(:,101)+TPK%KC33(:)*PCONC(:,98) -! -!PPROD(WC_ALD2) = +KTC22*<ALD2>+KC29*<WC_RO25>*<WC_RO25>+KC31*<WC_OH>*<WC_ETOH> -!+0.50*KC32*<WC_OH>*<WC_ALCH>+KC37*<WC_OH>*<WC_KETL>+0.29*KC41*<WC_OH>*<WC_ACID -!>+0.43*KC43*<WC_OH>*<WC_UR21> - PPROD(:,109) = +TPK%KTC22(:)*PCONC(:,29)+TPK%KC29(:)*PCONC(:,104)*PCONC(:,104)& -&+TPK%KC31(:)*PCONC(:,98)*PCONC(:,106)+0.50*TPK%KC32(:)*PCONC(:,98)*PCONC(:,107& -&)+TPK%KC37(:)*PCONC(:,98)*PCONC(:,112)+0.29*TPK%KC41(:)*PCONC(:,98)*PCONC(:,11& -&5)+0.43*TPK%KC43(:)*PCONC(:,98)*PCONC(:,117) -!PLOSS(WC_ALD2) = +KTC53+KC34*<WC_OH> - PLOSS(:,109) = +TPK%KTC53(:)+TPK%KC34(:)*PCONC(:,98) -! -!PPROD(WC_GLY) = +KTC23*<GLY> - PPROD(:,110) = +TPK%KTC23(:)*PCONC(:,42) -!PLOSS(WC_GLY) = +KTC54+KC35*<WC_OH> - PLOSS(:,110) = +TPK%KTC54(:)+TPK%KC35(:)*PCONC(:,98) -! -RETURN -END SUBROUTINE SUB10 +END SUBROUTINE CH_PRODLOSS_AQ ! -SUBROUTINE SUB11 ! -!Indices 111 a 120 +!======================================================================== ! +!! ########################## + MODULE MODI_CH_PRODLOSS_GAZ +!! ########################## +INTERFACE +SUBROUTINE CH_PRODLOSS_GAZ(PTIME,PCONC,PPROD,PLOSS,KMI,KVECNPT,KEQ) +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ) :: PPROD, PLOSS +INTEGER, INTENT(IN) :: KMI +END SUBROUTINE CH_PRODLOSS_GAZ +END INTERFACE +END MODULE MODI_CH_PRODLOSS_GAZ ! -!PPROD(WC_MGLY) = +KTC25*<MGLY>+KC37*<WC_OH>*<WC_KETL> - PPROD(:,111) = +TPK%KTC25(:)*PCONC(:,41)+TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) -!PLOSS(WC_MGLY) = +KTC56+KC36*<WC_OH> - PLOSS(:,111) = +TPK%KTC56(:)+TPK%KC36(:)*PCONC(:,98) -! -!PPROD(WC_KETL) = +KTC24*<KETL>+0.50*KC32*<WC_OH>*<WC_ALCH>+KC37*<WC_OH>*<WC_KE -!TL> - PPROD(:,112) = +TPK%KTC24(:)*PCONC(:,30)+0.50*TPK%KC32(:)*PCONC(:,98)*PCONC(:,& -&107)+TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) -!PLOSS(WC_KETL) = +KTC55+KC37*<WC_OH> - PLOSS(:,112) = +TPK%KTC55(:)+TPK%KC37(:)*PCONC(:,98) -! -!PPROD(WC_ORA1) = +KTC26*<ORA1>+KC19*<WC_OH>*<WC_AHMS>+KC33*<WC_OH>*<WC_HCHO> - PPROD(:,113) = +TPK%KTC26(:)*PCONC(:,43)+TPK%KC19(:)*PCONC(:,98)*PCONC(:,124)+& -&TPK%KC33(:)*PCONC(:,98)*PCONC(:,108) -!PLOSS(WC_ORA1) = +KTC57+KC38*<WC_OH> - PLOSS(:,113) = +TPK%KTC57(:)+TPK%KC38(:)*PCONC(:,98) -! -!PPROD(WC_ORA2) = +KTC27*<ORA2>+KC29*<WC_RO25>*<WC_RO25> - PPROD(:,114) = +TPK%KTC27(:)*PCONC(:,44)+TPK%KC29(:)*PCONC(:,104)*PCONC(:,104) -!PLOSS(WC_ORA2) = +KTC58+KC39*<WC_OH> - PLOSS(:,114) = +TPK%KTC58(:)+TPK%KC39(:)*PCONC(:,98) -! -!PPROD(WC_ACID) = +KTC28*<ACID> - PPROD(:,115) = +TPK%KTC28(:)*PCONC(:,45) -!PLOSS(WC_ACID) = +KTC59+KC40*<WC_OH>+KC41*<WC_OH> - PLOSS(:,115) = +TPK%KTC59(:)+TPK%KC40(:)*PCONC(:,98)+TPK%KC41(:)*PCONC(:,98) -! -!PPROD(WC_RP16) = +KTC29*<RP16>+KC35*<WC_OH>*<WC_GLY>+KC39*<WC_OH>*<WC_ORA2> - PPROD(:,116) = +TPK%KTC29(:)*PCONC(:,74)+TPK%KC35(:)*PCONC(:,98)*PCONC(:,110)+& -&TPK%KC39(:)*PCONC(:,98)*PCONC(:,114) -!PLOSS(WC_RP16) = +KTC60+KC44*<WC_OH>+KC45*<WC_OH> - PLOSS(:,116) = +TPK%KTC60(:)+TPK%KC44(:)*PCONC(:,98)+TPK%KC45(:)*PCONC(:,98) -! -!PPROD(WC_UR21) = +KTC30*<UR21>+KC36*<WC_OH>*<WC_MGLY>+KC37*<WC_OH>*<WC_KETL>+0 -!.56*KC41*<WC_OH>*<WC_ACID> - PPROD(:,117) = +TPK%KTC30(:)*PCONC(:,47)+TPK%KC36(:)*PCONC(:,98)*PCONC(:,111)+& -&TPK%KC37(:)*PCONC(:,98)*PCONC(:,112)+0.56*TPK%KC41(:)*PCONC(:,98)*PCONC(:,115) -!PLOSS(WC_UR21) = +KTC61+KC43*<WC_OH> - PLOSS(:,117) = +TPK%KTC61(:)+TPK%KC43(:)*PCONC(:,98) -! -!PPROD(WC_UR28) = +KTC31*<UR28>+KC44*<WC_OH>*<WC_RP16> - PPROD(:,118) = +TPK%KTC31(:)*PCONC(:,46)+TPK%KC44(:)*PCONC(:,98)*PCONC(:,116) -!PLOSS(WC_UR28) = +KTC62+KC42*<WC_OH> - PLOSS(:,118) = +TPK%KTC62(:)+TPK%KC42(:)*PCONC(:,98) -! -!PPROD(WC_ACID2) = +0.15*KC41*<WC_OH>*<WC_ACID>+0.56*KC43*<WC_OH>*<WC_UR21> - PPROD(:,119) = +0.15*TPK%KC41(:)*PCONC(:,98)*PCONC(:,115)+0.56*TPK%KC43(:)*PCO& -&NC(:,98)*PCONC(:,117) -!PLOSS(WC_ACID2) = +KC46*<WC_OH> - PLOSS(:,119) = +TPK%KC46(:)*PCONC(:,98) -! -!PPROD(WC_ASO3) = +KC7*<WC_SO2>*<WC_OH>+KC16*<WC_SO2>*<WC_NO3>+KC28*<WC_SO2>*<W -!C_RO21> - PPROD(:,120) = +TPK%KC7(:)*PCONC(:,101)*PCONC(:,98)+TPK%KC16(:)*PCONC(:,101)*P& -&CONC(:,92)+TPK%KC28(:)*PCONC(:,101)*PCONC(:,103) -!PLOSS(WC_ASO3) = +KC20*<W_O2> - PLOSS(:,120) = +TPK%KC20(:)*TPK%W_O2(:) +!======================================================================== ! -RETURN -END SUBROUTINE SUB11 +!! ################################################################## + SUBROUTINE CH_PRODLOSS_GAZ(PTIME,PCONC,PPROD,PLOSS,KMI,KVECNPT,KEQ) +!! ################################################################## +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +!! +!!*** *MODD_CH_PRODLOSS* +!! +!! PURPOSE +!! ------- +! calculation of production and loss terms for diagnostics +!! +!!** METHOD +!! ------ +!! The terms of temporal derivative of the chemical species, +!! written as: +!! d/dt PCONC = CH_FCN = PPROD - PCONC*PLOSS, +!! are calculated for diagnostic purposes. +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Karsten Suhre (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) +!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) +!! +!!---------------------------------------------------------------------- +!! +!! EXTERNAL +!! -------- +!! none +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +USE MODD_CH_M9_SCHEME +!! +!! EXPLICIT ARGUMENTS +!! ------------------ +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ) :: PPROD, PLOSS +INTEGER, INTENT(IN) :: KMI +TYPE(CCSTYPE), POINTER :: TPK +TPK=>TACCS(KMI) +! /BEGIN_CODE/ +TPK%O1D(:)=(TPK%K002(:)*PCONC(:,JP_O3))/(TPK%K020(:)*TPK%N2(:)+TPK%K021(:)*TPK%O2(:)+& + &TPK%K022(:)*TPK%H2O(:)) +TPK%O3P(:)=(TPK%K001(:)*PCONC(:,JP_NO2)+TPK%K003(:)*PCONC(:,JP_O3)+TPK%K008(:)*PCONC(:,JP_NO3)+& + &TPK%K020(:)*TPK%O1D(:)*TPK%N2(:)+TPK%K021(:)*TPK%O1D(:)*TPK%O2(:)+& + &0.00000*TPK%K079(:)*PCONC(:,JP_ALKE)*PCONC(:,JP_O3)+& + &0.09000*TPK%K080(:)*PCONC(:,JP_BIO)*PCONC(:,JP_O3))/& + &(TPK%K018(:)*TPK%O2(:)+TPK%K019(:)*PCONC(:,JP_O3)+TPK%K029(:)*PCONC(:,JP_NO)+& + &TPK%K030(:)*PCONC(:,JP_NO2)+TPK%K031(:)*PCONC(:,JP_NO2)+TPK%K054(:)*PCONC(:,JP_BIO)+& + &TPK%K055(:)*PCONC(:,JP_CARBO)) +! /END_CODE/ +CALL SUB0 +CALL SUB1 +CALL SUB2 +CALL SUB3 +CALL SUB4 + +CONTAINS + +SUBROUTINE SUB0 ! -SUBROUTINE SUB12 +!Indices 1 a 10 ! -!Indices 121 a 130 ! +!PPROD(O3) = +K018*<O3P>*<O2>+0.17307*K0102*<CARBOP>*<HO2> + PPROD(:,1) = +TPK%K018(:)*TPK%O3P(:)*TPK%O2(:)+0.17307*TPK%K0102(:)*PCONC(:,39& +&)*PCONC(:,15) +!PLOSS(O3) = +K002+K003+K019*<O3P>+K023*<OH>+K024*<HO2>+K042*<NO>+K043*<NO2>+K0 +!79*<ALKE>+K080*<BIO>+K081*<CARBO>+K082*<PAN>+K087*<ADD> + PLOSS(:,1) = +TPK%K002(:)+TPK%K003(:)+TPK%K019(:)*TPK%O3P(:)+TPK%K023(:)*PCONC& +&(:,14)+TPK%K024(:)*PCONC(:,15)+TPK%K042(:)*PCONC(:,3)+TPK%K043(:)*PCONC(:,4)+T& +&PK%K079(:)*PCONC(:,19)+TPK%K080(:)*PCONC(:,20)+TPK%K081(:)*PCONC(:,25)+TPK%K08& +&2(:)*PCONC(:,27)+TPK%K087(:)*PCONC(:,37) +! +!PPROD(H2O2) = +K027*<HO2>*<HO2>+K028*<HO2>*<HO2>*<H2O>+0.01833*K079*<ALKE>*<O3 +!>+0.00100*K080*<BIO>*<O3> + PPROD(:,2) = +TPK%K027(:)*PCONC(:,15)*PCONC(:,15)+TPK%K028(:)*PCONC(:,15)*PCON& +&C(:,15)*TPK%H2O(:)+0.01833*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.00100*TPK%K080& +&(:)*PCONC(:,20)*PCONC(:,1) +!PLOSS(H2O2) = +K009+K026*<OH> + PLOSS(:,2) = +TPK%K009(:)+TPK%K026(:)*PCONC(:,14) +! +!PPROD(NO) = +K001*<NO2>+K004*<HONO>+K007*<NO3>+K030*<O3P>*<NO2>+K046*<NO3>*<NO +!2> + PPROD(:,3) = +TPK%K001(:)*PCONC(:,4)+TPK%K004(:)*PCONC(:,7)+TPK%K007(:)*PCONC(& +&:,5)+TPK%K030(:)*TPK%O3P(:)*PCONC(:,4)+TPK%K046(:)*PCONC(:,5)*PCONC(:,4) +!PLOSS(NO) = +K029*<O3P>+K032*<OH>+K035*<HO2>+K042*<O3>+K044*<NO>*<O2>+K044*<NO +!>*<O2>+K045*<NO3>+K090*<MO2>+K091*<ALKAP>+K092*<ALKEP>+K093*<BIOP>+K094*<AROP> +!+K095*<CARBOP>+K096*<OLN>+K130*<XO2> + PLOSS(:,3) = +TPK%K029(:)*TPK%O3P(:)+TPK%K032(:)*PCONC(:,14)+TPK%K035(:)*PCONC& +&(:,15)+TPK%K042(:)*PCONC(:,1)+TPK%K044(:)*PCONC(:,3)*TPK%O2(:)+TPK%K044(:)*PCO& +&NC(:,3)*TPK%O2(:)+TPK%K045(:)*PCONC(:,5)+TPK%K090(:)*PCONC(:,32)+TPK%K091(:)*P& +&CONC(:,33)+TPK%K092(:)*PCONC(:,34)+TPK%K093(:)*PCONC(:,35)+TPK%K094(:)*PCONC(:& +&,38)+TPK%K095(:)*PCONC(:,39)+TPK%K096(:)*PCONC(:,40)+TPK%K130(:)*PCONC(:,41) +! +!PPROD(NO2) = +K005*<HNO3>+0.65*K006*<HNO4>+K008*<NO3>+K017*<ONIT>+K029*<O3P>*< +!NO>+K034*<OH>*<NO3>+K035*<HO2>*<NO>+K037*<HNO4>+0.7*K038*<HO2>*<NO3>+K039*<OH> +!*<HONO>+K041*<OH>*<HNO4>+K042*<O3>*<NO>+K044*<NO>*<NO>*<O2>+K044*<NO>*<NO>*<O2 +!>+K045*<NO3>*<NO>+K045*<NO3>*<NO>+K046*<NO3>*<NO2>+K048*<N2O5>+K049*<NO3>*<NO3 +!>+K049*<NO3>*<NO3>+K071*<ONIT>*<OH>+0.10530*K074*<CARBO>*<NO3>+0.40*K078*<PAN> +!*<NO3>+0.70*K082*<PAN>*<O3>+K089*<PAN>+K090*<MO2>*<NO>+0.91541*K091*<ALKAP>*<N +!O>+K092*<ALKEP>*<NO>+0.84700*K093*<BIOP>*<NO>+0.95115*K094*<AROP>*<NO>+K095*<C +!ARBOP>*<NO>+1.81599*K096*<OLN>*<NO>+0.32440*K110*<OLN>*<MO2>+0.00000*K116*<OLN +!>*<CARBOP>+0.00000*K118*<OLN>*<OLN>+K119*<MO2>*<NO3>+K120*<ALKAP>*<NO3>+K121*< +!ALKEP>*<NO3>+K122*<BIOP>*<NO3>+K123*<AROP>*<NO3>+K124*<CARBOP>*<NO3>+1.74072*K +!125*<OLN>*<NO3>+K130*<XO2>*<NO>+K131*<XO2>*<NO3> + PPROD(:,4) = +TPK%K005(:)*PCONC(:,8)+0.65*TPK%K006(:)*PCONC(:,9)+TPK%K008(:)*P& +&CONC(:,5)+TPK%K017(:)*PCONC(:,26)+TPK%K029(:)*TPK%O3P(:)*PCONC(:,3)+TPK%K034(:& +&)*PCONC(:,14)*PCONC(:,5)+TPK%K035(:)*PCONC(:,15)*PCONC(:,3)+TPK%K037(:)*PCONC(& +&:,9)+0.7*TPK%K038(:)*PCONC(:,15)*PCONC(:,5)+TPK%K039(:)*PCONC(:,14)*PCONC(:,7)& +&+TPK%K041(:)*PCONC(:,14)*PCONC(:,9)+TPK%K042(:)*PCONC(:,1)*PCONC(:,3)+TPK%K044& +&(:)*PCONC(:,3)*PCONC(:,3)*TPK%O2(:)+TPK%K044(:)*PCONC(:,3)*PCONC(:,3)*TPK%O2(:& +&)+TPK%K045(:)*PCONC(:,5)*PCONC(:,3)+TPK%K045(:)*PCONC(:,5)*PCONC(:,3)+TPK%K046& +&(:)*PCONC(:,5)*PCONC(:,4)+TPK%K048(:)*PCONC(:,6)+TPK%K049(:)*PCONC(:,5)*PCONC(& +&:,5)+TPK%K049(:)*PCONC(:,5)*PCONC(:,5)+TPK%K071(:)*PCONC(:,26)*PCONC(:,14)+0.1& +&0530*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.40*TPK%K078(:)*PCONC(:,27)*PCONC(:,5& +&)+0.70*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+TPK%K089(:)*PCONC(:,27)+TPK%K090(:)*& +&PCONC(:,32)*PCONC(:,3)+0.91541*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+TPK%K092(:)*& +&PCONC(:,34)*PCONC(:,3)+0.84700*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0.95115*TPK%& +&K094(:)*PCONC(:,38)*PCONC(:,3)+TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+1.81599*TPK%& +&K096(:)*PCONC(:,40)*PCONC(:,3)+0.32440*TPK%K110(:)*PCONC(:,40)*PCONC(:,32)+0.0& +&0000*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)*PCONC& +&(:,40)+TPK%K119(:)*PCONC(:,32)*PCONC(:,5)+TPK%K120(:)*PCONC(:,33)*PCONC(:,5)+T& +&PK%K121(:)*PCONC(:,34)*PCONC(:,5)+TPK%K122(:)*PCONC(:,35)*PCONC(:,5)+TPK%K123(& +&:)*PCONC(:,38)*PCONC(:,5)+TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+1.74072*TPK%K125(& +&:)*PCONC(:,40)*PCONC(:,5)+TPK%K130(:)*PCONC(:,41)*PCONC(:,3)+TPK%K131(:)*PCONC& +&(:,41)*PCONC(:,5) +!PLOSS(NO2) = +K001+K030*<O3P>+K031*<O3P>+K033*<OH>+K036*<HO2>+K043*<O3>+K046*< +!NO3>+K047*<NO3>+K083*<PHO>+K085*<ADD>+K088*<CARBOP> + PLOSS(:,4) = +TPK%K001(:)+TPK%K030(:)*TPK%O3P(:)+TPK%K031(:)*TPK%O3P(:)+TPK%K0& +&33(:)*PCONC(:,14)+TPK%K036(:)*PCONC(:,15)+TPK%K043(:)*PCONC(:,1)+TPK%K046(:)*P& +&CONC(:,5)+TPK%K047(:)*PCONC(:,5)+TPK%K083(:)*PCONC(:,36)+TPK%K085(:)*PCONC(:,3& +&7)+TPK%K088(:)*PCONC(:,39) +! +!PPROD(NO3) = +0.35*K006*<HNO4>+K031*<O3P>*<NO2>+K040*<OH>*<HNO3>+K043*<O3>*<NO +!2>+K048*<N2O5>+0.71893*K070*<PAN>*<OH>+0.60*K078*<PAN>*<NO3> + PPROD(:,5) = +0.35*TPK%K006(:)*PCONC(:,9)+TPK%K031(:)*TPK%O3P(:)*PCONC(:,4)+TP& +&K%K040(:)*PCONC(:,14)*PCONC(:,8)+TPK%K043(:)*PCONC(:,1)*PCONC(:,4)+TPK%K048(:)& +&*PCONC(:,6)+0.71893*TPK%K070(:)*PCONC(:,27)*PCONC(:,14)+0.60*TPK%K078(:)*PCONC& +&(:,27)*PCONC(:,5) +!PLOSS(NO3) = +K007+K008+K034*<OH>+K038*<HO2>+K045*<NO>+K046*<NO2>+K047*<NO2>+K +!049*<NO3>+K049*<NO3>+K072*<HCHO>+K073*<ALD>+K074*<CARBO>+K075*<ARO>+K076*<ALKE +!>+K077*<BIO>+K078*<PAN>+K119*<MO2>+K120*<ALKAP>+K121*<ALKEP>+K122*<BIOP>+K123* +!<AROP>+K124*<CARBOP>+K125*<OLN>+K131*<XO2> + PLOSS(:,5) = +TPK%K007(:)+TPK%K008(:)+TPK%K034(:)*PCONC(:,14)+TPK%K038(:)*PCON& +&C(:,15)+TPK%K045(:)*PCONC(:,3)+TPK%K046(:)*PCONC(:,4)+TPK%K047(:)*PCONC(:,4)+T& +&PK%K049(:)*PCONC(:,5)+TPK%K049(:)*PCONC(:,5)+TPK%K072(:)*PCONC(:,22)+TPK%K073(& +&:)*PCONC(:,23)+TPK%K074(:)*PCONC(:,25)+TPK%K075(:)*PCONC(:,21)+TPK%K076(:)*PCO& +&NC(:,19)+TPK%K077(:)*PCONC(:,20)+TPK%K078(:)*PCONC(:,27)+TPK%K119(:)*PCONC(:,3& +&2)+TPK%K120(:)*PCONC(:,33)+TPK%K121(:)*PCONC(:,34)+TPK%K122(:)*PCONC(:,35)+TPK& +&%K123(:)*PCONC(:,38)+TPK%K124(:)*PCONC(:,39)+TPK%K125(:)*PCONC(:,40)+TPK%K131(& +&:)*PCONC(:,41) +! +!PPROD(N2O5) = +K047*<NO3>*<NO2> + PPROD(:,6) = +TPK%K047(:)*PCONC(:,5)*PCONC(:,4) +!PLOSS(N2O5) = +K048 + PLOSS(:,6) = +TPK%K048(:) +! +!PPROD(HONO) = +K032*<OH>*<NO>+K085*<ADD>*<NO2> + PPROD(:,7) = +TPK%K032(:)*PCONC(:,14)*PCONC(:,3)+TPK%K085(:)*PCONC(:,37)*PCONC& +&(:,4) +!PLOSS(HONO) = +K004+K039*<OH> + PLOSS(:,7) = +TPK%K004(:)+TPK%K039(:)*PCONC(:,14) +! +!PPROD(HNO3) = +K033*<OH>*<NO2>+0.3*K038*<HO2>*<NO3>+K072*<HCHO>*<NO3>+K073*<AL +!D>*<NO3>+0.91567*K074*<CARBO>*<NO3>+K075*<ARO>*<NO3> + PPROD(:,8) = +TPK%K033(:)*PCONC(:,14)*PCONC(:,4)+0.3*TPK%K038(:)*PCONC(:,15)*P& +&CONC(:,5)+TPK%K072(:)*PCONC(:,22)*PCONC(:,5)+TPK%K073(:)*PCONC(:,23)*PCONC(:,5& +&)+0.91567*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+TPK%K075(:)*PCONC(:,21)*PCONC(:,5& +&) +!PLOSS(HNO3) = +K005+K040*<OH> + PLOSS(:,8) = +TPK%K005(:)+TPK%K040(:)*PCONC(:,14) ! -!PPROD(WC_ASO4) = +KC15*<WC_H2SO4>*<WC_NO3>+KC22*<WC_ASO5>*<WC_ASO5>+KC22*<WC_A -!SO5>*<WC_ASO5> - PPROD(:,121) = +TPK%KC15(:)*PCONC(:,102)*PCONC(:,92)+TPK%KC22(:)*PCONC(:,122)*& -&PCONC(:,122)+TPK%KC22(:)*PCONC(:,122)*PCONC(:,122) -!PLOSS(WC_ASO4) = +KC24 - PLOSS(:,121) = +TPK%KC24(:) +!PPROD(HNO4) = +K036*<HO2>*<NO2> + PPROD(:,9) = +TPK%K036(:)*PCONC(:,15)*PCONC(:,4) +!PLOSS(HNO4) = +K006+K037+K041*<OH> + PLOSS(:,9) = +TPK%K006(:)+TPK%K037(:)+TPK%K041(:)*PCONC(:,14) ! -!PPROD(WC_ASO5) = +KC20*<W_O2>*<WC_ASO3> - PPROD(:,122) = +TPK%KC20(:)*TPK%W_O2(:)*PCONC(:,120) -!PLOSS(WC_ASO5) = +KC21*<WC_HO2>+KC22*<WC_ASO5>+KC22*<WC_ASO5> - PLOSS(:,122) = +TPK%KC21(:)*PCONC(:,99)+TPK%KC22(:)*PCONC(:,122)+TPK%KC22(:)*P& -&CONC(:,122) +!PPROD(NH3) = 0.0 + PPROD(:,10) = 0.0 +!PLOSS(NH3) = +K050*<OH> + PLOSS(:,10) = +TPK%K050(:)*PCONC(:,14) ! -!PPROD(WC_AHSO5) = +KC21*<WC_HO2>*<WC_ASO5> - PPROD(:,123) = +TPK%KC21(:)*PCONC(:,99)*PCONC(:,122) -!PLOSS(WC_AHSO5) = +KC23*<WC_SO2> - PLOSS(:,123) = +TPK%KC23(:)*PCONC(:,101) +RETURN +END SUBROUTINE SUB0 ! -!PPROD(WC_AHMS) = +KC17*<WC_HCHO>*<WC_SO2> - PPROD(:,124) = +TPK%KC17(:)*PCONC(:,108)*PCONC(:,101) -!PLOSS(WC_AHMS) = +KC18+KC19*<WC_OH> - PLOSS(:,124) = +TPK%KC18(:)+TPK%KC19(:)*PCONC(:,98) +SUBROUTINE SUB1 ! -!PPROD(WR_O3) = +KTR1*<O3> - PPROD(:,125) = +TPK%KTR1(:)*PCONC(:,3) -!PLOSS(WR_O3) = +KTR32+KR6*<WR_HO2>+KR25*<WR_SO2> - PLOSS(:,125) = +TPK%KTR32(:)+TPK%KR6(:)*PCONC(:,136)+TPK%KR25(:)*PCONC(:,138) -! -!PPROD(WR_H2O2) = +KTR2*<H2O2>+KR2*<WR_OH>*<WR_OH>+KR5*<WR_HO2>*<WR_HO2>+KR29*< -!WR_RO25>*<WR_RO25>+KR37*<WR_OH>*<WR_KETL>+0.5*KR39*<WR_OH>*<WR_ORA2>+0.29*KR41 -!*<WR_OH>*<WR_ACID>+0.3*KR43*<WR_OH>*<WR_UR21>+0.45*KR45*<WR_OH>*<WR_RP16> - PPROD(:,126) = +TPK%KTR2(:)*PCONC(:,12)+TPK%KR2(:)*PCONC(:,135)*PCONC(:,135)+T& -&PK%KR5(:)*PCONC(:,136)*PCONC(:,136)+TPK%KR29(:)*PCONC(:,141)*PCONC(:,141)+TPK%& -&KR37(:)*PCONC(:,135)*PCONC(:,149)+0.5*TPK%KR39(:)*PCONC(:,135)*PCONC(:,151)+0.& -&29*TPK%KR41(:)*PCONC(:,135)*PCONC(:,152)+0.3*TPK%KR43(:)*PCONC(:,135)*PCONC(:,& -&154)+0.45*TPK%KR45(:)*PCONC(:,135)*PCONC(:,153) -!PLOSS(WR_H2O2) = +KTR33+KR1+KR4*<WR_OH>+KR26*<WR_SO2> - PLOSS(:,126) = +TPK%KTR33(:)+TPK%KR1(:)+TPK%KR4(:)*PCONC(:,135)+TPK%KR26(:)*PC& -&ONC(:,138) +!Indices 11 a 20 ! -!PPROD(WR_NO) = +KTR3*<NO> - PPROD(:,127) = +TPK%KTR3(:)*PCONC(:,1) -!PLOSS(WR_NO) = +KTR34 - PLOSS(:,127) = +TPK%KTR34(:) ! -!PPROD(WR_NO2) = +KTR4*<NO2>+KR8*<WR_OH>*<WR_HONO>+KR10*<WR_HNO4>+KR13*<WR_HNO3 +!PPROD(SO2) = 0.0 + PPROD(:,11) = 0.0 +!PLOSS(SO2) = +K052*<OH> + PLOSS(:,11) = +TPK%K052(:)*PCONC(:,14) +! +!PPROD(SULF) = +K052*<OH>*<SO2> + PPROD(:,12) = +TPK%K052(:)*PCONC(:,14)*PCONC(:,11) +!PLOSS(SULF) = +K132 + PLOSS(:,12) = +TPK%K132(:) +! +!PPROD(CO) = +K010*<HCHO>+K011*<HCHO>+K012*<ALD>+0.91924*K016*<CARBO>+0.01*K054 +!*<BIO>*<O3P>+0.00878*K058*<ALKA>*<OH>+K062*<HCHO>*<OH>+1.01732*K065*<CARBO>*<O +!H>+K072*<HCHO>*<NO3>+1.33723*K074*<CARBO>*<NO3>+0.35120*K079*<ALKE>*<O3>+0.360 +!00*K080*<BIO>*<O3>+0.64728*K081*<CARBO>*<O3>+0.13*K082*<PAN>*<O3> + PPROD(:,13) = +TPK%K010(:)*PCONC(:,22)+TPK%K011(:)*PCONC(:,22)+TPK%K012(:)*PCO& +&NC(:,23)+0.91924*TPK%K016(:)*PCONC(:,25)+0.01*TPK%K054(:)*PCONC(:,20)*TPK%O3P(& +&:)+0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+TPK%K062(:)*PCONC(:,22)*PCONC(:& +&,14)+1.01732*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+TPK%K072(:)*PCONC(:,22)*PCONC& +&(:,5)+1.33723*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.35120*TPK%K079(:)*PCONC(:,1& +&9)*PCONC(:,1)+0.36000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.64728*TPK%K081(:)*P& +&CONC(:,25)*PCONC(:,1)+0.13*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PLOSS(CO) = +K053*<OH> + PLOSS(:,13) = +TPK%K053(:)*PCONC(:,14) +! +!PPROD(OH) = +K004*<HONO>+K005*<HNO3>+0.35*K006*<HNO4>+K009*<H2O2>+K009*<H2O2>+ +!K013*<OP1>+K014*<OP2>+K022*<O1D>*<H2O>+K022*<O1D>*<H2O>+K024*<O3>*<HO2>+K035*< +!HO2>*<NO>+0.7*K038*<HO2>*<NO3>+0.02*K054*<BIO>*<O3P>+0.00878*K058*<ALKA>*<OH>+ +!0.35*K068*<OP1>*<OH>+0.44925*K069*<OP2>*<OH>+0.39435*K079*<ALKE>*<O3>+0.28000* +!K080*<BIO>*<O3>+0.20595*K081*<CARBO>*<O3>+0.036*K082*<PAN>*<O3>+K087*<ADD>*<O3 !> - PPROD(:,128) = +TPK%KTR4(:)*PCONC(:,2)+TPK%KR8(:)*PCONC(:,135)*PCONC(:,131)+TP& -&K%KR10(:)*PCONC(:,133)+TPK%KR13(:)*PCONC(:,132) -!PLOSS(WR_NO2) = +KTR35+KR9*<WR_HO2> - PLOSS(:,128) = +TPK%KTR35(:)+TPK%KR9(:)*PCONC(:,136) -! -!PPROD(WR_NO3) = +KTR5*<NO3> - PPROD(:,129) = +TPK%KTR5(:)*PCONC(:,8) -!PLOSS(WR_NO3) = +KTR36+KR15*<WR_H2SO4>+KR16*<WR_SO2> - PLOSS(:,129) = +TPK%KTR36(:)+TPK%KR15(:)*PCONC(:,139)+TPK%KR16(:)*PCONC(:,138) -! -!PPROD(WR_N2O5) = +KTR6*<N2O5> - PPROD(:,130) = +TPK%KTR6(:)*PCONC(:,7) -!PLOSS(WR_N2O5) = +KTR37+KR14 - PLOSS(:,130) = +TPK%KTR37(:)+TPK%KR14(:) + PPROD(:,14) = +TPK%K004(:)*PCONC(:,7)+TPK%K005(:)*PCONC(:,8)+0.35*TPK%K006(:)*& +&PCONC(:,9)+TPK%K009(:)*PCONC(:,2)+TPK%K009(:)*PCONC(:,2)+TPK%K013(:)*PCONC(:,2& +&8)+TPK%K014(:)*PCONC(:,29)+TPK%K022(:)*TPK%O1D(:)*TPK%H2O(:)+TPK%K022(:)*TPK%O& +&1D(:)*TPK%H2O(:)+TPK%K024(:)*PCONC(:,1)*PCONC(:,15)+TPK%K035(:)*PCONC(:,15)*PC& +&ONC(:,3)+0.7*TPK%K038(:)*PCONC(:,15)*PCONC(:,5)+0.02*TPK%K054(:)*PCONC(:,20)*T& +&PK%O3P(:)+0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0.35*TPK%K068(:)*PCONC(:& +&,28)*PCONC(:,14)+0.44925*TPK%K069(:)*PCONC(:,29)*PCONC(:,14)+0.39435*TPK%K079(& +&:)*PCONC(:,19)*PCONC(:,1)+0.28000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.20595*T& +&PK%K081(:)*PCONC(:,25)*PCONC(:,1)+0.036*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+TPK& +&%K087(:)*PCONC(:,37)*PCONC(:,1) +!PLOSS(OH) = +K023*<O3>+K025*<HO2>+K026*<H2O2>+K032*<NO>+K033*<NO2>+K034*<NO3>+ +!K039*<HONO>+K040*<HNO3>+K041*<HNO4>+K050*<NH3>+K051*<H2>+K052*<SO2>+K053*<CO>+ +!K056*<CH4>+K057*<ETH>+K058*<ALKA>+K059*<ALKE>+K060*<BIO>+K061*<ARO>+K062*<HCHO +!>+K063*<ALD>+K064*<KET>+K065*<CARBO>+K066*<ORA1>+K067*<ORA2>+K068*<OP1>+K069*< +!OP2>+K070*<PAN>+K071*<ONIT> + PLOSS(:,14) = +TPK%K023(:)*PCONC(:,1)+TPK%K025(:)*PCONC(:,15)+TPK%K026(:)*PCON& +&C(:,2)+TPK%K032(:)*PCONC(:,3)+TPK%K033(:)*PCONC(:,4)+TPK%K034(:)*PCONC(:,5)+TP& +&K%K039(:)*PCONC(:,7)+TPK%K040(:)*PCONC(:,8)+TPK%K041(:)*PCONC(:,9)+TPK%K050(:)& +&*PCONC(:,10)+TPK%K051(:)*TPK%H2(:)+TPK%K052(:)*PCONC(:,11)+TPK%K053(:)*PCONC(:& +&,13)+TPK%K056(:)*PCONC(:,16)+TPK%K057(:)*PCONC(:,17)+TPK%K058(:)*PCONC(:,18)+T& +&PK%K059(:)*PCONC(:,19)+TPK%K060(:)*PCONC(:,20)+TPK%K061(:)*PCONC(:,21)+TPK%K06& +&2(:)*PCONC(:,22)+TPK%K063(:)*PCONC(:,23)+TPK%K064(:)*PCONC(:,24)+TPK%K065(:)*P& +&CONC(:,25)+TPK%K066(:)*PCONC(:,30)+TPK%K067(:)*PCONC(:,31)+TPK%K068(:)*PCONC(:& +&,28)+TPK%K069(:)*PCONC(:,29)+TPK%K070(:)*PCONC(:,27)+TPK%K071(:)*PCONC(:,26) +! +!PPROD(HO2) = +0.65*K006*<HNO4>+K011*<HCHO>+K011*<HCHO>+K012*<ALD>+K013*<OP1>+0 +!.96205*K014*<OP2>+0.75830*K016*<CARBO>+K017*<ONIT>+K023*<O3>*<OH>+K026*<H2O2>* +!<OH>+K034*<OH>*<NO3>+K037*<HNO4>+K051*<OH>*<H2>+K052*<OH>*<SO2>+K053*<CO>*<OH> +!+0.28*K054*<BIO>*<O3P>+0.12793*K058*<ALKA>*<OH>+0.10318*K061*<ARO>*<OH>+K062*< +!HCHO>*<OH>+0.51208*K065*<CARBO>*<OH>+K066*<ORA1>*<OH>+0.02915*K069*<OP2>*<OH>+ +!0.28107*K070*<PAN>*<OH>+K072*<HCHO>*<NO3>+0.63217*K074*<CARBO>*<NO3>+0.23451*K +!079*<ALKE>*<O3>+0.30000*K080*<BIO>*<O3>+0.28441*K081*<CARBO>*<O3>+0.08*K082*<P +!AN>*<O3>+0.02*K086*<ADD>*<O2>+K090*<MO2>*<NO>+0.74265*K091*<ALKAP>*<NO>+K092*< +!ALKEP>*<NO>+0.84700*K093*<BIOP>*<NO>+0.95115*K094*<AROP>*<NO>+0.12334*K095*<CA +!RBOP>*<NO>+0.18401*K096*<OLN>*<NO>+0.66*K104*<MO2>*<MO2>+0.98383*K105*<ALKAP>* +!<MO2>+K106*<ALKEP>*<MO2>+1.00000*K107*<BIOP>*<MO2>+1.02767*K108*<AROP>*<MO2>+0 +!.82998*K109*<CARBOP>*<MO2>+0.67560*K110*<OLN>*<MO2>+0.48079*K111*<ALKAP>*<CARB +!OP>+0.50078*K112*<ALKEP>*<CARBOP>+0.50600*K113*<BIOP>*<CARBOP>+K114*<AROP>*<CA +!RBOP>+0.07566*K115*<CARBOP>*<CARBOP>+0.17599*K116*<OLN>*<CARBOP>+K117*<OLN>*<O +!LN>+0.00000*K118*<OLN>*<OLN>+K119*<MO2>*<NO3>+0.81290*K120*<ALKAP>*<NO3>+K121* +!<ALKEP>*<NO3>+K122*<BIOP>*<NO3>+K123*<AROP>*<NO3>+0.04915*K124*<CARBOP>*<NO3>+ +!0.25928*K125*<OLN>*<NO3>+K127*<XO2>*<MO2> + PPROD(:,15) = +0.65*TPK%K006(:)*PCONC(:,9)+TPK%K011(:)*PCONC(:,22)+TPK%K011(:)& +&*PCONC(:,22)+TPK%K012(:)*PCONC(:,23)+TPK%K013(:)*PCONC(:,28)+0.96205*TPK%K014(& +&:)*PCONC(:,29)+0.75830*TPK%K016(:)*PCONC(:,25)+TPK%K017(:)*PCONC(:,26)+TPK%K02& +&3(:)*PCONC(:,1)*PCONC(:,14)+TPK%K026(:)*PCONC(:,2)*PCONC(:,14)+TPK%K034(:)*PCO& +&NC(:,14)*PCONC(:,5)+TPK%K037(:)*PCONC(:,9)+TPK%K051(:)*PCONC(:,14)*TPK%H2(:)+T& +&PK%K052(:)*PCONC(:,14)*PCONC(:,11)+TPK%K053(:)*PCONC(:,13)*PCONC(:,14)+0.28*TP& +&K%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.12793*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0& +&.10318*TPK%K061(:)*PCONC(:,21)*PCONC(:,14)+TPK%K062(:)*PCONC(:,22)*PCONC(:,14)& +&+0.51208*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+TPK%K066(:)*PCONC(:,30)*PCONC(:,1& +&4)+0.02915*TPK%K069(:)*PCONC(:,29)*PCONC(:,14)+0.28107*TPK%K070(:)*PCONC(:,27)& +&*PCONC(:,14)+TPK%K072(:)*PCONC(:,22)*PCONC(:,5)+0.63217*TPK%K074(:)*PCONC(:,25& +&)*PCONC(:,5)+0.23451*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.30000*TPK%K080(:)*PC& +&ONC(:,20)*PCONC(:,1)+0.28441*TPK%K081(:)*PCONC(:,25)*PCONC(:,1)+0.08*TPK%K082(& +&:)*PCONC(:,27)*PCONC(:,1)+0.02*TPK%K086(:)*PCONC(:,37)*TPK%O2(:)+TPK%K090(:)*P& +&CONC(:,32)*PCONC(:,3)+0.74265*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+TPK%K092(:)*P& +&CONC(:,34)*PCONC(:,3)+0.84700*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0.95115*TPK%K& +&094(:)*PCONC(:,38)*PCONC(:,3)+0.12334*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+0.184& +&01*TPK%K096(:)*PCONC(:,40)*PCONC(:,3)+0.66*TPK%K104(:)*PCONC(:,32)*PCONC(:,32)& +&+0.98383*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+TPK%K106(:)*PCONC(:,34)*PCONC(:,3& +&2)+1.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32)+1.02767*TPK%K108(:)*PCONC(:,38)& +&*PCONC(:,32)+0.82998*TPK%K109(:)*PCONC(:,39)*PCONC(:,32)+0.67560*TPK%K110(:)*P& +&CONC(:,40)*PCONC(:,32)+0.48079*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.50078*TPK& +&%K112(:)*PCONC(:,34)*PCONC(:,39)+0.50600*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+T& +&PK%K114(:)*PCONC(:,38)*PCONC(:,39)+0.07566*TPK%K115(:)*PCONC(:,39)*PCONC(:,39)& +&+0.17599*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+TPK%K117(:)*PCONC(:,40)*PCONC(:,4& +&0)+0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40)+TPK%K119(:)*PCONC(:,32)*PCONC(:& +&,5)+0.81290*TPK%K120(:)*PCONC(:,33)*PCONC(:,5)+TPK%K121(:)*PCONC(:,34)*PCONC(:& +&,5)+TPK%K122(:)*PCONC(:,35)*PCONC(:,5)+TPK%K123(:)*PCONC(:,38)*PCONC(:,5)+0.04& +&915*TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+0.25928*TPK%K125(:)*PCONC(:,40)*PCONC(:& +&,5)+TPK%K127(:)*PCONC(:,41)*PCONC(:,32) +!PLOSS(HO2) = +K024*<O3>+K025*<OH>+K027*<HO2>+K027*<HO2>+K028*<HO2>*<H2O>+K028* +!<HO2>*<H2O>+K035*<NO>+K036*<NO2>+K038*<NO3>+K084*<PHO>+K097*<MO2>+K098*<ALKAP> +!+K099*<ALKEP>+K0100*<BIOP>+K0101*<AROP>+K0102*<CARBOP>+K103*<OLN>+K126*<XO2> + PLOSS(:,15) = +TPK%K024(:)*PCONC(:,1)+TPK%K025(:)*PCONC(:,14)+TPK%K027(:)*PCON& +&C(:,15)+TPK%K027(:)*PCONC(:,15)+TPK%K028(:)*PCONC(:,15)*TPK%H2O(:)+TPK%K028(:)& +&*PCONC(:,15)*TPK%H2O(:)+TPK%K035(:)*PCONC(:,3)+TPK%K036(:)*PCONC(:,4)+TPK%K038& +&(:)*PCONC(:,5)+TPK%K084(:)*PCONC(:,36)+TPK%K097(:)*PCONC(:,32)+TPK%K098(:)*PCO& +&NC(:,33)+TPK%K099(:)*PCONC(:,34)+TPK%K0100(:)*PCONC(:,35)+TPK%K0101(:)*PCONC(:& +&,38)+TPK%K0102(:)*PCONC(:,39)+TPK%K103(:)*PCONC(:,40)+TPK%K126(:)*PCONC(:,41) +! +!PPROD(CH4) = +0.04300*K079*<ALKE>*<O3> + PPROD(:,16) = +0.04300*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PLOSS(CH4) = +K056*<OH> + PLOSS(:,16) = +TPK%K056(:)*PCONC(:,14) +! +!PPROD(ETH) = +0.03196*K079*<ALKE>*<O3> + PPROD(:,17) = +0.03196*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) +!PLOSS(ETH) = +K057*<OH> + PLOSS(:,17) = +TPK%K057(:)*PCONC(:,14) +! +!PPROD(ALKA) = 0.0 + PPROD(:,18) = 0.0 +!PLOSS(ALKA) = +K058*<OH> + PLOSS(:,18) = +TPK%K058(:)*PCONC(:,14) +! +!PPROD(ALKE) = +0.91868*K054*<BIO>*<O3P>+0.00000*K079*<ALKE>*<O3>+0.37388*K080* +!<BIO>*<O3>+0.37815*K093*<BIOP>*<NO>+0.48074*K107*<BIOP>*<MO2>+0.24463*K113*<BI +!OP>*<CARBOP>+0.42729*K122*<BIOP>*<NO3> + PPROD(:,19) = +0.91868*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.00000*TPK%K079(:)*& +&PCONC(:,19)*PCONC(:,1)+0.37388*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.37815*TPK%& +&K093(:)*PCONC(:,35)*PCONC(:,3)+0.48074*TPK%K107(:)*PCONC(:,35)*PCONC(:,32)+0.2& +&4463*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+0.42729*TPK%K122(:)*PCONC(:,35)*PCONC& +&(:,5) +!PLOSS(ALKE) = +K059*<OH>+K076*<NO3>+K079*<O3> + PLOSS(:,19) = +TPK%K059(:)*PCONC(:,14)+TPK%K076(:)*PCONC(:,5)+TPK%K079(:)*PCON& +&C(:,1) +! +!PPROD(BIO) = 0.0 + PPROD(:,20) = 0.0 +!PLOSS(BIO) = +K054*<O3P>+K060*<OH>+K077*<NO3>+K080*<O3> + PLOSS(:,20) = +TPK%K054(:)*TPK%O3P(:)+TPK%K060(:)*PCONC(:,14)+TPK%K077(:)*PCON& +&C(:,5)+TPK%K080(:)*PCONC(:,1) ! RETURN -END SUBROUTINE SUB12 +END SUBROUTINE SUB1 ! -SUBROUTINE SUB13 +SUBROUTINE SUB2 ! -!Indices 131 a 140 +!Indices 21 a 30 ! ! -!PPROD(WR_HONO) = +KTR7*<HONO>+KR11*<WR_HNO4> - PPROD(:,131) = +TPK%KTR7(:)*PCONC(:,4)+TPK%KR11(:)*PCONC(:,133) -!PLOSS(WR_HONO) = +KTR38+KR8*<WR_OH> - PLOSS(:,131) = +TPK%KTR38(:)+TPK%KR8(:)*PCONC(:,135) -! -!PPROD(WR_HNO3) = +KTR8*<HNO3>+KR12*<WR_SO2>*<WR_HNO4>+KR14*<WR_N2O5>+KR14*<WR_ -!N2O5>+KR15*<WR_H2SO4>*<WR_NO3>+KR16*<WR_SO2>*<WR_NO3> - PPROD(:,132) = +TPK%KTR8(:)*PCONC(:,5)+TPK%KR12(:)*PCONC(:,138)*PCONC(:,133)+T& -&PK%KR14(:)*PCONC(:,130)+TPK%KR14(:)*PCONC(:,130)+TPK%KR15(:)*PCONC(:,139)*PCON& -&C(:,129)+TPK%KR16(:)*PCONC(:,138)*PCONC(:,129) -!PLOSS(WR_HNO3) = +KTR39+KR13 - PLOSS(:,132) = +TPK%KTR39(:)+TPK%KR13(:) -! -!PPROD(WR_HNO4) = +KTR9*<HNO4>+KR9*<WR_HO2>*<WR_NO2> - PPROD(:,133) = +TPK%KTR9(:)*PCONC(:,6)+TPK%KR9(:)*PCONC(:,136)*PCONC(:,128) -!PLOSS(WR_HNO4) = +KTR40+KR10+KR11+KR12*<WR_SO2> - PLOSS(:,133) = +TPK%KTR40(:)+TPK%KR10(:)+TPK%KR11(:)+TPK%KR12(:)*PCONC(:,138) +!PPROD(ARO) = +0.10670*K083*<PHO>*<NO2>+1.06698*K084*<PHO>*<HO2>+K085*<ADD>*<NO +!2>+0.02*K086*<ADD>*<O2>+K087*<ADD>*<O3> + PPROD(:,21) = +0.10670*TPK%K083(:)*PCONC(:,36)*PCONC(:,4)+1.06698*TPK%K084(:)*& +&PCONC(:,36)*PCONC(:,15)+TPK%K085(:)*PCONC(:,37)*PCONC(:,4)+0.02*TPK%K086(:)*PC& +&ONC(:,37)*TPK%O2(:)+TPK%K087(:)*PCONC(:,37)*PCONC(:,1) +!PLOSS(ARO) = +K061*<OH>+K075*<NO3> + PLOSS(:,21) = +TPK%K061(:)*PCONC(:,14)+TPK%K075(:)*PCONC(:,5) +! +!PPROD(HCHO) = +K013*<OP1>+0.06517*K016*<CARBO>+0.05*K054*<BIO>*<O3P>+0.00140*K +!058*<ALKA>*<OH>+0.00000*K065*<CARBO>*<OH>+0.35*K068*<OP1>*<OH>+0.02915*K069*<O +!P2>*<OH>+0.57839*K070*<PAN>*<OH>+0.40*K078*<PAN>*<NO3>+0.48290*K079*<ALKE>*<O3 +!>+0.90000*K080*<BIO>*<O3>+0.00000*K081*<CARBO>*<O3>+0.70*K082*<PAN>*<O3>+K090* +!<MO2>*<NO>+0.03002*K091*<ALKAP>*<NO>+1.39870*K092*<ALKEP>*<NO>+0.60600*K093*<B +!IOP>*<NO>+0.05848*K095*<CARBOP>*<NO>+0.23419*K096*<OLN>*<NO>+1.33*K104*<MO2>*< +!MO2>+0.80556*K105*<ALKAP>*<MO2>+1.42894*K106*<ALKEP>*<MO2>+1.09000*K107*<BIOP> +!*<MO2>+K108*<AROP>*<MO2>+0.95723*K109*<CARBOP>*<MO2>+0.88625*K110*<OLN>*<MO2>+ +!0.07600*K111*<ALKAP>*<CARBOP>+0.68192*K112*<ALKEP>*<CARBOP>+0.34000*K113*<BIOP +!>*<CARBOP>+0.03432*K115*<CARBOP>*<CARBOP>+0.13414*K116*<OLN>*<CARBOP>+0.00000* +!K118*<OLN>*<OLN>+K119*<MO2>*<NO3>+0.03142*K120*<ALKAP>*<NO3>+1.40909*K121*<ALK +!EP>*<NO3>+0.68600*K122*<BIOP>*<NO3>+0.03175*K124*<CARBOP>*<NO3>+0.20740*K125*< +!OLN>*<NO3>+K127*<XO2>*<MO2> + PPROD(:,22) = +TPK%K013(:)*PCONC(:,28)+0.06517*TPK%K016(:)*PCONC(:,25)+0.05*TP& +&K%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.00140*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0& +&.00000*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.35*TPK%K068(:)*PCONC(:,28)*PCONC(& +&:,14)+0.02915*TPK%K069(:)*PCONC(:,29)*PCONC(:,14)+0.57839*TPK%K070(:)*PCONC(:,& +&27)*PCONC(:,14)+0.40*TPK%K078(:)*PCONC(:,27)*PCONC(:,5)+0.48290*TPK%K079(:)*PC& +&ONC(:,19)*PCONC(:,1)+0.90000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.00000*TPK%K0& +&81(:)*PCONC(:,25)*PCONC(:,1)+0.70*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+TPK%K090(& +&:)*PCONC(:,32)*PCONC(:,3)+0.03002*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+1.39870*T& +&PK%K092(:)*PCONC(:,34)*PCONC(:,3)+0.60600*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0& +&.05848*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+0.23419*TPK%K096(:)*PCONC(:,40)*PCON& +&C(:,3)+1.33*TPK%K104(:)*PCONC(:,32)*PCONC(:,32)+0.80556*TPK%K105(:)*PCONC(:,33& +&)*PCONC(:,32)+1.42894*TPK%K106(:)*PCONC(:,34)*PCONC(:,32)+1.09000*TPK%K107(:)*& +&PCONC(:,35)*PCONC(:,32)+TPK%K108(:)*PCONC(:,38)*PCONC(:,32)+0.95723*TPK%K109(:& +&)*PCONC(:,39)*PCONC(:,32)+0.88625*TPK%K110(:)*PCONC(:,40)*PCONC(:,32)+0.07600*& +&TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.68192*TPK%K112(:)*PCONC(:,34)*PCONC(:,39& +&)+0.34000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+0.03432*TPK%K115(:)*PCONC(:,39)*& +&PCONC(:,39)+0.13414*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+0.00000*TPK%K118(:)*PC& +&ONC(:,40)*PCONC(:,40)+TPK%K119(:)*PCONC(:,32)*PCONC(:,5)+0.03142*TPK%K120(:)*P& +&CONC(:,33)*PCONC(:,5)+1.40909*TPK%K121(:)*PCONC(:,34)*PCONC(:,5)+0.68600*TPK%K& +&122(:)*PCONC(:,35)*PCONC(:,5)+0.03175*TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+0.207& +&40*TPK%K125(:)*PCONC(:,40)*PCONC(:,5)+TPK%K127(:)*PCONC(:,41)*PCONC(:,32) +!PLOSS(HCHO) = +K010+K011+K062*<OH>+K072*<NO3> + PLOSS(:,22) = +TPK%K010(:)+TPK%K011(:)+TPK%K062(:)*PCONC(:,14)+TPK%K072(:)*PCO& +&NC(:,5) +! +!PPROD(ALD) = +0.96205*K014*<OP2>+0.20*K017*<ONIT>+K055*<CARBO>*<O3P>+0.08173*K +!058*<ALKA>*<OH>+0.06253*K065*<CARBO>*<OH>+0.07335*K069*<OP2>*<OH>+0.05265*K074 +!*<CARBO>*<NO3>+0.51468*K079*<ALKE>*<O3>+0.00000*K080*<BIO>*<O3>+0.15692*K081*< +!CARBO>*<O3>+0.33144*K091*<ALKAP>*<NO>+0.42125*K092*<ALKEP>*<NO>+0.00000*K093*< +!BIOP>*<NO>+0.07368*K095*<CARBOP>*<NO>+1.01182*K096*<OLN>*<NO>+0.56070*K105*<AL +!KAP>*<MO2>+0.46413*K106*<ALKEP>*<MO2>+0.00000*K107*<BIOP>*<MO2>+0.08295*K109*< +!CARBOP>*<MO2>+0.41524*K110*<OLN>*<MO2>+0.71461*K111*<ALKAP>*<CARBOP>+0.68374*K +!112*<ALKEP>*<CARBOP>+0.00000*K113*<BIOP>*<CARBOP>+0.06969*K115*<CARBOP>*<CARBO +!P>+0.42122*K116*<OLN>*<CARBOP>+0.00000*K118*<OLN>*<OLN>+0.33743*K120*<ALKAP>*< +!NO3>+0.43039*K121*<ALKEP>*<NO3>+0.00000*K122*<BIOP>*<NO3>+0.02936*K124*<CARBOP +!>*<NO3>+0.91850*K125*<OLN>*<NO3> + PPROD(:,23) = +0.96205*TPK%K014(:)*PCONC(:,29)+0.20*TPK%K017(:)*PCONC(:,26)+TP& +&K%K055(:)*PCONC(:,25)*TPK%O3P(:)+0.08173*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0& +&.06253*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.07335*TPK%K069(:)*PCONC(:,29)*PCO& +&NC(:,14)+0.05265*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.51468*TPK%K079(:)*PCONC(& +&:,19)*PCONC(:,1)+0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.15692*TPK%K081(:& +&)*PCONC(:,25)*PCONC(:,1)+0.33144*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.42125*TP& +&K%K092(:)*PCONC(:,34)*PCONC(:,3)+0.00000*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0.& +&07368*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+1.01182*TPK%K096(:)*PCONC(:,40)*PCONC& +&(:,3)+0.56070*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.46413*TPK%K106(:)*PCONC(:,& +&34)*PCONC(:,32)+0.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32)+0.08295*TPK%K109(:& +&)*PCONC(:,39)*PCONC(:,32)+0.41524*TPK%K110(:)*PCONC(:,40)*PCONC(:,32)+0.71461*& +&TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.68374*TPK%K112(:)*PCONC(:,34)*PCONC(:,39& +&)+0.00000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+0.06969*TPK%K115(:)*PCONC(:,39)*& +&PCONC(:,39)+0.42122*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+0.00000*TPK%K118(:)*PC& +&ONC(:,40)*PCONC(:,40)+0.33743*TPK%K120(:)*PCONC(:,33)*PCONC(:,5)+0.43039*TPK%K& +&121(:)*PCONC(:,34)*PCONC(:,5)+0.00000*TPK%K122(:)*PCONC(:,35)*PCONC(:,5)+0.029& +&36*TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+0.91850*TPK%K125(:)*PCONC(:,40)*PCONC(:,& +&5) +!PLOSS(ALD) = +K012+K063*<OH>+K073*<NO3> + PLOSS(:,23) = +TPK%K012(:)+TPK%K063(:)*PCONC(:,14)+TPK%K073(:)*PCONC(:,5) +! +!PPROD(KET) = +0.80*K017*<ONIT>+0.03498*K058*<ALKA>*<OH>+0.00853*K065*<CARBO>*< +!OH>+0.37591*K069*<OP2>*<OH>+0.00632*K074*<CARBO>*<NO3>+0.07377*K079*<ALKE>*<O3 +!>+0.00000*K080*<BIO>*<O3>+0.54531*K091*<ALKAP>*<NO>+0.05220*K092*<ALKEP>*<NO>+ +!0.00000*K093*<BIOP>*<NO>+0.37862*K096*<OLN>*<NO>+0.09673*K105*<ALKAP>*<MO2>+0. +!03814*K106*<ALKEP>*<MO2>+0.00000*K107*<BIOP>*<MO2>+0.09667*K110*<OLN>*<MO2>+0. +!18819*K111*<ALKAP>*<CARBOP>+0.06579*K112*<ALKEP>*<CARBOP>+0.00000*K113*<BIOP>* +!<CARBOP>+0.02190*K115*<CARBOP>*<CARBOP>+0.10822*K116*<OLN>*<CARBOP>+0.00000*K1 +!18*<OLN>*<OLN>+0.62978*K120*<ALKAP>*<NO3>+0.02051*K121*<ALKEP>*<NO3>+0.00000*K +!122*<BIOP>*<NO3>+0.34740*K125*<OLN>*<NO3> + PPROD(:,24) = +0.80*TPK%K017(:)*PCONC(:,26)+0.03498*TPK%K058(:)*PCONC(:,18)*PC& +&ONC(:,14)+0.00853*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.37591*TPK%K069(:)*PCON& +&C(:,29)*PCONC(:,14)+0.00632*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.07377*TPK%K07& +&9(:)*PCONC(:,19)*PCONC(:,1)+0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.54531& +&*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.05220*TPK%K092(:)*PCONC(:,34)*PCONC(:,3)& +&+0.00000*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+0.37862*TPK%K096(:)*PCONC(:,40)*PC& +&ONC(:,3)+0.09673*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.03814*TPK%K106(:)*PCONC& +&(:,34)*PCONC(:,32)+0.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32)+0.09667*TPK%K11& +&0(:)*PCONC(:,40)*PCONC(:,32)+0.18819*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.065& +&79*TPK%K112(:)*PCONC(:,34)*PCONC(:,39)+0.00000*TPK%K113(:)*PCONC(:,35)*PCONC(:& +&,39)+0.02190*TPK%K115(:)*PCONC(:,39)*PCONC(:,39)+0.10822*TPK%K116(:)*PCONC(:,4& +&0)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40)+0.62978*TPK%K120(:)& +&*PCONC(:,33)*PCONC(:,5)+0.02051*TPK%K121(:)*PCONC(:,34)*PCONC(:,5)+0.00000*TPK& +&%K122(:)*PCONC(:,35)*PCONC(:,5)+0.34740*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PLOSS(KET) = +K015+K064*<OH> + PLOSS(:,24) = +TPK%K015(:)+TPK%K064(:)*PCONC(:,14) +! +!PPROD(CARBO) = +0.13255*K054*<BIO>*<O3P>+0.00835*K058*<ALKA>*<OH>+0.16919*K065 +!*<CARBO>*<OH>+0.21863*K070*<PAN>*<OH>+0.10530*K074*<CARBO>*<NO3>+0.00000*K076* +!<ALKE>*<NO3>+0.91741*K077*<BIO>*<NO3>+0.00000*K079*<ALKE>*<O3>+0.39754*K080*<B +!IO>*<O3>+1.07583*K081*<CARBO>*<O3>+0.03407*K091*<ALKAP>*<NO>+0.45463*K093*<BIO +!P>*<NO>+2.06993*K094*<AROP>*<NO>+0.08670*K095*<CARBOP>*<NO>+0.07976*K105*<ALKA +!P>*<MO2>+0.56064*K107*<BIOP>*<MO2>+1.99461*K108*<AROP>*<MO2>+0.15387*K109*<CAR +!BOP>*<MO2>+0.06954*K111*<ALKAP>*<CARBOP>+0.78591*K113*<BIOP>*<CARBOP>+1.99455* +!K114*<AROP>*<CARBOP>+0.10777*K115*<CARBOP>*<CARBOP>+0.03531*K120*<ALKAP>*<NO3> +!+0.61160*K122*<BIOP>*<NO3>+2.81904*K123*<AROP>*<NO3>+0.03455*K124*<CARBOP>*<NO +!3> + PPROD(:,25) = +0.13255*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.00835*TPK%K058(:)*& +&PCONC(:,18)*PCONC(:,14)+0.16919*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.21863*TP& +&K%K070(:)*PCONC(:,27)*PCONC(:,14)+0.10530*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0& +&.00000*TPK%K076(:)*PCONC(:,19)*PCONC(:,5)+0.91741*TPK%K077(:)*PCONC(:,20)*PCON& +&C(:,5)+0.00000*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.39754*TPK%K080(:)*PCONC(:,& +&20)*PCONC(:,1)+1.07583*TPK%K081(:)*PCONC(:,25)*PCONC(:,1)+0.03407*TPK%K091(:)*& +&PCONC(:,33)*PCONC(:,3)+0.45463*TPK%K093(:)*PCONC(:,35)*PCONC(:,3)+2.06993*TPK%& +&K094(:)*PCONC(:,38)*PCONC(:,3)+0.08670*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+0.07& +&976*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.56064*TPK%K107(:)*PCONC(:,35)*PCONC(& +&:,32)+1.99461*TPK%K108(:)*PCONC(:,38)*PCONC(:,32)+0.15387*TPK%K109(:)*PCONC(:,& +&39)*PCONC(:,32)+0.06954*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.78591*TPK%K113(:& +&)*PCONC(:,35)*PCONC(:,39)+1.99455*TPK%K114(:)*PCONC(:,38)*PCONC(:,39)+0.10777*& +&TPK%K115(:)*PCONC(:,39)*PCONC(:,39)+0.03531*TPK%K120(:)*PCONC(:,33)*PCONC(:,5)& +&+0.61160*TPK%K122(:)*PCONC(:,35)*PCONC(:,5)+2.81904*TPK%K123(:)*PCONC(:,38)*PC& +&ONC(:,5)+0.03455*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) +!PLOSS(CARBO) = +K016+K055*<O3P>+K065*<OH>+K074*<NO3>+K081*<O3> + PLOSS(:,25) = +TPK%K016(:)+TPK%K055(:)*TPK%O3P(:)+TPK%K065(:)*PCONC(:,14)+TPK%& +&K074(:)*PCONC(:,5)+TPK%K081(:)*PCONC(:,1) +! +!PPROD(ONIT) = +0.60*K078*<PAN>*<NO3>+K083*<PHO>*<NO2>+0.08459*K091*<ALKAP>*<NO +!>+0.15300*K093*<BIOP>*<NO>+0.04885*K094*<AROP>*<NO>+0.18401*K096*<OLN>*<NO>+K1 +!03*<OLN>*<HO2>+0.67560*K110*<OLN>*<MO2>+0.66562*K116*<OLN>*<CARBOP>+2.00*K117* +!<OLN>*<OLN>+0.00000*K118*<OLN>*<OLN>+0.25928*K125*<OLN>*<NO3> + PPROD(:,26) = +0.60*TPK%K078(:)*PCONC(:,27)*PCONC(:,5)+TPK%K083(:)*PCONC(:,36)& +&*PCONC(:,4)+0.08459*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.15300*TPK%K093(:)*PCO& +&NC(:,35)*PCONC(:,3)+0.04885*TPK%K094(:)*PCONC(:,38)*PCONC(:,3)+0.18401*TPK%K09& +&6(:)*PCONC(:,40)*PCONC(:,3)+TPK%K103(:)*PCONC(:,40)*PCONC(:,15)+0.67560*TPK%K1& +&10(:)*PCONC(:,40)*PCONC(:,32)+0.66562*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+2.00& +&*TPK%K117(:)*PCONC(:,40)*PCONC(:,40)+0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,4& +&0)+0.25928*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) +!PLOSS(ONIT) = +K017+K071*<OH> + PLOSS(:,26) = +TPK%K017(:)+TPK%K071(:)*PCONC(:,14) +! +!PPROD(PAN) = +0.28107*K070*<PAN>*<OH>+0.40000*K078*<PAN>*<NO3>+0.30000*K082*<P +!AN>*<O3>+1.00000*K088*<CARBOP>*<NO2> + PPROD(:,27) = +0.28107*TPK%K070(:)*PCONC(:,27)*PCONC(:,14)+0.40000*TPK%K078(:)& +&*PCONC(:,27)*PCONC(:,5)+0.30000*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+1.00000*TPK& +&%K088(:)*PCONC(:,39)*PCONC(:,4) +!PLOSS(PAN) = +K070*<OH>+K078*<NO3>+K082*<O3>+K089 + PLOSS(:,27) = +TPK%K070(:)*PCONC(:,14)+TPK%K078(:)*PCONC(:,5)+TPK%K082(:)*PCON& +&C(:,1)+TPK%K089(:) +! +!PPROD(OP1) = +K097*<MO2>*<HO2> + PPROD(:,28) = +TPK%K097(:)*PCONC(:,32)*PCONC(:,15) +!PLOSS(OP1) = +K013+K068*<OH> + PLOSS(:,28) = +TPK%K013(:)+TPK%K068(:)*PCONC(:,14) +! +!PPROD(OP2) = +0.10149*K081*<CARBO>*<O3>+1.00524*K098*<ALKAP>*<HO2>+1.00524*K09 +!9*<ALKEP>*<HO2>+1.00524*K0100*<BIOP>*<HO2>+1.00524*K0101*<AROP>*<HO2>+0.80904* +!K0102*<CARBOP>*<HO2>+1.00524*K126*<XO2>*<HO2> + PPROD(:,29) = +0.10149*TPK%K081(:)*PCONC(:,25)*PCONC(:,1)+1.00524*TPK%K098(:)*& +&PCONC(:,33)*PCONC(:,15)+1.00524*TPK%K099(:)*PCONC(:,34)*PCONC(:,15)+1.00524*TP& +&K%K0100(:)*PCONC(:,35)*PCONC(:,15)+1.00524*TPK%K0101(:)*PCONC(:,38)*PCONC(:,15& +&)+0.80904*TPK%K0102(:)*PCONC(:,39)*PCONC(:,15)+1.00524*TPK%K126(:)*PCONC(:,41)& +&*PCONC(:,15) +!PLOSS(OP2) = +K014+K069*<OH> + PLOSS(:,29) = +TPK%K014(:)+TPK%K069(:)*PCONC(:,14) ! -!PPROD(WR_NH3) = +KTR10*<NH3> - PPROD(:,134) = +TPK%KTR10(:)*PCONC(:,9) -!PLOSS(WR_NH3) = +KTR41 - PLOSS(:,134) = +TPK%KTR41(:) -! -!PPROD(WR_OH) = +KTR11*<OH>+KR1*<WR_H2O2>+KR1*<WR_H2O2>+KR6*<WR_HO2>*<WR_O3>+KR -!13*<WR_HNO3>+KR24*<WR_ASO4> - PPROD(:,135) = +TPK%KTR11(:)*PCONC(:,15)+TPK%KR1(:)*PCONC(:,126)+TPK%KR1(:)*PC& -&ONC(:,126)+TPK%KR6(:)*PCONC(:,136)*PCONC(:,125)+TPK%KR13(:)*PCONC(:,132)+TPK%K& -&R24(:)*PCONC(:,158) -!PLOSS(WR_OH) = +KTR42+KR2*<WR_OH>+KR2*<WR_OH>+KR3*<WR_HO2>+KR4*<WR_H2O2>+KR7*< -!WR_SO2>+KR8*<WR_HONO>+KR19*<WR_AHMS>+KR30*<WR_MEOH>+KR31*<WR_ETOH>+KR32*<WR_AL -!CH>+KR33*<WR_HCHO>+KR34*<WR_ALD2>+KR35*<WR_GLY>+KR36*<WR_MGLY>+KR37*<WR_KETL>+ -!KR38*<WR_ORA1>+KR39*<WR_ORA2>+KR40*<WR_ACID>+KR41*<WR_ACID>+KR42*<WR_UR28>+KR4 -!3*<WR_UR21>+KR44*<WR_RP16>+KR45*<WR_RP16>+KR46*<WR_ACID2> - PLOSS(:,135) = +TPK%KTR42(:)+TPK%KR2(:)*PCONC(:,135)+TPK%KR2(:)*PCONC(:,135)+T& -&PK%KR3(:)*PCONC(:,136)+TPK%KR4(:)*PCONC(:,126)+TPK%KR7(:)*PCONC(:,138)+TPK%KR8& -&(:)*PCONC(:,131)+TPK%KR19(:)*PCONC(:,161)+TPK%KR30(:)*PCONC(:,142)+TPK%KR31(:)& -&*PCONC(:,143)+TPK%KR32(:)*PCONC(:,144)+TPK%KR33(:)*PCONC(:,145)+TPK%KR34(:)*PC& -&ONC(:,146)+TPK%KR35(:)*PCONC(:,147)+TPK%KR36(:)*PCONC(:,148)+TPK%KR37(:)*PCONC& -&(:,149)+TPK%KR38(:)*PCONC(:,150)+TPK%KR39(:)*PCONC(:,151)+TPK%KR40(:)*PCONC(:,& -&152)+TPK%KR41(:)*PCONC(:,152)+TPK%KR42(:)*PCONC(:,155)+TPK%KR43(:)*PCONC(:,154& -&)+TPK%KR44(:)*PCONC(:,153)+TPK%KR45(:)*PCONC(:,153)+TPK%KR46(:)*PCONC(:,156) -! -!PPROD(WR_HO2) = +KTR12*<HO2>+KR4*<WR_OH>*<WR_H2O2>+KR10*<WR_HNO4>+KR19*<WR_OH> -!*<WR_AHMS>+2.00*KR27*<WR_RO21>*<WR_RO21>+KR29*<WR_RO25>*<WR_RO25>+KR30*<WR_OH> -!*<WR_MEOH>+KR31*<WR_OH>*<WR_ETOH>+KR32*<WR_OH>*<WR_ALCH>+KR33*<WR_OH>*<WR_HCHO -!>+KR35*<WR_OH>*<WR_GLY>+KR36*<WR_OH>*<WR_MGLY>+KR37*<WR_OH>*<WR_KETL>+KR38*<WR -!_OH>*<WR_ORA1>+0.11*KR41*<WR_OH>*<WR_ACID>+KR42*<WR_OH>*<WR_UR28>+0.81*KR43*<W -!R_OH>*<WR_UR21>+KR44*<WR_OH>*<WR_RP16>+0.71*KR45*<WR_OH>*<WR_RP16> - PPROD(:,136) = +TPK%KTR12(:)*PCONC(:,10)+TPK%KR4(:)*PCONC(:,135)*PCONC(:,126)+& -&TPK%KR10(:)*PCONC(:,133)+TPK%KR19(:)*PCONC(:,135)*PCONC(:,161)+2.00*TPK%KR27(:& -&)*PCONC(:,140)*PCONC(:,140)+TPK%KR29(:)*PCONC(:,141)*PCONC(:,141)+TPK%KR30(:)*& -&PCONC(:,135)*PCONC(:,142)+TPK%KR31(:)*PCONC(:,135)*PCONC(:,143)+TPK%KR32(:)*PC& -&ONC(:,135)*PCONC(:,144)+TPK%KR33(:)*PCONC(:,135)*PCONC(:,145)+TPK%KR35(:)*PCON& -&C(:,135)*PCONC(:,147)+TPK%KR36(:)*PCONC(:,135)*PCONC(:,148)+TPK%KR37(:)*PCONC(& -&:,135)*PCONC(:,149)+TPK%KR38(:)*PCONC(:,135)*PCONC(:,150)+0.11*TPK%KR41(:)*PCO& -&NC(:,135)*PCONC(:,152)+TPK%KR42(:)*PCONC(:,135)*PCONC(:,155)+0.81*TPK%KR43(:)*& -&PCONC(:,135)*PCONC(:,154)+TPK%KR44(:)*PCONC(:,135)*PCONC(:,153)+0.71*TPK%KR45(& -&:)*PCONC(:,135)*PCONC(:,153) -!PLOSS(WR_HO2) = +KTR43+KR3*<WR_OH>+KR5*<WR_HO2>+KR5*<WR_HO2>+KR6*<WR_O3>+KR9*< -!WR_NO2>+KR21*<WR_ASO5> - PLOSS(:,136) = +TPK%KTR43(:)+TPK%KR3(:)*PCONC(:,135)+TPK%KR5(:)*PCONC(:,136)+T& -&PK%KR5(:)*PCONC(:,136)+TPK%KR6(:)*PCONC(:,125)+TPK%KR9(:)*PCONC(:,128)+TPK%KR2& -&1(:)*PCONC(:,159) -! -!PPROD(WR_CO2) = +KTR13*<CO2>+KR34*<WR_OH>*<WR_ALD2>+KR37*<WR_OH>*<WR_KETL>+KR3 -!8*<WR_OH>*<WR_ORA1>+KR40*<WR_OH>*<WR_ACID>+2*KR42*<WR_OH>*<WR_UR28>+0.43*KR43* -!<WR_OH>*<WR_UR21>+2*KR45*<WR_OH>*<WR_RP16> - PPROD(:,137) = +TPK%KTR13(:)*TPK%CO2(:)+TPK%KR34(:)*PCONC(:,135)*PCONC(:,146)+& -&TPK%KR37(:)*PCONC(:,135)*PCONC(:,149)+TPK%KR38(:)*PCONC(:,135)*PCONC(:,150)+TP& -&K%KR40(:)*PCONC(:,135)*PCONC(:,152)+2*TPK%KR42(:)*PCONC(:,135)*PCONC(:,155)+0.& -&43*TPK%KR43(:)*PCONC(:,135)*PCONC(:,154)+2*TPK%KR45(:)*PCONC(:,135)*PCONC(:,15& -&3) -!PLOSS(WR_CO2) = +KTR44 - PLOSS(:,137) = +TPK%KTR44(:) -! -!PPROD(WR_SO2) = +KTR14*<SO2>+KR18*<WR_AHMS>+KR19*<WR_OH>*<WR_AHMS> - PPROD(:,138) = +TPK%KTR14(:)*PCONC(:,13)+TPK%KR18(:)*PCONC(:,161)+TPK%KR19(:)*& -&PCONC(:,135)*PCONC(:,161) -!PLOSS(WR_SO2) = +KTR45+KR7*<WR_OH>+KR12*<WR_HNO4>+KR16*<WR_NO3>+KR17*<WR_HCHO> -!+KR23*<WR_AHSO5>+KR25*<WR_O3>+KR26*<WR_H2O2>+KR28*<WR_RO21> - PLOSS(:,138) = +TPK%KTR45(:)+TPK%KR7(:)*PCONC(:,135)+TPK%KR12(:)*PCONC(:,133)+& -&TPK%KR16(:)*PCONC(:,129)+TPK%KR17(:)*PCONC(:,145)+TPK%KR23(:)*PCONC(:,160)+TPK& -&%KR25(:)*PCONC(:,125)+TPK%KR26(:)*PCONC(:,126)+TPK%KR28(:)*PCONC(:,140) -! -!PPROD(WR_H2SO4) = +KTR15*<H2SO4>+KR12*<WR_SO2>*<WR_HNO4>+2.00*KR23*<WR_SO2>*<W -!R_AHSO5>+KR24*<WR_ASO4>+KR25*<WR_O3>*<WR_SO2>+KR26*<WR_H2O2>*<WR_SO2> - PPROD(:,139) = +TPK%KTR15(:)*PCONC(:,14)+TPK%KR12(:)*PCONC(:,138)*PCONC(:,133)& -&+2.00*TPK%KR23(:)*PCONC(:,138)*PCONC(:,160)+TPK%KR24(:)*PCONC(:,158)+TPK%KR25(& -&:)*PCONC(:,125)*PCONC(:,138)+TPK%KR26(:)*PCONC(:,126)*PCONC(:,138) -!PLOSS(WR_H2SO4) = +KTR46+KR15*<WR_NO3> - PLOSS(:,139) = +TPK%KTR46(:)+TPK%KR15(:)*PCONC(:,129) -! -!PPROD(WR_RO21) = +KTR16*<RO21>+0.50*KR34*<WR_OH>*<WR_ALD2>+KR37*<WR_OH>*<WR_KE -!TL> - PPROD(:,140) = +TPK%KTR16(:)*PCONC(:,86)+0.50*TPK%KR34(:)*PCONC(:,135)*PCONC(:& -&,146)+TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) -!PLOSS(WR_RO21) = +KTR47+KR27*<WR_RO21>+KR27*<WR_RO21>+KR28*<WR_SO2> - PLOSS(:,140) = +TPK%KTR47(:)+TPK%KR27(:)*PCONC(:,140)+TPK%KR27(:)*PCONC(:,140)& -&+TPK%KR28(:)*PCONC(:,138) +!PPROD(ORA1) = +0.00878*K058*<ALKA>*<OH>+0.15343*K079*<ALKE>*<O3>+0.15000*K080* +!<BIO>*<O3>+0.10788*K081*<CARBO>*<O3>+0.11*K082*<PAN>*<O3> + PPROD(:,30) = +0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0.15343*TPK%K079(:)& +&*PCONC(:,19)*PCONC(:,1)+0.15000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.10788*TPK& +&%K081(:)*PCONC(:,25)*PCONC(:,1)+0.11*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) +!PLOSS(ORA1) = +K066*<OH> + PLOSS(:,30) = +TPK%K066(:)*PCONC(:,14) ! RETURN -END SUBROUTINE SUB13 -! -SUBROUTINE SUB14 -! -!Indices 141 a 150 -! -! -!PPROD(WR_RO25) = +KTR17*<RO25>+0.50*KR34*<WR_OH>*<WR_ALD2>+KR40*<WR_OH>*<WR_AC -!ID> - PPROD(:,141) = +TPK%KTR17(:)*PCONC(:,87)+0.50*TPK%KR34(:)*PCONC(:,135)*PCONC(:& -&,146)+TPK%KR40(:)*PCONC(:,135)*PCONC(:,152) -!PLOSS(WR_RO25) = +KTR48+KR29*<WR_RO25>+KR29*<WR_RO25> - PLOSS(:,141) = +TPK%KTR48(:)+TPK%KR29(:)*PCONC(:,141)+TPK%KR29(:)*PCONC(:,141) -! -!PPROD(WR_MEOH) = +KTR18*<MEOH> - PPROD(:,142) = +TPK%KTR18(:)*PCONC(:,32) -!PLOSS(WR_MEOH) = +KTR49+KR30*<WR_OH> - PLOSS(:,142) = +TPK%KTR49(:)+TPK%KR30(:)*PCONC(:,135) -! -!PPROD(WR_ETOH) = +KTR19*<ETOH> - PPROD(:,143) = +TPK%KTR19(:)*PCONC(:,33) -!PLOSS(WR_ETOH) = +KTR50+KR31*<WR_OH> - PLOSS(:,143) = +TPK%KTR50(:)+TPK%KR31(:)*PCONC(:,135) -! -!PPROD(WR_ALCH) = +KTR20*<ALCH> - PPROD(:,144) = +TPK%KTR20(:)*PCONC(:,34) -!PLOSS(WR_ALCH) = +KTR51+KR32*<WR_OH> - PLOSS(:,144) = +TPK%KTR51(:)+TPK%KR32(:)*PCONC(:,135) -! -!PPROD(WR_HCHO) = +KTR21*<HCHO>+KR18*<WR_AHMS>+2.00*KR27*<WR_RO21>*<WR_RO21>+KR -!28*<WR_SO2>*<WR_RO21>+KR30*<WR_OH>*<WR_MEOH>+KR37*<WR_OH>*<WR_KETL> - PPROD(:,145) = +TPK%KTR21(:)*PCONC(:,28)+TPK%KR18(:)*PCONC(:,161)+2.00*TPK%KR2& -&7(:)*PCONC(:,140)*PCONC(:,140)+TPK%KR28(:)*PCONC(:,138)*PCONC(:,140)+TPK%KR30(& -&:)*PCONC(:,135)*PCONC(:,142)+TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) -!PLOSS(WR_HCHO) = +KTR52+KR17*<WR_SO2>+KR33*<WR_OH> - PLOSS(:,145) = +TPK%KTR52(:)+TPK%KR17(:)*PCONC(:,138)+TPK%KR33(:)*PCONC(:,135) -! -!PPROD(WR_ALD2) = +KTR22*<ALD2>+KR29*<WR_RO25>*<WR_RO25>+KR31*<WR_OH>*<WR_ETOH> -!+0.50*KR32*<WR_OH>*<WR_ALCH>+KR37*<WR_OH>*<WR_KETL>+0.29*KR41*<WR_OH>*<WR_ACID -!>+0.43*KR43*<WR_OH>*<WR_UR21> - PPROD(:,146) = +TPK%KTR22(:)*PCONC(:,29)+TPK%KR29(:)*PCONC(:,141)*PCONC(:,141)& -&+TPK%KR31(:)*PCONC(:,135)*PCONC(:,143)+0.50*TPK%KR32(:)*PCONC(:,135)*PCONC(:,1& -&44)+TPK%KR37(:)*PCONC(:,135)*PCONC(:,149)+0.29*TPK%KR41(:)*PCONC(:,135)*PCONC(& -&:,152)+0.43*TPK%KR43(:)*PCONC(:,135)*PCONC(:,154) -!PLOSS(WR_ALD2) = +KTR53+KR34*<WR_OH> - PLOSS(:,146) = +TPK%KTR53(:)+TPK%KR34(:)*PCONC(:,135) -! -!PPROD(WR_GLY) = +KTR23*<GLY> - PPROD(:,147) = +TPK%KTR23(:)*PCONC(:,42) -!PLOSS(WR_GLY) = +KTR54+KR35*<WR_OH> - PLOSS(:,147) = +TPK%KTR54(:)+TPK%KR35(:)*PCONC(:,135) -! -!PPROD(WR_MGLY) = +KTR25*<MGLY>+KR37*<WR_OH>*<WR_KETL> - PPROD(:,148) = +TPK%KTR25(:)*PCONC(:,41)+TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) -!PLOSS(WR_MGLY) = +KTR56+KR36*<WR_OH> - PLOSS(:,148) = +TPK%KTR56(:)+TPK%KR36(:)*PCONC(:,135) -! -!PPROD(WR_KETL) = +KTR24*<KETL>+0.50*KR32*<WR_OH>*<WR_ALCH>+KR37*<WR_OH>*<WR_KE -!TL> - PPROD(:,149) = +TPK%KTR24(:)*PCONC(:,30)+0.50*TPK%KR32(:)*PCONC(:,135)*PCONC(:& -&,144)+TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) -!PLOSS(WR_KETL) = +KTR55+KR37*<WR_OH> - PLOSS(:,149) = +TPK%KTR55(:)+TPK%KR37(:)*PCONC(:,135) -! -!PPROD(WR_ORA1) = +KTR26*<ORA1>+KR19*<WR_OH>*<WR_AHMS>+KR33*<WR_OH>*<WR_HCHO> - PPROD(:,150) = +TPK%KTR26(:)*PCONC(:,43)+TPK%KR19(:)*PCONC(:,135)*PCONC(:,161)& -&+TPK%KR33(:)*PCONC(:,135)*PCONC(:,145) -!PLOSS(WR_ORA1) = +KTR57+KR38*<WR_OH> - PLOSS(:,150) = +TPK%KTR57(:)+TPK%KR38(:)*PCONC(:,135) +END SUBROUTINE SUB2 ! -RETURN -END SUBROUTINE SUB14 -! -SUBROUTINE SUB15 -! -!Indices 151 a 160 -! -! -!PPROD(WR_ORA2) = +KTR27*<ORA2>+KR29*<WR_RO25>*<WR_RO25> - PPROD(:,151) = +TPK%KTR27(:)*PCONC(:,44)+TPK%KR29(:)*PCONC(:,141)*PCONC(:,141) -!PLOSS(WR_ORA2) = +KTR58+KR39*<WR_OH> - PLOSS(:,151) = +TPK%KTR58(:)+TPK%KR39(:)*PCONC(:,135) -! -!PPROD(WR_ACID) = +KTR28*<ACID> - PPROD(:,152) = +TPK%KTR28(:)*PCONC(:,45) -!PLOSS(WR_ACID) = +KTR59+KR40*<WR_OH>+KR41*<WR_OH> - PLOSS(:,152) = +TPK%KTR59(:)+TPK%KR40(:)*PCONC(:,135)+TPK%KR41(:)*PCONC(:,135) -! -!PPROD(WR_RP16) = +KTR29*<RP16>+KR35*<WR_OH>*<WR_GLY>+KR39*<WR_OH>*<WR_ORA2> - PPROD(:,153) = +TPK%KTR29(:)*PCONC(:,74)+TPK%KR35(:)*PCONC(:,135)*PCONC(:,147)& -&+TPK%KR39(:)*PCONC(:,135)*PCONC(:,151) -!PLOSS(WR_RP16) = +KTR60+KR44*<WR_OH>+KR45*<WR_OH> - PLOSS(:,153) = +TPK%KTR60(:)+TPK%KR44(:)*PCONC(:,135)+TPK%KR45(:)*PCONC(:,135) -! -!PPROD(WR_UR21) = +KTR30*<UR21>+KR36*<WR_OH>*<WR_MGLY>+KR37*<WR_OH>*<WR_KETL>+0 -!.56*KR41*<WR_OH>*<WR_ACID> - PPROD(:,154) = +TPK%KTR30(:)*PCONC(:,47)+TPK%KR36(:)*PCONC(:,135)*PCONC(:,148)& -&+TPK%KR37(:)*PCONC(:,135)*PCONC(:,149)+0.56*TPK%KR41(:)*PCONC(:,135)*PCONC(:,1& -&52) -!PLOSS(WR_UR21) = +KTR61+KR43*<WR_OH> - PLOSS(:,154) = +TPK%KTR61(:)+TPK%KR43(:)*PCONC(:,135) -! -!PPROD(WR_UR28) = +KTR31*<UR28>+KR44*<WR_OH>*<WR_RP16> - PPROD(:,155) = +TPK%KTR31(:)*PCONC(:,46)+TPK%KR44(:)*PCONC(:,135)*PCONC(:,153) -!PLOSS(WR_UR28) = +KTR62+KR42*<WR_OH> - PLOSS(:,155) = +TPK%KTR62(:)+TPK%KR42(:)*PCONC(:,135) -! -!PPROD(WR_ACID2) = +0.15*KR41*<WR_OH>*<WR_ACID>+0.56*KR43*<WR_OH>*<WR_UR21> - PPROD(:,156) = +0.15*TPK%KR41(:)*PCONC(:,135)*PCONC(:,152)+0.56*TPK%KR43(:)*PC& -&ONC(:,135)*PCONC(:,154) -!PLOSS(WR_ACID2) = +KR46*<WR_OH> - PLOSS(:,156) = +TPK%KR46(:)*PCONC(:,135) -! -!PPROD(WR_ASO3) = +KR7*<WR_SO2>*<WR_OH>+KR16*<WR_SO2>*<WR_NO3>+KR28*<WR_SO2>*<W -!R_RO21> - PPROD(:,157) = +TPK%KR7(:)*PCONC(:,138)*PCONC(:,135)+TPK%KR16(:)*PCONC(:,138)*& -&PCONC(:,129)+TPK%KR28(:)*PCONC(:,138)*PCONC(:,140) -!PLOSS(WR_ASO3) = +KR20*<W_O2> - PLOSS(:,157) = +TPK%KR20(:)*TPK%W_O2(:) -! -!PPROD(WR_ASO4) = +KR15*<WR_H2SO4>*<WR_NO3>+KR22*<WR_ASO5>*<WR_ASO5>+KR22*<WR_A -!SO5>*<WR_ASO5> - PPROD(:,158) = +TPK%KR15(:)*PCONC(:,139)*PCONC(:,129)+TPK%KR22(:)*PCONC(:,159)& -&*PCONC(:,159)+TPK%KR22(:)*PCONC(:,159)*PCONC(:,159) -!PLOSS(WR_ASO4) = +KR24 - PLOSS(:,158) = +TPK%KR24(:) -! -!PPROD(WR_ASO5) = +KR20*<W_O2>*<WR_ASO3> - PPROD(:,159) = +TPK%KR20(:)*TPK%W_O2(:)*PCONC(:,157) -!PLOSS(WR_ASO5) = +KR21*<WR_HO2>+KR22*<WR_ASO5>+KR22*<WR_ASO5> - PLOSS(:,159) = +TPK%KR21(:)*PCONC(:,136)+TPK%KR22(:)*PCONC(:,159)+TPK%KR22(:)*& -&PCONC(:,159) -! -!PPROD(WR_AHSO5) = +KR21*<WR_HO2>*<WR_ASO5> - PPROD(:,160) = +TPK%KR21(:)*PCONC(:,136)*PCONC(:,159) -!PLOSS(WR_AHSO5) = +KR23*<WR_SO2> - PLOSS(:,160) = +TPK%KR23(:)*PCONC(:,138) +SUBROUTINE SUB3 +! +!Indices 31 a 40 ! -RETURN -END SUBROUTINE SUB15 ! -SUBROUTINE SUB16 +!PPROD(ORA2) = +0.08143*K079*<ALKE>*<O3>+0.00000*K080*<BIO>*<O3>+0.20595*K081*< +!CARBO>*<O3>+0.17307*K0102*<CARBOP>*<HO2>+0.13684*K109*<CARBOP>*<MO2>+0.49810*K +!111*<ALKAP>*<CARBOP>+0.49922*K112*<ALKEP>*<CARBOP>+0.49400*K113*<BIOP>*<CARBOP +!>+0.09955*K115*<CARBOP>*<CARBOP>+0.48963*K116*<OLN>*<CARBOP> + PPROD(:,31) = +0.08143*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.00000*TPK%K080(:)*& +&PCONC(:,20)*PCONC(:,1)+0.20595*TPK%K081(:)*PCONC(:,25)*PCONC(:,1)+0.17307*TPK%& +&K0102(:)*PCONC(:,39)*PCONC(:,15)+0.13684*TPK%K109(:)*PCONC(:,39)*PCONC(:,32)+0& +&.49810*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.49922*TPK%K112(:)*PCONC(:,34)*PCO& +&NC(:,39)+0.49400*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+0.09955*TPK%K115(:)*PCONC& +&(:,39)*PCONC(:,39)+0.48963*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) +!PLOSS(ORA2) = +K067*<OH> + PLOSS(:,31) = +TPK%K067(:)*PCONC(:,14) +! +!PPROD(MO2) = +K012*<ALD>+0.03795*K014*<OP2>+K056*<CH4>*<OH>+0.65*K068*<OP1>*<O +!H>+0.13966*K079*<ALKE>*<O3>+0.03000*K080*<BIO>*<O3>+0.09016*K091*<ALKAP>*<NO>+ +!0.78134*K095*<CARBOP>*<NO>+0.01390*K105*<ALKAP>*<MO2>+0.56031*K109*<CARBOP>*<M +!O2>+0.51480*K111*<ALKAP>*<CARBOP>+0.50078*K112*<ALKEP>*<CARBOP>+0.50600*K113*< +!BIOP>*<CARBOP>+K114*<AROP>*<CARBOP>+1.66702*K115*<CARBOP>*<CARBOP>+0.51037*K11 +!6*<OLN>*<CARBOP>+0.09731*K120*<ALKAP>*<NO3>+0.91910*K124*<CARBOP>*<NO3>+K128*< +!XO2>*<CARBOP> + PPROD(:,32) = +TPK%K012(:)*PCONC(:,23)+0.03795*TPK%K014(:)*PCONC(:,29)+TPK%K05& +&6(:)*PCONC(:,16)*PCONC(:,14)+0.65*TPK%K068(:)*PCONC(:,28)*PCONC(:,14)+0.13966*& +&TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.03000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+& +&0.09016*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.78134*TPK%K095(:)*PCONC(:,39)*PCO& +&NC(:,3)+0.01390*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.56031*TPK%K109(:)*PCONC(& +&:,39)*PCONC(:,32)+0.51480*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.50078*TPK%K112& +&(:)*PCONC(:,34)*PCONC(:,39)+0.50600*TPK%K113(:)*PCONC(:,35)*PCONC(:,39)+TPK%K1& +&14(:)*PCONC(:,38)*PCONC(:,39)+1.66702*TPK%K115(:)*PCONC(:,39)*PCONC(:,39)+0.51& +&037*TPK%K116(:)*PCONC(:,40)*PCONC(:,39)+0.09731*TPK%K120(:)*PCONC(:,33)*PCONC(& +&:,5)+0.91910*TPK%K124(:)*PCONC(:,39)*PCONC(:,5)+TPK%K128(:)*PCONC(:,41)*PCONC(& +&:,39) +!PLOSS(MO2) = +K090*<NO>+K097*<HO2>+K104*<MO2>+K104*<MO2>+K105*<ALKAP>+K106*<AL +!KEP>+K107*<BIOP>+K108*<AROP>+K109*<CARBOP>+K110*<OLN>+K119*<NO3>+K127*<XO2> + PLOSS(:,32) = +TPK%K090(:)*PCONC(:,3)+TPK%K097(:)*PCONC(:,15)+TPK%K104(:)*PCON& +&C(:,32)+TPK%K104(:)*PCONC(:,32)+TPK%K105(:)*PCONC(:,33)+TPK%K106(:)*PCONC(:,34& +&)+TPK%K107(:)*PCONC(:,35)+TPK%K108(:)*PCONC(:,38)+TPK%K109(:)*PCONC(:,39)+TPK%& +&K110(:)*PCONC(:,40)+TPK%K119(:)*PCONC(:,5)+TPK%K127(:)*PCONC(:,41) +! +!PPROD(ALKAP) = +1.00000*K015*<KET>+K057*<ETH>*<OH>+0.87811*K058*<ALKA>*<OH>+0. +!40341*K069*<OP2>*<OH>+1.00000*K071*<ONIT>*<OH>+0.09815*K079*<ALKE>*<O3>+0.0000 +!0*K080*<BIO>*<O3>+0.08187*K091*<ALKAP>*<NO>+0.00385*K105*<ALKAP>*<MO2>+0.00828 +!*K111*<ALKAP>*<CARBOP>+0.08994*K120*<ALKAP>*<NO3> + PPROD(:,33) = +1.00000*TPK%K015(:)*PCONC(:,24)+TPK%K057(:)*PCONC(:,17)*PCONC(:& +&,14)+0.87811*TPK%K058(:)*PCONC(:,18)*PCONC(:,14)+0.40341*TPK%K069(:)*PCONC(:,2& +&9)*PCONC(:,14)+1.00000*TPK%K071(:)*PCONC(:,26)*PCONC(:,14)+0.09815*TPK%K079(:)& +&*PCONC(:,19)*PCONC(:,1)+0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.08187*TPK& +&%K091(:)*PCONC(:,33)*PCONC(:,3)+0.00385*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.& +&00828*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.08994*TPK%K120(:)*PCONC(:,33)*PCON& +&C(:,5) +!PLOSS(ALKAP) = +K091*<NO>+K098*<HO2>+K105*<MO2>+K111*<CARBOP>+K120*<NO3> + PLOSS(:,33) = +TPK%K091(:)*PCONC(:,3)+TPK%K098(:)*PCONC(:,15)+TPK%K105(:)*PCON& +&C(:,32)+TPK%K111(:)*PCONC(:,39)+TPK%K120(:)*PCONC(:,5) +! +!PPROD(ALKEP) = +1.02529*K059*<ALKE>*<OH> + PPROD(:,34) = +1.02529*TPK%K059(:)*PCONC(:,19)*PCONC(:,14) +!PLOSS(ALKEP) = +K092*<NO>+K099*<HO2>+K106*<MO2>+K112*<CARBOP>+K121*<NO3> + PLOSS(:,34) = +TPK%K092(:)*PCONC(:,3)+TPK%K099(:)*PCONC(:,15)+TPK%K106(:)*PCON& +&C(:,32)+TPK%K112(:)*PCONC(:,39)+TPK%K121(:)*PCONC(:,5) +! +!PPROD(BIOP) = +0.00000*K059*<ALKE>*<OH>+1.00000*K060*<BIO>*<OH> + PPROD(:,35) = +0.00000*TPK%K059(:)*PCONC(:,19)*PCONC(:,14)+1.00000*TPK%K060(:)& +&*PCONC(:,20)*PCONC(:,14) +!PLOSS(BIOP) = +K093*<NO>+K0100*<HO2>+K107*<MO2>+K113*<CARBOP>+K122*<NO3> + PLOSS(:,35) = +TPK%K093(:)*PCONC(:,3)+TPK%K0100(:)*PCONC(:,15)+TPK%K107(:)*PCO& +&NC(:,32)+TPK%K113(:)*PCONC(:,39)+TPK%K122(:)*PCONC(:,5) +! +!PPROD(PHO) = +0.00276*K061*<ARO>*<OH>+K075*<ARO>*<NO3> + PPROD(:,36) = +0.00276*TPK%K061(:)*PCONC(:,21)*PCONC(:,14)+TPK%K075(:)*PCONC(:& +&,21)*PCONC(:,5) +!PLOSS(PHO) = +K083*<NO2>+K084*<HO2> + PLOSS(:,36) = +TPK%K083(:)*PCONC(:,4)+TPK%K084(:)*PCONC(:,15) +! +!PPROD(ADD) = +0.93968*K061*<ARO>*<OH> + PPROD(:,37) = +0.93968*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) +!PLOSS(ADD) = +K085*<NO2>+K086*<O2>+K087*<O3> + PLOSS(:,37) = +TPK%K085(:)*PCONC(:,4)+TPK%K086(:)*TPK%O2(:)+TPK%K087(:)*PCONC(& +&:,1) +! +!PPROD(AROP) = +0.98*K086*<ADD>*<O2> + PPROD(:,38) = +0.98*TPK%K086(:)*PCONC(:,37)*TPK%O2(:) +!PLOSS(AROP) = +K094*<NO>+K0101*<HO2>+K108*<MO2>+K114*<CARBOP>+K123*<NO3> + PLOSS(:,38) = +TPK%K094(:)*PCONC(:,3)+TPK%K0101(:)*PCONC(:,15)+TPK%K108(:)*PCO& +&NC(:,32)+TPK%K114(:)*PCONC(:,39)+TPK%K123(:)*PCONC(:,5) +! +!PPROD(CARBOP) = +1.00000*K015*<KET>+0.69622*K016*<CARBO>+1.00000*K063*<ALD>*<O +!H>+1.00000*K064*<KET>*<OH>+0.51419*K065*<CARBO>*<OH>+0.05413*K069*<OP2>*<OH>+1 +!.00000*K073*<ALD>*<NO3>+0.38881*K074*<CARBO>*<NO3>+0.05705*K079*<ALKE>*<O3>+0. +!17000*K080*<BIO>*<O3>+0.27460*K081*<CARBO>*<O3>+0.70000*K082*<PAN>*<O3>+1.0000 +!0*K089*<PAN>+0.09532*K095*<CARBOP>*<NO>+0.05954*K109*<CARBOP>*<MO2>+0.05821*K1 +!15*<CARBOP>*<CARBOP>+0.03175*K124*<CARBOP>*<NO3> + PPROD(:,39) = +1.00000*TPK%K015(:)*PCONC(:,24)+0.69622*TPK%K016(:)*PCONC(:,25)& +&+1.00000*TPK%K063(:)*PCONC(:,23)*PCONC(:,14)+1.00000*TPK%K064(:)*PCONC(:,24)*P& +&CONC(:,14)+0.51419*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.05413*TPK%K069(:)*PCO& +&NC(:,29)*PCONC(:,14)+1.00000*TPK%K073(:)*PCONC(:,23)*PCONC(:,5)+0.38881*TPK%K0& +&74(:)*PCONC(:,25)*PCONC(:,5)+0.05705*TPK%K079(:)*PCONC(:,19)*PCONC(:,1)+0.1700& +&0*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.27460*TPK%K081(:)*PCONC(:,25)*PCONC(:,1& +&)+0.70000*TPK%K082(:)*PCONC(:,27)*PCONC(:,1)+1.00000*TPK%K089(:)*PCONC(:,27)+0& +&.09532*TPK%K095(:)*PCONC(:,39)*PCONC(:,3)+0.05954*TPK%K109(:)*PCONC(:,39)*PCON& +&C(:,32)+0.05821*TPK%K115(:)*PCONC(:,39)*PCONC(:,39)+0.03175*TPK%K124(:)*PCONC(& +&:,39)*PCONC(:,5) +!PLOSS(CARBOP) = +K088*<NO2>+K095*<NO>+K0102*<HO2>+K109*<MO2>+K111*<ALKAP>+K112 +!*<ALKEP>+K113*<BIOP>+K114*<AROP>+K115*<CARBOP>+K115*<CARBOP>+K116*<OLN>+K124*< +!NO3>+K128*<XO2> + PLOSS(:,39) = +TPK%K088(:)*PCONC(:,4)+TPK%K095(:)*PCONC(:,3)+TPK%K0102(:)*PCON& +&C(:,15)+TPK%K109(:)*PCONC(:,32)+TPK%K111(:)*PCONC(:,33)+TPK%K112(:)*PCONC(:,34& +&)+TPK%K113(:)*PCONC(:,35)+TPK%K114(:)*PCONC(:,38)+TPK%K115(:)*PCONC(:,39)+TPK%& +&K115(:)*PCONC(:,39)+TPK%K116(:)*PCONC(:,40)+TPK%K124(:)*PCONC(:,5)+TPK%K128(:)& +&*PCONC(:,41) +! +!PPROD(OLN) = +0.00000*K074*<CARBO>*<NO3>+0.93768*K076*<ALKE>*<NO3>+1.00000*K07 +!7*<BIO>*<NO3> + PPROD(:,40) = +0.00000*TPK%K074(:)*PCONC(:,25)*PCONC(:,5)+0.93768*TPK%K076(:)*& +&PCONC(:,19)*PCONC(:,5)+1.00000*TPK%K077(:)*PCONC(:,20)*PCONC(:,5) +!PLOSS(OLN) = +K096*<NO>+K103*<HO2>+K110*<MO2>+K116*<CARBOP>+K117*<OLN>+K117*<O +!LN>+K118*<OLN>+K118*<OLN>+K125*<NO3> + PLOSS(:,40) = +TPK%K096(:)*PCONC(:,3)+TPK%K103(:)*PCONC(:,15)+TPK%K110(:)*PCON& +&C(:,32)+TPK%K116(:)*PCONC(:,39)+TPK%K117(:)*PCONC(:,40)+TPK%K117(:)*PCONC(:,40& +&)+TPK%K118(:)*PCONC(:,40)+TPK%K118(:)*PCONC(:,40)+TPK%K125(:)*PCONC(:,5) ! -!Indices 161 a 161 +RETURN +END SUBROUTINE SUB3 ! +SUBROUTINE SUB4 ! -!PPROD(WR_AHMS) = +KR17*<WR_HCHO>*<WR_SO2> - PPROD(:,161) = +TPK%KR17(:)*PCONC(:,145)*PCONC(:,138) -!PLOSS(WR_AHMS) = +KR18+KR19*<WR_OH> - PLOSS(:,161) = +TPK%KR18(:)+TPK%KR19(:)*PCONC(:,135) +!Indices 41 a 41 +! +! +!PPROD(XO2) = +0.15*K054*<BIO>*<O3P>+0.10318*K061*<ARO>*<OH>+0.10162*K065*<CARB +!O>*<OH>+0.09333*K069*<OP2>*<OH>+K070*<PAN>*<OH>+0.10530*K074*<CARBO>*<NO3>+K07 +!8*<PAN>*<NO3>+0.00000*K079*<ALKE>*<O3>+0.13000*K080*<BIO>*<O3>+0.13007*K091*<A +!LKAP>*<NO>+0.02563*K095*<CARBOP>*<NO>+0.13370*K105*<ALKAP>*<MO2>+0.02212*K109* +!<CARBOP>*<MO2>+0.11306*K111*<ALKAP>*<CARBOP>+0.01593*K115*<CARBOP>*<CARBOP>+0. +!16271*K120*<ALKAP>*<NO3>+0.01021*K124*<CARBOP>*<NO3> + PPROD(:,41) = +0.15*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:)+0.10318*TPK%K061(:)*PCO& +&NC(:,21)*PCONC(:,14)+0.10162*TPK%K065(:)*PCONC(:,25)*PCONC(:,14)+0.09333*TPK%K& +&069(:)*PCONC(:,29)*PCONC(:,14)+TPK%K070(:)*PCONC(:,27)*PCONC(:,14)+0.10530*TPK& +&%K074(:)*PCONC(:,25)*PCONC(:,5)+TPK%K078(:)*PCONC(:,27)*PCONC(:,5)+0.00000*TPK& +&%K079(:)*PCONC(:,19)*PCONC(:,1)+0.13000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1)+0.1& +&3007*TPK%K091(:)*PCONC(:,33)*PCONC(:,3)+0.02563*TPK%K095(:)*PCONC(:,39)*PCONC(& +&:,3)+0.13370*TPK%K105(:)*PCONC(:,33)*PCONC(:,32)+0.02212*TPK%K109(:)*PCONC(:,3& +&9)*PCONC(:,32)+0.11306*TPK%K111(:)*PCONC(:,33)*PCONC(:,39)+0.01593*TPK%K115(:)& +&*PCONC(:,39)*PCONC(:,39)+0.16271*TPK%K120(:)*PCONC(:,33)*PCONC(:,5)+0.01021*TP& +&K%K124(:)*PCONC(:,39)*PCONC(:,5) +!PLOSS(XO2) = +K126*<HO2>+K127*<MO2>+K128*<CARBOP>+K129*<XO2>+K129*<XO2>+K130*< +!NO>+K131*<NO3> + PLOSS(:,41) = +TPK%K126(:)*PCONC(:,15)+TPK%K127(:)*PCONC(:,32)+TPK%K128(:)*PCO& +&NC(:,39)+TPK%K129(:)*PCONC(:,41)+TPK%K129(:)*PCONC(:,41)+TPK%K130(:)*PCONC(:,3& +&)+TPK%K131(:)*PCONC(:,5) ! RETURN -END SUBROUTINE SUB16 +END SUBROUTINE SUB4 ! -END SUBROUTINE CH_PRODLOSS_AQ +END SUBROUTINE CH_PRODLOSS_GAZ ! ! !======================================================================== @@ -11635,10 +5935,10 @@ END SUBROUTINE CH_JAC !======================================================================== ! !! ################## - MODULE MODI_CH_JAC_GAZ + MODULE MODI_CH_JAC_AQ !! ################## INTERFACE -SUBROUTINE CH_JAC_GAZ(PTIME,PCONC,PJAC,KMI,KVECNPT,KEQ) +SUBROUTINE CH_JAC_AQ(PTIME,PCONC,PJAC,KMI,KVECNPT,KEQ) IMPLICIT NONE REAL, INTENT(IN) :: PTIME INTEGER, INTENT(IN) :: KVECNPT @@ -11646,14 +5946,14 @@ INTEGER, INTENT(IN) :: KEQ REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KEQ) :: PJAC INTEGER, INTENT(IN) :: KMI -END SUBROUTINE CH_JAC_GAZ +END SUBROUTINE CH_JAC_AQ END INTERFACE -END MODULE MODI_CH_JAC_GAZ +END MODULE MODI_CH_JAC_AQ ! !======================================================================== ! !! #################### - SUBROUTINE CH_JAC_GAZ(PTIME,PCONC,PJAC,KMI,KVECNPT,KEQ) + SUBROUTINE CH_JAC_AQ(PTIME,PCONC,PJAC,KMI,KVECNPT,KEQ) !! #################### !! This code has been created automatically by preprocessor m10, !! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. @@ -11709,317 +6009,15 @@ TYPE(CCSTYPE), POINTER :: TPK TPK=>TACCS(KMI) ! ! /BEGIN_CODE/ -TPK%OSD = ( +TPK%K016*PCONC(:,JP_O3) ) / & - ( +TPK%K017*TPK%H2O+TPK%K018A*TPK%N2(:)+TPK%K018B*TPK%O2(:) ) -! -TPK%O = ( +TPK%K001*PCONC(:,JP_NO2)+TPK%K014*PCONC(:,JP_NO3)+TPK%& -&K015*PCONC(:,JP_O3)+TPK%K018A*TPK%OSD*TPK%N2(:)+TPK%K018B*TPK%OSD*TPK%O2(:) ) / & -( +TPK%K002*TPK%O2(:)+TPK%K003*PCONC(:,JP_NO2)+TPK%K004*PCONC(:,JP_NO2)+TPK%K034*& -PCONC(:,JP_O3)+TPK%K038*PCONC(:,JP_NO)+TPK%K052*PCONC(:,JP_ETHE)+& -&TPK%K057*PCONC(:,JP_OLEL)+TPK%K067*PCONC(:,JP_ISOP)+TPK%K077*PCONC(:,& -&JP_OLEH)+TPK%K087*PCONC(:,JP_BIOL)+TPK%K091*PCONC(:,JP_BIOH)+TPK%K283& -&*PCONC(:,JP_MVK)+TPK%K284*PCONC(:,JP_MCR) ) -! -TPK%RO225 = ( TPK%K085*PCONC(:,JP_BIOL)*PCONC(:,JP_NO3) ) / & -( +TPK%K201*PCONC(:,JP_NO)+TPK%K202*PCONC(:,JP_RO2T)+TPK%K203*PCONC(:,JP_HO2)) -! -TPK%RO228 = ( TPK%K089*PCONC(:,JP_BIOH)*PCONC(:,JP_NO3) ) / & -( +TPK%K210*PCONC(:,JP_NO)+TPK%K211*PCONC(:,JP_RO2T)+TPK%K212*PCONC(:,JP_HO2)) - -! -TPK%RO253 = ( +0.41*TPK%K282*PCONC(:,JP_MCR)*PCONC(:,JP_O3) ) / & -( +TPK%K297*PCONC(:,JP_NO)+TPK%K298*PCONC(:,JP_HO2)+TPK%K299*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO254 = ( +TPK%K140*PCONC(:,JP_PAN6)+TPK%K297*TPK%RO253*& -&PCONC(:,JP_NO)+TPK%K298*TPK%RO253*PCONC(:,JP_HO2)+TPK%K299*& -&TPK%RO253*PCONC(:,JP_RO2T) ) / & -( +TPK%K131*PCONC(:,JP_NO2)+TPK%K300*PCONC(:,JP_NO)+TPK%K301*PCONC(& -&:,JP_HO2)+TPK%K302*PCONC(:,JP_RO2T) ) -! -TPK%RO213 = ( +0.271*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3) ) / & -( +TPK%K162*PCONC(:,JP_NO)+TPK%K163*PCONC(:,JP_RO2T)+TPK%K164*PCONC& -&(:,JP_HO2) ) -! -TPK%RO239 = ( +TPK%K137*PCONC(:,JP_PAN3)+TPK%K162*TPK%RO213*& -&PCONC(:,JP_NO)+TPK%K163*TPK%RO213*PCONC(:,JP_RO2T)+TPK%K164*TPK%RO213*PCONC(:,JP_HO2) ) / & -( +TPK%K128*PCONC(:,JP_NO2)+TPK%K165*PCONC(:,JP_NO)+TPK%K166*PCONC(& -&:,JP_HO2)+TPK%K167*PCONC(:,JP_RO2T) ) -! -TPK%RO248 = ( +TPK%K141*PCONC(:,JP_PAN4)+TPK%K274*PCONC(:,JP_MGLY)*P& -&CONC(:,JP_OH)+TPK%K278*PCONC(:,JP_MGLY)*PCONC(:,JP_NO3) ) / & -( +TPK%K129*PCONC(:,JP_NO2)+TPK%K277*PCONC(:,JP_NO)+TPK%K279*PCONC(& -&:,JP_HO2)+TPK%K280*PCONC(:,JP_RO2T) ) -! -TPK%RO249 = ( +TPK%K272*PCONC(:,JP_MVK)*PCONC(:,JP_OH) ) / & -( +TPK%K285*PCONC(:,JP_NO)+TPK%K286*PCONC(:,JP_RO2T)+TPK%K287*PCONC& -&(:,JP_HO2) ) -! -TPK%RO250 = ( +0.3750353*TPK%K139*PCONC(:,JP_APAN)+TPK%CF46*TPK%K2& -&73*PCONC(:,JP_MCR)*PCONC(:,JP_OH)+TPK%CF46*TPK%K275*PCONC(:,JP_MCR)*PCONC& -&(:,JP_NO3) ) / & -( +TPK%K130*PCONC(:,JP_NO2)+TPK%K288*PCONC(:,JP_NO)+TPK%K289*PCONC(& -&:,JP_HO2)+TPK%K290*PCONC(:,JP_RO2T) ) -! -TPK%RO214 = ( +0.095*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3)+TPK%K1& -&65*TPK%RO239*PCONC(:,JP_NO)+TPK%K167*TPK%RO239*PCONC(:,JP_R& -&O2T)+TPK%K288*TPK%RO250*PCONC(:,JP_NO)+TPK%K290*TPK%RO250& -&*PCONC(:,JP_RO2T) ) / & -( +TPK%K168*PCONC(:,JP_NO)+TPK%K169*PCONC(:,JP_RO2T)+TPK%K170*PCONC& -&(:,JP_HO2) ) -! -TPK%RO251 = ( +TPK%CF47*TPK%K273*PCONC(:,JP_MCR)*PCONC(:,JP_OH) ) / & -( +TPK%K291*PCONC(:,JP_NO)+TPK%K292*PCONC(:,JP_HO2)+TPK%K293*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO252 = ( +TPK%CF47*TPK%K275*PCONC(:,JP_MCR)*PCONC(:,JP_NO3) ) /& -( +TPK%K294*PCONC(:,JP_NO)+TPK%K295*PCONC(:,JP_HO2)+TPK%K296*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO258 = ( +TPK%K138*PCONC(:,JP_PN10)+TPK%K305*PCONC(:,JP_RP16)*P& -&CONC(:,JP_OH)+TPK%K338*PCONC(:,JP_RP16)*PCONC(:,JP_NO3) ) / & -( +TPK%K134*PCONC(:,JP_NO2)+TPK%K340*PCONC(:,JP_NO)+TPK%K341*PCONC(& -&:,JP_HO2)+TPK%K342*PCONC(:,JP_RO2T) ) -! -TPK%RO255 = ( +TPK%K304*PCONC(:,JP_RPR1)*PCONC(:,JP_OH)+TPK%K307*PCO& -&NC(:,JP_RPR1)*PCONC(:,JP_NO3)+TPK%K343*PCONC(:,JP_PAN7) ) / & -( +TPK%K132*PCONC(:,JP_NO2)+TPK%K309*PCONC(:,JP_NO)+TPK%K310*PCONC(& -&:,JP_HO2)+TPK%K311*PCONC(:,JP_RO2T) ) -! -TPK%RO256 = ( +TPK%K312*PCONC(:,JP_RPR3)*PCONC(:,JP_OH)+TPK%K313*PCO& -&NC(:,JP_RPR3)*PCONC(:,JP_NO3)+TPK%K317*PCONC(:,JP_PAN8) ) / & -( +TPK%K315*PCONC(:,JP_NO)+TPK%K316*PCONC(:,JP_NO2)+TPK%K318*PCONC(& -&:,JP_HO2)+TPK%K319*PCONC(:,JP_RO2T) ) -! -TPK%RO257 = ( +0.6249651*TPK%K139*PCONC(:,JP_APAN)+TPK%K324*PCONC(:,& -&JP_RPR8)*PCONC(:,JP_OH)+TPK%K327*PCONC(:,JP_RPR8)*PCONC(:,JP_NO3)+TPK%K3& -&30*PCONC(:,JP_RPR8) ) / & -( +TPK%K133*PCONC(:,JP_NO2)+TPK%K331*PCONC(:,JP_NO)+TPK%K332*PCONC(& -&:,JP_HO2)+TPK%K333*PCONC(:,JP_RO2T) ) -! -TPK%RO29 = ( +0.66*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH)+TPK%K329& -&*PCONC(:,JP_RPR8)+TPK%K331*TPK%RO257*PCONC(:,JP_NO)+TPK%K333*TPK%RO257*& -PCONC(:,JP_RO2T) ) / & -( +TPK%K150*PCONC(:,JP_NO)+TPK%K151*PCONC(:,JP_RO2T)+TPK%K152*PCONC& -&(:,JP_HO2) ) -! -!avoid division by zero in prodloss -WHERE (PCONC(:,JP_NO2)>0.) - TPK%RAD1 = ( +TPK%K072*PCONC(:,JP_AROO)*PCONC(:,JP_NO3) ) / & - ( +TPK%K103*PCONC(:,JP_NO2) ) -! - TPK%RAD8 = ( +TPK%K320*PCONC(:,JP_RPR4)*PCONC(:,JP_NO3) ) / & - ( +TPK%K321*PCONC(:,JP_NO2) ) -ELSEWHERE - TPK%RAD1 = 0. - TPK%RAD8 = 0. -ENDWHERE -! -TPK%RAD2 = ( +0.74*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & -( +TPK%K097+TPK%K104*PCONC(:,JP_NO2) ) -! -TPK%RAD3 = ( +0.74*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & -( +TPK%K098+TPK%K105*PCONC(:,JP_NO2) ) -! -TPK%RAD4 = ( +0.84*TPK%K080*PCONC(:,JP_AROH)*PCONC(:,JP_OH) ) / & -( +TPK%K099+TPK%K106*PCONC(:,JP_NO2) ) -! -TPK%RAD5 = ( +TPK%CF40*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) / & -( +TPK%K100+TPK%K107*PCONC(:,JP_NO2) ) -! -TPK%RAD6 = ( +0.74*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & -( +TPK%K101+TPK%K108*PCONC(:,JP_NO2) ) -! -TPK%RAD7 = ( +0.74*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & -( +TPK%K102+TPK%K109*PCONC(:,JP_NO2) ) -! -TPK%RO22 = ( +TPK%K049*PCONC(:,JP_ETHE)*PCONC(:,JP_OH)+TPK%CF2*TPK& -&%K053*PCONC(:,JP_ETOH)*PCONC(:,JP_OH)+TPK%K054*PCONC(:,JP_OLEL)*PCONC(:,JP_& -&OH)+TPK%K069*PCONC(:,JP_ALCH)*PCONC(:,JP_OH) ) / & -( +TPK%K113*PCONC(:,JP_NO)+TPK%K114*PCONC(:,JP_RO2T)+TPK%K115*PCONC& -&(:,JP_HO2) ) -! -TPK%RO23 = ( +TPK%K050*PCONC(:,JP_ETHE)*PCONC(:,JP_NO3)+TPK%K055*PCO& -&NC(:,JP_OLEL)*PCONC(:,JP_NO3) ) / & -( +TPK%K116*PCONC(:,JP_NO)+TPK%K117*PCONC(:,JP_RO2T)+TPK%K118*PCONC& -&(:,JP_HO2) ) -! -TPK%RO24 = ( +0.4*TPK%K052*PCONC(:,JP_ETHE)*TPK%O+0.1*TPK%K0& -&57*PCONC(:,JP_OLEL)*TPK%O+0.1*TPK%K077*PCONC(:,JP_OLEH)*& -&TPK%O+0.15*TPK%K283*PCONC(:,JP_MVK)*TPK%O ) / & -( +TPK%K119*PCONC(:,JP_NO)+TPK%K120*PCONC(:,JP_RO2T)+TPK%K121*PCONC& -&(:,JP_HO2) ) -! -TPK%RO26 = ( +TPK%K060*PCONC(:,JP_ALD2)*PCONC(:,JP_OH)+TPK%K061*PCON& -&C(:,JP_ALD2)*PCONC(:,JP_NO3)+TPK%K135*PCONC(:,JP_PAN1) ) / & -( +TPK%K125*PCONC(:,JP_NO)+TPK%K126*PCONC(:,JP_NO2)+TPK%K142*PCONC(& -&:,JP_HO2)+TPK%K143*PCONC(:,JP_RO2T) ) -! -TPK%RO27 = ( +TPK%K062*PCONC(:,JP_KETL)*PCONC(:,JP_OH)+TPK%CF8*TPK& -&%K168*TPK%RO214*PCONC(:,JP_NO)+TPK%K169*TPK%RO214*PCONC(:,J& -&P_RO2T)+TPK%K170*TPK%RO214*PCONC(:,JP_HO2)+0.15*TPK%K284*PCONC(:& -&,JP_MCR)*TPK%O ) / & -( +TPK%K144*PCONC(:,JP_NO)+TPK%K145*PCONC(:,JP_RO2T)+TPK%K146*PCONC& -&(:,JP_HO2) ) -! -TPK%RO210 = ( +0.34*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH) ) / & -( +TPK%K153*PCONC(:,JP_NO)+TPK%K154*PCONC(:,JP_RO2T)+TPK%K155*PCONC& -&(:,JP_HO2) ) -! -TPK%RO211 = ( +0.66*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & -( +TPK%K156*PCONC(:,JP_NO)+TPK%K157*PCONC(:,JP_RO2T)+TPK%K158*PCONC& -&(:,JP_HO2) ) -! -TPK%RO212 = ( +0.34*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & -( +TPK%K159*PCONC(:,JP_NO)+TPK%K160*PCONC(:,JP_RO2T)+TPK%K161*PCONC& -&(:,JP_HO2) ) -! -TPK%RO215 = ( +TPK%K068*PCONC(:,JP_MTBE)*PCONC(:,JP_OH) ) / & -( +TPK%K171*PCONC(:,JP_NO)+TPK%K172*PCONC(:,JP_RO2T)+TPK%K173*PCONC& -&(:,JP_HO2) ) -! -TPK%RO216 = ( +TPK%K070*PCONC(:,JP_KETH)*PCONC(:,JP_OH) ) / & -( +TPK%K174*PCONC(:,JP_NO)+TPK%K175*PCONC(:,JP_RO2T)+TPK%K176*PCONC& -&(:,JP_HO2) ) -! -TPK%RO217 = ( +0.1*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & -( +TPK%K177*PCONC(:,JP_NO)+TPK%K178*PCONC(:,JP_RO2T)+TPK%K179*PCONC& -&(:,JP_HO2) ) -! -TPK%RO220 = ( +0.28*TPK%K076*PCONC(:,JP_OLEH)*PCONC(:,JP_O3)+0.1*TPK& -&%K077*PCONC(:,JP_OLEH)*TPK%O+TPK%K078*PCONC(:,JP_ALKM)*PCONC(:,JP_O& -&H)+TPK%K308*PCONC(:,JP_RPR1)+TPK%K309*TPK%RO255*PCONC(:,JP_NO)+T& -&PK%K311*TPK%RO255*PCONC(:,JP_RO2T) ) / & -( +TPK%K186*PCONC(:,JP_NO)+TPK%K187*PCONC(:,JP_RO2T)+TPK%K188*PCONC& -&(:,JP_HO2) ) -! -TPK%RO218 = ( +TPK%K074*PCONC(:,JP_OLEH)*PCONC(:,JP_OH)+TPK%CF18*TPK%K186*& -TPK%RO220*PCONC(:,JP_NO)+TPK%K187*TPK%RO220*PCONC(:& -&,JP_RO2T)+TPK%K188*TPK%RO220*PCONC(:,JP_HO2) ) / & -( +TPK%K180*PCONC(:,JP_NO)+TPK%K181*PCONC(:,JP_RO2T)+TPK%K182*PCONC& -&(:,JP_HO2) ) -! -TPK%RO219 = ( +TPK%K075*PCONC(:,JP_OLEH)*PCONC(:,JP_NO3) ) / & -( +TPK%K183*PCONC(:,JP_NO)+TPK%K184*PCONC(:,JP_RO2T)+TPK%K185*PCONC& -&(:,JP_HO2) ) -! -TPK%RO221 = ( +0.1*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & -( +TPK%K189*PCONC(:,JP_NO)+TPK%K190*PCONC(:,JP_RO2T)+TPK%K191*PCONC& -&(:,JP_HO2) ) -! -TPK%RO222 = ( +TPK%CF45*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) /& -& & -( +TPK%K192*PCONC(:,JP_NO)+TPK%K193*PCONC(:,JP_RO2T)+TPK%K194*PCONC& -&(:,JP_HO2) ) -! -TPK%RO223 = ( +0.1*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & -( +TPK%K195*PCONC(:,JP_NO)+TPK%K196*PCONC(:,JP_RO2T)+TPK%K197*PCONC& -&(:,JP_HO2) ) -! -TPK%RO224 = ( +TPK%K084*PCONC(:,JP_BIOL)*PCONC(:,JP_OH) ) / & -( +TPK%K198*PCONC(:,JP_NO)+TPK%K199*PCONC(:,JP_RO2T)+TPK%K200*PCONC& -&(:,JP_HO2) ) -! -TPK%RO226 = ( +0.445*TPK%K086*PCONC(:,JP_BIOL)*PCONC(:,JP_O3) ) / & -( +TPK%K204*PCONC(:,JP_NO)+TPK%K205*PCONC(:,JP_RO2T)+TPK%K206*PCONC& -&(:,JP_HO2) ) -! -TPK%RO227 = ( +TPK%K088*PCONC(:,JP_BIOH)*PCONC(:,JP_OH) ) / & -( +TPK%K207*PCONC(:,JP_NO)+TPK%K208*PCONC(:,JP_RO2T)+TPK%K209*PCONC& -&(:,JP_HO2) ) -! -TPK%RO229 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & -( +TPK%K213*PCONC(:,JP_NO)+TPK%K214*PCONC(:,JP_RO2T)+TPK%K215*PCONC& -&(:,JP_HO2) ) -! -TPK%RO230 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & -( +TPK%K219*PCONC(:,JP_RO2T)+TPK%K220*PCONC(:,JP_HO2)+TPK%K344*PCON& -&C(:,JP_NO) ) -! -TPK%RO231 = ( +0.1*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & -( +TPK%K221*PCONC(:,JP_NO)+TPK%K222*PCONC(:,JP_RO2T)+TPK%K223*PCONC& -&(:,JP_HO2) ) -! -TPK%RO232 = ( +TPK%K093*PCONC(:,JP_ALKH)*PCONC(:,JP_OH) ) / & -( +TPK%K224*PCONC(:,JP_NO)+TPK%K225*PCONC(:,JP_RO2T)+TPK%K226*PCONC& -&(:,JP_HO2) ) -! -TPK%RO233 = ( +TPK%K097*TPK%RAD2 ) / & -( +TPK%K230+TPK%K231*PCONC(:,JP_NO)+TPK%K232*PCONC(:,JP_RO2T)+TPK%K233*& -PCONC(:,JP_HO2) ) -! -TPK%RO234 = ( +TPK%K098*TPK%RAD3 ) / & -( +TPK%K237+TPK%K238*PCONC(:,JP_NO)+TPK%K239*PCONC(:,JP_RO2T)+TPK%K240*& -PCONC(:,JP_HO2) ) -! -TPK%RO235 = ( +TPK%K099*TPK%RAD4 ) / & -( +TPK%K244+TPK%K245*PCONC(:,JP_NO)+TPK%K246*PCONC(:,JP_RO2T)+TPK%K247*& -PCONC(:,JP_HO2) ) -! -TPK%RO236 = ( +TPK%K100*TPK%RAD5 ) / & -( +TPK%K251+TPK%K252*PCONC(:,JP_NO)+TPK%K253*PCONC(:,JP_RO2T)+TPK%K254*& -PCONC(:,JP_HO2) ) -! -TPK%RO237 = ( +TPK%K101*TPK%RAD6 ) / & -( +TPK%K258+TPK%K259*PCONC(:,JP_NO)+TPK%K260*PCONC(:,JP_RO2T)+TPK%K261*& -PCONC(:,JP_HO2) ) -! -TPK%RO238 = ( +TPK%K102*TPK%RAD7 ) / & -( +TPK%K265+TPK%K266*PCONC(:,JP_NO)+TPK%K267*PCONC(:,JP_RO2T)+TPK%K268*& -PCONC(:,JP_HO2) ) -! -TPK%RO240 = ( +TPK%CF30*TPK%K213*TPK%RO229*PCONC(:,JP_NO)+TPK%K214*& -TPK%RO229*PCONC(:,JP_RO2T)+TPK%K215*TPK%RO229*PCON& -&C(:,JP_HO2) ) / & -( +TPK%K216*PCONC(:,JP_NO)+TPK%K217*PCONC(:,JP_RO2T)+TPK%K218*PCONC& -&(:,JP_HO2) ) -! -TPK%RO241 = ( +TPK%CF34*TPK%K224*TPK%RO232*PCONC(:,JP_NO)+TPK%K225*& -TPK%RO232*PCONC(:,JP_RO2T)+TPK%K226*TPK%RO232*PCON& -&C(:,JP_HO2) ) / & -( +TPK%K227*PCONC(:,JP_NO)+TPK%K228*PCONC(:,JP_RO2T)+TPK%K229*PCONC& -&(:,JP_HO2) ) -! -TPK%RO242 = ( +TPK%K230*TPK%RO233 ) / & -( +TPK%K234*PCONC(:,JP_NO)+TPK%K235*PCONC(:,JP_RO2T)+TPK%K236*PCONC& -&(:,JP_HO2) ) -! -TPK%RO243 = ( +TPK%K237*TPK%RO234 ) / & -( +TPK%K241*PCONC(:,JP_NO)+TPK%K242*PCONC(:,JP_RO2T)+TPK%K243*PCONC& -&(:,JP_HO2) ) -! -TPK%RO244 = ( +TPK%K244*TPK%RO235 ) / & -( +TPK%K248*PCONC(:,JP_NO)+TPK%K249*PCONC(:,JP_RO2T)+TPK%K250*PCONC& -&(:,JP_HO2) ) -! -TPK%RO245 = ( +TPK%K251*TPK%RO236 ) / & -( +TPK%K255*PCONC(:,JP_NO)+TPK%K256*PCONC(:,JP_RO2T)+TPK%K257*PCONC& -&(:,JP_HO2) ) -! -TPK%RO246 = ( +TPK%K258*TPK%RO237 ) / & -( +TPK%K262*PCONC(:,JP_NO)+TPK%K263*PCONC(:,JP_RO2T)+TPK%K264*PCONC& -&(:,JP_HO2) ) -! -TPK%RO247 = ( +TPK%K265*TPK%RO238 ) / & -( +TPK%K269*PCONC(:,JP_NO)+TPK%K270*PCONC(:,JP_RO2T)+TPK%K271*PCONC& -&(:,JP_HO2) ) -! -TPK%RO28 = ( +TPK%K063*PCONC(:,JP_KETL)+TPK%K071*PCONC(:,JP_KETH)+TP& -&K%K136*PCONC(:,JP_PAN2)+TPK%K144*TPK%RO27*PCONC(:,JP_NO)+TPK%& -&K145*TPK%RO27*PCONC(:,JP_RO2T)+TPK%K146*TPK%RO27*PCONC(:,JP& -&_HO2)+TPK%K174*TPK%RO216*PCONC(:,JP_NO)+TPK%K175*TPK%RO21& -&6*PCONC(:,JP_RO2T)+TPK%K176*TPK%RO216*PCONC(:,JP_HO2)+TPK%K204*& -&TPK%RO226*PCONC(:,JP_NO)+TPK%K205*TPK%RO226*PCONC(:,JP_RO2T)& -&+TPK%K206*TPK%RO226*PCONC(:,JP_HO2)+TPK%K216*TPK%RO240*& -&PCONC(:,JP_NO)+TPK%K217*TPK%RO240*PCONC(:,JP_RO2T)+TPK%K218*& -&TPK%RO240*PCONC(:,JP_HO2)+TPK%K219*TPK%RO230*PCONC(:,JP_RO2T)+T& -&PK%K220*TPK%RO230*PCONC(:,JP_HO2)+TPK%K276*PCONC(:,JP_MGLY)+TPK%K277*& -TPK%RO248*PCONC(:,JP_NO)+TPK%K280*TPK%RO248*PCONC(:& -&,JP_RO2T)+0.28*TPK%K281*PCONC(:,JP_MVK)*PCONC(:,JP_O3)+0.15*TPK%K283*PCO& -&NC(:,JP_MVK)*TPK%O+TPK%K344*TPK%RO230*PCONC(:,JP_NO) ) / & -( +TPK%K127*PCONC(:,JP_NO2)+TPK%K147*PCONC(:,JP_NO)+TPK%K148*PCONC(& -&:,JP_HO2)+TPK%K149*PCONC(:,JP_RO2T) ) -! +TPK%O1D(:)=(TPK%K002(:)*PCONC(:,JP_O3))/(TPK%K020(:)*TPK%N2(:)+TPK%K021(:)*TPK%O2(:)+& + &TPK%K022(:)*TPK%H2O(:)) +TPK%O3P(:)=(TPK%K001(:)*PCONC(:,JP_NO2)+TPK%K003(:)*PCONC(:,JP_O3)+TPK%K008(:)*PCONC(:,JP_NO3)+& + &TPK%K020(:)*TPK%O1D(:)*TPK%N2(:)+TPK%K021(:)*TPK%O1D(:)*TPK%O2(:)+& + &0.00000*TPK%K079(:)*PCONC(:,JP_ALKE)*PCONC(:,JP_O3)+& + &0.09000*TPK%K080(:)*PCONC(:,JP_BIO)*PCONC(:,JP_O3))/& + &(TPK%K018(:)*TPK%O2(:)+TPK%K019(:)*PCONC(:,JP_O3)+TPK%K029(:)*PCONC(:,JP_NO)+& + &TPK%K030(:)*PCONC(:,JP_NO2)+TPK%K031(:)*PCONC(:,JP_NO2)+TPK%K054(:)*PCONC(:,JP_BIO)+& + &TPK%K055(:)*PCONC(:,JP_CARBO)) ! /END_CODE/ PJAC(:,:,:) = 0.0 CALL SUBJ0 @@ -12040,6 +6038,7 @@ CALL SUBJ14 CALL SUBJ15 CALL SUBJ16 CALL SUBJ17 +CALL SUBJ18 ! CONTAINS @@ -12049,77887 +6048,23679 @@ SUBROUTINE SUBJ0 !Indices 1 a 5 ! ! -!NO/NO=-K005*<O3>-K007*<NO3>-K008*<NO>-K008*<NO>-K008*<NO>-K008*<NO>-K019*<OH>- -!K026*<HO2>-K038*<O>+K095*<RO2T>-K095*<RO2T>-K110*<RO21>-K113*<RO22>-K116*<RO23 -!>-K119*<RO24>-K122*<RO25>-K125*<RO26>-K144*<RO27>-K147*<RO28>-K150*<RO29>-K153 -!*<RO210>-K156*<RO211>-K159*<RO212>-K162*<RO213>-K165*<RO239>-K168*<RO214>-K171 -!*<RO215>-K174*<RO216>-K177*<RO217>-K180*<RO218>-K183*<RO219>-K186*<RO220>-K189 -!*<RO221>-K192*<RO222>-K195*<RO223>-K198*<RO224>-K201*<RO225>-K204*<RO226>-K207 -!*<RO227>-K210*<RO228>-K213*<RO229>-K216*<RO240>-K221*<RO231>-K224*<RO232>-K227 -!*<RO241>-K231*<RO233>-K234*<RO242>-K238*<RO234>-K241*<RO243>-K245*<RO235>-K248 -!*<RO244>-K252*<RO236>-K255*<RO245>-K259*<RO237>-K262*<RO246>-K266*<RO238>-K269 -!*<RO247>-K277*<RO248>-K285*<RO249>-K288*<RO250>-K291*<RO251>-K294*<RO252>-K297 -!*<RO253>-K300*<RO254>-K309*<RO255>-K315*<RO256>-K331*<RO257>-K340*<RO258>-K344 -!*<RO230> - PJAC(:,1,1)=-TPK%K005(:)*PCONC(:,3)-TPK%K007(:)*PCONC(:,8)-TPK%K008(:)*PCONC(:& -&,1)-TPK%K008(:)*PCONC(:,1)-TPK%K008(:)*PCONC(:,1)-TPK%K008(:)*PCONC(:,1)-TPK%K& -&019(:)*PCONC(:,15)-TPK%K026(:)*PCONC(:,10)-TPK%K038(:)*TPK%O(:)+TPK%K095(:)*PC& -&ONC(:,85)-TPK%K095(:)*PCONC(:,85)-TPK%K110(:)*PCONC(:,86)-TPK%K113(:)*TPK%RO22& -&(:)-TPK%K116(:)*TPK%RO23(:)-TPK%K119(:)*TPK%RO24(:)-TPK%K122(:)*PCONC(:,87)-TP& -&K%K125(:)*TPK%RO26(:)-TPK%K144(:)*TPK%RO27(:)-TPK%K147(:)*TPK%RO28(:)-TPK%K150& -&(:)*TPK%RO29(:)-TPK%K153(:)*TPK%RO210(:)-TPK%K156(:)*TPK%RO211(:)-TPK%K159(:)*& -&TPK%RO212(:)-TPK%K162(:)*TPK%RO213(:)-TPK%K165(:)*TPK%RO239(:)-TPK%K168(:)*TPK& -&%RO214(:)-TPK%K171(:)*TPK%RO215(:)-TPK%K174(:)*TPK%RO216(:)-TPK%K177(:)*TPK%RO& -&217(:)-TPK%K180(:)*TPK%RO218(:)-TPK%K183(:)*TPK%RO219(:)-TPK%K186(:)*TPK%RO220& -&(:)-TPK%K189(:)*TPK%RO221(:)-TPK%K192(:)*TPK%RO222(:)-TPK%K195(:)*TPK%RO223(:)& -&-TPK%K198(:)*TPK%RO224(:)-TPK%K201(:)*TPK%RO225(:)-TPK%K204(:)*TPK%RO226(:)-TP& -&K%K207(:)*TPK%RO227(:)-TPK%K210(:)*TPK%RO228(:)-TPK%K213(:)*TPK%RO229(:)-TPK%K& -&216(:)*TPK%RO240(:)-TPK%K221(:)*TPK%RO231(:)-TPK%K224(:)*TPK%RO232(:)-TPK%K227& -&(:)*TPK%RO241(:)-TPK%K231(:)*TPK%RO233(:)-TPK%K234(:)*TPK%RO242(:)-TPK%K238(:)& -&*TPK%RO234(:)-TPK%K241(:)*TPK%RO243(:)-TPK%K245(:)*TPK%RO235(:)-TPK%K248(:)*TP& -&K%RO244(:)-TPK%K252(:)*TPK%RO236(:)-TPK%K255(:)*TPK%RO245(:)-TPK%K259(:)*TPK%R& -&O237(:)-TPK%K262(:)*TPK%RO246(:)-TPK%K266(:)*TPK%RO238(:)-TPK%K269(:)*TPK%RO24& -&7(:)-TPK%K277(:)*TPK%RO248(:)-TPK%K285(:)*TPK%RO249(:)-TPK%K288(:)*TPK%RO250(:& -&)-TPK%K291(:)*TPK%RO251(:)-TPK%K294(:)*TPK%RO252(:)-TPK%K297(:)*TPK%RO253(:)-T& -&PK%K300(:)*TPK%RO254(:)-TPK%K309(:)*TPK%RO255(:)-TPK%K315(:)*TPK%RO256(:)-TPK%& -&K331(:)*TPK%RO257(:)-TPK%K340(:)*TPK%RO258(:)-TPK%K344(:)*TPK%RO230(:) -! -!NO/NO2=+K001+K003*<O>+K012*<NO3> - PJAC(:,1,2)=+TPK%K001(:)+TPK%K003(:)*TPK%O(:)+TPK%K012(:)*PCONC(:,8) -! -!NO/O3=-K005*<NO> - PJAC(:,1,3)=-TPK%K005(:)*PCONC(:,1) -! -!NO/HONO=+0.9*K020 - PJAC(:,1,4)=+0.9*TPK%K020(:) +!O3/O3=-K002-K003-K019*<O3P>-K023*<OH>-K024*<HO2>-K042*<NO>-K043*<NO2>-K079*<AL +!KE>-K080*<BIO>-K081*<CARBO>-K082*<PAN>-K087*<ADD>-KTC1-KTR1 + PJAC(:,1,1)=-TPK%K002(:)-TPK%K003(:)-TPK%K019(:)*TPK%O3P(:)-TPK%K023(:)*PCONC(& +&:,14)-TPK%K024(:)*PCONC(:,15)-TPK%K042(:)*PCONC(:,3)-TPK%K043(:)*PCONC(:,4)-TP& +&K%K079(:)*PCONC(:,19)-TPK%K080(:)*PCONC(:,20)-TPK%K081(:)*PCONC(:,25)-TPK%K082& +&(:)*PCONC(:,27)-TPK%K087(:)*PCONC(:,37)-TPK%KTC1(:)-TPK%KTR1(:) ! -!NO/HNO3=0.0 +!O3/H2O2=0.0 ! -!NO/HNO4=0.0 +!O3/NO=-K042*<O3> + PJAC(:,1,3)=-TPK%K042(:)*PCONC(:,1) ! -!NO/N2O5=0.0 +!O3/NO2=-K043*<O3> + PJAC(:,1,4)=-TPK%K043(:)*PCONC(:,1) ! -!NO/NO3=-K007*<NO>+K012*<NO2>+K013 - PJAC(:,1,8)=-TPK%K007(:)*PCONC(:,1)+TPK%K012(:)*PCONC(:,2)+TPK%K013(:) +!O3/NO3=0.0 ! -!NO/NH3=0.0 +!O3/N2O5=0.0 ! -!NO/HO2=-K026*<NO> - PJAC(:,1,10)=-TPK%K026(:)*PCONC(:,1) +!O3/HONO=0.0 ! -!NO/CO=0.0 +!O3/HNO3=0.0 ! -!NO/H2O2=0.0 +!O3/HNO4=0.0 ! -!NO/SO2=0.0 +!O3/NH3=0.0 ! -!NO/H2SO4=0.0 +!O3/SO2=0.0 ! -!NO/OH=-K019*<NO> - PJAC(:,1,15)=-TPK%K019(:)*PCONC(:,1) +!O3/SULF=0.0 ! -!NO/ETHE=0.0 +!O3/CO=0.0 ! -!NO/OLEL=0.0 +!O3/OH=-K023*<O3> + PJAC(:,1,14)=-TPK%K023(:)*PCONC(:,1) ! -!NO/OLEH=0.0 +!O3/HO2=-K024*<O3>+0.17307*K0102*<CARBOP> + PJAC(:,1,15)=-TPK%K024(:)*PCONC(:,1)+0.17307*TPK%K0102(:)*PCONC(:,39) ! -!NO/ALKL=0.0 +!O3/CH4=0.0 ! -!NO/ALKM=0.0 +!O3/ETH=0.0 ! -!NO/ALKH=0.0 +!O3/ALKA=0.0 ! -!NO/AROH=0.0 +!O3/ALKE=-K079*<O3> + PJAC(:,1,19)=-TPK%K079(:)*PCONC(:,1) ! -!NO/AROL=0.0 +!O3/BIO=-K080*<O3> + PJAC(:,1,20)=-TPK%K080(:)*PCONC(:,1) ! -!NO/AROO=0.0 +!O3/ARO=0.0 ! -!NO/ARAL=0.0 +!O3/HCHO=0.0 ! -!NO/ARAC=0.0 +!O3/ALD=0.0 ! -!NO/PAH=0.0 +!O3/KET=0.0 ! -!NO/HCHO=0.0 +!O3/CARBO=-K081*<O3> + PJAC(:,1,25)=-TPK%K081(:)*PCONC(:,1) ! -!NO/ALD2=0.0 +!O3/ONIT=0.0 ! -!NO/KETL=0.0 +!O3/PAN=-K082*<O3> + PJAC(:,1,27)=-TPK%K082(:)*PCONC(:,1) ! -!NO/KETH=0.0 +!O3/OP1=0.0 ! -!NO/MEOH=0.0 +!O3/OP2=0.0 ! -!NO/ETOH=0.0 +!O3/ORA1=0.0 ! -!NO/ALCH=0.0 +!O3/ORA2=0.0 ! -!NO/ISOP=0.0 +!O3/MO2=0.0 ! -!NO/BIOL=0.0 +!O3/ALKAP=0.0 ! -!NO/BIOH=0.0 +!O3/ALKEP=0.0 ! -!NO/MTBE=0.0 +!O3/BIOP=0.0 ! -!NO/MVK=0.0 +!O3/PHO=0.0 ! -!NO/MCR=0.0 +!O3/ADD=-K087*<O3> + PJAC(:,1,37)=-TPK%K087(:)*PCONC(:,1) ! -!NO/MGLY=0.0 +!O3/AROP=0.0 ! -!NO/GLY=0.0 +!O3/CARBOP=+0.17307*K0102*<HO2> + PJAC(:,1,39)=+0.17307*TPK%K0102(:)*PCONC(:,15) ! -!NO/ORA1=0.0 +!O3/OLN=0.0 ! -!NO/ORA2=0.0 +!O3/XO2=0.0 ! -!NO/ACID=0.0 +!O3/WC_O3=+KTC21 + PJAC(:,1,42)=+TPK%KTC21(:) ! -!NO/UR28=0.0 +!O3/WC_H2O2=0.0 ! -!NO/UR21=0.0 +!O3/WC_NO=0.0 ! -!NO/URG2=0.0 +!O3/WC_NO2=0.0 ! -!NO/UR26=0.0 +!O3/WC_NO3=0.0 ! -!NO/RPG2=0.0 +!O3/WC_N2O5=0.0 ! -!NO/RP18=0.0 +!O3/WC_HONO=0.0 ! -!NO/RPG3=0.0 +!O3/WC_HNO3=0.0 ! -!NO/URG4=0.0 +!O3/WC_HNO4=0.0 ! -!NO/UR8=0.0 +!O3/WC_NH3=0.0 ! -!NO/UR17=0.0 +!O3/WC_OH=0.0 ! -!NO/UR7=0.0 +!O3/WC_HO2=0.0 ! -!NO/RPR3=0.0 +!O3/WC_CO2=0.0 ! -!NO/URG6=0.0 +!O3/WC_SO2=0.0 ! -!NO/UR22=0.0 +!O3/WC_SULF=0.0 ! -!NO/URG7=0.0 +!O3/WC_HCHO=0.0 ! -!NO/RPR4=0.0 +!O3/WC_ORA1=0.0 ! -!NO/RPR7=0.0 +!O3/WC_ORA2=0.0 ! -!NO/RPG7=0.0 +!O3/WC_MO2=0.0 ! -!NO/URG8=0.0 +!O3/WC_OP1=0.0 ! -!NO/UR19=0.0 +!O3/WC_ASO3=0.0 ! -!NO/URG9=0.0 +!O3/WC_ASO4=0.0 ! -!NO/AP7=0.0 +!O3/WC_ASO5=0.0 ! -!NO/URG10=0.0 +!O3/WC_AHSO5=0.0 ! -!NO/RPR1=0.0 +!O3/WC_AHMS=0.0 ! -!NO/RPR5=0.0 +!O3/WR_O3=+KTR21 + PJAC(:,1,67)=+TPK%KTR21(:) ! -!NO/RPR8=0.0 +!O3/WR_H2O2=0.0 ! -!NO/RP10=0.0 +!O3/WR_NO=0.0 ! -!NO/RP11=0.0 +!O3/WR_NO2=0.0 ! -!NO/RP16=0.0 +!O3/WR_NO3=0.0 ! -!NO/RPRL=0.0 +!O3/WR_N2O5=0.0 ! -!NO/APAN=0.0 +!O3/WR_HONO=0.0 ! -!NO/PAN1=0.0 +!O3/WR_HNO3=0.0 ! -!NO/PAN2=0.0 +!O3/WR_HNO4=0.0 ! -!NO/PAN3=0.0 +!O3/WR_NH3=0.0 ! -!NO/PAN4=0.0 +!O3/WR_OH=0.0 ! -!NO/PAN6=0.0 +!O3/WR_HO2=0.0 ! -!NO/PAN7=0.0 +!O3/WR_CO2=0.0 ! -!NO/PAN8=0.0 +!O3/WR_SO2=0.0 ! -!NO/PN10=0.0 +!O3/WR_SULF=0.0 ! -!NO/RO2T=+K095*<NO>-K095*<NO> - PJAC(:,1,85)=+TPK%K095(:)*PCONC(:,1)-TPK%K095(:)*PCONC(:,1) +!O3/WR_HCHO=0.0 ! -!NO/RO21=-K110*<NO> - PJAC(:,1,86)=-TPK%K110(:)*PCONC(:,1) +!O3/WR_ORA1=0.0 ! -!NO/RO25=-K122*<NO> - PJAC(:,1,87)=-TPK%K122(:)*PCONC(:,1) +!O3/WR_ORA2=0.0 ! -!NO2/NO=+K005*<O3>+2.*K007*<NO3>+2.*K008*<NO>+2.*K008*<NO>+K026*<HO2>+K038*<O>+ -!K110*<RO21>+K113*<RO22>+2.*K116*<RO23>+K119*<RO24>+TPK%CF4*K122*<RO25>+K125*<R -!O26>+K144*<RO27>+K147*<RO28>+TPK%CF6*K150*<RO29>+K153*<RO210>+2.*K156*<RO211>+ -!2.*K159*<RO212>+K162*<RO213>+K165*<RO239>+TPK%CF8*K168*<RO214>+K171*<RO215>+K1 -!74*<RO216>+TPK%CF22*K177*<RO217>+TPK%CF20*K180*<RO218>+2.*K183*<RO219>+TPK%CF1 -!8*K186*<RO220>+TPK%CF24*K189*<RO221>+TPK%CF42*K192*<RO222>+TPK%CF44*K195*<RO22 -!3>+TPK%CF26*K198*<RO224>+2.*K201*<RO225>+K204*<RO226>+TPK%CF28*K207*<RO227>+2. -!*K210*<RO228>+TPK%CF30*K213*<RO229>+K216*<RO240>+TPK%CF32*K221*<RO231>+TPK%CF3 -!4*K224*<RO232>+TPK%CF36*K227*<RO241>+K231*<RO233>+K234*<RO242>+K238*<RO234>+K2 -!41*<RO243>+K245*<RO235>+K248*<RO244>+K252*<RO236>+K255*<RO245>+K259*<RO237>+K2 -!62*<RO246>+K266*<RO238>+K269*<RO247>+K277*<RO248>+K285*<RO249>+K288*<RO250>+K2 -!91*<RO251>+2.*K294*<RO252>+K297*<RO253>+K300*<RO254>+K309*<RO255>+K315*<RO256> -!+K331*<RO257>+K340*<RO258>+K344*<RO230> - PJAC(:,2,1)=+TPK%K005(:)*PCONC(:,3)+2.*TPK%K007(:)*PCONC(:,8)+2.*TPK%K008(:)*P& -&CONC(:,1)+2.*TPK%K008(:)*PCONC(:,1)+TPK%K026(:)*PCONC(:,10)+TPK%K038(:)*TPK%O(& -&:)+TPK%K110(:)*PCONC(:,86)+TPK%K113(:)*TPK%RO22(:)+2.*TPK%K116(:)*TPK%RO23(:)+& -&TPK%K119(:)*TPK%RO24(:)+TPK%CF4*TPK%K122(:)*PCONC(:,87)+TPK%K125(:)*TPK%RO26(:& -&)+TPK%K144(:)*TPK%RO27(:)+TPK%K147(:)*TPK%RO28(:)+TPK%CF6*TPK%K150(:)*TPK%RO29& -&(:)+TPK%K153(:)*TPK%RO210(:)+2.*TPK%K156(:)*TPK%RO211(:)+2.*TPK%K159(:)*TPK%RO& -&212(:)+TPK%K162(:)*TPK%RO213(:)+TPK%K165(:)*TPK%RO239(:)+TPK%CF8*TPK%K168(:)*T& -&PK%RO214(:)+TPK%K171(:)*TPK%RO215(:)+TPK%K174(:)*TPK%RO216(:)+TPK%CF22*TPK%K17& -&7(:)*TPK%RO217(:)+TPK%CF20*TPK%K180(:)*TPK%RO218(:)+2.*TPK%K183(:)*TPK%RO219(:& -&)+TPK%CF18*TPK%K186(:)*TPK%RO220(:)+TPK%CF24*TPK%K189(:)*TPK%RO221(:)+TPK%CF42& -&*TPK%K192(:)*TPK%RO222(:)+TPK%CF44*TPK%K195(:)*TPK%RO223(:)+TPK%CF26*TPK%K198(& -&:)*TPK%RO224(:)+2.*TPK%K201(:)*TPK%RO225(:)+TPK%K204(:)*TPK%RO226(:)+TPK%CF28*& -&TPK%K207(:)*TPK%RO227(:)+2.*TPK%K210(:)*TPK%RO228(:)+TPK%CF30*TPK%K213(:)*TPK%& -&RO229(:)+TPK%K216(:)*TPK%RO240(:)+TPK%CF32*TPK%K221(:)*TPK%RO231(:)+TPK%CF34*T& -&PK%K224(:)*TPK%RO232(:)+TPK%CF36*TPK%K227(:)*TPK%RO241(:)+TPK%K231(:)*TPK%RO23& -&3(:)+TPK%K234(:)*TPK%RO242(:)+TPK%K238(:)*TPK%RO234(:)+TPK%K241(:)*TPK%RO243(:& -&)+TPK%K245(:)*TPK%RO235(:)+TPK%K248(:)*TPK%RO244(:)+TPK%K252(:)*TPK%RO236(:)+T& -&PK%K255(:)*TPK%RO245(:)+TPK%K259(:)*TPK%RO237(:)+TPK%K262(:)*TPK%RO246(:)+TPK%& -&K266(:)*TPK%RO238(:)+TPK%K269(:)*TPK%RO247(:)+TPK%K277(:)*TPK%RO248(:)+TPK%K28& -&5(:)*TPK%RO249(:)+TPK%K288(:)*TPK%RO250(:)+TPK%K291(:)*TPK%RO251(:)+2.*TPK%K29& -&4(:)*TPK%RO252(:)+TPK%K297(:)*TPK%RO253(:)+TPK%K300(:)*TPK%RO254(:)+TPK%K309(:& -&)*TPK%RO255(:)+TPK%K315(:)*TPK%RO256(:)+TPK%K331(:)*TPK%RO257(:)+TPK%K340(:)*T& -&PK%RO258(:)+TPK%K344(:)*TPK%RO230(:) +!O3/WR_MO2=0.0 ! -!NO2/NO2=-K001-K003*<O>-K004*<O>-K006*<O3>-K009*<NO3>+K012*<NO3>-K012*<NO3>-K02 -!1*<H2O>-K022*<OH>-K027*<HO2>-K103*<RAD1>-K104*<RAD2>-K105*<RAD3>-K106*<RAD4>-K -!107*<RAD5>-K108*<RAD6>-K109*<RAD7>-K126*<RO26>-K127*<RO28>-K128*<RO239>-K129*< -!RO248>-K130*<RO250>-K131*<RO254>-K132*<RO255>-K133*<RO257>-K134*<RO258>-K316*< -!RO256>-K321*<RAD8> - PJAC(:,2,2)=-TPK%K001(:)-TPK%K003(:)*TPK%O(:)-TPK%K004(:)*TPK%O(:)-TPK%K006(:)& -&*PCONC(:,3)-TPK%K009(:)*PCONC(:,8)+TPK%K012(:)*PCONC(:,8)-TPK%K012(:)*PCONC(:,& -&8)-TPK%K021(:)*TPK%H2O(:)-TPK%K022(:)*PCONC(:,15)-TPK%K027(:)*PCONC(:,10)-TPK%& -&K103(:)*TPK%RAD1(:)-TPK%K104(:)*TPK%RAD2(:)-TPK%K105(:)*TPK%RAD3(:)-TPK%K106(:& -&)*TPK%RAD4(:)-TPK%K107(:)*TPK%RAD5(:)-TPK%K108(:)*TPK%RAD6(:)-TPK%K109(:)*TPK%& -&RAD7(:)-TPK%K126(:)*TPK%RO26(:)-TPK%K127(:)*TPK%RO28(:)-TPK%K128(:)*TPK%RO239(& -&:)-TPK%K129(:)*TPK%RO248(:)-TPK%K130(:)*TPK%RO250(:)-TPK%K131(:)*TPK%RO254(:)-& -&TPK%K132(:)*TPK%RO255(:)-TPK%K133(:)*TPK%RO257(:)-TPK%K134(:)*TPK%RO258(:)-TPK& -&%K316(:)*TPK%RO256(:)-TPK%K321(:)*TPK%RAD8(:) +!O3/WR_OP1=0.0 ! -!NO2/O3=+K005*<NO>-K006*<NO2> - PJAC(:,2,3)=+TPK%K005(:)*PCONC(:,1)-TPK%K006(:)*PCONC(:,2) +!O3/WR_ASO3=0.0 ! -!NO2/HONO=+0.1*K020+K039*<OH> - PJAC(:,2,4)=+0.1*TPK%K020(:)+TPK%K039(:)*PCONC(:,15) +!O3/WR_ASO4=0.0 ! -!NO2/HNO3=0.0 -! -!NO2/HNO4=+K028+K029*<OH> - PJAC(:,2,6)=+TPK%K028(:)+TPK%K029(:)*PCONC(:,15) -! -!NO2/N2O5=+K010 - PJAC(:,2,7)=+TPK%K010(:) -! -!NO2/NO3=+2.*K007*<NO>-K009*<NO2>+K012*<NO2>-K012*<NO2>+K014+0.8*K033*<HO2>+K04 -!0*<OH>+2.*K041*<NO3>+2.*K041*<NO3> - PJAC(:,2,8)=+2.*TPK%K007(:)*PCONC(:,1)-TPK%K009(:)*PCONC(:,2)+TPK%K012(:)*PCON& -&C(:,2)-TPK%K012(:)*PCONC(:,2)+TPK%K014(:)+0.8*TPK%K033(:)*PCONC(:,10)+TPK%K040& -&(:)*PCONC(:,15)+2.*TPK%K041(:)*PCONC(:,8)+2.*TPK%K041(:)*PCONC(:,8) +!O3/WR_ASO5=0.0 ! -!NO2/NH3=0.0 +!O3/WR_AHSO5=0.0 ! -!NO2/HO2=+K026*<NO>-K027*<NO2>+0.8*K033*<NO3>+K118*<RO23>+K158*<RO211>+K161*<RO -!212>+K185*<RO219>+K203*<RO225>+K212*<RO228>+K295*<RO252> - PJAC(:,2,10)=+TPK%K026(:)*PCONC(:,1)-TPK%K027(:)*PCONC(:,2)+0.8*TPK%K033(:)*PC& -&ONC(:,8)+TPK%K118(:)*TPK%RO23(:)+TPK%K158(:)*TPK%RO211(:)+TPK%K161(:)*TPK%RO21& -&2(:)+TPK%K185(:)*TPK%RO219(:)+TPK%K203(:)*TPK%RO225(:)+TPK%K212(:)*TPK%RO228(:& -&)+TPK%K295(:)*TPK%RO252(:) +!O3/WR_AHMS=0.0 ! -!NO2/CO=0.0 +!H2O2/O3=+0.01833*K079*<ALKE>+0.00100*K080*<BIO> + PJAC(:,2,1)=+0.01833*TPK%K079(:)*PCONC(:,19)+0.00100*TPK%K080(:)*PCONC(:,20) ! -!NO2/H2O2=0.0 +!H2O2/H2O2=-K009-K026*<OH>-KTC2-KTR2 + PJAC(:,2,2)=-TPK%K009(:)-TPK%K026(:)*PCONC(:,14)-TPK%KTC2(:)-TPK%KTR2(:) ! -!NO2/SO2=0.0 +!H2O2/NO=0.0 ! -!NO2/H2SO4=0.0 +!H2O2/NO2=0.0 ! -!NO2/OH=-K022*<NO2>+K029*<HNO4>+K039*<HONO>+K040*<NO3> - PJAC(:,2,15)=-TPK%K022(:)*PCONC(:,2)+TPK%K029(:)*PCONC(:,6)+TPK%K039(:)*PCONC(& -&:,4)+TPK%K040(:)*PCONC(:,8) +!H2O2/NO3=0.0 ! -!NO2/ETHE=0.0 +!H2O2/N2O5=0.0 ! -!NO2/OLEL=0.0 +!H2O2/HONO=0.0 ! -!NO2/OLEH=0.0 +!H2O2/HNO3=0.0 ! -!NO2/ALKL=0.0 +!H2O2/HNO4=0.0 ! -!NO2/ALKM=0.0 +!H2O2/NH3=0.0 ! -!NO2/ALKH=0.0 +!H2O2/SO2=0.0 ! -!NO2/AROH=0.0 +!H2O2/SULF=0.0 ! -!NO2/AROL=0.0 +!H2O2/CO=0.0 ! -!NO2/AROO=0.0 +!H2O2/OH=-K026*<H2O2> + PJAC(:,2,14)=-TPK%K026(:)*PCONC(:,2) ! -!NO2/ARAL=0.0 +!H2O2/HO2=+K027*<HO2>+K027*<HO2>+K028*<HO2>*<H2O>+K028*<HO2>*<H2O> + PJAC(:,2,15)=+TPK%K027(:)*PCONC(:,15)+TPK%K027(:)*PCONC(:,15)+TPK%K028(:)*PCON& +&C(:,15)*TPK%H2O(:)+TPK%K028(:)*PCONC(:,15)*TPK%H2O(:) ! -!NO2/ARAC=0.0 +!H2O2/CH4=0.0 ! -!NO2/PAH=0.0 +!H2O2/ETH=0.0 ! -!NO2/HCHO=0.0 +!H2O2/ALKA=0.0 ! -!NO2/ALD2=0.0 +!H2O2/ALKE=+0.01833*K079*<O3> + PJAC(:,2,19)=+0.01833*TPK%K079(:)*PCONC(:,1) ! -!NO2/KETL=0.0 +!H2O2/BIO=+0.00100*K080*<O3> + PJAC(:,2,20)=+0.00100*TPK%K080(:)*PCONC(:,1) ! -!NO2/KETH=0.0 +!H2O2/ARO=0.0 ! -!NO2/MEOH=0.0 +!H2O2/HCHO=0.0 ! -!NO2/ETOH=0.0 +!H2O2/ALD=0.0 ! -!NO2/ALCH=0.0 +!H2O2/KET=0.0 ! -!NO2/ISOP=0.0 +!H2O2/CARBO=0.0 ! -!NO2/BIOL=0.0 +!H2O2/ONIT=0.0 ! -!NO2/BIOH=0.0 +!H2O2/PAN=0.0 ! -!NO2/MTBE=0.0 +!H2O2/OP1=0.0 ! -!NO2/MVK=0.0 +!H2O2/OP2=0.0 ! -!NO2/MCR=0.0 +!H2O2/ORA1=0.0 ! -!NO2/MGLY=0.0 +!H2O2/ORA2=0.0 ! -!NO2/GLY=0.0 +!H2O2/MO2=0.0 ! -!NO2/ORA1=0.0 +!H2O2/ALKAP=0.0 ! -!NO2/ORA2=0.0 +!H2O2/ALKEP=0.0 ! -!NO2/ACID=0.0 +!H2O2/BIOP=0.0 ! -!NO2/UR28=0.0 +!H2O2/PHO=0.0 ! -!NO2/UR21=0.0 +!H2O2/ADD=0.0 ! -!NO2/URG2=0.0 +!H2O2/AROP=0.0 ! -!NO2/UR26=0.0 +!H2O2/CARBOP=0.0 ! -!NO2/RPG2=0.0 +!H2O2/OLN=0.0 ! -!NO2/RP18=0.0 +!H2O2/XO2=0.0 ! -!NO2/RPG3=0.0 +!H2O2/WC_O3=0.0 ! -!NO2/URG4=0.0 +!H2O2/WC_H2O2=+KTC22 + PJAC(:,2,43)=+TPK%KTC22(:) ! -!NO2/UR8=0.0 +!H2O2/WC_NO=0.0 ! -!NO2/UR17=0.0 +!H2O2/WC_NO2=0.0 ! -!NO2/UR7=0.0 +!H2O2/WC_NO3=0.0 ! -!NO2/RPR3=0.0 +!H2O2/WC_N2O5=0.0 ! -!NO2/URG6=0.0 +!H2O2/WC_HONO=0.0 ! -!NO2/UR22=0.0 +!H2O2/WC_HNO3=0.0 ! -!NO2/URG7=0.0 +!H2O2/WC_HNO4=0.0 ! -!NO2/RPR4=0.0 +!H2O2/WC_NH3=0.0 ! -!NO2/RPR7=0.0 +!H2O2/WC_OH=0.0 ! -!NO2/RPG7=0.0 +!H2O2/WC_HO2=0.0 ! -!NO2/URG8=0.0 +!H2O2/WC_CO2=0.0 ! -!NO2/UR19=0.0 +!H2O2/WC_SO2=0.0 ! -!NO2/URG9=0.0 +!H2O2/WC_SULF=0.0 ! -!NO2/AP7=0.0 +!H2O2/WC_HCHO=0.0 ! -!NO2/URG10=0.0 +!H2O2/WC_ORA1=0.0 ! -!NO2/RPR1=0.0 +!H2O2/WC_ORA2=0.0 ! -!NO2/RPR5=0.0 +!H2O2/WC_MO2=0.0 ! -!NO2/RPR8=0.0 +!H2O2/WC_OP1=0.0 ! -!NO2/RP10=0.0 +!H2O2/WC_ASO3=0.0 ! -!NO2/RP11=0.0 +!H2O2/WC_ASO4=0.0 ! -!NO2/RP16=0.0 +!H2O2/WC_ASO5=0.0 ! -!NO2/RPRL=0.0 +!H2O2/WC_AHSO5=0.0 ! -!NO2/APAN=+1.0000000*K139 - PJAC(:,2,76)=+1.0000000*TPK%K139(:) +!H2O2/WC_AHMS=0.0 ! -!NO2/PAN1=+K135 - PJAC(:,2,77)=+TPK%K135(:) +!H2O2/WR_O3=0.0 ! -!NO2/PAN2=+K136 - PJAC(:,2,78)=+TPK%K136(:) +!H2O2/WR_H2O2=+KTR22 + PJAC(:,2,68)=+TPK%KTR22(:) ! -!NO2/PAN3=+K137 - PJAC(:,2,79)=+TPK%K137(:) +!H2O2/WR_NO=0.0 ! -!NO2/PAN4=+K141 - PJAC(:,2,80)=+TPK%K141(:) +!H2O2/WR_NO2=0.0 ! -!NO2/PAN6=+K140 - PJAC(:,2,81)=+TPK%K140(:) +!H2O2/WR_NO3=0.0 ! -!NO2/PAN7=+K343 - PJAC(:,2,82)=+TPK%K343(:) +!H2O2/WR_N2O5=0.0 ! -!NO2/PAN8=+K317 - PJAC(:,2,83)=+TPK%K317(:) +!H2O2/WR_HONO=0.0 ! -!NO2/PN10=+K138 - PJAC(:,2,84)=+TPK%K138(:) +!H2O2/WR_HNO3=0.0 ! -!NO2/RO2T=+K117*<RO23>+K157*<RO211>+K160*<RO212>+K184*<RO219>+K202*<RO225>+K211 -!*<RO228>+K296*<RO252> - PJAC(:,2,85)=+TPK%K117(:)*TPK%RO23(:)+TPK%K157(:)*TPK%RO211(:)+TPK%K160(:)*TPK& -&%RO212(:)+TPK%K184(:)*TPK%RO219(:)+TPK%K202(:)*TPK%RO225(:)+TPK%K211(:)*TPK%RO& -&228(:)+TPK%K296(:)*TPK%RO252(:) +!H2O2/WR_HNO4=0.0 ! -!NO2/RO21=+K110*<NO> - PJAC(:,2,86)=+TPK%K110(:)*PCONC(:,1) +!H2O2/WR_NH3=0.0 ! -!NO2/RO25=+TPK%CF4*K122*<NO> - PJAC(:,2,87)=+TPK%CF4*TPK%K122(:)*PCONC(:,1) +!H2O2/WR_OH=0.0 ! -!O3/NO=-K005*<O3> - PJAC(:,3,1)=-TPK%K005(:)*PCONC(:,3) +!H2O2/WR_HO2=0.0 ! -!O3/NO2=-K006*<O3> - PJAC(:,3,2)=-TPK%K006(:)*PCONC(:,3) +!H2O2/WR_CO2=0.0 ! -!O3/O3=-K005*<NO>-K006*<NO2>-K015-K016-K025*<OH>-K030*<HO2>-K034*<O>-K051*<ETHE -!>-K056*<OLEL>-K066*<ISOP>-K076*<OLEH>-K086*<BIOL>-K090*<BIOH>-K281*<MVK>-K282* -!<MCR> - PJAC(:,3,3)=-TPK%K005(:)*PCONC(:,1)-TPK%K006(:)*PCONC(:,2)-TPK%K015(:)-TPK%K01& -&6(:)-TPK%K025(:)*PCONC(:,15)-TPK%K030(:)*PCONC(:,10)-TPK%K034(:)*TPK%O(:)-TPK%& -&K051(:)*PCONC(:,16)-TPK%K056(:)*PCONC(:,17)-TPK%K066(:)*PCONC(:,35)-TPK%K076(:& -&)*PCONC(:,18)-TPK%K086(:)*PCONC(:,36)-TPK%K090(:)*PCONC(:,37)-TPK%K281(:)*PCON& -&C(:,39)-TPK%K282(:)*PCONC(:,40) +!H2O2/WR_SO2=0.0 ! -!O3/HONO=0.0 +!H2O2/WR_SULF=0.0 ! -!O3/HNO3=0.0 +!H2O2/WR_HCHO=0.0 ! -!O3/HNO4=0.0 +!H2O2/WR_ORA1=0.0 ! -!O3/N2O5=0.0 +!H2O2/WR_ORA2=0.0 ! -!O3/NO3=+K081*<ARAL> - PJAC(:,3,8)=+TPK%K081(:)*PCONC(:,25) +!H2O2/WR_MO2=0.0 ! -!O3/NH3=0.0 +!H2O2/WR_OP1=0.0 ! -!O3/HO2=-K030*<O3>+K142*<RO26>+K148*<RO28>+K166*<RO239>+K279*<RO248>+K289*<RO25 -!0>+K301*<RO254>+K310*<RO255>+K318*<RO256>+K332*<RO257>+K341*<RO258> - PJAC(:,3,10)=-TPK%K030(:)*PCONC(:,3)+TPK%K142(:)*TPK%RO26(:)+TPK%K148(:)*TPK%R& -&O28(:)+TPK%K166(:)*TPK%RO239(:)+TPK%K279(:)*TPK%RO248(:)+TPK%K289(:)*TPK%RO250& -&(:)+TPK%K301(:)*TPK%RO254(:)+TPK%K310(:)*TPK%RO255(:)+TPK%K318(:)*TPK%RO256(:)& -&+TPK%K332(:)*TPK%RO257(:)+TPK%K341(:)*TPK%RO258(:) +!H2O2/WR_ASO3=0.0 ! -!O3/CO=0.0 +!H2O2/WR_ASO4=0.0 ! -!O3/H2O2=0.0 +!H2O2/WR_ASO5=0.0 ! -!O3/SO2=0.0 +!H2O2/WR_AHSO5=0.0 ! -!O3/H2SO4=0.0 +!H2O2/WR_AHMS=0.0 ! -!O3/OH=-K025*<O3>+TPK%CF39*K082*<ARAL>+K303*<RPR5>+1.0000011*K306*<RPRL>+K322*< -!RPR7>+1.0000005*K323*<RPG7>+K326*<RP11>+1.0000000*K334*<RPG3>+1.0000000*K335*< -!RPG2>+K337*<RP18> - PJAC(:,3,15)=-TPK%K025(:)*PCONC(:,3)+TPK%CF39*TPK%K082(:)*PCONC(:,25)+TPK%K303& -&(:)*PCONC(:,70)+1.0000011*TPK%K306(:)*PCONC(:,75)+TPK%K322(:)*PCONC(:,62)+1.00& -&00005*TPK%K323(:)*PCONC(:,63)+TPK%K326(:)*PCONC(:,73)+1.0000000*TPK%K334(:)*PC& -&ONC(:,52)+1.0000000*TPK%K335(:)*PCONC(:,50)+TPK%K337(:)*PCONC(:,51) +!NO/O3=-K042*<NO> + PJAC(:,3,1)=-TPK%K042(:)*PCONC(:,3) ! -!O3/ETHE=-K051*<O3> - PJAC(:,3,16)=-TPK%K051(:)*PCONC(:,3) +!NO/H2O2=0.0 ! -!O3/OLEL=-K056*<O3> - PJAC(:,3,17)=-TPK%K056(:)*PCONC(:,3) +!NO/NO=-K029*<O3P>-K032*<OH>-K035*<HO2>-K042*<O3>-K044*<NO>*<O2>-K044*<NO>*<O2> +!-K044*<NO>*<O2>-K044*<NO>*<O2>-K045*<NO3>-K090*<MO2>-K091*<ALKAP>-K092*<ALKEP> +!-K093*<BIOP>-K094*<AROP>-K095*<CARBOP>-K096*<OLN>-K130*<XO2>-KTC3-KTR3 + PJAC(:,3,3)=-TPK%K029(:)*TPK%O3P(:)-TPK%K032(:)*PCONC(:,14)-TPK%K035(:)*PCONC(& +&:,15)-TPK%K042(:)*PCONC(:,1)-TPK%K044(:)*PCONC(:,3)*TPK%O2(:)-TPK%K044(:)*PCON& +&C(:,3)*TPK%O2(:)-TPK%K044(:)*PCONC(:,3)*TPK%O2(:)-TPK%K044(:)*PCONC(:,3)*TPK%O& +&2(:)-TPK%K045(:)*PCONC(:,5)-TPK%K090(:)*PCONC(:,32)-TPK%K091(:)*PCONC(:,33)-TP& +&K%K092(:)*PCONC(:,34)-TPK%K093(:)*PCONC(:,35)-TPK%K094(:)*PCONC(:,38)-TPK%K095& +&(:)*PCONC(:,39)-TPK%K096(:)*PCONC(:,40)-TPK%K130(:)*PCONC(:,41)-TPK%KTC3(:)-TP& +&K%KTR3(:) ! -!O3/OLEH=-K076*<O3> - PJAC(:,3,18)=-TPK%K076(:)*PCONC(:,3) +!NO/NO2=+K001+K030*<O3P>+K046*<NO3> + PJAC(:,3,4)=+TPK%K001(:)+TPK%K030(:)*TPK%O3P(:)+TPK%K046(:)*PCONC(:,5) ! -!O3/ALKL=0.0 +!NO/NO3=+K007-K045*<NO>+K046*<NO2> + PJAC(:,3,5)=+TPK%K007(:)-TPK%K045(:)*PCONC(:,3)+TPK%K046(:)*PCONC(:,4) ! -!O3/ALKM=0.0 +!NO/N2O5=0.0 ! -!O3/ALKH=0.0 +!NO/HONO=+K004 + PJAC(:,3,7)=+TPK%K004(:) ! -!O3/AROH=0.0 +!NO/HNO3=0.0 ! -!O3/AROL=0.0 +!NO/HNO4=0.0 ! -!O3/AROO=0.0 +!NO/NH3=0.0 ! -!O3/ARAL=+K081*<NO3>+TPK%CF39*K082*<OH> - PJAC(:,3,25)=+TPK%K081(:)*PCONC(:,8)+TPK%CF39*TPK%K082(:)*PCONC(:,15) +!NO/SO2=0.0 ! -!O3/ARAC=0.0 +!NO/SULF=0.0 ! -!O3/PAH=0.0 +!NO/CO=0.0 ! -!O3/HCHO=0.0 +!NO/OH=-K032*<NO> + PJAC(:,3,14)=-TPK%K032(:)*PCONC(:,3) ! -!O3/ALD2=0.0 +!NO/HO2=-K035*<NO> + PJAC(:,3,15)=-TPK%K035(:)*PCONC(:,3) ! -!O3/KETL=0.0 +!NO/CH4=0.0 ! -!O3/KETH=0.0 +!NO/ETH=0.0 ! -!O3/MEOH=0.0 +!NO/ALKA=0.0 ! -!O3/ETOH=0.0 +!NO/ALKE=0.0 ! -!O3/ALCH=0.0 +!NO/BIO=0.0 ! -!O3/ISOP=-K066*<O3> - PJAC(:,3,35)=-TPK%K066(:)*PCONC(:,3) +!NO/ARO=0.0 ! -!O3/BIOL=-K086*<O3> - PJAC(:,3,36)=-TPK%K086(:)*PCONC(:,3) +!NO/HCHO=0.0 ! -!O3/BIOH=-K090*<O3> - PJAC(:,3,37)=-TPK%K090(:)*PCONC(:,3) +!NO/ALD=0.0 ! -!O3/MTBE=0.0 +!NO/KET=0.0 ! -!O3/MVK=-K281*<O3> - PJAC(:,3,39)=-TPK%K281(:)*PCONC(:,3) +!NO/CARBO=0.0 ! -!O3/MCR=-K282*<O3> - PJAC(:,3,40)=-TPK%K282(:)*PCONC(:,3) +!NO/ONIT=0.0 ! -!O3/MGLY=0.0 +!NO/PAN=0.0 ! -!O3/GLY=0.0 +!NO/OP1=0.0 ! -!O3/ORA1=0.0 +!NO/OP2=0.0 ! -!O3/ORA2=0.0 +!NO/ORA1=0.0 ! -!O3/ACID=0.0 +!NO/ORA2=0.0 ! -!O3/UR28=0.0 +!NO/MO2=-K090*<NO> + PJAC(:,3,32)=-TPK%K090(:)*PCONC(:,3) ! -!O3/UR21=0.0 +!NO/ALKAP=-K091*<NO> + PJAC(:,3,33)=-TPK%K091(:)*PCONC(:,3) ! -!O3/URG2=0.0 +!NO/ALKEP=-K092*<NO> + PJAC(:,3,34)=-TPK%K092(:)*PCONC(:,3) ! -!O3/UR26=0.0 +!NO/BIOP=-K093*<NO> + PJAC(:,3,35)=-TPK%K093(:)*PCONC(:,3) ! -!O3/RPG2=+1.0000000*K335*<OH> - PJAC(:,3,50)=+1.0000000*TPK%K335(:)*PCONC(:,15) +!NO/PHO=0.0 ! -!O3/RP18=+K337*<OH> - PJAC(:,3,51)=+TPK%K337(:)*PCONC(:,15) +!NO/ADD=0.0 ! -!O3/RPG3=+1.0000000*K334*<OH> - PJAC(:,3,52)=+1.0000000*TPK%K334(:)*PCONC(:,15) +!NO/AROP=-K094*<NO> + PJAC(:,3,38)=-TPK%K094(:)*PCONC(:,3) ! -!O3/URG4=0.0 +!NO/CARBOP=-K095*<NO> + PJAC(:,3,39)=-TPK%K095(:)*PCONC(:,3) ! -!O3/UR8=0.0 +!NO/OLN=-K096*<NO> + PJAC(:,3,40)=-TPK%K096(:)*PCONC(:,3) ! -!O3/UR17=0.0 +!NO/XO2=-K130*<NO> + PJAC(:,3,41)=-TPK%K130(:)*PCONC(:,3) ! -!O3/UR7=0.0 +!NO/WC_O3=0.0 ! -!O3/RPR3=0.0 +!NO/WC_H2O2=0.0 ! -!O3/URG6=0.0 +!NO/WC_NO=+KTC23 + PJAC(:,3,44)=+TPK%KTC23(:) ! -!O3/UR22=0.0 +!NO/WC_NO2=0.0 ! -!O3/URG7=0.0 +!NO/WC_NO3=0.0 ! -!O3/RPR4=0.0 +!NO/WC_N2O5=0.0 ! -!O3/RPR7=+K322*<OH> - PJAC(:,3,62)=+TPK%K322(:)*PCONC(:,15) +!NO/WC_HONO=0.0 ! -!O3/RPG7=+1.0000005*K323*<OH> - PJAC(:,3,63)=+1.0000005*TPK%K323(:)*PCONC(:,15) +!NO/WC_HNO3=0.0 ! -!O3/URG8=0.0 +!NO/WC_HNO4=0.0 ! -!O3/UR19=0.0 +!NO/WC_NH3=0.0 ! -!O3/URG9=0.0 +!NO/WC_OH=0.0 ! -!O3/AP7=0.0 +!NO/WC_HO2=0.0 ! -!O3/URG10=0.0 +!NO/WC_CO2=0.0 ! -!O3/RPR1=0.0 +!NO/WC_SO2=0.0 ! -!O3/RPR5=+K303*<OH> - PJAC(:,3,70)=+TPK%K303(:)*PCONC(:,15) +!NO/WC_SULF=0.0 ! -!O3/RPR8=0.0 +!NO/WC_HCHO=0.0 ! -!O3/RP10=0.0 +!NO/WC_ORA1=0.0 ! -!O3/RP11=+K326*<OH> - PJAC(:,3,73)=+TPK%K326(:)*PCONC(:,15) +!NO/WC_ORA2=0.0 ! -!O3/RP16=0.0 +!NO/WC_MO2=0.0 ! -!O3/RPRL=+1.0000011*K306*<OH> - PJAC(:,3,75)=+1.0000011*TPK%K306(:)*PCONC(:,15) +!NO/WC_OP1=0.0 ! -!O3/APAN=0.0 +!NO/WC_ASO3=0.0 ! -!O3/PAN1=0.0 +!NO/WC_ASO4=0.0 ! -!O3/PAN2=0.0 +!NO/WC_ASO5=0.0 ! -!O3/PAN3=0.0 +!NO/WC_AHSO5=0.0 ! -!O3/PAN4=0.0 +!NO/WC_AHMS=0.0 ! -!O3/PAN6=0.0 +!NO/WR_O3=0.0 ! -!O3/PAN7=0.0 +!NO/WR_H2O2=0.0 ! -!O3/PAN8=0.0 +!NO/WR_NO=+KTR23 + PJAC(:,3,69)=+TPK%KTR23(:) ! -!O3/PN10=0.0 +!NO/WR_NO2=0.0 ! -!O3/RO2T=0.0 +!NO/WR_NO3=0.0 ! -!O3/RO21=0.0 +!NO/WR_N2O5=0.0 ! -!O3/RO25=0.0 +!NO/WR_HONO=0.0 ! -!HONO/NO=+K019*<OH> - PJAC(:,4,1)=+TPK%K019(:)*PCONC(:,15) +!NO/WR_HNO3=0.0 ! -!HONO/NO2=+0.5*K021*<H2O> - PJAC(:,4,2)=+0.5*TPK%K021(:)*TPK%H2O(:) +!NO/WR_HNO4=0.0 ! -!HONO/O3=0.0 +!NO/WR_NH3=0.0 ! -!HONO/HONO=-K020-K039*<OH> - PJAC(:,4,4)=-TPK%K020(:)-TPK%K039(:)*PCONC(:,15) +!NO/WR_OH=0.0 ! -!HONO/HNO3=0.0 +!NO/WR_HO2=0.0 ! -!HONO/HNO4=0.0 +!NO/WR_CO2=0.0 ! -!HONO/N2O5=0.0 +!NO/WR_SO2=0.0 ! -!HONO/NO3=0.0 +!NO/WR_SULF=0.0 ! -!HONO/NH3=0.0 +!NO/WR_HCHO=0.0 ! -!HONO/HO2=0.0 +!NO/WR_ORA1=0.0 ! -!HONO/CO=0.0 +!NO/WR_ORA2=0.0 ! -!HONO/H2O2=0.0 +!NO/WR_MO2=0.0 ! -!HONO/SO2=0.0 +!NO/WR_OP1=0.0 ! -!HONO/H2SO4=0.0 +!NO/WR_ASO3=0.0 ! -!HONO/OH=+K019*<NO>-K039*<HONO> - PJAC(:,4,15)=+TPK%K019(:)*PCONC(:,1)-TPK%K039(:)*PCONC(:,4) +!NO/WR_ASO4=0.0 ! -!HONO/ETHE=0.0 +!NO/WR_ASO5=0.0 ! -!HONO/OLEL=0.0 +!NO/WR_AHSO5=0.0 ! -!HONO/OLEH=0.0 +!NO/WR_AHMS=0.0 ! -!HONO/ALKL=0.0 +!NO2/O3=+K042*<NO>-K043*<NO2>+0.70*K082*<PAN> + PJAC(:,4,1)=+TPK%K042(:)*PCONC(:,3)-TPK%K043(:)*PCONC(:,4)+0.70*TPK%K082(:)*PC& +&ONC(:,27) ! -!HONO/ALKM=0.0 +!NO2/H2O2=0.0 ! -!HONO/ALKH=0.0 +!NO2/NO=+K029*<O3P>+K035*<HO2>+K042*<O3>+K044*<NO>*<O2>+K044*<NO>*<O2>+K044*<NO +!>*<O2>+K044*<NO>*<O2>+K045*<NO3>+K045*<NO3>+K090*<MO2>+0.91541*K091*<ALKAP>+K0 +!92*<ALKEP>+0.84700*K093*<BIOP>+0.95115*K094*<AROP>+K095*<CARBOP>+1.81599*K096* +!<OLN>+K130*<XO2> + PJAC(:,4,3)=+TPK%K029(:)*TPK%O3P(:)+TPK%K035(:)*PCONC(:,15)+TPK%K042(:)*PCONC(& +&:,1)+TPK%K044(:)*PCONC(:,3)*TPK%O2(:)+TPK%K044(:)*PCONC(:,3)*TPK%O2(:)+TPK%K04& +&4(:)*PCONC(:,3)*TPK%O2(:)+TPK%K044(:)*PCONC(:,3)*TPK%O2(:)+TPK%K045(:)*PCONC(:& +&,5)+TPK%K045(:)*PCONC(:,5)+TPK%K090(:)*PCONC(:,32)+0.91541*TPK%K091(:)*PCONC(:& +&,33)+TPK%K092(:)*PCONC(:,34)+0.84700*TPK%K093(:)*PCONC(:,35)+0.95115*TPK%K094(& +&:)*PCONC(:,38)+TPK%K095(:)*PCONC(:,39)+1.81599*TPK%K096(:)*PCONC(:,40)+TPK%K13& +&0(:)*PCONC(:,41) +! +!NO2/NO2=-K001-K030*<O3P>-K031*<O3P>-K033*<OH>-K036*<HO2>-K043*<O3>+K046*<NO3>- +!K046*<NO3>-K047*<NO3>-K083*<PHO>-K085*<ADD>-K088*<CARBOP>-KTC4-KTR4 + PJAC(:,4,4)=-TPK%K001(:)-TPK%K030(:)*TPK%O3P(:)-TPK%K031(:)*TPK%O3P(:)-TPK%K03& +&3(:)*PCONC(:,14)-TPK%K036(:)*PCONC(:,15)-TPK%K043(:)*PCONC(:,1)+TPK%K046(:)*PC& +&ONC(:,5)-TPK%K046(:)*PCONC(:,5)-TPK%K047(:)*PCONC(:,5)-TPK%K083(:)*PCONC(:,36)& +&-TPK%K085(:)*PCONC(:,37)-TPK%K088(:)*PCONC(:,39)-TPK%KTC4(:)-TPK%KTR4(:) +! +!NO2/NO3=+K008+K034*<OH>+0.7*K038*<HO2>+K045*<NO>+K045*<NO>+K046*<NO2>-K046*<NO +!2>-K047*<NO2>+K049*<NO3>+K049*<NO3>+K049*<NO3>+K049*<NO3>+0.10530*K074*<CARBO> +!+0.40*K078*<PAN>+K119*<MO2>+K120*<ALKAP>+K121*<ALKEP>+K122*<BIOP>+K123*<AROP>+ +!K124*<CARBOP>+1.74072*K125*<OLN>+K131*<XO2> + PJAC(:,4,5)=+TPK%K008(:)+TPK%K034(:)*PCONC(:,14)+0.7*TPK%K038(:)*PCONC(:,15)+T& +&PK%K045(:)*PCONC(:,3)+TPK%K045(:)*PCONC(:,3)+TPK%K046(:)*PCONC(:,4)-TPK%K046(:& +&)*PCONC(:,4)-TPK%K047(:)*PCONC(:,4)+TPK%K049(:)*PCONC(:,5)+TPK%K049(:)*PCONC(:& +&,5)+TPK%K049(:)*PCONC(:,5)+TPK%K049(:)*PCONC(:,5)+0.10530*TPK%K074(:)*PCONC(:,& +&25)+0.40*TPK%K078(:)*PCONC(:,27)+TPK%K119(:)*PCONC(:,32)+TPK%K120(:)*PCONC(:,3& +&3)+TPK%K121(:)*PCONC(:,34)+TPK%K122(:)*PCONC(:,35)+TPK%K123(:)*PCONC(:,38)+TPK& +&%K124(:)*PCONC(:,39)+1.74072*TPK%K125(:)*PCONC(:,40)+TPK%K131(:)*PCONC(:,41) +! +!NO2/N2O5=+K048 + PJAC(:,4,6)=+TPK%K048(:) +! +!NO2/HONO=+K039*<OH> + PJAC(:,4,7)=+TPK%K039(:)*PCONC(:,14) +! +!NO2/HNO3=+K005 + PJAC(:,4,8)=+TPK%K005(:) +! +!NO2/HNO4=+0.65*K006+K037+K041*<OH> + PJAC(:,4,9)=+0.65*TPK%K006(:)+TPK%K037(:)+TPK%K041(:)*PCONC(:,14) ! -!HONO/AROH=0.0 +!NO2/NH3=0.0 ! -!HONO/AROL=0.0 +!NO2/SO2=0.0 ! -!HONO/AROO=0.0 +!NO2/SULF=0.0 ! -!HONO/ARAL=0.0 +!NO2/CO=0.0 ! -!HONO/ARAC=0.0 +!NO2/OH=-K033*<NO2>+K034*<NO3>+K039*<HONO>+K041*<HNO4>+K071*<ONIT> + PJAC(:,4,14)=-TPK%K033(:)*PCONC(:,4)+TPK%K034(:)*PCONC(:,5)+TPK%K039(:)*PCONC(& +&:,7)+TPK%K041(:)*PCONC(:,9)+TPK%K071(:)*PCONC(:,26) ! -!HONO/PAH=0.0 +!NO2/HO2=+K035*<NO>-K036*<NO2>+0.7*K038*<NO3> + PJAC(:,4,15)=+TPK%K035(:)*PCONC(:,3)-TPK%K036(:)*PCONC(:,4)+0.7*TPK%K038(:)*PC& +&ONC(:,5) ! -!HONO/HCHO=0.0 +!NO2/CH4=0.0 ! -!HONO/ALD2=0.0 +!NO2/ETH=0.0 ! -!HONO/KETL=0.0 +!NO2/ALKA=0.0 ! -!HONO/KETH=0.0 +!NO2/ALKE=0.0 ! -!HONO/MEOH=0.0 +!NO2/BIO=0.0 ! -!HONO/ETOH=0.0 +!NO2/ARO=0.0 ! -!HONO/ALCH=0.0 +!NO2/HCHO=0.0 ! -!HONO/ISOP=0.0 +!NO2/ALD=0.0 ! -!HONO/BIOL=0.0 +!NO2/KET=0.0 ! -!HONO/BIOH=0.0 +!NO2/CARBO=+0.10530*K074*<NO3> + PJAC(:,4,25)=+0.10530*TPK%K074(:)*PCONC(:,5) ! -!HONO/MTBE=0.0 +!NO2/ONIT=+K017+K071*<OH> + PJAC(:,4,26)=+TPK%K017(:)+TPK%K071(:)*PCONC(:,14) ! -!HONO/MVK=0.0 +!NO2/PAN=+0.40*K078*<NO3>+0.70*K082*<O3>+K089 + PJAC(:,4,27)=+0.40*TPK%K078(:)*PCONC(:,5)+0.70*TPK%K082(:)*PCONC(:,1)+TPK%K089& +&(:) ! -!HONO/MCR=0.0 +!NO2/OP1=0.0 ! -!HONO/MGLY=0.0 +!NO2/OP2=0.0 ! -!HONO/GLY=0.0 +!NO2/ORA1=0.0 ! -!HONO/ORA1=0.0 +!NO2/ORA2=0.0 ! -!HONO/ORA2=0.0 +!NO2/MO2=+K090*<NO>+0.32440*K110*<OLN>+K119*<NO3> + PJAC(:,4,32)=+TPK%K090(:)*PCONC(:,3)+0.32440*TPK%K110(:)*PCONC(:,40)+TPK%K119(& +&:)*PCONC(:,5) ! -!HONO/ACID=0.0 +!NO2/ALKAP=+0.91541*K091*<NO>+K120*<NO3> + PJAC(:,4,33)=+0.91541*TPK%K091(:)*PCONC(:,3)+TPK%K120(:)*PCONC(:,5) ! -!HONO/UR28=0.0 +!NO2/ALKEP=+K092*<NO>+K121*<NO3> + PJAC(:,4,34)=+TPK%K092(:)*PCONC(:,3)+TPK%K121(:)*PCONC(:,5) ! -!HONO/UR21=0.0 +!NO2/BIOP=+0.84700*K093*<NO>+K122*<NO3> + PJAC(:,4,35)=+0.84700*TPK%K093(:)*PCONC(:,3)+TPK%K122(:)*PCONC(:,5) ! -!HONO/URG2=0.0 +!NO2/PHO=-K083*<NO2> + PJAC(:,4,36)=-TPK%K083(:)*PCONC(:,4) ! -!HONO/UR26=0.0 +!NO2/ADD=-K085*<NO2> + PJAC(:,4,37)=-TPK%K085(:)*PCONC(:,4) ! -!HONO/RPG2=0.0 +!NO2/AROP=+0.95115*K094*<NO>+K123*<NO3> + PJAC(:,4,38)=+0.95115*TPK%K094(:)*PCONC(:,3)+TPK%K123(:)*PCONC(:,5) ! -!HONO/RP18=0.0 +!NO2/CARBOP=-K088*<NO2>+K095*<NO>+0.00000*K116*<OLN>+K124*<NO3> + PJAC(:,4,39)=-TPK%K088(:)*PCONC(:,4)+TPK%K095(:)*PCONC(:,3)+0.00000*TPK%K116(:& +&)*PCONC(:,40)+TPK%K124(:)*PCONC(:,5) ! -!HONO/RPG3=0.0 +!NO2/OLN=+1.81599*K096*<NO>+0.32440*K110*<MO2>+0.00000*K116*<CARBOP>+0.00000*K1 +!18*<OLN>+0.00000*K118*<OLN>+1.74072*K125*<NO3> + PJAC(:,4,40)=+1.81599*TPK%K096(:)*PCONC(:,3)+0.32440*TPK%K110(:)*PCONC(:,32)+0& +&.00000*TPK%K116(:)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K11& +&8(:)*PCONC(:,40)+1.74072*TPK%K125(:)*PCONC(:,5) ! -!HONO/URG4=0.0 +!NO2/XO2=+K130*<NO>+K131*<NO3> + PJAC(:,4,41)=+TPK%K130(:)*PCONC(:,3)+TPK%K131(:)*PCONC(:,5) ! -!HONO/UR8=0.0 +!NO2/WC_O3=0.0 ! -!HONO/UR17=0.0 +!NO2/WC_H2O2=0.0 ! -!HONO/UR7=0.0 +!NO2/WC_NO=0.0 ! -!HONO/RPR3=0.0 +!NO2/WC_NO2=+KTC24 + PJAC(:,4,45)=+TPK%KTC24(:) ! -!HONO/URG6=0.0 +!NO2/WC_NO3=0.0 ! -!HONO/UR22=0.0 +!NO2/WC_N2O5=0.0 ! -!HONO/URG7=0.0 +!NO2/WC_HONO=0.0 ! -!HONO/RPR4=0.0 +!NO2/WC_HNO3=0.0 ! -!HONO/RPR7=0.0 +!NO2/WC_HNO4=0.0 ! -!HONO/RPG7=0.0 +!NO2/WC_NH3=0.0 ! -!HONO/URG8=0.0 +!NO2/WC_OH=0.0 ! -!HONO/UR19=0.0 +!NO2/WC_HO2=0.0 ! -!HONO/URG9=0.0 +!NO2/WC_CO2=0.0 ! -!HONO/AP7=0.0 +!NO2/WC_SO2=0.0 ! -!HONO/URG10=0.0 +!NO2/WC_SULF=0.0 ! -!HONO/RPR1=0.0 +!NO2/WC_HCHO=0.0 ! -!HONO/RPR5=0.0 +!NO2/WC_ORA1=0.0 ! -!HONO/RPR8=0.0 +!NO2/WC_ORA2=0.0 ! -!HONO/RP10=0.0 +!NO2/WC_MO2=0.0 ! -!HONO/RP11=0.0 +!NO2/WC_OP1=0.0 ! -!HONO/RP16=0.0 +!NO2/WC_ASO3=0.0 ! -!HONO/RPRL=0.0 +!NO2/WC_ASO4=0.0 ! -!HONO/APAN=0.0 +!NO2/WC_ASO5=0.0 ! -!HONO/PAN1=0.0 +!NO2/WC_AHSO5=0.0 ! -!HONO/PAN2=0.0 +!NO2/WC_AHMS=0.0 ! -!HONO/PAN3=0.0 +!NO2/WR_O3=0.0 ! -!HONO/PAN4=0.0 +!NO2/WR_H2O2=0.0 ! -!HONO/PAN6=0.0 +!NO2/WR_NO=0.0 ! -!HONO/PAN7=0.0 +!NO2/WR_NO2=+KTR24 + PJAC(:,4,70)=+TPK%KTR24(:) ! -!HONO/PAN8=0.0 +!NO2/WR_NO3=0.0 ! -!HONO/PN10=0.0 +!NO2/WR_N2O5=0.0 ! -!HONO/RO2T=0.0 +!NO2/WR_HONO=0.0 ! -!HONO/RO21=0.0 +!NO2/WR_HNO3=0.0 ! -!HONO/RO25=0.0 +!NO2/WR_HNO4=0.0 ! -!HNO3/NO=0.0 +!NO2/WR_NH3=0.0 ! -!HNO3/NO2=+0.5*K021*<H2O>+K022*<OH> - PJAC(:,5,2)=+0.5*TPK%K021(:)*TPK%H2O(:)+TPK%K022(:)*PCONC(:,15) +!NO2/WR_OH=0.0 ! -!HNO3/O3=0.0 +!NO2/WR_HO2=0.0 ! -!HNO3/HONO=0.0 +!NO2/WR_CO2=0.0 ! -!HNO3/HNO3=-K023*<OH> - PJAC(:,5,5)=-TPK%K023(:)*PCONC(:,15) +!NO2/WR_SO2=0.0 ! -!HNO3/HNO4=0.0 +!NO2/WR_SULF=0.0 ! -!HNO3/N2O5=+2.*K011*<H2O> - PJAC(:,5,7)=+2.*TPK%K011(:)*TPK%H2O(:) +!NO2/WR_HCHO=0.0 ! -!HNO3/NO3=+0.2*K033*<HO2>+K047*<HCHO>+K061*<ALD2>+K072*<AROO>+K081*<ARAL>+TPK%C -!F46*K275*<MCR>+K278*<MGLY>+K307*<RPR1>+K313*<RPR3>+K320*<RPR4>+K327*<RPR8>+K33 -!8*<RP16> - PJAC(:,5,8)=+0.2*TPK%K033(:)*PCONC(:,10)+TPK%K047(:)*PCONC(:,28)+TPK%K061(:)*P& -&CONC(:,29)+TPK%K072(:)*PCONC(:,24)+TPK%K081(:)*PCONC(:,25)+TPK%CF46*TPK%K275(:& -&)*PCONC(:,40)+TPK%K278(:)*PCONC(:,41)+TPK%K307(:)*PCONC(:,69)+TPK%K313(:)*PCON& -&C(:,57)+TPK%K320(:)*PCONC(:,61)+TPK%K327(:)*PCONC(:,71)+TPK%K338(:)*PCONC(:,74& -&) +!NO2/WR_ORA1=0.0 ! -!HNO3/NH3=0.0 +!NO2/WR_ORA2=0.0 ! -!HNO3/HO2=+0.2*K033*<NO3> - PJAC(:,5,10)=+0.2*TPK%K033(:)*PCONC(:,8) +!NO2/WR_MO2=0.0 ! -!HNO3/CO=0.0 +!NO2/WR_OP1=0.0 ! -!HNO3/H2O2=0.0 +!NO2/WR_ASO3=0.0 ! -!HNO3/SO2=0.0 +!NO2/WR_ASO4=0.0 ! -!HNO3/H2SO4=0.0 +!NO2/WR_ASO5=0.0 ! -!HNO3/OH=+K022*<NO2>-K023*<HNO3> - PJAC(:,5,15)=+TPK%K022(:)*PCONC(:,2)-TPK%K023(:)*PCONC(:,5) +!NO2/WR_AHSO5=0.0 ! -!HNO3/ETHE=0.0 +!NO2/WR_AHMS=0.0 ! -!HNO3/OLEL=0.0 +!NO3/O3=+K043*<NO2> + PJAC(:,5,1)=+TPK%K043(:)*PCONC(:,4) ! -!HNO3/OLEH=0.0 +!NO3/H2O2=0.0 ! -!HNO3/ALKL=0.0 +!NO3/NO=-K045*<NO3> + PJAC(:,5,3)=-TPK%K045(:)*PCONC(:,5) +! +!NO3/NO2=+K031*<O3P>+K043*<O3>-K046*<NO3>-K047*<NO3> + PJAC(:,5,4)=+TPK%K031(:)*TPK%O3P(:)+TPK%K043(:)*PCONC(:,1)-TPK%K046(:)*PCONC(:& +&,5)-TPK%K047(:)*PCONC(:,5) +! +!NO3/NO3=-K007-K008-K034*<OH>-K038*<HO2>-K045*<NO>-K046*<NO2>-K047*<NO2>-K049*< +!NO3>-K049*<NO3>-K049*<NO3>-K049*<NO3>-K072*<HCHO>-K073*<ALD>-K074*<CARBO>-K075 +!*<ARO>-K076*<ALKE>-K077*<BIO>+0.60*K078*<PAN>-K078*<PAN>-K119*<MO2>-K120*<ALKA +!P>-K121*<ALKEP>-K122*<BIOP>-K123*<AROP>-K124*<CARBOP>-K125*<OLN>-K131*<XO2>-KT +!C5-KTR5 + PJAC(:,5,5)=-TPK%K007(:)-TPK%K008(:)-TPK%K034(:)*PCONC(:,14)-TPK%K038(:)*PCONC& +&(:,15)-TPK%K045(:)*PCONC(:,3)-TPK%K046(:)*PCONC(:,4)-TPK%K047(:)*PCONC(:,4)-TP& +&K%K049(:)*PCONC(:,5)-TPK%K049(:)*PCONC(:,5)-TPK%K049(:)*PCONC(:,5)-TPK%K049(:)& +&*PCONC(:,5)-TPK%K072(:)*PCONC(:,22)-TPK%K073(:)*PCONC(:,23)-TPK%K074(:)*PCONC(& +&:,25)-TPK%K075(:)*PCONC(:,21)-TPK%K076(:)*PCONC(:,19)-TPK%K077(:)*PCONC(:,20)+& +&0.60*TPK%K078(:)*PCONC(:,27)-TPK%K078(:)*PCONC(:,27)-TPK%K119(:)*PCONC(:,32)-T& +&PK%K120(:)*PCONC(:,33)-TPK%K121(:)*PCONC(:,34)-TPK%K122(:)*PCONC(:,35)-TPK%K12& +&3(:)*PCONC(:,38)-TPK%K124(:)*PCONC(:,39)-TPK%K125(:)*PCONC(:,40)-TPK%K131(:)*P& +&CONC(:,41)-TPK%KTC5(:)-TPK%KTR5(:) +! +!NO3/N2O5=+K048 + PJAC(:,5,6)=+TPK%K048(:) ! -!HNO3/ALKM=0.0 +!NO3/HONO=0.0 ! -!HNO3/ALKH=0.0 +!NO3/HNO3=+K040*<OH> + PJAC(:,5,8)=+TPK%K040(:)*PCONC(:,14) ! -!HNO3/AROH=0.0 +!NO3/HNO4=+0.35*K006 + PJAC(:,5,9)=+0.35*TPK%K006(:) ! -!HNO3/AROL=0.0 +!NO3/NH3=0.0 ! -!HNO3/AROO=+K072*<NO3> - PJAC(:,5,24)=+TPK%K072(:)*PCONC(:,8) +!NO3/SO2=0.0 ! -!HNO3/ARAL=+K081*<NO3> - PJAC(:,5,25)=+TPK%K081(:)*PCONC(:,8) +!NO3/SULF=0.0 ! -!HNO3/ARAC=0.0 +!NO3/CO=0.0 ! -!HNO3/PAH=0.0 +!NO3/OH=-K034*<NO3>+K040*<HNO3>+0.71893*K070*<PAN> + PJAC(:,5,14)=-TPK%K034(:)*PCONC(:,5)+TPK%K040(:)*PCONC(:,8)+0.71893*TPK%K070(:& +&)*PCONC(:,27) ! -!HNO3/HCHO=+K047*<NO3> - PJAC(:,5,28)=+TPK%K047(:)*PCONC(:,8) +!NO3/HO2=-K038*<NO3> + PJAC(:,5,15)=-TPK%K038(:)*PCONC(:,5) ! -!HNO3/ALD2=+K061*<NO3> - PJAC(:,5,29)=+TPK%K061(:)*PCONC(:,8) +!NO3/CH4=0.0 ! -!HNO3/KETL=0.0 +!NO3/ETH=0.0 ! -!HNO3/KETH=0.0 +!NO3/ALKA=0.0 ! -!HNO3/MEOH=0.0 +!NO3/ALKE=-K076*<NO3> + PJAC(:,5,19)=-TPK%K076(:)*PCONC(:,5) ! -!HNO3/ETOH=0.0 +!NO3/BIO=-K077*<NO3> + PJAC(:,5,20)=-TPK%K077(:)*PCONC(:,5) ! -!HNO3/ALCH=0.0 +!NO3/ARO=-K075*<NO3> + PJAC(:,5,21)=-TPK%K075(:)*PCONC(:,5) ! -!HNO3/ISOP=0.0 +!NO3/HCHO=-K072*<NO3> + PJAC(:,5,22)=-TPK%K072(:)*PCONC(:,5) ! -!HNO3/BIOL=0.0 +!NO3/ALD=-K073*<NO3> + PJAC(:,5,23)=-TPK%K073(:)*PCONC(:,5) ! -!HNO3/BIOH=0.0 +!NO3/KET=0.0 ! -!HNO3/MTBE=0.0 +!NO3/CARBO=-K074*<NO3> + PJAC(:,5,25)=-TPK%K074(:)*PCONC(:,5) ! -!HNO3/MVK=0.0 +!NO3/ONIT=0.0 ! -!HNO3/MCR=+TPK%CF46*K275*<NO3> - PJAC(:,5,40)=+TPK%CF46*TPK%K275(:)*PCONC(:,8) +!NO3/PAN=+0.71893*K070*<OH>+0.60*K078*<NO3>-K078*<NO3> + PJAC(:,5,27)=+0.71893*TPK%K070(:)*PCONC(:,14)+0.60*TPK%K078(:)*PCONC(:,5)-TPK%& +&K078(:)*PCONC(:,5) ! -!HNO3/MGLY=+K278*<NO3> - PJAC(:,5,41)=+TPK%K278(:)*PCONC(:,8) +!NO3/OP1=0.0 ! -!HNO3/GLY=0.0 +!NO3/OP2=0.0 ! -!HNO3/ORA1=0.0 +!NO3/ORA1=0.0 ! -!HNO3/ORA2=0.0 +!NO3/ORA2=0.0 ! -!HNO3/ACID=0.0 +!NO3/MO2=-K119*<NO3> + PJAC(:,5,32)=-TPK%K119(:)*PCONC(:,5) ! -!HNO3/UR28=0.0 +!NO3/ALKAP=-K120*<NO3> + PJAC(:,5,33)=-TPK%K120(:)*PCONC(:,5) ! -!HNO3/UR21=0.0 +!NO3/ALKEP=-K121*<NO3> + PJAC(:,5,34)=-TPK%K121(:)*PCONC(:,5) ! -!HNO3/URG2=0.0 +!NO3/BIOP=-K122*<NO3> + PJAC(:,5,35)=-TPK%K122(:)*PCONC(:,5) ! -!HNO3/UR26=0.0 +!NO3/PHO=0.0 ! -!HNO3/RPG2=0.0 +!NO3/ADD=0.0 ! -!HNO3/RP18=0.0 +!NO3/AROP=-K123*<NO3> + PJAC(:,5,38)=-TPK%K123(:)*PCONC(:,5) ! -!HNO3/RPG3=0.0 +!NO3/CARBOP=-K124*<NO3> + PJAC(:,5,39)=-TPK%K124(:)*PCONC(:,5) ! -!HNO3/URG4=0.0 +!NO3/OLN=-K125*<NO3> + PJAC(:,5,40)=-TPK%K125(:)*PCONC(:,5) ! -!HNO3/UR8=0.0 +!NO3/XO2=-K131*<NO3> + PJAC(:,5,41)=-TPK%K131(:)*PCONC(:,5) ! -!HNO3/UR17=0.0 +!NO3/WC_O3=0.0 ! -!HNO3/UR7=0.0 +!NO3/WC_H2O2=0.0 ! -!HNO3/RPR3=+K313*<NO3> - PJAC(:,5,57)=+TPK%K313(:)*PCONC(:,8) +!NO3/WC_NO=0.0 ! -!HNO3/URG6=0.0 +!NO3/WC_NO2=0.0 ! -!HNO3/UR22=0.0 +!NO3/WC_NO3=+KTC25 + PJAC(:,5,46)=+TPK%KTC25(:) ! -!HNO3/URG7=0.0 +!NO3/WC_N2O5=0.0 ! -!HNO3/RPR4=+K320*<NO3> - PJAC(:,5,61)=+TPK%K320(:)*PCONC(:,8) +!NO3/WC_HONO=0.0 ! -!HNO3/RPR7=0.0 +!NO3/WC_HNO3=0.0 ! -!HNO3/RPG7=0.0 +!NO3/WC_HNO4=0.0 ! -!HNO3/URG8=0.0 +!NO3/WC_NH3=0.0 ! -!HNO3/UR19=0.0 +!NO3/WC_OH=0.0 ! -!HNO3/URG9=0.0 +!NO3/WC_HO2=0.0 ! -!HNO3/AP7=0.0 +!NO3/WC_CO2=0.0 ! -!HNO3/URG10=0.0 +!NO3/WC_SO2=0.0 ! -!HNO3/RPR1=+K307*<NO3> - PJAC(:,5,69)=+TPK%K307(:)*PCONC(:,8) +!NO3/WC_SULF=0.0 ! -!HNO3/RPR5=0.0 +!NO3/WC_HCHO=0.0 ! -!HNO3/RPR8=+K327*<NO3> - PJAC(:,5,71)=+TPK%K327(:)*PCONC(:,8) +!NO3/WC_ORA1=0.0 ! -!HNO3/RP10=0.0 +!NO3/WC_ORA2=0.0 ! -!HNO3/RP11=0.0 +!NO3/WC_MO2=0.0 ! -!HNO3/RP16=+K338*<NO3> - PJAC(:,5,74)=+TPK%K338(:)*PCONC(:,8) +!NO3/WC_OP1=0.0 ! -!HNO3/RPRL=0.0 +!NO3/WC_ASO3=0.0 ! -!HNO3/APAN=0.0 +!NO3/WC_ASO4=0.0 ! -!HNO3/PAN1=0.0 +!NO3/WC_ASO5=0.0 ! -!HNO3/PAN2=0.0 +!NO3/WC_AHSO5=0.0 ! -!HNO3/PAN3=0.0 +!NO3/WC_AHMS=0.0 ! -!HNO3/PAN4=0.0 +!NO3/WR_O3=0.0 ! -!HNO3/PAN6=0.0 +!NO3/WR_H2O2=0.0 ! -!HNO3/PAN7=0.0 +!NO3/WR_NO=0.0 ! -!HNO3/PAN8=0.0 +!NO3/WR_NO2=0.0 ! -!HNO3/PN10=0.0 +!NO3/WR_NO3=+KTR25 + PJAC(:,5,71)=+TPK%KTR25(:) ! -!HNO3/RO2T=0.0 +!NO3/WR_N2O5=0.0 ! -!HNO3/RO21=0.0 +!NO3/WR_HONO=0.0 ! -!HNO3/RO25=0.0 +!NO3/WR_HNO3=0.0 ! -RETURN -END SUBROUTINE SUBJ0 +!NO3/WR_HNO4=0.0 ! -SUBROUTINE SUBJ1 +!NO3/WR_NH3=0.0 ! -!Indices 6 a 10 +!NO3/WR_OH=0.0 ! +!NO3/WR_HO2=0.0 ! -!HNO4/NO=0.0 +!NO3/WR_CO2=0.0 ! -!HNO4/NO2=+K027*<HO2> - PJAC(:,6,2)=+TPK%K027(:)*PCONC(:,10) +!NO3/WR_SO2=0.0 ! -!HNO4/O3=0.0 +!NO3/WR_SULF=0.0 ! -!HNO4/HONO=0.0 +!NO3/WR_HCHO=0.0 ! -!HNO4/HNO3=0.0 +!NO3/WR_ORA1=0.0 ! -!HNO4/HNO4=-K028-K029*<OH> - PJAC(:,6,6)=-TPK%K028(:)-TPK%K029(:)*PCONC(:,15) +!NO3/WR_ORA2=0.0 ! -!HNO4/N2O5=0.0 +!NO3/WR_MO2=0.0 ! -!HNO4/NO3=0.0 +!NO3/WR_OP1=0.0 ! -!HNO4/NH3=0.0 +!NO3/WR_ASO3=0.0 ! -!HNO4/HO2=+K027*<NO2> - PJAC(:,6,10)=+TPK%K027(:)*PCONC(:,2) +!NO3/WR_ASO4=0.0 ! -!HNO4/CO=0.0 +!NO3/WR_ASO5=0.0 ! -!HNO4/H2O2=0.0 +!NO3/WR_AHSO5=0.0 ! -!HNO4/SO2=0.0 +!NO3/WR_AHMS=0.0 ! -!HNO4/H2SO4=0.0 +RETURN +END SUBROUTINE SUBJ0 ! -!HNO4/OH=-K029*<HNO4> - PJAC(:,6,15)=-TPK%K029(:)*PCONC(:,6) +SUBROUTINE SUBJ1 ! -!HNO4/ETHE=0.0 +!Indices 6 a 10 ! -!HNO4/OLEL=0.0 ! -!HNO4/OLEH=0.0 +!N2O5/O3=0.0 ! -!HNO4/ALKL=0.0 +!N2O5/H2O2=0.0 ! -!HNO4/ALKM=0.0 +!N2O5/NO=0.0 ! -!HNO4/ALKH=0.0 +!N2O5/NO2=+K047*<NO3> + PJAC(:,6,4)=+TPK%K047(:)*PCONC(:,5) ! -!HNO4/AROH=0.0 +!N2O5/NO3=+K047*<NO2> + PJAC(:,6,5)=+TPK%K047(:)*PCONC(:,4) ! -!HNO4/AROL=0.0 +!N2O5/N2O5=-K048-KTC6-KTR6 + PJAC(:,6,6)=-TPK%K048(:)-TPK%KTC6(:)-TPK%KTR6(:) ! -!HNO4/AROO=0.0 +!N2O5/HONO=0.0 ! -!HNO4/ARAL=0.0 +!N2O5/HNO3=0.0 ! -!HNO4/ARAC=0.0 +!N2O5/HNO4=0.0 ! -!HNO4/PAH=0.0 +!N2O5/NH3=0.0 ! -!HNO4/HCHO=0.0 +!N2O5/SO2=0.0 ! -!HNO4/ALD2=0.0 +!N2O5/SULF=0.0 ! -!HNO4/KETL=0.0 +!N2O5/CO=0.0 ! -!HNO4/KETH=0.0 +!N2O5/OH=0.0 ! -!HNO4/MEOH=0.0 +!N2O5/HO2=0.0 ! -!HNO4/ETOH=0.0 +!N2O5/CH4=0.0 ! -!HNO4/ALCH=0.0 +!N2O5/ETH=0.0 ! -!HNO4/ISOP=0.0 +!N2O5/ALKA=0.0 ! -!HNO4/BIOL=0.0 +!N2O5/ALKE=0.0 ! -!HNO4/BIOH=0.0 +!N2O5/BIO=0.0 ! -!HNO4/MTBE=0.0 +!N2O5/ARO=0.0 ! -!HNO4/MVK=0.0 +!N2O5/HCHO=0.0 ! -!HNO4/MCR=0.0 +!N2O5/ALD=0.0 ! -!HNO4/MGLY=0.0 +!N2O5/KET=0.0 ! -!HNO4/GLY=0.0 +!N2O5/CARBO=0.0 ! -!HNO4/ORA1=0.0 +!N2O5/ONIT=0.0 ! -!HNO4/ORA2=0.0 +!N2O5/PAN=0.0 ! -!HNO4/ACID=0.0 +!N2O5/OP1=0.0 ! -!HNO4/UR28=0.0 +!N2O5/OP2=0.0 ! -!HNO4/UR21=0.0 +!N2O5/ORA1=0.0 ! -!HNO4/URG2=0.0 +!N2O5/ORA2=0.0 ! -!HNO4/UR26=0.0 +!N2O5/MO2=0.0 ! -!HNO4/RPG2=0.0 +!N2O5/ALKAP=0.0 ! -!HNO4/RP18=0.0 +!N2O5/ALKEP=0.0 ! -!HNO4/RPG3=0.0 +!N2O5/BIOP=0.0 ! -!HNO4/URG4=0.0 +!N2O5/PHO=0.0 ! -!HNO4/UR8=0.0 +!N2O5/ADD=0.0 ! -!HNO4/UR17=0.0 +!N2O5/AROP=0.0 ! -!HNO4/UR7=0.0 +!N2O5/CARBOP=0.0 ! -!HNO4/RPR3=0.0 +!N2O5/OLN=0.0 ! -!HNO4/URG6=0.0 +!N2O5/XO2=0.0 ! -!HNO4/UR22=0.0 +!N2O5/WC_O3=0.0 ! -!HNO4/URG7=0.0 +!N2O5/WC_H2O2=0.0 ! -!HNO4/RPR4=0.0 +!N2O5/WC_NO=0.0 ! -!HNO4/RPR7=0.0 +!N2O5/WC_NO2=0.0 ! -!HNO4/RPG7=0.0 +!N2O5/WC_NO3=0.0 ! -!HNO4/URG8=0.0 +!N2O5/WC_N2O5=+KTC26 + PJAC(:,6,47)=+TPK%KTC26(:) ! -!HNO4/UR19=0.0 +!N2O5/WC_HONO=0.0 ! -!HNO4/URG9=0.0 +!N2O5/WC_HNO3=0.0 ! -!HNO4/AP7=0.0 +!N2O5/WC_HNO4=0.0 ! -!HNO4/URG10=0.0 +!N2O5/WC_NH3=0.0 ! -!HNO4/RPR1=0.0 +!N2O5/WC_OH=0.0 ! -!HNO4/RPR5=0.0 +!N2O5/WC_HO2=0.0 ! -!HNO4/RPR8=0.0 +!N2O5/WC_CO2=0.0 ! -!HNO4/RP10=0.0 +!N2O5/WC_SO2=0.0 ! -!HNO4/RP11=0.0 +!N2O5/WC_SULF=0.0 ! -!HNO4/RP16=0.0 +!N2O5/WC_HCHO=0.0 ! -!HNO4/RPRL=0.0 +!N2O5/WC_ORA1=0.0 ! -!HNO4/APAN=0.0 +!N2O5/WC_ORA2=0.0 ! -!HNO4/PAN1=0.0 +!N2O5/WC_MO2=0.0 ! -!HNO4/PAN2=0.0 +!N2O5/WC_OP1=0.0 ! -!HNO4/PAN3=0.0 +!N2O5/WC_ASO3=0.0 ! -!HNO4/PAN4=0.0 +!N2O5/WC_ASO4=0.0 ! -!HNO4/PAN6=0.0 +!N2O5/WC_ASO5=0.0 ! -!HNO4/PAN7=0.0 +!N2O5/WC_AHSO5=0.0 ! -!HNO4/PAN8=0.0 +!N2O5/WC_AHMS=0.0 ! -!HNO4/PN10=0.0 +!N2O5/WR_O3=0.0 ! -!HNO4/RO2T=0.0 +!N2O5/WR_H2O2=0.0 ! -!HNO4/RO21=0.0 +!N2O5/WR_NO=0.0 ! -!HNO4/RO25=0.0 +!N2O5/WR_NO2=0.0 ! -!N2O5/NO=0.0 +!N2O5/WR_NO3=0.0 ! -!N2O5/NO2=+K009*<NO3> - PJAC(:,7,2)=+TPK%K009(:)*PCONC(:,8) +!N2O5/WR_N2O5=+KTR26 + PJAC(:,6,72)=+TPK%KTR26(:) ! -!N2O5/O3=0.0 +!N2O5/WR_HONO=0.0 ! -!N2O5/HONO=0.0 +!N2O5/WR_HNO3=0.0 ! -!N2O5/HNO3=0.0 +!N2O5/WR_HNO4=0.0 ! -!N2O5/HNO4=0.0 +!N2O5/WR_NH3=0.0 ! -!N2O5/N2O5=-K010-K011*<H2O> - PJAC(:,7,7)=-TPK%K010(:)-TPK%K011(:)*TPK%H2O(:) +!N2O5/WR_OH=0.0 ! -!N2O5/NO3=+K009*<NO2> - PJAC(:,7,8)=+TPK%K009(:)*PCONC(:,2) +!N2O5/WR_HO2=0.0 ! -!N2O5/NH3=0.0 +!N2O5/WR_CO2=0.0 ! -!N2O5/HO2=0.0 +!N2O5/WR_SO2=0.0 ! -!N2O5/CO=0.0 +!N2O5/WR_SULF=0.0 ! -!N2O5/H2O2=0.0 +!N2O5/WR_HCHO=0.0 ! -!N2O5/SO2=0.0 +!N2O5/WR_ORA1=0.0 ! -!N2O5/H2SO4=0.0 +!N2O5/WR_ORA2=0.0 ! -!N2O5/OH=0.0 +!N2O5/WR_MO2=0.0 ! -!N2O5/ETHE=0.0 +!N2O5/WR_OP1=0.0 ! -!N2O5/OLEL=0.0 +!N2O5/WR_ASO3=0.0 ! -!N2O5/OLEH=0.0 +!N2O5/WR_ASO4=0.0 ! -!N2O5/ALKL=0.0 +!N2O5/WR_ASO5=0.0 ! -!N2O5/ALKM=0.0 +!N2O5/WR_AHSO5=0.0 ! -!N2O5/ALKH=0.0 +!N2O5/WR_AHMS=0.0 ! -!N2O5/AROH=0.0 +!HONO/O3=0.0 ! -!N2O5/AROL=0.0 +!HONO/H2O2=0.0 ! -!N2O5/AROO=0.0 +!HONO/NO=+K032*<OH> + PJAC(:,7,3)=+TPK%K032(:)*PCONC(:,14) ! -!N2O5/ARAL=0.0 +!HONO/NO2=+K085*<ADD> + PJAC(:,7,4)=+TPK%K085(:)*PCONC(:,37) ! -!N2O5/ARAC=0.0 +!HONO/NO3=0.0 ! -!N2O5/PAH=0.0 +!HONO/N2O5=0.0 ! -!N2O5/HCHO=0.0 +!HONO/HONO=-K004-K039*<OH>-KTC7-KTR7 + PJAC(:,7,7)=-TPK%K004(:)-TPK%K039(:)*PCONC(:,14)-TPK%KTC7(:)-TPK%KTR7(:) ! -!N2O5/ALD2=0.0 +!HONO/HNO3=0.0 ! -!N2O5/KETL=0.0 +!HONO/HNO4=0.0 ! -!N2O5/KETH=0.0 +!HONO/NH3=0.0 ! -!N2O5/MEOH=0.0 +!HONO/SO2=0.0 ! -!N2O5/ETOH=0.0 +!HONO/SULF=0.0 ! -!N2O5/ALCH=0.0 +!HONO/CO=0.0 ! -!N2O5/ISOP=0.0 +!HONO/OH=+K032*<NO>-K039*<HONO> + PJAC(:,7,14)=+TPK%K032(:)*PCONC(:,3)-TPK%K039(:)*PCONC(:,7) ! -!N2O5/BIOL=0.0 +!HONO/HO2=0.0 ! -!N2O5/BIOH=0.0 +!HONO/CH4=0.0 ! -!N2O5/MTBE=0.0 +!HONO/ETH=0.0 ! -!N2O5/MVK=0.0 +!HONO/ALKA=0.0 ! -!N2O5/MCR=0.0 +!HONO/ALKE=0.0 ! -!N2O5/MGLY=0.0 +!HONO/BIO=0.0 ! -!N2O5/GLY=0.0 +!HONO/ARO=0.0 ! -!N2O5/ORA1=0.0 +!HONO/HCHO=0.0 ! -!N2O5/ORA2=0.0 +!HONO/ALD=0.0 ! -!N2O5/ACID=0.0 +!HONO/KET=0.0 ! -!N2O5/UR28=0.0 +!HONO/CARBO=0.0 ! -!N2O5/UR21=0.0 +!HONO/ONIT=0.0 ! -!N2O5/URG2=0.0 +!HONO/PAN=0.0 ! -!N2O5/UR26=0.0 +!HONO/OP1=0.0 ! -!N2O5/RPG2=0.0 +!HONO/OP2=0.0 ! -!N2O5/RP18=0.0 +!HONO/ORA1=0.0 ! -!N2O5/RPG3=0.0 +!HONO/ORA2=0.0 ! -!N2O5/URG4=0.0 +!HONO/MO2=0.0 ! -!N2O5/UR8=0.0 +!HONO/ALKAP=0.0 ! -!N2O5/UR17=0.0 +!HONO/ALKEP=0.0 ! -!N2O5/UR7=0.0 +!HONO/BIOP=0.0 ! -!N2O5/RPR3=0.0 +!HONO/PHO=0.0 ! -!N2O5/URG6=0.0 +!HONO/ADD=+K085*<NO2> + PJAC(:,7,37)=+TPK%K085(:)*PCONC(:,4) ! -!N2O5/UR22=0.0 +!HONO/AROP=0.0 ! -!N2O5/URG7=0.0 +!HONO/CARBOP=0.0 ! -!N2O5/RPR4=0.0 +!HONO/OLN=0.0 ! -!N2O5/RPR7=0.0 +!HONO/XO2=0.0 ! -!N2O5/RPG7=0.0 +!HONO/WC_O3=0.0 ! -!N2O5/URG8=0.0 +!HONO/WC_H2O2=0.0 ! -!N2O5/UR19=0.0 +!HONO/WC_NO=0.0 ! -!N2O5/URG9=0.0 +!HONO/WC_NO2=0.0 ! -!N2O5/AP7=0.0 +!HONO/WC_NO3=0.0 ! -!N2O5/URG10=0.0 +!HONO/WC_N2O5=0.0 ! -!N2O5/RPR1=0.0 +!HONO/WC_HONO=+KTC27 + PJAC(:,7,48)=+TPK%KTC27(:) ! -!N2O5/RPR5=0.0 +!HONO/WC_HNO3=0.0 ! -!N2O5/RPR8=0.0 +!HONO/WC_HNO4=0.0 ! -!N2O5/RP10=0.0 +!HONO/WC_NH3=0.0 ! -!N2O5/RP11=0.0 +!HONO/WC_OH=0.0 ! -!N2O5/RP16=0.0 +!HONO/WC_HO2=0.0 ! -!N2O5/RPRL=0.0 +!HONO/WC_CO2=0.0 ! -!N2O5/APAN=0.0 +!HONO/WC_SO2=0.0 ! -!N2O5/PAN1=0.0 +!HONO/WC_SULF=0.0 ! -!N2O5/PAN2=0.0 +!HONO/WC_HCHO=0.0 ! -!N2O5/PAN3=0.0 +!HONO/WC_ORA1=0.0 ! -!N2O5/PAN4=0.0 +!HONO/WC_ORA2=0.0 ! -!N2O5/PAN6=0.0 +!HONO/WC_MO2=0.0 ! -!N2O5/PAN7=0.0 +!HONO/WC_OP1=0.0 ! -!N2O5/PAN8=0.0 +!HONO/WC_ASO3=0.0 ! -!N2O5/PN10=0.0 +!HONO/WC_ASO4=0.0 ! -!N2O5/RO2T=0.0 +!HONO/WC_ASO5=0.0 ! -!N2O5/RO21=0.0 +!HONO/WC_AHSO5=0.0 ! -!N2O5/RO25=0.0 +!HONO/WC_AHMS=0.0 ! -!NO3/NO=-K007*<NO3> - PJAC(:,8,1)=-TPK%K007(:)*PCONC(:,8) +!HONO/WR_O3=0.0 ! -!NO3/NO2=+K004*<O>+K006*<O3>-K009*<NO3>-K012*<NO3> - PJAC(:,8,2)=+TPK%K004(:)*TPK%O(:)+TPK%K006(:)*PCONC(:,3)-TPK%K009(:)*PCONC(:,8& -&)-TPK%K012(:)*PCONC(:,8) +!HONO/WR_H2O2=0.0 ! -!NO3/O3=+K006*<NO2> - PJAC(:,8,3)=+TPK%K006(:)*PCONC(:,2) +!HONO/WR_NO=0.0 ! -!NO3/HONO=0.0 +!HONO/WR_NO2=0.0 ! -!NO3/HNO3=+K023*<OH> - PJAC(:,8,5)=+TPK%K023(:)*PCONC(:,15) -! -!NO3/HNO4=0.0 -! -!NO3/N2O5=+K010 - PJAC(:,8,7)=+TPK%K010(:) -! -!NO3/NO3=-K007*<NO>-K009*<NO2>-K012*<NO2>-K013-K014-K033*<HO2>-K040*<OH>-K041*< -!NO3>-K041*<NO3>-K041*<NO3>-K041*<NO3>-K047*<HCHO>-K050*<ETHE>-K055*<OLEL>-K061 -!*<ALD2>-K065*<ISOP>-K072*<AROO>-K075*<OLEH>-K081*<ARAL>-K085*<BIOL>-K089*<BIOH -!>-K275*<MCR>-K278*<MGLY>-K307*<RPR1>-K313*<RPR3>-K320*<RPR4>-K327*<RPR8>-K338* -!<RP16> - PJAC(:,8,8)=-TPK%K007(:)*PCONC(:,1)-TPK%K009(:)*PCONC(:,2)-TPK%K012(:)*PCONC(:& -&,2)-TPK%K013(:)-TPK%K014(:)-TPK%K033(:)*PCONC(:,10)-TPK%K040(:)*PCONC(:,15)-TP& -&K%K041(:)*PCONC(:,8)-TPK%K041(:)*PCONC(:,8)-TPK%K041(:)*PCONC(:,8)-TPK%K041(:)& -&*PCONC(:,8)-TPK%K047(:)*PCONC(:,28)-TPK%K050(:)*PCONC(:,16)-TPK%K055(:)*PCONC(& -&:,17)-TPK%K061(:)*PCONC(:,29)-TPK%K065(:)*PCONC(:,35)-TPK%K072(:)*PCONC(:,24)-& -&TPK%K075(:)*PCONC(:,18)-TPK%K081(:)*PCONC(:,25)-TPK%K085(:)*PCONC(:,36)-TPK%K0& -&89(:)*PCONC(:,37)-TPK%K275(:)*PCONC(:,40)-TPK%K278(:)*PCONC(:,41)-TPK%K307(:)*& -&PCONC(:,69)-TPK%K313(:)*PCONC(:,57)-TPK%K320(:)*PCONC(:,61)-TPK%K327(:)*PCONC(& -&:,71)-TPK%K338(:)*PCONC(:,74) +!HONO/WR_NO3=0.0 ! -!NO3/NH3=0.0 +!HONO/WR_N2O5=0.0 ! -!NO3/HO2=-K033*<NO3> - PJAC(:,8,10)=-TPK%K033(:)*PCONC(:,8) +!HONO/WR_HONO=+KTR27 + PJAC(:,7,73)=+TPK%KTR27(:) ! -!NO3/CO=0.0 +!HONO/WR_HNO3=0.0 ! -!NO3/H2O2=0.0 +!HONO/WR_HNO4=0.0 ! -!NO3/SO2=0.0 +!HONO/WR_NH3=0.0 ! -!NO3/H2SO4=0.0 +!HONO/WR_OH=0.0 ! -!NO3/OH=+K023*<HNO3>-K040*<NO3> - PJAC(:,8,15)=+TPK%K023(:)*PCONC(:,5)-TPK%K040(:)*PCONC(:,8) +!HONO/WR_HO2=0.0 ! -!NO3/ETHE=-K050*<NO3> - PJAC(:,8,16)=-TPK%K050(:)*PCONC(:,8) +!HONO/WR_CO2=0.0 ! -!NO3/OLEL=-K055*<NO3> - PJAC(:,8,17)=-TPK%K055(:)*PCONC(:,8) +!HONO/WR_SO2=0.0 ! -!NO3/OLEH=-K075*<NO3> - PJAC(:,8,18)=-TPK%K075(:)*PCONC(:,8) +!HONO/WR_SULF=0.0 ! -!NO3/ALKL=0.0 +!HONO/WR_HCHO=0.0 ! -!NO3/ALKM=0.0 +!HONO/WR_ORA1=0.0 ! -!NO3/ALKH=0.0 +!HONO/WR_ORA2=0.0 ! -!NO3/AROH=0.0 +!HONO/WR_MO2=0.0 ! -!NO3/AROL=0.0 +!HONO/WR_OP1=0.0 ! -!NO3/AROO=-K072*<NO3> - PJAC(:,8,24)=-TPK%K072(:)*PCONC(:,8) +!HONO/WR_ASO3=0.0 ! -!NO3/ARAL=-K081*<NO3> - PJAC(:,8,25)=-TPK%K081(:)*PCONC(:,8) +!HONO/WR_ASO4=0.0 ! -!NO3/ARAC=0.0 +!HONO/WR_ASO5=0.0 ! -!NO3/PAH=0.0 +!HONO/WR_AHSO5=0.0 ! -!NO3/HCHO=-K047*<NO3> - PJAC(:,8,28)=-TPK%K047(:)*PCONC(:,8) +!HONO/WR_AHMS=0.0 ! -!NO3/ALD2=-K061*<NO3> - PJAC(:,8,29)=-TPK%K061(:)*PCONC(:,8) +!HNO3/O3=0.0 ! -!NO3/KETL=0.0 +!HNO3/H2O2=0.0 ! -!NO3/KETH=0.0 +!HNO3/NO=0.0 ! -!NO3/MEOH=0.0 +!HNO3/NO2=+K033*<OH> + PJAC(:,8,4)=+TPK%K033(:)*PCONC(:,14) ! -!NO3/ETOH=0.0 +!HNO3/NO3=+0.3*K038*<HO2>+K072*<HCHO>+K073*<ALD>+0.91567*K074*<CARBO>+K075*<ARO +!> + PJAC(:,8,5)=+0.3*TPK%K038(:)*PCONC(:,15)+TPK%K072(:)*PCONC(:,22)+TPK%K073(:)*P& +&CONC(:,23)+0.91567*TPK%K074(:)*PCONC(:,25)+TPK%K075(:)*PCONC(:,21) ! -!NO3/ALCH=0.0 +!HNO3/N2O5=0.0 ! -!NO3/ISOP=-K065*<NO3> - PJAC(:,8,35)=-TPK%K065(:)*PCONC(:,8) +!HNO3/HONO=0.0 ! -!NO3/BIOL=-K085*<NO3> - PJAC(:,8,36)=-TPK%K085(:)*PCONC(:,8) +!HNO3/HNO3=-K005-K040*<OH>-KTC8-KTR8 + PJAC(:,8,8)=-TPK%K005(:)-TPK%K040(:)*PCONC(:,14)-TPK%KTC8(:)-TPK%KTR8(:) ! -!NO3/BIOH=-K089*<NO3> - PJAC(:,8,37)=-TPK%K089(:)*PCONC(:,8) +!HNO3/HNO4=0.0 ! -!NO3/MTBE=0.0 +!HNO3/NH3=0.0 ! -!NO3/MVK=0.0 +!HNO3/SO2=0.0 ! -!NO3/MCR=-K275*<NO3> - PJAC(:,8,40)=-TPK%K275(:)*PCONC(:,8) +!HNO3/SULF=0.0 ! -!NO3/MGLY=-K278*<NO3> - PJAC(:,8,41)=-TPK%K278(:)*PCONC(:,8) +!HNO3/CO=0.0 ! -!NO3/GLY=0.0 +!HNO3/OH=+K033*<NO2>-K040*<HNO3> + PJAC(:,8,14)=+TPK%K033(:)*PCONC(:,4)-TPK%K040(:)*PCONC(:,8) ! -!NO3/ORA1=0.0 +!HNO3/HO2=+0.3*K038*<NO3> + PJAC(:,8,15)=+0.3*TPK%K038(:)*PCONC(:,5) ! -!NO3/ORA2=0.0 +!HNO3/CH4=0.0 ! -!NO3/ACID=0.0 +!HNO3/ETH=0.0 ! -!NO3/UR28=0.0 +!HNO3/ALKA=0.0 ! -!NO3/UR21=0.0 +!HNO3/ALKE=0.0 ! -!NO3/URG2=0.0 +!HNO3/BIO=0.0 ! -!NO3/UR26=0.0 +!HNO3/ARO=+K075*<NO3> + PJAC(:,8,21)=+TPK%K075(:)*PCONC(:,5) ! -!NO3/RPG2=0.0 +!HNO3/HCHO=+K072*<NO3> + PJAC(:,8,22)=+TPK%K072(:)*PCONC(:,5) ! -!NO3/RP18=0.0 +!HNO3/ALD=+K073*<NO3> + PJAC(:,8,23)=+TPK%K073(:)*PCONC(:,5) ! -!NO3/RPG3=0.0 +!HNO3/KET=0.0 ! -!NO3/URG4=0.0 +!HNO3/CARBO=+0.91567*K074*<NO3> + PJAC(:,8,25)=+0.91567*TPK%K074(:)*PCONC(:,5) ! -!NO3/UR8=0.0 +!HNO3/ONIT=0.0 ! -!NO3/UR17=0.0 +!HNO3/PAN=0.0 ! -!NO3/UR7=0.0 +!HNO3/OP1=0.0 ! -!NO3/RPR3=-K313*<NO3> - PJAC(:,8,57)=-TPK%K313(:)*PCONC(:,8) +!HNO3/OP2=0.0 ! -!NO3/URG6=0.0 +!HNO3/ORA1=0.0 ! -!NO3/UR22=0.0 +!HNO3/ORA2=0.0 ! -!NO3/URG7=0.0 +!HNO3/MO2=0.0 ! -!NO3/RPR4=-K320*<NO3> - PJAC(:,8,61)=-TPK%K320(:)*PCONC(:,8) +!HNO3/ALKAP=0.0 ! -!NO3/RPR7=0.0 +!HNO3/ALKEP=0.0 ! -!NO3/RPG7=0.0 +!HNO3/BIOP=0.0 ! -!NO3/URG8=0.0 +!HNO3/PHO=0.0 ! -!NO3/UR19=0.0 +!HNO3/ADD=0.0 ! -!NO3/URG9=0.0 +!HNO3/AROP=0.0 ! -!NO3/AP7=0.0 +!HNO3/CARBOP=0.0 ! -!NO3/URG10=0.0 +!HNO3/OLN=0.0 ! -!NO3/RPR1=-K307*<NO3> - PJAC(:,8,69)=-TPK%K307(:)*PCONC(:,8) +!HNO3/XO2=0.0 ! -!NO3/RPR5=0.0 +!HNO3/WC_O3=0.0 ! -!NO3/RPR8=-K327*<NO3> - PJAC(:,8,71)=-TPK%K327(:)*PCONC(:,8) +!HNO3/WC_H2O2=0.0 ! -!NO3/RP10=0.0 +!HNO3/WC_NO=0.0 ! -!NO3/RP11=0.0 +!HNO3/WC_NO2=0.0 ! -!NO3/RP16=-K338*<NO3> - PJAC(:,8,74)=-TPK%K338(:)*PCONC(:,8) +!HNO3/WC_NO3=0.0 ! -!NO3/RPRL=0.0 +!HNO3/WC_N2O5=0.0 ! -!NO3/APAN=0.0 +!HNO3/WC_HONO=0.0 ! -!NO3/PAN1=0.0 +!HNO3/WC_HNO3=+KTC28 + PJAC(:,8,49)=+TPK%KTC28(:) ! -!NO3/PAN2=0.0 +!HNO3/WC_HNO4=0.0 ! -!NO3/PAN3=0.0 +!HNO3/WC_NH3=0.0 ! -!NO3/PAN4=0.0 +!HNO3/WC_OH=0.0 ! -!NO3/PAN6=0.0 +!HNO3/WC_HO2=0.0 ! -!NO3/PAN7=0.0 +!HNO3/WC_CO2=0.0 ! -!NO3/PAN8=0.0 +!HNO3/WC_SO2=0.0 ! -!NO3/PN10=0.0 +!HNO3/WC_SULF=0.0 ! -!NO3/RO2T=0.0 +!HNO3/WC_HCHO=0.0 ! -!NO3/RO21=0.0 +!HNO3/WC_ORA1=0.0 ! -!NO3/RO25=0.0 +!HNO3/WC_ORA2=0.0 ! -!NH3/NO=0.0 +!HNO3/WC_MO2=0.0 ! -!NH3/NO2=0.0 +!HNO3/WC_OP1=0.0 ! -!NH3/O3=0.0 +!HNO3/WC_ASO3=0.0 ! -!NH3/HONO=0.0 +!HNO3/WC_ASO4=0.0 ! -!NH3/HNO3=0.0 +!HNO3/WC_ASO5=0.0 ! -!NH3/HNO4=0.0 +!HNO3/WC_AHSO5=0.0 ! -!NH3/N2O5=0.0 +!HNO3/WC_AHMS=0.0 ! -!NH3/NO3=0.0 +!HNO3/WR_O3=0.0 ! -!NH3/NH3=-K345*<OH> - PJAC(:,9,9)=-TPK%K345(:)*PCONC(:,15) +!HNO3/WR_H2O2=0.0 ! -!NH3/HO2=0.0 +!HNO3/WR_NO=0.0 ! -!NH3/CO=0.0 +!HNO3/WR_NO2=0.0 ! -!NH3/H2O2=0.0 +!HNO3/WR_NO3=0.0 ! -!NH3/SO2=0.0 +!HNO3/WR_N2O5=0.0 ! -!NH3/H2SO4=0.0 +!HNO3/WR_HONO=0.0 ! -!NH3/OH=-K345*<NH3> - PJAC(:,9,15)=-TPK%K345(:)*PCONC(:,9) +!HNO3/WR_HNO3=+KTR28 + PJAC(:,8,74)=+TPK%KTR28(:) ! -!NH3/ETHE=0.0 +!HNO3/WR_HNO4=0.0 ! -!NH3/OLEL=0.0 +!HNO3/WR_NH3=0.0 ! -!NH3/OLEH=0.0 +!HNO3/WR_OH=0.0 ! -!NH3/ALKL=0.0 +!HNO3/WR_HO2=0.0 ! -!NH3/ALKM=0.0 +!HNO3/WR_CO2=0.0 ! -!NH3/ALKH=0.0 +!HNO3/WR_SO2=0.0 ! -!NH3/AROH=0.0 +!HNO3/WR_SULF=0.0 ! -!NH3/AROL=0.0 +!HNO3/WR_HCHO=0.0 ! -!NH3/AROO=0.0 +!HNO3/WR_ORA1=0.0 ! -!NH3/ARAL=0.0 +!HNO3/WR_ORA2=0.0 ! -!NH3/ARAC=0.0 +!HNO3/WR_MO2=0.0 ! -!NH3/PAH=0.0 +!HNO3/WR_OP1=0.0 ! -!NH3/HCHO=0.0 +!HNO3/WR_ASO3=0.0 ! -!NH3/ALD2=0.0 +!HNO3/WR_ASO4=0.0 ! -!NH3/KETL=0.0 +!HNO3/WR_ASO5=0.0 ! -!NH3/KETH=0.0 +!HNO3/WR_AHSO5=0.0 ! -!NH3/MEOH=0.0 +!HNO3/WR_AHMS=0.0 ! -!NH3/ETOH=0.0 +!HNO4/O3=0.0 ! -!NH3/ALCH=0.0 +!HNO4/H2O2=0.0 ! -!NH3/ISOP=0.0 +!HNO4/NO=0.0 ! -!NH3/BIOL=0.0 +!HNO4/NO2=+K036*<HO2> + PJAC(:,9,4)=+TPK%K036(:)*PCONC(:,15) ! -!NH3/BIOH=0.0 +!HNO4/NO3=0.0 ! -!NH3/MTBE=0.0 +!HNO4/N2O5=0.0 ! -!NH3/MVK=0.0 +!HNO4/HONO=0.0 ! -!NH3/MCR=0.0 +!HNO4/HNO3=0.0 ! -!NH3/MGLY=0.0 +!HNO4/HNO4=-K006-K037-K041*<OH>-KTC9-KTR9 + PJAC(:,9,9)=-TPK%K006(:)-TPK%K037(:)-TPK%K041(:)*PCONC(:,14)-TPK%KTC9(:)-TPK%K& +&TR9(:) ! -!NH3/GLY=0.0 +!HNO4/NH3=0.0 ! -!NH3/ORA1=0.0 +!HNO4/SO2=0.0 ! -!NH3/ORA2=0.0 +!HNO4/SULF=0.0 ! -!NH3/ACID=0.0 +!HNO4/CO=0.0 ! -!NH3/UR28=0.0 +!HNO4/OH=-K041*<HNO4> + PJAC(:,9,14)=-TPK%K041(:)*PCONC(:,9) ! -!NH3/UR21=0.0 +!HNO4/HO2=+K036*<NO2> + PJAC(:,9,15)=+TPK%K036(:)*PCONC(:,4) ! -!NH3/URG2=0.0 +!HNO4/CH4=0.0 ! -!NH3/UR26=0.0 +!HNO4/ETH=0.0 ! -!NH3/RPG2=0.0 +!HNO4/ALKA=0.0 ! -!NH3/RP18=0.0 +!HNO4/ALKE=0.0 ! -!NH3/RPG3=0.0 +!HNO4/BIO=0.0 ! -!NH3/URG4=0.0 +!HNO4/ARO=0.0 ! -!NH3/UR8=0.0 +!HNO4/HCHO=0.0 ! -!NH3/UR17=0.0 +!HNO4/ALD=0.0 ! -!NH3/UR7=0.0 +!HNO4/KET=0.0 ! -!NH3/RPR3=0.0 +!HNO4/CARBO=0.0 ! -!NH3/URG6=0.0 +!HNO4/ONIT=0.0 ! -!NH3/UR22=0.0 +!HNO4/PAN=0.0 ! -!NH3/URG7=0.0 +!HNO4/OP1=0.0 ! -!NH3/RPR4=0.0 +!HNO4/OP2=0.0 ! -!NH3/RPR7=0.0 +!HNO4/ORA1=0.0 ! -!NH3/RPG7=0.0 +!HNO4/ORA2=0.0 ! -!NH3/URG8=0.0 +!HNO4/MO2=0.0 ! -!NH3/UR19=0.0 +!HNO4/ALKAP=0.0 ! -!NH3/URG9=0.0 +!HNO4/ALKEP=0.0 ! -!NH3/AP7=0.0 +!HNO4/BIOP=0.0 ! -!NH3/URG10=0.0 +!HNO4/PHO=0.0 ! -!NH3/RPR1=0.0 +!HNO4/ADD=0.0 ! -!NH3/RPR5=0.0 +!HNO4/AROP=0.0 ! -!NH3/RPR8=0.0 +!HNO4/CARBOP=0.0 ! -!NH3/RP10=0.0 +!HNO4/OLN=0.0 ! -!NH3/RP11=0.0 +!HNO4/XO2=0.0 ! -!NH3/RP16=0.0 +!HNO4/WC_O3=0.0 ! -!NH3/RPRL=0.0 +!HNO4/WC_H2O2=0.0 ! -!NH3/APAN=0.0 +!HNO4/WC_NO=0.0 ! -!NH3/PAN1=0.0 +!HNO4/WC_NO2=0.0 ! -!NH3/PAN2=0.0 +!HNO4/WC_NO3=0.0 ! -!NH3/PAN3=0.0 +!HNO4/WC_N2O5=0.0 ! -!NH3/PAN4=0.0 +!HNO4/WC_HONO=0.0 ! -!NH3/PAN6=0.0 +!HNO4/WC_HNO3=0.0 ! -!NH3/PAN7=0.0 +!HNO4/WC_HNO4=+KTC29 + PJAC(:,9,50)=+TPK%KTC29(:) ! -!NH3/PAN8=0.0 +!HNO4/WC_NH3=0.0 ! -!NH3/PN10=0.0 +!HNO4/WC_OH=0.0 ! -!NH3/RO2T=0.0 +!HNO4/WC_HO2=0.0 ! -!NH3/RO21=0.0 +!HNO4/WC_CO2=0.0 ! -!NH3/RO25=0.0 +!HNO4/WC_SO2=0.0 ! -!HO2/NO=-K026*<HO2>+K110*<RO21>+K113*<RO22>+K119*<RO24>+TPK%CF4*K122*<RO25>+TPK -!%CF6*K150*<RO29>+K153*<RO210>+K171*<RO215>+TPK%CF22*K177*<RO217>+TPK%CF20*K180 -!*<RO218>+TPK%CF24*K189*<RO221>+TPK%CF42*K192*<RO222>+TPK%CF44*K195*<RO223>+TPK -!%CF26*K198*<RO224>+TPK%CF28*K207*<RO227>+TPK%CF32*K221*<RO231>+TPK%CF36*K227*< -!RO241>+K231*<RO233>+K234*<RO242>+K238*<RO234>+K241*<RO243>+K245*<RO235>+K248*< -!RO244>+K252*<RO236>+K255*<RO245>+K259*<RO237>+K262*<RO246>+K266*<RO238>+K269*< -!RO247>+K285*<RO249>+K291*<RO251>+K300*<RO254>+K315*<RO256> - PJAC(:,10,1)=-TPK%K026(:)*PCONC(:,10)+TPK%K110(:)*PCONC(:,86)+TPK%K113(:)*TPK%& -&RO22(:)+TPK%K119(:)*TPK%RO24(:)+TPK%CF4*TPK%K122(:)*PCONC(:,87)+TPK%CF6*TPK%K1& -&50(:)*TPK%RO29(:)+TPK%K153(:)*TPK%RO210(:)+TPK%K171(:)*TPK%RO215(:)+TPK%CF22*T& -&PK%K177(:)*TPK%RO217(:)+TPK%CF20*TPK%K180(:)*TPK%RO218(:)+TPK%CF24*TPK%K189(:)& -&*TPK%RO221(:)+TPK%CF42*TPK%K192(:)*TPK%RO222(:)+TPK%CF44*TPK%K195(:)*TPK%RO223& -&(:)+TPK%CF26*TPK%K198(:)*TPK%RO224(:)+TPK%CF28*TPK%K207(:)*TPK%RO227(:)+TPK%CF& -&32*TPK%K221(:)*TPK%RO231(:)+TPK%CF36*TPK%K227(:)*TPK%RO241(:)+TPK%K231(:)*TPK%& -&RO233(:)+TPK%K234(:)*TPK%RO242(:)+TPK%K238(:)*TPK%RO234(:)+TPK%K241(:)*TPK%RO2& -&43(:)+TPK%K245(:)*TPK%RO235(:)+TPK%K248(:)*TPK%RO244(:)+TPK%K252(:)*TPK%RO236(& -&:)+TPK%K255(:)*TPK%RO245(:)+TPK%K259(:)*TPK%RO237(:)+TPK%K262(:)*TPK%RO246(:)+& -&TPK%K266(:)*TPK%RO238(:)+TPK%K269(:)*TPK%RO247(:)+TPK%K285(:)*TPK%RO249(:)+TPK& -&%K291(:)*TPK%RO251(:)+TPK%K300(:)*TPK%RO254(:)+TPK%K315(:)*TPK%RO256(:) +!HNO4/WC_SULF=0.0 ! -!HO2/NO2=-K027*<HO2> - PJAC(:,10,2)=-TPK%K027(:)*PCONC(:,10) +!HNO4/WC_HCHO=0.0 ! -!HO2/O3=+K025*<OH>-K030*<HO2>+0.06*K051*<ETHE>+0.28*K056*<OLEL>+0.366*K066*<ISO -!P>+0.28*K076*<OLEH>+0.445*K086*<BIOL>+0.28*K281*<MVK>+0.41*K282*<MCR> - PJAC(:,10,3)=+TPK%K025(:)*PCONC(:,15)-TPK%K030(:)*PCONC(:,10)+0.06*TPK%K051(:)& -&*PCONC(:,16)+0.28*TPK%K056(:)*PCONC(:,17)+0.366*TPK%K066(:)*PCONC(:,35)+0.28*T& -&PK%K076(:)*PCONC(:,18)+0.445*TPK%K086(:)*PCONC(:,36)+0.28*TPK%K281(:)*PCONC(:,& -&39)+0.41*TPK%K282(:)*PCONC(:,40) +!HNO4/WC_ORA1=0.0 ! -!HO2/HONO=+0.1*K020 - PJAC(:,10,4)=+0.1*TPK%K020(:) +!HNO4/WC_ORA2=0.0 ! -!HO2/HNO3=0.0 +!HNO4/WC_MO2=0.0 ! -!HO2/HNO4=+K028 - PJAC(:,10,6)=+TPK%K028(:) +!HNO4/WC_OP1=0.0 ! -!HO2/N2O5=0.0 +!HNO4/WC_ASO3=0.0 ! -!HO2/NO3=-K033*<HO2>+K040*<OH>+K047*<HCHO> - PJAC(:,10,8)=-TPK%K033(:)*PCONC(:,10)+TPK%K040(:)*PCONC(:,15)+TPK%K047(:)*PCON& -&C(:,28) +!HNO4/WC_ASO4=0.0 ! -!HO2/NH3=0.0 +!HNO4/WC_ASO5=0.0 ! -!HO2/HO2=-K026*<NO>-K027*<NO2>-K030*<O3>-K031*<HO2>-K031*<HO2>-K031*<HO2>-K031* -!<HO2>-K032*<H2O>*<HO2>-K032*<H2O>*<HO2>-K032*<H2O>*<HO2>-K032*<H2O>*<HO2>-K033 -!*<NO3>-K042*<OH>+K094*<RO2T>-K094*<RO2T>+K112*<RO21>-K112*<RO21>+K115*<RO22>-K -!115*<RO22>+K118*<RO23>-K118*<RO23>+K121*<RO24>-K121*<RO24>+K124*<RO25>-K124*<R -!O25>-K142*<RO26>-K146*<RO27>-K148*<RO28>+K152*<RO29>-K152*<RO29>+K155*<RO210>- -!K155*<RO210>-K158*<RO211>-K161*<RO212>-K164*<RO213>-K166*<RO239>-K170*<RO214>+ -!K173*<RO215>-K173*<RO215>-K176*<RO216>+K179*<RO217>-K179*<RO217>+K182*<RO218>- -!K182*<RO218>-K185*<RO219>-K188*<RO220>+K191*<RO221>-K191*<RO221>+K194*<RO222>- -!K194*<RO222>+K197*<RO223>-K197*<RO223>+K200*<RO224>-K200*<RO224>-K203*<RO225>- -!K206*<RO226>+K209*<RO227>-K209*<RO227>-K212*<RO228>-K215*<RO229>-K218*<RO240>- -!K220*<RO230>+K223*<RO231>-K223*<RO231>-K226*<RO232>+K229*<RO241>-K229*<RO241>+ -!K233*<RO233>-K233*<RO233>+K236*<RO242>-K236*<RO242>+K240*<RO234>-K240*<RO234>+ -!K243*<RO243>-K243*<RO243>+K247*<RO235>-K247*<RO235>+K250*<RO244>-K250*<RO244>+ -!K254*<RO236>-K254*<RO236>+K257*<RO245>-K257*<RO245>+K261*<RO237>-K261*<RO237>+ -!K264*<RO246>-K264*<RO246>+K268*<RO238>-K268*<RO238>+K271*<RO247>-K271*<RO247>- -!K279*<RO248>+K287*<RO249>-K287*<RO249>-K289*<RO250>+K292*<RO251>-K292*<RO251>- -!K295*<RO252>-K298*<RO253>-K301*<RO254>-K310*<RO255>-K318*<RO256>-K332*<RO257>- -!K341*<RO258> - PJAC(:,10,10)=-TPK%K026(:)*PCONC(:,1)-TPK%K027(:)*PCONC(:,2)-TPK%K030(:)*PCONC& -&(:,3)-TPK%K031(:)*PCONC(:,10)-TPK%K031(:)*PCONC(:,10)-TPK%K031(:)*PCONC(:,10)-& -&TPK%K031(:)*PCONC(:,10)-TPK%K032(:)*TPK%H2O(:)*PCONC(:,10)-TPK%K032(:)*TPK%H2O& -&(:)*PCONC(:,10)-TPK%K032(:)*TPK%H2O(:)*PCONC(:,10)-TPK%K032(:)*TPK%H2O(:)*PCON& -&C(:,10)-TPK%K033(:)*PCONC(:,8)-TPK%K042(:)*PCONC(:,15)+TPK%K094(:)*PCONC(:,85)& -&-TPK%K094(:)*PCONC(:,85)+TPK%K112(:)*PCONC(:,86)-TPK%K112(:)*PCONC(:,86)+TPK%K& -&115(:)*TPK%RO22(:)-TPK%K115(:)*TPK%RO22(:)+TPK%K118(:)*TPK%RO23(:)-TPK%K118(:)& -&*TPK%RO23(:)+TPK%K121(:)*TPK%RO24(:)-TPK%K121(:)*TPK%RO24(:)+TPK%K124(:)*PCONC& -&(:,87)-TPK%K124(:)*PCONC(:,87)-TPK%K142(:)*TPK%RO26(:)-TPK%K146(:)*TPK%RO27(:)& -&-TPK%K148(:)*TPK%RO28(:)+TPK%K152(:)*TPK%RO29(:)-TPK%K152(:)*TPK%RO29(:)+TPK%K& -&155(:)*TPK%RO210(:)-TPK%K155(:)*TPK%RO210(:)-TPK%K158(:)*TPK%RO211(:)-TPK%K161& -&(:)*TPK%RO212(:)-TPK%K164(:)*TPK%RO213(:)-TPK%K166(:)*TPK%RO239(:)-TPK%K170(:)& -&*TPK%RO214(:)+TPK%K173(:)*TPK%RO215(:)-TPK%K173(:)*TPK%RO215(:)-TPK%K176(:)*TP& -&K%RO216(:)+TPK%K179(:)*TPK%RO217(:)-TPK%K179(:)*TPK%RO217(:)+TPK%K182(:)*TPK%R& -&O218(:)-TPK%K182(:)*TPK%RO218(:)-TPK%K185(:)*TPK%RO219(:)-TPK%K188(:)*TPK%RO22& -&0(:)+TPK%K191(:)*TPK%RO221(:)-TPK%K191(:)*TPK%RO221(:)+TPK%K194(:)*TPK%RO222(:& -&)-TPK%K194(:)*TPK%RO222(:)+TPK%K197(:)*TPK%RO223(:)-TPK%K197(:)*TPK%RO223(:)+T& -&PK%K200(:)*TPK%RO224(:)-TPK%K200(:)*TPK%RO224(:)-TPK%K203(:)*TPK%RO225(:)-TPK%& -&K206(:)*TPK%RO226(:)+TPK%K209(:)*TPK%RO227(:)-TPK%K209(:)*TPK%RO227(:)-TPK%K21& -&2(:)*TPK%RO228(:)-TPK%K215(:)*TPK%RO229(:)-TPK%K218(:)*TPK%RO240(:)-TPK%K220(:& -&)*TPK%RO230(:)+TPK%K223(:)*TPK%RO231(:)-TPK%K223(:)*TPK%RO231(:)-TPK%K226(:)*T& -&PK%RO232(:)+TPK%K229(:)*TPK%RO241(:)-TPK%K229(:)*TPK%RO241(:)+TPK%K233(:)*TPK%& -&RO233(:)-TPK%K233(:)*TPK%RO233(:)+TPK%K236(:)*TPK%RO242(:)-TPK%K236(:)*TPK%RO2& -&42(:)+TPK%K240(:)*TPK%RO234(:)-TPK%K240(:)*TPK%RO234(:)+TPK%K243(:)*TPK%RO243(& -&:)-TPK%K243(:)*TPK%RO243(:)+TPK%K247(:)*TPK%RO235(:)-TPK%K247(:)*TPK%RO235(:)+& -&TPK%K250(:)*TPK%RO244(:)-TPK%K250(:)*TPK%RO244(:)+TPK%K254(:)*TPK%RO236(:)-TPK& -&%K254(:)*TPK%RO236(:)+TPK%K257(:)*TPK%RO245(:)-TPK%K257(:)*TPK%RO245(:)+TPK%K2& -&61(:)*TPK%RO237(:)-TPK%K261(:)*TPK%RO237(:)+TPK%K264(:)*TPK%RO246(:)-TPK%K264(& -&:)*TPK%RO246(:)+TPK%K268(:)*TPK%RO238(:)-TPK%K268(:)*TPK%RO238(:)+TPK%K271(:)*& -&TPK%RO247(:)-TPK%K271(:)*TPK%RO247(:)-TPK%K279(:)*TPK%RO248(:)+TPK%K287(:)*TPK& -&%RO249(:)-TPK%K287(:)*TPK%RO249(:)-TPK%K289(:)*TPK%RO250(:)+TPK%K292(:)*TPK%RO& -&251(:)-TPK%K292(:)*TPK%RO251(:)-TPK%K295(:)*TPK%RO252(:)-TPK%K298(:)*TPK%RO253& -&(:)-TPK%K301(:)*TPK%RO254(:)-TPK%K310(:)*TPK%RO255(:)-TPK%K318(:)*TPK%RO256(:)& -&-TPK%K332(:)*TPK%RO257(:)-TPK%K341(:)*TPK%RO258(:) -! -!HO2/CO=+K024*<OH> - PJAC(:,10,11)=+TPK%K024(:)*PCONC(:,15) -! -!HO2/H2O2=+K037*<OH> - PJAC(:,10,12)=+TPK%K037(:)*PCONC(:,15) -! -!HO2/SO2=+K035*<OH> - PJAC(:,10,13)=+TPK%K035(:)*PCONC(:,15) -! -!HO2/H2SO4=0.0 -! -!HO2/OH=+K024*<CO>+K025*<O3>+K035*<SO2>+K037*<H2O2>+K040*<NO3>-K042*<HO2>+K046* -!<HCHO>+K048*<MEOH>+TPK%CF1*K053*<ETOH>+0.16*K073*<AROO>+0.16*K079*<AROL>+0.16* -!K080*<AROH>+TPK%CF48*K082*<ARAL>+0.16*K083*<ARAC>+0.16*K092*<PAH>+K325*<RP10>+ -!K347*<ORA1> - PJAC(:,10,15)=+TPK%K024(:)*PCONC(:,11)+TPK%K025(:)*PCONC(:,3)+TPK%K035(:)*PCON& -&C(:,13)+TPK%K037(:)*PCONC(:,12)+TPK%K040(:)*PCONC(:,8)-TPK%K042(:)*PCONC(:,10)& -&+TPK%K046(:)*PCONC(:,28)+TPK%K048(:)*PCONC(:,32)+TPK%CF1*TPK%K053(:)*PCONC(:,3& -&3)+0.16*TPK%K073(:)*PCONC(:,24)+0.16*TPK%K079(:)*PCONC(:,23)+0.16*TPK%K080(:)*& -&PCONC(:,22)+TPK%CF48*TPK%K082(:)*PCONC(:,25)+0.16*TPK%K083(:)*PCONC(:,26)+0.16& -&*TPK%K092(:)*PCONC(:,27)+TPK%K325(:)*PCONC(:,72)+TPK%K347(:)*PCONC(:,43) -! -!HO2/ETHE=+0.06*K051*<O3>+K052*<O> - PJAC(:,10,16)=+0.06*TPK%K051(:)*PCONC(:,3)+TPK%K052(:)*TPK%O(:) -! -!HO2/OLEL=+0.28*K056*<O3> - PJAC(:,10,17)=+0.28*TPK%K056(:)*PCONC(:,3) -! -!HO2/OLEH=+0.28*K076*<O3> - PJAC(:,10,18)=+0.28*TPK%K076(:)*PCONC(:,3) -! -!HO2/ALKL=0.0 -! -!HO2/ALKM=0.0 -! -!HO2/ALKH=0.0 -! -!HO2/AROH=+0.16*K080*<OH> - PJAC(:,10,22)=+0.16*TPK%K080(:)*PCONC(:,15) -! -!HO2/AROL=+0.16*K079*<OH> - PJAC(:,10,23)=+0.16*TPK%K079(:)*PCONC(:,15) -! -!HO2/AROO=+0.16*K073*<OH> - PJAC(:,10,24)=+0.16*TPK%K073(:)*PCONC(:,15) -! -!HO2/ARAL=+TPK%CF48*K082*<OH> - PJAC(:,10,25)=+TPK%CF48*TPK%K082(:)*PCONC(:,15) -! -!HO2/ARAC=+0.16*K083*<OH> - PJAC(:,10,26)=+0.16*TPK%K083(:)*PCONC(:,15) -! -!HO2/PAH=+0.16*K092*<OH> - PJAC(:,10,27)=+0.16*TPK%K092(:)*PCONC(:,15) -! -!HO2/HCHO=+2.0*K044+K046*<OH>+K047*<NO3> - PJAC(:,10,28)=+2.0*TPK%K044(:)+TPK%K046(:)*PCONC(:,15)+TPK%K047(:)*PCONC(:,8) -! -!HO2/ALD2=+K059 - PJAC(:,10,29)=+TPK%K059(:) +!HNO4/WC_AHSO5=0.0 ! -!HO2/KETL=0.0 +!HNO4/WC_AHMS=0.0 ! -!HO2/KETH=0.0 +!HNO4/WR_O3=0.0 ! -!HO2/MEOH=+K048*<OH> - PJAC(:,10,32)=+TPK%K048(:)*PCONC(:,15) +!HNO4/WR_H2O2=0.0 ! -!HO2/ETOH=+TPK%CF1*K053*<OH> - PJAC(:,10,33)=+TPK%CF1*TPK%K053(:)*PCONC(:,15) +!HNO4/WR_NO=0.0 ! -!HO2/ALCH=0.0 +!HNO4/WR_NO2=0.0 ! -!HO2/ISOP=+0.366*K066*<O3> - PJAC(:,10,35)=+0.366*TPK%K066(:)*PCONC(:,3) +!HNO4/WR_NO3=0.0 ! -!HO2/BIOL=+0.445*K086*<O3> - PJAC(:,10,36)=+0.445*TPK%K086(:)*PCONC(:,3) +!HNO4/WR_N2O5=0.0 ! -!HO2/BIOH=0.0 +!HNO4/WR_HONO=0.0 ! -!HO2/MTBE=0.0 +!HNO4/WR_HNO3=0.0 ! -!HO2/MVK=+0.28*K281*<O3> - PJAC(:,10,39)=+0.28*TPK%K281(:)*PCONC(:,3) +!HNO4/WR_HNO4=+KTR29 + PJAC(:,9,75)=+TPK%KTR29(:) ! -!HO2/MCR=+0.41*K282*<O3>+0.15*K284*<O> - PJAC(:,10,40)=+0.41*TPK%K282(:)*PCONC(:,3)+0.15*TPK%K284(:)*TPK%O(:) +!HNO4/WR_NH3=0.0 ! -!HO2/MGLY=+K276 - PJAC(:,10,41)=+TPK%K276(:) +!HNO4/WR_OH=0.0 ! -!HO2/GLY=0.0 +!HNO4/WR_HO2=0.0 ! -!HO2/ORA1=+K347*<OH> - PJAC(:,10,43)=+TPK%K347(:)*PCONC(:,15) +!HNO4/WR_CO2=0.0 ! -!HO2/ORA2=0.0 +!HNO4/WR_SO2=0.0 ! -!HO2/ACID=0.0 +!HNO4/WR_SULF=0.0 ! -!HO2/UR28=0.0 +!HNO4/WR_HCHO=0.0 ! -!HO2/UR21=0.0 +!HNO4/WR_ORA1=0.0 ! -!HO2/URG2=0.0 +!HNO4/WR_ORA2=0.0 ! -!HO2/UR26=0.0 +!HNO4/WR_MO2=0.0 ! -!HO2/RPG2=0.0 +!HNO4/WR_OP1=0.0 ! -!HO2/RP18=0.0 +!HNO4/WR_ASO3=0.0 ! -!HO2/RPG3=0.0 +!HNO4/WR_ASO4=0.0 ! -!HO2/URG4=0.0 +!HNO4/WR_ASO5=0.0 ! -!HO2/UR8=0.0 +!HNO4/WR_AHSO5=0.0 ! -!HO2/UR17=0.0 +!HNO4/WR_AHMS=0.0 ! -!HO2/UR7=0.0 +!NH3/O3=0.0 ! -!HO2/RPR3=+2.*K314 - PJAC(:,10,57)=+2.*TPK%K314(:) +!NH3/H2O2=0.0 ! -!HO2/URG6=0.0 +!NH3/NO=0.0 ! -!HO2/UR22=0.0 +!NH3/NO2=0.0 ! -!HO2/URG7=0.0 +!NH3/NO3=0.0 ! -!HO2/RPR4=0.0 +!NH3/N2O5=0.0 ! -!HO2/RPR7=0.0 +!NH3/HONO=0.0 ! -!HO2/RPG7=0.0 +!NH3/HNO3=0.0 ! -!HO2/URG8=0.0 +!NH3/HNO4=0.0 ! -!HO2/UR19=0.0 +!NH3/NH3=-K050*<OH>-KTC10-KTR10 + PJAC(:,10,10)=-TPK%K050(:)*PCONC(:,14)-TPK%KTC10(:)-TPK%KTR10(:) ! -!HO2/URG9=0.0 +!NH3/SO2=0.0 ! -!HO2/AP7=0.0 +!NH3/SULF=0.0 ! -!HO2/URG10=0.0 +!NH3/CO=0.0 ! -!HO2/RPR1=+K308 - PJAC(:,10,69)=+TPK%K308(:) +!NH3/OH=-K050*<NH3> + PJAC(:,10,14)=-TPK%K050(:)*PCONC(:,10) ! -!HO2/RPR5=0.0 +!NH3/HO2=0.0 ! -!HO2/RPR8=+K329+K330 - PJAC(:,10,71)=+TPK%K329(:)+TPK%K330(:) +!NH3/CH4=0.0 ! -!HO2/RP10=+K325*<OH> - PJAC(:,10,72)=+TPK%K325(:)*PCONC(:,15) +!NH3/ETH=0.0 ! -!HO2/RP11=0.0 +!NH3/ALKA=0.0 ! -!HO2/RP16=+K339 - PJAC(:,10,74)=+TPK%K339(:) +!NH3/ALKE=0.0 ! -!HO2/RPRL=0.0 +!NH3/BIO=0.0 ! -!HO2/APAN=0.0 +!NH3/ARO=0.0 ! -!HO2/PAN1=0.0 +!NH3/HCHO=0.0 ! -!HO2/PAN2=0.0 +!NH3/ALD=0.0 ! -!HO2/PAN3=0.0 +!NH3/KET=0.0 ! -!HO2/PAN4=0.0 +!NH3/CARBO=0.0 ! -!HO2/PAN6=0.0 +!NH3/ONIT=0.0 ! -!HO2/PAN7=0.0 +!NH3/PAN=0.0 ! -!HO2/PAN8=0.0 +!NH3/OP1=0.0 ! -!HO2/PN10=0.0 +!NH3/OP2=0.0 ! -!HO2/RO2T=+K094*<HO2>-K094*<HO2>+K111*<RO21>+K114*<RO22>+K117*<RO23>+K120*<RO24 -!>+K123*<RO25>+K151*<RO29>+K154*<RO210>+K172*<RO215>+K178*<RO217>+K181*<RO218>+ -!K190*<RO221>+K193*<RO222>+K196*<RO223>+K199*<RO224>+K208*<RO227>+K222*<RO231>+ -!K228*<RO241>+K232*<RO233>+K235*<RO242>+K239*<RO234>+K242*<RO243>+K246*<RO235>+ -!K249*<RO244>+K253*<RO236>+K256*<RO245>+K260*<RO237>+K263*<RO246>+K267*<RO238>+ -!K270*<RO247>+K286*<RO249>+K293*<RO251>+K302*<RO254>+K319*<RO256> - PJAC(:,10,85)=+TPK%K094(:)*PCONC(:,10)-TPK%K094(:)*PCONC(:,10)+TPK%K111(:)*PCO& -&NC(:,86)+TPK%K114(:)*TPK%RO22(:)+TPK%K117(:)*TPK%RO23(:)+TPK%K120(:)*TPK%RO24(& -&:)+TPK%K123(:)*PCONC(:,87)+TPK%K151(:)*TPK%RO29(:)+TPK%K154(:)*TPK%RO210(:)+TP& -&K%K172(:)*TPK%RO215(:)+TPK%K178(:)*TPK%RO217(:)+TPK%K181(:)*TPK%RO218(:)+TPK%K& -&190(:)*TPK%RO221(:)+TPK%K193(:)*TPK%RO222(:)+TPK%K196(:)*TPK%RO223(:)+TPK%K199& -&(:)*TPK%RO224(:)+TPK%K208(:)*TPK%RO227(:)+TPK%K222(:)*TPK%RO231(:)+TPK%K228(:)& -&*TPK%RO241(:)+TPK%K232(:)*TPK%RO233(:)+TPK%K235(:)*TPK%RO242(:)+TPK%K239(:)*TP& -&K%RO234(:)+TPK%K242(:)*TPK%RO243(:)+TPK%K246(:)*TPK%RO235(:)+TPK%K249(:)*TPK%R& -&O244(:)+TPK%K253(:)*TPK%RO236(:)+TPK%K256(:)*TPK%RO245(:)+TPK%K260(:)*TPK%RO23& -&7(:)+TPK%K263(:)*TPK%RO246(:)+TPK%K267(:)*TPK%RO238(:)+TPK%K270(:)*TPK%RO247(:& -&)+TPK%K286(:)*TPK%RO249(:)+TPK%K293(:)*TPK%RO251(:)+TPK%K302(:)*TPK%RO254(:)+T& -&PK%K319(:)*TPK%RO256(:) +!NH3/ORA1=0.0 ! -!HO2/RO21=+K110*<NO>+K111*<RO2T>+K112*<HO2>-K112*<HO2> - PJAC(:,10,86)=+TPK%K110(:)*PCONC(:,1)+TPK%K111(:)*PCONC(:,85)+TPK%K112(:)*PCON& -&C(:,10)-TPK%K112(:)*PCONC(:,10) +!NH3/ORA2=0.0 ! -!HO2/RO25=+TPK%CF4*K122*<NO>+K123*<RO2T>+K124*<HO2>-K124*<HO2> - PJAC(:,10,87)=+TPK%CF4*TPK%K122(:)*PCONC(:,1)+TPK%K123(:)*PCONC(:,85)+TPK%K124& -&(:)*PCONC(:,10)-TPK%K124(:)*PCONC(:,10) +!NH3/MO2=0.0 ! -RETURN -END SUBROUTINE SUBJ1 +!NH3/ALKAP=0.0 ! -SUBROUTINE SUBJ2 +!NH3/ALKEP=0.0 ! -!Indices 11 a 15 +!NH3/BIOP=0.0 ! +!NH3/PHO=0.0 ! -!CO/NO=+K119*<RO24>+K300*<RO254>+K340*<RO258> - PJAC(:,11,1)=+TPK%K119(:)*TPK%RO24(:)+TPK%K300(:)*TPK%RO254(:)+TPK%K340(:)*TPK& -&%RO258(:) +!NH3/ADD=0.0 ! -!CO/NO2=0.0 +!NH3/AROP=0.0 ! -!CO/O3=+0.315*K051*<ETHE>+0.56*K056*<OLEL>+0.461*K066*<ISOP>+0.56*K076*<OLEH>+0 -!.445*K086*<BIOL>+0.445*K090*<BIOH>+0.56*K281*<MVK>+0.41*K282*<MCR> - PJAC(:,11,3)=+0.315*TPK%K051(:)*PCONC(:,16)+0.56*TPK%K056(:)*PCONC(:,17)+0.461& -&*TPK%K066(:)*PCONC(:,35)+0.56*TPK%K076(:)*PCONC(:,18)+0.445*TPK%K086(:)*PCONC(& -&:,36)+0.445*TPK%K090(:)*PCONC(:,37)+0.56*TPK%K281(:)*PCONC(:,39)+0.41*TPK%K282& -&(:)*PCONC(:,40) +!NH3/CARBOP=0.0 ! -!CO/HONO=0.0 +!NH3/OLN=0.0 ! -!CO/HNO3=0.0 +!NH3/XO2=0.0 ! -!CO/HNO4=0.0 +!NH3/WC_O3=0.0 ! -!CO/N2O5=0.0 +!NH3/WC_H2O2=0.0 ! -!CO/NO3=+K047*<HCHO> - PJAC(:,11,8)=+TPK%K047(:)*PCONC(:,28) +!NH3/WC_NO=0.0 ! -!CO/NH3=0.0 +!NH3/WC_NO2=0.0 ! -!CO/HO2=+K121*<RO24> - PJAC(:,11,10)=+TPK%K121(:)*TPK%RO24(:) +!NH3/WC_NO3=0.0 ! -!CO/CO=-K024*<OH> - PJAC(:,11,11)=-TPK%K024(:)*PCONC(:,15) +!NH3/WC_N2O5=0.0 ! -!CO/H2O2=0.0 +!NH3/WC_HONO=0.0 ! -!CO/SO2=0.0 +!NH3/WC_HNO3=0.0 ! -!CO/H2SO4=0.0 +!NH3/WC_HNO4=0.0 ! -!CO/OH=-K024*<CO>+K046*<HCHO> - PJAC(:,11,15)=-TPK%K024(:)*PCONC(:,11)+TPK%K046(:)*PCONC(:,28) +!NH3/WC_NH3=+KTC30 + PJAC(:,10,51)=+TPK%KTC30(:) ! -!CO/ETHE=+0.315*K051*<O3>+0.6*K052*<O> - PJAC(:,11,16)=+0.315*TPK%K051(:)*PCONC(:,3)+0.6*TPK%K052(:)*TPK%O(:) +!NH3/WC_OH=0.0 ! -!CO/OLEL=+0.56*K056*<O3> - PJAC(:,11,17)=+0.56*TPK%K056(:)*PCONC(:,3) +!NH3/WC_HO2=0.0 ! -!CO/OLEH=+0.56*K076*<O3> - PJAC(:,11,18)=+0.56*TPK%K076(:)*PCONC(:,3) +!NH3/WC_CO2=0.0 ! -!CO/ALKL=0.0 +!NH3/WC_SO2=0.0 ! -!CO/ALKM=0.0 +!NH3/WC_SULF=0.0 ! -!CO/ALKH=0.0 +!NH3/WC_HCHO=0.0 ! -!CO/AROH=0.0 +!NH3/WC_ORA1=0.0 ! -!CO/AROL=0.0 +!NH3/WC_ORA2=0.0 ! -!CO/AROO=0.0 +!NH3/WC_MO2=0.0 ! -!CO/ARAL=0.0 +!NH3/WC_OP1=0.0 ! -!CO/ARAC=0.0 +!NH3/WC_ASO3=0.0 ! -!CO/PAH=0.0 +!NH3/WC_ASO4=0.0 ! -!CO/HCHO=+K044+K045+K046*<OH>+K047*<NO3> - PJAC(:,11,28)=+TPK%K044(:)+TPK%K045(:)+TPK%K046(:)*PCONC(:,15)+TPK%K047(:)*PCO& -&NC(:,8) +!NH3/WC_ASO5=0.0 ! -!CO/ALD2=+K059 - PJAC(:,11,29)=+TPK%K059(:) +!NH3/WC_AHSO5=0.0 ! -!CO/KETL=0.0 +!NH3/WC_AHMS=0.0 ! -!CO/KETH=0.0 +!NH3/WR_O3=0.0 ! -!CO/MEOH=0.0 +!NH3/WR_H2O2=0.0 ! -!CO/ETOH=0.0 +!NH3/WR_NO=0.0 ! -!CO/ALCH=0.0 +!NH3/WR_NO2=0.0 ! -!CO/ISOP=+0.461*K066*<O3> - PJAC(:,11,35)=+0.461*TPK%K066(:)*PCONC(:,3) +!NH3/WR_NO3=0.0 ! -!CO/BIOL=+0.445*K086*<O3> - PJAC(:,11,36)=+0.445*TPK%K086(:)*PCONC(:,3) +!NH3/WR_N2O5=0.0 ! -!CO/BIOH=+0.445*K090*<O3> - PJAC(:,11,37)=+0.445*TPK%K090(:)*PCONC(:,3) +!NH3/WR_HONO=0.0 ! -!CO/MTBE=0.0 +!NH3/WR_HNO3=0.0 ! -!CO/MVK=+0.56*K281*<O3> - PJAC(:,11,39)=+0.56*TPK%K281(:)*PCONC(:,3) +!NH3/WR_HNO4=0.0 ! -!CO/MCR=+0.41*K282*<O3>+0.15*K284*<O> - PJAC(:,11,40)=+0.41*TPK%K282(:)*PCONC(:,3)+0.15*TPK%K284(:)*TPK%O(:) +!NH3/WR_NH3=+KTR30 + PJAC(:,10,76)=+TPK%KTR30(:) ! -!CO/MGLY=+K276 - PJAC(:,11,41)=+TPK%K276(:) +!NH3/WR_OH=0.0 ! -!CO/GLY=0.0 +!NH3/WR_HO2=0.0 ! -!CO/ORA1=0.0 +!NH3/WR_CO2=0.0 ! -!CO/ORA2=0.0 +!NH3/WR_SO2=0.0 ! -!CO/ACID=0.0 +!NH3/WR_SULF=0.0 ! -!CO/UR28=0.0 +!NH3/WR_HCHO=0.0 ! -!CO/UR21=0.0 +!NH3/WR_ORA1=0.0 ! -!CO/URG2=0.0 +!NH3/WR_ORA2=0.0 ! -!CO/UR26=0.0 +!NH3/WR_MO2=0.0 ! -!CO/RPG2=0.0 +!NH3/WR_OP1=0.0 ! -!CO/RP18=0.0 +!NH3/WR_ASO3=0.0 ! -!CO/RPG3=0.0 +!NH3/WR_ASO4=0.0 ! -!CO/URG4=0.0 +!NH3/WR_ASO5=0.0 ! -!CO/UR8=0.0 +!NH3/WR_AHSO5=0.0 ! -!CO/UR17=0.0 +!NH3/WR_AHMS=0.0 ! -!CO/UR7=0.0 +RETURN +END SUBROUTINE SUBJ1 ! -!CO/RPR3=+K314 - PJAC(:,11,57)=+TPK%K314(:) +SUBROUTINE SUBJ2 ! -!CO/URG6=0.0 +!Indices 11 a 15 ! -!CO/UR22=0.0 ! -!CO/URG7=0.0 +!SO2/O3=0.0 ! -!CO/RPR4=0.0 +!SO2/H2O2=0.0 ! -!CO/RPR7=0.0 +!SO2/NO=0.0 ! -!CO/RPG7=0.0 +!SO2/NO2=0.0 ! -!CO/URG8=0.0 +!SO2/NO3=0.0 ! -!CO/UR19=0.0 +!SO2/N2O5=0.0 ! -!CO/URG9=0.0 +!SO2/HONO=0.0 ! -!CO/AP7=0.0 +!SO2/HNO3=0.0 ! -!CO/URG10=0.0 +!SO2/HNO4=0.0 ! -!CO/RPR1=+K308 - PJAC(:,11,69)=+TPK%K308(:) +!SO2/NH3=0.0 ! -!CO/RPR5=0.0 +!SO2/SO2=-K052*<OH>-KTC14-KTR14 + PJAC(:,11,11)=-TPK%K052(:)*PCONC(:,14)-TPK%KTC14(:)-TPK%KTR14(:) ! -!CO/RPR8=+K329 - PJAC(:,11,71)=+TPK%K329(:) +!SO2/SULF=0.0 ! -!CO/RP10=0.0 +!SO2/CO=0.0 ! -!CO/RP11=0.0 +!SO2/OH=-K052*<SO2> + PJAC(:,11,14)=-TPK%K052(:)*PCONC(:,11) ! -!CO/RP16=+2.*K339 - PJAC(:,11,74)=+2.*TPK%K339(:) +!SO2/HO2=0.0 ! -!CO/RPRL=0.0 +!SO2/CH4=0.0 ! -!CO/APAN=0.0 +!SO2/ETH=0.0 ! -!CO/PAN1=0.0 +!SO2/ALKA=0.0 ! -!CO/PAN2=0.0 +!SO2/ALKE=0.0 ! -!CO/PAN3=0.0 +!SO2/BIO=0.0 ! -!CO/PAN4=0.0 +!SO2/ARO=0.0 ! -!CO/PAN6=0.0 +!SO2/HCHO=0.0 ! -!CO/PAN7=0.0 +!SO2/ALD=0.0 ! -!CO/PAN8=0.0 +!SO2/KET=0.0 ! -!CO/PN10=0.0 +!SO2/CARBO=0.0 ! -!CO/RO2T=+K120*<RO24>+K302*<RO254>+K342*<RO258> - PJAC(:,11,85)=+TPK%K120(:)*TPK%RO24(:)+TPK%K302(:)*TPK%RO254(:)+TPK%K342(:)*TP& -&K%RO258(:) +!SO2/ONIT=0.0 ! -!CO/RO21=0.0 +!SO2/PAN=0.0 ! -!CO/RO25=0.0 +!SO2/OP1=0.0 ! -!H2O2/NO=0.0 +!SO2/OP2=0.0 ! -!H2O2/NO2=0.0 +!SO2/ORA1=0.0 ! -!H2O2/O3=+0.055*K086*<BIOL>+0.055*K090*<BIOH> - PJAC(:,12,3)=+0.055*TPK%K086(:)*PCONC(:,36)+0.055*TPK%K090(:)*PCONC(:,37) +!SO2/ORA2=0.0 ! -!H2O2/HONO=0.0 +!SO2/MO2=0.0 ! -!H2O2/HNO3=0.0 +!SO2/ALKAP=0.0 ! -!H2O2/HNO4=0.0 +!SO2/ALKEP=0.0 ! -!H2O2/N2O5=0.0 +!SO2/BIOP=0.0 ! -!H2O2/NO3=0.0 +!SO2/PHO=0.0 ! -!H2O2/NH3=0.0 +!SO2/ADD=0.0 ! -!H2O2/HO2=+K031*<HO2>+K031*<HO2>+K032*<H2O>*<HO2>+K032*<H2O>*<HO2> - PJAC(:,12,10)=+TPK%K031(:)*PCONC(:,10)+TPK%K031(:)*PCONC(:,10)+TPK%K032(:)*TPK& -&%H2O(:)*PCONC(:,10)+TPK%K032(:)*TPK%H2O(:)*PCONC(:,10) +!SO2/AROP=0.0 ! -!H2O2/CO=0.0 +!SO2/CARBOP=0.0 ! -!H2O2/H2O2=-K036-K037*<OH> - PJAC(:,12,12)=-TPK%K036(:)-TPK%K037(:)*PCONC(:,15) +!SO2/OLN=0.0 ! -!H2O2/SO2=0.0 +!SO2/XO2=0.0 ! -!H2O2/H2SO4=0.0 +!SO2/WC_O3=0.0 ! -!H2O2/OH=-K037*<H2O2> - PJAC(:,12,15)=-TPK%K037(:)*PCONC(:,12) +!SO2/WC_H2O2=0.0 ! -!H2O2/ETHE=0.0 +!SO2/WC_NO=0.0 ! -!H2O2/OLEL=0.0 +!SO2/WC_NO2=0.0 ! -!H2O2/OLEH=0.0 +!SO2/WC_NO3=0.0 ! -!H2O2/ALKL=0.0 +!SO2/WC_N2O5=0.0 ! -!H2O2/ALKM=0.0 +!SO2/WC_HONO=0.0 ! -!H2O2/ALKH=0.0 +!SO2/WC_HNO3=0.0 ! -!H2O2/AROH=0.0 +!SO2/WC_HNO4=0.0 ! -!H2O2/AROL=0.0 +!SO2/WC_NH3=0.0 ! -!H2O2/AROO=0.0 +!SO2/WC_OH=0.0 ! -!H2O2/ARAL=0.0 +!SO2/WC_HO2=0.0 ! -!H2O2/ARAC=0.0 +!SO2/WC_CO2=0.0 ! -!H2O2/PAH=0.0 +!SO2/WC_SO2=+KTC34 + PJAC(:,11,55)=+TPK%KTC34(:) ! -!H2O2/HCHO=0.0 +!SO2/WC_SULF=0.0 ! -!H2O2/ALD2=0.0 +!SO2/WC_HCHO=0.0 ! -!H2O2/KETL=0.0 +!SO2/WC_ORA1=0.0 ! -!H2O2/KETH=0.0 +!SO2/WC_ORA2=0.0 ! -!H2O2/MEOH=0.0 +!SO2/WC_MO2=0.0 ! -!H2O2/ETOH=0.0 +!SO2/WC_OP1=0.0 ! -!H2O2/ALCH=0.0 +!SO2/WC_ASO3=0.0 ! -!H2O2/ISOP=0.0 +!SO2/WC_ASO4=0.0 ! -!H2O2/BIOL=+0.055*K086*<O3> - PJAC(:,12,36)=+0.055*TPK%K086(:)*PCONC(:,3) +!SO2/WC_ASO5=0.0 ! -!H2O2/BIOH=+0.055*K090*<O3> - PJAC(:,12,37)=+0.055*TPK%K090(:)*PCONC(:,3) +!SO2/WC_AHSO5=0.0 ! -!H2O2/MTBE=0.0 +!SO2/WC_AHMS=0.0 ! -!H2O2/MVK=0.0 +!SO2/WR_O3=0.0 ! -!H2O2/MCR=0.0 +!SO2/WR_H2O2=0.0 ! -!H2O2/MGLY=0.0 +!SO2/WR_NO=0.0 ! -!H2O2/GLY=0.0 +!SO2/WR_NO2=0.0 ! -!H2O2/ORA1=0.0 +!SO2/WR_NO3=0.0 ! -!H2O2/ORA2=0.0 +!SO2/WR_N2O5=0.0 ! -!H2O2/ACID=0.0 +!SO2/WR_HONO=0.0 ! -!H2O2/UR28=0.0 +!SO2/WR_HNO3=0.0 ! -!H2O2/UR21=0.0 +!SO2/WR_HNO4=0.0 ! -!H2O2/URG2=0.0 +!SO2/WR_NH3=0.0 ! -!H2O2/UR26=0.0 +!SO2/WR_OH=0.0 ! -!H2O2/RPG2=0.0 +!SO2/WR_HO2=0.0 ! -!H2O2/RP18=0.0 +!SO2/WR_CO2=0.0 ! -!H2O2/RPG3=0.0 +!SO2/WR_SO2=+KTR34 + PJAC(:,11,80)=+TPK%KTR34(:) ! -!H2O2/URG4=0.0 +!SO2/WR_SULF=0.0 ! -!H2O2/UR8=0.0 +!SO2/WR_HCHO=0.0 ! -!H2O2/UR17=0.0 +!SO2/WR_ORA1=0.0 ! -!H2O2/UR7=0.0 +!SO2/WR_ORA2=0.0 ! -!H2O2/RPR3=0.0 +!SO2/WR_MO2=0.0 ! -!H2O2/URG6=0.0 +!SO2/WR_OP1=0.0 ! -!H2O2/UR22=0.0 +!SO2/WR_ASO3=0.0 ! -!H2O2/URG7=0.0 +!SO2/WR_ASO4=0.0 ! -!H2O2/RPR4=0.0 +!SO2/WR_ASO5=0.0 ! -!H2O2/RPR7=0.0 +!SO2/WR_AHSO5=0.0 ! -!H2O2/RPG7=0.0 +!SO2/WR_AHMS=0.0 ! -!H2O2/URG8=0.0 +!SULF/O3=0.0 ! -!H2O2/UR19=0.0 +!SULF/H2O2=0.0 ! -!H2O2/URG9=0.0 +!SULF/NO=0.0 ! -!H2O2/AP7=0.0 +!SULF/NO2=0.0 ! -!H2O2/URG10=0.0 +!SULF/NO3=0.0 ! -!H2O2/RPR1=0.0 +!SULF/N2O5=0.0 ! -!H2O2/RPR5=0.0 +!SULF/HONO=0.0 ! -!H2O2/RPR8=0.0 +!SULF/HNO3=0.0 ! -!H2O2/RP10=0.0 +!SULF/HNO4=0.0 ! -!H2O2/RP11=0.0 +!SULF/NH3=0.0 ! -!H2O2/RP16=0.0 +!SULF/SO2=+K052*<OH> + PJAC(:,12,11)=+TPK%K052(:)*PCONC(:,14) ! -!H2O2/RPRL=0.0 +!SULF/SULF=-K132-KTC15-KTR15 + PJAC(:,12,12)=-TPK%K132(:)-TPK%KTC15(:)-TPK%KTR15(:) ! -!H2O2/APAN=0.0 +!SULF/CO=0.0 ! -!H2O2/PAN1=0.0 +!SULF/OH=+K052*<SO2> + PJAC(:,12,14)=+TPK%K052(:)*PCONC(:,11) ! -!H2O2/PAN2=0.0 +!SULF/HO2=0.0 ! -!H2O2/PAN3=0.0 +!SULF/CH4=0.0 ! -!H2O2/PAN4=0.0 +!SULF/ETH=0.0 ! -!H2O2/PAN6=0.0 +!SULF/ALKA=0.0 ! -!H2O2/PAN7=0.0 +!SULF/ALKE=0.0 ! -!H2O2/PAN8=0.0 +!SULF/BIO=0.0 ! -!H2O2/PN10=0.0 +!SULF/ARO=0.0 ! -!H2O2/RO2T=0.0 +!SULF/HCHO=0.0 ! -!H2O2/RO21=0.0 +!SULF/ALD=0.0 ! -!H2O2/RO25=0.0 +!SULF/KET=0.0 ! -!SO2/NO=0.0 +!SULF/CARBO=0.0 ! -!SO2/NO2=0.0 +!SULF/ONIT=0.0 ! -!SO2/O3=0.0 +!SULF/PAN=0.0 ! -!SO2/HONO=0.0 +!SULF/OP1=0.0 ! -!SO2/HNO3=0.0 +!SULF/OP2=0.0 ! -!SO2/HNO4=0.0 +!SULF/ORA1=0.0 ! -!SO2/N2O5=0.0 +!SULF/ORA2=0.0 ! -!SO2/NO3=0.0 +!SULF/MO2=0.0 ! -!SO2/NH3=0.0 +!SULF/ALKAP=0.0 ! -!SO2/HO2=0.0 +!SULF/ALKEP=0.0 ! -!SO2/CO=0.0 +!SULF/BIOP=0.0 ! -!SO2/H2O2=0.0 +!SULF/PHO=0.0 ! -!SO2/SO2=-K035*<OH> - PJAC(:,13,13)=-TPK%K035(:)*PCONC(:,15) +!SULF/ADD=0.0 ! -!SO2/H2SO4=0.0 +!SULF/AROP=0.0 ! -!SO2/OH=-K035*<SO2> - PJAC(:,13,15)=-TPK%K035(:)*PCONC(:,13) +!SULF/CARBOP=0.0 ! -!SO2/ETHE=0.0 +!SULF/OLN=0.0 ! -!SO2/OLEL=0.0 +!SULF/XO2=0.0 ! -!SO2/OLEH=0.0 +!SULF/WC_O3=0.0 ! -!SO2/ALKL=0.0 +!SULF/WC_H2O2=0.0 ! -!SO2/ALKM=0.0 +!SULF/WC_NO=0.0 ! -!SO2/ALKH=0.0 +!SULF/WC_NO2=0.0 ! -!SO2/AROH=0.0 +!SULF/WC_NO3=0.0 ! -!SO2/AROL=0.0 +!SULF/WC_N2O5=0.0 ! -!SO2/AROO=0.0 +!SULF/WC_HONO=0.0 ! -!SO2/ARAL=0.0 +!SULF/WC_HNO3=0.0 ! -!SO2/ARAC=0.0 +!SULF/WC_HNO4=0.0 ! -!SO2/PAH=0.0 +!SULF/WC_NH3=0.0 ! -!SO2/HCHO=0.0 +!SULF/WC_OH=0.0 ! -!SO2/ALD2=0.0 +!SULF/WC_HO2=0.0 ! -!SO2/KETL=0.0 +!SULF/WC_CO2=0.0 ! -!SO2/KETH=0.0 +!SULF/WC_SO2=0.0 ! -!SO2/MEOH=0.0 +!SULF/WC_SULF=+KTC35 + PJAC(:,12,56)=+TPK%KTC35(:) ! -!SO2/ETOH=0.0 +!SULF/WC_HCHO=0.0 ! -!SO2/ALCH=0.0 +!SULF/WC_ORA1=0.0 ! -!SO2/ISOP=0.0 +!SULF/WC_ORA2=0.0 ! -!SO2/BIOL=0.0 +!SULF/WC_MO2=0.0 ! -!SO2/BIOH=0.0 +!SULF/WC_OP1=0.0 ! -!SO2/MTBE=0.0 +!SULF/WC_ASO3=0.0 ! -!SO2/MVK=0.0 +!SULF/WC_ASO4=0.0 ! -!SO2/MCR=0.0 +!SULF/WC_ASO5=0.0 ! -!SO2/MGLY=0.0 +!SULF/WC_AHSO5=0.0 ! -!SO2/GLY=0.0 +!SULF/WC_AHMS=0.0 ! -!SO2/ORA1=0.0 +!SULF/WR_O3=0.0 ! -!SO2/ORA2=0.0 +!SULF/WR_H2O2=0.0 ! -!SO2/ACID=0.0 +!SULF/WR_NO=0.0 ! -!SO2/UR28=0.0 +!SULF/WR_NO2=0.0 ! -!SO2/UR21=0.0 +!SULF/WR_NO3=0.0 ! -!SO2/URG2=0.0 +!SULF/WR_N2O5=0.0 ! -!SO2/UR26=0.0 +!SULF/WR_HONO=0.0 ! -!SO2/RPG2=0.0 +!SULF/WR_HNO3=0.0 ! -!SO2/RP18=0.0 +!SULF/WR_HNO4=0.0 ! -!SO2/RPG3=0.0 +!SULF/WR_NH3=0.0 ! -!SO2/URG4=0.0 +!SULF/WR_OH=0.0 ! -!SO2/UR8=0.0 +!SULF/WR_HO2=0.0 ! -!SO2/UR17=0.0 +!SULF/WR_CO2=0.0 ! -!SO2/UR7=0.0 +!SULF/WR_SO2=0.0 ! -!SO2/RPR3=0.0 +!SULF/WR_SULF=+KTR35 + PJAC(:,12,81)=+TPK%KTR35(:) ! -!SO2/URG6=0.0 +!SULF/WR_HCHO=0.0 ! -!SO2/UR22=0.0 +!SULF/WR_ORA1=0.0 ! -!SO2/URG7=0.0 +!SULF/WR_ORA2=0.0 ! -!SO2/RPR4=0.0 +!SULF/WR_MO2=0.0 ! -!SO2/RPR7=0.0 +!SULF/WR_OP1=0.0 ! -!SO2/RPG7=0.0 +!SULF/WR_ASO3=0.0 ! -!SO2/URG8=0.0 +!SULF/WR_ASO4=0.0 ! -!SO2/UR19=0.0 +!SULF/WR_ASO5=0.0 ! -!SO2/URG9=0.0 +!SULF/WR_AHSO5=0.0 ! -!SO2/AP7=0.0 +!SULF/WR_AHMS=0.0 ! -!SO2/URG10=0.0 +!CO/O3=+0.35120*K079*<ALKE>+0.36000*K080*<BIO>+0.64728*K081*<CARBO>+0.13*K082*< +!PAN> + PJAC(:,13,1)=+0.35120*TPK%K079(:)*PCONC(:,19)+0.36000*TPK%K080(:)*PCONC(:,20)+& +&0.64728*TPK%K081(:)*PCONC(:,25)+0.13*TPK%K082(:)*PCONC(:,27) ! -!SO2/RPR1=0.0 +!CO/H2O2=0.0 ! -!SO2/RPR5=0.0 +!CO/NO=0.0 ! -!SO2/RPR8=0.0 +!CO/NO2=0.0 ! -!SO2/RP10=0.0 +!CO/NO3=+K072*<HCHO>+1.33723*K074*<CARBO> + PJAC(:,13,5)=+TPK%K072(:)*PCONC(:,22)+1.33723*TPK%K074(:)*PCONC(:,25) ! -!SO2/RP11=0.0 +!CO/N2O5=0.0 ! -!SO2/RP16=0.0 +!CO/HONO=0.0 ! -!SO2/RPRL=0.0 +!CO/HNO3=0.0 ! -!SO2/APAN=0.0 +!CO/HNO4=0.0 ! -!SO2/PAN1=0.0 +!CO/NH3=0.0 ! -!SO2/PAN2=0.0 +!CO/SO2=0.0 ! -!SO2/PAN3=0.0 +!CO/SULF=0.0 ! -!SO2/PAN4=0.0 +!CO/CO=-K053*<OH> + PJAC(:,13,13)=-TPK%K053(:)*PCONC(:,14) ! -!SO2/PAN6=0.0 +!CO/OH=-K053*<CO>+0.00878*K058*<ALKA>+K062*<HCHO>+1.01732*K065*<CARBO> + PJAC(:,13,14)=-TPK%K053(:)*PCONC(:,13)+0.00878*TPK%K058(:)*PCONC(:,18)+TPK%K06& +&2(:)*PCONC(:,22)+1.01732*TPK%K065(:)*PCONC(:,25) ! -!SO2/PAN7=0.0 +!CO/HO2=0.0 ! -!SO2/PAN8=0.0 +!CO/CH4=0.0 ! -!SO2/PN10=0.0 +!CO/ETH=0.0 ! -!SO2/RO2T=0.0 +!CO/ALKA=+0.00878*K058*<OH> + PJAC(:,13,18)=+0.00878*TPK%K058(:)*PCONC(:,14) ! -!SO2/RO21=0.0 +!CO/ALKE=+0.35120*K079*<O3> + PJAC(:,13,19)=+0.35120*TPK%K079(:)*PCONC(:,1) ! -!SO2/RO25=0.0 +!CO/BIO=+0.01*K054*<O3P>+0.36000*K080*<O3> + PJAC(:,13,20)=+0.01*TPK%K054(:)*TPK%O3P(:)+0.36000*TPK%K080(:)*PCONC(:,1) ! -!H2SO4/NO=0.0 +!CO/ARO=0.0 ! -!H2SO4/NO2=0.0 +!CO/HCHO=+K010+K011+K062*<OH>+K072*<NO3> + PJAC(:,13,22)=+TPK%K010(:)+TPK%K011(:)+TPK%K062(:)*PCONC(:,14)+TPK%K072(:)*PCO& +&NC(:,5) ! -!H2SO4/O3=0.0 +!CO/ALD=+K012 + PJAC(:,13,23)=+TPK%K012(:) ! -!H2SO4/HONO=0.0 +!CO/KET=0.0 ! -!H2SO4/HNO3=0.0 +!CO/CARBO=+0.91924*K016+1.01732*K065*<OH>+1.33723*K074*<NO3>+0.64728*K081*<O3> + PJAC(:,13,25)=+0.91924*TPK%K016(:)+1.01732*TPK%K065(:)*PCONC(:,14)+1.33723*TPK& +&%K074(:)*PCONC(:,5)+0.64728*TPK%K081(:)*PCONC(:,1) ! -!H2SO4/HNO4=0.0 +!CO/ONIT=0.0 ! -!H2SO4/N2O5=0.0 +!CO/PAN=+0.13*K082*<O3> + PJAC(:,13,27)=+0.13*TPK%K082(:)*PCONC(:,1) ! -!H2SO4/NO3=0.0 +!CO/OP1=0.0 ! -!H2SO4/NH3=0.0 +!CO/OP2=0.0 ! -!H2SO4/HO2=0.0 +!CO/ORA1=0.0 ! -!H2SO4/CO=0.0 +!CO/ORA2=0.0 ! -!H2SO4/H2O2=0.0 +!CO/MO2=0.0 ! -!H2SO4/SO2=+K035*<OH> - PJAC(:,14,13)=+TPK%K035(:)*PCONC(:,15) +!CO/ALKAP=0.0 ! -!H2SO4/H2SO4=-K346 - PJAC(:,14,14)=-TPK%K346(:) +!CO/ALKEP=0.0 ! -!H2SO4/OH=+K035*<SO2> - PJAC(:,14,15)=+TPK%K035(:)*PCONC(:,13) +!CO/BIOP=0.0 ! -!H2SO4/ETHE=0.0 +!CO/PHO=0.0 ! -!H2SO4/OLEL=0.0 +!CO/ADD=0.0 ! -!H2SO4/OLEH=0.0 +!CO/AROP=0.0 ! -!H2SO4/ALKL=0.0 +!CO/CARBOP=0.0 ! -!H2SO4/ALKM=0.0 +!CO/OLN=0.0 ! -!H2SO4/ALKH=0.0 +!CO/XO2=0.0 ! -!H2SO4/AROH=0.0 +!CO/WC_O3=0.0 ! -!H2SO4/AROL=0.0 +!CO/WC_H2O2=0.0 ! -!H2SO4/AROO=0.0 +!CO/WC_NO=0.0 ! -!H2SO4/ARAL=0.0 +!CO/WC_NO2=0.0 ! -!H2SO4/ARAC=0.0 +!CO/WC_NO3=0.0 ! -!H2SO4/PAH=0.0 +!CO/WC_N2O5=0.0 ! -!H2SO4/HCHO=0.0 +!CO/WC_HONO=0.0 ! -!H2SO4/ALD2=0.0 +!CO/WC_HNO3=0.0 ! -!H2SO4/KETL=0.0 +!CO/WC_HNO4=0.0 ! -!H2SO4/KETH=0.0 +!CO/WC_NH3=0.0 ! -!H2SO4/MEOH=0.0 +!CO/WC_OH=0.0 ! -!H2SO4/ETOH=0.0 +!CO/WC_HO2=0.0 ! -!H2SO4/ALCH=0.0 +!CO/WC_CO2=0.0 ! -!H2SO4/ISOP=0.0 +!CO/WC_SO2=0.0 ! -!H2SO4/BIOL=0.0 +!CO/WC_SULF=0.0 ! -!H2SO4/BIOH=0.0 +!CO/WC_HCHO=0.0 ! -!H2SO4/MTBE=0.0 +!CO/WC_ORA1=0.0 ! -!H2SO4/MVK=0.0 +!CO/WC_ORA2=0.0 ! -!H2SO4/MCR=0.0 +!CO/WC_MO2=0.0 ! -!H2SO4/MGLY=0.0 +!CO/WC_OP1=0.0 ! -!H2SO4/GLY=0.0 +!CO/WC_ASO3=0.0 ! -!H2SO4/ORA1=0.0 +!CO/WC_ASO4=0.0 ! -!H2SO4/ORA2=0.0 +!CO/WC_ASO5=0.0 ! -!H2SO4/ACID=0.0 +!CO/WC_AHSO5=0.0 ! -!H2SO4/UR28=0.0 +!CO/WC_AHMS=0.0 ! -!H2SO4/UR21=0.0 +!CO/WR_O3=0.0 ! -!H2SO4/URG2=0.0 +!CO/WR_H2O2=0.0 ! -!H2SO4/UR26=0.0 +!CO/WR_NO=0.0 ! -!H2SO4/RPG2=0.0 +!CO/WR_NO2=0.0 ! -!H2SO4/RP18=0.0 +!CO/WR_NO3=0.0 ! -!H2SO4/RPG3=0.0 +!CO/WR_N2O5=0.0 ! -!H2SO4/URG4=0.0 +!CO/WR_HONO=0.0 ! -!H2SO4/UR8=0.0 +!CO/WR_HNO3=0.0 ! -!H2SO4/UR17=0.0 +!CO/WR_HNO4=0.0 ! -!H2SO4/UR7=0.0 +!CO/WR_NH3=0.0 ! -!H2SO4/RPR3=0.0 +!CO/WR_OH=0.0 ! -!H2SO4/URG6=0.0 +!CO/WR_HO2=0.0 ! -!H2SO4/UR22=0.0 +!CO/WR_CO2=0.0 ! -!H2SO4/URG7=0.0 +!CO/WR_SO2=0.0 ! -!H2SO4/RPR4=0.0 +!CO/WR_SULF=0.0 ! -!H2SO4/RPR7=0.0 +!CO/WR_HCHO=0.0 ! -!H2SO4/RPG7=0.0 +!CO/WR_ORA1=0.0 ! -!H2SO4/URG8=0.0 +!CO/WR_ORA2=0.0 ! -!H2SO4/UR19=0.0 +!CO/WR_MO2=0.0 ! -!H2SO4/URG9=0.0 +!CO/WR_OP1=0.0 ! -!H2SO4/AP7=0.0 +!CO/WR_ASO3=0.0 ! -!H2SO4/URG10=0.0 +!CO/WR_ASO4=0.0 ! -!H2SO4/RPR1=0.0 +!CO/WR_ASO5=0.0 ! -!H2SO4/RPR5=0.0 +!CO/WR_AHSO5=0.0 ! -!H2SO4/RPR8=0.0 +!CO/WR_AHMS=0.0 ! -!H2SO4/RP10=0.0 +!OH/O3=-K023*<OH>+K024*<HO2>+0.39435*K079*<ALKE>+0.28000*K080*<BIO>+0.20595*K08 +!1*<CARBO>+0.036*K082*<PAN>+K087*<ADD> + PJAC(:,14,1)=-TPK%K023(:)*PCONC(:,14)+TPK%K024(:)*PCONC(:,15)+0.39435*TPK%K079& +&(:)*PCONC(:,19)+0.28000*TPK%K080(:)*PCONC(:,20)+0.20595*TPK%K081(:)*PCONC(:,25& +&)+0.036*TPK%K082(:)*PCONC(:,27)+TPK%K087(:)*PCONC(:,37) ! -!H2SO4/RP11=0.0 +!OH/H2O2=+K009+K009-K026*<OH> + PJAC(:,14,2)=+TPK%K009(:)+TPK%K009(:)-TPK%K026(:)*PCONC(:,14) ! -!H2SO4/RP16=0.0 +!OH/NO=-K032*<OH>+K035*<HO2> + PJAC(:,14,3)=-TPK%K032(:)*PCONC(:,14)+TPK%K035(:)*PCONC(:,15) ! -!H2SO4/RPRL=0.0 +!OH/NO2=-K033*<OH> + PJAC(:,14,4)=-TPK%K033(:)*PCONC(:,14) ! -!H2SO4/APAN=0.0 +!OH/NO3=-K034*<OH>+0.7*K038*<HO2> + PJAC(:,14,5)=-TPK%K034(:)*PCONC(:,14)+0.7*TPK%K038(:)*PCONC(:,15) ! -!H2SO4/PAN1=0.0 +!OH/N2O5=0.0 ! -!H2SO4/PAN2=0.0 +!OH/HONO=+K004-K039*<OH> + PJAC(:,14,7)=+TPK%K004(:)-TPK%K039(:)*PCONC(:,14) ! -!H2SO4/PAN3=0.0 +!OH/HNO3=+K005-K040*<OH> + PJAC(:,14,8)=+TPK%K005(:)-TPK%K040(:)*PCONC(:,14) ! -!H2SO4/PAN4=0.0 +!OH/HNO4=+0.35*K006-K041*<OH> + PJAC(:,14,9)=+0.35*TPK%K006(:)-TPK%K041(:)*PCONC(:,14) ! -!H2SO4/PAN6=0.0 +!OH/NH3=-K050*<OH> + PJAC(:,14,10)=-TPK%K050(:)*PCONC(:,14) ! -!H2SO4/PAN7=0.0 +!OH/SO2=-K052*<OH> + PJAC(:,14,11)=-TPK%K052(:)*PCONC(:,14) ! -!H2SO4/PAN8=0.0 +!OH/SULF=0.0 ! -!H2SO4/PN10=0.0 +!OH/CO=-K053*<OH> + PJAC(:,14,13)=-TPK%K053(:)*PCONC(:,14) ! -!H2SO4/RO2T=0.0 +!OH/OH=-K023*<O3>-K025*<HO2>-K026*<H2O2>-K032*<NO>-K033*<NO2>-K034*<NO3>-K039*< +!HONO>-K040*<HNO3>-K041*<HNO4>-K050*<NH3>-K051*<H2>-K052*<SO2>-K053*<CO>-K056*< +!CH4>-K057*<ETH>+0.00878*K058*<ALKA>-K058*<ALKA>-K059*<ALKE>-K060*<BIO>-K061*<A +!RO>-K062*<HCHO>-K063*<ALD>-K064*<KET>-K065*<CARBO>-K066*<ORA1>-K067*<ORA2>+0.3 +!5*K068*<OP1>-K068*<OP1>+0.44925*K069*<OP2>-K069*<OP2>-K070*<PAN>-K071*<ONIT>-K +!TC11-KTR11 + PJAC(:,14,14)=-TPK%K023(:)*PCONC(:,1)-TPK%K025(:)*PCONC(:,15)-TPK%K026(:)*PCON& +&C(:,2)-TPK%K032(:)*PCONC(:,3)-TPK%K033(:)*PCONC(:,4)-TPK%K034(:)*PCONC(:,5)-TP& +&K%K039(:)*PCONC(:,7)-TPK%K040(:)*PCONC(:,8)-TPK%K041(:)*PCONC(:,9)-TPK%K050(:)& +&*PCONC(:,10)-TPK%K051(:)*TPK%H2(:)-TPK%K052(:)*PCONC(:,11)-TPK%K053(:)*PCONC(:& +&,13)-TPK%K056(:)*PCONC(:,16)-TPK%K057(:)*PCONC(:,17)+0.00878*TPK%K058(:)*PCONC& +&(:,18)-TPK%K058(:)*PCONC(:,18)-TPK%K059(:)*PCONC(:,19)-TPK%K060(:)*PCONC(:,20)& +&-TPK%K061(:)*PCONC(:,21)-TPK%K062(:)*PCONC(:,22)-TPK%K063(:)*PCONC(:,23)-TPK%K& +&064(:)*PCONC(:,24)-TPK%K065(:)*PCONC(:,25)-TPK%K066(:)*PCONC(:,30)-TPK%K067(:)& +&*PCONC(:,31)+0.35*TPK%K068(:)*PCONC(:,28)-TPK%K068(:)*PCONC(:,28)+0.44925*TPK%& +&K069(:)*PCONC(:,29)-TPK%K069(:)*PCONC(:,29)-TPK%K070(:)*PCONC(:,27)-TPK%K071(:& +&)*PCONC(:,26)-TPK%KTC11(:)-TPK%KTR11(:) ! -!H2SO4/RO21=0.0 +!OH/HO2=+K024*<O3>-K025*<OH>+K035*<NO>+0.7*K038*<NO3> + PJAC(:,14,15)=+TPK%K024(:)*PCONC(:,1)-TPK%K025(:)*PCONC(:,14)+TPK%K035(:)*PCON& +&C(:,3)+0.7*TPK%K038(:)*PCONC(:,5) ! -!H2SO4/RO25=0.0 +!OH/CH4=-K056*<OH> + PJAC(:,14,16)=-TPK%K056(:)*PCONC(:,14) ! -!OH/NO=-K019*<OH>+K026*<HO2>+K340*<RO258> - PJAC(:,15,1)=-TPK%K019(:)*PCONC(:,15)+TPK%K026(:)*PCONC(:,10)+TPK%K340(:)*TPK%& -&RO258(:) +!OH/ETH=-K057*<OH> + PJAC(:,14,17)=-TPK%K057(:)*PCONC(:,14) ! -!OH/NO2=-K022*<OH> - PJAC(:,15,2)=-TPK%K022(:)*PCONC(:,15) +!OH/ALKA=+0.00878*K058*<OH>-K058*<OH> + PJAC(:,14,18)=+0.00878*TPK%K058(:)*PCONC(:,14)-TPK%K058(:)*PCONC(:,14) ! -!OH/O3=-K025*<OH>+K030*<HO2>+0.06*K051*<ETHE>+0.36*K056*<OLEL>+0.664*K066*<ISOP -!>+0.36*K076*<OLEH>+0.89*K086*<BIOL>+0.89*K090*<BIOH>+0.36*K281*<MVK>+0.82*K282 -!*<MCR> - PJAC(:,15,3)=-TPK%K025(:)*PCONC(:,15)+TPK%K030(:)*PCONC(:,10)+0.06*TPK%K051(:)& -&*PCONC(:,16)+0.36*TPK%K056(:)*PCONC(:,17)+0.664*TPK%K066(:)*PCONC(:,35)+0.36*T& -&PK%K076(:)*PCONC(:,18)+0.89*TPK%K086(:)*PCONC(:,36)+0.89*TPK%K090(:)*PCONC(:,3& -&7)+0.36*TPK%K281(:)*PCONC(:,39)+0.82*TPK%K282(:)*PCONC(:,40) +!OH/ALKE=-K059*<OH>+0.39435*K079*<O3> + PJAC(:,14,19)=-TPK%K059(:)*PCONC(:,14)+0.39435*TPK%K079(:)*PCONC(:,1) ! -!OH/HONO=+0.9*K020-K039*<OH> - PJAC(:,15,4)=+0.9*TPK%K020(:)-TPK%K039(:)*PCONC(:,15) +!OH/BIO=+0.02*K054*<O3P>-K060*<OH>+0.28000*K080*<O3> + PJAC(:,14,20)=+0.02*TPK%K054(:)*TPK%O3P(:)-TPK%K060(:)*PCONC(:,14)+0.28000*TPK& +&%K080(:)*PCONC(:,1) ! -!OH/HNO3=-K023*<OH> - PJAC(:,15,5)=-TPK%K023(:)*PCONC(:,15) +!OH/ARO=-K061*<OH> + PJAC(:,14,21)=-TPK%K061(:)*PCONC(:,14) ! -!OH/HNO4=-K029*<OH> - PJAC(:,15,6)=-TPK%K029(:)*PCONC(:,15) +!OH/HCHO=-K062*<OH> + PJAC(:,14,22)=-TPK%K062(:)*PCONC(:,14) ! -!OH/N2O5=0.0 +!OH/ALD=-K063*<OH> + PJAC(:,14,23)=-TPK%K063(:)*PCONC(:,14) ! -!OH/NO3=+0.8*K033*<HO2>-K040*<OH> - PJAC(:,15,8)=+0.8*TPK%K033(:)*PCONC(:,10)-TPK%K040(:)*PCONC(:,15) -! -!OH/NH3=-K345*<OH> - PJAC(:,15,9)=-TPK%K345(:)*PCONC(:,15) -! -!OH/HO2=+K026*<NO>+K030*<O3>+0.8*K033*<NO3>-K042*<OH>+K112*<RO21>+K115*<RO22>+K -!118*<RO23>+K121*<RO24>+K124*<RO25>+K146*<RO27>+K152*<RO29>+K155*<RO210>+K158*< -!RO211>+K161*<RO212>+K164*<RO213>+K170*<RO214>+K173*<RO215>+K176*<RO216>+K179*< -!RO217>+K182*<RO218>+K185*<RO219>+K188*<RO220>+K191*<RO221>+K194*<RO222>+K197*< -!RO223>+K200*<RO224>+K203*<RO225>+K206*<RO226>+K209*<RO227>+K212*<RO228>+K215*< -!RO229>+K218*<RO240>+K220*<RO230>+K223*<RO231>+K226*<RO232>+K229*<RO241>+K233*< -!RO233>+K236*<RO242>+K240*<RO234>+K243*<RO243>+K247*<RO235>+K250*<RO244>+K254*< -!RO236>+K257*<RO245>+K261*<RO237>+K264*<RO246>+K268*<RO238>+K271*<RO247>+K287*< -!RO249> - PJAC(:,15,10)=+TPK%K026(:)*PCONC(:,1)+TPK%K030(:)*PCONC(:,3)+0.8*TPK%K033(:)*P& -&CONC(:,8)-TPK%K042(:)*PCONC(:,15)+TPK%K112(:)*PCONC(:,86)+TPK%K115(:)*TPK%RO22& -&(:)+TPK%K118(:)*TPK%RO23(:)+TPK%K121(:)*TPK%RO24(:)+TPK%K124(:)*PCONC(:,87)+TP& -&K%K146(:)*TPK%RO27(:)+TPK%K152(:)*TPK%RO29(:)+TPK%K155(:)*TPK%RO210(:)+TPK%K15& -&8(:)*TPK%RO211(:)+TPK%K161(:)*TPK%RO212(:)+TPK%K164(:)*TPK%RO213(:)+TPK%K170(:& -&)*TPK%RO214(:)+TPK%K173(:)*TPK%RO215(:)+TPK%K176(:)*TPK%RO216(:)+TPK%K179(:)*T& -&PK%RO217(:)+TPK%K182(:)*TPK%RO218(:)+TPK%K185(:)*TPK%RO219(:)+TPK%K188(:)*TPK%& -&RO220(:)+TPK%K191(:)*TPK%RO221(:)+TPK%K194(:)*TPK%RO222(:)+TPK%K197(:)*TPK%RO2& -&23(:)+TPK%K200(:)*TPK%RO224(:)+TPK%K203(:)*TPK%RO225(:)+TPK%K206(:)*TPK%RO226(& -&:)+TPK%K209(:)*TPK%RO227(:)+TPK%K212(:)*TPK%RO228(:)+TPK%K215(:)*TPK%RO229(:)+& -&TPK%K218(:)*TPK%RO240(:)+TPK%K220(:)*TPK%RO230(:)+TPK%K223(:)*TPK%RO231(:)+TPK& -&%K226(:)*TPK%RO232(:)+TPK%K229(:)*TPK%RO241(:)+TPK%K233(:)*TPK%RO233(:)+TPK%K2& -&36(:)*TPK%RO242(:)+TPK%K240(:)*TPK%RO234(:)+TPK%K243(:)*TPK%RO243(:)+TPK%K247(& -&:)*TPK%RO235(:)+TPK%K250(:)*TPK%RO244(:)+TPK%K254(:)*TPK%RO236(:)+TPK%K257(:)*& -&TPK%RO245(:)+TPK%K261(:)*TPK%RO237(:)+TPK%K264(:)*TPK%RO246(:)+TPK%K268(:)*TPK& -&%RO238(:)+TPK%K271(:)*TPK%RO247(:)+TPK%K287(:)*TPK%RO249(:) -! -!OH/CO=-K024*<OH> - PJAC(:,15,11)=-TPK%K024(:)*PCONC(:,15) -! -!OH/H2O2=+2.*K036-K037*<OH> - PJAC(:,15,12)=+2.*TPK%K036(:)-TPK%K037(:)*PCONC(:,15) -! -!OH/SO2=-K035*<OH> - PJAC(:,15,13)=-TPK%K035(:)*PCONC(:,15) -! -!OH/H2SO4=0.0 -! -!OH/OH=-K019*<NO>-K022*<NO2>-K023*<HNO3>-K024*<CO>-K025*<O3>-K029*<HNO4>-K035*< -!SO2>-K037*<H2O2>-K039*<HONO>-K040*<NO3>-K042*<HO2>-K043*<CH4>-K046*<HCHO>-K048 -!*<MEOH>-K049*<ETHE>-K053*<ETOH>-K054*<OLEL>-K058*<ALKL>-K060*<ALD2>-K062*<KETL -!>-K064*<ISOP>-K068*<MTBE>-K069*<ALCH>-K070*<KETH>-K073*<AROO>-K074*<OLEH>-K078 -!*<ALKM>-K079*<AROL>-K080*<AROH>-K082*<ARAL>-K083*<ARAC>-K084*<BIOL>-K088*<BIOH -!>-K092*<PAH>-K093*<ALKH>-K272*<MVK>-K273*<MCR>-K274*<MGLY>-K303*<RPR5>-K304*<R -!PR1>-K305*<RP16>-K306*<RPRL>-K312*<RPR3>-K322*<RPR7>-K323*<RPG7>-K324*<RPR8>-K -!325*<RP10>-K326*<RP11>-K334*<RPG3>-K335*<RPG2>-K337*<RP18>-K345*<NH3>-K347*<OR -!A1>-K348*<ORA2>-K349*<ACID> - PJAC(:,15,15)=-TPK%K019(:)*PCONC(:,1)-TPK%K022(:)*PCONC(:,2)-TPK%K023(:)*PCONC& -&(:,5)-TPK%K024(:)*PCONC(:,11)-TPK%K025(:)*PCONC(:,3)-TPK%K029(:)*PCONC(:,6)-TP& -&K%K035(:)*PCONC(:,13)-TPK%K037(:)*PCONC(:,12)-TPK%K039(:)*PCONC(:,4)-TPK%K040(& -&:)*PCONC(:,8)-TPK%K042(:)*PCONC(:,10)-TPK%K043(:)*TPK%CH4(:)-TPK%K046(:)*PCONC& -&(:,28)-TPK%K048(:)*PCONC(:,32)-TPK%K049(:)*PCONC(:,16)-TPK%K053(:)*PCONC(:,33)& -&-TPK%K054(:)*PCONC(:,17)-TPK%K058(:)*PCONC(:,19)-TPK%K060(:)*PCONC(:,29)-TPK%K& -&062(:)*PCONC(:,30)-TPK%K064(:)*PCONC(:,35)-TPK%K068(:)*PCONC(:,38)-TPK%K069(:)& -&*PCONC(:,34)-TPK%K070(:)*PCONC(:,31)-TPK%K073(:)*PCONC(:,24)-TPK%K074(:)*PCONC& -&(:,18)-TPK%K078(:)*PCONC(:,20)-TPK%K079(:)*PCONC(:,23)-TPK%K080(:)*PCONC(:,22)& -&-TPK%K082(:)*PCONC(:,25)-TPK%K083(:)*PCONC(:,26)-TPK%K084(:)*PCONC(:,36)-TPK%K& -&088(:)*PCONC(:,37)-TPK%K092(:)*PCONC(:,27)-TPK%K093(:)*PCONC(:,21)-TPK%K272(:)& -&*PCONC(:,39)-TPK%K273(:)*PCONC(:,40)-TPK%K274(:)*PCONC(:,41)-TPK%K303(:)*PCONC& -&(:,70)-TPK%K304(:)*PCONC(:,69)-TPK%K305(:)*PCONC(:,74)-TPK%K306(:)*PCONC(:,75)& -&-TPK%K312(:)*PCONC(:,57)-TPK%K322(:)*PCONC(:,62)-TPK%K323(:)*PCONC(:,63)-TPK%K& -&324(:)*PCONC(:,71)-TPK%K325(:)*PCONC(:,72)-TPK%K326(:)*PCONC(:,73)-TPK%K334(:)& -&*PCONC(:,52)-TPK%K335(:)*PCONC(:,50)-TPK%K337(:)*PCONC(:,51)-TPK%K345(:)*PCONC& -&(:,9)-TPK%K347(:)*PCONC(:,43)-TPK%K348(:)*PCONC(:,44)-TPK%K349(:)*PCONC(:,45) +!OH/KET=-K064*<OH> + PJAC(:,14,24)=-TPK%K064(:)*PCONC(:,14) ! -!OH/ETHE=-K049*<OH>+0.06*K051*<O3> - PJAC(:,15,16)=-TPK%K049(:)*PCONC(:,15)+0.06*TPK%K051(:)*PCONC(:,3) +!OH/CARBO=-K065*<OH>+0.20595*K081*<O3> + PJAC(:,14,25)=-TPK%K065(:)*PCONC(:,14)+0.20595*TPK%K081(:)*PCONC(:,1) ! -!OH/OLEL=-K054*<OH>+0.36*K056*<O3> - PJAC(:,15,17)=-TPK%K054(:)*PCONC(:,15)+0.36*TPK%K056(:)*PCONC(:,3) +!OH/ONIT=-K071*<OH> + PJAC(:,14,26)=-TPK%K071(:)*PCONC(:,14) ! -!OH/OLEH=-K074*<OH>+0.36*K076*<O3> - PJAC(:,15,18)=-TPK%K074(:)*PCONC(:,15)+0.36*TPK%K076(:)*PCONC(:,3) +!OH/PAN=-K070*<OH>+0.036*K082*<O3> + PJAC(:,14,27)=-TPK%K070(:)*PCONC(:,14)+0.036*TPK%K082(:)*PCONC(:,1) ! -!OH/ALKL=-K058*<OH> - PJAC(:,15,19)=-TPK%K058(:)*PCONC(:,15) +!OH/OP1=+K013+0.35*K068*<OH>-K068*<OH> + PJAC(:,14,28)=+TPK%K013(:)+0.35*TPK%K068(:)*PCONC(:,14)-TPK%K068(:)*PCONC(:,14& +&) ! -!OH/ALKM=-K078*<OH> - PJAC(:,15,20)=-TPK%K078(:)*PCONC(:,15) +!OH/OP2=+K014+0.44925*K069*<OH>-K069*<OH> + PJAC(:,14,29)=+TPK%K014(:)+0.44925*TPK%K069(:)*PCONC(:,14)-TPK%K069(:)*PCONC(:& +&,14) ! -!OH/ALKH=-K093*<OH> - PJAC(:,15,21)=-TPK%K093(:)*PCONC(:,15) +!OH/ORA1=-K066*<OH> + PJAC(:,14,30)=-TPK%K066(:)*PCONC(:,14) ! -!OH/AROH=-K080*<OH> - PJAC(:,15,22)=-TPK%K080(:)*PCONC(:,15) +!OH/ORA2=-K067*<OH> + PJAC(:,14,31)=-TPK%K067(:)*PCONC(:,14) ! -!OH/AROL=-K079*<OH> - PJAC(:,15,23)=-TPK%K079(:)*PCONC(:,15) +!OH/MO2=0.0 ! -!OH/AROO=-K073*<OH> - PJAC(:,15,24)=-TPK%K073(:)*PCONC(:,15) +!OH/ALKAP=0.0 ! -!OH/ARAL=-K082*<OH> - PJAC(:,15,25)=-TPK%K082(:)*PCONC(:,15) +!OH/ALKEP=0.0 ! -!OH/ARAC=-K083*<OH> - PJAC(:,15,26)=-TPK%K083(:)*PCONC(:,15) +!OH/BIOP=0.0 ! -!OH/PAH=-K092*<OH> - PJAC(:,15,27)=-TPK%K092(:)*PCONC(:,15) +!OH/PHO=0.0 ! -!OH/HCHO=-K046*<OH> - PJAC(:,15,28)=-TPK%K046(:)*PCONC(:,15) +!OH/ADD=+K087*<O3> + PJAC(:,14,37)=+TPK%K087(:)*PCONC(:,1) ! -!OH/ALD2=-K060*<OH> - PJAC(:,15,29)=-TPK%K060(:)*PCONC(:,15) +!OH/AROP=0.0 ! -!OH/KETL=-K062*<OH> - PJAC(:,15,30)=-TPK%K062(:)*PCONC(:,15) +!OH/CARBOP=0.0 ! -!OH/KETH=-K070*<OH> - PJAC(:,15,31)=-TPK%K070(:)*PCONC(:,15) +!OH/OLN=0.0 ! -!OH/MEOH=-K048*<OH> - PJAC(:,15,32)=-TPK%K048(:)*PCONC(:,15) +!OH/XO2=0.0 ! -!OH/ETOH=-K053*<OH> - PJAC(:,15,33)=-TPK%K053(:)*PCONC(:,15) +!OH/WC_O3=0.0 ! -!OH/ALCH=-K069*<OH> - PJAC(:,15,34)=-TPK%K069(:)*PCONC(:,15) +!OH/WC_H2O2=0.0 ! -!OH/ISOP=-K064*<OH>+0.664*K066*<O3> - PJAC(:,15,35)=-TPK%K064(:)*PCONC(:,15)+0.664*TPK%K066(:)*PCONC(:,3) +!OH/WC_NO=0.0 ! -!OH/BIOL=-K084*<OH>+0.89*K086*<O3> - PJAC(:,15,36)=-TPK%K084(:)*PCONC(:,15)+0.89*TPK%K086(:)*PCONC(:,3) +!OH/WC_NO2=0.0 ! -!OH/BIOH=-K088*<OH>+0.89*K090*<O3> - PJAC(:,15,37)=-TPK%K088(:)*PCONC(:,15)+0.89*TPK%K090(:)*PCONC(:,3) +!OH/WC_NO3=0.0 ! -!OH/MTBE=-K068*<OH> - PJAC(:,15,38)=-TPK%K068(:)*PCONC(:,15) +!OH/WC_N2O5=0.0 ! -!OH/MVK=-K272*<OH>+0.36*K281*<O3> - PJAC(:,15,39)=-TPK%K272(:)*PCONC(:,15)+0.36*TPK%K281(:)*PCONC(:,3) +!OH/WC_HONO=0.0 ! -!OH/MCR=-K273*<OH>+0.82*K282*<O3> - PJAC(:,15,40)=-TPK%K273(:)*PCONC(:,15)+0.82*TPK%K282(:)*PCONC(:,3) +!OH/WC_HNO3=0.0 ! -!OH/MGLY=-K274*<OH> - PJAC(:,15,41)=-TPK%K274(:)*PCONC(:,15) +!OH/WC_HNO4=0.0 ! -!OH/GLY=0.0 +!OH/WC_NH3=0.0 ! -!OH/ORA1=-K347*<OH> - PJAC(:,15,43)=-TPK%K347(:)*PCONC(:,15) +!OH/WC_OH=+KTC31 + PJAC(:,14,52)=+TPK%KTC31(:) ! -!OH/ORA2=-K348*<OH> - PJAC(:,15,44)=-TPK%K348(:)*PCONC(:,15) +!OH/WC_HO2=0.0 ! -!OH/ACID=-K349*<OH> - PJAC(:,15,45)=-TPK%K349(:)*PCONC(:,15) +!OH/WC_CO2=0.0 ! -!OH/UR28=0.0 +!OH/WC_SO2=0.0 ! -!OH/UR21=0.0 +!OH/WC_SULF=0.0 ! -!OH/URG2=0.0 +!OH/WC_HCHO=0.0 ! -!OH/UR26=0.0 +!OH/WC_ORA1=0.0 ! -!OH/RPG2=-K335*<OH> - PJAC(:,15,50)=-TPK%K335(:)*PCONC(:,15) +!OH/WC_ORA2=0.0 ! -!OH/RP18=-K337*<OH> - PJAC(:,15,51)=-TPK%K337(:)*PCONC(:,15) +!OH/WC_MO2=0.0 ! -!OH/RPG3=-K334*<OH> - PJAC(:,15,52)=-TPK%K334(:)*PCONC(:,15) +!OH/WC_OP1=0.0 ! -!OH/URG4=0.0 +!OH/WC_ASO3=0.0 ! -!OH/UR8=0.0 +!OH/WC_ASO4=0.0 ! -!OH/UR17=0.0 +!OH/WC_ASO5=0.0 ! -!OH/UR7=0.0 +!OH/WC_AHSO5=0.0 ! -!OH/RPR3=-K312*<OH> - PJAC(:,15,57)=-TPK%K312(:)*PCONC(:,15) +!OH/WC_AHMS=0.0 ! -!OH/URG6=0.0 +!OH/WR_O3=0.0 ! -!OH/UR22=0.0 -! -!OH/URG7=0.0 -! -!OH/RPR4=0.0 -! -!OH/RPR7=-K322*<OH> - PJAC(:,15,62)=-TPK%K322(:)*PCONC(:,15) -! -!OH/RPG7=-K323*<OH> - PJAC(:,15,63)=-TPK%K323(:)*PCONC(:,15) -! -!OH/URG8=0.0 -! -!OH/UR19=0.0 -! -!OH/URG9=0.0 -! -!OH/AP7=0.0 -! -!OH/URG10=0.0 -! -!OH/RPR1=-K304*<OH> - PJAC(:,15,69)=-TPK%K304(:)*PCONC(:,15) -! -!OH/RPR5=-K303*<OH> - PJAC(:,15,70)=-TPK%K303(:)*PCONC(:,15) -! -!OH/RPR8=-K324*<OH> - PJAC(:,15,71)=-TPK%K324(:)*PCONC(:,15) -! -!OH/RP10=-K325*<OH> - PJAC(:,15,72)=-TPK%K325(:)*PCONC(:,15) -! -!OH/RP11=-K326*<OH> - PJAC(:,15,73)=-TPK%K326(:)*PCONC(:,15) -! -!OH/RP16=-K305*<OH>+K339 - PJAC(:,15,74)=-TPK%K305(:)*PCONC(:,15)+TPK%K339(:) -! -!OH/RPRL=-K306*<OH> - PJAC(:,15,75)=-TPK%K306(:)*PCONC(:,15) -! -!OH/APAN=0.0 -! -!OH/PAN1=0.0 -! -!OH/PAN2=0.0 -! -!OH/PAN3=0.0 -! -!OH/PAN4=0.0 -! -!OH/PAN6=0.0 -! -!OH/PAN7=0.0 -! -!OH/PAN8=0.0 -! -!OH/PN10=0.0 -! -!OH/RO2T=+K293*<RO251>+K296*<RO252>+K299*<RO253>+K342*<RO258> - PJAC(:,15,85)=+TPK%K293(:)*TPK%RO251(:)+TPK%K296(:)*TPK%RO252(:)+TPK%K299(:)*T& -&PK%RO253(:)+TPK%K342(:)*TPK%RO258(:) -! -!OH/RO21=+K112*<HO2> - PJAC(:,15,86)=+TPK%K112(:)*PCONC(:,10) -! -!OH/RO25=+K124*<HO2> - PJAC(:,15,87)=+TPK%K124(:)*PCONC(:,10) -! -RETURN -END SUBROUTINE SUBJ2 -! -SUBROUTINE SUBJ3 -! -!Indices 16 a 20 -! -! -!ETHE/NO=0.0 -! -!ETHE/NO2=0.0 -! -!ETHE/O3=-K051*<ETHE> - PJAC(:,16,3)=-TPK%K051(:)*PCONC(:,16) -! -!ETHE/HONO=0.0 -! -!ETHE/HNO3=0.0 -! -!ETHE/HNO4=0.0 -! -!ETHE/N2O5=0.0 -! -!ETHE/NO3=-K050*<ETHE> - PJAC(:,16,8)=-TPK%K050(:)*PCONC(:,16) -! -!ETHE/NH3=0.0 -! -!ETHE/HO2=0.0 -! -!ETHE/CO=0.0 -! -!ETHE/H2O2=0.0 -! -!ETHE/SO2=0.0 -! -!ETHE/H2SO4=0.0 -! -!ETHE/OH=-K049*<ETHE> - PJAC(:,16,15)=-TPK%K049(:)*PCONC(:,16) -! -!ETHE/ETHE=-K049*<OH>-K050*<NO3>-K051*<O3>-K052*<O> - PJAC(:,16,16)=-TPK%K049(:)*PCONC(:,15)-TPK%K050(:)*PCONC(:,8)-TPK%K051(:)*PCON& -&C(:,3)-TPK%K052(:)*TPK%O(:) -! -!ETHE/OLEL=0.0 -! -!ETHE/OLEH=0.0 -! -!ETHE/ALKL=0.0 -! -!ETHE/ALKM=0.0 -! -!ETHE/ALKH=0.0 -! -!ETHE/AROH=0.0 -! -!ETHE/AROL=0.0 -! -!ETHE/AROO=0.0 -! -!ETHE/ARAL=0.0 -! -!ETHE/ARAC=0.0 -! -!ETHE/PAH=0.0 -! -!ETHE/HCHO=0.0 -! -!ETHE/ALD2=0.0 -! -!ETHE/KETL=0.0 -! -!ETHE/KETH=0.0 -! -!ETHE/MEOH=0.0 -! -!ETHE/ETOH=0.0 -! -!ETHE/ALCH=0.0 -! -!ETHE/ISOP=0.0 -! -!ETHE/BIOL=0.0 -! -!ETHE/BIOH=0.0 -! -!ETHE/MTBE=0.0 -! -!ETHE/MVK=0.0 -! -!ETHE/MCR=0.0 -! -!ETHE/MGLY=0.0 -! -!ETHE/GLY=0.0 -! -!ETHE/ORA1=0.0 -! -!ETHE/ORA2=0.0 -! -!ETHE/ACID=0.0 -! -!ETHE/UR28=0.0 -! -!ETHE/UR21=0.0 -! -!ETHE/URG2=0.0 -! -!ETHE/UR26=0.0 -! -!ETHE/RPG2=0.0 -! -!ETHE/RP18=0.0 -! -!ETHE/RPG3=0.0 -! -!ETHE/URG4=0.0 -! -!ETHE/UR8=0.0 -! -!ETHE/UR17=0.0 -! -!ETHE/UR7=0.0 -! -!ETHE/RPR3=0.0 -! -!ETHE/URG6=0.0 -! -!ETHE/UR22=0.0 -! -!ETHE/URG7=0.0 -! -!ETHE/RPR4=0.0 +!OH/WR_H2O2=0.0 ! -!ETHE/RPR7=0.0 +!OH/WR_NO=0.0 ! -!ETHE/RPG7=0.0 +!OH/WR_NO2=0.0 ! -!ETHE/URG8=0.0 +!OH/WR_NO3=0.0 ! -!ETHE/UR19=0.0 +!OH/WR_N2O5=0.0 ! -!ETHE/URG9=0.0 +!OH/WR_HONO=0.0 ! -!ETHE/AP7=0.0 +!OH/WR_HNO3=0.0 ! -!ETHE/URG10=0.0 +!OH/WR_HNO4=0.0 ! -!ETHE/RPR1=0.0 +!OH/WR_NH3=0.0 ! -!ETHE/RPR5=0.0 +!OH/WR_OH=+KTR31 + PJAC(:,14,77)=+TPK%KTR31(:) ! -!ETHE/RPR8=0.0 +!OH/WR_HO2=0.0 ! -!ETHE/RP10=0.0 +!OH/WR_CO2=0.0 ! -!ETHE/RP11=0.0 +!OH/WR_SO2=0.0 ! -!ETHE/RP16=0.0 +!OH/WR_SULF=0.0 ! -!ETHE/RPRL=0.0 +!OH/WR_HCHO=0.0 ! -!ETHE/APAN=0.0 +!OH/WR_ORA1=0.0 ! -!ETHE/PAN1=0.0 +!OH/WR_ORA2=0.0 ! -!ETHE/PAN2=0.0 +!OH/WR_MO2=0.0 ! -!ETHE/PAN3=0.0 +!OH/WR_OP1=0.0 ! -!ETHE/PAN4=0.0 +!OH/WR_ASO3=0.0 ! -!ETHE/PAN6=0.0 +!OH/WR_ASO4=0.0 ! -!ETHE/PAN7=0.0 +!OH/WR_ASO5=0.0 ! -!ETHE/PAN8=0.0 +!OH/WR_AHSO5=0.0 ! -!ETHE/PN10=0.0 +!OH/WR_AHMS=0.0 ! -!ETHE/RO2T=0.0 +!HO2/O3=+K023*<OH>-K024*<HO2>+0.23451*K079*<ALKE>+0.30000*K080*<BIO>+0.28441*K0 +!81*<CARBO>+0.08*K082*<PAN> + PJAC(:,15,1)=+TPK%K023(:)*PCONC(:,14)-TPK%K024(:)*PCONC(:,15)+0.23451*TPK%K079& +&(:)*PCONC(:,19)+0.30000*TPK%K080(:)*PCONC(:,20)+0.28441*TPK%K081(:)*PCONC(:,25& +&)+0.08*TPK%K082(:)*PCONC(:,27) +! +!HO2/H2O2=+K026*<OH> + PJAC(:,15,2)=+TPK%K026(:)*PCONC(:,14) +! +!HO2/NO=-K035*<HO2>+K090*<MO2>+0.74265*K091*<ALKAP>+K092*<ALKEP>+0.84700*K093*< +!BIOP>+0.95115*K094*<AROP>+0.12334*K095*<CARBOP>+0.18401*K096*<OLN> + PJAC(:,15,3)=-TPK%K035(:)*PCONC(:,15)+TPK%K090(:)*PCONC(:,32)+0.74265*TPK%K091& +&(:)*PCONC(:,33)+TPK%K092(:)*PCONC(:,34)+0.84700*TPK%K093(:)*PCONC(:,35)+0.9511& +&5*TPK%K094(:)*PCONC(:,38)+0.12334*TPK%K095(:)*PCONC(:,39)+0.18401*TPK%K096(:)*& +&PCONC(:,40) +! +!HO2/NO2=-K036*<HO2> + PJAC(:,15,4)=-TPK%K036(:)*PCONC(:,15) +! +!HO2/NO3=+K034*<OH>-K038*<HO2>+K072*<HCHO>+0.63217*K074*<CARBO>+K119*<MO2>+0.81 +!290*K120*<ALKAP>+K121*<ALKEP>+K122*<BIOP>+K123*<AROP>+0.04915*K124*<CARBOP>+0. +!25928*K125*<OLN> + PJAC(:,15,5)=+TPK%K034(:)*PCONC(:,14)-TPK%K038(:)*PCONC(:,15)+TPK%K072(:)*PCON& +&C(:,22)+0.63217*TPK%K074(:)*PCONC(:,25)+TPK%K119(:)*PCONC(:,32)+0.81290*TPK%K1& +&20(:)*PCONC(:,33)+TPK%K121(:)*PCONC(:,34)+TPK%K122(:)*PCONC(:,35)+TPK%K123(:)*& +&PCONC(:,38)+0.04915*TPK%K124(:)*PCONC(:,39)+0.25928*TPK%K125(:)*PCONC(:,40) ! -!ETHE/RO21=0.0 +!HO2/N2O5=0.0 ! -!ETHE/RO25=0.0 +!HO2/HONO=0.0 ! -!OLEL/NO=+TPK%CF5*K150*<RO29>+TPK%CF7*K168*<RO214> - PJAC(:,17,1)=+TPK%CF5*TPK%K150(:)*TPK%RO29(:)+TPK%CF7*TPK%K168(:)*TPK%RO214(:) +!HO2/HNO3=0.0 ! -!OLEL/NO2=0.0 +!HO2/HNO4=+0.65*K006+K037 + PJAC(:,15,9)=+0.65*TPK%K006(:)+TPK%K037(:) ! -!OLEL/O3=-K056*<OLEL>+0.054*K066*<ISOP> - PJAC(:,17,3)=-TPK%K056(:)*PCONC(:,17)+0.054*TPK%K066(:)*PCONC(:,35) +!HO2/NH3=0.0 ! -!OLEL/HONO=0.0 +!HO2/SO2=+K052*<OH> + PJAC(:,15,11)=+TPK%K052(:)*PCONC(:,14) ! -!OLEL/HNO3=0.0 +!HO2/SULF=0.0 ! -!OLEL/HNO4=0.0 +!HO2/CO=+K053*<OH> + PJAC(:,15,13)=+TPK%K053(:)*PCONC(:,14) ! -!OLEL/N2O5=0.0 +!HO2/OH=+K023*<O3>-K025*<HO2>+K026*<H2O2>+K034*<NO3>+K051*<H2>+K052*<SO2>+K053* +!<CO>+0.12793*K058*<ALKA>+0.10318*K061*<ARO>+K062*<HCHO>+0.51208*K065*<CARBO>+K +!066*<ORA1>+0.02915*K069*<OP2>+0.28107*K070*<PAN> + PJAC(:,15,14)=+TPK%K023(:)*PCONC(:,1)-TPK%K025(:)*PCONC(:,15)+TPK%K026(:)*PCON& +&C(:,2)+TPK%K034(:)*PCONC(:,5)+TPK%K051(:)*TPK%H2(:)+TPK%K052(:)*PCONC(:,11)+TP& +&K%K053(:)*PCONC(:,13)+0.12793*TPK%K058(:)*PCONC(:,18)+0.10318*TPK%K061(:)*PCON& +&C(:,21)+TPK%K062(:)*PCONC(:,22)+0.51208*TPK%K065(:)*PCONC(:,25)+TPK%K066(:)*PC& +&ONC(:,30)+0.02915*TPK%K069(:)*PCONC(:,29)+0.28107*TPK%K070(:)*PCONC(:,27) ! -!OLEL/NO3=-K055*<OLEL> - PJAC(:,17,8)=-TPK%K055(:)*PCONC(:,17) +!HO2/HO2=-K024*<O3>-K025*<OH>-K027*<HO2>-K027*<HO2>-K027*<HO2>-K027*<HO2>-K028* +!<HO2>*<H2O>-K028*<HO2>*<H2O>-K028*<HO2>*<H2O>-K028*<HO2>*<H2O>-K035*<NO>-K036* +!<NO2>-K038*<NO3>-K084*<PHO>-K097*<MO2>-K098*<ALKAP>-K099*<ALKEP>-K0100*<BIOP>- +!K0101*<AROP>-K0102*<CARBOP>-K103*<OLN>-K126*<XO2>-KTC12-KTR12 + PJAC(:,15,15)=-TPK%K024(:)*PCONC(:,1)-TPK%K025(:)*PCONC(:,14)-TPK%K027(:)*PCON& +&C(:,15)-TPK%K027(:)*PCONC(:,15)-TPK%K027(:)*PCONC(:,15)-TPK%K027(:)*PCONC(:,15& +&)-TPK%K028(:)*PCONC(:,15)*TPK%H2O(:)-TPK%K028(:)*PCONC(:,15)*TPK%H2O(:)-TPK%K0& +&28(:)*PCONC(:,15)*TPK%H2O(:)-TPK%K028(:)*PCONC(:,15)*TPK%H2O(:)-TPK%K035(:)*PC& +&ONC(:,3)-TPK%K036(:)*PCONC(:,4)-TPK%K038(:)*PCONC(:,5)-TPK%K084(:)*PCONC(:,36)& +&-TPK%K097(:)*PCONC(:,32)-TPK%K098(:)*PCONC(:,33)-TPK%K099(:)*PCONC(:,34)-TPK%K& +&0100(:)*PCONC(:,35)-TPK%K0101(:)*PCONC(:,38)-TPK%K0102(:)*PCONC(:,39)-TPK%K103& +&(:)*PCONC(:,40)-TPK%K126(:)*PCONC(:,41)-TPK%KTC12(:)-TPK%KTR12(:) ! -!OLEL/NH3=0.0 +!HO2/CH4=0.0 ! -!OLEL/HO2=+0.5*K166*<RO239>+0.5*K289*<RO250> - PJAC(:,17,10)=+0.5*TPK%K166(:)*TPK%RO239(:)+0.5*TPK%K289(:)*TPK%RO250(:) +!HO2/ETH=0.0 ! -!OLEL/CO=0.0 +!HO2/ALKA=+0.12793*K058*<OH> + PJAC(:,15,18)=+0.12793*TPK%K058(:)*PCONC(:,14) ! -!OLEL/H2O2=0.0 +!HO2/ALKE=+0.23451*K079*<O3> + PJAC(:,15,19)=+0.23451*TPK%K079(:)*PCONC(:,1) ! -!OLEL/SO2=0.0 +!HO2/BIO=+0.28*K054*<O3P>+0.30000*K080*<O3> + PJAC(:,15,20)=+0.28*TPK%K054(:)*TPK%O3P(:)+0.30000*TPK%K080(:)*PCONC(:,1) ! -!OLEL/H2SO4=0.0 +!HO2/ARO=+0.10318*K061*<OH> + PJAC(:,15,21)=+0.10318*TPK%K061(:)*PCONC(:,14) ! -!OLEL/OH=-K054*<OLEL> - PJAC(:,17,15)=-TPK%K054(:)*PCONC(:,17) +!HO2/HCHO=+K011+K011+K062*<OH>+K072*<NO3> + PJAC(:,15,22)=+TPK%K011(:)+TPK%K011(:)+TPK%K062(:)*PCONC(:,14)+TPK%K072(:)*PCO& +&NC(:,5) ! -!OLEL/ETHE=0.0 +!HO2/ALD=+K012 + PJAC(:,15,23)=+TPK%K012(:) ! -!OLEL/OLEL=-K054*<OH>-K055*<NO3>-K056*<O3>-K057*<O> - PJAC(:,17,17)=-TPK%K054(:)*PCONC(:,15)-TPK%K055(:)*PCONC(:,8)-TPK%K056(:)*PCON& -&C(:,3)-TPK%K057(:)*TPK%O(:) +!HO2/KET=0.0 ! -!OLEL/OLEH=0.0 +!HO2/CARBO=+0.75830*K016+0.51208*K065*<OH>+0.63217*K074*<NO3>+0.28441*K081*<O3> + PJAC(:,15,25)=+0.75830*TPK%K016(:)+0.51208*TPK%K065(:)*PCONC(:,14)+0.63217*TPK& +&%K074(:)*PCONC(:,5)+0.28441*TPK%K081(:)*PCONC(:,1) ! -!OLEL/ALKL=0.0 +!HO2/ONIT=+K017 + PJAC(:,15,26)=+TPK%K017(:) ! -!OLEL/ALKM=0.0 +!HO2/PAN=+0.28107*K070*<OH>+0.08*K082*<O3> + PJAC(:,15,27)=+0.28107*TPK%K070(:)*PCONC(:,14)+0.08*TPK%K082(:)*PCONC(:,1) ! -!OLEL/ALKH=0.0 +!HO2/OP1=+K013 + PJAC(:,15,28)=+TPK%K013(:) ! -!OLEL/AROH=0.0 +!HO2/OP2=+0.96205*K014+0.02915*K069*<OH> + PJAC(:,15,29)=+0.96205*TPK%K014(:)+0.02915*TPK%K069(:)*PCONC(:,14) ! -!OLEL/AROL=0.0 +!HO2/ORA1=+K066*<OH> + PJAC(:,15,30)=+TPK%K066(:)*PCONC(:,14) ! -!OLEL/AROO=0.0 +!HO2/ORA2=0.0 ! -!OLEL/ARAL=0.0 +!HO2/MO2=+K090*<NO>-K097*<HO2>+0.66*K104*<MO2>+0.66*K104*<MO2>+0.98383*K105*<AL +!KAP>+K106*<ALKEP>+1.00000*K107*<BIOP>+1.02767*K108*<AROP>+0.82998*K109*<CARBOP +!>+0.67560*K110*<OLN>+K119*<NO3>+K127*<XO2> + PJAC(:,15,32)=+TPK%K090(:)*PCONC(:,3)-TPK%K097(:)*PCONC(:,15)+0.66*TPK%K104(:)& +&*PCONC(:,32)+0.66*TPK%K104(:)*PCONC(:,32)+0.98383*TPK%K105(:)*PCONC(:,33)+TPK%& +&K106(:)*PCONC(:,34)+1.00000*TPK%K107(:)*PCONC(:,35)+1.02767*TPK%K108(:)*PCONC(& +&:,38)+0.82998*TPK%K109(:)*PCONC(:,39)+0.67560*TPK%K110(:)*PCONC(:,40)+TPK%K119& +&(:)*PCONC(:,5)+TPK%K127(:)*PCONC(:,41) +! +!HO2/ALKAP=+0.74265*K091*<NO>-K098*<HO2>+0.98383*K105*<MO2>+0.48079*K111*<CARBO +!P>+0.81290*K120*<NO3> + PJAC(:,15,33)=+0.74265*TPK%K091(:)*PCONC(:,3)-TPK%K098(:)*PCONC(:,15)+0.98383*& +&TPK%K105(:)*PCONC(:,32)+0.48079*TPK%K111(:)*PCONC(:,39)+0.81290*TPK%K120(:)*PC& +&ONC(:,5) +! +!HO2/ALKEP=+K092*<NO>-K099*<HO2>+K106*<MO2>+0.50078*K112*<CARBOP>+K121*<NO3> + PJAC(:,15,34)=+TPK%K092(:)*PCONC(:,3)-TPK%K099(:)*PCONC(:,15)+TPK%K106(:)*PCON& +&C(:,32)+0.50078*TPK%K112(:)*PCONC(:,39)+TPK%K121(:)*PCONC(:,5) +! +!HO2/BIOP=+0.84700*K093*<NO>-K0100*<HO2>+1.00000*K107*<MO2>+0.50600*K113*<CARBO +!P>+K122*<NO3> + PJAC(:,15,35)=+0.84700*TPK%K093(:)*PCONC(:,3)-TPK%K0100(:)*PCONC(:,15)+1.00000& +&*TPK%K107(:)*PCONC(:,32)+0.50600*TPK%K113(:)*PCONC(:,39)+TPK%K122(:)*PCONC(:,5& +&) ! -!OLEL/ARAC=0.0 +!HO2/PHO=-K084*<HO2> + PJAC(:,15,36)=-TPK%K084(:)*PCONC(:,15) ! -!OLEL/PAH=0.0 +!HO2/ADD=+0.02*K086*<O2> + PJAC(:,15,37)=+0.02*TPK%K086(:)*TPK%O2(:) ! -!OLEL/HCHO=0.0 +!HO2/AROP=+0.95115*K094*<NO>-K0101*<HO2>+1.02767*K108*<MO2>+K114*<CARBOP>+K123* +!<NO3> + PJAC(:,15,38)=+0.95115*TPK%K094(:)*PCONC(:,3)-TPK%K0101(:)*PCONC(:,15)+1.02767& +&*TPK%K108(:)*PCONC(:,32)+TPK%K114(:)*PCONC(:,39)+TPK%K123(:)*PCONC(:,5) ! -!OLEL/ALD2=0.0 +!HO2/CARBOP=+0.12334*K095*<NO>-K0102*<HO2>+0.82998*K109*<MO2>+0.48079*K111*<ALK +!AP>+0.50078*K112*<ALKEP>+0.50600*K113*<BIOP>+K114*<AROP>+0.07566*K115*<CARBOP> +!+0.07566*K115*<CARBOP>+0.17599*K116*<OLN>+0.04915*K124*<NO3> + PJAC(:,15,39)=+0.12334*TPK%K095(:)*PCONC(:,3)-TPK%K0102(:)*PCONC(:,15)+0.82998& +&*TPK%K109(:)*PCONC(:,32)+0.48079*TPK%K111(:)*PCONC(:,33)+0.50078*TPK%K112(:)*P& +&CONC(:,34)+0.50600*TPK%K113(:)*PCONC(:,35)+TPK%K114(:)*PCONC(:,38)+0.07566*TPK& +&%K115(:)*PCONC(:,39)+0.07566*TPK%K115(:)*PCONC(:,39)+0.17599*TPK%K116(:)*PCONC& +&(:,40)+0.04915*TPK%K124(:)*PCONC(:,5) ! -!OLEL/KETL=0.0 +!HO2/OLN=+0.18401*K096*<NO>-K103*<HO2>+0.67560*K110*<MO2>+0.17599*K116*<CARBOP> +!+K117*<OLN>+K117*<OLN>+0.00000*K118*<OLN>+0.00000*K118*<OLN>+0.25928*K125*<NO3 +!> + PJAC(:,15,40)=+0.18401*TPK%K096(:)*PCONC(:,3)-TPK%K103(:)*PCONC(:,15)+0.67560*& +&TPK%K110(:)*PCONC(:,32)+0.17599*TPK%K116(:)*PCONC(:,39)+TPK%K117(:)*PCONC(:,40& +&)+TPK%K117(:)*PCONC(:,40)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K118(:)*& +&PCONC(:,40)+0.25928*TPK%K125(:)*PCONC(:,5) ! -!OLEL/KETH=0.0 +!HO2/XO2=-K126*<HO2>+K127*<MO2> + PJAC(:,15,41)=-TPK%K126(:)*PCONC(:,15)+TPK%K127(:)*PCONC(:,32) ! -!OLEL/MEOH=0.0 +!HO2/WC_O3=0.0 ! -!OLEL/ETOH=0.0 +!HO2/WC_H2O2=0.0 ! -!OLEL/ALCH=0.0 +!HO2/WC_NO=0.0 ! -!OLEL/ISOP=+0.054*K066*<O3>+0.925*K067*<O> - PJAC(:,17,35)=+0.054*TPK%K066(:)*PCONC(:,3)+0.925*TPK%K067(:)*TPK%O(:) +!HO2/WC_NO2=0.0 ! -!OLEL/BIOL=0.0 +!HO2/WC_NO3=0.0 ! -!OLEL/BIOH=0.0 +!HO2/WC_N2O5=0.0 ! -!OLEL/MTBE=0.0 +!HO2/WC_HONO=0.0 ! -!OLEL/MVK=0.0 +!HO2/WC_HNO3=0.0 ! -!OLEL/MCR=0.0 +!HO2/WC_HNO4=0.0 ! -!OLEL/MGLY=0.0 +!HO2/WC_NH3=0.0 ! -!OLEL/GLY=0.0 +!HO2/WC_OH=0.0 ! -!OLEL/ORA1=0.0 +!HO2/WC_HO2=+KTC32 + PJAC(:,15,53)=+TPK%KTC32(:) ! -!OLEL/ORA2=0.0 +!HO2/WC_CO2=0.0 ! -!OLEL/ACID=0.0 +!HO2/WC_SO2=0.0 ! -!OLEL/UR28=0.0 +!HO2/WC_SULF=0.0 ! -!OLEL/UR21=0.0 +!HO2/WC_HCHO=0.0 ! -!OLEL/URG2=0.0 +!HO2/WC_ORA1=0.0 ! -!OLEL/UR26=0.0 +!HO2/WC_ORA2=0.0 ! -!OLEL/RPG2=0.0 +!HO2/WC_MO2=0.0 ! -!OLEL/RP18=0.0 +!HO2/WC_OP1=0.0 ! -!OLEL/RPG3=0.0 +!HO2/WC_ASO3=0.0 ! -!OLEL/URG4=0.0 +!HO2/WC_ASO4=0.0 ! -!OLEL/UR8=0.0 +!HO2/WC_ASO5=0.0 ! -!OLEL/UR17=0.0 +!HO2/WC_AHSO5=0.0 ! -!OLEL/UR7=0.0 +!HO2/WC_AHMS=0.0 ! -!OLEL/RPR3=0.0 +!HO2/WR_O3=0.0 ! -!OLEL/URG6=0.0 +!HO2/WR_H2O2=0.0 ! -!OLEL/UR22=0.0 +!HO2/WR_NO=0.0 ! -!OLEL/URG7=0.0 +!HO2/WR_NO2=0.0 ! -!OLEL/RPR4=0.0 +!HO2/WR_NO3=0.0 ! -!OLEL/RPR7=0.0 +!HO2/WR_N2O5=0.0 ! -!OLEL/RPG7=0.0 +!HO2/WR_HONO=0.0 ! -!OLEL/URG8=0.0 +!HO2/WR_HNO3=0.0 ! -!OLEL/UR19=0.0 +!HO2/WR_HNO4=0.0 ! -!OLEL/URG9=0.0 +!HO2/WR_NH3=0.0 ! -!OLEL/AP7=0.0 +!HO2/WR_OH=0.0 ! -!OLEL/URG10=0.0 +!HO2/WR_HO2=+KTR32 + PJAC(:,15,78)=+TPK%KTR32(:) ! -!OLEL/RPR1=0.0 +!HO2/WR_CO2=0.0 ! -!OLEL/RPR5=0.0 +!HO2/WR_SO2=0.0 ! -!OLEL/RPR8=0.0 +!HO2/WR_SULF=0.0 ! -!OLEL/RP10=0.0 +!HO2/WR_HCHO=0.0 ! -!OLEL/RP11=0.0 +!HO2/WR_ORA1=0.0 ! -!OLEL/RP16=0.0 +!HO2/WR_ORA2=0.0 ! -!OLEL/RPRL=0.0 +!HO2/WR_MO2=0.0 ! -!OLEL/APAN=0.0 +!HO2/WR_OP1=0.0 ! -!OLEL/PAN1=0.0 +!HO2/WR_ASO3=0.0 ! -!OLEL/PAN2=0.0 +!HO2/WR_ASO4=0.0 ! -!OLEL/PAN3=0.0 +!HO2/WR_ASO5=0.0 ! -!OLEL/PAN4=0.0 +!HO2/WR_AHSO5=0.0 ! -!OLEL/PAN6=0.0 +!HO2/WR_AHMS=0.0 ! -!OLEL/PAN7=0.0 +RETURN +END SUBROUTINE SUBJ2 ! -!OLEL/PAN8=0.0 +SUBROUTINE SUBJ3 ! -!OLEL/PN10=0.0 +!Indices 16 a 20 ! -!OLEL/RO2T=0.0 ! -!OLEL/RO21=0.0 +!CH4/O3=+0.04300*K079*<ALKE> + PJAC(:,16,1)=+0.04300*TPK%K079(:)*PCONC(:,19) ! -!OLEL/RO25=0.0 +!CH4/H2O2=0.0 ! -!OLEH/NO=0.0 +!CH4/NO=0.0 ! -!OLEH/NO2=0.0 +!CH4/NO2=0.0 ! -!OLEH/O3=-K076*<OLEH> - PJAC(:,18,3)=-TPK%K076(:)*PCONC(:,18) +!CH4/NO3=0.0 ! -!OLEH/HONO=0.0 +!CH4/N2O5=0.0 ! -!OLEH/HNO3=0.0 +!CH4/HONO=0.0 ! -!OLEH/HNO4=0.0 +!CH4/HNO3=0.0 ! -!OLEH/N2O5=0.0 +!CH4/HNO4=0.0 ! -!OLEH/NO3=-K075*<OLEH> - PJAC(:,18,8)=-TPK%K075(:)*PCONC(:,18) +!CH4/NH3=0.0 ! -!OLEH/NH3=0.0 +!CH4/SO2=0.0 ! -!OLEH/HO2=0.0 +!CH4/SULF=0.0 ! -!OLEH/CO=0.0 +!CH4/CO=0.0 ! -!OLEH/H2O2=0.0 +!CH4/OH=-K056*<CH4> + PJAC(:,16,14)=-TPK%K056(:)*PCONC(:,16) ! -!OLEH/SO2=0.0 +!CH4/HO2=0.0 ! -!OLEH/H2SO4=0.0 +!CH4/CH4=-K056*<OH> + PJAC(:,16,16)=-TPK%K056(:)*PCONC(:,14) ! -!OLEH/OH=-K074*<OLEH> - PJAC(:,18,15)=-TPK%K074(:)*PCONC(:,18) +!CH4/ETH=0.0 ! -!OLEH/ETHE=0.0 +!CH4/ALKA=0.0 ! -!OLEH/OLEL=0.0 +!CH4/ALKE=+0.04300*K079*<O3> + PJAC(:,16,19)=+0.04300*TPK%K079(:)*PCONC(:,1) ! -!OLEH/OLEH=-K074*<OH>-K075*<NO3>-K076*<O3>-K077*<O> - PJAC(:,18,18)=-TPK%K074(:)*PCONC(:,15)-TPK%K075(:)*PCONC(:,8)-TPK%K076(:)*PCON& -&C(:,3)-TPK%K077(:)*TPK%O(:) +!CH4/BIO=0.0 ! -!OLEH/ALKL=0.0 +!CH4/ARO=0.0 ! -!OLEH/ALKM=0.0 +!CH4/HCHO=0.0 ! -!OLEH/ALKH=0.0 +!CH4/ALD=0.0 ! -!OLEH/AROH=0.0 +!CH4/KET=0.0 ! -!OLEH/AROL=0.0 +!CH4/CARBO=0.0 ! -!OLEH/AROO=0.0 +!CH4/ONIT=0.0 ! -!OLEH/ARAL=0.0 +!CH4/PAN=0.0 ! -!OLEH/ARAC=0.0 +!CH4/OP1=0.0 ! -!OLEH/PAH=0.0 +!CH4/OP2=0.0 ! -!OLEH/HCHO=0.0 +!CH4/ORA1=0.0 ! -!OLEH/ALD2=0.0 +!CH4/ORA2=0.0 ! -!OLEH/KETL=0.0 +!CH4/MO2=0.0 ! -!OLEH/KETH=0.0 +!CH4/ALKAP=0.0 ! -!OLEH/MEOH=0.0 +!CH4/ALKEP=0.0 ! -!OLEH/ETOH=0.0 +!CH4/BIOP=0.0 ! -!OLEH/ALCH=0.0 +!CH4/PHO=0.0 ! -!OLEH/ISOP=0.0 +!CH4/ADD=0.0 ! -!OLEH/BIOL=0.0 +!CH4/AROP=0.0 ! -!OLEH/BIOH=0.0 +!CH4/CARBOP=0.0 ! -!OLEH/MTBE=0.0 +!CH4/OLN=0.0 ! -!OLEH/MVK=0.0 +!CH4/XO2=0.0 ! -!OLEH/MCR=0.0 +!CH4/WC_O3=0.0 ! -!OLEH/MGLY=0.0 +!CH4/WC_H2O2=0.0 ! -!OLEH/GLY=0.0 +!CH4/WC_NO=0.0 ! -!OLEH/ORA1=0.0 +!CH4/WC_NO2=0.0 ! -!OLEH/ORA2=0.0 +!CH4/WC_NO3=0.0 ! -!OLEH/ACID=0.0 +!CH4/WC_N2O5=0.0 ! -!OLEH/UR28=0.0 +!CH4/WC_HONO=0.0 ! -!OLEH/UR21=0.0 +!CH4/WC_HNO3=0.0 ! -!OLEH/URG2=0.0 +!CH4/WC_HNO4=0.0 ! -!OLEH/UR26=0.0 +!CH4/WC_NH3=0.0 ! -!OLEH/RPG2=0.0 +!CH4/WC_OH=0.0 ! -!OLEH/RP18=0.0 +!CH4/WC_HO2=0.0 ! -!OLEH/RPG3=0.0 +!CH4/WC_CO2=0.0 ! -!OLEH/URG4=0.0 +!CH4/WC_SO2=0.0 ! -!OLEH/UR8=0.0 +!CH4/WC_SULF=0.0 ! -!OLEH/UR17=0.0 +!CH4/WC_HCHO=0.0 ! -!OLEH/UR7=0.0 +!CH4/WC_ORA1=0.0 ! -!OLEH/RPR3=0.0 +!CH4/WC_ORA2=0.0 ! -!OLEH/URG6=0.0 +!CH4/WC_MO2=0.0 ! -!OLEH/UR22=0.0 +!CH4/WC_OP1=0.0 ! -!OLEH/URG7=0.0 +!CH4/WC_ASO3=0.0 ! -!OLEH/RPR4=0.0 +!CH4/WC_ASO4=0.0 ! -!OLEH/RPR7=0.0 +!CH4/WC_ASO5=0.0 ! -!OLEH/RPG7=0.0 +!CH4/WC_AHSO5=0.0 ! -!OLEH/URG8=0.0 +!CH4/WC_AHMS=0.0 ! -!OLEH/UR19=0.0 +!CH4/WR_O3=0.0 ! -!OLEH/URG9=0.0 +!CH4/WR_H2O2=0.0 ! -!OLEH/AP7=0.0 +!CH4/WR_NO=0.0 ! -!OLEH/URG10=0.0 +!CH4/WR_NO2=0.0 ! -!OLEH/RPR1=0.0 +!CH4/WR_NO3=0.0 ! -!OLEH/RPR5=0.0 +!CH4/WR_N2O5=0.0 ! -!OLEH/RPR8=0.0 +!CH4/WR_HONO=0.0 ! -!OLEH/RP10=0.0 +!CH4/WR_HNO3=0.0 ! -!OLEH/RP11=0.0 +!CH4/WR_HNO4=0.0 ! -!OLEH/RP16=0.0 +!CH4/WR_NH3=0.0 ! -!OLEH/RPRL=0.0 +!CH4/WR_OH=0.0 ! -!OLEH/APAN=0.0 +!CH4/WR_HO2=0.0 ! -!OLEH/PAN1=0.0 +!CH4/WR_CO2=0.0 ! -!OLEH/PAN2=0.0 +!CH4/WR_SO2=0.0 ! -!OLEH/PAN3=0.0 +!CH4/WR_SULF=0.0 ! -!OLEH/PAN4=0.0 +!CH4/WR_HCHO=0.0 ! -!OLEH/PAN6=0.0 +!CH4/WR_ORA1=0.0 ! -!OLEH/PAN7=0.0 +!CH4/WR_ORA2=0.0 ! -!OLEH/PAN8=0.0 +!CH4/WR_MO2=0.0 ! -!OLEH/PN10=0.0 +!CH4/WR_OP1=0.0 ! -!OLEH/RO2T=0.0 +!CH4/WR_ASO3=0.0 ! -!OLEH/RO21=0.0 +!CH4/WR_ASO4=0.0 ! -!OLEH/RO25=0.0 +!CH4/WR_ASO5=0.0 ! -!ALKL/NO=+TPK%CF3*K122*<RO25>+TPK%CF12*K171*<RO215> - PJAC(:,19,1)=+TPK%CF3*TPK%K122(:)*PCONC(:,87)+TPK%CF12*TPK%K171(:)*TPK%RO215(:& -&) +!CH4/WR_AHSO5=0.0 ! -!ALKL/NO2=0.0 +!CH4/WR_AHMS=0.0 ! -!ALKL/O3=+0.1*K056*<OLEL> - PJAC(:,19,3)=+0.1*TPK%K056(:)*PCONC(:,17) +!ETH/O3=+0.03196*K079*<ALKE> + PJAC(:,17,1)=+0.03196*TPK%K079(:)*PCONC(:,19) ! -!ALKL/HONO=0.0 +!ETH/H2O2=0.0 ! -!ALKL/HNO3=0.0 +!ETH/NO=0.0 ! -!ALKL/HNO4=0.0 +!ETH/NO2=0.0 ! -!ALKL/N2O5=0.0 +!ETH/NO3=0.0 ! -!ALKL/NO3=0.0 +!ETH/N2O5=0.0 ! -!ALKL/NH3=0.0 +!ETH/HONO=0.0 ! -!ALKL/HO2=+TPK%CF16*K173*<RO215> - PJAC(:,19,10)=+TPK%CF16*TPK%K173(:)*TPK%RO215(:) +!ETH/HNO3=0.0 ! -!ALKL/CO=0.0 +!ETH/HNO4=0.0 ! -!ALKL/H2O2=0.0 +!ETH/NH3=0.0 ! -!ALKL/SO2=0.0 +!ETH/SO2=0.0 ! -!ALKL/H2SO4=0.0 +!ETH/SULF=0.0 ! -!ALKL/OH=-K058*<ALKL> - PJAC(:,19,15)=-TPK%K058(:)*PCONC(:,19) +!ETH/CO=0.0 ! -!ALKL/ETHE=0.0 +!ETH/OH=-K057*<ETH> + PJAC(:,17,14)=-TPK%K057(:)*PCONC(:,17) ! -!ALKL/OLEL=+0.1*K056*<O3>+0.5*K057*<O> - PJAC(:,19,17)=+0.1*TPK%K056(:)*PCONC(:,3)+0.5*TPK%K057(:)*TPK%O(:) +!ETH/HO2=0.0 ! -!ALKL/OLEH=0.0 +!ETH/CH4=0.0 ! -!ALKL/ALKL=-K058*<OH> - PJAC(:,19,19)=-TPK%K058(:)*PCONC(:,15) +!ETH/ETH=-K057*<OH> + PJAC(:,17,17)=-TPK%K057(:)*PCONC(:,14) ! -!ALKL/ALKM=0.0 +!ETH/ALKA=0.0 ! -!ALKL/ALKH=0.0 +!ETH/ALKE=+0.03196*K079*<O3> + PJAC(:,17,19)=+0.03196*TPK%K079(:)*PCONC(:,1) ! -!ALKL/AROH=0.0 +!ETH/BIO=0.0 ! -!ALKL/AROL=0.0 +!ETH/ARO=0.0 ! -!ALKL/AROO=0.0 +!ETH/HCHO=0.0 ! -!ALKL/ARAL=0.0 +!ETH/ALD=0.0 ! -!ALKL/ARAC=0.0 +!ETH/KET=0.0 ! -!ALKL/PAH=0.0 +!ETH/CARBO=0.0 ! -!ALKL/HCHO=0.0 +!ETH/ONIT=0.0 ! -!ALKL/ALD2=0.0 +!ETH/PAN=0.0 ! -!ALKL/KETL=0.0 +!ETH/OP1=0.0 ! -!ALKL/KETH=0.0 +!ETH/OP2=0.0 ! -!ALKL/MEOH=0.0 +!ETH/ORA1=0.0 ! -!ALKL/ETOH=0.0 +!ETH/ORA2=0.0 ! -!ALKL/ALCH=0.0 +!ETH/MO2=0.0 ! -!ALKL/ISOP=0.0 +!ETH/ALKAP=0.0 ! -!ALKL/BIOL=0.0 +!ETH/ALKEP=0.0 ! -!ALKL/BIOH=0.0 +!ETH/BIOP=0.0 ! -!ALKL/MTBE=0.0 +!ETH/PHO=0.0 ! -!ALKL/MVK=0.0 +!ETH/ADD=0.0 ! -!ALKL/MCR=0.0 +!ETH/AROP=0.0 ! -!ALKL/MGLY=0.0 +!ETH/CARBOP=0.0 ! -!ALKL/GLY=0.0 +!ETH/OLN=0.0 ! -!ALKL/ORA1=0.0 +!ETH/XO2=0.0 ! -!ALKL/ORA2=0.0 +!ETH/WC_O3=0.0 ! -!ALKL/ACID=0.0 +!ETH/WC_H2O2=0.0 ! -!ALKL/UR28=0.0 +!ETH/WC_NO=0.0 ! -!ALKL/UR21=0.0 +!ETH/WC_NO2=0.0 ! -!ALKL/URG2=0.0 +!ETH/WC_NO3=0.0 ! -!ALKL/UR26=0.0 +!ETH/WC_N2O5=0.0 ! -!ALKL/RPG2=0.0 +!ETH/WC_HONO=0.0 ! -!ALKL/RP18=0.0 +!ETH/WC_HNO3=0.0 ! -!ALKL/RPG3=0.0 +!ETH/WC_HNO4=0.0 ! -!ALKL/URG4=0.0 +!ETH/WC_NH3=0.0 ! -!ALKL/UR8=0.0 +!ETH/WC_OH=0.0 ! -!ALKL/UR17=0.0 +!ETH/WC_HO2=0.0 ! -!ALKL/UR7=0.0 +!ETH/WC_CO2=0.0 ! -!ALKL/RPR3=0.0 +!ETH/WC_SO2=0.0 ! -!ALKL/URG6=0.0 +!ETH/WC_SULF=0.0 ! -!ALKL/UR22=0.0 +!ETH/WC_HCHO=0.0 ! -!ALKL/URG7=0.0 +!ETH/WC_ORA1=0.0 ! -!ALKL/RPR4=0.0 +!ETH/WC_ORA2=0.0 ! -!ALKL/RPR7=0.0 +!ETH/WC_MO2=0.0 ! -!ALKL/RPG7=0.0 +!ETH/WC_OP1=0.0 ! -!ALKL/URG8=0.0 +!ETH/WC_ASO3=0.0 ! -!ALKL/UR19=0.0 +!ETH/WC_ASO4=0.0 ! -!ALKL/URG9=0.0 +!ETH/WC_ASO5=0.0 ! -!ALKL/AP7=0.0 +!ETH/WC_AHSO5=0.0 ! -!ALKL/URG10=0.0 +!ETH/WC_AHMS=0.0 ! -!ALKL/RPR1=0.0 +!ETH/WR_O3=0.0 ! -!ALKL/RPR5=0.0 +!ETH/WR_H2O2=0.0 ! -!ALKL/RPR8=0.0 +!ETH/WR_NO=0.0 ! -!ALKL/RP10=0.0 +!ETH/WR_NO2=0.0 ! -!ALKL/RP11=0.0 +!ETH/WR_NO3=0.0 ! -!ALKL/RP16=0.0 +!ETH/WR_N2O5=0.0 ! -!ALKL/RPRL=0.0 +!ETH/WR_HONO=0.0 ! -!ALKL/APAN=0.0 +!ETH/WR_HNO3=0.0 ! -!ALKL/PAN1=0.0 +!ETH/WR_HNO4=0.0 ! -!ALKL/PAN2=0.0 +!ETH/WR_NH3=0.0 ! -!ALKL/PAN3=0.0 +!ETH/WR_OH=0.0 ! -!ALKL/PAN4=0.0 +!ETH/WR_HO2=0.0 ! -!ALKL/PAN6=0.0 +!ETH/WR_CO2=0.0 ! -!ALKL/PAN7=0.0 +!ETH/WR_SO2=0.0 ! -!ALKL/PAN8=0.0 +!ETH/WR_SULF=0.0 ! -!ALKL/PN10=0.0 +!ETH/WR_HCHO=0.0 ! -!ALKL/RO2T=+TPK%CF16*K172*<RO215> - PJAC(:,19,85)=+TPK%CF16*TPK%K172(:)*TPK%RO215(:) +!ETH/WR_ORA1=0.0 ! -!ALKL/RO21=0.0 +!ETH/WR_ORA2=0.0 ! -!ALKL/RO25=+TPK%CF3*K122*<NO> - PJAC(:,19,87)=+TPK%CF3*TPK%K122(:)*PCONC(:,1) +!ETH/WR_MO2=0.0 ! -!ALKM/NO=0.0 +!ETH/WR_OP1=0.0 ! -!ALKM/NO2=0.0 +!ETH/WR_ASO3=0.0 ! -!ALKM/O3=+0.1*K076*<OLEH> - PJAC(:,20,3)=+0.1*TPK%K076(:)*PCONC(:,18) +!ETH/WR_ASO4=0.0 ! -!ALKM/HONO=0.0 +!ETH/WR_ASO5=0.0 ! -!ALKM/HNO3=0.0 +!ETH/WR_AHSO5=0.0 ! -!ALKM/HNO4=0.0 +!ETH/WR_AHMS=0.0 ! -!ALKM/N2O5=0.0 +!ALKA/O3=0.0 ! -!ALKM/NO3=0.0 +!ALKA/H2O2=0.0 ! -!ALKM/NH3=0.0 +!ALKA/NO=0.0 ! -!ALKM/HO2=0.0 +!ALKA/NO2=0.0 ! -!ALKM/CO=0.0 +!ALKA/NO3=0.0 ! -!ALKM/H2O2=0.0 +!ALKA/N2O5=0.0 ! -!ALKM/SO2=0.0 +!ALKA/HONO=0.0 ! -!ALKM/H2SO4=0.0 +!ALKA/HNO3=0.0 ! -!ALKM/OH=-K078*<ALKM> - PJAC(:,20,15)=-TPK%K078(:)*PCONC(:,20) +!ALKA/HNO4=0.0 ! -!ALKM/ETHE=0.0 +!ALKA/NH3=0.0 ! -!ALKM/OLEL=0.0 +!ALKA/SO2=0.0 ! -!ALKM/OLEH=+0.1*K076*<O3>+0.5*K077*<O> - PJAC(:,20,18)=+0.1*TPK%K076(:)*PCONC(:,3)+0.5*TPK%K077(:)*TPK%O(:) +!ALKA/SULF=0.0 ! -!ALKM/ALKL=0.0 +!ALKA/CO=0.0 ! -!ALKM/ALKM=-K078*<OH> - PJAC(:,20,20)=-TPK%K078(:)*PCONC(:,15) +!ALKA/OH=-K058*<ALKA> + PJAC(:,18,14)=-TPK%K058(:)*PCONC(:,18) ! -!ALKM/ALKH=0.0 +!ALKA/HO2=0.0 ! -!ALKM/AROH=0.0 +!ALKA/CH4=0.0 ! -!ALKM/AROL=0.0 +!ALKA/ETH=0.0 ! -!ALKM/AROO=0.0 +!ALKA/ALKA=-K058*<OH> + PJAC(:,18,18)=-TPK%K058(:)*PCONC(:,14) ! -!ALKM/ARAL=0.0 +!ALKA/ALKE=0.0 ! -!ALKM/ARAC=0.0 +!ALKA/BIO=0.0 ! -!ALKM/PAH=0.0 +!ALKA/ARO=0.0 ! -!ALKM/HCHO=0.0 +!ALKA/HCHO=0.0 ! -!ALKM/ALD2=0.0 +!ALKA/ALD=0.0 ! -!ALKM/KETL=0.0 +!ALKA/KET=0.0 ! -!ALKM/KETH=0.0 +!ALKA/CARBO=0.0 ! -!ALKM/MEOH=0.0 +!ALKA/ONIT=0.0 ! -!ALKM/ETOH=0.0 +!ALKA/PAN=0.0 ! -!ALKM/ALCH=0.0 +!ALKA/OP1=0.0 ! -!ALKM/ISOP=0.0 +!ALKA/OP2=0.0 ! -!ALKM/BIOL=0.0 +!ALKA/ORA1=0.0 ! -!ALKM/BIOH=0.0 +!ALKA/ORA2=0.0 ! -!ALKM/MTBE=0.0 +!ALKA/MO2=0.0 ! -!ALKM/MVK=0.0 +!ALKA/ALKAP=0.0 ! -!ALKM/MCR=0.0 +!ALKA/ALKEP=0.0 ! -!ALKM/MGLY=0.0 +!ALKA/BIOP=0.0 ! -!ALKM/GLY=0.0 +!ALKA/PHO=0.0 ! -!ALKM/ORA1=0.0 +!ALKA/ADD=0.0 ! -!ALKM/ORA2=0.0 +!ALKA/AROP=0.0 ! -!ALKM/ACID=0.0 +!ALKA/CARBOP=0.0 ! -!ALKM/UR28=0.0 +!ALKA/OLN=0.0 ! -!ALKM/UR21=0.0 +!ALKA/XO2=0.0 ! -!ALKM/URG2=0.0 +!ALKA/WC_O3=0.0 ! -!ALKM/UR26=0.0 +!ALKA/WC_H2O2=0.0 ! -!ALKM/RPG2=0.0 +!ALKA/WC_NO=0.0 ! -!ALKM/RP18=0.0 +!ALKA/WC_NO2=0.0 ! -!ALKM/RPG3=0.0 +!ALKA/WC_NO3=0.0 ! -!ALKM/URG4=0.0 +!ALKA/WC_N2O5=0.0 ! -!ALKM/UR8=0.0 +!ALKA/WC_HONO=0.0 ! -!ALKM/UR17=0.0 +!ALKA/WC_HNO3=0.0 ! -!ALKM/UR7=0.0 +!ALKA/WC_HNO4=0.0 ! -!ALKM/RPR3=0.0 +!ALKA/WC_NH3=0.0 ! -!ALKM/URG6=0.0 +!ALKA/WC_OH=0.0 ! -!ALKM/UR22=0.0 +!ALKA/WC_HO2=0.0 ! -!ALKM/URG7=0.0 +!ALKA/WC_CO2=0.0 ! -!ALKM/RPR4=0.0 +!ALKA/WC_SO2=0.0 ! -!ALKM/RPR7=0.0 +!ALKA/WC_SULF=0.0 ! -!ALKM/RPG7=0.0 +!ALKA/WC_HCHO=0.0 ! -!ALKM/URG8=0.0 +!ALKA/WC_ORA1=0.0 ! -!ALKM/UR19=0.0 +!ALKA/WC_ORA2=0.0 ! -!ALKM/URG9=0.0 +!ALKA/WC_MO2=0.0 ! -!ALKM/AP7=0.0 +!ALKA/WC_OP1=0.0 ! -!ALKM/URG10=0.0 +!ALKA/WC_ASO3=0.0 ! -!ALKM/RPR1=0.0 +!ALKA/WC_ASO4=0.0 ! -!ALKM/RPR5=0.0 +!ALKA/WC_ASO5=0.0 ! -!ALKM/RPR8=0.0 +!ALKA/WC_AHSO5=0.0 ! -!ALKM/RP10=0.0 +!ALKA/WC_AHMS=0.0 ! -!ALKM/RP11=0.0 +!ALKA/WR_O3=0.0 ! -!ALKM/RP16=0.0 +!ALKA/WR_H2O2=0.0 ! -!ALKM/RPRL=0.0 +!ALKA/WR_NO=0.0 ! -!ALKM/APAN=0.0 +!ALKA/WR_NO2=0.0 ! -!ALKM/PAN1=0.0 +!ALKA/WR_NO3=0.0 ! -!ALKM/PAN2=0.0 +!ALKA/WR_N2O5=0.0 ! -!ALKM/PAN3=0.0 +!ALKA/WR_HONO=0.0 ! -!ALKM/PAN4=0.0 +!ALKA/WR_HNO3=0.0 ! -!ALKM/PAN6=0.0 +!ALKA/WR_HNO4=0.0 ! -!ALKM/PAN7=0.0 +!ALKA/WR_NH3=0.0 ! -!ALKM/PAN8=0.0 +!ALKA/WR_OH=0.0 ! -!ALKM/PN10=0.0 +!ALKA/WR_HO2=0.0 ! -!ALKM/RO2T=0.0 +!ALKA/WR_CO2=0.0 ! -!ALKM/RO21=0.0 +!ALKA/WR_SO2=0.0 ! -!ALKM/RO25=0.0 +!ALKA/WR_SULF=0.0 ! -RETURN -END SUBROUTINE SUBJ3 +!ALKA/WR_HCHO=0.0 ! -SUBROUTINE SUBJ4 +!ALKA/WR_ORA1=0.0 ! -!Indices 21 a 25 +!ALKA/WR_ORA2=0.0 ! +!ALKA/WR_MO2=0.0 ! -!ALKH/NO=0.0 +!ALKA/WR_OP1=0.0 ! -!ALKH/NO2=0.0 +!ALKA/WR_ASO3=0.0 ! -!ALKH/O3=0.0 +!ALKA/WR_ASO4=0.0 ! -!ALKH/HONO=0.0 +!ALKA/WR_ASO5=0.0 ! -!ALKH/HNO3=0.0 +!ALKA/WR_AHSO5=0.0 ! -!ALKH/HNO4=0.0 +!ALKA/WR_AHMS=0.0 ! -!ALKH/N2O5=0.0 +!ALKE/O3=+0.00000*K079*<ALKE>-K079*<ALKE>+0.37388*K080*<BIO> + PJAC(:,19,1)=+0.00000*TPK%K079(:)*PCONC(:,19)-TPK%K079(:)*PCONC(:,19)+0.37388*& +&TPK%K080(:)*PCONC(:,20) ! -!ALKH/NO3=0.0 +!ALKE/H2O2=0.0 ! -!ALKH/NH3=0.0 +!ALKE/NO=+0.37815*K093*<BIOP> + PJAC(:,19,3)=+0.37815*TPK%K093(:)*PCONC(:,35) ! -!ALKH/HO2=0.0 +!ALKE/NO2=0.0 ! -!ALKH/CO=0.0 +!ALKE/NO3=-K076*<ALKE>+0.42729*K122*<BIOP> + PJAC(:,19,5)=-TPK%K076(:)*PCONC(:,19)+0.42729*TPK%K122(:)*PCONC(:,35) ! -!ALKH/H2O2=0.0 +!ALKE/N2O5=0.0 ! -!ALKH/SO2=0.0 +!ALKE/HONO=0.0 ! -!ALKH/H2SO4=0.0 +!ALKE/HNO3=0.0 ! -!ALKH/OH=-K093*<ALKH> - PJAC(:,21,15)=-TPK%K093(:)*PCONC(:,21) +!ALKE/HNO4=0.0 ! -!ALKH/ETHE=0.0 +!ALKE/NH3=0.0 ! -!ALKH/OLEL=0.0 +!ALKE/SO2=0.0 ! -!ALKH/OLEH=0.0 +!ALKE/SULF=0.0 ! -!ALKH/ALKL=0.0 +!ALKE/CO=0.0 ! -!ALKH/ALKM=0.0 +!ALKE/OH=-K059*<ALKE> + PJAC(:,19,14)=-TPK%K059(:)*PCONC(:,19) ! -!ALKH/ALKH=-K093*<OH> - PJAC(:,21,21)=-TPK%K093(:)*PCONC(:,15) +!ALKE/HO2=0.0 ! -!ALKH/AROH=0.0 +!ALKE/CH4=0.0 ! -!ALKH/AROL=0.0 +!ALKE/ETH=0.0 ! -!ALKH/AROO=0.0 +!ALKE/ALKA=0.0 ! -!ALKH/ARAL=0.0 +!ALKE/ALKE=-K059*<OH>-K076*<NO3>+0.00000*K079*<O3>-K079*<O3> + PJAC(:,19,19)=-TPK%K059(:)*PCONC(:,14)-TPK%K076(:)*PCONC(:,5)+0.00000*TPK%K079& +&(:)*PCONC(:,1)-TPK%K079(:)*PCONC(:,1) ! -!ALKH/ARAC=0.0 +!ALKE/BIO=+0.91868*K054*<O3P>+0.37388*K080*<O3> + PJAC(:,19,20)=+0.91868*TPK%K054(:)*TPK%O3P(:)+0.37388*TPK%K080(:)*PCONC(:,1) ! -!ALKH/PAH=0.0 +!ALKE/ARO=0.0 ! -!ALKH/HCHO=0.0 +!ALKE/HCHO=0.0 ! -!ALKH/ALD2=0.0 +!ALKE/ALD=0.0 ! -!ALKH/KETL=0.0 +!ALKE/KET=0.0 ! -!ALKH/KETH=0.0 +!ALKE/CARBO=0.0 ! -!ALKH/MEOH=0.0 +!ALKE/ONIT=0.0 ! -!ALKH/ETOH=0.0 +!ALKE/PAN=0.0 ! -!ALKH/ALCH=0.0 +!ALKE/OP1=0.0 ! -!ALKH/ISOP=0.0 +!ALKE/OP2=0.0 ! -!ALKH/BIOL=0.0 +!ALKE/ORA1=0.0 ! -!ALKH/BIOH=0.0 +!ALKE/ORA2=0.0 ! -!ALKH/MTBE=0.0 +!ALKE/MO2=+0.48074*K107*<BIOP> + PJAC(:,19,32)=+0.48074*TPK%K107(:)*PCONC(:,35) ! -!ALKH/MVK=0.0 +!ALKE/ALKAP=0.0 ! -!ALKH/MCR=0.0 +!ALKE/ALKEP=0.0 ! -!ALKH/MGLY=0.0 +!ALKE/BIOP=+0.37815*K093*<NO>+0.48074*K107*<MO2>+0.24463*K113*<CARBOP>+0.42729* +!K122*<NO3> + PJAC(:,19,35)=+0.37815*TPK%K093(:)*PCONC(:,3)+0.48074*TPK%K107(:)*PCONC(:,32)+& +&0.24463*TPK%K113(:)*PCONC(:,39)+0.42729*TPK%K122(:)*PCONC(:,5) ! -!ALKH/GLY=0.0 +!ALKE/PHO=0.0 ! -!ALKH/ORA1=0.0 +!ALKE/ADD=0.0 ! -!ALKH/ORA2=0.0 +!ALKE/AROP=0.0 ! -!ALKH/ACID=0.0 +!ALKE/CARBOP=+0.24463*K113*<BIOP> + PJAC(:,19,39)=+0.24463*TPK%K113(:)*PCONC(:,35) ! -!ALKH/UR28=0.0 +!ALKE/OLN=0.0 ! -!ALKH/UR21=0.0 +!ALKE/XO2=0.0 ! -!ALKH/URG2=0.0 +!ALKE/WC_O3=0.0 ! -!ALKH/UR26=0.0 +!ALKE/WC_H2O2=0.0 ! -!ALKH/RPG2=0.0 +!ALKE/WC_NO=0.0 ! -!ALKH/RP18=0.0 +!ALKE/WC_NO2=0.0 ! -!ALKH/RPG3=0.0 +!ALKE/WC_NO3=0.0 ! -!ALKH/URG4=0.0 +!ALKE/WC_N2O5=0.0 ! -!ALKH/UR8=0.0 +!ALKE/WC_HONO=0.0 ! -!ALKH/UR17=0.0 +!ALKE/WC_HNO3=0.0 ! -!ALKH/UR7=0.0 +!ALKE/WC_HNO4=0.0 ! -!ALKH/RPR3=0.0 +!ALKE/WC_NH3=0.0 ! -!ALKH/URG6=0.0 +!ALKE/WC_OH=0.0 ! -!ALKH/UR22=0.0 +!ALKE/WC_HO2=0.0 ! -!ALKH/URG7=0.0 +!ALKE/WC_CO2=0.0 ! -!ALKH/RPR4=0.0 +!ALKE/WC_SO2=0.0 ! -!ALKH/RPR7=0.0 +!ALKE/WC_SULF=0.0 ! -!ALKH/RPG7=0.0 +!ALKE/WC_HCHO=0.0 ! -!ALKH/URG8=0.0 +!ALKE/WC_ORA1=0.0 ! -!ALKH/UR19=0.0 +!ALKE/WC_ORA2=0.0 ! -!ALKH/URG9=0.0 +!ALKE/WC_MO2=0.0 ! -!ALKH/AP7=0.0 +!ALKE/WC_OP1=0.0 ! -!ALKH/URG10=0.0 +!ALKE/WC_ASO3=0.0 ! -!ALKH/RPR1=0.0 +!ALKE/WC_ASO4=0.0 ! -!ALKH/RPR5=0.0 +!ALKE/WC_ASO5=0.0 ! -!ALKH/RPR8=0.0 +!ALKE/WC_AHSO5=0.0 ! -!ALKH/RP10=0.0 +!ALKE/WC_AHMS=0.0 ! -!ALKH/RP11=0.0 +!ALKE/WR_O3=0.0 ! -!ALKH/RP16=0.0 +!ALKE/WR_H2O2=0.0 ! -!ALKH/RPRL=0.0 +!ALKE/WR_NO=0.0 ! -!ALKH/APAN=0.0 +!ALKE/WR_NO2=0.0 ! -!ALKH/PAN1=0.0 +!ALKE/WR_NO3=0.0 ! -!ALKH/PAN2=0.0 +!ALKE/WR_N2O5=0.0 ! -!ALKH/PAN3=0.0 +!ALKE/WR_HONO=0.0 ! -!ALKH/PAN4=0.0 +!ALKE/WR_HNO3=0.0 ! -!ALKH/PAN6=0.0 +!ALKE/WR_HNO4=0.0 ! -!ALKH/PAN7=0.0 +!ALKE/WR_NH3=0.0 ! -!ALKH/PAN8=0.0 +!ALKE/WR_OH=0.0 ! -!ALKH/PN10=0.0 +!ALKE/WR_HO2=0.0 ! -!ALKH/RO2T=0.0 +!ALKE/WR_CO2=0.0 ! -!ALKH/RO21=0.0 +!ALKE/WR_SO2=0.0 ! -!ALKH/RO25=0.0 +!ALKE/WR_SULF=0.0 ! -!AROH/NO=0.0 +!ALKE/WR_HCHO=0.0 ! -!AROH/NO2=0.0 +!ALKE/WR_ORA1=0.0 ! -!AROH/O3=0.0 +!ALKE/WR_ORA2=0.0 ! -!AROH/HONO=0.0 +!ALKE/WR_MO2=0.0 ! -!AROH/HNO3=0.0 +!ALKE/WR_OP1=0.0 ! -!AROH/HNO4=0.0 +!ALKE/WR_ASO3=0.0 ! -!AROH/N2O5=0.0 +!ALKE/WR_ASO4=0.0 ! -!AROH/NO3=0.0 +!ALKE/WR_ASO5=0.0 ! -!AROH/NH3=0.0 +!ALKE/WR_AHSO5=0.0 ! -!AROH/HO2=0.0 +!ALKE/WR_AHMS=0.0 ! -!AROH/CO=0.0 +!BIO/O3=-K080*<BIO> + PJAC(:,20,1)=-TPK%K080(:)*PCONC(:,20) ! -!AROH/H2O2=0.0 +!BIO/H2O2=0.0 ! -!AROH/SO2=0.0 +!BIO/NO=0.0 ! -!AROH/H2SO4=0.0 +!BIO/NO2=0.0 ! -!AROH/OH=-K080*<AROH> - PJAC(:,22,15)=-TPK%K080(:)*PCONC(:,22) +!BIO/NO3=-K077*<BIO> + PJAC(:,20,5)=-TPK%K077(:)*PCONC(:,20) ! -!AROH/ETHE=0.0 +!BIO/N2O5=0.0 ! -!AROH/OLEL=0.0 +!BIO/HONO=0.0 ! -!AROH/OLEH=0.0 +!BIO/HNO3=0.0 ! -!AROH/ALKL=0.0 +!BIO/HNO4=0.0 ! -!AROH/ALKM=0.0 +!BIO/NH3=0.0 ! -!AROH/ALKH=0.0 +!BIO/SO2=0.0 ! -!AROH/AROH=-K080*<OH> - PJAC(:,22,22)=-TPK%K080(:)*PCONC(:,15) +!BIO/SULF=0.0 ! -!AROH/AROL=0.0 +!BIO/CO=0.0 ! -!AROH/AROO=0.0 +!BIO/OH=-K060*<BIO> + PJAC(:,20,14)=-TPK%K060(:)*PCONC(:,20) ! -!AROH/ARAL=0.0 +!BIO/HO2=0.0 ! -!AROH/ARAC=0.0 +!BIO/CH4=0.0 ! -!AROH/PAH=0.0 +!BIO/ETH=0.0 ! -!AROH/HCHO=0.0 +!BIO/ALKA=0.0 ! -!AROH/ALD2=0.0 +!BIO/ALKE=0.0 ! -!AROH/KETL=0.0 +!BIO/BIO=-K054*<O3P>-K060*<OH>-K077*<NO3>-K080*<O3> + PJAC(:,20,20)=-TPK%K054(:)*TPK%O3P(:)-TPK%K060(:)*PCONC(:,14)-TPK%K077(:)*PCON& +&C(:,5)-TPK%K080(:)*PCONC(:,1) ! -!AROH/KETH=0.0 +!BIO/ARO=0.0 ! -!AROH/MEOH=0.0 +!BIO/HCHO=0.0 ! -!AROH/ETOH=0.0 +!BIO/ALD=0.0 ! -!AROH/ALCH=0.0 +!BIO/KET=0.0 ! -!AROH/ISOP=0.0 +!BIO/CARBO=0.0 ! -!AROH/BIOL=0.0 +!BIO/ONIT=0.0 ! -!AROH/BIOH=0.0 +!BIO/PAN=0.0 ! -!AROH/MTBE=0.0 +!BIO/OP1=0.0 ! -!AROH/MVK=0.0 +!BIO/OP2=0.0 ! -!AROH/MCR=0.0 +!BIO/ORA1=0.0 ! -!AROH/MGLY=0.0 +!BIO/ORA2=0.0 ! -!AROH/GLY=0.0 +!BIO/MO2=0.0 ! -!AROH/ORA1=0.0 +!BIO/ALKAP=0.0 ! -!AROH/ORA2=0.0 +!BIO/ALKEP=0.0 ! -!AROH/ACID=0.0 +!BIO/BIOP=0.0 ! -!AROH/UR28=0.0 +!BIO/PHO=0.0 ! -!AROH/UR21=0.0 +!BIO/ADD=0.0 ! -!AROH/URG2=0.0 +!BIO/AROP=0.0 ! -!AROH/UR26=0.0 +!BIO/CARBOP=0.0 ! -!AROH/RPG2=0.0 +!BIO/OLN=0.0 ! -!AROH/RP18=0.0 +!BIO/XO2=0.0 ! -!AROH/RPG3=0.0 +!BIO/WC_O3=0.0 ! -!AROH/URG4=0.0 +!BIO/WC_H2O2=0.0 ! -!AROH/UR8=0.0 +!BIO/WC_NO=0.0 ! -!AROH/UR17=0.0 +!BIO/WC_NO2=0.0 ! -!AROH/UR7=0.0 +!BIO/WC_NO3=0.0 ! -!AROH/RPR3=0.0 +!BIO/WC_N2O5=0.0 ! -!AROH/URG6=0.0 +!BIO/WC_HONO=0.0 ! -!AROH/UR22=0.0 +!BIO/WC_HNO3=0.0 ! -!AROH/URG7=0.0 +!BIO/WC_HNO4=0.0 ! -!AROH/RPR4=0.0 +!BIO/WC_NH3=0.0 ! -!AROH/RPR7=0.0 +!BIO/WC_OH=0.0 ! -!AROH/RPG7=0.0 +!BIO/WC_HO2=0.0 ! -!AROH/URG8=0.0 +!BIO/WC_CO2=0.0 ! -!AROH/UR19=0.0 +!BIO/WC_SO2=0.0 ! -!AROH/URG9=0.0 +!BIO/WC_SULF=0.0 ! -!AROH/AP7=0.0 +!BIO/WC_HCHO=0.0 ! -!AROH/URG10=0.0 +!BIO/WC_ORA1=0.0 ! -!AROH/RPR1=0.0 +!BIO/WC_ORA2=0.0 ! -!AROH/RPR5=0.0 +!BIO/WC_MO2=0.0 ! -!AROH/RPR8=0.0 +!BIO/WC_OP1=0.0 ! -!AROH/RP10=0.0 +!BIO/WC_ASO3=0.0 ! -!AROH/RP11=0.0 +!BIO/WC_ASO4=0.0 ! -!AROH/RP16=0.0 +!BIO/WC_ASO5=0.0 ! -!AROH/RPRL=0.0 +!BIO/WC_AHSO5=0.0 ! -!AROH/APAN=0.0 +!BIO/WC_AHMS=0.0 ! -!AROH/PAN1=0.0 +!BIO/WR_O3=0.0 ! -!AROH/PAN2=0.0 +!BIO/WR_H2O2=0.0 ! -!AROH/PAN3=0.0 +!BIO/WR_NO=0.0 ! -!AROH/PAN4=0.0 +!BIO/WR_NO2=0.0 ! -!AROH/PAN6=0.0 +!BIO/WR_NO3=0.0 ! -!AROH/PAN7=0.0 +!BIO/WR_N2O5=0.0 ! -!AROH/PAN8=0.0 +!BIO/WR_HONO=0.0 ! -!AROH/PN10=0.0 +!BIO/WR_HNO3=0.0 ! -!AROH/RO2T=0.0 +!BIO/WR_HNO4=0.0 ! -!AROH/RO21=0.0 +!BIO/WR_NH3=0.0 ! -!AROH/RO25=0.0 +!BIO/WR_OH=0.0 ! -!AROL/NO=0.0 +!BIO/WR_HO2=0.0 ! -!AROL/NO2=0.0 +!BIO/WR_CO2=0.0 ! -!AROL/O3=0.0 +!BIO/WR_SO2=0.0 ! -!AROL/HONO=0.0 +!BIO/WR_SULF=0.0 ! -!AROL/HNO3=0.0 +!BIO/WR_HCHO=0.0 ! -!AROL/HNO4=0.0 +!BIO/WR_ORA1=0.0 ! -!AROL/N2O5=0.0 +!BIO/WR_ORA2=0.0 ! -!AROL/NO3=0.0 +!BIO/WR_MO2=0.0 ! -!AROL/NH3=0.0 +!BIO/WR_OP1=0.0 ! -!AROL/HO2=0.0 +!BIO/WR_ASO3=0.0 ! -!AROL/CO=0.0 +!BIO/WR_ASO4=0.0 ! -!AROL/H2O2=0.0 +!BIO/WR_ASO5=0.0 ! -!AROL/SO2=0.0 +!BIO/WR_AHSO5=0.0 ! -!AROL/H2SO4=0.0 +!BIO/WR_AHMS=0.0 ! -!AROL/OH=-K079*<AROL> - PJAC(:,23,15)=-TPK%K079(:)*PCONC(:,23) +RETURN +END SUBROUTINE SUBJ3 ! -!AROL/ETHE=0.0 +SUBROUTINE SUBJ4 ! -!AROL/OLEL=0.0 +!Indices 21 a 25 ! -!AROL/OLEH=0.0 ! -!AROL/ALKL=0.0 +!ARO/O3=+K087*<ADD> + PJAC(:,21,1)=+TPK%K087(:)*PCONC(:,37) ! -!AROL/ALKM=0.0 +!ARO/H2O2=0.0 ! -!AROL/ALKH=0.0 +!ARO/NO=0.0 ! -!AROL/AROH=0.0 +!ARO/NO2=+0.10670*K083*<PHO>+K085*<ADD> + PJAC(:,21,4)=+0.10670*TPK%K083(:)*PCONC(:,36)+TPK%K085(:)*PCONC(:,37) ! -!AROL/AROL=-K079*<OH> - PJAC(:,23,23)=-TPK%K079(:)*PCONC(:,15) +!ARO/NO3=-K075*<ARO> + PJAC(:,21,5)=-TPK%K075(:)*PCONC(:,21) ! -!AROL/AROO=0.0 +!ARO/N2O5=0.0 ! -!AROL/ARAL=0.0 +!ARO/HONO=0.0 ! -!AROL/ARAC=0.0 +!ARO/HNO3=0.0 ! -!AROL/PAH=0.0 +!ARO/HNO4=0.0 ! -!AROL/HCHO=0.0 +!ARO/NH3=0.0 ! -!AROL/ALD2=0.0 +!ARO/SO2=0.0 ! -!AROL/KETL=0.0 +!ARO/SULF=0.0 ! -!AROL/KETH=0.0 +!ARO/CO=0.0 ! -!AROL/MEOH=0.0 +!ARO/OH=-K061*<ARO> + PJAC(:,21,14)=-TPK%K061(:)*PCONC(:,21) ! -!AROL/ETOH=0.0 +!ARO/HO2=+1.06698*K084*<PHO> + PJAC(:,21,15)=+1.06698*TPK%K084(:)*PCONC(:,36) ! -!AROL/ALCH=0.0 +!ARO/CH4=0.0 ! -!AROL/ISOP=0.0 +!ARO/ETH=0.0 ! -!AROL/BIOL=0.0 +!ARO/ALKA=0.0 ! -!AROL/BIOH=0.0 +!ARO/ALKE=0.0 ! -!AROL/MTBE=0.0 +!ARO/BIO=0.0 ! -!AROL/MVK=0.0 +!ARO/ARO=-K061*<OH>-K075*<NO3> + PJAC(:,21,21)=-TPK%K061(:)*PCONC(:,14)-TPK%K075(:)*PCONC(:,5) ! -!AROL/MCR=0.0 +!ARO/HCHO=0.0 ! -!AROL/MGLY=0.0 +!ARO/ALD=0.0 ! -!AROL/GLY=0.0 +!ARO/KET=0.0 ! -!AROL/ORA1=0.0 +!ARO/CARBO=0.0 ! -!AROL/ORA2=0.0 +!ARO/ONIT=0.0 ! -!AROL/ACID=0.0 +!ARO/PAN=0.0 ! -!AROL/UR28=0.0 +!ARO/OP1=0.0 ! -!AROL/UR21=0.0 +!ARO/OP2=0.0 ! -!AROL/URG2=0.0 +!ARO/ORA1=0.0 ! -!AROL/UR26=0.0 +!ARO/ORA2=0.0 ! -!AROL/RPG2=0.0 +!ARO/MO2=0.0 ! -!AROL/RP18=0.0 +!ARO/ALKAP=0.0 ! -!AROL/RPG3=0.0 +!ARO/ALKEP=0.0 ! -!AROL/URG4=0.0 +!ARO/BIOP=0.0 ! -!AROL/UR8=0.0 +!ARO/PHO=+0.10670*K083*<NO2>+1.06698*K084*<HO2> + PJAC(:,21,36)=+0.10670*TPK%K083(:)*PCONC(:,4)+1.06698*TPK%K084(:)*PCONC(:,15) ! -!AROL/UR17=0.0 +!ARO/ADD=+K085*<NO2>+0.02*K086*<O2>+K087*<O3> + PJAC(:,21,37)=+TPK%K085(:)*PCONC(:,4)+0.02*TPK%K086(:)*TPK%O2(:)+TPK%K087(:)*P& +&CONC(:,1) ! -!AROL/UR7=0.0 +!ARO/AROP=0.0 ! -!AROL/RPR3=0.0 +!ARO/CARBOP=0.0 ! -!AROL/URG6=0.0 +!ARO/OLN=0.0 ! -!AROL/UR22=0.0 +!ARO/XO2=0.0 ! -!AROL/URG7=0.0 +!ARO/WC_O3=0.0 ! -!AROL/RPR4=0.0 +!ARO/WC_H2O2=0.0 ! -!AROL/RPR7=0.0 +!ARO/WC_NO=0.0 ! -!AROL/RPG7=0.0 +!ARO/WC_NO2=0.0 ! -!AROL/URG8=0.0 +!ARO/WC_NO3=0.0 ! -!AROL/UR19=0.0 +!ARO/WC_N2O5=0.0 ! -!AROL/URG9=0.0 +!ARO/WC_HONO=0.0 ! -!AROL/AP7=0.0 +!ARO/WC_HNO3=0.0 ! -!AROL/URG10=0.0 +!ARO/WC_HNO4=0.0 ! -!AROL/RPR1=0.0 +!ARO/WC_NH3=0.0 ! -!AROL/RPR5=0.0 +!ARO/WC_OH=0.0 ! -!AROL/RPR8=0.0 +!ARO/WC_HO2=0.0 ! -!AROL/RP10=0.0 +!ARO/WC_CO2=0.0 ! -!AROL/RP11=0.0 +!ARO/WC_SO2=0.0 ! -!AROL/RP16=0.0 +!ARO/WC_SULF=0.0 ! -!AROL/RPRL=0.0 +!ARO/WC_HCHO=0.0 ! -!AROL/APAN=0.0 +!ARO/WC_ORA1=0.0 ! -!AROL/PAN1=0.0 +!ARO/WC_ORA2=0.0 ! -!AROL/PAN2=0.0 +!ARO/WC_MO2=0.0 ! -!AROL/PAN3=0.0 +!ARO/WC_OP1=0.0 ! -!AROL/PAN4=0.0 +!ARO/WC_ASO3=0.0 ! -!AROL/PAN6=0.0 +!ARO/WC_ASO4=0.0 ! -!AROL/PAN7=0.0 +!ARO/WC_ASO5=0.0 ! -!AROL/PAN8=0.0 +!ARO/WC_AHSO5=0.0 ! -!AROL/PN10=0.0 +!ARO/WC_AHMS=0.0 ! -!AROL/RO2T=0.0 +!ARO/WR_O3=0.0 ! -!AROL/RO21=0.0 +!ARO/WR_H2O2=0.0 ! -!AROL/RO25=0.0 +!ARO/WR_NO=0.0 ! -!AROO/NO=0.0 +!ARO/WR_NO2=0.0 ! -!AROO/NO2=0.0 +!ARO/WR_NO3=0.0 ! -!AROO/O3=0.0 +!ARO/WR_N2O5=0.0 ! -!AROO/HONO=0.0 +!ARO/WR_HONO=0.0 ! -!AROO/HNO3=0.0 +!ARO/WR_HNO3=0.0 ! -!AROO/HNO4=0.0 +!ARO/WR_HNO4=0.0 ! -!AROO/N2O5=0.0 +!ARO/WR_NH3=0.0 ! -!AROO/NO3=-K072*<AROO> - PJAC(:,24,8)=-TPK%K072(:)*PCONC(:,24) +!ARO/WR_OH=0.0 ! -!AROO/NH3=0.0 +!ARO/WR_HO2=0.0 ! -!AROO/HO2=0.0 +!ARO/WR_CO2=0.0 ! -!AROO/CO=0.0 +!ARO/WR_SO2=0.0 ! -!AROO/H2O2=0.0 +!ARO/WR_SULF=0.0 ! -!AROO/SO2=0.0 +!ARO/WR_HCHO=0.0 ! -!AROO/H2SO4=0.0 +!ARO/WR_ORA1=0.0 ! -!AROO/OH=+0.16*K073*<AROO>-K073*<AROO>+0.16*K079*<AROL>+0.16*K080*<AROH> - PJAC(:,24,15)=+0.16*TPK%K073(:)*PCONC(:,24)-TPK%K073(:)*PCONC(:,24)+0.16*TPK%K& -&079(:)*PCONC(:,23)+0.16*TPK%K080(:)*PCONC(:,22) +!ARO/WR_ORA2=0.0 ! -!AROO/ETHE=0.0 +!ARO/WR_MO2=0.0 ! -!AROO/OLEL=0.0 +!ARO/WR_OP1=0.0 ! -!AROO/OLEH=0.0 +!ARO/WR_ASO3=0.0 ! -!AROO/ALKL=0.0 +!ARO/WR_ASO4=0.0 ! -!AROO/ALKM=0.0 +!ARO/WR_ASO5=0.0 ! -!AROO/ALKH=0.0 +!ARO/WR_AHSO5=0.0 ! -!AROO/AROH=+0.16*K080*<OH> - PJAC(:,24,22)=+0.16*TPK%K080(:)*PCONC(:,15) +!ARO/WR_AHMS=0.0 ! -!AROO/AROL=+0.16*K079*<OH> - PJAC(:,24,23)=+0.16*TPK%K079(:)*PCONC(:,15) +!HCHO/O3=+0.48290*K079*<ALKE>+0.90000*K080*<BIO>+0.00000*K081*<CARBO>+0.70*K082 +!*<PAN> + PJAC(:,22,1)=+0.48290*TPK%K079(:)*PCONC(:,19)+0.90000*TPK%K080(:)*PCONC(:,20)+& +&0.00000*TPK%K081(:)*PCONC(:,25)+0.70*TPK%K082(:)*PCONC(:,27) ! -!AROO/AROO=-K072*<NO3>+0.16*K073*<OH>-K073*<OH> - PJAC(:,24,24)=-TPK%K072(:)*PCONC(:,8)+0.16*TPK%K073(:)*PCONC(:,15)-TPK%K073(:)& -&*PCONC(:,15) +!HCHO/H2O2=0.0 ! -!AROO/ARAL=0.0 +!HCHO/NO=+K090*<MO2>+0.03002*K091*<ALKAP>+1.39870*K092*<ALKEP>+0.60600*K093*<BI +!OP>+0.05848*K095*<CARBOP>+0.23419*K096*<OLN> + PJAC(:,22,3)=+TPK%K090(:)*PCONC(:,32)+0.03002*TPK%K091(:)*PCONC(:,33)+1.39870*& +&TPK%K092(:)*PCONC(:,34)+0.60600*TPK%K093(:)*PCONC(:,35)+0.05848*TPK%K095(:)*PC& +&ONC(:,39)+0.23419*TPK%K096(:)*PCONC(:,40) ! -!AROO/ARAC=0.0 +!HCHO/NO2=0.0 ! -!AROO/PAH=0.0 +!HCHO/NO3=-K072*<HCHO>+0.40*K078*<PAN>+K119*<MO2>+0.03142*K120*<ALKAP>+1.40909* +!K121*<ALKEP>+0.68600*K122*<BIOP>+0.03175*K124*<CARBOP>+0.20740*K125*<OLN> + PJAC(:,22,5)=-TPK%K072(:)*PCONC(:,22)+0.40*TPK%K078(:)*PCONC(:,27)+TPK%K119(:)& +&*PCONC(:,32)+0.03142*TPK%K120(:)*PCONC(:,33)+1.40909*TPK%K121(:)*PCONC(:,34)+0& +&.68600*TPK%K122(:)*PCONC(:,35)+0.03175*TPK%K124(:)*PCONC(:,39)+0.20740*TPK%K12& +&5(:)*PCONC(:,40) ! -!AROO/HCHO=0.0 +!HCHO/N2O5=0.0 ! -!AROO/ALD2=0.0 +!HCHO/HONO=0.0 ! -!AROO/KETL=0.0 +!HCHO/HNO3=0.0 ! -!AROO/KETH=0.0 +!HCHO/HNO4=0.0 ! -!AROO/MEOH=0.0 +!HCHO/NH3=0.0 ! -!AROO/ETOH=0.0 +!HCHO/SO2=0.0 ! -!AROO/ALCH=0.0 +!HCHO/SULF=0.0 ! -!AROO/ISOP=0.0 +!HCHO/CO=0.0 ! -!AROO/BIOL=0.0 +!HCHO/OH=+0.00140*K058*<ALKA>-K062*<HCHO>+0.00000*K065*<CARBO>+0.35*K068*<OP1>+ +!0.02915*K069*<OP2>+0.57839*K070*<PAN> + PJAC(:,22,14)=+0.00140*TPK%K058(:)*PCONC(:,18)-TPK%K062(:)*PCONC(:,22)+0.00000& +&*TPK%K065(:)*PCONC(:,25)+0.35*TPK%K068(:)*PCONC(:,28)+0.02915*TPK%K069(:)*PCON& +&C(:,29)+0.57839*TPK%K070(:)*PCONC(:,27) ! -!AROO/BIOH=0.0 +!HCHO/HO2=0.0 ! -!AROO/MTBE=0.0 +!HCHO/CH4=0.0 ! -!AROO/MVK=0.0 +!HCHO/ETH=0.0 ! -!AROO/MCR=0.0 +!HCHO/ALKA=+0.00140*K058*<OH> + PJAC(:,22,18)=+0.00140*TPK%K058(:)*PCONC(:,14) ! -!AROO/MGLY=0.0 +!HCHO/ALKE=+0.48290*K079*<O3> + PJAC(:,22,19)=+0.48290*TPK%K079(:)*PCONC(:,1) ! -!AROO/GLY=0.0 +!HCHO/BIO=+0.05*K054*<O3P>+0.90000*K080*<O3> + PJAC(:,22,20)=+0.05*TPK%K054(:)*TPK%O3P(:)+0.90000*TPK%K080(:)*PCONC(:,1) ! -!AROO/ORA1=0.0 +!HCHO/ARO=0.0 ! -!AROO/ORA2=0.0 +!HCHO/HCHO=-K010-K011-K062*<OH>-K072*<NO3>-KTC16-KTR16 + PJAC(:,22,22)=-TPK%K010(:)-TPK%K011(:)-TPK%K062(:)*PCONC(:,14)-TPK%K072(:)*PCO& +&NC(:,5)-TPK%KTC16(:)-TPK%KTR16(:) ! -!AROO/ACID=0.0 +!HCHO/ALD=0.0 ! -!AROO/UR28=0.0 +!HCHO/KET=0.0 ! -!AROO/UR21=0.0 +!HCHO/CARBO=+0.06517*K016+0.00000*K065*<OH>+0.00000*K081*<O3> + PJAC(:,22,25)=+0.06517*TPK%K016(:)+0.00000*TPK%K065(:)*PCONC(:,14)+0.00000*TPK& +&%K081(:)*PCONC(:,1) ! -!AROO/URG2=0.0 +!HCHO/ONIT=0.0 ! -!AROO/UR26=0.0 +!HCHO/PAN=+0.57839*K070*<OH>+0.40*K078*<NO3>+0.70*K082*<O3> + PJAC(:,22,27)=+0.57839*TPK%K070(:)*PCONC(:,14)+0.40*TPK%K078(:)*PCONC(:,5)+0.7& +&0*TPK%K082(:)*PCONC(:,1) ! -!AROO/RPG2=0.0 +!HCHO/OP1=+K013+0.35*K068*<OH> + PJAC(:,22,28)=+TPK%K013(:)+0.35*TPK%K068(:)*PCONC(:,14) ! -!AROO/RP18=0.0 +!HCHO/OP2=+0.02915*K069*<OH> + PJAC(:,22,29)=+0.02915*TPK%K069(:)*PCONC(:,14) ! -!AROO/RPG3=0.0 +!HCHO/ORA1=0.0 ! -!AROO/URG4=0.0 +!HCHO/ORA2=0.0 ! -!AROO/UR8=0.0 +!HCHO/MO2=+K090*<NO>+1.33*K104*<MO2>+1.33*K104*<MO2>+0.80556*K105*<ALKAP>+1.428 +!94*K106*<ALKEP>+1.09000*K107*<BIOP>+K108*<AROP>+0.95723*K109*<CARBOP>+0.88625* +!K110*<OLN>+K119*<NO3>+K127*<XO2> + PJAC(:,22,32)=+TPK%K090(:)*PCONC(:,3)+1.33*TPK%K104(:)*PCONC(:,32)+1.33*TPK%K1& +&04(:)*PCONC(:,32)+0.80556*TPK%K105(:)*PCONC(:,33)+1.42894*TPK%K106(:)*PCONC(:,& +&34)+1.09000*TPK%K107(:)*PCONC(:,35)+TPK%K108(:)*PCONC(:,38)+0.95723*TPK%K109(:& +&)*PCONC(:,39)+0.88625*TPK%K110(:)*PCONC(:,40)+TPK%K119(:)*PCONC(:,5)+TPK%K127(& +&:)*PCONC(:,41) +! +!HCHO/ALKAP=+0.03002*K091*<NO>+0.80556*K105*<MO2>+0.07600*K111*<CARBOP>+0.03142 +!*K120*<NO3> + PJAC(:,22,33)=+0.03002*TPK%K091(:)*PCONC(:,3)+0.80556*TPK%K105(:)*PCONC(:,32)+& +&0.07600*TPK%K111(:)*PCONC(:,39)+0.03142*TPK%K120(:)*PCONC(:,5) +! +!HCHO/ALKEP=+1.39870*K092*<NO>+1.42894*K106*<MO2>+0.68192*K112*<CARBOP>+1.40909 +!*K121*<NO3> + PJAC(:,22,34)=+1.39870*TPK%K092(:)*PCONC(:,3)+1.42894*TPK%K106(:)*PCONC(:,32)+& +&0.68192*TPK%K112(:)*PCONC(:,39)+1.40909*TPK%K121(:)*PCONC(:,5) +! +!HCHO/BIOP=+0.60600*K093*<NO>+1.09000*K107*<MO2>+0.34000*K113*<CARBOP>+0.68600* +!K122*<NO3> + PJAC(:,22,35)=+0.60600*TPK%K093(:)*PCONC(:,3)+1.09000*TPK%K107(:)*PCONC(:,32)+& +&0.34000*TPK%K113(:)*PCONC(:,39)+0.68600*TPK%K122(:)*PCONC(:,5) +! +!HCHO/PHO=0.0 +! +!HCHO/ADD=0.0 +! +!HCHO/AROP=+K108*<MO2> + PJAC(:,22,38)=+TPK%K108(:)*PCONC(:,32) +! +!HCHO/CARBOP=+0.05848*K095*<NO>+0.95723*K109*<MO2>+0.07600*K111*<ALKAP>+0.68192 +!*K112*<ALKEP>+0.34000*K113*<BIOP>+0.03432*K115*<CARBOP>+0.03432*K115*<CARBOP>+ +!0.13414*K116*<OLN>+0.03175*K124*<NO3> + PJAC(:,22,39)=+0.05848*TPK%K095(:)*PCONC(:,3)+0.95723*TPK%K109(:)*PCONC(:,32)+& +&0.07600*TPK%K111(:)*PCONC(:,33)+0.68192*TPK%K112(:)*PCONC(:,34)+0.34000*TPK%K1& +&13(:)*PCONC(:,35)+0.03432*TPK%K115(:)*PCONC(:,39)+0.03432*TPK%K115(:)*PCONC(:,& +&39)+0.13414*TPK%K116(:)*PCONC(:,40)+0.03175*TPK%K124(:)*PCONC(:,5) +! +!HCHO/OLN=+0.23419*K096*<NO>+0.88625*K110*<MO2>+0.13414*K116*<CARBOP>+0.00000*K +!118*<OLN>+0.00000*K118*<OLN>+0.20740*K125*<NO3> + PJAC(:,22,40)=+0.23419*TPK%K096(:)*PCONC(:,3)+0.88625*TPK%K110(:)*PCONC(:,32)+& +&0.13414*TPK%K116(:)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K1& +&18(:)*PCONC(:,40)+0.20740*TPK%K125(:)*PCONC(:,5) +! +!HCHO/XO2=+K127*<MO2> + PJAC(:,22,41)=+TPK%K127(:)*PCONC(:,32) ! -!AROO/UR17=0.0 +!HCHO/WC_O3=0.0 ! -!AROO/UR7=0.0 +!HCHO/WC_H2O2=0.0 ! -!AROO/RPR3=0.0 +!HCHO/WC_NO=0.0 ! -!AROO/URG6=0.0 +!HCHO/WC_NO2=0.0 ! -!AROO/UR22=0.0 +!HCHO/WC_NO3=0.0 ! -!AROO/URG7=0.0 +!HCHO/WC_N2O5=0.0 ! -!AROO/RPR4=0.0 +!HCHO/WC_HONO=0.0 ! -!AROO/RPR7=0.0 +!HCHO/WC_HNO3=0.0 ! -!AROO/RPG7=0.0 +!HCHO/WC_HNO4=0.0 ! -!AROO/URG8=0.0 +!HCHO/WC_NH3=0.0 ! -!AROO/UR19=0.0 +!HCHO/WC_OH=0.0 ! -!AROO/URG9=0.0 +!HCHO/WC_HO2=0.0 ! -!AROO/AP7=0.0 +!HCHO/WC_CO2=0.0 ! -!AROO/URG10=0.0 +!HCHO/WC_SO2=0.0 ! -!AROO/RPR1=0.0 +!HCHO/WC_SULF=0.0 ! -!AROO/RPR5=0.0 +!HCHO/WC_HCHO=+KTC36 + PJAC(:,22,57)=+TPK%KTC36(:) ! -!AROO/RPR8=0.0 +!HCHO/WC_ORA1=0.0 ! -!AROO/RP10=0.0 +!HCHO/WC_ORA2=0.0 ! -!AROO/RP11=0.0 +!HCHO/WC_MO2=0.0 ! -!AROO/RP16=0.0 +!HCHO/WC_OP1=0.0 ! -!AROO/RPRL=0.0 +!HCHO/WC_ASO3=0.0 ! -!AROO/APAN=0.0 +!HCHO/WC_ASO4=0.0 ! -!AROO/PAN1=0.0 +!HCHO/WC_ASO5=0.0 ! -!AROO/PAN2=0.0 +!HCHO/WC_AHSO5=0.0 ! -!AROO/PAN3=0.0 +!HCHO/WC_AHMS=0.0 ! -!AROO/PAN4=0.0 +!HCHO/WR_O3=0.0 ! -!AROO/PAN6=0.0 +!HCHO/WR_H2O2=0.0 ! -!AROO/PAN7=0.0 +!HCHO/WR_NO=0.0 ! -!AROO/PAN8=0.0 +!HCHO/WR_NO2=0.0 ! -!AROO/PN10=0.0 +!HCHO/WR_NO3=0.0 ! -!AROO/RO2T=0.0 +!HCHO/WR_N2O5=0.0 ! -!AROO/RO21=0.0 +!HCHO/WR_HONO=0.0 ! -!AROO/RO25=0.0 +!HCHO/WR_HNO3=0.0 ! -!ARAL/NO=+TPK%CF24*K189*<RO221> - PJAC(:,25,1)=+TPK%CF24*TPK%K189(:)*TPK%RO221(:) +!HCHO/WR_HNO4=0.0 ! -!ARAL/NO2=0.0 +!HCHO/WR_NH3=0.0 ! -!ARAL/O3=0.0 +!HCHO/WR_OH=0.0 ! -!ARAL/HONO=0.0 +!HCHO/WR_HO2=0.0 ! -!ARAL/HNO3=0.0 +!HCHO/WR_CO2=0.0 ! -!ARAL/HNO4=0.0 +!HCHO/WR_SO2=0.0 ! -!ARAL/N2O5=0.0 +!HCHO/WR_SULF=0.0 ! -!ARAL/NO3=-K081*<ARAL> - PJAC(:,25,8)=-TPK%K081(:)*PCONC(:,25) +!HCHO/WR_HCHO=+KTR36 + PJAC(:,22,82)=+TPK%KTR36(:) ! -!ARAL/NH3=0.0 +!HCHO/WR_ORA1=0.0 ! -!ARAL/HO2=+K191*<RO221> - PJAC(:,25,10)=+TPK%K191(:)*TPK%RO221(:) +!HCHO/WR_ORA2=0.0 ! -!ARAL/CO=0.0 +!HCHO/WR_MO2=0.0 ! -!ARAL/H2O2=0.0 +!HCHO/WR_OP1=0.0 ! -!ARAL/SO2=0.0 +!HCHO/WR_ASO3=0.0 ! -!ARAL/H2SO4=0.0 +!HCHO/WR_ASO4=0.0 ! -!ARAL/OH=-K082*<ARAL> - PJAC(:,25,15)=-TPK%K082(:)*PCONC(:,25) +!HCHO/WR_ASO5=0.0 ! -!ARAL/ETHE=0.0 +!HCHO/WR_AHSO5=0.0 ! -!ARAL/OLEL=0.0 +!HCHO/WR_AHMS=0.0 ! -!ARAL/OLEH=0.0 +!ALD/O3=+0.51468*K079*<ALKE>+0.00000*K080*<BIO>+0.15692*K081*<CARBO> + PJAC(:,23,1)=+0.51468*TPK%K079(:)*PCONC(:,19)+0.00000*TPK%K080(:)*PCONC(:,20)+& +&0.15692*TPK%K081(:)*PCONC(:,25) ! -!ARAL/ALKL=0.0 +!ALD/H2O2=0.0 ! -!ARAL/ALKM=0.0 +!ALD/NO=+0.33144*K091*<ALKAP>+0.42125*K092*<ALKEP>+0.00000*K093*<BIOP>+0.07368* +!K095*<CARBOP>+1.01182*K096*<OLN> + PJAC(:,23,3)=+0.33144*TPK%K091(:)*PCONC(:,33)+0.42125*TPK%K092(:)*PCONC(:,34)+& +&0.00000*TPK%K093(:)*PCONC(:,35)+0.07368*TPK%K095(:)*PCONC(:,39)+1.01182*TPK%K0& +&96(:)*PCONC(:,40) ! -!ARAL/ALKH=0.0 +!ALD/NO2=0.0 ! -!ARAL/AROH=0.0 +!ALD/NO3=-K073*<ALD>+0.05265*K074*<CARBO>+0.33743*K120*<ALKAP>+0.43039*K121*<AL +!KEP>+0.00000*K122*<BIOP>+0.02936*K124*<CARBOP>+0.91850*K125*<OLN> + PJAC(:,23,5)=-TPK%K073(:)*PCONC(:,23)+0.05265*TPK%K074(:)*PCONC(:,25)+0.33743*& +&TPK%K120(:)*PCONC(:,33)+0.43039*TPK%K121(:)*PCONC(:,34)+0.00000*TPK%K122(:)*PC& +&ONC(:,35)+0.02936*TPK%K124(:)*PCONC(:,39)+0.91850*TPK%K125(:)*PCONC(:,40) ! -!ARAL/AROL=0.0 +!ALD/N2O5=0.0 ! -!ARAL/AROO=0.0 +!ALD/HONO=0.0 ! -!ARAL/ARAL=-K081*<NO3>-K082*<OH> - PJAC(:,25,25)=-TPK%K081(:)*PCONC(:,8)-TPK%K082(:)*PCONC(:,15) +!ALD/HNO3=0.0 ! -!ARAL/ARAC=0.0 +!ALD/HNO4=0.0 ! -!ARAL/PAH=0.0 +!ALD/NH3=0.0 ! -!ARAL/HCHO=0.0 +!ALD/SO2=0.0 ! -!ARAL/ALD2=0.0 +!ALD/SULF=0.0 ! -!ARAL/KETL=0.0 +!ALD/CO=0.0 ! -!ARAL/KETH=0.0 +!ALD/OH=+0.08173*K058*<ALKA>-K063*<ALD>+0.06253*K065*<CARBO>+0.07335*K069*<OP2> + PJAC(:,23,14)=+0.08173*TPK%K058(:)*PCONC(:,18)-TPK%K063(:)*PCONC(:,23)+0.06253& +&*TPK%K065(:)*PCONC(:,25)+0.07335*TPK%K069(:)*PCONC(:,29) ! -!ARAL/MEOH=0.0 +!ALD/HO2=0.0 ! -!ARAL/ETOH=0.0 +!ALD/CH4=0.0 ! -!ARAL/ALCH=0.0 +!ALD/ETH=0.0 ! -!ARAL/ISOP=0.0 +!ALD/ALKA=+0.08173*K058*<OH> + PJAC(:,23,18)=+0.08173*TPK%K058(:)*PCONC(:,14) ! -!ARAL/BIOL=0.0 +!ALD/ALKE=+0.51468*K079*<O3> + PJAC(:,23,19)=+0.51468*TPK%K079(:)*PCONC(:,1) ! -!ARAL/BIOH=0.0 +!ALD/BIO=+0.00000*K080*<O3> + PJAC(:,23,20)=+0.00000*TPK%K080(:)*PCONC(:,1) ! -!ARAL/MTBE=0.0 +!ALD/ARO=0.0 ! -!ARAL/MVK=0.0 +!ALD/HCHO=0.0 ! -!ARAL/MCR=0.0 +!ALD/ALD=-K012-K063*<OH>-K073*<NO3> + PJAC(:,23,23)=-TPK%K012(:)-TPK%K063(:)*PCONC(:,14)-TPK%K073(:)*PCONC(:,5) ! -!ARAL/MGLY=0.0 +!ALD/KET=0.0 ! -!ARAL/GLY=0.0 +!ALD/CARBO=+K055*<O3P>+0.06253*K065*<OH>+0.05265*K074*<NO3>+0.15692*K081*<O3> + PJAC(:,23,25)=+TPK%K055(:)*TPK%O3P(:)+0.06253*TPK%K065(:)*PCONC(:,14)+0.05265*& +&TPK%K074(:)*PCONC(:,5)+0.15692*TPK%K081(:)*PCONC(:,1) ! -!ARAL/ORA1=0.0 +!ALD/ONIT=+0.20*K017 + PJAC(:,23,26)=+0.20*TPK%K017(:) ! -!ARAL/ORA2=0.0 +!ALD/PAN=0.0 ! -!ARAL/ACID=0.0 +!ALD/OP1=0.0 ! -!ARAL/UR28=0.0 +!ALD/OP2=+0.96205*K014+0.07335*K069*<OH> + PJAC(:,23,29)=+0.96205*TPK%K014(:)+0.07335*TPK%K069(:)*PCONC(:,14) ! -!ARAL/UR21=0.0 +!ALD/ORA1=0.0 ! -!ARAL/URG2=0.0 +!ALD/ORA2=0.0 ! -!ARAL/UR26=0.0 +!ALD/MO2=+0.56070*K105*<ALKAP>+0.46413*K106*<ALKEP>+0.00000*K107*<BIOP>+0.08295 +!*K109*<CARBOP>+0.41524*K110*<OLN> + PJAC(:,23,32)=+0.56070*TPK%K105(:)*PCONC(:,33)+0.46413*TPK%K106(:)*PCONC(:,34)& +&+0.00000*TPK%K107(:)*PCONC(:,35)+0.08295*TPK%K109(:)*PCONC(:,39)+0.41524*TPK%K& +&110(:)*PCONC(:,40) ! -!ARAL/RPG2=0.0 +!ALD/ALKAP=+0.33144*K091*<NO>+0.56070*K105*<MO2>+0.71461*K111*<CARBOP>+0.33743* +!K120*<NO3> + PJAC(:,23,33)=+0.33144*TPK%K091(:)*PCONC(:,3)+0.56070*TPK%K105(:)*PCONC(:,32)+& +&0.71461*TPK%K111(:)*PCONC(:,39)+0.33743*TPK%K120(:)*PCONC(:,5) ! -!ARAL/RP18=0.0 +!ALD/ALKEP=+0.42125*K092*<NO>+0.46413*K106*<MO2>+0.68374*K112*<CARBOP>+0.43039* +!K121*<NO3> + PJAC(:,23,34)=+0.42125*TPK%K092(:)*PCONC(:,3)+0.46413*TPK%K106(:)*PCONC(:,32)+& +&0.68374*TPK%K112(:)*PCONC(:,39)+0.43039*TPK%K121(:)*PCONC(:,5) ! -!ARAL/RPG3=0.0 +!ALD/BIOP=+0.00000*K093*<NO>+0.00000*K107*<MO2>+0.00000*K113*<CARBOP>+0.00000*K +!122*<NO3> + PJAC(:,23,35)=+0.00000*TPK%K093(:)*PCONC(:,3)+0.00000*TPK%K107(:)*PCONC(:,32)+& +&0.00000*TPK%K113(:)*PCONC(:,39)+0.00000*TPK%K122(:)*PCONC(:,5) ! -!ARAL/URG4=0.0 +!ALD/PHO=0.0 ! -!ARAL/UR8=0.0 +!ALD/ADD=0.0 ! -!ARAL/UR17=0.0 +!ALD/AROP=0.0 ! -!ARAL/UR7=0.0 +!ALD/CARBOP=+0.07368*K095*<NO>+0.08295*K109*<MO2>+0.71461*K111*<ALKAP>+0.68374* +!K112*<ALKEP>+0.00000*K113*<BIOP>+0.06969*K115*<CARBOP>+0.06969*K115*<CARBOP>+0 +!.42122*K116*<OLN>+0.02936*K124*<NO3> + PJAC(:,23,39)=+0.07368*TPK%K095(:)*PCONC(:,3)+0.08295*TPK%K109(:)*PCONC(:,32)+& +&0.71461*TPK%K111(:)*PCONC(:,33)+0.68374*TPK%K112(:)*PCONC(:,34)+0.00000*TPK%K1& +&13(:)*PCONC(:,35)+0.06969*TPK%K115(:)*PCONC(:,39)+0.06969*TPK%K115(:)*PCONC(:,& +&39)+0.42122*TPK%K116(:)*PCONC(:,40)+0.02936*TPK%K124(:)*PCONC(:,5) ! -!ARAL/RPR3=0.0 +!ALD/OLN=+1.01182*K096*<NO>+0.41524*K110*<MO2>+0.42122*K116*<CARBOP>+0.00000*K1 +!18*<OLN>+0.00000*K118*<OLN>+0.91850*K125*<NO3> + PJAC(:,23,40)=+1.01182*TPK%K096(:)*PCONC(:,3)+0.41524*TPK%K110(:)*PCONC(:,32)+& +&0.42122*TPK%K116(:)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K1& +&18(:)*PCONC(:,40)+0.91850*TPK%K125(:)*PCONC(:,5) ! -!ARAL/URG6=0.0 +!ALD/XO2=0.0 ! -!ARAL/UR22=0.0 +!ALD/WC_O3=0.0 ! -!ARAL/URG7=0.0 +!ALD/WC_H2O2=0.0 ! -!ARAL/RPR4=0.0 +!ALD/WC_NO=0.0 ! -!ARAL/RPR7=0.0 +!ALD/WC_NO2=0.0 ! -!ARAL/RPG7=0.0 +!ALD/WC_NO3=0.0 ! -!ARAL/URG8=0.0 +!ALD/WC_N2O5=0.0 ! -!ARAL/UR19=0.0 +!ALD/WC_HONO=0.0 ! -!ARAL/URG9=0.0 +!ALD/WC_HNO3=0.0 ! -!ARAL/AP7=0.0 +!ALD/WC_HNO4=0.0 ! -!ARAL/URG10=0.0 +!ALD/WC_NH3=0.0 ! -!ARAL/RPR1=0.0 +!ALD/WC_OH=0.0 ! -!ARAL/RPR5=0.0 +!ALD/WC_HO2=0.0 ! -!ARAL/RPR8=0.0 +!ALD/WC_CO2=0.0 ! -!ARAL/RP10=0.0 +!ALD/WC_SO2=0.0 ! -!ARAL/RP11=0.0 +!ALD/WC_SULF=0.0 ! -!ARAL/RP16=0.0 +!ALD/WC_HCHO=0.0 ! -!ARAL/RPRL=0.0 +!ALD/WC_ORA1=0.0 ! -!ARAL/APAN=0.0 +!ALD/WC_ORA2=0.0 ! -!ARAL/PAN1=0.0 +!ALD/WC_MO2=0.0 ! -!ARAL/PAN2=0.0 +!ALD/WC_OP1=0.0 ! -!ARAL/PAN3=0.0 +!ALD/WC_ASO3=0.0 ! -!ARAL/PAN4=0.0 +!ALD/WC_ASO4=0.0 ! -!ARAL/PAN6=0.0 +!ALD/WC_ASO5=0.0 ! -!ARAL/PAN7=0.0 +!ALD/WC_AHSO5=0.0 ! -!ARAL/PAN8=0.0 +!ALD/WC_AHMS=0.0 ! -!ARAL/PN10=0.0 +!ALD/WR_O3=0.0 ! -!ARAL/RO2T=+K190*<RO221> - PJAC(:,25,85)=+TPK%K190(:)*TPK%RO221(:) +!ALD/WR_H2O2=0.0 ! -!ARAL/RO21=0.0 +!ALD/WR_NO=0.0 ! -!ARAL/RO25=0.0 +!ALD/WR_NO2=0.0 ! -RETURN -END SUBROUTINE SUBJ4 +!ALD/WR_NO3=0.0 ! -SUBROUTINE SUBJ5 +!ALD/WR_N2O5=0.0 ! -!Indices 26 a 30 +!ALD/WR_HONO=0.0 ! +!ALD/WR_HNO3=0.0 ! -!ARAC/NO=0.0 +!ALD/WR_HNO4=0.0 ! -!ARAC/NO2=0.0 +!ALD/WR_NH3=0.0 ! -!ARAC/O3=0.0 +!ALD/WR_OH=0.0 ! -!ARAC/HONO=0.0 +!ALD/WR_HO2=0.0 ! -!ARAC/HNO3=0.0 +!ALD/WR_CO2=0.0 ! -!ARAC/HNO4=0.0 +!ALD/WR_SO2=0.0 ! -!ARAC/N2O5=0.0 +!ALD/WR_SULF=0.0 ! -!ARAC/NO3=+K081*<ARAL> - PJAC(:,26,8)=+TPK%K081(:)*PCONC(:,25) +!ALD/WR_HCHO=0.0 ! -!ARAC/NH3=0.0 +!ALD/WR_ORA1=0.0 ! -!ARAC/HO2=0.0 +!ALD/WR_ORA2=0.0 ! -!ARAC/CO=0.0 +!ALD/WR_MO2=0.0 ! -!ARAC/H2O2=0.0 +!ALD/WR_OP1=0.0 ! -!ARAC/SO2=0.0 +!ALD/WR_ASO3=0.0 ! -!ARAC/H2SO4=0.0 +!ALD/WR_ASO4=0.0 ! -!ARAC/OH=+TPK%CF39*K082*<ARAL>-K083*<ARAC> - PJAC(:,26,15)=+TPK%CF39*TPK%K082(:)*PCONC(:,25)-TPK%K083(:)*PCONC(:,26) +!ALD/WR_ASO5=0.0 ! -!ARAC/ETHE=0.0 +!ALD/WR_AHSO5=0.0 ! -!ARAC/OLEL=0.0 +!ALD/WR_AHMS=0.0 ! -!ARAC/OLEH=0.0 +!KET/O3=+0.07377*K079*<ALKE>+0.00000*K080*<BIO> + PJAC(:,24,1)=+0.07377*TPK%K079(:)*PCONC(:,19)+0.00000*TPK%K080(:)*PCONC(:,20) ! -!ARAC/ALKL=0.0 +!KET/H2O2=0.0 ! -!ARAC/ALKM=0.0 +!KET/NO=+0.54531*K091*<ALKAP>+0.05220*K092*<ALKEP>+0.00000*K093*<BIOP>+0.37862* +!K096*<OLN> + PJAC(:,24,3)=+0.54531*TPK%K091(:)*PCONC(:,33)+0.05220*TPK%K092(:)*PCONC(:,34)+& +&0.00000*TPK%K093(:)*PCONC(:,35)+0.37862*TPK%K096(:)*PCONC(:,40) ! -!ARAC/ALKH=0.0 +!KET/NO2=0.0 ! -!ARAC/AROH=0.0 +!KET/NO3=+0.00632*K074*<CARBO>+0.62978*K120*<ALKAP>+0.02051*K121*<ALKEP>+0.0000 +!0*K122*<BIOP>+0.34740*K125*<OLN> + PJAC(:,24,5)=+0.00632*TPK%K074(:)*PCONC(:,25)+0.62978*TPK%K120(:)*PCONC(:,33)+& +&0.02051*TPK%K121(:)*PCONC(:,34)+0.00000*TPK%K122(:)*PCONC(:,35)+0.34740*TPK%K1& +&25(:)*PCONC(:,40) ! -!ARAC/AROL=0.0 +!KET/N2O5=0.0 ! -!ARAC/AROO=0.0 +!KET/HONO=0.0 ! -!ARAC/ARAL=+K081*<NO3>+TPK%CF39*K082*<OH> - PJAC(:,26,25)=+TPK%K081(:)*PCONC(:,8)+TPK%CF39*TPK%K082(:)*PCONC(:,15) +!KET/HNO3=0.0 ! -!ARAC/ARAC=-K083*<OH> - PJAC(:,26,26)=-TPK%K083(:)*PCONC(:,15) +!KET/HNO4=0.0 ! -!ARAC/PAH=0.0 +!KET/NH3=0.0 ! -!ARAC/HCHO=0.0 +!KET/SO2=0.0 ! -!ARAC/ALD2=0.0 +!KET/SULF=0.0 ! -!ARAC/KETL=0.0 +!KET/CO=0.0 ! -!ARAC/KETH=0.0 +!KET/OH=+0.03498*K058*<ALKA>-K064*<KET>+0.00853*K065*<CARBO>+0.37591*K069*<OP2> + PJAC(:,24,14)=+0.03498*TPK%K058(:)*PCONC(:,18)-TPK%K064(:)*PCONC(:,24)+0.00853& +&*TPK%K065(:)*PCONC(:,25)+0.37591*TPK%K069(:)*PCONC(:,29) ! -!ARAC/MEOH=0.0 +!KET/HO2=0.0 ! -!ARAC/ETOH=0.0 +!KET/CH4=0.0 ! -!ARAC/ALCH=0.0 +!KET/ETH=0.0 ! -!ARAC/ISOP=0.0 +!KET/ALKA=+0.03498*K058*<OH> + PJAC(:,24,18)=+0.03498*TPK%K058(:)*PCONC(:,14) ! -!ARAC/BIOL=0.0 +!KET/ALKE=+0.07377*K079*<O3> + PJAC(:,24,19)=+0.07377*TPK%K079(:)*PCONC(:,1) ! -!ARAC/BIOH=0.0 +!KET/BIO=+0.00000*K080*<O3> + PJAC(:,24,20)=+0.00000*TPK%K080(:)*PCONC(:,1) ! -!ARAC/MTBE=0.0 +!KET/ARO=0.0 ! -!ARAC/MVK=0.0 +!KET/HCHO=0.0 ! -!ARAC/MCR=0.0 +!KET/ALD=0.0 ! -!ARAC/MGLY=0.0 +!KET/KET=-K015-K064*<OH> + PJAC(:,24,24)=-TPK%K015(:)-TPK%K064(:)*PCONC(:,14) ! -!ARAC/GLY=0.0 +!KET/CARBO=+0.00853*K065*<OH>+0.00632*K074*<NO3> + PJAC(:,24,25)=+0.00853*TPK%K065(:)*PCONC(:,14)+0.00632*TPK%K074(:)*PCONC(:,5) ! -!ARAC/ORA1=0.0 +!KET/ONIT=+0.80*K017 + PJAC(:,24,26)=+0.80*TPK%K017(:) ! -!ARAC/ORA2=0.0 +!KET/PAN=0.0 ! -!ARAC/ACID=0.0 +!KET/OP1=0.0 ! -!ARAC/UR28=0.0 +!KET/OP2=+0.37591*K069*<OH> + PJAC(:,24,29)=+0.37591*TPK%K069(:)*PCONC(:,14) ! -!ARAC/UR21=0.0 +!KET/ORA1=0.0 ! -!ARAC/URG2=0.0 +!KET/ORA2=0.0 ! -!ARAC/UR26=0.0 +!KET/MO2=+0.09673*K105*<ALKAP>+0.03814*K106*<ALKEP>+0.00000*K107*<BIOP>+0.09667 +!*K110*<OLN> + PJAC(:,24,32)=+0.09673*TPK%K105(:)*PCONC(:,33)+0.03814*TPK%K106(:)*PCONC(:,34)& +&+0.00000*TPK%K107(:)*PCONC(:,35)+0.09667*TPK%K110(:)*PCONC(:,40) ! -!ARAC/RPG2=0.0 +!KET/ALKAP=+0.54531*K091*<NO>+0.09673*K105*<MO2>+0.18819*K111*<CARBOP>+0.62978* +!K120*<NO3> + PJAC(:,24,33)=+0.54531*TPK%K091(:)*PCONC(:,3)+0.09673*TPK%K105(:)*PCONC(:,32)+& +&0.18819*TPK%K111(:)*PCONC(:,39)+0.62978*TPK%K120(:)*PCONC(:,5) ! -!ARAC/RP18=0.0 +!KET/ALKEP=+0.05220*K092*<NO>+0.03814*K106*<MO2>+0.06579*K112*<CARBOP>+0.02051* +!K121*<NO3> + PJAC(:,24,34)=+0.05220*TPK%K092(:)*PCONC(:,3)+0.03814*TPK%K106(:)*PCONC(:,32)+& +&0.06579*TPK%K112(:)*PCONC(:,39)+0.02051*TPK%K121(:)*PCONC(:,5) ! -!ARAC/RPG3=0.0 +!KET/BIOP=+0.00000*K093*<NO>+0.00000*K107*<MO2>+0.00000*K113*<CARBOP>+0.00000*K +!122*<NO3> + PJAC(:,24,35)=+0.00000*TPK%K093(:)*PCONC(:,3)+0.00000*TPK%K107(:)*PCONC(:,32)+& +&0.00000*TPK%K113(:)*PCONC(:,39)+0.00000*TPK%K122(:)*PCONC(:,5) ! -!ARAC/URG4=0.0 +!KET/PHO=0.0 ! -!ARAC/UR8=0.0 +!KET/ADD=0.0 ! -!ARAC/UR17=0.0 +!KET/AROP=0.0 ! -!ARAC/UR7=0.0 +!KET/CARBOP=+0.18819*K111*<ALKAP>+0.06579*K112*<ALKEP>+0.00000*K113*<BIOP>+0.02 +!190*K115*<CARBOP>+0.02190*K115*<CARBOP>+0.10822*K116*<OLN> + PJAC(:,24,39)=+0.18819*TPK%K111(:)*PCONC(:,33)+0.06579*TPK%K112(:)*PCONC(:,34)& +&+0.00000*TPK%K113(:)*PCONC(:,35)+0.02190*TPK%K115(:)*PCONC(:,39)+0.02190*TPK%K& +&115(:)*PCONC(:,39)+0.10822*TPK%K116(:)*PCONC(:,40) ! -!ARAC/RPR3=0.0 +!KET/OLN=+0.37862*K096*<NO>+0.09667*K110*<MO2>+0.10822*K116*<CARBOP>+0.00000*K1 +!18*<OLN>+0.00000*K118*<OLN>+0.34740*K125*<NO3> + PJAC(:,24,40)=+0.37862*TPK%K096(:)*PCONC(:,3)+0.09667*TPK%K110(:)*PCONC(:,32)+& +&0.10822*TPK%K116(:)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K1& +&18(:)*PCONC(:,40)+0.34740*TPK%K125(:)*PCONC(:,5) ! -!ARAC/URG6=0.0 +!KET/XO2=0.0 ! -!ARAC/UR22=0.0 +!KET/WC_O3=0.0 ! -!ARAC/URG7=0.0 +!KET/WC_H2O2=0.0 ! -!ARAC/RPR4=0.0 +!KET/WC_NO=0.0 ! -!ARAC/RPR7=0.0 +!KET/WC_NO2=0.0 ! -!ARAC/RPG7=0.0 +!KET/WC_NO3=0.0 ! -!ARAC/URG8=0.0 +!KET/WC_N2O5=0.0 ! -!ARAC/UR19=0.0 +!KET/WC_HONO=0.0 ! -!ARAC/URG9=0.0 +!KET/WC_HNO3=0.0 ! -!ARAC/AP7=0.0 +!KET/WC_HNO4=0.0 ! -!ARAC/URG10=0.0 +!KET/WC_NH3=0.0 ! -!ARAC/RPR1=0.0 +!KET/WC_OH=0.0 ! -!ARAC/RPR5=0.0 +!KET/WC_HO2=0.0 ! -!ARAC/RPR8=0.0 +!KET/WC_CO2=0.0 ! -!ARAC/RP10=0.0 +!KET/WC_SO2=0.0 ! -!ARAC/RP11=0.0 +!KET/WC_SULF=0.0 ! -!ARAC/RP16=0.0 +!KET/WC_HCHO=0.0 ! -!ARAC/RPRL=0.0 +!KET/WC_ORA1=0.0 ! -!ARAC/APAN=0.0 +!KET/WC_ORA2=0.0 ! -!ARAC/PAN1=0.0 +!KET/WC_MO2=0.0 ! -!ARAC/PAN2=0.0 +!KET/WC_OP1=0.0 ! -!ARAC/PAN3=0.0 +!KET/WC_ASO3=0.0 ! -!ARAC/PAN4=0.0 +!KET/WC_ASO4=0.0 ! -!ARAC/PAN6=0.0 +!KET/WC_ASO5=0.0 ! -!ARAC/PAN7=0.0 +!KET/WC_AHSO5=0.0 ! -!ARAC/PAN8=0.0 +!KET/WC_AHMS=0.0 ! -!ARAC/PN10=0.0 +!KET/WR_O3=0.0 ! -!ARAC/RO2T=0.0 +!KET/WR_H2O2=0.0 ! -!ARAC/RO21=0.0 +!KET/WR_NO=0.0 ! -!ARAC/RO25=0.0 +!KET/WR_NO2=0.0 ! -!PAH/NO=0.0 +!KET/WR_NO3=0.0 ! -!PAH/NO2=0.0 +!KET/WR_N2O5=0.0 ! -!PAH/O3=0.0 +!KET/WR_HONO=0.0 ! -!PAH/HONO=0.0 +!KET/WR_HNO3=0.0 ! -!PAH/HNO3=0.0 +!KET/WR_HNO4=0.0 ! -!PAH/HNO4=0.0 +!KET/WR_NH3=0.0 ! -!PAH/N2O5=0.0 +!KET/WR_OH=0.0 ! -!PAH/NO3=0.0 +!KET/WR_HO2=0.0 ! -!PAH/NH3=0.0 +!KET/WR_CO2=0.0 ! -!PAH/HO2=0.0 +!KET/WR_SO2=0.0 ! -!PAH/CO=0.0 +!KET/WR_SULF=0.0 ! -!PAH/H2O2=0.0 +!KET/WR_HCHO=0.0 ! -!PAH/SO2=0.0 +!KET/WR_ORA1=0.0 ! -!PAH/H2SO4=0.0 +!KET/WR_ORA2=0.0 ! -!PAH/OH=-K092*<PAH> - PJAC(:,27,15)=-TPK%K092(:)*PCONC(:,27) +!KET/WR_MO2=0.0 ! -!PAH/ETHE=0.0 +!KET/WR_OP1=0.0 ! -!PAH/OLEL=0.0 +!KET/WR_ASO3=0.0 ! -!PAH/OLEH=0.0 +!KET/WR_ASO4=0.0 ! -!PAH/ALKL=0.0 +!KET/WR_ASO5=0.0 ! -!PAH/ALKM=0.0 +!KET/WR_AHSO5=0.0 ! -!PAH/ALKH=0.0 +!KET/WR_AHMS=0.0 ! -!PAH/AROH=0.0 +!CARBO/O3=+0.00000*K079*<ALKE>+0.39754*K080*<BIO>+1.07583*K081*<CARBO>-K081*<CA +!RBO> + PJAC(:,25,1)=+0.00000*TPK%K079(:)*PCONC(:,19)+0.39754*TPK%K080(:)*PCONC(:,20)+& +&1.07583*TPK%K081(:)*PCONC(:,25)-TPK%K081(:)*PCONC(:,25) ! -!PAH/AROL=0.0 +!CARBO/H2O2=0.0 ! -!PAH/AROO=0.0 +!CARBO/NO=+0.03407*K091*<ALKAP>+0.45463*K093*<BIOP>+2.06993*K094*<AROP>+0.08670 +!*K095*<CARBOP> + PJAC(:,25,3)=+0.03407*TPK%K091(:)*PCONC(:,33)+0.45463*TPK%K093(:)*PCONC(:,35)+& +&2.06993*TPK%K094(:)*PCONC(:,38)+0.08670*TPK%K095(:)*PCONC(:,39) ! -!PAH/ARAL=0.0 +!CARBO/NO2=0.0 ! -!PAH/ARAC=0.0 +!CARBO/NO3=+0.10530*K074*<CARBO>-K074*<CARBO>+0.00000*K076*<ALKE>+0.91741*K077* +!<BIO>+0.03531*K120*<ALKAP>+0.61160*K122*<BIOP>+2.81904*K123*<AROP>+0.03455*K12 +!4*<CARBOP> + PJAC(:,25,5)=+0.10530*TPK%K074(:)*PCONC(:,25)-TPK%K074(:)*PCONC(:,25)+0.00000*& +&TPK%K076(:)*PCONC(:,19)+0.91741*TPK%K077(:)*PCONC(:,20)+0.03531*TPK%K120(:)*PC& +&ONC(:,33)+0.61160*TPK%K122(:)*PCONC(:,35)+2.81904*TPK%K123(:)*PCONC(:,38)+0.03& +&455*TPK%K124(:)*PCONC(:,39) ! -!PAH/PAH=-K092*<OH> - PJAC(:,27,27)=-TPK%K092(:)*PCONC(:,15) +!CARBO/N2O5=0.0 ! -!PAH/HCHO=0.0 +!CARBO/HONO=0.0 ! -!PAH/ALD2=0.0 +!CARBO/HNO3=0.0 ! -!PAH/KETL=0.0 +!CARBO/HNO4=0.0 ! -!PAH/KETH=0.0 +!CARBO/NH3=0.0 ! -!PAH/MEOH=0.0 +!CARBO/SO2=0.0 ! -!PAH/ETOH=0.0 +!CARBO/SULF=0.0 ! -!PAH/ALCH=0.0 +!CARBO/CO=0.0 ! -!PAH/ISOP=0.0 +!CARBO/OH=+0.00835*K058*<ALKA>+0.16919*K065*<CARBO>-K065*<CARBO>+0.21863*K070*< +!PAN> + PJAC(:,25,14)=+0.00835*TPK%K058(:)*PCONC(:,18)+0.16919*TPK%K065(:)*PCONC(:,25)& +&-TPK%K065(:)*PCONC(:,25)+0.21863*TPK%K070(:)*PCONC(:,27) ! -!PAH/BIOL=0.0 +!CARBO/HO2=0.0 ! -!PAH/BIOH=0.0 +!CARBO/CH4=0.0 ! -!PAH/MTBE=0.0 +!CARBO/ETH=0.0 ! -!PAH/MVK=0.0 +!CARBO/ALKA=+0.00835*K058*<OH> + PJAC(:,25,18)=+0.00835*TPK%K058(:)*PCONC(:,14) ! -!PAH/MCR=0.0 +!CARBO/ALKE=+0.00000*K076*<NO3>+0.00000*K079*<O3> + PJAC(:,25,19)=+0.00000*TPK%K076(:)*PCONC(:,5)+0.00000*TPK%K079(:)*PCONC(:,1) ! -!PAH/MGLY=0.0 +!CARBO/BIO=+0.13255*K054*<O3P>+0.91741*K077*<NO3>+0.39754*K080*<O3> + PJAC(:,25,20)=+0.13255*TPK%K054(:)*TPK%O3P(:)+0.91741*TPK%K077(:)*PCONC(:,5)+0& +&.39754*TPK%K080(:)*PCONC(:,1) ! -!PAH/GLY=0.0 +!CARBO/ARO=0.0 ! -!PAH/ORA1=0.0 +!CARBO/HCHO=0.0 ! -!PAH/ORA2=0.0 +!CARBO/ALD=0.0 ! -!PAH/ACID=0.0 +!CARBO/KET=0.0 ! -!PAH/UR28=0.0 +!CARBO/CARBO=-K016-K055*<O3P>+0.16919*K065*<OH>-K065*<OH>+0.10530*K074*<NO3>-K0 +!74*<NO3>+1.07583*K081*<O3>-K081*<O3> + PJAC(:,25,25)=-TPK%K016(:)-TPK%K055(:)*TPK%O3P(:)+0.16919*TPK%K065(:)*PCONC(:,& +&14)-TPK%K065(:)*PCONC(:,14)+0.10530*TPK%K074(:)*PCONC(:,5)-TPK%K074(:)*PCONC(:& +&,5)+1.07583*TPK%K081(:)*PCONC(:,1)-TPK%K081(:)*PCONC(:,1) ! -!PAH/UR21=0.0 +!CARBO/ONIT=0.0 ! -!PAH/URG2=0.0 +!CARBO/PAN=+0.21863*K070*<OH> + PJAC(:,25,27)=+0.21863*TPK%K070(:)*PCONC(:,14) ! -!PAH/UR26=0.0 +!CARBO/OP1=0.0 ! -!PAH/RPG2=0.0 +!CARBO/OP2=0.0 ! -!PAH/RP18=0.0 +!CARBO/ORA1=0.0 ! -!PAH/RPG3=0.0 +!CARBO/ORA2=0.0 ! -!PAH/URG4=0.0 +!CARBO/MO2=+0.07976*K105*<ALKAP>+0.56064*K107*<BIOP>+1.99461*K108*<AROP>+0.1538 +!7*K109*<CARBOP> + PJAC(:,25,32)=+0.07976*TPK%K105(:)*PCONC(:,33)+0.56064*TPK%K107(:)*PCONC(:,35)& +&+1.99461*TPK%K108(:)*PCONC(:,38)+0.15387*TPK%K109(:)*PCONC(:,39) ! -!PAH/UR8=0.0 +!CARBO/ALKAP=+0.03407*K091*<NO>+0.07976*K105*<MO2>+0.06954*K111*<CARBOP>+0.0353 +!1*K120*<NO3> + PJAC(:,25,33)=+0.03407*TPK%K091(:)*PCONC(:,3)+0.07976*TPK%K105(:)*PCONC(:,32)+& +&0.06954*TPK%K111(:)*PCONC(:,39)+0.03531*TPK%K120(:)*PCONC(:,5) ! -!PAH/UR17=0.0 +!CARBO/ALKEP=0.0 ! -!PAH/UR7=0.0 +!CARBO/BIOP=+0.45463*K093*<NO>+0.56064*K107*<MO2>+0.78591*K113*<CARBOP>+0.61160 +!*K122*<NO3> + PJAC(:,25,35)=+0.45463*TPK%K093(:)*PCONC(:,3)+0.56064*TPK%K107(:)*PCONC(:,32)+& +&0.78591*TPK%K113(:)*PCONC(:,39)+0.61160*TPK%K122(:)*PCONC(:,5) ! -!PAH/RPR3=0.0 +!CARBO/PHO=0.0 ! -!PAH/URG6=0.0 +!CARBO/ADD=0.0 ! -!PAH/UR22=0.0 +!CARBO/AROP=+2.06993*K094*<NO>+1.99461*K108*<MO2>+1.99455*K114*<CARBOP>+2.81904 +!*K123*<NO3> + PJAC(:,25,38)=+2.06993*TPK%K094(:)*PCONC(:,3)+1.99461*TPK%K108(:)*PCONC(:,32)+& +&1.99455*TPK%K114(:)*PCONC(:,39)+2.81904*TPK%K123(:)*PCONC(:,5) ! -!PAH/URG7=0.0 +!CARBO/CARBOP=+0.08670*K095*<NO>+0.15387*K109*<MO2>+0.06954*K111*<ALKAP>+0.7859 +!1*K113*<BIOP>+1.99455*K114*<AROP>+0.10777*K115*<CARBOP>+0.10777*K115*<CARBOP>+ +!0.03455*K124*<NO3> + PJAC(:,25,39)=+0.08670*TPK%K095(:)*PCONC(:,3)+0.15387*TPK%K109(:)*PCONC(:,32)+& +&0.06954*TPK%K111(:)*PCONC(:,33)+0.78591*TPK%K113(:)*PCONC(:,35)+1.99455*TPK%K1& +&14(:)*PCONC(:,38)+0.10777*TPK%K115(:)*PCONC(:,39)+0.10777*TPK%K115(:)*PCONC(:,& +&39)+0.03455*TPK%K124(:)*PCONC(:,5) ! -!PAH/RPR4=0.0 +!CARBO/OLN=0.0 ! -!PAH/RPR7=0.0 +!CARBO/XO2=0.0 ! -!PAH/RPG7=0.0 +!CARBO/WC_O3=0.0 ! -!PAH/URG8=0.0 +!CARBO/WC_H2O2=0.0 ! -!PAH/UR19=0.0 +!CARBO/WC_NO=0.0 ! -!PAH/URG9=0.0 +!CARBO/WC_NO2=0.0 ! -!PAH/AP7=0.0 +!CARBO/WC_NO3=0.0 ! -!PAH/URG10=0.0 +!CARBO/WC_N2O5=0.0 ! -!PAH/RPR1=0.0 +!CARBO/WC_HONO=0.0 ! -!PAH/RPR5=0.0 +!CARBO/WC_HNO3=0.0 ! -!PAH/RPR8=0.0 +!CARBO/WC_HNO4=0.0 ! -!PAH/RP10=0.0 +!CARBO/WC_NH3=0.0 ! -!PAH/RP11=0.0 +!CARBO/WC_OH=0.0 ! -!PAH/RP16=0.0 +!CARBO/WC_HO2=0.0 ! -!PAH/RPRL=0.0 +!CARBO/WC_CO2=0.0 ! -!PAH/APAN=0.0 +!CARBO/WC_SO2=0.0 ! -!PAH/PAN1=0.0 +!CARBO/WC_SULF=0.0 ! -!PAH/PAN2=0.0 +!CARBO/WC_HCHO=0.0 ! -!PAH/PAN3=0.0 +!CARBO/WC_ORA1=0.0 ! -!PAH/PAN4=0.0 +!CARBO/WC_ORA2=0.0 ! -!PAH/PAN6=0.0 +!CARBO/WC_MO2=0.0 ! -!PAH/PAN7=0.0 +!CARBO/WC_OP1=0.0 ! -!PAH/PAN8=0.0 +!CARBO/WC_ASO3=0.0 ! -!PAH/PN10=0.0 +!CARBO/WC_ASO4=0.0 ! -!PAH/RO2T=0.0 +!CARBO/WC_ASO5=0.0 ! -!PAH/RO21=0.0 +!CARBO/WC_AHSO5=0.0 ! -!PAH/RO25=0.0 +!CARBO/WC_AHMS=0.0 ! -!HCHO/NO=+K110*<RO21>+K113*<RO22>+K116*<RO23>+K119*<RO24>+TPK%CF6*K150*<RO29>+K -!153*<RO210>+K156*<RO211>+K159*<RO212>+K162*<RO213>+TPK%CF10*K171*<RO215>+K183* -!<RO219>+K285*<RO249>+K291*<RO251>+K294*<RO252>+K297*<RO253> - PJAC(:,28,1)=+TPK%K110(:)*PCONC(:,86)+TPK%K113(:)*TPK%RO22(:)+TPK%K116(:)*TPK%& -&RO23(:)+TPK%K119(:)*TPK%RO24(:)+TPK%CF6*TPK%K150(:)*TPK%RO29(:)+TPK%K153(:)*TP& -&K%RO210(:)+TPK%K156(:)*TPK%RO211(:)+TPK%K159(:)*TPK%RO212(:)+TPK%K162(:)*TPK%R& -&O213(:)+TPK%CF10*TPK%K171(:)*TPK%RO215(:)+TPK%K183(:)*TPK%RO219(:)+TPK%K285(:)& -&*TPK%RO249(:)+TPK%K291(:)*TPK%RO251(:)+TPK%K294(:)*TPK%RO252(:)+TPK%K297(:)*TP& -&K%RO253(:) +!CARBO/WR_O3=0.0 ! -!HCHO/NO2=0.0 +!CARBO/WR_H2O2=0.0 ! -!HCHO/O3=+0.5*K051*<ETHE>+0.5*K056*<OLEL>+0.5*K066*<ISOP>+0.5*K076*<OLEH>+0.5*K -!281*<MVK>+0.5*K282*<MCR> - PJAC(:,28,3)=+0.5*TPK%K051(:)*PCONC(:,16)+0.5*TPK%K056(:)*PCONC(:,17)+0.5*TPK%& -&K066(:)*PCONC(:,35)+0.5*TPK%K076(:)*PCONC(:,18)+0.5*TPK%K281(:)*PCONC(:,39)+0.& -&5*TPK%K282(:)*PCONC(:,40) +!CARBO/WR_NO=0.0 ! -!HCHO/HONO=0.0 +!CARBO/WR_NO2=0.0 ! -!HCHO/HNO3=0.0 +!CARBO/WR_NO3=0.0 ! -!HCHO/HNO4=0.0 +!CARBO/WR_N2O5=0.0 ! -!HCHO/N2O5=0.0 +!CARBO/WR_HONO=0.0 ! -!HCHO/NO3=-K047*<HCHO> - PJAC(:,28,8)=-TPK%K047(:)*PCONC(:,28) +!CARBO/WR_HNO3=0.0 ! -!HCHO/NH3=0.0 +!CARBO/WR_HNO4=0.0 ! -!HCHO/HO2=+K112*<RO21>+K115*<RO22>+K118*<RO23>+K121*<RO24>+K152*<RO29>+K155*<RO -!210>+K158*<RO211>+K161*<RO212>+K164*<RO213>+TPK%CF14*K173*<RO215>+K185*<RO219> -!+K287*<RO249>+K292*<RO251>+K295*<RO252>+K298*<RO253> - PJAC(:,28,10)=+TPK%K112(:)*PCONC(:,86)+TPK%K115(:)*TPK%RO22(:)+TPK%K118(:)*TPK& -&%RO23(:)+TPK%K121(:)*TPK%RO24(:)+TPK%K152(:)*TPK%RO29(:)+TPK%K155(:)*TPK%RO210& -&(:)+TPK%K158(:)*TPK%RO211(:)+TPK%K161(:)*TPK%RO212(:)+TPK%K164(:)*TPK%RO213(:)& -&+TPK%CF14*TPK%K173(:)*TPK%RO215(:)+TPK%K185(:)*TPK%RO219(:)+TPK%K287(:)*TPK%RO& -&249(:)+TPK%K292(:)*TPK%RO251(:)+TPK%K295(:)*TPK%RO252(:)+TPK%K298(:)*TPK%RO253& -&(:) +!CARBO/WR_NH3=0.0 ! -!HCHO/CO=0.0 +!CARBO/WR_OH=0.0 ! -!HCHO/H2O2=0.0 +!CARBO/WR_HO2=0.0 ! -!HCHO/SO2=0.0 +!CARBO/WR_CO2=0.0 ! -!HCHO/H2SO4=0.0 +!CARBO/WR_SO2=0.0 ! -!HCHO/OH=-K046*<HCHO>+K048*<MEOH> - PJAC(:,28,15)=-TPK%K046(:)*PCONC(:,28)+TPK%K048(:)*PCONC(:,32) +!CARBO/WR_SULF=0.0 ! -!HCHO/ETHE=+0.5*K051*<O3> - PJAC(:,28,16)=+0.5*TPK%K051(:)*PCONC(:,3) +!CARBO/WR_HCHO=0.0 ! -!HCHO/OLEL=+0.5*K056*<O3> - PJAC(:,28,17)=+0.5*TPK%K056(:)*PCONC(:,3) +!CARBO/WR_ORA1=0.0 ! -!HCHO/OLEH=+0.5*K076*<O3> - PJAC(:,28,18)=+0.5*TPK%K076(:)*PCONC(:,3) +!CARBO/WR_ORA2=0.0 ! -!HCHO/ALKL=0.0 +!CARBO/WR_MO2=0.0 ! -!HCHO/ALKM=0.0 +!CARBO/WR_OP1=0.0 ! -!HCHO/ALKH=0.0 +!CARBO/WR_ASO3=0.0 ! -!HCHO/AROH=0.0 +!CARBO/WR_ASO4=0.0 ! -!HCHO/AROL=0.0 +!CARBO/WR_ASO5=0.0 ! -!HCHO/AROO=0.0 +!CARBO/WR_AHSO5=0.0 ! -!HCHO/ARAL=0.0 +!CARBO/WR_AHMS=0.0 ! -!HCHO/ARAC=0.0 +RETURN +END SUBROUTINE SUBJ4 ! -!HCHO/PAH=0.0 +SUBROUTINE SUBJ5 ! -!HCHO/HCHO=-K044-K045-K046*<OH>-K047*<NO3> - PJAC(:,28,28)=-TPK%K044(:)-TPK%K045(:)-TPK%K046(:)*PCONC(:,15)-TPK%K047(:)*PCO& -&NC(:,8) +!Indices 26 a 30 ! -!HCHO/ALD2=0.0 ! -!HCHO/KETL=0.0 +!ONIT/O3=0.0 ! -!HCHO/KETH=0.0 +!ONIT/H2O2=0.0 ! -!HCHO/MEOH=+K048*<OH> - PJAC(:,28,32)=+TPK%K048(:)*PCONC(:,15) +!ONIT/NO=+0.08459*K091*<ALKAP>+0.15300*K093*<BIOP>+0.04885*K094*<AROP>+0.18401* +!K096*<OLN> + PJAC(:,26,3)=+0.08459*TPK%K091(:)*PCONC(:,33)+0.15300*TPK%K093(:)*PCONC(:,35)+& +&0.04885*TPK%K094(:)*PCONC(:,38)+0.18401*TPK%K096(:)*PCONC(:,40) ! -!HCHO/ETOH=0.0 +!ONIT/NO2=+K083*<PHO> + PJAC(:,26,4)=+TPK%K083(:)*PCONC(:,36) ! -!HCHO/ALCH=0.0 +!ONIT/NO3=+0.60*K078*<PAN>+0.25928*K125*<OLN> + PJAC(:,26,5)=+0.60*TPK%K078(:)*PCONC(:,27)+0.25928*TPK%K125(:)*PCONC(:,40) ! -!HCHO/ISOP=+0.5*K066*<O3> - PJAC(:,28,35)=+0.5*TPK%K066(:)*PCONC(:,3) +!ONIT/N2O5=0.0 ! -!HCHO/BIOL=0.0 +!ONIT/HONO=0.0 ! -!HCHO/BIOH=0.0 +!ONIT/HNO3=0.0 ! -!HCHO/MTBE=0.0 +!ONIT/HNO4=0.0 ! -!HCHO/MVK=+0.5*K281*<O3> - PJAC(:,28,39)=+0.5*TPK%K281(:)*PCONC(:,3) +!ONIT/NH3=0.0 ! -!HCHO/MCR=+0.5*K282*<O3> - PJAC(:,28,40)=+0.5*TPK%K282(:)*PCONC(:,3) +!ONIT/SO2=0.0 ! -!HCHO/MGLY=0.0 +!ONIT/SULF=0.0 ! -!HCHO/GLY=0.0 +!ONIT/CO=0.0 ! -!HCHO/ORA1=0.0 +!ONIT/OH=-K071*<ONIT> + PJAC(:,26,14)=-TPK%K071(:)*PCONC(:,26) ! -!HCHO/ORA2=0.0 +!ONIT/HO2=+K103*<OLN> + PJAC(:,26,15)=+TPK%K103(:)*PCONC(:,40) ! -!HCHO/ACID=0.0 +!ONIT/CH4=0.0 ! -!HCHO/UR28=0.0 +!ONIT/ETH=0.0 ! -!HCHO/UR21=0.0 +!ONIT/ALKA=0.0 ! -!HCHO/URG2=0.0 +!ONIT/ALKE=0.0 ! -!HCHO/UR26=0.0 +!ONIT/BIO=0.0 ! -!HCHO/RPG2=0.0 +!ONIT/ARO=0.0 ! -!HCHO/RP18=0.0 +!ONIT/HCHO=0.0 ! -!HCHO/RPG3=0.0 +!ONIT/ALD=0.0 ! -!HCHO/URG4=0.0 +!ONIT/KET=0.0 ! -!HCHO/UR8=0.0 +!ONIT/CARBO=0.0 ! -!HCHO/UR17=0.0 +!ONIT/ONIT=-K017-K071*<OH> + PJAC(:,26,26)=-TPK%K017(:)-TPK%K071(:)*PCONC(:,14) ! -!HCHO/UR7=0.0 +!ONIT/PAN=+0.60*K078*<NO3> + PJAC(:,26,27)=+0.60*TPK%K078(:)*PCONC(:,5) ! -!HCHO/RPR3=0.0 +!ONIT/OP1=0.0 ! -!HCHO/URG6=0.0 +!ONIT/OP2=0.0 ! -!HCHO/UR22=0.0 +!ONIT/ORA1=0.0 ! -!HCHO/URG7=0.0 +!ONIT/ORA2=0.0 ! -!HCHO/RPR4=0.0 +!ONIT/MO2=+0.67560*K110*<OLN> + PJAC(:,26,32)=+0.67560*TPK%K110(:)*PCONC(:,40) ! -!HCHO/RPR7=0.0 +!ONIT/ALKAP=+0.08459*K091*<NO> + PJAC(:,26,33)=+0.08459*TPK%K091(:)*PCONC(:,3) ! -!HCHO/RPG7=0.0 +!ONIT/ALKEP=0.0 ! -!HCHO/URG8=0.0 +!ONIT/BIOP=+0.15300*K093*<NO> + PJAC(:,26,35)=+0.15300*TPK%K093(:)*PCONC(:,3) ! -!HCHO/UR19=0.0 +!ONIT/PHO=+K083*<NO2> + PJAC(:,26,36)=+TPK%K083(:)*PCONC(:,4) ! -!HCHO/URG9=0.0 +!ONIT/ADD=0.0 ! -!HCHO/AP7=0.0 +!ONIT/AROP=+0.04885*K094*<NO> + PJAC(:,26,38)=+0.04885*TPK%K094(:)*PCONC(:,3) ! -!HCHO/URG10=0.0 +!ONIT/CARBOP=+0.66562*K116*<OLN> + PJAC(:,26,39)=+0.66562*TPK%K116(:)*PCONC(:,40) ! -!HCHO/RPR1=0.0 +!ONIT/OLN=+0.18401*K096*<NO>+K103*<HO2>+0.67560*K110*<MO2>+0.66562*K116*<CARBOP +!>+2.00*K117*<OLN>+2.00*K117*<OLN>+0.00000*K118*<OLN>+0.00000*K118*<OLN>+0.2592 +!8*K125*<NO3> + PJAC(:,26,40)=+0.18401*TPK%K096(:)*PCONC(:,3)+TPK%K103(:)*PCONC(:,15)+0.67560*& +&TPK%K110(:)*PCONC(:,32)+0.66562*TPK%K116(:)*PCONC(:,39)+2.00*TPK%K117(:)*PCONC& +&(:,40)+2.00*TPK%K117(:)*PCONC(:,40)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TP& +&K%K118(:)*PCONC(:,40)+0.25928*TPK%K125(:)*PCONC(:,5) ! -!HCHO/RPR5=0.0 +!ONIT/XO2=0.0 ! -!HCHO/RPR8=0.0 +!ONIT/WC_O3=0.0 ! -!HCHO/RP10=0.0 +!ONIT/WC_H2O2=0.0 ! -!HCHO/RP11=0.0 +!ONIT/WC_NO=0.0 ! -!HCHO/RP16=0.0 +!ONIT/WC_NO2=0.0 ! -!HCHO/RPRL=0.0 +!ONIT/WC_NO3=0.0 ! -!HCHO/APAN=0.0 +!ONIT/WC_N2O5=0.0 ! -!HCHO/PAN1=0.0 +!ONIT/WC_HONO=0.0 ! -!HCHO/PAN2=0.0 +!ONIT/WC_HNO3=0.0 ! -!HCHO/PAN3=0.0 +!ONIT/WC_HNO4=0.0 ! -!HCHO/PAN4=0.0 +!ONIT/WC_NH3=0.0 ! -!HCHO/PAN6=0.0 +!ONIT/WC_OH=0.0 ! -!HCHO/PAN7=0.0 +!ONIT/WC_HO2=0.0 ! -!HCHO/PAN8=0.0 +!ONIT/WC_CO2=0.0 ! -!HCHO/PN10=0.0 +!ONIT/WC_SO2=0.0 ! -!HCHO/RO2T=+K111*<RO21>+K114*<RO22>+K117*<RO23>+K120*<RO24>+K151*<RO29>+K154*<R -!O210>+K157*<RO211>+K160*<RO212>+K163*<RO213>+TPK%CF14*K172*<RO215>+K184*<RO219 -!>+K286*<RO249>+K293*<RO251>+K296*<RO252>+K299*<RO253> - PJAC(:,28,85)=+TPK%K111(:)*PCONC(:,86)+TPK%K114(:)*TPK%RO22(:)+TPK%K117(:)*TPK& -&%RO23(:)+TPK%K120(:)*TPK%RO24(:)+TPK%K151(:)*TPK%RO29(:)+TPK%K154(:)*TPK%RO210& -&(:)+TPK%K157(:)*TPK%RO211(:)+TPK%K160(:)*TPK%RO212(:)+TPK%K163(:)*TPK%RO213(:)& -&+TPK%CF14*TPK%K172(:)*TPK%RO215(:)+TPK%K184(:)*TPK%RO219(:)+TPK%K286(:)*TPK%RO& -&249(:)+TPK%K293(:)*TPK%RO251(:)+TPK%K296(:)*TPK%RO252(:)+TPK%K299(:)*TPK%RO253& -&(:) +!ONIT/WC_SULF=0.0 ! -!HCHO/RO21=+K110*<NO>+K111*<RO2T>+K112*<HO2> - PJAC(:,28,86)=+TPK%K110(:)*PCONC(:,1)+TPK%K111(:)*PCONC(:,85)+TPK%K112(:)*PCON& -&C(:,10) +!ONIT/WC_HCHO=0.0 ! -!HCHO/RO25=0.0 +!ONIT/WC_ORA1=0.0 ! -!ALD2/NO=+K113*<RO22>+K116*<RO23>+TPK%CF4*K122*<RO25>+K144*<RO27>+TPK%CF9*K171* -!<RO215>+K174*<RO216> - PJAC(:,29,1)=+TPK%K113(:)*TPK%RO22(:)+TPK%K116(:)*TPK%RO23(:)+TPK%CF4*TPK%K122& -&(:)*PCONC(:,87)+TPK%K144(:)*TPK%RO27(:)+TPK%CF9*TPK%K171(:)*TPK%RO215(:)+TPK%K& -&174(:)*TPK%RO216(:) +!ONIT/WC_ORA2=0.0 ! -!ALD2/NO2=0.0 +!ONIT/WC_MO2=0.0 ! -!ALD2/O3=+0.5*K056*<OLEL>+0.1*K281*<MVK> - PJAC(:,29,3)=+0.5*TPK%K056(:)*PCONC(:,17)+0.1*TPK%K281(:)*PCONC(:,39) +!ONIT/WC_OP1=0.0 ! -!ALD2/HONO=0.0 +!ONIT/WC_ASO3=0.0 ! -!ALD2/HNO3=0.0 +!ONIT/WC_ASO4=0.0 ! -!ALD2/HNO4=0.0 +!ONIT/WC_ASO5=0.0 ! -!ALD2/N2O5=0.0 +!ONIT/WC_AHSO5=0.0 ! -!ALD2/NO3=-K061*<ALD2> - PJAC(:,29,8)=-TPK%K061(:)*PCONC(:,29) +!ONIT/WC_AHMS=0.0 ! -!ALD2/NH3=0.0 +!ONIT/WR_O3=0.0 ! -!ALD2/HO2=+K115*<RO22>+K118*<RO23>+K124*<RO25>+K146*<RO27>+TPK%CF13*K173*<RO215 -!>+K176*<RO216> - PJAC(:,29,10)=+TPK%K115(:)*TPK%RO22(:)+TPK%K118(:)*TPK%RO23(:)+TPK%K124(:)*PCO& -&NC(:,87)+TPK%K146(:)*TPK%RO27(:)+TPK%CF13*TPK%K173(:)*TPK%RO215(:)+TPK%K176(:)& -&*TPK%RO216(:) +!ONIT/WR_H2O2=0.0 ! -!ALD2/CO=0.0 +!ONIT/WR_NO=0.0 ! -!ALD2/H2O2=0.0 +!ONIT/WR_NO2=0.0 ! -!ALD2/SO2=0.0 +!ONIT/WR_NO3=0.0 ! -!ALD2/H2SO4=0.0 +!ONIT/WR_N2O5=0.0 ! -!ALD2/OH=+TPK%CF1*K053*<ETOH>-K060*<ALD2> - PJAC(:,29,15)=+TPK%CF1*TPK%K053(:)*PCONC(:,33)-TPK%K060(:)*PCONC(:,29) +!ONIT/WR_HONO=0.0 ! -!ALD2/ETHE=0.0 +!ONIT/WR_HNO3=0.0 ! -!ALD2/OLEL=+0.5*K056*<O3>+0.4*K057*<O> - PJAC(:,29,17)=+0.5*TPK%K056(:)*PCONC(:,3)+0.4*TPK%K057(:)*TPK%O(:) +!ONIT/WR_HNO4=0.0 ! -!ALD2/OLEH=0.0 +!ONIT/WR_NH3=0.0 ! -!ALD2/ALKL=0.0 +!ONIT/WR_OH=0.0 ! -!ALD2/ALKM=0.0 +!ONIT/WR_HO2=0.0 ! -!ALD2/ALKH=0.0 +!ONIT/WR_CO2=0.0 ! -!ALD2/AROH=0.0 +!ONIT/WR_SO2=0.0 ! -!ALD2/AROL=0.0 +!ONIT/WR_SULF=0.0 ! -!ALD2/AROO=0.0 +!ONIT/WR_HCHO=0.0 ! -!ALD2/ARAL=0.0 +!ONIT/WR_ORA1=0.0 ! -!ALD2/ARAC=0.0 +!ONIT/WR_ORA2=0.0 ! -!ALD2/PAH=0.0 +!ONIT/WR_MO2=0.0 ! -!ALD2/HCHO=0.0 +!ONIT/WR_OP1=0.0 ! -!ALD2/ALD2=-K059-K060*<OH>-K061*<NO3> - PJAC(:,29,29)=-TPK%K059(:)-TPK%K060(:)*PCONC(:,15)-TPK%K061(:)*PCONC(:,8) +!ONIT/WR_ASO3=0.0 ! -!ALD2/KETL=0.0 +!ONIT/WR_ASO4=0.0 ! -!ALD2/KETH=0.0 +!ONIT/WR_ASO5=0.0 ! -!ALD2/MEOH=0.0 +!ONIT/WR_AHSO5=0.0 ! -!ALD2/ETOH=+TPK%CF1*K053*<OH> - PJAC(:,29,33)=+TPK%CF1*TPK%K053(:)*PCONC(:,15) +!ONIT/WR_AHMS=0.0 ! -!ALD2/ALCH=0.0 +!PAN/O3=+0.30000*K082*<PAN>-K082*<PAN> + PJAC(:,27,1)=+0.30000*TPK%K082(:)*PCONC(:,27)-TPK%K082(:)*PCONC(:,27) ! -!ALD2/ISOP=+0.075*K067*<O> - PJAC(:,29,35)=+0.075*TPK%K067(:)*TPK%O(:) +!PAN/H2O2=0.0 ! -!ALD2/BIOL=0.0 +!PAN/NO=0.0 ! -!ALD2/BIOH=0.0 +!PAN/NO2=+1.00000*K088*<CARBOP> + PJAC(:,27,4)=+1.00000*TPK%K088(:)*PCONC(:,39) ! -!ALD2/MTBE=0.0 +!PAN/NO3=+0.40000*K078*<PAN>-K078*<PAN> + PJAC(:,27,5)=+0.40000*TPK%K078(:)*PCONC(:,27)-TPK%K078(:)*PCONC(:,27) ! -!ALD2/MVK=+0.1*K281*<O3> - PJAC(:,29,39)=+0.1*TPK%K281(:)*PCONC(:,3) +!PAN/N2O5=0.0 ! -!ALD2/MCR=+0.85*K284*<O> - PJAC(:,29,40)=+0.85*TPK%K284(:)*TPK%O(:) +!PAN/HONO=0.0 ! -!ALD2/MGLY=0.0 +!PAN/HNO3=0.0 ! -!ALD2/GLY=0.0 +!PAN/HNO4=0.0 ! -!ALD2/ORA1=0.0 +!PAN/NH3=0.0 ! -!ALD2/ORA2=0.0 +!PAN/SO2=0.0 ! -!ALD2/ACID=0.0 +!PAN/SULF=0.0 ! -!ALD2/UR28=0.0 +!PAN/CO=0.0 ! -!ALD2/UR21=0.0 +!PAN/OH=+0.28107*K070*<PAN>-K070*<PAN> + PJAC(:,27,14)=+0.28107*TPK%K070(:)*PCONC(:,27)-TPK%K070(:)*PCONC(:,27) ! -!ALD2/URG2=0.0 +!PAN/HO2=0.0 ! -!ALD2/UR26=0.0 +!PAN/CH4=0.0 ! -!ALD2/RPG2=0.0 +!PAN/ETH=0.0 ! -!ALD2/RP18=0.0 +!PAN/ALKA=0.0 ! -!ALD2/RPG3=0.0 +!PAN/ALKE=0.0 ! -!ALD2/URG4=0.0 +!PAN/BIO=0.0 ! -!ALD2/UR8=0.0 +!PAN/ARO=0.0 ! -!ALD2/UR17=0.0 +!PAN/HCHO=0.0 ! -!ALD2/UR7=0.0 +!PAN/ALD=0.0 ! -!ALD2/RPR3=0.0 +!PAN/KET=0.0 ! -!ALD2/URG6=0.0 +!PAN/CARBO=0.0 ! -!ALD2/UR22=0.0 +!PAN/ONIT=0.0 ! -!ALD2/URG7=0.0 +!PAN/PAN=+0.28107*K070*<OH>-K070*<OH>+0.40000*K078*<NO3>-K078*<NO3>+0.30000*K08 +!2*<O3>-K082*<O3>-K089 + PJAC(:,27,27)=+0.28107*TPK%K070(:)*PCONC(:,14)-TPK%K070(:)*PCONC(:,14)+0.40000& +&*TPK%K078(:)*PCONC(:,5)-TPK%K078(:)*PCONC(:,5)+0.30000*TPK%K082(:)*PCONC(:,1)-& +&TPK%K082(:)*PCONC(:,1)-TPK%K089(:) ! -!ALD2/RPR4=0.0 +!PAN/OP1=0.0 ! -!ALD2/RPR7=0.0 +!PAN/OP2=0.0 ! -!ALD2/RPG7=0.0 +!PAN/ORA1=0.0 ! -!ALD2/URG8=0.0 +!PAN/ORA2=0.0 ! -!ALD2/UR19=0.0 +!PAN/MO2=0.0 ! -!ALD2/URG9=0.0 +!PAN/ALKAP=0.0 ! -!ALD2/AP7=0.0 +!PAN/ALKEP=0.0 ! -!ALD2/URG10=0.0 +!PAN/BIOP=0.0 ! -!ALD2/RPR1=0.0 +!PAN/PHO=0.0 ! -!ALD2/RPR5=0.0 +!PAN/ADD=0.0 ! -!ALD2/RPR8=0.0 +!PAN/AROP=0.0 ! -!ALD2/RP10=0.0 +!PAN/CARBOP=+1.00000*K088*<NO2> + PJAC(:,27,39)=+1.00000*TPK%K088(:)*PCONC(:,4) ! -!ALD2/RP11=0.0 +!PAN/OLN=0.0 ! -!ALD2/RP16=0.0 +!PAN/XO2=0.0 ! -!ALD2/RPRL=0.0 +!PAN/WC_O3=0.0 ! -!ALD2/APAN=0.0 +!PAN/WC_H2O2=0.0 ! -!ALD2/PAN1=0.0 +!PAN/WC_NO=0.0 ! -!ALD2/PAN2=0.0 +!PAN/WC_NO2=0.0 ! -!ALD2/PAN3=0.0 +!PAN/WC_NO3=0.0 ! -!ALD2/PAN4=0.0 +!PAN/WC_N2O5=0.0 ! -!ALD2/PAN6=0.0 +!PAN/WC_HONO=0.0 ! -!ALD2/PAN7=0.0 +!PAN/WC_HNO3=0.0 ! -!ALD2/PAN8=0.0 +!PAN/WC_HNO4=0.0 ! -!ALD2/PN10=0.0 +!PAN/WC_NH3=0.0 ! -!ALD2/RO2T=+K114*<RO22>+K117*<RO23>+K123*<RO25>+K145*<RO27>+TPK%CF13*K172*<RO21 -!5>+K175*<RO216> - PJAC(:,29,85)=+TPK%K114(:)*TPK%RO22(:)+TPK%K117(:)*TPK%RO23(:)+TPK%K123(:)*PCO& -&NC(:,87)+TPK%K145(:)*TPK%RO27(:)+TPK%CF13*TPK%K172(:)*TPK%RO215(:)+TPK%K175(:)& -&*TPK%RO216(:) +!PAN/WC_OH=0.0 ! -!ALD2/RO21=0.0 +!PAN/WC_HO2=0.0 ! -!ALD2/RO25=+TPK%CF4*K122*<NO>+K123*<RO2T>+K124*<HO2> - PJAC(:,29,87)=+TPK%CF4*TPK%K122(:)*PCONC(:,1)+TPK%K123(:)*PCONC(:,85)+TPK%K124& -&(:)*PCONC(:,10) +!PAN/WC_CO2=0.0 ! -!KETL/NO=+TPK%CF11*K171*<RO215> - PJAC(:,30,1)=+TPK%CF11*TPK%K171(:)*TPK%RO215(:) +!PAN/WC_SO2=0.0 ! -!KETL/NO2=0.0 +!PAN/WC_SULF=0.0 ! -!KETL/O3=0.0 +!PAN/WC_HCHO=0.0 ! -!KETL/HONO=0.0 +!PAN/WC_ORA1=0.0 ! -!KETL/HNO3=0.0 +!PAN/WC_ORA2=0.0 ! -!KETL/HNO4=0.0 +!PAN/WC_MO2=0.0 ! -!KETL/N2O5=0.0 +!PAN/WC_OP1=0.0 ! -!KETL/NO3=0.0 +!PAN/WC_ASO3=0.0 ! -!KETL/NH3=0.0 +!PAN/WC_ASO4=0.0 ! -!KETL/HO2=+TPK%CF15*K173*<RO215> - PJAC(:,30,10)=+TPK%CF15*TPK%K173(:)*TPK%RO215(:) +!PAN/WC_ASO5=0.0 ! -!KETL/CO=0.0 +!PAN/WC_AHSO5=0.0 ! -!KETL/H2O2=0.0 +!PAN/WC_AHMS=0.0 ! -!KETL/SO2=0.0 +!PAN/WR_O3=0.0 ! -!KETL/H2SO4=0.0 +!PAN/WR_H2O2=0.0 ! -!KETL/OH=-K062*<KETL> - PJAC(:,30,15)=-TPK%K062(:)*PCONC(:,30) +!PAN/WR_NO=0.0 ! -!KETL/ETHE=0.0 +!PAN/WR_NO2=0.0 ! -!KETL/OLEL=0.0 +!PAN/WR_NO3=0.0 ! -!KETL/OLEH=0.0 +!PAN/WR_N2O5=0.0 ! -!KETL/ALKL=0.0 +!PAN/WR_HONO=0.0 ! -!KETL/ALKM=0.0 +!PAN/WR_HNO3=0.0 ! -!KETL/ALKH=0.0 +!PAN/WR_HNO4=0.0 ! -!KETL/AROH=0.0 +!PAN/WR_NH3=0.0 ! -!KETL/AROL=0.0 +!PAN/WR_OH=0.0 ! -!KETL/AROO=0.0 +!PAN/WR_HO2=0.0 ! -!KETL/ARAL=0.0 +!PAN/WR_CO2=0.0 ! -!KETL/ARAC=0.0 +!PAN/WR_SO2=0.0 ! -!KETL/PAH=0.0 +!PAN/WR_SULF=0.0 ! -!KETL/HCHO=0.0 +!PAN/WR_HCHO=0.0 ! -!KETL/ALD2=0.0 +!PAN/WR_ORA1=0.0 ! -!KETL/KETL=-K062*<OH>-K063 - PJAC(:,30,30)=-TPK%K062(:)*PCONC(:,15)-TPK%K063(:) +!PAN/WR_ORA2=0.0 ! -!KETL/KETH=0.0 +!PAN/WR_MO2=0.0 ! -!KETL/MEOH=0.0 +!PAN/WR_OP1=0.0 ! -!KETL/ETOH=0.0 +!PAN/WR_ASO3=0.0 ! -!KETL/ALCH=0.0 +!PAN/WR_ASO4=0.0 ! -!KETL/ISOP=0.0 +!PAN/WR_ASO5=0.0 ! -!KETL/BIOL=0.0 +!PAN/WR_AHSO5=0.0 ! -!KETL/BIOH=0.0 +!PAN/WR_AHMS=0.0 ! -!KETL/MTBE=0.0 +!OP1/O3=0.0 ! -!KETL/MVK=+0.85*K283*<O> - PJAC(:,30,39)=+0.85*TPK%K283(:)*TPK%O(:) +!OP1/H2O2=0.0 ! -!KETL/MCR=0.0 +!OP1/NO=0.0 ! -!KETL/MGLY=0.0 +!OP1/NO2=0.0 ! -!KETL/GLY=0.0 +!OP1/NO3=0.0 ! -!KETL/ORA1=0.0 +!OP1/N2O5=0.0 ! -!KETL/ORA2=0.0 +!OP1/HONO=0.0 ! -!KETL/ACID=0.0 +!OP1/HNO3=0.0 ! -!KETL/UR28=0.0 +!OP1/HNO4=0.0 ! -!KETL/UR21=0.0 +!OP1/NH3=0.0 ! -!KETL/URG2=0.0 +!OP1/SO2=0.0 ! -!KETL/UR26=0.0 +!OP1/SULF=0.0 ! -!KETL/RPG2=0.0 +!OP1/CO=0.0 ! -!KETL/RP18=0.0 +!OP1/OH=-K068*<OP1> + PJAC(:,28,14)=-TPK%K068(:)*PCONC(:,28) ! -!KETL/RPG3=0.0 +!OP1/HO2=+K097*<MO2> + PJAC(:,28,15)=+TPK%K097(:)*PCONC(:,32) ! -!KETL/URG4=0.0 +!OP1/CH4=0.0 ! -!KETL/UR8=0.0 +!OP1/ETH=0.0 ! -!KETL/UR17=0.0 +!OP1/ALKA=0.0 ! -!KETL/UR7=0.0 +!OP1/ALKE=0.0 ! -!KETL/RPR3=0.0 +!OP1/BIO=0.0 ! -!KETL/URG6=0.0 +!OP1/ARO=0.0 ! -!KETL/UR22=0.0 +!OP1/HCHO=0.0 ! -!KETL/URG7=0.0 +!OP1/ALD=0.0 ! -!KETL/RPR4=0.0 +!OP1/KET=0.0 ! -!KETL/RPR7=0.0 +!OP1/CARBO=0.0 ! -!KETL/RPG7=0.0 +!OP1/ONIT=0.0 ! -!KETL/URG8=0.0 +!OP1/PAN=0.0 ! -!KETL/UR19=0.0 +!OP1/OP1=-K013-K068*<OH>-KTC20-KTR20 + PJAC(:,28,28)=-TPK%K013(:)-TPK%K068(:)*PCONC(:,14)-TPK%KTC20(:)-TPK%KTR20(:) ! -!KETL/URG9=0.0 +!OP1/OP2=0.0 ! -!KETL/AP7=0.0 +!OP1/ORA1=0.0 ! -!KETL/URG10=0.0 +!OP1/ORA2=0.0 ! -!KETL/RPR1=0.0 +!OP1/MO2=+K097*<HO2> + PJAC(:,28,32)=+TPK%K097(:)*PCONC(:,15) ! -!KETL/RPR5=0.0 +!OP1/ALKAP=0.0 ! -!KETL/RPR8=0.0 +!OP1/ALKEP=0.0 ! -!KETL/RP10=0.0 +!OP1/BIOP=0.0 ! -!KETL/RP11=0.0 +!OP1/PHO=0.0 ! -!KETL/RP16=0.0 +!OP1/ADD=0.0 ! -!KETL/RPRL=0.0 +!OP1/AROP=0.0 ! -!KETL/APAN=0.0 +!OP1/CARBOP=0.0 ! -!KETL/PAN1=0.0 +!OP1/OLN=0.0 ! -!KETL/PAN2=0.0 +!OP1/XO2=0.0 ! -!KETL/PAN3=0.0 +!OP1/WC_O3=0.0 ! -!KETL/PAN4=0.0 +!OP1/WC_H2O2=0.0 ! -!KETL/PAN6=0.0 +!OP1/WC_NO=0.0 ! -!KETL/PAN7=0.0 +!OP1/WC_NO2=0.0 ! -!KETL/PAN8=0.0 +!OP1/WC_NO3=0.0 ! -!KETL/PN10=0.0 +!OP1/WC_N2O5=0.0 ! -!KETL/RO2T=+TPK%CF15*K172*<RO215> - PJAC(:,30,85)=+TPK%CF15*TPK%K172(:)*TPK%RO215(:) +!OP1/WC_HONO=0.0 ! -!KETL/RO21=0.0 +!OP1/WC_HNO3=0.0 ! -!KETL/RO25=0.0 +!OP1/WC_HNO4=0.0 ! -RETURN -END SUBROUTINE SUBJ5 +!OP1/WC_NH3=0.0 ! -SUBROUTINE SUBJ6 +!OP1/WC_OH=0.0 ! -!Indices 31 a 35 +!OP1/WC_HO2=0.0 ! +!OP1/WC_CO2=0.0 ! -!KETH/NO=0.0 +!OP1/WC_SO2=0.0 ! -!KETH/NO2=0.0 +!OP1/WC_SULF=0.0 ! -!KETH/O3=0.0 +!OP1/WC_HCHO=0.0 ! -!KETH/HONO=0.0 +!OP1/WC_ORA1=0.0 ! -!KETH/HNO3=0.0 +!OP1/WC_ORA2=0.0 ! -!KETH/HNO4=0.0 +!OP1/WC_MO2=0.0 ! -!KETH/N2O5=0.0 +!OP1/WC_OP1=+KTC40 + PJAC(:,28,61)=+TPK%KTC40(:) ! -!KETH/NO3=0.0 +!OP1/WC_ASO3=0.0 ! -!KETH/NH3=0.0 +!OP1/WC_ASO4=0.0 ! -!KETH/HO2=0.0 +!OP1/WC_ASO5=0.0 ! -!KETH/CO=0.0 +!OP1/WC_AHSO5=0.0 ! -!KETH/H2O2=0.0 +!OP1/WC_AHMS=0.0 ! -!KETH/SO2=0.0 +!OP1/WR_O3=0.0 ! -!KETH/H2SO4=0.0 +!OP1/WR_H2O2=0.0 ! -!KETH/OH=-K070*<KETH> - PJAC(:,31,15)=-TPK%K070(:)*PCONC(:,31) +!OP1/WR_NO=0.0 ! -!KETH/ETHE=0.0 +!OP1/WR_NO2=0.0 ! -!KETH/OLEL=0.0 +!OP1/WR_NO3=0.0 ! -!KETH/OLEH=0.0 +!OP1/WR_N2O5=0.0 ! -!KETH/ALKL=0.0 +!OP1/WR_HONO=0.0 ! -!KETH/ALKM=0.0 +!OP1/WR_HNO3=0.0 ! -!KETH/ALKH=0.0 +!OP1/WR_HNO4=0.0 ! -!KETH/AROH=0.0 +!OP1/WR_NH3=0.0 ! -!KETH/AROL=0.0 +!OP1/WR_OH=0.0 ! -!KETH/AROO=0.0 +!OP1/WR_HO2=0.0 ! -!KETH/ARAL=0.0 +!OP1/WR_CO2=0.0 ! -!KETH/ARAC=0.0 +!OP1/WR_SO2=0.0 ! -!KETH/PAH=0.0 +!OP1/WR_SULF=0.0 ! -!KETH/HCHO=0.0 +!OP1/WR_HCHO=0.0 ! -!KETH/ALD2=0.0 +!OP1/WR_ORA1=0.0 ! -!KETH/KETL=0.0 +!OP1/WR_ORA2=0.0 ! -!KETH/KETH=-K070*<OH>-K071 - PJAC(:,31,31)=-TPK%K070(:)*PCONC(:,15)-TPK%K071(:) +!OP1/WR_MO2=0.0 ! -!KETH/MEOH=0.0 +!OP1/WR_OP1=+KTR40 + PJAC(:,28,86)=+TPK%KTR40(:) ! -!KETH/ETOH=0.0 +!OP1/WR_ASO3=0.0 ! -!KETH/ALCH=0.0 +!OP1/WR_ASO4=0.0 ! -!KETH/ISOP=0.0 +!OP1/WR_ASO5=0.0 ! -!KETH/BIOL=0.0 +!OP1/WR_AHSO5=0.0 ! -!KETH/BIOH=0.0 +!OP1/WR_AHMS=0.0 ! -!KETH/MTBE=0.0 +!OP2/O3=+0.10149*K081*<CARBO> + PJAC(:,29,1)=+0.10149*TPK%K081(:)*PCONC(:,25) ! -!KETH/MVK=0.0 +!OP2/H2O2=0.0 ! -!KETH/MCR=0.0 +!OP2/NO=0.0 ! -!KETH/MGLY=0.0 +!OP2/NO2=0.0 ! -!KETH/GLY=0.0 +!OP2/NO3=0.0 ! -!KETH/ORA1=0.0 +!OP2/N2O5=0.0 ! -!KETH/ORA2=0.0 +!OP2/HONO=0.0 ! -!KETH/ACID=0.0 +!OP2/HNO3=0.0 ! -!KETH/UR28=0.0 +!OP2/HNO4=0.0 ! -!KETH/UR21=0.0 +!OP2/NH3=0.0 ! -!KETH/URG2=0.0 +!OP2/SO2=0.0 ! -!KETH/UR26=0.0 +!OP2/SULF=0.0 ! -!KETH/RPG2=0.0 +!OP2/CO=0.0 ! -!KETH/RP18=0.0 +!OP2/OH=-K069*<OP2> + PJAC(:,29,14)=-TPK%K069(:)*PCONC(:,29) ! -!KETH/RPG3=0.0 +!OP2/HO2=+1.00524*K098*<ALKAP>+1.00524*K099*<ALKEP>+1.00524*K0100*<BIOP>+1.0052 +!4*K0101*<AROP>+0.80904*K0102*<CARBOP>+1.00524*K126*<XO2> + PJAC(:,29,15)=+1.00524*TPK%K098(:)*PCONC(:,33)+1.00524*TPK%K099(:)*PCONC(:,34)& +&+1.00524*TPK%K0100(:)*PCONC(:,35)+1.00524*TPK%K0101(:)*PCONC(:,38)+0.80904*TPK& +&%K0102(:)*PCONC(:,39)+1.00524*TPK%K126(:)*PCONC(:,41) ! -!KETH/URG4=0.0 +!OP2/CH4=0.0 ! -!KETH/UR8=0.0 +!OP2/ETH=0.0 ! -!KETH/UR17=0.0 +!OP2/ALKA=0.0 ! -!KETH/UR7=0.0 +!OP2/ALKE=0.0 ! -!KETH/RPR3=0.0 +!OP2/BIO=0.0 ! -!KETH/URG6=0.0 +!OP2/ARO=0.0 ! -!KETH/UR22=0.0 +!OP2/HCHO=0.0 ! -!KETH/URG7=0.0 +!OP2/ALD=0.0 ! -!KETH/RPR4=0.0 +!OP2/KET=0.0 ! -!KETH/RPR7=0.0 +!OP2/CARBO=+0.10149*K081*<O3> + PJAC(:,29,25)=+0.10149*TPK%K081(:)*PCONC(:,1) ! -!KETH/RPG7=0.0 +!OP2/ONIT=0.0 ! -!KETH/URG8=0.0 +!OP2/PAN=0.0 ! -!KETH/UR19=0.0 +!OP2/OP1=0.0 ! -!KETH/URG9=0.0 +!OP2/OP2=-K014-K069*<OH> + PJAC(:,29,29)=-TPK%K014(:)-TPK%K069(:)*PCONC(:,14) ! -!KETH/AP7=0.0 +!OP2/ORA1=0.0 ! -!KETH/URG10=0.0 +!OP2/ORA2=0.0 ! -!KETH/RPR1=0.0 +!OP2/MO2=0.0 ! -!KETH/RPR5=0.0 +!OP2/ALKAP=+1.00524*K098*<HO2> + PJAC(:,29,33)=+1.00524*TPK%K098(:)*PCONC(:,15) ! -!KETH/RPR8=0.0 +!OP2/ALKEP=+1.00524*K099*<HO2> + PJAC(:,29,34)=+1.00524*TPK%K099(:)*PCONC(:,15) ! -!KETH/RP10=0.0 +!OP2/BIOP=+1.00524*K0100*<HO2> + PJAC(:,29,35)=+1.00524*TPK%K0100(:)*PCONC(:,15) ! -!KETH/RP11=0.0 +!OP2/PHO=0.0 ! -!KETH/RP16=0.0 +!OP2/ADD=0.0 ! -!KETH/RPRL=0.0 +!OP2/AROP=+1.00524*K0101*<HO2> + PJAC(:,29,38)=+1.00524*TPK%K0101(:)*PCONC(:,15) ! -!KETH/APAN=0.0 +!OP2/CARBOP=+0.80904*K0102*<HO2> + PJAC(:,29,39)=+0.80904*TPK%K0102(:)*PCONC(:,15) ! -!KETH/PAN1=0.0 +!OP2/OLN=0.0 ! -!KETH/PAN2=0.0 +!OP2/XO2=+1.00524*K126*<HO2> + PJAC(:,29,41)=+1.00524*TPK%K126(:)*PCONC(:,15) ! -!KETH/PAN3=0.0 +!OP2/WC_O3=0.0 ! -!KETH/PAN4=0.0 +!OP2/WC_H2O2=0.0 ! -!KETH/PAN6=0.0 +!OP2/WC_NO=0.0 ! -!KETH/PAN7=0.0 +!OP2/WC_NO2=0.0 ! -!KETH/PAN8=0.0 +!OP2/WC_NO3=0.0 ! -!KETH/PN10=0.0 +!OP2/WC_N2O5=0.0 ! -!KETH/RO2T=0.0 +!OP2/WC_HONO=0.0 ! -!KETH/RO21=0.0 +!OP2/WC_HNO3=0.0 ! -!KETH/RO25=0.0 +!OP2/WC_HNO4=0.0 ! -!MEOH/NO=0.0 +!OP2/WC_NH3=0.0 ! -!MEOH/NO2=0.0 +!OP2/WC_OH=0.0 ! -!MEOH/O3=0.0 +!OP2/WC_HO2=0.0 ! -!MEOH/HONO=0.0 +!OP2/WC_CO2=0.0 ! -!MEOH/HNO3=0.0 +!OP2/WC_SO2=0.0 ! -!MEOH/HNO4=0.0 +!OP2/WC_SULF=0.0 ! -!MEOH/N2O5=0.0 +!OP2/WC_HCHO=0.0 ! -!MEOH/NO3=0.0 +!OP2/WC_ORA1=0.0 ! -!MEOH/NH3=0.0 +!OP2/WC_ORA2=0.0 ! -!MEOH/HO2=0.0 +!OP2/WC_MO2=0.0 ! -!MEOH/CO=0.0 +!OP2/WC_OP1=0.0 ! -!MEOH/H2O2=0.0 +!OP2/WC_ASO3=0.0 ! -!MEOH/SO2=0.0 +!OP2/WC_ASO4=0.0 ! -!MEOH/H2SO4=0.0 +!OP2/WC_ASO5=0.0 ! -!MEOH/OH=-K048*<MEOH> - PJAC(:,32,15)=-TPK%K048(:)*PCONC(:,32) +!OP2/WC_AHSO5=0.0 ! -!MEOH/ETHE=0.0 +!OP2/WC_AHMS=0.0 ! -!MEOH/OLEL=0.0 +!OP2/WR_O3=0.0 ! -!MEOH/OLEH=0.0 +!OP2/WR_H2O2=0.0 ! -!MEOH/ALKL=0.0 +!OP2/WR_NO=0.0 ! -!MEOH/ALKM=0.0 +!OP2/WR_NO2=0.0 ! -!MEOH/ALKH=0.0 +!OP2/WR_NO3=0.0 ! -!MEOH/AROH=0.0 +!OP2/WR_N2O5=0.0 ! -!MEOH/AROL=0.0 +!OP2/WR_HONO=0.0 ! -!MEOH/AROO=0.0 +!OP2/WR_HNO3=0.0 ! -!MEOH/ARAL=0.0 +!OP2/WR_HNO4=0.0 ! -!MEOH/ARAC=0.0 +!OP2/WR_NH3=0.0 ! -!MEOH/PAH=0.0 +!OP2/WR_OH=0.0 ! -!MEOH/HCHO=0.0 +!OP2/WR_HO2=0.0 ! -!MEOH/ALD2=0.0 +!OP2/WR_CO2=0.0 ! -!MEOH/KETL=0.0 +!OP2/WR_SO2=0.0 ! -!MEOH/KETH=0.0 +!OP2/WR_SULF=0.0 ! -!MEOH/MEOH=-K048*<OH> - PJAC(:,32,32)=-TPK%K048(:)*PCONC(:,15) +!OP2/WR_HCHO=0.0 ! -!MEOH/ETOH=0.0 +!OP2/WR_ORA1=0.0 ! -!MEOH/ALCH=0.0 +!OP2/WR_ORA2=0.0 ! -!MEOH/ISOP=0.0 +!OP2/WR_MO2=0.0 ! -!MEOH/BIOL=0.0 +!OP2/WR_OP1=0.0 ! -!MEOH/BIOH=0.0 +!OP2/WR_ASO3=0.0 ! -!MEOH/MTBE=0.0 +!OP2/WR_ASO4=0.0 ! -!MEOH/MVK=0.0 +!OP2/WR_ASO5=0.0 ! -!MEOH/MCR=0.0 +!OP2/WR_AHSO5=0.0 ! -!MEOH/MGLY=0.0 +!OP2/WR_AHMS=0.0 ! -!MEOH/GLY=0.0 +!ORA1/O3=+0.15343*K079*<ALKE>+0.15000*K080*<BIO>+0.10788*K081*<CARBO>+0.11*K082 +!*<PAN> + PJAC(:,30,1)=+0.15343*TPK%K079(:)*PCONC(:,19)+0.15000*TPK%K080(:)*PCONC(:,20)+& +&0.10788*TPK%K081(:)*PCONC(:,25)+0.11*TPK%K082(:)*PCONC(:,27) ! -!MEOH/ORA1=0.0 -! -!MEOH/ORA2=0.0 -! -!MEOH/ACID=0.0 -! -!MEOH/UR28=0.0 -! -!MEOH/UR21=0.0 -! -!MEOH/URG2=0.0 -! -!MEOH/UR26=0.0 -! -!MEOH/RPG2=0.0 -! -!MEOH/RP18=0.0 -! -!MEOH/RPG3=0.0 -! -!MEOH/URG4=0.0 -! -!MEOH/UR8=0.0 -! -!MEOH/UR17=0.0 -! -!MEOH/UR7=0.0 -! -!MEOH/RPR3=0.0 -! -!MEOH/URG6=0.0 -! -!MEOH/UR22=0.0 -! -!MEOH/URG7=0.0 -! -!MEOH/RPR4=0.0 -! -!MEOH/RPR7=0.0 -! -!MEOH/RPG7=0.0 -! -!MEOH/URG8=0.0 -! -!MEOH/UR19=0.0 -! -!MEOH/URG9=0.0 -! -!MEOH/AP7=0.0 -! -!MEOH/URG10=0.0 -! -!MEOH/RPR1=0.0 -! -!MEOH/RPR5=0.0 -! -!MEOH/RPR8=0.0 -! -!MEOH/RP10=0.0 -! -!MEOH/RP11=0.0 -! -!MEOH/RP16=0.0 -! -!MEOH/RPRL=0.0 -! -!MEOH/APAN=0.0 -! -!MEOH/PAN1=0.0 -! -!MEOH/PAN2=0.0 -! -!MEOH/PAN3=0.0 -! -!MEOH/PAN4=0.0 -! -!MEOH/PAN6=0.0 -! -!MEOH/PAN7=0.0 -! -!MEOH/PAN8=0.0 -! -!MEOH/PN10=0.0 -! -!MEOH/RO2T=0.0 -! -!MEOH/RO21=0.0 -! -!MEOH/RO25=0.0 -! -!ETOH/NO=0.0 -! -!ETOH/NO2=0.0 -! -!ETOH/O3=0.0 -! -!ETOH/HONO=0.0 -! -!ETOH/HNO3=0.0 -! -!ETOH/HNO4=0.0 -! -!ETOH/N2O5=0.0 -! -!ETOH/NO3=0.0 -! -!ETOH/NH3=0.0 -! -!ETOH/HO2=0.0 -! -!ETOH/CO=0.0 -! -!ETOH/H2O2=0.0 -! -!ETOH/SO2=0.0 -! -!ETOH/H2SO4=0.0 -! -!ETOH/OH=-K053*<ETOH> - PJAC(:,33,15)=-TPK%K053(:)*PCONC(:,33) -! -!ETOH/ETHE=0.0 -! -!ETOH/OLEL=0.0 -! -!ETOH/OLEH=0.0 -! -!ETOH/ALKL=0.0 -! -!ETOH/ALKM=0.0 -! -!ETOH/ALKH=0.0 -! -!ETOH/AROH=0.0 -! -!ETOH/AROL=0.0 -! -!ETOH/AROO=0.0 -! -!ETOH/ARAL=0.0 -! -!ETOH/ARAC=0.0 -! -!ETOH/PAH=0.0 -! -!ETOH/HCHO=0.0 -! -!ETOH/ALD2=0.0 -! -!ETOH/KETL=0.0 -! -!ETOH/KETH=0.0 -! -!ETOH/MEOH=0.0 -! -!ETOH/ETOH=-K053*<OH> - PJAC(:,33,33)=-TPK%K053(:)*PCONC(:,15) -! -!ETOH/ALCH=0.0 -! -!ETOH/ISOP=0.0 -! -!ETOH/BIOL=0.0 -! -!ETOH/BIOH=0.0 -! -!ETOH/MTBE=0.0 -! -!ETOH/MVK=0.0 -! -!ETOH/MCR=0.0 -! -!ETOH/MGLY=0.0 -! -!ETOH/GLY=0.0 -! -!ETOH/ORA1=0.0 -! -!ETOH/ORA2=0.0 -! -!ETOH/ACID=0.0 -! -!ETOH/UR28=0.0 -! -!ETOH/UR21=0.0 -! -!ETOH/URG2=0.0 -! -!ETOH/UR26=0.0 -! -!ETOH/RPG2=0.0 -! -!ETOH/RP18=0.0 -! -!ETOH/RPG3=0.0 -! -!ETOH/URG4=0.0 -! -!ETOH/UR8=0.0 -! -!ETOH/UR17=0.0 +!ORA1/H2O2=0.0 ! -!ETOH/UR7=0.0 +!ORA1/NO=0.0 ! -!ETOH/RPR3=0.0 +!ORA1/NO2=0.0 ! -!ETOH/URG6=0.0 +!ORA1/NO3=0.0 ! -!ETOH/UR22=0.0 +!ORA1/N2O5=0.0 ! -!ETOH/URG7=0.0 +!ORA1/HONO=0.0 ! -!ETOH/RPR4=0.0 +!ORA1/HNO3=0.0 ! -!ETOH/RPR7=0.0 +!ORA1/HNO4=0.0 ! -!ETOH/RPG7=0.0 +!ORA1/NH3=0.0 ! -!ETOH/URG8=0.0 +!ORA1/SO2=0.0 ! -!ETOH/UR19=0.0 +!ORA1/SULF=0.0 ! -!ETOH/URG9=0.0 +!ORA1/CO=0.0 ! -!ETOH/AP7=0.0 +!ORA1/OH=+0.00878*K058*<ALKA>-K066*<ORA1> + PJAC(:,30,14)=+0.00878*TPK%K058(:)*PCONC(:,18)-TPK%K066(:)*PCONC(:,30) ! -!ETOH/URG10=0.0 +!ORA1/HO2=0.0 ! -!ETOH/RPR1=0.0 +!ORA1/CH4=0.0 ! -!ETOH/RPR5=0.0 +!ORA1/ETH=0.0 ! -!ETOH/RPR8=0.0 +!ORA1/ALKA=+0.00878*K058*<OH> + PJAC(:,30,18)=+0.00878*TPK%K058(:)*PCONC(:,14) ! -!ETOH/RP10=0.0 +!ORA1/ALKE=+0.15343*K079*<O3> + PJAC(:,30,19)=+0.15343*TPK%K079(:)*PCONC(:,1) ! -!ETOH/RP11=0.0 +!ORA1/BIO=+0.15000*K080*<O3> + PJAC(:,30,20)=+0.15000*TPK%K080(:)*PCONC(:,1) ! -!ETOH/RP16=0.0 +!ORA1/ARO=0.0 ! -!ETOH/RPRL=0.0 +!ORA1/HCHO=0.0 ! -!ETOH/APAN=0.0 +!ORA1/ALD=0.0 ! -!ETOH/PAN1=0.0 +!ORA1/KET=0.0 ! -!ETOH/PAN2=0.0 +!ORA1/CARBO=+0.10788*K081*<O3> + PJAC(:,30,25)=+0.10788*TPK%K081(:)*PCONC(:,1) ! -!ETOH/PAN3=0.0 +!ORA1/ONIT=0.0 ! -!ETOH/PAN4=0.0 +!ORA1/PAN=+0.11*K082*<O3> + PJAC(:,30,27)=+0.11*TPK%K082(:)*PCONC(:,1) ! -!ETOH/PAN6=0.0 +!ORA1/OP1=0.0 ! -!ETOH/PAN7=0.0 +!ORA1/OP2=0.0 ! -!ETOH/PAN8=0.0 +!ORA1/ORA1=-K066*<OH>-KTC17-KTR17 + PJAC(:,30,30)=-TPK%K066(:)*PCONC(:,14)-TPK%KTC17(:)-TPK%KTR17(:) ! -!ETOH/PN10=0.0 +!ORA1/ORA2=0.0 ! -!ETOH/RO2T=0.0 +!ORA1/MO2=0.0 ! -!ETOH/RO21=0.0 +!ORA1/ALKAP=0.0 ! -!ETOH/RO25=0.0 +!ORA1/ALKEP=0.0 ! -!ALCH/NO=0.0 +!ORA1/BIOP=0.0 ! -!ALCH/NO2=0.0 +!ORA1/PHO=0.0 ! -!ALCH/O3=0.0 +!ORA1/ADD=0.0 ! -!ALCH/HONO=0.0 +!ORA1/AROP=0.0 ! -!ALCH/HNO3=0.0 +!ORA1/CARBOP=0.0 ! -!ALCH/HNO4=0.0 +!ORA1/OLN=0.0 ! -!ALCH/N2O5=0.0 +!ORA1/XO2=0.0 ! -!ALCH/NO3=0.0 +!ORA1/WC_O3=0.0 ! -!ALCH/NH3=0.0 +!ORA1/WC_H2O2=0.0 ! -!ALCH/HO2=0.0 +!ORA1/WC_NO=0.0 ! -!ALCH/CO=0.0 +!ORA1/WC_NO2=0.0 ! -!ALCH/H2O2=0.0 +!ORA1/WC_NO3=0.0 ! -!ALCH/SO2=0.0 +!ORA1/WC_N2O5=0.0 ! -!ALCH/H2SO4=0.0 +!ORA1/WC_HONO=0.0 ! -!ALCH/OH=-K069*<ALCH> - PJAC(:,34,15)=-TPK%K069(:)*PCONC(:,34) +!ORA1/WC_HNO3=0.0 ! -!ALCH/ETHE=0.0 +!ORA1/WC_HNO4=0.0 ! -!ALCH/OLEL=0.0 +!ORA1/WC_NH3=0.0 ! -!ALCH/OLEH=0.0 +!ORA1/WC_OH=0.0 ! -!ALCH/ALKL=0.0 +!ORA1/WC_HO2=0.0 ! -!ALCH/ALKM=0.0 +!ORA1/WC_CO2=0.0 ! -!ALCH/ALKH=0.0 +!ORA1/WC_SO2=0.0 ! -!ALCH/AROH=0.0 +!ORA1/WC_SULF=0.0 ! -!ALCH/AROL=0.0 +!ORA1/WC_HCHO=0.0 ! -!ALCH/AROO=0.0 +!ORA1/WC_ORA1=+KTC37 + PJAC(:,30,58)=+TPK%KTC37(:) ! -!ALCH/ARAL=0.0 +!ORA1/WC_ORA2=0.0 ! -!ALCH/ARAC=0.0 +!ORA1/WC_MO2=0.0 ! -!ALCH/PAH=0.0 +!ORA1/WC_OP1=0.0 ! -!ALCH/HCHO=0.0 +!ORA1/WC_ASO3=0.0 ! -!ALCH/ALD2=0.0 +!ORA1/WC_ASO4=0.0 ! -!ALCH/KETL=0.0 +!ORA1/WC_ASO5=0.0 ! -!ALCH/KETH=0.0 +!ORA1/WC_AHSO5=0.0 ! -!ALCH/MEOH=0.0 +!ORA1/WC_AHMS=0.0 ! -!ALCH/ETOH=0.0 +!ORA1/WR_O3=0.0 ! -!ALCH/ALCH=-K069*<OH> - PJAC(:,34,34)=-TPK%K069(:)*PCONC(:,15) +!ORA1/WR_H2O2=0.0 ! -!ALCH/ISOP=0.0 +!ORA1/WR_NO=0.0 ! -!ALCH/BIOL=0.0 +!ORA1/WR_NO2=0.0 ! -!ALCH/BIOH=0.0 +!ORA1/WR_NO3=0.0 ! -!ALCH/MTBE=0.0 +!ORA1/WR_N2O5=0.0 ! -!ALCH/MVK=0.0 +!ORA1/WR_HONO=0.0 ! -!ALCH/MCR=0.0 +!ORA1/WR_HNO3=0.0 ! -!ALCH/MGLY=0.0 +!ORA1/WR_HNO4=0.0 ! -!ALCH/GLY=0.0 +!ORA1/WR_NH3=0.0 ! -!ALCH/ORA1=0.0 +!ORA1/WR_OH=0.0 ! -!ALCH/ORA2=0.0 +!ORA1/WR_HO2=0.0 ! -!ALCH/ACID=0.0 +!ORA1/WR_CO2=0.0 ! -!ALCH/UR28=0.0 +!ORA1/WR_SO2=0.0 ! -!ALCH/UR21=0.0 +!ORA1/WR_SULF=0.0 ! -!ALCH/URG2=0.0 +!ORA1/WR_HCHO=0.0 ! -!ALCH/UR26=0.0 +!ORA1/WR_ORA1=+KTR37 + PJAC(:,30,83)=+TPK%KTR37(:) ! -!ALCH/RPG2=0.0 +!ORA1/WR_ORA2=0.0 ! -!ALCH/RP18=0.0 +!ORA1/WR_MO2=0.0 ! -!ALCH/RPG3=0.0 +!ORA1/WR_OP1=0.0 ! -!ALCH/URG4=0.0 +!ORA1/WR_ASO3=0.0 ! -!ALCH/UR8=0.0 +!ORA1/WR_ASO4=0.0 ! -!ALCH/UR17=0.0 +!ORA1/WR_ASO5=0.0 ! -!ALCH/UR7=0.0 +!ORA1/WR_AHSO5=0.0 ! -!ALCH/RPR3=0.0 +!ORA1/WR_AHMS=0.0 ! -!ALCH/URG6=0.0 +RETURN +END SUBROUTINE SUBJ5 ! -!ALCH/UR22=0.0 +SUBROUTINE SUBJ6 ! -!ALCH/URG7=0.0 +!Indices 31 a 35 ! -!ALCH/RPR4=0.0 ! -!ALCH/RPR7=0.0 +!ORA2/O3=+0.08143*K079*<ALKE>+0.00000*K080*<BIO>+0.20595*K081*<CARBO> + PJAC(:,31,1)=+0.08143*TPK%K079(:)*PCONC(:,19)+0.00000*TPK%K080(:)*PCONC(:,20)+& +&0.20595*TPK%K081(:)*PCONC(:,25) ! -!ALCH/RPG7=0.0 +!ORA2/H2O2=0.0 ! -!ALCH/URG8=0.0 +!ORA2/NO=0.0 ! -!ALCH/UR19=0.0 +!ORA2/NO2=0.0 ! -!ALCH/URG9=0.0 +!ORA2/NO3=0.0 ! -!ALCH/AP7=0.0 +!ORA2/N2O5=0.0 ! -!ALCH/URG10=0.0 +!ORA2/HONO=0.0 ! -!ALCH/RPR1=0.0 +!ORA2/HNO3=0.0 ! -!ALCH/RPR5=0.0 +!ORA2/HNO4=0.0 ! -!ALCH/RPR8=0.0 +!ORA2/NH3=0.0 ! -!ALCH/RP10=0.0 +!ORA2/SO2=0.0 ! -!ALCH/RP11=0.0 +!ORA2/SULF=0.0 ! -!ALCH/RP16=0.0 +!ORA2/CO=0.0 ! -!ALCH/RPRL=0.0 +!ORA2/OH=-K067*<ORA2> + PJAC(:,31,14)=-TPK%K067(:)*PCONC(:,31) ! -!ALCH/APAN=0.0 +!ORA2/HO2=+0.17307*K0102*<CARBOP> + PJAC(:,31,15)=+0.17307*TPK%K0102(:)*PCONC(:,39) ! -!ALCH/PAN1=0.0 +!ORA2/CH4=0.0 ! -!ALCH/PAN2=0.0 +!ORA2/ETH=0.0 ! -!ALCH/PAN3=0.0 +!ORA2/ALKA=0.0 ! -!ALCH/PAN4=0.0 +!ORA2/ALKE=+0.08143*K079*<O3> + PJAC(:,31,19)=+0.08143*TPK%K079(:)*PCONC(:,1) ! -!ALCH/PAN6=0.0 +!ORA2/BIO=+0.00000*K080*<O3> + PJAC(:,31,20)=+0.00000*TPK%K080(:)*PCONC(:,1) ! -!ALCH/PAN7=0.0 +!ORA2/ARO=0.0 ! -!ALCH/PAN8=0.0 +!ORA2/HCHO=0.0 ! -!ALCH/PN10=0.0 +!ORA2/ALD=0.0 ! -!ALCH/RO2T=0.0 +!ORA2/KET=0.0 ! -!ALCH/RO21=0.0 +!ORA2/CARBO=+0.20595*K081*<O3> + PJAC(:,31,25)=+0.20595*TPK%K081(:)*PCONC(:,1) ! -!ALCH/RO25=0.0 +!ORA2/ONIT=0.0 ! -!ISOP/NO=0.0 +!ORA2/PAN=0.0 ! -!ISOP/NO2=0.0 +!ORA2/OP1=0.0 ! -!ISOP/O3=-K066*<ISOP> - PJAC(:,35,3)=-TPK%K066(:)*PCONC(:,35) +!ORA2/OP2=0.0 ! -!ISOP/HONO=0.0 +!ORA2/ORA1=0.0 ! -!ISOP/HNO3=0.0 +!ORA2/ORA2=-K067*<OH>-KTC18-KTR18 + PJAC(:,31,31)=-TPK%K067(:)*PCONC(:,14)-TPK%KTC18(:)-TPK%KTR18(:) ! -!ISOP/HNO4=0.0 +!ORA2/MO2=+0.13684*K109*<CARBOP> + PJAC(:,31,32)=+0.13684*TPK%K109(:)*PCONC(:,39) ! -!ISOP/N2O5=0.0 +!ORA2/ALKAP=+0.49810*K111*<CARBOP> + PJAC(:,31,33)=+0.49810*TPK%K111(:)*PCONC(:,39) ! -!ISOP/NO3=-K065*<ISOP> - PJAC(:,35,8)=-TPK%K065(:)*PCONC(:,35) +!ORA2/ALKEP=+0.49922*K112*<CARBOP> + PJAC(:,31,34)=+0.49922*TPK%K112(:)*PCONC(:,39) ! -!ISOP/NH3=0.0 +!ORA2/BIOP=+0.49400*K113*<CARBOP> + PJAC(:,31,35)=+0.49400*TPK%K113(:)*PCONC(:,39) ! -!ISOP/HO2=0.0 +!ORA2/PHO=0.0 ! -!ISOP/CO=0.0 +!ORA2/ADD=0.0 ! -!ISOP/H2O2=0.0 +!ORA2/AROP=0.0 ! -!ISOP/SO2=0.0 +!ORA2/CARBOP=+0.17307*K0102*<HO2>+0.13684*K109*<MO2>+0.49810*K111*<ALKAP>+0.499 +!22*K112*<ALKEP>+0.49400*K113*<BIOP>+0.09955*K115*<CARBOP>+0.09955*K115*<CARBOP +!>+0.48963*K116*<OLN> + PJAC(:,31,39)=+0.17307*TPK%K0102(:)*PCONC(:,15)+0.13684*TPK%K109(:)*PCONC(:,32& +&)+0.49810*TPK%K111(:)*PCONC(:,33)+0.49922*TPK%K112(:)*PCONC(:,34)+0.49400*TPK%& +&K113(:)*PCONC(:,35)+0.09955*TPK%K115(:)*PCONC(:,39)+0.09955*TPK%K115(:)*PCONC(& +&:,39)+0.48963*TPK%K116(:)*PCONC(:,40) ! -!ISOP/H2SO4=0.0 +!ORA2/OLN=+0.48963*K116*<CARBOP> + PJAC(:,31,40)=+0.48963*TPK%K116(:)*PCONC(:,39) ! -!ISOP/OH=-K064*<ISOP> - PJAC(:,35,15)=-TPK%K064(:)*PCONC(:,35) +!ORA2/XO2=0.0 ! -!ISOP/ETHE=0.0 +!ORA2/WC_O3=0.0 ! -!ISOP/OLEL=0.0 +!ORA2/WC_H2O2=0.0 ! -!ISOP/OLEH=0.0 +!ORA2/WC_NO=0.0 ! -!ISOP/ALKL=0.0 +!ORA2/WC_NO2=0.0 ! -!ISOP/ALKM=0.0 +!ORA2/WC_NO3=0.0 ! -!ISOP/ALKH=0.0 +!ORA2/WC_N2O5=0.0 ! -!ISOP/AROH=0.0 +!ORA2/WC_HONO=0.0 ! -!ISOP/AROL=0.0 +!ORA2/WC_HNO3=0.0 ! -!ISOP/AROO=0.0 +!ORA2/WC_HNO4=0.0 ! -!ISOP/ARAL=0.0 +!ORA2/WC_NH3=0.0 ! -!ISOP/ARAC=0.0 +!ORA2/WC_OH=0.0 ! -!ISOP/PAH=0.0 +!ORA2/WC_HO2=0.0 ! -!ISOP/HCHO=0.0 +!ORA2/WC_CO2=0.0 ! -!ISOP/ALD2=0.0 +!ORA2/WC_SO2=0.0 ! -!ISOP/KETL=0.0 +!ORA2/WC_SULF=0.0 ! -!ISOP/KETH=0.0 +!ORA2/WC_HCHO=0.0 ! -!ISOP/MEOH=0.0 +!ORA2/WC_ORA1=0.0 ! -!ISOP/ETOH=0.0 +!ORA2/WC_ORA2=+KTC38 + PJAC(:,31,59)=+TPK%KTC38(:) ! -!ISOP/ALCH=0.0 +!ORA2/WC_MO2=0.0 ! -!ISOP/ISOP=-K064*<OH>-K065*<NO3>-K066*<O3>-K067*<O> - PJAC(:,35,35)=-TPK%K064(:)*PCONC(:,15)-TPK%K065(:)*PCONC(:,8)-TPK%K066(:)*PCON& -&C(:,3)-TPK%K067(:)*TPK%O(:) +!ORA2/WC_OP1=0.0 ! -!ISOP/BIOL=0.0 +!ORA2/WC_ASO3=0.0 ! -!ISOP/BIOH=0.0 +!ORA2/WC_ASO4=0.0 ! -!ISOP/MTBE=0.0 +!ORA2/WC_ASO5=0.0 ! -!ISOP/MVK=0.0 +!ORA2/WC_AHSO5=0.0 ! -!ISOP/MCR=0.0 +!ORA2/WC_AHMS=0.0 ! -!ISOP/MGLY=0.0 +!ORA2/WR_O3=0.0 ! -!ISOP/GLY=0.0 +!ORA2/WR_H2O2=0.0 ! -!ISOP/ORA1=0.0 +!ORA2/WR_NO=0.0 ! -!ISOP/ORA2=0.0 +!ORA2/WR_NO2=0.0 ! -!ISOP/ACID=0.0 +!ORA2/WR_NO3=0.0 ! -!ISOP/UR28=0.0 +!ORA2/WR_N2O5=0.0 ! -!ISOP/UR21=0.0 +!ORA2/WR_HONO=0.0 ! -!ISOP/URG2=0.0 +!ORA2/WR_HNO3=0.0 ! -!ISOP/UR26=0.0 +!ORA2/WR_HNO4=0.0 ! -!ISOP/RPG2=0.0 +!ORA2/WR_NH3=0.0 ! -!ISOP/RP18=0.0 +!ORA2/WR_OH=0.0 ! -!ISOP/RPG3=0.0 +!ORA2/WR_HO2=0.0 ! -!ISOP/URG4=0.0 +!ORA2/WR_CO2=0.0 ! -!ISOP/UR8=0.0 +!ORA2/WR_SO2=0.0 ! -!ISOP/UR17=0.0 +!ORA2/WR_SULF=0.0 ! -!ISOP/UR7=0.0 +!ORA2/WR_HCHO=0.0 ! -!ISOP/RPR3=0.0 +!ORA2/WR_ORA1=0.0 ! -!ISOP/URG6=0.0 +!ORA2/WR_ORA2=+KTR38 + PJAC(:,31,84)=+TPK%KTR38(:) ! -!ISOP/UR22=0.0 +!ORA2/WR_MO2=0.0 ! -!ISOP/URG7=0.0 +!ORA2/WR_OP1=0.0 ! -!ISOP/RPR4=0.0 +!ORA2/WR_ASO3=0.0 ! -!ISOP/RPR7=0.0 +!ORA2/WR_ASO4=0.0 ! -!ISOP/RPG7=0.0 +!ORA2/WR_ASO5=0.0 ! -!ISOP/URG8=0.0 +!ORA2/WR_AHSO5=0.0 ! -!ISOP/UR19=0.0 +!ORA2/WR_AHMS=0.0 ! -!ISOP/URG9=0.0 +!MO2/O3=+0.13966*K079*<ALKE>+0.03000*K080*<BIO> + PJAC(:,32,1)=+0.13966*TPK%K079(:)*PCONC(:,19)+0.03000*TPK%K080(:)*PCONC(:,20) ! -!ISOP/AP7=0.0 +!MO2/H2O2=0.0 ! -!ISOP/URG10=0.0 +!MO2/NO=-K090*<MO2>+0.09016*K091*<ALKAP>+0.78134*K095*<CARBOP> + PJAC(:,32,3)=-TPK%K090(:)*PCONC(:,32)+0.09016*TPK%K091(:)*PCONC(:,33)+0.78134*& +&TPK%K095(:)*PCONC(:,39) ! -!ISOP/RPR1=0.0 +!MO2/NO2=0.0 ! -!ISOP/RPR5=0.0 +!MO2/NO3=-K119*<MO2>+0.09731*K120*<ALKAP>+0.91910*K124*<CARBOP> + PJAC(:,32,5)=-TPK%K119(:)*PCONC(:,32)+0.09731*TPK%K120(:)*PCONC(:,33)+0.91910*& +&TPK%K124(:)*PCONC(:,39) ! -!ISOP/RPR8=0.0 +!MO2/N2O5=0.0 ! -!ISOP/RP10=0.0 +!MO2/HONO=0.0 ! -!ISOP/RP11=0.0 +!MO2/HNO3=0.0 ! -!ISOP/RP16=0.0 +!MO2/HNO4=0.0 ! -!ISOP/RPRL=0.0 +!MO2/NH3=0.0 ! -!ISOP/APAN=0.0 +!MO2/SO2=0.0 ! -!ISOP/PAN1=0.0 +!MO2/SULF=0.0 ! -!ISOP/PAN2=0.0 +!MO2/CO=0.0 ! -!ISOP/PAN3=0.0 +!MO2/OH=+K056*<CH4>+0.65*K068*<OP1> + PJAC(:,32,14)=+TPK%K056(:)*PCONC(:,16)+0.65*TPK%K068(:)*PCONC(:,28) ! -!ISOP/PAN4=0.0 +!MO2/HO2=-K097*<MO2> + PJAC(:,32,15)=-TPK%K097(:)*PCONC(:,32) ! -!ISOP/PAN6=0.0 +!MO2/CH4=+K056*<OH> + PJAC(:,32,16)=+TPK%K056(:)*PCONC(:,14) ! -!ISOP/PAN7=0.0 +!MO2/ETH=0.0 ! -!ISOP/PAN8=0.0 +!MO2/ALKA=0.0 ! -!ISOP/PN10=0.0 +!MO2/ALKE=+0.13966*K079*<O3> + PJAC(:,32,19)=+0.13966*TPK%K079(:)*PCONC(:,1) ! -!ISOP/RO2T=0.0 +!MO2/BIO=+0.03000*K080*<O3> + PJAC(:,32,20)=+0.03000*TPK%K080(:)*PCONC(:,1) ! -!ISOP/RO21=0.0 +!MO2/ARO=0.0 ! -!ISOP/RO25=0.0 +!MO2/HCHO=0.0 ! -RETURN -END SUBROUTINE SUBJ6 +!MO2/ALD=+K012 + PJAC(:,32,23)=+TPK%K012(:) ! -SUBROUTINE SUBJ7 +!MO2/KET=0.0 ! -!Indices 36 a 40 +!MO2/CARBO=0.0 ! +!MO2/ONIT=0.0 ! -!BIOL/NO=0.0 +!MO2/PAN=0.0 ! -!BIOL/NO2=0.0 +!MO2/OP1=+0.65*K068*<OH> + PJAC(:,32,28)=+0.65*TPK%K068(:)*PCONC(:,14) ! -!BIOL/O3=-K086*<BIOL> - PJAC(:,36,3)=-TPK%K086(:)*PCONC(:,36) +!MO2/OP2=+0.03795*K014 + PJAC(:,32,29)=+0.03795*TPK%K014(:) ! -!BIOL/HONO=0.0 +!MO2/ORA1=0.0 ! -!BIOL/HNO3=0.0 +!MO2/ORA2=0.0 ! -!BIOL/HNO4=0.0 +!MO2/MO2=-K090*<NO>-K097*<HO2>-K104*<MO2>-K104*<MO2>-K104*<MO2>-K104*<MO2>+0.01 +!390*K105*<ALKAP>-K105*<ALKAP>-K106*<ALKEP>-K107*<BIOP>-K108*<AROP>+0.56031*K10 +!9*<CARBOP>-K109*<CARBOP>-K110*<OLN>-K119*<NO3>-K127*<XO2>-KTC19-KTR19 + PJAC(:,32,32)=-TPK%K090(:)*PCONC(:,3)-TPK%K097(:)*PCONC(:,15)-TPK%K104(:)*PCON& +&C(:,32)-TPK%K104(:)*PCONC(:,32)-TPK%K104(:)*PCONC(:,32)-TPK%K104(:)*PCONC(:,32& +&)+0.01390*TPK%K105(:)*PCONC(:,33)-TPK%K105(:)*PCONC(:,33)-TPK%K106(:)*PCONC(:,& +&34)-TPK%K107(:)*PCONC(:,35)-TPK%K108(:)*PCONC(:,38)+0.56031*TPK%K109(:)*PCONC(& +&:,39)-TPK%K109(:)*PCONC(:,39)-TPK%K110(:)*PCONC(:,40)-TPK%K119(:)*PCONC(:,5)-T& +&PK%K127(:)*PCONC(:,41)-TPK%KTC19(:)-TPK%KTR19(:) ! -!BIOL/N2O5=0.0 +!MO2/ALKAP=+0.09016*K091*<NO>+0.01390*K105*<MO2>-K105*<MO2>+0.51480*K111*<CARBO +!P>+0.09731*K120*<NO3> + PJAC(:,32,33)=+0.09016*TPK%K091(:)*PCONC(:,3)+0.01390*TPK%K105(:)*PCONC(:,32)-& +&TPK%K105(:)*PCONC(:,32)+0.51480*TPK%K111(:)*PCONC(:,39)+0.09731*TPK%K120(:)*PC& +&ONC(:,5) ! -!BIOL/NO3=-K085*<BIOL> - PJAC(:,36,8)=-TPK%K085(:)*PCONC(:,36) +!MO2/ALKEP=-K106*<MO2>+0.50078*K112*<CARBOP> + PJAC(:,32,34)=-TPK%K106(:)*PCONC(:,32)+0.50078*TPK%K112(:)*PCONC(:,39) ! -!BIOL/NH3=0.0 +!MO2/BIOP=-K107*<MO2>+0.50600*K113*<CARBOP> + PJAC(:,32,35)=-TPK%K107(:)*PCONC(:,32)+0.50600*TPK%K113(:)*PCONC(:,39) ! -!BIOL/HO2=0.0 +!MO2/PHO=0.0 ! -!BIOL/CO=0.0 +!MO2/ADD=0.0 ! -!BIOL/H2O2=0.0 +!MO2/AROP=-K108*<MO2>+K114*<CARBOP> + PJAC(:,32,38)=-TPK%K108(:)*PCONC(:,32)+TPK%K114(:)*PCONC(:,39) ! -!BIOL/SO2=0.0 +!MO2/CARBOP=+0.78134*K095*<NO>+0.56031*K109*<MO2>-K109*<MO2>+0.51480*K111*<ALKA +!P>+0.50078*K112*<ALKEP>+0.50600*K113*<BIOP>+K114*<AROP>+1.66702*K115*<CARBOP>+ +!1.66702*K115*<CARBOP>+0.51037*K116*<OLN>+0.91910*K124*<NO3>+K128*<XO2> + PJAC(:,32,39)=+0.78134*TPK%K095(:)*PCONC(:,3)+0.56031*TPK%K109(:)*PCONC(:,32)-& +&TPK%K109(:)*PCONC(:,32)+0.51480*TPK%K111(:)*PCONC(:,33)+0.50078*TPK%K112(:)*PC& +&ONC(:,34)+0.50600*TPK%K113(:)*PCONC(:,35)+TPK%K114(:)*PCONC(:,38)+1.66702*TPK%& +&K115(:)*PCONC(:,39)+1.66702*TPK%K115(:)*PCONC(:,39)+0.51037*TPK%K116(:)*PCONC(& +&:,40)+0.91910*TPK%K124(:)*PCONC(:,5)+TPK%K128(:)*PCONC(:,41) ! -!BIOL/H2SO4=0.0 +!MO2/OLN=-K110*<MO2>+0.51037*K116*<CARBOP> + PJAC(:,32,40)=-TPK%K110(:)*PCONC(:,32)+0.51037*TPK%K116(:)*PCONC(:,39) ! -!BIOL/OH=-K084*<BIOL> - PJAC(:,36,15)=-TPK%K084(:)*PCONC(:,36) +!MO2/XO2=-K127*<MO2>+K128*<CARBOP> + PJAC(:,32,41)=-TPK%K127(:)*PCONC(:,32)+TPK%K128(:)*PCONC(:,39) ! -!BIOL/ETHE=0.0 +!MO2/WC_O3=0.0 ! -!BIOL/OLEL=0.0 +!MO2/WC_H2O2=0.0 ! -!BIOL/OLEH=0.0 +!MO2/WC_NO=0.0 ! -!BIOL/ALKL=0.0 +!MO2/WC_NO2=0.0 ! -!BIOL/ALKM=0.0 +!MO2/WC_NO3=0.0 ! -!BIOL/ALKH=0.0 +!MO2/WC_N2O5=0.0 ! -!BIOL/AROH=0.0 +!MO2/WC_HONO=0.0 ! -!BIOL/AROL=0.0 +!MO2/WC_HNO3=0.0 ! -!BIOL/AROO=0.0 +!MO2/WC_HNO4=0.0 ! -!BIOL/ARAL=0.0 +!MO2/WC_NH3=0.0 ! -!BIOL/ARAC=0.0 +!MO2/WC_OH=0.0 ! -!BIOL/PAH=0.0 +!MO2/WC_HO2=0.0 ! -!BIOL/HCHO=0.0 +!MO2/WC_CO2=0.0 ! -!BIOL/ALD2=0.0 +!MO2/WC_SO2=0.0 ! -!BIOL/KETL=0.0 +!MO2/WC_SULF=0.0 ! -!BIOL/KETH=0.0 +!MO2/WC_HCHO=0.0 ! -!BIOL/MEOH=0.0 +!MO2/WC_ORA1=0.0 ! -!BIOL/ETOH=0.0 +!MO2/WC_ORA2=0.0 ! -!BIOL/ALCH=0.0 +!MO2/WC_MO2=+KTC39 + PJAC(:,32,60)=+TPK%KTC39(:) ! -!BIOL/ISOP=0.0 +!MO2/WC_OP1=0.0 ! -!BIOL/BIOL=-K084*<OH>-K085*<NO3>-K086*<O3>-K087*<O> - PJAC(:,36,36)=-TPK%K084(:)*PCONC(:,15)-TPK%K085(:)*PCONC(:,8)-TPK%K086(:)*PCON& -&C(:,3)-TPK%K087(:)*TPK%O(:) +!MO2/WC_ASO3=0.0 ! -!BIOL/BIOH=0.0 +!MO2/WC_ASO4=0.0 ! -!BIOL/MTBE=0.0 +!MO2/WC_ASO5=0.0 ! -!BIOL/MVK=0.0 +!MO2/WC_AHSO5=0.0 ! -!BIOL/MCR=0.0 +!MO2/WC_AHMS=0.0 ! -!BIOL/MGLY=0.0 +!MO2/WR_O3=0.0 ! -!BIOL/GLY=0.0 +!MO2/WR_H2O2=0.0 ! -!BIOL/ORA1=0.0 +!MO2/WR_NO=0.0 ! -!BIOL/ORA2=0.0 +!MO2/WR_NO2=0.0 ! -!BIOL/ACID=0.0 +!MO2/WR_NO3=0.0 ! -!BIOL/UR28=0.0 +!MO2/WR_N2O5=0.0 ! -!BIOL/UR21=0.0 +!MO2/WR_HONO=0.0 ! -!BIOL/URG2=0.0 +!MO2/WR_HNO3=0.0 ! -!BIOL/UR26=0.0 +!MO2/WR_HNO4=0.0 ! -!BIOL/RPG2=0.0 +!MO2/WR_NH3=0.0 ! -!BIOL/RP18=0.0 +!MO2/WR_OH=0.0 ! -!BIOL/RPG3=0.0 +!MO2/WR_HO2=0.0 ! -!BIOL/URG4=0.0 +!MO2/WR_CO2=0.0 ! -!BIOL/UR8=0.0 +!MO2/WR_SO2=0.0 ! -!BIOL/UR17=0.0 +!MO2/WR_SULF=0.0 ! -!BIOL/UR7=0.0 +!MO2/WR_HCHO=0.0 ! -!BIOL/RPR3=0.0 +!MO2/WR_ORA1=0.0 ! -!BIOL/URG6=0.0 +!MO2/WR_ORA2=0.0 ! -!BIOL/UR22=0.0 +!MO2/WR_MO2=+KTR39 + PJAC(:,32,85)=+TPK%KTR39(:) ! -!BIOL/URG7=0.0 +!MO2/WR_OP1=0.0 ! -!BIOL/RPR4=0.0 +!MO2/WR_ASO3=0.0 ! -!BIOL/RPR7=0.0 +!MO2/WR_ASO4=0.0 ! -!BIOL/RPG7=0.0 +!MO2/WR_ASO5=0.0 ! -!BIOL/URG8=0.0 +!MO2/WR_AHSO5=0.0 ! -!BIOL/UR19=0.0 +!MO2/WR_AHMS=0.0 ! -!BIOL/URG9=0.0 +!ALKAP/O3=+0.09815*K079*<ALKE>+0.00000*K080*<BIO> + PJAC(:,33,1)=+0.09815*TPK%K079(:)*PCONC(:,19)+0.00000*TPK%K080(:)*PCONC(:,20) ! -!BIOL/AP7=0.0 +!ALKAP/H2O2=0.0 ! -!BIOL/URG10=0.0 +!ALKAP/NO=+0.08187*K091*<ALKAP>-K091*<ALKAP> + PJAC(:,33,3)=+0.08187*TPK%K091(:)*PCONC(:,33)-TPK%K091(:)*PCONC(:,33) ! -!BIOL/RPR1=0.0 +!ALKAP/NO2=0.0 ! -!BIOL/RPR5=0.0 +!ALKAP/NO3=+0.08994*K120*<ALKAP>-K120*<ALKAP> + PJAC(:,33,5)=+0.08994*TPK%K120(:)*PCONC(:,33)-TPK%K120(:)*PCONC(:,33) ! -!BIOL/RPR8=0.0 +!ALKAP/N2O5=0.0 ! -!BIOL/RP10=0.0 +!ALKAP/HONO=0.0 ! -!BIOL/RP11=0.0 +!ALKAP/HNO3=0.0 ! -!BIOL/RP16=0.0 +!ALKAP/HNO4=0.0 ! -!BIOL/RPRL=0.0 +!ALKAP/NH3=0.0 ! -!BIOL/APAN=0.0 +!ALKAP/SO2=0.0 ! -!BIOL/PAN1=0.0 +!ALKAP/SULF=0.0 ! -!BIOL/PAN2=0.0 +!ALKAP/CO=0.0 ! -!BIOL/PAN3=0.0 +!ALKAP/OH=+K057*<ETH>+0.87811*K058*<ALKA>+0.40341*K069*<OP2>+1.00000*K071*<ONIT +!> + PJAC(:,33,14)=+TPK%K057(:)*PCONC(:,17)+0.87811*TPK%K058(:)*PCONC(:,18)+0.40341& +&*TPK%K069(:)*PCONC(:,29)+1.00000*TPK%K071(:)*PCONC(:,26) ! -!BIOL/PAN4=0.0 +!ALKAP/HO2=-K098*<ALKAP> + PJAC(:,33,15)=-TPK%K098(:)*PCONC(:,33) ! -!BIOL/PAN6=0.0 +!ALKAP/CH4=0.0 ! -!BIOL/PAN7=0.0 +!ALKAP/ETH=+K057*<OH> + PJAC(:,33,17)=+TPK%K057(:)*PCONC(:,14) ! -!BIOL/PAN8=0.0 +!ALKAP/ALKA=+0.87811*K058*<OH> + PJAC(:,33,18)=+0.87811*TPK%K058(:)*PCONC(:,14) ! -!BIOL/PN10=0.0 +!ALKAP/ALKE=+0.09815*K079*<O3> + PJAC(:,33,19)=+0.09815*TPK%K079(:)*PCONC(:,1) ! -!BIOL/RO2T=0.0 +!ALKAP/BIO=+0.00000*K080*<O3> + PJAC(:,33,20)=+0.00000*TPK%K080(:)*PCONC(:,1) ! -!BIOL/RO21=0.0 +!ALKAP/ARO=0.0 ! -!BIOL/RO25=0.0 +!ALKAP/HCHO=0.0 ! -!BIOH/NO=0.0 +!ALKAP/ALD=0.0 ! -!BIOH/NO2=0.0 +!ALKAP/KET=+1.00000*K015 + PJAC(:,33,24)=+1.00000*TPK%K015(:) ! -!BIOH/O3=-K090*<BIOH> - PJAC(:,37,3)=-TPK%K090(:)*PCONC(:,37) +!ALKAP/CARBO=0.0 ! -!BIOH/HONO=0.0 +!ALKAP/ONIT=+1.00000*K071*<OH> + PJAC(:,33,26)=+1.00000*TPK%K071(:)*PCONC(:,14) ! -!BIOH/HNO3=0.0 +!ALKAP/PAN=0.0 ! -!BIOH/HNO4=0.0 +!ALKAP/OP1=0.0 ! -!BIOH/N2O5=0.0 +!ALKAP/OP2=+0.40341*K069*<OH> + PJAC(:,33,29)=+0.40341*TPK%K069(:)*PCONC(:,14) ! -!BIOH/NO3=-K089*<BIOH> - PJAC(:,37,8)=-TPK%K089(:)*PCONC(:,37) +!ALKAP/ORA1=0.0 ! -!BIOH/NH3=0.0 +!ALKAP/ORA2=0.0 ! -!BIOH/HO2=0.0 +!ALKAP/MO2=+0.00385*K105*<ALKAP>-K105*<ALKAP> + PJAC(:,33,32)=+0.00385*TPK%K105(:)*PCONC(:,33)-TPK%K105(:)*PCONC(:,33) ! -!BIOH/CO=0.0 +!ALKAP/ALKAP=+0.08187*K091*<NO>-K091*<NO>-K098*<HO2>+0.00385*K105*<MO2>-K105*<M +!O2>+0.00828*K111*<CARBOP>-K111*<CARBOP>+0.08994*K120*<NO3>-K120*<NO3> + PJAC(:,33,33)=+0.08187*TPK%K091(:)*PCONC(:,3)-TPK%K091(:)*PCONC(:,3)-TPK%K098(& +&:)*PCONC(:,15)+0.00385*TPK%K105(:)*PCONC(:,32)-TPK%K105(:)*PCONC(:,32)+0.00828& +&*TPK%K111(:)*PCONC(:,39)-TPK%K111(:)*PCONC(:,39)+0.08994*TPK%K120(:)*PCONC(:,5& +&)-TPK%K120(:)*PCONC(:,5) ! -!BIOH/H2O2=0.0 +!ALKAP/ALKEP=0.0 ! -!BIOH/SO2=0.0 +!ALKAP/BIOP=0.0 ! -!BIOH/H2SO4=0.0 +!ALKAP/PHO=0.0 ! -!BIOH/OH=-K088*<BIOH> - PJAC(:,37,15)=-TPK%K088(:)*PCONC(:,37) +!ALKAP/ADD=0.0 ! -!BIOH/ETHE=0.0 +!ALKAP/AROP=0.0 ! -!BIOH/OLEL=0.0 +!ALKAP/CARBOP=+0.00828*K111*<ALKAP>-K111*<ALKAP> + PJAC(:,33,39)=+0.00828*TPK%K111(:)*PCONC(:,33)-TPK%K111(:)*PCONC(:,33) ! -!BIOH/OLEH=0.0 +!ALKAP/OLN=0.0 ! -!BIOH/ALKL=0.0 +!ALKAP/XO2=0.0 ! -!BIOH/ALKM=0.0 +!ALKAP/WC_O3=0.0 ! -!BIOH/ALKH=0.0 +!ALKAP/WC_H2O2=0.0 ! -!BIOH/AROH=0.0 +!ALKAP/WC_NO=0.0 ! -!BIOH/AROL=0.0 +!ALKAP/WC_NO2=0.0 ! -!BIOH/AROO=0.0 +!ALKAP/WC_NO3=0.0 ! -!BIOH/ARAL=0.0 +!ALKAP/WC_N2O5=0.0 ! -!BIOH/ARAC=0.0 +!ALKAP/WC_HONO=0.0 ! -!BIOH/PAH=0.0 +!ALKAP/WC_HNO3=0.0 ! -!BIOH/HCHO=0.0 +!ALKAP/WC_HNO4=0.0 ! -!BIOH/ALD2=0.0 +!ALKAP/WC_NH3=0.0 ! -!BIOH/KETL=0.0 +!ALKAP/WC_OH=0.0 ! -!BIOH/KETH=0.0 +!ALKAP/WC_HO2=0.0 ! -!BIOH/MEOH=0.0 +!ALKAP/WC_CO2=0.0 ! -!BIOH/ETOH=0.0 +!ALKAP/WC_SO2=0.0 ! -!BIOH/ALCH=0.0 +!ALKAP/WC_SULF=0.0 ! -!BIOH/ISOP=0.0 +!ALKAP/WC_HCHO=0.0 ! -!BIOH/BIOL=0.0 +!ALKAP/WC_ORA1=0.0 ! -!BIOH/BIOH=-K088*<OH>-K089*<NO3>-K090*<O3>-K091*<O> - PJAC(:,37,37)=-TPK%K088(:)*PCONC(:,15)-TPK%K089(:)*PCONC(:,8)-TPK%K090(:)*PCON& -&C(:,3)-TPK%K091(:)*TPK%O(:) +!ALKAP/WC_ORA2=0.0 ! -!BIOH/MTBE=0.0 +!ALKAP/WC_MO2=0.0 ! -!BIOH/MVK=0.0 +!ALKAP/WC_OP1=0.0 ! -!BIOH/MCR=0.0 +!ALKAP/WC_ASO3=0.0 ! -!BIOH/MGLY=0.0 +!ALKAP/WC_ASO4=0.0 ! -!BIOH/GLY=0.0 +!ALKAP/WC_ASO5=0.0 ! -!BIOH/ORA1=0.0 +!ALKAP/WC_AHSO5=0.0 ! -!BIOH/ORA2=0.0 +!ALKAP/WC_AHMS=0.0 ! -!BIOH/ACID=0.0 +!ALKAP/WR_O3=0.0 ! -!BIOH/UR28=0.0 +!ALKAP/WR_H2O2=0.0 ! -!BIOH/UR21=0.0 +!ALKAP/WR_NO=0.0 ! -!BIOH/URG2=0.0 +!ALKAP/WR_NO2=0.0 ! -!BIOH/UR26=0.0 +!ALKAP/WR_NO3=0.0 ! -!BIOH/RPG2=0.0 +!ALKAP/WR_N2O5=0.0 ! -!BIOH/RP18=0.0 +!ALKAP/WR_HONO=0.0 ! -!BIOH/RPG3=0.0 +!ALKAP/WR_HNO3=0.0 ! -!BIOH/URG4=0.0 +!ALKAP/WR_HNO4=0.0 ! -!BIOH/UR8=0.0 +!ALKAP/WR_NH3=0.0 ! -!BIOH/UR17=0.0 +!ALKAP/WR_OH=0.0 ! -!BIOH/UR7=0.0 +!ALKAP/WR_HO2=0.0 ! -!BIOH/RPR3=0.0 +!ALKAP/WR_CO2=0.0 ! -!BIOH/URG6=0.0 +!ALKAP/WR_SO2=0.0 ! -!BIOH/UR22=0.0 +!ALKAP/WR_SULF=0.0 ! -!BIOH/URG7=0.0 +!ALKAP/WR_HCHO=0.0 ! -!BIOH/RPR4=0.0 +!ALKAP/WR_ORA1=0.0 ! -!BIOH/RPR7=0.0 +!ALKAP/WR_ORA2=0.0 ! -!BIOH/RPG7=0.0 +!ALKAP/WR_MO2=0.0 ! -!BIOH/URG8=0.0 +!ALKAP/WR_OP1=0.0 ! -!BIOH/UR19=0.0 +!ALKAP/WR_ASO3=0.0 ! -!BIOH/URG9=0.0 +!ALKAP/WR_ASO4=0.0 ! -!BIOH/AP7=0.0 +!ALKAP/WR_ASO5=0.0 ! -!BIOH/URG10=0.0 +!ALKAP/WR_AHSO5=0.0 ! -!BIOH/RPR1=0.0 +!ALKAP/WR_AHMS=0.0 ! -!BIOH/RPR5=0.0 +!ALKEP/O3=0.0 ! -!BIOH/RPR8=0.0 +!ALKEP/H2O2=0.0 ! -!BIOH/RP10=0.0 +!ALKEP/NO=-K092*<ALKEP> + PJAC(:,34,3)=-TPK%K092(:)*PCONC(:,34) ! -!BIOH/RP11=0.0 +!ALKEP/NO2=0.0 ! -!BIOH/RP16=0.0 +!ALKEP/NO3=-K121*<ALKEP> + PJAC(:,34,5)=-TPK%K121(:)*PCONC(:,34) ! -!BIOH/RPRL=0.0 +!ALKEP/N2O5=0.0 ! -!BIOH/APAN=0.0 +!ALKEP/HONO=0.0 ! -!BIOH/PAN1=0.0 +!ALKEP/HNO3=0.0 ! -!BIOH/PAN2=0.0 +!ALKEP/HNO4=0.0 ! -!BIOH/PAN3=0.0 +!ALKEP/NH3=0.0 ! -!BIOH/PAN4=0.0 +!ALKEP/SO2=0.0 ! -!BIOH/PAN6=0.0 +!ALKEP/SULF=0.0 ! -!BIOH/PAN7=0.0 +!ALKEP/CO=0.0 ! -!BIOH/PAN8=0.0 +!ALKEP/OH=+1.02529*K059*<ALKE> + PJAC(:,34,14)=+1.02529*TPK%K059(:)*PCONC(:,19) ! -!BIOH/PN10=0.0 +!ALKEP/HO2=-K099*<ALKEP> + PJAC(:,34,15)=-TPK%K099(:)*PCONC(:,34) ! -!BIOH/RO2T=0.0 +!ALKEP/CH4=0.0 ! -!BIOH/RO21=0.0 +!ALKEP/ETH=0.0 ! -!BIOH/RO25=0.0 +!ALKEP/ALKA=0.0 ! -!MTBE/NO=0.0 +!ALKEP/ALKE=+1.02529*K059*<OH> + PJAC(:,34,19)=+1.02529*TPK%K059(:)*PCONC(:,14) ! -!MTBE/NO2=0.0 +!ALKEP/BIO=0.0 ! -!MTBE/O3=0.0 +!ALKEP/ARO=0.0 ! -!MTBE/HONO=0.0 +!ALKEP/HCHO=0.0 ! -!MTBE/HNO3=0.0 +!ALKEP/ALD=0.0 ! -!MTBE/HNO4=0.0 +!ALKEP/KET=0.0 ! -!MTBE/N2O5=0.0 +!ALKEP/CARBO=0.0 ! -!MTBE/NO3=0.0 +!ALKEP/ONIT=0.0 ! -!MTBE/NH3=0.0 +!ALKEP/PAN=0.0 ! -!MTBE/HO2=0.0 +!ALKEP/OP1=0.0 ! -!MTBE/CO=0.0 +!ALKEP/OP2=0.0 ! -!MTBE/H2O2=0.0 +!ALKEP/ORA1=0.0 ! -!MTBE/SO2=0.0 +!ALKEP/ORA2=0.0 ! -!MTBE/H2SO4=0.0 +!ALKEP/MO2=-K106*<ALKEP> + PJAC(:,34,32)=-TPK%K106(:)*PCONC(:,34) ! -!MTBE/OH=-K068*<MTBE> - PJAC(:,38,15)=-TPK%K068(:)*PCONC(:,38) +!ALKEP/ALKAP=0.0 ! -!MTBE/ETHE=0.0 +!ALKEP/ALKEP=-K092*<NO>-K099*<HO2>-K106*<MO2>-K112*<CARBOP>-K121*<NO3> + PJAC(:,34,34)=-TPK%K092(:)*PCONC(:,3)-TPK%K099(:)*PCONC(:,15)-TPK%K106(:)*PCON& +&C(:,32)-TPK%K112(:)*PCONC(:,39)-TPK%K121(:)*PCONC(:,5) ! -!MTBE/OLEL=0.0 +!ALKEP/BIOP=0.0 ! -!MTBE/OLEH=0.0 +!ALKEP/PHO=0.0 ! -!MTBE/ALKL=0.0 +!ALKEP/ADD=0.0 ! -!MTBE/ALKM=0.0 +!ALKEP/AROP=0.0 ! -!MTBE/ALKH=0.0 +!ALKEP/CARBOP=-K112*<ALKEP> + PJAC(:,34,39)=-TPK%K112(:)*PCONC(:,34) ! -!MTBE/AROH=0.0 +!ALKEP/OLN=0.0 ! -!MTBE/AROL=0.0 +!ALKEP/XO2=0.0 ! -!MTBE/AROO=0.0 +!ALKEP/WC_O3=0.0 ! -!MTBE/ARAL=0.0 +!ALKEP/WC_H2O2=0.0 ! -!MTBE/ARAC=0.0 +!ALKEP/WC_NO=0.0 ! -!MTBE/PAH=0.0 +!ALKEP/WC_NO2=0.0 ! -!MTBE/HCHO=0.0 +!ALKEP/WC_NO3=0.0 ! -!MTBE/ALD2=0.0 +!ALKEP/WC_N2O5=0.0 ! -!MTBE/KETL=0.0 +!ALKEP/WC_HONO=0.0 ! -!MTBE/KETH=0.0 +!ALKEP/WC_HNO3=0.0 ! -!MTBE/MEOH=0.0 +!ALKEP/WC_HNO4=0.0 ! -!MTBE/ETOH=0.0 +!ALKEP/WC_NH3=0.0 ! -!MTBE/ALCH=0.0 +!ALKEP/WC_OH=0.0 ! -!MTBE/ISOP=0.0 +!ALKEP/WC_HO2=0.0 ! -!MTBE/BIOL=0.0 +!ALKEP/WC_CO2=0.0 ! -!MTBE/BIOH=0.0 +!ALKEP/WC_SO2=0.0 ! -!MTBE/MTBE=-K068*<OH> - PJAC(:,38,38)=-TPK%K068(:)*PCONC(:,15) +!ALKEP/WC_SULF=0.0 ! -!MTBE/MVK=0.0 +!ALKEP/WC_HCHO=0.0 ! -!MTBE/MCR=0.0 +!ALKEP/WC_ORA1=0.0 ! -!MTBE/MGLY=0.0 +!ALKEP/WC_ORA2=0.0 ! -!MTBE/GLY=0.0 +!ALKEP/WC_MO2=0.0 ! -!MTBE/ORA1=0.0 +!ALKEP/WC_OP1=0.0 ! -!MTBE/ORA2=0.0 +!ALKEP/WC_ASO3=0.0 ! -!MTBE/ACID=0.0 +!ALKEP/WC_ASO4=0.0 ! -!MTBE/UR28=0.0 +!ALKEP/WC_ASO5=0.0 ! -!MTBE/UR21=0.0 +!ALKEP/WC_AHSO5=0.0 ! -!MTBE/URG2=0.0 +!ALKEP/WC_AHMS=0.0 ! -!MTBE/UR26=0.0 +!ALKEP/WR_O3=0.0 ! -!MTBE/RPG2=0.0 +!ALKEP/WR_H2O2=0.0 ! -!MTBE/RP18=0.0 +!ALKEP/WR_NO=0.0 ! -!MTBE/RPG3=0.0 +!ALKEP/WR_NO2=0.0 ! -!MTBE/URG4=0.0 +!ALKEP/WR_NO3=0.0 ! -!MTBE/UR8=0.0 +!ALKEP/WR_N2O5=0.0 ! -!MTBE/UR17=0.0 +!ALKEP/WR_HONO=0.0 ! -!MTBE/UR7=0.0 +!ALKEP/WR_HNO3=0.0 ! -!MTBE/RPR3=0.0 +!ALKEP/WR_HNO4=0.0 ! -!MTBE/URG6=0.0 +!ALKEP/WR_NH3=0.0 ! -!MTBE/UR22=0.0 +!ALKEP/WR_OH=0.0 ! -!MTBE/URG7=0.0 +!ALKEP/WR_HO2=0.0 ! -!MTBE/RPR4=0.0 +!ALKEP/WR_CO2=0.0 ! -!MTBE/RPR7=0.0 +!ALKEP/WR_SO2=0.0 ! -!MTBE/RPG7=0.0 +!ALKEP/WR_SULF=0.0 ! -!MTBE/URG8=0.0 +!ALKEP/WR_HCHO=0.0 ! -!MTBE/UR19=0.0 +!ALKEP/WR_ORA1=0.0 ! -!MTBE/URG9=0.0 +!ALKEP/WR_ORA2=0.0 ! -!MTBE/AP7=0.0 +!ALKEP/WR_MO2=0.0 ! -!MTBE/URG10=0.0 +!ALKEP/WR_OP1=0.0 ! -!MTBE/RPR1=0.0 +!ALKEP/WR_ASO3=0.0 ! -!MTBE/RPR5=0.0 +!ALKEP/WR_ASO4=0.0 ! -!MTBE/RPR8=0.0 +!ALKEP/WR_ASO5=0.0 ! -!MTBE/RP10=0.0 +!ALKEP/WR_AHSO5=0.0 ! -!MTBE/RP11=0.0 +!ALKEP/WR_AHMS=0.0 ! -!MTBE/RP16=0.0 +!BIOP/O3=0.0 ! -!MTBE/RPRL=0.0 +!BIOP/H2O2=0.0 ! -!MTBE/APAN=0.0 +!BIOP/NO=-K093*<BIOP> + PJAC(:,35,3)=-TPK%K093(:)*PCONC(:,35) ! -!MTBE/PAN1=0.0 +!BIOP/NO2=0.0 ! -!MTBE/PAN2=0.0 +!BIOP/NO3=-K122*<BIOP> + PJAC(:,35,5)=-TPK%K122(:)*PCONC(:,35) ! -!MTBE/PAN3=0.0 +!BIOP/N2O5=0.0 ! -!MTBE/PAN4=0.0 +!BIOP/HONO=0.0 ! -!MTBE/PAN6=0.0 +!BIOP/HNO3=0.0 ! -!MTBE/PAN7=0.0 +!BIOP/HNO4=0.0 ! -!MTBE/PAN8=0.0 +!BIOP/NH3=0.0 ! -!MTBE/PN10=0.0 +!BIOP/SO2=0.0 ! -!MTBE/RO2T=0.0 +!BIOP/SULF=0.0 ! -!MTBE/RO21=0.0 +!BIOP/CO=0.0 ! -!MTBE/RO25=0.0 +!BIOP/OH=+0.00000*K059*<ALKE>+1.00000*K060*<BIO> + PJAC(:,35,14)=+0.00000*TPK%K059(:)*PCONC(:,19)+1.00000*TPK%K060(:)*PCONC(:,20) ! -!MVK/NO=+TPK%CF6*K150*<RO29>+K156*<RO211> - PJAC(:,39,1)=+TPK%CF6*TPK%K150(:)*TPK%RO29(:)+TPK%K156(:)*TPK%RO211(:) +!BIOP/HO2=-K0100*<BIOP> + PJAC(:,35,15)=-TPK%K0100(:)*PCONC(:,35) ! -!MVK/NO2=0.0 +!BIOP/CH4=0.0 ! -!MVK/O3=+0.389*K066*<ISOP>-K281*<MVK> - PJAC(:,39,3)=+0.389*TPK%K066(:)*PCONC(:,35)-TPK%K281(:)*PCONC(:,39) +!BIOP/ETH=0.0 ! -!MVK/HONO=0.0 +!BIOP/ALKA=0.0 ! -!MVK/HNO3=0.0 +!BIOP/ALKE=+0.00000*K059*<OH> + PJAC(:,35,19)=+0.00000*TPK%K059(:)*PCONC(:,14) ! -!MVK/HNO4=0.0 +!BIOP/BIO=+1.00000*K060*<OH> + PJAC(:,35,20)=+1.00000*TPK%K060(:)*PCONC(:,14) ! -!MVK/N2O5=0.0 +!BIOP/ARO=0.0 ! -!MVK/NO3=0.0 +!BIOP/HCHO=0.0 ! -!MVK/NH3=0.0 +!BIOP/ALD=0.0 ! -!MVK/HO2=+K152*<RO29>+K158*<RO211> - PJAC(:,39,10)=+TPK%K152(:)*TPK%RO29(:)+TPK%K158(:)*TPK%RO211(:) +!BIOP/KET=0.0 ! -!MVK/CO=0.0 +!BIOP/CARBO=0.0 ! -!MVK/H2O2=0.0 +!BIOP/ONIT=0.0 ! -!MVK/SO2=0.0 +!BIOP/PAN=0.0 ! -!MVK/H2SO4=0.0 +!BIOP/OP1=0.0 ! -!MVK/OH=-K272*<MVK> - PJAC(:,39,15)=-TPK%K272(:)*PCONC(:,39) +!BIOP/OP2=0.0 ! -!MVK/ETHE=0.0 +!BIOP/ORA1=0.0 ! -!MVK/OLEL=0.0 +!BIOP/ORA2=0.0 ! -!MVK/OLEH=0.0 +!BIOP/MO2=-K107*<BIOP> + PJAC(:,35,32)=-TPK%K107(:)*PCONC(:,35) ! -!MVK/ALKL=0.0 +!BIOP/ALKAP=0.0 ! -!MVK/ALKM=0.0 +!BIOP/ALKEP=0.0 ! -!MVK/ALKH=0.0 +!BIOP/BIOP=-K093*<NO>-K0100*<HO2>-K107*<MO2>-K113*<CARBOP>-K122*<NO3> + PJAC(:,35,35)=-TPK%K093(:)*PCONC(:,3)-TPK%K0100(:)*PCONC(:,15)-TPK%K107(:)*PCO& +&NC(:,32)-TPK%K113(:)*PCONC(:,39)-TPK%K122(:)*PCONC(:,5) ! -!MVK/AROH=0.0 +!BIOP/PHO=0.0 ! -!MVK/AROL=0.0 +!BIOP/ADD=0.0 ! -!MVK/AROO=0.0 +!BIOP/AROP=0.0 ! -!MVK/ARAL=0.0 +!BIOP/CARBOP=-K113*<BIOP> + PJAC(:,35,39)=-TPK%K113(:)*PCONC(:,35) ! -!MVK/ARAC=0.0 +!BIOP/OLN=0.0 ! -!MVK/PAH=0.0 +!BIOP/XO2=0.0 ! -!MVK/HCHO=0.0 +!BIOP/WC_O3=0.0 ! -!MVK/ALD2=0.0 +!BIOP/WC_H2O2=0.0 ! -!MVK/KETL=0.0 +!BIOP/WC_NO=0.0 ! -!MVK/KETH=0.0 +!BIOP/WC_NO2=0.0 ! -!MVK/MEOH=0.0 +!BIOP/WC_NO3=0.0 ! -!MVK/ETOH=0.0 +!BIOP/WC_N2O5=0.0 ! -!MVK/ALCH=0.0 +!BIOP/WC_HONO=0.0 ! -!MVK/ISOP=+0.389*K066*<O3> - PJAC(:,39,35)=+0.389*TPK%K066(:)*PCONC(:,3) +!BIOP/WC_HNO3=0.0 ! -!MVK/BIOL=0.0 +!BIOP/WC_HNO4=0.0 ! -!MVK/BIOH=0.0 +!BIOP/WC_NH3=0.0 ! -!MVK/MTBE=0.0 +!BIOP/WC_OH=0.0 ! -!MVK/MVK=-K272*<OH>-K281*<O3>-K283*<O> - PJAC(:,39,39)=-TPK%K272(:)*PCONC(:,15)-TPK%K281(:)*PCONC(:,3)-TPK%K283(:)*TPK%& -&O(:) +!BIOP/WC_HO2=0.0 ! -!MVK/MCR=0.0 +!BIOP/WC_CO2=0.0 ! -!MVK/MGLY=0.0 +!BIOP/WC_SO2=0.0 ! -!MVK/GLY=0.0 +!BIOP/WC_SULF=0.0 ! -!MVK/ORA1=0.0 +!BIOP/WC_HCHO=0.0 ! -!MVK/ORA2=0.0 +!BIOP/WC_ORA1=0.0 ! -!MVK/ACID=0.0 +!BIOP/WC_ORA2=0.0 ! -!MVK/UR28=0.0 +!BIOP/WC_MO2=0.0 ! -!MVK/UR21=0.0 +!BIOP/WC_OP1=0.0 ! -!MVK/URG2=0.0 +!BIOP/WC_ASO3=0.0 ! -!MVK/UR26=0.0 +!BIOP/WC_ASO4=0.0 ! -!MVK/RPG2=0.0 +!BIOP/WC_ASO5=0.0 ! -!MVK/RP18=0.0 +!BIOP/WC_AHSO5=0.0 ! -!MVK/RPG3=0.0 +!BIOP/WC_AHMS=0.0 ! -!MVK/URG4=0.0 +!BIOP/WR_O3=0.0 ! -!MVK/UR8=0.0 +!BIOP/WR_H2O2=0.0 ! -!MVK/UR17=0.0 +!BIOP/WR_NO=0.0 ! -!MVK/UR7=0.0 +!BIOP/WR_NO2=0.0 ! -!MVK/RPR3=0.0 +!BIOP/WR_NO3=0.0 ! -!MVK/URG6=0.0 +!BIOP/WR_N2O5=0.0 ! -!MVK/UR22=0.0 +!BIOP/WR_HONO=0.0 ! -!MVK/URG7=0.0 +!BIOP/WR_HNO3=0.0 ! -!MVK/RPR4=0.0 +!BIOP/WR_HNO4=0.0 ! -!MVK/RPR7=0.0 +!BIOP/WR_NH3=0.0 ! -!MVK/RPG7=0.0 +!BIOP/WR_OH=0.0 ! -!MVK/URG8=0.0 +!BIOP/WR_HO2=0.0 ! -!MVK/UR19=0.0 +!BIOP/WR_CO2=0.0 ! -!MVK/URG9=0.0 +!BIOP/WR_SO2=0.0 ! -!MVK/AP7=0.0 +!BIOP/WR_SULF=0.0 ! -!MVK/URG10=0.0 +!BIOP/WR_HCHO=0.0 ! -!MVK/RPR1=0.0 +!BIOP/WR_ORA1=0.0 ! -!MVK/RPR5=0.0 +!BIOP/WR_ORA2=0.0 ! -!MVK/RPR8=0.0 +!BIOP/WR_MO2=0.0 ! -!MVK/RP10=0.0 +!BIOP/WR_OP1=0.0 ! -!MVK/RP11=0.0 +!BIOP/WR_ASO3=0.0 ! -!MVK/RP16=0.0 +!BIOP/WR_ASO4=0.0 ! -!MVK/RPRL=0.0 +!BIOP/WR_ASO5=0.0 ! -!MVK/APAN=0.0 +!BIOP/WR_AHSO5=0.0 ! -!MVK/PAN1=0.0 +!BIOP/WR_AHMS=0.0 ! -!MVK/PAN2=0.0 +RETURN +END SUBROUTINE SUBJ6 ! -!MVK/PAN3=0.0 +SUBROUTINE SUBJ7 ! -!MVK/PAN4=0.0 +!Indices 36 a 40 ! -!MVK/PAN6=0.0 ! -!MVK/PAN7=0.0 +!PHO/O3=0.0 ! -!MVK/PAN8=0.0 +!PHO/H2O2=0.0 ! -!MVK/PN10=0.0 +!PHO/NO=0.0 ! -!MVK/RO2T=+K151*<RO29>+K157*<RO211> - PJAC(:,39,85)=+TPK%K151(:)*TPK%RO29(:)+TPK%K157(:)*TPK%RO211(:) +!PHO/NO2=-K083*<PHO> + PJAC(:,36,4)=-TPK%K083(:)*PCONC(:,36) ! -!MVK/RO21=0.0 +!PHO/NO3=+K075*<ARO> + PJAC(:,36,5)=+TPK%K075(:)*PCONC(:,21) ! -!MVK/RO25=0.0 +!PHO/N2O5=0.0 ! -!MCR/NO=+K153*<RO210>+K159*<RO212> - PJAC(:,40,1)=+TPK%K153(:)*TPK%RO210(:)+TPK%K159(:)*TPK%RO212(:) +!PHO/HONO=0.0 ! -!MCR/NO2=0.0 +!PHO/HNO3=0.0 ! -!MCR/O3=+0.17*K066*<ISOP>-K282*<MCR> - PJAC(:,40,3)=+0.17*TPK%K066(:)*PCONC(:,35)-TPK%K282(:)*PCONC(:,40) +!PHO/HNO4=0.0 ! -!MCR/HONO=0.0 +!PHO/NH3=0.0 ! -!MCR/HNO3=0.0 +!PHO/SO2=0.0 ! -!MCR/HNO4=0.0 +!PHO/SULF=0.0 ! -!MCR/N2O5=0.0 +!PHO/CO=0.0 ! -!MCR/NO3=-K275*<MCR> - PJAC(:,40,8)=-TPK%K275(:)*PCONC(:,40) +!PHO/OH=+0.00276*K061*<ARO> + PJAC(:,36,14)=+0.00276*TPK%K061(:)*PCONC(:,21) ! -!MCR/NH3=0.0 +!PHO/HO2=-K084*<PHO> + PJAC(:,36,15)=-TPK%K084(:)*PCONC(:,36) ! -!MCR/HO2=+K155*<RO210>+K161*<RO212> - PJAC(:,40,10)=+TPK%K155(:)*TPK%RO210(:)+TPK%K161(:)*TPK%RO212(:) +!PHO/CH4=0.0 ! -!MCR/CO=0.0 +!PHO/ETH=0.0 ! -!MCR/H2O2=0.0 +!PHO/ALKA=0.0 ! -!MCR/SO2=0.0 +!PHO/ALKE=0.0 ! -!MCR/H2SO4=0.0 +!PHO/BIO=0.0 ! -!MCR/OH=-K273*<MCR> - PJAC(:,40,15)=-TPK%K273(:)*PCONC(:,40) +!PHO/ARO=+0.00276*K061*<OH>+K075*<NO3> + PJAC(:,36,21)=+0.00276*TPK%K061(:)*PCONC(:,14)+TPK%K075(:)*PCONC(:,5) ! -!MCR/ETHE=0.0 +!PHO/HCHO=0.0 ! -!MCR/OLEL=0.0 +!PHO/ALD=0.0 ! -!MCR/OLEH=0.0 +!PHO/KET=0.0 ! -!MCR/ALKL=0.0 +!PHO/CARBO=0.0 ! -!MCR/ALKM=0.0 +!PHO/ONIT=0.0 ! -!MCR/ALKH=0.0 +!PHO/PAN=0.0 ! -!MCR/AROH=0.0 +!PHO/OP1=0.0 ! -!MCR/AROL=0.0 +!PHO/OP2=0.0 ! -!MCR/AROO=0.0 +!PHO/ORA1=0.0 ! -!MCR/ARAL=0.0 +!PHO/ORA2=0.0 ! -!MCR/ARAC=0.0 +!PHO/MO2=0.0 ! -!MCR/PAH=0.0 +!PHO/ALKAP=0.0 ! -!MCR/HCHO=0.0 +!PHO/ALKEP=0.0 ! -!MCR/ALD2=0.0 +!PHO/BIOP=0.0 ! -!MCR/KETL=0.0 +!PHO/PHO=-K083*<NO2>-K084*<HO2> + PJAC(:,36,36)=-TPK%K083(:)*PCONC(:,4)-TPK%K084(:)*PCONC(:,15) ! -!MCR/KETH=0.0 +!PHO/ADD=0.0 ! -!MCR/MEOH=0.0 +!PHO/AROP=0.0 ! -!MCR/ETOH=0.0 +!PHO/CARBOP=0.0 ! -!MCR/ALCH=0.0 +!PHO/OLN=0.0 ! -!MCR/ISOP=+0.17*K066*<O3> - PJAC(:,40,35)=+0.17*TPK%K066(:)*PCONC(:,3) +!PHO/XO2=0.0 ! -!MCR/BIOL=0.0 +!PHO/WC_O3=0.0 ! -!MCR/BIOH=0.0 +!PHO/WC_H2O2=0.0 ! -!MCR/MTBE=0.0 +!PHO/WC_NO=0.0 ! -!MCR/MVK=0.0 +!PHO/WC_NO2=0.0 ! -!MCR/MCR=-K273*<OH>-K275*<NO3>-K282*<O3>-K284*<O> - PJAC(:,40,40)=-TPK%K273(:)*PCONC(:,15)-TPK%K275(:)*PCONC(:,8)-TPK%K282(:)*PCON& -&C(:,3)-TPK%K284(:)*TPK%O(:) +!PHO/WC_NO3=0.0 ! -!MCR/MGLY=0.0 +!PHO/WC_N2O5=0.0 ! -!MCR/GLY=0.0 +!PHO/WC_HONO=0.0 ! -!MCR/ORA1=0.0 +!PHO/WC_HNO3=0.0 ! -!MCR/ORA2=0.0 +!PHO/WC_HNO4=0.0 ! -!MCR/ACID=0.0 +!PHO/WC_NH3=0.0 ! -!MCR/UR28=0.0 +!PHO/WC_OH=0.0 ! -!MCR/UR21=0.0 +!PHO/WC_HO2=0.0 ! -!MCR/URG2=0.0 +!PHO/WC_CO2=0.0 ! -!MCR/UR26=0.0 +!PHO/WC_SO2=0.0 ! -!MCR/RPG2=0.0 +!PHO/WC_SULF=0.0 ! -!MCR/RP18=0.0 +!PHO/WC_HCHO=0.0 ! -!MCR/RPG3=0.0 +!PHO/WC_ORA1=0.0 ! -!MCR/URG4=0.0 +!PHO/WC_ORA2=0.0 ! -!MCR/UR8=0.0 +!PHO/WC_MO2=0.0 ! -!MCR/UR17=0.0 +!PHO/WC_OP1=0.0 ! -!MCR/UR7=0.0 +!PHO/WC_ASO3=0.0 ! -!MCR/RPR3=0.0 +!PHO/WC_ASO4=0.0 ! -!MCR/URG6=0.0 +!PHO/WC_ASO5=0.0 ! -!MCR/UR22=0.0 +!PHO/WC_AHSO5=0.0 ! -!MCR/URG7=0.0 +!PHO/WC_AHMS=0.0 ! -!MCR/RPR4=0.0 +!PHO/WR_O3=0.0 ! -!MCR/RPR7=0.0 +!PHO/WR_H2O2=0.0 ! -!MCR/RPG7=0.0 +!PHO/WR_NO=0.0 ! -!MCR/URG8=0.0 +!PHO/WR_NO2=0.0 ! -!MCR/UR19=0.0 +!PHO/WR_NO3=0.0 ! -!MCR/URG9=0.0 +!PHO/WR_N2O5=0.0 ! -!MCR/AP7=0.0 +!PHO/WR_HONO=0.0 ! -!MCR/URG10=0.0 +!PHO/WR_HNO3=0.0 ! -!MCR/RPR1=0.0 +!PHO/WR_HNO4=0.0 ! -!MCR/RPR5=0.0 +!PHO/WR_NH3=0.0 ! -!MCR/RPR8=0.0 +!PHO/WR_OH=0.0 ! -!MCR/RP10=0.0 +!PHO/WR_HO2=0.0 ! -!MCR/RP11=0.0 +!PHO/WR_CO2=0.0 ! -!MCR/RP16=0.0 +!PHO/WR_SO2=0.0 ! -!MCR/RPRL=0.0 +!PHO/WR_SULF=0.0 ! -!MCR/APAN=0.0 +!PHO/WR_HCHO=0.0 ! -!MCR/PAN1=0.0 +!PHO/WR_ORA1=0.0 ! -!MCR/PAN2=0.0 +!PHO/WR_ORA2=0.0 ! -!MCR/PAN3=0.0 +!PHO/WR_MO2=0.0 ! -!MCR/PAN4=0.0 +!PHO/WR_OP1=0.0 ! -!MCR/PAN6=0.0 +!PHO/WR_ASO3=0.0 ! -!MCR/PAN7=0.0 +!PHO/WR_ASO4=0.0 ! -!MCR/PAN8=0.0 +!PHO/WR_ASO5=0.0 ! -!MCR/PN10=0.0 +!PHO/WR_AHSO5=0.0 ! -!MCR/RO2T=+K154*<RO210>+K160*<RO212> - PJAC(:,40,85)=+TPK%K154(:)*TPK%RO210(:)+TPK%K160(:)*TPK%RO212(:) +!PHO/WR_AHMS=0.0 ! -!MCR/RO21=0.0 +!ADD/O3=-K087*<ADD> + PJAC(:,37,1)=-TPK%K087(:)*PCONC(:,37) ! -!MCR/RO25=0.0 +!ADD/H2O2=0.0 ! -RETURN -END SUBROUTINE SUBJ7 +!ADD/NO=0.0 ! -SUBROUTINE SUBJ8 +!ADD/NO2=-K085*<ADD> + PJAC(:,37,4)=-TPK%K085(:)*PCONC(:,37) ! -!Indices 41 a 45 +!ADD/NO3=0.0 ! +!ADD/N2O5=0.0 ! -!MGLY/NO=+K234*<RO242>+K241*<RO243>+K248*<RO244>+K255*<RO245>+K262*<RO246>+K269 -!*<RO247>+K285*<RO249>+K291*<RO251>+K294*<RO252> - PJAC(:,41,1)=+TPK%K234(:)*TPK%RO242(:)+TPK%K241(:)*TPK%RO243(:)+TPK%K248(:)*TP& -&K%RO244(:)+TPK%K255(:)*TPK%RO245(:)+TPK%K262(:)*TPK%RO246(:)+TPK%K269(:)*TPK%R& -&O247(:)+TPK%K285(:)*TPK%RO249(:)+TPK%K291(:)*TPK%RO251(:)+TPK%K294(:)*TPK%RO25& -&2(:) +!ADD/HONO=0.0 ! -!MGLY/NO2=0.0 +!ADD/HNO3=0.0 ! -!MGLY/O3=+0.5*K281*<MVK>+0.59*K282*<MCR> - PJAC(:,41,3)=+0.5*TPK%K281(:)*PCONC(:,39)+0.59*TPK%K282(:)*PCONC(:,40) +!ADD/HNO4=0.0 ! -!MGLY/HONO=0.0 +!ADD/NH3=0.0 ! -!MGLY/HNO3=0.0 +!ADD/SO2=0.0 ! -!MGLY/HNO4=0.0 +!ADD/SULF=0.0 ! -!MGLY/N2O5=0.0 +!ADD/CO=0.0 ! -!MGLY/NO3=-K278*<MGLY> - PJAC(:,41,8)=-TPK%K278(:)*PCONC(:,41) +!ADD/OH=+0.93968*K061*<ARO> + PJAC(:,37,14)=+0.93968*TPK%K061(:)*PCONC(:,21) ! -!MGLY/NH3=0.0 +!ADD/HO2=0.0 ! -!MGLY/HO2=+K236*<RO242>+K243*<RO243>+K250*<RO244>+K257*<RO245>+K264*<RO246>+K27 -!1*<RO247>+K287*<RO249>+K292*<RO251>+K295*<RO252> - PJAC(:,41,10)=+TPK%K236(:)*TPK%RO242(:)+TPK%K243(:)*TPK%RO243(:)+TPK%K250(:)*T& -&PK%RO244(:)+TPK%K257(:)*TPK%RO245(:)+TPK%K264(:)*TPK%RO246(:)+TPK%K271(:)*TPK%& -&RO247(:)+TPK%K287(:)*TPK%RO249(:)+TPK%K292(:)*TPK%RO251(:)+TPK%K295(:)*TPK%RO2& -&52(:) +!ADD/CH4=0.0 ! -!MGLY/CO=0.0 +!ADD/ETH=0.0 ! -!MGLY/H2O2=0.0 +!ADD/ALKA=0.0 ! -!MGLY/SO2=0.0 +!ADD/ALKE=0.0 ! -!MGLY/H2SO4=0.0 +!ADD/BIO=0.0 ! -!MGLY/OH=-K274*<MGLY> - PJAC(:,41,15)=-TPK%K274(:)*PCONC(:,41) +!ADD/ARO=+0.93968*K061*<OH> + PJAC(:,37,21)=+0.93968*TPK%K061(:)*PCONC(:,14) ! -!MGLY/ETHE=0.0 +!ADD/HCHO=0.0 ! -!MGLY/OLEL=0.0 +!ADD/ALD=0.0 ! -!MGLY/OLEH=0.0 +!ADD/KET=0.0 ! -!MGLY/ALKL=0.0 +!ADD/CARBO=0.0 ! -!MGLY/ALKM=0.0 +!ADD/ONIT=0.0 ! -!MGLY/ALKH=0.0 +!ADD/PAN=0.0 ! -!MGLY/AROH=0.0 +!ADD/OP1=0.0 ! -!MGLY/AROL=0.0 +!ADD/OP2=0.0 ! -!MGLY/AROO=0.0 +!ADD/ORA1=0.0 ! -!MGLY/ARAL=0.0 +!ADD/ORA2=0.0 ! -!MGLY/ARAC=0.0 +!ADD/MO2=0.0 ! -!MGLY/PAH=0.0 +!ADD/ALKAP=0.0 ! -!MGLY/HCHO=0.0 +!ADD/ALKEP=0.0 ! -!MGLY/ALD2=0.0 +!ADD/BIOP=0.0 ! -!MGLY/KETL=0.0 +!ADD/PHO=0.0 ! -!MGLY/KETH=0.0 +!ADD/ADD=-K085*<NO2>-K086*<O2>-K087*<O3> + PJAC(:,37,37)=-TPK%K085(:)*PCONC(:,4)-TPK%K086(:)*TPK%O2(:)-TPK%K087(:)*PCONC(& +&:,1) ! -!MGLY/MEOH=0.0 +!ADD/AROP=0.0 ! -!MGLY/ETOH=0.0 +!ADD/CARBOP=0.0 ! -!MGLY/ALCH=0.0 +!ADD/OLN=0.0 ! -!MGLY/ISOP=0.0 +!ADD/XO2=0.0 ! -!MGLY/BIOL=0.0 +!ADD/WC_O3=0.0 ! -!MGLY/BIOH=0.0 +!ADD/WC_H2O2=0.0 ! -!MGLY/MTBE=0.0 +!ADD/WC_NO=0.0 ! -!MGLY/MVK=+0.5*K281*<O3> - PJAC(:,41,39)=+0.5*TPK%K281(:)*PCONC(:,3) +!ADD/WC_NO2=0.0 ! -!MGLY/MCR=+0.59*K282*<O3> - PJAC(:,41,40)=+0.59*TPK%K282(:)*PCONC(:,3) +!ADD/WC_NO3=0.0 ! -!MGLY/MGLY=-K274*<OH>-K276-K278*<NO3> - PJAC(:,41,41)=-TPK%K274(:)*PCONC(:,15)-TPK%K276(:)-TPK%K278(:)*PCONC(:,8) +!ADD/WC_N2O5=0.0 ! -!MGLY/GLY=0.0 +!ADD/WC_HONO=0.0 ! -!MGLY/ORA1=0.0 +!ADD/WC_HNO3=0.0 ! -!MGLY/ORA2=0.0 +!ADD/WC_HNO4=0.0 ! -!MGLY/ACID=0.0 +!ADD/WC_NH3=0.0 ! -!MGLY/UR28=0.0 +!ADD/WC_OH=0.0 ! -!MGLY/UR21=0.0 +!ADD/WC_HO2=0.0 ! -!MGLY/URG2=0.0 +!ADD/WC_CO2=0.0 ! -!MGLY/UR26=0.0 +!ADD/WC_SO2=0.0 ! -!MGLY/RPG2=0.0 +!ADD/WC_SULF=0.0 ! -!MGLY/RP18=0.0 +!ADD/WC_HCHO=0.0 ! -!MGLY/RPG3=0.0 +!ADD/WC_ORA1=0.0 ! -!MGLY/URG4=0.0 +!ADD/WC_ORA2=0.0 ! -!MGLY/UR8=0.0 +!ADD/WC_MO2=0.0 ! -!MGLY/UR17=0.0 +!ADD/WC_OP1=0.0 ! -!MGLY/UR7=0.0 +!ADD/WC_ASO3=0.0 ! -!MGLY/RPR3=0.0 +!ADD/WC_ASO4=0.0 ! -!MGLY/URG6=0.0 +!ADD/WC_ASO5=0.0 ! -!MGLY/UR22=0.0 +!ADD/WC_AHSO5=0.0 ! -!MGLY/URG7=0.0 +!ADD/WC_AHMS=0.0 ! -!MGLY/RPR4=0.0 +!ADD/WR_O3=0.0 ! -!MGLY/RPR7=0.0 +!ADD/WR_H2O2=0.0 ! -!MGLY/RPG7=0.0 +!ADD/WR_NO=0.0 ! -!MGLY/URG8=0.0 +!ADD/WR_NO2=0.0 ! -!MGLY/UR19=0.0 +!ADD/WR_NO3=0.0 ! -!MGLY/URG9=0.0 +!ADD/WR_N2O5=0.0 ! -!MGLY/AP7=0.0 +!ADD/WR_HONO=0.0 ! -!MGLY/URG10=0.0 +!ADD/WR_HNO3=0.0 ! -!MGLY/RPR1=0.0 +!ADD/WR_HNO4=0.0 ! -!MGLY/RPR5=0.0 +!ADD/WR_NH3=0.0 ! -!MGLY/RPR8=0.0 +!ADD/WR_OH=0.0 ! -!MGLY/RP10=0.0 +!ADD/WR_HO2=0.0 ! -!MGLY/RP11=0.0 +!ADD/WR_CO2=0.0 ! -!MGLY/RP16=0.0 +!ADD/WR_SO2=0.0 ! -!MGLY/RPRL=0.0 +!ADD/WR_SULF=0.0 ! -!MGLY/APAN=0.0 +!ADD/WR_HCHO=0.0 ! -!MGLY/PAN1=0.0 +!ADD/WR_ORA1=0.0 ! -!MGLY/PAN2=0.0 +!ADD/WR_ORA2=0.0 ! -!MGLY/PAN3=0.0 +!ADD/WR_MO2=0.0 ! -!MGLY/PAN4=0.0 +!ADD/WR_OP1=0.0 ! -!MGLY/PAN6=0.0 +!ADD/WR_ASO3=0.0 ! -!MGLY/PAN7=0.0 +!ADD/WR_ASO4=0.0 ! -!MGLY/PAN8=0.0 +!ADD/WR_ASO5=0.0 ! -!MGLY/PN10=0.0 +!ADD/WR_AHSO5=0.0 ! -!MGLY/RO2T=+K235*<RO242>+K242*<RO243>+K249*<RO244>+K256*<RO245>+K263*<RO246>+K2 -!70*<RO247>+K286*<RO249>+K293*<RO251>+K296*<RO252> - PJAC(:,41,85)=+TPK%K235(:)*TPK%RO242(:)+TPK%K242(:)*TPK%RO243(:)+TPK%K249(:)*T& -&PK%RO244(:)+TPK%K256(:)*TPK%RO245(:)+TPK%K263(:)*TPK%RO246(:)+TPK%K270(:)*TPK%& -&RO247(:)+TPK%K286(:)*TPK%RO249(:)+TPK%K293(:)*TPK%RO251(:)+TPK%K296(:)*TPK%RO2& -&52(:) +!ADD/WR_AHMS=0.0 ! -!MGLY/RO21=0.0 +!AROP/O3=0.0 ! -!MGLY/RO25=0.0 +!AROP/H2O2=0.0 ! -!GLY/NO=0.0 +!AROP/NO=-K094*<AROP> + PJAC(:,38,3)=-TPK%K094(:)*PCONC(:,38) ! -!GLY/NO2=0.0 +!AROP/NO2=0.0 ! -!GLY/O3=0.0 +!AROP/NO3=-K123*<AROP> + PJAC(:,38,5)=-TPK%K123(:)*PCONC(:,38) ! -!GLY/HONO=0.0 +!AROP/N2O5=0.0 ! -!GLY/HNO3=0.0 +!AROP/HONO=0.0 ! -!GLY/HNO4=0.0 +!AROP/HNO3=0.0 ! -!GLY/N2O5=0.0 +!AROP/HNO4=0.0 ! -!GLY/NO3=0.0 +!AROP/NH3=0.0 ! -!GLY/NH3=0.0 +!AROP/SO2=0.0 ! -!GLY/HO2=0.0 +!AROP/SULF=0.0 ! -!GLY/CO=0.0 +!AROP/CO=0.0 ! -!GLY/H2O2=0.0 +!AROP/OH=0.0 ! -!GLY/SO2=0.0 +!AROP/HO2=-K0101*<AROP> + PJAC(:,38,15)=-TPK%K0101(:)*PCONC(:,38) ! -!GLY/H2SO4=0.0 +!AROP/CH4=0.0 ! -!GLY/OH=0.0 +!AROP/ETH=0.0 ! -!GLY/ETHE=0.0 +!AROP/ALKA=0.0 ! -!GLY/OLEL=0.0 +!AROP/ALKE=0.0 ! -!GLY/OLEH=0.0 +!AROP/BIO=0.0 ! -!GLY/ALKL=0.0 +!AROP/ARO=0.0 ! -!GLY/ALKM=0.0 +!AROP/HCHO=0.0 ! -!GLY/ALKH=0.0 +!AROP/ALD=0.0 ! -!GLY/AROH=0.0 +!AROP/KET=0.0 ! -!GLY/AROL=0.0 +!AROP/CARBO=0.0 ! -!GLY/AROO=0.0 +!AROP/ONIT=0.0 ! -!GLY/ARAL=0.0 +!AROP/PAN=0.0 ! -!GLY/ARAC=0.0 +!AROP/OP1=0.0 ! -!GLY/PAH=0.0 +!AROP/OP2=0.0 ! -!GLY/HCHO=0.0 +!AROP/ORA1=0.0 ! -!GLY/ALD2=0.0 +!AROP/ORA2=0.0 ! -!GLY/KETL=0.0 +!AROP/MO2=-K108*<AROP> + PJAC(:,38,32)=-TPK%K108(:)*PCONC(:,38) ! -!GLY/KETH=0.0 +!AROP/ALKAP=0.0 ! -!GLY/MEOH=0.0 +!AROP/ALKEP=0.0 ! -!GLY/ETOH=0.0 +!AROP/BIOP=0.0 ! -!GLY/ALCH=0.0 +!AROP/PHO=0.0 ! -!GLY/ISOP=0.0 +!AROP/ADD=+0.98*K086*<O2> + PJAC(:,38,37)=+0.98*TPK%K086(:)*TPK%O2(:) ! -!GLY/BIOL=0.0 +!AROP/AROP=-K094*<NO>-K0101*<HO2>-K108*<MO2>-K114*<CARBOP>-K123*<NO3> + PJAC(:,38,38)=-TPK%K094(:)*PCONC(:,3)-TPK%K0101(:)*PCONC(:,15)-TPK%K108(:)*PCO& +&NC(:,32)-TPK%K114(:)*PCONC(:,39)-TPK%K123(:)*PCONC(:,5) ! -!GLY/BIOH=0.0 +!AROP/CARBOP=-K114*<AROP> + PJAC(:,38,39)=-TPK%K114(:)*PCONC(:,38) ! -!GLY/MTBE=0.0 +!AROP/OLN=0.0 ! -!GLY/MVK=0.0 +!AROP/XO2=0.0 ! -!GLY/MCR=0.0 +!AROP/WC_O3=0.0 ! -!GLY/MGLY=0.0 +!AROP/WC_H2O2=0.0 ! -!GLY/GLY=0.0 +!AROP/WC_NO=0.0 ! -!GLY/ORA1=0.0 +!AROP/WC_NO2=0.0 ! -!GLY/ORA2=0.0 +!AROP/WC_NO3=0.0 ! -!GLY/ACID=0.0 +!AROP/WC_N2O5=0.0 ! -!GLY/UR28=0.0 +!AROP/WC_HONO=0.0 ! -!GLY/UR21=0.0 +!AROP/WC_HNO3=0.0 ! -!GLY/URG2=0.0 +!AROP/WC_HNO4=0.0 ! -!GLY/UR26=0.0 +!AROP/WC_NH3=0.0 ! -!GLY/RPG2=0.0 +!AROP/WC_OH=0.0 ! -!GLY/RP18=0.0 +!AROP/WC_HO2=0.0 ! -!GLY/RPG3=0.0 +!AROP/WC_CO2=0.0 ! -!GLY/URG4=0.0 +!AROP/WC_SO2=0.0 ! -!GLY/UR8=0.0 +!AROP/WC_SULF=0.0 ! -!GLY/UR17=0.0 +!AROP/WC_HCHO=0.0 ! -!GLY/UR7=0.0 +!AROP/WC_ORA1=0.0 ! -!GLY/RPR3=0.0 +!AROP/WC_ORA2=0.0 ! -!GLY/URG6=0.0 +!AROP/WC_MO2=0.0 ! -!GLY/UR22=0.0 +!AROP/WC_OP1=0.0 ! -!GLY/URG7=0.0 +!AROP/WC_ASO3=0.0 ! -!GLY/RPR4=0.0 +!AROP/WC_ASO4=0.0 ! -!GLY/RPR7=0.0 +!AROP/WC_ASO5=0.0 ! -!GLY/RPG7=0.0 +!AROP/WC_AHSO5=0.0 ! -!GLY/URG8=0.0 +!AROP/WC_AHMS=0.0 ! -!GLY/UR19=0.0 +!AROP/WR_O3=0.0 ! -!GLY/URG9=0.0 +!AROP/WR_H2O2=0.0 ! -!GLY/AP7=0.0 +!AROP/WR_NO=0.0 ! -!GLY/URG10=0.0 +!AROP/WR_NO2=0.0 ! -!GLY/RPR1=0.0 +!AROP/WR_NO3=0.0 ! -!GLY/RPR5=0.0 +!AROP/WR_N2O5=0.0 ! -!GLY/RPR8=0.0 +!AROP/WR_HONO=0.0 ! -!GLY/RP10=0.0 +!AROP/WR_HNO3=0.0 ! -!GLY/RP11=0.0 +!AROP/WR_HNO4=0.0 ! -!GLY/RP16=0.0 +!AROP/WR_NH3=0.0 ! -!GLY/RPRL=0.0 +!AROP/WR_OH=0.0 ! -!GLY/APAN=0.0 +!AROP/WR_HO2=0.0 ! -!GLY/PAN1=0.0 +!AROP/WR_CO2=0.0 ! -!GLY/PAN2=0.0 +!AROP/WR_SO2=0.0 ! -!GLY/PAN3=0.0 +!AROP/WR_SULF=0.0 ! -!GLY/PAN4=0.0 +!AROP/WR_HCHO=0.0 ! -!GLY/PAN6=0.0 +!AROP/WR_ORA1=0.0 ! -!GLY/PAN7=0.0 +!AROP/WR_ORA2=0.0 ! -!GLY/PAN8=0.0 +!AROP/WR_MO2=0.0 ! -!GLY/PN10=0.0 +!AROP/WR_OP1=0.0 ! -!GLY/RO2T=0.0 +!AROP/WR_ASO3=0.0 ! -!GLY/RO21=0.0 +!AROP/WR_ASO4=0.0 ! -!GLY/RO25=0.0 +!AROP/WR_ASO5=0.0 ! -!ORA1/NO=0.0 +!AROP/WR_AHSO5=0.0 ! -!ORA1/NO2=0.0 +!AROP/WR_AHMS=0.0 ! -!ORA1/O3=+0.185*K051*<ETHE>+0.12*K056*<OLEL>+0.121*K066*<ISOP>+0.12*K281*<MVK>+ -!0.09*K282*<MCR> - PJAC(:,43,3)=+0.185*TPK%K051(:)*PCONC(:,16)+0.12*TPK%K056(:)*PCONC(:,17)+0.121& -&*TPK%K066(:)*PCONC(:,35)+0.12*TPK%K281(:)*PCONC(:,39)+0.09*TPK%K282(:)*PCONC(:& -&,40) +!CARBOP/O3=+0.05705*K079*<ALKE>+0.17000*K080*<BIO>+0.27460*K081*<CARBO>+0.70000 +!*K082*<PAN> + PJAC(:,39,1)=+0.05705*TPK%K079(:)*PCONC(:,19)+0.17000*TPK%K080(:)*PCONC(:,20)+& +&0.27460*TPK%K081(:)*PCONC(:,25)+0.70000*TPK%K082(:)*PCONC(:,27) ! -!ORA1/HONO=0.0 +!CARBOP/H2O2=0.0 ! -!ORA1/HNO3=0.0 +!CARBOP/NO=+0.09532*K095*<CARBOP>-K095*<CARBOP> + PJAC(:,39,3)=+0.09532*TPK%K095(:)*PCONC(:,39)-TPK%K095(:)*PCONC(:,39) ! -!ORA1/HNO4=0.0 +!CARBOP/NO2=-K088*<CARBOP> + PJAC(:,39,4)=-TPK%K088(:)*PCONC(:,39) ! -!ORA1/N2O5=0.0 +!CARBOP/NO3=+1.00000*K073*<ALD>+0.38881*K074*<CARBO>+0.03175*K124*<CARBOP>-K124 +!*<CARBOP> + PJAC(:,39,5)=+1.00000*TPK%K073(:)*PCONC(:,23)+0.38881*TPK%K074(:)*PCONC(:,25)+& +&0.03175*TPK%K124(:)*PCONC(:,39)-TPK%K124(:)*PCONC(:,39) ! -!ORA1/NO3=0.0 +!CARBOP/N2O5=0.0 ! -!ORA1/NH3=0.0 +!CARBOP/HONO=0.0 ! -!ORA1/HO2=0.0 +!CARBOP/HNO3=0.0 ! -!ORA1/CO=0.0 +!CARBOP/HNO4=0.0 ! -!ORA1/H2O2=0.0 +!CARBOP/NH3=0.0 ! -!ORA1/SO2=0.0 +!CARBOP/SO2=0.0 ! -!ORA1/H2SO4=0.0 +!CARBOP/SULF=0.0 ! -!ORA1/OH=-K347*<ORA1> - PJAC(:,43,15)=-TPK%K347(:)*PCONC(:,43) +!CARBOP/CO=0.0 ! -!ORA1/ETHE=+0.185*K051*<O3> - PJAC(:,43,16)=+0.185*TPK%K051(:)*PCONC(:,3) +!CARBOP/OH=+1.00000*K063*<ALD>+1.00000*K064*<KET>+0.51419*K065*<CARBO>+0.05413* +!K069*<OP2> + PJAC(:,39,14)=+1.00000*TPK%K063(:)*PCONC(:,23)+1.00000*TPK%K064(:)*PCONC(:,24)& +&+0.51419*TPK%K065(:)*PCONC(:,25)+0.05413*TPK%K069(:)*PCONC(:,29) ! -!ORA1/OLEL=+0.12*K056*<O3> - PJAC(:,43,17)=+0.12*TPK%K056(:)*PCONC(:,3) +!CARBOP/HO2=-K0102*<CARBOP> + PJAC(:,39,15)=-TPK%K0102(:)*PCONC(:,39) ! -!ORA1/OLEH=0.0 +!CARBOP/CH4=0.0 ! -!ORA1/ALKL=0.0 +!CARBOP/ETH=0.0 ! -!ORA1/ALKM=0.0 +!CARBOP/ALKA=0.0 ! -!ORA1/ALKH=0.0 +!CARBOP/ALKE=+0.05705*K079*<O3> + PJAC(:,39,19)=+0.05705*TPK%K079(:)*PCONC(:,1) ! -!ORA1/AROH=0.0 +!CARBOP/BIO=+0.17000*K080*<O3> + PJAC(:,39,20)=+0.17000*TPK%K080(:)*PCONC(:,1) ! -!ORA1/AROL=0.0 +!CARBOP/ARO=0.0 ! -!ORA1/AROO=0.0 +!CARBOP/HCHO=0.0 ! -!ORA1/ARAL=0.0 +!CARBOP/ALD=+1.00000*K063*<OH>+1.00000*K073*<NO3> + PJAC(:,39,23)=+1.00000*TPK%K063(:)*PCONC(:,14)+1.00000*TPK%K073(:)*PCONC(:,5) ! -!ORA1/ARAC=0.0 +!CARBOP/KET=+1.00000*K015+1.00000*K064*<OH> + PJAC(:,39,24)=+1.00000*TPK%K015(:)+1.00000*TPK%K064(:)*PCONC(:,14) ! -!ORA1/PAH=0.0 +!CARBOP/CARBO=+0.69622*K016+0.51419*K065*<OH>+0.38881*K074*<NO3>+0.27460*K081*< +!O3> + PJAC(:,39,25)=+0.69622*TPK%K016(:)+0.51419*TPK%K065(:)*PCONC(:,14)+0.38881*TPK& +&%K074(:)*PCONC(:,5)+0.27460*TPK%K081(:)*PCONC(:,1) ! -!ORA1/HCHO=0.0 +!CARBOP/ONIT=0.0 ! -!ORA1/ALD2=0.0 +!CARBOP/PAN=+0.70000*K082*<O3>+1.00000*K089 + PJAC(:,39,27)=+0.70000*TPK%K082(:)*PCONC(:,1)+1.00000*TPK%K089(:) ! -!ORA1/KETL=0.0 +!CARBOP/OP1=0.0 ! -!ORA1/KETH=0.0 +!CARBOP/OP2=+0.05413*K069*<OH> + PJAC(:,39,29)=+0.05413*TPK%K069(:)*PCONC(:,14) ! -!ORA1/MEOH=0.0 +!CARBOP/ORA1=0.0 ! -!ORA1/ETOH=0.0 +!CARBOP/ORA2=0.0 ! -!ORA1/ALCH=0.0 +!CARBOP/MO2=+0.05954*K109*<CARBOP>-K109*<CARBOP> + PJAC(:,39,32)=+0.05954*TPK%K109(:)*PCONC(:,39)-TPK%K109(:)*PCONC(:,39) ! -!ORA1/ISOP=+0.121*K066*<O3> - PJAC(:,43,35)=+0.121*TPK%K066(:)*PCONC(:,3) +!CARBOP/ALKAP=-K111*<CARBOP> + PJAC(:,39,33)=-TPK%K111(:)*PCONC(:,39) ! -!ORA1/BIOL=0.0 +!CARBOP/ALKEP=-K112*<CARBOP> + PJAC(:,39,34)=-TPK%K112(:)*PCONC(:,39) ! -!ORA1/BIOH=0.0 +!CARBOP/BIOP=-K113*<CARBOP> + PJAC(:,39,35)=-TPK%K113(:)*PCONC(:,39) ! -!ORA1/MTBE=0.0 +!CARBOP/PHO=0.0 ! -!ORA1/MVK=+0.12*K281*<O3> - PJAC(:,43,39)=+0.12*TPK%K281(:)*PCONC(:,3) +!CARBOP/ADD=0.0 ! -!ORA1/MCR=+0.09*K282*<O3> - PJAC(:,43,40)=+0.09*TPK%K282(:)*PCONC(:,3) +!CARBOP/AROP=-K114*<CARBOP> + PJAC(:,39,38)=-TPK%K114(:)*PCONC(:,39) ! -!ORA1/MGLY=0.0 +!CARBOP/CARBOP=-K088*<NO2>+0.09532*K095*<NO>-K095*<NO>-K0102*<HO2>+0.05954*K109 +!*<MO2>-K109*<MO2>-K111*<ALKAP>-K112*<ALKEP>-K113*<BIOP>-K114*<AROP>+0.05821*K1 +!15*<CARBOP>+0.05821*K115*<CARBOP>-K115*<CARBOP>-K115*<CARBOP>-K115*<CARBOP>-K1 +!15*<CARBOP>-K116*<OLN>+0.03175*K124*<NO3>-K124*<NO3>-K128*<XO2> + PJAC(:,39,39)=-TPK%K088(:)*PCONC(:,4)+0.09532*TPK%K095(:)*PCONC(:,3)-TPK%K095(& +&:)*PCONC(:,3)-TPK%K0102(:)*PCONC(:,15)+0.05954*TPK%K109(:)*PCONC(:,32)-TPK%K10& +&9(:)*PCONC(:,32)-TPK%K111(:)*PCONC(:,33)-TPK%K112(:)*PCONC(:,34)-TPK%K113(:)*P& +&CONC(:,35)-TPK%K114(:)*PCONC(:,38)+0.05821*TPK%K115(:)*PCONC(:,39)+0.05821*TPK& +&%K115(:)*PCONC(:,39)-TPK%K115(:)*PCONC(:,39)-TPK%K115(:)*PCONC(:,39)-TPK%K115(& +&:)*PCONC(:,39)-TPK%K115(:)*PCONC(:,39)-TPK%K116(:)*PCONC(:,40)+0.03175*TPK%K12& +&4(:)*PCONC(:,5)-TPK%K124(:)*PCONC(:,5)-TPK%K128(:)*PCONC(:,41) ! -!ORA1/GLY=0.0 +!CARBOP/OLN=-K116*<CARBOP> + PJAC(:,39,40)=-TPK%K116(:)*PCONC(:,39) ! -!ORA1/ORA1=-K347*<OH> - PJAC(:,43,43)=-TPK%K347(:)*PCONC(:,15) +!CARBOP/XO2=-K128*<CARBOP> + PJAC(:,39,41)=-TPK%K128(:)*PCONC(:,39) ! -!ORA1/ORA2=0.0 +!CARBOP/WC_O3=0.0 ! -!ORA1/ACID=0.0 +!CARBOP/WC_H2O2=0.0 ! -!ORA1/UR28=0.0 +!CARBOP/WC_NO=0.0 ! -!ORA1/UR21=0.0 +!CARBOP/WC_NO2=0.0 ! -!ORA1/URG2=0.0 +!CARBOP/WC_NO3=0.0 ! -!ORA1/UR26=0.0 +!CARBOP/WC_N2O5=0.0 ! -!ORA1/RPG2=0.0 +!CARBOP/WC_HONO=0.0 ! -!ORA1/RP18=0.0 +!CARBOP/WC_HNO3=0.0 ! -!ORA1/RPG3=0.0 +!CARBOP/WC_HNO4=0.0 ! -!ORA1/URG4=0.0 +!CARBOP/WC_NH3=0.0 ! -!ORA1/UR8=0.0 +!CARBOP/WC_OH=0.0 ! -!ORA1/UR17=0.0 +!CARBOP/WC_HO2=0.0 ! -!ORA1/UR7=0.0 +!CARBOP/WC_CO2=0.0 ! -!ORA1/RPR3=0.0 +!CARBOP/WC_SO2=0.0 ! -!ORA1/URG6=0.0 +!CARBOP/WC_SULF=0.0 ! -!ORA1/UR22=0.0 +!CARBOP/WC_HCHO=0.0 ! -!ORA1/URG7=0.0 +!CARBOP/WC_ORA1=0.0 ! -!ORA1/RPR4=0.0 +!CARBOP/WC_ORA2=0.0 ! -!ORA1/RPR7=0.0 +!CARBOP/WC_MO2=0.0 ! -!ORA1/RPG7=0.0 +!CARBOP/WC_OP1=0.0 ! -!ORA1/URG8=0.0 +!CARBOP/WC_ASO3=0.0 ! -!ORA1/UR19=0.0 +!CARBOP/WC_ASO4=0.0 ! -!ORA1/URG9=0.0 +!CARBOP/WC_ASO5=0.0 ! -!ORA1/AP7=0.0 +!CARBOP/WC_AHSO5=0.0 ! -!ORA1/URG10=0.0 +!CARBOP/WC_AHMS=0.0 ! -!ORA1/RPR1=0.0 +!CARBOP/WR_O3=0.0 ! -!ORA1/RPR5=0.0 +!CARBOP/WR_H2O2=0.0 ! -!ORA1/RPR8=0.0 +!CARBOP/WR_NO=0.0 ! -!ORA1/RP10=0.0 +!CARBOP/WR_NO2=0.0 ! -!ORA1/RP11=0.0 +!CARBOP/WR_NO3=0.0 ! -!ORA1/RP16=0.0 +!CARBOP/WR_N2O5=0.0 ! -!ORA1/RPRL=0.0 +!CARBOP/WR_HONO=0.0 ! -!ORA1/APAN=0.0 +!CARBOP/WR_HNO3=0.0 ! -!ORA1/PAN1=0.0 +!CARBOP/WR_HNO4=0.0 ! -!ORA1/PAN2=0.0 +!CARBOP/WR_NH3=0.0 ! -!ORA1/PAN3=0.0 +!CARBOP/WR_OH=0.0 ! -!ORA1/PAN4=0.0 +!CARBOP/WR_HO2=0.0 ! -!ORA1/PAN6=0.0 +!CARBOP/WR_CO2=0.0 ! -!ORA1/PAN7=0.0 +!CARBOP/WR_SO2=0.0 ! -!ORA1/PAN8=0.0 +!CARBOP/WR_SULF=0.0 ! -!ORA1/PN10=0.0 +!CARBOP/WR_HCHO=0.0 ! -!ORA1/RO2T=0.0 +!CARBOP/WR_ORA1=0.0 ! -!ORA1/RO21=0.0 +!CARBOP/WR_ORA2=0.0 ! -!ORA1/RO25=0.0 +!CARBOP/WR_MO2=0.0 ! -!ORA2/NO=0.0 +!CARBOP/WR_OP1=0.0 ! -!ORA2/NO2=0.0 +!CARBOP/WR_ASO3=0.0 ! -!ORA2/O3=+0.12*K056*<OLEL> - PJAC(:,44,3)=+0.12*TPK%K056(:)*PCONC(:,17) +!CARBOP/WR_ASO4=0.0 ! -!ORA2/HONO=0.0 +!CARBOP/WR_ASO5=0.0 ! -!ORA2/HNO3=0.0 +!CARBOP/WR_AHSO5=0.0 ! -!ORA2/HNO4=0.0 +!CARBOP/WR_AHMS=0.0 ! -!ORA2/N2O5=0.0 +!OLN/O3=0.0 ! -!ORA2/NO3=0.0 +!OLN/H2O2=0.0 ! -!ORA2/NH3=0.0 +!OLN/NO=-K096*<OLN> + PJAC(:,40,3)=-TPK%K096(:)*PCONC(:,40) ! -!ORA2/HO2=+K142*<RO26>+K148*<RO28>+0.5*K166*<RO239>+0.5*K289*<RO250> - PJAC(:,44,10)=+TPK%K142(:)*TPK%RO26(:)+TPK%K148(:)*TPK%RO28(:)+0.5*TPK%K166(:)& -&*TPK%RO239(:)+0.5*TPK%K289(:)*TPK%RO250(:) +!OLN/NO2=0.0 ! -!ORA2/CO=0.0 +!OLN/NO3=+0.00000*K074*<CARBO>+0.93768*K076*<ALKE>+1.00000*K077*<BIO>-K125*<OLN +!> + PJAC(:,40,5)=+0.00000*TPK%K074(:)*PCONC(:,25)+0.93768*TPK%K076(:)*PCONC(:,19)+& +&1.00000*TPK%K077(:)*PCONC(:,20)-TPK%K125(:)*PCONC(:,40) ! -!ORA2/H2O2=0.0 +!OLN/N2O5=0.0 ! -!ORA2/SO2=0.0 +!OLN/HONO=0.0 ! -!ORA2/H2SO4=0.0 +!OLN/HNO3=0.0 ! -!ORA2/OH=-K348*<ORA2> - PJAC(:,44,15)=-TPK%K348(:)*PCONC(:,44) +!OLN/HNO4=0.0 ! -!ORA2/ETHE=0.0 +!OLN/NH3=0.0 ! -!ORA2/OLEL=+0.12*K056*<O3> - PJAC(:,44,17)=+0.12*TPK%K056(:)*PCONC(:,3) +!OLN/SO2=0.0 ! -!ORA2/OLEH=0.0 +!OLN/SULF=0.0 ! -!ORA2/ALKL=0.0 +!OLN/CO=0.0 ! -!ORA2/ALKM=0.0 +!OLN/OH=0.0 ! -!ORA2/ALKH=0.0 +!OLN/HO2=-K103*<OLN> + PJAC(:,40,15)=-TPK%K103(:)*PCONC(:,40) ! -!ORA2/AROH=0.0 +!OLN/CH4=0.0 ! -!ORA2/AROL=0.0 +!OLN/ETH=0.0 ! -!ORA2/AROO=0.0 +!OLN/ALKA=0.0 ! -!ORA2/ARAL=0.0 +!OLN/ALKE=+0.93768*K076*<NO3> + PJAC(:,40,19)=+0.93768*TPK%K076(:)*PCONC(:,5) ! -!ORA2/ARAC=0.0 +!OLN/BIO=+1.00000*K077*<NO3> + PJAC(:,40,20)=+1.00000*TPK%K077(:)*PCONC(:,5) ! -!ORA2/PAH=0.0 +!OLN/ARO=0.0 ! -!ORA2/HCHO=0.0 +!OLN/HCHO=0.0 ! -!ORA2/ALD2=0.0 +!OLN/ALD=0.0 ! -!ORA2/KETL=0.0 +!OLN/KET=0.0 ! -!ORA2/KETH=0.0 +!OLN/CARBO=+0.00000*K074*<NO3> + PJAC(:,40,25)=+0.00000*TPK%K074(:)*PCONC(:,5) ! -!ORA2/MEOH=0.0 +!OLN/ONIT=0.0 ! -!ORA2/ETOH=0.0 +!OLN/PAN=0.0 ! -!ORA2/ALCH=0.0 +!OLN/OP1=0.0 ! -!ORA2/ISOP=0.0 +!OLN/OP2=0.0 ! -!ORA2/BIOL=0.0 +!OLN/ORA1=0.0 ! -!ORA2/BIOH=0.0 +!OLN/ORA2=0.0 ! -!ORA2/MTBE=0.0 +!OLN/MO2=-K110*<OLN> + PJAC(:,40,32)=-TPK%K110(:)*PCONC(:,40) ! -!ORA2/MVK=0.0 +!OLN/ALKAP=0.0 ! -!ORA2/MCR=0.0 +!OLN/ALKEP=0.0 ! -!ORA2/MGLY=0.0 +!OLN/BIOP=0.0 ! -!ORA2/GLY=0.0 +!OLN/PHO=0.0 ! -!ORA2/ORA1=0.0 +!OLN/ADD=0.0 ! -!ORA2/ORA2=-K348*<OH> - PJAC(:,44,44)=-TPK%K348(:)*PCONC(:,15) +!OLN/AROP=0.0 ! -!ORA2/ACID=0.0 +!OLN/CARBOP=-K116*<OLN> + PJAC(:,40,39)=-TPK%K116(:)*PCONC(:,40) ! -!ORA2/UR28=0.0 +!OLN/OLN=-K096*<NO>-K103*<HO2>-K110*<MO2>-K116*<CARBOP>-K117*<OLN>-K117*<OLN>-K +!117*<OLN>-K117*<OLN>-K118*<OLN>-K118*<OLN>-K118*<OLN>-K118*<OLN>-K125*<NO3> + PJAC(:,40,40)=-TPK%K096(:)*PCONC(:,3)-TPK%K103(:)*PCONC(:,15)-TPK%K110(:)*PCON& +&C(:,32)-TPK%K116(:)*PCONC(:,39)-TPK%K117(:)*PCONC(:,40)-TPK%K117(:)*PCONC(:,40& +&)-TPK%K117(:)*PCONC(:,40)-TPK%K117(:)*PCONC(:,40)-TPK%K118(:)*PCONC(:,40)-TPK%& +&K118(:)*PCONC(:,40)-TPK%K118(:)*PCONC(:,40)-TPK%K118(:)*PCONC(:,40)-TPK%K125(:& +&)*PCONC(:,5) ! -!ORA2/UR21=0.0 +!OLN/XO2=0.0 ! -!ORA2/URG2=0.0 +!OLN/WC_O3=0.0 ! -!ORA2/UR26=0.0 +!OLN/WC_H2O2=0.0 ! -!ORA2/RPG2=0.0 +!OLN/WC_NO=0.0 ! -!ORA2/RP18=0.0 +!OLN/WC_NO2=0.0 ! -!ORA2/RPG3=0.0 +!OLN/WC_NO3=0.0 ! -!ORA2/URG4=0.0 +!OLN/WC_N2O5=0.0 ! -!ORA2/UR8=0.0 +!OLN/WC_HONO=0.0 ! -!ORA2/UR17=0.0 +!OLN/WC_HNO3=0.0 ! -!ORA2/UR7=0.0 +!OLN/WC_HNO4=0.0 ! -!ORA2/RPR3=0.0 +!OLN/WC_NH3=0.0 ! -!ORA2/URG6=0.0 +!OLN/WC_OH=0.0 ! -!ORA2/UR22=0.0 +!OLN/WC_HO2=0.0 ! -!ORA2/URG7=0.0 +!OLN/WC_CO2=0.0 ! -!ORA2/RPR4=0.0 +!OLN/WC_SO2=0.0 ! -!ORA2/RPR7=0.0 +!OLN/WC_SULF=0.0 ! -!ORA2/RPG7=0.0 +!OLN/WC_HCHO=0.0 ! -!ORA2/URG8=0.0 +!OLN/WC_ORA1=0.0 ! -!ORA2/UR19=0.0 +!OLN/WC_ORA2=0.0 ! -!ORA2/URG9=0.0 +!OLN/WC_MO2=0.0 ! -!ORA2/AP7=0.0 +!OLN/WC_OP1=0.0 ! -!ORA2/URG10=0.0 +!OLN/WC_ASO3=0.0 ! -!ORA2/RPR1=0.0 +!OLN/WC_ASO4=0.0 ! -!ORA2/RPR5=0.0 +!OLN/WC_ASO5=0.0 ! -!ORA2/RPR8=0.0 +!OLN/WC_AHSO5=0.0 ! -!ORA2/RP10=0.0 +!OLN/WC_AHMS=0.0 ! -!ORA2/RP11=0.0 +!OLN/WR_O3=0.0 ! -!ORA2/RP16=0.0 +!OLN/WR_H2O2=0.0 ! -!ORA2/RPRL=0.0 +!OLN/WR_NO=0.0 ! -!ORA2/APAN=0.0 +!OLN/WR_NO2=0.0 ! -!ORA2/PAN1=0.0 +!OLN/WR_NO3=0.0 ! -!ORA2/PAN2=0.0 +!OLN/WR_N2O5=0.0 ! -!ORA2/PAN3=0.0 +!OLN/WR_HONO=0.0 ! -!ORA2/PAN4=0.0 +!OLN/WR_HNO3=0.0 ! -!ORA2/PAN6=0.0 +!OLN/WR_HNO4=0.0 ! -!ORA2/PAN7=0.0 +!OLN/WR_NH3=0.0 ! -!ORA2/PAN8=0.0 +!OLN/WR_OH=0.0 ! -!ORA2/PN10=0.0 +!OLN/WR_HO2=0.0 ! -!ORA2/RO2T=0.0 +!OLN/WR_CO2=0.0 ! -!ORA2/RO21=0.0 +!OLN/WR_SO2=0.0 ! -!ORA2/RO25=0.0 +!OLN/WR_SULF=0.0 ! -!ACID/NO=0.0 +!OLN/WR_HCHO=0.0 ! -!ACID/NO2=0.0 +!OLN/WR_ORA1=0.0 ! -!ACID/O3=+0.12*K076*<OLEH> - PJAC(:,45,3)=+0.12*TPK%K076(:)*PCONC(:,18) +!OLN/WR_ORA2=0.0 ! -!ACID/HONO=0.0 +!OLN/WR_MO2=0.0 ! -!ACID/HNO3=0.0 +!OLN/WR_OP1=0.0 ! -!ACID/HNO4=0.0 +!OLN/WR_ASO3=0.0 ! -!ACID/N2O5=0.0 +!OLN/WR_ASO4=0.0 ! -!ACID/NO3=0.0 +!OLN/WR_ASO5=0.0 ! -!ACID/NH3=0.0 +!OLN/WR_AHSO5=0.0 ! -!ACID/HO2=+K142*<RO26>+K310*<RO255> - PJAC(:,45,10)=+TPK%K142(:)*TPK%RO26(:)+TPK%K310(:)*TPK%RO255(:) +!OLN/WR_AHMS=0.0 ! -!ACID/CO=0.0 +RETURN +END SUBROUTINE SUBJ7 ! -!ACID/H2O2=0.0 +SUBROUTINE SUBJ8 ! -!ACID/SO2=0.0 +!Indices 41 a 45 ! -!ACID/H2SO4=0.0 ! -!ACID/OH=-K349*<ACID> - PJAC(:,45,15)=-TPK%K349(:)*PCONC(:,45) +!XO2/O3=+0.00000*K079*<ALKE>+0.13000*K080*<BIO> + PJAC(:,41,1)=+0.00000*TPK%K079(:)*PCONC(:,19)+0.13000*TPK%K080(:)*PCONC(:,20) ! -!ACID/ETHE=0.0 +!XO2/H2O2=0.0 ! -!ACID/OLEL=0.0 +!XO2/NO=+0.13007*K091*<ALKAP>+0.02563*K095*<CARBOP>-K130*<XO2> + PJAC(:,41,3)=+0.13007*TPK%K091(:)*PCONC(:,33)+0.02563*TPK%K095(:)*PCONC(:,39)-& +&TPK%K130(:)*PCONC(:,41) ! -!ACID/OLEH=+0.12*K076*<O3> - PJAC(:,45,18)=+0.12*TPK%K076(:)*PCONC(:,3) +!XO2/NO2=0.0 ! -!ACID/ALKL=0.0 +!XO2/NO3=+0.10530*K074*<CARBO>+K078*<PAN>+0.16271*K120*<ALKAP>+0.01021*K124*<CA +!RBOP>-K131*<XO2> + PJAC(:,41,5)=+0.10530*TPK%K074(:)*PCONC(:,25)+TPK%K078(:)*PCONC(:,27)+0.16271*& +&TPK%K120(:)*PCONC(:,33)+0.01021*TPK%K124(:)*PCONC(:,39)-TPK%K131(:)*PCONC(:,41& +&) ! -!ACID/ALKM=0.0 +!XO2/N2O5=0.0 ! -!ACID/ALKH=0.0 +!XO2/HONO=0.0 ! -!ACID/AROH=0.0 +!XO2/HNO3=0.0 ! -!ACID/AROL=0.0 +!XO2/HNO4=0.0 ! -!ACID/AROO=0.0 +!XO2/NH3=0.0 ! -!ACID/ARAL=0.0 +!XO2/SO2=0.0 ! -!ACID/ARAC=0.0 +!XO2/SULF=0.0 ! -!ACID/PAH=0.0 +!XO2/CO=0.0 ! -!ACID/HCHO=0.0 +!XO2/OH=+0.10318*K061*<ARO>+0.10162*K065*<CARBO>+0.09333*K069*<OP2>+K070*<PAN> + PJAC(:,41,14)=+0.10318*TPK%K061(:)*PCONC(:,21)+0.10162*TPK%K065(:)*PCONC(:,25)& +&+0.09333*TPK%K069(:)*PCONC(:,29)+TPK%K070(:)*PCONC(:,27) ! -!ACID/ALD2=0.0 +!XO2/HO2=-K126*<XO2> + PJAC(:,41,15)=-TPK%K126(:)*PCONC(:,41) ! -!ACID/KETL=0.0 +!XO2/CH4=0.0 ! -!ACID/KETH=0.0 +!XO2/ETH=0.0 ! -!ACID/MEOH=0.0 +!XO2/ALKA=0.0 ! -!ACID/ETOH=0.0 +!XO2/ALKE=+0.00000*K079*<O3> + PJAC(:,41,19)=+0.00000*TPK%K079(:)*PCONC(:,1) ! -!ACID/ALCH=0.0 +!XO2/BIO=+0.15*K054*<O3P>+0.13000*K080*<O3> + PJAC(:,41,20)=+0.15*TPK%K054(:)*TPK%O3P(:)+0.13000*TPK%K080(:)*PCONC(:,1) ! -!ACID/ISOP=0.0 +!XO2/ARO=+0.10318*K061*<OH> + PJAC(:,41,21)=+0.10318*TPK%K061(:)*PCONC(:,14) ! -!ACID/BIOL=0.0 +!XO2/HCHO=0.0 ! -!ACID/BIOH=0.0 +!XO2/ALD=0.0 ! -!ACID/MTBE=0.0 +!XO2/KET=0.0 ! -!ACID/MVK=0.0 +!XO2/CARBO=+0.10162*K065*<OH>+0.10530*K074*<NO3> + PJAC(:,41,25)=+0.10162*TPK%K065(:)*PCONC(:,14)+0.10530*TPK%K074(:)*PCONC(:,5) ! -!ACID/MCR=0.0 +!XO2/ONIT=0.0 ! -!ACID/MGLY=0.0 +!XO2/PAN=+K070*<OH>+K078*<NO3> + PJAC(:,41,27)=+TPK%K070(:)*PCONC(:,14)+TPK%K078(:)*PCONC(:,5) ! -!ACID/GLY=0.0 +!XO2/OP1=0.0 ! -!ACID/ORA1=0.0 +!XO2/OP2=+0.09333*K069*<OH> + PJAC(:,41,29)=+0.09333*TPK%K069(:)*PCONC(:,14) ! -!ACID/ORA2=0.0 +!XO2/ORA1=0.0 ! -!ACID/ACID=-K349*<OH> - PJAC(:,45,45)=-TPK%K349(:)*PCONC(:,15) +!XO2/ORA2=0.0 ! -!ACID/UR28=0.0 +!XO2/MO2=+0.13370*K105*<ALKAP>+0.02212*K109*<CARBOP>-K127*<XO2> + PJAC(:,41,32)=+0.13370*TPK%K105(:)*PCONC(:,33)+0.02212*TPK%K109(:)*PCONC(:,39)& +&-TPK%K127(:)*PCONC(:,41) ! -!ACID/UR21=0.0 +!XO2/ALKAP=+0.13007*K091*<NO>+0.13370*K105*<MO2>+0.11306*K111*<CARBOP>+0.16271* +!K120*<NO3> + PJAC(:,41,33)=+0.13007*TPK%K091(:)*PCONC(:,3)+0.13370*TPK%K105(:)*PCONC(:,32)+& +&0.11306*TPK%K111(:)*PCONC(:,39)+0.16271*TPK%K120(:)*PCONC(:,5) ! -!ACID/URG2=0.0 +!XO2/ALKEP=0.0 ! -!ACID/UR26=0.0 +!XO2/BIOP=0.0 ! -!ACID/RPG2=0.0 +!XO2/PHO=0.0 ! -!ACID/RP18=0.0 +!XO2/ADD=0.0 ! -!ACID/RPG3=0.0 +!XO2/AROP=0.0 ! -!ACID/URG4=0.0 +!XO2/CARBOP=+0.02563*K095*<NO>+0.02212*K109*<MO2>+0.11306*K111*<ALKAP>+0.01593* +!K115*<CARBOP>+0.01593*K115*<CARBOP>+0.01021*K124*<NO3>-K128*<XO2> + PJAC(:,41,39)=+0.02563*TPK%K095(:)*PCONC(:,3)+0.02212*TPK%K109(:)*PCONC(:,32)+& +&0.11306*TPK%K111(:)*PCONC(:,33)+0.01593*TPK%K115(:)*PCONC(:,39)+0.01593*TPK%K1& +&15(:)*PCONC(:,39)+0.01021*TPK%K124(:)*PCONC(:,5)-TPK%K128(:)*PCONC(:,41) ! -!ACID/UR8=0.0 +!XO2/OLN=0.0 ! -!ACID/UR17=0.0 +!XO2/XO2=-K126*<HO2>-K127*<MO2>-K128*<CARBOP>-K129*<XO2>-K129*<XO2>-K129*<XO2>- +!K129*<XO2>-K130*<NO>-K131*<NO3> + PJAC(:,41,41)=-TPK%K126(:)*PCONC(:,15)-TPK%K127(:)*PCONC(:,32)-TPK%K128(:)*PCO& +&NC(:,39)-TPK%K129(:)*PCONC(:,41)-TPK%K129(:)*PCONC(:,41)-TPK%K129(:)*PCONC(:,4& +&1)-TPK%K129(:)*PCONC(:,41)-TPK%K130(:)*PCONC(:,3)-TPK%K131(:)*PCONC(:,5) ! -!ACID/UR7=0.0 +!XO2/WC_O3=0.0 ! -!ACID/RPR3=0.0 +!XO2/WC_H2O2=0.0 ! -!ACID/URG6=0.0 +!XO2/WC_NO=0.0 ! -!ACID/UR22=0.0 +!XO2/WC_NO2=0.0 ! -!ACID/URG7=0.0 +!XO2/WC_NO3=0.0 ! -!ACID/RPR4=0.0 +!XO2/WC_N2O5=0.0 ! -!ACID/RPR7=0.0 +!XO2/WC_HONO=0.0 ! -!ACID/RPG7=0.0 +!XO2/WC_HNO3=0.0 ! -!ACID/URG8=0.0 +!XO2/WC_HNO4=0.0 ! -!ACID/UR19=0.0 +!XO2/WC_NH3=0.0 ! -!ACID/URG9=0.0 +!XO2/WC_OH=0.0 ! -!ACID/AP7=0.0 +!XO2/WC_HO2=0.0 ! -!ACID/URG10=0.0 +!XO2/WC_CO2=0.0 ! -!ACID/RPR1=0.0 +!XO2/WC_SO2=0.0 ! -!ACID/RPR5=0.0 +!XO2/WC_SULF=0.0 ! -!ACID/RPR8=0.0 +!XO2/WC_HCHO=0.0 ! -!ACID/RP10=0.0 +!XO2/WC_ORA1=0.0 ! -!ACID/RP11=0.0 +!XO2/WC_ORA2=0.0 ! -!ACID/RP16=0.0 +!XO2/WC_MO2=0.0 ! -!ACID/RPRL=0.0 +!XO2/WC_OP1=0.0 ! -!ACID/APAN=0.0 +!XO2/WC_ASO3=0.0 ! -!ACID/PAN1=0.0 +!XO2/WC_ASO4=0.0 ! -!ACID/PAN2=0.0 +!XO2/WC_ASO5=0.0 ! -!ACID/PAN3=0.0 +!XO2/WC_AHSO5=0.0 ! -!ACID/PAN4=0.0 +!XO2/WC_AHMS=0.0 ! -!ACID/PAN6=0.0 +!XO2/WR_O3=0.0 ! -!ACID/PAN7=0.0 +!XO2/WR_H2O2=0.0 ! -!ACID/PAN8=0.0 +!XO2/WR_NO=0.0 ! -!ACID/PN10=0.0 +!XO2/WR_NO2=0.0 ! -!ACID/RO2T=0.0 +!XO2/WR_NO3=0.0 ! -!ACID/RO21=0.0 +!XO2/WR_N2O5=0.0 ! -!ACID/RO25=0.0 +!XO2/WR_HONO=0.0 ! -RETURN -END SUBROUTINE SUBJ8 +!XO2/WR_HNO3=0.0 ! -SUBROUTINE SUBJ9 +!XO2/WR_HNO4=0.0 ! -!Indices 46 a 50 +!XO2/WR_NH3=0.0 ! +!XO2/WR_OH=0.0 ! -!UR28/NO=0.0 +!XO2/WR_HO2=0.0 ! -!UR28/NO2=0.0 +!XO2/WR_CO2=0.0 ! -!UR28/O3=0.0 +!XO2/WR_SO2=0.0 ! -!UR28/HONO=0.0 +!XO2/WR_SULF=0.0 ! -!UR28/HNO3=0.0 +!XO2/WR_HCHO=0.0 ! -!UR28/HNO4=0.0 +!XO2/WR_ORA1=0.0 ! -!UR28/N2O5=0.0 +!XO2/WR_ORA2=0.0 ! -!UR28/NO3=0.0 +!XO2/WR_MO2=0.0 ! -!UR28/NH3=0.0 +!XO2/WR_OP1=0.0 ! -!UR28/HO2=+K341*<RO258> - PJAC(:,46,10)=+TPK%K341(:)*TPK%RO258(:) +!XO2/WR_ASO3=0.0 ! -!UR28/CO=0.0 +!XO2/WR_ASO4=0.0 ! -!UR28/H2O2=0.0 +!XO2/WR_ASO5=0.0 ! -!UR28/SO2=0.0 +!XO2/WR_AHSO5=0.0 ! -!UR28/H2SO4=0.0 +!XO2/WR_AHMS=0.0 ! -!UR28/OH=0.0 +!WC_O3/O3=+KTC1 + PJAC(:,42,1)=+TPK%KTC1(:) ! -!UR28/ETHE=0.0 +!WC_O3/H2O2=0.0 ! -!UR28/OLEL=0.0 +!WC_O3/NO=0.0 ! -!UR28/OLEH=0.0 +!WC_O3/NO2=0.0 ! -!UR28/ALKL=0.0 +!WC_O3/NO3=0.0 ! -!UR28/ALKM=0.0 +!WC_O3/N2O5=0.0 ! -!UR28/ALKH=0.0 +!WC_O3/HONO=0.0 ! -!UR28/AROH=0.0 +!WC_O3/HNO3=0.0 ! -!UR28/AROL=0.0 +!WC_O3/HNO4=0.0 ! -!UR28/AROO=0.0 +!WC_O3/NH3=0.0 ! -!UR28/ARAL=0.0 +!WC_O3/SO2=0.0 ! -!UR28/ARAC=0.0 +!WC_O3/SULF=0.0 ! -!UR28/PAH=0.0 +!WC_O3/CO=0.0 ! -!UR28/HCHO=0.0 +!WC_O3/OH=0.0 ! -!UR28/ALD2=0.0 +!WC_O3/HO2=0.0 ! -!UR28/KETL=0.0 +!WC_O3/CH4=0.0 ! -!UR28/KETH=0.0 +!WC_O3/ETH=0.0 ! -!UR28/MEOH=0.0 +!WC_O3/ALKA=0.0 ! -!UR28/ETOH=0.0 +!WC_O3/ALKE=0.0 ! -!UR28/ALCH=0.0 +!WC_O3/BIO=0.0 ! -!UR28/ISOP=0.0 +!WC_O3/ARO=0.0 ! -!UR28/BIOL=0.0 +!WC_O3/HCHO=0.0 ! -!UR28/BIOH=0.0 +!WC_O3/ALD=0.0 ! -!UR28/MTBE=0.0 +!WC_O3/KET=0.0 ! -!UR28/MVK=0.0 +!WC_O3/CARBO=0.0 ! -!UR28/MCR=0.0 +!WC_O3/ONIT=0.0 ! -!UR28/MGLY=0.0 +!WC_O3/PAN=0.0 ! -!UR28/GLY=0.0 +!WC_O3/OP1=0.0 ! -!UR28/ORA1=0.0 +!WC_O3/OP2=0.0 ! -!UR28/ORA2=0.0 +!WC_O3/ORA1=0.0 ! -!UR28/ACID=0.0 +!WC_O3/ORA2=0.0 ! -!UR28/UR28=-K364 - PJAC(:,46,46)=-TPK%K364(:) +!WC_O3/MO2=0.0 ! -!UR28/UR21=0.0 +!WC_O3/ALKAP=0.0 ! -!UR28/URG2=0.0 +!WC_O3/ALKEP=0.0 ! -!UR28/UR26=0.0 +!WC_O3/BIOP=0.0 ! -!UR28/RPG2=0.0 +!WC_O3/PHO=0.0 ! -!UR28/RP18=0.0 +!WC_O3/ADD=0.0 ! -!UR28/RPG3=0.0 +!WC_O3/AROP=0.0 ! -!UR28/URG4=0.0 +!WC_O3/CARBOP=0.0 ! -!UR28/UR8=0.0 +!WC_O3/OLN=0.0 ! -!UR28/UR17=0.0 +!WC_O3/XO2=0.0 ! -!UR28/UR7=0.0 +!WC_O3/WC_O3=-KTC21-KC6*<WC_HO2>-KC29*<WC_SO2> + PJAC(:,42,42)=-TPK%KTC21(:)-TPK%KC6(:)*PCONC(:,53)-TPK%KC29(:)*PCONC(:,55) ! -!UR28/RPR3=0.0 +!WC_O3/WC_H2O2=0.0 ! -!UR28/URG6=0.0 +!WC_O3/WC_NO=0.0 ! -!UR28/UR22=0.0 +!WC_O3/WC_NO2=0.0 ! -!UR28/URG7=0.0 +!WC_O3/WC_NO3=0.0 ! -!UR28/RPR4=0.0 +!WC_O3/WC_N2O5=0.0 ! -!UR28/RPR7=0.0 +!WC_O3/WC_HONO=0.0 ! -!UR28/RPG7=0.0 +!WC_O3/WC_HNO3=0.0 ! -!UR28/URG8=0.0 +!WC_O3/WC_HNO4=0.0 ! -!UR28/UR19=0.0 +!WC_O3/WC_NH3=0.0 ! -!UR28/URG9=0.0 +!WC_O3/WC_OH=0.0 ! -!UR28/AP7=0.0 +!WC_O3/WC_HO2=-KC6*<WC_O3> + PJAC(:,42,53)=-TPK%KC6(:)*PCONC(:,42) ! -!UR28/URG10=0.0 +!WC_O3/WC_CO2=0.0 ! -!UR28/RPR1=0.0 +!WC_O3/WC_SO2=-KC29*<WC_O3> + PJAC(:,42,55)=-TPK%KC29(:)*PCONC(:,42) ! -!UR28/RPR5=0.0 +!WC_O3/WC_SULF=0.0 ! -!UR28/RPR8=0.0 +!WC_O3/WC_HCHO=0.0 ! -!UR28/RP10=0.0 +!WC_O3/WC_ORA1=0.0 ! -!UR28/RP11=0.0 +!WC_O3/WC_ORA2=0.0 ! -!UR28/RP16=0.0 +!WC_O3/WC_MO2=0.0 ! -!UR28/RPRL=0.0 +!WC_O3/WC_OP1=0.0 ! -!UR28/APAN=0.0 +!WC_O3/WC_ASO3=0.0 ! -!UR28/PAN1=0.0 +!WC_O3/WC_ASO4=0.0 ! -!UR28/PAN2=0.0 +!WC_O3/WC_ASO5=0.0 ! -!UR28/PAN3=0.0 +!WC_O3/WC_AHSO5=0.0 ! -!UR28/PAN4=0.0 +!WC_O3/WC_AHMS=0.0 ! -!UR28/PAN6=0.0 +!WC_O3/WR_O3=0.0 ! -!UR28/PAN7=0.0 +!WC_O3/WR_H2O2=0.0 ! -!UR28/PAN8=0.0 +!WC_O3/WR_NO=0.0 ! -!UR28/PN10=0.0 +!WC_O3/WR_NO2=0.0 ! -!UR28/RO2T=0.0 +!WC_O3/WR_NO3=0.0 ! -!UR28/RO21=0.0 +!WC_O3/WR_N2O5=0.0 ! -!UR28/RO25=0.0 +!WC_O3/WR_HONO=0.0 ! -!UR21/NO=0.0 +!WC_O3/WR_HNO3=0.0 ! -!UR21/NO2=0.0 +!WC_O3/WR_HNO4=0.0 ! -!UR21/O3=+0.12*K281*<MVK> - PJAC(:,47,3)=+0.12*TPK%K281(:)*PCONC(:,39) +!WC_O3/WR_NH3=0.0 ! -!UR21/HONO=0.0 +!WC_O3/WR_OH=0.0 ! -!UR21/HNO3=0.0 +!WC_O3/WR_HO2=0.0 ! -!UR21/HNO4=0.0 +!WC_O3/WR_CO2=0.0 ! -!UR21/N2O5=0.0 +!WC_O3/WR_SO2=0.0 ! -!UR21/NO3=0.0 +!WC_O3/WR_SULF=0.0 ! -!UR21/NH3=0.0 +!WC_O3/WR_HCHO=0.0 ! -!UR21/HO2=+K279*<RO248> - PJAC(:,47,10)=+TPK%K279(:)*TPK%RO248(:) +!WC_O3/WR_ORA1=0.0 ! -!UR21/CO=0.0 +!WC_O3/WR_ORA2=0.0 ! -!UR21/H2O2=0.0 +!WC_O3/WR_MO2=0.0 ! -!UR21/SO2=0.0 +!WC_O3/WR_OP1=0.0 ! -!UR21/H2SO4=0.0 +!WC_O3/WR_ASO3=0.0 ! -!UR21/OH=0.0 +!WC_O3/WR_ASO4=0.0 ! -!UR21/ETHE=0.0 +!WC_O3/WR_ASO5=0.0 ! -!UR21/OLEL=0.0 +!WC_O3/WR_AHSO5=0.0 ! -!UR21/OLEH=0.0 +!WC_O3/WR_AHMS=0.0 ! -!UR21/ALKL=0.0 +!WC_H2O2/O3=0.0 ! -!UR21/ALKM=0.0 +!WC_H2O2/H2O2=+KTC2 + PJAC(:,43,2)=+TPK%KTC2(:) ! -!UR21/ALKH=0.0 +!WC_H2O2/NO=0.0 ! -!UR21/AROH=0.0 +!WC_H2O2/NO2=0.0 ! -!UR21/AROL=0.0 +!WC_H2O2/NO3=0.0 ! -!UR21/AROO=0.0 +!WC_H2O2/N2O5=0.0 ! -!UR21/ARAL=0.0 +!WC_H2O2/HONO=0.0 ! -!UR21/ARAC=0.0 +!WC_H2O2/HNO3=0.0 ! -!UR21/PAH=0.0 +!WC_H2O2/HNO4=0.0 ! -!UR21/HCHO=0.0 +!WC_H2O2/NH3=0.0 ! -!UR21/ALD2=0.0 +!WC_H2O2/SO2=0.0 ! -!UR21/KETL=0.0 +!WC_H2O2/SULF=0.0 ! -!UR21/KETH=0.0 +!WC_H2O2/CO=0.0 ! -!UR21/MEOH=0.0 +!WC_H2O2/OH=0.0 ! -!UR21/ETOH=0.0 +!WC_H2O2/HO2=0.0 ! -!UR21/ALCH=0.0 +!WC_H2O2/CH4=0.0 ! -!UR21/ISOP=0.0 +!WC_H2O2/ETH=0.0 ! -!UR21/BIOL=0.0 +!WC_H2O2/ALKA=0.0 ! -!UR21/BIOH=0.0 +!WC_H2O2/ALKE=0.0 ! -!UR21/MTBE=0.0 +!WC_H2O2/BIO=0.0 ! -!UR21/MVK=+0.12*K281*<O3> - PJAC(:,47,39)=+0.12*TPK%K281(:)*PCONC(:,3) +!WC_H2O2/ARO=0.0 ! -!UR21/MCR=0.0 +!WC_H2O2/HCHO=0.0 ! -!UR21/MGLY=0.0 +!WC_H2O2/ALD=0.0 ! -!UR21/GLY=0.0 +!WC_H2O2/KET=0.0 ! -!UR21/ORA1=0.0 +!WC_H2O2/CARBO=0.0 ! -!UR21/ORA2=0.0 +!WC_H2O2/ONIT=0.0 ! -!UR21/ACID=0.0 +!WC_H2O2/PAN=0.0 ! -!UR21/UR28=0.0 +!WC_H2O2/OP1=0.0 ! -!UR21/UR21=-K361 - PJAC(:,47,47)=-TPK%K361(:) +!WC_H2O2/OP2=0.0 ! -!UR21/URG2=0.0 +!WC_H2O2/ORA1=0.0 ! -!UR21/UR26=0.0 +!WC_H2O2/ORA2=0.0 ! -!UR21/RPG2=0.0 +!WC_H2O2/MO2=0.0 ! -!UR21/RP18=0.0 +!WC_H2O2/ALKAP=0.0 ! -!UR21/RPG3=0.0 +!WC_H2O2/ALKEP=0.0 ! -!UR21/URG4=0.0 +!WC_H2O2/BIOP=0.0 ! -!UR21/UR8=0.0 +!WC_H2O2/PHO=0.0 ! -!UR21/UR17=0.0 +!WC_H2O2/ADD=0.0 ! -!UR21/UR7=0.0 +!WC_H2O2/AROP=0.0 ! -!UR21/RPR3=0.0 +!WC_H2O2/CARBOP=0.0 ! -!UR21/URG6=0.0 +!WC_H2O2/OLN=0.0 ! -!UR21/UR22=0.0 +!WC_H2O2/XO2=0.0 ! -!UR21/URG7=0.0 +!WC_H2O2/WC_O3=0.0 ! -!UR21/RPR4=0.0 +!WC_H2O2/WC_H2O2=-KTC22-KC1-KC4*<WC_OH>-KC30*<WC_SO2> + PJAC(:,43,43)=-TPK%KTC22(:)-TPK%KC1(:)-TPK%KC4(:)*PCONC(:,52)-TPK%KC30(:)*PCON& +&C(:,55) ! -!UR21/RPR7=0.0 +!WC_H2O2/WC_NO=0.0 ! -!UR21/RPG7=0.0 +!WC_H2O2/WC_NO2=0.0 ! -!UR21/URG8=0.0 +!WC_H2O2/WC_NO3=0.0 ! -!UR21/UR19=0.0 +!WC_H2O2/WC_N2O5=0.0 ! -!UR21/URG9=0.0 +!WC_H2O2/WC_HONO=0.0 ! -!UR21/AP7=0.0 +!WC_H2O2/WC_HNO3=0.0 ! -!UR21/URG10=0.0 +!WC_H2O2/WC_HNO4=0.0 ! -!UR21/RPR1=0.0 +!WC_H2O2/WC_NH3=0.0 ! -!UR21/RPR5=0.0 +!WC_H2O2/WC_OH=+KC2*<WC_OH>+KC2*<WC_OH>-KC4*<WC_H2O2> + PJAC(:,43,52)=+TPK%KC2(:)*PCONC(:,52)+TPK%KC2(:)*PCONC(:,52)-TPK%KC4(:)*PCONC(& +&:,43) ! -!UR21/RPR8=0.0 +!WC_H2O2/WC_HO2=+KC5*<WC_HO2>+KC5*<WC_HO2> + PJAC(:,43,53)=+TPK%KC5(:)*PCONC(:,53)+TPK%KC5(:)*PCONC(:,53) ! -!UR21/RP10=0.0 +!WC_H2O2/WC_CO2=0.0 ! -!UR21/RP11=0.0 +!WC_H2O2/WC_SO2=-KC30*<WC_H2O2> + PJAC(:,43,55)=-TPK%KC30(:)*PCONC(:,43) ! -!UR21/RP16=0.0 +!WC_H2O2/WC_SULF=0.0 ! -!UR21/RPRL=0.0 +!WC_H2O2/WC_HCHO=0.0 ! -!UR21/APAN=0.0 +!WC_H2O2/WC_ORA1=0.0 ! -!UR21/PAN1=0.0 +!WC_H2O2/WC_ORA2=0.0 ! -!UR21/PAN2=0.0 +!WC_H2O2/WC_MO2=0.0 ! -!UR21/PAN3=0.0 +!WC_H2O2/WC_OP1=0.0 ! -!UR21/PAN4=0.0 +!WC_H2O2/WC_ASO3=0.0 ! -!UR21/PAN6=0.0 +!WC_H2O2/WC_ASO4=0.0 ! -!UR21/PAN7=0.0 +!WC_H2O2/WC_ASO5=0.0 ! -!UR21/PAN8=0.0 +!WC_H2O2/WC_AHSO5=0.0 ! -!UR21/PN10=0.0 +!WC_H2O2/WC_AHMS=0.0 ! -!UR21/RO2T=0.0 +!WC_H2O2/WR_O3=0.0 ! -!UR21/RO21=0.0 +!WC_H2O2/WR_H2O2=0.0 ! -!UR21/RO25=0.0 +!WC_H2O2/WR_NO=0.0 ! -!URG2/NO=0.0 +!WC_H2O2/WR_NO2=0.0 ! -!URG2/NO2=0.0 +!WC_H2O2/WR_NO3=0.0 ! -!URG2/O3=0.0 +!WC_H2O2/WR_N2O5=0.0 ! -!URG2/HONO=0.0 +!WC_H2O2/WR_HONO=0.0 ! -!URG2/HNO3=0.0 +!WC_H2O2/WR_HNO3=0.0 ! -!URG2/HNO4=0.0 +!WC_H2O2/WR_HNO4=0.0 ! -!URG2/N2O5=0.0 +!WC_H2O2/WR_NH3=0.0 ! -!URG2/NO3=0.0 +!WC_H2O2/WR_OH=0.0 ! -!URG2/NH3=0.0 +!WC_H2O2/WR_HO2=0.0 ! -!URG2/HO2=0.0 +!WC_H2O2/WR_CO2=0.0 ! -!URG2/CO=0.0 +!WC_H2O2/WR_SO2=0.0 ! -!URG2/H2O2=0.0 +!WC_H2O2/WR_SULF=0.0 ! -!URG2/SO2=0.0 +!WC_H2O2/WR_HCHO=0.0 ! -!URG2/H2SO4=0.0 +!WC_H2O2/WR_ORA1=0.0 ! -!URG2/OH=+0.5562513*K335*<RPG2>+K337*<RP18> - PJAC(:,48,15)=+0.5562513*TPK%K335(:)*PCONC(:,50)+TPK%K337(:)*PCONC(:,51) +!WC_H2O2/WR_ORA2=0.0 ! -!URG2/ETHE=0.0 +!WC_H2O2/WR_MO2=0.0 ! -!URG2/OLEL=0.0 +!WC_H2O2/WR_OP1=0.0 ! -!URG2/OLEH=0.0 +!WC_H2O2/WR_ASO3=0.0 ! -!URG2/ALKL=0.0 +!WC_H2O2/WR_ASO4=0.0 ! -!URG2/ALKM=0.0 +!WC_H2O2/WR_ASO5=0.0 ! -!URG2/ALKH=0.0 +!WC_H2O2/WR_AHSO5=0.0 ! -!URG2/AROH=0.0 +!WC_H2O2/WR_AHMS=0.0 ! -!URG2/AROL=0.0 +!WC_NO/O3=0.0 ! -!URG2/AROO=0.0 +!WC_NO/H2O2=0.0 ! -!URG2/ARAL=0.0 +!WC_NO/NO=+KTC3 + PJAC(:,44,3)=+TPK%KTC3(:) ! -!URG2/ARAC=0.0 +!WC_NO/NO2=0.0 ! -!URG2/PAH=0.0 +!WC_NO/NO3=0.0 ! -!URG2/HCHO=0.0 +!WC_NO/N2O5=0.0 ! -!URG2/ALD2=0.0 +!WC_NO/HONO=0.0 ! -!URG2/KETL=0.0 +!WC_NO/HNO3=0.0 ! -!URG2/KETH=0.0 +!WC_NO/HNO4=0.0 ! -!URG2/MEOH=0.0 +!WC_NO/NH3=0.0 ! -!URG2/ETOH=0.0 +!WC_NO/SO2=0.0 ! -!URG2/ALCH=0.0 +!WC_NO/SULF=0.0 ! -!URG2/ISOP=0.0 +!WC_NO/CO=0.0 ! -!URG2/BIOL=0.0 +!WC_NO/OH=0.0 ! -!URG2/BIOH=0.0 +!WC_NO/HO2=0.0 ! -!URG2/MTBE=0.0 +!WC_NO/CH4=0.0 ! -!URG2/MVK=0.0 +!WC_NO/ETH=0.0 ! -!URG2/MCR=0.0 +!WC_NO/ALKA=0.0 ! -!URG2/MGLY=0.0 +!WC_NO/ALKE=0.0 ! -!URG2/GLY=0.0 +!WC_NO/BIO=0.0 ! -!URG2/ORA1=0.0 +!WC_NO/ARO=0.0 ! -!URG2/ORA2=0.0 +!WC_NO/HCHO=0.0 ! -!URG2/ACID=0.0 +!WC_NO/ALD=0.0 ! -!URG2/UR28=0.0 +!WC_NO/KET=0.0 ! -!URG2/UR21=0.0 +!WC_NO/CARBO=0.0 ! -!URG2/URG2=-K350 - PJAC(:,48,48)=-TPK%K350(:) +!WC_NO/ONIT=0.0 ! -!URG2/UR26=0.0 +!WC_NO/PAN=0.0 ! -!URG2/RPG2=+0.5562513*K335*<OH> - PJAC(:,48,50)=+0.5562513*TPK%K335(:)*PCONC(:,15) +!WC_NO/OP1=0.0 ! -!URG2/RP18=+K337*<OH> - PJAC(:,48,51)=+TPK%K337(:)*PCONC(:,15) +!WC_NO/OP2=0.0 ! -!URG2/RPG3=0.0 +!WC_NO/ORA1=0.0 ! -!URG2/URG4=0.0 +!WC_NO/ORA2=0.0 ! -!URG2/UR8=0.0 +!WC_NO/MO2=0.0 ! -!URG2/UR17=0.0 +!WC_NO/ALKAP=0.0 ! -!URG2/UR7=0.0 +!WC_NO/ALKEP=0.0 ! -!URG2/RPR3=0.0 +!WC_NO/BIOP=0.0 ! -!URG2/URG6=0.0 +!WC_NO/PHO=0.0 ! -!URG2/UR22=0.0 +!WC_NO/ADD=0.0 ! -!URG2/URG7=0.0 +!WC_NO/AROP=0.0 ! -!URG2/RPR4=0.0 +!WC_NO/CARBOP=0.0 ! -!URG2/RPR7=0.0 +!WC_NO/OLN=0.0 ! -!URG2/RPG7=0.0 +!WC_NO/XO2=0.0 ! -!URG2/URG8=0.0 +!WC_NO/WC_O3=0.0 ! -!URG2/UR19=0.0 +!WC_NO/WC_H2O2=0.0 ! -!URG2/URG9=0.0 +!WC_NO/WC_NO=-KTC23 + PJAC(:,44,44)=-TPK%KTC23(:) ! -!URG2/AP7=0.0 +!WC_NO/WC_NO2=0.0 ! -!URG2/URG10=0.0 +!WC_NO/WC_NO3=0.0 ! -!URG2/RPR1=0.0 +!WC_NO/WC_N2O5=0.0 ! -!URG2/RPR5=0.0 +!WC_NO/WC_HONO=0.0 ! -!URG2/RPR8=0.0 +!WC_NO/WC_HNO3=0.0 ! -!URG2/RP10=0.0 +!WC_NO/WC_HNO4=0.0 ! -!URG2/RP11=0.0 +!WC_NO/WC_NH3=0.0 ! -!URG2/RP16=0.0 +!WC_NO/WC_OH=0.0 ! -!URG2/RPRL=0.0 +!WC_NO/WC_HO2=0.0 ! -!URG2/APAN=0.0 +!WC_NO/WC_CO2=0.0 ! -!URG2/PAN1=0.0 +!WC_NO/WC_SO2=0.0 ! -!URG2/PAN2=0.0 +!WC_NO/WC_SULF=0.0 ! -!URG2/PAN3=0.0 +!WC_NO/WC_HCHO=0.0 ! -!URG2/PAN4=0.0 +!WC_NO/WC_ORA1=0.0 ! -!URG2/PAN6=0.0 +!WC_NO/WC_ORA2=0.0 ! -!URG2/PAN7=0.0 +!WC_NO/WC_MO2=0.0 ! -!URG2/PAN8=0.0 +!WC_NO/WC_OP1=0.0 ! -!URG2/PN10=0.0 +!WC_NO/WC_ASO3=0.0 ! -!URG2/RO2T=0.0 +!WC_NO/WC_ASO4=0.0 ! -!URG2/RO21=0.0 +!WC_NO/WC_ASO5=0.0 ! -!URG2/RO25=0.0 +!WC_NO/WC_AHSO5=0.0 ! -!UR26/NO=0.0 +!WC_NO/WC_AHMS=0.0 ! -!UR26/NO2=0.0 +!WC_NO/WR_O3=0.0 ! -!UR26/O3=0.0 +!WC_NO/WR_H2O2=0.0 ! -!UR26/HONO=0.0 +!WC_NO/WR_NO=0.0 ! -!UR26/HNO3=0.0 +!WC_NO/WR_NO2=0.0 ! -!UR26/HNO4=0.0 +!WC_NO/WR_NO3=0.0 ! -!UR26/N2O5=0.0 +!WC_NO/WR_N2O5=0.0 ! -!UR26/NO3=0.0 +!WC_NO/WR_HONO=0.0 ! -!UR26/NH3=0.0 +!WC_NO/WR_HNO3=0.0 ! -!UR26/HO2=0.0 +!WC_NO/WR_HNO4=0.0 ! -!UR26/CO=0.0 +!WC_NO/WR_NH3=0.0 ! -!UR26/H2O2=0.0 +!WC_NO/WR_OH=0.0 ! -!UR26/SO2=0.0 +!WC_NO/WR_HO2=0.0 ! -!UR26/H2SO4=0.0 +!WC_NO/WR_CO2=0.0 ! -!UR26/OH=+0.67*K326*<RP11> - PJAC(:,49,15)=+0.67*TPK%K326(:)*PCONC(:,73) +!WC_NO/WR_SO2=0.0 ! -!UR26/ETHE=0.0 +!WC_NO/WR_SULF=0.0 ! -!UR26/OLEL=0.0 +!WC_NO/WR_HCHO=0.0 ! -!UR26/OLEH=0.0 +!WC_NO/WR_ORA1=0.0 ! -!UR26/ALKL=0.0 +!WC_NO/WR_ORA2=0.0 ! -!UR26/ALKM=0.0 +!WC_NO/WR_MO2=0.0 ! -!UR26/ALKH=0.0 +!WC_NO/WR_OP1=0.0 ! -!UR26/AROH=0.0 +!WC_NO/WR_ASO3=0.0 ! -!UR26/AROL=0.0 +!WC_NO/WR_ASO4=0.0 ! -!UR26/AROO=0.0 +!WC_NO/WR_ASO5=0.0 ! -!UR26/ARAL=0.0 +!WC_NO/WR_AHSO5=0.0 ! -!UR26/ARAC=0.0 +!WC_NO/WR_AHMS=0.0 ! -!UR26/PAH=0.0 +!WC_NO2/O3=0.0 ! -!UR26/HCHO=0.0 +!WC_NO2/H2O2=0.0 ! -!UR26/ALD2=0.0 +!WC_NO2/NO=0.0 ! -!UR26/KETL=0.0 +!WC_NO2/NO2=+KTC4 + PJAC(:,45,4)=+TPK%KTC4(:) ! -!UR26/KETH=0.0 +!WC_NO2/NO3=0.0 ! -!UR26/MEOH=0.0 +!WC_NO2/N2O5=0.0 ! -!UR26/ETOH=0.0 +!WC_NO2/HONO=0.0 ! -!UR26/ALCH=0.0 +!WC_NO2/HNO3=0.0 ! -!UR26/ISOP=0.0 +!WC_NO2/HNO4=0.0 ! -!UR26/BIOL=0.0 +!WC_NO2/NH3=0.0 ! -!UR26/BIOH=0.0 +!WC_NO2/SO2=0.0 ! -!UR26/MTBE=0.0 +!WC_NO2/SULF=0.0 ! -!UR26/MVK=0.0 +!WC_NO2/CO=0.0 ! -!UR26/MCR=0.0 +!WC_NO2/OH=0.0 ! -!UR26/MGLY=0.0 +!WC_NO2/HO2=0.0 ! -!UR26/GLY=0.0 +!WC_NO2/CH4=0.0 ! -!UR26/ORA1=0.0 +!WC_NO2/ETH=0.0 ! -!UR26/ORA2=0.0 +!WC_NO2/ALKA=0.0 ! -!UR26/ACID=0.0 +!WC_NO2/ALKE=0.0 ! -!UR26/UR28=0.0 +!WC_NO2/BIO=0.0 ! -!UR26/UR21=0.0 +!WC_NO2/ARO=0.0 ! -!UR26/URG2=0.0 +!WC_NO2/HCHO=0.0 ! -!UR26/UR26=-K363 - PJAC(:,49,49)=-TPK%K363(:) +!WC_NO2/ALD=0.0 ! -!UR26/RPG2=0.0 +!WC_NO2/KET=0.0 ! -!UR26/RP18=0.0 +!WC_NO2/CARBO=0.0 ! -!UR26/RPG3=0.0 +!WC_NO2/ONIT=0.0 ! -!UR26/URG4=0.0 +!WC_NO2/PAN=0.0 ! -!UR26/UR8=0.0 +!WC_NO2/OP1=0.0 ! -!UR26/UR17=0.0 +!WC_NO2/OP2=0.0 ! -!UR26/UR7=0.0 +!WC_NO2/ORA1=0.0 ! -!UR26/RPR3=0.0 +!WC_NO2/ORA2=0.0 ! -!UR26/URG6=0.0 +!WC_NO2/MO2=0.0 ! -!UR26/UR22=0.0 +!WC_NO2/ALKAP=0.0 ! -!UR26/URG7=0.0 +!WC_NO2/ALKEP=0.0 ! -!UR26/RPR4=0.0 +!WC_NO2/BIOP=0.0 ! -!UR26/RPR7=0.0 +!WC_NO2/PHO=0.0 ! -!UR26/RPG7=0.0 +!WC_NO2/ADD=0.0 ! -!UR26/URG8=0.0 +!WC_NO2/AROP=0.0 ! -!UR26/UR19=0.0 +!WC_NO2/CARBOP=0.0 ! -!UR26/URG9=0.0 +!WC_NO2/OLN=0.0 ! -!UR26/AP7=0.0 +!WC_NO2/XO2=0.0 ! -!UR26/URG10=0.0 +!WC_NO2/WC_O3=0.0 ! -!UR26/RPR1=0.0 +!WC_NO2/WC_H2O2=0.0 ! -!UR26/RPR5=0.0 +!WC_NO2/WC_NO=0.0 ! -!UR26/RPR8=0.0 +!WC_NO2/WC_NO2=-KTC24-KC9*<WC_HO2> + PJAC(:,45,45)=-TPK%KTC24(:)-TPK%KC9(:)*PCONC(:,53) ! -!UR26/RP10=0.0 +!WC_NO2/WC_NO3=0.0 ! -!UR26/RP11=+0.67*K326*<OH> - PJAC(:,49,73)=+0.67*TPK%K326(:)*PCONC(:,15) +!WC_NO2/WC_N2O5=0.0 ! -!UR26/RP16=0.0 +!WC_NO2/WC_HONO=+KC8*<WC_OH> + PJAC(:,45,48)=+TPK%KC8(:)*PCONC(:,52) ! -!UR26/RPRL=0.0 +!WC_NO2/WC_HNO3=+KC13 + PJAC(:,45,49)=+TPK%KC13(:) ! -!UR26/APAN=0.0 +!WC_NO2/WC_HNO4=+KC10 + PJAC(:,45,50)=+TPK%KC10(:) ! -!UR26/PAN1=0.0 +!WC_NO2/WC_NH3=0.0 ! -!UR26/PAN2=0.0 +!WC_NO2/WC_OH=+KC8*<WC_HONO> + PJAC(:,45,52)=+TPK%KC8(:)*PCONC(:,48) ! -!UR26/PAN3=0.0 +!WC_NO2/WC_HO2=-KC9*<WC_NO2> + PJAC(:,45,53)=-TPK%KC9(:)*PCONC(:,45) ! -!UR26/PAN4=0.0 +!WC_NO2/WC_CO2=0.0 ! -!UR26/PAN6=0.0 +!WC_NO2/WC_SO2=0.0 ! -!UR26/PAN7=0.0 +!WC_NO2/WC_SULF=0.0 ! -!UR26/PAN8=0.0 +!WC_NO2/WC_HCHO=0.0 ! -!UR26/PN10=0.0 +!WC_NO2/WC_ORA1=0.0 ! -!UR26/RO2T=0.0 +!WC_NO2/WC_ORA2=0.0 ! -!UR26/RO21=0.0 +!WC_NO2/WC_MO2=0.0 ! -!UR26/RO25=0.0 +!WC_NO2/WC_OP1=0.0 ! -!RPG2/NO=+0.3000000*K259*<RO237> - PJAC(:,50,1)=+0.3000000*TPK%K259(:)*TPK%RO237(:) +!WC_NO2/WC_ASO3=0.0 ! -!RPG2/NO2=0.0 +!WC_NO2/WC_ASO4=0.0 ! -!RPG2/O3=0.0 +!WC_NO2/WC_ASO5=0.0 ! -!RPG2/HONO=0.0 +!WC_NO2/WC_AHSO5=0.0 ! -!RPG2/HNO3=0.0 +!WC_NO2/WC_AHMS=0.0 ! -!RPG2/HNO4=0.0 +!WC_NO2/WR_O3=0.0 ! -!RPG2/N2O5=0.0 +!WC_NO2/WR_H2O2=0.0 ! -!RPG2/NO3=0.0 +!WC_NO2/WR_NO=0.0 ! -!RPG2/NH3=0.0 +!WC_NO2/WR_NO2=0.0 ! -!RPG2/HO2=+0.3000000*K261*<RO237> - PJAC(:,50,10)=+0.3000000*TPK%K261(:)*TPK%RO237(:) +!WC_NO2/WR_NO3=0.0 ! -!RPG2/CO=0.0 +!WC_NO2/WR_N2O5=0.0 ! -!RPG2/H2O2=0.0 +!WC_NO2/WR_HONO=0.0 ! -!RPG2/SO2=0.0 +!WC_NO2/WR_HNO3=0.0 ! -!RPG2/H2SO4=0.0 +!WC_NO2/WR_HNO4=0.0 ! -!RPG2/OH=+0.1191897*K334*<RPG3>+0.8808107*K334*<RPG3>-K335*<RPG2> - PJAC(:,50,15)=+0.1191897*TPK%K334(:)*PCONC(:,52)+0.8808107*TPK%K334(:)*PCONC(:& -&,52)-TPK%K335(:)*PCONC(:,50) +!WC_NO2/WR_NH3=0.0 ! -!RPG2/ETHE=0.0 +!WC_NO2/WR_OH=0.0 ! -!RPG2/OLEL=0.0 +!WC_NO2/WR_HO2=0.0 ! -!RPG2/OLEH=0.0 +!WC_NO2/WR_CO2=0.0 ! -!RPG2/ALKL=0.0 +!WC_NO2/WR_SO2=0.0 ! -!RPG2/ALKM=0.0 +!WC_NO2/WR_SULF=0.0 ! -!RPG2/ALKH=0.0 +!WC_NO2/WR_HCHO=0.0 ! -!RPG2/AROH=0.0 +!WC_NO2/WR_ORA1=0.0 ! -!RPG2/AROL=0.0 +!WC_NO2/WR_ORA2=0.0 ! -!RPG2/AROO=0.0 +!WC_NO2/WR_MO2=0.0 ! -!RPG2/ARAL=0.0 +!WC_NO2/WR_OP1=0.0 ! -!RPG2/ARAC=0.0 +!WC_NO2/WR_ASO3=0.0 ! -!RPG2/PAH=0.0 +!WC_NO2/WR_ASO4=0.0 ! -!RPG2/HCHO=0.0 +!WC_NO2/WR_ASO5=0.0 ! -!RPG2/ALD2=0.0 +!WC_NO2/WR_AHSO5=0.0 ! -!RPG2/KETL=0.0 +!WC_NO2/WR_AHMS=0.0 ! -!RPG2/KETH=0.0 +RETURN +END SUBROUTINE SUBJ8 ! -!RPG2/MEOH=0.0 +SUBROUTINE SUBJ9 ! -!RPG2/ETOH=0.0 +!Indices 46 a 50 ! -!RPG2/ALCH=0.0 ! -!RPG2/ISOP=0.0 +!WC_NO3/O3=0.0 ! -!RPG2/BIOL=0.0 +!WC_NO3/H2O2=0.0 ! -!RPG2/BIOH=0.0 +!WC_NO3/NO=0.0 ! -!RPG2/MTBE=0.0 +!WC_NO3/NO2=0.0 ! -!RPG2/MVK=0.0 +!WC_NO3/NO3=+KTC5 + PJAC(:,46,5)=+TPK%KTC5(:) ! -!RPG2/MCR=0.0 +!WC_NO3/N2O5=0.0 ! -!RPG2/MGLY=0.0 +!WC_NO3/HONO=0.0 ! -!RPG2/GLY=0.0 +!WC_NO3/HNO3=0.0 ! -!RPG2/ORA1=0.0 +!WC_NO3/HNO4=0.0 ! -!RPG2/ORA2=0.0 +!WC_NO3/NH3=0.0 ! -!RPG2/ACID=0.0 +!WC_NO3/SO2=0.0 ! -!RPG2/UR28=0.0 +!WC_NO3/SULF=0.0 ! -!RPG2/UR21=0.0 +!WC_NO3/CO=0.0 ! -!RPG2/URG2=0.0 +!WC_NO3/OH=0.0 ! -!RPG2/UR26=0.0 +!WC_NO3/HO2=0.0 ! -!RPG2/RPG2=-K335*<OH> - PJAC(:,50,50)=-TPK%K335(:)*PCONC(:,15) +!WC_NO3/CH4=0.0 ! -!RPG2/RP18=0.0 +!WC_NO3/ETH=0.0 ! -!RPG2/RPG3=+0.1191897*K334*<OH>+0.8808107*K334*<OH> - PJAC(:,50,52)=+0.1191897*TPK%K334(:)*PCONC(:,15)+0.8808107*TPK%K334(:)*PCONC(:& -&,15) +!WC_NO3/ALKA=0.0 ! -!RPG2/URG4=0.0 +!WC_NO3/ALKE=0.0 ! -!RPG2/UR8=0.0 +!WC_NO3/BIO=0.0 ! -!RPG2/UR17=0.0 +!WC_NO3/ARO=0.0 ! -!RPG2/UR7=0.0 +!WC_NO3/HCHO=0.0 ! -!RPG2/RPR3=0.0 +!WC_NO3/ALD=0.0 ! -!RPG2/URG6=0.0 +!WC_NO3/KET=0.0 ! -!RPG2/UR22=0.0 +!WC_NO3/CARBO=0.0 ! -!RPG2/URG7=0.0 +!WC_NO3/ONIT=0.0 ! -!RPG2/RPR4=0.0 +!WC_NO3/PAN=0.0 ! -!RPG2/RPR7=0.0 +!WC_NO3/OP1=0.0 ! -!RPG2/RPG7=0.0 +!WC_NO3/OP2=0.0 ! -!RPG2/URG8=0.0 +!WC_NO3/ORA1=0.0 ! -!RPG2/UR19=0.0 +!WC_NO3/ORA2=0.0 ! -!RPG2/URG9=0.0 +!WC_NO3/MO2=0.0 ! -!RPG2/AP7=0.0 +!WC_NO3/ALKAP=0.0 ! -!RPG2/URG10=0.0 +!WC_NO3/ALKEP=0.0 ! -!RPG2/RPR1=0.0 +!WC_NO3/BIOP=0.0 ! -!RPG2/RPR5=0.0 +!WC_NO3/PHO=0.0 ! -!RPG2/RPR8=0.0 +!WC_NO3/ADD=0.0 ! -!RPG2/RP10=0.0 +!WC_NO3/AROP=0.0 ! -!RPG2/RP11=0.0 +!WC_NO3/CARBOP=0.0 ! -!RPG2/RP16=0.0 +!WC_NO3/OLN=0.0 ! -!RPG2/RPRL=0.0 +!WC_NO3/XO2=0.0 ! -!RPG2/APAN=0.0 +!WC_NO3/WC_O3=0.0 ! -!RPG2/PAN1=0.0 +!WC_NO3/WC_H2O2=0.0 ! -!RPG2/PAN2=0.0 +!WC_NO3/WC_NO=0.0 ! -!RPG2/PAN3=0.0 +!WC_NO3/WC_NO2=0.0 ! -!RPG2/PAN4=0.0 +!WC_NO3/WC_NO3=-KTC25-KC15*<WC_SULF>-KC16*<WC_SO2> + PJAC(:,46,46)=-TPK%KTC25(:)-TPK%KC15(:)*PCONC(:,56)-TPK%KC16(:)*PCONC(:,55) ! -!RPG2/PAN6=0.0 +!WC_NO3/WC_N2O5=0.0 ! -!RPG2/PAN7=0.0 +!WC_NO3/WC_HONO=0.0 ! -!RPG2/PAN8=0.0 +!WC_NO3/WC_HNO3=0.0 ! -!RPG2/PN10=0.0 +!WC_NO3/WC_HNO4=0.0 ! -!RPG2/RO2T=+1.0000000*K260*<RO237> - PJAC(:,50,85)=+1.0000000*TPK%K260(:)*TPK%RO237(:) +!WC_NO3/WC_NH3=0.0 ! -!RPG2/RO21=0.0 +!WC_NO3/WC_OH=0.0 ! -!RPG2/RO25=0.0 +!WC_NO3/WC_HO2=0.0 ! -RETURN -END SUBROUTINE SUBJ9 +!WC_NO3/WC_CO2=0.0 ! -SUBROUTINE SUBJ10 +!WC_NO3/WC_SO2=-KC16*<WC_NO3> + PJAC(:,46,55)=-TPK%KC16(:)*PCONC(:,46) ! -!Indices 51 a 55 +!WC_NO3/WC_SULF=-KC15*<WC_NO3> + PJAC(:,46,56)=-TPK%KC15(:)*PCONC(:,46) ! +!WC_NO3/WC_HCHO=0.0 ! -!RP18/NO=0.0 +!WC_NO3/WC_ORA1=0.0 ! -!RP18/NO2=0.0 +!WC_NO3/WC_ORA2=0.0 ! -!RP18/O3=0.0 +!WC_NO3/WC_MO2=0.0 ! -!RP18/HONO=0.0 +!WC_NO3/WC_OP1=0.0 ! -!RP18/HNO3=0.0 +!WC_NO3/WC_ASO3=0.0 ! -!RP18/HNO4=0.0 +!WC_NO3/WC_ASO4=0.0 ! -!RP18/N2O5=0.0 +!WC_NO3/WC_ASO5=0.0 ! -!RP18/NO3=0.0 +!WC_NO3/WC_AHSO5=0.0 ! -!RP18/NH3=0.0 +!WC_NO3/WC_AHMS=0.0 ! -!RP18/HO2=0.0 +!WC_NO3/WR_O3=0.0 ! -!RP18/CO=0.0 +!WC_NO3/WR_H2O2=0.0 ! -!RP18/H2O2=0.0 +!WC_NO3/WR_NO=0.0 ! -!RP18/SO2=0.0 +!WC_NO3/WR_NO2=0.0 ! -!RP18/H2SO4=0.0 +!WC_NO3/WR_NO3=0.0 ! -!RP18/OH=+0.4437492*K335*<RPG2>-K337*<RP18> - PJAC(:,51,15)=+0.4437492*TPK%K335(:)*PCONC(:,50)-TPK%K337(:)*PCONC(:,51) +!WC_NO3/WR_N2O5=0.0 ! -!RP18/ETHE=0.0 +!WC_NO3/WR_HONO=0.0 ! -!RP18/OLEL=0.0 +!WC_NO3/WR_HNO3=0.0 ! -!RP18/OLEH=0.0 +!WC_NO3/WR_HNO4=0.0 ! -!RP18/ALKL=0.0 +!WC_NO3/WR_NH3=0.0 ! -!RP18/ALKM=0.0 +!WC_NO3/WR_OH=0.0 ! -!RP18/ALKH=0.0 +!WC_NO3/WR_HO2=0.0 ! -!RP18/AROH=0.0 +!WC_NO3/WR_CO2=0.0 ! -!RP18/AROL=0.0 +!WC_NO3/WR_SO2=0.0 ! -!RP18/AROO=0.0 +!WC_NO3/WR_SULF=0.0 ! -!RP18/ARAL=0.0 +!WC_NO3/WR_HCHO=0.0 ! -!RP18/ARAC=0.0 +!WC_NO3/WR_ORA1=0.0 ! -!RP18/PAH=0.0 +!WC_NO3/WR_ORA2=0.0 ! -!RP18/HCHO=0.0 +!WC_NO3/WR_MO2=0.0 ! -!RP18/ALD2=0.0 +!WC_NO3/WR_OP1=0.0 ! -!RP18/KETL=0.0 +!WC_NO3/WR_ASO3=0.0 ! -!RP18/KETH=0.0 +!WC_NO3/WR_ASO4=0.0 ! -!RP18/MEOH=0.0 +!WC_NO3/WR_ASO5=0.0 ! -!RP18/ETOH=0.0 +!WC_NO3/WR_AHSO5=0.0 ! -!RP18/ALCH=0.0 +!WC_NO3/WR_AHMS=0.0 ! -!RP18/ISOP=0.0 +!WC_N2O5/O3=0.0 ! -!RP18/BIOL=0.0 +!WC_N2O5/H2O2=0.0 ! -!RP18/BIOH=0.0 +!WC_N2O5/NO=0.0 ! -!RP18/MTBE=0.0 +!WC_N2O5/NO2=0.0 ! -!RP18/MVK=0.0 +!WC_N2O5/NO3=0.0 ! -!RP18/MCR=0.0 +!WC_N2O5/N2O5=+KTC6 + PJAC(:,47,6)=+TPK%KTC6(:) ! -!RP18/MGLY=0.0 +!WC_N2O5/HONO=0.0 ! -!RP18/GLY=0.0 +!WC_N2O5/HNO3=0.0 ! -!RP18/ORA1=0.0 +!WC_N2O5/HNO4=0.0 ! -!RP18/ORA2=0.0 +!WC_N2O5/NH3=0.0 ! -!RP18/ACID=0.0 +!WC_N2O5/SO2=0.0 ! -!RP18/UR28=0.0 +!WC_N2O5/SULF=0.0 ! -!RP18/UR21=0.0 +!WC_N2O5/CO=0.0 ! -!RP18/URG2=0.0 +!WC_N2O5/OH=0.0 ! -!RP18/UR26=0.0 +!WC_N2O5/HO2=0.0 ! -!RP18/RPG2=+0.4437492*K335*<OH> - PJAC(:,51,50)=+0.4437492*TPK%K335(:)*PCONC(:,15) +!WC_N2O5/CH4=0.0 ! -!RP18/RP18=-K337*<OH> - PJAC(:,51,51)=-TPK%K337(:)*PCONC(:,15) +!WC_N2O5/ETH=0.0 ! -!RP18/RPG3=0.0 +!WC_N2O5/ALKA=0.0 ! -!RP18/URG4=0.0 +!WC_N2O5/ALKE=0.0 ! -!RP18/UR8=0.0 +!WC_N2O5/BIO=0.0 ! -!RP18/UR17=0.0 +!WC_N2O5/ARO=0.0 ! -!RP18/UR7=0.0 +!WC_N2O5/HCHO=0.0 ! -!RP18/RPR3=0.0 +!WC_N2O5/ALD=0.0 ! -!RP18/URG6=0.0 +!WC_N2O5/KET=0.0 ! -!RP18/UR22=0.0 +!WC_N2O5/CARBO=0.0 ! -!RP18/URG7=0.0 +!WC_N2O5/ONIT=0.0 ! -!RP18/RPR4=0.0 +!WC_N2O5/PAN=0.0 ! -!RP18/RPR7=0.0 +!WC_N2O5/OP1=0.0 ! -!RP18/RPG7=0.0 +!WC_N2O5/OP2=0.0 ! -!RP18/URG8=0.0 +!WC_N2O5/ORA1=0.0 ! -!RP18/UR19=0.0 +!WC_N2O5/ORA2=0.0 ! -!RP18/URG9=0.0 +!WC_N2O5/MO2=0.0 ! -!RP18/AP7=0.0 +!WC_N2O5/ALKAP=0.0 ! -!RP18/URG10=0.0 +!WC_N2O5/ALKEP=0.0 ! -!RP18/RPR1=0.0 +!WC_N2O5/BIOP=0.0 ! -!RP18/RPR5=0.0 +!WC_N2O5/PHO=0.0 ! -!RP18/RPR8=0.0 +!WC_N2O5/ADD=0.0 ! -!RP18/RP10=0.0 +!WC_N2O5/AROP=0.0 ! -!RP18/RP11=0.0 +!WC_N2O5/CARBOP=0.0 ! -!RP18/RP16=0.0 +!WC_N2O5/OLN=0.0 ! -!RP18/RPRL=0.0 +!WC_N2O5/XO2=0.0 ! -!RP18/APAN=0.0 +!WC_N2O5/WC_O3=0.0 ! -!RP18/PAN1=0.0 +!WC_N2O5/WC_H2O2=0.0 ! -!RP18/PAN2=0.0 +!WC_N2O5/WC_NO=0.0 ! -!RP18/PAN3=0.0 +!WC_N2O5/WC_NO2=0.0 ! -!RP18/PAN4=0.0 +!WC_N2O5/WC_NO3=0.0 ! -!RP18/PAN6=0.0 +!WC_N2O5/WC_N2O5=-KTC26-KC14 + PJAC(:,47,47)=-TPK%KTC26(:)-TPK%KC14(:) ! -!RP18/PAN7=0.0 +!WC_N2O5/WC_HONO=0.0 ! -!RP18/PAN8=0.0 +!WC_N2O5/WC_HNO3=0.0 ! -!RP18/PN10=0.0 +!WC_N2O5/WC_HNO4=0.0 ! -!RP18/RO2T=0.0 +!WC_N2O5/WC_NH3=0.0 ! -!RP18/RO21=0.0 +!WC_N2O5/WC_OH=0.0 ! -!RP18/RO25=0.0 +!WC_N2O5/WC_HO2=0.0 ! -!RPG3/NO=+0.3000000*K231*<RO233>+0.3000000*K252*<RO236> - PJAC(:,52,1)=+0.3000000*TPK%K231(:)*TPK%RO233(:)+0.3000000*TPK%K252(:)*TPK%RO2& -&36(:) +!WC_N2O5/WC_CO2=0.0 ! -!RPG3/NO2=0.0 +!WC_N2O5/WC_SO2=0.0 ! -!RPG3/O3=0.0 +!WC_N2O5/WC_SULF=0.0 ! -!RPG3/HONO=0.0 +!WC_N2O5/WC_HCHO=0.0 ! -!RPG3/HNO3=0.0 +!WC_N2O5/WC_ORA1=0.0 ! -!RPG3/HNO4=0.0 +!WC_N2O5/WC_ORA2=0.0 ! -!RPG3/N2O5=0.0 +!WC_N2O5/WC_MO2=0.0 ! -!RPG3/NO3=0.0 +!WC_N2O5/WC_OP1=0.0 ! -!RPG3/NH3=0.0 +!WC_N2O5/WC_ASO3=0.0 ! -!RPG3/HO2=+0.3000000*K233*<RO233>+0.3000000*K254*<RO236> - PJAC(:,52,10)=+0.3000000*TPK%K233(:)*TPK%RO233(:)+0.3000000*TPK%K254(:)*TPK%RO& -&236(:) +!WC_N2O5/WC_ASO4=0.0 ! -!RPG3/CO=0.0 +!WC_N2O5/WC_ASO5=0.0 ! -!RPG3/H2O2=0.0 +!WC_N2O5/WC_AHSO5=0.0 ! -!RPG3/SO2=0.0 +!WC_N2O5/WC_AHMS=0.0 ! -!RPG3/H2SO4=0.0 +!WC_N2O5/WR_O3=0.0 ! -!RPG3/OH=-K334*<RPG3> - PJAC(:,52,15)=-TPK%K334(:)*PCONC(:,52) +!WC_N2O5/WR_H2O2=0.0 ! -!RPG3/ETHE=0.0 +!WC_N2O5/WR_NO=0.0 ! -!RPG3/OLEL=0.0 +!WC_N2O5/WR_NO2=0.0 ! -!RPG3/OLEH=0.0 +!WC_N2O5/WR_NO3=0.0 ! -!RPG3/ALKL=0.0 +!WC_N2O5/WR_N2O5=0.0 ! -!RPG3/ALKM=0.0 +!WC_N2O5/WR_HONO=0.0 ! -!RPG3/ALKH=0.0 +!WC_N2O5/WR_HNO3=0.0 ! -!RPG3/AROH=0.0 +!WC_N2O5/WR_HNO4=0.0 ! -!RPG3/AROL=0.0 +!WC_N2O5/WR_NH3=0.0 ! -!RPG3/AROO=0.0 +!WC_N2O5/WR_OH=0.0 ! -!RPG3/ARAL=0.0 +!WC_N2O5/WR_HO2=0.0 ! -!RPG3/ARAC=0.0 +!WC_N2O5/WR_CO2=0.0 ! -!RPG3/PAH=0.0 +!WC_N2O5/WR_SO2=0.0 ! -!RPG3/HCHO=0.0 +!WC_N2O5/WR_SULF=0.0 ! -!RPG3/ALD2=0.0 +!WC_N2O5/WR_HCHO=0.0 ! -!RPG3/KETL=0.0 +!WC_N2O5/WR_ORA1=0.0 ! -!RPG3/KETH=0.0 +!WC_N2O5/WR_ORA2=0.0 ! -!RPG3/MEOH=0.0 +!WC_N2O5/WR_MO2=0.0 ! -!RPG3/ETOH=0.0 +!WC_N2O5/WR_OP1=0.0 ! -!RPG3/ALCH=0.0 +!WC_N2O5/WR_ASO3=0.0 ! -!RPG3/ISOP=0.0 +!WC_N2O5/WR_ASO4=0.0 ! -!RPG3/BIOL=0.0 +!WC_N2O5/WR_ASO5=0.0 ! -!RPG3/BIOH=0.0 +!WC_N2O5/WR_AHSO5=0.0 ! -!RPG3/MTBE=0.0 +!WC_N2O5/WR_AHMS=0.0 ! -!RPG3/MVK=0.0 +!WC_HONO/O3=0.0 ! -!RPG3/MCR=0.0 +!WC_HONO/H2O2=0.0 ! -!RPG3/MGLY=0.0 +!WC_HONO/NO=0.0 ! -!RPG3/GLY=0.0 +!WC_HONO/NO2=0.0 ! -!RPG3/ORA1=0.0 +!WC_HONO/NO3=0.0 ! -!RPG3/ORA2=0.0 +!WC_HONO/N2O5=0.0 ! -!RPG3/ACID=0.0 +!WC_HONO/HONO=+KTC7 + PJAC(:,48,7)=+TPK%KTC7(:) ! -!RPG3/UR28=0.0 +!WC_HONO/HNO3=0.0 ! -!RPG3/UR21=0.0 +!WC_HONO/HNO4=0.0 ! -!RPG3/URG2=0.0 +!WC_HONO/NH3=0.0 ! -!RPG3/UR26=0.0 +!WC_HONO/SO2=0.0 ! -!RPG3/RPG2=0.0 +!WC_HONO/SULF=0.0 ! -!RPG3/RP18=0.0 +!WC_HONO/CO=0.0 ! -!RPG3/RPG3=-K334*<OH> - PJAC(:,52,52)=-TPK%K334(:)*PCONC(:,15) +!WC_HONO/OH=0.0 ! -!RPG3/URG4=0.0 +!WC_HONO/HO2=0.0 ! -!RPG3/UR8=0.0 +!WC_HONO/CH4=0.0 ! -!RPG3/UR17=0.0 +!WC_HONO/ETH=0.0 ! -!RPG3/UR7=0.0 +!WC_HONO/ALKA=0.0 ! -!RPG3/RPR3=0.0 +!WC_HONO/ALKE=0.0 ! -!RPG3/URG6=0.0 +!WC_HONO/BIO=0.0 ! -!RPG3/UR22=0.0 +!WC_HONO/ARO=0.0 ! -!RPG3/URG7=0.0 +!WC_HONO/HCHO=0.0 ! -!RPG3/RPR4=0.0 +!WC_HONO/ALD=0.0 ! -!RPG3/RPR7=0.0 +!WC_HONO/KET=0.0 ! -!RPG3/RPG7=0.0 +!WC_HONO/CARBO=0.0 ! -!RPG3/URG8=0.0 +!WC_HONO/ONIT=0.0 ! -!RPG3/UR19=0.0 +!WC_HONO/PAN=0.0 ! -!RPG3/URG9=0.0 +!WC_HONO/OP1=0.0 ! -!RPG3/AP7=0.0 +!WC_HONO/OP2=0.0 ! -!RPG3/URG10=0.0 +!WC_HONO/ORA1=0.0 ! -!RPG3/RPR1=0.0 +!WC_HONO/ORA2=0.0 ! -!RPG3/RPR5=0.0 +!WC_HONO/MO2=0.0 ! -!RPG3/RPR8=0.0 +!WC_HONO/ALKAP=0.0 ! -!RPG3/RP10=0.0 +!WC_HONO/ALKEP=0.0 ! -!RPG3/RP11=0.0 +!WC_HONO/BIOP=0.0 ! -!RPG3/RP16=0.0 +!WC_HONO/PHO=0.0 ! -!RPG3/RPRL=0.0 +!WC_HONO/ADD=0.0 ! -!RPG3/APAN=0.0 +!WC_HONO/AROP=0.0 ! -!RPG3/PAN1=0.0 +!WC_HONO/CARBOP=0.0 ! -!RPG3/PAN2=0.0 +!WC_HONO/OLN=0.0 ! -!RPG3/PAN3=0.0 +!WC_HONO/XO2=0.0 ! -!RPG3/PAN4=0.0 +!WC_HONO/WC_O3=0.0 ! -!RPG3/PAN6=0.0 +!WC_HONO/WC_H2O2=0.0 ! -!RPG3/PAN7=0.0 +!WC_HONO/WC_NO=0.0 ! -!RPG3/PAN8=0.0 +!WC_HONO/WC_NO2=0.0 ! -!RPG3/PN10=0.0 +!WC_HONO/WC_NO3=0.0 ! -!RPG3/RO2T=+1.0000000*K232*<RO233>+1.0000000*K253*<RO236> - PJAC(:,52,85)=+1.0000000*TPK%K232(:)*TPK%RO233(:)+1.0000000*TPK%K253(:)*TPK%RO& -&236(:) +!WC_HONO/WC_N2O5=0.0 ! -!RPG3/RO21=0.0 +!WC_HONO/WC_HONO=-KTC27-KC8*<WC_OH> + PJAC(:,48,48)=-TPK%KTC27(:)-TPK%KC8(:)*PCONC(:,52) ! -!RPG3/RO25=0.0 +!WC_HONO/WC_HNO3=0.0 ! -!URG4/NO=0.0 +!WC_HONO/WC_HNO4=+KC11 + PJAC(:,48,50)=+TPK%KC11(:) ! -!URG4/NO2=0.0 +!WC_HONO/WC_NH3=0.0 ! -!URG4/O3=-02*K086*<BIOL> - PJAC(:,53,3)=-02*TPK%K086(:)*PCONC(:,36) +!WC_HONO/WC_OH=-KC8*<WC_HONO> + PJAC(:,48,52)=-TPK%KC8(:)*PCONC(:,48) ! -!URG4/HONO=0.0 +!WC_HONO/WC_HO2=0.0 ! -!URG4/HNO3=0.0 +!WC_HONO/WC_CO2=0.0 ! -!URG4/HNO4=0.0 +!WC_HONO/WC_SO2=0.0 ! -!URG4/N2O5=0.0 +!WC_HONO/WC_SULF=0.0 ! -!URG4/NO3=0.0 +!WC_HONO/WC_HCHO=0.0 ! -!URG4/NH3=0.0 +!WC_HONO/WC_ORA1=0.0 ! -!URG4/HO2=+1.0000000*K318*<RO256>+1.0000000*K332*<RO257> - PJAC(:,53,10)=+1.0000000*TPK%K318(:)*TPK%RO256(:)+1.0000000*TPK%K332(:)*TPK%RO& -&257(:) +!WC_HONO/WC_ORA2=0.0 ! -!URG4/CO=0.0 +!WC_HONO/WC_MO2=0.0 ! -!URG4/H2O2=0.0 +!WC_HONO/WC_OP1=0.0 ! -!URG4/SO2=0.0 +!WC_HONO/WC_ASO3=0.0 ! -!URG4/H2SO4=0.0 +!WC_HONO/WC_ASO4=0.0 ! -!URG4/OH=0.0 +!WC_HONO/WC_ASO5=0.0 ! -!URG4/ETHE=0.0 +!WC_HONO/WC_AHSO5=0.0 ! -!URG4/OLEL=0.0 +!WC_HONO/WC_AHMS=0.0 ! -!URG4/OLEH=0.0 +!WC_HONO/WR_O3=0.0 ! -!URG4/ALKL=0.0 +!WC_HONO/WR_H2O2=0.0 ! -!URG4/ALKM=0.0 +!WC_HONO/WR_NO=0.0 ! -!URG4/ALKH=0.0 +!WC_HONO/WR_NO2=0.0 ! -!URG4/AROH=0.0 +!WC_HONO/WR_NO3=0.0 ! -!URG4/AROL=0.0 +!WC_HONO/WR_N2O5=0.0 ! -!URG4/AROO=0.0 +!WC_HONO/WR_HONO=0.0 ! -!URG4/ARAL=0.0 +!WC_HONO/WR_HNO3=0.0 ! -!URG4/ARAC=0.0 +!WC_HONO/WR_HNO4=0.0 ! -!URG4/PAH=0.0 +!WC_HONO/WR_NH3=0.0 ! -!URG4/HCHO=0.0 +!WC_HONO/WR_OH=0.0 ! -!URG4/ALD2=0.0 +!WC_HONO/WR_HO2=0.0 ! -!URG4/KETL=0.0 +!WC_HONO/WR_CO2=0.0 ! -!URG4/KETH=0.0 +!WC_HONO/WR_SO2=0.0 ! -!URG4/MEOH=0.0 +!WC_HONO/WR_SULF=0.0 ! -!URG4/ETOH=0.0 +!WC_HONO/WR_HCHO=0.0 ! -!URG4/ALCH=0.0 +!WC_HONO/WR_ORA1=0.0 ! -!URG4/ISOP=0.0 +!WC_HONO/WR_ORA2=0.0 ! -!URG4/BIOL=-02*K086*<O3> - PJAC(:,53,36)=-02*TPK%K086(:)*PCONC(:,3) +!WC_HONO/WR_MO2=0.0 ! -!URG4/BIOH=0.0 +!WC_HONO/WR_OP1=0.0 ! -!URG4/MTBE=0.0 +!WC_HONO/WR_ASO3=0.0 ! -!URG4/MVK=0.0 +!WC_HONO/WR_ASO4=0.0 ! -!URG4/MCR=0.0 +!WC_HONO/WR_ASO5=0.0 ! -!URG4/MGLY=0.0 +!WC_HONO/WR_AHSO5=0.0 ! -!URG4/GLY=0.0 +!WC_HONO/WR_AHMS=0.0 ! -!URG4/ORA1=0.0 +!WC_HNO3/O3=0.0 ! -!URG4/ORA2=0.0 +!WC_HNO3/H2O2=0.0 ! -!URG4/ACID=0.0 +!WC_HNO3/NO=0.0 ! -!URG4/UR28=0.0 +!WC_HNO3/NO2=0.0 ! -!URG4/UR21=0.0 +!WC_HNO3/NO3=0.0 ! -!URG4/URG2=0.0 +!WC_HNO3/N2O5=0.0 ! -!URG4/UR26=0.0 +!WC_HNO3/HONO=0.0 ! -!URG4/RPG2=0.0 +!WC_HNO3/HNO3=+KTC8 + PJAC(:,49,8)=+TPK%KTC8(:) ! -!URG4/RP18=0.0 +!WC_HNO3/HNO4=0.0 ! -!URG4/RPG3=0.0 +!WC_HNO3/NH3=0.0 ! -!URG4/URG4=-K351 - PJAC(:,53,53)=-TPK%K351(:) +!WC_HNO3/SO2=0.0 ! -!URG4/UR8=0.0 +!WC_HNO3/SULF=0.0 ! -!URG4/UR17=0.0 +!WC_HNO3/CO=0.0 ! -!URG4/UR7=0.0 +!WC_HNO3/OH=0.0 ! -!URG4/RPR3=0.0 +!WC_HNO3/HO2=0.0 ! -!URG4/URG6=0.0 +!WC_HNO3/CH4=0.0 ! -!URG4/UR22=0.0 +!WC_HNO3/ETH=0.0 ! -!URG4/URG7=0.0 +!WC_HNO3/ALKA=0.0 ! -!URG4/RPR4=0.0 +!WC_HNO3/ALKE=0.0 ! -!URG4/RPR7=0.0 +!WC_HNO3/BIO=0.0 ! -!URG4/RPG7=0.0 +!WC_HNO3/ARO=0.0 ! -!URG4/URG8=0.0 +!WC_HNO3/HCHO=0.0 ! -!URG4/UR19=0.0 +!WC_HNO3/ALD=0.0 ! -!URG4/URG9=0.0 +!WC_HNO3/KET=0.0 ! -!URG4/AP7=0.0 +!WC_HNO3/CARBO=0.0 ! -!URG4/URG10=0.0 +!WC_HNO3/ONIT=0.0 ! -!URG4/RPR1=0.0 +!WC_HNO3/PAN=0.0 ! -!URG4/RPR5=0.0 +!WC_HNO3/OP1=0.0 ! -!URG4/RPR8=0.0 +!WC_HNO3/OP2=0.0 ! -!URG4/RP10=0.0 +!WC_HNO3/ORA1=0.0 ! -!URG4/RP11=0.0 +!WC_HNO3/ORA2=0.0 ! -!URG4/RP16=0.0 +!WC_HNO3/MO2=0.0 ! -!URG4/RPRL=0.0 +!WC_HNO3/ALKAP=0.0 ! -!URG4/APAN=0.0 +!WC_HNO3/ALKEP=0.0 ! -!URG4/PAN1=0.0 +!WC_HNO3/BIOP=0.0 ! -!URG4/PAN2=0.0 +!WC_HNO3/PHO=0.0 ! -!URG4/PAN3=0.0 +!WC_HNO3/ADD=0.0 ! -!URG4/PAN4=0.0 +!WC_HNO3/AROP=0.0 ! -!URG4/PAN6=0.0 +!WC_HNO3/CARBOP=0.0 ! -!URG4/PAN7=0.0 +!WC_HNO3/OLN=0.0 ! -!URG4/PAN8=0.0 +!WC_HNO3/XO2=0.0 ! -!URG4/PN10=0.0 +!WC_HNO3/WC_O3=0.0 ! -!URG4/RO2T=0.0 +!WC_HNO3/WC_H2O2=0.0 ! -!URG4/RO21=0.0 +!WC_HNO3/WC_NO=0.0 ! -!URG4/RO25=0.0 +!WC_HNO3/WC_NO2=0.0 ! -!UR8/NO=0.0 +!WC_HNO3/WC_NO3=+KC15*<WC_SULF>+KC16*<WC_SO2> + PJAC(:,49,46)=+TPK%KC15(:)*PCONC(:,56)+TPK%KC16(:)*PCONC(:,55) ! -!UR8/NO2=0.0 +!WC_HNO3/WC_N2O5=+KC14+KC14 + PJAC(:,49,47)=+TPK%KC14(:)+TPK%KC14(:) ! -!UR8/O3=+0.055*K090*<BIOH> - PJAC(:,54,3)=+0.055*TPK%K090(:)*PCONC(:,37) +!WC_HNO3/WC_HONO=0.0 ! -!UR8/HONO=0.0 +!WC_HNO3/WC_HNO3=-KTC28-KC13 + PJAC(:,49,49)=-TPK%KTC28(:)-TPK%KC13(:) ! -!UR8/HNO3=0.0 +!WC_HNO3/WC_HNO4=+KC12*<WC_SO2> + PJAC(:,49,50)=+TPK%KC12(:)*PCONC(:,55) ! -!UR8/HNO4=0.0 +!WC_HNO3/WC_NH3=0.0 ! -!UR8/N2O5=0.0 +!WC_HNO3/WC_OH=0.0 ! -!UR8/NO3=0.0 +!WC_HNO3/WC_HO2=0.0 ! -!UR8/NH3=0.0 +!WC_HNO3/WC_CO2=0.0 ! -!UR8/HO2=0.0 +!WC_HNO3/WC_SO2=+KC12*<WC_HNO4>+KC16*<WC_NO3> + PJAC(:,49,55)=+TPK%KC12(:)*PCONC(:,50)+TPK%KC16(:)*PCONC(:,46) ! -!UR8/CO=0.0 +!WC_HNO3/WC_SULF=+KC15*<WC_NO3> + PJAC(:,49,56)=+TPK%KC15(:)*PCONC(:,46) ! -!UR8/H2O2=0.0 +!WC_HNO3/WC_HCHO=0.0 ! -!UR8/SO2=0.0 +!WC_HNO3/WC_ORA1=0.0 ! -!UR8/H2SO4=0.0 +!WC_HNO3/WC_ORA2=0.0 ! -!UR8/OH=0.0 +!WC_HNO3/WC_MO2=0.0 ! -!UR8/ETHE=0.0 +!WC_HNO3/WC_OP1=0.0 ! -!UR8/OLEL=0.0 +!WC_HNO3/WC_ASO3=0.0 ! -!UR8/OLEH=0.0 +!WC_HNO3/WC_ASO4=0.0 ! -!UR8/ALKL=0.0 +!WC_HNO3/WC_ASO5=0.0 ! -!UR8/ALKM=0.0 +!WC_HNO3/WC_AHSO5=0.0 ! -!UR8/ALKH=0.0 +!WC_HNO3/WC_AHMS=0.0 ! -!UR8/AROH=0.0 +!WC_HNO3/WR_O3=0.0 ! -!UR8/AROL=0.0 +!WC_HNO3/WR_H2O2=0.0 ! -!UR8/AROO=0.0 +!WC_HNO3/WR_NO=0.0 ! -!UR8/ARAL=0.0 +!WC_HNO3/WR_NO2=0.0 ! -!UR8/ARAC=0.0 +!WC_HNO3/WR_NO3=0.0 ! -!UR8/PAH=0.0 +!WC_HNO3/WR_N2O5=0.0 ! -!UR8/HCHO=0.0 +!WC_HNO3/WR_HONO=0.0 ! -!UR8/ALD2=0.0 +!WC_HNO3/WR_HNO3=0.0 ! -!UR8/KETL=0.0 +!WC_HNO3/WR_HNO4=0.0 ! -!UR8/KETH=0.0 +!WC_HNO3/WR_NH3=0.0 ! -!UR8/MEOH=0.0 +!WC_HNO3/WR_OH=0.0 ! -!UR8/ETOH=0.0 +!WC_HNO3/WR_HO2=0.0 ! -!UR8/ALCH=0.0 +!WC_HNO3/WR_CO2=0.0 ! -!UR8/ISOP=0.0 +!WC_HNO3/WR_SO2=0.0 ! -!UR8/BIOL=0.0 +!WC_HNO3/WR_SULF=0.0 ! -!UR8/BIOH=+0.055*K090*<O3> - PJAC(:,54,37)=+0.055*TPK%K090(:)*PCONC(:,3) +!WC_HNO3/WR_HCHO=0.0 ! -!UR8/MTBE=0.0 +!WC_HNO3/WR_ORA1=0.0 ! -!UR8/MVK=0.0 +!WC_HNO3/WR_ORA2=0.0 ! -!UR8/MCR=0.0 +!WC_HNO3/WR_MO2=0.0 ! -!UR8/MGLY=0.0 +!WC_HNO3/WR_OP1=0.0 ! -!UR8/GLY=0.0 +!WC_HNO3/WR_ASO3=0.0 ! -!UR8/ORA1=0.0 +!WC_HNO3/WR_ASO4=0.0 ! -!UR8/ORA2=0.0 +!WC_HNO3/WR_ASO5=0.0 ! -!UR8/ACID=0.0 +!WC_HNO3/WR_AHSO5=0.0 ! -!UR8/UR28=0.0 +!WC_HNO3/WR_AHMS=0.0 ! -!UR8/UR21=0.0 +!WC_HNO4/O3=0.0 ! -!UR8/URG2=0.0 +!WC_HNO4/H2O2=0.0 ! -!UR8/UR26=0.0 +!WC_HNO4/NO=0.0 ! -!UR8/RPG2=0.0 +!WC_HNO4/NO2=0.0 ! -!UR8/RP18=0.0 +!WC_HNO4/NO3=0.0 ! -!UR8/RPG3=0.0 +!WC_HNO4/N2O5=0.0 ! -!UR8/URG4=0.0 +!WC_HNO4/HONO=0.0 ! -!UR8/UR8=-K358 - PJAC(:,54,54)=-TPK%K358(:) +!WC_HNO4/HNO3=0.0 ! -!UR8/UR17=0.0 +!WC_HNO4/HNO4=+KTC9 + PJAC(:,50,9)=+TPK%KTC9(:) ! -!UR8/UR7=0.0 +!WC_HNO4/NH3=0.0 ! -!UR8/RPR3=0.0 +!WC_HNO4/SO2=0.0 ! -!UR8/URG6=0.0 +!WC_HNO4/SULF=0.0 ! -!UR8/UR22=0.0 +!WC_HNO4/CO=0.0 ! -!UR8/URG7=0.0 +!WC_HNO4/OH=0.0 ! -!UR8/RPR4=0.0 +!WC_HNO4/HO2=0.0 ! -!UR8/RPR7=0.0 +!WC_HNO4/CH4=0.0 ! -!UR8/RPG7=0.0 +!WC_HNO4/ETH=0.0 ! -!UR8/URG8=0.0 +!WC_HNO4/ALKA=0.0 ! -!UR8/UR19=0.0 +!WC_HNO4/ALKE=0.0 ! -!UR8/URG9=0.0 +!WC_HNO4/BIO=0.0 ! -!UR8/AP7=0.0 +!WC_HNO4/ARO=0.0 ! -!UR8/URG10=0.0 +!WC_HNO4/HCHO=0.0 ! -!UR8/RPR1=0.0 +!WC_HNO4/ALD=0.0 ! -!UR8/RPR5=0.0 +!WC_HNO4/KET=0.0 ! -!UR8/RPR8=0.0 +!WC_HNO4/CARBO=0.0 ! -!UR8/RP10=0.0 +!WC_HNO4/ONIT=0.0 ! -!UR8/RP11=0.0 +!WC_HNO4/PAN=0.0 ! -!UR8/RP16=0.0 +!WC_HNO4/OP1=0.0 ! -!UR8/RPRL=0.0 +!WC_HNO4/OP2=0.0 ! -!UR8/APAN=0.0 +!WC_HNO4/ORA1=0.0 ! -!UR8/PAN1=0.0 +!WC_HNO4/ORA2=0.0 ! -!UR8/PAN2=0.0 +!WC_HNO4/MO2=0.0 ! -!UR8/PAN3=0.0 +!WC_HNO4/ALKAP=0.0 ! -!UR8/PAN4=0.0 +!WC_HNO4/ALKEP=0.0 ! -!UR8/PAN6=0.0 +!WC_HNO4/BIOP=0.0 ! -!UR8/PAN7=0.0 +!WC_HNO4/PHO=0.0 ! -!UR8/PAN8=0.0 +!WC_HNO4/ADD=0.0 ! -!UR8/PN10=0.0 +!WC_HNO4/AROP=0.0 ! -!UR8/RO2T=0.0 +!WC_HNO4/CARBOP=0.0 ! -!UR8/RO21=0.0 +!WC_HNO4/OLN=0.0 ! -!UR8/RO25=0.0 +!WC_HNO4/XO2=0.0 ! -!UR17/NO=+1.0000000*K204*<RO226> - PJAC(:,55,1)=+1.0000000*TPK%K204(:)*TPK%RO226(:) +!WC_HNO4/WC_O3=0.0 ! -!UR17/NO2=0.0 +!WC_HNO4/WC_H2O2=0.0 ! -!UR17/O3=0.0 +!WC_HNO4/WC_NO=0.0 ! -!UR17/HONO=0.0 +!WC_HNO4/WC_NO2=+KC9*<WC_HO2> + PJAC(:,50,45)=+TPK%KC9(:)*PCONC(:,53) ! -!UR17/HNO3=0.0 +!WC_HNO4/WC_NO3=0.0 ! -!UR17/HNO4=0.0 +!WC_HNO4/WC_N2O5=0.0 ! -!UR17/N2O5=0.0 +!WC_HNO4/WC_HONO=0.0 ! -!UR17/NO3=0.0 +!WC_HNO4/WC_HNO3=0.0 ! -!UR17/NH3=0.0 +!WC_HNO4/WC_HNO4=-KTC29-KC10-KC11-KC12*<WC_SO2> + PJAC(:,50,50)=-TPK%KTC29(:)-TPK%KC10(:)-TPK%KC11(:)-TPK%KC12(:)*PCONC(:,55) ! -!UR17/HO2=+1.0000000*K206*<RO226> - PJAC(:,55,10)=+1.0000000*TPK%K206(:)*TPK%RO226(:) +!WC_HNO4/WC_NH3=0.0 ! -!UR17/CO=0.0 +!WC_HNO4/WC_OH=0.0 ! -!UR17/H2O2=0.0 +!WC_HNO4/WC_HO2=+KC9*<WC_NO2> + PJAC(:,50,53)=+TPK%KC9(:)*PCONC(:,45) ! -!UR17/SO2=0.0 +!WC_HNO4/WC_CO2=0.0 ! -!UR17/H2SO4=0.0 +!WC_HNO4/WC_SO2=-KC12*<WC_HNO4> + PJAC(:,50,55)=-TPK%KC12(:)*PCONC(:,50) ! -!UR17/OH=0.0 +!WC_HNO4/WC_SULF=0.0 ! -!UR17/ETHE=0.0 +!WC_HNO4/WC_HCHO=0.0 ! -!UR17/OLEL=0.0 +!WC_HNO4/WC_ORA1=0.0 ! -!UR17/OLEH=0.0 +!WC_HNO4/WC_ORA2=0.0 ! -!UR17/ALKL=0.0 +!WC_HNO4/WC_MO2=0.0 ! -!UR17/ALKM=0.0 +!WC_HNO4/WC_OP1=0.0 ! -!UR17/ALKH=0.0 +!WC_HNO4/WC_ASO3=0.0 ! -!UR17/AROH=0.0 +!WC_HNO4/WC_ASO4=0.0 ! -!UR17/AROL=0.0 +!WC_HNO4/WC_ASO5=0.0 ! -!UR17/AROO=0.0 +!WC_HNO4/WC_AHSO5=0.0 ! -!UR17/ARAL=0.0 +!WC_HNO4/WC_AHMS=0.0 ! -!UR17/ARAC=0.0 +!WC_HNO4/WR_O3=0.0 ! -!UR17/PAH=0.0 +!WC_HNO4/WR_H2O2=0.0 ! -!UR17/HCHO=0.0 +!WC_HNO4/WR_NO=0.0 ! -!UR17/ALD2=0.0 +!WC_HNO4/WR_NO2=0.0 ! -!UR17/KETL=0.0 +!WC_HNO4/WR_NO3=0.0 ! -!UR17/KETH=0.0 +!WC_HNO4/WR_N2O5=0.0 ! -!UR17/MEOH=0.0 +!WC_HNO4/WR_HONO=0.0 ! -!UR17/ETOH=0.0 +!WC_HNO4/WR_HNO3=0.0 ! -!UR17/ALCH=0.0 +!WC_HNO4/WR_HNO4=0.0 ! -!UR17/ISOP=0.0 +!WC_HNO4/WR_NH3=0.0 ! -!UR17/BIOL=0.0 +!WC_HNO4/WR_OH=0.0 ! -!UR17/BIOH=0.0 +!WC_HNO4/WR_HO2=0.0 ! -!UR17/MTBE=0.0 +!WC_HNO4/WR_CO2=0.0 ! -!UR17/MVK=0.0 +!WC_HNO4/WR_SO2=0.0 ! -!UR17/MCR=0.0 +!WC_HNO4/WR_SULF=0.0 ! -!UR17/MGLY=0.0 +!WC_HNO4/WR_HCHO=0.0 ! -!UR17/GLY=0.0 +!WC_HNO4/WR_ORA1=0.0 ! -!UR17/ORA1=0.0 +!WC_HNO4/WR_ORA2=0.0 ! -!UR17/ORA2=0.0 +!WC_HNO4/WR_MO2=0.0 ! -!UR17/ACID=0.0 +!WC_HNO4/WR_OP1=0.0 ! -!UR17/UR28=0.0 +!WC_HNO4/WR_ASO3=0.0 ! -!UR17/UR21=0.0 +!WC_HNO4/WR_ASO4=0.0 ! -!UR17/URG2=0.0 +!WC_HNO4/WR_ASO5=0.0 ! -!UR17/UR26=0.0 +!WC_HNO4/WR_AHSO5=0.0 ! -!UR17/RPG2=0.0 +!WC_HNO4/WR_AHMS=0.0 ! -!UR17/RP18=0.0 +RETURN +END SUBROUTINE SUBJ9 ! -!UR17/RPG3=0.0 +SUBROUTINE SUBJ10 ! -!UR17/URG4=0.0 +!Indices 51 a 55 ! -!UR17/UR8=0.0 ! -!UR17/UR17=-K359 - PJAC(:,55,55)=-TPK%K359(:) +!WC_NH3/O3=0.0 ! -!UR17/UR7=0.0 +!WC_NH3/H2O2=0.0 ! -!UR17/RPR3=0.0 +!WC_NH3/NO=0.0 ! -!UR17/URG6=0.0 +!WC_NH3/NO2=0.0 ! -!UR17/UR22=0.0 +!WC_NH3/NO3=0.0 ! -!UR17/URG7=0.0 +!WC_NH3/N2O5=0.0 ! -!UR17/RPR4=0.0 +!WC_NH3/HONO=0.0 ! -!UR17/RPR7=0.0 +!WC_NH3/HNO3=0.0 ! -!UR17/RPG7=0.0 +!WC_NH3/HNO4=0.0 ! -!UR17/URG8=0.0 +!WC_NH3/NH3=+KTC10 + PJAC(:,51,10)=+TPK%KTC10(:) ! -!UR17/UR19=0.0 +!WC_NH3/SO2=0.0 ! -!UR17/URG9=0.0 +!WC_NH3/SULF=0.0 ! -!UR17/AP7=0.0 +!WC_NH3/CO=0.0 ! -!UR17/URG10=0.0 +!WC_NH3/OH=0.0 ! -!UR17/RPR1=0.0 +!WC_NH3/HO2=0.0 ! -!UR17/RPR5=0.0 +!WC_NH3/CH4=0.0 ! -!UR17/RPR8=0.0 +!WC_NH3/ETH=0.0 ! -!UR17/RP10=0.0 +!WC_NH3/ALKA=0.0 ! -!UR17/RP11=0.0 +!WC_NH3/ALKE=0.0 ! -!UR17/RP16=0.0 +!WC_NH3/BIO=0.0 ! -!UR17/RPRL=0.0 +!WC_NH3/ARO=0.0 ! -!UR17/APAN=0.0 +!WC_NH3/HCHO=0.0 ! -!UR17/PAN1=0.0 +!WC_NH3/ALD=0.0 ! -!UR17/PAN2=0.0 +!WC_NH3/KET=0.0 ! -!UR17/PAN3=0.0 +!WC_NH3/CARBO=0.0 ! -!UR17/PAN4=0.0 +!WC_NH3/ONIT=0.0 ! -!UR17/PAN6=0.0 +!WC_NH3/PAN=0.0 ! -!UR17/PAN7=0.0 +!WC_NH3/OP1=0.0 ! -!UR17/PAN8=0.0 +!WC_NH3/OP2=0.0 ! -!UR17/PN10=0.0 +!WC_NH3/ORA1=0.0 ! -!UR17/RO2T=+1.0000000*K205*<RO226> - PJAC(:,55,85)=+1.0000000*TPK%K205(:)*TPK%RO226(:) +!WC_NH3/ORA2=0.0 ! -!UR17/RO21=0.0 +!WC_NH3/MO2=0.0 ! -!UR17/RO25=0.0 +!WC_NH3/ALKAP=0.0 ! -RETURN -END SUBROUTINE SUBJ10 +!WC_NH3/ALKEP=0.0 ! -SUBROUTINE SUBJ11 +!WC_NH3/BIOP=0.0 ! -!Indices 56 a 60 +!WC_NH3/PHO=0.0 ! +!WC_NH3/ADD=0.0 ! -!UR7/NO=+TPK%CFA12*K207*<RO227>+0.3*K210*<RO228> - PJAC(:,56,1)=+TPK%CFA12*TPK%K207(:)*TPK%RO227(:)+0.3*TPK%K210(:)*TPK%RO228(:) +!WC_NH3/AROP=0.0 ! -!UR7/NO2=0.0 +!WC_NH3/CARBOP=0.0 ! -!UR7/O3=+0.055*K090*<BIOH> - PJAC(:,56,3)=+0.055*TPK%K090(:)*PCONC(:,37) +!WC_NH3/OLN=0.0 ! -!UR7/HONO=0.0 +!WC_NH3/XO2=0.0 ! -!UR7/HNO3=0.0 +!WC_NH3/WC_O3=0.0 ! -!UR7/HNO4=0.0 +!WC_NH3/WC_H2O2=0.0 ! -!UR7/N2O5=0.0 +!WC_NH3/WC_NO=0.0 ! -!UR7/NO3=0.0 +!WC_NH3/WC_NO2=0.0 ! -!UR7/NH3=0.0 +!WC_NH3/WC_NO3=0.0 ! -!UR7/HO2=+0.3*K209*<RO227>+0.3*K212*<RO228> - PJAC(:,56,10)=+0.3*TPK%K209(:)*TPK%RO227(:)+0.3*TPK%K212(:)*TPK%RO228(:) +!WC_NH3/WC_N2O5=0.0 ! -!UR7/CO=0.0 +!WC_NH3/WC_HONO=0.0 ! -!UR7/H2O2=0.0 +!WC_NH3/WC_HNO3=0.0 ! -!UR7/SO2=0.0 +!WC_NH3/WC_HNO4=0.0 ! -!UR7/H2SO4=0.0 +!WC_NH3/WC_NH3=-KTC30 + PJAC(:,51,51)=-TPK%KTC30(:) ! -!UR7/OH=0.0 +!WC_NH3/WC_OH=0.0 ! -!UR7/ETHE=0.0 +!WC_NH3/WC_HO2=0.0 ! -!UR7/OLEL=0.0 +!WC_NH3/WC_CO2=0.0 ! -!UR7/OLEH=0.0 +!WC_NH3/WC_SO2=0.0 ! -!UR7/ALKL=0.0 +!WC_NH3/WC_SULF=0.0 ! -!UR7/ALKM=0.0 +!WC_NH3/WC_HCHO=0.0 ! -!UR7/ALKH=0.0 +!WC_NH3/WC_ORA1=0.0 ! -!UR7/AROH=0.0 +!WC_NH3/WC_ORA2=0.0 ! -!UR7/AROL=0.0 +!WC_NH3/WC_MO2=0.0 ! -!UR7/AROO=0.0 +!WC_NH3/WC_OP1=0.0 ! -!UR7/ARAL=0.0 +!WC_NH3/WC_ASO3=0.0 ! -!UR7/ARAC=0.0 +!WC_NH3/WC_ASO4=0.0 ! -!UR7/PAH=0.0 +!WC_NH3/WC_ASO5=0.0 ! -!UR7/HCHO=0.0 +!WC_NH3/WC_AHSO5=0.0 ! -!UR7/ALD2=0.0 +!WC_NH3/WC_AHMS=0.0 ! -!UR7/KETL=0.0 +!WC_NH3/WR_O3=0.0 ! -!UR7/KETH=0.0 +!WC_NH3/WR_H2O2=0.0 ! -!UR7/MEOH=0.0 +!WC_NH3/WR_NO=0.0 ! -!UR7/ETOH=0.0 +!WC_NH3/WR_NO2=0.0 ! -!UR7/ALCH=0.0 +!WC_NH3/WR_NO3=0.0 ! -!UR7/ISOP=0.0 +!WC_NH3/WR_N2O5=0.0 ! -!UR7/BIOL=0.0 +!WC_NH3/WR_HONO=0.0 ! -!UR7/BIOH=+0.055*K090*<O3> - PJAC(:,56,37)=+0.055*TPK%K090(:)*PCONC(:,3) +!WC_NH3/WR_HNO3=0.0 ! -!UR7/MTBE=0.0 +!WC_NH3/WR_HNO4=0.0 ! -!UR7/MVK=0.0 +!WC_NH3/WR_NH3=0.0 ! -!UR7/MCR=0.0 +!WC_NH3/WR_OH=0.0 ! -!UR7/MGLY=0.0 +!WC_NH3/WR_HO2=0.0 ! -!UR7/GLY=0.0 +!WC_NH3/WR_CO2=0.0 ! -!UR7/ORA1=0.0 +!WC_NH3/WR_SO2=0.0 ! -!UR7/ORA2=0.0 +!WC_NH3/WR_SULF=0.0 ! -!UR7/ACID=0.0 +!WC_NH3/WR_HCHO=0.0 ! -!UR7/UR28=0.0 +!WC_NH3/WR_ORA1=0.0 ! -!UR7/UR21=0.0 +!WC_NH3/WR_ORA2=0.0 ! -!UR7/URG2=0.0 +!WC_NH3/WR_MO2=0.0 ! -!UR7/UR26=0.0 +!WC_NH3/WR_OP1=0.0 ! -!UR7/RPG2=0.0 +!WC_NH3/WR_ASO3=0.0 ! -!UR7/RP18=0.0 +!WC_NH3/WR_ASO4=0.0 ! -!UR7/RPG3=0.0 +!WC_NH3/WR_ASO5=0.0 ! -!UR7/URG4=0.0 +!WC_NH3/WR_AHSO5=0.0 ! -!UR7/UR8=0.0 +!WC_NH3/WR_AHMS=0.0 ! -!UR7/UR17=0.0 +!WC_OH/O3=0.0 ! -!UR7/UR7=-K357 - PJAC(:,56,56)=-TPK%K357(:) +!WC_OH/H2O2=0.0 ! -!UR7/RPR3=0.0 +!WC_OH/NO=0.0 ! -!UR7/URG6=0.0 +!WC_OH/NO2=0.0 ! -!UR7/UR22=0.0 +!WC_OH/NO3=0.0 ! -!UR7/URG7=0.0 +!WC_OH/N2O5=0.0 ! -!UR7/RPR4=0.0 +!WC_OH/HONO=0.0 ! -!UR7/RPR7=0.0 +!WC_OH/HNO3=0.0 ! -!UR7/RPG7=0.0 +!WC_OH/HNO4=0.0 ! -!UR7/URG8=0.0 +!WC_OH/NH3=0.0 ! -!UR7/UR19=0.0 +!WC_OH/SO2=0.0 ! -!UR7/URG9=0.0 +!WC_OH/SULF=0.0 ! -!UR7/AP7=0.0 +!WC_OH/CO=0.0 ! -!UR7/URG10=0.0 +!WC_OH/OH=+KTC11 + PJAC(:,52,14)=+TPK%KTC11(:) ! -!UR7/RPR1=0.0 +!WC_OH/HO2=0.0 ! -!UR7/RPR5=0.0 +!WC_OH/CH4=0.0 ! -!UR7/RPR8=0.0 +!WC_OH/ETH=0.0 ! -!UR7/RP10=0.0 +!WC_OH/ALKA=0.0 ! -!UR7/RP11=0.0 +!WC_OH/ALKE=0.0 ! -!UR7/RP16=0.0 +!WC_OH/BIO=0.0 ! -!UR7/RPRL=0.0 +!WC_OH/ARO=0.0 ! -!UR7/APAN=0.0 +!WC_OH/HCHO=0.0 ! -!UR7/PAN1=0.0 +!WC_OH/ALD=0.0 ! -!UR7/PAN2=0.0 +!WC_OH/KET=0.0 ! -!UR7/PAN3=0.0 +!WC_OH/CARBO=0.0 ! -!UR7/PAN4=0.0 +!WC_OH/ONIT=0.0 ! -!UR7/PAN6=0.0 +!WC_OH/PAN=0.0 ! -!UR7/PAN7=0.0 +!WC_OH/OP1=0.0 ! -!UR7/PAN8=0.0 +!WC_OH/OP2=0.0 ! -!UR7/PN10=0.0 +!WC_OH/ORA1=0.0 ! -!UR7/RO2T=+K208*<RO227>+0.3*K211*<RO228> - PJAC(:,56,85)=+TPK%K208(:)*TPK%RO227(:)+0.3*TPK%K211(:)*TPK%RO228(:) +!WC_OH/ORA2=0.0 ! -!UR7/RO21=0.0 +!WC_OH/MO2=0.0 ! -!UR7/RO25=0.0 +!WC_OH/ALKAP=0.0 ! -!RPR3/NO=+TPK%CFA10*K198*<RO224>+K201*<RO225> - PJAC(:,57,1)=+TPK%CFA10*TPK%K198(:)*TPK%RO224(:)+TPK%K201(:)*TPK%RO225(:) +!WC_OH/ALKEP=0.0 ! -!RPR3/NO2=0.0 +!WC_OH/BIOP=0.0 ! -!RPR3/O3=+0.055*K086*<BIOL> - PJAC(:,57,3)=+0.055*TPK%K086(:)*PCONC(:,36) +!WC_OH/PHO=0.0 ! -!RPR3/HONO=0.0 +!WC_OH/ADD=0.0 ! -!RPR3/HNO3=0.0 +!WC_OH/AROP=0.0 ! -!RPR3/HNO4=0.0 +!WC_OH/CARBOP=0.0 ! -!RPR3/N2O5=0.0 +!WC_OH/OLN=0.0 ! -!RPR3/NO3=-K313*<RPR3> - PJAC(:,57,8)=-TPK%K313(:)*PCONC(:,57) +!WC_OH/XO2=0.0 ! -!RPR3/NH3=0.0 +!WC_OH/WC_O3=+KC6*<WC_HO2> + PJAC(:,52,42)=+TPK%KC6(:)*PCONC(:,53) ! -!RPR3/HO2=+K200*<RO224>+K203*<RO225> - PJAC(:,57,10)=+TPK%K200(:)*TPK%RO224(:)+TPK%K203(:)*TPK%RO225(:) +!WC_OH/WC_H2O2=+KC1+KC1-KC4*<WC_OH> + PJAC(:,52,43)=+TPK%KC1(:)+TPK%KC1(:)-TPK%KC4(:)*PCONC(:,52) ! -!RPR3/CO=0.0 +!WC_OH/WC_NO=0.0 ! -!RPR3/H2O2=0.0 +!WC_OH/WC_NO2=0.0 ! -!RPR3/SO2=0.0 +!WC_OH/WC_NO3=0.0 ! -!RPR3/H2SO4=0.0 +!WC_OH/WC_N2O5=0.0 ! -!RPR3/OH=-K312*<RPR3> - PJAC(:,57,15)=-TPK%K312(:)*PCONC(:,57) +!WC_OH/WC_HONO=-KC8*<WC_OH> + PJAC(:,52,48)=-TPK%KC8(:)*PCONC(:,52) ! -!RPR3/ETHE=0.0 +!WC_OH/WC_HNO3=+KC13 + PJAC(:,52,49)=+TPK%KC13(:) ! -!RPR3/OLEL=0.0 +!WC_OH/WC_HNO4=0.0 ! -!RPR3/OLEH=0.0 +!WC_OH/WC_NH3=0.0 ! -!RPR3/ALKL=0.0 +!WC_OH/WC_OH=-KTC31-KC2*<WC_OH>-KC2*<WC_OH>-KC2*<WC_OH>-KC2*<WC_OH>-KC3*<WC_HO2 +!>-KC4*<WC_H2O2>-KC7*<WC_SO2>-KC8*<WC_HONO>-KC19*<WC_HCHO>-KC20*<WC_ORA1>-KC23* +!<WC_AHMS> + PJAC(:,52,52)=-TPK%KTC31(:)-TPK%KC2(:)*PCONC(:,52)-TPK%KC2(:)*PCONC(:,52)-TPK%& +&KC2(:)*PCONC(:,52)-TPK%KC2(:)*PCONC(:,52)-TPK%KC3(:)*PCONC(:,53)-TPK%KC4(:)*PC& +&ONC(:,43)-TPK%KC7(:)*PCONC(:,55)-TPK%KC8(:)*PCONC(:,48)-TPK%KC19(:)*PCONC(:,57& +&)-TPK%KC20(:)*PCONC(:,58)-TPK%KC23(:)*PCONC(:,66) ! -!RPR3/ALKM=0.0 +!WC_OH/WC_HO2=-KC3*<WC_OH>+KC6*<WC_O3> + PJAC(:,52,53)=-TPK%KC3(:)*PCONC(:,52)+TPK%KC6(:)*PCONC(:,42) ! -!RPR3/ALKH=0.0 +!WC_OH/WC_CO2=0.0 ! -!RPR3/AROH=0.0 +!WC_OH/WC_SO2=-KC7*<WC_OH> + PJAC(:,52,55)=-TPK%KC7(:)*PCONC(:,52) ! -!RPR3/AROL=0.0 +!WC_OH/WC_SULF=0.0 ! -!RPR3/AROO=0.0 +!WC_OH/WC_HCHO=-KC19*<WC_OH> + PJAC(:,52,57)=-TPK%KC19(:)*PCONC(:,52) ! -!RPR3/ARAL=0.0 +!WC_OH/WC_ORA1=-KC20*<WC_OH> + PJAC(:,52,58)=-TPK%KC20(:)*PCONC(:,52) ! -!RPR3/ARAC=0.0 +!WC_OH/WC_ORA2=0.0 ! -!RPR3/PAH=0.0 +!WC_OH/WC_MO2=0.0 ! -!RPR3/HCHO=0.0 +!WC_OH/WC_OP1=0.0 ! -!RPR3/ALD2=0.0 +!WC_OH/WC_ASO3=0.0 ! -!RPR3/KETL=0.0 +!WC_OH/WC_ASO4=+KC28 + PJAC(:,52,63)=+TPK%KC28(:) ! -!RPR3/KETH=0.0 +!WC_OH/WC_ASO5=0.0 ! -!RPR3/MEOH=0.0 +!WC_OH/WC_AHSO5=0.0 ! -!RPR3/ETOH=0.0 +!WC_OH/WC_AHMS=-KC23*<WC_OH> + PJAC(:,52,66)=-TPK%KC23(:)*PCONC(:,52) ! -!RPR3/ALCH=0.0 +!WC_OH/WR_O3=0.0 ! -!RPR3/ISOP=0.0 +!WC_OH/WR_H2O2=0.0 ! -!RPR3/BIOL=+0.055*K086*<O3> - PJAC(:,57,36)=+0.055*TPK%K086(:)*PCONC(:,3) +!WC_OH/WR_NO=0.0 ! -!RPR3/BIOH=0.0 +!WC_OH/WR_NO2=0.0 ! -!RPR3/MTBE=0.0 +!WC_OH/WR_NO3=0.0 ! -!RPR3/MVK=0.0 +!WC_OH/WR_N2O5=0.0 ! -!RPR3/MCR=0.0 +!WC_OH/WR_HONO=0.0 ! -!RPR3/MGLY=0.0 +!WC_OH/WR_HNO3=0.0 ! -!RPR3/GLY=0.0 +!WC_OH/WR_HNO4=0.0 ! -!RPR3/ORA1=0.0 +!WC_OH/WR_NH3=0.0 ! -!RPR3/ORA2=0.0 +!WC_OH/WR_OH=0.0 ! -!RPR3/ACID=0.0 +!WC_OH/WR_HO2=0.0 ! -!RPR3/UR28=0.0 +!WC_OH/WR_CO2=0.0 ! -!RPR3/UR21=0.0 +!WC_OH/WR_SO2=0.0 ! -!RPR3/URG2=0.0 +!WC_OH/WR_SULF=0.0 ! -!RPR3/UR26=0.0 +!WC_OH/WR_HCHO=0.0 ! -!RPR3/RPG2=0.0 +!WC_OH/WR_ORA1=0.0 ! -!RPR3/RP18=0.0 +!WC_OH/WR_ORA2=0.0 ! -!RPR3/RPG3=0.0 +!WC_OH/WR_MO2=0.0 ! -!RPR3/URG4=0.0 +!WC_OH/WR_OP1=0.0 ! -!RPR3/UR8=0.0 +!WC_OH/WR_ASO3=0.0 ! -!RPR3/UR17=0.0 +!WC_OH/WR_ASO4=0.0 ! -!RPR3/UR7=0.0 +!WC_OH/WR_ASO5=0.0 ! -!RPR3/RPR3=-K312*<OH>-K313*<NO3>-K314 - PJAC(:,57,57)=-TPK%K312(:)*PCONC(:,15)-TPK%K313(:)*PCONC(:,8)-TPK%K314(:) +!WC_OH/WR_AHSO5=0.0 ! -!RPR3/URG6=0.0 +!WC_OH/WR_AHMS=0.0 ! -!RPR3/UR22=0.0 +!WC_HO2/O3=0.0 ! -!RPR3/URG7=0.0 +!WC_HO2/H2O2=0.0 ! -!RPR3/RPR4=0.0 +!WC_HO2/NO=0.0 ! -!RPR3/RPR7=0.0 +!WC_HO2/NO2=0.0 ! -!RPR3/RPG7=0.0 +!WC_HO2/NO3=0.0 ! -!RPR3/URG8=0.0 +!WC_HO2/N2O5=0.0 ! -!RPR3/UR19=0.0 +!WC_HO2/HONO=0.0 ! -!RPR3/URG9=0.0 +!WC_HO2/HNO3=0.0 ! -!RPR3/AP7=0.0 +!WC_HO2/HNO4=0.0 ! -!RPR3/URG10=0.0 +!WC_HO2/NH3=0.0 ! -!RPR3/RPR1=0.0 +!WC_HO2/SO2=0.0 ! -!RPR3/RPR5=0.0 +!WC_HO2/SULF=0.0 ! -!RPR3/RPR8=0.0 +!WC_HO2/CO=0.0 ! -!RPR3/RP10=0.0 +!WC_HO2/OH=0.0 ! -!RPR3/RP11=0.0 +!WC_HO2/HO2=+KTC12 + PJAC(:,53,15)=+TPK%KTC12(:) ! -!RPR3/RP16=0.0 +!WC_HO2/CH4=0.0 ! -!RPR3/RPRL=0.0 +!WC_HO2/ETH=0.0 ! -!RPR3/APAN=0.0 +!WC_HO2/ALKA=0.0 ! -!RPR3/PAN1=0.0 +!WC_HO2/ALKE=0.0 ! -!RPR3/PAN2=0.0 +!WC_HO2/BIO=0.0 ! -!RPR3/PAN3=0.0 +!WC_HO2/ARO=0.0 ! -!RPR3/PAN4=0.0 +!WC_HO2/HCHO=0.0 ! -!RPR3/PAN6=0.0 +!WC_HO2/ALD=0.0 ! -!RPR3/PAN7=0.0 +!WC_HO2/KET=0.0 ! -!RPR3/PAN8=0.0 +!WC_HO2/CARBO=0.0 ! -!RPR3/PN10=0.0 +!WC_HO2/ONIT=0.0 ! -!RPR3/RO2T=+K199*<RO224>+K202*<RO225> - PJAC(:,57,85)=+TPK%K199(:)*TPK%RO224(:)+TPK%K202(:)*TPK%RO225(:) +!WC_HO2/PAN=0.0 ! -!RPR3/RO21=0.0 +!WC_HO2/OP1=0.0 ! -!RPR3/RO25=0.0 +!WC_HO2/OP2=0.0 ! -!URG6/NO=+TPK%CF21*K177*<RO217>+TPK%CF43*K195*<RO223> - PJAC(:,58,1)=+TPK%CF21*TPK%K177(:)*TPK%RO217(:)+TPK%CF43*TPK%K195(:)*TPK%RO223& -&(:) +!WC_HO2/ORA1=0.0 ! -!URG6/NO2=0.0 +!WC_HO2/ORA2=0.0 ! -!URG6/O3=0.0 +!WC_HO2/MO2=0.0 ! -!URG6/HONO=0.0 +!WC_HO2/ALKAP=0.0 ! -!URG6/HNO3=0.0 +!WC_HO2/ALKEP=0.0 ! -!URG6/HNO4=0.0 +!WC_HO2/BIOP=0.0 ! -!URG6/N2O5=0.0 +!WC_HO2/PHO=0.0 ! -!URG6/NO3=0.0 +!WC_HO2/ADD=0.0 ! -!URG6/NH3=0.0 +!WC_HO2/AROP=0.0 ! -!URG6/HO2=0.0 +!WC_HO2/CARBOP=0.0 ! -!URG6/CO=0.0 +!WC_HO2/OLN=0.0 ! -!URG6/H2O2=0.0 +!WC_HO2/XO2=0.0 ! -!URG6/SO2=0.0 +!WC_HO2/WC_O3=-KC6*<WC_HO2> + PJAC(:,53,42)=-TPK%KC6(:)*PCONC(:,53) ! -!URG6/H2SO4=0.0 +!WC_HO2/WC_H2O2=+KC4*<WC_OH> + PJAC(:,53,43)=+TPK%KC4(:)*PCONC(:,52) ! -!URG6/OH=+0.4978440*K323*<RPG7> - PJAC(:,58,15)=+0.4978440*TPK%K323(:)*PCONC(:,63) +!WC_HO2/WC_NO=0.0 ! -!URG6/ETHE=0.0 +!WC_HO2/WC_NO2=-KC9*<WC_HO2> + PJAC(:,53,45)=-TPK%KC9(:)*PCONC(:,53) ! -!URG6/OLEL=0.0 +!WC_HO2/WC_NO3=0.0 ! -!URG6/OLEH=0.0 +!WC_HO2/WC_N2O5=0.0 ! -!URG6/ALKL=0.0 +!WC_HO2/WC_HONO=0.0 ! -!URG6/ALKM=0.0 +!WC_HO2/WC_HNO3=0.0 ! -!URG6/ALKH=0.0 +!WC_HO2/WC_HNO4=+KC10 + PJAC(:,53,50)=+TPK%KC10(:) ! -!URG6/AROH=0.0 +!WC_HO2/WC_NH3=0.0 ! -!URG6/AROL=0.0 +!WC_HO2/WC_OH=-KC3*<WC_HO2>+KC4*<WC_H2O2>+KC19*<WC_HCHO>+KC20*<WC_ORA1>+KC23*<W +!C_AHMS> + PJAC(:,53,52)=-TPK%KC3(:)*PCONC(:,53)+TPK%KC4(:)*PCONC(:,43)+TPK%KC19(:)*PCONC& +&(:,57)+TPK%KC20(:)*PCONC(:,58)+TPK%KC23(:)*PCONC(:,66) ! -!URG6/AROO=0.0 +!WC_HO2/WC_HO2=-KTC32-KC3*<WC_OH>-KC5*<WC_HO2>-KC5*<WC_HO2>-KC5*<WC_HO2>-KC5*<W +!C_HO2>-KC6*<WC_O3>-KC9*<WC_NO2>-KC25*<WC_ASO5> + PJAC(:,53,53)=-TPK%KTC32(:)-TPK%KC3(:)*PCONC(:,52)-TPK%KC5(:)*PCONC(:,53)-TPK%& +&KC5(:)*PCONC(:,53)-TPK%KC5(:)*PCONC(:,53)-TPK%KC5(:)*PCONC(:,53)-TPK%KC6(:)*PC& +&ONC(:,42)-TPK%KC9(:)*PCONC(:,45)-TPK%KC25(:)*PCONC(:,64) ! -!URG6/ARAL=0.0 +!WC_HO2/WC_CO2=0.0 ! -!URG6/ARAC=0.0 +!WC_HO2/WC_SO2=0.0 ! -!URG6/PAH=0.0 +!WC_HO2/WC_SULF=0.0 ! -!URG6/HCHO=0.0 +!WC_HO2/WC_HCHO=+KC19*<WC_OH> + PJAC(:,53,57)=+TPK%KC19(:)*PCONC(:,52) ! -!URG6/ALD2=0.0 +!WC_HO2/WC_ORA1=+KC20*<WC_OH> + PJAC(:,53,58)=+TPK%KC20(:)*PCONC(:,52) ! -!URG6/KETL=0.0 +!WC_HO2/WC_ORA2=0.0 ! -!URG6/KETH=0.0 +!WC_HO2/WC_MO2=+2.00*KC17*<WC_MO2>+2.00*KC17*<WC_MO2> + PJAC(:,53,60)=+2.00*TPK%KC17(:)*PCONC(:,60)+2.00*TPK%KC17(:)*PCONC(:,60) ! -!URG6/MEOH=0.0 +!WC_HO2/WC_OP1=0.0 ! -!URG6/ETOH=0.0 +!WC_HO2/WC_ASO3=0.0 ! -!URG6/ALCH=0.0 +!WC_HO2/WC_ASO4=0.0 ! -!URG6/ISOP=0.0 +!WC_HO2/WC_ASO5=-KC25*<WC_HO2> + PJAC(:,53,64)=-TPK%KC25(:)*PCONC(:,53) ! -!URG6/BIOL=0.0 +!WC_HO2/WC_AHSO5=0.0 ! -!URG6/BIOH=0.0 +!WC_HO2/WC_AHMS=+KC23*<WC_OH> + PJAC(:,53,66)=+TPK%KC23(:)*PCONC(:,52) ! -!URG6/MTBE=0.0 +!WC_HO2/WR_O3=0.0 ! -!URG6/MVK=0.0 +!WC_HO2/WR_H2O2=0.0 ! -!URG6/MCR=0.0 +!WC_HO2/WR_NO=0.0 ! -!URG6/MGLY=0.0 +!WC_HO2/WR_NO2=0.0 ! -!URG6/GLY=0.0 +!WC_HO2/WR_NO3=0.0 ! -!URG6/ORA1=0.0 +!WC_HO2/WR_N2O5=0.0 ! -!URG6/ORA2=0.0 +!WC_HO2/WR_HONO=0.0 ! -!URG6/ACID=0.0 +!WC_HO2/WR_HNO3=0.0 ! -!URG6/UR28=0.0 +!WC_HO2/WR_HNO4=0.0 ! -!URG6/UR21=0.0 +!WC_HO2/WR_NH3=0.0 ! -!URG6/URG2=0.0 +!WC_HO2/WR_OH=0.0 ! -!URG6/UR26=0.0 +!WC_HO2/WR_HO2=0.0 ! -!URG6/RPG2=0.0 +!WC_HO2/WR_CO2=0.0 ! -!URG6/RP18=0.0 +!WC_HO2/WR_SO2=0.0 ! -!URG6/RPG3=0.0 +!WC_HO2/WR_SULF=0.0 ! -!URG6/URG4=0.0 +!WC_HO2/WR_HCHO=0.0 ! -!URG6/UR8=0.0 +!WC_HO2/WR_ORA1=0.0 ! -!URG6/UR17=0.0 +!WC_HO2/WR_ORA2=0.0 ! -!URG6/UR7=0.0 +!WC_HO2/WR_MO2=0.0 ! -!URG6/RPR3=0.0 +!WC_HO2/WR_OP1=0.0 ! -!URG6/URG6=-K352 - PJAC(:,58,58)=-TPK%K352(:) +!WC_HO2/WR_ASO3=0.0 ! -!URG6/UR22=0.0 +!WC_HO2/WR_ASO4=0.0 ! -!URG6/URG7=0.0 +!WC_HO2/WR_ASO5=0.0 ! -!URG6/RPR4=0.0 +!WC_HO2/WR_AHSO5=0.0 ! -!URG6/RPR7=0.0 +!WC_HO2/WR_AHMS=0.0 ! -!URG6/RPG7=+0.4978440*K323*<OH> - PJAC(:,58,63)=+0.4978440*TPK%K323(:)*PCONC(:,15) +!WC_CO2/O3=0.0 ! -!URG6/URG8=0.0 +!WC_CO2/H2O2=0.0 ! -!URG6/UR19=0.0 +!WC_CO2/NO=0.0 ! -!URG6/URG9=0.0 +!WC_CO2/NO2=0.0 ! -!URG6/AP7=0.0 +!WC_CO2/NO3=0.0 ! -!URG6/URG10=0.0 +!WC_CO2/N2O5=0.0 ! -!URG6/RPR1=0.0 +!WC_CO2/HONO=0.0 ! -!URG6/RPR5=0.0 +!WC_CO2/HNO3=0.0 ! -!URG6/RPR8=0.0 +!WC_CO2/HNO4=0.0 ! -!URG6/RP10=0.0 +!WC_CO2/NH3=0.0 ! -!URG6/RP11=0.0 +!WC_CO2/SO2=0.0 ! -!URG6/RP16=0.0 +!WC_CO2/SULF=0.0 ! -!URG6/RPRL=0.0 +!WC_CO2/CO=0.0 ! -!URG6/APAN=0.0 +!WC_CO2/OH=0.0 ! -!URG6/PAN1=0.0 +!WC_CO2/HO2=0.0 ! -!URG6/PAN2=0.0 +!WC_CO2/CH4=0.0 ! -!URG6/PAN3=0.0 +!WC_CO2/ETH=0.0 ! -!URG6/PAN4=0.0 +!WC_CO2/ALKA=0.0 ! -!URG6/PAN6=0.0 +!WC_CO2/ALKE=0.0 ! -!URG6/PAN7=0.0 +!WC_CO2/BIO=0.0 ! -!URG6/PAN8=0.0 +!WC_CO2/ARO=0.0 ! -!URG6/PN10=0.0 +!WC_CO2/HCHO=0.0 ! -!URG6/RO2T=0.0 +!WC_CO2/ALD=0.0 ! -!URG6/RO21=0.0 +!WC_CO2/KET=0.0 ! -!URG6/RO25=0.0 +!WC_CO2/CARBO=0.0 ! -!UR22/NO=0.0 +!WC_CO2/ONIT=0.0 ! -!UR22/NO2=+K321*<RAD8> - PJAC(:,59,2)=+TPK%K321(:)*TPK%RAD8(:) +!WC_CO2/PAN=0.0 ! -!UR22/O3=0.0 +!WC_CO2/OP1=0.0 ! -!UR22/HONO=0.0 +!WC_CO2/OP2=0.0 ! -!UR22/HNO3=0.0 +!WC_CO2/ORA1=0.0 ! -!UR22/HNO4=0.0 +!WC_CO2/ORA2=0.0 ! -!UR22/N2O5=0.0 +!WC_CO2/MO2=0.0 ! -!UR22/NO3=0.0 +!WC_CO2/ALKAP=0.0 ! -!UR22/NH3=0.0 +!WC_CO2/ALKEP=0.0 ! -!UR22/HO2=0.0 +!WC_CO2/BIOP=0.0 ! -!UR22/CO=0.0 +!WC_CO2/PHO=0.0 ! -!UR22/H2O2=0.0 +!WC_CO2/ADD=0.0 ! -!UR22/SO2=0.0 +!WC_CO2/AROP=0.0 ! -!UR22/H2SO4=0.0 +!WC_CO2/CARBOP=0.0 ! -!UR22/OH=0.0 +!WC_CO2/OLN=0.0 ! -!UR22/ETHE=0.0 +!WC_CO2/XO2=0.0 ! -!UR22/OLEL=0.0 +!WC_CO2/WC_O3=0.0 ! -!UR22/OLEH=0.0 +!WC_CO2/WC_H2O2=0.0 ! -!UR22/ALKL=0.0 +!WC_CO2/WC_NO=0.0 ! -!UR22/ALKM=0.0 +!WC_CO2/WC_NO2=0.0 ! -!UR22/ALKH=0.0 +!WC_CO2/WC_NO3=0.0 ! -!UR22/AROH=0.0 +!WC_CO2/WC_N2O5=0.0 ! -!UR22/AROL=0.0 +!WC_CO2/WC_HONO=0.0 ! -!UR22/AROO=0.0 +!WC_CO2/WC_HNO3=0.0 ! -!UR22/ARAL=0.0 +!WC_CO2/WC_HNO4=0.0 ! -!UR22/ARAC=0.0 +!WC_CO2/WC_NH3=0.0 ! -!UR22/PAH=0.0 +!WC_CO2/WC_OH=+KC20*<WC_ORA1> + PJAC(:,54,52)=+TPK%KC20(:)*PCONC(:,58) ! -!UR22/HCHO=0.0 +!WC_CO2/WC_HO2=0.0 ! -!UR22/ALD2=0.0 +!WC_CO2/WC_CO2=-KTC33 + PJAC(:,54,54)=-TPK%KTC33(:) ! -!UR22/KETL=0.0 +!WC_CO2/WC_SO2=0.0 ! -!UR22/KETH=0.0 +!WC_CO2/WC_SULF=0.0 ! -!UR22/MEOH=0.0 +!WC_CO2/WC_HCHO=0.0 ! -!UR22/ETOH=0.0 +!WC_CO2/WC_ORA1=+KC20*<WC_OH> + PJAC(:,54,58)=+TPK%KC20(:)*PCONC(:,52) ! -!UR22/ALCH=0.0 +!WC_CO2/WC_ORA2=0.0 ! -!UR22/ISOP=0.0 +!WC_CO2/WC_MO2=0.0 ! -!UR22/BIOL=0.0 +!WC_CO2/WC_OP1=0.0 ! -!UR22/BIOH=0.0 +!WC_CO2/WC_ASO3=0.0 ! -!UR22/MTBE=0.0 +!WC_CO2/WC_ASO4=0.0 ! -!UR22/MVK=0.0 +!WC_CO2/WC_ASO5=0.0 ! -!UR22/MCR=0.0 +!WC_CO2/WC_AHSO5=0.0 ! -!UR22/MGLY=0.0 +!WC_CO2/WC_AHMS=0.0 ! -!UR22/GLY=0.0 +!WC_CO2/WR_O3=0.0 ! -!UR22/ORA1=0.0 +!WC_CO2/WR_H2O2=0.0 ! -!UR22/ORA2=0.0 +!WC_CO2/WR_NO=0.0 ! -!UR22/ACID=0.0 +!WC_CO2/WR_NO2=0.0 ! -!UR22/UR28=0.0 +!WC_CO2/WR_NO3=0.0 ! -!UR22/UR21=0.0 +!WC_CO2/WR_N2O5=0.0 ! -!UR22/URG2=0.0 +!WC_CO2/WR_HONO=0.0 ! -!UR22/UR26=0.0 +!WC_CO2/WR_HNO3=0.0 ! -!UR22/RPG2=0.0 +!WC_CO2/WR_HNO4=0.0 ! -!UR22/RP18=0.0 +!WC_CO2/WR_NH3=0.0 ! -!UR22/RPG3=0.0 +!WC_CO2/WR_OH=0.0 ! -!UR22/URG4=0.0 +!WC_CO2/WR_HO2=0.0 ! -!UR22/UR8=0.0 +!WC_CO2/WR_CO2=0.0 ! -!UR22/UR17=0.0 +!WC_CO2/WR_SO2=0.0 ! -!UR22/UR7=0.0 +!WC_CO2/WR_SULF=0.0 ! -!UR22/RPR3=0.0 +!WC_CO2/WR_HCHO=0.0 ! -!UR22/URG6=0.0 +!WC_CO2/WR_ORA1=0.0 ! -!UR22/UR22=-K362 - PJAC(:,59,59)=-TPK%K362(:) +!WC_CO2/WR_ORA2=0.0 ! -!UR22/URG7=0.0 +!WC_CO2/WR_MO2=0.0 ! -!UR22/RPR4=0.0 +!WC_CO2/WR_OP1=0.0 ! -!UR22/RPR7=0.0 +!WC_CO2/WR_ASO3=0.0 ! -!UR22/RPG7=0.0 +!WC_CO2/WR_ASO4=0.0 ! -!UR22/URG8=0.0 +!WC_CO2/WR_ASO5=0.0 ! -!UR22/UR19=0.0 +!WC_CO2/WR_AHSO5=0.0 ! -!UR22/URG9=0.0 +!WC_CO2/WR_AHMS=0.0 ! -!UR22/AP7=0.0 +!WC_SO2/O3=0.0 ! -!UR22/URG10=0.0 +!WC_SO2/H2O2=0.0 ! -!UR22/RPR1=0.0 +!WC_SO2/NO=0.0 ! -!UR22/RPR5=0.0 +!WC_SO2/NO2=0.0 ! -!UR22/RPR8=0.0 +!WC_SO2/NO3=0.0 ! -!UR22/RP10=0.0 +!WC_SO2/N2O5=0.0 ! -!UR22/RP11=0.0 +!WC_SO2/HONO=0.0 ! -!UR22/RP16=0.0 +!WC_SO2/HNO3=0.0 ! -!UR22/RPRL=0.0 +!WC_SO2/HNO4=0.0 ! -!UR22/APAN=0.0 +!WC_SO2/NH3=0.0 ! -!UR22/PAN1=0.0 +!WC_SO2/SO2=+KTC14 + PJAC(:,55,11)=+TPK%KTC14(:) ! -!UR22/PAN2=0.0 +!WC_SO2/SULF=0.0 ! -!UR22/PAN3=0.0 +!WC_SO2/CO=0.0 ! -!UR22/PAN4=0.0 +!WC_SO2/OH=0.0 ! -!UR22/PAN6=0.0 +!WC_SO2/HO2=0.0 ! -!UR22/PAN7=0.0 +!WC_SO2/CH4=0.0 ! -!UR22/PAN8=0.0 +!WC_SO2/ETH=0.0 ! -!UR22/PN10=0.0 +!WC_SO2/ALKA=0.0 ! -!UR22/RO2T=0.0 +!WC_SO2/ALKE=0.0 ! -!UR22/RO21=0.0 +!WC_SO2/BIO=0.0 ! -!UR22/RO25=0.0 +!WC_SO2/ARO=0.0 ! -!URG7/NO=0.0 +!WC_SO2/HCHO=0.0 ! -!URG7/NO2=+0.9999993*K108*<RAD6> - PJAC(:,60,2)=+0.9999993*TPK%K108(:)*TPK%RAD6(:) +!WC_SO2/ALD=0.0 ! -!URG7/O3=0.0 +!WC_SO2/KET=0.0 ! -!URG7/HONO=0.0 +!WC_SO2/CARBO=0.0 ! -!URG7/HNO3=0.0 +!WC_SO2/ONIT=0.0 ! -!URG7/HNO4=0.0 +!WC_SO2/PAN=0.0 ! -!URG7/N2O5=0.0 +!WC_SO2/OP1=0.0 ! -!URG7/NO3=0.0 +!WC_SO2/OP2=0.0 ! -!URG7/NH3=0.0 +!WC_SO2/ORA1=0.0 ! -!URG7/HO2=0.0 +!WC_SO2/ORA2=0.0 ! -!URG7/CO=0.0 +!WC_SO2/MO2=0.0 ! -!URG7/H2O2=0.0 +!WC_SO2/ALKAP=0.0 ! -!URG7/SO2=0.0 +!WC_SO2/ALKEP=0.0 ! -!URG7/H2SO4=0.0 +!WC_SO2/BIOP=0.0 ! -!URG7/OH=+0.1599999*K083*<ARAC>+0.9999993*K303*<RPR5>+0.9979297*K306*<RPRL>+0.9 -!999993*K322*<RPR7> - PJAC(:,60,15)=+0.1599999*TPK%K083(:)*PCONC(:,26)+0.9999993*TPK%K303(:)*PCONC(:& -&,70)+0.9979297*TPK%K306(:)*PCONC(:,75)+0.9999993*TPK%K322(:)*PCONC(:,62) +!WC_SO2/PHO=0.0 ! -!URG7/ETHE=0.0 +!WC_SO2/ADD=0.0 ! -!URG7/OLEL=0.0 +!WC_SO2/AROP=0.0 ! -!URG7/OLEH=0.0 +!WC_SO2/CARBOP=0.0 ! -!URG7/ALKL=0.0 +!WC_SO2/OLN=0.0 ! -!URG7/ALKM=0.0 +!WC_SO2/XO2=0.0 ! -!URG7/ALKH=0.0 +!WC_SO2/WC_O3=-KC29*<WC_SO2> + PJAC(:,55,42)=-TPK%KC29(:)*PCONC(:,55) ! -!URG7/AROH=0.0 +!WC_SO2/WC_H2O2=-KC30*<WC_SO2> + PJAC(:,55,43)=-TPK%KC30(:)*PCONC(:,55) ! -!URG7/AROL=0.0 +!WC_SO2/WC_NO=0.0 ! -!URG7/AROO=0.0 +!WC_SO2/WC_NO2=0.0 ! -!URG7/ARAL=0.0 +!WC_SO2/WC_NO3=-KC16*<WC_SO2> + PJAC(:,55,46)=-TPK%KC16(:)*PCONC(:,55) ! -!URG7/ARAC=+0.1599999*K083*<OH> - PJAC(:,60,26)=+0.1599999*TPK%K083(:)*PCONC(:,15) +!WC_SO2/WC_N2O5=0.0 ! -!URG7/PAH=0.0 +!WC_SO2/WC_HONO=0.0 ! -!URG7/HCHO=0.0 +!WC_SO2/WC_HNO3=0.0 ! -!URG7/ALD2=0.0 +!WC_SO2/WC_HNO4=-KC12*<WC_SO2> + PJAC(:,55,50)=-TPK%KC12(:)*PCONC(:,55) ! -!URG7/KETL=0.0 +!WC_SO2/WC_NH3=0.0 ! -!URG7/KETH=0.0 +!WC_SO2/WC_OH=-KC7*<WC_SO2>+KC23*<WC_AHMS> + PJAC(:,55,52)=-TPK%KC7(:)*PCONC(:,55)+TPK%KC23(:)*PCONC(:,66) ! -!URG7/MEOH=0.0 +!WC_SO2/WC_HO2=0.0 ! -!URG7/ETOH=0.0 +!WC_SO2/WC_CO2=0.0 ! -!URG7/ALCH=0.0 +!WC_SO2/WC_SO2=-KTC34-KC7*<WC_OH>-KC12*<WC_HNO4>-KC16*<WC_NO3>-KC18*<WC_MO2>-KC +!21*<WC_HCHO>-KC27*<WC_AHSO5>-KC29*<WC_O3>-KC30*<WC_H2O2> + PJAC(:,55,55)=-TPK%KTC34(:)-TPK%KC7(:)*PCONC(:,52)-TPK%KC12(:)*PCONC(:,50)-TPK& +&%KC16(:)*PCONC(:,46)-TPK%KC18(:)*PCONC(:,60)-TPK%KC21(:)*PCONC(:,57)-TPK%KC27(& +&:)*PCONC(:,65)-TPK%KC29(:)*PCONC(:,42)-TPK%KC30(:)*PCONC(:,43) ! -!URG7/ISOP=0.0 +!WC_SO2/WC_SULF=0.0 ! -!URG7/BIOL=0.0 +!WC_SO2/WC_HCHO=-KC21*<WC_SO2> + PJAC(:,55,57)=-TPK%KC21(:)*PCONC(:,55) ! -!URG7/BIOH=0.0 +!WC_SO2/WC_ORA1=0.0 ! -!URG7/MTBE=0.0 +!WC_SO2/WC_ORA2=0.0 ! -!URG7/MVK=0.0 +!WC_SO2/WC_MO2=-KC18*<WC_SO2> + PJAC(:,55,60)=-TPK%KC18(:)*PCONC(:,55) ! -!URG7/MCR=0.0 +!WC_SO2/WC_OP1=0.0 ! -!URG7/MGLY=0.0 +!WC_SO2/WC_ASO3=0.0 ! -!URG7/GLY=0.0 +!WC_SO2/WC_ASO4=0.0 ! -!URG7/ORA1=0.0 +!WC_SO2/WC_ASO5=0.0 ! -!URG7/ORA2=0.0 +!WC_SO2/WC_AHSO5=-KC27*<WC_SO2> + PJAC(:,55,65)=-TPK%KC27(:)*PCONC(:,55) ! -!URG7/ACID=0.0 +!WC_SO2/WC_AHMS=+KC22+KC23*<WC_OH> + PJAC(:,55,66)=+TPK%KC22(:)+TPK%KC23(:)*PCONC(:,52) ! -!URG7/UR28=0.0 +!WC_SO2/WR_O3=0.0 ! -!URG7/UR21=0.0 +!WC_SO2/WR_H2O2=0.0 ! -!URG7/URG2=0.0 +!WC_SO2/WR_NO=0.0 ! -!URG7/UR26=0.0 +!WC_SO2/WR_NO2=0.0 ! -!URG7/RPG2=0.0 +!WC_SO2/WR_NO3=0.0 ! -!URG7/RP18=0.0 +!WC_SO2/WR_N2O5=0.0 ! -!URG7/RPG3=0.0 +!WC_SO2/WR_HONO=0.0 ! -!URG7/URG4=0.0 +!WC_SO2/WR_HNO3=0.0 ! -!URG7/UR8=0.0 +!WC_SO2/WR_HNO4=0.0 ! -!URG7/UR17=0.0 +!WC_SO2/WR_NH3=0.0 ! -!URG7/UR7=0.0 +!WC_SO2/WR_OH=0.0 ! -!URG7/RPR3=0.0 +!WC_SO2/WR_HO2=0.0 ! -!URG7/URG6=0.0 +!WC_SO2/WR_CO2=0.0 ! -!URG7/UR22=0.0 +!WC_SO2/WR_SO2=0.0 ! -!URG7/URG7=-K353 - PJAC(:,60,60)=-TPK%K353(:) +!WC_SO2/WR_SULF=0.0 ! -!URG7/RPR4=0.0 +!WC_SO2/WR_HCHO=0.0 ! -!URG7/RPR7=+0.9999993*K322*<OH> - PJAC(:,60,62)=+0.9999993*TPK%K322(:)*PCONC(:,15) +!WC_SO2/WR_ORA1=0.0 ! -!URG7/RPG7=0.0 +!WC_SO2/WR_ORA2=0.0 ! -!URG7/URG8=0.0 +!WC_SO2/WR_MO2=0.0 ! -!URG7/UR19=0.0 +!WC_SO2/WR_OP1=0.0 ! -!URG7/URG9=0.0 +!WC_SO2/WR_ASO3=0.0 ! -!URG7/AP7=0.0 +!WC_SO2/WR_ASO4=0.0 ! -!URG7/URG10=0.0 +!WC_SO2/WR_ASO5=0.0 ! -!URG7/RPR1=0.0 +!WC_SO2/WR_AHSO5=0.0 ! -!URG7/RPR5=+0.9999993*K303*<OH> - PJAC(:,60,70)=+0.9999993*TPK%K303(:)*PCONC(:,15) +!WC_SO2/WR_AHMS=0.0 ! -!URG7/RPR8=0.0 +RETURN +END SUBROUTINE SUBJ10 ! -!URG7/RP10=0.0 +SUBROUTINE SUBJ11 ! -!URG7/RP11=0.0 +!Indices 56 a 60 ! -!URG7/RP16=0.0 ! -!URG7/RPRL=+0.9979297*K306*<OH> - PJAC(:,60,75)=+0.9979297*TPK%K306(:)*PCONC(:,15) +!WC_SULF/O3=0.0 ! -!URG7/APAN=0.0 +!WC_SULF/H2O2=0.0 ! -!URG7/PAN1=0.0 +!WC_SULF/NO=0.0 ! -!URG7/PAN2=0.0 +!WC_SULF/NO2=0.0 ! -!URG7/PAN3=0.0 +!WC_SULF/NO3=0.0 ! -!URG7/PAN4=0.0 +!WC_SULF/N2O5=0.0 ! -!URG7/PAN6=0.0 +!WC_SULF/HONO=0.0 ! -!URG7/PAN7=0.0 +!WC_SULF/HNO3=0.0 ! -!URG7/PAN8=0.0 +!WC_SULF/HNO4=0.0 ! -!URG7/PN10=0.0 +!WC_SULF/NH3=0.0 ! -!URG7/RO2T=0.0 +!WC_SULF/SO2=0.0 ! -!URG7/RO21=0.0 +!WC_SULF/SULF=+KTC15 + PJAC(:,56,12)=+TPK%KTC15(:) ! -!URG7/RO25=0.0 +!WC_SULF/CO=0.0 ! -RETURN -END SUBROUTINE SUBJ11 +!WC_SULF/OH=0.0 ! -SUBROUTINE SUBJ12 +!WC_SULF/HO2=0.0 ! -!Indices 61 a 65 +!WC_SULF/CH4=0.0 ! +!WC_SULF/ETH=0.0 ! -!RPR4/NO=0.0 +!WC_SULF/ALKA=0.0 ! -!RPR4/NO2=+K103*<RAD1>+K104*<RAD2> - PJAC(:,61,2)=+TPK%K103(:)*TPK%RAD1(:)+TPK%K104(:)*TPK%RAD2(:) +!WC_SULF/ALKE=0.0 ! -!RPR4/O3=0.0 +!WC_SULF/BIO=0.0 ! -!RPR4/HONO=0.0 +!WC_SULF/ARO=0.0 ! -!RPR4/HNO3=0.0 +!WC_SULF/HCHO=0.0 ! -!RPR4/HNO4=0.0 +!WC_SULF/ALD=0.0 ! -!RPR4/N2O5=0.0 +!WC_SULF/KET=0.0 ! -!RPR4/NO3=-K320*<RPR4> - PJAC(:,61,8)=-TPK%K320(:)*PCONC(:,61) +!WC_SULF/CARBO=0.0 ! -!RPR4/NH3=0.0 +!WC_SULF/ONIT=0.0 ! -!RPR4/HO2=0.0 +!WC_SULF/PAN=0.0 ! -!RPR4/CO=0.0 +!WC_SULF/OP1=0.0 ! -!RPR4/H2O2=0.0 +!WC_SULF/OP2=0.0 ! -!RPR4/SO2=0.0 +!WC_SULF/ORA1=0.0 ! -!RPR4/H2SO4=0.0 +!WC_SULF/ORA2=0.0 ! -!RPR4/OH=0.0 +!WC_SULF/MO2=0.0 ! -!RPR4/ETHE=0.0 +!WC_SULF/ALKAP=0.0 ! -!RPR4/OLEL=0.0 +!WC_SULF/ALKEP=0.0 ! -!RPR4/OLEH=0.0 +!WC_SULF/BIOP=0.0 ! -!RPR4/ALKL=0.0 +!WC_SULF/PHO=0.0 ! -!RPR4/ALKM=0.0 +!WC_SULF/ADD=0.0 ! -!RPR4/ALKH=0.0 +!WC_SULF/AROP=0.0 ! -!RPR4/AROH=0.0 +!WC_SULF/CARBOP=0.0 ! -!RPR4/AROL=0.0 +!WC_SULF/OLN=0.0 ! -!RPR4/AROO=0.0 +!WC_SULF/XO2=0.0 ! -!RPR4/ARAL=0.0 +!WC_SULF/WC_O3=+KC29*<WC_SO2> + PJAC(:,56,42)=+TPK%KC29(:)*PCONC(:,55) ! -!RPR4/ARAC=0.0 +!WC_SULF/WC_H2O2=+KC30*<WC_SO2> + PJAC(:,56,43)=+TPK%KC30(:)*PCONC(:,55) ! -!RPR4/PAH=0.0 +!WC_SULF/WC_NO=0.0 ! -!RPR4/HCHO=0.0 +!WC_SULF/WC_NO2=0.0 ! -!RPR4/ALD2=0.0 +!WC_SULF/WC_NO3=-KC15*<WC_SULF> + PJAC(:,56,46)=-TPK%KC15(:)*PCONC(:,56) ! -!RPR4/KETL=0.0 +!WC_SULF/WC_N2O5=0.0 ! -!RPR4/KETH=0.0 +!WC_SULF/WC_HONO=0.0 ! -!RPR4/MEOH=0.0 +!WC_SULF/WC_HNO3=0.0 ! -!RPR4/ETOH=0.0 +!WC_SULF/WC_HNO4=+KC12*<WC_SO2> + PJAC(:,56,50)=+TPK%KC12(:)*PCONC(:,55) ! -!RPR4/ALCH=0.0 +!WC_SULF/WC_NH3=0.0 ! -!RPR4/ISOP=0.0 +!WC_SULF/WC_OH=0.0 ! -!RPR4/BIOL=0.0 +!WC_SULF/WC_HO2=0.0 ! -!RPR4/BIOH=0.0 +!WC_SULF/WC_CO2=0.0 ! -!RPR4/MTBE=0.0 +!WC_SULF/WC_SO2=+KC12*<WC_HNO4>+2.00*KC27*<WC_AHSO5>+KC29*<WC_O3>+KC30*<WC_H2O2 +!> + PJAC(:,56,55)=+TPK%KC12(:)*PCONC(:,50)+2.00*TPK%KC27(:)*PCONC(:,65)+TPK%KC29(:& +&)*PCONC(:,42)+TPK%KC30(:)*PCONC(:,43) ! -!RPR4/MVK=0.0 +!WC_SULF/WC_SULF=-KTC35-KC15*<WC_NO3> + PJAC(:,56,56)=-TPK%KTC35(:)-TPK%KC15(:)*PCONC(:,46) ! -!RPR4/MCR=0.0 +!WC_SULF/WC_HCHO=0.0 ! -!RPR4/MGLY=0.0 +!WC_SULF/WC_ORA1=0.0 ! -!RPR4/GLY=0.0 +!WC_SULF/WC_ORA2=0.0 ! -!RPR4/ORA1=0.0 +!WC_SULF/WC_MO2=0.0 ! -!RPR4/ORA2=0.0 +!WC_SULF/WC_OP1=0.0 ! -!RPR4/ACID=0.0 +!WC_SULF/WC_ASO3=0.0 ! -!RPR4/UR28=0.0 +!WC_SULF/WC_ASO4=+KC28 + PJAC(:,56,63)=+TPK%KC28(:) ! -!RPR4/UR21=0.0 +!WC_SULF/WC_ASO5=0.0 ! -!RPR4/URG2=0.0 +!WC_SULF/WC_AHSO5=+2.00*KC27*<WC_SO2> + PJAC(:,56,65)=+2.00*TPK%KC27(:)*PCONC(:,55) ! -!RPR4/UR26=0.0 +!WC_SULF/WC_AHMS=0.0 ! -!RPR4/RPG2=0.0 +!WC_SULF/WR_O3=0.0 ! -!RPR4/RP18=0.0 +!WC_SULF/WR_H2O2=0.0 ! -!RPR4/RPG3=0.0 +!WC_SULF/WR_NO=0.0 ! -!RPR4/URG4=0.0 +!WC_SULF/WR_NO2=0.0 ! -!RPR4/UR8=0.0 +!WC_SULF/WR_NO3=0.0 ! -!RPR4/UR17=0.0 +!WC_SULF/WR_N2O5=0.0 ! -!RPR4/UR7=0.0 +!WC_SULF/WR_HONO=0.0 ! -!RPR4/RPR3=0.0 +!WC_SULF/WR_HNO3=0.0 ! -!RPR4/URG6=0.0 +!WC_SULF/WR_HNO4=0.0 ! -!RPR4/UR22=0.0 +!WC_SULF/WR_NH3=0.0 ! -!RPR4/URG7=0.0 +!WC_SULF/WR_OH=0.0 ! -!RPR4/RPR4=-K320*<NO3> - PJAC(:,61,61)=-TPK%K320(:)*PCONC(:,8) +!WC_SULF/WR_HO2=0.0 ! -!RPR4/RPR7=0.0 +!WC_SULF/WR_CO2=0.0 ! -!RPR4/RPG7=0.0 +!WC_SULF/WR_SO2=0.0 ! -!RPR4/URG8=0.0 +!WC_SULF/WR_SULF=0.0 ! -!RPR4/UR19=0.0 +!WC_SULF/WR_HCHO=0.0 ! -!RPR4/URG9=0.0 +!WC_SULF/WR_ORA1=0.0 ! -!RPR4/AP7=0.0 +!WC_SULF/WR_ORA2=0.0 ! -!RPR4/URG10=0.0 +!WC_SULF/WR_MO2=0.0 ! -!RPR4/RPR1=0.0 +!WC_SULF/WR_OP1=0.0 ! -!RPR4/RPR5=0.0 +!WC_SULF/WR_ASO3=0.0 ! -!RPR4/RPR8=0.0 +!WC_SULF/WR_ASO4=0.0 ! -!RPR4/RP10=0.0 +!WC_SULF/WR_ASO5=0.0 ! -!RPR4/RP11=0.0 +!WC_SULF/WR_AHSO5=0.0 ! -!RPR4/RP16=0.0 +!WC_SULF/WR_AHMS=0.0 ! -!RPR4/RPRL=0.0 +!WC_HCHO/O3=0.0 ! -!RPR4/APAN=0.0 +!WC_HCHO/H2O2=0.0 ! -!RPR4/PAN1=0.0 +!WC_HCHO/NO=0.0 ! -!RPR4/PAN2=0.0 +!WC_HCHO/NO2=0.0 ! -!RPR4/PAN3=0.0 +!WC_HCHO/NO3=0.0 ! -!RPR4/PAN4=0.0 +!WC_HCHO/N2O5=0.0 ! -!RPR4/PAN6=0.0 +!WC_HCHO/HONO=0.0 ! -!RPR4/PAN7=0.0 +!WC_HCHO/HNO3=0.0 ! -!RPR4/PAN8=0.0 +!WC_HCHO/HNO4=0.0 ! -!RPR4/PN10=0.0 +!WC_HCHO/NH3=0.0 ! -!RPR4/RO2T=0.0 +!WC_HCHO/SO2=0.0 ! -!RPR4/RO21=0.0 +!WC_HCHO/SULF=0.0 ! -!RPR4/RO25=0.0 +!WC_HCHO/CO=0.0 ! -!RPR7/NO=+TPK%CF44*K195*<RO223> - PJAC(:,62,1)=+TPK%CF44*TPK%K195(:)*TPK%RO223(:) +!WC_HCHO/OH=0.0 ! -!RPR7/NO2=0.0 +!WC_HCHO/HO2=0.0 ! -!RPR7/O3=0.0 +!WC_HCHO/CH4=0.0 ! -!RPR7/HONO=0.0 +!WC_HCHO/ETH=0.0 ! -!RPR7/HNO3=0.0 +!WC_HCHO/ALKA=0.0 ! -!RPR7/HNO4=0.0 +!WC_HCHO/ALKE=0.0 ! -!RPR7/N2O5=0.0 +!WC_HCHO/BIO=0.0 ! -!RPR7/NO3=0.0 +!WC_HCHO/ARO=0.0 ! -!RPR7/NH3=0.0 +!WC_HCHO/HCHO=+KTC16 + PJAC(:,57,22)=+TPK%KTC16(:) ! -!RPR7/HO2=+K197*<RO223> - PJAC(:,62,10)=+TPK%K197(:)*TPK%RO223(:) +!WC_HCHO/ALD=0.0 ! -!RPR7/CO=0.0 +!WC_HCHO/KET=0.0 ! -!RPR7/H2O2=0.0 +!WC_HCHO/CARBO=0.0 ! -!RPR7/SO2=0.0 +!WC_HCHO/ONIT=0.0 ! -!RPR7/H2SO4=0.0 +!WC_HCHO/PAN=0.0 ! -!RPR7/OH=-03*K306*<RPRL>-K322*<RPR7> - PJAC(:,62,15)=-03*TPK%K306(:)*PCONC(:,75)-TPK%K322(:)*PCONC(:,62) +!WC_HCHO/OP1=0.0 ! -!RPR7/ETHE=0.0 +!WC_HCHO/OP2=0.0 ! -!RPR7/OLEL=0.0 +!WC_HCHO/ORA1=0.0 ! -!RPR7/OLEH=0.0 +!WC_HCHO/ORA2=0.0 ! -!RPR7/ALKL=0.0 +!WC_HCHO/MO2=0.0 ! -!RPR7/ALKM=0.0 +!WC_HCHO/ALKAP=0.0 ! -!RPR7/ALKH=0.0 +!WC_HCHO/ALKEP=0.0 ! -!RPR7/AROH=0.0 +!WC_HCHO/BIOP=0.0 ! -!RPR7/AROL=0.0 +!WC_HCHO/PHO=0.0 ! -!RPR7/AROO=0.0 +!WC_HCHO/ADD=0.0 ! -!RPR7/ARAL=0.0 +!WC_HCHO/AROP=0.0 ! -!RPR7/ARAC=0.0 +!WC_HCHO/CARBOP=0.0 ! -!RPR7/PAH=0.0 +!WC_HCHO/OLN=0.0 ! -!RPR7/HCHO=0.0 +!WC_HCHO/XO2=0.0 ! -!RPR7/ALD2=0.0 +!WC_HCHO/WC_O3=0.0 ! -!RPR7/KETL=0.0 +!WC_HCHO/WC_H2O2=0.0 ! -!RPR7/KETH=0.0 +!WC_HCHO/WC_NO=0.0 ! -!RPR7/MEOH=0.0 +!WC_HCHO/WC_NO2=0.0 ! -!RPR7/ETOH=0.0 +!WC_HCHO/WC_NO3=0.0 ! -!RPR7/ALCH=0.0 +!WC_HCHO/WC_N2O5=0.0 ! -!RPR7/ISOP=0.0 +!WC_HCHO/WC_HONO=0.0 ! -!RPR7/BIOL=0.0 +!WC_HCHO/WC_HNO3=0.0 ! -!RPR7/BIOH=0.0 +!WC_HCHO/WC_HNO4=0.0 ! -!RPR7/MTBE=0.0 +!WC_HCHO/WC_NH3=0.0 ! -!RPR7/MVK=0.0 +!WC_HCHO/WC_OH=-KC19*<WC_HCHO> + PJAC(:,57,52)=-TPK%KC19(:)*PCONC(:,57) ! -!RPR7/MCR=0.0 +!WC_HCHO/WC_HO2=0.0 ! -!RPR7/MGLY=0.0 +!WC_HCHO/WC_CO2=0.0 ! -!RPR7/GLY=0.0 +!WC_HCHO/WC_SO2=-KC21*<WC_HCHO> + PJAC(:,57,55)=-TPK%KC21(:)*PCONC(:,57) ! -!RPR7/ORA1=0.0 +!WC_HCHO/WC_SULF=0.0 ! -!RPR7/ORA2=0.0 +!WC_HCHO/WC_HCHO=-KTC36-KC19*<WC_OH>-KC21*<WC_SO2> + PJAC(:,57,57)=-TPK%KTC36(:)-TPK%KC19(:)*PCONC(:,52)-TPK%KC21(:)*PCONC(:,55) ! -!RPR7/ACID=0.0 +!WC_HCHO/WC_ORA1=0.0 ! -!RPR7/UR28=0.0 +!WC_HCHO/WC_ORA2=0.0 ! -!RPR7/UR21=0.0 +!WC_HCHO/WC_MO2=+2.00*KC17*<WC_MO2>+2.00*KC17*<WC_MO2> + PJAC(:,57,60)=+2.00*TPK%KC17(:)*PCONC(:,60)+2.00*TPK%KC17(:)*PCONC(:,60) ! -!RPR7/URG2=0.0 +!WC_HCHO/WC_OP1=0.0 ! -!RPR7/UR26=0.0 +!WC_HCHO/WC_ASO3=0.0 ! -!RPR7/RPG2=0.0 +!WC_HCHO/WC_ASO4=0.0 ! -!RPR7/RP18=0.0 +!WC_HCHO/WC_ASO5=0.0 ! -!RPR7/RPG3=0.0 +!WC_HCHO/WC_AHSO5=0.0 ! -!RPR7/URG4=0.0 +!WC_HCHO/WC_AHMS=+KC22 + PJAC(:,57,66)=+TPK%KC22(:) ! -!RPR7/UR8=0.0 +!WC_HCHO/WR_O3=0.0 ! -!RPR7/UR17=0.0 +!WC_HCHO/WR_H2O2=0.0 ! -!RPR7/UR7=0.0 +!WC_HCHO/WR_NO=0.0 ! -!RPR7/RPR3=0.0 +!WC_HCHO/WR_NO2=0.0 ! -!RPR7/URG6=0.0 +!WC_HCHO/WR_NO3=0.0 ! -!RPR7/UR22=0.0 +!WC_HCHO/WR_N2O5=0.0 ! -!RPR7/URG7=0.0 +!WC_HCHO/WR_HONO=0.0 ! -!RPR7/RPR4=0.0 +!WC_HCHO/WR_HNO3=0.0 ! -!RPR7/RPR7=-K322*<OH> - PJAC(:,62,62)=-TPK%K322(:)*PCONC(:,15) +!WC_HCHO/WR_HNO4=0.0 ! -!RPR7/RPG7=0.0 +!WC_HCHO/WR_NH3=0.0 ! -!RPR7/URG8=0.0 +!WC_HCHO/WR_OH=0.0 ! -!RPR7/UR19=0.0 +!WC_HCHO/WR_HO2=0.0 ! -!RPR7/URG9=0.0 +!WC_HCHO/WR_CO2=0.0 ! -!RPR7/AP7=0.0 +!WC_HCHO/WR_SO2=0.0 ! -!RPR7/URG10=0.0 +!WC_HCHO/WR_SULF=0.0 ! -!RPR7/RPR1=0.0 +!WC_HCHO/WR_HCHO=0.0 ! -!RPR7/RPR5=0.0 +!WC_HCHO/WR_ORA1=0.0 ! -!RPR7/RPR8=0.0 +!WC_HCHO/WR_ORA2=0.0 ! -!RPR7/RP10=0.0 +!WC_HCHO/WR_MO2=0.0 ! -!RPR7/RP11=0.0 +!WC_HCHO/WR_OP1=0.0 ! -!RPR7/RP16=0.0 +!WC_HCHO/WR_ASO3=0.0 ! -!RPR7/RPRL=-03*K306*<OH> - PJAC(:,62,75)=-03*TPK%K306(:)*PCONC(:,15) +!WC_HCHO/WR_ASO4=0.0 ! -!RPR7/APAN=0.0 +!WC_HCHO/WR_ASO5=0.0 ! -!RPR7/PAN1=0.0 +!WC_HCHO/WR_AHSO5=0.0 ! -!RPR7/PAN2=0.0 +!WC_HCHO/WR_AHMS=0.0 ! -!RPR7/PAN3=0.0 +!WC_ORA1/O3=0.0 ! -!RPR7/PAN4=0.0 +!WC_ORA1/H2O2=0.0 ! -!RPR7/PAN6=0.0 +!WC_ORA1/NO=0.0 ! -!RPR7/PAN7=0.0 +!WC_ORA1/NO2=0.0 ! -!RPR7/PAN8=0.0 +!WC_ORA1/NO3=0.0 ! -!RPR7/PN10=0.0 +!WC_ORA1/N2O5=0.0 ! -!RPR7/RO2T=+K196*<RO223> - PJAC(:,62,85)=+TPK%K196(:)*TPK%RO223(:) +!WC_ORA1/HONO=0.0 ! -!RPR7/RO21=0.0 +!WC_ORA1/HNO3=0.0 ! -!RPR7/RO25=0.0 +!WC_ORA1/HNO4=0.0 ! -!RPG7/NO=+1.0000013*K266*<RO238> - PJAC(:,63,1)=+1.0000013*TPK%K266(:)*TPK%RO238(:) +!WC_ORA1/NH3=0.0 ! -!RPG7/NO2=0.0 +!WC_ORA1/SO2=0.0 ! -!RPG7/O3=0.0 +!WC_ORA1/SULF=0.0 ! -!RPG7/HONO=0.0 +!WC_ORA1/CO=0.0 ! -!RPG7/HNO3=0.0 +!WC_ORA1/OH=0.0 ! -!RPG7/HNO4=0.0 +!WC_ORA1/HO2=0.0 ! -!RPG7/N2O5=0.0 +!WC_ORA1/CH4=0.0 ! -!RPG7/NO3=0.0 +!WC_ORA1/ETH=0.0 ! -!RPG7/NH3=0.0 +!WC_ORA1/ALKA=0.0 ! -!RPG7/HO2=+1.0000013*K268*<RO238> - PJAC(:,63,10)=+1.0000013*TPK%K268(:)*TPK%RO238(:) +!WC_ORA1/ALKE=0.0 ! -!RPG7/CO=0.0 +!WC_ORA1/BIO=0.0 ! -!RPG7/H2O2=0.0 +!WC_ORA1/ARO=0.0 ! -!RPG7/SO2=0.0 +!WC_ORA1/HCHO=0.0 ! -!RPG7/H2SO4=0.0 +!WC_ORA1/ALD=0.0 ! -!RPG7/OH=+0.5021558*K323*<RPG7>-K323*<RPG7> - PJAC(:,63,15)=+0.5021558*TPK%K323(:)*PCONC(:,63)-TPK%K323(:)*PCONC(:,63) +!WC_ORA1/KET=0.0 ! -!RPG7/ETHE=0.0 +!WC_ORA1/CARBO=0.0 ! -!RPG7/OLEL=0.0 +!WC_ORA1/ONIT=0.0 ! -!RPG7/OLEH=0.0 +!WC_ORA1/PAN=0.0 ! -!RPG7/ALKL=0.0 +!WC_ORA1/OP1=0.0 ! -!RPG7/ALKM=0.0 +!WC_ORA1/OP2=0.0 ! -!RPG7/ALKH=0.0 +!WC_ORA1/ORA1=+KTC17 + PJAC(:,58,30)=+TPK%KTC17(:) ! -!RPG7/AROH=0.0 +!WC_ORA1/ORA2=0.0 ! -!RPG7/AROL=0.0 +!WC_ORA1/MO2=0.0 ! -!RPG7/AROO=0.0 +!WC_ORA1/ALKAP=0.0 ! -!RPG7/ARAL=0.0 +!WC_ORA1/ALKEP=0.0 ! -!RPG7/ARAC=0.0 +!WC_ORA1/BIOP=0.0 ! -!RPG7/PAH=0.0 +!WC_ORA1/PHO=0.0 ! -!RPG7/HCHO=0.0 +!WC_ORA1/ADD=0.0 ! -!RPG7/ALD2=0.0 +!WC_ORA1/AROP=0.0 ! -!RPG7/KETL=0.0 +!WC_ORA1/CARBOP=0.0 ! -!RPG7/KETH=0.0 +!WC_ORA1/OLN=0.0 ! -!RPG7/MEOH=0.0 +!WC_ORA1/XO2=0.0 ! -!RPG7/ETOH=0.0 +!WC_ORA1/WC_O3=0.0 ! -!RPG7/ALCH=0.0 +!WC_ORA1/WC_H2O2=0.0 ! -!RPG7/ISOP=0.0 +!WC_ORA1/WC_NO=0.0 ! -!RPG7/BIOL=0.0 +!WC_ORA1/WC_NO2=0.0 ! -!RPG7/BIOH=0.0 +!WC_ORA1/WC_NO3=0.0 ! -!RPG7/MTBE=0.0 +!WC_ORA1/WC_N2O5=0.0 ! -!RPG7/MVK=0.0 +!WC_ORA1/WC_HONO=0.0 ! -!RPG7/MCR=0.0 +!WC_ORA1/WC_HNO3=0.0 ! -!RPG7/MGLY=0.0 +!WC_ORA1/WC_HNO4=0.0 ! -!RPG7/GLY=0.0 +!WC_ORA1/WC_NH3=0.0 ! -!RPG7/ORA1=0.0 +!WC_ORA1/WC_OH=+KC19*<WC_HCHO>-KC20*<WC_ORA1>+KC23*<WC_AHMS> + PJAC(:,58,52)=+TPK%KC19(:)*PCONC(:,57)-TPK%KC20(:)*PCONC(:,58)+TPK%KC23(:)*PCO& +&NC(:,66) ! -!RPG7/ORA2=0.0 +!WC_ORA1/WC_HO2=0.0 ! -!RPG7/ACID=0.0 +!WC_ORA1/WC_CO2=0.0 ! -!RPG7/UR28=0.0 +!WC_ORA1/WC_SO2=0.0 ! -!RPG7/UR21=0.0 +!WC_ORA1/WC_SULF=0.0 ! -!RPG7/URG2=0.0 +!WC_ORA1/WC_HCHO=+KC19*<WC_OH> + PJAC(:,58,57)=+TPK%KC19(:)*PCONC(:,52) ! -!RPG7/UR26=0.0 +!WC_ORA1/WC_ORA1=-KTC37-KC20*<WC_OH> + PJAC(:,58,58)=-TPK%KTC37(:)-TPK%KC20(:)*PCONC(:,52) ! -!RPG7/RPG2=0.0 +!WC_ORA1/WC_ORA2=0.0 ! -!RPG7/RP18=0.0 +!WC_ORA1/WC_MO2=0.0 ! -!RPG7/RPG3=0.0 +!WC_ORA1/WC_OP1=0.0 ! -!RPG7/URG4=0.0 +!WC_ORA1/WC_ASO3=0.0 ! -!RPG7/UR8=0.0 +!WC_ORA1/WC_ASO4=0.0 ! -!RPG7/UR17=0.0 +!WC_ORA1/WC_ASO5=0.0 ! -!RPG7/UR7=0.0 +!WC_ORA1/WC_AHSO5=0.0 ! -!RPG7/RPR3=0.0 +!WC_ORA1/WC_AHMS=+KC23*<WC_OH> + PJAC(:,58,66)=+TPK%KC23(:)*PCONC(:,52) ! -!RPG7/URG6=0.0 +!WC_ORA1/WR_O3=0.0 ! -!RPG7/UR22=0.0 +!WC_ORA1/WR_H2O2=0.0 ! -!RPG7/URG7=0.0 +!WC_ORA1/WR_NO=0.0 ! -!RPG7/RPR4=0.0 +!WC_ORA1/WR_NO2=0.0 ! -!RPG7/RPR7=0.0 +!WC_ORA1/WR_NO3=0.0 ! -!RPG7/RPG7=+0.5021558*K323*<OH>-K323*<OH> - PJAC(:,63,63)=+0.5021558*TPK%K323(:)*PCONC(:,15)-TPK%K323(:)*PCONC(:,15) +!WC_ORA1/WR_N2O5=0.0 ! -!RPG7/URG8=0.0 +!WC_ORA1/WR_HONO=0.0 ! -!RPG7/UR19=0.0 +!WC_ORA1/WR_HNO3=0.0 ! -!RPG7/URG9=0.0 +!WC_ORA1/WR_HNO4=0.0 ! -!RPG7/AP7=0.0 +!WC_ORA1/WR_NH3=0.0 ! -!RPG7/URG10=0.0 +!WC_ORA1/WR_OH=0.0 ! -!RPG7/RPR1=0.0 +!WC_ORA1/WR_HO2=0.0 ! -!RPG7/RPR5=0.0 +!WC_ORA1/WR_CO2=0.0 ! -!RPG7/RPR8=0.0 +!WC_ORA1/WR_SO2=0.0 ! -!RPG7/RP10=0.0 +!WC_ORA1/WR_SULF=0.0 ! -!RPG7/RP11=0.0 +!WC_ORA1/WR_HCHO=0.0 ! -!RPG7/RP16=0.0 +!WC_ORA1/WR_ORA1=0.0 ! -!RPG7/RPRL=0.0 +!WC_ORA1/WR_ORA2=0.0 ! -!RPG7/APAN=0.0 +!WC_ORA1/WR_MO2=0.0 ! -!RPG7/PAN1=0.0 +!WC_ORA1/WR_OP1=0.0 ! -!RPG7/PAN2=0.0 +!WC_ORA1/WR_ASO3=0.0 ! -!RPG7/PAN3=0.0 +!WC_ORA1/WR_ASO4=0.0 ! -!RPG7/PAN4=0.0 +!WC_ORA1/WR_ASO5=0.0 ! -!RPG7/PAN6=0.0 +!WC_ORA1/WR_AHSO5=0.0 ! -!RPG7/PAN7=0.0 +!WC_ORA1/WR_AHMS=0.0 ! -!RPG7/PAN8=0.0 +!WC_ORA2/O3=0.0 ! -!RPG7/PN10=0.0 +!WC_ORA2/H2O2=0.0 ! -!RPG7/RO2T=+1.0000013*K267*<RO238> - PJAC(:,63,85)=+1.0000013*TPK%K267(:)*TPK%RO238(:) +!WC_ORA2/NO=0.0 ! -!RPG7/RO21=0.0 +!WC_ORA2/NO2=0.0 ! -!RPG7/RO25=0.0 +!WC_ORA2/NO3=0.0 ! -!URG8/NO=+TPK%CF31*K221*<RO231> - PJAC(:,64,1)=+TPK%CF31*TPK%K221(:)*TPK%RO231(:) +!WC_ORA2/N2O5=0.0 ! -!URG8/NO2=+1.0000000*K109*<RAD7> - PJAC(:,64,2)=+1.0000000*TPK%K109(:)*TPK%RAD7(:) +!WC_ORA2/HONO=0.0 ! -!URG8/O3=0.0 +!WC_ORA2/HNO3=0.0 ! -!URG8/HONO=0.0 +!WC_ORA2/HNO4=0.0 ! -!URG8/HNO3=0.0 +!WC_ORA2/NH3=0.0 ! -!URG8/HNO4=0.0 +!WC_ORA2/SO2=0.0 ! -!URG8/N2O5=0.0 +!WC_ORA2/SULF=0.0 ! -!URG8/NO3=0.0 +!WC_ORA2/CO=0.0 ! -!URG8/NH3=0.0 +!WC_ORA2/OH=0.0 ! -!URG8/HO2=0.0 +!WC_ORA2/HO2=0.0 ! -!URG8/CO=0.0 +!WC_ORA2/CH4=0.0 ! -!URG8/H2O2=0.0 +!WC_ORA2/ETH=0.0 ! -!URG8/SO2=0.0 +!WC_ORA2/ALKA=0.0 ! -!URG8/H2SO4=0.0 +!WC_ORA2/ALKE=0.0 ! -!URG8/OH=+0.1600000*K092*<PAH> - PJAC(:,64,15)=+0.1600000*TPK%K092(:)*PCONC(:,27) +!WC_ORA2/BIO=0.0 ! -!URG8/ETHE=0.0 +!WC_ORA2/ARO=0.0 ! -!URG8/OLEL=0.0 +!WC_ORA2/HCHO=0.0 ! -!URG8/OLEH=0.0 +!WC_ORA2/ALD=0.0 ! -!URG8/ALKL=0.0 +!WC_ORA2/KET=0.0 ! -!URG8/ALKM=0.0 +!WC_ORA2/CARBO=0.0 ! -!URG8/ALKH=0.0 +!WC_ORA2/ONIT=0.0 ! -!URG8/AROH=0.0 +!WC_ORA2/PAN=0.0 ! -!URG8/AROL=0.0 +!WC_ORA2/OP1=0.0 ! -!URG8/AROO=0.0 +!WC_ORA2/OP2=0.0 ! -!URG8/ARAL=0.0 +!WC_ORA2/ORA1=0.0 ! -!URG8/ARAC=0.0 +!WC_ORA2/ORA2=+KTC18 + PJAC(:,59,31)=+TPK%KTC18(:) ! -!URG8/PAH=+0.1600000*K092*<OH> - PJAC(:,64,27)=+0.1600000*TPK%K092(:)*PCONC(:,15) +!WC_ORA2/MO2=0.0 ! -!URG8/HCHO=0.0 +!WC_ORA2/ALKAP=0.0 ! -!URG8/ALD2=0.0 +!WC_ORA2/ALKEP=0.0 ! -!URG8/KETL=0.0 +!WC_ORA2/BIOP=0.0 ! -!URG8/KETH=0.0 +!WC_ORA2/PHO=0.0 ! -!URG8/MEOH=0.0 +!WC_ORA2/ADD=0.0 ! -!URG8/ETOH=0.0 +!WC_ORA2/AROP=0.0 ! -!URG8/ALCH=0.0 +!WC_ORA2/CARBOP=0.0 ! -!URG8/ISOP=0.0 +!WC_ORA2/OLN=0.0 ! -!URG8/BIOL=0.0 +!WC_ORA2/XO2=0.0 ! -!URG8/BIOH=0.0 +!WC_ORA2/WC_O3=0.0 ! -!URG8/MTBE=0.0 +!WC_ORA2/WC_H2O2=0.0 ! -!URG8/MVK=0.0 +!WC_ORA2/WC_NO=0.0 ! -!URG8/MCR=0.0 +!WC_ORA2/WC_NO2=0.0 ! -!URG8/MGLY=0.0 +!WC_ORA2/WC_NO3=0.0 ! -!URG8/GLY=0.0 +!WC_ORA2/WC_N2O5=0.0 ! -!URG8/ORA1=0.0 +!WC_ORA2/WC_HONO=0.0 ! -!URG8/ORA2=0.0 +!WC_ORA2/WC_HNO3=0.0 ! -!URG8/ACID=0.0 +!WC_ORA2/WC_HNO4=0.0 ! -!URG8/UR28=0.0 +!WC_ORA2/WC_NH3=0.0 ! -!URG8/UR21=0.0 +!WC_ORA2/WC_OH=0.0 ! -!URG8/URG2=0.0 +!WC_ORA2/WC_HO2=0.0 ! -!URG8/UR26=0.0 +!WC_ORA2/WC_CO2=0.0 ! -!URG8/RPG2=0.0 +!WC_ORA2/WC_SO2=0.0 ! -!URG8/RP18=0.0 +!WC_ORA2/WC_SULF=0.0 ! -!URG8/RPG3=0.0 +!WC_ORA2/WC_HCHO=0.0 ! -!URG8/URG4=0.0 +!WC_ORA2/WC_ORA1=0.0 ! -!URG8/UR8=0.0 +!WC_ORA2/WC_ORA2=-KTC38 + PJAC(:,59,59)=-TPK%KTC38(:) ! -!URG8/UR17=0.0 +!WC_ORA2/WC_MO2=0.0 ! -!URG8/UR7=0.0 +!WC_ORA2/WC_OP1=0.0 ! -!URG8/RPR3=0.0 +!WC_ORA2/WC_ASO3=0.0 ! -!URG8/URG6=0.0 +!WC_ORA2/WC_ASO4=0.0 ! -!URG8/UR22=0.0 +!WC_ORA2/WC_ASO5=0.0 ! -!URG8/URG7=0.0 +!WC_ORA2/WC_AHSO5=0.0 ! -!URG8/RPR4=0.0 +!WC_ORA2/WC_AHMS=0.0 ! -!URG8/RPR7=0.0 +!WC_ORA2/WR_O3=0.0 ! -!URG8/RPG7=0.0 +!WC_ORA2/WR_H2O2=0.0 ! -!URG8/URG8=-K354 - PJAC(:,64,64)=-TPK%K354(:) +!WC_ORA2/WR_NO=0.0 ! -!URG8/UR19=0.0 +!WC_ORA2/WR_NO2=0.0 ! -!URG8/URG9=0.0 +!WC_ORA2/WR_NO3=0.0 ! -!URG8/AP7=0.0 +!WC_ORA2/WR_N2O5=0.0 ! -!URG8/URG10=0.0 +!WC_ORA2/WR_HONO=0.0 ! -!URG8/RPR1=0.0 +!WC_ORA2/WR_HNO3=0.0 ! -!URG8/RPR5=0.0 +!WC_ORA2/WR_HNO4=0.0 ! -!URG8/RPR8=0.0 +!WC_ORA2/WR_NH3=0.0 ! -!URG8/RP10=0.0 +!WC_ORA2/WR_OH=0.0 ! -!URG8/RP11=0.0 +!WC_ORA2/WR_HO2=0.0 ! -!URG8/RP16=0.0 +!WC_ORA2/WR_CO2=0.0 ! -!URG8/RPRL=0.0 +!WC_ORA2/WR_SO2=0.0 ! -!URG8/APAN=0.0 +!WC_ORA2/WR_SULF=0.0 ! -!URG8/PAN1=0.0 +!WC_ORA2/WR_HCHO=0.0 ! -!URG8/PAN2=0.0 +!WC_ORA2/WR_ORA1=0.0 ! -!URG8/PAN3=0.0 +!WC_ORA2/WR_ORA2=0.0 ! -!URG8/PAN4=0.0 +!WC_ORA2/WR_MO2=0.0 ! -!URG8/PAN6=0.0 +!WC_ORA2/WR_OP1=0.0 ! -!URG8/PAN7=0.0 +!WC_ORA2/WR_ASO3=0.0 ! -!URG8/PAN8=0.0 +!WC_ORA2/WR_ASO4=0.0 ! -!URG8/PN10=0.0 +!WC_ORA2/WR_ASO5=0.0 ! -!URG8/RO2T=0.0 +!WC_ORA2/WR_AHSO5=0.0 ! -!URG8/RO21=0.0 +!WC_ORA2/WR_AHMS=0.0 ! -!URG8/RO25=0.0 +!WC_MO2/O3=0.0 ! -!UR19/NO=+TPK%CF32*K221*<RO231> - PJAC(:,65,1)=+TPK%CF32*TPK%K221(:)*TPK%RO231(:) +!WC_MO2/H2O2=0.0 ! -!UR19/NO2=0.0 +!WC_MO2/NO=0.0 ! -!UR19/O3=0.0 +!WC_MO2/NO2=0.0 ! -!UR19/HONO=0.0 +!WC_MO2/NO3=0.0 ! -!UR19/HNO3=0.0 +!WC_MO2/N2O5=0.0 ! -!UR19/HNO4=0.0 +!WC_MO2/HONO=0.0 ! -!UR19/N2O5=0.0 +!WC_MO2/HNO3=0.0 ! -!UR19/NO3=0.0 +!WC_MO2/HNO4=0.0 ! -!UR19/NH3=0.0 +!WC_MO2/NH3=0.0 ! -!UR19/HO2=+K223*<RO231> - PJAC(:,65,10)=+TPK%K223(:)*TPK%RO231(:) +!WC_MO2/SO2=0.0 ! -!UR19/CO=0.0 +!WC_MO2/SULF=0.0 ! -!UR19/H2O2=0.0 +!WC_MO2/CO=0.0 ! -!UR19/SO2=0.0 +!WC_MO2/OH=0.0 ! -!UR19/H2SO4=0.0 +!WC_MO2/HO2=0.0 ! -!UR19/OH=0.0 +!WC_MO2/CH4=0.0 ! -!UR19/ETHE=0.0 +!WC_MO2/ETH=0.0 ! -!UR19/OLEL=0.0 +!WC_MO2/ALKA=0.0 ! -!UR19/OLEH=0.0 +!WC_MO2/ALKE=0.0 ! -!UR19/ALKL=0.0 +!WC_MO2/BIO=0.0 ! -!UR19/ALKM=0.0 +!WC_MO2/ARO=0.0 ! -!UR19/ALKH=0.0 +!WC_MO2/HCHO=0.0 ! -!UR19/AROH=0.0 +!WC_MO2/ALD=0.0 ! -!UR19/AROL=0.0 +!WC_MO2/KET=0.0 ! -!UR19/AROO=0.0 +!WC_MO2/CARBO=0.0 ! -!UR19/ARAL=0.0 +!WC_MO2/ONIT=0.0 ! -!UR19/ARAC=0.0 +!WC_MO2/PAN=0.0 ! -!UR19/PAH=0.0 +!WC_MO2/OP1=0.0 ! -!UR19/HCHO=0.0 +!WC_MO2/OP2=0.0 ! -!UR19/ALD2=0.0 +!WC_MO2/ORA1=0.0 ! -!UR19/KETL=0.0 +!WC_MO2/ORA2=0.0 ! -!UR19/KETH=0.0 +!WC_MO2/MO2=+KTC19 + PJAC(:,60,32)=+TPK%KTC19(:) ! -!UR19/MEOH=0.0 +!WC_MO2/ALKAP=0.0 ! -!UR19/ETOH=0.0 +!WC_MO2/ALKEP=0.0 ! -!UR19/ALCH=0.0 +!WC_MO2/BIOP=0.0 ! -!UR19/ISOP=0.0 +!WC_MO2/PHO=0.0 ! -!UR19/BIOL=0.0 +!WC_MO2/ADD=0.0 ! -!UR19/BIOH=0.0 +!WC_MO2/AROP=0.0 ! -!UR19/MTBE=0.0 +!WC_MO2/CARBOP=0.0 ! -!UR19/MVK=0.0 +!WC_MO2/OLN=0.0 ! -!UR19/MCR=0.0 +!WC_MO2/XO2=0.0 ! -!UR19/MGLY=0.0 +!WC_MO2/WC_O3=0.0 ! -!UR19/GLY=0.0 +!WC_MO2/WC_H2O2=0.0 ! -!UR19/ORA1=0.0 +!WC_MO2/WC_NO=0.0 ! -!UR19/ORA2=0.0 +!WC_MO2/WC_NO2=0.0 ! -!UR19/ACID=0.0 +!WC_MO2/WC_NO3=0.0 ! -!UR19/UR28=0.0 +!WC_MO2/WC_N2O5=0.0 ! -!UR19/UR21=0.0 +!WC_MO2/WC_HONO=0.0 ! -!UR19/URG2=0.0 +!WC_MO2/WC_HNO3=0.0 ! -!UR19/UR26=0.0 +!WC_MO2/WC_HNO4=0.0 ! -!UR19/RPG2=0.0 +!WC_MO2/WC_NH3=0.0 ! -!UR19/RP18=0.0 +!WC_MO2/WC_OH=0.0 ! -!UR19/RPG3=0.0 +!WC_MO2/WC_HO2=0.0 ! -!UR19/URG4=0.0 +!WC_MO2/WC_CO2=0.0 ! -!UR19/UR8=0.0 +!WC_MO2/WC_SO2=-KC18*<WC_MO2> + PJAC(:,60,55)=-TPK%KC18(:)*PCONC(:,60) ! -!UR19/UR17=0.0 +!WC_MO2/WC_SULF=0.0 ! -!UR19/UR7=0.0 +!WC_MO2/WC_HCHO=0.0 ! -!UR19/RPR3=0.0 +!WC_MO2/WC_ORA1=0.0 ! -!UR19/URG6=0.0 +!WC_MO2/WC_ORA2=0.0 ! -!UR19/UR22=0.0 +!WC_MO2/WC_MO2=-KTC39-KC17*<WC_MO2>-KC17*<WC_MO2>-KC17*<WC_MO2>-KC17*<WC_MO2>-K +!C18*<WC_SO2> + PJAC(:,60,60)=-TPK%KTC39(:)-TPK%KC17(:)*PCONC(:,60)-TPK%KC17(:)*PCONC(:,60)-TP& +&K%KC17(:)*PCONC(:,60)-TPK%KC17(:)*PCONC(:,60)-TPK%KC18(:)*PCONC(:,55) ! -!UR19/URG7=0.0 +!WC_MO2/WC_OP1=0.0 ! -!UR19/RPR4=0.0 +!WC_MO2/WC_ASO3=0.0 ! -!UR19/RPR7=0.0 +!WC_MO2/WC_ASO4=0.0 ! -!UR19/RPG7=0.0 +!WC_MO2/WC_ASO5=0.0 ! -!UR19/URG8=0.0 +!WC_MO2/WC_AHSO5=0.0 ! -!UR19/UR19=-K360 - PJAC(:,65,65)=-TPK%K360(:) +!WC_MO2/WC_AHMS=0.0 ! -!UR19/URG9=0.0 +!WC_MO2/WR_O3=0.0 ! -!UR19/AP7=0.0 +!WC_MO2/WR_H2O2=0.0 ! -!UR19/URG10=0.0 +!WC_MO2/WR_NO=0.0 ! -!UR19/RPR1=0.0 +!WC_MO2/WR_NO2=0.0 ! -!UR19/RPR5=0.0 +!WC_MO2/WR_NO3=0.0 ! -!UR19/RPR8=0.0 +!WC_MO2/WR_N2O5=0.0 ! -!UR19/RP10=0.0 +!WC_MO2/WR_HONO=0.0 ! -!UR19/RP11=0.0 +!WC_MO2/WR_HNO3=0.0 ! -!UR19/RP16=0.0 +!WC_MO2/WR_HNO4=0.0 ! -!UR19/RPRL=0.0 +!WC_MO2/WR_NH3=0.0 ! -!UR19/APAN=0.0 +!WC_MO2/WR_OH=0.0 ! -!UR19/PAN1=0.0 +!WC_MO2/WR_HO2=0.0 ! -!UR19/PAN2=0.0 +!WC_MO2/WR_CO2=0.0 ! -!UR19/PAN3=0.0 +!WC_MO2/WR_SO2=0.0 ! -!UR19/PAN4=0.0 +!WC_MO2/WR_SULF=0.0 ! -!UR19/PAN6=0.0 +!WC_MO2/WR_HCHO=0.0 ! -!UR19/PAN7=0.0 +!WC_MO2/WR_ORA1=0.0 ! -!UR19/PAN8=0.0 +!WC_MO2/WR_ORA2=0.0 ! -!UR19/PN10=0.0 +!WC_MO2/WR_MO2=0.0 ! -!UR19/RO2T=+K222*<RO231> - PJAC(:,65,85)=+TPK%K222(:)*TPK%RO231(:) +!WC_MO2/WR_OP1=0.0 ! -!UR19/RO21=0.0 +!WC_MO2/WR_ASO3=0.0 ! -!UR19/RO25=0.0 +!WC_MO2/WR_ASO4=0.0 ! -RETURN -END SUBROUTINE SUBJ12 +!WC_MO2/WR_ASO5=0.0 ! -SUBROUTINE SUBJ13 +!WC_MO2/WR_AHSO5=0.0 ! -!Indices 66 a 70 +!WC_MO2/WR_AHMS=0.0 ! +RETURN +END SUBROUTINE SUBJ11 ! -!URG9/NO=+TPK%CFA14*K224*<RO232>+TPK%CFA16*K227*<RO241>+TPK%CFA15*K227*<RO241> - PJAC(:,66,1)=+TPK%CFA14*TPK%K224(:)*TPK%RO232(:)+TPK%CFA16*TPK%K227(:)*TPK%RO2& -&41(:)+TPK%CFA15*TPK%K227(:)*TPK%RO241(:) +SUBROUTINE SUBJ12 ! -!URG9/NO2=0.0 +!Indices 61 a 65 ! -!URG9/O3=0.0 ! -!URG9/HONO=0.0 +!WC_OP1/O3=0.0 ! -!URG9/HNO3=0.0 +!WC_OP1/H2O2=0.0 ! -!URG9/HNO4=0.0 +!WC_OP1/NO=0.0 ! -!URG9/N2O5=0.0 +!WC_OP1/NO2=0.0 ! -!URG9/NO3=0.0 +!WC_OP1/NO3=0.0 ! -!URG9/NH3=0.0 +!WC_OP1/N2O5=0.0 ! -!URG9/HO2=+0.9999996*K229*<RO241> - PJAC(:,66,10)=+0.9999996*TPK%K229(:)*TPK%RO241(:) +!WC_OP1/HONO=0.0 ! -!URG9/CO=0.0 +!WC_OP1/HNO3=0.0 ! -!URG9/H2O2=0.0 +!WC_OP1/HNO4=0.0 ! -!URG9/SO2=0.0 +!WC_OP1/NH3=0.0 ! -!URG9/H2SO4=0.0 +!WC_OP1/SO2=0.0 ! -!URG9/OH=0.0 +!WC_OP1/SULF=0.0 ! -!URG9/ETHE=0.0 +!WC_OP1/CO=0.0 ! -!URG9/OLEL=0.0 +!WC_OP1/OH=0.0 ! -!URG9/OLEH=0.0 +!WC_OP1/HO2=0.0 ! -!URG9/ALKL=0.0 +!WC_OP1/CH4=0.0 ! -!URG9/ALKM=0.0 +!WC_OP1/ETH=0.0 ! -!URG9/ALKH=0.0 +!WC_OP1/ALKA=0.0 ! -!URG9/AROH=0.0 +!WC_OP1/ALKE=0.0 ! -!URG9/AROL=0.0 +!WC_OP1/BIO=0.0 ! -!URG9/AROO=0.0 +!WC_OP1/ARO=0.0 ! -!URG9/ARAL=0.0 +!WC_OP1/HCHO=0.0 ! -!URG9/ARAC=0.0 +!WC_OP1/ALD=0.0 ! -!URG9/PAH=0.0 +!WC_OP1/KET=0.0 ! -!URG9/HCHO=0.0 +!WC_OP1/CARBO=0.0 ! -!URG9/ALD2=0.0 +!WC_OP1/ONIT=0.0 ! -!URG9/KETL=0.0 +!WC_OP1/PAN=0.0 ! -!URG9/KETH=0.0 +!WC_OP1/OP1=+KTC20 + PJAC(:,61,28)=+TPK%KTC20(:) ! -!URG9/MEOH=0.0 +!WC_OP1/OP2=0.0 ! -!URG9/ETOH=0.0 +!WC_OP1/ORA1=0.0 ! -!URG9/ALCH=0.0 +!WC_OP1/ORA2=0.0 ! -!URG9/ISOP=0.0 +!WC_OP1/MO2=0.0 ! -!URG9/BIOL=0.0 +!WC_OP1/ALKAP=0.0 ! -!URG9/BIOH=0.0 +!WC_OP1/ALKEP=0.0 ! -!URG9/MTBE=0.0 +!WC_OP1/BIOP=0.0 ! -!URG9/MVK=0.0 +!WC_OP1/PHO=0.0 ! -!URG9/MCR=0.0 +!WC_OP1/ADD=0.0 ! -!URG9/MGLY=0.0 +!WC_OP1/AROP=0.0 ! -!URG9/GLY=0.0 +!WC_OP1/CARBOP=0.0 ! -!URG9/ORA1=0.0 +!WC_OP1/OLN=0.0 ! -!URG9/ORA2=0.0 +!WC_OP1/XO2=0.0 ! -!URG9/ACID=0.0 +!WC_OP1/WC_O3=0.0 ! -!URG9/UR28=0.0 +!WC_OP1/WC_H2O2=0.0 ! -!URG9/UR21=0.0 +!WC_OP1/WC_NO=0.0 ! -!URG9/URG2=0.0 +!WC_OP1/WC_NO2=0.0 ! -!URG9/UR26=0.0 +!WC_OP1/WC_NO3=0.0 ! -!URG9/RPG2=0.0 +!WC_OP1/WC_N2O5=0.0 ! -!URG9/RP18=0.0 +!WC_OP1/WC_HONO=0.0 ! -!URG9/RPG3=0.0 +!WC_OP1/WC_HNO3=0.0 ! -!URG9/URG4=0.0 +!WC_OP1/WC_HNO4=0.0 ! -!URG9/UR8=0.0 +!WC_OP1/WC_NH3=0.0 ! -!URG9/UR17=0.0 +!WC_OP1/WC_OH=0.0 ! -!URG9/UR7=0.0 +!WC_OP1/WC_HO2=0.0 ! -!URG9/RPR3=0.0 +!WC_OP1/WC_CO2=0.0 ! -!URG9/URG6=0.0 +!WC_OP1/WC_SO2=+KC18*<WC_MO2> + PJAC(:,61,55)=+TPK%KC18(:)*PCONC(:,60) ! -!URG9/UR22=0.0 +!WC_OP1/WC_SULF=0.0 ! -!URG9/URG7=0.0 +!WC_OP1/WC_HCHO=0.0 ! -!URG9/RPR4=0.0 +!WC_OP1/WC_ORA1=0.0 ! -!URG9/RPR7=0.0 +!WC_OP1/WC_ORA2=0.0 ! -!URG9/RPG7=0.0 +!WC_OP1/WC_MO2=+KC18*<WC_SO2> + PJAC(:,61,60)=+TPK%KC18(:)*PCONC(:,55) ! -!URG9/URG8=0.0 +!WC_OP1/WC_OP1=-KTC40 + PJAC(:,61,61)=-TPK%KTC40(:) ! -!URG9/UR19=0.0 +!WC_OP1/WC_ASO3=0.0 ! -!URG9/URG9=-K355 - PJAC(:,66,66)=-TPK%K355(:) +!WC_OP1/WC_ASO4=0.0 ! -!URG9/AP7=0.0 +!WC_OP1/WC_ASO5=0.0 ! -!URG9/URG10=0.0 +!WC_OP1/WC_AHSO5=0.0 ! -!URG9/RPR1=0.0 +!WC_OP1/WC_AHMS=0.0 ! -!URG9/RPR5=0.0 +!WC_OP1/WR_O3=0.0 ! -!URG9/RPR8=0.0 +!WC_OP1/WR_H2O2=0.0 ! -!URG9/RP10=0.0 +!WC_OP1/WR_NO=0.0 ! -!URG9/RP11=0.0 +!WC_OP1/WR_NO2=0.0 ! -!URG9/RP16=0.0 +!WC_OP1/WR_NO3=0.0 ! -!URG9/RPRL=0.0 +!WC_OP1/WR_N2O5=0.0 ! -!URG9/APAN=0.0 +!WC_OP1/WR_HONO=0.0 ! -!URG9/PAN1=0.0 +!WC_OP1/WR_HNO3=0.0 ! -!URG9/PAN2=0.0 +!WC_OP1/WR_HNO4=0.0 ! -!URG9/PAN3=0.0 +!WC_OP1/WR_NH3=0.0 ! -!URG9/PAN4=0.0 +!WC_OP1/WR_OH=0.0 ! -!URG9/PAN6=0.0 +!WC_OP1/WR_HO2=0.0 ! -!URG9/PAN7=0.0 +!WC_OP1/WR_CO2=0.0 ! -!URG9/PAN8=0.0 +!WC_OP1/WR_SO2=0.0 ! -!URG9/PN10=0.0 +!WC_OP1/WR_SULF=0.0 ! -!URG9/RO2T=+0.9999996*K228*<RO241> - PJAC(:,66,85)=+0.9999996*TPK%K228(:)*TPK%RO241(:) +!WC_OP1/WR_HCHO=0.0 ! -!URG9/RO21=0.0 +!WC_OP1/WR_ORA1=0.0 ! -!URG9/RO25=0.0 +!WC_OP1/WR_ORA2=0.0 ! -!AP7/NO=+TPK%CFA23*K198*<RO224> - PJAC(:,67,1)=+TPK%CFA23*TPK%K198(:)*TPK%RO224(:) +!WC_OP1/WR_MO2=0.0 ! -!AP7/NO2=0.0 +!WC_OP1/WR_OP1=0.0 ! -!AP7/O3=0.0 +!WC_OP1/WR_ASO3=0.0 ! -!AP7/HONO=0.0 +!WC_OP1/WR_ASO4=0.0 ! -!AP7/HNO3=0.0 +!WC_OP1/WR_ASO5=0.0 ! -!AP7/HNO4=0.0 +!WC_OP1/WR_AHSO5=0.0 ! -!AP7/N2O5=0.0 +!WC_OP1/WR_AHMS=0.0 ! -!AP7/NO3=0.0 +!WC_ASO3/O3=0.0 ! -!AP7/NH3=0.0 +!WC_ASO3/H2O2=0.0 ! -!AP7/HO2=0.0 +!WC_ASO3/NO=0.0 ! -!AP7/CO=0.0 +!WC_ASO3/NO2=0.0 ! -!AP7/H2O2=0.0 +!WC_ASO3/NO3=0.0 ! -!AP7/SO2=0.0 +!WC_ASO3/N2O5=0.0 ! -!AP7/H2SO4=0.0 +!WC_ASO3/HONO=0.0 ! -!AP7/OH=0.0 +!WC_ASO3/HNO3=0.0 ! -!AP7/ETHE=0.0 +!WC_ASO3/HNO4=0.0 ! -!AP7/OLEL=0.0 +!WC_ASO3/NH3=0.0 ! -!AP7/OLEH=0.0 +!WC_ASO3/SO2=0.0 ! -!AP7/ALKL=0.0 +!WC_ASO3/SULF=0.0 ! -!AP7/ALKM=0.0 +!WC_ASO3/CO=0.0 ! -!AP7/ALKH=0.0 +!WC_ASO3/OH=0.0 ! -!AP7/AROH=0.0 +!WC_ASO3/HO2=0.0 ! -!AP7/AROL=0.0 +!WC_ASO3/CH4=0.0 ! -!AP7/AROO=0.0 +!WC_ASO3/ETH=0.0 ! -!AP7/ARAL=0.0 +!WC_ASO3/ALKA=0.0 ! -!AP7/ARAC=0.0 +!WC_ASO3/ALKE=0.0 ! -!AP7/PAH=0.0 +!WC_ASO3/BIO=0.0 ! -!AP7/HCHO=0.0 +!WC_ASO3/ARO=0.0 ! -!AP7/ALD2=0.0 +!WC_ASO3/HCHO=0.0 ! -!AP7/KETL=0.0 +!WC_ASO3/ALD=0.0 ! -!AP7/KETH=0.0 +!WC_ASO3/KET=0.0 ! -!AP7/MEOH=0.0 +!WC_ASO3/CARBO=0.0 ! -!AP7/ETOH=0.0 +!WC_ASO3/ONIT=0.0 ! -!AP7/ALCH=0.0 +!WC_ASO3/PAN=0.0 ! -!AP7/ISOP=0.0 +!WC_ASO3/OP1=0.0 ! -!AP7/BIOL=0.0 +!WC_ASO3/OP2=0.0 ! -!AP7/BIOH=0.0 +!WC_ASO3/ORA1=0.0 ! -!AP7/MTBE=0.0 +!WC_ASO3/ORA2=0.0 ! -!AP7/MVK=0.0 +!WC_ASO3/MO2=0.0 ! -!AP7/MCR=0.0 +!WC_ASO3/ALKAP=0.0 ! -!AP7/MGLY=0.0 +!WC_ASO3/ALKEP=0.0 ! -!AP7/GLY=0.0 +!WC_ASO3/BIOP=0.0 ! -!AP7/ORA1=0.0 +!WC_ASO3/PHO=0.0 ! -!AP7/ORA2=0.0 +!WC_ASO3/ADD=0.0 ! -!AP7/ACID=0.0 +!WC_ASO3/AROP=0.0 ! -!AP7/UR28=0.0 +!WC_ASO3/CARBOP=0.0 ! -!AP7/UR21=0.0 +!WC_ASO3/OLN=0.0 ! -!AP7/URG2=0.0 +!WC_ASO3/XO2=0.0 ! -!AP7/UR26=0.0 +!WC_ASO3/WC_O3=0.0 ! -!AP7/RPG2=0.0 +!WC_ASO3/WC_H2O2=0.0 ! -!AP7/RP18=0.0 +!WC_ASO3/WC_NO=0.0 ! -!AP7/RPG3=0.0 +!WC_ASO3/WC_NO2=0.0 ! -!AP7/URG4=0.0 +!WC_ASO3/WC_NO3=+KC16*<WC_SO2> + PJAC(:,62,46)=+TPK%KC16(:)*PCONC(:,55) ! -!AP7/UR8=0.0 +!WC_ASO3/WC_N2O5=0.0 ! -!AP7/UR17=0.0 +!WC_ASO3/WC_HONO=0.0 ! -!AP7/UR7=0.0 +!WC_ASO3/WC_HNO3=0.0 ! -!AP7/RPR3=0.0 +!WC_ASO3/WC_HNO4=0.0 ! -!AP7/URG6=0.0 +!WC_ASO3/WC_NH3=0.0 ! -!AP7/UR22=0.0 +!WC_ASO3/WC_OH=+KC7*<WC_SO2> + PJAC(:,62,52)=+TPK%KC7(:)*PCONC(:,55) ! -!AP7/URG7=0.0 +!WC_ASO3/WC_HO2=0.0 ! -!AP7/RPR4=0.0 +!WC_ASO3/WC_CO2=0.0 ! -!AP7/RPR7=0.0 +!WC_ASO3/WC_SO2=+KC7*<WC_OH>+KC16*<WC_NO3>+KC18*<WC_MO2> + PJAC(:,62,55)=+TPK%KC7(:)*PCONC(:,52)+TPK%KC16(:)*PCONC(:,46)+TPK%KC18(:)*PCON& +&C(:,60) ! -!AP7/RPG7=0.0 +!WC_ASO3/WC_SULF=0.0 ! -!AP7/URG8=0.0 +!WC_ASO3/WC_HCHO=0.0 ! -!AP7/UR19=0.0 +!WC_ASO3/WC_ORA1=0.0 ! -!AP7/URG9=0.0 +!WC_ASO3/WC_ORA2=0.0 ! -!AP7/AP7=-K365 - PJAC(:,67,67)=-TPK%K365(:) +!WC_ASO3/WC_MO2=+KC18*<WC_SO2> + PJAC(:,62,60)=+TPK%KC18(:)*PCONC(:,55) ! -!AP7/URG10=0.0 +!WC_ASO3/WC_OP1=0.0 ! -!AP7/RPR1=0.0 +!WC_ASO3/WC_ASO3=-KC24*<W_O2> + PJAC(:,62,62)=-TPK%KC24(:)*TPK%W_O2(:) ! -!AP7/RPR5=0.0 +!WC_ASO3/WC_ASO4=0.0 ! -!AP7/RPR8=0.0 +!WC_ASO3/WC_ASO5=0.0 ! -!AP7/RP10=0.0 +!WC_ASO3/WC_AHSO5=0.0 ! -!AP7/RP11=0.0 +!WC_ASO3/WC_AHMS=0.0 ! -!AP7/RP16=0.0 +!WC_ASO3/WR_O3=0.0 ! -!AP7/RPRL=0.0 +!WC_ASO3/WR_H2O2=0.0 ! -!AP7/APAN=0.0 +!WC_ASO3/WR_NO=0.0 ! -!AP7/PAN1=0.0 +!WC_ASO3/WR_NO2=0.0 ! -!AP7/PAN2=0.0 +!WC_ASO3/WR_NO3=0.0 ! -!AP7/PAN3=0.0 +!WC_ASO3/WR_N2O5=0.0 ! -!AP7/PAN4=0.0 +!WC_ASO3/WR_HONO=0.0 ! -!AP7/PAN6=0.0 +!WC_ASO3/WR_HNO3=0.0 ! -!AP7/PAN7=0.0 +!WC_ASO3/WR_HNO4=0.0 ! -!AP7/PAN8=0.0 +!WC_ASO3/WR_NH3=0.0 ! -!AP7/PN10=0.0 +!WC_ASO3/WR_OH=0.0 ! -!AP7/RO2T=0.0 +!WC_ASO3/WR_HO2=0.0 ! -!AP7/RO21=0.0 +!WC_ASO3/WR_CO2=0.0 ! -!AP7/RO25=0.0 +!WC_ASO3/WR_SO2=0.0 ! -!URG10/NO=+TPK%CF27*K207*<RO227> - PJAC(:,68,1)=+TPK%CF27*TPK%K207(:)*TPK%RO227(:) +!WC_ASO3/WR_SULF=0.0 ! -!URG10/NO2=0.0 +!WC_ASO3/WR_HCHO=0.0 ! -!URG10/O3=0.0 +!WC_ASO3/WR_ORA1=0.0 ! -!URG10/HONO=0.0 +!WC_ASO3/WR_ORA2=0.0 ! -!URG10/HNO3=0.0 +!WC_ASO3/WR_MO2=0.0 ! -!URG10/HNO4=0.0 +!WC_ASO3/WR_OP1=0.0 ! -!URG10/N2O5=0.0 +!WC_ASO3/WR_ASO3=0.0 ! -!URG10/NO3=0.0 +!WC_ASO3/WR_ASO4=0.0 ! -!URG10/NH3=0.0 +!WC_ASO3/WR_ASO5=0.0 ! -!URG10/HO2=0.0 +!WC_ASO3/WR_AHSO5=0.0 ! -!URG10/CO=0.0 +!WC_ASO3/WR_AHMS=0.0 ! -!URG10/H2O2=0.0 +!WC_ASO4/O3=0.0 ! -!URG10/SO2=0.0 +!WC_ASO4/H2O2=0.0 ! -!URG10/H2SO4=0.0 +!WC_ASO4/NO=0.0 ! -!URG10/OH=0.0 +!WC_ASO4/NO2=0.0 ! -!URG10/ETHE=0.0 +!WC_ASO4/NO3=0.0 ! -!URG10/OLEL=0.0 +!WC_ASO4/N2O5=0.0 ! -!URG10/OLEH=0.0 +!WC_ASO4/HONO=0.0 ! -!URG10/ALKL=0.0 +!WC_ASO4/HNO3=0.0 ! -!URG10/ALKM=0.0 +!WC_ASO4/HNO4=0.0 ! -!URG10/ALKH=0.0 +!WC_ASO4/NH3=0.0 ! -!URG10/AROH=0.0 +!WC_ASO4/SO2=0.0 ! -!URG10/AROL=0.0 +!WC_ASO4/SULF=0.0 ! -!URG10/AROO=0.0 +!WC_ASO4/CO=0.0 ! -!URG10/ARAL=0.0 +!WC_ASO4/OH=0.0 ! -!URG10/ARAC=0.0 +!WC_ASO4/HO2=0.0 ! -!URG10/PAH=0.0 +!WC_ASO4/CH4=0.0 ! -!URG10/HCHO=0.0 +!WC_ASO4/ETH=0.0 ! -!URG10/ALD2=0.0 +!WC_ASO4/ALKA=0.0 ! -!URG10/KETL=0.0 +!WC_ASO4/ALKE=0.0 ! -!URG10/KETH=0.0 +!WC_ASO4/BIO=0.0 ! -!URG10/MEOH=0.0 +!WC_ASO4/ARO=0.0 ! -!URG10/ETOH=0.0 +!WC_ASO4/HCHO=0.0 ! -!URG10/ALCH=0.0 +!WC_ASO4/ALD=0.0 ! -!URG10/ISOP=0.0 +!WC_ASO4/KET=0.0 ! -!URG10/BIOL=+0.2500000*K087*<O>+0.7500000*K087*<O> - PJAC(:,68,36)=+0.2500000*TPK%K087(:)*TPK%O(:)+0.7500000*TPK%K087(:)*TPK%O(:) +!WC_ASO4/CARBO=0.0 ! -!URG10/BIOH=0.0 +!WC_ASO4/ONIT=0.0 ! -!URG10/MTBE=0.0 +!WC_ASO4/PAN=0.0 ! -!URG10/MVK=0.0 +!WC_ASO4/OP1=0.0 ! -!URG10/MCR=0.0 +!WC_ASO4/OP2=0.0 ! -!URG10/MGLY=0.0 +!WC_ASO4/ORA1=0.0 ! -!URG10/GLY=0.0 +!WC_ASO4/ORA2=0.0 ! -!URG10/ORA1=0.0 +!WC_ASO4/MO2=0.0 ! -!URG10/ORA2=0.0 +!WC_ASO4/ALKAP=0.0 ! -!URG10/ACID=0.0 +!WC_ASO4/ALKEP=0.0 ! -!URG10/UR28=0.0 +!WC_ASO4/BIOP=0.0 ! -!URG10/UR21=0.0 +!WC_ASO4/PHO=0.0 ! -!URG10/URG2=0.0 +!WC_ASO4/ADD=0.0 ! -!URG10/UR26=0.0 +!WC_ASO4/AROP=0.0 ! -!URG10/RPG2=0.0 +!WC_ASO4/CARBOP=0.0 ! -!URG10/RP18=0.0 +!WC_ASO4/OLN=0.0 ! -!URG10/RPG3=0.0 +!WC_ASO4/XO2=0.0 ! -!URG10/URG4=0.0 +!WC_ASO4/WC_O3=0.0 ! -!URG10/UR8=0.0 +!WC_ASO4/WC_H2O2=0.0 ! -!URG10/UR17=0.0 +!WC_ASO4/WC_NO=0.0 ! -!URG10/UR7=0.0 +!WC_ASO4/WC_NO2=0.0 ! -!URG10/RPR3=0.0 +!WC_ASO4/WC_NO3=+KC15*<WC_SULF> + PJAC(:,63,46)=+TPK%KC15(:)*PCONC(:,56) ! -!URG10/URG6=0.0 +!WC_ASO4/WC_N2O5=0.0 ! -!URG10/UR22=0.0 +!WC_ASO4/WC_HONO=0.0 ! -!URG10/URG7=0.0 +!WC_ASO4/WC_HNO3=0.0 ! -!URG10/RPR4=0.0 +!WC_ASO4/WC_HNO4=0.0 ! -!URG10/RPR7=0.0 +!WC_ASO4/WC_NH3=0.0 ! -!URG10/RPG7=0.0 +!WC_ASO4/WC_OH=0.0 ! -!URG10/URG8=0.0 +!WC_ASO4/WC_HO2=0.0 ! -!URG10/UR19=0.0 +!WC_ASO4/WC_CO2=0.0 ! -!URG10/URG9=0.0 +!WC_ASO4/WC_SO2=0.0 ! -!URG10/AP7=0.0 +!WC_ASO4/WC_SULF=+KC15*<WC_NO3> + PJAC(:,63,56)=+TPK%KC15(:)*PCONC(:,46) ! -!URG10/URG10=-K356 - PJAC(:,68,68)=-TPK%K356(:) +!WC_ASO4/WC_HCHO=0.0 ! -!URG10/RPR1=0.0 +!WC_ASO4/WC_ORA1=0.0 ! -!URG10/RPR5=0.0 +!WC_ASO4/WC_ORA2=0.0 ! -!URG10/RPR8=0.0 +!WC_ASO4/WC_MO2=0.0 ! -!URG10/RP10=0.0 +!WC_ASO4/WC_OP1=0.0 ! -!URG10/RP11=0.0 +!WC_ASO4/WC_ASO3=0.0 ! -!URG10/RP16=0.0 +!WC_ASO4/WC_ASO4=-KC28 + PJAC(:,63,63)=-TPK%KC28(:) ! -!URG10/RPRL=0.0 +!WC_ASO4/WC_ASO5=+KC26*<WC_ASO5>+KC26*<WC_ASO5>+KC26*<WC_ASO5>+KC26*<WC_ASO5> + PJAC(:,63,64)=+TPK%KC26(:)*PCONC(:,64)+TPK%KC26(:)*PCONC(:,64)+TPK%KC26(:)*PCO& +&NC(:,64)+TPK%KC26(:)*PCONC(:,64) ! -!URG10/APAN=0.0 +!WC_ASO4/WC_AHSO5=0.0 ! -!URG10/PAN1=0.0 +!WC_ASO4/WC_AHMS=0.0 ! -!URG10/PAN2=0.0 +!WC_ASO4/WR_O3=0.0 ! -!URG10/PAN3=0.0 +!WC_ASO4/WR_H2O2=0.0 ! -!URG10/PAN4=0.0 +!WC_ASO4/WR_NO=0.0 ! -!URG10/PAN6=0.0 +!WC_ASO4/WR_NO2=0.0 ! -!URG10/PAN7=0.0 +!WC_ASO4/WR_NO3=0.0 ! -!URG10/PAN8=0.0 +!WC_ASO4/WR_N2O5=0.0 ! -!URG10/PN10=0.0 +!WC_ASO4/WR_HONO=0.0 ! -!URG10/RO2T=0.0 +!WC_ASO4/WR_HNO3=0.0 ! -!URG10/RO21=0.0 +!WC_ASO4/WR_HNO4=0.0 ! -!URG10/RO25=0.0 +!WC_ASO4/WR_NH3=0.0 ! -!RPR1/NO=+K183*<RO219> - PJAC(:,69,1)=+TPK%K183(:)*TPK%RO219(:) +!WC_ASO4/WR_OH=0.0 ! -!RPR1/NO2=0.0 +!WC_ASO4/WR_HO2=0.0 ! -!RPR1/O3=+0.5*K076*<OLEH> - PJAC(:,69,3)=+0.5*TPK%K076(:)*PCONC(:,18) +!WC_ASO4/WR_CO2=0.0 ! -!RPR1/HONO=0.0 +!WC_ASO4/WR_SO2=0.0 ! -!RPR1/HNO3=0.0 +!WC_ASO4/WR_SULF=0.0 ! -!RPR1/HNO4=0.0 +!WC_ASO4/WR_HCHO=0.0 ! -!RPR1/N2O5=0.0 +!WC_ASO4/WR_ORA1=0.0 ! -!RPR1/NO3=-K307*<RPR1> - PJAC(:,69,8)=-TPK%K307(:)*PCONC(:,69) +!WC_ASO4/WR_ORA2=0.0 ! -!RPR1/NH3=0.0 +!WC_ASO4/WR_MO2=0.0 ! -!RPR1/HO2=+K185*<RO219> - PJAC(:,69,10)=+TPK%K185(:)*TPK%RO219(:) +!WC_ASO4/WR_OP1=0.0 ! -!RPR1/CO=0.0 +!WC_ASO4/WR_ASO3=0.0 ! -!RPR1/H2O2=0.0 +!WC_ASO4/WR_ASO4=0.0 ! -!RPR1/SO2=0.0 +!WC_ASO4/WR_ASO5=0.0 ! -!RPR1/H2SO4=0.0 +!WC_ASO4/WR_AHSO5=0.0 ! -!RPR1/OH=-K304*<RPR1> - PJAC(:,69,15)=-TPK%K304(:)*PCONC(:,69) +!WC_ASO4/WR_AHMS=0.0 ! -!RPR1/ETHE=0.0 +!WC_ASO5/O3=0.0 ! -!RPR1/OLEL=0.0 +!WC_ASO5/H2O2=0.0 ! -!RPR1/OLEH=+0.5*K076*<O3>+0.4*K077*<O> - PJAC(:,69,18)=+0.5*TPK%K076(:)*PCONC(:,3)+0.4*TPK%K077(:)*TPK%O(:) +!WC_ASO5/NO=0.0 ! -!RPR1/ALKL=0.0 +!WC_ASO5/NO2=0.0 ! -!RPR1/ALKM=0.0 +!WC_ASO5/NO3=0.0 ! -!RPR1/ALKH=0.0 +!WC_ASO5/N2O5=0.0 ! -!RPR1/AROH=0.0 +!WC_ASO5/HONO=0.0 ! -!RPR1/AROL=0.0 +!WC_ASO5/HNO3=0.0 ! -!RPR1/AROO=0.0 +!WC_ASO5/HNO4=0.0 ! -!RPR1/ARAL=0.0 +!WC_ASO5/NH3=0.0 ! -!RPR1/ARAC=0.0 +!WC_ASO5/SO2=0.0 ! -!RPR1/PAH=0.0 +!WC_ASO5/SULF=0.0 ! -!RPR1/HCHO=0.0 +!WC_ASO5/CO=0.0 ! -!RPR1/ALD2=0.0 +!WC_ASO5/OH=0.0 ! -!RPR1/KETL=0.0 +!WC_ASO5/HO2=0.0 ! -!RPR1/KETH=0.0 +!WC_ASO5/CH4=0.0 ! -!RPR1/MEOH=0.0 +!WC_ASO5/ETH=0.0 ! -!RPR1/ETOH=0.0 +!WC_ASO5/ALKA=0.0 ! -!RPR1/ALCH=0.0 +!WC_ASO5/ALKE=0.0 ! -!RPR1/ISOP=0.0 +!WC_ASO5/BIO=0.0 ! -!RPR1/BIOL=0.0 +!WC_ASO5/ARO=0.0 ! -!RPR1/BIOH=0.0 +!WC_ASO5/HCHO=0.0 ! -!RPR1/MTBE=0.0 +!WC_ASO5/ALD=0.0 ! -!RPR1/MVK=0.0 +!WC_ASO5/KET=0.0 ! -!RPR1/MCR=0.0 +!WC_ASO5/CARBO=0.0 ! -!RPR1/MGLY=0.0 +!WC_ASO5/ONIT=0.0 ! -!RPR1/GLY=0.0 +!WC_ASO5/PAN=0.0 ! -!RPR1/ORA1=0.0 +!WC_ASO5/OP1=0.0 ! -!RPR1/ORA2=0.0 +!WC_ASO5/OP2=0.0 ! -!RPR1/ACID=0.0 +!WC_ASO5/ORA1=0.0 ! -!RPR1/UR28=0.0 +!WC_ASO5/ORA2=0.0 ! -!RPR1/UR21=0.0 +!WC_ASO5/MO2=0.0 ! -!RPR1/URG2=0.0 +!WC_ASO5/ALKAP=0.0 ! -!RPR1/UR26=0.0 +!WC_ASO5/ALKEP=0.0 ! -!RPR1/RPG2=0.0 +!WC_ASO5/BIOP=0.0 ! -!RPR1/RP18=0.0 +!WC_ASO5/PHO=0.0 ! -!RPR1/RPG3=0.0 +!WC_ASO5/ADD=0.0 ! -!RPR1/URG4=0.0 +!WC_ASO5/AROP=0.0 ! -!RPR1/UR8=0.0 +!WC_ASO5/CARBOP=0.0 ! -!RPR1/UR17=0.0 +!WC_ASO5/OLN=0.0 ! -!RPR1/UR7=0.0 +!WC_ASO5/XO2=0.0 ! -!RPR1/RPR3=0.0 +!WC_ASO5/WC_O3=0.0 ! -!RPR1/URG6=0.0 +!WC_ASO5/WC_H2O2=0.0 ! -!RPR1/UR22=0.0 +!WC_ASO5/WC_NO=0.0 ! -!RPR1/URG7=0.0 +!WC_ASO5/WC_NO2=0.0 ! -!RPR1/RPR4=0.0 +!WC_ASO5/WC_NO3=0.0 ! -!RPR1/RPR7=0.0 +!WC_ASO5/WC_N2O5=0.0 ! -!RPR1/RPG7=0.0 +!WC_ASO5/WC_HONO=0.0 ! -!RPR1/URG8=0.0 +!WC_ASO5/WC_HNO3=0.0 ! -!RPR1/UR19=0.0 +!WC_ASO5/WC_HNO4=0.0 ! -!RPR1/URG9=0.0 +!WC_ASO5/WC_NH3=0.0 ! -!RPR1/AP7=0.0 +!WC_ASO5/WC_OH=0.0 ! -!RPR1/URG10=0.0 +!WC_ASO5/WC_HO2=-KC25*<WC_ASO5> + PJAC(:,64,53)=-TPK%KC25(:)*PCONC(:,64) ! -!RPR1/RPR1=-K304*<OH>-K307*<NO3>-K308 - PJAC(:,69,69)=-TPK%K304(:)*PCONC(:,15)-TPK%K307(:)*PCONC(:,8)-TPK%K308(:) +!WC_ASO5/WC_CO2=0.0 ! -!RPR1/RPR5=0.0 +!WC_ASO5/WC_SO2=0.0 ! -!RPR1/RPR8=0.0 +!WC_ASO5/WC_SULF=0.0 ! -!RPR1/RP10=0.0 +!WC_ASO5/WC_HCHO=0.0 ! -!RPR1/RP11=0.0 +!WC_ASO5/WC_ORA1=0.0 ! -!RPR1/RP16=0.0 +!WC_ASO5/WC_ORA2=0.0 ! -!RPR1/RPRL=0.0 +!WC_ASO5/WC_MO2=0.0 ! -!RPR1/APAN=0.0 +!WC_ASO5/WC_OP1=0.0 ! -!RPR1/PAN1=0.0 +!WC_ASO5/WC_ASO3=+KC24*<W_O2> + PJAC(:,64,62)=+TPK%KC24(:)*TPK%W_O2(:) ! -!RPR1/PAN2=0.0 +!WC_ASO5/WC_ASO4=0.0 ! -!RPR1/PAN3=0.0 +!WC_ASO5/WC_ASO5=-KC25*<WC_HO2>-KC26*<WC_ASO5>-KC26*<WC_ASO5>-KC26*<WC_ASO5>-KC +!26*<WC_ASO5> + PJAC(:,64,64)=-TPK%KC25(:)*PCONC(:,53)-TPK%KC26(:)*PCONC(:,64)-TPK%KC26(:)*PCO& +&NC(:,64)-TPK%KC26(:)*PCONC(:,64)-TPK%KC26(:)*PCONC(:,64) ! -!RPR1/PAN4=0.0 +!WC_ASO5/WC_AHSO5=0.0 ! -!RPR1/PAN6=0.0 +!WC_ASO5/WC_AHMS=0.0 ! -!RPR1/PAN7=0.0 +!WC_ASO5/WR_O3=0.0 ! -!RPR1/PAN8=0.0 +!WC_ASO5/WR_H2O2=0.0 ! -!RPR1/PN10=0.0 +!WC_ASO5/WR_NO=0.0 ! -!RPR1/RO2T=+K184*<RO219> - PJAC(:,69,85)=+TPK%K184(:)*TPK%RO219(:) +!WC_ASO5/WR_NO2=0.0 ! -!RPR1/RO21=0.0 +!WC_ASO5/WR_NO3=0.0 ! -!RPR1/RO25=0.0 +!WC_ASO5/WR_N2O5=0.0 ! -!RPR5/NO=0.0 +!WC_ASO5/WR_HONO=0.0 ! -!RPR5/NO2=+K107*<RAD5> - PJAC(:,70,2)=+TPK%K107(:)*TPK%RAD5(:) +!WC_ASO5/WR_HNO3=0.0 ! -!RPR5/O3=0.0 +!WC_ASO5/WR_HNO4=0.0 ! -!RPR5/HONO=0.0 +!WC_ASO5/WR_NH3=0.0 ! -!RPR5/HNO3=0.0 +!WC_ASO5/WR_OH=0.0 ! -!RPR5/HNO4=0.0 +!WC_ASO5/WR_HO2=0.0 ! -!RPR5/N2O5=0.0 +!WC_ASO5/WR_CO2=0.0 ! -!RPR5/NO3=0.0 +!WC_ASO5/WR_SO2=0.0 ! -!RPR5/NH3=0.0 +!WC_ASO5/WR_SULF=0.0 ! -!RPR5/HO2=0.0 +!WC_ASO5/WR_HCHO=0.0 ! -!RPR5/CO=0.0 +!WC_ASO5/WR_ORA1=0.0 ! -!RPR5/H2O2=0.0 +!WC_ASO5/WR_ORA2=0.0 ! -!RPR5/SO2=0.0 +!WC_ASO5/WR_MO2=0.0 ! -!RPR5/H2SO4=0.0 +!WC_ASO5/WR_OP1=0.0 ! -!RPR5/OH=-K303*<RPR5> - PJAC(:,70,15)=-TPK%K303(:)*PCONC(:,70) +!WC_ASO5/WR_ASO3=0.0 ! -!RPR5/ETHE=0.0 +!WC_ASO5/WR_ASO4=0.0 ! -!RPR5/OLEL=0.0 +!WC_ASO5/WR_ASO5=0.0 ! -!RPR5/OLEH=0.0 +!WC_ASO5/WR_AHSO5=0.0 ! -!RPR5/ALKL=0.0 +!WC_ASO5/WR_AHMS=0.0 ! -!RPR5/ALKM=0.0 +!WC_AHSO5/O3=0.0 ! -!RPR5/ALKH=0.0 +!WC_AHSO5/H2O2=0.0 ! -!RPR5/AROH=0.0 +!WC_AHSO5/NO=0.0 ! -!RPR5/AROL=0.0 +!WC_AHSO5/NO2=0.0 ! -!RPR5/AROO=0.0 +!WC_AHSO5/NO3=0.0 ! -!RPR5/ARAL=0.0 +!WC_AHSO5/N2O5=0.0 ! -!RPR5/ARAC=0.0 +!WC_AHSO5/HONO=0.0 ! -!RPR5/PAH=0.0 +!WC_AHSO5/HNO3=0.0 ! -!RPR5/HCHO=0.0 +!WC_AHSO5/HNO4=0.0 ! -!RPR5/ALD2=0.0 +!WC_AHSO5/NH3=0.0 ! -!RPR5/KETL=0.0 +!WC_AHSO5/SO2=0.0 ! -!RPR5/KETH=0.0 +!WC_AHSO5/SULF=0.0 ! -!RPR5/MEOH=0.0 +!WC_AHSO5/CO=0.0 ! -!RPR5/ETOH=0.0 +!WC_AHSO5/OH=0.0 ! -!RPR5/ALCH=0.0 +!WC_AHSO5/HO2=0.0 ! -!RPR5/ISOP=0.0 +!WC_AHSO5/CH4=0.0 ! -!RPR5/BIOL=0.0 +!WC_AHSO5/ETH=0.0 ! -!RPR5/BIOH=0.0 +!WC_AHSO5/ALKA=0.0 ! -!RPR5/MTBE=0.0 +!WC_AHSO5/ALKE=0.0 ! -!RPR5/MVK=0.0 +!WC_AHSO5/BIO=0.0 ! -!RPR5/MCR=0.0 +!WC_AHSO5/ARO=0.0 ! -!RPR5/MGLY=0.0 +!WC_AHSO5/HCHO=0.0 ! -!RPR5/GLY=0.0 +!WC_AHSO5/ALD=0.0 ! -!RPR5/ORA1=0.0 +!WC_AHSO5/KET=0.0 ! -!RPR5/ORA2=0.0 +!WC_AHSO5/CARBO=0.0 ! -!RPR5/ACID=0.0 +!WC_AHSO5/ONIT=0.0 ! -!RPR5/UR28=0.0 +!WC_AHSO5/PAN=0.0 ! -!RPR5/UR21=0.0 +!WC_AHSO5/OP1=0.0 ! -!RPR5/URG2=0.0 +!WC_AHSO5/OP2=0.0 ! -!RPR5/UR26=0.0 +!WC_AHSO5/ORA1=0.0 ! -!RPR5/RPG2=0.0 +!WC_AHSO5/ORA2=0.0 ! -!RPR5/RP18=0.0 +!WC_AHSO5/MO2=0.0 ! -!RPR5/RPG3=0.0 +!WC_AHSO5/ALKAP=0.0 ! -!RPR5/URG4=0.0 +!WC_AHSO5/ALKEP=0.0 ! -!RPR5/UR8=0.0 +!WC_AHSO5/BIOP=0.0 ! -!RPR5/UR17=0.0 +!WC_AHSO5/PHO=0.0 ! -!RPR5/UR7=0.0 +!WC_AHSO5/ADD=0.0 ! -!RPR5/RPR3=0.0 +!WC_AHSO5/AROP=0.0 ! -!RPR5/URG6=0.0 +!WC_AHSO5/CARBOP=0.0 ! -!RPR5/UR22=0.0 +!WC_AHSO5/OLN=0.0 ! -!RPR5/URG7=0.0 +!WC_AHSO5/XO2=0.0 ! -!RPR5/RPR4=0.0 +!WC_AHSO5/WC_O3=0.0 ! -!RPR5/RPR7=0.0 +!WC_AHSO5/WC_H2O2=0.0 ! -!RPR5/RPG7=0.0 +!WC_AHSO5/WC_NO=0.0 ! -!RPR5/URG8=0.0 +!WC_AHSO5/WC_NO2=0.0 ! -!RPR5/UR19=0.0 +!WC_AHSO5/WC_NO3=0.0 ! -!RPR5/URG9=0.0 +!WC_AHSO5/WC_N2O5=0.0 ! -!RPR5/AP7=0.0 +!WC_AHSO5/WC_HONO=0.0 ! -!RPR5/URG10=0.0 +!WC_AHSO5/WC_HNO3=0.0 ! -!RPR5/RPR1=0.0 +!WC_AHSO5/WC_HNO4=0.0 ! -!RPR5/RPR5=-K303*<OH> - PJAC(:,70,70)=-TPK%K303(:)*PCONC(:,15) +!WC_AHSO5/WC_NH3=0.0 ! -!RPR5/RPR8=0.0 +!WC_AHSO5/WC_OH=0.0 ! -!RPR5/RP10=0.0 +!WC_AHSO5/WC_HO2=+KC25*<WC_ASO5> + PJAC(:,65,53)=+TPK%KC25(:)*PCONC(:,64) ! -!RPR5/RP11=0.0 +!WC_AHSO5/WC_CO2=0.0 ! -!RPR5/RP16=0.0 +!WC_AHSO5/WC_SO2=-KC27*<WC_AHSO5> + PJAC(:,65,55)=-TPK%KC27(:)*PCONC(:,65) ! -!RPR5/RPRL=0.0 +!WC_AHSO5/WC_SULF=0.0 ! -!RPR5/APAN=0.0 +!WC_AHSO5/WC_HCHO=0.0 ! -!RPR5/PAN1=0.0 +!WC_AHSO5/WC_ORA1=0.0 ! -!RPR5/PAN2=0.0 +!WC_AHSO5/WC_ORA2=0.0 ! -!RPR5/PAN3=0.0 +!WC_AHSO5/WC_MO2=0.0 ! -!RPR5/PAN4=0.0 +!WC_AHSO5/WC_OP1=0.0 ! -!RPR5/PAN6=0.0 +!WC_AHSO5/WC_ASO3=0.0 ! -!RPR5/PAN7=0.0 +!WC_AHSO5/WC_ASO4=0.0 ! -!RPR5/PAN8=0.0 +!WC_AHSO5/WC_ASO5=+KC25*<WC_HO2> + PJAC(:,65,64)=+TPK%KC25(:)*PCONC(:,53) ! -!RPR5/PN10=0.0 +!WC_AHSO5/WC_AHSO5=-KC27*<WC_SO2> + PJAC(:,65,65)=-TPK%KC27(:)*PCONC(:,55) ! -!RPR5/RO2T=0.0 +!WC_AHSO5/WC_AHMS=0.0 ! -!RPR5/RO21=0.0 +!WC_AHSO5/WR_O3=0.0 ! -!RPR5/RO25=0.0 +!WC_AHSO5/WR_H2O2=0.0 ! -RETURN -END SUBROUTINE SUBJ13 +!WC_AHSO5/WR_NO=0.0 ! -SUBROUTINE SUBJ14 +!WC_AHSO5/WR_NO2=0.0 ! -!Indices 71 a 75 +!WC_AHSO5/WR_NO3=0.0 ! +!WC_AHSO5/WR_N2O5=0.0 ! -!RPR8/NO=+K216*<RO240> - PJAC(:,71,1)=+TPK%K216(:)*TPK%RO240(:) +!WC_AHSO5/WR_HONO=0.0 ! -!RPR8/NO2=0.0 +!WC_AHSO5/WR_HNO3=0.0 ! -!RPR8/O3=0.0 +!WC_AHSO5/WR_HNO4=0.0 ! -!RPR8/HONO=0.0 +!WC_AHSO5/WR_NH3=0.0 ! -!RPR8/HNO3=0.0 +!WC_AHSO5/WR_OH=0.0 ! -!RPR8/HNO4=0.0 +!WC_AHSO5/WR_HO2=0.0 ! -!RPR8/N2O5=0.0 +!WC_AHSO5/WR_CO2=0.0 ! -!RPR8/NO3=-K327*<RPR8> - PJAC(:,71,8)=-TPK%K327(:)*PCONC(:,71) +!WC_AHSO5/WR_SO2=0.0 ! -!RPR8/NH3=0.0 +!WC_AHSO5/WR_SULF=0.0 ! -!RPR8/HO2=+K218*<RO240> - PJAC(:,71,10)=+TPK%K218(:)*TPK%RO240(:) +!WC_AHSO5/WR_HCHO=0.0 ! -!RPR8/CO=0.0 +!WC_AHSO5/WR_ORA1=0.0 ! -!RPR8/H2O2=0.0 +!WC_AHSO5/WR_ORA2=0.0 ! -!RPR8/SO2=0.0 +!WC_AHSO5/WR_MO2=0.0 ! -!RPR8/H2SO4=0.0 +!WC_AHSO5/WR_OP1=0.0 ! -!RPR8/OH=-K324*<RPR8> - PJAC(:,71,15)=-TPK%K324(:)*PCONC(:,71) +!WC_AHSO5/WR_ASO3=0.0 ! -!RPR8/ETHE=0.0 +!WC_AHSO5/WR_ASO4=0.0 ! -!RPR8/OLEL=0.0 +!WC_AHSO5/WR_ASO5=0.0 ! -!RPR8/OLEH=0.0 +!WC_AHSO5/WR_AHSO5=0.0 ! -!RPR8/ALKL=0.0 +!WC_AHSO5/WR_AHMS=0.0 ! -!RPR8/ALKM=0.0 +RETURN +END SUBROUTINE SUBJ12 ! -!RPR8/ALKH=0.0 +SUBROUTINE SUBJ13 ! -!RPR8/AROH=0.0 +!Indices 66 a 70 ! -!RPR8/AROL=0.0 ! -!RPR8/AROO=0.0 +!WC_AHMS/O3=0.0 ! -!RPR8/ARAL=0.0 +!WC_AHMS/H2O2=0.0 ! -!RPR8/ARAC=0.0 +!WC_AHMS/NO=0.0 ! -!RPR8/PAH=0.0 +!WC_AHMS/NO2=0.0 ! -!RPR8/HCHO=0.0 +!WC_AHMS/NO3=0.0 ! -!RPR8/ALD2=0.0 +!WC_AHMS/N2O5=0.0 ! -!RPR8/KETL=0.0 +!WC_AHMS/HONO=0.0 ! -!RPR8/KETH=0.0 +!WC_AHMS/HNO3=0.0 ! -!RPR8/MEOH=0.0 +!WC_AHMS/HNO4=0.0 ! -!RPR8/ETOH=0.0 +!WC_AHMS/NH3=0.0 ! -!RPR8/ALCH=0.0 +!WC_AHMS/SO2=0.0 ! -!RPR8/ISOP=0.0 +!WC_AHMS/SULF=0.0 ! -!RPR8/BIOL=0.0 +!WC_AHMS/CO=0.0 ! -!RPR8/BIOH=0.0 +!WC_AHMS/OH=0.0 ! -!RPR8/MTBE=0.0 +!WC_AHMS/HO2=0.0 ! -!RPR8/MVK=0.0 +!WC_AHMS/CH4=0.0 ! -!RPR8/MCR=0.0 +!WC_AHMS/ETH=0.0 ! -!RPR8/MGLY=0.0 +!WC_AHMS/ALKA=0.0 ! -!RPR8/GLY=0.0 +!WC_AHMS/ALKE=0.0 ! -!RPR8/ORA1=0.0 +!WC_AHMS/BIO=0.0 ! -!RPR8/ORA2=0.0 +!WC_AHMS/ARO=0.0 ! -!RPR8/ACID=0.0 +!WC_AHMS/HCHO=0.0 ! -!RPR8/UR28=0.0 +!WC_AHMS/ALD=0.0 ! -!RPR8/UR21=0.0 +!WC_AHMS/KET=0.0 ! -!RPR8/URG2=0.0 +!WC_AHMS/CARBO=0.0 ! -!RPR8/UR26=0.0 +!WC_AHMS/ONIT=0.0 ! -!RPR8/RPG2=0.0 +!WC_AHMS/PAN=0.0 ! -!RPR8/RP18=0.0 +!WC_AHMS/OP1=0.0 ! -!RPR8/RPG3=0.0 +!WC_AHMS/OP2=0.0 ! -!RPR8/URG4=0.0 +!WC_AHMS/ORA1=0.0 ! -!RPR8/UR8=0.0 +!WC_AHMS/ORA2=0.0 ! -!RPR8/UR17=0.0 +!WC_AHMS/MO2=0.0 ! -!RPR8/UR7=0.0 +!WC_AHMS/ALKAP=0.0 ! -!RPR8/RPR3=0.0 +!WC_AHMS/ALKEP=0.0 ! -!RPR8/URG6=0.0 +!WC_AHMS/BIOP=0.0 ! -!RPR8/UR22=0.0 +!WC_AHMS/PHO=0.0 ! -!RPR8/URG7=0.0 +!WC_AHMS/ADD=0.0 ! -!RPR8/RPR4=0.0 +!WC_AHMS/AROP=0.0 ! -!RPR8/RPR7=0.0 +!WC_AHMS/CARBOP=0.0 ! -!RPR8/RPG7=0.0 +!WC_AHMS/OLN=0.0 ! -!RPR8/URG8=0.0 +!WC_AHMS/XO2=0.0 ! -!RPR8/UR19=0.0 +!WC_AHMS/WC_O3=0.0 ! -!RPR8/URG9=0.0 +!WC_AHMS/WC_H2O2=0.0 ! -!RPR8/AP7=0.0 +!WC_AHMS/WC_NO=0.0 ! -!RPR8/URG10=0.0 +!WC_AHMS/WC_NO2=0.0 ! -!RPR8/RPR1=0.0 +!WC_AHMS/WC_NO3=0.0 ! -!RPR8/RPR5=0.0 +!WC_AHMS/WC_N2O5=0.0 ! -!RPR8/RPR8=-K324*<OH>-K327*<NO3>-K329-K330 - PJAC(:,71,71)=-TPK%K324(:)*PCONC(:,15)-TPK%K327(:)*PCONC(:,8)-TPK%K329(:)-TPK%& -&K330(:) +!WC_AHMS/WC_HONO=0.0 ! -!RPR8/RP10=0.0 +!WC_AHMS/WC_HNO3=0.0 ! -!RPR8/RP11=0.0 +!WC_AHMS/WC_HNO4=0.0 ! -!RPR8/RP16=0.0 +!WC_AHMS/WC_NH3=0.0 ! -!RPR8/RPRL=0.0 +!WC_AHMS/WC_OH=-KC23*<WC_AHMS> + PJAC(:,66,52)=-TPK%KC23(:)*PCONC(:,66) ! -!RPR8/APAN=0.0 +!WC_AHMS/WC_HO2=0.0 ! -!RPR8/PAN1=0.0 +!WC_AHMS/WC_CO2=0.0 ! -!RPR8/PAN2=0.0 +!WC_AHMS/WC_SO2=+KC21*<WC_HCHO> + PJAC(:,66,55)=+TPK%KC21(:)*PCONC(:,57) ! -!RPR8/PAN3=0.0 +!WC_AHMS/WC_SULF=0.0 ! -!RPR8/PAN4=0.0 +!WC_AHMS/WC_HCHO=+KC21*<WC_SO2> + PJAC(:,66,57)=+TPK%KC21(:)*PCONC(:,55) ! -!RPR8/PAN6=0.0 +!WC_AHMS/WC_ORA1=0.0 ! -!RPR8/PAN7=0.0 +!WC_AHMS/WC_ORA2=0.0 ! -!RPR8/PAN8=0.0 +!WC_AHMS/WC_MO2=0.0 ! -!RPR8/PN10=0.0 +!WC_AHMS/WC_OP1=0.0 ! -!RPR8/RO2T=+K217*<RO240> - PJAC(:,71,85)=+TPK%K217(:)*TPK%RO240(:) +!WC_AHMS/WC_ASO3=0.0 ! -!RPR8/RO21=0.0 +!WC_AHMS/WC_ASO4=0.0 ! -!RPR8/RO25=0.0 +!WC_AHMS/WC_ASO5=0.0 ! -!RP10/NO=+K234*<RO242>+K241*<RO243>+K248*<RO244>+K255*<RO245>+K262*<RO246> - PJAC(:,72,1)=+TPK%K234(:)*TPK%RO242(:)+TPK%K241(:)*TPK%RO243(:)+TPK%K248(:)*TP& -&K%RO244(:)+TPK%K255(:)*TPK%RO245(:)+TPK%K262(:)*TPK%RO246(:) +!WC_AHMS/WC_AHSO5=0.0 ! -!RP10/NO2=0.0 +!WC_AHMS/WC_AHMS=-KC22-KC23*<WC_OH> + PJAC(:,66,66)=-TPK%KC22(:)-TPK%KC23(:)*PCONC(:,52) ! -!RP10/O3=0.0 +!WC_AHMS/WR_O3=0.0 ! -!RP10/HONO=0.0 +!WC_AHMS/WR_H2O2=0.0 ! -!RP10/HNO3=0.0 +!WC_AHMS/WR_NO=0.0 ! -!RP10/HNO4=0.0 +!WC_AHMS/WR_NO2=0.0 ! -!RP10/N2O5=0.0 +!WC_AHMS/WR_NO3=0.0 ! -!RP10/NO3=0.0 +!WC_AHMS/WR_N2O5=0.0 ! -!RP10/NH3=0.0 +!WC_AHMS/WR_HONO=0.0 ! -!RP10/HO2=+K236*<RO242>+K243*<RO243>+K250*<RO244>+K257*<RO245>+K264*<RO246> - PJAC(:,72,10)=+TPK%K236(:)*TPK%RO242(:)+TPK%K243(:)*TPK%RO243(:)+TPK%K250(:)*T& -&PK%RO244(:)+TPK%K257(:)*TPK%RO245(:)+TPK%K264(:)*TPK%RO246(:) +!WC_AHMS/WR_HNO3=0.0 ! -!RP10/CO=0.0 +!WC_AHMS/WR_HNO4=0.0 ! -!RP10/H2O2=0.0 +!WC_AHMS/WR_NH3=0.0 ! -!RP10/SO2=0.0 +!WC_AHMS/WR_OH=0.0 ! -!RP10/H2SO4=0.0 +!WC_AHMS/WR_HO2=0.0 ! -!RP10/OH=-K325*<RP10> - PJAC(:,72,15)=-TPK%K325(:)*PCONC(:,72) +!WC_AHMS/WR_CO2=0.0 ! -!RP10/ETHE=0.0 +!WC_AHMS/WR_SO2=0.0 ! -!RP10/OLEL=0.0 +!WC_AHMS/WR_SULF=0.0 ! -!RP10/OLEH=0.0 +!WC_AHMS/WR_HCHO=0.0 ! -!RP10/ALKL=0.0 +!WC_AHMS/WR_ORA1=0.0 ! -!RP10/ALKM=0.0 +!WC_AHMS/WR_ORA2=0.0 ! -!RP10/ALKH=0.0 +!WC_AHMS/WR_MO2=0.0 ! -!RP10/AROH=0.0 +!WC_AHMS/WR_OP1=0.0 ! -!RP10/AROL=0.0 +!WC_AHMS/WR_ASO3=0.0 ! -!RP10/AROO=0.0 +!WC_AHMS/WR_ASO4=0.0 ! -!RP10/ARAL=0.0 +!WC_AHMS/WR_ASO5=0.0 ! -!RP10/ARAC=0.0 +!WC_AHMS/WR_AHSO5=0.0 ! -!RP10/PAH=0.0 +!WC_AHMS/WR_AHMS=0.0 ! -!RP10/HCHO=0.0 +!WR_O3/O3=+KTR1 + PJAC(:,67,1)=+TPK%KTR1(:) ! -!RP10/ALD2=0.0 +!WR_O3/H2O2=0.0 ! -!RP10/KETL=0.0 +!WR_O3/NO=0.0 ! -!RP10/KETH=0.0 +!WR_O3/NO2=0.0 ! -!RP10/MEOH=0.0 +!WR_O3/NO3=0.0 ! -!RP10/ETOH=0.0 +!WR_O3/N2O5=0.0 ! -!RP10/ALCH=0.0 +!WR_O3/HONO=0.0 ! -!RP10/ISOP=0.0 +!WR_O3/HNO3=0.0 ! -!RP10/BIOL=0.0 +!WR_O3/HNO4=0.0 ! -!RP10/BIOH=0.0 +!WR_O3/NH3=0.0 ! -!RP10/MTBE=0.0 +!WR_O3/SO2=0.0 ! -!RP10/MVK=0.0 +!WR_O3/SULF=0.0 ! -!RP10/MCR=0.0 +!WR_O3/CO=0.0 ! -!RP10/MGLY=0.0 +!WR_O3/OH=0.0 ! -!RP10/GLY=0.0 +!WR_O3/HO2=0.0 ! -!RP10/ORA1=0.0 +!WR_O3/CH4=0.0 ! -!RP10/ORA2=0.0 +!WR_O3/ETH=0.0 ! -!RP10/ACID=0.0 +!WR_O3/ALKA=0.0 ! -!RP10/UR28=0.0 +!WR_O3/ALKE=0.0 ! -!RP10/UR21=0.0 +!WR_O3/BIO=0.0 ! -!RP10/URG2=0.0 +!WR_O3/ARO=0.0 ! -!RP10/UR26=0.0 +!WR_O3/HCHO=0.0 ! -!RP10/RPG2=0.0 +!WR_O3/ALD=0.0 ! -!RP10/RP18=0.0 +!WR_O3/KET=0.0 ! -!RP10/RPG3=0.0 +!WR_O3/CARBO=0.0 ! -!RP10/URG4=0.0 +!WR_O3/ONIT=0.0 ! -!RP10/UR8=0.0 +!WR_O3/PAN=0.0 ! -!RP10/UR17=0.0 +!WR_O3/OP1=0.0 ! -!RP10/UR7=0.0 +!WR_O3/OP2=0.0 ! -!RP10/RPR3=0.0 +!WR_O3/ORA1=0.0 ! -!RP10/URG6=0.0 +!WR_O3/ORA2=0.0 ! -!RP10/UR22=0.0 +!WR_O3/MO2=0.0 ! -!RP10/URG7=0.0 +!WR_O3/ALKAP=0.0 ! -!RP10/RPR4=0.0 +!WR_O3/ALKEP=0.0 ! -!RP10/RPR7=0.0 +!WR_O3/BIOP=0.0 ! -!RP10/RPG7=0.0 +!WR_O3/PHO=0.0 ! -!RP10/URG8=0.0 +!WR_O3/ADD=0.0 ! -!RP10/UR19=0.0 +!WR_O3/AROP=0.0 ! -!RP10/URG9=0.0 +!WR_O3/CARBOP=0.0 ! -!RP10/AP7=0.0 +!WR_O3/OLN=0.0 ! -!RP10/URG10=0.0 +!WR_O3/XO2=0.0 ! -!RP10/RPR1=0.0 +!WR_O3/WC_O3=0.0 ! -!RP10/RPR5=0.0 +!WR_O3/WC_H2O2=0.0 ! -!RP10/RPR8=0.0 +!WR_O3/WC_NO=0.0 ! -!RP10/RP10=-K325*<OH>-K328 - PJAC(:,72,72)=-TPK%K325(:)*PCONC(:,15)-TPK%K328(:) +!WR_O3/WC_NO2=0.0 ! -!RP10/RP11=0.0 +!WR_O3/WC_NO3=0.0 ! -!RP10/RP16=0.0 +!WR_O3/WC_N2O5=0.0 ! -!RP10/RPRL=0.0 +!WR_O3/WC_HONO=0.0 ! -!RP10/APAN=0.0 +!WR_O3/WC_HNO3=0.0 ! -!RP10/PAN1=0.0 +!WR_O3/WC_HNO4=0.0 ! -!RP10/PAN2=0.0 +!WR_O3/WC_NH3=0.0 ! -!RP10/PAN3=0.0 +!WR_O3/WC_OH=0.0 ! -!RP10/PAN4=0.0 +!WR_O3/WC_HO2=0.0 ! -!RP10/PAN6=0.0 +!WR_O3/WC_CO2=0.0 ! -!RP10/PAN7=0.0 +!WR_O3/WC_SO2=0.0 ! -!RP10/PAN8=0.0 +!WR_O3/WC_SULF=0.0 ! -!RP10/PN10=0.0 +!WR_O3/WC_HCHO=0.0 ! -!RP10/RO2T=+K235*<RO242>+K242*<RO243>+K249*<RO244>+K256*<RO245>+K263*<RO246> - PJAC(:,72,85)=+TPK%K235(:)*TPK%RO242(:)+TPK%K242(:)*TPK%RO243(:)+TPK%K249(:)*T& -&PK%RO244(:)+TPK%K256(:)*TPK%RO245(:)+TPK%K263(:)*TPK%RO246(:) +!WR_O3/WC_ORA1=0.0 ! -!RP10/RO21=0.0 +!WR_O3/WC_ORA2=0.0 ! -!RP10/RO25=0.0 +!WR_O3/WC_MO2=0.0 ! -!RP11/NO=+0.3*K238*<RO234>+0.5*K245*<RO235> - PJAC(:,73,1)=+0.3*TPK%K238(:)*TPK%RO234(:)+0.5*TPK%K245(:)*TPK%RO235(:) +!WR_O3/WC_OP1=0.0 ! -!RP11/NO2=0.0 +!WR_O3/WC_ASO3=0.0 ! -!RP11/O3=0.0 +!WR_O3/WC_ASO4=0.0 ! -!RP11/HONO=0.0 +!WR_O3/WC_ASO5=0.0 ! -!RP11/HNO3=0.0 +!WR_O3/WC_AHSO5=0.0 ! -!RP11/HNO4=0.0 +!WR_O3/WC_AHMS=0.0 ! -!RP11/N2O5=0.0 +!WR_O3/WR_O3=-KTR21-KR6*<WR_HO2>-KR29*<WR_SO2> + PJAC(:,67,67)=-TPK%KTR21(:)-TPK%KR6(:)*PCONC(:,78)-TPK%KR29(:)*PCONC(:,80) ! -!RP11/NO3=0.0 +!WR_O3/WR_H2O2=0.0 ! -!RP11/NH3=0.0 +!WR_O3/WR_NO=0.0 ! -!RP11/HO2=+0.3*K240*<RO234>+K247*<RO235> - PJAC(:,73,10)=+0.3*TPK%K240(:)*TPK%RO234(:)+TPK%K247(:)*TPK%RO235(:) +!WR_O3/WR_NO2=0.0 ! -!RP11/CO=0.0 +!WR_O3/WR_NO3=0.0 ! -!RP11/H2O2=0.0 +!WR_O3/WR_N2O5=0.0 ! -!RP11/SO2=0.0 +!WR_O3/WR_HONO=0.0 ! -!RP11/H2SO4=0.0 +!WR_O3/WR_HNO3=0.0 ! -!RP11/OH=-K326*<RP11> - PJAC(:,73,15)=-TPK%K326(:)*PCONC(:,73) +!WR_O3/WR_HNO4=0.0 ! -!RP11/ETHE=0.0 +!WR_O3/WR_NH3=0.0 ! -!RP11/OLEL=0.0 +!WR_O3/WR_OH=0.0 ! -!RP11/OLEH=0.0 +!WR_O3/WR_HO2=-KR6*<WR_O3> + PJAC(:,67,78)=-TPK%KR6(:)*PCONC(:,67) ! -!RP11/ALKL=0.0 +!WR_O3/WR_CO2=0.0 ! -!RP11/ALKM=0.0 +!WR_O3/WR_SO2=-KR29*<WR_O3> + PJAC(:,67,80)=-TPK%KR29(:)*PCONC(:,67) ! -!RP11/ALKH=0.0 +!WR_O3/WR_SULF=0.0 ! -!RP11/AROH=0.0 +!WR_O3/WR_HCHO=0.0 ! -!RP11/AROL=0.0 +!WR_O3/WR_ORA1=0.0 ! -!RP11/AROO=0.0 +!WR_O3/WR_ORA2=0.0 ! -!RP11/ARAL=0.0 +!WR_O3/WR_MO2=0.0 ! -!RP11/ARAC=0.0 +!WR_O3/WR_OP1=0.0 ! -!RP11/PAH=0.0 +!WR_O3/WR_ASO3=0.0 ! -!RP11/HCHO=0.0 +!WR_O3/WR_ASO4=0.0 ! -!RP11/ALD2=0.0 +!WR_O3/WR_ASO5=0.0 ! -!RP11/KETL=0.0 +!WR_O3/WR_AHSO5=0.0 ! -!RP11/KETH=0.0 +!WR_O3/WR_AHMS=0.0 ! -!RP11/MEOH=0.0 +!WR_H2O2/O3=0.0 ! -!RP11/ETOH=0.0 +!WR_H2O2/H2O2=+KTR2 + PJAC(:,68,2)=+TPK%KTR2(:) ! -!RP11/ALCH=0.0 +!WR_H2O2/NO=0.0 ! -!RP11/ISOP=0.0 +!WR_H2O2/NO2=0.0 ! -!RP11/BIOL=0.0 +!WR_H2O2/NO3=0.0 ! -!RP11/BIOH=0.0 +!WR_H2O2/N2O5=0.0 ! -!RP11/MTBE=0.0 +!WR_H2O2/HONO=0.0 ! -!RP11/MVK=0.0 +!WR_H2O2/HNO3=0.0 ! -!RP11/MCR=0.0 +!WR_H2O2/HNO4=0.0 ! -!RP11/MGLY=0.0 +!WR_H2O2/NH3=0.0 ! -!RP11/GLY=0.0 +!WR_H2O2/SO2=0.0 ! -!RP11/ORA1=0.0 +!WR_H2O2/SULF=0.0 ! -!RP11/ORA2=0.0 +!WR_H2O2/CO=0.0 ! -!RP11/ACID=0.0 +!WR_H2O2/OH=0.0 ! -!RP11/UR28=0.0 +!WR_H2O2/HO2=0.0 ! -!RP11/UR21=0.0 +!WR_H2O2/CH4=0.0 ! -!RP11/URG2=0.0 +!WR_H2O2/ETH=0.0 ! -!RP11/UR26=0.0 +!WR_H2O2/ALKA=0.0 ! -!RP11/RPG2=0.0 +!WR_H2O2/ALKE=0.0 ! -!RP11/RP18=0.0 +!WR_H2O2/BIO=0.0 ! -!RP11/RPG3=0.0 +!WR_H2O2/ARO=0.0 ! -!RP11/URG4=0.0 +!WR_H2O2/HCHO=0.0 ! -!RP11/UR8=0.0 +!WR_H2O2/ALD=0.0 ! -!RP11/UR17=0.0 +!WR_H2O2/KET=0.0 ! -!RP11/UR7=0.0 +!WR_H2O2/CARBO=0.0 ! -!RP11/RPR3=0.0 +!WR_H2O2/ONIT=0.0 ! -!RP11/URG6=0.0 +!WR_H2O2/PAN=0.0 ! -!RP11/UR22=0.0 +!WR_H2O2/OP1=0.0 ! -!RP11/URG7=0.0 +!WR_H2O2/OP2=0.0 ! -!RP11/RPR4=0.0 +!WR_H2O2/ORA1=0.0 ! -!RP11/RPR7=0.0 +!WR_H2O2/ORA2=0.0 ! -!RP11/RPG7=0.0 +!WR_H2O2/MO2=0.0 ! -!RP11/URG8=0.0 +!WR_H2O2/ALKAP=0.0 ! -!RP11/UR19=0.0 +!WR_H2O2/ALKEP=0.0 ! -!RP11/URG9=0.0 +!WR_H2O2/BIOP=0.0 ! -!RP11/AP7=0.0 +!WR_H2O2/PHO=0.0 ! -!RP11/URG10=0.0 +!WR_H2O2/ADD=0.0 ! -!RP11/RPR1=0.0 +!WR_H2O2/AROP=0.0 ! -!RP11/RPR5=0.0 +!WR_H2O2/CARBOP=0.0 ! -!RP11/RPR8=0.0 +!WR_H2O2/OLN=0.0 ! -!RP11/RP10=0.0 +!WR_H2O2/XO2=0.0 ! -!RP11/RP11=-K326*<OH> - PJAC(:,73,73)=-TPK%K326(:)*PCONC(:,15) +!WR_H2O2/WC_O3=0.0 ! -!RP11/RP16=0.0 +!WR_H2O2/WC_H2O2=0.0 ! -!RP11/RPRL=0.0 +!WR_H2O2/WC_NO=0.0 ! -!RP11/APAN=0.0 +!WR_H2O2/WC_NO2=0.0 ! -!RP11/PAN1=0.0 +!WR_H2O2/WC_NO3=0.0 ! -!RP11/PAN2=0.0 +!WR_H2O2/WC_N2O5=0.0 ! -!RP11/PAN3=0.0 +!WR_H2O2/WC_HONO=0.0 ! -!RP11/PAN4=0.0 +!WR_H2O2/WC_HNO3=0.0 ! -!RP11/PAN6=0.0 +!WR_H2O2/WC_HNO4=0.0 ! -!RP11/PAN7=0.0 +!WR_H2O2/WC_NH3=0.0 ! -!RP11/PAN8=0.0 +!WR_H2O2/WC_OH=0.0 ! -!RP11/PN10=0.0 +!WR_H2O2/WC_HO2=0.0 ! -!RP11/RO2T=+K239*<RO234>+K246*<RO235> - PJAC(:,73,85)=+TPK%K239(:)*TPK%RO234(:)+TPK%K246(:)*TPK%RO235(:) +!WR_H2O2/WC_CO2=0.0 ! -!RP11/RO21=0.0 +!WR_H2O2/WC_SO2=0.0 ! -!RP11/RO25=0.0 +!WR_H2O2/WC_SULF=0.0 ! -!RP16/NO=0.0 +!WR_H2O2/WC_HCHO=0.0 ! -!RP16/NO2=0.0 +!WR_H2O2/WC_ORA1=0.0 ! -!RP16/O3=0.0 +!WR_H2O2/WC_ORA2=0.0 ! -!RP16/HONO=0.0 +!WR_H2O2/WC_MO2=0.0 ! -!RP16/HNO3=0.0 +!WR_H2O2/WC_OP1=0.0 ! -!RP16/HNO4=0.0 +!WR_H2O2/WC_ASO3=0.0 ! -!RP16/N2O5=0.0 +!WR_H2O2/WC_ASO4=0.0 ! -!RP16/NO3=-K338*<RP16> - PJAC(:,74,8)=-TPK%K338(:)*PCONC(:,74) +!WR_H2O2/WC_ASO5=0.0 ! -!RP16/NH3=0.0 +!WR_H2O2/WC_AHSO5=0.0 ! -!RP16/HO2=+K301*<RO254> - PJAC(:,74,10)=+TPK%K301(:)*TPK%RO254(:) +!WR_H2O2/WC_AHMS=0.0 ! -!RP16/CO=0.0 +!WR_H2O2/WR_O3=0.0 ! -!RP16/H2O2=0.0 +!WR_H2O2/WR_H2O2=-KTR22-KR1-KR4*<WR_OH>-KR30*<WR_SO2> + PJAC(:,68,68)=-TPK%KTR22(:)-TPK%KR1(:)-TPK%KR4(:)*PCONC(:,77)-TPK%KR30(:)*PCON& +&C(:,80) ! -!RP16/SO2=0.0 +!WR_H2O2/WR_NO=0.0 ! -!RP16/H2SO4=0.0 +!WR_H2O2/WR_NO2=0.0 ! -!RP16/OH=-K305*<RP16> - PJAC(:,74,15)=-TPK%K305(:)*PCONC(:,74) +!WR_H2O2/WR_NO3=0.0 ! -!RP16/ETHE=0.0 +!WR_H2O2/WR_N2O5=0.0 ! -!RP16/OLEL=0.0 +!WR_H2O2/WR_HONO=0.0 ! -!RP16/OLEH=0.0 +!WR_H2O2/WR_HNO3=0.0 ! -!RP16/ALKL=0.0 +!WR_H2O2/WR_HNO4=0.0 ! -!RP16/ALKM=0.0 +!WR_H2O2/WR_NH3=0.0 ! -!RP16/ALKH=0.0 +!WR_H2O2/WR_OH=+KR2*<WR_OH>+KR2*<WR_OH>-KR4*<WR_H2O2> + PJAC(:,68,77)=+TPK%KR2(:)*PCONC(:,77)+TPK%KR2(:)*PCONC(:,77)-TPK%KR4(:)*PCONC(& +&:,68) ! -!RP16/AROH=0.0 +!WR_H2O2/WR_HO2=+KR5*<WR_HO2>+KR5*<WR_HO2> + PJAC(:,68,78)=+TPK%KR5(:)*PCONC(:,78)+TPK%KR5(:)*PCONC(:,78) ! -!RP16/AROL=0.0 +!WR_H2O2/WR_CO2=0.0 ! -!RP16/AROO=0.0 +!WR_H2O2/WR_SO2=-KR30*<WR_H2O2> + PJAC(:,68,80)=-TPK%KR30(:)*PCONC(:,68) ! -!RP16/ARAL=0.0 +!WR_H2O2/WR_SULF=0.0 ! -!RP16/ARAC=0.0 +!WR_H2O2/WR_HCHO=0.0 ! -!RP16/PAH=0.0 +!WR_H2O2/WR_ORA1=0.0 ! -!RP16/HCHO=0.0 +!WR_H2O2/WR_ORA2=0.0 ! -!RP16/ALD2=0.0 +!WR_H2O2/WR_MO2=0.0 ! -!RP16/KETL=0.0 +!WR_H2O2/WR_OP1=0.0 ! -!RP16/KETH=0.0 +!WR_H2O2/WR_ASO3=0.0 ! -!RP16/MEOH=0.0 +!WR_H2O2/WR_ASO4=0.0 ! -!RP16/ETOH=0.0 +!WR_H2O2/WR_ASO5=0.0 ! -!RP16/ALCH=0.0 +!WR_H2O2/WR_AHSO5=0.0 ! -!RP16/ISOP=0.0 +!WR_H2O2/WR_AHMS=0.0 ! -!RP16/BIOL=0.0 +!WR_NO/O3=0.0 ! -!RP16/BIOH=0.0 +!WR_NO/H2O2=0.0 ! -!RP16/MTBE=0.0 +!WR_NO/NO=+KTR3 + PJAC(:,69,3)=+TPK%KTR3(:) ! -!RP16/MVK=0.0 +!WR_NO/NO2=0.0 ! -!RP16/MCR=0.0 +!WR_NO/NO3=0.0 ! -!RP16/MGLY=0.0 +!WR_NO/N2O5=0.0 ! -!RP16/GLY=0.0 +!WR_NO/HONO=0.0 ! -!RP16/ORA1=0.0 +!WR_NO/HNO3=0.0 ! -!RP16/ORA2=0.0 +!WR_NO/HNO4=0.0 ! -!RP16/ACID=0.0 +!WR_NO/NH3=0.0 ! -!RP16/UR28=0.0 +!WR_NO/SO2=0.0 ! -!RP16/UR21=0.0 +!WR_NO/SULF=0.0 ! -!RP16/URG2=0.0 +!WR_NO/CO=0.0 ! -!RP16/UR26=0.0 +!WR_NO/OH=0.0 ! -!RP16/RPG2=0.0 +!WR_NO/HO2=0.0 ! -!RP16/RP18=0.0 +!WR_NO/CH4=0.0 ! -!RP16/RPG3=0.0 +!WR_NO/ETH=0.0 ! -!RP16/URG4=0.0 +!WR_NO/ALKA=0.0 ! -!RP16/UR8=0.0 +!WR_NO/ALKE=0.0 ! -!RP16/UR17=0.0 +!WR_NO/BIO=0.0 ! -!RP16/UR7=0.0 +!WR_NO/ARO=0.0 ! -!RP16/RPR3=0.0 +!WR_NO/HCHO=0.0 ! -!RP16/URG6=0.0 +!WR_NO/ALD=0.0 ! -!RP16/UR22=0.0 +!WR_NO/KET=0.0 ! -!RP16/URG7=0.0 +!WR_NO/CARBO=0.0 ! -!RP16/RPR4=0.0 +!WR_NO/ONIT=0.0 ! -!RP16/RPR7=0.0 +!WR_NO/PAN=0.0 ! -!RP16/RPG7=0.0 +!WR_NO/OP1=0.0 ! -!RP16/URG8=0.0 +!WR_NO/OP2=0.0 ! -!RP16/UR19=0.0 +!WR_NO/ORA1=0.0 ! -!RP16/URG9=0.0 +!WR_NO/ORA2=0.0 ! -!RP16/AP7=0.0 +!WR_NO/MO2=0.0 ! -!RP16/URG10=0.0 +!WR_NO/ALKAP=0.0 ! -!RP16/RPR1=0.0 +!WR_NO/ALKEP=0.0 ! -!RP16/RPR5=0.0 +!WR_NO/BIOP=0.0 ! -!RP16/RPR8=0.0 +!WR_NO/PHO=0.0 ! -!RP16/RP10=0.0 +!WR_NO/ADD=0.0 ! -!RP16/RP11=0.0 +!WR_NO/AROP=0.0 ! -!RP16/RP16=-K305*<OH>-K338*<NO3>-K339 - PJAC(:,74,74)=-TPK%K305(:)*PCONC(:,15)-TPK%K338(:)*PCONC(:,8)-TPK%K339(:) +!WR_NO/CARBOP=0.0 ! -!RP16/RPRL=0.0 +!WR_NO/OLN=0.0 ! -!RP16/APAN=0.0 +!WR_NO/XO2=0.0 ! -!RP16/PAN1=0.0 +!WR_NO/WC_O3=0.0 ! -!RP16/PAN2=0.0 +!WR_NO/WC_H2O2=0.0 ! -!RP16/PAN3=0.0 +!WR_NO/WC_NO=0.0 ! -!RP16/PAN4=0.0 +!WR_NO/WC_NO2=0.0 ! -!RP16/PAN6=0.0 +!WR_NO/WC_NO3=0.0 ! -!RP16/PAN7=0.0 +!WR_NO/WC_N2O5=0.0 ! -!RP16/PAN8=0.0 +!WR_NO/WC_HONO=0.0 ! -!RP16/PN10=0.0 +!WR_NO/WC_HNO3=0.0 ! -!RP16/RO2T=0.0 +!WR_NO/WC_HNO4=0.0 ! -!RP16/RO21=0.0 +!WR_NO/WC_NH3=0.0 ! -!RP16/RO25=0.0 +!WR_NO/WC_OH=0.0 ! -!RPRL/NO=+TPK%CFA2*K177*<RO217>+TPK%CFA7*K192*<RO222>+1.0023998*K269*<RO247> - PJAC(:,75,1)=+TPK%CFA2*TPK%K177(:)*TPK%RO217(:)+TPK%CFA7*TPK%K192(:)*TPK%RO222& -&(:)+1.0023998*TPK%K269(:)*TPK%RO247(:) +!WR_NO/WC_HO2=0.0 ! -!RPRL/NO2=0.0 +!WR_NO/WC_CO2=0.0 ! -!RPRL/O3=0.0 +!WR_NO/WC_SO2=0.0 ! -!RPRL/HONO=0.0 +!WR_NO/WC_SULF=0.0 ! -!RPRL/HNO3=0.0 +!WR_NO/WC_HCHO=0.0 ! -!RPRL/HNO4=0.0 +!WR_NO/WC_ORA1=0.0 ! -!RPRL/N2O5=0.0 +!WR_NO/WC_ORA2=0.0 ! -!RPRL/NO3=0.0 +!WR_NO/WC_MO2=0.0 ! -!RPRL/NH3=0.0 +!WR_NO/WC_OP1=0.0 ! -!RPRL/HO2=+0.9983609*K179*<RO217>+0.9983609*K194*<RO222>+1.0023998*K271*<RO247> - PJAC(:,75,10)=+0.9983609*TPK%K179(:)*TPK%RO217(:)+0.9983609*TPK%K194(:)*TPK%RO& -&222(:)+1.0023998*TPK%K271(:)*TPK%RO247(:) +!WR_NO/WC_ASO3=0.0 ! -!RPRL/CO=0.0 +!WR_NO/WC_ASO4=0.0 ! -!RPRL/H2O2=0.0 +!WR_NO/WC_ASO5=0.0 ! -!RPRL/SO2=0.0 +!WR_NO/WC_AHSO5=0.0 ! -!RPRL/H2SO4=0.0 +!WR_NO/WC_AHMS=0.0 ! -!RPRL/OH=+0.9983609*K082*<ARAL>-K306*<RPRL> - PJAC(:,75,15)=+0.9983609*TPK%K082(:)*PCONC(:,25)-TPK%K306(:)*PCONC(:,75) +!WR_NO/WR_O3=0.0 ! -!RPRL/ETHE=0.0 +!WR_NO/WR_H2O2=0.0 ! -!RPRL/OLEL=0.0 +!WR_NO/WR_NO=-KTR23 + PJAC(:,69,69)=-TPK%KTR23(:) ! -!RPRL/OLEH=0.0 +!WR_NO/WR_NO2=0.0 ! -!RPRL/ALKL=0.0 +!WR_NO/WR_NO3=0.0 ! -!RPRL/ALKM=0.0 +!WR_NO/WR_N2O5=0.0 ! -!RPRL/ALKH=0.0 +!WR_NO/WR_HONO=0.0 ! -!RPRL/AROH=0.0 +!WR_NO/WR_HNO3=0.0 ! -!RPRL/AROL=0.0 +!WR_NO/WR_HNO4=0.0 ! -!RPRL/AROO=0.0 +!WR_NO/WR_NH3=0.0 ! -!RPRL/ARAL=+0.9983609*K082*<OH> - PJAC(:,75,25)=+0.9983609*TPK%K082(:)*PCONC(:,15) +!WR_NO/WR_OH=0.0 ! -!RPRL/ARAC=0.0 +!WR_NO/WR_HO2=0.0 ! -!RPRL/PAH=0.0 +!WR_NO/WR_CO2=0.0 ! -!RPRL/HCHO=0.0 +!WR_NO/WR_SO2=0.0 ! -!RPRL/ALD2=0.0 +!WR_NO/WR_SULF=0.0 ! -!RPRL/KETL=0.0 +!WR_NO/WR_HCHO=0.0 ! -!RPRL/KETH=0.0 +!WR_NO/WR_ORA1=0.0 ! -!RPRL/MEOH=0.0 +!WR_NO/WR_ORA2=0.0 ! -!RPRL/ETOH=0.0 +!WR_NO/WR_MO2=0.0 ! -!RPRL/ALCH=0.0 +!WR_NO/WR_OP1=0.0 ! -!RPRL/ISOP=0.0 +!WR_NO/WR_ASO3=0.0 ! -!RPRL/BIOL=0.0 +!WR_NO/WR_ASO4=0.0 ! -!RPRL/BIOH=0.0 +!WR_NO/WR_ASO5=0.0 ! -!RPRL/MTBE=0.0 +!WR_NO/WR_AHSO5=0.0 ! -!RPRL/MVK=0.0 +!WR_NO/WR_AHMS=0.0 ! -!RPRL/MCR=0.0 +!WR_NO2/O3=0.0 ! -!RPRL/MGLY=0.0 +!WR_NO2/H2O2=0.0 ! -!RPRL/GLY=0.0 +!WR_NO2/NO=0.0 ! -!RPRL/ORA1=0.0 +!WR_NO2/NO2=+KTR4 + PJAC(:,70,4)=+TPK%KTR4(:) ! -!RPRL/ORA2=0.0 +!WR_NO2/NO3=0.0 ! -!RPRL/ACID=0.0 +!WR_NO2/N2O5=0.0 ! -!RPRL/UR28=0.0 +!WR_NO2/HONO=0.0 ! -!RPRL/UR21=0.0 +!WR_NO2/HNO3=0.0 ! -!RPRL/URG2=0.0 +!WR_NO2/HNO4=0.0 ! -!RPRL/UR26=0.0 +!WR_NO2/NH3=0.0 ! -!RPRL/RPG2=0.0 +!WR_NO2/SO2=0.0 ! -!RPRL/RP18=0.0 +!WR_NO2/SULF=0.0 ! -!RPRL/RPG3=0.0 +!WR_NO2/CO=0.0 ! -!RPRL/URG4=0.0 +!WR_NO2/OH=0.0 ! -!RPRL/UR8=0.0 +!WR_NO2/HO2=0.0 ! -!RPRL/UR17=0.0 +!WR_NO2/CH4=0.0 ! -!RPRL/UR7=0.0 +!WR_NO2/ETH=0.0 ! -!RPRL/RPR3=0.0 +!WR_NO2/ALKA=0.0 ! -!RPRL/URG6=0.0 +!WR_NO2/ALKE=0.0 ! -!RPRL/UR22=0.0 +!WR_NO2/BIO=0.0 ! -!RPRL/URG7=0.0 +!WR_NO2/ARO=0.0 ! -!RPRL/RPR4=0.0 +!WR_NO2/HCHO=0.0 ! -!RPRL/RPR7=0.0 +!WR_NO2/ALD=0.0 ! -!RPRL/RPG7=0.0 +!WR_NO2/KET=0.0 ! -!RPRL/URG8=0.0 +!WR_NO2/CARBO=0.0 ! -!RPRL/UR19=0.0 +!WR_NO2/ONIT=0.0 ! -!RPRL/URG9=0.0 +!WR_NO2/PAN=0.0 ! -!RPRL/AP7=0.0 +!WR_NO2/OP1=0.0 ! -!RPRL/URG10=0.0 +!WR_NO2/OP2=0.0 ! -!RPRL/RPR1=0.0 +!WR_NO2/ORA1=0.0 ! -!RPRL/RPR5=0.0 +!WR_NO2/ORA2=0.0 ! -!RPRL/RPR8=0.0 +!WR_NO2/MO2=0.0 ! -!RPRL/RP10=0.0 +!WR_NO2/ALKAP=0.0 ! -!RPRL/RP11=0.0 +!WR_NO2/ALKEP=0.0 ! -!RPRL/RP16=0.0 +!WR_NO2/BIOP=0.0 ! -!RPRL/RPRL=-K306*<OH> - PJAC(:,75,75)=-TPK%K306(:)*PCONC(:,15) +!WR_NO2/PHO=0.0 ! -!RPRL/APAN=0.0 +!WR_NO2/ADD=0.0 ! -!RPRL/PAN1=0.0 +!WR_NO2/AROP=0.0 ! -!RPRL/PAN2=0.0 +!WR_NO2/CARBOP=0.0 ! -!RPRL/PAN3=0.0 +!WR_NO2/OLN=0.0 ! -!RPRL/PAN4=0.0 +!WR_NO2/XO2=0.0 ! -!RPRL/PAN6=0.0 +!WR_NO2/WC_O3=0.0 ! -!RPRL/PAN7=0.0 +!WR_NO2/WC_H2O2=0.0 ! -!RPRL/PAN8=0.0 +!WR_NO2/WC_NO=0.0 ! -!RPRL/PN10=0.0 +!WR_NO2/WC_NO2=0.0 ! -!RPRL/RO2T=+0.9983609*K178*<RO217>+0.9983609*K193*<RO222>+1.0023998*K270*<RO247 -!> - PJAC(:,75,85)=+0.9983609*TPK%K178(:)*TPK%RO217(:)+0.9983609*TPK%K193(:)*TPK%RO& -&222(:)+1.0023998*TPK%K270(:)*TPK%RO247(:) +!WR_NO2/WC_NO3=0.0 ! -!RPRL/RO21=0.0 +!WR_NO2/WC_N2O5=0.0 ! -!RPRL/RO25=0.0 +!WR_NO2/WC_HONO=0.0 ! -RETURN -END SUBROUTINE SUBJ14 +!WR_NO2/WC_HNO3=0.0 ! -SUBROUTINE SUBJ15 +!WR_NO2/WC_HNO4=0.0 ! -!Indices 76 a 80 +!WR_NO2/WC_NH3=0.0 ! +!WR_NO2/WC_OH=0.0 ! -!APAN/NO=0.0 +!WR_NO2/WC_HO2=0.0 ! -!APAN/NO2=+K130*<RO250>+K133*<RO257> - PJAC(:,76,2)=+TPK%K130(:)*TPK%RO250(:)+TPK%K133(:)*TPK%RO257(:) +!WR_NO2/WC_CO2=0.0 ! -!APAN/O3=0.0 +!WR_NO2/WC_SO2=0.0 ! -!APAN/HONO=0.0 +!WR_NO2/WC_SULF=0.0 ! -!APAN/HNO3=0.0 +!WR_NO2/WC_HCHO=0.0 ! -!APAN/HNO4=0.0 +!WR_NO2/WC_ORA1=0.0 ! -!APAN/N2O5=0.0 +!WR_NO2/WC_ORA2=0.0 ! -!APAN/NO3=0.0 +!WR_NO2/WC_MO2=0.0 ! -!APAN/NH3=0.0 +!WR_NO2/WC_OP1=0.0 ! -!APAN/HO2=0.0 +!WR_NO2/WC_ASO3=0.0 ! -!APAN/CO=0.0 +!WR_NO2/WC_ASO4=0.0 ! -!APAN/H2O2=0.0 +!WR_NO2/WC_ASO5=0.0 ! -!APAN/SO2=0.0 +!WR_NO2/WC_AHSO5=0.0 ! -!APAN/H2SO4=0.0 +!WR_NO2/WC_AHMS=0.0 ! -!APAN/OH=0.0 +!WR_NO2/WR_O3=0.0 ! -!APAN/ETHE=0.0 +!WR_NO2/WR_H2O2=0.0 ! -!APAN/OLEL=0.0 +!WR_NO2/WR_NO=0.0 ! -!APAN/OLEH=0.0 +!WR_NO2/WR_NO2=-KTR24-KR9*<WR_HO2> + PJAC(:,70,70)=-TPK%KTR24(:)-TPK%KR9(:)*PCONC(:,78) ! -!APAN/ALKL=0.0 +!WR_NO2/WR_NO3=0.0 ! -!APAN/ALKM=0.0 +!WR_NO2/WR_N2O5=0.0 ! -!APAN/ALKH=0.0 +!WR_NO2/WR_HONO=+KR8*<WR_OH> + PJAC(:,70,73)=+TPK%KR8(:)*PCONC(:,77) ! -!APAN/AROH=0.0 +!WR_NO2/WR_HNO3=+KR13 + PJAC(:,70,74)=+TPK%KR13(:) ! -!APAN/AROL=0.0 +!WR_NO2/WR_HNO4=+KR10 + PJAC(:,70,75)=+TPK%KR10(:) ! -!APAN/AROO=0.0 +!WR_NO2/WR_NH3=0.0 ! -!APAN/ARAL=0.0 +!WR_NO2/WR_OH=+KR8*<WR_HONO> + PJAC(:,70,77)=+TPK%KR8(:)*PCONC(:,73) ! -!APAN/ARAC=0.0 +!WR_NO2/WR_HO2=-KR9*<WR_NO2> + PJAC(:,70,78)=-TPK%KR9(:)*PCONC(:,70) ! -!APAN/PAH=0.0 +!WR_NO2/WR_CO2=0.0 ! -!APAN/HCHO=0.0 +!WR_NO2/WR_SO2=0.0 ! -!APAN/ALD2=0.0 +!WR_NO2/WR_SULF=0.0 ! -!APAN/KETL=0.0 +!WR_NO2/WR_HCHO=0.0 ! -!APAN/KETH=0.0 +!WR_NO2/WR_ORA1=0.0 ! -!APAN/MEOH=0.0 +!WR_NO2/WR_ORA2=0.0 ! -!APAN/ETOH=0.0 +!WR_NO2/WR_MO2=0.0 ! -!APAN/ALCH=0.0 +!WR_NO2/WR_OP1=0.0 ! -!APAN/ISOP=0.0 +!WR_NO2/WR_ASO3=0.0 ! -!APAN/BIOL=0.0 +!WR_NO2/WR_ASO4=0.0 ! -!APAN/BIOH=0.0 +!WR_NO2/WR_ASO5=0.0 ! -!APAN/MTBE=0.0 +!WR_NO2/WR_AHSO5=0.0 ! -!APAN/MVK=0.0 +!WR_NO2/WR_AHMS=0.0 ! -!APAN/MCR=0.0 +RETURN +END SUBROUTINE SUBJ13 ! -!APAN/MGLY=0.0 +SUBROUTINE SUBJ14 ! -!APAN/GLY=0.0 +!Indices 71 a 75 ! -!APAN/ORA1=0.0 ! -!APAN/ORA2=0.0 +!WR_NO3/O3=0.0 ! -!APAN/ACID=0.0 +!WR_NO3/H2O2=0.0 ! -!APAN/UR28=0.0 +!WR_NO3/NO=0.0 ! -!APAN/UR21=0.0 +!WR_NO3/NO2=0.0 ! -!APAN/URG2=0.0 +!WR_NO3/NO3=+KTR5 + PJAC(:,71,5)=+TPK%KTR5(:) ! -!APAN/UR26=0.0 +!WR_NO3/N2O5=0.0 ! -!APAN/RPG2=0.0 +!WR_NO3/HONO=0.0 ! -!APAN/RP18=0.0 +!WR_NO3/HNO3=0.0 ! -!APAN/RPG3=0.0 +!WR_NO3/HNO4=0.0 ! -!APAN/URG4=0.0 +!WR_NO3/NH3=0.0 ! -!APAN/UR8=0.0 +!WR_NO3/SO2=0.0 ! -!APAN/UR17=0.0 +!WR_NO3/SULF=0.0 ! -!APAN/UR7=0.0 +!WR_NO3/CO=0.0 ! -!APAN/RPR3=0.0 +!WR_NO3/OH=0.0 ! -!APAN/URG6=0.0 +!WR_NO3/HO2=0.0 ! -!APAN/UR22=0.0 +!WR_NO3/CH4=0.0 ! -!APAN/URG7=0.0 +!WR_NO3/ETH=0.0 ! -!APAN/RPR4=0.0 +!WR_NO3/ALKA=0.0 ! -!APAN/RPR7=0.0 +!WR_NO3/ALKE=0.0 ! -!APAN/RPG7=0.0 +!WR_NO3/BIO=0.0 ! -!APAN/URG8=0.0 +!WR_NO3/ARO=0.0 ! -!APAN/UR19=0.0 +!WR_NO3/HCHO=0.0 ! -!APAN/URG9=0.0 +!WR_NO3/ALD=0.0 ! -!APAN/AP7=0.0 +!WR_NO3/KET=0.0 ! -!APAN/URG10=0.0 +!WR_NO3/CARBO=0.0 ! -!APAN/RPR1=0.0 +!WR_NO3/ONIT=0.0 ! -!APAN/RPR5=0.0 +!WR_NO3/PAN=0.0 ! -!APAN/RPR8=0.0 +!WR_NO3/OP1=0.0 ! -!APAN/RP10=0.0 +!WR_NO3/OP2=0.0 ! -!APAN/RP11=0.0 +!WR_NO3/ORA1=0.0 ! -!APAN/RP16=0.0 +!WR_NO3/ORA2=0.0 ! -!APAN/RPRL=0.0 +!WR_NO3/MO2=0.0 ! -!APAN/APAN=-K139 - PJAC(:,76,76)=-TPK%K139(:) +!WR_NO3/ALKAP=0.0 ! -!APAN/PAN1=0.0 +!WR_NO3/ALKEP=0.0 ! -!APAN/PAN2=0.0 +!WR_NO3/BIOP=0.0 ! -!APAN/PAN3=0.0 +!WR_NO3/PHO=0.0 ! -!APAN/PAN4=0.0 +!WR_NO3/ADD=0.0 ! -!APAN/PAN6=0.0 +!WR_NO3/AROP=0.0 ! -!APAN/PAN7=0.0 +!WR_NO3/CARBOP=0.0 ! -!APAN/PAN8=0.0 +!WR_NO3/OLN=0.0 ! -!APAN/PN10=0.0 +!WR_NO3/XO2=0.0 ! -!APAN/RO2T=0.0 +!WR_NO3/WC_O3=0.0 ! -!APAN/RO21=0.0 +!WR_NO3/WC_H2O2=0.0 ! -!APAN/RO25=0.0 +!WR_NO3/WC_NO=0.0 ! -!PAN1/NO=0.0 +!WR_NO3/WC_NO2=0.0 ! -!PAN1/NO2=+K126*<RO26> - PJAC(:,77,2)=+TPK%K126(:)*TPK%RO26(:) +!WR_NO3/WC_NO3=0.0 ! -!PAN1/O3=0.0 +!WR_NO3/WC_N2O5=0.0 ! -!PAN1/HONO=0.0 +!WR_NO3/WC_HONO=0.0 ! -!PAN1/HNO3=0.0 +!WR_NO3/WC_HNO3=0.0 ! -!PAN1/HNO4=0.0 +!WR_NO3/WC_HNO4=0.0 ! -!PAN1/N2O5=0.0 +!WR_NO3/WC_NH3=0.0 ! -!PAN1/NO3=0.0 +!WR_NO3/WC_OH=0.0 ! -!PAN1/NH3=0.0 +!WR_NO3/WC_HO2=0.0 ! -!PAN1/HO2=0.0 +!WR_NO3/WC_CO2=0.0 ! -!PAN1/CO=0.0 +!WR_NO3/WC_SO2=0.0 ! -!PAN1/H2O2=0.0 +!WR_NO3/WC_SULF=0.0 ! -!PAN1/SO2=0.0 +!WR_NO3/WC_HCHO=0.0 ! -!PAN1/H2SO4=0.0 +!WR_NO3/WC_ORA1=0.0 ! -!PAN1/OH=0.0 +!WR_NO3/WC_ORA2=0.0 ! -!PAN1/ETHE=0.0 +!WR_NO3/WC_MO2=0.0 ! -!PAN1/OLEL=0.0 +!WR_NO3/WC_OP1=0.0 ! -!PAN1/OLEH=0.0 +!WR_NO3/WC_ASO3=0.0 ! -!PAN1/ALKL=0.0 +!WR_NO3/WC_ASO4=0.0 ! -!PAN1/ALKM=0.0 +!WR_NO3/WC_ASO5=0.0 ! -!PAN1/ALKH=0.0 +!WR_NO3/WC_AHSO5=0.0 ! -!PAN1/AROH=0.0 +!WR_NO3/WC_AHMS=0.0 ! -!PAN1/AROL=0.0 +!WR_NO3/WR_O3=0.0 ! -!PAN1/AROO=0.0 +!WR_NO3/WR_H2O2=0.0 ! -!PAN1/ARAL=0.0 +!WR_NO3/WR_NO=0.0 ! -!PAN1/ARAC=0.0 +!WR_NO3/WR_NO2=0.0 ! -!PAN1/PAH=0.0 +!WR_NO3/WR_NO3=-KTR25-KR15*<WR_SULF>-KR16*<WR_SO2> + PJAC(:,71,71)=-TPK%KTR25(:)-TPK%KR15(:)*PCONC(:,81)-TPK%KR16(:)*PCONC(:,80) ! -!PAN1/HCHO=0.0 +!WR_NO3/WR_N2O5=0.0 ! -!PAN1/ALD2=0.0 +!WR_NO3/WR_HONO=0.0 ! -!PAN1/KETL=0.0 +!WR_NO3/WR_HNO3=0.0 ! -!PAN1/KETH=0.0 +!WR_NO3/WR_HNO4=0.0 ! -!PAN1/MEOH=0.0 +!WR_NO3/WR_NH3=0.0 ! -!PAN1/ETOH=0.0 +!WR_NO3/WR_OH=0.0 ! -!PAN1/ALCH=0.0 +!WR_NO3/WR_HO2=0.0 ! -!PAN1/ISOP=0.0 +!WR_NO3/WR_CO2=0.0 ! -!PAN1/BIOL=0.0 +!WR_NO3/WR_SO2=-KR16*<WR_NO3> + PJAC(:,71,80)=-TPK%KR16(:)*PCONC(:,71) ! -!PAN1/BIOH=0.0 +!WR_NO3/WR_SULF=-KR15*<WR_NO3> + PJAC(:,71,81)=-TPK%KR15(:)*PCONC(:,71) ! -!PAN1/MTBE=0.0 +!WR_NO3/WR_HCHO=0.0 ! -!PAN1/MVK=0.0 +!WR_NO3/WR_ORA1=0.0 ! -!PAN1/MCR=0.0 +!WR_NO3/WR_ORA2=0.0 ! -!PAN1/MGLY=0.0 +!WR_NO3/WR_MO2=0.0 ! -!PAN1/GLY=0.0 +!WR_NO3/WR_OP1=0.0 ! -!PAN1/ORA1=0.0 +!WR_NO3/WR_ASO3=0.0 ! -!PAN1/ORA2=0.0 +!WR_NO3/WR_ASO4=0.0 ! -!PAN1/ACID=0.0 +!WR_NO3/WR_ASO5=0.0 ! -!PAN1/UR28=0.0 +!WR_NO3/WR_AHSO5=0.0 ! -!PAN1/UR21=0.0 +!WR_NO3/WR_AHMS=0.0 ! -!PAN1/URG2=0.0 +!WR_N2O5/O3=0.0 ! -!PAN1/UR26=0.0 +!WR_N2O5/H2O2=0.0 ! -!PAN1/RPG2=0.0 +!WR_N2O5/NO=0.0 ! -!PAN1/RP18=0.0 +!WR_N2O5/NO2=0.0 ! -!PAN1/RPG3=0.0 +!WR_N2O5/NO3=0.0 ! -!PAN1/URG4=0.0 +!WR_N2O5/N2O5=+KTR6 + PJAC(:,72,6)=+TPK%KTR6(:) ! -!PAN1/UR8=0.0 +!WR_N2O5/HONO=0.0 ! -!PAN1/UR17=0.0 +!WR_N2O5/HNO3=0.0 ! -!PAN1/UR7=0.0 +!WR_N2O5/HNO4=0.0 ! -!PAN1/RPR3=0.0 +!WR_N2O5/NH3=0.0 ! -!PAN1/URG6=0.0 +!WR_N2O5/SO2=0.0 ! -!PAN1/UR22=0.0 +!WR_N2O5/SULF=0.0 ! -!PAN1/URG7=0.0 +!WR_N2O5/CO=0.0 ! -!PAN1/RPR4=0.0 +!WR_N2O5/OH=0.0 ! -!PAN1/RPR7=0.0 +!WR_N2O5/HO2=0.0 ! -!PAN1/RPG7=0.0 +!WR_N2O5/CH4=0.0 ! -!PAN1/URG8=0.0 +!WR_N2O5/ETH=0.0 ! -!PAN1/UR19=0.0 +!WR_N2O5/ALKA=0.0 ! -!PAN1/URG9=0.0 +!WR_N2O5/ALKE=0.0 ! -!PAN1/AP7=0.0 +!WR_N2O5/BIO=0.0 ! -!PAN1/URG10=0.0 +!WR_N2O5/ARO=0.0 ! -!PAN1/RPR1=0.0 +!WR_N2O5/HCHO=0.0 ! -!PAN1/RPR5=0.0 +!WR_N2O5/ALD=0.0 ! -!PAN1/RPR8=0.0 +!WR_N2O5/KET=0.0 ! -!PAN1/RP10=0.0 +!WR_N2O5/CARBO=0.0 ! -!PAN1/RP11=0.0 +!WR_N2O5/ONIT=0.0 ! -!PAN1/RP16=0.0 +!WR_N2O5/PAN=0.0 ! -!PAN1/RPRL=0.0 +!WR_N2O5/OP1=0.0 ! -!PAN1/APAN=0.0 +!WR_N2O5/OP2=0.0 ! -!PAN1/PAN1=-K135 - PJAC(:,77,77)=-TPK%K135(:) +!WR_N2O5/ORA1=0.0 ! -!PAN1/PAN2=0.0 +!WR_N2O5/ORA2=0.0 ! -!PAN1/PAN3=0.0 +!WR_N2O5/MO2=0.0 ! -!PAN1/PAN4=0.0 +!WR_N2O5/ALKAP=0.0 ! -!PAN1/PAN6=0.0 +!WR_N2O5/ALKEP=0.0 ! -!PAN1/PAN7=0.0 +!WR_N2O5/BIOP=0.0 ! -!PAN1/PAN8=0.0 +!WR_N2O5/PHO=0.0 ! -!PAN1/PN10=0.0 +!WR_N2O5/ADD=0.0 ! -!PAN1/RO2T=0.0 +!WR_N2O5/AROP=0.0 ! -!PAN1/RO21=0.0 +!WR_N2O5/CARBOP=0.0 ! -!PAN1/RO25=0.0 +!WR_N2O5/OLN=0.0 ! -!PAN2/NO=0.0 +!WR_N2O5/XO2=0.0 ! -!PAN2/NO2=+K127*<RO28> - PJAC(:,78,2)=+TPK%K127(:)*TPK%RO28(:) +!WR_N2O5/WC_O3=0.0 ! -!PAN2/O3=0.0 +!WR_N2O5/WC_H2O2=0.0 ! -!PAN2/HONO=0.0 +!WR_N2O5/WC_NO=0.0 ! -!PAN2/HNO3=0.0 +!WR_N2O5/WC_NO2=0.0 ! -!PAN2/HNO4=0.0 +!WR_N2O5/WC_NO3=0.0 ! -!PAN2/N2O5=0.0 +!WR_N2O5/WC_N2O5=0.0 ! -!PAN2/NO3=0.0 +!WR_N2O5/WC_HONO=0.0 ! -!PAN2/NH3=0.0 +!WR_N2O5/WC_HNO3=0.0 ! -!PAN2/HO2=0.0 +!WR_N2O5/WC_HNO4=0.0 ! -!PAN2/CO=0.0 +!WR_N2O5/WC_NH3=0.0 ! -!PAN2/H2O2=0.0 +!WR_N2O5/WC_OH=0.0 ! -!PAN2/SO2=0.0 +!WR_N2O5/WC_HO2=0.0 ! -!PAN2/H2SO4=0.0 +!WR_N2O5/WC_CO2=0.0 ! -!PAN2/OH=0.0 +!WR_N2O5/WC_SO2=0.0 ! -!PAN2/ETHE=0.0 +!WR_N2O5/WC_SULF=0.0 ! -!PAN2/OLEL=0.0 +!WR_N2O5/WC_HCHO=0.0 ! -!PAN2/OLEH=0.0 +!WR_N2O5/WC_ORA1=0.0 ! -!PAN2/ALKL=0.0 +!WR_N2O5/WC_ORA2=0.0 ! -!PAN2/ALKM=0.0 +!WR_N2O5/WC_MO2=0.0 ! -!PAN2/ALKH=0.0 +!WR_N2O5/WC_OP1=0.0 ! -!PAN2/AROH=0.0 +!WR_N2O5/WC_ASO3=0.0 ! -!PAN2/AROL=0.0 +!WR_N2O5/WC_ASO4=0.0 ! -!PAN2/AROO=0.0 +!WR_N2O5/WC_ASO5=0.0 ! -!PAN2/ARAL=0.0 +!WR_N2O5/WC_AHSO5=0.0 ! -!PAN2/ARAC=0.0 +!WR_N2O5/WC_AHMS=0.0 ! -!PAN2/PAH=0.0 +!WR_N2O5/WR_O3=0.0 ! -!PAN2/HCHO=0.0 +!WR_N2O5/WR_H2O2=0.0 ! -!PAN2/ALD2=0.0 +!WR_N2O5/WR_NO=0.0 ! -!PAN2/KETL=0.0 +!WR_N2O5/WR_NO2=0.0 ! -!PAN2/KETH=0.0 +!WR_N2O5/WR_NO3=0.0 ! -!PAN2/MEOH=0.0 +!WR_N2O5/WR_N2O5=-KTR26-KR14 + PJAC(:,72,72)=-TPK%KTR26(:)-TPK%KR14(:) ! -!PAN2/ETOH=0.0 +!WR_N2O5/WR_HONO=0.0 ! -!PAN2/ALCH=0.0 +!WR_N2O5/WR_HNO3=0.0 ! -!PAN2/ISOP=0.0 +!WR_N2O5/WR_HNO4=0.0 ! -!PAN2/BIOL=0.0 +!WR_N2O5/WR_NH3=0.0 ! -!PAN2/BIOH=0.0 +!WR_N2O5/WR_OH=0.0 ! -!PAN2/MTBE=0.0 +!WR_N2O5/WR_HO2=0.0 ! -!PAN2/MVK=0.0 +!WR_N2O5/WR_CO2=0.0 ! -!PAN2/MCR=0.0 +!WR_N2O5/WR_SO2=0.0 ! -!PAN2/MGLY=0.0 +!WR_N2O5/WR_SULF=0.0 ! -!PAN2/GLY=0.0 +!WR_N2O5/WR_HCHO=0.0 ! -!PAN2/ORA1=0.0 +!WR_N2O5/WR_ORA1=0.0 ! -!PAN2/ORA2=0.0 +!WR_N2O5/WR_ORA2=0.0 ! -!PAN2/ACID=0.0 +!WR_N2O5/WR_MO2=0.0 ! -!PAN2/UR28=0.0 +!WR_N2O5/WR_OP1=0.0 ! -!PAN2/UR21=0.0 +!WR_N2O5/WR_ASO3=0.0 ! -!PAN2/URG2=0.0 +!WR_N2O5/WR_ASO4=0.0 ! -!PAN2/UR26=0.0 +!WR_N2O5/WR_ASO5=0.0 ! -!PAN2/RPG2=0.0 +!WR_N2O5/WR_AHSO5=0.0 ! -!PAN2/RP18=0.0 +!WR_N2O5/WR_AHMS=0.0 ! -!PAN2/RPG3=0.0 +!WR_HONO/O3=0.0 ! -!PAN2/URG4=0.0 +!WR_HONO/H2O2=0.0 ! -!PAN2/UR8=0.0 +!WR_HONO/NO=0.0 ! -!PAN2/UR17=0.0 +!WR_HONO/NO2=0.0 ! -!PAN2/UR7=0.0 +!WR_HONO/NO3=0.0 ! -!PAN2/RPR3=0.0 +!WR_HONO/N2O5=0.0 ! -!PAN2/URG6=0.0 +!WR_HONO/HONO=+KTR7 + PJAC(:,73,7)=+TPK%KTR7(:) ! -!PAN2/UR22=0.0 +!WR_HONO/HNO3=0.0 ! -!PAN2/URG7=0.0 +!WR_HONO/HNO4=0.0 ! -!PAN2/RPR4=0.0 +!WR_HONO/NH3=0.0 ! -!PAN2/RPR7=0.0 +!WR_HONO/SO2=0.0 ! -!PAN2/RPG7=0.0 +!WR_HONO/SULF=0.0 ! -!PAN2/URG8=0.0 +!WR_HONO/CO=0.0 ! -!PAN2/UR19=0.0 +!WR_HONO/OH=0.0 ! -!PAN2/URG9=0.0 +!WR_HONO/HO2=0.0 ! -!PAN2/AP7=0.0 +!WR_HONO/CH4=0.0 ! -!PAN2/URG10=0.0 +!WR_HONO/ETH=0.0 ! -!PAN2/RPR1=0.0 +!WR_HONO/ALKA=0.0 ! -!PAN2/RPR5=0.0 +!WR_HONO/ALKE=0.0 ! -!PAN2/RPR8=0.0 +!WR_HONO/BIO=0.0 ! -!PAN2/RP10=0.0 +!WR_HONO/ARO=0.0 ! -!PAN2/RP11=0.0 +!WR_HONO/HCHO=0.0 ! -!PAN2/RP16=0.0 +!WR_HONO/ALD=0.0 ! -!PAN2/RPRL=0.0 +!WR_HONO/KET=0.0 ! -!PAN2/APAN=0.0 +!WR_HONO/CARBO=0.0 ! -!PAN2/PAN1=0.0 +!WR_HONO/ONIT=0.0 ! -!PAN2/PAN2=-K136 - PJAC(:,78,78)=-TPK%K136(:) +!WR_HONO/PAN=0.0 ! -!PAN2/PAN3=0.0 +!WR_HONO/OP1=0.0 ! -!PAN2/PAN4=0.0 +!WR_HONO/OP2=0.0 ! -!PAN2/PAN6=0.0 +!WR_HONO/ORA1=0.0 ! -!PAN2/PAN7=0.0 +!WR_HONO/ORA2=0.0 ! -!PAN2/PAN8=0.0 +!WR_HONO/MO2=0.0 ! -!PAN2/PN10=0.0 +!WR_HONO/ALKAP=0.0 ! -!PAN2/RO2T=0.0 +!WR_HONO/ALKEP=0.0 ! -!PAN2/RO21=0.0 +!WR_HONO/BIOP=0.0 ! -!PAN2/RO25=0.0 +!WR_HONO/PHO=0.0 ! -!PAN3/NO=0.0 +!WR_HONO/ADD=0.0 ! -!PAN3/NO2=+K128*<RO239> - PJAC(:,79,2)=+TPK%K128(:)*TPK%RO239(:) +!WR_HONO/AROP=0.0 ! -!PAN3/O3=0.0 +!WR_HONO/CARBOP=0.0 ! -!PAN3/HONO=0.0 +!WR_HONO/OLN=0.0 ! -!PAN3/HNO3=0.0 +!WR_HONO/XO2=0.0 ! -!PAN3/HNO4=0.0 +!WR_HONO/WC_O3=0.0 ! -!PAN3/N2O5=0.0 +!WR_HONO/WC_H2O2=0.0 ! -!PAN3/NO3=0.0 +!WR_HONO/WC_NO=0.0 ! -!PAN3/NH3=0.0 +!WR_HONO/WC_NO2=0.0 ! -!PAN3/HO2=0.0 +!WR_HONO/WC_NO3=0.0 ! -!PAN3/CO=0.0 +!WR_HONO/WC_N2O5=0.0 ! -!PAN3/H2O2=0.0 +!WR_HONO/WC_HONO=0.0 ! -!PAN3/SO2=0.0 +!WR_HONO/WC_HNO3=0.0 ! -!PAN3/H2SO4=0.0 +!WR_HONO/WC_HNO4=0.0 ! -!PAN3/OH=0.0 +!WR_HONO/WC_NH3=0.0 ! -!PAN3/ETHE=0.0 +!WR_HONO/WC_OH=0.0 ! -!PAN3/OLEL=0.0 +!WR_HONO/WC_HO2=0.0 ! -!PAN3/OLEH=0.0 +!WR_HONO/WC_CO2=0.0 ! -!PAN3/ALKL=0.0 +!WR_HONO/WC_SO2=0.0 ! -!PAN3/ALKM=0.0 +!WR_HONO/WC_SULF=0.0 ! -!PAN3/ALKH=0.0 +!WR_HONO/WC_HCHO=0.0 ! -!PAN3/AROH=0.0 +!WR_HONO/WC_ORA1=0.0 ! -!PAN3/AROL=0.0 +!WR_HONO/WC_ORA2=0.0 ! -!PAN3/AROO=0.0 +!WR_HONO/WC_MO2=0.0 ! -!PAN3/ARAL=0.0 +!WR_HONO/WC_OP1=0.0 ! -!PAN3/ARAC=0.0 +!WR_HONO/WC_ASO3=0.0 ! -!PAN3/PAH=0.0 +!WR_HONO/WC_ASO4=0.0 ! -!PAN3/HCHO=0.0 +!WR_HONO/WC_ASO5=0.0 ! -!PAN3/ALD2=0.0 +!WR_HONO/WC_AHSO5=0.0 ! -!PAN3/KETL=0.0 +!WR_HONO/WC_AHMS=0.0 ! -!PAN3/KETH=0.0 +!WR_HONO/WR_O3=0.0 ! -!PAN3/MEOH=0.0 +!WR_HONO/WR_H2O2=0.0 ! -!PAN3/ETOH=0.0 +!WR_HONO/WR_NO=0.0 ! -!PAN3/ALCH=0.0 +!WR_HONO/WR_NO2=0.0 ! -!PAN3/ISOP=0.0 +!WR_HONO/WR_NO3=0.0 ! -!PAN3/BIOL=0.0 +!WR_HONO/WR_N2O5=0.0 ! -!PAN3/BIOH=0.0 +!WR_HONO/WR_HONO=-KTR27-KR8*<WR_OH> + PJAC(:,73,73)=-TPK%KTR27(:)-TPK%KR8(:)*PCONC(:,77) ! -!PAN3/MTBE=0.0 +!WR_HONO/WR_HNO3=0.0 ! -!PAN3/MVK=0.0 +!WR_HONO/WR_HNO4=+KR11 + PJAC(:,73,75)=+TPK%KR11(:) ! -!PAN3/MCR=0.0 +!WR_HONO/WR_NH3=0.0 ! -!PAN3/MGLY=0.0 +!WR_HONO/WR_OH=-KR8*<WR_HONO> + PJAC(:,73,77)=-TPK%KR8(:)*PCONC(:,73) ! -!PAN3/GLY=0.0 +!WR_HONO/WR_HO2=0.0 ! -!PAN3/ORA1=0.0 +!WR_HONO/WR_CO2=0.0 ! -!PAN3/ORA2=0.0 +!WR_HONO/WR_SO2=0.0 ! -!PAN3/ACID=0.0 +!WR_HONO/WR_SULF=0.0 ! -!PAN3/UR28=0.0 +!WR_HONO/WR_HCHO=0.0 ! -!PAN3/UR21=0.0 +!WR_HONO/WR_ORA1=0.0 ! -!PAN3/URG2=0.0 +!WR_HONO/WR_ORA2=0.0 ! -!PAN3/UR26=0.0 +!WR_HONO/WR_MO2=0.0 ! -!PAN3/RPG2=0.0 +!WR_HONO/WR_OP1=0.0 ! -!PAN3/RP18=0.0 +!WR_HONO/WR_ASO3=0.0 ! -!PAN3/RPG3=0.0 +!WR_HONO/WR_ASO4=0.0 ! -!PAN3/URG4=0.0 +!WR_HONO/WR_ASO5=0.0 ! -!PAN3/UR8=0.0 +!WR_HONO/WR_AHSO5=0.0 ! -!PAN3/UR17=0.0 +!WR_HONO/WR_AHMS=0.0 ! -!PAN3/UR7=0.0 +!WR_HNO3/O3=0.0 ! -!PAN3/RPR3=0.0 +!WR_HNO3/H2O2=0.0 ! -!PAN3/URG6=0.0 +!WR_HNO3/NO=0.0 ! -!PAN3/UR22=0.0 +!WR_HNO3/NO2=0.0 ! -!PAN3/URG7=0.0 +!WR_HNO3/NO3=0.0 ! -!PAN3/RPR4=0.0 +!WR_HNO3/N2O5=0.0 ! -!PAN3/RPR7=0.0 +!WR_HNO3/HONO=0.0 ! -!PAN3/RPG7=0.0 +!WR_HNO3/HNO3=+KTR8 + PJAC(:,74,8)=+TPK%KTR8(:) ! -!PAN3/URG8=0.0 +!WR_HNO3/HNO4=0.0 ! -!PAN3/UR19=0.0 +!WR_HNO3/NH3=0.0 ! -!PAN3/URG9=0.0 +!WR_HNO3/SO2=0.0 ! -!PAN3/AP7=0.0 +!WR_HNO3/SULF=0.0 ! -!PAN3/URG10=0.0 +!WR_HNO3/CO=0.0 ! -!PAN3/RPR1=0.0 +!WR_HNO3/OH=0.0 ! -!PAN3/RPR5=0.0 +!WR_HNO3/HO2=0.0 ! -!PAN3/RPR8=0.0 +!WR_HNO3/CH4=0.0 ! -!PAN3/RP10=0.0 +!WR_HNO3/ETH=0.0 ! -!PAN3/RP11=0.0 +!WR_HNO3/ALKA=0.0 ! -!PAN3/RP16=0.0 +!WR_HNO3/ALKE=0.0 ! -!PAN3/RPRL=0.0 +!WR_HNO3/BIO=0.0 ! -!PAN3/APAN=0.0 +!WR_HNO3/ARO=0.0 ! -!PAN3/PAN1=0.0 +!WR_HNO3/HCHO=0.0 ! -!PAN3/PAN2=0.0 +!WR_HNO3/ALD=0.0 ! -!PAN3/PAN3=-K137 - PJAC(:,79,79)=-TPK%K137(:) +!WR_HNO3/KET=0.0 ! -!PAN3/PAN4=0.0 +!WR_HNO3/CARBO=0.0 ! -!PAN3/PAN6=0.0 +!WR_HNO3/ONIT=0.0 ! -!PAN3/PAN7=0.0 +!WR_HNO3/PAN=0.0 ! -!PAN3/PAN8=0.0 +!WR_HNO3/OP1=0.0 ! -!PAN3/PN10=0.0 +!WR_HNO3/OP2=0.0 ! -!PAN3/RO2T=0.0 +!WR_HNO3/ORA1=0.0 ! -!PAN3/RO21=0.0 +!WR_HNO3/ORA2=0.0 ! -!PAN3/RO25=0.0 +!WR_HNO3/MO2=0.0 ! -!PAN4/NO=0.0 +!WR_HNO3/ALKAP=0.0 ! -!PAN4/NO2=+K129*<RO248> - PJAC(:,80,2)=+TPK%K129(:)*TPK%RO248(:) +!WR_HNO3/ALKEP=0.0 ! -!PAN4/O3=0.0 +!WR_HNO3/BIOP=0.0 ! -!PAN4/HONO=0.0 +!WR_HNO3/PHO=0.0 ! -!PAN4/HNO3=0.0 +!WR_HNO3/ADD=0.0 ! -!PAN4/HNO4=0.0 +!WR_HNO3/AROP=0.0 ! -!PAN4/N2O5=0.0 +!WR_HNO3/CARBOP=0.0 ! -!PAN4/NO3=0.0 +!WR_HNO3/OLN=0.0 ! -!PAN4/NH3=0.0 +!WR_HNO3/XO2=0.0 ! -!PAN4/HO2=0.0 +!WR_HNO3/WC_O3=0.0 ! -!PAN4/CO=0.0 +!WR_HNO3/WC_H2O2=0.0 ! -!PAN4/H2O2=0.0 +!WR_HNO3/WC_NO=0.0 ! -!PAN4/SO2=0.0 +!WR_HNO3/WC_NO2=0.0 ! -!PAN4/H2SO4=0.0 +!WR_HNO3/WC_NO3=0.0 ! -!PAN4/OH=0.0 +!WR_HNO3/WC_N2O5=0.0 ! -!PAN4/ETHE=0.0 +!WR_HNO3/WC_HONO=0.0 ! -!PAN4/OLEL=0.0 +!WR_HNO3/WC_HNO3=0.0 ! -!PAN4/OLEH=0.0 +!WR_HNO3/WC_HNO4=0.0 ! -!PAN4/ALKL=0.0 +!WR_HNO3/WC_NH3=0.0 ! -!PAN4/ALKM=0.0 +!WR_HNO3/WC_OH=0.0 ! -!PAN4/ALKH=0.0 +!WR_HNO3/WC_HO2=0.0 ! -!PAN4/AROH=0.0 +!WR_HNO3/WC_CO2=0.0 ! -!PAN4/AROL=0.0 +!WR_HNO3/WC_SO2=0.0 ! -!PAN4/AROO=0.0 +!WR_HNO3/WC_SULF=0.0 ! -!PAN4/ARAL=0.0 +!WR_HNO3/WC_HCHO=0.0 ! -!PAN4/ARAC=0.0 +!WR_HNO3/WC_ORA1=0.0 ! -!PAN4/PAH=0.0 +!WR_HNO3/WC_ORA2=0.0 ! -!PAN4/HCHO=0.0 +!WR_HNO3/WC_MO2=0.0 ! -!PAN4/ALD2=0.0 +!WR_HNO3/WC_OP1=0.0 ! -!PAN4/KETL=0.0 +!WR_HNO3/WC_ASO3=0.0 ! -!PAN4/KETH=0.0 +!WR_HNO3/WC_ASO4=0.0 ! -!PAN4/MEOH=0.0 +!WR_HNO3/WC_ASO5=0.0 ! -!PAN4/ETOH=0.0 +!WR_HNO3/WC_AHSO5=0.0 ! -!PAN4/ALCH=0.0 +!WR_HNO3/WC_AHMS=0.0 ! -!PAN4/ISOP=0.0 +!WR_HNO3/WR_O3=0.0 ! -!PAN4/BIOL=0.0 +!WR_HNO3/WR_H2O2=0.0 ! -!PAN4/BIOH=0.0 +!WR_HNO3/WR_NO=0.0 ! -!PAN4/MTBE=0.0 +!WR_HNO3/WR_NO2=0.0 ! -!PAN4/MVK=0.0 +!WR_HNO3/WR_NO3=+KR15*<WR_SULF>+KR16*<WR_SO2> + PJAC(:,74,71)=+TPK%KR15(:)*PCONC(:,81)+TPK%KR16(:)*PCONC(:,80) ! -!PAN4/MCR=0.0 +!WR_HNO3/WR_N2O5=+KR14+KR14 + PJAC(:,74,72)=+TPK%KR14(:)+TPK%KR14(:) ! -!PAN4/MGLY=0.0 +!WR_HNO3/WR_HONO=0.0 ! -!PAN4/GLY=0.0 +!WR_HNO3/WR_HNO3=-KTR28-KR13 + PJAC(:,74,74)=-TPK%KTR28(:)-TPK%KR13(:) ! -!PAN4/ORA1=0.0 +!WR_HNO3/WR_HNO4=+KR12*<WR_SO2> + PJAC(:,74,75)=+TPK%KR12(:)*PCONC(:,80) ! -!PAN4/ORA2=0.0 +!WR_HNO3/WR_NH3=0.0 ! -!PAN4/ACID=0.0 +!WR_HNO3/WR_OH=0.0 ! -!PAN4/UR28=0.0 +!WR_HNO3/WR_HO2=0.0 ! -!PAN4/UR21=0.0 +!WR_HNO3/WR_CO2=0.0 ! -!PAN4/URG2=0.0 +!WR_HNO3/WR_SO2=+KR12*<WR_HNO4>+KR16*<WR_NO3> + PJAC(:,74,80)=+TPK%KR12(:)*PCONC(:,75)+TPK%KR16(:)*PCONC(:,71) ! -!PAN4/UR26=0.0 +!WR_HNO3/WR_SULF=+KR15*<WR_NO3> + PJAC(:,74,81)=+TPK%KR15(:)*PCONC(:,71) ! -!PAN4/RPG2=0.0 +!WR_HNO3/WR_HCHO=0.0 ! -!PAN4/RP18=0.0 +!WR_HNO3/WR_ORA1=0.0 ! -!PAN4/RPG3=0.0 +!WR_HNO3/WR_ORA2=0.0 ! -!PAN4/URG4=0.0 +!WR_HNO3/WR_MO2=0.0 ! -!PAN4/UR8=0.0 +!WR_HNO3/WR_OP1=0.0 ! -!PAN4/UR17=0.0 +!WR_HNO3/WR_ASO3=0.0 ! -!PAN4/UR7=0.0 +!WR_HNO3/WR_ASO4=0.0 ! -!PAN4/RPR3=0.0 +!WR_HNO3/WR_ASO5=0.0 ! -!PAN4/URG6=0.0 +!WR_HNO3/WR_AHSO5=0.0 ! -!PAN4/UR22=0.0 +!WR_HNO3/WR_AHMS=0.0 ! -!PAN4/URG7=0.0 +!WR_HNO4/O3=0.0 ! -!PAN4/RPR4=0.0 +!WR_HNO4/H2O2=0.0 ! -!PAN4/RPR7=0.0 +!WR_HNO4/NO=0.0 ! -!PAN4/RPG7=0.0 +!WR_HNO4/NO2=0.0 ! -!PAN4/URG8=0.0 +!WR_HNO4/NO3=0.0 ! -!PAN4/UR19=0.0 +!WR_HNO4/N2O5=0.0 ! -!PAN4/URG9=0.0 +!WR_HNO4/HONO=0.0 ! -!PAN4/AP7=0.0 +!WR_HNO4/HNO3=0.0 ! -!PAN4/URG10=0.0 +!WR_HNO4/HNO4=+KTR9 + PJAC(:,75,9)=+TPK%KTR9(:) ! -!PAN4/RPR1=0.0 +!WR_HNO4/NH3=0.0 ! -!PAN4/RPR5=0.0 +!WR_HNO4/SO2=0.0 ! -!PAN4/RPR8=0.0 +!WR_HNO4/SULF=0.0 ! -!PAN4/RP10=0.0 +!WR_HNO4/CO=0.0 ! -!PAN4/RP11=0.0 +!WR_HNO4/OH=0.0 ! -!PAN4/RP16=0.0 +!WR_HNO4/HO2=0.0 ! -!PAN4/RPRL=0.0 +!WR_HNO4/CH4=0.0 ! -!PAN4/APAN=0.0 +!WR_HNO4/ETH=0.0 ! -!PAN4/PAN1=0.0 +!WR_HNO4/ALKA=0.0 ! -!PAN4/PAN2=0.0 +!WR_HNO4/ALKE=0.0 ! -!PAN4/PAN3=0.0 +!WR_HNO4/BIO=0.0 ! -!PAN4/PAN4=-K141 - PJAC(:,80,80)=-TPK%K141(:) +!WR_HNO4/ARO=0.0 ! -!PAN4/PAN6=0.0 +!WR_HNO4/HCHO=0.0 ! -!PAN4/PAN7=0.0 +!WR_HNO4/ALD=0.0 ! -!PAN4/PAN8=0.0 +!WR_HNO4/KET=0.0 ! -!PAN4/PN10=0.0 +!WR_HNO4/CARBO=0.0 ! -!PAN4/RO2T=0.0 +!WR_HNO4/ONIT=0.0 ! -!PAN4/RO21=0.0 +!WR_HNO4/PAN=0.0 ! -!PAN4/RO25=0.0 +!WR_HNO4/OP1=0.0 ! -RETURN -END SUBROUTINE SUBJ15 +!WR_HNO4/OP2=0.0 ! -SUBROUTINE SUBJ16 +!WR_HNO4/ORA1=0.0 ! -!Indices 81 a 85 +!WR_HNO4/ORA2=0.0 ! +!WR_HNO4/MO2=0.0 ! -!PAN6/NO=0.0 +!WR_HNO4/ALKAP=0.0 ! -!PAN6/NO2=+K131*<RO254> - PJAC(:,81,2)=+TPK%K131(:)*TPK%RO254(:) +!WR_HNO4/ALKEP=0.0 ! -!PAN6/O3=0.0 +!WR_HNO4/BIOP=0.0 ! -!PAN6/HONO=0.0 +!WR_HNO4/PHO=0.0 ! -!PAN6/HNO3=0.0 +!WR_HNO4/ADD=0.0 ! -!PAN6/HNO4=0.0 +!WR_HNO4/AROP=0.0 ! -!PAN6/N2O5=0.0 +!WR_HNO4/CARBOP=0.0 ! -!PAN6/NO3=0.0 +!WR_HNO4/OLN=0.0 ! -!PAN6/NH3=0.0 +!WR_HNO4/XO2=0.0 ! -!PAN6/HO2=0.0 +!WR_HNO4/WC_O3=0.0 ! -!PAN6/CO=0.0 +!WR_HNO4/WC_H2O2=0.0 ! -!PAN6/H2O2=0.0 +!WR_HNO4/WC_NO=0.0 ! -!PAN6/SO2=0.0 +!WR_HNO4/WC_NO2=0.0 ! -!PAN6/H2SO4=0.0 +!WR_HNO4/WC_NO3=0.0 ! -!PAN6/OH=0.0 +!WR_HNO4/WC_N2O5=0.0 ! -!PAN6/ETHE=0.0 +!WR_HNO4/WC_HONO=0.0 ! -!PAN6/OLEL=0.0 +!WR_HNO4/WC_HNO3=0.0 ! -!PAN6/OLEH=0.0 +!WR_HNO4/WC_HNO4=0.0 ! -!PAN6/ALKL=0.0 +!WR_HNO4/WC_NH3=0.0 ! -!PAN6/ALKM=0.0 +!WR_HNO4/WC_OH=0.0 ! -!PAN6/ALKH=0.0 +!WR_HNO4/WC_HO2=0.0 ! -!PAN6/AROH=0.0 +!WR_HNO4/WC_CO2=0.0 ! -!PAN6/AROL=0.0 +!WR_HNO4/WC_SO2=0.0 ! -!PAN6/AROO=0.0 +!WR_HNO4/WC_SULF=0.0 ! -!PAN6/ARAL=0.0 +!WR_HNO4/WC_HCHO=0.0 ! -!PAN6/ARAC=0.0 +!WR_HNO4/WC_ORA1=0.0 ! -!PAN6/PAH=0.0 +!WR_HNO4/WC_ORA2=0.0 ! -!PAN6/HCHO=0.0 +!WR_HNO4/WC_MO2=0.0 ! -!PAN6/ALD2=0.0 +!WR_HNO4/WC_OP1=0.0 ! -!PAN6/KETL=0.0 +!WR_HNO4/WC_ASO3=0.0 ! -!PAN6/KETH=0.0 +!WR_HNO4/WC_ASO4=0.0 ! -!PAN6/MEOH=0.0 +!WR_HNO4/WC_ASO5=0.0 ! -!PAN6/ETOH=0.0 +!WR_HNO4/WC_AHSO5=0.0 ! -!PAN6/ALCH=0.0 +!WR_HNO4/WC_AHMS=0.0 ! -!PAN6/ISOP=0.0 +!WR_HNO4/WR_O3=0.0 ! -!PAN6/BIOL=0.0 +!WR_HNO4/WR_H2O2=0.0 ! -!PAN6/BIOH=0.0 +!WR_HNO4/WR_NO=0.0 ! -!PAN6/MTBE=0.0 +!WR_HNO4/WR_NO2=+KR9*<WR_HO2> + PJAC(:,75,70)=+TPK%KR9(:)*PCONC(:,78) ! -!PAN6/MVK=0.0 +!WR_HNO4/WR_NO3=0.0 ! -!PAN6/MCR=0.0 +!WR_HNO4/WR_N2O5=0.0 ! -!PAN6/MGLY=0.0 +!WR_HNO4/WR_HONO=0.0 ! -!PAN6/GLY=0.0 +!WR_HNO4/WR_HNO3=0.0 ! -!PAN6/ORA1=0.0 +!WR_HNO4/WR_HNO4=-KTR29-KR10-KR11-KR12*<WR_SO2> + PJAC(:,75,75)=-TPK%KTR29(:)-TPK%KR10(:)-TPK%KR11(:)-TPK%KR12(:)*PCONC(:,80) ! -!PAN6/ORA2=0.0 +!WR_HNO4/WR_NH3=0.0 ! -!PAN6/ACID=0.0 +!WR_HNO4/WR_OH=0.0 ! -!PAN6/UR28=0.0 +!WR_HNO4/WR_HO2=+KR9*<WR_NO2> + PJAC(:,75,78)=+TPK%KR9(:)*PCONC(:,70) ! -!PAN6/UR21=0.0 +!WR_HNO4/WR_CO2=0.0 ! -!PAN6/URG2=0.0 +!WR_HNO4/WR_SO2=-KR12*<WR_HNO4> + PJAC(:,75,80)=-TPK%KR12(:)*PCONC(:,75) ! -!PAN6/UR26=0.0 +!WR_HNO4/WR_SULF=0.0 ! -!PAN6/RPG2=0.0 +!WR_HNO4/WR_HCHO=0.0 ! -!PAN6/RP18=0.0 +!WR_HNO4/WR_ORA1=0.0 ! -!PAN6/RPG3=0.0 +!WR_HNO4/WR_ORA2=0.0 ! -!PAN6/URG4=0.0 +!WR_HNO4/WR_MO2=0.0 ! -!PAN6/UR8=0.0 +!WR_HNO4/WR_OP1=0.0 ! -!PAN6/UR17=0.0 +!WR_HNO4/WR_ASO3=0.0 ! -!PAN6/UR7=0.0 +!WR_HNO4/WR_ASO4=0.0 ! -!PAN6/RPR3=0.0 +!WR_HNO4/WR_ASO5=0.0 ! -!PAN6/URG6=0.0 +!WR_HNO4/WR_AHSO5=0.0 ! -!PAN6/UR22=0.0 +!WR_HNO4/WR_AHMS=0.0 ! -!PAN6/URG7=0.0 +RETURN +END SUBROUTINE SUBJ14 ! -!PAN6/RPR4=0.0 +SUBROUTINE SUBJ15 ! -!PAN6/RPR7=0.0 +!Indices 76 a 80 ! -!PAN6/RPG7=0.0 ! -!PAN6/URG8=0.0 +!WR_NH3/O3=0.0 ! -!PAN6/UR19=0.0 +!WR_NH3/H2O2=0.0 ! -!PAN6/URG9=0.0 +!WR_NH3/NO=0.0 ! -!PAN6/AP7=0.0 +!WR_NH3/NO2=0.0 ! -!PAN6/URG10=0.0 +!WR_NH3/NO3=0.0 ! -!PAN6/RPR1=0.0 +!WR_NH3/N2O5=0.0 ! -!PAN6/RPR5=0.0 +!WR_NH3/HONO=0.0 ! -!PAN6/RPR8=0.0 +!WR_NH3/HNO3=0.0 ! -!PAN6/RP10=0.0 +!WR_NH3/HNO4=0.0 ! -!PAN6/RP11=0.0 +!WR_NH3/NH3=+KTR10 + PJAC(:,76,10)=+TPK%KTR10(:) ! -!PAN6/RP16=0.0 +!WR_NH3/SO2=0.0 ! -!PAN6/RPRL=0.0 +!WR_NH3/SULF=0.0 ! -!PAN6/APAN=0.0 +!WR_NH3/CO=0.0 ! -!PAN6/PAN1=0.0 +!WR_NH3/OH=0.0 ! -!PAN6/PAN2=0.0 +!WR_NH3/HO2=0.0 ! -!PAN6/PAN3=0.0 +!WR_NH3/CH4=0.0 ! -!PAN6/PAN4=0.0 +!WR_NH3/ETH=0.0 ! -!PAN6/PAN6=-K140 - PJAC(:,81,81)=-TPK%K140(:) +!WR_NH3/ALKA=0.0 ! -!PAN6/PAN7=0.0 +!WR_NH3/ALKE=0.0 ! -!PAN6/PAN8=0.0 +!WR_NH3/BIO=0.0 ! -!PAN6/PN10=0.0 +!WR_NH3/ARO=0.0 ! -!PAN6/RO2T=0.0 +!WR_NH3/HCHO=0.0 ! -!PAN6/RO21=0.0 +!WR_NH3/ALD=0.0 ! -!PAN6/RO25=0.0 +!WR_NH3/KET=0.0 ! -!PAN7/NO=0.0 +!WR_NH3/CARBO=0.0 ! -!PAN7/NO2=+K132*<RO255> - PJAC(:,82,2)=+TPK%K132(:)*TPK%RO255(:) +!WR_NH3/ONIT=0.0 ! -!PAN7/O3=0.0 +!WR_NH3/PAN=0.0 ! -!PAN7/HONO=0.0 +!WR_NH3/OP1=0.0 ! -!PAN7/HNO3=0.0 +!WR_NH3/OP2=0.0 ! -!PAN7/HNO4=0.0 +!WR_NH3/ORA1=0.0 ! -!PAN7/N2O5=0.0 +!WR_NH3/ORA2=0.0 ! -!PAN7/NO3=0.0 +!WR_NH3/MO2=0.0 ! -!PAN7/NH3=0.0 +!WR_NH3/ALKAP=0.0 ! -!PAN7/HO2=0.0 +!WR_NH3/ALKEP=0.0 ! -!PAN7/CO=0.0 +!WR_NH3/BIOP=0.0 ! -!PAN7/H2O2=0.0 +!WR_NH3/PHO=0.0 ! -!PAN7/SO2=0.0 +!WR_NH3/ADD=0.0 ! -!PAN7/H2SO4=0.0 +!WR_NH3/AROP=0.0 ! -!PAN7/OH=0.0 +!WR_NH3/CARBOP=0.0 ! -!PAN7/ETHE=0.0 +!WR_NH3/OLN=0.0 ! -!PAN7/OLEL=0.0 +!WR_NH3/XO2=0.0 ! -!PAN7/OLEH=0.0 +!WR_NH3/WC_O3=0.0 ! -!PAN7/ALKL=0.0 +!WR_NH3/WC_H2O2=0.0 ! -!PAN7/ALKM=0.0 +!WR_NH3/WC_NO=0.0 ! -!PAN7/ALKH=0.0 +!WR_NH3/WC_NO2=0.0 ! -!PAN7/AROH=0.0 +!WR_NH3/WC_NO3=0.0 ! -!PAN7/AROL=0.0 +!WR_NH3/WC_N2O5=0.0 ! -!PAN7/AROO=0.0 +!WR_NH3/WC_HONO=0.0 ! -!PAN7/ARAL=0.0 +!WR_NH3/WC_HNO3=0.0 ! -!PAN7/ARAC=0.0 +!WR_NH3/WC_HNO4=0.0 ! -!PAN7/PAH=0.0 +!WR_NH3/WC_NH3=0.0 ! -!PAN7/HCHO=0.0 +!WR_NH3/WC_OH=0.0 ! -!PAN7/ALD2=0.0 +!WR_NH3/WC_HO2=0.0 ! -!PAN7/KETL=0.0 +!WR_NH3/WC_CO2=0.0 ! -!PAN7/KETH=0.0 +!WR_NH3/WC_SO2=0.0 ! -!PAN7/MEOH=0.0 +!WR_NH3/WC_SULF=0.0 ! -!PAN7/ETOH=0.0 +!WR_NH3/WC_HCHO=0.0 ! -!PAN7/ALCH=0.0 +!WR_NH3/WC_ORA1=0.0 ! -!PAN7/ISOP=0.0 +!WR_NH3/WC_ORA2=0.0 ! -!PAN7/BIOL=0.0 +!WR_NH3/WC_MO2=0.0 ! -!PAN7/BIOH=0.0 +!WR_NH3/WC_OP1=0.0 ! -!PAN7/MTBE=0.0 +!WR_NH3/WC_ASO3=0.0 ! -!PAN7/MVK=0.0 +!WR_NH3/WC_ASO4=0.0 ! -!PAN7/MCR=0.0 +!WR_NH3/WC_ASO5=0.0 ! -!PAN7/MGLY=0.0 +!WR_NH3/WC_AHSO5=0.0 ! -!PAN7/GLY=0.0 +!WR_NH3/WC_AHMS=0.0 ! -!PAN7/ORA1=0.0 +!WR_NH3/WR_O3=0.0 ! -!PAN7/ORA2=0.0 +!WR_NH3/WR_H2O2=0.0 ! -!PAN7/ACID=0.0 +!WR_NH3/WR_NO=0.0 ! -!PAN7/UR28=0.0 +!WR_NH3/WR_NO2=0.0 ! -!PAN7/UR21=0.0 +!WR_NH3/WR_NO3=0.0 ! -!PAN7/URG2=0.0 +!WR_NH3/WR_N2O5=0.0 ! -!PAN7/UR26=0.0 +!WR_NH3/WR_HONO=0.0 ! -!PAN7/RPG2=0.0 +!WR_NH3/WR_HNO3=0.0 ! -!PAN7/RP18=0.0 +!WR_NH3/WR_HNO4=0.0 ! -!PAN7/RPG3=0.0 +!WR_NH3/WR_NH3=-KTR30 + PJAC(:,76,76)=-TPK%KTR30(:) ! -!PAN7/URG4=0.0 +!WR_NH3/WR_OH=0.0 ! -!PAN7/UR8=0.0 +!WR_NH3/WR_HO2=0.0 ! -!PAN7/UR17=0.0 +!WR_NH3/WR_CO2=0.0 ! -!PAN7/UR7=0.0 +!WR_NH3/WR_SO2=0.0 ! -!PAN7/RPR3=0.0 +!WR_NH3/WR_SULF=0.0 ! -!PAN7/URG6=0.0 +!WR_NH3/WR_HCHO=0.0 ! -!PAN7/UR22=0.0 +!WR_NH3/WR_ORA1=0.0 ! -!PAN7/URG7=0.0 +!WR_NH3/WR_ORA2=0.0 ! -!PAN7/RPR4=0.0 +!WR_NH3/WR_MO2=0.0 ! -!PAN7/RPR7=0.0 +!WR_NH3/WR_OP1=0.0 ! -!PAN7/RPG7=0.0 +!WR_NH3/WR_ASO3=0.0 ! -!PAN7/URG8=0.0 +!WR_NH3/WR_ASO4=0.0 ! -!PAN7/UR19=0.0 +!WR_NH3/WR_ASO5=0.0 ! -!PAN7/URG9=0.0 +!WR_NH3/WR_AHSO5=0.0 ! -!PAN7/AP7=0.0 +!WR_NH3/WR_AHMS=0.0 ! -!PAN7/URG10=0.0 +!WR_OH/O3=0.0 ! -!PAN7/RPR1=0.0 +!WR_OH/H2O2=0.0 ! -!PAN7/RPR5=0.0 +!WR_OH/NO=0.0 ! -!PAN7/RPR8=0.0 +!WR_OH/NO2=0.0 ! -!PAN7/RP10=0.0 +!WR_OH/NO3=0.0 ! -!PAN7/RP11=0.0 +!WR_OH/N2O5=0.0 ! -!PAN7/RP16=0.0 +!WR_OH/HONO=0.0 ! -!PAN7/RPRL=0.0 +!WR_OH/HNO3=0.0 ! -!PAN7/APAN=0.0 +!WR_OH/HNO4=0.0 ! -!PAN7/PAN1=0.0 +!WR_OH/NH3=0.0 ! -!PAN7/PAN2=0.0 +!WR_OH/SO2=0.0 ! -!PAN7/PAN3=0.0 +!WR_OH/SULF=0.0 ! -!PAN7/PAN4=0.0 +!WR_OH/CO=0.0 ! -!PAN7/PAN6=0.0 +!WR_OH/OH=+KTR11 + PJAC(:,77,14)=+TPK%KTR11(:) ! -!PAN7/PAN7=-K343 - PJAC(:,82,82)=-TPK%K343(:) +!WR_OH/HO2=0.0 ! -!PAN7/PAN8=0.0 +!WR_OH/CH4=0.0 ! -!PAN7/PN10=0.0 +!WR_OH/ETH=0.0 ! -!PAN7/RO2T=0.0 +!WR_OH/ALKA=0.0 ! -!PAN7/RO21=0.0 +!WR_OH/ALKE=0.0 ! -!PAN7/RO25=0.0 +!WR_OH/BIO=0.0 ! -!PAN8/NO=0.0 +!WR_OH/ARO=0.0 ! -!PAN8/NO2=+K316*<RO256> - PJAC(:,83,2)=+TPK%K316(:)*TPK%RO256(:) +!WR_OH/HCHO=0.0 ! -!PAN8/O3=0.0 +!WR_OH/ALD=0.0 ! -!PAN8/HONO=0.0 +!WR_OH/KET=0.0 ! -!PAN8/HNO3=0.0 +!WR_OH/CARBO=0.0 ! -!PAN8/HNO4=0.0 +!WR_OH/ONIT=0.0 ! -!PAN8/N2O5=0.0 +!WR_OH/PAN=0.0 ! -!PAN8/NO3=0.0 +!WR_OH/OP1=0.0 ! -!PAN8/NH3=0.0 +!WR_OH/OP2=0.0 ! -!PAN8/HO2=0.0 +!WR_OH/ORA1=0.0 ! -!PAN8/CO=0.0 +!WR_OH/ORA2=0.0 ! -!PAN8/H2O2=0.0 +!WR_OH/MO2=0.0 ! -!PAN8/SO2=0.0 +!WR_OH/ALKAP=0.0 ! -!PAN8/H2SO4=0.0 +!WR_OH/ALKEP=0.0 ! -!PAN8/OH=0.0 +!WR_OH/BIOP=0.0 ! -!PAN8/ETHE=0.0 +!WR_OH/PHO=0.0 ! -!PAN8/OLEL=0.0 +!WR_OH/ADD=0.0 ! -!PAN8/OLEH=0.0 +!WR_OH/AROP=0.0 ! -!PAN8/ALKL=0.0 +!WR_OH/CARBOP=0.0 ! -!PAN8/ALKM=0.0 +!WR_OH/OLN=0.0 ! -!PAN8/ALKH=0.0 +!WR_OH/XO2=0.0 ! -!PAN8/AROH=0.0 +!WR_OH/WC_O3=0.0 ! -!PAN8/AROL=0.0 +!WR_OH/WC_H2O2=0.0 ! -!PAN8/AROO=0.0 +!WR_OH/WC_NO=0.0 ! -!PAN8/ARAL=0.0 +!WR_OH/WC_NO2=0.0 ! -!PAN8/ARAC=0.0 +!WR_OH/WC_NO3=0.0 ! -!PAN8/PAH=0.0 +!WR_OH/WC_N2O5=0.0 ! -!PAN8/HCHO=0.0 +!WR_OH/WC_HONO=0.0 ! -!PAN8/ALD2=0.0 +!WR_OH/WC_HNO3=0.0 ! -!PAN8/KETL=0.0 +!WR_OH/WC_HNO4=0.0 ! -!PAN8/KETH=0.0 +!WR_OH/WC_NH3=0.0 ! -!PAN8/MEOH=0.0 +!WR_OH/WC_OH=0.0 ! -!PAN8/ETOH=0.0 +!WR_OH/WC_HO2=0.0 ! -!PAN8/ALCH=0.0 +!WR_OH/WC_CO2=0.0 ! -!PAN8/ISOP=0.0 +!WR_OH/WC_SO2=0.0 ! -!PAN8/BIOL=0.0 +!WR_OH/WC_SULF=0.0 ! -!PAN8/BIOH=0.0 +!WR_OH/WC_HCHO=0.0 ! -!PAN8/MTBE=0.0 +!WR_OH/WC_ORA1=0.0 ! -!PAN8/MVK=0.0 +!WR_OH/WC_ORA2=0.0 ! -!PAN8/MCR=0.0 +!WR_OH/WC_MO2=0.0 ! -!PAN8/MGLY=0.0 +!WR_OH/WC_OP1=0.0 ! -!PAN8/GLY=0.0 +!WR_OH/WC_ASO3=0.0 ! -!PAN8/ORA1=0.0 +!WR_OH/WC_ASO4=0.0 ! -!PAN8/ORA2=0.0 +!WR_OH/WC_ASO5=0.0 ! -!PAN8/ACID=0.0 +!WR_OH/WC_AHSO5=0.0 ! -!PAN8/UR28=0.0 +!WR_OH/WC_AHMS=0.0 ! -!PAN8/UR21=0.0 +!WR_OH/WR_O3=+KR6*<WR_HO2> + PJAC(:,77,67)=+TPK%KR6(:)*PCONC(:,78) ! -!PAN8/URG2=0.0 +!WR_OH/WR_H2O2=+KR1+KR1-KR4*<WR_OH> + PJAC(:,77,68)=+TPK%KR1(:)+TPK%KR1(:)-TPK%KR4(:)*PCONC(:,77) ! -!PAN8/UR26=0.0 +!WR_OH/WR_NO=0.0 ! -!PAN8/RPG2=0.0 +!WR_OH/WR_NO2=0.0 ! -!PAN8/RP18=0.0 +!WR_OH/WR_NO3=0.0 ! -!PAN8/RPG3=0.0 +!WR_OH/WR_N2O5=0.0 ! -!PAN8/URG4=0.0 +!WR_OH/WR_HONO=-KR8*<WR_OH> + PJAC(:,77,73)=-TPK%KR8(:)*PCONC(:,77) ! -!PAN8/UR8=0.0 +!WR_OH/WR_HNO3=+KR13 + PJAC(:,77,74)=+TPK%KR13(:) ! -!PAN8/UR17=0.0 +!WR_OH/WR_HNO4=0.0 ! -!PAN8/UR7=0.0 +!WR_OH/WR_NH3=0.0 ! -!PAN8/RPR3=0.0 +!WR_OH/WR_OH=-KTR31-KR2*<WR_OH>-KR2*<WR_OH>-KR2*<WR_OH>-KR2*<WR_OH>-KR3*<WR_HO2 +!>-KR4*<WR_H2O2>-KR7*<WR_SO2>-KR8*<WR_HONO>-KR19*<WR_HCHO>-KR20*<WR_ORA1>-KR23* +!<WR_AHMS> + PJAC(:,77,77)=-TPK%KTR31(:)-TPK%KR2(:)*PCONC(:,77)-TPK%KR2(:)*PCONC(:,77)-TPK%& +&KR2(:)*PCONC(:,77)-TPK%KR2(:)*PCONC(:,77)-TPK%KR3(:)*PCONC(:,78)-TPK%KR4(:)*PC& +&ONC(:,68)-TPK%KR7(:)*PCONC(:,80)-TPK%KR8(:)*PCONC(:,73)-TPK%KR19(:)*PCONC(:,82& +&)-TPK%KR20(:)*PCONC(:,83)-TPK%KR23(:)*PCONC(:,91) ! -!PAN8/URG6=0.0 +!WR_OH/WR_HO2=-KR3*<WR_OH>+KR6*<WR_O3> + PJAC(:,77,78)=-TPK%KR3(:)*PCONC(:,77)+TPK%KR6(:)*PCONC(:,67) ! -!PAN8/UR22=0.0 +!WR_OH/WR_CO2=0.0 ! -!PAN8/URG7=0.0 +!WR_OH/WR_SO2=-KR7*<WR_OH> + PJAC(:,77,80)=-TPK%KR7(:)*PCONC(:,77) ! -!PAN8/RPR4=0.0 +!WR_OH/WR_SULF=0.0 ! -!PAN8/RPR7=0.0 +!WR_OH/WR_HCHO=-KR19*<WR_OH> + PJAC(:,77,82)=-TPK%KR19(:)*PCONC(:,77) ! -!PAN8/RPG7=0.0 +!WR_OH/WR_ORA1=-KR20*<WR_OH> + PJAC(:,77,83)=-TPK%KR20(:)*PCONC(:,77) ! -!PAN8/URG8=0.0 +!WR_OH/WR_ORA2=0.0 ! -!PAN8/UR19=0.0 +!WR_OH/WR_MO2=0.0 ! -!PAN8/URG9=0.0 +!WR_OH/WR_OP1=0.0 ! -!PAN8/AP7=0.0 +!WR_OH/WR_ASO3=0.0 ! -!PAN8/URG10=0.0 +!WR_OH/WR_ASO4=+KR28 + PJAC(:,77,88)=+TPK%KR28(:) ! -!PAN8/RPR1=0.0 +!WR_OH/WR_ASO5=0.0 ! -!PAN8/RPR5=0.0 +!WR_OH/WR_AHSO5=0.0 ! -!PAN8/RPR8=0.0 +!WR_OH/WR_AHMS=-KR23*<WR_OH> + PJAC(:,77,91)=-TPK%KR23(:)*PCONC(:,77) ! -!PAN8/RP10=0.0 +!WR_HO2/O3=0.0 ! -!PAN8/RP11=0.0 +!WR_HO2/H2O2=0.0 ! -!PAN8/RP16=0.0 +!WR_HO2/NO=0.0 ! -!PAN8/RPRL=0.0 +!WR_HO2/NO2=0.0 ! -!PAN8/APAN=0.0 +!WR_HO2/NO3=0.0 ! -!PAN8/PAN1=0.0 +!WR_HO2/N2O5=0.0 ! -!PAN8/PAN2=0.0 +!WR_HO2/HONO=0.0 ! -!PAN8/PAN3=0.0 +!WR_HO2/HNO3=0.0 ! -!PAN8/PAN4=0.0 +!WR_HO2/HNO4=0.0 ! -!PAN8/PAN6=0.0 +!WR_HO2/NH3=0.0 ! -!PAN8/PAN7=0.0 +!WR_HO2/SO2=0.0 ! -!PAN8/PAN8=-K317 - PJAC(:,83,83)=-TPK%K317(:) +!WR_HO2/SULF=0.0 ! -!PAN8/PN10=0.0 +!WR_HO2/CO=0.0 ! -!PAN8/RO2T=0.0 +!WR_HO2/OH=0.0 ! -!PAN8/RO21=0.0 +!WR_HO2/HO2=+KTR12 + PJAC(:,78,15)=+TPK%KTR12(:) ! -!PAN8/RO25=0.0 +!WR_HO2/CH4=0.0 ! -!PN10/NO=0.0 +!WR_HO2/ETH=0.0 ! -!PN10/NO2=+K134*<RO258> - PJAC(:,84,2)=+TPK%K134(:)*TPK%RO258(:) +!WR_HO2/ALKA=0.0 ! -!PN10/O3=0.0 +!WR_HO2/ALKE=0.0 ! -!PN10/HONO=0.0 +!WR_HO2/BIO=0.0 ! -!PN10/HNO3=0.0 +!WR_HO2/ARO=0.0 ! -!PN10/HNO4=0.0 +!WR_HO2/HCHO=0.0 ! -!PN10/N2O5=0.0 +!WR_HO2/ALD=0.0 ! -!PN10/NO3=0.0 +!WR_HO2/KET=0.0 ! -!PN10/NH3=0.0 +!WR_HO2/CARBO=0.0 ! -!PN10/HO2=0.0 +!WR_HO2/ONIT=0.0 ! -!PN10/CO=0.0 +!WR_HO2/PAN=0.0 ! -!PN10/H2O2=0.0 +!WR_HO2/OP1=0.0 ! -!PN10/SO2=0.0 +!WR_HO2/OP2=0.0 ! -!PN10/H2SO4=0.0 +!WR_HO2/ORA1=0.0 ! -!PN10/OH=0.0 +!WR_HO2/ORA2=0.0 ! -!PN10/ETHE=0.0 +!WR_HO2/MO2=0.0 ! -!PN10/OLEL=0.0 +!WR_HO2/ALKAP=0.0 ! -!PN10/OLEH=0.0 +!WR_HO2/ALKEP=0.0 ! -!PN10/ALKL=0.0 +!WR_HO2/BIOP=0.0 ! -!PN10/ALKM=0.0 +!WR_HO2/PHO=0.0 ! -!PN10/ALKH=0.0 +!WR_HO2/ADD=0.0 ! -!PN10/AROH=0.0 +!WR_HO2/AROP=0.0 ! -!PN10/AROL=0.0 +!WR_HO2/CARBOP=0.0 ! -!PN10/AROO=0.0 +!WR_HO2/OLN=0.0 ! -!PN10/ARAL=0.0 +!WR_HO2/XO2=0.0 ! -!PN10/ARAC=0.0 +!WR_HO2/WC_O3=0.0 ! -!PN10/PAH=0.0 +!WR_HO2/WC_H2O2=0.0 ! -!PN10/HCHO=0.0 +!WR_HO2/WC_NO=0.0 ! -!PN10/ALD2=0.0 +!WR_HO2/WC_NO2=0.0 ! -!PN10/KETL=0.0 +!WR_HO2/WC_NO3=0.0 ! -!PN10/KETH=0.0 +!WR_HO2/WC_N2O5=0.0 ! -!PN10/MEOH=0.0 +!WR_HO2/WC_HONO=0.0 ! -!PN10/ETOH=0.0 +!WR_HO2/WC_HNO3=0.0 ! -!PN10/ALCH=0.0 +!WR_HO2/WC_HNO4=0.0 ! -!PN10/ISOP=0.0 +!WR_HO2/WC_NH3=0.0 ! -!PN10/BIOL=0.0 +!WR_HO2/WC_OH=0.0 ! -!PN10/BIOH=0.0 +!WR_HO2/WC_HO2=0.0 ! -!PN10/MTBE=0.0 +!WR_HO2/WC_CO2=0.0 ! -!PN10/MVK=0.0 +!WR_HO2/WC_SO2=0.0 ! -!PN10/MCR=0.0 +!WR_HO2/WC_SULF=0.0 ! -!PN10/MGLY=0.0 +!WR_HO2/WC_HCHO=0.0 ! -!PN10/GLY=0.0 +!WR_HO2/WC_ORA1=0.0 ! -!PN10/ORA1=0.0 +!WR_HO2/WC_ORA2=0.0 ! -!PN10/ORA2=0.0 +!WR_HO2/WC_MO2=0.0 ! -!PN10/ACID=0.0 +!WR_HO2/WC_OP1=0.0 ! -!PN10/UR28=0.0 +!WR_HO2/WC_ASO3=0.0 ! -!PN10/UR21=0.0 +!WR_HO2/WC_ASO4=0.0 ! -!PN10/URG2=0.0 +!WR_HO2/WC_ASO5=0.0 ! -!PN10/UR26=0.0 +!WR_HO2/WC_AHSO5=0.0 ! -!PN10/RPG2=0.0 +!WR_HO2/WC_AHMS=0.0 ! -!PN10/RP18=0.0 +!WR_HO2/WR_O3=-KR6*<WR_HO2> + PJAC(:,78,67)=-TPK%KR6(:)*PCONC(:,78) ! -!PN10/RPG3=0.0 +!WR_HO2/WR_H2O2=+KR4*<WR_OH> + PJAC(:,78,68)=+TPK%KR4(:)*PCONC(:,77) ! -!PN10/URG4=0.0 +!WR_HO2/WR_NO=0.0 ! -!PN10/UR8=0.0 +!WR_HO2/WR_NO2=-KR9*<WR_HO2> + PJAC(:,78,70)=-TPK%KR9(:)*PCONC(:,78) ! -!PN10/UR17=0.0 +!WR_HO2/WR_NO3=0.0 ! -!PN10/UR7=0.0 +!WR_HO2/WR_N2O5=0.0 ! -!PN10/RPR3=0.0 +!WR_HO2/WR_HONO=0.0 ! -!PN10/URG6=0.0 +!WR_HO2/WR_HNO3=0.0 ! -!PN10/UR22=0.0 +!WR_HO2/WR_HNO4=+KR10 + PJAC(:,78,75)=+TPK%KR10(:) ! -!PN10/URG7=0.0 +!WR_HO2/WR_NH3=0.0 ! -!PN10/RPR4=0.0 +!WR_HO2/WR_OH=-KR3*<WR_HO2>+KR4*<WR_H2O2>+KR19*<WR_HCHO>+KR20*<WR_ORA1>+KR23*<W +!R_AHMS> + PJAC(:,78,77)=-TPK%KR3(:)*PCONC(:,78)+TPK%KR4(:)*PCONC(:,68)+TPK%KR19(:)*PCONC& +&(:,82)+TPK%KR20(:)*PCONC(:,83)+TPK%KR23(:)*PCONC(:,91) ! -!PN10/RPR7=0.0 +!WR_HO2/WR_HO2=-KTR32-KR3*<WR_OH>-KR5*<WR_HO2>-KR5*<WR_HO2>-KR5*<WR_HO2>-KR5*<W +!R_HO2>-KR6*<WR_O3>-KR9*<WR_NO2>-KR25*<WR_ASO5> + PJAC(:,78,78)=-TPK%KTR32(:)-TPK%KR3(:)*PCONC(:,77)-TPK%KR5(:)*PCONC(:,78)-TPK%& +&KR5(:)*PCONC(:,78)-TPK%KR5(:)*PCONC(:,78)-TPK%KR5(:)*PCONC(:,78)-TPK%KR6(:)*PC& +&ONC(:,67)-TPK%KR9(:)*PCONC(:,70)-TPK%KR25(:)*PCONC(:,89) ! -!PN10/RPG7=0.0 +!WR_HO2/WR_CO2=0.0 ! -!PN10/URG8=0.0 +!WR_HO2/WR_SO2=0.0 ! -!PN10/UR19=0.0 +!WR_HO2/WR_SULF=0.0 ! -!PN10/URG9=0.0 +!WR_HO2/WR_HCHO=+KR19*<WR_OH> + PJAC(:,78,82)=+TPK%KR19(:)*PCONC(:,77) ! -!PN10/AP7=0.0 +!WR_HO2/WR_ORA1=+KR20*<WR_OH> + PJAC(:,78,83)=+TPK%KR20(:)*PCONC(:,77) ! -!PN10/URG10=0.0 +!WR_HO2/WR_ORA2=0.0 ! -!PN10/RPR1=0.0 +!WR_HO2/WR_MO2=+2.00*KR17*<WR_MO2>+2.00*KR17*<WR_MO2> + PJAC(:,78,85)=+2.00*TPK%KR17(:)*PCONC(:,85)+2.00*TPK%KR17(:)*PCONC(:,85) ! -!PN10/RPR5=0.0 +!WR_HO2/WR_OP1=0.0 ! -!PN10/RPR8=0.0 +!WR_HO2/WR_ASO3=0.0 ! -!PN10/RP10=0.0 +!WR_HO2/WR_ASO4=0.0 ! -!PN10/RP11=0.0 +!WR_HO2/WR_ASO5=-KR25*<WR_HO2> + PJAC(:,78,89)=-TPK%KR25(:)*PCONC(:,78) ! -!PN10/RP16=0.0 +!WR_HO2/WR_AHSO5=0.0 ! -!PN10/RPRL=0.0 +!WR_HO2/WR_AHMS=+KR23*<WR_OH> + PJAC(:,78,91)=+TPK%KR23(:)*PCONC(:,77) ! -!PN10/APAN=0.0 +!WR_CO2/O3=0.0 ! -!PN10/PAN1=0.0 +!WR_CO2/H2O2=0.0 ! -!PN10/PAN2=0.0 +!WR_CO2/NO=0.0 ! -!PN10/PAN3=0.0 +!WR_CO2/NO2=0.0 ! -!PN10/PAN4=0.0 +!WR_CO2/NO3=0.0 ! -!PN10/PAN6=0.0 +!WR_CO2/N2O5=0.0 ! -!PN10/PAN7=0.0 +!WR_CO2/HONO=0.0 ! -!PN10/PAN8=0.0 +!WR_CO2/HNO3=0.0 ! -!PN10/PN10=-K138 - PJAC(:,84,84)=-TPK%K138(:) +!WR_CO2/HNO4=0.0 ! -!PN10/RO2T=0.0 +!WR_CO2/NH3=0.0 ! -!PN10/RO21=0.0 +!WR_CO2/SO2=0.0 ! -!PN10/RO25=0.0 +!WR_CO2/SULF=0.0 ! -!RO2T/NO=-K095*<RO2T>+K125*<RO26>+K144*<RO27>+K147*<RO28>+K162*<RO213>+K165*<RO -!239>+TPK%CF8*K168*<RO214>+K174*<RO216>+TPK%CF18*K186*<RO220>+K204*<RO226>+TPK% -!CF30*K213*<RO229>+K216*<RO240>+TPK%CF34*K224*<RO232>+K277*<RO248>+K288*<RO250> -!+K297*<RO253>+K309*<RO255>+K331*<RO257>+K344*<RO230> - PJAC(:,85,1)=-TPK%K095(:)*PCONC(:,85)+TPK%K125(:)*TPK%RO26(:)+TPK%K144(:)*TPK%& -&RO27(:)+TPK%K147(:)*TPK%RO28(:)+TPK%K162(:)*TPK%RO213(:)+TPK%K165(:)*TPK%RO239& -&(:)+TPK%CF8*TPK%K168(:)*TPK%RO214(:)+TPK%K174(:)*TPK%RO216(:)+TPK%CF18*TPK%K18& -&6(:)*TPK%RO220(:)+TPK%K204(:)*TPK%RO226(:)+TPK%CF30*TPK%K213(:)*TPK%RO229(:)+T& -&PK%K216(:)*TPK%RO240(:)+TPK%CF34*TPK%K224(:)*TPK%RO232(:)+TPK%K277(:)*TPK%RO24& -&8(:)+TPK%K288(:)*TPK%RO250(:)+TPK%K297(:)*TPK%RO253(:)+TPK%K309(:)*TPK%RO255(:& -&)+TPK%K331(:)*TPK%RO257(:)+TPK%K344(:)*TPK%RO230(:) +!WR_CO2/CO=0.0 ! -!RO2T/NO2=0.0 +!WR_CO2/OH=0.0 ! -!RO2T/O3=+0.28*K056*<OLEL>+0.366*K066*<ISOP>+0.28*K076*<OLEH>+0.445*K086*<BIOL> -!+0.89*K090*<BIOH>+0.28*K281*<MVK>+0.41*K282*<MCR> - PJAC(:,85,3)=+0.28*TPK%K056(:)*PCONC(:,17)+0.366*TPK%K066(:)*PCONC(:,35)+0.28*& -&TPK%K076(:)*PCONC(:,18)+0.445*TPK%K086(:)*PCONC(:,36)+0.89*TPK%K090(:)*PCONC(:& -&,37)+0.28*TPK%K281(:)*PCONC(:,39)+0.41*TPK%K282(:)*PCONC(:,40) +!WR_CO2/HO2=0.0 ! -!RO2T/HONO=0.0 +!WR_CO2/CH4=0.0 ! -!RO2T/HNO3=0.0 +!WR_CO2/ETH=0.0 ! -!RO2T/HNO4=0.0 +!WR_CO2/ALKA=0.0 ! -!RO2T/N2O5=0.0 +!WR_CO2/ALKE=0.0 ! -!RO2T/NO3=+K050*<ETHE>+K055*<OLEL>+K061*<ALD2>+K065*<ISOP>+K075*<OLEH>+K085*<BI -!OL>+K089*<BIOH>+K275*<MCR>+K278*<MGLY>+K307*<RPR1>+K313*<RPR3>+K327*<RPR8>+K33 -!8*<RP16> - PJAC(:,85,8)=+TPK%K050(:)*PCONC(:,16)+TPK%K055(:)*PCONC(:,17)+TPK%K061(:)*PCON& -&C(:,29)+TPK%K065(:)*PCONC(:,35)+TPK%K075(:)*PCONC(:,18)+TPK%K085(:)*PCONC(:,36& -&)+TPK%K089(:)*PCONC(:,37)+TPK%K275(:)*PCONC(:,40)+TPK%K278(:)*PCONC(:,41)+TPK%& -&K307(:)*PCONC(:,69)+TPK%K313(:)*PCONC(:,57)+TPK%K327(:)*PCONC(:,71)+TPK%K338(:& -&)*PCONC(:,74) +!WR_CO2/BIO=0.0 ! -!RO2T/NH3=0.0 +!WR_CO2/ARO=0.0 ! -!RO2T/HO2=-K094*<RO2T>+K146*<RO27>+K164*<RO213>+K170*<RO214>+K176*<RO216>+K188* -!<RO220>+K206*<RO226>+K215*<RO229>+K218*<RO240>+K220*<RO230>+K226*<RO232>+K292* -!<RO251>+K295*<RO252>+2.*K298*<RO253> - PJAC(:,85,10)=-TPK%K094(:)*PCONC(:,85)+TPK%K146(:)*TPK%RO27(:)+TPK%K164(:)*TPK& -&%RO213(:)+TPK%K170(:)*TPK%RO214(:)+TPK%K176(:)*TPK%RO216(:)+TPK%K188(:)*TPK%RO& -&220(:)+TPK%K206(:)*TPK%RO226(:)+TPK%K215(:)*TPK%RO229(:)+TPK%K218(:)*TPK%RO240& -&(:)+TPK%K220(:)*TPK%RO230(:)+TPK%K226(:)*TPK%RO232(:)+TPK%K292(:)*TPK%RO251(:)& -&+TPK%K295(:)*TPK%RO252(:)+2.*TPK%K298(:)*TPK%RO253(:) +!WR_CO2/HCHO=0.0 ! -!RO2T/CO=0.0 +!WR_CO2/ALD=0.0 ! -!RO2T/H2O2=0.0 +!WR_CO2/KET=0.0 ! -!RO2T/SO2=0.0 +!WR_CO2/CARBO=0.0 ! -!RO2T/H2SO4=0.0 +!WR_CO2/ONIT=0.0 ! -!RO2T/OH=+K043*<CH4>+K049*<ETHE>+TPK%CF2*K053*<ETOH>+K054*<OLEL>+K058*<ALKL>+K0 -!60*<ALD2>+K062*<KETL>+K064*<ISOP>+K068*<MTBE>+K069*<ALCH>+K070*<KETH>+0.1*K073 -!*<AROO>+K074*<OLEH>+K078*<ALKM>+0.06*K079*<AROL>+TPK%CF45*K082*<ARAL>+0.1*K083 -!*<ARAC>+K084*<BIOL>+K088*<BIOH>+0.1*K092*<PAH>+K093*<ALKH>+K272*<MVK>+K273*<MC -!R>+K274*<MGLY>+K304*<RPR1>+K305*<RP16>+K312*<RPR3>+K324*<RPR8> - PJAC(:,85,15)=+TPK%K043(:)*TPK%CH4(:)+TPK%K049(:)*PCONC(:,16)+TPK%CF2*TPK%K053& -&(:)*PCONC(:,33)+TPK%K054(:)*PCONC(:,17)+TPK%K058(:)*PCONC(:,19)+TPK%K060(:)*PC& -&ONC(:,29)+TPK%K062(:)*PCONC(:,30)+TPK%K064(:)*PCONC(:,35)+TPK%K068(:)*PCONC(:,& -&38)+TPK%K069(:)*PCONC(:,34)+TPK%K070(:)*PCONC(:,31)+0.1*TPK%K073(:)*PCONC(:,24& -&)+TPK%K074(:)*PCONC(:,18)+TPK%K078(:)*PCONC(:,20)+0.06*TPK%K079(:)*PCONC(:,23)& -&+TPK%CF45*TPK%K082(:)*PCONC(:,25)+0.1*TPK%K083(:)*PCONC(:,26)+TPK%K084(:)*PCON& -&C(:,36)+TPK%K088(:)*PCONC(:,37)+0.1*TPK%K092(:)*PCONC(:,27)+TPK%K093(:)*PCONC(& -&:,21)+TPK%K272(:)*PCONC(:,39)+TPK%K273(:)*PCONC(:,40)+TPK%K274(:)*PCONC(:,41)+& -&TPK%K304(:)*PCONC(:,69)+TPK%K305(:)*PCONC(:,74)+TPK%K312(:)*PCONC(:,57)+TPK%K3& -&24(:)*PCONC(:,71) +!WR_CO2/PAN=0.0 ! -!RO2T/ETHE=+K049*<OH>+K050*<NO3>+K052*<O> - PJAC(:,85,16)=+TPK%K049(:)*PCONC(:,15)+TPK%K050(:)*PCONC(:,8)+TPK%K052(:)*TPK%& -&O(:) +!WR_CO2/OP1=0.0 ! -!RO2T/OLEL=+K054*<OH>+K055*<NO3>+0.28*K056*<O3>+0.2*K057*<O> - PJAC(:,85,17)=+TPK%K054(:)*PCONC(:,15)+TPK%K055(:)*PCONC(:,8)+0.28*TPK%K056(:)& -&*PCONC(:,3)+0.2*TPK%K057(:)*TPK%O(:) +!WR_CO2/OP2=0.0 ! -!RO2T/OLEH=+K074*<OH>+K075*<NO3>+0.28*K076*<O3>+0.2*K077*<O> - PJAC(:,85,18)=+TPK%K074(:)*PCONC(:,15)+TPK%K075(:)*PCONC(:,8)+0.28*TPK%K076(:)& -&*PCONC(:,3)+0.2*TPK%K077(:)*TPK%O(:) +!WR_CO2/ORA1=0.0 ! -!RO2T/ALKL=+K058*<OH> - PJAC(:,85,19)=+TPK%K058(:)*PCONC(:,15) +!WR_CO2/ORA2=0.0 ! -!RO2T/ALKM=+K078*<OH> - PJAC(:,85,20)=+TPK%K078(:)*PCONC(:,15) +!WR_CO2/MO2=0.0 ! -!RO2T/ALKH=+K093*<OH> - PJAC(:,85,21)=+TPK%K093(:)*PCONC(:,15) +!WR_CO2/ALKAP=0.0 ! -!RO2T/AROH=0.0 +!WR_CO2/ALKEP=0.0 ! -!RO2T/AROL=+0.06*K079*<OH> - PJAC(:,85,23)=+0.06*TPK%K079(:)*PCONC(:,15) +!WR_CO2/BIOP=0.0 ! -!RO2T/AROO=+0.1*K073*<OH> - PJAC(:,85,24)=+0.1*TPK%K073(:)*PCONC(:,15) +!WR_CO2/PHO=0.0 ! -!RO2T/ARAL=+TPK%CF45*K082*<OH> - PJAC(:,85,25)=+TPK%CF45*TPK%K082(:)*PCONC(:,15) +!WR_CO2/ADD=0.0 ! -!RO2T/ARAC=+0.1*K083*<OH> - PJAC(:,85,26)=+0.1*TPK%K083(:)*PCONC(:,15) +!WR_CO2/AROP=0.0 ! -!RO2T/PAH=+0.1*K092*<OH> - PJAC(:,85,27)=+0.1*TPK%K092(:)*PCONC(:,15) +!WR_CO2/CARBOP=0.0 ! -!RO2T/HCHO=0.0 +!WR_CO2/OLN=0.0 ! -!RO2T/ALD2=+K059+K060*<OH>+K061*<NO3> - PJAC(:,85,29)=+TPK%K059(:)+TPK%K060(:)*PCONC(:,15)+TPK%K061(:)*PCONC(:,8) +!WR_CO2/XO2=0.0 ! -!RO2T/KETL=+K062*<OH>+2.*K063 - PJAC(:,85,30)=+TPK%K062(:)*PCONC(:,15)+2.*TPK%K063(:) +!WR_CO2/WC_O3=0.0 ! -!RO2T/KETH=+K070*<OH>+2.*K071 - PJAC(:,85,31)=+TPK%K070(:)*PCONC(:,15)+2.*TPK%K071(:) +!WR_CO2/WC_H2O2=0.0 ! -!RO2T/MEOH=0.0 +!WR_CO2/WC_NO=0.0 ! -!RO2T/ETOH=+TPK%CF2*K053*<OH> - PJAC(:,85,33)=+TPK%CF2*TPK%K053(:)*PCONC(:,15) +!WR_CO2/WC_NO2=0.0 ! -!RO2T/ALCH=+K069*<OH> - PJAC(:,85,34)=+TPK%K069(:)*PCONC(:,15) +!WR_CO2/WC_NO3=0.0 ! -!RO2T/ISOP=+K064*<OH>+K065*<NO3>+0.366*K066*<O3> - PJAC(:,85,35)=+TPK%K064(:)*PCONC(:,15)+TPK%K065(:)*PCONC(:,8)+0.366*TPK%K066(:& -&)*PCONC(:,3) +!WR_CO2/WC_N2O5=0.0 ! -!RO2T/BIOL=+K084*<OH>+K085*<NO3>+0.445*K086*<O3> - PJAC(:,85,36)=+TPK%K084(:)*PCONC(:,15)+TPK%K085(:)*PCONC(:,8)+0.445*TPK%K086(:& -&)*PCONC(:,3) +!WR_CO2/WC_HONO=0.0 ! -!RO2T/BIOH=+K088*<OH>+K089*<NO3>+0.89*K090*<O3> - PJAC(:,85,37)=+TPK%K088(:)*PCONC(:,15)+TPK%K089(:)*PCONC(:,8)+0.89*TPK%K090(:)& -&*PCONC(:,3) +!WR_CO2/WC_HNO3=0.0 ! -!RO2T/MTBE=+K068*<OH> - PJAC(:,85,38)=+TPK%K068(:)*PCONC(:,15) +!WR_CO2/WC_HNO4=0.0 ! -!RO2T/MVK=+K272*<OH>+0.28*K281*<O3>+0.3*K283*<O> - PJAC(:,85,39)=+TPK%K272(:)*PCONC(:,15)+0.28*TPK%K281(:)*PCONC(:,3)+0.3*TPK%K28& -&3(:)*TPK%O(:) +!WR_CO2/WC_NH3=0.0 ! -!RO2T/MCR=+K273*<OH>+K275*<NO3>+0.41*K282*<O3>+0.15*K284*<O> - PJAC(:,85,40)=+TPK%K273(:)*PCONC(:,15)+TPK%K275(:)*PCONC(:,8)+0.41*TPK%K282(:)& -&*PCONC(:,3)+0.15*TPK%K284(:)*TPK%O(:) +!WR_CO2/WC_OH=0.0 ! -!RO2T/MGLY=+K274*<OH>+K276+K278*<NO3> - PJAC(:,85,41)=+TPK%K274(:)*PCONC(:,15)+TPK%K276(:)+TPK%K278(:)*PCONC(:,8) +!WR_CO2/WC_HO2=0.0 ! -!RO2T/GLY=0.0 +!WR_CO2/WC_CO2=0.0 ! -!RO2T/ORA1=0.0 +!WR_CO2/WC_SO2=0.0 ! -!RO2T/ORA2=0.0 +!WR_CO2/WC_SULF=0.0 ! -!RO2T/ACID=0.0 +!WR_CO2/WC_HCHO=0.0 ! -!RO2T/UR28=0.0 +!WR_CO2/WC_ORA1=0.0 ! -!RO2T/UR21=0.0 +!WR_CO2/WC_ORA2=0.0 ! -!RO2T/URG2=0.0 +!WR_CO2/WC_MO2=0.0 ! -!RO2T/UR26=0.0 +!WR_CO2/WC_OP1=0.0 ! -!RO2T/RPG2=0.0 +!WR_CO2/WC_ASO3=0.0 ! -!RO2T/RP18=0.0 +!WR_CO2/WC_ASO4=0.0 ! -!RO2T/RPG3=0.0 +!WR_CO2/WC_ASO5=0.0 ! -!RO2T/URG4=0.0 +!WR_CO2/WC_AHSO5=0.0 ! -!RO2T/UR8=0.0 +!WR_CO2/WC_AHMS=0.0 ! -!RO2T/UR17=0.0 +!WR_CO2/WR_O3=0.0 ! -!RO2T/UR7=0.0 +!WR_CO2/WR_H2O2=0.0 ! -!RO2T/RPR3=+K312*<OH>+K313*<NO3> - PJAC(:,85,57)=+TPK%K312(:)*PCONC(:,15)+TPK%K313(:)*PCONC(:,8) +!WR_CO2/WR_NO=0.0 ! -!RO2T/URG6=0.0 +!WR_CO2/WR_NO2=0.0 ! -!RO2T/UR22=0.0 +!WR_CO2/WR_NO3=0.0 ! -!RO2T/URG7=0.0 +!WR_CO2/WR_N2O5=0.0 ! -!RO2T/RPR4=0.0 +!WR_CO2/WR_HONO=0.0 ! -!RO2T/RPR7=0.0 +!WR_CO2/WR_HNO3=0.0 ! -!RO2T/RPG7=0.0 +!WR_CO2/WR_HNO4=0.0 ! -!RO2T/URG8=0.0 +!WR_CO2/WR_NH3=0.0 ! -!RO2T/UR19=0.0 +!WR_CO2/WR_OH=+KR20*<WR_ORA1> + PJAC(:,79,77)=+TPK%KR20(:)*PCONC(:,83) ! -!RO2T/URG9=0.0 +!WR_CO2/WR_HO2=0.0 ! -!RO2T/AP7=0.0 +!WR_CO2/WR_CO2=-KTR33 + PJAC(:,79,79)=-TPK%KTR33(:) ! -!RO2T/URG10=0.0 +!WR_CO2/WR_SO2=0.0 ! -!RO2T/RPR1=+K304*<OH>+K307*<NO3>+K308 - PJAC(:,85,69)=+TPK%K304(:)*PCONC(:,15)+TPK%K307(:)*PCONC(:,8)+TPK%K308(:) +!WR_CO2/WR_SULF=0.0 ! -!RO2T/RPR5=0.0 +!WR_CO2/WR_HCHO=0.0 ! -!RO2T/RPR8=+K324*<OH>+K327*<NO3>+K329+K330 - PJAC(:,85,71)=+TPK%K324(:)*PCONC(:,15)+TPK%K327(:)*PCONC(:,8)+TPK%K329(:)+TPK%& -&K330(:) +!WR_CO2/WR_ORA1=+KR20*<WR_OH> + PJAC(:,79,83)=+TPK%KR20(:)*PCONC(:,77) ! -!RO2T/RP10=0.0 +!WR_CO2/WR_ORA2=0.0 ! -!RO2T/RP11=0.0 +!WR_CO2/WR_MO2=0.0 ! -!RO2T/RP16=+K305*<OH>+K338*<NO3> - PJAC(:,85,74)=+TPK%K305(:)*PCONC(:,15)+TPK%K338(:)*PCONC(:,8) +!WR_CO2/WR_OP1=0.0 ! -!RO2T/RPRL=0.0 +!WR_CO2/WR_ASO3=0.0 ! -!RO2T/APAN=+1.0000000*K139 - PJAC(:,85,76)=+1.0000000*TPK%K139(:) +!WR_CO2/WR_ASO4=0.0 ! -!RO2T/PAN1=+K135 - PJAC(:,85,77)=+TPK%K135(:) +!WR_CO2/WR_ASO5=0.0 ! -!RO2T/PAN2=+K136 - PJAC(:,85,78)=+TPK%K136(:) +!WR_CO2/WR_AHSO5=0.0 ! -!RO2T/PAN3=+K137 - PJAC(:,85,79)=+TPK%K137(:) +!WR_CO2/WR_AHMS=0.0 ! -!RO2T/PAN4=+K141 - PJAC(:,85,80)=+TPK%K141(:) +!WR_SO2/O3=0.0 ! -!RO2T/PAN6=+K140 - PJAC(:,85,81)=+TPK%K140(:) +!WR_SO2/H2O2=0.0 ! -!RO2T/PAN7=+K343 - PJAC(:,85,82)=+TPK%K343(:) +!WR_SO2/NO=0.0 ! -!RO2T/PAN8=+K317 - PJAC(:,85,83)=+TPK%K317(:) +!WR_SO2/NO2=0.0 ! -!RO2T/PN10=+K138 - PJAC(:,85,84)=+TPK%K138(:) +!WR_SO2/NO3=0.0 ! -!RO2T/RO2T=-K094*<HO2>-K095*<NO>+K096*<RO2T>+K096*<RO2T>-K096*<RO2T>-K096*<RO2T -!>-K096*<RO2T>-K096*<RO2T>+K111*<RO21>-K111*<RO21>+K114*<RO22>-K114*<RO22>+K117 -!*<RO23>-K117*<RO23>+K120*<RO24>-K120*<RO24>+K123*<RO25>-K123*<RO25>+2.*K143*<R -!O26>-K143*<RO26>+2.*K145*<RO27>-K145*<RO27>+2.*K149*<RO28>-K149*<RO28>+K151*<R -!O29>-K151*<RO29>+K154*<RO210>-K154*<RO210>+K157*<RO211>-K157*<RO211>+K160*<RO2 -!12>-K160*<RO212>+2.*K163*<RO213>-K163*<RO213>+2.*K167*<RO239>-K167*<RO239>+2.* -!K169*<RO214>-K169*<RO214>+K172*<RO215>-K172*<RO215>+2.*K175*<RO216>-K175*<RO21 -!6>+K178*<RO217>-K178*<RO217>+K181*<RO218>-K181*<RO218>+K184*<RO219>-K184*<RO21 -!9>+2.*K187*<RO220>-K187*<RO220>+K190*<RO221>-K190*<RO221>+K193*<RO222>-K193*<R -!O222>+K196*<RO223>-K196*<RO223>+K199*<RO224>-K199*<RO224>+K202*<RO225>-K202*<R -!O225>+2.*K205*<RO226>-K205*<RO226>+K208*<RO227>-K208*<RO227>+K211*<RO228>-K211 -!*<RO228>+2.*K214*<RO229>-K214*<RO229>+2.*K217*<RO240>-K217*<RO240>+2.*K219*<RO -!230>-K219*<RO230>+K222*<RO231>-K222*<RO231>+2.*K225*<RO232>-K225*<RO232>+K228* -!<RO241>-K228*<RO241>+K232*<RO233>-K232*<RO233>+K235*<RO242>-K235*<RO242>+K239* -!<RO234>-K239*<RO234>+K242*<RO243>-K242*<RO243>+K246*<RO235>-K246*<RO235>+K249* -!<RO244>-K249*<RO244>+K253*<RO236>-K253*<RO236>+K256*<RO245>-K256*<RO245>+K260* -!<RO237>-K260*<RO237>+K263*<RO246>-K263*<RO246>+K267*<RO238>-K267*<RO238>+K270* -!<RO247>-K270*<RO247>+2.*K280*<RO248>-K280*<RO248>+K286*<RO249>-K286*<RO249>+2. -!*K290*<RO250>-K290*<RO250>-K293*<RO251>-K296*<RO252>+K299*<RO253>-K299*<RO253> -!+K302*<RO254>-K302*<RO254>+2.*K311*<RO255>-K311*<RO255>+K319*<RO256>-K319*<RO2 -!56>+2.*K333*<RO257>-K333*<RO257>+K342*<RO258>-K342*<RO258> - PJAC(:,85,85)=-TPK%K094(:)*PCONC(:,10)-TPK%K095(:)*PCONC(:,1)+TPK%K096(:)*PCON& -&C(:,85)+TPK%K096(:)*PCONC(:,85)-TPK%K096(:)*PCONC(:,85)-TPK%K096(:)*PCONC(:,85& -&)-TPK%K096(:)*PCONC(:,85)-TPK%K096(:)*PCONC(:,85)+TPK%K111(:)*PCONC(:,86)-TPK%& -&K111(:)*PCONC(:,86)+TPK%K114(:)*TPK%RO22(:)-TPK%K114(:)*TPK%RO22(:)+TPK%K117(:& -&)*TPK%RO23(:)-TPK%K117(:)*TPK%RO23(:)+TPK%K120(:)*TPK%RO24(:)-TPK%K120(:)*TPK%& -&RO24(:)+TPK%K123(:)*PCONC(:,87)-TPK%K123(:)*PCONC(:,87)+2.*TPK%K143(:)*TPK%RO2& -&6(:)-TPK%K143(:)*TPK%RO26(:)+2.*TPK%K145(:)*TPK%RO27(:)-TPK%K145(:)*TPK%RO27(:& -&)+2.*TPK%K149(:)*TPK%RO28(:)-TPK%K149(:)*TPK%RO28(:)+TPK%K151(:)*TPK%RO29(:)-T& -&PK%K151(:)*TPK%RO29(:)+TPK%K154(:)*TPK%RO210(:)-TPK%K154(:)*TPK%RO210(:)+TPK%K& -&157(:)*TPK%RO211(:)-TPK%K157(:)*TPK%RO211(:)+TPK%K160(:)*TPK%RO212(:)-TPK%K160& -&(:)*TPK%RO212(:)+2.*TPK%K163(:)*TPK%RO213(:)-TPK%K163(:)*TPK%RO213(:)+2.*TPK%K& -&167(:)*TPK%RO239(:)-TPK%K167(:)*TPK%RO239(:)+2.*TPK%K169(:)*TPK%RO214(:)-TPK%K& -&169(:)*TPK%RO214(:)+TPK%K172(:)*TPK%RO215(:)-TPK%K172(:)*TPK%RO215(:)+2.*TPK%K& -&175(:)*TPK%RO216(:)-TPK%K175(:)*TPK%RO216(:)+TPK%K178(:)*TPK%RO217(:)-TPK%K178& -&(:)*TPK%RO217(:)+TPK%K181(:)*TPK%RO218(:)-TPK%K181(:)*TPK%RO218(:)+TPK%K184(:)& -&*TPK%RO219(:)-TPK%K184(:)*TPK%RO219(:)+2.*TPK%K187(:)*TPK%RO220(:)-TPK%K187(:)& -&*TPK%RO220(:)+TPK%K190(:)*TPK%RO221(:)-TPK%K190(:)*TPK%RO221(:)+TPK%K193(:)*TP& -&K%RO222(:)-TPK%K193(:)*TPK%RO222(:)+TPK%K196(:)*TPK%RO223(:)-TPK%K196(:)*TPK%R& -&O223(:)+TPK%K199(:)*TPK%RO224(:)-TPK%K199(:)*TPK%RO224(:)+TPK%K202(:)*TPK%RO22& -&5(:)-TPK%K202(:)*TPK%RO225(:)+2.*TPK%K205(:)*TPK%RO226(:)-TPK%K205(:)*TPK%RO22& -&6(:)+TPK%K208(:)*TPK%RO227(:)-TPK%K208(:)*TPK%RO227(:)+TPK%K211(:)*TPK%RO228(:& -&)-TPK%K211(:)*TPK%RO228(:)+2.*TPK%K214(:)*TPK%RO229(:)-TPK%K214(:)*TPK%RO229(:& -&)+2.*TPK%K217(:)*TPK%RO240(:)-TPK%K217(:)*TPK%RO240(:)+2.*TPK%K219(:)*TPK%RO23& -&0(:)-TPK%K219(:)*TPK%RO230(:)+TPK%K222(:)*TPK%RO231(:)-TPK%K222(:)*TPK%RO231(:& -&)+2.*TPK%K225(:)*TPK%RO232(:)-TPK%K225(:)*TPK%RO232(:)+TPK%K228(:)*TPK%RO241(:& -&)-TPK%K228(:)*TPK%RO241(:)+TPK%K232(:)*TPK%RO233(:)-TPK%K232(:)*TPK%RO233(:)+T& -&PK%K235(:)*TPK%RO242(:)-TPK%K235(:)*TPK%RO242(:)+TPK%K239(:)*TPK%RO234(:)-TPK%& -&K239(:)*TPK%RO234(:)+TPK%K242(:)*TPK%RO243(:)-TPK%K242(:)*TPK%RO243(:)+TPK%K24& -&6(:)*TPK%RO235(:)-TPK%K246(:)*TPK%RO235(:)+TPK%K249(:)*TPK%RO244(:)-TPK%K249(:& -&)*TPK%RO244(:)+TPK%K253(:)*TPK%RO236(:)-TPK%K253(:)*TPK%RO236(:)+TPK%K256(:)*T& -&PK%RO245(:)-TPK%K256(:)*TPK%RO245(:)+TPK%K260(:)*TPK%RO237(:)-TPK%K260(:)*TPK%& -&RO237(:)+TPK%K263(:)*TPK%RO246(:)-TPK%K263(:)*TPK%RO246(:)+TPK%K267(:)*TPK%RO2& -&38(:)-TPK%K267(:)*TPK%RO238(:)+TPK%K270(:)*TPK%RO247(:)-TPK%K270(:)*TPK%RO247(& -&:)+2.*TPK%K280(:)*TPK%RO248(:)-TPK%K280(:)*TPK%RO248(:)+TPK%K286(:)*TPK%RO249(& -&:)-TPK%K286(:)*TPK%RO249(:)+2.*TPK%K290(:)*TPK%RO250(:)-TPK%K290(:)*TPK%RO250(& -&:)-TPK%K293(:)*TPK%RO251(:)-TPK%K296(:)*TPK%RO252(:)+TPK%K299(:)*TPK%RO253(:)-& -&TPK%K299(:)*TPK%RO253(:)+TPK%K302(:)*TPK%RO254(:)-TPK%K302(:)*TPK%RO254(:)+2.*& -&TPK%K311(:)*TPK%RO255(:)-TPK%K311(:)*TPK%RO255(:)+TPK%K319(:)*TPK%RO256(:)-TPK& -&%K319(:)*TPK%RO256(:)+2.*TPK%K333(:)*TPK%RO257(:)-TPK%K333(:)*TPK%RO257(:)+TPK& -&%K342(:)*TPK%RO258(:)-TPK%K342(:)*TPK%RO258(:) -! -!RO2T/RO21=+K111*<RO2T>-K111*<RO2T> - PJAC(:,85,86)=+TPK%K111(:)*PCONC(:,85)-TPK%K111(:)*PCONC(:,85) -! -!RO2T/RO25=+K123*<RO2T>-K123*<RO2T> - PJAC(:,85,87)=+TPK%K123(:)*PCONC(:,85)-TPK%K123(:)*PCONC(:,85) +!WR_SO2/N2O5=0.0 ! -RETURN -END SUBROUTINE SUBJ16 +!WR_SO2/HONO=0.0 ! -SUBROUTINE SUBJ17 +!WR_SO2/HNO3=0.0 ! -!Indices 86 a 87 +!WR_SO2/HNO4=0.0 ! +!WR_SO2/NH3=0.0 ! -!RO21/NO=-K110*<RO21>+K147*<RO28> - PJAC(:,86,1)=-TPK%K110(:)*PCONC(:,86)+TPK%K147(:)*TPK%RO28(:) +!WR_SO2/SO2=+KTR14 + PJAC(:,80,11)=+TPK%KTR14(:) ! -!RO21/NO2=0.0 +!WR_SO2/SULF=0.0 ! -!RO21/O3=0.0 +!WR_SO2/CO=0.0 ! -!RO21/HONO=0.0 +!WR_SO2/OH=0.0 ! -!RO21/HNO3=0.0 +!WR_SO2/HO2=0.0 ! -!RO21/HNO4=0.0 +!WR_SO2/CH4=0.0 ! -!RO21/N2O5=0.0 +!WR_SO2/ETH=0.0 ! -!RO21/NO3=0.0 +!WR_SO2/ALKA=0.0 ! -!RO21/NH3=0.0 +!WR_SO2/ALKE=0.0 ! -!RO21/HO2=-K112*<RO21> - PJAC(:,86,10)=-TPK%K112(:)*PCONC(:,86) +!WR_SO2/BIO=0.0 ! -!RO21/CO=0.0 +!WR_SO2/ARO=0.0 ! -!RO21/H2O2=0.0 +!WR_SO2/HCHO=0.0 ! -!RO21/SO2=0.0 +!WR_SO2/ALD=0.0 ! -!RO21/H2SO4=0.0 +!WR_SO2/KET=0.0 ! -!RO21/OH=+K043*<CH4> - PJAC(:,86,15)=+TPK%K043(:)*TPK%CH4(:) +!WR_SO2/CARBO=0.0 ! -!RO21/ETHE=+0.6*K052*<O> - PJAC(:,86,16)=+0.6*TPK%K052(:)*TPK%O(:) +!WR_SO2/ONIT=0.0 ! -!RO21/OLEL=0.0 +!WR_SO2/PAN=0.0 ! -!RO21/OLEH=0.0 +!WR_SO2/OP1=0.0 ! -!RO21/ALKL=0.0 +!WR_SO2/OP2=0.0 ! -!RO21/ALKM=0.0 +!WR_SO2/ORA1=0.0 ! -!RO21/ALKH=0.0 +!WR_SO2/ORA2=0.0 ! -!RO21/AROH=0.0 +!WR_SO2/MO2=0.0 ! -!RO21/AROL=0.0 +!WR_SO2/ALKAP=0.0 ! -!RO21/AROO=0.0 +!WR_SO2/ALKEP=0.0 ! -!RO21/ARAL=0.0 +!WR_SO2/BIOP=0.0 ! -!RO21/ARAC=0.0 +!WR_SO2/PHO=0.0 ! -!RO21/PAH=0.0 +!WR_SO2/ADD=0.0 ! -!RO21/HCHO=0.0 +!WR_SO2/AROP=0.0 ! -!RO21/ALD2=0.0 +!WR_SO2/CARBOP=0.0 ! -!RO21/KETL=0.0 +!WR_SO2/OLN=0.0 ! -!RO21/KETH=0.0 +!WR_SO2/XO2=0.0 ! -!RO21/MEOH=0.0 +!WR_SO2/WC_O3=0.0 ! -!RO21/ETOH=0.0 +!WR_SO2/WC_H2O2=0.0 ! -!RO21/ALCH=0.0 +!WR_SO2/WC_NO=0.0 ! -!RO21/ISOP=0.0 +!WR_SO2/WC_NO2=0.0 ! -!RO21/BIOL=0.0 +!WR_SO2/WC_NO3=0.0 ! -!RO21/BIOH=0.0 +!WR_SO2/WC_N2O5=0.0 ! -!RO21/MTBE=0.0 +!WR_SO2/WC_HONO=0.0 ! -!RO21/MVK=0.0 +!WR_SO2/WC_HNO3=0.0 ! -!RO21/MCR=0.0 +!WR_SO2/WC_HNO4=0.0 ! -!RO21/MGLY=0.0 +!WR_SO2/WC_NH3=0.0 ! -!RO21/GLY=0.0 +!WR_SO2/WC_OH=0.0 ! -!RO21/ORA1=0.0 +!WR_SO2/WC_HO2=0.0 ! -!RO21/ORA2=0.0 +!WR_SO2/WC_CO2=0.0 ! -!RO21/ACID=0.0 +!WR_SO2/WC_SO2=0.0 ! -!RO21/UR28=0.0 +!WR_SO2/WC_SULF=0.0 ! -!RO21/UR21=0.0 +!WR_SO2/WC_HCHO=0.0 ! -!RO21/URG2=0.0 +!WR_SO2/WC_ORA1=0.0 ! -!RO21/UR26=0.0 +!WR_SO2/WC_ORA2=0.0 ! -!RO21/RPG2=0.0 +!WR_SO2/WC_MO2=0.0 ! -!RO21/RP18=0.0 +!WR_SO2/WC_OP1=0.0 ! -!RO21/RPG3=0.0 +!WR_SO2/WC_ASO3=0.0 ! -!RO21/URG4=0.0 +!WR_SO2/WC_ASO4=0.0 ! -!RO21/UR8=0.0 +!WR_SO2/WC_ASO5=0.0 ! -!RO21/UR17=0.0 +!WR_SO2/WC_AHSO5=0.0 ! -!RO21/UR7=0.0 +!WR_SO2/WC_AHMS=0.0 ! -!RO21/RPR3=0.0 +!WR_SO2/WR_O3=-KR29*<WR_SO2> + PJAC(:,80,67)=-TPK%KR29(:)*PCONC(:,80) ! -!RO21/URG6=0.0 +!WR_SO2/WR_H2O2=-KR30*<WR_SO2> + PJAC(:,80,68)=-TPK%KR30(:)*PCONC(:,80) ! -!RO21/UR22=0.0 +!WR_SO2/WR_NO=0.0 ! -!RO21/URG7=0.0 +!WR_SO2/WR_NO2=0.0 ! -!RO21/RPR4=0.0 +!WR_SO2/WR_NO3=-KR16*<WR_SO2> + PJAC(:,80,71)=-TPK%KR16(:)*PCONC(:,80) ! -!RO21/RPR7=0.0 +!WR_SO2/WR_N2O5=0.0 ! -!RO21/RPG7=0.0 +!WR_SO2/WR_HONO=0.0 ! -!RO21/URG8=0.0 +!WR_SO2/WR_HNO3=0.0 ! -!RO21/UR19=0.0 +!WR_SO2/WR_HNO4=-KR12*<WR_SO2> + PJAC(:,80,75)=-TPK%KR12(:)*PCONC(:,80) ! -!RO21/URG9=0.0 +!WR_SO2/WR_NH3=0.0 ! -!RO21/AP7=0.0 +!WR_SO2/WR_OH=-KR7*<WR_SO2>+KR23*<WR_AHMS> + PJAC(:,80,77)=-TPK%KR7(:)*PCONC(:,80)+TPK%KR23(:)*PCONC(:,91) ! -!RO21/URG10=0.0 +!WR_SO2/WR_HO2=0.0 ! -!RO21/RPR1=0.0 +!WR_SO2/WR_CO2=0.0 ! -!RO21/RPR5=0.0 +!WR_SO2/WR_SO2=-KTR34-KR7*<WR_OH>-KR12*<WR_HNO4>-KR16*<WR_NO3>-KR18*<WR_MO2>-KR +!21*<WR_HCHO>-KR27*<WR_AHSO5>-KR29*<WR_O3>-KR30*<WR_H2O2> + PJAC(:,80,80)=-TPK%KTR34(:)-TPK%KR7(:)*PCONC(:,77)-TPK%KR12(:)*PCONC(:,75)-TPK& +&%KR16(:)*PCONC(:,71)-TPK%KR18(:)*PCONC(:,85)-TPK%KR21(:)*PCONC(:,82)-TPK%KR27(& +&:)*PCONC(:,90)-TPK%KR29(:)*PCONC(:,67)-TPK%KR30(:)*PCONC(:,68) ! -!RO21/RPR8=0.0 +!WR_SO2/WR_SULF=0.0 ! -!RO21/RP10=0.0 +!WR_SO2/WR_HCHO=-KR21*<WR_SO2> + PJAC(:,80,82)=-TPK%KR21(:)*PCONC(:,80) ! -!RO21/RP11=0.0 +!WR_SO2/WR_ORA1=0.0 ! -!RO21/RP16=0.0 +!WR_SO2/WR_ORA2=0.0 ! -!RO21/RPRL=0.0 +!WR_SO2/WR_MO2=-KR18*<WR_SO2> + PJAC(:,80,85)=-TPK%KR18(:)*PCONC(:,80) ! -!RO21/APAN=0.0 +!WR_SO2/WR_OP1=0.0 ! -!RO21/PAN1=0.0 +!WR_SO2/WR_ASO3=0.0 ! -!RO21/PAN2=0.0 +!WR_SO2/WR_ASO4=0.0 ! -!RO21/PAN3=0.0 +!WR_SO2/WR_ASO5=0.0 ! -!RO21/PAN4=0.0 +!WR_SO2/WR_AHSO5=-KR27*<WR_SO2> + PJAC(:,80,90)=-TPK%KR27(:)*PCONC(:,80) ! -!RO21/PAN6=0.0 +!WR_SO2/WR_AHMS=+KR22+KR23*<WR_OH> + PJAC(:,80,91)=+TPK%KR22(:)+TPK%KR23(:)*PCONC(:,77) ! -!RO21/PAN7=0.0 +RETURN +END SUBROUTINE SUBJ15 ! -!RO21/PAN8=0.0 +SUBROUTINE SUBJ16 ! -!RO21/PN10=0.0 +!Indices 81 a 85 ! -!RO21/RO2T=-K111*<RO21>+K149*<RO28> - PJAC(:,86,85)=-TPK%K111(:)*PCONC(:,86)+TPK%K149(:)*TPK%RO28(:) ! -!RO21/RO21=-K110*<NO>-K111*<RO2T>-K112*<HO2> - PJAC(:,86,86)=-TPK%K110(:)*PCONC(:,1)-TPK%K111(:)*PCONC(:,85)-TPK%K112(:)*PCON& -&C(:,10) +!WR_SULF/O3=0.0 ! -!RO21/RO25=0.0 +!WR_SULF/H2O2=0.0 ! -!RO25/NO=-K122*<RO25>+K125*<RO26> - PJAC(:,87,1)=-TPK%K122(:)*PCONC(:,87)+TPK%K125(:)*TPK%RO26(:) +!WR_SULF/NO=0.0 ! -!RO25/NO2=0.0 +!WR_SULF/NO2=0.0 ! -!RO25/O3=+0.28*K056*<OLEL> - PJAC(:,87,3)=+0.28*TPK%K056(:)*PCONC(:,17) +!WR_SULF/NO3=0.0 ! -!RO25/HONO=0.0 +!WR_SULF/N2O5=0.0 ! -!RO25/HNO3=0.0 +!WR_SULF/HONO=0.0 ! -!RO25/HNO4=0.0 +!WR_SULF/HNO3=0.0 ! -!RO25/N2O5=0.0 +!WR_SULF/HNO4=0.0 ! -!RO25/NO3=0.0 +!WR_SULF/NH3=0.0 ! -!RO25/NH3=0.0 +!WR_SULF/SO2=0.0 ! -!RO25/HO2=-K124*<RO25> - PJAC(:,87,10)=-TPK%K124(:)*PCONC(:,87) +!WR_SULF/SULF=+KTR15 + PJAC(:,81,12)=+TPK%KTR15(:) ! -!RO25/CO=0.0 +!WR_SULF/CO=0.0 ! -!RO25/H2O2=0.0 +!WR_SULF/OH=0.0 ! -!RO25/SO2=0.0 +!WR_SULF/HO2=0.0 ! -!RO25/H2SO4=0.0 +!WR_SULF/CH4=0.0 ! -!RO25/OH=+K058*<ALKL> - PJAC(:,87,15)=+TPK%K058(:)*PCONC(:,19) +!WR_SULF/ETH=0.0 ! -!RO25/ETHE=0.0 +!WR_SULF/ALKA=0.0 ! -!RO25/OLEL=+0.28*K056*<O3>+0.1*K057*<O> - PJAC(:,87,17)=+0.28*TPK%K056(:)*PCONC(:,3)+0.1*TPK%K057(:)*TPK%O(:) +!WR_SULF/ALKE=0.0 ! -!RO25/OLEH=0.0 +!WR_SULF/BIO=0.0 ! -!RO25/ALKL=+K058*<OH> - PJAC(:,87,19)=+TPK%K058(:)*PCONC(:,15) +!WR_SULF/ARO=0.0 ! -!RO25/ALKM=0.0 +!WR_SULF/HCHO=0.0 ! -!RO25/ALKH=0.0 +!WR_SULF/ALD=0.0 ! -!RO25/AROH=0.0 +!WR_SULF/KET=0.0 ! -!RO25/AROL=0.0 +!WR_SULF/CARBO=0.0 ! -!RO25/AROO=0.0 +!WR_SULF/ONIT=0.0 ! -!RO25/ARAL=0.0 +!WR_SULF/PAN=0.0 ! -!RO25/ARAC=0.0 +!WR_SULF/OP1=0.0 ! -!RO25/PAH=0.0 +!WR_SULF/OP2=0.0 ! -!RO25/HCHO=0.0 +!WR_SULF/ORA1=0.0 ! -!RO25/ALD2=+K059 - PJAC(:,87,29)=+TPK%K059(:) +!WR_SULF/ORA2=0.0 ! -!RO25/KETL=+K063 - PJAC(:,87,30)=+TPK%K063(:) +!WR_SULF/MO2=0.0 ! -!RO25/KETH=+K071 - PJAC(:,87,31)=+TPK%K071(:) +!WR_SULF/ALKAP=0.0 ! -!RO25/MEOH=0.0 +!WR_SULF/ALKEP=0.0 ! -!RO25/ETOH=0.0 +!WR_SULF/BIOP=0.0 ! -!RO25/ALCH=0.0 +!WR_SULF/PHO=0.0 ! -!RO25/ISOP=0.0 +!WR_SULF/ADD=0.0 ! -!RO25/BIOL=0.0 +!WR_SULF/AROP=0.0 ! -!RO25/BIOH=0.0 +!WR_SULF/CARBOP=0.0 ! -!RO25/MTBE=0.0 +!WR_SULF/OLN=0.0 ! -!RO25/MVK=0.0 +!WR_SULF/XO2=0.0 ! -!RO25/MCR=0.0 +!WR_SULF/WC_O3=0.0 ! -!RO25/MGLY=0.0 +!WR_SULF/WC_H2O2=0.0 ! -!RO25/GLY=0.0 +!WR_SULF/WC_NO=0.0 ! -!RO25/ORA1=0.0 +!WR_SULF/WC_NO2=0.0 ! -!RO25/ORA2=0.0 +!WR_SULF/WC_NO3=0.0 ! -!RO25/ACID=0.0 +!WR_SULF/WC_N2O5=0.0 ! -!RO25/UR28=0.0 +!WR_SULF/WC_HONO=0.0 ! -!RO25/UR21=0.0 +!WR_SULF/WC_HNO3=0.0 ! -!RO25/URG2=0.0 +!WR_SULF/WC_HNO4=0.0 ! -!RO25/UR26=0.0 +!WR_SULF/WC_NH3=0.0 ! -!RO25/RPG2=0.0 +!WR_SULF/WC_OH=0.0 ! -!RO25/RP18=0.0 +!WR_SULF/WC_HO2=0.0 ! -!RO25/RPG3=0.0 +!WR_SULF/WC_CO2=0.0 ! -!RO25/URG4=0.0 +!WR_SULF/WC_SO2=0.0 ! -!RO25/UR8=0.0 +!WR_SULF/WC_SULF=0.0 ! -!RO25/UR17=0.0 +!WR_SULF/WC_HCHO=0.0 ! -!RO25/UR7=0.0 +!WR_SULF/WC_ORA1=0.0 ! -!RO25/RPR3=0.0 +!WR_SULF/WC_ORA2=0.0 ! -!RO25/URG6=0.0 +!WR_SULF/WC_MO2=0.0 ! -!RO25/UR22=0.0 +!WR_SULF/WC_OP1=0.0 ! -!RO25/URG7=0.0 +!WR_SULF/WC_ASO3=0.0 ! -!RO25/RPR4=0.0 +!WR_SULF/WC_ASO4=0.0 ! -!RO25/RPR7=0.0 +!WR_SULF/WC_ASO5=0.0 ! -!RO25/RPG7=0.0 +!WR_SULF/WC_AHSO5=0.0 ! -!RO25/URG8=0.0 +!WR_SULF/WC_AHMS=0.0 ! -!RO25/UR19=0.0 +!WR_SULF/WR_O3=+KR29*<WR_SO2> + PJAC(:,81,67)=+TPK%KR29(:)*PCONC(:,80) ! -!RO25/URG9=0.0 +!WR_SULF/WR_H2O2=+KR30*<WR_SO2> + PJAC(:,81,68)=+TPK%KR30(:)*PCONC(:,80) ! -!RO25/AP7=0.0 +!WR_SULF/WR_NO=0.0 ! -!RO25/URG10=0.0 +!WR_SULF/WR_NO2=0.0 ! -!RO25/RPR1=0.0 +!WR_SULF/WR_NO3=-KR15*<WR_SULF> + PJAC(:,81,71)=-TPK%KR15(:)*PCONC(:,81) ! -!RO25/RPR5=0.0 +!WR_SULF/WR_N2O5=0.0 ! -!RO25/RPR8=0.0 +!WR_SULF/WR_HONO=0.0 ! -!RO25/RP10=0.0 +!WR_SULF/WR_HNO3=0.0 ! -!RO25/RP11=0.0 +!WR_SULF/WR_HNO4=+KR12*<WR_SO2> + PJAC(:,81,75)=+TPK%KR12(:)*PCONC(:,80) ! -!RO25/RP16=0.0 +!WR_SULF/WR_NH3=0.0 ! -!RO25/RPRL=0.0 +!WR_SULF/WR_OH=0.0 ! -!RO25/APAN=0.0 +!WR_SULF/WR_HO2=0.0 ! -!RO25/PAN1=0.0 +!WR_SULF/WR_CO2=0.0 ! -!RO25/PAN2=0.0 +!WR_SULF/WR_SO2=+KR12*<WR_HNO4>+2.00*KR27*<WR_AHSO5>+KR29*<WR_O3>+KR30*<WR_H2O2 +!> + PJAC(:,81,80)=+TPK%KR12(:)*PCONC(:,75)+2.00*TPK%KR27(:)*PCONC(:,90)+TPK%KR29(:& +&)*PCONC(:,67)+TPK%KR30(:)*PCONC(:,68) ! -!RO25/PAN3=0.0 +!WR_SULF/WR_SULF=-KTR35-KR15*<WR_NO3> + PJAC(:,81,81)=-TPK%KTR35(:)-TPK%KR15(:)*PCONC(:,71) ! -!RO25/PAN4=0.0 +!WR_SULF/WR_HCHO=0.0 ! -!RO25/PAN6=0.0 +!WR_SULF/WR_ORA1=0.0 ! -!RO25/PAN7=0.0 +!WR_SULF/WR_ORA2=0.0 ! -!RO25/PAN8=0.0 +!WR_SULF/WR_MO2=0.0 ! -!RO25/PN10=0.0 +!WR_SULF/WR_OP1=0.0 ! -!RO25/RO2T=-K123*<RO25>+K143*<RO26> - PJAC(:,87,85)=-TPK%K123(:)*PCONC(:,87)+TPK%K143(:)*TPK%RO26(:) +!WR_SULF/WR_ASO3=0.0 ! -!RO25/RO21=0.0 +!WR_SULF/WR_ASO4=+KR28 + PJAC(:,81,88)=+TPK%KR28(:) ! -!RO25/RO25=-K122*<NO>-K123*<RO2T>-K124*<HO2> - PJAC(:,87,87)=-TPK%K122(:)*PCONC(:,1)-TPK%K123(:)*PCONC(:,85)-TPK%K124(:)*PCON& -&C(:,10) +!WR_SULF/WR_ASO5=0.0 ! -RETURN -END SUBROUTINE SUBJ17 +!WR_SULF/WR_AHSO5=+2.00*KR27*<WR_SO2> + PJAC(:,81,90)=+2.00*TPK%KR27(:)*PCONC(:,80) ! -END SUBROUTINE CH_JAC_GAZ +!WR_SULF/WR_AHMS=0.0 ! +!WR_HCHO/O3=0.0 ! -!======================================================================== +!WR_HCHO/H2O2=0.0 ! -!! ################## - MODULE MODI_CH_JAC_AQ -!! ################## -INTERFACE -SUBROUTINE CH_JAC_AQ(PTIME,PCONC,PJAC,KMI,KVECNPT,KEQ) -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KEQ) :: PJAC -INTEGER, INTENT(IN) :: KMI -END SUBROUTINE CH_JAC_AQ -END INTERFACE -END MODULE MODI_CH_JAC_AQ +!WR_HCHO/NO=0.0 ! -!======================================================================== +!WR_HCHO/NO2=0.0 ! -!! #################### - SUBROUTINE CH_JAC_AQ(PTIME,PCONC,PJAC,KMI,KVECNPT,KEQ) -!! #################### -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -!!*** *CH_JAC* -!! -!! PURPOSE -!! ------- -! calculation of the JACOBIAN matrix -!! -!!** METHOD -!! ------ -!! The Jacobian matrix J is calculated as defined by the chemical -!! reaction mechanism. -!! The reaction rates and other user-defined auxiliary variables are -!! transfered in the TYPE(CCSTYPE) variable TPK%. -!! -!! REFERENCE -!! --------- -!! none -!! -!! AUTHOR -!! ------ -!! Karsten Suhre (LA) -!! -!! MODIFICATIONS -!! ------------- -!! Original 26/07/96 -!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) -!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) -!! -!!---------------------------------------------------------------------- -!! -!! EXTERNAL -!! -------- -!! none -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -USE MODD_CH_M9_SCHEME -!! -!! EXPLICIT ARGUMENTS -!! ------------------ -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KEQ) :: PJAC -INTEGER, INTENT(IN) :: KMI +!WR_HCHO/NO3=0.0 ! -TYPE(CCSTYPE), POINTER :: TPK -TPK=>TACCS(KMI) +!WR_HCHO/N2O5=0.0 ! -! /BEGIN_CODE/ -TPK%OSD = ( +TPK%K016*PCONC(:,JP_O3) ) / & - ( +TPK%K017*TPK%H2O+TPK%K018A*TPK%N2(:)+TPK%K018B*TPK%O2(:) ) -! -TPK%O = ( +TPK%K001*PCONC(:,JP_NO2)+TPK%K014*PCONC(:,JP_NO3)+TPK%& -&K015*PCONC(:,JP_O3)+TPK%K018A*TPK%OSD*TPK%N2(:)+TPK%K018B*TPK%OSD*TPK%O2(:) ) / & -( +TPK%K002*TPK%O2(:)+TPK%K003*PCONC(:,JP_NO2)+TPK%K004*PCONC(:,JP_NO2)+TPK%K034*& -PCONC(:,JP_O3)+TPK%K038*PCONC(:,JP_NO)+TPK%K052*PCONC(:,JP_ETHE)+& -&TPK%K057*PCONC(:,JP_OLEL)+TPK%K067*PCONC(:,JP_ISOP)+TPK%K077*PCONC(:,& -&JP_OLEH)+TPK%K087*PCONC(:,JP_BIOL)+TPK%K091*PCONC(:,JP_BIOH)+TPK%K283& -&*PCONC(:,JP_MVK)+TPK%K284*PCONC(:,JP_MCR) ) -! -TPK%RO225 = ( TPK%K085*PCONC(:,JP_BIOL)*PCONC(:,JP_NO3) ) / & -( +TPK%K201*PCONC(:,JP_NO)+TPK%K202*PCONC(:,JP_RO2T)+TPK%K203*PCONC(:,JP_HO2)) -! -TPK%RO228 = ( TPK%K089*PCONC(:,JP_BIOH)*PCONC(:,JP_NO3) ) / & -( +TPK%K210*PCONC(:,JP_NO)+TPK%K211*PCONC(:,JP_RO2T)+TPK%K212*PCONC(:,JP_HO2)) - +!WR_HCHO/HONO=0.0 ! -TPK%RO253 = ( +0.41*TPK%K282*PCONC(:,JP_MCR)*PCONC(:,JP_O3) ) / & -( +TPK%K297*PCONC(:,JP_NO)+TPK%K298*PCONC(:,JP_HO2)+TPK%K299*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO254 = ( +TPK%K140*PCONC(:,JP_PAN6)+TPK%K297*TPK%RO253*& -&PCONC(:,JP_NO)+TPK%K298*TPK%RO253*PCONC(:,JP_HO2)+TPK%K299*& -&TPK%RO253*PCONC(:,JP_RO2T) ) / & -( +TPK%K131*PCONC(:,JP_NO2)+TPK%K300*PCONC(:,JP_NO)+TPK%K301*PCONC(& -&:,JP_HO2)+TPK%K302*PCONC(:,JP_RO2T) ) -! -TPK%RO213 = ( +0.271*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3) ) / & -( +TPK%K162*PCONC(:,JP_NO)+TPK%K163*PCONC(:,JP_RO2T)+TPK%K164*PCONC& -&(:,JP_HO2) ) -! -TPK%RO239 = ( +TPK%K137*PCONC(:,JP_PAN3)+TPK%K162*TPK%RO213*& -&PCONC(:,JP_NO)+TPK%K163*TPK%RO213*PCONC(:,JP_RO2T)+TPK%K164*TPK%RO213*PCONC(:,JP_HO2) ) / & -( +TPK%K128*PCONC(:,JP_NO2)+TPK%K165*PCONC(:,JP_NO)+TPK%K166*PCONC(& -&:,JP_HO2)+TPK%K167*PCONC(:,JP_RO2T) ) -! -TPK%RO248 = ( +TPK%K141*PCONC(:,JP_PAN4)+TPK%K274*PCONC(:,JP_MGLY)*P& -&CONC(:,JP_OH)+TPK%K278*PCONC(:,JP_MGLY)*PCONC(:,JP_NO3) ) / & -( +TPK%K129*PCONC(:,JP_NO2)+TPK%K277*PCONC(:,JP_NO)+TPK%K279*PCONC(& -&:,JP_HO2)+TPK%K280*PCONC(:,JP_RO2T) ) -! -TPK%RO249 = ( +TPK%K272*PCONC(:,JP_MVK)*PCONC(:,JP_OH) ) / & -( +TPK%K285*PCONC(:,JP_NO)+TPK%K286*PCONC(:,JP_RO2T)+TPK%K287*PCONC& -&(:,JP_HO2) ) -! -TPK%RO250 = ( +0.3750353*TPK%K139*PCONC(:,JP_APAN)+TPK%CF46*TPK%K2& -&73*PCONC(:,JP_MCR)*PCONC(:,JP_OH)+TPK%CF46*TPK%K275*PCONC(:,JP_MCR)*PCONC& -&(:,JP_NO3) ) / & -( +TPK%K130*PCONC(:,JP_NO2)+TPK%K288*PCONC(:,JP_NO)+TPK%K289*PCONC(& -&:,JP_HO2)+TPK%K290*PCONC(:,JP_RO2T) ) -! -TPK%RO214 = ( +0.095*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3)+TPK%K1& -&65*TPK%RO239*PCONC(:,JP_NO)+TPK%K167*TPK%RO239*PCONC(:,JP_R& -&O2T)+TPK%K288*TPK%RO250*PCONC(:,JP_NO)+TPK%K290*TPK%RO250& -&*PCONC(:,JP_RO2T) ) / & -( +TPK%K168*PCONC(:,JP_NO)+TPK%K169*PCONC(:,JP_RO2T)+TPK%K170*PCONC& -&(:,JP_HO2) ) -! -TPK%RO251 = ( +TPK%CF47*TPK%K273*PCONC(:,JP_MCR)*PCONC(:,JP_OH) ) / & -( +TPK%K291*PCONC(:,JP_NO)+TPK%K292*PCONC(:,JP_HO2)+TPK%K293*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO252 = ( +TPK%CF47*TPK%K275*PCONC(:,JP_MCR)*PCONC(:,JP_NO3) ) /& -( +TPK%K294*PCONC(:,JP_NO)+TPK%K295*PCONC(:,JP_HO2)+TPK%K296*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO258 = ( +TPK%K138*PCONC(:,JP_PN10)+TPK%K305*PCONC(:,JP_RP16)*P& -&CONC(:,JP_OH)+TPK%K338*PCONC(:,JP_RP16)*PCONC(:,JP_NO3) ) / & -( +TPK%K134*PCONC(:,JP_NO2)+TPK%K340*PCONC(:,JP_NO)+TPK%K341*PCONC(& -&:,JP_HO2)+TPK%K342*PCONC(:,JP_RO2T) ) -! -TPK%RO255 = ( +TPK%K304*PCONC(:,JP_RPR1)*PCONC(:,JP_OH)+TPK%K307*PCO& -&NC(:,JP_RPR1)*PCONC(:,JP_NO3)+TPK%K343*PCONC(:,JP_PAN7) ) / & -( +TPK%K132*PCONC(:,JP_NO2)+TPK%K309*PCONC(:,JP_NO)+TPK%K310*PCONC(& -&:,JP_HO2)+TPK%K311*PCONC(:,JP_RO2T) ) -! -TPK%RO256 = ( +TPK%K312*PCONC(:,JP_RPR3)*PCONC(:,JP_OH)+TPK%K313*PCO& -&NC(:,JP_RPR3)*PCONC(:,JP_NO3)+TPK%K317*PCONC(:,JP_PAN8) ) / & -( +TPK%K315*PCONC(:,JP_NO)+TPK%K316*PCONC(:,JP_NO2)+TPK%K318*PCONC(& -&:,JP_HO2)+TPK%K319*PCONC(:,JP_RO2T) ) -! -TPK%RO257 = ( +0.6249651*TPK%K139*PCONC(:,JP_APAN)+TPK%K324*PCONC(:,& -&JP_RPR8)*PCONC(:,JP_OH)+TPK%K327*PCONC(:,JP_RPR8)*PCONC(:,JP_NO3)+TPK%K3& -&30*PCONC(:,JP_RPR8) ) / & -( +TPK%K133*PCONC(:,JP_NO2)+TPK%K331*PCONC(:,JP_NO)+TPK%K332*PCONC(& -&:,JP_HO2)+TPK%K333*PCONC(:,JP_RO2T) ) -! -TPK%RO29 = ( +0.66*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH)+TPK%K329& -&*PCONC(:,JP_RPR8)+TPK%K331*TPK%RO257*PCONC(:,JP_NO)+TPK%K333*TPK%RO257*& -PCONC(:,JP_RO2T) ) / & -( +TPK%K150*PCONC(:,JP_NO)+TPK%K151*PCONC(:,JP_RO2T)+TPK%K152*PCONC& -&(:,JP_HO2) ) -! -!avoid division by zero in prodloss -WHERE (PCONC(:,JP_NO2)>0.) - TPK%RAD1 = ( +TPK%K072*PCONC(:,JP_AROO)*PCONC(:,JP_NO3) ) / & - ( +TPK%K103*PCONC(:,JP_NO2) ) -! - TPK%RAD8 = ( +TPK%K320*PCONC(:,JP_RPR4)*PCONC(:,JP_NO3) ) / & - ( +TPK%K321*PCONC(:,JP_NO2) ) -ELSEWHERE - TPK%RAD1 = 0. - TPK%RAD8 = 0. -ENDWHERE +!WR_HCHO/HNO3=0.0 ! -TPK%RAD2 = ( +0.74*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & -( +TPK%K097+TPK%K104*PCONC(:,JP_NO2) ) -! -TPK%RAD3 = ( +0.74*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & -( +TPK%K098+TPK%K105*PCONC(:,JP_NO2) ) -! -TPK%RAD4 = ( +0.84*TPK%K080*PCONC(:,JP_AROH)*PCONC(:,JP_OH) ) / & -( +TPK%K099+TPK%K106*PCONC(:,JP_NO2) ) -! -TPK%RAD5 = ( +TPK%CF40*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) / & -( +TPK%K100+TPK%K107*PCONC(:,JP_NO2) ) -! -TPK%RAD6 = ( +0.74*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & -( +TPK%K101+TPK%K108*PCONC(:,JP_NO2) ) -! -TPK%RAD7 = ( +0.74*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & -( +TPK%K102+TPK%K109*PCONC(:,JP_NO2) ) -! -TPK%RO22 = ( +TPK%K049*PCONC(:,JP_ETHE)*PCONC(:,JP_OH)+TPK%CF2*TPK& -&%K053*PCONC(:,JP_ETOH)*PCONC(:,JP_OH)+TPK%K054*PCONC(:,JP_OLEL)*PCONC(:,JP_& -&OH)+TPK%K069*PCONC(:,JP_ALCH)*PCONC(:,JP_OH) ) / & -( +TPK%K113*PCONC(:,JP_NO)+TPK%K114*PCONC(:,JP_RO2T)+TPK%K115*PCONC& -&(:,JP_HO2) ) -! -TPK%RO23 = ( +TPK%K050*PCONC(:,JP_ETHE)*PCONC(:,JP_NO3)+TPK%K055*PCO& -&NC(:,JP_OLEL)*PCONC(:,JP_NO3) ) / & -( +TPK%K116*PCONC(:,JP_NO)+TPK%K117*PCONC(:,JP_RO2T)+TPK%K118*PCONC& -&(:,JP_HO2) ) -! -TPK%RO24 = ( +0.4*TPK%K052*PCONC(:,JP_ETHE)*TPK%O+0.1*TPK%K0& -&57*PCONC(:,JP_OLEL)*TPK%O+0.1*TPK%K077*PCONC(:,JP_OLEH)*& -&TPK%O+0.15*TPK%K283*PCONC(:,JP_MVK)*TPK%O ) / & -( +TPK%K119*PCONC(:,JP_NO)+TPK%K120*PCONC(:,JP_RO2T)+TPK%K121*PCONC& -&(:,JP_HO2) ) -! -TPK%RO26 = ( +TPK%K060*PCONC(:,JP_ALD2)*PCONC(:,JP_OH)+TPK%K061*PCON& -&C(:,JP_ALD2)*PCONC(:,JP_NO3)+TPK%K135*PCONC(:,JP_PAN1) ) / & -( +TPK%K125*PCONC(:,JP_NO)+TPK%K126*PCONC(:,JP_NO2)+TPK%K142*PCONC(& -&:,JP_HO2)+TPK%K143*PCONC(:,JP_RO2T) ) -! -TPK%RO27 = ( +TPK%K062*PCONC(:,JP_KETL)*PCONC(:,JP_OH)+TPK%CF8*TPK& -&%K168*TPK%RO214*PCONC(:,JP_NO)+TPK%K169*TPK%RO214*PCONC(:,J& -&P_RO2T)+TPK%K170*TPK%RO214*PCONC(:,JP_HO2)+0.15*TPK%K284*PCONC(:& -&,JP_MCR)*TPK%O ) / & -( +TPK%K144*PCONC(:,JP_NO)+TPK%K145*PCONC(:,JP_RO2T)+TPK%K146*PCONC& -&(:,JP_HO2) ) -! -TPK%RO210 = ( +0.34*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH) ) / & -( +TPK%K153*PCONC(:,JP_NO)+TPK%K154*PCONC(:,JP_RO2T)+TPK%K155*PCONC& -&(:,JP_HO2) ) -! -TPK%RO211 = ( +0.66*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & -( +TPK%K156*PCONC(:,JP_NO)+TPK%K157*PCONC(:,JP_RO2T)+TPK%K158*PCONC& -&(:,JP_HO2) ) -! -TPK%RO212 = ( +0.34*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & -( +TPK%K159*PCONC(:,JP_NO)+TPK%K160*PCONC(:,JP_RO2T)+TPK%K161*PCONC& -&(:,JP_HO2) ) -! -TPK%RO215 = ( +TPK%K068*PCONC(:,JP_MTBE)*PCONC(:,JP_OH) ) / & -( +TPK%K171*PCONC(:,JP_NO)+TPK%K172*PCONC(:,JP_RO2T)+TPK%K173*PCONC& -&(:,JP_HO2) ) -! -TPK%RO216 = ( +TPK%K070*PCONC(:,JP_KETH)*PCONC(:,JP_OH) ) / & -( +TPK%K174*PCONC(:,JP_NO)+TPK%K175*PCONC(:,JP_RO2T)+TPK%K176*PCONC& -&(:,JP_HO2) ) -! -TPK%RO217 = ( +0.1*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & -( +TPK%K177*PCONC(:,JP_NO)+TPK%K178*PCONC(:,JP_RO2T)+TPK%K179*PCONC& -&(:,JP_HO2) ) -! -TPK%RO220 = ( +0.28*TPK%K076*PCONC(:,JP_OLEH)*PCONC(:,JP_O3)+0.1*TPK& -&%K077*PCONC(:,JP_OLEH)*TPK%O+TPK%K078*PCONC(:,JP_ALKM)*PCONC(:,JP_O& -&H)+TPK%K308*PCONC(:,JP_RPR1)+TPK%K309*TPK%RO255*PCONC(:,JP_NO)+T& -&PK%K311*TPK%RO255*PCONC(:,JP_RO2T) ) / & -( +TPK%K186*PCONC(:,JP_NO)+TPK%K187*PCONC(:,JP_RO2T)+TPK%K188*PCONC& -&(:,JP_HO2) ) -! -TPK%RO218 = ( +TPK%K074*PCONC(:,JP_OLEH)*PCONC(:,JP_OH)+TPK%CF18*TPK%K186*& -TPK%RO220*PCONC(:,JP_NO)+TPK%K187*TPK%RO220*PCONC(:& -&,JP_RO2T)+TPK%K188*TPK%RO220*PCONC(:,JP_HO2) ) / & -( +TPK%K180*PCONC(:,JP_NO)+TPK%K181*PCONC(:,JP_RO2T)+TPK%K182*PCONC& -&(:,JP_HO2) ) -! -TPK%RO219 = ( +TPK%K075*PCONC(:,JP_OLEH)*PCONC(:,JP_NO3) ) / & -( +TPK%K183*PCONC(:,JP_NO)+TPK%K184*PCONC(:,JP_RO2T)+TPK%K185*PCONC& -&(:,JP_HO2) ) -! -TPK%RO221 = ( +0.1*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & -( +TPK%K189*PCONC(:,JP_NO)+TPK%K190*PCONC(:,JP_RO2T)+TPK%K191*PCONC& -&(:,JP_HO2) ) -! -TPK%RO222 = ( +TPK%CF45*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) /& -& & -( +TPK%K192*PCONC(:,JP_NO)+TPK%K193*PCONC(:,JP_RO2T)+TPK%K194*PCONC& -&(:,JP_HO2) ) -! -TPK%RO223 = ( +0.1*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & -( +TPK%K195*PCONC(:,JP_NO)+TPK%K196*PCONC(:,JP_RO2T)+TPK%K197*PCONC& -&(:,JP_HO2) ) -! -TPK%RO224 = ( +TPK%K084*PCONC(:,JP_BIOL)*PCONC(:,JP_OH) ) / & -( +TPK%K198*PCONC(:,JP_NO)+TPK%K199*PCONC(:,JP_RO2T)+TPK%K200*PCONC& -&(:,JP_HO2) ) -! -TPK%RO226 = ( +0.445*TPK%K086*PCONC(:,JP_BIOL)*PCONC(:,JP_O3) ) / & -( +TPK%K204*PCONC(:,JP_NO)+TPK%K205*PCONC(:,JP_RO2T)+TPK%K206*PCONC& -&(:,JP_HO2) ) -! -TPK%RO227 = ( +TPK%K088*PCONC(:,JP_BIOH)*PCONC(:,JP_OH) ) / & -( +TPK%K207*PCONC(:,JP_NO)+TPK%K208*PCONC(:,JP_RO2T)+TPK%K209*PCONC& -&(:,JP_HO2) ) -! -TPK%RO229 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & -( +TPK%K213*PCONC(:,JP_NO)+TPK%K214*PCONC(:,JP_RO2T)+TPK%K215*PCONC& -&(:,JP_HO2) ) -! -TPK%RO230 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & -( +TPK%K219*PCONC(:,JP_RO2T)+TPK%K220*PCONC(:,JP_HO2)+TPK%K344*PCON& -&C(:,JP_NO) ) -! -TPK%RO231 = ( +0.1*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & -( +TPK%K221*PCONC(:,JP_NO)+TPK%K222*PCONC(:,JP_RO2T)+TPK%K223*PCONC& -&(:,JP_HO2) ) -! -TPK%RO232 = ( +TPK%K093*PCONC(:,JP_ALKH)*PCONC(:,JP_OH) ) / & -( +TPK%K224*PCONC(:,JP_NO)+TPK%K225*PCONC(:,JP_RO2T)+TPK%K226*PCONC& -&(:,JP_HO2) ) -! -TPK%RO233 = ( +TPK%K097*TPK%RAD2 ) / & -( +TPK%K230+TPK%K231*PCONC(:,JP_NO)+TPK%K232*PCONC(:,JP_RO2T)+TPK%K233*& -PCONC(:,JP_HO2) ) -! -TPK%RO234 = ( +TPK%K098*TPK%RAD3 ) / & -( +TPK%K237+TPK%K238*PCONC(:,JP_NO)+TPK%K239*PCONC(:,JP_RO2T)+TPK%K240*& -PCONC(:,JP_HO2) ) -! -TPK%RO235 = ( +TPK%K099*TPK%RAD4 ) / & -( +TPK%K244+TPK%K245*PCONC(:,JP_NO)+TPK%K246*PCONC(:,JP_RO2T)+TPK%K247*& -PCONC(:,JP_HO2) ) -! -TPK%RO236 = ( +TPK%K100*TPK%RAD5 ) / & -( +TPK%K251+TPK%K252*PCONC(:,JP_NO)+TPK%K253*PCONC(:,JP_RO2T)+TPK%K254*& -PCONC(:,JP_HO2) ) -! -TPK%RO237 = ( +TPK%K101*TPK%RAD6 ) / & -( +TPK%K258+TPK%K259*PCONC(:,JP_NO)+TPK%K260*PCONC(:,JP_RO2T)+TPK%K261*& -PCONC(:,JP_HO2) ) -! -TPK%RO238 = ( +TPK%K102*TPK%RAD7 ) / & -( +TPK%K265+TPK%K266*PCONC(:,JP_NO)+TPK%K267*PCONC(:,JP_RO2T)+TPK%K268*& -PCONC(:,JP_HO2) ) -! -TPK%RO240 = ( +TPK%CF30*TPK%K213*TPK%RO229*PCONC(:,JP_NO)+TPK%K214*& -TPK%RO229*PCONC(:,JP_RO2T)+TPK%K215*TPK%RO229*PCON& -&C(:,JP_HO2) ) / & -( +TPK%K216*PCONC(:,JP_NO)+TPK%K217*PCONC(:,JP_RO2T)+TPK%K218*PCONC& -&(:,JP_HO2) ) -! -TPK%RO241 = ( +TPK%CF34*TPK%K224*TPK%RO232*PCONC(:,JP_NO)+TPK%K225*& -TPK%RO232*PCONC(:,JP_RO2T)+TPK%K226*TPK%RO232*PCON& -&C(:,JP_HO2) ) / & -( +TPK%K227*PCONC(:,JP_NO)+TPK%K228*PCONC(:,JP_RO2T)+TPK%K229*PCONC& -&(:,JP_HO2) ) -! -TPK%RO242 = ( +TPK%K230*TPK%RO233 ) / & -( +TPK%K234*PCONC(:,JP_NO)+TPK%K235*PCONC(:,JP_RO2T)+TPK%K236*PCONC& -&(:,JP_HO2) ) -! -TPK%RO243 = ( +TPK%K237*TPK%RO234 ) / & -( +TPK%K241*PCONC(:,JP_NO)+TPK%K242*PCONC(:,JP_RO2T)+TPK%K243*PCONC& -&(:,JP_HO2) ) -! -TPK%RO244 = ( +TPK%K244*TPK%RO235 ) / & -( +TPK%K248*PCONC(:,JP_NO)+TPK%K249*PCONC(:,JP_RO2T)+TPK%K250*PCONC& -&(:,JP_HO2) ) -! -TPK%RO245 = ( +TPK%K251*TPK%RO236 ) / & -( +TPK%K255*PCONC(:,JP_NO)+TPK%K256*PCONC(:,JP_RO2T)+TPK%K257*PCONC& -&(:,JP_HO2) ) -! -TPK%RO246 = ( +TPK%K258*TPK%RO237 ) / & -( +TPK%K262*PCONC(:,JP_NO)+TPK%K263*PCONC(:,JP_RO2T)+TPK%K264*PCONC& -&(:,JP_HO2) ) -! -TPK%RO247 = ( +TPK%K265*TPK%RO238 ) / & -( +TPK%K269*PCONC(:,JP_NO)+TPK%K270*PCONC(:,JP_RO2T)+TPK%K271*PCONC& -&(:,JP_HO2) ) -! -TPK%RO28 = ( +TPK%K063*PCONC(:,JP_KETL)+TPK%K071*PCONC(:,JP_KETH)+TP& -&K%K136*PCONC(:,JP_PAN2)+TPK%K144*TPK%RO27*PCONC(:,JP_NO)+TPK%& -&K145*TPK%RO27*PCONC(:,JP_RO2T)+TPK%K146*TPK%RO27*PCONC(:,JP& -&_HO2)+TPK%K174*TPK%RO216*PCONC(:,JP_NO)+TPK%K175*TPK%RO21& -&6*PCONC(:,JP_RO2T)+TPK%K176*TPK%RO216*PCONC(:,JP_HO2)+TPK%K204*& -&TPK%RO226*PCONC(:,JP_NO)+TPK%K205*TPK%RO226*PCONC(:,JP_RO2T)& -&+TPK%K206*TPK%RO226*PCONC(:,JP_HO2)+TPK%K216*TPK%RO240*& -&PCONC(:,JP_NO)+TPK%K217*TPK%RO240*PCONC(:,JP_RO2T)+TPK%K218*& -&TPK%RO240*PCONC(:,JP_HO2)+TPK%K219*TPK%RO230*PCONC(:,JP_RO2T)+T& -&PK%K220*TPK%RO230*PCONC(:,JP_HO2)+TPK%K276*PCONC(:,JP_MGLY)+TPK%K277*& -TPK%RO248*PCONC(:,JP_NO)+TPK%K280*TPK%RO248*PCONC(:& -&,JP_RO2T)+0.28*TPK%K281*PCONC(:,JP_MVK)*PCONC(:,JP_O3)+0.15*TPK%K283*PCO& -&NC(:,JP_MVK)*TPK%O+TPK%K344*TPK%RO230*PCONC(:,JP_NO) ) / & -( +TPK%K127*PCONC(:,JP_NO2)+TPK%K147*PCONC(:,JP_NO)+TPK%K148*PCONC(& -&:,JP_HO2)+TPK%K149*PCONC(:,JP_RO2T) ) +!WR_HCHO/HNO4=0.0 ! -! /END_CODE/ -PJAC(:,:,:) = 0.0 -CALL SUBJ0 -CALL SUBJ1 -CALL SUBJ2 -CALL SUBJ3 -CALL SUBJ4 -CALL SUBJ5 -CALL SUBJ6 -CALL SUBJ7 -CALL SUBJ8 -CALL SUBJ9 -CALL SUBJ10 -CALL SUBJ11 -CALL SUBJ12 -CALL SUBJ13 -CALL SUBJ14 -CALL SUBJ15 -CALL SUBJ16 -CALL SUBJ17 -CALL SUBJ18 -CALL SUBJ19 -CALL SUBJ20 -CALL SUBJ21 -CALL SUBJ22 -CALL SUBJ23 -CALL SUBJ24 -CALL SUBJ25 -CALL SUBJ26 -CALL SUBJ27 -CALL SUBJ28 -CALL SUBJ29 -CALL SUBJ30 -CALL SUBJ31 -CALL SUBJ32 +!WR_HCHO/NH3=0.0 ! - -CONTAINS - -SUBROUTINE SUBJ0 +!WR_HCHO/SO2=0.0 ! -!Indices 1 a 5 +!WR_HCHO/SULF=0.0 ! +!WR_HCHO/CO=0.0 ! -!NO/NO=-K005*<O3>-K007*<NO3>-K008*<NO>-K008*<NO>-K008*<NO>-K008*<NO>-K019*<OH>- -!K026*<HO2>-K038*<O>+K095*<RO2T>-K095*<RO2T>-K110*<RO21>-K113*<RO22>-K116*<RO23 -!>-K119*<RO24>-K122*<RO25>-K125*<RO26>-K144*<RO27>-K147*<RO28>-K150*<RO29>-K153 -!*<RO210>-K156*<RO211>-K159*<RO212>-K162*<RO213>-K165*<RO239>-K168*<RO214>-K171 -!*<RO215>-K174*<RO216>-K177*<RO217>-K180*<RO218>-K183*<RO219>-K186*<RO220>-K189 -!*<RO221>-K192*<RO222>-K195*<RO223>-K198*<RO224>-K201*<RO225>-K204*<RO226>-K207 -!*<RO227>-K210*<RO228>-K213*<RO229>-K216*<RO240>-K221*<RO231>-K224*<RO232>-K227 -!*<RO241>-K231*<RO233>-K234*<RO242>-K238*<RO234>-K241*<RO243>-K245*<RO235>-K248 -!*<RO244>-K252*<RO236>-K255*<RO245>-K259*<RO237>-K262*<RO246>-K266*<RO238>-K269 -!*<RO247>-K277*<RO248>-K285*<RO249>-K288*<RO250>-K291*<RO251>-K294*<RO252>-K297 -!*<RO253>-K300*<RO254>-K309*<RO255>-K315*<RO256>-K331*<RO257>-K340*<RO258>-K344 -!*<RO230>-KTC3-KTR3 - PJAC(:,1,1)=-TPK%K005(:)*PCONC(:,3)-TPK%K007(:)*PCONC(:,8)-TPK%K008(:)*PCONC(:& -&,1)-TPK%K008(:)*PCONC(:,1)-TPK%K008(:)*PCONC(:,1)-TPK%K008(:)*PCONC(:,1)-TPK%K& -&019(:)*PCONC(:,15)-TPK%K026(:)*PCONC(:,10)-TPK%K038(:)*TPK%O(:)+TPK%K095(:)*PC& -&ONC(:,85)-TPK%K095(:)*PCONC(:,85)-TPK%K110(:)*PCONC(:,86)-TPK%K113(:)*TPK%RO22& -&(:)-TPK%K116(:)*TPK%RO23(:)-TPK%K119(:)*TPK%RO24(:)-TPK%K122(:)*PCONC(:,87)-TP& -&K%K125(:)*TPK%RO26(:)-TPK%K144(:)*TPK%RO27(:)-TPK%K147(:)*TPK%RO28(:)-TPK%K150& -&(:)*TPK%RO29(:)-TPK%K153(:)*TPK%RO210(:)-TPK%K156(:)*TPK%RO211(:)-TPK%K159(:)*& -&TPK%RO212(:)-TPK%K162(:)*TPK%RO213(:)-TPK%K165(:)*TPK%RO239(:)-TPK%K168(:)*TPK& -&%RO214(:)-TPK%K171(:)*TPK%RO215(:)-TPK%K174(:)*TPK%RO216(:)-TPK%K177(:)*TPK%RO& -&217(:)-TPK%K180(:)*TPK%RO218(:)-TPK%K183(:)*TPK%RO219(:)-TPK%K186(:)*TPK%RO220& -&(:)-TPK%K189(:)*TPK%RO221(:)-TPK%K192(:)*TPK%RO222(:)-TPK%K195(:)*TPK%RO223(:)& -&-TPK%K198(:)*TPK%RO224(:)-TPK%K201(:)*TPK%RO225(:)-TPK%K204(:)*TPK%RO226(:)-TP& -&K%K207(:)*TPK%RO227(:)-TPK%K210(:)*TPK%RO228(:)-TPK%K213(:)*TPK%RO229(:)-TPK%K& -&216(:)*TPK%RO240(:)-TPK%K221(:)*TPK%RO231(:)-TPK%K224(:)*TPK%RO232(:)-TPK%K227& -&(:)*TPK%RO241(:)-TPK%K231(:)*TPK%RO233(:)-TPK%K234(:)*TPK%RO242(:)-TPK%K238(:)& -&*TPK%RO234(:)-TPK%K241(:)*TPK%RO243(:)-TPK%K245(:)*TPK%RO235(:)-TPK%K248(:)*TP& -&K%RO244(:)-TPK%K252(:)*TPK%RO236(:)-TPK%K255(:)*TPK%RO245(:)-TPK%K259(:)*TPK%R& -&O237(:)-TPK%K262(:)*TPK%RO246(:)-TPK%K266(:)*TPK%RO238(:)-TPK%K269(:)*TPK%RO24& -&7(:)-TPK%K277(:)*TPK%RO248(:)-TPK%K285(:)*TPK%RO249(:)-TPK%K288(:)*TPK%RO250(:& -&)-TPK%K291(:)*TPK%RO251(:)-TPK%K294(:)*TPK%RO252(:)-TPK%K297(:)*TPK%RO253(:)-T& -&PK%K300(:)*TPK%RO254(:)-TPK%K309(:)*TPK%RO255(:)-TPK%K315(:)*TPK%RO256(:)-TPK%& -&K331(:)*TPK%RO257(:)-TPK%K340(:)*TPK%RO258(:)-TPK%K344(:)*TPK%RO230(:)-TPK%KTC& -&3(:)-TPK%KTR3(:) -! -!NO/NO2=+K001+K003*<O>+K012*<NO3> - PJAC(:,1,2)=+TPK%K001(:)+TPK%K003(:)*TPK%O(:)+TPK%K012(:)*PCONC(:,8) -! -!NO/O3=-K005*<NO> - PJAC(:,1,3)=-TPK%K005(:)*PCONC(:,1) -! -!NO/HONO=+0.9*K020 - PJAC(:,1,4)=+0.9*TPK%K020(:) +!WR_HCHO/OH=0.0 ! -!NO/HNO3=0.0 +!WR_HCHO/HO2=0.0 ! -!NO/HNO4=0.0 +!WR_HCHO/CH4=0.0 ! -!NO/N2O5=0.0 +!WR_HCHO/ETH=0.0 ! -!NO/NO3=-K007*<NO>+K012*<NO2>+K013 - PJAC(:,1,8)=-TPK%K007(:)*PCONC(:,1)+TPK%K012(:)*PCONC(:,2)+TPK%K013(:) +!WR_HCHO/ALKA=0.0 ! -!NO/NH3=0.0 +!WR_HCHO/ALKE=0.0 ! -!NO/HO2=-K026*<NO> - PJAC(:,1,10)=-TPK%K026(:)*PCONC(:,1) +!WR_HCHO/BIO=0.0 ! -!NO/CO=0.0 +!WR_HCHO/ARO=0.0 ! -!NO/H2O2=0.0 +!WR_HCHO/HCHO=+KTR16 + PJAC(:,82,22)=+TPK%KTR16(:) ! -!NO/SO2=0.0 +!WR_HCHO/ALD=0.0 ! -!NO/H2SO4=0.0 +!WR_HCHO/KET=0.0 ! -!NO/OH=-K019*<NO> - PJAC(:,1,15)=-TPK%K019(:)*PCONC(:,1) +!WR_HCHO/CARBO=0.0 ! -!NO/ETHE=0.0 +!WR_HCHO/ONIT=0.0 ! -!NO/OLEL=0.0 +!WR_HCHO/PAN=0.0 ! -!NO/OLEH=0.0 +!WR_HCHO/OP1=0.0 ! -!NO/ALKL=0.0 +!WR_HCHO/OP2=0.0 ! -!NO/ALKM=0.0 +!WR_HCHO/ORA1=0.0 ! -!NO/ALKH=0.0 +!WR_HCHO/ORA2=0.0 ! -!NO/AROH=0.0 +!WR_HCHO/MO2=0.0 ! -!NO/AROL=0.0 +!WR_HCHO/ALKAP=0.0 ! -!NO/AROO=0.0 +!WR_HCHO/ALKEP=0.0 ! -!NO/ARAL=0.0 +!WR_HCHO/BIOP=0.0 ! -!NO/ARAC=0.0 +!WR_HCHO/PHO=0.0 ! -!NO/PAH=0.0 +!WR_HCHO/ADD=0.0 ! -!NO/HCHO=0.0 +!WR_HCHO/AROP=0.0 ! -!NO/ALD2=0.0 +!WR_HCHO/CARBOP=0.0 ! -!NO/KETL=0.0 +!WR_HCHO/OLN=0.0 ! -!NO/KETH=0.0 +!WR_HCHO/XO2=0.0 ! -!NO/MEOH=0.0 +!WR_HCHO/WC_O3=0.0 ! -!NO/ETOH=0.0 +!WR_HCHO/WC_H2O2=0.0 ! -!NO/ALCH=0.0 +!WR_HCHO/WC_NO=0.0 ! -!NO/ISOP=0.0 +!WR_HCHO/WC_NO2=0.0 ! -!NO/BIOL=0.0 +!WR_HCHO/WC_NO3=0.0 ! -!NO/BIOH=0.0 +!WR_HCHO/WC_N2O5=0.0 ! -!NO/MTBE=0.0 +!WR_HCHO/WC_HONO=0.0 ! -!NO/MVK=0.0 +!WR_HCHO/WC_HNO3=0.0 ! -!NO/MCR=0.0 +!WR_HCHO/WC_HNO4=0.0 ! -!NO/MGLY=0.0 +!WR_HCHO/WC_NH3=0.0 ! -!NO/GLY=0.0 +!WR_HCHO/WC_OH=0.0 ! -!NO/ORA1=0.0 +!WR_HCHO/WC_HO2=0.0 ! -!NO/ORA2=0.0 +!WR_HCHO/WC_CO2=0.0 ! -!NO/ACID=0.0 +!WR_HCHO/WC_SO2=0.0 ! -!NO/UR28=0.0 +!WR_HCHO/WC_SULF=0.0 ! -!NO/UR21=0.0 +!WR_HCHO/WC_HCHO=0.0 ! -!NO/URG2=0.0 +!WR_HCHO/WC_ORA1=0.0 ! -!NO/UR26=0.0 +!WR_HCHO/WC_ORA2=0.0 ! -!NO/RPG2=0.0 +!WR_HCHO/WC_MO2=0.0 ! -!NO/RP18=0.0 +!WR_HCHO/WC_OP1=0.0 ! -!NO/RPG3=0.0 +!WR_HCHO/WC_ASO3=0.0 ! -!NO/URG4=0.0 +!WR_HCHO/WC_ASO4=0.0 ! -!NO/UR8=0.0 +!WR_HCHO/WC_ASO5=0.0 ! -!NO/UR17=0.0 +!WR_HCHO/WC_AHSO5=0.0 ! -!NO/UR7=0.0 +!WR_HCHO/WC_AHMS=0.0 ! -!NO/RPR3=0.0 +!WR_HCHO/WR_O3=0.0 ! -!NO/URG6=0.0 +!WR_HCHO/WR_H2O2=0.0 ! -!NO/UR22=0.0 +!WR_HCHO/WR_NO=0.0 ! -!NO/URG7=0.0 +!WR_HCHO/WR_NO2=0.0 ! -!NO/RPR4=0.0 +!WR_HCHO/WR_NO3=0.0 ! -!NO/RPR7=0.0 +!WR_HCHO/WR_N2O5=0.0 ! -!NO/RPG7=0.0 +!WR_HCHO/WR_HONO=0.0 ! -!NO/URG8=0.0 +!WR_HCHO/WR_HNO3=0.0 ! -!NO/UR19=0.0 +!WR_HCHO/WR_HNO4=0.0 ! -!NO/URG9=0.0 +!WR_HCHO/WR_NH3=0.0 ! -!NO/AP7=0.0 +!WR_HCHO/WR_OH=-KR19*<WR_HCHO> + PJAC(:,82,77)=-TPK%KR19(:)*PCONC(:,82) ! -!NO/URG10=0.0 +!WR_HCHO/WR_HO2=0.0 ! -!NO/RPR1=0.0 +!WR_HCHO/WR_CO2=0.0 ! -!NO/RPR5=0.0 +!WR_HCHO/WR_SO2=-KR21*<WR_HCHO> + PJAC(:,82,80)=-TPK%KR21(:)*PCONC(:,82) ! -!NO/RPR8=0.0 +!WR_HCHO/WR_SULF=0.0 ! -!NO/RP10=0.0 +!WR_HCHO/WR_HCHO=-KTR36-KR19*<WR_OH>-KR21*<WR_SO2> + PJAC(:,82,82)=-TPK%KTR36(:)-TPK%KR19(:)*PCONC(:,77)-TPK%KR21(:)*PCONC(:,80) ! -!NO/RP11=0.0 +!WR_HCHO/WR_ORA1=0.0 ! -!NO/RP16=0.0 +!WR_HCHO/WR_ORA2=0.0 ! -!NO/RPRL=0.0 +!WR_HCHO/WR_MO2=+2.00*KR17*<WR_MO2>+2.00*KR17*<WR_MO2> + PJAC(:,82,85)=+2.00*TPK%KR17(:)*PCONC(:,85)+2.00*TPK%KR17(:)*PCONC(:,85) ! -!NO/APAN=0.0 +!WR_HCHO/WR_OP1=0.0 ! -!NO/PAN1=0.0 +!WR_HCHO/WR_ASO3=0.0 ! -!NO/PAN2=0.0 +!WR_HCHO/WR_ASO4=0.0 ! -!NO/PAN3=0.0 +!WR_HCHO/WR_ASO5=0.0 ! -!NO/PAN4=0.0 +!WR_HCHO/WR_AHSO5=0.0 ! -!NO/PAN6=0.0 +!WR_HCHO/WR_AHMS=+KR22 + PJAC(:,82,91)=+TPK%KR22(:) ! -!NO/PAN7=0.0 +!WR_ORA1/O3=0.0 ! -!NO/PAN8=0.0 +!WR_ORA1/H2O2=0.0 ! -!NO/PN10=0.0 +!WR_ORA1/NO=0.0 ! -!NO/RO2T=+K095*<NO>-K095*<NO> - PJAC(:,1,85)=+TPK%K095(:)*PCONC(:,1)-TPK%K095(:)*PCONC(:,1) +!WR_ORA1/NO2=0.0 ! -!NO/RO21=-K110*<NO> - PJAC(:,1,86)=-TPK%K110(:)*PCONC(:,1) +!WR_ORA1/NO3=0.0 ! -!NO/RO25=-K122*<NO> - PJAC(:,1,87)=-TPK%K122(:)*PCONC(:,1) +!WR_ORA1/N2O5=0.0 ! -!NO/WC_O3=0.0 +!WR_ORA1/HONO=0.0 ! -!NO/WC_H2O2=0.0 +!WR_ORA1/HNO3=0.0 ! -!NO/WC_NO=+KTC34 - PJAC(:,1,90)=+TPK%KTC34(:) +!WR_ORA1/HNO4=0.0 ! -!NO/WC_NO2=0.0 +!WR_ORA1/NH3=0.0 ! -!NO/WC_NO3=0.0 +!WR_ORA1/SO2=0.0 ! -!NO/WC_N2O5=0.0 +!WR_ORA1/SULF=0.0 ! -!NO/WC_HONO=0.0 +!WR_ORA1/CO=0.0 ! -!NO/WC_HNO3=0.0 +!WR_ORA1/OH=0.0 ! -!NO/WC_HNO4=0.0 +!WR_ORA1/HO2=0.0 ! -!NO/WC_NH3=0.0 +!WR_ORA1/CH4=0.0 ! -!NO/WC_OH=0.0 +!WR_ORA1/ETH=0.0 ! -!NO/WC_HO2=0.0 +!WR_ORA1/ALKA=0.0 ! -!NO/WC_CO2=0.0 +!WR_ORA1/ALKE=0.0 ! -!NO/WC_SO2=0.0 +!WR_ORA1/BIO=0.0 ! -!NO/WC_H2SO4=0.0 +!WR_ORA1/ARO=0.0 ! -!NO/WC_RO21=0.0 +!WR_ORA1/HCHO=0.0 ! -!NO/WC_RO25=0.0 +!WR_ORA1/ALD=0.0 ! -!NO/WC_MEOH=0.0 +!WR_ORA1/KET=0.0 ! -!NO/WC_ETOH=0.0 +!WR_ORA1/CARBO=0.0 ! -!NO/WC_ALCH=0.0 +!WR_ORA1/ONIT=0.0 ! -!NO/WC_HCHO=0.0 +!WR_ORA1/PAN=0.0 ! -!NO/WC_ALD2=0.0 +!WR_ORA1/OP1=0.0 ! -!NO/WC_GLY=0.0 +!WR_ORA1/OP2=0.0 ! -!NO/WC_MGLY=0.0 +!WR_ORA1/ORA1=+KTR17 + PJAC(:,83,30)=+TPK%KTR17(:) ! -!NO/WC_KETL=0.0 +!WR_ORA1/ORA2=0.0 ! -!NO/WC_ORA1=0.0 +!WR_ORA1/MO2=0.0 ! -!NO/WC_ORA2=0.0 +!WR_ORA1/ALKAP=0.0 ! -!NO/WC_ACID=0.0 +!WR_ORA1/ALKEP=0.0 ! -!NO/WC_RP16=0.0 +!WR_ORA1/BIOP=0.0 ! -!NO/WC_UR21=0.0 +!WR_ORA1/PHO=0.0 ! -!NO/WC_UR28=0.0 +!WR_ORA1/ADD=0.0 ! -!NO/WC_ACID2=0.0 +!WR_ORA1/AROP=0.0 ! -!NO/WC_ASO3=0.0 +!WR_ORA1/CARBOP=0.0 ! -!NO/WC_ASO4=0.0 +!WR_ORA1/OLN=0.0 ! -!NO/WC_ASO5=0.0 +!WR_ORA1/XO2=0.0 ! -!NO/WC_AHSO5=0.0 +!WR_ORA1/WC_O3=0.0 ! -!NO/WC_AHMS=0.0 +!WR_ORA1/WC_H2O2=0.0 ! -!NO/WR_O3=0.0 +!WR_ORA1/WC_NO=0.0 ! -!NO/WR_H2O2=0.0 +!WR_ORA1/WC_NO2=0.0 ! -!NO/WR_NO=+KTR34 - PJAC(:,1,127)=+TPK%KTR34(:) +!WR_ORA1/WC_NO3=0.0 ! -!NO/WR_NO2=0.0 +!WR_ORA1/WC_N2O5=0.0 ! -!NO/WR_NO3=0.0 +!WR_ORA1/WC_HONO=0.0 ! -!NO/WR_N2O5=0.0 +!WR_ORA1/WC_HNO3=0.0 ! -!NO/WR_HONO=0.0 +!WR_ORA1/WC_HNO4=0.0 ! -!NO/WR_HNO3=0.0 +!WR_ORA1/WC_NH3=0.0 ! -!NO/WR_HNO4=0.0 +!WR_ORA1/WC_OH=0.0 ! -!NO/WR_NH3=0.0 +!WR_ORA1/WC_HO2=0.0 ! -!NO/WR_OH=0.0 +!WR_ORA1/WC_CO2=0.0 ! -!NO/WR_HO2=0.0 +!WR_ORA1/WC_SO2=0.0 ! -!NO/WR_CO2=0.0 +!WR_ORA1/WC_SULF=0.0 ! -!NO/WR_SO2=0.0 +!WR_ORA1/WC_HCHO=0.0 ! -!NO/WR_H2SO4=0.0 +!WR_ORA1/WC_ORA1=0.0 ! -!NO/WR_RO21=0.0 +!WR_ORA1/WC_ORA2=0.0 ! -!NO/WR_RO25=0.0 +!WR_ORA1/WC_MO2=0.0 ! -!NO/WR_MEOH=0.0 +!WR_ORA1/WC_OP1=0.0 ! -!NO/WR_ETOH=0.0 +!WR_ORA1/WC_ASO3=0.0 ! -!NO/WR_ALCH=0.0 +!WR_ORA1/WC_ASO4=0.0 ! -!NO/WR_HCHO=0.0 +!WR_ORA1/WC_ASO5=0.0 ! -!NO/WR_ALD2=0.0 +!WR_ORA1/WC_AHSO5=0.0 ! -!NO/WR_GLY=0.0 +!WR_ORA1/WC_AHMS=0.0 ! -!NO/WR_MGLY=0.0 +!WR_ORA1/WR_O3=0.0 ! -!NO/WR_KETL=0.0 +!WR_ORA1/WR_H2O2=0.0 ! -!NO/WR_ORA1=0.0 +!WR_ORA1/WR_NO=0.0 ! -!NO/WR_ORA2=0.0 +!WR_ORA1/WR_NO2=0.0 ! -!NO/WR_ACID=0.0 +!WR_ORA1/WR_NO3=0.0 ! -!NO/WR_RP16=0.0 +!WR_ORA1/WR_N2O5=0.0 ! -!NO/WR_UR21=0.0 +!WR_ORA1/WR_HONO=0.0 ! -!NO/WR_UR28=0.0 +!WR_ORA1/WR_HNO3=0.0 ! -!NO/WR_ACID2=0.0 +!WR_ORA1/WR_HNO4=0.0 ! -!NO/WR_ASO3=0.0 +!WR_ORA1/WR_NH3=0.0 ! -!NO/WR_ASO4=0.0 +!WR_ORA1/WR_OH=+KR19*<WR_HCHO>-KR20*<WR_ORA1>+KR23*<WR_AHMS> + PJAC(:,83,77)=+TPK%KR19(:)*PCONC(:,82)-TPK%KR20(:)*PCONC(:,83)+TPK%KR23(:)*PCO& +&NC(:,91) ! -!NO/WR_ASO5=0.0 +!WR_ORA1/WR_HO2=0.0 ! -!NO/WR_AHSO5=0.0 +!WR_ORA1/WR_CO2=0.0 ! -!NO/WR_AHMS=0.0 +!WR_ORA1/WR_SO2=0.0 ! -!NO2/NO=+K005*<O3>+2.*K007*<NO3>+2.*K008*<NO>+2.*K008*<NO>+K026*<HO2>+K038*<O>+ -!K110*<RO21>+K113*<RO22>+2.*K116*<RO23>+K119*<RO24>+TPK%CF4*K122*<RO25>+K125*<R -!O26>+K144*<RO27>+K147*<RO28>+TPK%CF6*K150*<RO29>+K153*<RO210>+2.*K156*<RO211>+ -!2.*K159*<RO212>+K162*<RO213>+K165*<RO239>+TPK%CF8*K168*<RO214>+K171*<RO215>+K1 -!74*<RO216>+TPK%CF22*K177*<RO217>+TPK%CF20*K180*<RO218>+2.*K183*<RO219>+TPK%CF1 -!8*K186*<RO220>+TPK%CF24*K189*<RO221>+TPK%CF42*K192*<RO222>+TPK%CF44*K195*<RO22 -!3>+TPK%CF26*K198*<RO224>+2.*K201*<RO225>+K204*<RO226>+TPK%CF28*K207*<RO227>+2. -!*K210*<RO228>+TPK%CF30*K213*<RO229>+K216*<RO240>+TPK%CF32*K221*<RO231>+TPK%CF3 -!4*K224*<RO232>+TPK%CF36*K227*<RO241>+K231*<RO233>+K234*<RO242>+K238*<RO234>+K2 -!41*<RO243>+K245*<RO235>+K248*<RO244>+K252*<RO236>+K255*<RO245>+K259*<RO237>+K2 -!62*<RO246>+K266*<RO238>+K269*<RO247>+K277*<RO248>+K285*<RO249>+K288*<RO250>+K2 -!91*<RO251>+2.*K294*<RO252>+K297*<RO253>+K300*<RO254>+K309*<RO255>+K315*<RO256> -!+K331*<RO257>+K340*<RO258>+K344*<RO230> - PJAC(:,2,1)=+TPK%K005(:)*PCONC(:,3)+2.*TPK%K007(:)*PCONC(:,8)+2.*TPK%K008(:)*P& -&CONC(:,1)+2.*TPK%K008(:)*PCONC(:,1)+TPK%K026(:)*PCONC(:,10)+TPK%K038(:)*TPK%O(& -&:)+TPK%K110(:)*PCONC(:,86)+TPK%K113(:)*TPK%RO22(:)+2.*TPK%K116(:)*TPK%RO23(:)+& -&TPK%K119(:)*TPK%RO24(:)+TPK%CF4*TPK%K122(:)*PCONC(:,87)+TPK%K125(:)*TPK%RO26(:& -&)+TPK%K144(:)*TPK%RO27(:)+TPK%K147(:)*TPK%RO28(:)+TPK%CF6*TPK%K150(:)*TPK%RO29& -&(:)+TPK%K153(:)*TPK%RO210(:)+2.*TPK%K156(:)*TPK%RO211(:)+2.*TPK%K159(:)*TPK%RO& -&212(:)+TPK%K162(:)*TPK%RO213(:)+TPK%K165(:)*TPK%RO239(:)+TPK%CF8*TPK%K168(:)*T& -&PK%RO214(:)+TPK%K171(:)*TPK%RO215(:)+TPK%K174(:)*TPK%RO216(:)+TPK%CF22*TPK%K17& -&7(:)*TPK%RO217(:)+TPK%CF20*TPK%K180(:)*TPK%RO218(:)+2.*TPK%K183(:)*TPK%RO219(:& -&)+TPK%CF18*TPK%K186(:)*TPK%RO220(:)+TPK%CF24*TPK%K189(:)*TPK%RO221(:)+TPK%CF42& -&*TPK%K192(:)*TPK%RO222(:)+TPK%CF44*TPK%K195(:)*TPK%RO223(:)+TPK%CF26*TPK%K198(& -&:)*TPK%RO224(:)+2.*TPK%K201(:)*TPK%RO225(:)+TPK%K204(:)*TPK%RO226(:)+TPK%CF28*& -&TPK%K207(:)*TPK%RO227(:)+2.*TPK%K210(:)*TPK%RO228(:)+TPK%CF30*TPK%K213(:)*TPK%& -&RO229(:)+TPK%K216(:)*TPK%RO240(:)+TPK%CF32*TPK%K221(:)*TPK%RO231(:)+TPK%CF34*T& -&PK%K224(:)*TPK%RO232(:)+TPK%CF36*TPK%K227(:)*TPK%RO241(:)+TPK%K231(:)*TPK%RO23& -&3(:)+TPK%K234(:)*TPK%RO242(:)+TPK%K238(:)*TPK%RO234(:)+TPK%K241(:)*TPK%RO243(:& -&)+TPK%K245(:)*TPK%RO235(:)+TPK%K248(:)*TPK%RO244(:)+TPK%K252(:)*TPK%RO236(:)+T& -&PK%K255(:)*TPK%RO245(:)+TPK%K259(:)*TPK%RO237(:)+TPK%K262(:)*TPK%RO246(:)+TPK%& -&K266(:)*TPK%RO238(:)+TPK%K269(:)*TPK%RO247(:)+TPK%K277(:)*TPK%RO248(:)+TPK%K28& -&5(:)*TPK%RO249(:)+TPK%K288(:)*TPK%RO250(:)+TPK%K291(:)*TPK%RO251(:)+2.*TPK%K29& -&4(:)*TPK%RO252(:)+TPK%K297(:)*TPK%RO253(:)+TPK%K300(:)*TPK%RO254(:)+TPK%K309(:& -&)*TPK%RO255(:)+TPK%K315(:)*TPK%RO256(:)+TPK%K331(:)*TPK%RO257(:)+TPK%K340(:)*T& -&PK%RO258(:)+TPK%K344(:)*TPK%RO230(:) -! -!NO2/NO2=-K001-K003*<O>-K004*<O>-K006*<O3>-K009*<NO3>+K012*<NO3>-K012*<NO3>-K02 -!1*<H2O>-K022*<OH>-K027*<HO2>-K103*<RAD1>-K104*<RAD2>-K105*<RAD3>-K106*<RAD4>-K -!107*<RAD5>-K108*<RAD6>-K109*<RAD7>-K126*<RO26>-K127*<RO28>-K128*<RO239>-K129*< -!RO248>-K130*<RO250>-K131*<RO254>-K132*<RO255>-K133*<RO257>-K134*<RO258>-K316*< -!RO256>-K321*<RAD8>-KTC4-KTR4 - PJAC(:,2,2)=-TPK%K001(:)-TPK%K003(:)*TPK%O(:)-TPK%K004(:)*TPK%O(:)-TPK%K006(:)& -&*PCONC(:,3)-TPK%K009(:)*PCONC(:,8)+TPK%K012(:)*PCONC(:,8)-TPK%K012(:)*PCONC(:,& -&8)-TPK%K021(:)*TPK%H2O(:)-TPK%K022(:)*PCONC(:,15)-TPK%K027(:)*PCONC(:,10)-TPK%& -&K103(:)*TPK%RAD1(:)-TPK%K104(:)*TPK%RAD2(:)-TPK%K105(:)*TPK%RAD3(:)-TPK%K106(:& -&)*TPK%RAD4(:)-TPK%K107(:)*TPK%RAD5(:)-TPK%K108(:)*TPK%RAD6(:)-TPK%K109(:)*TPK%& -&RAD7(:)-TPK%K126(:)*TPK%RO26(:)-TPK%K127(:)*TPK%RO28(:)-TPK%K128(:)*TPK%RO239(& -&:)-TPK%K129(:)*TPK%RO248(:)-TPK%K130(:)*TPK%RO250(:)-TPK%K131(:)*TPK%RO254(:)-& -&TPK%K132(:)*TPK%RO255(:)-TPK%K133(:)*TPK%RO257(:)-TPK%K134(:)*TPK%RO258(:)-TPK& -&%K316(:)*TPK%RO256(:)-TPK%K321(:)*TPK%RAD8(:)-TPK%KTC4(:)-TPK%KTR4(:) -! -!NO2/O3=+K005*<NO>-K006*<NO2> - PJAC(:,2,3)=+TPK%K005(:)*PCONC(:,1)-TPK%K006(:)*PCONC(:,2) -! -!NO2/HONO=+0.1*K020+K039*<OH> - PJAC(:,2,4)=+0.1*TPK%K020(:)+TPK%K039(:)*PCONC(:,15) -! -!NO2/HNO3=0.0 -! -!NO2/HNO4=+K028+K029*<OH> - PJAC(:,2,6)=+TPK%K028(:)+TPK%K029(:)*PCONC(:,15) -! -!NO2/N2O5=+K010 - PJAC(:,2,7)=+TPK%K010(:) -! -!NO2/NO3=+2.*K007*<NO>-K009*<NO2>+K012*<NO2>-K012*<NO2>+K014+0.8*K033*<HO2>+K04 -!0*<OH>+2.*K041*<NO3>+2.*K041*<NO3> - PJAC(:,2,8)=+2.*TPK%K007(:)*PCONC(:,1)-TPK%K009(:)*PCONC(:,2)+TPK%K012(:)*PCON& -&C(:,2)-TPK%K012(:)*PCONC(:,2)+TPK%K014(:)+0.8*TPK%K033(:)*PCONC(:,10)+TPK%K040& -&(:)*PCONC(:,15)+2.*TPK%K041(:)*PCONC(:,8)+2.*TPK%K041(:)*PCONC(:,8) +!WR_ORA1/WR_SULF=0.0 ! -!NO2/NH3=0.0 +!WR_ORA1/WR_HCHO=+KR19*<WR_OH> + PJAC(:,83,82)=+TPK%KR19(:)*PCONC(:,77) ! -!NO2/HO2=+K026*<NO>-K027*<NO2>+0.8*K033*<NO3>+K118*<RO23>+K158*<RO211>+K161*<RO -!212>+K185*<RO219>+K203*<RO225>+K212*<RO228>+K295*<RO252> - PJAC(:,2,10)=+TPK%K026(:)*PCONC(:,1)-TPK%K027(:)*PCONC(:,2)+0.8*TPK%K033(:)*PC& -&ONC(:,8)+TPK%K118(:)*TPK%RO23(:)+TPK%K158(:)*TPK%RO211(:)+TPK%K161(:)*TPK%RO21& -&2(:)+TPK%K185(:)*TPK%RO219(:)+TPK%K203(:)*TPK%RO225(:)+TPK%K212(:)*TPK%RO228(:& -&)+TPK%K295(:)*TPK%RO252(:) +!WR_ORA1/WR_ORA1=-KTR37-KR20*<WR_OH> + PJAC(:,83,83)=-TPK%KTR37(:)-TPK%KR20(:)*PCONC(:,77) ! -!NO2/CO=0.0 +!WR_ORA1/WR_ORA2=0.0 ! -!NO2/H2O2=0.0 +!WR_ORA1/WR_MO2=0.0 ! -!NO2/SO2=0.0 +!WR_ORA1/WR_OP1=0.0 ! -!NO2/H2SO4=0.0 +!WR_ORA1/WR_ASO3=0.0 ! -!NO2/OH=-K022*<NO2>+K029*<HNO4>+K039*<HONO>+K040*<NO3> - PJAC(:,2,15)=-TPK%K022(:)*PCONC(:,2)+TPK%K029(:)*PCONC(:,6)+TPK%K039(:)*PCONC(& -&:,4)+TPK%K040(:)*PCONC(:,8) +!WR_ORA1/WR_ASO4=0.0 ! -!NO2/ETHE=0.0 +!WR_ORA1/WR_ASO5=0.0 ! -!NO2/OLEL=0.0 +!WR_ORA1/WR_AHSO5=0.0 ! -!NO2/OLEH=0.0 +!WR_ORA1/WR_AHMS=+KR23*<WR_OH> + PJAC(:,83,91)=+TPK%KR23(:)*PCONC(:,77) ! -!NO2/ALKL=0.0 +!WR_ORA2/O3=0.0 ! -!NO2/ALKM=0.0 +!WR_ORA2/H2O2=0.0 ! -!NO2/ALKH=0.0 +!WR_ORA2/NO=0.0 ! -!NO2/AROH=0.0 +!WR_ORA2/NO2=0.0 ! -!NO2/AROL=0.0 +!WR_ORA2/NO3=0.0 ! -!NO2/AROO=0.0 +!WR_ORA2/N2O5=0.0 ! -!NO2/ARAL=0.0 +!WR_ORA2/HONO=0.0 ! -!NO2/ARAC=0.0 +!WR_ORA2/HNO3=0.0 ! -!NO2/PAH=0.0 +!WR_ORA2/HNO4=0.0 ! -!NO2/HCHO=0.0 +!WR_ORA2/NH3=0.0 ! -!NO2/ALD2=0.0 +!WR_ORA2/SO2=0.0 ! -!NO2/KETL=0.0 +!WR_ORA2/SULF=0.0 ! -!NO2/KETH=0.0 +!WR_ORA2/CO=0.0 ! -!NO2/MEOH=0.0 +!WR_ORA2/OH=0.0 ! -!NO2/ETOH=0.0 +!WR_ORA2/HO2=0.0 ! -!NO2/ALCH=0.0 +!WR_ORA2/CH4=0.0 ! -!NO2/ISOP=0.0 +!WR_ORA2/ETH=0.0 ! -!NO2/BIOL=0.0 +!WR_ORA2/ALKA=0.0 ! -!NO2/BIOH=0.0 +!WR_ORA2/ALKE=0.0 ! -!NO2/MTBE=0.0 +!WR_ORA2/BIO=0.0 ! -!NO2/MVK=0.0 +!WR_ORA2/ARO=0.0 ! -!NO2/MCR=0.0 +!WR_ORA2/HCHO=0.0 ! -!NO2/MGLY=0.0 +!WR_ORA2/ALD=0.0 ! -!NO2/GLY=0.0 +!WR_ORA2/KET=0.0 ! -!NO2/ORA1=0.0 +!WR_ORA2/CARBO=0.0 ! -!NO2/ORA2=0.0 +!WR_ORA2/ONIT=0.0 ! -!NO2/ACID=0.0 +!WR_ORA2/PAN=0.0 ! -!NO2/UR28=0.0 +!WR_ORA2/OP1=0.0 ! -!NO2/UR21=0.0 +!WR_ORA2/OP2=0.0 ! -!NO2/URG2=0.0 +!WR_ORA2/ORA1=0.0 ! -!NO2/UR26=0.0 +!WR_ORA2/ORA2=+KTR18 + PJAC(:,84,31)=+TPK%KTR18(:) ! -!NO2/RPG2=0.0 +!WR_ORA2/MO2=0.0 ! -!NO2/RP18=0.0 +!WR_ORA2/ALKAP=0.0 ! -!NO2/RPG3=0.0 +!WR_ORA2/ALKEP=0.0 ! -!NO2/URG4=0.0 +!WR_ORA2/BIOP=0.0 ! -!NO2/UR8=0.0 +!WR_ORA2/PHO=0.0 ! -!NO2/UR17=0.0 +!WR_ORA2/ADD=0.0 ! -!NO2/UR7=0.0 +!WR_ORA2/AROP=0.0 ! -!NO2/RPR3=0.0 +!WR_ORA2/CARBOP=0.0 ! -!NO2/URG6=0.0 +!WR_ORA2/OLN=0.0 ! -!NO2/UR22=0.0 +!WR_ORA2/XO2=0.0 ! -!NO2/URG7=0.0 +!WR_ORA2/WC_O3=0.0 ! -!NO2/RPR4=0.0 +!WR_ORA2/WC_H2O2=0.0 ! -!NO2/RPR7=0.0 +!WR_ORA2/WC_NO=0.0 ! -!NO2/RPG7=0.0 +!WR_ORA2/WC_NO2=0.0 ! -!NO2/URG8=0.0 +!WR_ORA2/WC_NO3=0.0 ! -!NO2/UR19=0.0 +!WR_ORA2/WC_N2O5=0.0 ! -!NO2/URG9=0.0 +!WR_ORA2/WC_HONO=0.0 ! -!NO2/AP7=0.0 +!WR_ORA2/WC_HNO3=0.0 ! -!NO2/URG10=0.0 +!WR_ORA2/WC_HNO4=0.0 ! -!NO2/RPR1=0.0 +!WR_ORA2/WC_NH3=0.0 ! -!NO2/RPR5=0.0 +!WR_ORA2/WC_OH=0.0 ! -!NO2/RPR8=0.0 +!WR_ORA2/WC_HO2=0.0 ! -!NO2/RP10=0.0 +!WR_ORA2/WC_CO2=0.0 ! -!NO2/RP11=0.0 +!WR_ORA2/WC_SO2=0.0 ! -!NO2/RP16=0.0 +!WR_ORA2/WC_SULF=0.0 ! -!NO2/RPRL=0.0 +!WR_ORA2/WC_HCHO=0.0 ! -!NO2/APAN=+1.0000000*K139 - PJAC(:,2,76)=+1.0000000*TPK%K139(:) +!WR_ORA2/WC_ORA1=0.0 ! -!NO2/PAN1=+K135 - PJAC(:,2,77)=+TPK%K135(:) +!WR_ORA2/WC_ORA2=0.0 ! -!NO2/PAN2=+K136 - PJAC(:,2,78)=+TPK%K136(:) +!WR_ORA2/WC_MO2=0.0 ! -!NO2/PAN3=+K137 - PJAC(:,2,79)=+TPK%K137(:) +!WR_ORA2/WC_OP1=0.0 ! -!NO2/PAN4=+K141 - PJAC(:,2,80)=+TPK%K141(:) +!WR_ORA2/WC_ASO3=0.0 ! -!NO2/PAN6=+K140 - PJAC(:,2,81)=+TPK%K140(:) +!WR_ORA2/WC_ASO4=0.0 ! -!NO2/PAN7=+K343 - PJAC(:,2,82)=+TPK%K343(:) +!WR_ORA2/WC_ASO5=0.0 ! -!NO2/PAN8=+K317 - PJAC(:,2,83)=+TPK%K317(:) +!WR_ORA2/WC_AHSO5=0.0 ! -!NO2/PN10=+K138 - PJAC(:,2,84)=+TPK%K138(:) +!WR_ORA2/WC_AHMS=0.0 ! -!NO2/RO2T=+K117*<RO23>+K157*<RO211>+K160*<RO212>+K184*<RO219>+K202*<RO225>+K211 -!*<RO228>+K296*<RO252> - PJAC(:,2,85)=+TPK%K117(:)*TPK%RO23(:)+TPK%K157(:)*TPK%RO211(:)+TPK%K160(:)*TPK& -&%RO212(:)+TPK%K184(:)*TPK%RO219(:)+TPK%K202(:)*TPK%RO225(:)+TPK%K211(:)*TPK%RO& -&228(:)+TPK%K296(:)*TPK%RO252(:) +!WR_ORA2/WR_O3=0.0 ! -!NO2/RO21=+K110*<NO> - PJAC(:,2,86)=+TPK%K110(:)*PCONC(:,1) +!WR_ORA2/WR_H2O2=0.0 ! -!NO2/RO25=+TPK%CF4*K122*<NO> - PJAC(:,2,87)=+TPK%CF4*TPK%K122(:)*PCONC(:,1) +!WR_ORA2/WR_NO=0.0 ! -!NO2/WC_O3=0.0 +!WR_ORA2/WR_NO2=0.0 ! -!NO2/WC_H2O2=0.0 +!WR_ORA2/WR_NO3=0.0 ! -!NO2/WC_NO=0.0 +!WR_ORA2/WR_N2O5=0.0 ! -!NO2/WC_NO2=+KTC35 - PJAC(:,2,91)=+TPK%KTC35(:) +!WR_ORA2/WR_HONO=0.0 ! -!NO2/WC_NO3=0.0 +!WR_ORA2/WR_HNO3=0.0 ! -!NO2/WC_N2O5=0.0 +!WR_ORA2/WR_HNO4=0.0 ! -!NO2/WC_HONO=0.0 +!WR_ORA2/WR_NH3=0.0 ! -!NO2/WC_HNO3=0.0 +!WR_ORA2/WR_OH=0.0 ! -!NO2/WC_HNO4=0.0 +!WR_ORA2/WR_HO2=0.0 ! -!NO2/WC_NH3=0.0 +!WR_ORA2/WR_CO2=0.0 ! -!NO2/WC_OH=0.0 +!WR_ORA2/WR_SO2=0.0 ! -!NO2/WC_HO2=0.0 +!WR_ORA2/WR_SULF=0.0 ! -!NO2/WC_CO2=0.0 +!WR_ORA2/WR_HCHO=0.0 ! -!NO2/WC_SO2=0.0 +!WR_ORA2/WR_ORA1=0.0 ! -!NO2/WC_H2SO4=0.0 +!WR_ORA2/WR_ORA2=-KTR38 + PJAC(:,84,84)=-TPK%KTR38(:) ! -!NO2/WC_RO21=0.0 +!WR_ORA2/WR_MO2=0.0 ! -!NO2/WC_RO25=0.0 +!WR_ORA2/WR_OP1=0.0 ! -!NO2/WC_MEOH=0.0 +!WR_ORA2/WR_ASO3=0.0 ! -!NO2/WC_ETOH=0.0 +!WR_ORA2/WR_ASO4=0.0 ! -!NO2/WC_ALCH=0.0 +!WR_ORA2/WR_ASO5=0.0 ! -!NO2/WC_HCHO=0.0 +!WR_ORA2/WR_AHSO5=0.0 ! -!NO2/WC_ALD2=0.0 +!WR_ORA2/WR_AHMS=0.0 ! -!NO2/WC_GLY=0.0 +!WR_MO2/O3=0.0 ! -!NO2/WC_MGLY=0.0 +!WR_MO2/H2O2=0.0 ! -!NO2/WC_KETL=0.0 +!WR_MO2/NO=0.0 ! -!NO2/WC_ORA1=0.0 +!WR_MO2/NO2=0.0 ! -!NO2/WC_ORA2=0.0 +!WR_MO2/NO3=0.0 ! -!NO2/WC_ACID=0.0 +!WR_MO2/N2O5=0.0 ! -!NO2/WC_RP16=0.0 +!WR_MO2/HONO=0.0 ! -!NO2/WC_UR21=0.0 +!WR_MO2/HNO3=0.0 ! -!NO2/WC_UR28=0.0 +!WR_MO2/HNO4=0.0 ! -!NO2/WC_ACID2=0.0 +!WR_MO2/NH3=0.0 ! -!NO2/WC_ASO3=0.0 +!WR_MO2/SO2=0.0 ! -!NO2/WC_ASO4=0.0 +!WR_MO2/SULF=0.0 ! -!NO2/WC_ASO5=0.0 +!WR_MO2/CO=0.0 ! -!NO2/WC_AHSO5=0.0 +!WR_MO2/OH=0.0 ! -!NO2/WC_AHMS=0.0 +!WR_MO2/HO2=0.0 ! -!NO2/WR_O3=0.0 +!WR_MO2/CH4=0.0 ! -!NO2/WR_H2O2=0.0 +!WR_MO2/ETH=0.0 ! -!NO2/WR_NO=0.0 +!WR_MO2/ALKA=0.0 ! -!NO2/WR_NO2=+KTR35 - PJAC(:,2,128)=+TPK%KTR35(:) +!WR_MO2/ALKE=0.0 ! -!NO2/WR_NO3=0.0 +!WR_MO2/BIO=0.0 ! -!NO2/WR_N2O5=0.0 +!WR_MO2/ARO=0.0 ! -!NO2/WR_HONO=0.0 +!WR_MO2/HCHO=0.0 ! -!NO2/WR_HNO3=0.0 +!WR_MO2/ALD=0.0 ! -!NO2/WR_HNO4=0.0 +!WR_MO2/KET=0.0 ! -!NO2/WR_NH3=0.0 +!WR_MO2/CARBO=0.0 ! -!NO2/WR_OH=0.0 +!WR_MO2/ONIT=0.0 ! -!NO2/WR_HO2=0.0 +!WR_MO2/PAN=0.0 ! -!NO2/WR_CO2=0.0 +!WR_MO2/OP1=0.0 ! -!NO2/WR_SO2=0.0 +!WR_MO2/OP2=0.0 ! -!NO2/WR_H2SO4=0.0 +!WR_MO2/ORA1=0.0 ! -!NO2/WR_RO21=0.0 +!WR_MO2/ORA2=0.0 ! -!NO2/WR_RO25=0.0 +!WR_MO2/MO2=+KTR19 + PJAC(:,85,32)=+TPK%KTR19(:) ! -!NO2/WR_MEOH=0.0 +!WR_MO2/ALKAP=0.0 ! -!NO2/WR_ETOH=0.0 +!WR_MO2/ALKEP=0.0 ! -!NO2/WR_ALCH=0.0 +!WR_MO2/BIOP=0.0 ! -!NO2/WR_HCHO=0.0 +!WR_MO2/PHO=0.0 ! -!NO2/WR_ALD2=0.0 +!WR_MO2/ADD=0.0 ! -!NO2/WR_GLY=0.0 +!WR_MO2/AROP=0.0 ! -!NO2/WR_MGLY=0.0 +!WR_MO2/CARBOP=0.0 ! -!NO2/WR_KETL=0.0 +!WR_MO2/OLN=0.0 ! -!NO2/WR_ORA1=0.0 +!WR_MO2/XO2=0.0 ! -!NO2/WR_ORA2=0.0 +!WR_MO2/WC_O3=0.0 ! -!NO2/WR_ACID=0.0 +!WR_MO2/WC_H2O2=0.0 ! -!NO2/WR_RP16=0.0 +!WR_MO2/WC_NO=0.0 ! -!NO2/WR_UR21=0.0 +!WR_MO2/WC_NO2=0.0 ! -!NO2/WR_UR28=0.0 +!WR_MO2/WC_NO3=0.0 ! -!NO2/WR_ACID2=0.0 +!WR_MO2/WC_N2O5=0.0 ! -!NO2/WR_ASO3=0.0 +!WR_MO2/WC_HONO=0.0 ! -!NO2/WR_ASO4=0.0 +!WR_MO2/WC_HNO3=0.0 ! -!NO2/WR_ASO5=0.0 +!WR_MO2/WC_HNO4=0.0 ! -!NO2/WR_AHSO5=0.0 +!WR_MO2/WC_NH3=0.0 ! -!NO2/WR_AHMS=0.0 +!WR_MO2/WC_OH=0.0 ! -!O3/NO=-K005*<O3> - PJAC(:,3,1)=-TPK%K005(:)*PCONC(:,3) +!WR_MO2/WC_HO2=0.0 ! -!O3/NO2=-K006*<O3> - PJAC(:,3,2)=-TPK%K006(:)*PCONC(:,3) +!WR_MO2/WC_CO2=0.0 ! -!O3/O3=-K005*<NO>-K006*<NO2>-K015-K016-K025*<OH>-K030*<HO2>-K034*<O>-K051*<ETHE -!>-K056*<OLEL>-K066*<ISOP>-K076*<OLEH>-K086*<BIOL>-K090*<BIOH>-K281*<MVK>-K282* -!<MCR>-KTC1-KTR1 - PJAC(:,3,3)=-TPK%K005(:)*PCONC(:,1)-TPK%K006(:)*PCONC(:,2)-TPK%K015(:)-TPK%K01& -&6(:)-TPK%K025(:)*PCONC(:,15)-TPK%K030(:)*PCONC(:,10)-TPK%K034(:)*TPK%O(:)-TPK%& -&K051(:)*PCONC(:,16)-TPK%K056(:)*PCONC(:,17)-TPK%K066(:)*PCONC(:,35)-TPK%K076(:& -&)*PCONC(:,18)-TPK%K086(:)*PCONC(:,36)-TPK%K090(:)*PCONC(:,37)-TPK%K281(:)*PCON& -&C(:,39)-TPK%K282(:)*PCONC(:,40)-TPK%KTC1(:)-TPK%KTR1(:) +!WR_MO2/WC_SO2=0.0 ! -!O3/HONO=0.0 +!WR_MO2/WC_SULF=0.0 ! -!O3/HNO3=0.0 +!WR_MO2/WC_HCHO=0.0 ! -!O3/HNO4=0.0 +!WR_MO2/WC_ORA1=0.0 ! -!O3/N2O5=0.0 +!WR_MO2/WC_ORA2=0.0 ! -!O3/NO3=+K081*<ARAL> - PJAC(:,3,8)=+TPK%K081(:)*PCONC(:,25) +!WR_MO2/WC_MO2=0.0 ! -!O3/NH3=0.0 +!WR_MO2/WC_OP1=0.0 ! -!O3/HO2=-K030*<O3>+K142*<RO26>+K148*<RO28>+K166*<RO239>+K279*<RO248>+K289*<RO25 -!0>+K301*<RO254>+K310*<RO255>+K318*<RO256>+K332*<RO257>+K341*<RO258> - PJAC(:,3,10)=-TPK%K030(:)*PCONC(:,3)+TPK%K142(:)*TPK%RO26(:)+TPK%K148(:)*TPK%R& -&O28(:)+TPK%K166(:)*TPK%RO239(:)+TPK%K279(:)*TPK%RO248(:)+TPK%K289(:)*TPK%RO250& -&(:)+TPK%K301(:)*TPK%RO254(:)+TPK%K310(:)*TPK%RO255(:)+TPK%K318(:)*TPK%RO256(:)& -&+TPK%K332(:)*TPK%RO257(:)+TPK%K341(:)*TPK%RO258(:) +!WR_MO2/WC_ASO3=0.0 ! -!O3/CO=0.0 +!WR_MO2/WC_ASO4=0.0 ! -!O3/H2O2=0.0 +!WR_MO2/WC_ASO5=0.0 ! -!O3/SO2=0.0 +!WR_MO2/WC_AHSO5=0.0 ! -!O3/H2SO4=0.0 +!WR_MO2/WC_AHMS=0.0 ! -!O3/OH=-K025*<O3>+TPK%CF39*K082*<ARAL>+K303*<RPR5>+1.0000011*K306*<RPRL>+K322*< -!RPR7>+1.0000005*K323*<RPG7>+K326*<RP11>+1.0000000*K334*<RPG3>+1.0000000*K335*< -!RPG2>+K337*<RP18> - PJAC(:,3,15)=-TPK%K025(:)*PCONC(:,3)+TPK%CF39*TPK%K082(:)*PCONC(:,25)+TPK%K303& -&(:)*PCONC(:,70)+1.0000011*TPK%K306(:)*PCONC(:,75)+TPK%K322(:)*PCONC(:,62)+1.00& -&00005*TPK%K323(:)*PCONC(:,63)+TPK%K326(:)*PCONC(:,73)+1.0000000*TPK%K334(:)*PC& -&ONC(:,52)+1.0000000*TPK%K335(:)*PCONC(:,50)+TPK%K337(:)*PCONC(:,51) +!WR_MO2/WR_O3=0.0 ! -!O3/ETHE=-K051*<O3> - PJAC(:,3,16)=-TPK%K051(:)*PCONC(:,3) +!WR_MO2/WR_H2O2=0.0 ! -!O3/OLEL=-K056*<O3> - PJAC(:,3,17)=-TPK%K056(:)*PCONC(:,3) +!WR_MO2/WR_NO=0.0 ! -!O3/OLEH=-K076*<O3> - PJAC(:,3,18)=-TPK%K076(:)*PCONC(:,3) +!WR_MO2/WR_NO2=0.0 ! -!O3/ALKL=0.0 +!WR_MO2/WR_NO3=0.0 ! -!O3/ALKM=0.0 +!WR_MO2/WR_N2O5=0.0 ! -!O3/ALKH=0.0 +!WR_MO2/WR_HONO=0.0 ! -!O3/AROH=0.0 +!WR_MO2/WR_HNO3=0.0 ! -!O3/AROL=0.0 +!WR_MO2/WR_HNO4=0.0 ! -!O3/AROO=0.0 +!WR_MO2/WR_NH3=0.0 ! -!O3/ARAL=+K081*<NO3>+TPK%CF39*K082*<OH> - PJAC(:,3,25)=+TPK%K081(:)*PCONC(:,8)+TPK%CF39*TPK%K082(:)*PCONC(:,15) +!WR_MO2/WR_OH=0.0 ! -!O3/ARAC=0.0 +!WR_MO2/WR_HO2=0.0 ! -!O3/PAH=0.0 +!WR_MO2/WR_CO2=0.0 ! -!O3/HCHO=0.0 +!WR_MO2/WR_SO2=-KR18*<WR_MO2> + PJAC(:,85,80)=-TPK%KR18(:)*PCONC(:,85) ! -!O3/ALD2=0.0 +!WR_MO2/WR_SULF=0.0 ! -!O3/KETL=0.0 +!WR_MO2/WR_HCHO=0.0 ! -!O3/KETH=0.0 +!WR_MO2/WR_ORA1=0.0 ! -!O3/MEOH=0.0 +!WR_MO2/WR_ORA2=0.0 ! -!O3/ETOH=0.0 +!WR_MO2/WR_MO2=-KTR39-KR17*<WR_MO2>-KR17*<WR_MO2>-KR17*<WR_MO2>-KR17*<WR_MO2>-K +!R18*<WR_SO2> + PJAC(:,85,85)=-TPK%KTR39(:)-TPK%KR17(:)*PCONC(:,85)-TPK%KR17(:)*PCONC(:,85)-TP& +&K%KR17(:)*PCONC(:,85)-TPK%KR17(:)*PCONC(:,85)-TPK%KR18(:)*PCONC(:,80) ! -!O3/ALCH=0.0 +!WR_MO2/WR_OP1=0.0 ! -!O3/ISOP=-K066*<O3> - PJAC(:,3,35)=-TPK%K066(:)*PCONC(:,3) +!WR_MO2/WR_ASO3=0.0 ! -!O3/BIOL=-K086*<O3> - PJAC(:,3,36)=-TPK%K086(:)*PCONC(:,3) +!WR_MO2/WR_ASO4=0.0 ! -!O3/BIOH=-K090*<O3> - PJAC(:,3,37)=-TPK%K090(:)*PCONC(:,3) +!WR_MO2/WR_ASO5=0.0 ! -!O3/MTBE=0.0 +!WR_MO2/WR_AHSO5=0.0 ! -!O3/MVK=-K281*<O3> - PJAC(:,3,39)=-TPK%K281(:)*PCONC(:,3) +!WR_MO2/WR_AHMS=0.0 ! -!O3/MCR=-K282*<O3> - PJAC(:,3,40)=-TPK%K282(:)*PCONC(:,3) +RETURN +END SUBROUTINE SUBJ16 ! -!O3/MGLY=0.0 +SUBROUTINE SUBJ17 ! -!O3/GLY=0.0 +!Indices 86 a 90 ! -!O3/ORA1=0.0 ! -!O3/ORA2=0.0 +!WR_OP1/O3=0.0 ! -!O3/ACID=0.0 +!WR_OP1/H2O2=0.0 ! -!O3/UR28=0.0 +!WR_OP1/NO=0.0 ! -!O3/UR21=0.0 +!WR_OP1/NO2=0.0 ! -!O3/URG2=0.0 +!WR_OP1/NO3=0.0 ! -!O3/UR26=0.0 +!WR_OP1/N2O5=0.0 ! -!O3/RPG2=+1.0000000*K335*<OH> - PJAC(:,3,50)=+1.0000000*TPK%K335(:)*PCONC(:,15) +!WR_OP1/HONO=0.0 ! -!O3/RP18=+K337*<OH> - PJAC(:,3,51)=+TPK%K337(:)*PCONC(:,15) +!WR_OP1/HNO3=0.0 ! -!O3/RPG3=+1.0000000*K334*<OH> - PJAC(:,3,52)=+1.0000000*TPK%K334(:)*PCONC(:,15) +!WR_OP1/HNO4=0.0 ! -!O3/URG4=0.0 +!WR_OP1/NH3=0.0 ! -!O3/UR8=0.0 +!WR_OP1/SO2=0.0 ! -!O3/UR17=0.0 +!WR_OP1/SULF=0.0 ! -!O3/UR7=0.0 +!WR_OP1/CO=0.0 ! -!O3/RPR3=0.0 +!WR_OP1/OH=0.0 ! -!O3/URG6=0.0 +!WR_OP1/HO2=0.0 ! -!O3/UR22=0.0 +!WR_OP1/CH4=0.0 ! -!O3/URG7=0.0 +!WR_OP1/ETH=0.0 ! -!O3/RPR4=0.0 +!WR_OP1/ALKA=0.0 ! -!O3/RPR7=+K322*<OH> - PJAC(:,3,62)=+TPK%K322(:)*PCONC(:,15) +!WR_OP1/ALKE=0.0 ! -!O3/RPG7=+1.0000005*K323*<OH> - PJAC(:,3,63)=+1.0000005*TPK%K323(:)*PCONC(:,15) +!WR_OP1/BIO=0.0 ! -!O3/URG8=0.0 +!WR_OP1/ARO=0.0 ! -!O3/UR19=0.0 +!WR_OP1/HCHO=0.0 ! -!O3/URG9=0.0 +!WR_OP1/ALD=0.0 ! -!O3/AP7=0.0 +!WR_OP1/KET=0.0 ! -!O3/URG10=0.0 +!WR_OP1/CARBO=0.0 ! -!O3/RPR1=0.0 +!WR_OP1/ONIT=0.0 ! -!O3/RPR5=+K303*<OH> - PJAC(:,3,70)=+TPK%K303(:)*PCONC(:,15) +!WR_OP1/PAN=0.0 ! -!O3/RPR8=0.0 +!WR_OP1/OP1=+KTR20 + PJAC(:,86,28)=+TPK%KTR20(:) ! -!O3/RP10=0.0 +!WR_OP1/OP2=0.0 ! -!O3/RP11=+K326*<OH> - PJAC(:,3,73)=+TPK%K326(:)*PCONC(:,15) +!WR_OP1/ORA1=0.0 ! -!O3/RP16=0.0 +!WR_OP1/ORA2=0.0 ! -!O3/RPRL=+1.0000011*K306*<OH> - PJAC(:,3,75)=+1.0000011*TPK%K306(:)*PCONC(:,15) +!WR_OP1/MO2=0.0 ! -!O3/APAN=0.0 +!WR_OP1/ALKAP=0.0 ! -!O3/PAN1=0.0 +!WR_OP1/ALKEP=0.0 ! -!O3/PAN2=0.0 +!WR_OP1/BIOP=0.0 ! -!O3/PAN3=0.0 +!WR_OP1/PHO=0.0 ! -!O3/PAN4=0.0 +!WR_OP1/ADD=0.0 ! -!O3/PAN6=0.0 +!WR_OP1/AROP=0.0 ! -!O3/PAN7=0.0 +!WR_OP1/CARBOP=0.0 ! -!O3/PAN8=0.0 +!WR_OP1/OLN=0.0 ! -!O3/PN10=0.0 +!WR_OP1/XO2=0.0 ! -!O3/RO2T=0.0 +!WR_OP1/WC_O3=0.0 ! -!O3/RO21=0.0 +!WR_OP1/WC_H2O2=0.0 ! -!O3/RO25=0.0 +!WR_OP1/WC_NO=0.0 ! -!O3/WC_O3=+KTC32 - PJAC(:,3,88)=+TPK%KTC32(:) +!WR_OP1/WC_NO2=0.0 ! -!O3/WC_H2O2=0.0 +!WR_OP1/WC_NO3=0.0 ! -!O3/WC_NO=0.0 +!WR_OP1/WC_N2O5=0.0 ! -!O3/WC_NO2=0.0 -! -!O3/WC_NO3=0.0 -! -!O3/WC_N2O5=0.0 -! -!O3/WC_HONO=0.0 -! -!O3/WC_HNO3=0.0 -! -!O3/WC_HNO4=0.0 -! -!O3/WC_NH3=0.0 -! -!O3/WC_OH=0.0 -! -!O3/WC_HO2=0.0 -! -!O3/WC_CO2=0.0 -! -!O3/WC_SO2=0.0 -! -!O3/WC_H2SO4=0.0 -! -!O3/WC_RO21=0.0 -! -!O3/WC_RO25=0.0 +!WR_OP1/WC_HONO=0.0 ! -!O3/WC_MEOH=0.0 +!WR_OP1/WC_HNO3=0.0 ! -!O3/WC_ETOH=0.0 +!WR_OP1/WC_HNO4=0.0 ! -!O3/WC_ALCH=0.0 +!WR_OP1/WC_NH3=0.0 ! -!O3/WC_HCHO=0.0 +!WR_OP1/WC_OH=0.0 ! -!O3/WC_ALD2=0.0 +!WR_OP1/WC_HO2=0.0 ! -!O3/WC_GLY=0.0 +!WR_OP1/WC_CO2=0.0 ! -!O3/WC_MGLY=0.0 +!WR_OP1/WC_SO2=0.0 ! -!O3/WC_KETL=0.0 +!WR_OP1/WC_SULF=0.0 ! -!O3/WC_ORA1=0.0 +!WR_OP1/WC_HCHO=0.0 ! -!O3/WC_ORA2=0.0 +!WR_OP1/WC_ORA1=0.0 ! -!O3/WC_ACID=0.0 +!WR_OP1/WC_ORA2=0.0 ! -!O3/WC_RP16=0.0 +!WR_OP1/WC_MO2=0.0 ! -!O3/WC_UR21=0.0 +!WR_OP1/WC_OP1=0.0 ! -!O3/WC_UR28=0.0 +!WR_OP1/WC_ASO3=0.0 ! -!O3/WC_ACID2=0.0 +!WR_OP1/WC_ASO4=0.0 ! -!O3/WC_ASO3=0.0 +!WR_OP1/WC_ASO5=0.0 ! -!O3/WC_ASO4=0.0 +!WR_OP1/WC_AHSO5=0.0 ! -!O3/WC_ASO5=0.0 +!WR_OP1/WC_AHMS=0.0 ! -!O3/WC_AHSO5=0.0 +!WR_OP1/WR_O3=0.0 ! -!O3/WC_AHMS=0.0 +!WR_OP1/WR_H2O2=0.0 ! -!O3/WR_O3=+KTR32 - PJAC(:,3,125)=+TPK%KTR32(:) +!WR_OP1/WR_NO=0.0 ! -!O3/WR_H2O2=0.0 +!WR_OP1/WR_NO2=0.0 ! -!O3/WR_NO=0.0 +!WR_OP1/WR_NO3=0.0 ! -!O3/WR_NO2=0.0 +!WR_OP1/WR_N2O5=0.0 ! -!O3/WR_NO3=0.0 +!WR_OP1/WR_HONO=0.0 ! -!O3/WR_N2O5=0.0 +!WR_OP1/WR_HNO3=0.0 ! -!O3/WR_HONO=0.0 +!WR_OP1/WR_HNO4=0.0 ! -!O3/WR_HNO3=0.0 +!WR_OP1/WR_NH3=0.0 ! -!O3/WR_HNO4=0.0 +!WR_OP1/WR_OH=0.0 ! -!O3/WR_NH3=0.0 +!WR_OP1/WR_HO2=0.0 ! -!O3/WR_OH=0.0 +!WR_OP1/WR_CO2=0.0 ! -!O3/WR_HO2=0.0 +!WR_OP1/WR_SO2=+KR18*<WR_MO2> + PJAC(:,86,80)=+TPK%KR18(:)*PCONC(:,85) ! -!O3/WR_CO2=0.0 +!WR_OP1/WR_SULF=0.0 ! -!O3/WR_SO2=0.0 +!WR_OP1/WR_HCHO=0.0 ! -!O3/WR_H2SO4=0.0 +!WR_OP1/WR_ORA1=0.0 ! -!O3/WR_RO21=0.0 +!WR_OP1/WR_ORA2=0.0 ! -!O3/WR_RO25=0.0 +!WR_OP1/WR_MO2=+KR18*<WR_SO2> + PJAC(:,86,85)=+TPK%KR18(:)*PCONC(:,80) ! -!O3/WR_MEOH=0.0 +!WR_OP1/WR_OP1=-KTR40 + PJAC(:,86,86)=-TPK%KTR40(:) ! -!O3/WR_ETOH=0.0 +!WR_OP1/WR_ASO3=0.0 ! -!O3/WR_ALCH=0.0 +!WR_OP1/WR_ASO4=0.0 ! -!O3/WR_HCHO=0.0 +!WR_OP1/WR_ASO5=0.0 ! -!O3/WR_ALD2=0.0 +!WR_OP1/WR_AHSO5=0.0 ! -!O3/WR_GLY=0.0 +!WR_OP1/WR_AHMS=0.0 ! -!O3/WR_MGLY=0.0 +!WR_ASO3/O3=0.0 ! -!O3/WR_KETL=0.0 +!WR_ASO3/H2O2=0.0 ! -!O3/WR_ORA1=0.0 +!WR_ASO3/NO=0.0 ! -!O3/WR_ORA2=0.0 +!WR_ASO3/NO2=0.0 ! -!O3/WR_ACID=0.0 +!WR_ASO3/NO3=0.0 ! -!O3/WR_RP16=0.0 +!WR_ASO3/N2O5=0.0 ! -!O3/WR_UR21=0.0 +!WR_ASO3/HONO=0.0 ! -!O3/WR_UR28=0.0 +!WR_ASO3/HNO3=0.0 ! -!O3/WR_ACID2=0.0 +!WR_ASO3/HNO4=0.0 ! -!O3/WR_ASO3=0.0 +!WR_ASO3/NH3=0.0 ! -!O3/WR_ASO4=0.0 +!WR_ASO3/SO2=0.0 ! -!O3/WR_ASO5=0.0 +!WR_ASO3/SULF=0.0 ! -!O3/WR_AHSO5=0.0 +!WR_ASO3/CO=0.0 ! -!O3/WR_AHMS=0.0 +!WR_ASO3/OH=0.0 ! -!HONO/NO=+K019*<OH> - PJAC(:,4,1)=+TPK%K019(:)*PCONC(:,15) +!WR_ASO3/HO2=0.0 ! -!HONO/NO2=+0.5*K021*<H2O> - PJAC(:,4,2)=+0.5*TPK%K021(:)*TPK%H2O(:) +!WR_ASO3/CH4=0.0 ! -!HONO/O3=0.0 +!WR_ASO3/ETH=0.0 ! -!HONO/HONO=-K020-K039*<OH>-KTC7-KTR7 - PJAC(:,4,4)=-TPK%K020(:)-TPK%K039(:)*PCONC(:,15)-TPK%KTC7(:)-TPK%KTR7(:) +!WR_ASO3/ALKA=0.0 ! -!HONO/HNO3=0.0 +!WR_ASO3/ALKE=0.0 ! -!HONO/HNO4=0.0 +!WR_ASO3/BIO=0.0 ! -!HONO/N2O5=0.0 +!WR_ASO3/ARO=0.0 ! -!HONO/NO3=0.0 +!WR_ASO3/HCHO=0.0 ! -!HONO/NH3=0.0 +!WR_ASO3/ALD=0.0 ! -!HONO/HO2=0.0 +!WR_ASO3/KET=0.0 ! -!HONO/CO=0.0 +!WR_ASO3/CARBO=0.0 ! -!HONO/H2O2=0.0 +!WR_ASO3/ONIT=0.0 ! -!HONO/SO2=0.0 +!WR_ASO3/PAN=0.0 ! -!HONO/H2SO4=0.0 +!WR_ASO3/OP1=0.0 ! -!HONO/OH=+K019*<NO>-K039*<HONO> - PJAC(:,4,15)=+TPK%K019(:)*PCONC(:,1)-TPK%K039(:)*PCONC(:,4) +!WR_ASO3/OP2=0.0 ! -!HONO/ETHE=0.0 +!WR_ASO3/ORA1=0.0 ! -!HONO/OLEL=0.0 +!WR_ASO3/ORA2=0.0 ! -!HONO/OLEH=0.0 +!WR_ASO3/MO2=0.0 ! -!HONO/ALKL=0.0 +!WR_ASO3/ALKAP=0.0 ! -!HONO/ALKM=0.0 +!WR_ASO3/ALKEP=0.0 ! -!HONO/ALKH=0.0 +!WR_ASO3/BIOP=0.0 ! -!HONO/AROH=0.0 +!WR_ASO3/PHO=0.0 ! -!HONO/AROL=0.0 +!WR_ASO3/ADD=0.0 ! -!HONO/AROO=0.0 +!WR_ASO3/AROP=0.0 ! -!HONO/ARAL=0.0 +!WR_ASO3/CARBOP=0.0 ! -!HONO/ARAC=0.0 +!WR_ASO3/OLN=0.0 ! -!HONO/PAH=0.0 +!WR_ASO3/XO2=0.0 ! -!HONO/HCHO=0.0 +!WR_ASO3/WC_O3=0.0 ! -!HONO/ALD2=0.0 +!WR_ASO3/WC_H2O2=0.0 ! -!HONO/KETL=0.0 +!WR_ASO3/WC_NO=0.0 ! -!HONO/KETH=0.0 +!WR_ASO3/WC_NO2=0.0 ! -!HONO/MEOH=0.0 +!WR_ASO3/WC_NO3=0.0 ! -!HONO/ETOH=0.0 +!WR_ASO3/WC_N2O5=0.0 ! -!HONO/ALCH=0.0 +!WR_ASO3/WC_HONO=0.0 ! -!HONO/ISOP=0.0 +!WR_ASO3/WC_HNO3=0.0 ! -!HONO/BIOL=0.0 +!WR_ASO3/WC_HNO4=0.0 ! -!HONO/BIOH=0.0 +!WR_ASO3/WC_NH3=0.0 ! -!HONO/MTBE=0.0 +!WR_ASO3/WC_OH=0.0 ! -!HONO/MVK=0.0 +!WR_ASO3/WC_HO2=0.0 ! -!HONO/MCR=0.0 +!WR_ASO3/WC_CO2=0.0 ! -!HONO/MGLY=0.0 +!WR_ASO3/WC_SO2=0.0 ! -!HONO/GLY=0.0 +!WR_ASO3/WC_SULF=0.0 ! -!HONO/ORA1=0.0 +!WR_ASO3/WC_HCHO=0.0 ! -!HONO/ORA2=0.0 +!WR_ASO3/WC_ORA1=0.0 ! -!HONO/ACID=0.0 +!WR_ASO3/WC_ORA2=0.0 ! -!HONO/UR28=0.0 +!WR_ASO3/WC_MO2=0.0 ! -!HONO/UR21=0.0 +!WR_ASO3/WC_OP1=0.0 ! -!HONO/URG2=0.0 +!WR_ASO3/WC_ASO3=0.0 ! -!HONO/UR26=0.0 +!WR_ASO3/WC_ASO4=0.0 ! -!HONO/RPG2=0.0 +!WR_ASO3/WC_ASO5=0.0 ! -!HONO/RP18=0.0 +!WR_ASO3/WC_AHSO5=0.0 ! -!HONO/RPG3=0.0 +!WR_ASO3/WC_AHMS=0.0 ! -!HONO/URG4=0.0 +!WR_ASO3/WR_O3=0.0 ! -!HONO/UR8=0.0 +!WR_ASO3/WR_H2O2=0.0 ! -!HONO/UR17=0.0 +!WR_ASO3/WR_NO=0.0 ! -!HONO/UR7=0.0 +!WR_ASO3/WR_NO2=0.0 ! -!HONO/RPR3=0.0 +!WR_ASO3/WR_NO3=+KR16*<WR_SO2> + PJAC(:,87,71)=+TPK%KR16(:)*PCONC(:,80) ! -!HONO/URG6=0.0 +!WR_ASO3/WR_N2O5=0.0 ! -!HONO/UR22=0.0 +!WR_ASO3/WR_HONO=0.0 ! -!HONO/URG7=0.0 +!WR_ASO3/WR_HNO3=0.0 ! -!HONO/RPR4=0.0 +!WR_ASO3/WR_HNO4=0.0 ! -!HONO/RPR7=0.0 +!WR_ASO3/WR_NH3=0.0 ! -!HONO/RPG7=0.0 +!WR_ASO3/WR_OH=+KR7*<WR_SO2> + PJAC(:,87,77)=+TPK%KR7(:)*PCONC(:,80) ! -!HONO/URG8=0.0 +!WR_ASO3/WR_HO2=0.0 ! -!HONO/UR19=0.0 +!WR_ASO3/WR_CO2=0.0 ! -!HONO/URG9=0.0 +!WR_ASO3/WR_SO2=+KR7*<WR_OH>+KR16*<WR_NO3>+KR18*<WR_MO2> + PJAC(:,87,80)=+TPK%KR7(:)*PCONC(:,77)+TPK%KR16(:)*PCONC(:,71)+TPK%KR18(:)*PCON& +&C(:,85) ! -!HONO/AP7=0.0 +!WR_ASO3/WR_SULF=0.0 ! -!HONO/URG10=0.0 +!WR_ASO3/WR_HCHO=0.0 ! -!HONO/RPR1=0.0 +!WR_ASO3/WR_ORA1=0.0 ! -!HONO/RPR5=0.0 +!WR_ASO3/WR_ORA2=0.0 ! -!HONO/RPR8=0.0 +!WR_ASO3/WR_MO2=+KR18*<WR_SO2> + PJAC(:,87,85)=+TPK%KR18(:)*PCONC(:,80) ! -!HONO/RP10=0.0 +!WR_ASO3/WR_OP1=0.0 ! -!HONO/RP11=0.0 +!WR_ASO3/WR_ASO3=-KR24*<W_O2> + PJAC(:,87,87)=-TPK%KR24(:)*TPK%W_O2(:) ! -!HONO/RP16=0.0 +!WR_ASO3/WR_ASO4=0.0 ! -!HONO/RPRL=0.0 +!WR_ASO3/WR_ASO5=0.0 ! -!HONO/APAN=0.0 +!WR_ASO3/WR_AHSO5=0.0 ! -!HONO/PAN1=0.0 +!WR_ASO3/WR_AHMS=0.0 ! -!HONO/PAN2=0.0 +!WR_ASO4/O3=0.0 ! -!HONO/PAN3=0.0 +!WR_ASO4/H2O2=0.0 ! -!HONO/PAN4=0.0 +!WR_ASO4/NO=0.0 ! -!HONO/PAN6=0.0 +!WR_ASO4/NO2=0.0 ! -!HONO/PAN7=0.0 +!WR_ASO4/NO3=0.0 ! -!HONO/PAN8=0.0 +!WR_ASO4/N2O5=0.0 ! -!HONO/PN10=0.0 +!WR_ASO4/HONO=0.0 ! -!HONO/RO2T=0.0 +!WR_ASO4/HNO3=0.0 ! -!HONO/RO21=0.0 +!WR_ASO4/HNO4=0.0 ! -!HONO/RO25=0.0 +!WR_ASO4/NH3=0.0 ! -!HONO/WC_O3=0.0 +!WR_ASO4/SO2=0.0 ! -!HONO/WC_H2O2=0.0 +!WR_ASO4/SULF=0.0 ! -!HONO/WC_NO=0.0 +!WR_ASO4/CO=0.0 ! -!HONO/WC_NO2=0.0 +!WR_ASO4/OH=0.0 ! -!HONO/WC_NO3=0.0 +!WR_ASO4/HO2=0.0 ! -!HONO/WC_N2O5=0.0 +!WR_ASO4/CH4=0.0 ! -!HONO/WC_HONO=+KTC38 - PJAC(:,4,94)=+TPK%KTC38(:) +!WR_ASO4/ETH=0.0 ! -!HONO/WC_HNO3=0.0 +!WR_ASO4/ALKA=0.0 ! -!HONO/WC_HNO4=0.0 +!WR_ASO4/ALKE=0.0 ! -!HONO/WC_NH3=0.0 +!WR_ASO4/BIO=0.0 ! -!HONO/WC_OH=0.0 +!WR_ASO4/ARO=0.0 ! -!HONO/WC_HO2=0.0 +!WR_ASO4/HCHO=0.0 ! -!HONO/WC_CO2=0.0 +!WR_ASO4/ALD=0.0 ! -!HONO/WC_SO2=0.0 +!WR_ASO4/KET=0.0 ! -!HONO/WC_H2SO4=0.0 +!WR_ASO4/CARBO=0.0 ! -!HONO/WC_RO21=0.0 +!WR_ASO4/ONIT=0.0 ! -!HONO/WC_RO25=0.0 +!WR_ASO4/PAN=0.0 ! -!HONO/WC_MEOH=0.0 +!WR_ASO4/OP1=0.0 ! -!HONO/WC_ETOH=0.0 +!WR_ASO4/OP2=0.0 ! -!HONO/WC_ALCH=0.0 +!WR_ASO4/ORA1=0.0 ! -!HONO/WC_HCHO=0.0 +!WR_ASO4/ORA2=0.0 ! -!HONO/WC_ALD2=0.0 +!WR_ASO4/MO2=0.0 ! -!HONO/WC_GLY=0.0 +!WR_ASO4/ALKAP=0.0 ! -!HONO/WC_MGLY=0.0 +!WR_ASO4/ALKEP=0.0 ! -!HONO/WC_KETL=0.0 +!WR_ASO4/BIOP=0.0 ! -!HONO/WC_ORA1=0.0 +!WR_ASO4/PHO=0.0 ! -!HONO/WC_ORA2=0.0 +!WR_ASO4/ADD=0.0 ! -!HONO/WC_ACID=0.0 +!WR_ASO4/AROP=0.0 ! -!HONO/WC_RP16=0.0 +!WR_ASO4/CARBOP=0.0 ! -!HONO/WC_UR21=0.0 +!WR_ASO4/OLN=0.0 ! -!HONO/WC_UR28=0.0 +!WR_ASO4/XO2=0.0 ! -!HONO/WC_ACID2=0.0 +!WR_ASO4/WC_O3=0.0 ! -!HONO/WC_ASO3=0.0 +!WR_ASO4/WC_H2O2=0.0 ! -!HONO/WC_ASO4=0.0 +!WR_ASO4/WC_NO=0.0 ! -!HONO/WC_ASO5=0.0 +!WR_ASO4/WC_NO2=0.0 ! -!HONO/WC_AHSO5=0.0 +!WR_ASO4/WC_NO3=0.0 ! -!HONO/WC_AHMS=0.0 +!WR_ASO4/WC_N2O5=0.0 ! -!HONO/WR_O3=0.0 +!WR_ASO4/WC_HONO=0.0 ! -!HONO/WR_H2O2=0.0 +!WR_ASO4/WC_HNO3=0.0 ! -!HONO/WR_NO=0.0 +!WR_ASO4/WC_HNO4=0.0 ! -!HONO/WR_NO2=0.0 +!WR_ASO4/WC_NH3=0.0 ! -!HONO/WR_NO3=0.0 +!WR_ASO4/WC_OH=0.0 ! -!HONO/WR_N2O5=0.0 +!WR_ASO4/WC_HO2=0.0 ! -!HONO/WR_HONO=+KTR38 - PJAC(:,4,131)=+TPK%KTR38(:) +!WR_ASO4/WC_CO2=0.0 ! -!HONO/WR_HNO3=0.0 +!WR_ASO4/WC_SO2=0.0 ! -!HONO/WR_HNO4=0.0 +!WR_ASO4/WC_SULF=0.0 ! -!HONO/WR_NH3=0.0 +!WR_ASO4/WC_HCHO=0.0 ! -!HONO/WR_OH=0.0 +!WR_ASO4/WC_ORA1=0.0 ! -!HONO/WR_HO2=0.0 +!WR_ASO4/WC_ORA2=0.0 ! -!HONO/WR_CO2=0.0 +!WR_ASO4/WC_MO2=0.0 ! -!HONO/WR_SO2=0.0 +!WR_ASO4/WC_OP1=0.0 ! -!HONO/WR_H2SO4=0.0 +!WR_ASO4/WC_ASO3=0.0 ! -!HONO/WR_RO21=0.0 +!WR_ASO4/WC_ASO4=0.0 ! -!HONO/WR_RO25=0.0 +!WR_ASO4/WC_ASO5=0.0 ! -!HONO/WR_MEOH=0.0 +!WR_ASO4/WC_AHSO5=0.0 ! -!HONO/WR_ETOH=0.0 +!WR_ASO4/WC_AHMS=0.0 ! -!HONO/WR_ALCH=0.0 +!WR_ASO4/WR_O3=0.0 ! -!HONO/WR_HCHO=0.0 +!WR_ASO4/WR_H2O2=0.0 ! -!HONO/WR_ALD2=0.0 +!WR_ASO4/WR_NO=0.0 ! -!HONO/WR_GLY=0.0 +!WR_ASO4/WR_NO2=0.0 ! -!HONO/WR_MGLY=0.0 +!WR_ASO4/WR_NO3=+KR15*<WR_SULF> + PJAC(:,88,71)=+TPK%KR15(:)*PCONC(:,81) ! -!HONO/WR_KETL=0.0 +!WR_ASO4/WR_N2O5=0.0 ! -!HONO/WR_ORA1=0.0 +!WR_ASO4/WR_HONO=0.0 ! -!HONO/WR_ORA2=0.0 +!WR_ASO4/WR_HNO3=0.0 ! -!HONO/WR_ACID=0.0 +!WR_ASO4/WR_HNO4=0.0 ! -!HONO/WR_RP16=0.0 +!WR_ASO4/WR_NH3=0.0 ! -!HONO/WR_UR21=0.0 +!WR_ASO4/WR_OH=0.0 ! -!HONO/WR_UR28=0.0 +!WR_ASO4/WR_HO2=0.0 ! -!HONO/WR_ACID2=0.0 +!WR_ASO4/WR_CO2=0.0 ! -!HONO/WR_ASO3=0.0 +!WR_ASO4/WR_SO2=0.0 ! -!HONO/WR_ASO4=0.0 +!WR_ASO4/WR_SULF=+KR15*<WR_NO3> + PJAC(:,88,81)=+TPK%KR15(:)*PCONC(:,71) ! -!HONO/WR_ASO5=0.0 +!WR_ASO4/WR_HCHO=0.0 ! -!HONO/WR_AHSO5=0.0 +!WR_ASO4/WR_ORA1=0.0 ! -!HONO/WR_AHMS=0.0 +!WR_ASO4/WR_ORA2=0.0 ! -!HNO3/NO=0.0 +!WR_ASO4/WR_MO2=0.0 ! -!HNO3/NO2=+0.5*K021*<H2O>+K022*<OH> - PJAC(:,5,2)=+0.5*TPK%K021(:)*TPK%H2O(:)+TPK%K022(:)*PCONC(:,15) +!WR_ASO4/WR_OP1=0.0 ! -!HNO3/O3=0.0 +!WR_ASO4/WR_ASO3=0.0 ! -!HNO3/HONO=0.0 +!WR_ASO4/WR_ASO4=-KR28 + PJAC(:,88,88)=-TPK%KR28(:) ! -!HNO3/HNO3=-K023*<OH>-KTC8-KTR8 - PJAC(:,5,5)=-TPK%K023(:)*PCONC(:,15)-TPK%KTC8(:)-TPK%KTR8(:) +!WR_ASO4/WR_ASO5=+KR26*<WR_ASO5>+KR26*<WR_ASO5>+KR26*<WR_ASO5>+KR26*<WR_ASO5> + PJAC(:,88,89)=+TPK%KR26(:)*PCONC(:,89)+TPK%KR26(:)*PCONC(:,89)+TPK%KR26(:)*PCO& +&NC(:,89)+TPK%KR26(:)*PCONC(:,89) ! -!HNO3/HNO4=0.0 +!WR_ASO4/WR_AHSO5=0.0 ! -!HNO3/N2O5=+2.*K011*<H2O> - PJAC(:,5,7)=+2.*TPK%K011(:)*TPK%H2O(:) +!WR_ASO4/WR_AHMS=0.0 ! -!HNO3/NO3=+0.2*K033*<HO2>+K047*<HCHO>+K061*<ALD2>+K072*<AROO>+K081*<ARAL>+TPK%C -!F46*K275*<MCR>+K278*<MGLY>+K307*<RPR1>+K313*<RPR3>+K320*<RPR4>+K327*<RPR8>+K33 -!8*<RP16> - PJAC(:,5,8)=+0.2*TPK%K033(:)*PCONC(:,10)+TPK%K047(:)*PCONC(:,28)+TPK%K061(:)*P& -&CONC(:,29)+TPK%K072(:)*PCONC(:,24)+TPK%K081(:)*PCONC(:,25)+TPK%CF46*TPK%K275(:& -&)*PCONC(:,40)+TPK%K278(:)*PCONC(:,41)+TPK%K307(:)*PCONC(:,69)+TPK%K313(:)*PCON& -&C(:,57)+TPK%K320(:)*PCONC(:,61)+TPK%K327(:)*PCONC(:,71)+TPK%K338(:)*PCONC(:,74& -&) +!WR_ASO5/O3=0.0 ! -!HNO3/NH3=0.0 +!WR_ASO5/H2O2=0.0 ! -!HNO3/HO2=+0.2*K033*<NO3> - PJAC(:,5,10)=+0.2*TPK%K033(:)*PCONC(:,8) +!WR_ASO5/NO=0.0 ! -!HNO3/CO=0.0 +!WR_ASO5/NO2=0.0 ! -!HNO3/H2O2=0.0 +!WR_ASO5/NO3=0.0 ! -!HNO3/SO2=0.0 +!WR_ASO5/N2O5=0.0 ! -!HNO3/H2SO4=0.0 +!WR_ASO5/HONO=0.0 ! -!HNO3/OH=+K022*<NO2>-K023*<HNO3> - PJAC(:,5,15)=+TPK%K022(:)*PCONC(:,2)-TPK%K023(:)*PCONC(:,5) +!WR_ASO5/HNO3=0.0 ! -!HNO3/ETHE=0.0 +!WR_ASO5/HNO4=0.0 ! -!HNO3/OLEL=0.0 +!WR_ASO5/NH3=0.0 ! -!HNO3/OLEH=0.0 +!WR_ASO5/SO2=0.0 ! -!HNO3/ALKL=0.0 +!WR_ASO5/SULF=0.0 ! -!HNO3/ALKM=0.0 +!WR_ASO5/CO=0.0 ! -!HNO3/ALKH=0.0 +!WR_ASO5/OH=0.0 ! -!HNO3/AROH=0.0 +!WR_ASO5/HO2=0.0 ! -!HNO3/AROL=0.0 +!WR_ASO5/CH4=0.0 ! -!HNO3/AROO=+K072*<NO3> - PJAC(:,5,24)=+TPK%K072(:)*PCONC(:,8) +!WR_ASO5/ETH=0.0 ! -!HNO3/ARAL=+K081*<NO3> - PJAC(:,5,25)=+TPK%K081(:)*PCONC(:,8) +!WR_ASO5/ALKA=0.0 ! -!HNO3/ARAC=0.0 +!WR_ASO5/ALKE=0.0 ! -!HNO3/PAH=0.0 +!WR_ASO5/BIO=0.0 ! -!HNO3/HCHO=+K047*<NO3> - PJAC(:,5,28)=+TPK%K047(:)*PCONC(:,8) +!WR_ASO5/ARO=0.0 ! -!HNO3/ALD2=+K061*<NO3> - PJAC(:,5,29)=+TPK%K061(:)*PCONC(:,8) +!WR_ASO5/HCHO=0.0 ! -!HNO3/KETL=0.0 +!WR_ASO5/ALD=0.0 ! -!HNO3/KETH=0.0 +!WR_ASO5/KET=0.0 ! -!HNO3/MEOH=0.0 +!WR_ASO5/CARBO=0.0 ! -!HNO3/ETOH=0.0 +!WR_ASO5/ONIT=0.0 ! -!HNO3/ALCH=0.0 +!WR_ASO5/PAN=0.0 ! -!HNO3/ISOP=0.0 +!WR_ASO5/OP1=0.0 ! -!HNO3/BIOL=0.0 +!WR_ASO5/OP2=0.0 ! -!HNO3/BIOH=0.0 +!WR_ASO5/ORA1=0.0 ! -!HNO3/MTBE=0.0 +!WR_ASO5/ORA2=0.0 ! -!HNO3/MVK=0.0 +!WR_ASO5/MO2=0.0 ! -!HNO3/MCR=+TPK%CF46*K275*<NO3> - PJAC(:,5,40)=+TPK%CF46*TPK%K275(:)*PCONC(:,8) +!WR_ASO5/ALKAP=0.0 ! -!HNO3/MGLY=+K278*<NO3> - PJAC(:,5,41)=+TPK%K278(:)*PCONC(:,8) +!WR_ASO5/ALKEP=0.0 ! -!HNO3/GLY=0.0 +!WR_ASO5/BIOP=0.0 ! -!HNO3/ORA1=0.0 +!WR_ASO5/PHO=0.0 ! -!HNO3/ORA2=0.0 +!WR_ASO5/ADD=0.0 ! -!HNO3/ACID=0.0 +!WR_ASO5/AROP=0.0 ! -!HNO3/UR28=0.0 +!WR_ASO5/CARBOP=0.0 ! -!HNO3/UR21=0.0 +!WR_ASO5/OLN=0.0 ! -!HNO3/URG2=0.0 +!WR_ASO5/XO2=0.0 ! -!HNO3/UR26=0.0 +!WR_ASO5/WC_O3=0.0 ! -!HNO3/RPG2=0.0 +!WR_ASO5/WC_H2O2=0.0 ! -!HNO3/RP18=0.0 +!WR_ASO5/WC_NO=0.0 ! -!HNO3/RPG3=0.0 +!WR_ASO5/WC_NO2=0.0 ! -!HNO3/URG4=0.0 +!WR_ASO5/WC_NO3=0.0 ! -!HNO3/UR8=0.0 +!WR_ASO5/WC_N2O5=0.0 ! -!HNO3/UR17=0.0 +!WR_ASO5/WC_HONO=0.0 ! -!HNO3/UR7=0.0 +!WR_ASO5/WC_HNO3=0.0 ! -!HNO3/RPR3=+K313*<NO3> - PJAC(:,5,57)=+TPK%K313(:)*PCONC(:,8) +!WR_ASO5/WC_HNO4=0.0 ! -!HNO3/URG6=0.0 +!WR_ASO5/WC_NH3=0.0 ! -!HNO3/UR22=0.0 +!WR_ASO5/WC_OH=0.0 ! -!HNO3/URG7=0.0 +!WR_ASO5/WC_HO2=0.0 ! -!HNO3/RPR4=+K320*<NO3> - PJAC(:,5,61)=+TPK%K320(:)*PCONC(:,8) +!WR_ASO5/WC_CO2=0.0 ! -!HNO3/RPR7=0.0 +!WR_ASO5/WC_SO2=0.0 ! -!HNO3/RPG7=0.0 +!WR_ASO5/WC_SULF=0.0 ! -!HNO3/URG8=0.0 +!WR_ASO5/WC_HCHO=0.0 ! -!HNO3/UR19=0.0 +!WR_ASO5/WC_ORA1=0.0 ! -!HNO3/URG9=0.0 +!WR_ASO5/WC_ORA2=0.0 ! -!HNO3/AP7=0.0 +!WR_ASO5/WC_MO2=0.0 ! -!HNO3/URG10=0.0 +!WR_ASO5/WC_OP1=0.0 ! -!HNO3/RPR1=+K307*<NO3> - PJAC(:,5,69)=+TPK%K307(:)*PCONC(:,8) +!WR_ASO5/WC_ASO3=0.0 ! -!HNO3/RPR5=0.0 +!WR_ASO5/WC_ASO4=0.0 ! -!HNO3/RPR8=+K327*<NO3> - PJAC(:,5,71)=+TPK%K327(:)*PCONC(:,8) +!WR_ASO5/WC_ASO5=0.0 ! -!HNO3/RP10=0.0 +!WR_ASO5/WC_AHSO5=0.0 ! -!HNO3/RP11=0.0 +!WR_ASO5/WC_AHMS=0.0 ! -!HNO3/RP16=+K338*<NO3> - PJAC(:,5,74)=+TPK%K338(:)*PCONC(:,8) +!WR_ASO5/WR_O3=0.0 ! -!HNO3/RPRL=0.0 +!WR_ASO5/WR_H2O2=0.0 ! -!HNO3/APAN=0.0 +!WR_ASO5/WR_NO=0.0 ! -!HNO3/PAN1=0.0 +!WR_ASO5/WR_NO2=0.0 ! -!HNO3/PAN2=0.0 +!WR_ASO5/WR_NO3=0.0 ! -!HNO3/PAN3=0.0 +!WR_ASO5/WR_N2O5=0.0 ! -!HNO3/PAN4=0.0 +!WR_ASO5/WR_HONO=0.0 ! -!HNO3/PAN6=0.0 +!WR_ASO5/WR_HNO3=0.0 ! -!HNO3/PAN7=0.0 +!WR_ASO5/WR_HNO4=0.0 ! -!HNO3/PAN8=0.0 +!WR_ASO5/WR_NH3=0.0 ! -!HNO3/PN10=0.0 +!WR_ASO5/WR_OH=0.0 ! -!HNO3/RO2T=0.0 +!WR_ASO5/WR_HO2=-KR25*<WR_ASO5> + PJAC(:,89,78)=-TPK%KR25(:)*PCONC(:,89) ! -!HNO3/RO21=0.0 +!WR_ASO5/WR_CO2=0.0 ! -!HNO3/RO25=0.0 +!WR_ASO5/WR_SO2=0.0 ! -!HNO3/WC_O3=0.0 +!WR_ASO5/WR_SULF=0.0 ! -!HNO3/WC_H2O2=0.0 +!WR_ASO5/WR_HCHO=0.0 ! -!HNO3/WC_NO=0.0 +!WR_ASO5/WR_ORA1=0.0 ! -!HNO3/WC_NO2=0.0 +!WR_ASO5/WR_ORA2=0.0 ! -!HNO3/WC_NO3=0.0 +!WR_ASO5/WR_MO2=0.0 ! -!HNO3/WC_N2O5=0.0 +!WR_ASO5/WR_OP1=0.0 ! -!HNO3/WC_HONO=0.0 +!WR_ASO5/WR_ASO3=+KR24*<W_O2> + PJAC(:,89,87)=+TPK%KR24(:)*TPK%W_O2(:) ! -!HNO3/WC_HNO3=+KTC39 - PJAC(:,5,95)=+TPK%KTC39(:) +!WR_ASO5/WR_ASO4=0.0 ! -!HNO3/WC_HNO4=0.0 +!WR_ASO5/WR_ASO5=-KR25*<WR_HO2>-KR26*<WR_ASO5>-KR26*<WR_ASO5>-KR26*<WR_ASO5>-KR +!26*<WR_ASO5> + PJAC(:,89,89)=-TPK%KR25(:)*PCONC(:,78)-TPK%KR26(:)*PCONC(:,89)-TPK%KR26(:)*PCO& +&NC(:,89)-TPK%KR26(:)*PCONC(:,89)-TPK%KR26(:)*PCONC(:,89) ! -!HNO3/WC_NH3=0.0 +!WR_ASO5/WR_AHSO5=0.0 ! -!HNO3/WC_OH=0.0 +!WR_ASO5/WR_AHMS=0.0 ! -!HNO3/WC_HO2=0.0 +!WR_AHSO5/O3=0.0 ! -!HNO3/WC_CO2=0.0 +!WR_AHSO5/H2O2=0.0 ! -!HNO3/WC_SO2=0.0 +!WR_AHSO5/NO=0.0 ! -!HNO3/WC_H2SO4=0.0 +!WR_AHSO5/NO2=0.0 ! -!HNO3/WC_RO21=0.0 +!WR_AHSO5/NO3=0.0 ! -!HNO3/WC_RO25=0.0 +!WR_AHSO5/N2O5=0.0 ! -!HNO3/WC_MEOH=0.0 +!WR_AHSO5/HONO=0.0 ! -!HNO3/WC_ETOH=0.0 +!WR_AHSO5/HNO3=0.0 ! -!HNO3/WC_ALCH=0.0 +!WR_AHSO5/HNO4=0.0 ! -!HNO3/WC_HCHO=0.0 +!WR_AHSO5/NH3=0.0 ! -!HNO3/WC_ALD2=0.0 +!WR_AHSO5/SO2=0.0 ! -!HNO3/WC_GLY=0.0 +!WR_AHSO5/SULF=0.0 ! -!HNO3/WC_MGLY=0.0 +!WR_AHSO5/CO=0.0 ! -!HNO3/WC_KETL=0.0 +!WR_AHSO5/OH=0.0 ! -!HNO3/WC_ORA1=0.0 +!WR_AHSO5/HO2=0.0 ! -!HNO3/WC_ORA2=0.0 +!WR_AHSO5/CH4=0.0 ! -!HNO3/WC_ACID=0.0 +!WR_AHSO5/ETH=0.0 ! -!HNO3/WC_RP16=0.0 +!WR_AHSO5/ALKA=0.0 ! -!HNO3/WC_UR21=0.0 +!WR_AHSO5/ALKE=0.0 ! -!HNO3/WC_UR28=0.0 +!WR_AHSO5/BIO=0.0 ! -!HNO3/WC_ACID2=0.0 +!WR_AHSO5/ARO=0.0 ! -!HNO3/WC_ASO3=0.0 +!WR_AHSO5/HCHO=0.0 ! -!HNO3/WC_ASO4=0.0 +!WR_AHSO5/ALD=0.0 ! -!HNO3/WC_ASO5=0.0 +!WR_AHSO5/KET=0.0 ! -!HNO3/WC_AHSO5=0.0 +!WR_AHSO5/CARBO=0.0 ! -!HNO3/WC_AHMS=0.0 +!WR_AHSO5/ONIT=0.0 ! -!HNO3/WR_O3=0.0 +!WR_AHSO5/PAN=0.0 ! -!HNO3/WR_H2O2=0.0 +!WR_AHSO5/OP1=0.0 ! -!HNO3/WR_NO=0.0 +!WR_AHSO5/OP2=0.0 ! -!HNO3/WR_NO2=0.0 +!WR_AHSO5/ORA1=0.0 ! -!HNO3/WR_NO3=0.0 +!WR_AHSO5/ORA2=0.0 ! -!HNO3/WR_N2O5=0.0 +!WR_AHSO5/MO2=0.0 ! -!HNO3/WR_HONO=0.0 +!WR_AHSO5/ALKAP=0.0 ! -!HNO3/WR_HNO3=+KTR39 - PJAC(:,5,132)=+TPK%KTR39(:) +!WR_AHSO5/ALKEP=0.0 ! -!HNO3/WR_HNO4=0.0 +!WR_AHSO5/BIOP=0.0 ! -!HNO3/WR_NH3=0.0 +!WR_AHSO5/PHO=0.0 ! -!HNO3/WR_OH=0.0 +!WR_AHSO5/ADD=0.0 ! -!HNO3/WR_HO2=0.0 +!WR_AHSO5/AROP=0.0 ! -!HNO3/WR_CO2=0.0 +!WR_AHSO5/CARBOP=0.0 ! -!HNO3/WR_SO2=0.0 +!WR_AHSO5/OLN=0.0 ! -!HNO3/WR_H2SO4=0.0 +!WR_AHSO5/XO2=0.0 ! -!HNO3/WR_RO21=0.0 +!WR_AHSO5/WC_O3=0.0 ! -!HNO3/WR_RO25=0.0 +!WR_AHSO5/WC_H2O2=0.0 ! -!HNO3/WR_MEOH=0.0 +!WR_AHSO5/WC_NO=0.0 ! -!HNO3/WR_ETOH=0.0 +!WR_AHSO5/WC_NO2=0.0 ! -!HNO3/WR_ALCH=0.0 +!WR_AHSO5/WC_NO3=0.0 ! -!HNO3/WR_HCHO=0.0 +!WR_AHSO5/WC_N2O5=0.0 ! -!HNO3/WR_ALD2=0.0 +!WR_AHSO5/WC_HONO=0.0 ! -!HNO3/WR_GLY=0.0 +!WR_AHSO5/WC_HNO3=0.0 ! -!HNO3/WR_MGLY=0.0 +!WR_AHSO5/WC_HNO4=0.0 ! -!HNO3/WR_KETL=0.0 +!WR_AHSO5/WC_NH3=0.0 ! -!HNO3/WR_ORA1=0.0 +!WR_AHSO5/WC_OH=0.0 ! -!HNO3/WR_ORA2=0.0 +!WR_AHSO5/WC_HO2=0.0 ! -!HNO3/WR_ACID=0.0 +!WR_AHSO5/WC_CO2=0.0 ! -!HNO3/WR_RP16=0.0 +!WR_AHSO5/WC_SO2=0.0 ! -!HNO3/WR_UR21=0.0 +!WR_AHSO5/WC_SULF=0.0 ! -!HNO3/WR_UR28=0.0 +!WR_AHSO5/WC_HCHO=0.0 ! -!HNO3/WR_ACID2=0.0 +!WR_AHSO5/WC_ORA1=0.0 ! -!HNO3/WR_ASO3=0.0 +!WR_AHSO5/WC_ORA2=0.0 ! -!HNO3/WR_ASO4=0.0 +!WR_AHSO5/WC_MO2=0.0 ! -!HNO3/WR_ASO5=0.0 +!WR_AHSO5/WC_OP1=0.0 ! -!HNO3/WR_AHSO5=0.0 +!WR_AHSO5/WC_ASO3=0.0 ! -!HNO3/WR_AHMS=0.0 +!WR_AHSO5/WC_ASO4=0.0 ! -RETURN -END SUBROUTINE SUBJ0 +!WR_AHSO5/WC_ASO5=0.0 ! -SUBROUTINE SUBJ1 +!WR_AHSO5/WC_AHSO5=0.0 ! -!Indices 6 a 10 +!WR_AHSO5/WC_AHMS=0.0 ! +!WR_AHSO5/WR_O3=0.0 ! -!HNO4/NO=0.0 +!WR_AHSO5/WR_H2O2=0.0 ! -!HNO4/NO2=+K027*<HO2> - PJAC(:,6,2)=+TPK%K027(:)*PCONC(:,10) +!WR_AHSO5/WR_NO=0.0 ! -!HNO4/O3=0.0 +!WR_AHSO5/WR_NO2=0.0 ! -!HNO4/HONO=0.0 +!WR_AHSO5/WR_NO3=0.0 ! -!HNO4/HNO3=0.0 +!WR_AHSO5/WR_N2O5=0.0 ! -!HNO4/HNO4=-K028-K029*<OH>-KTC9-KTR9 - PJAC(:,6,6)=-TPK%K028(:)-TPK%K029(:)*PCONC(:,15)-TPK%KTC9(:)-TPK%KTR9(:) +!WR_AHSO5/WR_HONO=0.0 ! -!HNO4/N2O5=0.0 +!WR_AHSO5/WR_HNO3=0.0 ! -!HNO4/NO3=0.0 +!WR_AHSO5/WR_HNO4=0.0 ! -!HNO4/NH3=0.0 +!WR_AHSO5/WR_NH3=0.0 ! -!HNO4/HO2=+K027*<NO2> - PJAC(:,6,10)=+TPK%K027(:)*PCONC(:,2) +!WR_AHSO5/WR_OH=0.0 ! -!HNO4/CO=0.0 +!WR_AHSO5/WR_HO2=+KR25*<WR_ASO5> + PJAC(:,90,78)=+TPK%KR25(:)*PCONC(:,89) ! -!HNO4/H2O2=0.0 +!WR_AHSO5/WR_CO2=0.0 ! -!HNO4/SO2=0.0 +!WR_AHSO5/WR_SO2=-KR27*<WR_AHSO5> + PJAC(:,90,80)=-TPK%KR27(:)*PCONC(:,90) ! -!HNO4/H2SO4=0.0 +!WR_AHSO5/WR_SULF=0.0 ! -!HNO4/OH=-K029*<HNO4> - PJAC(:,6,15)=-TPK%K029(:)*PCONC(:,6) +!WR_AHSO5/WR_HCHO=0.0 ! -!HNO4/ETHE=0.0 +!WR_AHSO5/WR_ORA1=0.0 ! -!HNO4/OLEL=0.0 +!WR_AHSO5/WR_ORA2=0.0 ! -!HNO4/OLEH=0.0 +!WR_AHSO5/WR_MO2=0.0 ! -!HNO4/ALKL=0.0 +!WR_AHSO5/WR_OP1=0.0 ! -!HNO4/ALKM=0.0 +!WR_AHSO5/WR_ASO3=0.0 ! -!HNO4/ALKH=0.0 +!WR_AHSO5/WR_ASO4=0.0 ! -!HNO4/AROH=0.0 +!WR_AHSO5/WR_ASO5=+KR25*<WR_HO2> + PJAC(:,90,89)=+TPK%KR25(:)*PCONC(:,78) ! -!HNO4/AROL=0.0 +!WR_AHSO5/WR_AHSO5=-KR27*<WR_SO2> + PJAC(:,90,90)=-TPK%KR27(:)*PCONC(:,80) ! -!HNO4/AROO=0.0 +!WR_AHSO5/WR_AHMS=0.0 ! -!HNO4/ARAL=0.0 +RETURN +END SUBROUTINE SUBJ17 ! -!HNO4/ARAC=0.0 +SUBROUTINE SUBJ18 ! -!HNO4/PAH=0.0 +!Indices 91 a 91 ! -!HNO4/HCHO=0.0 ! -!HNO4/ALD2=0.0 +!WR_AHMS/O3=0.0 ! -!HNO4/KETL=0.0 +!WR_AHMS/H2O2=0.0 ! -!HNO4/KETH=0.0 +!WR_AHMS/NO=0.0 ! -!HNO4/MEOH=0.0 +!WR_AHMS/NO2=0.0 ! -!HNO4/ETOH=0.0 +!WR_AHMS/NO3=0.0 ! -!HNO4/ALCH=0.0 +!WR_AHMS/N2O5=0.0 ! -!HNO4/ISOP=0.0 +!WR_AHMS/HONO=0.0 ! -!HNO4/BIOL=0.0 +!WR_AHMS/HNO3=0.0 ! -!HNO4/BIOH=0.0 +!WR_AHMS/HNO4=0.0 ! -!HNO4/MTBE=0.0 +!WR_AHMS/NH3=0.0 ! -!HNO4/MVK=0.0 +!WR_AHMS/SO2=0.0 ! -!HNO4/MCR=0.0 +!WR_AHMS/SULF=0.0 ! -!HNO4/MGLY=0.0 +!WR_AHMS/CO=0.0 ! -!HNO4/GLY=0.0 +!WR_AHMS/OH=0.0 ! -!HNO4/ORA1=0.0 +!WR_AHMS/HO2=0.0 ! -!HNO4/ORA2=0.0 +!WR_AHMS/CH4=0.0 ! -!HNO4/ACID=0.0 +!WR_AHMS/ETH=0.0 ! -!HNO4/UR28=0.0 +!WR_AHMS/ALKA=0.0 ! -!HNO4/UR21=0.0 +!WR_AHMS/ALKE=0.0 ! -!HNO4/URG2=0.0 +!WR_AHMS/BIO=0.0 ! -!HNO4/UR26=0.0 +!WR_AHMS/ARO=0.0 ! -!HNO4/RPG2=0.0 +!WR_AHMS/HCHO=0.0 ! -!HNO4/RP18=0.0 +!WR_AHMS/ALD=0.0 ! -!HNO4/RPG3=0.0 +!WR_AHMS/KET=0.0 ! -!HNO4/URG4=0.0 +!WR_AHMS/CARBO=0.0 ! -!HNO4/UR8=0.0 +!WR_AHMS/ONIT=0.0 ! -!HNO4/UR17=0.0 +!WR_AHMS/PAN=0.0 ! -!HNO4/UR7=0.0 +!WR_AHMS/OP1=0.0 ! -!HNO4/RPR3=0.0 +!WR_AHMS/OP2=0.0 ! -!HNO4/URG6=0.0 +!WR_AHMS/ORA1=0.0 ! -!HNO4/UR22=0.0 +!WR_AHMS/ORA2=0.0 ! -!HNO4/URG7=0.0 +!WR_AHMS/MO2=0.0 ! -!HNO4/RPR4=0.0 +!WR_AHMS/ALKAP=0.0 ! -!HNO4/RPR7=0.0 +!WR_AHMS/ALKEP=0.0 ! -!HNO4/RPG7=0.0 +!WR_AHMS/BIOP=0.0 ! -!HNO4/URG8=0.0 +!WR_AHMS/PHO=0.0 ! -!HNO4/UR19=0.0 +!WR_AHMS/ADD=0.0 ! -!HNO4/URG9=0.0 +!WR_AHMS/AROP=0.0 ! -!HNO4/AP7=0.0 +!WR_AHMS/CARBOP=0.0 ! -!HNO4/URG10=0.0 +!WR_AHMS/OLN=0.0 ! -!HNO4/RPR1=0.0 +!WR_AHMS/XO2=0.0 ! -!HNO4/RPR5=0.0 +!WR_AHMS/WC_O3=0.0 ! -!HNO4/RPR8=0.0 +!WR_AHMS/WC_H2O2=0.0 ! -!HNO4/RP10=0.0 +!WR_AHMS/WC_NO=0.0 ! -!HNO4/RP11=0.0 +!WR_AHMS/WC_NO2=0.0 ! -!HNO4/RP16=0.0 +!WR_AHMS/WC_NO3=0.0 ! -!HNO4/RPRL=0.0 +!WR_AHMS/WC_N2O5=0.0 ! -!HNO4/APAN=0.0 +!WR_AHMS/WC_HONO=0.0 ! -!HNO4/PAN1=0.0 +!WR_AHMS/WC_HNO3=0.0 ! -!HNO4/PAN2=0.0 +!WR_AHMS/WC_HNO4=0.0 ! -!HNO4/PAN3=0.0 +!WR_AHMS/WC_NH3=0.0 ! -!HNO4/PAN4=0.0 +!WR_AHMS/WC_OH=0.0 ! -!HNO4/PAN6=0.0 +!WR_AHMS/WC_HO2=0.0 ! -!HNO4/PAN7=0.0 +!WR_AHMS/WC_CO2=0.0 ! -!HNO4/PAN8=0.0 +!WR_AHMS/WC_SO2=0.0 ! -!HNO4/PN10=0.0 +!WR_AHMS/WC_SULF=0.0 ! -!HNO4/RO2T=0.0 +!WR_AHMS/WC_HCHO=0.0 ! -!HNO4/RO21=0.0 +!WR_AHMS/WC_ORA1=0.0 ! -!HNO4/RO25=0.0 +!WR_AHMS/WC_ORA2=0.0 ! -!HNO4/WC_O3=0.0 +!WR_AHMS/WC_MO2=0.0 ! -!HNO4/WC_H2O2=0.0 +!WR_AHMS/WC_OP1=0.0 ! -!HNO4/WC_NO=0.0 +!WR_AHMS/WC_ASO3=0.0 ! -!HNO4/WC_NO2=0.0 +!WR_AHMS/WC_ASO4=0.0 ! -!HNO4/WC_NO3=0.0 +!WR_AHMS/WC_ASO5=0.0 ! -!HNO4/WC_N2O5=0.0 +!WR_AHMS/WC_AHSO5=0.0 ! -!HNO4/WC_HONO=0.0 +!WR_AHMS/WC_AHMS=0.0 ! -!HNO4/WC_HNO3=0.0 +!WR_AHMS/WR_O3=0.0 ! -!HNO4/WC_HNO4=+KTC40 - PJAC(:,6,96)=+TPK%KTC40(:) +!WR_AHMS/WR_H2O2=0.0 ! -!HNO4/WC_NH3=0.0 +!WR_AHMS/WR_NO=0.0 ! -!HNO4/WC_OH=0.0 +!WR_AHMS/WR_NO2=0.0 ! -!HNO4/WC_HO2=0.0 +!WR_AHMS/WR_NO3=0.0 ! -!HNO4/WC_CO2=0.0 +!WR_AHMS/WR_N2O5=0.0 ! -!HNO4/WC_SO2=0.0 +!WR_AHMS/WR_HONO=0.0 ! -!HNO4/WC_H2SO4=0.0 +!WR_AHMS/WR_HNO3=0.0 ! -!HNO4/WC_RO21=0.0 +!WR_AHMS/WR_HNO4=0.0 ! -!HNO4/WC_RO25=0.0 +!WR_AHMS/WR_NH3=0.0 ! -!HNO4/WC_MEOH=0.0 +!WR_AHMS/WR_OH=-KR23*<WR_AHMS> + PJAC(:,91,77)=-TPK%KR23(:)*PCONC(:,91) ! -!HNO4/WC_ETOH=0.0 +!WR_AHMS/WR_HO2=0.0 ! -!HNO4/WC_ALCH=0.0 +!WR_AHMS/WR_CO2=0.0 ! -!HNO4/WC_HCHO=0.0 +!WR_AHMS/WR_SO2=+KR21*<WR_HCHO> + PJAC(:,91,80)=+TPK%KR21(:)*PCONC(:,82) ! -!HNO4/WC_ALD2=0.0 +!WR_AHMS/WR_SULF=0.0 ! -!HNO4/WC_GLY=0.0 +!WR_AHMS/WR_HCHO=+KR21*<WR_SO2> + PJAC(:,91,82)=+TPK%KR21(:)*PCONC(:,80) ! -!HNO4/WC_MGLY=0.0 +!WR_AHMS/WR_ORA1=0.0 ! -!HNO4/WC_KETL=0.0 +!WR_AHMS/WR_ORA2=0.0 ! -!HNO4/WC_ORA1=0.0 +!WR_AHMS/WR_MO2=0.0 ! -!HNO4/WC_ORA2=0.0 +!WR_AHMS/WR_OP1=0.0 ! -!HNO4/WC_ACID=0.0 +!WR_AHMS/WR_ASO3=0.0 ! -!HNO4/WC_RP16=0.0 +!WR_AHMS/WR_ASO4=0.0 ! -!HNO4/WC_UR21=0.0 +!WR_AHMS/WR_ASO5=0.0 ! -!HNO4/WC_UR28=0.0 +!WR_AHMS/WR_AHSO5=0.0 ! -!HNO4/WC_ACID2=0.0 +!WR_AHMS/WR_AHMS=-KR22-KR23*<WR_OH> + PJAC(:,91,91)=-TPK%KR22(:)-TPK%KR23(:)*PCONC(:,77) ! -!HNO4/WC_ASO3=0.0 +RETURN +END SUBROUTINE SUBJ18 ! -!HNO4/WC_ASO4=0.0 +END SUBROUTINE CH_JAC_AQ ! -!HNO4/WC_ASO5=0.0 ! -!HNO4/WC_AHSO5=0.0 +!======================================================================== ! -!HNO4/WC_AHMS=0.0 +!! ################## + MODULE MODI_CH_JAC_GAZ +!! ################## +INTERFACE +SUBROUTINE CH_JAC_GAZ(PTIME,PCONC,PJAC,KMI,KVECNPT,KEQ) +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KEQ) :: PJAC +INTEGER, INTENT(IN) :: KMI +END SUBROUTINE CH_JAC_GAZ +END INTERFACE +END MODULE MODI_CH_JAC_GAZ ! -!HNO4/WR_O3=0.0 +!======================================================================== ! -!HNO4/WR_H2O2=0.0 +!! #################### + SUBROUTINE CH_JAC_GAZ(PTIME,PCONC,PJAC,KMI,KVECNPT,KEQ) +!! #################### +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +!!*** *CH_JAC* +!! +!! PURPOSE +!! ------- +! calculation of the JACOBIAN matrix +!! +!!** METHOD +!! ------ +!! The Jacobian matrix J is calculated as defined by the chemical +!! reaction mechanism. +!! The reaction rates and other user-defined auxiliary variables are +!! transfered in the TYPE(CCSTYPE) variable TPK%. +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Karsten Suhre (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) +!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) +!! +!!---------------------------------------------------------------------- +!! +!! EXTERNAL +!! -------- +!! none +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +USE MODD_CH_M9_SCHEME +!! +!! EXPLICIT ARGUMENTS +!! ------------------ +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KEQ) :: PJAC +INTEGER, INTENT(IN) :: KMI ! -!HNO4/WR_NO=0.0 +TYPE(CCSTYPE), POINTER :: TPK +TPK=>TACCS(KMI) ! -!HNO4/WR_NO2=0.0 +! /BEGIN_CODE/ +TPK%O1D(:)=(TPK%K002(:)*PCONC(:,JP_O3))/(TPK%K020(:)*TPK%N2(:)+TPK%K021(:)*TPK%O2(:)+& + &TPK%K022(:)*TPK%H2O(:)) +TPK%O3P(:)=(TPK%K001(:)*PCONC(:,JP_NO2)+TPK%K003(:)*PCONC(:,JP_O3)+TPK%K008(:)*PCONC(:,JP_NO3)+& + &TPK%K020(:)*TPK%O1D(:)*TPK%N2(:)+TPK%K021(:)*TPK%O1D(:)*TPK%O2(:)+& + &0.00000*TPK%K079(:)*PCONC(:,JP_ALKE)*PCONC(:,JP_O3)+& + &0.09000*TPK%K080(:)*PCONC(:,JP_BIO)*PCONC(:,JP_O3))/& + &(TPK%K018(:)*TPK%O2(:)+TPK%K019(:)*PCONC(:,JP_O3)+TPK%K029(:)*PCONC(:,JP_NO)+& + &TPK%K030(:)*PCONC(:,JP_NO2)+TPK%K031(:)*PCONC(:,JP_NO2)+TPK%K054(:)*PCONC(:,JP_BIO)+& + &TPK%K055(:)*PCONC(:,JP_CARBO)) +! /END_CODE/ +PJAC(:,:,:) = 0.0 +CALL SUBJ0 +CALL SUBJ1 +CALL SUBJ2 +CALL SUBJ3 +CALL SUBJ4 +CALL SUBJ5 +CALL SUBJ6 +CALL SUBJ7 +CALL SUBJ8 ! -!HNO4/WR_NO3=0.0 + +CONTAINS + +SUBROUTINE SUBJ0 ! -!HNO4/WR_N2O5=0.0 +!Indices 1 a 5 ! -!HNO4/WR_HONO=0.0 ! -!HNO4/WR_HNO3=0.0 +!O3/O3=-K002-K003-K019*<O3P>-K023*<OH>-K024*<HO2>-K042*<NO>-K043*<NO2>-K079*<AL +!KE>-K080*<BIO>-K081*<CARBO>-K082*<PAN>-K087*<ADD> + PJAC(:,1,1)=-TPK%K002(:)-TPK%K003(:)-TPK%K019(:)*TPK%O3P(:)-TPK%K023(:)*PCONC(& +&:,14)-TPK%K024(:)*PCONC(:,15)-TPK%K042(:)*PCONC(:,3)-TPK%K043(:)*PCONC(:,4)-TP& +&K%K079(:)*PCONC(:,19)-TPK%K080(:)*PCONC(:,20)-TPK%K081(:)*PCONC(:,25)-TPK%K082& +&(:)*PCONC(:,27)-TPK%K087(:)*PCONC(:,37) ! -!HNO4/WR_HNO4=+KTR40 - PJAC(:,6,133)=+TPK%KTR40(:) +!O3/H2O2=0.0 ! -!HNO4/WR_NH3=0.0 +!O3/NO=-K042*<O3> + PJAC(:,1,3)=-TPK%K042(:)*PCONC(:,1) ! -!HNO4/WR_OH=0.0 +!O3/NO2=-K043*<O3> + PJAC(:,1,4)=-TPK%K043(:)*PCONC(:,1) ! -!HNO4/WR_HO2=0.0 +!O3/NO3=0.0 ! -!HNO4/WR_CO2=0.0 +!O3/N2O5=0.0 ! -!HNO4/WR_SO2=0.0 +!O3/HONO=0.0 ! -!HNO4/WR_H2SO4=0.0 +!O3/HNO3=0.0 ! -!HNO4/WR_RO21=0.0 +!O3/HNO4=0.0 ! -!HNO4/WR_RO25=0.0 +!O3/NH3=0.0 ! -!HNO4/WR_MEOH=0.0 +!O3/SO2=0.0 ! -!HNO4/WR_ETOH=0.0 +!O3/SULF=0.0 ! -!HNO4/WR_ALCH=0.0 +!O3/CO=0.0 ! -!HNO4/WR_HCHO=0.0 +!O3/OH=-K023*<O3> + PJAC(:,1,14)=-TPK%K023(:)*PCONC(:,1) ! -!HNO4/WR_ALD2=0.0 +!O3/HO2=-K024*<O3>+0.17307*K0102*<CARBOP> + PJAC(:,1,15)=-TPK%K024(:)*PCONC(:,1)+0.17307*TPK%K0102(:)*PCONC(:,39) ! -!HNO4/WR_GLY=0.0 +!O3/CH4=0.0 ! -!HNO4/WR_MGLY=0.0 +!O3/ETH=0.0 ! -!HNO4/WR_KETL=0.0 +!O3/ALKA=0.0 ! -!HNO4/WR_ORA1=0.0 +!O3/ALKE=-K079*<O3> + PJAC(:,1,19)=-TPK%K079(:)*PCONC(:,1) ! -!HNO4/WR_ORA2=0.0 +!O3/BIO=-K080*<O3> + PJAC(:,1,20)=-TPK%K080(:)*PCONC(:,1) ! -!HNO4/WR_ACID=0.0 +!O3/ARO=0.0 ! -!HNO4/WR_RP16=0.0 +!O3/HCHO=0.0 ! -!HNO4/WR_UR21=0.0 +!O3/ALD=0.0 ! -!HNO4/WR_UR28=0.0 +!O3/KET=0.0 ! -!HNO4/WR_ACID2=0.0 +!O3/CARBO=-K081*<O3> + PJAC(:,1,25)=-TPK%K081(:)*PCONC(:,1) ! -!HNO4/WR_ASO3=0.0 +!O3/ONIT=0.0 ! -!HNO4/WR_ASO4=0.0 +!O3/PAN=-K082*<O3> + PJAC(:,1,27)=-TPK%K082(:)*PCONC(:,1) ! -!HNO4/WR_ASO5=0.0 +!O3/OP1=0.0 ! -!HNO4/WR_AHSO5=0.0 +!O3/OP2=0.0 ! -!HNO4/WR_AHMS=0.0 +!O3/ORA1=0.0 ! -!N2O5/NO=0.0 +!O3/ORA2=0.0 ! -!N2O5/NO2=+K009*<NO3> - PJAC(:,7,2)=+TPK%K009(:)*PCONC(:,8) +!O3/MO2=0.0 ! -!N2O5/O3=0.0 +!O3/ALKAP=0.0 ! -!N2O5/HONO=0.0 +!O3/ALKEP=0.0 ! -!N2O5/HNO3=0.0 +!O3/BIOP=0.0 ! -!N2O5/HNO4=0.0 +!O3/PHO=0.0 ! -!N2O5/N2O5=-K010-K011*<H2O>-KTC6-KTR6 - PJAC(:,7,7)=-TPK%K010(:)-TPK%K011(:)*TPK%H2O(:)-TPK%KTC6(:)-TPK%KTR6(:) +!O3/ADD=-K087*<O3> + PJAC(:,1,37)=-TPK%K087(:)*PCONC(:,1) ! -!N2O5/NO3=+K009*<NO2> - PJAC(:,7,8)=+TPK%K009(:)*PCONC(:,2) +!O3/AROP=0.0 ! -!N2O5/NH3=0.0 +!O3/CARBOP=+0.17307*K0102*<HO2> + PJAC(:,1,39)=+0.17307*TPK%K0102(:)*PCONC(:,15) ! -!N2O5/HO2=0.0 +!O3/OLN=0.0 ! -!N2O5/CO=0.0 +!O3/XO2=0.0 ! -!N2O5/H2O2=0.0 +!H2O2/O3=+0.01833*K079*<ALKE>+0.00100*K080*<BIO> + PJAC(:,2,1)=+0.01833*TPK%K079(:)*PCONC(:,19)+0.00100*TPK%K080(:)*PCONC(:,20) ! -!N2O5/SO2=0.0 +!H2O2/H2O2=-K009-K026*<OH> + PJAC(:,2,2)=-TPK%K009(:)-TPK%K026(:)*PCONC(:,14) ! -!N2O5/H2SO4=0.0 +!H2O2/NO=0.0 ! -!N2O5/OH=0.0 +!H2O2/NO2=0.0 ! -!N2O5/ETHE=0.0 +!H2O2/NO3=0.0 ! -!N2O5/OLEL=0.0 +!H2O2/N2O5=0.0 ! -!N2O5/OLEH=0.0 +!H2O2/HONO=0.0 ! -!N2O5/ALKL=0.0 +!H2O2/HNO3=0.0 ! -!N2O5/ALKM=0.0 +!H2O2/HNO4=0.0 ! -!N2O5/ALKH=0.0 +!H2O2/NH3=0.0 ! -!N2O5/AROH=0.0 +!H2O2/SO2=0.0 ! -!N2O5/AROL=0.0 +!H2O2/SULF=0.0 ! -!N2O5/AROO=0.0 +!H2O2/CO=0.0 ! -!N2O5/ARAL=0.0 +!H2O2/OH=-K026*<H2O2> + PJAC(:,2,14)=-TPK%K026(:)*PCONC(:,2) ! -!N2O5/ARAC=0.0 +!H2O2/HO2=+K027*<HO2>+K027*<HO2>+K028*<HO2>*<H2O>+K028*<HO2>*<H2O> + PJAC(:,2,15)=+TPK%K027(:)*PCONC(:,15)+TPK%K027(:)*PCONC(:,15)+TPK%K028(:)*PCON& +&C(:,15)*TPK%H2O(:)+TPK%K028(:)*PCONC(:,15)*TPK%H2O(:) ! -!N2O5/PAH=0.0 +!H2O2/CH4=0.0 ! -!N2O5/HCHO=0.0 +!H2O2/ETH=0.0 ! -!N2O5/ALD2=0.0 +!H2O2/ALKA=0.0 ! -!N2O5/KETL=0.0 +!H2O2/ALKE=+0.01833*K079*<O3> + PJAC(:,2,19)=+0.01833*TPK%K079(:)*PCONC(:,1) ! -!N2O5/KETH=0.0 +!H2O2/BIO=+0.00100*K080*<O3> + PJAC(:,2,20)=+0.00100*TPK%K080(:)*PCONC(:,1) ! -!N2O5/MEOH=0.0 +!H2O2/ARO=0.0 ! -!N2O5/ETOH=0.0 +!H2O2/HCHO=0.0 ! -!N2O5/ALCH=0.0 +!H2O2/ALD=0.0 ! -!N2O5/ISOP=0.0 +!H2O2/KET=0.0 ! -!N2O5/BIOL=0.0 +!H2O2/CARBO=0.0 ! -!N2O5/BIOH=0.0 +!H2O2/ONIT=0.0 ! -!N2O5/MTBE=0.0 +!H2O2/PAN=0.0 ! -!N2O5/MVK=0.0 +!H2O2/OP1=0.0 ! -!N2O5/MCR=0.0 +!H2O2/OP2=0.0 ! -!N2O5/MGLY=0.0 +!H2O2/ORA1=0.0 ! -!N2O5/GLY=0.0 +!H2O2/ORA2=0.0 ! -!N2O5/ORA1=0.0 +!H2O2/MO2=0.0 ! -!N2O5/ORA2=0.0 +!H2O2/ALKAP=0.0 ! -!N2O5/ACID=0.0 +!H2O2/ALKEP=0.0 ! -!N2O5/UR28=0.0 +!H2O2/BIOP=0.0 ! -!N2O5/UR21=0.0 +!H2O2/PHO=0.0 ! -!N2O5/URG2=0.0 +!H2O2/ADD=0.0 ! -!N2O5/UR26=0.0 +!H2O2/AROP=0.0 ! -!N2O5/RPG2=0.0 +!H2O2/CARBOP=0.0 ! -!N2O5/RP18=0.0 +!H2O2/OLN=0.0 ! -!N2O5/RPG3=0.0 +!H2O2/XO2=0.0 ! -!N2O5/URG4=0.0 +!NO/O3=-K042*<NO> + PJAC(:,3,1)=-TPK%K042(:)*PCONC(:,3) ! -!N2O5/UR8=0.0 +!NO/H2O2=0.0 ! -!N2O5/UR17=0.0 +!NO/NO=-K029*<O3P>-K032*<OH>-K035*<HO2>-K042*<O3>-K044*<NO>*<O2>-K044*<NO>*<O2> +!-K044*<NO>*<O2>-K044*<NO>*<O2>-K045*<NO3>-K090*<MO2>-K091*<ALKAP>-K092*<ALKEP> +!-K093*<BIOP>-K094*<AROP>-K095*<CARBOP>-K096*<OLN>-K130*<XO2> + PJAC(:,3,3)=-TPK%K029(:)*TPK%O3P(:)-TPK%K032(:)*PCONC(:,14)-TPK%K035(:)*PCONC(& +&:,15)-TPK%K042(:)*PCONC(:,1)-TPK%K044(:)*PCONC(:,3)*TPK%O2(:)-TPK%K044(:)*PCON& +&C(:,3)*TPK%O2(:)-TPK%K044(:)*PCONC(:,3)*TPK%O2(:)-TPK%K044(:)*PCONC(:,3)*TPK%O& +&2(:)-TPK%K045(:)*PCONC(:,5)-TPK%K090(:)*PCONC(:,32)-TPK%K091(:)*PCONC(:,33)-TP& +&K%K092(:)*PCONC(:,34)-TPK%K093(:)*PCONC(:,35)-TPK%K094(:)*PCONC(:,38)-TPK%K095& +&(:)*PCONC(:,39)-TPK%K096(:)*PCONC(:,40)-TPK%K130(:)*PCONC(:,41) ! -!N2O5/UR7=0.0 +!NO/NO2=+K001+K030*<O3P>+K046*<NO3> + PJAC(:,3,4)=+TPK%K001(:)+TPK%K030(:)*TPK%O3P(:)+TPK%K046(:)*PCONC(:,5) ! -!N2O5/RPR3=0.0 +!NO/NO3=+K007-K045*<NO>+K046*<NO2> + PJAC(:,3,5)=+TPK%K007(:)-TPK%K045(:)*PCONC(:,3)+TPK%K046(:)*PCONC(:,4) ! -!N2O5/URG6=0.0 +!NO/N2O5=0.0 ! -!N2O5/UR22=0.0 +!NO/HONO=+K004 + PJAC(:,3,7)=+TPK%K004(:) ! -!N2O5/URG7=0.0 +!NO/HNO3=0.0 ! -!N2O5/RPR4=0.0 +!NO/HNO4=0.0 ! -!N2O5/RPR7=0.0 +!NO/NH3=0.0 ! -!N2O5/RPG7=0.0 +!NO/SO2=0.0 ! -!N2O5/URG8=0.0 +!NO/SULF=0.0 ! -!N2O5/UR19=0.0 +!NO/CO=0.0 ! -!N2O5/URG9=0.0 +!NO/OH=-K032*<NO> + PJAC(:,3,14)=-TPK%K032(:)*PCONC(:,3) ! -!N2O5/AP7=0.0 +!NO/HO2=-K035*<NO> + PJAC(:,3,15)=-TPK%K035(:)*PCONC(:,3) ! -!N2O5/URG10=0.0 +!NO/CH4=0.0 ! -!N2O5/RPR1=0.0 +!NO/ETH=0.0 ! -!N2O5/RPR5=0.0 +!NO/ALKA=0.0 ! -!N2O5/RPR8=0.0 +!NO/ALKE=0.0 ! -!N2O5/RP10=0.0 +!NO/BIO=0.0 ! -!N2O5/RP11=0.0 +!NO/ARO=0.0 ! -!N2O5/RP16=0.0 +!NO/HCHO=0.0 ! -!N2O5/RPRL=0.0 +!NO/ALD=0.0 ! -!N2O5/APAN=0.0 +!NO/KET=0.0 ! -!N2O5/PAN1=0.0 +!NO/CARBO=0.0 ! -!N2O5/PAN2=0.0 +!NO/ONIT=0.0 ! -!N2O5/PAN3=0.0 +!NO/PAN=0.0 ! -!N2O5/PAN4=0.0 +!NO/OP1=0.0 ! -!N2O5/PAN6=0.0 +!NO/OP2=0.0 ! -!N2O5/PAN7=0.0 +!NO/ORA1=0.0 ! -!N2O5/PAN8=0.0 +!NO/ORA2=0.0 ! -!N2O5/PN10=0.0 +!NO/MO2=-K090*<NO> + PJAC(:,3,32)=-TPK%K090(:)*PCONC(:,3) ! -!N2O5/RO2T=0.0 +!NO/ALKAP=-K091*<NO> + PJAC(:,3,33)=-TPK%K091(:)*PCONC(:,3) ! -!N2O5/RO21=0.0 +!NO/ALKEP=-K092*<NO> + PJAC(:,3,34)=-TPK%K092(:)*PCONC(:,3) ! -!N2O5/RO25=0.0 +!NO/BIOP=-K093*<NO> + PJAC(:,3,35)=-TPK%K093(:)*PCONC(:,3) ! -!N2O5/WC_O3=0.0 +!NO/PHO=0.0 ! -!N2O5/WC_H2O2=0.0 +!NO/ADD=0.0 ! -!N2O5/WC_NO=0.0 +!NO/AROP=-K094*<NO> + PJAC(:,3,38)=-TPK%K094(:)*PCONC(:,3) ! -!N2O5/WC_NO2=0.0 +!NO/CARBOP=-K095*<NO> + PJAC(:,3,39)=-TPK%K095(:)*PCONC(:,3) ! -!N2O5/WC_NO3=0.0 +!NO/OLN=-K096*<NO> + PJAC(:,3,40)=-TPK%K096(:)*PCONC(:,3) ! -!N2O5/WC_N2O5=+KTC37 - PJAC(:,7,93)=+TPK%KTC37(:) +!NO/XO2=-K130*<NO> + PJAC(:,3,41)=-TPK%K130(:)*PCONC(:,3) ! -!N2O5/WC_HONO=0.0 +!NO2/O3=+K042*<NO>-K043*<NO2>+0.70*K082*<PAN> + PJAC(:,4,1)=+TPK%K042(:)*PCONC(:,3)-TPK%K043(:)*PCONC(:,4)+0.70*TPK%K082(:)*PC& +&ONC(:,27) ! -!N2O5/WC_HNO3=0.0 +!NO2/H2O2=0.0 ! -!N2O5/WC_HNO4=0.0 +!NO2/NO=+K029*<O3P>+K035*<HO2>+K042*<O3>+K044*<NO>*<O2>+K044*<NO>*<O2>+K044*<NO +!>*<O2>+K044*<NO>*<O2>+K045*<NO3>+K045*<NO3>+K090*<MO2>+0.91541*K091*<ALKAP>+K0 +!92*<ALKEP>+0.84700*K093*<BIOP>+0.95115*K094*<AROP>+K095*<CARBOP>+1.81599*K096* +!<OLN>+K130*<XO2> + PJAC(:,4,3)=+TPK%K029(:)*TPK%O3P(:)+TPK%K035(:)*PCONC(:,15)+TPK%K042(:)*PCONC(& +&:,1)+TPK%K044(:)*PCONC(:,3)*TPK%O2(:)+TPK%K044(:)*PCONC(:,3)*TPK%O2(:)+TPK%K04& +&4(:)*PCONC(:,3)*TPK%O2(:)+TPK%K044(:)*PCONC(:,3)*TPK%O2(:)+TPK%K045(:)*PCONC(:& +&,5)+TPK%K045(:)*PCONC(:,5)+TPK%K090(:)*PCONC(:,32)+0.91541*TPK%K091(:)*PCONC(:& +&,33)+TPK%K092(:)*PCONC(:,34)+0.84700*TPK%K093(:)*PCONC(:,35)+0.95115*TPK%K094(& +&:)*PCONC(:,38)+TPK%K095(:)*PCONC(:,39)+1.81599*TPK%K096(:)*PCONC(:,40)+TPK%K13& +&0(:)*PCONC(:,41) +! +!NO2/NO2=-K001-K030*<O3P>-K031*<O3P>-K033*<OH>-K036*<HO2>-K043*<O3>+K046*<NO3>- +!K046*<NO3>-K047*<NO3>-K083*<PHO>-K085*<ADD>-K088*<CARBOP> + PJAC(:,4,4)=-TPK%K001(:)-TPK%K030(:)*TPK%O3P(:)-TPK%K031(:)*TPK%O3P(:)-TPK%K03& +&3(:)*PCONC(:,14)-TPK%K036(:)*PCONC(:,15)-TPK%K043(:)*PCONC(:,1)+TPK%K046(:)*PC& +&ONC(:,5)-TPK%K046(:)*PCONC(:,5)-TPK%K047(:)*PCONC(:,5)-TPK%K083(:)*PCONC(:,36)& +&-TPK%K085(:)*PCONC(:,37)-TPK%K088(:)*PCONC(:,39) +! +!NO2/NO3=+K008+K034*<OH>+0.7*K038*<HO2>+K045*<NO>+K045*<NO>+K046*<NO2>-K046*<NO +!2>-K047*<NO2>+K049*<NO3>+K049*<NO3>+K049*<NO3>+K049*<NO3>+0.10530*K074*<CARBO> +!+0.40*K078*<PAN>+K119*<MO2>+K120*<ALKAP>+K121*<ALKEP>+K122*<BIOP>+K123*<AROP>+ +!K124*<CARBOP>+1.74072*K125*<OLN>+K131*<XO2> + PJAC(:,4,5)=+TPK%K008(:)+TPK%K034(:)*PCONC(:,14)+0.7*TPK%K038(:)*PCONC(:,15)+T& +&PK%K045(:)*PCONC(:,3)+TPK%K045(:)*PCONC(:,3)+TPK%K046(:)*PCONC(:,4)-TPK%K046(:& +&)*PCONC(:,4)-TPK%K047(:)*PCONC(:,4)+TPK%K049(:)*PCONC(:,5)+TPK%K049(:)*PCONC(:& +&,5)+TPK%K049(:)*PCONC(:,5)+TPK%K049(:)*PCONC(:,5)+0.10530*TPK%K074(:)*PCONC(:,& +&25)+0.40*TPK%K078(:)*PCONC(:,27)+TPK%K119(:)*PCONC(:,32)+TPK%K120(:)*PCONC(:,3& +&3)+TPK%K121(:)*PCONC(:,34)+TPK%K122(:)*PCONC(:,35)+TPK%K123(:)*PCONC(:,38)+TPK& +&%K124(:)*PCONC(:,39)+1.74072*TPK%K125(:)*PCONC(:,40)+TPK%K131(:)*PCONC(:,41) +! +!NO2/N2O5=+K048 + PJAC(:,4,6)=+TPK%K048(:) +! +!NO2/HONO=+K039*<OH> + PJAC(:,4,7)=+TPK%K039(:)*PCONC(:,14) +! +!NO2/HNO3=+K005 + PJAC(:,4,8)=+TPK%K005(:) +! +!NO2/HNO4=+0.65*K006+K037+K041*<OH> + PJAC(:,4,9)=+0.65*TPK%K006(:)+TPK%K037(:)+TPK%K041(:)*PCONC(:,14) ! -!N2O5/WC_NH3=0.0 +!NO2/NH3=0.0 ! -!N2O5/WC_OH=0.0 +!NO2/SO2=0.0 ! -!N2O5/WC_HO2=0.0 +!NO2/SULF=0.0 ! -!N2O5/WC_CO2=0.0 +!NO2/CO=0.0 ! -!N2O5/WC_SO2=0.0 +!NO2/OH=-K033*<NO2>+K034*<NO3>+K039*<HONO>+K041*<HNO4>+K071*<ONIT> + PJAC(:,4,14)=-TPK%K033(:)*PCONC(:,4)+TPK%K034(:)*PCONC(:,5)+TPK%K039(:)*PCONC(& +&:,7)+TPK%K041(:)*PCONC(:,9)+TPK%K071(:)*PCONC(:,26) ! -!N2O5/WC_H2SO4=0.0 +!NO2/HO2=+K035*<NO>-K036*<NO2>+0.7*K038*<NO3> + PJAC(:,4,15)=+TPK%K035(:)*PCONC(:,3)-TPK%K036(:)*PCONC(:,4)+0.7*TPK%K038(:)*PC& +&ONC(:,5) ! -!N2O5/WC_RO21=0.0 +!NO2/CH4=0.0 ! -!N2O5/WC_RO25=0.0 +!NO2/ETH=0.0 ! -!N2O5/WC_MEOH=0.0 +!NO2/ALKA=0.0 ! -!N2O5/WC_ETOH=0.0 +!NO2/ALKE=0.0 ! -!N2O5/WC_ALCH=0.0 +!NO2/BIO=0.0 ! -!N2O5/WC_HCHO=0.0 +!NO2/ARO=0.0 ! -!N2O5/WC_ALD2=0.0 +!NO2/HCHO=0.0 ! -!N2O5/WC_GLY=0.0 +!NO2/ALD=0.0 ! -!N2O5/WC_MGLY=0.0 +!NO2/KET=0.0 ! -!N2O5/WC_KETL=0.0 +!NO2/CARBO=+0.10530*K074*<NO3> + PJAC(:,4,25)=+0.10530*TPK%K074(:)*PCONC(:,5) ! -!N2O5/WC_ORA1=0.0 +!NO2/ONIT=+K017+K071*<OH> + PJAC(:,4,26)=+TPK%K017(:)+TPK%K071(:)*PCONC(:,14) ! -!N2O5/WC_ORA2=0.0 +!NO2/PAN=+0.40*K078*<NO3>+0.70*K082*<O3>+K089 + PJAC(:,4,27)=+0.40*TPK%K078(:)*PCONC(:,5)+0.70*TPK%K082(:)*PCONC(:,1)+TPK%K089& +&(:) ! -!N2O5/WC_ACID=0.0 +!NO2/OP1=0.0 ! -!N2O5/WC_RP16=0.0 +!NO2/OP2=0.0 ! -!N2O5/WC_UR21=0.0 +!NO2/ORA1=0.0 ! -!N2O5/WC_UR28=0.0 +!NO2/ORA2=0.0 ! -!N2O5/WC_ACID2=0.0 +!NO2/MO2=+K090*<NO>+0.32440*K110*<OLN>+K119*<NO3> + PJAC(:,4,32)=+TPK%K090(:)*PCONC(:,3)+0.32440*TPK%K110(:)*PCONC(:,40)+TPK%K119(& +&:)*PCONC(:,5) ! -!N2O5/WC_ASO3=0.0 +!NO2/ALKAP=+0.91541*K091*<NO>+K120*<NO3> + PJAC(:,4,33)=+0.91541*TPK%K091(:)*PCONC(:,3)+TPK%K120(:)*PCONC(:,5) ! -!N2O5/WC_ASO4=0.0 +!NO2/ALKEP=+K092*<NO>+K121*<NO3> + PJAC(:,4,34)=+TPK%K092(:)*PCONC(:,3)+TPK%K121(:)*PCONC(:,5) ! -!N2O5/WC_ASO5=0.0 +!NO2/BIOP=+0.84700*K093*<NO>+K122*<NO3> + PJAC(:,4,35)=+0.84700*TPK%K093(:)*PCONC(:,3)+TPK%K122(:)*PCONC(:,5) ! -!N2O5/WC_AHSO5=0.0 +!NO2/PHO=-K083*<NO2> + PJAC(:,4,36)=-TPK%K083(:)*PCONC(:,4) ! -!N2O5/WC_AHMS=0.0 +!NO2/ADD=-K085*<NO2> + PJAC(:,4,37)=-TPK%K085(:)*PCONC(:,4) ! -!N2O5/WR_O3=0.0 +!NO2/AROP=+0.95115*K094*<NO>+K123*<NO3> + PJAC(:,4,38)=+0.95115*TPK%K094(:)*PCONC(:,3)+TPK%K123(:)*PCONC(:,5) ! -!N2O5/WR_H2O2=0.0 +!NO2/CARBOP=-K088*<NO2>+K095*<NO>+0.00000*K116*<OLN>+K124*<NO3> + PJAC(:,4,39)=-TPK%K088(:)*PCONC(:,4)+TPK%K095(:)*PCONC(:,3)+0.00000*TPK%K116(:& +&)*PCONC(:,40)+TPK%K124(:)*PCONC(:,5) ! -!N2O5/WR_NO=0.0 +!NO2/OLN=+1.81599*K096*<NO>+0.32440*K110*<MO2>+0.00000*K116*<CARBOP>+0.00000*K1 +!18*<OLN>+0.00000*K118*<OLN>+1.74072*K125*<NO3> + PJAC(:,4,40)=+1.81599*TPK%K096(:)*PCONC(:,3)+0.32440*TPK%K110(:)*PCONC(:,32)+0& +&.00000*TPK%K116(:)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K11& +&8(:)*PCONC(:,40)+1.74072*TPK%K125(:)*PCONC(:,5) ! -!N2O5/WR_NO2=0.0 +!NO2/XO2=+K130*<NO>+K131*<NO3> + PJAC(:,4,41)=+TPK%K130(:)*PCONC(:,3)+TPK%K131(:)*PCONC(:,5) ! -!N2O5/WR_NO3=0.0 +!NO3/O3=+K043*<NO2> + PJAC(:,5,1)=+TPK%K043(:)*PCONC(:,4) ! -!N2O5/WR_N2O5=+KTR37 - PJAC(:,7,130)=+TPK%KTR37(:) +!NO3/H2O2=0.0 ! -!N2O5/WR_HONO=0.0 +!NO3/NO=-K045*<NO3> + PJAC(:,5,3)=-TPK%K045(:)*PCONC(:,5) +! +!NO3/NO2=+K031*<O3P>+K043*<O3>-K046*<NO3>-K047*<NO3> + PJAC(:,5,4)=+TPK%K031(:)*TPK%O3P(:)+TPK%K043(:)*PCONC(:,1)-TPK%K046(:)*PCONC(:& +&,5)-TPK%K047(:)*PCONC(:,5) +! +!NO3/NO3=-K007-K008-K034*<OH>-K038*<HO2>-K045*<NO>-K046*<NO2>-K047*<NO2>-K049*< +!NO3>-K049*<NO3>-K049*<NO3>-K049*<NO3>-K072*<HCHO>-K073*<ALD>-K074*<CARBO>-K075 +!*<ARO>-K076*<ALKE>-K077*<BIO>+0.60*K078*<PAN>-K078*<PAN>-K119*<MO2>-K120*<ALKA +!P>-K121*<ALKEP>-K122*<BIOP>-K123*<AROP>-K124*<CARBOP>-K125*<OLN>-K131*<XO2> + PJAC(:,5,5)=-TPK%K007(:)-TPK%K008(:)-TPK%K034(:)*PCONC(:,14)-TPK%K038(:)*PCONC& +&(:,15)-TPK%K045(:)*PCONC(:,3)-TPK%K046(:)*PCONC(:,4)-TPK%K047(:)*PCONC(:,4)-TP& +&K%K049(:)*PCONC(:,5)-TPK%K049(:)*PCONC(:,5)-TPK%K049(:)*PCONC(:,5)-TPK%K049(:)& +&*PCONC(:,5)-TPK%K072(:)*PCONC(:,22)-TPK%K073(:)*PCONC(:,23)-TPK%K074(:)*PCONC(& +&:,25)-TPK%K075(:)*PCONC(:,21)-TPK%K076(:)*PCONC(:,19)-TPK%K077(:)*PCONC(:,20)+& +&0.60*TPK%K078(:)*PCONC(:,27)-TPK%K078(:)*PCONC(:,27)-TPK%K119(:)*PCONC(:,32)-T& +&PK%K120(:)*PCONC(:,33)-TPK%K121(:)*PCONC(:,34)-TPK%K122(:)*PCONC(:,35)-TPK%K12& +&3(:)*PCONC(:,38)-TPK%K124(:)*PCONC(:,39)-TPK%K125(:)*PCONC(:,40)-TPK%K131(:)*P& +&CONC(:,41) +! +!NO3/N2O5=+K048 + PJAC(:,5,6)=+TPK%K048(:) ! -!N2O5/WR_HNO3=0.0 +!NO3/HONO=0.0 ! -!N2O5/WR_HNO4=0.0 +!NO3/HNO3=+K040*<OH> + PJAC(:,5,8)=+TPK%K040(:)*PCONC(:,14) ! -!N2O5/WR_NH3=0.0 +!NO3/HNO4=+0.35*K006 + PJAC(:,5,9)=+0.35*TPK%K006(:) ! -!N2O5/WR_OH=0.0 +!NO3/NH3=0.0 ! -!N2O5/WR_HO2=0.0 +!NO3/SO2=0.0 ! -!N2O5/WR_CO2=0.0 +!NO3/SULF=0.0 ! -!N2O5/WR_SO2=0.0 +!NO3/CO=0.0 ! -!N2O5/WR_H2SO4=0.0 +!NO3/OH=-K034*<NO3>+K040*<HNO3>+0.71893*K070*<PAN> + PJAC(:,5,14)=-TPK%K034(:)*PCONC(:,5)+TPK%K040(:)*PCONC(:,8)+0.71893*TPK%K070(:& +&)*PCONC(:,27) ! -!N2O5/WR_RO21=0.0 +!NO3/HO2=-K038*<NO3> + PJAC(:,5,15)=-TPK%K038(:)*PCONC(:,5) ! -!N2O5/WR_RO25=0.0 +!NO3/CH4=0.0 ! -!N2O5/WR_MEOH=0.0 +!NO3/ETH=0.0 ! -!N2O5/WR_ETOH=0.0 +!NO3/ALKA=0.0 ! -!N2O5/WR_ALCH=0.0 +!NO3/ALKE=-K076*<NO3> + PJAC(:,5,19)=-TPK%K076(:)*PCONC(:,5) ! -!N2O5/WR_HCHO=0.0 +!NO3/BIO=-K077*<NO3> + PJAC(:,5,20)=-TPK%K077(:)*PCONC(:,5) ! -!N2O5/WR_ALD2=0.0 +!NO3/ARO=-K075*<NO3> + PJAC(:,5,21)=-TPK%K075(:)*PCONC(:,5) ! -!N2O5/WR_GLY=0.0 +!NO3/HCHO=-K072*<NO3> + PJAC(:,5,22)=-TPK%K072(:)*PCONC(:,5) ! -!N2O5/WR_MGLY=0.0 +!NO3/ALD=-K073*<NO3> + PJAC(:,5,23)=-TPK%K073(:)*PCONC(:,5) ! -!N2O5/WR_KETL=0.0 +!NO3/KET=0.0 ! -!N2O5/WR_ORA1=0.0 +!NO3/CARBO=-K074*<NO3> + PJAC(:,5,25)=-TPK%K074(:)*PCONC(:,5) ! -!N2O5/WR_ORA2=0.0 +!NO3/ONIT=0.0 ! -!N2O5/WR_ACID=0.0 +!NO3/PAN=+0.71893*K070*<OH>+0.60*K078*<NO3>-K078*<NO3> + PJAC(:,5,27)=+0.71893*TPK%K070(:)*PCONC(:,14)+0.60*TPK%K078(:)*PCONC(:,5)-TPK%& +&K078(:)*PCONC(:,5) ! -!N2O5/WR_RP16=0.0 +!NO3/OP1=0.0 ! -!N2O5/WR_UR21=0.0 +!NO3/OP2=0.0 ! -!N2O5/WR_UR28=0.0 +!NO3/ORA1=0.0 ! -!N2O5/WR_ACID2=0.0 +!NO3/ORA2=0.0 ! -!N2O5/WR_ASO3=0.0 +!NO3/MO2=-K119*<NO3> + PJAC(:,5,32)=-TPK%K119(:)*PCONC(:,5) ! -!N2O5/WR_ASO4=0.0 +!NO3/ALKAP=-K120*<NO3> + PJAC(:,5,33)=-TPK%K120(:)*PCONC(:,5) ! -!N2O5/WR_ASO5=0.0 +!NO3/ALKEP=-K121*<NO3> + PJAC(:,5,34)=-TPK%K121(:)*PCONC(:,5) ! -!N2O5/WR_AHSO5=0.0 +!NO3/BIOP=-K122*<NO3> + PJAC(:,5,35)=-TPK%K122(:)*PCONC(:,5) ! -!N2O5/WR_AHMS=0.0 +!NO3/PHO=0.0 ! -!NO3/NO=-K007*<NO3> - PJAC(:,8,1)=-TPK%K007(:)*PCONC(:,8) +!NO3/ADD=0.0 ! -!NO3/NO2=+K004*<O>+K006*<O3>-K009*<NO3>-K012*<NO3> - PJAC(:,8,2)=+TPK%K004(:)*TPK%O(:)+TPK%K006(:)*PCONC(:,3)-TPK%K009(:)*PCONC(:,8& -&)-TPK%K012(:)*PCONC(:,8) +!NO3/AROP=-K123*<NO3> + PJAC(:,5,38)=-TPK%K123(:)*PCONC(:,5) ! -!NO3/O3=+K006*<NO2> - PJAC(:,8,3)=+TPK%K006(:)*PCONC(:,2) +!NO3/CARBOP=-K124*<NO3> + PJAC(:,5,39)=-TPK%K124(:)*PCONC(:,5) ! -!NO3/HONO=0.0 +!NO3/OLN=-K125*<NO3> + PJAC(:,5,40)=-TPK%K125(:)*PCONC(:,5) ! -!NO3/HNO3=+K023*<OH> - PJAC(:,8,5)=+TPK%K023(:)*PCONC(:,15) -! -!NO3/HNO4=0.0 -! -!NO3/N2O5=+K010 - PJAC(:,8,7)=+TPK%K010(:) -! -!NO3/NO3=-K007*<NO>-K009*<NO2>-K012*<NO2>-K013-K014-K033*<HO2>-K040*<OH>-K041*< -!NO3>-K041*<NO3>-K041*<NO3>-K041*<NO3>-K047*<HCHO>-K050*<ETHE>-K055*<OLEL>-K061 -!*<ALD2>-K065*<ISOP>-K072*<AROO>-K075*<OLEH>-K081*<ARAL>-K085*<BIOL>-K089*<BIOH -!>-K275*<MCR>-K278*<MGLY>-K307*<RPR1>-K313*<RPR3>-K320*<RPR4>-K327*<RPR8>-K338* -!<RP16>-KTC5-KTR5 - PJAC(:,8,8)=-TPK%K007(:)*PCONC(:,1)-TPK%K009(:)*PCONC(:,2)-TPK%K012(:)*PCONC(:& -&,2)-TPK%K013(:)-TPK%K014(:)-TPK%K033(:)*PCONC(:,10)-TPK%K040(:)*PCONC(:,15)-TP& -&K%K041(:)*PCONC(:,8)-TPK%K041(:)*PCONC(:,8)-TPK%K041(:)*PCONC(:,8)-TPK%K041(:)& -&*PCONC(:,8)-TPK%K047(:)*PCONC(:,28)-TPK%K050(:)*PCONC(:,16)-TPK%K055(:)*PCONC(& -&:,17)-TPK%K061(:)*PCONC(:,29)-TPK%K065(:)*PCONC(:,35)-TPK%K072(:)*PCONC(:,24)-& -&TPK%K075(:)*PCONC(:,18)-TPK%K081(:)*PCONC(:,25)-TPK%K085(:)*PCONC(:,36)-TPK%K0& -&89(:)*PCONC(:,37)-TPK%K275(:)*PCONC(:,40)-TPK%K278(:)*PCONC(:,41)-TPK%K307(:)*& -&PCONC(:,69)-TPK%K313(:)*PCONC(:,57)-TPK%K320(:)*PCONC(:,61)-TPK%K327(:)*PCONC(& -&:,71)-TPK%K338(:)*PCONC(:,74)-TPK%KTC5(:)-TPK%KTR5(:) +!NO3/XO2=-K131*<NO3> + PJAC(:,5,41)=-TPK%K131(:)*PCONC(:,5) ! -!NO3/NH3=0.0 +RETURN +END SUBROUTINE SUBJ0 ! -!NO3/HO2=-K033*<NO3> - PJAC(:,8,10)=-TPK%K033(:)*PCONC(:,8) +SUBROUTINE SUBJ1 ! -!NO3/CO=0.0 +!Indices 6 a 10 ! -!NO3/H2O2=0.0 ! -!NO3/SO2=0.0 +!N2O5/O3=0.0 ! -!NO3/H2SO4=0.0 +!N2O5/H2O2=0.0 ! -!NO3/OH=+K023*<HNO3>-K040*<NO3> - PJAC(:,8,15)=+TPK%K023(:)*PCONC(:,5)-TPK%K040(:)*PCONC(:,8) +!N2O5/NO=0.0 ! -!NO3/ETHE=-K050*<NO3> - PJAC(:,8,16)=-TPK%K050(:)*PCONC(:,8) +!N2O5/NO2=+K047*<NO3> + PJAC(:,6,4)=+TPK%K047(:)*PCONC(:,5) ! -!NO3/OLEL=-K055*<NO3> - PJAC(:,8,17)=-TPK%K055(:)*PCONC(:,8) +!N2O5/NO3=+K047*<NO2> + PJAC(:,6,5)=+TPK%K047(:)*PCONC(:,4) ! -!NO3/OLEH=-K075*<NO3> - PJAC(:,8,18)=-TPK%K075(:)*PCONC(:,8) +!N2O5/N2O5=-K048 + PJAC(:,6,6)=-TPK%K048(:) ! -!NO3/ALKL=0.0 +!N2O5/HONO=0.0 ! -!NO3/ALKM=0.0 +!N2O5/HNO3=0.0 ! -!NO3/ALKH=0.0 +!N2O5/HNO4=0.0 ! -!NO3/AROH=0.0 +!N2O5/NH3=0.0 ! -!NO3/AROL=0.0 +!N2O5/SO2=0.0 ! -!NO3/AROO=-K072*<NO3> - PJAC(:,8,24)=-TPK%K072(:)*PCONC(:,8) +!N2O5/SULF=0.0 ! -!NO3/ARAL=-K081*<NO3> - PJAC(:,8,25)=-TPK%K081(:)*PCONC(:,8) +!N2O5/CO=0.0 ! -!NO3/ARAC=0.0 +!N2O5/OH=0.0 ! -!NO3/PAH=0.0 +!N2O5/HO2=0.0 ! -!NO3/HCHO=-K047*<NO3> - PJAC(:,8,28)=-TPK%K047(:)*PCONC(:,8) +!N2O5/CH4=0.0 ! -!NO3/ALD2=-K061*<NO3> - PJAC(:,8,29)=-TPK%K061(:)*PCONC(:,8) +!N2O5/ETH=0.0 ! -!NO3/KETL=0.0 +!N2O5/ALKA=0.0 ! -!NO3/KETH=0.0 +!N2O5/ALKE=0.0 ! -!NO3/MEOH=0.0 +!N2O5/BIO=0.0 ! -!NO3/ETOH=0.0 +!N2O5/ARO=0.0 ! -!NO3/ALCH=0.0 +!N2O5/HCHO=0.0 ! -!NO3/ISOP=-K065*<NO3> - PJAC(:,8,35)=-TPK%K065(:)*PCONC(:,8) +!N2O5/ALD=0.0 ! -!NO3/BIOL=-K085*<NO3> - PJAC(:,8,36)=-TPK%K085(:)*PCONC(:,8) +!N2O5/KET=0.0 ! -!NO3/BIOH=-K089*<NO3> - PJAC(:,8,37)=-TPK%K089(:)*PCONC(:,8) +!N2O5/CARBO=0.0 ! -!NO3/MTBE=0.0 +!N2O5/ONIT=0.0 ! -!NO3/MVK=0.0 +!N2O5/PAN=0.0 ! -!NO3/MCR=-K275*<NO3> - PJAC(:,8,40)=-TPK%K275(:)*PCONC(:,8) +!N2O5/OP1=0.0 ! -!NO3/MGLY=-K278*<NO3> - PJAC(:,8,41)=-TPK%K278(:)*PCONC(:,8) +!N2O5/OP2=0.0 ! -!NO3/GLY=0.0 +!N2O5/ORA1=0.0 ! -!NO3/ORA1=0.0 +!N2O5/ORA2=0.0 ! -!NO3/ORA2=0.0 +!N2O5/MO2=0.0 ! -!NO3/ACID=0.0 +!N2O5/ALKAP=0.0 ! -!NO3/UR28=0.0 +!N2O5/ALKEP=0.0 ! -!NO3/UR21=0.0 +!N2O5/BIOP=0.0 ! -!NO3/URG2=0.0 +!N2O5/PHO=0.0 ! -!NO3/UR26=0.0 +!N2O5/ADD=0.0 ! -!NO3/RPG2=0.0 +!N2O5/AROP=0.0 ! -!NO3/RP18=0.0 +!N2O5/CARBOP=0.0 ! -!NO3/RPG3=0.0 +!N2O5/OLN=0.0 ! -!NO3/URG4=0.0 +!N2O5/XO2=0.0 ! -!NO3/UR8=0.0 +!HONO/O3=0.0 ! -!NO3/UR17=0.0 +!HONO/H2O2=0.0 ! -!NO3/UR7=0.0 +!HONO/NO=+K032*<OH> + PJAC(:,7,3)=+TPK%K032(:)*PCONC(:,14) ! -!NO3/RPR3=-K313*<NO3> - PJAC(:,8,57)=-TPK%K313(:)*PCONC(:,8) +!HONO/NO2=+K085*<ADD> + PJAC(:,7,4)=+TPK%K085(:)*PCONC(:,37) ! -!NO3/URG6=0.0 +!HONO/NO3=0.0 ! -!NO3/UR22=0.0 +!HONO/N2O5=0.0 ! -!NO3/URG7=0.0 +!HONO/HONO=-K004-K039*<OH> + PJAC(:,7,7)=-TPK%K004(:)-TPK%K039(:)*PCONC(:,14) ! -!NO3/RPR4=-K320*<NO3> - PJAC(:,8,61)=-TPK%K320(:)*PCONC(:,8) +!HONO/HNO3=0.0 ! -!NO3/RPR7=0.0 +!HONO/HNO4=0.0 ! -!NO3/RPG7=0.0 +!HONO/NH3=0.0 ! -!NO3/URG8=0.0 +!HONO/SO2=0.0 ! -!NO3/UR19=0.0 +!HONO/SULF=0.0 ! -!NO3/URG9=0.0 +!HONO/CO=0.0 ! -!NO3/AP7=0.0 +!HONO/OH=+K032*<NO>-K039*<HONO> + PJAC(:,7,14)=+TPK%K032(:)*PCONC(:,3)-TPK%K039(:)*PCONC(:,7) ! -!NO3/URG10=0.0 +!HONO/HO2=0.0 ! -!NO3/RPR1=-K307*<NO3> - PJAC(:,8,69)=-TPK%K307(:)*PCONC(:,8) +!HONO/CH4=0.0 ! -!NO3/RPR5=0.0 +!HONO/ETH=0.0 ! -!NO3/RPR8=-K327*<NO3> - PJAC(:,8,71)=-TPK%K327(:)*PCONC(:,8) +!HONO/ALKA=0.0 ! -!NO3/RP10=0.0 +!HONO/ALKE=0.0 ! -!NO3/RP11=0.0 +!HONO/BIO=0.0 ! -!NO3/RP16=-K338*<NO3> - PJAC(:,8,74)=-TPK%K338(:)*PCONC(:,8) +!HONO/ARO=0.0 ! -!NO3/RPRL=0.0 +!HONO/HCHO=0.0 ! -!NO3/APAN=0.0 +!HONO/ALD=0.0 ! -!NO3/PAN1=0.0 +!HONO/KET=0.0 ! -!NO3/PAN2=0.0 +!HONO/CARBO=0.0 ! -!NO3/PAN3=0.0 +!HONO/ONIT=0.0 ! -!NO3/PAN4=0.0 +!HONO/PAN=0.0 ! -!NO3/PAN6=0.0 +!HONO/OP1=0.0 ! -!NO3/PAN7=0.0 +!HONO/OP2=0.0 ! -!NO3/PAN8=0.0 +!HONO/ORA1=0.0 ! -!NO3/PN10=0.0 +!HONO/ORA2=0.0 ! -!NO3/RO2T=0.0 +!HONO/MO2=0.0 ! -!NO3/RO21=0.0 +!HONO/ALKAP=0.0 ! -!NO3/RO25=0.0 +!HONO/ALKEP=0.0 ! -!NO3/WC_O3=0.0 +!HONO/BIOP=0.0 ! -!NO3/WC_H2O2=0.0 +!HONO/PHO=0.0 ! -!NO3/WC_NO=0.0 +!HONO/ADD=+K085*<NO2> + PJAC(:,7,37)=+TPK%K085(:)*PCONC(:,4) ! -!NO3/WC_NO2=0.0 +!HONO/AROP=0.0 ! -!NO3/WC_NO3=+KTC36 - PJAC(:,8,92)=+TPK%KTC36(:) +!HONO/CARBOP=0.0 ! -!NO3/WC_N2O5=0.0 +!HONO/OLN=0.0 ! -!NO3/WC_HONO=0.0 +!HONO/XO2=0.0 ! -!NO3/WC_HNO3=0.0 +!HNO3/O3=0.0 ! -!NO3/WC_HNO4=0.0 +!HNO3/H2O2=0.0 ! -!NO3/WC_NH3=0.0 +!HNO3/NO=0.0 ! -!NO3/WC_OH=0.0 +!HNO3/NO2=+K033*<OH> + PJAC(:,8,4)=+TPK%K033(:)*PCONC(:,14) ! -!NO3/WC_HO2=0.0 +!HNO3/NO3=+0.3*K038*<HO2>+K072*<HCHO>+K073*<ALD>+0.91567*K074*<CARBO>+K075*<ARO +!> + PJAC(:,8,5)=+0.3*TPK%K038(:)*PCONC(:,15)+TPK%K072(:)*PCONC(:,22)+TPK%K073(:)*P& +&CONC(:,23)+0.91567*TPK%K074(:)*PCONC(:,25)+TPK%K075(:)*PCONC(:,21) ! -!NO3/WC_CO2=0.0 +!HNO3/N2O5=0.0 ! -!NO3/WC_SO2=0.0 +!HNO3/HONO=0.0 ! -!NO3/WC_H2SO4=0.0 +!HNO3/HNO3=-K005-K040*<OH> + PJAC(:,8,8)=-TPK%K005(:)-TPK%K040(:)*PCONC(:,14) ! -!NO3/WC_RO21=0.0 +!HNO3/HNO4=0.0 ! -!NO3/WC_RO25=0.0 +!HNO3/NH3=0.0 ! -!NO3/WC_MEOH=0.0 +!HNO3/SO2=0.0 ! -!NO3/WC_ETOH=0.0 +!HNO3/SULF=0.0 ! -!NO3/WC_ALCH=0.0 +!HNO3/CO=0.0 ! -!NO3/WC_HCHO=0.0 +!HNO3/OH=+K033*<NO2>-K040*<HNO3> + PJAC(:,8,14)=+TPK%K033(:)*PCONC(:,4)-TPK%K040(:)*PCONC(:,8) ! -!NO3/WC_ALD2=0.0 +!HNO3/HO2=+0.3*K038*<NO3> + PJAC(:,8,15)=+0.3*TPK%K038(:)*PCONC(:,5) ! -!NO3/WC_GLY=0.0 +!HNO3/CH4=0.0 ! -!NO3/WC_MGLY=0.0 +!HNO3/ETH=0.0 ! -!NO3/WC_KETL=0.0 +!HNO3/ALKA=0.0 ! -!NO3/WC_ORA1=0.0 +!HNO3/ALKE=0.0 ! -!NO3/WC_ORA2=0.0 +!HNO3/BIO=0.0 ! -!NO3/WC_ACID=0.0 +!HNO3/ARO=+K075*<NO3> + PJAC(:,8,21)=+TPK%K075(:)*PCONC(:,5) ! -!NO3/WC_RP16=0.0 +!HNO3/HCHO=+K072*<NO3> + PJAC(:,8,22)=+TPK%K072(:)*PCONC(:,5) ! -!NO3/WC_UR21=0.0 +!HNO3/ALD=+K073*<NO3> + PJAC(:,8,23)=+TPK%K073(:)*PCONC(:,5) ! -!NO3/WC_UR28=0.0 +!HNO3/KET=0.0 ! -!NO3/WC_ACID2=0.0 +!HNO3/CARBO=+0.91567*K074*<NO3> + PJAC(:,8,25)=+0.91567*TPK%K074(:)*PCONC(:,5) ! -!NO3/WC_ASO3=0.0 +!HNO3/ONIT=0.0 ! -!NO3/WC_ASO4=0.0 +!HNO3/PAN=0.0 ! -!NO3/WC_ASO5=0.0 +!HNO3/OP1=0.0 ! -!NO3/WC_AHSO5=0.0 +!HNO3/OP2=0.0 ! -!NO3/WC_AHMS=0.0 +!HNO3/ORA1=0.0 ! -!NO3/WR_O3=0.0 +!HNO3/ORA2=0.0 ! -!NO3/WR_H2O2=0.0 +!HNO3/MO2=0.0 ! -!NO3/WR_NO=0.0 +!HNO3/ALKAP=0.0 ! -!NO3/WR_NO2=0.0 +!HNO3/ALKEP=0.0 ! -!NO3/WR_NO3=+KTR36 - PJAC(:,8,129)=+TPK%KTR36(:) +!HNO3/BIOP=0.0 ! -!NO3/WR_N2O5=0.0 +!HNO3/PHO=0.0 ! -!NO3/WR_HONO=0.0 +!HNO3/ADD=0.0 ! -!NO3/WR_HNO3=0.0 +!HNO3/AROP=0.0 ! -!NO3/WR_HNO4=0.0 +!HNO3/CARBOP=0.0 ! -!NO3/WR_NH3=0.0 +!HNO3/OLN=0.0 ! -!NO3/WR_OH=0.0 +!HNO3/XO2=0.0 ! -!NO3/WR_HO2=0.0 +!HNO4/O3=0.0 ! -!NO3/WR_CO2=0.0 +!HNO4/H2O2=0.0 ! -!NO3/WR_SO2=0.0 +!HNO4/NO=0.0 ! -!NO3/WR_H2SO4=0.0 +!HNO4/NO2=+K036*<HO2> + PJAC(:,9,4)=+TPK%K036(:)*PCONC(:,15) ! -!NO3/WR_RO21=0.0 +!HNO4/NO3=0.0 ! -!NO3/WR_RO25=0.0 +!HNO4/N2O5=0.0 ! -!NO3/WR_MEOH=0.0 +!HNO4/HONO=0.0 ! -!NO3/WR_ETOH=0.0 +!HNO4/HNO3=0.0 ! -!NO3/WR_ALCH=0.0 +!HNO4/HNO4=-K006-K037-K041*<OH> + PJAC(:,9,9)=-TPK%K006(:)-TPK%K037(:)-TPK%K041(:)*PCONC(:,14) ! -!NO3/WR_HCHO=0.0 +!HNO4/NH3=0.0 ! -!NO3/WR_ALD2=0.0 +!HNO4/SO2=0.0 ! -!NO3/WR_GLY=0.0 +!HNO4/SULF=0.0 ! -!NO3/WR_MGLY=0.0 +!HNO4/CO=0.0 ! -!NO3/WR_KETL=0.0 +!HNO4/OH=-K041*<HNO4> + PJAC(:,9,14)=-TPK%K041(:)*PCONC(:,9) ! -!NO3/WR_ORA1=0.0 +!HNO4/HO2=+K036*<NO2> + PJAC(:,9,15)=+TPK%K036(:)*PCONC(:,4) ! -!NO3/WR_ORA2=0.0 +!HNO4/CH4=0.0 ! -!NO3/WR_ACID=0.0 +!HNO4/ETH=0.0 ! -!NO3/WR_RP16=0.0 +!HNO4/ALKA=0.0 ! -!NO3/WR_UR21=0.0 +!HNO4/ALKE=0.0 ! -!NO3/WR_UR28=0.0 +!HNO4/BIO=0.0 ! -!NO3/WR_ACID2=0.0 +!HNO4/ARO=0.0 ! -!NO3/WR_ASO3=0.0 +!HNO4/HCHO=0.0 ! -!NO3/WR_ASO4=0.0 +!HNO4/ALD=0.0 ! -!NO3/WR_ASO5=0.0 +!HNO4/KET=0.0 ! -!NO3/WR_AHSO5=0.0 +!HNO4/CARBO=0.0 ! -!NO3/WR_AHMS=0.0 +!HNO4/ONIT=0.0 ! -!NH3/NO=0.0 +!HNO4/PAN=0.0 ! -!NH3/NO2=0.0 +!HNO4/OP1=0.0 ! -!NH3/O3=0.0 +!HNO4/OP2=0.0 ! -!NH3/HONO=0.0 +!HNO4/ORA1=0.0 ! -!NH3/HNO3=0.0 +!HNO4/ORA2=0.0 ! -!NH3/HNO4=0.0 +!HNO4/MO2=0.0 ! -!NH3/N2O5=0.0 +!HNO4/ALKAP=0.0 ! -!NH3/NO3=0.0 +!HNO4/ALKEP=0.0 ! -!NH3/NH3=-K345*<OH>-KTC10-KTR10 - PJAC(:,9,9)=-TPK%K345(:)*PCONC(:,15)-TPK%KTC10(:)-TPK%KTR10(:) +!HNO4/BIOP=0.0 ! -!NH3/HO2=0.0 +!HNO4/PHO=0.0 ! -!NH3/CO=0.0 +!HNO4/ADD=0.0 ! -!NH3/H2O2=0.0 +!HNO4/AROP=0.0 ! -!NH3/SO2=0.0 +!HNO4/CARBOP=0.0 ! -!NH3/H2SO4=0.0 +!HNO4/OLN=0.0 ! -!NH3/OH=-K345*<NH3> - PJAC(:,9,15)=-TPK%K345(:)*PCONC(:,9) +!HNO4/XO2=0.0 ! -!NH3/ETHE=0.0 +!NH3/O3=0.0 ! -!NH3/OLEL=0.0 +!NH3/H2O2=0.0 ! -!NH3/OLEH=0.0 +!NH3/NO=0.0 ! -!NH3/ALKL=0.0 +!NH3/NO2=0.0 ! -!NH3/ALKM=0.0 +!NH3/NO3=0.0 ! -!NH3/ALKH=0.0 +!NH3/N2O5=0.0 ! -!NH3/AROH=0.0 +!NH3/HONO=0.0 ! -!NH3/AROL=0.0 +!NH3/HNO3=0.0 ! -!NH3/AROO=0.0 +!NH3/HNO4=0.0 ! -!NH3/ARAL=0.0 +!NH3/NH3=-K050*<OH> + PJAC(:,10,10)=-TPK%K050(:)*PCONC(:,14) ! -!NH3/ARAC=0.0 +!NH3/SO2=0.0 ! -!NH3/PAH=0.0 +!NH3/SULF=0.0 ! -!NH3/HCHO=0.0 +!NH3/CO=0.0 ! -!NH3/ALD2=0.0 +!NH3/OH=-K050*<NH3> + PJAC(:,10,14)=-TPK%K050(:)*PCONC(:,10) ! -!NH3/KETL=0.0 +!NH3/HO2=0.0 ! -!NH3/KETH=0.0 +!NH3/CH4=0.0 ! -!NH3/MEOH=0.0 +!NH3/ETH=0.0 ! -!NH3/ETOH=0.0 +!NH3/ALKA=0.0 ! -!NH3/ALCH=0.0 +!NH3/ALKE=0.0 ! -!NH3/ISOP=0.0 +!NH3/BIO=0.0 ! -!NH3/BIOL=0.0 +!NH3/ARO=0.0 ! -!NH3/BIOH=0.0 +!NH3/HCHO=0.0 +! +!NH3/ALD=0.0 ! -!NH3/MTBE=0.0 +!NH3/KET=0.0 ! -!NH3/MVK=0.0 +!NH3/CARBO=0.0 ! -!NH3/MCR=0.0 +!NH3/ONIT=0.0 ! -!NH3/MGLY=0.0 +!NH3/PAN=0.0 ! -!NH3/GLY=0.0 +!NH3/OP1=0.0 +! +!NH3/OP2=0.0 ! !NH3/ORA1=0.0 ! !NH3/ORA2=0.0 ! -!NH3/ACID=0.0 +!NH3/MO2=0.0 ! -!NH3/UR28=0.0 +!NH3/ALKAP=0.0 ! -!NH3/UR21=0.0 +!NH3/ALKEP=0.0 ! -!NH3/URG2=0.0 +!NH3/BIOP=0.0 ! -!NH3/UR26=0.0 +!NH3/PHO=0.0 ! -!NH3/RPG2=0.0 +!NH3/ADD=0.0 ! -!NH3/RP18=0.0 +!NH3/AROP=0.0 ! -!NH3/RPG3=0.0 +!NH3/CARBOP=0.0 ! -!NH3/URG4=0.0 +!NH3/OLN=0.0 ! -!NH3/UR8=0.0 +!NH3/XO2=0.0 ! -!NH3/UR17=0.0 +RETURN +END SUBROUTINE SUBJ1 ! -!NH3/UR7=0.0 +SUBROUTINE SUBJ2 ! -!NH3/RPR3=0.0 +!Indices 11 a 15 ! -!NH3/URG6=0.0 ! -!NH3/UR22=0.0 +!SO2/O3=0.0 ! -!NH3/URG7=0.0 +!SO2/H2O2=0.0 ! -!NH3/RPR4=0.0 +!SO2/NO=0.0 ! -!NH3/RPR7=0.0 +!SO2/NO2=0.0 ! -!NH3/RPG7=0.0 +!SO2/NO3=0.0 ! -!NH3/URG8=0.0 +!SO2/N2O5=0.0 ! -!NH3/UR19=0.0 +!SO2/HONO=0.0 ! -!NH3/URG9=0.0 +!SO2/HNO3=0.0 ! -!NH3/AP7=0.0 +!SO2/HNO4=0.0 ! -!NH3/URG10=0.0 +!SO2/NH3=0.0 ! -!NH3/RPR1=0.0 +!SO2/SO2=-K052*<OH> + PJAC(:,11,11)=-TPK%K052(:)*PCONC(:,14) ! -!NH3/RPR5=0.0 +!SO2/SULF=0.0 ! -!NH3/RPR8=0.0 +!SO2/CO=0.0 ! -!NH3/RP10=0.0 +!SO2/OH=-K052*<SO2> + PJAC(:,11,14)=-TPK%K052(:)*PCONC(:,11) ! -!NH3/RP11=0.0 +!SO2/HO2=0.0 ! -!NH3/RP16=0.0 +!SO2/CH4=0.0 ! -!NH3/RPRL=0.0 +!SO2/ETH=0.0 ! -!NH3/APAN=0.0 +!SO2/ALKA=0.0 ! -!NH3/PAN1=0.0 +!SO2/ALKE=0.0 ! -!NH3/PAN2=0.0 +!SO2/BIO=0.0 ! -!NH3/PAN3=0.0 +!SO2/ARO=0.0 ! -!NH3/PAN4=0.0 +!SO2/HCHO=0.0 ! -!NH3/PAN6=0.0 +!SO2/ALD=0.0 ! -!NH3/PAN7=0.0 +!SO2/KET=0.0 ! -!NH3/PAN8=0.0 +!SO2/CARBO=0.0 ! -!NH3/PN10=0.0 +!SO2/ONIT=0.0 ! -!NH3/RO2T=0.0 +!SO2/PAN=0.0 ! -!NH3/RO21=0.0 +!SO2/OP1=0.0 ! -!NH3/RO25=0.0 +!SO2/OP2=0.0 ! -!NH3/WC_O3=0.0 +!SO2/ORA1=0.0 ! -!NH3/WC_H2O2=0.0 +!SO2/ORA2=0.0 ! -!NH3/WC_NO=0.0 +!SO2/MO2=0.0 ! -!NH3/WC_NO2=0.0 +!SO2/ALKAP=0.0 ! -!NH3/WC_NO3=0.0 +!SO2/ALKEP=0.0 ! -!NH3/WC_N2O5=0.0 +!SO2/BIOP=0.0 ! -!NH3/WC_HONO=0.0 +!SO2/PHO=0.0 ! -!NH3/WC_HNO3=0.0 +!SO2/ADD=0.0 ! -!NH3/WC_HNO4=0.0 +!SO2/AROP=0.0 ! -!NH3/WC_NH3=+KTC41 - PJAC(:,9,97)=+TPK%KTC41(:) +!SO2/CARBOP=0.0 ! -!NH3/WC_OH=0.0 +!SO2/OLN=0.0 ! -!NH3/WC_HO2=0.0 +!SO2/XO2=0.0 ! -!NH3/WC_CO2=0.0 +!SULF/O3=0.0 ! -!NH3/WC_SO2=0.0 +!SULF/H2O2=0.0 ! -!NH3/WC_H2SO4=0.0 +!SULF/NO=0.0 ! -!NH3/WC_RO21=0.0 +!SULF/NO2=0.0 ! -!NH3/WC_RO25=0.0 +!SULF/NO3=0.0 ! -!NH3/WC_MEOH=0.0 +!SULF/N2O5=0.0 ! -!NH3/WC_ETOH=0.0 +!SULF/HONO=0.0 ! -!NH3/WC_ALCH=0.0 +!SULF/HNO3=0.0 ! -!NH3/WC_HCHO=0.0 +!SULF/HNO4=0.0 ! -!NH3/WC_ALD2=0.0 +!SULF/NH3=0.0 ! -!NH3/WC_GLY=0.0 +!SULF/SO2=+K052*<OH> + PJAC(:,12,11)=+TPK%K052(:)*PCONC(:,14) ! -!NH3/WC_MGLY=0.0 +!SULF/SULF=-K132 + PJAC(:,12,12)=-TPK%K132(:) ! -!NH3/WC_KETL=0.0 +!SULF/CO=0.0 ! -!NH3/WC_ORA1=0.0 +!SULF/OH=+K052*<SO2> + PJAC(:,12,14)=+TPK%K052(:)*PCONC(:,11) ! -!NH3/WC_ORA2=0.0 +!SULF/HO2=0.0 ! -!NH3/WC_ACID=0.0 +!SULF/CH4=0.0 ! -!NH3/WC_RP16=0.0 +!SULF/ETH=0.0 ! -!NH3/WC_UR21=0.0 +!SULF/ALKA=0.0 ! -!NH3/WC_UR28=0.0 +!SULF/ALKE=0.0 ! -!NH3/WC_ACID2=0.0 +!SULF/BIO=0.0 ! -!NH3/WC_ASO3=0.0 +!SULF/ARO=0.0 ! -!NH3/WC_ASO4=0.0 +!SULF/HCHO=0.0 ! -!NH3/WC_ASO5=0.0 +!SULF/ALD=0.0 ! -!NH3/WC_AHSO5=0.0 +!SULF/KET=0.0 ! -!NH3/WC_AHMS=0.0 +!SULF/CARBO=0.0 ! -!NH3/WR_O3=0.0 +!SULF/ONIT=0.0 ! -!NH3/WR_H2O2=0.0 +!SULF/PAN=0.0 ! -!NH3/WR_NO=0.0 +!SULF/OP1=0.0 ! -!NH3/WR_NO2=0.0 +!SULF/OP2=0.0 ! -!NH3/WR_NO3=0.0 +!SULF/ORA1=0.0 ! -!NH3/WR_N2O5=0.0 +!SULF/ORA2=0.0 ! -!NH3/WR_HONO=0.0 +!SULF/MO2=0.0 ! -!NH3/WR_HNO3=0.0 +!SULF/ALKAP=0.0 ! -!NH3/WR_HNO4=0.0 +!SULF/ALKEP=0.0 ! -!NH3/WR_NH3=+KTR41 - PJAC(:,9,134)=+TPK%KTR41(:) +!SULF/BIOP=0.0 ! -!NH3/WR_OH=0.0 +!SULF/PHO=0.0 ! -!NH3/WR_HO2=0.0 +!SULF/ADD=0.0 ! -!NH3/WR_CO2=0.0 +!SULF/AROP=0.0 ! -!NH3/WR_SO2=0.0 +!SULF/CARBOP=0.0 ! -!NH3/WR_H2SO4=0.0 +!SULF/OLN=0.0 ! -!NH3/WR_RO21=0.0 +!SULF/XO2=0.0 ! -!NH3/WR_RO25=0.0 +!CO/O3=+0.35120*K079*<ALKE>+0.36000*K080*<BIO>+0.64728*K081*<CARBO>+0.13*K082*< +!PAN> + PJAC(:,13,1)=+0.35120*TPK%K079(:)*PCONC(:,19)+0.36000*TPK%K080(:)*PCONC(:,20)+& +&0.64728*TPK%K081(:)*PCONC(:,25)+0.13*TPK%K082(:)*PCONC(:,27) ! -!NH3/WR_MEOH=0.0 +!CO/H2O2=0.0 ! -!NH3/WR_ETOH=0.0 +!CO/NO=0.0 ! -!NH3/WR_ALCH=0.0 +!CO/NO2=0.0 ! -!NH3/WR_HCHO=0.0 +!CO/NO3=+K072*<HCHO>+1.33723*K074*<CARBO> + PJAC(:,13,5)=+TPK%K072(:)*PCONC(:,22)+1.33723*TPK%K074(:)*PCONC(:,25) ! -!NH3/WR_ALD2=0.0 +!CO/N2O5=0.0 ! -!NH3/WR_GLY=0.0 +!CO/HONO=0.0 ! -!NH3/WR_MGLY=0.0 +!CO/HNO3=0.0 ! -!NH3/WR_KETL=0.0 +!CO/HNO4=0.0 ! -!NH3/WR_ORA1=0.0 +!CO/NH3=0.0 ! -!NH3/WR_ORA2=0.0 +!CO/SO2=0.0 ! -!NH3/WR_ACID=0.0 +!CO/SULF=0.0 ! -!NH3/WR_RP16=0.0 +!CO/CO=-K053*<OH> + PJAC(:,13,13)=-TPK%K053(:)*PCONC(:,14) ! -!NH3/WR_UR21=0.0 +!CO/OH=-K053*<CO>+0.00878*K058*<ALKA>+K062*<HCHO>+1.01732*K065*<CARBO> + PJAC(:,13,14)=-TPK%K053(:)*PCONC(:,13)+0.00878*TPK%K058(:)*PCONC(:,18)+TPK%K06& +&2(:)*PCONC(:,22)+1.01732*TPK%K065(:)*PCONC(:,25) ! -!NH3/WR_UR28=0.0 +!CO/HO2=0.0 ! -!NH3/WR_ACID2=0.0 +!CO/CH4=0.0 ! -!NH3/WR_ASO3=0.0 +!CO/ETH=0.0 ! -!NH3/WR_ASO4=0.0 +!CO/ALKA=+0.00878*K058*<OH> + PJAC(:,13,18)=+0.00878*TPK%K058(:)*PCONC(:,14) ! -!NH3/WR_ASO5=0.0 +!CO/ALKE=+0.35120*K079*<O3> + PJAC(:,13,19)=+0.35120*TPK%K079(:)*PCONC(:,1) ! -!NH3/WR_AHSO5=0.0 +!CO/BIO=+0.01*K054*<O3P>+0.36000*K080*<O3> + PJAC(:,13,20)=+0.01*TPK%K054(:)*TPK%O3P(:)+0.36000*TPK%K080(:)*PCONC(:,1) ! -!NH3/WR_AHMS=0.0 +!CO/ARO=0.0 ! -!HO2/NO=-K026*<HO2>+K110*<RO21>+K113*<RO22>+K119*<RO24>+TPK%CF4*K122*<RO25>+TPK -!%CF6*K150*<RO29>+K153*<RO210>+K171*<RO215>+TPK%CF22*K177*<RO217>+TPK%CF20*K180 -!*<RO218>+TPK%CF24*K189*<RO221>+TPK%CF42*K192*<RO222>+TPK%CF44*K195*<RO223>+TPK -!%CF26*K198*<RO224>+TPK%CF28*K207*<RO227>+TPK%CF32*K221*<RO231>+TPK%CF36*K227*< -!RO241>+K231*<RO233>+K234*<RO242>+K238*<RO234>+K241*<RO243>+K245*<RO235>+K248*< -!RO244>+K252*<RO236>+K255*<RO245>+K259*<RO237>+K262*<RO246>+K266*<RO238>+K269*< -!RO247>+K285*<RO249>+K291*<RO251>+K300*<RO254>+K315*<RO256> - PJAC(:,10,1)=-TPK%K026(:)*PCONC(:,10)+TPK%K110(:)*PCONC(:,86)+TPK%K113(:)*TPK%& -&RO22(:)+TPK%K119(:)*TPK%RO24(:)+TPK%CF4*TPK%K122(:)*PCONC(:,87)+TPK%CF6*TPK%K1& -&50(:)*TPK%RO29(:)+TPK%K153(:)*TPK%RO210(:)+TPK%K171(:)*TPK%RO215(:)+TPK%CF22*T& -&PK%K177(:)*TPK%RO217(:)+TPK%CF20*TPK%K180(:)*TPK%RO218(:)+TPK%CF24*TPK%K189(:)& -&*TPK%RO221(:)+TPK%CF42*TPK%K192(:)*TPK%RO222(:)+TPK%CF44*TPK%K195(:)*TPK%RO223& -&(:)+TPK%CF26*TPK%K198(:)*TPK%RO224(:)+TPK%CF28*TPK%K207(:)*TPK%RO227(:)+TPK%CF& -&32*TPK%K221(:)*TPK%RO231(:)+TPK%CF36*TPK%K227(:)*TPK%RO241(:)+TPK%K231(:)*TPK%& -&RO233(:)+TPK%K234(:)*TPK%RO242(:)+TPK%K238(:)*TPK%RO234(:)+TPK%K241(:)*TPK%RO2& -&43(:)+TPK%K245(:)*TPK%RO235(:)+TPK%K248(:)*TPK%RO244(:)+TPK%K252(:)*TPK%RO236(& -&:)+TPK%K255(:)*TPK%RO245(:)+TPK%K259(:)*TPK%RO237(:)+TPK%K262(:)*TPK%RO246(:)+& -&TPK%K266(:)*TPK%RO238(:)+TPK%K269(:)*TPK%RO247(:)+TPK%K285(:)*TPK%RO249(:)+TPK& -&%K291(:)*TPK%RO251(:)+TPK%K300(:)*TPK%RO254(:)+TPK%K315(:)*TPK%RO256(:) -! -!HO2/NO2=-K027*<HO2> - PJAC(:,10,2)=-TPK%K027(:)*PCONC(:,10) -! -!HO2/O3=+K025*<OH>-K030*<HO2>+0.06*K051*<ETHE>+0.28*K056*<OLEL>+0.366*K066*<ISO -!P>+0.28*K076*<OLEH>+0.445*K086*<BIOL>+0.28*K281*<MVK>+0.41*K282*<MCR> - PJAC(:,10,3)=+TPK%K025(:)*PCONC(:,15)-TPK%K030(:)*PCONC(:,10)+0.06*TPK%K051(:)& -&*PCONC(:,16)+0.28*TPK%K056(:)*PCONC(:,17)+0.366*TPK%K066(:)*PCONC(:,35)+0.28*T& -&PK%K076(:)*PCONC(:,18)+0.445*TPK%K086(:)*PCONC(:,36)+0.28*TPK%K281(:)*PCONC(:,& -&39)+0.41*TPK%K282(:)*PCONC(:,40) -! -!HO2/HONO=+0.1*K020 - PJAC(:,10,4)=+0.1*TPK%K020(:) +!CO/HCHO=+K010+K011+K062*<OH>+K072*<NO3> + PJAC(:,13,22)=+TPK%K010(:)+TPK%K011(:)+TPK%K062(:)*PCONC(:,14)+TPK%K072(:)*PCO& +&NC(:,5) ! -!HO2/HNO3=0.0 +!CO/ALD=+K012 + PJAC(:,13,23)=+TPK%K012(:) ! -!HO2/HNO4=+K028 - PJAC(:,10,6)=+TPK%K028(:) +!CO/KET=0.0 ! -!HO2/N2O5=0.0 +!CO/CARBO=+0.91924*K016+1.01732*K065*<OH>+1.33723*K074*<NO3>+0.64728*K081*<O3> + PJAC(:,13,25)=+0.91924*TPK%K016(:)+1.01732*TPK%K065(:)*PCONC(:,14)+1.33723*TPK& +&%K074(:)*PCONC(:,5)+0.64728*TPK%K081(:)*PCONC(:,1) ! -!HO2/NO3=-K033*<HO2>+K040*<OH>+K047*<HCHO> - PJAC(:,10,8)=-TPK%K033(:)*PCONC(:,10)+TPK%K040(:)*PCONC(:,15)+TPK%K047(:)*PCON& -&C(:,28) +!CO/ONIT=0.0 ! -!HO2/NH3=0.0 +!CO/PAN=+0.13*K082*<O3> + PJAC(:,13,27)=+0.13*TPK%K082(:)*PCONC(:,1) ! -!HO2/HO2=-K026*<NO>-K027*<NO2>-K030*<O3>-K031*<HO2>-K031*<HO2>-K031*<HO2>-K031* -!<HO2>-K032*<H2O>*<HO2>-K032*<H2O>*<HO2>-K032*<H2O>*<HO2>-K032*<H2O>*<HO2>-K033 -!*<NO3>-K042*<OH>+K094*<RO2T>-K094*<RO2T>+K112*<RO21>-K112*<RO21>+K115*<RO22>-K -!115*<RO22>+K118*<RO23>-K118*<RO23>+K121*<RO24>-K121*<RO24>+K124*<RO25>-K124*<R -!O25>-K142*<RO26>-K146*<RO27>-K148*<RO28>+K152*<RO29>-K152*<RO29>+K155*<RO210>- -!K155*<RO210>-K158*<RO211>-K161*<RO212>-K164*<RO213>-K166*<RO239>-K170*<RO214>+ -!K173*<RO215>-K173*<RO215>-K176*<RO216>+K179*<RO217>-K179*<RO217>+K182*<RO218>- -!K182*<RO218>-K185*<RO219>-K188*<RO220>+K191*<RO221>-K191*<RO221>+K194*<RO222>- -!K194*<RO222>+K197*<RO223>-K197*<RO223>+K200*<RO224>-K200*<RO224>-K203*<RO225>- -!K206*<RO226>+K209*<RO227>-K209*<RO227>-K212*<RO228>-K215*<RO229>-K218*<RO240>- -!K220*<RO230>+K223*<RO231>-K223*<RO231>-K226*<RO232>+K229*<RO241>-K229*<RO241>+ -!K233*<RO233>-K233*<RO233>+K236*<RO242>-K236*<RO242>+K240*<RO234>-K240*<RO234>+ -!K243*<RO243>-K243*<RO243>+K247*<RO235>-K247*<RO235>+K250*<RO244>-K250*<RO244>+ -!K254*<RO236>-K254*<RO236>+K257*<RO245>-K257*<RO245>+K261*<RO237>-K261*<RO237>+ -!K264*<RO246>-K264*<RO246>+K268*<RO238>-K268*<RO238>+K271*<RO247>-K271*<RO247>- -!K279*<RO248>+K287*<RO249>-K287*<RO249>-K289*<RO250>+K292*<RO251>-K292*<RO251>- -!K295*<RO252>-K298*<RO253>-K301*<RO254>-K310*<RO255>-K318*<RO256>-K332*<RO257>- -!K341*<RO258>-KTC12-KTR12 - PJAC(:,10,10)=-TPK%K026(:)*PCONC(:,1)-TPK%K027(:)*PCONC(:,2)-TPK%K030(:)*PCONC& -&(:,3)-TPK%K031(:)*PCONC(:,10)-TPK%K031(:)*PCONC(:,10)-TPK%K031(:)*PCONC(:,10)-& -&TPK%K031(:)*PCONC(:,10)-TPK%K032(:)*TPK%H2O(:)*PCONC(:,10)-TPK%K032(:)*TPK%H2O& -&(:)*PCONC(:,10)-TPK%K032(:)*TPK%H2O(:)*PCONC(:,10)-TPK%K032(:)*TPK%H2O(:)*PCON& -&C(:,10)-TPK%K033(:)*PCONC(:,8)-TPK%K042(:)*PCONC(:,15)+TPK%K094(:)*PCONC(:,85)& -&-TPK%K094(:)*PCONC(:,85)+TPK%K112(:)*PCONC(:,86)-TPK%K112(:)*PCONC(:,86)+TPK%K& -&115(:)*TPK%RO22(:)-TPK%K115(:)*TPK%RO22(:)+TPK%K118(:)*TPK%RO23(:)-TPK%K118(:)& -&*TPK%RO23(:)+TPK%K121(:)*TPK%RO24(:)-TPK%K121(:)*TPK%RO24(:)+TPK%K124(:)*PCONC& -&(:,87)-TPK%K124(:)*PCONC(:,87)-TPK%K142(:)*TPK%RO26(:)-TPK%K146(:)*TPK%RO27(:)& -&-TPK%K148(:)*TPK%RO28(:)+TPK%K152(:)*TPK%RO29(:)-TPK%K152(:)*TPK%RO29(:)+TPK%K& -&155(:)*TPK%RO210(:)-TPK%K155(:)*TPK%RO210(:)-TPK%K158(:)*TPK%RO211(:)-TPK%K161& -&(:)*TPK%RO212(:)-TPK%K164(:)*TPK%RO213(:)-TPK%K166(:)*TPK%RO239(:)-TPK%K170(:)& -&*TPK%RO214(:)+TPK%K173(:)*TPK%RO215(:)-TPK%K173(:)*TPK%RO215(:)-TPK%K176(:)*TP& -&K%RO216(:)+TPK%K179(:)*TPK%RO217(:)-TPK%K179(:)*TPK%RO217(:)+TPK%K182(:)*TPK%R& -&O218(:)-TPK%K182(:)*TPK%RO218(:)-TPK%K185(:)*TPK%RO219(:)-TPK%K188(:)*TPK%RO22& -&0(:)+TPK%K191(:)*TPK%RO221(:)-TPK%K191(:)*TPK%RO221(:)+TPK%K194(:)*TPK%RO222(:& -&)-TPK%K194(:)*TPK%RO222(:)+TPK%K197(:)*TPK%RO223(:)-TPK%K197(:)*TPK%RO223(:)+T& -&PK%K200(:)*TPK%RO224(:)-TPK%K200(:)*TPK%RO224(:)-TPK%K203(:)*TPK%RO225(:)-TPK%& -&K206(:)*TPK%RO226(:)+TPK%K209(:)*TPK%RO227(:)-TPK%K209(:)*TPK%RO227(:)-TPK%K21& -&2(:)*TPK%RO228(:)-TPK%K215(:)*TPK%RO229(:)-TPK%K218(:)*TPK%RO240(:)-TPK%K220(:& -&)*TPK%RO230(:)+TPK%K223(:)*TPK%RO231(:)-TPK%K223(:)*TPK%RO231(:)-TPK%K226(:)*T& -&PK%RO232(:)+TPK%K229(:)*TPK%RO241(:)-TPK%K229(:)*TPK%RO241(:)+TPK%K233(:)*TPK%& -&RO233(:)-TPK%K233(:)*TPK%RO233(:)+TPK%K236(:)*TPK%RO242(:)-TPK%K236(:)*TPK%RO2& -&42(:)+TPK%K240(:)*TPK%RO234(:)-TPK%K240(:)*TPK%RO234(:)+TPK%K243(:)*TPK%RO243(& -&:)-TPK%K243(:)*TPK%RO243(:)+TPK%K247(:)*TPK%RO235(:)-TPK%K247(:)*TPK%RO235(:)+& -&TPK%K250(:)*TPK%RO244(:)-TPK%K250(:)*TPK%RO244(:)+TPK%K254(:)*TPK%RO236(:)-TPK& -&%K254(:)*TPK%RO236(:)+TPK%K257(:)*TPK%RO245(:)-TPK%K257(:)*TPK%RO245(:)+TPK%K2& -&61(:)*TPK%RO237(:)-TPK%K261(:)*TPK%RO237(:)+TPK%K264(:)*TPK%RO246(:)-TPK%K264(& -&:)*TPK%RO246(:)+TPK%K268(:)*TPK%RO238(:)-TPK%K268(:)*TPK%RO238(:)+TPK%K271(:)*& -&TPK%RO247(:)-TPK%K271(:)*TPK%RO247(:)-TPK%K279(:)*TPK%RO248(:)+TPK%K287(:)*TPK& -&%RO249(:)-TPK%K287(:)*TPK%RO249(:)-TPK%K289(:)*TPK%RO250(:)+TPK%K292(:)*TPK%RO& -&251(:)-TPK%K292(:)*TPK%RO251(:)-TPK%K295(:)*TPK%RO252(:)-TPK%K298(:)*TPK%RO253& -&(:)-TPK%K301(:)*TPK%RO254(:)-TPK%K310(:)*TPK%RO255(:)-TPK%K318(:)*TPK%RO256(:)& -&-TPK%K332(:)*TPK%RO257(:)-TPK%K341(:)*TPK%RO258(:)-TPK%KTC12(:)-TPK%KTR12(:) -! -!HO2/CO=+K024*<OH> - PJAC(:,10,11)=+TPK%K024(:)*PCONC(:,15) -! -!HO2/H2O2=+K037*<OH> - PJAC(:,10,12)=+TPK%K037(:)*PCONC(:,15) -! -!HO2/SO2=+K035*<OH> - PJAC(:,10,13)=+TPK%K035(:)*PCONC(:,15) -! -!HO2/H2SO4=0.0 -! -!HO2/OH=+K024*<CO>+K025*<O3>+K035*<SO2>+K037*<H2O2>+K040*<NO3>-K042*<HO2>+K046* -!<HCHO>+K048*<MEOH>+TPK%CF1*K053*<ETOH>+0.16*K073*<AROO>+0.16*K079*<AROL>+0.16* -!K080*<AROH>+TPK%CF48*K082*<ARAL>+0.16*K083*<ARAC>+0.16*K092*<PAH>+K325*<RP10>+ -!K347*<ORA1> - PJAC(:,10,15)=+TPK%K024(:)*PCONC(:,11)+TPK%K025(:)*PCONC(:,3)+TPK%K035(:)*PCON& -&C(:,13)+TPK%K037(:)*PCONC(:,12)+TPK%K040(:)*PCONC(:,8)-TPK%K042(:)*PCONC(:,10)& -&+TPK%K046(:)*PCONC(:,28)+TPK%K048(:)*PCONC(:,32)+TPK%CF1*TPK%K053(:)*PCONC(:,3& -&3)+0.16*TPK%K073(:)*PCONC(:,24)+0.16*TPK%K079(:)*PCONC(:,23)+0.16*TPK%K080(:)*& -&PCONC(:,22)+TPK%CF48*TPK%K082(:)*PCONC(:,25)+0.16*TPK%K083(:)*PCONC(:,26)+0.16& -&*TPK%K092(:)*PCONC(:,27)+TPK%K325(:)*PCONC(:,72)+TPK%K347(:)*PCONC(:,43) -! -!HO2/ETHE=+0.06*K051*<O3>+K052*<O> - PJAC(:,10,16)=+0.06*TPK%K051(:)*PCONC(:,3)+TPK%K052(:)*TPK%O(:) -! -!HO2/OLEL=+0.28*K056*<O3> - PJAC(:,10,17)=+0.28*TPK%K056(:)*PCONC(:,3) -! -!HO2/OLEH=+0.28*K076*<O3> - PJAC(:,10,18)=+0.28*TPK%K076(:)*PCONC(:,3) -! -!HO2/ALKL=0.0 -! -!HO2/ALKM=0.0 -! -!HO2/ALKH=0.0 -! -!HO2/AROH=+0.16*K080*<OH> - PJAC(:,10,22)=+0.16*TPK%K080(:)*PCONC(:,15) -! -!HO2/AROL=+0.16*K079*<OH> - PJAC(:,10,23)=+0.16*TPK%K079(:)*PCONC(:,15) -! -!HO2/AROO=+0.16*K073*<OH> - PJAC(:,10,24)=+0.16*TPK%K073(:)*PCONC(:,15) -! -!HO2/ARAL=+TPK%CF48*K082*<OH> - PJAC(:,10,25)=+TPK%CF48*TPK%K082(:)*PCONC(:,15) -! -!HO2/ARAC=+0.16*K083*<OH> - PJAC(:,10,26)=+0.16*TPK%K083(:)*PCONC(:,15) -! -!HO2/PAH=+0.16*K092*<OH> - PJAC(:,10,27)=+0.16*TPK%K092(:)*PCONC(:,15) -! -!HO2/HCHO=+2.0*K044+K046*<OH>+K047*<NO3> - PJAC(:,10,28)=+2.0*TPK%K044(:)+TPK%K046(:)*PCONC(:,15)+TPK%K047(:)*PCONC(:,8) -! -!HO2/ALD2=+K059 - PJAC(:,10,29)=+TPK%K059(:) +!CO/OP1=0.0 ! -!HO2/KETL=0.0 +!CO/OP2=0.0 ! -!HO2/KETH=0.0 +!CO/ORA1=0.0 ! -!HO2/MEOH=+K048*<OH> - PJAC(:,10,32)=+TPK%K048(:)*PCONC(:,15) +!CO/ORA2=0.0 ! -!HO2/ETOH=+TPK%CF1*K053*<OH> - PJAC(:,10,33)=+TPK%CF1*TPK%K053(:)*PCONC(:,15) +!CO/MO2=0.0 ! -!HO2/ALCH=0.0 +!CO/ALKAP=0.0 ! -!HO2/ISOP=+0.366*K066*<O3> - PJAC(:,10,35)=+0.366*TPK%K066(:)*PCONC(:,3) +!CO/ALKEP=0.0 ! -!HO2/BIOL=+0.445*K086*<O3> - PJAC(:,10,36)=+0.445*TPK%K086(:)*PCONC(:,3) +!CO/BIOP=0.0 ! -!HO2/BIOH=0.0 +!CO/PHO=0.0 ! -!HO2/MTBE=0.0 +!CO/ADD=0.0 ! -!HO2/MVK=+0.28*K281*<O3> - PJAC(:,10,39)=+0.28*TPK%K281(:)*PCONC(:,3) +!CO/AROP=0.0 ! -!HO2/MCR=+0.41*K282*<O3>+0.15*K284*<O> - PJAC(:,10,40)=+0.41*TPK%K282(:)*PCONC(:,3)+0.15*TPK%K284(:)*TPK%O(:) +!CO/CARBOP=0.0 ! -!HO2/MGLY=+K276 - PJAC(:,10,41)=+TPK%K276(:) +!CO/OLN=0.0 ! -!HO2/GLY=0.0 +!CO/XO2=0.0 ! -!HO2/ORA1=+K347*<OH> - PJAC(:,10,43)=+TPK%K347(:)*PCONC(:,15) +!OH/O3=-K023*<OH>+K024*<HO2>+0.39435*K079*<ALKE>+0.28000*K080*<BIO>+0.20595*K08 +!1*<CARBO>+0.036*K082*<PAN>+K087*<ADD> + PJAC(:,14,1)=-TPK%K023(:)*PCONC(:,14)+TPK%K024(:)*PCONC(:,15)+0.39435*TPK%K079& +&(:)*PCONC(:,19)+0.28000*TPK%K080(:)*PCONC(:,20)+0.20595*TPK%K081(:)*PCONC(:,25& +&)+0.036*TPK%K082(:)*PCONC(:,27)+TPK%K087(:)*PCONC(:,37) ! -!HO2/ORA2=0.0 +!OH/H2O2=+K009+K009-K026*<OH> + PJAC(:,14,2)=+TPK%K009(:)+TPK%K009(:)-TPK%K026(:)*PCONC(:,14) ! -!HO2/ACID=0.0 +!OH/NO=-K032*<OH>+K035*<HO2> + PJAC(:,14,3)=-TPK%K032(:)*PCONC(:,14)+TPK%K035(:)*PCONC(:,15) ! -!HO2/UR28=0.0 +!OH/NO2=-K033*<OH> + PJAC(:,14,4)=-TPK%K033(:)*PCONC(:,14) ! -!HO2/UR21=0.0 +!OH/NO3=-K034*<OH>+0.7*K038*<HO2> + PJAC(:,14,5)=-TPK%K034(:)*PCONC(:,14)+0.7*TPK%K038(:)*PCONC(:,15) ! -!HO2/URG2=0.0 +!OH/N2O5=0.0 ! -!HO2/UR26=0.0 +!OH/HONO=+K004-K039*<OH> + PJAC(:,14,7)=+TPK%K004(:)-TPK%K039(:)*PCONC(:,14) ! -!HO2/RPG2=0.0 +!OH/HNO3=+K005-K040*<OH> + PJAC(:,14,8)=+TPK%K005(:)-TPK%K040(:)*PCONC(:,14) ! -!HO2/RP18=0.0 +!OH/HNO4=+0.35*K006-K041*<OH> + PJAC(:,14,9)=+0.35*TPK%K006(:)-TPK%K041(:)*PCONC(:,14) ! -!HO2/RPG3=0.0 +!OH/NH3=-K050*<OH> + PJAC(:,14,10)=-TPK%K050(:)*PCONC(:,14) ! -!HO2/URG4=0.0 +!OH/SO2=-K052*<OH> + PJAC(:,14,11)=-TPK%K052(:)*PCONC(:,14) ! -!HO2/UR8=0.0 +!OH/SULF=0.0 ! -!HO2/UR17=0.0 +!OH/CO=-K053*<OH> + PJAC(:,14,13)=-TPK%K053(:)*PCONC(:,14) ! -!HO2/UR7=0.0 +!OH/OH=-K023*<O3>-K025*<HO2>-K026*<H2O2>-K032*<NO>-K033*<NO2>-K034*<NO3>-K039*< +!HONO>-K040*<HNO3>-K041*<HNO4>-K050*<NH3>-K051*<H2>-K052*<SO2>-K053*<CO>-K056*< +!CH4>-K057*<ETH>+0.00878*K058*<ALKA>-K058*<ALKA>-K059*<ALKE>-K060*<BIO>-K061*<A +!RO>-K062*<HCHO>-K063*<ALD>-K064*<KET>-K065*<CARBO>-K066*<ORA1>-K067*<ORA2>+0.3 +!5*K068*<OP1>-K068*<OP1>+0.44925*K069*<OP2>-K069*<OP2>-K070*<PAN>-K071*<ONIT> + PJAC(:,14,14)=-TPK%K023(:)*PCONC(:,1)-TPK%K025(:)*PCONC(:,15)-TPK%K026(:)*PCON& +&C(:,2)-TPK%K032(:)*PCONC(:,3)-TPK%K033(:)*PCONC(:,4)-TPK%K034(:)*PCONC(:,5)-TP& +&K%K039(:)*PCONC(:,7)-TPK%K040(:)*PCONC(:,8)-TPK%K041(:)*PCONC(:,9)-TPK%K050(:)& +&*PCONC(:,10)-TPK%K051(:)*TPK%H2(:)-TPK%K052(:)*PCONC(:,11)-TPK%K053(:)*PCONC(:& +&,13)-TPK%K056(:)*PCONC(:,16)-TPK%K057(:)*PCONC(:,17)+0.00878*TPK%K058(:)*PCONC& +&(:,18)-TPK%K058(:)*PCONC(:,18)-TPK%K059(:)*PCONC(:,19)-TPK%K060(:)*PCONC(:,20)& +&-TPK%K061(:)*PCONC(:,21)-TPK%K062(:)*PCONC(:,22)-TPK%K063(:)*PCONC(:,23)-TPK%K& +&064(:)*PCONC(:,24)-TPK%K065(:)*PCONC(:,25)-TPK%K066(:)*PCONC(:,30)-TPK%K067(:)& +&*PCONC(:,31)+0.35*TPK%K068(:)*PCONC(:,28)-TPK%K068(:)*PCONC(:,28)+0.44925*TPK%& +&K069(:)*PCONC(:,29)-TPK%K069(:)*PCONC(:,29)-TPK%K070(:)*PCONC(:,27)-TPK%K071(:& +&)*PCONC(:,26) ! -!HO2/RPR3=+2.*K314 - PJAC(:,10,57)=+2.*TPK%K314(:) +!OH/HO2=+K024*<O3>-K025*<OH>+K035*<NO>+0.7*K038*<NO3> + PJAC(:,14,15)=+TPK%K024(:)*PCONC(:,1)-TPK%K025(:)*PCONC(:,14)+TPK%K035(:)*PCON& +&C(:,3)+0.7*TPK%K038(:)*PCONC(:,5) ! -!HO2/URG6=0.0 +!OH/CH4=-K056*<OH> + PJAC(:,14,16)=-TPK%K056(:)*PCONC(:,14) ! -!HO2/UR22=0.0 +!OH/ETH=-K057*<OH> + PJAC(:,14,17)=-TPK%K057(:)*PCONC(:,14) ! -!HO2/URG7=0.0 +!OH/ALKA=+0.00878*K058*<OH>-K058*<OH> + PJAC(:,14,18)=+0.00878*TPK%K058(:)*PCONC(:,14)-TPK%K058(:)*PCONC(:,14) ! -!HO2/RPR4=0.0 +!OH/ALKE=-K059*<OH>+0.39435*K079*<O3> + PJAC(:,14,19)=-TPK%K059(:)*PCONC(:,14)+0.39435*TPK%K079(:)*PCONC(:,1) ! -!HO2/RPR7=0.0 +!OH/BIO=+0.02*K054*<O3P>-K060*<OH>+0.28000*K080*<O3> + PJAC(:,14,20)=+0.02*TPK%K054(:)*TPK%O3P(:)-TPK%K060(:)*PCONC(:,14)+0.28000*TPK& +&%K080(:)*PCONC(:,1) ! -!HO2/RPG7=0.0 +!OH/ARO=-K061*<OH> + PJAC(:,14,21)=-TPK%K061(:)*PCONC(:,14) ! -!HO2/URG8=0.0 +!OH/HCHO=-K062*<OH> + PJAC(:,14,22)=-TPK%K062(:)*PCONC(:,14) ! -!HO2/UR19=0.0 +!OH/ALD=-K063*<OH> + PJAC(:,14,23)=-TPK%K063(:)*PCONC(:,14) ! -!HO2/URG9=0.0 +!OH/KET=-K064*<OH> + PJAC(:,14,24)=-TPK%K064(:)*PCONC(:,14) ! -!HO2/AP7=0.0 +!OH/CARBO=-K065*<OH>+0.20595*K081*<O3> + PJAC(:,14,25)=-TPK%K065(:)*PCONC(:,14)+0.20595*TPK%K081(:)*PCONC(:,1) ! -!HO2/URG10=0.0 +!OH/ONIT=-K071*<OH> + PJAC(:,14,26)=-TPK%K071(:)*PCONC(:,14) ! -!HO2/RPR1=+K308 - PJAC(:,10,69)=+TPK%K308(:) +!OH/PAN=-K070*<OH>+0.036*K082*<O3> + PJAC(:,14,27)=-TPK%K070(:)*PCONC(:,14)+0.036*TPK%K082(:)*PCONC(:,1) ! -!HO2/RPR5=0.0 +!OH/OP1=+K013+0.35*K068*<OH>-K068*<OH> + PJAC(:,14,28)=+TPK%K013(:)+0.35*TPK%K068(:)*PCONC(:,14)-TPK%K068(:)*PCONC(:,14& +&) ! -!HO2/RPR8=+K329+K330 - PJAC(:,10,71)=+TPK%K329(:)+TPK%K330(:) +!OH/OP2=+K014+0.44925*K069*<OH>-K069*<OH> + PJAC(:,14,29)=+TPK%K014(:)+0.44925*TPK%K069(:)*PCONC(:,14)-TPK%K069(:)*PCONC(:& +&,14) ! -!HO2/RP10=+K325*<OH> - PJAC(:,10,72)=+TPK%K325(:)*PCONC(:,15) +!OH/ORA1=-K066*<OH> + PJAC(:,14,30)=-TPK%K066(:)*PCONC(:,14) ! -!HO2/RP11=0.0 +!OH/ORA2=-K067*<OH> + PJAC(:,14,31)=-TPK%K067(:)*PCONC(:,14) ! -!HO2/RP16=+K339 - PJAC(:,10,74)=+TPK%K339(:) +!OH/MO2=0.0 ! -!HO2/RPRL=0.0 +!OH/ALKAP=0.0 ! -!HO2/APAN=0.0 +!OH/ALKEP=0.0 ! -!HO2/PAN1=0.0 +!OH/BIOP=0.0 ! -!HO2/PAN2=0.0 +!OH/PHO=0.0 ! -!HO2/PAN3=0.0 +!OH/ADD=+K087*<O3> + PJAC(:,14,37)=+TPK%K087(:)*PCONC(:,1) ! -!HO2/PAN4=0.0 +!OH/AROP=0.0 ! -!HO2/PAN6=0.0 +!OH/CARBOP=0.0 ! -!HO2/PAN7=0.0 +!OH/OLN=0.0 ! -!HO2/PAN8=0.0 +!OH/XO2=0.0 ! -!HO2/PN10=0.0 +!HO2/O3=+K023*<OH>-K024*<HO2>+0.23451*K079*<ALKE>+0.30000*K080*<BIO>+0.28441*K0 +!81*<CARBO>+0.08*K082*<PAN> + PJAC(:,15,1)=+TPK%K023(:)*PCONC(:,14)-TPK%K024(:)*PCONC(:,15)+0.23451*TPK%K079& +&(:)*PCONC(:,19)+0.30000*TPK%K080(:)*PCONC(:,20)+0.28441*TPK%K081(:)*PCONC(:,25& +&)+0.08*TPK%K082(:)*PCONC(:,27) ! -!HO2/RO2T=+K094*<HO2>-K094*<HO2>+K111*<RO21>+K114*<RO22>+K117*<RO23>+K120*<RO24 -!>+K123*<RO25>+K151*<RO29>+K154*<RO210>+K172*<RO215>+K178*<RO217>+K181*<RO218>+ -!K190*<RO221>+K193*<RO222>+K196*<RO223>+K199*<RO224>+K208*<RO227>+K222*<RO231>+ -!K228*<RO241>+K232*<RO233>+K235*<RO242>+K239*<RO234>+K242*<RO243>+K246*<RO235>+ -!K249*<RO244>+K253*<RO236>+K256*<RO245>+K260*<RO237>+K263*<RO246>+K267*<RO238>+ -!K270*<RO247>+K286*<RO249>+K293*<RO251>+K302*<RO254>+K319*<RO256> - PJAC(:,10,85)=+TPK%K094(:)*PCONC(:,10)-TPK%K094(:)*PCONC(:,10)+TPK%K111(:)*PCO& -&NC(:,86)+TPK%K114(:)*TPK%RO22(:)+TPK%K117(:)*TPK%RO23(:)+TPK%K120(:)*TPK%RO24(& -&:)+TPK%K123(:)*PCONC(:,87)+TPK%K151(:)*TPK%RO29(:)+TPK%K154(:)*TPK%RO210(:)+TP& -&K%K172(:)*TPK%RO215(:)+TPK%K178(:)*TPK%RO217(:)+TPK%K181(:)*TPK%RO218(:)+TPK%K& -&190(:)*TPK%RO221(:)+TPK%K193(:)*TPK%RO222(:)+TPK%K196(:)*TPK%RO223(:)+TPK%K199& -&(:)*TPK%RO224(:)+TPK%K208(:)*TPK%RO227(:)+TPK%K222(:)*TPK%RO231(:)+TPK%K228(:)& -&*TPK%RO241(:)+TPK%K232(:)*TPK%RO233(:)+TPK%K235(:)*TPK%RO242(:)+TPK%K239(:)*TP& -&K%RO234(:)+TPK%K242(:)*TPK%RO243(:)+TPK%K246(:)*TPK%RO235(:)+TPK%K249(:)*TPK%R& -&O244(:)+TPK%K253(:)*TPK%RO236(:)+TPK%K256(:)*TPK%RO245(:)+TPK%K260(:)*TPK%RO23& -&7(:)+TPK%K263(:)*TPK%RO246(:)+TPK%K267(:)*TPK%RO238(:)+TPK%K270(:)*TPK%RO247(:& -&)+TPK%K286(:)*TPK%RO249(:)+TPK%K293(:)*TPK%RO251(:)+TPK%K302(:)*TPK%RO254(:)+T& -&PK%K319(:)*TPK%RO256(:) +!HO2/H2O2=+K026*<OH> + PJAC(:,15,2)=+TPK%K026(:)*PCONC(:,14) ! -!HO2/RO21=+K110*<NO>+K111*<RO2T>+K112*<HO2>-K112*<HO2> - PJAC(:,10,86)=+TPK%K110(:)*PCONC(:,1)+TPK%K111(:)*PCONC(:,85)+TPK%K112(:)*PCON& -&C(:,10)-TPK%K112(:)*PCONC(:,10) +!HO2/NO=-K035*<HO2>+K090*<MO2>+0.74265*K091*<ALKAP>+K092*<ALKEP>+0.84700*K093*< +!BIOP>+0.95115*K094*<AROP>+0.12334*K095*<CARBOP>+0.18401*K096*<OLN> + PJAC(:,15,3)=-TPK%K035(:)*PCONC(:,15)+TPK%K090(:)*PCONC(:,32)+0.74265*TPK%K091& +&(:)*PCONC(:,33)+TPK%K092(:)*PCONC(:,34)+0.84700*TPK%K093(:)*PCONC(:,35)+0.9511& +&5*TPK%K094(:)*PCONC(:,38)+0.12334*TPK%K095(:)*PCONC(:,39)+0.18401*TPK%K096(:)*& +&PCONC(:,40) ! -!HO2/RO25=+TPK%CF4*K122*<NO>+K123*<RO2T>+K124*<HO2>-K124*<HO2> - PJAC(:,10,87)=+TPK%CF4*TPK%K122(:)*PCONC(:,1)+TPK%K123(:)*PCONC(:,85)+TPK%K124& -&(:)*PCONC(:,10)-TPK%K124(:)*PCONC(:,10) +!HO2/NO2=-K036*<HO2> + PJAC(:,15,4)=-TPK%K036(:)*PCONC(:,15) ! -!HO2/WC_O3=0.0 +!HO2/NO3=+K034*<OH>-K038*<HO2>+K072*<HCHO>+0.63217*K074*<CARBO>+K119*<MO2>+0.81 +!290*K120*<ALKAP>+K121*<ALKEP>+K122*<BIOP>+K123*<AROP>+0.04915*K124*<CARBOP>+0. +!25928*K125*<OLN> + PJAC(:,15,5)=+TPK%K034(:)*PCONC(:,14)-TPK%K038(:)*PCONC(:,15)+TPK%K072(:)*PCON& +&C(:,22)+0.63217*TPK%K074(:)*PCONC(:,25)+TPK%K119(:)*PCONC(:,32)+0.81290*TPK%K1& +&20(:)*PCONC(:,33)+TPK%K121(:)*PCONC(:,34)+TPK%K122(:)*PCONC(:,35)+TPK%K123(:)*& +&PCONC(:,38)+0.04915*TPK%K124(:)*PCONC(:,39)+0.25928*TPK%K125(:)*PCONC(:,40) ! -!HO2/WC_H2O2=0.0 +!HO2/N2O5=0.0 ! -!HO2/WC_NO=0.0 +!HO2/HONO=0.0 ! -!HO2/WC_NO2=0.0 +!HO2/HNO3=0.0 ! -!HO2/WC_NO3=0.0 +!HO2/HNO4=+0.65*K006+K037 + PJAC(:,15,9)=+0.65*TPK%K006(:)+TPK%K037(:) ! -!HO2/WC_N2O5=0.0 +!HO2/NH3=0.0 ! -!HO2/WC_HONO=0.0 +!HO2/SO2=+K052*<OH> + PJAC(:,15,11)=+TPK%K052(:)*PCONC(:,14) ! -!HO2/WC_HNO3=0.0 +!HO2/SULF=0.0 ! -!HO2/WC_HNO4=0.0 +!HO2/CO=+K053*<OH> + PJAC(:,15,13)=+TPK%K053(:)*PCONC(:,14) ! -!HO2/WC_NH3=0.0 +!HO2/OH=+K023*<O3>-K025*<HO2>+K026*<H2O2>+K034*<NO3>+K051*<H2>+K052*<SO2>+K053* +!<CO>+0.12793*K058*<ALKA>+0.10318*K061*<ARO>+K062*<HCHO>+0.51208*K065*<CARBO>+K +!066*<ORA1>+0.02915*K069*<OP2>+0.28107*K070*<PAN> + PJAC(:,15,14)=+TPK%K023(:)*PCONC(:,1)-TPK%K025(:)*PCONC(:,15)+TPK%K026(:)*PCON& +&C(:,2)+TPK%K034(:)*PCONC(:,5)+TPK%K051(:)*TPK%H2(:)+TPK%K052(:)*PCONC(:,11)+TP& +&K%K053(:)*PCONC(:,13)+0.12793*TPK%K058(:)*PCONC(:,18)+0.10318*TPK%K061(:)*PCON& +&C(:,21)+TPK%K062(:)*PCONC(:,22)+0.51208*TPK%K065(:)*PCONC(:,25)+TPK%K066(:)*PC& +&ONC(:,30)+0.02915*TPK%K069(:)*PCONC(:,29)+0.28107*TPK%K070(:)*PCONC(:,27) ! -!HO2/WC_OH=0.0 +!HO2/HO2=-K024*<O3>-K025*<OH>-K027*<HO2>-K027*<HO2>-K027*<HO2>-K027*<HO2>-K028* +!<HO2>*<H2O>-K028*<HO2>*<H2O>-K028*<HO2>*<H2O>-K028*<HO2>*<H2O>-K035*<NO>-K036* +!<NO2>-K038*<NO3>-K084*<PHO>-K097*<MO2>-K098*<ALKAP>-K099*<ALKEP>-K0100*<BIOP>- +!K0101*<AROP>-K0102*<CARBOP>-K103*<OLN>-K126*<XO2> + PJAC(:,15,15)=-TPK%K024(:)*PCONC(:,1)-TPK%K025(:)*PCONC(:,14)-TPK%K027(:)*PCON& +&C(:,15)-TPK%K027(:)*PCONC(:,15)-TPK%K027(:)*PCONC(:,15)-TPK%K027(:)*PCONC(:,15& +&)-TPK%K028(:)*PCONC(:,15)*TPK%H2O(:)-TPK%K028(:)*PCONC(:,15)*TPK%H2O(:)-TPK%K0& +&28(:)*PCONC(:,15)*TPK%H2O(:)-TPK%K028(:)*PCONC(:,15)*TPK%H2O(:)-TPK%K035(:)*PC& +&ONC(:,3)-TPK%K036(:)*PCONC(:,4)-TPK%K038(:)*PCONC(:,5)-TPK%K084(:)*PCONC(:,36)& +&-TPK%K097(:)*PCONC(:,32)-TPK%K098(:)*PCONC(:,33)-TPK%K099(:)*PCONC(:,34)-TPK%K& +&0100(:)*PCONC(:,35)-TPK%K0101(:)*PCONC(:,38)-TPK%K0102(:)*PCONC(:,39)-TPK%K103& +&(:)*PCONC(:,40)-TPK%K126(:)*PCONC(:,41) ! -!HO2/WC_HO2=+KTC43 - PJAC(:,10,99)=+TPK%KTC43(:) +!HO2/CH4=0.0 ! -!HO2/WC_CO2=0.0 +!HO2/ETH=0.0 ! -!HO2/WC_SO2=0.0 +!HO2/ALKA=+0.12793*K058*<OH> + PJAC(:,15,18)=+0.12793*TPK%K058(:)*PCONC(:,14) ! -!HO2/WC_H2SO4=0.0 +!HO2/ALKE=+0.23451*K079*<O3> + PJAC(:,15,19)=+0.23451*TPK%K079(:)*PCONC(:,1) ! -!HO2/WC_RO21=0.0 +!HO2/BIO=+0.28*K054*<O3P>+0.30000*K080*<O3> + PJAC(:,15,20)=+0.28*TPK%K054(:)*TPK%O3P(:)+0.30000*TPK%K080(:)*PCONC(:,1) ! -!HO2/WC_RO25=0.0 +!HO2/ARO=+0.10318*K061*<OH> + PJAC(:,15,21)=+0.10318*TPK%K061(:)*PCONC(:,14) ! -!HO2/WC_MEOH=0.0 +!HO2/HCHO=+K011+K011+K062*<OH>+K072*<NO3> + PJAC(:,15,22)=+TPK%K011(:)+TPK%K011(:)+TPK%K062(:)*PCONC(:,14)+TPK%K072(:)*PCO& +&NC(:,5) ! -!HO2/WC_ETOH=0.0 +!HO2/ALD=+K012 + PJAC(:,15,23)=+TPK%K012(:) ! -!HO2/WC_ALCH=0.0 +!HO2/KET=0.0 ! -!HO2/WC_HCHO=0.0 +!HO2/CARBO=+0.75830*K016+0.51208*K065*<OH>+0.63217*K074*<NO3>+0.28441*K081*<O3> + PJAC(:,15,25)=+0.75830*TPK%K016(:)+0.51208*TPK%K065(:)*PCONC(:,14)+0.63217*TPK& +&%K074(:)*PCONC(:,5)+0.28441*TPK%K081(:)*PCONC(:,1) ! -!HO2/WC_ALD2=0.0 +!HO2/ONIT=+K017 + PJAC(:,15,26)=+TPK%K017(:) ! -!HO2/WC_GLY=0.0 +!HO2/PAN=+0.28107*K070*<OH>+0.08*K082*<O3> + PJAC(:,15,27)=+0.28107*TPK%K070(:)*PCONC(:,14)+0.08*TPK%K082(:)*PCONC(:,1) ! -!HO2/WC_MGLY=0.0 +!HO2/OP1=+K013 + PJAC(:,15,28)=+TPK%K013(:) ! -!HO2/WC_KETL=0.0 +!HO2/OP2=+0.96205*K014+0.02915*K069*<OH> + PJAC(:,15,29)=+0.96205*TPK%K014(:)+0.02915*TPK%K069(:)*PCONC(:,14) ! -!HO2/WC_ORA1=0.0 +!HO2/ORA1=+K066*<OH> + PJAC(:,15,30)=+TPK%K066(:)*PCONC(:,14) ! -!HO2/WC_ORA2=0.0 +!HO2/ORA2=0.0 ! -!HO2/WC_ACID=0.0 +!HO2/MO2=+K090*<NO>-K097*<HO2>+0.66*K104*<MO2>+0.66*K104*<MO2>+0.98383*K105*<AL +!KAP>+K106*<ALKEP>+1.00000*K107*<BIOP>+1.02767*K108*<AROP>+0.82998*K109*<CARBOP +!>+0.67560*K110*<OLN>+K119*<NO3>+K127*<XO2> + PJAC(:,15,32)=+TPK%K090(:)*PCONC(:,3)-TPK%K097(:)*PCONC(:,15)+0.66*TPK%K104(:)& +&*PCONC(:,32)+0.66*TPK%K104(:)*PCONC(:,32)+0.98383*TPK%K105(:)*PCONC(:,33)+TPK%& +&K106(:)*PCONC(:,34)+1.00000*TPK%K107(:)*PCONC(:,35)+1.02767*TPK%K108(:)*PCONC(& +&:,38)+0.82998*TPK%K109(:)*PCONC(:,39)+0.67560*TPK%K110(:)*PCONC(:,40)+TPK%K119& +&(:)*PCONC(:,5)+TPK%K127(:)*PCONC(:,41) +! +!HO2/ALKAP=+0.74265*K091*<NO>-K098*<HO2>+0.98383*K105*<MO2>+0.48079*K111*<CARBO +!P>+0.81290*K120*<NO3> + PJAC(:,15,33)=+0.74265*TPK%K091(:)*PCONC(:,3)-TPK%K098(:)*PCONC(:,15)+0.98383*& +&TPK%K105(:)*PCONC(:,32)+0.48079*TPK%K111(:)*PCONC(:,39)+0.81290*TPK%K120(:)*PC& +&ONC(:,5) +! +!HO2/ALKEP=+K092*<NO>-K099*<HO2>+K106*<MO2>+0.50078*K112*<CARBOP>+K121*<NO3> + PJAC(:,15,34)=+TPK%K092(:)*PCONC(:,3)-TPK%K099(:)*PCONC(:,15)+TPK%K106(:)*PCON& +&C(:,32)+0.50078*TPK%K112(:)*PCONC(:,39)+TPK%K121(:)*PCONC(:,5) +! +!HO2/BIOP=+0.84700*K093*<NO>-K0100*<HO2>+1.00000*K107*<MO2>+0.50600*K113*<CARBO +!P>+K122*<NO3> + PJAC(:,15,35)=+0.84700*TPK%K093(:)*PCONC(:,3)-TPK%K0100(:)*PCONC(:,15)+1.00000& +&*TPK%K107(:)*PCONC(:,32)+0.50600*TPK%K113(:)*PCONC(:,39)+TPK%K122(:)*PCONC(:,5& +&) ! -!HO2/WC_RP16=0.0 +!HO2/PHO=-K084*<HO2> + PJAC(:,15,36)=-TPK%K084(:)*PCONC(:,15) ! -!HO2/WC_UR21=0.0 +!HO2/ADD=+0.02*K086*<O2> + PJAC(:,15,37)=+0.02*TPK%K086(:)*TPK%O2(:) ! -!HO2/WC_UR28=0.0 +!HO2/AROP=+0.95115*K094*<NO>-K0101*<HO2>+1.02767*K108*<MO2>+K114*<CARBOP>+K123* +!<NO3> + PJAC(:,15,38)=+0.95115*TPK%K094(:)*PCONC(:,3)-TPK%K0101(:)*PCONC(:,15)+1.02767& +&*TPK%K108(:)*PCONC(:,32)+TPK%K114(:)*PCONC(:,39)+TPK%K123(:)*PCONC(:,5) ! -!HO2/WC_ACID2=0.0 +!HO2/CARBOP=+0.12334*K095*<NO>-K0102*<HO2>+0.82998*K109*<MO2>+0.48079*K111*<ALK +!AP>+0.50078*K112*<ALKEP>+0.50600*K113*<BIOP>+K114*<AROP>+0.07566*K115*<CARBOP> +!+0.07566*K115*<CARBOP>+0.17599*K116*<OLN>+0.04915*K124*<NO3> + PJAC(:,15,39)=+0.12334*TPK%K095(:)*PCONC(:,3)-TPK%K0102(:)*PCONC(:,15)+0.82998& +&*TPK%K109(:)*PCONC(:,32)+0.48079*TPK%K111(:)*PCONC(:,33)+0.50078*TPK%K112(:)*P& +&CONC(:,34)+0.50600*TPK%K113(:)*PCONC(:,35)+TPK%K114(:)*PCONC(:,38)+0.07566*TPK& +&%K115(:)*PCONC(:,39)+0.07566*TPK%K115(:)*PCONC(:,39)+0.17599*TPK%K116(:)*PCONC& +&(:,40)+0.04915*TPK%K124(:)*PCONC(:,5) ! -!HO2/WC_ASO3=0.0 +!HO2/OLN=+0.18401*K096*<NO>-K103*<HO2>+0.67560*K110*<MO2>+0.17599*K116*<CARBOP> +!+K117*<OLN>+K117*<OLN>+0.00000*K118*<OLN>+0.00000*K118*<OLN>+0.25928*K125*<NO3 +!> + PJAC(:,15,40)=+0.18401*TPK%K096(:)*PCONC(:,3)-TPK%K103(:)*PCONC(:,15)+0.67560*& +&TPK%K110(:)*PCONC(:,32)+0.17599*TPK%K116(:)*PCONC(:,39)+TPK%K117(:)*PCONC(:,40& +&)+TPK%K117(:)*PCONC(:,40)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K118(:)*& +&PCONC(:,40)+0.25928*TPK%K125(:)*PCONC(:,5) ! -!HO2/WC_ASO4=0.0 +!HO2/XO2=-K126*<HO2>+K127*<MO2> + PJAC(:,15,41)=-TPK%K126(:)*PCONC(:,15)+TPK%K127(:)*PCONC(:,32) ! -!HO2/WC_ASO5=0.0 +RETURN +END SUBROUTINE SUBJ2 ! -!HO2/WC_AHSO5=0.0 +SUBROUTINE SUBJ3 ! -!HO2/WC_AHMS=0.0 +!Indices 16 a 20 ! -!HO2/WR_O3=0.0 ! -!HO2/WR_H2O2=0.0 +!CH4/O3=+0.04300*K079*<ALKE> + PJAC(:,16,1)=+0.04300*TPK%K079(:)*PCONC(:,19) ! -!HO2/WR_NO=0.0 +!CH4/H2O2=0.0 ! -!HO2/WR_NO2=0.0 +!CH4/NO=0.0 ! -!HO2/WR_NO3=0.0 +!CH4/NO2=0.0 ! -!HO2/WR_N2O5=0.0 +!CH4/NO3=0.0 ! -!HO2/WR_HONO=0.0 +!CH4/N2O5=0.0 ! -!HO2/WR_HNO3=0.0 +!CH4/HONO=0.0 ! -!HO2/WR_HNO4=0.0 +!CH4/HNO3=0.0 ! -!HO2/WR_NH3=0.0 +!CH4/HNO4=0.0 ! -!HO2/WR_OH=0.0 +!CH4/NH3=0.0 ! -!HO2/WR_HO2=+KTR43 - PJAC(:,10,136)=+TPK%KTR43(:) +!CH4/SO2=0.0 ! -!HO2/WR_CO2=0.0 +!CH4/SULF=0.0 ! -!HO2/WR_SO2=0.0 +!CH4/CO=0.0 ! -!HO2/WR_H2SO4=0.0 +!CH4/OH=-K056*<CH4> + PJAC(:,16,14)=-TPK%K056(:)*PCONC(:,16) ! -!HO2/WR_RO21=0.0 +!CH4/HO2=0.0 ! -!HO2/WR_RO25=0.0 +!CH4/CH4=-K056*<OH> + PJAC(:,16,16)=-TPK%K056(:)*PCONC(:,14) ! -!HO2/WR_MEOH=0.0 +!CH4/ETH=0.0 ! -!HO2/WR_ETOH=0.0 +!CH4/ALKA=0.0 ! -!HO2/WR_ALCH=0.0 +!CH4/ALKE=+0.04300*K079*<O3> + PJAC(:,16,19)=+0.04300*TPK%K079(:)*PCONC(:,1) ! -!HO2/WR_HCHO=0.0 +!CH4/BIO=0.0 ! -!HO2/WR_ALD2=0.0 +!CH4/ARO=0.0 ! -!HO2/WR_GLY=0.0 +!CH4/HCHO=0.0 ! -!HO2/WR_MGLY=0.0 +!CH4/ALD=0.0 ! -!HO2/WR_KETL=0.0 +!CH4/KET=0.0 ! -!HO2/WR_ORA1=0.0 +!CH4/CARBO=0.0 ! -!HO2/WR_ORA2=0.0 +!CH4/ONIT=0.0 ! -!HO2/WR_ACID=0.0 +!CH4/PAN=0.0 ! -!HO2/WR_RP16=0.0 +!CH4/OP1=0.0 ! -!HO2/WR_UR21=0.0 +!CH4/OP2=0.0 ! -!HO2/WR_UR28=0.0 +!CH4/ORA1=0.0 ! -!HO2/WR_ACID2=0.0 +!CH4/ORA2=0.0 ! -!HO2/WR_ASO3=0.0 +!CH4/MO2=0.0 ! -!HO2/WR_ASO4=0.0 +!CH4/ALKAP=0.0 ! -!HO2/WR_ASO5=0.0 +!CH4/ALKEP=0.0 ! -!HO2/WR_AHSO5=0.0 +!CH4/BIOP=0.0 ! -!HO2/WR_AHMS=0.0 +!CH4/PHO=0.0 ! -RETURN -END SUBROUTINE SUBJ1 +!CH4/ADD=0.0 ! -SUBROUTINE SUBJ2 +!CH4/AROP=0.0 ! -!Indices 11 a 15 +!CH4/CARBOP=0.0 ! +!CH4/OLN=0.0 ! -!CO/NO=+K119*<RO24>+K300*<RO254>+K340*<RO258> - PJAC(:,11,1)=+TPK%K119(:)*TPK%RO24(:)+TPK%K300(:)*TPK%RO254(:)+TPK%K340(:)*TPK& -&%RO258(:) +!CH4/XO2=0.0 ! -!CO/NO2=0.0 +!ETH/O3=+0.03196*K079*<ALKE> + PJAC(:,17,1)=+0.03196*TPK%K079(:)*PCONC(:,19) ! -!CO/O3=+0.315*K051*<ETHE>+0.56*K056*<OLEL>+0.461*K066*<ISOP>+0.56*K076*<OLEH>+0 -!.445*K086*<BIOL>+0.445*K090*<BIOH>+0.56*K281*<MVK>+0.41*K282*<MCR> - PJAC(:,11,3)=+0.315*TPK%K051(:)*PCONC(:,16)+0.56*TPK%K056(:)*PCONC(:,17)+0.461& -&*TPK%K066(:)*PCONC(:,35)+0.56*TPK%K076(:)*PCONC(:,18)+0.445*TPK%K086(:)*PCONC(& -&:,36)+0.445*TPK%K090(:)*PCONC(:,37)+0.56*TPK%K281(:)*PCONC(:,39)+0.41*TPK%K282& -&(:)*PCONC(:,40) +!ETH/H2O2=0.0 ! -!CO/HONO=0.0 +!ETH/NO=0.0 ! -!CO/HNO3=0.0 +!ETH/NO2=0.0 ! -!CO/HNO4=0.0 +!ETH/NO3=0.0 ! -!CO/N2O5=0.0 +!ETH/N2O5=0.0 ! -!CO/NO3=+K047*<HCHO> - PJAC(:,11,8)=+TPK%K047(:)*PCONC(:,28) +!ETH/HONO=0.0 ! -!CO/NH3=0.0 +!ETH/HNO3=0.0 ! -!CO/HO2=+K121*<RO24> - PJAC(:,11,10)=+TPK%K121(:)*TPK%RO24(:) +!ETH/HNO4=0.0 ! -!CO/CO=-K024*<OH> - PJAC(:,11,11)=-TPK%K024(:)*PCONC(:,15) +!ETH/NH3=0.0 ! -!CO/H2O2=0.0 +!ETH/SO2=0.0 ! -!CO/SO2=0.0 +!ETH/SULF=0.0 ! -!CO/H2SO4=0.0 +!ETH/CO=0.0 ! -!CO/OH=-K024*<CO>+K046*<HCHO> - PJAC(:,11,15)=-TPK%K024(:)*PCONC(:,11)+TPK%K046(:)*PCONC(:,28) +!ETH/OH=-K057*<ETH> + PJAC(:,17,14)=-TPK%K057(:)*PCONC(:,17) ! -!CO/ETHE=+0.315*K051*<O3>+0.6*K052*<O> - PJAC(:,11,16)=+0.315*TPK%K051(:)*PCONC(:,3)+0.6*TPK%K052(:)*TPK%O(:) +!ETH/HO2=0.0 ! -!CO/OLEL=+0.56*K056*<O3> - PJAC(:,11,17)=+0.56*TPK%K056(:)*PCONC(:,3) +!ETH/CH4=0.0 ! -!CO/OLEH=+0.56*K076*<O3> - PJAC(:,11,18)=+0.56*TPK%K076(:)*PCONC(:,3) +!ETH/ETH=-K057*<OH> + PJAC(:,17,17)=-TPK%K057(:)*PCONC(:,14) ! -!CO/ALKL=0.0 +!ETH/ALKA=0.0 ! -!CO/ALKM=0.0 +!ETH/ALKE=+0.03196*K079*<O3> + PJAC(:,17,19)=+0.03196*TPK%K079(:)*PCONC(:,1) ! -!CO/ALKH=0.0 +!ETH/BIO=0.0 ! -!CO/AROH=0.0 +!ETH/ARO=0.0 ! -!CO/AROL=0.0 +!ETH/HCHO=0.0 ! -!CO/AROO=0.0 +!ETH/ALD=0.0 ! -!CO/ARAL=0.0 +!ETH/KET=0.0 ! -!CO/ARAC=0.0 +!ETH/CARBO=0.0 ! -!CO/PAH=0.0 +!ETH/ONIT=0.0 ! -!CO/HCHO=+K044+K045+K046*<OH>+K047*<NO3> - PJAC(:,11,28)=+TPK%K044(:)+TPK%K045(:)+TPK%K046(:)*PCONC(:,15)+TPK%K047(:)*PCO& -&NC(:,8) +!ETH/PAN=0.0 ! -!CO/ALD2=+K059 - PJAC(:,11,29)=+TPK%K059(:) +!ETH/OP1=0.0 ! -!CO/KETL=0.0 +!ETH/OP2=0.0 ! -!CO/KETH=0.0 +!ETH/ORA1=0.0 ! -!CO/MEOH=0.0 +!ETH/ORA2=0.0 ! -!CO/ETOH=0.0 +!ETH/MO2=0.0 ! -!CO/ALCH=0.0 +!ETH/ALKAP=0.0 ! -!CO/ISOP=+0.461*K066*<O3> - PJAC(:,11,35)=+0.461*TPK%K066(:)*PCONC(:,3) +!ETH/ALKEP=0.0 ! -!CO/BIOL=+0.445*K086*<O3> - PJAC(:,11,36)=+0.445*TPK%K086(:)*PCONC(:,3) +!ETH/BIOP=0.0 ! -!CO/BIOH=+0.445*K090*<O3> - PJAC(:,11,37)=+0.445*TPK%K090(:)*PCONC(:,3) +!ETH/PHO=0.0 ! -!CO/MTBE=0.0 +!ETH/ADD=0.0 ! -!CO/MVK=+0.56*K281*<O3> - PJAC(:,11,39)=+0.56*TPK%K281(:)*PCONC(:,3) +!ETH/AROP=0.0 ! -!CO/MCR=+0.41*K282*<O3>+0.15*K284*<O> - PJAC(:,11,40)=+0.41*TPK%K282(:)*PCONC(:,3)+0.15*TPK%K284(:)*TPK%O(:) +!ETH/CARBOP=0.0 ! -!CO/MGLY=+K276 - PJAC(:,11,41)=+TPK%K276(:) +!ETH/OLN=0.0 ! -!CO/GLY=0.0 +!ETH/XO2=0.0 ! -!CO/ORA1=0.0 +!ALKA/O3=0.0 ! -!CO/ORA2=0.0 +!ALKA/H2O2=0.0 ! -!CO/ACID=0.0 +!ALKA/NO=0.0 ! -!CO/UR28=0.0 +!ALKA/NO2=0.0 ! -!CO/UR21=0.0 +!ALKA/NO3=0.0 ! -!CO/URG2=0.0 +!ALKA/N2O5=0.0 ! -!CO/UR26=0.0 +!ALKA/HONO=0.0 ! -!CO/RPG2=0.0 +!ALKA/HNO3=0.0 ! -!CO/RP18=0.0 +!ALKA/HNO4=0.0 ! -!CO/RPG3=0.0 +!ALKA/NH3=0.0 ! -!CO/URG4=0.0 +!ALKA/SO2=0.0 ! -!CO/UR8=0.0 +!ALKA/SULF=0.0 ! -!CO/UR17=0.0 +!ALKA/CO=0.0 ! -!CO/UR7=0.0 +!ALKA/OH=-K058*<ALKA> + PJAC(:,18,14)=-TPK%K058(:)*PCONC(:,18) ! -!CO/RPR3=+K314 - PJAC(:,11,57)=+TPK%K314(:) +!ALKA/HO2=0.0 ! -!CO/URG6=0.0 +!ALKA/CH4=0.0 ! -!CO/UR22=0.0 +!ALKA/ETH=0.0 ! -!CO/URG7=0.0 +!ALKA/ALKA=-K058*<OH> + PJAC(:,18,18)=-TPK%K058(:)*PCONC(:,14) ! -!CO/RPR4=0.0 +!ALKA/ALKE=0.0 ! -!CO/RPR7=0.0 +!ALKA/BIO=0.0 ! -!CO/RPG7=0.0 +!ALKA/ARO=0.0 ! -!CO/URG8=0.0 +!ALKA/HCHO=0.0 ! -!CO/UR19=0.0 +!ALKA/ALD=0.0 ! -!CO/URG9=0.0 +!ALKA/KET=0.0 ! -!CO/AP7=0.0 +!ALKA/CARBO=0.0 ! -!CO/URG10=0.0 +!ALKA/ONIT=0.0 ! -!CO/RPR1=+K308 - PJAC(:,11,69)=+TPK%K308(:) +!ALKA/PAN=0.0 ! -!CO/RPR5=0.0 +!ALKA/OP1=0.0 ! -!CO/RPR8=+K329 - PJAC(:,11,71)=+TPK%K329(:) +!ALKA/OP2=0.0 ! -!CO/RP10=0.0 +!ALKA/ORA1=0.0 ! -!CO/RP11=0.0 +!ALKA/ORA2=0.0 ! -!CO/RP16=+2.*K339 - PJAC(:,11,74)=+2.*TPK%K339(:) +!ALKA/MO2=0.0 ! -!CO/RPRL=0.0 +!ALKA/ALKAP=0.0 ! -!CO/APAN=0.0 +!ALKA/ALKEP=0.0 ! -!CO/PAN1=0.0 +!ALKA/BIOP=0.0 ! -!CO/PAN2=0.0 +!ALKA/PHO=0.0 ! -!CO/PAN3=0.0 +!ALKA/ADD=0.0 ! -!CO/PAN4=0.0 +!ALKA/AROP=0.0 ! -!CO/PAN6=0.0 +!ALKA/CARBOP=0.0 ! -!CO/PAN7=0.0 +!ALKA/OLN=0.0 ! -!CO/PAN8=0.0 +!ALKA/XO2=0.0 ! -!CO/PN10=0.0 +!ALKE/O3=+0.00000*K079*<ALKE>-K079*<ALKE>+0.37388*K080*<BIO> + PJAC(:,19,1)=+0.00000*TPK%K079(:)*PCONC(:,19)-TPK%K079(:)*PCONC(:,19)+0.37388*& +&TPK%K080(:)*PCONC(:,20) ! -!CO/RO2T=+K120*<RO24>+K302*<RO254>+K342*<RO258> - PJAC(:,11,85)=+TPK%K120(:)*TPK%RO24(:)+TPK%K302(:)*TPK%RO254(:)+TPK%K342(:)*TP& -&K%RO258(:) +!ALKE/H2O2=0.0 ! -!CO/RO21=0.0 +!ALKE/NO=+0.37815*K093*<BIOP> + PJAC(:,19,3)=+0.37815*TPK%K093(:)*PCONC(:,35) ! -!CO/RO25=0.0 +!ALKE/NO2=0.0 ! -!CO/WC_O3=0.0 +!ALKE/NO3=-K076*<ALKE>+0.42729*K122*<BIOP> + PJAC(:,19,5)=-TPK%K076(:)*PCONC(:,19)+0.42729*TPK%K122(:)*PCONC(:,35) ! -!CO/WC_H2O2=0.0 +!ALKE/N2O5=0.0 ! -!CO/WC_NO=0.0 +!ALKE/HONO=0.0 ! -!CO/WC_NO2=0.0 +!ALKE/HNO3=0.0 ! -!CO/WC_NO3=0.0 +!ALKE/HNO4=0.0 ! -!CO/WC_N2O5=0.0 +!ALKE/NH3=0.0 ! -!CO/WC_HONO=0.0 +!ALKE/SO2=0.0 ! -!CO/WC_HNO3=0.0 +!ALKE/SULF=0.0 ! -!CO/WC_HNO4=0.0 +!ALKE/CO=0.0 ! -!CO/WC_NH3=0.0 +!ALKE/OH=-K059*<ALKE> + PJAC(:,19,14)=-TPK%K059(:)*PCONC(:,19) ! -!CO/WC_OH=0.0 +!ALKE/HO2=0.0 ! -!CO/WC_HO2=0.0 +!ALKE/CH4=0.0 ! -!CO/WC_CO2=0.0 +!ALKE/ETH=0.0 ! -!CO/WC_SO2=0.0 +!ALKE/ALKA=0.0 ! -!CO/WC_H2SO4=0.0 +!ALKE/ALKE=-K059*<OH>-K076*<NO3>+0.00000*K079*<O3>-K079*<O3> + PJAC(:,19,19)=-TPK%K059(:)*PCONC(:,14)-TPK%K076(:)*PCONC(:,5)+0.00000*TPK%K079& +&(:)*PCONC(:,1)-TPK%K079(:)*PCONC(:,1) ! -!CO/WC_RO21=0.0 +!ALKE/BIO=+0.91868*K054*<O3P>+0.37388*K080*<O3> + PJAC(:,19,20)=+0.91868*TPK%K054(:)*TPK%O3P(:)+0.37388*TPK%K080(:)*PCONC(:,1) ! -!CO/WC_RO25=0.0 +!ALKE/ARO=0.0 ! -!CO/WC_MEOH=0.0 +!ALKE/HCHO=0.0 ! -!CO/WC_ETOH=0.0 +!ALKE/ALD=0.0 ! -!CO/WC_ALCH=0.0 +!ALKE/KET=0.0 ! -!CO/WC_HCHO=0.0 +!ALKE/CARBO=0.0 ! -!CO/WC_ALD2=0.0 +!ALKE/ONIT=0.0 ! -!CO/WC_GLY=0.0 +!ALKE/PAN=0.0 ! -!CO/WC_MGLY=0.0 +!ALKE/OP1=0.0 ! -!CO/WC_KETL=0.0 +!ALKE/OP2=0.0 ! -!CO/WC_ORA1=0.0 +!ALKE/ORA1=0.0 ! -!CO/WC_ORA2=0.0 +!ALKE/ORA2=0.0 ! -!CO/WC_ACID=0.0 +!ALKE/MO2=+0.48074*K107*<BIOP> + PJAC(:,19,32)=+0.48074*TPK%K107(:)*PCONC(:,35) ! -!CO/WC_RP16=0.0 +!ALKE/ALKAP=0.0 ! -!CO/WC_UR21=0.0 +!ALKE/ALKEP=0.0 ! -!CO/WC_UR28=0.0 +!ALKE/BIOP=+0.37815*K093*<NO>+0.48074*K107*<MO2>+0.24463*K113*<CARBOP>+0.42729* +!K122*<NO3> + PJAC(:,19,35)=+0.37815*TPK%K093(:)*PCONC(:,3)+0.48074*TPK%K107(:)*PCONC(:,32)+& +&0.24463*TPK%K113(:)*PCONC(:,39)+0.42729*TPK%K122(:)*PCONC(:,5) ! -!CO/WC_ACID2=0.0 +!ALKE/PHO=0.0 ! -!CO/WC_ASO3=0.0 +!ALKE/ADD=0.0 ! -!CO/WC_ASO4=0.0 +!ALKE/AROP=0.0 ! -!CO/WC_ASO5=0.0 +!ALKE/CARBOP=+0.24463*K113*<BIOP> + PJAC(:,19,39)=+0.24463*TPK%K113(:)*PCONC(:,35) ! -!CO/WC_AHSO5=0.0 +!ALKE/OLN=0.0 ! -!CO/WC_AHMS=0.0 +!ALKE/XO2=0.0 ! -!CO/WR_O3=0.0 +!BIO/O3=-K080*<BIO> + PJAC(:,20,1)=-TPK%K080(:)*PCONC(:,20) ! -!CO/WR_H2O2=0.0 +!BIO/H2O2=0.0 ! -!CO/WR_NO=0.0 +!BIO/NO=0.0 ! -!CO/WR_NO2=0.0 +!BIO/NO2=0.0 ! -!CO/WR_NO3=0.0 +!BIO/NO3=-K077*<BIO> + PJAC(:,20,5)=-TPK%K077(:)*PCONC(:,20) ! -!CO/WR_N2O5=0.0 +!BIO/N2O5=0.0 ! -!CO/WR_HONO=0.0 +!BIO/HONO=0.0 ! -!CO/WR_HNO3=0.0 +!BIO/HNO3=0.0 ! -!CO/WR_HNO4=0.0 +!BIO/HNO4=0.0 ! -!CO/WR_NH3=0.0 +!BIO/NH3=0.0 ! -!CO/WR_OH=0.0 +!BIO/SO2=0.0 ! -!CO/WR_HO2=0.0 +!BIO/SULF=0.0 ! -!CO/WR_CO2=0.0 +!BIO/CO=0.0 ! -!CO/WR_SO2=0.0 +!BIO/OH=-K060*<BIO> + PJAC(:,20,14)=-TPK%K060(:)*PCONC(:,20) ! -!CO/WR_H2SO4=0.0 +!BIO/HO2=0.0 ! -!CO/WR_RO21=0.0 +!BIO/CH4=0.0 ! -!CO/WR_RO25=0.0 +!BIO/ETH=0.0 ! -!CO/WR_MEOH=0.0 +!BIO/ALKA=0.0 ! -!CO/WR_ETOH=0.0 +!BIO/ALKE=0.0 ! -!CO/WR_ALCH=0.0 +!BIO/BIO=-K054*<O3P>-K060*<OH>-K077*<NO3>-K080*<O3> + PJAC(:,20,20)=-TPK%K054(:)*TPK%O3P(:)-TPK%K060(:)*PCONC(:,14)-TPK%K077(:)*PCON& +&C(:,5)-TPK%K080(:)*PCONC(:,1) ! -!CO/WR_HCHO=0.0 +!BIO/ARO=0.0 ! -!CO/WR_ALD2=0.0 +!BIO/HCHO=0.0 ! -!CO/WR_GLY=0.0 +!BIO/ALD=0.0 ! -!CO/WR_MGLY=0.0 +!BIO/KET=0.0 ! -!CO/WR_KETL=0.0 +!BIO/CARBO=0.0 ! -!CO/WR_ORA1=0.0 +!BIO/ONIT=0.0 ! -!CO/WR_ORA2=0.0 +!BIO/PAN=0.0 ! -!CO/WR_ACID=0.0 +!BIO/OP1=0.0 ! -!CO/WR_RP16=0.0 +!BIO/OP2=0.0 ! -!CO/WR_UR21=0.0 +!BIO/ORA1=0.0 ! -!CO/WR_UR28=0.0 +!BIO/ORA2=0.0 ! -!CO/WR_ACID2=0.0 +!BIO/MO2=0.0 ! -!CO/WR_ASO3=0.0 +!BIO/ALKAP=0.0 ! -!CO/WR_ASO4=0.0 +!BIO/ALKEP=0.0 ! -!CO/WR_ASO5=0.0 +!BIO/BIOP=0.0 ! -!CO/WR_AHSO5=0.0 +!BIO/PHO=0.0 ! -!CO/WR_AHMS=0.0 +!BIO/ADD=0.0 ! -!H2O2/NO=0.0 +!BIO/AROP=0.0 ! -!H2O2/NO2=0.0 +!BIO/CARBOP=0.0 ! -!H2O2/O3=+0.055*K086*<BIOL>+0.055*K090*<BIOH> - PJAC(:,12,3)=+0.055*TPK%K086(:)*PCONC(:,36)+0.055*TPK%K090(:)*PCONC(:,37) +!BIO/OLN=0.0 ! -!H2O2/HONO=0.0 +!BIO/XO2=0.0 ! -!H2O2/HNO3=0.0 +RETURN +END SUBROUTINE SUBJ3 ! -!H2O2/HNO4=0.0 +SUBROUTINE SUBJ4 ! -!H2O2/N2O5=0.0 +!Indices 21 a 25 ! -!H2O2/NO3=0.0 ! -!H2O2/NH3=0.0 +!ARO/O3=+K087*<ADD> + PJAC(:,21,1)=+TPK%K087(:)*PCONC(:,37) ! -!H2O2/HO2=+K031*<HO2>+K031*<HO2>+K032*<H2O>*<HO2>+K032*<H2O>*<HO2> - PJAC(:,12,10)=+TPK%K031(:)*PCONC(:,10)+TPK%K031(:)*PCONC(:,10)+TPK%K032(:)*TPK& -&%H2O(:)*PCONC(:,10)+TPK%K032(:)*TPK%H2O(:)*PCONC(:,10) +!ARO/H2O2=0.0 ! -!H2O2/CO=0.0 +!ARO/NO=0.0 ! -!H2O2/H2O2=-K036-K037*<OH>-KTC2-KTR2 - PJAC(:,12,12)=-TPK%K036(:)-TPK%K037(:)*PCONC(:,15)-TPK%KTC2(:)-TPK%KTR2(:) +!ARO/NO2=+0.10670*K083*<PHO>+K085*<ADD> + PJAC(:,21,4)=+0.10670*TPK%K083(:)*PCONC(:,36)+TPK%K085(:)*PCONC(:,37) ! -!H2O2/SO2=0.0 +!ARO/NO3=-K075*<ARO> + PJAC(:,21,5)=-TPK%K075(:)*PCONC(:,21) ! -!H2O2/H2SO4=0.0 +!ARO/N2O5=0.0 ! -!H2O2/OH=-K037*<H2O2> - PJAC(:,12,15)=-TPK%K037(:)*PCONC(:,12) +!ARO/HONO=0.0 ! -!H2O2/ETHE=0.0 +!ARO/HNO3=0.0 ! -!H2O2/OLEL=0.0 +!ARO/HNO4=0.0 ! -!H2O2/OLEH=0.0 +!ARO/NH3=0.0 ! -!H2O2/ALKL=0.0 +!ARO/SO2=0.0 ! -!H2O2/ALKM=0.0 +!ARO/SULF=0.0 ! -!H2O2/ALKH=0.0 +!ARO/CO=0.0 ! -!H2O2/AROH=0.0 +!ARO/OH=-K061*<ARO> + PJAC(:,21,14)=-TPK%K061(:)*PCONC(:,21) ! -!H2O2/AROL=0.0 +!ARO/HO2=+1.06698*K084*<PHO> + PJAC(:,21,15)=+1.06698*TPK%K084(:)*PCONC(:,36) ! -!H2O2/AROO=0.0 +!ARO/CH4=0.0 ! -!H2O2/ARAL=0.0 +!ARO/ETH=0.0 ! -!H2O2/ARAC=0.0 +!ARO/ALKA=0.0 ! -!H2O2/PAH=0.0 +!ARO/ALKE=0.0 ! -!H2O2/HCHO=0.0 +!ARO/BIO=0.0 ! -!H2O2/ALD2=0.0 +!ARO/ARO=-K061*<OH>-K075*<NO3> + PJAC(:,21,21)=-TPK%K061(:)*PCONC(:,14)-TPK%K075(:)*PCONC(:,5) ! -!H2O2/KETL=0.0 +!ARO/HCHO=0.0 ! -!H2O2/KETH=0.0 +!ARO/ALD=0.0 ! -!H2O2/MEOH=0.0 +!ARO/KET=0.0 ! -!H2O2/ETOH=0.0 +!ARO/CARBO=0.0 ! -!H2O2/ALCH=0.0 +!ARO/ONIT=0.0 ! -!H2O2/ISOP=0.0 +!ARO/PAN=0.0 ! -!H2O2/BIOL=+0.055*K086*<O3> - PJAC(:,12,36)=+0.055*TPK%K086(:)*PCONC(:,3) +!ARO/OP1=0.0 ! -!H2O2/BIOH=+0.055*K090*<O3> - PJAC(:,12,37)=+0.055*TPK%K090(:)*PCONC(:,3) +!ARO/OP2=0.0 ! -!H2O2/MTBE=0.0 +!ARO/ORA1=0.0 ! -!H2O2/MVK=0.0 +!ARO/ORA2=0.0 ! -!H2O2/MCR=0.0 +!ARO/MO2=0.0 ! -!H2O2/MGLY=0.0 +!ARO/ALKAP=0.0 ! -!H2O2/GLY=0.0 +!ARO/ALKEP=0.0 ! -!H2O2/ORA1=0.0 +!ARO/BIOP=0.0 ! -!H2O2/ORA2=0.0 +!ARO/PHO=+0.10670*K083*<NO2>+1.06698*K084*<HO2> + PJAC(:,21,36)=+0.10670*TPK%K083(:)*PCONC(:,4)+1.06698*TPK%K084(:)*PCONC(:,15) ! -!H2O2/ACID=0.0 +!ARO/ADD=+K085*<NO2>+0.02*K086*<O2>+K087*<O3> + PJAC(:,21,37)=+TPK%K085(:)*PCONC(:,4)+0.02*TPK%K086(:)*TPK%O2(:)+TPK%K087(:)*P& +&CONC(:,1) ! -!H2O2/UR28=0.0 +!ARO/AROP=0.0 ! -!H2O2/UR21=0.0 +!ARO/CARBOP=0.0 ! -!H2O2/URG2=0.0 +!ARO/OLN=0.0 ! -!H2O2/UR26=0.0 +!ARO/XO2=0.0 ! -!H2O2/RPG2=0.0 +!HCHO/O3=+0.48290*K079*<ALKE>+0.90000*K080*<BIO>+0.00000*K081*<CARBO>+0.70*K082 +!*<PAN> + PJAC(:,22,1)=+0.48290*TPK%K079(:)*PCONC(:,19)+0.90000*TPK%K080(:)*PCONC(:,20)+& +&0.00000*TPK%K081(:)*PCONC(:,25)+0.70*TPK%K082(:)*PCONC(:,27) ! -!H2O2/RP18=0.0 +!HCHO/H2O2=0.0 ! -!H2O2/RPG3=0.0 +!HCHO/NO=+K090*<MO2>+0.03002*K091*<ALKAP>+1.39870*K092*<ALKEP>+0.60600*K093*<BI +!OP>+0.05848*K095*<CARBOP>+0.23419*K096*<OLN> + PJAC(:,22,3)=+TPK%K090(:)*PCONC(:,32)+0.03002*TPK%K091(:)*PCONC(:,33)+1.39870*& +&TPK%K092(:)*PCONC(:,34)+0.60600*TPK%K093(:)*PCONC(:,35)+0.05848*TPK%K095(:)*PC& +&ONC(:,39)+0.23419*TPK%K096(:)*PCONC(:,40) ! -!H2O2/URG4=0.0 +!HCHO/NO2=0.0 ! -!H2O2/UR8=0.0 +!HCHO/NO3=-K072*<HCHO>+0.40*K078*<PAN>+K119*<MO2>+0.03142*K120*<ALKAP>+1.40909* +!K121*<ALKEP>+0.68600*K122*<BIOP>+0.03175*K124*<CARBOP>+0.20740*K125*<OLN> + PJAC(:,22,5)=-TPK%K072(:)*PCONC(:,22)+0.40*TPK%K078(:)*PCONC(:,27)+TPK%K119(:)& +&*PCONC(:,32)+0.03142*TPK%K120(:)*PCONC(:,33)+1.40909*TPK%K121(:)*PCONC(:,34)+0& +&.68600*TPK%K122(:)*PCONC(:,35)+0.03175*TPK%K124(:)*PCONC(:,39)+0.20740*TPK%K12& +&5(:)*PCONC(:,40) ! -!H2O2/UR17=0.0 +!HCHO/N2O5=0.0 ! -!H2O2/UR7=0.0 +!HCHO/HONO=0.0 ! -!H2O2/RPR3=0.0 +!HCHO/HNO3=0.0 ! -!H2O2/URG6=0.0 +!HCHO/HNO4=0.0 ! -!H2O2/UR22=0.0 +!HCHO/NH3=0.0 ! -!H2O2/URG7=0.0 +!HCHO/SO2=0.0 ! -!H2O2/RPR4=0.0 +!HCHO/SULF=0.0 ! -!H2O2/RPR7=0.0 +!HCHO/CO=0.0 ! -!H2O2/RPG7=0.0 +!HCHO/OH=+0.00140*K058*<ALKA>-K062*<HCHO>+0.00000*K065*<CARBO>+0.35*K068*<OP1>+ +!0.02915*K069*<OP2>+0.57839*K070*<PAN> + PJAC(:,22,14)=+0.00140*TPK%K058(:)*PCONC(:,18)-TPK%K062(:)*PCONC(:,22)+0.00000& +&*TPK%K065(:)*PCONC(:,25)+0.35*TPK%K068(:)*PCONC(:,28)+0.02915*TPK%K069(:)*PCON& +&C(:,29)+0.57839*TPK%K070(:)*PCONC(:,27) ! -!H2O2/URG8=0.0 +!HCHO/HO2=0.0 ! -!H2O2/UR19=0.0 +!HCHO/CH4=0.0 ! -!H2O2/URG9=0.0 +!HCHO/ETH=0.0 ! -!H2O2/AP7=0.0 +!HCHO/ALKA=+0.00140*K058*<OH> + PJAC(:,22,18)=+0.00140*TPK%K058(:)*PCONC(:,14) ! -!H2O2/URG10=0.0 +!HCHO/ALKE=+0.48290*K079*<O3> + PJAC(:,22,19)=+0.48290*TPK%K079(:)*PCONC(:,1) ! -!H2O2/RPR1=0.0 +!HCHO/BIO=+0.05*K054*<O3P>+0.90000*K080*<O3> + PJAC(:,22,20)=+0.05*TPK%K054(:)*TPK%O3P(:)+0.90000*TPK%K080(:)*PCONC(:,1) ! -!H2O2/RPR5=0.0 +!HCHO/ARO=0.0 ! -!H2O2/RPR8=0.0 +!HCHO/HCHO=-K010-K011-K062*<OH>-K072*<NO3> + PJAC(:,22,22)=-TPK%K010(:)-TPK%K011(:)-TPK%K062(:)*PCONC(:,14)-TPK%K072(:)*PCO& +&NC(:,5) ! -!H2O2/RP10=0.0 +!HCHO/ALD=0.0 ! -!H2O2/RP11=0.0 +!HCHO/KET=0.0 ! -!H2O2/RP16=0.0 +!HCHO/CARBO=+0.06517*K016+0.00000*K065*<OH>+0.00000*K081*<O3> + PJAC(:,22,25)=+0.06517*TPK%K016(:)+0.00000*TPK%K065(:)*PCONC(:,14)+0.00000*TPK& +&%K081(:)*PCONC(:,1) ! -!H2O2/RPRL=0.0 +!HCHO/ONIT=0.0 ! -!H2O2/APAN=0.0 +!HCHO/PAN=+0.57839*K070*<OH>+0.40*K078*<NO3>+0.70*K082*<O3> + PJAC(:,22,27)=+0.57839*TPK%K070(:)*PCONC(:,14)+0.40*TPK%K078(:)*PCONC(:,5)+0.7& +&0*TPK%K082(:)*PCONC(:,1) ! -!H2O2/PAN1=0.0 +!HCHO/OP1=+K013+0.35*K068*<OH> + PJAC(:,22,28)=+TPK%K013(:)+0.35*TPK%K068(:)*PCONC(:,14) ! -!H2O2/PAN2=0.0 +!HCHO/OP2=+0.02915*K069*<OH> + PJAC(:,22,29)=+0.02915*TPK%K069(:)*PCONC(:,14) ! -!H2O2/PAN3=0.0 +!HCHO/ORA1=0.0 ! -!H2O2/PAN4=0.0 +!HCHO/ORA2=0.0 ! -!H2O2/PAN6=0.0 +!HCHO/MO2=+K090*<NO>+1.33*K104*<MO2>+1.33*K104*<MO2>+0.80556*K105*<ALKAP>+1.428 +!94*K106*<ALKEP>+1.09000*K107*<BIOP>+K108*<AROP>+0.95723*K109*<CARBOP>+0.88625* +!K110*<OLN>+K119*<NO3>+K127*<XO2> + PJAC(:,22,32)=+TPK%K090(:)*PCONC(:,3)+1.33*TPK%K104(:)*PCONC(:,32)+1.33*TPK%K1& +&04(:)*PCONC(:,32)+0.80556*TPK%K105(:)*PCONC(:,33)+1.42894*TPK%K106(:)*PCONC(:,& +&34)+1.09000*TPK%K107(:)*PCONC(:,35)+TPK%K108(:)*PCONC(:,38)+0.95723*TPK%K109(:& +&)*PCONC(:,39)+0.88625*TPK%K110(:)*PCONC(:,40)+TPK%K119(:)*PCONC(:,5)+TPK%K127(& +&:)*PCONC(:,41) ! -!H2O2/PAN7=0.0 +!HCHO/ALKAP=+0.03002*K091*<NO>+0.80556*K105*<MO2>+0.07600*K111*<CARBOP>+0.03142 +!*K120*<NO3> + PJAC(:,22,33)=+0.03002*TPK%K091(:)*PCONC(:,3)+0.80556*TPK%K105(:)*PCONC(:,32)+& +&0.07600*TPK%K111(:)*PCONC(:,39)+0.03142*TPK%K120(:)*PCONC(:,5) ! -!H2O2/PAN8=0.0 +!HCHO/ALKEP=+1.39870*K092*<NO>+1.42894*K106*<MO2>+0.68192*K112*<CARBOP>+1.40909 +!*K121*<NO3> + PJAC(:,22,34)=+1.39870*TPK%K092(:)*PCONC(:,3)+1.42894*TPK%K106(:)*PCONC(:,32)+& +&0.68192*TPK%K112(:)*PCONC(:,39)+1.40909*TPK%K121(:)*PCONC(:,5) ! -!H2O2/PN10=0.0 +!HCHO/BIOP=+0.60600*K093*<NO>+1.09000*K107*<MO2>+0.34000*K113*<CARBOP>+0.68600* +!K122*<NO3> + PJAC(:,22,35)=+0.60600*TPK%K093(:)*PCONC(:,3)+1.09000*TPK%K107(:)*PCONC(:,32)+& +&0.34000*TPK%K113(:)*PCONC(:,39)+0.68600*TPK%K122(:)*PCONC(:,5) ! -!H2O2/RO2T=0.0 +!HCHO/PHO=0.0 ! -!H2O2/RO21=0.0 +!HCHO/ADD=0.0 ! -!H2O2/RO25=0.0 +!HCHO/AROP=+K108*<MO2> + PJAC(:,22,38)=+TPK%K108(:)*PCONC(:,32) ! -!H2O2/WC_O3=0.0 +!HCHO/CARBOP=+0.05848*K095*<NO>+0.95723*K109*<MO2>+0.07600*K111*<ALKAP>+0.68192 +!*K112*<ALKEP>+0.34000*K113*<BIOP>+0.03432*K115*<CARBOP>+0.03432*K115*<CARBOP>+ +!0.13414*K116*<OLN>+0.03175*K124*<NO3> + PJAC(:,22,39)=+0.05848*TPK%K095(:)*PCONC(:,3)+0.95723*TPK%K109(:)*PCONC(:,32)+& +&0.07600*TPK%K111(:)*PCONC(:,33)+0.68192*TPK%K112(:)*PCONC(:,34)+0.34000*TPK%K1& +&13(:)*PCONC(:,35)+0.03432*TPK%K115(:)*PCONC(:,39)+0.03432*TPK%K115(:)*PCONC(:,& +&39)+0.13414*TPK%K116(:)*PCONC(:,40)+0.03175*TPK%K124(:)*PCONC(:,5) ! -!H2O2/WC_H2O2=+KTC33 - PJAC(:,12,89)=+TPK%KTC33(:) +!HCHO/OLN=+0.23419*K096*<NO>+0.88625*K110*<MO2>+0.13414*K116*<CARBOP>+0.00000*K +!118*<OLN>+0.00000*K118*<OLN>+0.20740*K125*<NO3> + PJAC(:,22,40)=+0.23419*TPK%K096(:)*PCONC(:,3)+0.88625*TPK%K110(:)*PCONC(:,32)+& +&0.13414*TPK%K116(:)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K1& +&18(:)*PCONC(:,40)+0.20740*TPK%K125(:)*PCONC(:,5) ! -!H2O2/WC_NO=0.0 +!HCHO/XO2=+K127*<MO2> + PJAC(:,22,41)=+TPK%K127(:)*PCONC(:,32) ! -!H2O2/WC_NO2=0.0 +!ALD/O3=+0.51468*K079*<ALKE>+0.00000*K080*<BIO>+0.15692*K081*<CARBO> + PJAC(:,23,1)=+0.51468*TPK%K079(:)*PCONC(:,19)+0.00000*TPK%K080(:)*PCONC(:,20)+& +&0.15692*TPK%K081(:)*PCONC(:,25) ! -!H2O2/WC_NO3=0.0 +!ALD/H2O2=0.0 ! -!H2O2/WC_N2O5=0.0 +!ALD/NO=+0.33144*K091*<ALKAP>+0.42125*K092*<ALKEP>+0.00000*K093*<BIOP>+0.07368* +!K095*<CARBOP>+1.01182*K096*<OLN> + PJAC(:,23,3)=+0.33144*TPK%K091(:)*PCONC(:,33)+0.42125*TPK%K092(:)*PCONC(:,34)+& +&0.00000*TPK%K093(:)*PCONC(:,35)+0.07368*TPK%K095(:)*PCONC(:,39)+1.01182*TPK%K0& +&96(:)*PCONC(:,40) ! -!H2O2/WC_HONO=0.0 +!ALD/NO2=0.0 ! -!H2O2/WC_HNO3=0.0 +!ALD/NO3=-K073*<ALD>+0.05265*K074*<CARBO>+0.33743*K120*<ALKAP>+0.43039*K121*<AL +!KEP>+0.00000*K122*<BIOP>+0.02936*K124*<CARBOP>+0.91850*K125*<OLN> + PJAC(:,23,5)=-TPK%K073(:)*PCONC(:,23)+0.05265*TPK%K074(:)*PCONC(:,25)+0.33743*& +&TPK%K120(:)*PCONC(:,33)+0.43039*TPK%K121(:)*PCONC(:,34)+0.00000*TPK%K122(:)*PC& +&ONC(:,35)+0.02936*TPK%K124(:)*PCONC(:,39)+0.91850*TPK%K125(:)*PCONC(:,40) ! -!H2O2/WC_HNO4=0.0 +!ALD/N2O5=0.0 ! -!H2O2/WC_NH3=0.0 +!ALD/HONO=0.0 ! -!H2O2/WC_OH=0.0 +!ALD/HNO3=0.0 ! -!H2O2/WC_HO2=0.0 +!ALD/HNO4=0.0 ! -!H2O2/WC_CO2=0.0 +!ALD/NH3=0.0 ! -!H2O2/WC_SO2=0.0 +!ALD/SO2=0.0 ! -!H2O2/WC_H2SO4=0.0 +!ALD/SULF=0.0 ! -!H2O2/WC_RO21=0.0 +!ALD/CO=0.0 ! -!H2O2/WC_RO25=0.0 +!ALD/OH=+0.08173*K058*<ALKA>-K063*<ALD>+0.06253*K065*<CARBO>+0.07335*K069*<OP2> + PJAC(:,23,14)=+0.08173*TPK%K058(:)*PCONC(:,18)-TPK%K063(:)*PCONC(:,23)+0.06253& +&*TPK%K065(:)*PCONC(:,25)+0.07335*TPK%K069(:)*PCONC(:,29) ! -!H2O2/WC_MEOH=0.0 +!ALD/HO2=0.0 ! -!H2O2/WC_ETOH=0.0 +!ALD/CH4=0.0 ! -!H2O2/WC_ALCH=0.0 +!ALD/ETH=0.0 ! -!H2O2/WC_HCHO=0.0 +!ALD/ALKA=+0.08173*K058*<OH> + PJAC(:,23,18)=+0.08173*TPK%K058(:)*PCONC(:,14) ! -!H2O2/WC_ALD2=0.0 +!ALD/ALKE=+0.51468*K079*<O3> + PJAC(:,23,19)=+0.51468*TPK%K079(:)*PCONC(:,1) ! -!H2O2/WC_GLY=0.0 +!ALD/BIO=+0.00000*K080*<O3> + PJAC(:,23,20)=+0.00000*TPK%K080(:)*PCONC(:,1) ! -!H2O2/WC_MGLY=0.0 +!ALD/ARO=0.0 ! -!H2O2/WC_KETL=0.0 +!ALD/HCHO=0.0 ! -!H2O2/WC_ORA1=0.0 +!ALD/ALD=-K012-K063*<OH>-K073*<NO3> + PJAC(:,23,23)=-TPK%K012(:)-TPK%K063(:)*PCONC(:,14)-TPK%K073(:)*PCONC(:,5) ! -!H2O2/WC_ORA2=0.0 +!ALD/KET=0.0 ! -!H2O2/WC_ACID=0.0 +!ALD/CARBO=+K055*<O3P>+0.06253*K065*<OH>+0.05265*K074*<NO3>+0.15692*K081*<O3> + PJAC(:,23,25)=+TPK%K055(:)*TPK%O3P(:)+0.06253*TPK%K065(:)*PCONC(:,14)+0.05265*& +&TPK%K074(:)*PCONC(:,5)+0.15692*TPK%K081(:)*PCONC(:,1) ! -!H2O2/WC_RP16=0.0 +!ALD/ONIT=+0.20*K017 + PJAC(:,23,26)=+0.20*TPK%K017(:) ! -!H2O2/WC_UR21=0.0 +!ALD/PAN=0.0 ! -!H2O2/WC_UR28=0.0 +!ALD/OP1=0.0 ! -!H2O2/WC_ACID2=0.0 +!ALD/OP2=+0.96205*K014+0.07335*K069*<OH> + PJAC(:,23,29)=+0.96205*TPK%K014(:)+0.07335*TPK%K069(:)*PCONC(:,14) ! -!H2O2/WC_ASO3=0.0 +!ALD/ORA1=0.0 ! -!H2O2/WC_ASO4=0.0 +!ALD/ORA2=0.0 ! -!H2O2/WC_ASO5=0.0 +!ALD/MO2=+0.56070*K105*<ALKAP>+0.46413*K106*<ALKEP>+0.00000*K107*<BIOP>+0.08295 +!*K109*<CARBOP>+0.41524*K110*<OLN> + PJAC(:,23,32)=+0.56070*TPK%K105(:)*PCONC(:,33)+0.46413*TPK%K106(:)*PCONC(:,34)& +&+0.00000*TPK%K107(:)*PCONC(:,35)+0.08295*TPK%K109(:)*PCONC(:,39)+0.41524*TPK%K& +&110(:)*PCONC(:,40) ! -!H2O2/WC_AHSO5=0.0 +!ALD/ALKAP=+0.33144*K091*<NO>+0.56070*K105*<MO2>+0.71461*K111*<CARBOP>+0.33743* +!K120*<NO3> + PJAC(:,23,33)=+0.33144*TPK%K091(:)*PCONC(:,3)+0.56070*TPK%K105(:)*PCONC(:,32)+& +&0.71461*TPK%K111(:)*PCONC(:,39)+0.33743*TPK%K120(:)*PCONC(:,5) ! -!H2O2/WC_AHMS=0.0 +!ALD/ALKEP=+0.42125*K092*<NO>+0.46413*K106*<MO2>+0.68374*K112*<CARBOP>+0.43039* +!K121*<NO3> + PJAC(:,23,34)=+0.42125*TPK%K092(:)*PCONC(:,3)+0.46413*TPK%K106(:)*PCONC(:,32)+& +&0.68374*TPK%K112(:)*PCONC(:,39)+0.43039*TPK%K121(:)*PCONC(:,5) ! -!H2O2/WR_O3=0.0 +!ALD/BIOP=+0.00000*K093*<NO>+0.00000*K107*<MO2>+0.00000*K113*<CARBOP>+0.00000*K +!122*<NO3> + PJAC(:,23,35)=+0.00000*TPK%K093(:)*PCONC(:,3)+0.00000*TPK%K107(:)*PCONC(:,32)+& +&0.00000*TPK%K113(:)*PCONC(:,39)+0.00000*TPK%K122(:)*PCONC(:,5) ! -!H2O2/WR_H2O2=+KTR33 - PJAC(:,12,126)=+TPK%KTR33(:) +!ALD/PHO=0.0 ! -!H2O2/WR_NO=0.0 +!ALD/ADD=0.0 ! -!H2O2/WR_NO2=0.0 +!ALD/AROP=0.0 ! -!H2O2/WR_NO3=0.0 +!ALD/CARBOP=+0.07368*K095*<NO>+0.08295*K109*<MO2>+0.71461*K111*<ALKAP>+0.68374* +!K112*<ALKEP>+0.00000*K113*<BIOP>+0.06969*K115*<CARBOP>+0.06969*K115*<CARBOP>+0 +!.42122*K116*<OLN>+0.02936*K124*<NO3> + PJAC(:,23,39)=+0.07368*TPK%K095(:)*PCONC(:,3)+0.08295*TPK%K109(:)*PCONC(:,32)+& +&0.71461*TPK%K111(:)*PCONC(:,33)+0.68374*TPK%K112(:)*PCONC(:,34)+0.00000*TPK%K1& +&13(:)*PCONC(:,35)+0.06969*TPK%K115(:)*PCONC(:,39)+0.06969*TPK%K115(:)*PCONC(:,& +&39)+0.42122*TPK%K116(:)*PCONC(:,40)+0.02936*TPK%K124(:)*PCONC(:,5) ! -!H2O2/WR_N2O5=0.0 +!ALD/OLN=+1.01182*K096*<NO>+0.41524*K110*<MO2>+0.42122*K116*<CARBOP>+0.00000*K1 +!18*<OLN>+0.00000*K118*<OLN>+0.91850*K125*<NO3> + PJAC(:,23,40)=+1.01182*TPK%K096(:)*PCONC(:,3)+0.41524*TPK%K110(:)*PCONC(:,32)+& +&0.42122*TPK%K116(:)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K1& +&18(:)*PCONC(:,40)+0.91850*TPK%K125(:)*PCONC(:,5) ! -!H2O2/WR_HONO=0.0 +!ALD/XO2=0.0 ! -!H2O2/WR_HNO3=0.0 +!KET/O3=+0.07377*K079*<ALKE>+0.00000*K080*<BIO> + PJAC(:,24,1)=+0.07377*TPK%K079(:)*PCONC(:,19)+0.00000*TPK%K080(:)*PCONC(:,20) ! -!H2O2/WR_HNO4=0.0 +!KET/H2O2=0.0 ! -!H2O2/WR_NH3=0.0 +!KET/NO=+0.54531*K091*<ALKAP>+0.05220*K092*<ALKEP>+0.00000*K093*<BIOP>+0.37862* +!K096*<OLN> + PJAC(:,24,3)=+0.54531*TPK%K091(:)*PCONC(:,33)+0.05220*TPK%K092(:)*PCONC(:,34)+& +&0.00000*TPK%K093(:)*PCONC(:,35)+0.37862*TPK%K096(:)*PCONC(:,40) ! -!H2O2/WR_OH=0.0 +!KET/NO2=0.0 ! -!H2O2/WR_HO2=0.0 +!KET/NO3=+0.00632*K074*<CARBO>+0.62978*K120*<ALKAP>+0.02051*K121*<ALKEP>+0.0000 +!0*K122*<BIOP>+0.34740*K125*<OLN> + PJAC(:,24,5)=+0.00632*TPK%K074(:)*PCONC(:,25)+0.62978*TPK%K120(:)*PCONC(:,33)+& +&0.02051*TPK%K121(:)*PCONC(:,34)+0.00000*TPK%K122(:)*PCONC(:,35)+0.34740*TPK%K1& +&25(:)*PCONC(:,40) ! -!H2O2/WR_CO2=0.0 +!KET/N2O5=0.0 ! -!H2O2/WR_SO2=0.0 +!KET/HONO=0.0 ! -!H2O2/WR_H2SO4=0.0 +!KET/HNO3=0.0 ! -!H2O2/WR_RO21=0.0 +!KET/HNO4=0.0 ! -!H2O2/WR_RO25=0.0 +!KET/NH3=0.0 ! -!H2O2/WR_MEOH=0.0 +!KET/SO2=0.0 ! -!H2O2/WR_ETOH=0.0 +!KET/SULF=0.0 ! -!H2O2/WR_ALCH=0.0 +!KET/CO=0.0 ! -!H2O2/WR_HCHO=0.0 +!KET/OH=+0.03498*K058*<ALKA>-K064*<KET>+0.00853*K065*<CARBO>+0.37591*K069*<OP2> + PJAC(:,24,14)=+0.03498*TPK%K058(:)*PCONC(:,18)-TPK%K064(:)*PCONC(:,24)+0.00853& +&*TPK%K065(:)*PCONC(:,25)+0.37591*TPK%K069(:)*PCONC(:,29) ! -!H2O2/WR_ALD2=0.0 +!KET/HO2=0.0 ! -!H2O2/WR_GLY=0.0 +!KET/CH4=0.0 ! -!H2O2/WR_MGLY=0.0 +!KET/ETH=0.0 ! -!H2O2/WR_KETL=0.0 +!KET/ALKA=+0.03498*K058*<OH> + PJAC(:,24,18)=+0.03498*TPK%K058(:)*PCONC(:,14) ! -!H2O2/WR_ORA1=0.0 +!KET/ALKE=+0.07377*K079*<O3> + PJAC(:,24,19)=+0.07377*TPK%K079(:)*PCONC(:,1) ! -!H2O2/WR_ORA2=0.0 +!KET/BIO=+0.00000*K080*<O3> + PJAC(:,24,20)=+0.00000*TPK%K080(:)*PCONC(:,1) ! -!H2O2/WR_ACID=0.0 +!KET/ARO=0.0 ! -!H2O2/WR_RP16=0.0 +!KET/HCHO=0.0 ! -!H2O2/WR_UR21=0.0 +!KET/ALD=0.0 ! -!H2O2/WR_UR28=0.0 +!KET/KET=-K015-K064*<OH> + PJAC(:,24,24)=-TPK%K015(:)-TPK%K064(:)*PCONC(:,14) ! -!H2O2/WR_ACID2=0.0 +!KET/CARBO=+0.00853*K065*<OH>+0.00632*K074*<NO3> + PJAC(:,24,25)=+0.00853*TPK%K065(:)*PCONC(:,14)+0.00632*TPK%K074(:)*PCONC(:,5) ! -!H2O2/WR_ASO3=0.0 +!KET/ONIT=+0.80*K017 + PJAC(:,24,26)=+0.80*TPK%K017(:) ! -!H2O2/WR_ASO4=0.0 +!KET/PAN=0.0 ! -!H2O2/WR_ASO5=0.0 +!KET/OP1=0.0 ! -!H2O2/WR_AHSO5=0.0 +!KET/OP2=+0.37591*K069*<OH> + PJAC(:,24,29)=+0.37591*TPK%K069(:)*PCONC(:,14) ! -!H2O2/WR_AHMS=0.0 +!KET/ORA1=0.0 ! -!SO2/NO=0.0 +!KET/ORA2=0.0 ! -!SO2/NO2=0.0 +!KET/MO2=+0.09673*K105*<ALKAP>+0.03814*K106*<ALKEP>+0.00000*K107*<BIOP>+0.09667 +!*K110*<OLN> + PJAC(:,24,32)=+0.09673*TPK%K105(:)*PCONC(:,33)+0.03814*TPK%K106(:)*PCONC(:,34)& +&+0.00000*TPK%K107(:)*PCONC(:,35)+0.09667*TPK%K110(:)*PCONC(:,40) ! -!SO2/O3=0.0 +!KET/ALKAP=+0.54531*K091*<NO>+0.09673*K105*<MO2>+0.18819*K111*<CARBOP>+0.62978* +!K120*<NO3> + PJAC(:,24,33)=+0.54531*TPK%K091(:)*PCONC(:,3)+0.09673*TPK%K105(:)*PCONC(:,32)+& +&0.18819*TPK%K111(:)*PCONC(:,39)+0.62978*TPK%K120(:)*PCONC(:,5) ! -!SO2/HONO=0.0 +!KET/ALKEP=+0.05220*K092*<NO>+0.03814*K106*<MO2>+0.06579*K112*<CARBOP>+0.02051* +!K121*<NO3> + PJAC(:,24,34)=+0.05220*TPK%K092(:)*PCONC(:,3)+0.03814*TPK%K106(:)*PCONC(:,32)+& +&0.06579*TPK%K112(:)*PCONC(:,39)+0.02051*TPK%K121(:)*PCONC(:,5) ! -!SO2/HNO3=0.0 +!KET/BIOP=+0.00000*K093*<NO>+0.00000*K107*<MO2>+0.00000*K113*<CARBOP>+0.00000*K +!122*<NO3> + PJAC(:,24,35)=+0.00000*TPK%K093(:)*PCONC(:,3)+0.00000*TPK%K107(:)*PCONC(:,32)+& +&0.00000*TPK%K113(:)*PCONC(:,39)+0.00000*TPK%K122(:)*PCONC(:,5) ! -!SO2/HNO4=0.0 +!KET/PHO=0.0 ! -!SO2/N2O5=0.0 +!KET/ADD=0.0 ! -!SO2/NO3=0.0 +!KET/AROP=0.0 ! -!SO2/NH3=0.0 +!KET/CARBOP=+0.18819*K111*<ALKAP>+0.06579*K112*<ALKEP>+0.00000*K113*<BIOP>+0.02 +!190*K115*<CARBOP>+0.02190*K115*<CARBOP>+0.10822*K116*<OLN> + PJAC(:,24,39)=+0.18819*TPK%K111(:)*PCONC(:,33)+0.06579*TPK%K112(:)*PCONC(:,34)& +&+0.00000*TPK%K113(:)*PCONC(:,35)+0.02190*TPK%K115(:)*PCONC(:,39)+0.02190*TPK%K& +&115(:)*PCONC(:,39)+0.10822*TPK%K116(:)*PCONC(:,40) ! -!SO2/HO2=0.0 +!KET/OLN=+0.37862*K096*<NO>+0.09667*K110*<MO2>+0.10822*K116*<CARBOP>+0.00000*K1 +!18*<OLN>+0.00000*K118*<OLN>+0.34740*K125*<NO3> + PJAC(:,24,40)=+0.37862*TPK%K096(:)*PCONC(:,3)+0.09667*TPK%K110(:)*PCONC(:,32)+& +&0.10822*TPK%K116(:)*PCONC(:,39)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TPK%K1& +&18(:)*PCONC(:,40)+0.34740*TPK%K125(:)*PCONC(:,5) ! -!SO2/CO=0.0 +!KET/XO2=0.0 ! -!SO2/H2O2=0.0 +!CARBO/O3=+0.00000*K079*<ALKE>+0.39754*K080*<BIO>+1.07583*K081*<CARBO>-K081*<CA +!RBO> + PJAC(:,25,1)=+0.00000*TPK%K079(:)*PCONC(:,19)+0.39754*TPK%K080(:)*PCONC(:,20)+& +&1.07583*TPK%K081(:)*PCONC(:,25)-TPK%K081(:)*PCONC(:,25) ! -!SO2/SO2=-K035*<OH>-KTC14-KTR14 - PJAC(:,13,13)=-TPK%K035(:)*PCONC(:,15)-TPK%KTC14(:)-TPK%KTR14(:) +!CARBO/H2O2=0.0 ! -!SO2/H2SO4=0.0 +!CARBO/NO=+0.03407*K091*<ALKAP>+0.45463*K093*<BIOP>+2.06993*K094*<AROP>+0.08670 +!*K095*<CARBOP> + PJAC(:,25,3)=+0.03407*TPK%K091(:)*PCONC(:,33)+0.45463*TPK%K093(:)*PCONC(:,35)+& +&2.06993*TPK%K094(:)*PCONC(:,38)+0.08670*TPK%K095(:)*PCONC(:,39) ! -!SO2/OH=-K035*<SO2> - PJAC(:,13,15)=-TPK%K035(:)*PCONC(:,13) +!CARBO/NO2=0.0 ! -!SO2/ETHE=0.0 +!CARBO/NO3=+0.10530*K074*<CARBO>-K074*<CARBO>+0.00000*K076*<ALKE>+0.91741*K077* +!<BIO>+0.03531*K120*<ALKAP>+0.61160*K122*<BIOP>+2.81904*K123*<AROP>+0.03455*K12 +!4*<CARBOP> + PJAC(:,25,5)=+0.10530*TPK%K074(:)*PCONC(:,25)-TPK%K074(:)*PCONC(:,25)+0.00000*& +&TPK%K076(:)*PCONC(:,19)+0.91741*TPK%K077(:)*PCONC(:,20)+0.03531*TPK%K120(:)*PC& +&ONC(:,33)+0.61160*TPK%K122(:)*PCONC(:,35)+2.81904*TPK%K123(:)*PCONC(:,38)+0.03& +&455*TPK%K124(:)*PCONC(:,39) ! -!SO2/OLEL=0.0 +!CARBO/N2O5=0.0 ! -!SO2/OLEH=0.0 +!CARBO/HONO=0.0 ! -!SO2/ALKL=0.0 +!CARBO/HNO3=0.0 ! -!SO2/ALKM=0.0 +!CARBO/HNO4=0.0 ! -!SO2/ALKH=0.0 +!CARBO/NH3=0.0 ! -!SO2/AROH=0.0 +!CARBO/SO2=0.0 ! -!SO2/AROL=0.0 +!CARBO/SULF=0.0 ! -!SO2/AROO=0.0 +!CARBO/CO=0.0 ! -!SO2/ARAL=0.0 +!CARBO/OH=+0.00835*K058*<ALKA>+0.16919*K065*<CARBO>-K065*<CARBO>+0.21863*K070*< +!PAN> + PJAC(:,25,14)=+0.00835*TPK%K058(:)*PCONC(:,18)+0.16919*TPK%K065(:)*PCONC(:,25)& +&-TPK%K065(:)*PCONC(:,25)+0.21863*TPK%K070(:)*PCONC(:,27) ! -!SO2/ARAC=0.0 +!CARBO/HO2=0.0 ! -!SO2/PAH=0.0 +!CARBO/CH4=0.0 ! -!SO2/HCHO=0.0 +!CARBO/ETH=0.0 ! -!SO2/ALD2=0.0 +!CARBO/ALKA=+0.00835*K058*<OH> + PJAC(:,25,18)=+0.00835*TPK%K058(:)*PCONC(:,14) ! -!SO2/KETL=0.0 +!CARBO/ALKE=+0.00000*K076*<NO3>+0.00000*K079*<O3> + PJAC(:,25,19)=+0.00000*TPK%K076(:)*PCONC(:,5)+0.00000*TPK%K079(:)*PCONC(:,1) ! -!SO2/KETH=0.0 +!CARBO/BIO=+0.13255*K054*<O3P>+0.91741*K077*<NO3>+0.39754*K080*<O3> + PJAC(:,25,20)=+0.13255*TPK%K054(:)*TPK%O3P(:)+0.91741*TPK%K077(:)*PCONC(:,5)+0& +&.39754*TPK%K080(:)*PCONC(:,1) ! -!SO2/MEOH=0.0 +!CARBO/ARO=0.0 ! -!SO2/ETOH=0.0 +!CARBO/HCHO=0.0 ! -!SO2/ALCH=0.0 +!CARBO/ALD=0.0 ! -!SO2/ISOP=0.0 +!CARBO/KET=0.0 ! -!SO2/BIOL=0.0 +!CARBO/CARBO=-K016-K055*<O3P>+0.16919*K065*<OH>-K065*<OH>+0.10530*K074*<NO3>-K0 +!74*<NO3>+1.07583*K081*<O3>-K081*<O3> + PJAC(:,25,25)=-TPK%K016(:)-TPK%K055(:)*TPK%O3P(:)+0.16919*TPK%K065(:)*PCONC(:,& +&14)-TPK%K065(:)*PCONC(:,14)+0.10530*TPK%K074(:)*PCONC(:,5)-TPK%K074(:)*PCONC(:& +&,5)+1.07583*TPK%K081(:)*PCONC(:,1)-TPK%K081(:)*PCONC(:,1) ! -!SO2/BIOH=0.0 +!CARBO/ONIT=0.0 ! -!SO2/MTBE=0.0 +!CARBO/PAN=+0.21863*K070*<OH> + PJAC(:,25,27)=+0.21863*TPK%K070(:)*PCONC(:,14) ! -!SO2/MVK=0.0 +!CARBO/OP1=0.0 ! -!SO2/MCR=0.0 +!CARBO/OP2=0.0 ! -!SO2/MGLY=0.0 +!CARBO/ORA1=0.0 ! -!SO2/GLY=0.0 +!CARBO/ORA2=0.0 ! -!SO2/ORA1=0.0 +!CARBO/MO2=+0.07976*K105*<ALKAP>+0.56064*K107*<BIOP>+1.99461*K108*<AROP>+0.1538 +!7*K109*<CARBOP> + PJAC(:,25,32)=+0.07976*TPK%K105(:)*PCONC(:,33)+0.56064*TPK%K107(:)*PCONC(:,35)& +&+1.99461*TPK%K108(:)*PCONC(:,38)+0.15387*TPK%K109(:)*PCONC(:,39) ! -!SO2/ORA2=0.0 +!CARBO/ALKAP=+0.03407*K091*<NO>+0.07976*K105*<MO2>+0.06954*K111*<CARBOP>+0.0353 +!1*K120*<NO3> + PJAC(:,25,33)=+0.03407*TPK%K091(:)*PCONC(:,3)+0.07976*TPK%K105(:)*PCONC(:,32)+& +&0.06954*TPK%K111(:)*PCONC(:,39)+0.03531*TPK%K120(:)*PCONC(:,5) ! -!SO2/ACID=0.0 +!CARBO/ALKEP=0.0 ! -!SO2/UR28=0.0 +!CARBO/BIOP=+0.45463*K093*<NO>+0.56064*K107*<MO2>+0.78591*K113*<CARBOP>+0.61160 +!*K122*<NO3> + PJAC(:,25,35)=+0.45463*TPK%K093(:)*PCONC(:,3)+0.56064*TPK%K107(:)*PCONC(:,32)+& +&0.78591*TPK%K113(:)*PCONC(:,39)+0.61160*TPK%K122(:)*PCONC(:,5) ! -!SO2/UR21=0.0 +!CARBO/PHO=0.0 ! -!SO2/URG2=0.0 +!CARBO/ADD=0.0 ! -!SO2/UR26=0.0 +!CARBO/AROP=+2.06993*K094*<NO>+1.99461*K108*<MO2>+1.99455*K114*<CARBOP>+2.81904 +!*K123*<NO3> + PJAC(:,25,38)=+2.06993*TPK%K094(:)*PCONC(:,3)+1.99461*TPK%K108(:)*PCONC(:,32)+& +&1.99455*TPK%K114(:)*PCONC(:,39)+2.81904*TPK%K123(:)*PCONC(:,5) ! -!SO2/RPG2=0.0 +!CARBO/CARBOP=+0.08670*K095*<NO>+0.15387*K109*<MO2>+0.06954*K111*<ALKAP>+0.7859 +!1*K113*<BIOP>+1.99455*K114*<AROP>+0.10777*K115*<CARBOP>+0.10777*K115*<CARBOP>+ +!0.03455*K124*<NO3> + PJAC(:,25,39)=+0.08670*TPK%K095(:)*PCONC(:,3)+0.15387*TPK%K109(:)*PCONC(:,32)+& +&0.06954*TPK%K111(:)*PCONC(:,33)+0.78591*TPK%K113(:)*PCONC(:,35)+1.99455*TPK%K1& +&14(:)*PCONC(:,38)+0.10777*TPK%K115(:)*PCONC(:,39)+0.10777*TPK%K115(:)*PCONC(:,& +&39)+0.03455*TPK%K124(:)*PCONC(:,5) ! -!SO2/RP18=0.0 +!CARBO/OLN=0.0 ! -!SO2/RPG3=0.0 +!CARBO/XO2=0.0 ! -!SO2/URG4=0.0 +RETURN +END SUBROUTINE SUBJ4 ! -!SO2/UR8=0.0 +SUBROUTINE SUBJ5 ! -!SO2/UR17=0.0 +!Indices 26 a 30 ! -!SO2/UR7=0.0 ! -!SO2/RPR3=0.0 +!ONIT/O3=0.0 ! -!SO2/URG6=0.0 +!ONIT/H2O2=0.0 ! -!SO2/UR22=0.0 +!ONIT/NO=+0.08459*K091*<ALKAP>+0.15300*K093*<BIOP>+0.04885*K094*<AROP>+0.18401* +!K096*<OLN> + PJAC(:,26,3)=+0.08459*TPK%K091(:)*PCONC(:,33)+0.15300*TPK%K093(:)*PCONC(:,35)+& +&0.04885*TPK%K094(:)*PCONC(:,38)+0.18401*TPK%K096(:)*PCONC(:,40) ! -!SO2/URG7=0.0 +!ONIT/NO2=+K083*<PHO> + PJAC(:,26,4)=+TPK%K083(:)*PCONC(:,36) ! -!SO2/RPR4=0.0 +!ONIT/NO3=+0.60*K078*<PAN>+0.25928*K125*<OLN> + PJAC(:,26,5)=+0.60*TPK%K078(:)*PCONC(:,27)+0.25928*TPK%K125(:)*PCONC(:,40) ! -!SO2/RPR7=0.0 +!ONIT/N2O5=0.0 ! -!SO2/RPG7=0.0 +!ONIT/HONO=0.0 ! -!SO2/URG8=0.0 +!ONIT/HNO3=0.0 ! -!SO2/UR19=0.0 +!ONIT/HNO4=0.0 ! -!SO2/URG9=0.0 +!ONIT/NH3=0.0 ! -!SO2/AP7=0.0 +!ONIT/SO2=0.0 ! -!SO2/URG10=0.0 +!ONIT/SULF=0.0 ! -!SO2/RPR1=0.0 +!ONIT/CO=0.0 ! -!SO2/RPR5=0.0 +!ONIT/OH=-K071*<ONIT> + PJAC(:,26,14)=-TPK%K071(:)*PCONC(:,26) ! -!SO2/RPR8=0.0 +!ONIT/HO2=+K103*<OLN> + PJAC(:,26,15)=+TPK%K103(:)*PCONC(:,40) ! -!SO2/RP10=0.0 +!ONIT/CH4=0.0 ! -!SO2/RP11=0.0 +!ONIT/ETH=0.0 ! -!SO2/RP16=0.0 +!ONIT/ALKA=0.0 ! -!SO2/RPRL=0.0 +!ONIT/ALKE=0.0 ! -!SO2/APAN=0.0 +!ONIT/BIO=0.0 ! -!SO2/PAN1=0.0 +!ONIT/ARO=0.0 ! -!SO2/PAN2=0.0 +!ONIT/HCHO=0.0 ! -!SO2/PAN3=0.0 +!ONIT/ALD=0.0 ! -!SO2/PAN4=0.0 +!ONIT/KET=0.0 ! -!SO2/PAN6=0.0 +!ONIT/CARBO=0.0 ! -!SO2/PAN7=0.0 +!ONIT/ONIT=-K017-K071*<OH> + PJAC(:,26,26)=-TPK%K017(:)-TPK%K071(:)*PCONC(:,14) ! -!SO2/PAN8=0.0 +!ONIT/PAN=+0.60*K078*<NO3> + PJAC(:,26,27)=+0.60*TPK%K078(:)*PCONC(:,5) ! -!SO2/PN10=0.0 +!ONIT/OP1=0.0 ! -!SO2/RO2T=0.0 +!ONIT/OP2=0.0 ! -!SO2/RO21=0.0 +!ONIT/ORA1=0.0 ! -!SO2/RO25=0.0 +!ONIT/ORA2=0.0 ! -!SO2/WC_O3=0.0 +!ONIT/MO2=+0.67560*K110*<OLN> + PJAC(:,26,32)=+0.67560*TPK%K110(:)*PCONC(:,40) ! -!SO2/WC_H2O2=0.0 +!ONIT/ALKAP=+0.08459*K091*<NO> + PJAC(:,26,33)=+0.08459*TPK%K091(:)*PCONC(:,3) ! -!SO2/WC_NO=0.0 +!ONIT/ALKEP=0.0 ! -!SO2/WC_NO2=0.0 +!ONIT/BIOP=+0.15300*K093*<NO> + PJAC(:,26,35)=+0.15300*TPK%K093(:)*PCONC(:,3) ! -!SO2/WC_NO3=0.0 +!ONIT/PHO=+K083*<NO2> + PJAC(:,26,36)=+TPK%K083(:)*PCONC(:,4) ! -!SO2/WC_N2O5=0.0 +!ONIT/ADD=0.0 ! -!SO2/WC_HONO=0.0 +!ONIT/AROP=+0.04885*K094*<NO> + PJAC(:,26,38)=+0.04885*TPK%K094(:)*PCONC(:,3) ! -!SO2/WC_HNO3=0.0 +!ONIT/CARBOP=+0.66562*K116*<OLN> + PJAC(:,26,39)=+0.66562*TPK%K116(:)*PCONC(:,40) ! -!SO2/WC_HNO4=0.0 +!ONIT/OLN=+0.18401*K096*<NO>+K103*<HO2>+0.67560*K110*<MO2>+0.66562*K116*<CARBOP +!>+2.00*K117*<OLN>+2.00*K117*<OLN>+0.00000*K118*<OLN>+0.00000*K118*<OLN>+0.2592 +!8*K125*<NO3> + PJAC(:,26,40)=+0.18401*TPK%K096(:)*PCONC(:,3)+TPK%K103(:)*PCONC(:,15)+0.67560*& +&TPK%K110(:)*PCONC(:,32)+0.66562*TPK%K116(:)*PCONC(:,39)+2.00*TPK%K117(:)*PCONC& +&(:,40)+2.00*TPK%K117(:)*PCONC(:,40)+0.00000*TPK%K118(:)*PCONC(:,40)+0.00000*TP& +&K%K118(:)*PCONC(:,40)+0.25928*TPK%K125(:)*PCONC(:,5) ! -!SO2/WC_NH3=0.0 +!ONIT/XO2=0.0 ! -!SO2/WC_OH=0.0 +!PAN/O3=+0.30000*K082*<PAN>-K082*<PAN> + PJAC(:,27,1)=+0.30000*TPK%K082(:)*PCONC(:,27)-TPK%K082(:)*PCONC(:,27) ! -!SO2/WC_HO2=0.0 +!PAN/H2O2=0.0 ! -!SO2/WC_CO2=0.0 +!PAN/NO=0.0 ! -!SO2/WC_SO2=+KTC45 - PJAC(:,13,101)=+TPK%KTC45(:) +!PAN/NO2=+1.00000*K088*<CARBOP> + PJAC(:,27,4)=+1.00000*TPK%K088(:)*PCONC(:,39) ! -!SO2/WC_H2SO4=0.0 +!PAN/NO3=+0.40000*K078*<PAN>-K078*<PAN> + PJAC(:,27,5)=+0.40000*TPK%K078(:)*PCONC(:,27)-TPK%K078(:)*PCONC(:,27) ! -!SO2/WC_RO21=0.0 +!PAN/N2O5=0.0 ! -!SO2/WC_RO25=0.0 +!PAN/HONO=0.0 ! -!SO2/WC_MEOH=0.0 +!PAN/HNO3=0.0 ! -!SO2/WC_ETOH=0.0 +!PAN/HNO4=0.0 ! -!SO2/WC_ALCH=0.0 +!PAN/NH3=0.0 ! -!SO2/WC_HCHO=0.0 +!PAN/SO2=0.0 ! -!SO2/WC_ALD2=0.0 +!PAN/SULF=0.0 ! -!SO2/WC_GLY=0.0 +!PAN/CO=0.0 ! -!SO2/WC_MGLY=0.0 +!PAN/OH=+0.28107*K070*<PAN>-K070*<PAN> + PJAC(:,27,14)=+0.28107*TPK%K070(:)*PCONC(:,27)-TPK%K070(:)*PCONC(:,27) ! -!SO2/WC_KETL=0.0 +!PAN/HO2=0.0 ! -!SO2/WC_ORA1=0.0 +!PAN/CH4=0.0 ! -!SO2/WC_ORA2=0.0 +!PAN/ETH=0.0 ! -!SO2/WC_ACID=0.0 +!PAN/ALKA=0.0 ! -!SO2/WC_RP16=0.0 +!PAN/ALKE=0.0 ! -!SO2/WC_UR21=0.0 +!PAN/BIO=0.0 ! -!SO2/WC_UR28=0.0 +!PAN/ARO=0.0 ! -!SO2/WC_ACID2=0.0 +!PAN/HCHO=0.0 ! -!SO2/WC_ASO3=0.0 +!PAN/ALD=0.0 ! -!SO2/WC_ASO4=0.0 +!PAN/KET=0.0 ! -!SO2/WC_ASO5=0.0 +!PAN/CARBO=0.0 ! -!SO2/WC_AHSO5=0.0 +!PAN/ONIT=0.0 ! -!SO2/WC_AHMS=0.0 +!PAN/PAN=+0.28107*K070*<OH>-K070*<OH>+0.40000*K078*<NO3>-K078*<NO3>+0.30000*K08 +!2*<O3>-K082*<O3>-K089 + PJAC(:,27,27)=+0.28107*TPK%K070(:)*PCONC(:,14)-TPK%K070(:)*PCONC(:,14)+0.40000& +&*TPK%K078(:)*PCONC(:,5)-TPK%K078(:)*PCONC(:,5)+0.30000*TPK%K082(:)*PCONC(:,1)-& +&TPK%K082(:)*PCONC(:,1)-TPK%K089(:) ! -!SO2/WR_O3=0.0 +!PAN/OP1=0.0 ! -!SO2/WR_H2O2=0.0 +!PAN/OP2=0.0 ! -!SO2/WR_NO=0.0 +!PAN/ORA1=0.0 ! -!SO2/WR_NO2=0.0 +!PAN/ORA2=0.0 ! -!SO2/WR_NO3=0.0 +!PAN/MO2=0.0 ! -!SO2/WR_N2O5=0.0 +!PAN/ALKAP=0.0 ! -!SO2/WR_HONO=0.0 +!PAN/ALKEP=0.0 ! -!SO2/WR_HNO3=0.0 +!PAN/BIOP=0.0 ! -!SO2/WR_HNO4=0.0 +!PAN/PHO=0.0 ! -!SO2/WR_NH3=0.0 +!PAN/ADD=0.0 ! -!SO2/WR_OH=0.0 +!PAN/AROP=0.0 ! -!SO2/WR_HO2=0.0 +!PAN/CARBOP=+1.00000*K088*<NO2> + PJAC(:,27,39)=+1.00000*TPK%K088(:)*PCONC(:,4) ! -!SO2/WR_CO2=0.0 +!PAN/OLN=0.0 ! -!SO2/WR_SO2=+KTR45 - PJAC(:,13,138)=+TPK%KTR45(:) +!PAN/XO2=0.0 ! -!SO2/WR_H2SO4=0.0 +!OP1/O3=0.0 ! -!SO2/WR_RO21=0.0 +!OP1/H2O2=0.0 ! -!SO2/WR_RO25=0.0 +!OP1/NO=0.0 ! -!SO2/WR_MEOH=0.0 +!OP1/NO2=0.0 ! -!SO2/WR_ETOH=0.0 +!OP1/NO3=0.0 ! -!SO2/WR_ALCH=0.0 +!OP1/N2O5=0.0 ! -!SO2/WR_HCHO=0.0 +!OP1/HONO=0.0 ! -!SO2/WR_ALD2=0.0 +!OP1/HNO3=0.0 ! -!SO2/WR_GLY=0.0 +!OP1/HNO4=0.0 ! -!SO2/WR_MGLY=0.0 +!OP1/NH3=0.0 ! -!SO2/WR_KETL=0.0 +!OP1/SO2=0.0 ! -!SO2/WR_ORA1=0.0 +!OP1/SULF=0.0 ! -!SO2/WR_ORA2=0.0 +!OP1/CO=0.0 ! -!SO2/WR_ACID=0.0 +!OP1/OH=-K068*<OP1> + PJAC(:,28,14)=-TPK%K068(:)*PCONC(:,28) ! -!SO2/WR_RP16=0.0 +!OP1/HO2=+K097*<MO2> + PJAC(:,28,15)=+TPK%K097(:)*PCONC(:,32) ! -!SO2/WR_UR21=0.0 +!OP1/CH4=0.0 ! -!SO2/WR_UR28=0.0 +!OP1/ETH=0.0 ! -!SO2/WR_ACID2=0.0 +!OP1/ALKA=0.0 ! -!SO2/WR_ASO3=0.0 +!OP1/ALKE=0.0 ! -!SO2/WR_ASO4=0.0 +!OP1/BIO=0.0 ! -!SO2/WR_ASO5=0.0 +!OP1/ARO=0.0 ! -!SO2/WR_AHSO5=0.0 +!OP1/HCHO=0.0 ! -!SO2/WR_AHMS=0.0 +!OP1/ALD=0.0 +! +!OP1/KET=0.0 +! +!OP1/CARBO=0.0 +! +!OP1/ONIT=0.0 +! +!OP1/PAN=0.0 +! +!OP1/OP1=-K013-K068*<OH> + PJAC(:,28,28)=-TPK%K013(:)-TPK%K068(:)*PCONC(:,14) +! +!OP1/OP2=0.0 +! +!OP1/ORA1=0.0 +! +!OP1/ORA2=0.0 +! +!OP1/MO2=+K097*<HO2> + PJAC(:,28,32)=+TPK%K097(:)*PCONC(:,15) +! +!OP1/ALKAP=0.0 +! +!OP1/ALKEP=0.0 +! +!OP1/BIOP=0.0 +! +!OP1/PHO=0.0 +! +!OP1/ADD=0.0 +! +!OP1/AROP=0.0 +! +!OP1/CARBOP=0.0 +! +!OP1/OLN=0.0 +! +!OP1/XO2=0.0 ! -!H2SO4/NO=0.0 +!OP2/O3=+0.10149*K081*<CARBO> + PJAC(:,29,1)=+0.10149*TPK%K081(:)*PCONC(:,25) ! -!H2SO4/NO2=0.0 +!OP2/H2O2=0.0 ! -!H2SO4/O3=0.0 +!OP2/NO=0.0 ! -!H2SO4/HONO=0.0 +!OP2/NO2=0.0 ! -!H2SO4/HNO3=0.0 +!OP2/NO3=0.0 ! -!H2SO4/HNO4=0.0 +!OP2/N2O5=0.0 ! -!H2SO4/N2O5=0.0 +!OP2/HONO=0.0 ! -!H2SO4/NO3=0.0 +!OP2/HNO3=0.0 ! -!H2SO4/NH3=0.0 +!OP2/HNO4=0.0 ! -!H2SO4/HO2=0.0 +!OP2/NH3=0.0 ! -!H2SO4/CO=0.0 +!OP2/SO2=0.0 ! -!H2SO4/H2O2=0.0 +!OP2/SULF=0.0 ! -!H2SO4/SO2=+K035*<OH> - PJAC(:,14,13)=+TPK%K035(:)*PCONC(:,15) +!OP2/CO=0.0 ! -!H2SO4/H2SO4=-K346-KTC15-KTR15 - PJAC(:,14,14)=-TPK%K346(:)-TPK%KTC15(:)-TPK%KTR15(:) +!OP2/OH=-K069*<OP2> + PJAC(:,29,14)=-TPK%K069(:)*PCONC(:,29) ! -!H2SO4/OH=+K035*<SO2> - PJAC(:,14,15)=+TPK%K035(:)*PCONC(:,13) +!OP2/HO2=+1.00524*K098*<ALKAP>+1.00524*K099*<ALKEP>+1.00524*K0100*<BIOP>+1.0052 +!4*K0101*<AROP>+0.80904*K0102*<CARBOP>+1.00524*K126*<XO2> + PJAC(:,29,15)=+1.00524*TPK%K098(:)*PCONC(:,33)+1.00524*TPK%K099(:)*PCONC(:,34)& +&+1.00524*TPK%K0100(:)*PCONC(:,35)+1.00524*TPK%K0101(:)*PCONC(:,38)+0.80904*TPK& +&%K0102(:)*PCONC(:,39)+1.00524*TPK%K126(:)*PCONC(:,41) ! -!H2SO4/ETHE=0.0 +!OP2/CH4=0.0 ! -!H2SO4/OLEL=0.0 +!OP2/ETH=0.0 ! -!H2SO4/OLEH=0.0 +!OP2/ALKA=0.0 ! -!H2SO4/ALKL=0.0 +!OP2/ALKE=0.0 ! -!H2SO4/ALKM=0.0 +!OP2/BIO=0.0 ! -!H2SO4/ALKH=0.0 +!OP2/ARO=0.0 ! -!H2SO4/AROH=0.0 +!OP2/HCHO=0.0 ! -!H2SO4/AROL=0.0 +!OP2/ALD=0.0 ! -!H2SO4/AROO=0.0 +!OP2/KET=0.0 ! -!H2SO4/ARAL=0.0 +!OP2/CARBO=+0.10149*K081*<O3> + PJAC(:,29,25)=+0.10149*TPK%K081(:)*PCONC(:,1) ! -!H2SO4/ARAC=0.0 +!OP2/ONIT=0.0 ! -!H2SO4/PAH=0.0 +!OP2/PAN=0.0 ! -!H2SO4/HCHO=0.0 +!OP2/OP1=0.0 ! -!H2SO4/ALD2=0.0 +!OP2/OP2=-K014-K069*<OH> + PJAC(:,29,29)=-TPK%K014(:)-TPK%K069(:)*PCONC(:,14) ! -!H2SO4/KETL=0.0 +!OP2/ORA1=0.0 ! -!H2SO4/KETH=0.0 +!OP2/ORA2=0.0 ! -!H2SO4/MEOH=0.0 +!OP2/MO2=0.0 ! -!H2SO4/ETOH=0.0 +!OP2/ALKAP=+1.00524*K098*<HO2> + PJAC(:,29,33)=+1.00524*TPK%K098(:)*PCONC(:,15) ! -!H2SO4/ALCH=0.0 +!OP2/ALKEP=+1.00524*K099*<HO2> + PJAC(:,29,34)=+1.00524*TPK%K099(:)*PCONC(:,15) ! -!H2SO4/ISOP=0.0 +!OP2/BIOP=+1.00524*K0100*<HO2> + PJAC(:,29,35)=+1.00524*TPK%K0100(:)*PCONC(:,15) ! -!H2SO4/BIOL=0.0 +!OP2/PHO=0.0 ! -!H2SO4/BIOH=0.0 +!OP2/ADD=0.0 ! -!H2SO4/MTBE=0.0 +!OP2/AROP=+1.00524*K0101*<HO2> + PJAC(:,29,38)=+1.00524*TPK%K0101(:)*PCONC(:,15) ! -!H2SO4/MVK=0.0 +!OP2/CARBOP=+0.80904*K0102*<HO2> + PJAC(:,29,39)=+0.80904*TPK%K0102(:)*PCONC(:,15) ! -!H2SO4/MCR=0.0 +!OP2/OLN=0.0 ! -!H2SO4/MGLY=0.0 +!OP2/XO2=+1.00524*K126*<HO2> + PJAC(:,29,41)=+1.00524*TPK%K126(:)*PCONC(:,15) ! -!H2SO4/GLY=0.0 +!ORA1/O3=+0.15343*K079*<ALKE>+0.15000*K080*<BIO>+0.10788*K081*<CARBO>+0.11*K082 +!*<PAN> + PJAC(:,30,1)=+0.15343*TPK%K079(:)*PCONC(:,19)+0.15000*TPK%K080(:)*PCONC(:,20)+& +&0.10788*TPK%K081(:)*PCONC(:,25)+0.11*TPK%K082(:)*PCONC(:,27) ! -!H2SO4/ORA1=0.0 +!ORA1/H2O2=0.0 ! -!H2SO4/ORA2=0.0 +!ORA1/NO=0.0 ! -!H2SO4/ACID=0.0 +!ORA1/NO2=0.0 ! -!H2SO4/UR28=0.0 +!ORA1/NO3=0.0 ! -!H2SO4/UR21=0.0 +!ORA1/N2O5=0.0 ! -!H2SO4/URG2=0.0 +!ORA1/HONO=0.0 ! -!H2SO4/UR26=0.0 +!ORA1/HNO3=0.0 ! -!H2SO4/RPG2=0.0 +!ORA1/HNO4=0.0 ! -!H2SO4/RP18=0.0 +!ORA1/NH3=0.0 ! -!H2SO4/RPG3=0.0 +!ORA1/SO2=0.0 ! -!H2SO4/URG4=0.0 +!ORA1/SULF=0.0 ! -!H2SO4/UR8=0.0 +!ORA1/CO=0.0 ! -!H2SO4/UR17=0.0 +!ORA1/OH=+0.00878*K058*<ALKA>-K066*<ORA1> + PJAC(:,30,14)=+0.00878*TPK%K058(:)*PCONC(:,18)-TPK%K066(:)*PCONC(:,30) ! -!H2SO4/UR7=0.0 +!ORA1/HO2=0.0 ! -!H2SO4/RPR3=0.0 +!ORA1/CH4=0.0 ! -!H2SO4/URG6=0.0 +!ORA1/ETH=0.0 ! -!H2SO4/UR22=0.0 +!ORA1/ALKA=+0.00878*K058*<OH> + PJAC(:,30,18)=+0.00878*TPK%K058(:)*PCONC(:,14) ! -!H2SO4/URG7=0.0 +!ORA1/ALKE=+0.15343*K079*<O3> + PJAC(:,30,19)=+0.15343*TPK%K079(:)*PCONC(:,1) ! -!H2SO4/RPR4=0.0 +!ORA1/BIO=+0.15000*K080*<O3> + PJAC(:,30,20)=+0.15000*TPK%K080(:)*PCONC(:,1) ! -!H2SO4/RPR7=0.0 +!ORA1/ARO=0.0 ! -!H2SO4/RPG7=0.0 +!ORA1/HCHO=0.0 ! -!H2SO4/URG8=0.0 +!ORA1/ALD=0.0 ! -!H2SO4/UR19=0.0 +!ORA1/KET=0.0 ! -!H2SO4/URG9=0.0 +!ORA1/CARBO=+0.10788*K081*<O3> + PJAC(:,30,25)=+0.10788*TPK%K081(:)*PCONC(:,1) ! -!H2SO4/AP7=0.0 +!ORA1/ONIT=0.0 ! -!H2SO4/URG10=0.0 +!ORA1/PAN=+0.11*K082*<O3> + PJAC(:,30,27)=+0.11*TPK%K082(:)*PCONC(:,1) ! -!H2SO4/RPR1=0.0 +!ORA1/OP1=0.0 ! -!H2SO4/RPR5=0.0 +!ORA1/OP2=0.0 ! -!H2SO4/RPR8=0.0 +!ORA1/ORA1=-K066*<OH> + PJAC(:,30,30)=-TPK%K066(:)*PCONC(:,14) ! -!H2SO4/RP10=0.0 +!ORA1/ORA2=0.0 ! -!H2SO4/RP11=0.0 +!ORA1/MO2=0.0 ! -!H2SO4/RP16=0.0 +!ORA1/ALKAP=0.0 ! -!H2SO4/RPRL=0.0 +!ORA1/ALKEP=0.0 ! -!H2SO4/APAN=0.0 +!ORA1/BIOP=0.0 ! -!H2SO4/PAN1=0.0 +!ORA1/PHO=0.0 ! -!H2SO4/PAN2=0.0 +!ORA1/ADD=0.0 ! -!H2SO4/PAN3=0.0 +!ORA1/AROP=0.0 ! -!H2SO4/PAN4=0.0 +!ORA1/CARBOP=0.0 ! -!H2SO4/PAN6=0.0 +!ORA1/OLN=0.0 ! -!H2SO4/PAN7=0.0 +!ORA1/XO2=0.0 ! -!H2SO4/PAN8=0.0 +RETURN +END SUBROUTINE SUBJ5 ! -!H2SO4/PN10=0.0 +SUBROUTINE SUBJ6 ! -!H2SO4/RO2T=0.0 +!Indices 31 a 35 ! -!H2SO4/RO21=0.0 ! -!H2SO4/RO25=0.0 +!ORA2/O3=+0.08143*K079*<ALKE>+0.00000*K080*<BIO>+0.20595*K081*<CARBO> + PJAC(:,31,1)=+0.08143*TPK%K079(:)*PCONC(:,19)+0.00000*TPK%K080(:)*PCONC(:,20)+& +&0.20595*TPK%K081(:)*PCONC(:,25) ! -!H2SO4/WC_O3=0.0 +!ORA2/H2O2=0.0 ! -!H2SO4/WC_H2O2=0.0 +!ORA2/NO=0.0 ! -!H2SO4/WC_NO=0.0 +!ORA2/NO2=0.0 ! -!H2SO4/WC_NO2=0.0 +!ORA2/NO3=0.0 ! -!H2SO4/WC_NO3=0.0 +!ORA2/N2O5=0.0 ! -!H2SO4/WC_N2O5=0.0 +!ORA2/HONO=0.0 ! -!H2SO4/WC_HONO=0.0 +!ORA2/HNO3=0.0 ! -!H2SO4/WC_HNO3=0.0 +!ORA2/HNO4=0.0 ! -!H2SO4/WC_HNO4=0.0 +!ORA2/NH3=0.0 ! -!H2SO4/WC_NH3=0.0 +!ORA2/SO2=0.0 ! -!H2SO4/WC_OH=0.0 +!ORA2/SULF=0.0 ! -!H2SO4/WC_HO2=0.0 +!ORA2/CO=0.0 ! -!H2SO4/WC_CO2=0.0 +!ORA2/OH=-K067*<ORA2> + PJAC(:,31,14)=-TPK%K067(:)*PCONC(:,31) ! -!H2SO4/WC_SO2=0.0 +!ORA2/HO2=+0.17307*K0102*<CARBOP> + PJAC(:,31,15)=+0.17307*TPK%K0102(:)*PCONC(:,39) ! -!H2SO4/WC_H2SO4=+KTC46 - PJAC(:,14,102)=+TPK%KTC46(:) +!ORA2/CH4=0.0 ! -!H2SO4/WC_RO21=0.0 +!ORA2/ETH=0.0 ! -!H2SO4/WC_RO25=0.0 +!ORA2/ALKA=0.0 ! -!H2SO4/WC_MEOH=0.0 +!ORA2/ALKE=+0.08143*K079*<O3> + PJAC(:,31,19)=+0.08143*TPK%K079(:)*PCONC(:,1) ! -!H2SO4/WC_ETOH=0.0 +!ORA2/BIO=+0.00000*K080*<O3> + PJAC(:,31,20)=+0.00000*TPK%K080(:)*PCONC(:,1) ! -!H2SO4/WC_ALCH=0.0 +!ORA2/ARO=0.0 ! -!H2SO4/WC_HCHO=0.0 +!ORA2/HCHO=0.0 ! -!H2SO4/WC_ALD2=0.0 +!ORA2/ALD=0.0 ! -!H2SO4/WC_GLY=0.0 +!ORA2/KET=0.0 ! -!H2SO4/WC_MGLY=0.0 +!ORA2/CARBO=+0.20595*K081*<O3> + PJAC(:,31,25)=+0.20595*TPK%K081(:)*PCONC(:,1) ! -!H2SO4/WC_KETL=0.0 +!ORA2/ONIT=0.0 ! -!H2SO4/WC_ORA1=0.0 +!ORA2/PAN=0.0 ! -!H2SO4/WC_ORA2=0.0 +!ORA2/OP1=0.0 ! -!H2SO4/WC_ACID=0.0 +!ORA2/OP2=0.0 ! -!H2SO4/WC_RP16=0.0 +!ORA2/ORA1=0.0 ! -!H2SO4/WC_UR21=0.0 +!ORA2/ORA2=-K067*<OH> + PJAC(:,31,31)=-TPK%K067(:)*PCONC(:,14) ! -!H2SO4/WC_UR28=0.0 +!ORA2/MO2=+0.13684*K109*<CARBOP> + PJAC(:,31,32)=+0.13684*TPK%K109(:)*PCONC(:,39) ! -!H2SO4/WC_ACID2=0.0 +!ORA2/ALKAP=+0.49810*K111*<CARBOP> + PJAC(:,31,33)=+0.49810*TPK%K111(:)*PCONC(:,39) ! -!H2SO4/WC_ASO3=0.0 +!ORA2/ALKEP=+0.49922*K112*<CARBOP> + PJAC(:,31,34)=+0.49922*TPK%K112(:)*PCONC(:,39) ! -!H2SO4/WC_ASO4=0.0 +!ORA2/BIOP=+0.49400*K113*<CARBOP> + PJAC(:,31,35)=+0.49400*TPK%K113(:)*PCONC(:,39) ! -!H2SO4/WC_ASO5=0.0 +!ORA2/PHO=0.0 ! -!H2SO4/WC_AHSO5=0.0 +!ORA2/ADD=0.0 ! -!H2SO4/WC_AHMS=0.0 +!ORA2/AROP=0.0 ! -!H2SO4/WR_O3=0.0 +!ORA2/CARBOP=+0.17307*K0102*<HO2>+0.13684*K109*<MO2>+0.49810*K111*<ALKAP>+0.499 +!22*K112*<ALKEP>+0.49400*K113*<BIOP>+0.09955*K115*<CARBOP>+0.09955*K115*<CARBOP +!>+0.48963*K116*<OLN> + PJAC(:,31,39)=+0.17307*TPK%K0102(:)*PCONC(:,15)+0.13684*TPK%K109(:)*PCONC(:,32& +&)+0.49810*TPK%K111(:)*PCONC(:,33)+0.49922*TPK%K112(:)*PCONC(:,34)+0.49400*TPK%& +&K113(:)*PCONC(:,35)+0.09955*TPK%K115(:)*PCONC(:,39)+0.09955*TPK%K115(:)*PCONC(& +&:,39)+0.48963*TPK%K116(:)*PCONC(:,40) ! -!H2SO4/WR_H2O2=0.0 +!ORA2/OLN=+0.48963*K116*<CARBOP> + PJAC(:,31,40)=+0.48963*TPK%K116(:)*PCONC(:,39) ! -!H2SO4/WR_NO=0.0 +!ORA2/XO2=0.0 ! -!H2SO4/WR_NO2=0.0 +!MO2/O3=+0.13966*K079*<ALKE>+0.03000*K080*<BIO> + PJAC(:,32,1)=+0.13966*TPK%K079(:)*PCONC(:,19)+0.03000*TPK%K080(:)*PCONC(:,20) ! -!H2SO4/WR_NO3=0.0 +!MO2/H2O2=0.0 ! -!H2SO4/WR_N2O5=0.0 +!MO2/NO=-K090*<MO2>+0.09016*K091*<ALKAP>+0.78134*K095*<CARBOP> + PJAC(:,32,3)=-TPK%K090(:)*PCONC(:,32)+0.09016*TPK%K091(:)*PCONC(:,33)+0.78134*& +&TPK%K095(:)*PCONC(:,39) ! -!H2SO4/WR_HONO=0.0 +!MO2/NO2=0.0 ! -!H2SO4/WR_HNO3=0.0 +!MO2/NO3=-K119*<MO2>+0.09731*K120*<ALKAP>+0.91910*K124*<CARBOP> + PJAC(:,32,5)=-TPK%K119(:)*PCONC(:,32)+0.09731*TPK%K120(:)*PCONC(:,33)+0.91910*& +&TPK%K124(:)*PCONC(:,39) ! -!H2SO4/WR_HNO4=0.0 +!MO2/N2O5=0.0 ! -!H2SO4/WR_NH3=0.0 +!MO2/HONO=0.0 ! -!H2SO4/WR_OH=0.0 +!MO2/HNO3=0.0 ! -!H2SO4/WR_HO2=0.0 +!MO2/HNO4=0.0 ! -!H2SO4/WR_CO2=0.0 +!MO2/NH3=0.0 ! -!H2SO4/WR_SO2=0.0 +!MO2/SO2=0.0 ! -!H2SO4/WR_H2SO4=+KTR46 - PJAC(:,14,139)=+TPK%KTR46(:) +!MO2/SULF=0.0 ! -!H2SO4/WR_RO21=0.0 +!MO2/CO=0.0 ! -!H2SO4/WR_RO25=0.0 +!MO2/OH=+K056*<CH4>+0.65*K068*<OP1> + PJAC(:,32,14)=+TPK%K056(:)*PCONC(:,16)+0.65*TPK%K068(:)*PCONC(:,28) ! -!H2SO4/WR_MEOH=0.0 +!MO2/HO2=-K097*<MO2> + PJAC(:,32,15)=-TPK%K097(:)*PCONC(:,32) ! -!H2SO4/WR_ETOH=0.0 +!MO2/CH4=+K056*<OH> + PJAC(:,32,16)=+TPK%K056(:)*PCONC(:,14) ! -!H2SO4/WR_ALCH=0.0 +!MO2/ETH=0.0 ! -!H2SO4/WR_HCHO=0.0 +!MO2/ALKA=0.0 ! -!H2SO4/WR_ALD2=0.0 +!MO2/ALKE=+0.13966*K079*<O3> + PJAC(:,32,19)=+0.13966*TPK%K079(:)*PCONC(:,1) ! -!H2SO4/WR_GLY=0.0 +!MO2/BIO=+0.03000*K080*<O3> + PJAC(:,32,20)=+0.03000*TPK%K080(:)*PCONC(:,1) ! -!H2SO4/WR_MGLY=0.0 +!MO2/ARO=0.0 ! -!H2SO4/WR_KETL=0.0 +!MO2/HCHO=0.0 ! -!H2SO4/WR_ORA1=0.0 +!MO2/ALD=+K012 + PJAC(:,32,23)=+TPK%K012(:) ! -!H2SO4/WR_ORA2=0.0 +!MO2/KET=0.0 ! -!H2SO4/WR_ACID=0.0 +!MO2/CARBO=0.0 ! -!H2SO4/WR_RP16=0.0 +!MO2/ONIT=0.0 ! -!H2SO4/WR_UR21=0.0 +!MO2/PAN=0.0 ! -!H2SO4/WR_UR28=0.0 +!MO2/OP1=+0.65*K068*<OH> + PJAC(:,32,28)=+0.65*TPK%K068(:)*PCONC(:,14) ! -!H2SO4/WR_ACID2=0.0 +!MO2/OP2=+0.03795*K014 + PJAC(:,32,29)=+0.03795*TPK%K014(:) ! -!H2SO4/WR_ASO3=0.0 +!MO2/ORA1=0.0 ! -!H2SO4/WR_ASO4=0.0 +!MO2/ORA2=0.0 ! -!H2SO4/WR_ASO5=0.0 +!MO2/MO2=-K090*<NO>-K097*<HO2>-K104*<MO2>-K104*<MO2>-K104*<MO2>-K104*<MO2>+0.01 +!390*K105*<ALKAP>-K105*<ALKAP>-K106*<ALKEP>-K107*<BIOP>-K108*<AROP>+0.56031*K10 +!9*<CARBOP>-K109*<CARBOP>-K110*<OLN>-K119*<NO3>-K127*<XO2> + PJAC(:,32,32)=-TPK%K090(:)*PCONC(:,3)-TPK%K097(:)*PCONC(:,15)-TPK%K104(:)*PCON& +&C(:,32)-TPK%K104(:)*PCONC(:,32)-TPK%K104(:)*PCONC(:,32)-TPK%K104(:)*PCONC(:,32& +&)+0.01390*TPK%K105(:)*PCONC(:,33)-TPK%K105(:)*PCONC(:,33)-TPK%K106(:)*PCONC(:,& +&34)-TPK%K107(:)*PCONC(:,35)-TPK%K108(:)*PCONC(:,38)+0.56031*TPK%K109(:)*PCONC(& +&:,39)-TPK%K109(:)*PCONC(:,39)-TPK%K110(:)*PCONC(:,40)-TPK%K119(:)*PCONC(:,5)-T& +&PK%K127(:)*PCONC(:,41) ! -!H2SO4/WR_AHSO5=0.0 +!MO2/ALKAP=+0.09016*K091*<NO>+0.01390*K105*<MO2>-K105*<MO2>+0.51480*K111*<CARBO +!P>+0.09731*K120*<NO3> + PJAC(:,32,33)=+0.09016*TPK%K091(:)*PCONC(:,3)+0.01390*TPK%K105(:)*PCONC(:,32)-& +&TPK%K105(:)*PCONC(:,32)+0.51480*TPK%K111(:)*PCONC(:,39)+0.09731*TPK%K120(:)*PC& +&ONC(:,5) ! -!H2SO4/WR_AHMS=0.0 +!MO2/ALKEP=-K106*<MO2>+0.50078*K112*<CARBOP> + PJAC(:,32,34)=-TPK%K106(:)*PCONC(:,32)+0.50078*TPK%K112(:)*PCONC(:,39) ! -!OH/NO=-K019*<OH>+K026*<HO2>+K340*<RO258> - PJAC(:,15,1)=-TPK%K019(:)*PCONC(:,15)+TPK%K026(:)*PCONC(:,10)+TPK%K340(:)*TPK%& -&RO258(:) +!MO2/BIOP=-K107*<MO2>+0.50600*K113*<CARBOP> + PJAC(:,32,35)=-TPK%K107(:)*PCONC(:,32)+0.50600*TPK%K113(:)*PCONC(:,39) ! -!OH/NO2=-K022*<OH> - PJAC(:,15,2)=-TPK%K022(:)*PCONC(:,15) +!MO2/PHO=0.0 ! -!OH/O3=-K025*<OH>+K030*<HO2>+0.06*K051*<ETHE>+0.36*K056*<OLEL>+0.664*K066*<ISOP -!>+0.36*K076*<OLEH>+0.89*K086*<BIOL>+0.89*K090*<BIOH>+0.36*K281*<MVK>+0.82*K282 -!*<MCR> - PJAC(:,15,3)=-TPK%K025(:)*PCONC(:,15)+TPK%K030(:)*PCONC(:,10)+0.06*TPK%K051(:)& -&*PCONC(:,16)+0.36*TPK%K056(:)*PCONC(:,17)+0.664*TPK%K066(:)*PCONC(:,35)+0.36*T& -&PK%K076(:)*PCONC(:,18)+0.89*TPK%K086(:)*PCONC(:,36)+0.89*TPK%K090(:)*PCONC(:,3& -&7)+0.36*TPK%K281(:)*PCONC(:,39)+0.82*TPK%K282(:)*PCONC(:,40) +!MO2/ADD=0.0 ! -!OH/HONO=+0.9*K020-K039*<OH> - PJAC(:,15,4)=+0.9*TPK%K020(:)-TPK%K039(:)*PCONC(:,15) +!MO2/AROP=-K108*<MO2>+K114*<CARBOP> + PJAC(:,32,38)=-TPK%K108(:)*PCONC(:,32)+TPK%K114(:)*PCONC(:,39) ! -!OH/HNO3=-K023*<OH> - PJAC(:,15,5)=-TPK%K023(:)*PCONC(:,15) +!MO2/CARBOP=+0.78134*K095*<NO>+0.56031*K109*<MO2>-K109*<MO2>+0.51480*K111*<ALKA +!P>+0.50078*K112*<ALKEP>+0.50600*K113*<BIOP>+K114*<AROP>+1.66702*K115*<CARBOP>+ +!1.66702*K115*<CARBOP>+0.51037*K116*<OLN>+0.91910*K124*<NO3>+K128*<XO2> + PJAC(:,32,39)=+0.78134*TPK%K095(:)*PCONC(:,3)+0.56031*TPK%K109(:)*PCONC(:,32)-& +&TPK%K109(:)*PCONC(:,32)+0.51480*TPK%K111(:)*PCONC(:,33)+0.50078*TPK%K112(:)*PC& +&ONC(:,34)+0.50600*TPK%K113(:)*PCONC(:,35)+TPK%K114(:)*PCONC(:,38)+1.66702*TPK%& +&K115(:)*PCONC(:,39)+1.66702*TPK%K115(:)*PCONC(:,39)+0.51037*TPK%K116(:)*PCONC(& +&:,40)+0.91910*TPK%K124(:)*PCONC(:,5)+TPK%K128(:)*PCONC(:,41) ! -!OH/HNO4=-K029*<OH> - PJAC(:,15,6)=-TPK%K029(:)*PCONC(:,15) +!MO2/OLN=-K110*<MO2>+0.51037*K116*<CARBOP> + PJAC(:,32,40)=-TPK%K110(:)*PCONC(:,32)+0.51037*TPK%K116(:)*PCONC(:,39) ! -!OH/N2O5=0.0 +!MO2/XO2=-K127*<MO2>+K128*<CARBOP> + PJAC(:,32,41)=-TPK%K127(:)*PCONC(:,32)+TPK%K128(:)*PCONC(:,39) +! +!ALKAP/O3=+0.09815*K079*<ALKE>+0.00000*K080*<BIO> + PJAC(:,33,1)=+0.09815*TPK%K079(:)*PCONC(:,19)+0.00000*TPK%K080(:)*PCONC(:,20) +! +!ALKAP/H2O2=0.0 +! +!ALKAP/NO=+0.08187*K091*<ALKAP>-K091*<ALKAP> + PJAC(:,33,3)=+0.08187*TPK%K091(:)*PCONC(:,33)-TPK%K091(:)*PCONC(:,33) +! +!ALKAP/NO2=0.0 +! +!ALKAP/NO3=+0.08994*K120*<ALKAP>-K120*<ALKAP> + PJAC(:,33,5)=+0.08994*TPK%K120(:)*PCONC(:,33)-TPK%K120(:)*PCONC(:,33) +! +!ALKAP/N2O5=0.0 +! +!ALKAP/HONO=0.0 +! +!ALKAP/HNO3=0.0 +! +!ALKAP/HNO4=0.0 +! +!ALKAP/NH3=0.0 +! +!ALKAP/SO2=0.0 +! +!ALKAP/SULF=0.0 +! +!ALKAP/CO=0.0 +! +!ALKAP/OH=+K057*<ETH>+0.87811*K058*<ALKA>+0.40341*K069*<OP2>+1.00000*K071*<ONIT +!> + PJAC(:,33,14)=+TPK%K057(:)*PCONC(:,17)+0.87811*TPK%K058(:)*PCONC(:,18)+0.40341& +&*TPK%K069(:)*PCONC(:,29)+1.00000*TPK%K071(:)*PCONC(:,26) +! +!ALKAP/HO2=-K098*<ALKAP> + PJAC(:,33,15)=-TPK%K098(:)*PCONC(:,33) +! +!ALKAP/CH4=0.0 +! +!ALKAP/ETH=+K057*<OH> + PJAC(:,33,17)=+TPK%K057(:)*PCONC(:,14) +! +!ALKAP/ALKA=+0.87811*K058*<OH> + PJAC(:,33,18)=+0.87811*TPK%K058(:)*PCONC(:,14) +! +!ALKAP/ALKE=+0.09815*K079*<O3> + PJAC(:,33,19)=+0.09815*TPK%K079(:)*PCONC(:,1) +! +!ALKAP/BIO=+0.00000*K080*<O3> + PJAC(:,33,20)=+0.00000*TPK%K080(:)*PCONC(:,1) +! +!ALKAP/ARO=0.0 +! +!ALKAP/HCHO=0.0 +! +!ALKAP/ALD=0.0 +! +!ALKAP/KET=+1.00000*K015 + PJAC(:,33,24)=+1.00000*TPK%K015(:) +! +!ALKAP/CARBO=0.0 +! +!ALKAP/ONIT=+1.00000*K071*<OH> + PJAC(:,33,26)=+1.00000*TPK%K071(:)*PCONC(:,14) +! +!ALKAP/PAN=0.0 +! +!ALKAP/OP1=0.0 +! +!ALKAP/OP2=+0.40341*K069*<OH> + PJAC(:,33,29)=+0.40341*TPK%K069(:)*PCONC(:,14) +! +!ALKAP/ORA1=0.0 +! +!ALKAP/ORA2=0.0 ! -!OH/NO3=+0.8*K033*<HO2>-K040*<OH> - PJAC(:,15,8)=+0.8*TPK%K033(:)*PCONC(:,10)-TPK%K040(:)*PCONC(:,15) -! -!OH/NH3=-K345*<OH> - PJAC(:,15,9)=-TPK%K345(:)*PCONC(:,15) -! -!OH/HO2=+K026*<NO>+K030*<O3>+0.8*K033*<NO3>-K042*<OH>+K112*<RO21>+K115*<RO22>+K -!118*<RO23>+K121*<RO24>+K124*<RO25>+K146*<RO27>+K152*<RO29>+K155*<RO210>+K158*< -!RO211>+K161*<RO212>+K164*<RO213>+K170*<RO214>+K173*<RO215>+K176*<RO216>+K179*< -!RO217>+K182*<RO218>+K185*<RO219>+K188*<RO220>+K191*<RO221>+K194*<RO222>+K197*< -!RO223>+K200*<RO224>+K203*<RO225>+K206*<RO226>+K209*<RO227>+K212*<RO228>+K215*< -!RO229>+K218*<RO240>+K220*<RO230>+K223*<RO231>+K226*<RO232>+K229*<RO241>+K233*< -!RO233>+K236*<RO242>+K240*<RO234>+K243*<RO243>+K247*<RO235>+K250*<RO244>+K254*< -!RO236>+K257*<RO245>+K261*<RO237>+K264*<RO246>+K268*<RO238>+K271*<RO247>+K287*< -!RO249> - PJAC(:,15,10)=+TPK%K026(:)*PCONC(:,1)+TPK%K030(:)*PCONC(:,3)+0.8*TPK%K033(:)*P& -&CONC(:,8)-TPK%K042(:)*PCONC(:,15)+TPK%K112(:)*PCONC(:,86)+TPK%K115(:)*TPK%RO22& -&(:)+TPK%K118(:)*TPK%RO23(:)+TPK%K121(:)*TPK%RO24(:)+TPK%K124(:)*PCONC(:,87)+TP& -&K%K146(:)*TPK%RO27(:)+TPK%K152(:)*TPK%RO29(:)+TPK%K155(:)*TPK%RO210(:)+TPK%K15& -&8(:)*TPK%RO211(:)+TPK%K161(:)*TPK%RO212(:)+TPK%K164(:)*TPK%RO213(:)+TPK%K170(:& -&)*TPK%RO214(:)+TPK%K173(:)*TPK%RO215(:)+TPK%K176(:)*TPK%RO216(:)+TPK%K179(:)*T& -&PK%RO217(:)+TPK%K182(:)*TPK%RO218(:)+TPK%K185(:)*TPK%RO219(:)+TPK%K188(:)*TPK%& -&RO220(:)+TPK%K191(:)*TPK%RO221(:)+TPK%K194(:)*TPK%RO222(:)+TPK%K197(:)*TPK%RO2& -&23(:)+TPK%K200(:)*TPK%RO224(:)+TPK%K203(:)*TPK%RO225(:)+TPK%K206(:)*TPK%RO226(& -&:)+TPK%K209(:)*TPK%RO227(:)+TPK%K212(:)*TPK%RO228(:)+TPK%K215(:)*TPK%RO229(:)+& -&TPK%K218(:)*TPK%RO240(:)+TPK%K220(:)*TPK%RO230(:)+TPK%K223(:)*TPK%RO231(:)+TPK& -&%K226(:)*TPK%RO232(:)+TPK%K229(:)*TPK%RO241(:)+TPK%K233(:)*TPK%RO233(:)+TPK%K2& -&36(:)*TPK%RO242(:)+TPK%K240(:)*TPK%RO234(:)+TPK%K243(:)*TPK%RO243(:)+TPK%K247(& -&:)*TPK%RO235(:)+TPK%K250(:)*TPK%RO244(:)+TPK%K254(:)*TPK%RO236(:)+TPK%K257(:)*& -&TPK%RO245(:)+TPK%K261(:)*TPK%RO237(:)+TPK%K264(:)*TPK%RO246(:)+TPK%K268(:)*TPK& -&%RO238(:)+TPK%K271(:)*TPK%RO247(:)+TPK%K287(:)*TPK%RO249(:) -! -!OH/CO=-K024*<OH> - PJAC(:,15,11)=-TPK%K024(:)*PCONC(:,15) -! -!OH/H2O2=+2.*K036-K037*<OH> - PJAC(:,15,12)=+2.*TPK%K036(:)-TPK%K037(:)*PCONC(:,15) -! -!OH/SO2=-K035*<OH> - PJAC(:,15,13)=-TPK%K035(:)*PCONC(:,15) -! -!OH/H2SO4=0.0 -! -!OH/OH=-K019*<NO>-K022*<NO2>-K023*<HNO3>-K024*<CO>-K025*<O3>-K029*<HNO4>-K035*< -!SO2>-K037*<H2O2>-K039*<HONO>-K040*<NO3>-K042*<HO2>-K043*<CH4>-K046*<HCHO>-K048 -!*<MEOH>-K049*<ETHE>-K053*<ETOH>-K054*<OLEL>-K058*<ALKL>-K060*<ALD2>-K062*<KETL -!>-K064*<ISOP>-K068*<MTBE>-K069*<ALCH>-K070*<KETH>-K073*<AROO>-K074*<OLEH>-K078 -!*<ALKM>-K079*<AROL>-K080*<AROH>-K082*<ARAL>-K083*<ARAC>-K084*<BIOL>-K088*<BIOH -!>-K092*<PAH>-K093*<ALKH>-K272*<MVK>-K273*<MCR>-K274*<MGLY>-K303*<RPR5>-K304*<R -!PR1>-K305*<RP16>-K306*<RPRL>-K312*<RPR3>-K322*<RPR7>-K323*<RPG7>-K324*<RPR8>-K -!325*<RP10>-K326*<RP11>-K334*<RPG3>-K335*<RPG2>-K337*<RP18>-K345*<NH3>-K347*<OR -!A1>-K348*<ORA2>-K349*<ACID>-KTC11-KTR11 - PJAC(:,15,15)=-TPK%K019(:)*PCONC(:,1)-TPK%K022(:)*PCONC(:,2)-TPK%K023(:)*PCONC& -&(:,5)-TPK%K024(:)*PCONC(:,11)-TPK%K025(:)*PCONC(:,3)-TPK%K029(:)*PCONC(:,6)-TP& -&K%K035(:)*PCONC(:,13)-TPK%K037(:)*PCONC(:,12)-TPK%K039(:)*PCONC(:,4)-TPK%K040(& -&:)*PCONC(:,8)-TPK%K042(:)*PCONC(:,10)-TPK%K043(:)*TPK%CH4(:)-TPK%K046(:)*PCONC& -&(:,28)-TPK%K048(:)*PCONC(:,32)-TPK%K049(:)*PCONC(:,16)-TPK%K053(:)*PCONC(:,33)& -&-TPK%K054(:)*PCONC(:,17)-TPK%K058(:)*PCONC(:,19)-TPK%K060(:)*PCONC(:,29)-TPK%K& -&062(:)*PCONC(:,30)-TPK%K064(:)*PCONC(:,35)-TPK%K068(:)*PCONC(:,38)-TPK%K069(:)& -&*PCONC(:,34)-TPK%K070(:)*PCONC(:,31)-TPK%K073(:)*PCONC(:,24)-TPK%K074(:)*PCONC& -&(:,18)-TPK%K078(:)*PCONC(:,20)-TPK%K079(:)*PCONC(:,23)-TPK%K080(:)*PCONC(:,22)& -&-TPK%K082(:)*PCONC(:,25)-TPK%K083(:)*PCONC(:,26)-TPK%K084(:)*PCONC(:,36)-TPK%K& -&088(:)*PCONC(:,37)-TPK%K092(:)*PCONC(:,27)-TPK%K093(:)*PCONC(:,21)-TPK%K272(:)& -&*PCONC(:,39)-TPK%K273(:)*PCONC(:,40)-TPK%K274(:)*PCONC(:,41)-TPK%K303(:)*PCONC& -&(:,70)-TPK%K304(:)*PCONC(:,69)-TPK%K305(:)*PCONC(:,74)-TPK%K306(:)*PCONC(:,75)& -&-TPK%K312(:)*PCONC(:,57)-TPK%K322(:)*PCONC(:,62)-TPK%K323(:)*PCONC(:,63)-TPK%K& -&324(:)*PCONC(:,71)-TPK%K325(:)*PCONC(:,72)-TPK%K326(:)*PCONC(:,73)-TPK%K334(:)& -&*PCONC(:,52)-TPK%K335(:)*PCONC(:,50)-TPK%K337(:)*PCONC(:,51)-TPK%K345(:)*PCONC& -&(:,9)-TPK%K347(:)*PCONC(:,43)-TPK%K348(:)*PCONC(:,44)-TPK%K349(:)*PCONC(:,45)-& -&TPK%KTC11(:)-TPK%KTR11(:) +!ALKAP/MO2=+0.00385*K105*<ALKAP>-K105*<ALKAP> + PJAC(:,33,32)=+0.00385*TPK%K105(:)*PCONC(:,33)-TPK%K105(:)*PCONC(:,33) ! -!OH/ETHE=-K049*<OH>+0.06*K051*<O3> - PJAC(:,15,16)=-TPK%K049(:)*PCONC(:,15)+0.06*TPK%K051(:)*PCONC(:,3) +!ALKAP/ALKAP=+0.08187*K091*<NO>-K091*<NO>-K098*<HO2>+0.00385*K105*<MO2>-K105*<M +!O2>+0.00828*K111*<CARBOP>-K111*<CARBOP>+0.08994*K120*<NO3>-K120*<NO3> + PJAC(:,33,33)=+0.08187*TPK%K091(:)*PCONC(:,3)-TPK%K091(:)*PCONC(:,3)-TPK%K098(& +&:)*PCONC(:,15)+0.00385*TPK%K105(:)*PCONC(:,32)-TPK%K105(:)*PCONC(:,32)+0.00828& +&*TPK%K111(:)*PCONC(:,39)-TPK%K111(:)*PCONC(:,39)+0.08994*TPK%K120(:)*PCONC(:,5& +&)-TPK%K120(:)*PCONC(:,5) ! -!OH/OLEL=-K054*<OH>+0.36*K056*<O3> - PJAC(:,15,17)=-TPK%K054(:)*PCONC(:,15)+0.36*TPK%K056(:)*PCONC(:,3) +!ALKAP/ALKEP=0.0 ! -!OH/OLEH=-K074*<OH>+0.36*K076*<O3> - PJAC(:,15,18)=-TPK%K074(:)*PCONC(:,15)+0.36*TPK%K076(:)*PCONC(:,3) +!ALKAP/BIOP=0.0 ! -!OH/ALKL=-K058*<OH> - PJAC(:,15,19)=-TPK%K058(:)*PCONC(:,15) +!ALKAP/PHO=0.0 ! -!OH/ALKM=-K078*<OH> - PJAC(:,15,20)=-TPK%K078(:)*PCONC(:,15) +!ALKAP/ADD=0.0 ! -!OH/ALKH=-K093*<OH> - PJAC(:,15,21)=-TPK%K093(:)*PCONC(:,15) +!ALKAP/AROP=0.0 ! -!OH/AROH=-K080*<OH> - PJAC(:,15,22)=-TPK%K080(:)*PCONC(:,15) +!ALKAP/CARBOP=+0.00828*K111*<ALKAP>-K111*<ALKAP> + PJAC(:,33,39)=+0.00828*TPK%K111(:)*PCONC(:,33)-TPK%K111(:)*PCONC(:,33) ! -!OH/AROL=-K079*<OH> - PJAC(:,15,23)=-TPK%K079(:)*PCONC(:,15) +!ALKAP/OLN=0.0 ! -!OH/AROO=-K073*<OH> - PJAC(:,15,24)=-TPK%K073(:)*PCONC(:,15) +!ALKAP/XO2=0.0 ! -!OH/ARAL=-K082*<OH> - PJAC(:,15,25)=-TPK%K082(:)*PCONC(:,15) +!ALKEP/O3=0.0 ! -!OH/ARAC=-K083*<OH> - PJAC(:,15,26)=-TPK%K083(:)*PCONC(:,15) +!ALKEP/H2O2=0.0 ! -!OH/PAH=-K092*<OH> - PJAC(:,15,27)=-TPK%K092(:)*PCONC(:,15) +!ALKEP/NO=-K092*<ALKEP> + PJAC(:,34,3)=-TPK%K092(:)*PCONC(:,34) ! -!OH/HCHO=-K046*<OH> - PJAC(:,15,28)=-TPK%K046(:)*PCONC(:,15) +!ALKEP/NO2=0.0 ! -!OH/ALD2=-K060*<OH> - PJAC(:,15,29)=-TPK%K060(:)*PCONC(:,15) +!ALKEP/NO3=-K121*<ALKEP> + PJAC(:,34,5)=-TPK%K121(:)*PCONC(:,34) ! -!OH/KETL=-K062*<OH> - PJAC(:,15,30)=-TPK%K062(:)*PCONC(:,15) +!ALKEP/N2O5=0.0 ! -!OH/KETH=-K070*<OH> - PJAC(:,15,31)=-TPK%K070(:)*PCONC(:,15) +!ALKEP/HONO=0.0 ! -!OH/MEOH=-K048*<OH> - PJAC(:,15,32)=-TPK%K048(:)*PCONC(:,15) +!ALKEP/HNO3=0.0 ! -!OH/ETOH=-K053*<OH> - PJAC(:,15,33)=-TPK%K053(:)*PCONC(:,15) +!ALKEP/HNO4=0.0 ! -!OH/ALCH=-K069*<OH> - PJAC(:,15,34)=-TPK%K069(:)*PCONC(:,15) +!ALKEP/NH3=0.0 ! -!OH/ISOP=-K064*<OH>+0.664*K066*<O3> - PJAC(:,15,35)=-TPK%K064(:)*PCONC(:,15)+0.664*TPK%K066(:)*PCONC(:,3) +!ALKEP/SO2=0.0 ! -!OH/BIOL=-K084*<OH>+0.89*K086*<O3> - PJAC(:,15,36)=-TPK%K084(:)*PCONC(:,15)+0.89*TPK%K086(:)*PCONC(:,3) +!ALKEP/SULF=0.0 ! -!OH/BIOH=-K088*<OH>+0.89*K090*<O3> - PJAC(:,15,37)=-TPK%K088(:)*PCONC(:,15)+0.89*TPK%K090(:)*PCONC(:,3) +!ALKEP/CO=0.0 ! -!OH/MTBE=-K068*<OH> - PJAC(:,15,38)=-TPK%K068(:)*PCONC(:,15) +!ALKEP/OH=+1.02529*K059*<ALKE> + PJAC(:,34,14)=+1.02529*TPK%K059(:)*PCONC(:,19) ! -!OH/MVK=-K272*<OH>+0.36*K281*<O3> - PJAC(:,15,39)=-TPK%K272(:)*PCONC(:,15)+0.36*TPK%K281(:)*PCONC(:,3) +!ALKEP/HO2=-K099*<ALKEP> + PJAC(:,34,15)=-TPK%K099(:)*PCONC(:,34) ! -!OH/MCR=-K273*<OH>+0.82*K282*<O3> - PJAC(:,15,40)=-TPK%K273(:)*PCONC(:,15)+0.82*TPK%K282(:)*PCONC(:,3) +!ALKEP/CH4=0.0 ! -!OH/MGLY=-K274*<OH> - PJAC(:,15,41)=-TPK%K274(:)*PCONC(:,15) +!ALKEP/ETH=0.0 ! -!OH/GLY=0.0 +!ALKEP/ALKA=0.0 ! -!OH/ORA1=-K347*<OH> - PJAC(:,15,43)=-TPK%K347(:)*PCONC(:,15) +!ALKEP/ALKE=+1.02529*K059*<OH> + PJAC(:,34,19)=+1.02529*TPK%K059(:)*PCONC(:,14) ! -!OH/ORA2=-K348*<OH> - PJAC(:,15,44)=-TPK%K348(:)*PCONC(:,15) +!ALKEP/BIO=0.0 ! -!OH/ACID=-K349*<OH> - PJAC(:,15,45)=-TPK%K349(:)*PCONC(:,15) +!ALKEP/ARO=0.0 ! -!OH/UR28=0.0 +!ALKEP/HCHO=0.0 ! -!OH/UR21=0.0 +!ALKEP/ALD=0.0 ! -!OH/URG2=0.0 +!ALKEP/KET=0.0 ! -!OH/UR26=0.0 +!ALKEP/CARBO=0.0 ! -!OH/RPG2=-K335*<OH> - PJAC(:,15,50)=-TPK%K335(:)*PCONC(:,15) +!ALKEP/ONIT=0.0 ! -!OH/RP18=-K337*<OH> - PJAC(:,15,51)=-TPK%K337(:)*PCONC(:,15) +!ALKEP/PAN=0.0 ! -!OH/RPG3=-K334*<OH> - PJAC(:,15,52)=-TPK%K334(:)*PCONC(:,15) +!ALKEP/OP1=0.0 ! -!OH/URG4=0.0 +!ALKEP/OP2=0.0 ! -!OH/UR8=0.0 +!ALKEP/ORA1=0.0 ! -!OH/UR17=0.0 +!ALKEP/ORA2=0.0 ! -!OH/UR7=0.0 +!ALKEP/MO2=-K106*<ALKEP> + PJAC(:,34,32)=-TPK%K106(:)*PCONC(:,34) ! -!OH/RPR3=-K312*<OH> - PJAC(:,15,57)=-TPK%K312(:)*PCONC(:,15) +!ALKEP/ALKAP=0.0 ! -!OH/URG6=0.0 +!ALKEP/ALKEP=-K092*<NO>-K099*<HO2>-K106*<MO2>-K112*<CARBOP>-K121*<NO3> + PJAC(:,34,34)=-TPK%K092(:)*PCONC(:,3)-TPK%K099(:)*PCONC(:,15)-TPK%K106(:)*PCON& +&C(:,32)-TPK%K112(:)*PCONC(:,39)-TPK%K121(:)*PCONC(:,5) ! -!OH/UR22=0.0 +!ALKEP/BIOP=0.0 ! -!OH/URG7=0.0 +!ALKEP/PHO=0.0 ! -!OH/RPR4=0.0 +!ALKEP/ADD=0.0 ! -!OH/RPR7=-K322*<OH> - PJAC(:,15,62)=-TPK%K322(:)*PCONC(:,15) +!ALKEP/AROP=0.0 ! -!OH/RPG7=-K323*<OH> - PJAC(:,15,63)=-TPK%K323(:)*PCONC(:,15) +!ALKEP/CARBOP=-K112*<ALKEP> + PJAC(:,34,39)=-TPK%K112(:)*PCONC(:,34) ! -!OH/URG8=0.0 +!ALKEP/OLN=0.0 ! -!OH/UR19=0.0 +!ALKEP/XO2=0.0 ! -!OH/URG9=0.0 +!BIOP/O3=0.0 ! -!OH/AP7=0.0 +!BIOP/H2O2=0.0 ! -!OH/URG10=0.0 +!BIOP/NO=-K093*<BIOP> + PJAC(:,35,3)=-TPK%K093(:)*PCONC(:,35) ! -!OH/RPR1=-K304*<OH> - PJAC(:,15,69)=-TPK%K304(:)*PCONC(:,15) +!BIOP/NO2=0.0 ! -!OH/RPR5=-K303*<OH> - PJAC(:,15,70)=-TPK%K303(:)*PCONC(:,15) +!BIOP/NO3=-K122*<BIOP> + PJAC(:,35,5)=-TPK%K122(:)*PCONC(:,35) ! -!OH/RPR8=-K324*<OH> - PJAC(:,15,71)=-TPK%K324(:)*PCONC(:,15) +!BIOP/N2O5=0.0 ! -!OH/RP10=-K325*<OH> - PJAC(:,15,72)=-TPK%K325(:)*PCONC(:,15) +!BIOP/HONO=0.0 ! -!OH/RP11=-K326*<OH> - PJAC(:,15,73)=-TPK%K326(:)*PCONC(:,15) +!BIOP/HNO3=0.0 ! -!OH/RP16=-K305*<OH>+K339 - PJAC(:,15,74)=-TPK%K305(:)*PCONC(:,15)+TPK%K339(:) +!BIOP/HNO4=0.0 ! -!OH/RPRL=-K306*<OH> - PJAC(:,15,75)=-TPK%K306(:)*PCONC(:,15) +!BIOP/NH3=0.0 ! -!OH/APAN=0.0 +!BIOP/SO2=0.0 ! -!OH/PAN1=0.0 +!BIOP/SULF=0.0 ! -!OH/PAN2=0.0 +!BIOP/CO=0.0 ! -!OH/PAN3=0.0 +!BIOP/OH=+0.00000*K059*<ALKE>+1.00000*K060*<BIO> + PJAC(:,35,14)=+0.00000*TPK%K059(:)*PCONC(:,19)+1.00000*TPK%K060(:)*PCONC(:,20) ! -!OH/PAN4=0.0 +!BIOP/HO2=-K0100*<BIOP> + PJAC(:,35,15)=-TPK%K0100(:)*PCONC(:,35) ! -!OH/PAN6=0.0 +!BIOP/CH4=0.0 ! -!OH/PAN7=0.0 +!BIOP/ETH=0.0 ! -!OH/PAN8=0.0 +!BIOP/ALKA=0.0 ! -!OH/PN10=0.0 +!BIOP/ALKE=+0.00000*K059*<OH> + PJAC(:,35,19)=+0.00000*TPK%K059(:)*PCONC(:,14) ! -!OH/RO2T=+K293*<RO251>+K296*<RO252>+K299*<RO253>+K342*<RO258> - PJAC(:,15,85)=+TPK%K293(:)*TPK%RO251(:)+TPK%K296(:)*TPK%RO252(:)+TPK%K299(:)*T& -&PK%RO253(:)+TPK%K342(:)*TPK%RO258(:) +!BIOP/BIO=+1.00000*K060*<OH> + PJAC(:,35,20)=+1.00000*TPK%K060(:)*PCONC(:,14) ! -!OH/RO21=+K112*<HO2> - PJAC(:,15,86)=+TPK%K112(:)*PCONC(:,10) +!BIOP/ARO=0.0 ! -!OH/RO25=+K124*<HO2> - PJAC(:,15,87)=+TPK%K124(:)*PCONC(:,10) +!BIOP/HCHO=0.0 ! -!OH/WC_O3=0.0 -! -!OH/WC_H2O2=0.0 -! -!OH/WC_NO=0.0 -! -!OH/WC_NO2=0.0 -! -!OH/WC_NO3=0.0 -! -!OH/WC_N2O5=0.0 -! -!OH/WC_HONO=0.0 -! -!OH/WC_HNO3=0.0 -! -!OH/WC_HNO4=0.0 +!BIOP/ALD=0.0 ! -!OH/WC_NH3=0.0 +!BIOP/KET=0.0 ! -!OH/WC_OH=+KTC42 - PJAC(:,15,98)=+TPK%KTC42(:) +!BIOP/CARBO=0.0 ! -!OH/WC_HO2=0.0 +!BIOP/ONIT=0.0 ! -!OH/WC_CO2=0.0 +!BIOP/PAN=0.0 ! -!OH/WC_SO2=0.0 +!BIOP/OP1=0.0 ! -!OH/WC_H2SO4=0.0 +!BIOP/OP2=0.0 ! -!OH/WC_RO21=0.0 +!BIOP/ORA1=0.0 ! -!OH/WC_RO25=0.0 +!BIOP/ORA2=0.0 ! -!OH/WC_MEOH=0.0 +!BIOP/MO2=-K107*<BIOP> + PJAC(:,35,32)=-TPK%K107(:)*PCONC(:,35) ! -!OH/WC_ETOH=0.0 +!BIOP/ALKAP=0.0 ! -!OH/WC_ALCH=0.0 +!BIOP/ALKEP=0.0 ! -!OH/WC_HCHO=0.0 +!BIOP/BIOP=-K093*<NO>-K0100*<HO2>-K107*<MO2>-K113*<CARBOP>-K122*<NO3> + PJAC(:,35,35)=-TPK%K093(:)*PCONC(:,3)-TPK%K0100(:)*PCONC(:,15)-TPK%K107(:)*PCO& +&NC(:,32)-TPK%K113(:)*PCONC(:,39)-TPK%K122(:)*PCONC(:,5) ! -!OH/WC_ALD2=0.0 +!BIOP/PHO=0.0 ! -!OH/WC_GLY=0.0 +!BIOP/ADD=0.0 ! -!OH/WC_MGLY=0.0 +!BIOP/AROP=0.0 ! -!OH/WC_KETL=0.0 +!BIOP/CARBOP=-K113*<BIOP> + PJAC(:,35,39)=-TPK%K113(:)*PCONC(:,35) ! -!OH/WC_ORA1=0.0 +!BIOP/OLN=0.0 ! -!OH/WC_ORA2=0.0 +!BIOP/XO2=0.0 ! -!OH/WC_ACID=0.0 +RETURN +END SUBROUTINE SUBJ6 ! -!OH/WC_RP16=0.0 +SUBROUTINE SUBJ7 ! -!OH/WC_UR21=0.0 +!Indices 36 a 40 ! -!OH/WC_UR28=0.0 ! -!OH/WC_ACID2=0.0 +!PHO/O3=0.0 ! -!OH/WC_ASO3=0.0 +!PHO/H2O2=0.0 ! -!OH/WC_ASO4=0.0 +!PHO/NO=0.0 ! -!OH/WC_ASO5=0.0 +!PHO/NO2=-K083*<PHO> + PJAC(:,36,4)=-TPK%K083(:)*PCONC(:,36) ! -!OH/WC_AHSO5=0.0 +!PHO/NO3=+K075*<ARO> + PJAC(:,36,5)=+TPK%K075(:)*PCONC(:,21) ! -!OH/WC_AHMS=0.0 +!PHO/N2O5=0.0 ! -!OH/WR_O3=0.0 +!PHO/HONO=0.0 ! -!OH/WR_H2O2=0.0 +!PHO/HNO3=0.0 ! -!OH/WR_NO=0.0 +!PHO/HNO4=0.0 ! -!OH/WR_NO2=0.0 +!PHO/NH3=0.0 ! -!OH/WR_NO3=0.0 +!PHO/SO2=0.0 ! -!OH/WR_N2O5=0.0 +!PHO/SULF=0.0 ! -!OH/WR_HONO=0.0 +!PHO/CO=0.0 ! -!OH/WR_HNO3=0.0 +!PHO/OH=+0.00276*K061*<ARO> + PJAC(:,36,14)=+0.00276*TPK%K061(:)*PCONC(:,21) ! -!OH/WR_HNO4=0.0 +!PHO/HO2=-K084*<PHO> + PJAC(:,36,15)=-TPK%K084(:)*PCONC(:,36) ! -!OH/WR_NH3=0.0 +!PHO/CH4=0.0 ! -!OH/WR_OH=+KTR42 - PJAC(:,15,135)=+TPK%KTR42(:) +!PHO/ETH=0.0 ! -!OH/WR_HO2=0.0 +!PHO/ALKA=0.0 ! -!OH/WR_CO2=0.0 +!PHO/ALKE=0.0 ! -!OH/WR_SO2=0.0 +!PHO/BIO=0.0 ! -!OH/WR_H2SO4=0.0 +!PHO/ARO=+0.00276*K061*<OH>+K075*<NO3> + PJAC(:,36,21)=+0.00276*TPK%K061(:)*PCONC(:,14)+TPK%K075(:)*PCONC(:,5) ! -!OH/WR_RO21=0.0 +!PHO/HCHO=0.0 ! -!OH/WR_RO25=0.0 +!PHO/ALD=0.0 ! -!OH/WR_MEOH=0.0 +!PHO/KET=0.0 ! -!OH/WR_ETOH=0.0 +!PHO/CARBO=0.0 ! -!OH/WR_ALCH=0.0 +!PHO/ONIT=0.0 ! -!OH/WR_HCHO=0.0 +!PHO/PAN=0.0 ! -!OH/WR_ALD2=0.0 +!PHO/OP1=0.0 ! -!OH/WR_GLY=0.0 +!PHO/OP2=0.0 ! -!OH/WR_MGLY=0.0 +!PHO/ORA1=0.0 ! -!OH/WR_KETL=0.0 +!PHO/ORA2=0.0 ! -!OH/WR_ORA1=0.0 +!PHO/MO2=0.0 ! -!OH/WR_ORA2=0.0 +!PHO/ALKAP=0.0 ! -!OH/WR_ACID=0.0 +!PHO/ALKEP=0.0 ! -!OH/WR_RP16=0.0 +!PHO/BIOP=0.0 ! -!OH/WR_UR21=0.0 +!PHO/PHO=-K083*<NO2>-K084*<HO2> + PJAC(:,36,36)=-TPK%K083(:)*PCONC(:,4)-TPK%K084(:)*PCONC(:,15) ! -!OH/WR_UR28=0.0 +!PHO/ADD=0.0 ! -!OH/WR_ACID2=0.0 +!PHO/AROP=0.0 ! -!OH/WR_ASO3=0.0 +!PHO/CARBOP=0.0 ! -!OH/WR_ASO4=0.0 +!PHO/OLN=0.0 ! -!OH/WR_ASO5=0.0 +!PHO/XO2=0.0 ! -!OH/WR_AHSO5=0.0 +!ADD/O3=-K087*<ADD> + PJAC(:,37,1)=-TPK%K087(:)*PCONC(:,37) ! -!OH/WR_AHMS=0.0 +!ADD/H2O2=0.0 ! -RETURN -END SUBROUTINE SUBJ2 +!ADD/NO=0.0 ! -SUBROUTINE SUBJ3 +!ADD/NO2=-K085*<ADD> + PJAC(:,37,4)=-TPK%K085(:)*PCONC(:,37) ! -!Indices 16 a 20 +!ADD/NO3=0.0 ! +!ADD/N2O5=0.0 ! -!ETHE/NO=0.0 +!ADD/HONO=0.0 ! -!ETHE/NO2=0.0 +!ADD/HNO3=0.0 ! -!ETHE/O3=-K051*<ETHE> - PJAC(:,16,3)=-TPK%K051(:)*PCONC(:,16) +!ADD/HNO4=0.0 ! -!ETHE/HONO=0.0 +!ADD/NH3=0.0 ! -!ETHE/HNO3=0.0 +!ADD/SO2=0.0 ! -!ETHE/HNO4=0.0 +!ADD/SULF=0.0 ! -!ETHE/N2O5=0.0 +!ADD/CO=0.0 ! -!ETHE/NO3=-K050*<ETHE> - PJAC(:,16,8)=-TPK%K050(:)*PCONC(:,16) +!ADD/OH=+0.93968*K061*<ARO> + PJAC(:,37,14)=+0.93968*TPK%K061(:)*PCONC(:,21) ! -!ETHE/NH3=0.0 +!ADD/HO2=0.0 ! -!ETHE/HO2=0.0 +!ADD/CH4=0.0 ! -!ETHE/CO=0.0 +!ADD/ETH=0.0 ! -!ETHE/H2O2=0.0 +!ADD/ALKA=0.0 ! -!ETHE/SO2=0.0 +!ADD/ALKE=0.0 ! -!ETHE/H2SO4=0.0 +!ADD/BIO=0.0 ! -!ETHE/OH=-K049*<ETHE> - PJAC(:,16,15)=-TPK%K049(:)*PCONC(:,16) +!ADD/ARO=+0.93968*K061*<OH> + PJAC(:,37,21)=+0.93968*TPK%K061(:)*PCONC(:,14) ! -!ETHE/ETHE=-K049*<OH>-K050*<NO3>-K051*<O3>-K052*<O> - PJAC(:,16,16)=-TPK%K049(:)*PCONC(:,15)-TPK%K050(:)*PCONC(:,8)-TPK%K051(:)*PCON& -&C(:,3)-TPK%K052(:)*TPK%O(:) +!ADD/HCHO=0.0 ! -!ETHE/OLEL=0.0 +!ADD/ALD=0.0 ! -!ETHE/OLEH=0.0 +!ADD/KET=0.0 ! -!ETHE/ALKL=0.0 +!ADD/CARBO=0.0 ! -!ETHE/ALKM=0.0 +!ADD/ONIT=0.0 ! -!ETHE/ALKH=0.0 +!ADD/PAN=0.0 ! -!ETHE/AROH=0.0 +!ADD/OP1=0.0 ! -!ETHE/AROL=0.0 +!ADD/OP2=0.0 ! -!ETHE/AROO=0.0 +!ADD/ORA1=0.0 ! -!ETHE/ARAL=0.0 +!ADD/ORA2=0.0 ! -!ETHE/ARAC=0.0 +!ADD/MO2=0.0 ! -!ETHE/PAH=0.0 +!ADD/ALKAP=0.0 ! -!ETHE/HCHO=0.0 +!ADD/ALKEP=0.0 ! -!ETHE/ALD2=0.0 +!ADD/BIOP=0.0 ! -!ETHE/KETL=0.0 +!ADD/PHO=0.0 ! -!ETHE/KETH=0.0 +!ADD/ADD=-K085*<NO2>-K086*<O2>-K087*<O3> + PJAC(:,37,37)=-TPK%K085(:)*PCONC(:,4)-TPK%K086(:)*TPK%O2(:)-TPK%K087(:)*PCONC(& +&:,1) ! -!ETHE/MEOH=0.0 +!ADD/AROP=0.0 ! -!ETHE/ETOH=0.0 +!ADD/CARBOP=0.0 ! -!ETHE/ALCH=0.0 +!ADD/OLN=0.0 ! -!ETHE/ISOP=0.0 +!ADD/XO2=0.0 ! -!ETHE/BIOL=0.0 +!AROP/O3=0.0 ! -!ETHE/BIOH=0.0 +!AROP/H2O2=0.0 ! -!ETHE/MTBE=0.0 +!AROP/NO=-K094*<AROP> + PJAC(:,38,3)=-TPK%K094(:)*PCONC(:,38) ! -!ETHE/MVK=0.0 +!AROP/NO2=0.0 ! -!ETHE/MCR=0.0 +!AROP/NO3=-K123*<AROP> + PJAC(:,38,5)=-TPK%K123(:)*PCONC(:,38) ! -!ETHE/MGLY=0.0 +!AROP/N2O5=0.0 ! -!ETHE/GLY=0.0 +!AROP/HONO=0.0 ! -!ETHE/ORA1=0.0 +!AROP/HNO3=0.0 ! -!ETHE/ORA2=0.0 +!AROP/HNO4=0.0 ! -!ETHE/ACID=0.0 +!AROP/NH3=0.0 ! -!ETHE/UR28=0.0 +!AROP/SO2=0.0 ! -!ETHE/UR21=0.0 +!AROP/SULF=0.0 ! -!ETHE/URG2=0.0 +!AROP/CO=0.0 ! -!ETHE/UR26=0.0 +!AROP/OH=0.0 ! -!ETHE/RPG2=0.0 +!AROP/HO2=-K0101*<AROP> + PJAC(:,38,15)=-TPK%K0101(:)*PCONC(:,38) ! -!ETHE/RP18=0.0 +!AROP/CH4=0.0 ! -!ETHE/RPG3=0.0 +!AROP/ETH=0.0 ! -!ETHE/URG4=0.0 +!AROP/ALKA=0.0 ! -!ETHE/UR8=0.0 +!AROP/ALKE=0.0 ! -!ETHE/UR17=0.0 +!AROP/BIO=0.0 ! -!ETHE/UR7=0.0 +!AROP/ARO=0.0 ! -!ETHE/RPR3=0.0 +!AROP/HCHO=0.0 ! -!ETHE/URG6=0.0 +!AROP/ALD=0.0 ! -!ETHE/UR22=0.0 +!AROP/KET=0.0 ! -!ETHE/URG7=0.0 +!AROP/CARBO=0.0 ! -!ETHE/RPR4=0.0 +!AROP/ONIT=0.0 ! -!ETHE/RPR7=0.0 +!AROP/PAN=0.0 ! -!ETHE/RPG7=0.0 +!AROP/OP1=0.0 ! -!ETHE/URG8=0.0 +!AROP/OP2=0.0 ! -!ETHE/UR19=0.0 +!AROP/ORA1=0.0 ! -!ETHE/URG9=0.0 +!AROP/ORA2=0.0 ! -!ETHE/AP7=0.0 +!AROP/MO2=-K108*<AROP> + PJAC(:,38,32)=-TPK%K108(:)*PCONC(:,38) ! -!ETHE/URG10=0.0 +!AROP/ALKAP=0.0 ! -!ETHE/RPR1=0.0 +!AROP/ALKEP=0.0 ! -!ETHE/RPR5=0.0 +!AROP/BIOP=0.0 ! -!ETHE/RPR8=0.0 +!AROP/PHO=0.0 ! -!ETHE/RP10=0.0 +!AROP/ADD=+0.98*K086*<O2> + PJAC(:,38,37)=+0.98*TPK%K086(:)*TPK%O2(:) ! -!ETHE/RP11=0.0 +!AROP/AROP=-K094*<NO>-K0101*<HO2>-K108*<MO2>-K114*<CARBOP>-K123*<NO3> + PJAC(:,38,38)=-TPK%K094(:)*PCONC(:,3)-TPK%K0101(:)*PCONC(:,15)-TPK%K108(:)*PCO& +&NC(:,32)-TPK%K114(:)*PCONC(:,39)-TPK%K123(:)*PCONC(:,5) ! -!ETHE/RP16=0.0 +!AROP/CARBOP=-K114*<AROP> + PJAC(:,38,39)=-TPK%K114(:)*PCONC(:,38) ! -!ETHE/RPRL=0.0 +!AROP/OLN=0.0 ! -!ETHE/APAN=0.0 +!AROP/XO2=0.0 ! -!ETHE/PAN1=0.0 +!CARBOP/O3=+0.05705*K079*<ALKE>+0.17000*K080*<BIO>+0.27460*K081*<CARBO>+0.70000 +!*K082*<PAN> + PJAC(:,39,1)=+0.05705*TPK%K079(:)*PCONC(:,19)+0.17000*TPK%K080(:)*PCONC(:,20)+& +&0.27460*TPK%K081(:)*PCONC(:,25)+0.70000*TPK%K082(:)*PCONC(:,27) ! -!ETHE/PAN2=0.0 +!CARBOP/H2O2=0.0 ! -!ETHE/PAN3=0.0 +!CARBOP/NO=+0.09532*K095*<CARBOP>-K095*<CARBOP> + PJAC(:,39,3)=+0.09532*TPK%K095(:)*PCONC(:,39)-TPK%K095(:)*PCONC(:,39) ! -!ETHE/PAN4=0.0 +!CARBOP/NO2=-K088*<CARBOP> + PJAC(:,39,4)=-TPK%K088(:)*PCONC(:,39) ! -!ETHE/PAN6=0.0 +!CARBOP/NO3=+1.00000*K073*<ALD>+0.38881*K074*<CARBO>+0.03175*K124*<CARBOP>-K124 +!*<CARBOP> + PJAC(:,39,5)=+1.00000*TPK%K073(:)*PCONC(:,23)+0.38881*TPK%K074(:)*PCONC(:,25)+& +&0.03175*TPK%K124(:)*PCONC(:,39)-TPK%K124(:)*PCONC(:,39) ! -!ETHE/PAN7=0.0 +!CARBOP/N2O5=0.0 ! -!ETHE/PAN8=0.0 +!CARBOP/HONO=0.0 ! -!ETHE/PN10=0.0 +!CARBOP/HNO3=0.0 ! -!ETHE/RO2T=0.0 +!CARBOP/HNO4=0.0 ! -!ETHE/RO21=0.0 +!CARBOP/NH3=0.0 ! -!ETHE/RO25=0.0 +!CARBOP/SO2=0.0 ! -!ETHE/WC_O3=0.0 +!CARBOP/SULF=0.0 ! -!ETHE/WC_H2O2=0.0 +!CARBOP/CO=0.0 ! -!ETHE/WC_NO=0.0 +!CARBOP/OH=+1.00000*K063*<ALD>+1.00000*K064*<KET>+0.51419*K065*<CARBO>+0.05413* +!K069*<OP2> + PJAC(:,39,14)=+1.00000*TPK%K063(:)*PCONC(:,23)+1.00000*TPK%K064(:)*PCONC(:,24)& +&+0.51419*TPK%K065(:)*PCONC(:,25)+0.05413*TPK%K069(:)*PCONC(:,29) ! -!ETHE/WC_NO2=0.0 +!CARBOP/HO2=-K0102*<CARBOP> + PJAC(:,39,15)=-TPK%K0102(:)*PCONC(:,39) ! -!ETHE/WC_NO3=0.0 +!CARBOP/CH4=0.0 ! -!ETHE/WC_N2O5=0.0 +!CARBOP/ETH=0.0 ! -!ETHE/WC_HONO=0.0 +!CARBOP/ALKA=0.0 ! -!ETHE/WC_HNO3=0.0 +!CARBOP/ALKE=+0.05705*K079*<O3> + PJAC(:,39,19)=+0.05705*TPK%K079(:)*PCONC(:,1) ! -!ETHE/WC_HNO4=0.0 +!CARBOP/BIO=+0.17000*K080*<O3> + PJAC(:,39,20)=+0.17000*TPK%K080(:)*PCONC(:,1) ! -!ETHE/WC_NH3=0.0 +!CARBOP/ARO=0.0 ! -!ETHE/WC_OH=0.0 +!CARBOP/HCHO=0.0 ! -!ETHE/WC_HO2=0.0 +!CARBOP/ALD=+1.00000*K063*<OH>+1.00000*K073*<NO3> + PJAC(:,39,23)=+1.00000*TPK%K063(:)*PCONC(:,14)+1.00000*TPK%K073(:)*PCONC(:,5) ! -!ETHE/WC_CO2=0.0 +!CARBOP/KET=+1.00000*K015+1.00000*K064*<OH> + PJAC(:,39,24)=+1.00000*TPK%K015(:)+1.00000*TPK%K064(:)*PCONC(:,14) ! -!ETHE/WC_SO2=0.0 +!CARBOP/CARBO=+0.69622*K016+0.51419*K065*<OH>+0.38881*K074*<NO3>+0.27460*K081*< +!O3> + PJAC(:,39,25)=+0.69622*TPK%K016(:)+0.51419*TPK%K065(:)*PCONC(:,14)+0.38881*TPK& +&%K074(:)*PCONC(:,5)+0.27460*TPK%K081(:)*PCONC(:,1) ! -!ETHE/WC_H2SO4=0.0 +!CARBOP/ONIT=0.0 ! -!ETHE/WC_RO21=0.0 +!CARBOP/PAN=+0.70000*K082*<O3>+1.00000*K089 + PJAC(:,39,27)=+0.70000*TPK%K082(:)*PCONC(:,1)+1.00000*TPK%K089(:) ! -!ETHE/WC_RO25=0.0 +!CARBOP/OP1=0.0 ! -!ETHE/WC_MEOH=0.0 +!CARBOP/OP2=+0.05413*K069*<OH> + PJAC(:,39,29)=+0.05413*TPK%K069(:)*PCONC(:,14) ! -!ETHE/WC_ETOH=0.0 +!CARBOP/ORA1=0.0 ! -!ETHE/WC_ALCH=0.0 +!CARBOP/ORA2=0.0 ! -!ETHE/WC_HCHO=0.0 +!CARBOP/MO2=+0.05954*K109*<CARBOP>-K109*<CARBOP> + PJAC(:,39,32)=+0.05954*TPK%K109(:)*PCONC(:,39)-TPK%K109(:)*PCONC(:,39) ! -!ETHE/WC_ALD2=0.0 +!CARBOP/ALKAP=-K111*<CARBOP> + PJAC(:,39,33)=-TPK%K111(:)*PCONC(:,39) ! -!ETHE/WC_GLY=0.0 +!CARBOP/ALKEP=-K112*<CARBOP> + PJAC(:,39,34)=-TPK%K112(:)*PCONC(:,39) ! -!ETHE/WC_MGLY=0.0 +!CARBOP/BIOP=-K113*<CARBOP> + PJAC(:,39,35)=-TPK%K113(:)*PCONC(:,39) ! -!ETHE/WC_KETL=0.0 +!CARBOP/PHO=0.0 ! -!ETHE/WC_ORA1=0.0 +!CARBOP/ADD=0.0 ! -!ETHE/WC_ORA2=0.0 +!CARBOP/AROP=-K114*<CARBOP> + PJAC(:,39,38)=-TPK%K114(:)*PCONC(:,39) ! -!ETHE/WC_ACID=0.0 +!CARBOP/CARBOP=-K088*<NO2>+0.09532*K095*<NO>-K095*<NO>-K0102*<HO2>+0.05954*K109 +!*<MO2>-K109*<MO2>-K111*<ALKAP>-K112*<ALKEP>-K113*<BIOP>-K114*<AROP>+0.05821*K1 +!15*<CARBOP>+0.05821*K115*<CARBOP>-K115*<CARBOP>-K115*<CARBOP>-K115*<CARBOP>-K1 +!15*<CARBOP>-K116*<OLN>+0.03175*K124*<NO3>-K124*<NO3>-K128*<XO2> + PJAC(:,39,39)=-TPK%K088(:)*PCONC(:,4)+0.09532*TPK%K095(:)*PCONC(:,3)-TPK%K095(& +&:)*PCONC(:,3)-TPK%K0102(:)*PCONC(:,15)+0.05954*TPK%K109(:)*PCONC(:,32)-TPK%K10& +&9(:)*PCONC(:,32)-TPK%K111(:)*PCONC(:,33)-TPK%K112(:)*PCONC(:,34)-TPK%K113(:)*P& +&CONC(:,35)-TPK%K114(:)*PCONC(:,38)+0.05821*TPK%K115(:)*PCONC(:,39)+0.05821*TPK& +&%K115(:)*PCONC(:,39)-TPK%K115(:)*PCONC(:,39)-TPK%K115(:)*PCONC(:,39)-TPK%K115(& +&:)*PCONC(:,39)-TPK%K115(:)*PCONC(:,39)-TPK%K116(:)*PCONC(:,40)+0.03175*TPK%K12& +&4(:)*PCONC(:,5)-TPK%K124(:)*PCONC(:,5)-TPK%K128(:)*PCONC(:,41) ! -!ETHE/WC_RP16=0.0 +!CARBOP/OLN=-K116*<CARBOP> + PJAC(:,39,40)=-TPK%K116(:)*PCONC(:,39) ! -!ETHE/WC_UR21=0.0 +!CARBOP/XO2=-K128*<CARBOP> + PJAC(:,39,41)=-TPK%K128(:)*PCONC(:,39) ! -!ETHE/WC_UR28=0.0 +!OLN/O3=0.0 ! -!ETHE/WC_ACID2=0.0 +!OLN/H2O2=0.0 ! -!ETHE/WC_ASO3=0.0 +!OLN/NO=-K096*<OLN> + PJAC(:,40,3)=-TPK%K096(:)*PCONC(:,40) ! -!ETHE/WC_ASO4=0.0 +!OLN/NO2=0.0 ! -!ETHE/WC_ASO5=0.0 +!OLN/NO3=+0.00000*K074*<CARBO>+0.93768*K076*<ALKE>+1.00000*K077*<BIO>-K125*<OLN +!> + PJAC(:,40,5)=+0.00000*TPK%K074(:)*PCONC(:,25)+0.93768*TPK%K076(:)*PCONC(:,19)+& +&1.00000*TPK%K077(:)*PCONC(:,20)-TPK%K125(:)*PCONC(:,40) ! -!ETHE/WC_AHSO5=0.0 +!OLN/N2O5=0.0 ! -!ETHE/WC_AHMS=0.0 +!OLN/HONO=0.0 ! -!ETHE/WR_O3=0.0 +!OLN/HNO3=0.0 ! -!ETHE/WR_H2O2=0.0 +!OLN/HNO4=0.0 ! -!ETHE/WR_NO=0.0 +!OLN/NH3=0.0 ! -!ETHE/WR_NO2=0.0 +!OLN/SO2=0.0 ! -!ETHE/WR_NO3=0.0 +!OLN/SULF=0.0 ! -!ETHE/WR_N2O5=0.0 +!OLN/CO=0.0 ! -!ETHE/WR_HONO=0.0 +!OLN/OH=0.0 ! -!ETHE/WR_HNO3=0.0 +!OLN/HO2=-K103*<OLN> + PJAC(:,40,15)=-TPK%K103(:)*PCONC(:,40) ! -!ETHE/WR_HNO4=0.0 +!OLN/CH4=0.0 ! -!ETHE/WR_NH3=0.0 +!OLN/ETH=0.0 ! -!ETHE/WR_OH=0.0 +!OLN/ALKA=0.0 ! -!ETHE/WR_HO2=0.0 +!OLN/ALKE=+0.93768*K076*<NO3> + PJAC(:,40,19)=+0.93768*TPK%K076(:)*PCONC(:,5) ! -!ETHE/WR_CO2=0.0 +!OLN/BIO=+1.00000*K077*<NO3> + PJAC(:,40,20)=+1.00000*TPK%K077(:)*PCONC(:,5) ! -!ETHE/WR_SO2=0.0 +!OLN/ARO=0.0 ! -!ETHE/WR_H2SO4=0.0 +!OLN/HCHO=0.0 ! -!ETHE/WR_RO21=0.0 +!OLN/ALD=0.0 ! -!ETHE/WR_RO25=0.0 +!OLN/KET=0.0 ! -!ETHE/WR_MEOH=0.0 +!OLN/CARBO=+0.00000*K074*<NO3> + PJAC(:,40,25)=+0.00000*TPK%K074(:)*PCONC(:,5) ! -!ETHE/WR_ETOH=0.0 +!OLN/ONIT=0.0 ! -!ETHE/WR_ALCH=0.0 +!OLN/PAN=0.0 ! -!ETHE/WR_HCHO=0.0 +!OLN/OP1=0.0 ! -!ETHE/WR_ALD2=0.0 +!OLN/OP2=0.0 ! -!ETHE/WR_GLY=0.0 +!OLN/ORA1=0.0 ! -!ETHE/WR_MGLY=0.0 +!OLN/ORA2=0.0 ! -!ETHE/WR_KETL=0.0 +!OLN/MO2=-K110*<OLN> + PJAC(:,40,32)=-TPK%K110(:)*PCONC(:,40) ! -!ETHE/WR_ORA1=0.0 +!OLN/ALKAP=0.0 ! -!ETHE/WR_ORA2=0.0 +!OLN/ALKEP=0.0 ! -!ETHE/WR_ACID=0.0 +!OLN/BIOP=0.0 ! -!ETHE/WR_RP16=0.0 +!OLN/PHO=0.0 ! -!ETHE/WR_UR21=0.0 +!OLN/ADD=0.0 ! -!ETHE/WR_UR28=0.0 +!OLN/AROP=0.0 ! -!ETHE/WR_ACID2=0.0 +!OLN/CARBOP=-K116*<OLN> + PJAC(:,40,39)=-TPK%K116(:)*PCONC(:,40) ! -!ETHE/WR_ASO3=0.0 +!OLN/OLN=-K096*<NO>-K103*<HO2>-K110*<MO2>-K116*<CARBOP>-K117*<OLN>-K117*<OLN>-K +!117*<OLN>-K117*<OLN>-K118*<OLN>-K118*<OLN>-K118*<OLN>-K118*<OLN>-K125*<NO3> + PJAC(:,40,40)=-TPK%K096(:)*PCONC(:,3)-TPK%K103(:)*PCONC(:,15)-TPK%K110(:)*PCON& +&C(:,32)-TPK%K116(:)*PCONC(:,39)-TPK%K117(:)*PCONC(:,40)-TPK%K117(:)*PCONC(:,40& +&)-TPK%K117(:)*PCONC(:,40)-TPK%K117(:)*PCONC(:,40)-TPK%K118(:)*PCONC(:,40)-TPK%& +&K118(:)*PCONC(:,40)-TPK%K118(:)*PCONC(:,40)-TPK%K118(:)*PCONC(:,40)-TPK%K125(:& +&)*PCONC(:,5) ! -!ETHE/WR_ASO4=0.0 +!OLN/XO2=0.0 ! -!ETHE/WR_ASO5=0.0 +RETURN +END SUBROUTINE SUBJ7 ! -!ETHE/WR_AHSO5=0.0 +SUBROUTINE SUBJ8 ! -!ETHE/WR_AHMS=0.0 +!Indices 41 a 41 ! -!OLEL/NO=+TPK%CF5*K150*<RO29>+TPK%CF7*K168*<RO214> - PJAC(:,17,1)=+TPK%CF5*TPK%K150(:)*TPK%RO29(:)+TPK%CF7*TPK%K168(:)*TPK%RO214(:) ! -!OLEL/NO2=0.0 +!XO2/O3=+0.00000*K079*<ALKE>+0.13000*K080*<BIO> + PJAC(:,41,1)=+0.00000*TPK%K079(:)*PCONC(:,19)+0.13000*TPK%K080(:)*PCONC(:,20) ! -!OLEL/O3=-K056*<OLEL>+0.054*K066*<ISOP> - PJAC(:,17,3)=-TPK%K056(:)*PCONC(:,17)+0.054*TPK%K066(:)*PCONC(:,35) +!XO2/H2O2=0.0 ! -!OLEL/HONO=0.0 +!XO2/NO=+0.13007*K091*<ALKAP>+0.02563*K095*<CARBOP>-K130*<XO2> + PJAC(:,41,3)=+0.13007*TPK%K091(:)*PCONC(:,33)+0.02563*TPK%K095(:)*PCONC(:,39)-& +&TPK%K130(:)*PCONC(:,41) ! -!OLEL/HNO3=0.0 +!XO2/NO2=0.0 ! -!OLEL/HNO4=0.0 +!XO2/NO3=+0.10530*K074*<CARBO>+K078*<PAN>+0.16271*K120*<ALKAP>+0.01021*K124*<CA +!RBOP>-K131*<XO2> + PJAC(:,41,5)=+0.10530*TPK%K074(:)*PCONC(:,25)+TPK%K078(:)*PCONC(:,27)+0.16271*& +&TPK%K120(:)*PCONC(:,33)+0.01021*TPK%K124(:)*PCONC(:,39)-TPK%K131(:)*PCONC(:,41& +&) ! -!OLEL/N2O5=0.0 +!XO2/N2O5=0.0 ! -!OLEL/NO3=-K055*<OLEL> - PJAC(:,17,8)=-TPK%K055(:)*PCONC(:,17) +!XO2/HONO=0.0 ! -!OLEL/NH3=0.0 +!XO2/HNO3=0.0 ! -!OLEL/HO2=+0.5*K166*<RO239>+0.5*K289*<RO250> - PJAC(:,17,10)=+0.5*TPK%K166(:)*TPK%RO239(:)+0.5*TPK%K289(:)*TPK%RO250(:) +!XO2/HNO4=0.0 ! -!OLEL/CO=0.0 +!XO2/NH3=0.0 ! -!OLEL/H2O2=0.0 +!XO2/SO2=0.0 ! -!OLEL/SO2=0.0 +!XO2/SULF=0.0 ! -!OLEL/H2SO4=0.0 +!XO2/CO=0.0 ! -!OLEL/OH=-K054*<OLEL> - PJAC(:,17,15)=-TPK%K054(:)*PCONC(:,17) +!XO2/OH=+0.10318*K061*<ARO>+0.10162*K065*<CARBO>+0.09333*K069*<OP2>+K070*<PAN> + PJAC(:,41,14)=+0.10318*TPK%K061(:)*PCONC(:,21)+0.10162*TPK%K065(:)*PCONC(:,25)& +&+0.09333*TPK%K069(:)*PCONC(:,29)+TPK%K070(:)*PCONC(:,27) ! -!OLEL/ETHE=0.0 +!XO2/HO2=-K126*<XO2> + PJAC(:,41,15)=-TPK%K126(:)*PCONC(:,41) ! -!OLEL/OLEL=-K054*<OH>-K055*<NO3>-K056*<O3>-K057*<O> - PJAC(:,17,17)=-TPK%K054(:)*PCONC(:,15)-TPK%K055(:)*PCONC(:,8)-TPK%K056(:)*PCON& -&C(:,3)-TPK%K057(:)*TPK%O(:) +!XO2/CH4=0.0 ! -!OLEL/OLEH=0.0 +!XO2/ETH=0.0 ! -!OLEL/ALKL=0.0 +!XO2/ALKA=0.0 ! -!OLEL/ALKM=0.0 +!XO2/ALKE=+0.00000*K079*<O3> + PJAC(:,41,19)=+0.00000*TPK%K079(:)*PCONC(:,1) ! -!OLEL/ALKH=0.0 +!XO2/BIO=+0.15*K054*<O3P>+0.13000*K080*<O3> + PJAC(:,41,20)=+0.15*TPK%K054(:)*TPK%O3P(:)+0.13000*TPK%K080(:)*PCONC(:,1) ! -!OLEL/AROH=0.0 +!XO2/ARO=+0.10318*K061*<OH> + PJAC(:,41,21)=+0.10318*TPK%K061(:)*PCONC(:,14) ! -!OLEL/AROL=0.0 +!XO2/HCHO=0.0 ! -!OLEL/AROO=0.0 +!XO2/ALD=0.0 ! -!OLEL/ARAL=0.0 +!XO2/KET=0.0 ! -!OLEL/ARAC=0.0 +!XO2/CARBO=+0.10162*K065*<OH>+0.10530*K074*<NO3> + PJAC(:,41,25)=+0.10162*TPK%K065(:)*PCONC(:,14)+0.10530*TPK%K074(:)*PCONC(:,5) ! -!OLEL/PAH=0.0 +!XO2/ONIT=0.0 ! -!OLEL/HCHO=0.0 +!XO2/PAN=+K070*<OH>+K078*<NO3> + PJAC(:,41,27)=+TPK%K070(:)*PCONC(:,14)+TPK%K078(:)*PCONC(:,5) ! -!OLEL/ALD2=0.0 +!XO2/OP1=0.0 ! -!OLEL/KETL=0.0 +!XO2/OP2=+0.09333*K069*<OH> + PJAC(:,41,29)=+0.09333*TPK%K069(:)*PCONC(:,14) ! -!OLEL/KETH=0.0 +!XO2/ORA1=0.0 ! -!OLEL/MEOH=0.0 +!XO2/ORA2=0.0 ! -!OLEL/ETOH=0.0 +!XO2/MO2=+0.13370*K105*<ALKAP>+0.02212*K109*<CARBOP>-K127*<XO2> + PJAC(:,41,32)=+0.13370*TPK%K105(:)*PCONC(:,33)+0.02212*TPK%K109(:)*PCONC(:,39)& +&-TPK%K127(:)*PCONC(:,41) ! -!OLEL/ALCH=0.0 +!XO2/ALKAP=+0.13007*K091*<NO>+0.13370*K105*<MO2>+0.11306*K111*<CARBOP>+0.16271* +!K120*<NO3> + PJAC(:,41,33)=+0.13007*TPK%K091(:)*PCONC(:,3)+0.13370*TPK%K105(:)*PCONC(:,32)+& +&0.11306*TPK%K111(:)*PCONC(:,39)+0.16271*TPK%K120(:)*PCONC(:,5) ! -!OLEL/ISOP=+0.054*K066*<O3>+0.925*K067*<O> - PJAC(:,17,35)=+0.054*TPK%K066(:)*PCONC(:,3)+0.925*TPK%K067(:)*TPK%O(:) +!XO2/ALKEP=0.0 ! -!OLEL/BIOL=0.0 +!XO2/BIOP=0.0 ! -!OLEL/BIOH=0.0 +!XO2/PHO=0.0 ! -!OLEL/MTBE=0.0 +!XO2/ADD=0.0 ! -!OLEL/MVK=0.0 +!XO2/AROP=0.0 ! -!OLEL/MCR=0.0 +!XO2/CARBOP=+0.02563*K095*<NO>+0.02212*K109*<MO2>+0.11306*K111*<ALKAP>+0.01593* +!K115*<CARBOP>+0.01593*K115*<CARBOP>+0.01021*K124*<NO3>-K128*<XO2> + PJAC(:,41,39)=+0.02563*TPK%K095(:)*PCONC(:,3)+0.02212*TPK%K109(:)*PCONC(:,32)+& +&0.11306*TPK%K111(:)*PCONC(:,33)+0.01593*TPK%K115(:)*PCONC(:,39)+0.01593*TPK%K1& +&15(:)*PCONC(:,39)+0.01021*TPK%K124(:)*PCONC(:,5)-TPK%K128(:)*PCONC(:,41) ! -!OLEL/MGLY=0.0 +!XO2/OLN=0.0 ! -!OLEL/GLY=0.0 +!XO2/XO2=-K126*<HO2>-K127*<MO2>-K128*<CARBOP>-K129*<XO2>-K129*<XO2>-K129*<XO2>- +!K129*<XO2>-K130*<NO>-K131*<NO3> + PJAC(:,41,41)=-TPK%K126(:)*PCONC(:,15)-TPK%K127(:)*PCONC(:,32)-TPK%K128(:)*PCO& +&NC(:,39)-TPK%K129(:)*PCONC(:,41)-TPK%K129(:)*PCONC(:,41)-TPK%K129(:)*PCONC(:,4& +&1)-TPK%K129(:)*PCONC(:,41)-TPK%K130(:)*PCONC(:,3)-TPK%K131(:)*PCONC(:,5) ! -!OLEL/ORA1=0.0 +RETURN +END SUBROUTINE SUBJ8 ! -!OLEL/ORA2=0.0 +END SUBROUTINE CH_JAC_GAZ ! -!OLEL/ACID=0.0 ! -!OLEL/UR28=0.0 +!======================================================================== ! -!OLEL/UR21=0.0 +!! ######################## + MODULE MODI_CH_SET_RATES +!! ######################## +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +INTERFACE +SUBROUTINE CH_SET_RATES(PTIME,PCONC,TPM,KMI,KOUT,KVERB,KVECNPT,KEQ,KRRL,PPH) +USE MODD_CH_M9_n, ONLY: METEOTRANSTYPE +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +TYPE(METEOTRANSTYPE), DIMENSION(KVECNPT), INTENT(IN):: TPM +INTEGER, INTENT(IN) :: KMI +INTEGER, INTENT(IN) :: KOUT,KVERB +INTEGER, INTENT(INOUT) :: KRRL +REAL, INTENT(INOUT), DIMENSION(:,:), OPTIONAL :: PPH +END SUBROUTINE CH_SET_RATES +END INTERFACE +END MODULE MODI_CH_SET_RATES ! -!OLEL/URG2=0.0 +!======================================================================== ! -!OLEL/UR26=0.0 +!! ############################################################################ + SUBROUTINE CH_SET_RATES(PTIME,PCONC,TPM,KMI,KOUT,KVERB,KVECNPT,KEQ,KRRL,PPH) +!! ############################################################################ +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +!!*** *MODD_CH_SET_RATES* +!! +!! PURPOSE +!! ------- +! set or calculate reaction rates +!! +!!** METHOD +!! ------ +!! simple +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Karsten Suhre (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) +!! Modified 01/06/07: Add pH calculation (M. Leriche & JP Pinty) +!! Modified 01/06/08: Add reaction constant in cloud/rain (M. Leriche) +!! Modified 14/11/08: Put LWC and LWR to zero where <XRTMIN_AQ +!! +!!---------------------------------------------------------------------- +!! +!! EXTERNAL +!! -------- +!! +USE MODI_CH_ALLOCATE_TACCS +USE MODI_CH_DEALLOCATE_TACCS +USE MODI_CH_SET_PH +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +!! +USE MODD_CH_M9_SCHEME +USE MODD_CH_M9_n, ONLY : METEOTRANSTYPE +USE MODD_CH_MNHC_n, ONLY : XRTMIN_AQ, XCH_PHINIT +! USER DEFINED FUNCTIONS +USE MODI_KT +USE MODI_TROE +USE MODI_HENRY +USE MODI_HEFFA +USE MODI_TROE_EQUIL +USE MODI_HEFFB +!! +!! EXPLICIT ARGUMENTS +!! ------------------ +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +TYPE(METEOTRANSTYPE), DIMENSION(KVECNPT), INTENT(IN):: TPM +INTEGER, INTENT(IN) :: KMI +INTEGER, INTENT(IN) :: KOUT,KVERB +INTEGER, INTENT(INOUT) :: KRRL +REAL, INTENT(INOUT), DIMENSION(:,:), OPTIONAL :: PPH +!! +!!---------------------------------------------------------------------- +! /BEGIN_SET_RATES/ ! -!OLEL/RPG2=0.0 +! transfer of meteo-variables into variables used by the +! chemical core system (and some unit conversion): ! -!OLEL/RP18=0.0 +! molecular weight of air: m_mol^air = 28.8 g/mol +! molecular weight of H2O: m_mol^H2O = 18.0 g/mol +! ==> m_mol^air / m_mol^H2O = 1.6 +! density conversion factor: 1 g/cm3 = 1E+3 kg/m3 +! n_molec (moelc./cm3): M = 1E-3*RHO(kg/m3) * Navo / m_mol +! n_water: H2O = M * 1.6 * Rv +! pressure = RHO * T * R * 1E-5 (in atm) +! assuming 20.95 vol% O2 ! -!OLEL/RPG3=0.0 +TYPE(CCSTYPE), POINTER :: TPK ! -!OLEL/URG4=0.0 +!---------------------------------------------------------------------- ! -!OLEL/UR8=0.0 +IF (.NOT. ASSOCIATED(TACCS(KMI)%NVERB)) THEN + CALL CH_ALLOCATE_TACCS(KMI,KVECNPT) +END IF ! -!OLEL/UR17=0.0 +IF (SIZE(TACCS(KMI)%NVERB) .NE. KVECNPT) THEN + CALL CH_DEALLOCATE_TACCS(KMI) + CALL CH_ALLOCATE_TACCS(KMI,KVECNPT) +END IF ! -!OLEL/UR7=0.0 +TPK=>TACCS(KMI) ! -!OLEL/RPR3=0.0 +TPK%MODELLEVEL = TPM%XMETEOVAR(1) +TPK%M = 1E-3*TPM%XMETEOVAR(2) * 6.0221367E+23 / 28.9644 +TPK%T = TPM%XMETEOVAR(3) +TPK%H2O = TPK%M*1.6077*TPM%XMETEOVAR(4) +TPK%CLOUDWATER = TPM%XMETEOVAR(5) +TPK%LAT = TPM%XMETEOVAR(6) +TPK%LON = TPM%XMETEOVAR(7) +TPK%YEAR = INT(TPM%XMETEOVAR(8)) +TPK%MONTH = INT(TPM%XMETEOVAR(9)) +TPK%DAY = INT(TPM%XMETEOVAR(10)) +TPK%RAINWATER = TPM%XMETEOVAR(11) +TPK%RHODREF = TPM%XMETEOVAR(2) +! derived variables +TPK%PRESSURE = TPM%XMETEOVAR(2) * TPK%T * 288.290947 * 1E-5 +TPK%O2 = 0.2095 * TPK%M +TPK%N2 = TPK%M - TPK%O2 +TPK%H2 = 1.23e13 +! fixed concentration of CO2 +TPK%CO2 = 330. * 1.E-6 * TPK%M +! for chemistry in aqueous phase, kinetic mass transfer +! cloud lwc (vol/vol) = cloud m.r.(kg/kg) * rho_air(kg/m3) / rho_eau(kg/m3) +TPK%LWC = TPM%XMETEOVAR(5)*TPM%XMETEOVAR(2) / 1.E3 +WHERE ( TPK%LWC < XRTMIN_AQ ) !to get reaction rate for mass transfer = 0 + TPK%LWC = 0. +ENDWHERE +TPK%RADC = TPM%XMETEOVAR(12) +! conversion factor for reaction constant in cloud +! give minimum value to avoir division by zero +TPK%MOL2MOLECCLOUD = 6.023e+23*1.e-3*XRTMIN_AQ +WHERE (TPK%LWC >= XRTMIN_AQ) + TPK%MOL2MOLECCLOUD = 6.023e+23*1.e-3*TPK%LWC +END WHERE ! -!OLEL/URG6=0.0 +TPK%LWR = TPM%XMETEOVAR(11)*TPM%XMETEOVAR(2) / 1.E3 +WHERE ( TPK%LWR < XRTMIN_AQ ) !to get reaction rate for mass transfer = 0 + TPK%LWR = 0. +ENDWHERE +TPK%RADR = TPM%XMETEOVAR(13) +! conversion factor for reaction constant in rain +! give minimum value to avoir division by zero +TPK%MOL2MOLECRAIN = 6.023e+23*1.e-3*XRTMIN_AQ +WHERE (TPK%LWR >= XRTMIN_AQ) + TPK%MOL2MOLECRAIN = 6.023e+23*1.e-3*TPK%LWR +END WHERE +!pH calculation if required +IF (PRESENT(PPH)) THEN + TPK%PHC(:)=PPH(:,1) + CALL CH_SET_PH(KOUT,KMI,KVECNPT,PCONC,TPK%PHC(:),KVERB,2) ! pH cloud water +! TPK%PHC(:) = 0.01*TPK%PHC(:) + 0.99*PPH(:,1) ! apply a strong filter + PPH(:,1) = TPK%PHC(:) + IF (KRRL>=2) THEN + TPK%PHR(:)=PPH(:,2) + CALL CH_SET_PH(KOUT,KMI,KVECNPT,PCONC,TPK%PHR(:),KVERB,3) ! pH rain water +! TPK%PHR(:) = 0.01*TPK%PHR(:) + 0.99*PPH(:,2) ! apply a strong filter + PPH(:,2) = TPK%PHR(:) + ENDIF +ELSE + IF (.NOT.TPK%LCH_PH) TPK%PHC = XCH_PHINIT + IF (KRRL>=2) THEN + IF (.NOT.TPK%LCH_PH) TPK%PHR = XCH_PHINIT + ENDIF +ENDIF ! -!OLEL/UR22=0.0 +TPK%RCH = 0.08206 ! R in atm M-1 K-1 +TPK%W_O2 = 1.3E-3*exp(-1500.*(1./TPK%T-1./298.15))*TPK%RCH*TPK%T*TPK%O2*1.e3/6.023e+23 ! -!OLEL/URG7=0.0 +! the following prints will be erased +IF (KVERB >= 15) THEN + WRITE(KOUT,*) "CH_SET_RATES: the following variables have been updated" + WRITE(KOUT,*) "MODELLEVEL: ", TPK%MODELLEVEL(1) + WRITE(KOUT,*) "M: ", TPK%M(1) , "molec/cm3" + WRITE(KOUT,*) "T: ", TPK%T(1) , "K" + WRITE(KOUT,*) "H2O ", TPK%H2O(1) , "molec/cm3" + WRITE(KOUT,*) "CLOUDWATER: ", TPK%CLOUDWATER(1) , "kg/kg" + WRITE(KOUT,*) "LATITUDE: ", TPK%LAT(1) , "degree" + WRITE(KOUT,*) "LONGITUDE: ", TPK%LON(1) , "degree" + WRITE(KOUT,*) "YEAR: ", TPK%YEAR(1) + WRITE(KOUT,*) "MONTH: ", TPK%MONTH(1) + WRITE(KOUT,*) "DAY: ", TPK%DAY(1) + WRITE(KOUT,*) "RAINWATER: ", TPK%RAINWATER(1) , "kg/kg" + WRITE(KOUT,*) "RHODREF: ", TPK%RHODREF(1) , "kg/m3" + WRITE(KOUT,*) "PRESSURE: ", TPK%PRESSURE(1) , "atm" + WRITE(KOUT,*) "O2: ", TPK%O2(1) , "molec/cm3" + WRITE(KOUT,*) "N2: ", TPK%N2(1) , "molec/cm3" + WRITE(KOUT,*) "H2: ", TPK%H2(1) , "molec/cm3" + WRITE(KOUT,*) "CO2: ", TPK%CO2(1) , "molec/cm3" + WRITE(KOUT,*) "LWC: ", TPK%LWC(1) , "m3/m3" + WRITE(KOUT,*) "RADC: ", TPK%RADC(1) , "m" + WRITE(KOUT,*) "PHC: ", TPK%PHC(1) + WRITE(KOUT,*) "LWR: ", TPK%LWR(1) , "m3/m3" + WRITE(KOUT,*) "RADR: ", TPK%RADR(1) , "m" + WRITE(KOUT,*) "PHR: ", TPK%PHR(1) + WRITE(KOUT,*) "W_O2: ", TPK%W_O2(1) , "M" +END IF ! -!OLEL/RPR4=0.0 +! /END_SET_RATES/ +CALL SUBSRG0 +CALL SUBSRG1 +CALL SUBSRG2 +CALL SUBSRG3 +CALL SUBSRG4 +CALL SUBSRG5 +CALL SUBSRG6 +CALL SUBSRG7 +CALL SUBSRG8 +CALL SUBSRG9 +CALL SUBSRG10 +CALL SUBSRG11 +CALL SUBSRG12 +CALL SUBSRG13 +IF (TPK%LUSECHAQ) THEN + CALL SUBSRW0 + CALL SUBSRW1 + CALL SUBSRW2 + CALL SUBSRW3 + CALL SUBSRW4 + CALL SUBSRW5 + CALL SUBSRW6 + CALL SUBSRW7 + CALL SUBSRW8 + CALL SUBSRW9 + CALL SUBSRW10 + CALL SUBSRW11 + CALL SUBSRW12 + CALL SUBSRW13 +END IF +TPK%NOUT = KOUT +TPK%NVERB(:) = KVERB +RETURN + +CONTAINS + +SUBROUTINE SUBSRG0 ! -!OLEL/RPR7=0.0 +!Indices 1 a 10 ! -!OLEL/RPG7=0.0 ! -!OLEL/URG8=0.0 +RETURN +END SUBROUTINE SUBSRG0 ! -!OLEL/UR19=0.0 +SUBROUTINE SUBSRG1 ! -!OLEL/URG9=0.0 +!Indices 11 a 20 ! -!OLEL/AP7=0.0 + TPK%K018=TPK%M*6.00E-34*(TPK%T/300)**(-2.3) + TPK%K019=8.00E-12*exp(-(2060.0/TPK%T)) + TPK%K020=1.80E-11*exp(-(-110.0/TPK%T)) ! -!OLEL/URG10=0.0 +RETURN +END SUBROUTINE SUBSRG1 ! -!OLEL/RPR1=0.0 +SUBROUTINE SUBSRG2 ! -!OLEL/RPR5=0.0 +!Indices 21 a 30 ! -!OLEL/RPR8=0.0 + TPK%K021=3.20E-11*exp(-(-70.0/TPK%T)) + TPK%K022=2.20E-10 + TPK%K023=1.60E-12*exp(-(940.0/TPK%T)) + TPK%K024=1.10E-14*exp(-(500.0/TPK%T)) + TPK%K025=4.80E-11*exp(-(-250.0/TPK%T)) + TPK%K026=2.90E-12*exp(-(160.0/TPK%T)) + TPK%K027=2.3E-13*EXP(600./TPK%T)+1.7E-33*TPK%M*EXP(1000./TPK%T) + TPK%K028=3.22E-34*EXP(2800./TPK%T)+2.38E-54*TPK%M*EXP(3200./TPK%T) + TPK%K029=TROE(1.,9.00E-32,1.5,3.00E-11,0.0,TPK%M,TPK%T,KVECNPT) + TPK%K030=6.50E-12*exp(-(-120.0/TPK%T)) ! -!OLEL/RP10=0.0 +RETURN +END SUBROUTINE SUBSRG2 ! -!OLEL/RP11=0.0 +SUBROUTINE SUBSRG3 ! -!OLEL/RP16=0.0 +!Indices 31 a 40 ! -!OLEL/RPRL=0.0 + TPK%K031=TROE(1.,9.00E-32,2.0,2.20E-11,0.0,TPK%M,TPK%T,KVECNPT) + TPK%K032=TROE(1.,7.00E-31,2.6,1.50E-11,0.5,TPK%M,TPK%T,KVECNPT) + TPK%K033=TROE(1.,2.60E-30,3.2,2.40E-11,1.3,TPK%M,TPK%T,KVECNPT) + TPK%K034=2.20E-11 + TPK%K035=3.70E-12*exp(-(-250.0/TPK%T)) + TPK%K036=TROE(1.,1.80E-31,3.2,4.70E-12,1.4,TPK%M,TPK%T,KVECNPT) + TPK%K037=TROE_EQUIL(1.80E-31,3.2,4.70E-12,1.4,4.76E+26,10900.,TPK%M,TPK%T,KVEC& +&NPT) + TPK%K038=3.50E-12 + TPK%K039=1.80E-11*exp(-(390.0/TPK%T)) + TPK%K040=(7.2E-15*EXP(785/TPK%T))+(1.9E-33*EXP(725/TPK%T)*TPK%M)/(1+(1.9E-33*E& +&XP(725/TPK%T)*TPK%M)/(4.1E-16*EXP(1440/TPK%T))) ! -!OLEL/APAN=0.0 +RETURN +END SUBROUTINE SUBSRG3 ! -!OLEL/PAN1=0.0 +SUBROUTINE SUBSRG4 ! -!OLEL/PAN2=0.0 +!Indices 41 a 50 ! -!OLEL/PAN3=0.0 + TPK%K041=1.30E-12*exp(-(-380.0/TPK%T)) + TPK%K042=2.00E-12*exp(-(1400.0/TPK%T)) + TPK%K043=1.20E-13*exp(-(2450.0/TPK%T)) + TPK%K044=3.30E-39*exp(-(-530.0/TPK%T)) + TPK%K045=1.50E-11*exp(-(-170.0/TPK%T)) + TPK%K046=4.50E-14*exp(-(1260.0/TPK%T)) + TPK%K047=TROE(1.,2.20E-30,3.9,1.50E-12,0.7,TPK%M,TPK%T,KVECNPT) + TPK%K048=TROE_EQUIL(2.20E-30,3.9,1.50E-12,0.7,3.70E+26,11000.0,TPK%M,TPK%T,KVE& +&CNPT) + TPK%K049=8.50E-13*exp(-(2450.0/TPK%T)) + TPK%K050=3.30E-12*exp(-(900.0/TPK%T)) ! -!OLEL/PAN4=0.0 +RETURN +END SUBROUTINE SUBSRG4 ! -!OLEL/PAN6=0.0 +SUBROUTINE SUBSRG5 ! -!OLEL/PAN7=0.0 +!Indices 51 a 60 ! -!OLEL/PAN8=0.0 + TPK%K051=5.50E-12*exp(-(2000.0/TPK%T)) + TPK%K052=TROE(1.,3.00E-31,3.3,1.50E-12,0.0,TPK%M,TPK%T,KVECNPT) + TPK%K053=1.5E-13*(1.+2.439E-20*TPK%M) + TPK%K054=6.00E-11 + TPK%K055=0.00E-01*exp(-(-13.0/TPK%T)) + TPK%K056=TPK%T*TPK%T*7.44E-18*exp(-(1361./TPK%T)) + TPK%K057=1.51E-17*TPK%T*TPK%T*exp(-(492./TPK%T)) + TPK%K058=3.76E-12*exp(-(260.0/TPK%T))+1.70E-12*exp(-(155.0/TPK%T))+1.21E-12*ex& +&p(-(125.0/TPK%T)) + TPK%K059=1.78E-12*exp(-(-438.0/TPK%T))+6.07E-13*exp(-(-500.0/TPK%T))+0.00E-01*& +&exp(-(-448.0/TPK%T)) + TPK%K060=2.54E-11*exp(-(-410.0/TPK%T))+0.00E-01*exp(-(-444.0/TPK%T))+0.00E-01 ! -!OLEL/PN10=0.0 +RETURN +END SUBROUTINE SUBSRG5 ! -!OLEL/RO2T=0.0 +SUBROUTINE SUBSRG6 ! -!OLEL/RO21=0.0 +!Indices 61 a 70 ! -!OLEL/RO25=0.0 + TPK%K061=3.31E-12*exp(-(-355.0/TPK%T))+3.45E-13 + TPK%K062=1.00E-11 + TPK%K063=5.55E-12*exp(-(-331.0/TPK%T)) + TPK%K064=TPK%T*TPK%T*5.68E-18*exp(-(-92.0/TPK%T)) + TPK%K065=1.32E-11+1.88E-12*exp(-(-175.0/TPK%T)) + TPK%K066=4.50E-13 + TPK%K067=6.00E-13 + TPK%K068=2.93E-12*exp(-(-190.0/TPK%T)) + TPK%K069=3.36E-12*exp(-(-190.0/TPK%T)) + TPK%K070=3.80E-14+1.59E-14*exp(-(-500.0/TPK%T)) ! -!OLEL/WC_O3=0.0 +RETURN +END SUBROUTINE SUBSRG6 ! -!OLEL/WC_H2O2=0.0 +SUBROUTINE SUBSRG7 ! -!OLEL/WC_NO=0.0 +!Indices 71 a 80 ! -!OLEL/WC_NO2=0.0 + TPK%K071=5.31E-12*exp(-(260.0/TPK%T)) + TPK%K072=3.40E-13*exp(-(1900.0/TPK%T)) + TPK%K073=1.40E-12*exp(-(1900.0/TPK%T)) + TPK%K074=1.62E-12*exp(-(1900.0/TPK%T))+0.00E-01*exp(-(150.0/TPK%T))+1.94E-14*e& +&xp(-(1000.0/TPK%T)) + TPK%K075=4.92E-16 + TPK%K076=4.35E-18*TPK%T*TPK%T*exp(-(2282.0/TPK%T))+1.91E-14*exp(-(450.0/TPK%T)& +&)+1.08E-15*exp(-(-450.0/TPK%T))+0.00E-01 + TPK%K077=4.00E-12*exp(-(446.0/TPK%T))+0.00E-01*exp(-(-490.0/TPK%T))+0.00E-01 + TPK%K078=3.76E-16*exp(-(500.0/TPK%T)) + TPK%K079=8.17E-15*exp(-(2580.0/TPK%T))+4.32E-16*exp(-(1800.0/TPK%T))+2.87E-17*& +&exp(-(845.0/TPK%T))+0.00E-01*exp(-(2283.0/TPK%T)) + TPK%K080=7.86E-15*exp(-(1913.0/TPK%T))+0.00E-01*exp(-(732.0/TPK%T))+0.00E-01 ! -!OLEL/WC_NO3=0.0 +RETURN +END SUBROUTINE SUBSRG7 ! -!OLEL/WC_N2O5=0.0 +SUBROUTINE SUBSRG8 ! -!OLEL/WC_HONO=0.0 +!Indices 81 a 90 ! -!OLEL/WC_HNO3=0.0 + TPK%K081=0.00E-01*exp(-(2112.0/TPK%T))+1.38E-19 + TPK%K082=7.20E-17*exp(-(1700.0/TPK%T)) + TPK%K083=2.00E-11 + TPK%K084=1.00E-11 + TPK%K085=3.60E-11 + TPK%K086=1.66E-17*exp(-(-1044.0/TPK%T)) + TPK%K087=2.80E-11 + TPK%K088=TROE(5.86E-01,9.70E-29,5.6,9.30E-12,1.5,TPK%M,TPK%T,KVECNPT) + TPK%K089=TROE_EQUIL(9.70E-29,5.6,9.30E-12,1.5,1.16E+28,13954.,TPK%M,TPK%T,KVEC& +&NPT) + TPK%K090=4.20E-12*exp(-(-180.0/TPK%T)) ! -!OLEL/WC_HNO4=0.0 +RETURN +END SUBROUTINE SUBSRG8 ! -!OLEL/WC_NH3=0.0 +SUBROUTINE SUBSRG9 ! -!OLEL/WC_OH=0.0 +!Indices 91 a 100 ! -!OLEL/WC_HO2=0.0 + TPK%K091=4.36E-12 + TPK%K092=6.93E-12 + TPK%K093=4.00E-12 + TPK%K094=4.00E-12 + TPK%K095=1.22E-11 + TPK%K096=4.00E-12 + TPK%K097=3.80E-13*exp(-(-800.0/TPK%T)) + TPK%K098=6.16E-14*exp(-(-700.0/TPK%T))+1.52E-13*exp(-(-1300.0/TPK%T)) + TPK%K099=1.81E-13*exp(-(-1300.0/TPK%T)) + TPK%K0100=1.28E-13*exp(-(-1300.0/TPK%T))+0.00E-01 ! -!OLEL/WC_CO2=0.0 +RETURN +END SUBROUTINE SUBSRG9 ! -!OLEL/WC_SO2=0.0 +SUBROUTINE SUBSRG10 ! -!OLEL/WC_H2SO4=0.0 +!Indices 101 a 110 ! -!OLEL/WC_RO21=0.0 + TPK%K0101=3.75E-13*exp(-(-980.0/TPK%T)) + TPK%K0102=5.94E-13*exp(-(-550.0/TPK%T))+1.99E-16*exp(-(-2640.0/TPK%T))+5.56E-1& +&4*exp(-(-1300.0/TPK%T)) + TPK%K103=1.66E-13*exp(-(-1300.0/TPK%T)) + TPK%K104=9.10E-14*exp(-(-416.0/TPK%T)) + TPK%K105=1.03E-14*exp(-(-158.0/TPK%T))+6.24E-14*exp(-(-431.0/TPK%T))+1.53E-14*& +&exp(-(-467.0/TPK%T))+4.34E-15*exp(-(-633.0/TPK%T)) + TPK%K106=1.57E-13*exp(-(-708.0/TPK%T)) + TPK%K107=1.36E-13*exp(-(-708.0/TPK%T)) + TPK%K108=3.56E-14*exp(-(-708.0/TPK%T)) + TPK%K109=1.77E-11*exp(-(440.0/TPK%T))+1.48E-16*exp(-(-2510.0/TPK%T))+3.10E-13*& +&exp(-(-508.0/TPK%T)) + TPK%K110=1.12E-13*exp(-(-708.0/TPK%T)) ! -!OLEL/WC_RO25=0.0 +RETURN +END SUBROUTINE SUBSRG10 ! -!OLEL/WC_MEOH=0.0 +SUBROUTINE SUBSRG11 ! -!OLEL/WC_ETOH=0.0 +!Indices 111 a 120 ! -!OLEL/WC_ALCH=0.0 + TPK%K111=4.44E-14*exp(-(-211.0/TPK%T))+2.23E-13*exp(-(-460.0/TPK%T))+4.10E-14*& +&exp(-(-522.0/TPK%T))+1.17E-14*exp(-(-683.0/TPK%T)) + TPK%K112=4.36E-13*exp(-(-765.0/TPK%T)) + TPK%K113=7.60E-13*exp(-(-765.0/TPK%T)) + TPK%K114=3.63E-13*exp(-(-765.0/TPK%T)) + TPK%K115=7.73E-13*exp(-(-530.0/TPK%T))+1.70E-13*exp(-(-565.0/TPK%T)) + TPK%K116=4.85E-13*exp(-(-765.0/TPK%T)) + TPK%K117=4.19E-15*exp(-(-1000.0/TPK%T)) + TPK%K118=2.48E-14*exp(-(-1000.0/TPK%T)) + TPK%K119=1.20E-12 + TPK%K120=1.20E-12 ! -!OLEL/WC_HCHO=0.0 +RETURN +END SUBROUTINE SUBSRG11 ! -!OLEL/WC_ALD2=0.0 +SUBROUTINE SUBSRG12 ! -!OLEL/WC_GLY=0.0 +!Indices 121 a 130 ! -!OLEL/WC_MGLY=0.0 + TPK%K121=1.20E-12 + TPK%K122=1.20E-12 + TPK%K123=1.20E-12 + TPK%K124=3.48E-12 + TPK%K125=1.20E-12 + TPK%K126=1.66E-13*exp(-(-1300.0/TPK%T)) + TPK%K127=5.99E-15*exp(-(-1510.0/TPK%T)) + TPK%K128=1.69E-14*exp(-(-1560.0/TPK%T)) + TPK%K129=7.13E-17*exp(-(-2950.0/TPK%T)) + TPK%K130=4.00E-12 ! -!OLEL/WC_KETL=0.0 +RETURN +END SUBROUTINE SUBSRG12 ! -!OLEL/WC_ORA1=0.0 +SUBROUTINE SUBSRG13 ! -!OLEL/WC_ORA2=0.0 +!Indices 131 a 132 ! -!OLEL/WC_ACID=0.0 + TPK%K131=1.20E-12 + TPK%K132=1.00E-40 ! -!OLEL/WC_RP16=0.0 +RETURN +END SUBROUTINE SUBSRG13 ! -!OLEL/WC_UR21=0.0 +SUBROUTINE SUBSRW0 ! -!OLEL/WC_UR28=0.0 +!Indices 133 a 142 ! -!OLEL/WC_ACID2=0.0 + TPK%KTC1=KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC2=KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC3=KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC4=KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC5=KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC6=KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC7=KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC8=KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC9=KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC10=KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC ! -!OLEL/WC_ASO3=0.0 +RETURN +END SUBROUTINE SUBSRW0 ! -!OLEL/WC_ASO4=0.0 +SUBROUTINE SUBSRW1 ! -!OLEL/WC_ASO5=0.0 +!Indices 143 a 152 ! -!OLEL/WC_AHSO5=0.0 + TPK%KTC11=KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC12=KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC13=KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC14=KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC15=KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC16=KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC17=KT(0.012,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC18=KT(0.03,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC19=KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC + TPK%KTC20=KT(0.007,48.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC ! -!OLEL/WC_AHMS=0.0 +RETURN +END SUBROUTINE SUBSRW1 ! -!OLEL/WR_O3=0.0 +SUBROUTINE SUBSRW2 ! -!OLEL/WR_H2O2=0.0 +!Indices 153 a 162 ! -!OLEL/WR_NO=0.0 + TPK%KTC21=KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.1e-2,-2830.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTC22=KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(7.73e4,-7310.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTC23=KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.92e-3,-1790.,TPK%T,KV& +&ECNPT)*TPK%RCH*TPK%T) + TPK%KTC24=KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.4e-2,0.,TPK%T,KVECNPT& +&)*TPK%RCH*TPK%T) + TPK%KTC25=KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.8e-2,0.,TPK%T,KVECNPT)*& +&TPK%RCH*TPK%T) + TPK%KTC26=KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(2.1,-3400.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTC27=KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(5.0e1,-4880.,1.6e-3,1760.& +&,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC28=KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(2.1e5,-8700.,2.2e1,0.,0.& +&,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC29=KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(1.2e4,-6900.,1.26e-6,0.,0& +&.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC30=KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)/(HEFFB(6.02e1,-4160.,1.7e-5,4350& +&.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) ! -!OLEL/WR_NO2=0.0 +RETURN +END SUBROUTINE SUBSRW2 ! -!OLEL/WR_NO3=0.0 +SUBROUTINE SUBSRW3 ! -!OLEL/WR_N2O5=0.0 +!Indices 163 a 172 ! -!OLEL/WR_HONO=0.0 + TPK%KTC31=KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.9e1,0.,TPK%T,KVECNPT)*T& +&PK%RCH*TPK%T) + TPK%KTC32=KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(6.9e2,0.,1.6e-5,0.,0.,0.,T& +&PK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC33=KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(3.4e-2,-2710.,4.3e-7,92& +&0.,4.7e-11,1780.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC34=KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(1.36,-2930.,1.3e-2,-1965.& +&,6.4e-8,-1430.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC35=KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(2.1e5,-8700.,1.0e3,0.,1.0& +&e-2,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC36=KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.23e3,-7100.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTC37=KT(0.012,46.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(8.9e3,-6100.,1.8e-4,150.& +&,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC38=KT(0.03,60.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(4.1e3,-6200.,1.74e-5,0.,0& +&.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTC39=KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(2.7e0,-2030.,TPK%T,KVECNP& +&T)*TPK%RCH*TPK%T) + TPK%KTC40=KT(0.007,48.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.e2,-5280.,TPK%T,KVECNP& +&T)*TPK%RCH*TPK%T) ! -!OLEL/WR_HNO3=0.0 +RETURN +END SUBROUTINE SUBSRW3 ! -!OLEL/WR_HNO4=0.0 +SUBROUTINE SUBSRW4 ! -!OLEL/WR_NH3=0.0 +!Indices 173 a 182 ! -!OLEL/WR_OH=0.0 + TPK%KTR1=KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR2=KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR3=KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR4=KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR5=KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR6=KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR7=KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR8=KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR9=KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR10=KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR ! -!OLEL/WR_HO2=0.0 +RETURN +END SUBROUTINE SUBSRW4 ! -!OLEL/WR_CO2=0.0 +SUBROUTINE SUBSRW5 ! -!OLEL/WR_SO2=0.0 +!Indices 183 a 192 ! -!OLEL/WR_H2SO4=0.0 + TPK%KTR11=KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR12=KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR13=KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR14=KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR15=KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR16=KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR17=KT(0.012,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR18=KT(0.03,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR19=KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR + TPK%KTR20=KT(0.007,48.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR ! -!OLEL/WR_RO21=0.0 +RETURN +END SUBROUTINE SUBSRW5 ! -!OLEL/WR_RO25=0.0 +SUBROUTINE SUBSRW6 ! -!OLEL/WR_MEOH=0.0 +!Indices 193 a 202 ! -!OLEL/WR_ETOH=0.0 + TPK%KTR21=KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.1e-2,-2830.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTR22=KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(7.73e4,-7310.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTR23=KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.92e-3,-1790.,TPK%T,KV& +&ECNPT)*TPK%RCH*TPK%T) + TPK%KTR24=KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.4e-2,0.,TPK%T,KVECNPT& +&)*TPK%RCH*TPK%T) + TPK%KTR25=KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.8e-2,0.,TPK%T,KVECNPT)*& +&TPK%RCH*TPK%T) + TPK%KTR26=KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(2.1,-3400.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTR27=KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(5.0e1,-4880.,1.6e-3,1760.& +&,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR28=KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(2.1e5,-8700.,2.2e1,0.,0.& +&,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR29=KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(1.2e4,-6900.,1.26e-6,0.,0& +&.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR30=KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)/(HEFFB(6.02e1,-4160.,1.7e-5,4350& +&.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) ! -!OLEL/WR_ALCH=0.0 +RETURN +END SUBROUTINE SUBSRW6 ! -!OLEL/WR_HCHO=0.0 +SUBROUTINE SUBSRW7 ! -!OLEL/WR_ALD2=0.0 +!Indices 203 a 212 ! -!OLEL/WR_GLY=0.0 + TPK%KTR31=KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.9e1,0.,TPK%T,KVECNPT)*T& +&PK%RCH*TPK%T) + TPK%KTR32=KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(6.9e2,0.,1.6e-5,0.,0.,0.,T& +&PK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR33=KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(3.4e-2,-2710.,4.3e-7,92& +&0.,4.7e-11,1780.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR34=KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(1.36,-2930.,1.3e-2,-1965.& +&,6.4e-8,-1430.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR35=KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(2.1e5,-8700.,1.0e3,0.,1.0& +&e-2,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR36=KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.23e3,-7100.,TPK%T,KVECN& +&PT)*TPK%RCH*TPK%T) + TPK%KTR37=KT(0.012,46.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(8.9e3,-6100.,1.8e-4,150.& +&,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR38=KT(0.03,60.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(4.1e3,-6200.,1.74e-5,0.,0& +&.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) + TPK%KTR39=KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(2.7e0,-2030.,TPK%T,KVECNP& +&T)*TPK%RCH*TPK%T) + TPK%KTR40=KT(0.007,48.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.e2,-5280.,TPK%T,KVECNP& +&T)*TPK%RCH*TPK%T) ! -!OLEL/WR_MGLY=0.0 +RETURN +END SUBROUTINE SUBSRW7 ! -!OLEL/WR_KETL=0.0 +SUBROUTINE SUBSRW8 ! -!OLEL/WR_ORA1=0.0 +!Indices 213 a 222 ! -!OLEL/WR_ORA2=0.0 + TPK%KC2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD + TPK%KC3=((2.8E+10*10.**(-TPK%PHC)+3.5E+10*exp(-720.*(1./TPK%T-1./298.15))*1.6e& +&-5)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD + TPK%KC4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD + TPK%KC5=((8.3E+5*exp(-2700.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHC))**2.+9.6E+7& +&*exp(-910.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*1.6e-5)/(1.6e-5+10.**(-TPK%PH& +&C))**2.)/TPK%MOL2MOLECCLOUD + TPK%KC6=(1.5E+9*exp(-1500.*(1./TPK%T-1./298.15))*1.6e-5/(1.6e-5+10.**(-TPK%PHC& +&)))/TPK%MOL2MOLECCLOUD + TPK%KC7=(2.7E+9*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.3e-2& +&*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2& +&*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%M& +&OL2MOLECCLOUD + TPK%KC8=(1.0E+10*10.**(-TPK%PHC)/(1.6e-3*exp(-1760.*(1./TPK%T-1./298.15))+10.*& +&*(-TPK%PHC)))/TPK%MOL2MOLECCLOUD + TPK%KC9=((1.8E+9*10.**(-TPK%PHC)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-TPK%PHC)))/TPK%& +&MOL2MOLECCLOUD + TPK%KC10=2.6E-2*10.**(-TPK%PHC)/(1.26e-6+10.**(-TPK%PHC)) ! -!OLEL/WR_ACID=0.0 +RETURN +END SUBROUTINE SUBSRW8 ! -!OLEL/WR_RP16=0.0 +SUBROUTINE SUBSRW9 ! -!OLEL/WR_UR21=0.0 +!Indices 223 a 232 ! -!OLEL/WR_UR28=0.0 + TPK%KC11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHC)) + TPK%KC12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHC))**2./& +&((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)& +&)+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.& +&)*(1.26e-6+10.**(-TPK%PHC))))/TPK%MOL2MOLECCLOUD + TPK%KC14=1.0E+10 + TPK%KC15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK%PHC)+(10.**(-T& +&PK%PHC))**2.))/TPK%MOL2MOLECCLOUD + TPK%KC16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1& +&./298.15))*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(& +&1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%& +&PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD + TPK%KC17=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD + TPK%KC18=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.3e-& +&2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-& +&2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%& +&MOL2MOLECCLOUD + TPK%KC19=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(4030.*(1./TPK%T-1.& +&/298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2MOLECCLOUD + TPK%KC20=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+3.4E+9*exp(& +&-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.15)))/(1.8e-4*ex& +&p(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD ! -!OLEL/WR_ACID2=0.0 +RETURN +END SUBROUTINE SUBSRW9 ! -!OLEL/WR_ASO3=0.0 +SUBROUTINE SUBSRW10 ! -!OLEL/WR_ASO4=0.0 +!Indices 233 a 242 ! -!OLEL/WR_ASO5=0.0 + TPK%KC21=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-& +&1./298.15))*10.**(-TPK%PHC)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.15))*1.3e-2*exp& +&(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/((1.3e-2*& +&exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*& +&exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.)*(1.+2.5& +&e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECCLOUD + TPK%KC22=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*EXP(-6716*(1./T& +&PK%T-1./298.15))/10.**(-TPK%PHC) + TPK%KC23=3.0E+8/TPK%MOL2MOLECCLOUD + TPK%KC24=1.1E+9 + TPK%KC25=(1.7E+9*10.**(-TPK%PHC)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD + TPK%KC26=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD + TPK%KC27=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*10.**(& +&-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1& +&./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%& +&PHC))**2.))/TPK%MOL2MOLECCLOUD + TPK%KC28=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15)) + TPK%KC29=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-& +&1./298.15))*10.**(-TPK%PHC)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.15))*1.3e-2*exp& +&(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/(1.3e-2*e& +&xp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*e& +&xp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL& +&2MOLECCLOUD + TPK%KC30=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1& +&./298.15))*10.**(-TPK%PHC)*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.& +&15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.& +&15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD ! -!OLEL/WR_AHSO5=0.0 +RETURN +END SUBROUTINE SUBSRW10 ! -!OLEL/WR_AHMS=0.0 +SUBROUTINE SUBSRW11 ! -!OLEH/NO=0.0 -! -!OLEH/NO2=0.0 -! -!OLEH/O3=-K076*<OLEH> - PJAC(:,18,3)=-TPK%K076(:)*PCONC(:,18) -! -!OLEH/HONO=0.0 -! -!OLEH/HNO3=0.0 -! -!OLEH/HNO4=0.0 -! -!OLEH/N2O5=0.0 -! -!OLEH/NO3=-K075*<OLEH> - PJAC(:,18,8)=-TPK%K075(:)*PCONC(:,18) -! -!OLEH/NH3=0.0 -! -!OLEH/HO2=0.0 -! -!OLEH/CO=0.0 -! -!OLEH/H2O2=0.0 -! -!OLEH/SO2=0.0 -! -!OLEH/H2SO4=0.0 -! -!OLEH/OH=-K074*<OLEH> - PJAC(:,18,15)=-TPK%K074(:)*PCONC(:,18) -! -!OLEH/ETHE=0.0 -! -!OLEH/OLEL=0.0 -! -!OLEH/OLEH=-K074*<OH>-K075*<NO3>-K076*<O3>-K077*<O> - PJAC(:,18,18)=-TPK%K074(:)*PCONC(:,15)-TPK%K075(:)*PCONC(:,8)-TPK%K076(:)*PCON& -&C(:,3)-TPK%K077(:)*TPK%O(:) -! -!OLEH/ALKL=0.0 -! -!OLEH/ALKM=0.0 -! -!OLEH/ALKH=0.0 -! -!OLEH/AROH=0.0 -! -!OLEH/AROL=0.0 -! -!OLEH/AROO=0.0 -! -!OLEH/ARAL=0.0 -! -!OLEH/ARAC=0.0 -! -!OLEH/PAH=0.0 -! -!OLEH/HCHO=0.0 -! -!OLEH/ALD2=0.0 -! -!OLEH/KETL=0.0 -! -!OLEH/KETH=0.0 -! -!OLEH/MEOH=0.0 -! -!OLEH/ETOH=0.0 -! -!OLEH/ALCH=0.0 -! -!OLEH/ISOP=0.0 -! -!OLEH/BIOL=0.0 -! -!OLEH/BIOH=0.0 -! -!OLEH/MTBE=0.0 -! -!OLEH/MVK=0.0 -! -!OLEH/MCR=0.0 -! -!OLEH/MGLY=0.0 -! -!OLEH/GLY=0.0 -! -!OLEH/ORA1=0.0 -! -!OLEH/ORA2=0.0 -! -!OLEH/ACID=0.0 -! -!OLEH/UR28=0.0 -! -!OLEH/UR21=0.0 -! -!OLEH/URG2=0.0 -! -!OLEH/UR26=0.0 -! -!OLEH/RPG2=0.0 -! -!OLEH/RP18=0.0 -! -!OLEH/RPG3=0.0 -! -!OLEH/URG4=0.0 -! -!OLEH/UR8=0.0 -! -!OLEH/UR17=0.0 -! -!OLEH/UR7=0.0 -! -!OLEH/RPR3=0.0 -! -!OLEH/URG6=0.0 -! -!OLEH/UR22=0.0 -! -!OLEH/URG7=0.0 -! -!OLEH/RPR4=0.0 -! -!OLEH/RPR7=0.0 -! -!OLEH/RPG7=0.0 -! -!OLEH/URG8=0.0 -! -!OLEH/UR19=0.0 -! -!OLEH/URG9=0.0 -! -!OLEH/AP7=0.0 -! -!OLEH/URG10=0.0 -! -!OLEH/RPR1=0.0 -! -!OLEH/RPR5=0.0 -! -!OLEH/RPR8=0.0 -! -!OLEH/RP10=0.0 -! -!OLEH/RP11=0.0 -! -!OLEH/RP16=0.0 -! -!OLEH/RPRL=0.0 -! -!OLEH/APAN=0.0 -! -!OLEH/PAN1=0.0 -! -!OLEH/PAN2=0.0 -! -!OLEH/PAN3=0.0 -! -!OLEH/PAN4=0.0 -! -!OLEH/PAN6=0.0 -! -!OLEH/PAN7=0.0 -! -!OLEH/PAN8=0.0 -! -!OLEH/PN10=0.0 -! -!OLEH/RO2T=0.0 -! -!OLEH/RO21=0.0 -! -!OLEH/RO25=0.0 -! -!OLEH/WC_O3=0.0 -! -!OLEH/WC_H2O2=0.0 -! -!OLEH/WC_NO=0.0 -! -!OLEH/WC_NO2=0.0 -! -!OLEH/WC_NO3=0.0 -! -!OLEH/WC_N2O5=0.0 -! -!OLEH/WC_HONO=0.0 -! -!OLEH/WC_HNO3=0.0 -! -!OLEH/WC_HNO4=0.0 -! -!OLEH/WC_NH3=0.0 -! -!OLEH/WC_OH=0.0 -! -!OLEH/WC_HO2=0.0 -! -!OLEH/WC_CO2=0.0 -! -!OLEH/WC_SO2=0.0 -! -!OLEH/WC_H2SO4=0.0 -! -!OLEH/WC_RO21=0.0 -! -!OLEH/WC_RO25=0.0 -! -!OLEH/WC_MEOH=0.0 -! -!OLEH/WC_ETOH=0.0 -! -!OLEH/WC_ALCH=0.0 -! -!OLEH/WC_HCHO=0.0 -! -!OLEH/WC_ALD2=0.0 -! -!OLEH/WC_GLY=0.0 -! -!OLEH/WC_MGLY=0.0 -! -!OLEH/WC_KETL=0.0 -! -!OLEH/WC_ORA1=0.0 -! -!OLEH/WC_ORA2=0.0 -! -!OLEH/WC_ACID=0.0 -! -!OLEH/WC_RP16=0.0 -! -!OLEH/WC_UR21=0.0 -! -!OLEH/WC_UR28=0.0 -! -!OLEH/WC_ACID2=0.0 -! -!OLEH/WC_ASO3=0.0 -! -!OLEH/WC_ASO4=0.0 -! -!OLEH/WC_ASO5=0.0 -! -!OLEH/WC_AHSO5=0.0 -! -!OLEH/WC_AHMS=0.0 -! -!OLEH/WR_O3=0.0 -! -!OLEH/WR_H2O2=0.0 -! -!OLEH/WR_NO=0.0 -! -!OLEH/WR_NO2=0.0 -! -!OLEH/WR_NO3=0.0 -! -!OLEH/WR_N2O5=0.0 -! -!OLEH/WR_HONO=0.0 -! -!OLEH/WR_HNO3=0.0 -! -!OLEH/WR_HNO4=0.0 -! -!OLEH/WR_NH3=0.0 -! -!OLEH/WR_OH=0.0 -! -!OLEH/WR_HO2=0.0 -! -!OLEH/WR_CO2=0.0 -! -!OLEH/WR_SO2=0.0 -! -!OLEH/WR_H2SO4=0.0 -! -!OLEH/WR_RO21=0.0 -! -!OLEH/WR_RO25=0.0 -! -!OLEH/WR_MEOH=0.0 -! -!OLEH/WR_ETOH=0.0 -! -!OLEH/WR_ALCH=0.0 -! -!OLEH/WR_HCHO=0.0 -! -!OLEH/WR_ALD2=0.0 -! -!OLEH/WR_GLY=0.0 -! -!OLEH/WR_MGLY=0.0 -! -!OLEH/WR_KETL=0.0 -! -!OLEH/WR_ORA1=0.0 -! -!OLEH/WR_ORA2=0.0 -! -!OLEH/WR_ACID=0.0 -! -!OLEH/WR_RP16=0.0 -! -!OLEH/WR_UR21=0.0 -! -!OLEH/WR_UR28=0.0 -! -!OLEH/WR_ACID2=0.0 -! -!OLEH/WR_ASO3=0.0 -! -!OLEH/WR_ASO4=0.0 -! -!OLEH/WR_ASO5=0.0 -! -!OLEH/WR_AHSO5=0.0 -! -!OLEH/WR_AHMS=0.0 -! -!ALKL/NO=+TPK%CF3*K122*<RO25>+TPK%CF12*K171*<RO215> - PJAC(:,19,1)=+TPK%CF3*TPK%K122(:)*PCONC(:,87)+TPK%CF12*TPK%K171(:)*TPK%RO215(:& -&) -! -!ALKL/NO2=0.0 -! -!ALKL/O3=+0.1*K056*<OLEL> - PJAC(:,19,3)=+0.1*TPK%K056(:)*PCONC(:,17) -! -!ALKL/HONO=0.0 -! -!ALKL/HNO3=0.0 -! -!ALKL/HNO4=0.0 -! -!ALKL/N2O5=0.0 -! -!ALKL/NO3=0.0 -! -!ALKL/NH3=0.0 -! -!ALKL/HO2=+TPK%CF16*K173*<RO215> - PJAC(:,19,10)=+TPK%CF16*TPK%K173(:)*TPK%RO215(:) -! -!ALKL/CO=0.0 -! -!ALKL/H2O2=0.0 -! -!ALKL/SO2=0.0 -! -!ALKL/H2SO4=0.0 -! -!ALKL/OH=-K058*<ALKL> - PJAC(:,19,15)=-TPK%K058(:)*PCONC(:,19) -! -!ALKL/ETHE=0.0 -! -!ALKL/OLEL=+0.1*K056*<O3>+0.5*K057*<O> - PJAC(:,19,17)=+0.1*TPK%K056(:)*PCONC(:,3)+0.5*TPK%K057(:)*TPK%O(:) -! -!ALKL/OLEH=0.0 -! -!ALKL/ALKL=-K058*<OH> - PJAC(:,19,19)=-TPK%K058(:)*PCONC(:,15) -! -!ALKL/ALKM=0.0 -! -!ALKL/ALKH=0.0 -! -!ALKL/AROH=0.0 -! -!ALKL/AROL=0.0 -! -!ALKL/AROO=0.0 -! -!ALKL/ARAL=0.0 -! -!ALKL/ARAC=0.0 -! -!ALKL/PAH=0.0 -! -!ALKL/HCHO=0.0 -! -!ALKL/ALD2=0.0 -! -!ALKL/KETL=0.0 -! -!ALKL/KETH=0.0 -! -!ALKL/MEOH=0.0 -! -!ALKL/ETOH=0.0 -! -!ALKL/ALCH=0.0 -! -!ALKL/ISOP=0.0 -! -!ALKL/BIOL=0.0 -! -!ALKL/BIOH=0.0 -! -!ALKL/MTBE=0.0 -! -!ALKL/MVK=0.0 -! -!ALKL/MCR=0.0 -! -!ALKL/MGLY=0.0 -! -!ALKL/GLY=0.0 -! -!ALKL/ORA1=0.0 -! -!ALKL/ORA2=0.0 -! -!ALKL/ACID=0.0 -! -!ALKL/UR28=0.0 -! -!ALKL/UR21=0.0 -! -!ALKL/URG2=0.0 -! -!ALKL/UR26=0.0 -! -!ALKL/RPG2=0.0 -! -!ALKL/RP18=0.0 -! -!ALKL/RPG3=0.0 -! -!ALKL/URG4=0.0 -! -!ALKL/UR8=0.0 -! -!ALKL/UR17=0.0 -! -!ALKL/UR7=0.0 -! -!ALKL/RPR3=0.0 -! -!ALKL/URG6=0.0 -! -!ALKL/UR22=0.0 -! -!ALKL/URG7=0.0 -! -!ALKL/RPR4=0.0 -! -!ALKL/RPR7=0.0 -! -!ALKL/RPG7=0.0 -! -!ALKL/URG8=0.0 -! -!ALKL/UR19=0.0 -! -!ALKL/URG9=0.0 -! -!ALKL/AP7=0.0 -! -!ALKL/URG10=0.0 -! -!ALKL/RPR1=0.0 -! -!ALKL/RPR5=0.0 -! -!ALKL/RPR8=0.0 -! -!ALKL/RP10=0.0 -! -!ALKL/RP11=0.0 -! -!ALKL/RP16=0.0 -! -!ALKL/RPRL=0.0 -! -!ALKL/APAN=0.0 -! -!ALKL/PAN1=0.0 -! -!ALKL/PAN2=0.0 -! -!ALKL/PAN3=0.0 -! -!ALKL/PAN4=0.0 -! -!ALKL/PAN6=0.0 -! -!ALKL/PAN7=0.0 -! -!ALKL/PAN8=0.0 -! -!ALKL/PN10=0.0 -! -!ALKL/RO2T=+TPK%CF16*K172*<RO215> - PJAC(:,19,85)=+TPK%CF16*TPK%K172(:)*TPK%RO215(:) -! -!ALKL/RO21=0.0 -! -!ALKL/RO25=+TPK%CF3*K122*<NO> - PJAC(:,19,87)=+TPK%CF3*TPK%K122(:)*PCONC(:,1) -! -!ALKL/WC_O3=0.0 -! -!ALKL/WC_H2O2=0.0 -! -!ALKL/WC_NO=0.0 -! -!ALKL/WC_NO2=0.0 -! -!ALKL/WC_NO3=0.0 -! -!ALKL/WC_N2O5=0.0 -! -!ALKL/WC_HONO=0.0 -! -!ALKL/WC_HNO3=0.0 -! -!ALKL/WC_HNO4=0.0 -! -!ALKL/WC_NH3=0.0 -! -!ALKL/WC_OH=0.0 -! -!ALKL/WC_HO2=0.0 -! -!ALKL/WC_CO2=0.0 -! -!ALKL/WC_SO2=0.0 -! -!ALKL/WC_H2SO4=0.0 -! -!ALKL/WC_RO21=0.0 -! -!ALKL/WC_RO25=0.0 -! -!ALKL/WC_MEOH=0.0 -! -!ALKL/WC_ETOH=0.0 -! -!ALKL/WC_ALCH=0.0 -! -!ALKL/WC_HCHO=0.0 -! -!ALKL/WC_ALD2=0.0 -! -!ALKL/WC_GLY=0.0 -! -!ALKL/WC_MGLY=0.0 -! -!ALKL/WC_KETL=0.0 -! -!ALKL/WC_ORA1=0.0 -! -!ALKL/WC_ORA2=0.0 -! -!ALKL/WC_ACID=0.0 -! -!ALKL/WC_RP16=0.0 -! -!ALKL/WC_UR21=0.0 -! -!ALKL/WC_UR28=0.0 -! -!ALKL/WC_ACID2=0.0 -! -!ALKL/WC_ASO3=0.0 -! -!ALKL/WC_ASO4=0.0 -! -!ALKL/WC_ASO5=0.0 -! -!ALKL/WC_AHSO5=0.0 -! -!ALKL/WC_AHMS=0.0 -! -!ALKL/WR_O3=0.0 -! -!ALKL/WR_H2O2=0.0 -! -!ALKL/WR_NO=0.0 -! -!ALKL/WR_NO2=0.0 -! -!ALKL/WR_NO3=0.0 -! -!ALKL/WR_N2O5=0.0 -! -!ALKL/WR_HONO=0.0 -! -!ALKL/WR_HNO3=0.0 -! -!ALKL/WR_HNO4=0.0 -! -!ALKL/WR_NH3=0.0 -! -!ALKL/WR_OH=0.0 -! -!ALKL/WR_HO2=0.0 -! -!ALKL/WR_CO2=0.0 -! -!ALKL/WR_SO2=0.0 -! -!ALKL/WR_H2SO4=0.0 -! -!ALKL/WR_RO21=0.0 -! -!ALKL/WR_RO25=0.0 -! -!ALKL/WR_MEOH=0.0 -! -!ALKL/WR_ETOH=0.0 -! -!ALKL/WR_ALCH=0.0 -! -!ALKL/WR_HCHO=0.0 -! -!ALKL/WR_ALD2=0.0 -! -!ALKL/WR_GLY=0.0 -! -!ALKL/WR_MGLY=0.0 -! -!ALKL/WR_KETL=0.0 -! -!ALKL/WR_ORA1=0.0 -! -!ALKL/WR_ORA2=0.0 -! -!ALKL/WR_ACID=0.0 -! -!ALKL/WR_RP16=0.0 -! -!ALKL/WR_UR21=0.0 -! -!ALKL/WR_UR28=0.0 -! -!ALKL/WR_ACID2=0.0 -! -!ALKL/WR_ASO3=0.0 -! -!ALKL/WR_ASO4=0.0 -! -!ALKL/WR_ASO5=0.0 -! -!ALKL/WR_AHSO5=0.0 -! -!ALKL/WR_AHMS=0.0 -! -!ALKM/NO=0.0 -! -!ALKM/NO2=0.0 -! -!ALKM/O3=+0.1*K076*<OLEH> - PJAC(:,20,3)=+0.1*TPK%K076(:)*PCONC(:,18) -! -!ALKM/HONO=0.0 -! -!ALKM/HNO3=0.0 -! -!ALKM/HNO4=0.0 -! -!ALKM/N2O5=0.0 -! -!ALKM/NO3=0.0 -! -!ALKM/NH3=0.0 -! -!ALKM/HO2=0.0 -! -!ALKM/CO=0.0 -! -!ALKM/H2O2=0.0 -! -!ALKM/SO2=0.0 -! -!ALKM/H2SO4=0.0 -! -!ALKM/OH=-K078*<ALKM> - PJAC(:,20,15)=-TPK%K078(:)*PCONC(:,20) -! -!ALKM/ETHE=0.0 -! -!ALKM/OLEL=0.0 -! -!ALKM/OLEH=+0.1*K076*<O3>+0.5*K077*<O> - PJAC(:,20,18)=+0.1*TPK%K076(:)*PCONC(:,3)+0.5*TPK%K077(:)*TPK%O(:) -! -!ALKM/ALKL=0.0 -! -!ALKM/ALKM=-K078*<OH> - PJAC(:,20,20)=-TPK%K078(:)*PCONC(:,15) -! -!ALKM/ALKH=0.0 -! -!ALKM/AROH=0.0 -! -!ALKM/AROL=0.0 -! -!ALKM/AROO=0.0 -! -!ALKM/ARAL=0.0 -! -!ALKM/ARAC=0.0 -! -!ALKM/PAH=0.0 -! -!ALKM/HCHO=0.0 -! -!ALKM/ALD2=0.0 -! -!ALKM/KETL=0.0 -! -!ALKM/KETH=0.0 -! -!ALKM/MEOH=0.0 -! -!ALKM/ETOH=0.0 -! -!ALKM/ALCH=0.0 -! -!ALKM/ISOP=0.0 -! -!ALKM/BIOL=0.0 -! -!ALKM/BIOH=0.0 -! -!ALKM/MTBE=0.0 -! -!ALKM/MVK=0.0 -! -!ALKM/MCR=0.0 -! -!ALKM/MGLY=0.0 -! -!ALKM/GLY=0.0 -! -!ALKM/ORA1=0.0 -! -!ALKM/ORA2=0.0 -! -!ALKM/ACID=0.0 -! -!ALKM/UR28=0.0 -! -!ALKM/UR21=0.0 -! -!ALKM/URG2=0.0 -! -!ALKM/UR26=0.0 -! -!ALKM/RPG2=0.0 -! -!ALKM/RP18=0.0 -! -!ALKM/RPG3=0.0 -! -!ALKM/URG4=0.0 -! -!ALKM/UR8=0.0 -! -!ALKM/UR17=0.0 -! -!ALKM/UR7=0.0 -! -!ALKM/RPR3=0.0 -! -!ALKM/URG6=0.0 -! -!ALKM/UR22=0.0 -! -!ALKM/URG7=0.0 -! -!ALKM/RPR4=0.0 -! -!ALKM/RPR7=0.0 -! -!ALKM/RPG7=0.0 -! -!ALKM/URG8=0.0 -! -!ALKM/UR19=0.0 -! -!ALKM/URG9=0.0 -! -!ALKM/AP7=0.0 -! -!ALKM/URG10=0.0 -! -!ALKM/RPR1=0.0 -! -!ALKM/RPR5=0.0 -! -!ALKM/RPR8=0.0 -! -!ALKM/RP10=0.0 -! -!ALKM/RP11=0.0 -! -!ALKM/RP16=0.0 -! -!ALKM/RPRL=0.0 -! -!ALKM/APAN=0.0 -! -!ALKM/PAN1=0.0 -! -!ALKM/PAN2=0.0 -! -!ALKM/PAN3=0.0 -! -!ALKM/PAN4=0.0 -! -!ALKM/PAN6=0.0 -! -!ALKM/PAN7=0.0 -! -!ALKM/PAN8=0.0 -! -!ALKM/PN10=0.0 -! -!ALKM/RO2T=0.0 -! -!ALKM/RO21=0.0 -! -!ALKM/RO25=0.0 -! -!ALKM/WC_O3=0.0 -! -!ALKM/WC_H2O2=0.0 -! -!ALKM/WC_NO=0.0 -! -!ALKM/WC_NO2=0.0 -! -!ALKM/WC_NO3=0.0 -! -!ALKM/WC_N2O5=0.0 -! -!ALKM/WC_HONO=0.0 -! -!ALKM/WC_HNO3=0.0 -! -!ALKM/WC_HNO4=0.0 -! -!ALKM/WC_NH3=0.0 -! -!ALKM/WC_OH=0.0 -! -!ALKM/WC_HO2=0.0 -! -!ALKM/WC_CO2=0.0 -! -!ALKM/WC_SO2=0.0 -! -!ALKM/WC_H2SO4=0.0 -! -!ALKM/WC_RO21=0.0 -! -!ALKM/WC_RO25=0.0 -! -!ALKM/WC_MEOH=0.0 -! -!ALKM/WC_ETOH=0.0 -! -!ALKM/WC_ALCH=0.0 -! -!ALKM/WC_HCHO=0.0 -! -!ALKM/WC_ALD2=0.0 -! -!ALKM/WC_GLY=0.0 -! -!ALKM/WC_MGLY=0.0 -! -!ALKM/WC_KETL=0.0 -! -!ALKM/WC_ORA1=0.0 -! -!ALKM/WC_ORA2=0.0 -! -!ALKM/WC_ACID=0.0 -! -!ALKM/WC_RP16=0.0 -! -!ALKM/WC_UR21=0.0 -! -!ALKM/WC_UR28=0.0 -! -!ALKM/WC_ACID2=0.0 -! -!ALKM/WC_ASO3=0.0 -! -!ALKM/WC_ASO4=0.0 -! -!ALKM/WC_ASO5=0.0 -! -!ALKM/WC_AHSO5=0.0 -! -!ALKM/WC_AHMS=0.0 -! -!ALKM/WR_O3=0.0 -! -!ALKM/WR_H2O2=0.0 -! -!ALKM/WR_NO=0.0 -! -!ALKM/WR_NO2=0.0 -! -!ALKM/WR_NO3=0.0 -! -!ALKM/WR_N2O5=0.0 -! -!ALKM/WR_HONO=0.0 -! -!ALKM/WR_HNO3=0.0 -! -!ALKM/WR_HNO4=0.0 -! -!ALKM/WR_NH3=0.0 -! -!ALKM/WR_OH=0.0 -! -!ALKM/WR_HO2=0.0 -! -!ALKM/WR_CO2=0.0 -! -!ALKM/WR_SO2=0.0 -! -!ALKM/WR_H2SO4=0.0 -! -!ALKM/WR_RO21=0.0 -! -!ALKM/WR_RO25=0.0 -! -!ALKM/WR_MEOH=0.0 -! -!ALKM/WR_ETOH=0.0 -! -!ALKM/WR_ALCH=0.0 -! -!ALKM/WR_HCHO=0.0 -! -!ALKM/WR_ALD2=0.0 -! -!ALKM/WR_GLY=0.0 -! -!ALKM/WR_MGLY=0.0 -! -!ALKM/WR_KETL=0.0 -! -!ALKM/WR_ORA1=0.0 -! -!ALKM/WR_ORA2=0.0 -! -!ALKM/WR_ACID=0.0 -! -!ALKM/WR_RP16=0.0 -! -!ALKM/WR_UR21=0.0 -! -!ALKM/WR_UR28=0.0 -! -!ALKM/WR_ACID2=0.0 -! -!ALKM/WR_ASO3=0.0 -! -!ALKM/WR_ASO4=0.0 -! -!ALKM/WR_ASO5=0.0 -! -!ALKM/WR_AHSO5=0.0 -! -!ALKM/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ3 -! -SUBROUTINE SUBJ4 -! -!Indices 21 a 25 -! -! -!ALKH/NO=0.0 -! -!ALKH/NO2=0.0 -! -!ALKH/O3=0.0 -! -!ALKH/HONO=0.0 -! -!ALKH/HNO3=0.0 -! -!ALKH/HNO4=0.0 -! -!ALKH/N2O5=0.0 -! -!ALKH/NO3=0.0 -! -!ALKH/NH3=0.0 -! -!ALKH/HO2=0.0 -! -!ALKH/CO=0.0 -! -!ALKH/H2O2=0.0 -! -!ALKH/SO2=0.0 -! -!ALKH/H2SO4=0.0 -! -!ALKH/OH=-K093*<ALKH> - PJAC(:,21,15)=-TPK%K093(:)*PCONC(:,21) -! -!ALKH/ETHE=0.0 -! -!ALKH/OLEL=0.0 -! -!ALKH/OLEH=0.0 -! -!ALKH/ALKL=0.0 -! -!ALKH/ALKM=0.0 -! -!ALKH/ALKH=-K093*<OH> - PJAC(:,21,21)=-TPK%K093(:)*PCONC(:,15) -! -!ALKH/AROH=0.0 -! -!ALKH/AROL=0.0 -! -!ALKH/AROO=0.0 -! -!ALKH/ARAL=0.0 -! -!ALKH/ARAC=0.0 -! -!ALKH/PAH=0.0 -! -!ALKH/HCHO=0.0 -! -!ALKH/ALD2=0.0 -! -!ALKH/KETL=0.0 -! -!ALKH/KETH=0.0 -! -!ALKH/MEOH=0.0 -! -!ALKH/ETOH=0.0 -! -!ALKH/ALCH=0.0 -! -!ALKH/ISOP=0.0 -! -!ALKH/BIOL=0.0 -! -!ALKH/BIOH=0.0 -! -!ALKH/MTBE=0.0 -! -!ALKH/MVK=0.0 -! -!ALKH/MCR=0.0 -! -!ALKH/MGLY=0.0 -! -!ALKH/GLY=0.0 -! -!ALKH/ORA1=0.0 -! -!ALKH/ORA2=0.0 -! -!ALKH/ACID=0.0 -! -!ALKH/UR28=0.0 -! -!ALKH/UR21=0.0 -! -!ALKH/URG2=0.0 -! -!ALKH/UR26=0.0 -! -!ALKH/RPG2=0.0 -! -!ALKH/RP18=0.0 -! -!ALKH/RPG3=0.0 -! -!ALKH/URG4=0.0 -! -!ALKH/UR8=0.0 -! -!ALKH/UR17=0.0 -! -!ALKH/UR7=0.0 -! -!ALKH/RPR3=0.0 -! -!ALKH/URG6=0.0 -! -!ALKH/UR22=0.0 -! -!ALKH/URG7=0.0 -! -!ALKH/RPR4=0.0 -! -!ALKH/RPR7=0.0 -! -!ALKH/RPG7=0.0 -! -!ALKH/URG8=0.0 -! -!ALKH/UR19=0.0 -! -!ALKH/URG9=0.0 -! -!ALKH/AP7=0.0 -! -!ALKH/URG10=0.0 -! -!ALKH/RPR1=0.0 -! -!ALKH/RPR5=0.0 -! -!ALKH/RPR8=0.0 -! -!ALKH/RP10=0.0 -! -!ALKH/RP11=0.0 -! -!ALKH/RP16=0.0 -! -!ALKH/RPRL=0.0 -! -!ALKH/APAN=0.0 -! -!ALKH/PAN1=0.0 -! -!ALKH/PAN2=0.0 -! -!ALKH/PAN3=0.0 -! -!ALKH/PAN4=0.0 -! -!ALKH/PAN6=0.0 -! -!ALKH/PAN7=0.0 -! -!ALKH/PAN8=0.0 -! -!ALKH/PN10=0.0 -! -!ALKH/RO2T=0.0 -! -!ALKH/RO21=0.0 -! -!ALKH/RO25=0.0 -! -!ALKH/WC_O3=0.0 -! -!ALKH/WC_H2O2=0.0 -! -!ALKH/WC_NO=0.0 -! -!ALKH/WC_NO2=0.0 -! -!ALKH/WC_NO3=0.0 -! -!ALKH/WC_N2O5=0.0 -! -!ALKH/WC_HONO=0.0 -! -!ALKH/WC_HNO3=0.0 -! -!ALKH/WC_HNO4=0.0 -! -!ALKH/WC_NH3=0.0 -! -!ALKH/WC_OH=0.0 -! -!ALKH/WC_HO2=0.0 -! -!ALKH/WC_CO2=0.0 -! -!ALKH/WC_SO2=0.0 -! -!ALKH/WC_H2SO4=0.0 -! -!ALKH/WC_RO21=0.0 -! -!ALKH/WC_RO25=0.0 -! -!ALKH/WC_MEOH=0.0 -! -!ALKH/WC_ETOH=0.0 -! -!ALKH/WC_ALCH=0.0 -! -!ALKH/WC_HCHO=0.0 -! -!ALKH/WC_ALD2=0.0 -! -!ALKH/WC_GLY=0.0 -! -!ALKH/WC_MGLY=0.0 -! -!ALKH/WC_KETL=0.0 -! -!ALKH/WC_ORA1=0.0 -! -!ALKH/WC_ORA2=0.0 -! -!ALKH/WC_ACID=0.0 -! -!ALKH/WC_RP16=0.0 -! -!ALKH/WC_UR21=0.0 -! -!ALKH/WC_UR28=0.0 -! -!ALKH/WC_ACID2=0.0 -! -!ALKH/WC_ASO3=0.0 -! -!ALKH/WC_ASO4=0.0 -! -!ALKH/WC_ASO5=0.0 -! -!ALKH/WC_AHSO5=0.0 -! -!ALKH/WC_AHMS=0.0 -! -!ALKH/WR_O3=0.0 -! -!ALKH/WR_H2O2=0.0 -! -!ALKH/WR_NO=0.0 -! -!ALKH/WR_NO2=0.0 -! -!ALKH/WR_NO3=0.0 -! -!ALKH/WR_N2O5=0.0 -! -!ALKH/WR_HONO=0.0 -! -!ALKH/WR_HNO3=0.0 -! -!ALKH/WR_HNO4=0.0 -! -!ALKH/WR_NH3=0.0 -! -!ALKH/WR_OH=0.0 -! -!ALKH/WR_HO2=0.0 -! -!ALKH/WR_CO2=0.0 -! -!ALKH/WR_SO2=0.0 -! -!ALKH/WR_H2SO4=0.0 -! -!ALKH/WR_RO21=0.0 -! -!ALKH/WR_RO25=0.0 -! -!ALKH/WR_MEOH=0.0 -! -!ALKH/WR_ETOH=0.0 -! -!ALKH/WR_ALCH=0.0 -! -!ALKH/WR_HCHO=0.0 -! -!ALKH/WR_ALD2=0.0 -! -!ALKH/WR_GLY=0.0 -! -!ALKH/WR_MGLY=0.0 -! -!ALKH/WR_KETL=0.0 -! -!ALKH/WR_ORA1=0.0 -! -!ALKH/WR_ORA2=0.0 -! -!ALKH/WR_ACID=0.0 -! -!ALKH/WR_RP16=0.0 -! -!ALKH/WR_UR21=0.0 -! -!ALKH/WR_UR28=0.0 -! -!ALKH/WR_ACID2=0.0 -! -!ALKH/WR_ASO3=0.0 -! -!ALKH/WR_ASO4=0.0 -! -!ALKH/WR_ASO5=0.0 -! -!ALKH/WR_AHSO5=0.0 -! -!ALKH/WR_AHMS=0.0 -! -!AROH/NO=0.0 -! -!AROH/NO2=0.0 -! -!AROH/O3=0.0 -! -!AROH/HONO=0.0 -! -!AROH/HNO3=0.0 -! -!AROH/HNO4=0.0 -! -!AROH/N2O5=0.0 -! -!AROH/NO3=0.0 -! -!AROH/NH3=0.0 -! -!AROH/HO2=0.0 -! -!AROH/CO=0.0 -! -!AROH/H2O2=0.0 -! -!AROH/SO2=0.0 -! -!AROH/H2SO4=0.0 -! -!AROH/OH=-K080*<AROH> - PJAC(:,22,15)=-TPK%K080(:)*PCONC(:,22) -! -!AROH/ETHE=0.0 -! -!AROH/OLEL=0.0 -! -!AROH/OLEH=0.0 -! -!AROH/ALKL=0.0 -! -!AROH/ALKM=0.0 -! -!AROH/ALKH=0.0 -! -!AROH/AROH=-K080*<OH> - PJAC(:,22,22)=-TPK%K080(:)*PCONC(:,15) -! -!AROH/AROL=0.0 -! -!AROH/AROO=0.0 -! -!AROH/ARAL=0.0 -! -!AROH/ARAC=0.0 -! -!AROH/PAH=0.0 -! -!AROH/HCHO=0.0 -! -!AROH/ALD2=0.0 -! -!AROH/KETL=0.0 -! -!AROH/KETH=0.0 -! -!AROH/MEOH=0.0 -! -!AROH/ETOH=0.0 -! -!AROH/ALCH=0.0 -! -!AROH/ISOP=0.0 -! -!AROH/BIOL=0.0 -! -!AROH/BIOH=0.0 -! -!AROH/MTBE=0.0 -! -!AROH/MVK=0.0 -! -!AROH/MCR=0.0 -! -!AROH/MGLY=0.0 -! -!AROH/GLY=0.0 -! -!AROH/ORA1=0.0 -! -!AROH/ORA2=0.0 -! -!AROH/ACID=0.0 -! -!AROH/UR28=0.0 -! -!AROH/UR21=0.0 -! -!AROH/URG2=0.0 -! -!AROH/UR26=0.0 -! -!AROH/RPG2=0.0 -! -!AROH/RP18=0.0 -! -!AROH/RPG3=0.0 -! -!AROH/URG4=0.0 -! -!AROH/UR8=0.0 -! -!AROH/UR17=0.0 -! -!AROH/UR7=0.0 -! -!AROH/RPR3=0.0 -! -!AROH/URG6=0.0 -! -!AROH/UR22=0.0 -! -!AROH/URG7=0.0 -! -!AROH/RPR4=0.0 -! -!AROH/RPR7=0.0 -! -!AROH/RPG7=0.0 -! -!AROH/URG8=0.0 -! -!AROH/UR19=0.0 -! -!AROH/URG9=0.0 -! -!AROH/AP7=0.0 -! -!AROH/URG10=0.0 -! -!AROH/RPR1=0.0 -! -!AROH/RPR5=0.0 -! -!AROH/RPR8=0.0 -! -!AROH/RP10=0.0 -! -!AROH/RP11=0.0 -! -!AROH/RP16=0.0 -! -!AROH/RPRL=0.0 -! -!AROH/APAN=0.0 -! -!AROH/PAN1=0.0 -! -!AROH/PAN2=0.0 -! -!AROH/PAN3=0.0 -! -!AROH/PAN4=0.0 -! -!AROH/PAN6=0.0 -! -!AROH/PAN7=0.0 -! -!AROH/PAN8=0.0 -! -!AROH/PN10=0.0 -! -!AROH/RO2T=0.0 -! -!AROH/RO21=0.0 -! -!AROH/RO25=0.0 -! -!AROH/WC_O3=0.0 -! -!AROH/WC_H2O2=0.0 -! -!AROH/WC_NO=0.0 -! -!AROH/WC_NO2=0.0 -! -!AROH/WC_NO3=0.0 -! -!AROH/WC_N2O5=0.0 -! -!AROH/WC_HONO=0.0 -! -!AROH/WC_HNO3=0.0 -! -!AROH/WC_HNO4=0.0 -! -!AROH/WC_NH3=0.0 -! -!AROH/WC_OH=0.0 -! -!AROH/WC_HO2=0.0 -! -!AROH/WC_CO2=0.0 -! -!AROH/WC_SO2=0.0 -! -!AROH/WC_H2SO4=0.0 -! -!AROH/WC_RO21=0.0 -! -!AROH/WC_RO25=0.0 -! -!AROH/WC_MEOH=0.0 -! -!AROH/WC_ETOH=0.0 -! -!AROH/WC_ALCH=0.0 -! -!AROH/WC_HCHO=0.0 -! -!AROH/WC_ALD2=0.0 -! -!AROH/WC_GLY=0.0 -! -!AROH/WC_MGLY=0.0 -! -!AROH/WC_KETL=0.0 -! -!AROH/WC_ORA1=0.0 -! -!AROH/WC_ORA2=0.0 -! -!AROH/WC_ACID=0.0 -! -!AROH/WC_RP16=0.0 -! -!AROH/WC_UR21=0.0 -! -!AROH/WC_UR28=0.0 -! -!AROH/WC_ACID2=0.0 -! -!AROH/WC_ASO3=0.0 -! -!AROH/WC_ASO4=0.0 -! -!AROH/WC_ASO5=0.0 -! -!AROH/WC_AHSO5=0.0 -! -!AROH/WC_AHMS=0.0 -! -!AROH/WR_O3=0.0 -! -!AROH/WR_H2O2=0.0 -! -!AROH/WR_NO=0.0 -! -!AROH/WR_NO2=0.0 -! -!AROH/WR_NO3=0.0 -! -!AROH/WR_N2O5=0.0 -! -!AROH/WR_HONO=0.0 -! -!AROH/WR_HNO3=0.0 -! -!AROH/WR_HNO4=0.0 -! -!AROH/WR_NH3=0.0 -! -!AROH/WR_OH=0.0 -! -!AROH/WR_HO2=0.0 -! -!AROH/WR_CO2=0.0 -! -!AROH/WR_SO2=0.0 -! -!AROH/WR_H2SO4=0.0 -! -!AROH/WR_RO21=0.0 -! -!AROH/WR_RO25=0.0 -! -!AROH/WR_MEOH=0.0 -! -!AROH/WR_ETOH=0.0 -! -!AROH/WR_ALCH=0.0 -! -!AROH/WR_HCHO=0.0 -! -!AROH/WR_ALD2=0.0 -! -!AROH/WR_GLY=0.0 -! -!AROH/WR_MGLY=0.0 -! -!AROH/WR_KETL=0.0 -! -!AROH/WR_ORA1=0.0 -! -!AROH/WR_ORA2=0.0 -! -!AROH/WR_ACID=0.0 -! -!AROH/WR_RP16=0.0 -! -!AROH/WR_UR21=0.0 -! -!AROH/WR_UR28=0.0 -! -!AROH/WR_ACID2=0.0 -! -!AROH/WR_ASO3=0.0 -! -!AROH/WR_ASO4=0.0 -! -!AROH/WR_ASO5=0.0 -! -!AROH/WR_AHSO5=0.0 -! -!AROH/WR_AHMS=0.0 -! -!AROL/NO=0.0 -! -!AROL/NO2=0.0 -! -!AROL/O3=0.0 -! -!AROL/HONO=0.0 -! -!AROL/HNO3=0.0 -! -!AROL/HNO4=0.0 -! -!AROL/N2O5=0.0 -! -!AROL/NO3=0.0 -! -!AROL/NH3=0.0 -! -!AROL/HO2=0.0 -! -!AROL/CO=0.0 -! -!AROL/H2O2=0.0 -! -!AROL/SO2=0.0 -! -!AROL/H2SO4=0.0 -! -!AROL/OH=-K079*<AROL> - PJAC(:,23,15)=-TPK%K079(:)*PCONC(:,23) -! -!AROL/ETHE=0.0 -! -!AROL/OLEL=0.0 -! -!AROL/OLEH=0.0 -! -!AROL/ALKL=0.0 -! -!AROL/ALKM=0.0 -! -!AROL/ALKH=0.0 -! -!AROL/AROH=0.0 -! -!AROL/AROL=-K079*<OH> - PJAC(:,23,23)=-TPK%K079(:)*PCONC(:,15) -! -!AROL/AROO=0.0 -! -!AROL/ARAL=0.0 -! -!AROL/ARAC=0.0 -! -!AROL/PAH=0.0 -! -!AROL/HCHO=0.0 -! -!AROL/ALD2=0.0 -! -!AROL/KETL=0.0 -! -!AROL/KETH=0.0 -! -!AROL/MEOH=0.0 -! -!AROL/ETOH=0.0 -! -!AROL/ALCH=0.0 -! -!AROL/ISOP=0.0 -! -!AROL/BIOL=0.0 -! -!AROL/BIOH=0.0 -! -!AROL/MTBE=0.0 -! -!AROL/MVK=0.0 -! -!AROL/MCR=0.0 -! -!AROL/MGLY=0.0 -! -!AROL/GLY=0.0 -! -!AROL/ORA1=0.0 -! -!AROL/ORA2=0.0 -! -!AROL/ACID=0.0 -! -!AROL/UR28=0.0 -! -!AROL/UR21=0.0 -! -!AROL/URG2=0.0 -! -!AROL/UR26=0.0 -! -!AROL/RPG2=0.0 -! -!AROL/RP18=0.0 -! -!AROL/RPG3=0.0 -! -!AROL/URG4=0.0 -! -!AROL/UR8=0.0 -! -!AROL/UR17=0.0 -! -!AROL/UR7=0.0 -! -!AROL/RPR3=0.0 -! -!AROL/URG6=0.0 -! -!AROL/UR22=0.0 -! -!AROL/URG7=0.0 -! -!AROL/RPR4=0.0 -! -!AROL/RPR7=0.0 -! -!AROL/RPG7=0.0 -! -!AROL/URG8=0.0 -! -!AROL/UR19=0.0 -! -!AROL/URG9=0.0 -! -!AROL/AP7=0.0 -! -!AROL/URG10=0.0 -! -!AROL/RPR1=0.0 -! -!AROL/RPR5=0.0 -! -!AROL/RPR8=0.0 -! -!AROL/RP10=0.0 -! -!AROL/RP11=0.0 -! -!AROL/RP16=0.0 -! -!AROL/RPRL=0.0 -! -!AROL/APAN=0.0 -! -!AROL/PAN1=0.0 -! -!AROL/PAN2=0.0 -! -!AROL/PAN3=0.0 -! -!AROL/PAN4=0.0 -! -!AROL/PAN6=0.0 -! -!AROL/PAN7=0.0 -! -!AROL/PAN8=0.0 -! -!AROL/PN10=0.0 -! -!AROL/RO2T=0.0 -! -!AROL/RO21=0.0 -! -!AROL/RO25=0.0 -! -!AROL/WC_O3=0.0 -! -!AROL/WC_H2O2=0.0 -! -!AROL/WC_NO=0.0 -! -!AROL/WC_NO2=0.0 -! -!AROL/WC_NO3=0.0 -! -!AROL/WC_N2O5=0.0 -! -!AROL/WC_HONO=0.0 -! -!AROL/WC_HNO3=0.0 -! -!AROL/WC_HNO4=0.0 -! -!AROL/WC_NH3=0.0 -! -!AROL/WC_OH=0.0 -! -!AROL/WC_HO2=0.0 -! -!AROL/WC_CO2=0.0 -! -!AROL/WC_SO2=0.0 -! -!AROL/WC_H2SO4=0.0 -! -!AROL/WC_RO21=0.0 -! -!AROL/WC_RO25=0.0 -! -!AROL/WC_MEOH=0.0 -! -!AROL/WC_ETOH=0.0 -! -!AROL/WC_ALCH=0.0 -! -!AROL/WC_HCHO=0.0 -! -!AROL/WC_ALD2=0.0 -! -!AROL/WC_GLY=0.0 -! -!AROL/WC_MGLY=0.0 -! -!AROL/WC_KETL=0.0 -! -!AROL/WC_ORA1=0.0 -! -!AROL/WC_ORA2=0.0 -! -!AROL/WC_ACID=0.0 -! -!AROL/WC_RP16=0.0 -! -!AROL/WC_UR21=0.0 -! -!AROL/WC_UR28=0.0 -! -!AROL/WC_ACID2=0.0 -! -!AROL/WC_ASO3=0.0 -! -!AROL/WC_ASO4=0.0 -! -!AROL/WC_ASO5=0.0 -! -!AROL/WC_AHSO5=0.0 -! -!AROL/WC_AHMS=0.0 -! -!AROL/WR_O3=0.0 -! -!AROL/WR_H2O2=0.0 -! -!AROL/WR_NO=0.0 -! -!AROL/WR_NO2=0.0 -! -!AROL/WR_NO3=0.0 -! -!AROL/WR_N2O5=0.0 -! -!AROL/WR_HONO=0.0 -! -!AROL/WR_HNO3=0.0 -! -!AROL/WR_HNO4=0.0 -! -!AROL/WR_NH3=0.0 -! -!AROL/WR_OH=0.0 -! -!AROL/WR_HO2=0.0 -! -!AROL/WR_CO2=0.0 -! -!AROL/WR_SO2=0.0 -! -!AROL/WR_H2SO4=0.0 -! -!AROL/WR_RO21=0.0 -! -!AROL/WR_RO25=0.0 -! -!AROL/WR_MEOH=0.0 -! -!AROL/WR_ETOH=0.0 -! -!AROL/WR_ALCH=0.0 -! -!AROL/WR_HCHO=0.0 -! -!AROL/WR_ALD2=0.0 -! -!AROL/WR_GLY=0.0 -! -!AROL/WR_MGLY=0.0 -! -!AROL/WR_KETL=0.0 -! -!AROL/WR_ORA1=0.0 -! -!AROL/WR_ORA2=0.0 -! -!AROL/WR_ACID=0.0 -! -!AROL/WR_RP16=0.0 -! -!AROL/WR_UR21=0.0 -! -!AROL/WR_UR28=0.0 -! -!AROL/WR_ACID2=0.0 -! -!AROL/WR_ASO3=0.0 -! -!AROL/WR_ASO4=0.0 -! -!AROL/WR_ASO5=0.0 -! -!AROL/WR_AHSO5=0.0 -! -!AROL/WR_AHMS=0.0 -! -!AROO/NO=0.0 -! -!AROO/NO2=0.0 -! -!AROO/O3=0.0 -! -!AROO/HONO=0.0 -! -!AROO/HNO3=0.0 -! -!AROO/HNO4=0.0 -! -!AROO/N2O5=0.0 -! -!AROO/NO3=-K072*<AROO> - PJAC(:,24,8)=-TPK%K072(:)*PCONC(:,24) -! -!AROO/NH3=0.0 -! -!AROO/HO2=0.0 -! -!AROO/CO=0.0 -! -!AROO/H2O2=0.0 -! -!AROO/SO2=0.0 -! -!AROO/H2SO4=0.0 -! -!AROO/OH=+0.16*K073*<AROO>-K073*<AROO>+0.16*K079*<AROL>+0.16*K080*<AROH> - PJAC(:,24,15)=+0.16*TPK%K073(:)*PCONC(:,24)-TPK%K073(:)*PCONC(:,24)+0.16*TPK%K& -&079(:)*PCONC(:,23)+0.16*TPK%K080(:)*PCONC(:,22) -! -!AROO/ETHE=0.0 -! -!AROO/OLEL=0.0 -! -!AROO/OLEH=0.0 -! -!AROO/ALKL=0.0 -! -!AROO/ALKM=0.0 -! -!AROO/ALKH=0.0 -! -!AROO/AROH=+0.16*K080*<OH> - PJAC(:,24,22)=+0.16*TPK%K080(:)*PCONC(:,15) -! -!AROO/AROL=+0.16*K079*<OH> - PJAC(:,24,23)=+0.16*TPK%K079(:)*PCONC(:,15) -! -!AROO/AROO=-K072*<NO3>+0.16*K073*<OH>-K073*<OH> - PJAC(:,24,24)=-TPK%K072(:)*PCONC(:,8)+0.16*TPK%K073(:)*PCONC(:,15)-TPK%K073(:)& -&*PCONC(:,15) -! -!AROO/ARAL=0.0 -! -!AROO/ARAC=0.0 -! -!AROO/PAH=0.0 -! -!AROO/HCHO=0.0 -! -!AROO/ALD2=0.0 -! -!AROO/KETL=0.0 -! -!AROO/KETH=0.0 -! -!AROO/MEOH=0.0 -! -!AROO/ETOH=0.0 -! -!AROO/ALCH=0.0 -! -!AROO/ISOP=0.0 -! -!AROO/BIOL=0.0 -! -!AROO/BIOH=0.0 -! -!AROO/MTBE=0.0 -! -!AROO/MVK=0.0 -! -!AROO/MCR=0.0 -! -!AROO/MGLY=0.0 -! -!AROO/GLY=0.0 -! -!AROO/ORA1=0.0 -! -!AROO/ORA2=0.0 -! -!AROO/ACID=0.0 -! -!AROO/UR28=0.0 -! -!AROO/UR21=0.0 -! -!AROO/URG2=0.0 -! -!AROO/UR26=0.0 -! -!AROO/RPG2=0.0 -! -!AROO/RP18=0.0 -! -!AROO/RPG3=0.0 -! -!AROO/URG4=0.0 -! -!AROO/UR8=0.0 -! -!AROO/UR17=0.0 -! -!AROO/UR7=0.0 -! -!AROO/RPR3=0.0 -! -!AROO/URG6=0.0 -! -!AROO/UR22=0.0 -! -!AROO/URG7=0.0 -! -!AROO/RPR4=0.0 -! -!AROO/RPR7=0.0 -! -!AROO/RPG7=0.0 -! -!AROO/URG8=0.0 -! -!AROO/UR19=0.0 -! -!AROO/URG9=0.0 -! -!AROO/AP7=0.0 -! -!AROO/URG10=0.0 -! -!AROO/RPR1=0.0 -! -!AROO/RPR5=0.0 -! -!AROO/RPR8=0.0 -! -!AROO/RP10=0.0 -! -!AROO/RP11=0.0 -! -!AROO/RP16=0.0 -! -!AROO/RPRL=0.0 -! -!AROO/APAN=0.0 -! -!AROO/PAN1=0.0 -! -!AROO/PAN2=0.0 -! -!AROO/PAN3=0.0 -! -!AROO/PAN4=0.0 -! -!AROO/PAN6=0.0 -! -!AROO/PAN7=0.0 -! -!AROO/PAN8=0.0 -! -!AROO/PN10=0.0 -! -!AROO/RO2T=0.0 -! -!AROO/RO21=0.0 -! -!AROO/RO25=0.0 -! -!AROO/WC_O3=0.0 -! -!AROO/WC_H2O2=0.0 -! -!AROO/WC_NO=0.0 -! -!AROO/WC_NO2=0.0 -! -!AROO/WC_NO3=0.0 -! -!AROO/WC_N2O5=0.0 -! -!AROO/WC_HONO=0.0 -! -!AROO/WC_HNO3=0.0 -! -!AROO/WC_HNO4=0.0 -! -!AROO/WC_NH3=0.0 -! -!AROO/WC_OH=0.0 -! -!AROO/WC_HO2=0.0 -! -!AROO/WC_CO2=0.0 -! -!AROO/WC_SO2=0.0 -! -!AROO/WC_H2SO4=0.0 -! -!AROO/WC_RO21=0.0 -! -!AROO/WC_RO25=0.0 -! -!AROO/WC_MEOH=0.0 -! -!AROO/WC_ETOH=0.0 -! -!AROO/WC_ALCH=0.0 -! -!AROO/WC_HCHO=0.0 -! -!AROO/WC_ALD2=0.0 -! -!AROO/WC_GLY=0.0 -! -!AROO/WC_MGLY=0.0 -! -!AROO/WC_KETL=0.0 -! -!AROO/WC_ORA1=0.0 -! -!AROO/WC_ORA2=0.0 -! -!AROO/WC_ACID=0.0 -! -!AROO/WC_RP16=0.0 -! -!AROO/WC_UR21=0.0 -! -!AROO/WC_UR28=0.0 -! -!AROO/WC_ACID2=0.0 -! -!AROO/WC_ASO3=0.0 -! -!AROO/WC_ASO4=0.0 -! -!AROO/WC_ASO5=0.0 -! -!AROO/WC_AHSO5=0.0 -! -!AROO/WC_AHMS=0.0 -! -!AROO/WR_O3=0.0 -! -!AROO/WR_H2O2=0.0 -! -!AROO/WR_NO=0.0 -! -!AROO/WR_NO2=0.0 -! -!AROO/WR_NO3=0.0 -! -!AROO/WR_N2O5=0.0 -! -!AROO/WR_HONO=0.0 -! -!AROO/WR_HNO3=0.0 -! -!AROO/WR_HNO4=0.0 -! -!AROO/WR_NH3=0.0 -! -!AROO/WR_OH=0.0 -! -!AROO/WR_HO2=0.0 -! -!AROO/WR_CO2=0.0 -! -!AROO/WR_SO2=0.0 -! -!AROO/WR_H2SO4=0.0 -! -!AROO/WR_RO21=0.0 -! -!AROO/WR_RO25=0.0 -! -!AROO/WR_MEOH=0.0 -! -!AROO/WR_ETOH=0.0 -! -!AROO/WR_ALCH=0.0 -! -!AROO/WR_HCHO=0.0 -! -!AROO/WR_ALD2=0.0 -! -!AROO/WR_GLY=0.0 -! -!AROO/WR_MGLY=0.0 -! -!AROO/WR_KETL=0.0 -! -!AROO/WR_ORA1=0.0 -! -!AROO/WR_ORA2=0.0 -! -!AROO/WR_ACID=0.0 -! -!AROO/WR_RP16=0.0 -! -!AROO/WR_UR21=0.0 -! -!AROO/WR_UR28=0.0 -! -!AROO/WR_ACID2=0.0 -! -!AROO/WR_ASO3=0.0 -! -!AROO/WR_ASO4=0.0 -! -!AROO/WR_ASO5=0.0 -! -!AROO/WR_AHSO5=0.0 -! -!AROO/WR_AHMS=0.0 -! -!ARAL/NO=+TPK%CF24*K189*<RO221> - PJAC(:,25,1)=+TPK%CF24*TPK%K189(:)*TPK%RO221(:) -! -!ARAL/NO2=0.0 -! -!ARAL/O3=0.0 -! -!ARAL/HONO=0.0 -! -!ARAL/HNO3=0.0 -! -!ARAL/HNO4=0.0 -! -!ARAL/N2O5=0.0 -! -!ARAL/NO3=-K081*<ARAL> - PJAC(:,25,8)=-TPK%K081(:)*PCONC(:,25) -! -!ARAL/NH3=0.0 -! -!ARAL/HO2=+K191*<RO221> - PJAC(:,25,10)=+TPK%K191(:)*TPK%RO221(:) -! -!ARAL/CO=0.0 -! -!ARAL/H2O2=0.0 -! -!ARAL/SO2=0.0 -! -!ARAL/H2SO4=0.0 -! -!ARAL/OH=-K082*<ARAL> - PJAC(:,25,15)=-TPK%K082(:)*PCONC(:,25) -! -!ARAL/ETHE=0.0 -! -!ARAL/OLEL=0.0 -! -!ARAL/OLEH=0.0 -! -!ARAL/ALKL=0.0 -! -!ARAL/ALKM=0.0 -! -!ARAL/ALKH=0.0 -! -!ARAL/AROH=0.0 -! -!ARAL/AROL=0.0 -! -!ARAL/AROO=0.0 -! -!ARAL/ARAL=-K081*<NO3>-K082*<OH> - PJAC(:,25,25)=-TPK%K081(:)*PCONC(:,8)-TPK%K082(:)*PCONC(:,15) -! -!ARAL/ARAC=0.0 -! -!ARAL/PAH=0.0 -! -!ARAL/HCHO=0.0 -! -!ARAL/ALD2=0.0 -! -!ARAL/KETL=0.0 -! -!ARAL/KETH=0.0 -! -!ARAL/MEOH=0.0 -! -!ARAL/ETOH=0.0 -! -!ARAL/ALCH=0.0 -! -!ARAL/ISOP=0.0 -! -!ARAL/BIOL=0.0 -! -!ARAL/BIOH=0.0 -! -!ARAL/MTBE=0.0 -! -!ARAL/MVK=0.0 -! -!ARAL/MCR=0.0 -! -!ARAL/MGLY=0.0 -! -!ARAL/GLY=0.0 -! -!ARAL/ORA1=0.0 -! -!ARAL/ORA2=0.0 -! -!ARAL/ACID=0.0 -! -!ARAL/UR28=0.0 -! -!ARAL/UR21=0.0 -! -!ARAL/URG2=0.0 -! -!ARAL/UR26=0.0 -! -!ARAL/RPG2=0.0 -! -!ARAL/RP18=0.0 -! -!ARAL/RPG3=0.0 -! -!ARAL/URG4=0.0 -! -!ARAL/UR8=0.0 -! -!ARAL/UR17=0.0 -! -!ARAL/UR7=0.0 -! -!ARAL/RPR3=0.0 -! -!ARAL/URG6=0.0 -! -!ARAL/UR22=0.0 -! -!ARAL/URG7=0.0 -! -!ARAL/RPR4=0.0 -! -!ARAL/RPR7=0.0 -! -!ARAL/RPG7=0.0 -! -!ARAL/URG8=0.0 -! -!ARAL/UR19=0.0 -! -!ARAL/URG9=0.0 -! -!ARAL/AP7=0.0 -! -!ARAL/URG10=0.0 -! -!ARAL/RPR1=0.0 -! -!ARAL/RPR5=0.0 -! -!ARAL/RPR8=0.0 -! -!ARAL/RP10=0.0 -! -!ARAL/RP11=0.0 -! -!ARAL/RP16=0.0 -! -!ARAL/RPRL=0.0 -! -!ARAL/APAN=0.0 -! -!ARAL/PAN1=0.0 -! -!ARAL/PAN2=0.0 -! -!ARAL/PAN3=0.0 -! -!ARAL/PAN4=0.0 -! -!ARAL/PAN6=0.0 -! -!ARAL/PAN7=0.0 -! -!ARAL/PAN8=0.0 -! -!ARAL/PN10=0.0 -! -!ARAL/RO2T=+K190*<RO221> - PJAC(:,25,85)=+TPK%K190(:)*TPK%RO221(:) -! -!ARAL/RO21=0.0 -! -!ARAL/RO25=0.0 -! -!ARAL/WC_O3=0.0 -! -!ARAL/WC_H2O2=0.0 -! -!ARAL/WC_NO=0.0 -! -!ARAL/WC_NO2=0.0 -! -!ARAL/WC_NO3=0.0 -! -!ARAL/WC_N2O5=0.0 -! -!ARAL/WC_HONO=0.0 -! -!ARAL/WC_HNO3=0.0 -! -!ARAL/WC_HNO4=0.0 -! -!ARAL/WC_NH3=0.0 -! -!ARAL/WC_OH=0.0 -! -!ARAL/WC_HO2=0.0 -! -!ARAL/WC_CO2=0.0 -! -!ARAL/WC_SO2=0.0 -! -!ARAL/WC_H2SO4=0.0 -! -!ARAL/WC_RO21=0.0 -! -!ARAL/WC_RO25=0.0 -! -!ARAL/WC_MEOH=0.0 -! -!ARAL/WC_ETOH=0.0 -! -!ARAL/WC_ALCH=0.0 -! -!ARAL/WC_HCHO=0.0 -! -!ARAL/WC_ALD2=0.0 -! -!ARAL/WC_GLY=0.0 -! -!ARAL/WC_MGLY=0.0 -! -!ARAL/WC_KETL=0.0 -! -!ARAL/WC_ORA1=0.0 -! -!ARAL/WC_ORA2=0.0 -! -!ARAL/WC_ACID=0.0 -! -!ARAL/WC_RP16=0.0 -! -!ARAL/WC_UR21=0.0 -! -!ARAL/WC_UR28=0.0 -! -!ARAL/WC_ACID2=0.0 -! -!ARAL/WC_ASO3=0.0 -! -!ARAL/WC_ASO4=0.0 -! -!ARAL/WC_ASO5=0.0 -! -!ARAL/WC_AHSO5=0.0 -! -!ARAL/WC_AHMS=0.0 -! -!ARAL/WR_O3=0.0 -! -!ARAL/WR_H2O2=0.0 -! -!ARAL/WR_NO=0.0 -! -!ARAL/WR_NO2=0.0 -! -!ARAL/WR_NO3=0.0 -! -!ARAL/WR_N2O5=0.0 -! -!ARAL/WR_HONO=0.0 -! -!ARAL/WR_HNO3=0.0 -! -!ARAL/WR_HNO4=0.0 -! -!ARAL/WR_NH3=0.0 -! -!ARAL/WR_OH=0.0 -! -!ARAL/WR_HO2=0.0 -! -!ARAL/WR_CO2=0.0 -! -!ARAL/WR_SO2=0.0 -! -!ARAL/WR_H2SO4=0.0 -! -!ARAL/WR_RO21=0.0 -! -!ARAL/WR_RO25=0.0 -! -!ARAL/WR_MEOH=0.0 -! -!ARAL/WR_ETOH=0.0 -! -!ARAL/WR_ALCH=0.0 -! -!ARAL/WR_HCHO=0.0 -! -!ARAL/WR_ALD2=0.0 -! -!ARAL/WR_GLY=0.0 -! -!ARAL/WR_MGLY=0.0 -! -!ARAL/WR_KETL=0.0 -! -!ARAL/WR_ORA1=0.0 -! -!ARAL/WR_ORA2=0.0 -! -!ARAL/WR_ACID=0.0 -! -!ARAL/WR_RP16=0.0 -! -!ARAL/WR_UR21=0.0 -! -!ARAL/WR_UR28=0.0 -! -!ARAL/WR_ACID2=0.0 -! -!ARAL/WR_ASO3=0.0 -! -!ARAL/WR_ASO4=0.0 -! -!ARAL/WR_ASO5=0.0 -! -!ARAL/WR_AHSO5=0.0 -! -!ARAL/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ4 -! -SUBROUTINE SUBJ5 -! -!Indices 26 a 30 -! -! -!ARAC/NO=0.0 -! -!ARAC/NO2=0.0 -! -!ARAC/O3=0.0 -! -!ARAC/HONO=0.0 -! -!ARAC/HNO3=0.0 -! -!ARAC/HNO4=0.0 -! -!ARAC/N2O5=0.0 -! -!ARAC/NO3=+K081*<ARAL> - PJAC(:,26,8)=+TPK%K081(:)*PCONC(:,25) -! -!ARAC/NH3=0.0 -! -!ARAC/HO2=0.0 -! -!ARAC/CO=0.0 -! -!ARAC/H2O2=0.0 -! -!ARAC/SO2=0.0 -! -!ARAC/H2SO4=0.0 -! -!ARAC/OH=+TPK%CF39*K082*<ARAL>-K083*<ARAC> - PJAC(:,26,15)=+TPK%CF39*TPK%K082(:)*PCONC(:,25)-TPK%K083(:)*PCONC(:,26) -! -!ARAC/ETHE=0.0 -! -!ARAC/OLEL=0.0 -! -!ARAC/OLEH=0.0 -! -!ARAC/ALKL=0.0 -! -!ARAC/ALKM=0.0 -! -!ARAC/ALKH=0.0 -! -!ARAC/AROH=0.0 -! -!ARAC/AROL=0.0 -! -!ARAC/AROO=0.0 -! -!ARAC/ARAL=+K081*<NO3>+TPK%CF39*K082*<OH> - PJAC(:,26,25)=+TPK%K081(:)*PCONC(:,8)+TPK%CF39*TPK%K082(:)*PCONC(:,15) -! -!ARAC/ARAC=-K083*<OH> - PJAC(:,26,26)=-TPK%K083(:)*PCONC(:,15) -! -!ARAC/PAH=0.0 -! -!ARAC/HCHO=0.0 -! -!ARAC/ALD2=0.0 -! -!ARAC/KETL=0.0 -! -!ARAC/KETH=0.0 -! -!ARAC/MEOH=0.0 -! -!ARAC/ETOH=0.0 -! -!ARAC/ALCH=0.0 -! -!ARAC/ISOP=0.0 -! -!ARAC/BIOL=0.0 -! -!ARAC/BIOH=0.0 -! -!ARAC/MTBE=0.0 -! -!ARAC/MVK=0.0 -! -!ARAC/MCR=0.0 -! -!ARAC/MGLY=0.0 -! -!ARAC/GLY=0.0 -! -!ARAC/ORA1=0.0 -! -!ARAC/ORA2=0.0 -! -!ARAC/ACID=0.0 -! -!ARAC/UR28=0.0 -! -!ARAC/UR21=0.0 -! -!ARAC/URG2=0.0 -! -!ARAC/UR26=0.0 -! -!ARAC/RPG2=0.0 -! -!ARAC/RP18=0.0 -! -!ARAC/RPG3=0.0 -! -!ARAC/URG4=0.0 -! -!ARAC/UR8=0.0 -! -!ARAC/UR17=0.0 -! -!ARAC/UR7=0.0 -! -!ARAC/RPR3=0.0 -! -!ARAC/URG6=0.0 -! -!ARAC/UR22=0.0 -! -!ARAC/URG7=0.0 -! -!ARAC/RPR4=0.0 -! -!ARAC/RPR7=0.0 -! -!ARAC/RPG7=0.0 -! -!ARAC/URG8=0.0 -! -!ARAC/UR19=0.0 -! -!ARAC/URG9=0.0 -! -!ARAC/AP7=0.0 -! -!ARAC/URG10=0.0 -! -!ARAC/RPR1=0.0 -! -!ARAC/RPR5=0.0 -! -!ARAC/RPR8=0.0 -! -!ARAC/RP10=0.0 -! -!ARAC/RP11=0.0 -! -!ARAC/RP16=0.0 -! -!ARAC/RPRL=0.0 -! -!ARAC/APAN=0.0 -! -!ARAC/PAN1=0.0 -! -!ARAC/PAN2=0.0 -! -!ARAC/PAN3=0.0 -! -!ARAC/PAN4=0.0 -! -!ARAC/PAN6=0.0 -! -!ARAC/PAN7=0.0 -! -!ARAC/PAN8=0.0 -! -!ARAC/PN10=0.0 -! -!ARAC/RO2T=0.0 -! -!ARAC/RO21=0.0 -! -!ARAC/RO25=0.0 -! -!ARAC/WC_O3=0.0 -! -!ARAC/WC_H2O2=0.0 -! -!ARAC/WC_NO=0.0 -! -!ARAC/WC_NO2=0.0 -! -!ARAC/WC_NO3=0.0 -! -!ARAC/WC_N2O5=0.0 -! -!ARAC/WC_HONO=0.0 -! -!ARAC/WC_HNO3=0.0 -! -!ARAC/WC_HNO4=0.0 -! -!ARAC/WC_NH3=0.0 -! -!ARAC/WC_OH=0.0 -! -!ARAC/WC_HO2=0.0 -! -!ARAC/WC_CO2=0.0 -! -!ARAC/WC_SO2=0.0 -! -!ARAC/WC_H2SO4=0.0 -! -!ARAC/WC_RO21=0.0 -! -!ARAC/WC_RO25=0.0 -! -!ARAC/WC_MEOH=0.0 -! -!ARAC/WC_ETOH=0.0 -! -!ARAC/WC_ALCH=0.0 -! -!ARAC/WC_HCHO=0.0 -! -!ARAC/WC_ALD2=0.0 -! -!ARAC/WC_GLY=0.0 -! -!ARAC/WC_MGLY=0.0 -! -!ARAC/WC_KETL=0.0 -! -!ARAC/WC_ORA1=0.0 -! -!ARAC/WC_ORA2=0.0 -! -!ARAC/WC_ACID=0.0 -! -!ARAC/WC_RP16=0.0 -! -!ARAC/WC_UR21=0.0 -! -!ARAC/WC_UR28=0.0 -! -!ARAC/WC_ACID2=0.0 -! -!ARAC/WC_ASO3=0.0 -! -!ARAC/WC_ASO4=0.0 -! -!ARAC/WC_ASO5=0.0 -! -!ARAC/WC_AHSO5=0.0 -! -!ARAC/WC_AHMS=0.0 -! -!ARAC/WR_O3=0.0 -! -!ARAC/WR_H2O2=0.0 -! -!ARAC/WR_NO=0.0 -! -!ARAC/WR_NO2=0.0 -! -!ARAC/WR_NO3=0.0 -! -!ARAC/WR_N2O5=0.0 -! -!ARAC/WR_HONO=0.0 -! -!ARAC/WR_HNO3=0.0 -! -!ARAC/WR_HNO4=0.0 -! -!ARAC/WR_NH3=0.0 -! -!ARAC/WR_OH=0.0 -! -!ARAC/WR_HO2=0.0 -! -!ARAC/WR_CO2=0.0 -! -!ARAC/WR_SO2=0.0 -! -!ARAC/WR_H2SO4=0.0 -! -!ARAC/WR_RO21=0.0 -! -!ARAC/WR_RO25=0.0 -! -!ARAC/WR_MEOH=0.0 -! -!ARAC/WR_ETOH=0.0 -! -!ARAC/WR_ALCH=0.0 -! -!ARAC/WR_HCHO=0.0 -! -!ARAC/WR_ALD2=0.0 -! -!ARAC/WR_GLY=0.0 -! -!ARAC/WR_MGLY=0.0 -! -!ARAC/WR_KETL=0.0 -! -!ARAC/WR_ORA1=0.0 -! -!ARAC/WR_ORA2=0.0 -! -!ARAC/WR_ACID=0.0 -! -!ARAC/WR_RP16=0.0 -! -!ARAC/WR_UR21=0.0 -! -!ARAC/WR_UR28=0.0 -! -!ARAC/WR_ACID2=0.0 -! -!ARAC/WR_ASO3=0.0 -! -!ARAC/WR_ASO4=0.0 -! -!ARAC/WR_ASO5=0.0 -! -!ARAC/WR_AHSO5=0.0 -! -!ARAC/WR_AHMS=0.0 -! -!PAH/NO=0.0 -! -!PAH/NO2=0.0 -! -!PAH/O3=0.0 -! -!PAH/HONO=0.0 -! -!PAH/HNO3=0.0 -! -!PAH/HNO4=0.0 -! -!PAH/N2O5=0.0 -! -!PAH/NO3=0.0 -! -!PAH/NH3=0.0 -! -!PAH/HO2=0.0 -! -!PAH/CO=0.0 -! -!PAH/H2O2=0.0 -! -!PAH/SO2=0.0 -! -!PAH/H2SO4=0.0 -! -!PAH/OH=-K092*<PAH> - PJAC(:,27,15)=-TPK%K092(:)*PCONC(:,27) -! -!PAH/ETHE=0.0 -! -!PAH/OLEL=0.0 -! -!PAH/OLEH=0.0 -! -!PAH/ALKL=0.0 -! -!PAH/ALKM=0.0 -! -!PAH/ALKH=0.0 -! -!PAH/AROH=0.0 -! -!PAH/AROL=0.0 -! -!PAH/AROO=0.0 -! -!PAH/ARAL=0.0 -! -!PAH/ARAC=0.0 -! -!PAH/PAH=-K092*<OH> - PJAC(:,27,27)=-TPK%K092(:)*PCONC(:,15) -! -!PAH/HCHO=0.0 -! -!PAH/ALD2=0.0 -! -!PAH/KETL=0.0 -! -!PAH/KETH=0.0 -! -!PAH/MEOH=0.0 -! -!PAH/ETOH=0.0 -! -!PAH/ALCH=0.0 -! -!PAH/ISOP=0.0 -! -!PAH/BIOL=0.0 -! -!PAH/BIOH=0.0 -! -!PAH/MTBE=0.0 -! -!PAH/MVK=0.0 -! -!PAH/MCR=0.0 -! -!PAH/MGLY=0.0 -! -!PAH/GLY=0.0 -! -!PAH/ORA1=0.0 -! -!PAH/ORA2=0.0 -! -!PAH/ACID=0.0 -! -!PAH/UR28=0.0 -! -!PAH/UR21=0.0 -! -!PAH/URG2=0.0 -! -!PAH/UR26=0.0 -! -!PAH/RPG2=0.0 -! -!PAH/RP18=0.0 -! -!PAH/RPG3=0.0 -! -!PAH/URG4=0.0 -! -!PAH/UR8=0.0 -! -!PAH/UR17=0.0 -! -!PAH/UR7=0.0 -! -!PAH/RPR3=0.0 -! -!PAH/URG6=0.0 -! -!PAH/UR22=0.0 -! -!PAH/URG7=0.0 -! -!PAH/RPR4=0.0 -! -!PAH/RPR7=0.0 -! -!PAH/RPG7=0.0 -! -!PAH/URG8=0.0 -! -!PAH/UR19=0.0 -! -!PAH/URG9=0.0 -! -!PAH/AP7=0.0 -! -!PAH/URG10=0.0 -! -!PAH/RPR1=0.0 -! -!PAH/RPR5=0.0 -! -!PAH/RPR8=0.0 -! -!PAH/RP10=0.0 -! -!PAH/RP11=0.0 -! -!PAH/RP16=0.0 -! -!PAH/RPRL=0.0 -! -!PAH/APAN=0.0 -! -!PAH/PAN1=0.0 -! -!PAH/PAN2=0.0 -! -!PAH/PAN3=0.0 -! -!PAH/PAN4=0.0 -! -!PAH/PAN6=0.0 -! -!PAH/PAN7=0.0 -! -!PAH/PAN8=0.0 -! -!PAH/PN10=0.0 -! -!PAH/RO2T=0.0 -! -!PAH/RO21=0.0 -! -!PAH/RO25=0.0 -! -!PAH/WC_O3=0.0 -! -!PAH/WC_H2O2=0.0 -! -!PAH/WC_NO=0.0 -! -!PAH/WC_NO2=0.0 -! -!PAH/WC_NO3=0.0 -! -!PAH/WC_N2O5=0.0 -! -!PAH/WC_HONO=0.0 -! -!PAH/WC_HNO3=0.0 -! -!PAH/WC_HNO4=0.0 -! -!PAH/WC_NH3=0.0 -! -!PAH/WC_OH=0.0 -! -!PAH/WC_HO2=0.0 -! -!PAH/WC_CO2=0.0 -! -!PAH/WC_SO2=0.0 -! -!PAH/WC_H2SO4=0.0 -! -!PAH/WC_RO21=0.0 -! -!PAH/WC_RO25=0.0 -! -!PAH/WC_MEOH=0.0 -! -!PAH/WC_ETOH=0.0 -! -!PAH/WC_ALCH=0.0 -! -!PAH/WC_HCHO=0.0 -! -!PAH/WC_ALD2=0.0 -! -!PAH/WC_GLY=0.0 -! -!PAH/WC_MGLY=0.0 -! -!PAH/WC_KETL=0.0 -! -!PAH/WC_ORA1=0.0 -! -!PAH/WC_ORA2=0.0 -! -!PAH/WC_ACID=0.0 -! -!PAH/WC_RP16=0.0 -! -!PAH/WC_UR21=0.0 -! -!PAH/WC_UR28=0.0 -! -!PAH/WC_ACID2=0.0 -! -!PAH/WC_ASO3=0.0 -! -!PAH/WC_ASO4=0.0 -! -!PAH/WC_ASO5=0.0 -! -!PAH/WC_AHSO5=0.0 -! -!PAH/WC_AHMS=0.0 -! -!PAH/WR_O3=0.0 -! -!PAH/WR_H2O2=0.0 -! -!PAH/WR_NO=0.0 -! -!PAH/WR_NO2=0.0 -! -!PAH/WR_NO3=0.0 -! -!PAH/WR_N2O5=0.0 -! -!PAH/WR_HONO=0.0 -! -!PAH/WR_HNO3=0.0 -! -!PAH/WR_HNO4=0.0 -! -!PAH/WR_NH3=0.0 -! -!PAH/WR_OH=0.0 -! -!PAH/WR_HO2=0.0 -! -!PAH/WR_CO2=0.0 -! -!PAH/WR_SO2=0.0 -! -!PAH/WR_H2SO4=0.0 -! -!PAH/WR_RO21=0.0 -! -!PAH/WR_RO25=0.0 -! -!PAH/WR_MEOH=0.0 -! -!PAH/WR_ETOH=0.0 -! -!PAH/WR_ALCH=0.0 -! -!PAH/WR_HCHO=0.0 -! -!PAH/WR_ALD2=0.0 -! -!PAH/WR_GLY=0.0 -! -!PAH/WR_MGLY=0.0 -! -!PAH/WR_KETL=0.0 -! -!PAH/WR_ORA1=0.0 -! -!PAH/WR_ORA2=0.0 -! -!PAH/WR_ACID=0.0 -! -!PAH/WR_RP16=0.0 -! -!PAH/WR_UR21=0.0 -! -!PAH/WR_UR28=0.0 -! -!PAH/WR_ACID2=0.0 -! -!PAH/WR_ASO3=0.0 -! -!PAH/WR_ASO4=0.0 -! -!PAH/WR_ASO5=0.0 -! -!PAH/WR_AHSO5=0.0 -! -!PAH/WR_AHMS=0.0 -! -!HCHO/NO=+K110*<RO21>+K113*<RO22>+K116*<RO23>+K119*<RO24>+TPK%CF6*K150*<RO29>+K -!153*<RO210>+K156*<RO211>+K159*<RO212>+K162*<RO213>+TPK%CF10*K171*<RO215>+K183* -!<RO219>+K285*<RO249>+K291*<RO251>+K294*<RO252>+K297*<RO253> - PJAC(:,28,1)=+TPK%K110(:)*PCONC(:,86)+TPK%K113(:)*TPK%RO22(:)+TPK%K116(:)*TPK%& -&RO23(:)+TPK%K119(:)*TPK%RO24(:)+TPK%CF6*TPK%K150(:)*TPK%RO29(:)+TPK%K153(:)*TP& -&K%RO210(:)+TPK%K156(:)*TPK%RO211(:)+TPK%K159(:)*TPK%RO212(:)+TPK%K162(:)*TPK%R& -&O213(:)+TPK%CF10*TPK%K171(:)*TPK%RO215(:)+TPK%K183(:)*TPK%RO219(:)+TPK%K285(:)& -&*TPK%RO249(:)+TPK%K291(:)*TPK%RO251(:)+TPK%K294(:)*TPK%RO252(:)+TPK%K297(:)*TP& -&K%RO253(:) -! -!HCHO/NO2=0.0 -! -!HCHO/O3=+0.5*K051*<ETHE>+0.5*K056*<OLEL>+0.5*K066*<ISOP>+0.5*K076*<OLEH>+0.5*K -!281*<MVK>+0.5*K282*<MCR> - PJAC(:,28,3)=+0.5*TPK%K051(:)*PCONC(:,16)+0.5*TPK%K056(:)*PCONC(:,17)+0.5*TPK%& -&K066(:)*PCONC(:,35)+0.5*TPK%K076(:)*PCONC(:,18)+0.5*TPK%K281(:)*PCONC(:,39)+0.& -&5*TPK%K282(:)*PCONC(:,40) -! -!HCHO/HONO=0.0 -! -!HCHO/HNO3=0.0 -! -!HCHO/HNO4=0.0 -! -!HCHO/N2O5=0.0 -! -!HCHO/NO3=-K047*<HCHO> - PJAC(:,28,8)=-TPK%K047(:)*PCONC(:,28) -! -!HCHO/NH3=0.0 -! -!HCHO/HO2=+K112*<RO21>+K115*<RO22>+K118*<RO23>+K121*<RO24>+K152*<RO29>+K155*<RO -!210>+K158*<RO211>+K161*<RO212>+K164*<RO213>+TPK%CF14*K173*<RO215>+K185*<RO219> -!+K287*<RO249>+K292*<RO251>+K295*<RO252>+K298*<RO253> - PJAC(:,28,10)=+TPK%K112(:)*PCONC(:,86)+TPK%K115(:)*TPK%RO22(:)+TPK%K118(:)*TPK& -&%RO23(:)+TPK%K121(:)*TPK%RO24(:)+TPK%K152(:)*TPK%RO29(:)+TPK%K155(:)*TPK%RO210& -&(:)+TPK%K158(:)*TPK%RO211(:)+TPK%K161(:)*TPK%RO212(:)+TPK%K164(:)*TPK%RO213(:)& -&+TPK%CF14*TPK%K173(:)*TPK%RO215(:)+TPK%K185(:)*TPK%RO219(:)+TPK%K287(:)*TPK%RO& -&249(:)+TPK%K292(:)*TPK%RO251(:)+TPK%K295(:)*TPK%RO252(:)+TPK%K298(:)*TPK%RO253& -&(:) -! -!HCHO/CO=0.0 -! -!HCHO/H2O2=0.0 -! -!HCHO/SO2=0.0 -! -!HCHO/H2SO4=0.0 -! -!HCHO/OH=-K046*<HCHO>+K048*<MEOH> - PJAC(:,28,15)=-TPK%K046(:)*PCONC(:,28)+TPK%K048(:)*PCONC(:,32) -! -!HCHO/ETHE=+0.5*K051*<O3> - PJAC(:,28,16)=+0.5*TPK%K051(:)*PCONC(:,3) -! -!HCHO/OLEL=+0.5*K056*<O3> - PJAC(:,28,17)=+0.5*TPK%K056(:)*PCONC(:,3) -! -!HCHO/OLEH=+0.5*K076*<O3> - PJAC(:,28,18)=+0.5*TPK%K076(:)*PCONC(:,3) -! -!HCHO/ALKL=0.0 -! -!HCHO/ALKM=0.0 -! -!HCHO/ALKH=0.0 -! -!HCHO/AROH=0.0 -! -!HCHO/AROL=0.0 -! -!HCHO/AROO=0.0 -! -!HCHO/ARAL=0.0 -! -!HCHO/ARAC=0.0 -! -!HCHO/PAH=0.0 -! -!HCHO/HCHO=-K044-K045-K046*<OH>-K047*<NO3>-KTC21-KTR21 - PJAC(:,28,28)=-TPK%K044(:)-TPK%K045(:)-TPK%K046(:)*PCONC(:,15)-TPK%K047(:)*PCO& -&NC(:,8)-TPK%KTC21(:)-TPK%KTR21(:) -! -!HCHO/ALD2=0.0 -! -!HCHO/KETL=0.0 -! -!HCHO/KETH=0.0 -! -!HCHO/MEOH=+K048*<OH> - PJAC(:,28,32)=+TPK%K048(:)*PCONC(:,15) -! -!HCHO/ETOH=0.0 -! -!HCHO/ALCH=0.0 -! -!HCHO/ISOP=+0.5*K066*<O3> - PJAC(:,28,35)=+0.5*TPK%K066(:)*PCONC(:,3) -! -!HCHO/BIOL=0.0 -! -!HCHO/BIOH=0.0 -! -!HCHO/MTBE=0.0 -! -!HCHO/MVK=+0.5*K281*<O3> - PJAC(:,28,39)=+0.5*TPK%K281(:)*PCONC(:,3) -! -!HCHO/MCR=+0.5*K282*<O3> - PJAC(:,28,40)=+0.5*TPK%K282(:)*PCONC(:,3) -! -!HCHO/MGLY=0.0 -! -!HCHO/GLY=0.0 -! -!HCHO/ORA1=0.0 -! -!HCHO/ORA2=0.0 -! -!HCHO/ACID=0.0 -! -!HCHO/UR28=0.0 -! -!HCHO/UR21=0.0 -! -!HCHO/URG2=0.0 -! -!HCHO/UR26=0.0 -! -!HCHO/RPG2=0.0 -! -!HCHO/RP18=0.0 -! -!HCHO/RPG3=0.0 -! -!HCHO/URG4=0.0 -! -!HCHO/UR8=0.0 -! -!HCHO/UR17=0.0 -! -!HCHO/UR7=0.0 -! -!HCHO/RPR3=0.0 -! -!HCHO/URG6=0.0 -! -!HCHO/UR22=0.0 -! -!HCHO/URG7=0.0 -! -!HCHO/RPR4=0.0 -! -!HCHO/RPR7=0.0 -! -!HCHO/RPG7=0.0 -! -!HCHO/URG8=0.0 -! -!HCHO/UR19=0.0 -! -!HCHO/URG9=0.0 -! -!HCHO/AP7=0.0 -! -!HCHO/URG10=0.0 -! -!HCHO/RPR1=0.0 -! -!HCHO/RPR5=0.0 -! -!HCHO/RPR8=0.0 -! -!HCHO/RP10=0.0 -! -!HCHO/RP11=0.0 -! -!HCHO/RP16=0.0 -! -!HCHO/RPRL=0.0 -! -!HCHO/APAN=0.0 -! -!HCHO/PAN1=0.0 -! -!HCHO/PAN2=0.0 -! -!HCHO/PAN3=0.0 -! -!HCHO/PAN4=0.0 -! -!HCHO/PAN6=0.0 -! -!HCHO/PAN7=0.0 -! -!HCHO/PAN8=0.0 -! -!HCHO/PN10=0.0 -! -!HCHO/RO2T=+K111*<RO21>+K114*<RO22>+K117*<RO23>+K120*<RO24>+K151*<RO29>+K154*<R -!O210>+K157*<RO211>+K160*<RO212>+K163*<RO213>+TPK%CF14*K172*<RO215>+K184*<RO219 -!>+K286*<RO249>+K293*<RO251>+K296*<RO252>+K299*<RO253> - PJAC(:,28,85)=+TPK%K111(:)*PCONC(:,86)+TPK%K114(:)*TPK%RO22(:)+TPK%K117(:)*TPK& -&%RO23(:)+TPK%K120(:)*TPK%RO24(:)+TPK%K151(:)*TPK%RO29(:)+TPK%K154(:)*TPK%RO210& -&(:)+TPK%K157(:)*TPK%RO211(:)+TPK%K160(:)*TPK%RO212(:)+TPK%K163(:)*TPK%RO213(:)& -&+TPK%CF14*TPK%K172(:)*TPK%RO215(:)+TPK%K184(:)*TPK%RO219(:)+TPK%K286(:)*TPK%RO& -&249(:)+TPK%K293(:)*TPK%RO251(:)+TPK%K296(:)*TPK%RO252(:)+TPK%K299(:)*TPK%RO253& -&(:) -! -!HCHO/RO21=+K110*<NO>+K111*<RO2T>+K112*<HO2> - PJAC(:,28,86)=+TPK%K110(:)*PCONC(:,1)+TPK%K111(:)*PCONC(:,85)+TPK%K112(:)*PCON& -&C(:,10) -! -!HCHO/RO25=0.0 -! -!HCHO/WC_O3=0.0 -! -!HCHO/WC_H2O2=0.0 -! -!HCHO/WC_NO=0.0 -! -!HCHO/WC_NO2=0.0 -! -!HCHO/WC_NO3=0.0 -! -!HCHO/WC_N2O5=0.0 -! -!HCHO/WC_HONO=0.0 -! -!HCHO/WC_HNO3=0.0 -! -!HCHO/WC_HNO4=0.0 -! -!HCHO/WC_NH3=0.0 -! -!HCHO/WC_OH=0.0 -! -!HCHO/WC_HO2=0.0 -! -!HCHO/WC_CO2=0.0 -! -!HCHO/WC_SO2=0.0 -! -!HCHO/WC_H2SO4=0.0 -! -!HCHO/WC_RO21=0.0 -! -!HCHO/WC_RO25=0.0 -! -!HCHO/WC_MEOH=0.0 -! -!HCHO/WC_ETOH=0.0 -! -!HCHO/WC_ALCH=0.0 -! -!HCHO/WC_HCHO=+KTC52 - PJAC(:,28,108)=+TPK%KTC52(:) -! -!HCHO/WC_ALD2=0.0 -! -!HCHO/WC_GLY=0.0 -! -!HCHO/WC_MGLY=0.0 -! -!HCHO/WC_KETL=0.0 -! -!HCHO/WC_ORA1=0.0 -! -!HCHO/WC_ORA2=0.0 -! -!HCHO/WC_ACID=0.0 -! -!HCHO/WC_RP16=0.0 -! -!HCHO/WC_UR21=0.0 -! -!HCHO/WC_UR28=0.0 -! -!HCHO/WC_ACID2=0.0 -! -!HCHO/WC_ASO3=0.0 -! -!HCHO/WC_ASO4=0.0 -! -!HCHO/WC_ASO5=0.0 -! -!HCHO/WC_AHSO5=0.0 -! -!HCHO/WC_AHMS=0.0 -! -!HCHO/WR_O3=0.0 -! -!HCHO/WR_H2O2=0.0 -! -!HCHO/WR_NO=0.0 -! -!HCHO/WR_NO2=0.0 -! -!HCHO/WR_NO3=0.0 -! -!HCHO/WR_N2O5=0.0 -! -!HCHO/WR_HONO=0.0 -! -!HCHO/WR_HNO3=0.0 -! -!HCHO/WR_HNO4=0.0 -! -!HCHO/WR_NH3=0.0 -! -!HCHO/WR_OH=0.0 -! -!HCHO/WR_HO2=0.0 -! -!HCHO/WR_CO2=0.0 -! -!HCHO/WR_SO2=0.0 -! -!HCHO/WR_H2SO4=0.0 -! -!HCHO/WR_RO21=0.0 -! -!HCHO/WR_RO25=0.0 -! -!HCHO/WR_MEOH=0.0 -! -!HCHO/WR_ETOH=0.0 -! -!HCHO/WR_ALCH=0.0 -! -!HCHO/WR_HCHO=+KTR52 - PJAC(:,28,145)=+TPK%KTR52(:) -! -!HCHO/WR_ALD2=0.0 -! -!HCHO/WR_GLY=0.0 -! -!HCHO/WR_MGLY=0.0 -! -!HCHO/WR_KETL=0.0 -! -!HCHO/WR_ORA1=0.0 -! -!HCHO/WR_ORA2=0.0 -! -!HCHO/WR_ACID=0.0 -! -!HCHO/WR_RP16=0.0 -! -!HCHO/WR_UR21=0.0 -! -!HCHO/WR_UR28=0.0 -! -!HCHO/WR_ACID2=0.0 -! -!HCHO/WR_ASO3=0.0 -! -!HCHO/WR_ASO4=0.0 -! -!HCHO/WR_ASO5=0.0 -! -!HCHO/WR_AHSO5=0.0 -! -!HCHO/WR_AHMS=0.0 -! -!ALD2/NO=+K113*<RO22>+K116*<RO23>+TPK%CF4*K122*<RO25>+K144*<RO27>+TPK%CF9*K171* -!<RO215>+K174*<RO216> - PJAC(:,29,1)=+TPK%K113(:)*TPK%RO22(:)+TPK%K116(:)*TPK%RO23(:)+TPK%CF4*TPK%K122& -&(:)*PCONC(:,87)+TPK%K144(:)*TPK%RO27(:)+TPK%CF9*TPK%K171(:)*TPK%RO215(:)+TPK%K& -&174(:)*TPK%RO216(:) -! -!ALD2/NO2=0.0 -! -!ALD2/O3=+0.5*K056*<OLEL>+0.1*K281*<MVK> - PJAC(:,29,3)=+0.5*TPK%K056(:)*PCONC(:,17)+0.1*TPK%K281(:)*PCONC(:,39) -! -!ALD2/HONO=0.0 -! -!ALD2/HNO3=0.0 -! -!ALD2/HNO4=0.0 -! -!ALD2/N2O5=0.0 -! -!ALD2/NO3=-K061*<ALD2> - PJAC(:,29,8)=-TPK%K061(:)*PCONC(:,29) -! -!ALD2/NH3=0.0 -! -!ALD2/HO2=+K115*<RO22>+K118*<RO23>+K124*<RO25>+K146*<RO27>+TPK%CF13*K173*<RO215 -!>+K176*<RO216> - PJAC(:,29,10)=+TPK%K115(:)*TPK%RO22(:)+TPK%K118(:)*TPK%RO23(:)+TPK%K124(:)*PCO& -&NC(:,87)+TPK%K146(:)*TPK%RO27(:)+TPK%CF13*TPK%K173(:)*TPK%RO215(:)+TPK%K176(:)& -&*TPK%RO216(:) -! -!ALD2/CO=0.0 -! -!ALD2/H2O2=0.0 -! -!ALD2/SO2=0.0 -! -!ALD2/H2SO4=0.0 -! -!ALD2/OH=+TPK%CF1*K053*<ETOH>-K060*<ALD2> - PJAC(:,29,15)=+TPK%CF1*TPK%K053(:)*PCONC(:,33)-TPK%K060(:)*PCONC(:,29) -! -!ALD2/ETHE=0.0 -! -!ALD2/OLEL=+0.5*K056*<O3>+0.4*K057*<O> - PJAC(:,29,17)=+0.5*TPK%K056(:)*PCONC(:,3)+0.4*TPK%K057(:)*TPK%O(:) -! -!ALD2/OLEH=0.0 -! -!ALD2/ALKL=0.0 -! -!ALD2/ALKM=0.0 -! -!ALD2/ALKH=0.0 -! -!ALD2/AROH=0.0 -! -!ALD2/AROL=0.0 -! -!ALD2/AROO=0.0 -! -!ALD2/ARAL=0.0 -! -!ALD2/ARAC=0.0 -! -!ALD2/PAH=0.0 -! -!ALD2/HCHO=0.0 -! -!ALD2/ALD2=-K059-K060*<OH>-K061*<NO3>-KTC22-KTR22 - PJAC(:,29,29)=-TPK%K059(:)-TPK%K060(:)*PCONC(:,15)-TPK%K061(:)*PCONC(:,8)-TPK%& -&KTC22(:)-TPK%KTR22(:) -! -!ALD2/KETL=0.0 -! -!ALD2/KETH=0.0 -! -!ALD2/MEOH=0.0 -! -!ALD2/ETOH=+TPK%CF1*K053*<OH> - PJAC(:,29,33)=+TPK%CF1*TPK%K053(:)*PCONC(:,15) -! -!ALD2/ALCH=0.0 -! -!ALD2/ISOP=+0.075*K067*<O> - PJAC(:,29,35)=+0.075*TPK%K067(:)*TPK%O(:) -! -!ALD2/BIOL=0.0 -! -!ALD2/BIOH=0.0 -! -!ALD2/MTBE=0.0 -! -!ALD2/MVK=+0.1*K281*<O3> - PJAC(:,29,39)=+0.1*TPK%K281(:)*PCONC(:,3) -! -!ALD2/MCR=+0.85*K284*<O> - PJAC(:,29,40)=+0.85*TPK%K284(:)*TPK%O(:) -! -!ALD2/MGLY=0.0 -! -!ALD2/GLY=0.0 -! -!ALD2/ORA1=0.0 -! -!ALD2/ORA2=0.0 -! -!ALD2/ACID=0.0 -! -!ALD2/UR28=0.0 -! -!ALD2/UR21=0.0 -! -!ALD2/URG2=0.0 -! -!ALD2/UR26=0.0 -! -!ALD2/RPG2=0.0 -! -!ALD2/RP18=0.0 -! -!ALD2/RPG3=0.0 -! -!ALD2/URG4=0.0 -! -!ALD2/UR8=0.0 -! -!ALD2/UR17=0.0 -! -!ALD2/UR7=0.0 -! -!ALD2/RPR3=0.0 -! -!ALD2/URG6=0.0 -! -!ALD2/UR22=0.0 -! -!ALD2/URG7=0.0 -! -!ALD2/RPR4=0.0 -! -!ALD2/RPR7=0.0 -! -!ALD2/RPG7=0.0 -! -!ALD2/URG8=0.0 -! -!ALD2/UR19=0.0 -! -!ALD2/URG9=0.0 -! -!ALD2/AP7=0.0 -! -!ALD2/URG10=0.0 -! -!ALD2/RPR1=0.0 -! -!ALD2/RPR5=0.0 -! -!ALD2/RPR8=0.0 -! -!ALD2/RP10=0.0 -! -!ALD2/RP11=0.0 -! -!ALD2/RP16=0.0 -! -!ALD2/RPRL=0.0 -! -!ALD2/APAN=0.0 -! -!ALD2/PAN1=0.0 -! -!ALD2/PAN2=0.0 -! -!ALD2/PAN3=0.0 -! -!ALD2/PAN4=0.0 -! -!ALD2/PAN6=0.0 -! -!ALD2/PAN7=0.0 -! -!ALD2/PAN8=0.0 -! -!ALD2/PN10=0.0 -! -!ALD2/RO2T=+K114*<RO22>+K117*<RO23>+K123*<RO25>+K145*<RO27>+TPK%CF13*K172*<RO21 -!5>+K175*<RO216> - PJAC(:,29,85)=+TPK%K114(:)*TPK%RO22(:)+TPK%K117(:)*TPK%RO23(:)+TPK%K123(:)*PCO& -&NC(:,87)+TPK%K145(:)*TPK%RO27(:)+TPK%CF13*TPK%K172(:)*TPK%RO215(:)+TPK%K175(:)& -&*TPK%RO216(:) -! -!ALD2/RO21=0.0 -! -!ALD2/RO25=+TPK%CF4*K122*<NO>+K123*<RO2T>+K124*<HO2> - PJAC(:,29,87)=+TPK%CF4*TPK%K122(:)*PCONC(:,1)+TPK%K123(:)*PCONC(:,85)+TPK%K124& -&(:)*PCONC(:,10) -! -!ALD2/WC_O3=0.0 -! -!ALD2/WC_H2O2=0.0 -! -!ALD2/WC_NO=0.0 -! -!ALD2/WC_NO2=0.0 -! -!ALD2/WC_NO3=0.0 -! -!ALD2/WC_N2O5=0.0 -! -!ALD2/WC_HONO=0.0 -! -!ALD2/WC_HNO3=0.0 -! -!ALD2/WC_HNO4=0.0 -! -!ALD2/WC_NH3=0.0 -! -!ALD2/WC_OH=0.0 -! -!ALD2/WC_HO2=0.0 -! -!ALD2/WC_CO2=0.0 -! -!ALD2/WC_SO2=0.0 -! -!ALD2/WC_H2SO4=0.0 -! -!ALD2/WC_RO21=0.0 -! -!ALD2/WC_RO25=0.0 -! -!ALD2/WC_MEOH=0.0 -! -!ALD2/WC_ETOH=0.0 -! -!ALD2/WC_ALCH=0.0 -! -!ALD2/WC_HCHO=0.0 -! -!ALD2/WC_ALD2=+KTC53 - PJAC(:,29,109)=+TPK%KTC53(:) -! -!ALD2/WC_GLY=0.0 -! -!ALD2/WC_MGLY=0.0 -! -!ALD2/WC_KETL=0.0 -! -!ALD2/WC_ORA1=0.0 -! -!ALD2/WC_ORA2=0.0 -! -!ALD2/WC_ACID=0.0 -! -!ALD2/WC_RP16=0.0 -! -!ALD2/WC_UR21=0.0 -! -!ALD2/WC_UR28=0.0 -! -!ALD2/WC_ACID2=0.0 -! -!ALD2/WC_ASO3=0.0 -! -!ALD2/WC_ASO4=0.0 -! -!ALD2/WC_ASO5=0.0 -! -!ALD2/WC_AHSO5=0.0 -! -!ALD2/WC_AHMS=0.0 -! -!ALD2/WR_O3=0.0 -! -!ALD2/WR_H2O2=0.0 -! -!ALD2/WR_NO=0.0 -! -!ALD2/WR_NO2=0.0 -! -!ALD2/WR_NO3=0.0 -! -!ALD2/WR_N2O5=0.0 -! -!ALD2/WR_HONO=0.0 -! -!ALD2/WR_HNO3=0.0 -! -!ALD2/WR_HNO4=0.0 -! -!ALD2/WR_NH3=0.0 -! -!ALD2/WR_OH=0.0 -! -!ALD2/WR_HO2=0.0 -! -!ALD2/WR_CO2=0.0 -! -!ALD2/WR_SO2=0.0 -! -!ALD2/WR_H2SO4=0.0 -! -!ALD2/WR_RO21=0.0 -! -!ALD2/WR_RO25=0.0 -! -!ALD2/WR_MEOH=0.0 -! -!ALD2/WR_ETOH=0.0 -! -!ALD2/WR_ALCH=0.0 -! -!ALD2/WR_HCHO=0.0 -! -!ALD2/WR_ALD2=+KTR53 - PJAC(:,29,146)=+TPK%KTR53(:) -! -!ALD2/WR_GLY=0.0 -! -!ALD2/WR_MGLY=0.0 -! -!ALD2/WR_KETL=0.0 -! -!ALD2/WR_ORA1=0.0 -! -!ALD2/WR_ORA2=0.0 -! -!ALD2/WR_ACID=0.0 -! -!ALD2/WR_RP16=0.0 -! -!ALD2/WR_UR21=0.0 -! -!ALD2/WR_UR28=0.0 -! -!ALD2/WR_ACID2=0.0 -! -!ALD2/WR_ASO3=0.0 -! -!ALD2/WR_ASO4=0.0 -! -!ALD2/WR_ASO5=0.0 -! -!ALD2/WR_AHSO5=0.0 -! -!ALD2/WR_AHMS=0.0 -! -!KETL/NO=+TPK%CF11*K171*<RO215> - PJAC(:,30,1)=+TPK%CF11*TPK%K171(:)*TPK%RO215(:) -! -!KETL/NO2=0.0 -! -!KETL/O3=0.0 -! -!KETL/HONO=0.0 -! -!KETL/HNO3=0.0 -! -!KETL/HNO4=0.0 -! -!KETL/N2O5=0.0 -! -!KETL/NO3=0.0 -! -!KETL/NH3=0.0 -! -!KETL/HO2=+TPK%CF15*K173*<RO215> - PJAC(:,30,10)=+TPK%CF15*TPK%K173(:)*TPK%RO215(:) -! -!KETL/CO=0.0 -! -!KETL/H2O2=0.0 -! -!KETL/SO2=0.0 -! -!KETL/H2SO4=0.0 -! -!KETL/OH=-K062*<KETL> - PJAC(:,30,15)=-TPK%K062(:)*PCONC(:,30) -! -!KETL/ETHE=0.0 -! -!KETL/OLEL=0.0 -! -!KETL/OLEH=0.0 -! -!KETL/ALKL=0.0 -! -!KETL/ALKM=0.0 -! -!KETL/ALKH=0.0 -! -!KETL/AROH=0.0 -! -!KETL/AROL=0.0 -! -!KETL/AROO=0.0 -! -!KETL/ARAL=0.0 -! -!KETL/ARAC=0.0 -! -!KETL/PAH=0.0 -! -!KETL/HCHO=0.0 -! -!KETL/ALD2=0.0 -! -!KETL/KETL=-K062*<OH>-K063-KTC24-KTR24 - PJAC(:,30,30)=-TPK%K062(:)*PCONC(:,15)-TPK%K063(:)-TPK%KTC24(:)-TPK%KTR24(:) -! -!KETL/KETH=0.0 -! -!KETL/MEOH=0.0 -! -!KETL/ETOH=0.0 -! -!KETL/ALCH=0.0 -! -!KETL/ISOP=0.0 -! -!KETL/BIOL=0.0 -! -!KETL/BIOH=0.0 -! -!KETL/MTBE=0.0 -! -!KETL/MVK=+0.85*K283*<O> - PJAC(:,30,39)=+0.85*TPK%K283(:)*TPK%O(:) -! -!KETL/MCR=0.0 -! -!KETL/MGLY=0.0 -! -!KETL/GLY=0.0 -! -!KETL/ORA1=0.0 -! -!KETL/ORA2=0.0 -! -!KETL/ACID=0.0 -! -!KETL/UR28=0.0 -! -!KETL/UR21=0.0 -! -!KETL/URG2=0.0 -! -!KETL/UR26=0.0 -! -!KETL/RPG2=0.0 -! -!KETL/RP18=0.0 -! -!KETL/RPG3=0.0 -! -!KETL/URG4=0.0 -! -!KETL/UR8=0.0 -! -!KETL/UR17=0.0 -! -!KETL/UR7=0.0 -! -!KETL/RPR3=0.0 -! -!KETL/URG6=0.0 -! -!KETL/UR22=0.0 -! -!KETL/URG7=0.0 -! -!KETL/RPR4=0.0 -! -!KETL/RPR7=0.0 -! -!KETL/RPG7=0.0 -! -!KETL/URG8=0.0 -! -!KETL/UR19=0.0 -! -!KETL/URG9=0.0 -! -!KETL/AP7=0.0 -! -!KETL/URG10=0.0 -! -!KETL/RPR1=0.0 -! -!KETL/RPR5=0.0 -! -!KETL/RPR8=0.0 -! -!KETL/RP10=0.0 -! -!KETL/RP11=0.0 -! -!KETL/RP16=0.0 -! -!KETL/RPRL=0.0 -! -!KETL/APAN=0.0 -! -!KETL/PAN1=0.0 -! -!KETL/PAN2=0.0 -! -!KETL/PAN3=0.0 -! -!KETL/PAN4=0.0 -! -!KETL/PAN6=0.0 -! -!KETL/PAN7=0.0 -! -!KETL/PAN8=0.0 -! -!KETL/PN10=0.0 -! -!KETL/RO2T=+TPK%CF15*K172*<RO215> - PJAC(:,30,85)=+TPK%CF15*TPK%K172(:)*TPK%RO215(:) -! -!KETL/RO21=0.0 -! -!KETL/RO25=0.0 -! -!KETL/WC_O3=0.0 -! -!KETL/WC_H2O2=0.0 -! -!KETL/WC_NO=0.0 -! -!KETL/WC_NO2=0.0 -! -!KETL/WC_NO3=0.0 -! -!KETL/WC_N2O5=0.0 -! -!KETL/WC_HONO=0.0 -! -!KETL/WC_HNO3=0.0 -! -!KETL/WC_HNO4=0.0 -! -!KETL/WC_NH3=0.0 -! -!KETL/WC_OH=0.0 -! -!KETL/WC_HO2=0.0 -! -!KETL/WC_CO2=0.0 -! -!KETL/WC_SO2=0.0 -! -!KETL/WC_H2SO4=0.0 -! -!KETL/WC_RO21=0.0 -! -!KETL/WC_RO25=0.0 -! -!KETL/WC_MEOH=0.0 -! -!KETL/WC_ETOH=0.0 -! -!KETL/WC_ALCH=0.0 -! -!KETL/WC_HCHO=0.0 -! -!KETL/WC_ALD2=0.0 -! -!KETL/WC_GLY=0.0 -! -!KETL/WC_MGLY=0.0 -! -!KETL/WC_KETL=+KTC55 - PJAC(:,30,112)=+TPK%KTC55(:) -! -!KETL/WC_ORA1=0.0 -! -!KETL/WC_ORA2=0.0 -! -!KETL/WC_ACID=0.0 -! -!KETL/WC_RP16=0.0 -! -!KETL/WC_UR21=0.0 -! -!KETL/WC_UR28=0.0 -! -!KETL/WC_ACID2=0.0 -! -!KETL/WC_ASO3=0.0 -! -!KETL/WC_ASO4=0.0 -! -!KETL/WC_ASO5=0.0 -! -!KETL/WC_AHSO5=0.0 -! -!KETL/WC_AHMS=0.0 -! -!KETL/WR_O3=0.0 -! -!KETL/WR_H2O2=0.0 -! -!KETL/WR_NO=0.0 -! -!KETL/WR_NO2=0.0 -! -!KETL/WR_NO3=0.0 -! -!KETL/WR_N2O5=0.0 -! -!KETL/WR_HONO=0.0 -! -!KETL/WR_HNO3=0.0 -! -!KETL/WR_HNO4=0.0 -! -!KETL/WR_NH3=0.0 -! -!KETL/WR_OH=0.0 -! -!KETL/WR_HO2=0.0 -! -!KETL/WR_CO2=0.0 -! -!KETL/WR_SO2=0.0 -! -!KETL/WR_H2SO4=0.0 -! -!KETL/WR_RO21=0.0 -! -!KETL/WR_RO25=0.0 -! -!KETL/WR_MEOH=0.0 -! -!KETL/WR_ETOH=0.0 -! -!KETL/WR_ALCH=0.0 -! -!KETL/WR_HCHO=0.0 -! -!KETL/WR_ALD2=0.0 -! -!KETL/WR_GLY=0.0 -! -!KETL/WR_MGLY=0.0 -! -!KETL/WR_KETL=+KTR55 - PJAC(:,30,149)=+TPK%KTR55(:) -! -!KETL/WR_ORA1=0.0 -! -!KETL/WR_ORA2=0.0 -! -!KETL/WR_ACID=0.0 -! -!KETL/WR_RP16=0.0 -! -!KETL/WR_UR21=0.0 -! -!KETL/WR_UR28=0.0 -! -!KETL/WR_ACID2=0.0 -! -!KETL/WR_ASO3=0.0 -! -!KETL/WR_ASO4=0.0 -! -!KETL/WR_ASO5=0.0 -! -!KETL/WR_AHSO5=0.0 -! -!KETL/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ5 -! -SUBROUTINE SUBJ6 -! -!Indices 31 a 35 -! -! -!KETH/NO=0.0 -! -!KETH/NO2=0.0 -! -!KETH/O3=0.0 -! -!KETH/HONO=0.0 -! -!KETH/HNO3=0.0 -! -!KETH/HNO4=0.0 -! -!KETH/N2O5=0.0 -! -!KETH/NO3=0.0 -! -!KETH/NH3=0.0 -! -!KETH/HO2=0.0 -! -!KETH/CO=0.0 -! -!KETH/H2O2=0.0 -! -!KETH/SO2=0.0 -! -!KETH/H2SO4=0.0 -! -!KETH/OH=-K070*<KETH> - PJAC(:,31,15)=-TPK%K070(:)*PCONC(:,31) -! -!KETH/ETHE=0.0 -! -!KETH/OLEL=0.0 -! -!KETH/OLEH=0.0 -! -!KETH/ALKL=0.0 -! -!KETH/ALKM=0.0 -! -!KETH/ALKH=0.0 -! -!KETH/AROH=0.0 -! -!KETH/AROL=0.0 -! -!KETH/AROO=0.0 -! -!KETH/ARAL=0.0 -! -!KETH/ARAC=0.0 -! -!KETH/PAH=0.0 -! -!KETH/HCHO=0.0 -! -!KETH/ALD2=0.0 -! -!KETH/KETL=0.0 -! -!KETH/KETH=-K070*<OH>-K071 - PJAC(:,31,31)=-TPK%K070(:)*PCONC(:,15)-TPK%K071(:) -! -!KETH/MEOH=0.0 -! -!KETH/ETOH=0.0 -! -!KETH/ALCH=0.0 -! -!KETH/ISOP=0.0 -! -!KETH/BIOL=0.0 -! -!KETH/BIOH=0.0 -! -!KETH/MTBE=0.0 -! -!KETH/MVK=0.0 -! -!KETH/MCR=0.0 -! -!KETH/MGLY=0.0 -! -!KETH/GLY=0.0 -! -!KETH/ORA1=0.0 -! -!KETH/ORA2=0.0 -! -!KETH/ACID=0.0 -! -!KETH/UR28=0.0 -! -!KETH/UR21=0.0 -! -!KETH/URG2=0.0 -! -!KETH/UR26=0.0 -! -!KETH/RPG2=0.0 -! -!KETH/RP18=0.0 -! -!KETH/RPG3=0.0 -! -!KETH/URG4=0.0 -! -!KETH/UR8=0.0 -! -!KETH/UR17=0.0 -! -!KETH/UR7=0.0 -! -!KETH/RPR3=0.0 -! -!KETH/URG6=0.0 -! -!KETH/UR22=0.0 -! -!KETH/URG7=0.0 -! -!KETH/RPR4=0.0 -! -!KETH/RPR7=0.0 -! -!KETH/RPG7=0.0 -! -!KETH/URG8=0.0 -! -!KETH/UR19=0.0 -! -!KETH/URG9=0.0 -! -!KETH/AP7=0.0 -! -!KETH/URG10=0.0 -! -!KETH/RPR1=0.0 -! -!KETH/RPR5=0.0 -! -!KETH/RPR8=0.0 -! -!KETH/RP10=0.0 -! -!KETH/RP11=0.0 -! -!KETH/RP16=0.0 -! -!KETH/RPRL=0.0 -! -!KETH/APAN=0.0 -! -!KETH/PAN1=0.0 -! -!KETH/PAN2=0.0 -! -!KETH/PAN3=0.0 -! -!KETH/PAN4=0.0 -! -!KETH/PAN6=0.0 -! -!KETH/PAN7=0.0 -! -!KETH/PAN8=0.0 -! -!KETH/PN10=0.0 -! -!KETH/RO2T=0.0 -! -!KETH/RO21=0.0 -! -!KETH/RO25=0.0 -! -!KETH/WC_O3=0.0 -! -!KETH/WC_H2O2=0.0 -! -!KETH/WC_NO=0.0 -! -!KETH/WC_NO2=0.0 -! -!KETH/WC_NO3=0.0 -! -!KETH/WC_N2O5=0.0 -! -!KETH/WC_HONO=0.0 -! -!KETH/WC_HNO3=0.0 -! -!KETH/WC_HNO4=0.0 -! -!KETH/WC_NH3=0.0 -! -!KETH/WC_OH=0.0 -! -!KETH/WC_HO2=0.0 -! -!KETH/WC_CO2=0.0 -! -!KETH/WC_SO2=0.0 -! -!KETH/WC_H2SO4=0.0 -! -!KETH/WC_RO21=0.0 -! -!KETH/WC_RO25=0.0 -! -!KETH/WC_MEOH=0.0 -! -!KETH/WC_ETOH=0.0 -! -!KETH/WC_ALCH=0.0 -! -!KETH/WC_HCHO=0.0 -! -!KETH/WC_ALD2=0.0 -! -!KETH/WC_GLY=0.0 -! -!KETH/WC_MGLY=0.0 -! -!KETH/WC_KETL=0.0 -! -!KETH/WC_ORA1=0.0 -! -!KETH/WC_ORA2=0.0 -! -!KETH/WC_ACID=0.0 -! -!KETH/WC_RP16=0.0 -! -!KETH/WC_UR21=0.0 -! -!KETH/WC_UR28=0.0 -! -!KETH/WC_ACID2=0.0 -! -!KETH/WC_ASO3=0.0 -! -!KETH/WC_ASO4=0.0 -! -!KETH/WC_ASO5=0.0 -! -!KETH/WC_AHSO5=0.0 -! -!KETH/WC_AHMS=0.0 -! -!KETH/WR_O3=0.0 -! -!KETH/WR_H2O2=0.0 -! -!KETH/WR_NO=0.0 -! -!KETH/WR_NO2=0.0 -! -!KETH/WR_NO3=0.0 -! -!KETH/WR_N2O5=0.0 -! -!KETH/WR_HONO=0.0 -! -!KETH/WR_HNO3=0.0 -! -!KETH/WR_HNO4=0.0 -! -!KETH/WR_NH3=0.0 -! -!KETH/WR_OH=0.0 -! -!KETH/WR_HO2=0.0 -! -!KETH/WR_CO2=0.0 -! -!KETH/WR_SO2=0.0 -! -!KETH/WR_H2SO4=0.0 -! -!KETH/WR_RO21=0.0 -! -!KETH/WR_RO25=0.0 -! -!KETH/WR_MEOH=0.0 -! -!KETH/WR_ETOH=0.0 -! -!KETH/WR_ALCH=0.0 -! -!KETH/WR_HCHO=0.0 -! -!KETH/WR_ALD2=0.0 -! -!KETH/WR_GLY=0.0 -! -!KETH/WR_MGLY=0.0 -! -!KETH/WR_KETL=0.0 -! -!KETH/WR_ORA1=0.0 -! -!KETH/WR_ORA2=0.0 -! -!KETH/WR_ACID=0.0 -! -!KETH/WR_RP16=0.0 -! -!KETH/WR_UR21=0.0 -! -!KETH/WR_UR28=0.0 -! -!KETH/WR_ACID2=0.0 -! -!KETH/WR_ASO3=0.0 -! -!KETH/WR_ASO4=0.0 -! -!KETH/WR_ASO5=0.0 -! -!KETH/WR_AHSO5=0.0 -! -!KETH/WR_AHMS=0.0 -! -!MEOH/NO=0.0 -! -!MEOH/NO2=0.0 -! -!MEOH/O3=0.0 -! -!MEOH/HONO=0.0 -! -!MEOH/HNO3=0.0 -! -!MEOH/HNO4=0.0 -! -!MEOH/N2O5=0.0 -! -!MEOH/NO3=0.0 -! -!MEOH/NH3=0.0 -! -!MEOH/HO2=0.0 -! -!MEOH/CO=0.0 -! -!MEOH/H2O2=0.0 -! -!MEOH/SO2=0.0 -! -!MEOH/H2SO4=0.0 -! -!MEOH/OH=-K048*<MEOH> - PJAC(:,32,15)=-TPK%K048(:)*PCONC(:,32) -! -!MEOH/ETHE=0.0 -! -!MEOH/OLEL=0.0 -! -!MEOH/OLEH=0.0 -! -!MEOH/ALKL=0.0 -! -!MEOH/ALKM=0.0 -! -!MEOH/ALKH=0.0 -! -!MEOH/AROH=0.0 -! -!MEOH/AROL=0.0 -! -!MEOH/AROO=0.0 -! -!MEOH/ARAL=0.0 -! -!MEOH/ARAC=0.0 -! -!MEOH/PAH=0.0 -! -!MEOH/HCHO=0.0 -! -!MEOH/ALD2=0.0 -! -!MEOH/KETL=0.0 -! -!MEOH/KETH=0.0 -! -!MEOH/MEOH=-K048*<OH>-KTC18-KTR18 - PJAC(:,32,32)=-TPK%K048(:)*PCONC(:,15)-TPK%KTC18(:)-TPK%KTR18(:) -! -!MEOH/ETOH=0.0 -! -!MEOH/ALCH=0.0 -! -!MEOH/ISOP=0.0 -! -!MEOH/BIOL=0.0 -! -!MEOH/BIOH=0.0 -! -!MEOH/MTBE=0.0 -! -!MEOH/MVK=0.0 -! -!MEOH/MCR=0.0 -! -!MEOH/MGLY=0.0 -! -!MEOH/GLY=0.0 -! -!MEOH/ORA1=0.0 -! -!MEOH/ORA2=0.0 -! -!MEOH/ACID=0.0 -! -!MEOH/UR28=0.0 -! -!MEOH/UR21=0.0 -! -!MEOH/URG2=0.0 -! -!MEOH/UR26=0.0 -! -!MEOH/RPG2=0.0 -! -!MEOH/RP18=0.0 -! -!MEOH/RPG3=0.0 -! -!MEOH/URG4=0.0 -! -!MEOH/UR8=0.0 -! -!MEOH/UR17=0.0 -! -!MEOH/UR7=0.0 -! -!MEOH/RPR3=0.0 -! -!MEOH/URG6=0.0 -! -!MEOH/UR22=0.0 -! -!MEOH/URG7=0.0 -! -!MEOH/RPR4=0.0 -! -!MEOH/RPR7=0.0 -! -!MEOH/RPG7=0.0 -! -!MEOH/URG8=0.0 -! -!MEOH/UR19=0.0 -! -!MEOH/URG9=0.0 -! -!MEOH/AP7=0.0 -! -!MEOH/URG10=0.0 -! -!MEOH/RPR1=0.0 -! -!MEOH/RPR5=0.0 -! -!MEOH/RPR8=0.0 -! -!MEOH/RP10=0.0 -! -!MEOH/RP11=0.0 -! -!MEOH/RP16=0.0 -! -!MEOH/RPRL=0.0 -! -!MEOH/APAN=0.0 -! -!MEOH/PAN1=0.0 -! -!MEOH/PAN2=0.0 -! -!MEOH/PAN3=0.0 -! -!MEOH/PAN4=0.0 -! -!MEOH/PAN6=0.0 -! -!MEOH/PAN7=0.0 -! -!MEOH/PAN8=0.0 -! -!MEOH/PN10=0.0 -! -!MEOH/RO2T=0.0 -! -!MEOH/RO21=0.0 -! -!MEOH/RO25=0.0 -! -!MEOH/WC_O3=0.0 -! -!MEOH/WC_H2O2=0.0 -! -!MEOH/WC_NO=0.0 -! -!MEOH/WC_NO2=0.0 -! -!MEOH/WC_NO3=0.0 -! -!MEOH/WC_N2O5=0.0 -! -!MEOH/WC_HONO=0.0 -! -!MEOH/WC_HNO3=0.0 -! -!MEOH/WC_HNO4=0.0 -! -!MEOH/WC_NH3=0.0 -! -!MEOH/WC_OH=0.0 -! -!MEOH/WC_HO2=0.0 -! -!MEOH/WC_CO2=0.0 -! -!MEOH/WC_SO2=0.0 -! -!MEOH/WC_H2SO4=0.0 -! -!MEOH/WC_RO21=0.0 -! -!MEOH/WC_RO25=0.0 -! -!MEOH/WC_MEOH=+KTC49 - PJAC(:,32,105)=+TPK%KTC49(:) -! -!MEOH/WC_ETOH=0.0 -! -!MEOH/WC_ALCH=0.0 -! -!MEOH/WC_HCHO=0.0 -! -!MEOH/WC_ALD2=0.0 -! -!MEOH/WC_GLY=0.0 -! -!MEOH/WC_MGLY=0.0 -! -!MEOH/WC_KETL=0.0 -! -!MEOH/WC_ORA1=0.0 -! -!MEOH/WC_ORA2=0.0 -! -!MEOH/WC_ACID=0.0 -! -!MEOH/WC_RP16=0.0 -! -!MEOH/WC_UR21=0.0 -! -!MEOH/WC_UR28=0.0 -! -!MEOH/WC_ACID2=0.0 -! -!MEOH/WC_ASO3=0.0 -! -!MEOH/WC_ASO4=0.0 -! -!MEOH/WC_ASO5=0.0 -! -!MEOH/WC_AHSO5=0.0 -! -!MEOH/WC_AHMS=0.0 -! -!MEOH/WR_O3=0.0 -! -!MEOH/WR_H2O2=0.0 -! -!MEOH/WR_NO=0.0 -! -!MEOH/WR_NO2=0.0 -! -!MEOH/WR_NO3=0.0 -! -!MEOH/WR_N2O5=0.0 -! -!MEOH/WR_HONO=0.0 -! -!MEOH/WR_HNO3=0.0 -! -!MEOH/WR_HNO4=0.0 -! -!MEOH/WR_NH3=0.0 -! -!MEOH/WR_OH=0.0 -! -!MEOH/WR_HO2=0.0 -! -!MEOH/WR_CO2=0.0 -! -!MEOH/WR_SO2=0.0 -! -!MEOH/WR_H2SO4=0.0 -! -!MEOH/WR_RO21=0.0 -! -!MEOH/WR_RO25=0.0 -! -!MEOH/WR_MEOH=+KTR49 - PJAC(:,32,142)=+TPK%KTR49(:) -! -!MEOH/WR_ETOH=0.0 -! -!MEOH/WR_ALCH=0.0 -! -!MEOH/WR_HCHO=0.0 -! -!MEOH/WR_ALD2=0.0 -! -!MEOH/WR_GLY=0.0 -! -!MEOH/WR_MGLY=0.0 -! -!MEOH/WR_KETL=0.0 -! -!MEOH/WR_ORA1=0.0 -! -!MEOH/WR_ORA2=0.0 -! -!MEOH/WR_ACID=0.0 -! -!MEOH/WR_RP16=0.0 -! -!MEOH/WR_UR21=0.0 -! -!MEOH/WR_UR28=0.0 -! -!MEOH/WR_ACID2=0.0 -! -!MEOH/WR_ASO3=0.0 -! -!MEOH/WR_ASO4=0.0 -! -!MEOH/WR_ASO5=0.0 -! -!MEOH/WR_AHSO5=0.0 -! -!MEOH/WR_AHMS=0.0 -! -!ETOH/NO=0.0 -! -!ETOH/NO2=0.0 -! -!ETOH/O3=0.0 -! -!ETOH/HONO=0.0 -! -!ETOH/HNO3=0.0 -! -!ETOH/HNO4=0.0 -! -!ETOH/N2O5=0.0 -! -!ETOH/NO3=0.0 -! -!ETOH/NH3=0.0 -! -!ETOH/HO2=0.0 -! -!ETOH/CO=0.0 -! -!ETOH/H2O2=0.0 -! -!ETOH/SO2=0.0 -! -!ETOH/H2SO4=0.0 -! -!ETOH/OH=-K053*<ETOH> - PJAC(:,33,15)=-TPK%K053(:)*PCONC(:,33) -! -!ETOH/ETHE=0.0 -! -!ETOH/OLEL=0.0 -! -!ETOH/OLEH=0.0 -! -!ETOH/ALKL=0.0 -! -!ETOH/ALKM=0.0 -! -!ETOH/ALKH=0.0 -! -!ETOH/AROH=0.0 -! -!ETOH/AROL=0.0 -! -!ETOH/AROO=0.0 -! -!ETOH/ARAL=0.0 -! -!ETOH/ARAC=0.0 -! -!ETOH/PAH=0.0 -! -!ETOH/HCHO=0.0 -! -!ETOH/ALD2=0.0 -! -!ETOH/KETL=0.0 -! -!ETOH/KETH=0.0 -! -!ETOH/MEOH=0.0 -! -!ETOH/ETOH=-K053*<OH>-KTC19-KTR19 - PJAC(:,33,33)=-TPK%K053(:)*PCONC(:,15)-TPK%KTC19(:)-TPK%KTR19(:) -! -!ETOH/ALCH=0.0 -! -!ETOH/ISOP=0.0 -! -!ETOH/BIOL=0.0 -! -!ETOH/BIOH=0.0 -! -!ETOH/MTBE=0.0 -! -!ETOH/MVK=0.0 -! -!ETOH/MCR=0.0 -! -!ETOH/MGLY=0.0 -! -!ETOH/GLY=0.0 -! -!ETOH/ORA1=0.0 -! -!ETOH/ORA2=0.0 -! -!ETOH/ACID=0.0 -! -!ETOH/UR28=0.0 -! -!ETOH/UR21=0.0 -! -!ETOH/URG2=0.0 -! -!ETOH/UR26=0.0 -! -!ETOH/RPG2=0.0 -! -!ETOH/RP18=0.0 -! -!ETOH/RPG3=0.0 -! -!ETOH/URG4=0.0 -! -!ETOH/UR8=0.0 -! -!ETOH/UR17=0.0 -! -!ETOH/UR7=0.0 -! -!ETOH/RPR3=0.0 -! -!ETOH/URG6=0.0 -! -!ETOH/UR22=0.0 -! -!ETOH/URG7=0.0 -! -!ETOH/RPR4=0.0 -! -!ETOH/RPR7=0.0 -! -!ETOH/RPG7=0.0 -! -!ETOH/URG8=0.0 -! -!ETOH/UR19=0.0 -! -!ETOH/URG9=0.0 -! -!ETOH/AP7=0.0 -! -!ETOH/URG10=0.0 -! -!ETOH/RPR1=0.0 -! -!ETOH/RPR5=0.0 -! -!ETOH/RPR8=0.0 -! -!ETOH/RP10=0.0 -! -!ETOH/RP11=0.0 -! -!ETOH/RP16=0.0 -! -!ETOH/RPRL=0.0 -! -!ETOH/APAN=0.0 -! -!ETOH/PAN1=0.0 -! -!ETOH/PAN2=0.0 -! -!ETOH/PAN3=0.0 -! -!ETOH/PAN4=0.0 -! -!ETOH/PAN6=0.0 -! -!ETOH/PAN7=0.0 -! -!ETOH/PAN8=0.0 -! -!ETOH/PN10=0.0 -! -!ETOH/RO2T=0.0 -! -!ETOH/RO21=0.0 -! -!ETOH/RO25=0.0 -! -!ETOH/WC_O3=0.0 -! -!ETOH/WC_H2O2=0.0 -! -!ETOH/WC_NO=0.0 -! -!ETOH/WC_NO2=0.0 -! -!ETOH/WC_NO3=0.0 -! -!ETOH/WC_N2O5=0.0 -! -!ETOH/WC_HONO=0.0 -! -!ETOH/WC_HNO3=0.0 -! -!ETOH/WC_HNO4=0.0 -! -!ETOH/WC_NH3=0.0 -! -!ETOH/WC_OH=0.0 -! -!ETOH/WC_HO2=0.0 -! -!ETOH/WC_CO2=0.0 -! -!ETOH/WC_SO2=0.0 -! -!ETOH/WC_H2SO4=0.0 -! -!ETOH/WC_RO21=0.0 -! -!ETOH/WC_RO25=0.0 -! -!ETOH/WC_MEOH=0.0 -! -!ETOH/WC_ETOH=+KTC50 - PJAC(:,33,106)=+TPK%KTC50(:) -! -!ETOH/WC_ALCH=0.0 -! -!ETOH/WC_HCHO=0.0 -! -!ETOH/WC_ALD2=0.0 -! -!ETOH/WC_GLY=0.0 -! -!ETOH/WC_MGLY=0.0 -! -!ETOH/WC_KETL=0.0 -! -!ETOH/WC_ORA1=0.0 -! -!ETOH/WC_ORA2=0.0 -! -!ETOH/WC_ACID=0.0 -! -!ETOH/WC_RP16=0.0 -! -!ETOH/WC_UR21=0.0 -! -!ETOH/WC_UR28=0.0 -! -!ETOH/WC_ACID2=0.0 -! -!ETOH/WC_ASO3=0.0 -! -!ETOH/WC_ASO4=0.0 -! -!ETOH/WC_ASO5=0.0 -! -!ETOH/WC_AHSO5=0.0 -! -!ETOH/WC_AHMS=0.0 -! -!ETOH/WR_O3=0.0 -! -!ETOH/WR_H2O2=0.0 -! -!ETOH/WR_NO=0.0 -! -!ETOH/WR_NO2=0.0 -! -!ETOH/WR_NO3=0.0 -! -!ETOH/WR_N2O5=0.0 -! -!ETOH/WR_HONO=0.0 -! -!ETOH/WR_HNO3=0.0 -! -!ETOH/WR_HNO4=0.0 -! -!ETOH/WR_NH3=0.0 -! -!ETOH/WR_OH=0.0 -! -!ETOH/WR_HO2=0.0 -! -!ETOH/WR_CO2=0.0 -! -!ETOH/WR_SO2=0.0 -! -!ETOH/WR_H2SO4=0.0 -! -!ETOH/WR_RO21=0.0 -! -!ETOH/WR_RO25=0.0 -! -!ETOH/WR_MEOH=0.0 -! -!ETOH/WR_ETOH=+KTR50 - PJAC(:,33,143)=+TPK%KTR50(:) -! -!ETOH/WR_ALCH=0.0 -! -!ETOH/WR_HCHO=0.0 -! -!ETOH/WR_ALD2=0.0 -! -!ETOH/WR_GLY=0.0 -! -!ETOH/WR_MGLY=0.0 -! -!ETOH/WR_KETL=0.0 -! -!ETOH/WR_ORA1=0.0 -! -!ETOH/WR_ORA2=0.0 -! -!ETOH/WR_ACID=0.0 -! -!ETOH/WR_RP16=0.0 -! -!ETOH/WR_UR21=0.0 -! -!ETOH/WR_UR28=0.0 -! -!ETOH/WR_ACID2=0.0 -! -!ETOH/WR_ASO3=0.0 -! -!ETOH/WR_ASO4=0.0 -! -!ETOH/WR_ASO5=0.0 -! -!ETOH/WR_AHSO5=0.0 -! -!ETOH/WR_AHMS=0.0 -! -!ALCH/NO=0.0 -! -!ALCH/NO2=0.0 -! -!ALCH/O3=0.0 -! -!ALCH/HONO=0.0 -! -!ALCH/HNO3=0.0 -! -!ALCH/HNO4=0.0 -! -!ALCH/N2O5=0.0 -! -!ALCH/NO3=0.0 -! -!ALCH/NH3=0.0 -! -!ALCH/HO2=0.0 -! -!ALCH/CO=0.0 -! -!ALCH/H2O2=0.0 -! -!ALCH/SO2=0.0 -! -!ALCH/H2SO4=0.0 -! -!ALCH/OH=-K069*<ALCH> - PJAC(:,34,15)=-TPK%K069(:)*PCONC(:,34) -! -!ALCH/ETHE=0.0 -! -!ALCH/OLEL=0.0 -! -!ALCH/OLEH=0.0 -! -!ALCH/ALKL=0.0 -! -!ALCH/ALKM=0.0 -! -!ALCH/ALKH=0.0 -! -!ALCH/AROH=0.0 -! -!ALCH/AROL=0.0 -! -!ALCH/AROO=0.0 -! -!ALCH/ARAL=0.0 -! -!ALCH/ARAC=0.0 -! -!ALCH/PAH=0.0 -! -!ALCH/HCHO=0.0 -! -!ALCH/ALD2=0.0 -! -!ALCH/KETL=0.0 -! -!ALCH/KETH=0.0 -! -!ALCH/MEOH=0.0 -! -!ALCH/ETOH=0.0 -! -!ALCH/ALCH=-K069*<OH>-KTC20-KTR20 - PJAC(:,34,34)=-TPK%K069(:)*PCONC(:,15)-TPK%KTC20(:)-TPK%KTR20(:) -! -!ALCH/ISOP=0.0 -! -!ALCH/BIOL=0.0 -! -!ALCH/BIOH=0.0 -! -!ALCH/MTBE=0.0 -! -!ALCH/MVK=0.0 -! -!ALCH/MCR=0.0 -! -!ALCH/MGLY=0.0 -! -!ALCH/GLY=0.0 -! -!ALCH/ORA1=0.0 -! -!ALCH/ORA2=0.0 -! -!ALCH/ACID=0.0 -! -!ALCH/UR28=0.0 -! -!ALCH/UR21=0.0 -! -!ALCH/URG2=0.0 -! -!ALCH/UR26=0.0 -! -!ALCH/RPG2=0.0 -! -!ALCH/RP18=0.0 -! -!ALCH/RPG3=0.0 -! -!ALCH/URG4=0.0 -! -!ALCH/UR8=0.0 -! -!ALCH/UR17=0.0 -! -!ALCH/UR7=0.0 -! -!ALCH/RPR3=0.0 -! -!ALCH/URG6=0.0 -! -!ALCH/UR22=0.0 -! -!ALCH/URG7=0.0 -! -!ALCH/RPR4=0.0 -! -!ALCH/RPR7=0.0 -! -!ALCH/RPG7=0.0 -! -!ALCH/URG8=0.0 -! -!ALCH/UR19=0.0 -! -!ALCH/URG9=0.0 -! -!ALCH/AP7=0.0 -! -!ALCH/URG10=0.0 -! -!ALCH/RPR1=0.0 -! -!ALCH/RPR5=0.0 -! -!ALCH/RPR8=0.0 -! -!ALCH/RP10=0.0 -! -!ALCH/RP11=0.0 -! -!ALCH/RP16=0.0 -! -!ALCH/RPRL=0.0 -! -!ALCH/APAN=0.0 -! -!ALCH/PAN1=0.0 -! -!ALCH/PAN2=0.0 -! -!ALCH/PAN3=0.0 -! -!ALCH/PAN4=0.0 -! -!ALCH/PAN6=0.0 -! -!ALCH/PAN7=0.0 -! -!ALCH/PAN8=0.0 -! -!ALCH/PN10=0.0 -! -!ALCH/RO2T=0.0 -! -!ALCH/RO21=0.0 -! -!ALCH/RO25=0.0 -! -!ALCH/WC_O3=0.0 -! -!ALCH/WC_H2O2=0.0 -! -!ALCH/WC_NO=0.0 -! -!ALCH/WC_NO2=0.0 -! -!ALCH/WC_NO3=0.0 -! -!ALCH/WC_N2O5=0.0 -! -!ALCH/WC_HONO=0.0 -! -!ALCH/WC_HNO3=0.0 -! -!ALCH/WC_HNO4=0.0 -! -!ALCH/WC_NH3=0.0 -! -!ALCH/WC_OH=0.0 -! -!ALCH/WC_HO2=0.0 -! -!ALCH/WC_CO2=0.0 -! -!ALCH/WC_SO2=0.0 -! -!ALCH/WC_H2SO4=0.0 -! -!ALCH/WC_RO21=0.0 -! -!ALCH/WC_RO25=0.0 -! -!ALCH/WC_MEOH=0.0 -! -!ALCH/WC_ETOH=0.0 -! -!ALCH/WC_ALCH=+KTC51 - PJAC(:,34,107)=+TPK%KTC51(:) -! -!ALCH/WC_HCHO=0.0 -! -!ALCH/WC_ALD2=0.0 -! -!ALCH/WC_GLY=0.0 -! -!ALCH/WC_MGLY=0.0 -! -!ALCH/WC_KETL=0.0 -! -!ALCH/WC_ORA1=0.0 -! -!ALCH/WC_ORA2=0.0 -! -!ALCH/WC_ACID=0.0 -! -!ALCH/WC_RP16=0.0 -! -!ALCH/WC_UR21=0.0 -! -!ALCH/WC_UR28=0.0 -! -!ALCH/WC_ACID2=0.0 -! -!ALCH/WC_ASO3=0.0 -! -!ALCH/WC_ASO4=0.0 -! -!ALCH/WC_ASO5=0.0 -! -!ALCH/WC_AHSO5=0.0 -! -!ALCH/WC_AHMS=0.0 -! -!ALCH/WR_O3=0.0 -! -!ALCH/WR_H2O2=0.0 -! -!ALCH/WR_NO=0.0 -! -!ALCH/WR_NO2=0.0 -! -!ALCH/WR_NO3=0.0 -! -!ALCH/WR_N2O5=0.0 -! -!ALCH/WR_HONO=0.0 -! -!ALCH/WR_HNO3=0.0 -! -!ALCH/WR_HNO4=0.0 -! -!ALCH/WR_NH3=0.0 -! -!ALCH/WR_OH=0.0 -! -!ALCH/WR_HO2=0.0 -! -!ALCH/WR_CO2=0.0 -! -!ALCH/WR_SO2=0.0 -! -!ALCH/WR_H2SO4=0.0 -! -!ALCH/WR_RO21=0.0 -! -!ALCH/WR_RO25=0.0 -! -!ALCH/WR_MEOH=0.0 -! -!ALCH/WR_ETOH=0.0 -! -!ALCH/WR_ALCH=+KTR51 - PJAC(:,34,144)=+TPK%KTR51(:) -! -!ALCH/WR_HCHO=0.0 -! -!ALCH/WR_ALD2=0.0 -! -!ALCH/WR_GLY=0.0 -! -!ALCH/WR_MGLY=0.0 -! -!ALCH/WR_KETL=0.0 -! -!ALCH/WR_ORA1=0.0 -! -!ALCH/WR_ORA2=0.0 -! -!ALCH/WR_ACID=0.0 -! -!ALCH/WR_RP16=0.0 -! -!ALCH/WR_UR21=0.0 -! -!ALCH/WR_UR28=0.0 -! -!ALCH/WR_ACID2=0.0 -! -!ALCH/WR_ASO3=0.0 -! -!ALCH/WR_ASO4=0.0 -! -!ALCH/WR_ASO5=0.0 -! -!ALCH/WR_AHSO5=0.0 -! -!ALCH/WR_AHMS=0.0 -! -!ISOP/NO=0.0 -! -!ISOP/NO2=0.0 -! -!ISOP/O3=-K066*<ISOP> - PJAC(:,35,3)=-TPK%K066(:)*PCONC(:,35) -! -!ISOP/HONO=0.0 -! -!ISOP/HNO3=0.0 -! -!ISOP/HNO4=0.0 -! -!ISOP/N2O5=0.0 -! -!ISOP/NO3=-K065*<ISOP> - PJAC(:,35,8)=-TPK%K065(:)*PCONC(:,35) -! -!ISOP/NH3=0.0 -! -!ISOP/HO2=0.0 -! -!ISOP/CO=0.0 -! -!ISOP/H2O2=0.0 -! -!ISOP/SO2=0.0 -! -!ISOP/H2SO4=0.0 -! -!ISOP/OH=-K064*<ISOP> - PJAC(:,35,15)=-TPK%K064(:)*PCONC(:,35) -! -!ISOP/ETHE=0.0 -! -!ISOP/OLEL=0.0 -! -!ISOP/OLEH=0.0 -! -!ISOP/ALKL=0.0 -! -!ISOP/ALKM=0.0 -! -!ISOP/ALKH=0.0 -! -!ISOP/AROH=0.0 -! -!ISOP/AROL=0.0 -! -!ISOP/AROO=0.0 -! -!ISOP/ARAL=0.0 -! -!ISOP/ARAC=0.0 -! -!ISOP/PAH=0.0 -! -!ISOP/HCHO=0.0 -! -!ISOP/ALD2=0.0 -! -!ISOP/KETL=0.0 -! -!ISOP/KETH=0.0 -! -!ISOP/MEOH=0.0 -! -!ISOP/ETOH=0.0 -! -!ISOP/ALCH=0.0 -! -!ISOP/ISOP=-K064*<OH>-K065*<NO3>-K066*<O3>-K067*<O> - PJAC(:,35,35)=-TPK%K064(:)*PCONC(:,15)-TPK%K065(:)*PCONC(:,8)-TPK%K066(:)*PCON& -&C(:,3)-TPK%K067(:)*TPK%O(:) -! -!ISOP/BIOL=0.0 -! -!ISOP/BIOH=0.0 -! -!ISOP/MTBE=0.0 -! -!ISOP/MVK=0.0 -! -!ISOP/MCR=0.0 -! -!ISOP/MGLY=0.0 -! -!ISOP/GLY=0.0 -! -!ISOP/ORA1=0.0 -! -!ISOP/ORA2=0.0 -! -!ISOP/ACID=0.0 -! -!ISOP/UR28=0.0 -! -!ISOP/UR21=0.0 -! -!ISOP/URG2=0.0 -! -!ISOP/UR26=0.0 -! -!ISOP/RPG2=0.0 -! -!ISOP/RP18=0.0 -! -!ISOP/RPG3=0.0 -! -!ISOP/URG4=0.0 -! -!ISOP/UR8=0.0 -! -!ISOP/UR17=0.0 -! -!ISOP/UR7=0.0 -! -!ISOP/RPR3=0.0 -! -!ISOP/URG6=0.0 -! -!ISOP/UR22=0.0 -! -!ISOP/URG7=0.0 -! -!ISOP/RPR4=0.0 -! -!ISOP/RPR7=0.0 -! -!ISOP/RPG7=0.0 -! -!ISOP/URG8=0.0 -! -!ISOP/UR19=0.0 -! -!ISOP/URG9=0.0 -! -!ISOP/AP7=0.0 -! -!ISOP/URG10=0.0 -! -!ISOP/RPR1=0.0 -! -!ISOP/RPR5=0.0 -! -!ISOP/RPR8=0.0 -! -!ISOP/RP10=0.0 -! -!ISOP/RP11=0.0 -! -!ISOP/RP16=0.0 -! -!ISOP/RPRL=0.0 -! -!ISOP/APAN=0.0 -! -!ISOP/PAN1=0.0 -! -!ISOP/PAN2=0.0 -! -!ISOP/PAN3=0.0 -! -!ISOP/PAN4=0.0 -! -!ISOP/PAN6=0.0 -! -!ISOP/PAN7=0.0 -! -!ISOP/PAN8=0.0 -! -!ISOP/PN10=0.0 -! -!ISOP/RO2T=0.0 -! -!ISOP/RO21=0.0 -! -!ISOP/RO25=0.0 -! -!ISOP/WC_O3=0.0 -! -!ISOP/WC_H2O2=0.0 -! -!ISOP/WC_NO=0.0 -! -!ISOP/WC_NO2=0.0 -! -!ISOP/WC_NO3=0.0 -! -!ISOP/WC_N2O5=0.0 -! -!ISOP/WC_HONO=0.0 -! -!ISOP/WC_HNO3=0.0 -! -!ISOP/WC_HNO4=0.0 -! -!ISOP/WC_NH3=0.0 -! -!ISOP/WC_OH=0.0 -! -!ISOP/WC_HO2=0.0 -! -!ISOP/WC_CO2=0.0 -! -!ISOP/WC_SO2=0.0 -! -!ISOP/WC_H2SO4=0.0 -! -!ISOP/WC_RO21=0.0 -! -!ISOP/WC_RO25=0.0 -! -!ISOP/WC_MEOH=0.0 -! -!ISOP/WC_ETOH=0.0 -! -!ISOP/WC_ALCH=0.0 -! -!ISOP/WC_HCHO=0.0 -! -!ISOP/WC_ALD2=0.0 -! -!ISOP/WC_GLY=0.0 -! -!ISOP/WC_MGLY=0.0 -! -!ISOP/WC_KETL=0.0 -! -!ISOP/WC_ORA1=0.0 -! -!ISOP/WC_ORA2=0.0 -! -!ISOP/WC_ACID=0.0 -! -!ISOP/WC_RP16=0.0 -! -!ISOP/WC_UR21=0.0 -! -!ISOP/WC_UR28=0.0 -! -!ISOP/WC_ACID2=0.0 -! -!ISOP/WC_ASO3=0.0 -! -!ISOP/WC_ASO4=0.0 -! -!ISOP/WC_ASO5=0.0 -! -!ISOP/WC_AHSO5=0.0 -! -!ISOP/WC_AHMS=0.0 -! -!ISOP/WR_O3=0.0 -! -!ISOP/WR_H2O2=0.0 -! -!ISOP/WR_NO=0.0 -! -!ISOP/WR_NO2=0.0 -! -!ISOP/WR_NO3=0.0 -! -!ISOP/WR_N2O5=0.0 -! -!ISOP/WR_HONO=0.0 -! -!ISOP/WR_HNO3=0.0 -! -!ISOP/WR_HNO4=0.0 -! -!ISOP/WR_NH3=0.0 -! -!ISOP/WR_OH=0.0 -! -!ISOP/WR_HO2=0.0 -! -!ISOP/WR_CO2=0.0 -! -!ISOP/WR_SO2=0.0 -! -!ISOP/WR_H2SO4=0.0 -! -!ISOP/WR_RO21=0.0 -! -!ISOP/WR_RO25=0.0 -! -!ISOP/WR_MEOH=0.0 -! -!ISOP/WR_ETOH=0.0 -! -!ISOP/WR_ALCH=0.0 -! -!ISOP/WR_HCHO=0.0 -! -!ISOP/WR_ALD2=0.0 -! -!ISOP/WR_GLY=0.0 -! -!ISOP/WR_MGLY=0.0 -! -!ISOP/WR_KETL=0.0 -! -!ISOP/WR_ORA1=0.0 -! -!ISOP/WR_ORA2=0.0 -! -!ISOP/WR_ACID=0.0 -! -!ISOP/WR_RP16=0.0 -! -!ISOP/WR_UR21=0.0 -! -!ISOP/WR_UR28=0.0 -! -!ISOP/WR_ACID2=0.0 -! -!ISOP/WR_ASO3=0.0 -! -!ISOP/WR_ASO4=0.0 -! -!ISOP/WR_ASO5=0.0 -! -!ISOP/WR_AHSO5=0.0 -! -!ISOP/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ6 -! -SUBROUTINE SUBJ7 -! -!Indices 36 a 40 -! -! -!BIOL/NO=0.0 -! -!BIOL/NO2=0.0 -! -!BIOL/O3=-K086*<BIOL> - PJAC(:,36,3)=-TPK%K086(:)*PCONC(:,36) -! -!BIOL/HONO=0.0 -! -!BIOL/HNO3=0.0 -! -!BIOL/HNO4=0.0 -! -!BIOL/N2O5=0.0 -! -!BIOL/NO3=-K085*<BIOL> - PJAC(:,36,8)=-TPK%K085(:)*PCONC(:,36) -! -!BIOL/NH3=0.0 -! -!BIOL/HO2=0.0 -! -!BIOL/CO=0.0 -! -!BIOL/H2O2=0.0 -! -!BIOL/SO2=0.0 -! -!BIOL/H2SO4=0.0 -! -!BIOL/OH=-K084*<BIOL> - PJAC(:,36,15)=-TPK%K084(:)*PCONC(:,36) -! -!BIOL/ETHE=0.0 -! -!BIOL/OLEL=0.0 -! -!BIOL/OLEH=0.0 -! -!BIOL/ALKL=0.0 -! -!BIOL/ALKM=0.0 -! -!BIOL/ALKH=0.0 -! -!BIOL/AROH=0.0 -! -!BIOL/AROL=0.0 -! -!BIOL/AROO=0.0 -! -!BIOL/ARAL=0.0 -! -!BIOL/ARAC=0.0 -! -!BIOL/PAH=0.0 -! -!BIOL/HCHO=0.0 -! -!BIOL/ALD2=0.0 -! -!BIOL/KETL=0.0 -! -!BIOL/KETH=0.0 -! -!BIOL/MEOH=0.0 -! -!BIOL/ETOH=0.0 -! -!BIOL/ALCH=0.0 -! -!BIOL/ISOP=0.0 -! -!BIOL/BIOL=-K084*<OH>-K085*<NO3>-K086*<O3>-K087*<O> - PJAC(:,36,36)=-TPK%K084(:)*PCONC(:,15)-TPK%K085(:)*PCONC(:,8)-TPK%K086(:)*PCON& -&C(:,3)-TPK%K087(:)*TPK%O(:) -! -!BIOL/BIOH=0.0 -! -!BIOL/MTBE=0.0 -! -!BIOL/MVK=0.0 -! -!BIOL/MCR=0.0 -! -!BIOL/MGLY=0.0 -! -!BIOL/GLY=0.0 -! -!BIOL/ORA1=0.0 -! -!BIOL/ORA2=0.0 -! -!BIOL/ACID=0.0 -! -!BIOL/UR28=0.0 -! -!BIOL/UR21=0.0 -! -!BIOL/URG2=0.0 -! -!BIOL/UR26=0.0 -! -!BIOL/RPG2=0.0 -! -!BIOL/RP18=0.0 -! -!BIOL/RPG3=0.0 -! -!BIOL/URG4=0.0 -! -!BIOL/UR8=0.0 -! -!BIOL/UR17=0.0 -! -!BIOL/UR7=0.0 -! -!BIOL/RPR3=0.0 -! -!BIOL/URG6=0.0 -! -!BIOL/UR22=0.0 -! -!BIOL/URG7=0.0 -! -!BIOL/RPR4=0.0 -! -!BIOL/RPR7=0.0 -! -!BIOL/RPG7=0.0 -! -!BIOL/URG8=0.0 -! -!BIOL/UR19=0.0 -! -!BIOL/URG9=0.0 -! -!BIOL/AP7=0.0 -! -!BIOL/URG10=0.0 -! -!BIOL/RPR1=0.0 -! -!BIOL/RPR5=0.0 -! -!BIOL/RPR8=0.0 -! -!BIOL/RP10=0.0 -! -!BIOL/RP11=0.0 -! -!BIOL/RP16=0.0 -! -!BIOL/RPRL=0.0 -! -!BIOL/APAN=0.0 -! -!BIOL/PAN1=0.0 -! -!BIOL/PAN2=0.0 -! -!BIOL/PAN3=0.0 -! -!BIOL/PAN4=0.0 -! -!BIOL/PAN6=0.0 -! -!BIOL/PAN7=0.0 -! -!BIOL/PAN8=0.0 -! -!BIOL/PN10=0.0 -! -!BIOL/RO2T=0.0 -! -!BIOL/RO21=0.0 -! -!BIOL/RO25=0.0 -! -!BIOL/WC_O3=0.0 -! -!BIOL/WC_H2O2=0.0 -! -!BIOL/WC_NO=0.0 -! -!BIOL/WC_NO2=0.0 -! -!BIOL/WC_NO3=0.0 -! -!BIOL/WC_N2O5=0.0 -! -!BIOL/WC_HONO=0.0 -! -!BIOL/WC_HNO3=0.0 -! -!BIOL/WC_HNO4=0.0 -! -!BIOL/WC_NH3=0.0 -! -!BIOL/WC_OH=0.0 -! -!BIOL/WC_HO2=0.0 -! -!BIOL/WC_CO2=0.0 -! -!BIOL/WC_SO2=0.0 -! -!BIOL/WC_H2SO4=0.0 -! -!BIOL/WC_RO21=0.0 -! -!BIOL/WC_RO25=0.0 -! -!BIOL/WC_MEOH=0.0 -! -!BIOL/WC_ETOH=0.0 -! -!BIOL/WC_ALCH=0.0 -! -!BIOL/WC_HCHO=0.0 -! -!BIOL/WC_ALD2=0.0 -! -!BIOL/WC_GLY=0.0 -! -!BIOL/WC_MGLY=0.0 -! -!BIOL/WC_KETL=0.0 -! -!BIOL/WC_ORA1=0.0 -! -!BIOL/WC_ORA2=0.0 -! -!BIOL/WC_ACID=0.0 -! -!BIOL/WC_RP16=0.0 -! -!BIOL/WC_UR21=0.0 -! -!BIOL/WC_UR28=0.0 -! -!BIOL/WC_ACID2=0.0 -! -!BIOL/WC_ASO3=0.0 -! -!BIOL/WC_ASO4=0.0 -! -!BIOL/WC_ASO5=0.0 -! -!BIOL/WC_AHSO5=0.0 -! -!BIOL/WC_AHMS=0.0 -! -!BIOL/WR_O3=0.0 -! -!BIOL/WR_H2O2=0.0 -! -!BIOL/WR_NO=0.0 -! -!BIOL/WR_NO2=0.0 -! -!BIOL/WR_NO3=0.0 -! -!BIOL/WR_N2O5=0.0 -! -!BIOL/WR_HONO=0.0 -! -!BIOL/WR_HNO3=0.0 -! -!BIOL/WR_HNO4=0.0 -! -!BIOL/WR_NH3=0.0 -! -!BIOL/WR_OH=0.0 -! -!BIOL/WR_HO2=0.0 -! -!BIOL/WR_CO2=0.0 -! -!BIOL/WR_SO2=0.0 -! -!BIOL/WR_H2SO4=0.0 -! -!BIOL/WR_RO21=0.0 -! -!BIOL/WR_RO25=0.0 -! -!BIOL/WR_MEOH=0.0 -! -!BIOL/WR_ETOH=0.0 -! -!BIOL/WR_ALCH=0.0 -! -!BIOL/WR_HCHO=0.0 -! -!BIOL/WR_ALD2=0.0 -! -!BIOL/WR_GLY=0.0 -! -!BIOL/WR_MGLY=0.0 -! -!BIOL/WR_KETL=0.0 -! -!BIOL/WR_ORA1=0.0 -! -!BIOL/WR_ORA2=0.0 -! -!BIOL/WR_ACID=0.0 -! -!BIOL/WR_RP16=0.0 -! -!BIOL/WR_UR21=0.0 -! -!BIOL/WR_UR28=0.0 -! -!BIOL/WR_ACID2=0.0 -! -!BIOL/WR_ASO3=0.0 -! -!BIOL/WR_ASO4=0.0 -! -!BIOL/WR_ASO5=0.0 -! -!BIOL/WR_AHSO5=0.0 -! -!BIOL/WR_AHMS=0.0 -! -!BIOH/NO=0.0 -! -!BIOH/NO2=0.0 -! -!BIOH/O3=-K090*<BIOH> - PJAC(:,37,3)=-TPK%K090(:)*PCONC(:,37) -! -!BIOH/HONO=0.0 -! -!BIOH/HNO3=0.0 -! -!BIOH/HNO4=0.0 -! -!BIOH/N2O5=0.0 -! -!BIOH/NO3=-K089*<BIOH> - PJAC(:,37,8)=-TPK%K089(:)*PCONC(:,37) -! -!BIOH/NH3=0.0 -! -!BIOH/HO2=0.0 -! -!BIOH/CO=0.0 -! -!BIOH/H2O2=0.0 -! -!BIOH/SO2=0.0 -! -!BIOH/H2SO4=0.0 -! -!BIOH/OH=-K088*<BIOH> - PJAC(:,37,15)=-TPK%K088(:)*PCONC(:,37) -! -!BIOH/ETHE=0.0 -! -!BIOH/OLEL=0.0 -! -!BIOH/OLEH=0.0 -! -!BIOH/ALKL=0.0 -! -!BIOH/ALKM=0.0 -! -!BIOH/ALKH=0.0 -! -!BIOH/AROH=0.0 -! -!BIOH/AROL=0.0 -! -!BIOH/AROO=0.0 -! -!BIOH/ARAL=0.0 -! -!BIOH/ARAC=0.0 -! -!BIOH/PAH=0.0 -! -!BIOH/HCHO=0.0 -! -!BIOH/ALD2=0.0 -! -!BIOH/KETL=0.0 -! -!BIOH/KETH=0.0 -! -!BIOH/MEOH=0.0 -! -!BIOH/ETOH=0.0 -! -!BIOH/ALCH=0.0 -! -!BIOH/ISOP=0.0 -! -!BIOH/BIOL=0.0 -! -!BIOH/BIOH=-K088*<OH>-K089*<NO3>-K090*<O3>-K091*<O> - PJAC(:,37,37)=-TPK%K088(:)*PCONC(:,15)-TPK%K089(:)*PCONC(:,8)-TPK%K090(:)*PCON& -&C(:,3)-TPK%K091(:)*TPK%O(:) -! -!BIOH/MTBE=0.0 -! -!BIOH/MVK=0.0 -! -!BIOH/MCR=0.0 -! -!BIOH/MGLY=0.0 -! -!BIOH/GLY=0.0 -! -!BIOH/ORA1=0.0 -! -!BIOH/ORA2=0.0 -! -!BIOH/ACID=0.0 -! -!BIOH/UR28=0.0 -! -!BIOH/UR21=0.0 -! -!BIOH/URG2=0.0 -! -!BIOH/UR26=0.0 -! -!BIOH/RPG2=0.0 -! -!BIOH/RP18=0.0 -! -!BIOH/RPG3=0.0 -! -!BIOH/URG4=0.0 -! -!BIOH/UR8=0.0 -! -!BIOH/UR17=0.0 -! -!BIOH/UR7=0.0 -! -!BIOH/RPR3=0.0 -! -!BIOH/URG6=0.0 -! -!BIOH/UR22=0.0 -! -!BIOH/URG7=0.0 -! -!BIOH/RPR4=0.0 -! -!BIOH/RPR7=0.0 -! -!BIOH/RPG7=0.0 -! -!BIOH/URG8=0.0 -! -!BIOH/UR19=0.0 -! -!BIOH/URG9=0.0 -! -!BIOH/AP7=0.0 -! -!BIOH/URG10=0.0 -! -!BIOH/RPR1=0.0 -! -!BIOH/RPR5=0.0 -! -!BIOH/RPR8=0.0 -! -!BIOH/RP10=0.0 -! -!BIOH/RP11=0.0 -! -!BIOH/RP16=0.0 -! -!BIOH/RPRL=0.0 -! -!BIOH/APAN=0.0 -! -!BIOH/PAN1=0.0 -! -!BIOH/PAN2=0.0 -! -!BIOH/PAN3=0.0 -! -!BIOH/PAN4=0.0 -! -!BIOH/PAN6=0.0 -! -!BIOH/PAN7=0.0 -! -!BIOH/PAN8=0.0 -! -!BIOH/PN10=0.0 -! -!BIOH/RO2T=0.0 -! -!BIOH/RO21=0.0 -! -!BIOH/RO25=0.0 -! -!BIOH/WC_O3=0.0 -! -!BIOH/WC_H2O2=0.0 -! -!BIOH/WC_NO=0.0 -! -!BIOH/WC_NO2=0.0 -! -!BIOH/WC_NO3=0.0 -! -!BIOH/WC_N2O5=0.0 -! -!BIOH/WC_HONO=0.0 -! -!BIOH/WC_HNO3=0.0 -! -!BIOH/WC_HNO4=0.0 -! -!BIOH/WC_NH3=0.0 -! -!BIOH/WC_OH=0.0 -! -!BIOH/WC_HO2=0.0 -! -!BIOH/WC_CO2=0.0 -! -!BIOH/WC_SO2=0.0 -! -!BIOH/WC_H2SO4=0.0 -! -!BIOH/WC_RO21=0.0 -! -!BIOH/WC_RO25=0.0 -! -!BIOH/WC_MEOH=0.0 -! -!BIOH/WC_ETOH=0.0 -! -!BIOH/WC_ALCH=0.0 -! -!BIOH/WC_HCHO=0.0 -! -!BIOH/WC_ALD2=0.0 -! -!BIOH/WC_GLY=0.0 -! -!BIOH/WC_MGLY=0.0 -! -!BIOH/WC_KETL=0.0 -! -!BIOH/WC_ORA1=0.0 -! -!BIOH/WC_ORA2=0.0 -! -!BIOH/WC_ACID=0.0 -! -!BIOH/WC_RP16=0.0 -! -!BIOH/WC_UR21=0.0 -! -!BIOH/WC_UR28=0.0 -! -!BIOH/WC_ACID2=0.0 -! -!BIOH/WC_ASO3=0.0 -! -!BIOH/WC_ASO4=0.0 -! -!BIOH/WC_ASO5=0.0 -! -!BIOH/WC_AHSO5=0.0 -! -!BIOH/WC_AHMS=0.0 -! -!BIOH/WR_O3=0.0 -! -!BIOH/WR_H2O2=0.0 -! -!BIOH/WR_NO=0.0 -! -!BIOH/WR_NO2=0.0 -! -!BIOH/WR_NO3=0.0 -! -!BIOH/WR_N2O5=0.0 -! -!BIOH/WR_HONO=0.0 -! -!BIOH/WR_HNO3=0.0 -! -!BIOH/WR_HNO4=0.0 -! -!BIOH/WR_NH3=0.0 -! -!BIOH/WR_OH=0.0 -! -!BIOH/WR_HO2=0.0 -! -!BIOH/WR_CO2=0.0 -! -!BIOH/WR_SO2=0.0 -! -!BIOH/WR_H2SO4=0.0 -! -!BIOH/WR_RO21=0.0 -! -!BIOH/WR_RO25=0.0 -! -!BIOH/WR_MEOH=0.0 -! -!BIOH/WR_ETOH=0.0 -! -!BIOH/WR_ALCH=0.0 -! -!BIOH/WR_HCHO=0.0 -! -!BIOH/WR_ALD2=0.0 -! -!BIOH/WR_GLY=0.0 -! -!BIOH/WR_MGLY=0.0 -! -!BIOH/WR_KETL=0.0 -! -!BIOH/WR_ORA1=0.0 -! -!BIOH/WR_ORA2=0.0 -! -!BIOH/WR_ACID=0.0 -! -!BIOH/WR_RP16=0.0 -! -!BIOH/WR_UR21=0.0 -! -!BIOH/WR_UR28=0.0 -! -!BIOH/WR_ACID2=0.0 -! -!BIOH/WR_ASO3=0.0 -! -!BIOH/WR_ASO4=0.0 -! -!BIOH/WR_ASO5=0.0 -! -!BIOH/WR_AHSO5=0.0 -! -!BIOH/WR_AHMS=0.0 -! -!MTBE/NO=0.0 -! -!MTBE/NO2=0.0 -! -!MTBE/O3=0.0 -! -!MTBE/HONO=0.0 -! -!MTBE/HNO3=0.0 -! -!MTBE/HNO4=0.0 -! -!MTBE/N2O5=0.0 -! -!MTBE/NO3=0.0 -! -!MTBE/NH3=0.0 -! -!MTBE/HO2=0.0 -! -!MTBE/CO=0.0 -! -!MTBE/H2O2=0.0 -! -!MTBE/SO2=0.0 -! -!MTBE/H2SO4=0.0 -! -!MTBE/OH=-K068*<MTBE> - PJAC(:,38,15)=-TPK%K068(:)*PCONC(:,38) -! -!MTBE/ETHE=0.0 -! -!MTBE/OLEL=0.0 -! -!MTBE/OLEH=0.0 -! -!MTBE/ALKL=0.0 -! -!MTBE/ALKM=0.0 -! -!MTBE/ALKH=0.0 -! -!MTBE/AROH=0.0 -! -!MTBE/AROL=0.0 -! -!MTBE/AROO=0.0 -! -!MTBE/ARAL=0.0 -! -!MTBE/ARAC=0.0 -! -!MTBE/PAH=0.0 -! -!MTBE/HCHO=0.0 -! -!MTBE/ALD2=0.0 -! -!MTBE/KETL=0.0 -! -!MTBE/KETH=0.0 -! -!MTBE/MEOH=0.0 -! -!MTBE/ETOH=0.0 -! -!MTBE/ALCH=0.0 -! -!MTBE/ISOP=0.0 -! -!MTBE/BIOL=0.0 -! -!MTBE/BIOH=0.0 -! -!MTBE/MTBE=-K068*<OH> - PJAC(:,38,38)=-TPK%K068(:)*PCONC(:,15) -! -!MTBE/MVK=0.0 -! -!MTBE/MCR=0.0 -! -!MTBE/MGLY=0.0 -! -!MTBE/GLY=0.0 -! -!MTBE/ORA1=0.0 -! -!MTBE/ORA2=0.0 -! -!MTBE/ACID=0.0 -! -!MTBE/UR28=0.0 -! -!MTBE/UR21=0.0 -! -!MTBE/URG2=0.0 -! -!MTBE/UR26=0.0 -! -!MTBE/RPG2=0.0 -! -!MTBE/RP18=0.0 -! -!MTBE/RPG3=0.0 -! -!MTBE/URG4=0.0 -! -!MTBE/UR8=0.0 -! -!MTBE/UR17=0.0 -! -!MTBE/UR7=0.0 -! -!MTBE/RPR3=0.0 -! -!MTBE/URG6=0.0 -! -!MTBE/UR22=0.0 -! -!MTBE/URG7=0.0 -! -!MTBE/RPR4=0.0 -! -!MTBE/RPR7=0.0 -! -!MTBE/RPG7=0.0 -! -!MTBE/URG8=0.0 -! -!MTBE/UR19=0.0 -! -!MTBE/URG9=0.0 -! -!MTBE/AP7=0.0 -! -!MTBE/URG10=0.0 -! -!MTBE/RPR1=0.0 -! -!MTBE/RPR5=0.0 -! -!MTBE/RPR8=0.0 -! -!MTBE/RP10=0.0 -! -!MTBE/RP11=0.0 -! -!MTBE/RP16=0.0 -! -!MTBE/RPRL=0.0 -! -!MTBE/APAN=0.0 -! -!MTBE/PAN1=0.0 -! -!MTBE/PAN2=0.0 -! -!MTBE/PAN3=0.0 -! -!MTBE/PAN4=0.0 -! -!MTBE/PAN6=0.0 -! -!MTBE/PAN7=0.0 -! -!MTBE/PAN8=0.0 -! -!MTBE/PN10=0.0 -! -!MTBE/RO2T=0.0 -! -!MTBE/RO21=0.0 -! -!MTBE/RO25=0.0 -! -!MTBE/WC_O3=0.0 -! -!MTBE/WC_H2O2=0.0 -! -!MTBE/WC_NO=0.0 -! -!MTBE/WC_NO2=0.0 -! -!MTBE/WC_NO3=0.0 -! -!MTBE/WC_N2O5=0.0 -! -!MTBE/WC_HONO=0.0 -! -!MTBE/WC_HNO3=0.0 -! -!MTBE/WC_HNO4=0.0 -! -!MTBE/WC_NH3=0.0 -! -!MTBE/WC_OH=0.0 -! -!MTBE/WC_HO2=0.0 -! -!MTBE/WC_CO2=0.0 -! -!MTBE/WC_SO2=0.0 -! -!MTBE/WC_H2SO4=0.0 -! -!MTBE/WC_RO21=0.0 -! -!MTBE/WC_RO25=0.0 -! -!MTBE/WC_MEOH=0.0 -! -!MTBE/WC_ETOH=0.0 -! -!MTBE/WC_ALCH=0.0 -! -!MTBE/WC_HCHO=0.0 -! -!MTBE/WC_ALD2=0.0 -! -!MTBE/WC_GLY=0.0 -! -!MTBE/WC_MGLY=0.0 -! -!MTBE/WC_KETL=0.0 -! -!MTBE/WC_ORA1=0.0 -! -!MTBE/WC_ORA2=0.0 -! -!MTBE/WC_ACID=0.0 -! -!MTBE/WC_RP16=0.0 -! -!MTBE/WC_UR21=0.0 -! -!MTBE/WC_UR28=0.0 -! -!MTBE/WC_ACID2=0.0 -! -!MTBE/WC_ASO3=0.0 -! -!MTBE/WC_ASO4=0.0 -! -!MTBE/WC_ASO5=0.0 -! -!MTBE/WC_AHSO5=0.0 -! -!MTBE/WC_AHMS=0.0 -! -!MTBE/WR_O3=0.0 -! -!MTBE/WR_H2O2=0.0 -! -!MTBE/WR_NO=0.0 -! -!MTBE/WR_NO2=0.0 -! -!MTBE/WR_NO3=0.0 -! -!MTBE/WR_N2O5=0.0 -! -!MTBE/WR_HONO=0.0 -! -!MTBE/WR_HNO3=0.0 -! -!MTBE/WR_HNO4=0.0 -! -!MTBE/WR_NH3=0.0 -! -!MTBE/WR_OH=0.0 -! -!MTBE/WR_HO2=0.0 -! -!MTBE/WR_CO2=0.0 -! -!MTBE/WR_SO2=0.0 -! -!MTBE/WR_H2SO4=0.0 -! -!MTBE/WR_RO21=0.0 -! -!MTBE/WR_RO25=0.0 -! -!MTBE/WR_MEOH=0.0 -! -!MTBE/WR_ETOH=0.0 -! -!MTBE/WR_ALCH=0.0 -! -!MTBE/WR_HCHO=0.0 -! -!MTBE/WR_ALD2=0.0 -! -!MTBE/WR_GLY=0.0 -! -!MTBE/WR_MGLY=0.0 -! -!MTBE/WR_KETL=0.0 -! -!MTBE/WR_ORA1=0.0 -! -!MTBE/WR_ORA2=0.0 -! -!MTBE/WR_ACID=0.0 -! -!MTBE/WR_RP16=0.0 -! -!MTBE/WR_UR21=0.0 -! -!MTBE/WR_UR28=0.0 -! -!MTBE/WR_ACID2=0.0 -! -!MTBE/WR_ASO3=0.0 -! -!MTBE/WR_ASO4=0.0 -! -!MTBE/WR_ASO5=0.0 -! -!MTBE/WR_AHSO5=0.0 -! -!MTBE/WR_AHMS=0.0 -! -!MVK/NO=+TPK%CF6*K150*<RO29>+K156*<RO211> - PJAC(:,39,1)=+TPK%CF6*TPK%K150(:)*TPK%RO29(:)+TPK%K156(:)*TPK%RO211(:) -! -!MVK/NO2=0.0 -! -!MVK/O3=+0.389*K066*<ISOP>-K281*<MVK> - PJAC(:,39,3)=+0.389*TPK%K066(:)*PCONC(:,35)-TPK%K281(:)*PCONC(:,39) -! -!MVK/HONO=0.0 -! -!MVK/HNO3=0.0 -! -!MVK/HNO4=0.0 -! -!MVK/N2O5=0.0 -! -!MVK/NO3=0.0 -! -!MVK/NH3=0.0 -! -!MVK/HO2=+K152*<RO29>+K158*<RO211> - PJAC(:,39,10)=+TPK%K152(:)*TPK%RO29(:)+TPK%K158(:)*TPK%RO211(:) -! -!MVK/CO=0.0 -! -!MVK/H2O2=0.0 -! -!MVK/SO2=0.0 -! -!MVK/H2SO4=0.0 -! -!MVK/OH=-K272*<MVK> - PJAC(:,39,15)=-TPK%K272(:)*PCONC(:,39) -! -!MVK/ETHE=0.0 -! -!MVK/OLEL=0.0 -! -!MVK/OLEH=0.0 -! -!MVK/ALKL=0.0 -! -!MVK/ALKM=0.0 -! -!MVK/ALKH=0.0 -! -!MVK/AROH=0.0 -! -!MVK/AROL=0.0 -! -!MVK/AROO=0.0 -! -!MVK/ARAL=0.0 -! -!MVK/ARAC=0.0 -! -!MVK/PAH=0.0 -! -!MVK/HCHO=0.0 -! -!MVK/ALD2=0.0 -! -!MVK/KETL=0.0 -! -!MVK/KETH=0.0 -! -!MVK/MEOH=0.0 -! -!MVK/ETOH=0.0 -! -!MVK/ALCH=0.0 -! -!MVK/ISOP=+0.389*K066*<O3> - PJAC(:,39,35)=+0.389*TPK%K066(:)*PCONC(:,3) -! -!MVK/BIOL=0.0 -! -!MVK/BIOH=0.0 -! -!MVK/MTBE=0.0 -! -!MVK/MVK=-K272*<OH>-K281*<O3>-K283*<O> - PJAC(:,39,39)=-TPK%K272(:)*PCONC(:,15)-TPK%K281(:)*PCONC(:,3)-TPK%K283(:)*TPK%& -&O(:) -! -!MVK/MCR=0.0 -! -!MVK/MGLY=0.0 -! -!MVK/GLY=0.0 -! -!MVK/ORA1=0.0 -! -!MVK/ORA2=0.0 -! -!MVK/ACID=0.0 -! -!MVK/UR28=0.0 -! -!MVK/UR21=0.0 -! -!MVK/URG2=0.0 -! -!MVK/UR26=0.0 -! -!MVK/RPG2=0.0 -! -!MVK/RP18=0.0 -! -!MVK/RPG3=0.0 -! -!MVK/URG4=0.0 -! -!MVK/UR8=0.0 -! -!MVK/UR17=0.0 -! -!MVK/UR7=0.0 -! -!MVK/RPR3=0.0 -! -!MVK/URG6=0.0 -! -!MVK/UR22=0.0 -! -!MVK/URG7=0.0 -! -!MVK/RPR4=0.0 -! -!MVK/RPR7=0.0 -! -!MVK/RPG7=0.0 -! -!MVK/URG8=0.0 -! -!MVK/UR19=0.0 -! -!MVK/URG9=0.0 -! -!MVK/AP7=0.0 -! -!MVK/URG10=0.0 -! -!MVK/RPR1=0.0 -! -!MVK/RPR5=0.0 -! -!MVK/RPR8=0.0 -! -!MVK/RP10=0.0 -! -!MVK/RP11=0.0 -! -!MVK/RP16=0.0 -! -!MVK/RPRL=0.0 -! -!MVK/APAN=0.0 -! -!MVK/PAN1=0.0 -! -!MVK/PAN2=0.0 -! -!MVK/PAN3=0.0 -! -!MVK/PAN4=0.0 -! -!MVK/PAN6=0.0 -! -!MVK/PAN7=0.0 -! -!MVK/PAN8=0.0 -! -!MVK/PN10=0.0 -! -!MVK/RO2T=+K151*<RO29>+K157*<RO211> - PJAC(:,39,85)=+TPK%K151(:)*TPK%RO29(:)+TPK%K157(:)*TPK%RO211(:) -! -!MVK/RO21=0.0 -! -!MVK/RO25=0.0 -! -!MVK/WC_O3=0.0 -! -!MVK/WC_H2O2=0.0 -! -!MVK/WC_NO=0.0 -! -!MVK/WC_NO2=0.0 -! -!MVK/WC_NO3=0.0 -! -!MVK/WC_N2O5=0.0 -! -!MVK/WC_HONO=0.0 -! -!MVK/WC_HNO3=0.0 -! -!MVK/WC_HNO4=0.0 -! -!MVK/WC_NH3=0.0 -! -!MVK/WC_OH=0.0 -! -!MVK/WC_HO2=0.0 -! -!MVK/WC_CO2=0.0 -! -!MVK/WC_SO2=0.0 -! -!MVK/WC_H2SO4=0.0 -! -!MVK/WC_RO21=0.0 -! -!MVK/WC_RO25=0.0 -! -!MVK/WC_MEOH=0.0 -! -!MVK/WC_ETOH=0.0 -! -!MVK/WC_ALCH=0.0 -! -!MVK/WC_HCHO=0.0 -! -!MVK/WC_ALD2=0.0 -! -!MVK/WC_GLY=0.0 -! -!MVK/WC_MGLY=0.0 -! -!MVK/WC_KETL=0.0 -! -!MVK/WC_ORA1=0.0 -! -!MVK/WC_ORA2=0.0 -! -!MVK/WC_ACID=0.0 -! -!MVK/WC_RP16=0.0 -! -!MVK/WC_UR21=0.0 -! -!MVK/WC_UR28=0.0 -! -!MVK/WC_ACID2=0.0 -! -!MVK/WC_ASO3=0.0 -! -!MVK/WC_ASO4=0.0 -! -!MVK/WC_ASO5=0.0 -! -!MVK/WC_AHSO5=0.0 -! -!MVK/WC_AHMS=0.0 -! -!MVK/WR_O3=0.0 -! -!MVK/WR_H2O2=0.0 -! -!MVK/WR_NO=0.0 -! -!MVK/WR_NO2=0.0 -! -!MVK/WR_NO3=0.0 -! -!MVK/WR_N2O5=0.0 -! -!MVK/WR_HONO=0.0 -! -!MVK/WR_HNO3=0.0 -! -!MVK/WR_HNO4=0.0 -! -!MVK/WR_NH3=0.0 -! -!MVK/WR_OH=0.0 -! -!MVK/WR_HO2=0.0 -! -!MVK/WR_CO2=0.0 -! -!MVK/WR_SO2=0.0 -! -!MVK/WR_H2SO4=0.0 -! -!MVK/WR_RO21=0.0 -! -!MVK/WR_RO25=0.0 -! -!MVK/WR_MEOH=0.0 -! -!MVK/WR_ETOH=0.0 -! -!MVK/WR_ALCH=0.0 -! -!MVK/WR_HCHO=0.0 -! -!MVK/WR_ALD2=0.0 -! -!MVK/WR_GLY=0.0 -! -!MVK/WR_MGLY=0.0 -! -!MVK/WR_KETL=0.0 -! -!MVK/WR_ORA1=0.0 -! -!MVK/WR_ORA2=0.0 -! -!MVK/WR_ACID=0.0 -! -!MVK/WR_RP16=0.0 -! -!MVK/WR_UR21=0.0 -! -!MVK/WR_UR28=0.0 -! -!MVK/WR_ACID2=0.0 -! -!MVK/WR_ASO3=0.0 -! -!MVK/WR_ASO4=0.0 -! -!MVK/WR_ASO5=0.0 -! -!MVK/WR_AHSO5=0.0 -! -!MVK/WR_AHMS=0.0 -! -!MCR/NO=+K153*<RO210>+K159*<RO212> - PJAC(:,40,1)=+TPK%K153(:)*TPK%RO210(:)+TPK%K159(:)*TPK%RO212(:) -! -!MCR/NO2=0.0 -! -!MCR/O3=+0.17*K066*<ISOP>-K282*<MCR> - PJAC(:,40,3)=+0.17*TPK%K066(:)*PCONC(:,35)-TPK%K282(:)*PCONC(:,40) -! -!MCR/HONO=0.0 -! -!MCR/HNO3=0.0 -! -!MCR/HNO4=0.0 -! -!MCR/N2O5=0.0 -! -!MCR/NO3=-K275*<MCR> - PJAC(:,40,8)=-TPK%K275(:)*PCONC(:,40) -! -!MCR/NH3=0.0 -! -!MCR/HO2=+K155*<RO210>+K161*<RO212> - PJAC(:,40,10)=+TPK%K155(:)*TPK%RO210(:)+TPK%K161(:)*TPK%RO212(:) -! -!MCR/CO=0.0 -! -!MCR/H2O2=0.0 -! -!MCR/SO2=0.0 -! -!MCR/H2SO4=0.0 -! -!MCR/OH=-K273*<MCR> - PJAC(:,40,15)=-TPK%K273(:)*PCONC(:,40) -! -!MCR/ETHE=0.0 -! -!MCR/OLEL=0.0 -! -!MCR/OLEH=0.0 -! -!MCR/ALKL=0.0 -! -!MCR/ALKM=0.0 -! -!MCR/ALKH=0.0 -! -!MCR/AROH=0.0 -! -!MCR/AROL=0.0 -! -!MCR/AROO=0.0 -! -!MCR/ARAL=0.0 -! -!MCR/ARAC=0.0 -! -!MCR/PAH=0.0 -! -!MCR/HCHO=0.0 -! -!MCR/ALD2=0.0 -! -!MCR/KETL=0.0 -! -!MCR/KETH=0.0 -! -!MCR/MEOH=0.0 -! -!MCR/ETOH=0.0 -! -!MCR/ALCH=0.0 -! -!MCR/ISOP=+0.17*K066*<O3> - PJAC(:,40,35)=+0.17*TPK%K066(:)*PCONC(:,3) -! -!MCR/BIOL=0.0 -! -!MCR/BIOH=0.0 -! -!MCR/MTBE=0.0 -! -!MCR/MVK=0.0 -! -!MCR/MCR=-K273*<OH>-K275*<NO3>-K282*<O3>-K284*<O> - PJAC(:,40,40)=-TPK%K273(:)*PCONC(:,15)-TPK%K275(:)*PCONC(:,8)-TPK%K282(:)*PCON& -&C(:,3)-TPK%K284(:)*TPK%O(:) -! -!MCR/MGLY=0.0 -! -!MCR/GLY=0.0 -! -!MCR/ORA1=0.0 -! -!MCR/ORA2=0.0 -! -!MCR/ACID=0.0 -! -!MCR/UR28=0.0 -! -!MCR/UR21=0.0 -! -!MCR/URG2=0.0 -! -!MCR/UR26=0.0 -! -!MCR/RPG2=0.0 -! -!MCR/RP18=0.0 -! -!MCR/RPG3=0.0 -! -!MCR/URG4=0.0 -! -!MCR/UR8=0.0 -! -!MCR/UR17=0.0 -! -!MCR/UR7=0.0 -! -!MCR/RPR3=0.0 -! -!MCR/URG6=0.0 -! -!MCR/UR22=0.0 -! -!MCR/URG7=0.0 -! -!MCR/RPR4=0.0 -! -!MCR/RPR7=0.0 -! -!MCR/RPG7=0.0 -! -!MCR/URG8=0.0 -! -!MCR/UR19=0.0 -! -!MCR/URG9=0.0 -! -!MCR/AP7=0.0 -! -!MCR/URG10=0.0 -! -!MCR/RPR1=0.0 -! -!MCR/RPR5=0.0 -! -!MCR/RPR8=0.0 -! -!MCR/RP10=0.0 -! -!MCR/RP11=0.0 -! -!MCR/RP16=0.0 -! -!MCR/RPRL=0.0 -! -!MCR/APAN=0.0 -! -!MCR/PAN1=0.0 -! -!MCR/PAN2=0.0 -! -!MCR/PAN3=0.0 -! -!MCR/PAN4=0.0 -! -!MCR/PAN6=0.0 -! -!MCR/PAN7=0.0 -! -!MCR/PAN8=0.0 -! -!MCR/PN10=0.0 -! -!MCR/RO2T=+K154*<RO210>+K160*<RO212> - PJAC(:,40,85)=+TPK%K154(:)*TPK%RO210(:)+TPK%K160(:)*TPK%RO212(:) -! -!MCR/RO21=0.0 -! -!MCR/RO25=0.0 -! -!MCR/WC_O3=0.0 -! -!MCR/WC_H2O2=0.0 -! -!MCR/WC_NO=0.0 -! -!MCR/WC_NO2=0.0 -! -!MCR/WC_NO3=0.0 -! -!MCR/WC_N2O5=0.0 -! -!MCR/WC_HONO=0.0 -! -!MCR/WC_HNO3=0.0 -! -!MCR/WC_HNO4=0.0 -! -!MCR/WC_NH3=0.0 -! -!MCR/WC_OH=0.0 -! -!MCR/WC_HO2=0.0 -! -!MCR/WC_CO2=0.0 -! -!MCR/WC_SO2=0.0 -! -!MCR/WC_H2SO4=0.0 -! -!MCR/WC_RO21=0.0 -! -!MCR/WC_RO25=0.0 -! -!MCR/WC_MEOH=0.0 -! -!MCR/WC_ETOH=0.0 -! -!MCR/WC_ALCH=0.0 -! -!MCR/WC_HCHO=0.0 -! -!MCR/WC_ALD2=0.0 -! -!MCR/WC_GLY=0.0 -! -!MCR/WC_MGLY=0.0 -! -!MCR/WC_KETL=0.0 -! -!MCR/WC_ORA1=0.0 -! -!MCR/WC_ORA2=0.0 -! -!MCR/WC_ACID=0.0 -! -!MCR/WC_RP16=0.0 -! -!MCR/WC_UR21=0.0 -! -!MCR/WC_UR28=0.0 -! -!MCR/WC_ACID2=0.0 -! -!MCR/WC_ASO3=0.0 -! -!MCR/WC_ASO4=0.0 -! -!MCR/WC_ASO5=0.0 -! -!MCR/WC_AHSO5=0.0 -! -!MCR/WC_AHMS=0.0 -! -!MCR/WR_O3=0.0 -! -!MCR/WR_H2O2=0.0 -! -!MCR/WR_NO=0.0 -! -!MCR/WR_NO2=0.0 -! -!MCR/WR_NO3=0.0 -! -!MCR/WR_N2O5=0.0 -! -!MCR/WR_HONO=0.0 -! -!MCR/WR_HNO3=0.0 -! -!MCR/WR_HNO4=0.0 -! -!MCR/WR_NH3=0.0 -! -!MCR/WR_OH=0.0 -! -!MCR/WR_HO2=0.0 -! -!MCR/WR_CO2=0.0 -! -!MCR/WR_SO2=0.0 -! -!MCR/WR_H2SO4=0.0 -! -!MCR/WR_RO21=0.0 -! -!MCR/WR_RO25=0.0 -! -!MCR/WR_MEOH=0.0 -! -!MCR/WR_ETOH=0.0 -! -!MCR/WR_ALCH=0.0 -! -!MCR/WR_HCHO=0.0 -! -!MCR/WR_ALD2=0.0 -! -!MCR/WR_GLY=0.0 -! -!MCR/WR_MGLY=0.0 -! -!MCR/WR_KETL=0.0 -! -!MCR/WR_ORA1=0.0 -! -!MCR/WR_ORA2=0.0 -! -!MCR/WR_ACID=0.0 -! -!MCR/WR_RP16=0.0 -! -!MCR/WR_UR21=0.0 -! -!MCR/WR_UR28=0.0 -! -!MCR/WR_ACID2=0.0 -! -!MCR/WR_ASO3=0.0 -! -!MCR/WR_ASO4=0.0 -! -!MCR/WR_ASO5=0.0 -! -!MCR/WR_AHSO5=0.0 -! -!MCR/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ7 -! -SUBROUTINE SUBJ8 -! -!Indices 41 a 45 -! -! -!MGLY/NO=+K234*<RO242>+K241*<RO243>+K248*<RO244>+K255*<RO245>+K262*<RO246>+K269 -!*<RO247>+K285*<RO249>+K291*<RO251>+K294*<RO252> - PJAC(:,41,1)=+TPK%K234(:)*TPK%RO242(:)+TPK%K241(:)*TPK%RO243(:)+TPK%K248(:)*TP& -&K%RO244(:)+TPK%K255(:)*TPK%RO245(:)+TPK%K262(:)*TPK%RO246(:)+TPK%K269(:)*TPK%R& -&O247(:)+TPK%K285(:)*TPK%RO249(:)+TPK%K291(:)*TPK%RO251(:)+TPK%K294(:)*TPK%RO25& -&2(:) -! -!MGLY/NO2=0.0 -! -!MGLY/O3=+0.5*K281*<MVK>+0.59*K282*<MCR> - PJAC(:,41,3)=+0.5*TPK%K281(:)*PCONC(:,39)+0.59*TPK%K282(:)*PCONC(:,40) -! -!MGLY/HONO=0.0 -! -!MGLY/HNO3=0.0 -! -!MGLY/HNO4=0.0 -! -!MGLY/N2O5=0.0 -! -!MGLY/NO3=-K278*<MGLY> - PJAC(:,41,8)=-TPK%K278(:)*PCONC(:,41) -! -!MGLY/NH3=0.0 -! -!MGLY/HO2=+K236*<RO242>+K243*<RO243>+K250*<RO244>+K257*<RO245>+K264*<RO246>+K27 -!1*<RO247>+K287*<RO249>+K292*<RO251>+K295*<RO252> - PJAC(:,41,10)=+TPK%K236(:)*TPK%RO242(:)+TPK%K243(:)*TPK%RO243(:)+TPK%K250(:)*T& -&PK%RO244(:)+TPK%K257(:)*TPK%RO245(:)+TPK%K264(:)*TPK%RO246(:)+TPK%K271(:)*TPK%& -&RO247(:)+TPK%K287(:)*TPK%RO249(:)+TPK%K292(:)*TPK%RO251(:)+TPK%K295(:)*TPK%RO2& -&52(:) -! -!MGLY/CO=0.0 -! -!MGLY/H2O2=0.0 -! -!MGLY/SO2=0.0 -! -!MGLY/H2SO4=0.0 -! -!MGLY/OH=-K274*<MGLY> - PJAC(:,41,15)=-TPK%K274(:)*PCONC(:,41) -! -!MGLY/ETHE=0.0 -! -!MGLY/OLEL=0.0 -! -!MGLY/OLEH=0.0 -! -!MGLY/ALKL=0.0 -! -!MGLY/ALKM=0.0 -! -!MGLY/ALKH=0.0 -! -!MGLY/AROH=0.0 -! -!MGLY/AROL=0.0 -! -!MGLY/AROO=0.0 -! -!MGLY/ARAL=0.0 -! -!MGLY/ARAC=0.0 -! -!MGLY/PAH=0.0 -! -!MGLY/HCHO=0.0 -! -!MGLY/ALD2=0.0 -! -!MGLY/KETL=0.0 -! -!MGLY/KETH=0.0 -! -!MGLY/MEOH=0.0 -! -!MGLY/ETOH=0.0 -! -!MGLY/ALCH=0.0 -! -!MGLY/ISOP=0.0 -! -!MGLY/BIOL=0.0 -! -!MGLY/BIOH=0.0 -! -!MGLY/MTBE=0.0 -! -!MGLY/MVK=+0.5*K281*<O3> - PJAC(:,41,39)=+0.5*TPK%K281(:)*PCONC(:,3) -! -!MGLY/MCR=+0.59*K282*<O3> - PJAC(:,41,40)=+0.59*TPK%K282(:)*PCONC(:,3) -! -!MGLY/MGLY=-K274*<OH>-K276-K278*<NO3>-KTC25-KTR25 - PJAC(:,41,41)=-TPK%K274(:)*PCONC(:,15)-TPK%K276(:)-TPK%K278(:)*PCONC(:,8)-TPK%& -&KTC25(:)-TPK%KTR25(:) -! -!MGLY/GLY=0.0 -! -!MGLY/ORA1=0.0 -! -!MGLY/ORA2=0.0 -! -!MGLY/ACID=0.0 -! -!MGLY/UR28=0.0 -! -!MGLY/UR21=0.0 -! -!MGLY/URG2=0.0 -! -!MGLY/UR26=0.0 -! -!MGLY/RPG2=0.0 -! -!MGLY/RP18=0.0 -! -!MGLY/RPG3=0.0 -! -!MGLY/URG4=0.0 -! -!MGLY/UR8=0.0 -! -!MGLY/UR17=0.0 -! -!MGLY/UR7=0.0 -! -!MGLY/RPR3=0.0 -! -!MGLY/URG6=0.0 -! -!MGLY/UR22=0.0 -! -!MGLY/URG7=0.0 -! -!MGLY/RPR4=0.0 -! -!MGLY/RPR7=0.0 -! -!MGLY/RPG7=0.0 -! -!MGLY/URG8=0.0 -! -!MGLY/UR19=0.0 -! -!MGLY/URG9=0.0 -! -!MGLY/AP7=0.0 -! -!MGLY/URG10=0.0 -! -!MGLY/RPR1=0.0 -! -!MGLY/RPR5=0.0 -! -!MGLY/RPR8=0.0 -! -!MGLY/RP10=0.0 -! -!MGLY/RP11=0.0 -! -!MGLY/RP16=0.0 -! -!MGLY/RPRL=0.0 -! -!MGLY/APAN=0.0 -! -!MGLY/PAN1=0.0 -! -!MGLY/PAN2=0.0 -! -!MGLY/PAN3=0.0 -! -!MGLY/PAN4=0.0 -! -!MGLY/PAN6=0.0 -! -!MGLY/PAN7=0.0 -! -!MGLY/PAN8=0.0 -! -!MGLY/PN10=0.0 -! -!MGLY/RO2T=+K235*<RO242>+K242*<RO243>+K249*<RO244>+K256*<RO245>+K263*<RO246>+K2 -!70*<RO247>+K286*<RO249>+K293*<RO251>+K296*<RO252> - PJAC(:,41,85)=+TPK%K235(:)*TPK%RO242(:)+TPK%K242(:)*TPK%RO243(:)+TPK%K249(:)*T& -&PK%RO244(:)+TPK%K256(:)*TPK%RO245(:)+TPK%K263(:)*TPK%RO246(:)+TPK%K270(:)*TPK%& -&RO247(:)+TPK%K286(:)*TPK%RO249(:)+TPK%K293(:)*TPK%RO251(:)+TPK%K296(:)*TPK%RO2& -&52(:) -! -!MGLY/RO21=0.0 -! -!MGLY/RO25=0.0 -! -!MGLY/WC_O3=0.0 -! -!MGLY/WC_H2O2=0.0 -! -!MGLY/WC_NO=0.0 -! -!MGLY/WC_NO2=0.0 -! -!MGLY/WC_NO3=0.0 -! -!MGLY/WC_N2O5=0.0 -! -!MGLY/WC_HONO=0.0 -! -!MGLY/WC_HNO3=0.0 -! -!MGLY/WC_HNO4=0.0 -! -!MGLY/WC_NH3=0.0 -! -!MGLY/WC_OH=0.0 -! -!MGLY/WC_HO2=0.0 -! -!MGLY/WC_CO2=0.0 -! -!MGLY/WC_SO2=0.0 -! -!MGLY/WC_H2SO4=0.0 -! -!MGLY/WC_RO21=0.0 -! -!MGLY/WC_RO25=0.0 -! -!MGLY/WC_MEOH=0.0 -! -!MGLY/WC_ETOH=0.0 -! -!MGLY/WC_ALCH=0.0 -! -!MGLY/WC_HCHO=0.0 -! -!MGLY/WC_ALD2=0.0 -! -!MGLY/WC_GLY=0.0 -! -!MGLY/WC_MGLY=+KTC56 - PJAC(:,41,111)=+TPK%KTC56(:) -! -!MGLY/WC_KETL=0.0 -! -!MGLY/WC_ORA1=0.0 -! -!MGLY/WC_ORA2=0.0 -! -!MGLY/WC_ACID=0.0 -! -!MGLY/WC_RP16=0.0 -! -!MGLY/WC_UR21=0.0 -! -!MGLY/WC_UR28=0.0 -! -!MGLY/WC_ACID2=0.0 -! -!MGLY/WC_ASO3=0.0 -! -!MGLY/WC_ASO4=0.0 -! -!MGLY/WC_ASO5=0.0 -! -!MGLY/WC_AHSO5=0.0 -! -!MGLY/WC_AHMS=0.0 -! -!MGLY/WR_O3=0.0 -! -!MGLY/WR_H2O2=0.0 -! -!MGLY/WR_NO=0.0 -! -!MGLY/WR_NO2=0.0 -! -!MGLY/WR_NO3=0.0 -! -!MGLY/WR_N2O5=0.0 -! -!MGLY/WR_HONO=0.0 -! -!MGLY/WR_HNO3=0.0 -! -!MGLY/WR_HNO4=0.0 -! -!MGLY/WR_NH3=0.0 -! -!MGLY/WR_OH=0.0 -! -!MGLY/WR_HO2=0.0 -! -!MGLY/WR_CO2=0.0 -! -!MGLY/WR_SO2=0.0 -! -!MGLY/WR_H2SO4=0.0 -! -!MGLY/WR_RO21=0.0 -! -!MGLY/WR_RO25=0.0 -! -!MGLY/WR_MEOH=0.0 -! -!MGLY/WR_ETOH=0.0 -! -!MGLY/WR_ALCH=0.0 -! -!MGLY/WR_HCHO=0.0 -! -!MGLY/WR_ALD2=0.0 -! -!MGLY/WR_GLY=0.0 -! -!MGLY/WR_MGLY=+KTR56 - PJAC(:,41,148)=+TPK%KTR56(:) -! -!MGLY/WR_KETL=0.0 -! -!MGLY/WR_ORA1=0.0 -! -!MGLY/WR_ORA2=0.0 -! -!MGLY/WR_ACID=0.0 -! -!MGLY/WR_RP16=0.0 -! -!MGLY/WR_UR21=0.0 -! -!MGLY/WR_UR28=0.0 -! -!MGLY/WR_ACID2=0.0 -! -!MGLY/WR_ASO3=0.0 -! -!MGLY/WR_ASO4=0.0 -! -!MGLY/WR_ASO5=0.0 -! -!MGLY/WR_AHSO5=0.0 -! -!MGLY/WR_AHMS=0.0 -! -!GLY/NO=0.0 -! -!GLY/NO2=0.0 -! -!GLY/O3=0.0 -! -!GLY/HONO=0.0 -! -!GLY/HNO3=0.0 -! -!GLY/HNO4=0.0 -! -!GLY/N2O5=0.0 -! -!GLY/NO3=0.0 -! -!GLY/NH3=0.0 -! -!GLY/HO2=0.0 -! -!GLY/CO=0.0 -! -!GLY/H2O2=0.0 -! -!GLY/SO2=0.0 -! -!GLY/H2SO4=0.0 -! -!GLY/OH=0.0 -! -!GLY/ETHE=0.0 -! -!GLY/OLEL=0.0 -! -!GLY/OLEH=0.0 -! -!GLY/ALKL=0.0 -! -!GLY/ALKM=0.0 -! -!GLY/ALKH=0.0 -! -!GLY/AROH=0.0 -! -!GLY/AROL=0.0 -! -!GLY/AROO=0.0 -! -!GLY/ARAL=0.0 -! -!GLY/ARAC=0.0 -! -!GLY/PAH=0.0 -! -!GLY/HCHO=0.0 -! -!GLY/ALD2=0.0 -! -!GLY/KETL=0.0 -! -!GLY/KETH=0.0 -! -!GLY/MEOH=0.0 -! -!GLY/ETOH=0.0 -! -!GLY/ALCH=0.0 -! -!GLY/ISOP=0.0 -! -!GLY/BIOL=0.0 -! -!GLY/BIOH=0.0 -! -!GLY/MTBE=0.0 -! -!GLY/MVK=0.0 -! -!GLY/MCR=0.0 -! -!GLY/MGLY=0.0 -! -!GLY/GLY=-KTC23-KTR23 - PJAC(:,42,42)=-TPK%KTC23(:)-TPK%KTR23(:) -! -!GLY/ORA1=0.0 -! -!GLY/ORA2=0.0 -! -!GLY/ACID=0.0 -! -!GLY/UR28=0.0 -! -!GLY/UR21=0.0 -! -!GLY/URG2=0.0 -! -!GLY/UR26=0.0 -! -!GLY/RPG2=0.0 -! -!GLY/RP18=0.0 -! -!GLY/RPG3=0.0 -! -!GLY/URG4=0.0 -! -!GLY/UR8=0.0 -! -!GLY/UR17=0.0 -! -!GLY/UR7=0.0 -! -!GLY/RPR3=0.0 -! -!GLY/URG6=0.0 -! -!GLY/UR22=0.0 -! -!GLY/URG7=0.0 -! -!GLY/RPR4=0.0 -! -!GLY/RPR7=0.0 -! -!GLY/RPG7=0.0 -! -!GLY/URG8=0.0 -! -!GLY/UR19=0.0 -! -!GLY/URG9=0.0 -! -!GLY/AP7=0.0 -! -!GLY/URG10=0.0 -! -!GLY/RPR1=0.0 -! -!GLY/RPR5=0.0 -! -!GLY/RPR8=0.0 -! -!GLY/RP10=0.0 -! -!GLY/RP11=0.0 -! -!GLY/RP16=0.0 -! -!GLY/RPRL=0.0 -! -!GLY/APAN=0.0 -! -!GLY/PAN1=0.0 -! -!GLY/PAN2=0.0 -! -!GLY/PAN3=0.0 -! -!GLY/PAN4=0.0 -! -!GLY/PAN6=0.0 -! -!GLY/PAN7=0.0 -! -!GLY/PAN8=0.0 -! -!GLY/PN10=0.0 -! -!GLY/RO2T=0.0 -! -!GLY/RO21=0.0 -! -!GLY/RO25=0.0 -! -!GLY/WC_O3=0.0 -! -!GLY/WC_H2O2=0.0 -! -!GLY/WC_NO=0.0 -! -!GLY/WC_NO2=0.0 -! -!GLY/WC_NO3=0.0 -! -!GLY/WC_N2O5=0.0 -! -!GLY/WC_HONO=0.0 -! -!GLY/WC_HNO3=0.0 -! -!GLY/WC_HNO4=0.0 -! -!GLY/WC_NH3=0.0 -! -!GLY/WC_OH=0.0 -! -!GLY/WC_HO2=0.0 -! -!GLY/WC_CO2=0.0 -! -!GLY/WC_SO2=0.0 -! -!GLY/WC_H2SO4=0.0 -! -!GLY/WC_RO21=0.0 -! -!GLY/WC_RO25=0.0 -! -!GLY/WC_MEOH=0.0 -! -!GLY/WC_ETOH=0.0 -! -!GLY/WC_ALCH=0.0 -! -!GLY/WC_HCHO=0.0 -! -!GLY/WC_ALD2=0.0 -! -!GLY/WC_GLY=+KTC54 - PJAC(:,42,110)=+TPK%KTC54(:) -! -!GLY/WC_MGLY=0.0 -! -!GLY/WC_KETL=0.0 -! -!GLY/WC_ORA1=0.0 -! -!GLY/WC_ORA2=0.0 -! -!GLY/WC_ACID=0.0 -! -!GLY/WC_RP16=0.0 -! -!GLY/WC_UR21=0.0 -! -!GLY/WC_UR28=0.0 -! -!GLY/WC_ACID2=0.0 -! -!GLY/WC_ASO3=0.0 -! -!GLY/WC_ASO4=0.0 -! -!GLY/WC_ASO5=0.0 -! -!GLY/WC_AHSO5=0.0 -! -!GLY/WC_AHMS=0.0 -! -!GLY/WR_O3=0.0 -! -!GLY/WR_H2O2=0.0 -! -!GLY/WR_NO=0.0 -! -!GLY/WR_NO2=0.0 -! -!GLY/WR_NO3=0.0 -! -!GLY/WR_N2O5=0.0 -! -!GLY/WR_HONO=0.0 -! -!GLY/WR_HNO3=0.0 -! -!GLY/WR_HNO4=0.0 -! -!GLY/WR_NH3=0.0 -! -!GLY/WR_OH=0.0 -! -!GLY/WR_HO2=0.0 -! -!GLY/WR_CO2=0.0 -! -!GLY/WR_SO2=0.0 -! -!GLY/WR_H2SO4=0.0 -! -!GLY/WR_RO21=0.0 -! -!GLY/WR_RO25=0.0 -! -!GLY/WR_MEOH=0.0 -! -!GLY/WR_ETOH=0.0 -! -!GLY/WR_ALCH=0.0 -! -!GLY/WR_HCHO=0.0 -! -!GLY/WR_ALD2=0.0 -! -!GLY/WR_GLY=+KTR54 - PJAC(:,42,147)=+TPK%KTR54(:) -! -!GLY/WR_MGLY=0.0 -! -!GLY/WR_KETL=0.0 -! -!GLY/WR_ORA1=0.0 -! -!GLY/WR_ORA2=0.0 -! -!GLY/WR_ACID=0.0 -! -!GLY/WR_RP16=0.0 -! -!GLY/WR_UR21=0.0 -! -!GLY/WR_UR28=0.0 -! -!GLY/WR_ACID2=0.0 -! -!GLY/WR_ASO3=0.0 -! -!GLY/WR_ASO4=0.0 -! -!GLY/WR_ASO5=0.0 -! -!GLY/WR_AHSO5=0.0 -! -!GLY/WR_AHMS=0.0 -! -!ORA1/NO=0.0 -! -!ORA1/NO2=0.0 -! -!ORA1/O3=+0.185*K051*<ETHE>+0.12*K056*<OLEL>+0.121*K066*<ISOP>+0.12*K281*<MVK>+ -!0.09*K282*<MCR> - PJAC(:,43,3)=+0.185*TPK%K051(:)*PCONC(:,16)+0.12*TPK%K056(:)*PCONC(:,17)+0.121& -&*TPK%K066(:)*PCONC(:,35)+0.12*TPK%K281(:)*PCONC(:,39)+0.09*TPK%K282(:)*PCONC(:& -&,40) -! -!ORA1/HONO=0.0 -! -!ORA1/HNO3=0.0 -! -!ORA1/HNO4=0.0 -! -!ORA1/N2O5=0.0 -! -!ORA1/NO3=0.0 -! -!ORA1/NH3=0.0 -! -!ORA1/HO2=0.0 -! -!ORA1/CO=0.0 -! -!ORA1/H2O2=0.0 -! -!ORA1/SO2=0.0 -! -!ORA1/H2SO4=0.0 -! -!ORA1/OH=-K347*<ORA1> - PJAC(:,43,15)=-TPK%K347(:)*PCONC(:,43) -! -!ORA1/ETHE=+0.185*K051*<O3> - PJAC(:,43,16)=+0.185*TPK%K051(:)*PCONC(:,3) -! -!ORA1/OLEL=+0.12*K056*<O3> - PJAC(:,43,17)=+0.12*TPK%K056(:)*PCONC(:,3) -! -!ORA1/OLEH=0.0 -! -!ORA1/ALKL=0.0 -! -!ORA1/ALKM=0.0 -! -!ORA1/ALKH=0.0 -! -!ORA1/AROH=0.0 -! -!ORA1/AROL=0.0 -! -!ORA1/AROO=0.0 -! -!ORA1/ARAL=0.0 -! -!ORA1/ARAC=0.0 -! -!ORA1/PAH=0.0 -! -!ORA1/HCHO=0.0 -! -!ORA1/ALD2=0.0 -! -!ORA1/KETL=0.0 -! -!ORA1/KETH=0.0 -! -!ORA1/MEOH=0.0 -! -!ORA1/ETOH=0.0 -! -!ORA1/ALCH=0.0 -! -!ORA1/ISOP=+0.121*K066*<O3> - PJAC(:,43,35)=+0.121*TPK%K066(:)*PCONC(:,3) -! -!ORA1/BIOL=0.0 -! -!ORA1/BIOH=0.0 -! -!ORA1/MTBE=0.0 -! -!ORA1/MVK=+0.12*K281*<O3> - PJAC(:,43,39)=+0.12*TPK%K281(:)*PCONC(:,3) -! -!ORA1/MCR=+0.09*K282*<O3> - PJAC(:,43,40)=+0.09*TPK%K282(:)*PCONC(:,3) -! -!ORA1/MGLY=0.0 -! -!ORA1/GLY=0.0 -! -!ORA1/ORA1=-K347*<OH>-KTC26-KTR26 - PJAC(:,43,43)=-TPK%K347(:)*PCONC(:,15)-TPK%KTC26(:)-TPK%KTR26(:) -! -!ORA1/ORA2=0.0 -! -!ORA1/ACID=0.0 -! -!ORA1/UR28=0.0 -! -!ORA1/UR21=0.0 -! -!ORA1/URG2=0.0 -! -!ORA1/UR26=0.0 -! -!ORA1/RPG2=0.0 -! -!ORA1/RP18=0.0 -! -!ORA1/RPG3=0.0 -! -!ORA1/URG4=0.0 -! -!ORA1/UR8=0.0 -! -!ORA1/UR17=0.0 -! -!ORA1/UR7=0.0 -! -!ORA1/RPR3=0.0 -! -!ORA1/URG6=0.0 -! -!ORA1/UR22=0.0 -! -!ORA1/URG7=0.0 -! -!ORA1/RPR4=0.0 -! -!ORA1/RPR7=0.0 -! -!ORA1/RPG7=0.0 -! -!ORA1/URG8=0.0 -! -!ORA1/UR19=0.0 -! -!ORA1/URG9=0.0 -! -!ORA1/AP7=0.0 -! -!ORA1/URG10=0.0 -! -!ORA1/RPR1=0.0 -! -!ORA1/RPR5=0.0 -! -!ORA1/RPR8=0.0 -! -!ORA1/RP10=0.0 -! -!ORA1/RP11=0.0 -! -!ORA1/RP16=0.0 -! -!ORA1/RPRL=0.0 -! -!ORA1/APAN=0.0 -! -!ORA1/PAN1=0.0 -! -!ORA1/PAN2=0.0 -! -!ORA1/PAN3=0.0 -! -!ORA1/PAN4=0.0 -! -!ORA1/PAN6=0.0 -! -!ORA1/PAN7=0.0 -! -!ORA1/PAN8=0.0 -! -!ORA1/PN10=0.0 -! -!ORA1/RO2T=0.0 -! -!ORA1/RO21=0.0 -! -!ORA1/RO25=0.0 -! -!ORA1/WC_O3=0.0 -! -!ORA1/WC_H2O2=0.0 -! -!ORA1/WC_NO=0.0 -! -!ORA1/WC_NO2=0.0 -! -!ORA1/WC_NO3=0.0 -! -!ORA1/WC_N2O5=0.0 -! -!ORA1/WC_HONO=0.0 -! -!ORA1/WC_HNO3=0.0 -! -!ORA1/WC_HNO4=0.0 -! -!ORA1/WC_NH3=0.0 -! -!ORA1/WC_OH=0.0 -! -!ORA1/WC_HO2=0.0 -! -!ORA1/WC_CO2=0.0 -! -!ORA1/WC_SO2=0.0 -! -!ORA1/WC_H2SO4=0.0 -! -!ORA1/WC_RO21=0.0 -! -!ORA1/WC_RO25=0.0 -! -!ORA1/WC_MEOH=0.0 -! -!ORA1/WC_ETOH=0.0 -! -!ORA1/WC_ALCH=0.0 -! -!ORA1/WC_HCHO=0.0 -! -!ORA1/WC_ALD2=0.0 -! -!ORA1/WC_GLY=0.0 -! -!ORA1/WC_MGLY=0.0 -! -!ORA1/WC_KETL=0.0 -! -!ORA1/WC_ORA1=+KTC57 - PJAC(:,43,113)=+TPK%KTC57(:) -! -!ORA1/WC_ORA2=0.0 -! -!ORA1/WC_ACID=0.0 -! -!ORA1/WC_RP16=0.0 -! -!ORA1/WC_UR21=0.0 -! -!ORA1/WC_UR28=0.0 -! -!ORA1/WC_ACID2=0.0 -! -!ORA1/WC_ASO3=0.0 -! -!ORA1/WC_ASO4=0.0 -! -!ORA1/WC_ASO5=0.0 -! -!ORA1/WC_AHSO5=0.0 -! -!ORA1/WC_AHMS=0.0 -! -!ORA1/WR_O3=0.0 -! -!ORA1/WR_H2O2=0.0 -! -!ORA1/WR_NO=0.0 -! -!ORA1/WR_NO2=0.0 -! -!ORA1/WR_NO3=0.0 -! -!ORA1/WR_N2O5=0.0 -! -!ORA1/WR_HONO=0.0 -! -!ORA1/WR_HNO3=0.0 -! -!ORA1/WR_HNO4=0.0 -! -!ORA1/WR_NH3=0.0 -! -!ORA1/WR_OH=0.0 -! -!ORA1/WR_HO2=0.0 -! -!ORA1/WR_CO2=0.0 -! -!ORA1/WR_SO2=0.0 -! -!ORA1/WR_H2SO4=0.0 -! -!ORA1/WR_RO21=0.0 -! -!ORA1/WR_RO25=0.0 -! -!ORA1/WR_MEOH=0.0 -! -!ORA1/WR_ETOH=0.0 -! -!ORA1/WR_ALCH=0.0 -! -!ORA1/WR_HCHO=0.0 -! -!ORA1/WR_ALD2=0.0 -! -!ORA1/WR_GLY=0.0 -! -!ORA1/WR_MGLY=0.0 -! -!ORA1/WR_KETL=0.0 -! -!ORA1/WR_ORA1=+KTR57 - PJAC(:,43,150)=+TPK%KTR57(:) -! -!ORA1/WR_ORA2=0.0 -! -!ORA1/WR_ACID=0.0 -! -!ORA1/WR_RP16=0.0 -! -!ORA1/WR_UR21=0.0 -! -!ORA1/WR_UR28=0.0 -! -!ORA1/WR_ACID2=0.0 -! -!ORA1/WR_ASO3=0.0 -! -!ORA1/WR_ASO4=0.0 -! -!ORA1/WR_ASO5=0.0 -! -!ORA1/WR_AHSO5=0.0 -! -!ORA1/WR_AHMS=0.0 -! -!ORA2/NO=0.0 -! -!ORA2/NO2=0.0 -! -!ORA2/O3=+0.12*K056*<OLEL> - PJAC(:,44,3)=+0.12*TPK%K056(:)*PCONC(:,17) -! -!ORA2/HONO=0.0 -! -!ORA2/HNO3=0.0 -! -!ORA2/HNO4=0.0 -! -!ORA2/N2O5=0.0 -! -!ORA2/NO3=0.0 -! -!ORA2/NH3=0.0 -! -!ORA2/HO2=+K142*<RO26>+K148*<RO28>+0.5*K166*<RO239>+0.5*K289*<RO250> - PJAC(:,44,10)=+TPK%K142(:)*TPK%RO26(:)+TPK%K148(:)*TPK%RO28(:)+0.5*TPK%K166(:)& -&*TPK%RO239(:)+0.5*TPK%K289(:)*TPK%RO250(:) -! -!ORA2/CO=0.0 -! -!ORA2/H2O2=0.0 -! -!ORA2/SO2=0.0 -! -!ORA2/H2SO4=0.0 -! -!ORA2/OH=-K348*<ORA2> - PJAC(:,44,15)=-TPK%K348(:)*PCONC(:,44) -! -!ORA2/ETHE=0.0 -! -!ORA2/OLEL=+0.12*K056*<O3> - PJAC(:,44,17)=+0.12*TPK%K056(:)*PCONC(:,3) -! -!ORA2/OLEH=0.0 -! -!ORA2/ALKL=0.0 -! -!ORA2/ALKM=0.0 -! -!ORA2/ALKH=0.0 -! -!ORA2/AROH=0.0 -! -!ORA2/AROL=0.0 -! -!ORA2/AROO=0.0 -! -!ORA2/ARAL=0.0 -! -!ORA2/ARAC=0.0 -! -!ORA2/PAH=0.0 -! -!ORA2/HCHO=0.0 -! -!ORA2/ALD2=0.0 -! -!ORA2/KETL=0.0 -! -!ORA2/KETH=0.0 -! -!ORA2/MEOH=0.0 -! -!ORA2/ETOH=0.0 -! -!ORA2/ALCH=0.0 -! -!ORA2/ISOP=0.0 -! -!ORA2/BIOL=0.0 -! -!ORA2/BIOH=0.0 -! -!ORA2/MTBE=0.0 -! -!ORA2/MVK=0.0 -! -!ORA2/MCR=0.0 -! -!ORA2/MGLY=0.0 -! -!ORA2/GLY=0.0 -! -!ORA2/ORA1=0.0 -! -!ORA2/ORA2=-K348*<OH>-KTC27-KTR27 - PJAC(:,44,44)=-TPK%K348(:)*PCONC(:,15)-TPK%KTC27(:)-TPK%KTR27(:) -! -!ORA2/ACID=0.0 -! -!ORA2/UR28=0.0 -! -!ORA2/UR21=0.0 -! -!ORA2/URG2=0.0 -! -!ORA2/UR26=0.0 -! -!ORA2/RPG2=0.0 -! -!ORA2/RP18=0.0 -! -!ORA2/RPG3=0.0 -! -!ORA2/URG4=0.0 -! -!ORA2/UR8=0.0 -! -!ORA2/UR17=0.0 -! -!ORA2/UR7=0.0 -! -!ORA2/RPR3=0.0 -! -!ORA2/URG6=0.0 -! -!ORA2/UR22=0.0 -! -!ORA2/URG7=0.0 -! -!ORA2/RPR4=0.0 -! -!ORA2/RPR7=0.0 -! -!ORA2/RPG7=0.0 -! -!ORA2/URG8=0.0 -! -!ORA2/UR19=0.0 -! -!ORA2/URG9=0.0 -! -!ORA2/AP7=0.0 -! -!ORA2/URG10=0.0 -! -!ORA2/RPR1=0.0 -! -!ORA2/RPR5=0.0 -! -!ORA2/RPR8=0.0 -! -!ORA2/RP10=0.0 -! -!ORA2/RP11=0.0 -! -!ORA2/RP16=0.0 -! -!ORA2/RPRL=0.0 -! -!ORA2/APAN=0.0 -! -!ORA2/PAN1=0.0 -! -!ORA2/PAN2=0.0 -! -!ORA2/PAN3=0.0 -! -!ORA2/PAN4=0.0 -! -!ORA2/PAN6=0.0 -! -!ORA2/PAN7=0.0 -! -!ORA2/PAN8=0.0 -! -!ORA2/PN10=0.0 -! -!ORA2/RO2T=0.0 -! -!ORA2/RO21=0.0 -! -!ORA2/RO25=0.0 -! -!ORA2/WC_O3=0.0 -! -!ORA2/WC_H2O2=0.0 -! -!ORA2/WC_NO=0.0 -! -!ORA2/WC_NO2=0.0 -! -!ORA2/WC_NO3=0.0 -! -!ORA2/WC_N2O5=0.0 -! -!ORA2/WC_HONO=0.0 -! -!ORA2/WC_HNO3=0.0 -! -!ORA2/WC_HNO4=0.0 -! -!ORA2/WC_NH3=0.0 -! -!ORA2/WC_OH=0.0 -! -!ORA2/WC_HO2=0.0 -! -!ORA2/WC_CO2=0.0 -! -!ORA2/WC_SO2=0.0 -! -!ORA2/WC_H2SO4=0.0 -! -!ORA2/WC_RO21=0.0 -! -!ORA2/WC_RO25=0.0 -! -!ORA2/WC_MEOH=0.0 -! -!ORA2/WC_ETOH=0.0 -! -!ORA2/WC_ALCH=0.0 -! -!ORA2/WC_HCHO=0.0 -! -!ORA2/WC_ALD2=0.0 -! -!ORA2/WC_GLY=0.0 -! -!ORA2/WC_MGLY=0.0 -! -!ORA2/WC_KETL=0.0 -! -!ORA2/WC_ORA1=0.0 -! -!ORA2/WC_ORA2=+KTC58 - PJAC(:,44,114)=+TPK%KTC58(:) -! -!ORA2/WC_ACID=0.0 -! -!ORA2/WC_RP16=0.0 -! -!ORA2/WC_UR21=0.0 -! -!ORA2/WC_UR28=0.0 -! -!ORA2/WC_ACID2=0.0 -! -!ORA2/WC_ASO3=0.0 -! -!ORA2/WC_ASO4=0.0 -! -!ORA2/WC_ASO5=0.0 -! -!ORA2/WC_AHSO5=0.0 -! -!ORA2/WC_AHMS=0.0 -! -!ORA2/WR_O3=0.0 -! -!ORA2/WR_H2O2=0.0 -! -!ORA2/WR_NO=0.0 -! -!ORA2/WR_NO2=0.0 -! -!ORA2/WR_NO3=0.0 -! -!ORA2/WR_N2O5=0.0 -! -!ORA2/WR_HONO=0.0 -! -!ORA2/WR_HNO3=0.0 -! -!ORA2/WR_HNO4=0.0 -! -!ORA2/WR_NH3=0.0 -! -!ORA2/WR_OH=0.0 -! -!ORA2/WR_HO2=0.0 -! -!ORA2/WR_CO2=0.0 -! -!ORA2/WR_SO2=0.0 -! -!ORA2/WR_H2SO4=0.0 -! -!ORA2/WR_RO21=0.0 -! -!ORA2/WR_RO25=0.0 -! -!ORA2/WR_MEOH=0.0 -! -!ORA2/WR_ETOH=0.0 -! -!ORA2/WR_ALCH=0.0 -! -!ORA2/WR_HCHO=0.0 -! -!ORA2/WR_ALD2=0.0 -! -!ORA2/WR_GLY=0.0 -! -!ORA2/WR_MGLY=0.0 -! -!ORA2/WR_KETL=0.0 -! -!ORA2/WR_ORA1=0.0 -! -!ORA2/WR_ORA2=+KTR58 - PJAC(:,44,151)=+TPK%KTR58(:) -! -!ORA2/WR_ACID=0.0 -! -!ORA2/WR_RP16=0.0 -! -!ORA2/WR_UR21=0.0 -! -!ORA2/WR_UR28=0.0 -! -!ORA2/WR_ACID2=0.0 -! -!ORA2/WR_ASO3=0.0 -! -!ORA2/WR_ASO4=0.0 -! -!ORA2/WR_ASO5=0.0 -! -!ORA2/WR_AHSO5=0.0 -! -!ORA2/WR_AHMS=0.0 -! -!ACID/NO=0.0 -! -!ACID/NO2=0.0 -! -!ACID/O3=+0.12*K076*<OLEH> - PJAC(:,45,3)=+0.12*TPK%K076(:)*PCONC(:,18) -! -!ACID/HONO=0.0 -! -!ACID/HNO3=0.0 -! -!ACID/HNO4=0.0 -! -!ACID/N2O5=0.0 -! -!ACID/NO3=0.0 -! -!ACID/NH3=0.0 -! -!ACID/HO2=+K142*<RO26>+K310*<RO255> - PJAC(:,45,10)=+TPK%K142(:)*TPK%RO26(:)+TPK%K310(:)*TPK%RO255(:) -! -!ACID/CO=0.0 -! -!ACID/H2O2=0.0 -! -!ACID/SO2=0.0 -! -!ACID/H2SO4=0.0 -! -!ACID/OH=-K349*<ACID> - PJAC(:,45,15)=-TPK%K349(:)*PCONC(:,45) -! -!ACID/ETHE=0.0 -! -!ACID/OLEL=0.0 -! -!ACID/OLEH=+0.12*K076*<O3> - PJAC(:,45,18)=+0.12*TPK%K076(:)*PCONC(:,3) -! -!ACID/ALKL=0.0 -! -!ACID/ALKM=0.0 -! -!ACID/ALKH=0.0 -! -!ACID/AROH=0.0 -! -!ACID/AROL=0.0 -! -!ACID/AROO=0.0 -! -!ACID/ARAL=0.0 -! -!ACID/ARAC=0.0 -! -!ACID/PAH=0.0 -! -!ACID/HCHO=0.0 -! -!ACID/ALD2=0.0 -! -!ACID/KETL=0.0 -! -!ACID/KETH=0.0 -! -!ACID/MEOH=0.0 -! -!ACID/ETOH=0.0 -! -!ACID/ALCH=0.0 -! -!ACID/ISOP=0.0 -! -!ACID/BIOL=0.0 -! -!ACID/BIOH=0.0 -! -!ACID/MTBE=0.0 -! -!ACID/MVK=0.0 -! -!ACID/MCR=0.0 -! -!ACID/MGLY=0.0 -! -!ACID/GLY=0.0 -! -!ACID/ORA1=0.0 -! -!ACID/ORA2=0.0 -! -!ACID/ACID=-K349*<OH>-KTC28-KTR28 - PJAC(:,45,45)=-TPK%K349(:)*PCONC(:,15)-TPK%KTC28(:)-TPK%KTR28(:) -! -!ACID/UR28=0.0 -! -!ACID/UR21=0.0 -! -!ACID/URG2=0.0 -! -!ACID/UR26=0.0 -! -!ACID/RPG2=0.0 -! -!ACID/RP18=0.0 -! -!ACID/RPG3=0.0 -! -!ACID/URG4=0.0 -! -!ACID/UR8=0.0 -! -!ACID/UR17=0.0 -! -!ACID/UR7=0.0 -! -!ACID/RPR3=0.0 -! -!ACID/URG6=0.0 -! -!ACID/UR22=0.0 -! -!ACID/URG7=0.0 -! -!ACID/RPR4=0.0 -! -!ACID/RPR7=0.0 -! -!ACID/RPG7=0.0 -! -!ACID/URG8=0.0 -! -!ACID/UR19=0.0 -! -!ACID/URG9=0.0 -! -!ACID/AP7=0.0 -! -!ACID/URG10=0.0 -! -!ACID/RPR1=0.0 -! -!ACID/RPR5=0.0 -! -!ACID/RPR8=0.0 -! -!ACID/RP10=0.0 -! -!ACID/RP11=0.0 -! -!ACID/RP16=0.0 -! -!ACID/RPRL=0.0 -! -!ACID/APAN=0.0 -! -!ACID/PAN1=0.0 -! -!ACID/PAN2=0.0 -! -!ACID/PAN3=0.0 -! -!ACID/PAN4=0.0 -! -!ACID/PAN6=0.0 -! -!ACID/PAN7=0.0 -! -!ACID/PAN8=0.0 -! -!ACID/PN10=0.0 -! -!ACID/RO2T=0.0 -! -!ACID/RO21=0.0 -! -!ACID/RO25=0.0 -! -!ACID/WC_O3=0.0 -! -!ACID/WC_H2O2=0.0 -! -!ACID/WC_NO=0.0 -! -!ACID/WC_NO2=0.0 -! -!ACID/WC_NO3=0.0 -! -!ACID/WC_N2O5=0.0 -! -!ACID/WC_HONO=0.0 -! -!ACID/WC_HNO3=0.0 -! -!ACID/WC_HNO4=0.0 -! -!ACID/WC_NH3=0.0 -! -!ACID/WC_OH=0.0 -! -!ACID/WC_HO2=0.0 -! -!ACID/WC_CO2=0.0 -! -!ACID/WC_SO2=0.0 -! -!ACID/WC_H2SO4=0.0 -! -!ACID/WC_RO21=0.0 -! -!ACID/WC_RO25=0.0 -! -!ACID/WC_MEOH=0.0 -! -!ACID/WC_ETOH=0.0 -! -!ACID/WC_ALCH=0.0 -! -!ACID/WC_HCHO=0.0 -! -!ACID/WC_ALD2=0.0 -! -!ACID/WC_GLY=0.0 -! -!ACID/WC_MGLY=0.0 -! -!ACID/WC_KETL=0.0 -! -!ACID/WC_ORA1=0.0 -! -!ACID/WC_ORA2=0.0 -! -!ACID/WC_ACID=+KTC59 - PJAC(:,45,115)=+TPK%KTC59(:) -! -!ACID/WC_RP16=0.0 -! -!ACID/WC_UR21=0.0 -! -!ACID/WC_UR28=0.0 -! -!ACID/WC_ACID2=0.0 -! -!ACID/WC_ASO3=0.0 -! -!ACID/WC_ASO4=0.0 -! -!ACID/WC_ASO5=0.0 -! -!ACID/WC_AHSO5=0.0 -! -!ACID/WC_AHMS=0.0 -! -!ACID/WR_O3=0.0 -! -!ACID/WR_H2O2=0.0 -! -!ACID/WR_NO=0.0 -! -!ACID/WR_NO2=0.0 -! -!ACID/WR_NO3=0.0 -! -!ACID/WR_N2O5=0.0 -! -!ACID/WR_HONO=0.0 -! -!ACID/WR_HNO3=0.0 -! -!ACID/WR_HNO4=0.0 -! -!ACID/WR_NH3=0.0 -! -!ACID/WR_OH=0.0 -! -!ACID/WR_HO2=0.0 -! -!ACID/WR_CO2=0.0 -! -!ACID/WR_SO2=0.0 -! -!ACID/WR_H2SO4=0.0 -! -!ACID/WR_RO21=0.0 -! -!ACID/WR_RO25=0.0 -! -!ACID/WR_MEOH=0.0 -! -!ACID/WR_ETOH=0.0 -! -!ACID/WR_ALCH=0.0 -! -!ACID/WR_HCHO=0.0 -! -!ACID/WR_ALD2=0.0 -! -!ACID/WR_GLY=0.0 -! -!ACID/WR_MGLY=0.0 -! -!ACID/WR_KETL=0.0 -! -!ACID/WR_ORA1=0.0 -! -!ACID/WR_ORA2=0.0 -! -!ACID/WR_ACID=+KTR59 - PJAC(:,45,152)=+TPK%KTR59(:) -! -!ACID/WR_RP16=0.0 -! -!ACID/WR_UR21=0.0 -! -!ACID/WR_UR28=0.0 -! -!ACID/WR_ACID2=0.0 -! -!ACID/WR_ASO3=0.0 -! -!ACID/WR_ASO4=0.0 -! -!ACID/WR_ASO5=0.0 -! -!ACID/WR_AHSO5=0.0 -! -!ACID/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ8 -! -SUBROUTINE SUBJ9 -! -!Indices 46 a 50 -! -! -!UR28/NO=0.0 -! -!UR28/NO2=0.0 -! -!UR28/O3=0.0 -! -!UR28/HONO=0.0 -! -!UR28/HNO3=0.0 -! -!UR28/HNO4=0.0 -! -!UR28/N2O5=0.0 -! -!UR28/NO3=0.0 -! -!UR28/NH3=0.0 -! -!UR28/HO2=+K341*<RO258> - PJAC(:,46,10)=+TPK%K341(:)*TPK%RO258(:) -! -!UR28/CO=0.0 -! -!UR28/H2O2=0.0 -! -!UR28/SO2=0.0 -! -!UR28/H2SO4=0.0 -! -!UR28/OH=0.0 -! -!UR28/ETHE=0.0 -! -!UR28/OLEL=0.0 -! -!UR28/OLEH=0.0 -! -!UR28/ALKL=0.0 -! -!UR28/ALKM=0.0 -! -!UR28/ALKH=0.0 -! -!UR28/AROH=0.0 -! -!UR28/AROL=0.0 -! -!UR28/AROO=0.0 -! -!UR28/ARAL=0.0 -! -!UR28/ARAC=0.0 -! -!UR28/PAH=0.0 -! -!UR28/HCHO=0.0 -! -!UR28/ALD2=0.0 -! -!UR28/KETL=0.0 -! -!UR28/KETH=0.0 -! -!UR28/MEOH=0.0 -! -!UR28/ETOH=0.0 -! -!UR28/ALCH=0.0 -! -!UR28/ISOP=0.0 -! -!UR28/BIOL=0.0 -! -!UR28/BIOH=0.0 -! -!UR28/MTBE=0.0 -! -!UR28/MVK=0.0 -! -!UR28/MCR=0.0 -! -!UR28/MGLY=0.0 -! -!UR28/GLY=0.0 -! -!UR28/ORA1=0.0 -! -!UR28/ORA2=0.0 -! -!UR28/ACID=0.0 -! -!UR28/UR28=-K364-KTC31-KTR31 - PJAC(:,46,46)=-TPK%K364(:)-TPK%KTC31(:)-TPK%KTR31(:) -! -!UR28/UR21=0.0 -! -!UR28/URG2=0.0 -! -!UR28/UR26=0.0 -! -!UR28/RPG2=0.0 -! -!UR28/RP18=0.0 -! -!UR28/RPG3=0.0 -! -!UR28/URG4=0.0 -! -!UR28/UR8=0.0 -! -!UR28/UR17=0.0 -! -!UR28/UR7=0.0 -! -!UR28/RPR3=0.0 -! -!UR28/URG6=0.0 -! -!UR28/UR22=0.0 -! -!UR28/URG7=0.0 -! -!UR28/RPR4=0.0 -! -!UR28/RPR7=0.0 -! -!UR28/RPG7=0.0 -! -!UR28/URG8=0.0 -! -!UR28/UR19=0.0 -! -!UR28/URG9=0.0 -! -!UR28/AP7=0.0 -! -!UR28/URG10=0.0 -! -!UR28/RPR1=0.0 -! -!UR28/RPR5=0.0 -! -!UR28/RPR8=0.0 -! -!UR28/RP10=0.0 -! -!UR28/RP11=0.0 -! -!UR28/RP16=0.0 -! -!UR28/RPRL=0.0 -! -!UR28/APAN=0.0 -! -!UR28/PAN1=0.0 -! -!UR28/PAN2=0.0 -! -!UR28/PAN3=0.0 -! -!UR28/PAN4=0.0 -! -!UR28/PAN6=0.0 -! -!UR28/PAN7=0.0 -! -!UR28/PAN8=0.0 -! -!UR28/PN10=0.0 -! -!UR28/RO2T=0.0 -! -!UR28/RO21=0.0 -! -!UR28/RO25=0.0 -! -!UR28/WC_O3=0.0 -! -!UR28/WC_H2O2=0.0 -! -!UR28/WC_NO=0.0 -! -!UR28/WC_NO2=0.0 -! -!UR28/WC_NO3=0.0 -! -!UR28/WC_N2O5=0.0 -! -!UR28/WC_HONO=0.0 -! -!UR28/WC_HNO3=0.0 -! -!UR28/WC_HNO4=0.0 -! -!UR28/WC_NH3=0.0 -! -!UR28/WC_OH=0.0 -! -!UR28/WC_HO2=0.0 -! -!UR28/WC_CO2=0.0 -! -!UR28/WC_SO2=0.0 -! -!UR28/WC_H2SO4=0.0 -! -!UR28/WC_RO21=0.0 -! -!UR28/WC_RO25=0.0 -! -!UR28/WC_MEOH=0.0 -! -!UR28/WC_ETOH=0.0 -! -!UR28/WC_ALCH=0.0 -! -!UR28/WC_HCHO=0.0 -! -!UR28/WC_ALD2=0.0 -! -!UR28/WC_GLY=0.0 -! -!UR28/WC_MGLY=0.0 -! -!UR28/WC_KETL=0.0 -! -!UR28/WC_ORA1=0.0 -! -!UR28/WC_ORA2=0.0 -! -!UR28/WC_ACID=0.0 -! -!UR28/WC_RP16=0.0 -! -!UR28/WC_UR21=0.0 -! -!UR28/WC_UR28=+KTC62 - PJAC(:,46,118)=+TPK%KTC62(:) -! -!UR28/WC_ACID2=0.0 -! -!UR28/WC_ASO3=0.0 -! -!UR28/WC_ASO4=0.0 -! -!UR28/WC_ASO5=0.0 -! -!UR28/WC_AHSO5=0.0 -! -!UR28/WC_AHMS=0.0 -! -!UR28/WR_O3=0.0 -! -!UR28/WR_H2O2=0.0 -! -!UR28/WR_NO=0.0 -! -!UR28/WR_NO2=0.0 -! -!UR28/WR_NO3=0.0 -! -!UR28/WR_N2O5=0.0 -! -!UR28/WR_HONO=0.0 -! -!UR28/WR_HNO3=0.0 -! -!UR28/WR_HNO4=0.0 -! -!UR28/WR_NH3=0.0 -! -!UR28/WR_OH=0.0 -! -!UR28/WR_HO2=0.0 -! -!UR28/WR_CO2=0.0 -! -!UR28/WR_SO2=0.0 -! -!UR28/WR_H2SO4=0.0 -! -!UR28/WR_RO21=0.0 -! -!UR28/WR_RO25=0.0 -! -!UR28/WR_MEOH=0.0 -! -!UR28/WR_ETOH=0.0 -! -!UR28/WR_ALCH=0.0 -! -!UR28/WR_HCHO=0.0 -! -!UR28/WR_ALD2=0.0 -! -!UR28/WR_GLY=0.0 -! -!UR28/WR_MGLY=0.0 -! -!UR28/WR_KETL=0.0 -! -!UR28/WR_ORA1=0.0 -! -!UR28/WR_ORA2=0.0 -! -!UR28/WR_ACID=0.0 -! -!UR28/WR_RP16=0.0 -! -!UR28/WR_UR21=0.0 -! -!UR28/WR_UR28=+KTR62 - PJAC(:,46,155)=+TPK%KTR62(:) -! -!UR28/WR_ACID2=0.0 -! -!UR28/WR_ASO3=0.0 -! -!UR28/WR_ASO4=0.0 -! -!UR28/WR_ASO5=0.0 -! -!UR28/WR_AHSO5=0.0 -! -!UR28/WR_AHMS=0.0 -! -!UR21/NO=0.0 -! -!UR21/NO2=0.0 -! -!UR21/O3=+0.12*K281*<MVK> - PJAC(:,47,3)=+0.12*TPK%K281(:)*PCONC(:,39) -! -!UR21/HONO=0.0 -! -!UR21/HNO3=0.0 -! -!UR21/HNO4=0.0 -! -!UR21/N2O5=0.0 -! -!UR21/NO3=0.0 -! -!UR21/NH3=0.0 -! -!UR21/HO2=+K279*<RO248> - PJAC(:,47,10)=+TPK%K279(:)*TPK%RO248(:) -! -!UR21/CO=0.0 -! -!UR21/H2O2=0.0 -! -!UR21/SO2=0.0 -! -!UR21/H2SO4=0.0 -! -!UR21/OH=0.0 -! -!UR21/ETHE=0.0 -! -!UR21/OLEL=0.0 -! -!UR21/OLEH=0.0 -! -!UR21/ALKL=0.0 -! -!UR21/ALKM=0.0 -! -!UR21/ALKH=0.0 -! -!UR21/AROH=0.0 -! -!UR21/AROL=0.0 -! -!UR21/AROO=0.0 -! -!UR21/ARAL=0.0 -! -!UR21/ARAC=0.0 -! -!UR21/PAH=0.0 -! -!UR21/HCHO=0.0 -! -!UR21/ALD2=0.0 -! -!UR21/KETL=0.0 -! -!UR21/KETH=0.0 -! -!UR21/MEOH=0.0 -! -!UR21/ETOH=0.0 -! -!UR21/ALCH=0.0 -! -!UR21/ISOP=0.0 -! -!UR21/BIOL=0.0 -! -!UR21/BIOH=0.0 -! -!UR21/MTBE=0.0 -! -!UR21/MVK=+0.12*K281*<O3> - PJAC(:,47,39)=+0.12*TPK%K281(:)*PCONC(:,3) -! -!UR21/MCR=0.0 -! -!UR21/MGLY=0.0 -! -!UR21/GLY=0.0 -! -!UR21/ORA1=0.0 -! -!UR21/ORA2=0.0 -! -!UR21/ACID=0.0 -! -!UR21/UR28=0.0 -! -!UR21/UR21=-K361-KTC30-KTR30 - PJAC(:,47,47)=-TPK%K361(:)-TPK%KTC30(:)-TPK%KTR30(:) -! -!UR21/URG2=0.0 -! -!UR21/UR26=0.0 -! -!UR21/RPG2=0.0 -! -!UR21/RP18=0.0 -! -!UR21/RPG3=0.0 -! -!UR21/URG4=0.0 -! -!UR21/UR8=0.0 -! -!UR21/UR17=0.0 -! -!UR21/UR7=0.0 -! -!UR21/RPR3=0.0 -! -!UR21/URG6=0.0 -! -!UR21/UR22=0.0 -! -!UR21/URG7=0.0 -! -!UR21/RPR4=0.0 -! -!UR21/RPR7=0.0 -! -!UR21/RPG7=0.0 -! -!UR21/URG8=0.0 -! -!UR21/UR19=0.0 -! -!UR21/URG9=0.0 -! -!UR21/AP7=0.0 -! -!UR21/URG10=0.0 -! -!UR21/RPR1=0.0 -! -!UR21/RPR5=0.0 -! -!UR21/RPR8=0.0 -! -!UR21/RP10=0.0 -! -!UR21/RP11=0.0 -! -!UR21/RP16=0.0 -! -!UR21/RPRL=0.0 -! -!UR21/APAN=0.0 -! -!UR21/PAN1=0.0 -! -!UR21/PAN2=0.0 -! -!UR21/PAN3=0.0 -! -!UR21/PAN4=0.0 -! -!UR21/PAN6=0.0 -! -!UR21/PAN7=0.0 -! -!UR21/PAN8=0.0 -! -!UR21/PN10=0.0 -! -!UR21/RO2T=0.0 -! -!UR21/RO21=0.0 -! -!UR21/RO25=0.0 -! -!UR21/WC_O3=0.0 -! -!UR21/WC_H2O2=0.0 -! -!UR21/WC_NO=0.0 -! -!UR21/WC_NO2=0.0 -! -!UR21/WC_NO3=0.0 -! -!UR21/WC_N2O5=0.0 -! -!UR21/WC_HONO=0.0 -! -!UR21/WC_HNO3=0.0 -! -!UR21/WC_HNO4=0.0 -! -!UR21/WC_NH3=0.0 -! -!UR21/WC_OH=0.0 -! -!UR21/WC_HO2=0.0 -! -!UR21/WC_CO2=0.0 -! -!UR21/WC_SO2=0.0 -! -!UR21/WC_H2SO4=0.0 -! -!UR21/WC_RO21=0.0 -! -!UR21/WC_RO25=0.0 -! -!UR21/WC_MEOH=0.0 -! -!UR21/WC_ETOH=0.0 -! -!UR21/WC_ALCH=0.0 -! -!UR21/WC_HCHO=0.0 -! -!UR21/WC_ALD2=0.0 -! -!UR21/WC_GLY=0.0 -! -!UR21/WC_MGLY=0.0 -! -!UR21/WC_KETL=0.0 -! -!UR21/WC_ORA1=0.0 -! -!UR21/WC_ORA2=0.0 -! -!UR21/WC_ACID=0.0 -! -!UR21/WC_RP16=0.0 -! -!UR21/WC_UR21=+KTC61 - PJAC(:,47,117)=+TPK%KTC61(:) -! -!UR21/WC_UR28=0.0 -! -!UR21/WC_ACID2=0.0 -! -!UR21/WC_ASO3=0.0 -! -!UR21/WC_ASO4=0.0 -! -!UR21/WC_ASO5=0.0 -! -!UR21/WC_AHSO5=0.0 -! -!UR21/WC_AHMS=0.0 -! -!UR21/WR_O3=0.0 -! -!UR21/WR_H2O2=0.0 -! -!UR21/WR_NO=0.0 -! -!UR21/WR_NO2=0.0 -! -!UR21/WR_NO3=0.0 -! -!UR21/WR_N2O5=0.0 -! -!UR21/WR_HONO=0.0 -! -!UR21/WR_HNO3=0.0 -! -!UR21/WR_HNO4=0.0 -! -!UR21/WR_NH3=0.0 -! -!UR21/WR_OH=0.0 -! -!UR21/WR_HO2=0.0 -! -!UR21/WR_CO2=0.0 -! -!UR21/WR_SO2=0.0 -! -!UR21/WR_H2SO4=0.0 -! -!UR21/WR_RO21=0.0 -! -!UR21/WR_RO25=0.0 -! -!UR21/WR_MEOH=0.0 -! -!UR21/WR_ETOH=0.0 -! -!UR21/WR_ALCH=0.0 -! -!UR21/WR_HCHO=0.0 -! -!UR21/WR_ALD2=0.0 -! -!UR21/WR_GLY=0.0 -! -!UR21/WR_MGLY=0.0 -! -!UR21/WR_KETL=0.0 -! -!UR21/WR_ORA1=0.0 -! -!UR21/WR_ORA2=0.0 -! -!UR21/WR_ACID=0.0 -! -!UR21/WR_RP16=0.0 -! -!UR21/WR_UR21=+KTR61 - PJAC(:,47,154)=+TPK%KTR61(:) -! -!UR21/WR_UR28=0.0 -! -!UR21/WR_ACID2=0.0 -! -!UR21/WR_ASO3=0.0 -! -!UR21/WR_ASO4=0.0 -! -!UR21/WR_ASO5=0.0 -! -!UR21/WR_AHSO5=0.0 -! -!UR21/WR_AHMS=0.0 -! -!URG2/NO=0.0 -! -!URG2/NO2=0.0 -! -!URG2/O3=0.0 -! -!URG2/HONO=0.0 -! -!URG2/HNO3=0.0 -! -!URG2/HNO4=0.0 -! -!URG2/N2O5=0.0 -! -!URG2/NO3=0.0 -! -!URG2/NH3=0.0 -! -!URG2/HO2=0.0 -! -!URG2/CO=0.0 -! -!URG2/H2O2=0.0 -! -!URG2/SO2=0.0 -! -!URG2/H2SO4=0.0 -! -!URG2/OH=+0.5562513*K335*<RPG2>+K337*<RP18> - PJAC(:,48,15)=+0.5562513*TPK%K335(:)*PCONC(:,50)+TPK%K337(:)*PCONC(:,51) -! -!URG2/ETHE=0.0 -! -!URG2/OLEL=0.0 -! -!URG2/OLEH=0.0 -! -!URG2/ALKL=0.0 -! -!URG2/ALKM=0.0 -! -!URG2/ALKH=0.0 -! -!URG2/AROH=0.0 -! -!URG2/AROL=0.0 -! -!URG2/AROO=0.0 -! -!URG2/ARAL=0.0 -! -!URG2/ARAC=0.0 -! -!URG2/PAH=0.0 -! -!URG2/HCHO=0.0 -! -!URG2/ALD2=0.0 -! -!URG2/KETL=0.0 -! -!URG2/KETH=0.0 -! -!URG2/MEOH=0.0 -! -!URG2/ETOH=0.0 -! -!URG2/ALCH=0.0 -! -!URG2/ISOP=0.0 -! -!URG2/BIOL=0.0 -! -!URG2/BIOH=0.0 -! -!URG2/MTBE=0.0 -! -!URG2/MVK=0.0 -! -!URG2/MCR=0.0 -! -!URG2/MGLY=0.0 -! -!URG2/GLY=0.0 -! -!URG2/ORA1=0.0 -! -!URG2/ORA2=0.0 -! -!URG2/ACID=0.0 -! -!URG2/UR28=0.0 -! -!URG2/UR21=0.0 -! -!URG2/URG2=-K350 - PJAC(:,48,48)=-TPK%K350(:) -! -!URG2/UR26=0.0 -! -!URG2/RPG2=+0.5562513*K335*<OH> - PJAC(:,48,50)=+0.5562513*TPK%K335(:)*PCONC(:,15) -! -!URG2/RP18=+K337*<OH> - PJAC(:,48,51)=+TPK%K337(:)*PCONC(:,15) -! -!URG2/RPG3=0.0 -! -!URG2/URG4=0.0 -! -!URG2/UR8=0.0 -! -!URG2/UR17=0.0 -! -!URG2/UR7=0.0 -! -!URG2/RPR3=0.0 -! -!URG2/URG6=0.0 -! -!URG2/UR22=0.0 -! -!URG2/URG7=0.0 -! -!URG2/RPR4=0.0 -! -!URG2/RPR7=0.0 -! -!URG2/RPG7=0.0 -! -!URG2/URG8=0.0 -! -!URG2/UR19=0.0 -! -!URG2/URG9=0.0 -! -!URG2/AP7=0.0 -! -!URG2/URG10=0.0 -! -!URG2/RPR1=0.0 -! -!URG2/RPR5=0.0 -! -!URG2/RPR8=0.0 -! -!URG2/RP10=0.0 -! -!URG2/RP11=0.0 -! -!URG2/RP16=0.0 -! -!URG2/RPRL=0.0 -! -!URG2/APAN=0.0 -! -!URG2/PAN1=0.0 -! -!URG2/PAN2=0.0 -! -!URG2/PAN3=0.0 -! -!URG2/PAN4=0.0 -! -!URG2/PAN6=0.0 -! -!URG2/PAN7=0.0 -! -!URG2/PAN8=0.0 -! -!URG2/PN10=0.0 -! -!URG2/RO2T=0.0 -! -!URG2/RO21=0.0 -! -!URG2/RO25=0.0 -! -!URG2/WC_O3=0.0 -! -!URG2/WC_H2O2=0.0 -! -!URG2/WC_NO=0.0 -! -!URG2/WC_NO2=0.0 -! -!URG2/WC_NO3=0.0 -! -!URG2/WC_N2O5=0.0 -! -!URG2/WC_HONO=0.0 -! -!URG2/WC_HNO3=0.0 -! -!URG2/WC_HNO4=0.0 -! -!URG2/WC_NH3=0.0 -! -!URG2/WC_OH=0.0 -! -!URG2/WC_HO2=0.0 -! -!URG2/WC_CO2=0.0 -! -!URG2/WC_SO2=0.0 -! -!URG2/WC_H2SO4=0.0 -! -!URG2/WC_RO21=0.0 -! -!URG2/WC_RO25=0.0 -! -!URG2/WC_MEOH=0.0 -! -!URG2/WC_ETOH=0.0 -! -!URG2/WC_ALCH=0.0 -! -!URG2/WC_HCHO=0.0 -! -!URG2/WC_ALD2=0.0 -! -!URG2/WC_GLY=0.0 -! -!URG2/WC_MGLY=0.0 -! -!URG2/WC_KETL=0.0 -! -!URG2/WC_ORA1=0.0 -! -!URG2/WC_ORA2=0.0 -! -!URG2/WC_ACID=0.0 -! -!URG2/WC_RP16=0.0 -! -!URG2/WC_UR21=0.0 -! -!URG2/WC_UR28=0.0 -! -!URG2/WC_ACID2=0.0 -! -!URG2/WC_ASO3=0.0 -! -!URG2/WC_ASO4=0.0 -! -!URG2/WC_ASO5=0.0 -! -!URG2/WC_AHSO5=0.0 -! -!URG2/WC_AHMS=0.0 -! -!URG2/WR_O3=0.0 -! -!URG2/WR_H2O2=0.0 -! -!URG2/WR_NO=0.0 -! -!URG2/WR_NO2=0.0 -! -!URG2/WR_NO3=0.0 -! -!URG2/WR_N2O5=0.0 -! -!URG2/WR_HONO=0.0 -! -!URG2/WR_HNO3=0.0 -! -!URG2/WR_HNO4=0.0 -! -!URG2/WR_NH3=0.0 -! -!URG2/WR_OH=0.0 -! -!URG2/WR_HO2=0.0 -! -!URG2/WR_CO2=0.0 -! -!URG2/WR_SO2=0.0 -! -!URG2/WR_H2SO4=0.0 -! -!URG2/WR_RO21=0.0 -! -!URG2/WR_RO25=0.0 -! -!URG2/WR_MEOH=0.0 -! -!URG2/WR_ETOH=0.0 -! -!URG2/WR_ALCH=0.0 -! -!URG2/WR_HCHO=0.0 -! -!URG2/WR_ALD2=0.0 -! -!URG2/WR_GLY=0.0 -! -!URG2/WR_MGLY=0.0 -! -!URG2/WR_KETL=0.0 -! -!URG2/WR_ORA1=0.0 -! -!URG2/WR_ORA2=0.0 -! -!URG2/WR_ACID=0.0 -! -!URG2/WR_RP16=0.0 -! -!URG2/WR_UR21=0.0 -! -!URG2/WR_UR28=0.0 -! -!URG2/WR_ACID2=0.0 -! -!URG2/WR_ASO3=0.0 -! -!URG2/WR_ASO4=0.0 -! -!URG2/WR_ASO5=0.0 -! -!URG2/WR_AHSO5=0.0 -! -!URG2/WR_AHMS=0.0 -! -!UR26/NO=0.0 -! -!UR26/NO2=0.0 -! -!UR26/O3=0.0 -! -!UR26/HONO=0.0 -! -!UR26/HNO3=0.0 -! -!UR26/HNO4=0.0 -! -!UR26/N2O5=0.0 -! -!UR26/NO3=0.0 -! -!UR26/NH3=0.0 -! -!UR26/HO2=0.0 -! -!UR26/CO=0.0 -! -!UR26/H2O2=0.0 -! -!UR26/SO2=0.0 -! -!UR26/H2SO4=0.0 -! -!UR26/OH=+0.67*K326*<RP11> - PJAC(:,49,15)=+0.67*TPK%K326(:)*PCONC(:,73) -! -!UR26/ETHE=0.0 -! -!UR26/OLEL=0.0 -! -!UR26/OLEH=0.0 -! -!UR26/ALKL=0.0 -! -!UR26/ALKM=0.0 -! -!UR26/ALKH=0.0 -! -!UR26/AROH=0.0 -! -!UR26/AROL=0.0 -! -!UR26/AROO=0.0 -! -!UR26/ARAL=0.0 -! -!UR26/ARAC=0.0 -! -!UR26/PAH=0.0 -! -!UR26/HCHO=0.0 -! -!UR26/ALD2=0.0 -! -!UR26/KETL=0.0 -! -!UR26/KETH=0.0 -! -!UR26/MEOH=0.0 -! -!UR26/ETOH=0.0 -! -!UR26/ALCH=0.0 -! -!UR26/ISOP=0.0 -! -!UR26/BIOL=0.0 -! -!UR26/BIOH=0.0 -! -!UR26/MTBE=0.0 -! -!UR26/MVK=0.0 -! -!UR26/MCR=0.0 -! -!UR26/MGLY=0.0 -! -!UR26/GLY=0.0 -! -!UR26/ORA1=0.0 -! -!UR26/ORA2=0.0 -! -!UR26/ACID=0.0 -! -!UR26/UR28=0.0 -! -!UR26/UR21=0.0 -! -!UR26/URG2=0.0 -! -!UR26/UR26=-K363 - PJAC(:,49,49)=-TPK%K363(:) -! -!UR26/RPG2=0.0 -! -!UR26/RP18=0.0 -! -!UR26/RPG3=0.0 -! -!UR26/URG4=0.0 -! -!UR26/UR8=0.0 -! -!UR26/UR17=0.0 -! -!UR26/UR7=0.0 -! -!UR26/RPR3=0.0 -! -!UR26/URG6=0.0 -! -!UR26/UR22=0.0 -! -!UR26/URG7=0.0 -! -!UR26/RPR4=0.0 -! -!UR26/RPR7=0.0 -! -!UR26/RPG7=0.0 -! -!UR26/URG8=0.0 -! -!UR26/UR19=0.0 -! -!UR26/URG9=0.0 -! -!UR26/AP7=0.0 -! -!UR26/URG10=0.0 -! -!UR26/RPR1=0.0 -! -!UR26/RPR5=0.0 -! -!UR26/RPR8=0.0 -! -!UR26/RP10=0.0 -! -!UR26/RP11=+0.67*K326*<OH> - PJAC(:,49,73)=+0.67*TPK%K326(:)*PCONC(:,15) -! -!UR26/RP16=0.0 -! -!UR26/RPRL=0.0 -! -!UR26/APAN=0.0 -! -!UR26/PAN1=0.0 -! -!UR26/PAN2=0.0 -! -!UR26/PAN3=0.0 -! -!UR26/PAN4=0.0 -! -!UR26/PAN6=0.0 -! -!UR26/PAN7=0.0 -! -!UR26/PAN8=0.0 -! -!UR26/PN10=0.0 -! -!UR26/RO2T=0.0 -! -!UR26/RO21=0.0 -! -!UR26/RO25=0.0 -! -!UR26/WC_O3=0.0 -! -!UR26/WC_H2O2=0.0 -! -!UR26/WC_NO=0.0 -! -!UR26/WC_NO2=0.0 -! -!UR26/WC_NO3=0.0 -! -!UR26/WC_N2O5=0.0 -! -!UR26/WC_HONO=0.0 -! -!UR26/WC_HNO3=0.0 -! -!UR26/WC_HNO4=0.0 -! -!UR26/WC_NH3=0.0 -! -!UR26/WC_OH=0.0 -! -!UR26/WC_HO2=0.0 -! -!UR26/WC_CO2=0.0 -! -!UR26/WC_SO2=0.0 -! -!UR26/WC_H2SO4=0.0 -! -!UR26/WC_RO21=0.0 -! -!UR26/WC_RO25=0.0 -! -!UR26/WC_MEOH=0.0 -! -!UR26/WC_ETOH=0.0 -! -!UR26/WC_ALCH=0.0 -! -!UR26/WC_HCHO=0.0 -! -!UR26/WC_ALD2=0.0 -! -!UR26/WC_GLY=0.0 -! -!UR26/WC_MGLY=0.0 -! -!UR26/WC_KETL=0.0 -! -!UR26/WC_ORA1=0.0 -! -!UR26/WC_ORA2=0.0 -! -!UR26/WC_ACID=0.0 -! -!UR26/WC_RP16=0.0 -! -!UR26/WC_UR21=0.0 -! -!UR26/WC_UR28=0.0 -! -!UR26/WC_ACID2=0.0 -! -!UR26/WC_ASO3=0.0 -! -!UR26/WC_ASO4=0.0 -! -!UR26/WC_ASO5=0.0 -! -!UR26/WC_AHSO5=0.0 -! -!UR26/WC_AHMS=0.0 -! -!UR26/WR_O3=0.0 -! -!UR26/WR_H2O2=0.0 -! -!UR26/WR_NO=0.0 -! -!UR26/WR_NO2=0.0 -! -!UR26/WR_NO3=0.0 -! -!UR26/WR_N2O5=0.0 -! -!UR26/WR_HONO=0.0 -! -!UR26/WR_HNO3=0.0 -! -!UR26/WR_HNO4=0.0 -! -!UR26/WR_NH3=0.0 -! -!UR26/WR_OH=0.0 -! -!UR26/WR_HO2=0.0 -! -!UR26/WR_CO2=0.0 -! -!UR26/WR_SO2=0.0 -! -!UR26/WR_H2SO4=0.0 -! -!UR26/WR_RO21=0.0 -! -!UR26/WR_RO25=0.0 -! -!UR26/WR_MEOH=0.0 -! -!UR26/WR_ETOH=0.0 -! -!UR26/WR_ALCH=0.0 -! -!UR26/WR_HCHO=0.0 -! -!UR26/WR_ALD2=0.0 -! -!UR26/WR_GLY=0.0 -! -!UR26/WR_MGLY=0.0 -! -!UR26/WR_KETL=0.0 -! -!UR26/WR_ORA1=0.0 -! -!UR26/WR_ORA2=0.0 -! -!UR26/WR_ACID=0.0 -! -!UR26/WR_RP16=0.0 -! -!UR26/WR_UR21=0.0 -! -!UR26/WR_UR28=0.0 -! -!UR26/WR_ACID2=0.0 -! -!UR26/WR_ASO3=0.0 -! -!UR26/WR_ASO4=0.0 -! -!UR26/WR_ASO5=0.0 -! -!UR26/WR_AHSO5=0.0 -! -!UR26/WR_AHMS=0.0 -! -!RPG2/NO=+0.3000000*K259*<RO237> - PJAC(:,50,1)=+0.3000000*TPK%K259(:)*TPK%RO237(:) -! -!RPG2/NO2=0.0 -! -!RPG2/O3=0.0 -! -!RPG2/HONO=0.0 -! -!RPG2/HNO3=0.0 -! -!RPG2/HNO4=0.0 -! -!RPG2/N2O5=0.0 -! -!RPG2/NO3=0.0 -! -!RPG2/NH3=0.0 -! -!RPG2/HO2=+0.3000000*K261*<RO237> - PJAC(:,50,10)=+0.3000000*TPK%K261(:)*TPK%RO237(:) -! -!RPG2/CO=0.0 -! -!RPG2/H2O2=0.0 -! -!RPG2/SO2=0.0 -! -!RPG2/H2SO4=0.0 -! -!RPG2/OH=+0.1191897*K334*<RPG3>+0.8808107*K334*<RPG3>-K335*<RPG2> - PJAC(:,50,15)=+0.1191897*TPK%K334(:)*PCONC(:,52)+0.8808107*TPK%K334(:)*PCONC(:& -&,52)-TPK%K335(:)*PCONC(:,50) -! -!RPG2/ETHE=0.0 -! -!RPG2/OLEL=0.0 -! -!RPG2/OLEH=0.0 -! -!RPG2/ALKL=0.0 -! -!RPG2/ALKM=0.0 -! -!RPG2/ALKH=0.0 -! -!RPG2/AROH=0.0 -! -!RPG2/AROL=0.0 -! -!RPG2/AROO=0.0 -! -!RPG2/ARAL=0.0 -! -!RPG2/ARAC=0.0 -! -!RPG2/PAH=0.0 -! -!RPG2/HCHO=0.0 -! -!RPG2/ALD2=0.0 -! -!RPG2/KETL=0.0 -! -!RPG2/KETH=0.0 -! -!RPG2/MEOH=0.0 -! -!RPG2/ETOH=0.0 -! -!RPG2/ALCH=0.0 -! -!RPG2/ISOP=0.0 -! -!RPG2/BIOL=0.0 -! -!RPG2/BIOH=0.0 -! -!RPG2/MTBE=0.0 -! -!RPG2/MVK=0.0 -! -!RPG2/MCR=0.0 -! -!RPG2/MGLY=0.0 -! -!RPG2/GLY=0.0 -! -!RPG2/ORA1=0.0 -! -!RPG2/ORA2=0.0 -! -!RPG2/ACID=0.0 -! -!RPG2/UR28=0.0 -! -!RPG2/UR21=0.0 -! -!RPG2/URG2=0.0 -! -!RPG2/UR26=0.0 -! -!RPG2/RPG2=-K335*<OH> - PJAC(:,50,50)=-TPK%K335(:)*PCONC(:,15) -! -!RPG2/RP18=0.0 -! -!RPG2/RPG3=+0.1191897*K334*<OH>+0.8808107*K334*<OH> - PJAC(:,50,52)=+0.1191897*TPK%K334(:)*PCONC(:,15)+0.8808107*TPK%K334(:)*PCONC(:& -&,15) -! -!RPG2/URG4=0.0 -! -!RPG2/UR8=0.0 -! -!RPG2/UR17=0.0 -! -!RPG2/UR7=0.0 -! -!RPG2/RPR3=0.0 -! -!RPG2/URG6=0.0 -! -!RPG2/UR22=0.0 -! -!RPG2/URG7=0.0 -! -!RPG2/RPR4=0.0 -! -!RPG2/RPR7=0.0 -! -!RPG2/RPG7=0.0 -! -!RPG2/URG8=0.0 -! -!RPG2/UR19=0.0 -! -!RPG2/URG9=0.0 -! -!RPG2/AP7=0.0 -! -!RPG2/URG10=0.0 -! -!RPG2/RPR1=0.0 -! -!RPG2/RPR5=0.0 -! -!RPG2/RPR8=0.0 -! -!RPG2/RP10=0.0 -! -!RPG2/RP11=0.0 -! -!RPG2/RP16=0.0 -! -!RPG2/RPRL=0.0 -! -!RPG2/APAN=0.0 -! -!RPG2/PAN1=0.0 -! -!RPG2/PAN2=0.0 -! -!RPG2/PAN3=0.0 -! -!RPG2/PAN4=0.0 -! -!RPG2/PAN6=0.0 -! -!RPG2/PAN7=0.0 -! -!RPG2/PAN8=0.0 -! -!RPG2/PN10=0.0 -! -!RPG2/RO2T=+1.0000000*K260*<RO237> - PJAC(:,50,85)=+1.0000000*TPK%K260(:)*TPK%RO237(:) -! -!RPG2/RO21=0.0 -! -!RPG2/RO25=0.0 -! -!RPG2/WC_O3=0.0 -! -!RPG2/WC_H2O2=0.0 -! -!RPG2/WC_NO=0.0 -! -!RPG2/WC_NO2=0.0 -! -!RPG2/WC_NO3=0.0 -! -!RPG2/WC_N2O5=0.0 -! -!RPG2/WC_HONO=0.0 -! -!RPG2/WC_HNO3=0.0 -! -!RPG2/WC_HNO4=0.0 -! -!RPG2/WC_NH3=0.0 -! -!RPG2/WC_OH=0.0 -! -!RPG2/WC_HO2=0.0 -! -!RPG2/WC_CO2=0.0 -! -!RPG2/WC_SO2=0.0 -! -!RPG2/WC_H2SO4=0.0 -! -!RPG2/WC_RO21=0.0 -! -!RPG2/WC_RO25=0.0 -! -!RPG2/WC_MEOH=0.0 -! -!RPG2/WC_ETOH=0.0 -! -!RPG2/WC_ALCH=0.0 -! -!RPG2/WC_HCHO=0.0 -! -!RPG2/WC_ALD2=0.0 -! -!RPG2/WC_GLY=0.0 -! -!RPG2/WC_MGLY=0.0 -! -!RPG2/WC_KETL=0.0 -! -!RPG2/WC_ORA1=0.0 -! -!RPG2/WC_ORA2=0.0 -! -!RPG2/WC_ACID=0.0 -! -!RPG2/WC_RP16=0.0 -! -!RPG2/WC_UR21=0.0 -! -!RPG2/WC_UR28=0.0 -! -!RPG2/WC_ACID2=0.0 -! -!RPG2/WC_ASO3=0.0 -! -!RPG2/WC_ASO4=0.0 -! -!RPG2/WC_ASO5=0.0 -! -!RPG2/WC_AHSO5=0.0 -! -!RPG2/WC_AHMS=0.0 -! -!RPG2/WR_O3=0.0 -! -!RPG2/WR_H2O2=0.0 -! -!RPG2/WR_NO=0.0 -! -!RPG2/WR_NO2=0.0 -! -!RPG2/WR_NO3=0.0 -! -!RPG2/WR_N2O5=0.0 -! -!RPG2/WR_HONO=0.0 -! -!RPG2/WR_HNO3=0.0 -! -!RPG2/WR_HNO4=0.0 -! -!RPG2/WR_NH3=0.0 -! -!RPG2/WR_OH=0.0 -! -!RPG2/WR_HO2=0.0 -! -!RPG2/WR_CO2=0.0 -! -!RPG2/WR_SO2=0.0 -! -!RPG2/WR_H2SO4=0.0 -! -!RPG2/WR_RO21=0.0 -! -!RPG2/WR_RO25=0.0 -! -!RPG2/WR_MEOH=0.0 -! -!RPG2/WR_ETOH=0.0 -! -!RPG2/WR_ALCH=0.0 -! -!RPG2/WR_HCHO=0.0 -! -!RPG2/WR_ALD2=0.0 -! -!RPG2/WR_GLY=0.0 -! -!RPG2/WR_MGLY=0.0 -! -!RPG2/WR_KETL=0.0 -! -!RPG2/WR_ORA1=0.0 -! -!RPG2/WR_ORA2=0.0 -! -!RPG2/WR_ACID=0.0 -! -!RPG2/WR_RP16=0.0 -! -!RPG2/WR_UR21=0.0 -! -!RPG2/WR_UR28=0.0 -! -!RPG2/WR_ACID2=0.0 -! -!RPG2/WR_ASO3=0.0 -! -!RPG2/WR_ASO4=0.0 -! -!RPG2/WR_ASO5=0.0 -! -!RPG2/WR_AHSO5=0.0 -! -!RPG2/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ9 -! -SUBROUTINE SUBJ10 -! -!Indices 51 a 55 -! -! -!RP18/NO=0.0 -! -!RP18/NO2=0.0 -! -!RP18/O3=0.0 -! -!RP18/HONO=0.0 -! -!RP18/HNO3=0.0 -! -!RP18/HNO4=0.0 -! -!RP18/N2O5=0.0 -! -!RP18/NO3=0.0 -! -!RP18/NH3=0.0 -! -!RP18/HO2=0.0 -! -!RP18/CO=0.0 -! -!RP18/H2O2=0.0 -! -!RP18/SO2=0.0 -! -!RP18/H2SO4=0.0 -! -!RP18/OH=+0.4437492*K335*<RPG2>-K337*<RP18> - PJAC(:,51,15)=+0.4437492*TPK%K335(:)*PCONC(:,50)-TPK%K337(:)*PCONC(:,51) -! -!RP18/ETHE=0.0 -! -!RP18/OLEL=0.0 -! -!RP18/OLEH=0.0 -! -!RP18/ALKL=0.0 -! -!RP18/ALKM=0.0 -! -!RP18/ALKH=0.0 -! -!RP18/AROH=0.0 -! -!RP18/AROL=0.0 -! -!RP18/AROO=0.0 -! -!RP18/ARAL=0.0 -! -!RP18/ARAC=0.0 -! -!RP18/PAH=0.0 -! -!RP18/HCHO=0.0 -! -!RP18/ALD2=0.0 -! -!RP18/KETL=0.0 -! -!RP18/KETH=0.0 -! -!RP18/MEOH=0.0 -! -!RP18/ETOH=0.0 -! -!RP18/ALCH=0.0 -! -!RP18/ISOP=0.0 -! -!RP18/BIOL=0.0 -! -!RP18/BIOH=0.0 -! -!RP18/MTBE=0.0 -! -!RP18/MVK=0.0 -! -!RP18/MCR=0.0 -! -!RP18/MGLY=0.0 -! -!RP18/GLY=0.0 -! -!RP18/ORA1=0.0 -! -!RP18/ORA2=0.0 -! -!RP18/ACID=0.0 -! -!RP18/UR28=0.0 -! -!RP18/UR21=0.0 -! -!RP18/URG2=0.0 -! -!RP18/UR26=0.0 -! -!RP18/RPG2=+0.4437492*K335*<OH> - PJAC(:,51,50)=+0.4437492*TPK%K335(:)*PCONC(:,15) -! -!RP18/RP18=-K337*<OH> - PJAC(:,51,51)=-TPK%K337(:)*PCONC(:,15) -! -!RP18/RPG3=0.0 -! -!RP18/URG4=0.0 -! -!RP18/UR8=0.0 -! -!RP18/UR17=0.0 -! -!RP18/UR7=0.0 -! -!RP18/RPR3=0.0 -! -!RP18/URG6=0.0 -! -!RP18/UR22=0.0 -! -!RP18/URG7=0.0 -! -!RP18/RPR4=0.0 -! -!RP18/RPR7=0.0 -! -!RP18/RPG7=0.0 -! -!RP18/URG8=0.0 -! -!RP18/UR19=0.0 -! -!RP18/URG9=0.0 -! -!RP18/AP7=0.0 -! -!RP18/URG10=0.0 -! -!RP18/RPR1=0.0 -! -!RP18/RPR5=0.0 -! -!RP18/RPR8=0.0 -! -!RP18/RP10=0.0 -! -!RP18/RP11=0.0 -! -!RP18/RP16=0.0 -! -!RP18/RPRL=0.0 -! -!RP18/APAN=0.0 -! -!RP18/PAN1=0.0 -! -!RP18/PAN2=0.0 -! -!RP18/PAN3=0.0 -! -!RP18/PAN4=0.0 -! -!RP18/PAN6=0.0 -! -!RP18/PAN7=0.0 -! -!RP18/PAN8=0.0 -! -!RP18/PN10=0.0 -! -!RP18/RO2T=0.0 -! -!RP18/RO21=0.0 -! -!RP18/RO25=0.0 -! -!RP18/WC_O3=0.0 -! -!RP18/WC_H2O2=0.0 -! -!RP18/WC_NO=0.0 -! -!RP18/WC_NO2=0.0 -! -!RP18/WC_NO3=0.0 -! -!RP18/WC_N2O5=0.0 -! -!RP18/WC_HONO=0.0 -! -!RP18/WC_HNO3=0.0 -! -!RP18/WC_HNO4=0.0 -! -!RP18/WC_NH3=0.0 -! -!RP18/WC_OH=0.0 -! -!RP18/WC_HO2=0.0 -! -!RP18/WC_CO2=0.0 -! -!RP18/WC_SO2=0.0 -! -!RP18/WC_H2SO4=0.0 -! -!RP18/WC_RO21=0.0 -! -!RP18/WC_RO25=0.0 -! -!RP18/WC_MEOH=0.0 -! -!RP18/WC_ETOH=0.0 -! -!RP18/WC_ALCH=0.0 -! -!RP18/WC_HCHO=0.0 -! -!RP18/WC_ALD2=0.0 -! -!RP18/WC_GLY=0.0 -! -!RP18/WC_MGLY=0.0 -! -!RP18/WC_KETL=0.0 -! -!RP18/WC_ORA1=0.0 -! -!RP18/WC_ORA2=0.0 -! -!RP18/WC_ACID=0.0 -! -!RP18/WC_RP16=0.0 -! -!RP18/WC_UR21=0.0 -! -!RP18/WC_UR28=0.0 -! -!RP18/WC_ACID2=0.0 -! -!RP18/WC_ASO3=0.0 -! -!RP18/WC_ASO4=0.0 -! -!RP18/WC_ASO5=0.0 -! -!RP18/WC_AHSO5=0.0 -! -!RP18/WC_AHMS=0.0 -! -!RP18/WR_O3=0.0 -! -!RP18/WR_H2O2=0.0 -! -!RP18/WR_NO=0.0 -! -!RP18/WR_NO2=0.0 -! -!RP18/WR_NO3=0.0 -! -!RP18/WR_N2O5=0.0 -! -!RP18/WR_HONO=0.0 -! -!RP18/WR_HNO3=0.0 -! -!RP18/WR_HNO4=0.0 -! -!RP18/WR_NH3=0.0 -! -!RP18/WR_OH=0.0 -! -!RP18/WR_HO2=0.0 -! -!RP18/WR_CO2=0.0 -! -!RP18/WR_SO2=0.0 -! -!RP18/WR_H2SO4=0.0 -! -!RP18/WR_RO21=0.0 -! -!RP18/WR_RO25=0.0 -! -!RP18/WR_MEOH=0.0 -! -!RP18/WR_ETOH=0.0 -! -!RP18/WR_ALCH=0.0 -! -!RP18/WR_HCHO=0.0 -! -!RP18/WR_ALD2=0.0 -! -!RP18/WR_GLY=0.0 -! -!RP18/WR_MGLY=0.0 -! -!RP18/WR_KETL=0.0 -! -!RP18/WR_ORA1=0.0 -! -!RP18/WR_ORA2=0.0 -! -!RP18/WR_ACID=0.0 -! -!RP18/WR_RP16=0.0 -! -!RP18/WR_UR21=0.0 -! -!RP18/WR_UR28=0.0 -! -!RP18/WR_ACID2=0.0 -! -!RP18/WR_ASO3=0.0 -! -!RP18/WR_ASO4=0.0 -! -!RP18/WR_ASO5=0.0 -! -!RP18/WR_AHSO5=0.0 -! -!RP18/WR_AHMS=0.0 -! -!RPG3/NO=+0.3000000*K231*<RO233>+0.3000000*K252*<RO236> - PJAC(:,52,1)=+0.3000000*TPK%K231(:)*TPK%RO233(:)+0.3000000*TPK%K252(:)*TPK%RO2& -&36(:) -! -!RPG3/NO2=0.0 -! -!RPG3/O3=0.0 -! -!RPG3/HONO=0.0 -! -!RPG3/HNO3=0.0 -! -!RPG3/HNO4=0.0 -! -!RPG3/N2O5=0.0 -! -!RPG3/NO3=0.0 -! -!RPG3/NH3=0.0 -! -!RPG3/HO2=+0.3000000*K233*<RO233>+0.3000000*K254*<RO236> - PJAC(:,52,10)=+0.3000000*TPK%K233(:)*TPK%RO233(:)+0.3000000*TPK%K254(:)*TPK%RO& -&236(:) -! -!RPG3/CO=0.0 -! -!RPG3/H2O2=0.0 -! -!RPG3/SO2=0.0 -! -!RPG3/H2SO4=0.0 -! -!RPG3/OH=-K334*<RPG3> - PJAC(:,52,15)=-TPK%K334(:)*PCONC(:,52) -! -!RPG3/ETHE=0.0 -! -!RPG3/OLEL=0.0 -! -!RPG3/OLEH=0.0 -! -!RPG3/ALKL=0.0 -! -!RPG3/ALKM=0.0 -! -!RPG3/ALKH=0.0 -! -!RPG3/AROH=0.0 -! -!RPG3/AROL=0.0 -! -!RPG3/AROO=0.0 -! -!RPG3/ARAL=0.0 -! -!RPG3/ARAC=0.0 -! -!RPG3/PAH=0.0 -! -!RPG3/HCHO=0.0 -! -!RPG3/ALD2=0.0 -! -!RPG3/KETL=0.0 -! -!RPG3/KETH=0.0 -! -!RPG3/MEOH=0.0 -! -!RPG3/ETOH=0.0 -! -!RPG3/ALCH=0.0 -! -!RPG3/ISOP=0.0 -! -!RPG3/BIOL=0.0 -! -!RPG3/BIOH=0.0 -! -!RPG3/MTBE=0.0 -! -!RPG3/MVK=0.0 -! -!RPG3/MCR=0.0 -! -!RPG3/MGLY=0.0 -! -!RPG3/GLY=0.0 -! -!RPG3/ORA1=0.0 -! -!RPG3/ORA2=0.0 -! -!RPG3/ACID=0.0 -! -!RPG3/UR28=0.0 -! -!RPG3/UR21=0.0 -! -!RPG3/URG2=0.0 -! -!RPG3/UR26=0.0 -! -!RPG3/RPG2=0.0 -! -!RPG3/RP18=0.0 -! -!RPG3/RPG3=-K334*<OH> - PJAC(:,52,52)=-TPK%K334(:)*PCONC(:,15) -! -!RPG3/URG4=0.0 -! -!RPG3/UR8=0.0 -! -!RPG3/UR17=0.0 -! -!RPG3/UR7=0.0 -! -!RPG3/RPR3=0.0 -! -!RPG3/URG6=0.0 -! -!RPG3/UR22=0.0 -! -!RPG3/URG7=0.0 -! -!RPG3/RPR4=0.0 -! -!RPG3/RPR7=0.0 -! -!RPG3/RPG7=0.0 -! -!RPG3/URG8=0.0 -! -!RPG3/UR19=0.0 -! -!RPG3/URG9=0.0 -! -!RPG3/AP7=0.0 -! -!RPG3/URG10=0.0 -! -!RPG3/RPR1=0.0 -! -!RPG3/RPR5=0.0 -! -!RPG3/RPR8=0.0 -! -!RPG3/RP10=0.0 -! -!RPG3/RP11=0.0 -! -!RPG3/RP16=0.0 -! -!RPG3/RPRL=0.0 -! -!RPG3/APAN=0.0 -! -!RPG3/PAN1=0.0 -! -!RPG3/PAN2=0.0 -! -!RPG3/PAN3=0.0 -! -!RPG3/PAN4=0.0 -! -!RPG3/PAN6=0.0 -! -!RPG3/PAN7=0.0 -! -!RPG3/PAN8=0.0 -! -!RPG3/PN10=0.0 -! -!RPG3/RO2T=+1.0000000*K232*<RO233>+1.0000000*K253*<RO236> - PJAC(:,52,85)=+1.0000000*TPK%K232(:)*TPK%RO233(:)+1.0000000*TPK%K253(:)*TPK%RO& -&236(:) -! -!RPG3/RO21=0.0 -! -!RPG3/RO25=0.0 -! -!RPG3/WC_O3=0.0 -! -!RPG3/WC_H2O2=0.0 -! -!RPG3/WC_NO=0.0 -! -!RPG3/WC_NO2=0.0 -! -!RPG3/WC_NO3=0.0 -! -!RPG3/WC_N2O5=0.0 -! -!RPG3/WC_HONO=0.0 -! -!RPG3/WC_HNO3=0.0 -! -!RPG3/WC_HNO4=0.0 -! -!RPG3/WC_NH3=0.0 -! -!RPG3/WC_OH=0.0 -! -!RPG3/WC_HO2=0.0 -! -!RPG3/WC_CO2=0.0 -! -!RPG3/WC_SO2=0.0 -! -!RPG3/WC_H2SO4=0.0 -! -!RPG3/WC_RO21=0.0 -! -!RPG3/WC_RO25=0.0 -! -!RPG3/WC_MEOH=0.0 -! -!RPG3/WC_ETOH=0.0 -! -!RPG3/WC_ALCH=0.0 -! -!RPG3/WC_HCHO=0.0 -! -!RPG3/WC_ALD2=0.0 -! -!RPG3/WC_GLY=0.0 -! -!RPG3/WC_MGLY=0.0 -! -!RPG3/WC_KETL=0.0 -! -!RPG3/WC_ORA1=0.0 -! -!RPG3/WC_ORA2=0.0 -! -!RPG3/WC_ACID=0.0 -! -!RPG3/WC_RP16=0.0 -! -!RPG3/WC_UR21=0.0 -! -!RPG3/WC_UR28=0.0 -! -!RPG3/WC_ACID2=0.0 -! -!RPG3/WC_ASO3=0.0 -! -!RPG3/WC_ASO4=0.0 -! -!RPG3/WC_ASO5=0.0 -! -!RPG3/WC_AHSO5=0.0 -! -!RPG3/WC_AHMS=0.0 -! -!RPG3/WR_O3=0.0 -! -!RPG3/WR_H2O2=0.0 -! -!RPG3/WR_NO=0.0 -! -!RPG3/WR_NO2=0.0 -! -!RPG3/WR_NO3=0.0 -! -!RPG3/WR_N2O5=0.0 -! -!RPG3/WR_HONO=0.0 -! -!RPG3/WR_HNO3=0.0 -! -!RPG3/WR_HNO4=0.0 -! -!RPG3/WR_NH3=0.0 -! -!RPG3/WR_OH=0.0 -! -!RPG3/WR_HO2=0.0 -! -!RPG3/WR_CO2=0.0 -! -!RPG3/WR_SO2=0.0 -! -!RPG3/WR_H2SO4=0.0 -! -!RPG3/WR_RO21=0.0 -! -!RPG3/WR_RO25=0.0 -! -!RPG3/WR_MEOH=0.0 -! -!RPG3/WR_ETOH=0.0 -! -!RPG3/WR_ALCH=0.0 -! -!RPG3/WR_HCHO=0.0 -! -!RPG3/WR_ALD2=0.0 -! -!RPG3/WR_GLY=0.0 -! -!RPG3/WR_MGLY=0.0 -! -!RPG3/WR_KETL=0.0 -! -!RPG3/WR_ORA1=0.0 -! -!RPG3/WR_ORA2=0.0 -! -!RPG3/WR_ACID=0.0 -! -!RPG3/WR_RP16=0.0 -! -!RPG3/WR_UR21=0.0 -! -!RPG3/WR_UR28=0.0 -! -!RPG3/WR_ACID2=0.0 -! -!RPG3/WR_ASO3=0.0 -! -!RPG3/WR_ASO4=0.0 -! -!RPG3/WR_ASO5=0.0 -! -!RPG3/WR_AHSO5=0.0 -! -!RPG3/WR_AHMS=0.0 -! -!URG4/NO=0.0 -! -!URG4/NO2=0.0 -! -!URG4/O3=-02*K086*<BIOL> - PJAC(:,53,3)=-02*TPK%K086(:)*PCONC(:,36) -! -!URG4/HONO=0.0 -! -!URG4/HNO3=0.0 -! -!URG4/HNO4=0.0 -! -!URG4/N2O5=0.0 -! -!URG4/NO3=0.0 -! -!URG4/NH3=0.0 -! -!URG4/HO2=+1.0000000*K318*<RO256>+1.0000000*K332*<RO257> - PJAC(:,53,10)=+1.0000000*TPK%K318(:)*TPK%RO256(:)+1.0000000*TPK%K332(:)*TPK%RO& -&257(:) -! -!URG4/CO=0.0 -! -!URG4/H2O2=0.0 -! -!URG4/SO2=0.0 -! -!URG4/H2SO4=0.0 -! -!URG4/OH=0.0 -! -!URG4/ETHE=0.0 -! -!URG4/OLEL=0.0 -! -!URG4/OLEH=0.0 -! -!URG4/ALKL=0.0 -! -!URG4/ALKM=0.0 -! -!URG4/ALKH=0.0 -! -!URG4/AROH=0.0 -! -!URG4/AROL=0.0 -! -!URG4/AROO=0.0 -! -!URG4/ARAL=0.0 -! -!URG4/ARAC=0.0 -! -!URG4/PAH=0.0 -! -!URG4/HCHO=0.0 -! -!URG4/ALD2=0.0 -! -!URG4/KETL=0.0 -! -!URG4/KETH=0.0 -! -!URG4/MEOH=0.0 -! -!URG4/ETOH=0.0 -! -!URG4/ALCH=0.0 -! -!URG4/ISOP=0.0 -! -!URG4/BIOL=-02*K086*<O3> - PJAC(:,53,36)=-02*TPK%K086(:)*PCONC(:,3) -! -!URG4/BIOH=0.0 -! -!URG4/MTBE=0.0 -! -!URG4/MVK=0.0 -! -!URG4/MCR=0.0 -! -!URG4/MGLY=0.0 -! -!URG4/GLY=0.0 -! -!URG4/ORA1=0.0 -! -!URG4/ORA2=0.0 -! -!URG4/ACID=0.0 -! -!URG4/UR28=0.0 -! -!URG4/UR21=0.0 -! -!URG4/URG2=0.0 -! -!URG4/UR26=0.0 -! -!URG4/RPG2=0.0 -! -!URG4/RP18=0.0 -! -!URG4/RPG3=0.0 -! -!URG4/URG4=-K351 - PJAC(:,53,53)=-TPK%K351(:) -! -!URG4/UR8=0.0 -! -!URG4/UR17=0.0 -! -!URG4/UR7=0.0 -! -!URG4/RPR3=0.0 -! -!URG4/URG6=0.0 -! -!URG4/UR22=0.0 -! -!URG4/URG7=0.0 -! -!URG4/RPR4=0.0 -! -!URG4/RPR7=0.0 -! -!URG4/RPG7=0.0 -! -!URG4/URG8=0.0 -! -!URG4/UR19=0.0 -! -!URG4/URG9=0.0 -! -!URG4/AP7=0.0 -! -!URG4/URG10=0.0 -! -!URG4/RPR1=0.0 -! -!URG4/RPR5=0.0 -! -!URG4/RPR8=0.0 -! -!URG4/RP10=0.0 -! -!URG4/RP11=0.0 -! -!URG4/RP16=0.0 -! -!URG4/RPRL=0.0 -! -!URG4/APAN=0.0 -! -!URG4/PAN1=0.0 -! -!URG4/PAN2=0.0 -! -!URG4/PAN3=0.0 -! -!URG4/PAN4=0.0 -! -!URG4/PAN6=0.0 -! -!URG4/PAN7=0.0 -! -!URG4/PAN8=0.0 -! -!URG4/PN10=0.0 -! -!URG4/RO2T=0.0 -! -!URG4/RO21=0.0 -! -!URG4/RO25=0.0 -! -!URG4/WC_O3=0.0 -! -!URG4/WC_H2O2=0.0 -! -!URG4/WC_NO=0.0 -! -!URG4/WC_NO2=0.0 -! -!URG4/WC_NO3=0.0 -! -!URG4/WC_N2O5=0.0 -! -!URG4/WC_HONO=0.0 -! -!URG4/WC_HNO3=0.0 -! -!URG4/WC_HNO4=0.0 -! -!URG4/WC_NH3=0.0 -! -!URG4/WC_OH=0.0 -! -!URG4/WC_HO2=0.0 -! -!URG4/WC_CO2=0.0 -! -!URG4/WC_SO2=0.0 -! -!URG4/WC_H2SO4=0.0 -! -!URG4/WC_RO21=0.0 -! -!URG4/WC_RO25=0.0 -! -!URG4/WC_MEOH=0.0 -! -!URG4/WC_ETOH=0.0 -! -!URG4/WC_ALCH=0.0 -! -!URG4/WC_HCHO=0.0 -! -!URG4/WC_ALD2=0.0 -! -!URG4/WC_GLY=0.0 -! -!URG4/WC_MGLY=0.0 -! -!URG4/WC_KETL=0.0 -! -!URG4/WC_ORA1=0.0 -! -!URG4/WC_ORA2=0.0 -! -!URG4/WC_ACID=0.0 -! -!URG4/WC_RP16=0.0 -! -!URG4/WC_UR21=0.0 -! -!URG4/WC_UR28=0.0 -! -!URG4/WC_ACID2=0.0 -! -!URG4/WC_ASO3=0.0 -! -!URG4/WC_ASO4=0.0 -! -!URG4/WC_ASO5=0.0 -! -!URG4/WC_AHSO5=0.0 -! -!URG4/WC_AHMS=0.0 -! -!URG4/WR_O3=0.0 -! -!URG4/WR_H2O2=0.0 -! -!URG4/WR_NO=0.0 -! -!URG4/WR_NO2=0.0 -! -!URG4/WR_NO3=0.0 -! -!URG4/WR_N2O5=0.0 -! -!URG4/WR_HONO=0.0 -! -!URG4/WR_HNO3=0.0 -! -!URG4/WR_HNO4=0.0 -! -!URG4/WR_NH3=0.0 -! -!URG4/WR_OH=0.0 -! -!URG4/WR_HO2=0.0 -! -!URG4/WR_CO2=0.0 -! -!URG4/WR_SO2=0.0 -! -!URG4/WR_H2SO4=0.0 -! -!URG4/WR_RO21=0.0 -! -!URG4/WR_RO25=0.0 -! -!URG4/WR_MEOH=0.0 -! -!URG4/WR_ETOH=0.0 -! -!URG4/WR_ALCH=0.0 -! -!URG4/WR_HCHO=0.0 -! -!URG4/WR_ALD2=0.0 -! -!URG4/WR_GLY=0.0 -! -!URG4/WR_MGLY=0.0 -! -!URG4/WR_KETL=0.0 -! -!URG4/WR_ORA1=0.0 -! -!URG4/WR_ORA2=0.0 -! -!URG4/WR_ACID=0.0 -! -!URG4/WR_RP16=0.0 -! -!URG4/WR_UR21=0.0 -! -!URG4/WR_UR28=0.0 -! -!URG4/WR_ACID2=0.0 -! -!URG4/WR_ASO3=0.0 -! -!URG4/WR_ASO4=0.0 -! -!URG4/WR_ASO5=0.0 -! -!URG4/WR_AHSO5=0.0 -! -!URG4/WR_AHMS=0.0 -! -!UR8/NO=0.0 -! -!UR8/NO2=0.0 -! -!UR8/O3=+0.055*K090*<BIOH> - PJAC(:,54,3)=+0.055*TPK%K090(:)*PCONC(:,37) -! -!UR8/HONO=0.0 -! -!UR8/HNO3=0.0 -! -!UR8/HNO4=0.0 -! -!UR8/N2O5=0.0 -! -!UR8/NO3=0.0 -! -!UR8/NH3=0.0 -! -!UR8/HO2=0.0 -! -!UR8/CO=0.0 -! -!UR8/H2O2=0.0 -! -!UR8/SO2=0.0 -! -!UR8/H2SO4=0.0 -! -!UR8/OH=0.0 -! -!UR8/ETHE=0.0 -! -!UR8/OLEL=0.0 -! -!UR8/OLEH=0.0 -! -!UR8/ALKL=0.0 -! -!UR8/ALKM=0.0 -! -!UR8/ALKH=0.0 -! -!UR8/AROH=0.0 -! -!UR8/AROL=0.0 -! -!UR8/AROO=0.0 -! -!UR8/ARAL=0.0 -! -!UR8/ARAC=0.0 -! -!UR8/PAH=0.0 -! -!UR8/HCHO=0.0 -! -!UR8/ALD2=0.0 -! -!UR8/KETL=0.0 -! -!UR8/KETH=0.0 -! -!UR8/MEOH=0.0 -! -!UR8/ETOH=0.0 -! -!UR8/ALCH=0.0 -! -!UR8/ISOP=0.0 -! -!UR8/BIOL=0.0 -! -!UR8/BIOH=+0.055*K090*<O3> - PJAC(:,54,37)=+0.055*TPK%K090(:)*PCONC(:,3) -! -!UR8/MTBE=0.0 -! -!UR8/MVK=0.0 -! -!UR8/MCR=0.0 -! -!UR8/MGLY=0.0 -! -!UR8/GLY=0.0 -! -!UR8/ORA1=0.0 -! -!UR8/ORA2=0.0 -! -!UR8/ACID=0.0 -! -!UR8/UR28=0.0 -! -!UR8/UR21=0.0 -! -!UR8/URG2=0.0 -! -!UR8/UR26=0.0 -! -!UR8/RPG2=0.0 -! -!UR8/RP18=0.0 -! -!UR8/RPG3=0.0 -! -!UR8/URG4=0.0 -! -!UR8/UR8=-K358 - PJAC(:,54,54)=-TPK%K358(:) -! -!UR8/UR17=0.0 -! -!UR8/UR7=0.0 -! -!UR8/RPR3=0.0 -! -!UR8/URG6=0.0 -! -!UR8/UR22=0.0 -! -!UR8/URG7=0.0 -! -!UR8/RPR4=0.0 -! -!UR8/RPR7=0.0 -! -!UR8/RPG7=0.0 -! -!UR8/URG8=0.0 -! -!UR8/UR19=0.0 -! -!UR8/URG9=0.0 -! -!UR8/AP7=0.0 -! -!UR8/URG10=0.0 -! -!UR8/RPR1=0.0 -! -!UR8/RPR5=0.0 -! -!UR8/RPR8=0.0 -! -!UR8/RP10=0.0 -! -!UR8/RP11=0.0 -! -!UR8/RP16=0.0 -! -!UR8/RPRL=0.0 -! -!UR8/APAN=0.0 -! -!UR8/PAN1=0.0 -! -!UR8/PAN2=0.0 -! -!UR8/PAN3=0.0 -! -!UR8/PAN4=0.0 -! -!UR8/PAN6=0.0 -! -!UR8/PAN7=0.0 -! -!UR8/PAN8=0.0 -! -!UR8/PN10=0.0 -! -!UR8/RO2T=0.0 -! -!UR8/RO21=0.0 -! -!UR8/RO25=0.0 -! -!UR8/WC_O3=0.0 -! -!UR8/WC_H2O2=0.0 -! -!UR8/WC_NO=0.0 -! -!UR8/WC_NO2=0.0 -! -!UR8/WC_NO3=0.0 -! -!UR8/WC_N2O5=0.0 -! -!UR8/WC_HONO=0.0 -! -!UR8/WC_HNO3=0.0 -! -!UR8/WC_HNO4=0.0 -! -!UR8/WC_NH3=0.0 -! -!UR8/WC_OH=0.0 -! -!UR8/WC_HO2=0.0 -! -!UR8/WC_CO2=0.0 -! -!UR8/WC_SO2=0.0 -! -!UR8/WC_H2SO4=0.0 -! -!UR8/WC_RO21=0.0 -! -!UR8/WC_RO25=0.0 -! -!UR8/WC_MEOH=0.0 -! -!UR8/WC_ETOH=0.0 -! -!UR8/WC_ALCH=0.0 -! -!UR8/WC_HCHO=0.0 -! -!UR8/WC_ALD2=0.0 -! -!UR8/WC_GLY=0.0 -! -!UR8/WC_MGLY=0.0 -! -!UR8/WC_KETL=0.0 -! -!UR8/WC_ORA1=0.0 -! -!UR8/WC_ORA2=0.0 -! -!UR8/WC_ACID=0.0 -! -!UR8/WC_RP16=0.0 -! -!UR8/WC_UR21=0.0 -! -!UR8/WC_UR28=0.0 -! -!UR8/WC_ACID2=0.0 -! -!UR8/WC_ASO3=0.0 -! -!UR8/WC_ASO4=0.0 -! -!UR8/WC_ASO5=0.0 -! -!UR8/WC_AHSO5=0.0 -! -!UR8/WC_AHMS=0.0 -! -!UR8/WR_O3=0.0 -! -!UR8/WR_H2O2=0.0 -! -!UR8/WR_NO=0.0 -! -!UR8/WR_NO2=0.0 -! -!UR8/WR_NO3=0.0 -! -!UR8/WR_N2O5=0.0 -! -!UR8/WR_HONO=0.0 -! -!UR8/WR_HNO3=0.0 -! -!UR8/WR_HNO4=0.0 -! -!UR8/WR_NH3=0.0 -! -!UR8/WR_OH=0.0 -! -!UR8/WR_HO2=0.0 -! -!UR8/WR_CO2=0.0 -! -!UR8/WR_SO2=0.0 -! -!UR8/WR_H2SO4=0.0 -! -!UR8/WR_RO21=0.0 -! -!UR8/WR_RO25=0.0 -! -!UR8/WR_MEOH=0.0 -! -!UR8/WR_ETOH=0.0 -! -!UR8/WR_ALCH=0.0 -! -!UR8/WR_HCHO=0.0 -! -!UR8/WR_ALD2=0.0 -! -!UR8/WR_GLY=0.0 -! -!UR8/WR_MGLY=0.0 -! -!UR8/WR_KETL=0.0 -! -!UR8/WR_ORA1=0.0 -! -!UR8/WR_ORA2=0.0 -! -!UR8/WR_ACID=0.0 -! -!UR8/WR_RP16=0.0 -! -!UR8/WR_UR21=0.0 -! -!UR8/WR_UR28=0.0 -! -!UR8/WR_ACID2=0.0 -! -!UR8/WR_ASO3=0.0 -! -!UR8/WR_ASO4=0.0 -! -!UR8/WR_ASO5=0.0 -! -!UR8/WR_AHSO5=0.0 -! -!UR8/WR_AHMS=0.0 -! -!UR17/NO=+1.0000000*K204*<RO226> - PJAC(:,55,1)=+1.0000000*TPK%K204(:)*TPK%RO226(:) -! -!UR17/NO2=0.0 -! -!UR17/O3=0.0 -! -!UR17/HONO=0.0 -! -!UR17/HNO3=0.0 -! -!UR17/HNO4=0.0 -! -!UR17/N2O5=0.0 -! -!UR17/NO3=0.0 -! -!UR17/NH3=0.0 -! -!UR17/HO2=+1.0000000*K206*<RO226> - PJAC(:,55,10)=+1.0000000*TPK%K206(:)*TPK%RO226(:) -! -!UR17/CO=0.0 -! -!UR17/H2O2=0.0 -! -!UR17/SO2=0.0 -! -!UR17/H2SO4=0.0 -! -!UR17/OH=0.0 -! -!UR17/ETHE=0.0 -! -!UR17/OLEL=0.0 -! -!UR17/OLEH=0.0 -! -!UR17/ALKL=0.0 -! -!UR17/ALKM=0.0 -! -!UR17/ALKH=0.0 -! -!UR17/AROH=0.0 -! -!UR17/AROL=0.0 -! -!UR17/AROO=0.0 -! -!UR17/ARAL=0.0 -! -!UR17/ARAC=0.0 -! -!UR17/PAH=0.0 -! -!UR17/HCHO=0.0 -! -!UR17/ALD2=0.0 -! -!UR17/KETL=0.0 -! -!UR17/KETH=0.0 -! -!UR17/MEOH=0.0 -! -!UR17/ETOH=0.0 -! -!UR17/ALCH=0.0 -! -!UR17/ISOP=0.0 -! -!UR17/BIOL=0.0 -! -!UR17/BIOH=0.0 -! -!UR17/MTBE=0.0 -! -!UR17/MVK=0.0 -! -!UR17/MCR=0.0 -! -!UR17/MGLY=0.0 -! -!UR17/GLY=0.0 -! -!UR17/ORA1=0.0 -! -!UR17/ORA2=0.0 -! -!UR17/ACID=0.0 -! -!UR17/UR28=0.0 -! -!UR17/UR21=0.0 -! -!UR17/URG2=0.0 -! -!UR17/UR26=0.0 -! -!UR17/RPG2=0.0 -! -!UR17/RP18=0.0 -! -!UR17/RPG3=0.0 -! -!UR17/URG4=0.0 -! -!UR17/UR8=0.0 -! -!UR17/UR17=-K359 - PJAC(:,55,55)=-TPK%K359(:) -! -!UR17/UR7=0.0 -! -!UR17/RPR3=0.0 -! -!UR17/URG6=0.0 -! -!UR17/UR22=0.0 -! -!UR17/URG7=0.0 -! -!UR17/RPR4=0.0 -! -!UR17/RPR7=0.0 -! -!UR17/RPG7=0.0 -! -!UR17/URG8=0.0 -! -!UR17/UR19=0.0 -! -!UR17/URG9=0.0 -! -!UR17/AP7=0.0 -! -!UR17/URG10=0.0 -! -!UR17/RPR1=0.0 -! -!UR17/RPR5=0.0 -! -!UR17/RPR8=0.0 -! -!UR17/RP10=0.0 -! -!UR17/RP11=0.0 -! -!UR17/RP16=0.0 -! -!UR17/RPRL=0.0 -! -!UR17/APAN=0.0 -! -!UR17/PAN1=0.0 -! -!UR17/PAN2=0.0 -! -!UR17/PAN3=0.0 -! -!UR17/PAN4=0.0 -! -!UR17/PAN6=0.0 -! -!UR17/PAN7=0.0 -! -!UR17/PAN8=0.0 -! -!UR17/PN10=0.0 -! -!UR17/RO2T=+1.0000000*K205*<RO226> - PJAC(:,55,85)=+1.0000000*TPK%K205(:)*TPK%RO226(:) -! -!UR17/RO21=0.0 -! -!UR17/RO25=0.0 -! -!UR17/WC_O3=0.0 -! -!UR17/WC_H2O2=0.0 -! -!UR17/WC_NO=0.0 -! -!UR17/WC_NO2=0.0 -! -!UR17/WC_NO3=0.0 -! -!UR17/WC_N2O5=0.0 -! -!UR17/WC_HONO=0.0 -! -!UR17/WC_HNO3=0.0 -! -!UR17/WC_HNO4=0.0 -! -!UR17/WC_NH3=0.0 -! -!UR17/WC_OH=0.0 -! -!UR17/WC_HO2=0.0 -! -!UR17/WC_CO2=0.0 -! -!UR17/WC_SO2=0.0 -! -!UR17/WC_H2SO4=0.0 -! -!UR17/WC_RO21=0.0 -! -!UR17/WC_RO25=0.0 -! -!UR17/WC_MEOH=0.0 -! -!UR17/WC_ETOH=0.0 -! -!UR17/WC_ALCH=0.0 -! -!UR17/WC_HCHO=0.0 -! -!UR17/WC_ALD2=0.0 -! -!UR17/WC_GLY=0.0 -! -!UR17/WC_MGLY=0.0 -! -!UR17/WC_KETL=0.0 -! -!UR17/WC_ORA1=0.0 -! -!UR17/WC_ORA2=0.0 -! -!UR17/WC_ACID=0.0 -! -!UR17/WC_RP16=0.0 -! -!UR17/WC_UR21=0.0 -! -!UR17/WC_UR28=0.0 -! -!UR17/WC_ACID2=0.0 -! -!UR17/WC_ASO3=0.0 -! -!UR17/WC_ASO4=0.0 -! -!UR17/WC_ASO5=0.0 -! -!UR17/WC_AHSO5=0.0 -! -!UR17/WC_AHMS=0.0 -! -!UR17/WR_O3=0.0 -! -!UR17/WR_H2O2=0.0 -! -!UR17/WR_NO=0.0 -! -!UR17/WR_NO2=0.0 -! -!UR17/WR_NO3=0.0 -! -!UR17/WR_N2O5=0.0 -! -!UR17/WR_HONO=0.0 -! -!UR17/WR_HNO3=0.0 -! -!UR17/WR_HNO4=0.0 -! -!UR17/WR_NH3=0.0 -! -!UR17/WR_OH=0.0 -! -!UR17/WR_HO2=0.0 -! -!UR17/WR_CO2=0.0 -! -!UR17/WR_SO2=0.0 -! -!UR17/WR_H2SO4=0.0 -! -!UR17/WR_RO21=0.0 -! -!UR17/WR_RO25=0.0 -! -!UR17/WR_MEOH=0.0 -! -!UR17/WR_ETOH=0.0 -! -!UR17/WR_ALCH=0.0 -! -!UR17/WR_HCHO=0.0 -! -!UR17/WR_ALD2=0.0 -! -!UR17/WR_GLY=0.0 -! -!UR17/WR_MGLY=0.0 -! -!UR17/WR_KETL=0.0 -! -!UR17/WR_ORA1=0.0 -! -!UR17/WR_ORA2=0.0 -! -!UR17/WR_ACID=0.0 -! -!UR17/WR_RP16=0.0 -! -!UR17/WR_UR21=0.0 -! -!UR17/WR_UR28=0.0 -! -!UR17/WR_ACID2=0.0 -! -!UR17/WR_ASO3=0.0 -! -!UR17/WR_ASO4=0.0 -! -!UR17/WR_ASO5=0.0 -! -!UR17/WR_AHSO5=0.0 -! -!UR17/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ10 -! -SUBROUTINE SUBJ11 -! -!Indices 56 a 60 -! -! -!UR7/NO=+TPK%CFA12*K207*<RO227>+0.3*K210*<RO228> - PJAC(:,56,1)=+TPK%CFA12*TPK%K207(:)*TPK%RO227(:)+0.3*TPK%K210(:)*TPK%RO228(:) -! -!UR7/NO2=0.0 -! -!UR7/O3=+0.055*K090*<BIOH> - PJAC(:,56,3)=+0.055*TPK%K090(:)*PCONC(:,37) -! -!UR7/HONO=0.0 -! -!UR7/HNO3=0.0 -! -!UR7/HNO4=0.0 -! -!UR7/N2O5=0.0 -! -!UR7/NO3=0.0 -! -!UR7/NH3=0.0 -! -!UR7/HO2=+0.3*K209*<RO227>+0.3*K212*<RO228> - PJAC(:,56,10)=+0.3*TPK%K209(:)*TPK%RO227(:)+0.3*TPK%K212(:)*TPK%RO228(:) -! -!UR7/CO=0.0 -! -!UR7/H2O2=0.0 -! -!UR7/SO2=0.0 -! -!UR7/H2SO4=0.0 -! -!UR7/OH=0.0 -! -!UR7/ETHE=0.0 -! -!UR7/OLEL=0.0 -! -!UR7/OLEH=0.0 -! -!UR7/ALKL=0.0 -! -!UR7/ALKM=0.0 -! -!UR7/ALKH=0.0 -! -!UR7/AROH=0.0 -! -!UR7/AROL=0.0 -! -!UR7/AROO=0.0 -! -!UR7/ARAL=0.0 -! -!UR7/ARAC=0.0 -! -!UR7/PAH=0.0 -! -!UR7/HCHO=0.0 -! -!UR7/ALD2=0.0 -! -!UR7/KETL=0.0 -! -!UR7/KETH=0.0 -! -!UR7/MEOH=0.0 -! -!UR7/ETOH=0.0 -! -!UR7/ALCH=0.0 -! -!UR7/ISOP=0.0 -! -!UR7/BIOL=0.0 -! -!UR7/BIOH=+0.055*K090*<O3> - PJAC(:,56,37)=+0.055*TPK%K090(:)*PCONC(:,3) -! -!UR7/MTBE=0.0 -! -!UR7/MVK=0.0 -! -!UR7/MCR=0.0 -! -!UR7/MGLY=0.0 -! -!UR7/GLY=0.0 -! -!UR7/ORA1=0.0 -! -!UR7/ORA2=0.0 -! -!UR7/ACID=0.0 -! -!UR7/UR28=0.0 -! -!UR7/UR21=0.0 -! -!UR7/URG2=0.0 -! -!UR7/UR26=0.0 -! -!UR7/RPG2=0.0 -! -!UR7/RP18=0.0 -! -!UR7/RPG3=0.0 -! -!UR7/URG4=0.0 -! -!UR7/UR8=0.0 -! -!UR7/UR17=0.0 -! -!UR7/UR7=-K357 - PJAC(:,56,56)=-TPK%K357(:) -! -!UR7/RPR3=0.0 -! -!UR7/URG6=0.0 -! -!UR7/UR22=0.0 -! -!UR7/URG7=0.0 -! -!UR7/RPR4=0.0 -! -!UR7/RPR7=0.0 -! -!UR7/RPG7=0.0 -! -!UR7/URG8=0.0 -! -!UR7/UR19=0.0 -! -!UR7/URG9=0.0 -! -!UR7/AP7=0.0 -! -!UR7/URG10=0.0 -! -!UR7/RPR1=0.0 -! -!UR7/RPR5=0.0 -! -!UR7/RPR8=0.0 -! -!UR7/RP10=0.0 -! -!UR7/RP11=0.0 -! -!UR7/RP16=0.0 -! -!UR7/RPRL=0.0 -! -!UR7/APAN=0.0 -! -!UR7/PAN1=0.0 -! -!UR7/PAN2=0.0 -! -!UR7/PAN3=0.0 -! -!UR7/PAN4=0.0 -! -!UR7/PAN6=0.0 -! -!UR7/PAN7=0.0 -! -!UR7/PAN8=0.0 -! -!UR7/PN10=0.0 -! -!UR7/RO2T=+K208*<RO227>+0.3*K211*<RO228> - PJAC(:,56,85)=+TPK%K208(:)*TPK%RO227(:)+0.3*TPK%K211(:)*TPK%RO228(:) -! -!UR7/RO21=0.0 -! -!UR7/RO25=0.0 -! -!UR7/WC_O3=0.0 -! -!UR7/WC_H2O2=0.0 -! -!UR7/WC_NO=0.0 -! -!UR7/WC_NO2=0.0 -! -!UR7/WC_NO3=0.0 -! -!UR7/WC_N2O5=0.0 -! -!UR7/WC_HONO=0.0 -! -!UR7/WC_HNO3=0.0 -! -!UR7/WC_HNO4=0.0 -! -!UR7/WC_NH3=0.0 -! -!UR7/WC_OH=0.0 -! -!UR7/WC_HO2=0.0 -! -!UR7/WC_CO2=0.0 -! -!UR7/WC_SO2=0.0 -! -!UR7/WC_H2SO4=0.0 -! -!UR7/WC_RO21=0.0 -! -!UR7/WC_RO25=0.0 -! -!UR7/WC_MEOH=0.0 -! -!UR7/WC_ETOH=0.0 -! -!UR7/WC_ALCH=0.0 -! -!UR7/WC_HCHO=0.0 -! -!UR7/WC_ALD2=0.0 -! -!UR7/WC_GLY=0.0 -! -!UR7/WC_MGLY=0.0 -! -!UR7/WC_KETL=0.0 -! -!UR7/WC_ORA1=0.0 -! -!UR7/WC_ORA2=0.0 -! -!UR7/WC_ACID=0.0 -! -!UR7/WC_RP16=0.0 -! -!UR7/WC_UR21=0.0 -! -!UR7/WC_UR28=0.0 -! -!UR7/WC_ACID2=0.0 -! -!UR7/WC_ASO3=0.0 -! -!UR7/WC_ASO4=0.0 -! -!UR7/WC_ASO5=0.0 -! -!UR7/WC_AHSO5=0.0 -! -!UR7/WC_AHMS=0.0 -! -!UR7/WR_O3=0.0 -! -!UR7/WR_H2O2=0.0 -! -!UR7/WR_NO=0.0 -! -!UR7/WR_NO2=0.0 -! -!UR7/WR_NO3=0.0 -! -!UR7/WR_N2O5=0.0 -! -!UR7/WR_HONO=0.0 -! -!UR7/WR_HNO3=0.0 -! -!UR7/WR_HNO4=0.0 -! -!UR7/WR_NH3=0.0 -! -!UR7/WR_OH=0.0 -! -!UR7/WR_HO2=0.0 -! -!UR7/WR_CO2=0.0 -! -!UR7/WR_SO2=0.0 -! -!UR7/WR_H2SO4=0.0 -! -!UR7/WR_RO21=0.0 -! -!UR7/WR_RO25=0.0 -! -!UR7/WR_MEOH=0.0 -! -!UR7/WR_ETOH=0.0 -! -!UR7/WR_ALCH=0.0 -! -!UR7/WR_HCHO=0.0 -! -!UR7/WR_ALD2=0.0 -! -!UR7/WR_GLY=0.0 -! -!UR7/WR_MGLY=0.0 -! -!UR7/WR_KETL=0.0 -! -!UR7/WR_ORA1=0.0 -! -!UR7/WR_ORA2=0.0 -! -!UR7/WR_ACID=0.0 -! -!UR7/WR_RP16=0.0 -! -!UR7/WR_UR21=0.0 -! -!UR7/WR_UR28=0.0 -! -!UR7/WR_ACID2=0.0 -! -!UR7/WR_ASO3=0.0 -! -!UR7/WR_ASO4=0.0 -! -!UR7/WR_ASO5=0.0 -! -!UR7/WR_AHSO5=0.0 -! -!UR7/WR_AHMS=0.0 -! -!RPR3/NO=+TPK%CFA10*K198*<RO224>+K201*<RO225> - PJAC(:,57,1)=+TPK%CFA10*TPK%K198(:)*TPK%RO224(:)+TPK%K201(:)*TPK%RO225(:) -! -!RPR3/NO2=0.0 -! -!RPR3/O3=+0.055*K086*<BIOL> - PJAC(:,57,3)=+0.055*TPK%K086(:)*PCONC(:,36) -! -!RPR3/HONO=0.0 -! -!RPR3/HNO3=0.0 -! -!RPR3/HNO4=0.0 -! -!RPR3/N2O5=0.0 -! -!RPR3/NO3=-K313*<RPR3> - PJAC(:,57,8)=-TPK%K313(:)*PCONC(:,57) -! -!RPR3/NH3=0.0 -! -!RPR3/HO2=+K200*<RO224>+K203*<RO225> - PJAC(:,57,10)=+TPK%K200(:)*TPK%RO224(:)+TPK%K203(:)*TPK%RO225(:) -! -!RPR3/CO=0.0 -! -!RPR3/H2O2=0.0 -! -!RPR3/SO2=0.0 -! -!RPR3/H2SO4=0.0 -! -!RPR3/OH=-K312*<RPR3> - PJAC(:,57,15)=-TPK%K312(:)*PCONC(:,57) -! -!RPR3/ETHE=0.0 -! -!RPR3/OLEL=0.0 -! -!RPR3/OLEH=0.0 -! -!RPR3/ALKL=0.0 -! -!RPR3/ALKM=0.0 -! -!RPR3/ALKH=0.0 -! -!RPR3/AROH=0.0 -! -!RPR3/AROL=0.0 -! -!RPR3/AROO=0.0 -! -!RPR3/ARAL=0.0 -! -!RPR3/ARAC=0.0 -! -!RPR3/PAH=0.0 -! -!RPR3/HCHO=0.0 -! -!RPR3/ALD2=0.0 -! -!RPR3/KETL=0.0 -! -!RPR3/KETH=0.0 -! -!RPR3/MEOH=0.0 -! -!RPR3/ETOH=0.0 -! -!RPR3/ALCH=0.0 -! -!RPR3/ISOP=0.0 -! -!RPR3/BIOL=+0.055*K086*<O3> - PJAC(:,57,36)=+0.055*TPK%K086(:)*PCONC(:,3) -! -!RPR3/BIOH=0.0 -! -!RPR3/MTBE=0.0 -! -!RPR3/MVK=0.0 -! -!RPR3/MCR=0.0 -! -!RPR3/MGLY=0.0 -! -!RPR3/GLY=0.0 -! -!RPR3/ORA1=0.0 -! -!RPR3/ORA2=0.0 -! -!RPR3/ACID=0.0 -! -!RPR3/UR28=0.0 -! -!RPR3/UR21=0.0 -! -!RPR3/URG2=0.0 -! -!RPR3/UR26=0.0 -! -!RPR3/RPG2=0.0 -! -!RPR3/RP18=0.0 -! -!RPR3/RPG3=0.0 -! -!RPR3/URG4=0.0 -! -!RPR3/UR8=0.0 -! -!RPR3/UR17=0.0 -! -!RPR3/UR7=0.0 -! -!RPR3/RPR3=-K312*<OH>-K313*<NO3>-K314 - PJAC(:,57,57)=-TPK%K312(:)*PCONC(:,15)-TPK%K313(:)*PCONC(:,8)-TPK%K314(:) -! -!RPR3/URG6=0.0 -! -!RPR3/UR22=0.0 -! -!RPR3/URG7=0.0 -! -!RPR3/RPR4=0.0 -! -!RPR3/RPR7=0.0 -! -!RPR3/RPG7=0.0 -! -!RPR3/URG8=0.0 -! -!RPR3/UR19=0.0 -! -!RPR3/URG9=0.0 -! -!RPR3/AP7=0.0 -! -!RPR3/URG10=0.0 -! -!RPR3/RPR1=0.0 -! -!RPR3/RPR5=0.0 -! -!RPR3/RPR8=0.0 -! -!RPR3/RP10=0.0 -! -!RPR3/RP11=0.0 -! -!RPR3/RP16=0.0 -! -!RPR3/RPRL=0.0 -! -!RPR3/APAN=0.0 -! -!RPR3/PAN1=0.0 -! -!RPR3/PAN2=0.0 -! -!RPR3/PAN3=0.0 -! -!RPR3/PAN4=0.0 -! -!RPR3/PAN6=0.0 -! -!RPR3/PAN7=0.0 -! -!RPR3/PAN8=0.0 -! -!RPR3/PN10=0.0 -! -!RPR3/RO2T=+K199*<RO224>+K202*<RO225> - PJAC(:,57,85)=+TPK%K199(:)*TPK%RO224(:)+TPK%K202(:)*TPK%RO225(:) -! -!RPR3/RO21=0.0 -! -!RPR3/RO25=0.0 -! -!RPR3/WC_O3=0.0 -! -!RPR3/WC_H2O2=0.0 -! -!RPR3/WC_NO=0.0 -! -!RPR3/WC_NO2=0.0 -! -!RPR3/WC_NO3=0.0 -! -!RPR3/WC_N2O5=0.0 -! -!RPR3/WC_HONO=0.0 -! -!RPR3/WC_HNO3=0.0 -! -!RPR3/WC_HNO4=0.0 -! -!RPR3/WC_NH3=0.0 -! -!RPR3/WC_OH=0.0 -! -!RPR3/WC_HO2=0.0 -! -!RPR3/WC_CO2=0.0 -! -!RPR3/WC_SO2=0.0 -! -!RPR3/WC_H2SO4=0.0 -! -!RPR3/WC_RO21=0.0 -! -!RPR3/WC_RO25=0.0 -! -!RPR3/WC_MEOH=0.0 -! -!RPR3/WC_ETOH=0.0 -! -!RPR3/WC_ALCH=0.0 -! -!RPR3/WC_HCHO=0.0 -! -!RPR3/WC_ALD2=0.0 -! -!RPR3/WC_GLY=0.0 -! -!RPR3/WC_MGLY=0.0 -! -!RPR3/WC_KETL=0.0 -! -!RPR3/WC_ORA1=0.0 -! -!RPR3/WC_ORA2=0.0 -! -!RPR3/WC_ACID=0.0 -! -!RPR3/WC_RP16=0.0 -! -!RPR3/WC_UR21=0.0 -! -!RPR3/WC_UR28=0.0 -! -!RPR3/WC_ACID2=0.0 -! -!RPR3/WC_ASO3=0.0 -! -!RPR3/WC_ASO4=0.0 -! -!RPR3/WC_ASO5=0.0 -! -!RPR3/WC_AHSO5=0.0 -! -!RPR3/WC_AHMS=0.0 -! -!RPR3/WR_O3=0.0 -! -!RPR3/WR_H2O2=0.0 -! -!RPR3/WR_NO=0.0 -! -!RPR3/WR_NO2=0.0 -! -!RPR3/WR_NO3=0.0 -! -!RPR3/WR_N2O5=0.0 -! -!RPR3/WR_HONO=0.0 -! -!RPR3/WR_HNO3=0.0 -! -!RPR3/WR_HNO4=0.0 -! -!RPR3/WR_NH3=0.0 -! -!RPR3/WR_OH=0.0 -! -!RPR3/WR_HO2=0.0 -! -!RPR3/WR_CO2=0.0 -! -!RPR3/WR_SO2=0.0 -! -!RPR3/WR_H2SO4=0.0 -! -!RPR3/WR_RO21=0.0 -! -!RPR3/WR_RO25=0.0 -! -!RPR3/WR_MEOH=0.0 -! -!RPR3/WR_ETOH=0.0 -! -!RPR3/WR_ALCH=0.0 -! -!RPR3/WR_HCHO=0.0 -! -!RPR3/WR_ALD2=0.0 -! -!RPR3/WR_GLY=0.0 -! -!RPR3/WR_MGLY=0.0 -! -!RPR3/WR_KETL=0.0 -! -!RPR3/WR_ORA1=0.0 -! -!RPR3/WR_ORA2=0.0 -! -!RPR3/WR_ACID=0.0 -! -!RPR3/WR_RP16=0.0 -! -!RPR3/WR_UR21=0.0 -! -!RPR3/WR_UR28=0.0 -! -!RPR3/WR_ACID2=0.0 -! -!RPR3/WR_ASO3=0.0 -! -!RPR3/WR_ASO4=0.0 -! -!RPR3/WR_ASO5=0.0 -! -!RPR3/WR_AHSO5=0.0 -! -!RPR3/WR_AHMS=0.0 -! -!URG6/NO=+TPK%CF21*K177*<RO217>+TPK%CF43*K195*<RO223> - PJAC(:,58,1)=+TPK%CF21*TPK%K177(:)*TPK%RO217(:)+TPK%CF43*TPK%K195(:)*TPK%RO223& -&(:) -! -!URG6/NO2=0.0 -! -!URG6/O3=0.0 -! -!URG6/HONO=0.0 -! -!URG6/HNO3=0.0 -! -!URG6/HNO4=0.0 -! -!URG6/N2O5=0.0 -! -!URG6/NO3=0.0 -! -!URG6/NH3=0.0 -! -!URG6/HO2=0.0 -! -!URG6/CO=0.0 -! -!URG6/H2O2=0.0 -! -!URG6/SO2=0.0 -! -!URG6/H2SO4=0.0 -! -!URG6/OH=+0.4978440*K323*<RPG7> - PJAC(:,58,15)=+0.4978440*TPK%K323(:)*PCONC(:,63) -! -!URG6/ETHE=0.0 -! -!URG6/OLEL=0.0 -! -!URG6/OLEH=0.0 -! -!URG6/ALKL=0.0 -! -!URG6/ALKM=0.0 -! -!URG6/ALKH=0.0 -! -!URG6/AROH=0.0 -! -!URG6/AROL=0.0 -! -!URG6/AROO=0.0 -! -!URG6/ARAL=0.0 -! -!URG6/ARAC=0.0 -! -!URG6/PAH=0.0 -! -!URG6/HCHO=0.0 -! -!URG6/ALD2=0.0 -! -!URG6/KETL=0.0 -! -!URG6/KETH=0.0 -! -!URG6/MEOH=0.0 -! -!URG6/ETOH=0.0 -! -!URG6/ALCH=0.0 -! -!URG6/ISOP=0.0 -! -!URG6/BIOL=0.0 -! -!URG6/BIOH=0.0 -! -!URG6/MTBE=0.0 -! -!URG6/MVK=0.0 -! -!URG6/MCR=0.0 -! -!URG6/MGLY=0.0 -! -!URG6/GLY=0.0 -! -!URG6/ORA1=0.0 -! -!URG6/ORA2=0.0 -! -!URG6/ACID=0.0 -! -!URG6/UR28=0.0 -! -!URG6/UR21=0.0 -! -!URG6/URG2=0.0 -! -!URG6/UR26=0.0 -! -!URG6/RPG2=0.0 -! -!URG6/RP18=0.0 -! -!URG6/RPG3=0.0 -! -!URG6/URG4=0.0 -! -!URG6/UR8=0.0 -! -!URG6/UR17=0.0 -! -!URG6/UR7=0.0 -! -!URG6/RPR3=0.0 -! -!URG6/URG6=-K352 - PJAC(:,58,58)=-TPK%K352(:) -! -!URG6/UR22=0.0 -! -!URG6/URG7=0.0 -! -!URG6/RPR4=0.0 -! -!URG6/RPR7=0.0 -! -!URG6/RPG7=+0.4978440*K323*<OH> - PJAC(:,58,63)=+0.4978440*TPK%K323(:)*PCONC(:,15) -! -!URG6/URG8=0.0 -! -!URG6/UR19=0.0 -! -!URG6/URG9=0.0 -! -!URG6/AP7=0.0 -! -!URG6/URG10=0.0 -! -!URG6/RPR1=0.0 -! -!URG6/RPR5=0.0 -! -!URG6/RPR8=0.0 -! -!URG6/RP10=0.0 -! -!URG6/RP11=0.0 -! -!URG6/RP16=0.0 -! -!URG6/RPRL=0.0 -! -!URG6/APAN=0.0 -! -!URG6/PAN1=0.0 -! -!URG6/PAN2=0.0 -! -!URG6/PAN3=0.0 -! -!URG6/PAN4=0.0 -! -!URG6/PAN6=0.0 -! -!URG6/PAN7=0.0 -! -!URG6/PAN8=0.0 -! -!URG6/PN10=0.0 -! -!URG6/RO2T=0.0 -! -!URG6/RO21=0.0 -! -!URG6/RO25=0.0 -! -!URG6/WC_O3=0.0 -! -!URG6/WC_H2O2=0.0 -! -!URG6/WC_NO=0.0 -! -!URG6/WC_NO2=0.0 -! -!URG6/WC_NO3=0.0 -! -!URG6/WC_N2O5=0.0 -! -!URG6/WC_HONO=0.0 -! -!URG6/WC_HNO3=0.0 -! -!URG6/WC_HNO4=0.0 -! -!URG6/WC_NH3=0.0 -! -!URG6/WC_OH=0.0 -! -!URG6/WC_HO2=0.0 -! -!URG6/WC_CO2=0.0 -! -!URG6/WC_SO2=0.0 -! -!URG6/WC_H2SO4=0.0 -! -!URG6/WC_RO21=0.0 -! -!URG6/WC_RO25=0.0 -! -!URG6/WC_MEOH=0.0 -! -!URG6/WC_ETOH=0.0 -! -!URG6/WC_ALCH=0.0 -! -!URG6/WC_HCHO=0.0 -! -!URG6/WC_ALD2=0.0 -! -!URG6/WC_GLY=0.0 -! -!URG6/WC_MGLY=0.0 -! -!URG6/WC_KETL=0.0 -! -!URG6/WC_ORA1=0.0 -! -!URG6/WC_ORA2=0.0 -! -!URG6/WC_ACID=0.0 -! -!URG6/WC_RP16=0.0 -! -!URG6/WC_UR21=0.0 -! -!URG6/WC_UR28=0.0 -! -!URG6/WC_ACID2=0.0 -! -!URG6/WC_ASO3=0.0 -! -!URG6/WC_ASO4=0.0 -! -!URG6/WC_ASO5=0.0 -! -!URG6/WC_AHSO5=0.0 -! -!URG6/WC_AHMS=0.0 -! -!URG6/WR_O3=0.0 -! -!URG6/WR_H2O2=0.0 -! -!URG6/WR_NO=0.0 -! -!URG6/WR_NO2=0.0 -! -!URG6/WR_NO3=0.0 -! -!URG6/WR_N2O5=0.0 -! -!URG6/WR_HONO=0.0 -! -!URG6/WR_HNO3=0.0 -! -!URG6/WR_HNO4=0.0 -! -!URG6/WR_NH3=0.0 -! -!URG6/WR_OH=0.0 -! -!URG6/WR_HO2=0.0 -! -!URG6/WR_CO2=0.0 -! -!URG6/WR_SO2=0.0 -! -!URG6/WR_H2SO4=0.0 -! -!URG6/WR_RO21=0.0 -! -!URG6/WR_RO25=0.0 -! -!URG6/WR_MEOH=0.0 -! -!URG6/WR_ETOH=0.0 -! -!URG6/WR_ALCH=0.0 -! -!URG6/WR_HCHO=0.0 -! -!URG6/WR_ALD2=0.0 -! -!URG6/WR_GLY=0.0 -! -!URG6/WR_MGLY=0.0 -! -!URG6/WR_KETL=0.0 -! -!URG6/WR_ORA1=0.0 -! -!URG6/WR_ORA2=0.0 -! -!URG6/WR_ACID=0.0 -! -!URG6/WR_RP16=0.0 -! -!URG6/WR_UR21=0.0 -! -!URG6/WR_UR28=0.0 -! -!URG6/WR_ACID2=0.0 -! -!URG6/WR_ASO3=0.0 -! -!URG6/WR_ASO4=0.0 -! -!URG6/WR_ASO5=0.0 -! -!URG6/WR_AHSO5=0.0 -! -!URG6/WR_AHMS=0.0 -! -!UR22/NO=0.0 -! -!UR22/NO2=+K321*<RAD8> - PJAC(:,59,2)=+TPK%K321(:)*TPK%RAD8(:) -! -!UR22/O3=0.0 -! -!UR22/HONO=0.0 -! -!UR22/HNO3=0.0 -! -!UR22/HNO4=0.0 -! -!UR22/N2O5=0.0 -! -!UR22/NO3=0.0 -! -!UR22/NH3=0.0 -! -!UR22/HO2=0.0 -! -!UR22/CO=0.0 -! -!UR22/H2O2=0.0 -! -!UR22/SO2=0.0 -! -!UR22/H2SO4=0.0 -! -!UR22/OH=0.0 -! -!UR22/ETHE=0.0 -! -!UR22/OLEL=0.0 -! -!UR22/OLEH=0.0 -! -!UR22/ALKL=0.0 -! -!UR22/ALKM=0.0 -! -!UR22/ALKH=0.0 -! -!UR22/AROH=0.0 -! -!UR22/AROL=0.0 -! -!UR22/AROO=0.0 -! -!UR22/ARAL=0.0 -! -!UR22/ARAC=0.0 -! -!UR22/PAH=0.0 -! -!UR22/HCHO=0.0 -! -!UR22/ALD2=0.0 -! -!UR22/KETL=0.0 -! -!UR22/KETH=0.0 -! -!UR22/MEOH=0.0 -! -!UR22/ETOH=0.0 -! -!UR22/ALCH=0.0 -! -!UR22/ISOP=0.0 -! -!UR22/BIOL=0.0 -! -!UR22/BIOH=0.0 -! -!UR22/MTBE=0.0 -! -!UR22/MVK=0.0 -! -!UR22/MCR=0.0 -! -!UR22/MGLY=0.0 -! -!UR22/GLY=0.0 -! -!UR22/ORA1=0.0 -! -!UR22/ORA2=0.0 -! -!UR22/ACID=0.0 -! -!UR22/UR28=0.0 -! -!UR22/UR21=0.0 -! -!UR22/URG2=0.0 -! -!UR22/UR26=0.0 -! -!UR22/RPG2=0.0 -! -!UR22/RP18=0.0 -! -!UR22/RPG3=0.0 -! -!UR22/URG4=0.0 -! -!UR22/UR8=0.0 -! -!UR22/UR17=0.0 -! -!UR22/UR7=0.0 -! -!UR22/RPR3=0.0 -! -!UR22/URG6=0.0 -! -!UR22/UR22=-K362 - PJAC(:,59,59)=-TPK%K362(:) -! -!UR22/URG7=0.0 -! -!UR22/RPR4=0.0 -! -!UR22/RPR7=0.0 -! -!UR22/RPG7=0.0 -! -!UR22/URG8=0.0 -! -!UR22/UR19=0.0 -! -!UR22/URG9=0.0 -! -!UR22/AP7=0.0 -! -!UR22/URG10=0.0 -! -!UR22/RPR1=0.0 -! -!UR22/RPR5=0.0 -! -!UR22/RPR8=0.0 -! -!UR22/RP10=0.0 -! -!UR22/RP11=0.0 -! -!UR22/RP16=0.0 -! -!UR22/RPRL=0.0 -! -!UR22/APAN=0.0 -! -!UR22/PAN1=0.0 -! -!UR22/PAN2=0.0 -! -!UR22/PAN3=0.0 -! -!UR22/PAN4=0.0 -! -!UR22/PAN6=0.0 -! -!UR22/PAN7=0.0 -! -!UR22/PAN8=0.0 -! -!UR22/PN10=0.0 -! -!UR22/RO2T=0.0 -! -!UR22/RO21=0.0 -! -!UR22/RO25=0.0 -! -!UR22/WC_O3=0.0 -! -!UR22/WC_H2O2=0.0 -! -!UR22/WC_NO=0.0 -! -!UR22/WC_NO2=0.0 -! -!UR22/WC_NO3=0.0 -! -!UR22/WC_N2O5=0.0 -! -!UR22/WC_HONO=0.0 -! -!UR22/WC_HNO3=0.0 -! -!UR22/WC_HNO4=0.0 -! -!UR22/WC_NH3=0.0 -! -!UR22/WC_OH=0.0 -! -!UR22/WC_HO2=0.0 -! -!UR22/WC_CO2=0.0 -! -!UR22/WC_SO2=0.0 -! -!UR22/WC_H2SO4=0.0 -! -!UR22/WC_RO21=0.0 -! -!UR22/WC_RO25=0.0 -! -!UR22/WC_MEOH=0.0 -! -!UR22/WC_ETOH=0.0 -! -!UR22/WC_ALCH=0.0 -! -!UR22/WC_HCHO=0.0 -! -!UR22/WC_ALD2=0.0 -! -!UR22/WC_GLY=0.0 -! -!UR22/WC_MGLY=0.0 -! -!UR22/WC_KETL=0.0 -! -!UR22/WC_ORA1=0.0 -! -!UR22/WC_ORA2=0.0 -! -!UR22/WC_ACID=0.0 -! -!UR22/WC_RP16=0.0 -! -!UR22/WC_UR21=0.0 -! -!UR22/WC_UR28=0.0 -! -!UR22/WC_ACID2=0.0 -! -!UR22/WC_ASO3=0.0 -! -!UR22/WC_ASO4=0.0 -! -!UR22/WC_ASO5=0.0 -! -!UR22/WC_AHSO5=0.0 -! -!UR22/WC_AHMS=0.0 -! -!UR22/WR_O3=0.0 -! -!UR22/WR_H2O2=0.0 -! -!UR22/WR_NO=0.0 -! -!UR22/WR_NO2=0.0 -! -!UR22/WR_NO3=0.0 -! -!UR22/WR_N2O5=0.0 -! -!UR22/WR_HONO=0.0 -! -!UR22/WR_HNO3=0.0 -! -!UR22/WR_HNO4=0.0 -! -!UR22/WR_NH3=0.0 -! -!UR22/WR_OH=0.0 -! -!UR22/WR_HO2=0.0 -! -!UR22/WR_CO2=0.0 -! -!UR22/WR_SO2=0.0 -! -!UR22/WR_H2SO4=0.0 -! -!UR22/WR_RO21=0.0 -! -!UR22/WR_RO25=0.0 -! -!UR22/WR_MEOH=0.0 -! -!UR22/WR_ETOH=0.0 -! -!UR22/WR_ALCH=0.0 -! -!UR22/WR_HCHO=0.0 -! -!UR22/WR_ALD2=0.0 -! -!UR22/WR_GLY=0.0 -! -!UR22/WR_MGLY=0.0 -! -!UR22/WR_KETL=0.0 -! -!UR22/WR_ORA1=0.0 -! -!UR22/WR_ORA2=0.0 -! -!UR22/WR_ACID=0.0 -! -!UR22/WR_RP16=0.0 -! -!UR22/WR_UR21=0.0 -! -!UR22/WR_UR28=0.0 -! -!UR22/WR_ACID2=0.0 -! -!UR22/WR_ASO3=0.0 -! -!UR22/WR_ASO4=0.0 -! -!UR22/WR_ASO5=0.0 -! -!UR22/WR_AHSO5=0.0 -! -!UR22/WR_AHMS=0.0 -! -!URG7/NO=0.0 -! -!URG7/NO2=+0.9999993*K108*<RAD6> - PJAC(:,60,2)=+0.9999993*TPK%K108(:)*TPK%RAD6(:) -! -!URG7/O3=0.0 -! -!URG7/HONO=0.0 -! -!URG7/HNO3=0.0 -! -!URG7/HNO4=0.0 -! -!URG7/N2O5=0.0 -! -!URG7/NO3=0.0 -! -!URG7/NH3=0.0 -! -!URG7/HO2=0.0 -! -!URG7/CO=0.0 -! -!URG7/H2O2=0.0 -! -!URG7/SO2=0.0 -! -!URG7/H2SO4=0.0 -! -!URG7/OH=+0.1599999*K083*<ARAC>+0.9999993*K303*<RPR5>+0.9979297*K306*<RPRL>+0.9 -!999993*K322*<RPR7> - PJAC(:,60,15)=+0.1599999*TPK%K083(:)*PCONC(:,26)+0.9999993*TPK%K303(:)*PCONC(:& -&,70)+0.9979297*TPK%K306(:)*PCONC(:,75)+0.9999993*TPK%K322(:)*PCONC(:,62) -! -!URG7/ETHE=0.0 -! -!URG7/OLEL=0.0 -! -!URG7/OLEH=0.0 -! -!URG7/ALKL=0.0 -! -!URG7/ALKM=0.0 -! -!URG7/ALKH=0.0 -! -!URG7/AROH=0.0 -! -!URG7/AROL=0.0 -! -!URG7/AROO=0.0 -! -!URG7/ARAL=0.0 -! -!URG7/ARAC=+0.1599999*K083*<OH> - PJAC(:,60,26)=+0.1599999*TPK%K083(:)*PCONC(:,15) -! -!URG7/PAH=0.0 -! -!URG7/HCHO=0.0 -! -!URG7/ALD2=0.0 -! -!URG7/KETL=0.0 -! -!URG7/KETH=0.0 -! -!URG7/MEOH=0.0 -! -!URG7/ETOH=0.0 -! -!URG7/ALCH=0.0 -! -!URG7/ISOP=0.0 -! -!URG7/BIOL=0.0 -! -!URG7/BIOH=0.0 -! -!URG7/MTBE=0.0 -! -!URG7/MVK=0.0 -! -!URG7/MCR=0.0 -! -!URG7/MGLY=0.0 -! -!URG7/GLY=0.0 -! -!URG7/ORA1=0.0 -! -!URG7/ORA2=0.0 -! -!URG7/ACID=0.0 -! -!URG7/UR28=0.0 -! -!URG7/UR21=0.0 -! -!URG7/URG2=0.0 -! -!URG7/UR26=0.0 -! -!URG7/RPG2=0.0 -! -!URG7/RP18=0.0 -! -!URG7/RPG3=0.0 -! -!URG7/URG4=0.0 -! -!URG7/UR8=0.0 -! -!URG7/UR17=0.0 -! -!URG7/UR7=0.0 -! -!URG7/RPR3=0.0 -! -!URG7/URG6=0.0 -! -!URG7/UR22=0.0 -! -!URG7/URG7=-K353 - PJAC(:,60,60)=-TPK%K353(:) -! -!URG7/RPR4=0.0 -! -!URG7/RPR7=+0.9999993*K322*<OH> - PJAC(:,60,62)=+0.9999993*TPK%K322(:)*PCONC(:,15) -! -!URG7/RPG7=0.0 -! -!URG7/URG8=0.0 -! -!URG7/UR19=0.0 -! -!URG7/URG9=0.0 -! -!URG7/AP7=0.0 -! -!URG7/URG10=0.0 -! -!URG7/RPR1=0.0 -! -!URG7/RPR5=+0.9999993*K303*<OH> - PJAC(:,60,70)=+0.9999993*TPK%K303(:)*PCONC(:,15) -! -!URG7/RPR8=0.0 -! -!URG7/RP10=0.0 -! -!URG7/RP11=0.0 -! -!URG7/RP16=0.0 -! -!URG7/RPRL=+0.9979297*K306*<OH> - PJAC(:,60,75)=+0.9979297*TPK%K306(:)*PCONC(:,15) -! -!URG7/APAN=0.0 -! -!URG7/PAN1=0.0 -! -!URG7/PAN2=0.0 -! -!URG7/PAN3=0.0 -! -!URG7/PAN4=0.0 -! -!URG7/PAN6=0.0 -! -!URG7/PAN7=0.0 -! -!URG7/PAN8=0.0 -! -!URG7/PN10=0.0 -! -!URG7/RO2T=0.0 -! -!URG7/RO21=0.0 -! -!URG7/RO25=0.0 -! -!URG7/WC_O3=0.0 -! -!URG7/WC_H2O2=0.0 -! -!URG7/WC_NO=0.0 -! -!URG7/WC_NO2=0.0 -! -!URG7/WC_NO3=0.0 -! -!URG7/WC_N2O5=0.0 -! -!URG7/WC_HONO=0.0 -! -!URG7/WC_HNO3=0.0 -! -!URG7/WC_HNO4=0.0 -! -!URG7/WC_NH3=0.0 -! -!URG7/WC_OH=0.0 -! -!URG7/WC_HO2=0.0 -! -!URG7/WC_CO2=0.0 -! -!URG7/WC_SO2=0.0 -! -!URG7/WC_H2SO4=0.0 -! -!URG7/WC_RO21=0.0 -! -!URG7/WC_RO25=0.0 -! -!URG7/WC_MEOH=0.0 -! -!URG7/WC_ETOH=0.0 -! -!URG7/WC_ALCH=0.0 -! -!URG7/WC_HCHO=0.0 -! -!URG7/WC_ALD2=0.0 -! -!URG7/WC_GLY=0.0 -! -!URG7/WC_MGLY=0.0 -! -!URG7/WC_KETL=0.0 -! -!URG7/WC_ORA1=0.0 -! -!URG7/WC_ORA2=0.0 -! -!URG7/WC_ACID=0.0 -! -!URG7/WC_RP16=0.0 -! -!URG7/WC_UR21=0.0 -! -!URG7/WC_UR28=0.0 -! -!URG7/WC_ACID2=0.0 -! -!URG7/WC_ASO3=0.0 -! -!URG7/WC_ASO4=0.0 -! -!URG7/WC_ASO5=0.0 -! -!URG7/WC_AHSO5=0.0 -! -!URG7/WC_AHMS=0.0 -! -!URG7/WR_O3=0.0 -! -!URG7/WR_H2O2=0.0 -! -!URG7/WR_NO=0.0 -! -!URG7/WR_NO2=0.0 -! -!URG7/WR_NO3=0.0 -! -!URG7/WR_N2O5=0.0 -! -!URG7/WR_HONO=0.0 -! -!URG7/WR_HNO3=0.0 -! -!URG7/WR_HNO4=0.0 -! -!URG7/WR_NH3=0.0 -! -!URG7/WR_OH=0.0 -! -!URG7/WR_HO2=0.0 -! -!URG7/WR_CO2=0.0 -! -!URG7/WR_SO2=0.0 -! -!URG7/WR_H2SO4=0.0 -! -!URG7/WR_RO21=0.0 -! -!URG7/WR_RO25=0.0 -! -!URG7/WR_MEOH=0.0 -! -!URG7/WR_ETOH=0.0 -! -!URG7/WR_ALCH=0.0 -! -!URG7/WR_HCHO=0.0 -! -!URG7/WR_ALD2=0.0 -! -!URG7/WR_GLY=0.0 -! -!URG7/WR_MGLY=0.0 -! -!URG7/WR_KETL=0.0 -! -!URG7/WR_ORA1=0.0 -! -!URG7/WR_ORA2=0.0 -! -!URG7/WR_ACID=0.0 -! -!URG7/WR_RP16=0.0 -! -!URG7/WR_UR21=0.0 -! -!URG7/WR_UR28=0.0 -! -!URG7/WR_ACID2=0.0 -! -!URG7/WR_ASO3=0.0 -! -!URG7/WR_ASO4=0.0 -! -!URG7/WR_ASO5=0.0 -! -!URG7/WR_AHSO5=0.0 -! -!URG7/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ11 -! -SUBROUTINE SUBJ12 -! -!Indices 61 a 65 -! -! -!RPR4/NO=0.0 -! -!RPR4/NO2=+K103*<RAD1>+K104*<RAD2> - PJAC(:,61,2)=+TPK%K103(:)*TPK%RAD1(:)+TPK%K104(:)*TPK%RAD2(:) -! -!RPR4/O3=0.0 -! -!RPR4/HONO=0.0 -! -!RPR4/HNO3=0.0 -! -!RPR4/HNO4=0.0 -! -!RPR4/N2O5=0.0 -! -!RPR4/NO3=-K320*<RPR4> - PJAC(:,61,8)=-TPK%K320(:)*PCONC(:,61) -! -!RPR4/NH3=0.0 -! -!RPR4/HO2=0.0 -! -!RPR4/CO=0.0 -! -!RPR4/H2O2=0.0 -! -!RPR4/SO2=0.0 -! -!RPR4/H2SO4=0.0 -! -!RPR4/OH=0.0 -! -!RPR4/ETHE=0.0 -! -!RPR4/OLEL=0.0 -! -!RPR4/OLEH=0.0 -! -!RPR4/ALKL=0.0 -! -!RPR4/ALKM=0.0 -! -!RPR4/ALKH=0.0 -! -!RPR4/AROH=0.0 -! -!RPR4/AROL=0.0 -! -!RPR4/AROO=0.0 -! -!RPR4/ARAL=0.0 -! -!RPR4/ARAC=0.0 -! -!RPR4/PAH=0.0 -! -!RPR4/HCHO=0.0 -! -!RPR4/ALD2=0.0 -! -!RPR4/KETL=0.0 -! -!RPR4/KETH=0.0 -! -!RPR4/MEOH=0.0 -! -!RPR4/ETOH=0.0 -! -!RPR4/ALCH=0.0 -! -!RPR4/ISOP=0.0 -! -!RPR4/BIOL=0.0 -! -!RPR4/BIOH=0.0 -! -!RPR4/MTBE=0.0 -! -!RPR4/MVK=0.0 -! -!RPR4/MCR=0.0 -! -!RPR4/MGLY=0.0 -! -!RPR4/GLY=0.0 -! -!RPR4/ORA1=0.0 -! -!RPR4/ORA2=0.0 -! -!RPR4/ACID=0.0 -! -!RPR4/UR28=0.0 -! -!RPR4/UR21=0.0 -! -!RPR4/URG2=0.0 -! -!RPR4/UR26=0.0 -! -!RPR4/RPG2=0.0 -! -!RPR4/RP18=0.0 -! -!RPR4/RPG3=0.0 -! -!RPR4/URG4=0.0 -! -!RPR4/UR8=0.0 -! -!RPR4/UR17=0.0 -! -!RPR4/UR7=0.0 -! -!RPR4/RPR3=0.0 -! -!RPR4/URG6=0.0 -! -!RPR4/UR22=0.0 -! -!RPR4/URG7=0.0 -! -!RPR4/RPR4=-K320*<NO3> - PJAC(:,61,61)=-TPK%K320(:)*PCONC(:,8) -! -!RPR4/RPR7=0.0 -! -!RPR4/RPG7=0.0 -! -!RPR4/URG8=0.0 -! -!RPR4/UR19=0.0 -! -!RPR4/URG9=0.0 -! -!RPR4/AP7=0.0 -! -!RPR4/URG10=0.0 -! -!RPR4/RPR1=0.0 -! -!RPR4/RPR5=0.0 -! -!RPR4/RPR8=0.0 -! -!RPR4/RP10=0.0 -! -!RPR4/RP11=0.0 -! -!RPR4/RP16=0.0 -! -!RPR4/RPRL=0.0 -! -!RPR4/APAN=0.0 -! -!RPR4/PAN1=0.0 -! -!RPR4/PAN2=0.0 -! -!RPR4/PAN3=0.0 -! -!RPR4/PAN4=0.0 -! -!RPR4/PAN6=0.0 -! -!RPR4/PAN7=0.0 -! -!RPR4/PAN8=0.0 -! -!RPR4/PN10=0.0 -! -!RPR4/RO2T=0.0 -! -!RPR4/RO21=0.0 -! -!RPR4/RO25=0.0 -! -!RPR4/WC_O3=0.0 -! -!RPR4/WC_H2O2=0.0 -! -!RPR4/WC_NO=0.0 -! -!RPR4/WC_NO2=0.0 -! -!RPR4/WC_NO3=0.0 -! -!RPR4/WC_N2O5=0.0 -! -!RPR4/WC_HONO=0.0 -! -!RPR4/WC_HNO3=0.0 -! -!RPR4/WC_HNO4=0.0 -! -!RPR4/WC_NH3=0.0 -! -!RPR4/WC_OH=0.0 -! -!RPR4/WC_HO2=0.0 -! -!RPR4/WC_CO2=0.0 -! -!RPR4/WC_SO2=0.0 -! -!RPR4/WC_H2SO4=0.0 -! -!RPR4/WC_RO21=0.0 -! -!RPR4/WC_RO25=0.0 -! -!RPR4/WC_MEOH=0.0 -! -!RPR4/WC_ETOH=0.0 -! -!RPR4/WC_ALCH=0.0 -! -!RPR4/WC_HCHO=0.0 -! -!RPR4/WC_ALD2=0.0 -! -!RPR4/WC_GLY=0.0 -! -!RPR4/WC_MGLY=0.0 -! -!RPR4/WC_KETL=0.0 -! -!RPR4/WC_ORA1=0.0 -! -!RPR4/WC_ORA2=0.0 -! -!RPR4/WC_ACID=0.0 -! -!RPR4/WC_RP16=0.0 -! -!RPR4/WC_UR21=0.0 -! -!RPR4/WC_UR28=0.0 -! -!RPR4/WC_ACID2=0.0 -! -!RPR4/WC_ASO3=0.0 -! -!RPR4/WC_ASO4=0.0 -! -!RPR4/WC_ASO5=0.0 -! -!RPR4/WC_AHSO5=0.0 -! -!RPR4/WC_AHMS=0.0 -! -!RPR4/WR_O3=0.0 -! -!RPR4/WR_H2O2=0.0 -! -!RPR4/WR_NO=0.0 -! -!RPR4/WR_NO2=0.0 -! -!RPR4/WR_NO3=0.0 -! -!RPR4/WR_N2O5=0.0 -! -!RPR4/WR_HONO=0.0 -! -!RPR4/WR_HNO3=0.0 -! -!RPR4/WR_HNO4=0.0 -! -!RPR4/WR_NH3=0.0 -! -!RPR4/WR_OH=0.0 -! -!RPR4/WR_HO2=0.0 -! -!RPR4/WR_CO2=0.0 -! -!RPR4/WR_SO2=0.0 -! -!RPR4/WR_H2SO4=0.0 -! -!RPR4/WR_RO21=0.0 -! -!RPR4/WR_RO25=0.0 -! -!RPR4/WR_MEOH=0.0 -! -!RPR4/WR_ETOH=0.0 -! -!RPR4/WR_ALCH=0.0 -! -!RPR4/WR_HCHO=0.0 -! -!RPR4/WR_ALD2=0.0 -! -!RPR4/WR_GLY=0.0 -! -!RPR4/WR_MGLY=0.0 -! -!RPR4/WR_KETL=0.0 -! -!RPR4/WR_ORA1=0.0 -! -!RPR4/WR_ORA2=0.0 -! -!RPR4/WR_ACID=0.0 -! -!RPR4/WR_RP16=0.0 -! -!RPR4/WR_UR21=0.0 -! -!RPR4/WR_UR28=0.0 -! -!RPR4/WR_ACID2=0.0 -! -!RPR4/WR_ASO3=0.0 -! -!RPR4/WR_ASO4=0.0 -! -!RPR4/WR_ASO5=0.0 -! -!RPR4/WR_AHSO5=0.0 -! -!RPR4/WR_AHMS=0.0 -! -!RPR7/NO=+TPK%CF44*K195*<RO223> - PJAC(:,62,1)=+TPK%CF44*TPK%K195(:)*TPK%RO223(:) -! -!RPR7/NO2=0.0 -! -!RPR7/O3=0.0 -! -!RPR7/HONO=0.0 -! -!RPR7/HNO3=0.0 -! -!RPR7/HNO4=0.0 -! -!RPR7/N2O5=0.0 -! -!RPR7/NO3=0.0 -! -!RPR7/NH3=0.0 -! -!RPR7/HO2=+K197*<RO223> - PJAC(:,62,10)=+TPK%K197(:)*TPK%RO223(:) -! -!RPR7/CO=0.0 -! -!RPR7/H2O2=0.0 -! -!RPR7/SO2=0.0 -! -!RPR7/H2SO4=0.0 -! -!RPR7/OH=-03*K306*<RPRL>-K322*<RPR7> - PJAC(:,62,15)=-03*TPK%K306(:)*PCONC(:,75)-TPK%K322(:)*PCONC(:,62) -! -!RPR7/ETHE=0.0 -! -!RPR7/OLEL=0.0 -! -!RPR7/OLEH=0.0 -! -!RPR7/ALKL=0.0 -! -!RPR7/ALKM=0.0 -! -!RPR7/ALKH=0.0 -! -!RPR7/AROH=0.0 -! -!RPR7/AROL=0.0 -! -!RPR7/AROO=0.0 -! -!RPR7/ARAL=0.0 -! -!RPR7/ARAC=0.0 -! -!RPR7/PAH=0.0 -! -!RPR7/HCHO=0.0 -! -!RPR7/ALD2=0.0 -! -!RPR7/KETL=0.0 -! -!RPR7/KETH=0.0 -! -!RPR7/MEOH=0.0 -! -!RPR7/ETOH=0.0 -! -!RPR7/ALCH=0.0 -! -!RPR7/ISOP=0.0 -! -!RPR7/BIOL=0.0 -! -!RPR7/BIOH=0.0 -! -!RPR7/MTBE=0.0 -! -!RPR7/MVK=0.0 -! -!RPR7/MCR=0.0 -! -!RPR7/MGLY=0.0 -! -!RPR7/GLY=0.0 -! -!RPR7/ORA1=0.0 -! -!RPR7/ORA2=0.0 -! -!RPR7/ACID=0.0 -! -!RPR7/UR28=0.0 -! -!RPR7/UR21=0.0 -! -!RPR7/URG2=0.0 -! -!RPR7/UR26=0.0 -! -!RPR7/RPG2=0.0 -! -!RPR7/RP18=0.0 -! -!RPR7/RPG3=0.0 -! -!RPR7/URG4=0.0 -! -!RPR7/UR8=0.0 -! -!RPR7/UR17=0.0 -! -!RPR7/UR7=0.0 -! -!RPR7/RPR3=0.0 -! -!RPR7/URG6=0.0 -! -!RPR7/UR22=0.0 -! -!RPR7/URG7=0.0 -! -!RPR7/RPR4=0.0 -! -!RPR7/RPR7=-K322*<OH> - PJAC(:,62,62)=-TPK%K322(:)*PCONC(:,15) -! -!RPR7/RPG7=0.0 -! -!RPR7/URG8=0.0 -! -!RPR7/UR19=0.0 -! -!RPR7/URG9=0.0 -! -!RPR7/AP7=0.0 -! -!RPR7/URG10=0.0 -! -!RPR7/RPR1=0.0 -! -!RPR7/RPR5=0.0 -! -!RPR7/RPR8=0.0 -! -!RPR7/RP10=0.0 -! -!RPR7/RP11=0.0 -! -!RPR7/RP16=0.0 -! -!RPR7/RPRL=-03*K306*<OH> - PJAC(:,62,75)=-03*TPK%K306(:)*PCONC(:,15) -! -!RPR7/APAN=0.0 -! -!RPR7/PAN1=0.0 -! -!RPR7/PAN2=0.0 -! -!RPR7/PAN3=0.0 -! -!RPR7/PAN4=0.0 -! -!RPR7/PAN6=0.0 -! -!RPR7/PAN7=0.0 -! -!RPR7/PAN8=0.0 -! -!RPR7/PN10=0.0 -! -!RPR7/RO2T=+K196*<RO223> - PJAC(:,62,85)=+TPK%K196(:)*TPK%RO223(:) -! -!RPR7/RO21=0.0 -! -!RPR7/RO25=0.0 -! -!RPR7/WC_O3=0.0 -! -!RPR7/WC_H2O2=0.0 -! -!RPR7/WC_NO=0.0 -! -!RPR7/WC_NO2=0.0 -! -!RPR7/WC_NO3=0.0 -! -!RPR7/WC_N2O5=0.0 -! -!RPR7/WC_HONO=0.0 -! -!RPR7/WC_HNO3=0.0 -! -!RPR7/WC_HNO4=0.0 -! -!RPR7/WC_NH3=0.0 -! -!RPR7/WC_OH=0.0 -! -!RPR7/WC_HO2=0.0 -! -!RPR7/WC_CO2=0.0 -! -!RPR7/WC_SO2=0.0 -! -!RPR7/WC_H2SO4=0.0 -! -!RPR7/WC_RO21=0.0 -! -!RPR7/WC_RO25=0.0 -! -!RPR7/WC_MEOH=0.0 -! -!RPR7/WC_ETOH=0.0 -! -!RPR7/WC_ALCH=0.0 -! -!RPR7/WC_HCHO=0.0 -! -!RPR7/WC_ALD2=0.0 -! -!RPR7/WC_GLY=0.0 -! -!RPR7/WC_MGLY=0.0 -! -!RPR7/WC_KETL=0.0 -! -!RPR7/WC_ORA1=0.0 -! -!RPR7/WC_ORA2=0.0 -! -!RPR7/WC_ACID=0.0 -! -!RPR7/WC_RP16=0.0 -! -!RPR7/WC_UR21=0.0 -! -!RPR7/WC_UR28=0.0 -! -!RPR7/WC_ACID2=0.0 -! -!RPR7/WC_ASO3=0.0 -! -!RPR7/WC_ASO4=0.0 -! -!RPR7/WC_ASO5=0.0 -! -!RPR7/WC_AHSO5=0.0 -! -!RPR7/WC_AHMS=0.0 -! -!RPR7/WR_O3=0.0 -! -!RPR7/WR_H2O2=0.0 -! -!RPR7/WR_NO=0.0 -! -!RPR7/WR_NO2=0.0 -! -!RPR7/WR_NO3=0.0 -! -!RPR7/WR_N2O5=0.0 -! -!RPR7/WR_HONO=0.0 -! -!RPR7/WR_HNO3=0.0 -! -!RPR7/WR_HNO4=0.0 -! -!RPR7/WR_NH3=0.0 -! -!RPR7/WR_OH=0.0 -! -!RPR7/WR_HO2=0.0 -! -!RPR7/WR_CO2=0.0 -! -!RPR7/WR_SO2=0.0 -! -!RPR7/WR_H2SO4=0.0 -! -!RPR7/WR_RO21=0.0 -! -!RPR7/WR_RO25=0.0 -! -!RPR7/WR_MEOH=0.0 -! -!RPR7/WR_ETOH=0.0 -! -!RPR7/WR_ALCH=0.0 -! -!RPR7/WR_HCHO=0.0 -! -!RPR7/WR_ALD2=0.0 -! -!RPR7/WR_GLY=0.0 -! -!RPR7/WR_MGLY=0.0 -! -!RPR7/WR_KETL=0.0 -! -!RPR7/WR_ORA1=0.0 -! -!RPR7/WR_ORA2=0.0 -! -!RPR7/WR_ACID=0.0 -! -!RPR7/WR_RP16=0.0 -! -!RPR7/WR_UR21=0.0 -! -!RPR7/WR_UR28=0.0 -! -!RPR7/WR_ACID2=0.0 -! -!RPR7/WR_ASO3=0.0 -! -!RPR7/WR_ASO4=0.0 -! -!RPR7/WR_ASO5=0.0 -! -!RPR7/WR_AHSO5=0.0 -! -!RPR7/WR_AHMS=0.0 -! -!RPG7/NO=+1.0000013*K266*<RO238> - PJAC(:,63,1)=+1.0000013*TPK%K266(:)*TPK%RO238(:) -! -!RPG7/NO2=0.0 -! -!RPG7/O3=0.0 -! -!RPG7/HONO=0.0 -! -!RPG7/HNO3=0.0 -! -!RPG7/HNO4=0.0 -! -!RPG7/N2O5=0.0 -! -!RPG7/NO3=0.0 -! -!RPG7/NH3=0.0 -! -!RPG7/HO2=+1.0000013*K268*<RO238> - PJAC(:,63,10)=+1.0000013*TPK%K268(:)*TPK%RO238(:) -! -!RPG7/CO=0.0 -! -!RPG7/H2O2=0.0 -! -!RPG7/SO2=0.0 -! -!RPG7/H2SO4=0.0 -! -!RPG7/OH=+0.5021558*K323*<RPG7>-K323*<RPG7> - PJAC(:,63,15)=+0.5021558*TPK%K323(:)*PCONC(:,63)-TPK%K323(:)*PCONC(:,63) -! -!RPG7/ETHE=0.0 -! -!RPG7/OLEL=0.0 -! -!RPG7/OLEH=0.0 -! -!RPG7/ALKL=0.0 -! -!RPG7/ALKM=0.0 -! -!RPG7/ALKH=0.0 -! -!RPG7/AROH=0.0 -! -!RPG7/AROL=0.0 -! -!RPG7/AROO=0.0 -! -!RPG7/ARAL=0.0 -! -!RPG7/ARAC=0.0 -! -!RPG7/PAH=0.0 -! -!RPG7/HCHO=0.0 -! -!RPG7/ALD2=0.0 -! -!RPG7/KETL=0.0 -! -!RPG7/KETH=0.0 -! -!RPG7/MEOH=0.0 -! -!RPG7/ETOH=0.0 -! -!RPG7/ALCH=0.0 -! -!RPG7/ISOP=0.0 -! -!RPG7/BIOL=0.0 -! -!RPG7/BIOH=0.0 -! -!RPG7/MTBE=0.0 -! -!RPG7/MVK=0.0 -! -!RPG7/MCR=0.0 -! -!RPG7/MGLY=0.0 -! -!RPG7/GLY=0.0 -! -!RPG7/ORA1=0.0 -! -!RPG7/ORA2=0.0 -! -!RPG7/ACID=0.0 -! -!RPG7/UR28=0.0 -! -!RPG7/UR21=0.0 -! -!RPG7/URG2=0.0 -! -!RPG7/UR26=0.0 -! -!RPG7/RPG2=0.0 -! -!RPG7/RP18=0.0 -! -!RPG7/RPG3=0.0 -! -!RPG7/URG4=0.0 -! -!RPG7/UR8=0.0 -! -!RPG7/UR17=0.0 -! -!RPG7/UR7=0.0 -! -!RPG7/RPR3=0.0 -! -!RPG7/URG6=0.0 -! -!RPG7/UR22=0.0 -! -!RPG7/URG7=0.0 -! -!RPG7/RPR4=0.0 -! -!RPG7/RPR7=0.0 -! -!RPG7/RPG7=+0.5021558*K323*<OH>-K323*<OH> - PJAC(:,63,63)=+0.5021558*TPK%K323(:)*PCONC(:,15)-TPK%K323(:)*PCONC(:,15) -! -!RPG7/URG8=0.0 -! -!RPG7/UR19=0.0 -! -!RPG7/URG9=0.0 -! -!RPG7/AP7=0.0 -! -!RPG7/URG10=0.0 -! -!RPG7/RPR1=0.0 -! -!RPG7/RPR5=0.0 -! -!RPG7/RPR8=0.0 -! -!RPG7/RP10=0.0 -! -!RPG7/RP11=0.0 -! -!RPG7/RP16=0.0 -! -!RPG7/RPRL=0.0 -! -!RPG7/APAN=0.0 -! -!RPG7/PAN1=0.0 -! -!RPG7/PAN2=0.0 -! -!RPG7/PAN3=0.0 -! -!RPG7/PAN4=0.0 -! -!RPG7/PAN6=0.0 -! -!RPG7/PAN7=0.0 -! -!RPG7/PAN8=0.0 -! -!RPG7/PN10=0.0 -! -!RPG7/RO2T=+1.0000013*K267*<RO238> - PJAC(:,63,85)=+1.0000013*TPK%K267(:)*TPK%RO238(:) -! -!RPG7/RO21=0.0 -! -!RPG7/RO25=0.0 -! -!RPG7/WC_O3=0.0 -! -!RPG7/WC_H2O2=0.0 -! -!RPG7/WC_NO=0.0 -! -!RPG7/WC_NO2=0.0 -! -!RPG7/WC_NO3=0.0 -! -!RPG7/WC_N2O5=0.0 -! -!RPG7/WC_HONO=0.0 -! -!RPG7/WC_HNO3=0.0 -! -!RPG7/WC_HNO4=0.0 -! -!RPG7/WC_NH3=0.0 -! -!RPG7/WC_OH=0.0 -! -!RPG7/WC_HO2=0.0 -! -!RPG7/WC_CO2=0.0 -! -!RPG7/WC_SO2=0.0 -! -!RPG7/WC_H2SO4=0.0 -! -!RPG7/WC_RO21=0.0 -! -!RPG7/WC_RO25=0.0 -! -!RPG7/WC_MEOH=0.0 -! -!RPG7/WC_ETOH=0.0 -! -!RPG7/WC_ALCH=0.0 -! -!RPG7/WC_HCHO=0.0 -! -!RPG7/WC_ALD2=0.0 -! -!RPG7/WC_GLY=0.0 -! -!RPG7/WC_MGLY=0.0 -! -!RPG7/WC_KETL=0.0 -! -!RPG7/WC_ORA1=0.0 -! -!RPG7/WC_ORA2=0.0 -! -!RPG7/WC_ACID=0.0 -! -!RPG7/WC_RP16=0.0 -! -!RPG7/WC_UR21=0.0 -! -!RPG7/WC_UR28=0.0 -! -!RPG7/WC_ACID2=0.0 -! -!RPG7/WC_ASO3=0.0 -! -!RPG7/WC_ASO4=0.0 -! -!RPG7/WC_ASO5=0.0 -! -!RPG7/WC_AHSO5=0.0 -! -!RPG7/WC_AHMS=0.0 -! -!RPG7/WR_O3=0.0 -! -!RPG7/WR_H2O2=0.0 -! -!RPG7/WR_NO=0.0 -! -!RPG7/WR_NO2=0.0 -! -!RPG7/WR_NO3=0.0 -! -!RPG7/WR_N2O5=0.0 -! -!RPG7/WR_HONO=0.0 -! -!RPG7/WR_HNO3=0.0 -! -!RPG7/WR_HNO4=0.0 -! -!RPG7/WR_NH3=0.0 -! -!RPG7/WR_OH=0.0 -! -!RPG7/WR_HO2=0.0 -! -!RPG7/WR_CO2=0.0 -! -!RPG7/WR_SO2=0.0 -! -!RPG7/WR_H2SO4=0.0 -! -!RPG7/WR_RO21=0.0 -! -!RPG7/WR_RO25=0.0 -! -!RPG7/WR_MEOH=0.0 -! -!RPG7/WR_ETOH=0.0 -! -!RPG7/WR_ALCH=0.0 -! -!RPG7/WR_HCHO=0.0 -! -!RPG7/WR_ALD2=0.0 -! -!RPG7/WR_GLY=0.0 -! -!RPG7/WR_MGLY=0.0 -! -!RPG7/WR_KETL=0.0 -! -!RPG7/WR_ORA1=0.0 -! -!RPG7/WR_ORA2=0.0 -! -!RPG7/WR_ACID=0.0 -! -!RPG7/WR_RP16=0.0 -! -!RPG7/WR_UR21=0.0 -! -!RPG7/WR_UR28=0.0 -! -!RPG7/WR_ACID2=0.0 -! -!RPG7/WR_ASO3=0.0 -! -!RPG7/WR_ASO4=0.0 -! -!RPG7/WR_ASO5=0.0 -! -!RPG7/WR_AHSO5=0.0 -! -!RPG7/WR_AHMS=0.0 -! -!URG8/NO=+TPK%CF31*K221*<RO231> - PJAC(:,64,1)=+TPK%CF31*TPK%K221(:)*TPK%RO231(:) -! -!URG8/NO2=+1.0000000*K109*<RAD7> - PJAC(:,64,2)=+1.0000000*TPK%K109(:)*TPK%RAD7(:) -! -!URG8/O3=0.0 -! -!URG8/HONO=0.0 -! -!URG8/HNO3=0.0 -! -!URG8/HNO4=0.0 -! -!URG8/N2O5=0.0 -! -!URG8/NO3=0.0 -! -!URG8/NH3=0.0 -! -!URG8/HO2=0.0 -! -!URG8/CO=0.0 -! -!URG8/H2O2=0.0 -! -!URG8/SO2=0.0 -! -!URG8/H2SO4=0.0 -! -!URG8/OH=+0.1600000*K092*<PAH> - PJAC(:,64,15)=+0.1600000*TPK%K092(:)*PCONC(:,27) -! -!URG8/ETHE=0.0 -! -!URG8/OLEL=0.0 -! -!URG8/OLEH=0.0 -! -!URG8/ALKL=0.0 -! -!URG8/ALKM=0.0 -! -!URG8/ALKH=0.0 -! -!URG8/AROH=0.0 -! -!URG8/AROL=0.0 -! -!URG8/AROO=0.0 -! -!URG8/ARAL=0.0 -! -!URG8/ARAC=0.0 -! -!URG8/PAH=+0.1600000*K092*<OH> - PJAC(:,64,27)=+0.1600000*TPK%K092(:)*PCONC(:,15) -! -!URG8/HCHO=0.0 -! -!URG8/ALD2=0.0 -! -!URG8/KETL=0.0 -! -!URG8/KETH=0.0 -! -!URG8/MEOH=0.0 -! -!URG8/ETOH=0.0 -! -!URG8/ALCH=0.0 -! -!URG8/ISOP=0.0 -! -!URG8/BIOL=0.0 -! -!URG8/BIOH=0.0 -! -!URG8/MTBE=0.0 -! -!URG8/MVK=0.0 -! -!URG8/MCR=0.0 -! -!URG8/MGLY=0.0 -! -!URG8/GLY=0.0 -! -!URG8/ORA1=0.0 -! -!URG8/ORA2=0.0 -! -!URG8/ACID=0.0 -! -!URG8/UR28=0.0 -! -!URG8/UR21=0.0 -! -!URG8/URG2=0.0 -! -!URG8/UR26=0.0 -! -!URG8/RPG2=0.0 -! -!URG8/RP18=0.0 -! -!URG8/RPG3=0.0 -! -!URG8/URG4=0.0 -! -!URG8/UR8=0.0 -! -!URG8/UR17=0.0 -! -!URG8/UR7=0.0 -! -!URG8/RPR3=0.0 -! -!URG8/URG6=0.0 -! -!URG8/UR22=0.0 -! -!URG8/URG7=0.0 -! -!URG8/RPR4=0.0 -! -!URG8/RPR7=0.0 -! -!URG8/RPG7=0.0 -! -!URG8/URG8=-K354 - PJAC(:,64,64)=-TPK%K354(:) -! -!URG8/UR19=0.0 -! -!URG8/URG9=0.0 -! -!URG8/AP7=0.0 -! -!URG8/URG10=0.0 -! -!URG8/RPR1=0.0 -! -!URG8/RPR5=0.0 -! -!URG8/RPR8=0.0 -! -!URG8/RP10=0.0 -! -!URG8/RP11=0.0 -! -!URG8/RP16=0.0 -! -!URG8/RPRL=0.0 -! -!URG8/APAN=0.0 -! -!URG8/PAN1=0.0 -! -!URG8/PAN2=0.0 -! -!URG8/PAN3=0.0 -! -!URG8/PAN4=0.0 -! -!URG8/PAN6=0.0 -! -!URG8/PAN7=0.0 -! -!URG8/PAN8=0.0 -! -!URG8/PN10=0.0 -! -!URG8/RO2T=0.0 -! -!URG8/RO21=0.0 -! -!URG8/RO25=0.0 -! -!URG8/WC_O3=0.0 -! -!URG8/WC_H2O2=0.0 -! -!URG8/WC_NO=0.0 -! -!URG8/WC_NO2=0.0 -! -!URG8/WC_NO3=0.0 -! -!URG8/WC_N2O5=0.0 -! -!URG8/WC_HONO=0.0 -! -!URG8/WC_HNO3=0.0 -! -!URG8/WC_HNO4=0.0 -! -!URG8/WC_NH3=0.0 -! -!URG8/WC_OH=0.0 -! -!URG8/WC_HO2=0.0 -! -!URG8/WC_CO2=0.0 -! -!URG8/WC_SO2=0.0 -! -!URG8/WC_H2SO4=0.0 -! -!URG8/WC_RO21=0.0 -! -!URG8/WC_RO25=0.0 -! -!URG8/WC_MEOH=0.0 -! -!URG8/WC_ETOH=0.0 -! -!URG8/WC_ALCH=0.0 -! -!URG8/WC_HCHO=0.0 -! -!URG8/WC_ALD2=0.0 -! -!URG8/WC_GLY=0.0 -! -!URG8/WC_MGLY=0.0 -! -!URG8/WC_KETL=0.0 -! -!URG8/WC_ORA1=0.0 -! -!URG8/WC_ORA2=0.0 -! -!URG8/WC_ACID=0.0 -! -!URG8/WC_RP16=0.0 -! -!URG8/WC_UR21=0.0 -! -!URG8/WC_UR28=0.0 -! -!URG8/WC_ACID2=0.0 -! -!URG8/WC_ASO3=0.0 -! -!URG8/WC_ASO4=0.0 -! -!URG8/WC_ASO5=0.0 -! -!URG8/WC_AHSO5=0.0 -! -!URG8/WC_AHMS=0.0 -! -!URG8/WR_O3=0.0 -! -!URG8/WR_H2O2=0.0 -! -!URG8/WR_NO=0.0 -! -!URG8/WR_NO2=0.0 -! -!URG8/WR_NO3=0.0 -! -!URG8/WR_N2O5=0.0 -! -!URG8/WR_HONO=0.0 -! -!URG8/WR_HNO3=0.0 -! -!URG8/WR_HNO4=0.0 -! -!URG8/WR_NH3=0.0 -! -!URG8/WR_OH=0.0 -! -!URG8/WR_HO2=0.0 -! -!URG8/WR_CO2=0.0 -! -!URG8/WR_SO2=0.0 -! -!URG8/WR_H2SO4=0.0 -! -!URG8/WR_RO21=0.0 -! -!URG8/WR_RO25=0.0 -! -!URG8/WR_MEOH=0.0 -! -!URG8/WR_ETOH=0.0 -! -!URG8/WR_ALCH=0.0 -! -!URG8/WR_HCHO=0.0 -! -!URG8/WR_ALD2=0.0 -! -!URG8/WR_GLY=0.0 -! -!URG8/WR_MGLY=0.0 -! -!URG8/WR_KETL=0.0 -! -!URG8/WR_ORA1=0.0 -! -!URG8/WR_ORA2=0.0 -! -!URG8/WR_ACID=0.0 -! -!URG8/WR_RP16=0.0 -! -!URG8/WR_UR21=0.0 -! -!URG8/WR_UR28=0.0 -! -!URG8/WR_ACID2=0.0 -! -!URG8/WR_ASO3=0.0 -! -!URG8/WR_ASO4=0.0 -! -!URG8/WR_ASO5=0.0 -! -!URG8/WR_AHSO5=0.0 -! -!URG8/WR_AHMS=0.0 -! -!UR19/NO=+TPK%CF32*K221*<RO231> - PJAC(:,65,1)=+TPK%CF32*TPK%K221(:)*TPK%RO231(:) -! -!UR19/NO2=0.0 -! -!UR19/O3=0.0 -! -!UR19/HONO=0.0 -! -!UR19/HNO3=0.0 -! -!UR19/HNO4=0.0 -! -!UR19/N2O5=0.0 -! -!UR19/NO3=0.0 -! -!UR19/NH3=0.0 -! -!UR19/HO2=+K223*<RO231> - PJAC(:,65,10)=+TPK%K223(:)*TPK%RO231(:) -! -!UR19/CO=0.0 -! -!UR19/H2O2=0.0 -! -!UR19/SO2=0.0 -! -!UR19/H2SO4=0.0 -! -!UR19/OH=0.0 -! -!UR19/ETHE=0.0 -! -!UR19/OLEL=0.0 -! -!UR19/OLEH=0.0 -! -!UR19/ALKL=0.0 -! -!UR19/ALKM=0.0 -! -!UR19/ALKH=0.0 -! -!UR19/AROH=0.0 -! -!UR19/AROL=0.0 -! -!UR19/AROO=0.0 -! -!UR19/ARAL=0.0 -! -!UR19/ARAC=0.0 -! -!UR19/PAH=0.0 -! -!UR19/HCHO=0.0 -! -!UR19/ALD2=0.0 -! -!UR19/KETL=0.0 -! -!UR19/KETH=0.0 -! -!UR19/MEOH=0.0 -! -!UR19/ETOH=0.0 -! -!UR19/ALCH=0.0 -! -!UR19/ISOP=0.0 -! -!UR19/BIOL=0.0 -! -!UR19/BIOH=0.0 -! -!UR19/MTBE=0.0 -! -!UR19/MVK=0.0 -! -!UR19/MCR=0.0 -! -!UR19/MGLY=0.0 -! -!UR19/GLY=0.0 -! -!UR19/ORA1=0.0 -! -!UR19/ORA2=0.0 -! -!UR19/ACID=0.0 -! -!UR19/UR28=0.0 -! -!UR19/UR21=0.0 -! -!UR19/URG2=0.0 -! -!UR19/UR26=0.0 -! -!UR19/RPG2=0.0 -! -!UR19/RP18=0.0 -! -!UR19/RPG3=0.0 -! -!UR19/URG4=0.0 -! -!UR19/UR8=0.0 -! -!UR19/UR17=0.0 -! -!UR19/UR7=0.0 -! -!UR19/RPR3=0.0 -! -!UR19/URG6=0.0 -! -!UR19/UR22=0.0 -! -!UR19/URG7=0.0 -! -!UR19/RPR4=0.0 -! -!UR19/RPR7=0.0 -! -!UR19/RPG7=0.0 -! -!UR19/URG8=0.0 -! -!UR19/UR19=-K360 - PJAC(:,65,65)=-TPK%K360(:) -! -!UR19/URG9=0.0 -! -!UR19/AP7=0.0 -! -!UR19/URG10=0.0 -! -!UR19/RPR1=0.0 -! -!UR19/RPR5=0.0 -! -!UR19/RPR8=0.0 -! -!UR19/RP10=0.0 -! -!UR19/RP11=0.0 -! -!UR19/RP16=0.0 -! -!UR19/RPRL=0.0 -! -!UR19/APAN=0.0 -! -!UR19/PAN1=0.0 -! -!UR19/PAN2=0.0 -! -!UR19/PAN3=0.0 -! -!UR19/PAN4=0.0 -! -!UR19/PAN6=0.0 -! -!UR19/PAN7=0.0 -! -!UR19/PAN8=0.0 -! -!UR19/PN10=0.0 -! -!UR19/RO2T=+K222*<RO231> - PJAC(:,65,85)=+TPK%K222(:)*TPK%RO231(:) -! -!UR19/RO21=0.0 -! -!UR19/RO25=0.0 -! -!UR19/WC_O3=0.0 -! -!UR19/WC_H2O2=0.0 -! -!UR19/WC_NO=0.0 -! -!UR19/WC_NO2=0.0 -! -!UR19/WC_NO3=0.0 -! -!UR19/WC_N2O5=0.0 -! -!UR19/WC_HONO=0.0 -! -!UR19/WC_HNO3=0.0 -! -!UR19/WC_HNO4=0.0 -! -!UR19/WC_NH3=0.0 -! -!UR19/WC_OH=0.0 -! -!UR19/WC_HO2=0.0 -! -!UR19/WC_CO2=0.0 -! -!UR19/WC_SO2=0.0 -! -!UR19/WC_H2SO4=0.0 -! -!UR19/WC_RO21=0.0 -! -!UR19/WC_RO25=0.0 -! -!UR19/WC_MEOH=0.0 -! -!UR19/WC_ETOH=0.0 -! -!UR19/WC_ALCH=0.0 -! -!UR19/WC_HCHO=0.0 -! -!UR19/WC_ALD2=0.0 -! -!UR19/WC_GLY=0.0 -! -!UR19/WC_MGLY=0.0 -! -!UR19/WC_KETL=0.0 -! -!UR19/WC_ORA1=0.0 -! -!UR19/WC_ORA2=0.0 -! -!UR19/WC_ACID=0.0 -! -!UR19/WC_RP16=0.0 -! -!UR19/WC_UR21=0.0 -! -!UR19/WC_UR28=0.0 -! -!UR19/WC_ACID2=0.0 -! -!UR19/WC_ASO3=0.0 -! -!UR19/WC_ASO4=0.0 -! -!UR19/WC_ASO5=0.0 -! -!UR19/WC_AHSO5=0.0 -! -!UR19/WC_AHMS=0.0 -! -!UR19/WR_O3=0.0 -! -!UR19/WR_H2O2=0.0 -! -!UR19/WR_NO=0.0 -! -!UR19/WR_NO2=0.0 -! -!UR19/WR_NO3=0.0 -! -!UR19/WR_N2O5=0.0 -! -!UR19/WR_HONO=0.0 -! -!UR19/WR_HNO3=0.0 -! -!UR19/WR_HNO4=0.0 -! -!UR19/WR_NH3=0.0 -! -!UR19/WR_OH=0.0 -! -!UR19/WR_HO2=0.0 -! -!UR19/WR_CO2=0.0 -! -!UR19/WR_SO2=0.0 -! -!UR19/WR_H2SO4=0.0 -! -!UR19/WR_RO21=0.0 -! -!UR19/WR_RO25=0.0 -! -!UR19/WR_MEOH=0.0 -! -!UR19/WR_ETOH=0.0 -! -!UR19/WR_ALCH=0.0 -! -!UR19/WR_HCHO=0.0 -! -!UR19/WR_ALD2=0.0 -! -!UR19/WR_GLY=0.0 -! -!UR19/WR_MGLY=0.0 -! -!UR19/WR_KETL=0.0 -! -!UR19/WR_ORA1=0.0 -! -!UR19/WR_ORA2=0.0 -! -!UR19/WR_ACID=0.0 -! -!UR19/WR_RP16=0.0 -! -!UR19/WR_UR21=0.0 -! -!UR19/WR_UR28=0.0 -! -!UR19/WR_ACID2=0.0 -! -!UR19/WR_ASO3=0.0 -! -!UR19/WR_ASO4=0.0 -! -!UR19/WR_ASO5=0.0 -! -!UR19/WR_AHSO5=0.0 -! -!UR19/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ12 -! -SUBROUTINE SUBJ13 -! -!Indices 66 a 70 -! -! -!URG9/NO=+TPK%CFA14*K224*<RO232>+TPK%CFA16*K227*<RO241>+TPK%CFA15*K227*<RO241> - PJAC(:,66,1)=+TPK%CFA14*TPK%K224(:)*TPK%RO232(:)+TPK%CFA16*TPK%K227(:)*TPK%RO2& -&41(:)+TPK%CFA15*TPK%K227(:)*TPK%RO241(:) -! -!URG9/NO2=0.0 -! -!URG9/O3=0.0 -! -!URG9/HONO=0.0 -! -!URG9/HNO3=0.0 -! -!URG9/HNO4=0.0 -! -!URG9/N2O5=0.0 -! -!URG9/NO3=0.0 -! -!URG9/NH3=0.0 -! -!URG9/HO2=+0.9999996*K229*<RO241> - PJAC(:,66,10)=+0.9999996*TPK%K229(:)*TPK%RO241(:) -! -!URG9/CO=0.0 -! -!URG9/H2O2=0.0 -! -!URG9/SO2=0.0 -! -!URG9/H2SO4=0.0 -! -!URG9/OH=0.0 -! -!URG9/ETHE=0.0 -! -!URG9/OLEL=0.0 -! -!URG9/OLEH=0.0 -! -!URG9/ALKL=0.0 -! -!URG9/ALKM=0.0 -! -!URG9/ALKH=0.0 -! -!URG9/AROH=0.0 -! -!URG9/AROL=0.0 -! -!URG9/AROO=0.0 -! -!URG9/ARAL=0.0 -! -!URG9/ARAC=0.0 -! -!URG9/PAH=0.0 -! -!URG9/HCHO=0.0 -! -!URG9/ALD2=0.0 -! -!URG9/KETL=0.0 -! -!URG9/KETH=0.0 -! -!URG9/MEOH=0.0 -! -!URG9/ETOH=0.0 -! -!URG9/ALCH=0.0 -! -!URG9/ISOP=0.0 -! -!URG9/BIOL=0.0 -! -!URG9/BIOH=0.0 -! -!URG9/MTBE=0.0 -! -!URG9/MVK=0.0 -! -!URG9/MCR=0.0 -! -!URG9/MGLY=0.0 -! -!URG9/GLY=0.0 -! -!URG9/ORA1=0.0 -! -!URG9/ORA2=0.0 -! -!URG9/ACID=0.0 -! -!URG9/UR28=0.0 -! -!URG9/UR21=0.0 -! -!URG9/URG2=0.0 -! -!URG9/UR26=0.0 -! -!URG9/RPG2=0.0 -! -!URG9/RP18=0.0 -! -!URG9/RPG3=0.0 -! -!URG9/URG4=0.0 -! -!URG9/UR8=0.0 -! -!URG9/UR17=0.0 -! -!URG9/UR7=0.0 -! -!URG9/RPR3=0.0 -! -!URG9/URG6=0.0 -! -!URG9/UR22=0.0 -! -!URG9/URG7=0.0 -! -!URG9/RPR4=0.0 -! -!URG9/RPR7=0.0 -! -!URG9/RPG7=0.0 -! -!URG9/URG8=0.0 -! -!URG9/UR19=0.0 -! -!URG9/URG9=-K355 - PJAC(:,66,66)=-TPK%K355(:) -! -!URG9/AP7=0.0 -! -!URG9/URG10=0.0 -! -!URG9/RPR1=0.0 -! -!URG9/RPR5=0.0 -! -!URG9/RPR8=0.0 -! -!URG9/RP10=0.0 -! -!URG9/RP11=0.0 -! -!URG9/RP16=0.0 -! -!URG9/RPRL=0.0 -! -!URG9/APAN=0.0 -! -!URG9/PAN1=0.0 -! -!URG9/PAN2=0.0 -! -!URG9/PAN3=0.0 -! -!URG9/PAN4=0.0 -! -!URG9/PAN6=0.0 -! -!URG9/PAN7=0.0 -! -!URG9/PAN8=0.0 -! -!URG9/PN10=0.0 -! -!URG9/RO2T=+0.9999996*K228*<RO241> - PJAC(:,66,85)=+0.9999996*TPK%K228(:)*TPK%RO241(:) -! -!URG9/RO21=0.0 -! -!URG9/RO25=0.0 -! -!URG9/WC_O3=0.0 -! -!URG9/WC_H2O2=0.0 -! -!URG9/WC_NO=0.0 -! -!URG9/WC_NO2=0.0 -! -!URG9/WC_NO3=0.0 -! -!URG9/WC_N2O5=0.0 -! -!URG9/WC_HONO=0.0 -! -!URG9/WC_HNO3=0.0 -! -!URG9/WC_HNO4=0.0 -! -!URG9/WC_NH3=0.0 -! -!URG9/WC_OH=0.0 -! -!URG9/WC_HO2=0.0 -! -!URG9/WC_CO2=0.0 -! -!URG9/WC_SO2=0.0 -! -!URG9/WC_H2SO4=0.0 -! -!URG9/WC_RO21=0.0 -! -!URG9/WC_RO25=0.0 -! -!URG9/WC_MEOH=0.0 -! -!URG9/WC_ETOH=0.0 -! -!URG9/WC_ALCH=0.0 -! -!URG9/WC_HCHO=0.0 -! -!URG9/WC_ALD2=0.0 -! -!URG9/WC_GLY=0.0 -! -!URG9/WC_MGLY=0.0 -! -!URG9/WC_KETL=0.0 -! -!URG9/WC_ORA1=0.0 -! -!URG9/WC_ORA2=0.0 -! -!URG9/WC_ACID=0.0 -! -!URG9/WC_RP16=0.0 -! -!URG9/WC_UR21=0.0 -! -!URG9/WC_UR28=0.0 -! -!URG9/WC_ACID2=0.0 -! -!URG9/WC_ASO3=0.0 -! -!URG9/WC_ASO4=0.0 -! -!URG9/WC_ASO5=0.0 -! -!URG9/WC_AHSO5=0.0 -! -!URG9/WC_AHMS=0.0 -! -!URG9/WR_O3=0.0 -! -!URG9/WR_H2O2=0.0 -! -!URG9/WR_NO=0.0 -! -!URG9/WR_NO2=0.0 -! -!URG9/WR_NO3=0.0 -! -!URG9/WR_N2O5=0.0 -! -!URG9/WR_HONO=0.0 -! -!URG9/WR_HNO3=0.0 -! -!URG9/WR_HNO4=0.0 -! -!URG9/WR_NH3=0.0 -! -!URG9/WR_OH=0.0 -! -!URG9/WR_HO2=0.0 -! -!URG9/WR_CO2=0.0 -! -!URG9/WR_SO2=0.0 -! -!URG9/WR_H2SO4=0.0 -! -!URG9/WR_RO21=0.0 -! -!URG9/WR_RO25=0.0 -! -!URG9/WR_MEOH=0.0 -! -!URG9/WR_ETOH=0.0 -! -!URG9/WR_ALCH=0.0 -! -!URG9/WR_HCHO=0.0 -! -!URG9/WR_ALD2=0.0 -! -!URG9/WR_GLY=0.0 -! -!URG9/WR_MGLY=0.0 -! -!URG9/WR_KETL=0.0 -! -!URG9/WR_ORA1=0.0 -! -!URG9/WR_ORA2=0.0 -! -!URG9/WR_ACID=0.0 -! -!URG9/WR_RP16=0.0 -! -!URG9/WR_UR21=0.0 -! -!URG9/WR_UR28=0.0 -! -!URG9/WR_ACID2=0.0 -! -!URG9/WR_ASO3=0.0 -! -!URG9/WR_ASO4=0.0 -! -!URG9/WR_ASO5=0.0 -! -!URG9/WR_AHSO5=0.0 -! -!URG9/WR_AHMS=0.0 -! -!AP7/NO=+TPK%CFA23*K198*<RO224> - PJAC(:,67,1)=+TPK%CFA23*TPK%K198(:)*TPK%RO224(:) -! -!AP7/NO2=0.0 -! -!AP7/O3=0.0 -! -!AP7/HONO=0.0 -! -!AP7/HNO3=0.0 -! -!AP7/HNO4=0.0 -! -!AP7/N2O5=0.0 -! -!AP7/NO3=0.0 -! -!AP7/NH3=0.0 -! -!AP7/HO2=0.0 -! -!AP7/CO=0.0 -! -!AP7/H2O2=0.0 -! -!AP7/SO2=0.0 -! -!AP7/H2SO4=0.0 -! -!AP7/OH=0.0 -! -!AP7/ETHE=0.0 -! -!AP7/OLEL=0.0 -! -!AP7/OLEH=0.0 -! -!AP7/ALKL=0.0 -! -!AP7/ALKM=0.0 -! -!AP7/ALKH=0.0 -! -!AP7/AROH=0.0 -! -!AP7/AROL=0.0 -! -!AP7/AROO=0.0 -! -!AP7/ARAL=0.0 -! -!AP7/ARAC=0.0 -! -!AP7/PAH=0.0 -! -!AP7/HCHO=0.0 -! -!AP7/ALD2=0.0 -! -!AP7/KETL=0.0 -! -!AP7/KETH=0.0 -! -!AP7/MEOH=0.0 -! -!AP7/ETOH=0.0 -! -!AP7/ALCH=0.0 -! -!AP7/ISOP=0.0 -! -!AP7/BIOL=0.0 -! -!AP7/BIOH=0.0 -! -!AP7/MTBE=0.0 -! -!AP7/MVK=0.0 -! -!AP7/MCR=0.0 -! -!AP7/MGLY=0.0 -! -!AP7/GLY=0.0 -! -!AP7/ORA1=0.0 -! -!AP7/ORA2=0.0 -! -!AP7/ACID=0.0 -! -!AP7/UR28=0.0 -! -!AP7/UR21=0.0 -! -!AP7/URG2=0.0 -! -!AP7/UR26=0.0 -! -!AP7/RPG2=0.0 -! -!AP7/RP18=0.0 -! -!AP7/RPG3=0.0 -! -!AP7/URG4=0.0 -! -!AP7/UR8=0.0 -! -!AP7/UR17=0.0 -! -!AP7/UR7=0.0 -! -!AP7/RPR3=0.0 -! -!AP7/URG6=0.0 -! -!AP7/UR22=0.0 -! -!AP7/URG7=0.0 -! -!AP7/RPR4=0.0 -! -!AP7/RPR7=0.0 -! -!AP7/RPG7=0.0 -! -!AP7/URG8=0.0 -! -!AP7/UR19=0.0 -! -!AP7/URG9=0.0 -! -!AP7/AP7=-K365 - PJAC(:,67,67)=-TPK%K365(:) -! -!AP7/URG10=0.0 -! -!AP7/RPR1=0.0 -! -!AP7/RPR5=0.0 -! -!AP7/RPR8=0.0 -! -!AP7/RP10=0.0 -! -!AP7/RP11=0.0 -! -!AP7/RP16=0.0 -! -!AP7/RPRL=0.0 -! -!AP7/APAN=0.0 -! -!AP7/PAN1=0.0 -! -!AP7/PAN2=0.0 -! -!AP7/PAN3=0.0 -! -!AP7/PAN4=0.0 -! -!AP7/PAN6=0.0 -! -!AP7/PAN7=0.0 -! -!AP7/PAN8=0.0 -! -!AP7/PN10=0.0 -! -!AP7/RO2T=0.0 -! -!AP7/RO21=0.0 -! -!AP7/RO25=0.0 -! -!AP7/WC_O3=0.0 -! -!AP7/WC_H2O2=0.0 -! -!AP7/WC_NO=0.0 -! -!AP7/WC_NO2=0.0 -! -!AP7/WC_NO3=0.0 -! -!AP7/WC_N2O5=0.0 -! -!AP7/WC_HONO=0.0 -! -!AP7/WC_HNO3=0.0 -! -!AP7/WC_HNO4=0.0 -! -!AP7/WC_NH3=0.0 -! -!AP7/WC_OH=0.0 -! -!AP7/WC_HO2=0.0 -! -!AP7/WC_CO2=0.0 -! -!AP7/WC_SO2=0.0 -! -!AP7/WC_H2SO4=0.0 -! -!AP7/WC_RO21=0.0 -! -!AP7/WC_RO25=0.0 -! -!AP7/WC_MEOH=0.0 -! -!AP7/WC_ETOH=0.0 -! -!AP7/WC_ALCH=0.0 -! -!AP7/WC_HCHO=0.0 -! -!AP7/WC_ALD2=0.0 -! -!AP7/WC_GLY=0.0 -! -!AP7/WC_MGLY=0.0 -! -!AP7/WC_KETL=0.0 -! -!AP7/WC_ORA1=0.0 -! -!AP7/WC_ORA2=0.0 -! -!AP7/WC_ACID=0.0 -! -!AP7/WC_RP16=0.0 -! -!AP7/WC_UR21=0.0 -! -!AP7/WC_UR28=0.0 -! -!AP7/WC_ACID2=0.0 -! -!AP7/WC_ASO3=0.0 -! -!AP7/WC_ASO4=0.0 -! -!AP7/WC_ASO5=0.0 -! -!AP7/WC_AHSO5=0.0 -! -!AP7/WC_AHMS=0.0 -! -!AP7/WR_O3=0.0 -! -!AP7/WR_H2O2=0.0 -! -!AP7/WR_NO=0.0 -! -!AP7/WR_NO2=0.0 -! -!AP7/WR_NO3=0.0 -! -!AP7/WR_N2O5=0.0 -! -!AP7/WR_HONO=0.0 -! -!AP7/WR_HNO3=0.0 -! -!AP7/WR_HNO4=0.0 -! -!AP7/WR_NH3=0.0 -! -!AP7/WR_OH=0.0 -! -!AP7/WR_HO2=0.0 -! -!AP7/WR_CO2=0.0 -! -!AP7/WR_SO2=0.0 -! -!AP7/WR_H2SO4=0.0 -! -!AP7/WR_RO21=0.0 -! -!AP7/WR_RO25=0.0 -! -!AP7/WR_MEOH=0.0 -! -!AP7/WR_ETOH=0.0 -! -!AP7/WR_ALCH=0.0 -! -!AP7/WR_HCHO=0.0 -! -!AP7/WR_ALD2=0.0 -! -!AP7/WR_GLY=0.0 -! -!AP7/WR_MGLY=0.0 -! -!AP7/WR_KETL=0.0 -! -!AP7/WR_ORA1=0.0 -! -!AP7/WR_ORA2=0.0 -! -!AP7/WR_ACID=0.0 -! -!AP7/WR_RP16=0.0 -! -!AP7/WR_UR21=0.0 -! -!AP7/WR_UR28=0.0 -! -!AP7/WR_ACID2=0.0 -! -!AP7/WR_ASO3=0.0 -! -!AP7/WR_ASO4=0.0 -! -!AP7/WR_ASO5=0.0 -! -!AP7/WR_AHSO5=0.0 -! -!AP7/WR_AHMS=0.0 -! -!URG10/NO=+TPK%CF27*K207*<RO227> - PJAC(:,68,1)=+TPK%CF27*TPK%K207(:)*TPK%RO227(:) -! -!URG10/NO2=0.0 -! -!URG10/O3=0.0 -! -!URG10/HONO=0.0 -! -!URG10/HNO3=0.0 -! -!URG10/HNO4=0.0 -! -!URG10/N2O5=0.0 -! -!URG10/NO3=0.0 -! -!URG10/NH3=0.0 -! -!URG10/HO2=0.0 -! -!URG10/CO=0.0 -! -!URG10/H2O2=0.0 -! -!URG10/SO2=0.0 -! -!URG10/H2SO4=0.0 -! -!URG10/OH=0.0 -! -!URG10/ETHE=0.0 -! -!URG10/OLEL=0.0 -! -!URG10/OLEH=0.0 -! -!URG10/ALKL=0.0 -! -!URG10/ALKM=0.0 -! -!URG10/ALKH=0.0 -! -!URG10/AROH=0.0 -! -!URG10/AROL=0.0 -! -!URG10/AROO=0.0 -! -!URG10/ARAL=0.0 -! -!URG10/ARAC=0.0 -! -!URG10/PAH=0.0 -! -!URG10/HCHO=0.0 -! -!URG10/ALD2=0.0 -! -!URG10/KETL=0.0 -! -!URG10/KETH=0.0 -! -!URG10/MEOH=0.0 -! -!URG10/ETOH=0.0 -! -!URG10/ALCH=0.0 -! -!URG10/ISOP=0.0 -! -!URG10/BIOL=+0.2500000*K087*<O>+0.7500000*K087*<O> - PJAC(:,68,36)=+0.2500000*TPK%K087(:)*TPK%O(:)+0.7500000*TPK%K087(:)*TPK%O(:) -! -!URG10/BIOH=0.0 -! -!URG10/MTBE=0.0 -! -!URG10/MVK=0.0 -! -!URG10/MCR=0.0 -! -!URG10/MGLY=0.0 -! -!URG10/GLY=0.0 -! -!URG10/ORA1=0.0 -! -!URG10/ORA2=0.0 -! -!URG10/ACID=0.0 -! -!URG10/UR28=0.0 -! -!URG10/UR21=0.0 -! -!URG10/URG2=0.0 -! -!URG10/UR26=0.0 -! -!URG10/RPG2=0.0 -! -!URG10/RP18=0.0 -! -!URG10/RPG3=0.0 -! -!URG10/URG4=0.0 -! -!URG10/UR8=0.0 -! -!URG10/UR17=0.0 -! -!URG10/UR7=0.0 -! -!URG10/RPR3=0.0 -! -!URG10/URG6=0.0 -! -!URG10/UR22=0.0 -! -!URG10/URG7=0.0 -! -!URG10/RPR4=0.0 -! -!URG10/RPR7=0.0 -! -!URG10/RPG7=0.0 -! -!URG10/URG8=0.0 -! -!URG10/UR19=0.0 -! -!URG10/URG9=0.0 -! -!URG10/AP7=0.0 -! -!URG10/URG10=-K356 - PJAC(:,68,68)=-TPK%K356(:) -! -!URG10/RPR1=0.0 -! -!URG10/RPR5=0.0 -! -!URG10/RPR8=0.0 -! -!URG10/RP10=0.0 -! -!URG10/RP11=0.0 -! -!URG10/RP16=0.0 -! -!URG10/RPRL=0.0 -! -!URG10/APAN=0.0 -! -!URG10/PAN1=0.0 -! -!URG10/PAN2=0.0 -! -!URG10/PAN3=0.0 -! -!URG10/PAN4=0.0 -! -!URG10/PAN6=0.0 -! -!URG10/PAN7=0.0 -! -!URG10/PAN8=0.0 -! -!URG10/PN10=0.0 -! -!URG10/RO2T=0.0 -! -!URG10/RO21=0.0 -! -!URG10/RO25=0.0 -! -!URG10/WC_O3=0.0 -! -!URG10/WC_H2O2=0.0 -! -!URG10/WC_NO=0.0 -! -!URG10/WC_NO2=0.0 -! -!URG10/WC_NO3=0.0 -! -!URG10/WC_N2O5=0.0 -! -!URG10/WC_HONO=0.0 -! -!URG10/WC_HNO3=0.0 -! -!URG10/WC_HNO4=0.0 -! -!URG10/WC_NH3=0.0 -! -!URG10/WC_OH=0.0 -! -!URG10/WC_HO2=0.0 -! -!URG10/WC_CO2=0.0 -! -!URG10/WC_SO2=0.0 -! -!URG10/WC_H2SO4=0.0 -! -!URG10/WC_RO21=0.0 -! -!URG10/WC_RO25=0.0 -! -!URG10/WC_MEOH=0.0 -! -!URG10/WC_ETOH=0.0 -! -!URG10/WC_ALCH=0.0 -! -!URG10/WC_HCHO=0.0 -! -!URG10/WC_ALD2=0.0 -! -!URG10/WC_GLY=0.0 -! -!URG10/WC_MGLY=0.0 -! -!URG10/WC_KETL=0.0 -! -!URG10/WC_ORA1=0.0 -! -!URG10/WC_ORA2=0.0 -! -!URG10/WC_ACID=0.0 -! -!URG10/WC_RP16=0.0 -! -!URG10/WC_UR21=0.0 -! -!URG10/WC_UR28=0.0 -! -!URG10/WC_ACID2=0.0 -! -!URG10/WC_ASO3=0.0 -! -!URG10/WC_ASO4=0.0 -! -!URG10/WC_ASO5=0.0 -! -!URG10/WC_AHSO5=0.0 -! -!URG10/WC_AHMS=0.0 -! -!URG10/WR_O3=0.0 -! -!URG10/WR_H2O2=0.0 -! -!URG10/WR_NO=0.0 -! -!URG10/WR_NO2=0.0 -! -!URG10/WR_NO3=0.0 -! -!URG10/WR_N2O5=0.0 -! -!URG10/WR_HONO=0.0 -! -!URG10/WR_HNO3=0.0 -! -!URG10/WR_HNO4=0.0 -! -!URG10/WR_NH3=0.0 -! -!URG10/WR_OH=0.0 -! -!URG10/WR_HO2=0.0 -! -!URG10/WR_CO2=0.0 -! -!URG10/WR_SO2=0.0 -! -!URG10/WR_H2SO4=0.0 -! -!URG10/WR_RO21=0.0 -! -!URG10/WR_RO25=0.0 -! -!URG10/WR_MEOH=0.0 -! -!URG10/WR_ETOH=0.0 -! -!URG10/WR_ALCH=0.0 -! -!URG10/WR_HCHO=0.0 -! -!URG10/WR_ALD2=0.0 -! -!URG10/WR_GLY=0.0 -! -!URG10/WR_MGLY=0.0 -! -!URG10/WR_KETL=0.0 -! -!URG10/WR_ORA1=0.0 -! -!URG10/WR_ORA2=0.0 -! -!URG10/WR_ACID=0.0 -! -!URG10/WR_RP16=0.0 -! -!URG10/WR_UR21=0.0 -! -!URG10/WR_UR28=0.0 -! -!URG10/WR_ACID2=0.0 -! -!URG10/WR_ASO3=0.0 -! -!URG10/WR_ASO4=0.0 -! -!URG10/WR_ASO5=0.0 -! -!URG10/WR_AHSO5=0.0 -! -!URG10/WR_AHMS=0.0 -! -!RPR1/NO=+K183*<RO219> - PJAC(:,69,1)=+TPK%K183(:)*TPK%RO219(:) -! -!RPR1/NO2=0.0 -! -!RPR1/O3=+0.5*K076*<OLEH> - PJAC(:,69,3)=+0.5*TPK%K076(:)*PCONC(:,18) -! -!RPR1/HONO=0.0 -! -!RPR1/HNO3=0.0 -! -!RPR1/HNO4=0.0 -! -!RPR1/N2O5=0.0 -! -!RPR1/NO3=-K307*<RPR1> - PJAC(:,69,8)=-TPK%K307(:)*PCONC(:,69) -! -!RPR1/NH3=0.0 -! -!RPR1/HO2=+K185*<RO219> - PJAC(:,69,10)=+TPK%K185(:)*TPK%RO219(:) -! -!RPR1/CO=0.0 -! -!RPR1/H2O2=0.0 -! -!RPR1/SO2=0.0 -! -!RPR1/H2SO4=0.0 -! -!RPR1/OH=-K304*<RPR1> - PJAC(:,69,15)=-TPK%K304(:)*PCONC(:,69) -! -!RPR1/ETHE=0.0 -! -!RPR1/OLEL=0.0 -! -!RPR1/OLEH=+0.5*K076*<O3>+0.4*K077*<O> - PJAC(:,69,18)=+0.5*TPK%K076(:)*PCONC(:,3)+0.4*TPK%K077(:)*TPK%O(:) -! -!RPR1/ALKL=0.0 -! -!RPR1/ALKM=0.0 -! -!RPR1/ALKH=0.0 -! -!RPR1/AROH=0.0 -! -!RPR1/AROL=0.0 -! -!RPR1/AROO=0.0 -! -!RPR1/ARAL=0.0 -! -!RPR1/ARAC=0.0 -! -!RPR1/PAH=0.0 -! -!RPR1/HCHO=0.0 -! -!RPR1/ALD2=0.0 -! -!RPR1/KETL=0.0 -! -!RPR1/KETH=0.0 -! -!RPR1/MEOH=0.0 -! -!RPR1/ETOH=0.0 -! -!RPR1/ALCH=0.0 -! -!RPR1/ISOP=0.0 -! -!RPR1/BIOL=0.0 -! -!RPR1/BIOH=0.0 -! -!RPR1/MTBE=0.0 -! -!RPR1/MVK=0.0 -! -!RPR1/MCR=0.0 -! -!RPR1/MGLY=0.0 -! -!RPR1/GLY=0.0 -! -!RPR1/ORA1=0.0 -! -!RPR1/ORA2=0.0 -! -!RPR1/ACID=0.0 -! -!RPR1/UR28=0.0 -! -!RPR1/UR21=0.0 -! -!RPR1/URG2=0.0 -! -!RPR1/UR26=0.0 -! -!RPR1/RPG2=0.0 -! -!RPR1/RP18=0.0 -! -!RPR1/RPG3=0.0 -! -!RPR1/URG4=0.0 -! -!RPR1/UR8=0.0 -! -!RPR1/UR17=0.0 -! -!RPR1/UR7=0.0 -! -!RPR1/RPR3=0.0 -! -!RPR1/URG6=0.0 -! -!RPR1/UR22=0.0 -! -!RPR1/URG7=0.0 -! -!RPR1/RPR4=0.0 -! -!RPR1/RPR7=0.0 -! -!RPR1/RPG7=0.0 -! -!RPR1/URG8=0.0 -! -!RPR1/UR19=0.0 -! -!RPR1/URG9=0.0 -! -!RPR1/AP7=0.0 -! -!RPR1/URG10=0.0 -! -!RPR1/RPR1=-K304*<OH>-K307*<NO3>-K308 - PJAC(:,69,69)=-TPK%K304(:)*PCONC(:,15)-TPK%K307(:)*PCONC(:,8)-TPK%K308(:) -! -!RPR1/RPR5=0.0 -! -!RPR1/RPR8=0.0 -! -!RPR1/RP10=0.0 -! -!RPR1/RP11=0.0 -! -!RPR1/RP16=0.0 -! -!RPR1/RPRL=0.0 -! -!RPR1/APAN=0.0 -! -!RPR1/PAN1=0.0 -! -!RPR1/PAN2=0.0 -! -!RPR1/PAN3=0.0 -! -!RPR1/PAN4=0.0 -! -!RPR1/PAN6=0.0 -! -!RPR1/PAN7=0.0 -! -!RPR1/PAN8=0.0 -! -!RPR1/PN10=0.0 -! -!RPR1/RO2T=+K184*<RO219> - PJAC(:,69,85)=+TPK%K184(:)*TPK%RO219(:) -! -!RPR1/RO21=0.0 -! -!RPR1/RO25=0.0 -! -!RPR1/WC_O3=0.0 -! -!RPR1/WC_H2O2=0.0 -! -!RPR1/WC_NO=0.0 -! -!RPR1/WC_NO2=0.0 -! -!RPR1/WC_NO3=0.0 -! -!RPR1/WC_N2O5=0.0 -! -!RPR1/WC_HONO=0.0 -! -!RPR1/WC_HNO3=0.0 -! -!RPR1/WC_HNO4=0.0 -! -!RPR1/WC_NH3=0.0 -! -!RPR1/WC_OH=0.0 -! -!RPR1/WC_HO2=0.0 -! -!RPR1/WC_CO2=0.0 -! -!RPR1/WC_SO2=0.0 -! -!RPR1/WC_H2SO4=0.0 -! -!RPR1/WC_RO21=0.0 -! -!RPR1/WC_RO25=0.0 -! -!RPR1/WC_MEOH=0.0 -! -!RPR1/WC_ETOH=0.0 -! -!RPR1/WC_ALCH=0.0 -! -!RPR1/WC_HCHO=0.0 -! -!RPR1/WC_ALD2=0.0 -! -!RPR1/WC_GLY=0.0 -! -!RPR1/WC_MGLY=0.0 -! -!RPR1/WC_KETL=0.0 -! -!RPR1/WC_ORA1=0.0 -! -!RPR1/WC_ORA2=0.0 -! -!RPR1/WC_ACID=0.0 -! -!RPR1/WC_RP16=0.0 -! -!RPR1/WC_UR21=0.0 -! -!RPR1/WC_UR28=0.0 -! -!RPR1/WC_ACID2=0.0 -! -!RPR1/WC_ASO3=0.0 -! -!RPR1/WC_ASO4=0.0 -! -!RPR1/WC_ASO5=0.0 -! -!RPR1/WC_AHSO5=0.0 -! -!RPR1/WC_AHMS=0.0 -! -!RPR1/WR_O3=0.0 -! -!RPR1/WR_H2O2=0.0 -! -!RPR1/WR_NO=0.0 -! -!RPR1/WR_NO2=0.0 -! -!RPR1/WR_NO3=0.0 -! -!RPR1/WR_N2O5=0.0 -! -!RPR1/WR_HONO=0.0 -! -!RPR1/WR_HNO3=0.0 -! -!RPR1/WR_HNO4=0.0 -! -!RPR1/WR_NH3=0.0 -! -!RPR1/WR_OH=0.0 -! -!RPR1/WR_HO2=0.0 -! -!RPR1/WR_CO2=0.0 -! -!RPR1/WR_SO2=0.0 -! -!RPR1/WR_H2SO4=0.0 -! -!RPR1/WR_RO21=0.0 -! -!RPR1/WR_RO25=0.0 -! -!RPR1/WR_MEOH=0.0 -! -!RPR1/WR_ETOH=0.0 -! -!RPR1/WR_ALCH=0.0 -! -!RPR1/WR_HCHO=0.0 -! -!RPR1/WR_ALD2=0.0 -! -!RPR1/WR_GLY=0.0 -! -!RPR1/WR_MGLY=0.0 -! -!RPR1/WR_KETL=0.0 -! -!RPR1/WR_ORA1=0.0 -! -!RPR1/WR_ORA2=0.0 -! -!RPR1/WR_ACID=0.0 -! -!RPR1/WR_RP16=0.0 -! -!RPR1/WR_UR21=0.0 -! -!RPR1/WR_UR28=0.0 -! -!RPR1/WR_ACID2=0.0 -! -!RPR1/WR_ASO3=0.0 -! -!RPR1/WR_ASO4=0.0 -! -!RPR1/WR_ASO5=0.0 -! -!RPR1/WR_AHSO5=0.0 -! -!RPR1/WR_AHMS=0.0 -! -!RPR5/NO=0.0 -! -!RPR5/NO2=+K107*<RAD5> - PJAC(:,70,2)=+TPK%K107(:)*TPK%RAD5(:) -! -!RPR5/O3=0.0 -! -!RPR5/HONO=0.0 -! -!RPR5/HNO3=0.0 -! -!RPR5/HNO4=0.0 -! -!RPR5/N2O5=0.0 -! -!RPR5/NO3=0.0 -! -!RPR5/NH3=0.0 -! -!RPR5/HO2=0.0 -! -!RPR5/CO=0.0 -! -!RPR5/H2O2=0.0 -! -!RPR5/SO2=0.0 -! -!RPR5/H2SO4=0.0 -! -!RPR5/OH=-K303*<RPR5> - PJAC(:,70,15)=-TPK%K303(:)*PCONC(:,70) -! -!RPR5/ETHE=0.0 -! -!RPR5/OLEL=0.0 -! -!RPR5/OLEH=0.0 -! -!RPR5/ALKL=0.0 -! -!RPR5/ALKM=0.0 -! -!RPR5/ALKH=0.0 -! -!RPR5/AROH=0.0 -! -!RPR5/AROL=0.0 -! -!RPR5/AROO=0.0 -! -!RPR5/ARAL=0.0 -! -!RPR5/ARAC=0.0 -! -!RPR5/PAH=0.0 -! -!RPR5/HCHO=0.0 -! -!RPR5/ALD2=0.0 -! -!RPR5/KETL=0.0 -! -!RPR5/KETH=0.0 -! -!RPR5/MEOH=0.0 -! -!RPR5/ETOH=0.0 -! -!RPR5/ALCH=0.0 -! -!RPR5/ISOP=0.0 -! -!RPR5/BIOL=0.0 -! -!RPR5/BIOH=0.0 -! -!RPR5/MTBE=0.0 -! -!RPR5/MVK=0.0 -! -!RPR5/MCR=0.0 -! -!RPR5/MGLY=0.0 -! -!RPR5/GLY=0.0 -! -!RPR5/ORA1=0.0 -! -!RPR5/ORA2=0.0 -! -!RPR5/ACID=0.0 -! -!RPR5/UR28=0.0 -! -!RPR5/UR21=0.0 -! -!RPR5/URG2=0.0 -! -!RPR5/UR26=0.0 -! -!RPR5/RPG2=0.0 -! -!RPR5/RP18=0.0 -! -!RPR5/RPG3=0.0 -! -!RPR5/URG4=0.0 -! -!RPR5/UR8=0.0 -! -!RPR5/UR17=0.0 -! -!RPR5/UR7=0.0 -! -!RPR5/RPR3=0.0 -! -!RPR5/URG6=0.0 -! -!RPR5/UR22=0.0 -! -!RPR5/URG7=0.0 -! -!RPR5/RPR4=0.0 -! -!RPR5/RPR7=0.0 -! -!RPR5/RPG7=0.0 -! -!RPR5/URG8=0.0 -! -!RPR5/UR19=0.0 -! -!RPR5/URG9=0.0 -! -!RPR5/AP7=0.0 -! -!RPR5/URG10=0.0 -! -!RPR5/RPR1=0.0 -! -!RPR5/RPR5=-K303*<OH> - PJAC(:,70,70)=-TPK%K303(:)*PCONC(:,15) -! -!RPR5/RPR8=0.0 -! -!RPR5/RP10=0.0 -! -!RPR5/RP11=0.0 -! -!RPR5/RP16=0.0 -! -!RPR5/RPRL=0.0 -! -!RPR5/APAN=0.0 -! -!RPR5/PAN1=0.0 -! -!RPR5/PAN2=0.0 -! -!RPR5/PAN3=0.0 -! -!RPR5/PAN4=0.0 -! -!RPR5/PAN6=0.0 -! -!RPR5/PAN7=0.0 -! -!RPR5/PAN8=0.0 -! -!RPR5/PN10=0.0 -! -!RPR5/RO2T=0.0 -! -!RPR5/RO21=0.0 -! -!RPR5/RO25=0.0 -! -!RPR5/WC_O3=0.0 -! -!RPR5/WC_H2O2=0.0 -! -!RPR5/WC_NO=0.0 -! -!RPR5/WC_NO2=0.0 -! -!RPR5/WC_NO3=0.0 -! -!RPR5/WC_N2O5=0.0 -! -!RPR5/WC_HONO=0.0 -! -!RPR5/WC_HNO3=0.0 -! -!RPR5/WC_HNO4=0.0 -! -!RPR5/WC_NH3=0.0 -! -!RPR5/WC_OH=0.0 -! -!RPR5/WC_HO2=0.0 -! -!RPR5/WC_CO2=0.0 -! -!RPR5/WC_SO2=0.0 -! -!RPR5/WC_H2SO4=0.0 -! -!RPR5/WC_RO21=0.0 -! -!RPR5/WC_RO25=0.0 -! -!RPR5/WC_MEOH=0.0 -! -!RPR5/WC_ETOH=0.0 -! -!RPR5/WC_ALCH=0.0 -! -!RPR5/WC_HCHO=0.0 -! -!RPR5/WC_ALD2=0.0 -! -!RPR5/WC_GLY=0.0 -! -!RPR5/WC_MGLY=0.0 -! -!RPR5/WC_KETL=0.0 -! -!RPR5/WC_ORA1=0.0 -! -!RPR5/WC_ORA2=0.0 -! -!RPR5/WC_ACID=0.0 -! -!RPR5/WC_RP16=0.0 -! -!RPR5/WC_UR21=0.0 -! -!RPR5/WC_UR28=0.0 -! -!RPR5/WC_ACID2=0.0 -! -!RPR5/WC_ASO3=0.0 -! -!RPR5/WC_ASO4=0.0 -! -!RPR5/WC_ASO5=0.0 -! -!RPR5/WC_AHSO5=0.0 -! -!RPR5/WC_AHMS=0.0 -! -!RPR5/WR_O3=0.0 -! -!RPR5/WR_H2O2=0.0 -! -!RPR5/WR_NO=0.0 -! -!RPR5/WR_NO2=0.0 -! -!RPR5/WR_NO3=0.0 -! -!RPR5/WR_N2O5=0.0 -! -!RPR5/WR_HONO=0.0 -! -!RPR5/WR_HNO3=0.0 -! -!RPR5/WR_HNO4=0.0 -! -!RPR5/WR_NH3=0.0 -! -!RPR5/WR_OH=0.0 -! -!RPR5/WR_HO2=0.0 -! -!RPR5/WR_CO2=0.0 -! -!RPR5/WR_SO2=0.0 -! -!RPR5/WR_H2SO4=0.0 -! -!RPR5/WR_RO21=0.0 -! -!RPR5/WR_RO25=0.0 -! -!RPR5/WR_MEOH=0.0 -! -!RPR5/WR_ETOH=0.0 -! -!RPR5/WR_ALCH=0.0 -! -!RPR5/WR_HCHO=0.0 -! -!RPR5/WR_ALD2=0.0 -! -!RPR5/WR_GLY=0.0 -! -!RPR5/WR_MGLY=0.0 -! -!RPR5/WR_KETL=0.0 -! -!RPR5/WR_ORA1=0.0 -! -!RPR5/WR_ORA2=0.0 -! -!RPR5/WR_ACID=0.0 -! -!RPR5/WR_RP16=0.0 -! -!RPR5/WR_UR21=0.0 -! -!RPR5/WR_UR28=0.0 -! -!RPR5/WR_ACID2=0.0 -! -!RPR5/WR_ASO3=0.0 -! -!RPR5/WR_ASO4=0.0 -! -!RPR5/WR_ASO5=0.0 -! -!RPR5/WR_AHSO5=0.0 -! -!RPR5/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ13 -! -SUBROUTINE SUBJ14 -! -!Indices 71 a 75 -! -! -!RPR8/NO=+K216*<RO240> - PJAC(:,71,1)=+TPK%K216(:)*TPK%RO240(:) -! -!RPR8/NO2=0.0 -! -!RPR8/O3=0.0 -! -!RPR8/HONO=0.0 -! -!RPR8/HNO3=0.0 -! -!RPR8/HNO4=0.0 -! -!RPR8/N2O5=0.0 -! -!RPR8/NO3=-K327*<RPR8> - PJAC(:,71,8)=-TPK%K327(:)*PCONC(:,71) -! -!RPR8/NH3=0.0 -! -!RPR8/HO2=+K218*<RO240> - PJAC(:,71,10)=+TPK%K218(:)*TPK%RO240(:) -! -!RPR8/CO=0.0 -! -!RPR8/H2O2=0.0 -! -!RPR8/SO2=0.0 -! -!RPR8/H2SO4=0.0 -! -!RPR8/OH=-K324*<RPR8> - PJAC(:,71,15)=-TPK%K324(:)*PCONC(:,71) -! -!RPR8/ETHE=0.0 -! -!RPR8/OLEL=0.0 -! -!RPR8/OLEH=0.0 -! -!RPR8/ALKL=0.0 -! -!RPR8/ALKM=0.0 -! -!RPR8/ALKH=0.0 -! -!RPR8/AROH=0.0 -! -!RPR8/AROL=0.0 -! -!RPR8/AROO=0.0 -! -!RPR8/ARAL=0.0 -! -!RPR8/ARAC=0.0 -! -!RPR8/PAH=0.0 -! -!RPR8/HCHO=0.0 -! -!RPR8/ALD2=0.0 -! -!RPR8/KETL=0.0 -! -!RPR8/KETH=0.0 -! -!RPR8/MEOH=0.0 -! -!RPR8/ETOH=0.0 -! -!RPR8/ALCH=0.0 -! -!RPR8/ISOP=0.0 -! -!RPR8/BIOL=0.0 -! -!RPR8/BIOH=0.0 -! -!RPR8/MTBE=0.0 -! -!RPR8/MVK=0.0 -! -!RPR8/MCR=0.0 -! -!RPR8/MGLY=0.0 -! -!RPR8/GLY=0.0 -! -!RPR8/ORA1=0.0 -! -!RPR8/ORA2=0.0 -! -!RPR8/ACID=0.0 -! -!RPR8/UR28=0.0 -! -!RPR8/UR21=0.0 -! -!RPR8/URG2=0.0 -! -!RPR8/UR26=0.0 -! -!RPR8/RPG2=0.0 -! -!RPR8/RP18=0.0 -! -!RPR8/RPG3=0.0 -! -!RPR8/URG4=0.0 -! -!RPR8/UR8=0.0 -! -!RPR8/UR17=0.0 -! -!RPR8/UR7=0.0 -! -!RPR8/RPR3=0.0 -! -!RPR8/URG6=0.0 -! -!RPR8/UR22=0.0 -! -!RPR8/URG7=0.0 -! -!RPR8/RPR4=0.0 -! -!RPR8/RPR7=0.0 -! -!RPR8/RPG7=0.0 -! -!RPR8/URG8=0.0 -! -!RPR8/UR19=0.0 -! -!RPR8/URG9=0.0 -! -!RPR8/AP7=0.0 -! -!RPR8/URG10=0.0 -! -!RPR8/RPR1=0.0 -! -!RPR8/RPR5=0.0 -! -!RPR8/RPR8=-K324*<OH>-K327*<NO3>-K329-K330 - PJAC(:,71,71)=-TPK%K324(:)*PCONC(:,15)-TPK%K327(:)*PCONC(:,8)-TPK%K329(:)-TPK%& -&K330(:) -! -!RPR8/RP10=0.0 -! -!RPR8/RP11=0.0 -! -!RPR8/RP16=0.0 -! -!RPR8/RPRL=0.0 -! -!RPR8/APAN=0.0 -! -!RPR8/PAN1=0.0 -! -!RPR8/PAN2=0.0 -! -!RPR8/PAN3=0.0 -! -!RPR8/PAN4=0.0 -! -!RPR8/PAN6=0.0 -! -!RPR8/PAN7=0.0 -! -!RPR8/PAN8=0.0 -! -!RPR8/PN10=0.0 -! -!RPR8/RO2T=+K217*<RO240> - PJAC(:,71,85)=+TPK%K217(:)*TPK%RO240(:) -! -!RPR8/RO21=0.0 -! -!RPR8/RO25=0.0 -! -!RPR8/WC_O3=0.0 -! -!RPR8/WC_H2O2=0.0 -! -!RPR8/WC_NO=0.0 -! -!RPR8/WC_NO2=0.0 -! -!RPR8/WC_NO3=0.0 -! -!RPR8/WC_N2O5=0.0 -! -!RPR8/WC_HONO=0.0 -! -!RPR8/WC_HNO3=0.0 -! -!RPR8/WC_HNO4=0.0 -! -!RPR8/WC_NH3=0.0 -! -!RPR8/WC_OH=0.0 -! -!RPR8/WC_HO2=0.0 -! -!RPR8/WC_CO2=0.0 -! -!RPR8/WC_SO2=0.0 -! -!RPR8/WC_H2SO4=0.0 -! -!RPR8/WC_RO21=0.0 -! -!RPR8/WC_RO25=0.0 -! -!RPR8/WC_MEOH=0.0 -! -!RPR8/WC_ETOH=0.0 -! -!RPR8/WC_ALCH=0.0 -! -!RPR8/WC_HCHO=0.0 -! -!RPR8/WC_ALD2=0.0 -! -!RPR8/WC_GLY=0.0 -! -!RPR8/WC_MGLY=0.0 -! -!RPR8/WC_KETL=0.0 -! -!RPR8/WC_ORA1=0.0 -! -!RPR8/WC_ORA2=0.0 -! -!RPR8/WC_ACID=0.0 -! -!RPR8/WC_RP16=0.0 -! -!RPR8/WC_UR21=0.0 -! -!RPR8/WC_UR28=0.0 -! -!RPR8/WC_ACID2=0.0 -! -!RPR8/WC_ASO3=0.0 -! -!RPR8/WC_ASO4=0.0 -! -!RPR8/WC_ASO5=0.0 -! -!RPR8/WC_AHSO5=0.0 -! -!RPR8/WC_AHMS=0.0 -! -!RPR8/WR_O3=0.0 -! -!RPR8/WR_H2O2=0.0 -! -!RPR8/WR_NO=0.0 -! -!RPR8/WR_NO2=0.0 -! -!RPR8/WR_NO3=0.0 -! -!RPR8/WR_N2O5=0.0 -! -!RPR8/WR_HONO=0.0 -! -!RPR8/WR_HNO3=0.0 -! -!RPR8/WR_HNO4=0.0 -! -!RPR8/WR_NH3=0.0 -! -!RPR8/WR_OH=0.0 -! -!RPR8/WR_HO2=0.0 -! -!RPR8/WR_CO2=0.0 -! -!RPR8/WR_SO2=0.0 -! -!RPR8/WR_H2SO4=0.0 -! -!RPR8/WR_RO21=0.0 -! -!RPR8/WR_RO25=0.0 -! -!RPR8/WR_MEOH=0.0 -! -!RPR8/WR_ETOH=0.0 -! -!RPR8/WR_ALCH=0.0 -! -!RPR8/WR_HCHO=0.0 -! -!RPR8/WR_ALD2=0.0 -! -!RPR8/WR_GLY=0.0 -! -!RPR8/WR_MGLY=0.0 -! -!RPR8/WR_KETL=0.0 -! -!RPR8/WR_ORA1=0.0 -! -!RPR8/WR_ORA2=0.0 -! -!RPR8/WR_ACID=0.0 -! -!RPR8/WR_RP16=0.0 -! -!RPR8/WR_UR21=0.0 -! -!RPR8/WR_UR28=0.0 -! -!RPR8/WR_ACID2=0.0 -! -!RPR8/WR_ASO3=0.0 -! -!RPR8/WR_ASO4=0.0 -! -!RPR8/WR_ASO5=0.0 -! -!RPR8/WR_AHSO5=0.0 -! -!RPR8/WR_AHMS=0.0 -! -!RP10/NO=+K234*<RO242>+K241*<RO243>+K248*<RO244>+K255*<RO245>+K262*<RO246> - PJAC(:,72,1)=+TPK%K234(:)*TPK%RO242(:)+TPK%K241(:)*TPK%RO243(:)+TPK%K248(:)*TP& -&K%RO244(:)+TPK%K255(:)*TPK%RO245(:)+TPK%K262(:)*TPK%RO246(:) -! -!RP10/NO2=0.0 -! -!RP10/O3=0.0 -! -!RP10/HONO=0.0 -! -!RP10/HNO3=0.0 -! -!RP10/HNO4=0.0 -! -!RP10/N2O5=0.0 -! -!RP10/NO3=0.0 -! -!RP10/NH3=0.0 -! -!RP10/HO2=+K236*<RO242>+K243*<RO243>+K250*<RO244>+K257*<RO245>+K264*<RO246> - PJAC(:,72,10)=+TPK%K236(:)*TPK%RO242(:)+TPK%K243(:)*TPK%RO243(:)+TPK%K250(:)*T& -&PK%RO244(:)+TPK%K257(:)*TPK%RO245(:)+TPK%K264(:)*TPK%RO246(:) -! -!RP10/CO=0.0 -! -!RP10/H2O2=0.0 -! -!RP10/SO2=0.0 -! -!RP10/H2SO4=0.0 -! -!RP10/OH=-K325*<RP10> - PJAC(:,72,15)=-TPK%K325(:)*PCONC(:,72) -! -!RP10/ETHE=0.0 -! -!RP10/OLEL=0.0 -! -!RP10/OLEH=0.0 -! -!RP10/ALKL=0.0 -! -!RP10/ALKM=0.0 -! -!RP10/ALKH=0.0 -! -!RP10/AROH=0.0 -! -!RP10/AROL=0.0 -! -!RP10/AROO=0.0 -! -!RP10/ARAL=0.0 -! -!RP10/ARAC=0.0 -! -!RP10/PAH=0.0 -! -!RP10/HCHO=0.0 -! -!RP10/ALD2=0.0 -! -!RP10/KETL=0.0 -! -!RP10/KETH=0.0 -! -!RP10/MEOH=0.0 -! -!RP10/ETOH=0.0 -! -!RP10/ALCH=0.0 -! -!RP10/ISOP=0.0 -! -!RP10/BIOL=0.0 -! -!RP10/BIOH=0.0 -! -!RP10/MTBE=0.0 -! -!RP10/MVK=0.0 -! -!RP10/MCR=0.0 -! -!RP10/MGLY=0.0 -! -!RP10/GLY=0.0 -! -!RP10/ORA1=0.0 -! -!RP10/ORA2=0.0 -! -!RP10/ACID=0.0 -! -!RP10/UR28=0.0 -! -!RP10/UR21=0.0 -! -!RP10/URG2=0.0 -! -!RP10/UR26=0.0 -! -!RP10/RPG2=0.0 -! -!RP10/RP18=0.0 -! -!RP10/RPG3=0.0 -! -!RP10/URG4=0.0 -! -!RP10/UR8=0.0 -! -!RP10/UR17=0.0 -! -!RP10/UR7=0.0 -! -!RP10/RPR3=0.0 -! -!RP10/URG6=0.0 -! -!RP10/UR22=0.0 -! -!RP10/URG7=0.0 -! -!RP10/RPR4=0.0 -! -!RP10/RPR7=0.0 -! -!RP10/RPG7=0.0 -! -!RP10/URG8=0.0 -! -!RP10/UR19=0.0 -! -!RP10/URG9=0.0 -! -!RP10/AP7=0.0 -! -!RP10/URG10=0.0 -! -!RP10/RPR1=0.0 -! -!RP10/RPR5=0.0 -! -!RP10/RPR8=0.0 -! -!RP10/RP10=-K325*<OH>-K328 - PJAC(:,72,72)=-TPK%K325(:)*PCONC(:,15)-TPK%K328(:) -! -!RP10/RP11=0.0 -! -!RP10/RP16=0.0 -! -!RP10/RPRL=0.0 -! -!RP10/APAN=0.0 -! -!RP10/PAN1=0.0 -! -!RP10/PAN2=0.0 -! -!RP10/PAN3=0.0 -! -!RP10/PAN4=0.0 -! -!RP10/PAN6=0.0 -! -!RP10/PAN7=0.0 -! -!RP10/PAN8=0.0 -! -!RP10/PN10=0.0 -! -!RP10/RO2T=+K235*<RO242>+K242*<RO243>+K249*<RO244>+K256*<RO245>+K263*<RO246> - PJAC(:,72,85)=+TPK%K235(:)*TPK%RO242(:)+TPK%K242(:)*TPK%RO243(:)+TPK%K249(:)*T& -&PK%RO244(:)+TPK%K256(:)*TPK%RO245(:)+TPK%K263(:)*TPK%RO246(:) -! -!RP10/RO21=0.0 -! -!RP10/RO25=0.0 -! -!RP10/WC_O3=0.0 -! -!RP10/WC_H2O2=0.0 -! -!RP10/WC_NO=0.0 -! -!RP10/WC_NO2=0.0 -! -!RP10/WC_NO3=0.0 -! -!RP10/WC_N2O5=0.0 -! -!RP10/WC_HONO=0.0 -! -!RP10/WC_HNO3=0.0 -! -!RP10/WC_HNO4=0.0 -! -!RP10/WC_NH3=0.0 -! -!RP10/WC_OH=0.0 -! -!RP10/WC_HO2=0.0 -! -!RP10/WC_CO2=0.0 -! -!RP10/WC_SO2=0.0 -! -!RP10/WC_H2SO4=0.0 -! -!RP10/WC_RO21=0.0 -! -!RP10/WC_RO25=0.0 -! -!RP10/WC_MEOH=0.0 -! -!RP10/WC_ETOH=0.0 -! -!RP10/WC_ALCH=0.0 -! -!RP10/WC_HCHO=0.0 -! -!RP10/WC_ALD2=0.0 -! -!RP10/WC_GLY=0.0 -! -!RP10/WC_MGLY=0.0 -! -!RP10/WC_KETL=0.0 -! -!RP10/WC_ORA1=0.0 -! -!RP10/WC_ORA2=0.0 -! -!RP10/WC_ACID=0.0 -! -!RP10/WC_RP16=0.0 -! -!RP10/WC_UR21=0.0 -! -!RP10/WC_UR28=0.0 -! -!RP10/WC_ACID2=0.0 -! -!RP10/WC_ASO3=0.0 -! -!RP10/WC_ASO4=0.0 -! -!RP10/WC_ASO5=0.0 -! -!RP10/WC_AHSO5=0.0 -! -!RP10/WC_AHMS=0.0 -! -!RP10/WR_O3=0.0 -! -!RP10/WR_H2O2=0.0 -! -!RP10/WR_NO=0.0 -! -!RP10/WR_NO2=0.0 -! -!RP10/WR_NO3=0.0 -! -!RP10/WR_N2O5=0.0 -! -!RP10/WR_HONO=0.0 -! -!RP10/WR_HNO3=0.0 -! -!RP10/WR_HNO4=0.0 -! -!RP10/WR_NH3=0.0 -! -!RP10/WR_OH=0.0 -! -!RP10/WR_HO2=0.0 -! -!RP10/WR_CO2=0.0 -! -!RP10/WR_SO2=0.0 -! -!RP10/WR_H2SO4=0.0 -! -!RP10/WR_RO21=0.0 -! -!RP10/WR_RO25=0.0 -! -!RP10/WR_MEOH=0.0 -! -!RP10/WR_ETOH=0.0 -! -!RP10/WR_ALCH=0.0 -! -!RP10/WR_HCHO=0.0 -! -!RP10/WR_ALD2=0.0 -! -!RP10/WR_GLY=0.0 -! -!RP10/WR_MGLY=0.0 -! -!RP10/WR_KETL=0.0 -! -!RP10/WR_ORA1=0.0 -! -!RP10/WR_ORA2=0.0 -! -!RP10/WR_ACID=0.0 -! -!RP10/WR_RP16=0.0 -! -!RP10/WR_UR21=0.0 -! -!RP10/WR_UR28=0.0 -! -!RP10/WR_ACID2=0.0 -! -!RP10/WR_ASO3=0.0 -! -!RP10/WR_ASO4=0.0 -! -!RP10/WR_ASO5=0.0 -! -!RP10/WR_AHSO5=0.0 -! -!RP10/WR_AHMS=0.0 -! -!RP11/NO=+0.3*K238*<RO234>+0.5*K245*<RO235> - PJAC(:,73,1)=+0.3*TPK%K238(:)*TPK%RO234(:)+0.5*TPK%K245(:)*TPK%RO235(:) -! -!RP11/NO2=0.0 -! -!RP11/O3=0.0 -! -!RP11/HONO=0.0 -! -!RP11/HNO3=0.0 -! -!RP11/HNO4=0.0 -! -!RP11/N2O5=0.0 -! -!RP11/NO3=0.0 -! -!RP11/NH3=0.0 -! -!RP11/HO2=+0.3*K240*<RO234>+K247*<RO235> - PJAC(:,73,10)=+0.3*TPK%K240(:)*TPK%RO234(:)+TPK%K247(:)*TPK%RO235(:) -! -!RP11/CO=0.0 -! -!RP11/H2O2=0.0 -! -!RP11/SO2=0.0 -! -!RP11/H2SO4=0.0 -! -!RP11/OH=-K326*<RP11> - PJAC(:,73,15)=-TPK%K326(:)*PCONC(:,73) -! -!RP11/ETHE=0.0 -! -!RP11/OLEL=0.0 -! -!RP11/OLEH=0.0 -! -!RP11/ALKL=0.0 -! -!RP11/ALKM=0.0 -! -!RP11/ALKH=0.0 -! -!RP11/AROH=0.0 -! -!RP11/AROL=0.0 -! -!RP11/AROO=0.0 -! -!RP11/ARAL=0.0 -! -!RP11/ARAC=0.0 -! -!RP11/PAH=0.0 -! -!RP11/HCHO=0.0 -! -!RP11/ALD2=0.0 -! -!RP11/KETL=0.0 -! -!RP11/KETH=0.0 -! -!RP11/MEOH=0.0 -! -!RP11/ETOH=0.0 -! -!RP11/ALCH=0.0 -! -!RP11/ISOP=0.0 -! -!RP11/BIOL=0.0 -! -!RP11/BIOH=0.0 -! -!RP11/MTBE=0.0 -! -!RP11/MVK=0.0 -! -!RP11/MCR=0.0 -! -!RP11/MGLY=0.0 -! -!RP11/GLY=0.0 -! -!RP11/ORA1=0.0 -! -!RP11/ORA2=0.0 -! -!RP11/ACID=0.0 -! -!RP11/UR28=0.0 -! -!RP11/UR21=0.0 -! -!RP11/URG2=0.0 -! -!RP11/UR26=0.0 -! -!RP11/RPG2=0.0 -! -!RP11/RP18=0.0 -! -!RP11/RPG3=0.0 -! -!RP11/URG4=0.0 -! -!RP11/UR8=0.0 -! -!RP11/UR17=0.0 -! -!RP11/UR7=0.0 -! -!RP11/RPR3=0.0 -! -!RP11/URG6=0.0 -! -!RP11/UR22=0.0 -! -!RP11/URG7=0.0 -! -!RP11/RPR4=0.0 -! -!RP11/RPR7=0.0 -! -!RP11/RPG7=0.0 -! -!RP11/URG8=0.0 -! -!RP11/UR19=0.0 -! -!RP11/URG9=0.0 -! -!RP11/AP7=0.0 -! -!RP11/URG10=0.0 -! -!RP11/RPR1=0.0 -! -!RP11/RPR5=0.0 -! -!RP11/RPR8=0.0 -! -!RP11/RP10=0.0 -! -!RP11/RP11=-K326*<OH> - PJAC(:,73,73)=-TPK%K326(:)*PCONC(:,15) -! -!RP11/RP16=0.0 -! -!RP11/RPRL=0.0 -! -!RP11/APAN=0.0 -! -!RP11/PAN1=0.0 -! -!RP11/PAN2=0.0 -! -!RP11/PAN3=0.0 -! -!RP11/PAN4=0.0 -! -!RP11/PAN6=0.0 -! -!RP11/PAN7=0.0 -! -!RP11/PAN8=0.0 -! -!RP11/PN10=0.0 -! -!RP11/RO2T=+K239*<RO234>+K246*<RO235> - PJAC(:,73,85)=+TPK%K239(:)*TPK%RO234(:)+TPK%K246(:)*TPK%RO235(:) -! -!RP11/RO21=0.0 -! -!RP11/RO25=0.0 -! -!RP11/WC_O3=0.0 -! -!RP11/WC_H2O2=0.0 -! -!RP11/WC_NO=0.0 -! -!RP11/WC_NO2=0.0 -! -!RP11/WC_NO3=0.0 -! -!RP11/WC_N2O5=0.0 -! -!RP11/WC_HONO=0.0 -! -!RP11/WC_HNO3=0.0 -! -!RP11/WC_HNO4=0.0 -! -!RP11/WC_NH3=0.0 -! -!RP11/WC_OH=0.0 -! -!RP11/WC_HO2=0.0 -! -!RP11/WC_CO2=0.0 -! -!RP11/WC_SO2=0.0 -! -!RP11/WC_H2SO4=0.0 -! -!RP11/WC_RO21=0.0 -! -!RP11/WC_RO25=0.0 -! -!RP11/WC_MEOH=0.0 -! -!RP11/WC_ETOH=0.0 -! -!RP11/WC_ALCH=0.0 -! -!RP11/WC_HCHO=0.0 -! -!RP11/WC_ALD2=0.0 -! -!RP11/WC_GLY=0.0 -! -!RP11/WC_MGLY=0.0 -! -!RP11/WC_KETL=0.0 -! -!RP11/WC_ORA1=0.0 -! -!RP11/WC_ORA2=0.0 -! -!RP11/WC_ACID=0.0 -! -!RP11/WC_RP16=0.0 -! -!RP11/WC_UR21=0.0 -! -!RP11/WC_UR28=0.0 -! -!RP11/WC_ACID2=0.0 -! -!RP11/WC_ASO3=0.0 -! -!RP11/WC_ASO4=0.0 -! -!RP11/WC_ASO5=0.0 -! -!RP11/WC_AHSO5=0.0 -! -!RP11/WC_AHMS=0.0 -! -!RP11/WR_O3=0.0 -! -!RP11/WR_H2O2=0.0 -! -!RP11/WR_NO=0.0 -! -!RP11/WR_NO2=0.0 -! -!RP11/WR_NO3=0.0 -! -!RP11/WR_N2O5=0.0 -! -!RP11/WR_HONO=0.0 -! -!RP11/WR_HNO3=0.0 -! -!RP11/WR_HNO4=0.0 -! -!RP11/WR_NH3=0.0 -! -!RP11/WR_OH=0.0 -! -!RP11/WR_HO2=0.0 -! -!RP11/WR_CO2=0.0 -! -!RP11/WR_SO2=0.0 -! -!RP11/WR_H2SO4=0.0 -! -!RP11/WR_RO21=0.0 -! -!RP11/WR_RO25=0.0 -! -!RP11/WR_MEOH=0.0 -! -!RP11/WR_ETOH=0.0 -! -!RP11/WR_ALCH=0.0 -! -!RP11/WR_HCHO=0.0 -! -!RP11/WR_ALD2=0.0 -! -!RP11/WR_GLY=0.0 -! -!RP11/WR_MGLY=0.0 -! -!RP11/WR_KETL=0.0 -! -!RP11/WR_ORA1=0.0 -! -!RP11/WR_ORA2=0.0 -! -!RP11/WR_ACID=0.0 -! -!RP11/WR_RP16=0.0 -! -!RP11/WR_UR21=0.0 -! -!RP11/WR_UR28=0.0 -! -!RP11/WR_ACID2=0.0 -! -!RP11/WR_ASO3=0.0 -! -!RP11/WR_ASO4=0.0 -! -!RP11/WR_ASO5=0.0 -! -!RP11/WR_AHSO5=0.0 -! -!RP11/WR_AHMS=0.0 -! -!RP16/NO=0.0 -! -!RP16/NO2=0.0 -! -!RP16/O3=0.0 -! -!RP16/HONO=0.0 -! -!RP16/HNO3=0.0 -! -!RP16/HNO4=0.0 -! -!RP16/N2O5=0.0 -! -!RP16/NO3=-K338*<RP16> - PJAC(:,74,8)=-TPK%K338(:)*PCONC(:,74) -! -!RP16/NH3=0.0 -! -!RP16/HO2=+K301*<RO254> - PJAC(:,74,10)=+TPK%K301(:)*TPK%RO254(:) -! -!RP16/CO=0.0 -! -!RP16/H2O2=0.0 -! -!RP16/SO2=0.0 -! -!RP16/H2SO4=0.0 -! -!RP16/OH=-K305*<RP16> - PJAC(:,74,15)=-TPK%K305(:)*PCONC(:,74) -! -!RP16/ETHE=0.0 -! -!RP16/OLEL=0.0 -! -!RP16/OLEH=0.0 -! -!RP16/ALKL=0.0 -! -!RP16/ALKM=0.0 -! -!RP16/ALKH=0.0 -! -!RP16/AROH=0.0 -! -!RP16/AROL=0.0 -! -!RP16/AROO=0.0 -! -!RP16/ARAL=0.0 -! -!RP16/ARAC=0.0 -! -!RP16/PAH=0.0 -! -!RP16/HCHO=0.0 -! -!RP16/ALD2=0.0 -! -!RP16/KETL=0.0 -! -!RP16/KETH=0.0 -! -!RP16/MEOH=0.0 -! -!RP16/ETOH=0.0 -! -!RP16/ALCH=0.0 -! -!RP16/ISOP=0.0 -! -!RP16/BIOL=0.0 -! -!RP16/BIOH=0.0 -! -!RP16/MTBE=0.0 -! -!RP16/MVK=0.0 -! -!RP16/MCR=0.0 -! -!RP16/MGLY=0.0 -! -!RP16/GLY=0.0 -! -!RP16/ORA1=0.0 -! -!RP16/ORA2=0.0 -! -!RP16/ACID=0.0 -! -!RP16/UR28=0.0 -! -!RP16/UR21=0.0 -! -!RP16/URG2=0.0 -! -!RP16/UR26=0.0 -! -!RP16/RPG2=0.0 -! -!RP16/RP18=0.0 -! -!RP16/RPG3=0.0 -! -!RP16/URG4=0.0 -! -!RP16/UR8=0.0 -! -!RP16/UR17=0.0 -! -!RP16/UR7=0.0 -! -!RP16/RPR3=0.0 -! -!RP16/URG6=0.0 -! -!RP16/UR22=0.0 -! -!RP16/URG7=0.0 -! -!RP16/RPR4=0.0 -! -!RP16/RPR7=0.0 -! -!RP16/RPG7=0.0 -! -!RP16/URG8=0.0 -! -!RP16/UR19=0.0 -! -!RP16/URG9=0.0 -! -!RP16/AP7=0.0 -! -!RP16/URG10=0.0 -! -!RP16/RPR1=0.0 -! -!RP16/RPR5=0.0 -! -!RP16/RPR8=0.0 -! -!RP16/RP10=0.0 -! -!RP16/RP11=0.0 -! -!RP16/RP16=-K305*<OH>-K338*<NO3>-K339-KTC29-KTR29 - PJAC(:,74,74)=-TPK%K305(:)*PCONC(:,15)-TPK%K338(:)*PCONC(:,8)-TPK%K339(:)-TPK%& -&KTC29(:)-TPK%KTR29(:) -! -!RP16/RPRL=0.0 -! -!RP16/APAN=0.0 -! -!RP16/PAN1=0.0 -! -!RP16/PAN2=0.0 -! -!RP16/PAN3=0.0 -! -!RP16/PAN4=0.0 -! -!RP16/PAN6=0.0 -! -!RP16/PAN7=0.0 -! -!RP16/PAN8=0.0 -! -!RP16/PN10=0.0 -! -!RP16/RO2T=0.0 -! -!RP16/RO21=0.0 -! -!RP16/RO25=0.0 -! -!RP16/WC_O3=0.0 -! -!RP16/WC_H2O2=0.0 -! -!RP16/WC_NO=0.0 -! -!RP16/WC_NO2=0.0 -! -!RP16/WC_NO3=0.0 -! -!RP16/WC_N2O5=0.0 -! -!RP16/WC_HONO=0.0 -! -!RP16/WC_HNO3=0.0 -! -!RP16/WC_HNO4=0.0 -! -!RP16/WC_NH3=0.0 -! -!RP16/WC_OH=0.0 -! -!RP16/WC_HO2=0.0 -! -!RP16/WC_CO2=0.0 -! -!RP16/WC_SO2=0.0 -! -!RP16/WC_H2SO4=0.0 -! -!RP16/WC_RO21=0.0 -! -!RP16/WC_RO25=0.0 -! -!RP16/WC_MEOH=0.0 -! -!RP16/WC_ETOH=0.0 -! -!RP16/WC_ALCH=0.0 -! -!RP16/WC_HCHO=0.0 -! -!RP16/WC_ALD2=0.0 -! -!RP16/WC_GLY=0.0 -! -!RP16/WC_MGLY=0.0 -! -!RP16/WC_KETL=0.0 -! -!RP16/WC_ORA1=0.0 -! -!RP16/WC_ORA2=0.0 -! -!RP16/WC_ACID=0.0 -! -!RP16/WC_RP16=+KTC60 - PJAC(:,74,116)=+TPK%KTC60(:) -! -!RP16/WC_UR21=0.0 -! -!RP16/WC_UR28=0.0 -! -!RP16/WC_ACID2=0.0 -! -!RP16/WC_ASO3=0.0 -! -!RP16/WC_ASO4=0.0 -! -!RP16/WC_ASO5=0.0 -! -!RP16/WC_AHSO5=0.0 -! -!RP16/WC_AHMS=0.0 -! -!RP16/WR_O3=0.0 -! -!RP16/WR_H2O2=0.0 -! -!RP16/WR_NO=0.0 -! -!RP16/WR_NO2=0.0 -! -!RP16/WR_NO3=0.0 -! -!RP16/WR_N2O5=0.0 -! -!RP16/WR_HONO=0.0 -! -!RP16/WR_HNO3=0.0 -! -!RP16/WR_HNO4=0.0 -! -!RP16/WR_NH3=0.0 -! -!RP16/WR_OH=0.0 -! -!RP16/WR_HO2=0.0 -! -!RP16/WR_CO2=0.0 -! -!RP16/WR_SO2=0.0 -! -!RP16/WR_H2SO4=0.0 -! -!RP16/WR_RO21=0.0 -! -!RP16/WR_RO25=0.0 -! -!RP16/WR_MEOH=0.0 -! -!RP16/WR_ETOH=0.0 -! -!RP16/WR_ALCH=0.0 -! -!RP16/WR_HCHO=0.0 -! -!RP16/WR_ALD2=0.0 -! -!RP16/WR_GLY=0.0 -! -!RP16/WR_MGLY=0.0 -! -!RP16/WR_KETL=0.0 -! -!RP16/WR_ORA1=0.0 -! -!RP16/WR_ORA2=0.0 -! -!RP16/WR_ACID=0.0 -! -!RP16/WR_RP16=+KTR60 - PJAC(:,74,153)=+TPK%KTR60(:) -! -!RP16/WR_UR21=0.0 -! -!RP16/WR_UR28=0.0 -! -!RP16/WR_ACID2=0.0 -! -!RP16/WR_ASO3=0.0 -! -!RP16/WR_ASO4=0.0 -! -!RP16/WR_ASO5=0.0 -! -!RP16/WR_AHSO5=0.0 -! -!RP16/WR_AHMS=0.0 -! -!RPRL/NO=+TPK%CFA2*K177*<RO217>+TPK%CFA7*K192*<RO222>+1.0023998*K269*<RO247> - PJAC(:,75,1)=+TPK%CFA2*TPK%K177(:)*TPK%RO217(:)+TPK%CFA7*TPK%K192(:)*TPK%RO222& -&(:)+1.0023998*TPK%K269(:)*TPK%RO247(:) -! -!RPRL/NO2=0.0 -! -!RPRL/O3=0.0 -! -!RPRL/HONO=0.0 -! -!RPRL/HNO3=0.0 -! -!RPRL/HNO4=0.0 -! -!RPRL/N2O5=0.0 -! -!RPRL/NO3=0.0 -! -!RPRL/NH3=0.0 -! -!RPRL/HO2=+0.9983609*K179*<RO217>+0.9983609*K194*<RO222>+1.0023998*K271*<RO247> - PJAC(:,75,10)=+0.9983609*TPK%K179(:)*TPK%RO217(:)+0.9983609*TPK%K194(:)*TPK%RO& -&222(:)+1.0023998*TPK%K271(:)*TPK%RO247(:) -! -!RPRL/CO=0.0 -! -!RPRL/H2O2=0.0 -! -!RPRL/SO2=0.0 -! -!RPRL/H2SO4=0.0 -! -!RPRL/OH=+0.9983609*K082*<ARAL>-K306*<RPRL> - PJAC(:,75,15)=+0.9983609*TPK%K082(:)*PCONC(:,25)-TPK%K306(:)*PCONC(:,75) -! -!RPRL/ETHE=0.0 -! -!RPRL/OLEL=0.0 -! -!RPRL/OLEH=0.0 -! -!RPRL/ALKL=0.0 -! -!RPRL/ALKM=0.0 -! -!RPRL/ALKH=0.0 -! -!RPRL/AROH=0.0 -! -!RPRL/AROL=0.0 -! -!RPRL/AROO=0.0 -! -!RPRL/ARAL=+0.9983609*K082*<OH> - PJAC(:,75,25)=+0.9983609*TPK%K082(:)*PCONC(:,15) -! -!RPRL/ARAC=0.0 -! -!RPRL/PAH=0.0 -! -!RPRL/HCHO=0.0 -! -!RPRL/ALD2=0.0 -! -!RPRL/KETL=0.0 -! -!RPRL/KETH=0.0 -! -!RPRL/MEOH=0.0 -! -!RPRL/ETOH=0.0 -! -!RPRL/ALCH=0.0 -! -!RPRL/ISOP=0.0 -! -!RPRL/BIOL=0.0 -! -!RPRL/BIOH=0.0 -! -!RPRL/MTBE=0.0 -! -!RPRL/MVK=0.0 -! -!RPRL/MCR=0.0 -! -!RPRL/MGLY=0.0 -! -!RPRL/GLY=0.0 -! -!RPRL/ORA1=0.0 -! -!RPRL/ORA2=0.0 -! -!RPRL/ACID=0.0 -! -!RPRL/UR28=0.0 -! -!RPRL/UR21=0.0 -! -!RPRL/URG2=0.0 -! -!RPRL/UR26=0.0 -! -!RPRL/RPG2=0.0 -! -!RPRL/RP18=0.0 -! -!RPRL/RPG3=0.0 -! -!RPRL/URG4=0.0 -! -!RPRL/UR8=0.0 -! -!RPRL/UR17=0.0 -! -!RPRL/UR7=0.0 -! -!RPRL/RPR3=0.0 -! -!RPRL/URG6=0.0 -! -!RPRL/UR22=0.0 -! -!RPRL/URG7=0.0 -! -!RPRL/RPR4=0.0 -! -!RPRL/RPR7=0.0 -! -!RPRL/RPG7=0.0 -! -!RPRL/URG8=0.0 -! -!RPRL/UR19=0.0 -! -!RPRL/URG9=0.0 -! -!RPRL/AP7=0.0 -! -!RPRL/URG10=0.0 -! -!RPRL/RPR1=0.0 -! -!RPRL/RPR5=0.0 -! -!RPRL/RPR8=0.0 -! -!RPRL/RP10=0.0 -! -!RPRL/RP11=0.0 -! -!RPRL/RP16=0.0 -! -!RPRL/RPRL=-K306*<OH> - PJAC(:,75,75)=-TPK%K306(:)*PCONC(:,15) -! -!RPRL/APAN=0.0 -! -!RPRL/PAN1=0.0 -! -!RPRL/PAN2=0.0 -! -!RPRL/PAN3=0.0 -! -!RPRL/PAN4=0.0 -! -!RPRL/PAN6=0.0 -! -!RPRL/PAN7=0.0 -! -!RPRL/PAN8=0.0 -! -!RPRL/PN10=0.0 -! -!RPRL/RO2T=+0.9983609*K178*<RO217>+0.9983609*K193*<RO222>+1.0023998*K270*<RO247 -!> - PJAC(:,75,85)=+0.9983609*TPK%K178(:)*TPK%RO217(:)+0.9983609*TPK%K193(:)*TPK%RO& -&222(:)+1.0023998*TPK%K270(:)*TPK%RO247(:) -! -!RPRL/RO21=0.0 -! -!RPRL/RO25=0.0 -! -!RPRL/WC_O3=0.0 -! -!RPRL/WC_H2O2=0.0 -! -!RPRL/WC_NO=0.0 -! -!RPRL/WC_NO2=0.0 -! -!RPRL/WC_NO3=0.0 -! -!RPRL/WC_N2O5=0.0 -! -!RPRL/WC_HONO=0.0 -! -!RPRL/WC_HNO3=0.0 -! -!RPRL/WC_HNO4=0.0 -! -!RPRL/WC_NH3=0.0 -! -!RPRL/WC_OH=0.0 -! -!RPRL/WC_HO2=0.0 -! -!RPRL/WC_CO2=0.0 -! -!RPRL/WC_SO2=0.0 -! -!RPRL/WC_H2SO4=0.0 -! -!RPRL/WC_RO21=0.0 -! -!RPRL/WC_RO25=0.0 -! -!RPRL/WC_MEOH=0.0 -! -!RPRL/WC_ETOH=0.0 -! -!RPRL/WC_ALCH=0.0 -! -!RPRL/WC_HCHO=0.0 -! -!RPRL/WC_ALD2=0.0 -! -!RPRL/WC_GLY=0.0 -! -!RPRL/WC_MGLY=0.0 -! -!RPRL/WC_KETL=0.0 -! -!RPRL/WC_ORA1=0.0 -! -!RPRL/WC_ORA2=0.0 -! -!RPRL/WC_ACID=0.0 -! -!RPRL/WC_RP16=0.0 -! -!RPRL/WC_UR21=0.0 -! -!RPRL/WC_UR28=0.0 -! -!RPRL/WC_ACID2=0.0 -! -!RPRL/WC_ASO3=0.0 -! -!RPRL/WC_ASO4=0.0 -! -!RPRL/WC_ASO5=0.0 -! -!RPRL/WC_AHSO5=0.0 -! -!RPRL/WC_AHMS=0.0 -! -!RPRL/WR_O3=0.0 -! -!RPRL/WR_H2O2=0.0 -! -!RPRL/WR_NO=0.0 -! -!RPRL/WR_NO2=0.0 -! -!RPRL/WR_NO3=0.0 -! -!RPRL/WR_N2O5=0.0 -! -!RPRL/WR_HONO=0.0 -! -!RPRL/WR_HNO3=0.0 -! -!RPRL/WR_HNO4=0.0 -! -!RPRL/WR_NH3=0.0 -! -!RPRL/WR_OH=0.0 -! -!RPRL/WR_HO2=0.0 -! -!RPRL/WR_CO2=0.0 -! -!RPRL/WR_SO2=0.0 -! -!RPRL/WR_H2SO4=0.0 -! -!RPRL/WR_RO21=0.0 -! -!RPRL/WR_RO25=0.0 -! -!RPRL/WR_MEOH=0.0 -! -!RPRL/WR_ETOH=0.0 -! -!RPRL/WR_ALCH=0.0 -! -!RPRL/WR_HCHO=0.0 -! -!RPRL/WR_ALD2=0.0 -! -!RPRL/WR_GLY=0.0 -! -!RPRL/WR_MGLY=0.0 -! -!RPRL/WR_KETL=0.0 -! -!RPRL/WR_ORA1=0.0 -! -!RPRL/WR_ORA2=0.0 -! -!RPRL/WR_ACID=0.0 -! -!RPRL/WR_RP16=0.0 -! -!RPRL/WR_UR21=0.0 -! -!RPRL/WR_UR28=0.0 -! -!RPRL/WR_ACID2=0.0 -! -!RPRL/WR_ASO3=0.0 -! -!RPRL/WR_ASO4=0.0 -! -!RPRL/WR_ASO5=0.0 -! -!RPRL/WR_AHSO5=0.0 -! -!RPRL/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ14 -! -SUBROUTINE SUBJ15 -! -!Indices 76 a 80 -! -! -!APAN/NO=0.0 -! -!APAN/NO2=+K130*<RO250>+K133*<RO257> - PJAC(:,76,2)=+TPK%K130(:)*TPK%RO250(:)+TPK%K133(:)*TPK%RO257(:) -! -!APAN/O3=0.0 -! -!APAN/HONO=0.0 -! -!APAN/HNO3=0.0 -! -!APAN/HNO4=0.0 -! -!APAN/N2O5=0.0 -! -!APAN/NO3=0.0 -! -!APAN/NH3=0.0 -! -!APAN/HO2=0.0 -! -!APAN/CO=0.0 -! -!APAN/H2O2=0.0 -! -!APAN/SO2=0.0 -! -!APAN/H2SO4=0.0 -! -!APAN/OH=0.0 -! -!APAN/ETHE=0.0 -! -!APAN/OLEL=0.0 -! -!APAN/OLEH=0.0 -! -!APAN/ALKL=0.0 -! -!APAN/ALKM=0.0 -! -!APAN/ALKH=0.0 -! -!APAN/AROH=0.0 -! -!APAN/AROL=0.0 -! -!APAN/AROO=0.0 -! -!APAN/ARAL=0.0 -! -!APAN/ARAC=0.0 -! -!APAN/PAH=0.0 -! -!APAN/HCHO=0.0 -! -!APAN/ALD2=0.0 -! -!APAN/KETL=0.0 -! -!APAN/KETH=0.0 -! -!APAN/MEOH=0.0 -! -!APAN/ETOH=0.0 -! -!APAN/ALCH=0.0 -! -!APAN/ISOP=0.0 -! -!APAN/BIOL=0.0 -! -!APAN/BIOH=0.0 -! -!APAN/MTBE=0.0 -! -!APAN/MVK=0.0 -! -!APAN/MCR=0.0 -! -!APAN/MGLY=0.0 -! -!APAN/GLY=0.0 -! -!APAN/ORA1=0.0 -! -!APAN/ORA2=0.0 -! -!APAN/ACID=0.0 -! -!APAN/UR28=0.0 -! -!APAN/UR21=0.0 -! -!APAN/URG2=0.0 -! -!APAN/UR26=0.0 -! -!APAN/RPG2=0.0 -! -!APAN/RP18=0.0 -! -!APAN/RPG3=0.0 -! -!APAN/URG4=0.0 -! -!APAN/UR8=0.0 -! -!APAN/UR17=0.0 -! -!APAN/UR7=0.0 -! -!APAN/RPR3=0.0 -! -!APAN/URG6=0.0 -! -!APAN/UR22=0.0 -! -!APAN/URG7=0.0 -! -!APAN/RPR4=0.0 -! -!APAN/RPR7=0.0 -! -!APAN/RPG7=0.0 -! -!APAN/URG8=0.0 -! -!APAN/UR19=0.0 -! -!APAN/URG9=0.0 -! -!APAN/AP7=0.0 -! -!APAN/URG10=0.0 -! -!APAN/RPR1=0.0 -! -!APAN/RPR5=0.0 -! -!APAN/RPR8=0.0 -! -!APAN/RP10=0.0 -! -!APAN/RP11=0.0 -! -!APAN/RP16=0.0 -! -!APAN/RPRL=0.0 -! -!APAN/APAN=-K139 - PJAC(:,76,76)=-TPK%K139(:) -! -!APAN/PAN1=0.0 -! -!APAN/PAN2=0.0 -! -!APAN/PAN3=0.0 -! -!APAN/PAN4=0.0 -! -!APAN/PAN6=0.0 -! -!APAN/PAN7=0.0 -! -!APAN/PAN8=0.0 -! -!APAN/PN10=0.0 -! -!APAN/RO2T=0.0 -! -!APAN/RO21=0.0 -! -!APAN/RO25=0.0 -! -!APAN/WC_O3=0.0 -! -!APAN/WC_H2O2=0.0 -! -!APAN/WC_NO=0.0 -! -!APAN/WC_NO2=0.0 -! -!APAN/WC_NO3=0.0 -! -!APAN/WC_N2O5=0.0 -! -!APAN/WC_HONO=0.0 -! -!APAN/WC_HNO3=0.0 -! -!APAN/WC_HNO4=0.0 -! -!APAN/WC_NH3=0.0 -! -!APAN/WC_OH=0.0 -! -!APAN/WC_HO2=0.0 -! -!APAN/WC_CO2=0.0 -! -!APAN/WC_SO2=0.0 -! -!APAN/WC_H2SO4=0.0 -! -!APAN/WC_RO21=0.0 -! -!APAN/WC_RO25=0.0 -! -!APAN/WC_MEOH=0.0 -! -!APAN/WC_ETOH=0.0 -! -!APAN/WC_ALCH=0.0 -! -!APAN/WC_HCHO=0.0 -! -!APAN/WC_ALD2=0.0 -! -!APAN/WC_GLY=0.0 -! -!APAN/WC_MGLY=0.0 -! -!APAN/WC_KETL=0.0 -! -!APAN/WC_ORA1=0.0 -! -!APAN/WC_ORA2=0.0 -! -!APAN/WC_ACID=0.0 -! -!APAN/WC_RP16=0.0 -! -!APAN/WC_UR21=0.0 -! -!APAN/WC_UR28=0.0 -! -!APAN/WC_ACID2=0.0 -! -!APAN/WC_ASO3=0.0 -! -!APAN/WC_ASO4=0.0 -! -!APAN/WC_ASO5=0.0 -! -!APAN/WC_AHSO5=0.0 -! -!APAN/WC_AHMS=0.0 -! -!APAN/WR_O3=0.0 -! -!APAN/WR_H2O2=0.0 -! -!APAN/WR_NO=0.0 -! -!APAN/WR_NO2=0.0 -! -!APAN/WR_NO3=0.0 -! -!APAN/WR_N2O5=0.0 -! -!APAN/WR_HONO=0.0 -! -!APAN/WR_HNO3=0.0 -! -!APAN/WR_HNO4=0.0 -! -!APAN/WR_NH3=0.0 -! -!APAN/WR_OH=0.0 -! -!APAN/WR_HO2=0.0 -! -!APAN/WR_CO2=0.0 -! -!APAN/WR_SO2=0.0 -! -!APAN/WR_H2SO4=0.0 -! -!APAN/WR_RO21=0.0 -! -!APAN/WR_RO25=0.0 -! -!APAN/WR_MEOH=0.0 -! -!APAN/WR_ETOH=0.0 -! -!APAN/WR_ALCH=0.0 -! -!APAN/WR_HCHO=0.0 -! -!APAN/WR_ALD2=0.0 -! -!APAN/WR_GLY=0.0 -! -!APAN/WR_MGLY=0.0 -! -!APAN/WR_KETL=0.0 -! -!APAN/WR_ORA1=0.0 -! -!APAN/WR_ORA2=0.0 -! -!APAN/WR_ACID=0.0 -! -!APAN/WR_RP16=0.0 -! -!APAN/WR_UR21=0.0 -! -!APAN/WR_UR28=0.0 -! -!APAN/WR_ACID2=0.0 -! -!APAN/WR_ASO3=0.0 -! -!APAN/WR_ASO4=0.0 -! -!APAN/WR_ASO5=0.0 -! -!APAN/WR_AHSO5=0.0 -! -!APAN/WR_AHMS=0.0 -! -!PAN1/NO=0.0 -! -!PAN1/NO2=+K126*<RO26> - PJAC(:,77,2)=+TPK%K126(:)*TPK%RO26(:) -! -!PAN1/O3=0.0 -! -!PAN1/HONO=0.0 -! -!PAN1/HNO3=0.0 -! -!PAN1/HNO4=0.0 -! -!PAN1/N2O5=0.0 -! -!PAN1/NO3=0.0 -! -!PAN1/NH3=0.0 -! -!PAN1/HO2=0.0 -! -!PAN1/CO=0.0 -! -!PAN1/H2O2=0.0 -! -!PAN1/SO2=0.0 -! -!PAN1/H2SO4=0.0 -! -!PAN1/OH=0.0 -! -!PAN1/ETHE=0.0 -! -!PAN1/OLEL=0.0 -! -!PAN1/OLEH=0.0 -! -!PAN1/ALKL=0.0 -! -!PAN1/ALKM=0.0 -! -!PAN1/ALKH=0.0 -! -!PAN1/AROH=0.0 -! -!PAN1/AROL=0.0 -! -!PAN1/AROO=0.0 -! -!PAN1/ARAL=0.0 -! -!PAN1/ARAC=0.0 -! -!PAN1/PAH=0.0 -! -!PAN1/HCHO=0.0 -! -!PAN1/ALD2=0.0 -! -!PAN1/KETL=0.0 -! -!PAN1/KETH=0.0 -! -!PAN1/MEOH=0.0 -! -!PAN1/ETOH=0.0 -! -!PAN1/ALCH=0.0 -! -!PAN1/ISOP=0.0 -! -!PAN1/BIOL=0.0 -! -!PAN1/BIOH=0.0 -! -!PAN1/MTBE=0.0 -! -!PAN1/MVK=0.0 -! -!PAN1/MCR=0.0 -! -!PAN1/MGLY=0.0 -! -!PAN1/GLY=0.0 -! -!PAN1/ORA1=0.0 -! -!PAN1/ORA2=0.0 -! -!PAN1/ACID=0.0 -! -!PAN1/UR28=0.0 -! -!PAN1/UR21=0.0 -! -!PAN1/URG2=0.0 -! -!PAN1/UR26=0.0 -! -!PAN1/RPG2=0.0 -! -!PAN1/RP18=0.0 -! -!PAN1/RPG3=0.0 -! -!PAN1/URG4=0.0 -! -!PAN1/UR8=0.0 -! -!PAN1/UR17=0.0 -! -!PAN1/UR7=0.0 -! -!PAN1/RPR3=0.0 -! -!PAN1/URG6=0.0 -! -!PAN1/UR22=0.0 -! -!PAN1/URG7=0.0 -! -!PAN1/RPR4=0.0 -! -!PAN1/RPR7=0.0 -! -!PAN1/RPG7=0.0 -! -!PAN1/URG8=0.0 -! -!PAN1/UR19=0.0 -! -!PAN1/URG9=0.0 -! -!PAN1/AP7=0.0 -! -!PAN1/URG10=0.0 -! -!PAN1/RPR1=0.0 -! -!PAN1/RPR5=0.0 -! -!PAN1/RPR8=0.0 -! -!PAN1/RP10=0.0 -! -!PAN1/RP11=0.0 -! -!PAN1/RP16=0.0 -! -!PAN1/RPRL=0.0 -! -!PAN1/APAN=0.0 -! -!PAN1/PAN1=-K135 - PJAC(:,77,77)=-TPK%K135(:) -! -!PAN1/PAN2=0.0 -! -!PAN1/PAN3=0.0 -! -!PAN1/PAN4=0.0 -! -!PAN1/PAN6=0.0 -! -!PAN1/PAN7=0.0 -! -!PAN1/PAN8=0.0 -! -!PAN1/PN10=0.0 -! -!PAN1/RO2T=0.0 -! -!PAN1/RO21=0.0 -! -!PAN1/RO25=0.0 -! -!PAN1/WC_O3=0.0 -! -!PAN1/WC_H2O2=0.0 -! -!PAN1/WC_NO=0.0 -! -!PAN1/WC_NO2=0.0 -! -!PAN1/WC_NO3=0.0 -! -!PAN1/WC_N2O5=0.0 -! -!PAN1/WC_HONO=0.0 -! -!PAN1/WC_HNO3=0.0 -! -!PAN1/WC_HNO4=0.0 -! -!PAN1/WC_NH3=0.0 -! -!PAN1/WC_OH=0.0 -! -!PAN1/WC_HO2=0.0 -! -!PAN1/WC_CO2=0.0 -! -!PAN1/WC_SO2=0.0 -! -!PAN1/WC_H2SO4=0.0 -! -!PAN1/WC_RO21=0.0 -! -!PAN1/WC_RO25=0.0 -! -!PAN1/WC_MEOH=0.0 -! -!PAN1/WC_ETOH=0.0 -! -!PAN1/WC_ALCH=0.0 -! -!PAN1/WC_HCHO=0.0 -! -!PAN1/WC_ALD2=0.0 -! -!PAN1/WC_GLY=0.0 -! -!PAN1/WC_MGLY=0.0 -! -!PAN1/WC_KETL=0.0 -! -!PAN1/WC_ORA1=0.0 -! -!PAN1/WC_ORA2=0.0 -! -!PAN1/WC_ACID=0.0 -! -!PAN1/WC_RP16=0.0 -! -!PAN1/WC_UR21=0.0 -! -!PAN1/WC_UR28=0.0 -! -!PAN1/WC_ACID2=0.0 -! -!PAN1/WC_ASO3=0.0 -! -!PAN1/WC_ASO4=0.0 -! -!PAN1/WC_ASO5=0.0 -! -!PAN1/WC_AHSO5=0.0 -! -!PAN1/WC_AHMS=0.0 -! -!PAN1/WR_O3=0.0 -! -!PAN1/WR_H2O2=0.0 -! -!PAN1/WR_NO=0.0 -! -!PAN1/WR_NO2=0.0 -! -!PAN1/WR_NO3=0.0 -! -!PAN1/WR_N2O5=0.0 -! -!PAN1/WR_HONO=0.0 -! -!PAN1/WR_HNO3=0.0 -! -!PAN1/WR_HNO4=0.0 -! -!PAN1/WR_NH3=0.0 -! -!PAN1/WR_OH=0.0 -! -!PAN1/WR_HO2=0.0 -! -!PAN1/WR_CO2=0.0 -! -!PAN1/WR_SO2=0.0 -! -!PAN1/WR_H2SO4=0.0 -! -!PAN1/WR_RO21=0.0 -! -!PAN1/WR_RO25=0.0 -! -!PAN1/WR_MEOH=0.0 -! -!PAN1/WR_ETOH=0.0 -! -!PAN1/WR_ALCH=0.0 -! -!PAN1/WR_HCHO=0.0 -! -!PAN1/WR_ALD2=0.0 -! -!PAN1/WR_GLY=0.0 -! -!PAN1/WR_MGLY=0.0 -! -!PAN1/WR_KETL=0.0 -! -!PAN1/WR_ORA1=0.0 -! -!PAN1/WR_ORA2=0.0 -! -!PAN1/WR_ACID=0.0 -! -!PAN1/WR_RP16=0.0 -! -!PAN1/WR_UR21=0.0 -! -!PAN1/WR_UR28=0.0 -! -!PAN1/WR_ACID2=0.0 -! -!PAN1/WR_ASO3=0.0 -! -!PAN1/WR_ASO4=0.0 -! -!PAN1/WR_ASO5=0.0 -! -!PAN1/WR_AHSO5=0.0 -! -!PAN1/WR_AHMS=0.0 -! -!PAN2/NO=0.0 -! -!PAN2/NO2=+K127*<RO28> - PJAC(:,78,2)=+TPK%K127(:)*TPK%RO28(:) -! -!PAN2/O3=0.0 -! -!PAN2/HONO=0.0 -! -!PAN2/HNO3=0.0 -! -!PAN2/HNO4=0.0 -! -!PAN2/N2O5=0.0 -! -!PAN2/NO3=0.0 -! -!PAN2/NH3=0.0 -! -!PAN2/HO2=0.0 -! -!PAN2/CO=0.0 -! -!PAN2/H2O2=0.0 -! -!PAN2/SO2=0.0 -! -!PAN2/H2SO4=0.0 -! -!PAN2/OH=0.0 -! -!PAN2/ETHE=0.0 -! -!PAN2/OLEL=0.0 -! -!PAN2/OLEH=0.0 -! -!PAN2/ALKL=0.0 -! -!PAN2/ALKM=0.0 -! -!PAN2/ALKH=0.0 -! -!PAN2/AROH=0.0 -! -!PAN2/AROL=0.0 -! -!PAN2/AROO=0.0 -! -!PAN2/ARAL=0.0 -! -!PAN2/ARAC=0.0 -! -!PAN2/PAH=0.0 -! -!PAN2/HCHO=0.0 -! -!PAN2/ALD2=0.0 -! -!PAN2/KETL=0.0 -! -!PAN2/KETH=0.0 -! -!PAN2/MEOH=0.0 -! -!PAN2/ETOH=0.0 -! -!PAN2/ALCH=0.0 -! -!PAN2/ISOP=0.0 -! -!PAN2/BIOL=0.0 -! -!PAN2/BIOH=0.0 -! -!PAN2/MTBE=0.0 -! -!PAN2/MVK=0.0 -! -!PAN2/MCR=0.0 -! -!PAN2/MGLY=0.0 -! -!PAN2/GLY=0.0 -! -!PAN2/ORA1=0.0 -! -!PAN2/ORA2=0.0 -! -!PAN2/ACID=0.0 -! -!PAN2/UR28=0.0 -! -!PAN2/UR21=0.0 -! -!PAN2/URG2=0.0 -! -!PAN2/UR26=0.0 -! -!PAN2/RPG2=0.0 -! -!PAN2/RP18=0.0 -! -!PAN2/RPG3=0.0 -! -!PAN2/URG4=0.0 -! -!PAN2/UR8=0.0 -! -!PAN2/UR17=0.0 -! -!PAN2/UR7=0.0 -! -!PAN2/RPR3=0.0 -! -!PAN2/URG6=0.0 -! -!PAN2/UR22=0.0 -! -!PAN2/URG7=0.0 -! -!PAN2/RPR4=0.0 -! -!PAN2/RPR7=0.0 -! -!PAN2/RPG7=0.0 -! -!PAN2/URG8=0.0 -! -!PAN2/UR19=0.0 -! -!PAN2/URG9=0.0 -! -!PAN2/AP7=0.0 -! -!PAN2/URG10=0.0 -! -!PAN2/RPR1=0.0 -! -!PAN2/RPR5=0.0 -! -!PAN2/RPR8=0.0 -! -!PAN2/RP10=0.0 -! -!PAN2/RP11=0.0 -! -!PAN2/RP16=0.0 -! -!PAN2/RPRL=0.0 -! -!PAN2/APAN=0.0 -! -!PAN2/PAN1=0.0 -! -!PAN2/PAN2=-K136 - PJAC(:,78,78)=-TPK%K136(:) -! -!PAN2/PAN3=0.0 -! -!PAN2/PAN4=0.0 -! -!PAN2/PAN6=0.0 -! -!PAN2/PAN7=0.0 -! -!PAN2/PAN8=0.0 -! -!PAN2/PN10=0.0 -! -!PAN2/RO2T=0.0 -! -!PAN2/RO21=0.0 -! -!PAN2/RO25=0.0 -! -!PAN2/WC_O3=0.0 -! -!PAN2/WC_H2O2=0.0 -! -!PAN2/WC_NO=0.0 -! -!PAN2/WC_NO2=0.0 -! -!PAN2/WC_NO3=0.0 -! -!PAN2/WC_N2O5=0.0 -! -!PAN2/WC_HONO=0.0 -! -!PAN2/WC_HNO3=0.0 -! -!PAN2/WC_HNO4=0.0 -! -!PAN2/WC_NH3=0.0 -! -!PAN2/WC_OH=0.0 -! -!PAN2/WC_HO2=0.0 -! -!PAN2/WC_CO2=0.0 -! -!PAN2/WC_SO2=0.0 -! -!PAN2/WC_H2SO4=0.0 -! -!PAN2/WC_RO21=0.0 -! -!PAN2/WC_RO25=0.0 -! -!PAN2/WC_MEOH=0.0 -! -!PAN2/WC_ETOH=0.0 -! -!PAN2/WC_ALCH=0.0 -! -!PAN2/WC_HCHO=0.0 -! -!PAN2/WC_ALD2=0.0 -! -!PAN2/WC_GLY=0.0 -! -!PAN2/WC_MGLY=0.0 -! -!PAN2/WC_KETL=0.0 -! -!PAN2/WC_ORA1=0.0 -! -!PAN2/WC_ORA2=0.0 -! -!PAN2/WC_ACID=0.0 -! -!PAN2/WC_RP16=0.0 -! -!PAN2/WC_UR21=0.0 -! -!PAN2/WC_UR28=0.0 -! -!PAN2/WC_ACID2=0.0 -! -!PAN2/WC_ASO3=0.0 -! -!PAN2/WC_ASO4=0.0 -! -!PAN2/WC_ASO5=0.0 -! -!PAN2/WC_AHSO5=0.0 -! -!PAN2/WC_AHMS=0.0 -! -!PAN2/WR_O3=0.0 -! -!PAN2/WR_H2O2=0.0 -! -!PAN2/WR_NO=0.0 -! -!PAN2/WR_NO2=0.0 -! -!PAN2/WR_NO3=0.0 -! -!PAN2/WR_N2O5=0.0 -! -!PAN2/WR_HONO=0.0 -! -!PAN2/WR_HNO3=0.0 -! -!PAN2/WR_HNO4=0.0 -! -!PAN2/WR_NH3=0.0 -! -!PAN2/WR_OH=0.0 -! -!PAN2/WR_HO2=0.0 -! -!PAN2/WR_CO2=0.0 -! -!PAN2/WR_SO2=0.0 -! -!PAN2/WR_H2SO4=0.0 -! -!PAN2/WR_RO21=0.0 -! -!PAN2/WR_RO25=0.0 -! -!PAN2/WR_MEOH=0.0 -! -!PAN2/WR_ETOH=0.0 -! -!PAN2/WR_ALCH=0.0 -! -!PAN2/WR_HCHO=0.0 -! -!PAN2/WR_ALD2=0.0 -! -!PAN2/WR_GLY=0.0 -! -!PAN2/WR_MGLY=0.0 -! -!PAN2/WR_KETL=0.0 -! -!PAN2/WR_ORA1=0.0 -! -!PAN2/WR_ORA2=0.0 -! -!PAN2/WR_ACID=0.0 -! -!PAN2/WR_RP16=0.0 -! -!PAN2/WR_UR21=0.0 -! -!PAN2/WR_UR28=0.0 -! -!PAN2/WR_ACID2=0.0 -! -!PAN2/WR_ASO3=0.0 -! -!PAN2/WR_ASO4=0.0 -! -!PAN2/WR_ASO5=0.0 -! -!PAN2/WR_AHSO5=0.0 -! -!PAN2/WR_AHMS=0.0 -! -!PAN3/NO=0.0 -! -!PAN3/NO2=+K128*<RO239> - PJAC(:,79,2)=+TPK%K128(:)*TPK%RO239(:) -! -!PAN3/O3=0.0 -! -!PAN3/HONO=0.0 -! -!PAN3/HNO3=0.0 -! -!PAN3/HNO4=0.0 -! -!PAN3/N2O5=0.0 -! -!PAN3/NO3=0.0 -! -!PAN3/NH3=0.0 -! -!PAN3/HO2=0.0 -! -!PAN3/CO=0.0 -! -!PAN3/H2O2=0.0 -! -!PAN3/SO2=0.0 -! -!PAN3/H2SO4=0.0 -! -!PAN3/OH=0.0 -! -!PAN3/ETHE=0.0 -! -!PAN3/OLEL=0.0 -! -!PAN3/OLEH=0.0 -! -!PAN3/ALKL=0.0 -! -!PAN3/ALKM=0.0 -! -!PAN3/ALKH=0.0 -! -!PAN3/AROH=0.0 -! -!PAN3/AROL=0.0 -! -!PAN3/AROO=0.0 -! -!PAN3/ARAL=0.0 -! -!PAN3/ARAC=0.0 -! -!PAN3/PAH=0.0 -! -!PAN3/HCHO=0.0 -! -!PAN3/ALD2=0.0 -! -!PAN3/KETL=0.0 -! -!PAN3/KETH=0.0 -! -!PAN3/MEOH=0.0 -! -!PAN3/ETOH=0.0 -! -!PAN3/ALCH=0.0 -! -!PAN3/ISOP=0.0 -! -!PAN3/BIOL=0.0 -! -!PAN3/BIOH=0.0 -! -!PAN3/MTBE=0.0 -! -!PAN3/MVK=0.0 -! -!PAN3/MCR=0.0 -! -!PAN3/MGLY=0.0 -! -!PAN3/GLY=0.0 -! -!PAN3/ORA1=0.0 -! -!PAN3/ORA2=0.0 -! -!PAN3/ACID=0.0 -! -!PAN3/UR28=0.0 -! -!PAN3/UR21=0.0 -! -!PAN3/URG2=0.0 -! -!PAN3/UR26=0.0 -! -!PAN3/RPG2=0.0 -! -!PAN3/RP18=0.0 -! -!PAN3/RPG3=0.0 -! -!PAN3/URG4=0.0 -! -!PAN3/UR8=0.0 -! -!PAN3/UR17=0.0 -! -!PAN3/UR7=0.0 -! -!PAN3/RPR3=0.0 -! -!PAN3/URG6=0.0 -! -!PAN3/UR22=0.0 -! -!PAN3/URG7=0.0 -! -!PAN3/RPR4=0.0 -! -!PAN3/RPR7=0.0 -! -!PAN3/RPG7=0.0 -! -!PAN3/URG8=0.0 -! -!PAN3/UR19=0.0 -! -!PAN3/URG9=0.0 -! -!PAN3/AP7=0.0 -! -!PAN3/URG10=0.0 -! -!PAN3/RPR1=0.0 -! -!PAN3/RPR5=0.0 -! -!PAN3/RPR8=0.0 -! -!PAN3/RP10=0.0 -! -!PAN3/RP11=0.0 -! -!PAN3/RP16=0.0 -! -!PAN3/RPRL=0.0 -! -!PAN3/APAN=0.0 -! -!PAN3/PAN1=0.0 -! -!PAN3/PAN2=0.0 -! -!PAN3/PAN3=-K137 - PJAC(:,79,79)=-TPK%K137(:) -! -!PAN3/PAN4=0.0 -! -!PAN3/PAN6=0.0 -! -!PAN3/PAN7=0.0 -! -!PAN3/PAN8=0.0 -! -!PAN3/PN10=0.0 -! -!PAN3/RO2T=0.0 -! -!PAN3/RO21=0.0 -! -!PAN3/RO25=0.0 -! -!PAN3/WC_O3=0.0 -! -!PAN3/WC_H2O2=0.0 -! -!PAN3/WC_NO=0.0 -! -!PAN3/WC_NO2=0.0 -! -!PAN3/WC_NO3=0.0 -! -!PAN3/WC_N2O5=0.0 -! -!PAN3/WC_HONO=0.0 -! -!PAN3/WC_HNO3=0.0 -! -!PAN3/WC_HNO4=0.0 -! -!PAN3/WC_NH3=0.0 -! -!PAN3/WC_OH=0.0 -! -!PAN3/WC_HO2=0.0 -! -!PAN3/WC_CO2=0.0 -! -!PAN3/WC_SO2=0.0 -! -!PAN3/WC_H2SO4=0.0 -! -!PAN3/WC_RO21=0.0 -! -!PAN3/WC_RO25=0.0 -! -!PAN3/WC_MEOH=0.0 -! -!PAN3/WC_ETOH=0.0 -! -!PAN3/WC_ALCH=0.0 -! -!PAN3/WC_HCHO=0.0 -! -!PAN3/WC_ALD2=0.0 -! -!PAN3/WC_GLY=0.0 -! -!PAN3/WC_MGLY=0.0 -! -!PAN3/WC_KETL=0.0 -! -!PAN3/WC_ORA1=0.0 -! -!PAN3/WC_ORA2=0.0 -! -!PAN3/WC_ACID=0.0 -! -!PAN3/WC_RP16=0.0 -! -!PAN3/WC_UR21=0.0 -! -!PAN3/WC_UR28=0.0 -! -!PAN3/WC_ACID2=0.0 -! -!PAN3/WC_ASO3=0.0 -! -!PAN3/WC_ASO4=0.0 -! -!PAN3/WC_ASO5=0.0 -! -!PAN3/WC_AHSO5=0.0 -! -!PAN3/WC_AHMS=0.0 -! -!PAN3/WR_O3=0.0 -! -!PAN3/WR_H2O2=0.0 -! -!PAN3/WR_NO=0.0 -! -!PAN3/WR_NO2=0.0 -! -!PAN3/WR_NO3=0.0 -! -!PAN3/WR_N2O5=0.0 -! -!PAN3/WR_HONO=0.0 -! -!PAN3/WR_HNO3=0.0 -! -!PAN3/WR_HNO4=0.0 -! -!PAN3/WR_NH3=0.0 -! -!PAN3/WR_OH=0.0 -! -!PAN3/WR_HO2=0.0 -! -!PAN3/WR_CO2=0.0 -! -!PAN3/WR_SO2=0.0 -! -!PAN3/WR_H2SO4=0.0 -! -!PAN3/WR_RO21=0.0 -! -!PAN3/WR_RO25=0.0 -! -!PAN3/WR_MEOH=0.0 -! -!PAN3/WR_ETOH=0.0 -! -!PAN3/WR_ALCH=0.0 -! -!PAN3/WR_HCHO=0.0 -! -!PAN3/WR_ALD2=0.0 -! -!PAN3/WR_GLY=0.0 -! -!PAN3/WR_MGLY=0.0 -! -!PAN3/WR_KETL=0.0 -! -!PAN3/WR_ORA1=0.0 -! -!PAN3/WR_ORA2=0.0 -! -!PAN3/WR_ACID=0.0 -! -!PAN3/WR_RP16=0.0 -! -!PAN3/WR_UR21=0.0 -! -!PAN3/WR_UR28=0.0 -! -!PAN3/WR_ACID2=0.0 -! -!PAN3/WR_ASO3=0.0 -! -!PAN3/WR_ASO4=0.0 -! -!PAN3/WR_ASO5=0.0 -! -!PAN3/WR_AHSO5=0.0 -! -!PAN3/WR_AHMS=0.0 -! -!PAN4/NO=0.0 -! -!PAN4/NO2=+K129*<RO248> - PJAC(:,80,2)=+TPK%K129(:)*TPK%RO248(:) -! -!PAN4/O3=0.0 -! -!PAN4/HONO=0.0 -! -!PAN4/HNO3=0.0 -! -!PAN4/HNO4=0.0 -! -!PAN4/N2O5=0.0 -! -!PAN4/NO3=0.0 -! -!PAN4/NH3=0.0 -! -!PAN4/HO2=0.0 -! -!PAN4/CO=0.0 -! -!PAN4/H2O2=0.0 -! -!PAN4/SO2=0.0 -! -!PAN4/H2SO4=0.0 -! -!PAN4/OH=0.0 -! -!PAN4/ETHE=0.0 -! -!PAN4/OLEL=0.0 -! -!PAN4/OLEH=0.0 -! -!PAN4/ALKL=0.0 -! -!PAN4/ALKM=0.0 -! -!PAN4/ALKH=0.0 -! -!PAN4/AROH=0.0 -! -!PAN4/AROL=0.0 -! -!PAN4/AROO=0.0 -! -!PAN4/ARAL=0.0 -! -!PAN4/ARAC=0.0 -! -!PAN4/PAH=0.0 -! -!PAN4/HCHO=0.0 -! -!PAN4/ALD2=0.0 -! -!PAN4/KETL=0.0 -! -!PAN4/KETH=0.0 -! -!PAN4/MEOH=0.0 -! -!PAN4/ETOH=0.0 -! -!PAN4/ALCH=0.0 -! -!PAN4/ISOP=0.0 -! -!PAN4/BIOL=0.0 -! -!PAN4/BIOH=0.0 -! -!PAN4/MTBE=0.0 -! -!PAN4/MVK=0.0 -! -!PAN4/MCR=0.0 -! -!PAN4/MGLY=0.0 -! -!PAN4/GLY=0.0 -! -!PAN4/ORA1=0.0 -! -!PAN4/ORA2=0.0 -! -!PAN4/ACID=0.0 -! -!PAN4/UR28=0.0 -! -!PAN4/UR21=0.0 -! -!PAN4/URG2=0.0 -! -!PAN4/UR26=0.0 -! -!PAN4/RPG2=0.0 -! -!PAN4/RP18=0.0 -! -!PAN4/RPG3=0.0 -! -!PAN4/URG4=0.0 -! -!PAN4/UR8=0.0 -! -!PAN4/UR17=0.0 -! -!PAN4/UR7=0.0 -! -!PAN4/RPR3=0.0 -! -!PAN4/URG6=0.0 -! -!PAN4/UR22=0.0 -! -!PAN4/URG7=0.0 -! -!PAN4/RPR4=0.0 -! -!PAN4/RPR7=0.0 -! -!PAN4/RPG7=0.0 -! -!PAN4/URG8=0.0 -! -!PAN4/UR19=0.0 -! -!PAN4/URG9=0.0 -! -!PAN4/AP7=0.0 -! -!PAN4/URG10=0.0 -! -!PAN4/RPR1=0.0 -! -!PAN4/RPR5=0.0 -! -!PAN4/RPR8=0.0 -! -!PAN4/RP10=0.0 -! -!PAN4/RP11=0.0 -! -!PAN4/RP16=0.0 -! -!PAN4/RPRL=0.0 -! -!PAN4/APAN=0.0 -! -!PAN4/PAN1=0.0 -! -!PAN4/PAN2=0.0 -! -!PAN4/PAN3=0.0 -! -!PAN4/PAN4=-K141 - PJAC(:,80,80)=-TPK%K141(:) -! -!PAN4/PAN6=0.0 -! -!PAN4/PAN7=0.0 -! -!PAN4/PAN8=0.0 -! -!PAN4/PN10=0.0 -! -!PAN4/RO2T=0.0 -! -!PAN4/RO21=0.0 -! -!PAN4/RO25=0.0 -! -!PAN4/WC_O3=0.0 -! -!PAN4/WC_H2O2=0.0 -! -!PAN4/WC_NO=0.0 -! -!PAN4/WC_NO2=0.0 -! -!PAN4/WC_NO3=0.0 -! -!PAN4/WC_N2O5=0.0 -! -!PAN4/WC_HONO=0.0 -! -!PAN4/WC_HNO3=0.0 -! -!PAN4/WC_HNO4=0.0 -! -!PAN4/WC_NH3=0.0 -! -!PAN4/WC_OH=0.0 -! -!PAN4/WC_HO2=0.0 -! -!PAN4/WC_CO2=0.0 -! -!PAN4/WC_SO2=0.0 -! -!PAN4/WC_H2SO4=0.0 -! -!PAN4/WC_RO21=0.0 -! -!PAN4/WC_RO25=0.0 -! -!PAN4/WC_MEOH=0.0 -! -!PAN4/WC_ETOH=0.0 -! -!PAN4/WC_ALCH=0.0 -! -!PAN4/WC_HCHO=0.0 -! -!PAN4/WC_ALD2=0.0 -! -!PAN4/WC_GLY=0.0 -! -!PAN4/WC_MGLY=0.0 -! -!PAN4/WC_KETL=0.0 -! -!PAN4/WC_ORA1=0.0 -! -!PAN4/WC_ORA2=0.0 -! -!PAN4/WC_ACID=0.0 -! -!PAN4/WC_RP16=0.0 -! -!PAN4/WC_UR21=0.0 -! -!PAN4/WC_UR28=0.0 -! -!PAN4/WC_ACID2=0.0 -! -!PAN4/WC_ASO3=0.0 -! -!PAN4/WC_ASO4=0.0 -! -!PAN4/WC_ASO5=0.0 -! -!PAN4/WC_AHSO5=0.0 -! -!PAN4/WC_AHMS=0.0 -! -!PAN4/WR_O3=0.0 -! -!PAN4/WR_H2O2=0.0 -! -!PAN4/WR_NO=0.0 -! -!PAN4/WR_NO2=0.0 -! -!PAN4/WR_NO3=0.0 -! -!PAN4/WR_N2O5=0.0 -! -!PAN4/WR_HONO=0.0 -! -!PAN4/WR_HNO3=0.0 -! -!PAN4/WR_HNO4=0.0 -! -!PAN4/WR_NH3=0.0 -! -!PAN4/WR_OH=0.0 -! -!PAN4/WR_HO2=0.0 -! -!PAN4/WR_CO2=0.0 -! -!PAN4/WR_SO2=0.0 -! -!PAN4/WR_H2SO4=0.0 -! -!PAN4/WR_RO21=0.0 -! -!PAN4/WR_RO25=0.0 -! -!PAN4/WR_MEOH=0.0 -! -!PAN4/WR_ETOH=0.0 -! -!PAN4/WR_ALCH=0.0 -! -!PAN4/WR_HCHO=0.0 -! -!PAN4/WR_ALD2=0.0 -! -!PAN4/WR_GLY=0.0 -! -!PAN4/WR_MGLY=0.0 -! -!PAN4/WR_KETL=0.0 -! -!PAN4/WR_ORA1=0.0 -! -!PAN4/WR_ORA2=0.0 -! -!PAN4/WR_ACID=0.0 -! -!PAN4/WR_RP16=0.0 -! -!PAN4/WR_UR21=0.0 -! -!PAN4/WR_UR28=0.0 -! -!PAN4/WR_ACID2=0.0 -! -!PAN4/WR_ASO3=0.0 -! -!PAN4/WR_ASO4=0.0 -! -!PAN4/WR_ASO5=0.0 -! -!PAN4/WR_AHSO5=0.0 -! -!PAN4/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ15 -! -SUBROUTINE SUBJ16 -! -!Indices 81 a 85 -! -! -!PAN6/NO=0.0 -! -!PAN6/NO2=+K131*<RO254> - PJAC(:,81,2)=+TPK%K131(:)*TPK%RO254(:) -! -!PAN6/O3=0.0 -! -!PAN6/HONO=0.0 -! -!PAN6/HNO3=0.0 -! -!PAN6/HNO4=0.0 -! -!PAN6/N2O5=0.0 -! -!PAN6/NO3=0.0 -! -!PAN6/NH3=0.0 -! -!PAN6/HO2=0.0 -! -!PAN6/CO=0.0 -! -!PAN6/H2O2=0.0 -! -!PAN6/SO2=0.0 -! -!PAN6/H2SO4=0.0 -! -!PAN6/OH=0.0 -! -!PAN6/ETHE=0.0 -! -!PAN6/OLEL=0.0 -! -!PAN6/OLEH=0.0 -! -!PAN6/ALKL=0.0 -! -!PAN6/ALKM=0.0 -! -!PAN6/ALKH=0.0 -! -!PAN6/AROH=0.0 -! -!PAN6/AROL=0.0 -! -!PAN6/AROO=0.0 -! -!PAN6/ARAL=0.0 -! -!PAN6/ARAC=0.0 -! -!PAN6/PAH=0.0 -! -!PAN6/HCHO=0.0 -! -!PAN6/ALD2=0.0 -! -!PAN6/KETL=0.0 -! -!PAN6/KETH=0.0 -! -!PAN6/MEOH=0.0 -! -!PAN6/ETOH=0.0 -! -!PAN6/ALCH=0.0 -! -!PAN6/ISOP=0.0 -! -!PAN6/BIOL=0.0 -! -!PAN6/BIOH=0.0 -! -!PAN6/MTBE=0.0 -! -!PAN6/MVK=0.0 -! -!PAN6/MCR=0.0 -! -!PAN6/MGLY=0.0 -! -!PAN6/GLY=0.0 -! -!PAN6/ORA1=0.0 -! -!PAN6/ORA2=0.0 -! -!PAN6/ACID=0.0 -! -!PAN6/UR28=0.0 -! -!PAN6/UR21=0.0 -! -!PAN6/URG2=0.0 -! -!PAN6/UR26=0.0 -! -!PAN6/RPG2=0.0 -! -!PAN6/RP18=0.0 -! -!PAN6/RPG3=0.0 -! -!PAN6/URG4=0.0 -! -!PAN6/UR8=0.0 -! -!PAN6/UR17=0.0 -! -!PAN6/UR7=0.0 -! -!PAN6/RPR3=0.0 -! -!PAN6/URG6=0.0 -! -!PAN6/UR22=0.0 -! -!PAN6/URG7=0.0 -! -!PAN6/RPR4=0.0 -! -!PAN6/RPR7=0.0 -! -!PAN6/RPG7=0.0 -! -!PAN6/URG8=0.0 -! -!PAN6/UR19=0.0 -! -!PAN6/URG9=0.0 -! -!PAN6/AP7=0.0 -! -!PAN6/URG10=0.0 -! -!PAN6/RPR1=0.0 -! -!PAN6/RPR5=0.0 -! -!PAN6/RPR8=0.0 -! -!PAN6/RP10=0.0 -! -!PAN6/RP11=0.0 -! -!PAN6/RP16=0.0 -! -!PAN6/RPRL=0.0 -! -!PAN6/APAN=0.0 -! -!PAN6/PAN1=0.0 -! -!PAN6/PAN2=0.0 -! -!PAN6/PAN3=0.0 -! -!PAN6/PAN4=0.0 -! -!PAN6/PAN6=-K140 - PJAC(:,81,81)=-TPK%K140(:) -! -!PAN6/PAN7=0.0 -! -!PAN6/PAN8=0.0 -! -!PAN6/PN10=0.0 -! -!PAN6/RO2T=0.0 -! -!PAN6/RO21=0.0 -! -!PAN6/RO25=0.0 -! -!PAN6/WC_O3=0.0 -! -!PAN6/WC_H2O2=0.0 -! -!PAN6/WC_NO=0.0 -! -!PAN6/WC_NO2=0.0 -! -!PAN6/WC_NO3=0.0 -! -!PAN6/WC_N2O5=0.0 -! -!PAN6/WC_HONO=0.0 -! -!PAN6/WC_HNO3=0.0 -! -!PAN6/WC_HNO4=0.0 -! -!PAN6/WC_NH3=0.0 -! -!PAN6/WC_OH=0.0 -! -!PAN6/WC_HO2=0.0 -! -!PAN6/WC_CO2=0.0 -! -!PAN6/WC_SO2=0.0 -! -!PAN6/WC_H2SO4=0.0 -! -!PAN6/WC_RO21=0.0 -! -!PAN6/WC_RO25=0.0 -! -!PAN6/WC_MEOH=0.0 -! -!PAN6/WC_ETOH=0.0 -! -!PAN6/WC_ALCH=0.0 -! -!PAN6/WC_HCHO=0.0 -! -!PAN6/WC_ALD2=0.0 -! -!PAN6/WC_GLY=0.0 -! -!PAN6/WC_MGLY=0.0 -! -!PAN6/WC_KETL=0.0 -! -!PAN6/WC_ORA1=0.0 -! -!PAN6/WC_ORA2=0.0 -! -!PAN6/WC_ACID=0.0 -! -!PAN6/WC_RP16=0.0 -! -!PAN6/WC_UR21=0.0 -! -!PAN6/WC_UR28=0.0 -! -!PAN6/WC_ACID2=0.0 -! -!PAN6/WC_ASO3=0.0 -! -!PAN6/WC_ASO4=0.0 -! -!PAN6/WC_ASO5=0.0 -! -!PAN6/WC_AHSO5=0.0 -! -!PAN6/WC_AHMS=0.0 -! -!PAN6/WR_O3=0.0 -! -!PAN6/WR_H2O2=0.0 -! -!PAN6/WR_NO=0.0 -! -!PAN6/WR_NO2=0.0 -! -!PAN6/WR_NO3=0.0 -! -!PAN6/WR_N2O5=0.0 -! -!PAN6/WR_HONO=0.0 -! -!PAN6/WR_HNO3=0.0 -! -!PAN6/WR_HNO4=0.0 -! -!PAN6/WR_NH3=0.0 -! -!PAN6/WR_OH=0.0 -! -!PAN6/WR_HO2=0.0 -! -!PAN6/WR_CO2=0.0 -! -!PAN6/WR_SO2=0.0 -! -!PAN6/WR_H2SO4=0.0 -! -!PAN6/WR_RO21=0.0 -! -!PAN6/WR_RO25=0.0 -! -!PAN6/WR_MEOH=0.0 -! -!PAN6/WR_ETOH=0.0 -! -!PAN6/WR_ALCH=0.0 -! -!PAN6/WR_HCHO=0.0 -! -!PAN6/WR_ALD2=0.0 -! -!PAN6/WR_GLY=0.0 -! -!PAN6/WR_MGLY=0.0 -! -!PAN6/WR_KETL=0.0 -! -!PAN6/WR_ORA1=0.0 -! -!PAN6/WR_ORA2=0.0 -! -!PAN6/WR_ACID=0.0 -! -!PAN6/WR_RP16=0.0 -! -!PAN6/WR_UR21=0.0 -! -!PAN6/WR_UR28=0.0 -! -!PAN6/WR_ACID2=0.0 -! -!PAN6/WR_ASO3=0.0 -! -!PAN6/WR_ASO4=0.0 -! -!PAN6/WR_ASO5=0.0 -! -!PAN6/WR_AHSO5=0.0 -! -!PAN6/WR_AHMS=0.0 -! -!PAN7/NO=0.0 -! -!PAN7/NO2=+K132*<RO255> - PJAC(:,82,2)=+TPK%K132(:)*TPK%RO255(:) -! -!PAN7/O3=0.0 -! -!PAN7/HONO=0.0 -! -!PAN7/HNO3=0.0 -! -!PAN7/HNO4=0.0 -! -!PAN7/N2O5=0.0 -! -!PAN7/NO3=0.0 -! -!PAN7/NH3=0.0 -! -!PAN7/HO2=0.0 -! -!PAN7/CO=0.0 -! -!PAN7/H2O2=0.0 -! -!PAN7/SO2=0.0 -! -!PAN7/H2SO4=0.0 -! -!PAN7/OH=0.0 -! -!PAN7/ETHE=0.0 -! -!PAN7/OLEL=0.0 -! -!PAN7/OLEH=0.0 -! -!PAN7/ALKL=0.0 -! -!PAN7/ALKM=0.0 -! -!PAN7/ALKH=0.0 -! -!PAN7/AROH=0.0 -! -!PAN7/AROL=0.0 -! -!PAN7/AROO=0.0 -! -!PAN7/ARAL=0.0 -! -!PAN7/ARAC=0.0 -! -!PAN7/PAH=0.0 -! -!PAN7/HCHO=0.0 -! -!PAN7/ALD2=0.0 -! -!PAN7/KETL=0.0 -! -!PAN7/KETH=0.0 -! -!PAN7/MEOH=0.0 -! -!PAN7/ETOH=0.0 -! -!PAN7/ALCH=0.0 -! -!PAN7/ISOP=0.0 -! -!PAN7/BIOL=0.0 -! -!PAN7/BIOH=0.0 -! -!PAN7/MTBE=0.0 -! -!PAN7/MVK=0.0 -! -!PAN7/MCR=0.0 -! -!PAN7/MGLY=0.0 -! -!PAN7/GLY=0.0 -! -!PAN7/ORA1=0.0 -! -!PAN7/ORA2=0.0 -! -!PAN7/ACID=0.0 -! -!PAN7/UR28=0.0 -! -!PAN7/UR21=0.0 -! -!PAN7/URG2=0.0 -! -!PAN7/UR26=0.0 -! -!PAN7/RPG2=0.0 -! -!PAN7/RP18=0.0 -! -!PAN7/RPG3=0.0 -! -!PAN7/URG4=0.0 -! -!PAN7/UR8=0.0 -! -!PAN7/UR17=0.0 -! -!PAN7/UR7=0.0 -! -!PAN7/RPR3=0.0 -! -!PAN7/URG6=0.0 -! -!PAN7/UR22=0.0 -! -!PAN7/URG7=0.0 -! -!PAN7/RPR4=0.0 -! -!PAN7/RPR7=0.0 -! -!PAN7/RPG7=0.0 -! -!PAN7/URG8=0.0 -! -!PAN7/UR19=0.0 -! -!PAN7/URG9=0.0 -! -!PAN7/AP7=0.0 -! -!PAN7/URG10=0.0 -! -!PAN7/RPR1=0.0 -! -!PAN7/RPR5=0.0 -! -!PAN7/RPR8=0.0 -! -!PAN7/RP10=0.0 -! -!PAN7/RP11=0.0 -! -!PAN7/RP16=0.0 -! -!PAN7/RPRL=0.0 -! -!PAN7/APAN=0.0 -! -!PAN7/PAN1=0.0 -! -!PAN7/PAN2=0.0 -! -!PAN7/PAN3=0.0 -! -!PAN7/PAN4=0.0 -! -!PAN7/PAN6=0.0 -! -!PAN7/PAN7=-K343 - PJAC(:,82,82)=-TPK%K343(:) -! -!PAN7/PAN8=0.0 -! -!PAN7/PN10=0.0 -! -!PAN7/RO2T=0.0 -! -!PAN7/RO21=0.0 -! -!PAN7/RO25=0.0 -! -!PAN7/WC_O3=0.0 -! -!PAN7/WC_H2O2=0.0 -! -!PAN7/WC_NO=0.0 -! -!PAN7/WC_NO2=0.0 -! -!PAN7/WC_NO3=0.0 -! -!PAN7/WC_N2O5=0.0 -! -!PAN7/WC_HONO=0.0 -! -!PAN7/WC_HNO3=0.0 -! -!PAN7/WC_HNO4=0.0 -! -!PAN7/WC_NH3=0.0 -! -!PAN7/WC_OH=0.0 -! -!PAN7/WC_HO2=0.0 -! -!PAN7/WC_CO2=0.0 -! -!PAN7/WC_SO2=0.0 -! -!PAN7/WC_H2SO4=0.0 -! -!PAN7/WC_RO21=0.0 -! -!PAN7/WC_RO25=0.0 -! -!PAN7/WC_MEOH=0.0 -! -!PAN7/WC_ETOH=0.0 -! -!PAN7/WC_ALCH=0.0 -! -!PAN7/WC_HCHO=0.0 -! -!PAN7/WC_ALD2=0.0 -! -!PAN7/WC_GLY=0.0 -! -!PAN7/WC_MGLY=0.0 -! -!PAN7/WC_KETL=0.0 -! -!PAN7/WC_ORA1=0.0 -! -!PAN7/WC_ORA2=0.0 -! -!PAN7/WC_ACID=0.0 -! -!PAN7/WC_RP16=0.0 -! -!PAN7/WC_UR21=0.0 -! -!PAN7/WC_UR28=0.0 -! -!PAN7/WC_ACID2=0.0 -! -!PAN7/WC_ASO3=0.0 -! -!PAN7/WC_ASO4=0.0 -! -!PAN7/WC_ASO5=0.0 -! -!PAN7/WC_AHSO5=0.0 -! -!PAN7/WC_AHMS=0.0 -! -!PAN7/WR_O3=0.0 -! -!PAN7/WR_H2O2=0.0 -! -!PAN7/WR_NO=0.0 -! -!PAN7/WR_NO2=0.0 -! -!PAN7/WR_NO3=0.0 -! -!PAN7/WR_N2O5=0.0 -! -!PAN7/WR_HONO=0.0 -! -!PAN7/WR_HNO3=0.0 -! -!PAN7/WR_HNO4=0.0 -! -!PAN7/WR_NH3=0.0 -! -!PAN7/WR_OH=0.0 -! -!PAN7/WR_HO2=0.0 -! -!PAN7/WR_CO2=0.0 -! -!PAN7/WR_SO2=0.0 -! -!PAN7/WR_H2SO4=0.0 -! -!PAN7/WR_RO21=0.0 -! -!PAN7/WR_RO25=0.0 -! -!PAN7/WR_MEOH=0.0 -! -!PAN7/WR_ETOH=0.0 -! -!PAN7/WR_ALCH=0.0 -! -!PAN7/WR_HCHO=0.0 -! -!PAN7/WR_ALD2=0.0 -! -!PAN7/WR_GLY=0.0 -! -!PAN7/WR_MGLY=0.0 -! -!PAN7/WR_KETL=0.0 -! -!PAN7/WR_ORA1=0.0 -! -!PAN7/WR_ORA2=0.0 -! -!PAN7/WR_ACID=0.0 -! -!PAN7/WR_RP16=0.0 -! -!PAN7/WR_UR21=0.0 -! -!PAN7/WR_UR28=0.0 -! -!PAN7/WR_ACID2=0.0 -! -!PAN7/WR_ASO3=0.0 -! -!PAN7/WR_ASO4=0.0 -! -!PAN7/WR_ASO5=0.0 -! -!PAN7/WR_AHSO5=0.0 -! -!PAN7/WR_AHMS=0.0 -! -!PAN8/NO=0.0 -! -!PAN8/NO2=+K316*<RO256> - PJAC(:,83,2)=+TPK%K316(:)*TPK%RO256(:) -! -!PAN8/O3=0.0 -! -!PAN8/HONO=0.0 -! -!PAN8/HNO3=0.0 -! -!PAN8/HNO4=0.0 -! -!PAN8/N2O5=0.0 -! -!PAN8/NO3=0.0 -! -!PAN8/NH3=0.0 -! -!PAN8/HO2=0.0 -! -!PAN8/CO=0.0 -! -!PAN8/H2O2=0.0 -! -!PAN8/SO2=0.0 -! -!PAN8/H2SO4=0.0 -! -!PAN8/OH=0.0 -! -!PAN8/ETHE=0.0 -! -!PAN8/OLEL=0.0 -! -!PAN8/OLEH=0.0 -! -!PAN8/ALKL=0.0 -! -!PAN8/ALKM=0.0 -! -!PAN8/ALKH=0.0 -! -!PAN8/AROH=0.0 -! -!PAN8/AROL=0.0 -! -!PAN8/AROO=0.0 -! -!PAN8/ARAL=0.0 -! -!PAN8/ARAC=0.0 -! -!PAN8/PAH=0.0 -! -!PAN8/HCHO=0.0 -! -!PAN8/ALD2=0.0 -! -!PAN8/KETL=0.0 -! -!PAN8/KETH=0.0 -! -!PAN8/MEOH=0.0 -! -!PAN8/ETOH=0.0 -! -!PAN8/ALCH=0.0 -! -!PAN8/ISOP=0.0 -! -!PAN8/BIOL=0.0 -! -!PAN8/BIOH=0.0 -! -!PAN8/MTBE=0.0 -! -!PAN8/MVK=0.0 -! -!PAN8/MCR=0.0 -! -!PAN8/MGLY=0.0 -! -!PAN8/GLY=0.0 -! -!PAN8/ORA1=0.0 -! -!PAN8/ORA2=0.0 -! -!PAN8/ACID=0.0 -! -!PAN8/UR28=0.0 -! -!PAN8/UR21=0.0 -! -!PAN8/URG2=0.0 -! -!PAN8/UR26=0.0 -! -!PAN8/RPG2=0.0 -! -!PAN8/RP18=0.0 -! -!PAN8/RPG3=0.0 -! -!PAN8/URG4=0.0 -! -!PAN8/UR8=0.0 -! -!PAN8/UR17=0.0 -! -!PAN8/UR7=0.0 -! -!PAN8/RPR3=0.0 -! -!PAN8/URG6=0.0 -! -!PAN8/UR22=0.0 -! -!PAN8/URG7=0.0 -! -!PAN8/RPR4=0.0 -! -!PAN8/RPR7=0.0 -! -!PAN8/RPG7=0.0 -! -!PAN8/URG8=0.0 -! -!PAN8/UR19=0.0 -! -!PAN8/URG9=0.0 -! -!PAN8/AP7=0.0 -! -!PAN8/URG10=0.0 -! -!PAN8/RPR1=0.0 -! -!PAN8/RPR5=0.0 -! -!PAN8/RPR8=0.0 -! -!PAN8/RP10=0.0 -! -!PAN8/RP11=0.0 -! -!PAN8/RP16=0.0 -! -!PAN8/RPRL=0.0 -! -!PAN8/APAN=0.0 -! -!PAN8/PAN1=0.0 -! -!PAN8/PAN2=0.0 -! -!PAN8/PAN3=0.0 -! -!PAN8/PAN4=0.0 -! -!PAN8/PAN6=0.0 -! -!PAN8/PAN7=0.0 -! -!PAN8/PAN8=-K317 - PJAC(:,83,83)=-TPK%K317(:) -! -!PAN8/PN10=0.0 -! -!PAN8/RO2T=0.0 -! -!PAN8/RO21=0.0 -! -!PAN8/RO25=0.0 -! -!PAN8/WC_O3=0.0 -! -!PAN8/WC_H2O2=0.0 -! -!PAN8/WC_NO=0.0 -! -!PAN8/WC_NO2=0.0 -! -!PAN8/WC_NO3=0.0 -! -!PAN8/WC_N2O5=0.0 -! -!PAN8/WC_HONO=0.0 -! -!PAN8/WC_HNO3=0.0 -! -!PAN8/WC_HNO4=0.0 -! -!PAN8/WC_NH3=0.0 -! -!PAN8/WC_OH=0.0 -! -!PAN8/WC_HO2=0.0 -! -!PAN8/WC_CO2=0.0 -! -!PAN8/WC_SO2=0.0 -! -!PAN8/WC_H2SO4=0.0 -! -!PAN8/WC_RO21=0.0 -! -!PAN8/WC_RO25=0.0 -! -!PAN8/WC_MEOH=0.0 -! -!PAN8/WC_ETOH=0.0 -! -!PAN8/WC_ALCH=0.0 -! -!PAN8/WC_HCHO=0.0 -! -!PAN8/WC_ALD2=0.0 -! -!PAN8/WC_GLY=0.0 -! -!PAN8/WC_MGLY=0.0 -! -!PAN8/WC_KETL=0.0 -! -!PAN8/WC_ORA1=0.0 -! -!PAN8/WC_ORA2=0.0 -! -!PAN8/WC_ACID=0.0 -! -!PAN8/WC_RP16=0.0 -! -!PAN8/WC_UR21=0.0 -! -!PAN8/WC_UR28=0.0 -! -!PAN8/WC_ACID2=0.0 -! -!PAN8/WC_ASO3=0.0 -! -!PAN8/WC_ASO4=0.0 -! -!PAN8/WC_ASO5=0.0 -! -!PAN8/WC_AHSO5=0.0 -! -!PAN8/WC_AHMS=0.0 -! -!PAN8/WR_O3=0.0 -! -!PAN8/WR_H2O2=0.0 -! -!PAN8/WR_NO=0.0 -! -!PAN8/WR_NO2=0.0 -! -!PAN8/WR_NO3=0.0 -! -!PAN8/WR_N2O5=0.0 -! -!PAN8/WR_HONO=0.0 -! -!PAN8/WR_HNO3=0.0 -! -!PAN8/WR_HNO4=0.0 -! -!PAN8/WR_NH3=0.0 -! -!PAN8/WR_OH=0.0 -! -!PAN8/WR_HO2=0.0 -! -!PAN8/WR_CO2=0.0 -! -!PAN8/WR_SO2=0.0 -! -!PAN8/WR_H2SO4=0.0 -! -!PAN8/WR_RO21=0.0 -! -!PAN8/WR_RO25=0.0 -! -!PAN8/WR_MEOH=0.0 -! -!PAN8/WR_ETOH=0.0 -! -!PAN8/WR_ALCH=0.0 -! -!PAN8/WR_HCHO=0.0 -! -!PAN8/WR_ALD2=0.0 -! -!PAN8/WR_GLY=0.0 -! -!PAN8/WR_MGLY=0.0 -! -!PAN8/WR_KETL=0.0 -! -!PAN8/WR_ORA1=0.0 -! -!PAN8/WR_ORA2=0.0 -! -!PAN8/WR_ACID=0.0 -! -!PAN8/WR_RP16=0.0 -! -!PAN8/WR_UR21=0.0 -! -!PAN8/WR_UR28=0.0 -! -!PAN8/WR_ACID2=0.0 -! -!PAN8/WR_ASO3=0.0 -! -!PAN8/WR_ASO4=0.0 -! -!PAN8/WR_ASO5=0.0 -! -!PAN8/WR_AHSO5=0.0 -! -!PAN8/WR_AHMS=0.0 -! -!PN10/NO=0.0 -! -!PN10/NO2=+K134*<RO258> - PJAC(:,84,2)=+TPK%K134(:)*TPK%RO258(:) -! -!PN10/O3=0.0 -! -!PN10/HONO=0.0 -! -!PN10/HNO3=0.0 -! -!PN10/HNO4=0.0 -! -!PN10/N2O5=0.0 -! -!PN10/NO3=0.0 -! -!PN10/NH3=0.0 -! -!PN10/HO2=0.0 -! -!PN10/CO=0.0 -! -!PN10/H2O2=0.0 -! -!PN10/SO2=0.0 -! -!PN10/H2SO4=0.0 -! -!PN10/OH=0.0 -! -!PN10/ETHE=0.0 -! -!PN10/OLEL=0.0 -! -!PN10/OLEH=0.0 -! -!PN10/ALKL=0.0 -! -!PN10/ALKM=0.0 -! -!PN10/ALKH=0.0 -! -!PN10/AROH=0.0 -! -!PN10/AROL=0.0 -! -!PN10/AROO=0.0 -! -!PN10/ARAL=0.0 -! -!PN10/ARAC=0.0 -! -!PN10/PAH=0.0 -! -!PN10/HCHO=0.0 -! -!PN10/ALD2=0.0 -! -!PN10/KETL=0.0 -! -!PN10/KETH=0.0 -! -!PN10/MEOH=0.0 -! -!PN10/ETOH=0.0 -! -!PN10/ALCH=0.0 -! -!PN10/ISOP=0.0 -! -!PN10/BIOL=0.0 -! -!PN10/BIOH=0.0 -! -!PN10/MTBE=0.0 -! -!PN10/MVK=0.0 -! -!PN10/MCR=0.0 -! -!PN10/MGLY=0.0 -! -!PN10/GLY=0.0 -! -!PN10/ORA1=0.0 -! -!PN10/ORA2=0.0 -! -!PN10/ACID=0.0 -! -!PN10/UR28=0.0 -! -!PN10/UR21=0.0 -! -!PN10/URG2=0.0 -! -!PN10/UR26=0.0 -! -!PN10/RPG2=0.0 -! -!PN10/RP18=0.0 -! -!PN10/RPG3=0.0 -! -!PN10/URG4=0.0 -! -!PN10/UR8=0.0 -! -!PN10/UR17=0.0 -! -!PN10/UR7=0.0 -! -!PN10/RPR3=0.0 -! -!PN10/URG6=0.0 -! -!PN10/UR22=0.0 -! -!PN10/URG7=0.0 -! -!PN10/RPR4=0.0 -! -!PN10/RPR7=0.0 -! -!PN10/RPG7=0.0 -! -!PN10/URG8=0.0 -! -!PN10/UR19=0.0 -! -!PN10/URG9=0.0 -! -!PN10/AP7=0.0 -! -!PN10/URG10=0.0 -! -!PN10/RPR1=0.0 -! -!PN10/RPR5=0.0 -! -!PN10/RPR8=0.0 -! -!PN10/RP10=0.0 -! -!PN10/RP11=0.0 -! -!PN10/RP16=0.0 -! -!PN10/RPRL=0.0 -! -!PN10/APAN=0.0 -! -!PN10/PAN1=0.0 -! -!PN10/PAN2=0.0 -! -!PN10/PAN3=0.0 -! -!PN10/PAN4=0.0 -! -!PN10/PAN6=0.0 -! -!PN10/PAN7=0.0 -! -!PN10/PAN8=0.0 -! -!PN10/PN10=-K138 - PJAC(:,84,84)=-TPK%K138(:) -! -!PN10/RO2T=0.0 -! -!PN10/RO21=0.0 -! -!PN10/RO25=0.0 -! -!PN10/WC_O3=0.0 -! -!PN10/WC_H2O2=0.0 -! -!PN10/WC_NO=0.0 -! -!PN10/WC_NO2=0.0 -! -!PN10/WC_NO3=0.0 -! -!PN10/WC_N2O5=0.0 -! -!PN10/WC_HONO=0.0 -! -!PN10/WC_HNO3=0.0 -! -!PN10/WC_HNO4=0.0 -! -!PN10/WC_NH3=0.0 -! -!PN10/WC_OH=0.0 -! -!PN10/WC_HO2=0.0 -! -!PN10/WC_CO2=0.0 -! -!PN10/WC_SO2=0.0 -! -!PN10/WC_H2SO4=0.0 -! -!PN10/WC_RO21=0.0 -! -!PN10/WC_RO25=0.0 -! -!PN10/WC_MEOH=0.0 -! -!PN10/WC_ETOH=0.0 -! -!PN10/WC_ALCH=0.0 -! -!PN10/WC_HCHO=0.0 -! -!PN10/WC_ALD2=0.0 -! -!PN10/WC_GLY=0.0 -! -!PN10/WC_MGLY=0.0 -! -!PN10/WC_KETL=0.0 -! -!PN10/WC_ORA1=0.0 -! -!PN10/WC_ORA2=0.0 -! -!PN10/WC_ACID=0.0 -! -!PN10/WC_RP16=0.0 -! -!PN10/WC_UR21=0.0 -! -!PN10/WC_UR28=0.0 -! -!PN10/WC_ACID2=0.0 -! -!PN10/WC_ASO3=0.0 -! -!PN10/WC_ASO4=0.0 -! -!PN10/WC_ASO5=0.0 -! -!PN10/WC_AHSO5=0.0 -! -!PN10/WC_AHMS=0.0 -! -!PN10/WR_O3=0.0 -! -!PN10/WR_H2O2=0.0 -! -!PN10/WR_NO=0.0 -! -!PN10/WR_NO2=0.0 -! -!PN10/WR_NO3=0.0 -! -!PN10/WR_N2O5=0.0 -! -!PN10/WR_HONO=0.0 -! -!PN10/WR_HNO3=0.0 -! -!PN10/WR_HNO4=0.0 -! -!PN10/WR_NH3=0.0 -! -!PN10/WR_OH=0.0 -! -!PN10/WR_HO2=0.0 -! -!PN10/WR_CO2=0.0 -! -!PN10/WR_SO2=0.0 -! -!PN10/WR_H2SO4=0.0 -! -!PN10/WR_RO21=0.0 -! -!PN10/WR_RO25=0.0 -! -!PN10/WR_MEOH=0.0 -! -!PN10/WR_ETOH=0.0 -! -!PN10/WR_ALCH=0.0 -! -!PN10/WR_HCHO=0.0 -! -!PN10/WR_ALD2=0.0 -! -!PN10/WR_GLY=0.0 -! -!PN10/WR_MGLY=0.0 -! -!PN10/WR_KETL=0.0 -! -!PN10/WR_ORA1=0.0 -! -!PN10/WR_ORA2=0.0 -! -!PN10/WR_ACID=0.0 -! -!PN10/WR_RP16=0.0 -! -!PN10/WR_UR21=0.0 -! -!PN10/WR_UR28=0.0 -! -!PN10/WR_ACID2=0.0 -! -!PN10/WR_ASO3=0.0 -! -!PN10/WR_ASO4=0.0 -! -!PN10/WR_ASO5=0.0 -! -!PN10/WR_AHSO5=0.0 -! -!PN10/WR_AHMS=0.0 -! -!RO2T/NO=-K095*<RO2T>+K125*<RO26>+K144*<RO27>+K147*<RO28>+K162*<RO213>+K165*<RO -!239>+TPK%CF8*K168*<RO214>+K174*<RO216>+TPK%CF18*K186*<RO220>+K204*<RO226>+TPK% -!CF30*K213*<RO229>+K216*<RO240>+TPK%CF34*K224*<RO232>+K277*<RO248>+K288*<RO250> -!+K297*<RO253>+K309*<RO255>+K331*<RO257>+K344*<RO230> - PJAC(:,85,1)=-TPK%K095(:)*PCONC(:,85)+TPK%K125(:)*TPK%RO26(:)+TPK%K144(:)*TPK%& -&RO27(:)+TPK%K147(:)*TPK%RO28(:)+TPK%K162(:)*TPK%RO213(:)+TPK%K165(:)*TPK%RO239& -&(:)+TPK%CF8*TPK%K168(:)*TPK%RO214(:)+TPK%K174(:)*TPK%RO216(:)+TPK%CF18*TPK%K18& -&6(:)*TPK%RO220(:)+TPK%K204(:)*TPK%RO226(:)+TPK%CF30*TPK%K213(:)*TPK%RO229(:)+T& -&PK%K216(:)*TPK%RO240(:)+TPK%CF34*TPK%K224(:)*TPK%RO232(:)+TPK%K277(:)*TPK%RO24& -&8(:)+TPK%K288(:)*TPK%RO250(:)+TPK%K297(:)*TPK%RO253(:)+TPK%K309(:)*TPK%RO255(:& -&)+TPK%K331(:)*TPK%RO257(:)+TPK%K344(:)*TPK%RO230(:) -! -!RO2T/NO2=0.0 -! -!RO2T/O3=+0.28*K056*<OLEL>+0.366*K066*<ISOP>+0.28*K076*<OLEH>+0.445*K086*<BIOL> -!+0.89*K090*<BIOH>+0.28*K281*<MVK>+0.41*K282*<MCR> - PJAC(:,85,3)=+0.28*TPK%K056(:)*PCONC(:,17)+0.366*TPK%K066(:)*PCONC(:,35)+0.28*& -&TPK%K076(:)*PCONC(:,18)+0.445*TPK%K086(:)*PCONC(:,36)+0.89*TPK%K090(:)*PCONC(:& -&,37)+0.28*TPK%K281(:)*PCONC(:,39)+0.41*TPK%K282(:)*PCONC(:,40) -! -!RO2T/HONO=0.0 -! -!RO2T/HNO3=0.0 -! -!RO2T/HNO4=0.0 -! -!RO2T/N2O5=0.0 -! -!RO2T/NO3=+K050*<ETHE>+K055*<OLEL>+K061*<ALD2>+K065*<ISOP>+K075*<OLEH>+K085*<BI -!OL>+K089*<BIOH>+K275*<MCR>+K278*<MGLY>+K307*<RPR1>+K313*<RPR3>+K327*<RPR8>+K33 -!8*<RP16> - PJAC(:,85,8)=+TPK%K050(:)*PCONC(:,16)+TPK%K055(:)*PCONC(:,17)+TPK%K061(:)*PCON& -&C(:,29)+TPK%K065(:)*PCONC(:,35)+TPK%K075(:)*PCONC(:,18)+TPK%K085(:)*PCONC(:,36& -&)+TPK%K089(:)*PCONC(:,37)+TPK%K275(:)*PCONC(:,40)+TPK%K278(:)*PCONC(:,41)+TPK%& -&K307(:)*PCONC(:,69)+TPK%K313(:)*PCONC(:,57)+TPK%K327(:)*PCONC(:,71)+TPK%K338(:& -&)*PCONC(:,74) -! -!RO2T/NH3=0.0 -! -!RO2T/HO2=-K094*<RO2T>+K146*<RO27>+K164*<RO213>+K170*<RO214>+K176*<RO216>+K188* -!<RO220>+K206*<RO226>+K215*<RO229>+K218*<RO240>+K220*<RO230>+K226*<RO232>+K292* -!<RO251>+K295*<RO252>+2.*K298*<RO253> - PJAC(:,85,10)=-TPK%K094(:)*PCONC(:,85)+TPK%K146(:)*TPK%RO27(:)+TPK%K164(:)*TPK& -&%RO213(:)+TPK%K170(:)*TPK%RO214(:)+TPK%K176(:)*TPK%RO216(:)+TPK%K188(:)*TPK%RO& -&220(:)+TPK%K206(:)*TPK%RO226(:)+TPK%K215(:)*TPK%RO229(:)+TPK%K218(:)*TPK%RO240& -&(:)+TPK%K220(:)*TPK%RO230(:)+TPK%K226(:)*TPK%RO232(:)+TPK%K292(:)*TPK%RO251(:)& -&+TPK%K295(:)*TPK%RO252(:)+2.*TPK%K298(:)*TPK%RO253(:) -! -!RO2T/CO=0.0 -! -!RO2T/H2O2=0.0 -! -!RO2T/SO2=0.0 -! -!RO2T/H2SO4=0.0 -! -!RO2T/OH=+K043*<CH4>+K049*<ETHE>+TPK%CF2*K053*<ETOH>+K054*<OLEL>+K058*<ALKL>+K0 -!60*<ALD2>+K062*<KETL>+K064*<ISOP>+K068*<MTBE>+K069*<ALCH>+K070*<KETH>+0.1*K073 -!*<AROO>+K074*<OLEH>+K078*<ALKM>+0.06*K079*<AROL>+TPK%CF45*K082*<ARAL>+0.1*K083 -!*<ARAC>+K084*<BIOL>+K088*<BIOH>+0.1*K092*<PAH>+K093*<ALKH>+K272*<MVK>+K273*<MC -!R>+K274*<MGLY>+K304*<RPR1>+K305*<RP16>+K312*<RPR3>+K324*<RPR8> - PJAC(:,85,15)=+TPK%K043(:)*TPK%CH4(:)+TPK%K049(:)*PCONC(:,16)+TPK%CF2*TPK%K053& -&(:)*PCONC(:,33)+TPK%K054(:)*PCONC(:,17)+TPK%K058(:)*PCONC(:,19)+TPK%K060(:)*PC& -&ONC(:,29)+TPK%K062(:)*PCONC(:,30)+TPK%K064(:)*PCONC(:,35)+TPK%K068(:)*PCONC(:,& -&38)+TPK%K069(:)*PCONC(:,34)+TPK%K070(:)*PCONC(:,31)+0.1*TPK%K073(:)*PCONC(:,24& -&)+TPK%K074(:)*PCONC(:,18)+TPK%K078(:)*PCONC(:,20)+0.06*TPK%K079(:)*PCONC(:,23)& -&+TPK%CF45*TPK%K082(:)*PCONC(:,25)+0.1*TPK%K083(:)*PCONC(:,26)+TPK%K084(:)*PCON& -&C(:,36)+TPK%K088(:)*PCONC(:,37)+0.1*TPK%K092(:)*PCONC(:,27)+TPK%K093(:)*PCONC(& -&:,21)+TPK%K272(:)*PCONC(:,39)+TPK%K273(:)*PCONC(:,40)+TPK%K274(:)*PCONC(:,41)+& -&TPK%K304(:)*PCONC(:,69)+TPK%K305(:)*PCONC(:,74)+TPK%K312(:)*PCONC(:,57)+TPK%K3& -&24(:)*PCONC(:,71) -! -!RO2T/ETHE=+K049*<OH>+K050*<NO3>+K052*<O> - PJAC(:,85,16)=+TPK%K049(:)*PCONC(:,15)+TPK%K050(:)*PCONC(:,8)+TPK%K052(:)*TPK%& -&O(:) -! -!RO2T/OLEL=+K054*<OH>+K055*<NO3>+0.28*K056*<O3>+0.2*K057*<O> - PJAC(:,85,17)=+TPK%K054(:)*PCONC(:,15)+TPK%K055(:)*PCONC(:,8)+0.28*TPK%K056(:)& -&*PCONC(:,3)+0.2*TPK%K057(:)*TPK%O(:) -! -!RO2T/OLEH=+K074*<OH>+K075*<NO3>+0.28*K076*<O3>+0.2*K077*<O> - PJAC(:,85,18)=+TPK%K074(:)*PCONC(:,15)+TPK%K075(:)*PCONC(:,8)+0.28*TPK%K076(:)& -&*PCONC(:,3)+0.2*TPK%K077(:)*TPK%O(:) -! -!RO2T/ALKL=+K058*<OH> - PJAC(:,85,19)=+TPK%K058(:)*PCONC(:,15) -! -!RO2T/ALKM=+K078*<OH> - PJAC(:,85,20)=+TPK%K078(:)*PCONC(:,15) -! -!RO2T/ALKH=+K093*<OH> - PJAC(:,85,21)=+TPK%K093(:)*PCONC(:,15) -! -!RO2T/AROH=0.0 -! -!RO2T/AROL=+0.06*K079*<OH> - PJAC(:,85,23)=+0.06*TPK%K079(:)*PCONC(:,15) -! -!RO2T/AROO=+0.1*K073*<OH> - PJAC(:,85,24)=+0.1*TPK%K073(:)*PCONC(:,15) -! -!RO2T/ARAL=+TPK%CF45*K082*<OH> - PJAC(:,85,25)=+TPK%CF45*TPK%K082(:)*PCONC(:,15) -! -!RO2T/ARAC=+0.1*K083*<OH> - PJAC(:,85,26)=+0.1*TPK%K083(:)*PCONC(:,15) -! -!RO2T/PAH=+0.1*K092*<OH> - PJAC(:,85,27)=+0.1*TPK%K092(:)*PCONC(:,15) -! -!RO2T/HCHO=0.0 -! -!RO2T/ALD2=+K059+K060*<OH>+K061*<NO3> - PJAC(:,85,29)=+TPK%K059(:)+TPK%K060(:)*PCONC(:,15)+TPK%K061(:)*PCONC(:,8) -! -!RO2T/KETL=+K062*<OH>+2.*K063 - PJAC(:,85,30)=+TPK%K062(:)*PCONC(:,15)+2.*TPK%K063(:) -! -!RO2T/KETH=+K070*<OH>+2.*K071 - PJAC(:,85,31)=+TPK%K070(:)*PCONC(:,15)+2.*TPK%K071(:) -! -!RO2T/MEOH=0.0 -! -!RO2T/ETOH=+TPK%CF2*K053*<OH> - PJAC(:,85,33)=+TPK%CF2*TPK%K053(:)*PCONC(:,15) -! -!RO2T/ALCH=+K069*<OH> - PJAC(:,85,34)=+TPK%K069(:)*PCONC(:,15) -! -!RO2T/ISOP=+K064*<OH>+K065*<NO3>+0.366*K066*<O3> - PJAC(:,85,35)=+TPK%K064(:)*PCONC(:,15)+TPK%K065(:)*PCONC(:,8)+0.366*TPK%K066(:& -&)*PCONC(:,3) -! -!RO2T/BIOL=+K084*<OH>+K085*<NO3>+0.445*K086*<O3> - PJAC(:,85,36)=+TPK%K084(:)*PCONC(:,15)+TPK%K085(:)*PCONC(:,8)+0.445*TPK%K086(:& -&)*PCONC(:,3) -! -!RO2T/BIOH=+K088*<OH>+K089*<NO3>+0.89*K090*<O3> - PJAC(:,85,37)=+TPK%K088(:)*PCONC(:,15)+TPK%K089(:)*PCONC(:,8)+0.89*TPK%K090(:)& -&*PCONC(:,3) -! -!RO2T/MTBE=+K068*<OH> - PJAC(:,85,38)=+TPK%K068(:)*PCONC(:,15) -! -!RO2T/MVK=+K272*<OH>+0.28*K281*<O3>+0.3*K283*<O> - PJAC(:,85,39)=+TPK%K272(:)*PCONC(:,15)+0.28*TPK%K281(:)*PCONC(:,3)+0.3*TPK%K28& -&3(:)*TPK%O(:) -! -!RO2T/MCR=+K273*<OH>+K275*<NO3>+0.41*K282*<O3>+0.15*K284*<O> - PJAC(:,85,40)=+TPK%K273(:)*PCONC(:,15)+TPK%K275(:)*PCONC(:,8)+0.41*TPK%K282(:)& -&*PCONC(:,3)+0.15*TPK%K284(:)*TPK%O(:) -! -!RO2T/MGLY=+K274*<OH>+K276+K278*<NO3> - PJAC(:,85,41)=+TPK%K274(:)*PCONC(:,15)+TPK%K276(:)+TPK%K278(:)*PCONC(:,8) -! -!RO2T/GLY=0.0 -! -!RO2T/ORA1=0.0 -! -!RO2T/ORA2=0.0 -! -!RO2T/ACID=0.0 -! -!RO2T/UR28=0.0 -! -!RO2T/UR21=0.0 -! -!RO2T/URG2=0.0 -! -!RO2T/UR26=0.0 -! -!RO2T/RPG2=0.0 -! -!RO2T/RP18=0.0 -! -!RO2T/RPG3=0.0 -! -!RO2T/URG4=0.0 -! -!RO2T/UR8=0.0 -! -!RO2T/UR17=0.0 -! -!RO2T/UR7=0.0 -! -!RO2T/RPR3=+K312*<OH>+K313*<NO3> - PJAC(:,85,57)=+TPK%K312(:)*PCONC(:,15)+TPK%K313(:)*PCONC(:,8) -! -!RO2T/URG6=0.0 -! -!RO2T/UR22=0.0 -! -!RO2T/URG7=0.0 -! -!RO2T/RPR4=0.0 -! -!RO2T/RPR7=0.0 -! -!RO2T/RPG7=0.0 -! -!RO2T/URG8=0.0 -! -!RO2T/UR19=0.0 -! -!RO2T/URG9=0.0 -! -!RO2T/AP7=0.0 -! -!RO2T/URG10=0.0 -! -!RO2T/RPR1=+K304*<OH>+K307*<NO3>+K308 - PJAC(:,85,69)=+TPK%K304(:)*PCONC(:,15)+TPK%K307(:)*PCONC(:,8)+TPK%K308(:) -! -!RO2T/RPR5=0.0 -! -!RO2T/RPR8=+K324*<OH>+K327*<NO3>+K329+K330 - PJAC(:,85,71)=+TPK%K324(:)*PCONC(:,15)+TPK%K327(:)*PCONC(:,8)+TPK%K329(:)+TPK%& -&K330(:) -! -!RO2T/RP10=0.0 -! -!RO2T/RP11=0.0 -! -!RO2T/RP16=+K305*<OH>+K338*<NO3> - PJAC(:,85,74)=+TPK%K305(:)*PCONC(:,15)+TPK%K338(:)*PCONC(:,8) -! -!RO2T/RPRL=0.0 -! -!RO2T/APAN=+1.0000000*K139 - PJAC(:,85,76)=+1.0000000*TPK%K139(:) -! -!RO2T/PAN1=+K135 - PJAC(:,85,77)=+TPK%K135(:) -! -!RO2T/PAN2=+K136 - PJAC(:,85,78)=+TPK%K136(:) -! -!RO2T/PAN3=+K137 - PJAC(:,85,79)=+TPK%K137(:) -! -!RO2T/PAN4=+K141 - PJAC(:,85,80)=+TPK%K141(:) -! -!RO2T/PAN6=+K140 - PJAC(:,85,81)=+TPK%K140(:) -! -!RO2T/PAN7=+K343 - PJAC(:,85,82)=+TPK%K343(:) -! -!RO2T/PAN8=+K317 - PJAC(:,85,83)=+TPK%K317(:) -! -!RO2T/PN10=+K138 - PJAC(:,85,84)=+TPK%K138(:) -! -!RO2T/RO2T=-K094*<HO2>-K095*<NO>+K096*<RO2T>+K096*<RO2T>-K096*<RO2T>-K096*<RO2T -!>-K096*<RO2T>-K096*<RO2T>+K111*<RO21>-K111*<RO21>+K114*<RO22>-K114*<RO22>+K117 -!*<RO23>-K117*<RO23>+K120*<RO24>-K120*<RO24>+K123*<RO25>-K123*<RO25>+2.*K143*<R -!O26>-K143*<RO26>+2.*K145*<RO27>-K145*<RO27>+2.*K149*<RO28>-K149*<RO28>+K151*<R -!O29>-K151*<RO29>+K154*<RO210>-K154*<RO210>+K157*<RO211>-K157*<RO211>+K160*<RO2 -!12>-K160*<RO212>+2.*K163*<RO213>-K163*<RO213>+2.*K167*<RO239>-K167*<RO239>+2.* -!K169*<RO214>-K169*<RO214>+K172*<RO215>-K172*<RO215>+2.*K175*<RO216>-K175*<RO21 -!6>+K178*<RO217>-K178*<RO217>+K181*<RO218>-K181*<RO218>+K184*<RO219>-K184*<RO21 -!9>+2.*K187*<RO220>-K187*<RO220>+K190*<RO221>-K190*<RO221>+K193*<RO222>-K193*<R -!O222>+K196*<RO223>-K196*<RO223>+K199*<RO224>-K199*<RO224>+K202*<RO225>-K202*<R -!O225>+2.*K205*<RO226>-K205*<RO226>+K208*<RO227>-K208*<RO227>+K211*<RO228>-K211 -!*<RO228>+2.*K214*<RO229>-K214*<RO229>+2.*K217*<RO240>-K217*<RO240>+2.*K219*<RO -!230>-K219*<RO230>+K222*<RO231>-K222*<RO231>+2.*K225*<RO232>-K225*<RO232>+K228* -!<RO241>-K228*<RO241>+K232*<RO233>-K232*<RO233>+K235*<RO242>-K235*<RO242>+K239* -!<RO234>-K239*<RO234>+K242*<RO243>-K242*<RO243>+K246*<RO235>-K246*<RO235>+K249* -!<RO244>-K249*<RO244>+K253*<RO236>-K253*<RO236>+K256*<RO245>-K256*<RO245>+K260* -!<RO237>-K260*<RO237>+K263*<RO246>-K263*<RO246>+K267*<RO238>-K267*<RO238>+K270* -!<RO247>-K270*<RO247>+2.*K280*<RO248>-K280*<RO248>+K286*<RO249>-K286*<RO249>+2. -!*K290*<RO250>-K290*<RO250>-K293*<RO251>-K296*<RO252>+K299*<RO253>-K299*<RO253> -!+K302*<RO254>-K302*<RO254>+2.*K311*<RO255>-K311*<RO255>+K319*<RO256>-K319*<RO2 -!56>+2.*K333*<RO257>-K333*<RO257>+K342*<RO258>-K342*<RO258> - PJAC(:,85,85)=-TPK%K094(:)*PCONC(:,10)-TPK%K095(:)*PCONC(:,1)+TPK%K096(:)*PCON& -&C(:,85)+TPK%K096(:)*PCONC(:,85)-TPK%K096(:)*PCONC(:,85)-TPK%K096(:)*PCONC(:,85& -&)-TPK%K096(:)*PCONC(:,85)-TPK%K096(:)*PCONC(:,85)+TPK%K111(:)*PCONC(:,86)-TPK%& -&K111(:)*PCONC(:,86)+TPK%K114(:)*TPK%RO22(:)-TPK%K114(:)*TPK%RO22(:)+TPK%K117(:& -&)*TPK%RO23(:)-TPK%K117(:)*TPK%RO23(:)+TPK%K120(:)*TPK%RO24(:)-TPK%K120(:)*TPK%& -&RO24(:)+TPK%K123(:)*PCONC(:,87)-TPK%K123(:)*PCONC(:,87)+2.*TPK%K143(:)*TPK%RO2& -&6(:)-TPK%K143(:)*TPK%RO26(:)+2.*TPK%K145(:)*TPK%RO27(:)-TPK%K145(:)*TPK%RO27(:& -&)+2.*TPK%K149(:)*TPK%RO28(:)-TPK%K149(:)*TPK%RO28(:)+TPK%K151(:)*TPK%RO29(:)-T& -&PK%K151(:)*TPK%RO29(:)+TPK%K154(:)*TPK%RO210(:)-TPK%K154(:)*TPK%RO210(:)+TPK%K& -&157(:)*TPK%RO211(:)-TPK%K157(:)*TPK%RO211(:)+TPK%K160(:)*TPK%RO212(:)-TPK%K160& -&(:)*TPK%RO212(:)+2.*TPK%K163(:)*TPK%RO213(:)-TPK%K163(:)*TPK%RO213(:)+2.*TPK%K& -&167(:)*TPK%RO239(:)-TPK%K167(:)*TPK%RO239(:)+2.*TPK%K169(:)*TPK%RO214(:)-TPK%K& -&169(:)*TPK%RO214(:)+TPK%K172(:)*TPK%RO215(:)-TPK%K172(:)*TPK%RO215(:)+2.*TPK%K& -&175(:)*TPK%RO216(:)-TPK%K175(:)*TPK%RO216(:)+TPK%K178(:)*TPK%RO217(:)-TPK%K178& -&(:)*TPK%RO217(:)+TPK%K181(:)*TPK%RO218(:)-TPK%K181(:)*TPK%RO218(:)+TPK%K184(:)& -&*TPK%RO219(:)-TPK%K184(:)*TPK%RO219(:)+2.*TPK%K187(:)*TPK%RO220(:)-TPK%K187(:)& -&*TPK%RO220(:)+TPK%K190(:)*TPK%RO221(:)-TPK%K190(:)*TPK%RO221(:)+TPK%K193(:)*TP& -&K%RO222(:)-TPK%K193(:)*TPK%RO222(:)+TPK%K196(:)*TPK%RO223(:)-TPK%K196(:)*TPK%R& -&O223(:)+TPK%K199(:)*TPK%RO224(:)-TPK%K199(:)*TPK%RO224(:)+TPK%K202(:)*TPK%RO22& -&5(:)-TPK%K202(:)*TPK%RO225(:)+2.*TPK%K205(:)*TPK%RO226(:)-TPK%K205(:)*TPK%RO22& -&6(:)+TPK%K208(:)*TPK%RO227(:)-TPK%K208(:)*TPK%RO227(:)+TPK%K211(:)*TPK%RO228(:& -&)-TPK%K211(:)*TPK%RO228(:)+2.*TPK%K214(:)*TPK%RO229(:)-TPK%K214(:)*TPK%RO229(:& -&)+2.*TPK%K217(:)*TPK%RO240(:)-TPK%K217(:)*TPK%RO240(:)+2.*TPK%K219(:)*TPK%RO23& -&0(:)-TPK%K219(:)*TPK%RO230(:)+TPK%K222(:)*TPK%RO231(:)-TPK%K222(:)*TPK%RO231(:& -&)+2.*TPK%K225(:)*TPK%RO232(:)-TPK%K225(:)*TPK%RO232(:)+TPK%K228(:)*TPK%RO241(:& -&)-TPK%K228(:)*TPK%RO241(:)+TPK%K232(:)*TPK%RO233(:)-TPK%K232(:)*TPK%RO233(:)+T& -&PK%K235(:)*TPK%RO242(:)-TPK%K235(:)*TPK%RO242(:)+TPK%K239(:)*TPK%RO234(:)-TPK%& -&K239(:)*TPK%RO234(:)+TPK%K242(:)*TPK%RO243(:)-TPK%K242(:)*TPK%RO243(:)+TPK%K24& -&6(:)*TPK%RO235(:)-TPK%K246(:)*TPK%RO235(:)+TPK%K249(:)*TPK%RO244(:)-TPK%K249(:& -&)*TPK%RO244(:)+TPK%K253(:)*TPK%RO236(:)-TPK%K253(:)*TPK%RO236(:)+TPK%K256(:)*T& -&PK%RO245(:)-TPK%K256(:)*TPK%RO245(:)+TPK%K260(:)*TPK%RO237(:)-TPK%K260(:)*TPK%& -&RO237(:)+TPK%K263(:)*TPK%RO246(:)-TPK%K263(:)*TPK%RO246(:)+TPK%K267(:)*TPK%RO2& -&38(:)-TPK%K267(:)*TPK%RO238(:)+TPK%K270(:)*TPK%RO247(:)-TPK%K270(:)*TPK%RO247(& -&:)+2.*TPK%K280(:)*TPK%RO248(:)-TPK%K280(:)*TPK%RO248(:)+TPK%K286(:)*TPK%RO249(& -&:)-TPK%K286(:)*TPK%RO249(:)+2.*TPK%K290(:)*TPK%RO250(:)-TPK%K290(:)*TPK%RO250(& -&:)-TPK%K293(:)*TPK%RO251(:)-TPK%K296(:)*TPK%RO252(:)+TPK%K299(:)*TPK%RO253(:)-& -&TPK%K299(:)*TPK%RO253(:)+TPK%K302(:)*TPK%RO254(:)-TPK%K302(:)*TPK%RO254(:)+2.*& -&TPK%K311(:)*TPK%RO255(:)-TPK%K311(:)*TPK%RO255(:)+TPK%K319(:)*TPK%RO256(:)-TPK& -&%K319(:)*TPK%RO256(:)+2.*TPK%K333(:)*TPK%RO257(:)-TPK%K333(:)*TPK%RO257(:)+TPK& -&%K342(:)*TPK%RO258(:)-TPK%K342(:)*TPK%RO258(:) -! -!RO2T/RO21=+K111*<RO2T>-K111*<RO2T> - PJAC(:,85,86)=+TPK%K111(:)*PCONC(:,85)-TPK%K111(:)*PCONC(:,85) -! -!RO2T/RO25=+K123*<RO2T>-K123*<RO2T> - PJAC(:,85,87)=+TPK%K123(:)*PCONC(:,85)-TPK%K123(:)*PCONC(:,85) -! -!RO2T/WC_O3=0.0 -! -!RO2T/WC_H2O2=0.0 -! -!RO2T/WC_NO=0.0 -! -!RO2T/WC_NO2=0.0 -! -!RO2T/WC_NO3=0.0 -! -!RO2T/WC_N2O5=0.0 -! -!RO2T/WC_HONO=0.0 -! -!RO2T/WC_HNO3=0.0 -! -!RO2T/WC_HNO4=0.0 -! -!RO2T/WC_NH3=0.0 -! -!RO2T/WC_OH=0.0 -! -!RO2T/WC_HO2=0.0 -! -!RO2T/WC_CO2=0.0 -! -!RO2T/WC_SO2=0.0 -! -!RO2T/WC_H2SO4=0.0 -! -!RO2T/WC_RO21=0.0 -! -!RO2T/WC_RO25=0.0 -! -!RO2T/WC_MEOH=0.0 -! -!RO2T/WC_ETOH=0.0 -! -!RO2T/WC_ALCH=0.0 -! -!RO2T/WC_HCHO=0.0 -! -!RO2T/WC_ALD2=0.0 -! -!RO2T/WC_GLY=0.0 -! -!RO2T/WC_MGLY=0.0 -! -!RO2T/WC_KETL=0.0 -! -!RO2T/WC_ORA1=0.0 -! -!RO2T/WC_ORA2=0.0 -! -!RO2T/WC_ACID=0.0 -! -!RO2T/WC_RP16=0.0 -! -!RO2T/WC_UR21=0.0 -! -!RO2T/WC_UR28=0.0 -! -!RO2T/WC_ACID2=0.0 -! -!RO2T/WC_ASO3=0.0 -! -!RO2T/WC_ASO4=0.0 -! -!RO2T/WC_ASO5=0.0 -! -!RO2T/WC_AHSO5=0.0 -! -!RO2T/WC_AHMS=0.0 -! -!RO2T/WR_O3=0.0 -! -!RO2T/WR_H2O2=0.0 -! -!RO2T/WR_NO=0.0 -! -!RO2T/WR_NO2=0.0 -! -!RO2T/WR_NO3=0.0 -! -!RO2T/WR_N2O5=0.0 -! -!RO2T/WR_HONO=0.0 -! -!RO2T/WR_HNO3=0.0 -! -!RO2T/WR_HNO4=0.0 -! -!RO2T/WR_NH3=0.0 -! -!RO2T/WR_OH=0.0 -! -!RO2T/WR_HO2=0.0 -! -!RO2T/WR_CO2=0.0 -! -!RO2T/WR_SO2=0.0 -! -!RO2T/WR_H2SO4=0.0 -! -!RO2T/WR_RO21=0.0 -! -!RO2T/WR_RO25=0.0 -! -!RO2T/WR_MEOH=0.0 -! -!RO2T/WR_ETOH=0.0 -! -!RO2T/WR_ALCH=0.0 -! -!RO2T/WR_HCHO=0.0 -! -!RO2T/WR_ALD2=0.0 -! -!RO2T/WR_GLY=0.0 -! -!RO2T/WR_MGLY=0.0 -! -!RO2T/WR_KETL=0.0 -! -!RO2T/WR_ORA1=0.0 -! -!RO2T/WR_ORA2=0.0 -! -!RO2T/WR_ACID=0.0 -! -!RO2T/WR_RP16=0.0 -! -!RO2T/WR_UR21=0.0 -! -!RO2T/WR_UR28=0.0 -! -!RO2T/WR_ACID2=0.0 -! -!RO2T/WR_ASO3=0.0 -! -!RO2T/WR_ASO4=0.0 -! -!RO2T/WR_ASO5=0.0 -! -!RO2T/WR_AHSO5=0.0 -! -!RO2T/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ16 -! -SUBROUTINE SUBJ17 -! -!Indices 86 a 90 -! -! -!RO21/NO=-K110*<RO21>+K147*<RO28> - PJAC(:,86,1)=-TPK%K110(:)*PCONC(:,86)+TPK%K147(:)*TPK%RO28(:) -! -!RO21/NO2=0.0 -! -!RO21/O3=0.0 -! -!RO21/HONO=0.0 -! -!RO21/HNO3=0.0 -! -!RO21/HNO4=0.0 -! -!RO21/N2O5=0.0 -! -!RO21/NO3=0.0 -! -!RO21/NH3=0.0 -! -!RO21/HO2=-K112*<RO21> - PJAC(:,86,10)=-TPK%K112(:)*PCONC(:,86) -! -!RO21/CO=0.0 -! -!RO21/H2O2=0.0 -! -!RO21/SO2=0.0 -! -!RO21/H2SO4=0.0 -! -!RO21/OH=+K043*<CH4> - PJAC(:,86,15)=+TPK%K043(:)*TPK%CH4(:) -! -!RO21/ETHE=+0.6*K052*<O> - PJAC(:,86,16)=+0.6*TPK%K052(:)*TPK%O(:) -! -!RO21/OLEL=0.0 -! -!RO21/OLEH=0.0 -! -!RO21/ALKL=0.0 -! -!RO21/ALKM=0.0 -! -!RO21/ALKH=0.0 -! -!RO21/AROH=0.0 -! -!RO21/AROL=0.0 -! -!RO21/AROO=0.0 -! -!RO21/ARAL=0.0 -! -!RO21/ARAC=0.0 -! -!RO21/PAH=0.0 -! -!RO21/HCHO=0.0 -! -!RO21/ALD2=0.0 -! -!RO21/KETL=0.0 -! -!RO21/KETH=0.0 -! -!RO21/MEOH=0.0 -! -!RO21/ETOH=0.0 -! -!RO21/ALCH=0.0 -! -!RO21/ISOP=0.0 -! -!RO21/BIOL=0.0 -! -!RO21/BIOH=0.0 -! -!RO21/MTBE=0.0 -! -!RO21/MVK=0.0 -! -!RO21/MCR=0.0 -! -!RO21/MGLY=0.0 -! -!RO21/GLY=0.0 -! -!RO21/ORA1=0.0 -! -!RO21/ORA2=0.0 -! -!RO21/ACID=0.0 -! -!RO21/UR28=0.0 -! -!RO21/UR21=0.0 -! -!RO21/URG2=0.0 -! -!RO21/UR26=0.0 -! -!RO21/RPG2=0.0 -! -!RO21/RP18=0.0 -! -!RO21/RPG3=0.0 -! -!RO21/URG4=0.0 -! -!RO21/UR8=0.0 -! -!RO21/UR17=0.0 -! -!RO21/UR7=0.0 -! -!RO21/RPR3=0.0 -! -!RO21/URG6=0.0 -! -!RO21/UR22=0.0 -! -!RO21/URG7=0.0 -! -!RO21/RPR4=0.0 -! -!RO21/RPR7=0.0 -! -!RO21/RPG7=0.0 -! -!RO21/URG8=0.0 -! -!RO21/UR19=0.0 -! -!RO21/URG9=0.0 -! -!RO21/AP7=0.0 -! -!RO21/URG10=0.0 -! -!RO21/RPR1=0.0 -! -!RO21/RPR5=0.0 -! -!RO21/RPR8=0.0 -! -!RO21/RP10=0.0 -! -!RO21/RP11=0.0 -! -!RO21/RP16=0.0 -! -!RO21/RPRL=0.0 -! -!RO21/APAN=0.0 -! -!RO21/PAN1=0.0 -! -!RO21/PAN2=0.0 -! -!RO21/PAN3=0.0 -! -!RO21/PAN4=0.0 -! -!RO21/PAN6=0.0 -! -!RO21/PAN7=0.0 -! -!RO21/PAN8=0.0 -! -!RO21/PN10=0.0 -! -!RO21/RO2T=-K111*<RO21>+K149*<RO28> - PJAC(:,86,85)=-TPK%K111(:)*PCONC(:,86)+TPK%K149(:)*TPK%RO28(:) -! -!RO21/RO21=-K110*<NO>-K111*<RO2T>-K112*<HO2>-KTC16-KTR16 - PJAC(:,86,86)=-TPK%K110(:)*PCONC(:,1)-TPK%K111(:)*PCONC(:,85)-TPK%K112(:)*PCON& -&C(:,10)-TPK%KTC16(:)-TPK%KTR16(:) -! -!RO21/RO25=0.0 -! -!RO21/WC_O3=0.0 -! -!RO21/WC_H2O2=0.0 -! -!RO21/WC_NO=0.0 -! -!RO21/WC_NO2=0.0 -! -!RO21/WC_NO3=0.0 -! -!RO21/WC_N2O5=0.0 -! -!RO21/WC_HONO=0.0 -! -!RO21/WC_HNO3=0.0 -! -!RO21/WC_HNO4=0.0 -! -!RO21/WC_NH3=0.0 -! -!RO21/WC_OH=0.0 -! -!RO21/WC_HO2=0.0 -! -!RO21/WC_CO2=0.0 -! -!RO21/WC_SO2=0.0 -! -!RO21/WC_H2SO4=0.0 -! -!RO21/WC_RO21=+KTC47 - PJAC(:,86,103)=+TPK%KTC47(:) -! -!RO21/WC_RO25=0.0 -! -!RO21/WC_MEOH=0.0 -! -!RO21/WC_ETOH=0.0 -! -!RO21/WC_ALCH=0.0 -! -!RO21/WC_HCHO=0.0 -! -!RO21/WC_ALD2=0.0 -! -!RO21/WC_GLY=0.0 -! -!RO21/WC_MGLY=0.0 -! -!RO21/WC_KETL=0.0 -! -!RO21/WC_ORA1=0.0 -! -!RO21/WC_ORA2=0.0 -! -!RO21/WC_ACID=0.0 -! -!RO21/WC_RP16=0.0 -! -!RO21/WC_UR21=0.0 -! -!RO21/WC_UR28=0.0 -! -!RO21/WC_ACID2=0.0 -! -!RO21/WC_ASO3=0.0 -! -!RO21/WC_ASO4=0.0 -! -!RO21/WC_ASO5=0.0 -! -!RO21/WC_AHSO5=0.0 -! -!RO21/WC_AHMS=0.0 -! -!RO21/WR_O3=0.0 -! -!RO21/WR_H2O2=0.0 -! -!RO21/WR_NO=0.0 -! -!RO21/WR_NO2=0.0 -! -!RO21/WR_NO3=0.0 -! -!RO21/WR_N2O5=0.0 -! -!RO21/WR_HONO=0.0 -! -!RO21/WR_HNO3=0.0 -! -!RO21/WR_HNO4=0.0 -! -!RO21/WR_NH3=0.0 -! -!RO21/WR_OH=0.0 -! -!RO21/WR_HO2=0.0 -! -!RO21/WR_CO2=0.0 -! -!RO21/WR_SO2=0.0 -! -!RO21/WR_H2SO4=0.0 -! -!RO21/WR_RO21=+KTR47 - PJAC(:,86,140)=+TPK%KTR47(:) -! -!RO21/WR_RO25=0.0 -! -!RO21/WR_MEOH=0.0 -! -!RO21/WR_ETOH=0.0 -! -!RO21/WR_ALCH=0.0 -! -!RO21/WR_HCHO=0.0 -! -!RO21/WR_ALD2=0.0 -! -!RO21/WR_GLY=0.0 -! -!RO21/WR_MGLY=0.0 -! -!RO21/WR_KETL=0.0 -! -!RO21/WR_ORA1=0.0 -! -!RO21/WR_ORA2=0.0 -! -!RO21/WR_ACID=0.0 -! -!RO21/WR_RP16=0.0 -! -!RO21/WR_UR21=0.0 -! -!RO21/WR_UR28=0.0 -! -!RO21/WR_ACID2=0.0 -! -!RO21/WR_ASO3=0.0 -! -!RO21/WR_ASO4=0.0 -! -!RO21/WR_ASO5=0.0 -! -!RO21/WR_AHSO5=0.0 -! -!RO21/WR_AHMS=0.0 -! -!RO25/NO=-K122*<RO25>+K125*<RO26> - PJAC(:,87,1)=-TPK%K122(:)*PCONC(:,87)+TPK%K125(:)*TPK%RO26(:) -! -!RO25/NO2=0.0 -! -!RO25/O3=+0.28*K056*<OLEL> - PJAC(:,87,3)=+0.28*TPK%K056(:)*PCONC(:,17) -! -!RO25/HONO=0.0 -! -!RO25/HNO3=0.0 -! -!RO25/HNO4=0.0 -! -!RO25/N2O5=0.0 -! -!RO25/NO3=0.0 -! -!RO25/NH3=0.0 -! -!RO25/HO2=-K124*<RO25> - PJAC(:,87,10)=-TPK%K124(:)*PCONC(:,87) -! -!RO25/CO=0.0 -! -!RO25/H2O2=0.0 -! -!RO25/SO2=0.0 -! -!RO25/H2SO4=0.0 -! -!RO25/OH=+K058*<ALKL> - PJAC(:,87,15)=+TPK%K058(:)*PCONC(:,19) -! -!RO25/ETHE=0.0 -! -!RO25/OLEL=+0.28*K056*<O3>+0.1*K057*<O> - PJAC(:,87,17)=+0.28*TPK%K056(:)*PCONC(:,3)+0.1*TPK%K057(:)*TPK%O(:) -! -!RO25/OLEH=0.0 -! -!RO25/ALKL=+K058*<OH> - PJAC(:,87,19)=+TPK%K058(:)*PCONC(:,15) -! -!RO25/ALKM=0.0 -! -!RO25/ALKH=0.0 -! -!RO25/AROH=0.0 -! -!RO25/AROL=0.0 -! -!RO25/AROO=0.0 -! -!RO25/ARAL=0.0 -! -!RO25/ARAC=0.0 -! -!RO25/PAH=0.0 -! -!RO25/HCHO=0.0 -! -!RO25/ALD2=+K059 - PJAC(:,87,29)=+TPK%K059(:) -! -!RO25/KETL=+K063 - PJAC(:,87,30)=+TPK%K063(:) -! -!RO25/KETH=+K071 - PJAC(:,87,31)=+TPK%K071(:) -! -!RO25/MEOH=0.0 -! -!RO25/ETOH=0.0 -! -!RO25/ALCH=0.0 -! -!RO25/ISOP=0.0 -! -!RO25/BIOL=0.0 -! -!RO25/BIOH=0.0 -! -!RO25/MTBE=0.0 -! -!RO25/MVK=0.0 -! -!RO25/MCR=0.0 -! -!RO25/MGLY=0.0 -! -!RO25/GLY=0.0 -! -!RO25/ORA1=0.0 -! -!RO25/ORA2=0.0 -! -!RO25/ACID=0.0 -! -!RO25/UR28=0.0 -! -!RO25/UR21=0.0 -! -!RO25/URG2=0.0 -! -!RO25/UR26=0.0 -! -!RO25/RPG2=0.0 -! -!RO25/RP18=0.0 -! -!RO25/RPG3=0.0 -! -!RO25/URG4=0.0 -! -!RO25/UR8=0.0 -! -!RO25/UR17=0.0 -! -!RO25/UR7=0.0 -! -!RO25/RPR3=0.0 -! -!RO25/URG6=0.0 -! -!RO25/UR22=0.0 -! -!RO25/URG7=0.0 -! -!RO25/RPR4=0.0 -! -!RO25/RPR7=0.0 -! -!RO25/RPG7=0.0 -! -!RO25/URG8=0.0 -! -!RO25/UR19=0.0 -! -!RO25/URG9=0.0 -! -!RO25/AP7=0.0 -! -!RO25/URG10=0.0 -! -!RO25/RPR1=0.0 -! -!RO25/RPR5=0.0 -! -!RO25/RPR8=0.0 -! -!RO25/RP10=0.0 -! -!RO25/RP11=0.0 -! -!RO25/RP16=0.0 -! -!RO25/RPRL=0.0 -! -!RO25/APAN=0.0 -! -!RO25/PAN1=0.0 -! -!RO25/PAN2=0.0 -! -!RO25/PAN3=0.0 -! -!RO25/PAN4=0.0 -! -!RO25/PAN6=0.0 -! -!RO25/PAN7=0.0 -! -!RO25/PAN8=0.0 -! -!RO25/PN10=0.0 -! -!RO25/RO2T=-K123*<RO25>+K143*<RO26> - PJAC(:,87,85)=-TPK%K123(:)*PCONC(:,87)+TPK%K143(:)*TPK%RO26(:) -! -!RO25/RO21=0.0 -! -!RO25/RO25=-K122*<NO>-K123*<RO2T>-K124*<HO2>-KTC17-KTR17 - PJAC(:,87,87)=-TPK%K122(:)*PCONC(:,1)-TPK%K123(:)*PCONC(:,85)-TPK%K124(:)*PCON& -&C(:,10)-TPK%KTC17(:)-TPK%KTR17(:) -! -!RO25/WC_O3=0.0 -! -!RO25/WC_H2O2=0.0 -! -!RO25/WC_NO=0.0 -! -!RO25/WC_NO2=0.0 -! -!RO25/WC_NO3=0.0 -! -!RO25/WC_N2O5=0.0 -! -!RO25/WC_HONO=0.0 -! -!RO25/WC_HNO3=0.0 -! -!RO25/WC_HNO4=0.0 -! -!RO25/WC_NH3=0.0 -! -!RO25/WC_OH=0.0 -! -!RO25/WC_HO2=0.0 -! -!RO25/WC_CO2=0.0 -! -!RO25/WC_SO2=0.0 -! -!RO25/WC_H2SO4=0.0 -! -!RO25/WC_RO21=0.0 -! -!RO25/WC_RO25=+KTC48 - PJAC(:,87,104)=+TPK%KTC48(:) -! -!RO25/WC_MEOH=0.0 -! -!RO25/WC_ETOH=0.0 -! -!RO25/WC_ALCH=0.0 -! -!RO25/WC_HCHO=0.0 -! -!RO25/WC_ALD2=0.0 -! -!RO25/WC_GLY=0.0 -! -!RO25/WC_MGLY=0.0 -! -!RO25/WC_KETL=0.0 -! -!RO25/WC_ORA1=0.0 -! -!RO25/WC_ORA2=0.0 -! -!RO25/WC_ACID=0.0 -! -!RO25/WC_RP16=0.0 -! -!RO25/WC_UR21=0.0 -! -!RO25/WC_UR28=0.0 -! -!RO25/WC_ACID2=0.0 -! -!RO25/WC_ASO3=0.0 -! -!RO25/WC_ASO4=0.0 -! -!RO25/WC_ASO5=0.0 -! -!RO25/WC_AHSO5=0.0 -! -!RO25/WC_AHMS=0.0 -! -!RO25/WR_O3=0.0 -! -!RO25/WR_H2O2=0.0 -! -!RO25/WR_NO=0.0 -! -!RO25/WR_NO2=0.0 -! -!RO25/WR_NO3=0.0 -! -!RO25/WR_N2O5=0.0 -! -!RO25/WR_HONO=0.0 -! -!RO25/WR_HNO3=0.0 -! -!RO25/WR_HNO4=0.0 -! -!RO25/WR_NH3=0.0 -! -!RO25/WR_OH=0.0 -! -!RO25/WR_HO2=0.0 -! -!RO25/WR_CO2=0.0 -! -!RO25/WR_SO2=0.0 -! -!RO25/WR_H2SO4=0.0 -! -!RO25/WR_RO21=0.0 -! -!RO25/WR_RO25=+KTR48 - PJAC(:,87,141)=+TPK%KTR48(:) -! -!RO25/WR_MEOH=0.0 -! -!RO25/WR_ETOH=0.0 -! -!RO25/WR_ALCH=0.0 -! -!RO25/WR_HCHO=0.0 -! -!RO25/WR_ALD2=0.0 -! -!RO25/WR_GLY=0.0 -! -!RO25/WR_MGLY=0.0 -! -!RO25/WR_KETL=0.0 -! -!RO25/WR_ORA1=0.0 -! -!RO25/WR_ORA2=0.0 -! -!RO25/WR_ACID=0.0 -! -!RO25/WR_RP16=0.0 -! -!RO25/WR_UR21=0.0 -! -!RO25/WR_UR28=0.0 -! -!RO25/WR_ACID2=0.0 -! -!RO25/WR_ASO3=0.0 -! -!RO25/WR_ASO4=0.0 -! -!RO25/WR_ASO5=0.0 -! -!RO25/WR_AHSO5=0.0 -! -!RO25/WR_AHMS=0.0 -! -!WC_O3/NO=0.0 -! -!WC_O3/NO2=0.0 -! -!WC_O3/O3=+KTC1 - PJAC(:,88,3)=+TPK%KTC1(:) -! -!WC_O3/HONO=0.0 -! -!WC_O3/HNO3=0.0 -! -!WC_O3/HNO4=0.0 -! -!WC_O3/N2O5=0.0 -! -!WC_O3/NO3=0.0 -! -!WC_O3/NH3=0.0 -! -!WC_O3/HO2=0.0 -! -!WC_O3/CO=0.0 -! -!WC_O3/H2O2=0.0 -! -!WC_O3/SO2=0.0 -! -!WC_O3/H2SO4=0.0 -! -!WC_O3/OH=0.0 -! -!WC_O3/ETHE=0.0 -! -!WC_O3/OLEL=0.0 -! -!WC_O3/OLEH=0.0 -! -!WC_O3/ALKL=0.0 -! -!WC_O3/ALKM=0.0 -! -!WC_O3/ALKH=0.0 -! -!WC_O3/AROH=0.0 -! -!WC_O3/AROL=0.0 -! -!WC_O3/AROO=0.0 -! -!WC_O3/ARAL=0.0 -! -!WC_O3/ARAC=0.0 -! -!WC_O3/PAH=0.0 -! -!WC_O3/HCHO=0.0 -! -!WC_O3/ALD2=0.0 -! -!WC_O3/KETL=0.0 -! -!WC_O3/KETH=0.0 -! -!WC_O3/MEOH=0.0 -! -!WC_O3/ETOH=0.0 -! -!WC_O3/ALCH=0.0 -! -!WC_O3/ISOP=0.0 -! -!WC_O3/BIOL=0.0 -! -!WC_O3/BIOH=0.0 -! -!WC_O3/MTBE=0.0 -! -!WC_O3/MVK=0.0 -! -!WC_O3/MCR=0.0 -! -!WC_O3/MGLY=0.0 -! -!WC_O3/GLY=0.0 -! -!WC_O3/ORA1=0.0 -! -!WC_O3/ORA2=0.0 -! -!WC_O3/ACID=0.0 -! -!WC_O3/UR28=0.0 -! -!WC_O3/UR21=0.0 -! -!WC_O3/URG2=0.0 -! -!WC_O3/UR26=0.0 -! -!WC_O3/RPG2=0.0 -! -!WC_O3/RP18=0.0 -! -!WC_O3/RPG3=0.0 -! -!WC_O3/URG4=0.0 -! -!WC_O3/UR8=0.0 -! -!WC_O3/UR17=0.0 -! -!WC_O3/UR7=0.0 -! -!WC_O3/RPR3=0.0 -! -!WC_O3/URG6=0.0 -! -!WC_O3/UR22=0.0 -! -!WC_O3/URG7=0.0 -! -!WC_O3/RPR4=0.0 -! -!WC_O3/RPR7=0.0 -! -!WC_O3/RPG7=0.0 -! -!WC_O3/URG8=0.0 -! -!WC_O3/UR19=0.0 -! -!WC_O3/URG9=0.0 -! -!WC_O3/AP7=0.0 -! -!WC_O3/URG10=0.0 -! -!WC_O3/RPR1=0.0 -! -!WC_O3/RPR5=0.0 -! -!WC_O3/RPR8=0.0 -! -!WC_O3/RP10=0.0 -! -!WC_O3/RP11=0.0 -! -!WC_O3/RP16=0.0 -! -!WC_O3/RPRL=0.0 -! -!WC_O3/APAN=0.0 -! -!WC_O3/PAN1=0.0 -! -!WC_O3/PAN2=0.0 -! -!WC_O3/PAN3=0.0 -! -!WC_O3/PAN4=0.0 -! -!WC_O3/PAN6=0.0 -! -!WC_O3/PAN7=0.0 -! -!WC_O3/PAN8=0.0 -! -!WC_O3/PN10=0.0 -! -!WC_O3/RO2T=0.0 -! -!WC_O3/RO21=0.0 -! -!WC_O3/RO25=0.0 -! -!WC_O3/WC_O3=-KTC32-KC6*<WC_HO2>-KC25*<WC_SO2> - PJAC(:,88,88)=-TPK%KTC32(:)-TPK%KC6(:)*PCONC(:,99)-TPK%KC25(:)*PCONC(:,101) -! -!WC_O3/WC_H2O2=0.0 -! -!WC_O3/WC_NO=0.0 -! -!WC_O3/WC_NO2=0.0 -! -!WC_O3/WC_NO3=0.0 -! -!WC_O3/WC_N2O5=0.0 -! -!WC_O3/WC_HONO=0.0 -! -!WC_O3/WC_HNO3=0.0 -! -!WC_O3/WC_HNO4=0.0 -! -!WC_O3/WC_NH3=0.0 -! -!WC_O3/WC_OH=0.0 -! -!WC_O3/WC_HO2=-KC6*<WC_O3> - PJAC(:,88,99)=-TPK%KC6(:)*PCONC(:,88) -! -!WC_O3/WC_CO2=0.0 -! -!WC_O3/WC_SO2=-KC25*<WC_O3> - PJAC(:,88,101)=-TPK%KC25(:)*PCONC(:,88) -! -!WC_O3/WC_H2SO4=0.0 -! -!WC_O3/WC_RO21=0.0 -! -!WC_O3/WC_RO25=0.0 -! -!WC_O3/WC_MEOH=0.0 -! -!WC_O3/WC_ETOH=0.0 -! -!WC_O3/WC_ALCH=0.0 -! -!WC_O3/WC_HCHO=0.0 -! -!WC_O3/WC_ALD2=0.0 -! -!WC_O3/WC_GLY=0.0 -! -!WC_O3/WC_MGLY=0.0 -! -!WC_O3/WC_KETL=0.0 -! -!WC_O3/WC_ORA1=0.0 -! -!WC_O3/WC_ORA2=0.0 -! -!WC_O3/WC_ACID=0.0 -! -!WC_O3/WC_RP16=0.0 -! -!WC_O3/WC_UR21=0.0 -! -!WC_O3/WC_UR28=0.0 -! -!WC_O3/WC_ACID2=0.0 -! -!WC_O3/WC_ASO3=0.0 -! -!WC_O3/WC_ASO4=0.0 -! -!WC_O3/WC_ASO5=0.0 -! -!WC_O3/WC_AHSO5=0.0 -! -!WC_O3/WC_AHMS=0.0 -! -!WC_O3/WR_O3=0.0 -! -!WC_O3/WR_H2O2=0.0 -! -!WC_O3/WR_NO=0.0 -! -!WC_O3/WR_NO2=0.0 -! -!WC_O3/WR_NO3=0.0 -! -!WC_O3/WR_N2O5=0.0 -! -!WC_O3/WR_HONO=0.0 -! -!WC_O3/WR_HNO3=0.0 -! -!WC_O3/WR_HNO4=0.0 -! -!WC_O3/WR_NH3=0.0 -! -!WC_O3/WR_OH=0.0 -! -!WC_O3/WR_HO2=0.0 -! -!WC_O3/WR_CO2=0.0 -! -!WC_O3/WR_SO2=0.0 -! -!WC_O3/WR_H2SO4=0.0 -! -!WC_O3/WR_RO21=0.0 -! -!WC_O3/WR_RO25=0.0 -! -!WC_O3/WR_MEOH=0.0 -! -!WC_O3/WR_ETOH=0.0 -! -!WC_O3/WR_ALCH=0.0 -! -!WC_O3/WR_HCHO=0.0 -! -!WC_O3/WR_ALD2=0.0 -! -!WC_O3/WR_GLY=0.0 -! -!WC_O3/WR_MGLY=0.0 -! -!WC_O3/WR_KETL=0.0 -! -!WC_O3/WR_ORA1=0.0 -! -!WC_O3/WR_ORA2=0.0 -! -!WC_O3/WR_ACID=0.0 -! -!WC_O3/WR_RP16=0.0 -! -!WC_O3/WR_UR21=0.0 -! -!WC_O3/WR_UR28=0.0 -! -!WC_O3/WR_ACID2=0.0 -! -!WC_O3/WR_ASO3=0.0 -! -!WC_O3/WR_ASO4=0.0 -! -!WC_O3/WR_ASO5=0.0 -! -!WC_O3/WR_AHSO5=0.0 -! -!WC_O3/WR_AHMS=0.0 -! -!WC_H2O2/NO=0.0 -! -!WC_H2O2/NO2=0.0 -! -!WC_H2O2/O3=0.0 -! -!WC_H2O2/HONO=0.0 -! -!WC_H2O2/HNO3=0.0 -! -!WC_H2O2/HNO4=0.0 -! -!WC_H2O2/N2O5=0.0 -! -!WC_H2O2/NO3=0.0 -! -!WC_H2O2/NH3=0.0 -! -!WC_H2O2/HO2=0.0 -! -!WC_H2O2/CO=0.0 -! -!WC_H2O2/H2O2=+KTC2 - PJAC(:,89,12)=+TPK%KTC2(:) -! -!WC_H2O2/SO2=0.0 -! -!WC_H2O2/H2SO4=0.0 -! -!WC_H2O2/OH=0.0 -! -!WC_H2O2/ETHE=0.0 -! -!WC_H2O2/OLEL=0.0 -! -!WC_H2O2/OLEH=0.0 -! -!WC_H2O2/ALKL=0.0 -! -!WC_H2O2/ALKM=0.0 -! -!WC_H2O2/ALKH=0.0 -! -!WC_H2O2/AROH=0.0 -! -!WC_H2O2/AROL=0.0 -! -!WC_H2O2/AROO=0.0 -! -!WC_H2O2/ARAL=0.0 -! -!WC_H2O2/ARAC=0.0 -! -!WC_H2O2/PAH=0.0 -! -!WC_H2O2/HCHO=0.0 -! -!WC_H2O2/ALD2=0.0 -! -!WC_H2O2/KETL=0.0 -! -!WC_H2O2/KETH=0.0 -! -!WC_H2O2/MEOH=0.0 -! -!WC_H2O2/ETOH=0.0 -! -!WC_H2O2/ALCH=0.0 -! -!WC_H2O2/ISOP=0.0 -! -!WC_H2O2/BIOL=0.0 -! -!WC_H2O2/BIOH=0.0 -! -!WC_H2O2/MTBE=0.0 -! -!WC_H2O2/MVK=0.0 -! -!WC_H2O2/MCR=0.0 -! -!WC_H2O2/MGLY=0.0 -! -!WC_H2O2/GLY=0.0 -! -!WC_H2O2/ORA1=0.0 -! -!WC_H2O2/ORA2=0.0 -! -!WC_H2O2/ACID=0.0 -! -!WC_H2O2/UR28=0.0 -! -!WC_H2O2/UR21=0.0 -! -!WC_H2O2/URG2=0.0 -! -!WC_H2O2/UR26=0.0 -! -!WC_H2O2/RPG2=0.0 -! -!WC_H2O2/RP18=0.0 -! -!WC_H2O2/RPG3=0.0 -! -!WC_H2O2/URG4=0.0 -! -!WC_H2O2/UR8=0.0 -! -!WC_H2O2/UR17=0.0 -! -!WC_H2O2/UR7=0.0 -! -!WC_H2O2/RPR3=0.0 -! -!WC_H2O2/URG6=0.0 -! -!WC_H2O2/UR22=0.0 -! -!WC_H2O2/URG7=0.0 -! -!WC_H2O2/RPR4=0.0 -! -!WC_H2O2/RPR7=0.0 -! -!WC_H2O2/RPG7=0.0 -! -!WC_H2O2/URG8=0.0 -! -!WC_H2O2/UR19=0.0 -! -!WC_H2O2/URG9=0.0 -! -!WC_H2O2/AP7=0.0 -! -!WC_H2O2/URG10=0.0 -! -!WC_H2O2/RPR1=0.0 -! -!WC_H2O2/RPR5=0.0 -! -!WC_H2O2/RPR8=0.0 -! -!WC_H2O2/RP10=0.0 -! -!WC_H2O2/RP11=0.0 -! -!WC_H2O2/RP16=0.0 -! -!WC_H2O2/RPRL=0.0 -! -!WC_H2O2/APAN=0.0 -! -!WC_H2O2/PAN1=0.0 -! -!WC_H2O2/PAN2=0.0 -! -!WC_H2O2/PAN3=0.0 -! -!WC_H2O2/PAN4=0.0 -! -!WC_H2O2/PAN6=0.0 -! -!WC_H2O2/PAN7=0.0 -! -!WC_H2O2/PAN8=0.0 -! -!WC_H2O2/PN10=0.0 -! -!WC_H2O2/RO2T=0.0 -! -!WC_H2O2/RO21=0.0 -! -!WC_H2O2/RO25=0.0 -! -!WC_H2O2/WC_O3=0.0 -! -!WC_H2O2/WC_H2O2=-KTC33-KC1-KC4*<WC_OH>-KC26*<WC_SO2> - PJAC(:,89,89)=-TPK%KTC33(:)-TPK%KC1(:)-TPK%KC4(:)*PCONC(:,98)-TPK%KC26(:)*PCON& -&C(:,101) -! -!WC_H2O2/WC_NO=0.0 -! -!WC_H2O2/WC_NO2=0.0 -! -!WC_H2O2/WC_NO3=0.0 -! -!WC_H2O2/WC_N2O5=0.0 -! -!WC_H2O2/WC_HONO=0.0 -! -!WC_H2O2/WC_HNO3=0.0 -! -!WC_H2O2/WC_HNO4=0.0 -! -!WC_H2O2/WC_NH3=0.0 -! -!WC_H2O2/WC_OH=+KC2*<WC_OH>+KC2*<WC_OH>-KC4*<WC_H2O2>+KC37*<WC_KETL>+0.5*KC39*< -!WC_ORA2>+0.29*KC41*<WC_ACID>+0.3*KC43*<WC_UR21>+0.45*KC45*<WC_RP16> - PJAC(:,89,98)=+TPK%KC2(:)*PCONC(:,98)+TPK%KC2(:)*PCONC(:,98)-TPK%KC4(:)*PCONC(& -&:,89)+TPK%KC37(:)*PCONC(:,112)+0.5*TPK%KC39(:)*PCONC(:,114)+0.29*TPK%KC41(:)*P& -&CONC(:,115)+0.3*TPK%KC43(:)*PCONC(:,117)+0.45*TPK%KC45(:)*PCONC(:,116) -! -!WC_H2O2/WC_HO2=+KC5*<WC_HO2>+KC5*<WC_HO2> - PJAC(:,89,99)=+TPK%KC5(:)*PCONC(:,99)+TPK%KC5(:)*PCONC(:,99) -! -!WC_H2O2/WC_CO2=0.0 -! -!WC_H2O2/WC_SO2=-KC26*<WC_H2O2> - PJAC(:,89,101)=-TPK%KC26(:)*PCONC(:,89) -! -!WC_H2O2/WC_H2SO4=0.0 -! -!WC_H2O2/WC_RO21=0.0 -! -!WC_H2O2/WC_RO25=+KC29*<WC_RO25>+KC29*<WC_RO25> - PJAC(:,89,104)=+TPK%KC29(:)*PCONC(:,104)+TPK%KC29(:)*PCONC(:,104) -! -!WC_H2O2/WC_MEOH=0.0 -! -!WC_H2O2/WC_ETOH=0.0 -! -!WC_H2O2/WC_ALCH=0.0 -! -!WC_H2O2/WC_HCHO=0.0 -! -!WC_H2O2/WC_ALD2=0.0 -! -!WC_H2O2/WC_GLY=0.0 -! -!WC_H2O2/WC_MGLY=0.0 -! -!WC_H2O2/WC_KETL=+KC37*<WC_OH> - PJAC(:,89,112)=+TPK%KC37(:)*PCONC(:,98) -! -!WC_H2O2/WC_ORA1=0.0 -! -!WC_H2O2/WC_ORA2=+0.5*KC39*<WC_OH> - PJAC(:,89,114)=+0.5*TPK%KC39(:)*PCONC(:,98) -! -!WC_H2O2/WC_ACID=+0.29*KC41*<WC_OH> - PJAC(:,89,115)=+0.29*TPK%KC41(:)*PCONC(:,98) -! -!WC_H2O2/WC_RP16=+0.45*KC45*<WC_OH> - PJAC(:,89,116)=+0.45*TPK%KC45(:)*PCONC(:,98) -! -!WC_H2O2/WC_UR21=+0.3*KC43*<WC_OH> - PJAC(:,89,117)=+0.3*TPK%KC43(:)*PCONC(:,98) -! -!WC_H2O2/WC_UR28=0.0 -! -!WC_H2O2/WC_ACID2=0.0 -! -!WC_H2O2/WC_ASO3=0.0 -! -!WC_H2O2/WC_ASO4=0.0 -! -!WC_H2O2/WC_ASO5=0.0 -! -!WC_H2O2/WC_AHSO5=0.0 -! -!WC_H2O2/WC_AHMS=0.0 -! -!WC_H2O2/WR_O3=0.0 -! -!WC_H2O2/WR_H2O2=0.0 -! -!WC_H2O2/WR_NO=0.0 -! -!WC_H2O2/WR_NO2=0.0 -! -!WC_H2O2/WR_NO3=0.0 -! -!WC_H2O2/WR_N2O5=0.0 -! -!WC_H2O2/WR_HONO=0.0 -! -!WC_H2O2/WR_HNO3=0.0 -! -!WC_H2O2/WR_HNO4=0.0 -! -!WC_H2O2/WR_NH3=0.0 -! -!WC_H2O2/WR_OH=0.0 -! -!WC_H2O2/WR_HO2=0.0 -! -!WC_H2O2/WR_CO2=0.0 -! -!WC_H2O2/WR_SO2=0.0 -! -!WC_H2O2/WR_H2SO4=0.0 -! -!WC_H2O2/WR_RO21=0.0 -! -!WC_H2O2/WR_RO25=0.0 -! -!WC_H2O2/WR_MEOH=0.0 -! -!WC_H2O2/WR_ETOH=0.0 -! -!WC_H2O2/WR_ALCH=0.0 -! -!WC_H2O2/WR_HCHO=0.0 -! -!WC_H2O2/WR_ALD2=0.0 -! -!WC_H2O2/WR_GLY=0.0 -! -!WC_H2O2/WR_MGLY=0.0 -! -!WC_H2O2/WR_KETL=0.0 -! -!WC_H2O2/WR_ORA1=0.0 -! -!WC_H2O2/WR_ORA2=0.0 -! -!WC_H2O2/WR_ACID=0.0 -! -!WC_H2O2/WR_RP16=0.0 -! -!WC_H2O2/WR_UR21=0.0 -! -!WC_H2O2/WR_UR28=0.0 -! -!WC_H2O2/WR_ACID2=0.0 -! -!WC_H2O2/WR_ASO3=0.0 -! -!WC_H2O2/WR_ASO4=0.0 -! -!WC_H2O2/WR_ASO5=0.0 -! -!WC_H2O2/WR_AHSO5=0.0 -! -!WC_H2O2/WR_AHMS=0.0 -! -!WC_NO/NO=+KTC3 - PJAC(:,90,1)=+TPK%KTC3(:) -! -!WC_NO/NO2=0.0 -! -!WC_NO/O3=0.0 -! -!WC_NO/HONO=0.0 -! -!WC_NO/HNO3=0.0 -! -!WC_NO/HNO4=0.0 -! -!WC_NO/N2O5=0.0 -! -!WC_NO/NO3=0.0 -! -!WC_NO/NH3=0.0 -! -!WC_NO/HO2=0.0 -! -!WC_NO/CO=0.0 -! -!WC_NO/H2O2=0.0 -! -!WC_NO/SO2=0.0 -! -!WC_NO/H2SO4=0.0 -! -!WC_NO/OH=0.0 -! -!WC_NO/ETHE=0.0 -! -!WC_NO/OLEL=0.0 -! -!WC_NO/OLEH=0.0 -! -!WC_NO/ALKL=0.0 -! -!WC_NO/ALKM=0.0 -! -!WC_NO/ALKH=0.0 -! -!WC_NO/AROH=0.0 -! -!WC_NO/AROL=0.0 -! -!WC_NO/AROO=0.0 -! -!WC_NO/ARAL=0.0 -! -!WC_NO/ARAC=0.0 -! -!WC_NO/PAH=0.0 -! -!WC_NO/HCHO=0.0 -! -!WC_NO/ALD2=0.0 -! -!WC_NO/KETL=0.0 -! -!WC_NO/KETH=0.0 -! -!WC_NO/MEOH=0.0 -! -!WC_NO/ETOH=0.0 -! -!WC_NO/ALCH=0.0 -! -!WC_NO/ISOP=0.0 -! -!WC_NO/BIOL=0.0 -! -!WC_NO/BIOH=0.0 -! -!WC_NO/MTBE=0.0 -! -!WC_NO/MVK=0.0 -! -!WC_NO/MCR=0.0 -! -!WC_NO/MGLY=0.0 -! -!WC_NO/GLY=0.0 -! -!WC_NO/ORA1=0.0 -! -!WC_NO/ORA2=0.0 -! -!WC_NO/ACID=0.0 -! -!WC_NO/UR28=0.0 -! -!WC_NO/UR21=0.0 -! -!WC_NO/URG2=0.0 -! -!WC_NO/UR26=0.0 -! -!WC_NO/RPG2=0.0 -! -!WC_NO/RP18=0.0 -! -!WC_NO/RPG3=0.0 -! -!WC_NO/URG4=0.0 -! -!WC_NO/UR8=0.0 -! -!WC_NO/UR17=0.0 -! -!WC_NO/UR7=0.0 -! -!WC_NO/RPR3=0.0 -! -!WC_NO/URG6=0.0 -! -!WC_NO/UR22=0.0 -! -!WC_NO/URG7=0.0 -! -!WC_NO/RPR4=0.0 -! -!WC_NO/RPR7=0.0 -! -!WC_NO/RPG7=0.0 -! -!WC_NO/URG8=0.0 -! -!WC_NO/UR19=0.0 -! -!WC_NO/URG9=0.0 -! -!WC_NO/AP7=0.0 -! -!WC_NO/URG10=0.0 -! -!WC_NO/RPR1=0.0 -! -!WC_NO/RPR5=0.0 -! -!WC_NO/RPR8=0.0 -! -!WC_NO/RP10=0.0 -! -!WC_NO/RP11=0.0 -! -!WC_NO/RP16=0.0 -! -!WC_NO/RPRL=0.0 -! -!WC_NO/APAN=0.0 -! -!WC_NO/PAN1=0.0 -! -!WC_NO/PAN2=0.0 -! -!WC_NO/PAN3=0.0 -! -!WC_NO/PAN4=0.0 -! -!WC_NO/PAN6=0.0 -! -!WC_NO/PAN7=0.0 -! -!WC_NO/PAN8=0.0 -! -!WC_NO/PN10=0.0 -! -!WC_NO/RO2T=0.0 -! -!WC_NO/RO21=0.0 -! -!WC_NO/RO25=0.0 -! -!WC_NO/WC_O3=0.0 -! -!WC_NO/WC_H2O2=0.0 -! -!WC_NO/WC_NO=-KTC34 - PJAC(:,90,90)=-TPK%KTC34(:) -! -!WC_NO/WC_NO2=0.0 -! -!WC_NO/WC_NO3=0.0 -! -!WC_NO/WC_N2O5=0.0 -! -!WC_NO/WC_HONO=0.0 -! -!WC_NO/WC_HNO3=0.0 -! -!WC_NO/WC_HNO4=0.0 -! -!WC_NO/WC_NH3=0.0 -! -!WC_NO/WC_OH=0.0 -! -!WC_NO/WC_HO2=0.0 -! -!WC_NO/WC_CO2=0.0 -! -!WC_NO/WC_SO2=0.0 -! -!WC_NO/WC_H2SO4=0.0 -! -!WC_NO/WC_RO21=0.0 -! -!WC_NO/WC_RO25=0.0 -! -!WC_NO/WC_MEOH=0.0 -! -!WC_NO/WC_ETOH=0.0 -! -!WC_NO/WC_ALCH=0.0 -! -!WC_NO/WC_HCHO=0.0 -! -!WC_NO/WC_ALD2=0.0 -! -!WC_NO/WC_GLY=0.0 -! -!WC_NO/WC_MGLY=0.0 -! -!WC_NO/WC_KETL=0.0 -! -!WC_NO/WC_ORA1=0.0 -! -!WC_NO/WC_ORA2=0.0 -! -!WC_NO/WC_ACID=0.0 -! -!WC_NO/WC_RP16=0.0 -! -!WC_NO/WC_UR21=0.0 -! -!WC_NO/WC_UR28=0.0 -! -!WC_NO/WC_ACID2=0.0 -! -!WC_NO/WC_ASO3=0.0 -! -!WC_NO/WC_ASO4=0.0 -! -!WC_NO/WC_ASO5=0.0 -! -!WC_NO/WC_AHSO5=0.0 -! -!WC_NO/WC_AHMS=0.0 -! -!WC_NO/WR_O3=0.0 -! -!WC_NO/WR_H2O2=0.0 -! -!WC_NO/WR_NO=0.0 -! -!WC_NO/WR_NO2=0.0 -! -!WC_NO/WR_NO3=0.0 -! -!WC_NO/WR_N2O5=0.0 -! -!WC_NO/WR_HONO=0.0 -! -!WC_NO/WR_HNO3=0.0 -! -!WC_NO/WR_HNO4=0.0 -! -!WC_NO/WR_NH3=0.0 -! -!WC_NO/WR_OH=0.0 -! -!WC_NO/WR_HO2=0.0 -! -!WC_NO/WR_CO2=0.0 -! -!WC_NO/WR_SO2=0.0 -! -!WC_NO/WR_H2SO4=0.0 -! -!WC_NO/WR_RO21=0.0 -! -!WC_NO/WR_RO25=0.0 -! -!WC_NO/WR_MEOH=0.0 -! -!WC_NO/WR_ETOH=0.0 -! -!WC_NO/WR_ALCH=0.0 -! -!WC_NO/WR_HCHO=0.0 -! -!WC_NO/WR_ALD2=0.0 -! -!WC_NO/WR_GLY=0.0 -! -!WC_NO/WR_MGLY=0.0 -! -!WC_NO/WR_KETL=0.0 -! -!WC_NO/WR_ORA1=0.0 -! -!WC_NO/WR_ORA2=0.0 -! -!WC_NO/WR_ACID=0.0 -! -!WC_NO/WR_RP16=0.0 -! -!WC_NO/WR_UR21=0.0 -! -!WC_NO/WR_UR28=0.0 -! -!WC_NO/WR_ACID2=0.0 -! -!WC_NO/WR_ASO3=0.0 -! -!WC_NO/WR_ASO4=0.0 -! -!WC_NO/WR_ASO5=0.0 -! -!WC_NO/WR_AHSO5=0.0 -! -!WC_NO/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ17 -! -SUBROUTINE SUBJ18 -! -!Indices 91 a 95 -! -! -!WC_NO2/NO=0.0 -! -!WC_NO2/NO2=+KTC4 - PJAC(:,91,2)=+TPK%KTC4(:) -! -!WC_NO2/O3=0.0 -! -!WC_NO2/HONO=0.0 -! -!WC_NO2/HNO3=0.0 -! -!WC_NO2/HNO4=0.0 -! -!WC_NO2/N2O5=0.0 -! -!WC_NO2/NO3=0.0 -! -!WC_NO2/NH3=0.0 -! -!WC_NO2/HO2=0.0 -! -!WC_NO2/CO=0.0 -! -!WC_NO2/H2O2=0.0 -! -!WC_NO2/SO2=0.0 -! -!WC_NO2/H2SO4=0.0 -! -!WC_NO2/OH=0.0 -! -!WC_NO2/ETHE=0.0 -! -!WC_NO2/OLEL=0.0 -! -!WC_NO2/OLEH=0.0 -! -!WC_NO2/ALKL=0.0 -! -!WC_NO2/ALKM=0.0 -! -!WC_NO2/ALKH=0.0 -! -!WC_NO2/AROH=0.0 -! -!WC_NO2/AROL=0.0 -! -!WC_NO2/AROO=0.0 -! -!WC_NO2/ARAL=0.0 -! -!WC_NO2/ARAC=0.0 -! -!WC_NO2/PAH=0.0 -! -!WC_NO2/HCHO=0.0 -! -!WC_NO2/ALD2=0.0 -! -!WC_NO2/KETL=0.0 -! -!WC_NO2/KETH=0.0 -! -!WC_NO2/MEOH=0.0 -! -!WC_NO2/ETOH=0.0 -! -!WC_NO2/ALCH=0.0 -! -!WC_NO2/ISOP=0.0 -! -!WC_NO2/BIOL=0.0 -! -!WC_NO2/BIOH=0.0 -! -!WC_NO2/MTBE=0.0 -! -!WC_NO2/MVK=0.0 -! -!WC_NO2/MCR=0.0 -! -!WC_NO2/MGLY=0.0 -! -!WC_NO2/GLY=0.0 -! -!WC_NO2/ORA1=0.0 -! -!WC_NO2/ORA2=0.0 -! -!WC_NO2/ACID=0.0 -! -!WC_NO2/UR28=0.0 -! -!WC_NO2/UR21=0.0 -! -!WC_NO2/URG2=0.0 -! -!WC_NO2/UR26=0.0 -! -!WC_NO2/RPG2=0.0 -! -!WC_NO2/RP18=0.0 -! -!WC_NO2/RPG3=0.0 -! -!WC_NO2/URG4=0.0 -! -!WC_NO2/UR8=0.0 -! -!WC_NO2/UR17=0.0 -! -!WC_NO2/UR7=0.0 -! -!WC_NO2/RPR3=0.0 -! -!WC_NO2/URG6=0.0 -! -!WC_NO2/UR22=0.0 -! -!WC_NO2/URG7=0.0 -! -!WC_NO2/RPR4=0.0 -! -!WC_NO2/RPR7=0.0 -! -!WC_NO2/RPG7=0.0 -! -!WC_NO2/URG8=0.0 -! -!WC_NO2/UR19=0.0 -! -!WC_NO2/URG9=0.0 -! -!WC_NO2/AP7=0.0 -! -!WC_NO2/URG10=0.0 -! -!WC_NO2/RPR1=0.0 -! -!WC_NO2/RPR5=0.0 -! -!WC_NO2/RPR8=0.0 -! -!WC_NO2/RP10=0.0 -! -!WC_NO2/RP11=0.0 -! -!WC_NO2/RP16=0.0 -! -!WC_NO2/RPRL=0.0 -! -!WC_NO2/APAN=0.0 -! -!WC_NO2/PAN1=0.0 -! -!WC_NO2/PAN2=0.0 -! -!WC_NO2/PAN3=0.0 -! -!WC_NO2/PAN4=0.0 -! -!WC_NO2/PAN6=0.0 -! -!WC_NO2/PAN7=0.0 -! -!WC_NO2/PAN8=0.0 -! -!WC_NO2/PN10=0.0 -! -!WC_NO2/RO2T=0.0 -! -!WC_NO2/RO21=0.0 -! -!WC_NO2/RO25=0.0 -! -!WC_NO2/WC_O3=0.0 -! -!WC_NO2/WC_H2O2=0.0 -! -!WC_NO2/WC_NO=0.0 -! -!WC_NO2/WC_NO2=-KTC35-KC9*<WC_HO2> - PJAC(:,91,91)=-TPK%KTC35(:)-TPK%KC9(:)*PCONC(:,99) -! -!WC_NO2/WC_NO3=0.0 -! -!WC_NO2/WC_N2O5=0.0 -! -!WC_NO2/WC_HONO=+KC8*<WC_OH> - PJAC(:,91,94)=+TPK%KC8(:)*PCONC(:,98) -! -!WC_NO2/WC_HNO3=+KC13 - PJAC(:,91,95)=+TPK%KC13(:) -! -!WC_NO2/WC_HNO4=+KC10 - PJAC(:,91,96)=+TPK%KC10(:) -! -!WC_NO2/WC_NH3=0.0 -! -!WC_NO2/WC_OH=+KC8*<WC_HONO> - PJAC(:,91,98)=+TPK%KC8(:)*PCONC(:,94) -! -!WC_NO2/WC_HO2=-KC9*<WC_NO2> - PJAC(:,91,99)=-TPK%KC9(:)*PCONC(:,91) -! -!WC_NO2/WC_CO2=0.0 -! -!WC_NO2/WC_SO2=0.0 -! -!WC_NO2/WC_H2SO4=0.0 -! -!WC_NO2/WC_RO21=0.0 -! -!WC_NO2/WC_RO25=0.0 -! -!WC_NO2/WC_MEOH=0.0 -! -!WC_NO2/WC_ETOH=0.0 -! -!WC_NO2/WC_ALCH=0.0 -! -!WC_NO2/WC_HCHO=0.0 -! -!WC_NO2/WC_ALD2=0.0 -! -!WC_NO2/WC_GLY=0.0 -! -!WC_NO2/WC_MGLY=0.0 -! -!WC_NO2/WC_KETL=0.0 -! -!WC_NO2/WC_ORA1=0.0 -! -!WC_NO2/WC_ORA2=0.0 -! -!WC_NO2/WC_ACID=0.0 -! -!WC_NO2/WC_RP16=0.0 -! -!WC_NO2/WC_UR21=0.0 -! -!WC_NO2/WC_UR28=0.0 -! -!WC_NO2/WC_ACID2=0.0 -! -!WC_NO2/WC_ASO3=0.0 -! -!WC_NO2/WC_ASO4=0.0 -! -!WC_NO2/WC_ASO5=0.0 -! -!WC_NO2/WC_AHSO5=0.0 -! -!WC_NO2/WC_AHMS=0.0 -! -!WC_NO2/WR_O3=0.0 -! -!WC_NO2/WR_H2O2=0.0 -! -!WC_NO2/WR_NO=0.0 -! -!WC_NO2/WR_NO2=0.0 -! -!WC_NO2/WR_NO3=0.0 -! -!WC_NO2/WR_N2O5=0.0 -! -!WC_NO2/WR_HONO=0.0 -! -!WC_NO2/WR_HNO3=0.0 -! -!WC_NO2/WR_HNO4=0.0 -! -!WC_NO2/WR_NH3=0.0 -! -!WC_NO2/WR_OH=0.0 -! -!WC_NO2/WR_HO2=0.0 -! -!WC_NO2/WR_CO2=0.0 -! -!WC_NO2/WR_SO2=0.0 -! -!WC_NO2/WR_H2SO4=0.0 -! -!WC_NO2/WR_RO21=0.0 -! -!WC_NO2/WR_RO25=0.0 -! -!WC_NO2/WR_MEOH=0.0 -! -!WC_NO2/WR_ETOH=0.0 -! -!WC_NO2/WR_ALCH=0.0 -! -!WC_NO2/WR_HCHO=0.0 -! -!WC_NO2/WR_ALD2=0.0 -! -!WC_NO2/WR_GLY=0.0 -! -!WC_NO2/WR_MGLY=0.0 -! -!WC_NO2/WR_KETL=0.0 -! -!WC_NO2/WR_ORA1=0.0 -! -!WC_NO2/WR_ORA2=0.0 -! -!WC_NO2/WR_ACID=0.0 -! -!WC_NO2/WR_RP16=0.0 -! -!WC_NO2/WR_UR21=0.0 -! -!WC_NO2/WR_UR28=0.0 -! -!WC_NO2/WR_ACID2=0.0 -! -!WC_NO2/WR_ASO3=0.0 -! -!WC_NO2/WR_ASO4=0.0 -! -!WC_NO2/WR_ASO5=0.0 -! -!WC_NO2/WR_AHSO5=0.0 -! -!WC_NO2/WR_AHMS=0.0 -! -!WC_NO3/NO=0.0 -! -!WC_NO3/NO2=0.0 -! -!WC_NO3/O3=0.0 -! -!WC_NO3/HONO=0.0 -! -!WC_NO3/HNO3=0.0 -! -!WC_NO3/HNO4=0.0 -! -!WC_NO3/N2O5=0.0 -! -!WC_NO3/NO3=+KTC5 - PJAC(:,92,8)=+TPK%KTC5(:) -! -!WC_NO3/NH3=0.0 -! -!WC_NO3/HO2=0.0 -! -!WC_NO3/CO=0.0 -! -!WC_NO3/H2O2=0.0 -! -!WC_NO3/SO2=0.0 -! -!WC_NO3/H2SO4=0.0 -! -!WC_NO3/OH=0.0 -! -!WC_NO3/ETHE=0.0 -! -!WC_NO3/OLEL=0.0 -! -!WC_NO3/OLEH=0.0 -! -!WC_NO3/ALKL=0.0 -! -!WC_NO3/ALKM=0.0 -! -!WC_NO3/ALKH=0.0 -! -!WC_NO3/AROH=0.0 -! -!WC_NO3/AROL=0.0 -! -!WC_NO3/AROO=0.0 -! -!WC_NO3/ARAL=0.0 -! -!WC_NO3/ARAC=0.0 -! -!WC_NO3/PAH=0.0 -! -!WC_NO3/HCHO=0.0 -! -!WC_NO3/ALD2=0.0 -! -!WC_NO3/KETL=0.0 -! -!WC_NO3/KETH=0.0 -! -!WC_NO3/MEOH=0.0 -! -!WC_NO3/ETOH=0.0 -! -!WC_NO3/ALCH=0.0 -! -!WC_NO3/ISOP=0.0 -! -!WC_NO3/BIOL=0.0 -! -!WC_NO3/BIOH=0.0 -! -!WC_NO3/MTBE=0.0 -! -!WC_NO3/MVK=0.0 -! -!WC_NO3/MCR=0.0 -! -!WC_NO3/MGLY=0.0 -! -!WC_NO3/GLY=0.0 -! -!WC_NO3/ORA1=0.0 -! -!WC_NO3/ORA2=0.0 -! -!WC_NO3/ACID=0.0 -! -!WC_NO3/UR28=0.0 -! -!WC_NO3/UR21=0.0 -! -!WC_NO3/URG2=0.0 -! -!WC_NO3/UR26=0.0 -! -!WC_NO3/RPG2=0.0 -! -!WC_NO3/RP18=0.0 -! -!WC_NO3/RPG3=0.0 -! -!WC_NO3/URG4=0.0 -! -!WC_NO3/UR8=0.0 -! -!WC_NO3/UR17=0.0 -! -!WC_NO3/UR7=0.0 -! -!WC_NO3/RPR3=0.0 -! -!WC_NO3/URG6=0.0 -! -!WC_NO3/UR22=0.0 -! -!WC_NO3/URG7=0.0 -! -!WC_NO3/RPR4=0.0 -! -!WC_NO3/RPR7=0.0 -! -!WC_NO3/RPG7=0.0 -! -!WC_NO3/URG8=0.0 -! -!WC_NO3/UR19=0.0 -! -!WC_NO3/URG9=0.0 -! -!WC_NO3/AP7=0.0 -! -!WC_NO3/URG10=0.0 -! -!WC_NO3/RPR1=0.0 -! -!WC_NO3/RPR5=0.0 -! -!WC_NO3/RPR8=0.0 -! -!WC_NO3/RP10=0.0 -! -!WC_NO3/RP11=0.0 -! -!WC_NO3/RP16=0.0 -! -!WC_NO3/RPRL=0.0 -! -!WC_NO3/APAN=0.0 -! -!WC_NO3/PAN1=0.0 -! -!WC_NO3/PAN2=0.0 -! -!WC_NO3/PAN3=0.0 -! -!WC_NO3/PAN4=0.0 -! -!WC_NO3/PAN6=0.0 -! -!WC_NO3/PAN7=0.0 -! -!WC_NO3/PAN8=0.0 -! -!WC_NO3/PN10=0.0 -! -!WC_NO3/RO2T=0.0 -! -!WC_NO3/RO21=0.0 -! -!WC_NO3/RO25=0.0 -! -!WC_NO3/WC_O3=0.0 -! -!WC_NO3/WC_H2O2=0.0 -! -!WC_NO3/WC_NO=0.0 -! -!WC_NO3/WC_NO2=0.0 -! -!WC_NO3/WC_NO3=-KTC36-KC15*<WC_H2SO4>-KC16*<WC_SO2> - PJAC(:,92,92)=-TPK%KTC36(:)-TPK%KC15(:)*PCONC(:,102)-TPK%KC16(:)*PCONC(:,101) -! -!WC_NO3/WC_N2O5=0.0 -! -!WC_NO3/WC_HONO=0.0 -! -!WC_NO3/WC_HNO3=0.0 -! -!WC_NO3/WC_HNO4=0.0 -! -!WC_NO3/WC_NH3=0.0 -! -!WC_NO3/WC_OH=0.0 -! -!WC_NO3/WC_HO2=0.0 -! -!WC_NO3/WC_CO2=0.0 -! -!WC_NO3/WC_SO2=-KC16*<WC_NO3> - PJAC(:,92,101)=-TPK%KC16(:)*PCONC(:,92) -! -!WC_NO3/WC_H2SO4=-KC15*<WC_NO3> - PJAC(:,92,102)=-TPK%KC15(:)*PCONC(:,92) -! -!WC_NO3/WC_RO21=0.0 -! -!WC_NO3/WC_RO25=0.0 -! -!WC_NO3/WC_MEOH=0.0 -! -!WC_NO3/WC_ETOH=0.0 -! -!WC_NO3/WC_ALCH=0.0 -! -!WC_NO3/WC_HCHO=0.0 -! -!WC_NO3/WC_ALD2=0.0 -! -!WC_NO3/WC_GLY=0.0 -! -!WC_NO3/WC_MGLY=0.0 -! -!WC_NO3/WC_KETL=0.0 -! -!WC_NO3/WC_ORA1=0.0 -! -!WC_NO3/WC_ORA2=0.0 -! -!WC_NO3/WC_ACID=0.0 -! -!WC_NO3/WC_RP16=0.0 -! -!WC_NO3/WC_UR21=0.0 -! -!WC_NO3/WC_UR28=0.0 -! -!WC_NO3/WC_ACID2=0.0 -! -!WC_NO3/WC_ASO3=0.0 -! -!WC_NO3/WC_ASO4=0.0 -! -!WC_NO3/WC_ASO5=0.0 -! -!WC_NO3/WC_AHSO5=0.0 -! -!WC_NO3/WC_AHMS=0.0 -! -!WC_NO3/WR_O3=0.0 -! -!WC_NO3/WR_H2O2=0.0 -! -!WC_NO3/WR_NO=0.0 -! -!WC_NO3/WR_NO2=0.0 -! -!WC_NO3/WR_NO3=0.0 -! -!WC_NO3/WR_N2O5=0.0 -! -!WC_NO3/WR_HONO=0.0 -! -!WC_NO3/WR_HNO3=0.0 -! -!WC_NO3/WR_HNO4=0.0 -! -!WC_NO3/WR_NH3=0.0 -! -!WC_NO3/WR_OH=0.0 -! -!WC_NO3/WR_HO2=0.0 -! -!WC_NO3/WR_CO2=0.0 -! -!WC_NO3/WR_SO2=0.0 -! -!WC_NO3/WR_H2SO4=0.0 -! -!WC_NO3/WR_RO21=0.0 -! -!WC_NO3/WR_RO25=0.0 -! -!WC_NO3/WR_MEOH=0.0 -! -!WC_NO3/WR_ETOH=0.0 -! -!WC_NO3/WR_ALCH=0.0 -! -!WC_NO3/WR_HCHO=0.0 -! -!WC_NO3/WR_ALD2=0.0 -! -!WC_NO3/WR_GLY=0.0 -! -!WC_NO3/WR_MGLY=0.0 -! -!WC_NO3/WR_KETL=0.0 -! -!WC_NO3/WR_ORA1=0.0 -! -!WC_NO3/WR_ORA2=0.0 -! -!WC_NO3/WR_ACID=0.0 -! -!WC_NO3/WR_RP16=0.0 -! -!WC_NO3/WR_UR21=0.0 -! -!WC_NO3/WR_UR28=0.0 -! -!WC_NO3/WR_ACID2=0.0 -! -!WC_NO3/WR_ASO3=0.0 -! -!WC_NO3/WR_ASO4=0.0 -! -!WC_NO3/WR_ASO5=0.0 -! -!WC_NO3/WR_AHSO5=0.0 -! -!WC_NO3/WR_AHMS=0.0 -! -!WC_N2O5/NO=0.0 -! -!WC_N2O5/NO2=0.0 -! -!WC_N2O5/O3=0.0 -! -!WC_N2O5/HONO=0.0 -! -!WC_N2O5/HNO3=0.0 -! -!WC_N2O5/HNO4=0.0 -! -!WC_N2O5/N2O5=+KTC6 - PJAC(:,93,7)=+TPK%KTC6(:) -! -!WC_N2O5/NO3=0.0 -! -!WC_N2O5/NH3=0.0 -! -!WC_N2O5/HO2=0.0 -! -!WC_N2O5/CO=0.0 -! -!WC_N2O5/H2O2=0.0 -! -!WC_N2O5/SO2=0.0 -! -!WC_N2O5/H2SO4=0.0 -! -!WC_N2O5/OH=0.0 -! -!WC_N2O5/ETHE=0.0 -! -!WC_N2O5/OLEL=0.0 -! -!WC_N2O5/OLEH=0.0 -! -!WC_N2O5/ALKL=0.0 -! -!WC_N2O5/ALKM=0.0 -! -!WC_N2O5/ALKH=0.0 -! -!WC_N2O5/AROH=0.0 -! -!WC_N2O5/AROL=0.0 -! -!WC_N2O5/AROO=0.0 -! -!WC_N2O5/ARAL=0.0 -! -!WC_N2O5/ARAC=0.0 -! -!WC_N2O5/PAH=0.0 -! -!WC_N2O5/HCHO=0.0 -! -!WC_N2O5/ALD2=0.0 -! -!WC_N2O5/KETL=0.0 -! -!WC_N2O5/KETH=0.0 -! -!WC_N2O5/MEOH=0.0 -! -!WC_N2O5/ETOH=0.0 -! -!WC_N2O5/ALCH=0.0 -! -!WC_N2O5/ISOP=0.0 -! -!WC_N2O5/BIOL=0.0 -! -!WC_N2O5/BIOH=0.0 -! -!WC_N2O5/MTBE=0.0 -! -!WC_N2O5/MVK=0.0 -! -!WC_N2O5/MCR=0.0 -! -!WC_N2O5/MGLY=0.0 -! -!WC_N2O5/GLY=0.0 -! -!WC_N2O5/ORA1=0.0 -! -!WC_N2O5/ORA2=0.0 -! -!WC_N2O5/ACID=0.0 -! -!WC_N2O5/UR28=0.0 -! -!WC_N2O5/UR21=0.0 -! -!WC_N2O5/URG2=0.0 -! -!WC_N2O5/UR26=0.0 -! -!WC_N2O5/RPG2=0.0 -! -!WC_N2O5/RP18=0.0 -! -!WC_N2O5/RPG3=0.0 -! -!WC_N2O5/URG4=0.0 -! -!WC_N2O5/UR8=0.0 -! -!WC_N2O5/UR17=0.0 -! -!WC_N2O5/UR7=0.0 -! -!WC_N2O5/RPR3=0.0 -! -!WC_N2O5/URG6=0.0 -! -!WC_N2O5/UR22=0.0 -! -!WC_N2O5/URG7=0.0 -! -!WC_N2O5/RPR4=0.0 -! -!WC_N2O5/RPR7=0.0 -! -!WC_N2O5/RPG7=0.0 -! -!WC_N2O5/URG8=0.0 -! -!WC_N2O5/UR19=0.0 -! -!WC_N2O5/URG9=0.0 -! -!WC_N2O5/AP7=0.0 -! -!WC_N2O5/URG10=0.0 -! -!WC_N2O5/RPR1=0.0 -! -!WC_N2O5/RPR5=0.0 -! -!WC_N2O5/RPR8=0.0 -! -!WC_N2O5/RP10=0.0 -! -!WC_N2O5/RP11=0.0 -! -!WC_N2O5/RP16=0.0 -! -!WC_N2O5/RPRL=0.0 -! -!WC_N2O5/APAN=0.0 -! -!WC_N2O5/PAN1=0.0 -! -!WC_N2O5/PAN2=0.0 -! -!WC_N2O5/PAN3=0.0 -! -!WC_N2O5/PAN4=0.0 -! -!WC_N2O5/PAN6=0.0 -! -!WC_N2O5/PAN7=0.0 -! -!WC_N2O5/PAN8=0.0 -! -!WC_N2O5/PN10=0.0 -! -!WC_N2O5/RO2T=0.0 -! -!WC_N2O5/RO21=0.0 -! -!WC_N2O5/RO25=0.0 -! -!WC_N2O5/WC_O3=0.0 -! -!WC_N2O5/WC_H2O2=0.0 -! -!WC_N2O5/WC_NO=0.0 -! -!WC_N2O5/WC_NO2=0.0 -! -!WC_N2O5/WC_NO3=0.0 -! -!WC_N2O5/WC_N2O5=-KTC37-KC14 - PJAC(:,93,93)=-TPK%KTC37(:)-TPK%KC14(:) -! -!WC_N2O5/WC_HONO=0.0 -! -!WC_N2O5/WC_HNO3=0.0 -! -!WC_N2O5/WC_HNO4=0.0 -! -!WC_N2O5/WC_NH3=0.0 -! -!WC_N2O5/WC_OH=0.0 -! -!WC_N2O5/WC_HO2=0.0 -! -!WC_N2O5/WC_CO2=0.0 -! -!WC_N2O5/WC_SO2=0.0 -! -!WC_N2O5/WC_H2SO4=0.0 -! -!WC_N2O5/WC_RO21=0.0 -! -!WC_N2O5/WC_RO25=0.0 -! -!WC_N2O5/WC_MEOH=0.0 -! -!WC_N2O5/WC_ETOH=0.0 -! -!WC_N2O5/WC_ALCH=0.0 -! -!WC_N2O5/WC_HCHO=0.0 -! -!WC_N2O5/WC_ALD2=0.0 -! -!WC_N2O5/WC_GLY=0.0 -! -!WC_N2O5/WC_MGLY=0.0 -! -!WC_N2O5/WC_KETL=0.0 -! -!WC_N2O5/WC_ORA1=0.0 -! -!WC_N2O5/WC_ORA2=0.0 -! -!WC_N2O5/WC_ACID=0.0 -! -!WC_N2O5/WC_RP16=0.0 -! -!WC_N2O5/WC_UR21=0.0 -! -!WC_N2O5/WC_UR28=0.0 -! -!WC_N2O5/WC_ACID2=0.0 -! -!WC_N2O5/WC_ASO3=0.0 -! -!WC_N2O5/WC_ASO4=0.0 -! -!WC_N2O5/WC_ASO5=0.0 -! -!WC_N2O5/WC_AHSO5=0.0 -! -!WC_N2O5/WC_AHMS=0.0 -! -!WC_N2O5/WR_O3=0.0 -! -!WC_N2O5/WR_H2O2=0.0 -! -!WC_N2O5/WR_NO=0.0 -! -!WC_N2O5/WR_NO2=0.0 -! -!WC_N2O5/WR_NO3=0.0 -! -!WC_N2O5/WR_N2O5=0.0 -! -!WC_N2O5/WR_HONO=0.0 -! -!WC_N2O5/WR_HNO3=0.0 -! -!WC_N2O5/WR_HNO4=0.0 -! -!WC_N2O5/WR_NH3=0.0 -! -!WC_N2O5/WR_OH=0.0 -! -!WC_N2O5/WR_HO2=0.0 -! -!WC_N2O5/WR_CO2=0.0 -! -!WC_N2O5/WR_SO2=0.0 -! -!WC_N2O5/WR_H2SO4=0.0 -! -!WC_N2O5/WR_RO21=0.0 -! -!WC_N2O5/WR_RO25=0.0 -! -!WC_N2O5/WR_MEOH=0.0 -! -!WC_N2O5/WR_ETOH=0.0 -! -!WC_N2O5/WR_ALCH=0.0 -! -!WC_N2O5/WR_HCHO=0.0 -! -!WC_N2O5/WR_ALD2=0.0 -! -!WC_N2O5/WR_GLY=0.0 -! -!WC_N2O5/WR_MGLY=0.0 -! -!WC_N2O5/WR_KETL=0.0 -! -!WC_N2O5/WR_ORA1=0.0 -! -!WC_N2O5/WR_ORA2=0.0 -! -!WC_N2O5/WR_ACID=0.0 -! -!WC_N2O5/WR_RP16=0.0 -! -!WC_N2O5/WR_UR21=0.0 -! -!WC_N2O5/WR_UR28=0.0 -! -!WC_N2O5/WR_ACID2=0.0 -! -!WC_N2O5/WR_ASO3=0.0 -! -!WC_N2O5/WR_ASO4=0.0 -! -!WC_N2O5/WR_ASO5=0.0 -! -!WC_N2O5/WR_AHSO5=0.0 -! -!WC_N2O5/WR_AHMS=0.0 -! -!WC_HONO/NO=0.0 -! -!WC_HONO/NO2=0.0 -! -!WC_HONO/O3=0.0 -! -!WC_HONO/HONO=+KTC7 - PJAC(:,94,4)=+TPK%KTC7(:) -! -!WC_HONO/HNO3=0.0 -! -!WC_HONO/HNO4=0.0 -! -!WC_HONO/N2O5=0.0 -! -!WC_HONO/NO3=0.0 -! -!WC_HONO/NH3=0.0 -! -!WC_HONO/HO2=0.0 -! -!WC_HONO/CO=0.0 -! -!WC_HONO/H2O2=0.0 -! -!WC_HONO/SO2=0.0 -! -!WC_HONO/H2SO4=0.0 -! -!WC_HONO/OH=0.0 -! -!WC_HONO/ETHE=0.0 -! -!WC_HONO/OLEL=0.0 -! -!WC_HONO/OLEH=0.0 -! -!WC_HONO/ALKL=0.0 -! -!WC_HONO/ALKM=0.0 -! -!WC_HONO/ALKH=0.0 -! -!WC_HONO/AROH=0.0 -! -!WC_HONO/AROL=0.0 -! -!WC_HONO/AROO=0.0 -! -!WC_HONO/ARAL=0.0 -! -!WC_HONO/ARAC=0.0 -! -!WC_HONO/PAH=0.0 -! -!WC_HONO/HCHO=0.0 -! -!WC_HONO/ALD2=0.0 -! -!WC_HONO/KETL=0.0 -! -!WC_HONO/KETH=0.0 -! -!WC_HONO/MEOH=0.0 -! -!WC_HONO/ETOH=0.0 -! -!WC_HONO/ALCH=0.0 -! -!WC_HONO/ISOP=0.0 -! -!WC_HONO/BIOL=0.0 -! -!WC_HONO/BIOH=0.0 -! -!WC_HONO/MTBE=0.0 -! -!WC_HONO/MVK=0.0 -! -!WC_HONO/MCR=0.0 -! -!WC_HONO/MGLY=0.0 -! -!WC_HONO/GLY=0.0 -! -!WC_HONO/ORA1=0.0 -! -!WC_HONO/ORA2=0.0 -! -!WC_HONO/ACID=0.0 -! -!WC_HONO/UR28=0.0 -! -!WC_HONO/UR21=0.0 -! -!WC_HONO/URG2=0.0 -! -!WC_HONO/UR26=0.0 -! -!WC_HONO/RPG2=0.0 -! -!WC_HONO/RP18=0.0 -! -!WC_HONO/RPG3=0.0 -! -!WC_HONO/URG4=0.0 -! -!WC_HONO/UR8=0.0 -! -!WC_HONO/UR17=0.0 -! -!WC_HONO/UR7=0.0 -! -!WC_HONO/RPR3=0.0 -! -!WC_HONO/URG6=0.0 -! -!WC_HONO/UR22=0.0 -! -!WC_HONO/URG7=0.0 -! -!WC_HONO/RPR4=0.0 -! -!WC_HONO/RPR7=0.0 -! -!WC_HONO/RPG7=0.0 -! -!WC_HONO/URG8=0.0 -! -!WC_HONO/UR19=0.0 -! -!WC_HONO/URG9=0.0 -! -!WC_HONO/AP7=0.0 -! -!WC_HONO/URG10=0.0 -! -!WC_HONO/RPR1=0.0 -! -!WC_HONO/RPR5=0.0 -! -!WC_HONO/RPR8=0.0 -! -!WC_HONO/RP10=0.0 -! -!WC_HONO/RP11=0.0 -! -!WC_HONO/RP16=0.0 -! -!WC_HONO/RPRL=0.0 -! -!WC_HONO/APAN=0.0 -! -!WC_HONO/PAN1=0.0 -! -!WC_HONO/PAN2=0.0 -! -!WC_HONO/PAN3=0.0 -! -!WC_HONO/PAN4=0.0 -! -!WC_HONO/PAN6=0.0 -! -!WC_HONO/PAN7=0.0 -! -!WC_HONO/PAN8=0.0 -! -!WC_HONO/PN10=0.0 -! -!WC_HONO/RO2T=0.0 -! -!WC_HONO/RO21=0.0 -! -!WC_HONO/RO25=0.0 -! -!WC_HONO/WC_O3=0.0 -! -!WC_HONO/WC_H2O2=0.0 -! -!WC_HONO/WC_NO=0.0 -! -!WC_HONO/WC_NO2=0.0 -! -!WC_HONO/WC_NO3=0.0 -! -!WC_HONO/WC_N2O5=0.0 -! -!WC_HONO/WC_HONO=-KTC38-KC8*<WC_OH> - PJAC(:,94,94)=-TPK%KTC38(:)-TPK%KC8(:)*PCONC(:,98) -! -!WC_HONO/WC_HNO3=0.0 -! -!WC_HONO/WC_HNO4=+KC11 - PJAC(:,94,96)=+TPK%KC11(:) -! -!WC_HONO/WC_NH3=0.0 -! -!WC_HONO/WC_OH=-KC8*<WC_HONO> - PJAC(:,94,98)=-TPK%KC8(:)*PCONC(:,94) -! -!WC_HONO/WC_HO2=0.0 -! -!WC_HONO/WC_CO2=0.0 -! -!WC_HONO/WC_SO2=0.0 -! -!WC_HONO/WC_H2SO4=0.0 -! -!WC_HONO/WC_RO21=0.0 -! -!WC_HONO/WC_RO25=0.0 -! -!WC_HONO/WC_MEOH=0.0 -! -!WC_HONO/WC_ETOH=0.0 -! -!WC_HONO/WC_ALCH=0.0 -! -!WC_HONO/WC_HCHO=0.0 -! -!WC_HONO/WC_ALD2=0.0 -! -!WC_HONO/WC_GLY=0.0 -! -!WC_HONO/WC_MGLY=0.0 -! -!WC_HONO/WC_KETL=0.0 -! -!WC_HONO/WC_ORA1=0.0 -! -!WC_HONO/WC_ORA2=0.0 -! -!WC_HONO/WC_ACID=0.0 -! -!WC_HONO/WC_RP16=0.0 -! -!WC_HONO/WC_UR21=0.0 -! -!WC_HONO/WC_UR28=0.0 -! -!WC_HONO/WC_ACID2=0.0 -! -!WC_HONO/WC_ASO3=0.0 -! -!WC_HONO/WC_ASO4=0.0 -! -!WC_HONO/WC_ASO5=0.0 -! -!WC_HONO/WC_AHSO5=0.0 -! -!WC_HONO/WC_AHMS=0.0 -! -!WC_HONO/WR_O3=0.0 -! -!WC_HONO/WR_H2O2=0.0 -! -!WC_HONO/WR_NO=0.0 -! -!WC_HONO/WR_NO2=0.0 -! -!WC_HONO/WR_NO3=0.0 -! -!WC_HONO/WR_N2O5=0.0 -! -!WC_HONO/WR_HONO=0.0 -! -!WC_HONO/WR_HNO3=0.0 -! -!WC_HONO/WR_HNO4=0.0 -! -!WC_HONO/WR_NH3=0.0 -! -!WC_HONO/WR_OH=0.0 -! -!WC_HONO/WR_HO2=0.0 -! -!WC_HONO/WR_CO2=0.0 -! -!WC_HONO/WR_SO2=0.0 -! -!WC_HONO/WR_H2SO4=0.0 -! -!WC_HONO/WR_RO21=0.0 -! -!WC_HONO/WR_RO25=0.0 -! -!WC_HONO/WR_MEOH=0.0 -! -!WC_HONO/WR_ETOH=0.0 -! -!WC_HONO/WR_ALCH=0.0 -! -!WC_HONO/WR_HCHO=0.0 -! -!WC_HONO/WR_ALD2=0.0 -! -!WC_HONO/WR_GLY=0.0 -! -!WC_HONO/WR_MGLY=0.0 -! -!WC_HONO/WR_KETL=0.0 -! -!WC_HONO/WR_ORA1=0.0 -! -!WC_HONO/WR_ORA2=0.0 -! -!WC_HONO/WR_ACID=0.0 -! -!WC_HONO/WR_RP16=0.0 -! -!WC_HONO/WR_UR21=0.0 -! -!WC_HONO/WR_UR28=0.0 -! -!WC_HONO/WR_ACID2=0.0 -! -!WC_HONO/WR_ASO3=0.0 -! -!WC_HONO/WR_ASO4=0.0 -! -!WC_HONO/WR_ASO5=0.0 -! -!WC_HONO/WR_AHSO5=0.0 -! -!WC_HONO/WR_AHMS=0.0 -! -!WC_HNO3/NO=0.0 -! -!WC_HNO3/NO2=0.0 -! -!WC_HNO3/O3=0.0 -! -!WC_HNO3/HONO=0.0 -! -!WC_HNO3/HNO3=+KTC8 - PJAC(:,95,5)=+TPK%KTC8(:) -! -!WC_HNO3/HNO4=0.0 -! -!WC_HNO3/N2O5=0.0 -! -!WC_HNO3/NO3=0.0 -! -!WC_HNO3/NH3=0.0 -! -!WC_HNO3/HO2=0.0 -! -!WC_HNO3/CO=0.0 -! -!WC_HNO3/H2O2=0.0 -! -!WC_HNO3/SO2=0.0 -! -!WC_HNO3/H2SO4=0.0 -! -!WC_HNO3/OH=0.0 -! -!WC_HNO3/ETHE=0.0 -! -!WC_HNO3/OLEL=0.0 -! -!WC_HNO3/OLEH=0.0 -! -!WC_HNO3/ALKL=0.0 -! -!WC_HNO3/ALKM=0.0 -! -!WC_HNO3/ALKH=0.0 -! -!WC_HNO3/AROH=0.0 -! -!WC_HNO3/AROL=0.0 -! -!WC_HNO3/AROO=0.0 -! -!WC_HNO3/ARAL=0.0 -! -!WC_HNO3/ARAC=0.0 -! -!WC_HNO3/PAH=0.0 -! -!WC_HNO3/HCHO=0.0 -! -!WC_HNO3/ALD2=0.0 -! -!WC_HNO3/KETL=0.0 -! -!WC_HNO3/KETH=0.0 -! -!WC_HNO3/MEOH=0.0 -! -!WC_HNO3/ETOH=0.0 -! -!WC_HNO3/ALCH=0.0 -! -!WC_HNO3/ISOP=0.0 -! -!WC_HNO3/BIOL=0.0 -! -!WC_HNO3/BIOH=0.0 -! -!WC_HNO3/MTBE=0.0 -! -!WC_HNO3/MVK=0.0 -! -!WC_HNO3/MCR=0.0 -! -!WC_HNO3/MGLY=0.0 -! -!WC_HNO3/GLY=0.0 -! -!WC_HNO3/ORA1=0.0 -! -!WC_HNO3/ORA2=0.0 -! -!WC_HNO3/ACID=0.0 -! -!WC_HNO3/UR28=0.0 -! -!WC_HNO3/UR21=0.0 -! -!WC_HNO3/URG2=0.0 -! -!WC_HNO3/UR26=0.0 -! -!WC_HNO3/RPG2=0.0 -! -!WC_HNO3/RP18=0.0 -! -!WC_HNO3/RPG3=0.0 -! -!WC_HNO3/URG4=0.0 -! -!WC_HNO3/UR8=0.0 -! -!WC_HNO3/UR17=0.0 -! -!WC_HNO3/UR7=0.0 -! -!WC_HNO3/RPR3=0.0 -! -!WC_HNO3/URG6=0.0 -! -!WC_HNO3/UR22=0.0 -! -!WC_HNO3/URG7=0.0 -! -!WC_HNO3/RPR4=0.0 -! -!WC_HNO3/RPR7=0.0 -! -!WC_HNO3/RPG7=0.0 -! -!WC_HNO3/URG8=0.0 -! -!WC_HNO3/UR19=0.0 -! -!WC_HNO3/URG9=0.0 -! -!WC_HNO3/AP7=0.0 -! -!WC_HNO3/URG10=0.0 -! -!WC_HNO3/RPR1=0.0 -! -!WC_HNO3/RPR5=0.0 -! -!WC_HNO3/RPR8=0.0 -! -!WC_HNO3/RP10=0.0 -! -!WC_HNO3/RP11=0.0 -! -!WC_HNO3/RP16=0.0 -! -!WC_HNO3/RPRL=0.0 -! -!WC_HNO3/APAN=0.0 -! -!WC_HNO3/PAN1=0.0 -! -!WC_HNO3/PAN2=0.0 -! -!WC_HNO3/PAN3=0.0 -! -!WC_HNO3/PAN4=0.0 -! -!WC_HNO3/PAN6=0.0 -! -!WC_HNO3/PAN7=0.0 -! -!WC_HNO3/PAN8=0.0 -! -!WC_HNO3/PN10=0.0 -! -!WC_HNO3/RO2T=0.0 -! -!WC_HNO3/RO21=0.0 -! -!WC_HNO3/RO25=0.0 -! -!WC_HNO3/WC_O3=0.0 -! -!WC_HNO3/WC_H2O2=0.0 -! -!WC_HNO3/WC_NO=0.0 -! -!WC_HNO3/WC_NO2=0.0 -! -!WC_HNO3/WC_NO3=+KC15*<WC_H2SO4>+KC16*<WC_SO2> - PJAC(:,95,92)=+TPK%KC15(:)*PCONC(:,102)+TPK%KC16(:)*PCONC(:,101) -! -!WC_HNO3/WC_N2O5=+KC14+KC14 - PJAC(:,95,93)=+TPK%KC14(:)+TPK%KC14(:) -! -!WC_HNO3/WC_HONO=0.0 -! -!WC_HNO3/WC_HNO3=-KTC39-KC13 - PJAC(:,95,95)=-TPK%KTC39(:)-TPK%KC13(:) -! -!WC_HNO3/WC_HNO4=+KC12*<WC_SO2> - PJAC(:,95,96)=+TPK%KC12(:)*PCONC(:,101) -! -!WC_HNO3/WC_NH3=0.0 -! -!WC_HNO3/WC_OH=0.0 -! -!WC_HNO3/WC_HO2=0.0 -! -!WC_HNO3/WC_CO2=0.0 -! -!WC_HNO3/WC_SO2=+KC12*<WC_HNO4>+KC16*<WC_NO3> - PJAC(:,95,101)=+TPK%KC12(:)*PCONC(:,96)+TPK%KC16(:)*PCONC(:,92) -! -!WC_HNO3/WC_H2SO4=+KC15*<WC_NO3> - PJAC(:,95,102)=+TPK%KC15(:)*PCONC(:,92) -! -!WC_HNO3/WC_RO21=0.0 -! -!WC_HNO3/WC_RO25=0.0 -! -!WC_HNO3/WC_MEOH=0.0 -! -!WC_HNO3/WC_ETOH=0.0 -! -!WC_HNO3/WC_ALCH=0.0 -! -!WC_HNO3/WC_HCHO=0.0 -! -!WC_HNO3/WC_ALD2=0.0 -! -!WC_HNO3/WC_GLY=0.0 -! -!WC_HNO3/WC_MGLY=0.0 -! -!WC_HNO3/WC_KETL=0.0 -! -!WC_HNO3/WC_ORA1=0.0 -! -!WC_HNO3/WC_ORA2=0.0 -! -!WC_HNO3/WC_ACID=0.0 -! -!WC_HNO3/WC_RP16=0.0 -! -!WC_HNO3/WC_UR21=0.0 -! -!WC_HNO3/WC_UR28=0.0 -! -!WC_HNO3/WC_ACID2=0.0 -! -!WC_HNO3/WC_ASO3=0.0 -! -!WC_HNO3/WC_ASO4=0.0 -! -!WC_HNO3/WC_ASO5=0.0 -! -!WC_HNO3/WC_AHSO5=0.0 -! -!WC_HNO3/WC_AHMS=0.0 -! -!WC_HNO3/WR_O3=0.0 -! -!WC_HNO3/WR_H2O2=0.0 -! -!WC_HNO3/WR_NO=0.0 -! -!WC_HNO3/WR_NO2=0.0 -! -!WC_HNO3/WR_NO3=0.0 -! -!WC_HNO3/WR_N2O5=0.0 -! -!WC_HNO3/WR_HONO=0.0 -! -!WC_HNO3/WR_HNO3=0.0 -! -!WC_HNO3/WR_HNO4=0.0 -! -!WC_HNO3/WR_NH3=0.0 -! -!WC_HNO3/WR_OH=0.0 -! -!WC_HNO3/WR_HO2=0.0 -! -!WC_HNO3/WR_CO2=0.0 -! -!WC_HNO3/WR_SO2=0.0 -! -!WC_HNO3/WR_H2SO4=0.0 -! -!WC_HNO3/WR_RO21=0.0 -! -!WC_HNO3/WR_RO25=0.0 -! -!WC_HNO3/WR_MEOH=0.0 -! -!WC_HNO3/WR_ETOH=0.0 -! -!WC_HNO3/WR_ALCH=0.0 -! -!WC_HNO3/WR_HCHO=0.0 -! -!WC_HNO3/WR_ALD2=0.0 -! -!WC_HNO3/WR_GLY=0.0 -! -!WC_HNO3/WR_MGLY=0.0 -! -!WC_HNO3/WR_KETL=0.0 -! -!WC_HNO3/WR_ORA1=0.0 -! -!WC_HNO3/WR_ORA2=0.0 -! -!WC_HNO3/WR_ACID=0.0 -! -!WC_HNO3/WR_RP16=0.0 -! -!WC_HNO3/WR_UR21=0.0 -! -!WC_HNO3/WR_UR28=0.0 -! -!WC_HNO3/WR_ACID2=0.0 -! -!WC_HNO3/WR_ASO3=0.0 -! -!WC_HNO3/WR_ASO4=0.0 -! -!WC_HNO3/WR_ASO5=0.0 -! -!WC_HNO3/WR_AHSO5=0.0 -! -!WC_HNO3/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ18 -! -SUBROUTINE SUBJ19 -! -!Indices 96 a 100 -! -! -!WC_HNO4/NO=0.0 -! -!WC_HNO4/NO2=0.0 -! -!WC_HNO4/O3=0.0 -! -!WC_HNO4/HONO=0.0 -! -!WC_HNO4/HNO3=0.0 -! -!WC_HNO4/HNO4=+KTC9 - PJAC(:,96,6)=+TPK%KTC9(:) -! -!WC_HNO4/N2O5=0.0 -! -!WC_HNO4/NO3=0.0 -! -!WC_HNO4/NH3=0.0 -! -!WC_HNO4/HO2=0.0 -! -!WC_HNO4/CO=0.0 -! -!WC_HNO4/H2O2=0.0 -! -!WC_HNO4/SO2=0.0 -! -!WC_HNO4/H2SO4=0.0 -! -!WC_HNO4/OH=0.0 -! -!WC_HNO4/ETHE=0.0 -! -!WC_HNO4/OLEL=0.0 -! -!WC_HNO4/OLEH=0.0 -! -!WC_HNO4/ALKL=0.0 -! -!WC_HNO4/ALKM=0.0 -! -!WC_HNO4/ALKH=0.0 -! -!WC_HNO4/AROH=0.0 -! -!WC_HNO4/AROL=0.0 -! -!WC_HNO4/AROO=0.0 -! -!WC_HNO4/ARAL=0.0 -! -!WC_HNO4/ARAC=0.0 -! -!WC_HNO4/PAH=0.0 -! -!WC_HNO4/HCHO=0.0 -! -!WC_HNO4/ALD2=0.0 -! -!WC_HNO4/KETL=0.0 -! -!WC_HNO4/KETH=0.0 -! -!WC_HNO4/MEOH=0.0 -! -!WC_HNO4/ETOH=0.0 -! -!WC_HNO4/ALCH=0.0 -! -!WC_HNO4/ISOP=0.0 -! -!WC_HNO4/BIOL=0.0 -! -!WC_HNO4/BIOH=0.0 -! -!WC_HNO4/MTBE=0.0 -! -!WC_HNO4/MVK=0.0 -! -!WC_HNO4/MCR=0.0 -! -!WC_HNO4/MGLY=0.0 -! -!WC_HNO4/GLY=0.0 -! -!WC_HNO4/ORA1=0.0 -! -!WC_HNO4/ORA2=0.0 -! -!WC_HNO4/ACID=0.0 -! -!WC_HNO4/UR28=0.0 -! -!WC_HNO4/UR21=0.0 -! -!WC_HNO4/URG2=0.0 -! -!WC_HNO4/UR26=0.0 -! -!WC_HNO4/RPG2=0.0 -! -!WC_HNO4/RP18=0.0 -! -!WC_HNO4/RPG3=0.0 -! -!WC_HNO4/URG4=0.0 -! -!WC_HNO4/UR8=0.0 -! -!WC_HNO4/UR17=0.0 -! -!WC_HNO4/UR7=0.0 -! -!WC_HNO4/RPR3=0.0 -! -!WC_HNO4/URG6=0.0 -! -!WC_HNO4/UR22=0.0 -! -!WC_HNO4/URG7=0.0 -! -!WC_HNO4/RPR4=0.0 -! -!WC_HNO4/RPR7=0.0 -! -!WC_HNO4/RPG7=0.0 -! -!WC_HNO4/URG8=0.0 -! -!WC_HNO4/UR19=0.0 -! -!WC_HNO4/URG9=0.0 -! -!WC_HNO4/AP7=0.0 -! -!WC_HNO4/URG10=0.0 -! -!WC_HNO4/RPR1=0.0 -! -!WC_HNO4/RPR5=0.0 -! -!WC_HNO4/RPR8=0.0 -! -!WC_HNO4/RP10=0.0 -! -!WC_HNO4/RP11=0.0 -! -!WC_HNO4/RP16=0.0 -! -!WC_HNO4/RPRL=0.0 -! -!WC_HNO4/APAN=0.0 -! -!WC_HNO4/PAN1=0.0 -! -!WC_HNO4/PAN2=0.0 -! -!WC_HNO4/PAN3=0.0 -! -!WC_HNO4/PAN4=0.0 -! -!WC_HNO4/PAN6=0.0 -! -!WC_HNO4/PAN7=0.0 -! -!WC_HNO4/PAN8=0.0 -! -!WC_HNO4/PN10=0.0 -! -!WC_HNO4/RO2T=0.0 -! -!WC_HNO4/RO21=0.0 -! -!WC_HNO4/RO25=0.0 -! -!WC_HNO4/WC_O3=0.0 -! -!WC_HNO4/WC_H2O2=0.0 -! -!WC_HNO4/WC_NO=0.0 -! -!WC_HNO4/WC_NO2=+KC9*<WC_HO2> - PJAC(:,96,91)=+TPK%KC9(:)*PCONC(:,99) -! -!WC_HNO4/WC_NO3=0.0 -! -!WC_HNO4/WC_N2O5=0.0 -! -!WC_HNO4/WC_HONO=0.0 -! -!WC_HNO4/WC_HNO3=0.0 -! -!WC_HNO4/WC_HNO4=-KTC40-KC10-KC11-KC12*<WC_SO2> - PJAC(:,96,96)=-TPK%KTC40(:)-TPK%KC10(:)-TPK%KC11(:)-TPK%KC12(:)*PCONC(:,101) -! -!WC_HNO4/WC_NH3=0.0 -! -!WC_HNO4/WC_OH=0.0 -! -!WC_HNO4/WC_HO2=+KC9*<WC_NO2> - PJAC(:,96,99)=+TPK%KC9(:)*PCONC(:,91) -! -!WC_HNO4/WC_CO2=0.0 -! -!WC_HNO4/WC_SO2=-KC12*<WC_HNO4> - PJAC(:,96,101)=-TPK%KC12(:)*PCONC(:,96) -! -!WC_HNO4/WC_H2SO4=0.0 -! -!WC_HNO4/WC_RO21=0.0 -! -!WC_HNO4/WC_RO25=0.0 -! -!WC_HNO4/WC_MEOH=0.0 -! -!WC_HNO4/WC_ETOH=0.0 -! -!WC_HNO4/WC_ALCH=0.0 -! -!WC_HNO4/WC_HCHO=0.0 -! -!WC_HNO4/WC_ALD2=0.0 -! -!WC_HNO4/WC_GLY=0.0 -! -!WC_HNO4/WC_MGLY=0.0 -! -!WC_HNO4/WC_KETL=0.0 -! -!WC_HNO4/WC_ORA1=0.0 -! -!WC_HNO4/WC_ORA2=0.0 -! -!WC_HNO4/WC_ACID=0.0 -! -!WC_HNO4/WC_RP16=0.0 -! -!WC_HNO4/WC_UR21=0.0 -! -!WC_HNO4/WC_UR28=0.0 -! -!WC_HNO4/WC_ACID2=0.0 -! -!WC_HNO4/WC_ASO3=0.0 -! -!WC_HNO4/WC_ASO4=0.0 -! -!WC_HNO4/WC_ASO5=0.0 -! -!WC_HNO4/WC_AHSO5=0.0 -! -!WC_HNO4/WC_AHMS=0.0 -! -!WC_HNO4/WR_O3=0.0 -! -!WC_HNO4/WR_H2O2=0.0 -! -!WC_HNO4/WR_NO=0.0 -! -!WC_HNO4/WR_NO2=0.0 -! -!WC_HNO4/WR_NO3=0.0 -! -!WC_HNO4/WR_N2O5=0.0 -! -!WC_HNO4/WR_HONO=0.0 -! -!WC_HNO4/WR_HNO3=0.0 -! -!WC_HNO4/WR_HNO4=0.0 -! -!WC_HNO4/WR_NH3=0.0 -! -!WC_HNO4/WR_OH=0.0 -! -!WC_HNO4/WR_HO2=0.0 -! -!WC_HNO4/WR_CO2=0.0 -! -!WC_HNO4/WR_SO2=0.0 -! -!WC_HNO4/WR_H2SO4=0.0 -! -!WC_HNO4/WR_RO21=0.0 -! -!WC_HNO4/WR_RO25=0.0 -! -!WC_HNO4/WR_MEOH=0.0 -! -!WC_HNO4/WR_ETOH=0.0 -! -!WC_HNO4/WR_ALCH=0.0 -! -!WC_HNO4/WR_HCHO=0.0 -! -!WC_HNO4/WR_ALD2=0.0 -! -!WC_HNO4/WR_GLY=0.0 -! -!WC_HNO4/WR_MGLY=0.0 -! -!WC_HNO4/WR_KETL=0.0 -! -!WC_HNO4/WR_ORA1=0.0 -! -!WC_HNO4/WR_ORA2=0.0 -! -!WC_HNO4/WR_ACID=0.0 -! -!WC_HNO4/WR_RP16=0.0 -! -!WC_HNO4/WR_UR21=0.0 -! -!WC_HNO4/WR_UR28=0.0 -! -!WC_HNO4/WR_ACID2=0.0 -! -!WC_HNO4/WR_ASO3=0.0 -! -!WC_HNO4/WR_ASO4=0.0 -! -!WC_HNO4/WR_ASO5=0.0 -! -!WC_HNO4/WR_AHSO5=0.0 -! -!WC_HNO4/WR_AHMS=0.0 -! -!WC_NH3/NO=0.0 -! -!WC_NH3/NO2=0.0 -! -!WC_NH3/O3=0.0 -! -!WC_NH3/HONO=0.0 -! -!WC_NH3/HNO3=0.0 -! -!WC_NH3/HNO4=0.0 -! -!WC_NH3/N2O5=0.0 -! -!WC_NH3/NO3=0.0 -! -!WC_NH3/NH3=+KTC10 - PJAC(:,97,9)=+TPK%KTC10(:) -! -!WC_NH3/HO2=0.0 -! -!WC_NH3/CO=0.0 -! -!WC_NH3/H2O2=0.0 -! -!WC_NH3/SO2=0.0 -! -!WC_NH3/H2SO4=0.0 -! -!WC_NH3/OH=0.0 -! -!WC_NH3/ETHE=0.0 -! -!WC_NH3/OLEL=0.0 -! -!WC_NH3/OLEH=0.0 -! -!WC_NH3/ALKL=0.0 -! -!WC_NH3/ALKM=0.0 -! -!WC_NH3/ALKH=0.0 -! -!WC_NH3/AROH=0.0 -! -!WC_NH3/AROL=0.0 -! -!WC_NH3/AROO=0.0 -! -!WC_NH3/ARAL=0.0 -! -!WC_NH3/ARAC=0.0 -! -!WC_NH3/PAH=0.0 -! -!WC_NH3/HCHO=0.0 -! -!WC_NH3/ALD2=0.0 -! -!WC_NH3/KETL=0.0 -! -!WC_NH3/KETH=0.0 -! -!WC_NH3/MEOH=0.0 -! -!WC_NH3/ETOH=0.0 -! -!WC_NH3/ALCH=0.0 -! -!WC_NH3/ISOP=0.0 -! -!WC_NH3/BIOL=0.0 -! -!WC_NH3/BIOH=0.0 -! -!WC_NH3/MTBE=0.0 -! -!WC_NH3/MVK=0.0 -! -!WC_NH3/MCR=0.0 -! -!WC_NH3/MGLY=0.0 -! -!WC_NH3/GLY=0.0 -! -!WC_NH3/ORA1=0.0 -! -!WC_NH3/ORA2=0.0 -! -!WC_NH3/ACID=0.0 -! -!WC_NH3/UR28=0.0 -! -!WC_NH3/UR21=0.0 -! -!WC_NH3/URG2=0.0 -! -!WC_NH3/UR26=0.0 -! -!WC_NH3/RPG2=0.0 -! -!WC_NH3/RP18=0.0 -! -!WC_NH3/RPG3=0.0 -! -!WC_NH3/URG4=0.0 -! -!WC_NH3/UR8=0.0 -! -!WC_NH3/UR17=0.0 -! -!WC_NH3/UR7=0.0 -! -!WC_NH3/RPR3=0.0 -! -!WC_NH3/URG6=0.0 -! -!WC_NH3/UR22=0.0 -! -!WC_NH3/URG7=0.0 -! -!WC_NH3/RPR4=0.0 -! -!WC_NH3/RPR7=0.0 -! -!WC_NH3/RPG7=0.0 -! -!WC_NH3/URG8=0.0 -! -!WC_NH3/UR19=0.0 -! -!WC_NH3/URG9=0.0 -! -!WC_NH3/AP7=0.0 -! -!WC_NH3/URG10=0.0 -! -!WC_NH3/RPR1=0.0 -! -!WC_NH3/RPR5=0.0 -! -!WC_NH3/RPR8=0.0 -! -!WC_NH3/RP10=0.0 -! -!WC_NH3/RP11=0.0 -! -!WC_NH3/RP16=0.0 -! -!WC_NH3/RPRL=0.0 -! -!WC_NH3/APAN=0.0 -! -!WC_NH3/PAN1=0.0 -! -!WC_NH3/PAN2=0.0 -! -!WC_NH3/PAN3=0.0 -! -!WC_NH3/PAN4=0.0 -! -!WC_NH3/PAN6=0.0 -! -!WC_NH3/PAN7=0.0 -! -!WC_NH3/PAN8=0.0 -! -!WC_NH3/PN10=0.0 -! -!WC_NH3/RO2T=0.0 -! -!WC_NH3/RO21=0.0 -! -!WC_NH3/RO25=0.0 -! -!WC_NH3/WC_O3=0.0 -! -!WC_NH3/WC_H2O2=0.0 -! -!WC_NH3/WC_NO=0.0 -! -!WC_NH3/WC_NO2=0.0 -! -!WC_NH3/WC_NO3=0.0 -! -!WC_NH3/WC_N2O5=0.0 -! -!WC_NH3/WC_HONO=0.0 -! -!WC_NH3/WC_HNO3=0.0 -! -!WC_NH3/WC_HNO4=0.0 -! -!WC_NH3/WC_NH3=-KTC41 - PJAC(:,97,97)=-TPK%KTC41(:) -! -!WC_NH3/WC_OH=0.0 -! -!WC_NH3/WC_HO2=0.0 -! -!WC_NH3/WC_CO2=0.0 -! -!WC_NH3/WC_SO2=0.0 -! -!WC_NH3/WC_H2SO4=0.0 -! -!WC_NH3/WC_RO21=0.0 -! -!WC_NH3/WC_RO25=0.0 -! -!WC_NH3/WC_MEOH=0.0 -! -!WC_NH3/WC_ETOH=0.0 -! -!WC_NH3/WC_ALCH=0.0 -! -!WC_NH3/WC_HCHO=0.0 -! -!WC_NH3/WC_ALD2=0.0 -! -!WC_NH3/WC_GLY=0.0 -! -!WC_NH3/WC_MGLY=0.0 -! -!WC_NH3/WC_KETL=0.0 -! -!WC_NH3/WC_ORA1=0.0 -! -!WC_NH3/WC_ORA2=0.0 -! -!WC_NH3/WC_ACID=0.0 -! -!WC_NH3/WC_RP16=0.0 -! -!WC_NH3/WC_UR21=0.0 -! -!WC_NH3/WC_UR28=0.0 -! -!WC_NH3/WC_ACID2=0.0 -! -!WC_NH3/WC_ASO3=0.0 -! -!WC_NH3/WC_ASO4=0.0 -! -!WC_NH3/WC_ASO5=0.0 -! -!WC_NH3/WC_AHSO5=0.0 -! -!WC_NH3/WC_AHMS=0.0 -! -!WC_NH3/WR_O3=0.0 -! -!WC_NH3/WR_H2O2=0.0 -! -!WC_NH3/WR_NO=0.0 -! -!WC_NH3/WR_NO2=0.0 -! -!WC_NH3/WR_NO3=0.0 -! -!WC_NH3/WR_N2O5=0.0 -! -!WC_NH3/WR_HONO=0.0 -! -!WC_NH3/WR_HNO3=0.0 -! -!WC_NH3/WR_HNO4=0.0 -! -!WC_NH3/WR_NH3=0.0 -! -!WC_NH3/WR_OH=0.0 -! -!WC_NH3/WR_HO2=0.0 -! -!WC_NH3/WR_CO2=0.0 -! -!WC_NH3/WR_SO2=0.0 -! -!WC_NH3/WR_H2SO4=0.0 -! -!WC_NH3/WR_RO21=0.0 -! -!WC_NH3/WR_RO25=0.0 -! -!WC_NH3/WR_MEOH=0.0 -! -!WC_NH3/WR_ETOH=0.0 -! -!WC_NH3/WR_ALCH=0.0 -! -!WC_NH3/WR_HCHO=0.0 -! -!WC_NH3/WR_ALD2=0.0 -! -!WC_NH3/WR_GLY=0.0 -! -!WC_NH3/WR_MGLY=0.0 -! -!WC_NH3/WR_KETL=0.0 -! -!WC_NH3/WR_ORA1=0.0 -! -!WC_NH3/WR_ORA2=0.0 -! -!WC_NH3/WR_ACID=0.0 -! -!WC_NH3/WR_RP16=0.0 -! -!WC_NH3/WR_UR21=0.0 -! -!WC_NH3/WR_UR28=0.0 -! -!WC_NH3/WR_ACID2=0.0 -! -!WC_NH3/WR_ASO3=0.0 -! -!WC_NH3/WR_ASO4=0.0 -! -!WC_NH3/WR_ASO5=0.0 -! -!WC_NH3/WR_AHSO5=0.0 -! -!WC_NH3/WR_AHMS=0.0 -! -!WC_OH/NO=0.0 -! -!WC_OH/NO2=0.0 -! -!WC_OH/O3=0.0 -! -!WC_OH/HONO=0.0 -! -!WC_OH/HNO3=0.0 -! -!WC_OH/HNO4=0.0 -! -!WC_OH/N2O5=0.0 -! -!WC_OH/NO3=0.0 -! -!WC_OH/NH3=0.0 -! -!WC_OH/HO2=0.0 -! -!WC_OH/CO=0.0 -! -!WC_OH/H2O2=0.0 -! -!WC_OH/SO2=0.0 -! -!WC_OH/H2SO4=0.0 -! -!WC_OH/OH=+KTC11 - PJAC(:,98,15)=+TPK%KTC11(:) -! -!WC_OH/ETHE=0.0 -! -!WC_OH/OLEL=0.0 -! -!WC_OH/OLEH=0.0 -! -!WC_OH/ALKL=0.0 -! -!WC_OH/ALKM=0.0 -! -!WC_OH/ALKH=0.0 -! -!WC_OH/AROH=0.0 -! -!WC_OH/AROL=0.0 -! -!WC_OH/AROO=0.0 -! -!WC_OH/ARAL=0.0 -! -!WC_OH/ARAC=0.0 -! -!WC_OH/PAH=0.0 -! -!WC_OH/HCHO=0.0 -! -!WC_OH/ALD2=0.0 -! -!WC_OH/KETL=0.0 -! -!WC_OH/KETH=0.0 -! -!WC_OH/MEOH=0.0 -! -!WC_OH/ETOH=0.0 -! -!WC_OH/ALCH=0.0 -! -!WC_OH/ISOP=0.0 -! -!WC_OH/BIOL=0.0 -! -!WC_OH/BIOH=0.0 -! -!WC_OH/MTBE=0.0 -! -!WC_OH/MVK=0.0 -! -!WC_OH/MCR=0.0 -! -!WC_OH/MGLY=0.0 -! -!WC_OH/GLY=0.0 -! -!WC_OH/ORA1=0.0 -! -!WC_OH/ORA2=0.0 -! -!WC_OH/ACID=0.0 -! -!WC_OH/UR28=0.0 -! -!WC_OH/UR21=0.0 -! -!WC_OH/URG2=0.0 -! -!WC_OH/UR26=0.0 -! -!WC_OH/RPG2=0.0 -! -!WC_OH/RP18=0.0 -! -!WC_OH/RPG3=0.0 -! -!WC_OH/URG4=0.0 -! -!WC_OH/UR8=0.0 -! -!WC_OH/UR17=0.0 -! -!WC_OH/UR7=0.0 -! -!WC_OH/RPR3=0.0 -! -!WC_OH/URG6=0.0 -! -!WC_OH/UR22=0.0 -! -!WC_OH/URG7=0.0 -! -!WC_OH/RPR4=0.0 -! -!WC_OH/RPR7=0.0 -! -!WC_OH/RPG7=0.0 -! -!WC_OH/URG8=0.0 -! -!WC_OH/UR19=0.0 -! -!WC_OH/URG9=0.0 -! -!WC_OH/AP7=0.0 -! -!WC_OH/URG10=0.0 -! -!WC_OH/RPR1=0.0 -! -!WC_OH/RPR5=0.0 -! -!WC_OH/RPR8=0.0 -! -!WC_OH/RP10=0.0 -! -!WC_OH/RP11=0.0 -! -!WC_OH/RP16=0.0 -! -!WC_OH/RPRL=0.0 -! -!WC_OH/APAN=0.0 -! -!WC_OH/PAN1=0.0 -! -!WC_OH/PAN2=0.0 -! -!WC_OH/PAN3=0.0 -! -!WC_OH/PAN4=0.0 -! -!WC_OH/PAN6=0.0 -! -!WC_OH/PAN7=0.0 -! -!WC_OH/PAN8=0.0 -! -!WC_OH/PN10=0.0 -! -!WC_OH/RO2T=0.0 -! -!WC_OH/RO21=0.0 -! -!WC_OH/RO25=0.0 -! -!WC_OH/WC_O3=+KC6*<WC_HO2> - PJAC(:,98,88)=+TPK%KC6(:)*PCONC(:,99) -! -!WC_OH/WC_H2O2=+KC1+KC1-KC4*<WC_OH> - PJAC(:,98,89)=+TPK%KC1(:)+TPK%KC1(:)-TPK%KC4(:)*PCONC(:,98) -! -!WC_OH/WC_NO=0.0 -! -!WC_OH/WC_NO2=0.0 -! -!WC_OH/WC_NO3=0.0 -! -!WC_OH/WC_N2O5=0.0 -! -!WC_OH/WC_HONO=-KC8*<WC_OH> - PJAC(:,98,94)=-TPK%KC8(:)*PCONC(:,98) -! -!WC_OH/WC_HNO3=+KC13 - PJAC(:,98,95)=+TPK%KC13(:) -! -!WC_OH/WC_HNO4=0.0 -! -!WC_OH/WC_NH3=0.0 -! -!WC_OH/WC_OH=-KTC42-KC2*<WC_OH>-KC2*<WC_OH>-KC2*<WC_OH>-KC2*<WC_OH>-KC3*<WC_HO2 -!>-KC4*<WC_H2O2>-KC7*<WC_SO2>-KC8*<WC_HONO>-KC19*<WC_AHMS>-KC30*<WC_MEOH>-KC31* -!<WC_ETOH>-KC32*<WC_ALCH>-KC33*<WC_HCHO>-KC34*<WC_ALD2>-KC35*<WC_GLY>-KC36*<WC_ -!MGLY>-KC37*<WC_KETL>-KC38*<WC_ORA1>-KC39*<WC_ORA2>-KC40*<WC_ACID>-KC41*<WC_ACI -!D>-KC42*<WC_UR28>-KC43*<WC_UR21>-KC44*<WC_RP16>-KC45*<WC_RP16>-KC46*<WC_ACID2> - PJAC(:,98,98)=-TPK%KTC42(:)-TPK%KC2(:)*PCONC(:,98)-TPK%KC2(:)*PCONC(:,98)-TPK%& -&KC2(:)*PCONC(:,98)-TPK%KC2(:)*PCONC(:,98)-TPK%KC3(:)*PCONC(:,99)-TPK%KC4(:)*PC& -&ONC(:,89)-TPK%KC7(:)*PCONC(:,101)-TPK%KC8(:)*PCONC(:,94)-TPK%KC19(:)*PCONC(:,1& -&24)-TPK%KC30(:)*PCONC(:,105)-TPK%KC31(:)*PCONC(:,106)-TPK%KC32(:)*PCONC(:,107)& -&-TPK%KC33(:)*PCONC(:,108)-TPK%KC34(:)*PCONC(:,109)-TPK%KC35(:)*PCONC(:,110)-TP& -&K%KC36(:)*PCONC(:,111)-TPK%KC37(:)*PCONC(:,112)-TPK%KC38(:)*PCONC(:,113)-TPK%K& -&C39(:)*PCONC(:,114)-TPK%KC40(:)*PCONC(:,115)-TPK%KC41(:)*PCONC(:,115)-TPK%KC42& -&(:)*PCONC(:,118)-TPK%KC43(:)*PCONC(:,117)-TPK%KC44(:)*PCONC(:,116)-TPK%KC45(:)& -&*PCONC(:,116)-TPK%KC46(:)*PCONC(:,119) -! -!WC_OH/WC_HO2=-KC3*<WC_OH>+KC6*<WC_O3> - PJAC(:,98,99)=-TPK%KC3(:)*PCONC(:,98)+TPK%KC6(:)*PCONC(:,88) -! -!WC_OH/WC_CO2=0.0 -! -!WC_OH/WC_SO2=-KC7*<WC_OH> - PJAC(:,98,101)=-TPK%KC7(:)*PCONC(:,98) -! -!WC_OH/WC_H2SO4=0.0 -! -!WC_OH/WC_RO21=0.0 -! -!WC_OH/WC_RO25=0.0 -! -!WC_OH/WC_MEOH=-KC30*<WC_OH> - PJAC(:,98,105)=-TPK%KC30(:)*PCONC(:,98) -! -!WC_OH/WC_ETOH=-KC31*<WC_OH> - PJAC(:,98,106)=-TPK%KC31(:)*PCONC(:,98) -! -!WC_OH/WC_ALCH=-KC32*<WC_OH> - PJAC(:,98,107)=-TPK%KC32(:)*PCONC(:,98) -! -!WC_OH/WC_HCHO=-KC33*<WC_OH> - PJAC(:,98,108)=-TPK%KC33(:)*PCONC(:,98) -! -!WC_OH/WC_ALD2=-KC34*<WC_OH> - PJAC(:,98,109)=-TPK%KC34(:)*PCONC(:,98) -! -!WC_OH/WC_GLY=-KC35*<WC_OH> - PJAC(:,98,110)=-TPK%KC35(:)*PCONC(:,98) -! -!WC_OH/WC_MGLY=-KC36*<WC_OH> - PJAC(:,98,111)=-TPK%KC36(:)*PCONC(:,98) -! -!WC_OH/WC_KETL=-KC37*<WC_OH> - PJAC(:,98,112)=-TPK%KC37(:)*PCONC(:,98) -! -!WC_OH/WC_ORA1=-KC38*<WC_OH> - PJAC(:,98,113)=-TPK%KC38(:)*PCONC(:,98) -! -!WC_OH/WC_ORA2=-KC39*<WC_OH> - PJAC(:,98,114)=-TPK%KC39(:)*PCONC(:,98) -! -!WC_OH/WC_ACID=-KC40*<WC_OH>-KC41*<WC_OH> - PJAC(:,98,115)=-TPK%KC40(:)*PCONC(:,98)-TPK%KC41(:)*PCONC(:,98) -! -!WC_OH/WC_RP16=-KC44*<WC_OH>-KC45*<WC_OH> - PJAC(:,98,116)=-TPK%KC44(:)*PCONC(:,98)-TPK%KC45(:)*PCONC(:,98) -! -!WC_OH/WC_UR21=-KC43*<WC_OH> - PJAC(:,98,117)=-TPK%KC43(:)*PCONC(:,98) -! -!WC_OH/WC_UR28=-KC42*<WC_OH> - PJAC(:,98,118)=-TPK%KC42(:)*PCONC(:,98) -! -!WC_OH/WC_ACID2=-KC46*<WC_OH> - PJAC(:,98,119)=-TPK%KC46(:)*PCONC(:,98) -! -!WC_OH/WC_ASO3=0.0 -! -!WC_OH/WC_ASO4=+KC24 - PJAC(:,98,121)=+TPK%KC24(:) -! -!WC_OH/WC_ASO5=0.0 -! -!WC_OH/WC_AHSO5=0.0 -! -!WC_OH/WC_AHMS=-KC19*<WC_OH> - PJAC(:,98,124)=-TPK%KC19(:)*PCONC(:,98) -! -!WC_OH/WR_O3=0.0 -! -!WC_OH/WR_H2O2=0.0 -! -!WC_OH/WR_NO=0.0 -! -!WC_OH/WR_NO2=0.0 -! -!WC_OH/WR_NO3=0.0 -! -!WC_OH/WR_N2O5=0.0 -! -!WC_OH/WR_HONO=0.0 -! -!WC_OH/WR_HNO3=0.0 -! -!WC_OH/WR_HNO4=0.0 -! -!WC_OH/WR_NH3=0.0 -! -!WC_OH/WR_OH=0.0 -! -!WC_OH/WR_HO2=0.0 -! -!WC_OH/WR_CO2=0.0 -! -!WC_OH/WR_SO2=0.0 -! -!WC_OH/WR_H2SO4=0.0 -! -!WC_OH/WR_RO21=0.0 -! -!WC_OH/WR_RO25=0.0 -! -!WC_OH/WR_MEOH=0.0 -! -!WC_OH/WR_ETOH=0.0 -! -!WC_OH/WR_ALCH=0.0 -! -!WC_OH/WR_HCHO=0.0 -! -!WC_OH/WR_ALD2=0.0 -! -!WC_OH/WR_GLY=0.0 -! -!WC_OH/WR_MGLY=0.0 -! -!WC_OH/WR_KETL=0.0 -! -!WC_OH/WR_ORA1=0.0 -! -!WC_OH/WR_ORA2=0.0 -! -!WC_OH/WR_ACID=0.0 -! -!WC_OH/WR_RP16=0.0 -! -!WC_OH/WR_UR21=0.0 -! -!WC_OH/WR_UR28=0.0 -! -!WC_OH/WR_ACID2=0.0 -! -!WC_OH/WR_ASO3=0.0 -! -!WC_OH/WR_ASO4=0.0 -! -!WC_OH/WR_ASO5=0.0 -! -!WC_OH/WR_AHSO5=0.0 -! -!WC_OH/WR_AHMS=0.0 -! -!WC_HO2/NO=0.0 -! -!WC_HO2/NO2=0.0 -! -!WC_HO2/O3=0.0 -! -!WC_HO2/HONO=0.0 -! -!WC_HO2/HNO3=0.0 -! -!WC_HO2/HNO4=0.0 -! -!WC_HO2/N2O5=0.0 -! -!WC_HO2/NO3=0.0 -! -!WC_HO2/NH3=0.0 -! -!WC_HO2/HO2=+KTC12 - PJAC(:,99,10)=+TPK%KTC12(:) -! -!WC_HO2/CO=0.0 -! -!WC_HO2/H2O2=0.0 -! -!WC_HO2/SO2=0.0 -! -!WC_HO2/H2SO4=0.0 -! -!WC_HO2/OH=0.0 -! -!WC_HO2/ETHE=0.0 -! -!WC_HO2/OLEL=0.0 -! -!WC_HO2/OLEH=0.0 -! -!WC_HO2/ALKL=0.0 -! -!WC_HO2/ALKM=0.0 -! -!WC_HO2/ALKH=0.0 -! -!WC_HO2/AROH=0.0 -! -!WC_HO2/AROL=0.0 -! -!WC_HO2/AROO=0.0 -! -!WC_HO2/ARAL=0.0 -! -!WC_HO2/ARAC=0.0 -! -!WC_HO2/PAH=0.0 -! -!WC_HO2/HCHO=0.0 -! -!WC_HO2/ALD2=0.0 -! -!WC_HO2/KETL=0.0 -! -!WC_HO2/KETH=0.0 -! -!WC_HO2/MEOH=0.0 -! -!WC_HO2/ETOH=0.0 -! -!WC_HO2/ALCH=0.0 -! -!WC_HO2/ISOP=0.0 -! -!WC_HO2/BIOL=0.0 -! -!WC_HO2/BIOH=0.0 -! -!WC_HO2/MTBE=0.0 -! -!WC_HO2/MVK=0.0 -! -!WC_HO2/MCR=0.0 -! -!WC_HO2/MGLY=0.0 -! -!WC_HO2/GLY=0.0 -! -!WC_HO2/ORA1=0.0 -! -!WC_HO2/ORA2=0.0 -! -!WC_HO2/ACID=0.0 -! -!WC_HO2/UR28=0.0 -! -!WC_HO2/UR21=0.0 -! -!WC_HO2/URG2=0.0 -! -!WC_HO2/UR26=0.0 -! -!WC_HO2/RPG2=0.0 -! -!WC_HO2/RP18=0.0 -! -!WC_HO2/RPG3=0.0 -! -!WC_HO2/URG4=0.0 -! -!WC_HO2/UR8=0.0 -! -!WC_HO2/UR17=0.0 -! -!WC_HO2/UR7=0.0 -! -!WC_HO2/RPR3=0.0 -! -!WC_HO2/URG6=0.0 -! -!WC_HO2/UR22=0.0 -! -!WC_HO2/URG7=0.0 -! -!WC_HO2/RPR4=0.0 -! -!WC_HO2/RPR7=0.0 -! -!WC_HO2/RPG7=0.0 -! -!WC_HO2/URG8=0.0 -! -!WC_HO2/UR19=0.0 -! -!WC_HO2/URG9=0.0 -! -!WC_HO2/AP7=0.0 -! -!WC_HO2/URG10=0.0 -! -!WC_HO2/RPR1=0.0 -! -!WC_HO2/RPR5=0.0 -! -!WC_HO2/RPR8=0.0 -! -!WC_HO2/RP10=0.0 -! -!WC_HO2/RP11=0.0 -! -!WC_HO2/RP16=0.0 -! -!WC_HO2/RPRL=0.0 -! -!WC_HO2/APAN=0.0 -! -!WC_HO2/PAN1=0.0 -! -!WC_HO2/PAN2=0.0 -! -!WC_HO2/PAN3=0.0 -! -!WC_HO2/PAN4=0.0 -! -!WC_HO2/PAN6=0.0 -! -!WC_HO2/PAN7=0.0 -! -!WC_HO2/PAN8=0.0 -! -!WC_HO2/PN10=0.0 -! -!WC_HO2/RO2T=0.0 -! -!WC_HO2/RO21=0.0 -! -!WC_HO2/RO25=0.0 -! -!WC_HO2/WC_O3=-KC6*<WC_HO2> - PJAC(:,99,88)=-TPK%KC6(:)*PCONC(:,99) -! -!WC_HO2/WC_H2O2=+KC4*<WC_OH> - PJAC(:,99,89)=+TPK%KC4(:)*PCONC(:,98) -! -!WC_HO2/WC_NO=0.0 -! -!WC_HO2/WC_NO2=-KC9*<WC_HO2> - PJAC(:,99,91)=-TPK%KC9(:)*PCONC(:,99) -! -!WC_HO2/WC_NO3=0.0 -! -!WC_HO2/WC_N2O5=0.0 -! -!WC_HO2/WC_HONO=0.0 -! -!WC_HO2/WC_HNO3=0.0 -! -!WC_HO2/WC_HNO4=+KC10 - PJAC(:,99,96)=+TPK%KC10(:) -! -!WC_HO2/WC_NH3=0.0 -! -!WC_HO2/WC_OH=-KC3*<WC_HO2>+KC4*<WC_H2O2>+KC19*<WC_AHMS>+KC30*<WC_MEOH>+KC31*<W -!C_ETOH>+KC32*<WC_ALCH>+KC33*<WC_HCHO>+KC35*<WC_GLY>+KC36*<WC_MGLY>+KC37*<WC_KE -!TL>+KC38*<WC_ORA1>+0.11*KC41*<WC_ACID>+KC42*<WC_UR28>+0.81*KC43*<WC_UR21>+KC44 -!*<WC_RP16>+0.71*KC45*<WC_RP16> - PJAC(:,99,98)=-TPK%KC3(:)*PCONC(:,99)+TPK%KC4(:)*PCONC(:,89)+TPK%KC19(:)*PCONC& -&(:,124)+TPK%KC30(:)*PCONC(:,105)+TPK%KC31(:)*PCONC(:,106)+TPK%KC32(:)*PCONC(:,& -&107)+TPK%KC33(:)*PCONC(:,108)+TPK%KC35(:)*PCONC(:,110)+TPK%KC36(:)*PCONC(:,111& -&)+TPK%KC37(:)*PCONC(:,112)+TPK%KC38(:)*PCONC(:,113)+0.11*TPK%KC41(:)*PCONC(:,1& -&15)+TPK%KC42(:)*PCONC(:,118)+0.81*TPK%KC43(:)*PCONC(:,117)+TPK%KC44(:)*PCONC(:& -&,116)+0.71*TPK%KC45(:)*PCONC(:,116) -! -!WC_HO2/WC_HO2=-KTC43-KC3*<WC_OH>-KC5*<WC_HO2>-KC5*<WC_HO2>-KC5*<WC_HO2>-KC5*<W -!C_HO2>-KC6*<WC_O3>-KC9*<WC_NO2>-KC21*<WC_ASO5> - PJAC(:,99,99)=-TPK%KTC43(:)-TPK%KC3(:)*PCONC(:,98)-TPK%KC5(:)*PCONC(:,99)-TPK%& -&KC5(:)*PCONC(:,99)-TPK%KC5(:)*PCONC(:,99)-TPK%KC5(:)*PCONC(:,99)-TPK%KC6(:)*PC& -&ONC(:,88)-TPK%KC9(:)*PCONC(:,91)-TPK%KC21(:)*PCONC(:,122) -! -!WC_HO2/WC_CO2=0.0 -! -!WC_HO2/WC_SO2=0.0 -! -!WC_HO2/WC_H2SO4=0.0 -! -!WC_HO2/WC_RO21=+2.00*KC27*<WC_RO21>+2.00*KC27*<WC_RO21> - PJAC(:,99,103)=+2.00*TPK%KC27(:)*PCONC(:,103)+2.00*TPK%KC27(:)*PCONC(:,103) -! -!WC_HO2/WC_RO25=+KC29*<WC_RO25>+KC29*<WC_RO25> - PJAC(:,99,104)=+TPK%KC29(:)*PCONC(:,104)+TPK%KC29(:)*PCONC(:,104) -! -!WC_HO2/WC_MEOH=+KC30*<WC_OH> - PJAC(:,99,105)=+TPK%KC30(:)*PCONC(:,98) -! -!WC_HO2/WC_ETOH=+KC31*<WC_OH> - PJAC(:,99,106)=+TPK%KC31(:)*PCONC(:,98) -! -!WC_HO2/WC_ALCH=+KC32*<WC_OH> - PJAC(:,99,107)=+TPK%KC32(:)*PCONC(:,98) -! -!WC_HO2/WC_HCHO=+KC33*<WC_OH> - PJAC(:,99,108)=+TPK%KC33(:)*PCONC(:,98) -! -!WC_HO2/WC_ALD2=0.0 -! -!WC_HO2/WC_GLY=+KC35*<WC_OH> - PJAC(:,99,110)=+TPK%KC35(:)*PCONC(:,98) -! -!WC_HO2/WC_MGLY=+KC36*<WC_OH> - PJAC(:,99,111)=+TPK%KC36(:)*PCONC(:,98) -! -!WC_HO2/WC_KETL=+KC37*<WC_OH> - PJAC(:,99,112)=+TPK%KC37(:)*PCONC(:,98) -! -!WC_HO2/WC_ORA1=+KC38*<WC_OH> - PJAC(:,99,113)=+TPK%KC38(:)*PCONC(:,98) -! -!WC_HO2/WC_ORA2=0.0 -! -!WC_HO2/WC_ACID=+0.11*KC41*<WC_OH> - PJAC(:,99,115)=+0.11*TPK%KC41(:)*PCONC(:,98) -! -!WC_HO2/WC_RP16=+KC44*<WC_OH>+0.71*KC45*<WC_OH> - PJAC(:,99,116)=+TPK%KC44(:)*PCONC(:,98)+0.71*TPK%KC45(:)*PCONC(:,98) -! -!WC_HO2/WC_UR21=+0.81*KC43*<WC_OH> - PJAC(:,99,117)=+0.81*TPK%KC43(:)*PCONC(:,98) -! -!WC_HO2/WC_UR28=+KC42*<WC_OH> - PJAC(:,99,118)=+TPK%KC42(:)*PCONC(:,98) -! -!WC_HO2/WC_ACID2=0.0 -! -!WC_HO2/WC_ASO3=0.0 -! -!WC_HO2/WC_ASO4=0.0 -! -!WC_HO2/WC_ASO5=-KC21*<WC_HO2> - PJAC(:,99,122)=-TPK%KC21(:)*PCONC(:,99) -! -!WC_HO2/WC_AHSO5=0.0 -! -!WC_HO2/WC_AHMS=+KC19*<WC_OH> - PJAC(:,99,124)=+TPK%KC19(:)*PCONC(:,98) -! -!WC_HO2/WR_O3=0.0 -! -!WC_HO2/WR_H2O2=0.0 -! -!WC_HO2/WR_NO=0.0 -! -!WC_HO2/WR_NO2=0.0 -! -!WC_HO2/WR_NO3=0.0 -! -!WC_HO2/WR_N2O5=0.0 -! -!WC_HO2/WR_HONO=0.0 -! -!WC_HO2/WR_HNO3=0.0 -! -!WC_HO2/WR_HNO4=0.0 -! -!WC_HO2/WR_NH3=0.0 -! -!WC_HO2/WR_OH=0.0 -! -!WC_HO2/WR_HO2=0.0 -! -!WC_HO2/WR_CO2=0.0 -! -!WC_HO2/WR_SO2=0.0 -! -!WC_HO2/WR_H2SO4=0.0 -! -!WC_HO2/WR_RO21=0.0 -! -!WC_HO2/WR_RO25=0.0 -! -!WC_HO2/WR_MEOH=0.0 -! -!WC_HO2/WR_ETOH=0.0 -! -!WC_HO2/WR_ALCH=0.0 -! -!WC_HO2/WR_HCHO=0.0 -! -!WC_HO2/WR_ALD2=0.0 -! -!WC_HO2/WR_GLY=0.0 -! -!WC_HO2/WR_MGLY=0.0 -! -!WC_HO2/WR_KETL=0.0 -! -!WC_HO2/WR_ORA1=0.0 -! -!WC_HO2/WR_ORA2=0.0 -! -!WC_HO2/WR_ACID=0.0 -! -!WC_HO2/WR_RP16=0.0 -! -!WC_HO2/WR_UR21=0.0 -! -!WC_HO2/WR_UR28=0.0 -! -!WC_HO2/WR_ACID2=0.0 -! -!WC_HO2/WR_ASO3=0.0 -! -!WC_HO2/WR_ASO4=0.0 -! -!WC_HO2/WR_ASO5=0.0 -! -!WC_HO2/WR_AHSO5=0.0 -! -!WC_HO2/WR_AHMS=0.0 -! -!WC_CO2/NO=0.0 -! -!WC_CO2/NO2=0.0 -! -!WC_CO2/O3=0.0 -! -!WC_CO2/HONO=0.0 -! -!WC_CO2/HNO3=0.0 -! -!WC_CO2/HNO4=0.0 -! -!WC_CO2/N2O5=0.0 -! -!WC_CO2/NO3=0.0 -! -!WC_CO2/NH3=0.0 -! -!WC_CO2/HO2=0.0 -! -!WC_CO2/CO=0.0 -! -!WC_CO2/H2O2=0.0 -! -!WC_CO2/SO2=0.0 -! -!WC_CO2/H2SO4=0.0 -! -!WC_CO2/OH=0.0 -! -!WC_CO2/ETHE=0.0 -! -!WC_CO2/OLEL=0.0 -! -!WC_CO2/OLEH=0.0 -! -!WC_CO2/ALKL=0.0 -! -!WC_CO2/ALKM=0.0 -! -!WC_CO2/ALKH=0.0 -! -!WC_CO2/AROH=0.0 -! -!WC_CO2/AROL=0.0 -! -!WC_CO2/AROO=0.0 -! -!WC_CO2/ARAL=0.0 -! -!WC_CO2/ARAC=0.0 -! -!WC_CO2/PAH=0.0 -! -!WC_CO2/HCHO=0.0 -! -!WC_CO2/ALD2=0.0 -! -!WC_CO2/KETL=0.0 -! -!WC_CO2/KETH=0.0 -! -!WC_CO2/MEOH=0.0 -! -!WC_CO2/ETOH=0.0 -! -!WC_CO2/ALCH=0.0 -! -!WC_CO2/ISOP=0.0 -! -!WC_CO2/BIOL=0.0 -! -!WC_CO2/BIOH=0.0 -! -!WC_CO2/MTBE=0.0 -! -!WC_CO2/MVK=0.0 -! -!WC_CO2/MCR=0.0 -! -!WC_CO2/MGLY=0.0 -! -!WC_CO2/GLY=0.0 -! -!WC_CO2/ORA1=0.0 -! -!WC_CO2/ORA2=0.0 -! -!WC_CO2/ACID=0.0 -! -!WC_CO2/UR28=0.0 -! -!WC_CO2/UR21=0.0 -! -!WC_CO2/URG2=0.0 -! -!WC_CO2/UR26=0.0 -! -!WC_CO2/RPG2=0.0 -! -!WC_CO2/RP18=0.0 -! -!WC_CO2/RPG3=0.0 -! -!WC_CO2/URG4=0.0 -! -!WC_CO2/UR8=0.0 -! -!WC_CO2/UR17=0.0 -! -!WC_CO2/UR7=0.0 -! -!WC_CO2/RPR3=0.0 -! -!WC_CO2/URG6=0.0 -! -!WC_CO2/UR22=0.0 -! -!WC_CO2/URG7=0.0 -! -!WC_CO2/RPR4=0.0 -! -!WC_CO2/RPR7=0.0 -! -!WC_CO2/RPG7=0.0 -! -!WC_CO2/URG8=0.0 -! -!WC_CO2/UR19=0.0 -! -!WC_CO2/URG9=0.0 -! -!WC_CO2/AP7=0.0 -! -!WC_CO2/URG10=0.0 -! -!WC_CO2/RPR1=0.0 -! -!WC_CO2/RPR5=0.0 -! -!WC_CO2/RPR8=0.0 -! -!WC_CO2/RP10=0.0 -! -!WC_CO2/RP11=0.0 -! -!WC_CO2/RP16=0.0 -! -!WC_CO2/RPRL=0.0 -! -!WC_CO2/APAN=0.0 -! -!WC_CO2/PAN1=0.0 -! -!WC_CO2/PAN2=0.0 -! -!WC_CO2/PAN3=0.0 -! -!WC_CO2/PAN4=0.0 -! -!WC_CO2/PAN6=0.0 -! -!WC_CO2/PAN7=0.0 -! -!WC_CO2/PAN8=0.0 -! -!WC_CO2/PN10=0.0 -! -!WC_CO2/RO2T=0.0 -! -!WC_CO2/RO21=0.0 -! -!WC_CO2/RO25=0.0 -! -!WC_CO2/WC_O3=0.0 -! -!WC_CO2/WC_H2O2=0.0 -! -!WC_CO2/WC_NO=0.0 -! -!WC_CO2/WC_NO2=0.0 -! -!WC_CO2/WC_NO3=0.0 -! -!WC_CO2/WC_N2O5=0.0 -! -!WC_CO2/WC_HONO=0.0 -! -!WC_CO2/WC_HNO3=0.0 -! -!WC_CO2/WC_HNO4=0.0 -! -!WC_CO2/WC_NH3=0.0 -! -!WC_CO2/WC_OH=+KC34*<WC_ALD2>+KC37*<WC_KETL>+KC38*<WC_ORA1>+KC40*<WC_ACID>+2*KC -!42*<WC_UR28>+0.43*KC43*<WC_UR21>+2*KC45*<WC_RP16> - PJAC(:,100,98)=+TPK%KC34(:)*PCONC(:,109)+TPK%KC37(:)*PCONC(:,112)+TPK%KC38(:)*& -&PCONC(:,113)+TPK%KC40(:)*PCONC(:,115)+2*TPK%KC42(:)*PCONC(:,118)+0.43*TPK%KC43& -&(:)*PCONC(:,117)+2*TPK%KC45(:)*PCONC(:,116) -! -!WC_CO2/WC_HO2=0.0 -! -!WC_CO2/WC_CO2=-KTC44 - PJAC(:,100,100)=-TPK%KTC44(:) -! -!WC_CO2/WC_SO2=0.0 -! -!WC_CO2/WC_H2SO4=0.0 -! -!WC_CO2/WC_RO21=0.0 -! -!WC_CO2/WC_RO25=0.0 -! -!WC_CO2/WC_MEOH=0.0 -! -!WC_CO2/WC_ETOH=0.0 -! -!WC_CO2/WC_ALCH=0.0 -! -!WC_CO2/WC_HCHO=0.0 -! -!WC_CO2/WC_ALD2=+KC34*<WC_OH> - PJAC(:,100,109)=+TPK%KC34(:)*PCONC(:,98) -! -!WC_CO2/WC_GLY=0.0 -! -!WC_CO2/WC_MGLY=0.0 -! -!WC_CO2/WC_KETL=+KC37*<WC_OH> - PJAC(:,100,112)=+TPK%KC37(:)*PCONC(:,98) -! -!WC_CO2/WC_ORA1=+KC38*<WC_OH> - PJAC(:,100,113)=+TPK%KC38(:)*PCONC(:,98) -! -!WC_CO2/WC_ORA2=0.0 -! -!WC_CO2/WC_ACID=+KC40*<WC_OH> - PJAC(:,100,115)=+TPK%KC40(:)*PCONC(:,98) -! -!WC_CO2/WC_RP16=+2*KC45*<WC_OH> - PJAC(:,100,116)=+2*TPK%KC45(:)*PCONC(:,98) -! -!WC_CO2/WC_UR21=+0.43*KC43*<WC_OH> - PJAC(:,100,117)=+0.43*TPK%KC43(:)*PCONC(:,98) -! -!WC_CO2/WC_UR28=+2*KC42*<WC_OH> - PJAC(:,100,118)=+2*TPK%KC42(:)*PCONC(:,98) -! -!WC_CO2/WC_ACID2=0.0 -! -!WC_CO2/WC_ASO3=0.0 -! -!WC_CO2/WC_ASO4=0.0 -! -!WC_CO2/WC_ASO5=0.0 -! -!WC_CO2/WC_AHSO5=0.0 -! -!WC_CO2/WC_AHMS=0.0 -! -!WC_CO2/WR_O3=0.0 -! -!WC_CO2/WR_H2O2=0.0 -! -!WC_CO2/WR_NO=0.0 -! -!WC_CO2/WR_NO2=0.0 -! -!WC_CO2/WR_NO3=0.0 -! -!WC_CO2/WR_N2O5=0.0 -! -!WC_CO2/WR_HONO=0.0 -! -!WC_CO2/WR_HNO3=0.0 -! -!WC_CO2/WR_HNO4=0.0 -! -!WC_CO2/WR_NH3=0.0 -! -!WC_CO2/WR_OH=0.0 -! -!WC_CO2/WR_HO2=0.0 -! -!WC_CO2/WR_CO2=0.0 -! -!WC_CO2/WR_SO2=0.0 -! -!WC_CO2/WR_H2SO4=0.0 -! -!WC_CO2/WR_RO21=0.0 -! -!WC_CO2/WR_RO25=0.0 -! -!WC_CO2/WR_MEOH=0.0 -! -!WC_CO2/WR_ETOH=0.0 -! -!WC_CO2/WR_ALCH=0.0 -! -!WC_CO2/WR_HCHO=0.0 -! -!WC_CO2/WR_ALD2=0.0 -! -!WC_CO2/WR_GLY=0.0 -! -!WC_CO2/WR_MGLY=0.0 -! -!WC_CO2/WR_KETL=0.0 -! -!WC_CO2/WR_ORA1=0.0 -! -!WC_CO2/WR_ORA2=0.0 -! -!WC_CO2/WR_ACID=0.0 -! -!WC_CO2/WR_RP16=0.0 -! -!WC_CO2/WR_UR21=0.0 -! -!WC_CO2/WR_UR28=0.0 -! -!WC_CO2/WR_ACID2=0.0 -! -!WC_CO2/WR_ASO3=0.0 -! -!WC_CO2/WR_ASO4=0.0 -! -!WC_CO2/WR_ASO5=0.0 -! -!WC_CO2/WR_AHSO5=0.0 -! -!WC_CO2/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ19 -! -SUBROUTINE SUBJ20 -! -!Indices 101 a 105 -! -! -!WC_SO2/NO=0.0 -! -!WC_SO2/NO2=0.0 -! -!WC_SO2/O3=0.0 -! -!WC_SO2/HONO=0.0 -! -!WC_SO2/HNO3=0.0 -! -!WC_SO2/HNO4=0.0 -! -!WC_SO2/N2O5=0.0 -! -!WC_SO2/NO3=0.0 -! -!WC_SO2/NH3=0.0 -! -!WC_SO2/HO2=0.0 -! -!WC_SO2/CO=0.0 -! -!WC_SO2/H2O2=0.0 -! -!WC_SO2/SO2=+KTC14 - PJAC(:,101,13)=+TPK%KTC14(:) -! -!WC_SO2/H2SO4=0.0 -! -!WC_SO2/OH=0.0 -! -!WC_SO2/ETHE=0.0 -! -!WC_SO2/OLEL=0.0 -! -!WC_SO2/OLEH=0.0 -! -!WC_SO2/ALKL=0.0 -! -!WC_SO2/ALKM=0.0 -! -!WC_SO2/ALKH=0.0 -! -!WC_SO2/AROH=0.0 -! -!WC_SO2/AROL=0.0 -! -!WC_SO2/AROO=0.0 -! -!WC_SO2/ARAL=0.0 -! -!WC_SO2/ARAC=0.0 -! -!WC_SO2/PAH=0.0 -! -!WC_SO2/HCHO=0.0 -! -!WC_SO2/ALD2=0.0 -! -!WC_SO2/KETL=0.0 -! -!WC_SO2/KETH=0.0 -! -!WC_SO2/MEOH=0.0 -! -!WC_SO2/ETOH=0.0 -! -!WC_SO2/ALCH=0.0 -! -!WC_SO2/ISOP=0.0 -! -!WC_SO2/BIOL=0.0 -! -!WC_SO2/BIOH=0.0 -! -!WC_SO2/MTBE=0.0 -! -!WC_SO2/MVK=0.0 -! -!WC_SO2/MCR=0.0 -! -!WC_SO2/MGLY=0.0 -! -!WC_SO2/GLY=0.0 -! -!WC_SO2/ORA1=0.0 -! -!WC_SO2/ORA2=0.0 -! -!WC_SO2/ACID=0.0 -! -!WC_SO2/UR28=0.0 -! -!WC_SO2/UR21=0.0 -! -!WC_SO2/URG2=0.0 -! -!WC_SO2/UR26=0.0 -! -!WC_SO2/RPG2=0.0 -! -!WC_SO2/RP18=0.0 -! -!WC_SO2/RPG3=0.0 -! -!WC_SO2/URG4=0.0 -! -!WC_SO2/UR8=0.0 -! -!WC_SO2/UR17=0.0 -! -!WC_SO2/UR7=0.0 -! -!WC_SO2/RPR3=0.0 -! -!WC_SO2/URG6=0.0 -! -!WC_SO2/UR22=0.0 -! -!WC_SO2/URG7=0.0 -! -!WC_SO2/RPR4=0.0 -! -!WC_SO2/RPR7=0.0 -! -!WC_SO2/RPG7=0.0 -! -!WC_SO2/URG8=0.0 -! -!WC_SO2/UR19=0.0 -! -!WC_SO2/URG9=0.0 -! -!WC_SO2/AP7=0.0 -! -!WC_SO2/URG10=0.0 -! -!WC_SO2/RPR1=0.0 -! -!WC_SO2/RPR5=0.0 -! -!WC_SO2/RPR8=0.0 -! -!WC_SO2/RP10=0.0 -! -!WC_SO2/RP11=0.0 -! -!WC_SO2/RP16=0.0 -! -!WC_SO2/RPRL=0.0 -! -!WC_SO2/APAN=0.0 -! -!WC_SO2/PAN1=0.0 -! -!WC_SO2/PAN2=0.0 -! -!WC_SO2/PAN3=0.0 -! -!WC_SO2/PAN4=0.0 -! -!WC_SO2/PAN6=0.0 -! -!WC_SO2/PAN7=0.0 -! -!WC_SO2/PAN8=0.0 -! -!WC_SO2/PN10=0.0 -! -!WC_SO2/RO2T=0.0 -! -!WC_SO2/RO21=0.0 -! -!WC_SO2/RO25=0.0 -! -!WC_SO2/WC_O3=-KC25*<WC_SO2> - PJAC(:,101,88)=-TPK%KC25(:)*PCONC(:,101) -! -!WC_SO2/WC_H2O2=-KC26*<WC_SO2> - PJAC(:,101,89)=-TPK%KC26(:)*PCONC(:,101) -! -!WC_SO2/WC_NO=0.0 -! -!WC_SO2/WC_NO2=0.0 -! -!WC_SO2/WC_NO3=-KC16*<WC_SO2> - PJAC(:,101,92)=-TPK%KC16(:)*PCONC(:,101) -! -!WC_SO2/WC_N2O5=0.0 -! -!WC_SO2/WC_HONO=0.0 -! -!WC_SO2/WC_HNO3=0.0 -! -!WC_SO2/WC_HNO4=-KC12*<WC_SO2> - PJAC(:,101,96)=-TPK%KC12(:)*PCONC(:,101) -! -!WC_SO2/WC_NH3=0.0 -! -!WC_SO2/WC_OH=-KC7*<WC_SO2>+KC19*<WC_AHMS> - PJAC(:,101,98)=-TPK%KC7(:)*PCONC(:,101)+TPK%KC19(:)*PCONC(:,124) -! -!WC_SO2/WC_HO2=0.0 -! -!WC_SO2/WC_CO2=0.0 -! -!WC_SO2/WC_SO2=-KTC45-KC7*<WC_OH>-KC12*<WC_HNO4>-KC16*<WC_NO3>-KC17*<WC_HCHO>-K -!C23*<WC_AHSO5>-KC25*<WC_O3>-KC26*<WC_H2O2>-KC28*<WC_RO21> - PJAC(:,101,101)=-TPK%KTC45(:)-TPK%KC7(:)*PCONC(:,98)-TPK%KC12(:)*PCONC(:,96)-T& -&PK%KC16(:)*PCONC(:,92)-TPK%KC17(:)*PCONC(:,108)-TPK%KC23(:)*PCONC(:,123)-TPK%K& -&C25(:)*PCONC(:,88)-TPK%KC26(:)*PCONC(:,89)-TPK%KC28(:)*PCONC(:,103) -! -!WC_SO2/WC_H2SO4=0.0 -! -!WC_SO2/WC_RO21=-KC28*<WC_SO2> - PJAC(:,101,103)=-TPK%KC28(:)*PCONC(:,101) -! -!WC_SO2/WC_RO25=0.0 -! -!WC_SO2/WC_MEOH=0.0 -! -!WC_SO2/WC_ETOH=0.0 -! -!WC_SO2/WC_ALCH=0.0 -! -!WC_SO2/WC_HCHO=-KC17*<WC_SO2> - PJAC(:,101,108)=-TPK%KC17(:)*PCONC(:,101) -! -!WC_SO2/WC_ALD2=0.0 -! -!WC_SO2/WC_GLY=0.0 -! -!WC_SO2/WC_MGLY=0.0 -! -!WC_SO2/WC_KETL=0.0 -! -!WC_SO2/WC_ORA1=0.0 -! -!WC_SO2/WC_ORA2=0.0 -! -!WC_SO2/WC_ACID=0.0 -! -!WC_SO2/WC_RP16=0.0 -! -!WC_SO2/WC_UR21=0.0 -! -!WC_SO2/WC_UR28=0.0 -! -!WC_SO2/WC_ACID2=0.0 -! -!WC_SO2/WC_ASO3=0.0 -! -!WC_SO2/WC_ASO4=0.0 -! -!WC_SO2/WC_ASO5=0.0 -! -!WC_SO2/WC_AHSO5=-KC23*<WC_SO2> - PJAC(:,101,123)=-TPK%KC23(:)*PCONC(:,101) -! -!WC_SO2/WC_AHMS=+KC18+KC19*<WC_OH> - PJAC(:,101,124)=+TPK%KC18(:)+TPK%KC19(:)*PCONC(:,98) -! -!WC_SO2/WR_O3=0.0 -! -!WC_SO2/WR_H2O2=0.0 -! -!WC_SO2/WR_NO=0.0 -! -!WC_SO2/WR_NO2=0.0 -! -!WC_SO2/WR_NO3=0.0 -! -!WC_SO2/WR_N2O5=0.0 -! -!WC_SO2/WR_HONO=0.0 -! -!WC_SO2/WR_HNO3=0.0 -! -!WC_SO2/WR_HNO4=0.0 -! -!WC_SO2/WR_NH3=0.0 -! -!WC_SO2/WR_OH=0.0 -! -!WC_SO2/WR_HO2=0.0 -! -!WC_SO2/WR_CO2=0.0 -! -!WC_SO2/WR_SO2=0.0 -! -!WC_SO2/WR_H2SO4=0.0 -! -!WC_SO2/WR_RO21=0.0 -! -!WC_SO2/WR_RO25=0.0 -! -!WC_SO2/WR_MEOH=0.0 -! -!WC_SO2/WR_ETOH=0.0 -! -!WC_SO2/WR_ALCH=0.0 -! -!WC_SO2/WR_HCHO=0.0 -! -!WC_SO2/WR_ALD2=0.0 -! -!WC_SO2/WR_GLY=0.0 -! -!WC_SO2/WR_MGLY=0.0 -! -!WC_SO2/WR_KETL=0.0 -! -!WC_SO2/WR_ORA1=0.0 -! -!WC_SO2/WR_ORA2=0.0 -! -!WC_SO2/WR_ACID=0.0 -! -!WC_SO2/WR_RP16=0.0 -! -!WC_SO2/WR_UR21=0.0 -! -!WC_SO2/WR_UR28=0.0 -! -!WC_SO2/WR_ACID2=0.0 -! -!WC_SO2/WR_ASO3=0.0 -! -!WC_SO2/WR_ASO4=0.0 -! -!WC_SO2/WR_ASO5=0.0 -! -!WC_SO2/WR_AHSO5=0.0 -! -!WC_SO2/WR_AHMS=0.0 -! -!WC_H2SO4/NO=0.0 -! -!WC_H2SO4/NO2=0.0 -! -!WC_H2SO4/O3=0.0 -! -!WC_H2SO4/HONO=0.0 -! -!WC_H2SO4/HNO3=0.0 -! -!WC_H2SO4/HNO4=0.0 -! -!WC_H2SO4/N2O5=0.0 -! -!WC_H2SO4/NO3=0.0 -! -!WC_H2SO4/NH3=0.0 -! -!WC_H2SO4/HO2=0.0 -! -!WC_H2SO4/CO=0.0 -! -!WC_H2SO4/H2O2=0.0 -! -!WC_H2SO4/SO2=0.0 -! -!WC_H2SO4/H2SO4=+KTC15 - PJAC(:,102,14)=+TPK%KTC15(:) -! -!WC_H2SO4/OH=0.0 -! -!WC_H2SO4/ETHE=0.0 -! -!WC_H2SO4/OLEL=0.0 -! -!WC_H2SO4/OLEH=0.0 -! -!WC_H2SO4/ALKL=0.0 -! -!WC_H2SO4/ALKM=0.0 -! -!WC_H2SO4/ALKH=0.0 -! -!WC_H2SO4/AROH=0.0 -! -!WC_H2SO4/AROL=0.0 -! -!WC_H2SO4/AROO=0.0 -! -!WC_H2SO4/ARAL=0.0 -! -!WC_H2SO4/ARAC=0.0 -! -!WC_H2SO4/PAH=0.0 -! -!WC_H2SO4/HCHO=0.0 -! -!WC_H2SO4/ALD2=0.0 -! -!WC_H2SO4/KETL=0.0 -! -!WC_H2SO4/KETH=0.0 -! -!WC_H2SO4/MEOH=0.0 -! -!WC_H2SO4/ETOH=0.0 -! -!WC_H2SO4/ALCH=0.0 -! -!WC_H2SO4/ISOP=0.0 -! -!WC_H2SO4/BIOL=0.0 -! -!WC_H2SO4/BIOH=0.0 -! -!WC_H2SO4/MTBE=0.0 -! -!WC_H2SO4/MVK=0.0 -! -!WC_H2SO4/MCR=0.0 -! -!WC_H2SO4/MGLY=0.0 -! -!WC_H2SO4/GLY=0.0 -! -!WC_H2SO4/ORA1=0.0 -! -!WC_H2SO4/ORA2=0.0 -! -!WC_H2SO4/ACID=0.0 -! -!WC_H2SO4/UR28=0.0 -! -!WC_H2SO4/UR21=0.0 -! -!WC_H2SO4/URG2=0.0 -! -!WC_H2SO4/UR26=0.0 -! -!WC_H2SO4/RPG2=0.0 -! -!WC_H2SO4/RP18=0.0 -! -!WC_H2SO4/RPG3=0.0 -! -!WC_H2SO4/URG4=0.0 -! -!WC_H2SO4/UR8=0.0 -! -!WC_H2SO4/UR17=0.0 -! -!WC_H2SO4/UR7=0.0 -! -!WC_H2SO4/RPR3=0.0 -! -!WC_H2SO4/URG6=0.0 -! -!WC_H2SO4/UR22=0.0 -! -!WC_H2SO4/URG7=0.0 -! -!WC_H2SO4/RPR4=0.0 -! -!WC_H2SO4/RPR7=0.0 -! -!WC_H2SO4/RPG7=0.0 -! -!WC_H2SO4/URG8=0.0 -! -!WC_H2SO4/UR19=0.0 -! -!WC_H2SO4/URG9=0.0 -! -!WC_H2SO4/AP7=0.0 -! -!WC_H2SO4/URG10=0.0 -! -!WC_H2SO4/RPR1=0.0 -! -!WC_H2SO4/RPR5=0.0 -! -!WC_H2SO4/RPR8=0.0 -! -!WC_H2SO4/RP10=0.0 -! -!WC_H2SO4/RP11=0.0 -! -!WC_H2SO4/RP16=0.0 -! -!WC_H2SO4/RPRL=0.0 -! -!WC_H2SO4/APAN=0.0 -! -!WC_H2SO4/PAN1=0.0 -! -!WC_H2SO4/PAN2=0.0 -! -!WC_H2SO4/PAN3=0.0 -! -!WC_H2SO4/PAN4=0.0 -! -!WC_H2SO4/PAN6=0.0 -! -!WC_H2SO4/PAN7=0.0 -! -!WC_H2SO4/PAN8=0.0 -! -!WC_H2SO4/PN10=0.0 -! -!WC_H2SO4/RO2T=0.0 -! -!WC_H2SO4/RO21=0.0 -! -!WC_H2SO4/RO25=0.0 -! -!WC_H2SO4/WC_O3=+KC25*<WC_SO2> - PJAC(:,102,88)=+TPK%KC25(:)*PCONC(:,101) -! -!WC_H2SO4/WC_H2O2=+KC26*<WC_SO2> - PJAC(:,102,89)=+TPK%KC26(:)*PCONC(:,101) -! -!WC_H2SO4/WC_NO=0.0 -! -!WC_H2SO4/WC_NO2=0.0 -! -!WC_H2SO4/WC_NO3=-KC15*<WC_H2SO4> - PJAC(:,102,92)=-TPK%KC15(:)*PCONC(:,102) -! -!WC_H2SO4/WC_N2O5=0.0 -! -!WC_H2SO4/WC_HONO=0.0 -! -!WC_H2SO4/WC_HNO3=0.0 -! -!WC_H2SO4/WC_HNO4=+KC12*<WC_SO2> - PJAC(:,102,96)=+TPK%KC12(:)*PCONC(:,101) -! -!WC_H2SO4/WC_NH3=0.0 -! -!WC_H2SO4/WC_OH=0.0 -! -!WC_H2SO4/WC_HO2=0.0 -! -!WC_H2SO4/WC_CO2=0.0 -! -!WC_H2SO4/WC_SO2=+KC12*<WC_HNO4>+2.00*KC23*<WC_AHSO5>+KC25*<WC_O3>+KC26*<WC_H2O -!2> - PJAC(:,102,101)=+TPK%KC12(:)*PCONC(:,96)+2.00*TPK%KC23(:)*PCONC(:,123)+TPK%KC2& -&5(:)*PCONC(:,88)+TPK%KC26(:)*PCONC(:,89) -! -!WC_H2SO4/WC_H2SO4=-KTC46-KC15*<WC_NO3> - PJAC(:,102,102)=-TPK%KTC46(:)-TPK%KC15(:)*PCONC(:,92) -! -!WC_H2SO4/WC_RO21=0.0 -! -!WC_H2SO4/WC_RO25=0.0 -! -!WC_H2SO4/WC_MEOH=0.0 -! -!WC_H2SO4/WC_ETOH=0.0 -! -!WC_H2SO4/WC_ALCH=0.0 -! -!WC_H2SO4/WC_HCHO=0.0 -! -!WC_H2SO4/WC_ALD2=0.0 -! -!WC_H2SO4/WC_GLY=0.0 -! -!WC_H2SO4/WC_MGLY=0.0 -! -!WC_H2SO4/WC_KETL=0.0 -! -!WC_H2SO4/WC_ORA1=0.0 -! -!WC_H2SO4/WC_ORA2=0.0 -! -!WC_H2SO4/WC_ACID=0.0 -! -!WC_H2SO4/WC_RP16=0.0 -! -!WC_H2SO4/WC_UR21=0.0 -! -!WC_H2SO4/WC_UR28=0.0 -! -!WC_H2SO4/WC_ACID2=0.0 -! -!WC_H2SO4/WC_ASO3=0.0 -! -!WC_H2SO4/WC_ASO4=+KC24 - PJAC(:,102,121)=+TPK%KC24(:) -! -!WC_H2SO4/WC_ASO5=0.0 -! -!WC_H2SO4/WC_AHSO5=+2.00*KC23*<WC_SO2> - PJAC(:,102,123)=+2.00*TPK%KC23(:)*PCONC(:,101) -! -!WC_H2SO4/WC_AHMS=0.0 -! -!WC_H2SO4/WR_O3=0.0 -! -!WC_H2SO4/WR_H2O2=0.0 -! -!WC_H2SO4/WR_NO=0.0 -! -!WC_H2SO4/WR_NO2=0.0 -! -!WC_H2SO4/WR_NO3=0.0 -! -!WC_H2SO4/WR_N2O5=0.0 -! -!WC_H2SO4/WR_HONO=0.0 -! -!WC_H2SO4/WR_HNO3=0.0 -! -!WC_H2SO4/WR_HNO4=0.0 -! -!WC_H2SO4/WR_NH3=0.0 -! -!WC_H2SO4/WR_OH=0.0 -! -!WC_H2SO4/WR_HO2=0.0 -! -!WC_H2SO4/WR_CO2=0.0 -! -!WC_H2SO4/WR_SO2=0.0 -! -!WC_H2SO4/WR_H2SO4=0.0 -! -!WC_H2SO4/WR_RO21=0.0 -! -!WC_H2SO4/WR_RO25=0.0 -! -!WC_H2SO4/WR_MEOH=0.0 -! -!WC_H2SO4/WR_ETOH=0.0 -! -!WC_H2SO4/WR_ALCH=0.0 -! -!WC_H2SO4/WR_HCHO=0.0 -! -!WC_H2SO4/WR_ALD2=0.0 -! -!WC_H2SO4/WR_GLY=0.0 -! -!WC_H2SO4/WR_MGLY=0.0 -! -!WC_H2SO4/WR_KETL=0.0 -! -!WC_H2SO4/WR_ORA1=0.0 -! -!WC_H2SO4/WR_ORA2=0.0 -! -!WC_H2SO4/WR_ACID=0.0 -! -!WC_H2SO4/WR_RP16=0.0 -! -!WC_H2SO4/WR_UR21=0.0 -! -!WC_H2SO4/WR_UR28=0.0 -! -!WC_H2SO4/WR_ACID2=0.0 -! -!WC_H2SO4/WR_ASO3=0.0 -! -!WC_H2SO4/WR_ASO4=0.0 -! -!WC_H2SO4/WR_ASO5=0.0 -! -!WC_H2SO4/WR_AHSO5=0.0 -! -!WC_H2SO4/WR_AHMS=0.0 -! -!WC_RO21/NO=0.0 -! -!WC_RO21/NO2=0.0 -! -!WC_RO21/O3=0.0 -! -!WC_RO21/HONO=0.0 -! -!WC_RO21/HNO3=0.0 -! -!WC_RO21/HNO4=0.0 -! -!WC_RO21/N2O5=0.0 -! -!WC_RO21/NO3=0.0 -! -!WC_RO21/NH3=0.0 -! -!WC_RO21/HO2=0.0 -! -!WC_RO21/CO=0.0 -! -!WC_RO21/H2O2=0.0 -! -!WC_RO21/SO2=0.0 -! -!WC_RO21/H2SO4=0.0 -! -!WC_RO21/OH=0.0 -! -!WC_RO21/ETHE=0.0 -! -!WC_RO21/OLEL=0.0 -! -!WC_RO21/OLEH=0.0 -! -!WC_RO21/ALKL=0.0 -! -!WC_RO21/ALKM=0.0 -! -!WC_RO21/ALKH=0.0 -! -!WC_RO21/AROH=0.0 -! -!WC_RO21/AROL=0.0 -! -!WC_RO21/AROO=0.0 -! -!WC_RO21/ARAL=0.0 -! -!WC_RO21/ARAC=0.0 -! -!WC_RO21/PAH=0.0 -! -!WC_RO21/HCHO=0.0 -! -!WC_RO21/ALD2=0.0 -! -!WC_RO21/KETL=0.0 -! -!WC_RO21/KETH=0.0 -! -!WC_RO21/MEOH=0.0 -! -!WC_RO21/ETOH=0.0 -! -!WC_RO21/ALCH=0.0 -! -!WC_RO21/ISOP=0.0 -! -!WC_RO21/BIOL=0.0 -! -!WC_RO21/BIOH=0.0 -! -!WC_RO21/MTBE=0.0 -! -!WC_RO21/MVK=0.0 -! -!WC_RO21/MCR=0.0 -! -!WC_RO21/MGLY=0.0 -! -!WC_RO21/GLY=0.0 -! -!WC_RO21/ORA1=0.0 -! -!WC_RO21/ORA2=0.0 -! -!WC_RO21/ACID=0.0 -! -!WC_RO21/UR28=0.0 -! -!WC_RO21/UR21=0.0 -! -!WC_RO21/URG2=0.0 -! -!WC_RO21/UR26=0.0 -! -!WC_RO21/RPG2=0.0 -! -!WC_RO21/RP18=0.0 -! -!WC_RO21/RPG3=0.0 -! -!WC_RO21/URG4=0.0 -! -!WC_RO21/UR8=0.0 -! -!WC_RO21/UR17=0.0 -! -!WC_RO21/UR7=0.0 -! -!WC_RO21/RPR3=0.0 -! -!WC_RO21/URG6=0.0 -! -!WC_RO21/UR22=0.0 -! -!WC_RO21/URG7=0.0 -! -!WC_RO21/RPR4=0.0 -! -!WC_RO21/RPR7=0.0 -! -!WC_RO21/RPG7=0.0 -! -!WC_RO21/URG8=0.0 -! -!WC_RO21/UR19=0.0 -! -!WC_RO21/URG9=0.0 -! -!WC_RO21/AP7=0.0 -! -!WC_RO21/URG10=0.0 -! -!WC_RO21/RPR1=0.0 -! -!WC_RO21/RPR5=0.0 -! -!WC_RO21/RPR8=0.0 -! -!WC_RO21/RP10=0.0 -! -!WC_RO21/RP11=0.0 -! -!WC_RO21/RP16=0.0 -! -!WC_RO21/RPRL=0.0 -! -!WC_RO21/APAN=0.0 -! -!WC_RO21/PAN1=0.0 -! -!WC_RO21/PAN2=0.0 -! -!WC_RO21/PAN3=0.0 -! -!WC_RO21/PAN4=0.0 -! -!WC_RO21/PAN6=0.0 -! -!WC_RO21/PAN7=0.0 -! -!WC_RO21/PAN8=0.0 -! -!WC_RO21/PN10=0.0 -! -!WC_RO21/RO2T=0.0 -! -!WC_RO21/RO21=+KTC16 - PJAC(:,103,86)=+TPK%KTC16(:) -! -!WC_RO21/RO25=0.0 -! -!WC_RO21/WC_O3=0.0 -! -!WC_RO21/WC_H2O2=0.0 -! -!WC_RO21/WC_NO=0.0 -! -!WC_RO21/WC_NO2=0.0 -! -!WC_RO21/WC_NO3=0.0 -! -!WC_RO21/WC_N2O5=0.0 -! -!WC_RO21/WC_HONO=0.0 -! -!WC_RO21/WC_HNO3=0.0 -! -!WC_RO21/WC_HNO4=0.0 -! -!WC_RO21/WC_NH3=0.0 -! -!WC_RO21/WC_OH=+0.50*KC34*<WC_ALD2>+KC37*<WC_KETL> - PJAC(:,103,98)=+0.50*TPK%KC34(:)*PCONC(:,109)+TPK%KC37(:)*PCONC(:,112) -! -!WC_RO21/WC_HO2=0.0 -! -!WC_RO21/WC_CO2=0.0 -! -!WC_RO21/WC_SO2=-KC28*<WC_RO21> - PJAC(:,103,101)=-TPK%KC28(:)*PCONC(:,103) -! -!WC_RO21/WC_H2SO4=0.0 -! -!WC_RO21/WC_RO21=-KTC47-KC27*<WC_RO21>-KC27*<WC_RO21>-KC27*<WC_RO21>-KC27*<WC_R -!O21>-KC28*<WC_SO2> - PJAC(:,103,103)=-TPK%KTC47(:)-TPK%KC27(:)*PCONC(:,103)-TPK%KC27(:)*PCONC(:,103& -&)-TPK%KC27(:)*PCONC(:,103)-TPK%KC27(:)*PCONC(:,103)-TPK%KC28(:)*PCONC(:,101) -! -!WC_RO21/WC_RO25=0.0 -! -!WC_RO21/WC_MEOH=0.0 -! -!WC_RO21/WC_ETOH=0.0 -! -!WC_RO21/WC_ALCH=0.0 -! -!WC_RO21/WC_HCHO=0.0 -! -!WC_RO21/WC_ALD2=+0.50*KC34*<WC_OH> - PJAC(:,103,109)=+0.50*TPK%KC34(:)*PCONC(:,98) -! -!WC_RO21/WC_GLY=0.0 -! -!WC_RO21/WC_MGLY=0.0 -! -!WC_RO21/WC_KETL=+KC37*<WC_OH> - PJAC(:,103,112)=+TPK%KC37(:)*PCONC(:,98) -! -!WC_RO21/WC_ORA1=0.0 -! -!WC_RO21/WC_ORA2=0.0 -! -!WC_RO21/WC_ACID=0.0 -! -!WC_RO21/WC_RP16=0.0 -! -!WC_RO21/WC_UR21=0.0 -! -!WC_RO21/WC_UR28=0.0 -! -!WC_RO21/WC_ACID2=0.0 -! -!WC_RO21/WC_ASO3=0.0 -! -!WC_RO21/WC_ASO4=0.0 -! -!WC_RO21/WC_ASO5=0.0 -! -!WC_RO21/WC_AHSO5=0.0 -! -!WC_RO21/WC_AHMS=0.0 -! -!WC_RO21/WR_O3=0.0 -! -!WC_RO21/WR_H2O2=0.0 -! -!WC_RO21/WR_NO=0.0 -! -!WC_RO21/WR_NO2=0.0 -! -!WC_RO21/WR_NO3=0.0 -! -!WC_RO21/WR_N2O5=0.0 -! -!WC_RO21/WR_HONO=0.0 -! -!WC_RO21/WR_HNO3=0.0 -! -!WC_RO21/WR_HNO4=0.0 -! -!WC_RO21/WR_NH3=0.0 -! -!WC_RO21/WR_OH=0.0 -! -!WC_RO21/WR_HO2=0.0 -! -!WC_RO21/WR_CO2=0.0 -! -!WC_RO21/WR_SO2=0.0 -! -!WC_RO21/WR_H2SO4=0.0 -! -!WC_RO21/WR_RO21=0.0 -! -!WC_RO21/WR_RO25=0.0 -! -!WC_RO21/WR_MEOH=0.0 -! -!WC_RO21/WR_ETOH=0.0 -! -!WC_RO21/WR_ALCH=0.0 -! -!WC_RO21/WR_HCHO=0.0 -! -!WC_RO21/WR_ALD2=0.0 -! -!WC_RO21/WR_GLY=0.0 -! -!WC_RO21/WR_MGLY=0.0 -! -!WC_RO21/WR_KETL=0.0 -! -!WC_RO21/WR_ORA1=0.0 -! -!WC_RO21/WR_ORA2=0.0 -! -!WC_RO21/WR_ACID=0.0 -! -!WC_RO21/WR_RP16=0.0 -! -!WC_RO21/WR_UR21=0.0 -! -!WC_RO21/WR_UR28=0.0 -! -!WC_RO21/WR_ACID2=0.0 -! -!WC_RO21/WR_ASO3=0.0 -! -!WC_RO21/WR_ASO4=0.0 -! -!WC_RO21/WR_ASO5=0.0 -! -!WC_RO21/WR_AHSO5=0.0 -! -!WC_RO21/WR_AHMS=0.0 -! -!WC_RO25/NO=0.0 -! -!WC_RO25/NO2=0.0 -! -!WC_RO25/O3=0.0 -! -!WC_RO25/HONO=0.0 -! -!WC_RO25/HNO3=0.0 -! -!WC_RO25/HNO4=0.0 -! -!WC_RO25/N2O5=0.0 -! -!WC_RO25/NO3=0.0 -! -!WC_RO25/NH3=0.0 -! -!WC_RO25/HO2=0.0 -! -!WC_RO25/CO=0.0 -! -!WC_RO25/H2O2=0.0 -! -!WC_RO25/SO2=0.0 -! -!WC_RO25/H2SO4=0.0 -! -!WC_RO25/OH=0.0 -! -!WC_RO25/ETHE=0.0 -! -!WC_RO25/OLEL=0.0 -! -!WC_RO25/OLEH=0.0 -! -!WC_RO25/ALKL=0.0 -! -!WC_RO25/ALKM=0.0 -! -!WC_RO25/ALKH=0.0 -! -!WC_RO25/AROH=0.0 -! -!WC_RO25/AROL=0.0 -! -!WC_RO25/AROO=0.0 -! -!WC_RO25/ARAL=0.0 -! -!WC_RO25/ARAC=0.0 -! -!WC_RO25/PAH=0.0 -! -!WC_RO25/HCHO=0.0 -! -!WC_RO25/ALD2=0.0 -! -!WC_RO25/KETL=0.0 -! -!WC_RO25/KETH=0.0 -! -!WC_RO25/MEOH=0.0 -! -!WC_RO25/ETOH=0.0 -! -!WC_RO25/ALCH=0.0 -! -!WC_RO25/ISOP=0.0 -! -!WC_RO25/BIOL=0.0 -! -!WC_RO25/BIOH=0.0 -! -!WC_RO25/MTBE=0.0 -! -!WC_RO25/MVK=0.0 -! -!WC_RO25/MCR=0.0 -! -!WC_RO25/MGLY=0.0 -! -!WC_RO25/GLY=0.0 -! -!WC_RO25/ORA1=0.0 -! -!WC_RO25/ORA2=0.0 -! -!WC_RO25/ACID=0.0 -! -!WC_RO25/UR28=0.0 -! -!WC_RO25/UR21=0.0 -! -!WC_RO25/URG2=0.0 -! -!WC_RO25/UR26=0.0 -! -!WC_RO25/RPG2=0.0 -! -!WC_RO25/RP18=0.0 -! -!WC_RO25/RPG3=0.0 -! -!WC_RO25/URG4=0.0 -! -!WC_RO25/UR8=0.0 -! -!WC_RO25/UR17=0.0 -! -!WC_RO25/UR7=0.0 -! -!WC_RO25/RPR3=0.0 -! -!WC_RO25/URG6=0.0 -! -!WC_RO25/UR22=0.0 -! -!WC_RO25/URG7=0.0 -! -!WC_RO25/RPR4=0.0 -! -!WC_RO25/RPR7=0.0 -! -!WC_RO25/RPG7=0.0 -! -!WC_RO25/URG8=0.0 -! -!WC_RO25/UR19=0.0 -! -!WC_RO25/URG9=0.0 -! -!WC_RO25/AP7=0.0 -! -!WC_RO25/URG10=0.0 -! -!WC_RO25/RPR1=0.0 -! -!WC_RO25/RPR5=0.0 -! -!WC_RO25/RPR8=0.0 -! -!WC_RO25/RP10=0.0 -! -!WC_RO25/RP11=0.0 -! -!WC_RO25/RP16=0.0 -! -!WC_RO25/RPRL=0.0 -! -!WC_RO25/APAN=0.0 -! -!WC_RO25/PAN1=0.0 -! -!WC_RO25/PAN2=0.0 -! -!WC_RO25/PAN3=0.0 -! -!WC_RO25/PAN4=0.0 -! -!WC_RO25/PAN6=0.0 -! -!WC_RO25/PAN7=0.0 -! -!WC_RO25/PAN8=0.0 -! -!WC_RO25/PN10=0.0 -! -!WC_RO25/RO2T=0.0 -! -!WC_RO25/RO21=0.0 -! -!WC_RO25/RO25=+KTC17 - PJAC(:,104,87)=+TPK%KTC17(:) -! -!WC_RO25/WC_O3=0.0 -! -!WC_RO25/WC_H2O2=0.0 -! -!WC_RO25/WC_NO=0.0 -! -!WC_RO25/WC_NO2=0.0 -! -!WC_RO25/WC_NO3=0.0 -! -!WC_RO25/WC_N2O5=0.0 -! -!WC_RO25/WC_HONO=0.0 -! -!WC_RO25/WC_HNO3=0.0 -! -!WC_RO25/WC_HNO4=0.0 -! -!WC_RO25/WC_NH3=0.0 -! -!WC_RO25/WC_OH=+0.50*KC34*<WC_ALD2>+KC40*<WC_ACID> - PJAC(:,104,98)=+0.50*TPK%KC34(:)*PCONC(:,109)+TPK%KC40(:)*PCONC(:,115) -! -!WC_RO25/WC_HO2=0.0 -! -!WC_RO25/WC_CO2=0.0 -! -!WC_RO25/WC_SO2=0.0 -! -!WC_RO25/WC_H2SO4=0.0 -! -!WC_RO25/WC_RO21=0.0 -! -!WC_RO25/WC_RO25=-KTC48-KC29*<WC_RO25>-KC29*<WC_RO25>-KC29*<WC_RO25>-KC29*<WC_R -!O25> - PJAC(:,104,104)=-TPK%KTC48(:)-TPK%KC29(:)*PCONC(:,104)-TPK%KC29(:)*PCONC(:,104& -&)-TPK%KC29(:)*PCONC(:,104)-TPK%KC29(:)*PCONC(:,104) -! -!WC_RO25/WC_MEOH=0.0 -! -!WC_RO25/WC_ETOH=0.0 -! -!WC_RO25/WC_ALCH=0.0 -! -!WC_RO25/WC_HCHO=0.0 -! -!WC_RO25/WC_ALD2=+0.50*KC34*<WC_OH> - PJAC(:,104,109)=+0.50*TPK%KC34(:)*PCONC(:,98) -! -!WC_RO25/WC_GLY=0.0 -! -!WC_RO25/WC_MGLY=0.0 -! -!WC_RO25/WC_KETL=0.0 -! -!WC_RO25/WC_ORA1=0.0 -! -!WC_RO25/WC_ORA2=0.0 -! -!WC_RO25/WC_ACID=+KC40*<WC_OH> - PJAC(:,104,115)=+TPK%KC40(:)*PCONC(:,98) -! -!WC_RO25/WC_RP16=0.0 -! -!WC_RO25/WC_UR21=0.0 -! -!WC_RO25/WC_UR28=0.0 -! -!WC_RO25/WC_ACID2=0.0 -! -!WC_RO25/WC_ASO3=0.0 -! -!WC_RO25/WC_ASO4=0.0 -! -!WC_RO25/WC_ASO5=0.0 -! -!WC_RO25/WC_AHSO5=0.0 -! -!WC_RO25/WC_AHMS=0.0 -! -!WC_RO25/WR_O3=0.0 -! -!WC_RO25/WR_H2O2=0.0 -! -!WC_RO25/WR_NO=0.0 -! -!WC_RO25/WR_NO2=0.0 -! -!WC_RO25/WR_NO3=0.0 -! -!WC_RO25/WR_N2O5=0.0 -! -!WC_RO25/WR_HONO=0.0 -! -!WC_RO25/WR_HNO3=0.0 -! -!WC_RO25/WR_HNO4=0.0 -! -!WC_RO25/WR_NH3=0.0 -! -!WC_RO25/WR_OH=0.0 -! -!WC_RO25/WR_HO2=0.0 -! -!WC_RO25/WR_CO2=0.0 -! -!WC_RO25/WR_SO2=0.0 -! -!WC_RO25/WR_H2SO4=0.0 -! -!WC_RO25/WR_RO21=0.0 -! -!WC_RO25/WR_RO25=0.0 -! -!WC_RO25/WR_MEOH=0.0 -! -!WC_RO25/WR_ETOH=0.0 -! -!WC_RO25/WR_ALCH=0.0 -! -!WC_RO25/WR_HCHO=0.0 -! -!WC_RO25/WR_ALD2=0.0 -! -!WC_RO25/WR_GLY=0.0 -! -!WC_RO25/WR_MGLY=0.0 -! -!WC_RO25/WR_KETL=0.0 -! -!WC_RO25/WR_ORA1=0.0 -! -!WC_RO25/WR_ORA2=0.0 -! -!WC_RO25/WR_ACID=0.0 -! -!WC_RO25/WR_RP16=0.0 -! -!WC_RO25/WR_UR21=0.0 -! -!WC_RO25/WR_UR28=0.0 -! -!WC_RO25/WR_ACID2=0.0 -! -!WC_RO25/WR_ASO3=0.0 -! -!WC_RO25/WR_ASO4=0.0 -! -!WC_RO25/WR_ASO5=0.0 -! -!WC_RO25/WR_AHSO5=0.0 -! -!WC_RO25/WR_AHMS=0.0 -! -!WC_MEOH/NO=0.0 -! -!WC_MEOH/NO2=0.0 -! -!WC_MEOH/O3=0.0 -! -!WC_MEOH/HONO=0.0 -! -!WC_MEOH/HNO3=0.0 -! -!WC_MEOH/HNO4=0.0 -! -!WC_MEOH/N2O5=0.0 -! -!WC_MEOH/NO3=0.0 -! -!WC_MEOH/NH3=0.0 -! -!WC_MEOH/HO2=0.0 -! -!WC_MEOH/CO=0.0 -! -!WC_MEOH/H2O2=0.0 -! -!WC_MEOH/SO2=0.0 -! -!WC_MEOH/H2SO4=0.0 -! -!WC_MEOH/OH=0.0 -! -!WC_MEOH/ETHE=0.0 -! -!WC_MEOH/OLEL=0.0 -! -!WC_MEOH/OLEH=0.0 -! -!WC_MEOH/ALKL=0.0 -! -!WC_MEOH/ALKM=0.0 -! -!WC_MEOH/ALKH=0.0 -! -!WC_MEOH/AROH=0.0 -! -!WC_MEOH/AROL=0.0 -! -!WC_MEOH/AROO=0.0 -! -!WC_MEOH/ARAL=0.0 -! -!WC_MEOH/ARAC=0.0 -! -!WC_MEOH/PAH=0.0 -! -!WC_MEOH/HCHO=0.0 -! -!WC_MEOH/ALD2=0.0 -! -!WC_MEOH/KETL=0.0 -! -!WC_MEOH/KETH=0.0 -! -!WC_MEOH/MEOH=+KTC18 - PJAC(:,105,32)=+TPK%KTC18(:) -! -!WC_MEOH/ETOH=0.0 -! -!WC_MEOH/ALCH=0.0 -! -!WC_MEOH/ISOP=0.0 -! -!WC_MEOH/BIOL=0.0 -! -!WC_MEOH/BIOH=0.0 -! -!WC_MEOH/MTBE=0.0 -! -!WC_MEOH/MVK=0.0 -! -!WC_MEOH/MCR=0.0 -! -!WC_MEOH/MGLY=0.0 -! -!WC_MEOH/GLY=0.0 -! -!WC_MEOH/ORA1=0.0 -! -!WC_MEOH/ORA2=0.0 -! -!WC_MEOH/ACID=0.0 -! -!WC_MEOH/UR28=0.0 -! -!WC_MEOH/UR21=0.0 -! -!WC_MEOH/URG2=0.0 -! -!WC_MEOH/UR26=0.0 -! -!WC_MEOH/RPG2=0.0 -! -!WC_MEOH/RP18=0.0 -! -!WC_MEOH/RPG3=0.0 -! -!WC_MEOH/URG4=0.0 -! -!WC_MEOH/UR8=0.0 -! -!WC_MEOH/UR17=0.0 -! -!WC_MEOH/UR7=0.0 -! -!WC_MEOH/RPR3=0.0 -! -!WC_MEOH/URG6=0.0 -! -!WC_MEOH/UR22=0.0 -! -!WC_MEOH/URG7=0.0 -! -!WC_MEOH/RPR4=0.0 -! -!WC_MEOH/RPR7=0.0 -! -!WC_MEOH/RPG7=0.0 -! -!WC_MEOH/URG8=0.0 -! -!WC_MEOH/UR19=0.0 -! -!WC_MEOH/URG9=0.0 -! -!WC_MEOH/AP7=0.0 -! -!WC_MEOH/URG10=0.0 -! -!WC_MEOH/RPR1=0.0 -! -!WC_MEOH/RPR5=0.0 -! -!WC_MEOH/RPR8=0.0 -! -!WC_MEOH/RP10=0.0 -! -!WC_MEOH/RP11=0.0 -! -!WC_MEOH/RP16=0.0 -! -!WC_MEOH/RPRL=0.0 -! -!WC_MEOH/APAN=0.0 -! -!WC_MEOH/PAN1=0.0 -! -!WC_MEOH/PAN2=0.0 -! -!WC_MEOH/PAN3=0.0 -! -!WC_MEOH/PAN4=0.0 -! -!WC_MEOH/PAN6=0.0 -! -!WC_MEOH/PAN7=0.0 -! -!WC_MEOH/PAN8=0.0 -! -!WC_MEOH/PN10=0.0 -! -!WC_MEOH/RO2T=0.0 -! -!WC_MEOH/RO21=0.0 -! -!WC_MEOH/RO25=0.0 -! -!WC_MEOH/WC_O3=0.0 -! -!WC_MEOH/WC_H2O2=0.0 -! -!WC_MEOH/WC_NO=0.0 -! -!WC_MEOH/WC_NO2=0.0 -! -!WC_MEOH/WC_NO3=0.0 -! -!WC_MEOH/WC_N2O5=0.0 -! -!WC_MEOH/WC_HONO=0.0 -! -!WC_MEOH/WC_HNO3=0.0 -! -!WC_MEOH/WC_HNO4=0.0 -! -!WC_MEOH/WC_NH3=0.0 -! -!WC_MEOH/WC_OH=-KC30*<WC_MEOH> - PJAC(:,105,98)=-TPK%KC30(:)*PCONC(:,105) -! -!WC_MEOH/WC_HO2=0.0 -! -!WC_MEOH/WC_CO2=0.0 -! -!WC_MEOH/WC_SO2=0.0 -! -!WC_MEOH/WC_H2SO4=0.0 -! -!WC_MEOH/WC_RO21=0.0 -! -!WC_MEOH/WC_RO25=0.0 -! -!WC_MEOH/WC_MEOH=-KTC49-KC30*<WC_OH> - PJAC(:,105,105)=-TPK%KTC49(:)-TPK%KC30(:)*PCONC(:,98) -! -!WC_MEOH/WC_ETOH=0.0 -! -!WC_MEOH/WC_ALCH=0.0 -! -!WC_MEOH/WC_HCHO=0.0 -! -!WC_MEOH/WC_ALD2=0.0 -! -!WC_MEOH/WC_GLY=0.0 -! -!WC_MEOH/WC_MGLY=0.0 -! -!WC_MEOH/WC_KETL=0.0 -! -!WC_MEOH/WC_ORA1=0.0 -! -!WC_MEOH/WC_ORA2=0.0 -! -!WC_MEOH/WC_ACID=0.0 -! -!WC_MEOH/WC_RP16=0.0 -! -!WC_MEOH/WC_UR21=0.0 -! -!WC_MEOH/WC_UR28=0.0 -! -!WC_MEOH/WC_ACID2=0.0 -! -!WC_MEOH/WC_ASO3=0.0 -! -!WC_MEOH/WC_ASO4=0.0 -! -!WC_MEOH/WC_ASO5=0.0 -! -!WC_MEOH/WC_AHSO5=0.0 -! -!WC_MEOH/WC_AHMS=0.0 -! -!WC_MEOH/WR_O3=0.0 -! -!WC_MEOH/WR_H2O2=0.0 -! -!WC_MEOH/WR_NO=0.0 -! -!WC_MEOH/WR_NO2=0.0 -! -!WC_MEOH/WR_NO3=0.0 -! -!WC_MEOH/WR_N2O5=0.0 -! -!WC_MEOH/WR_HONO=0.0 -! -!WC_MEOH/WR_HNO3=0.0 -! -!WC_MEOH/WR_HNO4=0.0 -! -!WC_MEOH/WR_NH3=0.0 -! -!WC_MEOH/WR_OH=0.0 -! -!WC_MEOH/WR_HO2=0.0 -! -!WC_MEOH/WR_CO2=0.0 -! -!WC_MEOH/WR_SO2=0.0 -! -!WC_MEOH/WR_H2SO4=0.0 -! -!WC_MEOH/WR_RO21=0.0 -! -!WC_MEOH/WR_RO25=0.0 -! -!WC_MEOH/WR_MEOH=0.0 -! -!WC_MEOH/WR_ETOH=0.0 -! -!WC_MEOH/WR_ALCH=0.0 -! -!WC_MEOH/WR_HCHO=0.0 -! -!WC_MEOH/WR_ALD2=0.0 -! -!WC_MEOH/WR_GLY=0.0 -! -!WC_MEOH/WR_MGLY=0.0 -! -!WC_MEOH/WR_KETL=0.0 -! -!WC_MEOH/WR_ORA1=0.0 -! -!WC_MEOH/WR_ORA2=0.0 -! -!WC_MEOH/WR_ACID=0.0 -! -!WC_MEOH/WR_RP16=0.0 -! -!WC_MEOH/WR_UR21=0.0 -! -!WC_MEOH/WR_UR28=0.0 -! -!WC_MEOH/WR_ACID2=0.0 -! -!WC_MEOH/WR_ASO3=0.0 -! -!WC_MEOH/WR_ASO4=0.0 -! -!WC_MEOH/WR_ASO5=0.0 -! -!WC_MEOH/WR_AHSO5=0.0 -! -!WC_MEOH/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ20 -! -SUBROUTINE SUBJ21 -! -!Indices 106 a 110 -! -! -!WC_ETOH/NO=0.0 -! -!WC_ETOH/NO2=0.0 -! -!WC_ETOH/O3=0.0 -! -!WC_ETOH/HONO=0.0 -! -!WC_ETOH/HNO3=0.0 -! -!WC_ETOH/HNO4=0.0 -! -!WC_ETOH/N2O5=0.0 -! -!WC_ETOH/NO3=0.0 -! -!WC_ETOH/NH3=0.0 -! -!WC_ETOH/HO2=0.0 -! -!WC_ETOH/CO=0.0 -! -!WC_ETOH/H2O2=0.0 -! -!WC_ETOH/SO2=0.0 -! -!WC_ETOH/H2SO4=0.0 -! -!WC_ETOH/OH=0.0 -! -!WC_ETOH/ETHE=0.0 -! -!WC_ETOH/OLEL=0.0 -! -!WC_ETOH/OLEH=0.0 -! -!WC_ETOH/ALKL=0.0 -! -!WC_ETOH/ALKM=0.0 -! -!WC_ETOH/ALKH=0.0 -! -!WC_ETOH/AROH=0.0 -! -!WC_ETOH/AROL=0.0 -! -!WC_ETOH/AROO=0.0 -! -!WC_ETOH/ARAL=0.0 -! -!WC_ETOH/ARAC=0.0 -! -!WC_ETOH/PAH=0.0 -! -!WC_ETOH/HCHO=0.0 -! -!WC_ETOH/ALD2=0.0 -! -!WC_ETOH/KETL=0.0 -! -!WC_ETOH/KETH=0.0 -! -!WC_ETOH/MEOH=0.0 -! -!WC_ETOH/ETOH=+KTC19 - PJAC(:,106,33)=+TPK%KTC19(:) -! -!WC_ETOH/ALCH=0.0 -! -!WC_ETOH/ISOP=0.0 -! -!WC_ETOH/BIOL=0.0 -! -!WC_ETOH/BIOH=0.0 -! -!WC_ETOH/MTBE=0.0 -! -!WC_ETOH/MVK=0.0 -! -!WC_ETOH/MCR=0.0 -! -!WC_ETOH/MGLY=0.0 -! -!WC_ETOH/GLY=0.0 -! -!WC_ETOH/ORA1=0.0 -! -!WC_ETOH/ORA2=0.0 -! -!WC_ETOH/ACID=0.0 -! -!WC_ETOH/UR28=0.0 -! -!WC_ETOH/UR21=0.0 -! -!WC_ETOH/URG2=0.0 -! -!WC_ETOH/UR26=0.0 -! -!WC_ETOH/RPG2=0.0 -! -!WC_ETOH/RP18=0.0 -! -!WC_ETOH/RPG3=0.0 -! -!WC_ETOH/URG4=0.0 -! -!WC_ETOH/UR8=0.0 -! -!WC_ETOH/UR17=0.0 -! -!WC_ETOH/UR7=0.0 -! -!WC_ETOH/RPR3=0.0 -! -!WC_ETOH/URG6=0.0 -! -!WC_ETOH/UR22=0.0 -! -!WC_ETOH/URG7=0.0 -! -!WC_ETOH/RPR4=0.0 -! -!WC_ETOH/RPR7=0.0 -! -!WC_ETOH/RPG7=0.0 -! -!WC_ETOH/URG8=0.0 -! -!WC_ETOH/UR19=0.0 -! -!WC_ETOH/URG9=0.0 -! -!WC_ETOH/AP7=0.0 -! -!WC_ETOH/URG10=0.0 -! -!WC_ETOH/RPR1=0.0 -! -!WC_ETOH/RPR5=0.0 -! -!WC_ETOH/RPR8=0.0 -! -!WC_ETOH/RP10=0.0 -! -!WC_ETOH/RP11=0.0 -! -!WC_ETOH/RP16=0.0 -! -!WC_ETOH/RPRL=0.0 -! -!WC_ETOH/APAN=0.0 -! -!WC_ETOH/PAN1=0.0 -! -!WC_ETOH/PAN2=0.0 -! -!WC_ETOH/PAN3=0.0 -! -!WC_ETOH/PAN4=0.0 -! -!WC_ETOH/PAN6=0.0 -! -!WC_ETOH/PAN7=0.0 -! -!WC_ETOH/PAN8=0.0 -! -!WC_ETOH/PN10=0.0 -! -!WC_ETOH/RO2T=0.0 -! -!WC_ETOH/RO21=0.0 -! -!WC_ETOH/RO25=0.0 -! -!WC_ETOH/WC_O3=0.0 -! -!WC_ETOH/WC_H2O2=0.0 -! -!WC_ETOH/WC_NO=0.0 -! -!WC_ETOH/WC_NO2=0.0 -! -!WC_ETOH/WC_NO3=0.0 -! -!WC_ETOH/WC_N2O5=0.0 -! -!WC_ETOH/WC_HONO=0.0 -! -!WC_ETOH/WC_HNO3=0.0 -! -!WC_ETOH/WC_HNO4=0.0 -! -!WC_ETOH/WC_NH3=0.0 -! -!WC_ETOH/WC_OH=-KC31*<WC_ETOH> - PJAC(:,106,98)=-TPK%KC31(:)*PCONC(:,106) -! -!WC_ETOH/WC_HO2=0.0 -! -!WC_ETOH/WC_CO2=0.0 -! -!WC_ETOH/WC_SO2=0.0 -! -!WC_ETOH/WC_H2SO4=0.0 -! -!WC_ETOH/WC_RO21=0.0 -! -!WC_ETOH/WC_RO25=0.0 -! -!WC_ETOH/WC_MEOH=0.0 -! -!WC_ETOH/WC_ETOH=-KTC50-KC31*<WC_OH> - PJAC(:,106,106)=-TPK%KTC50(:)-TPK%KC31(:)*PCONC(:,98) -! -!WC_ETOH/WC_ALCH=0.0 -! -!WC_ETOH/WC_HCHO=0.0 -! -!WC_ETOH/WC_ALD2=0.0 -! -!WC_ETOH/WC_GLY=0.0 -! -!WC_ETOH/WC_MGLY=0.0 -! -!WC_ETOH/WC_KETL=0.0 -! -!WC_ETOH/WC_ORA1=0.0 -! -!WC_ETOH/WC_ORA2=0.0 -! -!WC_ETOH/WC_ACID=0.0 -! -!WC_ETOH/WC_RP16=0.0 -! -!WC_ETOH/WC_UR21=0.0 -! -!WC_ETOH/WC_UR28=0.0 -! -!WC_ETOH/WC_ACID2=0.0 -! -!WC_ETOH/WC_ASO3=0.0 -! -!WC_ETOH/WC_ASO4=0.0 -! -!WC_ETOH/WC_ASO5=0.0 -! -!WC_ETOH/WC_AHSO5=0.0 -! -!WC_ETOH/WC_AHMS=0.0 -! -!WC_ETOH/WR_O3=0.0 -! -!WC_ETOH/WR_H2O2=0.0 -! -!WC_ETOH/WR_NO=0.0 -! -!WC_ETOH/WR_NO2=0.0 -! -!WC_ETOH/WR_NO3=0.0 -! -!WC_ETOH/WR_N2O5=0.0 -! -!WC_ETOH/WR_HONO=0.0 -! -!WC_ETOH/WR_HNO3=0.0 -! -!WC_ETOH/WR_HNO4=0.0 -! -!WC_ETOH/WR_NH3=0.0 -! -!WC_ETOH/WR_OH=0.0 -! -!WC_ETOH/WR_HO2=0.0 -! -!WC_ETOH/WR_CO2=0.0 -! -!WC_ETOH/WR_SO2=0.0 -! -!WC_ETOH/WR_H2SO4=0.0 -! -!WC_ETOH/WR_RO21=0.0 -! -!WC_ETOH/WR_RO25=0.0 -! -!WC_ETOH/WR_MEOH=0.0 -! -!WC_ETOH/WR_ETOH=0.0 -! -!WC_ETOH/WR_ALCH=0.0 -! -!WC_ETOH/WR_HCHO=0.0 -! -!WC_ETOH/WR_ALD2=0.0 -! -!WC_ETOH/WR_GLY=0.0 -! -!WC_ETOH/WR_MGLY=0.0 -! -!WC_ETOH/WR_KETL=0.0 -! -!WC_ETOH/WR_ORA1=0.0 -! -!WC_ETOH/WR_ORA2=0.0 -! -!WC_ETOH/WR_ACID=0.0 -! -!WC_ETOH/WR_RP16=0.0 -! -!WC_ETOH/WR_UR21=0.0 -! -!WC_ETOH/WR_UR28=0.0 -! -!WC_ETOH/WR_ACID2=0.0 -! -!WC_ETOH/WR_ASO3=0.0 -! -!WC_ETOH/WR_ASO4=0.0 -! -!WC_ETOH/WR_ASO5=0.0 -! -!WC_ETOH/WR_AHSO5=0.0 -! -!WC_ETOH/WR_AHMS=0.0 -! -!WC_ALCH/NO=0.0 -! -!WC_ALCH/NO2=0.0 -! -!WC_ALCH/O3=0.0 -! -!WC_ALCH/HONO=0.0 -! -!WC_ALCH/HNO3=0.0 -! -!WC_ALCH/HNO4=0.0 -! -!WC_ALCH/N2O5=0.0 -! -!WC_ALCH/NO3=0.0 -! -!WC_ALCH/NH3=0.0 -! -!WC_ALCH/HO2=0.0 -! -!WC_ALCH/CO=0.0 -! -!WC_ALCH/H2O2=0.0 -! -!WC_ALCH/SO2=0.0 -! -!WC_ALCH/H2SO4=0.0 -! -!WC_ALCH/OH=0.0 -! -!WC_ALCH/ETHE=0.0 -! -!WC_ALCH/OLEL=0.0 -! -!WC_ALCH/OLEH=0.0 -! -!WC_ALCH/ALKL=0.0 -! -!WC_ALCH/ALKM=0.0 -! -!WC_ALCH/ALKH=0.0 -! -!WC_ALCH/AROH=0.0 -! -!WC_ALCH/AROL=0.0 -! -!WC_ALCH/AROO=0.0 -! -!WC_ALCH/ARAL=0.0 -! -!WC_ALCH/ARAC=0.0 -! -!WC_ALCH/PAH=0.0 -! -!WC_ALCH/HCHO=0.0 -! -!WC_ALCH/ALD2=0.0 -! -!WC_ALCH/KETL=0.0 -! -!WC_ALCH/KETH=0.0 -! -!WC_ALCH/MEOH=0.0 -! -!WC_ALCH/ETOH=0.0 -! -!WC_ALCH/ALCH=+KTC20 - PJAC(:,107,34)=+TPK%KTC20(:) -! -!WC_ALCH/ISOP=0.0 -! -!WC_ALCH/BIOL=0.0 -! -!WC_ALCH/BIOH=0.0 -! -!WC_ALCH/MTBE=0.0 -! -!WC_ALCH/MVK=0.0 -! -!WC_ALCH/MCR=0.0 -! -!WC_ALCH/MGLY=0.0 -! -!WC_ALCH/GLY=0.0 -! -!WC_ALCH/ORA1=0.0 -! -!WC_ALCH/ORA2=0.0 -! -!WC_ALCH/ACID=0.0 -! -!WC_ALCH/UR28=0.0 -! -!WC_ALCH/UR21=0.0 -! -!WC_ALCH/URG2=0.0 -! -!WC_ALCH/UR26=0.0 -! -!WC_ALCH/RPG2=0.0 -! -!WC_ALCH/RP18=0.0 -! -!WC_ALCH/RPG3=0.0 -! -!WC_ALCH/URG4=0.0 -! -!WC_ALCH/UR8=0.0 -! -!WC_ALCH/UR17=0.0 -! -!WC_ALCH/UR7=0.0 -! -!WC_ALCH/RPR3=0.0 -! -!WC_ALCH/URG6=0.0 -! -!WC_ALCH/UR22=0.0 -! -!WC_ALCH/URG7=0.0 -! -!WC_ALCH/RPR4=0.0 -! -!WC_ALCH/RPR7=0.0 -! -!WC_ALCH/RPG7=0.0 -! -!WC_ALCH/URG8=0.0 -! -!WC_ALCH/UR19=0.0 -! -!WC_ALCH/URG9=0.0 -! -!WC_ALCH/AP7=0.0 -! -!WC_ALCH/URG10=0.0 -! -!WC_ALCH/RPR1=0.0 -! -!WC_ALCH/RPR5=0.0 -! -!WC_ALCH/RPR8=0.0 -! -!WC_ALCH/RP10=0.0 -! -!WC_ALCH/RP11=0.0 -! -!WC_ALCH/RP16=0.0 -! -!WC_ALCH/RPRL=0.0 -! -!WC_ALCH/APAN=0.0 -! -!WC_ALCH/PAN1=0.0 -! -!WC_ALCH/PAN2=0.0 -! -!WC_ALCH/PAN3=0.0 -! -!WC_ALCH/PAN4=0.0 -! -!WC_ALCH/PAN6=0.0 -! -!WC_ALCH/PAN7=0.0 -! -!WC_ALCH/PAN8=0.0 -! -!WC_ALCH/PN10=0.0 -! -!WC_ALCH/RO2T=0.0 -! -!WC_ALCH/RO21=0.0 -! -!WC_ALCH/RO25=0.0 -! -!WC_ALCH/WC_O3=0.0 -! -!WC_ALCH/WC_H2O2=0.0 -! -!WC_ALCH/WC_NO=0.0 -! -!WC_ALCH/WC_NO2=0.0 -! -!WC_ALCH/WC_NO3=0.0 -! -!WC_ALCH/WC_N2O5=0.0 -! -!WC_ALCH/WC_HONO=0.0 -! -!WC_ALCH/WC_HNO3=0.0 -! -!WC_ALCH/WC_HNO4=0.0 -! -!WC_ALCH/WC_NH3=0.0 -! -!WC_ALCH/WC_OH=-KC32*<WC_ALCH> - PJAC(:,107,98)=-TPK%KC32(:)*PCONC(:,107) -! -!WC_ALCH/WC_HO2=0.0 -! -!WC_ALCH/WC_CO2=0.0 -! -!WC_ALCH/WC_SO2=0.0 -! -!WC_ALCH/WC_H2SO4=0.0 -! -!WC_ALCH/WC_RO21=0.0 -! -!WC_ALCH/WC_RO25=0.0 -! -!WC_ALCH/WC_MEOH=0.0 -! -!WC_ALCH/WC_ETOH=0.0 -! -!WC_ALCH/WC_ALCH=-KTC51-KC32*<WC_OH> - PJAC(:,107,107)=-TPK%KTC51(:)-TPK%KC32(:)*PCONC(:,98) -! -!WC_ALCH/WC_HCHO=0.0 -! -!WC_ALCH/WC_ALD2=0.0 -! -!WC_ALCH/WC_GLY=0.0 -! -!WC_ALCH/WC_MGLY=0.0 -! -!WC_ALCH/WC_KETL=0.0 -! -!WC_ALCH/WC_ORA1=0.0 -! -!WC_ALCH/WC_ORA2=0.0 -! -!WC_ALCH/WC_ACID=0.0 -! -!WC_ALCH/WC_RP16=0.0 -! -!WC_ALCH/WC_UR21=0.0 -! -!WC_ALCH/WC_UR28=0.0 -! -!WC_ALCH/WC_ACID2=0.0 -! -!WC_ALCH/WC_ASO3=0.0 -! -!WC_ALCH/WC_ASO4=0.0 -! -!WC_ALCH/WC_ASO5=0.0 -! -!WC_ALCH/WC_AHSO5=0.0 -! -!WC_ALCH/WC_AHMS=0.0 -! -!WC_ALCH/WR_O3=0.0 -! -!WC_ALCH/WR_H2O2=0.0 -! -!WC_ALCH/WR_NO=0.0 -! -!WC_ALCH/WR_NO2=0.0 -! -!WC_ALCH/WR_NO3=0.0 -! -!WC_ALCH/WR_N2O5=0.0 -! -!WC_ALCH/WR_HONO=0.0 -! -!WC_ALCH/WR_HNO3=0.0 -! -!WC_ALCH/WR_HNO4=0.0 -! -!WC_ALCH/WR_NH3=0.0 -! -!WC_ALCH/WR_OH=0.0 -! -!WC_ALCH/WR_HO2=0.0 -! -!WC_ALCH/WR_CO2=0.0 -! -!WC_ALCH/WR_SO2=0.0 -! -!WC_ALCH/WR_H2SO4=0.0 -! -!WC_ALCH/WR_RO21=0.0 -! -!WC_ALCH/WR_RO25=0.0 -! -!WC_ALCH/WR_MEOH=0.0 -! -!WC_ALCH/WR_ETOH=0.0 -! -!WC_ALCH/WR_ALCH=0.0 -! -!WC_ALCH/WR_HCHO=0.0 -! -!WC_ALCH/WR_ALD2=0.0 -! -!WC_ALCH/WR_GLY=0.0 -! -!WC_ALCH/WR_MGLY=0.0 -! -!WC_ALCH/WR_KETL=0.0 -! -!WC_ALCH/WR_ORA1=0.0 -! -!WC_ALCH/WR_ORA2=0.0 -! -!WC_ALCH/WR_ACID=0.0 -! -!WC_ALCH/WR_RP16=0.0 -! -!WC_ALCH/WR_UR21=0.0 -! -!WC_ALCH/WR_UR28=0.0 -! -!WC_ALCH/WR_ACID2=0.0 -! -!WC_ALCH/WR_ASO3=0.0 -! -!WC_ALCH/WR_ASO4=0.0 -! -!WC_ALCH/WR_ASO5=0.0 -! -!WC_ALCH/WR_AHSO5=0.0 -! -!WC_ALCH/WR_AHMS=0.0 -! -!WC_HCHO/NO=0.0 -! -!WC_HCHO/NO2=0.0 -! -!WC_HCHO/O3=0.0 -! -!WC_HCHO/HONO=0.0 -! -!WC_HCHO/HNO3=0.0 -! -!WC_HCHO/HNO4=0.0 -! -!WC_HCHO/N2O5=0.0 -! -!WC_HCHO/NO3=0.0 -! -!WC_HCHO/NH3=0.0 -! -!WC_HCHO/HO2=0.0 -! -!WC_HCHO/CO=0.0 -! -!WC_HCHO/H2O2=0.0 -! -!WC_HCHO/SO2=0.0 -! -!WC_HCHO/H2SO4=0.0 -! -!WC_HCHO/OH=0.0 -! -!WC_HCHO/ETHE=0.0 -! -!WC_HCHO/OLEL=0.0 -! -!WC_HCHO/OLEH=0.0 -! -!WC_HCHO/ALKL=0.0 -! -!WC_HCHO/ALKM=0.0 -! -!WC_HCHO/ALKH=0.0 -! -!WC_HCHO/AROH=0.0 -! -!WC_HCHO/AROL=0.0 -! -!WC_HCHO/AROO=0.0 -! -!WC_HCHO/ARAL=0.0 -! -!WC_HCHO/ARAC=0.0 -! -!WC_HCHO/PAH=0.0 -! -!WC_HCHO/HCHO=+KTC21 - PJAC(:,108,28)=+TPK%KTC21(:) -! -!WC_HCHO/ALD2=0.0 -! -!WC_HCHO/KETL=0.0 -! -!WC_HCHO/KETH=0.0 -! -!WC_HCHO/MEOH=0.0 -! -!WC_HCHO/ETOH=0.0 -! -!WC_HCHO/ALCH=0.0 -! -!WC_HCHO/ISOP=0.0 -! -!WC_HCHO/BIOL=0.0 -! -!WC_HCHO/BIOH=0.0 -! -!WC_HCHO/MTBE=0.0 -! -!WC_HCHO/MVK=0.0 -! -!WC_HCHO/MCR=0.0 -! -!WC_HCHO/MGLY=0.0 -! -!WC_HCHO/GLY=0.0 -! -!WC_HCHO/ORA1=0.0 -! -!WC_HCHO/ORA2=0.0 -! -!WC_HCHO/ACID=0.0 -! -!WC_HCHO/UR28=0.0 -! -!WC_HCHO/UR21=0.0 -! -!WC_HCHO/URG2=0.0 -! -!WC_HCHO/UR26=0.0 -! -!WC_HCHO/RPG2=0.0 -! -!WC_HCHO/RP18=0.0 -! -!WC_HCHO/RPG3=0.0 -! -!WC_HCHO/URG4=0.0 -! -!WC_HCHO/UR8=0.0 -! -!WC_HCHO/UR17=0.0 -! -!WC_HCHO/UR7=0.0 -! -!WC_HCHO/RPR3=0.0 -! -!WC_HCHO/URG6=0.0 -! -!WC_HCHO/UR22=0.0 -! -!WC_HCHO/URG7=0.0 -! -!WC_HCHO/RPR4=0.0 -! -!WC_HCHO/RPR7=0.0 -! -!WC_HCHO/RPG7=0.0 -! -!WC_HCHO/URG8=0.0 -! -!WC_HCHO/UR19=0.0 -! -!WC_HCHO/URG9=0.0 -! -!WC_HCHO/AP7=0.0 -! -!WC_HCHO/URG10=0.0 -! -!WC_HCHO/RPR1=0.0 -! -!WC_HCHO/RPR5=0.0 -! -!WC_HCHO/RPR8=0.0 -! -!WC_HCHO/RP10=0.0 -! -!WC_HCHO/RP11=0.0 -! -!WC_HCHO/RP16=0.0 -! -!WC_HCHO/RPRL=0.0 -! -!WC_HCHO/APAN=0.0 -! -!WC_HCHO/PAN1=0.0 -! -!WC_HCHO/PAN2=0.0 -! -!WC_HCHO/PAN3=0.0 -! -!WC_HCHO/PAN4=0.0 -! -!WC_HCHO/PAN6=0.0 -! -!WC_HCHO/PAN7=0.0 -! -!WC_HCHO/PAN8=0.0 -! -!WC_HCHO/PN10=0.0 -! -!WC_HCHO/RO2T=0.0 -! -!WC_HCHO/RO21=0.0 -! -!WC_HCHO/RO25=0.0 -! -!WC_HCHO/WC_O3=0.0 -! -!WC_HCHO/WC_H2O2=0.0 -! -!WC_HCHO/WC_NO=0.0 -! -!WC_HCHO/WC_NO2=0.0 -! -!WC_HCHO/WC_NO3=0.0 -! -!WC_HCHO/WC_N2O5=0.0 -! -!WC_HCHO/WC_HONO=0.0 -! -!WC_HCHO/WC_HNO3=0.0 -! -!WC_HCHO/WC_HNO4=0.0 -! -!WC_HCHO/WC_NH3=0.0 -! -!WC_HCHO/WC_OH=+KC30*<WC_MEOH>-KC33*<WC_HCHO>+KC37*<WC_KETL> - PJAC(:,108,98)=+TPK%KC30(:)*PCONC(:,105)-TPK%KC33(:)*PCONC(:,108)+TPK%KC37(:)*& -&PCONC(:,112) -! -!WC_HCHO/WC_HO2=0.0 -! -!WC_HCHO/WC_CO2=0.0 -! -!WC_HCHO/WC_SO2=-KC17*<WC_HCHO>+KC28*<WC_RO21> - PJAC(:,108,101)=-TPK%KC17(:)*PCONC(:,108)+TPK%KC28(:)*PCONC(:,103) -! -!WC_HCHO/WC_H2SO4=0.0 -! -!WC_HCHO/WC_RO21=+2.00*KC27*<WC_RO21>+2.00*KC27*<WC_RO21>+KC28*<WC_SO2> - PJAC(:,108,103)=+2.00*TPK%KC27(:)*PCONC(:,103)+2.00*TPK%KC27(:)*PCONC(:,103)+T& -&PK%KC28(:)*PCONC(:,101) -! -!WC_HCHO/WC_RO25=0.0 -! -!WC_HCHO/WC_MEOH=+KC30*<WC_OH> - PJAC(:,108,105)=+TPK%KC30(:)*PCONC(:,98) -! -!WC_HCHO/WC_ETOH=0.0 -! -!WC_HCHO/WC_ALCH=0.0 -! -!WC_HCHO/WC_HCHO=-KTC52-KC17*<WC_SO2>-KC33*<WC_OH> - PJAC(:,108,108)=-TPK%KTC52(:)-TPK%KC17(:)*PCONC(:,101)-TPK%KC33(:)*PCONC(:,98) -! -!WC_HCHO/WC_ALD2=0.0 -! -!WC_HCHO/WC_GLY=0.0 -! -!WC_HCHO/WC_MGLY=0.0 -! -!WC_HCHO/WC_KETL=+KC37*<WC_OH> - PJAC(:,108,112)=+TPK%KC37(:)*PCONC(:,98) -! -!WC_HCHO/WC_ORA1=0.0 -! -!WC_HCHO/WC_ORA2=0.0 -! -!WC_HCHO/WC_ACID=0.0 -! -!WC_HCHO/WC_RP16=0.0 -! -!WC_HCHO/WC_UR21=0.0 -! -!WC_HCHO/WC_UR28=0.0 -! -!WC_HCHO/WC_ACID2=0.0 -! -!WC_HCHO/WC_ASO3=0.0 -! -!WC_HCHO/WC_ASO4=0.0 -! -!WC_HCHO/WC_ASO5=0.0 -! -!WC_HCHO/WC_AHSO5=0.0 -! -!WC_HCHO/WC_AHMS=+KC18 - PJAC(:,108,124)=+TPK%KC18(:) -! -!WC_HCHO/WR_O3=0.0 -! -!WC_HCHO/WR_H2O2=0.0 -! -!WC_HCHO/WR_NO=0.0 -! -!WC_HCHO/WR_NO2=0.0 -! -!WC_HCHO/WR_NO3=0.0 -! -!WC_HCHO/WR_N2O5=0.0 -! -!WC_HCHO/WR_HONO=0.0 -! -!WC_HCHO/WR_HNO3=0.0 -! -!WC_HCHO/WR_HNO4=0.0 -! -!WC_HCHO/WR_NH3=0.0 -! -!WC_HCHO/WR_OH=0.0 -! -!WC_HCHO/WR_HO2=0.0 -! -!WC_HCHO/WR_CO2=0.0 -! -!WC_HCHO/WR_SO2=0.0 -! -!WC_HCHO/WR_H2SO4=0.0 -! -!WC_HCHO/WR_RO21=0.0 -! -!WC_HCHO/WR_RO25=0.0 -! -!WC_HCHO/WR_MEOH=0.0 -! -!WC_HCHO/WR_ETOH=0.0 -! -!WC_HCHO/WR_ALCH=0.0 -! -!WC_HCHO/WR_HCHO=0.0 -! -!WC_HCHO/WR_ALD2=0.0 -! -!WC_HCHO/WR_GLY=0.0 -! -!WC_HCHO/WR_MGLY=0.0 -! -!WC_HCHO/WR_KETL=0.0 -! -!WC_HCHO/WR_ORA1=0.0 -! -!WC_HCHO/WR_ORA2=0.0 -! -!WC_HCHO/WR_ACID=0.0 -! -!WC_HCHO/WR_RP16=0.0 -! -!WC_HCHO/WR_UR21=0.0 -! -!WC_HCHO/WR_UR28=0.0 -! -!WC_HCHO/WR_ACID2=0.0 -! -!WC_HCHO/WR_ASO3=0.0 -! -!WC_HCHO/WR_ASO4=0.0 -! -!WC_HCHO/WR_ASO5=0.0 -! -!WC_HCHO/WR_AHSO5=0.0 -! -!WC_HCHO/WR_AHMS=0.0 -! -!WC_ALD2/NO=0.0 -! -!WC_ALD2/NO2=0.0 -! -!WC_ALD2/O3=0.0 -! -!WC_ALD2/HONO=0.0 -! -!WC_ALD2/HNO3=0.0 -! -!WC_ALD2/HNO4=0.0 -! -!WC_ALD2/N2O5=0.0 -! -!WC_ALD2/NO3=0.0 -! -!WC_ALD2/NH3=0.0 -! -!WC_ALD2/HO2=0.0 -! -!WC_ALD2/CO=0.0 -! -!WC_ALD2/H2O2=0.0 -! -!WC_ALD2/SO2=0.0 -! -!WC_ALD2/H2SO4=0.0 -! -!WC_ALD2/OH=0.0 -! -!WC_ALD2/ETHE=0.0 -! -!WC_ALD2/OLEL=0.0 -! -!WC_ALD2/OLEH=0.0 -! -!WC_ALD2/ALKL=0.0 -! -!WC_ALD2/ALKM=0.0 -! -!WC_ALD2/ALKH=0.0 -! -!WC_ALD2/AROH=0.0 -! -!WC_ALD2/AROL=0.0 -! -!WC_ALD2/AROO=0.0 -! -!WC_ALD2/ARAL=0.0 -! -!WC_ALD2/ARAC=0.0 -! -!WC_ALD2/PAH=0.0 -! -!WC_ALD2/HCHO=0.0 -! -!WC_ALD2/ALD2=+KTC22 - PJAC(:,109,29)=+TPK%KTC22(:) -! -!WC_ALD2/KETL=0.0 -! -!WC_ALD2/KETH=0.0 -! -!WC_ALD2/MEOH=0.0 -! -!WC_ALD2/ETOH=0.0 -! -!WC_ALD2/ALCH=0.0 -! -!WC_ALD2/ISOP=0.0 -! -!WC_ALD2/BIOL=0.0 -! -!WC_ALD2/BIOH=0.0 -! -!WC_ALD2/MTBE=0.0 -! -!WC_ALD2/MVK=0.0 -! -!WC_ALD2/MCR=0.0 -! -!WC_ALD2/MGLY=0.0 -! -!WC_ALD2/GLY=0.0 -! -!WC_ALD2/ORA1=0.0 -! -!WC_ALD2/ORA2=0.0 -! -!WC_ALD2/ACID=0.0 -! -!WC_ALD2/UR28=0.0 -! -!WC_ALD2/UR21=0.0 -! -!WC_ALD2/URG2=0.0 -! -!WC_ALD2/UR26=0.0 -! -!WC_ALD2/RPG2=0.0 -! -!WC_ALD2/RP18=0.0 -! -!WC_ALD2/RPG3=0.0 -! -!WC_ALD2/URG4=0.0 -! -!WC_ALD2/UR8=0.0 -! -!WC_ALD2/UR17=0.0 -! -!WC_ALD2/UR7=0.0 -! -!WC_ALD2/RPR3=0.0 -! -!WC_ALD2/URG6=0.0 -! -!WC_ALD2/UR22=0.0 -! -!WC_ALD2/URG7=0.0 -! -!WC_ALD2/RPR4=0.0 -! -!WC_ALD2/RPR7=0.0 -! -!WC_ALD2/RPG7=0.0 -! -!WC_ALD2/URG8=0.0 -! -!WC_ALD2/UR19=0.0 -! -!WC_ALD2/URG9=0.0 -! -!WC_ALD2/AP7=0.0 -! -!WC_ALD2/URG10=0.0 -! -!WC_ALD2/RPR1=0.0 -! -!WC_ALD2/RPR5=0.0 -! -!WC_ALD2/RPR8=0.0 -! -!WC_ALD2/RP10=0.0 -! -!WC_ALD2/RP11=0.0 -! -!WC_ALD2/RP16=0.0 -! -!WC_ALD2/RPRL=0.0 -! -!WC_ALD2/APAN=0.0 -! -!WC_ALD2/PAN1=0.0 -! -!WC_ALD2/PAN2=0.0 -! -!WC_ALD2/PAN3=0.0 -! -!WC_ALD2/PAN4=0.0 -! -!WC_ALD2/PAN6=0.0 -! -!WC_ALD2/PAN7=0.0 -! -!WC_ALD2/PAN8=0.0 -! -!WC_ALD2/PN10=0.0 -! -!WC_ALD2/RO2T=0.0 -! -!WC_ALD2/RO21=0.0 -! -!WC_ALD2/RO25=0.0 -! -!WC_ALD2/WC_O3=0.0 -! -!WC_ALD2/WC_H2O2=0.0 -! -!WC_ALD2/WC_NO=0.0 -! -!WC_ALD2/WC_NO2=0.0 -! -!WC_ALD2/WC_NO3=0.0 -! -!WC_ALD2/WC_N2O5=0.0 -! -!WC_ALD2/WC_HONO=0.0 -! -!WC_ALD2/WC_HNO3=0.0 -! -!WC_ALD2/WC_HNO4=0.0 -! -!WC_ALD2/WC_NH3=0.0 -! -!WC_ALD2/WC_OH=+KC31*<WC_ETOH>+0.50*KC32*<WC_ALCH>-KC34*<WC_ALD2>+KC37*<WC_KETL -!>+0.29*KC41*<WC_ACID>+0.43*KC43*<WC_UR21> - PJAC(:,109,98)=+TPK%KC31(:)*PCONC(:,106)+0.50*TPK%KC32(:)*PCONC(:,107)-TPK%KC3& -&4(:)*PCONC(:,109)+TPK%KC37(:)*PCONC(:,112)+0.29*TPK%KC41(:)*PCONC(:,115)+0.43*& -&TPK%KC43(:)*PCONC(:,117) -! -!WC_ALD2/WC_HO2=0.0 -! -!WC_ALD2/WC_CO2=0.0 -! -!WC_ALD2/WC_SO2=0.0 -! -!WC_ALD2/WC_H2SO4=0.0 -! -!WC_ALD2/WC_RO21=0.0 -! -!WC_ALD2/WC_RO25=+KC29*<WC_RO25>+KC29*<WC_RO25> - PJAC(:,109,104)=+TPK%KC29(:)*PCONC(:,104)+TPK%KC29(:)*PCONC(:,104) -! -!WC_ALD2/WC_MEOH=0.0 -! -!WC_ALD2/WC_ETOH=+KC31*<WC_OH> - PJAC(:,109,106)=+TPK%KC31(:)*PCONC(:,98) -! -!WC_ALD2/WC_ALCH=+0.50*KC32*<WC_OH> - PJAC(:,109,107)=+0.50*TPK%KC32(:)*PCONC(:,98) -! -!WC_ALD2/WC_HCHO=0.0 -! -!WC_ALD2/WC_ALD2=-KTC53-KC34*<WC_OH> - PJAC(:,109,109)=-TPK%KTC53(:)-TPK%KC34(:)*PCONC(:,98) -! -!WC_ALD2/WC_GLY=0.0 -! -!WC_ALD2/WC_MGLY=0.0 -! -!WC_ALD2/WC_KETL=+KC37*<WC_OH> - PJAC(:,109,112)=+TPK%KC37(:)*PCONC(:,98) -! -!WC_ALD2/WC_ORA1=0.0 -! -!WC_ALD2/WC_ORA2=0.0 -! -!WC_ALD2/WC_ACID=+0.29*KC41*<WC_OH> - PJAC(:,109,115)=+0.29*TPK%KC41(:)*PCONC(:,98) -! -!WC_ALD2/WC_RP16=0.0 -! -!WC_ALD2/WC_UR21=+0.43*KC43*<WC_OH> - PJAC(:,109,117)=+0.43*TPK%KC43(:)*PCONC(:,98) -! -!WC_ALD2/WC_UR28=0.0 -! -!WC_ALD2/WC_ACID2=0.0 -! -!WC_ALD2/WC_ASO3=0.0 -! -!WC_ALD2/WC_ASO4=0.0 -! -!WC_ALD2/WC_ASO5=0.0 -! -!WC_ALD2/WC_AHSO5=0.0 -! -!WC_ALD2/WC_AHMS=0.0 -! -!WC_ALD2/WR_O3=0.0 -! -!WC_ALD2/WR_H2O2=0.0 -! -!WC_ALD2/WR_NO=0.0 -! -!WC_ALD2/WR_NO2=0.0 -! -!WC_ALD2/WR_NO3=0.0 -! -!WC_ALD2/WR_N2O5=0.0 -! -!WC_ALD2/WR_HONO=0.0 -! -!WC_ALD2/WR_HNO3=0.0 -! -!WC_ALD2/WR_HNO4=0.0 -! -!WC_ALD2/WR_NH3=0.0 -! -!WC_ALD2/WR_OH=0.0 -! -!WC_ALD2/WR_HO2=0.0 -! -!WC_ALD2/WR_CO2=0.0 -! -!WC_ALD2/WR_SO2=0.0 -! -!WC_ALD2/WR_H2SO4=0.0 -! -!WC_ALD2/WR_RO21=0.0 -! -!WC_ALD2/WR_RO25=0.0 -! -!WC_ALD2/WR_MEOH=0.0 -! -!WC_ALD2/WR_ETOH=0.0 -! -!WC_ALD2/WR_ALCH=0.0 -! -!WC_ALD2/WR_HCHO=0.0 -! -!WC_ALD2/WR_ALD2=0.0 -! -!WC_ALD2/WR_GLY=0.0 -! -!WC_ALD2/WR_MGLY=0.0 -! -!WC_ALD2/WR_KETL=0.0 -! -!WC_ALD2/WR_ORA1=0.0 -! -!WC_ALD2/WR_ORA2=0.0 -! -!WC_ALD2/WR_ACID=0.0 -! -!WC_ALD2/WR_RP16=0.0 -! -!WC_ALD2/WR_UR21=0.0 -! -!WC_ALD2/WR_UR28=0.0 -! -!WC_ALD2/WR_ACID2=0.0 -! -!WC_ALD2/WR_ASO3=0.0 -! -!WC_ALD2/WR_ASO4=0.0 -! -!WC_ALD2/WR_ASO5=0.0 -! -!WC_ALD2/WR_AHSO5=0.0 -! -!WC_ALD2/WR_AHMS=0.0 -! -!WC_GLY/NO=0.0 -! -!WC_GLY/NO2=0.0 -! -!WC_GLY/O3=0.0 -! -!WC_GLY/HONO=0.0 -! -!WC_GLY/HNO3=0.0 -! -!WC_GLY/HNO4=0.0 -! -!WC_GLY/N2O5=0.0 -! -!WC_GLY/NO3=0.0 -! -!WC_GLY/NH3=0.0 -! -!WC_GLY/HO2=0.0 -! -!WC_GLY/CO=0.0 -! -!WC_GLY/H2O2=0.0 -! -!WC_GLY/SO2=0.0 -! -!WC_GLY/H2SO4=0.0 -! -!WC_GLY/OH=0.0 -! -!WC_GLY/ETHE=0.0 -! -!WC_GLY/OLEL=0.0 -! -!WC_GLY/OLEH=0.0 -! -!WC_GLY/ALKL=0.0 -! -!WC_GLY/ALKM=0.0 -! -!WC_GLY/ALKH=0.0 -! -!WC_GLY/AROH=0.0 -! -!WC_GLY/AROL=0.0 -! -!WC_GLY/AROO=0.0 -! -!WC_GLY/ARAL=0.0 -! -!WC_GLY/ARAC=0.0 -! -!WC_GLY/PAH=0.0 -! -!WC_GLY/HCHO=0.0 -! -!WC_GLY/ALD2=0.0 -! -!WC_GLY/KETL=0.0 -! -!WC_GLY/KETH=0.0 -! -!WC_GLY/MEOH=0.0 -! -!WC_GLY/ETOH=0.0 -! -!WC_GLY/ALCH=0.0 -! -!WC_GLY/ISOP=0.0 -! -!WC_GLY/BIOL=0.0 -! -!WC_GLY/BIOH=0.0 -! -!WC_GLY/MTBE=0.0 -! -!WC_GLY/MVK=0.0 -! -!WC_GLY/MCR=0.0 -! -!WC_GLY/MGLY=0.0 -! -!WC_GLY/GLY=+KTC23 - PJAC(:,110,42)=+TPK%KTC23(:) -! -!WC_GLY/ORA1=0.0 -! -!WC_GLY/ORA2=0.0 -! -!WC_GLY/ACID=0.0 -! -!WC_GLY/UR28=0.0 -! -!WC_GLY/UR21=0.0 -! -!WC_GLY/URG2=0.0 -! -!WC_GLY/UR26=0.0 -! -!WC_GLY/RPG2=0.0 -! -!WC_GLY/RP18=0.0 -! -!WC_GLY/RPG3=0.0 -! -!WC_GLY/URG4=0.0 -! -!WC_GLY/UR8=0.0 -! -!WC_GLY/UR17=0.0 -! -!WC_GLY/UR7=0.0 -! -!WC_GLY/RPR3=0.0 -! -!WC_GLY/URG6=0.0 -! -!WC_GLY/UR22=0.0 -! -!WC_GLY/URG7=0.0 -! -!WC_GLY/RPR4=0.0 -! -!WC_GLY/RPR7=0.0 -! -!WC_GLY/RPG7=0.0 -! -!WC_GLY/URG8=0.0 -! -!WC_GLY/UR19=0.0 -! -!WC_GLY/URG9=0.0 -! -!WC_GLY/AP7=0.0 -! -!WC_GLY/URG10=0.0 -! -!WC_GLY/RPR1=0.0 -! -!WC_GLY/RPR5=0.0 -! -!WC_GLY/RPR8=0.0 -! -!WC_GLY/RP10=0.0 -! -!WC_GLY/RP11=0.0 -! -!WC_GLY/RP16=0.0 -! -!WC_GLY/RPRL=0.0 -! -!WC_GLY/APAN=0.0 -! -!WC_GLY/PAN1=0.0 -! -!WC_GLY/PAN2=0.0 -! -!WC_GLY/PAN3=0.0 -! -!WC_GLY/PAN4=0.0 -! -!WC_GLY/PAN6=0.0 -! -!WC_GLY/PAN7=0.0 -! -!WC_GLY/PAN8=0.0 -! -!WC_GLY/PN10=0.0 -! -!WC_GLY/RO2T=0.0 -! -!WC_GLY/RO21=0.0 -! -!WC_GLY/RO25=0.0 -! -!WC_GLY/WC_O3=0.0 -! -!WC_GLY/WC_H2O2=0.0 -! -!WC_GLY/WC_NO=0.0 -! -!WC_GLY/WC_NO2=0.0 -! -!WC_GLY/WC_NO3=0.0 -! -!WC_GLY/WC_N2O5=0.0 -! -!WC_GLY/WC_HONO=0.0 -! -!WC_GLY/WC_HNO3=0.0 -! -!WC_GLY/WC_HNO4=0.0 -! -!WC_GLY/WC_NH3=0.0 -! -!WC_GLY/WC_OH=-KC35*<WC_GLY> - PJAC(:,110,98)=-TPK%KC35(:)*PCONC(:,110) -! -!WC_GLY/WC_HO2=0.0 -! -!WC_GLY/WC_CO2=0.0 -! -!WC_GLY/WC_SO2=0.0 -! -!WC_GLY/WC_H2SO4=0.0 -! -!WC_GLY/WC_RO21=0.0 -! -!WC_GLY/WC_RO25=0.0 -! -!WC_GLY/WC_MEOH=0.0 -! -!WC_GLY/WC_ETOH=0.0 -! -!WC_GLY/WC_ALCH=0.0 -! -!WC_GLY/WC_HCHO=0.0 -! -!WC_GLY/WC_ALD2=0.0 -! -!WC_GLY/WC_GLY=-KTC54-KC35*<WC_OH> - PJAC(:,110,110)=-TPK%KTC54(:)-TPK%KC35(:)*PCONC(:,98) -! -!WC_GLY/WC_MGLY=0.0 -! -!WC_GLY/WC_KETL=0.0 -! -!WC_GLY/WC_ORA1=0.0 -! -!WC_GLY/WC_ORA2=0.0 -! -!WC_GLY/WC_ACID=0.0 -! -!WC_GLY/WC_RP16=0.0 -! -!WC_GLY/WC_UR21=0.0 -! -!WC_GLY/WC_UR28=0.0 -! -!WC_GLY/WC_ACID2=0.0 -! -!WC_GLY/WC_ASO3=0.0 -! -!WC_GLY/WC_ASO4=0.0 -! -!WC_GLY/WC_ASO5=0.0 -! -!WC_GLY/WC_AHSO5=0.0 -! -!WC_GLY/WC_AHMS=0.0 -! -!WC_GLY/WR_O3=0.0 -! -!WC_GLY/WR_H2O2=0.0 -! -!WC_GLY/WR_NO=0.0 -! -!WC_GLY/WR_NO2=0.0 -! -!WC_GLY/WR_NO3=0.0 -! -!WC_GLY/WR_N2O5=0.0 -! -!WC_GLY/WR_HONO=0.0 -! -!WC_GLY/WR_HNO3=0.0 -! -!WC_GLY/WR_HNO4=0.0 -! -!WC_GLY/WR_NH3=0.0 -! -!WC_GLY/WR_OH=0.0 -! -!WC_GLY/WR_HO2=0.0 -! -!WC_GLY/WR_CO2=0.0 -! -!WC_GLY/WR_SO2=0.0 -! -!WC_GLY/WR_H2SO4=0.0 -! -!WC_GLY/WR_RO21=0.0 -! -!WC_GLY/WR_RO25=0.0 -! -!WC_GLY/WR_MEOH=0.0 -! -!WC_GLY/WR_ETOH=0.0 -! -!WC_GLY/WR_ALCH=0.0 -! -!WC_GLY/WR_HCHO=0.0 -! -!WC_GLY/WR_ALD2=0.0 -! -!WC_GLY/WR_GLY=0.0 -! -!WC_GLY/WR_MGLY=0.0 -! -!WC_GLY/WR_KETL=0.0 -! -!WC_GLY/WR_ORA1=0.0 -! -!WC_GLY/WR_ORA2=0.0 -! -!WC_GLY/WR_ACID=0.0 -! -!WC_GLY/WR_RP16=0.0 -! -!WC_GLY/WR_UR21=0.0 -! -!WC_GLY/WR_UR28=0.0 -! -!WC_GLY/WR_ACID2=0.0 -! -!WC_GLY/WR_ASO3=0.0 -! -!WC_GLY/WR_ASO4=0.0 -! -!WC_GLY/WR_ASO5=0.0 -! -!WC_GLY/WR_AHSO5=0.0 -! -!WC_GLY/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ21 -! -SUBROUTINE SUBJ22 -! -!Indices 111 a 115 -! -! -!WC_MGLY/NO=0.0 -! -!WC_MGLY/NO2=0.0 -! -!WC_MGLY/O3=0.0 -! -!WC_MGLY/HONO=0.0 -! -!WC_MGLY/HNO3=0.0 -! -!WC_MGLY/HNO4=0.0 -! -!WC_MGLY/N2O5=0.0 -! -!WC_MGLY/NO3=0.0 -! -!WC_MGLY/NH3=0.0 -! -!WC_MGLY/HO2=0.0 -! -!WC_MGLY/CO=0.0 -! -!WC_MGLY/H2O2=0.0 -! -!WC_MGLY/SO2=0.0 -! -!WC_MGLY/H2SO4=0.0 -! -!WC_MGLY/OH=0.0 -! -!WC_MGLY/ETHE=0.0 -! -!WC_MGLY/OLEL=0.0 -! -!WC_MGLY/OLEH=0.0 -! -!WC_MGLY/ALKL=0.0 -! -!WC_MGLY/ALKM=0.0 -! -!WC_MGLY/ALKH=0.0 -! -!WC_MGLY/AROH=0.0 -! -!WC_MGLY/AROL=0.0 -! -!WC_MGLY/AROO=0.0 -! -!WC_MGLY/ARAL=0.0 -! -!WC_MGLY/ARAC=0.0 -! -!WC_MGLY/PAH=0.0 -! -!WC_MGLY/HCHO=0.0 -! -!WC_MGLY/ALD2=0.0 -! -!WC_MGLY/KETL=0.0 -! -!WC_MGLY/KETH=0.0 -! -!WC_MGLY/MEOH=0.0 -! -!WC_MGLY/ETOH=0.0 -! -!WC_MGLY/ALCH=0.0 -! -!WC_MGLY/ISOP=0.0 -! -!WC_MGLY/BIOL=0.0 -! -!WC_MGLY/BIOH=0.0 -! -!WC_MGLY/MTBE=0.0 -! -!WC_MGLY/MVK=0.0 -! -!WC_MGLY/MCR=0.0 -! -!WC_MGLY/MGLY=+KTC25 - PJAC(:,111,41)=+TPK%KTC25(:) -! -!WC_MGLY/GLY=0.0 -! -!WC_MGLY/ORA1=0.0 -! -!WC_MGLY/ORA2=0.0 -! -!WC_MGLY/ACID=0.0 -! -!WC_MGLY/UR28=0.0 -! -!WC_MGLY/UR21=0.0 -! -!WC_MGLY/URG2=0.0 -! -!WC_MGLY/UR26=0.0 -! -!WC_MGLY/RPG2=0.0 -! -!WC_MGLY/RP18=0.0 -! -!WC_MGLY/RPG3=0.0 -! -!WC_MGLY/URG4=0.0 -! -!WC_MGLY/UR8=0.0 -! -!WC_MGLY/UR17=0.0 -! -!WC_MGLY/UR7=0.0 -! -!WC_MGLY/RPR3=0.0 -! -!WC_MGLY/URG6=0.0 -! -!WC_MGLY/UR22=0.0 -! -!WC_MGLY/URG7=0.0 -! -!WC_MGLY/RPR4=0.0 -! -!WC_MGLY/RPR7=0.0 -! -!WC_MGLY/RPG7=0.0 -! -!WC_MGLY/URG8=0.0 -! -!WC_MGLY/UR19=0.0 -! -!WC_MGLY/URG9=0.0 -! -!WC_MGLY/AP7=0.0 -! -!WC_MGLY/URG10=0.0 -! -!WC_MGLY/RPR1=0.0 -! -!WC_MGLY/RPR5=0.0 -! -!WC_MGLY/RPR8=0.0 -! -!WC_MGLY/RP10=0.0 -! -!WC_MGLY/RP11=0.0 -! -!WC_MGLY/RP16=0.0 -! -!WC_MGLY/RPRL=0.0 -! -!WC_MGLY/APAN=0.0 -! -!WC_MGLY/PAN1=0.0 -! -!WC_MGLY/PAN2=0.0 -! -!WC_MGLY/PAN3=0.0 -! -!WC_MGLY/PAN4=0.0 -! -!WC_MGLY/PAN6=0.0 -! -!WC_MGLY/PAN7=0.0 -! -!WC_MGLY/PAN8=0.0 -! -!WC_MGLY/PN10=0.0 -! -!WC_MGLY/RO2T=0.0 -! -!WC_MGLY/RO21=0.0 -! -!WC_MGLY/RO25=0.0 -! -!WC_MGLY/WC_O3=0.0 -! -!WC_MGLY/WC_H2O2=0.0 -! -!WC_MGLY/WC_NO=0.0 -! -!WC_MGLY/WC_NO2=0.0 -! -!WC_MGLY/WC_NO3=0.0 -! -!WC_MGLY/WC_N2O5=0.0 -! -!WC_MGLY/WC_HONO=0.0 -! -!WC_MGLY/WC_HNO3=0.0 -! -!WC_MGLY/WC_HNO4=0.0 -! -!WC_MGLY/WC_NH3=0.0 -! -!WC_MGLY/WC_OH=-KC36*<WC_MGLY>+KC37*<WC_KETL> - PJAC(:,111,98)=-TPK%KC36(:)*PCONC(:,111)+TPK%KC37(:)*PCONC(:,112) -! -!WC_MGLY/WC_HO2=0.0 -! -!WC_MGLY/WC_CO2=0.0 -! -!WC_MGLY/WC_SO2=0.0 -! -!WC_MGLY/WC_H2SO4=0.0 -! -!WC_MGLY/WC_RO21=0.0 -! -!WC_MGLY/WC_RO25=0.0 -! -!WC_MGLY/WC_MEOH=0.0 -! -!WC_MGLY/WC_ETOH=0.0 -! -!WC_MGLY/WC_ALCH=0.0 -! -!WC_MGLY/WC_HCHO=0.0 -! -!WC_MGLY/WC_ALD2=0.0 -! -!WC_MGLY/WC_GLY=0.0 -! -!WC_MGLY/WC_MGLY=-KTC56-KC36*<WC_OH> - PJAC(:,111,111)=-TPK%KTC56(:)-TPK%KC36(:)*PCONC(:,98) -! -!WC_MGLY/WC_KETL=+KC37*<WC_OH> - PJAC(:,111,112)=+TPK%KC37(:)*PCONC(:,98) -! -!WC_MGLY/WC_ORA1=0.0 -! -!WC_MGLY/WC_ORA2=0.0 -! -!WC_MGLY/WC_ACID=0.0 -! -!WC_MGLY/WC_RP16=0.0 -! -!WC_MGLY/WC_UR21=0.0 -! -!WC_MGLY/WC_UR28=0.0 -! -!WC_MGLY/WC_ACID2=0.0 -! -!WC_MGLY/WC_ASO3=0.0 -! -!WC_MGLY/WC_ASO4=0.0 -! -!WC_MGLY/WC_ASO5=0.0 -! -!WC_MGLY/WC_AHSO5=0.0 -! -!WC_MGLY/WC_AHMS=0.0 -! -!WC_MGLY/WR_O3=0.0 -! -!WC_MGLY/WR_H2O2=0.0 -! -!WC_MGLY/WR_NO=0.0 -! -!WC_MGLY/WR_NO2=0.0 -! -!WC_MGLY/WR_NO3=0.0 -! -!WC_MGLY/WR_N2O5=0.0 -! -!WC_MGLY/WR_HONO=0.0 -! -!WC_MGLY/WR_HNO3=0.0 -! -!WC_MGLY/WR_HNO4=0.0 -! -!WC_MGLY/WR_NH3=0.0 -! -!WC_MGLY/WR_OH=0.0 -! -!WC_MGLY/WR_HO2=0.0 -! -!WC_MGLY/WR_CO2=0.0 -! -!WC_MGLY/WR_SO2=0.0 -! -!WC_MGLY/WR_H2SO4=0.0 -! -!WC_MGLY/WR_RO21=0.0 -! -!WC_MGLY/WR_RO25=0.0 -! -!WC_MGLY/WR_MEOH=0.0 -! -!WC_MGLY/WR_ETOH=0.0 -! -!WC_MGLY/WR_ALCH=0.0 -! -!WC_MGLY/WR_HCHO=0.0 -! -!WC_MGLY/WR_ALD2=0.0 -! -!WC_MGLY/WR_GLY=0.0 -! -!WC_MGLY/WR_MGLY=0.0 -! -!WC_MGLY/WR_KETL=0.0 -! -!WC_MGLY/WR_ORA1=0.0 -! -!WC_MGLY/WR_ORA2=0.0 -! -!WC_MGLY/WR_ACID=0.0 -! -!WC_MGLY/WR_RP16=0.0 -! -!WC_MGLY/WR_UR21=0.0 -! -!WC_MGLY/WR_UR28=0.0 -! -!WC_MGLY/WR_ACID2=0.0 -! -!WC_MGLY/WR_ASO3=0.0 -! -!WC_MGLY/WR_ASO4=0.0 -! -!WC_MGLY/WR_ASO5=0.0 -! -!WC_MGLY/WR_AHSO5=0.0 -! -!WC_MGLY/WR_AHMS=0.0 -! -!WC_KETL/NO=0.0 -! -!WC_KETL/NO2=0.0 -! -!WC_KETL/O3=0.0 -! -!WC_KETL/HONO=0.0 -! -!WC_KETL/HNO3=0.0 -! -!WC_KETL/HNO4=0.0 -! -!WC_KETL/N2O5=0.0 -! -!WC_KETL/NO3=0.0 -! -!WC_KETL/NH3=0.0 -! -!WC_KETL/HO2=0.0 -! -!WC_KETL/CO=0.0 -! -!WC_KETL/H2O2=0.0 -! -!WC_KETL/SO2=0.0 -! -!WC_KETL/H2SO4=0.0 -! -!WC_KETL/OH=0.0 -! -!WC_KETL/ETHE=0.0 -! -!WC_KETL/OLEL=0.0 -! -!WC_KETL/OLEH=0.0 -! -!WC_KETL/ALKL=0.0 -! -!WC_KETL/ALKM=0.0 -! -!WC_KETL/ALKH=0.0 -! -!WC_KETL/AROH=0.0 -! -!WC_KETL/AROL=0.0 -! -!WC_KETL/AROO=0.0 -! -!WC_KETL/ARAL=0.0 -! -!WC_KETL/ARAC=0.0 -! -!WC_KETL/PAH=0.0 -! -!WC_KETL/HCHO=0.0 -! -!WC_KETL/ALD2=0.0 -! -!WC_KETL/KETL=+KTC24 - PJAC(:,112,30)=+TPK%KTC24(:) -! -!WC_KETL/KETH=0.0 -! -!WC_KETL/MEOH=0.0 -! -!WC_KETL/ETOH=0.0 -! -!WC_KETL/ALCH=0.0 -! -!WC_KETL/ISOP=0.0 -! -!WC_KETL/BIOL=0.0 -! -!WC_KETL/BIOH=0.0 -! -!WC_KETL/MTBE=0.0 -! -!WC_KETL/MVK=0.0 -! -!WC_KETL/MCR=0.0 -! -!WC_KETL/MGLY=0.0 -! -!WC_KETL/GLY=0.0 -! -!WC_KETL/ORA1=0.0 -! -!WC_KETL/ORA2=0.0 -! -!WC_KETL/ACID=0.0 -! -!WC_KETL/UR28=0.0 -! -!WC_KETL/UR21=0.0 -! -!WC_KETL/URG2=0.0 -! -!WC_KETL/UR26=0.0 -! -!WC_KETL/RPG2=0.0 -! -!WC_KETL/RP18=0.0 -! -!WC_KETL/RPG3=0.0 -! -!WC_KETL/URG4=0.0 -! -!WC_KETL/UR8=0.0 -! -!WC_KETL/UR17=0.0 -! -!WC_KETL/UR7=0.0 -! -!WC_KETL/RPR3=0.0 -! -!WC_KETL/URG6=0.0 -! -!WC_KETL/UR22=0.0 -! -!WC_KETL/URG7=0.0 -! -!WC_KETL/RPR4=0.0 -! -!WC_KETL/RPR7=0.0 -! -!WC_KETL/RPG7=0.0 -! -!WC_KETL/URG8=0.0 -! -!WC_KETL/UR19=0.0 -! -!WC_KETL/URG9=0.0 -! -!WC_KETL/AP7=0.0 -! -!WC_KETL/URG10=0.0 -! -!WC_KETL/RPR1=0.0 -! -!WC_KETL/RPR5=0.0 -! -!WC_KETL/RPR8=0.0 -! -!WC_KETL/RP10=0.0 -! -!WC_KETL/RP11=0.0 -! -!WC_KETL/RP16=0.0 -! -!WC_KETL/RPRL=0.0 -! -!WC_KETL/APAN=0.0 -! -!WC_KETL/PAN1=0.0 -! -!WC_KETL/PAN2=0.0 -! -!WC_KETL/PAN3=0.0 -! -!WC_KETL/PAN4=0.0 -! -!WC_KETL/PAN6=0.0 -! -!WC_KETL/PAN7=0.0 -! -!WC_KETL/PAN8=0.0 -! -!WC_KETL/PN10=0.0 -! -!WC_KETL/RO2T=0.0 -! -!WC_KETL/RO21=0.0 -! -!WC_KETL/RO25=0.0 -! -!WC_KETL/WC_O3=0.0 -! -!WC_KETL/WC_H2O2=0.0 -! -!WC_KETL/WC_NO=0.0 -! -!WC_KETL/WC_NO2=0.0 -! -!WC_KETL/WC_NO3=0.0 -! -!WC_KETL/WC_N2O5=0.0 -! -!WC_KETL/WC_HONO=0.0 -! -!WC_KETL/WC_HNO3=0.0 -! -!WC_KETL/WC_HNO4=0.0 -! -!WC_KETL/WC_NH3=0.0 -! -!WC_KETL/WC_OH=+0.50*KC32*<WC_ALCH>+KC37*<WC_KETL>-KC37*<WC_KETL> - PJAC(:,112,98)=+0.50*TPK%KC32(:)*PCONC(:,107)+TPK%KC37(:)*PCONC(:,112)-TPK%KC3& -&7(:)*PCONC(:,112) -! -!WC_KETL/WC_HO2=0.0 -! -!WC_KETL/WC_CO2=0.0 -! -!WC_KETL/WC_SO2=0.0 -! -!WC_KETL/WC_H2SO4=0.0 -! -!WC_KETL/WC_RO21=0.0 -! -!WC_KETL/WC_RO25=0.0 -! -!WC_KETL/WC_MEOH=0.0 -! -!WC_KETL/WC_ETOH=0.0 -! -!WC_KETL/WC_ALCH=+0.50*KC32*<WC_OH> - PJAC(:,112,107)=+0.50*TPK%KC32(:)*PCONC(:,98) -! -!WC_KETL/WC_HCHO=0.0 -! -!WC_KETL/WC_ALD2=0.0 -! -!WC_KETL/WC_GLY=0.0 -! -!WC_KETL/WC_MGLY=0.0 -! -!WC_KETL/WC_KETL=-KTC55+KC37*<WC_OH>-KC37*<WC_OH> - PJAC(:,112,112)=-TPK%KTC55(:)+TPK%KC37(:)*PCONC(:,98)-TPK%KC37(:)*PCONC(:,98) -! -!WC_KETL/WC_ORA1=0.0 -! -!WC_KETL/WC_ORA2=0.0 -! -!WC_KETL/WC_ACID=0.0 -! -!WC_KETL/WC_RP16=0.0 -! -!WC_KETL/WC_UR21=0.0 -! -!WC_KETL/WC_UR28=0.0 -! -!WC_KETL/WC_ACID2=0.0 -! -!WC_KETL/WC_ASO3=0.0 -! -!WC_KETL/WC_ASO4=0.0 -! -!WC_KETL/WC_ASO5=0.0 -! -!WC_KETL/WC_AHSO5=0.0 -! -!WC_KETL/WC_AHMS=0.0 -! -!WC_KETL/WR_O3=0.0 -! -!WC_KETL/WR_H2O2=0.0 -! -!WC_KETL/WR_NO=0.0 -! -!WC_KETL/WR_NO2=0.0 -! -!WC_KETL/WR_NO3=0.0 -! -!WC_KETL/WR_N2O5=0.0 -! -!WC_KETL/WR_HONO=0.0 -! -!WC_KETL/WR_HNO3=0.0 -! -!WC_KETL/WR_HNO4=0.0 -! -!WC_KETL/WR_NH3=0.0 -! -!WC_KETL/WR_OH=0.0 -! -!WC_KETL/WR_HO2=0.0 -! -!WC_KETL/WR_CO2=0.0 -! -!WC_KETL/WR_SO2=0.0 -! -!WC_KETL/WR_H2SO4=0.0 -! -!WC_KETL/WR_RO21=0.0 -! -!WC_KETL/WR_RO25=0.0 -! -!WC_KETL/WR_MEOH=0.0 -! -!WC_KETL/WR_ETOH=0.0 -! -!WC_KETL/WR_ALCH=0.0 -! -!WC_KETL/WR_HCHO=0.0 -! -!WC_KETL/WR_ALD2=0.0 -! -!WC_KETL/WR_GLY=0.0 -! -!WC_KETL/WR_MGLY=0.0 -! -!WC_KETL/WR_KETL=0.0 -! -!WC_KETL/WR_ORA1=0.0 -! -!WC_KETL/WR_ORA2=0.0 -! -!WC_KETL/WR_ACID=0.0 -! -!WC_KETL/WR_RP16=0.0 -! -!WC_KETL/WR_UR21=0.0 -! -!WC_KETL/WR_UR28=0.0 -! -!WC_KETL/WR_ACID2=0.0 -! -!WC_KETL/WR_ASO3=0.0 -! -!WC_KETL/WR_ASO4=0.0 -! -!WC_KETL/WR_ASO5=0.0 -! -!WC_KETL/WR_AHSO5=0.0 -! -!WC_KETL/WR_AHMS=0.0 -! -!WC_ORA1/NO=0.0 -! -!WC_ORA1/NO2=0.0 -! -!WC_ORA1/O3=0.0 -! -!WC_ORA1/HONO=0.0 -! -!WC_ORA1/HNO3=0.0 -! -!WC_ORA1/HNO4=0.0 -! -!WC_ORA1/N2O5=0.0 -! -!WC_ORA1/NO3=0.0 -! -!WC_ORA1/NH3=0.0 -! -!WC_ORA1/HO2=0.0 -! -!WC_ORA1/CO=0.0 -! -!WC_ORA1/H2O2=0.0 -! -!WC_ORA1/SO2=0.0 -! -!WC_ORA1/H2SO4=0.0 -! -!WC_ORA1/OH=0.0 -! -!WC_ORA1/ETHE=0.0 -! -!WC_ORA1/OLEL=0.0 -! -!WC_ORA1/OLEH=0.0 -! -!WC_ORA1/ALKL=0.0 -! -!WC_ORA1/ALKM=0.0 -! -!WC_ORA1/ALKH=0.0 -! -!WC_ORA1/AROH=0.0 -! -!WC_ORA1/AROL=0.0 -! -!WC_ORA1/AROO=0.0 -! -!WC_ORA1/ARAL=0.0 -! -!WC_ORA1/ARAC=0.0 -! -!WC_ORA1/PAH=0.0 -! -!WC_ORA1/HCHO=0.0 -! -!WC_ORA1/ALD2=0.0 -! -!WC_ORA1/KETL=0.0 -! -!WC_ORA1/KETH=0.0 -! -!WC_ORA1/MEOH=0.0 -! -!WC_ORA1/ETOH=0.0 -! -!WC_ORA1/ALCH=0.0 -! -!WC_ORA1/ISOP=0.0 -! -!WC_ORA1/BIOL=0.0 -! -!WC_ORA1/BIOH=0.0 -! -!WC_ORA1/MTBE=0.0 -! -!WC_ORA1/MVK=0.0 -! -!WC_ORA1/MCR=0.0 -! -!WC_ORA1/MGLY=0.0 -! -!WC_ORA1/GLY=0.0 -! -!WC_ORA1/ORA1=+KTC26 - PJAC(:,113,43)=+TPK%KTC26(:) -! -!WC_ORA1/ORA2=0.0 -! -!WC_ORA1/ACID=0.0 -! -!WC_ORA1/UR28=0.0 -! -!WC_ORA1/UR21=0.0 -! -!WC_ORA1/URG2=0.0 -! -!WC_ORA1/UR26=0.0 -! -!WC_ORA1/RPG2=0.0 -! -!WC_ORA1/RP18=0.0 -! -!WC_ORA1/RPG3=0.0 -! -!WC_ORA1/URG4=0.0 -! -!WC_ORA1/UR8=0.0 -! -!WC_ORA1/UR17=0.0 -! -!WC_ORA1/UR7=0.0 -! -!WC_ORA1/RPR3=0.0 -! -!WC_ORA1/URG6=0.0 -! -!WC_ORA1/UR22=0.0 -! -!WC_ORA1/URG7=0.0 -! -!WC_ORA1/RPR4=0.0 -! -!WC_ORA1/RPR7=0.0 -! -!WC_ORA1/RPG7=0.0 -! -!WC_ORA1/URG8=0.0 -! -!WC_ORA1/UR19=0.0 -! -!WC_ORA1/URG9=0.0 -! -!WC_ORA1/AP7=0.0 -! -!WC_ORA1/URG10=0.0 -! -!WC_ORA1/RPR1=0.0 -! -!WC_ORA1/RPR5=0.0 -! -!WC_ORA1/RPR8=0.0 -! -!WC_ORA1/RP10=0.0 -! -!WC_ORA1/RP11=0.0 -! -!WC_ORA1/RP16=0.0 -! -!WC_ORA1/RPRL=0.0 -! -!WC_ORA1/APAN=0.0 -! -!WC_ORA1/PAN1=0.0 -! -!WC_ORA1/PAN2=0.0 -! -!WC_ORA1/PAN3=0.0 -! -!WC_ORA1/PAN4=0.0 -! -!WC_ORA1/PAN6=0.0 -! -!WC_ORA1/PAN7=0.0 -! -!WC_ORA1/PAN8=0.0 -! -!WC_ORA1/PN10=0.0 -! -!WC_ORA1/RO2T=0.0 -! -!WC_ORA1/RO21=0.0 -! -!WC_ORA1/RO25=0.0 -! -!WC_ORA1/WC_O3=0.0 -! -!WC_ORA1/WC_H2O2=0.0 -! -!WC_ORA1/WC_NO=0.0 -! -!WC_ORA1/WC_NO2=0.0 -! -!WC_ORA1/WC_NO3=0.0 -! -!WC_ORA1/WC_N2O5=0.0 -! -!WC_ORA1/WC_HONO=0.0 -! -!WC_ORA1/WC_HNO3=0.0 -! -!WC_ORA1/WC_HNO4=0.0 -! -!WC_ORA1/WC_NH3=0.0 -! -!WC_ORA1/WC_OH=+KC19*<WC_AHMS>+KC33*<WC_HCHO>-KC38*<WC_ORA1> - PJAC(:,113,98)=+TPK%KC19(:)*PCONC(:,124)+TPK%KC33(:)*PCONC(:,108)-TPK%KC38(:)*& -&PCONC(:,113) -! -!WC_ORA1/WC_HO2=0.0 -! -!WC_ORA1/WC_CO2=0.0 -! -!WC_ORA1/WC_SO2=0.0 -! -!WC_ORA1/WC_H2SO4=0.0 -! -!WC_ORA1/WC_RO21=0.0 -! -!WC_ORA1/WC_RO25=0.0 -! -!WC_ORA1/WC_MEOH=0.0 -! -!WC_ORA1/WC_ETOH=0.0 -! -!WC_ORA1/WC_ALCH=0.0 -! -!WC_ORA1/WC_HCHO=+KC33*<WC_OH> - PJAC(:,113,108)=+TPK%KC33(:)*PCONC(:,98) -! -!WC_ORA1/WC_ALD2=0.0 -! -!WC_ORA1/WC_GLY=0.0 -! -!WC_ORA1/WC_MGLY=0.0 -! -!WC_ORA1/WC_KETL=0.0 -! -!WC_ORA1/WC_ORA1=-KTC57-KC38*<WC_OH> - PJAC(:,113,113)=-TPK%KTC57(:)-TPK%KC38(:)*PCONC(:,98) -! -!WC_ORA1/WC_ORA2=0.0 -! -!WC_ORA1/WC_ACID=0.0 -! -!WC_ORA1/WC_RP16=0.0 -! -!WC_ORA1/WC_UR21=0.0 -! -!WC_ORA1/WC_UR28=0.0 -! -!WC_ORA1/WC_ACID2=0.0 -! -!WC_ORA1/WC_ASO3=0.0 -! -!WC_ORA1/WC_ASO4=0.0 -! -!WC_ORA1/WC_ASO5=0.0 -! -!WC_ORA1/WC_AHSO5=0.0 -! -!WC_ORA1/WC_AHMS=+KC19*<WC_OH> - PJAC(:,113,124)=+TPK%KC19(:)*PCONC(:,98) -! -!WC_ORA1/WR_O3=0.0 -! -!WC_ORA1/WR_H2O2=0.0 -! -!WC_ORA1/WR_NO=0.0 -! -!WC_ORA1/WR_NO2=0.0 -! -!WC_ORA1/WR_NO3=0.0 -! -!WC_ORA1/WR_N2O5=0.0 -! -!WC_ORA1/WR_HONO=0.0 -! -!WC_ORA1/WR_HNO3=0.0 -! -!WC_ORA1/WR_HNO4=0.0 -! -!WC_ORA1/WR_NH3=0.0 -! -!WC_ORA1/WR_OH=0.0 -! -!WC_ORA1/WR_HO2=0.0 -! -!WC_ORA1/WR_CO2=0.0 -! -!WC_ORA1/WR_SO2=0.0 -! -!WC_ORA1/WR_H2SO4=0.0 -! -!WC_ORA1/WR_RO21=0.0 -! -!WC_ORA1/WR_RO25=0.0 -! -!WC_ORA1/WR_MEOH=0.0 -! -!WC_ORA1/WR_ETOH=0.0 -! -!WC_ORA1/WR_ALCH=0.0 -! -!WC_ORA1/WR_HCHO=0.0 -! -!WC_ORA1/WR_ALD2=0.0 -! -!WC_ORA1/WR_GLY=0.0 -! -!WC_ORA1/WR_MGLY=0.0 -! -!WC_ORA1/WR_KETL=0.0 -! -!WC_ORA1/WR_ORA1=0.0 -! -!WC_ORA1/WR_ORA2=0.0 -! -!WC_ORA1/WR_ACID=0.0 -! -!WC_ORA1/WR_RP16=0.0 -! -!WC_ORA1/WR_UR21=0.0 -! -!WC_ORA1/WR_UR28=0.0 -! -!WC_ORA1/WR_ACID2=0.0 -! -!WC_ORA1/WR_ASO3=0.0 -! -!WC_ORA1/WR_ASO4=0.0 -! -!WC_ORA1/WR_ASO5=0.0 -! -!WC_ORA1/WR_AHSO5=0.0 -! -!WC_ORA1/WR_AHMS=0.0 -! -!WC_ORA2/NO=0.0 -! -!WC_ORA2/NO2=0.0 -! -!WC_ORA2/O3=0.0 -! -!WC_ORA2/HONO=0.0 -! -!WC_ORA2/HNO3=0.0 -! -!WC_ORA2/HNO4=0.0 -! -!WC_ORA2/N2O5=0.0 -! -!WC_ORA2/NO3=0.0 -! -!WC_ORA2/NH3=0.0 -! -!WC_ORA2/HO2=0.0 -! -!WC_ORA2/CO=0.0 -! -!WC_ORA2/H2O2=0.0 -! -!WC_ORA2/SO2=0.0 -! -!WC_ORA2/H2SO4=0.0 -! -!WC_ORA2/OH=0.0 -! -!WC_ORA2/ETHE=0.0 -! -!WC_ORA2/OLEL=0.0 -! -!WC_ORA2/OLEH=0.0 -! -!WC_ORA2/ALKL=0.0 -! -!WC_ORA2/ALKM=0.0 -! -!WC_ORA2/ALKH=0.0 -! -!WC_ORA2/AROH=0.0 -! -!WC_ORA2/AROL=0.0 -! -!WC_ORA2/AROO=0.0 -! -!WC_ORA2/ARAL=0.0 -! -!WC_ORA2/ARAC=0.0 -! -!WC_ORA2/PAH=0.0 -! -!WC_ORA2/HCHO=0.0 -! -!WC_ORA2/ALD2=0.0 -! -!WC_ORA2/KETL=0.0 -! -!WC_ORA2/KETH=0.0 -! -!WC_ORA2/MEOH=0.0 -! -!WC_ORA2/ETOH=0.0 -! -!WC_ORA2/ALCH=0.0 -! -!WC_ORA2/ISOP=0.0 -! -!WC_ORA2/BIOL=0.0 -! -!WC_ORA2/BIOH=0.0 -! -!WC_ORA2/MTBE=0.0 -! -!WC_ORA2/MVK=0.0 -! -!WC_ORA2/MCR=0.0 -! -!WC_ORA2/MGLY=0.0 -! -!WC_ORA2/GLY=0.0 -! -!WC_ORA2/ORA1=0.0 -! -!WC_ORA2/ORA2=+KTC27 - PJAC(:,114,44)=+TPK%KTC27(:) -! -!WC_ORA2/ACID=0.0 -! -!WC_ORA2/UR28=0.0 -! -!WC_ORA2/UR21=0.0 -! -!WC_ORA2/URG2=0.0 -! -!WC_ORA2/UR26=0.0 -! -!WC_ORA2/RPG2=0.0 -! -!WC_ORA2/RP18=0.0 -! -!WC_ORA2/RPG3=0.0 -! -!WC_ORA2/URG4=0.0 -! -!WC_ORA2/UR8=0.0 -! -!WC_ORA2/UR17=0.0 -! -!WC_ORA2/UR7=0.0 -! -!WC_ORA2/RPR3=0.0 -! -!WC_ORA2/URG6=0.0 -! -!WC_ORA2/UR22=0.0 -! -!WC_ORA2/URG7=0.0 -! -!WC_ORA2/RPR4=0.0 -! -!WC_ORA2/RPR7=0.0 -! -!WC_ORA2/RPG7=0.0 -! -!WC_ORA2/URG8=0.0 -! -!WC_ORA2/UR19=0.0 -! -!WC_ORA2/URG9=0.0 -! -!WC_ORA2/AP7=0.0 -! -!WC_ORA2/URG10=0.0 -! -!WC_ORA2/RPR1=0.0 -! -!WC_ORA2/RPR5=0.0 -! -!WC_ORA2/RPR8=0.0 -! -!WC_ORA2/RP10=0.0 -! -!WC_ORA2/RP11=0.0 -! -!WC_ORA2/RP16=0.0 -! -!WC_ORA2/RPRL=0.0 -! -!WC_ORA2/APAN=0.0 -! -!WC_ORA2/PAN1=0.0 -! -!WC_ORA2/PAN2=0.0 -! -!WC_ORA2/PAN3=0.0 -! -!WC_ORA2/PAN4=0.0 -! -!WC_ORA2/PAN6=0.0 -! -!WC_ORA2/PAN7=0.0 -! -!WC_ORA2/PAN8=0.0 -! -!WC_ORA2/PN10=0.0 -! -!WC_ORA2/RO2T=0.0 -! -!WC_ORA2/RO21=0.0 -! -!WC_ORA2/RO25=0.0 -! -!WC_ORA2/WC_O3=0.0 -! -!WC_ORA2/WC_H2O2=0.0 -! -!WC_ORA2/WC_NO=0.0 -! -!WC_ORA2/WC_NO2=0.0 -! -!WC_ORA2/WC_NO3=0.0 -! -!WC_ORA2/WC_N2O5=0.0 -! -!WC_ORA2/WC_HONO=0.0 -! -!WC_ORA2/WC_HNO3=0.0 -! -!WC_ORA2/WC_HNO4=0.0 -! -!WC_ORA2/WC_NH3=0.0 -! -!WC_ORA2/WC_OH=-KC39*<WC_ORA2> - PJAC(:,114,98)=-TPK%KC39(:)*PCONC(:,114) -! -!WC_ORA2/WC_HO2=0.0 -! -!WC_ORA2/WC_CO2=0.0 -! -!WC_ORA2/WC_SO2=0.0 -! -!WC_ORA2/WC_H2SO4=0.0 -! -!WC_ORA2/WC_RO21=0.0 -! -!WC_ORA2/WC_RO25=+KC29*<WC_RO25>+KC29*<WC_RO25> - PJAC(:,114,104)=+TPK%KC29(:)*PCONC(:,104)+TPK%KC29(:)*PCONC(:,104) -! -!WC_ORA2/WC_MEOH=0.0 -! -!WC_ORA2/WC_ETOH=0.0 -! -!WC_ORA2/WC_ALCH=0.0 -! -!WC_ORA2/WC_HCHO=0.0 -! -!WC_ORA2/WC_ALD2=0.0 -! -!WC_ORA2/WC_GLY=0.0 -! -!WC_ORA2/WC_MGLY=0.0 -! -!WC_ORA2/WC_KETL=0.0 -! -!WC_ORA2/WC_ORA1=0.0 -! -!WC_ORA2/WC_ORA2=-KTC58-KC39*<WC_OH> - PJAC(:,114,114)=-TPK%KTC58(:)-TPK%KC39(:)*PCONC(:,98) -! -!WC_ORA2/WC_ACID=0.0 -! -!WC_ORA2/WC_RP16=0.0 -! -!WC_ORA2/WC_UR21=0.0 -! -!WC_ORA2/WC_UR28=0.0 -! -!WC_ORA2/WC_ACID2=0.0 -! -!WC_ORA2/WC_ASO3=0.0 -! -!WC_ORA2/WC_ASO4=0.0 -! -!WC_ORA2/WC_ASO5=0.0 -! -!WC_ORA2/WC_AHSO5=0.0 -! -!WC_ORA2/WC_AHMS=0.0 -! -!WC_ORA2/WR_O3=0.0 -! -!WC_ORA2/WR_H2O2=0.0 -! -!WC_ORA2/WR_NO=0.0 -! -!WC_ORA2/WR_NO2=0.0 -! -!WC_ORA2/WR_NO3=0.0 -! -!WC_ORA2/WR_N2O5=0.0 -! -!WC_ORA2/WR_HONO=0.0 -! -!WC_ORA2/WR_HNO3=0.0 -! -!WC_ORA2/WR_HNO4=0.0 -! -!WC_ORA2/WR_NH3=0.0 -! -!WC_ORA2/WR_OH=0.0 -! -!WC_ORA2/WR_HO2=0.0 -! -!WC_ORA2/WR_CO2=0.0 -! -!WC_ORA2/WR_SO2=0.0 -! -!WC_ORA2/WR_H2SO4=0.0 -! -!WC_ORA2/WR_RO21=0.0 -! -!WC_ORA2/WR_RO25=0.0 -! -!WC_ORA2/WR_MEOH=0.0 -! -!WC_ORA2/WR_ETOH=0.0 -! -!WC_ORA2/WR_ALCH=0.0 -! -!WC_ORA2/WR_HCHO=0.0 -! -!WC_ORA2/WR_ALD2=0.0 -! -!WC_ORA2/WR_GLY=0.0 -! -!WC_ORA2/WR_MGLY=0.0 -! -!WC_ORA2/WR_KETL=0.0 -! -!WC_ORA2/WR_ORA1=0.0 -! -!WC_ORA2/WR_ORA2=0.0 -! -!WC_ORA2/WR_ACID=0.0 -! -!WC_ORA2/WR_RP16=0.0 -! -!WC_ORA2/WR_UR21=0.0 -! -!WC_ORA2/WR_UR28=0.0 -! -!WC_ORA2/WR_ACID2=0.0 -! -!WC_ORA2/WR_ASO3=0.0 -! -!WC_ORA2/WR_ASO4=0.0 -! -!WC_ORA2/WR_ASO5=0.0 -! -!WC_ORA2/WR_AHSO5=0.0 -! -!WC_ORA2/WR_AHMS=0.0 -! -!WC_ACID/NO=0.0 -! -!WC_ACID/NO2=0.0 -! -!WC_ACID/O3=0.0 -! -!WC_ACID/HONO=0.0 -! -!WC_ACID/HNO3=0.0 -! -!WC_ACID/HNO4=0.0 -! -!WC_ACID/N2O5=0.0 -! -!WC_ACID/NO3=0.0 -! -!WC_ACID/NH3=0.0 -! -!WC_ACID/HO2=0.0 -! -!WC_ACID/CO=0.0 -! -!WC_ACID/H2O2=0.0 -! -!WC_ACID/SO2=0.0 -! -!WC_ACID/H2SO4=0.0 -! -!WC_ACID/OH=0.0 -! -!WC_ACID/ETHE=0.0 -! -!WC_ACID/OLEL=0.0 -! -!WC_ACID/OLEH=0.0 -! -!WC_ACID/ALKL=0.0 -! -!WC_ACID/ALKM=0.0 -! -!WC_ACID/ALKH=0.0 -! -!WC_ACID/AROH=0.0 -! -!WC_ACID/AROL=0.0 -! -!WC_ACID/AROO=0.0 -! -!WC_ACID/ARAL=0.0 -! -!WC_ACID/ARAC=0.0 -! -!WC_ACID/PAH=0.0 -! -!WC_ACID/HCHO=0.0 -! -!WC_ACID/ALD2=0.0 -! -!WC_ACID/KETL=0.0 -! -!WC_ACID/KETH=0.0 -! -!WC_ACID/MEOH=0.0 -! -!WC_ACID/ETOH=0.0 -! -!WC_ACID/ALCH=0.0 -! -!WC_ACID/ISOP=0.0 -! -!WC_ACID/BIOL=0.0 -! -!WC_ACID/BIOH=0.0 -! -!WC_ACID/MTBE=0.0 -! -!WC_ACID/MVK=0.0 -! -!WC_ACID/MCR=0.0 -! -!WC_ACID/MGLY=0.0 -! -!WC_ACID/GLY=0.0 -! -!WC_ACID/ORA1=0.0 -! -!WC_ACID/ORA2=0.0 -! -!WC_ACID/ACID=+KTC28 - PJAC(:,115,45)=+TPK%KTC28(:) -! -!WC_ACID/UR28=0.0 -! -!WC_ACID/UR21=0.0 -! -!WC_ACID/URG2=0.0 -! -!WC_ACID/UR26=0.0 -! -!WC_ACID/RPG2=0.0 -! -!WC_ACID/RP18=0.0 -! -!WC_ACID/RPG3=0.0 -! -!WC_ACID/URG4=0.0 -! -!WC_ACID/UR8=0.0 -! -!WC_ACID/UR17=0.0 -! -!WC_ACID/UR7=0.0 -! -!WC_ACID/RPR3=0.0 -! -!WC_ACID/URG6=0.0 -! -!WC_ACID/UR22=0.0 -! -!WC_ACID/URG7=0.0 -! -!WC_ACID/RPR4=0.0 -! -!WC_ACID/RPR7=0.0 -! -!WC_ACID/RPG7=0.0 -! -!WC_ACID/URG8=0.0 -! -!WC_ACID/UR19=0.0 -! -!WC_ACID/URG9=0.0 -! -!WC_ACID/AP7=0.0 -! -!WC_ACID/URG10=0.0 -! -!WC_ACID/RPR1=0.0 -! -!WC_ACID/RPR5=0.0 -! -!WC_ACID/RPR8=0.0 -! -!WC_ACID/RP10=0.0 -! -!WC_ACID/RP11=0.0 -! -!WC_ACID/RP16=0.0 -! -!WC_ACID/RPRL=0.0 -! -!WC_ACID/APAN=0.0 -! -!WC_ACID/PAN1=0.0 -! -!WC_ACID/PAN2=0.0 -! -!WC_ACID/PAN3=0.0 -! -!WC_ACID/PAN4=0.0 -! -!WC_ACID/PAN6=0.0 -! -!WC_ACID/PAN7=0.0 -! -!WC_ACID/PAN8=0.0 -! -!WC_ACID/PN10=0.0 -! -!WC_ACID/RO2T=0.0 -! -!WC_ACID/RO21=0.0 -! -!WC_ACID/RO25=0.0 -! -!WC_ACID/WC_O3=0.0 -! -!WC_ACID/WC_H2O2=0.0 -! -!WC_ACID/WC_NO=0.0 -! -!WC_ACID/WC_NO2=0.0 -! -!WC_ACID/WC_NO3=0.0 -! -!WC_ACID/WC_N2O5=0.0 -! -!WC_ACID/WC_HONO=0.0 -! -!WC_ACID/WC_HNO3=0.0 -! -!WC_ACID/WC_HNO4=0.0 -! -!WC_ACID/WC_NH3=0.0 -! -!WC_ACID/WC_OH=-KC40*<WC_ACID>-KC41*<WC_ACID> - PJAC(:,115,98)=-TPK%KC40(:)*PCONC(:,115)-TPK%KC41(:)*PCONC(:,115) -! -!WC_ACID/WC_HO2=0.0 -! -!WC_ACID/WC_CO2=0.0 -! -!WC_ACID/WC_SO2=0.0 -! -!WC_ACID/WC_H2SO4=0.0 -! -!WC_ACID/WC_RO21=0.0 -! -!WC_ACID/WC_RO25=0.0 -! -!WC_ACID/WC_MEOH=0.0 -! -!WC_ACID/WC_ETOH=0.0 -! -!WC_ACID/WC_ALCH=0.0 -! -!WC_ACID/WC_HCHO=0.0 -! -!WC_ACID/WC_ALD2=0.0 -! -!WC_ACID/WC_GLY=0.0 -! -!WC_ACID/WC_MGLY=0.0 -! -!WC_ACID/WC_KETL=0.0 -! -!WC_ACID/WC_ORA1=0.0 -! -!WC_ACID/WC_ORA2=0.0 -! -!WC_ACID/WC_ACID=-KTC59-KC40*<WC_OH>-KC41*<WC_OH> - PJAC(:,115,115)=-TPK%KTC59(:)-TPK%KC40(:)*PCONC(:,98)-TPK%KC41(:)*PCONC(:,98) -! -!WC_ACID/WC_RP16=0.0 -! -!WC_ACID/WC_UR21=0.0 -! -!WC_ACID/WC_UR28=0.0 -! -!WC_ACID/WC_ACID2=0.0 -! -!WC_ACID/WC_ASO3=0.0 -! -!WC_ACID/WC_ASO4=0.0 -! -!WC_ACID/WC_ASO5=0.0 -! -!WC_ACID/WC_AHSO5=0.0 -! -!WC_ACID/WC_AHMS=0.0 -! -!WC_ACID/WR_O3=0.0 -! -!WC_ACID/WR_H2O2=0.0 -! -!WC_ACID/WR_NO=0.0 -! -!WC_ACID/WR_NO2=0.0 -! -!WC_ACID/WR_NO3=0.0 -! -!WC_ACID/WR_N2O5=0.0 -! -!WC_ACID/WR_HONO=0.0 -! -!WC_ACID/WR_HNO3=0.0 -! -!WC_ACID/WR_HNO4=0.0 -! -!WC_ACID/WR_NH3=0.0 -! -!WC_ACID/WR_OH=0.0 -! -!WC_ACID/WR_HO2=0.0 -! -!WC_ACID/WR_CO2=0.0 -! -!WC_ACID/WR_SO2=0.0 -! -!WC_ACID/WR_H2SO4=0.0 -! -!WC_ACID/WR_RO21=0.0 -! -!WC_ACID/WR_RO25=0.0 -! -!WC_ACID/WR_MEOH=0.0 -! -!WC_ACID/WR_ETOH=0.0 -! -!WC_ACID/WR_ALCH=0.0 -! -!WC_ACID/WR_HCHO=0.0 -! -!WC_ACID/WR_ALD2=0.0 -! -!WC_ACID/WR_GLY=0.0 -! -!WC_ACID/WR_MGLY=0.0 -! -!WC_ACID/WR_KETL=0.0 -! -!WC_ACID/WR_ORA1=0.0 -! -!WC_ACID/WR_ORA2=0.0 -! -!WC_ACID/WR_ACID=0.0 -! -!WC_ACID/WR_RP16=0.0 -! -!WC_ACID/WR_UR21=0.0 -! -!WC_ACID/WR_UR28=0.0 -! -!WC_ACID/WR_ACID2=0.0 -! -!WC_ACID/WR_ASO3=0.0 -! -!WC_ACID/WR_ASO4=0.0 -! -!WC_ACID/WR_ASO5=0.0 -! -!WC_ACID/WR_AHSO5=0.0 -! -!WC_ACID/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ22 -! -SUBROUTINE SUBJ23 -! -!Indices 116 a 120 -! -! -!WC_RP16/NO=0.0 -! -!WC_RP16/NO2=0.0 -! -!WC_RP16/O3=0.0 -! -!WC_RP16/HONO=0.0 -! -!WC_RP16/HNO3=0.0 -! -!WC_RP16/HNO4=0.0 -! -!WC_RP16/N2O5=0.0 -! -!WC_RP16/NO3=0.0 -! -!WC_RP16/NH3=0.0 -! -!WC_RP16/HO2=0.0 -! -!WC_RP16/CO=0.0 -! -!WC_RP16/H2O2=0.0 -! -!WC_RP16/SO2=0.0 -! -!WC_RP16/H2SO4=0.0 -! -!WC_RP16/OH=0.0 -! -!WC_RP16/ETHE=0.0 -! -!WC_RP16/OLEL=0.0 -! -!WC_RP16/OLEH=0.0 -! -!WC_RP16/ALKL=0.0 -! -!WC_RP16/ALKM=0.0 -! -!WC_RP16/ALKH=0.0 -! -!WC_RP16/AROH=0.0 -! -!WC_RP16/AROL=0.0 -! -!WC_RP16/AROO=0.0 -! -!WC_RP16/ARAL=0.0 -! -!WC_RP16/ARAC=0.0 -! -!WC_RP16/PAH=0.0 -! -!WC_RP16/HCHO=0.0 -! -!WC_RP16/ALD2=0.0 -! -!WC_RP16/KETL=0.0 -! -!WC_RP16/KETH=0.0 -! -!WC_RP16/MEOH=0.0 -! -!WC_RP16/ETOH=0.0 -! -!WC_RP16/ALCH=0.0 -! -!WC_RP16/ISOP=0.0 -! -!WC_RP16/BIOL=0.0 -! -!WC_RP16/BIOH=0.0 -! -!WC_RP16/MTBE=0.0 -! -!WC_RP16/MVK=0.0 -! -!WC_RP16/MCR=0.0 -! -!WC_RP16/MGLY=0.0 -! -!WC_RP16/GLY=0.0 -! -!WC_RP16/ORA1=0.0 -! -!WC_RP16/ORA2=0.0 -! -!WC_RP16/ACID=0.0 -! -!WC_RP16/UR28=0.0 -! -!WC_RP16/UR21=0.0 -! -!WC_RP16/URG2=0.0 -! -!WC_RP16/UR26=0.0 -! -!WC_RP16/RPG2=0.0 -! -!WC_RP16/RP18=0.0 -! -!WC_RP16/RPG3=0.0 -! -!WC_RP16/URG4=0.0 -! -!WC_RP16/UR8=0.0 -! -!WC_RP16/UR17=0.0 -! -!WC_RP16/UR7=0.0 -! -!WC_RP16/RPR3=0.0 -! -!WC_RP16/URG6=0.0 -! -!WC_RP16/UR22=0.0 -! -!WC_RP16/URG7=0.0 -! -!WC_RP16/RPR4=0.0 -! -!WC_RP16/RPR7=0.0 -! -!WC_RP16/RPG7=0.0 -! -!WC_RP16/URG8=0.0 -! -!WC_RP16/UR19=0.0 -! -!WC_RP16/URG9=0.0 -! -!WC_RP16/AP7=0.0 -! -!WC_RP16/URG10=0.0 -! -!WC_RP16/RPR1=0.0 -! -!WC_RP16/RPR5=0.0 -! -!WC_RP16/RPR8=0.0 -! -!WC_RP16/RP10=0.0 -! -!WC_RP16/RP11=0.0 -! -!WC_RP16/RP16=+KTC29 - PJAC(:,116,74)=+TPK%KTC29(:) -! -!WC_RP16/RPRL=0.0 -! -!WC_RP16/APAN=0.0 -! -!WC_RP16/PAN1=0.0 -! -!WC_RP16/PAN2=0.0 -! -!WC_RP16/PAN3=0.0 -! -!WC_RP16/PAN4=0.0 -! -!WC_RP16/PAN6=0.0 -! -!WC_RP16/PAN7=0.0 -! -!WC_RP16/PAN8=0.0 -! -!WC_RP16/PN10=0.0 -! -!WC_RP16/RO2T=0.0 -! -!WC_RP16/RO21=0.0 -! -!WC_RP16/RO25=0.0 -! -!WC_RP16/WC_O3=0.0 -! -!WC_RP16/WC_H2O2=0.0 -! -!WC_RP16/WC_NO=0.0 -! -!WC_RP16/WC_NO2=0.0 -! -!WC_RP16/WC_NO3=0.0 -! -!WC_RP16/WC_N2O5=0.0 -! -!WC_RP16/WC_HONO=0.0 -! -!WC_RP16/WC_HNO3=0.0 -! -!WC_RP16/WC_HNO4=0.0 -! -!WC_RP16/WC_NH3=0.0 -! -!WC_RP16/WC_OH=+KC35*<WC_GLY>+KC39*<WC_ORA2>-KC44*<WC_RP16>-KC45*<WC_RP16> - PJAC(:,116,98)=+TPK%KC35(:)*PCONC(:,110)+TPK%KC39(:)*PCONC(:,114)-TPK%KC44(:)*& -&PCONC(:,116)-TPK%KC45(:)*PCONC(:,116) -! -!WC_RP16/WC_HO2=0.0 -! -!WC_RP16/WC_CO2=0.0 -! -!WC_RP16/WC_SO2=0.0 -! -!WC_RP16/WC_H2SO4=0.0 -! -!WC_RP16/WC_RO21=0.0 -! -!WC_RP16/WC_RO25=0.0 -! -!WC_RP16/WC_MEOH=0.0 -! -!WC_RP16/WC_ETOH=0.0 -! -!WC_RP16/WC_ALCH=0.0 -! -!WC_RP16/WC_HCHO=0.0 -! -!WC_RP16/WC_ALD2=0.0 -! -!WC_RP16/WC_GLY=+KC35*<WC_OH> - PJAC(:,116,110)=+TPK%KC35(:)*PCONC(:,98) -! -!WC_RP16/WC_MGLY=0.0 -! -!WC_RP16/WC_KETL=0.0 -! -!WC_RP16/WC_ORA1=0.0 -! -!WC_RP16/WC_ORA2=+KC39*<WC_OH> - PJAC(:,116,114)=+TPK%KC39(:)*PCONC(:,98) -! -!WC_RP16/WC_ACID=0.0 -! -!WC_RP16/WC_RP16=-KTC60-KC44*<WC_OH>-KC45*<WC_OH> - PJAC(:,116,116)=-TPK%KTC60(:)-TPK%KC44(:)*PCONC(:,98)-TPK%KC45(:)*PCONC(:,98) -! -!WC_RP16/WC_UR21=0.0 -! -!WC_RP16/WC_UR28=0.0 -! -!WC_RP16/WC_ACID2=0.0 -! -!WC_RP16/WC_ASO3=0.0 -! -!WC_RP16/WC_ASO4=0.0 -! -!WC_RP16/WC_ASO5=0.0 -! -!WC_RP16/WC_AHSO5=0.0 -! -!WC_RP16/WC_AHMS=0.0 -! -!WC_RP16/WR_O3=0.0 -! -!WC_RP16/WR_H2O2=0.0 -! -!WC_RP16/WR_NO=0.0 -! -!WC_RP16/WR_NO2=0.0 -! -!WC_RP16/WR_NO3=0.0 -! -!WC_RP16/WR_N2O5=0.0 -! -!WC_RP16/WR_HONO=0.0 -! -!WC_RP16/WR_HNO3=0.0 -! -!WC_RP16/WR_HNO4=0.0 -! -!WC_RP16/WR_NH3=0.0 -! -!WC_RP16/WR_OH=0.0 -! -!WC_RP16/WR_HO2=0.0 -! -!WC_RP16/WR_CO2=0.0 -! -!WC_RP16/WR_SO2=0.0 -! -!WC_RP16/WR_H2SO4=0.0 -! -!WC_RP16/WR_RO21=0.0 -! -!WC_RP16/WR_RO25=0.0 -! -!WC_RP16/WR_MEOH=0.0 -! -!WC_RP16/WR_ETOH=0.0 -! -!WC_RP16/WR_ALCH=0.0 -! -!WC_RP16/WR_HCHO=0.0 -! -!WC_RP16/WR_ALD2=0.0 -! -!WC_RP16/WR_GLY=0.0 -! -!WC_RP16/WR_MGLY=0.0 -! -!WC_RP16/WR_KETL=0.0 -! -!WC_RP16/WR_ORA1=0.0 -! -!WC_RP16/WR_ORA2=0.0 -! -!WC_RP16/WR_ACID=0.0 -! -!WC_RP16/WR_RP16=0.0 -! -!WC_RP16/WR_UR21=0.0 -! -!WC_RP16/WR_UR28=0.0 -! -!WC_RP16/WR_ACID2=0.0 -! -!WC_RP16/WR_ASO3=0.0 -! -!WC_RP16/WR_ASO4=0.0 -! -!WC_RP16/WR_ASO5=0.0 -! -!WC_RP16/WR_AHSO5=0.0 -! -!WC_RP16/WR_AHMS=0.0 -! -!WC_UR21/NO=0.0 -! -!WC_UR21/NO2=0.0 -! -!WC_UR21/O3=0.0 -! -!WC_UR21/HONO=0.0 -! -!WC_UR21/HNO3=0.0 -! -!WC_UR21/HNO4=0.0 -! -!WC_UR21/N2O5=0.0 -! -!WC_UR21/NO3=0.0 -! -!WC_UR21/NH3=0.0 -! -!WC_UR21/HO2=0.0 -! -!WC_UR21/CO=0.0 -! -!WC_UR21/H2O2=0.0 -! -!WC_UR21/SO2=0.0 -! -!WC_UR21/H2SO4=0.0 -! -!WC_UR21/OH=0.0 -! -!WC_UR21/ETHE=0.0 -! -!WC_UR21/OLEL=0.0 -! -!WC_UR21/OLEH=0.0 -! -!WC_UR21/ALKL=0.0 -! -!WC_UR21/ALKM=0.0 -! -!WC_UR21/ALKH=0.0 -! -!WC_UR21/AROH=0.0 -! -!WC_UR21/AROL=0.0 -! -!WC_UR21/AROO=0.0 -! -!WC_UR21/ARAL=0.0 -! -!WC_UR21/ARAC=0.0 -! -!WC_UR21/PAH=0.0 -! -!WC_UR21/HCHO=0.0 -! -!WC_UR21/ALD2=0.0 -! -!WC_UR21/KETL=0.0 -! -!WC_UR21/KETH=0.0 -! -!WC_UR21/MEOH=0.0 -! -!WC_UR21/ETOH=0.0 -! -!WC_UR21/ALCH=0.0 -! -!WC_UR21/ISOP=0.0 -! -!WC_UR21/BIOL=0.0 -! -!WC_UR21/BIOH=0.0 -! -!WC_UR21/MTBE=0.0 -! -!WC_UR21/MVK=0.0 -! -!WC_UR21/MCR=0.0 -! -!WC_UR21/MGLY=0.0 -! -!WC_UR21/GLY=0.0 -! -!WC_UR21/ORA1=0.0 -! -!WC_UR21/ORA2=0.0 -! -!WC_UR21/ACID=0.0 -! -!WC_UR21/UR28=0.0 -! -!WC_UR21/UR21=+KTC30 - PJAC(:,117,47)=+TPK%KTC30(:) -! -!WC_UR21/URG2=0.0 -! -!WC_UR21/UR26=0.0 -! -!WC_UR21/RPG2=0.0 -! -!WC_UR21/RP18=0.0 -! -!WC_UR21/RPG3=0.0 -! -!WC_UR21/URG4=0.0 -! -!WC_UR21/UR8=0.0 -! -!WC_UR21/UR17=0.0 -! -!WC_UR21/UR7=0.0 -! -!WC_UR21/RPR3=0.0 -! -!WC_UR21/URG6=0.0 -! -!WC_UR21/UR22=0.0 -! -!WC_UR21/URG7=0.0 -! -!WC_UR21/RPR4=0.0 -! -!WC_UR21/RPR7=0.0 -! -!WC_UR21/RPG7=0.0 -! -!WC_UR21/URG8=0.0 -! -!WC_UR21/UR19=0.0 -! -!WC_UR21/URG9=0.0 -! -!WC_UR21/AP7=0.0 -! -!WC_UR21/URG10=0.0 -! -!WC_UR21/RPR1=0.0 -! -!WC_UR21/RPR5=0.0 -! -!WC_UR21/RPR8=0.0 -! -!WC_UR21/RP10=0.0 -! -!WC_UR21/RP11=0.0 -! -!WC_UR21/RP16=0.0 -! -!WC_UR21/RPRL=0.0 -! -!WC_UR21/APAN=0.0 -! -!WC_UR21/PAN1=0.0 -! -!WC_UR21/PAN2=0.0 -! -!WC_UR21/PAN3=0.0 -! -!WC_UR21/PAN4=0.0 -! -!WC_UR21/PAN6=0.0 -! -!WC_UR21/PAN7=0.0 -! -!WC_UR21/PAN8=0.0 -! -!WC_UR21/PN10=0.0 -! -!WC_UR21/RO2T=0.0 -! -!WC_UR21/RO21=0.0 -! -!WC_UR21/RO25=0.0 -! -!WC_UR21/WC_O3=0.0 -! -!WC_UR21/WC_H2O2=0.0 -! -!WC_UR21/WC_NO=0.0 -! -!WC_UR21/WC_NO2=0.0 -! -!WC_UR21/WC_NO3=0.0 -! -!WC_UR21/WC_N2O5=0.0 -! -!WC_UR21/WC_HONO=0.0 -! -!WC_UR21/WC_HNO3=0.0 -! -!WC_UR21/WC_HNO4=0.0 -! -!WC_UR21/WC_NH3=0.0 -! -!WC_UR21/WC_OH=+KC36*<WC_MGLY>+KC37*<WC_KETL>+0.56*KC41*<WC_ACID>-KC43*<WC_UR21 -!> - PJAC(:,117,98)=+TPK%KC36(:)*PCONC(:,111)+TPK%KC37(:)*PCONC(:,112)+0.56*TPK%KC4& -&1(:)*PCONC(:,115)-TPK%KC43(:)*PCONC(:,117) -! -!WC_UR21/WC_HO2=0.0 -! -!WC_UR21/WC_CO2=0.0 -! -!WC_UR21/WC_SO2=0.0 -! -!WC_UR21/WC_H2SO4=0.0 -! -!WC_UR21/WC_RO21=0.0 -! -!WC_UR21/WC_RO25=0.0 -! -!WC_UR21/WC_MEOH=0.0 -! -!WC_UR21/WC_ETOH=0.0 -! -!WC_UR21/WC_ALCH=0.0 -! -!WC_UR21/WC_HCHO=0.0 -! -!WC_UR21/WC_ALD2=0.0 -! -!WC_UR21/WC_GLY=0.0 -! -!WC_UR21/WC_MGLY=+KC36*<WC_OH> - PJAC(:,117,111)=+TPK%KC36(:)*PCONC(:,98) -! -!WC_UR21/WC_KETL=+KC37*<WC_OH> - PJAC(:,117,112)=+TPK%KC37(:)*PCONC(:,98) -! -!WC_UR21/WC_ORA1=0.0 -! -!WC_UR21/WC_ORA2=0.0 -! -!WC_UR21/WC_ACID=+0.56*KC41*<WC_OH> - PJAC(:,117,115)=+0.56*TPK%KC41(:)*PCONC(:,98) -! -!WC_UR21/WC_RP16=0.0 -! -!WC_UR21/WC_UR21=-KTC61-KC43*<WC_OH> - PJAC(:,117,117)=-TPK%KTC61(:)-TPK%KC43(:)*PCONC(:,98) -! -!WC_UR21/WC_UR28=0.0 -! -!WC_UR21/WC_ACID2=0.0 -! -!WC_UR21/WC_ASO3=0.0 -! -!WC_UR21/WC_ASO4=0.0 -! -!WC_UR21/WC_ASO5=0.0 -! -!WC_UR21/WC_AHSO5=0.0 -! -!WC_UR21/WC_AHMS=0.0 -! -!WC_UR21/WR_O3=0.0 -! -!WC_UR21/WR_H2O2=0.0 -! -!WC_UR21/WR_NO=0.0 -! -!WC_UR21/WR_NO2=0.0 -! -!WC_UR21/WR_NO3=0.0 -! -!WC_UR21/WR_N2O5=0.0 -! -!WC_UR21/WR_HONO=0.0 -! -!WC_UR21/WR_HNO3=0.0 -! -!WC_UR21/WR_HNO4=0.0 -! -!WC_UR21/WR_NH3=0.0 -! -!WC_UR21/WR_OH=0.0 -! -!WC_UR21/WR_HO2=0.0 -! -!WC_UR21/WR_CO2=0.0 -! -!WC_UR21/WR_SO2=0.0 -! -!WC_UR21/WR_H2SO4=0.0 -! -!WC_UR21/WR_RO21=0.0 -! -!WC_UR21/WR_RO25=0.0 -! -!WC_UR21/WR_MEOH=0.0 -! -!WC_UR21/WR_ETOH=0.0 -! -!WC_UR21/WR_ALCH=0.0 -! -!WC_UR21/WR_HCHO=0.0 -! -!WC_UR21/WR_ALD2=0.0 -! -!WC_UR21/WR_GLY=0.0 -! -!WC_UR21/WR_MGLY=0.0 -! -!WC_UR21/WR_KETL=0.0 -! -!WC_UR21/WR_ORA1=0.0 -! -!WC_UR21/WR_ORA2=0.0 -! -!WC_UR21/WR_ACID=0.0 -! -!WC_UR21/WR_RP16=0.0 -! -!WC_UR21/WR_UR21=0.0 -! -!WC_UR21/WR_UR28=0.0 -! -!WC_UR21/WR_ACID2=0.0 -! -!WC_UR21/WR_ASO3=0.0 -! -!WC_UR21/WR_ASO4=0.0 -! -!WC_UR21/WR_ASO5=0.0 -! -!WC_UR21/WR_AHSO5=0.0 -! -!WC_UR21/WR_AHMS=0.0 -! -!WC_UR28/NO=0.0 -! -!WC_UR28/NO2=0.0 -! -!WC_UR28/O3=0.0 -! -!WC_UR28/HONO=0.0 -! -!WC_UR28/HNO3=0.0 -! -!WC_UR28/HNO4=0.0 -! -!WC_UR28/N2O5=0.0 -! -!WC_UR28/NO3=0.0 -! -!WC_UR28/NH3=0.0 -! -!WC_UR28/HO2=0.0 -! -!WC_UR28/CO=0.0 -! -!WC_UR28/H2O2=0.0 -! -!WC_UR28/SO2=0.0 -! -!WC_UR28/H2SO4=0.0 -! -!WC_UR28/OH=0.0 -! -!WC_UR28/ETHE=0.0 -! -!WC_UR28/OLEL=0.0 -! -!WC_UR28/OLEH=0.0 -! -!WC_UR28/ALKL=0.0 -! -!WC_UR28/ALKM=0.0 -! -!WC_UR28/ALKH=0.0 -! -!WC_UR28/AROH=0.0 -! -!WC_UR28/AROL=0.0 -! -!WC_UR28/AROO=0.0 -! -!WC_UR28/ARAL=0.0 -! -!WC_UR28/ARAC=0.0 -! -!WC_UR28/PAH=0.0 -! -!WC_UR28/HCHO=0.0 -! -!WC_UR28/ALD2=0.0 -! -!WC_UR28/KETL=0.0 -! -!WC_UR28/KETH=0.0 -! -!WC_UR28/MEOH=0.0 -! -!WC_UR28/ETOH=0.0 -! -!WC_UR28/ALCH=0.0 -! -!WC_UR28/ISOP=0.0 -! -!WC_UR28/BIOL=0.0 -! -!WC_UR28/BIOH=0.0 -! -!WC_UR28/MTBE=0.0 -! -!WC_UR28/MVK=0.0 -! -!WC_UR28/MCR=0.0 -! -!WC_UR28/MGLY=0.0 -! -!WC_UR28/GLY=0.0 -! -!WC_UR28/ORA1=0.0 -! -!WC_UR28/ORA2=0.0 -! -!WC_UR28/ACID=0.0 -! -!WC_UR28/UR28=+KTC31 - PJAC(:,118,46)=+TPK%KTC31(:) -! -!WC_UR28/UR21=0.0 -! -!WC_UR28/URG2=0.0 -! -!WC_UR28/UR26=0.0 -! -!WC_UR28/RPG2=0.0 -! -!WC_UR28/RP18=0.0 -! -!WC_UR28/RPG3=0.0 -! -!WC_UR28/URG4=0.0 -! -!WC_UR28/UR8=0.0 -! -!WC_UR28/UR17=0.0 -! -!WC_UR28/UR7=0.0 -! -!WC_UR28/RPR3=0.0 -! -!WC_UR28/URG6=0.0 -! -!WC_UR28/UR22=0.0 -! -!WC_UR28/URG7=0.0 -! -!WC_UR28/RPR4=0.0 -! -!WC_UR28/RPR7=0.0 -! -!WC_UR28/RPG7=0.0 -! -!WC_UR28/URG8=0.0 -! -!WC_UR28/UR19=0.0 -! -!WC_UR28/URG9=0.0 -! -!WC_UR28/AP7=0.0 -! -!WC_UR28/URG10=0.0 -! -!WC_UR28/RPR1=0.0 -! -!WC_UR28/RPR5=0.0 -! -!WC_UR28/RPR8=0.0 -! -!WC_UR28/RP10=0.0 -! -!WC_UR28/RP11=0.0 -! -!WC_UR28/RP16=0.0 -! -!WC_UR28/RPRL=0.0 -! -!WC_UR28/APAN=0.0 -! -!WC_UR28/PAN1=0.0 -! -!WC_UR28/PAN2=0.0 -! -!WC_UR28/PAN3=0.0 -! -!WC_UR28/PAN4=0.0 -! -!WC_UR28/PAN6=0.0 -! -!WC_UR28/PAN7=0.0 -! -!WC_UR28/PAN8=0.0 -! -!WC_UR28/PN10=0.0 -! -!WC_UR28/RO2T=0.0 -! -!WC_UR28/RO21=0.0 -! -!WC_UR28/RO25=0.0 -! -!WC_UR28/WC_O3=0.0 -! -!WC_UR28/WC_H2O2=0.0 -! -!WC_UR28/WC_NO=0.0 -! -!WC_UR28/WC_NO2=0.0 -! -!WC_UR28/WC_NO3=0.0 -! -!WC_UR28/WC_N2O5=0.0 -! -!WC_UR28/WC_HONO=0.0 -! -!WC_UR28/WC_HNO3=0.0 -! -!WC_UR28/WC_HNO4=0.0 -! -!WC_UR28/WC_NH3=0.0 -! -!WC_UR28/WC_OH=-KC42*<WC_UR28>+KC44*<WC_RP16> - PJAC(:,118,98)=-TPK%KC42(:)*PCONC(:,118)+TPK%KC44(:)*PCONC(:,116) -! -!WC_UR28/WC_HO2=0.0 -! -!WC_UR28/WC_CO2=0.0 -! -!WC_UR28/WC_SO2=0.0 -! -!WC_UR28/WC_H2SO4=0.0 -! -!WC_UR28/WC_RO21=0.0 -! -!WC_UR28/WC_RO25=0.0 -! -!WC_UR28/WC_MEOH=0.0 -! -!WC_UR28/WC_ETOH=0.0 -! -!WC_UR28/WC_ALCH=0.0 -! -!WC_UR28/WC_HCHO=0.0 -! -!WC_UR28/WC_ALD2=0.0 -! -!WC_UR28/WC_GLY=0.0 -! -!WC_UR28/WC_MGLY=0.0 -! -!WC_UR28/WC_KETL=0.0 -! -!WC_UR28/WC_ORA1=0.0 -! -!WC_UR28/WC_ORA2=0.0 -! -!WC_UR28/WC_ACID=0.0 -! -!WC_UR28/WC_RP16=+KC44*<WC_OH> - PJAC(:,118,116)=+TPK%KC44(:)*PCONC(:,98) -! -!WC_UR28/WC_UR21=0.0 -! -!WC_UR28/WC_UR28=-KTC62-KC42*<WC_OH> - PJAC(:,118,118)=-TPK%KTC62(:)-TPK%KC42(:)*PCONC(:,98) -! -!WC_UR28/WC_ACID2=0.0 -! -!WC_UR28/WC_ASO3=0.0 -! -!WC_UR28/WC_ASO4=0.0 -! -!WC_UR28/WC_ASO5=0.0 -! -!WC_UR28/WC_AHSO5=0.0 -! -!WC_UR28/WC_AHMS=0.0 -! -!WC_UR28/WR_O3=0.0 -! -!WC_UR28/WR_H2O2=0.0 -! -!WC_UR28/WR_NO=0.0 -! -!WC_UR28/WR_NO2=0.0 -! -!WC_UR28/WR_NO3=0.0 -! -!WC_UR28/WR_N2O5=0.0 -! -!WC_UR28/WR_HONO=0.0 -! -!WC_UR28/WR_HNO3=0.0 -! -!WC_UR28/WR_HNO4=0.0 -! -!WC_UR28/WR_NH3=0.0 -! -!WC_UR28/WR_OH=0.0 -! -!WC_UR28/WR_HO2=0.0 -! -!WC_UR28/WR_CO2=0.0 -! -!WC_UR28/WR_SO2=0.0 -! -!WC_UR28/WR_H2SO4=0.0 -! -!WC_UR28/WR_RO21=0.0 -! -!WC_UR28/WR_RO25=0.0 -! -!WC_UR28/WR_MEOH=0.0 -! -!WC_UR28/WR_ETOH=0.0 -! -!WC_UR28/WR_ALCH=0.0 -! -!WC_UR28/WR_HCHO=0.0 -! -!WC_UR28/WR_ALD2=0.0 -! -!WC_UR28/WR_GLY=0.0 -! -!WC_UR28/WR_MGLY=0.0 -! -!WC_UR28/WR_KETL=0.0 -! -!WC_UR28/WR_ORA1=0.0 -! -!WC_UR28/WR_ORA2=0.0 -! -!WC_UR28/WR_ACID=0.0 -! -!WC_UR28/WR_RP16=0.0 -! -!WC_UR28/WR_UR21=0.0 -! -!WC_UR28/WR_UR28=0.0 -! -!WC_UR28/WR_ACID2=0.0 -! -!WC_UR28/WR_ASO3=0.0 -! -!WC_UR28/WR_ASO4=0.0 -! -!WC_UR28/WR_ASO5=0.0 -! -!WC_UR28/WR_AHSO5=0.0 -! -!WC_UR28/WR_AHMS=0.0 -! -!WC_ACID2/NO=0.0 -! -!WC_ACID2/NO2=0.0 -! -!WC_ACID2/O3=0.0 -! -!WC_ACID2/HONO=0.0 -! -!WC_ACID2/HNO3=0.0 -! -!WC_ACID2/HNO4=0.0 -! -!WC_ACID2/N2O5=0.0 -! -!WC_ACID2/NO3=0.0 -! -!WC_ACID2/NH3=0.0 -! -!WC_ACID2/HO2=0.0 -! -!WC_ACID2/CO=0.0 -! -!WC_ACID2/H2O2=0.0 -! -!WC_ACID2/SO2=0.0 -! -!WC_ACID2/H2SO4=0.0 -! -!WC_ACID2/OH=0.0 -! -!WC_ACID2/ETHE=0.0 -! -!WC_ACID2/OLEL=0.0 -! -!WC_ACID2/OLEH=0.0 -! -!WC_ACID2/ALKL=0.0 -! -!WC_ACID2/ALKM=0.0 -! -!WC_ACID2/ALKH=0.0 -! -!WC_ACID2/AROH=0.0 -! -!WC_ACID2/AROL=0.0 -! -!WC_ACID2/AROO=0.0 -! -!WC_ACID2/ARAL=0.0 -! -!WC_ACID2/ARAC=0.0 -! -!WC_ACID2/PAH=0.0 -! -!WC_ACID2/HCHO=0.0 -! -!WC_ACID2/ALD2=0.0 -! -!WC_ACID2/KETL=0.0 -! -!WC_ACID2/KETH=0.0 -! -!WC_ACID2/MEOH=0.0 -! -!WC_ACID2/ETOH=0.0 -! -!WC_ACID2/ALCH=0.0 -! -!WC_ACID2/ISOP=0.0 -! -!WC_ACID2/BIOL=0.0 -! -!WC_ACID2/BIOH=0.0 -! -!WC_ACID2/MTBE=0.0 -! -!WC_ACID2/MVK=0.0 -! -!WC_ACID2/MCR=0.0 -! -!WC_ACID2/MGLY=0.0 -! -!WC_ACID2/GLY=0.0 -! -!WC_ACID2/ORA1=0.0 -! -!WC_ACID2/ORA2=0.0 -! -!WC_ACID2/ACID=0.0 -! -!WC_ACID2/UR28=0.0 -! -!WC_ACID2/UR21=0.0 -! -!WC_ACID2/URG2=0.0 -! -!WC_ACID2/UR26=0.0 -! -!WC_ACID2/RPG2=0.0 -! -!WC_ACID2/RP18=0.0 -! -!WC_ACID2/RPG3=0.0 -! -!WC_ACID2/URG4=0.0 -! -!WC_ACID2/UR8=0.0 -! -!WC_ACID2/UR17=0.0 -! -!WC_ACID2/UR7=0.0 -! -!WC_ACID2/RPR3=0.0 -! -!WC_ACID2/URG6=0.0 -! -!WC_ACID2/UR22=0.0 -! -!WC_ACID2/URG7=0.0 -! -!WC_ACID2/RPR4=0.0 -! -!WC_ACID2/RPR7=0.0 -! -!WC_ACID2/RPG7=0.0 -! -!WC_ACID2/URG8=0.0 -! -!WC_ACID2/UR19=0.0 -! -!WC_ACID2/URG9=0.0 -! -!WC_ACID2/AP7=0.0 -! -!WC_ACID2/URG10=0.0 -! -!WC_ACID2/RPR1=0.0 -! -!WC_ACID2/RPR5=0.0 -! -!WC_ACID2/RPR8=0.0 -! -!WC_ACID2/RP10=0.0 -! -!WC_ACID2/RP11=0.0 -! -!WC_ACID2/RP16=0.0 -! -!WC_ACID2/RPRL=0.0 -! -!WC_ACID2/APAN=0.0 -! -!WC_ACID2/PAN1=0.0 -! -!WC_ACID2/PAN2=0.0 -! -!WC_ACID2/PAN3=0.0 -! -!WC_ACID2/PAN4=0.0 -! -!WC_ACID2/PAN6=0.0 -! -!WC_ACID2/PAN7=0.0 -! -!WC_ACID2/PAN8=0.0 -! -!WC_ACID2/PN10=0.0 -! -!WC_ACID2/RO2T=0.0 -! -!WC_ACID2/RO21=0.0 -! -!WC_ACID2/RO25=0.0 -! -!WC_ACID2/WC_O3=0.0 -! -!WC_ACID2/WC_H2O2=0.0 -! -!WC_ACID2/WC_NO=0.0 -! -!WC_ACID2/WC_NO2=0.0 -! -!WC_ACID2/WC_NO3=0.0 -! -!WC_ACID2/WC_N2O5=0.0 -! -!WC_ACID2/WC_HONO=0.0 -! -!WC_ACID2/WC_HNO3=0.0 -! -!WC_ACID2/WC_HNO4=0.0 -! -!WC_ACID2/WC_NH3=0.0 -! -!WC_ACID2/WC_OH=+0.15*KC41*<WC_ACID>+0.56*KC43*<WC_UR21>-KC46*<WC_ACID2> - PJAC(:,119,98)=+0.15*TPK%KC41(:)*PCONC(:,115)+0.56*TPK%KC43(:)*PCONC(:,117)-TP& -&K%KC46(:)*PCONC(:,119) -! -!WC_ACID2/WC_HO2=0.0 -! -!WC_ACID2/WC_CO2=0.0 -! -!WC_ACID2/WC_SO2=0.0 -! -!WC_ACID2/WC_H2SO4=0.0 -! -!WC_ACID2/WC_RO21=0.0 -! -!WC_ACID2/WC_RO25=0.0 -! -!WC_ACID2/WC_MEOH=0.0 -! -!WC_ACID2/WC_ETOH=0.0 -! -!WC_ACID2/WC_ALCH=0.0 -! -!WC_ACID2/WC_HCHO=0.0 -! -!WC_ACID2/WC_ALD2=0.0 -! -!WC_ACID2/WC_GLY=0.0 -! -!WC_ACID2/WC_MGLY=0.0 -! -!WC_ACID2/WC_KETL=0.0 -! -!WC_ACID2/WC_ORA1=0.0 -! -!WC_ACID2/WC_ORA2=0.0 -! -!WC_ACID2/WC_ACID=+0.15*KC41*<WC_OH> - PJAC(:,119,115)=+0.15*TPK%KC41(:)*PCONC(:,98) -! -!WC_ACID2/WC_RP16=0.0 -! -!WC_ACID2/WC_UR21=+0.56*KC43*<WC_OH> - PJAC(:,119,117)=+0.56*TPK%KC43(:)*PCONC(:,98) -! -!WC_ACID2/WC_UR28=0.0 -! -!WC_ACID2/WC_ACID2=-KC46*<WC_OH> - PJAC(:,119,119)=-TPK%KC46(:)*PCONC(:,98) -! -!WC_ACID2/WC_ASO3=0.0 -! -!WC_ACID2/WC_ASO4=0.0 -! -!WC_ACID2/WC_ASO5=0.0 -! -!WC_ACID2/WC_AHSO5=0.0 -! -!WC_ACID2/WC_AHMS=0.0 -! -!WC_ACID2/WR_O3=0.0 -! -!WC_ACID2/WR_H2O2=0.0 -! -!WC_ACID2/WR_NO=0.0 -! -!WC_ACID2/WR_NO2=0.0 -! -!WC_ACID2/WR_NO3=0.0 -! -!WC_ACID2/WR_N2O5=0.0 -! -!WC_ACID2/WR_HONO=0.0 -! -!WC_ACID2/WR_HNO3=0.0 -! -!WC_ACID2/WR_HNO4=0.0 -! -!WC_ACID2/WR_NH3=0.0 -! -!WC_ACID2/WR_OH=0.0 -! -!WC_ACID2/WR_HO2=0.0 -! -!WC_ACID2/WR_CO2=0.0 -! -!WC_ACID2/WR_SO2=0.0 -! -!WC_ACID2/WR_H2SO4=0.0 -! -!WC_ACID2/WR_RO21=0.0 -! -!WC_ACID2/WR_RO25=0.0 -! -!WC_ACID2/WR_MEOH=0.0 -! -!WC_ACID2/WR_ETOH=0.0 -! -!WC_ACID2/WR_ALCH=0.0 -! -!WC_ACID2/WR_HCHO=0.0 -! -!WC_ACID2/WR_ALD2=0.0 -! -!WC_ACID2/WR_GLY=0.0 -! -!WC_ACID2/WR_MGLY=0.0 -! -!WC_ACID2/WR_KETL=0.0 -! -!WC_ACID2/WR_ORA1=0.0 -! -!WC_ACID2/WR_ORA2=0.0 -! -!WC_ACID2/WR_ACID=0.0 -! -!WC_ACID2/WR_RP16=0.0 -! -!WC_ACID2/WR_UR21=0.0 -! -!WC_ACID2/WR_UR28=0.0 -! -!WC_ACID2/WR_ACID2=0.0 -! -!WC_ACID2/WR_ASO3=0.0 -! -!WC_ACID2/WR_ASO4=0.0 -! -!WC_ACID2/WR_ASO5=0.0 -! -!WC_ACID2/WR_AHSO5=0.0 -! -!WC_ACID2/WR_AHMS=0.0 -! -!WC_ASO3/NO=0.0 -! -!WC_ASO3/NO2=0.0 -! -!WC_ASO3/O3=0.0 -! -!WC_ASO3/HONO=0.0 -! -!WC_ASO3/HNO3=0.0 -! -!WC_ASO3/HNO4=0.0 -! -!WC_ASO3/N2O5=0.0 -! -!WC_ASO3/NO3=0.0 -! -!WC_ASO3/NH3=0.0 -! -!WC_ASO3/HO2=0.0 -! -!WC_ASO3/CO=0.0 -! -!WC_ASO3/H2O2=0.0 -! -!WC_ASO3/SO2=0.0 -! -!WC_ASO3/H2SO4=0.0 -! -!WC_ASO3/OH=0.0 -! -!WC_ASO3/ETHE=0.0 -! -!WC_ASO3/OLEL=0.0 -! -!WC_ASO3/OLEH=0.0 -! -!WC_ASO3/ALKL=0.0 -! -!WC_ASO3/ALKM=0.0 -! -!WC_ASO3/ALKH=0.0 -! -!WC_ASO3/AROH=0.0 -! -!WC_ASO3/AROL=0.0 -! -!WC_ASO3/AROO=0.0 -! -!WC_ASO3/ARAL=0.0 -! -!WC_ASO3/ARAC=0.0 -! -!WC_ASO3/PAH=0.0 -! -!WC_ASO3/HCHO=0.0 -! -!WC_ASO3/ALD2=0.0 -! -!WC_ASO3/KETL=0.0 -! -!WC_ASO3/KETH=0.0 -! -!WC_ASO3/MEOH=0.0 -! -!WC_ASO3/ETOH=0.0 -! -!WC_ASO3/ALCH=0.0 -! -!WC_ASO3/ISOP=0.0 -! -!WC_ASO3/BIOL=0.0 -! -!WC_ASO3/BIOH=0.0 -! -!WC_ASO3/MTBE=0.0 -! -!WC_ASO3/MVK=0.0 -! -!WC_ASO3/MCR=0.0 -! -!WC_ASO3/MGLY=0.0 -! -!WC_ASO3/GLY=0.0 -! -!WC_ASO3/ORA1=0.0 -! -!WC_ASO3/ORA2=0.0 -! -!WC_ASO3/ACID=0.0 -! -!WC_ASO3/UR28=0.0 -! -!WC_ASO3/UR21=0.0 -! -!WC_ASO3/URG2=0.0 -! -!WC_ASO3/UR26=0.0 -! -!WC_ASO3/RPG2=0.0 -! -!WC_ASO3/RP18=0.0 -! -!WC_ASO3/RPG3=0.0 -! -!WC_ASO3/URG4=0.0 -! -!WC_ASO3/UR8=0.0 -! -!WC_ASO3/UR17=0.0 -! -!WC_ASO3/UR7=0.0 -! -!WC_ASO3/RPR3=0.0 -! -!WC_ASO3/URG6=0.0 -! -!WC_ASO3/UR22=0.0 -! -!WC_ASO3/URG7=0.0 -! -!WC_ASO3/RPR4=0.0 -! -!WC_ASO3/RPR7=0.0 -! -!WC_ASO3/RPG7=0.0 -! -!WC_ASO3/URG8=0.0 -! -!WC_ASO3/UR19=0.0 -! -!WC_ASO3/URG9=0.0 -! -!WC_ASO3/AP7=0.0 -! -!WC_ASO3/URG10=0.0 -! -!WC_ASO3/RPR1=0.0 -! -!WC_ASO3/RPR5=0.0 -! -!WC_ASO3/RPR8=0.0 -! -!WC_ASO3/RP10=0.0 -! -!WC_ASO3/RP11=0.0 -! -!WC_ASO3/RP16=0.0 -! -!WC_ASO3/RPRL=0.0 -! -!WC_ASO3/APAN=0.0 -! -!WC_ASO3/PAN1=0.0 -! -!WC_ASO3/PAN2=0.0 -! -!WC_ASO3/PAN3=0.0 -! -!WC_ASO3/PAN4=0.0 -! -!WC_ASO3/PAN6=0.0 -! -!WC_ASO3/PAN7=0.0 -! -!WC_ASO3/PAN8=0.0 -! -!WC_ASO3/PN10=0.0 -! -!WC_ASO3/RO2T=0.0 -! -!WC_ASO3/RO21=0.0 -! -!WC_ASO3/RO25=0.0 -! -!WC_ASO3/WC_O3=0.0 -! -!WC_ASO3/WC_H2O2=0.0 -! -!WC_ASO3/WC_NO=0.0 -! -!WC_ASO3/WC_NO2=0.0 -! -!WC_ASO3/WC_NO3=+KC16*<WC_SO2> - PJAC(:,120,92)=+TPK%KC16(:)*PCONC(:,101) -! -!WC_ASO3/WC_N2O5=0.0 -! -!WC_ASO3/WC_HONO=0.0 -! -!WC_ASO3/WC_HNO3=0.0 -! -!WC_ASO3/WC_HNO4=0.0 -! -!WC_ASO3/WC_NH3=0.0 -! -!WC_ASO3/WC_OH=+KC7*<WC_SO2> - PJAC(:,120,98)=+TPK%KC7(:)*PCONC(:,101) -! -!WC_ASO3/WC_HO2=0.0 -! -!WC_ASO3/WC_CO2=0.0 -! -!WC_ASO3/WC_SO2=+KC7*<WC_OH>+KC16*<WC_NO3>+KC28*<WC_RO21> - PJAC(:,120,101)=+TPK%KC7(:)*PCONC(:,98)+TPK%KC16(:)*PCONC(:,92)+TPK%KC28(:)*PC& -&ONC(:,103) -! -!WC_ASO3/WC_H2SO4=0.0 -! -!WC_ASO3/WC_RO21=+KC28*<WC_SO2> - PJAC(:,120,103)=+TPK%KC28(:)*PCONC(:,101) -! -!WC_ASO3/WC_RO25=0.0 -! -!WC_ASO3/WC_MEOH=0.0 -! -!WC_ASO3/WC_ETOH=0.0 -! -!WC_ASO3/WC_ALCH=0.0 -! -!WC_ASO3/WC_HCHO=0.0 -! -!WC_ASO3/WC_ALD2=0.0 -! -!WC_ASO3/WC_GLY=0.0 -! -!WC_ASO3/WC_MGLY=0.0 -! -!WC_ASO3/WC_KETL=0.0 -! -!WC_ASO3/WC_ORA1=0.0 -! -!WC_ASO3/WC_ORA2=0.0 -! -!WC_ASO3/WC_ACID=0.0 -! -!WC_ASO3/WC_RP16=0.0 -! -!WC_ASO3/WC_UR21=0.0 -! -!WC_ASO3/WC_UR28=0.0 -! -!WC_ASO3/WC_ACID2=0.0 -! -!WC_ASO3/WC_ASO3=-KC20*<W_O2> - PJAC(:,120,120)=-TPK%KC20(:)*TPK%W_O2(:) -! -!WC_ASO3/WC_ASO4=0.0 -! -!WC_ASO3/WC_ASO5=0.0 -! -!WC_ASO3/WC_AHSO5=0.0 -! -!WC_ASO3/WC_AHMS=0.0 -! -!WC_ASO3/WR_O3=0.0 -! -!WC_ASO3/WR_H2O2=0.0 -! -!WC_ASO3/WR_NO=0.0 -! -!WC_ASO3/WR_NO2=0.0 -! -!WC_ASO3/WR_NO3=0.0 -! -!WC_ASO3/WR_N2O5=0.0 -! -!WC_ASO3/WR_HONO=0.0 -! -!WC_ASO3/WR_HNO3=0.0 -! -!WC_ASO3/WR_HNO4=0.0 -! -!WC_ASO3/WR_NH3=0.0 -! -!WC_ASO3/WR_OH=0.0 -! -!WC_ASO3/WR_HO2=0.0 -! -!WC_ASO3/WR_CO2=0.0 -! -!WC_ASO3/WR_SO2=0.0 -! -!WC_ASO3/WR_H2SO4=0.0 -! -!WC_ASO3/WR_RO21=0.0 -! -!WC_ASO3/WR_RO25=0.0 -! -!WC_ASO3/WR_MEOH=0.0 -! -!WC_ASO3/WR_ETOH=0.0 -! -!WC_ASO3/WR_ALCH=0.0 -! -!WC_ASO3/WR_HCHO=0.0 -! -!WC_ASO3/WR_ALD2=0.0 -! -!WC_ASO3/WR_GLY=0.0 -! -!WC_ASO3/WR_MGLY=0.0 -! -!WC_ASO3/WR_KETL=0.0 -! -!WC_ASO3/WR_ORA1=0.0 -! -!WC_ASO3/WR_ORA2=0.0 -! -!WC_ASO3/WR_ACID=0.0 -! -!WC_ASO3/WR_RP16=0.0 -! -!WC_ASO3/WR_UR21=0.0 -! -!WC_ASO3/WR_UR28=0.0 -! -!WC_ASO3/WR_ACID2=0.0 -! -!WC_ASO3/WR_ASO3=0.0 -! -!WC_ASO3/WR_ASO4=0.0 -! -!WC_ASO3/WR_ASO5=0.0 -! -!WC_ASO3/WR_AHSO5=0.0 -! -!WC_ASO3/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ23 -! -SUBROUTINE SUBJ24 -! -!Indices 121 a 125 -! -! -!WC_ASO4/NO=0.0 -! -!WC_ASO4/NO2=0.0 -! -!WC_ASO4/O3=0.0 -! -!WC_ASO4/HONO=0.0 -! -!WC_ASO4/HNO3=0.0 -! -!WC_ASO4/HNO4=0.0 -! -!WC_ASO4/N2O5=0.0 -! -!WC_ASO4/NO3=0.0 -! -!WC_ASO4/NH3=0.0 -! -!WC_ASO4/HO2=0.0 -! -!WC_ASO4/CO=0.0 -! -!WC_ASO4/H2O2=0.0 -! -!WC_ASO4/SO2=0.0 -! -!WC_ASO4/H2SO4=0.0 -! -!WC_ASO4/OH=0.0 -! -!WC_ASO4/ETHE=0.0 -! -!WC_ASO4/OLEL=0.0 -! -!WC_ASO4/OLEH=0.0 -! -!WC_ASO4/ALKL=0.0 -! -!WC_ASO4/ALKM=0.0 -! -!WC_ASO4/ALKH=0.0 -! -!WC_ASO4/AROH=0.0 -! -!WC_ASO4/AROL=0.0 -! -!WC_ASO4/AROO=0.0 -! -!WC_ASO4/ARAL=0.0 -! -!WC_ASO4/ARAC=0.0 -! -!WC_ASO4/PAH=0.0 -! -!WC_ASO4/HCHO=0.0 -! -!WC_ASO4/ALD2=0.0 -! -!WC_ASO4/KETL=0.0 -! -!WC_ASO4/KETH=0.0 -! -!WC_ASO4/MEOH=0.0 -! -!WC_ASO4/ETOH=0.0 -! -!WC_ASO4/ALCH=0.0 -! -!WC_ASO4/ISOP=0.0 -! -!WC_ASO4/BIOL=0.0 -! -!WC_ASO4/BIOH=0.0 -! -!WC_ASO4/MTBE=0.0 -! -!WC_ASO4/MVK=0.0 -! -!WC_ASO4/MCR=0.0 -! -!WC_ASO4/MGLY=0.0 -! -!WC_ASO4/GLY=0.0 -! -!WC_ASO4/ORA1=0.0 -! -!WC_ASO4/ORA2=0.0 -! -!WC_ASO4/ACID=0.0 -! -!WC_ASO4/UR28=0.0 -! -!WC_ASO4/UR21=0.0 -! -!WC_ASO4/URG2=0.0 -! -!WC_ASO4/UR26=0.0 -! -!WC_ASO4/RPG2=0.0 -! -!WC_ASO4/RP18=0.0 -! -!WC_ASO4/RPG3=0.0 -! -!WC_ASO4/URG4=0.0 -! -!WC_ASO4/UR8=0.0 -! -!WC_ASO4/UR17=0.0 -! -!WC_ASO4/UR7=0.0 -! -!WC_ASO4/RPR3=0.0 -! -!WC_ASO4/URG6=0.0 -! -!WC_ASO4/UR22=0.0 -! -!WC_ASO4/URG7=0.0 -! -!WC_ASO4/RPR4=0.0 -! -!WC_ASO4/RPR7=0.0 -! -!WC_ASO4/RPG7=0.0 -! -!WC_ASO4/URG8=0.0 -! -!WC_ASO4/UR19=0.0 -! -!WC_ASO4/URG9=0.0 -! -!WC_ASO4/AP7=0.0 -! -!WC_ASO4/URG10=0.0 -! -!WC_ASO4/RPR1=0.0 -! -!WC_ASO4/RPR5=0.0 -! -!WC_ASO4/RPR8=0.0 -! -!WC_ASO4/RP10=0.0 -! -!WC_ASO4/RP11=0.0 -! -!WC_ASO4/RP16=0.0 -! -!WC_ASO4/RPRL=0.0 -! -!WC_ASO4/APAN=0.0 -! -!WC_ASO4/PAN1=0.0 -! -!WC_ASO4/PAN2=0.0 -! -!WC_ASO4/PAN3=0.0 -! -!WC_ASO4/PAN4=0.0 -! -!WC_ASO4/PAN6=0.0 -! -!WC_ASO4/PAN7=0.0 -! -!WC_ASO4/PAN8=0.0 -! -!WC_ASO4/PN10=0.0 -! -!WC_ASO4/RO2T=0.0 -! -!WC_ASO4/RO21=0.0 -! -!WC_ASO4/RO25=0.0 -! -!WC_ASO4/WC_O3=0.0 -! -!WC_ASO4/WC_H2O2=0.0 -! -!WC_ASO4/WC_NO=0.0 -! -!WC_ASO4/WC_NO2=0.0 -! -!WC_ASO4/WC_NO3=+KC15*<WC_H2SO4> - PJAC(:,121,92)=+TPK%KC15(:)*PCONC(:,102) -! -!WC_ASO4/WC_N2O5=0.0 -! -!WC_ASO4/WC_HONO=0.0 -! -!WC_ASO4/WC_HNO3=0.0 -! -!WC_ASO4/WC_HNO4=0.0 -! -!WC_ASO4/WC_NH3=0.0 -! -!WC_ASO4/WC_OH=0.0 -! -!WC_ASO4/WC_HO2=0.0 -! -!WC_ASO4/WC_CO2=0.0 -! -!WC_ASO4/WC_SO2=0.0 -! -!WC_ASO4/WC_H2SO4=+KC15*<WC_NO3> - PJAC(:,121,102)=+TPK%KC15(:)*PCONC(:,92) -! -!WC_ASO4/WC_RO21=0.0 -! -!WC_ASO4/WC_RO25=0.0 -! -!WC_ASO4/WC_MEOH=0.0 -! -!WC_ASO4/WC_ETOH=0.0 -! -!WC_ASO4/WC_ALCH=0.0 -! -!WC_ASO4/WC_HCHO=0.0 -! -!WC_ASO4/WC_ALD2=0.0 -! -!WC_ASO4/WC_GLY=0.0 -! -!WC_ASO4/WC_MGLY=0.0 -! -!WC_ASO4/WC_KETL=0.0 -! -!WC_ASO4/WC_ORA1=0.0 -! -!WC_ASO4/WC_ORA2=0.0 -! -!WC_ASO4/WC_ACID=0.0 -! -!WC_ASO4/WC_RP16=0.0 -! -!WC_ASO4/WC_UR21=0.0 -! -!WC_ASO4/WC_UR28=0.0 -! -!WC_ASO4/WC_ACID2=0.0 -! -!WC_ASO4/WC_ASO3=0.0 -! -!WC_ASO4/WC_ASO4=-KC24 - PJAC(:,121,121)=-TPK%KC24(:) -! -!WC_ASO4/WC_ASO5=+KC22*<WC_ASO5>+KC22*<WC_ASO5>+KC22*<WC_ASO5>+KC22*<WC_ASO5> - PJAC(:,121,122)=+TPK%KC22(:)*PCONC(:,122)+TPK%KC22(:)*PCONC(:,122)+TPK%KC22(:)& -&*PCONC(:,122)+TPK%KC22(:)*PCONC(:,122) -! -!WC_ASO4/WC_AHSO5=0.0 -! -!WC_ASO4/WC_AHMS=0.0 -! -!WC_ASO4/WR_O3=0.0 -! -!WC_ASO4/WR_H2O2=0.0 -! -!WC_ASO4/WR_NO=0.0 -! -!WC_ASO4/WR_NO2=0.0 -! -!WC_ASO4/WR_NO3=0.0 -! -!WC_ASO4/WR_N2O5=0.0 -! -!WC_ASO4/WR_HONO=0.0 -! -!WC_ASO4/WR_HNO3=0.0 -! -!WC_ASO4/WR_HNO4=0.0 -! -!WC_ASO4/WR_NH3=0.0 -! -!WC_ASO4/WR_OH=0.0 -! -!WC_ASO4/WR_HO2=0.0 -! -!WC_ASO4/WR_CO2=0.0 -! -!WC_ASO4/WR_SO2=0.0 -! -!WC_ASO4/WR_H2SO4=0.0 -! -!WC_ASO4/WR_RO21=0.0 -! -!WC_ASO4/WR_RO25=0.0 -! -!WC_ASO4/WR_MEOH=0.0 -! -!WC_ASO4/WR_ETOH=0.0 -! -!WC_ASO4/WR_ALCH=0.0 -! -!WC_ASO4/WR_HCHO=0.0 -! -!WC_ASO4/WR_ALD2=0.0 -! -!WC_ASO4/WR_GLY=0.0 -! -!WC_ASO4/WR_MGLY=0.0 -! -!WC_ASO4/WR_KETL=0.0 -! -!WC_ASO4/WR_ORA1=0.0 -! -!WC_ASO4/WR_ORA2=0.0 -! -!WC_ASO4/WR_ACID=0.0 -! -!WC_ASO4/WR_RP16=0.0 -! -!WC_ASO4/WR_UR21=0.0 -! -!WC_ASO4/WR_UR28=0.0 -! -!WC_ASO4/WR_ACID2=0.0 -! -!WC_ASO4/WR_ASO3=0.0 -! -!WC_ASO4/WR_ASO4=0.0 -! -!WC_ASO4/WR_ASO5=0.0 -! -!WC_ASO4/WR_AHSO5=0.0 -! -!WC_ASO4/WR_AHMS=0.0 -! -!WC_ASO5/NO=0.0 -! -!WC_ASO5/NO2=0.0 -! -!WC_ASO5/O3=0.0 -! -!WC_ASO5/HONO=0.0 -! -!WC_ASO5/HNO3=0.0 -! -!WC_ASO5/HNO4=0.0 -! -!WC_ASO5/N2O5=0.0 -! -!WC_ASO5/NO3=0.0 -! -!WC_ASO5/NH3=0.0 -! -!WC_ASO5/HO2=0.0 -! -!WC_ASO5/CO=0.0 -! -!WC_ASO5/H2O2=0.0 -! -!WC_ASO5/SO2=0.0 -! -!WC_ASO5/H2SO4=0.0 -! -!WC_ASO5/OH=0.0 -! -!WC_ASO5/ETHE=0.0 -! -!WC_ASO5/OLEL=0.0 -! -!WC_ASO5/OLEH=0.0 -! -!WC_ASO5/ALKL=0.0 -! -!WC_ASO5/ALKM=0.0 -! -!WC_ASO5/ALKH=0.0 -! -!WC_ASO5/AROH=0.0 -! -!WC_ASO5/AROL=0.0 -! -!WC_ASO5/AROO=0.0 -! -!WC_ASO5/ARAL=0.0 -! -!WC_ASO5/ARAC=0.0 -! -!WC_ASO5/PAH=0.0 -! -!WC_ASO5/HCHO=0.0 -! -!WC_ASO5/ALD2=0.0 -! -!WC_ASO5/KETL=0.0 -! -!WC_ASO5/KETH=0.0 -! -!WC_ASO5/MEOH=0.0 -! -!WC_ASO5/ETOH=0.0 -! -!WC_ASO5/ALCH=0.0 -! -!WC_ASO5/ISOP=0.0 -! -!WC_ASO5/BIOL=0.0 -! -!WC_ASO5/BIOH=0.0 -! -!WC_ASO5/MTBE=0.0 -! -!WC_ASO5/MVK=0.0 -! -!WC_ASO5/MCR=0.0 -! -!WC_ASO5/MGLY=0.0 -! -!WC_ASO5/GLY=0.0 -! -!WC_ASO5/ORA1=0.0 -! -!WC_ASO5/ORA2=0.0 -! -!WC_ASO5/ACID=0.0 -! -!WC_ASO5/UR28=0.0 -! -!WC_ASO5/UR21=0.0 -! -!WC_ASO5/URG2=0.0 -! -!WC_ASO5/UR26=0.0 -! -!WC_ASO5/RPG2=0.0 -! -!WC_ASO5/RP18=0.0 -! -!WC_ASO5/RPG3=0.0 -! -!WC_ASO5/URG4=0.0 -! -!WC_ASO5/UR8=0.0 -! -!WC_ASO5/UR17=0.0 -! -!WC_ASO5/UR7=0.0 -! -!WC_ASO5/RPR3=0.0 -! -!WC_ASO5/URG6=0.0 -! -!WC_ASO5/UR22=0.0 -! -!WC_ASO5/URG7=0.0 -! -!WC_ASO5/RPR4=0.0 -! -!WC_ASO5/RPR7=0.0 -! -!WC_ASO5/RPG7=0.0 -! -!WC_ASO5/URG8=0.0 -! -!WC_ASO5/UR19=0.0 -! -!WC_ASO5/URG9=0.0 -! -!WC_ASO5/AP7=0.0 -! -!WC_ASO5/URG10=0.0 -! -!WC_ASO5/RPR1=0.0 -! -!WC_ASO5/RPR5=0.0 -! -!WC_ASO5/RPR8=0.0 -! -!WC_ASO5/RP10=0.0 -! -!WC_ASO5/RP11=0.0 -! -!WC_ASO5/RP16=0.0 -! -!WC_ASO5/RPRL=0.0 -! -!WC_ASO5/APAN=0.0 -! -!WC_ASO5/PAN1=0.0 -! -!WC_ASO5/PAN2=0.0 -! -!WC_ASO5/PAN3=0.0 -! -!WC_ASO5/PAN4=0.0 -! -!WC_ASO5/PAN6=0.0 -! -!WC_ASO5/PAN7=0.0 -! -!WC_ASO5/PAN8=0.0 -! -!WC_ASO5/PN10=0.0 -! -!WC_ASO5/RO2T=0.0 -! -!WC_ASO5/RO21=0.0 -! -!WC_ASO5/RO25=0.0 -! -!WC_ASO5/WC_O3=0.0 -! -!WC_ASO5/WC_H2O2=0.0 -! -!WC_ASO5/WC_NO=0.0 -! -!WC_ASO5/WC_NO2=0.0 -! -!WC_ASO5/WC_NO3=0.0 -! -!WC_ASO5/WC_N2O5=0.0 -! -!WC_ASO5/WC_HONO=0.0 -! -!WC_ASO5/WC_HNO3=0.0 -! -!WC_ASO5/WC_HNO4=0.0 -! -!WC_ASO5/WC_NH3=0.0 -! -!WC_ASO5/WC_OH=0.0 -! -!WC_ASO5/WC_HO2=-KC21*<WC_ASO5> - PJAC(:,122,99)=-TPK%KC21(:)*PCONC(:,122) -! -!WC_ASO5/WC_CO2=0.0 -! -!WC_ASO5/WC_SO2=0.0 -! -!WC_ASO5/WC_H2SO4=0.0 -! -!WC_ASO5/WC_RO21=0.0 -! -!WC_ASO5/WC_RO25=0.0 -! -!WC_ASO5/WC_MEOH=0.0 -! -!WC_ASO5/WC_ETOH=0.0 -! -!WC_ASO5/WC_ALCH=0.0 -! -!WC_ASO5/WC_HCHO=0.0 -! -!WC_ASO5/WC_ALD2=0.0 -! -!WC_ASO5/WC_GLY=0.0 -! -!WC_ASO5/WC_MGLY=0.0 -! -!WC_ASO5/WC_KETL=0.0 -! -!WC_ASO5/WC_ORA1=0.0 -! -!WC_ASO5/WC_ORA2=0.0 -! -!WC_ASO5/WC_ACID=0.0 -! -!WC_ASO5/WC_RP16=0.0 -! -!WC_ASO5/WC_UR21=0.0 -! -!WC_ASO5/WC_UR28=0.0 -! -!WC_ASO5/WC_ACID2=0.0 -! -!WC_ASO5/WC_ASO3=+KC20*<W_O2> - PJAC(:,122,120)=+TPK%KC20(:)*TPK%W_O2(:) -! -!WC_ASO5/WC_ASO4=0.0 -! -!WC_ASO5/WC_ASO5=-KC21*<WC_HO2>-KC22*<WC_ASO5>-KC22*<WC_ASO5>-KC22*<WC_ASO5>-KC -!22*<WC_ASO5> - PJAC(:,122,122)=-TPK%KC21(:)*PCONC(:,99)-TPK%KC22(:)*PCONC(:,122)-TPK%KC22(:)*& -&PCONC(:,122)-TPK%KC22(:)*PCONC(:,122)-TPK%KC22(:)*PCONC(:,122) -! -!WC_ASO5/WC_AHSO5=0.0 -! -!WC_ASO5/WC_AHMS=0.0 -! -!WC_ASO5/WR_O3=0.0 -! -!WC_ASO5/WR_H2O2=0.0 -! -!WC_ASO5/WR_NO=0.0 -! -!WC_ASO5/WR_NO2=0.0 -! -!WC_ASO5/WR_NO3=0.0 -! -!WC_ASO5/WR_N2O5=0.0 -! -!WC_ASO5/WR_HONO=0.0 -! -!WC_ASO5/WR_HNO3=0.0 -! -!WC_ASO5/WR_HNO4=0.0 -! -!WC_ASO5/WR_NH3=0.0 -! -!WC_ASO5/WR_OH=0.0 -! -!WC_ASO5/WR_HO2=0.0 -! -!WC_ASO5/WR_CO2=0.0 -! -!WC_ASO5/WR_SO2=0.0 -! -!WC_ASO5/WR_H2SO4=0.0 -! -!WC_ASO5/WR_RO21=0.0 -! -!WC_ASO5/WR_RO25=0.0 -! -!WC_ASO5/WR_MEOH=0.0 -! -!WC_ASO5/WR_ETOH=0.0 -! -!WC_ASO5/WR_ALCH=0.0 -! -!WC_ASO5/WR_HCHO=0.0 -! -!WC_ASO5/WR_ALD2=0.0 -! -!WC_ASO5/WR_GLY=0.0 -! -!WC_ASO5/WR_MGLY=0.0 -! -!WC_ASO5/WR_KETL=0.0 -! -!WC_ASO5/WR_ORA1=0.0 -! -!WC_ASO5/WR_ORA2=0.0 -! -!WC_ASO5/WR_ACID=0.0 -! -!WC_ASO5/WR_RP16=0.0 -! -!WC_ASO5/WR_UR21=0.0 -! -!WC_ASO5/WR_UR28=0.0 -! -!WC_ASO5/WR_ACID2=0.0 -! -!WC_ASO5/WR_ASO3=0.0 -! -!WC_ASO5/WR_ASO4=0.0 -! -!WC_ASO5/WR_ASO5=0.0 -! -!WC_ASO5/WR_AHSO5=0.0 -! -!WC_ASO5/WR_AHMS=0.0 -! -!WC_AHSO5/NO=0.0 -! -!WC_AHSO5/NO2=0.0 -! -!WC_AHSO5/O3=0.0 -! -!WC_AHSO5/HONO=0.0 -! -!WC_AHSO5/HNO3=0.0 -! -!WC_AHSO5/HNO4=0.0 -! -!WC_AHSO5/N2O5=0.0 -! -!WC_AHSO5/NO3=0.0 -! -!WC_AHSO5/NH3=0.0 -! -!WC_AHSO5/HO2=0.0 -! -!WC_AHSO5/CO=0.0 -! -!WC_AHSO5/H2O2=0.0 -! -!WC_AHSO5/SO2=0.0 -! -!WC_AHSO5/H2SO4=0.0 -! -!WC_AHSO5/OH=0.0 -! -!WC_AHSO5/ETHE=0.0 -! -!WC_AHSO5/OLEL=0.0 -! -!WC_AHSO5/OLEH=0.0 -! -!WC_AHSO5/ALKL=0.0 -! -!WC_AHSO5/ALKM=0.0 -! -!WC_AHSO5/ALKH=0.0 -! -!WC_AHSO5/AROH=0.0 -! -!WC_AHSO5/AROL=0.0 -! -!WC_AHSO5/AROO=0.0 -! -!WC_AHSO5/ARAL=0.0 -! -!WC_AHSO5/ARAC=0.0 -! -!WC_AHSO5/PAH=0.0 -! -!WC_AHSO5/HCHO=0.0 -! -!WC_AHSO5/ALD2=0.0 -! -!WC_AHSO5/KETL=0.0 -! -!WC_AHSO5/KETH=0.0 -! -!WC_AHSO5/MEOH=0.0 -! -!WC_AHSO5/ETOH=0.0 -! -!WC_AHSO5/ALCH=0.0 -! -!WC_AHSO5/ISOP=0.0 -! -!WC_AHSO5/BIOL=0.0 -! -!WC_AHSO5/BIOH=0.0 -! -!WC_AHSO5/MTBE=0.0 -! -!WC_AHSO5/MVK=0.0 -! -!WC_AHSO5/MCR=0.0 -! -!WC_AHSO5/MGLY=0.0 -! -!WC_AHSO5/GLY=0.0 -! -!WC_AHSO5/ORA1=0.0 -! -!WC_AHSO5/ORA2=0.0 -! -!WC_AHSO5/ACID=0.0 -! -!WC_AHSO5/UR28=0.0 -! -!WC_AHSO5/UR21=0.0 -! -!WC_AHSO5/URG2=0.0 -! -!WC_AHSO5/UR26=0.0 -! -!WC_AHSO5/RPG2=0.0 -! -!WC_AHSO5/RP18=0.0 -! -!WC_AHSO5/RPG3=0.0 -! -!WC_AHSO5/URG4=0.0 -! -!WC_AHSO5/UR8=0.0 -! -!WC_AHSO5/UR17=0.0 -! -!WC_AHSO5/UR7=0.0 -! -!WC_AHSO5/RPR3=0.0 -! -!WC_AHSO5/URG6=0.0 -! -!WC_AHSO5/UR22=0.0 -! -!WC_AHSO5/URG7=0.0 -! -!WC_AHSO5/RPR4=0.0 -! -!WC_AHSO5/RPR7=0.0 -! -!WC_AHSO5/RPG7=0.0 -! -!WC_AHSO5/URG8=0.0 -! -!WC_AHSO5/UR19=0.0 -! -!WC_AHSO5/URG9=0.0 -! -!WC_AHSO5/AP7=0.0 -! -!WC_AHSO5/URG10=0.0 -! -!WC_AHSO5/RPR1=0.0 -! -!WC_AHSO5/RPR5=0.0 -! -!WC_AHSO5/RPR8=0.0 -! -!WC_AHSO5/RP10=0.0 -! -!WC_AHSO5/RP11=0.0 -! -!WC_AHSO5/RP16=0.0 -! -!WC_AHSO5/RPRL=0.0 -! -!WC_AHSO5/APAN=0.0 -! -!WC_AHSO5/PAN1=0.0 -! -!WC_AHSO5/PAN2=0.0 -! -!WC_AHSO5/PAN3=0.0 -! -!WC_AHSO5/PAN4=0.0 -! -!WC_AHSO5/PAN6=0.0 -! -!WC_AHSO5/PAN7=0.0 -! -!WC_AHSO5/PAN8=0.0 -! -!WC_AHSO5/PN10=0.0 -! -!WC_AHSO5/RO2T=0.0 -! -!WC_AHSO5/RO21=0.0 -! -!WC_AHSO5/RO25=0.0 -! -!WC_AHSO5/WC_O3=0.0 -! -!WC_AHSO5/WC_H2O2=0.0 -! -!WC_AHSO5/WC_NO=0.0 -! -!WC_AHSO5/WC_NO2=0.0 -! -!WC_AHSO5/WC_NO3=0.0 -! -!WC_AHSO5/WC_N2O5=0.0 -! -!WC_AHSO5/WC_HONO=0.0 -! -!WC_AHSO5/WC_HNO3=0.0 -! -!WC_AHSO5/WC_HNO4=0.0 -! -!WC_AHSO5/WC_NH3=0.0 -! -!WC_AHSO5/WC_OH=0.0 -! -!WC_AHSO5/WC_HO2=+KC21*<WC_ASO5> - PJAC(:,123,99)=+TPK%KC21(:)*PCONC(:,122) -! -!WC_AHSO5/WC_CO2=0.0 -! -!WC_AHSO5/WC_SO2=-KC23*<WC_AHSO5> - PJAC(:,123,101)=-TPK%KC23(:)*PCONC(:,123) -! -!WC_AHSO5/WC_H2SO4=0.0 -! -!WC_AHSO5/WC_RO21=0.0 -! -!WC_AHSO5/WC_RO25=0.0 -! -!WC_AHSO5/WC_MEOH=0.0 -! -!WC_AHSO5/WC_ETOH=0.0 -! -!WC_AHSO5/WC_ALCH=0.0 -! -!WC_AHSO5/WC_HCHO=0.0 -! -!WC_AHSO5/WC_ALD2=0.0 -! -!WC_AHSO5/WC_GLY=0.0 -! -!WC_AHSO5/WC_MGLY=0.0 -! -!WC_AHSO5/WC_KETL=0.0 -! -!WC_AHSO5/WC_ORA1=0.0 -! -!WC_AHSO5/WC_ORA2=0.0 -! -!WC_AHSO5/WC_ACID=0.0 -! -!WC_AHSO5/WC_RP16=0.0 -! -!WC_AHSO5/WC_UR21=0.0 -! -!WC_AHSO5/WC_UR28=0.0 -! -!WC_AHSO5/WC_ACID2=0.0 -! -!WC_AHSO5/WC_ASO3=0.0 -! -!WC_AHSO5/WC_ASO4=0.0 -! -!WC_AHSO5/WC_ASO5=+KC21*<WC_HO2> - PJAC(:,123,122)=+TPK%KC21(:)*PCONC(:,99) -! -!WC_AHSO5/WC_AHSO5=-KC23*<WC_SO2> - PJAC(:,123,123)=-TPK%KC23(:)*PCONC(:,101) -! -!WC_AHSO5/WC_AHMS=0.0 -! -!WC_AHSO5/WR_O3=0.0 -! -!WC_AHSO5/WR_H2O2=0.0 -! -!WC_AHSO5/WR_NO=0.0 -! -!WC_AHSO5/WR_NO2=0.0 -! -!WC_AHSO5/WR_NO3=0.0 -! -!WC_AHSO5/WR_N2O5=0.0 -! -!WC_AHSO5/WR_HONO=0.0 -! -!WC_AHSO5/WR_HNO3=0.0 -! -!WC_AHSO5/WR_HNO4=0.0 -! -!WC_AHSO5/WR_NH3=0.0 -! -!WC_AHSO5/WR_OH=0.0 -! -!WC_AHSO5/WR_HO2=0.0 -! -!WC_AHSO5/WR_CO2=0.0 -! -!WC_AHSO5/WR_SO2=0.0 -! -!WC_AHSO5/WR_H2SO4=0.0 -! -!WC_AHSO5/WR_RO21=0.0 -! -!WC_AHSO5/WR_RO25=0.0 -! -!WC_AHSO5/WR_MEOH=0.0 -! -!WC_AHSO5/WR_ETOH=0.0 -! -!WC_AHSO5/WR_ALCH=0.0 -! -!WC_AHSO5/WR_HCHO=0.0 -! -!WC_AHSO5/WR_ALD2=0.0 -! -!WC_AHSO5/WR_GLY=0.0 -! -!WC_AHSO5/WR_MGLY=0.0 -! -!WC_AHSO5/WR_KETL=0.0 -! -!WC_AHSO5/WR_ORA1=0.0 -! -!WC_AHSO5/WR_ORA2=0.0 -! -!WC_AHSO5/WR_ACID=0.0 -! -!WC_AHSO5/WR_RP16=0.0 -! -!WC_AHSO5/WR_UR21=0.0 -! -!WC_AHSO5/WR_UR28=0.0 -! -!WC_AHSO5/WR_ACID2=0.0 -! -!WC_AHSO5/WR_ASO3=0.0 -! -!WC_AHSO5/WR_ASO4=0.0 -! -!WC_AHSO5/WR_ASO5=0.0 -! -!WC_AHSO5/WR_AHSO5=0.0 -! -!WC_AHSO5/WR_AHMS=0.0 -! -!WC_AHMS/NO=0.0 -! -!WC_AHMS/NO2=0.0 -! -!WC_AHMS/O3=0.0 -! -!WC_AHMS/HONO=0.0 -! -!WC_AHMS/HNO3=0.0 -! -!WC_AHMS/HNO4=0.0 -! -!WC_AHMS/N2O5=0.0 -! -!WC_AHMS/NO3=0.0 -! -!WC_AHMS/NH3=0.0 -! -!WC_AHMS/HO2=0.0 -! -!WC_AHMS/CO=0.0 -! -!WC_AHMS/H2O2=0.0 -! -!WC_AHMS/SO2=0.0 -! -!WC_AHMS/H2SO4=0.0 -! -!WC_AHMS/OH=0.0 -! -!WC_AHMS/ETHE=0.0 -! -!WC_AHMS/OLEL=0.0 -! -!WC_AHMS/OLEH=0.0 -! -!WC_AHMS/ALKL=0.0 -! -!WC_AHMS/ALKM=0.0 -! -!WC_AHMS/ALKH=0.0 -! -!WC_AHMS/AROH=0.0 -! -!WC_AHMS/AROL=0.0 -! -!WC_AHMS/AROO=0.0 -! -!WC_AHMS/ARAL=0.0 -! -!WC_AHMS/ARAC=0.0 -! -!WC_AHMS/PAH=0.0 -! -!WC_AHMS/HCHO=0.0 -! -!WC_AHMS/ALD2=0.0 -! -!WC_AHMS/KETL=0.0 -! -!WC_AHMS/KETH=0.0 -! -!WC_AHMS/MEOH=0.0 -! -!WC_AHMS/ETOH=0.0 -! -!WC_AHMS/ALCH=0.0 -! -!WC_AHMS/ISOP=0.0 -! -!WC_AHMS/BIOL=0.0 -! -!WC_AHMS/BIOH=0.0 -! -!WC_AHMS/MTBE=0.0 -! -!WC_AHMS/MVK=0.0 -! -!WC_AHMS/MCR=0.0 -! -!WC_AHMS/MGLY=0.0 -! -!WC_AHMS/GLY=0.0 -! -!WC_AHMS/ORA1=0.0 -! -!WC_AHMS/ORA2=0.0 -! -!WC_AHMS/ACID=0.0 -! -!WC_AHMS/UR28=0.0 -! -!WC_AHMS/UR21=0.0 -! -!WC_AHMS/URG2=0.0 -! -!WC_AHMS/UR26=0.0 -! -!WC_AHMS/RPG2=0.0 -! -!WC_AHMS/RP18=0.0 -! -!WC_AHMS/RPG3=0.0 -! -!WC_AHMS/URG4=0.0 -! -!WC_AHMS/UR8=0.0 -! -!WC_AHMS/UR17=0.0 -! -!WC_AHMS/UR7=0.0 -! -!WC_AHMS/RPR3=0.0 -! -!WC_AHMS/URG6=0.0 -! -!WC_AHMS/UR22=0.0 -! -!WC_AHMS/URG7=0.0 -! -!WC_AHMS/RPR4=0.0 -! -!WC_AHMS/RPR7=0.0 -! -!WC_AHMS/RPG7=0.0 -! -!WC_AHMS/URG8=0.0 -! -!WC_AHMS/UR19=0.0 -! -!WC_AHMS/URG9=0.0 -! -!WC_AHMS/AP7=0.0 -! -!WC_AHMS/URG10=0.0 -! -!WC_AHMS/RPR1=0.0 -! -!WC_AHMS/RPR5=0.0 -! -!WC_AHMS/RPR8=0.0 -! -!WC_AHMS/RP10=0.0 -! -!WC_AHMS/RP11=0.0 -! -!WC_AHMS/RP16=0.0 -! -!WC_AHMS/RPRL=0.0 -! -!WC_AHMS/APAN=0.0 -! -!WC_AHMS/PAN1=0.0 -! -!WC_AHMS/PAN2=0.0 -! -!WC_AHMS/PAN3=0.0 -! -!WC_AHMS/PAN4=0.0 -! -!WC_AHMS/PAN6=0.0 -! -!WC_AHMS/PAN7=0.0 -! -!WC_AHMS/PAN8=0.0 -! -!WC_AHMS/PN10=0.0 -! -!WC_AHMS/RO2T=0.0 -! -!WC_AHMS/RO21=0.0 -! -!WC_AHMS/RO25=0.0 -! -!WC_AHMS/WC_O3=0.0 -! -!WC_AHMS/WC_H2O2=0.0 -! -!WC_AHMS/WC_NO=0.0 -! -!WC_AHMS/WC_NO2=0.0 -! -!WC_AHMS/WC_NO3=0.0 -! -!WC_AHMS/WC_N2O5=0.0 -! -!WC_AHMS/WC_HONO=0.0 -! -!WC_AHMS/WC_HNO3=0.0 -! -!WC_AHMS/WC_HNO4=0.0 -! -!WC_AHMS/WC_NH3=0.0 -! -!WC_AHMS/WC_OH=-KC19*<WC_AHMS> - PJAC(:,124,98)=-TPK%KC19(:)*PCONC(:,124) -! -!WC_AHMS/WC_HO2=0.0 -! -!WC_AHMS/WC_CO2=0.0 -! -!WC_AHMS/WC_SO2=+KC17*<WC_HCHO> - PJAC(:,124,101)=+TPK%KC17(:)*PCONC(:,108) -! -!WC_AHMS/WC_H2SO4=0.0 -! -!WC_AHMS/WC_RO21=0.0 -! -!WC_AHMS/WC_RO25=0.0 -! -!WC_AHMS/WC_MEOH=0.0 -! -!WC_AHMS/WC_ETOH=0.0 -! -!WC_AHMS/WC_ALCH=0.0 -! -!WC_AHMS/WC_HCHO=+KC17*<WC_SO2> - PJAC(:,124,108)=+TPK%KC17(:)*PCONC(:,101) -! -!WC_AHMS/WC_ALD2=0.0 -! -!WC_AHMS/WC_GLY=0.0 -! -!WC_AHMS/WC_MGLY=0.0 -! -!WC_AHMS/WC_KETL=0.0 -! -!WC_AHMS/WC_ORA1=0.0 -! -!WC_AHMS/WC_ORA2=0.0 -! -!WC_AHMS/WC_ACID=0.0 -! -!WC_AHMS/WC_RP16=0.0 -! -!WC_AHMS/WC_UR21=0.0 -! -!WC_AHMS/WC_UR28=0.0 -! -!WC_AHMS/WC_ACID2=0.0 -! -!WC_AHMS/WC_ASO3=0.0 -! -!WC_AHMS/WC_ASO4=0.0 -! -!WC_AHMS/WC_ASO5=0.0 -! -!WC_AHMS/WC_AHSO5=0.0 -! -!WC_AHMS/WC_AHMS=-KC18-KC19*<WC_OH> - PJAC(:,124,124)=-TPK%KC18(:)-TPK%KC19(:)*PCONC(:,98) -! -!WC_AHMS/WR_O3=0.0 -! -!WC_AHMS/WR_H2O2=0.0 -! -!WC_AHMS/WR_NO=0.0 -! -!WC_AHMS/WR_NO2=0.0 -! -!WC_AHMS/WR_NO3=0.0 -! -!WC_AHMS/WR_N2O5=0.0 -! -!WC_AHMS/WR_HONO=0.0 -! -!WC_AHMS/WR_HNO3=0.0 -! -!WC_AHMS/WR_HNO4=0.0 -! -!WC_AHMS/WR_NH3=0.0 -! -!WC_AHMS/WR_OH=0.0 -! -!WC_AHMS/WR_HO2=0.0 -! -!WC_AHMS/WR_CO2=0.0 -! -!WC_AHMS/WR_SO2=0.0 -! -!WC_AHMS/WR_H2SO4=0.0 -! -!WC_AHMS/WR_RO21=0.0 -! -!WC_AHMS/WR_RO25=0.0 -! -!WC_AHMS/WR_MEOH=0.0 -! -!WC_AHMS/WR_ETOH=0.0 -! -!WC_AHMS/WR_ALCH=0.0 -! -!WC_AHMS/WR_HCHO=0.0 -! -!WC_AHMS/WR_ALD2=0.0 -! -!WC_AHMS/WR_GLY=0.0 -! -!WC_AHMS/WR_MGLY=0.0 -! -!WC_AHMS/WR_KETL=0.0 -! -!WC_AHMS/WR_ORA1=0.0 -! -!WC_AHMS/WR_ORA2=0.0 -! -!WC_AHMS/WR_ACID=0.0 -! -!WC_AHMS/WR_RP16=0.0 -! -!WC_AHMS/WR_UR21=0.0 -! -!WC_AHMS/WR_UR28=0.0 -! -!WC_AHMS/WR_ACID2=0.0 -! -!WC_AHMS/WR_ASO3=0.0 -! -!WC_AHMS/WR_ASO4=0.0 -! -!WC_AHMS/WR_ASO5=0.0 -! -!WC_AHMS/WR_AHSO5=0.0 -! -!WC_AHMS/WR_AHMS=0.0 -! -!WR_O3/NO=0.0 -! -!WR_O3/NO2=0.0 -! -!WR_O3/O3=+KTR1 - PJAC(:,125,3)=+TPK%KTR1(:) -! -!WR_O3/HONO=0.0 -! -!WR_O3/HNO3=0.0 -! -!WR_O3/HNO4=0.0 -! -!WR_O3/N2O5=0.0 -! -!WR_O3/NO3=0.0 -! -!WR_O3/NH3=0.0 -! -!WR_O3/HO2=0.0 -! -!WR_O3/CO=0.0 -! -!WR_O3/H2O2=0.0 -! -!WR_O3/SO2=0.0 -! -!WR_O3/H2SO4=0.0 -! -!WR_O3/OH=0.0 -! -!WR_O3/ETHE=0.0 -! -!WR_O3/OLEL=0.0 -! -!WR_O3/OLEH=0.0 -! -!WR_O3/ALKL=0.0 -! -!WR_O3/ALKM=0.0 -! -!WR_O3/ALKH=0.0 -! -!WR_O3/AROH=0.0 -! -!WR_O3/AROL=0.0 -! -!WR_O3/AROO=0.0 -! -!WR_O3/ARAL=0.0 -! -!WR_O3/ARAC=0.0 -! -!WR_O3/PAH=0.0 -! -!WR_O3/HCHO=0.0 -! -!WR_O3/ALD2=0.0 -! -!WR_O3/KETL=0.0 -! -!WR_O3/KETH=0.0 -! -!WR_O3/MEOH=0.0 -! -!WR_O3/ETOH=0.0 -! -!WR_O3/ALCH=0.0 -! -!WR_O3/ISOP=0.0 -! -!WR_O3/BIOL=0.0 -! -!WR_O3/BIOH=0.0 -! -!WR_O3/MTBE=0.0 -! -!WR_O3/MVK=0.0 -! -!WR_O3/MCR=0.0 -! -!WR_O3/MGLY=0.0 -! -!WR_O3/GLY=0.0 -! -!WR_O3/ORA1=0.0 -! -!WR_O3/ORA2=0.0 -! -!WR_O3/ACID=0.0 -! -!WR_O3/UR28=0.0 -! -!WR_O3/UR21=0.0 -! -!WR_O3/URG2=0.0 -! -!WR_O3/UR26=0.0 -! -!WR_O3/RPG2=0.0 -! -!WR_O3/RP18=0.0 -! -!WR_O3/RPG3=0.0 -! -!WR_O3/URG4=0.0 -! -!WR_O3/UR8=0.0 -! -!WR_O3/UR17=0.0 -! -!WR_O3/UR7=0.0 -! -!WR_O3/RPR3=0.0 -! -!WR_O3/URG6=0.0 -! -!WR_O3/UR22=0.0 -! -!WR_O3/URG7=0.0 -! -!WR_O3/RPR4=0.0 -! -!WR_O3/RPR7=0.0 -! -!WR_O3/RPG7=0.0 -! -!WR_O3/URG8=0.0 -! -!WR_O3/UR19=0.0 -! -!WR_O3/URG9=0.0 -! -!WR_O3/AP7=0.0 -! -!WR_O3/URG10=0.0 -! -!WR_O3/RPR1=0.0 -! -!WR_O3/RPR5=0.0 -! -!WR_O3/RPR8=0.0 -! -!WR_O3/RP10=0.0 -! -!WR_O3/RP11=0.0 -! -!WR_O3/RP16=0.0 -! -!WR_O3/RPRL=0.0 -! -!WR_O3/APAN=0.0 -! -!WR_O3/PAN1=0.0 -! -!WR_O3/PAN2=0.0 -! -!WR_O3/PAN3=0.0 -! -!WR_O3/PAN4=0.0 -! -!WR_O3/PAN6=0.0 -! -!WR_O3/PAN7=0.0 -! -!WR_O3/PAN8=0.0 -! -!WR_O3/PN10=0.0 -! -!WR_O3/RO2T=0.0 -! -!WR_O3/RO21=0.0 -! -!WR_O3/RO25=0.0 -! -!WR_O3/WC_O3=0.0 -! -!WR_O3/WC_H2O2=0.0 -! -!WR_O3/WC_NO=0.0 -! -!WR_O3/WC_NO2=0.0 -! -!WR_O3/WC_NO3=0.0 -! -!WR_O3/WC_N2O5=0.0 -! -!WR_O3/WC_HONO=0.0 -! -!WR_O3/WC_HNO3=0.0 -! -!WR_O3/WC_HNO4=0.0 -! -!WR_O3/WC_NH3=0.0 -! -!WR_O3/WC_OH=0.0 -! -!WR_O3/WC_HO2=0.0 -! -!WR_O3/WC_CO2=0.0 -! -!WR_O3/WC_SO2=0.0 -! -!WR_O3/WC_H2SO4=0.0 -! -!WR_O3/WC_RO21=0.0 -! -!WR_O3/WC_RO25=0.0 -! -!WR_O3/WC_MEOH=0.0 -! -!WR_O3/WC_ETOH=0.0 -! -!WR_O3/WC_ALCH=0.0 -! -!WR_O3/WC_HCHO=0.0 -! -!WR_O3/WC_ALD2=0.0 -! -!WR_O3/WC_GLY=0.0 -! -!WR_O3/WC_MGLY=0.0 -! -!WR_O3/WC_KETL=0.0 -! -!WR_O3/WC_ORA1=0.0 -! -!WR_O3/WC_ORA2=0.0 -! -!WR_O3/WC_ACID=0.0 -! -!WR_O3/WC_RP16=0.0 -! -!WR_O3/WC_UR21=0.0 -! -!WR_O3/WC_UR28=0.0 -! -!WR_O3/WC_ACID2=0.0 -! -!WR_O3/WC_ASO3=0.0 -! -!WR_O3/WC_ASO4=0.0 -! -!WR_O3/WC_ASO5=0.0 -! -!WR_O3/WC_AHSO5=0.0 -! -!WR_O3/WC_AHMS=0.0 -! -!WR_O3/WR_O3=-KTR32-KR6*<WR_HO2>-KR25*<WR_SO2> - PJAC(:,125,125)=-TPK%KTR32(:)-TPK%KR6(:)*PCONC(:,136)-TPK%KR25(:)*PCONC(:,138) -! -!WR_O3/WR_H2O2=0.0 -! -!WR_O3/WR_NO=0.0 -! -!WR_O3/WR_NO2=0.0 -! -!WR_O3/WR_NO3=0.0 -! -!WR_O3/WR_N2O5=0.0 -! -!WR_O3/WR_HONO=0.0 -! -!WR_O3/WR_HNO3=0.0 -! -!WR_O3/WR_HNO4=0.0 -! -!WR_O3/WR_NH3=0.0 -! -!WR_O3/WR_OH=0.0 -! -!WR_O3/WR_HO2=-KR6*<WR_O3> - PJAC(:,125,136)=-TPK%KR6(:)*PCONC(:,125) -! -!WR_O3/WR_CO2=0.0 -! -!WR_O3/WR_SO2=-KR25*<WR_O3> - PJAC(:,125,138)=-TPK%KR25(:)*PCONC(:,125) -! -!WR_O3/WR_H2SO4=0.0 -! -!WR_O3/WR_RO21=0.0 -! -!WR_O3/WR_RO25=0.0 -! -!WR_O3/WR_MEOH=0.0 -! -!WR_O3/WR_ETOH=0.0 -! -!WR_O3/WR_ALCH=0.0 -! -!WR_O3/WR_HCHO=0.0 -! -!WR_O3/WR_ALD2=0.0 -! -!WR_O3/WR_GLY=0.0 -! -!WR_O3/WR_MGLY=0.0 -! -!WR_O3/WR_KETL=0.0 -! -!WR_O3/WR_ORA1=0.0 -! -!WR_O3/WR_ORA2=0.0 -! -!WR_O3/WR_ACID=0.0 -! -!WR_O3/WR_RP16=0.0 -! -!WR_O3/WR_UR21=0.0 -! -!WR_O3/WR_UR28=0.0 -! -!WR_O3/WR_ACID2=0.0 -! -!WR_O3/WR_ASO3=0.0 -! -!WR_O3/WR_ASO4=0.0 -! -!WR_O3/WR_ASO5=0.0 -! -!WR_O3/WR_AHSO5=0.0 -! -!WR_O3/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ24 -! -SUBROUTINE SUBJ25 -! -!Indices 126 a 130 -! -! -!WR_H2O2/NO=0.0 -! -!WR_H2O2/NO2=0.0 -! -!WR_H2O2/O3=0.0 -! -!WR_H2O2/HONO=0.0 -! -!WR_H2O2/HNO3=0.0 -! -!WR_H2O2/HNO4=0.0 -! -!WR_H2O2/N2O5=0.0 -! -!WR_H2O2/NO3=0.0 -! -!WR_H2O2/NH3=0.0 -! -!WR_H2O2/HO2=0.0 -! -!WR_H2O2/CO=0.0 -! -!WR_H2O2/H2O2=+KTR2 - PJAC(:,126,12)=+TPK%KTR2(:) -! -!WR_H2O2/SO2=0.0 -! -!WR_H2O2/H2SO4=0.0 -! -!WR_H2O2/OH=0.0 -! -!WR_H2O2/ETHE=0.0 -! -!WR_H2O2/OLEL=0.0 -! -!WR_H2O2/OLEH=0.0 -! -!WR_H2O2/ALKL=0.0 -! -!WR_H2O2/ALKM=0.0 -! -!WR_H2O2/ALKH=0.0 -! -!WR_H2O2/AROH=0.0 -! -!WR_H2O2/AROL=0.0 -! -!WR_H2O2/AROO=0.0 -! -!WR_H2O2/ARAL=0.0 -! -!WR_H2O2/ARAC=0.0 -! -!WR_H2O2/PAH=0.0 -! -!WR_H2O2/HCHO=0.0 -! -!WR_H2O2/ALD2=0.0 -! -!WR_H2O2/KETL=0.0 -! -!WR_H2O2/KETH=0.0 -! -!WR_H2O2/MEOH=0.0 -! -!WR_H2O2/ETOH=0.0 -! -!WR_H2O2/ALCH=0.0 -! -!WR_H2O2/ISOP=0.0 -! -!WR_H2O2/BIOL=0.0 -! -!WR_H2O2/BIOH=0.0 -! -!WR_H2O2/MTBE=0.0 -! -!WR_H2O2/MVK=0.0 -! -!WR_H2O2/MCR=0.0 -! -!WR_H2O2/MGLY=0.0 -! -!WR_H2O2/GLY=0.0 -! -!WR_H2O2/ORA1=0.0 -! -!WR_H2O2/ORA2=0.0 -! -!WR_H2O2/ACID=0.0 -! -!WR_H2O2/UR28=0.0 -! -!WR_H2O2/UR21=0.0 -! -!WR_H2O2/URG2=0.0 -! -!WR_H2O2/UR26=0.0 -! -!WR_H2O2/RPG2=0.0 -! -!WR_H2O2/RP18=0.0 -! -!WR_H2O2/RPG3=0.0 -! -!WR_H2O2/URG4=0.0 -! -!WR_H2O2/UR8=0.0 -! -!WR_H2O2/UR17=0.0 -! -!WR_H2O2/UR7=0.0 -! -!WR_H2O2/RPR3=0.0 -! -!WR_H2O2/URG6=0.0 -! -!WR_H2O2/UR22=0.0 -! -!WR_H2O2/URG7=0.0 -! -!WR_H2O2/RPR4=0.0 -! -!WR_H2O2/RPR7=0.0 -! -!WR_H2O2/RPG7=0.0 -! -!WR_H2O2/URG8=0.0 -! -!WR_H2O2/UR19=0.0 -! -!WR_H2O2/URG9=0.0 -! -!WR_H2O2/AP7=0.0 -! -!WR_H2O2/URG10=0.0 -! -!WR_H2O2/RPR1=0.0 -! -!WR_H2O2/RPR5=0.0 -! -!WR_H2O2/RPR8=0.0 -! -!WR_H2O2/RP10=0.0 -! -!WR_H2O2/RP11=0.0 -! -!WR_H2O2/RP16=0.0 -! -!WR_H2O2/RPRL=0.0 -! -!WR_H2O2/APAN=0.0 -! -!WR_H2O2/PAN1=0.0 -! -!WR_H2O2/PAN2=0.0 -! -!WR_H2O2/PAN3=0.0 -! -!WR_H2O2/PAN4=0.0 -! -!WR_H2O2/PAN6=0.0 -! -!WR_H2O2/PAN7=0.0 -! -!WR_H2O2/PAN8=0.0 -! -!WR_H2O2/PN10=0.0 -! -!WR_H2O2/RO2T=0.0 -! -!WR_H2O2/RO21=0.0 -! -!WR_H2O2/RO25=0.0 -! -!WR_H2O2/WC_O3=0.0 -! -!WR_H2O2/WC_H2O2=0.0 -! -!WR_H2O2/WC_NO=0.0 -! -!WR_H2O2/WC_NO2=0.0 -! -!WR_H2O2/WC_NO3=0.0 -! -!WR_H2O2/WC_N2O5=0.0 -! -!WR_H2O2/WC_HONO=0.0 -! -!WR_H2O2/WC_HNO3=0.0 -! -!WR_H2O2/WC_HNO4=0.0 -! -!WR_H2O2/WC_NH3=0.0 -! -!WR_H2O2/WC_OH=0.0 -! -!WR_H2O2/WC_HO2=0.0 -! -!WR_H2O2/WC_CO2=0.0 -! -!WR_H2O2/WC_SO2=0.0 -! -!WR_H2O2/WC_H2SO4=0.0 -! -!WR_H2O2/WC_RO21=0.0 -! -!WR_H2O2/WC_RO25=0.0 -! -!WR_H2O2/WC_MEOH=0.0 -! -!WR_H2O2/WC_ETOH=0.0 -! -!WR_H2O2/WC_ALCH=0.0 -! -!WR_H2O2/WC_HCHO=0.0 -! -!WR_H2O2/WC_ALD2=0.0 -! -!WR_H2O2/WC_GLY=0.0 -! -!WR_H2O2/WC_MGLY=0.0 -! -!WR_H2O2/WC_KETL=0.0 -! -!WR_H2O2/WC_ORA1=0.0 -! -!WR_H2O2/WC_ORA2=0.0 -! -!WR_H2O2/WC_ACID=0.0 -! -!WR_H2O2/WC_RP16=0.0 -! -!WR_H2O2/WC_UR21=0.0 -! -!WR_H2O2/WC_UR28=0.0 -! -!WR_H2O2/WC_ACID2=0.0 -! -!WR_H2O2/WC_ASO3=0.0 -! -!WR_H2O2/WC_ASO4=0.0 -! -!WR_H2O2/WC_ASO5=0.0 -! -!WR_H2O2/WC_AHSO5=0.0 -! -!WR_H2O2/WC_AHMS=0.0 -! -!WR_H2O2/WR_O3=0.0 -! -!WR_H2O2/WR_H2O2=-KTR33-KR1-KR4*<WR_OH>-KR26*<WR_SO2> - PJAC(:,126,126)=-TPK%KTR33(:)-TPK%KR1(:)-TPK%KR4(:)*PCONC(:,135)-TPK%KR26(:)*P& -&CONC(:,138) -! -!WR_H2O2/WR_NO=0.0 -! -!WR_H2O2/WR_NO2=0.0 -! -!WR_H2O2/WR_NO3=0.0 -! -!WR_H2O2/WR_N2O5=0.0 -! -!WR_H2O2/WR_HONO=0.0 -! -!WR_H2O2/WR_HNO3=0.0 -! -!WR_H2O2/WR_HNO4=0.0 -! -!WR_H2O2/WR_NH3=0.0 -! -!WR_H2O2/WR_OH=+KR2*<WR_OH>+KR2*<WR_OH>-KR4*<WR_H2O2>+KR37*<WR_KETL>+0.5*KR39*< -!WR_ORA2>+0.29*KR41*<WR_ACID>+0.3*KR43*<WR_UR21>+0.45*KR45*<WR_RP16> - PJAC(:,126,135)=+TPK%KR2(:)*PCONC(:,135)+TPK%KR2(:)*PCONC(:,135)-TPK%KR4(:)*PC& -&ONC(:,126)+TPK%KR37(:)*PCONC(:,149)+0.5*TPK%KR39(:)*PCONC(:,151)+0.29*TPK%KR41& -&(:)*PCONC(:,152)+0.3*TPK%KR43(:)*PCONC(:,154)+0.45*TPK%KR45(:)*PCONC(:,153) -! -!WR_H2O2/WR_HO2=+KR5*<WR_HO2>+KR5*<WR_HO2> - PJAC(:,126,136)=+TPK%KR5(:)*PCONC(:,136)+TPK%KR5(:)*PCONC(:,136) -! -!WR_H2O2/WR_CO2=0.0 -! -!WR_H2O2/WR_SO2=-KR26*<WR_H2O2> - PJAC(:,126,138)=-TPK%KR26(:)*PCONC(:,126) -! -!WR_H2O2/WR_H2SO4=0.0 -! -!WR_H2O2/WR_RO21=0.0 -! -!WR_H2O2/WR_RO25=+KR29*<WR_RO25>+KR29*<WR_RO25> - PJAC(:,126,141)=+TPK%KR29(:)*PCONC(:,141)+TPK%KR29(:)*PCONC(:,141) -! -!WR_H2O2/WR_MEOH=0.0 -! -!WR_H2O2/WR_ETOH=0.0 -! -!WR_H2O2/WR_ALCH=0.0 -! -!WR_H2O2/WR_HCHO=0.0 -! -!WR_H2O2/WR_ALD2=0.0 -! -!WR_H2O2/WR_GLY=0.0 -! -!WR_H2O2/WR_MGLY=0.0 -! -!WR_H2O2/WR_KETL=+KR37*<WR_OH> - PJAC(:,126,149)=+TPK%KR37(:)*PCONC(:,135) -! -!WR_H2O2/WR_ORA1=0.0 -! -!WR_H2O2/WR_ORA2=+0.5*KR39*<WR_OH> - PJAC(:,126,151)=+0.5*TPK%KR39(:)*PCONC(:,135) -! -!WR_H2O2/WR_ACID=+0.29*KR41*<WR_OH> - PJAC(:,126,152)=+0.29*TPK%KR41(:)*PCONC(:,135) -! -!WR_H2O2/WR_RP16=+0.45*KR45*<WR_OH> - PJAC(:,126,153)=+0.45*TPK%KR45(:)*PCONC(:,135) -! -!WR_H2O2/WR_UR21=+0.3*KR43*<WR_OH> - PJAC(:,126,154)=+0.3*TPK%KR43(:)*PCONC(:,135) -! -!WR_H2O2/WR_UR28=0.0 -! -!WR_H2O2/WR_ACID2=0.0 -! -!WR_H2O2/WR_ASO3=0.0 -! -!WR_H2O2/WR_ASO4=0.0 -! -!WR_H2O2/WR_ASO5=0.0 -! -!WR_H2O2/WR_AHSO5=0.0 -! -!WR_H2O2/WR_AHMS=0.0 -! -!WR_NO/NO=+KTR3 - PJAC(:,127,1)=+TPK%KTR3(:) -! -!WR_NO/NO2=0.0 -! -!WR_NO/O3=0.0 -! -!WR_NO/HONO=0.0 -! -!WR_NO/HNO3=0.0 -! -!WR_NO/HNO4=0.0 -! -!WR_NO/N2O5=0.0 -! -!WR_NO/NO3=0.0 -! -!WR_NO/NH3=0.0 -! -!WR_NO/HO2=0.0 -! -!WR_NO/CO=0.0 -! -!WR_NO/H2O2=0.0 -! -!WR_NO/SO2=0.0 -! -!WR_NO/H2SO4=0.0 -! -!WR_NO/OH=0.0 -! -!WR_NO/ETHE=0.0 -! -!WR_NO/OLEL=0.0 -! -!WR_NO/OLEH=0.0 -! -!WR_NO/ALKL=0.0 -! -!WR_NO/ALKM=0.0 -! -!WR_NO/ALKH=0.0 -! -!WR_NO/AROH=0.0 -! -!WR_NO/AROL=0.0 -! -!WR_NO/AROO=0.0 -! -!WR_NO/ARAL=0.0 -! -!WR_NO/ARAC=0.0 -! -!WR_NO/PAH=0.0 -! -!WR_NO/HCHO=0.0 -! -!WR_NO/ALD2=0.0 -! -!WR_NO/KETL=0.0 -! -!WR_NO/KETH=0.0 -! -!WR_NO/MEOH=0.0 -! -!WR_NO/ETOH=0.0 -! -!WR_NO/ALCH=0.0 -! -!WR_NO/ISOP=0.0 -! -!WR_NO/BIOL=0.0 -! -!WR_NO/BIOH=0.0 -! -!WR_NO/MTBE=0.0 -! -!WR_NO/MVK=0.0 -! -!WR_NO/MCR=0.0 -! -!WR_NO/MGLY=0.0 -! -!WR_NO/GLY=0.0 -! -!WR_NO/ORA1=0.0 -! -!WR_NO/ORA2=0.0 -! -!WR_NO/ACID=0.0 -! -!WR_NO/UR28=0.0 -! -!WR_NO/UR21=0.0 -! -!WR_NO/URG2=0.0 -! -!WR_NO/UR26=0.0 -! -!WR_NO/RPG2=0.0 -! -!WR_NO/RP18=0.0 -! -!WR_NO/RPG3=0.0 -! -!WR_NO/URG4=0.0 -! -!WR_NO/UR8=0.0 -! -!WR_NO/UR17=0.0 -! -!WR_NO/UR7=0.0 -! -!WR_NO/RPR3=0.0 -! -!WR_NO/URG6=0.0 -! -!WR_NO/UR22=0.0 -! -!WR_NO/URG7=0.0 -! -!WR_NO/RPR4=0.0 -! -!WR_NO/RPR7=0.0 -! -!WR_NO/RPG7=0.0 -! -!WR_NO/URG8=0.0 -! -!WR_NO/UR19=0.0 -! -!WR_NO/URG9=0.0 -! -!WR_NO/AP7=0.0 -! -!WR_NO/URG10=0.0 -! -!WR_NO/RPR1=0.0 -! -!WR_NO/RPR5=0.0 -! -!WR_NO/RPR8=0.0 -! -!WR_NO/RP10=0.0 -! -!WR_NO/RP11=0.0 -! -!WR_NO/RP16=0.0 -! -!WR_NO/RPRL=0.0 -! -!WR_NO/APAN=0.0 -! -!WR_NO/PAN1=0.0 -! -!WR_NO/PAN2=0.0 -! -!WR_NO/PAN3=0.0 -! -!WR_NO/PAN4=0.0 -! -!WR_NO/PAN6=0.0 -! -!WR_NO/PAN7=0.0 -! -!WR_NO/PAN8=0.0 -! -!WR_NO/PN10=0.0 -! -!WR_NO/RO2T=0.0 -! -!WR_NO/RO21=0.0 -! -!WR_NO/RO25=0.0 -! -!WR_NO/WC_O3=0.0 -! -!WR_NO/WC_H2O2=0.0 -! -!WR_NO/WC_NO=0.0 -! -!WR_NO/WC_NO2=0.0 -! -!WR_NO/WC_NO3=0.0 -! -!WR_NO/WC_N2O5=0.0 -! -!WR_NO/WC_HONO=0.0 -! -!WR_NO/WC_HNO3=0.0 -! -!WR_NO/WC_HNO4=0.0 -! -!WR_NO/WC_NH3=0.0 -! -!WR_NO/WC_OH=0.0 -! -!WR_NO/WC_HO2=0.0 -! -!WR_NO/WC_CO2=0.0 -! -!WR_NO/WC_SO2=0.0 -! -!WR_NO/WC_H2SO4=0.0 -! -!WR_NO/WC_RO21=0.0 -! -!WR_NO/WC_RO25=0.0 -! -!WR_NO/WC_MEOH=0.0 -! -!WR_NO/WC_ETOH=0.0 -! -!WR_NO/WC_ALCH=0.0 -! -!WR_NO/WC_HCHO=0.0 -! -!WR_NO/WC_ALD2=0.0 -! -!WR_NO/WC_GLY=0.0 -! -!WR_NO/WC_MGLY=0.0 -! -!WR_NO/WC_KETL=0.0 -! -!WR_NO/WC_ORA1=0.0 -! -!WR_NO/WC_ORA2=0.0 -! -!WR_NO/WC_ACID=0.0 -! -!WR_NO/WC_RP16=0.0 -! -!WR_NO/WC_UR21=0.0 -! -!WR_NO/WC_UR28=0.0 -! -!WR_NO/WC_ACID2=0.0 -! -!WR_NO/WC_ASO3=0.0 -! -!WR_NO/WC_ASO4=0.0 -! -!WR_NO/WC_ASO5=0.0 -! -!WR_NO/WC_AHSO5=0.0 -! -!WR_NO/WC_AHMS=0.0 -! -!WR_NO/WR_O3=0.0 -! -!WR_NO/WR_H2O2=0.0 -! -!WR_NO/WR_NO=-KTR34 - PJAC(:,127,127)=-TPK%KTR34(:) -! -!WR_NO/WR_NO2=0.0 -! -!WR_NO/WR_NO3=0.0 -! -!WR_NO/WR_N2O5=0.0 -! -!WR_NO/WR_HONO=0.0 -! -!WR_NO/WR_HNO3=0.0 -! -!WR_NO/WR_HNO4=0.0 -! -!WR_NO/WR_NH3=0.0 -! -!WR_NO/WR_OH=0.0 -! -!WR_NO/WR_HO2=0.0 -! -!WR_NO/WR_CO2=0.0 -! -!WR_NO/WR_SO2=0.0 -! -!WR_NO/WR_H2SO4=0.0 -! -!WR_NO/WR_RO21=0.0 -! -!WR_NO/WR_RO25=0.0 -! -!WR_NO/WR_MEOH=0.0 -! -!WR_NO/WR_ETOH=0.0 -! -!WR_NO/WR_ALCH=0.0 -! -!WR_NO/WR_HCHO=0.0 -! -!WR_NO/WR_ALD2=0.0 -! -!WR_NO/WR_GLY=0.0 -! -!WR_NO/WR_MGLY=0.0 -! -!WR_NO/WR_KETL=0.0 -! -!WR_NO/WR_ORA1=0.0 -! -!WR_NO/WR_ORA2=0.0 -! -!WR_NO/WR_ACID=0.0 -! -!WR_NO/WR_RP16=0.0 -! -!WR_NO/WR_UR21=0.0 -! -!WR_NO/WR_UR28=0.0 -! -!WR_NO/WR_ACID2=0.0 -! -!WR_NO/WR_ASO3=0.0 -! -!WR_NO/WR_ASO4=0.0 -! -!WR_NO/WR_ASO5=0.0 -! -!WR_NO/WR_AHSO5=0.0 -! -!WR_NO/WR_AHMS=0.0 -! -!WR_NO2/NO=0.0 -! -!WR_NO2/NO2=+KTR4 - PJAC(:,128,2)=+TPK%KTR4(:) -! -!WR_NO2/O3=0.0 -! -!WR_NO2/HONO=0.0 -! -!WR_NO2/HNO3=0.0 -! -!WR_NO2/HNO4=0.0 -! -!WR_NO2/N2O5=0.0 -! -!WR_NO2/NO3=0.0 -! -!WR_NO2/NH3=0.0 -! -!WR_NO2/HO2=0.0 -! -!WR_NO2/CO=0.0 -! -!WR_NO2/H2O2=0.0 -! -!WR_NO2/SO2=0.0 -! -!WR_NO2/H2SO4=0.0 -! -!WR_NO2/OH=0.0 -! -!WR_NO2/ETHE=0.0 -! -!WR_NO2/OLEL=0.0 -! -!WR_NO2/OLEH=0.0 -! -!WR_NO2/ALKL=0.0 -! -!WR_NO2/ALKM=0.0 -! -!WR_NO2/ALKH=0.0 -! -!WR_NO2/AROH=0.0 -! -!WR_NO2/AROL=0.0 -! -!WR_NO2/AROO=0.0 -! -!WR_NO2/ARAL=0.0 -! -!WR_NO2/ARAC=0.0 -! -!WR_NO2/PAH=0.0 -! -!WR_NO2/HCHO=0.0 -! -!WR_NO2/ALD2=0.0 -! -!WR_NO2/KETL=0.0 -! -!WR_NO2/KETH=0.0 -! -!WR_NO2/MEOH=0.0 -! -!WR_NO2/ETOH=0.0 -! -!WR_NO2/ALCH=0.0 -! -!WR_NO2/ISOP=0.0 -! -!WR_NO2/BIOL=0.0 -! -!WR_NO2/BIOH=0.0 -! -!WR_NO2/MTBE=0.0 -! -!WR_NO2/MVK=0.0 -! -!WR_NO2/MCR=0.0 -! -!WR_NO2/MGLY=0.0 -! -!WR_NO2/GLY=0.0 -! -!WR_NO2/ORA1=0.0 -! -!WR_NO2/ORA2=0.0 -! -!WR_NO2/ACID=0.0 -! -!WR_NO2/UR28=0.0 -! -!WR_NO2/UR21=0.0 -! -!WR_NO2/URG2=0.0 -! -!WR_NO2/UR26=0.0 -! -!WR_NO2/RPG2=0.0 -! -!WR_NO2/RP18=0.0 -! -!WR_NO2/RPG3=0.0 -! -!WR_NO2/URG4=0.0 -! -!WR_NO2/UR8=0.0 -! -!WR_NO2/UR17=0.0 -! -!WR_NO2/UR7=0.0 -! -!WR_NO2/RPR3=0.0 -! -!WR_NO2/URG6=0.0 -! -!WR_NO2/UR22=0.0 -! -!WR_NO2/URG7=0.0 -! -!WR_NO2/RPR4=0.0 -! -!WR_NO2/RPR7=0.0 -! -!WR_NO2/RPG7=0.0 -! -!WR_NO2/URG8=0.0 -! -!WR_NO2/UR19=0.0 -! -!WR_NO2/URG9=0.0 -! -!WR_NO2/AP7=0.0 -! -!WR_NO2/URG10=0.0 -! -!WR_NO2/RPR1=0.0 -! -!WR_NO2/RPR5=0.0 -! -!WR_NO2/RPR8=0.0 -! -!WR_NO2/RP10=0.0 -! -!WR_NO2/RP11=0.0 -! -!WR_NO2/RP16=0.0 -! -!WR_NO2/RPRL=0.0 -! -!WR_NO2/APAN=0.0 -! -!WR_NO2/PAN1=0.0 -! -!WR_NO2/PAN2=0.0 -! -!WR_NO2/PAN3=0.0 -! -!WR_NO2/PAN4=0.0 -! -!WR_NO2/PAN6=0.0 -! -!WR_NO2/PAN7=0.0 -! -!WR_NO2/PAN8=0.0 -! -!WR_NO2/PN10=0.0 -! -!WR_NO2/RO2T=0.0 -! -!WR_NO2/RO21=0.0 -! -!WR_NO2/RO25=0.0 -! -!WR_NO2/WC_O3=0.0 -! -!WR_NO2/WC_H2O2=0.0 -! -!WR_NO2/WC_NO=0.0 -! -!WR_NO2/WC_NO2=0.0 -! -!WR_NO2/WC_NO3=0.0 -! -!WR_NO2/WC_N2O5=0.0 -! -!WR_NO2/WC_HONO=0.0 -! -!WR_NO2/WC_HNO3=0.0 -! -!WR_NO2/WC_HNO4=0.0 -! -!WR_NO2/WC_NH3=0.0 -! -!WR_NO2/WC_OH=0.0 -! -!WR_NO2/WC_HO2=0.0 -! -!WR_NO2/WC_CO2=0.0 -! -!WR_NO2/WC_SO2=0.0 -! -!WR_NO2/WC_H2SO4=0.0 -! -!WR_NO2/WC_RO21=0.0 -! -!WR_NO2/WC_RO25=0.0 -! -!WR_NO2/WC_MEOH=0.0 -! -!WR_NO2/WC_ETOH=0.0 -! -!WR_NO2/WC_ALCH=0.0 -! -!WR_NO2/WC_HCHO=0.0 -! -!WR_NO2/WC_ALD2=0.0 -! -!WR_NO2/WC_GLY=0.0 -! -!WR_NO2/WC_MGLY=0.0 -! -!WR_NO2/WC_KETL=0.0 -! -!WR_NO2/WC_ORA1=0.0 -! -!WR_NO2/WC_ORA2=0.0 -! -!WR_NO2/WC_ACID=0.0 -! -!WR_NO2/WC_RP16=0.0 -! -!WR_NO2/WC_UR21=0.0 -! -!WR_NO2/WC_UR28=0.0 -! -!WR_NO2/WC_ACID2=0.0 -! -!WR_NO2/WC_ASO3=0.0 -! -!WR_NO2/WC_ASO4=0.0 -! -!WR_NO2/WC_ASO5=0.0 -! -!WR_NO2/WC_AHSO5=0.0 -! -!WR_NO2/WC_AHMS=0.0 -! -!WR_NO2/WR_O3=0.0 -! -!WR_NO2/WR_H2O2=0.0 -! -!WR_NO2/WR_NO=0.0 -! -!WR_NO2/WR_NO2=-KTR35-KR9*<WR_HO2> - PJAC(:,128,128)=-TPK%KTR35(:)-TPK%KR9(:)*PCONC(:,136) -! -!WR_NO2/WR_NO3=0.0 -! -!WR_NO2/WR_N2O5=0.0 -! -!WR_NO2/WR_HONO=+KR8*<WR_OH> - PJAC(:,128,131)=+TPK%KR8(:)*PCONC(:,135) -! -!WR_NO2/WR_HNO3=+KR13 - PJAC(:,128,132)=+TPK%KR13(:) -! -!WR_NO2/WR_HNO4=+KR10 - PJAC(:,128,133)=+TPK%KR10(:) -! -!WR_NO2/WR_NH3=0.0 -! -!WR_NO2/WR_OH=+KR8*<WR_HONO> - PJAC(:,128,135)=+TPK%KR8(:)*PCONC(:,131) -! -!WR_NO2/WR_HO2=-KR9*<WR_NO2> - PJAC(:,128,136)=-TPK%KR9(:)*PCONC(:,128) -! -!WR_NO2/WR_CO2=0.0 -! -!WR_NO2/WR_SO2=0.0 -! -!WR_NO2/WR_H2SO4=0.0 -! -!WR_NO2/WR_RO21=0.0 -! -!WR_NO2/WR_RO25=0.0 -! -!WR_NO2/WR_MEOH=0.0 -! -!WR_NO2/WR_ETOH=0.0 -! -!WR_NO2/WR_ALCH=0.0 -! -!WR_NO2/WR_HCHO=0.0 -! -!WR_NO2/WR_ALD2=0.0 -! -!WR_NO2/WR_GLY=0.0 -! -!WR_NO2/WR_MGLY=0.0 -! -!WR_NO2/WR_KETL=0.0 -! -!WR_NO2/WR_ORA1=0.0 -! -!WR_NO2/WR_ORA2=0.0 -! -!WR_NO2/WR_ACID=0.0 -! -!WR_NO2/WR_RP16=0.0 -! -!WR_NO2/WR_UR21=0.0 -! -!WR_NO2/WR_UR28=0.0 -! -!WR_NO2/WR_ACID2=0.0 -! -!WR_NO2/WR_ASO3=0.0 -! -!WR_NO2/WR_ASO4=0.0 -! -!WR_NO2/WR_ASO5=0.0 -! -!WR_NO2/WR_AHSO5=0.0 -! -!WR_NO2/WR_AHMS=0.0 -! -!WR_NO3/NO=0.0 -! -!WR_NO3/NO2=0.0 -! -!WR_NO3/O3=0.0 -! -!WR_NO3/HONO=0.0 -! -!WR_NO3/HNO3=0.0 -! -!WR_NO3/HNO4=0.0 -! -!WR_NO3/N2O5=0.0 -! -!WR_NO3/NO3=+KTR5 - PJAC(:,129,8)=+TPK%KTR5(:) -! -!WR_NO3/NH3=0.0 -! -!WR_NO3/HO2=0.0 -! -!WR_NO3/CO=0.0 -! -!WR_NO3/H2O2=0.0 -! -!WR_NO3/SO2=0.0 -! -!WR_NO3/H2SO4=0.0 -! -!WR_NO3/OH=0.0 -! -!WR_NO3/ETHE=0.0 -! -!WR_NO3/OLEL=0.0 -! -!WR_NO3/OLEH=0.0 -! -!WR_NO3/ALKL=0.0 -! -!WR_NO3/ALKM=0.0 -! -!WR_NO3/ALKH=0.0 -! -!WR_NO3/AROH=0.0 -! -!WR_NO3/AROL=0.0 -! -!WR_NO3/AROO=0.0 -! -!WR_NO3/ARAL=0.0 -! -!WR_NO3/ARAC=0.0 -! -!WR_NO3/PAH=0.0 -! -!WR_NO3/HCHO=0.0 -! -!WR_NO3/ALD2=0.0 -! -!WR_NO3/KETL=0.0 -! -!WR_NO3/KETH=0.0 -! -!WR_NO3/MEOH=0.0 -! -!WR_NO3/ETOH=0.0 -! -!WR_NO3/ALCH=0.0 -! -!WR_NO3/ISOP=0.0 -! -!WR_NO3/BIOL=0.0 -! -!WR_NO3/BIOH=0.0 -! -!WR_NO3/MTBE=0.0 -! -!WR_NO3/MVK=0.0 -! -!WR_NO3/MCR=0.0 -! -!WR_NO3/MGLY=0.0 -! -!WR_NO3/GLY=0.0 -! -!WR_NO3/ORA1=0.0 -! -!WR_NO3/ORA2=0.0 -! -!WR_NO3/ACID=0.0 -! -!WR_NO3/UR28=0.0 -! -!WR_NO3/UR21=0.0 -! -!WR_NO3/URG2=0.0 -! -!WR_NO3/UR26=0.0 -! -!WR_NO3/RPG2=0.0 -! -!WR_NO3/RP18=0.0 -! -!WR_NO3/RPG3=0.0 -! -!WR_NO3/URG4=0.0 -! -!WR_NO3/UR8=0.0 -! -!WR_NO3/UR17=0.0 -! -!WR_NO3/UR7=0.0 -! -!WR_NO3/RPR3=0.0 -! -!WR_NO3/URG6=0.0 -! -!WR_NO3/UR22=0.0 -! -!WR_NO3/URG7=0.0 -! -!WR_NO3/RPR4=0.0 -! -!WR_NO3/RPR7=0.0 -! -!WR_NO3/RPG7=0.0 -! -!WR_NO3/URG8=0.0 -! -!WR_NO3/UR19=0.0 -! -!WR_NO3/URG9=0.0 -! -!WR_NO3/AP7=0.0 -! -!WR_NO3/URG10=0.0 -! -!WR_NO3/RPR1=0.0 -! -!WR_NO3/RPR5=0.0 -! -!WR_NO3/RPR8=0.0 -! -!WR_NO3/RP10=0.0 -! -!WR_NO3/RP11=0.0 -! -!WR_NO3/RP16=0.0 -! -!WR_NO3/RPRL=0.0 -! -!WR_NO3/APAN=0.0 -! -!WR_NO3/PAN1=0.0 -! -!WR_NO3/PAN2=0.0 -! -!WR_NO3/PAN3=0.0 -! -!WR_NO3/PAN4=0.0 -! -!WR_NO3/PAN6=0.0 -! -!WR_NO3/PAN7=0.0 -! -!WR_NO3/PAN8=0.0 -! -!WR_NO3/PN10=0.0 -! -!WR_NO3/RO2T=0.0 -! -!WR_NO3/RO21=0.0 -! -!WR_NO3/RO25=0.0 -! -!WR_NO3/WC_O3=0.0 -! -!WR_NO3/WC_H2O2=0.0 -! -!WR_NO3/WC_NO=0.0 -! -!WR_NO3/WC_NO2=0.0 -! -!WR_NO3/WC_NO3=0.0 -! -!WR_NO3/WC_N2O5=0.0 -! -!WR_NO3/WC_HONO=0.0 -! -!WR_NO3/WC_HNO3=0.0 -! -!WR_NO3/WC_HNO4=0.0 -! -!WR_NO3/WC_NH3=0.0 -! -!WR_NO3/WC_OH=0.0 -! -!WR_NO3/WC_HO2=0.0 -! -!WR_NO3/WC_CO2=0.0 -! -!WR_NO3/WC_SO2=0.0 -! -!WR_NO3/WC_H2SO4=0.0 -! -!WR_NO3/WC_RO21=0.0 -! -!WR_NO3/WC_RO25=0.0 -! -!WR_NO3/WC_MEOH=0.0 -! -!WR_NO3/WC_ETOH=0.0 -! -!WR_NO3/WC_ALCH=0.0 -! -!WR_NO3/WC_HCHO=0.0 -! -!WR_NO3/WC_ALD2=0.0 -! -!WR_NO3/WC_GLY=0.0 -! -!WR_NO3/WC_MGLY=0.0 -! -!WR_NO3/WC_KETL=0.0 -! -!WR_NO3/WC_ORA1=0.0 -! -!WR_NO3/WC_ORA2=0.0 -! -!WR_NO3/WC_ACID=0.0 -! -!WR_NO3/WC_RP16=0.0 -! -!WR_NO3/WC_UR21=0.0 -! -!WR_NO3/WC_UR28=0.0 -! -!WR_NO3/WC_ACID2=0.0 -! -!WR_NO3/WC_ASO3=0.0 -! -!WR_NO3/WC_ASO4=0.0 -! -!WR_NO3/WC_ASO5=0.0 -! -!WR_NO3/WC_AHSO5=0.0 -! -!WR_NO3/WC_AHMS=0.0 -! -!WR_NO3/WR_O3=0.0 -! -!WR_NO3/WR_H2O2=0.0 -! -!WR_NO3/WR_NO=0.0 -! -!WR_NO3/WR_NO2=0.0 -! -!WR_NO3/WR_NO3=-KTR36-KR15*<WR_H2SO4>-KR16*<WR_SO2> - PJAC(:,129,129)=-TPK%KTR36(:)-TPK%KR15(:)*PCONC(:,139)-TPK%KR16(:)*PCONC(:,138& -&) -! -!WR_NO3/WR_N2O5=0.0 -! -!WR_NO3/WR_HONO=0.0 -! -!WR_NO3/WR_HNO3=0.0 -! -!WR_NO3/WR_HNO4=0.0 -! -!WR_NO3/WR_NH3=0.0 -! -!WR_NO3/WR_OH=0.0 -! -!WR_NO3/WR_HO2=0.0 -! -!WR_NO3/WR_CO2=0.0 -! -!WR_NO3/WR_SO2=-KR16*<WR_NO3> - PJAC(:,129,138)=-TPK%KR16(:)*PCONC(:,129) -! -!WR_NO3/WR_H2SO4=-KR15*<WR_NO3> - PJAC(:,129,139)=-TPK%KR15(:)*PCONC(:,129) -! -!WR_NO3/WR_RO21=0.0 -! -!WR_NO3/WR_RO25=0.0 -! -!WR_NO3/WR_MEOH=0.0 -! -!WR_NO3/WR_ETOH=0.0 -! -!WR_NO3/WR_ALCH=0.0 -! -!WR_NO3/WR_HCHO=0.0 -! -!WR_NO3/WR_ALD2=0.0 -! -!WR_NO3/WR_GLY=0.0 -! -!WR_NO3/WR_MGLY=0.0 -! -!WR_NO3/WR_KETL=0.0 -! -!WR_NO3/WR_ORA1=0.0 -! -!WR_NO3/WR_ORA2=0.0 -! -!WR_NO3/WR_ACID=0.0 -! -!WR_NO3/WR_RP16=0.0 -! -!WR_NO3/WR_UR21=0.0 -! -!WR_NO3/WR_UR28=0.0 -! -!WR_NO3/WR_ACID2=0.0 -! -!WR_NO3/WR_ASO3=0.0 -! -!WR_NO3/WR_ASO4=0.0 -! -!WR_NO3/WR_ASO5=0.0 -! -!WR_NO3/WR_AHSO5=0.0 -! -!WR_NO3/WR_AHMS=0.0 -! -!WR_N2O5/NO=0.0 -! -!WR_N2O5/NO2=0.0 -! -!WR_N2O5/O3=0.0 -! -!WR_N2O5/HONO=0.0 -! -!WR_N2O5/HNO3=0.0 -! -!WR_N2O5/HNO4=0.0 -! -!WR_N2O5/N2O5=+KTR6 - PJAC(:,130,7)=+TPK%KTR6(:) -! -!WR_N2O5/NO3=0.0 -! -!WR_N2O5/NH3=0.0 -! -!WR_N2O5/HO2=0.0 -! -!WR_N2O5/CO=0.0 -! -!WR_N2O5/H2O2=0.0 -! -!WR_N2O5/SO2=0.0 -! -!WR_N2O5/H2SO4=0.0 -! -!WR_N2O5/OH=0.0 -! -!WR_N2O5/ETHE=0.0 -! -!WR_N2O5/OLEL=0.0 -! -!WR_N2O5/OLEH=0.0 -! -!WR_N2O5/ALKL=0.0 -! -!WR_N2O5/ALKM=0.0 -! -!WR_N2O5/ALKH=0.0 -! -!WR_N2O5/AROH=0.0 -! -!WR_N2O5/AROL=0.0 -! -!WR_N2O5/AROO=0.0 -! -!WR_N2O5/ARAL=0.0 -! -!WR_N2O5/ARAC=0.0 -! -!WR_N2O5/PAH=0.0 -! -!WR_N2O5/HCHO=0.0 -! -!WR_N2O5/ALD2=0.0 -! -!WR_N2O5/KETL=0.0 -! -!WR_N2O5/KETH=0.0 -! -!WR_N2O5/MEOH=0.0 -! -!WR_N2O5/ETOH=0.0 -! -!WR_N2O5/ALCH=0.0 -! -!WR_N2O5/ISOP=0.0 -! -!WR_N2O5/BIOL=0.0 -! -!WR_N2O5/BIOH=0.0 -! -!WR_N2O5/MTBE=0.0 -! -!WR_N2O5/MVK=0.0 -! -!WR_N2O5/MCR=0.0 -! -!WR_N2O5/MGLY=0.0 -! -!WR_N2O5/GLY=0.0 -! -!WR_N2O5/ORA1=0.0 -! -!WR_N2O5/ORA2=0.0 -! -!WR_N2O5/ACID=0.0 -! -!WR_N2O5/UR28=0.0 -! -!WR_N2O5/UR21=0.0 -! -!WR_N2O5/URG2=0.0 -! -!WR_N2O5/UR26=0.0 -! -!WR_N2O5/RPG2=0.0 -! -!WR_N2O5/RP18=0.0 -! -!WR_N2O5/RPG3=0.0 -! -!WR_N2O5/URG4=0.0 -! -!WR_N2O5/UR8=0.0 -! -!WR_N2O5/UR17=0.0 -! -!WR_N2O5/UR7=0.0 -! -!WR_N2O5/RPR3=0.0 -! -!WR_N2O5/URG6=0.0 -! -!WR_N2O5/UR22=0.0 -! -!WR_N2O5/URG7=0.0 -! -!WR_N2O5/RPR4=0.0 -! -!WR_N2O5/RPR7=0.0 -! -!WR_N2O5/RPG7=0.0 -! -!WR_N2O5/URG8=0.0 -! -!WR_N2O5/UR19=0.0 -! -!WR_N2O5/URG9=0.0 -! -!WR_N2O5/AP7=0.0 -! -!WR_N2O5/URG10=0.0 -! -!WR_N2O5/RPR1=0.0 -! -!WR_N2O5/RPR5=0.0 -! -!WR_N2O5/RPR8=0.0 -! -!WR_N2O5/RP10=0.0 -! -!WR_N2O5/RP11=0.0 -! -!WR_N2O5/RP16=0.0 -! -!WR_N2O5/RPRL=0.0 -! -!WR_N2O5/APAN=0.0 -! -!WR_N2O5/PAN1=0.0 -! -!WR_N2O5/PAN2=0.0 -! -!WR_N2O5/PAN3=0.0 -! -!WR_N2O5/PAN4=0.0 -! -!WR_N2O5/PAN6=0.0 -! -!WR_N2O5/PAN7=0.0 -! -!WR_N2O5/PAN8=0.0 -! -!WR_N2O5/PN10=0.0 -! -!WR_N2O5/RO2T=0.0 -! -!WR_N2O5/RO21=0.0 -! -!WR_N2O5/RO25=0.0 -! -!WR_N2O5/WC_O3=0.0 -! -!WR_N2O5/WC_H2O2=0.0 -! -!WR_N2O5/WC_NO=0.0 -! -!WR_N2O5/WC_NO2=0.0 -! -!WR_N2O5/WC_NO3=0.0 -! -!WR_N2O5/WC_N2O5=0.0 -! -!WR_N2O5/WC_HONO=0.0 -! -!WR_N2O5/WC_HNO3=0.0 -! -!WR_N2O5/WC_HNO4=0.0 -! -!WR_N2O5/WC_NH3=0.0 -! -!WR_N2O5/WC_OH=0.0 -! -!WR_N2O5/WC_HO2=0.0 -! -!WR_N2O5/WC_CO2=0.0 -! -!WR_N2O5/WC_SO2=0.0 -! -!WR_N2O5/WC_H2SO4=0.0 -! -!WR_N2O5/WC_RO21=0.0 -! -!WR_N2O5/WC_RO25=0.0 -! -!WR_N2O5/WC_MEOH=0.0 -! -!WR_N2O5/WC_ETOH=0.0 -! -!WR_N2O5/WC_ALCH=0.0 -! -!WR_N2O5/WC_HCHO=0.0 -! -!WR_N2O5/WC_ALD2=0.0 -! -!WR_N2O5/WC_GLY=0.0 -! -!WR_N2O5/WC_MGLY=0.0 -! -!WR_N2O5/WC_KETL=0.0 -! -!WR_N2O5/WC_ORA1=0.0 -! -!WR_N2O5/WC_ORA2=0.0 -! -!WR_N2O5/WC_ACID=0.0 -! -!WR_N2O5/WC_RP16=0.0 -! -!WR_N2O5/WC_UR21=0.0 -! -!WR_N2O5/WC_UR28=0.0 -! -!WR_N2O5/WC_ACID2=0.0 -! -!WR_N2O5/WC_ASO3=0.0 -! -!WR_N2O5/WC_ASO4=0.0 -! -!WR_N2O5/WC_ASO5=0.0 -! -!WR_N2O5/WC_AHSO5=0.0 -! -!WR_N2O5/WC_AHMS=0.0 -! -!WR_N2O5/WR_O3=0.0 -! -!WR_N2O5/WR_H2O2=0.0 -! -!WR_N2O5/WR_NO=0.0 -! -!WR_N2O5/WR_NO2=0.0 -! -!WR_N2O5/WR_NO3=0.0 -! -!WR_N2O5/WR_N2O5=-KTR37-KR14 - PJAC(:,130,130)=-TPK%KTR37(:)-TPK%KR14(:) -! -!WR_N2O5/WR_HONO=0.0 -! -!WR_N2O5/WR_HNO3=0.0 -! -!WR_N2O5/WR_HNO4=0.0 -! -!WR_N2O5/WR_NH3=0.0 -! -!WR_N2O5/WR_OH=0.0 -! -!WR_N2O5/WR_HO2=0.0 -! -!WR_N2O5/WR_CO2=0.0 -! -!WR_N2O5/WR_SO2=0.0 -! -!WR_N2O5/WR_H2SO4=0.0 -! -!WR_N2O5/WR_RO21=0.0 -! -!WR_N2O5/WR_RO25=0.0 -! -!WR_N2O5/WR_MEOH=0.0 -! -!WR_N2O5/WR_ETOH=0.0 -! -!WR_N2O5/WR_ALCH=0.0 -! -!WR_N2O5/WR_HCHO=0.0 -! -!WR_N2O5/WR_ALD2=0.0 -! -!WR_N2O5/WR_GLY=0.0 -! -!WR_N2O5/WR_MGLY=0.0 -! -!WR_N2O5/WR_KETL=0.0 -! -!WR_N2O5/WR_ORA1=0.0 -! -!WR_N2O5/WR_ORA2=0.0 -! -!WR_N2O5/WR_ACID=0.0 -! -!WR_N2O5/WR_RP16=0.0 -! -!WR_N2O5/WR_UR21=0.0 -! -!WR_N2O5/WR_UR28=0.0 -! -!WR_N2O5/WR_ACID2=0.0 -! -!WR_N2O5/WR_ASO3=0.0 -! -!WR_N2O5/WR_ASO4=0.0 -! -!WR_N2O5/WR_ASO5=0.0 -! -!WR_N2O5/WR_AHSO5=0.0 -! -!WR_N2O5/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ25 -! -SUBROUTINE SUBJ26 -! -!Indices 131 a 135 -! -! -!WR_HONO/NO=0.0 -! -!WR_HONO/NO2=0.0 -! -!WR_HONO/O3=0.0 -! -!WR_HONO/HONO=+KTR7 - PJAC(:,131,4)=+TPK%KTR7(:) -! -!WR_HONO/HNO3=0.0 -! -!WR_HONO/HNO4=0.0 -! -!WR_HONO/N2O5=0.0 -! -!WR_HONO/NO3=0.0 -! -!WR_HONO/NH3=0.0 -! -!WR_HONO/HO2=0.0 -! -!WR_HONO/CO=0.0 -! -!WR_HONO/H2O2=0.0 -! -!WR_HONO/SO2=0.0 -! -!WR_HONO/H2SO4=0.0 -! -!WR_HONO/OH=0.0 -! -!WR_HONO/ETHE=0.0 -! -!WR_HONO/OLEL=0.0 -! -!WR_HONO/OLEH=0.0 -! -!WR_HONO/ALKL=0.0 -! -!WR_HONO/ALKM=0.0 -! -!WR_HONO/ALKH=0.0 -! -!WR_HONO/AROH=0.0 -! -!WR_HONO/AROL=0.0 -! -!WR_HONO/AROO=0.0 -! -!WR_HONO/ARAL=0.0 -! -!WR_HONO/ARAC=0.0 -! -!WR_HONO/PAH=0.0 -! -!WR_HONO/HCHO=0.0 -! -!WR_HONO/ALD2=0.0 -! -!WR_HONO/KETL=0.0 -! -!WR_HONO/KETH=0.0 -! -!WR_HONO/MEOH=0.0 -! -!WR_HONO/ETOH=0.0 -! -!WR_HONO/ALCH=0.0 -! -!WR_HONO/ISOP=0.0 -! -!WR_HONO/BIOL=0.0 -! -!WR_HONO/BIOH=0.0 -! -!WR_HONO/MTBE=0.0 -! -!WR_HONO/MVK=0.0 -! -!WR_HONO/MCR=0.0 -! -!WR_HONO/MGLY=0.0 -! -!WR_HONO/GLY=0.0 -! -!WR_HONO/ORA1=0.0 -! -!WR_HONO/ORA2=0.0 -! -!WR_HONO/ACID=0.0 -! -!WR_HONO/UR28=0.0 -! -!WR_HONO/UR21=0.0 -! -!WR_HONO/URG2=0.0 -! -!WR_HONO/UR26=0.0 -! -!WR_HONO/RPG2=0.0 -! -!WR_HONO/RP18=0.0 -! -!WR_HONO/RPG3=0.0 -! -!WR_HONO/URG4=0.0 -! -!WR_HONO/UR8=0.0 -! -!WR_HONO/UR17=0.0 -! -!WR_HONO/UR7=0.0 -! -!WR_HONO/RPR3=0.0 -! -!WR_HONO/URG6=0.0 -! -!WR_HONO/UR22=0.0 -! -!WR_HONO/URG7=0.0 -! -!WR_HONO/RPR4=0.0 -! -!WR_HONO/RPR7=0.0 -! -!WR_HONO/RPG7=0.0 -! -!WR_HONO/URG8=0.0 -! -!WR_HONO/UR19=0.0 -! -!WR_HONO/URG9=0.0 -! -!WR_HONO/AP7=0.0 -! -!WR_HONO/URG10=0.0 -! -!WR_HONO/RPR1=0.0 -! -!WR_HONO/RPR5=0.0 -! -!WR_HONO/RPR8=0.0 -! -!WR_HONO/RP10=0.0 -! -!WR_HONO/RP11=0.0 -! -!WR_HONO/RP16=0.0 -! -!WR_HONO/RPRL=0.0 -! -!WR_HONO/APAN=0.0 -! -!WR_HONO/PAN1=0.0 -! -!WR_HONO/PAN2=0.0 -! -!WR_HONO/PAN3=0.0 -! -!WR_HONO/PAN4=0.0 -! -!WR_HONO/PAN6=0.0 -! -!WR_HONO/PAN7=0.0 -! -!WR_HONO/PAN8=0.0 -! -!WR_HONO/PN10=0.0 -! -!WR_HONO/RO2T=0.0 -! -!WR_HONO/RO21=0.0 -! -!WR_HONO/RO25=0.0 -! -!WR_HONO/WC_O3=0.0 -! -!WR_HONO/WC_H2O2=0.0 -! -!WR_HONO/WC_NO=0.0 -! -!WR_HONO/WC_NO2=0.0 -! -!WR_HONO/WC_NO3=0.0 -! -!WR_HONO/WC_N2O5=0.0 -! -!WR_HONO/WC_HONO=0.0 -! -!WR_HONO/WC_HNO3=0.0 -! -!WR_HONO/WC_HNO4=0.0 -! -!WR_HONO/WC_NH3=0.0 -! -!WR_HONO/WC_OH=0.0 -! -!WR_HONO/WC_HO2=0.0 -! -!WR_HONO/WC_CO2=0.0 -! -!WR_HONO/WC_SO2=0.0 -! -!WR_HONO/WC_H2SO4=0.0 -! -!WR_HONO/WC_RO21=0.0 -! -!WR_HONO/WC_RO25=0.0 -! -!WR_HONO/WC_MEOH=0.0 -! -!WR_HONO/WC_ETOH=0.0 -! -!WR_HONO/WC_ALCH=0.0 -! -!WR_HONO/WC_HCHO=0.0 -! -!WR_HONO/WC_ALD2=0.0 -! -!WR_HONO/WC_GLY=0.0 -! -!WR_HONO/WC_MGLY=0.0 -! -!WR_HONO/WC_KETL=0.0 -! -!WR_HONO/WC_ORA1=0.0 -! -!WR_HONO/WC_ORA2=0.0 -! -!WR_HONO/WC_ACID=0.0 -! -!WR_HONO/WC_RP16=0.0 -! -!WR_HONO/WC_UR21=0.0 -! -!WR_HONO/WC_UR28=0.0 -! -!WR_HONO/WC_ACID2=0.0 -! -!WR_HONO/WC_ASO3=0.0 -! -!WR_HONO/WC_ASO4=0.0 -! -!WR_HONO/WC_ASO5=0.0 -! -!WR_HONO/WC_AHSO5=0.0 -! -!WR_HONO/WC_AHMS=0.0 -! -!WR_HONO/WR_O3=0.0 -! -!WR_HONO/WR_H2O2=0.0 -! -!WR_HONO/WR_NO=0.0 -! -!WR_HONO/WR_NO2=0.0 -! -!WR_HONO/WR_NO3=0.0 -! -!WR_HONO/WR_N2O5=0.0 -! -!WR_HONO/WR_HONO=-KTR38-KR8*<WR_OH> - PJAC(:,131,131)=-TPK%KTR38(:)-TPK%KR8(:)*PCONC(:,135) -! -!WR_HONO/WR_HNO3=0.0 -! -!WR_HONO/WR_HNO4=+KR11 - PJAC(:,131,133)=+TPK%KR11(:) -! -!WR_HONO/WR_NH3=0.0 -! -!WR_HONO/WR_OH=-KR8*<WR_HONO> - PJAC(:,131,135)=-TPK%KR8(:)*PCONC(:,131) -! -!WR_HONO/WR_HO2=0.0 -! -!WR_HONO/WR_CO2=0.0 -! -!WR_HONO/WR_SO2=0.0 -! -!WR_HONO/WR_H2SO4=0.0 -! -!WR_HONO/WR_RO21=0.0 -! -!WR_HONO/WR_RO25=0.0 -! -!WR_HONO/WR_MEOH=0.0 -! -!WR_HONO/WR_ETOH=0.0 -! -!WR_HONO/WR_ALCH=0.0 -! -!WR_HONO/WR_HCHO=0.0 -! -!WR_HONO/WR_ALD2=0.0 -! -!WR_HONO/WR_GLY=0.0 -! -!WR_HONO/WR_MGLY=0.0 -! -!WR_HONO/WR_KETL=0.0 -! -!WR_HONO/WR_ORA1=0.0 -! -!WR_HONO/WR_ORA2=0.0 -! -!WR_HONO/WR_ACID=0.0 -! -!WR_HONO/WR_RP16=0.0 -! -!WR_HONO/WR_UR21=0.0 -! -!WR_HONO/WR_UR28=0.0 -! -!WR_HONO/WR_ACID2=0.0 -! -!WR_HONO/WR_ASO3=0.0 -! -!WR_HONO/WR_ASO4=0.0 -! -!WR_HONO/WR_ASO5=0.0 -! -!WR_HONO/WR_AHSO5=0.0 -! -!WR_HONO/WR_AHMS=0.0 -! -!WR_HNO3/NO=0.0 -! -!WR_HNO3/NO2=0.0 -! -!WR_HNO3/O3=0.0 -! -!WR_HNO3/HONO=0.0 -! -!WR_HNO3/HNO3=+KTR8 - PJAC(:,132,5)=+TPK%KTR8(:) -! -!WR_HNO3/HNO4=0.0 -! -!WR_HNO3/N2O5=0.0 -! -!WR_HNO3/NO3=0.0 -! -!WR_HNO3/NH3=0.0 -! -!WR_HNO3/HO2=0.0 -! -!WR_HNO3/CO=0.0 -! -!WR_HNO3/H2O2=0.0 -! -!WR_HNO3/SO2=0.0 -! -!WR_HNO3/H2SO4=0.0 -! -!WR_HNO3/OH=0.0 -! -!WR_HNO3/ETHE=0.0 -! -!WR_HNO3/OLEL=0.0 -! -!WR_HNO3/OLEH=0.0 -! -!WR_HNO3/ALKL=0.0 -! -!WR_HNO3/ALKM=0.0 -! -!WR_HNO3/ALKH=0.0 -! -!WR_HNO3/AROH=0.0 -! -!WR_HNO3/AROL=0.0 -! -!WR_HNO3/AROO=0.0 -! -!WR_HNO3/ARAL=0.0 -! -!WR_HNO3/ARAC=0.0 -! -!WR_HNO3/PAH=0.0 -! -!WR_HNO3/HCHO=0.0 -! -!WR_HNO3/ALD2=0.0 -! -!WR_HNO3/KETL=0.0 -! -!WR_HNO3/KETH=0.0 -! -!WR_HNO3/MEOH=0.0 -! -!WR_HNO3/ETOH=0.0 -! -!WR_HNO3/ALCH=0.0 -! -!WR_HNO3/ISOP=0.0 -! -!WR_HNO3/BIOL=0.0 -! -!WR_HNO3/BIOH=0.0 -! -!WR_HNO3/MTBE=0.0 -! -!WR_HNO3/MVK=0.0 -! -!WR_HNO3/MCR=0.0 -! -!WR_HNO3/MGLY=0.0 -! -!WR_HNO3/GLY=0.0 -! -!WR_HNO3/ORA1=0.0 -! -!WR_HNO3/ORA2=0.0 -! -!WR_HNO3/ACID=0.0 -! -!WR_HNO3/UR28=0.0 -! -!WR_HNO3/UR21=0.0 -! -!WR_HNO3/URG2=0.0 -! -!WR_HNO3/UR26=0.0 -! -!WR_HNO3/RPG2=0.0 -! -!WR_HNO3/RP18=0.0 -! -!WR_HNO3/RPG3=0.0 -! -!WR_HNO3/URG4=0.0 -! -!WR_HNO3/UR8=0.0 -! -!WR_HNO3/UR17=0.0 -! -!WR_HNO3/UR7=0.0 -! -!WR_HNO3/RPR3=0.0 -! -!WR_HNO3/URG6=0.0 -! -!WR_HNO3/UR22=0.0 -! -!WR_HNO3/URG7=0.0 -! -!WR_HNO3/RPR4=0.0 -! -!WR_HNO3/RPR7=0.0 -! -!WR_HNO3/RPG7=0.0 -! -!WR_HNO3/URG8=0.0 -! -!WR_HNO3/UR19=0.0 -! -!WR_HNO3/URG9=0.0 -! -!WR_HNO3/AP7=0.0 -! -!WR_HNO3/URG10=0.0 -! -!WR_HNO3/RPR1=0.0 -! -!WR_HNO3/RPR5=0.0 -! -!WR_HNO3/RPR8=0.0 -! -!WR_HNO3/RP10=0.0 -! -!WR_HNO3/RP11=0.0 -! -!WR_HNO3/RP16=0.0 -! -!WR_HNO3/RPRL=0.0 -! -!WR_HNO3/APAN=0.0 -! -!WR_HNO3/PAN1=0.0 -! -!WR_HNO3/PAN2=0.0 -! -!WR_HNO3/PAN3=0.0 -! -!WR_HNO3/PAN4=0.0 -! -!WR_HNO3/PAN6=0.0 -! -!WR_HNO3/PAN7=0.0 -! -!WR_HNO3/PAN8=0.0 -! -!WR_HNO3/PN10=0.0 -! -!WR_HNO3/RO2T=0.0 -! -!WR_HNO3/RO21=0.0 -! -!WR_HNO3/RO25=0.0 -! -!WR_HNO3/WC_O3=0.0 -! -!WR_HNO3/WC_H2O2=0.0 -! -!WR_HNO3/WC_NO=0.0 -! -!WR_HNO3/WC_NO2=0.0 -! -!WR_HNO3/WC_NO3=0.0 -! -!WR_HNO3/WC_N2O5=0.0 -! -!WR_HNO3/WC_HONO=0.0 -! -!WR_HNO3/WC_HNO3=0.0 -! -!WR_HNO3/WC_HNO4=0.0 -! -!WR_HNO3/WC_NH3=0.0 -! -!WR_HNO3/WC_OH=0.0 -! -!WR_HNO3/WC_HO2=0.0 -! -!WR_HNO3/WC_CO2=0.0 -! -!WR_HNO3/WC_SO2=0.0 -! -!WR_HNO3/WC_H2SO4=0.0 -! -!WR_HNO3/WC_RO21=0.0 -! -!WR_HNO3/WC_RO25=0.0 -! -!WR_HNO3/WC_MEOH=0.0 -! -!WR_HNO3/WC_ETOH=0.0 -! -!WR_HNO3/WC_ALCH=0.0 -! -!WR_HNO3/WC_HCHO=0.0 -! -!WR_HNO3/WC_ALD2=0.0 -! -!WR_HNO3/WC_GLY=0.0 -! -!WR_HNO3/WC_MGLY=0.0 -! -!WR_HNO3/WC_KETL=0.0 -! -!WR_HNO3/WC_ORA1=0.0 -! -!WR_HNO3/WC_ORA2=0.0 -! -!WR_HNO3/WC_ACID=0.0 -! -!WR_HNO3/WC_RP16=0.0 -! -!WR_HNO3/WC_UR21=0.0 -! -!WR_HNO3/WC_UR28=0.0 -! -!WR_HNO3/WC_ACID2=0.0 -! -!WR_HNO3/WC_ASO3=0.0 -! -!WR_HNO3/WC_ASO4=0.0 -! -!WR_HNO3/WC_ASO5=0.0 -! -!WR_HNO3/WC_AHSO5=0.0 -! -!WR_HNO3/WC_AHMS=0.0 -! -!WR_HNO3/WR_O3=0.0 -! -!WR_HNO3/WR_H2O2=0.0 -! -!WR_HNO3/WR_NO=0.0 -! -!WR_HNO3/WR_NO2=0.0 -! -!WR_HNO3/WR_NO3=+KR15*<WR_H2SO4>+KR16*<WR_SO2> - PJAC(:,132,129)=+TPK%KR15(:)*PCONC(:,139)+TPK%KR16(:)*PCONC(:,138) -! -!WR_HNO3/WR_N2O5=+KR14+KR14 - PJAC(:,132,130)=+TPK%KR14(:)+TPK%KR14(:) -! -!WR_HNO3/WR_HONO=0.0 -! -!WR_HNO3/WR_HNO3=-KTR39-KR13 - PJAC(:,132,132)=-TPK%KTR39(:)-TPK%KR13(:) -! -!WR_HNO3/WR_HNO4=+KR12*<WR_SO2> - PJAC(:,132,133)=+TPK%KR12(:)*PCONC(:,138) -! -!WR_HNO3/WR_NH3=0.0 -! -!WR_HNO3/WR_OH=0.0 -! -!WR_HNO3/WR_HO2=0.0 -! -!WR_HNO3/WR_CO2=0.0 -! -!WR_HNO3/WR_SO2=+KR12*<WR_HNO4>+KR16*<WR_NO3> - PJAC(:,132,138)=+TPK%KR12(:)*PCONC(:,133)+TPK%KR16(:)*PCONC(:,129) -! -!WR_HNO3/WR_H2SO4=+KR15*<WR_NO3> - PJAC(:,132,139)=+TPK%KR15(:)*PCONC(:,129) -! -!WR_HNO3/WR_RO21=0.0 -! -!WR_HNO3/WR_RO25=0.0 -! -!WR_HNO3/WR_MEOH=0.0 -! -!WR_HNO3/WR_ETOH=0.0 -! -!WR_HNO3/WR_ALCH=0.0 -! -!WR_HNO3/WR_HCHO=0.0 -! -!WR_HNO3/WR_ALD2=0.0 -! -!WR_HNO3/WR_GLY=0.0 -! -!WR_HNO3/WR_MGLY=0.0 -! -!WR_HNO3/WR_KETL=0.0 -! -!WR_HNO3/WR_ORA1=0.0 -! -!WR_HNO3/WR_ORA2=0.0 -! -!WR_HNO3/WR_ACID=0.0 -! -!WR_HNO3/WR_RP16=0.0 -! -!WR_HNO3/WR_UR21=0.0 -! -!WR_HNO3/WR_UR28=0.0 -! -!WR_HNO3/WR_ACID2=0.0 -! -!WR_HNO3/WR_ASO3=0.0 -! -!WR_HNO3/WR_ASO4=0.0 -! -!WR_HNO3/WR_ASO5=0.0 -! -!WR_HNO3/WR_AHSO5=0.0 -! -!WR_HNO3/WR_AHMS=0.0 -! -!WR_HNO4/NO=0.0 -! -!WR_HNO4/NO2=0.0 -! -!WR_HNO4/O3=0.0 -! -!WR_HNO4/HONO=0.0 -! -!WR_HNO4/HNO3=0.0 -! -!WR_HNO4/HNO4=+KTR9 - PJAC(:,133,6)=+TPK%KTR9(:) -! -!WR_HNO4/N2O5=0.0 -! -!WR_HNO4/NO3=0.0 -! -!WR_HNO4/NH3=0.0 -! -!WR_HNO4/HO2=0.0 -! -!WR_HNO4/CO=0.0 -! -!WR_HNO4/H2O2=0.0 -! -!WR_HNO4/SO2=0.0 -! -!WR_HNO4/H2SO4=0.0 -! -!WR_HNO4/OH=0.0 -! -!WR_HNO4/ETHE=0.0 -! -!WR_HNO4/OLEL=0.0 -! -!WR_HNO4/OLEH=0.0 -! -!WR_HNO4/ALKL=0.0 -! -!WR_HNO4/ALKM=0.0 -! -!WR_HNO4/ALKH=0.0 -! -!WR_HNO4/AROH=0.0 -! -!WR_HNO4/AROL=0.0 -! -!WR_HNO4/AROO=0.0 -! -!WR_HNO4/ARAL=0.0 -! -!WR_HNO4/ARAC=0.0 -! -!WR_HNO4/PAH=0.0 -! -!WR_HNO4/HCHO=0.0 -! -!WR_HNO4/ALD2=0.0 -! -!WR_HNO4/KETL=0.0 -! -!WR_HNO4/KETH=0.0 -! -!WR_HNO4/MEOH=0.0 -! -!WR_HNO4/ETOH=0.0 -! -!WR_HNO4/ALCH=0.0 -! -!WR_HNO4/ISOP=0.0 -! -!WR_HNO4/BIOL=0.0 -! -!WR_HNO4/BIOH=0.0 -! -!WR_HNO4/MTBE=0.0 -! -!WR_HNO4/MVK=0.0 -! -!WR_HNO4/MCR=0.0 -! -!WR_HNO4/MGLY=0.0 -! -!WR_HNO4/GLY=0.0 -! -!WR_HNO4/ORA1=0.0 -! -!WR_HNO4/ORA2=0.0 -! -!WR_HNO4/ACID=0.0 -! -!WR_HNO4/UR28=0.0 -! -!WR_HNO4/UR21=0.0 -! -!WR_HNO4/URG2=0.0 -! -!WR_HNO4/UR26=0.0 -! -!WR_HNO4/RPG2=0.0 -! -!WR_HNO4/RP18=0.0 -! -!WR_HNO4/RPG3=0.0 -! -!WR_HNO4/URG4=0.0 -! -!WR_HNO4/UR8=0.0 -! -!WR_HNO4/UR17=0.0 -! -!WR_HNO4/UR7=0.0 -! -!WR_HNO4/RPR3=0.0 -! -!WR_HNO4/URG6=0.0 -! -!WR_HNO4/UR22=0.0 -! -!WR_HNO4/URG7=0.0 -! -!WR_HNO4/RPR4=0.0 -! -!WR_HNO4/RPR7=0.0 -! -!WR_HNO4/RPG7=0.0 -! -!WR_HNO4/URG8=0.0 -! -!WR_HNO4/UR19=0.0 -! -!WR_HNO4/URG9=0.0 -! -!WR_HNO4/AP7=0.0 -! -!WR_HNO4/URG10=0.0 -! -!WR_HNO4/RPR1=0.0 -! -!WR_HNO4/RPR5=0.0 -! -!WR_HNO4/RPR8=0.0 -! -!WR_HNO4/RP10=0.0 -! -!WR_HNO4/RP11=0.0 -! -!WR_HNO4/RP16=0.0 -! -!WR_HNO4/RPRL=0.0 -! -!WR_HNO4/APAN=0.0 -! -!WR_HNO4/PAN1=0.0 -! -!WR_HNO4/PAN2=0.0 -! -!WR_HNO4/PAN3=0.0 -! -!WR_HNO4/PAN4=0.0 -! -!WR_HNO4/PAN6=0.0 -! -!WR_HNO4/PAN7=0.0 -! -!WR_HNO4/PAN8=0.0 -! -!WR_HNO4/PN10=0.0 -! -!WR_HNO4/RO2T=0.0 -! -!WR_HNO4/RO21=0.0 -! -!WR_HNO4/RO25=0.0 -! -!WR_HNO4/WC_O3=0.0 -! -!WR_HNO4/WC_H2O2=0.0 -! -!WR_HNO4/WC_NO=0.0 -! -!WR_HNO4/WC_NO2=0.0 -! -!WR_HNO4/WC_NO3=0.0 -! -!WR_HNO4/WC_N2O5=0.0 -! -!WR_HNO4/WC_HONO=0.0 -! -!WR_HNO4/WC_HNO3=0.0 -! -!WR_HNO4/WC_HNO4=0.0 -! -!WR_HNO4/WC_NH3=0.0 -! -!WR_HNO4/WC_OH=0.0 -! -!WR_HNO4/WC_HO2=0.0 -! -!WR_HNO4/WC_CO2=0.0 -! -!WR_HNO4/WC_SO2=0.0 -! -!WR_HNO4/WC_H2SO4=0.0 -! -!WR_HNO4/WC_RO21=0.0 -! -!WR_HNO4/WC_RO25=0.0 -! -!WR_HNO4/WC_MEOH=0.0 -! -!WR_HNO4/WC_ETOH=0.0 -! -!WR_HNO4/WC_ALCH=0.0 -! -!WR_HNO4/WC_HCHO=0.0 -! -!WR_HNO4/WC_ALD2=0.0 -! -!WR_HNO4/WC_GLY=0.0 -! -!WR_HNO4/WC_MGLY=0.0 -! -!WR_HNO4/WC_KETL=0.0 -! -!WR_HNO4/WC_ORA1=0.0 -! -!WR_HNO4/WC_ORA2=0.0 -! -!WR_HNO4/WC_ACID=0.0 -! -!WR_HNO4/WC_RP16=0.0 -! -!WR_HNO4/WC_UR21=0.0 -! -!WR_HNO4/WC_UR28=0.0 -! -!WR_HNO4/WC_ACID2=0.0 -! -!WR_HNO4/WC_ASO3=0.0 -! -!WR_HNO4/WC_ASO4=0.0 -! -!WR_HNO4/WC_ASO5=0.0 -! -!WR_HNO4/WC_AHSO5=0.0 -! -!WR_HNO4/WC_AHMS=0.0 -! -!WR_HNO4/WR_O3=0.0 -! -!WR_HNO4/WR_H2O2=0.0 -! -!WR_HNO4/WR_NO=0.0 -! -!WR_HNO4/WR_NO2=+KR9*<WR_HO2> - PJAC(:,133,128)=+TPK%KR9(:)*PCONC(:,136) -! -!WR_HNO4/WR_NO3=0.0 -! -!WR_HNO4/WR_N2O5=0.0 -! -!WR_HNO4/WR_HONO=0.0 -! -!WR_HNO4/WR_HNO3=0.0 -! -!WR_HNO4/WR_HNO4=-KTR40-KR10-KR11-KR12*<WR_SO2> - PJAC(:,133,133)=-TPK%KTR40(:)-TPK%KR10(:)-TPK%KR11(:)-TPK%KR12(:)*PCONC(:,138) -! -!WR_HNO4/WR_NH3=0.0 -! -!WR_HNO4/WR_OH=0.0 -! -!WR_HNO4/WR_HO2=+KR9*<WR_NO2> - PJAC(:,133,136)=+TPK%KR9(:)*PCONC(:,128) -! -!WR_HNO4/WR_CO2=0.0 -! -!WR_HNO4/WR_SO2=-KR12*<WR_HNO4> - PJAC(:,133,138)=-TPK%KR12(:)*PCONC(:,133) -! -!WR_HNO4/WR_H2SO4=0.0 -! -!WR_HNO4/WR_RO21=0.0 -! -!WR_HNO4/WR_RO25=0.0 -! -!WR_HNO4/WR_MEOH=0.0 -! -!WR_HNO4/WR_ETOH=0.0 -! -!WR_HNO4/WR_ALCH=0.0 -! -!WR_HNO4/WR_HCHO=0.0 -! -!WR_HNO4/WR_ALD2=0.0 -! -!WR_HNO4/WR_GLY=0.0 -! -!WR_HNO4/WR_MGLY=0.0 -! -!WR_HNO4/WR_KETL=0.0 -! -!WR_HNO4/WR_ORA1=0.0 -! -!WR_HNO4/WR_ORA2=0.0 -! -!WR_HNO4/WR_ACID=0.0 -! -!WR_HNO4/WR_RP16=0.0 -! -!WR_HNO4/WR_UR21=0.0 -! -!WR_HNO4/WR_UR28=0.0 -! -!WR_HNO4/WR_ACID2=0.0 -! -!WR_HNO4/WR_ASO3=0.0 -! -!WR_HNO4/WR_ASO4=0.0 -! -!WR_HNO4/WR_ASO5=0.0 -! -!WR_HNO4/WR_AHSO5=0.0 -! -!WR_HNO4/WR_AHMS=0.0 -! -!WR_NH3/NO=0.0 -! -!WR_NH3/NO2=0.0 -! -!WR_NH3/O3=0.0 -! -!WR_NH3/HONO=0.0 -! -!WR_NH3/HNO3=0.0 -! -!WR_NH3/HNO4=0.0 -! -!WR_NH3/N2O5=0.0 -! -!WR_NH3/NO3=0.0 -! -!WR_NH3/NH3=+KTR10 - PJAC(:,134,9)=+TPK%KTR10(:) -! -!WR_NH3/HO2=0.0 -! -!WR_NH3/CO=0.0 -! -!WR_NH3/H2O2=0.0 -! -!WR_NH3/SO2=0.0 -! -!WR_NH3/H2SO4=0.0 -! -!WR_NH3/OH=0.0 -! -!WR_NH3/ETHE=0.0 -! -!WR_NH3/OLEL=0.0 -! -!WR_NH3/OLEH=0.0 -! -!WR_NH3/ALKL=0.0 -! -!WR_NH3/ALKM=0.0 -! -!WR_NH3/ALKH=0.0 -! -!WR_NH3/AROH=0.0 -! -!WR_NH3/AROL=0.0 -! -!WR_NH3/AROO=0.0 -! -!WR_NH3/ARAL=0.0 -! -!WR_NH3/ARAC=0.0 -! -!WR_NH3/PAH=0.0 -! -!WR_NH3/HCHO=0.0 -! -!WR_NH3/ALD2=0.0 -! -!WR_NH3/KETL=0.0 -! -!WR_NH3/KETH=0.0 -! -!WR_NH3/MEOH=0.0 -! -!WR_NH3/ETOH=0.0 -! -!WR_NH3/ALCH=0.0 -! -!WR_NH3/ISOP=0.0 -! -!WR_NH3/BIOL=0.0 -! -!WR_NH3/BIOH=0.0 -! -!WR_NH3/MTBE=0.0 -! -!WR_NH3/MVK=0.0 -! -!WR_NH3/MCR=0.0 -! -!WR_NH3/MGLY=0.0 -! -!WR_NH3/GLY=0.0 -! -!WR_NH3/ORA1=0.0 -! -!WR_NH3/ORA2=0.0 -! -!WR_NH3/ACID=0.0 -! -!WR_NH3/UR28=0.0 -! -!WR_NH3/UR21=0.0 -! -!WR_NH3/URG2=0.0 -! -!WR_NH3/UR26=0.0 -! -!WR_NH3/RPG2=0.0 -! -!WR_NH3/RP18=0.0 -! -!WR_NH3/RPG3=0.0 -! -!WR_NH3/URG4=0.0 -! -!WR_NH3/UR8=0.0 -! -!WR_NH3/UR17=0.0 -! -!WR_NH3/UR7=0.0 -! -!WR_NH3/RPR3=0.0 -! -!WR_NH3/URG6=0.0 -! -!WR_NH3/UR22=0.0 -! -!WR_NH3/URG7=0.0 -! -!WR_NH3/RPR4=0.0 -! -!WR_NH3/RPR7=0.0 -! -!WR_NH3/RPG7=0.0 -! -!WR_NH3/URG8=0.0 -! -!WR_NH3/UR19=0.0 -! -!WR_NH3/URG9=0.0 -! -!WR_NH3/AP7=0.0 -! -!WR_NH3/URG10=0.0 -! -!WR_NH3/RPR1=0.0 -! -!WR_NH3/RPR5=0.0 -! -!WR_NH3/RPR8=0.0 -! -!WR_NH3/RP10=0.0 -! -!WR_NH3/RP11=0.0 -! -!WR_NH3/RP16=0.0 -! -!WR_NH3/RPRL=0.0 -! -!WR_NH3/APAN=0.0 -! -!WR_NH3/PAN1=0.0 -! -!WR_NH3/PAN2=0.0 -! -!WR_NH3/PAN3=0.0 -! -!WR_NH3/PAN4=0.0 -! -!WR_NH3/PAN6=0.0 -! -!WR_NH3/PAN7=0.0 -! -!WR_NH3/PAN8=0.0 -! -!WR_NH3/PN10=0.0 -! -!WR_NH3/RO2T=0.0 -! -!WR_NH3/RO21=0.0 -! -!WR_NH3/RO25=0.0 -! -!WR_NH3/WC_O3=0.0 -! -!WR_NH3/WC_H2O2=0.0 -! -!WR_NH3/WC_NO=0.0 -! -!WR_NH3/WC_NO2=0.0 -! -!WR_NH3/WC_NO3=0.0 -! -!WR_NH3/WC_N2O5=0.0 -! -!WR_NH3/WC_HONO=0.0 -! -!WR_NH3/WC_HNO3=0.0 -! -!WR_NH3/WC_HNO4=0.0 -! -!WR_NH3/WC_NH3=0.0 -! -!WR_NH3/WC_OH=0.0 -! -!WR_NH3/WC_HO2=0.0 -! -!WR_NH3/WC_CO2=0.0 -! -!WR_NH3/WC_SO2=0.0 -! -!WR_NH3/WC_H2SO4=0.0 -! -!WR_NH3/WC_RO21=0.0 -! -!WR_NH3/WC_RO25=0.0 -! -!WR_NH3/WC_MEOH=0.0 -! -!WR_NH3/WC_ETOH=0.0 -! -!WR_NH3/WC_ALCH=0.0 -! -!WR_NH3/WC_HCHO=0.0 -! -!WR_NH3/WC_ALD2=0.0 -! -!WR_NH3/WC_GLY=0.0 -! -!WR_NH3/WC_MGLY=0.0 -! -!WR_NH3/WC_KETL=0.0 -! -!WR_NH3/WC_ORA1=0.0 -! -!WR_NH3/WC_ORA2=0.0 -! -!WR_NH3/WC_ACID=0.0 -! -!WR_NH3/WC_RP16=0.0 -! -!WR_NH3/WC_UR21=0.0 -! -!WR_NH3/WC_UR28=0.0 -! -!WR_NH3/WC_ACID2=0.0 -! -!WR_NH3/WC_ASO3=0.0 -! -!WR_NH3/WC_ASO4=0.0 -! -!WR_NH3/WC_ASO5=0.0 -! -!WR_NH3/WC_AHSO5=0.0 -! -!WR_NH3/WC_AHMS=0.0 -! -!WR_NH3/WR_O3=0.0 -! -!WR_NH3/WR_H2O2=0.0 -! -!WR_NH3/WR_NO=0.0 -! -!WR_NH3/WR_NO2=0.0 -! -!WR_NH3/WR_NO3=0.0 -! -!WR_NH3/WR_N2O5=0.0 -! -!WR_NH3/WR_HONO=0.0 -! -!WR_NH3/WR_HNO3=0.0 -! -!WR_NH3/WR_HNO4=0.0 -! -!WR_NH3/WR_NH3=-KTR41 - PJAC(:,134,134)=-TPK%KTR41(:) -! -!WR_NH3/WR_OH=0.0 -! -!WR_NH3/WR_HO2=0.0 -! -!WR_NH3/WR_CO2=0.0 -! -!WR_NH3/WR_SO2=0.0 -! -!WR_NH3/WR_H2SO4=0.0 -! -!WR_NH3/WR_RO21=0.0 -! -!WR_NH3/WR_RO25=0.0 -! -!WR_NH3/WR_MEOH=0.0 -! -!WR_NH3/WR_ETOH=0.0 -! -!WR_NH3/WR_ALCH=0.0 -! -!WR_NH3/WR_HCHO=0.0 -! -!WR_NH3/WR_ALD2=0.0 -! -!WR_NH3/WR_GLY=0.0 -! -!WR_NH3/WR_MGLY=0.0 -! -!WR_NH3/WR_KETL=0.0 -! -!WR_NH3/WR_ORA1=0.0 -! -!WR_NH3/WR_ORA2=0.0 -! -!WR_NH3/WR_ACID=0.0 -! -!WR_NH3/WR_RP16=0.0 -! -!WR_NH3/WR_UR21=0.0 -! -!WR_NH3/WR_UR28=0.0 -! -!WR_NH3/WR_ACID2=0.0 -! -!WR_NH3/WR_ASO3=0.0 -! -!WR_NH3/WR_ASO4=0.0 -! -!WR_NH3/WR_ASO5=0.0 -! -!WR_NH3/WR_AHSO5=0.0 -! -!WR_NH3/WR_AHMS=0.0 -! -!WR_OH/NO=0.0 -! -!WR_OH/NO2=0.0 -! -!WR_OH/O3=0.0 -! -!WR_OH/HONO=0.0 -! -!WR_OH/HNO3=0.0 -! -!WR_OH/HNO4=0.0 -! -!WR_OH/N2O5=0.0 -! -!WR_OH/NO3=0.0 -! -!WR_OH/NH3=0.0 -! -!WR_OH/HO2=0.0 -! -!WR_OH/CO=0.0 -! -!WR_OH/H2O2=0.0 -! -!WR_OH/SO2=0.0 -! -!WR_OH/H2SO4=0.0 -! -!WR_OH/OH=+KTR11 - PJAC(:,135,15)=+TPK%KTR11(:) -! -!WR_OH/ETHE=0.0 -! -!WR_OH/OLEL=0.0 -! -!WR_OH/OLEH=0.0 -! -!WR_OH/ALKL=0.0 -! -!WR_OH/ALKM=0.0 -! -!WR_OH/ALKH=0.0 -! -!WR_OH/AROH=0.0 -! -!WR_OH/AROL=0.0 -! -!WR_OH/AROO=0.0 -! -!WR_OH/ARAL=0.0 -! -!WR_OH/ARAC=0.0 -! -!WR_OH/PAH=0.0 -! -!WR_OH/HCHO=0.0 -! -!WR_OH/ALD2=0.0 -! -!WR_OH/KETL=0.0 -! -!WR_OH/KETH=0.0 -! -!WR_OH/MEOH=0.0 -! -!WR_OH/ETOH=0.0 -! -!WR_OH/ALCH=0.0 -! -!WR_OH/ISOP=0.0 -! -!WR_OH/BIOL=0.0 -! -!WR_OH/BIOH=0.0 -! -!WR_OH/MTBE=0.0 -! -!WR_OH/MVK=0.0 -! -!WR_OH/MCR=0.0 -! -!WR_OH/MGLY=0.0 -! -!WR_OH/GLY=0.0 -! -!WR_OH/ORA1=0.0 -! -!WR_OH/ORA2=0.0 -! -!WR_OH/ACID=0.0 -! -!WR_OH/UR28=0.0 -! -!WR_OH/UR21=0.0 -! -!WR_OH/URG2=0.0 -! -!WR_OH/UR26=0.0 -! -!WR_OH/RPG2=0.0 -! -!WR_OH/RP18=0.0 -! -!WR_OH/RPG3=0.0 -! -!WR_OH/URG4=0.0 -! -!WR_OH/UR8=0.0 -! -!WR_OH/UR17=0.0 -! -!WR_OH/UR7=0.0 -! -!WR_OH/RPR3=0.0 -! -!WR_OH/URG6=0.0 -! -!WR_OH/UR22=0.0 -! -!WR_OH/URG7=0.0 -! -!WR_OH/RPR4=0.0 -! -!WR_OH/RPR7=0.0 -! -!WR_OH/RPG7=0.0 -! -!WR_OH/URG8=0.0 -! -!WR_OH/UR19=0.0 -! -!WR_OH/URG9=0.0 -! -!WR_OH/AP7=0.0 -! -!WR_OH/URG10=0.0 -! -!WR_OH/RPR1=0.0 -! -!WR_OH/RPR5=0.0 -! -!WR_OH/RPR8=0.0 -! -!WR_OH/RP10=0.0 -! -!WR_OH/RP11=0.0 -! -!WR_OH/RP16=0.0 -! -!WR_OH/RPRL=0.0 -! -!WR_OH/APAN=0.0 -! -!WR_OH/PAN1=0.0 -! -!WR_OH/PAN2=0.0 -! -!WR_OH/PAN3=0.0 -! -!WR_OH/PAN4=0.0 -! -!WR_OH/PAN6=0.0 -! -!WR_OH/PAN7=0.0 -! -!WR_OH/PAN8=0.0 -! -!WR_OH/PN10=0.0 -! -!WR_OH/RO2T=0.0 -! -!WR_OH/RO21=0.0 -! -!WR_OH/RO25=0.0 -! -!WR_OH/WC_O3=0.0 -! -!WR_OH/WC_H2O2=0.0 -! -!WR_OH/WC_NO=0.0 -! -!WR_OH/WC_NO2=0.0 -! -!WR_OH/WC_NO3=0.0 -! -!WR_OH/WC_N2O5=0.0 -! -!WR_OH/WC_HONO=0.0 -! -!WR_OH/WC_HNO3=0.0 -! -!WR_OH/WC_HNO4=0.0 -! -!WR_OH/WC_NH3=0.0 -! -!WR_OH/WC_OH=0.0 -! -!WR_OH/WC_HO2=0.0 -! -!WR_OH/WC_CO2=0.0 -! -!WR_OH/WC_SO2=0.0 -! -!WR_OH/WC_H2SO4=0.0 -! -!WR_OH/WC_RO21=0.0 -! -!WR_OH/WC_RO25=0.0 -! -!WR_OH/WC_MEOH=0.0 -! -!WR_OH/WC_ETOH=0.0 -! -!WR_OH/WC_ALCH=0.0 -! -!WR_OH/WC_HCHO=0.0 -! -!WR_OH/WC_ALD2=0.0 -! -!WR_OH/WC_GLY=0.0 -! -!WR_OH/WC_MGLY=0.0 -! -!WR_OH/WC_KETL=0.0 -! -!WR_OH/WC_ORA1=0.0 -! -!WR_OH/WC_ORA2=0.0 -! -!WR_OH/WC_ACID=0.0 -! -!WR_OH/WC_RP16=0.0 -! -!WR_OH/WC_UR21=0.0 -! -!WR_OH/WC_UR28=0.0 -! -!WR_OH/WC_ACID2=0.0 -! -!WR_OH/WC_ASO3=0.0 -! -!WR_OH/WC_ASO4=0.0 -! -!WR_OH/WC_ASO5=0.0 -! -!WR_OH/WC_AHSO5=0.0 -! -!WR_OH/WC_AHMS=0.0 -! -!WR_OH/WR_O3=+KR6*<WR_HO2> - PJAC(:,135,125)=+TPK%KR6(:)*PCONC(:,136) -! -!WR_OH/WR_H2O2=+KR1+KR1-KR4*<WR_OH> - PJAC(:,135,126)=+TPK%KR1(:)+TPK%KR1(:)-TPK%KR4(:)*PCONC(:,135) -! -!WR_OH/WR_NO=0.0 -! -!WR_OH/WR_NO2=0.0 -! -!WR_OH/WR_NO3=0.0 -! -!WR_OH/WR_N2O5=0.0 -! -!WR_OH/WR_HONO=-KR8*<WR_OH> - PJAC(:,135,131)=-TPK%KR8(:)*PCONC(:,135) -! -!WR_OH/WR_HNO3=+KR13 - PJAC(:,135,132)=+TPK%KR13(:) -! -!WR_OH/WR_HNO4=0.0 -! -!WR_OH/WR_NH3=0.0 -! -!WR_OH/WR_OH=-KTR42-KR2*<WR_OH>-KR2*<WR_OH>-KR2*<WR_OH>-KR2*<WR_OH>-KR3*<WR_HO2 -!>-KR4*<WR_H2O2>-KR7*<WR_SO2>-KR8*<WR_HONO>-KR19*<WR_AHMS>-KR30*<WR_MEOH>-KR31* -!<WR_ETOH>-KR32*<WR_ALCH>-KR33*<WR_HCHO>-KR34*<WR_ALD2>-KR35*<WR_GLY>-KR36*<WR_ -!MGLY>-KR37*<WR_KETL>-KR38*<WR_ORA1>-KR39*<WR_ORA2>-KR40*<WR_ACID>-KR41*<WR_ACI -!D>-KR42*<WR_UR28>-KR43*<WR_UR21>-KR44*<WR_RP16>-KR45*<WR_RP16>-KR46*<WR_ACID2> - PJAC(:,135,135)=-TPK%KTR42(:)-TPK%KR2(:)*PCONC(:,135)-TPK%KR2(:)*PCONC(:,135)-& -&TPK%KR2(:)*PCONC(:,135)-TPK%KR2(:)*PCONC(:,135)-TPK%KR3(:)*PCONC(:,136)-TPK%KR& -&4(:)*PCONC(:,126)-TPK%KR7(:)*PCONC(:,138)-TPK%KR8(:)*PCONC(:,131)-TPK%KR19(:)*& -&PCONC(:,161)-TPK%KR30(:)*PCONC(:,142)-TPK%KR31(:)*PCONC(:,143)-TPK%KR32(:)*PCO& -&NC(:,144)-TPK%KR33(:)*PCONC(:,145)-TPK%KR34(:)*PCONC(:,146)-TPK%KR35(:)*PCONC(& -&:,147)-TPK%KR36(:)*PCONC(:,148)-TPK%KR37(:)*PCONC(:,149)-TPK%KR38(:)*PCONC(:,1& -&50)-TPK%KR39(:)*PCONC(:,151)-TPK%KR40(:)*PCONC(:,152)-TPK%KR41(:)*PCONC(:,152)& -&-TPK%KR42(:)*PCONC(:,155)-TPK%KR43(:)*PCONC(:,154)-TPK%KR44(:)*PCONC(:,153)-TP& -&K%KR45(:)*PCONC(:,153)-TPK%KR46(:)*PCONC(:,156) -! -!WR_OH/WR_HO2=-KR3*<WR_OH>+KR6*<WR_O3> - PJAC(:,135,136)=-TPK%KR3(:)*PCONC(:,135)+TPK%KR6(:)*PCONC(:,125) -! -!WR_OH/WR_CO2=0.0 -! -!WR_OH/WR_SO2=-KR7*<WR_OH> - PJAC(:,135,138)=-TPK%KR7(:)*PCONC(:,135) -! -!WR_OH/WR_H2SO4=0.0 -! -!WR_OH/WR_RO21=0.0 -! -!WR_OH/WR_RO25=0.0 -! -!WR_OH/WR_MEOH=-KR30*<WR_OH> - PJAC(:,135,142)=-TPK%KR30(:)*PCONC(:,135) -! -!WR_OH/WR_ETOH=-KR31*<WR_OH> - PJAC(:,135,143)=-TPK%KR31(:)*PCONC(:,135) -! -!WR_OH/WR_ALCH=-KR32*<WR_OH> - PJAC(:,135,144)=-TPK%KR32(:)*PCONC(:,135) -! -!WR_OH/WR_HCHO=-KR33*<WR_OH> - PJAC(:,135,145)=-TPK%KR33(:)*PCONC(:,135) -! -!WR_OH/WR_ALD2=-KR34*<WR_OH> - PJAC(:,135,146)=-TPK%KR34(:)*PCONC(:,135) -! -!WR_OH/WR_GLY=-KR35*<WR_OH> - PJAC(:,135,147)=-TPK%KR35(:)*PCONC(:,135) -! -!WR_OH/WR_MGLY=-KR36*<WR_OH> - PJAC(:,135,148)=-TPK%KR36(:)*PCONC(:,135) -! -!WR_OH/WR_KETL=-KR37*<WR_OH> - PJAC(:,135,149)=-TPK%KR37(:)*PCONC(:,135) -! -!WR_OH/WR_ORA1=-KR38*<WR_OH> - PJAC(:,135,150)=-TPK%KR38(:)*PCONC(:,135) -! -!WR_OH/WR_ORA2=-KR39*<WR_OH> - PJAC(:,135,151)=-TPK%KR39(:)*PCONC(:,135) -! -!WR_OH/WR_ACID=-KR40*<WR_OH>-KR41*<WR_OH> - PJAC(:,135,152)=-TPK%KR40(:)*PCONC(:,135)-TPK%KR41(:)*PCONC(:,135) -! -!WR_OH/WR_RP16=-KR44*<WR_OH>-KR45*<WR_OH> - PJAC(:,135,153)=-TPK%KR44(:)*PCONC(:,135)-TPK%KR45(:)*PCONC(:,135) -! -!WR_OH/WR_UR21=-KR43*<WR_OH> - PJAC(:,135,154)=-TPK%KR43(:)*PCONC(:,135) -! -!WR_OH/WR_UR28=-KR42*<WR_OH> - PJAC(:,135,155)=-TPK%KR42(:)*PCONC(:,135) -! -!WR_OH/WR_ACID2=-KR46*<WR_OH> - PJAC(:,135,156)=-TPK%KR46(:)*PCONC(:,135) -! -!WR_OH/WR_ASO3=0.0 -! -!WR_OH/WR_ASO4=+KR24 - PJAC(:,135,158)=+TPK%KR24(:) -! -!WR_OH/WR_ASO5=0.0 -! -!WR_OH/WR_AHSO5=0.0 -! -!WR_OH/WR_AHMS=-KR19*<WR_OH> - PJAC(:,135,161)=-TPK%KR19(:)*PCONC(:,135) -! -RETURN -END SUBROUTINE SUBJ26 -! -SUBROUTINE SUBJ27 -! -!Indices 136 a 140 -! -! -!WR_HO2/NO=0.0 -! -!WR_HO2/NO2=0.0 -! -!WR_HO2/O3=0.0 -! -!WR_HO2/HONO=0.0 -! -!WR_HO2/HNO3=0.0 -! -!WR_HO2/HNO4=0.0 -! -!WR_HO2/N2O5=0.0 -! -!WR_HO2/NO3=0.0 -! -!WR_HO2/NH3=0.0 -! -!WR_HO2/HO2=+KTR12 - PJAC(:,136,10)=+TPK%KTR12(:) -! -!WR_HO2/CO=0.0 -! -!WR_HO2/H2O2=0.0 -! -!WR_HO2/SO2=0.0 -! -!WR_HO2/H2SO4=0.0 -! -!WR_HO2/OH=0.0 -! -!WR_HO2/ETHE=0.0 -! -!WR_HO2/OLEL=0.0 -! -!WR_HO2/OLEH=0.0 -! -!WR_HO2/ALKL=0.0 -! -!WR_HO2/ALKM=0.0 -! -!WR_HO2/ALKH=0.0 -! -!WR_HO2/AROH=0.0 -! -!WR_HO2/AROL=0.0 -! -!WR_HO2/AROO=0.0 -! -!WR_HO2/ARAL=0.0 -! -!WR_HO2/ARAC=0.0 -! -!WR_HO2/PAH=0.0 -! -!WR_HO2/HCHO=0.0 -! -!WR_HO2/ALD2=0.0 -! -!WR_HO2/KETL=0.0 -! -!WR_HO2/KETH=0.0 -! -!WR_HO2/MEOH=0.0 -! -!WR_HO2/ETOH=0.0 -! -!WR_HO2/ALCH=0.0 -! -!WR_HO2/ISOP=0.0 -! -!WR_HO2/BIOL=0.0 -! -!WR_HO2/BIOH=0.0 -! -!WR_HO2/MTBE=0.0 -! -!WR_HO2/MVK=0.0 -! -!WR_HO2/MCR=0.0 -! -!WR_HO2/MGLY=0.0 -! -!WR_HO2/GLY=0.0 -! -!WR_HO2/ORA1=0.0 -! -!WR_HO2/ORA2=0.0 -! -!WR_HO2/ACID=0.0 -! -!WR_HO2/UR28=0.0 -! -!WR_HO2/UR21=0.0 -! -!WR_HO2/URG2=0.0 -! -!WR_HO2/UR26=0.0 -! -!WR_HO2/RPG2=0.0 -! -!WR_HO2/RP18=0.0 -! -!WR_HO2/RPG3=0.0 -! -!WR_HO2/URG4=0.0 -! -!WR_HO2/UR8=0.0 -! -!WR_HO2/UR17=0.0 -! -!WR_HO2/UR7=0.0 -! -!WR_HO2/RPR3=0.0 -! -!WR_HO2/URG6=0.0 -! -!WR_HO2/UR22=0.0 -! -!WR_HO2/URG7=0.0 -! -!WR_HO2/RPR4=0.0 -! -!WR_HO2/RPR7=0.0 -! -!WR_HO2/RPG7=0.0 -! -!WR_HO2/URG8=0.0 -! -!WR_HO2/UR19=0.0 -! -!WR_HO2/URG9=0.0 -! -!WR_HO2/AP7=0.0 -! -!WR_HO2/URG10=0.0 -! -!WR_HO2/RPR1=0.0 -! -!WR_HO2/RPR5=0.0 -! -!WR_HO2/RPR8=0.0 -! -!WR_HO2/RP10=0.0 -! -!WR_HO2/RP11=0.0 -! -!WR_HO2/RP16=0.0 -! -!WR_HO2/RPRL=0.0 -! -!WR_HO2/APAN=0.0 -! -!WR_HO2/PAN1=0.0 -! -!WR_HO2/PAN2=0.0 -! -!WR_HO2/PAN3=0.0 -! -!WR_HO2/PAN4=0.0 -! -!WR_HO2/PAN6=0.0 -! -!WR_HO2/PAN7=0.0 -! -!WR_HO2/PAN8=0.0 -! -!WR_HO2/PN10=0.0 -! -!WR_HO2/RO2T=0.0 -! -!WR_HO2/RO21=0.0 -! -!WR_HO2/RO25=0.0 -! -!WR_HO2/WC_O3=0.0 -! -!WR_HO2/WC_H2O2=0.0 -! -!WR_HO2/WC_NO=0.0 -! -!WR_HO2/WC_NO2=0.0 -! -!WR_HO2/WC_NO3=0.0 -! -!WR_HO2/WC_N2O5=0.0 -! -!WR_HO2/WC_HONO=0.0 -! -!WR_HO2/WC_HNO3=0.0 -! -!WR_HO2/WC_HNO4=0.0 -! -!WR_HO2/WC_NH3=0.0 -! -!WR_HO2/WC_OH=0.0 -! -!WR_HO2/WC_HO2=0.0 -! -!WR_HO2/WC_CO2=0.0 -! -!WR_HO2/WC_SO2=0.0 -! -!WR_HO2/WC_H2SO4=0.0 -! -!WR_HO2/WC_RO21=0.0 -! -!WR_HO2/WC_RO25=0.0 -! -!WR_HO2/WC_MEOH=0.0 -! -!WR_HO2/WC_ETOH=0.0 -! -!WR_HO2/WC_ALCH=0.0 -! -!WR_HO2/WC_HCHO=0.0 -! -!WR_HO2/WC_ALD2=0.0 -! -!WR_HO2/WC_GLY=0.0 -! -!WR_HO2/WC_MGLY=0.0 -! -!WR_HO2/WC_KETL=0.0 -! -!WR_HO2/WC_ORA1=0.0 -! -!WR_HO2/WC_ORA2=0.0 -! -!WR_HO2/WC_ACID=0.0 -! -!WR_HO2/WC_RP16=0.0 -! -!WR_HO2/WC_UR21=0.0 -! -!WR_HO2/WC_UR28=0.0 -! -!WR_HO2/WC_ACID2=0.0 -! -!WR_HO2/WC_ASO3=0.0 -! -!WR_HO2/WC_ASO4=0.0 -! -!WR_HO2/WC_ASO5=0.0 -! -!WR_HO2/WC_AHSO5=0.0 -! -!WR_HO2/WC_AHMS=0.0 -! -!WR_HO2/WR_O3=-KR6*<WR_HO2> - PJAC(:,136,125)=-TPK%KR6(:)*PCONC(:,136) -! -!WR_HO2/WR_H2O2=+KR4*<WR_OH> - PJAC(:,136,126)=+TPK%KR4(:)*PCONC(:,135) -! -!WR_HO2/WR_NO=0.0 -! -!WR_HO2/WR_NO2=-KR9*<WR_HO2> - PJAC(:,136,128)=-TPK%KR9(:)*PCONC(:,136) -! -!WR_HO2/WR_NO3=0.0 -! -!WR_HO2/WR_N2O5=0.0 -! -!WR_HO2/WR_HONO=0.0 -! -!WR_HO2/WR_HNO3=0.0 -! -!WR_HO2/WR_HNO4=+KR10 - PJAC(:,136,133)=+TPK%KR10(:) -! -!WR_HO2/WR_NH3=0.0 -! -!WR_HO2/WR_OH=-KR3*<WR_HO2>+KR4*<WR_H2O2>+KR19*<WR_AHMS>+KR30*<WR_MEOH>+KR31*<W -!R_ETOH>+KR32*<WR_ALCH>+KR33*<WR_HCHO>+KR35*<WR_GLY>+KR36*<WR_MGLY>+KR37*<WR_KE -!TL>+KR38*<WR_ORA1>+0.11*KR41*<WR_ACID>+KR42*<WR_UR28>+0.81*KR43*<WR_UR21>+KR44 -!*<WR_RP16>+0.71*KR45*<WR_RP16> - PJAC(:,136,135)=-TPK%KR3(:)*PCONC(:,136)+TPK%KR4(:)*PCONC(:,126)+TPK%KR19(:)*P& -&CONC(:,161)+TPK%KR30(:)*PCONC(:,142)+TPK%KR31(:)*PCONC(:,143)+TPK%KR32(:)*PCON& -&C(:,144)+TPK%KR33(:)*PCONC(:,145)+TPK%KR35(:)*PCONC(:,147)+TPK%KR36(:)*PCONC(:& -&,148)+TPK%KR37(:)*PCONC(:,149)+TPK%KR38(:)*PCONC(:,150)+0.11*TPK%KR41(:)*PCONC& -&(:,152)+TPK%KR42(:)*PCONC(:,155)+0.81*TPK%KR43(:)*PCONC(:,154)+TPK%KR44(:)*PCO& -&NC(:,153)+0.71*TPK%KR45(:)*PCONC(:,153) -! -!WR_HO2/WR_HO2=-KTR43-KR3*<WR_OH>-KR5*<WR_HO2>-KR5*<WR_HO2>-KR5*<WR_HO2>-KR5*<W -!R_HO2>-KR6*<WR_O3>-KR9*<WR_NO2>-KR21*<WR_ASO5> - PJAC(:,136,136)=-TPK%KTR43(:)-TPK%KR3(:)*PCONC(:,135)-TPK%KR5(:)*PCONC(:,136)-& -&TPK%KR5(:)*PCONC(:,136)-TPK%KR5(:)*PCONC(:,136)-TPK%KR5(:)*PCONC(:,136)-TPK%KR& -&6(:)*PCONC(:,125)-TPK%KR9(:)*PCONC(:,128)-TPK%KR21(:)*PCONC(:,159) -! -!WR_HO2/WR_CO2=0.0 -! -!WR_HO2/WR_SO2=0.0 -! -!WR_HO2/WR_H2SO4=0.0 -! -!WR_HO2/WR_RO21=+2.00*KR27*<WR_RO21>+2.00*KR27*<WR_RO21> - PJAC(:,136,140)=+2.00*TPK%KR27(:)*PCONC(:,140)+2.00*TPK%KR27(:)*PCONC(:,140) -! -!WR_HO2/WR_RO25=+KR29*<WR_RO25>+KR29*<WR_RO25> - PJAC(:,136,141)=+TPK%KR29(:)*PCONC(:,141)+TPK%KR29(:)*PCONC(:,141) -! -!WR_HO2/WR_MEOH=+KR30*<WR_OH> - PJAC(:,136,142)=+TPK%KR30(:)*PCONC(:,135) -! -!WR_HO2/WR_ETOH=+KR31*<WR_OH> - PJAC(:,136,143)=+TPK%KR31(:)*PCONC(:,135) -! -!WR_HO2/WR_ALCH=+KR32*<WR_OH> - PJAC(:,136,144)=+TPK%KR32(:)*PCONC(:,135) -! -!WR_HO2/WR_HCHO=+KR33*<WR_OH> - PJAC(:,136,145)=+TPK%KR33(:)*PCONC(:,135) -! -!WR_HO2/WR_ALD2=0.0 -! -!WR_HO2/WR_GLY=+KR35*<WR_OH> - PJAC(:,136,147)=+TPK%KR35(:)*PCONC(:,135) -! -!WR_HO2/WR_MGLY=+KR36*<WR_OH> - PJAC(:,136,148)=+TPK%KR36(:)*PCONC(:,135) -! -!WR_HO2/WR_KETL=+KR37*<WR_OH> - PJAC(:,136,149)=+TPK%KR37(:)*PCONC(:,135) -! -!WR_HO2/WR_ORA1=+KR38*<WR_OH> - PJAC(:,136,150)=+TPK%KR38(:)*PCONC(:,135) -! -!WR_HO2/WR_ORA2=0.0 -! -!WR_HO2/WR_ACID=+0.11*KR41*<WR_OH> - PJAC(:,136,152)=+0.11*TPK%KR41(:)*PCONC(:,135) -! -!WR_HO2/WR_RP16=+KR44*<WR_OH>+0.71*KR45*<WR_OH> - PJAC(:,136,153)=+TPK%KR44(:)*PCONC(:,135)+0.71*TPK%KR45(:)*PCONC(:,135) -! -!WR_HO2/WR_UR21=+0.81*KR43*<WR_OH> - PJAC(:,136,154)=+0.81*TPK%KR43(:)*PCONC(:,135) -! -!WR_HO2/WR_UR28=+KR42*<WR_OH> - PJAC(:,136,155)=+TPK%KR42(:)*PCONC(:,135) -! -!WR_HO2/WR_ACID2=0.0 -! -!WR_HO2/WR_ASO3=0.0 -! -!WR_HO2/WR_ASO4=0.0 -! -!WR_HO2/WR_ASO5=-KR21*<WR_HO2> - PJAC(:,136,159)=-TPK%KR21(:)*PCONC(:,136) -! -!WR_HO2/WR_AHSO5=0.0 -! -!WR_HO2/WR_AHMS=+KR19*<WR_OH> - PJAC(:,136,161)=+TPK%KR19(:)*PCONC(:,135) -! -!WR_CO2/NO=0.0 -! -!WR_CO2/NO2=0.0 -! -!WR_CO2/O3=0.0 -! -!WR_CO2/HONO=0.0 -! -!WR_CO2/HNO3=0.0 -! -!WR_CO2/HNO4=0.0 -! -!WR_CO2/N2O5=0.0 -! -!WR_CO2/NO3=0.0 -! -!WR_CO2/NH3=0.0 -! -!WR_CO2/HO2=0.0 -! -!WR_CO2/CO=0.0 -! -!WR_CO2/H2O2=0.0 -! -!WR_CO2/SO2=0.0 -! -!WR_CO2/H2SO4=0.0 -! -!WR_CO2/OH=0.0 -! -!WR_CO2/ETHE=0.0 -! -!WR_CO2/OLEL=0.0 -! -!WR_CO2/OLEH=0.0 -! -!WR_CO2/ALKL=0.0 -! -!WR_CO2/ALKM=0.0 -! -!WR_CO2/ALKH=0.0 -! -!WR_CO2/AROH=0.0 -! -!WR_CO2/AROL=0.0 -! -!WR_CO2/AROO=0.0 -! -!WR_CO2/ARAL=0.0 -! -!WR_CO2/ARAC=0.0 -! -!WR_CO2/PAH=0.0 -! -!WR_CO2/HCHO=0.0 -! -!WR_CO2/ALD2=0.0 -! -!WR_CO2/KETL=0.0 -! -!WR_CO2/KETH=0.0 -! -!WR_CO2/MEOH=0.0 -! -!WR_CO2/ETOH=0.0 -! -!WR_CO2/ALCH=0.0 -! -!WR_CO2/ISOP=0.0 -! -!WR_CO2/BIOL=0.0 -! -!WR_CO2/BIOH=0.0 -! -!WR_CO2/MTBE=0.0 -! -!WR_CO2/MVK=0.0 -! -!WR_CO2/MCR=0.0 -! -!WR_CO2/MGLY=0.0 -! -!WR_CO2/GLY=0.0 -! -!WR_CO2/ORA1=0.0 -! -!WR_CO2/ORA2=0.0 -! -!WR_CO2/ACID=0.0 -! -!WR_CO2/UR28=0.0 -! -!WR_CO2/UR21=0.0 -! -!WR_CO2/URG2=0.0 -! -!WR_CO2/UR26=0.0 -! -!WR_CO2/RPG2=0.0 -! -!WR_CO2/RP18=0.0 -! -!WR_CO2/RPG3=0.0 -! -!WR_CO2/URG4=0.0 -! -!WR_CO2/UR8=0.0 -! -!WR_CO2/UR17=0.0 -! -!WR_CO2/UR7=0.0 -! -!WR_CO2/RPR3=0.0 -! -!WR_CO2/URG6=0.0 -! -!WR_CO2/UR22=0.0 -! -!WR_CO2/URG7=0.0 -! -!WR_CO2/RPR4=0.0 -! -!WR_CO2/RPR7=0.0 -! -!WR_CO2/RPG7=0.0 -! -!WR_CO2/URG8=0.0 -! -!WR_CO2/UR19=0.0 -! -!WR_CO2/URG9=0.0 -! -!WR_CO2/AP7=0.0 -! -!WR_CO2/URG10=0.0 -! -!WR_CO2/RPR1=0.0 -! -!WR_CO2/RPR5=0.0 -! -!WR_CO2/RPR8=0.0 -! -!WR_CO2/RP10=0.0 -! -!WR_CO2/RP11=0.0 -! -!WR_CO2/RP16=0.0 -! -!WR_CO2/RPRL=0.0 -! -!WR_CO2/APAN=0.0 -! -!WR_CO2/PAN1=0.0 -! -!WR_CO2/PAN2=0.0 -! -!WR_CO2/PAN3=0.0 -! -!WR_CO2/PAN4=0.0 -! -!WR_CO2/PAN6=0.0 -! -!WR_CO2/PAN7=0.0 -! -!WR_CO2/PAN8=0.0 -! -!WR_CO2/PN10=0.0 -! -!WR_CO2/RO2T=0.0 -! -!WR_CO2/RO21=0.0 -! -!WR_CO2/RO25=0.0 -! -!WR_CO2/WC_O3=0.0 -! -!WR_CO2/WC_H2O2=0.0 -! -!WR_CO2/WC_NO=0.0 -! -!WR_CO2/WC_NO2=0.0 -! -!WR_CO2/WC_NO3=0.0 -! -!WR_CO2/WC_N2O5=0.0 -! -!WR_CO2/WC_HONO=0.0 -! -!WR_CO2/WC_HNO3=0.0 -! -!WR_CO2/WC_HNO4=0.0 -! -!WR_CO2/WC_NH3=0.0 -! -!WR_CO2/WC_OH=0.0 -! -!WR_CO2/WC_HO2=0.0 -! -!WR_CO2/WC_CO2=0.0 -! -!WR_CO2/WC_SO2=0.0 -! -!WR_CO2/WC_H2SO4=0.0 -! -!WR_CO2/WC_RO21=0.0 -! -!WR_CO2/WC_RO25=0.0 -! -!WR_CO2/WC_MEOH=0.0 -! -!WR_CO2/WC_ETOH=0.0 -! -!WR_CO2/WC_ALCH=0.0 -! -!WR_CO2/WC_HCHO=0.0 -! -!WR_CO2/WC_ALD2=0.0 -! -!WR_CO2/WC_GLY=0.0 -! -!WR_CO2/WC_MGLY=0.0 -! -!WR_CO2/WC_KETL=0.0 -! -!WR_CO2/WC_ORA1=0.0 -! -!WR_CO2/WC_ORA2=0.0 -! -!WR_CO2/WC_ACID=0.0 -! -!WR_CO2/WC_RP16=0.0 -! -!WR_CO2/WC_UR21=0.0 -! -!WR_CO2/WC_UR28=0.0 -! -!WR_CO2/WC_ACID2=0.0 -! -!WR_CO2/WC_ASO3=0.0 -! -!WR_CO2/WC_ASO4=0.0 -! -!WR_CO2/WC_ASO5=0.0 -! -!WR_CO2/WC_AHSO5=0.0 -! -!WR_CO2/WC_AHMS=0.0 -! -!WR_CO2/WR_O3=0.0 -! -!WR_CO2/WR_H2O2=0.0 -! -!WR_CO2/WR_NO=0.0 -! -!WR_CO2/WR_NO2=0.0 -! -!WR_CO2/WR_NO3=0.0 -! -!WR_CO2/WR_N2O5=0.0 -! -!WR_CO2/WR_HONO=0.0 -! -!WR_CO2/WR_HNO3=0.0 -! -!WR_CO2/WR_HNO4=0.0 -! -!WR_CO2/WR_NH3=0.0 -! -!WR_CO2/WR_OH=+KR34*<WR_ALD2>+KR37*<WR_KETL>+KR38*<WR_ORA1>+KR40*<WR_ACID>+2*KR -!42*<WR_UR28>+0.43*KR43*<WR_UR21>+2*KR45*<WR_RP16> - PJAC(:,137,135)=+TPK%KR34(:)*PCONC(:,146)+TPK%KR37(:)*PCONC(:,149)+TPK%KR38(:)& -&*PCONC(:,150)+TPK%KR40(:)*PCONC(:,152)+2*TPK%KR42(:)*PCONC(:,155)+0.43*TPK%KR4& -&3(:)*PCONC(:,154)+2*TPK%KR45(:)*PCONC(:,153) -! -!WR_CO2/WR_HO2=0.0 -! -!WR_CO2/WR_CO2=-KTR44 - PJAC(:,137,137)=-TPK%KTR44(:) -! -!WR_CO2/WR_SO2=0.0 -! -!WR_CO2/WR_H2SO4=0.0 -! -!WR_CO2/WR_RO21=0.0 -! -!WR_CO2/WR_RO25=0.0 -! -!WR_CO2/WR_MEOH=0.0 -! -!WR_CO2/WR_ETOH=0.0 -! -!WR_CO2/WR_ALCH=0.0 -! -!WR_CO2/WR_HCHO=0.0 -! -!WR_CO2/WR_ALD2=+KR34*<WR_OH> - PJAC(:,137,146)=+TPK%KR34(:)*PCONC(:,135) -! -!WR_CO2/WR_GLY=0.0 -! -!WR_CO2/WR_MGLY=0.0 -! -!WR_CO2/WR_KETL=+KR37*<WR_OH> - PJAC(:,137,149)=+TPK%KR37(:)*PCONC(:,135) -! -!WR_CO2/WR_ORA1=+KR38*<WR_OH> - PJAC(:,137,150)=+TPK%KR38(:)*PCONC(:,135) -! -!WR_CO2/WR_ORA2=0.0 -! -!WR_CO2/WR_ACID=+KR40*<WR_OH> - PJAC(:,137,152)=+TPK%KR40(:)*PCONC(:,135) -! -!WR_CO2/WR_RP16=+2*KR45*<WR_OH> - PJAC(:,137,153)=+2*TPK%KR45(:)*PCONC(:,135) -! -!WR_CO2/WR_UR21=+0.43*KR43*<WR_OH> - PJAC(:,137,154)=+0.43*TPK%KR43(:)*PCONC(:,135) -! -!WR_CO2/WR_UR28=+2*KR42*<WR_OH> - PJAC(:,137,155)=+2*TPK%KR42(:)*PCONC(:,135) -! -!WR_CO2/WR_ACID2=0.0 -! -!WR_CO2/WR_ASO3=0.0 -! -!WR_CO2/WR_ASO4=0.0 -! -!WR_CO2/WR_ASO5=0.0 -! -!WR_CO2/WR_AHSO5=0.0 -! -!WR_CO2/WR_AHMS=0.0 -! -!WR_SO2/NO=0.0 -! -!WR_SO2/NO2=0.0 -! -!WR_SO2/O3=0.0 -! -!WR_SO2/HONO=0.0 -! -!WR_SO2/HNO3=0.0 -! -!WR_SO2/HNO4=0.0 -! -!WR_SO2/N2O5=0.0 -! -!WR_SO2/NO3=0.0 -! -!WR_SO2/NH3=0.0 -! -!WR_SO2/HO2=0.0 -! -!WR_SO2/CO=0.0 -! -!WR_SO2/H2O2=0.0 -! -!WR_SO2/SO2=+KTR14 - PJAC(:,138,13)=+TPK%KTR14(:) -! -!WR_SO2/H2SO4=0.0 -! -!WR_SO2/OH=0.0 -! -!WR_SO2/ETHE=0.0 -! -!WR_SO2/OLEL=0.0 -! -!WR_SO2/OLEH=0.0 -! -!WR_SO2/ALKL=0.0 -! -!WR_SO2/ALKM=0.0 -! -!WR_SO2/ALKH=0.0 -! -!WR_SO2/AROH=0.0 -! -!WR_SO2/AROL=0.0 -! -!WR_SO2/AROO=0.0 -! -!WR_SO2/ARAL=0.0 -! -!WR_SO2/ARAC=0.0 -! -!WR_SO2/PAH=0.0 -! -!WR_SO2/HCHO=0.0 -! -!WR_SO2/ALD2=0.0 -! -!WR_SO2/KETL=0.0 -! -!WR_SO2/KETH=0.0 -! -!WR_SO2/MEOH=0.0 -! -!WR_SO2/ETOH=0.0 -! -!WR_SO2/ALCH=0.0 -! -!WR_SO2/ISOP=0.0 -! -!WR_SO2/BIOL=0.0 -! -!WR_SO2/BIOH=0.0 -! -!WR_SO2/MTBE=0.0 -! -!WR_SO2/MVK=0.0 -! -!WR_SO2/MCR=0.0 -! -!WR_SO2/MGLY=0.0 -! -!WR_SO2/GLY=0.0 -! -!WR_SO2/ORA1=0.0 -! -!WR_SO2/ORA2=0.0 -! -!WR_SO2/ACID=0.0 -! -!WR_SO2/UR28=0.0 -! -!WR_SO2/UR21=0.0 -! -!WR_SO2/URG2=0.0 -! -!WR_SO2/UR26=0.0 -! -!WR_SO2/RPG2=0.0 -! -!WR_SO2/RP18=0.0 -! -!WR_SO2/RPG3=0.0 -! -!WR_SO2/URG4=0.0 -! -!WR_SO2/UR8=0.0 -! -!WR_SO2/UR17=0.0 -! -!WR_SO2/UR7=0.0 -! -!WR_SO2/RPR3=0.0 -! -!WR_SO2/URG6=0.0 -! -!WR_SO2/UR22=0.0 -! -!WR_SO2/URG7=0.0 -! -!WR_SO2/RPR4=0.0 -! -!WR_SO2/RPR7=0.0 -! -!WR_SO2/RPG7=0.0 -! -!WR_SO2/URG8=0.0 -! -!WR_SO2/UR19=0.0 -! -!WR_SO2/URG9=0.0 -! -!WR_SO2/AP7=0.0 -! -!WR_SO2/URG10=0.0 -! -!WR_SO2/RPR1=0.0 -! -!WR_SO2/RPR5=0.0 -! -!WR_SO2/RPR8=0.0 -! -!WR_SO2/RP10=0.0 -! -!WR_SO2/RP11=0.0 -! -!WR_SO2/RP16=0.0 -! -!WR_SO2/RPRL=0.0 -! -!WR_SO2/APAN=0.0 -! -!WR_SO2/PAN1=0.0 -! -!WR_SO2/PAN2=0.0 -! -!WR_SO2/PAN3=0.0 -! -!WR_SO2/PAN4=0.0 -! -!WR_SO2/PAN6=0.0 -! -!WR_SO2/PAN7=0.0 -! -!WR_SO2/PAN8=0.0 -! -!WR_SO2/PN10=0.0 -! -!WR_SO2/RO2T=0.0 -! -!WR_SO2/RO21=0.0 -! -!WR_SO2/RO25=0.0 -! -!WR_SO2/WC_O3=0.0 -! -!WR_SO2/WC_H2O2=0.0 -! -!WR_SO2/WC_NO=0.0 -! -!WR_SO2/WC_NO2=0.0 -! -!WR_SO2/WC_NO3=0.0 -! -!WR_SO2/WC_N2O5=0.0 -! -!WR_SO2/WC_HONO=0.0 -! -!WR_SO2/WC_HNO3=0.0 -! -!WR_SO2/WC_HNO4=0.0 -! -!WR_SO2/WC_NH3=0.0 -! -!WR_SO2/WC_OH=0.0 -! -!WR_SO2/WC_HO2=0.0 -! -!WR_SO2/WC_CO2=0.0 -! -!WR_SO2/WC_SO2=0.0 -! -!WR_SO2/WC_H2SO4=0.0 -! -!WR_SO2/WC_RO21=0.0 -! -!WR_SO2/WC_RO25=0.0 -! -!WR_SO2/WC_MEOH=0.0 -! -!WR_SO2/WC_ETOH=0.0 -! -!WR_SO2/WC_ALCH=0.0 -! -!WR_SO2/WC_HCHO=0.0 -! -!WR_SO2/WC_ALD2=0.0 -! -!WR_SO2/WC_GLY=0.0 -! -!WR_SO2/WC_MGLY=0.0 -! -!WR_SO2/WC_KETL=0.0 -! -!WR_SO2/WC_ORA1=0.0 -! -!WR_SO2/WC_ORA2=0.0 -! -!WR_SO2/WC_ACID=0.0 -! -!WR_SO2/WC_RP16=0.0 -! -!WR_SO2/WC_UR21=0.0 -! -!WR_SO2/WC_UR28=0.0 -! -!WR_SO2/WC_ACID2=0.0 -! -!WR_SO2/WC_ASO3=0.0 -! -!WR_SO2/WC_ASO4=0.0 -! -!WR_SO2/WC_ASO5=0.0 -! -!WR_SO2/WC_AHSO5=0.0 -! -!WR_SO2/WC_AHMS=0.0 -! -!WR_SO2/WR_O3=-KR25*<WR_SO2> - PJAC(:,138,125)=-TPK%KR25(:)*PCONC(:,138) -! -!WR_SO2/WR_H2O2=-KR26*<WR_SO2> - PJAC(:,138,126)=-TPK%KR26(:)*PCONC(:,138) -! -!WR_SO2/WR_NO=0.0 -! -!WR_SO2/WR_NO2=0.0 -! -!WR_SO2/WR_NO3=-KR16*<WR_SO2> - PJAC(:,138,129)=-TPK%KR16(:)*PCONC(:,138) -! -!WR_SO2/WR_N2O5=0.0 -! -!WR_SO2/WR_HONO=0.0 -! -!WR_SO2/WR_HNO3=0.0 -! -!WR_SO2/WR_HNO4=-KR12*<WR_SO2> - PJAC(:,138,133)=-TPK%KR12(:)*PCONC(:,138) -! -!WR_SO2/WR_NH3=0.0 -! -!WR_SO2/WR_OH=-KR7*<WR_SO2>+KR19*<WR_AHMS> - PJAC(:,138,135)=-TPK%KR7(:)*PCONC(:,138)+TPK%KR19(:)*PCONC(:,161) -! -!WR_SO2/WR_HO2=0.0 -! -!WR_SO2/WR_CO2=0.0 -! -!WR_SO2/WR_SO2=-KTR45-KR7*<WR_OH>-KR12*<WR_HNO4>-KR16*<WR_NO3>-KR17*<WR_HCHO>-K -!R23*<WR_AHSO5>-KR25*<WR_O3>-KR26*<WR_H2O2>-KR28*<WR_RO21> - PJAC(:,138,138)=-TPK%KTR45(:)-TPK%KR7(:)*PCONC(:,135)-TPK%KR12(:)*PCONC(:,133)& -&-TPK%KR16(:)*PCONC(:,129)-TPK%KR17(:)*PCONC(:,145)-TPK%KR23(:)*PCONC(:,160)-TP& -&K%KR25(:)*PCONC(:,125)-TPK%KR26(:)*PCONC(:,126)-TPK%KR28(:)*PCONC(:,140) -! -!WR_SO2/WR_H2SO4=0.0 -! -!WR_SO2/WR_RO21=-KR28*<WR_SO2> - PJAC(:,138,140)=-TPK%KR28(:)*PCONC(:,138) -! -!WR_SO2/WR_RO25=0.0 -! -!WR_SO2/WR_MEOH=0.0 -! -!WR_SO2/WR_ETOH=0.0 -! -!WR_SO2/WR_ALCH=0.0 -! -!WR_SO2/WR_HCHO=-KR17*<WR_SO2> - PJAC(:,138,145)=-TPK%KR17(:)*PCONC(:,138) -! -!WR_SO2/WR_ALD2=0.0 -! -!WR_SO2/WR_GLY=0.0 -! -!WR_SO2/WR_MGLY=0.0 -! -!WR_SO2/WR_KETL=0.0 -! -!WR_SO2/WR_ORA1=0.0 -! -!WR_SO2/WR_ORA2=0.0 -! -!WR_SO2/WR_ACID=0.0 -! -!WR_SO2/WR_RP16=0.0 -! -!WR_SO2/WR_UR21=0.0 -! -!WR_SO2/WR_UR28=0.0 -! -!WR_SO2/WR_ACID2=0.0 -! -!WR_SO2/WR_ASO3=0.0 -! -!WR_SO2/WR_ASO4=0.0 -! -!WR_SO2/WR_ASO5=0.0 -! -!WR_SO2/WR_AHSO5=-KR23*<WR_SO2> - PJAC(:,138,160)=-TPK%KR23(:)*PCONC(:,138) -! -!WR_SO2/WR_AHMS=+KR18+KR19*<WR_OH> - PJAC(:,138,161)=+TPK%KR18(:)+TPK%KR19(:)*PCONC(:,135) -! -!WR_H2SO4/NO=0.0 -! -!WR_H2SO4/NO2=0.0 -! -!WR_H2SO4/O3=0.0 -! -!WR_H2SO4/HONO=0.0 -! -!WR_H2SO4/HNO3=0.0 -! -!WR_H2SO4/HNO4=0.0 -! -!WR_H2SO4/N2O5=0.0 -! -!WR_H2SO4/NO3=0.0 -! -!WR_H2SO4/NH3=0.0 -! -!WR_H2SO4/HO2=0.0 -! -!WR_H2SO4/CO=0.0 -! -!WR_H2SO4/H2O2=0.0 -! -!WR_H2SO4/SO2=0.0 -! -!WR_H2SO4/H2SO4=+KTR15 - PJAC(:,139,14)=+TPK%KTR15(:) -! -!WR_H2SO4/OH=0.0 -! -!WR_H2SO4/ETHE=0.0 -! -!WR_H2SO4/OLEL=0.0 -! -!WR_H2SO4/OLEH=0.0 -! -!WR_H2SO4/ALKL=0.0 -! -!WR_H2SO4/ALKM=0.0 -! -!WR_H2SO4/ALKH=0.0 -! -!WR_H2SO4/AROH=0.0 -! -!WR_H2SO4/AROL=0.0 -! -!WR_H2SO4/AROO=0.0 -! -!WR_H2SO4/ARAL=0.0 -! -!WR_H2SO4/ARAC=0.0 -! -!WR_H2SO4/PAH=0.0 -! -!WR_H2SO4/HCHO=0.0 -! -!WR_H2SO4/ALD2=0.0 -! -!WR_H2SO4/KETL=0.0 -! -!WR_H2SO4/KETH=0.0 -! -!WR_H2SO4/MEOH=0.0 -! -!WR_H2SO4/ETOH=0.0 -! -!WR_H2SO4/ALCH=0.0 -! -!WR_H2SO4/ISOP=0.0 -! -!WR_H2SO4/BIOL=0.0 -! -!WR_H2SO4/BIOH=0.0 -! -!WR_H2SO4/MTBE=0.0 -! -!WR_H2SO4/MVK=0.0 -! -!WR_H2SO4/MCR=0.0 -! -!WR_H2SO4/MGLY=0.0 -! -!WR_H2SO4/GLY=0.0 -! -!WR_H2SO4/ORA1=0.0 -! -!WR_H2SO4/ORA2=0.0 -! -!WR_H2SO4/ACID=0.0 -! -!WR_H2SO4/UR28=0.0 -! -!WR_H2SO4/UR21=0.0 -! -!WR_H2SO4/URG2=0.0 -! -!WR_H2SO4/UR26=0.0 -! -!WR_H2SO4/RPG2=0.0 -! -!WR_H2SO4/RP18=0.0 -! -!WR_H2SO4/RPG3=0.0 -! -!WR_H2SO4/URG4=0.0 -! -!WR_H2SO4/UR8=0.0 -! -!WR_H2SO4/UR17=0.0 -! -!WR_H2SO4/UR7=0.0 -! -!WR_H2SO4/RPR3=0.0 -! -!WR_H2SO4/URG6=0.0 -! -!WR_H2SO4/UR22=0.0 -! -!WR_H2SO4/URG7=0.0 -! -!WR_H2SO4/RPR4=0.0 -! -!WR_H2SO4/RPR7=0.0 -! -!WR_H2SO4/RPG7=0.0 -! -!WR_H2SO4/URG8=0.0 -! -!WR_H2SO4/UR19=0.0 -! -!WR_H2SO4/URG9=0.0 -! -!WR_H2SO4/AP7=0.0 -! -!WR_H2SO4/URG10=0.0 -! -!WR_H2SO4/RPR1=0.0 -! -!WR_H2SO4/RPR5=0.0 -! -!WR_H2SO4/RPR8=0.0 -! -!WR_H2SO4/RP10=0.0 -! -!WR_H2SO4/RP11=0.0 -! -!WR_H2SO4/RP16=0.0 -! -!WR_H2SO4/RPRL=0.0 -! -!WR_H2SO4/APAN=0.0 -! -!WR_H2SO4/PAN1=0.0 -! -!WR_H2SO4/PAN2=0.0 -! -!WR_H2SO4/PAN3=0.0 -! -!WR_H2SO4/PAN4=0.0 -! -!WR_H2SO4/PAN6=0.0 -! -!WR_H2SO4/PAN7=0.0 -! -!WR_H2SO4/PAN8=0.0 -! -!WR_H2SO4/PN10=0.0 -! -!WR_H2SO4/RO2T=0.0 -! -!WR_H2SO4/RO21=0.0 -! -!WR_H2SO4/RO25=0.0 -! -!WR_H2SO4/WC_O3=0.0 -! -!WR_H2SO4/WC_H2O2=0.0 -! -!WR_H2SO4/WC_NO=0.0 -! -!WR_H2SO4/WC_NO2=0.0 -! -!WR_H2SO4/WC_NO3=0.0 -! -!WR_H2SO4/WC_N2O5=0.0 -! -!WR_H2SO4/WC_HONO=0.0 -! -!WR_H2SO4/WC_HNO3=0.0 -! -!WR_H2SO4/WC_HNO4=0.0 -! -!WR_H2SO4/WC_NH3=0.0 -! -!WR_H2SO4/WC_OH=0.0 -! -!WR_H2SO4/WC_HO2=0.0 -! -!WR_H2SO4/WC_CO2=0.0 -! -!WR_H2SO4/WC_SO2=0.0 -! -!WR_H2SO4/WC_H2SO4=0.0 -! -!WR_H2SO4/WC_RO21=0.0 -! -!WR_H2SO4/WC_RO25=0.0 -! -!WR_H2SO4/WC_MEOH=0.0 -! -!WR_H2SO4/WC_ETOH=0.0 -! -!WR_H2SO4/WC_ALCH=0.0 -! -!WR_H2SO4/WC_HCHO=0.0 -! -!WR_H2SO4/WC_ALD2=0.0 -! -!WR_H2SO4/WC_GLY=0.0 -! -!WR_H2SO4/WC_MGLY=0.0 -! -!WR_H2SO4/WC_KETL=0.0 -! -!WR_H2SO4/WC_ORA1=0.0 -! -!WR_H2SO4/WC_ORA2=0.0 -! -!WR_H2SO4/WC_ACID=0.0 -! -!WR_H2SO4/WC_RP16=0.0 -! -!WR_H2SO4/WC_UR21=0.0 -! -!WR_H2SO4/WC_UR28=0.0 -! -!WR_H2SO4/WC_ACID2=0.0 -! -!WR_H2SO4/WC_ASO3=0.0 -! -!WR_H2SO4/WC_ASO4=0.0 -! -!WR_H2SO4/WC_ASO5=0.0 -! -!WR_H2SO4/WC_AHSO5=0.0 -! -!WR_H2SO4/WC_AHMS=0.0 -! -!WR_H2SO4/WR_O3=+KR25*<WR_SO2> - PJAC(:,139,125)=+TPK%KR25(:)*PCONC(:,138) -! -!WR_H2SO4/WR_H2O2=+KR26*<WR_SO2> - PJAC(:,139,126)=+TPK%KR26(:)*PCONC(:,138) -! -!WR_H2SO4/WR_NO=0.0 -! -!WR_H2SO4/WR_NO2=0.0 -! -!WR_H2SO4/WR_NO3=-KR15*<WR_H2SO4> - PJAC(:,139,129)=-TPK%KR15(:)*PCONC(:,139) -! -!WR_H2SO4/WR_N2O5=0.0 -! -!WR_H2SO4/WR_HONO=0.0 -! -!WR_H2SO4/WR_HNO3=0.0 -! -!WR_H2SO4/WR_HNO4=+KR12*<WR_SO2> - PJAC(:,139,133)=+TPK%KR12(:)*PCONC(:,138) -! -!WR_H2SO4/WR_NH3=0.0 -! -!WR_H2SO4/WR_OH=0.0 -! -!WR_H2SO4/WR_HO2=0.0 -! -!WR_H2SO4/WR_CO2=0.0 -! -!WR_H2SO4/WR_SO2=+KR12*<WR_HNO4>+2.00*KR23*<WR_AHSO5>+KR25*<WR_O3>+KR26*<WR_H2O -!2> - PJAC(:,139,138)=+TPK%KR12(:)*PCONC(:,133)+2.00*TPK%KR23(:)*PCONC(:,160)+TPK%KR& -&25(:)*PCONC(:,125)+TPK%KR26(:)*PCONC(:,126) -! -!WR_H2SO4/WR_H2SO4=-KTR46-KR15*<WR_NO3> - PJAC(:,139,139)=-TPK%KTR46(:)-TPK%KR15(:)*PCONC(:,129) -! -!WR_H2SO4/WR_RO21=0.0 -! -!WR_H2SO4/WR_RO25=0.0 -! -!WR_H2SO4/WR_MEOH=0.0 -! -!WR_H2SO4/WR_ETOH=0.0 -! -!WR_H2SO4/WR_ALCH=0.0 -! -!WR_H2SO4/WR_HCHO=0.0 -! -!WR_H2SO4/WR_ALD2=0.0 -! -!WR_H2SO4/WR_GLY=0.0 -! -!WR_H2SO4/WR_MGLY=0.0 -! -!WR_H2SO4/WR_KETL=0.0 -! -!WR_H2SO4/WR_ORA1=0.0 -! -!WR_H2SO4/WR_ORA2=0.0 -! -!WR_H2SO4/WR_ACID=0.0 -! -!WR_H2SO4/WR_RP16=0.0 -! -!WR_H2SO4/WR_UR21=0.0 -! -!WR_H2SO4/WR_UR28=0.0 -! -!WR_H2SO4/WR_ACID2=0.0 -! -!WR_H2SO4/WR_ASO3=0.0 -! -!WR_H2SO4/WR_ASO4=+KR24 - PJAC(:,139,158)=+TPK%KR24(:) -! -!WR_H2SO4/WR_ASO5=0.0 -! -!WR_H2SO4/WR_AHSO5=+2.00*KR23*<WR_SO2> - PJAC(:,139,160)=+2.00*TPK%KR23(:)*PCONC(:,138) -! -!WR_H2SO4/WR_AHMS=0.0 -! -!WR_RO21/NO=0.0 -! -!WR_RO21/NO2=0.0 -! -!WR_RO21/O3=0.0 -! -!WR_RO21/HONO=0.0 -! -!WR_RO21/HNO3=0.0 -! -!WR_RO21/HNO4=0.0 -! -!WR_RO21/N2O5=0.0 -! -!WR_RO21/NO3=0.0 -! -!WR_RO21/NH3=0.0 -! -!WR_RO21/HO2=0.0 -! -!WR_RO21/CO=0.0 -! -!WR_RO21/H2O2=0.0 -! -!WR_RO21/SO2=0.0 -! -!WR_RO21/H2SO4=0.0 -! -!WR_RO21/OH=0.0 -! -!WR_RO21/ETHE=0.0 -! -!WR_RO21/OLEL=0.0 -! -!WR_RO21/OLEH=0.0 -! -!WR_RO21/ALKL=0.0 -! -!WR_RO21/ALKM=0.0 -! -!WR_RO21/ALKH=0.0 -! -!WR_RO21/AROH=0.0 -! -!WR_RO21/AROL=0.0 -! -!WR_RO21/AROO=0.0 -! -!WR_RO21/ARAL=0.0 -! -!WR_RO21/ARAC=0.0 -! -!WR_RO21/PAH=0.0 -! -!WR_RO21/HCHO=0.0 -! -!WR_RO21/ALD2=0.0 -! -!WR_RO21/KETL=0.0 -! -!WR_RO21/KETH=0.0 -! -!WR_RO21/MEOH=0.0 -! -!WR_RO21/ETOH=0.0 -! -!WR_RO21/ALCH=0.0 -! -!WR_RO21/ISOP=0.0 -! -!WR_RO21/BIOL=0.0 -! -!WR_RO21/BIOH=0.0 -! -!WR_RO21/MTBE=0.0 -! -!WR_RO21/MVK=0.0 -! -!WR_RO21/MCR=0.0 -! -!WR_RO21/MGLY=0.0 -! -!WR_RO21/GLY=0.0 -! -!WR_RO21/ORA1=0.0 -! -!WR_RO21/ORA2=0.0 -! -!WR_RO21/ACID=0.0 -! -!WR_RO21/UR28=0.0 -! -!WR_RO21/UR21=0.0 -! -!WR_RO21/URG2=0.0 -! -!WR_RO21/UR26=0.0 -! -!WR_RO21/RPG2=0.0 -! -!WR_RO21/RP18=0.0 -! -!WR_RO21/RPG3=0.0 -! -!WR_RO21/URG4=0.0 -! -!WR_RO21/UR8=0.0 -! -!WR_RO21/UR17=0.0 -! -!WR_RO21/UR7=0.0 -! -!WR_RO21/RPR3=0.0 -! -!WR_RO21/URG6=0.0 -! -!WR_RO21/UR22=0.0 -! -!WR_RO21/URG7=0.0 -! -!WR_RO21/RPR4=0.0 -! -!WR_RO21/RPR7=0.0 -! -!WR_RO21/RPG7=0.0 -! -!WR_RO21/URG8=0.0 -! -!WR_RO21/UR19=0.0 -! -!WR_RO21/URG9=0.0 -! -!WR_RO21/AP7=0.0 -! -!WR_RO21/URG10=0.0 -! -!WR_RO21/RPR1=0.0 -! -!WR_RO21/RPR5=0.0 -! -!WR_RO21/RPR8=0.0 -! -!WR_RO21/RP10=0.0 -! -!WR_RO21/RP11=0.0 -! -!WR_RO21/RP16=0.0 -! -!WR_RO21/RPRL=0.0 -! -!WR_RO21/APAN=0.0 -! -!WR_RO21/PAN1=0.0 -! -!WR_RO21/PAN2=0.0 -! -!WR_RO21/PAN3=0.0 -! -!WR_RO21/PAN4=0.0 -! -!WR_RO21/PAN6=0.0 -! -!WR_RO21/PAN7=0.0 -! -!WR_RO21/PAN8=0.0 -! -!WR_RO21/PN10=0.0 -! -!WR_RO21/RO2T=0.0 -! -!WR_RO21/RO21=+KTR16 - PJAC(:,140,86)=+TPK%KTR16(:) -! -!WR_RO21/RO25=0.0 -! -!WR_RO21/WC_O3=0.0 -! -!WR_RO21/WC_H2O2=0.0 -! -!WR_RO21/WC_NO=0.0 -! -!WR_RO21/WC_NO2=0.0 -! -!WR_RO21/WC_NO3=0.0 -! -!WR_RO21/WC_N2O5=0.0 -! -!WR_RO21/WC_HONO=0.0 -! -!WR_RO21/WC_HNO3=0.0 -! -!WR_RO21/WC_HNO4=0.0 -! -!WR_RO21/WC_NH3=0.0 -! -!WR_RO21/WC_OH=0.0 -! -!WR_RO21/WC_HO2=0.0 -! -!WR_RO21/WC_CO2=0.0 -! -!WR_RO21/WC_SO2=0.0 -! -!WR_RO21/WC_H2SO4=0.0 -! -!WR_RO21/WC_RO21=0.0 -! -!WR_RO21/WC_RO25=0.0 -! -!WR_RO21/WC_MEOH=0.0 -! -!WR_RO21/WC_ETOH=0.0 -! -!WR_RO21/WC_ALCH=0.0 -! -!WR_RO21/WC_HCHO=0.0 -! -!WR_RO21/WC_ALD2=0.0 -! -!WR_RO21/WC_GLY=0.0 -! -!WR_RO21/WC_MGLY=0.0 -! -!WR_RO21/WC_KETL=0.0 -! -!WR_RO21/WC_ORA1=0.0 -! -!WR_RO21/WC_ORA2=0.0 -! -!WR_RO21/WC_ACID=0.0 -! -!WR_RO21/WC_RP16=0.0 -! -!WR_RO21/WC_UR21=0.0 -! -!WR_RO21/WC_UR28=0.0 -! -!WR_RO21/WC_ACID2=0.0 -! -!WR_RO21/WC_ASO3=0.0 -! -!WR_RO21/WC_ASO4=0.0 -! -!WR_RO21/WC_ASO5=0.0 -! -!WR_RO21/WC_AHSO5=0.0 -! -!WR_RO21/WC_AHMS=0.0 -! -!WR_RO21/WR_O3=0.0 -! -!WR_RO21/WR_H2O2=0.0 -! -!WR_RO21/WR_NO=0.0 -! -!WR_RO21/WR_NO2=0.0 -! -!WR_RO21/WR_NO3=0.0 -! -!WR_RO21/WR_N2O5=0.0 -! -!WR_RO21/WR_HONO=0.0 -! -!WR_RO21/WR_HNO3=0.0 -! -!WR_RO21/WR_HNO4=0.0 -! -!WR_RO21/WR_NH3=0.0 -! -!WR_RO21/WR_OH=+0.50*KR34*<WR_ALD2>+KR37*<WR_KETL> - PJAC(:,140,135)=+0.50*TPK%KR34(:)*PCONC(:,146)+TPK%KR37(:)*PCONC(:,149) -! -!WR_RO21/WR_HO2=0.0 -! -!WR_RO21/WR_CO2=0.0 -! -!WR_RO21/WR_SO2=-KR28*<WR_RO21> - PJAC(:,140,138)=-TPK%KR28(:)*PCONC(:,140) -! -!WR_RO21/WR_H2SO4=0.0 -! -!WR_RO21/WR_RO21=-KTR47-KR27*<WR_RO21>-KR27*<WR_RO21>-KR27*<WR_RO21>-KR27*<WR_R -!O21>-KR28*<WR_SO2> - PJAC(:,140,140)=-TPK%KTR47(:)-TPK%KR27(:)*PCONC(:,140)-TPK%KR27(:)*PCONC(:,140& -&)-TPK%KR27(:)*PCONC(:,140)-TPK%KR27(:)*PCONC(:,140)-TPK%KR28(:)*PCONC(:,138) -! -!WR_RO21/WR_RO25=0.0 -! -!WR_RO21/WR_MEOH=0.0 -! -!WR_RO21/WR_ETOH=0.0 -! -!WR_RO21/WR_ALCH=0.0 -! -!WR_RO21/WR_HCHO=0.0 -! -!WR_RO21/WR_ALD2=+0.50*KR34*<WR_OH> - PJAC(:,140,146)=+0.50*TPK%KR34(:)*PCONC(:,135) -! -!WR_RO21/WR_GLY=0.0 -! -!WR_RO21/WR_MGLY=0.0 -! -!WR_RO21/WR_KETL=+KR37*<WR_OH> - PJAC(:,140,149)=+TPK%KR37(:)*PCONC(:,135) -! -!WR_RO21/WR_ORA1=0.0 -! -!WR_RO21/WR_ORA2=0.0 -! -!WR_RO21/WR_ACID=0.0 -! -!WR_RO21/WR_RP16=0.0 -! -!WR_RO21/WR_UR21=0.0 -! -!WR_RO21/WR_UR28=0.0 -! -!WR_RO21/WR_ACID2=0.0 -! -!WR_RO21/WR_ASO3=0.0 -! -!WR_RO21/WR_ASO4=0.0 -! -!WR_RO21/WR_ASO5=0.0 -! -!WR_RO21/WR_AHSO5=0.0 -! -!WR_RO21/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ27 -! -SUBROUTINE SUBJ28 -! -!Indices 141 a 145 -! -! -!WR_RO25/NO=0.0 -! -!WR_RO25/NO2=0.0 -! -!WR_RO25/O3=0.0 -! -!WR_RO25/HONO=0.0 -! -!WR_RO25/HNO3=0.0 -! -!WR_RO25/HNO4=0.0 -! -!WR_RO25/N2O5=0.0 -! -!WR_RO25/NO3=0.0 -! -!WR_RO25/NH3=0.0 -! -!WR_RO25/HO2=0.0 -! -!WR_RO25/CO=0.0 -! -!WR_RO25/H2O2=0.0 -! -!WR_RO25/SO2=0.0 -! -!WR_RO25/H2SO4=0.0 -! -!WR_RO25/OH=0.0 -! -!WR_RO25/ETHE=0.0 -! -!WR_RO25/OLEL=0.0 -! -!WR_RO25/OLEH=0.0 -! -!WR_RO25/ALKL=0.0 -! -!WR_RO25/ALKM=0.0 -! -!WR_RO25/ALKH=0.0 -! -!WR_RO25/AROH=0.0 -! -!WR_RO25/AROL=0.0 -! -!WR_RO25/AROO=0.0 -! -!WR_RO25/ARAL=0.0 -! -!WR_RO25/ARAC=0.0 -! -!WR_RO25/PAH=0.0 -! -!WR_RO25/HCHO=0.0 -! -!WR_RO25/ALD2=0.0 -! -!WR_RO25/KETL=0.0 -! -!WR_RO25/KETH=0.0 -! -!WR_RO25/MEOH=0.0 -! -!WR_RO25/ETOH=0.0 -! -!WR_RO25/ALCH=0.0 -! -!WR_RO25/ISOP=0.0 -! -!WR_RO25/BIOL=0.0 -! -!WR_RO25/BIOH=0.0 -! -!WR_RO25/MTBE=0.0 -! -!WR_RO25/MVK=0.0 -! -!WR_RO25/MCR=0.0 -! -!WR_RO25/MGLY=0.0 -! -!WR_RO25/GLY=0.0 -! -!WR_RO25/ORA1=0.0 -! -!WR_RO25/ORA2=0.0 -! -!WR_RO25/ACID=0.0 -! -!WR_RO25/UR28=0.0 -! -!WR_RO25/UR21=0.0 -! -!WR_RO25/URG2=0.0 -! -!WR_RO25/UR26=0.0 -! -!WR_RO25/RPG2=0.0 -! -!WR_RO25/RP18=0.0 -! -!WR_RO25/RPG3=0.0 -! -!WR_RO25/URG4=0.0 -! -!WR_RO25/UR8=0.0 -! -!WR_RO25/UR17=0.0 -! -!WR_RO25/UR7=0.0 -! -!WR_RO25/RPR3=0.0 -! -!WR_RO25/URG6=0.0 -! -!WR_RO25/UR22=0.0 -! -!WR_RO25/URG7=0.0 -! -!WR_RO25/RPR4=0.0 -! -!WR_RO25/RPR7=0.0 -! -!WR_RO25/RPG7=0.0 -! -!WR_RO25/URG8=0.0 -! -!WR_RO25/UR19=0.0 -! -!WR_RO25/URG9=0.0 -! -!WR_RO25/AP7=0.0 -! -!WR_RO25/URG10=0.0 -! -!WR_RO25/RPR1=0.0 -! -!WR_RO25/RPR5=0.0 -! -!WR_RO25/RPR8=0.0 -! -!WR_RO25/RP10=0.0 -! -!WR_RO25/RP11=0.0 -! -!WR_RO25/RP16=0.0 -! -!WR_RO25/RPRL=0.0 -! -!WR_RO25/APAN=0.0 -! -!WR_RO25/PAN1=0.0 -! -!WR_RO25/PAN2=0.0 -! -!WR_RO25/PAN3=0.0 -! -!WR_RO25/PAN4=0.0 -! -!WR_RO25/PAN6=0.0 -! -!WR_RO25/PAN7=0.0 -! -!WR_RO25/PAN8=0.0 -! -!WR_RO25/PN10=0.0 -! -!WR_RO25/RO2T=0.0 -! -!WR_RO25/RO21=0.0 -! -!WR_RO25/RO25=+KTR17 - PJAC(:,141,87)=+TPK%KTR17(:) -! -!WR_RO25/WC_O3=0.0 -! -!WR_RO25/WC_H2O2=0.0 -! -!WR_RO25/WC_NO=0.0 -! -!WR_RO25/WC_NO2=0.0 -! -!WR_RO25/WC_NO3=0.0 -! -!WR_RO25/WC_N2O5=0.0 -! -!WR_RO25/WC_HONO=0.0 -! -!WR_RO25/WC_HNO3=0.0 -! -!WR_RO25/WC_HNO4=0.0 -! -!WR_RO25/WC_NH3=0.0 -! -!WR_RO25/WC_OH=0.0 -! -!WR_RO25/WC_HO2=0.0 -! -!WR_RO25/WC_CO2=0.0 -! -!WR_RO25/WC_SO2=0.0 -! -!WR_RO25/WC_H2SO4=0.0 -! -!WR_RO25/WC_RO21=0.0 -! -!WR_RO25/WC_RO25=0.0 -! -!WR_RO25/WC_MEOH=0.0 -! -!WR_RO25/WC_ETOH=0.0 -! -!WR_RO25/WC_ALCH=0.0 -! -!WR_RO25/WC_HCHO=0.0 -! -!WR_RO25/WC_ALD2=0.0 -! -!WR_RO25/WC_GLY=0.0 -! -!WR_RO25/WC_MGLY=0.0 -! -!WR_RO25/WC_KETL=0.0 -! -!WR_RO25/WC_ORA1=0.0 -! -!WR_RO25/WC_ORA2=0.0 -! -!WR_RO25/WC_ACID=0.0 -! -!WR_RO25/WC_RP16=0.0 -! -!WR_RO25/WC_UR21=0.0 -! -!WR_RO25/WC_UR28=0.0 -! -!WR_RO25/WC_ACID2=0.0 -! -!WR_RO25/WC_ASO3=0.0 -! -!WR_RO25/WC_ASO4=0.0 -! -!WR_RO25/WC_ASO5=0.0 -! -!WR_RO25/WC_AHSO5=0.0 -! -!WR_RO25/WC_AHMS=0.0 -! -!WR_RO25/WR_O3=0.0 -! -!WR_RO25/WR_H2O2=0.0 -! -!WR_RO25/WR_NO=0.0 -! -!WR_RO25/WR_NO2=0.0 -! -!WR_RO25/WR_NO3=0.0 -! -!WR_RO25/WR_N2O5=0.0 -! -!WR_RO25/WR_HONO=0.0 -! -!WR_RO25/WR_HNO3=0.0 -! -!WR_RO25/WR_HNO4=0.0 -! -!WR_RO25/WR_NH3=0.0 -! -!WR_RO25/WR_OH=+0.50*KR34*<WR_ALD2>+KR40*<WR_ACID> - PJAC(:,141,135)=+0.50*TPK%KR34(:)*PCONC(:,146)+TPK%KR40(:)*PCONC(:,152) -! -!WR_RO25/WR_HO2=0.0 -! -!WR_RO25/WR_CO2=0.0 -! -!WR_RO25/WR_SO2=0.0 -! -!WR_RO25/WR_H2SO4=0.0 -! -!WR_RO25/WR_RO21=0.0 -! -!WR_RO25/WR_RO25=-KTR48-KR29*<WR_RO25>-KR29*<WR_RO25>-KR29*<WR_RO25>-KR29*<WR_R -!O25> - PJAC(:,141,141)=-TPK%KTR48(:)-TPK%KR29(:)*PCONC(:,141)-TPK%KR29(:)*PCONC(:,141& -&)-TPK%KR29(:)*PCONC(:,141)-TPK%KR29(:)*PCONC(:,141) -! -!WR_RO25/WR_MEOH=0.0 -! -!WR_RO25/WR_ETOH=0.0 -! -!WR_RO25/WR_ALCH=0.0 -! -!WR_RO25/WR_HCHO=0.0 -! -!WR_RO25/WR_ALD2=+0.50*KR34*<WR_OH> - PJAC(:,141,146)=+0.50*TPK%KR34(:)*PCONC(:,135) -! -!WR_RO25/WR_GLY=0.0 -! -!WR_RO25/WR_MGLY=0.0 -! -!WR_RO25/WR_KETL=0.0 -! -!WR_RO25/WR_ORA1=0.0 -! -!WR_RO25/WR_ORA2=0.0 -! -!WR_RO25/WR_ACID=+KR40*<WR_OH> - PJAC(:,141,152)=+TPK%KR40(:)*PCONC(:,135) -! -!WR_RO25/WR_RP16=0.0 -! -!WR_RO25/WR_UR21=0.0 -! -!WR_RO25/WR_UR28=0.0 -! -!WR_RO25/WR_ACID2=0.0 -! -!WR_RO25/WR_ASO3=0.0 -! -!WR_RO25/WR_ASO4=0.0 -! -!WR_RO25/WR_ASO5=0.0 -! -!WR_RO25/WR_AHSO5=0.0 -! -!WR_RO25/WR_AHMS=0.0 -! -!WR_MEOH/NO=0.0 -! -!WR_MEOH/NO2=0.0 -! -!WR_MEOH/O3=0.0 -! -!WR_MEOH/HONO=0.0 -! -!WR_MEOH/HNO3=0.0 -! -!WR_MEOH/HNO4=0.0 -! -!WR_MEOH/N2O5=0.0 -! -!WR_MEOH/NO3=0.0 -! -!WR_MEOH/NH3=0.0 -! -!WR_MEOH/HO2=0.0 -! -!WR_MEOH/CO=0.0 -! -!WR_MEOH/H2O2=0.0 -! -!WR_MEOH/SO2=0.0 -! -!WR_MEOH/H2SO4=0.0 -! -!WR_MEOH/OH=0.0 -! -!WR_MEOH/ETHE=0.0 -! -!WR_MEOH/OLEL=0.0 -! -!WR_MEOH/OLEH=0.0 -! -!WR_MEOH/ALKL=0.0 -! -!WR_MEOH/ALKM=0.0 -! -!WR_MEOH/ALKH=0.0 -! -!WR_MEOH/AROH=0.0 -! -!WR_MEOH/AROL=0.0 -! -!WR_MEOH/AROO=0.0 -! -!WR_MEOH/ARAL=0.0 -! -!WR_MEOH/ARAC=0.0 -! -!WR_MEOH/PAH=0.0 -! -!WR_MEOH/HCHO=0.0 -! -!WR_MEOH/ALD2=0.0 -! -!WR_MEOH/KETL=0.0 -! -!WR_MEOH/KETH=0.0 -! -!WR_MEOH/MEOH=+KTR18 - PJAC(:,142,32)=+TPK%KTR18(:) -! -!WR_MEOH/ETOH=0.0 -! -!WR_MEOH/ALCH=0.0 -! -!WR_MEOH/ISOP=0.0 -! -!WR_MEOH/BIOL=0.0 -! -!WR_MEOH/BIOH=0.0 -! -!WR_MEOH/MTBE=0.0 -! -!WR_MEOH/MVK=0.0 -! -!WR_MEOH/MCR=0.0 -! -!WR_MEOH/MGLY=0.0 -! -!WR_MEOH/GLY=0.0 -! -!WR_MEOH/ORA1=0.0 -! -!WR_MEOH/ORA2=0.0 -! -!WR_MEOH/ACID=0.0 -! -!WR_MEOH/UR28=0.0 -! -!WR_MEOH/UR21=0.0 -! -!WR_MEOH/URG2=0.0 -! -!WR_MEOH/UR26=0.0 -! -!WR_MEOH/RPG2=0.0 -! -!WR_MEOH/RP18=0.0 -! -!WR_MEOH/RPG3=0.0 -! -!WR_MEOH/URG4=0.0 -! -!WR_MEOH/UR8=0.0 -! -!WR_MEOH/UR17=0.0 -! -!WR_MEOH/UR7=0.0 -! -!WR_MEOH/RPR3=0.0 -! -!WR_MEOH/URG6=0.0 -! -!WR_MEOH/UR22=0.0 -! -!WR_MEOH/URG7=0.0 -! -!WR_MEOH/RPR4=0.0 -! -!WR_MEOH/RPR7=0.0 -! -!WR_MEOH/RPG7=0.0 -! -!WR_MEOH/URG8=0.0 -! -!WR_MEOH/UR19=0.0 -! -!WR_MEOH/URG9=0.0 -! -!WR_MEOH/AP7=0.0 -! -!WR_MEOH/URG10=0.0 -! -!WR_MEOH/RPR1=0.0 -! -!WR_MEOH/RPR5=0.0 -! -!WR_MEOH/RPR8=0.0 -! -!WR_MEOH/RP10=0.0 -! -!WR_MEOH/RP11=0.0 -! -!WR_MEOH/RP16=0.0 -! -!WR_MEOH/RPRL=0.0 -! -!WR_MEOH/APAN=0.0 -! -!WR_MEOH/PAN1=0.0 -! -!WR_MEOH/PAN2=0.0 -! -!WR_MEOH/PAN3=0.0 -! -!WR_MEOH/PAN4=0.0 -! -!WR_MEOH/PAN6=0.0 -! -!WR_MEOH/PAN7=0.0 -! -!WR_MEOH/PAN8=0.0 -! -!WR_MEOH/PN10=0.0 -! -!WR_MEOH/RO2T=0.0 -! -!WR_MEOH/RO21=0.0 -! -!WR_MEOH/RO25=0.0 -! -!WR_MEOH/WC_O3=0.0 -! -!WR_MEOH/WC_H2O2=0.0 -! -!WR_MEOH/WC_NO=0.0 -! -!WR_MEOH/WC_NO2=0.0 -! -!WR_MEOH/WC_NO3=0.0 -! -!WR_MEOH/WC_N2O5=0.0 -! -!WR_MEOH/WC_HONO=0.0 -! -!WR_MEOH/WC_HNO3=0.0 -! -!WR_MEOH/WC_HNO4=0.0 -! -!WR_MEOH/WC_NH3=0.0 -! -!WR_MEOH/WC_OH=0.0 -! -!WR_MEOH/WC_HO2=0.0 -! -!WR_MEOH/WC_CO2=0.0 -! -!WR_MEOH/WC_SO2=0.0 -! -!WR_MEOH/WC_H2SO4=0.0 -! -!WR_MEOH/WC_RO21=0.0 -! -!WR_MEOH/WC_RO25=0.0 -! -!WR_MEOH/WC_MEOH=0.0 -! -!WR_MEOH/WC_ETOH=0.0 -! -!WR_MEOH/WC_ALCH=0.0 -! -!WR_MEOH/WC_HCHO=0.0 -! -!WR_MEOH/WC_ALD2=0.0 -! -!WR_MEOH/WC_GLY=0.0 -! -!WR_MEOH/WC_MGLY=0.0 -! -!WR_MEOH/WC_KETL=0.0 -! -!WR_MEOH/WC_ORA1=0.0 -! -!WR_MEOH/WC_ORA2=0.0 -! -!WR_MEOH/WC_ACID=0.0 -! -!WR_MEOH/WC_RP16=0.0 -! -!WR_MEOH/WC_UR21=0.0 -! -!WR_MEOH/WC_UR28=0.0 -! -!WR_MEOH/WC_ACID2=0.0 -! -!WR_MEOH/WC_ASO3=0.0 -! -!WR_MEOH/WC_ASO4=0.0 -! -!WR_MEOH/WC_ASO5=0.0 -! -!WR_MEOH/WC_AHSO5=0.0 -! -!WR_MEOH/WC_AHMS=0.0 -! -!WR_MEOH/WR_O3=0.0 -! -!WR_MEOH/WR_H2O2=0.0 -! -!WR_MEOH/WR_NO=0.0 -! -!WR_MEOH/WR_NO2=0.0 -! -!WR_MEOH/WR_NO3=0.0 -! -!WR_MEOH/WR_N2O5=0.0 -! -!WR_MEOH/WR_HONO=0.0 -! -!WR_MEOH/WR_HNO3=0.0 -! -!WR_MEOH/WR_HNO4=0.0 -! -!WR_MEOH/WR_NH3=0.0 -! -!WR_MEOH/WR_OH=-KR30*<WR_MEOH> - PJAC(:,142,135)=-TPK%KR30(:)*PCONC(:,142) -! -!WR_MEOH/WR_HO2=0.0 -! -!WR_MEOH/WR_CO2=0.0 -! -!WR_MEOH/WR_SO2=0.0 -! -!WR_MEOH/WR_H2SO4=0.0 -! -!WR_MEOH/WR_RO21=0.0 -! -!WR_MEOH/WR_RO25=0.0 -! -!WR_MEOH/WR_MEOH=-KTR49-KR30*<WR_OH> - PJAC(:,142,142)=-TPK%KTR49(:)-TPK%KR30(:)*PCONC(:,135) -! -!WR_MEOH/WR_ETOH=0.0 -! -!WR_MEOH/WR_ALCH=0.0 -! -!WR_MEOH/WR_HCHO=0.0 -! -!WR_MEOH/WR_ALD2=0.0 -! -!WR_MEOH/WR_GLY=0.0 -! -!WR_MEOH/WR_MGLY=0.0 -! -!WR_MEOH/WR_KETL=0.0 -! -!WR_MEOH/WR_ORA1=0.0 -! -!WR_MEOH/WR_ORA2=0.0 -! -!WR_MEOH/WR_ACID=0.0 -! -!WR_MEOH/WR_RP16=0.0 -! -!WR_MEOH/WR_UR21=0.0 -! -!WR_MEOH/WR_UR28=0.0 -! -!WR_MEOH/WR_ACID2=0.0 -! -!WR_MEOH/WR_ASO3=0.0 -! -!WR_MEOH/WR_ASO4=0.0 -! -!WR_MEOH/WR_ASO5=0.0 -! -!WR_MEOH/WR_AHSO5=0.0 -! -!WR_MEOH/WR_AHMS=0.0 -! -!WR_ETOH/NO=0.0 -! -!WR_ETOH/NO2=0.0 -! -!WR_ETOH/O3=0.0 -! -!WR_ETOH/HONO=0.0 -! -!WR_ETOH/HNO3=0.0 -! -!WR_ETOH/HNO4=0.0 -! -!WR_ETOH/N2O5=0.0 -! -!WR_ETOH/NO3=0.0 -! -!WR_ETOH/NH3=0.0 -! -!WR_ETOH/HO2=0.0 -! -!WR_ETOH/CO=0.0 -! -!WR_ETOH/H2O2=0.0 -! -!WR_ETOH/SO2=0.0 -! -!WR_ETOH/H2SO4=0.0 -! -!WR_ETOH/OH=0.0 -! -!WR_ETOH/ETHE=0.0 -! -!WR_ETOH/OLEL=0.0 -! -!WR_ETOH/OLEH=0.0 -! -!WR_ETOH/ALKL=0.0 -! -!WR_ETOH/ALKM=0.0 -! -!WR_ETOH/ALKH=0.0 -! -!WR_ETOH/AROH=0.0 -! -!WR_ETOH/AROL=0.0 -! -!WR_ETOH/AROO=0.0 -! -!WR_ETOH/ARAL=0.0 -! -!WR_ETOH/ARAC=0.0 -! -!WR_ETOH/PAH=0.0 -! -!WR_ETOH/HCHO=0.0 -! -!WR_ETOH/ALD2=0.0 -! -!WR_ETOH/KETL=0.0 -! -!WR_ETOH/KETH=0.0 -! -!WR_ETOH/MEOH=0.0 -! -!WR_ETOH/ETOH=+KTR19 - PJAC(:,143,33)=+TPK%KTR19(:) -! -!WR_ETOH/ALCH=0.0 -! -!WR_ETOH/ISOP=0.0 -! -!WR_ETOH/BIOL=0.0 -! -!WR_ETOH/BIOH=0.0 -! -!WR_ETOH/MTBE=0.0 -! -!WR_ETOH/MVK=0.0 -! -!WR_ETOH/MCR=0.0 -! -!WR_ETOH/MGLY=0.0 -! -!WR_ETOH/GLY=0.0 -! -!WR_ETOH/ORA1=0.0 -! -!WR_ETOH/ORA2=0.0 -! -!WR_ETOH/ACID=0.0 -! -!WR_ETOH/UR28=0.0 -! -!WR_ETOH/UR21=0.0 -! -!WR_ETOH/URG2=0.0 -! -!WR_ETOH/UR26=0.0 -! -!WR_ETOH/RPG2=0.0 -! -!WR_ETOH/RP18=0.0 -! -!WR_ETOH/RPG3=0.0 -! -!WR_ETOH/URG4=0.0 -! -!WR_ETOH/UR8=0.0 -! -!WR_ETOH/UR17=0.0 -! -!WR_ETOH/UR7=0.0 -! -!WR_ETOH/RPR3=0.0 -! -!WR_ETOH/URG6=0.0 -! -!WR_ETOH/UR22=0.0 -! -!WR_ETOH/URG7=0.0 -! -!WR_ETOH/RPR4=0.0 -! -!WR_ETOH/RPR7=0.0 -! -!WR_ETOH/RPG7=0.0 -! -!WR_ETOH/URG8=0.0 -! -!WR_ETOH/UR19=0.0 -! -!WR_ETOH/URG9=0.0 -! -!WR_ETOH/AP7=0.0 -! -!WR_ETOH/URG10=0.0 -! -!WR_ETOH/RPR1=0.0 -! -!WR_ETOH/RPR5=0.0 -! -!WR_ETOH/RPR8=0.0 -! -!WR_ETOH/RP10=0.0 -! -!WR_ETOH/RP11=0.0 -! -!WR_ETOH/RP16=0.0 -! -!WR_ETOH/RPRL=0.0 -! -!WR_ETOH/APAN=0.0 -! -!WR_ETOH/PAN1=0.0 -! -!WR_ETOH/PAN2=0.0 -! -!WR_ETOH/PAN3=0.0 -! -!WR_ETOH/PAN4=0.0 -! -!WR_ETOH/PAN6=0.0 -! -!WR_ETOH/PAN7=0.0 -! -!WR_ETOH/PAN8=0.0 -! -!WR_ETOH/PN10=0.0 -! -!WR_ETOH/RO2T=0.0 -! -!WR_ETOH/RO21=0.0 -! -!WR_ETOH/RO25=0.0 -! -!WR_ETOH/WC_O3=0.0 -! -!WR_ETOH/WC_H2O2=0.0 -! -!WR_ETOH/WC_NO=0.0 -! -!WR_ETOH/WC_NO2=0.0 -! -!WR_ETOH/WC_NO3=0.0 -! -!WR_ETOH/WC_N2O5=0.0 -! -!WR_ETOH/WC_HONO=0.0 -! -!WR_ETOH/WC_HNO3=0.0 -! -!WR_ETOH/WC_HNO4=0.0 -! -!WR_ETOH/WC_NH3=0.0 -! -!WR_ETOH/WC_OH=0.0 -! -!WR_ETOH/WC_HO2=0.0 -! -!WR_ETOH/WC_CO2=0.0 -! -!WR_ETOH/WC_SO2=0.0 -! -!WR_ETOH/WC_H2SO4=0.0 -! -!WR_ETOH/WC_RO21=0.0 -! -!WR_ETOH/WC_RO25=0.0 -! -!WR_ETOH/WC_MEOH=0.0 -! -!WR_ETOH/WC_ETOH=0.0 -! -!WR_ETOH/WC_ALCH=0.0 -! -!WR_ETOH/WC_HCHO=0.0 -! -!WR_ETOH/WC_ALD2=0.0 -! -!WR_ETOH/WC_GLY=0.0 -! -!WR_ETOH/WC_MGLY=0.0 -! -!WR_ETOH/WC_KETL=0.0 -! -!WR_ETOH/WC_ORA1=0.0 -! -!WR_ETOH/WC_ORA2=0.0 -! -!WR_ETOH/WC_ACID=0.0 -! -!WR_ETOH/WC_RP16=0.0 -! -!WR_ETOH/WC_UR21=0.0 -! -!WR_ETOH/WC_UR28=0.0 -! -!WR_ETOH/WC_ACID2=0.0 -! -!WR_ETOH/WC_ASO3=0.0 -! -!WR_ETOH/WC_ASO4=0.0 -! -!WR_ETOH/WC_ASO5=0.0 -! -!WR_ETOH/WC_AHSO5=0.0 -! -!WR_ETOH/WC_AHMS=0.0 -! -!WR_ETOH/WR_O3=0.0 -! -!WR_ETOH/WR_H2O2=0.0 -! -!WR_ETOH/WR_NO=0.0 -! -!WR_ETOH/WR_NO2=0.0 -! -!WR_ETOH/WR_NO3=0.0 -! -!WR_ETOH/WR_N2O5=0.0 -! -!WR_ETOH/WR_HONO=0.0 -! -!WR_ETOH/WR_HNO3=0.0 -! -!WR_ETOH/WR_HNO4=0.0 -! -!WR_ETOH/WR_NH3=0.0 -! -!WR_ETOH/WR_OH=-KR31*<WR_ETOH> - PJAC(:,143,135)=-TPK%KR31(:)*PCONC(:,143) -! -!WR_ETOH/WR_HO2=0.0 -! -!WR_ETOH/WR_CO2=0.0 -! -!WR_ETOH/WR_SO2=0.0 -! -!WR_ETOH/WR_H2SO4=0.0 -! -!WR_ETOH/WR_RO21=0.0 -! -!WR_ETOH/WR_RO25=0.0 -! -!WR_ETOH/WR_MEOH=0.0 -! -!WR_ETOH/WR_ETOH=-KTR50-KR31*<WR_OH> - PJAC(:,143,143)=-TPK%KTR50(:)-TPK%KR31(:)*PCONC(:,135) -! -!WR_ETOH/WR_ALCH=0.0 -! -!WR_ETOH/WR_HCHO=0.0 -! -!WR_ETOH/WR_ALD2=0.0 -! -!WR_ETOH/WR_GLY=0.0 -! -!WR_ETOH/WR_MGLY=0.0 -! -!WR_ETOH/WR_KETL=0.0 -! -!WR_ETOH/WR_ORA1=0.0 -! -!WR_ETOH/WR_ORA2=0.0 -! -!WR_ETOH/WR_ACID=0.0 -! -!WR_ETOH/WR_RP16=0.0 -! -!WR_ETOH/WR_UR21=0.0 -! -!WR_ETOH/WR_UR28=0.0 -! -!WR_ETOH/WR_ACID2=0.0 -! -!WR_ETOH/WR_ASO3=0.0 -! -!WR_ETOH/WR_ASO4=0.0 -! -!WR_ETOH/WR_ASO5=0.0 -! -!WR_ETOH/WR_AHSO5=0.0 -! -!WR_ETOH/WR_AHMS=0.0 -! -!WR_ALCH/NO=0.0 -! -!WR_ALCH/NO2=0.0 -! -!WR_ALCH/O3=0.0 -! -!WR_ALCH/HONO=0.0 -! -!WR_ALCH/HNO3=0.0 -! -!WR_ALCH/HNO4=0.0 -! -!WR_ALCH/N2O5=0.0 -! -!WR_ALCH/NO3=0.0 -! -!WR_ALCH/NH3=0.0 -! -!WR_ALCH/HO2=0.0 -! -!WR_ALCH/CO=0.0 -! -!WR_ALCH/H2O2=0.0 -! -!WR_ALCH/SO2=0.0 -! -!WR_ALCH/H2SO4=0.0 -! -!WR_ALCH/OH=0.0 -! -!WR_ALCH/ETHE=0.0 -! -!WR_ALCH/OLEL=0.0 -! -!WR_ALCH/OLEH=0.0 -! -!WR_ALCH/ALKL=0.0 -! -!WR_ALCH/ALKM=0.0 -! -!WR_ALCH/ALKH=0.0 -! -!WR_ALCH/AROH=0.0 -! -!WR_ALCH/AROL=0.0 -! -!WR_ALCH/AROO=0.0 -! -!WR_ALCH/ARAL=0.0 -! -!WR_ALCH/ARAC=0.0 -! -!WR_ALCH/PAH=0.0 -! -!WR_ALCH/HCHO=0.0 -! -!WR_ALCH/ALD2=0.0 -! -!WR_ALCH/KETL=0.0 -! -!WR_ALCH/KETH=0.0 -! -!WR_ALCH/MEOH=0.0 -! -!WR_ALCH/ETOH=0.0 -! -!WR_ALCH/ALCH=+KTR20 - PJAC(:,144,34)=+TPK%KTR20(:) -! -!WR_ALCH/ISOP=0.0 -! -!WR_ALCH/BIOL=0.0 -! -!WR_ALCH/BIOH=0.0 -! -!WR_ALCH/MTBE=0.0 -! -!WR_ALCH/MVK=0.0 -! -!WR_ALCH/MCR=0.0 -! -!WR_ALCH/MGLY=0.0 -! -!WR_ALCH/GLY=0.0 -! -!WR_ALCH/ORA1=0.0 -! -!WR_ALCH/ORA2=0.0 -! -!WR_ALCH/ACID=0.0 -! -!WR_ALCH/UR28=0.0 -! -!WR_ALCH/UR21=0.0 -! -!WR_ALCH/URG2=0.0 -! -!WR_ALCH/UR26=0.0 -! -!WR_ALCH/RPG2=0.0 -! -!WR_ALCH/RP18=0.0 -! -!WR_ALCH/RPG3=0.0 -! -!WR_ALCH/URG4=0.0 -! -!WR_ALCH/UR8=0.0 -! -!WR_ALCH/UR17=0.0 -! -!WR_ALCH/UR7=0.0 -! -!WR_ALCH/RPR3=0.0 -! -!WR_ALCH/URG6=0.0 -! -!WR_ALCH/UR22=0.0 -! -!WR_ALCH/URG7=0.0 -! -!WR_ALCH/RPR4=0.0 -! -!WR_ALCH/RPR7=0.0 -! -!WR_ALCH/RPG7=0.0 -! -!WR_ALCH/URG8=0.0 -! -!WR_ALCH/UR19=0.0 -! -!WR_ALCH/URG9=0.0 -! -!WR_ALCH/AP7=0.0 -! -!WR_ALCH/URG10=0.0 -! -!WR_ALCH/RPR1=0.0 -! -!WR_ALCH/RPR5=0.0 -! -!WR_ALCH/RPR8=0.0 -! -!WR_ALCH/RP10=0.0 -! -!WR_ALCH/RP11=0.0 -! -!WR_ALCH/RP16=0.0 -! -!WR_ALCH/RPRL=0.0 -! -!WR_ALCH/APAN=0.0 -! -!WR_ALCH/PAN1=0.0 -! -!WR_ALCH/PAN2=0.0 -! -!WR_ALCH/PAN3=0.0 -! -!WR_ALCH/PAN4=0.0 -! -!WR_ALCH/PAN6=0.0 -! -!WR_ALCH/PAN7=0.0 -! -!WR_ALCH/PAN8=0.0 -! -!WR_ALCH/PN10=0.0 -! -!WR_ALCH/RO2T=0.0 -! -!WR_ALCH/RO21=0.0 -! -!WR_ALCH/RO25=0.0 -! -!WR_ALCH/WC_O3=0.0 -! -!WR_ALCH/WC_H2O2=0.0 -! -!WR_ALCH/WC_NO=0.0 -! -!WR_ALCH/WC_NO2=0.0 -! -!WR_ALCH/WC_NO3=0.0 -! -!WR_ALCH/WC_N2O5=0.0 -! -!WR_ALCH/WC_HONO=0.0 -! -!WR_ALCH/WC_HNO3=0.0 -! -!WR_ALCH/WC_HNO4=0.0 -! -!WR_ALCH/WC_NH3=0.0 -! -!WR_ALCH/WC_OH=0.0 -! -!WR_ALCH/WC_HO2=0.0 -! -!WR_ALCH/WC_CO2=0.0 -! -!WR_ALCH/WC_SO2=0.0 -! -!WR_ALCH/WC_H2SO4=0.0 -! -!WR_ALCH/WC_RO21=0.0 -! -!WR_ALCH/WC_RO25=0.0 -! -!WR_ALCH/WC_MEOH=0.0 -! -!WR_ALCH/WC_ETOH=0.0 -! -!WR_ALCH/WC_ALCH=0.0 -! -!WR_ALCH/WC_HCHO=0.0 -! -!WR_ALCH/WC_ALD2=0.0 -! -!WR_ALCH/WC_GLY=0.0 -! -!WR_ALCH/WC_MGLY=0.0 -! -!WR_ALCH/WC_KETL=0.0 -! -!WR_ALCH/WC_ORA1=0.0 -! -!WR_ALCH/WC_ORA2=0.0 -! -!WR_ALCH/WC_ACID=0.0 -! -!WR_ALCH/WC_RP16=0.0 -! -!WR_ALCH/WC_UR21=0.0 -! -!WR_ALCH/WC_UR28=0.0 -! -!WR_ALCH/WC_ACID2=0.0 -! -!WR_ALCH/WC_ASO3=0.0 -! -!WR_ALCH/WC_ASO4=0.0 -! -!WR_ALCH/WC_ASO5=0.0 -! -!WR_ALCH/WC_AHSO5=0.0 -! -!WR_ALCH/WC_AHMS=0.0 -! -!WR_ALCH/WR_O3=0.0 -! -!WR_ALCH/WR_H2O2=0.0 -! -!WR_ALCH/WR_NO=0.0 -! -!WR_ALCH/WR_NO2=0.0 -! -!WR_ALCH/WR_NO3=0.0 -! -!WR_ALCH/WR_N2O5=0.0 -! -!WR_ALCH/WR_HONO=0.0 -! -!WR_ALCH/WR_HNO3=0.0 -! -!WR_ALCH/WR_HNO4=0.0 -! -!WR_ALCH/WR_NH3=0.0 -! -!WR_ALCH/WR_OH=-KR32*<WR_ALCH> - PJAC(:,144,135)=-TPK%KR32(:)*PCONC(:,144) -! -!WR_ALCH/WR_HO2=0.0 -! -!WR_ALCH/WR_CO2=0.0 -! -!WR_ALCH/WR_SO2=0.0 -! -!WR_ALCH/WR_H2SO4=0.0 -! -!WR_ALCH/WR_RO21=0.0 -! -!WR_ALCH/WR_RO25=0.0 -! -!WR_ALCH/WR_MEOH=0.0 -! -!WR_ALCH/WR_ETOH=0.0 -! -!WR_ALCH/WR_ALCH=-KTR51-KR32*<WR_OH> - PJAC(:,144,144)=-TPK%KTR51(:)-TPK%KR32(:)*PCONC(:,135) -! -!WR_ALCH/WR_HCHO=0.0 -! -!WR_ALCH/WR_ALD2=0.0 -! -!WR_ALCH/WR_GLY=0.0 -! -!WR_ALCH/WR_MGLY=0.0 -! -!WR_ALCH/WR_KETL=0.0 -! -!WR_ALCH/WR_ORA1=0.0 -! -!WR_ALCH/WR_ORA2=0.0 -! -!WR_ALCH/WR_ACID=0.0 -! -!WR_ALCH/WR_RP16=0.0 -! -!WR_ALCH/WR_UR21=0.0 -! -!WR_ALCH/WR_UR28=0.0 -! -!WR_ALCH/WR_ACID2=0.0 -! -!WR_ALCH/WR_ASO3=0.0 -! -!WR_ALCH/WR_ASO4=0.0 -! -!WR_ALCH/WR_ASO5=0.0 -! -!WR_ALCH/WR_AHSO5=0.0 -! -!WR_ALCH/WR_AHMS=0.0 -! -!WR_HCHO/NO=0.0 -! -!WR_HCHO/NO2=0.0 -! -!WR_HCHO/O3=0.0 -! -!WR_HCHO/HONO=0.0 -! -!WR_HCHO/HNO3=0.0 -! -!WR_HCHO/HNO4=0.0 -! -!WR_HCHO/N2O5=0.0 -! -!WR_HCHO/NO3=0.0 -! -!WR_HCHO/NH3=0.0 -! -!WR_HCHO/HO2=0.0 -! -!WR_HCHO/CO=0.0 -! -!WR_HCHO/H2O2=0.0 -! -!WR_HCHO/SO2=0.0 -! -!WR_HCHO/H2SO4=0.0 -! -!WR_HCHO/OH=0.0 -! -!WR_HCHO/ETHE=0.0 -! -!WR_HCHO/OLEL=0.0 -! -!WR_HCHO/OLEH=0.0 -! -!WR_HCHO/ALKL=0.0 -! -!WR_HCHO/ALKM=0.0 -! -!WR_HCHO/ALKH=0.0 -! -!WR_HCHO/AROH=0.0 -! -!WR_HCHO/AROL=0.0 -! -!WR_HCHO/AROO=0.0 -! -!WR_HCHO/ARAL=0.0 -! -!WR_HCHO/ARAC=0.0 -! -!WR_HCHO/PAH=0.0 -! -!WR_HCHO/HCHO=+KTR21 - PJAC(:,145,28)=+TPK%KTR21(:) -! -!WR_HCHO/ALD2=0.0 -! -!WR_HCHO/KETL=0.0 -! -!WR_HCHO/KETH=0.0 -! -!WR_HCHO/MEOH=0.0 -! -!WR_HCHO/ETOH=0.0 -! -!WR_HCHO/ALCH=0.0 -! -!WR_HCHO/ISOP=0.0 -! -!WR_HCHO/BIOL=0.0 -! -!WR_HCHO/BIOH=0.0 -! -!WR_HCHO/MTBE=0.0 -! -!WR_HCHO/MVK=0.0 -! -!WR_HCHO/MCR=0.0 -! -!WR_HCHO/MGLY=0.0 -! -!WR_HCHO/GLY=0.0 -! -!WR_HCHO/ORA1=0.0 -! -!WR_HCHO/ORA2=0.0 -! -!WR_HCHO/ACID=0.0 -! -!WR_HCHO/UR28=0.0 -! -!WR_HCHO/UR21=0.0 -! -!WR_HCHO/URG2=0.0 -! -!WR_HCHO/UR26=0.0 -! -!WR_HCHO/RPG2=0.0 -! -!WR_HCHO/RP18=0.0 -! -!WR_HCHO/RPG3=0.0 -! -!WR_HCHO/URG4=0.0 -! -!WR_HCHO/UR8=0.0 -! -!WR_HCHO/UR17=0.0 -! -!WR_HCHO/UR7=0.0 -! -!WR_HCHO/RPR3=0.0 -! -!WR_HCHO/URG6=0.0 -! -!WR_HCHO/UR22=0.0 -! -!WR_HCHO/URG7=0.0 -! -!WR_HCHO/RPR4=0.0 -! -!WR_HCHO/RPR7=0.0 -! -!WR_HCHO/RPG7=0.0 -! -!WR_HCHO/URG8=0.0 -! -!WR_HCHO/UR19=0.0 -! -!WR_HCHO/URG9=0.0 -! -!WR_HCHO/AP7=0.0 -! -!WR_HCHO/URG10=0.0 -! -!WR_HCHO/RPR1=0.0 -! -!WR_HCHO/RPR5=0.0 -! -!WR_HCHO/RPR8=0.0 -! -!WR_HCHO/RP10=0.0 -! -!WR_HCHO/RP11=0.0 -! -!WR_HCHO/RP16=0.0 -! -!WR_HCHO/RPRL=0.0 -! -!WR_HCHO/APAN=0.0 -! -!WR_HCHO/PAN1=0.0 -! -!WR_HCHO/PAN2=0.0 -! -!WR_HCHO/PAN3=0.0 -! -!WR_HCHO/PAN4=0.0 -! -!WR_HCHO/PAN6=0.0 -! -!WR_HCHO/PAN7=0.0 -! -!WR_HCHO/PAN8=0.0 -! -!WR_HCHO/PN10=0.0 -! -!WR_HCHO/RO2T=0.0 -! -!WR_HCHO/RO21=0.0 -! -!WR_HCHO/RO25=0.0 -! -!WR_HCHO/WC_O3=0.0 -! -!WR_HCHO/WC_H2O2=0.0 -! -!WR_HCHO/WC_NO=0.0 -! -!WR_HCHO/WC_NO2=0.0 -! -!WR_HCHO/WC_NO3=0.0 -! -!WR_HCHO/WC_N2O5=0.0 -! -!WR_HCHO/WC_HONO=0.0 -! -!WR_HCHO/WC_HNO3=0.0 -! -!WR_HCHO/WC_HNO4=0.0 -! -!WR_HCHO/WC_NH3=0.0 -! -!WR_HCHO/WC_OH=0.0 -! -!WR_HCHO/WC_HO2=0.0 -! -!WR_HCHO/WC_CO2=0.0 -! -!WR_HCHO/WC_SO2=0.0 -! -!WR_HCHO/WC_H2SO4=0.0 -! -!WR_HCHO/WC_RO21=0.0 -! -!WR_HCHO/WC_RO25=0.0 -! -!WR_HCHO/WC_MEOH=0.0 -! -!WR_HCHO/WC_ETOH=0.0 -! -!WR_HCHO/WC_ALCH=0.0 -! -!WR_HCHO/WC_HCHO=0.0 -! -!WR_HCHO/WC_ALD2=0.0 -! -!WR_HCHO/WC_GLY=0.0 -! -!WR_HCHO/WC_MGLY=0.0 -! -!WR_HCHO/WC_KETL=0.0 -! -!WR_HCHO/WC_ORA1=0.0 -! -!WR_HCHO/WC_ORA2=0.0 -! -!WR_HCHO/WC_ACID=0.0 -! -!WR_HCHO/WC_RP16=0.0 -! -!WR_HCHO/WC_UR21=0.0 -! -!WR_HCHO/WC_UR28=0.0 -! -!WR_HCHO/WC_ACID2=0.0 -! -!WR_HCHO/WC_ASO3=0.0 -! -!WR_HCHO/WC_ASO4=0.0 -! -!WR_HCHO/WC_ASO5=0.0 -! -!WR_HCHO/WC_AHSO5=0.0 -! -!WR_HCHO/WC_AHMS=0.0 -! -!WR_HCHO/WR_O3=0.0 -! -!WR_HCHO/WR_H2O2=0.0 -! -!WR_HCHO/WR_NO=0.0 -! -!WR_HCHO/WR_NO2=0.0 -! -!WR_HCHO/WR_NO3=0.0 -! -!WR_HCHO/WR_N2O5=0.0 -! -!WR_HCHO/WR_HONO=0.0 -! -!WR_HCHO/WR_HNO3=0.0 -! -!WR_HCHO/WR_HNO4=0.0 -! -!WR_HCHO/WR_NH3=0.0 -! -!WR_HCHO/WR_OH=+KR30*<WR_MEOH>-KR33*<WR_HCHO>+KR37*<WR_KETL> - PJAC(:,145,135)=+TPK%KR30(:)*PCONC(:,142)-TPK%KR33(:)*PCONC(:,145)+TPK%KR37(:)& -&*PCONC(:,149) -! -!WR_HCHO/WR_HO2=0.0 -! -!WR_HCHO/WR_CO2=0.0 -! -!WR_HCHO/WR_SO2=-KR17*<WR_HCHO>+KR28*<WR_RO21> - PJAC(:,145,138)=-TPK%KR17(:)*PCONC(:,145)+TPK%KR28(:)*PCONC(:,140) -! -!WR_HCHO/WR_H2SO4=0.0 -! -!WR_HCHO/WR_RO21=+2.00*KR27*<WR_RO21>+2.00*KR27*<WR_RO21>+KR28*<WR_SO2> - PJAC(:,145,140)=+2.00*TPK%KR27(:)*PCONC(:,140)+2.00*TPK%KR27(:)*PCONC(:,140)+T& -&PK%KR28(:)*PCONC(:,138) -! -!WR_HCHO/WR_RO25=0.0 -! -!WR_HCHO/WR_MEOH=+KR30*<WR_OH> - PJAC(:,145,142)=+TPK%KR30(:)*PCONC(:,135) -! -!WR_HCHO/WR_ETOH=0.0 -! -!WR_HCHO/WR_ALCH=0.0 -! -!WR_HCHO/WR_HCHO=-KTR52-KR17*<WR_SO2>-KR33*<WR_OH> - PJAC(:,145,145)=-TPK%KTR52(:)-TPK%KR17(:)*PCONC(:,138)-TPK%KR33(:)*PCONC(:,135& -&) -! -!WR_HCHO/WR_ALD2=0.0 -! -!WR_HCHO/WR_GLY=0.0 -! -!WR_HCHO/WR_MGLY=0.0 -! -!WR_HCHO/WR_KETL=+KR37*<WR_OH> - PJAC(:,145,149)=+TPK%KR37(:)*PCONC(:,135) -! -!WR_HCHO/WR_ORA1=0.0 -! -!WR_HCHO/WR_ORA2=0.0 -! -!WR_HCHO/WR_ACID=0.0 -! -!WR_HCHO/WR_RP16=0.0 -! -!WR_HCHO/WR_UR21=0.0 -! -!WR_HCHO/WR_UR28=0.0 -! -!WR_HCHO/WR_ACID2=0.0 -! -!WR_HCHO/WR_ASO3=0.0 -! -!WR_HCHO/WR_ASO4=0.0 -! -!WR_HCHO/WR_ASO5=0.0 -! -!WR_HCHO/WR_AHSO5=0.0 -! -!WR_HCHO/WR_AHMS=+KR18 - PJAC(:,145,161)=+TPK%KR18(:) -! -RETURN -END SUBROUTINE SUBJ28 -! -SUBROUTINE SUBJ29 -! -!Indices 146 a 150 -! -! -!WR_ALD2/NO=0.0 -! -!WR_ALD2/NO2=0.0 -! -!WR_ALD2/O3=0.0 -! -!WR_ALD2/HONO=0.0 -! -!WR_ALD2/HNO3=0.0 -! -!WR_ALD2/HNO4=0.0 -! -!WR_ALD2/N2O5=0.0 -! -!WR_ALD2/NO3=0.0 -! -!WR_ALD2/NH3=0.0 -! -!WR_ALD2/HO2=0.0 -! -!WR_ALD2/CO=0.0 -! -!WR_ALD2/H2O2=0.0 -! -!WR_ALD2/SO2=0.0 -! -!WR_ALD2/H2SO4=0.0 -! -!WR_ALD2/OH=0.0 -! -!WR_ALD2/ETHE=0.0 -! -!WR_ALD2/OLEL=0.0 -! -!WR_ALD2/OLEH=0.0 -! -!WR_ALD2/ALKL=0.0 -! -!WR_ALD2/ALKM=0.0 -! -!WR_ALD2/ALKH=0.0 -! -!WR_ALD2/AROH=0.0 -! -!WR_ALD2/AROL=0.0 -! -!WR_ALD2/AROO=0.0 -! -!WR_ALD2/ARAL=0.0 -! -!WR_ALD2/ARAC=0.0 -! -!WR_ALD2/PAH=0.0 -! -!WR_ALD2/HCHO=0.0 -! -!WR_ALD2/ALD2=+KTR22 - PJAC(:,146,29)=+TPK%KTR22(:) -! -!WR_ALD2/KETL=0.0 -! -!WR_ALD2/KETH=0.0 -! -!WR_ALD2/MEOH=0.0 -! -!WR_ALD2/ETOH=0.0 -! -!WR_ALD2/ALCH=0.0 -! -!WR_ALD2/ISOP=0.0 -! -!WR_ALD2/BIOL=0.0 -! -!WR_ALD2/BIOH=0.0 -! -!WR_ALD2/MTBE=0.0 -! -!WR_ALD2/MVK=0.0 -! -!WR_ALD2/MCR=0.0 -! -!WR_ALD2/MGLY=0.0 -! -!WR_ALD2/GLY=0.0 -! -!WR_ALD2/ORA1=0.0 -! -!WR_ALD2/ORA2=0.0 -! -!WR_ALD2/ACID=0.0 -! -!WR_ALD2/UR28=0.0 -! -!WR_ALD2/UR21=0.0 -! -!WR_ALD2/URG2=0.0 -! -!WR_ALD2/UR26=0.0 -! -!WR_ALD2/RPG2=0.0 -! -!WR_ALD2/RP18=0.0 -! -!WR_ALD2/RPG3=0.0 -! -!WR_ALD2/URG4=0.0 -! -!WR_ALD2/UR8=0.0 -! -!WR_ALD2/UR17=0.0 -! -!WR_ALD2/UR7=0.0 -! -!WR_ALD2/RPR3=0.0 -! -!WR_ALD2/URG6=0.0 -! -!WR_ALD2/UR22=0.0 -! -!WR_ALD2/URG7=0.0 -! -!WR_ALD2/RPR4=0.0 -! -!WR_ALD2/RPR7=0.0 -! -!WR_ALD2/RPG7=0.0 -! -!WR_ALD2/URG8=0.0 -! -!WR_ALD2/UR19=0.0 -! -!WR_ALD2/URG9=0.0 -! -!WR_ALD2/AP7=0.0 -! -!WR_ALD2/URG10=0.0 -! -!WR_ALD2/RPR1=0.0 -! -!WR_ALD2/RPR5=0.0 -! -!WR_ALD2/RPR8=0.0 -! -!WR_ALD2/RP10=0.0 -! -!WR_ALD2/RP11=0.0 -! -!WR_ALD2/RP16=0.0 -! -!WR_ALD2/RPRL=0.0 -! -!WR_ALD2/APAN=0.0 -! -!WR_ALD2/PAN1=0.0 -! -!WR_ALD2/PAN2=0.0 -! -!WR_ALD2/PAN3=0.0 -! -!WR_ALD2/PAN4=0.0 -! -!WR_ALD2/PAN6=0.0 -! -!WR_ALD2/PAN7=0.0 -! -!WR_ALD2/PAN8=0.0 -! -!WR_ALD2/PN10=0.0 -! -!WR_ALD2/RO2T=0.0 -! -!WR_ALD2/RO21=0.0 -! -!WR_ALD2/RO25=0.0 -! -!WR_ALD2/WC_O3=0.0 -! -!WR_ALD2/WC_H2O2=0.0 -! -!WR_ALD2/WC_NO=0.0 -! -!WR_ALD2/WC_NO2=0.0 -! -!WR_ALD2/WC_NO3=0.0 -! -!WR_ALD2/WC_N2O5=0.0 -! -!WR_ALD2/WC_HONO=0.0 -! -!WR_ALD2/WC_HNO3=0.0 -! -!WR_ALD2/WC_HNO4=0.0 -! -!WR_ALD2/WC_NH3=0.0 -! -!WR_ALD2/WC_OH=0.0 -! -!WR_ALD2/WC_HO2=0.0 -! -!WR_ALD2/WC_CO2=0.0 -! -!WR_ALD2/WC_SO2=0.0 -! -!WR_ALD2/WC_H2SO4=0.0 -! -!WR_ALD2/WC_RO21=0.0 -! -!WR_ALD2/WC_RO25=0.0 -! -!WR_ALD2/WC_MEOH=0.0 -! -!WR_ALD2/WC_ETOH=0.0 -! -!WR_ALD2/WC_ALCH=0.0 -! -!WR_ALD2/WC_HCHO=0.0 -! -!WR_ALD2/WC_ALD2=0.0 -! -!WR_ALD2/WC_GLY=0.0 -! -!WR_ALD2/WC_MGLY=0.0 -! -!WR_ALD2/WC_KETL=0.0 -! -!WR_ALD2/WC_ORA1=0.0 -! -!WR_ALD2/WC_ORA2=0.0 -! -!WR_ALD2/WC_ACID=0.0 -! -!WR_ALD2/WC_RP16=0.0 -! -!WR_ALD2/WC_UR21=0.0 -! -!WR_ALD2/WC_UR28=0.0 -! -!WR_ALD2/WC_ACID2=0.0 -! -!WR_ALD2/WC_ASO3=0.0 -! -!WR_ALD2/WC_ASO4=0.0 -! -!WR_ALD2/WC_ASO5=0.0 -! -!WR_ALD2/WC_AHSO5=0.0 -! -!WR_ALD2/WC_AHMS=0.0 -! -!WR_ALD2/WR_O3=0.0 -! -!WR_ALD2/WR_H2O2=0.0 -! -!WR_ALD2/WR_NO=0.0 -! -!WR_ALD2/WR_NO2=0.0 -! -!WR_ALD2/WR_NO3=0.0 -! -!WR_ALD2/WR_N2O5=0.0 -! -!WR_ALD2/WR_HONO=0.0 -! -!WR_ALD2/WR_HNO3=0.0 -! -!WR_ALD2/WR_HNO4=0.0 -! -!WR_ALD2/WR_NH3=0.0 -! -!WR_ALD2/WR_OH=+KR31*<WR_ETOH>+0.50*KR32*<WR_ALCH>-KR34*<WR_ALD2>+KR37*<WR_KETL -!>+0.29*KR41*<WR_ACID>+0.43*KR43*<WR_UR21> - PJAC(:,146,135)=+TPK%KR31(:)*PCONC(:,143)+0.50*TPK%KR32(:)*PCONC(:,144)-TPK%KR& -&34(:)*PCONC(:,146)+TPK%KR37(:)*PCONC(:,149)+0.29*TPK%KR41(:)*PCONC(:,152)+0.43& -&*TPK%KR43(:)*PCONC(:,154) -! -!WR_ALD2/WR_HO2=0.0 -! -!WR_ALD2/WR_CO2=0.0 -! -!WR_ALD2/WR_SO2=0.0 -! -!WR_ALD2/WR_H2SO4=0.0 -! -!WR_ALD2/WR_RO21=0.0 -! -!WR_ALD2/WR_RO25=+KR29*<WR_RO25>+KR29*<WR_RO25> - PJAC(:,146,141)=+TPK%KR29(:)*PCONC(:,141)+TPK%KR29(:)*PCONC(:,141) -! -!WR_ALD2/WR_MEOH=0.0 -! -!WR_ALD2/WR_ETOH=+KR31*<WR_OH> - PJAC(:,146,143)=+TPK%KR31(:)*PCONC(:,135) -! -!WR_ALD2/WR_ALCH=+0.50*KR32*<WR_OH> - PJAC(:,146,144)=+0.50*TPK%KR32(:)*PCONC(:,135) -! -!WR_ALD2/WR_HCHO=0.0 -! -!WR_ALD2/WR_ALD2=-KTR53-KR34*<WR_OH> - PJAC(:,146,146)=-TPK%KTR53(:)-TPK%KR34(:)*PCONC(:,135) -! -!WR_ALD2/WR_GLY=0.0 -! -!WR_ALD2/WR_MGLY=0.0 -! -!WR_ALD2/WR_KETL=+KR37*<WR_OH> - PJAC(:,146,149)=+TPK%KR37(:)*PCONC(:,135) -! -!WR_ALD2/WR_ORA1=0.0 -! -!WR_ALD2/WR_ORA2=0.0 -! -!WR_ALD2/WR_ACID=+0.29*KR41*<WR_OH> - PJAC(:,146,152)=+0.29*TPK%KR41(:)*PCONC(:,135) -! -!WR_ALD2/WR_RP16=0.0 -! -!WR_ALD2/WR_UR21=+0.43*KR43*<WR_OH> - PJAC(:,146,154)=+0.43*TPK%KR43(:)*PCONC(:,135) -! -!WR_ALD2/WR_UR28=0.0 -! -!WR_ALD2/WR_ACID2=0.0 -! -!WR_ALD2/WR_ASO3=0.0 -! -!WR_ALD2/WR_ASO4=0.0 -! -!WR_ALD2/WR_ASO5=0.0 -! -!WR_ALD2/WR_AHSO5=0.0 -! -!WR_ALD2/WR_AHMS=0.0 -! -!WR_GLY/NO=0.0 -! -!WR_GLY/NO2=0.0 -! -!WR_GLY/O3=0.0 -! -!WR_GLY/HONO=0.0 -! -!WR_GLY/HNO3=0.0 -! -!WR_GLY/HNO4=0.0 -! -!WR_GLY/N2O5=0.0 -! -!WR_GLY/NO3=0.0 -! -!WR_GLY/NH3=0.0 -! -!WR_GLY/HO2=0.0 -! -!WR_GLY/CO=0.0 -! -!WR_GLY/H2O2=0.0 -! -!WR_GLY/SO2=0.0 -! -!WR_GLY/H2SO4=0.0 -! -!WR_GLY/OH=0.0 -! -!WR_GLY/ETHE=0.0 -! -!WR_GLY/OLEL=0.0 -! -!WR_GLY/OLEH=0.0 -! -!WR_GLY/ALKL=0.0 -! -!WR_GLY/ALKM=0.0 -! -!WR_GLY/ALKH=0.0 -! -!WR_GLY/AROH=0.0 -! -!WR_GLY/AROL=0.0 -! -!WR_GLY/AROO=0.0 -! -!WR_GLY/ARAL=0.0 -! -!WR_GLY/ARAC=0.0 -! -!WR_GLY/PAH=0.0 -! -!WR_GLY/HCHO=0.0 -! -!WR_GLY/ALD2=0.0 -! -!WR_GLY/KETL=0.0 -! -!WR_GLY/KETH=0.0 -! -!WR_GLY/MEOH=0.0 -! -!WR_GLY/ETOH=0.0 -! -!WR_GLY/ALCH=0.0 -! -!WR_GLY/ISOP=0.0 -! -!WR_GLY/BIOL=0.0 -! -!WR_GLY/BIOH=0.0 -! -!WR_GLY/MTBE=0.0 -! -!WR_GLY/MVK=0.0 -! -!WR_GLY/MCR=0.0 -! -!WR_GLY/MGLY=0.0 -! -!WR_GLY/GLY=+KTR23 - PJAC(:,147,42)=+TPK%KTR23(:) -! -!WR_GLY/ORA1=0.0 -! -!WR_GLY/ORA2=0.0 -! -!WR_GLY/ACID=0.0 -! -!WR_GLY/UR28=0.0 -! -!WR_GLY/UR21=0.0 -! -!WR_GLY/URG2=0.0 -! -!WR_GLY/UR26=0.0 -! -!WR_GLY/RPG2=0.0 -! -!WR_GLY/RP18=0.0 -! -!WR_GLY/RPG3=0.0 -! -!WR_GLY/URG4=0.0 -! -!WR_GLY/UR8=0.0 -! -!WR_GLY/UR17=0.0 -! -!WR_GLY/UR7=0.0 -! -!WR_GLY/RPR3=0.0 -! -!WR_GLY/URG6=0.0 -! -!WR_GLY/UR22=0.0 -! -!WR_GLY/URG7=0.0 -! -!WR_GLY/RPR4=0.0 -! -!WR_GLY/RPR7=0.0 -! -!WR_GLY/RPG7=0.0 -! -!WR_GLY/URG8=0.0 -! -!WR_GLY/UR19=0.0 -! -!WR_GLY/URG9=0.0 -! -!WR_GLY/AP7=0.0 -! -!WR_GLY/URG10=0.0 -! -!WR_GLY/RPR1=0.0 -! -!WR_GLY/RPR5=0.0 -! -!WR_GLY/RPR8=0.0 -! -!WR_GLY/RP10=0.0 -! -!WR_GLY/RP11=0.0 -! -!WR_GLY/RP16=0.0 -! -!WR_GLY/RPRL=0.0 -! -!WR_GLY/APAN=0.0 -! -!WR_GLY/PAN1=0.0 -! -!WR_GLY/PAN2=0.0 -! -!WR_GLY/PAN3=0.0 -! -!WR_GLY/PAN4=0.0 -! -!WR_GLY/PAN6=0.0 -! -!WR_GLY/PAN7=0.0 -! -!WR_GLY/PAN8=0.0 -! -!WR_GLY/PN10=0.0 -! -!WR_GLY/RO2T=0.0 -! -!WR_GLY/RO21=0.0 -! -!WR_GLY/RO25=0.0 -! -!WR_GLY/WC_O3=0.0 -! -!WR_GLY/WC_H2O2=0.0 -! -!WR_GLY/WC_NO=0.0 -! -!WR_GLY/WC_NO2=0.0 -! -!WR_GLY/WC_NO3=0.0 -! -!WR_GLY/WC_N2O5=0.0 -! -!WR_GLY/WC_HONO=0.0 -! -!WR_GLY/WC_HNO3=0.0 -! -!WR_GLY/WC_HNO4=0.0 -! -!WR_GLY/WC_NH3=0.0 -! -!WR_GLY/WC_OH=0.0 -! -!WR_GLY/WC_HO2=0.0 -! -!WR_GLY/WC_CO2=0.0 -! -!WR_GLY/WC_SO2=0.0 -! -!WR_GLY/WC_H2SO4=0.0 -! -!WR_GLY/WC_RO21=0.0 -! -!WR_GLY/WC_RO25=0.0 -! -!WR_GLY/WC_MEOH=0.0 -! -!WR_GLY/WC_ETOH=0.0 -! -!WR_GLY/WC_ALCH=0.0 -! -!WR_GLY/WC_HCHO=0.0 -! -!WR_GLY/WC_ALD2=0.0 -! -!WR_GLY/WC_GLY=0.0 -! -!WR_GLY/WC_MGLY=0.0 -! -!WR_GLY/WC_KETL=0.0 -! -!WR_GLY/WC_ORA1=0.0 -! -!WR_GLY/WC_ORA2=0.0 -! -!WR_GLY/WC_ACID=0.0 -! -!WR_GLY/WC_RP16=0.0 -! -!WR_GLY/WC_UR21=0.0 -! -!WR_GLY/WC_UR28=0.0 -! -!WR_GLY/WC_ACID2=0.0 -! -!WR_GLY/WC_ASO3=0.0 -! -!WR_GLY/WC_ASO4=0.0 -! -!WR_GLY/WC_ASO5=0.0 -! -!WR_GLY/WC_AHSO5=0.0 -! -!WR_GLY/WC_AHMS=0.0 -! -!WR_GLY/WR_O3=0.0 -! -!WR_GLY/WR_H2O2=0.0 -! -!WR_GLY/WR_NO=0.0 -! -!WR_GLY/WR_NO2=0.0 -! -!WR_GLY/WR_NO3=0.0 -! -!WR_GLY/WR_N2O5=0.0 -! -!WR_GLY/WR_HONO=0.0 -! -!WR_GLY/WR_HNO3=0.0 -! -!WR_GLY/WR_HNO4=0.0 -! -!WR_GLY/WR_NH3=0.0 -! -!WR_GLY/WR_OH=-KR35*<WR_GLY> - PJAC(:,147,135)=-TPK%KR35(:)*PCONC(:,147) -! -!WR_GLY/WR_HO2=0.0 -! -!WR_GLY/WR_CO2=0.0 -! -!WR_GLY/WR_SO2=0.0 -! -!WR_GLY/WR_H2SO4=0.0 -! -!WR_GLY/WR_RO21=0.0 -! -!WR_GLY/WR_RO25=0.0 -! -!WR_GLY/WR_MEOH=0.0 -! -!WR_GLY/WR_ETOH=0.0 -! -!WR_GLY/WR_ALCH=0.0 -! -!WR_GLY/WR_HCHO=0.0 -! -!WR_GLY/WR_ALD2=0.0 -! -!WR_GLY/WR_GLY=-KTR54-KR35*<WR_OH> - PJAC(:,147,147)=-TPK%KTR54(:)-TPK%KR35(:)*PCONC(:,135) -! -!WR_GLY/WR_MGLY=0.0 -! -!WR_GLY/WR_KETL=0.0 -! -!WR_GLY/WR_ORA1=0.0 -! -!WR_GLY/WR_ORA2=0.0 -! -!WR_GLY/WR_ACID=0.0 -! -!WR_GLY/WR_RP16=0.0 -! -!WR_GLY/WR_UR21=0.0 -! -!WR_GLY/WR_UR28=0.0 -! -!WR_GLY/WR_ACID2=0.0 -! -!WR_GLY/WR_ASO3=0.0 -! -!WR_GLY/WR_ASO4=0.0 -! -!WR_GLY/WR_ASO5=0.0 -! -!WR_GLY/WR_AHSO5=0.0 -! -!WR_GLY/WR_AHMS=0.0 -! -!WR_MGLY/NO=0.0 -! -!WR_MGLY/NO2=0.0 -! -!WR_MGLY/O3=0.0 -! -!WR_MGLY/HONO=0.0 -! -!WR_MGLY/HNO3=0.0 -! -!WR_MGLY/HNO4=0.0 -! -!WR_MGLY/N2O5=0.0 -! -!WR_MGLY/NO3=0.0 -! -!WR_MGLY/NH3=0.0 -! -!WR_MGLY/HO2=0.0 -! -!WR_MGLY/CO=0.0 -! -!WR_MGLY/H2O2=0.0 -! -!WR_MGLY/SO2=0.0 -! -!WR_MGLY/H2SO4=0.0 -! -!WR_MGLY/OH=0.0 -! -!WR_MGLY/ETHE=0.0 -! -!WR_MGLY/OLEL=0.0 -! -!WR_MGLY/OLEH=0.0 -! -!WR_MGLY/ALKL=0.0 -! -!WR_MGLY/ALKM=0.0 -! -!WR_MGLY/ALKH=0.0 -! -!WR_MGLY/AROH=0.0 -! -!WR_MGLY/AROL=0.0 -! -!WR_MGLY/AROO=0.0 -! -!WR_MGLY/ARAL=0.0 -! -!WR_MGLY/ARAC=0.0 -! -!WR_MGLY/PAH=0.0 -! -!WR_MGLY/HCHO=0.0 -! -!WR_MGLY/ALD2=0.0 -! -!WR_MGLY/KETL=0.0 -! -!WR_MGLY/KETH=0.0 -! -!WR_MGLY/MEOH=0.0 -! -!WR_MGLY/ETOH=0.0 -! -!WR_MGLY/ALCH=0.0 -! -!WR_MGLY/ISOP=0.0 -! -!WR_MGLY/BIOL=0.0 -! -!WR_MGLY/BIOH=0.0 -! -!WR_MGLY/MTBE=0.0 -! -!WR_MGLY/MVK=0.0 -! -!WR_MGLY/MCR=0.0 -! -!WR_MGLY/MGLY=+KTR25 - PJAC(:,148,41)=+TPK%KTR25(:) -! -!WR_MGLY/GLY=0.0 -! -!WR_MGLY/ORA1=0.0 -! -!WR_MGLY/ORA2=0.0 -! -!WR_MGLY/ACID=0.0 -! -!WR_MGLY/UR28=0.0 -! -!WR_MGLY/UR21=0.0 -! -!WR_MGLY/URG2=0.0 -! -!WR_MGLY/UR26=0.0 -! -!WR_MGLY/RPG2=0.0 -! -!WR_MGLY/RP18=0.0 -! -!WR_MGLY/RPG3=0.0 -! -!WR_MGLY/URG4=0.0 -! -!WR_MGLY/UR8=0.0 -! -!WR_MGLY/UR17=0.0 -! -!WR_MGLY/UR7=0.0 -! -!WR_MGLY/RPR3=0.0 -! -!WR_MGLY/URG6=0.0 -! -!WR_MGLY/UR22=0.0 -! -!WR_MGLY/URG7=0.0 -! -!WR_MGLY/RPR4=0.0 -! -!WR_MGLY/RPR7=0.0 -! -!WR_MGLY/RPG7=0.0 -! -!WR_MGLY/URG8=0.0 -! -!WR_MGLY/UR19=0.0 -! -!WR_MGLY/URG9=0.0 -! -!WR_MGLY/AP7=0.0 -! -!WR_MGLY/URG10=0.0 -! -!WR_MGLY/RPR1=0.0 -! -!WR_MGLY/RPR5=0.0 -! -!WR_MGLY/RPR8=0.0 -! -!WR_MGLY/RP10=0.0 -! -!WR_MGLY/RP11=0.0 -! -!WR_MGLY/RP16=0.0 -! -!WR_MGLY/RPRL=0.0 -! -!WR_MGLY/APAN=0.0 -! -!WR_MGLY/PAN1=0.0 -! -!WR_MGLY/PAN2=0.0 -! -!WR_MGLY/PAN3=0.0 -! -!WR_MGLY/PAN4=0.0 -! -!WR_MGLY/PAN6=0.0 -! -!WR_MGLY/PAN7=0.0 -! -!WR_MGLY/PAN8=0.0 -! -!WR_MGLY/PN10=0.0 -! -!WR_MGLY/RO2T=0.0 -! -!WR_MGLY/RO21=0.0 -! -!WR_MGLY/RO25=0.0 -! -!WR_MGLY/WC_O3=0.0 -! -!WR_MGLY/WC_H2O2=0.0 -! -!WR_MGLY/WC_NO=0.0 -! -!WR_MGLY/WC_NO2=0.0 -! -!WR_MGLY/WC_NO3=0.0 -! -!WR_MGLY/WC_N2O5=0.0 -! -!WR_MGLY/WC_HONO=0.0 -! -!WR_MGLY/WC_HNO3=0.0 -! -!WR_MGLY/WC_HNO4=0.0 -! -!WR_MGLY/WC_NH3=0.0 -! -!WR_MGLY/WC_OH=0.0 -! -!WR_MGLY/WC_HO2=0.0 -! -!WR_MGLY/WC_CO2=0.0 -! -!WR_MGLY/WC_SO2=0.0 -! -!WR_MGLY/WC_H2SO4=0.0 -! -!WR_MGLY/WC_RO21=0.0 -! -!WR_MGLY/WC_RO25=0.0 -! -!WR_MGLY/WC_MEOH=0.0 -! -!WR_MGLY/WC_ETOH=0.0 -! -!WR_MGLY/WC_ALCH=0.0 -! -!WR_MGLY/WC_HCHO=0.0 -! -!WR_MGLY/WC_ALD2=0.0 -! -!WR_MGLY/WC_GLY=0.0 -! -!WR_MGLY/WC_MGLY=0.0 -! -!WR_MGLY/WC_KETL=0.0 -! -!WR_MGLY/WC_ORA1=0.0 -! -!WR_MGLY/WC_ORA2=0.0 -! -!WR_MGLY/WC_ACID=0.0 -! -!WR_MGLY/WC_RP16=0.0 -! -!WR_MGLY/WC_UR21=0.0 -! -!WR_MGLY/WC_UR28=0.0 -! -!WR_MGLY/WC_ACID2=0.0 -! -!WR_MGLY/WC_ASO3=0.0 -! -!WR_MGLY/WC_ASO4=0.0 -! -!WR_MGLY/WC_ASO5=0.0 -! -!WR_MGLY/WC_AHSO5=0.0 -! -!WR_MGLY/WC_AHMS=0.0 -! -!WR_MGLY/WR_O3=0.0 -! -!WR_MGLY/WR_H2O2=0.0 -! -!WR_MGLY/WR_NO=0.0 -! -!WR_MGLY/WR_NO2=0.0 -! -!WR_MGLY/WR_NO3=0.0 -! -!WR_MGLY/WR_N2O5=0.0 -! -!WR_MGLY/WR_HONO=0.0 -! -!WR_MGLY/WR_HNO3=0.0 -! -!WR_MGLY/WR_HNO4=0.0 -! -!WR_MGLY/WR_NH3=0.0 -! -!WR_MGLY/WR_OH=-KR36*<WR_MGLY>+KR37*<WR_KETL> - PJAC(:,148,135)=-TPK%KR36(:)*PCONC(:,148)+TPK%KR37(:)*PCONC(:,149) -! -!WR_MGLY/WR_HO2=0.0 -! -!WR_MGLY/WR_CO2=0.0 -! -!WR_MGLY/WR_SO2=0.0 -! -!WR_MGLY/WR_H2SO4=0.0 -! -!WR_MGLY/WR_RO21=0.0 -! -!WR_MGLY/WR_RO25=0.0 -! -!WR_MGLY/WR_MEOH=0.0 -! -!WR_MGLY/WR_ETOH=0.0 -! -!WR_MGLY/WR_ALCH=0.0 -! -!WR_MGLY/WR_HCHO=0.0 -! -!WR_MGLY/WR_ALD2=0.0 -! -!WR_MGLY/WR_GLY=0.0 -! -!WR_MGLY/WR_MGLY=-KTR56-KR36*<WR_OH> - PJAC(:,148,148)=-TPK%KTR56(:)-TPK%KR36(:)*PCONC(:,135) -! -!WR_MGLY/WR_KETL=+KR37*<WR_OH> - PJAC(:,148,149)=+TPK%KR37(:)*PCONC(:,135) -! -!WR_MGLY/WR_ORA1=0.0 -! -!WR_MGLY/WR_ORA2=0.0 -! -!WR_MGLY/WR_ACID=0.0 -! -!WR_MGLY/WR_RP16=0.0 -! -!WR_MGLY/WR_UR21=0.0 -! -!WR_MGLY/WR_UR28=0.0 -! -!WR_MGLY/WR_ACID2=0.0 -! -!WR_MGLY/WR_ASO3=0.0 -! -!WR_MGLY/WR_ASO4=0.0 -! -!WR_MGLY/WR_ASO5=0.0 -! -!WR_MGLY/WR_AHSO5=0.0 -! -!WR_MGLY/WR_AHMS=0.0 -! -!WR_KETL/NO=0.0 -! -!WR_KETL/NO2=0.0 -! -!WR_KETL/O3=0.0 -! -!WR_KETL/HONO=0.0 -! -!WR_KETL/HNO3=0.0 -! -!WR_KETL/HNO4=0.0 -! -!WR_KETL/N2O5=0.0 -! -!WR_KETL/NO3=0.0 -! -!WR_KETL/NH3=0.0 -! -!WR_KETL/HO2=0.0 -! -!WR_KETL/CO=0.0 -! -!WR_KETL/H2O2=0.0 -! -!WR_KETL/SO2=0.0 -! -!WR_KETL/H2SO4=0.0 -! -!WR_KETL/OH=0.0 -! -!WR_KETL/ETHE=0.0 -! -!WR_KETL/OLEL=0.0 -! -!WR_KETL/OLEH=0.0 -! -!WR_KETL/ALKL=0.0 -! -!WR_KETL/ALKM=0.0 -! -!WR_KETL/ALKH=0.0 -! -!WR_KETL/AROH=0.0 -! -!WR_KETL/AROL=0.0 -! -!WR_KETL/AROO=0.0 -! -!WR_KETL/ARAL=0.0 -! -!WR_KETL/ARAC=0.0 -! -!WR_KETL/PAH=0.0 -! -!WR_KETL/HCHO=0.0 -! -!WR_KETL/ALD2=0.0 -! -!WR_KETL/KETL=+KTR24 - PJAC(:,149,30)=+TPK%KTR24(:) -! -!WR_KETL/KETH=0.0 -! -!WR_KETL/MEOH=0.0 -! -!WR_KETL/ETOH=0.0 -! -!WR_KETL/ALCH=0.0 -! -!WR_KETL/ISOP=0.0 -! -!WR_KETL/BIOL=0.0 -! -!WR_KETL/BIOH=0.0 -! -!WR_KETL/MTBE=0.0 -! -!WR_KETL/MVK=0.0 -! -!WR_KETL/MCR=0.0 -! -!WR_KETL/MGLY=0.0 -! -!WR_KETL/GLY=0.0 -! -!WR_KETL/ORA1=0.0 -! -!WR_KETL/ORA2=0.0 -! -!WR_KETL/ACID=0.0 -! -!WR_KETL/UR28=0.0 -! -!WR_KETL/UR21=0.0 -! -!WR_KETL/URG2=0.0 -! -!WR_KETL/UR26=0.0 -! -!WR_KETL/RPG2=0.0 -! -!WR_KETL/RP18=0.0 -! -!WR_KETL/RPG3=0.0 -! -!WR_KETL/URG4=0.0 -! -!WR_KETL/UR8=0.0 -! -!WR_KETL/UR17=0.0 -! -!WR_KETL/UR7=0.0 -! -!WR_KETL/RPR3=0.0 -! -!WR_KETL/URG6=0.0 -! -!WR_KETL/UR22=0.0 -! -!WR_KETL/URG7=0.0 -! -!WR_KETL/RPR4=0.0 -! -!WR_KETL/RPR7=0.0 -! -!WR_KETL/RPG7=0.0 -! -!WR_KETL/URG8=0.0 -! -!WR_KETL/UR19=0.0 -! -!WR_KETL/URG9=0.0 -! -!WR_KETL/AP7=0.0 -! -!WR_KETL/URG10=0.0 -! -!WR_KETL/RPR1=0.0 -! -!WR_KETL/RPR5=0.0 -! -!WR_KETL/RPR8=0.0 -! -!WR_KETL/RP10=0.0 -! -!WR_KETL/RP11=0.0 -! -!WR_KETL/RP16=0.0 -! -!WR_KETL/RPRL=0.0 -! -!WR_KETL/APAN=0.0 -! -!WR_KETL/PAN1=0.0 -! -!WR_KETL/PAN2=0.0 -! -!WR_KETL/PAN3=0.0 -! -!WR_KETL/PAN4=0.0 -! -!WR_KETL/PAN6=0.0 -! -!WR_KETL/PAN7=0.0 -! -!WR_KETL/PAN8=0.0 -! -!WR_KETL/PN10=0.0 -! -!WR_KETL/RO2T=0.0 -! -!WR_KETL/RO21=0.0 -! -!WR_KETL/RO25=0.0 -! -!WR_KETL/WC_O3=0.0 -! -!WR_KETL/WC_H2O2=0.0 -! -!WR_KETL/WC_NO=0.0 -! -!WR_KETL/WC_NO2=0.0 -! -!WR_KETL/WC_NO3=0.0 -! -!WR_KETL/WC_N2O5=0.0 -! -!WR_KETL/WC_HONO=0.0 -! -!WR_KETL/WC_HNO3=0.0 -! -!WR_KETL/WC_HNO4=0.0 -! -!WR_KETL/WC_NH3=0.0 -! -!WR_KETL/WC_OH=0.0 -! -!WR_KETL/WC_HO2=0.0 -! -!WR_KETL/WC_CO2=0.0 -! -!WR_KETL/WC_SO2=0.0 -! -!WR_KETL/WC_H2SO4=0.0 -! -!WR_KETL/WC_RO21=0.0 -! -!WR_KETL/WC_RO25=0.0 -! -!WR_KETL/WC_MEOH=0.0 -! -!WR_KETL/WC_ETOH=0.0 -! -!WR_KETL/WC_ALCH=0.0 -! -!WR_KETL/WC_HCHO=0.0 -! -!WR_KETL/WC_ALD2=0.0 -! -!WR_KETL/WC_GLY=0.0 -! -!WR_KETL/WC_MGLY=0.0 -! -!WR_KETL/WC_KETL=0.0 -! -!WR_KETL/WC_ORA1=0.0 -! -!WR_KETL/WC_ORA2=0.0 -! -!WR_KETL/WC_ACID=0.0 -! -!WR_KETL/WC_RP16=0.0 -! -!WR_KETL/WC_UR21=0.0 -! -!WR_KETL/WC_UR28=0.0 -! -!WR_KETL/WC_ACID2=0.0 -! -!WR_KETL/WC_ASO3=0.0 -! -!WR_KETL/WC_ASO4=0.0 -! -!WR_KETL/WC_ASO5=0.0 -! -!WR_KETL/WC_AHSO5=0.0 -! -!WR_KETL/WC_AHMS=0.0 -! -!WR_KETL/WR_O3=0.0 -! -!WR_KETL/WR_H2O2=0.0 -! -!WR_KETL/WR_NO=0.0 -! -!WR_KETL/WR_NO2=0.0 -! -!WR_KETL/WR_NO3=0.0 -! -!WR_KETL/WR_N2O5=0.0 -! -!WR_KETL/WR_HONO=0.0 -! -!WR_KETL/WR_HNO3=0.0 -! -!WR_KETL/WR_HNO4=0.0 -! -!WR_KETL/WR_NH3=0.0 -! -!WR_KETL/WR_OH=+0.50*KR32*<WR_ALCH>+KR37*<WR_KETL>-KR37*<WR_KETL> - PJAC(:,149,135)=+0.50*TPK%KR32(:)*PCONC(:,144)+TPK%KR37(:)*PCONC(:,149)-TPK%KR& -&37(:)*PCONC(:,149) -! -!WR_KETL/WR_HO2=0.0 -! -!WR_KETL/WR_CO2=0.0 -! -!WR_KETL/WR_SO2=0.0 -! -!WR_KETL/WR_H2SO4=0.0 -! -!WR_KETL/WR_RO21=0.0 -! -!WR_KETL/WR_RO25=0.0 -! -!WR_KETL/WR_MEOH=0.0 -! -!WR_KETL/WR_ETOH=0.0 -! -!WR_KETL/WR_ALCH=+0.50*KR32*<WR_OH> - PJAC(:,149,144)=+0.50*TPK%KR32(:)*PCONC(:,135) -! -!WR_KETL/WR_HCHO=0.0 -! -!WR_KETL/WR_ALD2=0.0 -! -!WR_KETL/WR_GLY=0.0 -! -!WR_KETL/WR_MGLY=0.0 -! -!WR_KETL/WR_KETL=-KTR55+KR37*<WR_OH>-KR37*<WR_OH> - PJAC(:,149,149)=-TPK%KTR55(:)+TPK%KR37(:)*PCONC(:,135)-TPK%KR37(:)*PCONC(:,135& -&) -! -!WR_KETL/WR_ORA1=0.0 -! -!WR_KETL/WR_ORA2=0.0 -! -!WR_KETL/WR_ACID=0.0 -! -!WR_KETL/WR_RP16=0.0 -! -!WR_KETL/WR_UR21=0.0 -! -!WR_KETL/WR_UR28=0.0 -! -!WR_KETL/WR_ACID2=0.0 -! -!WR_KETL/WR_ASO3=0.0 -! -!WR_KETL/WR_ASO4=0.0 -! -!WR_KETL/WR_ASO5=0.0 -! -!WR_KETL/WR_AHSO5=0.0 -! -!WR_KETL/WR_AHMS=0.0 -! -!WR_ORA1/NO=0.0 -! -!WR_ORA1/NO2=0.0 -! -!WR_ORA1/O3=0.0 -! -!WR_ORA1/HONO=0.0 -! -!WR_ORA1/HNO3=0.0 -! -!WR_ORA1/HNO4=0.0 -! -!WR_ORA1/N2O5=0.0 -! -!WR_ORA1/NO3=0.0 -! -!WR_ORA1/NH3=0.0 -! -!WR_ORA1/HO2=0.0 -! -!WR_ORA1/CO=0.0 -! -!WR_ORA1/H2O2=0.0 -! -!WR_ORA1/SO2=0.0 -! -!WR_ORA1/H2SO4=0.0 -! -!WR_ORA1/OH=0.0 -! -!WR_ORA1/ETHE=0.0 -! -!WR_ORA1/OLEL=0.0 -! -!WR_ORA1/OLEH=0.0 -! -!WR_ORA1/ALKL=0.0 -! -!WR_ORA1/ALKM=0.0 -! -!WR_ORA1/ALKH=0.0 -! -!WR_ORA1/AROH=0.0 -! -!WR_ORA1/AROL=0.0 -! -!WR_ORA1/AROO=0.0 -! -!WR_ORA1/ARAL=0.0 -! -!WR_ORA1/ARAC=0.0 -! -!WR_ORA1/PAH=0.0 -! -!WR_ORA1/HCHO=0.0 -! -!WR_ORA1/ALD2=0.0 -! -!WR_ORA1/KETL=0.0 -! -!WR_ORA1/KETH=0.0 -! -!WR_ORA1/MEOH=0.0 -! -!WR_ORA1/ETOH=0.0 -! -!WR_ORA1/ALCH=0.0 -! -!WR_ORA1/ISOP=0.0 -! -!WR_ORA1/BIOL=0.0 -! -!WR_ORA1/BIOH=0.0 -! -!WR_ORA1/MTBE=0.0 -! -!WR_ORA1/MVK=0.0 -! -!WR_ORA1/MCR=0.0 -! -!WR_ORA1/MGLY=0.0 -! -!WR_ORA1/GLY=0.0 -! -!WR_ORA1/ORA1=+KTR26 - PJAC(:,150,43)=+TPK%KTR26(:) -! -!WR_ORA1/ORA2=0.0 -! -!WR_ORA1/ACID=0.0 -! -!WR_ORA1/UR28=0.0 -! -!WR_ORA1/UR21=0.0 -! -!WR_ORA1/URG2=0.0 -! -!WR_ORA1/UR26=0.0 -! -!WR_ORA1/RPG2=0.0 -! -!WR_ORA1/RP18=0.0 -! -!WR_ORA1/RPG3=0.0 -! -!WR_ORA1/URG4=0.0 -! -!WR_ORA1/UR8=0.0 -! -!WR_ORA1/UR17=0.0 -! -!WR_ORA1/UR7=0.0 -! -!WR_ORA1/RPR3=0.0 -! -!WR_ORA1/URG6=0.0 -! -!WR_ORA1/UR22=0.0 -! -!WR_ORA1/URG7=0.0 -! -!WR_ORA1/RPR4=0.0 -! -!WR_ORA1/RPR7=0.0 -! -!WR_ORA1/RPG7=0.0 -! -!WR_ORA1/URG8=0.0 -! -!WR_ORA1/UR19=0.0 -! -!WR_ORA1/URG9=0.0 -! -!WR_ORA1/AP7=0.0 -! -!WR_ORA1/URG10=0.0 -! -!WR_ORA1/RPR1=0.0 -! -!WR_ORA1/RPR5=0.0 -! -!WR_ORA1/RPR8=0.0 -! -!WR_ORA1/RP10=0.0 -! -!WR_ORA1/RP11=0.0 -! -!WR_ORA1/RP16=0.0 -! -!WR_ORA1/RPRL=0.0 -! -!WR_ORA1/APAN=0.0 -! -!WR_ORA1/PAN1=0.0 -! -!WR_ORA1/PAN2=0.0 -! -!WR_ORA1/PAN3=0.0 -! -!WR_ORA1/PAN4=0.0 -! -!WR_ORA1/PAN6=0.0 -! -!WR_ORA1/PAN7=0.0 -! -!WR_ORA1/PAN8=0.0 -! -!WR_ORA1/PN10=0.0 -! -!WR_ORA1/RO2T=0.0 -! -!WR_ORA1/RO21=0.0 -! -!WR_ORA1/RO25=0.0 -! -!WR_ORA1/WC_O3=0.0 -! -!WR_ORA1/WC_H2O2=0.0 -! -!WR_ORA1/WC_NO=0.0 -! -!WR_ORA1/WC_NO2=0.0 -! -!WR_ORA1/WC_NO3=0.0 -! -!WR_ORA1/WC_N2O5=0.0 -! -!WR_ORA1/WC_HONO=0.0 -! -!WR_ORA1/WC_HNO3=0.0 -! -!WR_ORA1/WC_HNO4=0.0 -! -!WR_ORA1/WC_NH3=0.0 -! -!WR_ORA1/WC_OH=0.0 -! -!WR_ORA1/WC_HO2=0.0 -! -!WR_ORA1/WC_CO2=0.0 -! -!WR_ORA1/WC_SO2=0.0 -! -!WR_ORA1/WC_H2SO4=0.0 -! -!WR_ORA1/WC_RO21=0.0 -! -!WR_ORA1/WC_RO25=0.0 -! -!WR_ORA1/WC_MEOH=0.0 -! -!WR_ORA1/WC_ETOH=0.0 -! -!WR_ORA1/WC_ALCH=0.0 -! -!WR_ORA1/WC_HCHO=0.0 -! -!WR_ORA1/WC_ALD2=0.0 -! -!WR_ORA1/WC_GLY=0.0 -! -!WR_ORA1/WC_MGLY=0.0 -! -!WR_ORA1/WC_KETL=0.0 -! -!WR_ORA1/WC_ORA1=0.0 -! -!WR_ORA1/WC_ORA2=0.0 -! -!WR_ORA1/WC_ACID=0.0 -! -!WR_ORA1/WC_RP16=0.0 -! -!WR_ORA1/WC_UR21=0.0 -! -!WR_ORA1/WC_UR28=0.0 -! -!WR_ORA1/WC_ACID2=0.0 -! -!WR_ORA1/WC_ASO3=0.0 -! -!WR_ORA1/WC_ASO4=0.0 -! -!WR_ORA1/WC_ASO5=0.0 -! -!WR_ORA1/WC_AHSO5=0.0 -! -!WR_ORA1/WC_AHMS=0.0 -! -!WR_ORA1/WR_O3=0.0 -! -!WR_ORA1/WR_H2O2=0.0 -! -!WR_ORA1/WR_NO=0.0 -! -!WR_ORA1/WR_NO2=0.0 -! -!WR_ORA1/WR_NO3=0.0 -! -!WR_ORA1/WR_N2O5=0.0 -! -!WR_ORA1/WR_HONO=0.0 -! -!WR_ORA1/WR_HNO3=0.0 -! -!WR_ORA1/WR_HNO4=0.0 -! -!WR_ORA1/WR_NH3=0.0 -! -!WR_ORA1/WR_OH=+KR19*<WR_AHMS>+KR33*<WR_HCHO>-KR38*<WR_ORA1> - PJAC(:,150,135)=+TPK%KR19(:)*PCONC(:,161)+TPK%KR33(:)*PCONC(:,145)-TPK%KR38(:)& -&*PCONC(:,150) -! -!WR_ORA1/WR_HO2=0.0 -! -!WR_ORA1/WR_CO2=0.0 -! -!WR_ORA1/WR_SO2=0.0 -! -!WR_ORA1/WR_H2SO4=0.0 -! -!WR_ORA1/WR_RO21=0.0 -! -!WR_ORA1/WR_RO25=0.0 -! -!WR_ORA1/WR_MEOH=0.0 -! -!WR_ORA1/WR_ETOH=0.0 -! -!WR_ORA1/WR_ALCH=0.0 -! -!WR_ORA1/WR_HCHO=+KR33*<WR_OH> - PJAC(:,150,145)=+TPK%KR33(:)*PCONC(:,135) -! -!WR_ORA1/WR_ALD2=0.0 -! -!WR_ORA1/WR_GLY=0.0 -! -!WR_ORA1/WR_MGLY=0.0 -! -!WR_ORA1/WR_KETL=0.0 -! -!WR_ORA1/WR_ORA1=-KTR57-KR38*<WR_OH> - PJAC(:,150,150)=-TPK%KTR57(:)-TPK%KR38(:)*PCONC(:,135) -! -!WR_ORA1/WR_ORA2=0.0 -! -!WR_ORA1/WR_ACID=0.0 -! -!WR_ORA1/WR_RP16=0.0 -! -!WR_ORA1/WR_UR21=0.0 -! -!WR_ORA1/WR_UR28=0.0 -! -!WR_ORA1/WR_ACID2=0.0 -! -!WR_ORA1/WR_ASO3=0.0 -! -!WR_ORA1/WR_ASO4=0.0 -! -!WR_ORA1/WR_ASO5=0.0 -! -!WR_ORA1/WR_AHSO5=0.0 -! -!WR_ORA1/WR_AHMS=+KR19*<WR_OH> - PJAC(:,150,161)=+TPK%KR19(:)*PCONC(:,135) -! -RETURN -END SUBROUTINE SUBJ29 -! -SUBROUTINE SUBJ30 -! -!Indices 151 a 155 -! -! -!WR_ORA2/NO=0.0 -! -!WR_ORA2/NO2=0.0 -! -!WR_ORA2/O3=0.0 -! -!WR_ORA2/HONO=0.0 -! -!WR_ORA2/HNO3=0.0 -! -!WR_ORA2/HNO4=0.0 -! -!WR_ORA2/N2O5=0.0 -! -!WR_ORA2/NO3=0.0 -! -!WR_ORA2/NH3=0.0 -! -!WR_ORA2/HO2=0.0 -! -!WR_ORA2/CO=0.0 -! -!WR_ORA2/H2O2=0.0 -! -!WR_ORA2/SO2=0.0 -! -!WR_ORA2/H2SO4=0.0 -! -!WR_ORA2/OH=0.0 -! -!WR_ORA2/ETHE=0.0 -! -!WR_ORA2/OLEL=0.0 -! -!WR_ORA2/OLEH=0.0 -! -!WR_ORA2/ALKL=0.0 -! -!WR_ORA2/ALKM=0.0 -! -!WR_ORA2/ALKH=0.0 -! -!WR_ORA2/AROH=0.0 -! -!WR_ORA2/AROL=0.0 -! -!WR_ORA2/AROO=0.0 -! -!WR_ORA2/ARAL=0.0 -! -!WR_ORA2/ARAC=0.0 -! -!WR_ORA2/PAH=0.0 -! -!WR_ORA2/HCHO=0.0 -! -!WR_ORA2/ALD2=0.0 -! -!WR_ORA2/KETL=0.0 -! -!WR_ORA2/KETH=0.0 -! -!WR_ORA2/MEOH=0.0 -! -!WR_ORA2/ETOH=0.0 -! -!WR_ORA2/ALCH=0.0 -! -!WR_ORA2/ISOP=0.0 -! -!WR_ORA2/BIOL=0.0 -! -!WR_ORA2/BIOH=0.0 -! -!WR_ORA2/MTBE=0.0 -! -!WR_ORA2/MVK=0.0 -! -!WR_ORA2/MCR=0.0 -! -!WR_ORA2/MGLY=0.0 -! -!WR_ORA2/GLY=0.0 -! -!WR_ORA2/ORA1=0.0 -! -!WR_ORA2/ORA2=+KTR27 - PJAC(:,151,44)=+TPK%KTR27(:) -! -!WR_ORA2/ACID=0.0 -! -!WR_ORA2/UR28=0.0 -! -!WR_ORA2/UR21=0.0 -! -!WR_ORA2/URG2=0.0 -! -!WR_ORA2/UR26=0.0 -! -!WR_ORA2/RPG2=0.0 -! -!WR_ORA2/RP18=0.0 -! -!WR_ORA2/RPG3=0.0 -! -!WR_ORA2/URG4=0.0 -! -!WR_ORA2/UR8=0.0 -! -!WR_ORA2/UR17=0.0 -! -!WR_ORA2/UR7=0.0 -! -!WR_ORA2/RPR3=0.0 -! -!WR_ORA2/URG6=0.0 -! -!WR_ORA2/UR22=0.0 -! -!WR_ORA2/URG7=0.0 -! -!WR_ORA2/RPR4=0.0 -! -!WR_ORA2/RPR7=0.0 -! -!WR_ORA2/RPG7=0.0 -! -!WR_ORA2/URG8=0.0 -! -!WR_ORA2/UR19=0.0 -! -!WR_ORA2/URG9=0.0 -! -!WR_ORA2/AP7=0.0 -! -!WR_ORA2/URG10=0.0 -! -!WR_ORA2/RPR1=0.0 -! -!WR_ORA2/RPR5=0.0 -! -!WR_ORA2/RPR8=0.0 -! -!WR_ORA2/RP10=0.0 -! -!WR_ORA2/RP11=0.0 -! -!WR_ORA2/RP16=0.0 -! -!WR_ORA2/RPRL=0.0 -! -!WR_ORA2/APAN=0.0 -! -!WR_ORA2/PAN1=0.0 -! -!WR_ORA2/PAN2=0.0 -! -!WR_ORA2/PAN3=0.0 -! -!WR_ORA2/PAN4=0.0 -! -!WR_ORA2/PAN6=0.0 -! -!WR_ORA2/PAN7=0.0 -! -!WR_ORA2/PAN8=0.0 -! -!WR_ORA2/PN10=0.0 -! -!WR_ORA2/RO2T=0.0 -! -!WR_ORA2/RO21=0.0 -! -!WR_ORA2/RO25=0.0 -! -!WR_ORA2/WC_O3=0.0 -! -!WR_ORA2/WC_H2O2=0.0 -! -!WR_ORA2/WC_NO=0.0 -! -!WR_ORA2/WC_NO2=0.0 -! -!WR_ORA2/WC_NO3=0.0 -! -!WR_ORA2/WC_N2O5=0.0 -! -!WR_ORA2/WC_HONO=0.0 -! -!WR_ORA2/WC_HNO3=0.0 -! -!WR_ORA2/WC_HNO4=0.0 -! -!WR_ORA2/WC_NH3=0.0 -! -!WR_ORA2/WC_OH=0.0 -! -!WR_ORA2/WC_HO2=0.0 -! -!WR_ORA2/WC_CO2=0.0 -! -!WR_ORA2/WC_SO2=0.0 -! -!WR_ORA2/WC_H2SO4=0.0 -! -!WR_ORA2/WC_RO21=0.0 -! -!WR_ORA2/WC_RO25=0.0 -! -!WR_ORA2/WC_MEOH=0.0 -! -!WR_ORA2/WC_ETOH=0.0 -! -!WR_ORA2/WC_ALCH=0.0 -! -!WR_ORA2/WC_HCHO=0.0 -! -!WR_ORA2/WC_ALD2=0.0 -! -!WR_ORA2/WC_GLY=0.0 -! -!WR_ORA2/WC_MGLY=0.0 -! -!WR_ORA2/WC_KETL=0.0 -! -!WR_ORA2/WC_ORA1=0.0 -! -!WR_ORA2/WC_ORA2=0.0 -! -!WR_ORA2/WC_ACID=0.0 -! -!WR_ORA2/WC_RP16=0.0 -! -!WR_ORA2/WC_UR21=0.0 -! -!WR_ORA2/WC_UR28=0.0 -! -!WR_ORA2/WC_ACID2=0.0 -! -!WR_ORA2/WC_ASO3=0.0 -! -!WR_ORA2/WC_ASO4=0.0 -! -!WR_ORA2/WC_ASO5=0.0 -! -!WR_ORA2/WC_AHSO5=0.0 -! -!WR_ORA2/WC_AHMS=0.0 -! -!WR_ORA2/WR_O3=0.0 -! -!WR_ORA2/WR_H2O2=0.0 -! -!WR_ORA2/WR_NO=0.0 -! -!WR_ORA2/WR_NO2=0.0 -! -!WR_ORA2/WR_NO3=0.0 -! -!WR_ORA2/WR_N2O5=0.0 -! -!WR_ORA2/WR_HONO=0.0 -! -!WR_ORA2/WR_HNO3=0.0 -! -!WR_ORA2/WR_HNO4=0.0 -! -!WR_ORA2/WR_NH3=0.0 -! -!WR_ORA2/WR_OH=-KR39*<WR_ORA2> - PJAC(:,151,135)=-TPK%KR39(:)*PCONC(:,151) -! -!WR_ORA2/WR_HO2=0.0 -! -!WR_ORA2/WR_CO2=0.0 -! -!WR_ORA2/WR_SO2=0.0 -! -!WR_ORA2/WR_H2SO4=0.0 -! -!WR_ORA2/WR_RO21=0.0 -! -!WR_ORA2/WR_RO25=+KR29*<WR_RO25>+KR29*<WR_RO25> - PJAC(:,151,141)=+TPK%KR29(:)*PCONC(:,141)+TPK%KR29(:)*PCONC(:,141) -! -!WR_ORA2/WR_MEOH=0.0 -! -!WR_ORA2/WR_ETOH=0.0 -! -!WR_ORA2/WR_ALCH=0.0 -! -!WR_ORA2/WR_HCHO=0.0 -! -!WR_ORA2/WR_ALD2=0.0 -! -!WR_ORA2/WR_GLY=0.0 -! -!WR_ORA2/WR_MGLY=0.0 -! -!WR_ORA2/WR_KETL=0.0 -! -!WR_ORA2/WR_ORA1=0.0 -! -!WR_ORA2/WR_ORA2=-KTR58-KR39*<WR_OH> - PJAC(:,151,151)=-TPK%KTR58(:)-TPK%KR39(:)*PCONC(:,135) -! -!WR_ORA2/WR_ACID=0.0 -! -!WR_ORA2/WR_RP16=0.0 -! -!WR_ORA2/WR_UR21=0.0 -! -!WR_ORA2/WR_UR28=0.0 -! -!WR_ORA2/WR_ACID2=0.0 -! -!WR_ORA2/WR_ASO3=0.0 -! -!WR_ORA2/WR_ASO4=0.0 -! -!WR_ORA2/WR_ASO5=0.0 -! -!WR_ORA2/WR_AHSO5=0.0 -! -!WR_ORA2/WR_AHMS=0.0 -! -!WR_ACID/NO=0.0 -! -!WR_ACID/NO2=0.0 -! -!WR_ACID/O3=0.0 -! -!WR_ACID/HONO=0.0 -! -!WR_ACID/HNO3=0.0 -! -!WR_ACID/HNO4=0.0 -! -!WR_ACID/N2O5=0.0 -! -!WR_ACID/NO3=0.0 -! -!WR_ACID/NH3=0.0 -! -!WR_ACID/HO2=0.0 -! -!WR_ACID/CO=0.0 -! -!WR_ACID/H2O2=0.0 -! -!WR_ACID/SO2=0.0 -! -!WR_ACID/H2SO4=0.0 -! -!WR_ACID/OH=0.0 -! -!WR_ACID/ETHE=0.0 -! -!WR_ACID/OLEL=0.0 -! -!WR_ACID/OLEH=0.0 -! -!WR_ACID/ALKL=0.0 -! -!WR_ACID/ALKM=0.0 -! -!WR_ACID/ALKH=0.0 -! -!WR_ACID/AROH=0.0 -! -!WR_ACID/AROL=0.0 -! -!WR_ACID/AROO=0.0 -! -!WR_ACID/ARAL=0.0 -! -!WR_ACID/ARAC=0.0 -! -!WR_ACID/PAH=0.0 -! -!WR_ACID/HCHO=0.0 -! -!WR_ACID/ALD2=0.0 -! -!WR_ACID/KETL=0.0 -! -!WR_ACID/KETH=0.0 -! -!WR_ACID/MEOH=0.0 -! -!WR_ACID/ETOH=0.0 -! -!WR_ACID/ALCH=0.0 -! -!WR_ACID/ISOP=0.0 -! -!WR_ACID/BIOL=0.0 -! -!WR_ACID/BIOH=0.0 -! -!WR_ACID/MTBE=0.0 -! -!WR_ACID/MVK=0.0 -! -!WR_ACID/MCR=0.0 -! -!WR_ACID/MGLY=0.0 -! -!WR_ACID/GLY=0.0 -! -!WR_ACID/ORA1=0.0 -! -!WR_ACID/ORA2=0.0 -! -!WR_ACID/ACID=+KTR28 - PJAC(:,152,45)=+TPK%KTR28(:) -! -!WR_ACID/UR28=0.0 -! -!WR_ACID/UR21=0.0 -! -!WR_ACID/URG2=0.0 -! -!WR_ACID/UR26=0.0 -! -!WR_ACID/RPG2=0.0 -! -!WR_ACID/RP18=0.0 -! -!WR_ACID/RPG3=0.0 -! -!WR_ACID/URG4=0.0 -! -!WR_ACID/UR8=0.0 -! -!WR_ACID/UR17=0.0 -! -!WR_ACID/UR7=0.0 -! -!WR_ACID/RPR3=0.0 -! -!WR_ACID/URG6=0.0 -! -!WR_ACID/UR22=0.0 -! -!WR_ACID/URG7=0.0 -! -!WR_ACID/RPR4=0.0 -! -!WR_ACID/RPR7=0.0 -! -!WR_ACID/RPG7=0.0 -! -!WR_ACID/URG8=0.0 -! -!WR_ACID/UR19=0.0 -! -!WR_ACID/URG9=0.0 -! -!WR_ACID/AP7=0.0 -! -!WR_ACID/URG10=0.0 -! -!WR_ACID/RPR1=0.0 -! -!WR_ACID/RPR5=0.0 -! -!WR_ACID/RPR8=0.0 -! -!WR_ACID/RP10=0.0 -! -!WR_ACID/RP11=0.0 -! -!WR_ACID/RP16=0.0 -! -!WR_ACID/RPRL=0.0 -! -!WR_ACID/APAN=0.0 -! -!WR_ACID/PAN1=0.0 -! -!WR_ACID/PAN2=0.0 -! -!WR_ACID/PAN3=0.0 -! -!WR_ACID/PAN4=0.0 -! -!WR_ACID/PAN6=0.0 -! -!WR_ACID/PAN7=0.0 -! -!WR_ACID/PAN8=0.0 -! -!WR_ACID/PN10=0.0 -! -!WR_ACID/RO2T=0.0 -! -!WR_ACID/RO21=0.0 -! -!WR_ACID/RO25=0.0 -! -!WR_ACID/WC_O3=0.0 -! -!WR_ACID/WC_H2O2=0.0 -! -!WR_ACID/WC_NO=0.0 -! -!WR_ACID/WC_NO2=0.0 -! -!WR_ACID/WC_NO3=0.0 -! -!WR_ACID/WC_N2O5=0.0 -! -!WR_ACID/WC_HONO=0.0 -! -!WR_ACID/WC_HNO3=0.0 -! -!WR_ACID/WC_HNO4=0.0 -! -!WR_ACID/WC_NH3=0.0 -! -!WR_ACID/WC_OH=0.0 -! -!WR_ACID/WC_HO2=0.0 -! -!WR_ACID/WC_CO2=0.0 -! -!WR_ACID/WC_SO2=0.0 -! -!WR_ACID/WC_H2SO4=0.0 -! -!WR_ACID/WC_RO21=0.0 -! -!WR_ACID/WC_RO25=0.0 -! -!WR_ACID/WC_MEOH=0.0 -! -!WR_ACID/WC_ETOH=0.0 -! -!WR_ACID/WC_ALCH=0.0 -! -!WR_ACID/WC_HCHO=0.0 -! -!WR_ACID/WC_ALD2=0.0 -! -!WR_ACID/WC_GLY=0.0 -! -!WR_ACID/WC_MGLY=0.0 -! -!WR_ACID/WC_KETL=0.0 -! -!WR_ACID/WC_ORA1=0.0 -! -!WR_ACID/WC_ORA2=0.0 -! -!WR_ACID/WC_ACID=0.0 -! -!WR_ACID/WC_RP16=0.0 -! -!WR_ACID/WC_UR21=0.0 -! -!WR_ACID/WC_UR28=0.0 -! -!WR_ACID/WC_ACID2=0.0 -! -!WR_ACID/WC_ASO3=0.0 -! -!WR_ACID/WC_ASO4=0.0 -! -!WR_ACID/WC_ASO5=0.0 -! -!WR_ACID/WC_AHSO5=0.0 -! -!WR_ACID/WC_AHMS=0.0 -! -!WR_ACID/WR_O3=0.0 -! -!WR_ACID/WR_H2O2=0.0 -! -!WR_ACID/WR_NO=0.0 -! -!WR_ACID/WR_NO2=0.0 -! -!WR_ACID/WR_NO3=0.0 -! -!WR_ACID/WR_N2O5=0.0 -! -!WR_ACID/WR_HONO=0.0 -! -!WR_ACID/WR_HNO3=0.0 -! -!WR_ACID/WR_HNO4=0.0 -! -!WR_ACID/WR_NH3=0.0 -! -!WR_ACID/WR_OH=-KR40*<WR_ACID>-KR41*<WR_ACID> - PJAC(:,152,135)=-TPK%KR40(:)*PCONC(:,152)-TPK%KR41(:)*PCONC(:,152) -! -!WR_ACID/WR_HO2=0.0 -! -!WR_ACID/WR_CO2=0.0 -! -!WR_ACID/WR_SO2=0.0 -! -!WR_ACID/WR_H2SO4=0.0 -! -!WR_ACID/WR_RO21=0.0 -! -!WR_ACID/WR_RO25=0.0 -! -!WR_ACID/WR_MEOH=0.0 -! -!WR_ACID/WR_ETOH=0.0 -! -!WR_ACID/WR_ALCH=0.0 -! -!WR_ACID/WR_HCHO=0.0 -! -!WR_ACID/WR_ALD2=0.0 -! -!WR_ACID/WR_GLY=0.0 -! -!WR_ACID/WR_MGLY=0.0 -! -!WR_ACID/WR_KETL=0.0 -! -!WR_ACID/WR_ORA1=0.0 -! -!WR_ACID/WR_ORA2=0.0 -! -!WR_ACID/WR_ACID=-KTR59-KR40*<WR_OH>-KR41*<WR_OH> - PJAC(:,152,152)=-TPK%KTR59(:)-TPK%KR40(:)*PCONC(:,135)-TPK%KR41(:)*PCONC(:,135& -&) -! -!WR_ACID/WR_RP16=0.0 -! -!WR_ACID/WR_UR21=0.0 -! -!WR_ACID/WR_UR28=0.0 -! -!WR_ACID/WR_ACID2=0.0 -! -!WR_ACID/WR_ASO3=0.0 -! -!WR_ACID/WR_ASO4=0.0 -! -!WR_ACID/WR_ASO5=0.0 -! -!WR_ACID/WR_AHSO5=0.0 -! -!WR_ACID/WR_AHMS=0.0 -! -!WR_RP16/NO=0.0 -! -!WR_RP16/NO2=0.0 -! -!WR_RP16/O3=0.0 -! -!WR_RP16/HONO=0.0 -! -!WR_RP16/HNO3=0.0 -! -!WR_RP16/HNO4=0.0 -! -!WR_RP16/N2O5=0.0 -! -!WR_RP16/NO3=0.0 -! -!WR_RP16/NH3=0.0 -! -!WR_RP16/HO2=0.0 -! -!WR_RP16/CO=0.0 -! -!WR_RP16/H2O2=0.0 -! -!WR_RP16/SO2=0.0 -! -!WR_RP16/H2SO4=0.0 -! -!WR_RP16/OH=0.0 -! -!WR_RP16/ETHE=0.0 -! -!WR_RP16/OLEL=0.0 -! -!WR_RP16/OLEH=0.0 -! -!WR_RP16/ALKL=0.0 -! -!WR_RP16/ALKM=0.0 -! -!WR_RP16/ALKH=0.0 -! -!WR_RP16/AROH=0.0 -! -!WR_RP16/AROL=0.0 -! -!WR_RP16/AROO=0.0 -! -!WR_RP16/ARAL=0.0 -! -!WR_RP16/ARAC=0.0 -! -!WR_RP16/PAH=0.0 -! -!WR_RP16/HCHO=0.0 -! -!WR_RP16/ALD2=0.0 -! -!WR_RP16/KETL=0.0 -! -!WR_RP16/KETH=0.0 -! -!WR_RP16/MEOH=0.0 -! -!WR_RP16/ETOH=0.0 -! -!WR_RP16/ALCH=0.0 -! -!WR_RP16/ISOP=0.0 -! -!WR_RP16/BIOL=0.0 -! -!WR_RP16/BIOH=0.0 -! -!WR_RP16/MTBE=0.0 -! -!WR_RP16/MVK=0.0 -! -!WR_RP16/MCR=0.0 -! -!WR_RP16/MGLY=0.0 -! -!WR_RP16/GLY=0.0 -! -!WR_RP16/ORA1=0.0 -! -!WR_RP16/ORA2=0.0 -! -!WR_RP16/ACID=0.0 -! -!WR_RP16/UR28=0.0 -! -!WR_RP16/UR21=0.0 -! -!WR_RP16/URG2=0.0 -! -!WR_RP16/UR26=0.0 -! -!WR_RP16/RPG2=0.0 -! -!WR_RP16/RP18=0.0 -! -!WR_RP16/RPG3=0.0 -! -!WR_RP16/URG4=0.0 -! -!WR_RP16/UR8=0.0 -! -!WR_RP16/UR17=0.0 -! -!WR_RP16/UR7=0.0 -! -!WR_RP16/RPR3=0.0 -! -!WR_RP16/URG6=0.0 -! -!WR_RP16/UR22=0.0 -! -!WR_RP16/URG7=0.0 -! -!WR_RP16/RPR4=0.0 -! -!WR_RP16/RPR7=0.0 -! -!WR_RP16/RPG7=0.0 -! -!WR_RP16/URG8=0.0 -! -!WR_RP16/UR19=0.0 -! -!WR_RP16/URG9=0.0 -! -!WR_RP16/AP7=0.0 -! -!WR_RP16/URG10=0.0 -! -!WR_RP16/RPR1=0.0 -! -!WR_RP16/RPR5=0.0 -! -!WR_RP16/RPR8=0.0 -! -!WR_RP16/RP10=0.0 -! -!WR_RP16/RP11=0.0 -! -!WR_RP16/RP16=+KTR29 - PJAC(:,153,74)=+TPK%KTR29(:) -! -!WR_RP16/RPRL=0.0 -! -!WR_RP16/APAN=0.0 -! -!WR_RP16/PAN1=0.0 -! -!WR_RP16/PAN2=0.0 -! -!WR_RP16/PAN3=0.0 -! -!WR_RP16/PAN4=0.0 -! -!WR_RP16/PAN6=0.0 -! -!WR_RP16/PAN7=0.0 -! -!WR_RP16/PAN8=0.0 -! -!WR_RP16/PN10=0.0 -! -!WR_RP16/RO2T=0.0 -! -!WR_RP16/RO21=0.0 -! -!WR_RP16/RO25=0.0 -! -!WR_RP16/WC_O3=0.0 -! -!WR_RP16/WC_H2O2=0.0 -! -!WR_RP16/WC_NO=0.0 -! -!WR_RP16/WC_NO2=0.0 -! -!WR_RP16/WC_NO3=0.0 -! -!WR_RP16/WC_N2O5=0.0 -! -!WR_RP16/WC_HONO=0.0 -! -!WR_RP16/WC_HNO3=0.0 -! -!WR_RP16/WC_HNO4=0.0 -! -!WR_RP16/WC_NH3=0.0 -! -!WR_RP16/WC_OH=0.0 -! -!WR_RP16/WC_HO2=0.0 -! -!WR_RP16/WC_CO2=0.0 -! -!WR_RP16/WC_SO2=0.0 -! -!WR_RP16/WC_H2SO4=0.0 -! -!WR_RP16/WC_RO21=0.0 -! -!WR_RP16/WC_RO25=0.0 -! -!WR_RP16/WC_MEOH=0.0 -! -!WR_RP16/WC_ETOH=0.0 -! -!WR_RP16/WC_ALCH=0.0 -! -!WR_RP16/WC_HCHO=0.0 -! -!WR_RP16/WC_ALD2=0.0 -! -!WR_RP16/WC_GLY=0.0 -! -!WR_RP16/WC_MGLY=0.0 -! -!WR_RP16/WC_KETL=0.0 -! -!WR_RP16/WC_ORA1=0.0 -! -!WR_RP16/WC_ORA2=0.0 -! -!WR_RP16/WC_ACID=0.0 -! -!WR_RP16/WC_RP16=0.0 -! -!WR_RP16/WC_UR21=0.0 -! -!WR_RP16/WC_UR28=0.0 -! -!WR_RP16/WC_ACID2=0.0 -! -!WR_RP16/WC_ASO3=0.0 -! -!WR_RP16/WC_ASO4=0.0 -! -!WR_RP16/WC_ASO5=0.0 -! -!WR_RP16/WC_AHSO5=0.0 -! -!WR_RP16/WC_AHMS=0.0 -! -!WR_RP16/WR_O3=0.0 -! -!WR_RP16/WR_H2O2=0.0 -! -!WR_RP16/WR_NO=0.0 -! -!WR_RP16/WR_NO2=0.0 -! -!WR_RP16/WR_NO3=0.0 -! -!WR_RP16/WR_N2O5=0.0 -! -!WR_RP16/WR_HONO=0.0 -! -!WR_RP16/WR_HNO3=0.0 -! -!WR_RP16/WR_HNO4=0.0 -! -!WR_RP16/WR_NH3=0.0 -! -!WR_RP16/WR_OH=+KR35*<WR_GLY>+KR39*<WR_ORA2>-KR44*<WR_RP16>-KR45*<WR_RP16> - PJAC(:,153,135)=+TPK%KR35(:)*PCONC(:,147)+TPK%KR39(:)*PCONC(:,151)-TPK%KR44(:)& -&*PCONC(:,153)-TPK%KR45(:)*PCONC(:,153) -! -!WR_RP16/WR_HO2=0.0 -! -!WR_RP16/WR_CO2=0.0 -! -!WR_RP16/WR_SO2=0.0 -! -!WR_RP16/WR_H2SO4=0.0 -! -!WR_RP16/WR_RO21=0.0 -! -!WR_RP16/WR_RO25=0.0 -! -!WR_RP16/WR_MEOH=0.0 -! -!WR_RP16/WR_ETOH=0.0 -! -!WR_RP16/WR_ALCH=0.0 -! -!WR_RP16/WR_HCHO=0.0 -! -!WR_RP16/WR_ALD2=0.0 -! -!WR_RP16/WR_GLY=+KR35*<WR_OH> - PJAC(:,153,147)=+TPK%KR35(:)*PCONC(:,135) -! -!WR_RP16/WR_MGLY=0.0 -! -!WR_RP16/WR_KETL=0.0 -! -!WR_RP16/WR_ORA1=0.0 -! -!WR_RP16/WR_ORA2=+KR39*<WR_OH> - PJAC(:,153,151)=+TPK%KR39(:)*PCONC(:,135) -! -!WR_RP16/WR_ACID=0.0 -! -!WR_RP16/WR_RP16=-KTR60-KR44*<WR_OH>-KR45*<WR_OH> - PJAC(:,153,153)=-TPK%KTR60(:)-TPK%KR44(:)*PCONC(:,135)-TPK%KR45(:)*PCONC(:,135& -&) -! -!WR_RP16/WR_UR21=0.0 -! -!WR_RP16/WR_UR28=0.0 -! -!WR_RP16/WR_ACID2=0.0 -! -!WR_RP16/WR_ASO3=0.0 -! -!WR_RP16/WR_ASO4=0.0 -! -!WR_RP16/WR_ASO5=0.0 -! -!WR_RP16/WR_AHSO5=0.0 -! -!WR_RP16/WR_AHMS=0.0 -! -!WR_UR21/NO=0.0 -! -!WR_UR21/NO2=0.0 -! -!WR_UR21/O3=0.0 -! -!WR_UR21/HONO=0.0 -! -!WR_UR21/HNO3=0.0 -! -!WR_UR21/HNO4=0.0 -! -!WR_UR21/N2O5=0.0 -! -!WR_UR21/NO3=0.0 -! -!WR_UR21/NH3=0.0 -! -!WR_UR21/HO2=0.0 -! -!WR_UR21/CO=0.0 -! -!WR_UR21/H2O2=0.0 -! -!WR_UR21/SO2=0.0 -! -!WR_UR21/H2SO4=0.0 -! -!WR_UR21/OH=0.0 -! -!WR_UR21/ETHE=0.0 -! -!WR_UR21/OLEL=0.0 -! -!WR_UR21/OLEH=0.0 -! -!WR_UR21/ALKL=0.0 -! -!WR_UR21/ALKM=0.0 -! -!WR_UR21/ALKH=0.0 -! -!WR_UR21/AROH=0.0 -! -!WR_UR21/AROL=0.0 -! -!WR_UR21/AROO=0.0 -! -!WR_UR21/ARAL=0.0 -! -!WR_UR21/ARAC=0.0 -! -!WR_UR21/PAH=0.0 -! -!WR_UR21/HCHO=0.0 -! -!WR_UR21/ALD2=0.0 -! -!WR_UR21/KETL=0.0 -! -!WR_UR21/KETH=0.0 -! -!WR_UR21/MEOH=0.0 -! -!WR_UR21/ETOH=0.0 -! -!WR_UR21/ALCH=0.0 -! -!WR_UR21/ISOP=0.0 -! -!WR_UR21/BIOL=0.0 -! -!WR_UR21/BIOH=0.0 -! -!WR_UR21/MTBE=0.0 -! -!WR_UR21/MVK=0.0 -! -!WR_UR21/MCR=0.0 -! -!WR_UR21/MGLY=0.0 -! -!WR_UR21/GLY=0.0 -! -!WR_UR21/ORA1=0.0 -! -!WR_UR21/ORA2=0.0 -! -!WR_UR21/ACID=0.0 -! -!WR_UR21/UR28=0.0 -! -!WR_UR21/UR21=+KTR30 - PJAC(:,154,47)=+TPK%KTR30(:) -! -!WR_UR21/URG2=0.0 -! -!WR_UR21/UR26=0.0 -! -!WR_UR21/RPG2=0.0 -! -!WR_UR21/RP18=0.0 -! -!WR_UR21/RPG3=0.0 -! -!WR_UR21/URG4=0.0 -! -!WR_UR21/UR8=0.0 -! -!WR_UR21/UR17=0.0 -! -!WR_UR21/UR7=0.0 -! -!WR_UR21/RPR3=0.0 -! -!WR_UR21/URG6=0.0 -! -!WR_UR21/UR22=0.0 -! -!WR_UR21/URG7=0.0 -! -!WR_UR21/RPR4=0.0 -! -!WR_UR21/RPR7=0.0 -! -!WR_UR21/RPG7=0.0 -! -!WR_UR21/URG8=0.0 -! -!WR_UR21/UR19=0.0 -! -!WR_UR21/URG9=0.0 -! -!WR_UR21/AP7=0.0 -! -!WR_UR21/URG10=0.0 -! -!WR_UR21/RPR1=0.0 -! -!WR_UR21/RPR5=0.0 -! -!WR_UR21/RPR8=0.0 -! -!WR_UR21/RP10=0.0 -! -!WR_UR21/RP11=0.0 -! -!WR_UR21/RP16=0.0 -! -!WR_UR21/RPRL=0.0 -! -!WR_UR21/APAN=0.0 -! -!WR_UR21/PAN1=0.0 -! -!WR_UR21/PAN2=0.0 -! -!WR_UR21/PAN3=0.0 -! -!WR_UR21/PAN4=0.0 -! -!WR_UR21/PAN6=0.0 -! -!WR_UR21/PAN7=0.0 -! -!WR_UR21/PAN8=0.0 -! -!WR_UR21/PN10=0.0 -! -!WR_UR21/RO2T=0.0 -! -!WR_UR21/RO21=0.0 -! -!WR_UR21/RO25=0.0 -! -!WR_UR21/WC_O3=0.0 -! -!WR_UR21/WC_H2O2=0.0 -! -!WR_UR21/WC_NO=0.0 -! -!WR_UR21/WC_NO2=0.0 -! -!WR_UR21/WC_NO3=0.0 -! -!WR_UR21/WC_N2O5=0.0 -! -!WR_UR21/WC_HONO=0.0 -! -!WR_UR21/WC_HNO3=0.0 -! -!WR_UR21/WC_HNO4=0.0 -! -!WR_UR21/WC_NH3=0.0 -! -!WR_UR21/WC_OH=0.0 -! -!WR_UR21/WC_HO2=0.0 -! -!WR_UR21/WC_CO2=0.0 -! -!WR_UR21/WC_SO2=0.0 -! -!WR_UR21/WC_H2SO4=0.0 -! -!WR_UR21/WC_RO21=0.0 -! -!WR_UR21/WC_RO25=0.0 -! -!WR_UR21/WC_MEOH=0.0 -! -!WR_UR21/WC_ETOH=0.0 -! -!WR_UR21/WC_ALCH=0.0 -! -!WR_UR21/WC_HCHO=0.0 -! -!WR_UR21/WC_ALD2=0.0 -! -!WR_UR21/WC_GLY=0.0 -! -!WR_UR21/WC_MGLY=0.0 -! -!WR_UR21/WC_KETL=0.0 -! -!WR_UR21/WC_ORA1=0.0 -! -!WR_UR21/WC_ORA2=0.0 -! -!WR_UR21/WC_ACID=0.0 -! -!WR_UR21/WC_RP16=0.0 -! -!WR_UR21/WC_UR21=0.0 -! -!WR_UR21/WC_UR28=0.0 -! -!WR_UR21/WC_ACID2=0.0 -! -!WR_UR21/WC_ASO3=0.0 -! -!WR_UR21/WC_ASO4=0.0 -! -!WR_UR21/WC_ASO5=0.0 -! -!WR_UR21/WC_AHSO5=0.0 -! -!WR_UR21/WC_AHMS=0.0 -! -!WR_UR21/WR_O3=0.0 -! -!WR_UR21/WR_H2O2=0.0 -! -!WR_UR21/WR_NO=0.0 -! -!WR_UR21/WR_NO2=0.0 -! -!WR_UR21/WR_NO3=0.0 -! -!WR_UR21/WR_N2O5=0.0 -! -!WR_UR21/WR_HONO=0.0 -! -!WR_UR21/WR_HNO3=0.0 -! -!WR_UR21/WR_HNO4=0.0 -! -!WR_UR21/WR_NH3=0.0 -! -!WR_UR21/WR_OH=+KR36*<WR_MGLY>+KR37*<WR_KETL>+0.56*KR41*<WR_ACID>-KR43*<WR_UR21 -!> - PJAC(:,154,135)=+TPK%KR36(:)*PCONC(:,148)+TPK%KR37(:)*PCONC(:,149)+0.56*TPK%KR& -&41(:)*PCONC(:,152)-TPK%KR43(:)*PCONC(:,154) -! -!WR_UR21/WR_HO2=0.0 -! -!WR_UR21/WR_CO2=0.0 -! -!WR_UR21/WR_SO2=0.0 -! -!WR_UR21/WR_H2SO4=0.0 -! -!WR_UR21/WR_RO21=0.0 -! -!WR_UR21/WR_RO25=0.0 -! -!WR_UR21/WR_MEOH=0.0 -! -!WR_UR21/WR_ETOH=0.0 -! -!WR_UR21/WR_ALCH=0.0 -! -!WR_UR21/WR_HCHO=0.0 -! -!WR_UR21/WR_ALD2=0.0 -! -!WR_UR21/WR_GLY=0.0 -! -!WR_UR21/WR_MGLY=+KR36*<WR_OH> - PJAC(:,154,148)=+TPK%KR36(:)*PCONC(:,135) -! -!WR_UR21/WR_KETL=+KR37*<WR_OH> - PJAC(:,154,149)=+TPK%KR37(:)*PCONC(:,135) -! -!WR_UR21/WR_ORA1=0.0 -! -!WR_UR21/WR_ORA2=0.0 -! -!WR_UR21/WR_ACID=+0.56*KR41*<WR_OH> - PJAC(:,154,152)=+0.56*TPK%KR41(:)*PCONC(:,135) -! -!WR_UR21/WR_RP16=0.0 -! -!WR_UR21/WR_UR21=-KTR61-KR43*<WR_OH> - PJAC(:,154,154)=-TPK%KTR61(:)-TPK%KR43(:)*PCONC(:,135) -! -!WR_UR21/WR_UR28=0.0 -! -!WR_UR21/WR_ACID2=0.0 -! -!WR_UR21/WR_ASO3=0.0 -! -!WR_UR21/WR_ASO4=0.0 -! -!WR_UR21/WR_ASO5=0.0 -! -!WR_UR21/WR_AHSO5=0.0 -! -!WR_UR21/WR_AHMS=0.0 -! -!WR_UR28/NO=0.0 -! -!WR_UR28/NO2=0.0 -! -!WR_UR28/O3=0.0 -! -!WR_UR28/HONO=0.0 -! -!WR_UR28/HNO3=0.0 -! -!WR_UR28/HNO4=0.0 -! -!WR_UR28/N2O5=0.0 -! -!WR_UR28/NO3=0.0 -! -!WR_UR28/NH3=0.0 -! -!WR_UR28/HO2=0.0 -! -!WR_UR28/CO=0.0 -! -!WR_UR28/H2O2=0.0 -! -!WR_UR28/SO2=0.0 -! -!WR_UR28/H2SO4=0.0 -! -!WR_UR28/OH=0.0 -! -!WR_UR28/ETHE=0.0 -! -!WR_UR28/OLEL=0.0 -! -!WR_UR28/OLEH=0.0 -! -!WR_UR28/ALKL=0.0 -! -!WR_UR28/ALKM=0.0 -! -!WR_UR28/ALKH=0.0 -! -!WR_UR28/AROH=0.0 -! -!WR_UR28/AROL=0.0 -! -!WR_UR28/AROO=0.0 -! -!WR_UR28/ARAL=0.0 -! -!WR_UR28/ARAC=0.0 -! -!WR_UR28/PAH=0.0 -! -!WR_UR28/HCHO=0.0 -! -!WR_UR28/ALD2=0.0 -! -!WR_UR28/KETL=0.0 -! -!WR_UR28/KETH=0.0 -! -!WR_UR28/MEOH=0.0 -! -!WR_UR28/ETOH=0.0 -! -!WR_UR28/ALCH=0.0 -! -!WR_UR28/ISOP=0.0 -! -!WR_UR28/BIOL=0.0 -! -!WR_UR28/BIOH=0.0 -! -!WR_UR28/MTBE=0.0 -! -!WR_UR28/MVK=0.0 -! -!WR_UR28/MCR=0.0 -! -!WR_UR28/MGLY=0.0 -! -!WR_UR28/GLY=0.0 -! -!WR_UR28/ORA1=0.0 -! -!WR_UR28/ORA2=0.0 -! -!WR_UR28/ACID=0.0 -! -!WR_UR28/UR28=+KTR31 - PJAC(:,155,46)=+TPK%KTR31(:) -! -!WR_UR28/UR21=0.0 -! -!WR_UR28/URG2=0.0 -! -!WR_UR28/UR26=0.0 -! -!WR_UR28/RPG2=0.0 -! -!WR_UR28/RP18=0.0 -! -!WR_UR28/RPG3=0.0 -! -!WR_UR28/URG4=0.0 -! -!WR_UR28/UR8=0.0 -! -!WR_UR28/UR17=0.0 -! -!WR_UR28/UR7=0.0 -! -!WR_UR28/RPR3=0.0 -! -!WR_UR28/URG6=0.0 -! -!WR_UR28/UR22=0.0 -! -!WR_UR28/URG7=0.0 -! -!WR_UR28/RPR4=0.0 -! -!WR_UR28/RPR7=0.0 -! -!WR_UR28/RPG7=0.0 -! -!WR_UR28/URG8=0.0 -! -!WR_UR28/UR19=0.0 -! -!WR_UR28/URG9=0.0 -! -!WR_UR28/AP7=0.0 -! -!WR_UR28/URG10=0.0 -! -!WR_UR28/RPR1=0.0 -! -!WR_UR28/RPR5=0.0 -! -!WR_UR28/RPR8=0.0 -! -!WR_UR28/RP10=0.0 -! -!WR_UR28/RP11=0.0 -! -!WR_UR28/RP16=0.0 -! -!WR_UR28/RPRL=0.0 -! -!WR_UR28/APAN=0.0 -! -!WR_UR28/PAN1=0.0 -! -!WR_UR28/PAN2=0.0 -! -!WR_UR28/PAN3=0.0 -! -!WR_UR28/PAN4=0.0 -! -!WR_UR28/PAN6=0.0 -! -!WR_UR28/PAN7=0.0 -! -!WR_UR28/PAN8=0.0 -! -!WR_UR28/PN10=0.0 -! -!WR_UR28/RO2T=0.0 -! -!WR_UR28/RO21=0.0 -! -!WR_UR28/RO25=0.0 -! -!WR_UR28/WC_O3=0.0 -! -!WR_UR28/WC_H2O2=0.0 -! -!WR_UR28/WC_NO=0.0 -! -!WR_UR28/WC_NO2=0.0 -! -!WR_UR28/WC_NO3=0.0 -! -!WR_UR28/WC_N2O5=0.0 -! -!WR_UR28/WC_HONO=0.0 -! -!WR_UR28/WC_HNO3=0.0 -! -!WR_UR28/WC_HNO4=0.0 -! -!WR_UR28/WC_NH3=0.0 -! -!WR_UR28/WC_OH=0.0 -! -!WR_UR28/WC_HO2=0.0 -! -!WR_UR28/WC_CO2=0.0 -! -!WR_UR28/WC_SO2=0.0 -! -!WR_UR28/WC_H2SO4=0.0 -! -!WR_UR28/WC_RO21=0.0 -! -!WR_UR28/WC_RO25=0.0 -! -!WR_UR28/WC_MEOH=0.0 -! -!WR_UR28/WC_ETOH=0.0 -! -!WR_UR28/WC_ALCH=0.0 -! -!WR_UR28/WC_HCHO=0.0 -! -!WR_UR28/WC_ALD2=0.0 -! -!WR_UR28/WC_GLY=0.0 -! -!WR_UR28/WC_MGLY=0.0 -! -!WR_UR28/WC_KETL=0.0 -! -!WR_UR28/WC_ORA1=0.0 -! -!WR_UR28/WC_ORA2=0.0 -! -!WR_UR28/WC_ACID=0.0 -! -!WR_UR28/WC_RP16=0.0 -! -!WR_UR28/WC_UR21=0.0 -! -!WR_UR28/WC_UR28=0.0 -! -!WR_UR28/WC_ACID2=0.0 -! -!WR_UR28/WC_ASO3=0.0 -! -!WR_UR28/WC_ASO4=0.0 -! -!WR_UR28/WC_ASO5=0.0 -! -!WR_UR28/WC_AHSO5=0.0 -! -!WR_UR28/WC_AHMS=0.0 -! -!WR_UR28/WR_O3=0.0 -! -!WR_UR28/WR_H2O2=0.0 -! -!WR_UR28/WR_NO=0.0 -! -!WR_UR28/WR_NO2=0.0 -! -!WR_UR28/WR_NO3=0.0 -! -!WR_UR28/WR_N2O5=0.0 -! -!WR_UR28/WR_HONO=0.0 -! -!WR_UR28/WR_HNO3=0.0 -! -!WR_UR28/WR_HNO4=0.0 -! -!WR_UR28/WR_NH3=0.0 -! -!WR_UR28/WR_OH=-KR42*<WR_UR28>+KR44*<WR_RP16> - PJAC(:,155,135)=-TPK%KR42(:)*PCONC(:,155)+TPK%KR44(:)*PCONC(:,153) -! -!WR_UR28/WR_HO2=0.0 -! -!WR_UR28/WR_CO2=0.0 -! -!WR_UR28/WR_SO2=0.0 -! -!WR_UR28/WR_H2SO4=0.0 -! -!WR_UR28/WR_RO21=0.0 -! -!WR_UR28/WR_RO25=0.0 -! -!WR_UR28/WR_MEOH=0.0 -! -!WR_UR28/WR_ETOH=0.0 -! -!WR_UR28/WR_ALCH=0.0 -! -!WR_UR28/WR_HCHO=0.0 -! -!WR_UR28/WR_ALD2=0.0 -! -!WR_UR28/WR_GLY=0.0 -! -!WR_UR28/WR_MGLY=0.0 -! -!WR_UR28/WR_KETL=0.0 -! -!WR_UR28/WR_ORA1=0.0 -! -!WR_UR28/WR_ORA2=0.0 -! -!WR_UR28/WR_ACID=0.0 -! -!WR_UR28/WR_RP16=+KR44*<WR_OH> - PJAC(:,155,153)=+TPK%KR44(:)*PCONC(:,135) -! -!WR_UR28/WR_UR21=0.0 -! -!WR_UR28/WR_UR28=-KTR62-KR42*<WR_OH> - PJAC(:,155,155)=-TPK%KTR62(:)-TPK%KR42(:)*PCONC(:,135) -! -!WR_UR28/WR_ACID2=0.0 -! -!WR_UR28/WR_ASO3=0.0 -! -!WR_UR28/WR_ASO4=0.0 -! -!WR_UR28/WR_ASO5=0.0 -! -!WR_UR28/WR_AHSO5=0.0 -! -!WR_UR28/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ30 -! -SUBROUTINE SUBJ31 -! -!Indices 156 a 160 -! -! -!WR_ACID2/NO=0.0 -! -!WR_ACID2/NO2=0.0 -! -!WR_ACID2/O3=0.0 -! -!WR_ACID2/HONO=0.0 -! -!WR_ACID2/HNO3=0.0 -! -!WR_ACID2/HNO4=0.0 -! -!WR_ACID2/N2O5=0.0 -! -!WR_ACID2/NO3=0.0 -! -!WR_ACID2/NH3=0.0 -! -!WR_ACID2/HO2=0.0 -! -!WR_ACID2/CO=0.0 -! -!WR_ACID2/H2O2=0.0 -! -!WR_ACID2/SO2=0.0 -! -!WR_ACID2/H2SO4=0.0 -! -!WR_ACID2/OH=0.0 -! -!WR_ACID2/ETHE=0.0 -! -!WR_ACID2/OLEL=0.0 -! -!WR_ACID2/OLEH=0.0 -! -!WR_ACID2/ALKL=0.0 -! -!WR_ACID2/ALKM=0.0 -! -!WR_ACID2/ALKH=0.0 -! -!WR_ACID2/AROH=0.0 -! -!WR_ACID2/AROL=0.0 -! -!WR_ACID2/AROO=0.0 -! -!WR_ACID2/ARAL=0.0 -! -!WR_ACID2/ARAC=0.0 -! -!WR_ACID2/PAH=0.0 -! -!WR_ACID2/HCHO=0.0 -! -!WR_ACID2/ALD2=0.0 -! -!WR_ACID2/KETL=0.0 -! -!WR_ACID2/KETH=0.0 -! -!WR_ACID2/MEOH=0.0 -! -!WR_ACID2/ETOH=0.0 -! -!WR_ACID2/ALCH=0.0 -! -!WR_ACID2/ISOP=0.0 -! -!WR_ACID2/BIOL=0.0 -! -!WR_ACID2/BIOH=0.0 -! -!WR_ACID2/MTBE=0.0 -! -!WR_ACID2/MVK=0.0 -! -!WR_ACID2/MCR=0.0 -! -!WR_ACID2/MGLY=0.0 -! -!WR_ACID2/GLY=0.0 -! -!WR_ACID2/ORA1=0.0 -! -!WR_ACID2/ORA2=0.0 -! -!WR_ACID2/ACID=0.0 -! -!WR_ACID2/UR28=0.0 -! -!WR_ACID2/UR21=0.0 -! -!WR_ACID2/URG2=0.0 -! -!WR_ACID2/UR26=0.0 -! -!WR_ACID2/RPG2=0.0 -! -!WR_ACID2/RP18=0.0 -! -!WR_ACID2/RPG3=0.0 -! -!WR_ACID2/URG4=0.0 -! -!WR_ACID2/UR8=0.0 -! -!WR_ACID2/UR17=0.0 -! -!WR_ACID2/UR7=0.0 -! -!WR_ACID2/RPR3=0.0 -! -!WR_ACID2/URG6=0.0 -! -!WR_ACID2/UR22=0.0 -! -!WR_ACID2/URG7=0.0 -! -!WR_ACID2/RPR4=0.0 -! -!WR_ACID2/RPR7=0.0 -! -!WR_ACID2/RPG7=0.0 -! -!WR_ACID2/URG8=0.0 -! -!WR_ACID2/UR19=0.0 -! -!WR_ACID2/URG9=0.0 -! -!WR_ACID2/AP7=0.0 -! -!WR_ACID2/URG10=0.0 -! -!WR_ACID2/RPR1=0.0 -! -!WR_ACID2/RPR5=0.0 -! -!WR_ACID2/RPR8=0.0 -! -!WR_ACID2/RP10=0.0 -! -!WR_ACID2/RP11=0.0 -! -!WR_ACID2/RP16=0.0 -! -!WR_ACID2/RPRL=0.0 -! -!WR_ACID2/APAN=0.0 -! -!WR_ACID2/PAN1=0.0 -! -!WR_ACID2/PAN2=0.0 -! -!WR_ACID2/PAN3=0.0 -! -!WR_ACID2/PAN4=0.0 -! -!WR_ACID2/PAN6=0.0 -! -!WR_ACID2/PAN7=0.0 -! -!WR_ACID2/PAN8=0.0 -! -!WR_ACID2/PN10=0.0 -! -!WR_ACID2/RO2T=0.0 -! -!WR_ACID2/RO21=0.0 -! -!WR_ACID2/RO25=0.0 -! -!WR_ACID2/WC_O3=0.0 -! -!WR_ACID2/WC_H2O2=0.0 -! -!WR_ACID2/WC_NO=0.0 -! -!WR_ACID2/WC_NO2=0.0 -! -!WR_ACID2/WC_NO3=0.0 -! -!WR_ACID2/WC_N2O5=0.0 -! -!WR_ACID2/WC_HONO=0.0 -! -!WR_ACID2/WC_HNO3=0.0 -! -!WR_ACID2/WC_HNO4=0.0 -! -!WR_ACID2/WC_NH3=0.0 -! -!WR_ACID2/WC_OH=0.0 -! -!WR_ACID2/WC_HO2=0.0 -! -!WR_ACID2/WC_CO2=0.0 -! -!WR_ACID2/WC_SO2=0.0 -! -!WR_ACID2/WC_H2SO4=0.0 -! -!WR_ACID2/WC_RO21=0.0 -! -!WR_ACID2/WC_RO25=0.0 -! -!WR_ACID2/WC_MEOH=0.0 -! -!WR_ACID2/WC_ETOH=0.0 -! -!WR_ACID2/WC_ALCH=0.0 -! -!WR_ACID2/WC_HCHO=0.0 -! -!WR_ACID2/WC_ALD2=0.0 -! -!WR_ACID2/WC_GLY=0.0 -! -!WR_ACID2/WC_MGLY=0.0 -! -!WR_ACID2/WC_KETL=0.0 -! -!WR_ACID2/WC_ORA1=0.0 -! -!WR_ACID2/WC_ORA2=0.0 -! -!WR_ACID2/WC_ACID=0.0 -! -!WR_ACID2/WC_RP16=0.0 -! -!WR_ACID2/WC_UR21=0.0 -! -!WR_ACID2/WC_UR28=0.0 -! -!WR_ACID2/WC_ACID2=0.0 -! -!WR_ACID2/WC_ASO3=0.0 -! -!WR_ACID2/WC_ASO4=0.0 -! -!WR_ACID2/WC_ASO5=0.0 -! -!WR_ACID2/WC_AHSO5=0.0 -! -!WR_ACID2/WC_AHMS=0.0 -! -!WR_ACID2/WR_O3=0.0 -! -!WR_ACID2/WR_H2O2=0.0 -! -!WR_ACID2/WR_NO=0.0 -! -!WR_ACID2/WR_NO2=0.0 -! -!WR_ACID2/WR_NO3=0.0 -! -!WR_ACID2/WR_N2O5=0.0 -! -!WR_ACID2/WR_HONO=0.0 -! -!WR_ACID2/WR_HNO3=0.0 -! -!WR_ACID2/WR_HNO4=0.0 -! -!WR_ACID2/WR_NH3=0.0 -! -!WR_ACID2/WR_OH=+0.15*KR41*<WR_ACID>+0.56*KR43*<WR_UR21>-KR46*<WR_ACID2> - PJAC(:,156,135)=+0.15*TPK%KR41(:)*PCONC(:,152)+0.56*TPK%KR43(:)*PCONC(:,154)-T& -&PK%KR46(:)*PCONC(:,156) -! -!WR_ACID2/WR_HO2=0.0 -! -!WR_ACID2/WR_CO2=0.0 -! -!WR_ACID2/WR_SO2=0.0 -! -!WR_ACID2/WR_H2SO4=0.0 -! -!WR_ACID2/WR_RO21=0.0 -! -!WR_ACID2/WR_RO25=0.0 -! -!WR_ACID2/WR_MEOH=0.0 -! -!WR_ACID2/WR_ETOH=0.0 -! -!WR_ACID2/WR_ALCH=0.0 -! -!WR_ACID2/WR_HCHO=0.0 -! -!WR_ACID2/WR_ALD2=0.0 -! -!WR_ACID2/WR_GLY=0.0 -! -!WR_ACID2/WR_MGLY=0.0 -! -!WR_ACID2/WR_KETL=0.0 -! -!WR_ACID2/WR_ORA1=0.0 -! -!WR_ACID2/WR_ORA2=0.0 -! -!WR_ACID2/WR_ACID=+0.15*KR41*<WR_OH> - PJAC(:,156,152)=+0.15*TPK%KR41(:)*PCONC(:,135) -! -!WR_ACID2/WR_RP16=0.0 -! -!WR_ACID2/WR_UR21=+0.56*KR43*<WR_OH> - PJAC(:,156,154)=+0.56*TPK%KR43(:)*PCONC(:,135) -! -!WR_ACID2/WR_UR28=0.0 -! -!WR_ACID2/WR_ACID2=-KR46*<WR_OH> - PJAC(:,156,156)=-TPK%KR46(:)*PCONC(:,135) -! -!WR_ACID2/WR_ASO3=0.0 -! -!WR_ACID2/WR_ASO4=0.0 -! -!WR_ACID2/WR_ASO5=0.0 -! -!WR_ACID2/WR_AHSO5=0.0 -! -!WR_ACID2/WR_AHMS=0.0 -! -!WR_ASO3/NO=0.0 -! -!WR_ASO3/NO2=0.0 -! -!WR_ASO3/O3=0.0 -! -!WR_ASO3/HONO=0.0 -! -!WR_ASO3/HNO3=0.0 -! -!WR_ASO3/HNO4=0.0 -! -!WR_ASO3/N2O5=0.0 -! -!WR_ASO3/NO3=0.0 -! -!WR_ASO3/NH3=0.0 -! -!WR_ASO3/HO2=0.0 -! -!WR_ASO3/CO=0.0 -! -!WR_ASO3/H2O2=0.0 -! -!WR_ASO3/SO2=0.0 -! -!WR_ASO3/H2SO4=0.0 -! -!WR_ASO3/OH=0.0 -! -!WR_ASO3/ETHE=0.0 -! -!WR_ASO3/OLEL=0.0 -! -!WR_ASO3/OLEH=0.0 -! -!WR_ASO3/ALKL=0.0 -! -!WR_ASO3/ALKM=0.0 -! -!WR_ASO3/ALKH=0.0 -! -!WR_ASO3/AROH=0.0 -! -!WR_ASO3/AROL=0.0 -! -!WR_ASO3/AROO=0.0 -! -!WR_ASO3/ARAL=0.0 -! -!WR_ASO3/ARAC=0.0 -! -!WR_ASO3/PAH=0.0 -! -!WR_ASO3/HCHO=0.0 -! -!WR_ASO3/ALD2=0.0 -! -!WR_ASO3/KETL=0.0 -! -!WR_ASO3/KETH=0.0 -! -!WR_ASO3/MEOH=0.0 -! -!WR_ASO3/ETOH=0.0 -! -!WR_ASO3/ALCH=0.0 -! -!WR_ASO3/ISOP=0.0 -! -!WR_ASO3/BIOL=0.0 -! -!WR_ASO3/BIOH=0.0 -! -!WR_ASO3/MTBE=0.0 -! -!WR_ASO3/MVK=0.0 -! -!WR_ASO3/MCR=0.0 -! -!WR_ASO3/MGLY=0.0 -! -!WR_ASO3/GLY=0.0 -! -!WR_ASO3/ORA1=0.0 -! -!WR_ASO3/ORA2=0.0 -! -!WR_ASO3/ACID=0.0 -! -!WR_ASO3/UR28=0.0 -! -!WR_ASO3/UR21=0.0 -! -!WR_ASO3/URG2=0.0 -! -!WR_ASO3/UR26=0.0 -! -!WR_ASO3/RPG2=0.0 -! -!WR_ASO3/RP18=0.0 -! -!WR_ASO3/RPG3=0.0 -! -!WR_ASO3/URG4=0.0 -! -!WR_ASO3/UR8=0.0 -! -!WR_ASO3/UR17=0.0 -! -!WR_ASO3/UR7=0.0 -! -!WR_ASO3/RPR3=0.0 -! -!WR_ASO3/URG6=0.0 -! -!WR_ASO3/UR22=0.0 -! -!WR_ASO3/URG7=0.0 -! -!WR_ASO3/RPR4=0.0 -! -!WR_ASO3/RPR7=0.0 -! -!WR_ASO3/RPG7=0.0 -! -!WR_ASO3/URG8=0.0 -! -!WR_ASO3/UR19=0.0 -! -!WR_ASO3/URG9=0.0 -! -!WR_ASO3/AP7=0.0 -! -!WR_ASO3/URG10=0.0 -! -!WR_ASO3/RPR1=0.0 -! -!WR_ASO3/RPR5=0.0 -! -!WR_ASO3/RPR8=0.0 -! -!WR_ASO3/RP10=0.0 -! -!WR_ASO3/RP11=0.0 -! -!WR_ASO3/RP16=0.0 -! -!WR_ASO3/RPRL=0.0 -! -!WR_ASO3/APAN=0.0 -! -!WR_ASO3/PAN1=0.0 -! -!WR_ASO3/PAN2=0.0 -! -!WR_ASO3/PAN3=0.0 -! -!WR_ASO3/PAN4=0.0 -! -!WR_ASO3/PAN6=0.0 -! -!WR_ASO3/PAN7=0.0 -! -!WR_ASO3/PAN8=0.0 -! -!WR_ASO3/PN10=0.0 -! -!WR_ASO3/RO2T=0.0 -! -!WR_ASO3/RO21=0.0 -! -!WR_ASO3/RO25=0.0 -! -!WR_ASO3/WC_O3=0.0 -! -!WR_ASO3/WC_H2O2=0.0 -! -!WR_ASO3/WC_NO=0.0 -! -!WR_ASO3/WC_NO2=0.0 -! -!WR_ASO3/WC_NO3=0.0 -! -!WR_ASO3/WC_N2O5=0.0 -! -!WR_ASO3/WC_HONO=0.0 -! -!WR_ASO3/WC_HNO3=0.0 -! -!WR_ASO3/WC_HNO4=0.0 -! -!WR_ASO3/WC_NH3=0.0 -! -!WR_ASO3/WC_OH=0.0 -! -!WR_ASO3/WC_HO2=0.0 -! -!WR_ASO3/WC_CO2=0.0 -! -!WR_ASO3/WC_SO2=0.0 -! -!WR_ASO3/WC_H2SO4=0.0 -! -!WR_ASO3/WC_RO21=0.0 -! -!WR_ASO3/WC_RO25=0.0 -! -!WR_ASO3/WC_MEOH=0.0 -! -!WR_ASO3/WC_ETOH=0.0 -! -!WR_ASO3/WC_ALCH=0.0 -! -!WR_ASO3/WC_HCHO=0.0 -! -!WR_ASO3/WC_ALD2=0.0 -! -!WR_ASO3/WC_GLY=0.0 -! -!WR_ASO3/WC_MGLY=0.0 -! -!WR_ASO3/WC_KETL=0.0 -! -!WR_ASO3/WC_ORA1=0.0 -! -!WR_ASO3/WC_ORA2=0.0 -! -!WR_ASO3/WC_ACID=0.0 -! -!WR_ASO3/WC_RP16=0.0 -! -!WR_ASO3/WC_UR21=0.0 -! -!WR_ASO3/WC_UR28=0.0 -! -!WR_ASO3/WC_ACID2=0.0 -! -!WR_ASO3/WC_ASO3=0.0 -! -!WR_ASO3/WC_ASO4=0.0 -! -!WR_ASO3/WC_ASO5=0.0 -! -!WR_ASO3/WC_AHSO5=0.0 -! -!WR_ASO3/WC_AHMS=0.0 -! -!WR_ASO3/WR_O3=0.0 -! -!WR_ASO3/WR_H2O2=0.0 -! -!WR_ASO3/WR_NO=0.0 -! -!WR_ASO3/WR_NO2=0.0 -! -!WR_ASO3/WR_NO3=+KR16*<WR_SO2> - PJAC(:,157,129)=+TPK%KR16(:)*PCONC(:,138) -! -!WR_ASO3/WR_N2O5=0.0 -! -!WR_ASO3/WR_HONO=0.0 -! -!WR_ASO3/WR_HNO3=0.0 -! -!WR_ASO3/WR_HNO4=0.0 -! -!WR_ASO3/WR_NH3=0.0 -! -!WR_ASO3/WR_OH=+KR7*<WR_SO2> - PJAC(:,157,135)=+TPK%KR7(:)*PCONC(:,138) -! -!WR_ASO3/WR_HO2=0.0 -! -!WR_ASO3/WR_CO2=0.0 -! -!WR_ASO3/WR_SO2=+KR7*<WR_OH>+KR16*<WR_NO3>+KR28*<WR_RO21> - PJAC(:,157,138)=+TPK%KR7(:)*PCONC(:,135)+TPK%KR16(:)*PCONC(:,129)+TPK%KR28(:)*& -&PCONC(:,140) -! -!WR_ASO3/WR_H2SO4=0.0 -! -!WR_ASO3/WR_RO21=+KR28*<WR_SO2> - PJAC(:,157,140)=+TPK%KR28(:)*PCONC(:,138) -! -!WR_ASO3/WR_RO25=0.0 -! -!WR_ASO3/WR_MEOH=0.0 -! -!WR_ASO3/WR_ETOH=0.0 -! -!WR_ASO3/WR_ALCH=0.0 -! -!WR_ASO3/WR_HCHO=0.0 -! -!WR_ASO3/WR_ALD2=0.0 -! -!WR_ASO3/WR_GLY=0.0 -! -!WR_ASO3/WR_MGLY=0.0 -! -!WR_ASO3/WR_KETL=0.0 -! -!WR_ASO3/WR_ORA1=0.0 -! -!WR_ASO3/WR_ORA2=0.0 -! -!WR_ASO3/WR_ACID=0.0 -! -!WR_ASO3/WR_RP16=0.0 -! -!WR_ASO3/WR_UR21=0.0 -! -!WR_ASO3/WR_UR28=0.0 -! -!WR_ASO3/WR_ACID2=0.0 -! -!WR_ASO3/WR_ASO3=-KR20*<W_O2> - PJAC(:,157,157)=-TPK%KR20(:)*TPK%W_O2(:) -! -!WR_ASO3/WR_ASO4=0.0 -! -!WR_ASO3/WR_ASO5=0.0 -! -!WR_ASO3/WR_AHSO5=0.0 -! -!WR_ASO3/WR_AHMS=0.0 -! -!WR_ASO4/NO=0.0 -! -!WR_ASO4/NO2=0.0 -! -!WR_ASO4/O3=0.0 -! -!WR_ASO4/HONO=0.0 -! -!WR_ASO4/HNO3=0.0 -! -!WR_ASO4/HNO4=0.0 -! -!WR_ASO4/N2O5=0.0 -! -!WR_ASO4/NO3=0.0 -! -!WR_ASO4/NH3=0.0 -! -!WR_ASO4/HO2=0.0 -! -!WR_ASO4/CO=0.0 -! -!WR_ASO4/H2O2=0.0 -! -!WR_ASO4/SO2=0.0 -! -!WR_ASO4/H2SO4=0.0 -! -!WR_ASO4/OH=0.0 -! -!WR_ASO4/ETHE=0.0 -! -!WR_ASO4/OLEL=0.0 -! -!WR_ASO4/OLEH=0.0 -! -!WR_ASO4/ALKL=0.0 -! -!WR_ASO4/ALKM=0.0 -! -!WR_ASO4/ALKH=0.0 -! -!WR_ASO4/AROH=0.0 -! -!WR_ASO4/AROL=0.0 -! -!WR_ASO4/AROO=0.0 -! -!WR_ASO4/ARAL=0.0 -! -!WR_ASO4/ARAC=0.0 -! -!WR_ASO4/PAH=0.0 -! -!WR_ASO4/HCHO=0.0 -! -!WR_ASO4/ALD2=0.0 -! -!WR_ASO4/KETL=0.0 -! -!WR_ASO4/KETH=0.0 -! -!WR_ASO4/MEOH=0.0 -! -!WR_ASO4/ETOH=0.0 -! -!WR_ASO4/ALCH=0.0 -! -!WR_ASO4/ISOP=0.0 -! -!WR_ASO4/BIOL=0.0 -! -!WR_ASO4/BIOH=0.0 -! -!WR_ASO4/MTBE=0.0 -! -!WR_ASO4/MVK=0.0 -! -!WR_ASO4/MCR=0.0 -! -!WR_ASO4/MGLY=0.0 -! -!WR_ASO4/GLY=0.0 -! -!WR_ASO4/ORA1=0.0 -! -!WR_ASO4/ORA2=0.0 -! -!WR_ASO4/ACID=0.0 -! -!WR_ASO4/UR28=0.0 -! -!WR_ASO4/UR21=0.0 -! -!WR_ASO4/URG2=0.0 -! -!WR_ASO4/UR26=0.0 -! -!WR_ASO4/RPG2=0.0 -! -!WR_ASO4/RP18=0.0 -! -!WR_ASO4/RPG3=0.0 -! -!WR_ASO4/URG4=0.0 -! -!WR_ASO4/UR8=0.0 -! -!WR_ASO4/UR17=0.0 -! -!WR_ASO4/UR7=0.0 -! -!WR_ASO4/RPR3=0.0 -! -!WR_ASO4/URG6=0.0 -! -!WR_ASO4/UR22=0.0 -! -!WR_ASO4/URG7=0.0 -! -!WR_ASO4/RPR4=0.0 -! -!WR_ASO4/RPR7=0.0 -! -!WR_ASO4/RPG7=0.0 -! -!WR_ASO4/URG8=0.0 -! -!WR_ASO4/UR19=0.0 -! -!WR_ASO4/URG9=0.0 -! -!WR_ASO4/AP7=0.0 -! -!WR_ASO4/URG10=0.0 -! -!WR_ASO4/RPR1=0.0 -! -!WR_ASO4/RPR5=0.0 -! -!WR_ASO4/RPR8=0.0 -! -!WR_ASO4/RP10=0.0 -! -!WR_ASO4/RP11=0.0 -! -!WR_ASO4/RP16=0.0 -! -!WR_ASO4/RPRL=0.0 -! -!WR_ASO4/APAN=0.0 -! -!WR_ASO4/PAN1=0.0 -! -!WR_ASO4/PAN2=0.0 -! -!WR_ASO4/PAN3=0.0 -! -!WR_ASO4/PAN4=0.0 -! -!WR_ASO4/PAN6=0.0 -! -!WR_ASO4/PAN7=0.0 -! -!WR_ASO4/PAN8=0.0 -! -!WR_ASO4/PN10=0.0 -! -!WR_ASO4/RO2T=0.0 -! -!WR_ASO4/RO21=0.0 -! -!WR_ASO4/RO25=0.0 -! -!WR_ASO4/WC_O3=0.0 -! -!WR_ASO4/WC_H2O2=0.0 -! -!WR_ASO4/WC_NO=0.0 -! -!WR_ASO4/WC_NO2=0.0 -! -!WR_ASO4/WC_NO3=0.0 -! -!WR_ASO4/WC_N2O5=0.0 -! -!WR_ASO4/WC_HONO=0.0 -! -!WR_ASO4/WC_HNO3=0.0 -! -!WR_ASO4/WC_HNO4=0.0 -! -!WR_ASO4/WC_NH3=0.0 -! -!WR_ASO4/WC_OH=0.0 -! -!WR_ASO4/WC_HO2=0.0 -! -!WR_ASO4/WC_CO2=0.0 -! -!WR_ASO4/WC_SO2=0.0 -! -!WR_ASO4/WC_H2SO4=0.0 -! -!WR_ASO4/WC_RO21=0.0 -! -!WR_ASO4/WC_RO25=0.0 -! -!WR_ASO4/WC_MEOH=0.0 -! -!WR_ASO4/WC_ETOH=0.0 -! -!WR_ASO4/WC_ALCH=0.0 -! -!WR_ASO4/WC_HCHO=0.0 -! -!WR_ASO4/WC_ALD2=0.0 -! -!WR_ASO4/WC_GLY=0.0 -! -!WR_ASO4/WC_MGLY=0.0 -! -!WR_ASO4/WC_KETL=0.0 -! -!WR_ASO4/WC_ORA1=0.0 -! -!WR_ASO4/WC_ORA2=0.0 -! -!WR_ASO4/WC_ACID=0.0 -! -!WR_ASO4/WC_RP16=0.0 -! -!WR_ASO4/WC_UR21=0.0 -! -!WR_ASO4/WC_UR28=0.0 -! -!WR_ASO4/WC_ACID2=0.0 -! -!WR_ASO4/WC_ASO3=0.0 -! -!WR_ASO4/WC_ASO4=0.0 -! -!WR_ASO4/WC_ASO5=0.0 -! -!WR_ASO4/WC_AHSO5=0.0 -! -!WR_ASO4/WC_AHMS=0.0 -! -!WR_ASO4/WR_O3=0.0 -! -!WR_ASO4/WR_H2O2=0.0 -! -!WR_ASO4/WR_NO=0.0 -! -!WR_ASO4/WR_NO2=0.0 -! -!WR_ASO4/WR_NO3=+KR15*<WR_H2SO4> - PJAC(:,158,129)=+TPK%KR15(:)*PCONC(:,139) -! -!WR_ASO4/WR_N2O5=0.0 -! -!WR_ASO4/WR_HONO=0.0 -! -!WR_ASO4/WR_HNO3=0.0 -! -!WR_ASO4/WR_HNO4=0.0 -! -!WR_ASO4/WR_NH3=0.0 -! -!WR_ASO4/WR_OH=0.0 -! -!WR_ASO4/WR_HO2=0.0 -! -!WR_ASO4/WR_CO2=0.0 -! -!WR_ASO4/WR_SO2=0.0 -! -!WR_ASO4/WR_H2SO4=+KR15*<WR_NO3> - PJAC(:,158,139)=+TPK%KR15(:)*PCONC(:,129) -! -!WR_ASO4/WR_RO21=0.0 -! -!WR_ASO4/WR_RO25=0.0 -! -!WR_ASO4/WR_MEOH=0.0 -! -!WR_ASO4/WR_ETOH=0.0 -! -!WR_ASO4/WR_ALCH=0.0 -! -!WR_ASO4/WR_HCHO=0.0 -! -!WR_ASO4/WR_ALD2=0.0 -! -!WR_ASO4/WR_GLY=0.0 -! -!WR_ASO4/WR_MGLY=0.0 -! -!WR_ASO4/WR_KETL=0.0 -! -!WR_ASO4/WR_ORA1=0.0 -! -!WR_ASO4/WR_ORA2=0.0 -! -!WR_ASO4/WR_ACID=0.0 -! -!WR_ASO4/WR_RP16=0.0 -! -!WR_ASO4/WR_UR21=0.0 -! -!WR_ASO4/WR_UR28=0.0 -! -!WR_ASO4/WR_ACID2=0.0 -! -!WR_ASO4/WR_ASO3=0.0 -! -!WR_ASO4/WR_ASO4=-KR24 - PJAC(:,158,158)=-TPK%KR24(:) -! -!WR_ASO4/WR_ASO5=+KR22*<WR_ASO5>+KR22*<WR_ASO5>+KR22*<WR_ASO5>+KR22*<WR_ASO5> - PJAC(:,158,159)=+TPK%KR22(:)*PCONC(:,159)+TPK%KR22(:)*PCONC(:,159)+TPK%KR22(:)& -&*PCONC(:,159)+TPK%KR22(:)*PCONC(:,159) -! -!WR_ASO4/WR_AHSO5=0.0 -! -!WR_ASO4/WR_AHMS=0.0 -! -!WR_ASO5/NO=0.0 -! -!WR_ASO5/NO2=0.0 -! -!WR_ASO5/O3=0.0 -! -!WR_ASO5/HONO=0.0 -! -!WR_ASO5/HNO3=0.0 -! -!WR_ASO5/HNO4=0.0 -! -!WR_ASO5/N2O5=0.0 -! -!WR_ASO5/NO3=0.0 -! -!WR_ASO5/NH3=0.0 -! -!WR_ASO5/HO2=0.0 -! -!WR_ASO5/CO=0.0 -! -!WR_ASO5/H2O2=0.0 -! -!WR_ASO5/SO2=0.0 -! -!WR_ASO5/H2SO4=0.0 -! -!WR_ASO5/OH=0.0 -! -!WR_ASO5/ETHE=0.0 -! -!WR_ASO5/OLEL=0.0 -! -!WR_ASO5/OLEH=0.0 -! -!WR_ASO5/ALKL=0.0 -! -!WR_ASO5/ALKM=0.0 -! -!WR_ASO5/ALKH=0.0 -! -!WR_ASO5/AROH=0.0 -! -!WR_ASO5/AROL=0.0 -! -!WR_ASO5/AROO=0.0 -! -!WR_ASO5/ARAL=0.0 -! -!WR_ASO5/ARAC=0.0 -! -!WR_ASO5/PAH=0.0 -! -!WR_ASO5/HCHO=0.0 -! -!WR_ASO5/ALD2=0.0 -! -!WR_ASO5/KETL=0.0 -! -!WR_ASO5/KETH=0.0 -! -!WR_ASO5/MEOH=0.0 -! -!WR_ASO5/ETOH=0.0 -! -!WR_ASO5/ALCH=0.0 -! -!WR_ASO5/ISOP=0.0 -! -!WR_ASO5/BIOL=0.0 -! -!WR_ASO5/BIOH=0.0 -! -!WR_ASO5/MTBE=0.0 -! -!WR_ASO5/MVK=0.0 -! -!WR_ASO5/MCR=0.0 -! -!WR_ASO5/MGLY=0.0 -! -!WR_ASO5/GLY=0.0 -! -!WR_ASO5/ORA1=0.0 -! -!WR_ASO5/ORA2=0.0 -! -!WR_ASO5/ACID=0.0 -! -!WR_ASO5/UR28=0.0 -! -!WR_ASO5/UR21=0.0 -! -!WR_ASO5/URG2=0.0 -! -!WR_ASO5/UR26=0.0 -! -!WR_ASO5/RPG2=0.0 -! -!WR_ASO5/RP18=0.0 -! -!WR_ASO5/RPG3=0.0 -! -!WR_ASO5/URG4=0.0 -! -!WR_ASO5/UR8=0.0 -! -!WR_ASO5/UR17=0.0 -! -!WR_ASO5/UR7=0.0 -! -!WR_ASO5/RPR3=0.0 -! -!WR_ASO5/URG6=0.0 -! -!WR_ASO5/UR22=0.0 -! -!WR_ASO5/URG7=0.0 -! -!WR_ASO5/RPR4=0.0 -! -!WR_ASO5/RPR7=0.0 -! -!WR_ASO5/RPG7=0.0 -! -!WR_ASO5/URG8=0.0 -! -!WR_ASO5/UR19=0.0 -! -!WR_ASO5/URG9=0.0 -! -!WR_ASO5/AP7=0.0 -! -!WR_ASO5/URG10=0.0 -! -!WR_ASO5/RPR1=0.0 -! -!WR_ASO5/RPR5=0.0 -! -!WR_ASO5/RPR8=0.0 -! -!WR_ASO5/RP10=0.0 -! -!WR_ASO5/RP11=0.0 -! -!WR_ASO5/RP16=0.0 -! -!WR_ASO5/RPRL=0.0 -! -!WR_ASO5/APAN=0.0 -! -!WR_ASO5/PAN1=0.0 -! -!WR_ASO5/PAN2=0.0 -! -!WR_ASO5/PAN3=0.0 -! -!WR_ASO5/PAN4=0.0 -! -!WR_ASO5/PAN6=0.0 -! -!WR_ASO5/PAN7=0.0 -! -!WR_ASO5/PAN8=0.0 -! -!WR_ASO5/PN10=0.0 -! -!WR_ASO5/RO2T=0.0 -! -!WR_ASO5/RO21=0.0 -! -!WR_ASO5/RO25=0.0 -! -!WR_ASO5/WC_O3=0.0 -! -!WR_ASO5/WC_H2O2=0.0 -! -!WR_ASO5/WC_NO=0.0 -! -!WR_ASO5/WC_NO2=0.0 -! -!WR_ASO5/WC_NO3=0.0 -! -!WR_ASO5/WC_N2O5=0.0 -! -!WR_ASO5/WC_HONO=0.0 -! -!WR_ASO5/WC_HNO3=0.0 -! -!WR_ASO5/WC_HNO4=0.0 -! -!WR_ASO5/WC_NH3=0.0 -! -!WR_ASO5/WC_OH=0.0 -! -!WR_ASO5/WC_HO2=0.0 -! -!WR_ASO5/WC_CO2=0.0 -! -!WR_ASO5/WC_SO2=0.0 -! -!WR_ASO5/WC_H2SO4=0.0 -! -!WR_ASO5/WC_RO21=0.0 -! -!WR_ASO5/WC_RO25=0.0 -! -!WR_ASO5/WC_MEOH=0.0 -! -!WR_ASO5/WC_ETOH=0.0 -! -!WR_ASO5/WC_ALCH=0.0 -! -!WR_ASO5/WC_HCHO=0.0 -! -!WR_ASO5/WC_ALD2=0.0 -! -!WR_ASO5/WC_GLY=0.0 -! -!WR_ASO5/WC_MGLY=0.0 -! -!WR_ASO5/WC_KETL=0.0 -! -!WR_ASO5/WC_ORA1=0.0 -! -!WR_ASO5/WC_ORA2=0.0 -! -!WR_ASO5/WC_ACID=0.0 -! -!WR_ASO5/WC_RP16=0.0 -! -!WR_ASO5/WC_UR21=0.0 -! -!WR_ASO5/WC_UR28=0.0 -! -!WR_ASO5/WC_ACID2=0.0 -! -!WR_ASO5/WC_ASO3=0.0 -! -!WR_ASO5/WC_ASO4=0.0 -! -!WR_ASO5/WC_ASO5=0.0 -! -!WR_ASO5/WC_AHSO5=0.0 -! -!WR_ASO5/WC_AHMS=0.0 -! -!WR_ASO5/WR_O3=0.0 -! -!WR_ASO5/WR_H2O2=0.0 -! -!WR_ASO5/WR_NO=0.0 -! -!WR_ASO5/WR_NO2=0.0 -! -!WR_ASO5/WR_NO3=0.0 -! -!WR_ASO5/WR_N2O5=0.0 -! -!WR_ASO5/WR_HONO=0.0 -! -!WR_ASO5/WR_HNO3=0.0 -! -!WR_ASO5/WR_HNO4=0.0 -! -!WR_ASO5/WR_NH3=0.0 -! -!WR_ASO5/WR_OH=0.0 -! -!WR_ASO5/WR_HO2=-KR21*<WR_ASO5> - PJAC(:,159,136)=-TPK%KR21(:)*PCONC(:,159) -! -!WR_ASO5/WR_CO2=0.0 -! -!WR_ASO5/WR_SO2=0.0 -! -!WR_ASO5/WR_H2SO4=0.0 -! -!WR_ASO5/WR_RO21=0.0 -! -!WR_ASO5/WR_RO25=0.0 -! -!WR_ASO5/WR_MEOH=0.0 -! -!WR_ASO5/WR_ETOH=0.0 -! -!WR_ASO5/WR_ALCH=0.0 -! -!WR_ASO5/WR_HCHO=0.0 -! -!WR_ASO5/WR_ALD2=0.0 -! -!WR_ASO5/WR_GLY=0.0 -! -!WR_ASO5/WR_MGLY=0.0 -! -!WR_ASO5/WR_KETL=0.0 -! -!WR_ASO5/WR_ORA1=0.0 -! -!WR_ASO5/WR_ORA2=0.0 -! -!WR_ASO5/WR_ACID=0.0 -! -!WR_ASO5/WR_RP16=0.0 -! -!WR_ASO5/WR_UR21=0.0 -! -!WR_ASO5/WR_UR28=0.0 -! -!WR_ASO5/WR_ACID2=0.0 -! -!WR_ASO5/WR_ASO3=+KR20*<W_O2> - PJAC(:,159,157)=+TPK%KR20(:)*TPK%W_O2(:) -! -!WR_ASO5/WR_ASO4=0.0 -! -!WR_ASO5/WR_ASO5=-KR21*<WR_HO2>-KR22*<WR_ASO5>-KR22*<WR_ASO5>-KR22*<WR_ASO5>-KR -!22*<WR_ASO5> - PJAC(:,159,159)=-TPK%KR21(:)*PCONC(:,136)-TPK%KR22(:)*PCONC(:,159)-TPK%KR22(:)& -&*PCONC(:,159)-TPK%KR22(:)*PCONC(:,159)-TPK%KR22(:)*PCONC(:,159) -! -!WR_ASO5/WR_AHSO5=0.0 -! -!WR_ASO5/WR_AHMS=0.0 -! -!WR_AHSO5/NO=0.0 -! -!WR_AHSO5/NO2=0.0 -! -!WR_AHSO5/O3=0.0 -! -!WR_AHSO5/HONO=0.0 -! -!WR_AHSO5/HNO3=0.0 -! -!WR_AHSO5/HNO4=0.0 -! -!WR_AHSO5/N2O5=0.0 -! -!WR_AHSO5/NO3=0.0 -! -!WR_AHSO5/NH3=0.0 -! -!WR_AHSO5/HO2=0.0 -! -!WR_AHSO5/CO=0.0 -! -!WR_AHSO5/H2O2=0.0 -! -!WR_AHSO5/SO2=0.0 -! -!WR_AHSO5/H2SO4=0.0 -! -!WR_AHSO5/OH=0.0 -! -!WR_AHSO5/ETHE=0.0 -! -!WR_AHSO5/OLEL=0.0 -! -!WR_AHSO5/OLEH=0.0 -! -!WR_AHSO5/ALKL=0.0 -! -!WR_AHSO5/ALKM=0.0 -! -!WR_AHSO5/ALKH=0.0 -! -!WR_AHSO5/AROH=0.0 -! -!WR_AHSO5/AROL=0.0 -! -!WR_AHSO5/AROO=0.0 -! -!WR_AHSO5/ARAL=0.0 -! -!WR_AHSO5/ARAC=0.0 -! -!WR_AHSO5/PAH=0.0 -! -!WR_AHSO5/HCHO=0.0 -! -!WR_AHSO5/ALD2=0.0 -! -!WR_AHSO5/KETL=0.0 -! -!WR_AHSO5/KETH=0.0 -! -!WR_AHSO5/MEOH=0.0 -! -!WR_AHSO5/ETOH=0.0 -! -!WR_AHSO5/ALCH=0.0 -! -!WR_AHSO5/ISOP=0.0 -! -!WR_AHSO5/BIOL=0.0 -! -!WR_AHSO5/BIOH=0.0 -! -!WR_AHSO5/MTBE=0.0 -! -!WR_AHSO5/MVK=0.0 -! -!WR_AHSO5/MCR=0.0 -! -!WR_AHSO5/MGLY=0.0 -! -!WR_AHSO5/GLY=0.0 -! -!WR_AHSO5/ORA1=0.0 -! -!WR_AHSO5/ORA2=0.0 -! -!WR_AHSO5/ACID=0.0 -! -!WR_AHSO5/UR28=0.0 -! -!WR_AHSO5/UR21=0.0 -! -!WR_AHSO5/URG2=0.0 -! -!WR_AHSO5/UR26=0.0 -! -!WR_AHSO5/RPG2=0.0 -! -!WR_AHSO5/RP18=0.0 -! -!WR_AHSO5/RPG3=0.0 -! -!WR_AHSO5/URG4=0.0 -! -!WR_AHSO5/UR8=0.0 -! -!WR_AHSO5/UR17=0.0 -! -!WR_AHSO5/UR7=0.0 -! -!WR_AHSO5/RPR3=0.0 -! -!WR_AHSO5/URG6=0.0 -! -!WR_AHSO5/UR22=0.0 -! -!WR_AHSO5/URG7=0.0 -! -!WR_AHSO5/RPR4=0.0 -! -!WR_AHSO5/RPR7=0.0 -! -!WR_AHSO5/RPG7=0.0 -! -!WR_AHSO5/URG8=0.0 -! -!WR_AHSO5/UR19=0.0 -! -!WR_AHSO5/URG9=0.0 -! -!WR_AHSO5/AP7=0.0 -! -!WR_AHSO5/URG10=0.0 -! -!WR_AHSO5/RPR1=0.0 -! -!WR_AHSO5/RPR5=0.0 -! -!WR_AHSO5/RPR8=0.0 -! -!WR_AHSO5/RP10=0.0 -! -!WR_AHSO5/RP11=0.0 -! -!WR_AHSO5/RP16=0.0 -! -!WR_AHSO5/RPRL=0.0 -! -!WR_AHSO5/APAN=0.0 -! -!WR_AHSO5/PAN1=0.0 -! -!WR_AHSO5/PAN2=0.0 -! -!WR_AHSO5/PAN3=0.0 -! -!WR_AHSO5/PAN4=0.0 -! -!WR_AHSO5/PAN6=0.0 -! -!WR_AHSO5/PAN7=0.0 -! -!WR_AHSO5/PAN8=0.0 -! -!WR_AHSO5/PN10=0.0 -! -!WR_AHSO5/RO2T=0.0 -! -!WR_AHSO5/RO21=0.0 -! -!WR_AHSO5/RO25=0.0 -! -!WR_AHSO5/WC_O3=0.0 -! -!WR_AHSO5/WC_H2O2=0.0 -! -!WR_AHSO5/WC_NO=0.0 -! -!WR_AHSO5/WC_NO2=0.0 -! -!WR_AHSO5/WC_NO3=0.0 -! -!WR_AHSO5/WC_N2O5=0.0 -! -!WR_AHSO5/WC_HONO=0.0 -! -!WR_AHSO5/WC_HNO3=0.0 -! -!WR_AHSO5/WC_HNO4=0.0 -! -!WR_AHSO5/WC_NH3=0.0 -! -!WR_AHSO5/WC_OH=0.0 -! -!WR_AHSO5/WC_HO2=0.0 -! -!WR_AHSO5/WC_CO2=0.0 -! -!WR_AHSO5/WC_SO2=0.0 -! -!WR_AHSO5/WC_H2SO4=0.0 -! -!WR_AHSO5/WC_RO21=0.0 -! -!WR_AHSO5/WC_RO25=0.0 -! -!WR_AHSO5/WC_MEOH=0.0 -! -!WR_AHSO5/WC_ETOH=0.0 -! -!WR_AHSO5/WC_ALCH=0.0 -! -!WR_AHSO5/WC_HCHO=0.0 -! -!WR_AHSO5/WC_ALD2=0.0 -! -!WR_AHSO5/WC_GLY=0.0 -! -!WR_AHSO5/WC_MGLY=0.0 -! -!WR_AHSO5/WC_KETL=0.0 -! -!WR_AHSO5/WC_ORA1=0.0 -! -!WR_AHSO5/WC_ORA2=0.0 -! -!WR_AHSO5/WC_ACID=0.0 -! -!WR_AHSO5/WC_RP16=0.0 -! -!WR_AHSO5/WC_UR21=0.0 -! -!WR_AHSO5/WC_UR28=0.0 -! -!WR_AHSO5/WC_ACID2=0.0 -! -!WR_AHSO5/WC_ASO3=0.0 -! -!WR_AHSO5/WC_ASO4=0.0 -! -!WR_AHSO5/WC_ASO5=0.0 -! -!WR_AHSO5/WC_AHSO5=0.0 -! -!WR_AHSO5/WC_AHMS=0.0 -! -!WR_AHSO5/WR_O3=0.0 -! -!WR_AHSO5/WR_H2O2=0.0 -! -!WR_AHSO5/WR_NO=0.0 -! -!WR_AHSO5/WR_NO2=0.0 -! -!WR_AHSO5/WR_NO3=0.0 -! -!WR_AHSO5/WR_N2O5=0.0 -! -!WR_AHSO5/WR_HONO=0.0 -! -!WR_AHSO5/WR_HNO3=0.0 -! -!WR_AHSO5/WR_HNO4=0.0 -! -!WR_AHSO5/WR_NH3=0.0 -! -!WR_AHSO5/WR_OH=0.0 -! -!WR_AHSO5/WR_HO2=+KR21*<WR_ASO5> - PJAC(:,160,136)=+TPK%KR21(:)*PCONC(:,159) -! -!WR_AHSO5/WR_CO2=0.0 -! -!WR_AHSO5/WR_SO2=-KR23*<WR_AHSO5> - PJAC(:,160,138)=-TPK%KR23(:)*PCONC(:,160) -! -!WR_AHSO5/WR_H2SO4=0.0 -! -!WR_AHSO5/WR_RO21=0.0 -! -!WR_AHSO5/WR_RO25=0.0 -! -!WR_AHSO5/WR_MEOH=0.0 -! -!WR_AHSO5/WR_ETOH=0.0 -! -!WR_AHSO5/WR_ALCH=0.0 -! -!WR_AHSO5/WR_HCHO=0.0 -! -!WR_AHSO5/WR_ALD2=0.0 -! -!WR_AHSO5/WR_GLY=0.0 -! -!WR_AHSO5/WR_MGLY=0.0 -! -!WR_AHSO5/WR_KETL=0.0 -! -!WR_AHSO5/WR_ORA1=0.0 -! -!WR_AHSO5/WR_ORA2=0.0 -! -!WR_AHSO5/WR_ACID=0.0 -! -!WR_AHSO5/WR_RP16=0.0 -! -!WR_AHSO5/WR_UR21=0.0 -! -!WR_AHSO5/WR_UR28=0.0 -! -!WR_AHSO5/WR_ACID2=0.0 -! -!WR_AHSO5/WR_ASO3=0.0 -! -!WR_AHSO5/WR_ASO4=0.0 -! -!WR_AHSO5/WR_ASO5=+KR21*<WR_HO2> - PJAC(:,160,159)=+TPK%KR21(:)*PCONC(:,136) -! -!WR_AHSO5/WR_AHSO5=-KR23*<WR_SO2> - PJAC(:,160,160)=-TPK%KR23(:)*PCONC(:,138) -! -!WR_AHSO5/WR_AHMS=0.0 -! -RETURN -END SUBROUTINE SUBJ31 -! -SUBROUTINE SUBJ32 -! -!Indices 161 a 161 -! -! -!WR_AHMS/NO=0.0 -! -!WR_AHMS/NO2=0.0 -! -!WR_AHMS/O3=0.0 -! -!WR_AHMS/HONO=0.0 -! -!WR_AHMS/HNO3=0.0 -! -!WR_AHMS/HNO4=0.0 -! -!WR_AHMS/N2O5=0.0 -! -!WR_AHMS/NO3=0.0 -! -!WR_AHMS/NH3=0.0 -! -!WR_AHMS/HO2=0.0 -! -!WR_AHMS/CO=0.0 -! -!WR_AHMS/H2O2=0.0 -! -!WR_AHMS/SO2=0.0 -! -!WR_AHMS/H2SO4=0.0 -! -!WR_AHMS/OH=0.0 -! -!WR_AHMS/ETHE=0.0 -! -!WR_AHMS/OLEL=0.0 -! -!WR_AHMS/OLEH=0.0 -! -!WR_AHMS/ALKL=0.0 -! -!WR_AHMS/ALKM=0.0 -! -!WR_AHMS/ALKH=0.0 -! -!WR_AHMS/AROH=0.0 -! -!WR_AHMS/AROL=0.0 -! -!WR_AHMS/AROO=0.0 -! -!WR_AHMS/ARAL=0.0 -! -!WR_AHMS/ARAC=0.0 -! -!WR_AHMS/PAH=0.0 -! -!WR_AHMS/HCHO=0.0 -! -!WR_AHMS/ALD2=0.0 -! -!WR_AHMS/KETL=0.0 -! -!WR_AHMS/KETH=0.0 -! -!WR_AHMS/MEOH=0.0 -! -!WR_AHMS/ETOH=0.0 -! -!WR_AHMS/ALCH=0.0 -! -!WR_AHMS/ISOP=0.0 -! -!WR_AHMS/BIOL=0.0 -! -!WR_AHMS/BIOH=0.0 -! -!WR_AHMS/MTBE=0.0 -! -!WR_AHMS/MVK=0.0 -! -!WR_AHMS/MCR=0.0 -! -!WR_AHMS/MGLY=0.0 -! -!WR_AHMS/GLY=0.0 -! -!WR_AHMS/ORA1=0.0 -! -!WR_AHMS/ORA2=0.0 -! -!WR_AHMS/ACID=0.0 -! -!WR_AHMS/UR28=0.0 -! -!WR_AHMS/UR21=0.0 -! -!WR_AHMS/URG2=0.0 -! -!WR_AHMS/UR26=0.0 -! -!WR_AHMS/RPG2=0.0 -! -!WR_AHMS/RP18=0.0 -! -!WR_AHMS/RPG3=0.0 -! -!WR_AHMS/URG4=0.0 -! -!WR_AHMS/UR8=0.0 -! -!WR_AHMS/UR17=0.0 -! -!WR_AHMS/UR7=0.0 -! -!WR_AHMS/RPR3=0.0 -! -!WR_AHMS/URG6=0.0 -! -!WR_AHMS/UR22=0.0 -! -!WR_AHMS/URG7=0.0 -! -!WR_AHMS/RPR4=0.0 -! -!WR_AHMS/RPR7=0.0 -! -!WR_AHMS/RPG7=0.0 -! -!WR_AHMS/URG8=0.0 -! -!WR_AHMS/UR19=0.0 -! -!WR_AHMS/URG9=0.0 -! -!WR_AHMS/AP7=0.0 -! -!WR_AHMS/URG10=0.0 -! -!WR_AHMS/RPR1=0.0 -! -!WR_AHMS/RPR5=0.0 -! -!WR_AHMS/RPR8=0.0 -! -!WR_AHMS/RP10=0.0 -! -!WR_AHMS/RP11=0.0 -! -!WR_AHMS/RP16=0.0 -! -!WR_AHMS/RPRL=0.0 -! -!WR_AHMS/APAN=0.0 -! -!WR_AHMS/PAN1=0.0 -! -!WR_AHMS/PAN2=0.0 -! -!WR_AHMS/PAN3=0.0 -! -!WR_AHMS/PAN4=0.0 -! -!WR_AHMS/PAN6=0.0 -! -!WR_AHMS/PAN7=0.0 -! -!WR_AHMS/PAN8=0.0 -! -!WR_AHMS/PN10=0.0 -! -!WR_AHMS/RO2T=0.0 -! -!WR_AHMS/RO21=0.0 -! -!WR_AHMS/RO25=0.0 -! -!WR_AHMS/WC_O3=0.0 -! -!WR_AHMS/WC_H2O2=0.0 -! -!WR_AHMS/WC_NO=0.0 -! -!WR_AHMS/WC_NO2=0.0 -! -!WR_AHMS/WC_NO3=0.0 -! -!WR_AHMS/WC_N2O5=0.0 -! -!WR_AHMS/WC_HONO=0.0 -! -!WR_AHMS/WC_HNO3=0.0 -! -!WR_AHMS/WC_HNO4=0.0 -! -!WR_AHMS/WC_NH3=0.0 -! -!WR_AHMS/WC_OH=0.0 -! -!WR_AHMS/WC_HO2=0.0 -! -!WR_AHMS/WC_CO2=0.0 -! -!WR_AHMS/WC_SO2=0.0 -! -!WR_AHMS/WC_H2SO4=0.0 -! -!WR_AHMS/WC_RO21=0.0 -! -!WR_AHMS/WC_RO25=0.0 -! -!WR_AHMS/WC_MEOH=0.0 -! -!WR_AHMS/WC_ETOH=0.0 -! -!WR_AHMS/WC_ALCH=0.0 -! -!WR_AHMS/WC_HCHO=0.0 -! -!WR_AHMS/WC_ALD2=0.0 -! -!WR_AHMS/WC_GLY=0.0 -! -!WR_AHMS/WC_MGLY=0.0 -! -!WR_AHMS/WC_KETL=0.0 -! -!WR_AHMS/WC_ORA1=0.0 -! -!WR_AHMS/WC_ORA2=0.0 -! -!WR_AHMS/WC_ACID=0.0 -! -!WR_AHMS/WC_RP16=0.0 -! -!WR_AHMS/WC_UR21=0.0 -! -!WR_AHMS/WC_UR28=0.0 -! -!WR_AHMS/WC_ACID2=0.0 -! -!WR_AHMS/WC_ASO3=0.0 -! -!WR_AHMS/WC_ASO4=0.0 -! -!WR_AHMS/WC_ASO5=0.0 -! -!WR_AHMS/WC_AHSO5=0.0 -! -!WR_AHMS/WC_AHMS=0.0 -! -!WR_AHMS/WR_O3=0.0 -! -!WR_AHMS/WR_H2O2=0.0 -! -!WR_AHMS/WR_NO=0.0 -! -!WR_AHMS/WR_NO2=0.0 -! -!WR_AHMS/WR_NO3=0.0 -! -!WR_AHMS/WR_N2O5=0.0 -! -!WR_AHMS/WR_HONO=0.0 -! -!WR_AHMS/WR_HNO3=0.0 -! -!WR_AHMS/WR_HNO4=0.0 -! -!WR_AHMS/WR_NH3=0.0 -! -!WR_AHMS/WR_OH=-KR19*<WR_AHMS> - PJAC(:,161,135)=-TPK%KR19(:)*PCONC(:,161) -! -!WR_AHMS/WR_HO2=0.0 -! -!WR_AHMS/WR_CO2=0.0 -! -!WR_AHMS/WR_SO2=+KR17*<WR_HCHO> - PJAC(:,161,138)=+TPK%KR17(:)*PCONC(:,145) -! -!WR_AHMS/WR_H2SO4=0.0 -! -!WR_AHMS/WR_RO21=0.0 -! -!WR_AHMS/WR_RO25=0.0 -! -!WR_AHMS/WR_MEOH=0.0 -! -!WR_AHMS/WR_ETOH=0.0 -! -!WR_AHMS/WR_ALCH=0.0 -! -!WR_AHMS/WR_HCHO=+KR17*<WR_SO2> - PJAC(:,161,145)=+TPK%KR17(:)*PCONC(:,138) -! -!WR_AHMS/WR_ALD2=0.0 -! -!WR_AHMS/WR_GLY=0.0 -! -!WR_AHMS/WR_MGLY=0.0 -! -!WR_AHMS/WR_KETL=0.0 -! -!WR_AHMS/WR_ORA1=0.0 -! -!WR_AHMS/WR_ORA2=0.0 -! -!WR_AHMS/WR_ACID=0.0 -! -!WR_AHMS/WR_RP16=0.0 -! -!WR_AHMS/WR_UR21=0.0 -! -!WR_AHMS/WR_UR28=0.0 -! -!WR_AHMS/WR_ACID2=0.0 -! -!WR_AHMS/WR_ASO3=0.0 -! -!WR_AHMS/WR_ASO4=0.0 -! -!WR_AHMS/WR_ASO5=0.0 -! -!WR_AHMS/WR_AHSO5=0.0 -! -!WR_AHMS/WR_AHMS=-KR18-KR19*<WR_OH> - PJAC(:,161,161)=-TPK%KR18(:)-TPK%KR19(:)*PCONC(:,135) -! -RETURN -END SUBROUTINE SUBJ32 -! -END SUBROUTINE CH_JAC_AQ -! -! -!======================================================================== -! -!! ######################## - MODULE MODI_CH_SET_RATES -!! ######################## -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -INTERFACE -SUBROUTINE CH_SET_RATES(PTIME,PCONC,TPM,KMI,KOUT,KVERB,KVECNPT,KEQ,KRRL,PPH) -USE MODD_CH_M9_n, ONLY: METEOTRANSTYPE -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -TYPE(METEOTRANSTYPE), DIMENSION(KVECNPT), INTENT(IN):: TPM -INTEGER, INTENT(IN) :: KMI -INTEGER, INTENT(IN) :: KOUT,KVERB -INTEGER, INTENT(INOUT) :: KRRL -REAL, INTENT(INOUT), DIMENSION(:,:), OPTIONAL :: PPH -END SUBROUTINE CH_SET_RATES -END INTERFACE -END MODULE MODI_CH_SET_RATES -! -!======================================================================== -! -!! ############################################################################ - SUBROUTINE CH_SET_RATES(PTIME,PCONC,TPM,KMI,KOUT,KVERB,KVECNPT,KEQ,KRRL,PPH) -!! ############################################################################ -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -!!*** *MODD_CH_SET_RATES* -!! -!! PURPOSE -!! ------- -! set or calculate reaction rates -!! -!!** METHOD -!! ------ -!! simple -!! -!! REFERENCE -!! --------- -!! none -!! -!! AUTHOR -!! ------ -!! Karsten Suhre (LA) -!! -!! MODIFICATIONS -!! ------------- -!! Original 26/07/96 -!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) -!! Modified 01/06/07: Add pH calculation (M. Leriche & JP Pinty) -!! Modified 01/06/08: Add reaction constant in cloud/rain (M. Leriche) -!! Modified 14/11/08: Put LWC and LWR to zero where <XRTMIN_AQ -!! -!!---------------------------------------------------------------------- -!! -!! EXTERNAL -!! -------- -!! -USE MODI_CH_ALLOCATE_TACCS -USE MODI_CH_DEALLOCATE_TACCS -USE MODI_CH_SET_PH -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -!! -USE MODD_CH_M9_SCHEME -USE MODD_CH_M9_n, ONLY : METEOTRANSTYPE -USE MODD_CH_MNHC_n, ONLY : XRTMIN_AQ, XCH_PHINIT -! USER DEFINED FUNCTIONS -USE MODI_KT -USE MODI_TROE -USE MODI_TROE_KA -USE MODI_TROE_KB -USE MODI_HENRY -USE MODI_TROE_EQUIL -USE MODI_HEFFA -USE MODI_HEFFB -!! -!! EXPLICIT ARGUMENTS -!! ------------------ -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -TYPE(METEOTRANSTYPE), DIMENSION(KVECNPT), INTENT(IN):: TPM -INTEGER, INTENT(IN) :: KMI -INTEGER, INTENT(IN) :: KOUT,KVERB -INTEGER, INTENT(INOUT) :: KRRL -REAL, INTENT(INOUT), DIMENSION(:,:), OPTIONAL :: PPH -!! -!!---------------------------------------------------------------------- -! /BEGIN_SET_RATES/ -! -! transfer of meteo-variables into variables used by the -! chemical core system (and some unit conversion): -! -! molecular weight of air: m_mol^air = 28.8 g/mol -! molecular weight of H2O: m_mol^H2O = 18.0 g/mol -! ==> m_mol^air / m_mol^H2O = 1.6 -! density conversion factor: 1 g/cm3 = 1E+3 kg/m3 -! n_molec (moelc./cm3): M = 1E-3*RHO(kg/m3) * Navo / m_mol -! n_water: H2O = M * 1.6 * Rv -! pressure = RHO * T * R * 1E-5 (in atm) -! assuming 20.95 vol% O2 -! -TYPE(CCSTYPE), POINTER :: TPK -! -REAL :: A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z -REAL :: NC, YI300, Y300, MINF -REAL, DIMENSION(KVECNPT) :: HF3, HF5, HF7, HF17, HF19, HF21, HF23,& - HF25, HF27, HF29, HF31, HF33, HF35, HF41,& - HF43 -!---------------------------------------------------------------------- -! -IF (.NOT. ASSOCIATED(TACCS(KMI)%NVERB)) THEN - CALL CH_ALLOCATE_TACCS(KMI,KVECNPT) -END IF -! -IF (SIZE(TACCS(KMI)%NVERB) .NE. KVECNPT) THEN - CALL CH_DEALLOCATE_TACCS(KMI) - CALL CH_ALLOCATE_TACCS(KMI,KVECNPT) -END IF -! -TPK=>TACCS(KMI) -! -TPK%MODELLEVEL = TPM%XMETEOVAR(1) -TPK%M = 1E-3*TPM%XMETEOVAR(2) * 6.0221367E+23 / 28.9644 -TPK%T = TPM%XMETEOVAR(3) -TPK%H2O = TPK%M*1.6077*TPM%XMETEOVAR(4) -TPK%CLOUDWATER = TPM%XMETEOVAR(5) -TPK%LAT = TPM%XMETEOVAR(6) -TPK%LON = TPM%XMETEOVAR(7) -TPK%YEAR = INT(TPM%XMETEOVAR(8)) -TPK%MONTH = INT(TPM%XMETEOVAR(9)) -TPK%DAY = INT(TPM%XMETEOVAR(10)) -TPK%RAINWATER = TPM%XMETEOVAR(11) -TPK%RHODREF = TPM%XMETEOVAR(2) -! derived variables -TPK%PRESSURE = TPM%XMETEOVAR(2) * TPK%T * 288.290947 * 1E-5 -TPK%O2 = 0.2095 * TPK%M -TPK%N2 = TPK%M - TPK%O2 -TPK%H2 = 1.23e13 -TPK%CH4 = 0.4335E+14 -! fixed concentration of CO2 -TPK%CO2 = 330. * 1.E-6 * TPK%M -! for chemistry in aqueous phase, kinetic mass transfer -! cloud lwc (vol/vol) = cloud m.r.(kg/kg) * rho_air(kg/m3) / rho_eau(kg/m3) -TPK%LWC = TPM%XMETEOVAR(5)*TPM%XMETEOVAR(2) / 1.E3 -WHERE ( TPK%LWC < XRTMIN_AQ ) !to get reaction rate for mass transfer = 0 - TPK%LWC = 0. -ENDWHERE -TPK%RADC = TPM%XMETEOVAR(12) -! conversion factor for reaction constant in cloud -! give minimum value to avoir division by zero -TPK%MOL2MOLECCLOUD = 6.023e+23*1.e-3*XRTMIN_AQ -WHERE (TPK%LWC >= XRTMIN_AQ) - TPK%MOL2MOLECCLOUD = 6.023e+23*1.e-3*TPK%LWC -END WHERE -! -TPK%LWR = TPM%XMETEOVAR(11)*TPM%XMETEOVAR(2) / 1.E3 -WHERE ( TPK%LWR < XRTMIN_AQ ) !to get reaction rate for mass transfer = 0 - TPK%LWR = 0. -ENDWHERE -TPK%RADR = TPM%XMETEOVAR(13) -! conversion factor for reaction constant in rain -! give minimum value to avoir division by zero -TPK%MOL2MOLECRAIN = 6.023e+23*1.e-3*XRTMIN_AQ -WHERE (TPK%LWR >= XRTMIN_AQ) - TPK%MOL2MOLECRAIN = 6.023e+23*1.e-3*TPK%LWR -END WHERE -!pH calculation if required -IF (PRESENT(PPH)) THEN - TPK%PHC(:)=PPH(:,1) - CALL CH_SET_PH(KOUT,KMI,KVECNPT,PCONC,TPK%PHC(:),KVERB,2) ! pH cloud water -! TPK%PHC(:) = 0.01*TPK%PHC(:) + 0.99*PPH(:,1) ! apply a strong filter - PPH(:,1) = TPK%PHC(:) - IF (KRRL>=2) THEN - TPK%PHR(:)=PPH(:,2) - CALL CH_SET_PH(KOUT,KMI,KVECNPT,PCONC,TPK%PHR(:),KVERB,3) ! pH rain water -! TPK%PHR(:) = 0.01*TPK%PHR(:) + 0.99*PPH(:,2) ! apply a strong filter - PPH(:,2) = TPK%PHR(:) - ENDIF -ELSE - IF (.NOT.TPK%LCH_PH) TPK%PHC = XCH_PHINIT - IF (KRRL>=2) THEN - IF (.NOT.TPK%LCH_PH) TPK%PHR = XCH_PHINIT - ENDIF -ENDIF -! -TPK%RCH = 0.08206 ! R in atm M-1 K-1 -TPK%W_O2 = 1.3E-3*exp(-1500.*(1./TPK%T-1./298.15))*TPK%RCH*TPK%T*TPK%O2*1.e3/6.023e+23 -! -!...VARIABLE STOICHIOMETRIC COEFFICIENTS... -! EQUIVALENT TO CF1 through CF36, CF39 THROUGH CF47 -! P. Tulet from R. Griffin -! (B01) ALD2 IN ETOH + OH-> -! (B02) RO22 IN ETOH + OH-> -! (B03) ALKL (ALK NIT) IN RO25 + NO-> -! (B04) ALD2 (NO->NO2) IN RO25 + NO-> -! (B05) OLEL (OLE NIT) IN RO29 + NO-> -! (B06) HCHO (NO->NO2) IN RO29 + NO-> -! (B07) OLEL (OLE NIT) IN RO214 + NO-> -! (B08) RO27 (NO->NO2) IN RO214 + NO-> -! (B09) ALD2 IN RO215 + NO-> -! (B10) HCHO IN RO215 + NO-> -! (B11) MEK IN RO215 + NO-> -! (B12) ALKL IN RO215 + NO-> -! (B13) ALD2 IN RO215 + RO2T-> -! (B14) HCHO IN RO215 + RO2T-> -! (B15) MEK IN RO215 + RO2T-> -! (B16) ALKL IN RO215 + RO2T-> -! (B17) AP3 (ALK NIT) IN RO220 + NO-> -! (B18) RO218(NO->NO2) IN RO220 + NO-> -! (B19) AP2 (ALK NIT) IN RO218 + NO-> -! (B20) UR16 (NO->NO2) IN RO218 + NO-> -! (B21) AP1 (ALK NIT) IN RO217 + NO-> -! (B22) RPR2 (NO->NO2) IN RO217 + NO-> -! (B23) AP4 (ALK NIT) IN RO221 + NO-> -! (B24) BALD (NO->NO2) IN RO221 + NO-> -! (B25) AP7 (ALK NIT) IN RO224 + NO-> -! (B26) RPR3 (NO->NO2) IN RO224 + NO-> -! (B27) AP8 (ALK NIT) IN RO227 + NO-> -! (B28) UR7 (NO->NO2) IN RO227 + NO-> -! (B29) AP9 (ALK NIT) IN RO229 + NO-> -! (B30) RO240(NO->NO2) IN RO229 + NO-> -! (B31) AP10 (ALK NIT) IN RO231 + NO-> -! (B32) UR19 (NO->NO2) IN RO231 + NO-> -! (B33) AP11 (ALK NIT) IN RO232 + NO-> -! (B34) RO241(NO->NO2) IN RO232 + NO-> -! (B35) AP12 (ALK NIT) IN RO241 + NO-> -! (B36) UR16 (NO->NO2) IN RO241 + NO-> -! (B39) OH ATTACK OF CHO IN BALD -! (B40) RADICAL IN BALD/OH REACTION -! (B41) AP5 (ALK NIT) IN RO222 + NO-> -! (B42) RPR6 (NO->NO2) IN RO222 + NO-> -! (B43) AP6 (ALK NIT) IN RO223 + NO-> -! (B44) RPR7 (NO->NO2) IN RO223 + NO-> -! (B45) SIDE CHAIN ATTACK OF BALD -! (B46) ALDEHYDIC ATTACK IN MCR -! (B47) DOUBLE BOND ATTACK IN MCR - - TPK%CF1 = 0. - TPK%CF2 = 0. - TPK%CF3 = 0. - TPK%CF4 = 0. - TPK%CF5 = 0. - TPK%CF6 = 0. - TPK%CF7 = 0. - TPK%CF8 = 0. - TPK%CF9 = 0. - TPK%CF10 = 0. - TPK%CF11 = 0. - TPK%CF12 = 0. - TPK%CF13 = 0. - TPK%CF14 = 0. - TPK%CF15 = 0. - TPK%CF16 = 0. - TPK%CF17 = 0. - TPK%CF18 = 0. - TPK%CF19 = 0. - TPK%CF20 = 0. - TPK%CF21 = 0. - TPK%CF22 = 0. - TPK%CF23 = 0. - TPK%CF24 = 0. - TPK%CF25 = 0. - TPK%CF26 = 0. - TPK%CF27 = 0. - TPK%CF28 = 0. - TPK%CF29 = 0. - TPK%CF30 = 0. - TPK%CF31 = 0. - TPK%CF32 = 0. - TPK%CF33 = 0. - TPK%CF34 = 0. - TPK%CF35 = 0. - TPK%CF36 = 0. - TPK%CF37 = 0. - TPK%CF38 = 0. - TPK%CF39 = 0. - TPK%CF40 = 0. - TPK%CF41 = 0. - TPK%CF42 = 0. - TPK%CF43 = 0. - TPK%CF44 = 0. - TPK%CF45 = 0. - TPK%CF46 = 0. - TPK%CF47 = 0. - TPK%CF48 = 0. - TPK%CF49 = 0. - - A = 4.49E-18 - B = -320.0 - C = 4.5E-18 - D = 253.0 - E = 61.69 - F = 2.12E-18 - G = 696.0 - H = 2.10E-18 - I = -85.0 - J = 373.32 - K = -85.73 - L= 2.63E-11 - P = 2.22E-11 - Q = 8.69E-11 - V = 1.1E-10 - S = 5.2E-13 - W = 6.4E-11 - T = 3.6E-13 - U = -959.23 - ! - -TPK%CF1 = (C*EXP(D/TPK%T)*EXP(J/TPK%T)+ H*EXP(I/TPK%T)*EXP(E/TPK%T))& - /(A*EXP(B/TPK%T)*EXP(E/TPK%T) + & - C*EXP(D/TPK%T)*EXP(J/TPK%T) + H*EXP(I/TPK%T)*EXP(E/TPK%T)) - -TPK%CF2 = 1.0 - TPK%CF1 - A = 1.94E-22 - B = 0.97 - NC = 3.0 - YI300 = 0.826 - Y300 = A*EXP(B*NC) - MINF = 8.1 - F = 0.411 - C = 0.4 - - HF3 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & - **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & - (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) - ! -TPK%CF3= HF3/(1.0+HF3) -TPK%CF4= 1.0 - TPK%CF3 - ! - NC = 5.0 - C = 0.3 - Y300 = A*EXP(B*NC) - HF5 = 0.5 + 0.5*(C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/ & - (TPK%T/300.0)**(-1.*MINF)))*F**(1.0/(1.0+(LOG10 & - (Y300*TPK%M/YI300/(TPK%T/300.0)**(-1.*MINF))) & - **2))) - ! -TPK%CF5 = HF5/(1.0+HF5) -TPK%CF6 = 1 - TPK%CF5 - ! - NC = 3.0 - Y300 = A*EXP(B*NC) - HF7 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & - **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & - (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) - -TPK%CF7 = HF7/(1.0+HF7) -TPK%CF8 = 1.0 - TPK%CF7 - ! -TPK%CF9 = 0.2 -TPK%CF10 = 0.4 -TPK%CF11 = 0.2 -TPK%CF12 = 1.0 - TPK%CF9 - TPK%CF10 - TPK%CF11 - ! -TPK%CF13 = TPK%CF9 -TPK%CF14 = TPK%CF10 -TPK%CF15 = TPK%CF11 -TPK%CF16 = 1.0 - TPK%CF13 - TPK%CF14 - TPK%CF15 - ! - NC = 8.0 - C = 1.0 - Y300 = A*EXP(NC*B) - HF17 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & - **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & - (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) - ! -TPK%CF17 = HF17/(1.0+HF17) -TPK%CF18 = 1.0 - TPK%CF17 - ! - HF19 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & - **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & - (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) - ! -TPK%CF19 = HF19/(1.0+HF19) -TPK%CF20 = 1.0 - TPK%CF19 - ! - C = 0.40 - HF21 = 0.4*(C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & - **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & - (TPK%T/300.0)**(-1.*MINF)))**2)**(-1))+1.0-0.4 - ! -TPK%CF21 = HF21/(1.0 + HF21) -TPK%CF22 = 1.0 - TPK%CF21 - ! - NC = 9.0 - Y300 = A*EXP(NC*B) - HF23 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & - **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & - (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) - ! -TPK%CF23 = HF23/(1.0 + HF23) -TPK%CF24 = 1.0 - TPK%CF23 - ! - NC = 10.0 - Y300 = A*EXP(B*NC) - C = 0.3 - HF25 = 0.5*(C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & - **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & - (TPK%T/300.0)**(-1.*MINF)))**2)**(-1)) + 0.5 - ! -TPK%CF25 = HF25/(1.0 + HF25) -TPK%CF26 = 1.0 - TPK%CF25 - ! - HF27 = 0.5*(C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & - **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & - (TPK%T/300.0)**(-1.*MINF)))**2)**(-1)) + 0.5 - ! -TPK%CF27 = HF27/(1+HF27) -TPK%CF28 = 1.0 - TPK%CF27 - ! - NC = 9.0 - Y300 = A*EXP(B*NC) - C = 0.4 - HF29 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & - **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & - (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) - ! -TPK%CF29 = HF29/(1.0 + HF29) -TPK%CF30 = 1.0 - TPK%CF29 - ! - NC = 12.0 - Y300 = A*EXP(B*NC) - HF31 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & - **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & - (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) - ! -TPK%CF31 = HF31/(1.0 + HF31) -TPK%CF32 = 1.0 - TPK%CF31 - ! - NC = 16.0 - Y300 = A*EXP(B*NC) - C = 1.0 - ! - HF33 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & - **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & - (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) - ! -TPK%CF33 = HF33/(1.0 + HF33) -TPK%CF34 = 1.0 - TPK%CF33 - ! - HF35 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & - **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & - (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) - ! -TPK%CF35 = HF35/(1.0 + HF35) -TPK%CF36 = 1.0 - TPK%CF35 - ! -TPK%CF39 = 2.22E-11/(2.22E-11 + 7.66E-12 + (4.49E-18 * & - TPK%T *TPK%T * EXP(-320.0/TPK%T))) -TPK%CF45 = 4.49E-18*TPK%T*TPK%T*EXP(-320.0/TPK%T) & - /(2.22E-11 + 7.66E-12 + (4.49E-18 * & - TPK%T *TPK%T * EXP(-320.0/TPK%T))) -TPK%CF40 = 0.84 - TPK%CF39 - TPK%CF45 - ! - NC = 8.0 - Y300 = A*EXP(B*NC) - C = 0.4 - HF41 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & - **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & - (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) - ! -TPK%CF41 = HF41/(1.0 + HF41) -TPK%CF42 = 1.0 - TPK%CF41 - ! - ! - HF43 = C*(Y300*TPK%M)/(1.0+(Y300*TPK%M/YI300/(TPK%T/300.0) & - **(-1.*MINF)))*F**(1.0+(LOG10(Y300*TPK%M/YI300/ & - (TPK%T/300.0)**(-1.*MINF)))**2)**(-1) - ! -TPK%CF43 = HF43/(1.0 + HF43) -TPK%CF44 = 1.0 - TPK%CF43 - ! -TPK%CF46 = 2.22E-11/(2.22E-11 + 5.14E-11) -TPK%CF47 = 1.0 - TPK%CF46 - - ! for reaction 82: H2O stochiometric coef -TPK%CF48 = .16 - TPK%CF39 -TPK%CF49 = TPK%CF39 + TPK%CF45 - -TPK%CF1 = MAX(0., TPK%CF1) -TPK%CF2 = MAX(0., TPK%CF2) -TPK%CF3 = MAX(0., TPK%CF3) -TPK%CF4 = MAX(0., TPK%CF4) -TPK%CF5 = MAX(0., TPK%CF5) -TPK%CF6 = MAX(0., TPK%CF6) -TPK%CF7 = MAX(0., TPK%CF7) -TPK%CF8 = MAX(0., TPK%CF8) -TPK%CF9 = MAX(0., TPK%CF9) -TPK%CF10 = MAX(0., TPK%CF10) -TPK%CF11 = MAX(0., TPK%CF11) -TPK%CF12 = MAX(0., TPK%CF12) -TPK%CF13 = MAX(0., TPK%CF13) -TPK%CF14 = MAX(0., TPK%CF14) -TPK%CF15 = MAX(0., TPK%CF15) -TPK%CF16 = MAX(0., TPK%CF16) -TPK%CF17 = MAX(0., TPK%CF17) -TPK%CF18 = MAX(0., TPK%CF18) -TPK%CF19 = MAX(0., TPK%CF19) -TPK%CF20 = MAX(0., TPK%CF20) -TPK%CF21 = MAX(0., TPK%CF21) -TPK%CF22 = MAX(0., TPK%CF22) -TPK%CF23 = MAX(0., TPK%CF23) -TPK%CF24 = MAX(0., TPK%CF24) -TPK%CF25 = MAX(0., TPK%CF25) -TPK%CF26 = MAX(0., TPK%CF26) -TPK%CF27 = MAX(0., TPK%CF27) -TPK%CF28 = MAX(0., TPK%CF28) -TPK%CF29 = MAX(0., TPK%CF29) -TPK%CF30 = MAX(0., TPK%CF30) -TPK%CF31 = MAX(0., TPK%CF31) -TPK%CF32 = MAX(0., TPK%CF32) -TPK%CF33 = MAX(0., TPK%CF33) -TPK%CF34 = MAX(0., TPK%CF34) -TPK%CF35 = MAX(0., TPK%CF35) -TPK%CF36 = MAX(0., TPK%CF36) -TPK%CF37 = MAX(0., TPK%CF37) -TPK%CF38 = MAX(0., TPK%CF38) -TPK%CF39 = MAX(0., TPK%CF39) -TPK%CF40 = MAX(0., TPK%CF40) -TPK%CF41 = MAX(0., TPK%CF41) -TPK%CF42 = MAX(0., TPK%CF42) -TPK%CF43 = MAX(0., TPK%CF43) -TPK%CF44 = MAX(0., TPK%CF44) -TPK%CF45 = MAX(0., TPK%CF45) -TPK%CF46 = MAX(0., TPK%CF46) -TPK%CF47 = MAX(0., TPK%CF47) -TPK%CF48 = MAX(0., TPK%CF48) -TPK%CF49 = MAX(0., TPK%CF49) - - -TPK%CFA2 = 0.9983609 *TPK%CF22 -TPK%CFA3 = 1.0000000 *TPK%CF19 -TPK%CFA4 = 1.0000000 *TPK%CF17 -TPK%CFA5 = 1.0000000 *TPK%CF23 -TPK%CFA6 = 1.0000000 *TPK%CF41 -TPK%CFA7 = 0.9983609 *TPK%CF42 -TPK%CFA9 = 1.0000000 *TPK%CF44 -TPK%CFA10 = TPK%CF26 -TPK%CFA12 = 0.3*TPK%CF28 -TPK%CFA13 = 1.0000000 *TPK%CF29 -TPK%CFA14 = 0.9999996 *TPK%CF33 -TPK%CFA15 = 0.9999996 *TPK%CF35 -TPK%CFA16 = 0.9999996 *TPK%CF36 -TPK%CFA17 = 0.8808107 *TPK%CF46 -TPK%CFA18 = 0.0000000E+00 *TPK%CF47 -TPK%CFA19 = TPK%CF6 -TPK%CFA20 = 1.0000005 *TPK%CF46 -TPK%CFA21 = 1.0000005 *TPK%CF46 -TPK%CFA22 = 0.5021558 *TPK%CF47 -TPK%CFA23 = 1.0000000 *TPK%CF25 -TPK%CFA24 = 1.0000000 *TPK%CF46 -! -! -! the following prints will be erased -IF (KVERB >= 15) THEN - WRITE(KOUT,*) "CH_SET_RATES: the following variables have been updated" - WRITE(KOUT,*) "MODELLEVEL: ", TPK%MODELLEVEL(1) - WRITE(KOUT,*) "M: ", TPK%M(1) , "molec/cm3" - WRITE(KOUT,*) "T: ", TPK%T(1) , "K" - WRITE(KOUT,*) "H2O ", TPK%H2O(1) , "molec/cm3" - WRITE(KOUT,*) "CLOUDWATER: ", TPK%CLOUDWATER(1) , "kg/kg" - WRITE(KOUT,*) "LATITUDE: ", TPK%LAT(1) , "degree" - WRITE(KOUT,*) "LONGITUDE: ", TPK%LON(1) , "degree" - WRITE(KOUT,*) "YEAR: ", TPK%YEAR(1) - WRITE(KOUT,*) "MONTH: ", TPK%MONTH(1) - WRITE(KOUT,*) "DAY: ", TPK%DAY(1) - WRITE(KOUT,*) "RAINWATER: ", TPK%RAINWATER(1) , "kg/kg" - WRITE(KOUT,*) "RHODREF: ", TPK%RHODREF(1) , "kg/m3" - WRITE(KOUT,*) "PRESSURE: ", TPK%PRESSURE(1) , "atm" - WRITE(KOUT,*) "O2: ", TPK%O2(1) , "molec/cm3" - WRITE(KOUT,*) "N2: ", TPK%N2(1) , "molec/cm3" - WRITE(KOUT,*) "H2: ", TPK%H2(1) , "molec/cm3" - WRITE(KOUT,*) "CO2: ", TPK%CO2(1) , "molec/cm3" - WRITE(KOUT,*) "LWC: ", TPK%LWC(1) , "m3/m3" - WRITE(KOUT,*) "RADC: ", TPK%RADC(1) , "m" - WRITE(KOUT,*) "PHC: ", TPK%PHC(1) - WRITE(KOUT,*) "LWR: ", TPK%LWR(1) , "m3/m3" - WRITE(KOUT,*) "RADR: ", TPK%RADR(1) , "m" - WRITE(KOUT,*) "PHR: ", TPK%PHR(1) - WRITE(KOUT,*) "W_O2: ", TPK%W_O2(1) , "M" -END IF -! -! /END_SET_RATES/ -CALL SUBSRG0 -CALL SUBSRG1 -CALL SUBSRG2 -CALL SUBSRG3 -CALL SUBSRG4 -CALL SUBSRG5 -CALL SUBSRG6 -CALL SUBSRG7 -CALL SUBSRG8 -CALL SUBSRG9 -CALL SUBSRG10 -CALL SUBSRG11 -CALL SUBSRG12 -CALL SUBSRG13 -CALL SUBSRG14 -CALL SUBSRG15 -CALL SUBSRG16 -CALL SUBSRG17 -CALL SUBSRG18 -CALL SUBSRG19 -CALL SUBSRG20 -CALL SUBSRG21 -CALL SUBSRG22 -CALL SUBSRG23 -CALL SUBSRG24 -CALL SUBSRG25 -CALL SUBSRG26 -CALL SUBSRG27 -CALL SUBSRG28 -CALL SUBSRG29 -CALL SUBSRG30 -CALL SUBSRG31 -CALL SUBSRG32 -CALL SUBSRG33 -CALL SUBSRG34 -CALL SUBSRG35 -CALL SUBSRG36 -IF (TPK%LUSECHAQ) THEN - CALL SUBSRW0 - CALL SUBSRW1 - CALL SUBSRW2 - CALL SUBSRW3 - CALL SUBSRW4 - CALL SUBSRW5 - CALL SUBSRW6 - CALL SUBSRW7 - CALL SUBSRW8 - CALL SUBSRW9 - CALL SUBSRW10 - CALL SUBSRW11 - CALL SUBSRW12 - CALL SUBSRW13 - CALL SUBSRW14 - CALL SUBSRW15 - CALL SUBSRW16 - CALL SUBSRW17 - CALL SUBSRW18 - CALL SUBSRW19 - CALL SUBSRW20 - CALL SUBSRW21 -END IF -TPK%NOUT = KOUT -TPK%NVERB(:) = KVERB -RETURN - -CONTAINS - -SUBROUTINE SUBSRG0 -! -!Indices 1 a 10 -! - TPK%K002=TPK%M*5.60E-34*(TPK%T/300)**(-2.6) - TPK%K003=6.5E-12*EXP(119.8/TPK%T) - TPK%K004=TROE(1.,9.0E-32,2.,2.2E-11,0.,0.8,TPK%M,TPK%T,KVECNPT) - TPK%K005=1.8E-12*EXP(-1368.9/TPK%T) - TPK%K006=1.4E-13*EXP(-2471.1/TPK%T) - TPK%K007=1.8E-11*EXP(110.7/TPK%T) - TPK%K008=5.09E-18/TPK%T*EXP(528.4/TPK%T) - TPK%K009=TROE(1.,2.8E-30,3.5,2.0E-12,0.2,0.45,TPK%M,TPK%T,KVECNPT) - TPK%K010=TROE_EQUIL(2.8E-30,3.5,2.0E-12,0.2,3.70E+26,11000.0,0.45,TPK%M,TPK%T,& -&KVECNPT) -! -RETURN -END SUBROUTINE SUBSRG0 -! -SUBROUTINE SUBSRG1 -! -!Indices 11 a 20 -! - TPK%K011=2.59E-22 - TPK%K012=4.5E-14*EXP(-1258.2/TPK%T) - TPK%K017=2.2E-10 - TPK%K018A=1.80E-11*exp(-(-110.0/TPK%T)) - TPK%K018B=3.20E-11*exp(-(-70.0/TPK%T)) - TPK%K019=TROE(1.,7.0E-31,2.6,3.6E-11,0.1,0.6,TPK%M,TPK%T,KVECNPT) -! -RETURN -END SUBROUTINE SUBSRG1 -! -SUBROUTINE SUBSRG2 -! -!Indices 21 a 30 -! - TPK%K021=4.0E-24 - TPK%K022=TROE(1.,2.85E-30,2.67,3.13E-11,0.,0.6,TPK%M,TPK%T,KVECNPT) - TPK%K023=TROE_KA(7.2E-15,785.1,4.1E-16,1439.4,1.9E-33,724.7,TPK%M,TPK%T,KVECNP& -&T) - TPK%K024=TROE_KB(1.3E-13,0.,3.19E-33,0.,TPK%M,TPK%T,KVECNPT) - TPK%K025=1.9E-12*EXP(-1001.5/TPK%T) - TPK%K026=3.41E-12*EXP(271.8/TPK%T) - TPK%K027=TROE(1.,1.8E-31,3.2,4.7E-12,0.,0.6,TPK%M,TPK%T,KVECNPT) - TPK%K028=TROE_EQUIL(1.8E-31,3.2,4.7E-12,0.,4.76E+26,10900.,0.6,TPK%M,TPK%T,KVE& -&CNPT) - TPK%K029=1.5E-12*EXP(362.4/TPK%T) -! -RETURN -END SUBROUTINE SUBSRG2 -! -SUBROUTINE SUBSRG3 -! -!Indices 31 a 40 -! - TPK%K030=1.4E-14*EXP(-598.9/TPK%T) - TPK%K031=TROE_KB(2.2E-13,598.9,1.85E-33,981.4,TPK%M,TPK%T,KVECNPT) - TPK%K032=TROE_KB(3.08E-34,2798.2,2.59E-54,3180.7,TPK%M,TPK%T,KVECNPT) - TPK%K033=4.0E-12 - TPK%K034=8.0E-12*EXP(-2058.4/TPK%T) - TPK%K035=TROE(1.,4.1E-31,3.3,2.0E-12,0.,0.45,TPK%M,TPK%T,KVECNPT) - TPK%K037=2.91E-12*EXP(-161/TPK%T) - TPK%K038=TROE(1.,9.00E-32,1.5,3.00E-11,0.0,0.6,TPK%M,TPK%T,KVECNPT) - TPK%K039=2.7E-12*EXP(261.7/TPK%T) -! -RETURN -END SUBROUTINE SUBSRG3 -! -SUBROUTINE SUBSRG4 -! -!Indices 41 a 50 -! - TPK%K040=2.0E-11 - TPK%K041=8.5E-13*EXP(-2450.9/TPK%T) - TPK%K042=4.8E-11*EXP(251.6/TPK%T) - TPK%K043=2.66E-12*EXP(-1800.2/TPK%T) - TPK%K046=1.2E-14*TPK%T*EXP(286.9/TPK%T) - TPK%K047=2.0E-12*EXP(-2430.8/TPK%T) - TPK%K048=6.0E-18*TPK%T**2*EXP(170.1/TPK%T) - TPK%K049=1.96E-12*EXP(437.8/TPK%T) -! -RETURN -END SUBROUTINE SUBSRG4 -! -SUBROUTINE SUBSRG5 -! -!Indices 51 a 60 -! - TPK%K050=4.89E-18*TPK%T**2*EXP(-2282.3/TPK%T) - TPK%K051=9.14E-15*EXP(-2580.3/TPK%T) - TPK%K052=7.3E-13 - TPK%K053=6.18E-18*TPK%T**2*EXP(532/TPK%T) - TPK%K054=5.86E-12*EXP(500.3/TPK%T) - TPK%K055=1.0E-13*EXP(-800.2/TPK%T) - TPK%K056=1.0E-17 - TPK%K057=4.66E-12 - TPK%K058=3.91E-12 -! -RETURN -END SUBROUTINE SUBSRG5 -! -SUBROUTINE SUBSRG6 -! -!Indices 61 a 70 -! - TPK%K060=6.91E-12*EXP(250/TPK%T) - TPK%K061=3.0E-13*EXP(-1427/TPK%T) - TPK%K062=4.91E-12 - TPK%K064=2.55E-11*EXP(410.2/TPK%T) - TPK%K065=3.02E-12*EXP(-445.9/TPK%T) - TPK%K066=7.86E-15*EXP(-1912.9/TPK%T) - TPK%K067=3.5E-11 - TPK%K068=3.2E-12 - TPK%K069=1.28E-11 -! -RETURN -END SUBROUTINE SUBSRG6 -! -SUBROUTINE SUBSRG7 -! -!Indices 71 a 80 -! - TPK%K070=5.1E-12 - TPK%K072=3.77E-12 - TPK%K073=2.264E-10 - TPK%K074=3.47E-11 - TPK%K075=3.47E-11*1.0E-13*EXP(-800.2/TPK%T)/(5.86E-12*EXP(500.3/TPK%T)) - TPK%K076=3.47E-11*1.0E-17/(5.86E-12*EXP(500.3/TPK%T)) - TPK%K077=3.47E-11*4.66E-12/(5.86E-12*EXP(500.3/TPK%T)) - TPK%K078=1.03E-11 - TPK%K079=3.27E-11 -! -RETURN -END SUBROUTINE SUBSRG7 -! -SUBROUTINE SUBSRG8 -! -!Indices 81 a 90 -! - TPK%K080=1.52E-11 - TPK%K081=1.4E-12*EXP(-1872.2/TPK%T) - TPK%K082=1.29E-11 - TPK%K083=1.1E-12 - TPK%K084=1.7E-10 - TPK%K085=1.46E-11 - TPK%K086=2.5E-16 - TPK%K087=1.7E-10*4.66E-12/(5.86E-12*EXP(500.3/TPK%T)) - TPK%K088=1.77E-10 - TPK%K089=2.91E-11 -! -RETURN -END SUBROUTINE SUBSRG8 -! -SUBROUTINE SUBSRG9 -! -!Indices 91 a 100 -! - TPK%K090=1.4E-16 - TPK%K091=8.59E-11 - TPK%K092=7.7E-11 - TPK%K093=1.97E-11 - TPK%K094=3.41E-13*EXP(800.2/TPK%T) - TPK%K095=4.2E-12*EXP(181.2/TPK%T) - TPK%K096=1.0E-15 - TPK%K097=0.9*7.7E5/TPK%T - TPK%K098=0.9*7.7E5/TPK%T - TPK%K099=0.9*7.7E5/TPK%T -! -RETURN -END SUBROUTINE SUBSRG9 -! -SUBROUTINE SUBSRG10 -! -!Indices 101 a 110 -! - TPK%K100=0.9*7.7E5/TPK%T - TPK%K101=0.9*7.7E5/TPK%T - TPK%K102=0.9*7.7E5/TPK%T - TPK%K103=1.7*3.0E-11 - TPK%K104=1.7*3.0E-11 - TPK%K105=1.7*3.0E-11 - TPK%K106=1.7*3.0E-11 - TPK%K107=1.7*3.0E-11 - TPK%K108=1.7*3.0E-11 - TPK%K109=1.7*3.0E-11 -! -RETURN -END SUBROUTINE SUBSRG10 -! -SUBROUTINE SUBSRG11 -! -!Indices 111 a 120 -! - TPK%K110=4.09E-12*EXP(180.2/TPK%T) - TPK%K111=1.0E-15 - TPK%K112=3.41E-13*EXP(800.2/TPK%T) - TPK%K113=2.45E-12*EXP(180.2/TPK%T) - TPK%K114=1.0E-15 - TPK%K115=3.41E-13*EXP(800.2/TPK%T) - TPK%K116=2.45E-12*EXP(180.2/TPK%T) - TPK%K117=1.0E-15 - TPK%K118=3.41E-13*EXP(800.2/TPK%T) - TPK%K119=3.45E-12*EXP(180.2/TPK%T) -! -RETURN -END SUBROUTINE SUBSRG11 -! -SUBROUTINE SUBSRG12 -! -!Indices 121 a 130 -! - TPK%K120=1.0E-15 - TPK%K121=3.41E-13*EXP(800.2/TPK%T) - TPK%K122=2.91E-12*EXP(180.2/TPK%T) - TPK%K123=1.0E-15 - TPK%K124=3.41E-13*EXP(800.2/TPK%T) - TPK%K125=1.11E-11*EXP(180.2/TPK%T) - TPK%K126=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) - TPK%K127=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) - TPK%K128=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) - TPK%K129=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) -! -RETURN -END SUBROUTINE SUBSRG12 -! -SUBROUTINE SUBSRG13 -! -!Indices 131 a 140 -! - TPK%K130=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) - TPK%K131=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) - TPK%K132=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) - TPK%K133=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) - TPK%K134=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) - TPK%K135=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& -&ECNPT) - TPK%K136=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& -&ECNPT) - TPK%K137=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& -&ECNPT) - TPK%K138=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& -&ECNPT) - TPK%K139=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& -&ECNPT) -! -RETURN -END SUBROUTINE SUBSRG13 -! -SUBROUTINE SUBSRG14 -! -!Indices 141 a 150 -! - TPK%K140=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& -&ECNPT) - TPK%K141=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& -&ECNPT) - TPK%K142=3.41E-13*EXP(800.2/TPK%T)/3.5 - TPK%K143=1.0E-15 - TPK%K144=2.45E-12*EXP(180.2/TPK%T) - TPK%K145=1.0E-15 - TPK%K146=3.41E-13*EXP(800.2/TPK%T) - TPK%K147=1.11E-11*EXP(180.2/TPK%T) - TPK%K148=3.41E-13*EXP(800.2/TPK%T)/3.5 - TPK%K149=1.0E-15 -! -RETURN -END SUBROUTINE SUBSRG14 -! -SUBROUTINE SUBSRG15 -! -!Indices 151 a 160 -! - TPK%K150=2.08E-12*EXP(180.2/TPK%T) - TPK%K151=1.0E-15 - TPK%K152=3.41E-13*EXP(800.2/TPK%T) - TPK%K153=2.08E-12*EXP(180.2/TPK%T) - TPK%K154=1.0E-15 - TPK%K155=3.41E-13*EXP(800.2/TPK%T) - TPK%K156=2.08E-12*EXP(180.2/TPK%T) - TPK%K157=1.0E-15 - TPK%K158=3.41E-13*EXP(800.2/TPK%T) - TPK%K159=2.08E-12*EXP(180.2/TPK%T) -! -RETURN -END SUBROUTINE SUBSRG15 -! -SUBROUTINE SUBSRG16 -! -!Indices 161 a 170 -! - TPK%K160=1.0E-15 - TPK%K161=3.41E-13*EXP(800.2/TPK%T) - TPK%K162=2.45E-12*EXP(180.2/TPK%T) - TPK%K163=1.0E-15 - TPK%K164=3.41E-13*EXP(800.2/TPK%T) - TPK%K165=1.11E-11*EXP(180.2/TPK%T) - TPK%K166=3.41E-13*EXP(800.2/TPK%T)/3.5 - TPK%K167=1.0E-15 - TPK%K168=2.91E-12*EXP(180.2/TPK%T) - TPK%K169=1.0E-15 -! -RETURN -END SUBROUTINE SUBSRG16 -! -SUBROUTINE SUBSRG17 -! -!Indices 171 a 180 -! - TPK%K170=3.41E-13*EXP(800.2/TPK%T) - TPK%K171=2.08E-12*EXP(180.2/TPK%T) - TPK%K172=1.0E-15 - TPK%K173=3.41E-13*EXP(800.2/TPK%T) - TPK%K174=1.48E-12*EXP(180.2/TPK%T) - TPK%K175=1.0E-15 - TPK%K176=3.41E-13*EXP(800.2/TPK%T) - TPK%K177=1.25E-12*EXP(180.2/TPK%T) - TPK%K178=1.0E-15 - TPK%K179=3.41E-13*EXP(800.2/TPK%T) -! -RETURN -END SUBROUTINE SUBSRG17 -! -SUBROUTINE SUBSRG18 -! -!Indices 181 a 190 -! - TPK%K180=1.25E-12*EXP(180.2/TPK%T) - TPK%K181=1.0E-15 - TPK%K182=3.41E-13*EXP(800.2/TPK%T) - TPK%K183=1.05E-12*EXP(180.2/TPK%T) - TPK%K184=1.0E-15 - TPK%K185=3.41E-13*EXP(800.2/TPK%T) - TPK%K186=1.25E-12*EXP(180.2/TPK%T) - TPK%K187=1.0E-15 - TPK%K188=3.41E-13*EXP(800.2/TPK%T) - TPK%K189=1.05E-12*EXP(180.2/TPK%T) -! -RETURN -END SUBROUTINE SUBSRG18 -! -SUBROUTINE SUBSRG19 -! -!Indices 191 a 200 -! - TPK%K190=1.0E-15 - TPK%K191=3.41E-13*EXP(800.2/TPK%T) - TPK%K192=1.25E-12*EXP(180.2/TPK%T) - TPK%K193=1.0E-15 - TPK%K194=3.41E-13*EXP(800.2/TPK%T) - TPK%K195=1.25E-12*EXP(180.2/TPK%T) - TPK%K196=1.0E-15 - TPK%K197=3.41E-13*EXP(800.2/TPK%T) - TPK%K198=8.89E-13*EXP(180.2/TPK%T) - TPK%K199=1.0E-15 -! -RETURN -END SUBROUTINE SUBSRG19 -! -SUBROUTINE SUBSRG20 -! -!Indices 201 a 210 -! - TPK%K200=3.41E-13*EXP(800.2/TPK%T) - TPK%K201=8.89E-13*EXP(180.2/TPK%T) - TPK%K202=1.0E-15 - TPK%K203=3.41E-13*EXP(800.2/TPK%T) - TPK%K204=8.89E-13*EXP(180.2/TPK%T) - TPK%K205=1.0E-15 - TPK%K206=3.41E-13*EXP(800.2/TPK%T) - TPK%K207=8.89E-13*EXP(180.2/TPK%T) - TPK%K208=1.0E-15 - TPK%K209=3.41E-13*EXP(800.2/TPK%T) -! -RETURN -END SUBROUTINE SUBSRG20 -! -SUBROUTINE SUBSRG21 -! -!Indices 211 a 220 -! - TPK%K210=8.89E-13*EXP(180.2/TPK%T) - TPK%K211=1.0E-15 - TPK%K212=3.41E-13*EXP(800.2/TPK%T) - TPK%K213=1.05E-12*EXP(180.2/TPK%T) - TPK%K214=1.0E-15 - TPK%K215=3.41E-13*EXP(800.2/TPK%T) - TPK%K216=1.05E-12*EXP(180.2/TPK%T) - TPK%K217=1.0E-15 - TPK%K218=3.41E-13*EXP(800.2/TPK%T) - TPK%K219=1.0E-15 -! -RETURN -END SUBROUTINE SUBSRG21 -! -SUBROUTINE SUBSRG22 -! -!Indices 221 a 230 -! - TPK%K220=3.41E-13*EXP(800.2/TPK%T) - TPK%K221=6.32E-13*EXP(180.2/TPK%T) - TPK%K222=1.0E-15 - TPK%K223=3.41E-13*EXP(800.2/TPK%T) - TPK%K224=3.2E-13*EXP(180.2/TPK%T) - TPK%K225=1.0E-15 - TPK%K226=3.41E-13*EXP(800.2/TPK%T) - TPK%K227=3.2E-13*EXP(180.2/TPK%T) - TPK%K228=1.0E-15 - TPK%K229=3.41E-13*EXP(800.2/TPK%T) -! -RETURN -END SUBROUTINE SUBSRG22 -! -SUBROUTINE SUBSRG23 -! -!Indices 231 a 240 -! - TPK%K230=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T) - TPK%K231=1.25E-12*EXP(180.2/TPK%T) - TPK%K232=1.0E-15 - TPK%K233=3.41E-13*EXP(800.2/TPK%T) - TPK%K234=1.25E-12*EXP(180.2/TPK%T) - TPK%K235=1.0E-15 - TPK%K236=3.41E-13*EXP(800.2/TPK%T) - TPK%K237=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T) - TPK%K238=1.05E-12*EXP(180.2/TPK%T) - TPK%K239=1.0E-15 -! -RETURN -END SUBROUTINE SUBSRG23 -! -SUBROUTINE SUBSRG24 -! -!Indices 241 a 250 -! - TPK%K240=3.41E-13*EXP(800.2/TPK%T) - TPK%K241=1.05E-12*EXP(180.2/TPK%T) - TPK%K242=1.0E-15 - TPK%K243=3.41E-13*EXP(800.2/TPK%T) - TPK%K244=1.1*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T) - TPK%K245=8.89E-13*EXP(180.2/TPK%T) - TPK%K246=1.0E-15 - TPK%K247=3.41E-13*EXP(800.2/TPK%T) - TPK%K248=8.89E-13*EXP(180.2/TPK%T) - TPK%K249=1.0E-15 -! -RETURN -END SUBROUTINE SUBSRG24 -! -SUBROUTINE SUBSRG25 -! -!Indices 251 a 260 -! - TPK%K250=3.41E-13*EXP(800.2/TPK%T) - TPK%K251=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T) - TPK%K252=1.25E-12*EXP(180.2/TPK%T) - TPK%K253=1.0E-15 - TPK%K254=3.41E-13*EXP(800.2/TPK%T) - TPK%K255=1.25E-12*EXP(180.2/TPK%T) - TPK%K256=1.0E-15 - TPK%K257=3.41E-13*EXP(800.2/TPK%T) - TPK%K258=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T) - TPK%K259=1.25E-12*EXP(180.2/TPK%T) -! -RETURN -END SUBROUTINE SUBSRG25 -! -SUBROUTINE SUBSRG26 -! -!Indices 261 a 270 -! - TPK%K260=1.0E-15 - TPK%K261=3.41E-13*EXP(800.2/TPK%T) - TPK%K262=1.25E-12*EXP(180.2/TPK%T) - TPK%K263=1.0E-15 - TPK%K264=3.41E-13*EXP(800.2/TPK%T) - TPK%K265=1.2*1.64E+42/(TPK%T**11.4)*EXP(-9460/TPK%T) - TPK%K266=6.32E-13*EXP(180.2/TPK%T) - TPK%K267=1.0E-15 - TPK%K268=3.41E-13*EXP(800.2/TPK%T) - TPK%K269=6.32E-13*EXP(180.2/TPK%T) -! -RETURN -END SUBROUTINE SUBSRG26 -! -SUBROUTINE SUBSRG27 -! -!Indices 271 a 280 -! - TPK%K270=1.0E-15 - TPK%K271=3.41E-13*EXP(800.2/TPK%T) - TPK%K272=4.14E-12*EXP(452.9/TPK%T) - TPK%K273=1.86E-11*EXP(176.1/TPK%T) - TPK%K274=1.72E-11 - TPK%K275=1.5E-12*EXP(-1726.2/TPK%T) - TPK%K277=1.11E-11*EXP(180.2/TPK%T) - TPK%K278=1.4E-12*EXP(-1897.3/TPK%T) - TPK%K279=3.41E-13*EXP(800.2/TPK%T)/3.5 -! -RETURN -END SUBROUTINE SUBSRG27 -! -SUBROUTINE SUBSRG28 -! -!Indices 281 a 290 -! - TPK%K280=1.0E-15 - TPK%K281=7.5E-16*EXP(-1519.9/TPK%T) - TPK%K282=1.36E-15*EXP(-2113.7/TPK%T) - TPK%K283=4.32E-12 - TPK%K284=6.34E-12 - TPK%K285=2.45E-12*EXP(180.2/TPK%T) - TPK%K286=1.0E-15 - TPK%K287=3.41E-13*EXP(800.2/TPK%T) - TPK%K288=1.11E-11*EXP(180.2/TPK%T) - TPK%K289=3.41E-13*EXP(800.2/TPK%T)/3.5 -! -RETURN -END SUBROUTINE SUBSRG28 -! -SUBROUTINE SUBSRG29 -! -!Indices 291 a 300 -! - TPK%K290=1.0E-15 - TPK%K291=2.45E-12*EXP(180.2/TPK%T) - TPK%K292=3.41E-13*EXP(800.2/TPK%T) - TPK%K293=1.0E-15 - TPK%K294=2.45E-12*EXP(180.2/TPK%T) - TPK%K295=3.41E-13*EXP(800.2/TPK%T) - TPK%K296=1.0E-15 - TPK%K297=2.91E-12*EXP(180.2/TPK%T) - TPK%K298=3.41E-13*EXP(800.2/TPK%T) - TPK%K299=1.0E-15 -! -RETURN -END SUBROUTINE SUBSRG29 -! -SUBROUTINE SUBSRG30 -! -!Indices 301 a 310 -! - TPK%K300=1.11E-11*EXP(180.2/TPK%T) - TPK%K301=3.41E-13*EXP(800.2/TPK%T)/3.5 - TPK%K302=1.0E-15 - TPK%K303=1.29E-11 - TPK%K304=3.54E-11 - TPK%K305=1.72E-11 - TPK%K306=1.2940467E-11 - TPK%K307=3.0E-13*EXP(-1427/TPK%T)*3.54E-11/(6.91E-12*EXP(250/TPK%T)) - TPK%K309=1.11E-11*EXP(180.2/TPK%T) -! -RETURN -END SUBROUTINE SUBSRG30 -! -SUBROUTINE SUBSRG31 -! -!Indices 311 a 320 -! - TPK%K310=3.41E-13*EXP(800.2/TPK%T)/3.5 - TPK%K311=1.0E-15 - TPK%K312=4.24E-11 - TPK%K313=3.0E-13*EXP(-1427/TPK%T)*4.24E-11/(6.91E-12*EXP(250/TPK%T)) - TPK%K315=1.11E-11*EXP(180.2/TPK%T) - TPK%K316=TROE(1.,9.7E-29,5.6,9.3E-12,1.5,0.6,TPK%M,TPK%T,KVECNPT) - TPK%K317=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& -&ECNPT) - TPK%K318=3.41E-13*EXP(800.2/TPK%T)/3.5 - TPK%K319=1.0E-15 -! -RETURN -END SUBROUTINE SUBSRG31 -! -SUBROUTINE SUBSRG32 -! -!Indices 321 a 330 -! - TPK%K320=3.77E-12 - TPK%K321=2.30E-11*EXP(151.0/TPK%T) - TPK%K322=1.29E-11 - TPK%K323=1.3918362E-10 - TPK%K324=1.145E-10 - TPK%K325=1.098E-10 - TPK%K326=1.964E-10 - TPK%K327=3.0E-13*EXP(-1427/TPK%T)*1.145E-10/(6.91E-12*EXP(250/TPK%T)) -! -RETURN -END SUBROUTINE SUBSRG32 -! -SUBROUTINE SUBSRG33 -! -!Indices 331 a 340 -! - TPK%K331=1.11E-11*EXP(180.2/TPK%T) - TPK%K332=3.41E-13*EXP(800.2/TPK%T)/3.5 - TPK%K333=1.0E-15 - TPK%K334=2.4131647E-10 - TPK%K335=2.1923330E-10 - TPK%K337=1.97E-10 - TPK%K338=1.4E-12*EXP(-1897.3/TPK%T) - TPK%K340=1.11E-11*EXP(180.2/TPK%T) -! -RETURN -END SUBROUTINE SUBSRG33 -! -SUBROUTINE SUBSRG34 -! -!Indices 341 a 350 -! - TPK%K341=3.41E-13*EXP(800.2/TPK%T) - TPK%K342=1.0E-15 - TPK%K343=TROE_EQUIL(9.7E-29,5.6,9.3E-12,1.5,1.16E+28,13954.,0.6,TPK%M,TPK%T,KV& -&ECNPT) - TPK%K344=8.89E-13*EXP(180.2/TPK%T) - TPK%K345=3.30E-12*exp(-(900.0/TPK%T)) - TPK%K346=1.00E-40 - TPK%K347=4.50E-13 - TPK%K348=6.00E-13 - TPK%K349=1.20E-12 - TPK%K350=1.00E-40 -! -RETURN -END SUBROUTINE SUBSRG34 -! -SUBROUTINE SUBSRG35 -! -!Indices 351 a 360 -! - TPK%K351=1.00E-40 - TPK%K352=1.00E-40 - TPK%K353=1.00E-40 - TPK%K354=1.00E-40 - TPK%K355=1.00E-40 - TPK%K356=1.00E-40 - TPK%K357=1.00E-40 - TPK%K358=1.00E-40 - TPK%K359=1.00E-40 - TPK%K360=1.00E-40 -! -RETURN -END SUBROUTINE SUBSRG35 -! -SUBROUTINE SUBSRG36 -! -!Indices 361 a 365 -! - TPK%K361=1.00E-40 - TPK%K362=1.00E-40 - TPK%K363=1.00E-40 - TPK%K364=1.00E-40 - TPK%K365=1.00E-40 -! -RETURN -END SUBROUTINE SUBSRG36 -! -SUBROUTINE SUBSRW0 -! -!Indices 366 a 375 -! - TPK%KTC1=KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC2=KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC3=KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC4=KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC5=KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC6=KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC7=KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC8=KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC9=KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC10=KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC -! -RETURN -END SUBROUTINE SUBSRW0 -! -SUBROUTINE SUBSRW1 -! -!Indices 376 a 385 -! - TPK%KTC11=KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC12=KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC13=KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC14=KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC15=KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC16=KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC17=KT(0.05,75.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC18=KT(0.027,32.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC19=KT(0.017,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC20=KT(0.011,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC -! -RETURN -END SUBROUTINE SUBSRW1 -! -SUBROUTINE SUBSRW2 -! -!Indices 386 a 395 -! - TPK%KTC21=KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC22=KT(0.03,44.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC23=KT(0.01,58.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC24=KT(0.008,58.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC25=KT(0.0003,72.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC26=KT(0.023,46.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC27=KT(0.032,60.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC28=KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC29=KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC30=KT(0.05,88.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC -! -RETURN -END SUBROUTINE SUBSRW2 -! -SUBROUTINE SUBSRW3 -! -!Indices 396 a 405 -! - TPK%KTC31=KT(0.05,90.,TPK%T,TPK%RADC,KVECNPT)*TPK%LWC - TPK%KTC32=KT(0.05,48.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.1e-2,-2830.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTC33=KT(0.11,34.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(7.73e4,-7310.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTC34=KT(0.0001,30.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.92e-3,-1790.,TPK%T,KV& -&ECNPT)*TPK%RCH*TPK%T) - TPK%KTC35=KT(0.0015,46.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.4e-2,-2516.,TPK%T,KVE& -&CNPT)*TPK%RCH*TPK%T) - TPK%KTC36=KT(0.05,62.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.8e-2,-8707.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTC37=KT(0.0037,108.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(2.1e0,-3400.,TPK%T,KVE& -&CNPT)*TPK%RCH*TPK%T) - TPK%KTC38=KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(5.0e1,-4880.,1.6e-3,1760.& -&,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC39=KT(0.054,63.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(2.1e5,-8700.,2.2e1,0.,0.& -&,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC40=KT(0.05,79.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(1.2e4,-6900.,1.26e-6,0.,0& -&.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) -! -RETURN -END SUBROUTINE SUBSRW3 -! -SUBROUTINE SUBSRW4 -! -!Indices 406 a 415 -! - TPK%KTC41=KT(0.04,17.,TPK%T,TPK%RADC,KVECNPT)/(HEFFB(6.02e1,-4160.,1.7e-5,4350& -&.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC42=KT(0.05,17.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.9e1,0.,TPK%T,KVECNPT)*T& -&PK%RCH*TPK%T) - TPK%KTC43=KT(0.2,30.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(6.9e2,-6643.,1.6e-5,0.,0.,& -&0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC44=KT(0.0002,44.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(3.4e-2,-2710.,4.3e-7,92& -&0.,4.7e-11,1780.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC45=KT(0.11,64.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(1.36,-2930.,1.3e-2,-1965.& -&,6.4e-8,-1430.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC46=KT(0.07,98.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(2.1e5,-8700.,1.0e3,0.,1.0& -&e-2,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC47=KT(0.05,47.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(2.7e0,0.,TPK%T,KVECNPT)*T& -&PK%RCH*TPK%T) - TPK%KTC48=KT(0.05,75.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(7.5e1,0.,TPK%T,KVECNPT)*T& -&PK%RCH*TPK%T) - TPK%KTC49=KT(0.027,32.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(2.2e2,-5210.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTC50=KT(0.017,46.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.9e2,-6600.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) -! -RETURN -END SUBROUTINE SUBSRW4 -! -SUBROUTINE SUBSRW5 -! -!Indices 416 a 425 -! - TPK%KTC51=KT(0.011,60.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.3e2,-7500.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTC52=KT(0.04,30.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.23e3,-7100.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTC53=KT(0.03,44.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(1.29e1,-5890.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTC54=KT(0.01,58.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.6e5,0.,TPK%T,KVECNPT)*T& -&PK%RCH*TPK%T) - TPK%KTC55=KT(0.008,58.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(2.81e1,-5050.,TPK%T,KVEC& -&NPT)*TPK%RCH*TPK%T) - TPK%KTC56=KT(0.0003,72.,TPK%T,TPK%RADC,KVECNPT)/(HENRY(3.7e3,0.,TPK%T,KVECNPT)& -&*TPK%RCH*TPK%T) - TPK%KTC57=KT(0.023,46.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(8.9e3,-6100.,1.8e-4,150.& -&,0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC58=KT(0.032,60.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(4.1e3,-6200.,1.75e-5,0.,& -&0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC59=KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(5.7e3,0.,1.35e-5,0.,0.,0.& -&,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC60=KT(0.05,74.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(9.0e3,0.,3.2e-4,0.,0.,0.,& -&TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) -! -RETURN -END SUBROUTINE SUBSRW5 -! -SUBROUTINE SUBSRW6 -! -!Indices 426 a 435 -! - TPK%KTC61=KT(0.05,88.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(3.11e5,-5090.,3.55e-3,0.,& -&0.,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTC62=KT(0.05,90.,TPK%T,TPK%RADC,KVECNPT)/(HEFFA(5.0e8,0.,5.6e-2,0.,5.4e-5& -&,0.,TPK%PHC,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR1=KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR2=KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR3=KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR4=KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR5=KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR6=KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR7=KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR8=KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR -! -RETURN -END SUBROUTINE SUBSRW6 -! -SUBROUTINE SUBSRW7 -! -!Indices 436 a 445 -! - TPK%KTR9=KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR10=KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR11=KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR12=KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR13=KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR14=KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR15=KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR16=KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR17=KT(0.05,75.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR18=KT(0.027,32.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR -! -RETURN -END SUBROUTINE SUBSRW7 -! -SUBROUTINE SUBSRW8 -! -!Indices 446 a 455 -! - TPK%KTR19=KT(0.017,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR20=KT(0.011,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR21=KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR22=KT(0.03,44.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR23=KT(0.01,58.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR24=KT(0.008,58.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR25=KT(0.0003,72.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR26=KT(0.023,46.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR27=KT(0.032,60.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR28=KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR -! -RETURN -END SUBROUTINE SUBSRW8 -! -SUBROUTINE SUBSRW9 -! -!Indices 456 a 465 -! - TPK%KTR29=KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR30=KT(0.05,88.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR31=KT(0.05,90.,TPK%T,TPK%RADR,KVECNPT)*TPK%LWR - TPK%KTR32=KT(0.05,48.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.1e-2,-2830.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTR33=KT(0.11,34.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(7.73e4,-7310.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTR34=KT(0.0001,30.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.92e-3,-1790.,TPK%T,KV& -&ECNPT)*TPK%RCH*TPK%T) - TPK%KTR35=KT(0.0015,46.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.4e-2,-2516.,TPK%T,KVE& -&CNPT)*TPK%RCH*TPK%T) - TPK%KTR36=KT(0.05,62.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.8e-2,-8707.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTR37=KT(0.0037,108.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(2.1e0,-3400.,TPK%T,KVE& -&CNPT)*TPK%RCH*TPK%T) - TPK%KTR38=KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(5.0e1,-4880.,1.6e-3,1760.& -&,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) -! -RETURN -END SUBROUTINE SUBSRW9 -! -SUBROUTINE SUBSRW10 -! -!Indices 466 a 475 -! - TPK%KTR39=KT(0.054,63.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(2.1e5,-8700.,2.2e1,0.,0.& -&,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR40=KT(0.05,79.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(1.2e4,-6900.,1.26e-6,0.,0& -&.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR41=KT(0.04,17.,TPK%T,TPK%RADR,KVECNPT)/(HEFFB(6.02e1,-4160.,1.7e-5,4350& -&.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR42=KT(0.05,17.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.9e1,0.,TPK%T,KVECNPT)*T& -&PK%RCH*TPK%T) - TPK%KTR43=KT(0.2,30.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(6.9e2,-6643.,1.6e-5,0.,0.,& -&0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR44=KT(0.0002,44.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(3.4e-2,-2710.,4.3e-7,92& -&0.,4.7e-11,1780.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR45=KT(0.11,64.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(1.36,-2930.,1.3e-2,-1965.& -&,6.4e-8,-1430.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR46=KT(0.07,98.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(2.1e5,-8700.,1.0e3,0.,1.0& -&e-2,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR47=KT(0.05,47.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(2.7e0,0.,TPK%T,KVECNPT)*T& -&PK%RCH*TPK%T) - TPK%KTR48=KT(0.05,75.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(7.5e1,0.,TPK%T,KVECNPT)*T& -&PK%RCH*TPK%T) -! -RETURN -END SUBROUTINE SUBSRW10 -! -SUBROUTINE SUBSRW11 -! -!Indices 476 a 485 -! - TPK%KTR49=KT(0.027,32.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(2.2e2,-5210.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTR50=KT(0.017,46.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.9e2,-6600.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTR51=KT(0.011,60.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.3e2,-7500.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTR52=KT(0.04,30.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.23e3,-7100.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTR53=KT(0.03,44.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(1.29e1,-5890.,TPK%T,KVECN& -&PT)*TPK%RCH*TPK%T) - TPK%KTR54=KT(0.01,58.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.6e5,0.,TPK%T,KVECNPT)*T& -&PK%RCH*TPK%T) - TPK%KTR55=KT(0.008,58.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(2.81e1,-5050.,TPK%T,KVEC& -&NPT)*TPK%RCH*TPK%T) - TPK%KTR56=KT(0.0003,72.,TPK%T,TPK%RADR,KVECNPT)/(HENRY(3.7e3,0.,TPK%T,KVECNPT)& -&*TPK%RCH*TPK%T) - TPK%KTR57=KT(0.023,46.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(8.9e3,-6100.,1.8e-4,150.& -&,0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR58=KT(0.032,60.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(4.1e3,-6200.,1.75e-5,0.,& -&0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) -! -RETURN -END SUBROUTINE SUBSRW11 -! -SUBROUTINE SUBSRW12 -! -!Indices 486 a 495 -! - TPK%KTR59=KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(5.7e3,0.,1.35e-5,0.,0.,0.& -&,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR60=KT(0.05,74.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(9.0e3,0.,3.2e-4,0.,0.,0.,& -&TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR61=KT(0.05,88.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(3.11e5,-5090.,3.55e-3,0.,& -&0.,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KTR62=KT(0.05,90.,TPK%T,TPK%RADR,KVECNPT)/(HEFFA(5.0e8,0.,5.6e-2,0.,5.4e-5& -&,0.,TPK%PHR,TPK%T,KVECNPT)*TPK%RCH*TPK%T) - TPK%KC2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD - TPK%KC3=((2.8E+10*10.**(-TPK%PHC)+3.5E+10*exp(-720.*(1./TPK%T-1./298.15))*1.6e& -&-5)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD - TPK%KC4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD - TPK%KC5=((8.3E+5*exp(-2700.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHC))**2.+9.6E+7& -&*exp(-910.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*1.6e-5)/(1.6e-5+10.**(-TPK%PH& -&C))**2.)/TPK%MOL2MOLECCLOUD - TPK%KC6=(1.5E+9*exp(-1500.*(1./TPK%T-1./298.15))*1.6e-5/(1.6e-5+10.**(-TPK%PHC& -&)))/TPK%MOL2MOLECCLOUD -! -RETURN -END SUBROUTINE SUBSRW12 -! -SUBROUTINE SUBSRW13 -! -!Indices 496 a 505 -! - TPK%KC7=(2.7E+9*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.3e-2& -&*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2& -&*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%M& -&OL2MOLECCLOUD - TPK%KC8=(1.0E+10*10.**(-TPK%PHC)/(1.6e-3*exp(-1760.*(1./TPK%T-1./298.15))+10.*& -&*(-TPK%PHC)))/TPK%MOL2MOLECCLOUD - TPK%KC9=((1.8E+9*10.**(-TPK%PHC)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-TPK%PHC)))/TPK%& -&MOL2MOLECCLOUD - TPK%KC10=2.6E-2*10.**(-TPK%PHC)/(1.26e-6+10.**(-TPK%PHC)) - TPK%KC11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHC)) - TPK%KC12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHC))**2./& -&((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)& -&)+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.& -&)*(1.26e-6+10.**(-TPK%PHC))))/TPK%MOL2MOLECCLOUD - TPK%KC14=1.0E+10 - TPK%KC15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK%PHC)+(10.**(-T& -&PK%PHC))**2.))/TPK%MOL2MOLECCLOUD - TPK%KC16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1& -&./298.15))*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(& -&1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%& -&PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD -! -RETURN -END SUBROUTINE SUBSRW13 -! -SUBROUTINE SUBSRW14 -! -!Indices 506 a 515 -! - TPK%KC17=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-& -&1./298.15))*10.**(-TPK%PHC)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.15))*1.3e-2*exp& -&(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/((1.3e-2*& -&exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*& -&exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.)*(1.+2.5& -&e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECCLOUD - TPK%KC18=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*EXP(-6716*(1./T& -&PK%T-1./298.15))/10.**(-TPK%PHC) - TPK%KC19=3.0E+8/TPK%MOL2MOLECCLOUD - TPK%KC20=1.1E+9 - TPK%KC21=(1.7E+9*10.**(-TPK%PHC)/(1.6e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD - TPK%KC22=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD - TPK%KC23=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)*10.**(& -&-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1& -&./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%& -&PHC))**2.))/TPK%MOL2MOLECCLOUD - TPK%KC24=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15)) - TPK%KC25=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-& -&1./298.15))*10.**(-TPK%PHC)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.15))*1.3e-2*exp& -&(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/(1.3e-2*e& -&xp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*e& -&xp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL& -&2MOLECCLOUD - TPK%KC26=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1& -&./298.15))*10.**(-TPK%PHC)*10.**(-TPK%PHC)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.& -&15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.& -&15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD -! -RETURN -END SUBROUTINE SUBSRW14 -! -SUBROUTINE SUBSRW15 -! -!Indices 516 a 525 -! - TPK%KC27=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD - TPK%KC28=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.3e-& -&2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-& -&2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%& -&MOL2MOLECCLOUD - TPK%KC29=1.5E+8/TPK%MOL2MOLECCLOUD - TPK%KC30=(1.7E+9*exp(-600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD - TPK%KC31=(2.1E+9*exp(-1200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD - TPK%KC32=(3.3E+9*exp(-1000.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD - TPK%KC33=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(4030.*(1./TPK%T-1.& -&/298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2MOLECCLOUD - TPK%KC34=3.4E+9/TPK%MOL2MOLECCLOUD - TPK%KC35=(1.1E+9*exp(-1500.*(1./TPK%T-1./298.15))*3.9e3/(1.+3.9e3))/TPK%MOL2MO& -&LECCLOUD - TPK%KC36=(7.9E+8*exp(-1600.*(1./TPK%T-1./298.15))*4.86e2/(1.+4.86e2))/TPK%MOL2& -&MOLECCLOUD -! -RETURN -END SUBROUTINE SUBSRW15 -! -SUBROUTINE SUBSRW16 -! -!Indices 526 a 535 -! - TPK%KC37=(8.9E+8*exp(-1400.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECCLOUD - TPK%KC38=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+3.4E+9*exp(& -&-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.15)))/(1.8e-4*ex& -&p(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD - TPK%KC39=((1.5E+7*exp(-1300.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+1.0E+8*exp(& -&-1800.*(1./TPK%T-1./298.15))*1.75e-5)/(1.75e-5+10.**(-TPK%PHC)))/TPK%MOL2MOLEC& -&CLOUD - TPK%KC40=(3.2E+8*exp(-2300.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(1.35e-5+10.& -&**(-TPK%PHC)))/TPK%MOL2MOLECCLOUD - TPK%KC41=(7.3E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.35e-5/(1.35e-5+10.**(-TPK%& -&PHC)))/TPK%MOL2MOLECCLOUD - TPK%KC42=((4.7E+7*10.**(-TPK%PHC)*5.6E-2+7.7E+6*5.6E-2*5.4e-5)/(5.6E-2*5.4E-5+& -&5.4E-5*10.**(-TPK%PHC)+(10.**(-TPK%PHC))**2.))/TPK%MOL2MOLECCLOUD - TPK%KC43=((1.2E+8*exp(-2800.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)+7.0E+8*exp(& -&-2300.*(1./TPK%T-1./298.15))*3.55E-3)/(3.55E-3+10.**(-TPK%PHC)))/TPK%MOL2MOLEC& -&CLOUD - TPK%KC44=(3.6E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHC)/(10.**(-TPK%& -&PHC)+3.2E-4))/TPK%MOL2MOLECCLOUD - TPK%KC45=(2.6E+9*exp(-4300.*(1./TPK%T-1./298.15))*3.2E-4/(10.**(-TPK%PHC)+3.2E& -&-4))/TPK%MOL2MOLECCLOUD - TPK%KC46=1.6E+7/TPK%MOL2MOLECCLOUD -! -RETURN -END SUBROUTINE SUBSRW16 -! -SUBROUTINE SUBSRW17 -! -!Indices 536 a 545 -! - TPK%KR2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN - TPK%KR3=((2.8E+10*10.**(-TPK%PHR)+3.5E+10*exp(-720.*(1./TPK%T-1./298.15))*1.6e& -&-5)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN - TPK%KR4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN - TPK%KR5=((8.3E+5*exp(-2700.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHR))**2.+9.6E+7& -&*exp(-910.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*1.6e-5)/(1.6e-5+10.**(-TPK%PH& -&R))**2.)/TPK%MOL2MOLECRAIN - TPK%KR6=(1.5E+9*exp(-1500.*(1./TPK%T-1./298.15))*1.6e-5/(1.6e-5+10.**(-TPK%PHR& -&)))/TPK%MOL2MOLECRAIN - TPK%KR7=(2.7E+9*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.3e-2& -&*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2& -&*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%M& -&OL2MOLECRAIN - TPK%KR8=(1.0E+10*10.**(-TPK%PHR)/(1.6e-3*exp(-1760.*(1./TPK%T-1./298.15))+10.*& -&*(-TPK%PHR)))/TPK%MOL2MOLECRAIN - TPK%KR9=((1.8E+9*10.**(-TPK%PHR)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-TPK%PHR)))/TPK%& -&MOL2MOLECRAIN - TPK%KR10=2.6E-2*10.**(-TPK%PHR)/(1.26e-6+10.**(-TPK%PHR)) -! -RETURN -END SUBROUTINE SUBSRW17 -! -SUBROUTINE SUBSRW18 -! -!Indices 546 a 555 -! - TPK%KR11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHR)) - TPK%KR12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHR))**2./& -&((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)& -&)+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.& -&)*(1.26e-6+10.**(-TPK%PHR))))/TPK%MOL2MOLECRAIN - TPK%KR14=1.0E+10 - TPK%KR15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK%PHR)+(10.**(-T& -&PK%PHR))**2.))/TPK%MOL2MOLECRAIN - TPK%KR16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1& -&./298.15))*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(& -&1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%& -&PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN - TPK%KR17=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-& -&1./298.15))*10.**(-TPK%PHR)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.15))*1.3e-2*exp& -&(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/((1.3e-2*& -&exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*& -&exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.)*(1.+2.5& -&e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECRAIN - TPK%KR18=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*EXP(-6716*(1./T& -&PK%T-1./298.15))/10.**(-TPK%PHR) - TPK%KR19=3.0E+8/TPK%MOL2MOLECRAIN - TPK%KR20=1.1E+9 -! -RETURN -END SUBROUTINE SUBSRW18 -! -SUBROUTINE SUBSRW19 -! -!Indices 556 a 565 -! - TPK%KR21=(1.7E+9*10.**(-TPK%PHR)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN - TPK%KR22=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN - TPK%KR23=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*10.**(& -&-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1& -&./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%& -&PHR))**2.))/TPK%MOL2MOLECRAIN - TPK%KR24=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15)) - TPK%KR25=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-& -&1./298.15))*10.**(-TPK%PHR)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.15))*1.3e-2*exp& -&(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/(1.3e-2*e& -&xp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*e& -&xp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL& -&2MOLECRAIN - TPK%KR26=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1& -&./298.15))*10.**(-TPK%PHR)*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.& -&15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.& -&15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN - TPK%KR27=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN - TPK%KR28=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.3e-& -&2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-& -&2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%& -&MOL2MOLECRAIN - TPK%KR29=1.5E+8/TPK%MOL2MOLECRAIN - TPK%KR30=(1.7E+9*exp(-600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN -! -RETURN -END SUBROUTINE SUBSRW19 -! -SUBROUTINE SUBSRW20 -! -!Indices 566 a 575 -! - TPK%KR31=(2.1E+9*exp(-1200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN - TPK%KR32=(3.3E+9*exp(-1000.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN - TPK%KR33=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(4030.*(1./TPK%T-1.& -&/298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2MOLECRAIN - TPK%KR34=3.4E+9/TPK%MOL2MOLECRAIN - TPK%KR35=(1.1E+9*exp(-1500.*(1./TPK%T-1./298.15))*3.9e3/(1.+3.9e3))/TPK%MOL2MO& -&LECRAIN - TPK%KR36=(7.9E+8*exp(-1600.*(1./TPK%T-1./298.15))*4.86e2/(1.+4.86e2))/TPK%MOL2& -&MOLECRAIN - TPK%KR37=(8.9E+8*exp(-1400.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN - TPK%KR38=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+3.4E+9*exp(& -&-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.15)))/(1.8e-4*ex& -&p(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN - TPK%KR39=((1.5E+7*exp(-1300.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+1.0E+8*exp(& -&-1800.*(1./TPK%T-1./298.15))*1.75e-5)/(1.75e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLEC& -&RAIN - TPK%KR40=(3.2E+8*exp(-2300.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.35e-5+10.& -&**(-TPK%PHR)))/TPK%MOL2MOLECRAIN -! -RETURN -END SUBROUTINE SUBSRW20 -! -SUBROUTINE SUBSRW21 -! -!Indices 576 a 581 -! - TPK%KR41=(7.3E+8*exp(-1800.*(1./TPK%T-1./298.15))*1.35e-5/(1.35e-5+10.**(-TPK%& -&PHR)))/TPK%MOL2MOLECRAIN - TPK%KR42=((4.7E+7*10.**(-TPK%PHR)*5.6E-2+7.7E+6*5.6E-2*5.4e-5)/(5.6E-2*5.4E-5+& -&5.4E-5*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN - TPK%KR43=((1.2E+8*exp(-2800.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+7.0E+8*exp(& -&-2300.*(1./TPK%T-1./298.15))*3.55E-3)/(3.55E-3+10.**(-TPK%PHR)))/TPK%MOL2MOLEC& -&RAIN - TPK%KR44=(3.6E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(10.**(-TPK%& -&PHR)+3.2E-4))/TPK%MOL2MOLECRAIN - TPK%KR45=(2.6E+9*exp(-4300.*(1./TPK%T-1./298.15))*3.2E-4/(10.**(-TPK%PHR)+3.2E& -&-4))/TPK%MOL2MOLECRAIN - TPK%KR46=1.6E+7/TPK%MOL2MOLECRAIN -! -RETURN -END SUBROUTINE SUBSRW21 -! -END SUBROUTINE CH_SET_RATES -! -! -!======================================================================== -! -!! ############################## - MODULE MODI_CH_SET_PHOTO_RATES -!! ############################## -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -INTERFACE -SUBROUTINE CH_SET_PHOTO_RATES(PTIME,PCONC,KL,TPM,KMI,KOUT,KVERB,KVECNPT,KVECMASK,KEQ,PJVALUES) -USE MODD_CH_M9_n, ONLY: METEOTRANSTYPE -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT,KL,KEQ,KMI -INTEGER, DIMENSION(:,:), INTENT(IN) :: KVECMASK -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -TYPE(METEOTRANSTYPE), DIMENSION(KVECNPT), INTENT(IN) :: TPM -INTEGER, INTENT(IN) :: KOUT,KVERB -REAL,DIMENSION(:,:,:,:), INTENT(IN) :: PJVALUES ! Tuv coefficient -END SUBROUTINE CH_SET_PHOTO_RATES -END INTERFACE -END MODULE MODI_CH_SET_PHOTO_RATES -! -!======================================================================== -! -!! ############################################################# - SUBROUTINE CH_SET_PHOTO_RATES(PTIME,PCONC,KL,TPM,KMI,KOUT,KVERB,KVECNPT,KVECMASK,KEQ,PJVALUES) -!! ############################################################# -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -!!*** *MODD_CH_SET_PHOTO_RATES* -!! -!! PURPOSE -!! ------- -! set or calculate photolysis rates -!! -!!** METHOD -!! ------ -!! simple -!! -!! REFERENCE -!! --------- -!! none -!! -!! AUTHOR -!! ------ -!! Karsten Suhre (LA) -!! -!! MODIFICATIONS -!! ------------- -!! Original 26/07/96 -!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) -!! Modified 29/03/01: Vectorization + nesting (C. Mari) -!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) -!! -!!---------------------------------------------------------------------- -!! -!! EXTERNAL -!! -------- -!! none -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -USE MODD_CH_M9_SCHEME -USE MODD_CH_M9_n, ONLY : METEOTRANSTYPE -USE MODI_CH_ALLOCATE_TACCS -! USER DEFINED FUNCTIONS -USE MODI_KT -USE MODI_TROE -USE MODI_TROE_KA -USE MODI_TROE_KB -USE MODI_HENRY -USE MODI_TROE_EQUIL -USE MODI_HEFFA -USE MODI_HEFFB -!! -!! EXPLICIT ARGUMENTS -!! ------------------ -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT,KL,KEQ,KMI -INTEGER, DIMENSION(:,:), INTENT(IN) :: KVECMASK -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -TYPE(METEOTRANSTYPE), DIMENSION(KVECNPT), INTENT(IN) :: TPM -INTEGER, INTENT(IN) :: KOUT,KVERB -REAL,DIMENSION(:,:,:,:), INTENT(IN) :: PJVALUES ! Tuv coefficient -!! -! /BEGIN_SET_PHOTO_RATES/ -! parameter for use by subroutine JVALUES, -! contains the actual photolysis rates -REAL, DIMENSION(KVECNPT,42) :: ZRATESIO ! TUV photolysis rates at one level -REAL, DIMENSION(KVECNPT,25) :: ZRATES ! photolysis rates of ReLACS3 (vector) -INTEGER :: JITPK ! loop counter for J-Value transfer -INTEGER :: IDTI,IDTJ -INTEGER :: JITPKPLUS -INTEGER, DIMENSION(KVECNPT) :: ITABI, ITABJ -INTEGER, DIMENSION(KVECNPT) :: IMODELLEVEL -TYPE(CCSTYPE), POINTER :: TPK -! -! Normally allocated in CH_SET_RATES but who knows ? -IF (.NOT. ASSOCIATED(TACCS(KMI)%NVERB)) THEN - CALL CH_ALLOCATE_TACCS(KMI, KVECNPT) -END IF -! -! TPK is set for current model -TPK=>TACCS(KMI) -! -! calculation of photolysis rates and transfer into local variables -! -IDTI=KVECMASK(2,KL)-KVECMASK(1,KL)+1 -IDTJ=KVECMASK(4,KL)-KVECMASK(3,KL)+1 -DO JITPK = 0, KVECNPT-1 -! - JITPKPLUS=JITPK+1 - ITABI(JITPKPLUS)=JITPK-IDTI*(JITPK/IDTI)+KVECMASK(1,KL) - ITABJ(JITPKPLUS)=JITPK/IDTI-IDTJ*(JITPK/(IDTI*IDTJ))+KVECMASK(3,KL) -! -! modification for VPP optimization - ZRATESIO(JITPK+1,:) = PJVALUES(ITABI(JITPKPLUS),ITABJ(JITPKPLUS),TPK%MODELLEVEL(JITPK+1),:) -ENDDO -! -! -DO JITPK = 0, KVECNPT-1 -! -! associate TUV J-Values to CACM J-Values -! update 03/2018 new TUV version and new data availables -! - ZRATES(JITPK+1, 1) = ZRATESIO(JITPK+1,5) - ZRATES(JITPK+1, 2) = ZRATESIO(JITPK+1,2) - ZRATES(JITPK+1, 3) = ZRATESIO(JITPK+1,3) - ZRATES(JITPK+1, 4) = ZRATESIO(JITPK+1,8) - ZRATES(JITPK+1, 7) = ZRATESIO(JITPK+1,6) - ZRATES(JITPK+1, 8) = ZRATESIO(JITPK+1,7) - ZRATES(JITPK+1, 9) = ZRATESIO(JITPK+1,4) - ZRATES(JITPK+1, 10) = ZRATESIO(JITPK+1,12) - ZRATES(JITPK+1, 11) = ZRATESIO(JITPK+1,11) -! ALD2 data available for propionaldehyde - ZRATES(JITPK+1, 12) = ZRATESIO(JITPK+1,16) -! KETH use data for 2-pentanone - ZRATES(JITPK+1, 16) = ZRATESIO(JITPK+1,39) -! MGLY use data for methylglyoxal - ZRATES(JITPK+1, 19) = ZRATESIO(JITPK+1,37) - ZRATES(JITPK+1, 23) = ZRATESIO(JITPK+1,39) -! -! aqueous phase photolysis - ZRATES(JITPK+1, 24) = ZRATESIO(JITPK+1,41) - ZRATES(JITPK+1, 25) = ZRATESIO(JITPK+1,42) -! -END DO -! -! /END_SET_PHOTO_RATES/ - TPK%K001=ZRATES(:,001) - TPK%K013=ZRATES(:,007) - TPK%K014=ZRATES(:,008) - TPK%K015=ZRATES(:,003) - TPK%K016=ZRATES(:,002) - TPK%K020=ZRATES(:,004) - TPK%K036=ZRATES(:,009) - TPK%K044=ZRATES(:,011) - TPK%K045=ZRATES(:,010) - TPK%K059=ZRATES(:,012) - TPK%K063=ZRATES(:,023) - TPK%K071=ZRATES(:,016) - TPK%K276=ZRATES(:,019) - TPK%K308=ZRATES(:,012) - TPK%K314=ZRATES(:,012) - TPK%K328=ZRATES(:,012) - TPK%K329=ZRATES(:,012) - TPK%K330=ZRATES(:,012) - TPK%K339=ZRATES(:,019) -IF (TPK%LUSECHAQ) THEN - TPK%KC1=ZRATES(:,024) - TPK%KC13=ZRATES(:,025)*2.2e+1/(2.2e+1+10.**(-TPK%PHC)) - TPK%KR1=ZRATES(:,024) - TPK%KR13=ZRATES(:,025)*2.2e+1/(2.2e+1+10.**(-TPK%PHR)) -END IF -TPK%NOUT = KOUT -TPK%NVERB = KVERB -RETURN -END SUBROUTINE CH_SET_PHOTO_RATES -! -! -!======================================================================== -! -!! ######################## - MODULE MODI_CH_GET_RATES -!! ######################## -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -INTERFACE -SUBROUTINE CH_GET_RATES(PRATE,KMI,KVECNPT,KREAC) -IMPLICIT NONE -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KREAC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KREAC) :: PRATE -INTEGER, INTENT(IN) :: KMI -END SUBROUTINE CH_GET_RATES -END INTERFACE -END MODULE MODI_CH_GET_RATES -! -!======================================================================== -! -!! ############################################ - SUBROUTINE CH_GET_RATES(PRATE,KMI,KVECNPT,KREAC) -!! ############################################ -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -!! -!!*** *MODD_CH_GETRATES* -!! -!! PURPOSE -!! ------- -! retrieve reaction rates from TPK in an array -!! -!!** METHOD -!! ------ -!! simple -!! -!! REFERENCE -!! --------- -!! none -!! -!! AUTHOR -!! ------ -!! Karsten Suhre (LA) -!! -!! MODIFICATIONS -!! ------------- -!! Original 26/07/96 -!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) -!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) -!! -!!---------------------------------------------------------------------- -!! -!! EXTERNAL -!! -------- -!! none -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -USE MODD_CH_M9_SCHEME -!! -!! EXPLICIT ARGUMENTS -!! ------------------ -IMPLICIT NONE -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KREAC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KREAC) :: PRATE -INTEGER, INTENT(IN) :: KMI -!! -!! LOCAL VARIABLES -!! --------------- -TYPE(CCSTYPE), POINTER :: TPK -!!---------------------------------------------------------------------- -!! -!! EXECUTABLE STATEMENTS -!! --------------------- -TPK=>TACCS(KMI) -!! -PRATE(:,1) = TPK%K001(:) -PRATE(:,2) = TPK%K002(:) -PRATE(:,3) = TPK%K003(:) -PRATE(:,4) = TPK%K004(:) -PRATE(:,5) = TPK%K005(:) -PRATE(:,6) = TPK%K006(:) -PRATE(:,7) = TPK%K007(:) -PRATE(:,8) = TPK%K008(:) -PRATE(:,9) = TPK%K009(:) -PRATE(:,10) = TPK%K010(:) -PRATE(:,11) = TPK%K011(:) -PRATE(:,12) = TPK%K012(:) -PRATE(:,13) = TPK%K013(:) -PRATE(:,14) = TPK%K014(:) -PRATE(:,15) = TPK%K015(:) -PRATE(:,16) = TPK%K016(:) -PRATE(:,17) = TPK%K017(:) -PRATE(:,18) = TPK%K018A(:) -PRATE(:,19) = TPK%K018B(:) -PRATE(:,20) = TPK%K019(:) -PRATE(:,21) = TPK%K020(:) -PRATE(:,22) = TPK%K021(:) -PRATE(:,23) = TPK%K022(:) -PRATE(:,24) = TPK%K023(:) -PRATE(:,25) = TPK%K024(:) -PRATE(:,26) = TPK%K025(:) -PRATE(:,27) = TPK%K026(:) -PRATE(:,28) = TPK%K027(:) -PRATE(:,29) = TPK%K028(:) -PRATE(:,30) = TPK%K029(:) -PRATE(:,31) = TPK%K030(:) -PRATE(:,32) = TPK%K031(:) -PRATE(:,33) = TPK%K032(:) -PRATE(:,34) = TPK%K033(:) -PRATE(:,35) = TPK%K034(:) -PRATE(:,36) = TPK%K035(:) -PRATE(:,37) = TPK%K036(:) -PRATE(:,38) = TPK%K037(:) -PRATE(:,39) = TPK%K038(:) -PRATE(:,40) = TPK%K039(:) -PRATE(:,41) = TPK%K040(:) -PRATE(:,42) = TPK%K041(:) -PRATE(:,43) = TPK%K042(:) -PRATE(:,44) = TPK%K043(:) -PRATE(:,45) = TPK%K044(:) -PRATE(:,46) = TPK%K045(:) -PRATE(:,47) = TPK%K046(:) -PRATE(:,48) = TPK%K047(:) -PRATE(:,49) = TPK%K048(:) -PRATE(:,50) = TPK%K049(:) -PRATE(:,51) = TPK%K050(:) -PRATE(:,52) = TPK%K051(:) -PRATE(:,53) = TPK%K052(:) -PRATE(:,54) = TPK%K053(:) -PRATE(:,55) = TPK%K054(:) -PRATE(:,56) = TPK%K055(:) -PRATE(:,57) = TPK%K056(:) -PRATE(:,58) = TPK%K057(:) -PRATE(:,59) = TPK%K058(:) -PRATE(:,60) = TPK%K059(:) -PRATE(:,61) = TPK%K060(:) -PRATE(:,62) = TPK%K061(:) -PRATE(:,63) = TPK%K062(:) -PRATE(:,64) = TPK%K063(:) -PRATE(:,65) = TPK%K064(:) -PRATE(:,66) = TPK%K065(:) -PRATE(:,67) = TPK%K066(:) -PRATE(:,68) = TPK%K067(:) -PRATE(:,69) = TPK%K068(:) -PRATE(:,70) = TPK%K069(:) -PRATE(:,71) = TPK%K070(:) -PRATE(:,72) = TPK%K071(:) -PRATE(:,73) = TPK%K072(:) -PRATE(:,74) = TPK%K073(:) -PRATE(:,75) = TPK%K074(:) -PRATE(:,76) = TPK%K075(:) -PRATE(:,77) = TPK%K076(:) -PRATE(:,78) = TPK%K077(:) -PRATE(:,79) = TPK%K078(:) -PRATE(:,80) = TPK%K079(:) -PRATE(:,81) = TPK%K080(:) -PRATE(:,82) = TPK%K081(:) -PRATE(:,83) = TPK%K082(:) -PRATE(:,84) = TPK%K083(:) -PRATE(:,85) = TPK%K084(:) -PRATE(:,86) = TPK%K085(:) -PRATE(:,87) = TPK%K086(:) -PRATE(:,88) = TPK%K087(:) -PRATE(:,89) = TPK%K088(:) -PRATE(:,90) = TPK%K089(:) -PRATE(:,91) = TPK%K090(:) -PRATE(:,92) = TPK%K091(:) -PRATE(:,93) = TPK%K092(:) -PRATE(:,94) = TPK%K093(:) -PRATE(:,95) = TPK%K094(:) -PRATE(:,96) = TPK%K095(:) -PRATE(:,97) = TPK%K096(:) -PRATE(:,98) = TPK%K097(:) -PRATE(:,99) = TPK%K098(:) -PRATE(:,100) = TPK%K099(:) -PRATE(:,101) = TPK%K100(:) -PRATE(:,102) = TPK%K101(:) -PRATE(:,103) = TPK%K102(:) -PRATE(:,104) = TPK%K103(:) -PRATE(:,105) = TPK%K104(:) -PRATE(:,106) = TPK%K105(:) -PRATE(:,107) = TPK%K106(:) -PRATE(:,108) = TPK%K107(:) -PRATE(:,109) = TPK%K108(:) -PRATE(:,110) = TPK%K109(:) -PRATE(:,111) = TPK%K110(:) -PRATE(:,112) = TPK%K111(:) -PRATE(:,113) = TPK%K112(:) -PRATE(:,114) = TPK%K113(:) -PRATE(:,115) = TPK%K114(:) -PRATE(:,116) = TPK%K115(:) -PRATE(:,117) = TPK%K116(:) -PRATE(:,118) = TPK%K117(:) -PRATE(:,119) = TPK%K118(:) -PRATE(:,120) = TPK%K119(:) -PRATE(:,121) = TPK%K120(:) -PRATE(:,122) = TPK%K121(:) -PRATE(:,123) = TPK%K122(:) -PRATE(:,124) = TPK%K123(:) -PRATE(:,125) = TPK%K124(:) -PRATE(:,126) = TPK%K125(:) -PRATE(:,127) = TPK%K126(:) -PRATE(:,128) = TPK%K127(:) -PRATE(:,129) = TPK%K128(:) -PRATE(:,130) = TPK%K129(:) -PRATE(:,131) = TPK%K130(:) -PRATE(:,132) = TPK%K131(:) -PRATE(:,133) = TPK%K132(:) -PRATE(:,134) = TPK%K133(:) -PRATE(:,135) = TPK%K134(:) -PRATE(:,136) = TPK%K135(:) -PRATE(:,137) = TPK%K136(:) -PRATE(:,138) = TPK%K137(:) -PRATE(:,139) = TPK%K138(:) -PRATE(:,140) = TPK%K139(:) -PRATE(:,141) = TPK%K140(:) -PRATE(:,142) = TPK%K141(:) -PRATE(:,143) = TPK%K142(:) -PRATE(:,144) = TPK%K143(:) -PRATE(:,145) = TPK%K144(:) -PRATE(:,146) = TPK%K145(:) -PRATE(:,147) = TPK%K146(:) -PRATE(:,148) = TPK%K147(:) -PRATE(:,149) = TPK%K148(:) -PRATE(:,150) = TPK%K149(:) -PRATE(:,151) = TPK%K150(:) -PRATE(:,152) = TPK%K151(:) -PRATE(:,153) = TPK%K152(:) -PRATE(:,154) = TPK%K153(:) -PRATE(:,155) = TPK%K154(:) -PRATE(:,156) = TPK%K155(:) -PRATE(:,157) = TPK%K156(:) -PRATE(:,158) = TPK%K157(:) -PRATE(:,159) = TPK%K158(:) -PRATE(:,160) = TPK%K159(:) -PRATE(:,161) = TPK%K160(:) -PRATE(:,162) = TPK%K161(:) -PRATE(:,163) = TPK%K162(:) -PRATE(:,164) = TPK%K163(:) -PRATE(:,165) = TPK%K164(:) -PRATE(:,166) = TPK%K165(:) -PRATE(:,167) = TPK%K166(:) -PRATE(:,168) = TPK%K167(:) -PRATE(:,169) = TPK%K168(:) -PRATE(:,170) = TPK%K169(:) -PRATE(:,171) = TPK%K170(:) -PRATE(:,172) = TPK%K171(:) -PRATE(:,173) = TPK%K172(:) -PRATE(:,174) = TPK%K173(:) -PRATE(:,175) = TPK%K174(:) -PRATE(:,176) = TPK%K175(:) -PRATE(:,177) = TPK%K176(:) -PRATE(:,178) = TPK%K177(:) -PRATE(:,179) = TPK%K178(:) -PRATE(:,180) = TPK%K179(:) -PRATE(:,181) = TPK%K180(:) -PRATE(:,182) = TPK%K181(:) -PRATE(:,183) = TPK%K182(:) -PRATE(:,184) = TPK%K183(:) -PRATE(:,185) = TPK%K184(:) -PRATE(:,186) = TPK%K185(:) -PRATE(:,187) = TPK%K186(:) -PRATE(:,188) = TPK%K187(:) -PRATE(:,189) = TPK%K188(:) -PRATE(:,190) = TPK%K189(:) -PRATE(:,191) = TPK%K190(:) -PRATE(:,192) = TPK%K191(:) -PRATE(:,193) = TPK%K192(:) -PRATE(:,194) = TPK%K193(:) -PRATE(:,195) = TPK%K194(:) -PRATE(:,196) = TPK%K195(:) -PRATE(:,197) = TPK%K196(:) -PRATE(:,198) = TPK%K197(:) -PRATE(:,199) = TPK%K198(:) -PRATE(:,200) = TPK%K199(:) -PRATE(:,201) = TPK%K200(:) -PRATE(:,202) = TPK%K201(:) -PRATE(:,203) = TPK%K202(:) -PRATE(:,204) = TPK%K203(:) -PRATE(:,205) = TPK%K204(:) -PRATE(:,206) = TPK%K205(:) -PRATE(:,207) = TPK%K206(:) -PRATE(:,208) = TPK%K207(:) -PRATE(:,209) = TPK%K208(:) -PRATE(:,210) = TPK%K209(:) -PRATE(:,211) = TPK%K210(:) -PRATE(:,212) = TPK%K211(:) -PRATE(:,213) = TPK%K212(:) -PRATE(:,214) = TPK%K213(:) -PRATE(:,215) = TPK%K214(:) -PRATE(:,216) = TPK%K215(:) -PRATE(:,217) = TPK%K216(:) -PRATE(:,218) = TPK%K217(:) -PRATE(:,219) = TPK%K218(:) -PRATE(:,220) = TPK%K219(:) -PRATE(:,221) = TPK%K220(:) -PRATE(:,222) = TPK%K221(:) -PRATE(:,223) = TPK%K222(:) -PRATE(:,224) = TPK%K223(:) -PRATE(:,225) = TPK%K224(:) -PRATE(:,226) = TPK%K225(:) -PRATE(:,227) = TPK%K226(:) -PRATE(:,228) = TPK%K227(:) -PRATE(:,229) = TPK%K228(:) -PRATE(:,230) = TPK%K229(:) -PRATE(:,231) = TPK%K230(:) -PRATE(:,232) = TPK%K231(:) -PRATE(:,233) = TPK%K232(:) -PRATE(:,234) = TPK%K233(:) -PRATE(:,235) = TPK%K234(:) -PRATE(:,236) = TPK%K235(:) -PRATE(:,237) = TPK%K236(:) -PRATE(:,238) = TPK%K237(:) -PRATE(:,239) = TPK%K238(:) -PRATE(:,240) = TPK%K239(:) -PRATE(:,241) = TPK%K240(:) -PRATE(:,242) = TPK%K241(:) -PRATE(:,243) = TPK%K242(:) -PRATE(:,244) = TPK%K243(:) -PRATE(:,245) = TPK%K244(:) -PRATE(:,246) = TPK%K245(:) -PRATE(:,247) = TPK%K246(:) -PRATE(:,248) = TPK%K247(:) -PRATE(:,249) = TPK%K248(:) -PRATE(:,250) = TPK%K249(:) -PRATE(:,251) = TPK%K250(:) -PRATE(:,252) = TPK%K251(:) -PRATE(:,253) = TPK%K252(:) -PRATE(:,254) = TPK%K253(:) -PRATE(:,255) = TPK%K254(:) -PRATE(:,256) = TPK%K255(:) -PRATE(:,257) = TPK%K256(:) -PRATE(:,258) = TPK%K257(:) -PRATE(:,259) = TPK%K258(:) -PRATE(:,260) = TPK%K259(:) -PRATE(:,261) = TPK%K260(:) -PRATE(:,262) = TPK%K261(:) -PRATE(:,263) = TPK%K262(:) -PRATE(:,264) = TPK%K263(:) -PRATE(:,265) = TPK%K264(:) -PRATE(:,266) = TPK%K265(:) -PRATE(:,267) = TPK%K266(:) -PRATE(:,268) = TPK%K267(:) -PRATE(:,269) = TPK%K268(:) -PRATE(:,270) = TPK%K269(:) -PRATE(:,271) = TPK%K270(:) -PRATE(:,272) = TPK%K271(:) -PRATE(:,273) = TPK%K272(:) -PRATE(:,274) = TPK%K273(:) -PRATE(:,275) = TPK%K274(:) -PRATE(:,276) = TPK%K275(:) -PRATE(:,277) = TPK%K276(:) -PRATE(:,278) = TPK%K277(:) -PRATE(:,279) = TPK%K278(:) -PRATE(:,280) = TPK%K279(:) -PRATE(:,281) = TPK%K280(:) -PRATE(:,282) = TPK%K281(:) -PRATE(:,283) = TPK%K282(:) -PRATE(:,284) = TPK%K283(:) -PRATE(:,285) = TPK%K284(:) -PRATE(:,286) = TPK%K285(:) -PRATE(:,287) = TPK%K286(:) -PRATE(:,288) = TPK%K287(:) -PRATE(:,289) = TPK%K288(:) -PRATE(:,290) = TPK%K289(:) -PRATE(:,291) = TPK%K290(:) -PRATE(:,292) = TPK%K291(:) -PRATE(:,293) = TPK%K292(:) -PRATE(:,294) = TPK%K293(:) -PRATE(:,295) = TPK%K294(:) -PRATE(:,296) = TPK%K295(:) -PRATE(:,297) = TPK%K296(:) -PRATE(:,298) = TPK%K297(:) -PRATE(:,299) = TPK%K298(:) -PRATE(:,300) = TPK%K299(:) -PRATE(:,301) = TPK%K300(:) -PRATE(:,302) = TPK%K301(:) -PRATE(:,303) = TPK%K302(:) -PRATE(:,304) = TPK%K303(:) -PRATE(:,305) = TPK%K304(:) -PRATE(:,306) = TPK%K305(:) -PRATE(:,307) = TPK%K306(:) -PRATE(:,308) = TPK%K307(:) -PRATE(:,309) = TPK%K308(:) -PRATE(:,310) = TPK%K309(:) -PRATE(:,311) = TPK%K310(:) -PRATE(:,312) = TPK%K311(:) -PRATE(:,313) = TPK%K312(:) -PRATE(:,314) = TPK%K313(:) -PRATE(:,315) = TPK%K314(:) -PRATE(:,316) = TPK%K315(:) -PRATE(:,317) = TPK%K316(:) -PRATE(:,318) = TPK%K317(:) -PRATE(:,319) = TPK%K318(:) -PRATE(:,320) = TPK%K319(:) -PRATE(:,321) = TPK%K320(:) -PRATE(:,322) = TPK%K321(:) -PRATE(:,323) = TPK%K322(:) -PRATE(:,324) = TPK%K323(:) -PRATE(:,325) = TPK%K324(:) -PRATE(:,326) = TPK%K325(:) -PRATE(:,327) = TPK%K326(:) -PRATE(:,328) = TPK%K327(:) -PRATE(:,329) = TPK%K328(:) -PRATE(:,330) = TPK%K329(:) -PRATE(:,331) = TPK%K330(:) -PRATE(:,332) = TPK%K331(:) -PRATE(:,333) = TPK%K332(:) -PRATE(:,334) = TPK%K333(:) -PRATE(:,335) = TPK%K334(:) -PRATE(:,336) = TPK%K335(:) -PRATE(:,337) = TPK%K337(:) -PRATE(:,338) = TPK%K338(:) -PRATE(:,339) = TPK%K339(:) -PRATE(:,340) = TPK%K340(:) -PRATE(:,341) = TPK%K341(:) -PRATE(:,342) = TPK%K342(:) -PRATE(:,343) = TPK%K343(:) -PRATE(:,344) = TPK%K344(:) -PRATE(:,345) = TPK%K345(:) -PRATE(:,346) = TPK%K346(:) -PRATE(:,347) = TPK%K347(:) -PRATE(:,348) = TPK%K348(:) -PRATE(:,349) = TPK%K349(:) -PRATE(:,350) = TPK%K350(:) -PRATE(:,351) = TPK%K351(:) -PRATE(:,352) = TPK%K352(:) -PRATE(:,353) = TPK%K353(:) -PRATE(:,354) = TPK%K354(:) -PRATE(:,355) = TPK%K355(:) -PRATE(:,356) = TPK%K356(:) -PRATE(:,357) = TPK%K357(:) -PRATE(:,358) = TPK%K358(:) -PRATE(:,359) = TPK%K359(:) -PRATE(:,360) = TPK%K360(:) -PRATE(:,361) = TPK%K361(:) -PRATE(:,362) = TPK%K362(:) -PRATE(:,363) = TPK%K363(:) -PRATE(:,364) = TPK%K364(:) -PRATE(:,365) = TPK%K365(:) -IF (TPK%LUSECHAQ) THEN - PRATE(:,366) = TPK%KTC1(:) - PRATE(:,367) = TPK%KTC2(:) - PRATE(:,368) = TPK%KTC3(:) - PRATE(:,369) = TPK%KTC4(:) - PRATE(:,370) = TPK%KTC5(:) - PRATE(:,371) = TPK%KTC6(:) - PRATE(:,372) = TPK%KTC7(:) - PRATE(:,373) = TPK%KTC8(:) - PRATE(:,374) = TPK%KTC9(:) - PRATE(:,375) = TPK%KTC10(:) - PRATE(:,376) = TPK%KTC11(:) - PRATE(:,377) = TPK%KTC12(:) - PRATE(:,378) = TPK%KTC13(:) - PRATE(:,379) = TPK%KTC14(:) - PRATE(:,380) = TPK%KTC15(:) - PRATE(:,381) = TPK%KTC16(:) - PRATE(:,382) = TPK%KTC17(:) - PRATE(:,383) = TPK%KTC18(:) - PRATE(:,384) = TPK%KTC19(:) - PRATE(:,385) = TPK%KTC20(:) - PRATE(:,386) = TPK%KTC21(:) - PRATE(:,387) = TPK%KTC22(:) - PRATE(:,388) = TPK%KTC23(:) - PRATE(:,389) = TPK%KTC24(:) - PRATE(:,390) = TPK%KTC25(:) - PRATE(:,391) = TPK%KTC26(:) - PRATE(:,392) = TPK%KTC27(:) - PRATE(:,393) = TPK%KTC28(:) - PRATE(:,394) = TPK%KTC29(:) - PRATE(:,395) = TPK%KTC30(:) - PRATE(:,396) = TPK%KTC31(:) - PRATE(:,397) = TPK%KTC32(:) - PRATE(:,398) = TPK%KTC33(:) - PRATE(:,399) = TPK%KTC34(:) - PRATE(:,400) = TPK%KTC35(:) - PRATE(:,401) = TPK%KTC36(:) - PRATE(:,402) = TPK%KTC37(:) - PRATE(:,403) = TPK%KTC38(:) - PRATE(:,404) = TPK%KTC39(:) - PRATE(:,405) = TPK%KTC40(:) - PRATE(:,406) = TPK%KTC41(:) - PRATE(:,407) = TPK%KTC42(:) - PRATE(:,408) = TPK%KTC43(:) - PRATE(:,409) = TPK%KTC44(:) - PRATE(:,410) = TPK%KTC45(:) - PRATE(:,411) = TPK%KTC46(:) - PRATE(:,412) = TPK%KTC47(:) - PRATE(:,413) = TPK%KTC48(:) - PRATE(:,414) = TPK%KTC49(:) - PRATE(:,415) = TPK%KTC50(:) - PRATE(:,416) = TPK%KTC51(:) - PRATE(:,417) = TPK%KTC52(:) - PRATE(:,418) = TPK%KTC53(:) - PRATE(:,419) = TPK%KTC54(:) - PRATE(:,420) = TPK%KTC55(:) - PRATE(:,421) = TPK%KTC56(:) - PRATE(:,422) = TPK%KTC57(:) - PRATE(:,423) = TPK%KTC58(:) - PRATE(:,424) = TPK%KTC59(:) - PRATE(:,425) = TPK%KTC60(:) - PRATE(:,426) = TPK%KTC61(:) - PRATE(:,427) = TPK%KTC62(:) - PRATE(:,428) = TPK%KTR1(:) - PRATE(:,429) = TPK%KTR2(:) - PRATE(:,430) = TPK%KTR3(:) - PRATE(:,431) = TPK%KTR4(:) - PRATE(:,432) = TPK%KTR5(:) - PRATE(:,433) = TPK%KTR6(:) - PRATE(:,434) = TPK%KTR7(:) - PRATE(:,435) = TPK%KTR8(:) - PRATE(:,436) = TPK%KTR9(:) - PRATE(:,437) = TPK%KTR10(:) - PRATE(:,438) = TPK%KTR11(:) - PRATE(:,439) = TPK%KTR12(:) - PRATE(:,440) = TPK%KTR13(:) - PRATE(:,441) = TPK%KTR14(:) - PRATE(:,442) = TPK%KTR15(:) - PRATE(:,443) = TPK%KTR16(:) - PRATE(:,444) = TPK%KTR17(:) - PRATE(:,445) = TPK%KTR18(:) - PRATE(:,446) = TPK%KTR19(:) - PRATE(:,447) = TPK%KTR20(:) - PRATE(:,448) = TPK%KTR21(:) - PRATE(:,449) = TPK%KTR22(:) - PRATE(:,450) = TPK%KTR23(:) - PRATE(:,451) = TPK%KTR24(:) - PRATE(:,452) = TPK%KTR25(:) - PRATE(:,453) = TPK%KTR26(:) - PRATE(:,454) = TPK%KTR27(:) - PRATE(:,455) = TPK%KTR28(:) - PRATE(:,456) = TPK%KTR29(:) - PRATE(:,457) = TPK%KTR30(:) - PRATE(:,458) = TPK%KTR31(:) - PRATE(:,459) = TPK%KTR32(:) - PRATE(:,460) = TPK%KTR33(:) - PRATE(:,461) = TPK%KTR34(:) - PRATE(:,462) = TPK%KTR35(:) - PRATE(:,463) = TPK%KTR36(:) - PRATE(:,464) = TPK%KTR37(:) - PRATE(:,465) = TPK%KTR38(:) - PRATE(:,466) = TPK%KTR39(:) - PRATE(:,467) = TPK%KTR40(:) - PRATE(:,468) = TPK%KTR41(:) - PRATE(:,469) = TPK%KTR42(:) - PRATE(:,470) = TPK%KTR43(:) - PRATE(:,471) = TPK%KTR44(:) - PRATE(:,472) = TPK%KTR45(:) - PRATE(:,473) = TPK%KTR46(:) - PRATE(:,474) = TPK%KTR47(:) - PRATE(:,475) = TPK%KTR48(:) - PRATE(:,476) = TPK%KTR49(:) - PRATE(:,477) = TPK%KTR50(:) - PRATE(:,478) = TPK%KTR51(:) - PRATE(:,479) = TPK%KTR52(:) - PRATE(:,480) = TPK%KTR53(:) - PRATE(:,481) = TPK%KTR54(:) - PRATE(:,482) = TPK%KTR55(:) - PRATE(:,483) = TPK%KTR56(:) - PRATE(:,484) = TPK%KTR57(:) - PRATE(:,485) = TPK%KTR58(:) - PRATE(:,486) = TPK%KTR59(:) - PRATE(:,487) = TPK%KTR60(:) - PRATE(:,488) = TPK%KTR61(:) - PRATE(:,489) = TPK%KTR62(:) - PRATE(:,490) = TPK%KC1(:) - PRATE(:,491) = TPK%KC2(:) - PRATE(:,492) = TPK%KC3(:) - PRATE(:,493) = TPK%KC4(:) - PRATE(:,494) = TPK%KC5(:) - PRATE(:,495) = TPK%KC6(:) - PRATE(:,496) = TPK%KC7(:) - PRATE(:,497) = TPK%KC8(:) - PRATE(:,498) = TPK%KC9(:) - PRATE(:,499) = TPK%KC10(:) - PRATE(:,500) = TPK%KC11(:) - PRATE(:,501) = TPK%KC12(:) - PRATE(:,502) = TPK%KC13(:) - PRATE(:,503) = TPK%KC14(:) - PRATE(:,504) = TPK%KC15(:) - PRATE(:,505) = TPK%KC16(:) - PRATE(:,506) = TPK%KC17(:) - PRATE(:,507) = TPK%KC18(:) - PRATE(:,508) = TPK%KC19(:) - PRATE(:,509) = TPK%KC20(:) - PRATE(:,510) = TPK%KC21(:) - PRATE(:,511) = TPK%KC22(:) - PRATE(:,512) = TPK%KC23(:) - PRATE(:,513) = TPK%KC24(:) - PRATE(:,514) = TPK%KC25(:) - PRATE(:,515) = TPK%KC26(:) - PRATE(:,516) = TPK%KC27(:) - PRATE(:,517) = TPK%KC28(:) - PRATE(:,518) = TPK%KC29(:) - PRATE(:,519) = TPK%KC30(:) - PRATE(:,520) = TPK%KC31(:) - PRATE(:,521) = TPK%KC32(:) - PRATE(:,522) = TPK%KC33(:) - PRATE(:,523) = TPK%KC34(:) - PRATE(:,524) = TPK%KC35(:) - PRATE(:,525) = TPK%KC36(:) - PRATE(:,526) = TPK%KC37(:) - PRATE(:,527) = TPK%KC38(:) - PRATE(:,528) = TPK%KC39(:) - PRATE(:,529) = TPK%KC40(:) - PRATE(:,530) = TPK%KC41(:) - PRATE(:,531) = TPK%KC42(:) - PRATE(:,532) = TPK%KC43(:) - PRATE(:,533) = TPK%KC44(:) - PRATE(:,534) = TPK%KC45(:) - PRATE(:,535) = TPK%KC46(:) - PRATE(:,536) = TPK%KR1(:) - PRATE(:,537) = TPK%KR2(:) - PRATE(:,538) = TPK%KR3(:) - PRATE(:,539) = TPK%KR4(:) - PRATE(:,540) = TPK%KR5(:) - PRATE(:,541) = TPK%KR6(:) - PRATE(:,542) = TPK%KR7(:) - PRATE(:,543) = TPK%KR8(:) - PRATE(:,544) = TPK%KR9(:) - PRATE(:,545) = TPK%KR10(:) - PRATE(:,546) = TPK%KR11(:) - PRATE(:,547) = TPK%KR12(:) - PRATE(:,548) = TPK%KR13(:) - PRATE(:,549) = TPK%KR14(:) - PRATE(:,550) = TPK%KR15(:) - PRATE(:,551) = TPK%KR16(:) - PRATE(:,552) = TPK%KR17(:) - PRATE(:,553) = TPK%KR18(:) - PRATE(:,554) = TPK%KR19(:) - PRATE(:,555) = TPK%KR20(:) - PRATE(:,556) = TPK%KR21(:) - PRATE(:,557) = TPK%KR22(:) - PRATE(:,558) = TPK%KR23(:) - PRATE(:,559) = TPK%KR24(:) - PRATE(:,560) = TPK%KR25(:) - PRATE(:,561) = TPK%KR26(:) - PRATE(:,562) = TPK%KR27(:) - PRATE(:,563) = TPK%KR28(:) - PRATE(:,564) = TPK%KR29(:) - PRATE(:,565) = TPK%KR30(:) - PRATE(:,566) = TPK%KR31(:) - PRATE(:,567) = TPK%KR32(:) - PRATE(:,568) = TPK%KR33(:) - PRATE(:,569) = TPK%KR34(:) - PRATE(:,570) = TPK%KR35(:) - PRATE(:,571) = TPK%KR36(:) - PRATE(:,572) = TPK%KR37(:) - PRATE(:,573) = TPK%KR38(:) - PRATE(:,574) = TPK%KR39(:) - PRATE(:,575) = TPK%KR40(:) - PRATE(:,576) = TPK%KR41(:) - PRATE(:,577) = TPK%KR42(:) - PRATE(:,578) = TPK%KR43(:) - PRATE(:,579) = TPK%KR44(:) - PRATE(:,580) = TPK%KR45(:) - PRATE(:,581) = TPK%KR46(:) -END IF -RETURN -END SUBROUTINE CH_GET_RATES -! -! -!======================================================================== -! -!! #################### - MODULE MODI_CH_TERMS -!! #################### -INTERFACE -SUBROUTINE CH_TERMS(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ, KREAC -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KREAC):: PTERMS -INTEGER, INTENT(IN) :: KMI -END SUBROUTINE CH_TERMS -END INTERFACE -END MODULE MODI_CH_TERMS -! -!======================================================================== -! -!! ############################################################# - SUBROUTINE CH_TERMS(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) -!! ############################################################# -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -!! -!!*** *MODD_CH_TERMS* -!! -!! PURPOSE -!! ------- -! calculation of the contribution of each term in each reaction -!! -!!** METHOD -!! ------ -!! The contribution of reaction i to the evolution of species j -!! is returned in PTERMS. -!! -!! REFERENCE -!! --------- -!! none -!! -!! AUTHOR -!! ------ -!! Karsten Suhre (LA) -!! -!! MODIFICATIONS -!! ------------- -!! Original 26/07/96 -!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) -!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) -!! -!!---------------------------------------------------------------------- -!! -!! EXTERNAL -!! -------- -!! none -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -USE MODD_CH_M9_SCHEME -USE MODI_CH_TERMS_AQ -USE MODI_CH_TERMS_GAZ -!! -!! EXPLICIT ARGUMENTS -!! ------------------ -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ, KREAC -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KREAC):: PTERMS -INTEGER, INTENT(IN) :: KMI -!! -TYPE(CCSTYPE), POINTER :: TPK -TPK=>TACCS(KMI) -IF (TPK%LUSECHAQ) THEN - CALL CH_TERMS_AQ(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) -ELSE - CALL CH_TERMS_GAZ(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) -END IF -END SUBROUTINE CH_TERMS -! -!======================================================================== -! -!! #################### - MODULE MODI_CH_TERMS_GAZ -!! #################### -INTERFACE -SUBROUTINE CH_TERMS_GAZ(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ, KREAC -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KREAC):: PTERMS -INTEGER, INTENT(IN) :: KMI -END SUBROUTINE CH_TERMS_GAZ -END INTERFACE -END MODULE MODI_CH_TERMS_GAZ -! -!======================================================================== -! -!! -!! ###################### - SUBROUTINE CH_TERMS_GAZ(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) -!! ###################### -!! This code has been created automatically by preprocessor m10, -!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. -!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). -!! -!!*** *MODD_CH_TERMS* -!! -!! PURPOSE -!! ------- -! calculation of the contribution of each term in each reaction -!! -!!** METHOD -!! ------ -!! The contribution of reaction i to the evolution of species j -!! is returned in PTERMS. -!! -!! REFERENCE -!! --------- -!! none -!! -!! AUTHOR -!! ------ -!! Karsten Suhre (LA) -!! -!! MODIFICATIONS -!! ------------- -!! Original 26/07/96 -!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) -!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) -!! -!!---------------------------------------------------------------------- -!! -!! EXTERNAL -!! -------- -!! none -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -USE MODD_CH_M9_SCHEME -!! -!! EXPLICIT ARGUMENTS -!! ------------------ -IMPLICIT NONE -REAL, INTENT(IN) :: PTIME -INTEGER, INTENT(IN) :: KVECNPT -INTEGER, INTENT(IN) :: KEQ, KREAC -REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC -REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KREAC):: PTERMS -INTEGER, INTENT(IN) :: KMI -!! -TYPE(CCSTYPE), POINTER :: TPK -TPK=>TACCS(KMI) -! /BEGIN_CODE/ -TPK%OSD = ( +TPK%K016*PCONC(:,JP_O3) ) / & - ( +TPK%K017*TPK%H2O+TPK%K018A*TPK%N2(:)+TPK%K018B*TPK%O2(:) ) -! -TPK%O = ( +TPK%K001*PCONC(:,JP_NO2)+TPK%K014*PCONC(:,JP_NO3)+TPK%& -&K015*PCONC(:,JP_O3)+TPK%K018A*TPK%OSD*TPK%N2(:)+TPK%K018B*TPK%OSD*TPK%O2(:) ) / & -( +TPK%K002*TPK%O2(:)+TPK%K003*PCONC(:,JP_NO2)+TPK%K004*PCONC(:,JP_NO2)+TPK%K034*& -PCONC(:,JP_O3)+TPK%K038*PCONC(:,JP_NO)+TPK%K052*PCONC(:,JP_ETHE)+& -&TPK%K057*PCONC(:,JP_OLEL)+TPK%K067*PCONC(:,JP_ISOP)+TPK%K077*PCONC(:,& -&JP_OLEH)+TPK%K087*PCONC(:,JP_BIOL)+TPK%K091*PCONC(:,JP_BIOH)+TPK%K283& -&*PCONC(:,JP_MVK)+TPK%K284*PCONC(:,JP_MCR) ) -! -TPK%RO225 = ( TPK%K085*PCONC(:,JP_BIOL)*PCONC(:,JP_NO3) ) / & -( +TPK%K201*PCONC(:,JP_NO)+TPK%K202*PCONC(:,JP_RO2T)+TPK%K203*PCONC(:,JP_HO2)) -! -TPK%RO228 = ( TPK%K089*PCONC(:,JP_BIOH)*PCONC(:,JP_NO3) ) / & -( +TPK%K210*PCONC(:,JP_NO)+TPK%K211*PCONC(:,JP_RO2T)+TPK%K212*PCONC(:,JP_HO2)) - -! -TPK%RO253 = ( +0.41*TPK%K282*PCONC(:,JP_MCR)*PCONC(:,JP_O3) ) / & -( +TPK%K297*PCONC(:,JP_NO)+TPK%K298*PCONC(:,JP_HO2)+TPK%K299*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO254 = ( +TPK%K140*PCONC(:,JP_PAN6)+TPK%K297*TPK%RO253*& -&PCONC(:,JP_NO)+TPK%K298*TPK%RO253*PCONC(:,JP_HO2)+TPK%K299*& -&TPK%RO253*PCONC(:,JP_RO2T) ) / & -( +TPK%K131*PCONC(:,JP_NO2)+TPK%K300*PCONC(:,JP_NO)+TPK%K301*PCONC(& -&:,JP_HO2)+TPK%K302*PCONC(:,JP_RO2T) ) -! -TPK%RO213 = ( +0.271*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3) ) / & -( +TPK%K162*PCONC(:,JP_NO)+TPK%K163*PCONC(:,JP_RO2T)+TPK%K164*PCONC& -&(:,JP_HO2) ) -! -TPK%RO239 = ( +TPK%K137*PCONC(:,JP_PAN3)+TPK%K162*TPK%RO213*& -&PCONC(:,JP_NO)+TPK%K163*TPK%RO213*PCONC(:,JP_RO2T)+TPK%K164*TPK%RO213*PCONC(:,JP_HO2) ) / & -( +TPK%K128*PCONC(:,JP_NO2)+TPK%K165*PCONC(:,JP_NO)+TPK%K166*PCONC(& -&:,JP_HO2)+TPK%K167*PCONC(:,JP_RO2T) ) -! -TPK%RO248 = ( +TPK%K141*PCONC(:,JP_PAN4)+TPK%K274*PCONC(:,JP_MGLY)*P& -&CONC(:,JP_OH)+TPK%K278*PCONC(:,JP_MGLY)*PCONC(:,JP_NO3) ) / & -( +TPK%K129*PCONC(:,JP_NO2)+TPK%K277*PCONC(:,JP_NO)+TPK%K279*PCONC(& -&:,JP_HO2)+TPK%K280*PCONC(:,JP_RO2T) ) -! -TPK%RO249 = ( +TPK%K272*PCONC(:,JP_MVK)*PCONC(:,JP_OH) ) / & -( +TPK%K285*PCONC(:,JP_NO)+TPK%K286*PCONC(:,JP_RO2T)+TPK%K287*PCONC& -&(:,JP_HO2) ) -! -TPK%RO250 = ( +0.3750353*TPK%K139*PCONC(:,JP_APAN)+TPK%CF46*TPK%K2& -&73*PCONC(:,JP_MCR)*PCONC(:,JP_OH)+TPK%CF46*TPK%K275*PCONC(:,JP_MCR)*PCONC& -&(:,JP_NO3) ) / & -( +TPK%K130*PCONC(:,JP_NO2)+TPK%K288*PCONC(:,JP_NO)+TPK%K289*PCONC(& -&:,JP_HO2)+TPK%K290*PCONC(:,JP_RO2T) ) -! -TPK%RO214 = ( +0.095*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3)+TPK%K1& -&65*TPK%RO239*PCONC(:,JP_NO)+TPK%K167*TPK%RO239*PCONC(:,JP_R& -&O2T)+TPK%K288*TPK%RO250*PCONC(:,JP_NO)+TPK%K290*TPK%RO250& -&*PCONC(:,JP_RO2T) ) / & -( +TPK%K168*PCONC(:,JP_NO)+TPK%K169*PCONC(:,JP_RO2T)+TPK%K170*PCONC& -&(:,JP_HO2) ) -! -TPK%RO251 = ( +TPK%CF47*TPK%K273*PCONC(:,JP_MCR)*PCONC(:,JP_OH) ) / & -( +TPK%K291*PCONC(:,JP_NO)+TPK%K292*PCONC(:,JP_HO2)+TPK%K293*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO252 = ( +TPK%CF47*TPK%K275*PCONC(:,JP_MCR)*PCONC(:,JP_NO3) ) /& -( +TPK%K294*PCONC(:,JP_NO)+TPK%K295*PCONC(:,JP_HO2)+TPK%K296*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO258 = ( +TPK%K138*PCONC(:,JP_PN10)+TPK%K305*PCONC(:,JP_RP16)*P& -&CONC(:,JP_OH)+TPK%K338*PCONC(:,JP_RP16)*PCONC(:,JP_NO3) ) / & -( +TPK%K134*PCONC(:,JP_NO2)+TPK%K340*PCONC(:,JP_NO)+TPK%K341*PCONC(& -&:,JP_HO2)+TPK%K342*PCONC(:,JP_RO2T) ) -! -TPK%RO255 = ( +TPK%K304*PCONC(:,JP_RPR1)*PCONC(:,JP_OH)+TPK%K307*PCO& -&NC(:,JP_RPR1)*PCONC(:,JP_NO3)+TPK%K343*PCONC(:,JP_PAN7) ) / & -( +TPK%K132*PCONC(:,JP_NO2)+TPK%K309*PCONC(:,JP_NO)+TPK%K310*PCONC(& -&:,JP_HO2)+TPK%K311*PCONC(:,JP_RO2T) ) -! -TPK%RO256 = ( +TPK%K312*PCONC(:,JP_RPR3)*PCONC(:,JP_OH)+TPK%K313*PCO& -&NC(:,JP_RPR3)*PCONC(:,JP_NO3)+TPK%K317*PCONC(:,JP_PAN8) ) / & -( +TPK%K315*PCONC(:,JP_NO)+TPK%K316*PCONC(:,JP_NO2)+TPK%K318*PCONC(& -&:,JP_HO2)+TPK%K319*PCONC(:,JP_RO2T) ) -! -TPK%RO257 = ( +0.6249651*TPK%K139*PCONC(:,JP_APAN)+TPK%K324*PCONC(:,& -&JP_RPR8)*PCONC(:,JP_OH)+TPK%K327*PCONC(:,JP_RPR8)*PCONC(:,JP_NO3)+TPK%K3& -&30*PCONC(:,JP_RPR8) ) / & -( +TPK%K133*PCONC(:,JP_NO2)+TPK%K331*PCONC(:,JP_NO)+TPK%K332*PCONC(& -&:,JP_HO2)+TPK%K333*PCONC(:,JP_RO2T) ) -! -TPK%RO29 = ( +0.66*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH)+TPK%K329& -&*PCONC(:,JP_RPR8)+TPK%K331*TPK%RO257*PCONC(:,JP_NO)+TPK%K333*TPK%RO257*& -PCONC(:,JP_RO2T) ) / & -( +TPK%K150*PCONC(:,JP_NO)+TPK%K151*PCONC(:,JP_RO2T)+TPK%K152*PCONC& -&(:,JP_HO2) ) -! -!avoid division by zero in prodloss -WHERE (PCONC(:,JP_NO2)>0.) - TPK%RAD1 = ( +TPK%K072*PCONC(:,JP_AROO)*PCONC(:,JP_NO3) ) / & - ( +TPK%K103*PCONC(:,JP_NO2) ) -! - TPK%RAD8 = ( +TPK%K320*PCONC(:,JP_RPR4)*PCONC(:,JP_NO3) ) / & - ( +TPK%K321*PCONC(:,JP_NO2) ) -ELSEWHERE - TPK%RAD1 = 0. - TPK%RAD8 = 0. -ENDWHERE -! -TPK%RAD2 = ( +0.74*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & -( +TPK%K097+TPK%K104*PCONC(:,JP_NO2) ) -! -TPK%RAD3 = ( +0.74*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & -( +TPK%K098+TPK%K105*PCONC(:,JP_NO2) ) -! -TPK%RAD4 = ( +0.84*TPK%K080*PCONC(:,JP_AROH)*PCONC(:,JP_OH) ) / & -( +TPK%K099+TPK%K106*PCONC(:,JP_NO2) ) -! -TPK%RAD5 = ( +TPK%CF40*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) / & -( +TPK%K100+TPK%K107*PCONC(:,JP_NO2) ) -! -TPK%RAD6 = ( +0.74*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & -( +TPK%K101+TPK%K108*PCONC(:,JP_NO2) ) -! -TPK%RAD7 = ( +0.74*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & -( +TPK%K102+TPK%K109*PCONC(:,JP_NO2) ) -! -TPK%RO22 = ( +TPK%K049*PCONC(:,JP_ETHE)*PCONC(:,JP_OH)+TPK%CF2*TPK& -&%K053*PCONC(:,JP_ETOH)*PCONC(:,JP_OH)+TPK%K054*PCONC(:,JP_OLEL)*PCONC(:,JP_& -&OH)+TPK%K069*PCONC(:,JP_ALCH)*PCONC(:,JP_OH) ) / & -( +TPK%K113*PCONC(:,JP_NO)+TPK%K114*PCONC(:,JP_RO2T)+TPK%K115*PCONC& -&(:,JP_HO2) ) -! -TPK%RO23 = ( +TPK%K050*PCONC(:,JP_ETHE)*PCONC(:,JP_NO3)+TPK%K055*PCO& -&NC(:,JP_OLEL)*PCONC(:,JP_NO3) ) / & -( +TPK%K116*PCONC(:,JP_NO)+TPK%K117*PCONC(:,JP_RO2T)+TPK%K118*PCONC& -&(:,JP_HO2) ) -! -TPK%RO24 = ( +0.4*TPK%K052*PCONC(:,JP_ETHE)*TPK%O+0.1*TPK%K0& -&57*PCONC(:,JP_OLEL)*TPK%O+0.1*TPK%K077*PCONC(:,JP_OLEH)*& -&TPK%O+0.15*TPK%K283*PCONC(:,JP_MVK)*TPK%O ) / & -( +TPK%K119*PCONC(:,JP_NO)+TPK%K120*PCONC(:,JP_RO2T)+TPK%K121*PCONC& -&(:,JP_HO2) ) -! -TPK%RO26 = ( +TPK%K060*PCONC(:,JP_ALD2)*PCONC(:,JP_OH)+TPK%K061*PCON& -&C(:,JP_ALD2)*PCONC(:,JP_NO3)+TPK%K135*PCONC(:,JP_PAN1) ) / & -( +TPK%K125*PCONC(:,JP_NO)+TPK%K126*PCONC(:,JP_NO2)+TPK%K142*PCONC(& -&:,JP_HO2)+TPK%K143*PCONC(:,JP_RO2T) ) -! -TPK%RO27 = ( +TPK%K062*PCONC(:,JP_KETL)*PCONC(:,JP_OH)+TPK%CF8*TPK& -&%K168*TPK%RO214*PCONC(:,JP_NO)+TPK%K169*TPK%RO214*PCONC(:,J& -&P_RO2T)+TPK%K170*TPK%RO214*PCONC(:,JP_HO2)+0.15*TPK%K284*PCONC(:& -&,JP_MCR)*TPK%O ) / & -( +TPK%K144*PCONC(:,JP_NO)+TPK%K145*PCONC(:,JP_RO2T)+TPK%K146*PCONC& -&(:,JP_HO2) ) -! -TPK%RO210 = ( +0.34*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH) ) / & -( +TPK%K153*PCONC(:,JP_NO)+TPK%K154*PCONC(:,JP_RO2T)+TPK%K155*PCONC& -&(:,JP_HO2) ) -! -TPK%RO211 = ( +0.66*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & -( +TPK%K156*PCONC(:,JP_NO)+TPK%K157*PCONC(:,JP_RO2T)+TPK%K158*PCONC& -&(:,JP_HO2) ) -! -TPK%RO212 = ( +0.34*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & -( +TPK%K159*PCONC(:,JP_NO)+TPK%K160*PCONC(:,JP_RO2T)+TPK%K161*PCONC& -&(:,JP_HO2) ) -! -TPK%RO215 = ( +TPK%K068*PCONC(:,JP_MTBE)*PCONC(:,JP_OH) ) / & -( +TPK%K171*PCONC(:,JP_NO)+TPK%K172*PCONC(:,JP_RO2T)+TPK%K173*PCONC& -&(:,JP_HO2) ) -! -TPK%RO216 = ( +TPK%K070*PCONC(:,JP_KETH)*PCONC(:,JP_OH) ) / & -( +TPK%K174*PCONC(:,JP_NO)+TPK%K175*PCONC(:,JP_RO2T)+TPK%K176*PCONC& -&(:,JP_HO2) ) -! -TPK%RO217 = ( +0.1*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & -( +TPK%K177*PCONC(:,JP_NO)+TPK%K178*PCONC(:,JP_RO2T)+TPK%K179*PCONC& -&(:,JP_HO2) ) -! -TPK%RO220 = ( +0.28*TPK%K076*PCONC(:,JP_OLEH)*PCONC(:,JP_O3)+0.1*TPK& -&%K077*PCONC(:,JP_OLEH)*TPK%O+TPK%K078*PCONC(:,JP_ALKM)*PCONC(:,JP_O& -&H)+TPK%K308*PCONC(:,JP_RPR1)+TPK%K309*TPK%RO255*PCONC(:,JP_NO)+T& -&PK%K311*TPK%RO255*PCONC(:,JP_RO2T) ) / & -( +TPK%K186*PCONC(:,JP_NO)+TPK%K187*PCONC(:,JP_RO2T)+TPK%K188*PCONC& -&(:,JP_HO2) ) -! -TPK%RO218 = ( +TPK%K074*PCONC(:,JP_OLEH)*PCONC(:,JP_OH)+TPK%CF18*TPK%K186*& -TPK%RO220*PCONC(:,JP_NO)+TPK%K187*TPK%RO220*PCONC(:& -&,JP_RO2T)+TPK%K188*TPK%RO220*PCONC(:,JP_HO2) ) / & -( +TPK%K180*PCONC(:,JP_NO)+TPK%K181*PCONC(:,JP_RO2T)+TPK%K182*PCONC& -&(:,JP_HO2) ) -! -TPK%RO219 = ( +TPK%K075*PCONC(:,JP_OLEH)*PCONC(:,JP_NO3) ) / & -( +TPK%K183*PCONC(:,JP_NO)+TPK%K184*PCONC(:,JP_RO2T)+TPK%K185*PCONC& -&(:,JP_HO2) ) -! -TPK%RO221 = ( +0.1*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & -( +TPK%K189*PCONC(:,JP_NO)+TPK%K190*PCONC(:,JP_RO2T)+TPK%K191*PCONC& -&(:,JP_HO2) ) -! -TPK%RO222 = ( +TPK%CF45*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) /& -& & -( +TPK%K192*PCONC(:,JP_NO)+TPK%K193*PCONC(:,JP_RO2T)+TPK%K194*PCONC& -&(:,JP_HO2) ) -! -TPK%RO223 = ( +0.1*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & -( +TPK%K195*PCONC(:,JP_NO)+TPK%K196*PCONC(:,JP_RO2T)+TPK%K197*PCONC& -&(:,JP_HO2) ) -! -TPK%RO224 = ( +TPK%K084*PCONC(:,JP_BIOL)*PCONC(:,JP_OH) ) / & -( +TPK%K198*PCONC(:,JP_NO)+TPK%K199*PCONC(:,JP_RO2T)+TPK%K200*PCONC& -&(:,JP_HO2) ) -! -TPK%RO226 = ( +0.445*TPK%K086*PCONC(:,JP_BIOL)*PCONC(:,JP_O3) ) / & -( +TPK%K204*PCONC(:,JP_NO)+TPK%K205*PCONC(:,JP_RO2T)+TPK%K206*PCONC& -&(:,JP_HO2) ) -! -TPK%RO227 = ( +TPK%K088*PCONC(:,JP_BIOH)*PCONC(:,JP_OH) ) / & -( +TPK%K207*PCONC(:,JP_NO)+TPK%K208*PCONC(:,JP_RO2T)+TPK%K209*PCONC& -&(:,JP_HO2) ) -! -TPK%RO229 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & -( +TPK%K213*PCONC(:,JP_NO)+TPK%K214*PCONC(:,JP_RO2T)+TPK%K215*PCONC& -&(:,JP_HO2) ) -! -TPK%RO230 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & -( +TPK%K219*PCONC(:,JP_RO2T)+TPK%K220*PCONC(:,JP_HO2)+TPK%K344*PCON& -&C(:,JP_NO) ) -! -TPK%RO231 = ( +0.1*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & -( +TPK%K221*PCONC(:,JP_NO)+TPK%K222*PCONC(:,JP_RO2T)+TPK%K223*PCONC& -&(:,JP_HO2) ) -! -TPK%RO232 = ( +TPK%K093*PCONC(:,JP_ALKH)*PCONC(:,JP_OH) ) / & -( +TPK%K224*PCONC(:,JP_NO)+TPK%K225*PCONC(:,JP_RO2T)+TPK%K226*PCONC& -&(:,JP_HO2) ) -! -TPK%RO233 = ( +TPK%K097*TPK%RAD2 ) / & -( +TPK%K230+TPK%K231*PCONC(:,JP_NO)+TPK%K232*PCONC(:,JP_RO2T)+TPK%K233*& -PCONC(:,JP_HO2) ) -! -TPK%RO234 = ( +TPK%K098*TPK%RAD3 ) / & -( +TPK%K237+TPK%K238*PCONC(:,JP_NO)+TPK%K239*PCONC(:,JP_RO2T)+TPK%K240*& -PCONC(:,JP_HO2) ) -! -TPK%RO235 = ( +TPK%K099*TPK%RAD4 ) / & -( +TPK%K244+TPK%K245*PCONC(:,JP_NO)+TPK%K246*PCONC(:,JP_RO2T)+TPK%K247*& -PCONC(:,JP_HO2) ) -! -TPK%RO236 = ( +TPK%K100*TPK%RAD5 ) / & -( +TPK%K251+TPK%K252*PCONC(:,JP_NO)+TPK%K253*PCONC(:,JP_RO2T)+TPK%K254*& -PCONC(:,JP_HO2) ) -! -TPK%RO237 = ( +TPK%K101*TPK%RAD6 ) / & -( +TPK%K258+TPK%K259*PCONC(:,JP_NO)+TPK%K260*PCONC(:,JP_RO2T)+TPK%K261*& -PCONC(:,JP_HO2) ) -! -TPK%RO238 = ( +TPK%K102*TPK%RAD7 ) / & -( +TPK%K265+TPK%K266*PCONC(:,JP_NO)+TPK%K267*PCONC(:,JP_RO2T)+TPK%K268*& -PCONC(:,JP_HO2) ) -! -TPK%RO240 = ( +TPK%CF30*TPK%K213*TPK%RO229*PCONC(:,JP_NO)+TPK%K214*& -TPK%RO229*PCONC(:,JP_RO2T)+TPK%K215*TPK%RO229*PCON& -&C(:,JP_HO2) ) / & -( +TPK%K216*PCONC(:,JP_NO)+TPK%K217*PCONC(:,JP_RO2T)+TPK%K218*PCONC& -&(:,JP_HO2) ) -! -TPK%RO241 = ( +TPK%CF34*TPK%K224*TPK%RO232*PCONC(:,JP_NO)+TPK%K225*& -TPK%RO232*PCONC(:,JP_RO2T)+TPK%K226*TPK%RO232*PCON& -&C(:,JP_HO2) ) / & -( +TPK%K227*PCONC(:,JP_NO)+TPK%K228*PCONC(:,JP_RO2T)+TPK%K229*PCONC& -&(:,JP_HO2) ) -! -TPK%RO242 = ( +TPK%K230*TPK%RO233 ) / & -( +TPK%K234*PCONC(:,JP_NO)+TPK%K235*PCONC(:,JP_RO2T)+TPK%K236*PCONC& -&(:,JP_HO2) ) -! -TPK%RO243 = ( +TPK%K237*TPK%RO234 ) / & -( +TPK%K241*PCONC(:,JP_NO)+TPK%K242*PCONC(:,JP_RO2T)+TPK%K243*PCONC& -&(:,JP_HO2) ) -! -TPK%RO244 = ( +TPK%K244*TPK%RO235 ) / & -( +TPK%K248*PCONC(:,JP_NO)+TPK%K249*PCONC(:,JP_RO2T)+TPK%K250*PCONC& -&(:,JP_HO2) ) -! -TPK%RO245 = ( +TPK%K251*TPK%RO236 ) / & -( +TPK%K255*PCONC(:,JP_NO)+TPK%K256*PCONC(:,JP_RO2T)+TPK%K257*PCONC& -&(:,JP_HO2) ) -! -TPK%RO246 = ( +TPK%K258*TPK%RO237 ) / & -( +TPK%K262*PCONC(:,JP_NO)+TPK%K263*PCONC(:,JP_RO2T)+TPK%K264*PCONC& -&(:,JP_HO2) ) -! -TPK%RO247 = ( +TPK%K265*TPK%RO238 ) / & -( +TPK%K269*PCONC(:,JP_NO)+TPK%K270*PCONC(:,JP_RO2T)+TPK%K271*PCONC& -&(:,JP_HO2) ) -! -TPK%RO28 = ( +TPK%K063*PCONC(:,JP_KETL)+TPK%K071*PCONC(:,JP_KETH)+TP& -&K%K136*PCONC(:,JP_PAN2)+TPK%K144*TPK%RO27*PCONC(:,JP_NO)+TPK%& -&K145*TPK%RO27*PCONC(:,JP_RO2T)+TPK%K146*TPK%RO27*PCONC(:,JP& -&_HO2)+TPK%K174*TPK%RO216*PCONC(:,JP_NO)+TPK%K175*TPK%RO21& -&6*PCONC(:,JP_RO2T)+TPK%K176*TPK%RO216*PCONC(:,JP_HO2)+TPK%K204*& -&TPK%RO226*PCONC(:,JP_NO)+TPK%K205*TPK%RO226*PCONC(:,JP_RO2T)& -&+TPK%K206*TPK%RO226*PCONC(:,JP_HO2)+TPK%K216*TPK%RO240*& -&PCONC(:,JP_NO)+TPK%K217*TPK%RO240*PCONC(:,JP_RO2T)+TPK%K218*& -&TPK%RO240*PCONC(:,JP_HO2)+TPK%K219*TPK%RO230*PCONC(:,JP_RO2T)+T& -&PK%K220*TPK%RO230*PCONC(:,JP_HO2)+TPK%K276*PCONC(:,JP_MGLY)+TPK%K277*& -TPK%RO248*PCONC(:,JP_NO)+TPK%K280*TPK%RO248*PCONC(:& -&,JP_RO2T)+0.28*TPK%K281*PCONC(:,JP_MVK)*PCONC(:,JP_O3)+0.15*TPK%K283*PCO& -&NC(:,JP_MVK)*TPK%O+TPK%K344*TPK%RO230*PCONC(:,JP_NO) ) / & -( +TPK%K127*PCONC(:,JP_NO2)+TPK%K147*PCONC(:,JP_NO)+TPK%K148*PCONC(& -&:,JP_HO2)+TPK%K149*PCONC(:,JP_RO2T) ) -! -! /END_CODE/ -PTERMS(:,:,:) = 0.0 -CALL SUBT0 -CALL SUBT1 -CALL SUBT2 -CALL SUBT3 -CALL SUBT4 -CALL SUBT5 -CALL SUBT6 -CALL SUBT7 -CALL SUBT8 -CALL SUBT9 -CALL SUBT10 -CALL SUBT11 -CALL SUBT12 -CALL SUBT13 -CALL SUBT14 -CALL SUBT15 -CALL SUBT16 -CALL SUBT17 -CALL SUBT18 -CALL SUBT19 -CALL SUBT20 -CALL SUBT21 -CALL SUBT22 -CALL SUBT23 -CALL SUBT24 -CALL SUBT25 -CALL SUBT26 -CALL SUBT27 -CALL SUBT28 -CALL SUBT29 -CALL SUBT30 -CALL SUBT31 -CALL SUBT32 -CALL SUBT33 -CALL SUBT34 -CALL SUBT35 -CALL SUBT36 -CALL SUBT37 -CALL SUBT38 -CALL SUBT39 -CALL SUBT40 -CALL SUBT41 -CALL SUBT42 -CALL SUBT43 -CALL SUBT44 -CALL SUBT45 -CALL SUBT46 -CALL SUBT47 -CALL SUBT48 -CALL SUBT49 -CALL SUBT50 -CALL SUBT51 -CALL SUBT52 -CALL SUBT53 -CALL SUBT54 -CALL SUBT55 -CALL SUBT56 -CALL SUBT57 -CALL SUBT58 -CALL SUBT59 -! - -CONTAINS - -SUBROUTINE SUBT0 -! -!Indices 1 a 20 -! -!PTERMS(NO,K001) = +K001*<NO2> - PTERMS(:,1,1) = +TPK%K001(:)*PCONC(:,2) -! -!PTERMS(NO2,K001) = -K001*<NO2> - PTERMS(:,2,1) = -TPK%K001(:)*PCONC(:,2) -! -!PTERMS(O3,K002) = +K002*<O2>*<O> - PTERMS(:,3,2) = +TPK%K002(:)*TPK%O2(:)*TPK%O(:) -! -!PTERMS(NO,K003) = +K003*<NO2>*<O> - PTERMS(:,1,3) = +TPK%K003(:)*PCONC(:,2)*TPK%O(:) -! -!PTERMS(NO2,K003) = -K003*<NO2>*<O> - PTERMS(:,2,3) = -TPK%K003(:)*PCONC(:,2)*TPK%O(:) -! -!PTERMS(NO2,K004) = -K004*<NO2>*<O> - PTERMS(:,2,4) = -TPK%K004(:)*PCONC(:,2)*TPK%O(:) -! -!PTERMS(NO3,K004) = +K004*<NO2>*<O> - PTERMS(:,8,4) = +TPK%K004(:)*PCONC(:,2)*TPK%O(:) -! -!PTERMS(NO,K005) = -K005*<O3>*<NO> - PTERMS(:,1,5) = -TPK%K005(:)*PCONC(:,3)*PCONC(:,1) -! -!PTERMS(NO2,K005) = +K005*<O3>*<NO> - PTERMS(:,2,5) = +TPK%K005(:)*PCONC(:,3)*PCONC(:,1) -! -!PTERMS(O3,K005) = -K005*<O3>*<NO> - PTERMS(:,3,5) = -TPK%K005(:)*PCONC(:,3)*PCONC(:,1) -! -!PTERMS(NO2,K006) = -K006*<O3>*<NO2> - PTERMS(:,2,6) = -TPK%K006(:)*PCONC(:,3)*PCONC(:,2) -! -!PTERMS(O3,K006) = -K006*<O3>*<NO2> - PTERMS(:,3,6) = -TPK%K006(:)*PCONC(:,3)*PCONC(:,2) -! -!PTERMS(NO3,K006) = +K006*<O3>*<NO2> - PTERMS(:,8,6) = +TPK%K006(:)*PCONC(:,3)*PCONC(:,2) -! -!PTERMS(NO,K007) = -K007*<NO3>*<NO> - PTERMS(:,1,7) = -TPK%K007(:)*PCONC(:,8)*PCONC(:,1) -! -!PTERMS(NO2,K007) = +2.*K007*<NO3>*<NO> - PTERMS(:,2,7) = +2.*TPK%K007(:)*PCONC(:,8)*PCONC(:,1) -! -!PTERMS(NO3,K007) = -K007*<NO3>*<NO> - PTERMS(:,8,7) = -TPK%K007(:)*PCONC(:,8)*PCONC(:,1) -! -!PTERMS(NO,K008) = -K008*<NO>*<NO> - PTERMS(:,1,8) = -TPK%K008(:)*PCONC(:,1)*PCONC(:,1) -! -!PTERMS(NO2,K008) = +2.*K008*<NO>*<NO> - PTERMS(:,2,8) = +2.*TPK%K008(:)*PCONC(:,1)*PCONC(:,1) -! -!PTERMS(NO2,K009) = -K009*<NO3>*<NO2> - PTERMS(:,2,9) = -TPK%K009(:)*PCONC(:,8)*PCONC(:,2) -! -!PTERMS(N2O5,K009) = +K009*<NO3>*<NO2> - PTERMS(:,7,9) = +TPK%K009(:)*PCONC(:,8)*PCONC(:,2) -! -! -RETURN -END SUBROUTINE SUBT0 -! -SUBROUTINE SUBT1 -! -!Indices 21 a 40 -! -!PTERMS(NO3,K009) = -K009*<NO3>*<NO2> - PTERMS(:,8,9) = -TPK%K009(:)*PCONC(:,8)*PCONC(:,2) -! -!PTERMS(NO2,K010) = +K010*<N2O5> - PTERMS(:,2,10) = +TPK%K010(:)*PCONC(:,7) -! -!PTERMS(N2O5,K010) = -K010*<N2O5> - PTERMS(:,7,10) = -TPK%K010(:)*PCONC(:,7) -! -!PTERMS(NO3,K010) = +K010*<N2O5> - PTERMS(:,8,10) = +TPK%K010(:)*PCONC(:,7) -! -!PTERMS(HNO3,K011) = +2.*K011*<H2O>*<N2O5> - PTERMS(:,5,11) = +2.*TPK%K011(:)*TPK%H2O(:)*PCONC(:,7) -! -!PTERMS(N2O5,K011) = -K011*<H2O>*<N2O5> - PTERMS(:,7,11) = -TPK%K011(:)*TPK%H2O(:)*PCONC(:,7) -! -!PTERMS(NO,K012) = +K012*<NO3>*<NO2> - PTERMS(:,1,12) = +TPK%K012(:)*PCONC(:,8)*PCONC(:,2) -! -!PTERMS(NO2,K012) = -K012*<NO3>*<NO2> - PTERMS(:,2,12) = -TPK%K012(:)*PCONC(:,8)*PCONC(:,2) -! -!PTERMS(NO3,K012) = -K012*<NO3>*<NO2> - PTERMS(:,8,12) = -TPK%K012(:)*PCONC(:,8)*PCONC(:,2) -! -!PTERMS(NO,K013) = +K013*<NO3> - PTERMS(:,1,13) = +TPK%K013(:)*PCONC(:,8) -! -!PTERMS(NO3,K013) = -K013*<NO3> - PTERMS(:,8,13) = -TPK%K013(:)*PCONC(:,8) -! -!PTERMS(NO2,K014) = +K014*<NO3> - PTERMS(:,2,14) = +TPK%K014(:)*PCONC(:,8) -! -!PTERMS(NO3,K014) = -K014*<NO3> - PTERMS(:,8,14) = -TPK%K014(:)*PCONC(:,8) -! -!PTERMS(O3,K015) = -K015*<O3> - PTERMS(:,3,15) = -TPK%K015(:)*PCONC(:,3) -! -!PTERMS(O3,K016) = -K016*<O3> - PTERMS(:,3,16) = -TPK%K016(:)*PCONC(:,3) -! -!PTERMS(OH,K017) = +K017*<H2O>*<OSD> - PTERMS(:,15,17) = +TPK%K017(:)*TPK%H2O(:)*TPK%OSD(:) -! -!PTERMS(NO,K019) = -K019*<OH>*<NO> - PTERMS(:,1,20) = -TPK%K019(:)*PCONC(:,15)*PCONC(:,1) -! -!PTERMS(HONO,K019) = +K019*<OH>*<NO> - PTERMS(:,4,20) = +TPK%K019(:)*PCONC(:,15)*PCONC(:,1) -! -!PTERMS(OH,K019) = -K019*<OH>*<NO> - PTERMS(:,15,20) = -TPK%K019(:)*PCONC(:,15)*PCONC(:,1) -! -!PTERMS(NO,K020) = +0.9*K020*<HONO> - PTERMS(:,1,21) = +0.9*TPK%K020(:)*PCONC(:,4) -! -! -RETURN -END SUBROUTINE SUBT1 -! -SUBROUTINE SUBT2 -! -!Indices 41 a 60 -! -!PTERMS(NO2,K020) = +0.1*K020*<HONO> - PTERMS(:,2,21) = +0.1*TPK%K020(:)*PCONC(:,4) -! -!PTERMS(HONO,K020) = -K020*<HONO> - PTERMS(:,4,21) = -TPK%K020(:)*PCONC(:,4) -! -!PTERMS(HO2,K020) = +0.1*K020*<HONO> - PTERMS(:,10,21) = +0.1*TPK%K020(:)*PCONC(:,4) -! -!PTERMS(OH,K020) = +0.9*K020*<HONO> - PTERMS(:,15,21) = +0.9*TPK%K020(:)*PCONC(:,4) -! -!PTERMS(NO2,K021) = -K021*<H2O>*<NO2> - PTERMS(:,2,22) = -TPK%K021(:)*TPK%H2O(:)*PCONC(:,2) -! -!PTERMS(HONO,K021) = +0.5*K021*<H2O>*<NO2> - PTERMS(:,4,22) = +0.5*TPK%K021(:)*TPK%H2O(:)*PCONC(:,2) -! -!PTERMS(HNO3,K021) = +0.5*K021*<H2O>*<NO2> - PTERMS(:,5,22) = +0.5*TPK%K021(:)*TPK%H2O(:)*PCONC(:,2) -! -!PTERMS(NO2,K022) = -K022*<OH>*<NO2> - PTERMS(:,2,23) = -TPK%K022(:)*PCONC(:,15)*PCONC(:,2) -! -!PTERMS(HNO3,K022) = +K022*<OH>*<NO2> - PTERMS(:,5,23) = +TPK%K022(:)*PCONC(:,15)*PCONC(:,2) -! -!PTERMS(OH,K022) = -K022*<OH>*<NO2> - PTERMS(:,15,23) = -TPK%K022(:)*PCONC(:,15)*PCONC(:,2) -! -!PTERMS(HNO3,K023) = -K023*<OH>*<HNO3> - PTERMS(:,5,24) = -TPK%K023(:)*PCONC(:,15)*PCONC(:,5) -! -!PTERMS(NO3,K023) = +K023*<OH>*<HNO3> - PTERMS(:,8,24) = +TPK%K023(:)*PCONC(:,15)*PCONC(:,5) -! -!PTERMS(OH,K023) = -K023*<OH>*<HNO3> - PTERMS(:,15,24) = -TPK%K023(:)*PCONC(:,15)*PCONC(:,5) -! -!PTERMS(HO2,K024) = +K024*<OH>*<CO> - PTERMS(:,10,25) = +TPK%K024(:)*PCONC(:,15)*PCONC(:,11) -! -!PTERMS(CO,K024) = -K024*<OH>*<CO> - PTERMS(:,11,25) = -TPK%K024(:)*PCONC(:,15)*PCONC(:,11) -! -!PTERMS(OH,K024) = -K024*<OH>*<CO> - PTERMS(:,15,25) = -TPK%K024(:)*PCONC(:,15)*PCONC(:,11) -! -!PTERMS(O3,K025) = -K025*<OH>*<O3> - PTERMS(:,3,26) = -TPK%K025(:)*PCONC(:,15)*PCONC(:,3) -! -!PTERMS(HO2,K025) = +K025*<OH>*<O3> - PTERMS(:,10,26) = +TPK%K025(:)*PCONC(:,15)*PCONC(:,3) -! -!PTERMS(OH,K025) = -K025*<OH>*<O3> - PTERMS(:,15,26) = -TPK%K025(:)*PCONC(:,15)*PCONC(:,3) -! -!PTERMS(NO,K026) = -K026*<HO2>*<NO> - PTERMS(:,1,27) = -TPK%K026(:)*PCONC(:,10)*PCONC(:,1) -! -! -RETURN -END SUBROUTINE SUBT2 -! -SUBROUTINE SUBT3 -! -!Indices 61 a 80 -! -!PTERMS(NO2,K026) = +K026*<HO2>*<NO> - PTERMS(:,2,27) = +TPK%K026(:)*PCONC(:,10)*PCONC(:,1) -! -!PTERMS(HO2,K026) = -K026*<HO2>*<NO> - PTERMS(:,10,27) = -TPK%K026(:)*PCONC(:,10)*PCONC(:,1) -! -!PTERMS(OH,K026) = +K026*<HO2>*<NO> - PTERMS(:,15,27) = +TPK%K026(:)*PCONC(:,10)*PCONC(:,1) -! -!PTERMS(NO2,K027) = -K027*<HO2>*<NO2> - PTERMS(:,2,28) = -TPK%K027(:)*PCONC(:,10)*PCONC(:,2) -! -!PTERMS(HNO4,K027) = +K027*<HO2>*<NO2> - PTERMS(:,6,28) = +TPK%K027(:)*PCONC(:,10)*PCONC(:,2) -! -!PTERMS(HO2,K027) = -K027*<HO2>*<NO2> - PTERMS(:,10,28) = -TPK%K027(:)*PCONC(:,10)*PCONC(:,2) -! -!PTERMS(NO2,K028) = +K028*<HNO4> - PTERMS(:,2,29) = +TPK%K028(:)*PCONC(:,6) -! -!PTERMS(HNO4,K028) = -K028*<HNO4> - PTERMS(:,6,29) = -TPK%K028(:)*PCONC(:,6) -! -!PTERMS(HO2,K028) = +K028*<HNO4> - PTERMS(:,10,29) = +TPK%K028(:)*PCONC(:,6) -! -!PTERMS(NO2,K029) = +K029*<OH>*<HNO4> - PTERMS(:,2,30) = +TPK%K029(:)*PCONC(:,15)*PCONC(:,6) -! -!PTERMS(HNO4,K029) = -K029*<OH>*<HNO4> - PTERMS(:,6,30) = -TPK%K029(:)*PCONC(:,15)*PCONC(:,6) -! -!PTERMS(OH,K029) = -K029*<OH>*<HNO4> - PTERMS(:,15,30) = -TPK%K029(:)*PCONC(:,15)*PCONC(:,6) -! -!PTERMS(O3,K030) = -K030*<HO2>*<O3> - PTERMS(:,3,31) = -TPK%K030(:)*PCONC(:,10)*PCONC(:,3) -! -!PTERMS(HO2,K030) = -K030*<HO2>*<O3> - PTERMS(:,10,31) = -TPK%K030(:)*PCONC(:,10)*PCONC(:,3) -! -!PTERMS(OH,K030) = +K030*<HO2>*<O3> - PTERMS(:,15,31) = +TPK%K030(:)*PCONC(:,10)*PCONC(:,3) -! -!PTERMS(HO2,K031) = -K031*<HO2>*<HO2> - PTERMS(:,10,32) = -TPK%K031(:)*PCONC(:,10)*PCONC(:,10) -! -!PTERMS(H2O2,K031) = +K031*<HO2>*<HO2> - PTERMS(:,12,32) = +TPK%K031(:)*PCONC(:,10)*PCONC(:,10) -! -!PTERMS(HO2,K032) = -K032*<HO2>*<H2O>*<HO2> - PTERMS(:,10,33) = -TPK%K032(:)*PCONC(:,10)*TPK%H2O(:)*PCONC(:,10) -! -!PTERMS(H2O2,K032) = +K032*<HO2>*<H2O>*<HO2> - PTERMS(:,12,33) = +TPK%K032(:)*PCONC(:,10)*TPK%H2O(:)*PCONC(:,10) -! -!PTERMS(NO2,K033) = +0.8*K033*<HO2>*<NO3> - PTERMS(:,2,34) = +0.8*TPK%K033(:)*PCONC(:,10)*PCONC(:,8) -! -! -RETURN -END SUBROUTINE SUBT3 -! -SUBROUTINE SUBT4 -! -!Indices 81 a 100 -! -!PTERMS(HNO3,K033) = +0.2*K033*<HO2>*<NO3> - PTERMS(:,5,34) = +0.2*TPK%K033(:)*PCONC(:,10)*PCONC(:,8) -! -!PTERMS(NO3,K033) = -K033*<HO2>*<NO3> - PTERMS(:,8,34) = -TPK%K033(:)*PCONC(:,10)*PCONC(:,8) -! -!PTERMS(HO2,K033) = -K033*<HO2>*<NO3> - PTERMS(:,10,34) = -TPK%K033(:)*PCONC(:,10)*PCONC(:,8) -! -!PTERMS(OH,K033) = +0.8*K033*<HO2>*<NO3> - PTERMS(:,15,34) = +0.8*TPK%K033(:)*PCONC(:,10)*PCONC(:,8) -! -!PTERMS(O3,K034) = -K034*<O3>*<O> - PTERMS(:,3,35) = -TPK%K034(:)*PCONC(:,3)*TPK%O(:) -! -!PTERMS(HO2,K035) = +K035*<OH>*<SO2> - PTERMS(:,10,36) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,13) -! -!PTERMS(SO2,K035) = -K035*<OH>*<SO2> - PTERMS(:,13,36) = -TPK%K035(:)*PCONC(:,15)*PCONC(:,13) -! -!PTERMS(H2SO4,K035) = +K035*<OH>*<SO2> - PTERMS(:,14,36) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,13) -! -!PTERMS(OH,K035) = -K035*<OH>*<SO2> - PTERMS(:,15,36) = -TPK%K035(:)*PCONC(:,15)*PCONC(:,13) -! -!PTERMS(H2O2,K036) = -K036*<H2O2> - PTERMS(:,12,37) = -TPK%K036(:)*PCONC(:,12) -! -!PTERMS(OH,K036) = +2.*K036*<H2O2> - PTERMS(:,15,37) = +2.*TPK%K036(:)*PCONC(:,12) -! -!PTERMS(HO2,K037) = +K037*<OH>*<H2O2> - PTERMS(:,10,38) = +TPK%K037(:)*PCONC(:,15)*PCONC(:,12) -! -!PTERMS(H2O2,K037) = -K037*<OH>*<H2O2> - PTERMS(:,12,38) = -TPK%K037(:)*PCONC(:,15)*PCONC(:,12) -! -!PTERMS(OH,K037) = -K037*<OH>*<H2O2> - PTERMS(:,15,38) = -TPK%K037(:)*PCONC(:,15)*PCONC(:,12) -! -!PTERMS(NO,K038) = -K038*<NO>*<O> - PTERMS(:,1,39) = -TPK%K038(:)*PCONC(:,1)*TPK%O(:) -! -!PTERMS(NO2,K038) = +K038*<NO>*<O> - PTERMS(:,2,39) = +TPK%K038(:)*PCONC(:,1)*TPK%O(:) -! -!PTERMS(NO2,K039) = +K039*<OH>*<HONO> - PTERMS(:,2,40) = +TPK%K039(:)*PCONC(:,15)*PCONC(:,4) -! -!PTERMS(HONO,K039) = -K039*<OH>*<HONO> - PTERMS(:,4,40) = -TPK%K039(:)*PCONC(:,15)*PCONC(:,4) -! -!PTERMS(OH,K039) = -K039*<OH>*<HONO> - PTERMS(:,15,40) = -TPK%K039(:)*PCONC(:,15)*PCONC(:,4) -! -!PTERMS(NO2,K040) = +K040*<OH>*<NO3> - PTERMS(:,2,41) = +TPK%K040(:)*PCONC(:,15)*PCONC(:,8) -! -! -RETURN -END SUBROUTINE SUBT4 -! -SUBROUTINE SUBT5 -! -!Indices 101 a 120 -! -!PTERMS(NO3,K040) = -K040*<OH>*<NO3> - PTERMS(:,8,41) = -TPK%K040(:)*PCONC(:,15)*PCONC(:,8) -! -!PTERMS(HO2,K040) = +K040*<OH>*<NO3> - PTERMS(:,10,41) = +TPK%K040(:)*PCONC(:,15)*PCONC(:,8) -! -!PTERMS(OH,K040) = -K040*<OH>*<NO3> - PTERMS(:,15,41) = -TPK%K040(:)*PCONC(:,15)*PCONC(:,8) -! -!PTERMS(NO2,K041) = +2.*K041*<NO3>*<NO3> - PTERMS(:,2,42) = +2.*TPK%K041(:)*PCONC(:,8)*PCONC(:,8) -! -!PTERMS(NO3,K041) = -K041*<NO3>*<NO3> - PTERMS(:,8,42) = -TPK%K041(:)*PCONC(:,8)*PCONC(:,8) -! -!PTERMS(HO2,K042) = -K042*<HO2>*<OH> - PTERMS(:,10,43) = -TPK%K042(:)*PCONC(:,10)*PCONC(:,15) -! -!PTERMS(OH,K042) = -K042*<HO2>*<OH> - PTERMS(:,15,43) = -TPK%K042(:)*PCONC(:,10)*PCONC(:,15) -! -!PTERMS(OH,K043) = -K043*<OH>*<CH4> - PTERMS(:,15,44) = -TPK%K043(:)*PCONC(:,15)*TPK%CH4(:) -! -!PTERMS(RO2T,K043) = +K043*<OH>*<CH4> - PTERMS(:,85,44) = +TPK%K043(:)*PCONC(:,15)*TPK%CH4(:) -! -!PTERMS(RO21,K043) = +K043*<OH>*<CH4> - PTERMS(:,86,44) = +TPK%K043(:)*PCONC(:,15)*TPK%CH4(:) -! -!PTERMS(HO2,K044) = +2.0*K044*<HCHO> - PTERMS(:,10,45) = +2.0*TPK%K044(:)*PCONC(:,28) -! -!PTERMS(CO,K044) = +K044*<HCHO> - PTERMS(:,11,45) = +TPK%K044(:)*PCONC(:,28) -! -!PTERMS(HCHO,K044) = -K044*<HCHO> - PTERMS(:,28,45) = -TPK%K044(:)*PCONC(:,28) -! -!PTERMS(CO,K045) = +K045*<HCHO> - PTERMS(:,11,46) = +TPK%K045(:)*PCONC(:,28) -! -!PTERMS(HCHO,K045) = -K045*<HCHO> - PTERMS(:,28,46) = -TPK%K045(:)*PCONC(:,28) -! -!PTERMS(HO2,K046) = +K046*<OH>*<HCHO> - PTERMS(:,10,47) = +TPK%K046(:)*PCONC(:,15)*PCONC(:,28) -! -!PTERMS(CO,K046) = +K046*<OH>*<HCHO> - PTERMS(:,11,47) = +TPK%K046(:)*PCONC(:,15)*PCONC(:,28) -! -!PTERMS(OH,K046) = -K046*<OH>*<HCHO> - PTERMS(:,15,47) = -TPK%K046(:)*PCONC(:,15)*PCONC(:,28) -! -!PTERMS(HCHO,K046) = -K046*<OH>*<HCHO> - PTERMS(:,28,47) = -TPK%K046(:)*PCONC(:,15)*PCONC(:,28) -! -!PTERMS(HNO3,K047) = +K047*<NO3>*<HCHO> - PTERMS(:,5,48) = +TPK%K047(:)*PCONC(:,8)*PCONC(:,28) -! -! -RETURN -END SUBROUTINE SUBT5 -! -SUBROUTINE SUBT6 -! -!Indices 121 a 140 -! -!PTERMS(NO3,K047) = -K047*<NO3>*<HCHO> - PTERMS(:,8,48) = -TPK%K047(:)*PCONC(:,8)*PCONC(:,28) -! -!PTERMS(HO2,K047) = +K047*<NO3>*<HCHO> - PTERMS(:,10,48) = +TPK%K047(:)*PCONC(:,8)*PCONC(:,28) -! -!PTERMS(CO,K047) = +K047*<NO3>*<HCHO> - PTERMS(:,11,48) = +TPK%K047(:)*PCONC(:,8)*PCONC(:,28) -! -!PTERMS(HCHO,K047) = -K047*<NO3>*<HCHO> - PTERMS(:,28,48) = -TPK%K047(:)*PCONC(:,8)*PCONC(:,28) -! -!PTERMS(HO2,K048) = +K048*<OH>*<MEOH> - PTERMS(:,10,49) = +TPK%K048(:)*PCONC(:,15)*PCONC(:,32) -! -!PTERMS(OH,K048) = -K048*<OH>*<MEOH> - PTERMS(:,15,49) = -TPK%K048(:)*PCONC(:,15)*PCONC(:,32) -! -!PTERMS(HCHO,K048) = +K048*<OH>*<MEOH> - PTERMS(:,28,49) = +TPK%K048(:)*PCONC(:,15)*PCONC(:,32) -! -!PTERMS(MEOH,K048) = -K048*<OH>*<MEOH> - PTERMS(:,32,49) = -TPK%K048(:)*PCONC(:,15)*PCONC(:,32) -! -!PTERMS(OH,K049) = -K049*<OH>*<ETHE> - PTERMS(:,15,50) = -TPK%K049(:)*PCONC(:,15)*PCONC(:,16) -! -!PTERMS(ETHE,K049) = -K049*<OH>*<ETHE> - PTERMS(:,16,50) = -TPK%K049(:)*PCONC(:,15)*PCONC(:,16) -! -!PTERMS(RO2T,K049) = +K049*<OH>*<ETHE> - PTERMS(:,85,50) = +TPK%K049(:)*PCONC(:,15)*PCONC(:,16) -! -!PTERMS(NO3,K050) = -K050*<NO3>*<ETHE> - PTERMS(:,8,51) = -TPK%K050(:)*PCONC(:,8)*PCONC(:,16) -! -!PTERMS(ETHE,K050) = -K050*<NO3>*<ETHE> - PTERMS(:,16,51) = -TPK%K050(:)*PCONC(:,8)*PCONC(:,16) -! -!PTERMS(RO2T,K050) = +K050*<NO3>*<ETHE> - PTERMS(:,85,51) = +TPK%K050(:)*PCONC(:,8)*PCONC(:,16) -! -!PTERMS(O3,K051) = -K051*<O3>*<ETHE> - PTERMS(:,3,52) = -TPK%K051(:)*PCONC(:,3)*PCONC(:,16) -! -!PTERMS(HO2,K051) = +0.06*K051*<O3>*<ETHE> - PTERMS(:,10,52) = +0.06*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) -! -!PTERMS(CO,K051) = +0.315*K051*<O3>*<ETHE> - PTERMS(:,11,52) = +0.315*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) -! -!PTERMS(OH,K051) = +0.06*K051*<O3>*<ETHE> - PTERMS(:,15,52) = +0.06*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) -! -!PTERMS(ETHE,K051) = -K051*<O3>*<ETHE> - PTERMS(:,16,52) = -TPK%K051(:)*PCONC(:,3)*PCONC(:,16) -! -!PTERMS(HCHO,K051) = +0.5*K051*<O3>*<ETHE> - PTERMS(:,28,52) = +0.5*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) -! -! -RETURN -END SUBROUTINE SUBT6 -! -SUBROUTINE SUBT7 -! -!Indices 141 a 160 -! -!PTERMS(ORA1,K051) = +0.185*K051*<O3>*<ETHE> - PTERMS(:,43,52) = +0.185*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) -! -!PTERMS(HO2,K052) = +K052*<O>*<ETHE> - PTERMS(:,10,53) = +TPK%K052(:)*TPK%O(:)*PCONC(:,16) -! -!PTERMS(CO,K052) = +0.6*K052*<O>*<ETHE> - PTERMS(:,11,53) = +0.6*TPK%K052(:)*TPK%O(:)*PCONC(:,16) -! -!PTERMS(ETHE,K052) = -K052*<O>*<ETHE> - PTERMS(:,16,53) = -TPK%K052(:)*TPK%O(:)*PCONC(:,16) -! -!PTERMS(RO2T,K052) = +K052*<O>*<ETHE> - PTERMS(:,85,53) = +TPK%K052(:)*TPK%O(:)*PCONC(:,16) -! -!PTERMS(RO21,K052) = +0.6*K052*<O>*<ETHE> - PTERMS(:,86,53) = +0.6*TPK%K052(:)*TPK%O(:)*PCONC(:,16) -! -!PTERMS(HO2,K053) = +TPK%CF1*K053*<OH>*<ETOH> - PTERMS(:,10,54) = +TPK%CF1*TPK%K053(:)*PCONC(:,15)*PCONC(:,33) -! -!PTERMS(OH,K053) = -K053*<OH>*<ETOH> - PTERMS(:,15,54) = -TPK%K053(:)*PCONC(:,15)*PCONC(:,33) -! -!PTERMS(ALD2,K053) = +TPK%CF1*K053*<OH>*<ETOH> - PTERMS(:,29,54) = +TPK%CF1*TPK%K053(:)*PCONC(:,15)*PCONC(:,33) -! -!PTERMS(ETOH,K053) = -K053*<OH>*<ETOH> - PTERMS(:,33,54) = -TPK%K053(:)*PCONC(:,15)*PCONC(:,33) -! -!PTERMS(RO2T,K053) = +TPK%CF2*K053*<OH>*<ETOH> - PTERMS(:,85,54) = +TPK%CF2*TPK%K053(:)*PCONC(:,15)*PCONC(:,33) -! -!PTERMS(OH,K054) = -K054*<OH>*<OLEL> - PTERMS(:,15,55) = -TPK%K054(:)*PCONC(:,15)*PCONC(:,17) -! -!PTERMS(OLEL,K054) = -K054*<OH>*<OLEL> - PTERMS(:,17,55) = -TPK%K054(:)*PCONC(:,15)*PCONC(:,17) -! -!PTERMS(RO2T,K054) = +K054*<OH>*<OLEL> - PTERMS(:,85,55) = +TPK%K054(:)*PCONC(:,15)*PCONC(:,17) -! -!PTERMS(NO3,K055) = -K055*<NO3>*<OLEL> - PTERMS(:,8,56) = -TPK%K055(:)*PCONC(:,8)*PCONC(:,17) -! -!PTERMS(OLEL,K055) = -K055*<NO3>*<OLEL> - PTERMS(:,17,56) = -TPK%K055(:)*PCONC(:,8)*PCONC(:,17) -! -!PTERMS(RO2T,K055) = +K055*<NO3>*<OLEL> - PTERMS(:,85,56) = +TPK%K055(:)*PCONC(:,8)*PCONC(:,17) -! -!PTERMS(O3,K056) = -K056*<O3>*<OLEL> - PTERMS(:,3,57) = -TPK%K056(:)*PCONC(:,3)*PCONC(:,17) -! -!PTERMS(HO2,K056) = +0.28*K056*<O3>*<OLEL> - PTERMS(:,10,57) = +0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) -! -!PTERMS(CO,K056) = +0.56*K056*<O3>*<OLEL> - PTERMS(:,11,57) = +0.56*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) -! -! -RETURN -END SUBROUTINE SUBT7 -! -SUBROUTINE SUBT8 -! -!Indices 161 a 180 -! -!PTERMS(OH,K056) = +0.36*K056*<O3>*<OLEL> - PTERMS(:,15,57) = +0.36*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) -! -!PTERMS(OLEL,K056) = -K056*<O3>*<OLEL> - PTERMS(:,17,57) = -TPK%K056(:)*PCONC(:,3)*PCONC(:,17) -! -!PTERMS(ALKL,K056) = +0.1*K056*<O3>*<OLEL> - PTERMS(:,19,57) = +0.1*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) -! -!PTERMS(HCHO,K056) = +0.5*K056*<O3>*<OLEL> - PTERMS(:,28,57) = +0.5*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) -! -!PTERMS(ALD2,K056) = +0.5*K056*<O3>*<OLEL> - PTERMS(:,29,57) = +0.5*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) -! -!PTERMS(ORA1,K056) = +0.12*K056*<O3>*<OLEL> - PTERMS(:,43,57) = +0.12*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) -! -!PTERMS(ORA2,K056) = +0.12*K056*<O3>*<OLEL> - PTERMS(:,44,57) = +0.12*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) -! -!PTERMS(RO2T,K056) = +0.28*K056*<O3>*<OLEL> - PTERMS(:,85,57) = +0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) -! -!PTERMS(RO25,K056) = +0.28*K056*<O3>*<OLEL> - PTERMS(:,87,57) = +0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) -! -!PTERMS(OLEL,K057) = -K057*<O>*<OLEL> - PTERMS(:,17,58) = -TPK%K057(:)*TPK%O(:)*PCONC(:,17) -! -!PTERMS(ALKL,K057) = +0.5*K057*<O>*<OLEL> - PTERMS(:,19,58) = +0.5*TPK%K057(:)*TPK%O(:)*PCONC(:,17) -! -!PTERMS(ALD2,K057) = +0.4*K057*<O>*<OLEL> - PTERMS(:,29,58) = +0.4*TPK%K057(:)*TPK%O(:)*PCONC(:,17) -! -!PTERMS(RO2T,K057) = +0.2*K057*<O>*<OLEL> - PTERMS(:,85,58) = +0.2*TPK%K057(:)*TPK%O(:)*PCONC(:,17) -! -!PTERMS(RO25,K057) = +0.1*K057*<O>*<OLEL> - PTERMS(:,87,58) = +0.1*TPK%K057(:)*TPK%O(:)*PCONC(:,17) -! -!PTERMS(OH,K058) = -K058*<OH>*<ALKL> - PTERMS(:,15,59) = -TPK%K058(:)*PCONC(:,15)*PCONC(:,19) -! -!PTERMS(ALKL,K058) = -K058*<OH>*<ALKL> - PTERMS(:,19,59) = -TPK%K058(:)*PCONC(:,15)*PCONC(:,19) -! -!PTERMS(RO2T,K058) = +K058*<OH>*<ALKL> - PTERMS(:,85,59) = +TPK%K058(:)*PCONC(:,15)*PCONC(:,19) -! -!PTERMS(RO25,K058) = +K058*<OH>*<ALKL> - PTERMS(:,87,59) = +TPK%K058(:)*PCONC(:,15)*PCONC(:,19) -! -!PTERMS(HO2,K059) = +K059*<ALD2> - PTERMS(:,10,60) = +TPK%K059(:)*PCONC(:,29) -! -!PTERMS(CO,K059) = +K059*<ALD2> - PTERMS(:,11,60) = +TPK%K059(:)*PCONC(:,29) -! -! -RETURN -END SUBROUTINE SUBT8 -! -SUBROUTINE SUBT9 -! -!Indices 181 a 200 -! -!PTERMS(ALD2,K059) = -K059*<ALD2> - PTERMS(:,29,60) = -TPK%K059(:)*PCONC(:,29) -! -!PTERMS(RO2T,K059) = +K059*<ALD2> - PTERMS(:,85,60) = +TPK%K059(:)*PCONC(:,29) -! -!PTERMS(RO25,K059) = +K059*<ALD2> - PTERMS(:,87,60) = +TPK%K059(:)*PCONC(:,29) -! -!PTERMS(OH,K060) = -K060*<OH>*<ALD2> - PTERMS(:,15,61) = -TPK%K060(:)*PCONC(:,15)*PCONC(:,29) -! -!PTERMS(ALD2,K060) = -K060*<OH>*<ALD2> - PTERMS(:,29,61) = -TPK%K060(:)*PCONC(:,15)*PCONC(:,29) -! -!PTERMS(RO2T,K060) = +K060*<OH>*<ALD2> - PTERMS(:,85,61) = +TPK%K060(:)*PCONC(:,15)*PCONC(:,29) -! -!PTERMS(HNO3,K061) = +K061*<NO3>*<ALD2> - PTERMS(:,5,62) = +TPK%K061(:)*PCONC(:,8)*PCONC(:,29) -! -!PTERMS(NO3,K061) = -K061*<NO3>*<ALD2> - PTERMS(:,8,62) = -TPK%K061(:)*PCONC(:,8)*PCONC(:,29) -! -!PTERMS(ALD2,K061) = -K061*<NO3>*<ALD2> - PTERMS(:,29,62) = -TPK%K061(:)*PCONC(:,8)*PCONC(:,29) -! -!PTERMS(RO2T,K061) = +K061*<NO3>*<ALD2> - PTERMS(:,85,62) = +TPK%K061(:)*PCONC(:,8)*PCONC(:,29) -! -!PTERMS(OH,K062) = -K062*<OH>*<KETL> - PTERMS(:,15,63) = -TPK%K062(:)*PCONC(:,15)*PCONC(:,30) -! -!PTERMS(KETL,K062) = -K062*<OH>*<KETL> - PTERMS(:,30,63) = -TPK%K062(:)*PCONC(:,15)*PCONC(:,30) -! -!PTERMS(RO2T,K062) = +K062*<OH>*<KETL> - PTERMS(:,85,63) = +TPK%K062(:)*PCONC(:,15)*PCONC(:,30) -! -!PTERMS(KETL,K063) = -K063*<KETL> - PTERMS(:,30,64) = -TPK%K063(:)*PCONC(:,30) -! -!PTERMS(RO2T,K063) = +2.*K063*<KETL> - PTERMS(:,85,64) = +2.*TPK%K063(:)*PCONC(:,30) -! -!PTERMS(RO25,K063) = +K063*<KETL> - PTERMS(:,87,64) = +TPK%K063(:)*PCONC(:,30) -! -!PTERMS(OH,K064) = -K064*<OH>*<ISOP> - PTERMS(:,15,65) = -TPK%K064(:)*PCONC(:,15)*PCONC(:,35) -! -!PTERMS(ISOP,K064) = -K064*<OH>*<ISOP> - PTERMS(:,35,65) = -TPK%K064(:)*PCONC(:,15)*PCONC(:,35) -! -!PTERMS(RO2T,K064) = +K064*<OH>*<ISOP> - PTERMS(:,85,65) = +TPK%K064(:)*PCONC(:,15)*PCONC(:,35) -! -!PTERMS(NO3,K065) = -K065*<NO3>*<ISOP> - PTERMS(:,8,66) = -TPK%K065(:)*PCONC(:,8)*PCONC(:,35) -! -! -RETURN -END SUBROUTINE SUBT9 -! -SUBROUTINE SUBT10 -! -!Indices 201 a 220 -! -!PTERMS(ISOP,K065) = -K065*<NO3>*<ISOP> - PTERMS(:,35,66) = -TPK%K065(:)*PCONC(:,8)*PCONC(:,35) -! -!PTERMS(RO2T,K065) = +K065*<NO3>*<ISOP> - PTERMS(:,85,66) = +TPK%K065(:)*PCONC(:,8)*PCONC(:,35) -! -!PTERMS(O3,K066) = -K066*<O3>*<ISOP> - PTERMS(:,3,67) = -TPK%K066(:)*PCONC(:,3)*PCONC(:,35) -! -!PTERMS(HO2,K066) = +0.366*K066*<O3>*<ISOP> - PTERMS(:,10,67) = +0.366*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) -! -!PTERMS(CO,K066) = +0.461*K066*<O3>*<ISOP> - PTERMS(:,11,67) = +0.461*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) -! -!PTERMS(OH,K066) = +0.664*K066*<O3>*<ISOP> - PTERMS(:,15,67) = +0.664*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) -! -!PTERMS(OLEL,K066) = +0.054*K066*<O3>*<ISOP> - PTERMS(:,17,67) = +0.054*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) -! -!PTERMS(HCHO,K066) = +0.5*K066*<O3>*<ISOP> - PTERMS(:,28,67) = +0.5*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) -! -!PTERMS(ISOP,K066) = -K066*<O3>*<ISOP> - PTERMS(:,35,67) = -TPK%K066(:)*PCONC(:,3)*PCONC(:,35) -! -!PTERMS(MVK,K066) = +0.389*K066*<O3>*<ISOP> - PTERMS(:,39,67) = +0.389*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) -! -!PTERMS(MCR,K066) = +0.17*K066*<O3>*<ISOP> - PTERMS(:,40,67) = +0.17*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) -! -!PTERMS(ORA1,K066) = +0.121*K066*<O3>*<ISOP> - PTERMS(:,43,67) = +0.121*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) -! -!PTERMS(RO2T,K066) = +0.366*K066*<O3>*<ISOP> - PTERMS(:,85,67) = +0.366*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) -! -!PTERMS(OLEL,K067) = +0.925*K067*<O>*<ISOP> - PTERMS(:,17,68) = +0.925*TPK%K067(:)*TPK%O(:)*PCONC(:,35) -! -!PTERMS(ALD2,K067) = +0.075*K067*<O>*<ISOP> - PTERMS(:,29,68) = +0.075*TPK%K067(:)*TPK%O(:)*PCONC(:,35) -! -!PTERMS(ISOP,K067) = -K067*<O>*<ISOP> - PTERMS(:,35,68) = -TPK%K067(:)*TPK%O(:)*PCONC(:,35) -! -!PTERMS(OH,K068) = -K068*<OH>*<MTBE> - PTERMS(:,15,69) = -TPK%K068(:)*PCONC(:,15)*PCONC(:,38) -! -!PTERMS(MTBE,K068) = -K068*<OH>*<MTBE> - PTERMS(:,38,69) = -TPK%K068(:)*PCONC(:,15)*PCONC(:,38) -! -!PTERMS(RO2T,K068) = +K068*<OH>*<MTBE> - PTERMS(:,85,69) = +TPK%K068(:)*PCONC(:,15)*PCONC(:,38) -! -!PTERMS(OH,K069) = -K069*<OH>*<ALCH> - PTERMS(:,15,70) = -TPK%K069(:)*PCONC(:,15)*PCONC(:,34) -! -! -RETURN -END SUBROUTINE SUBT10 -! -SUBROUTINE SUBT11 -! -!Indices 221 a 240 -! -!PTERMS(ALCH,K069) = -K069*<OH>*<ALCH> - PTERMS(:,34,70) = -TPK%K069(:)*PCONC(:,15)*PCONC(:,34) -! -!PTERMS(RO2T,K069) = +K069*<OH>*<ALCH> - PTERMS(:,85,70) = +TPK%K069(:)*PCONC(:,15)*PCONC(:,34) -! -!PTERMS(OH,K070) = -K070*<OH>*<KETH> - PTERMS(:,15,71) = -TPK%K070(:)*PCONC(:,15)*PCONC(:,31) -! -!PTERMS(KETH,K070) = -K070*<OH>*<KETH> - PTERMS(:,31,71) = -TPK%K070(:)*PCONC(:,15)*PCONC(:,31) -! -!PTERMS(RO2T,K070) = +K070*<OH>*<KETH> - PTERMS(:,85,71) = +TPK%K070(:)*PCONC(:,15)*PCONC(:,31) -! -!PTERMS(KETH,K071) = -K071*<KETH> - PTERMS(:,31,72) = -TPK%K071(:)*PCONC(:,31) -! -!PTERMS(RO2T,K071) = +2.*K071*<KETH> - PTERMS(:,85,72) = +2.*TPK%K071(:)*PCONC(:,31) -! -!PTERMS(RO25,K071) = +K071*<KETH> - PTERMS(:,87,72) = +TPK%K071(:)*PCONC(:,31) -! -!PTERMS(HNO3,K072) = +K072*<NO3>*<AROO> - PTERMS(:,5,73) = +TPK%K072(:)*PCONC(:,8)*PCONC(:,24) -! -!PTERMS(NO3,K072) = -K072*<NO3>*<AROO> - PTERMS(:,8,73) = -TPK%K072(:)*PCONC(:,8)*PCONC(:,24) -! -!PTERMS(AROO,K072) = -K072*<NO3>*<AROO> - PTERMS(:,24,73) = -TPK%K072(:)*PCONC(:,8)*PCONC(:,24) -! -!PTERMS(HO2,K073) = +0.16*K073*<OH>*<AROO> - PTERMS(:,10,74) = +0.16*TPK%K073(:)*PCONC(:,15)*PCONC(:,24) -! -!PTERMS(OH,K073) = -K073*<OH>*<AROO> - PTERMS(:,15,74) = -TPK%K073(:)*PCONC(:,15)*PCONC(:,24) -! -!PTERMS(AROO,K073) = -K073*<OH>*<AROO> - PTERMS(:,24,74) = -TPK%K073(:)*PCONC(:,15)*PCONC(:,24) -! -!PTERMS(RO2T,K073) = +0.1*K073*<OH>*<AROO> - PTERMS(:,85,74) = +0.1*TPK%K073(:)*PCONC(:,15)*PCONC(:,24) -! -!PTERMS(OH,K074) = -K074*<OH>*<OLEH> - PTERMS(:,15,75) = -TPK%K074(:)*PCONC(:,15)*PCONC(:,18) -! -!PTERMS(OLEH,K074) = -K074*<OH>*<OLEH> - PTERMS(:,18,75) = -TPK%K074(:)*PCONC(:,15)*PCONC(:,18) -! -!PTERMS(RO2T,K074) = +K074*<OH>*<OLEH> - PTERMS(:,85,75) = +TPK%K074(:)*PCONC(:,15)*PCONC(:,18) -! -!PTERMS(NO3,K075) = -K075*<NO3>*<OLEH> - PTERMS(:,8,76) = -TPK%K075(:)*PCONC(:,8)*PCONC(:,18) -! -!PTERMS(OLEH,K075) = -K075*<NO3>*<OLEH> - PTERMS(:,18,76) = -TPK%K075(:)*PCONC(:,8)*PCONC(:,18) -! -! -RETURN -END SUBROUTINE SUBT11 -! -SUBROUTINE SUBT12 -! -!Indices 241 a 260 -! -!PTERMS(RO2T,K075) = +K075*<NO3>*<OLEH> - PTERMS(:,85,76) = +TPK%K075(:)*PCONC(:,8)*PCONC(:,18) -! -!PTERMS(O3,K076) = -K076*<O3>*<OLEH> - PTERMS(:,3,77) = -TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(HO2,K076) = +0.28*K076*<O3>*<OLEH> - PTERMS(:,10,77) = +0.28*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(CO,K076) = +0.56*K076*<O3>*<OLEH> - PTERMS(:,11,77) = +0.56*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(OH,K076) = +0.36*K076*<O3>*<OLEH> - PTERMS(:,15,77) = +0.36*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(OLEH,K076) = -K076*<O3>*<OLEH> - PTERMS(:,18,77) = -TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(ALKM,K076) = +0.1*K076*<O3>*<OLEH> - PTERMS(:,20,77) = +0.1*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(HCHO,K076) = +0.5*K076*<O3>*<OLEH> - PTERMS(:,28,77) = +0.5*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(ACID,K076) = +0.12*K076*<O3>*<OLEH> - PTERMS(:,45,77) = +0.12*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(RPR1,K076) = +0.5*K076*<O3>*<OLEH> - PTERMS(:,69,77) = +0.5*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(RO2T,K076) = +0.28*K076*<O3>*<OLEH> - PTERMS(:,85,77) = +0.28*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(OLEH,K077) = -K077*<O>*<OLEH> - PTERMS(:,18,78) = -TPK%K077(:)*TPK%O(:)*PCONC(:,18) -! -!PTERMS(ALKM,K077) = +0.5*K077*<O>*<OLEH> - PTERMS(:,20,78) = +0.5*TPK%K077(:)*TPK%O(:)*PCONC(:,18) -! -!PTERMS(RPR1,K077) = +0.4*K077*<O>*<OLEH> - PTERMS(:,69,78) = +0.4*TPK%K077(:)*TPK%O(:)*PCONC(:,18) -! -!PTERMS(RO2T,K077) = +0.2*K077*<O>*<OLEH> - PTERMS(:,85,78) = +0.2*TPK%K077(:)*TPK%O(:)*PCONC(:,18) -! -!PTERMS(OH,K078) = -K078*<OH>*<ALKM> - PTERMS(:,15,79) = -TPK%K078(:)*PCONC(:,15)*PCONC(:,20) -! -!PTERMS(ALKM,K078) = -K078*<OH>*<ALKM> - PTERMS(:,20,79) = -TPK%K078(:)*PCONC(:,15)*PCONC(:,20) -! -!PTERMS(RO2T,K078) = +K078*<OH>*<ALKM> - PTERMS(:,85,79) = +TPK%K078(:)*PCONC(:,15)*PCONC(:,20) -! -!PTERMS(HO2,K079) = +0.16*K079*<OH>*<AROL> - PTERMS(:,10,80) = +0.16*TPK%K079(:)*PCONC(:,15)*PCONC(:,23) -! -!PTERMS(OH,K079) = -K079*<OH>*<AROL> - PTERMS(:,15,80) = -TPK%K079(:)*PCONC(:,15)*PCONC(:,23) -! -! -RETURN -END SUBROUTINE SUBT12 -! -SUBROUTINE SUBT13 -! -!Indices 261 a 280 -! -!PTERMS(AROL,K079) = -K079*<OH>*<AROL> - PTERMS(:,23,80) = -TPK%K079(:)*PCONC(:,15)*PCONC(:,23) -! -!PTERMS(AROO,K079) = +0.16*K079*<OH>*<AROL> - PTERMS(:,24,80) = +0.16*TPK%K079(:)*PCONC(:,15)*PCONC(:,23) -! -!PTERMS(RO2T,K079) = +0.06*K079*<OH>*<AROL> - PTERMS(:,85,80) = +0.06*TPK%K079(:)*PCONC(:,15)*PCONC(:,23) -! -!PTERMS(HO2,K080) = +0.16*K080*<OH>*<AROH> - PTERMS(:,10,81) = +0.16*TPK%K080(:)*PCONC(:,15)*PCONC(:,22) -! -!PTERMS(OH,K080) = -K080*<OH>*<AROH> - PTERMS(:,15,81) = -TPK%K080(:)*PCONC(:,15)*PCONC(:,22) -! -!PTERMS(AROH,K080) = -K080*<OH>*<AROH> - PTERMS(:,22,81) = -TPK%K080(:)*PCONC(:,15)*PCONC(:,22) -! -!PTERMS(AROO,K080) = +0.16*K080*<OH>*<AROH> - PTERMS(:,24,81) = +0.16*TPK%K080(:)*PCONC(:,15)*PCONC(:,22) -! -!PTERMS(O3,K081) = +K081*<NO3>*<ARAL> - PTERMS(:,3,82) = +TPK%K081(:)*PCONC(:,8)*PCONC(:,25) -! -!PTERMS(HNO3,K081) = +K081*<NO3>*<ARAL> - PTERMS(:,5,82) = +TPK%K081(:)*PCONC(:,8)*PCONC(:,25) -! -!PTERMS(NO3,K081) = -K081*<NO3>*<ARAL> - PTERMS(:,8,82) = -TPK%K081(:)*PCONC(:,8)*PCONC(:,25) -! -!PTERMS(ARAL,K081) = -K081*<NO3>*<ARAL> - PTERMS(:,25,82) = -TPK%K081(:)*PCONC(:,8)*PCONC(:,25) -! -!PTERMS(ARAC,K081) = +K081*<NO3>*<ARAL> - PTERMS(:,26,82) = +TPK%K081(:)*PCONC(:,8)*PCONC(:,25) -! -!PTERMS(O3,K082) = +TPK%CF39*K082*<OH>*<ARAL> - PTERMS(:,3,83) = +TPK%CF39*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) -! -!PTERMS(HO2,K082) = +TPK%CF48*K082*<OH>*<ARAL> - PTERMS(:,10,83) = +TPK%CF48*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) -! -!PTERMS(OH,K082) = -K082*<OH>*<ARAL> - PTERMS(:,15,83) = -TPK%K082(:)*PCONC(:,15)*PCONC(:,25) -! -!PTERMS(ARAL,K082) = -K082*<OH>*<ARAL> - PTERMS(:,25,83) = -TPK%K082(:)*PCONC(:,15)*PCONC(:,25) -! -!PTERMS(ARAC,K082) = +TPK%CF39*K082*<OH>*<ARAL> - PTERMS(:,26,83) = +TPK%CF39*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) -! -!PTERMS(RPRL,K082) = +0.9983609*K082*<OH>*<ARAL> - PTERMS(:,75,83) = +0.9983609*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) -! -!PTERMS(RO2T,K082) = +TPK%CF45*K082*<OH>*<ARAL> - PTERMS(:,85,83) = +TPK%CF45*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) -! -!PTERMS(HO2,K083) = +0.16*K083*<OH>*<ARAC> - PTERMS(:,10,84) = +0.16*TPK%K083(:)*PCONC(:,15)*PCONC(:,26) -! -! -RETURN -END SUBROUTINE SUBT13 -! -SUBROUTINE SUBT14 -! -!Indices 281 a 300 -! -!PTERMS(OH,K083) = -K083*<OH>*<ARAC> - PTERMS(:,15,84) = -TPK%K083(:)*PCONC(:,15)*PCONC(:,26) -! -!PTERMS(ARAC,K083) = -K083*<OH>*<ARAC> - PTERMS(:,26,84) = -TPK%K083(:)*PCONC(:,15)*PCONC(:,26) -! -!PTERMS(URG7,K083) = +0.1599999*K083*<OH>*<ARAC> - PTERMS(:,60,84) = +0.1599999*TPK%K083(:)*PCONC(:,15)*PCONC(:,26) -! -!PTERMS(RO2T,K083) = +0.1*K083*<OH>*<ARAC> - PTERMS(:,85,84) = +0.1*TPK%K083(:)*PCONC(:,15)*PCONC(:,26) -! -!PTERMS(OH,K084) = -K084*<OH>*<BIOL> - PTERMS(:,15,85) = -TPK%K084(:)*PCONC(:,15)*PCONC(:,36) -! -!PTERMS(BIOL,K084) = -K084*<OH>*<BIOL> - PTERMS(:,36,85) = -TPK%K084(:)*PCONC(:,15)*PCONC(:,36) -! -!PTERMS(RO2T,K084) = +K084*<OH>*<BIOL> - PTERMS(:,85,85) = +TPK%K084(:)*PCONC(:,15)*PCONC(:,36) -! -!PTERMS(NO3,K085) = -K085*<NO3>*<BIOL> - PTERMS(:,8,86) = -TPK%K085(:)*PCONC(:,8)*PCONC(:,36) -! -!PTERMS(BIOL,K085) = -K085*<NO3>*<BIOL> - PTERMS(:,36,86) = -TPK%K085(:)*PCONC(:,8)*PCONC(:,36) -! -!PTERMS(RO2T,K085) = +K085*<NO3>*<BIOL> - PTERMS(:,85,86) = +TPK%K085(:)*PCONC(:,8)*PCONC(:,36) -! -!PTERMS(O3,K086) = -K086*<O3>*<BIOL> - PTERMS(:,3,87) = -TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(HO2,K086) = +0.445*K086*<O3>*<BIOL> - PTERMS(:,10,87) = +0.445*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(CO,K086) = +0.445*K086*<O3>*<BIOL> - PTERMS(:,11,87) = +0.445*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(H2O2,K086) = +0.055*K086*<O3>*<BIOL> - PTERMS(:,12,87) = +0.055*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(OH,K086) = +0.89*K086*<O3>*<BIOL> - PTERMS(:,15,87) = +0.89*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(BIOL,K086) = -K086*<O3>*<BIOL> - PTERMS(:,36,87) = -TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(URG4,K086) = +5.5000000E-02*K086*<O3>*<BIOL> - PTERMS(:,53,87) = +5.5000000E-02*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(RPR3,K086) = +0.055*K086*<O3>*<BIOL> - PTERMS(:,57,87) = +0.055*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(RO2T,K086) = +0.445*K086*<O3>*<BIOL> - PTERMS(:,85,87) = +0.445*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(BIOL,K087) = -K087*<O>*<BIOL> - PTERMS(:,36,88) = -TPK%K087(:)*TPK%O(:)*PCONC(:,36) -! -! -RETURN -END SUBROUTINE SUBT14 -! -SUBROUTINE SUBT15 -! -!Indices 301 a 320 -! -!PTERMS(URG10,K087) = +0.7500000*K087*<O>*<BIOL> - PTERMS(:,68,88) = +0.7500000*TPK%K087(:)*TPK%O(:)*PCONC(:,36) -! -!PTERMS(OH,K088) = -K088*<OH>*<BIOH> - PTERMS(:,15,89) = -TPK%K088(:)*PCONC(:,15)*PCONC(:,37) -! -!PTERMS(BIOH,K088) = -K088*<OH>*<BIOH> - PTERMS(:,37,89) = -TPK%K088(:)*PCONC(:,15)*PCONC(:,37) -! -!PTERMS(RO2T,K088) = +K088*<OH>*<BIOH> - PTERMS(:,85,89) = +TPK%K088(:)*PCONC(:,15)*PCONC(:,37) -! -!PTERMS(NO3,K089) = -K089*<NO3>*<BIOH> - PTERMS(:,8,90) = -TPK%K089(:)*PCONC(:,8)*PCONC(:,37) -! -!PTERMS(BIOH,K089) = -K089*<NO3>*<BIOH> - PTERMS(:,37,90) = -TPK%K089(:)*PCONC(:,8)*PCONC(:,37) -! -!PTERMS(RO2T,K089) = +K089*<NO3>*<BIOH> - PTERMS(:,85,90) = +TPK%K089(:)*PCONC(:,8)*PCONC(:,37) -! -!PTERMS(O3,K090) = -K090*<O3>*<BIOH> - PTERMS(:,3,91) = -TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -! -!PTERMS(CO,K090) = +0.445*K090*<O3>*<BIOH> - PTERMS(:,11,91) = +0.445*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -! -!PTERMS(H2O2,K090) = +0.055*K090*<O3>*<BIOH> - PTERMS(:,12,91) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -! -!PTERMS(OH,K090) = +0.89*K090*<O3>*<BIOH> - PTERMS(:,15,91) = +0.89*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -! -!PTERMS(BIOH,K090) = -K090*<O3>*<BIOH> - PTERMS(:,37,91) = -TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -! -!PTERMS(UR8,K090) = +0.055*K090*<O3>*<BIOH> - PTERMS(:,54,91) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -! -!PTERMS(UR7,K090) = +0.055*K090*<O3>*<BIOH> - PTERMS(:,56,91) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -! -!PTERMS(RO2T,K090) = +0.89*K090*<O3>*<BIOH> - PTERMS(:,85,91) = +0.89*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -! -!PTERMS(BIOH,K091) = -K091*<O>*<BIOH> - PTERMS(:,37,92) = -TPK%K091(:)*TPK%O(:)*PCONC(:,37) -! -!PTERMS(HO2,K092) = +0.16*K092*<OH>*<PAH> - PTERMS(:,10,93) = +0.16*TPK%K092(:)*PCONC(:,15)*PCONC(:,27) -! -!PTERMS(OH,K092) = -K092*<OH>*<PAH> - PTERMS(:,15,93) = -TPK%K092(:)*PCONC(:,15)*PCONC(:,27) -! -!PTERMS(PAH,K092) = -K092*<OH>*<PAH> - PTERMS(:,27,93) = -TPK%K092(:)*PCONC(:,15)*PCONC(:,27) -! -!PTERMS(URG8,K092) = +0.1600000*K092*<OH>*<PAH> - PTERMS(:,64,93) = +0.1600000*TPK%K092(:)*PCONC(:,15)*PCONC(:,27) -! -! -RETURN -END SUBROUTINE SUBT15 -! -SUBROUTINE SUBT16 -! -!Indices 321 a 340 -! -!PTERMS(RO2T,K092) = +0.1*K092*<OH>*<PAH> - PTERMS(:,85,93) = +0.1*TPK%K092(:)*PCONC(:,15)*PCONC(:,27) -! -!PTERMS(OH,K093) = -K093*<OH>*<ALKH> - PTERMS(:,15,94) = -TPK%K093(:)*PCONC(:,15)*PCONC(:,21) -! -!PTERMS(ALKH,K093) = -K093*<OH>*<ALKH> - PTERMS(:,21,94) = -TPK%K093(:)*PCONC(:,15)*PCONC(:,21) -! -!PTERMS(RO2T,K093) = +K093*<OH>*<ALKH> - PTERMS(:,85,94) = +TPK%K093(:)*PCONC(:,15)*PCONC(:,21) -! -!PTERMS(HO2,K094) = -K094*<HO2>*<RO2T> - PTERMS(:,10,95) = -TPK%K094(:)*PCONC(:,10)*PCONC(:,85) -! -!PTERMS(RO2T,K094) = -K094*<HO2>*<RO2T> - PTERMS(:,85,95) = -TPK%K094(:)*PCONC(:,10)*PCONC(:,85) -! -!PTERMS(NO,K095) = -K095*<NO>*<RO2T> - PTERMS(:,1,96) = -TPK%K095(:)*PCONC(:,1)*PCONC(:,85) -! -!PTERMS(RO2T,K095) = -K095*<NO>*<RO2T> - PTERMS(:,85,96) = -TPK%K095(:)*PCONC(:,1)*PCONC(:,85) -! -!PTERMS(RO2T,K096) = -K096*<RO2T>*<RO2T> - PTERMS(:,85,97) = -TPK%K096(:)*PCONC(:,85)*PCONC(:,85) -! -!PTERMS(RO2T,K097) = +K097*<RAD2> - PTERMS(:,85,98) = +TPK%K097(:)*TPK%RAD2(:) -! -!PTERMS(RO2T,K098) = +K098*<RAD3> - PTERMS(:,85,99) = +TPK%K098(:)*TPK%RAD3(:) -! -!PTERMS(RO2T,K099) = +K099*<RAD4> - PTERMS(:,85,100) = +TPK%K099(:)*TPK%RAD4(:) -! -!PTERMS(RO2T,K100) = +K100*<RAD5> - PTERMS(:,85,101) = +TPK%K100(:)*TPK%RAD5(:) -! -!PTERMS(RO2T,K101) = +K101*<RAD6> - PTERMS(:,85,102) = +TPK%K101(:)*TPK%RAD6(:) -! -!PTERMS(RO2T,K102) = +K102*<RAD7> - PTERMS(:,85,103) = +TPK%K102(:)*TPK%RAD7(:) -! -!PTERMS(NO2,K103) = -K103*<NO2>*<RAD1> - PTERMS(:,2,104) = -TPK%K103(:)*PCONC(:,2)*TPK%RAD1(:) -! -!PTERMS(RPR4,K103) = +K103*<NO2>*<RAD1> - PTERMS(:,61,104) = +TPK%K103(:)*PCONC(:,2)*TPK%RAD1(:) -! -!PTERMS(NO2,K104) = -K104*<NO2>*<RAD2> - PTERMS(:,2,105) = -TPK%K104(:)*PCONC(:,2)*TPK%RAD2(:) -! -!PTERMS(RPR4,K104) = +K104*<NO2>*<RAD2> - PTERMS(:,61,105) = +TPK%K104(:)*PCONC(:,2)*TPK%RAD2(:) -! -!PTERMS(NO2,K105) = -K105*<NO2>*<RAD3> - PTERMS(:,2,106) = -TPK%K105(:)*PCONC(:,2)*TPK%RAD3(:) -! -! -RETURN -END SUBROUTINE SUBT16 -! -SUBROUTINE SUBT17 -! -!Indices 341 a 360 -! -!PTERMS(NO2,K106) = -K106*<NO2>*<RAD4> - PTERMS(:,2,107) = -TPK%K106(:)*PCONC(:,2)*TPK%RAD4(:) -! -!PTERMS(NO2,K107) = -K107*<NO2>*<RAD5> - PTERMS(:,2,108) = -TPK%K107(:)*PCONC(:,2)*TPK%RAD5(:) -! -!PTERMS(RPR5,K107) = +K107*<NO2>*<RAD5> - PTERMS(:,70,108) = +TPK%K107(:)*PCONC(:,2)*TPK%RAD5(:) -! -!PTERMS(NO2,K108) = -K108*<NO2>*<RAD6> - PTERMS(:,2,109) = -TPK%K108(:)*PCONC(:,2)*TPK%RAD6(:) -! -!PTERMS(URG7,K108) = +0.9999993*K108*<NO2>*<RAD6> - PTERMS(:,60,109) = +0.9999993*TPK%K108(:)*PCONC(:,2)*TPK%RAD6(:) -! -!PTERMS(NO2,K109) = -K109*<NO2>*<RAD7> - PTERMS(:,2,110) = -TPK%K109(:)*PCONC(:,2)*TPK%RAD7(:) -! -!PTERMS(URG8,K109) = +1.0000000*K109*<NO2>*<RAD7> - PTERMS(:,64,110) = +1.0000000*TPK%K109(:)*PCONC(:,2)*TPK%RAD7(:) -! -!PTERMS(NO,K110) = -K110*<NO>*<RO21> - PTERMS(:,1,111) = -TPK%K110(:)*PCONC(:,1)*PCONC(:,86) -! -!PTERMS(NO2,K110) = +K110*<NO>*<RO21> - PTERMS(:,2,111) = +TPK%K110(:)*PCONC(:,1)*PCONC(:,86) -! -!PTERMS(HO2,K110) = +K110*<NO>*<RO21> - PTERMS(:,10,111) = +TPK%K110(:)*PCONC(:,1)*PCONC(:,86) -! -!PTERMS(HCHO,K110) = +K110*<NO>*<RO21> - PTERMS(:,28,111) = +TPK%K110(:)*PCONC(:,1)*PCONC(:,86) -! -!PTERMS(RO21,K110) = -K110*<NO>*<RO21> - PTERMS(:,86,111) = -TPK%K110(:)*PCONC(:,1)*PCONC(:,86) -! -!PTERMS(HO2,K111) = +K111*<RO2T>*<RO21> - PTERMS(:,10,112) = +TPK%K111(:)*PCONC(:,85)*PCONC(:,86) -! -!PTERMS(HCHO,K111) = +K111*<RO2T>*<RO21> - PTERMS(:,28,112) = +TPK%K111(:)*PCONC(:,85)*PCONC(:,86) -! -!PTERMS(RO2T,K111) = -K111*<RO2T>*<RO21> - PTERMS(:,85,112) = -TPK%K111(:)*PCONC(:,85)*PCONC(:,86) -! -!PTERMS(RO21,K111) = -K111*<RO2T>*<RO21> - PTERMS(:,86,112) = -TPK%K111(:)*PCONC(:,85)*PCONC(:,86) -! -!PTERMS(HO2,K112) = -K112*<HO2>*<RO21> - PTERMS(:,10,113) = -TPK%K112(:)*PCONC(:,10)*PCONC(:,86) -! -!PTERMS(OH,K112) = +K112*<HO2>*<RO21> - PTERMS(:,15,113) = +TPK%K112(:)*PCONC(:,10)*PCONC(:,86) -! -!PTERMS(HCHO,K112) = +K112*<HO2>*<RO21> - PTERMS(:,28,113) = +TPK%K112(:)*PCONC(:,10)*PCONC(:,86) -! -!PTERMS(RO21,K112) = -K112*<HO2>*<RO21> - PTERMS(:,86,113) = -TPK%K112(:)*PCONC(:,10)*PCONC(:,86) -! -! -RETURN -END SUBROUTINE SUBT17 -! -SUBROUTINE SUBT18 -! -!Indices 361 a 380 -! -!PTERMS(NO,K113) = -K113*<NO>*<RO22> - PTERMS(:,1,114) = -TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) -! -!PTERMS(NO2,K113) = +K113*<NO>*<RO22> - PTERMS(:,2,114) = +TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) -! -!PTERMS(HO2,K113) = +K113*<NO>*<RO22> - PTERMS(:,10,114) = +TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) -! -!PTERMS(HCHO,K113) = +K113*<NO>*<RO22> - PTERMS(:,28,114) = +TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) -! -!PTERMS(ALD2,K113) = +K113*<NO>*<RO22> - PTERMS(:,29,114) = +TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) -! -!PTERMS(HO2,K114) = +K114*<RO2T>*<RO22> - PTERMS(:,10,115) = +TPK%K114(:)*PCONC(:,85)*TPK%RO22(:) -! -!PTERMS(HCHO,K114) = +K114*<RO2T>*<RO22> - PTERMS(:,28,115) = +TPK%K114(:)*PCONC(:,85)*TPK%RO22(:) -! -!PTERMS(ALD2,K114) = +K114*<RO2T>*<RO22> - PTERMS(:,29,115) = +TPK%K114(:)*PCONC(:,85)*TPK%RO22(:) -! -!PTERMS(RO2T,K114) = -K114*<RO2T>*<RO22> - PTERMS(:,85,115) = -TPK%K114(:)*PCONC(:,85)*TPK%RO22(:) -! -!PTERMS(HO2,K115) = -K115*<HO2>*<RO22> - PTERMS(:,10,116) = -TPK%K115(:)*PCONC(:,10)*TPK%RO22(:) -! -!PTERMS(OH,K115) = +K115*<HO2>*<RO22> - PTERMS(:,15,116) = +TPK%K115(:)*PCONC(:,10)*TPK%RO22(:) -! -!PTERMS(HCHO,K115) = +K115*<HO2>*<RO22> - PTERMS(:,28,116) = +TPK%K115(:)*PCONC(:,10)*TPK%RO22(:) -! -!PTERMS(ALD2,K115) = +K115*<HO2>*<RO22> - PTERMS(:,29,116) = +TPK%K115(:)*PCONC(:,10)*TPK%RO22(:) -! -!PTERMS(NO,K116) = -K116*<NO>*<RO23> - PTERMS(:,1,117) = -TPK%K116(:)*PCONC(:,1)*TPK%RO23(:) -! -!PTERMS(NO2,K116) = +2.*K116*<NO>*<RO23> - PTERMS(:,2,117) = +2.*TPK%K116(:)*PCONC(:,1)*TPK%RO23(:) -! -!PTERMS(HCHO,K116) = +K116*<NO>*<RO23> - PTERMS(:,28,117) = +TPK%K116(:)*PCONC(:,1)*TPK%RO23(:) -! -!PTERMS(ALD2,K116) = +K116*<NO>*<RO23> - PTERMS(:,29,117) = +TPK%K116(:)*PCONC(:,1)*TPK%RO23(:) -! -!PTERMS(NO2,K117) = +K117*<RO2T>*<RO23> - PTERMS(:,2,118) = +TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) -! -!PTERMS(HO2,K117) = +K117*<RO2T>*<RO23> - PTERMS(:,10,118) = +TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) -! -!PTERMS(HCHO,K117) = +K117*<RO2T>*<RO23> - PTERMS(:,28,118) = +TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) -! -! -RETURN -END SUBROUTINE SUBT18 -! -SUBROUTINE SUBT19 -! -!Indices 381 a 400 -! -!PTERMS(ALD2,K117) = +K117*<RO2T>*<RO23> - PTERMS(:,29,118) = +TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) -! -!PTERMS(RO2T,K117) = -K117*<RO2T>*<RO23> - PTERMS(:,85,118) = -TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) -! -!PTERMS(NO2,K118) = +K118*<HO2>*<RO23> - PTERMS(:,2,119) = +TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) -! -!PTERMS(HO2,K118) = -K118*<HO2>*<RO23> - PTERMS(:,10,119) = -TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) -! -!PTERMS(OH,K118) = +K118*<HO2>*<RO23> - PTERMS(:,15,119) = +TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) -! -!PTERMS(HCHO,K118) = +K118*<HO2>*<RO23> - PTERMS(:,28,119) = +TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) -! -!PTERMS(ALD2,K118) = +K118*<HO2>*<RO23> - PTERMS(:,29,119) = +TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) -! -!PTERMS(NO,K119) = -K119*<NO>*<RO24> - PTERMS(:,1,120) = -TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) -! -!PTERMS(NO2,K119) = +K119*<NO>*<RO24> - PTERMS(:,2,120) = +TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) -! -!PTERMS(HO2,K119) = +K119*<NO>*<RO24> - PTERMS(:,10,120) = +TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) -! -!PTERMS(CO,K119) = +K119*<NO>*<RO24> - PTERMS(:,11,120) = +TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) -! -!PTERMS(HCHO,K119) = +K119*<NO>*<RO24> - PTERMS(:,28,120) = +TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) -! -!PTERMS(HO2,K120) = +K120*<RO2T>*<RO24> - PTERMS(:,10,121) = +TPK%K120(:)*PCONC(:,85)*TPK%RO24(:) -! -!PTERMS(CO,K120) = +K120*<RO2T>*<RO24> - PTERMS(:,11,121) = +TPK%K120(:)*PCONC(:,85)*TPK%RO24(:) -! -!PTERMS(HCHO,K120) = +K120*<RO2T>*<RO24> - PTERMS(:,28,121) = +TPK%K120(:)*PCONC(:,85)*TPK%RO24(:) -! -!PTERMS(RO2T,K120) = -K120*<RO2T>*<RO24> - PTERMS(:,85,121) = -TPK%K120(:)*PCONC(:,85)*TPK%RO24(:) -! -!PTERMS(HO2,K121) = -K121*<HO2>*<RO24> - PTERMS(:,10,122) = -TPK%K121(:)*PCONC(:,10)*TPK%RO24(:) -! -!PTERMS(CO,K121) = +K121*<HO2>*<RO24> - PTERMS(:,11,122) = +TPK%K121(:)*PCONC(:,10)*TPK%RO24(:) -! -!PTERMS(OH,K121) = +K121*<HO2>*<RO24> - PTERMS(:,15,122) = +TPK%K121(:)*PCONC(:,10)*TPK%RO24(:) -! -!PTERMS(HCHO,K121) = +K121*<HO2>*<RO24> - PTERMS(:,28,122) = +TPK%K121(:)*PCONC(:,10)*TPK%RO24(:) -! -! -RETURN -END SUBROUTINE SUBT19 -! -SUBROUTINE SUBT20 -! -!Indices 401 a 420 -! -!PTERMS(NO,K122) = -K122*<NO>*<RO25> - PTERMS(:,1,123) = -TPK%K122(:)*PCONC(:,1)*PCONC(:,87) -! -!PTERMS(NO2,K122) = +TPK%CF4*K122*<NO>*<RO25> - PTERMS(:,2,123) = +TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87) -! -!PTERMS(HO2,K122) = +TPK%CF4*K122*<NO>*<RO25> - PTERMS(:,10,123) = +TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87) -! -!PTERMS(ALKL,K122) = +TPK%CF3*K122*<NO>*<RO25> - PTERMS(:,19,123) = +TPK%CF3*TPK%K122(:)*PCONC(:,1)*PCONC(:,87) -! -!PTERMS(ALD2,K122) = +TPK%CF4*K122*<NO>*<RO25> - PTERMS(:,29,123) = +TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87) -! -!PTERMS(RO25,K122) = -K122*<NO>*<RO25> - PTERMS(:,87,123) = -TPK%K122(:)*PCONC(:,1)*PCONC(:,87) -! -!PTERMS(HO2,K123) = +K123*<RO2T>*<RO25> - PTERMS(:,10,124) = +TPK%K123(:)*PCONC(:,85)*PCONC(:,87) -! -!PTERMS(ALD2,K123) = +K123*<RO2T>*<RO25> - PTERMS(:,29,124) = +TPK%K123(:)*PCONC(:,85)*PCONC(:,87) -! -!PTERMS(RO2T,K123) = -K123*<RO2T>*<RO25> - PTERMS(:,85,124) = -TPK%K123(:)*PCONC(:,85)*PCONC(:,87) -! -!PTERMS(RO25,K123) = -K123*<RO2T>*<RO25> - PTERMS(:,87,124) = -TPK%K123(:)*PCONC(:,85)*PCONC(:,87) -! -!PTERMS(HO2,K124) = -K124*<HO2>*<RO25> - PTERMS(:,10,125) = -TPK%K124(:)*PCONC(:,10)*PCONC(:,87) -! -!PTERMS(OH,K124) = +K124*<HO2>*<RO25> - PTERMS(:,15,125) = +TPK%K124(:)*PCONC(:,10)*PCONC(:,87) -! -!PTERMS(ALD2,K124) = +K124*<HO2>*<RO25> - PTERMS(:,29,125) = +TPK%K124(:)*PCONC(:,10)*PCONC(:,87) -! -!PTERMS(RO25,K124) = -K124*<HO2>*<RO25> - PTERMS(:,87,125) = -TPK%K124(:)*PCONC(:,10)*PCONC(:,87) -! -!PTERMS(NO,K125) = -K125*<NO>*<RO26> - PTERMS(:,1,126) = -TPK%K125(:)*PCONC(:,1)*TPK%RO26(:) -! -!PTERMS(NO2,K125) = +K125*<NO>*<RO26> - PTERMS(:,2,126) = +TPK%K125(:)*PCONC(:,1)*TPK%RO26(:) -! -!PTERMS(RO2T,K125) = +K125*<NO>*<RO26> - PTERMS(:,85,126) = +TPK%K125(:)*PCONC(:,1)*TPK%RO26(:) -! -!PTERMS(RO25,K125) = +K125*<NO>*<RO26> - PTERMS(:,87,126) = +TPK%K125(:)*PCONC(:,1)*TPK%RO26(:) -! -!PTERMS(NO2,K126) = -K126*<NO2>*<RO26> - PTERMS(:,2,127) = -TPK%K126(:)*PCONC(:,2)*TPK%RO26(:) -! -!PTERMS(PAN1,K126) = +K126*<NO2>*<RO26> - PTERMS(:,77,127) = +TPK%K126(:)*PCONC(:,2)*TPK%RO26(:) -! -! -RETURN -END SUBROUTINE SUBT20 -! -SUBROUTINE SUBT21 -! -!Indices 421 a 440 -! -!PTERMS(NO2,K127) = -K127*<NO2>*<RO28> - PTERMS(:,2,128) = -TPK%K127(:)*PCONC(:,2)*TPK%RO28(:) -! -!PTERMS(PAN2,K127) = +K127*<NO2>*<RO28> - PTERMS(:,78,128) = +TPK%K127(:)*PCONC(:,2)*TPK%RO28(:) -! -!PTERMS(NO2,K128) = -K128*<NO2>*<RO239> - PTERMS(:,2,129) = -TPK%K128(:)*PCONC(:,2)*TPK%RO239(:) -! -!PTERMS(PAN3,K128) = +K128*<NO2>*<RO239> - PTERMS(:,79,129) = +TPK%K128(:)*PCONC(:,2)*TPK%RO239(:) -! -!PTERMS(NO2,K129) = -K129*<NO2>*<RO248> - PTERMS(:,2,130) = -TPK%K129(:)*PCONC(:,2)*TPK%RO248(:) -! -!PTERMS(PAN4,K129) = +K129*<NO2>*<RO248> - PTERMS(:,80,130) = +TPK%K129(:)*PCONC(:,2)*TPK%RO248(:) -! -!PTERMS(NO2,K130) = -K130*<NO2>*<RO250> - PTERMS(:,2,131) = -TPK%K130(:)*PCONC(:,2)*TPK%RO250(:) -! -!PTERMS(APAN,K130) = +K130*<NO2>*<RO250> - PTERMS(:,76,131) = +TPK%K130(:)*PCONC(:,2)*TPK%RO250(:) -! -!PTERMS(NO2,K131) = -K131*<NO2>*<RO254> - PTERMS(:,2,132) = -TPK%K131(:)*PCONC(:,2)*TPK%RO254(:) -! -!PTERMS(PAN6,K131) = +K131*<NO2>*<RO254> - PTERMS(:,81,132) = +TPK%K131(:)*PCONC(:,2)*TPK%RO254(:) -! -!PTERMS(NO2,K132) = -K132*<NO2>*<RO255> - PTERMS(:,2,133) = -TPK%K132(:)*PCONC(:,2)*TPK%RO255(:) -! -!PTERMS(PAN7,K132) = +K132*<NO2>*<RO255> - PTERMS(:,82,133) = +TPK%K132(:)*PCONC(:,2)*TPK%RO255(:) -! -!PTERMS(NO2,K133) = -K133*<NO2>*<RO257> - PTERMS(:,2,134) = -TPK%K133(:)*PCONC(:,2)*TPK%RO257(:) -! -!PTERMS(APAN,K133) = +K133*<NO2>*<RO257> - PTERMS(:,76,134) = +TPK%K133(:)*PCONC(:,2)*TPK%RO257(:) -! -!PTERMS(NO2,K134) = -K134*<NO2>*<RO258> - PTERMS(:,2,135) = -TPK%K134(:)*PCONC(:,2)*TPK%RO258(:) -! -!PTERMS(PN10,K134) = +K134*<NO2>*<RO258> - PTERMS(:,84,135) = +TPK%K134(:)*PCONC(:,2)*TPK%RO258(:) -! -!PTERMS(NO2,K135) = +K135*<PAN1> - PTERMS(:,2,136) = +TPK%K135(:)*PCONC(:,77) -! -!PTERMS(PAN1,K135) = -K135*<PAN1> - PTERMS(:,77,136) = -TPK%K135(:)*PCONC(:,77) -! -!PTERMS(RO2T,K135) = +K135*<PAN1> - PTERMS(:,85,136) = +TPK%K135(:)*PCONC(:,77) -! -!PTERMS(NO2,K136) = +K136*<PAN2> - PTERMS(:,2,137) = +TPK%K136(:)*PCONC(:,78) -! -! -RETURN -END SUBROUTINE SUBT21 -! -SUBROUTINE SUBT22 -! -!Indices 441 a 460 -! -!PTERMS(PAN2,K136) = -K136*<PAN2> - PTERMS(:,78,137) = -TPK%K136(:)*PCONC(:,78) -! -!PTERMS(RO2T,K136) = +K136*<PAN2> - PTERMS(:,85,137) = +TPK%K136(:)*PCONC(:,78) -! -!PTERMS(NO2,K137) = +K137*<PAN3> - PTERMS(:,2,138) = +TPK%K137(:)*PCONC(:,79) -! -!PTERMS(PAN3,K137) = -K137*<PAN3> - PTERMS(:,79,138) = -TPK%K137(:)*PCONC(:,79) -! -!PTERMS(RO2T,K137) = +K137*<PAN3> - PTERMS(:,85,138) = +TPK%K137(:)*PCONC(:,79) -! -!PTERMS(NO2,K138) = +K138*<PN10> - PTERMS(:,2,139) = +TPK%K138(:)*PCONC(:,84) -! -!PTERMS(PN10,K138) = -K138*<PN10> - PTERMS(:,84,139) = -TPK%K138(:)*PCONC(:,84) -! -!PTERMS(RO2T,K138) = +K138*<PN10> - PTERMS(:,85,139) = +TPK%K138(:)*PCONC(:,84) -! -!PTERMS(NO2,K139) = +1.0000000*K139*<APAN> - PTERMS(:,2,140) = +1.0000000*TPK%K139(:)*PCONC(:,76) -! -!PTERMS(APAN,K139) = -K139*<APAN> - PTERMS(:,76,140) = -TPK%K139(:)*PCONC(:,76) -! -!PTERMS(RO2T,K139) = +1.0000000*K139*<APAN> - PTERMS(:,85,140) = +1.0000000*TPK%K139(:)*PCONC(:,76) -! -!PTERMS(NO2,K140) = +K140*<PAN6> - PTERMS(:,2,141) = +TPK%K140(:)*PCONC(:,81) -! -!PTERMS(PAN6,K140) = -K140*<PAN6> - PTERMS(:,81,141) = -TPK%K140(:)*PCONC(:,81) -! -!PTERMS(RO2T,K140) = +K140*<PAN6> - PTERMS(:,85,141) = +TPK%K140(:)*PCONC(:,81) -! -!PTERMS(NO2,K141) = +K141*<PAN4> - PTERMS(:,2,142) = +TPK%K141(:)*PCONC(:,80) -! -!PTERMS(PAN4,K141) = -K141*<PAN4> - PTERMS(:,80,142) = -TPK%K141(:)*PCONC(:,80) -! -!PTERMS(RO2T,K141) = +K141*<PAN4> - PTERMS(:,85,142) = +TPK%K141(:)*PCONC(:,80) -! -!PTERMS(O3,K142) = +K142*<HO2>*<RO26> - PTERMS(:,3,143) = +TPK%K142(:)*PCONC(:,10)*TPK%RO26(:) -! -!PTERMS(HO2,K142) = -K142*<HO2>*<RO26> - PTERMS(:,10,143) = -TPK%K142(:)*PCONC(:,10)*TPK%RO26(:) -! -!PTERMS(ORA2,K142) = +K142*<HO2>*<RO26> - PTERMS(:,44,143) = +TPK%K142(:)*PCONC(:,10)*TPK%RO26(:) -! -! -RETURN -END SUBROUTINE SUBT22 -! -SUBROUTINE SUBT23 -! -!Indices 461 a 480 -! -!PTERMS(ACID,K142) = +K142*<HO2>*<RO26> - PTERMS(:,45,143) = +TPK%K142(:)*PCONC(:,10)*TPK%RO26(:) -! -!PTERMS(RO2T,K143) = -K143*<RO2T>*<RO26> - PTERMS(:,85,144) = -TPK%K143(:)*PCONC(:,85)*TPK%RO26(:) -! -!PTERMS(RO25,K143) = +K143*<RO2T>*<RO26> - PTERMS(:,87,144) = +TPK%K143(:)*PCONC(:,85)*TPK%RO26(:) -! -!PTERMS(NO,K144) = -K144*<NO>*<RO27> - PTERMS(:,1,145) = -TPK%K144(:)*PCONC(:,1)*TPK%RO27(:) -! -!PTERMS(NO2,K144) = +K144*<NO>*<RO27> - PTERMS(:,2,145) = +TPK%K144(:)*PCONC(:,1)*TPK%RO27(:) -! -!PTERMS(ALD2,K144) = +K144*<NO>*<RO27> - PTERMS(:,29,145) = +TPK%K144(:)*PCONC(:,1)*TPK%RO27(:) -! -!PTERMS(RO2T,K144) = +K144*<NO>*<RO27> - PTERMS(:,85,145) = +TPK%K144(:)*PCONC(:,1)*TPK%RO27(:) -! -!PTERMS(ALD2,K145) = +K145*<RO2T>*<RO27> - PTERMS(:,29,146) = +TPK%K145(:)*PCONC(:,85)*TPK%RO27(:) -! -!PTERMS(RO2T,K145) = -K145*<RO2T>*<RO27> - PTERMS(:,85,146) = -TPK%K145(:)*PCONC(:,85)*TPK%RO27(:) -! -!PTERMS(HO2,K146) = -K146*<HO2>*<RO27> - PTERMS(:,10,147) = -TPK%K146(:)*PCONC(:,10)*TPK%RO27(:) -! -!PTERMS(OH,K146) = +K146*<HO2>*<RO27> - PTERMS(:,15,147) = +TPK%K146(:)*PCONC(:,10)*TPK%RO27(:) -! -!PTERMS(ALD2,K146) = +K146*<HO2>*<RO27> - PTERMS(:,29,147) = +TPK%K146(:)*PCONC(:,10)*TPK%RO27(:) -! -!PTERMS(RO2T,K146) = +K146*<HO2>*<RO27> - PTERMS(:,85,147) = +TPK%K146(:)*PCONC(:,10)*TPK%RO27(:) -! -!PTERMS(NO,K147) = -K147*<NO>*<RO28> - PTERMS(:,1,148) = -TPK%K147(:)*PCONC(:,1)*TPK%RO28(:) -! -!PTERMS(NO2,K147) = +K147*<NO>*<RO28> - PTERMS(:,2,148) = +TPK%K147(:)*PCONC(:,1)*TPK%RO28(:) -! -!PTERMS(RO2T,K147) = +K147*<NO>*<RO28> - PTERMS(:,85,148) = +TPK%K147(:)*PCONC(:,1)*TPK%RO28(:) -! -!PTERMS(RO21,K147) = +K147*<NO>*<RO28> - PTERMS(:,86,148) = +TPK%K147(:)*PCONC(:,1)*TPK%RO28(:) -! -!PTERMS(O3,K148) = +K148*<HO2>*<RO28> - PTERMS(:,3,149) = +TPK%K148(:)*PCONC(:,10)*TPK%RO28(:) -! -!PTERMS(HO2,K148) = -K148*<HO2>*<RO28> - PTERMS(:,10,149) = -TPK%K148(:)*PCONC(:,10)*TPK%RO28(:) -! -!PTERMS(ORA2,K148) = +K148*<HO2>*<RO28> - PTERMS(:,44,149) = +TPK%K148(:)*PCONC(:,10)*TPK%RO28(:) -! -! -RETURN -END SUBROUTINE SUBT23 -! -SUBROUTINE SUBT24 -! -!Indices 481 a 500 -! -!PTERMS(RO2T,K149) = -K149*<RO2T>*<RO28> - PTERMS(:,85,150) = -TPK%K149(:)*PCONC(:,85)*TPK%RO28(:) -! -!PTERMS(RO21,K149) = +K149*<RO2T>*<RO28> - PTERMS(:,86,150) = +TPK%K149(:)*PCONC(:,85)*TPK%RO28(:) -! -!PTERMS(NO,K150) = -K150*<NO>*<RO29> - PTERMS(:,1,151) = -TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) -! -!PTERMS(NO2,K150) = +TPK%CF6*K150*<NO>*<RO29> - PTERMS(:,2,151) = +TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) -! -!PTERMS(HO2,K150) = +TPK%CF6*K150*<NO>*<RO29> - PTERMS(:,10,151) = +TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) -! -!PTERMS(OLEL,K150) = +TPK%CF5*K150*<NO>*<RO29> - PTERMS(:,17,151) = +TPK%CF5*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) -! -!PTERMS(HCHO,K150) = +TPK%CF6*K150*<NO>*<RO29> - PTERMS(:,28,151) = +TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) -! -!PTERMS(MVK,K150) = +TPK%CF6*K150*<NO>*<RO29> - PTERMS(:,39,151) = +TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) -! -!PTERMS(HO2,K151) = +K151*<RO2T>*<RO29> - PTERMS(:,10,152) = +TPK%K151(:)*PCONC(:,85)*TPK%RO29(:) -! -!PTERMS(HCHO,K151) = +K151*<RO2T>*<RO29> - PTERMS(:,28,152) = +TPK%K151(:)*PCONC(:,85)*TPK%RO29(:) -! -!PTERMS(MVK,K151) = +K151*<RO2T>*<RO29> - PTERMS(:,39,152) = +TPK%K151(:)*PCONC(:,85)*TPK%RO29(:) -! -!PTERMS(RO2T,K151) = -K151*<RO2T>*<RO29> - PTERMS(:,85,152) = -TPK%K151(:)*PCONC(:,85)*TPK%RO29(:) -! -!PTERMS(HO2,K152) = -K152*<HO2>*<RO29> - PTERMS(:,10,153) = -TPK%K152(:)*PCONC(:,10)*TPK%RO29(:) -! -!PTERMS(OH,K152) = +K152*<HO2>*<RO29> - PTERMS(:,15,153) = +TPK%K152(:)*PCONC(:,10)*TPK%RO29(:) -! -!PTERMS(HCHO,K152) = +K152*<HO2>*<RO29> - PTERMS(:,28,153) = +TPK%K152(:)*PCONC(:,10)*TPK%RO29(:) -! -!PTERMS(MVK,K152) = +K152*<HO2>*<RO29> - PTERMS(:,39,153) = +TPK%K152(:)*PCONC(:,10)*TPK%RO29(:) -! -!PTERMS(NO,K153) = -K153*<NO>*<RO210> - PTERMS(:,1,154) = -TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) -! -!PTERMS(NO2,K153) = +K153*<NO>*<RO210> - PTERMS(:,2,154) = +TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) -! -!PTERMS(HO2,K153) = +K153*<NO>*<RO210> - PTERMS(:,10,154) = +TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) -! -!PTERMS(HCHO,K153) = +K153*<NO>*<RO210> - PTERMS(:,28,154) = +TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) -! -! -RETURN -END SUBROUTINE SUBT24 -! -SUBROUTINE SUBT25 -! -!Indices 501 a 520 -! -!PTERMS(MCR,K153) = +K153*<NO>*<RO210> - PTERMS(:,40,154) = +TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) -! -!PTERMS(HO2,K154) = +K154*<RO2T>*<RO210> - PTERMS(:,10,155) = +TPK%K154(:)*PCONC(:,85)*TPK%RO210(:) -! -!PTERMS(HCHO,K154) = +K154*<RO2T>*<RO210> - PTERMS(:,28,155) = +TPK%K154(:)*PCONC(:,85)*TPK%RO210(:) -! -!PTERMS(MCR,K154) = +K154*<RO2T>*<RO210> - PTERMS(:,40,155) = +TPK%K154(:)*PCONC(:,85)*TPK%RO210(:) -! -!PTERMS(RO2T,K154) = -K154*<RO2T>*<RO210> - PTERMS(:,85,155) = -TPK%K154(:)*PCONC(:,85)*TPK%RO210(:) -! -!PTERMS(HO2,K155) = -K155*<HO2>*<RO210> - PTERMS(:,10,156) = -TPK%K155(:)*PCONC(:,10)*TPK%RO210(:) -! -!PTERMS(OH,K155) = +K155*<HO2>*<RO210> - PTERMS(:,15,156) = +TPK%K155(:)*PCONC(:,10)*TPK%RO210(:) -! -!PTERMS(HCHO,K155) = +K155*<HO2>*<RO210> - PTERMS(:,28,156) = +TPK%K155(:)*PCONC(:,10)*TPK%RO210(:) -! -!PTERMS(MCR,K155) = +K155*<HO2>*<RO210> - PTERMS(:,40,156) = +TPK%K155(:)*PCONC(:,10)*TPK%RO210(:) -! -!PTERMS(NO,K156) = -K156*<NO>*<RO211> - PTERMS(:,1,157) = -TPK%K156(:)*PCONC(:,1)*TPK%RO211(:) -! -!PTERMS(NO2,K156) = +2.*K156*<NO>*<RO211> - PTERMS(:,2,157) = +2.*TPK%K156(:)*PCONC(:,1)*TPK%RO211(:) -! -!PTERMS(HCHO,K156) = +K156*<NO>*<RO211> - PTERMS(:,28,157) = +TPK%K156(:)*PCONC(:,1)*TPK%RO211(:) -! -!PTERMS(MVK,K156) = +K156*<NO>*<RO211> - PTERMS(:,39,157) = +TPK%K156(:)*PCONC(:,1)*TPK%RO211(:) -! -!PTERMS(NO2,K157) = +K157*<RO2T>*<RO211> - PTERMS(:,2,158) = +TPK%K157(:)*PCONC(:,85)*TPK%RO211(:) -! -!PTERMS(HCHO,K157) = +K157*<RO2T>*<RO211> - PTERMS(:,28,158) = +TPK%K157(:)*PCONC(:,85)*TPK%RO211(:) -! -!PTERMS(MVK,K157) = +K157*<RO2T>*<RO211> - PTERMS(:,39,158) = +TPK%K157(:)*PCONC(:,85)*TPK%RO211(:) -! -!PTERMS(RO2T,K157) = -K157*<RO2T>*<RO211> - PTERMS(:,85,158) = -TPK%K157(:)*PCONC(:,85)*TPK%RO211(:) -! -!PTERMS(NO2,K158) = +K158*<HO2>*<RO211> - PTERMS(:,2,159) = +TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) -! -!PTERMS(HO2,K158) = -K158*<HO2>*<RO211> - PTERMS(:,10,159) = -TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) -! -!PTERMS(OH,K158) = +K158*<HO2>*<RO211> - PTERMS(:,15,159) = +TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) -! -! -RETURN -END SUBROUTINE SUBT25 -! -SUBROUTINE SUBT26 -! -!Indices 521 a 540 -! -!PTERMS(HCHO,K158) = +K158*<HO2>*<RO211> - PTERMS(:,28,159) = +TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) -! -!PTERMS(MVK,K158) = +K158*<HO2>*<RO211> - PTERMS(:,39,159) = +TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) -! -!PTERMS(NO,K159) = -K159*<NO>*<RO212> - PTERMS(:,1,160) = -TPK%K159(:)*PCONC(:,1)*TPK%RO212(:) -! -!PTERMS(NO2,K159) = +2.*K159*<NO>*<RO212> - PTERMS(:,2,160) = +2.*TPK%K159(:)*PCONC(:,1)*TPK%RO212(:) -! -!PTERMS(HCHO,K159) = +K159*<NO>*<RO212> - PTERMS(:,28,160) = +TPK%K159(:)*PCONC(:,1)*TPK%RO212(:) -! -!PTERMS(MCR,K159) = +K159*<NO>*<RO212> - PTERMS(:,40,160) = +TPK%K159(:)*PCONC(:,1)*TPK%RO212(:) -! -!PTERMS(NO2,K160) = +K160*<RO2T>*<RO212> - PTERMS(:,2,161) = +TPK%K160(:)*PCONC(:,85)*TPK%RO212(:) -! -!PTERMS(HCHO,K160) = +K160*<RO2T>*<RO212> - PTERMS(:,28,161) = +TPK%K160(:)*PCONC(:,85)*TPK%RO212(:) -! -!PTERMS(MCR,K160) = +K160*<RO2T>*<RO212> - PTERMS(:,40,161) = +TPK%K160(:)*PCONC(:,85)*TPK%RO212(:) -! -!PTERMS(RO2T,K160) = -K160*<RO2T>*<RO212> - PTERMS(:,85,161) = -TPK%K160(:)*PCONC(:,85)*TPK%RO212(:) -! -!PTERMS(NO2,K161) = +K161*<HO2>*<RO212> - PTERMS(:,2,162) = +TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) -! -!PTERMS(HO2,K161) = -K161*<HO2>*<RO212> - PTERMS(:,10,162) = -TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) -! -!PTERMS(OH,K161) = +K161*<HO2>*<RO212> - PTERMS(:,15,162) = +TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) -! -!PTERMS(HCHO,K161) = +K161*<HO2>*<RO212> - PTERMS(:,28,162) = +TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) -! -!PTERMS(MCR,K161) = +K161*<HO2>*<RO212> - PTERMS(:,40,162) = +TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) -! -!PTERMS(NO,K162) = -K162*<NO>*<RO213> - PTERMS(:,1,163) = -TPK%K162(:)*PCONC(:,1)*TPK%RO213(:) -! -!PTERMS(NO2,K162) = +K162*<NO>*<RO213> - PTERMS(:,2,163) = +TPK%K162(:)*PCONC(:,1)*TPK%RO213(:) -! -!PTERMS(HCHO,K162) = +K162*<NO>*<RO213> - PTERMS(:,28,163) = +TPK%K162(:)*PCONC(:,1)*TPK%RO213(:) -! -!PTERMS(RO2T,K162) = +K162*<NO>*<RO213> - PTERMS(:,85,163) = +TPK%K162(:)*PCONC(:,1)*TPK%RO213(:) -! -!PTERMS(HCHO,K163) = +K163*<RO2T>*<RO213> - PTERMS(:,28,164) = +TPK%K163(:)*PCONC(:,85)*TPK%RO213(:) -! -! -RETURN -END SUBROUTINE SUBT26 -! -SUBROUTINE SUBT27 -! -!Indices 541 a 560 -! -!PTERMS(RO2T,K163) = -K163*<RO2T>*<RO213> - PTERMS(:,85,164) = -TPK%K163(:)*PCONC(:,85)*TPK%RO213(:) -! -!PTERMS(HO2,K164) = -K164*<HO2>*<RO213> - PTERMS(:,10,165) = -TPK%K164(:)*PCONC(:,10)*TPK%RO213(:) -! -!PTERMS(OH,K164) = +K164*<HO2>*<RO213> - PTERMS(:,15,165) = +TPK%K164(:)*PCONC(:,10)*TPK%RO213(:) -! -!PTERMS(HCHO,K164) = +K164*<HO2>*<RO213> - PTERMS(:,28,165) = +TPK%K164(:)*PCONC(:,10)*TPK%RO213(:) -! -!PTERMS(RO2T,K164) = +K164*<HO2>*<RO213> - PTERMS(:,85,165) = +TPK%K164(:)*PCONC(:,10)*TPK%RO213(:) -! -!PTERMS(NO,K165) = -K165*<NO>*<RO239> - PTERMS(:,1,166) = -TPK%K165(:)*PCONC(:,1)*TPK%RO239(:) -! -!PTERMS(NO2,K165) = +K165*<NO>*<RO239> - PTERMS(:,2,166) = +TPK%K165(:)*PCONC(:,1)*TPK%RO239(:) -! -!PTERMS(RO2T,K165) = +K165*<NO>*<RO239> - PTERMS(:,85,166) = +TPK%K165(:)*PCONC(:,1)*TPK%RO239(:) -! -!PTERMS(O3,K166) = +K166*<HO2>*<RO239> - PTERMS(:,3,167) = +TPK%K166(:)*PCONC(:,10)*TPK%RO239(:) -! -!PTERMS(HO2,K166) = -K166*<HO2>*<RO239> - PTERMS(:,10,167) = -TPK%K166(:)*PCONC(:,10)*TPK%RO239(:) -! -!PTERMS(OLEL,K166) = +0.5*K166*<HO2>*<RO239> - PTERMS(:,17,167) = +0.5*TPK%K166(:)*PCONC(:,10)*TPK%RO239(:) -! -!PTERMS(ORA2,K166) = +0.5*K166*<HO2>*<RO239> - PTERMS(:,44,167) = +0.5*TPK%K166(:)*PCONC(:,10)*TPK%RO239(:) -! -!PTERMS(RO2T,K167) = -K167*<RO2T>*<RO239> - PTERMS(:,85,168) = -TPK%K167(:)*PCONC(:,85)*TPK%RO239(:) -! -!PTERMS(NO,K168) = -K168*<NO>*<RO214> - PTERMS(:,1,169) = -TPK%K168(:)*PCONC(:,1)*TPK%RO214(:) -! -!PTERMS(NO2,K168) = +TPK%CF8*K168*<NO>*<RO214> - PTERMS(:,2,169) = +TPK%CF8*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:) -! -!PTERMS(OLEL,K168) = +TPK%CF7*K168*<NO>*<RO214> - PTERMS(:,17,169) = +TPK%CF7*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:) -! -!PTERMS(RO2T,K168) = +TPK%CF8*K168*<NO>*<RO214> - PTERMS(:,85,169) = +TPK%CF8*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:) -! -!PTERMS(RO2T,K169) = -K169*<RO2T>*<RO214> - PTERMS(:,85,170) = -TPK%K169(:)*PCONC(:,85)*TPK%RO214(:) -! -!PTERMS(HO2,K170) = -K170*<HO2>*<RO214> - PTERMS(:,10,171) = -TPK%K170(:)*PCONC(:,10)*TPK%RO214(:) -! -!PTERMS(OH,K170) = +K170*<HO2>*<RO214> - PTERMS(:,15,171) = +TPK%K170(:)*PCONC(:,10)*TPK%RO214(:) -! -! -RETURN -END SUBROUTINE SUBT27 -! -SUBROUTINE SUBT28 -! -!Indices 561 a 580 -! -!PTERMS(RO2T,K170) = +K170*<HO2>*<RO214> - PTERMS(:,85,171) = +TPK%K170(:)*PCONC(:,10)*TPK%RO214(:) -! -!PTERMS(NO,K171) = -K171*<NO>*<RO215> - PTERMS(:,1,172) = -TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) -! -!PTERMS(NO2,K171) = +K171*<NO>*<RO215> - PTERMS(:,2,172) = +TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) -! -!PTERMS(HO2,K171) = +K171*<NO>*<RO215> - PTERMS(:,10,172) = +TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) -! -!PTERMS(ALKL,K171) = +TPK%CF12*K171*<NO>*<RO215> - PTERMS(:,19,172) = +TPK%CF12*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) -! -!PTERMS(HCHO,K171) = +TPK%CF10*K171*<NO>*<RO215> - PTERMS(:,28,172) = +TPK%CF10*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) -! -!PTERMS(ALD2,K171) = +TPK%CF9*K171*<NO>*<RO215> - PTERMS(:,29,172) = +TPK%CF9*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) -! -!PTERMS(KETL,K171) = +TPK%CF11*K171*<NO>*<RO215> - PTERMS(:,30,172) = +TPK%CF11*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) -! -!PTERMS(HO2,K172) = +K172*<RO2T>*<RO215> - PTERMS(:,10,173) = +TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) -! -!PTERMS(ALKL,K172) = +TPK%CF16*K172*<RO2T>*<RO215> - PTERMS(:,19,173) = +TPK%CF16*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) -! -!PTERMS(HCHO,K172) = +TPK%CF14*K172*<RO2T>*<RO215> - PTERMS(:,28,173) = +TPK%CF14*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) -! -!PTERMS(ALD2,K172) = +TPK%CF13*K172*<RO2T>*<RO215> - PTERMS(:,29,173) = +TPK%CF13*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) -! -!PTERMS(KETL,K172) = +TPK%CF15*K172*<RO2T>*<RO215> - PTERMS(:,30,173) = +TPK%CF15*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) -! -!PTERMS(RO2T,K172) = -K172*<RO2T>*<RO215> - PTERMS(:,85,173) = -TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) -! -!PTERMS(HO2,K173) = -K173*<HO2>*<RO215> - PTERMS(:,10,174) = -TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) -! -!PTERMS(OH,K173) = +K173*<HO2>*<RO215> - PTERMS(:,15,174) = +TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) -! -!PTERMS(ALKL,K173) = +TPK%CF16*K173*<HO2>*<RO215> - PTERMS(:,19,174) = +TPK%CF16*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) -! -!PTERMS(HCHO,K173) = +TPK%CF14*K173*<HO2>*<RO215> - PTERMS(:,28,174) = +TPK%CF14*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) -! -!PTERMS(ALD2,K173) = +TPK%CF13*K173*<HO2>*<RO215> - PTERMS(:,29,174) = +TPK%CF13*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) -! -!PTERMS(KETL,K173) = +TPK%CF15*K173*<HO2>*<RO215> - PTERMS(:,30,174) = +TPK%CF15*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) -! -! -RETURN -END SUBROUTINE SUBT28 -! -SUBROUTINE SUBT29 -! -!Indices 581 a 600 -! -!PTERMS(NO,K174) = -K174*<NO>*<RO216> - PTERMS(:,1,175) = -TPK%K174(:)*PCONC(:,1)*TPK%RO216(:) -! -!PTERMS(NO2,K174) = +K174*<NO>*<RO216> - PTERMS(:,2,175) = +TPK%K174(:)*PCONC(:,1)*TPK%RO216(:) -! -!PTERMS(ALD2,K174) = +K174*<NO>*<RO216> - PTERMS(:,29,175) = +TPK%K174(:)*PCONC(:,1)*TPK%RO216(:) -! -!PTERMS(RO2T,K174) = +K174*<NO>*<RO216> - PTERMS(:,85,175) = +TPK%K174(:)*PCONC(:,1)*TPK%RO216(:) -! -!PTERMS(ALD2,K175) = +K175*<RO2T>*<RO216> - PTERMS(:,29,176) = +TPK%K175(:)*PCONC(:,85)*TPK%RO216(:) -! -!PTERMS(RO2T,K175) = -K175*<RO2T>*<RO216> - PTERMS(:,85,176) = -TPK%K175(:)*PCONC(:,85)*TPK%RO216(:) -! -!PTERMS(HO2,K176) = -K176*<HO2>*<RO216> - PTERMS(:,10,177) = -TPK%K176(:)*PCONC(:,10)*TPK%RO216(:) -! -!PTERMS(OH,K176) = +K176*<HO2>*<RO216> - PTERMS(:,15,177) = +TPK%K176(:)*PCONC(:,10)*TPK%RO216(:) -! -!PTERMS(ALD2,K176) = +K176*<HO2>*<RO216> - PTERMS(:,29,177) = +TPK%K176(:)*PCONC(:,10)*TPK%RO216(:) -! -!PTERMS(RO2T,K176) = +K176*<HO2>*<RO216> - PTERMS(:,85,177) = +TPK%K176(:)*PCONC(:,10)*TPK%RO216(:) -! -!PTERMS(NO,K177) = -K177*<NO>*<RO217> - PTERMS(:,1,178) = -TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) -! -!PTERMS(NO2,K177) = +TPK%CF22*K177*<NO>*<RO217> - PTERMS(:,2,178) = +TPK%CF22*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) -! -!PTERMS(HO2,K177) = +TPK%CF22*K177*<NO>*<RO217> - PTERMS(:,10,178) = +TPK%CF22*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) -! -!PTERMS(URG6,K177) = +TPK%CF21*K177*<NO>*<RO217> - PTERMS(:,58,178) = +TPK%CF21*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) -! -!PTERMS(RPRL,K177) = +TPK%CFA2*K177*<NO>*<RO217> - PTERMS(:,75,178) = +TPK%CFA2*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) -! -!PTERMS(HO2,K178) = +K178*<RO2T>*<RO217> - PTERMS(:,10,179) = +TPK%K178(:)*PCONC(:,85)*TPK%RO217(:) -! -!PTERMS(RPRL,K178) = +0.9983609*K178*<RO2T>*<RO217> - PTERMS(:,75,179) = +0.9983609*TPK%K178(:)*PCONC(:,85)*TPK%RO217(:) -! -!PTERMS(RO2T,K178) = -K178*<RO2T>*<RO217> - PTERMS(:,85,179) = -TPK%K178(:)*PCONC(:,85)*TPK%RO217(:) -! -!PTERMS(HO2,K179) = -K179*<HO2>*<RO217> - PTERMS(:,10,180) = -TPK%K179(:)*PCONC(:,10)*TPK%RO217(:) -! -!PTERMS(OH,K179) = +K179*<HO2>*<RO217> - PTERMS(:,15,180) = +TPK%K179(:)*PCONC(:,10)*TPK%RO217(:) -! -! -RETURN -END SUBROUTINE SUBT29 -! -SUBROUTINE SUBT30 -! -!Indices 601 a 620 -! -!PTERMS(RPRL,K179) = +0.9983609*K179*<HO2>*<RO217> - PTERMS(:,75,180) = +0.9983609*TPK%K179(:)*PCONC(:,10)*TPK%RO217(:) -! -!PTERMS(NO,K180) = -K180*<NO>*<RO218> - PTERMS(:,1,181) = -TPK%K180(:)*PCONC(:,1)*TPK%RO218(:) -! -!PTERMS(NO2,K180) = +TPK%CF20*K180*<NO>*<RO218> - PTERMS(:,2,181) = +TPK%CF20*TPK%K180(:)*PCONC(:,1)*TPK%RO218(:) -! -!PTERMS(HO2,K180) = +TPK%CF20*K180*<NO>*<RO218> - PTERMS(:,10,181) = +TPK%CF20*TPK%K180(:)*PCONC(:,1)*TPK%RO218(:) -! -!PTERMS(HO2,K181) = +K181*<RO2T>*<RO218> - PTERMS(:,10,182) = +TPK%K181(:)*PCONC(:,85)*TPK%RO218(:) -! -!PTERMS(RO2T,K181) = -K181*<RO2T>*<RO218> - PTERMS(:,85,182) = -TPK%K181(:)*PCONC(:,85)*TPK%RO218(:) -! -!PTERMS(HO2,K182) = -K182*<HO2>*<RO218> - PTERMS(:,10,183) = -TPK%K182(:)*PCONC(:,10)*TPK%RO218(:) -! -!PTERMS(OH,K182) = +K182*<HO2>*<RO218> - PTERMS(:,15,183) = +TPK%K182(:)*PCONC(:,10)*TPK%RO218(:) -! -!PTERMS(NO,K183) = -K183*<NO>*<RO219> - PTERMS(:,1,184) = -TPK%K183(:)*PCONC(:,1)*TPK%RO219(:) -! -!PTERMS(NO2,K183) = +2.*K183*<NO>*<RO219> - PTERMS(:,2,184) = +2.*TPK%K183(:)*PCONC(:,1)*TPK%RO219(:) -! -!PTERMS(HCHO,K183) = +K183*<NO>*<RO219> - PTERMS(:,28,184) = +TPK%K183(:)*PCONC(:,1)*TPK%RO219(:) -! -!PTERMS(RPR1,K183) = +K183*<NO>*<RO219> - PTERMS(:,69,184) = +TPK%K183(:)*PCONC(:,1)*TPK%RO219(:) -! -!PTERMS(NO2,K184) = +K184*<RO2T>*<RO219> - PTERMS(:,2,185) = +TPK%K184(:)*PCONC(:,85)*TPK%RO219(:) -! -!PTERMS(HCHO,K184) = +K184*<RO2T>*<RO219> - PTERMS(:,28,185) = +TPK%K184(:)*PCONC(:,85)*TPK%RO219(:) -! -!PTERMS(RPR1,K184) = +K184*<RO2T>*<RO219> - PTERMS(:,69,185) = +TPK%K184(:)*PCONC(:,85)*TPK%RO219(:) -! -!PTERMS(RO2T,K184) = -K184*<RO2T>*<RO219> - PTERMS(:,85,185) = -TPK%K184(:)*PCONC(:,85)*TPK%RO219(:) -! -!PTERMS(NO2,K185) = +K185*<HO2>*<RO219> - PTERMS(:,2,186) = +TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) -! -!PTERMS(HO2,K185) = -K185*<HO2>*<RO219> - PTERMS(:,10,186) = -TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) -! -!PTERMS(OH,K185) = +K185*<HO2>*<RO219> - PTERMS(:,15,186) = +TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) -! -!PTERMS(HCHO,K185) = +K185*<HO2>*<RO219> - PTERMS(:,28,186) = +TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) -! -! -RETURN -END SUBROUTINE SUBT30 -! -SUBROUTINE SUBT31 -! -!Indices 621 a 640 -! -!PTERMS(RPR1,K185) = +K185*<HO2>*<RO219> - PTERMS(:,69,186) = +TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) -! -!PTERMS(NO,K186) = -K186*<NO>*<RO220> - PTERMS(:,1,187) = -TPK%K186(:)*PCONC(:,1)*TPK%RO220(:) -! -!PTERMS(NO2,K186) = +TPK%CF18*K186*<NO>*<RO220> - PTERMS(:,2,187) = +TPK%CF18*TPK%K186(:)*PCONC(:,1)*TPK%RO220(:) -! -!PTERMS(RO2T,K186) = +TPK%CF18*K186*<NO>*<RO220> - PTERMS(:,85,187) = +TPK%CF18*TPK%K186(:)*PCONC(:,1)*TPK%RO220(:) -! -!PTERMS(RO2T,K187) = -K187*<RO2T>*<RO220> - PTERMS(:,85,188) = -TPK%K187(:)*PCONC(:,85)*TPK%RO220(:) -! -!PTERMS(HO2,K188) = -K188*<HO2>*<RO220> - PTERMS(:,10,189) = -TPK%K188(:)*PCONC(:,10)*TPK%RO220(:) -! -!PTERMS(OH,K188) = +K188*<HO2>*<RO220> - PTERMS(:,15,189) = +TPK%K188(:)*PCONC(:,10)*TPK%RO220(:) -! -!PTERMS(RO2T,K188) = +K188*<HO2>*<RO220> - PTERMS(:,85,189) = +TPK%K188(:)*PCONC(:,10)*TPK%RO220(:) -! -!PTERMS(NO,K189) = -K189*<NO>*<RO221> - PTERMS(:,1,190) = -TPK%K189(:)*PCONC(:,1)*TPK%RO221(:) -! -!PTERMS(NO2,K189) = +TPK%CF24*K189*<NO>*<RO221> - PTERMS(:,2,190) = +TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:) -! -!PTERMS(HO2,K189) = +TPK%CF24*K189*<NO>*<RO221> - PTERMS(:,10,190) = +TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:) -! -!PTERMS(ARAL,K189) = +TPK%CF24*K189*<NO>*<RO221> - PTERMS(:,25,190) = +TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:) -! -!PTERMS(HO2,K190) = +K190*<RO2T>*<RO221> - PTERMS(:,10,191) = +TPK%K190(:)*PCONC(:,85)*TPK%RO221(:) -! -!PTERMS(ARAL,K190) = +K190*<RO2T>*<RO221> - PTERMS(:,25,191) = +TPK%K190(:)*PCONC(:,85)*TPK%RO221(:) -! -!PTERMS(RO2T,K190) = -K190*<RO2T>*<RO221> - PTERMS(:,85,191) = -TPK%K190(:)*PCONC(:,85)*TPK%RO221(:) -! -!PTERMS(HO2,K191) = -K191*<HO2>*<RO221> - PTERMS(:,10,192) = -TPK%K191(:)*PCONC(:,10)*TPK%RO221(:) -! -!PTERMS(OH,K191) = +K191*<HO2>*<RO221> - PTERMS(:,15,192) = +TPK%K191(:)*PCONC(:,10)*TPK%RO221(:) -! -!PTERMS(ARAL,K191) = +K191*<HO2>*<RO221> - PTERMS(:,25,192) = +TPK%K191(:)*PCONC(:,10)*TPK%RO221(:) -! -!PTERMS(NO,K192) = -K192*<NO>*<RO222> - PTERMS(:,1,193) = -TPK%K192(:)*PCONC(:,1)*TPK%RO222(:) -! -!PTERMS(NO2,K192) = +TPK%CF42*K192*<NO>*<RO222> - PTERMS(:,2,193) = +TPK%CF42*TPK%K192(:)*PCONC(:,1)*TPK%RO222(:) -! -! -RETURN -END SUBROUTINE SUBT31 -! -SUBROUTINE SUBT32 -! -!Indices 641 a 660 -! -!PTERMS(HO2,K192) = +TPK%CF42*K192*<NO>*<RO222> - PTERMS(:,10,193) = +TPK%CF42*TPK%K192(:)*PCONC(:,1)*TPK%RO222(:) -! -!PTERMS(RPRL,K192) = +TPK%CFA7*K192*<NO>*<RO222> - PTERMS(:,75,193) = +TPK%CFA7*TPK%K192(:)*PCONC(:,1)*TPK%RO222(:) -! -!PTERMS(HO2,K193) = +K193*<RO2T>*<RO222> - PTERMS(:,10,194) = +TPK%K193(:)*PCONC(:,85)*TPK%RO222(:) -! -!PTERMS(RPRL,K193) = +0.9983609*K193*<RO2T>*<RO222> - PTERMS(:,75,194) = +0.9983609*TPK%K193(:)*PCONC(:,85)*TPK%RO222(:) -! -!PTERMS(RO2T,K193) = -K193*<RO2T>*<RO222> - PTERMS(:,85,194) = -TPK%K193(:)*PCONC(:,85)*TPK%RO222(:) -! -!PTERMS(HO2,K194) = -K194*<HO2>*<RO222> - PTERMS(:,10,195) = -TPK%K194(:)*PCONC(:,10)*TPK%RO222(:) -! -!PTERMS(OH,K194) = +K194*<HO2>*<RO222> - PTERMS(:,15,195) = +TPK%K194(:)*PCONC(:,10)*TPK%RO222(:) -! -!PTERMS(RPRL,K194) = +0.9983609*K194*<HO2>*<RO222> - PTERMS(:,75,195) = +0.9983609*TPK%K194(:)*PCONC(:,10)*TPK%RO222(:) -! -!PTERMS(NO,K195) = -K195*<NO>*<RO223> - PTERMS(:,1,196) = -TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) -! -!PTERMS(NO2,K195) = +TPK%CF44*K195*<NO>*<RO223> - PTERMS(:,2,196) = +TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) -! -!PTERMS(HO2,K195) = +TPK%CF44*K195*<NO>*<RO223> - PTERMS(:,10,196) = +TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) -! -!PTERMS(URG6,K195) = +TPK%CF43*K195*<NO>*<RO223> - PTERMS(:,58,196) = +TPK%CF43*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) -! -!PTERMS(RPR7,K195) = +TPK%CF44*K195*<NO>*<RO223> - PTERMS(:,62,196) = +TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) -! -!PTERMS(HO2,K196) = +K196*<RO2T>*<RO223> - PTERMS(:,10,197) = +TPK%K196(:)*PCONC(:,85)*TPK%RO223(:) -! -!PTERMS(RPR7,K196) = +K196*<RO2T>*<RO223> - PTERMS(:,62,197) = +TPK%K196(:)*PCONC(:,85)*TPK%RO223(:) -! -!PTERMS(RO2T,K196) = -K196*<RO2T>*<RO223> - PTERMS(:,85,197) = -TPK%K196(:)*PCONC(:,85)*TPK%RO223(:) -! -!PTERMS(HO2,K197) = -K197*<HO2>*<RO223> - PTERMS(:,10,198) = -TPK%K197(:)*PCONC(:,10)*TPK%RO223(:) -! -!PTERMS(OH,K197) = +K197*<HO2>*<RO223> - PTERMS(:,15,198) = +TPK%K197(:)*PCONC(:,10)*TPK%RO223(:) -! -!PTERMS(RPR7,K197) = +K197*<HO2>*<RO223> - PTERMS(:,62,198) = +TPK%K197(:)*PCONC(:,10)*TPK%RO223(:) -! -!PTERMS(NO,K198) = -K198*<NO>*<RO224> - PTERMS(:,1,199) = -TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) -! -! -RETURN -END SUBROUTINE SUBT32 -! -SUBROUTINE SUBT33 -! -!Indices 661 a 680 -! -!PTERMS(NO2,K198) = +TPK%CF26*K198*<NO>*<RO224> - PTERMS(:,2,199) = +TPK%CF26*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) -! -!PTERMS(HO2,K198) = +TPK%CF26*K198*<NO>*<RO224> - PTERMS(:,10,199) = +TPK%CF26*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) -! -!PTERMS(RPR3,K198) = +TPK%CFA10*K198*<NO>*<RO224> - PTERMS(:,57,199) = +TPK%CFA10*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) -! -!PTERMS(AP7,K198) = +TPK%CFA23*K198*<NO>*<RO224> - PTERMS(:,67,199) = +TPK%CFA23*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) -! -!PTERMS(HO2,K199) = +K199*<RO2T>*<RO224> - PTERMS(:,10,200) = +TPK%K199(:)*PCONC(:,85)*TPK%RO224(:) -! -!PTERMS(RPR3,K199) = +K199*<RO2T>*<RO224> - PTERMS(:,57,200) = +TPK%K199(:)*PCONC(:,85)*TPK%RO224(:) -! -!PTERMS(RO2T,K199) = -K199*<RO2T>*<RO224> - PTERMS(:,85,200) = -TPK%K199(:)*PCONC(:,85)*TPK%RO224(:) -! -!PTERMS(HO2,K200) = -K200*<HO2>*<RO224> - PTERMS(:,10,201) = -TPK%K200(:)*PCONC(:,10)*TPK%RO224(:) -! -!PTERMS(OH,K200) = +K200*<HO2>*<RO224> - PTERMS(:,15,201) = +TPK%K200(:)*PCONC(:,10)*TPK%RO224(:) -! -!PTERMS(RPR3,K200) = +K200*<HO2>*<RO224> - PTERMS(:,57,201) = +TPK%K200(:)*PCONC(:,10)*TPK%RO224(:) -! -!PTERMS(NO,K201) = -K201*<NO>*<RO225> - PTERMS(:,1,202) = -TPK%K201(:)*PCONC(:,1)*TPK%RO225(:) -! -!PTERMS(NO2,K201) = +2.*K201*<NO>*<RO225> - PTERMS(:,2,202) = +2.*TPK%K201(:)*PCONC(:,1)*TPK%RO225(:) -! -!PTERMS(RPR3,K201) = +K201*<NO>*<RO225> - PTERMS(:,57,202) = +TPK%K201(:)*PCONC(:,1)*TPK%RO225(:) -! -!PTERMS(NO2,K202) = +K202*<RO2T>*<RO225> - PTERMS(:,2,203) = +TPK%K202(:)*PCONC(:,85)*TPK%RO225(:) -! -!PTERMS(RPR3,K202) = +K202*<RO2T>*<RO225> - PTERMS(:,57,203) = +TPK%K202(:)*PCONC(:,85)*TPK%RO225(:) -! -!PTERMS(RO2T,K202) = -K202*<RO2T>*<RO225> - PTERMS(:,85,203) = -TPK%K202(:)*PCONC(:,85)*TPK%RO225(:) -! -!PTERMS(NO2,K203) = +K203*<HO2>*<RO225> - PTERMS(:,2,204) = +TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) -! -!PTERMS(HO2,K203) = -K203*<HO2>*<RO225> - PTERMS(:,10,204) = -TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) -! -!PTERMS(OH,K203) = +K203*<HO2>*<RO225> - PTERMS(:,15,204) = +TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) -! -!PTERMS(RPR3,K203) = +K203*<HO2>*<RO225> - PTERMS(:,57,204) = +TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) -! -! -RETURN -END SUBROUTINE SUBT33 -! -SUBROUTINE SUBT34 -! -!Indices 681 a 700 -! -!PTERMS(NO,K204) = -K204*<NO>*<RO226> - PTERMS(:,1,205) = -TPK%K204(:)*PCONC(:,1)*TPK%RO226(:) -! -!PTERMS(NO2,K204) = +K204*<NO>*<RO226> - PTERMS(:,2,205) = +TPK%K204(:)*PCONC(:,1)*TPK%RO226(:) -! -!PTERMS(UR17,K204) = +1.0000000*K204*<NO>*<RO226> - PTERMS(:,55,205) = +1.0000000*TPK%K204(:)*PCONC(:,1)*TPK%RO226(:) -! -!PTERMS(RO2T,K204) = +K204*<NO>*<RO226> - PTERMS(:,85,205) = +TPK%K204(:)*PCONC(:,1)*TPK%RO226(:) -! -!PTERMS(UR17,K205) = +1.0000000*K205*<RO2T>*<RO226> - PTERMS(:,55,206) = +1.0000000*TPK%K205(:)*PCONC(:,85)*TPK%RO226(:) -! -!PTERMS(RO2T,K205) = -K205*<RO2T>*<RO226> - PTERMS(:,85,206) = -TPK%K205(:)*PCONC(:,85)*TPK%RO226(:) -! -!PTERMS(HO2,K206) = -K206*<HO2>*<RO226> - PTERMS(:,10,207) = -TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) -! -!PTERMS(OH,K206) = +K206*<HO2>*<RO226> - PTERMS(:,15,207) = +TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) -! -!PTERMS(UR17,K206) = +1.0000000*K206*<HO2>*<RO226> - PTERMS(:,55,207) = +1.0000000*TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) -! -!PTERMS(RO2T,K206) = +K206*<HO2>*<RO226> - PTERMS(:,85,207) = +TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) -! -!PTERMS(NO,K207) = -K207*<NO>*<RO227> - PTERMS(:,1,208) = -TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) -! -!PTERMS(NO2,K207) = +TPK%CF28*K207*<NO>*<RO227> - PTERMS(:,2,208) = +TPK%CF28*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) -! -!PTERMS(HO2,K207) = +TPK%CF28*K207*<NO>*<RO227> - PTERMS(:,10,208) = +TPK%CF28*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) -! -!PTERMS(UR7,K207) = +TPK%CFA12*K207*<NO>*<RO227> - PTERMS(:,56,208) = +TPK%CFA12*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) -! -!PTERMS(URG10,K207) = +TPK%CF27*K207*<NO>*<RO227> - PTERMS(:,68,208) = +TPK%CF27*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) -! -!PTERMS(HO2,K208) = +K208*<RO2T>*<RO227> - PTERMS(:,10,209) = +TPK%K208(:)*PCONC(:,85)*TPK%RO227(:) -! -!PTERMS(UR7,K208) = +K208*<RO2T>*<RO227> - PTERMS(:,56,209) = +TPK%K208(:)*PCONC(:,85)*TPK%RO227(:) -! -!PTERMS(RO2T,K208) = -K208*<RO2T>*<RO227> - PTERMS(:,85,209) = -TPK%K208(:)*PCONC(:,85)*TPK%RO227(:) -! -!PTERMS(HO2,K209) = -K209*<HO2>*<RO227> - PTERMS(:,10,210) = -TPK%K209(:)*PCONC(:,10)*TPK%RO227(:) -! -!PTERMS(OH,K209) = +K209*<HO2>*<RO227> - PTERMS(:,15,210) = +TPK%K209(:)*PCONC(:,10)*TPK%RO227(:) -! -! -RETURN -END SUBROUTINE SUBT34 -! -SUBROUTINE SUBT35 -! -!Indices 701 a 720 -! -!PTERMS(UR7,K209) = +0.3*K209*<HO2>*<RO227> - PTERMS(:,56,210) = +0.3*TPK%K209(:)*PCONC(:,10)*TPK%RO227(:) -! -!PTERMS(NO,K210) = -K210*<NO>*<RO228> - PTERMS(:,1,211) = -TPK%K210(:)*PCONC(:,1)*TPK%RO228(:) -! -!PTERMS(NO2,K210) = +2.*K210*<NO>*<RO228> - PTERMS(:,2,211) = +2.*TPK%K210(:)*PCONC(:,1)*TPK%RO228(:) -! -!PTERMS(UR7,K210) = +0.3*K210*<NO>*<RO228> - PTERMS(:,56,211) = +0.3*TPK%K210(:)*PCONC(:,1)*TPK%RO228(:) -! -!PTERMS(NO2,K211) = +K211*<RO2T>*<RO228> - PTERMS(:,2,212) = +TPK%K211(:)*PCONC(:,85)*TPK%RO228(:) -! -!PTERMS(UR7,K211) = +0.3*K211*<RO2T>*<RO228> - PTERMS(:,56,212) = +0.3*TPK%K211(:)*PCONC(:,85)*TPK%RO228(:) -! -!PTERMS(RO2T,K211) = -K211*<RO2T>*<RO228> - PTERMS(:,85,212) = -TPK%K211(:)*PCONC(:,85)*TPK%RO228(:) -! -!PTERMS(NO2,K212) = +K212*<HO2>*<RO228> - PTERMS(:,2,213) = +TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) -! -!PTERMS(HO2,K212) = -K212*<HO2>*<RO228> - PTERMS(:,10,213) = -TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) -! -!PTERMS(OH,K212) = +K212*<HO2>*<RO228> - PTERMS(:,15,213) = +TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) -! -!PTERMS(UR7,K212) = +0.3*K212*<HO2>*<RO228> - PTERMS(:,56,213) = +0.3*TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) -! -!PTERMS(NO,K213) = -K213*<NO>*<RO229> - PTERMS(:,1,214) = -TPK%K213(:)*PCONC(:,1)*TPK%RO229(:) -! -!PTERMS(NO2,K213) = +TPK%CF30*K213*<NO>*<RO229> - PTERMS(:,2,214) = +TPK%CF30*TPK%K213(:)*PCONC(:,1)*TPK%RO229(:) -! -!PTERMS(RO2T,K213) = +TPK%CF30*K213*<NO>*<RO229> - PTERMS(:,85,214) = +TPK%CF30*TPK%K213(:)*PCONC(:,1)*TPK%RO229(:) -! -!PTERMS(RO2T,K214) = -K214*<RO2T>*<RO229> - PTERMS(:,85,215) = -TPK%K214(:)*PCONC(:,85)*TPK%RO229(:) -! -!PTERMS(HO2,K215) = -K215*<HO2>*<RO229> - PTERMS(:,10,216) = -TPK%K215(:)*PCONC(:,10)*TPK%RO229(:) -! -!PTERMS(OH,K215) = +K215*<HO2>*<RO229> - PTERMS(:,15,216) = +TPK%K215(:)*PCONC(:,10)*TPK%RO229(:) -! -!PTERMS(RO2T,K215) = +K215*<HO2>*<RO229> - PTERMS(:,85,216) = +TPK%K215(:)*PCONC(:,10)*TPK%RO229(:) -! -!PTERMS(NO,K216) = -K216*<NO>*<RO240> - PTERMS(:,1,217) = -TPK%K216(:)*PCONC(:,1)*TPK%RO240(:) -! -!PTERMS(NO2,K216) = +K216*<NO>*<RO240> - PTERMS(:,2,217) = +TPK%K216(:)*PCONC(:,1)*TPK%RO240(:) -! -! -RETURN -END SUBROUTINE SUBT35 -! -SUBROUTINE SUBT36 -! -!Indices 721 a 740 -! -!PTERMS(RPR8,K216) = +K216*<NO>*<RO240> - PTERMS(:,71,217) = +TPK%K216(:)*PCONC(:,1)*TPK%RO240(:) -! -!PTERMS(RO2T,K216) = +K216*<NO>*<RO240> - PTERMS(:,85,217) = +TPK%K216(:)*PCONC(:,1)*TPK%RO240(:) -! -!PTERMS(RPR8,K217) = +K217*<RO2T>*<RO240> - PTERMS(:,71,218) = +TPK%K217(:)*PCONC(:,85)*TPK%RO240(:) -! -!PTERMS(RO2T,K217) = -K217*<RO2T>*<RO240> - PTERMS(:,85,218) = -TPK%K217(:)*PCONC(:,85)*TPK%RO240(:) -! -!PTERMS(HO2,K218) = -K218*<HO2>*<RO240> - PTERMS(:,10,219) = -TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) -! -!PTERMS(OH,K218) = +K218*<HO2>*<RO240> - PTERMS(:,15,219) = +TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) -! -!PTERMS(RPR8,K218) = +K218*<HO2>*<RO240> - PTERMS(:,71,219) = +TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) -! -!PTERMS(RO2T,K218) = +K218*<HO2>*<RO240> - PTERMS(:,85,219) = +TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) -! -!PTERMS(RO2T,K219) = -K219*<RO2T>*<RO230> - PTERMS(:,85,220) = -TPK%K219(:)*PCONC(:,85)*TPK%RO230(:) -! -!PTERMS(HO2,K220) = -K220*<HO2>*<RO230> - PTERMS(:,10,221) = -TPK%K220(:)*PCONC(:,10)*TPK%RO230(:) -! -!PTERMS(OH,K220) = +K220*<HO2>*<RO230> - PTERMS(:,15,221) = +TPK%K220(:)*PCONC(:,10)*TPK%RO230(:) -! -!PTERMS(RO2T,K220) = +K220*<HO2>*<RO230> - PTERMS(:,85,221) = +TPK%K220(:)*PCONC(:,10)*TPK%RO230(:) -! -!PTERMS(NO,K221) = -K221*<NO>*<RO231> - PTERMS(:,1,222) = -TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) -! -!PTERMS(NO2,K221) = +TPK%CF32*K221*<NO>*<RO231> - PTERMS(:,2,222) = +TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) -! -!PTERMS(HO2,K221) = +TPK%CF32*K221*<NO>*<RO231> - PTERMS(:,10,222) = +TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) -! -!PTERMS(URG8,K221) = +TPK%CF31*K221*<NO>*<RO231> - PTERMS(:,64,222) = +TPK%CF31*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) -! -!PTERMS(UR19,K221) = +TPK%CF32*K221*<NO>*<RO231> - PTERMS(:,65,222) = +TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) -! -!PTERMS(HO2,K222) = +K222*<RO2T>*<RO231> - PTERMS(:,10,223) = +TPK%K222(:)*PCONC(:,85)*TPK%RO231(:) -! -!PTERMS(UR19,K222) = +K222*<RO2T>*<RO231> - PTERMS(:,65,223) = +TPK%K222(:)*PCONC(:,85)*TPK%RO231(:) -! -!PTERMS(RO2T,K222) = -K222*<RO2T>*<RO231> - PTERMS(:,85,223) = -TPK%K222(:)*PCONC(:,85)*TPK%RO231(:) -! -! -RETURN -END SUBROUTINE SUBT36 -! -SUBROUTINE SUBT37 -! -!Indices 741 a 760 -! -!PTERMS(HO2,K223) = -K223*<HO2>*<RO231> - PTERMS(:,10,224) = -TPK%K223(:)*PCONC(:,10)*TPK%RO231(:) -! -!PTERMS(OH,K223) = +K223*<HO2>*<RO231> - PTERMS(:,15,224) = +TPK%K223(:)*PCONC(:,10)*TPK%RO231(:) -! -!PTERMS(UR19,K223) = +K223*<HO2>*<RO231> - PTERMS(:,65,224) = +TPK%K223(:)*PCONC(:,10)*TPK%RO231(:) -! -!PTERMS(NO,K224) = -K224*<NO>*<RO232> - PTERMS(:,1,225) = -TPK%K224(:)*PCONC(:,1)*TPK%RO232(:) -! -!PTERMS(NO2,K224) = +TPK%CF34*K224*<NO>*<RO232> - PTERMS(:,2,225) = +TPK%CF34*TPK%K224(:)*PCONC(:,1)*TPK%RO232(:) -! -!PTERMS(URG9,K224) = +TPK%CFA14*K224*<NO>*<RO232> - PTERMS(:,66,225) = +TPK%CFA14*TPK%K224(:)*PCONC(:,1)*TPK%RO232(:) -! -!PTERMS(RO2T,K224) = +TPK%CF34*K224*<NO>*<RO232> - PTERMS(:,85,225) = +TPK%CF34*TPK%K224(:)*PCONC(:,1)*TPK%RO232(:) -! -!PTERMS(RO2T,K225) = -K225*<RO2T>*<RO232> - PTERMS(:,85,226) = -TPK%K225(:)*PCONC(:,85)*TPK%RO232(:) -! -!PTERMS(HO2,K226) = -K226*<HO2>*<RO232> - PTERMS(:,10,227) = -TPK%K226(:)*PCONC(:,10)*TPK%RO232(:) -! -!PTERMS(OH,K226) = +K226*<HO2>*<RO232> - PTERMS(:,15,227) = +TPK%K226(:)*PCONC(:,10)*TPK%RO232(:) -! -!PTERMS(RO2T,K226) = +K226*<HO2>*<RO232> - PTERMS(:,85,227) = +TPK%K226(:)*PCONC(:,10)*TPK%RO232(:) -! -!PTERMS(NO,K227) = -K227*<NO>*<RO241> - PTERMS(:,1,228) = -TPK%K227(:)*PCONC(:,1)*TPK%RO241(:) -! -!PTERMS(NO2,K227) = +TPK%CF36*K227*<NO>*<RO241> - PTERMS(:,2,228) = +TPK%CF36*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:) -! -!PTERMS(HO2,K227) = +TPK%CF36*K227*<NO>*<RO241> - PTERMS(:,10,228) = +TPK%CF36*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:) -! -!PTERMS(URG9,K227) = +TPK%CFA15*K227*<NO>*<RO241> - PTERMS(:,66,228) = +TPK%CFA15*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:) -! -!PTERMS(HO2,K228) = +K228*<RO2T>*<RO241> - PTERMS(:,10,229) = +TPK%K228(:)*PCONC(:,85)*TPK%RO241(:) -! -!PTERMS(URG9,K228) = +0.9999996*K228*<RO2T>*<RO241> - PTERMS(:,66,229) = +0.9999996*TPK%K228(:)*PCONC(:,85)*TPK%RO241(:) -! -!PTERMS(RO2T,K228) = -K228*<RO2T>*<RO241> - PTERMS(:,85,229) = -TPK%K228(:)*PCONC(:,85)*TPK%RO241(:) -! -!PTERMS(HO2,K229) = -K229*<HO2>*<RO241> - PTERMS(:,10,230) = -TPK%K229(:)*PCONC(:,10)*TPK%RO241(:) -! -!PTERMS(OH,K229) = +K229*<HO2>*<RO241> - PTERMS(:,15,230) = +TPK%K229(:)*PCONC(:,10)*TPK%RO241(:) -! -! -RETURN -END SUBROUTINE SUBT37 -! -SUBROUTINE SUBT38 -! -!Indices 761 a 780 -! -!PTERMS(URG9,K229) = +0.9999996*K229*<HO2>*<RO241> - PTERMS(:,66,230) = +0.9999996*TPK%K229(:)*PCONC(:,10)*TPK%RO241(:) -! -!PTERMS(RO2T,K230) = +K230*<RO233> - PTERMS(:,85,231) = +TPK%K230(:)*TPK%RO233(:) -! -!PTERMS(NO,K231) = -K231*<NO>*<RO233> - PTERMS(:,1,232) = -TPK%K231(:)*PCONC(:,1)*TPK%RO233(:) -! -!PTERMS(NO2,K231) = +K231*<NO>*<RO233> - PTERMS(:,2,232) = +TPK%K231(:)*PCONC(:,1)*TPK%RO233(:) -! -!PTERMS(HO2,K231) = +K231*<NO>*<RO233> - PTERMS(:,10,232) = +TPK%K231(:)*PCONC(:,1)*TPK%RO233(:) -! -!PTERMS(RPG3,K231) = +0.3000000*K231*<NO>*<RO233> - PTERMS(:,52,232) = +0.3000000*TPK%K231(:)*PCONC(:,1)*TPK%RO233(:) -! -!PTERMS(HO2,K232) = +K232*<RO2T>*<RO233> - PTERMS(:,10,233) = +TPK%K232(:)*PCONC(:,85)*TPK%RO233(:) -! -!PTERMS(RPG3,K232) = +1.0000000*K232*<RO2T>*<RO233> - PTERMS(:,52,233) = +1.0000000*TPK%K232(:)*PCONC(:,85)*TPK%RO233(:) -! -!PTERMS(RO2T,K232) = -K232*<RO2T>*<RO233> - PTERMS(:,85,233) = -TPK%K232(:)*PCONC(:,85)*TPK%RO233(:) -! -!PTERMS(HO2,K233) = -K233*<HO2>*<RO233> - PTERMS(:,10,234) = -TPK%K233(:)*PCONC(:,10)*TPK%RO233(:) -! -!PTERMS(OH,K233) = +K233*<HO2>*<RO233> - PTERMS(:,15,234) = +TPK%K233(:)*PCONC(:,10)*TPK%RO233(:) -! -!PTERMS(RPG3,K233) = +0.3000000*K233*<HO2>*<RO233> - PTERMS(:,52,234) = +0.3000000*TPK%K233(:)*PCONC(:,10)*TPK%RO233(:) -! -!PTERMS(NO,K234) = -K234*<NO>*<RO242> - PTERMS(:,1,235) = -TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) -! -!PTERMS(NO2,K234) = +K234*<NO>*<RO242> - PTERMS(:,2,235) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) -! -!PTERMS(HO2,K234) = +K234*<NO>*<RO242> - PTERMS(:,10,235) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) -! -!PTERMS(MGLY,K234) = +K234*<NO>*<RO242> - PTERMS(:,41,235) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) -! -!PTERMS(RP10,K234) = +K234*<NO>*<RO242> - PTERMS(:,72,235) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) -! -!PTERMS(HO2,K235) = +K235*<RO2T>*<RO242> - PTERMS(:,10,236) = +TPK%K235(:)*PCONC(:,85)*TPK%RO242(:) -! -!PTERMS(MGLY,K235) = +K235*<RO2T>*<RO242> - PTERMS(:,41,236) = +TPK%K235(:)*PCONC(:,85)*TPK%RO242(:) -! -!PTERMS(RP10,K235) = +K235*<RO2T>*<RO242> - PTERMS(:,72,236) = +TPK%K235(:)*PCONC(:,85)*TPK%RO242(:) -! -! -RETURN -END SUBROUTINE SUBT38 -! -SUBROUTINE SUBT39 -! -!Indices 781 a 800 -! -!PTERMS(RO2T,K235) = -K235*<RO2T>*<RO242> - PTERMS(:,85,236) = -TPK%K235(:)*PCONC(:,85)*TPK%RO242(:) -! -!PTERMS(HO2,K236) = -K236*<HO2>*<RO242> - PTERMS(:,10,237) = -TPK%K236(:)*PCONC(:,10)*TPK%RO242(:) -! -!PTERMS(OH,K236) = +K236*<HO2>*<RO242> - PTERMS(:,15,237) = +TPK%K236(:)*PCONC(:,10)*TPK%RO242(:) -! -!PTERMS(MGLY,K236) = +K236*<HO2>*<RO242> - PTERMS(:,41,237) = +TPK%K236(:)*PCONC(:,10)*TPK%RO242(:) -! -!PTERMS(RP10,K236) = +K236*<HO2>*<RO242> - PTERMS(:,72,237) = +TPK%K236(:)*PCONC(:,10)*TPK%RO242(:) -! -!PTERMS(RO2T,K237) = +K237*<RO234> - PTERMS(:,85,238) = +TPK%K237(:)*TPK%RO234(:) -! -!PTERMS(NO,K238) = -K238*<NO>*<RO234> - PTERMS(:,1,239) = -TPK%K238(:)*PCONC(:,1)*TPK%RO234(:) -! -!PTERMS(NO2,K238) = +K238*<NO>*<RO234> - PTERMS(:,2,239) = +TPK%K238(:)*PCONC(:,1)*TPK%RO234(:) -! -!PTERMS(HO2,K238) = +K238*<NO>*<RO234> - PTERMS(:,10,239) = +TPK%K238(:)*PCONC(:,1)*TPK%RO234(:) -! -!PTERMS(RP11,K238) = +0.3*K238*<NO>*<RO234> - PTERMS(:,73,239) = +0.3*TPK%K238(:)*PCONC(:,1)*TPK%RO234(:) -! -!PTERMS(HO2,K239) = +K239*<RO2T>*<RO234> - PTERMS(:,10,240) = +TPK%K239(:)*PCONC(:,85)*TPK%RO234(:) -! -!PTERMS(RP11,K239) = +K239*<RO2T>*<RO234> - PTERMS(:,73,240) = +TPK%K239(:)*PCONC(:,85)*TPK%RO234(:) -! -!PTERMS(RO2T,K239) = -K239*<RO2T>*<RO234> - PTERMS(:,85,240) = -TPK%K239(:)*PCONC(:,85)*TPK%RO234(:) -! -!PTERMS(HO2,K240) = -K240*<HO2>*<RO234> - PTERMS(:,10,241) = -TPK%K240(:)*PCONC(:,10)*TPK%RO234(:) -! -!PTERMS(OH,K240) = +K240*<HO2>*<RO234> - PTERMS(:,15,241) = +TPK%K240(:)*PCONC(:,10)*TPK%RO234(:) -! -!PTERMS(RP11,K240) = +0.3*K240*<HO2>*<RO234> - PTERMS(:,73,241) = +0.3*TPK%K240(:)*PCONC(:,10)*TPK%RO234(:) -! -!PTERMS(NO,K241) = -K241*<NO>*<RO243> - PTERMS(:,1,242) = -TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) -! -!PTERMS(NO2,K241) = +K241*<NO>*<RO243> - PTERMS(:,2,242) = +TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) -! -!PTERMS(HO2,K241) = +K241*<NO>*<RO243> - PTERMS(:,10,242) = +TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) -! -!PTERMS(MGLY,K241) = +K241*<NO>*<RO243> - PTERMS(:,41,242) = +TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) -! -! -RETURN -END SUBROUTINE SUBT39 -! -SUBROUTINE SUBT40 -! -!Indices 801 a 820 -! -!PTERMS(RP10,K241) = +K241*<NO>*<RO243> - PTERMS(:,72,242) = +TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) -! -!PTERMS(HO2,K242) = +K242*<RO2T>*<RO243> - PTERMS(:,10,243) = +TPK%K242(:)*PCONC(:,85)*TPK%RO243(:) -! -!PTERMS(MGLY,K242) = +K242*<RO2T>*<RO243> - PTERMS(:,41,243) = +TPK%K242(:)*PCONC(:,85)*TPK%RO243(:) -! -!PTERMS(RP10,K242) = +K242*<RO2T>*<RO243> - PTERMS(:,72,243) = +TPK%K242(:)*PCONC(:,85)*TPK%RO243(:) -! -!PTERMS(RO2T,K242) = -K242*<RO2T>*<RO243> - PTERMS(:,85,243) = -TPK%K242(:)*PCONC(:,85)*TPK%RO243(:) -! -!PTERMS(HO2,K243) = -K243*<HO2>*<RO243> - PTERMS(:,10,244) = -TPK%K243(:)*PCONC(:,10)*TPK%RO243(:) -! -!PTERMS(OH,K243) = +K243*<HO2>*<RO243> - PTERMS(:,15,244) = +TPK%K243(:)*PCONC(:,10)*TPK%RO243(:) -! -!PTERMS(MGLY,K243) = +K243*<HO2>*<RO243> - PTERMS(:,41,244) = +TPK%K243(:)*PCONC(:,10)*TPK%RO243(:) -! -!PTERMS(RP10,K243) = +K243*<HO2>*<RO243> - PTERMS(:,72,244) = +TPK%K243(:)*PCONC(:,10)*TPK%RO243(:) -! -!PTERMS(RO2T,K244) = +K244*<RO235> - PTERMS(:,85,245) = +TPK%K244(:)*TPK%RO235(:) -! -!PTERMS(NO,K245) = -K245*<NO>*<RO235> - PTERMS(:,1,246) = -TPK%K245(:)*PCONC(:,1)*TPK%RO235(:) -! -!PTERMS(NO2,K245) = +K245*<NO>*<RO235> - PTERMS(:,2,246) = +TPK%K245(:)*PCONC(:,1)*TPK%RO235(:) -! -!PTERMS(HO2,K245) = +K245*<NO>*<RO235> - PTERMS(:,10,246) = +TPK%K245(:)*PCONC(:,1)*TPK%RO235(:) -! -!PTERMS(RP11,K245) = +0.5*K245*<NO>*<RO235> - PTERMS(:,73,246) = +0.5*TPK%K245(:)*PCONC(:,1)*TPK%RO235(:) -! -!PTERMS(HO2,K246) = +K246*<RO2T>*<RO235> - PTERMS(:,10,247) = +TPK%K246(:)*PCONC(:,85)*TPK%RO235(:) -! -!PTERMS(RP11,K246) = +K246*<RO2T>*<RO235> - PTERMS(:,73,247) = +TPK%K246(:)*PCONC(:,85)*TPK%RO235(:) -! -!PTERMS(RO2T,K246) = -K246*<RO2T>*<RO235> - PTERMS(:,85,247) = -TPK%K246(:)*PCONC(:,85)*TPK%RO235(:) -! -!PTERMS(HO2,K247) = -K247*<HO2>*<RO235> - PTERMS(:,10,248) = -TPK%K247(:)*PCONC(:,10)*TPK%RO235(:) -! -!PTERMS(OH,K247) = +K247*<HO2>*<RO235> - PTERMS(:,15,248) = +TPK%K247(:)*PCONC(:,10)*TPK%RO235(:) -! -!PTERMS(RP11,K247) = +K247*<HO2>*<RO235> - PTERMS(:,73,248) = +TPK%K247(:)*PCONC(:,10)*TPK%RO235(:) -! -! -RETURN -END SUBROUTINE SUBT40 -! -SUBROUTINE SUBT41 -! -!Indices 821 a 840 -! -!PTERMS(NO,K248) = -K248*<NO>*<RO244> - PTERMS(:,1,249) = -TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) -! -!PTERMS(NO2,K248) = +K248*<NO>*<RO244> - PTERMS(:,2,249) = +TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) -! -!PTERMS(HO2,K248) = +K248*<NO>*<RO244> - PTERMS(:,10,249) = +TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) -! -!PTERMS(MGLY,K248) = +K248*<NO>*<RO244> - PTERMS(:,41,249) = +TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) -! -!PTERMS(RP10,K248) = +K248*<NO>*<RO244> - PTERMS(:,72,249) = +TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) -! -!PTERMS(HO2,K249) = +K249*<RO2T>*<RO244> - PTERMS(:,10,250) = +TPK%K249(:)*PCONC(:,85)*TPK%RO244(:) -! -!PTERMS(MGLY,K249) = +K249*<RO2T>*<RO244> - PTERMS(:,41,250) = +TPK%K249(:)*PCONC(:,85)*TPK%RO244(:) -! -!PTERMS(RP10,K249) = +K249*<RO2T>*<RO244> - PTERMS(:,72,250) = +TPK%K249(:)*PCONC(:,85)*TPK%RO244(:) -! -!PTERMS(RO2T,K249) = -K249*<RO2T>*<RO244> - PTERMS(:,85,250) = -TPK%K249(:)*PCONC(:,85)*TPK%RO244(:) -! -!PTERMS(HO2,K250) = -K250*<HO2>*<RO244> - PTERMS(:,10,251) = -TPK%K250(:)*PCONC(:,10)*TPK%RO244(:) -! -!PTERMS(OH,K250) = +K250*<HO2>*<RO244> - PTERMS(:,15,251) = +TPK%K250(:)*PCONC(:,10)*TPK%RO244(:) -! -!PTERMS(MGLY,K250) = +K250*<HO2>*<RO244> - PTERMS(:,41,251) = +TPK%K250(:)*PCONC(:,10)*TPK%RO244(:) -! -!PTERMS(RP10,K250) = +K250*<HO2>*<RO244> - PTERMS(:,72,251) = +TPK%K250(:)*PCONC(:,10)*TPK%RO244(:) -! -!PTERMS(RO2T,K251) = +K251*<RO236> - PTERMS(:,85,252) = +TPK%K251(:)*TPK%RO236(:) -! -!PTERMS(NO,K252) = -K252*<NO>*<RO236> - PTERMS(:,1,253) = -TPK%K252(:)*PCONC(:,1)*TPK%RO236(:) -! -!PTERMS(NO2,K252) = +K252*<NO>*<RO236> - PTERMS(:,2,253) = +TPK%K252(:)*PCONC(:,1)*TPK%RO236(:) -! -!PTERMS(HO2,K252) = +K252*<NO>*<RO236> - PTERMS(:,10,253) = +TPK%K252(:)*PCONC(:,1)*TPK%RO236(:) -! -!PTERMS(RPG3,K252) = +0.3000000*K252*<NO>*<RO236> - PTERMS(:,52,253) = +0.3000000*TPK%K252(:)*PCONC(:,1)*TPK%RO236(:) -! -!PTERMS(HO2,K253) = +K253*<RO2T>*<RO236> - PTERMS(:,10,254) = +TPK%K253(:)*PCONC(:,85)*TPK%RO236(:) -! -!PTERMS(RPG3,K253) = +1.0000000*K253*<RO2T>*<RO236> - PTERMS(:,52,254) = +1.0000000*TPK%K253(:)*PCONC(:,85)*TPK%RO236(:) -! -! -RETURN -END SUBROUTINE SUBT41 -! -SUBROUTINE SUBT42 -! -!Indices 841 a 860 -! -!PTERMS(RO2T,K253) = -K253*<RO2T>*<RO236> - PTERMS(:,85,254) = -TPK%K253(:)*PCONC(:,85)*TPK%RO236(:) -! -!PTERMS(HO2,K254) = -K254*<HO2>*<RO236> - PTERMS(:,10,255) = -TPK%K254(:)*PCONC(:,10)*TPK%RO236(:) -! -!PTERMS(OH,K254) = +K254*<HO2>*<RO236> - PTERMS(:,15,255) = +TPK%K254(:)*PCONC(:,10)*TPK%RO236(:) -! -!PTERMS(RPG3,K254) = +0.3000000*K254*<HO2>*<RO236> - PTERMS(:,52,255) = +0.3000000*TPK%K254(:)*PCONC(:,10)*TPK%RO236(:) -! -!PTERMS(NO,K255) = -K255*<NO>*<RO245> - PTERMS(:,1,256) = -TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) -! -!PTERMS(NO2,K255) = +K255*<NO>*<RO245> - PTERMS(:,2,256) = +TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) -! -!PTERMS(HO2,K255) = +K255*<NO>*<RO245> - PTERMS(:,10,256) = +TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) -! -!PTERMS(MGLY,K255) = +K255*<NO>*<RO245> - PTERMS(:,41,256) = +TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) -! -!PTERMS(RP10,K255) = +K255*<NO>*<RO245> - PTERMS(:,72,256) = +TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) -! -!PTERMS(HO2,K256) = +K256*<RO2T>*<RO245> - PTERMS(:,10,257) = +TPK%K256(:)*PCONC(:,85)*TPK%RO245(:) -! -!PTERMS(MGLY,K256) = +K256*<RO2T>*<RO245> - PTERMS(:,41,257) = +TPK%K256(:)*PCONC(:,85)*TPK%RO245(:) -! -!PTERMS(RP10,K256) = +K256*<RO2T>*<RO245> - PTERMS(:,72,257) = +TPK%K256(:)*PCONC(:,85)*TPK%RO245(:) -! -!PTERMS(RO2T,K256) = -K256*<RO2T>*<RO245> - PTERMS(:,85,257) = -TPK%K256(:)*PCONC(:,85)*TPK%RO245(:) -! -!PTERMS(HO2,K257) = -K257*<HO2>*<RO245> - PTERMS(:,10,258) = -TPK%K257(:)*PCONC(:,10)*TPK%RO245(:) -! -!PTERMS(OH,K257) = +K257*<HO2>*<RO245> - PTERMS(:,15,258) = +TPK%K257(:)*PCONC(:,10)*TPK%RO245(:) -! -!PTERMS(MGLY,K257) = +K257*<HO2>*<RO245> - PTERMS(:,41,258) = +TPK%K257(:)*PCONC(:,10)*TPK%RO245(:) -! -!PTERMS(RP10,K257) = +K257*<HO2>*<RO245> - PTERMS(:,72,258) = +TPK%K257(:)*PCONC(:,10)*TPK%RO245(:) -! -!PTERMS(RO2T,K258) = +K258*<RO237> - PTERMS(:,85,259) = +TPK%K258(:)*TPK%RO237(:) -! -!PTERMS(NO,K259) = -K259*<NO>*<RO237> - PTERMS(:,1,260) = -TPK%K259(:)*PCONC(:,1)*TPK%RO237(:) -! -!PTERMS(NO2,K259) = +K259*<NO>*<RO237> - PTERMS(:,2,260) = +TPK%K259(:)*PCONC(:,1)*TPK%RO237(:) -! -! -RETURN -END SUBROUTINE SUBT42 -! -SUBROUTINE SUBT43 -! -!Indices 861 a 880 -! -!PTERMS(HO2,K259) = +K259*<NO>*<RO237> - PTERMS(:,10,260) = +TPK%K259(:)*PCONC(:,1)*TPK%RO237(:) -! -!PTERMS(RPG2,K259) = +0.3000000*K259*<NO>*<RO237> - PTERMS(:,50,260) = +0.3000000*TPK%K259(:)*PCONC(:,1)*TPK%RO237(:) -! -!PTERMS(HO2,K260) = +K260*<RO2T>*<RO237> - PTERMS(:,10,261) = +TPK%K260(:)*PCONC(:,85)*TPK%RO237(:) -! -!PTERMS(RPG2,K260) = +1.0000000*K260*<RO2T>*<RO237> - PTERMS(:,50,261) = +1.0000000*TPK%K260(:)*PCONC(:,85)*TPK%RO237(:) -! -!PTERMS(RO2T,K260) = -K260*<RO2T>*<RO237> - PTERMS(:,85,261) = -TPK%K260(:)*PCONC(:,85)*TPK%RO237(:) -! -!PTERMS(HO2,K261) = -K261*<HO2>*<RO237> - PTERMS(:,10,262) = -TPK%K261(:)*PCONC(:,10)*TPK%RO237(:) -! -!PTERMS(OH,K261) = +K261*<HO2>*<RO237> - PTERMS(:,15,262) = +TPK%K261(:)*PCONC(:,10)*TPK%RO237(:) -! -!PTERMS(RPG2,K261) = +0.3000000*K261*<HO2>*<RO237> - PTERMS(:,50,262) = +0.3000000*TPK%K261(:)*PCONC(:,10)*TPK%RO237(:) -! -!PTERMS(NO,K262) = -K262*<NO>*<RO246> - PTERMS(:,1,263) = -TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) -! -!PTERMS(NO2,K262) = +K262*<NO>*<RO246> - PTERMS(:,2,263) = +TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) -! -!PTERMS(HO2,K262) = +K262*<NO>*<RO246> - PTERMS(:,10,263) = +TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) -! -!PTERMS(MGLY,K262) = +K262*<NO>*<RO246> - PTERMS(:,41,263) = +TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) -! -!PTERMS(RP10,K262) = +K262*<NO>*<RO246> - PTERMS(:,72,263) = +TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) -! -!PTERMS(HO2,K263) = +K263*<RO2T>*<RO246> - PTERMS(:,10,264) = +TPK%K263(:)*PCONC(:,85)*TPK%RO246(:) -! -!PTERMS(MGLY,K263) = +K263*<RO2T>*<RO246> - PTERMS(:,41,264) = +TPK%K263(:)*PCONC(:,85)*TPK%RO246(:) -! -!PTERMS(RP10,K263) = +K263*<RO2T>*<RO246> - PTERMS(:,72,264) = +TPK%K263(:)*PCONC(:,85)*TPK%RO246(:) -! -!PTERMS(RO2T,K263) = -K263*<RO2T>*<RO246> - PTERMS(:,85,264) = -TPK%K263(:)*PCONC(:,85)*TPK%RO246(:) -! -!PTERMS(HO2,K264) = -K264*<HO2>*<RO246> - PTERMS(:,10,265) = -TPK%K264(:)*PCONC(:,10)*TPK%RO246(:) -! -!PTERMS(OH,K264) = +K264*<HO2>*<RO246> - PTERMS(:,15,265) = +TPK%K264(:)*PCONC(:,10)*TPK%RO246(:) -! -!PTERMS(MGLY,K264) = +K264*<HO2>*<RO246> - PTERMS(:,41,265) = +TPK%K264(:)*PCONC(:,10)*TPK%RO246(:) -! -! -RETURN -END SUBROUTINE SUBT43 -! -SUBROUTINE SUBT44 -! -!Indices 881 a 900 -! -!PTERMS(RP10,K264) = +K264*<HO2>*<RO246> - PTERMS(:,72,265) = +TPK%K264(:)*PCONC(:,10)*TPK%RO246(:) -! -!PTERMS(RO2T,K265) = +K265*<RO238> - PTERMS(:,85,266) = +TPK%K265(:)*TPK%RO238(:) -! -!PTERMS(NO,K266) = -K266*<NO>*<RO238> - PTERMS(:,1,267) = -TPK%K266(:)*PCONC(:,1)*TPK%RO238(:) -! -!PTERMS(NO2,K266) = +K266*<NO>*<RO238> - PTERMS(:,2,267) = +TPK%K266(:)*PCONC(:,1)*TPK%RO238(:) -! -!PTERMS(HO2,K266) = +K266*<NO>*<RO238> - PTERMS(:,10,267) = +TPK%K266(:)*PCONC(:,1)*TPK%RO238(:) -! -!PTERMS(RPG7,K266) = +1.0000013*K266*<NO>*<RO238> - PTERMS(:,63,267) = +1.0000013*TPK%K266(:)*PCONC(:,1)*TPK%RO238(:) -! -!PTERMS(HO2,K267) = +K267*<RO2T>*<RO238> - PTERMS(:,10,268) = +TPK%K267(:)*PCONC(:,85)*TPK%RO238(:) -! -!PTERMS(RPG7,K267) = +1.0000013*K267*<RO2T>*<RO238> - PTERMS(:,63,268) = +1.0000013*TPK%K267(:)*PCONC(:,85)*TPK%RO238(:) -! -!PTERMS(RO2T,K267) = -K267*<RO2T>*<RO238> - PTERMS(:,85,268) = -TPK%K267(:)*PCONC(:,85)*TPK%RO238(:) -! -!PTERMS(HO2,K268) = -K268*<HO2>*<RO238> - PTERMS(:,10,269) = -TPK%K268(:)*PCONC(:,10)*TPK%RO238(:) -! -!PTERMS(OH,K268) = +K268*<HO2>*<RO238> - PTERMS(:,15,269) = +TPK%K268(:)*PCONC(:,10)*TPK%RO238(:) -! -!PTERMS(RPG7,K268) = +1.0000013*K268*<HO2>*<RO238> - PTERMS(:,63,269) = +1.0000013*TPK%K268(:)*PCONC(:,10)*TPK%RO238(:) -! -!PTERMS(NO,K269) = -K269*<NO>*<RO247> - PTERMS(:,1,270) = -TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) -! -!PTERMS(NO2,K269) = +K269*<NO>*<RO247> - PTERMS(:,2,270) = +TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) -! -!PTERMS(HO2,K269) = +K269*<NO>*<RO247> - PTERMS(:,10,270) = +TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) -! -!PTERMS(MGLY,K269) = +K269*<NO>*<RO247> - PTERMS(:,41,270) = +TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) -! -!PTERMS(RPRL,K269) = +1.0023998*K269*<NO>*<RO247> - PTERMS(:,75,270) = +1.0023998*TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) -! -!PTERMS(HO2,K270) = +K270*<RO2T>*<RO247> - PTERMS(:,10,271) = +TPK%K270(:)*PCONC(:,85)*TPK%RO247(:) -! -!PTERMS(MGLY,K270) = +K270*<RO2T>*<RO247> - PTERMS(:,41,271) = +TPK%K270(:)*PCONC(:,85)*TPK%RO247(:) -! -!PTERMS(RPRL,K270) = +1.0023998*K270*<RO2T>*<RO247> - PTERMS(:,75,271) = +1.0023998*TPK%K270(:)*PCONC(:,85)*TPK%RO247(:) -! -! -RETURN -END SUBROUTINE SUBT44 -! -SUBROUTINE SUBT45 -! -!Indices 901 a 920 -! -!PTERMS(RO2T,K270) = -K270*<RO2T>*<RO247> - PTERMS(:,85,271) = -TPK%K270(:)*PCONC(:,85)*TPK%RO247(:) -! -!PTERMS(HO2,K271) = -K271*<HO2>*<RO247> - PTERMS(:,10,272) = -TPK%K271(:)*PCONC(:,10)*TPK%RO247(:) -! -!PTERMS(OH,K271) = +K271*<HO2>*<RO247> - PTERMS(:,15,272) = +TPK%K271(:)*PCONC(:,10)*TPK%RO247(:) -! -!PTERMS(MGLY,K271) = +K271*<HO2>*<RO247> - PTERMS(:,41,272) = +TPK%K271(:)*PCONC(:,10)*TPK%RO247(:) -! -!PTERMS(RPRL,K271) = +1.0023998*K271*<HO2>*<RO247> - PTERMS(:,75,272) = +1.0023998*TPK%K271(:)*PCONC(:,10)*TPK%RO247(:) -! -!PTERMS(OH,K272) = -K272*<OH>*<MVK> - PTERMS(:,15,273) = -TPK%K272(:)*PCONC(:,15)*PCONC(:,39) -! -!PTERMS(MVK,K272) = -K272*<OH>*<MVK> - PTERMS(:,39,273) = -TPK%K272(:)*PCONC(:,15)*PCONC(:,39) -! -!PTERMS(RO2T,K272) = +K272*<OH>*<MVK> - PTERMS(:,85,273) = +TPK%K272(:)*PCONC(:,15)*PCONC(:,39) -! -!PTERMS(OH,K273) = -K273*<OH>*<MCR> - PTERMS(:,15,274) = -TPK%K273(:)*PCONC(:,15)*PCONC(:,40) -! -!PTERMS(MCR,K273) = -K273*<OH>*<MCR> - PTERMS(:,40,274) = -TPK%K273(:)*PCONC(:,15)*PCONC(:,40) -! -!PTERMS(RO2T,K273) = +K273*<OH>*<MCR> - PTERMS(:,85,274) = +TPK%K273(:)*PCONC(:,15)*PCONC(:,40) -! -!PTERMS(OH,K274) = -K274*<OH>*<MGLY> - PTERMS(:,15,275) = -TPK%K274(:)*PCONC(:,15)*PCONC(:,41) -! -!PTERMS(MGLY,K274) = -K274*<OH>*<MGLY> - PTERMS(:,41,275) = -TPK%K274(:)*PCONC(:,15)*PCONC(:,41) -! -!PTERMS(RO2T,K274) = +K274*<OH>*<MGLY> - PTERMS(:,85,275) = +TPK%K274(:)*PCONC(:,15)*PCONC(:,41) -! -!PTERMS(HNO3,K275) = +TPK%CF46*K275*<NO3>*<MCR> - PTERMS(:,5,276) = +TPK%CF46*TPK%K275(:)*PCONC(:,8)*PCONC(:,40) -! -!PTERMS(NO3,K275) = -K275*<NO3>*<MCR> - PTERMS(:,8,276) = -TPK%K275(:)*PCONC(:,8)*PCONC(:,40) -! -!PTERMS(MCR,K275) = -K275*<NO3>*<MCR> - PTERMS(:,40,276) = -TPK%K275(:)*PCONC(:,8)*PCONC(:,40) -! -!PTERMS(RO2T,K275) = +K275*<NO3>*<MCR> - PTERMS(:,85,276) = +TPK%K275(:)*PCONC(:,8)*PCONC(:,40) -! -!PTERMS(HO2,K276) = +K276*<MGLY> - PTERMS(:,10,277) = +TPK%K276(:)*PCONC(:,41) -! -!PTERMS(CO,K276) = +K276*<MGLY> - PTERMS(:,11,277) = +TPK%K276(:)*PCONC(:,41) -! -! -RETURN -END SUBROUTINE SUBT45 -! -SUBROUTINE SUBT46 -! -!Indices 921 a 940 -! -!PTERMS(MGLY,K276) = -K276*<MGLY> - PTERMS(:,41,277) = -TPK%K276(:)*PCONC(:,41) -! -!PTERMS(RO2T,K276) = +K276*<MGLY> - PTERMS(:,85,277) = +TPK%K276(:)*PCONC(:,41) -! -!PTERMS(NO,K277) = -K277*<NO>*<RO248> - PTERMS(:,1,278) = -TPK%K277(:)*PCONC(:,1)*TPK%RO248(:) -! -!PTERMS(NO2,K277) = +K277*<NO>*<RO248> - PTERMS(:,2,278) = +TPK%K277(:)*PCONC(:,1)*TPK%RO248(:) -! -!PTERMS(RO2T,K277) = +K277*<NO>*<RO248> - PTERMS(:,85,278) = +TPK%K277(:)*PCONC(:,1)*TPK%RO248(:) -! -!PTERMS(HNO3,K278) = +K278*<NO3>*<MGLY> - PTERMS(:,5,279) = +TPK%K278(:)*PCONC(:,8)*PCONC(:,41) -! -!PTERMS(NO3,K278) = -K278*<NO3>*<MGLY> - PTERMS(:,8,279) = -TPK%K278(:)*PCONC(:,8)*PCONC(:,41) -! -!PTERMS(MGLY,K278) = -K278*<NO3>*<MGLY> - PTERMS(:,41,279) = -TPK%K278(:)*PCONC(:,8)*PCONC(:,41) -! -!PTERMS(RO2T,K278) = +K278*<NO3>*<MGLY> - PTERMS(:,85,279) = +TPK%K278(:)*PCONC(:,8)*PCONC(:,41) -! -!PTERMS(O3,K279) = +K279*<HO2>*<RO248> - PTERMS(:,3,280) = +TPK%K279(:)*PCONC(:,10)*TPK%RO248(:) -! -!PTERMS(HO2,K279) = -K279*<HO2>*<RO248> - PTERMS(:,10,280) = -TPK%K279(:)*PCONC(:,10)*TPK%RO248(:) -! -!PTERMS(UR21,K279) = +K279*<HO2>*<RO248> - PTERMS(:,47,280) = +TPK%K279(:)*PCONC(:,10)*TPK%RO248(:) -! -!PTERMS(RO2T,K280) = -K280*<RO2T>*<RO248> - PTERMS(:,85,281) = -TPK%K280(:)*PCONC(:,85)*TPK%RO248(:) -! -!PTERMS(O3,K281) = -K281*<O3>*<MVK> - PTERMS(:,3,282) = -TPK%K281(:)*PCONC(:,3)*PCONC(:,39) -! -!PTERMS(HO2,K281) = +0.28*K281*<O3>*<MVK> - PTERMS(:,10,282) = +0.28*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) -! -!PTERMS(CO,K281) = +0.56*K281*<O3>*<MVK> - PTERMS(:,11,282) = +0.56*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) -! -!PTERMS(OH,K281) = +0.36*K281*<O3>*<MVK> - PTERMS(:,15,282) = +0.36*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) -! -!PTERMS(HCHO,K281) = +0.5*K281*<O3>*<MVK> - PTERMS(:,28,282) = +0.5*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) -! -!PTERMS(ALD2,K281) = +0.1*K281*<O3>*<MVK> - PTERMS(:,29,282) = +0.1*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) -! -!PTERMS(MVK,K281) = -K281*<O3>*<MVK> - PTERMS(:,39,282) = -TPK%K281(:)*PCONC(:,3)*PCONC(:,39) -! -! -RETURN -END SUBROUTINE SUBT46 -! -SUBROUTINE SUBT47 -! -!Indices 941 a 960 -! -!PTERMS(MGLY,K281) = +0.5*K281*<O3>*<MVK> - PTERMS(:,41,282) = +0.5*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) -! -!PTERMS(ORA1,K281) = +0.12*K281*<O3>*<MVK> - PTERMS(:,43,282) = +0.12*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) -! -!PTERMS(UR21,K281) = +0.12*K281*<O3>*<MVK> - PTERMS(:,47,282) = +0.12*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) -! -!PTERMS(RO2T,K281) = +0.28*K281*<O3>*<MVK> - PTERMS(:,85,282) = +0.28*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) -! -!PTERMS(O3,K282) = -K282*<O3>*<MCR> - PTERMS(:,3,283) = -TPK%K282(:)*PCONC(:,3)*PCONC(:,40) -! -!PTERMS(HO2,K282) = +0.41*K282*<O3>*<MCR> - PTERMS(:,10,283) = +0.41*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) -! -!PTERMS(CO,K282) = +0.41*K282*<O3>*<MCR> - PTERMS(:,11,283) = +0.41*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) -! -!PTERMS(OH,K282) = +0.82*K282*<O3>*<MCR> - PTERMS(:,15,283) = +0.82*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) -! -!PTERMS(HCHO,K282) = +0.5*K282*<O3>*<MCR> - PTERMS(:,28,283) = +0.5*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) -! -!PTERMS(MCR,K282) = -K282*<O3>*<MCR> - PTERMS(:,40,283) = -TPK%K282(:)*PCONC(:,3)*PCONC(:,40) -! -!PTERMS(MGLY,K282) = +0.59*K282*<O3>*<MCR> - PTERMS(:,41,283) = +0.59*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) -! -!PTERMS(ORA1,K282) = +0.09*K282*<O3>*<MCR> - PTERMS(:,43,283) = +0.09*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) -! -!PTERMS(RO2T,K282) = +0.41*K282*<O3>*<MCR> - PTERMS(:,85,283) = +0.41*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) -! -!PTERMS(KETL,K283) = +0.85*K283*<O>*<MVK> - PTERMS(:,30,284) = +0.85*TPK%K283(:)*TPK%O(:)*PCONC(:,39) -! -!PTERMS(MVK,K283) = -K283*<O>*<MVK> - PTERMS(:,39,284) = -TPK%K283(:)*TPK%O(:)*PCONC(:,39) -! -!PTERMS(RO2T,K283) = +0.3*K283*<O>*<MVK> - PTERMS(:,85,284) = +0.3*TPK%K283(:)*TPK%O(:)*PCONC(:,39) -! -!PTERMS(HO2,K284) = +0.15*K284*<O>*<MCR> - PTERMS(:,10,285) = +0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40) -! -!PTERMS(CO,K284) = +0.15*K284*<O>*<MCR> - PTERMS(:,11,285) = +0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40) -! -!PTERMS(ALD2,K284) = +0.85*K284*<O>*<MCR> - PTERMS(:,29,285) = +0.85*TPK%K284(:)*TPK%O(:)*PCONC(:,40) -! -!PTERMS(MCR,K284) = -K284*<O>*<MCR> - PTERMS(:,40,285) = -TPK%K284(:)*TPK%O(:)*PCONC(:,40) -! -! -RETURN -END SUBROUTINE SUBT47 -! -SUBROUTINE SUBT48 -! -!Indices 961 a 980 -! -!PTERMS(RO2T,K284) = +0.15*K284*<O>*<MCR> - PTERMS(:,85,285) = +0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40) -! -!PTERMS(NO,K285) = -K285*<NO>*<RO249> - PTERMS(:,1,286) = -TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) -! -!PTERMS(NO2,K285) = +K285*<NO>*<RO249> - PTERMS(:,2,286) = +TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) -! -!PTERMS(HO2,K285) = +K285*<NO>*<RO249> - PTERMS(:,10,286) = +TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) -! -!PTERMS(HCHO,K285) = +K285*<NO>*<RO249> - PTERMS(:,28,286) = +TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) -! -!PTERMS(MGLY,K285) = +K285*<NO>*<RO249> - PTERMS(:,41,286) = +TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) -! -!PTERMS(HO2,K286) = +K286*<RO2T>*<RO249> - PTERMS(:,10,287) = +TPK%K286(:)*PCONC(:,85)*TPK%RO249(:) -! -!PTERMS(HCHO,K286) = +K286*<RO2T>*<RO249> - PTERMS(:,28,287) = +TPK%K286(:)*PCONC(:,85)*TPK%RO249(:) -! -!PTERMS(MGLY,K286) = +K286*<RO2T>*<RO249> - PTERMS(:,41,287) = +TPK%K286(:)*PCONC(:,85)*TPK%RO249(:) -! -!PTERMS(RO2T,K286) = -K286*<RO2T>*<RO249> - PTERMS(:,85,287) = -TPK%K286(:)*PCONC(:,85)*TPK%RO249(:) -! -!PTERMS(HO2,K287) = -K287*<HO2>*<RO249> - PTERMS(:,10,288) = -TPK%K287(:)*PCONC(:,10)*TPK%RO249(:) -! -!PTERMS(OH,K287) = +K287*<HO2>*<RO249> - PTERMS(:,15,288) = +TPK%K287(:)*PCONC(:,10)*TPK%RO249(:) -! -!PTERMS(HCHO,K287) = +K287*<HO2>*<RO249> - PTERMS(:,28,288) = +TPK%K287(:)*PCONC(:,10)*TPK%RO249(:) -! -!PTERMS(MGLY,K287) = +K287*<HO2>*<RO249> - PTERMS(:,41,288) = +TPK%K287(:)*PCONC(:,10)*TPK%RO249(:) -! -!PTERMS(NO,K288) = -K288*<NO>*<RO250> - PTERMS(:,1,289) = -TPK%K288(:)*PCONC(:,1)*TPK%RO250(:) -! -!PTERMS(NO2,K288) = +K288*<NO>*<RO250> - PTERMS(:,2,289) = +TPK%K288(:)*PCONC(:,1)*TPK%RO250(:) -! -!PTERMS(RO2T,K288) = +K288*<NO>*<RO250> - PTERMS(:,85,289) = +TPK%K288(:)*PCONC(:,1)*TPK%RO250(:) -! -!PTERMS(O3,K289) = +K289*<HO2>*<RO250> - PTERMS(:,3,290) = +TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) -! -!PTERMS(HO2,K289) = -K289*<HO2>*<RO250> - PTERMS(:,10,290) = -TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) -! -!PTERMS(OLEL,K289) = +0.5*K289*<HO2>*<RO250> - PTERMS(:,17,290) = +0.5*TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) -! -! -RETURN -END SUBROUTINE SUBT48 -! -SUBROUTINE SUBT49 -! -!Indices 981 a 1000 -! -!PTERMS(ORA2,K289) = +0.5*K289*<HO2>*<RO250> - PTERMS(:,44,290) = +0.5*TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) -! -!PTERMS(RO2T,K290) = -K290*<RO2T>*<RO250> - PTERMS(:,85,291) = -TPK%K290(:)*PCONC(:,85)*TPK%RO250(:) -! -!PTERMS(NO,K291) = -K291*<NO>*<RO251> - PTERMS(:,1,292) = -TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) -! -!PTERMS(NO2,K291) = +K291*<NO>*<RO251> - PTERMS(:,2,292) = +TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) -! -!PTERMS(HO2,K291) = +K291*<NO>*<RO251> - PTERMS(:,10,292) = +TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) -! -!PTERMS(HCHO,K291) = +K291*<NO>*<RO251> - PTERMS(:,28,292) = +TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) -! -!PTERMS(MGLY,K291) = +K291*<NO>*<RO251> - PTERMS(:,41,292) = +TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) -! -!PTERMS(HO2,K292) = -K292*<HO2>*<RO251> - PTERMS(:,10,293) = -TPK%K292(:)*PCONC(:,10)*TPK%RO251(:) -! -!PTERMS(HCHO,K292) = +K292*<HO2>*<RO251> - PTERMS(:,28,293) = +TPK%K292(:)*PCONC(:,10)*TPK%RO251(:) -! -!PTERMS(MGLY,K292) = +K292*<HO2>*<RO251> - PTERMS(:,41,293) = +TPK%K292(:)*PCONC(:,10)*TPK%RO251(:) -! -!PTERMS(RO2T,K292) = +K292*<HO2>*<RO251> - PTERMS(:,85,293) = +TPK%K292(:)*PCONC(:,10)*TPK%RO251(:) -! -!PTERMS(HO2,K293) = +K293*<RO2T>*<RO251> - PTERMS(:,10,294) = +TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) -! -!PTERMS(OH,K293) = +K293*<RO2T>*<RO251> - PTERMS(:,15,294) = +TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) -! -!PTERMS(HCHO,K293) = +K293*<RO2T>*<RO251> - PTERMS(:,28,294) = +TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) -! -!PTERMS(MGLY,K293) = +K293*<RO2T>*<RO251> - PTERMS(:,41,294) = +TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) -! -!PTERMS(RO2T,K293) = -K293*<RO2T>*<RO251> - PTERMS(:,85,294) = -TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) -! -!PTERMS(NO,K294) = -K294*<NO>*<RO252> - PTERMS(:,1,295) = -TPK%K294(:)*PCONC(:,1)*TPK%RO252(:) -! -!PTERMS(NO2,K294) = +2.*K294*<NO>*<RO252> - PTERMS(:,2,295) = +2.*TPK%K294(:)*PCONC(:,1)*TPK%RO252(:) -! -!PTERMS(HCHO,K294) = +K294*<NO>*<RO252> - PTERMS(:,28,295) = +TPK%K294(:)*PCONC(:,1)*TPK%RO252(:) -! -!PTERMS(MGLY,K294) = +K294*<NO>*<RO252> - PTERMS(:,41,295) = +TPK%K294(:)*PCONC(:,1)*TPK%RO252(:) -! -! -RETURN -END SUBROUTINE SUBT49 -! -SUBROUTINE SUBT50 -! -!Indices 1001 a 1020 -! -!PTERMS(NO2,K295) = +K295*<HO2>*<RO252> - PTERMS(:,2,296) = +TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) -! -!PTERMS(HO2,K295) = -K295*<HO2>*<RO252> - PTERMS(:,10,296) = -TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) -! -!PTERMS(HCHO,K295) = +K295*<HO2>*<RO252> - PTERMS(:,28,296) = +TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) -! -!PTERMS(MGLY,K295) = +K295*<HO2>*<RO252> - PTERMS(:,41,296) = +TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) -! -!PTERMS(RO2T,K295) = +K295*<HO2>*<RO252> - PTERMS(:,85,296) = +TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) -! -!PTERMS(NO2,K296) = +K296*<RO2T>*<RO252> - PTERMS(:,2,297) = +TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) -! -!PTERMS(OH,K296) = +K296*<RO2T>*<RO252> - PTERMS(:,15,297) = +TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) -! -!PTERMS(HCHO,K296) = +K296*<RO2T>*<RO252> - PTERMS(:,28,297) = +TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) -! -!PTERMS(MGLY,K296) = +K296*<RO2T>*<RO252> - PTERMS(:,41,297) = +TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) -! -!PTERMS(RO2T,K296) = -K296*<RO2T>*<RO252> - PTERMS(:,85,297) = -TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) -! -!PTERMS(NO,K297) = -K297*<NO>*<RO253> - PTERMS(:,1,298) = -TPK%K297(:)*PCONC(:,1)*TPK%RO253(:) -! -!PTERMS(NO2,K297) = +K297*<NO>*<RO253> - PTERMS(:,2,298) = +TPK%K297(:)*PCONC(:,1)*TPK%RO253(:) -! -!PTERMS(HCHO,K297) = +K297*<NO>*<RO253> - PTERMS(:,28,298) = +TPK%K297(:)*PCONC(:,1)*TPK%RO253(:) -! -!PTERMS(RO2T,K297) = +K297*<NO>*<RO253> - PTERMS(:,85,298) = +TPK%K297(:)*PCONC(:,1)*TPK%RO253(:) -! -!PTERMS(HO2,K298) = -K298*<HO2>*<RO253> - PTERMS(:,10,299) = -TPK%K298(:)*PCONC(:,10)*TPK%RO253(:) -! -!PTERMS(HCHO,K298) = +K298*<HO2>*<RO253> - PTERMS(:,28,299) = +TPK%K298(:)*PCONC(:,10)*TPK%RO253(:) -! -!PTERMS(RO2T,K298) = +2.*K298*<HO2>*<RO253> - PTERMS(:,85,299) = +2.*TPK%K298(:)*PCONC(:,10)*TPK%RO253(:) -! -!PTERMS(OH,K299) = +K299*<RO2T>*<RO253> - PTERMS(:,15,300) = +TPK%K299(:)*PCONC(:,85)*TPK%RO253(:) -! -!PTERMS(HCHO,K299) = +K299*<RO2T>*<RO253> - PTERMS(:,28,300) = +TPK%K299(:)*PCONC(:,85)*TPK%RO253(:) -! -!PTERMS(RO2T,K299) = -K299*<RO2T>*<RO253> - PTERMS(:,85,300) = -TPK%K299(:)*PCONC(:,85)*TPK%RO253(:) -! -! -RETURN -END SUBROUTINE SUBT50 -! -SUBROUTINE SUBT51 -! -!Indices 1021 a 1040 -! -!PTERMS(NO,K300) = -K300*<NO>*<RO254> - PTERMS(:,1,301) = -TPK%K300(:)*PCONC(:,1)*TPK%RO254(:) -! -!PTERMS(NO2,K300) = +K300*<NO>*<RO254> - PTERMS(:,2,301) = +TPK%K300(:)*PCONC(:,1)*TPK%RO254(:) -! -!PTERMS(HO2,K300) = +K300*<NO>*<RO254> - PTERMS(:,10,301) = +TPK%K300(:)*PCONC(:,1)*TPK%RO254(:) -! -!PTERMS(CO,K300) = +K300*<NO>*<RO254> - PTERMS(:,11,301) = +TPK%K300(:)*PCONC(:,1)*TPK%RO254(:) -! -!PTERMS(O3,K301) = +K301*<HO2>*<RO254> - PTERMS(:,3,302) = +TPK%K301(:)*PCONC(:,10)*TPK%RO254(:) -! -!PTERMS(HO2,K301) = -K301*<HO2>*<RO254> - PTERMS(:,10,302) = -TPK%K301(:)*PCONC(:,10)*TPK%RO254(:) -! -!PTERMS(RP16,K301) = +K301*<HO2>*<RO254> - PTERMS(:,74,302) = +TPK%K301(:)*PCONC(:,10)*TPK%RO254(:) -! -!PTERMS(HO2,K302) = +K302*<RO2T>*<RO254> - PTERMS(:,10,303) = +TPK%K302(:)*PCONC(:,85)*TPK%RO254(:) -! -!PTERMS(CO,K302) = +K302*<RO2T>*<RO254> - PTERMS(:,11,303) = +TPK%K302(:)*PCONC(:,85)*TPK%RO254(:) -! -!PTERMS(RO2T,K302) = -K302*<RO2T>*<RO254> - PTERMS(:,85,303) = -TPK%K302(:)*PCONC(:,85)*TPK%RO254(:) -! -!PTERMS(O3,K303) = +K303*<OH>*<RPR5> - PTERMS(:,3,304) = +TPK%K303(:)*PCONC(:,15)*PCONC(:,70) -! -!PTERMS(OH,K303) = -K303*<OH>*<RPR5> - PTERMS(:,15,304) = -TPK%K303(:)*PCONC(:,15)*PCONC(:,70) -! -!PTERMS(URG7,K303) = +0.9999993*K303*<OH>*<RPR5> - PTERMS(:,60,304) = +0.9999993*TPK%K303(:)*PCONC(:,15)*PCONC(:,70) -! -!PTERMS(RPR5,K303) = -K303*<OH>*<RPR5> - PTERMS(:,70,304) = -TPK%K303(:)*PCONC(:,15)*PCONC(:,70) -! -!PTERMS(OH,K304) = -K304*<OH>*<RPR1> - PTERMS(:,15,305) = -TPK%K304(:)*PCONC(:,15)*PCONC(:,69) -! -!PTERMS(RPR1,K304) = -K304*<OH>*<RPR1> - PTERMS(:,69,305) = -TPK%K304(:)*PCONC(:,15)*PCONC(:,69) -! -!PTERMS(RO2T,K304) = +K304*<OH>*<RPR1> - PTERMS(:,85,305) = +TPK%K304(:)*PCONC(:,15)*PCONC(:,69) -! -!PTERMS(OH,K305) = -K305*<OH>*<RP16> - PTERMS(:,15,306) = -TPK%K305(:)*PCONC(:,15)*PCONC(:,74) -! -!PTERMS(RP16,K305) = -K305*<OH>*<RP16> - PTERMS(:,74,306) = -TPK%K305(:)*PCONC(:,15)*PCONC(:,74) -! -!PTERMS(RO2T,K305) = +K305*<OH>*<RP16> - PTERMS(:,85,306) = +TPK%K305(:)*PCONC(:,15)*PCONC(:,74) -! -! -RETURN -END SUBROUTINE SUBT51 -! -SUBROUTINE SUBT52 -! -!Indices 1041 a 1060 -! -!PTERMS(O3,K306) = +1.0000011*K306*<OH>*<RPRL> - PTERMS(:,3,307) = +1.0000011*TPK%K306(:)*PCONC(:,15)*PCONC(:,75) -! -!PTERMS(OH,K306) = -K306*<OH>*<RPRL> - PTERMS(:,15,307) = -TPK%K306(:)*PCONC(:,15)*PCONC(:,75) -! -!PTERMS(URG7,K306) = +0.9979297*K306*<OH>*<RPRL> - PTERMS(:,60,307) = +0.9979297*TPK%K306(:)*PCONC(:,15)*PCONC(:,75) -! -!PTERMS(RPR7,K306) = +2.0714202E-03*K306*<OH>*<RPRL> - PTERMS(:,62,307) = +2.0714202E-03*TPK%K306(:)*PCONC(:,15)*PCONC(:,75) -! -!PTERMS(RPRL,K306) = -K306*<OH>*<RPRL> - PTERMS(:,75,307) = -TPK%K306(:)*PCONC(:,15)*PCONC(:,75) -! -!PTERMS(HNO3,K307) = +K307*<NO3>*<RPR1> - PTERMS(:,5,308) = +TPK%K307(:)*PCONC(:,8)*PCONC(:,69) -! -!PTERMS(NO3,K307) = -K307*<NO3>*<RPR1> - PTERMS(:,8,308) = -TPK%K307(:)*PCONC(:,8)*PCONC(:,69) -! -!PTERMS(RPR1,K307) = -K307*<NO3>*<RPR1> - PTERMS(:,69,308) = -TPK%K307(:)*PCONC(:,8)*PCONC(:,69) -! -!PTERMS(RO2T,K307) = +K307*<NO3>*<RPR1> - PTERMS(:,85,308) = +TPK%K307(:)*PCONC(:,8)*PCONC(:,69) -! -!PTERMS(HO2,K308) = +K308*<RPR1> - PTERMS(:,10,309) = +TPK%K308(:)*PCONC(:,69) -! -!PTERMS(CO,K308) = +K308*<RPR1> - PTERMS(:,11,309) = +TPK%K308(:)*PCONC(:,69) -! -!PTERMS(RPR1,K308) = -K308*<RPR1> - PTERMS(:,69,309) = -TPK%K308(:)*PCONC(:,69) -! -!PTERMS(RO2T,K308) = +K308*<RPR1> - PTERMS(:,85,309) = +TPK%K308(:)*PCONC(:,69) -! -!PTERMS(NO,K309) = -K309*<NO>*<RO255> - PTERMS(:,1,310) = -TPK%K309(:)*PCONC(:,1)*TPK%RO255(:) -! -!PTERMS(NO2,K309) = +K309*<NO>*<RO255> - PTERMS(:,2,310) = +TPK%K309(:)*PCONC(:,1)*TPK%RO255(:) -! -!PTERMS(RO2T,K309) = +K309*<NO>*<RO255> - PTERMS(:,85,310) = +TPK%K309(:)*PCONC(:,1)*TPK%RO255(:) -! -!PTERMS(O3,K310) = +K310*<HO2>*<RO255> - PTERMS(:,3,311) = +TPK%K310(:)*PCONC(:,10)*TPK%RO255(:) -! -!PTERMS(HO2,K310) = -K310*<HO2>*<RO255> - PTERMS(:,10,311) = -TPK%K310(:)*PCONC(:,10)*TPK%RO255(:) -! -!PTERMS(ACID,K310) = +K310*<HO2>*<RO255> - PTERMS(:,45,311) = +TPK%K310(:)*PCONC(:,10)*TPK%RO255(:) -! -!PTERMS(RO2T,K311) = -K311*<RO2T>*<RO255> - PTERMS(:,85,312) = -TPK%K311(:)*PCONC(:,85)*TPK%RO255(:) -! -! -RETURN -END SUBROUTINE SUBT52 -! -SUBROUTINE SUBT53 -! -!Indices 1061 a 1080 -! -!PTERMS(OH,K312) = -K312*<OH>*<RPR3> - PTERMS(:,15,313) = -TPK%K312(:)*PCONC(:,15)*PCONC(:,57) -! -!PTERMS(RPR3,K312) = -K312*<OH>*<RPR3> - PTERMS(:,57,313) = -TPK%K312(:)*PCONC(:,15)*PCONC(:,57) -! -!PTERMS(RO2T,K312) = +K312*<OH>*<RPR3> - PTERMS(:,85,313) = +TPK%K312(:)*PCONC(:,15)*PCONC(:,57) -! -!PTERMS(HNO3,K313) = +K313*<NO3>*<RPR3> - PTERMS(:,5,314) = +TPK%K313(:)*PCONC(:,8)*PCONC(:,57) -! -!PTERMS(NO3,K313) = -K313*<NO3>*<RPR3> - PTERMS(:,8,314) = -TPK%K313(:)*PCONC(:,8)*PCONC(:,57) -! -!PTERMS(RPR3,K313) = -K313*<NO3>*<RPR3> - PTERMS(:,57,314) = -TPK%K313(:)*PCONC(:,8)*PCONC(:,57) -! -!PTERMS(RO2T,K313) = +K313*<NO3>*<RPR3> - PTERMS(:,85,314) = +TPK%K313(:)*PCONC(:,8)*PCONC(:,57) -! -!PTERMS(HO2,K314) = +2.*K314*<RPR3> - PTERMS(:,10,315) = +2.*TPK%K314(:)*PCONC(:,57) -! -!PTERMS(CO,K314) = +K314*<RPR3> - PTERMS(:,11,315) = +TPK%K314(:)*PCONC(:,57) -! -!PTERMS(RPR3,K314) = -K314*<RPR3> - PTERMS(:,57,315) = -TPK%K314(:)*PCONC(:,57) -! -!PTERMS(NO,K315) = -K315*<NO>*<RO256> - PTERMS(:,1,316) = -TPK%K315(:)*PCONC(:,1)*TPK%RO256(:) -! -!PTERMS(NO2,K315) = +K315*<NO>*<RO256> - PTERMS(:,2,316) = +TPK%K315(:)*PCONC(:,1)*TPK%RO256(:) -! -!PTERMS(HO2,K315) = +K315*<NO>*<RO256> - PTERMS(:,10,316) = +TPK%K315(:)*PCONC(:,1)*TPK%RO256(:) -! -!PTERMS(NO2,K316) = -K316*<NO2>*<RO256> - PTERMS(:,2,317) = -TPK%K316(:)*PCONC(:,2)*TPK%RO256(:) -! -!PTERMS(PAN8,K316) = +K316*<NO2>*<RO256> - PTERMS(:,83,317) = +TPK%K316(:)*PCONC(:,2)*TPK%RO256(:) -! -!PTERMS(NO2,K317) = +K317*<PAN8> - PTERMS(:,2,318) = +TPK%K317(:)*PCONC(:,83) -! -!PTERMS(PAN8,K317) = -K317*<PAN8> - PTERMS(:,83,318) = -TPK%K317(:)*PCONC(:,83) -! -!PTERMS(RO2T,K317) = +K317*<PAN8> - PTERMS(:,85,318) = +TPK%K317(:)*PCONC(:,83) -! -!PTERMS(O3,K318) = +K318*<HO2>*<RO256> - PTERMS(:,3,319) = +TPK%K318(:)*PCONC(:,10)*TPK%RO256(:) -! -!PTERMS(HO2,K318) = -K318*<HO2>*<RO256> - PTERMS(:,10,319) = -TPK%K318(:)*PCONC(:,10)*TPK%RO256(:) -! -! -RETURN -END SUBROUTINE SUBT53 -! -SUBROUTINE SUBT54 -! -!Indices 1081 a 1100 -! -!PTERMS(URG4,K318) = +1.0000000*K318*<HO2>*<RO256> - PTERMS(:,53,319) = +1.0000000*TPK%K318(:)*PCONC(:,10)*TPK%RO256(:) -! -!PTERMS(HO2,K319) = +K319*<RO2T>*<RO256> - PTERMS(:,10,320) = +TPK%K319(:)*PCONC(:,85)*TPK%RO256(:) -! -!PTERMS(RO2T,K319) = -K319*<RO2T>*<RO256> - PTERMS(:,85,320) = -TPK%K319(:)*PCONC(:,85)*TPK%RO256(:) -! -!PTERMS(HNO3,K320) = +K320*<NO3>*<RPR4> - PTERMS(:,5,321) = +TPK%K320(:)*PCONC(:,8)*PCONC(:,61) -! -!PTERMS(NO3,K320) = -K320*<NO3>*<RPR4> - PTERMS(:,8,321) = -TPK%K320(:)*PCONC(:,8)*PCONC(:,61) -! -!PTERMS(RPR4,K320) = -K320*<NO3>*<RPR4> - PTERMS(:,61,321) = -TPK%K320(:)*PCONC(:,8)*PCONC(:,61) -! -!PTERMS(NO2,K321) = -K321*<NO2>*<RAD8> - PTERMS(:,2,322) = -TPK%K321(:)*PCONC(:,2)*TPK%RAD8(:) -! -!PTERMS(UR22,K321) = +K321*<NO2>*<RAD8> - PTERMS(:,59,322) = +TPK%K321(:)*PCONC(:,2)*TPK%RAD8(:) -! -!PTERMS(O3,K322) = +K322*<OH>*<RPR7> - PTERMS(:,3,323) = +TPK%K322(:)*PCONC(:,15)*PCONC(:,62) -! -!PTERMS(OH,K322) = -K322*<OH>*<RPR7> - PTERMS(:,15,323) = -TPK%K322(:)*PCONC(:,15)*PCONC(:,62) -! -!PTERMS(URG7,K322) = +0.9999993*K322*<OH>*<RPR7> - PTERMS(:,60,323) = +0.9999993*TPK%K322(:)*PCONC(:,15)*PCONC(:,62) -! -!PTERMS(RPR7,K322) = -K322*<OH>*<RPR7> - PTERMS(:,62,323) = -TPK%K322(:)*PCONC(:,15)*PCONC(:,62) -! -!PTERMS(O3,K323) = +1.0000005*K323*<OH>*<RPG7> - PTERMS(:,3,324) = +1.0000005*TPK%K323(:)*PCONC(:,15)*PCONC(:,63) -! -!PTERMS(OH,K323) = -K323*<OH>*<RPG7> - PTERMS(:,15,324) = -TPK%K323(:)*PCONC(:,15)*PCONC(:,63) -! -!PTERMS(URG6,K323) = +0.4978440*K323*<OH>*<RPG7> - PTERMS(:,58,324) = +0.4978440*TPK%K323(:)*PCONC(:,15)*PCONC(:,63) -! -!PTERMS(RPG7,K323) = -K323*<OH>*<RPG7> - PTERMS(:,63,324) = -TPK%K323(:)*PCONC(:,15)*PCONC(:,63) -! -!PTERMS(OH,K324) = -K324*<OH>*<RPR8> - PTERMS(:,15,325) = -TPK%K324(:)*PCONC(:,15)*PCONC(:,71) -! -!PTERMS(RPR8,K324) = -K324*<OH>*<RPR8> - PTERMS(:,71,325) = -TPK%K324(:)*PCONC(:,15)*PCONC(:,71) -! -!PTERMS(RO2T,K324) = +K324*<OH>*<RPR8> - PTERMS(:,85,325) = +TPK%K324(:)*PCONC(:,15)*PCONC(:,71) -! -!PTERMS(HO2,K325) = +K325*<OH>*<RP10> - PTERMS(:,10,326) = +TPK%K325(:)*PCONC(:,15)*PCONC(:,72) -! -! -RETURN -END SUBROUTINE SUBT54 -! -SUBROUTINE SUBT55 -! -!Indices 1101 a 1120 -! -!PTERMS(OH,K325) = -K325*<OH>*<RP10> - PTERMS(:,15,326) = -TPK%K325(:)*PCONC(:,15)*PCONC(:,72) -! -!PTERMS(RP10,K325) = -K325*<OH>*<RP10> - PTERMS(:,72,326) = -TPK%K325(:)*PCONC(:,15)*PCONC(:,72) -! -!PTERMS(O3,K326) = +K326*<OH>*<RP11> - PTERMS(:,3,327) = +TPK%K326(:)*PCONC(:,15)*PCONC(:,73) -! -!PTERMS(OH,K326) = -K326*<OH>*<RP11> - PTERMS(:,15,327) = -TPK%K326(:)*PCONC(:,15)*PCONC(:,73) -! -!PTERMS(UR26,K326) = +0.67*K326*<OH>*<RP11> - PTERMS(:,49,327) = +0.67*TPK%K326(:)*PCONC(:,15)*PCONC(:,73) -! -!PTERMS(RP11,K326) = -K326*<OH>*<RP11> - PTERMS(:,73,327) = -TPK%K326(:)*PCONC(:,15)*PCONC(:,73) -! -!PTERMS(HNO3,K327) = +K327*<NO3>*<RPR8> - PTERMS(:,5,328) = +TPK%K327(:)*PCONC(:,8)*PCONC(:,71) -! -!PTERMS(NO3,K327) = -K327*<NO3>*<RPR8> - PTERMS(:,8,328) = -TPK%K327(:)*PCONC(:,8)*PCONC(:,71) -! -!PTERMS(RPR8,K327) = -K327*<NO3>*<RPR8> - PTERMS(:,71,328) = -TPK%K327(:)*PCONC(:,8)*PCONC(:,71) -! -!PTERMS(RO2T,K327) = +K327*<NO3>*<RPR8> - PTERMS(:,85,328) = +TPK%K327(:)*PCONC(:,8)*PCONC(:,71) -! -!PTERMS(RP10,K328) = -K328*<RP10> - PTERMS(:,72,329) = -TPK%K328(:)*PCONC(:,72) -! -!PTERMS(HO2,K329) = +K329*<RPR8> - PTERMS(:,10,330) = +TPK%K329(:)*PCONC(:,71) -! -!PTERMS(CO,K329) = +K329*<RPR8> - PTERMS(:,11,330) = +TPK%K329(:)*PCONC(:,71) -! -!PTERMS(RPR8,K329) = -K329*<RPR8> - PTERMS(:,71,330) = -TPK%K329(:)*PCONC(:,71) -! -!PTERMS(RO2T,K329) = +K329*<RPR8> - PTERMS(:,85,330) = +TPK%K329(:)*PCONC(:,71) -! -!PTERMS(HO2,K330) = +K330*<RPR8> - PTERMS(:,10,331) = +TPK%K330(:)*PCONC(:,71) -! -!PTERMS(RPR8,K330) = -K330*<RPR8> - PTERMS(:,71,331) = -TPK%K330(:)*PCONC(:,71) -! -!PTERMS(RO2T,K330) = +K330*<RPR8> - PTERMS(:,85,331) = +TPK%K330(:)*PCONC(:,71) -! -!PTERMS(NO,K331) = -K331*<NO>*<RO257> - PTERMS(:,1,332) = -TPK%K331(:)*PCONC(:,1)*TPK%RO257(:) -! -!PTERMS(NO2,K331) = +K331*<NO>*<RO257> - PTERMS(:,2,332) = +TPK%K331(:)*PCONC(:,1)*TPK%RO257(:) +!Indices 243 a 252 ! + TPK%KR2=(3.6E+9*exp(-930.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN + TPK%KR3=((2.8E+10*10.**(-TPK%PHR)+3.5E+10*exp(-720.*(1./TPK%T-1./298.15))*1.6e& +&-5)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN + TPK%KR4=(3.2E+7*exp(-1700.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN + TPK%KR5=((8.3E+5*exp(-2700.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHR))**2.+9.6E+7& +&*exp(-910.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*1.6e-5)/(1.6e-5+10.**(-TPK%PH& +&R))**2.)/TPK%MOL2MOLECRAIN + TPK%KR6=(1.5E+9*exp(-1500.*(1./TPK%T-1./298.15))*1.6e-5/(1.6e-5+10.**(-TPK%PHR& +&)))/TPK%MOL2MOLECRAIN + TPK%KR7=(2.7E+9*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.3e-2& +&*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2& +&*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%M& +&OL2MOLECRAIN + TPK%KR8=(1.0E+10*10.**(-TPK%PHR)/(1.6e-3*exp(-1760.*(1./TPK%T-1./298.15))+10.*& +&*(-TPK%PHR)))/TPK%MOL2MOLECRAIN + TPK%KR9=((1.8E+9*10.**(-TPK%PHR)+4.5E+9*1.6e-5)/(1.6e-5+10.**(-TPK%PHR)))/TPK%& +&MOL2MOLECRAIN + TPK%KR10=2.6E-2*10.**(-TPK%PHR)/(1.26e-6+10.**(-TPK%PHR)) ! RETURN -END SUBROUTINE SUBT55 -! -SUBROUTINE SUBT56 -! -!Indices 1121 a 1140 -! -!PTERMS(RO2T,K331) = +K331*<NO>*<RO257> - PTERMS(:,85,332) = +TPK%K331(:)*PCONC(:,1)*TPK%RO257(:) -! -!PTERMS(O3,K332) = +K332*<HO2>*<RO257> - PTERMS(:,3,333) = +TPK%K332(:)*PCONC(:,10)*TPK%RO257(:) -! -!PTERMS(HO2,K332) = -K332*<HO2>*<RO257> - PTERMS(:,10,333) = -TPK%K332(:)*PCONC(:,10)*TPK%RO257(:) -! -!PTERMS(URG4,K332) = +1.0000000*K332*<HO2>*<RO257> - PTERMS(:,53,333) = +1.0000000*TPK%K332(:)*PCONC(:,10)*TPK%RO257(:) -! -!PTERMS(RO2T,K333) = -K333*<RO2T>*<RO257> - PTERMS(:,85,334) = -TPK%K333(:)*PCONC(:,85)*TPK%RO257(:) -! -!PTERMS(O3,K334) = +1.0000000*K334*<OH>*<RPG3> - PTERMS(:,3,335) = +1.0000000*TPK%K334(:)*PCONC(:,15)*PCONC(:,52) -! -!PTERMS(OH,K334) = -K334*<OH>*<RPG3> - PTERMS(:,15,335) = -TPK%K334(:)*PCONC(:,15)*PCONC(:,52) -! -!PTERMS(RPG2,K334) = +0.8808107*K334*<OH>*<RPG3> - PTERMS(:,50,335) = +0.8808107*TPK%K334(:)*PCONC(:,15)*PCONC(:,52) -! -!PTERMS(RPG3,K334) = -K334*<OH>*<RPG3> - PTERMS(:,52,335) = -TPK%K334(:)*PCONC(:,15)*PCONC(:,52) -! -!PTERMS(O3,K335) = +1.0000000*K335*<OH>*<RPG2> - PTERMS(:,3,336) = +1.0000000*TPK%K335(:)*PCONC(:,15)*PCONC(:,50) -! -!PTERMS(OH,K335) = -K335*<OH>*<RPG2> - PTERMS(:,15,336) = -TPK%K335(:)*PCONC(:,15)*PCONC(:,50) -! -!PTERMS(URG2,K335) = +0.5562513*K335*<OH>*<RPG2> - PTERMS(:,48,336) = +0.5562513*TPK%K335(:)*PCONC(:,15)*PCONC(:,50) -! -!PTERMS(RPG2,K335) = -K335*<OH>*<RPG2> - PTERMS(:,50,336) = -TPK%K335(:)*PCONC(:,15)*PCONC(:,50) -! -!PTERMS(RP18,K335) = +0.4437492*K335*<OH>*<RPG2> - PTERMS(:,51,336) = +0.4437492*TPK%K335(:)*PCONC(:,15)*PCONC(:,50) -! -!PTERMS(O3,K337) = +K337*<OH>*<RP18> - PTERMS(:,3,337) = +TPK%K337(:)*PCONC(:,15)*PCONC(:,51) -! -!PTERMS(OH,K337) = -K337*<OH>*<RP18> - PTERMS(:,15,337) = -TPK%K337(:)*PCONC(:,15)*PCONC(:,51) -! -!PTERMS(URG2,K337) = +K337*<OH>*<RP18> - PTERMS(:,48,337) = +TPK%K337(:)*PCONC(:,15)*PCONC(:,51) -! -!PTERMS(RP18,K337) = -K337*<OH>*<RP18> - PTERMS(:,51,337) = -TPK%K337(:)*PCONC(:,15)*PCONC(:,51) +END SUBROUTINE SUBSRW11 ! -!PTERMS(HNO3,K338) = +K338*<NO3>*<RP16> - PTERMS(:,5,338) = +TPK%K338(:)*PCONC(:,8)*PCONC(:,74) +SUBROUTINE SUBSRW12 ! -!PTERMS(NO3,K338) = -K338*<NO3>*<RP16> - PTERMS(:,8,338) = -TPK%K338(:)*PCONC(:,8)*PCONC(:,74) +!Indices 253 a 262 ! + TPK%KR11=1.1E0*1.26e-6/(1.26e-6+10.**(-TPK%PHR)) + TPK%KR12=(3.3E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*(10.**(-TPK%PHR))**2./& +&((1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)& +&)+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.& +&)*(1.26e-6+10.**(-TPK%PHR))))/TPK%MOL2MOLECRAIN + TPK%KR14=1.0E+10 + TPK%KR15=(1.0E+5*1.0e+3*1.0e-2/(1.0e+3*1.0e-2+1.0e+3*10.**(-TPK%PHR)+(10.**(-T& +&PK%PHR))**2.))/TPK%MOL2MOLECRAIN + TPK%KR16=(1.3E+9*exp(-2200.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1& +&./298.15))*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(& +&1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%& +&PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN + TPK%KR17=(1.7E+8*exp(-2200.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN + TPK%KR18=(5.0E+5*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)/(1.3e-& +&2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-& +&2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%& +&MOL2MOLECRAIN + TPK%KR19=(7.8E+8*exp(-1000.*(1./TPK%T-1./298.15))*2.5e3*exp(4030.*(1./TPK%T-1.& +&/298.15))/(1.+2.5e3*exp(4030.*(1./TPK%T-1./298.15))))/TPK%MOL2MOLECRAIN + TPK%KR20=((1.0E+8*exp(-1000.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+3.4E+9*exp(& +&-1200.*(1./TPK%T-1./298.15))*1.8e-4*exp(150.*(1./TPK%T-1./298.15)))/(1.8e-4*ex& +&p(150.*(1./TPK%T-1./298.15))+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN ! RETURN -END SUBROUTINE SUBT56 -! -SUBROUTINE SUBT57 -! -!Indices 1141 a 1160 -! -!PTERMS(RP16,K338) = -K338*<NO3>*<RP16> - PTERMS(:,74,338) = -TPK%K338(:)*PCONC(:,8)*PCONC(:,74) -! -!PTERMS(RO2T,K338) = +K338*<NO3>*<RP16> - PTERMS(:,85,338) = +TPK%K338(:)*PCONC(:,8)*PCONC(:,74) -! -!PTERMS(HO2,K339) = +K339*<RP16> - PTERMS(:,10,339) = +TPK%K339(:)*PCONC(:,74) -! -!PTERMS(CO,K339) = +2.*K339*<RP16> - PTERMS(:,11,339) = +2.*TPK%K339(:)*PCONC(:,74) -! -!PTERMS(OH,K339) = +K339*<RP16> - PTERMS(:,15,339) = +TPK%K339(:)*PCONC(:,74) -! -!PTERMS(RP16,K339) = -K339*<RP16> - PTERMS(:,74,339) = -TPK%K339(:)*PCONC(:,74) -! -!PTERMS(NO,K340) = -K340*<NO>*<RO258> - PTERMS(:,1,340) = -TPK%K340(:)*PCONC(:,1)*TPK%RO258(:) -! -!PTERMS(NO2,K340) = +K340*<NO>*<RO258> - PTERMS(:,2,340) = +TPK%K340(:)*PCONC(:,1)*TPK%RO258(:) -! -!PTERMS(CO,K340) = +K340*<NO>*<RO258> - PTERMS(:,11,340) = +TPK%K340(:)*PCONC(:,1)*TPK%RO258(:) -! -!PTERMS(OH,K340) = +K340*<NO>*<RO258> - PTERMS(:,15,340) = +TPK%K340(:)*PCONC(:,1)*TPK%RO258(:) -! -!PTERMS(O3,K341) = +K341*<HO2>*<RO258> - PTERMS(:,3,341) = +TPK%K341(:)*PCONC(:,10)*TPK%RO258(:) -! -!PTERMS(HO2,K341) = -K341*<HO2>*<RO258> - PTERMS(:,10,341) = -TPK%K341(:)*PCONC(:,10)*TPK%RO258(:) -! -!PTERMS(UR28,K341) = +K341*<HO2>*<RO258> - PTERMS(:,46,341) = +TPK%K341(:)*PCONC(:,10)*TPK%RO258(:) -! -!PTERMS(CO,K342) = +K342*<RO2T>*<RO258> - PTERMS(:,11,342) = +TPK%K342(:)*PCONC(:,85)*TPK%RO258(:) -! -!PTERMS(OH,K342) = +K342*<RO2T>*<RO258> - PTERMS(:,15,342) = +TPK%K342(:)*PCONC(:,85)*TPK%RO258(:) -! -!PTERMS(RO2T,K342) = -K342*<RO2T>*<RO258> - PTERMS(:,85,342) = -TPK%K342(:)*PCONC(:,85)*TPK%RO258(:) -! -!PTERMS(NO2,K343) = +K343*<PAN7> - PTERMS(:,2,343) = +TPK%K343(:)*PCONC(:,82) -! -!PTERMS(PAN7,K343) = -K343*<PAN7> - PTERMS(:,82,343) = -TPK%K343(:)*PCONC(:,82) +END SUBROUTINE SUBSRW12 ! -!PTERMS(RO2T,K343) = +K343*<PAN7> - PTERMS(:,85,343) = +TPK%K343(:)*PCONC(:,82) +SUBROUTINE SUBSRW13 ! -!PTERMS(NO,K344) = -K344*<NO>*<RO230> - PTERMS(:,1,344) = -TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) +!Indices 263 a 272 ! + TPK%KR21=((7.9E+2*exp(-2900.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-& +&1./298.15))*10.**(-TPK%PHR)+2.5E+7*exp(-2450.*(1./TPK%T-1./298.15))*1.3e-2*exp& +&(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/((1.3e-2*& +&exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*& +&exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.)*(1.+2.5& +&e3*exp(4030.*(1./TPK%T-1./298.15)))))/TPK%MOL2MOLECRAIN + TPK%KR22=7.7E-3*exp(-9200.*(1./TPK%T-1./298.15))+3.7E+3*1.e-14*EXP(-6716*(1./T& +&PK%T-1./298.15))/10.**(-TPK%PHR) + TPK%KR23=3.0E+8/TPK%MOL2MOLECRAIN + TPK%KR24=1.1E+9 + TPK%KR25=(1.7E+9*10.**(-TPK%PHR)/(1.6e-5+10.**(-TPK%PHR)))/TPK%MOL2MOLECRAIN + TPK%KR26=(2.2E+8*exp(-2600.*(1./TPK%T-1./298.15)))/TPK%MOL2MOLECRAIN + TPK%KR27=(7.1E+6*1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)*10.**(& +&-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1& +&./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%& +&PHR))**2.))/TPK%MOL2MOLECRAIN + TPK%KR28=4.6E+2*exp(-1100.*(1./TPK%T-1./298.15)) + TPK%KR29=((3.7E+5*exp(-5500.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-& +&1./298.15))*10.**(-TPK%PHR)+1.5E+9*exp(-5300.*(1./TPK%T-1./298.15))*1.3e-2*exp& +&(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15)))/(1.3e-2*e& +&xp(1965.*(1./TPK%T-1./298.15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*e& +&xp(1965.*(1./TPK%T-1./298.15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL& +&2MOLECRAIN + TPK%KR30=(9.1E+7*exp(-3600.*(1./TPK%T-1./298.15))*1.3e-2*exp(1965.*(1./TPK%T-1& +&./298.15))*10.**(-TPK%PHR)*10.**(-TPK%PHR)/(1.3e-2*exp(1965.*(1./TPK%T-1./298.& +&15))*6.4e-8*exp(1430.*(1./TPK%T-1./298.15))+1.3e-2*exp(1965.*(1./TPK%T-1./298.& +&15))*10.**(-TPK%PHR)+(10.**(-TPK%PHR))**2.))/TPK%MOL2MOLECRAIN ! RETURN -END SUBROUTINE SUBT57 -! -SUBROUTINE SUBT58 -! -!Indices 1161 a 1180 -! -!PTERMS(NO2,K344) = +K344*<NO>*<RO230> - PTERMS(:,2,344) = +TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) -! -!PTERMS(RO2T,K344) = +K344*<NO>*<RO230> - PTERMS(:,85,344) = +TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) -! -!PTERMS(NH3,K345) = -K345*<OH>*<NH3> - PTERMS(:,9,345) = -TPK%K345(:)*PCONC(:,15)*PCONC(:,9) +END SUBROUTINE SUBSRW13 ! -!PTERMS(OH,K345) = -K345*<OH>*<NH3> - PTERMS(:,15,345) = -TPK%K345(:)*PCONC(:,15)*PCONC(:,9) +END SUBROUTINE CH_SET_RATES ! -!PTERMS(H2SO4,K346) = -K346*<H2SO4> - PTERMS(:,14,346) = -TPK%K346(:)*PCONC(:,14) ! -!PTERMS(HO2,K347) = +K347*<OH>*<ORA1> - PTERMS(:,10,347) = +TPK%K347(:)*PCONC(:,15)*PCONC(:,43) +!======================================================================== ! -!PTERMS(OH,K347) = -K347*<OH>*<ORA1> - PTERMS(:,15,347) = -TPK%K347(:)*PCONC(:,15)*PCONC(:,43) +!! ############################## + MODULE MODI_CH_SET_PHOTO_RATES +!! ############################## +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +INTERFACE +SUBROUTINE CH_SET_PHOTO_RATES(PTIME,PCONC,KL,TPM,KMI,KOUT,KVERB,KVECNPT,KVECMASK,KEQ,PJVALUES) +USE MODD_CH_M9_n, ONLY: METEOTRANSTYPE +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT,KL,KEQ,KMI +INTEGER, DIMENSION(:,:), INTENT(IN) :: KVECMASK +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +TYPE(METEOTRANSTYPE), DIMENSION(KVECNPT), INTENT(IN) :: TPM +INTEGER, INTENT(IN) :: KOUT,KVERB +REAL,DIMENSION(:,:,:,:), INTENT(IN) :: PJVALUES ! Tuv coefficient +END SUBROUTINE CH_SET_PHOTO_RATES +END INTERFACE +END MODULE MODI_CH_SET_PHOTO_RATES ! -!PTERMS(ORA1,K347) = -K347*<OH>*<ORA1> - PTERMS(:,43,347) = -TPK%K347(:)*PCONC(:,15)*PCONC(:,43) +!======================================================================== ! -!PTERMS(OH,K348) = -K348*<OH>*<ORA2> - PTERMS(:,15,348) = -TPK%K348(:)*PCONC(:,15)*PCONC(:,44) +!! ############################################################# + SUBROUTINE CH_SET_PHOTO_RATES(PTIME,PCONC,KL,TPM,KMI,KOUT,KVERB,KVECNPT,KVECMASK,KEQ,PJVALUES) +!! ############################################################# +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +!!*** *MODD_CH_SET_PHOTO_RATES* +!! +!! PURPOSE +!! ------- +! set or calculate photolysis rates +!! +!!** METHOD +!! ------ +!! simple +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Karsten Suhre (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) +!! Modified 29/03/01: Vectorization + nesting (C. Mari) +!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) +!! +!!---------------------------------------------------------------------- +!! +!! EXTERNAL +!! -------- +!! none +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +USE MODD_CH_M9_SCHEME +USE MODD_CH_M9_n, ONLY : METEOTRANSTYPE +USE MODI_CH_ALLOCATE_TACCS +! USER DEFINED FUNCTIONS +USE MODI_KT +USE MODI_TROE +USE MODI_HENRY +USE MODI_HEFFA +USE MODI_TROE_EQUIL +USE MODI_HEFFB +!! +!! EXPLICIT ARGUMENTS +!! ------------------ +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT,KL,KEQ,KMI +INTEGER, DIMENSION(:,:), INTENT(IN) :: KVECMASK +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +TYPE(METEOTRANSTYPE), DIMENSION(KVECNPT), INTENT(IN) :: TPM +INTEGER, INTENT(IN) :: KOUT,KVERB +REAL,DIMENSION(:,:,:,:), INTENT(IN) :: PJVALUES ! Tuv coefficient +!! +! /BEGIN_SET_PHOTO_RATES/ +! parameter for use by subroutine JVALUES, +! contains the actual photolysis rates +REAL, DIMENSION(KVECNPT,42) :: ZRATESIO ! TUV photolysis rates at one level +REAL, DIMENSION(KVECNPT,19) :: ZRATES ! photolysis rates of RACM (vector) +INTEGER :: JITPK ! loop counter for J-Value transfer +INTEGER :: IDTI,IDTJ +INTEGER :: JITPKPLUS +INTEGER, DIMENSION(KVECNPT) :: ITABI, ITABJ +INTEGER, DIMENSION(KVECNPT) :: IMODELLEVEL +TYPE(CCSTYPE), POINTER :: TPK ! -!PTERMS(ORA2,K348) = -K348*<OH>*<ORA2> - PTERMS(:,44,348) = -TPK%K348(:)*PCONC(:,15)*PCONC(:,44) +! Normally allocated in CH_SET_RATES but who knows ? +IF (.NOT. ASSOCIATED(TACCS(KMI)%NVERB)) THEN + CALL CH_ALLOCATE_TACCS(KMI, KVECNPT) +END IF ! -!PTERMS(OH,K349) = -K349*<OH>*<ACID> - PTERMS(:,15,349) = -TPK%K349(:)*PCONC(:,15)*PCONC(:,45) +! TPK is set for current model +TPK=>TACCS(KMI) ! -!PTERMS(ACID,K349) = -K349*<OH>*<ACID> - PTERMS(:,45,349) = -TPK%K349(:)*PCONC(:,15)*PCONC(:,45) +! calculation of photolysis rates and transfer into local variables ! -!PTERMS(URG2,K350) = -K350*<URG2> - PTERMS(:,48,350) = -TPK%K350(:)*PCONC(:,48) +IDTI=KVECMASK(2,KL)-KVECMASK(1,KL)+1 +IDTJ=KVECMASK(4,KL)-KVECMASK(3,KL)+1 +DO JITPK = 0, KVECNPT-1 ! -!PTERMS(URG4,K351) = -K351*<URG4> - PTERMS(:,53,351) = -TPK%K351(:)*PCONC(:,53) + JITPKPLUS=JITPK+1 + ITABI(JITPKPLUS)=JITPK-IDTI*(JITPK/IDTI)+KVECMASK(1,KL) + ITABJ(JITPKPLUS)=JITPK/IDTI-IDTJ*(JITPK/(IDTI*IDTJ))+KVECMASK(3,KL) ! -!PTERMS(URG6,K352) = -K352*<URG6> - PTERMS(:,58,352) = -TPK%K352(:)*PCONC(:,58) + ZRATESIO(JITPKPLUS,:) = PJVALUES(ITABI(JITPKPLUS),ITABJ(JITPKPLUS),TPK%MODELLEVEL(JITPKPLUS),:) ! -!PTERMS(URG7,K353) = -K353*<URG7> - PTERMS(:,60,353) = -TPK%K353(:)*PCONC(:,60) +ENDDO ! -!PTERMS(URG8,K354) = -K354*<URG8> - PTERMS(:,64,354) = -TPK%K354(:)*PCONC(:,64) ! -!PTERMS(URG9,K355) = -K355*<URG9> - PTERMS(:,66,355) = -TPK%K355(:)*PCONC(:,66) +DO JITPK = 0, KVECNPT-1 ! -!PTERMS(URG10,K356) = -K356*<URG10> - PTERMS(:,68,356) = -TPK%K356(:)*PCONC(:,68) +! associate TUV J-Values to ReLACS J-Values +! +! change according to original coefficients and modified RACM ! -!PTERMS(UR7,K357) = -K357*<UR7> - PTERMS(:,56,357) = -TPK%K357(:)*PCONC(:,56) + ZRATES(JITPK+1, 1) = ZRATESIO(JITPK+1,5) + ZRATES(JITPK+1, 2) = ZRATESIO(JITPK+1,2) + ZRATES(JITPK+1, 3) = ZRATESIO(JITPK+1,3) + ZRATES(JITPK+1, 4) = ZRATESIO(JITPK+1,8) + ZRATES(JITPK+1, 5) = ZRATESIO(JITPK+1,9) + ZRATES(JITPK+1, 6) = ZRATESIO(JITPK+1,10) + ZRATES(JITPK+1, 7) = ZRATESIO(JITPK+1,6) + ZRATES(JITPK+1, 8) = ZRATESIO(JITPK+1,7) + ZRATES(JITPK+1, 9) = ZRATESIO(JITPK+1,4) + ZRATES(JITPK+1, 10) = ZRATESIO(JITPK+1,12) + ZRATES(JITPK+1, 11) = ZRATESIO(JITPK+1,11) + ZRATES(JITPK+1, 12) = ZRATESIO(JITPK+1,13) + ZRATES(JITPK+1, 13) = ZRATESIO(JITPK+1,17) + ZRATES(JITPK+1, 14) = 0.962055 *ZRATESIO(JITPK+1,17)+& + & 3.79454E-02 *ZRATESIO(JITPK+1,38) + ZRATES(JITPK+1, 15) = ZRATESIO(JITPK+1,33) + ZRATES(JITPK+1, 16) = 0.20842 *ZRATESIO(JITPK+1,35)& + &+ 6.43207E-02 *ZRATESIO(JITPK+1,36)& + &+ 3.10372E-02 *ZRATESIO(JITPK+1,34)& + &+ 0.376 *ZRATESIO(JITPK+1,37)& + &+ 0.31937 *ZRATESIO(JITPK+1,26) + ZRATES(JITPK+1, 17) = 0.20*ZRATESIO(JITPK+1,20)& + &+ 0.80*ZRATESIO(JITPK+1,21) +! aqueous phase photolysis + ZRATES(JITPK+1, 18) = ZRATESIO(JITPK+1,41) + ZRATES(JITPK+1, 19) = ZRATESIO(JITPK+1,42) ! +END DO ! +! /END_SET_PHOTO_RATES/ + TPK%K001=ZRATES(:,001) + TPK%K002=ZRATES(:,002) + TPK%K003=ZRATES(:,003) + TPK%K004=ZRATES(:,004) + TPK%K005=ZRATES(:,005) + TPK%K006=ZRATES(:,006) + TPK%K007=ZRATES(:,007) + TPK%K008=ZRATES(:,008) + TPK%K009=ZRATES(:,009) + TPK%K010=ZRATES(:,010) + TPK%K011=ZRATES(:,011) + TPK%K012=ZRATES(:,012) + TPK%K013=ZRATES(:,013) + TPK%K014=ZRATES(:,014) + TPK%K015=ZRATES(:,015) + TPK%K016=ZRATES(:,016) + TPK%K017=ZRATES(:,017) +IF (TPK%LUSECHAQ) THEN + TPK%KC1=ZRATES(:,018) + TPK%KC13=ZRATES(:,019)*2.2e+1/(2.2e+1+10.**(-TPK%PHC)) + TPK%KR1=ZRATES(:,018) + TPK%KR13=ZRATES(:,019)*2.2e+1/(2.2e+1+10.**(-TPK%PHR)) +END IF +TPK%NOUT = KOUT +TPK%NVERB = KVERB RETURN -END SUBROUTINE SUBT58 -! -SUBROUTINE SUBT59 -! -!Indices 1181 a 1188 -! -!PTERMS(UR8,K358) = -K358*<UR8> - PTERMS(:,54,358) = -TPK%K358(:)*PCONC(:,54) +END SUBROUTINE CH_SET_PHOTO_RATES ! -!PTERMS(UR17,K359) = -K359*<UR17> - PTERMS(:,55,359) = -TPK%K359(:)*PCONC(:,55) ! -!PTERMS(UR19,K360) = -K360*<UR19> - PTERMS(:,65,360) = -TPK%K360(:)*PCONC(:,65) +!======================================================================== ! -!PTERMS(UR21,K361) = -K361*<UR21> - PTERMS(:,47,361) = -TPK%K361(:)*PCONC(:,47) +!! ######################## + MODULE MODI_CH_GET_RATES +!! ######################## +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +INTERFACE +SUBROUTINE CH_GET_RATES(PRATE,KMI,KVECNPT,KREAC) +IMPLICIT NONE +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KREAC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KREAC) :: PRATE +INTEGER, INTENT(IN) :: KMI +END SUBROUTINE CH_GET_RATES +END INTERFACE +END MODULE MODI_CH_GET_RATES ! -!PTERMS(UR22,K362) = -K362*<UR22> - PTERMS(:,59,362) = -TPK%K362(:)*PCONC(:,59) +!======================================================================== ! -!PTERMS(UR26,K363) = -K363*<UR26> - PTERMS(:,49,363) = -TPK%K363(:)*PCONC(:,49) +!! ############################################ + SUBROUTINE CH_GET_RATES(PRATE,KMI,KVECNPT,KREAC) +!! ############################################ +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +!! +!!*** *MODD_CH_GETRATES* +!! +!! PURPOSE +!! ------- +! retrieve reaction rates from TPK in an array +!! +!!** METHOD +!! ------ +!! simple +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Karsten Suhre (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) +!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) +!! +!!---------------------------------------------------------------------- +!! +!! EXTERNAL +!! -------- +!! none +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +USE MODD_CH_M9_SCHEME +!! +!! EXPLICIT ARGUMENTS +!! ------------------ +IMPLICIT NONE +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KREAC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KREAC) :: PRATE +INTEGER, INTENT(IN) :: KMI +!! +!! LOCAL VARIABLES +!! --------------- +TYPE(CCSTYPE), POINTER :: TPK +!!---------------------------------------------------------------------- +!! +!! EXECUTABLE STATEMENTS +!! --------------------- +TPK=>TACCS(KMI) +!! +PRATE(:,1) = TPK%K001(:) +PRATE(:,2) = TPK%K002(:) +PRATE(:,3) = TPK%K003(:) +PRATE(:,4) = TPK%K004(:) +PRATE(:,5) = TPK%K005(:) +PRATE(:,6) = TPK%K006(:) +PRATE(:,7) = TPK%K007(:) +PRATE(:,8) = TPK%K008(:) +PRATE(:,9) = TPK%K009(:) +PRATE(:,10) = TPK%K010(:) +PRATE(:,11) = TPK%K011(:) +PRATE(:,12) = TPK%K012(:) +PRATE(:,13) = TPK%K013(:) +PRATE(:,14) = TPK%K014(:) +PRATE(:,15) = TPK%K015(:) +PRATE(:,16) = TPK%K016(:) +PRATE(:,17) = TPK%K017(:) +PRATE(:,18) = TPK%K018(:) +PRATE(:,19) = TPK%K019(:) +PRATE(:,20) = TPK%K020(:) +PRATE(:,21) = TPK%K021(:) +PRATE(:,22) = TPK%K022(:) +PRATE(:,23) = TPK%K023(:) +PRATE(:,24) = TPK%K024(:) +PRATE(:,25) = TPK%K025(:) +PRATE(:,26) = TPK%K026(:) +PRATE(:,27) = TPK%K027(:) +PRATE(:,28) = TPK%K028(:) +PRATE(:,29) = TPK%K029(:) +PRATE(:,30) = TPK%K030(:) +PRATE(:,31) = TPK%K031(:) +PRATE(:,32) = TPK%K032(:) +PRATE(:,33) = TPK%K033(:) +PRATE(:,34) = TPK%K034(:) +PRATE(:,35) = TPK%K035(:) +PRATE(:,36) = TPK%K036(:) +PRATE(:,37) = TPK%K037(:) +PRATE(:,38) = TPK%K038(:) +PRATE(:,39) = TPK%K039(:) +PRATE(:,40) = TPK%K040(:) +PRATE(:,41) = TPK%K041(:) +PRATE(:,42) = TPK%K042(:) +PRATE(:,43) = TPK%K043(:) +PRATE(:,44) = TPK%K044(:) +PRATE(:,45) = TPK%K045(:) +PRATE(:,46) = TPK%K046(:) +PRATE(:,47) = TPK%K047(:) +PRATE(:,48) = TPK%K048(:) +PRATE(:,49) = TPK%K049(:) +PRATE(:,50) = TPK%K050(:) +PRATE(:,51) = TPK%K051(:) +PRATE(:,52) = TPK%K052(:) +PRATE(:,53) = TPK%K053(:) +PRATE(:,54) = TPK%K054(:) +PRATE(:,55) = TPK%K055(:) +PRATE(:,56) = TPK%K056(:) +PRATE(:,57) = TPK%K057(:) +PRATE(:,58) = TPK%K058(:) +PRATE(:,59) = TPK%K059(:) +PRATE(:,60) = TPK%K060(:) +PRATE(:,61) = TPK%K061(:) +PRATE(:,62) = TPK%K062(:) +PRATE(:,63) = TPK%K063(:) +PRATE(:,64) = TPK%K064(:) +PRATE(:,65) = TPK%K065(:) +PRATE(:,66) = TPK%K066(:) +PRATE(:,67) = TPK%K067(:) +PRATE(:,68) = TPK%K068(:) +PRATE(:,69) = TPK%K069(:) +PRATE(:,70) = TPK%K070(:) +PRATE(:,71) = TPK%K071(:) +PRATE(:,72) = TPK%K072(:) +PRATE(:,73) = TPK%K073(:) +PRATE(:,74) = TPK%K074(:) +PRATE(:,75) = TPK%K075(:) +PRATE(:,76) = TPK%K076(:) +PRATE(:,77) = TPK%K077(:) +PRATE(:,78) = TPK%K078(:) +PRATE(:,79) = TPK%K079(:) +PRATE(:,80) = TPK%K080(:) +PRATE(:,81) = TPK%K081(:) +PRATE(:,82) = TPK%K082(:) +PRATE(:,83) = TPK%K083(:) +PRATE(:,84) = TPK%K084(:) +PRATE(:,85) = TPK%K085(:) +PRATE(:,86) = TPK%K086(:) +PRATE(:,87) = TPK%K087(:) +PRATE(:,88) = TPK%K088(:) +PRATE(:,89) = TPK%K089(:) +PRATE(:,90) = TPK%K090(:) +PRATE(:,91) = TPK%K091(:) +PRATE(:,92) = TPK%K092(:) +PRATE(:,93) = TPK%K093(:) +PRATE(:,94) = TPK%K094(:) +PRATE(:,95) = TPK%K095(:) +PRATE(:,96) = TPK%K096(:) +PRATE(:,97) = TPK%K097(:) +PRATE(:,98) = TPK%K098(:) +PRATE(:,99) = TPK%K099(:) +PRATE(:,100) = TPK%K0100(:) +PRATE(:,101) = TPK%K0101(:) +PRATE(:,102) = TPK%K0102(:) +PRATE(:,103) = TPK%K103(:) +PRATE(:,104) = TPK%K104(:) +PRATE(:,105) = TPK%K105(:) +PRATE(:,106) = TPK%K106(:) +PRATE(:,107) = TPK%K107(:) +PRATE(:,108) = TPK%K108(:) +PRATE(:,109) = TPK%K109(:) +PRATE(:,110) = TPK%K110(:) +PRATE(:,111) = TPK%K111(:) +PRATE(:,112) = TPK%K112(:) +PRATE(:,113) = TPK%K113(:) +PRATE(:,114) = TPK%K114(:) +PRATE(:,115) = TPK%K115(:) +PRATE(:,116) = TPK%K116(:) +PRATE(:,117) = TPK%K117(:) +PRATE(:,118) = TPK%K118(:) +PRATE(:,119) = TPK%K119(:) +PRATE(:,120) = TPK%K120(:) +PRATE(:,121) = TPK%K121(:) +PRATE(:,122) = TPK%K122(:) +PRATE(:,123) = TPK%K123(:) +PRATE(:,124) = TPK%K124(:) +PRATE(:,125) = TPK%K125(:) +PRATE(:,126) = TPK%K126(:) +PRATE(:,127) = TPK%K127(:) +PRATE(:,128) = TPK%K128(:) +PRATE(:,129) = TPK%K129(:) +PRATE(:,130) = TPK%K130(:) +PRATE(:,131) = TPK%K131(:) +PRATE(:,132) = TPK%K132(:) +IF (TPK%LUSECHAQ) THEN + PRATE(:,133) = TPK%KTC1(:) + PRATE(:,134) = TPK%KTC2(:) + PRATE(:,135) = TPK%KTC3(:) + PRATE(:,136) = TPK%KTC4(:) + PRATE(:,137) = TPK%KTC5(:) + PRATE(:,138) = TPK%KTC6(:) + PRATE(:,139) = TPK%KTC7(:) + PRATE(:,140) = TPK%KTC8(:) + PRATE(:,141) = TPK%KTC9(:) + PRATE(:,142) = TPK%KTC10(:) + PRATE(:,143) = TPK%KTC11(:) + PRATE(:,144) = TPK%KTC12(:) + PRATE(:,145) = TPK%KTC13(:) + PRATE(:,146) = TPK%KTC14(:) + PRATE(:,147) = TPK%KTC15(:) + PRATE(:,148) = TPK%KTC16(:) + PRATE(:,149) = TPK%KTC17(:) + PRATE(:,150) = TPK%KTC18(:) + PRATE(:,151) = TPK%KTC19(:) + PRATE(:,152) = TPK%KTC20(:) + PRATE(:,153) = TPK%KTC21(:) + PRATE(:,154) = TPK%KTC22(:) + PRATE(:,155) = TPK%KTC23(:) + PRATE(:,156) = TPK%KTC24(:) + PRATE(:,157) = TPK%KTC25(:) + PRATE(:,158) = TPK%KTC26(:) + PRATE(:,159) = TPK%KTC27(:) + PRATE(:,160) = TPK%KTC28(:) + PRATE(:,161) = TPK%KTC29(:) + PRATE(:,162) = TPK%KTC30(:) + PRATE(:,163) = TPK%KTC31(:) + PRATE(:,164) = TPK%KTC32(:) + PRATE(:,165) = TPK%KTC33(:) + PRATE(:,166) = TPK%KTC34(:) + PRATE(:,167) = TPK%KTC35(:) + PRATE(:,168) = TPK%KTC36(:) + PRATE(:,169) = TPK%KTC37(:) + PRATE(:,170) = TPK%KTC38(:) + PRATE(:,171) = TPK%KTC39(:) + PRATE(:,172) = TPK%KTC40(:) + PRATE(:,173) = TPK%KTR1(:) + PRATE(:,174) = TPK%KTR2(:) + PRATE(:,175) = TPK%KTR3(:) + PRATE(:,176) = TPK%KTR4(:) + PRATE(:,177) = TPK%KTR5(:) + PRATE(:,178) = TPK%KTR6(:) + PRATE(:,179) = TPK%KTR7(:) + PRATE(:,180) = TPK%KTR8(:) + PRATE(:,181) = TPK%KTR9(:) + PRATE(:,182) = TPK%KTR10(:) + PRATE(:,183) = TPK%KTR11(:) + PRATE(:,184) = TPK%KTR12(:) + PRATE(:,185) = TPK%KTR13(:) + PRATE(:,186) = TPK%KTR14(:) + PRATE(:,187) = TPK%KTR15(:) + PRATE(:,188) = TPK%KTR16(:) + PRATE(:,189) = TPK%KTR17(:) + PRATE(:,190) = TPK%KTR18(:) + PRATE(:,191) = TPK%KTR19(:) + PRATE(:,192) = TPK%KTR20(:) + PRATE(:,193) = TPK%KTR21(:) + PRATE(:,194) = TPK%KTR22(:) + PRATE(:,195) = TPK%KTR23(:) + PRATE(:,196) = TPK%KTR24(:) + PRATE(:,197) = TPK%KTR25(:) + PRATE(:,198) = TPK%KTR26(:) + PRATE(:,199) = TPK%KTR27(:) + PRATE(:,200) = TPK%KTR28(:) + PRATE(:,201) = TPK%KTR29(:) + PRATE(:,202) = TPK%KTR30(:) + PRATE(:,203) = TPK%KTR31(:) + PRATE(:,204) = TPK%KTR32(:) + PRATE(:,205) = TPK%KTR33(:) + PRATE(:,206) = TPK%KTR34(:) + PRATE(:,207) = TPK%KTR35(:) + PRATE(:,208) = TPK%KTR36(:) + PRATE(:,209) = TPK%KTR37(:) + PRATE(:,210) = TPK%KTR38(:) + PRATE(:,211) = TPK%KTR39(:) + PRATE(:,212) = TPK%KTR40(:) + PRATE(:,213) = TPK%KC1(:) + PRATE(:,214) = TPK%KC2(:) + PRATE(:,215) = TPK%KC3(:) + PRATE(:,216) = TPK%KC4(:) + PRATE(:,217) = TPK%KC5(:) + PRATE(:,218) = TPK%KC6(:) + PRATE(:,219) = TPK%KC7(:) + PRATE(:,220) = TPK%KC8(:) + PRATE(:,221) = TPK%KC9(:) + PRATE(:,222) = TPK%KC10(:) + PRATE(:,223) = TPK%KC11(:) + PRATE(:,224) = TPK%KC12(:) + PRATE(:,225) = TPK%KC13(:) + PRATE(:,226) = TPK%KC14(:) + PRATE(:,227) = TPK%KC15(:) + PRATE(:,228) = TPK%KC16(:) + PRATE(:,229) = TPK%KC17(:) + PRATE(:,230) = TPK%KC18(:) + PRATE(:,231) = TPK%KC19(:) + PRATE(:,232) = TPK%KC20(:) + PRATE(:,233) = TPK%KC21(:) + PRATE(:,234) = TPK%KC22(:) + PRATE(:,235) = TPK%KC23(:) + PRATE(:,236) = TPK%KC24(:) + PRATE(:,237) = TPK%KC25(:) + PRATE(:,238) = TPK%KC26(:) + PRATE(:,239) = TPK%KC27(:) + PRATE(:,240) = TPK%KC28(:) + PRATE(:,241) = TPK%KC29(:) + PRATE(:,242) = TPK%KC30(:) + PRATE(:,243) = TPK%KR1(:) + PRATE(:,244) = TPK%KR2(:) + PRATE(:,245) = TPK%KR3(:) + PRATE(:,246) = TPK%KR4(:) + PRATE(:,247) = TPK%KR5(:) + PRATE(:,248) = TPK%KR6(:) + PRATE(:,249) = TPK%KR7(:) + PRATE(:,250) = TPK%KR8(:) + PRATE(:,251) = TPK%KR9(:) + PRATE(:,252) = TPK%KR10(:) + PRATE(:,253) = TPK%KR11(:) + PRATE(:,254) = TPK%KR12(:) + PRATE(:,255) = TPK%KR13(:) + PRATE(:,256) = TPK%KR14(:) + PRATE(:,257) = TPK%KR15(:) + PRATE(:,258) = TPK%KR16(:) + PRATE(:,259) = TPK%KR17(:) + PRATE(:,260) = TPK%KR18(:) + PRATE(:,261) = TPK%KR19(:) + PRATE(:,262) = TPK%KR20(:) + PRATE(:,263) = TPK%KR21(:) + PRATE(:,264) = TPK%KR22(:) + PRATE(:,265) = TPK%KR23(:) + PRATE(:,266) = TPK%KR24(:) + PRATE(:,267) = TPK%KR25(:) + PRATE(:,268) = TPK%KR26(:) + PRATE(:,269) = TPK%KR27(:) + PRATE(:,270) = TPK%KR28(:) + PRATE(:,271) = TPK%KR29(:) + PRATE(:,272) = TPK%KR30(:) +END IF +RETURN +END SUBROUTINE CH_GET_RATES ! -!PTERMS(UR28,K364) = -K364*<UR28> - PTERMS(:,46,364) = -TPK%K364(:)*PCONC(:,46) ! -!PTERMS(AP7,K365) = -K365*<AP7> - PTERMS(:,67,365) = -TPK%K365(:)*PCONC(:,67) +!======================================================================== ! +!! #################### + MODULE MODI_CH_TERMS +!! #################### +INTERFACE +SUBROUTINE CH_TERMS(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ, KREAC +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KREAC):: PTERMS +INTEGER, INTENT(IN) :: KMI +END SUBROUTINE CH_TERMS +END INTERFACE +END MODULE MODI_CH_TERMS ! -RETURN -END SUBROUTINE SUBT59 +!======================================================================== ! -END SUBROUTINE CH_TERMS_GAZ +!! ############################################################# + SUBROUTINE CH_TERMS(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) +!! ############################################################# +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +!! +!!*** *MODD_CH_TERMS* +!! +!! PURPOSE +!! ------- +! calculation of the contribution of each term in each reaction +!! +!!** METHOD +!! ------ +!! The contribution of reaction i to the evolution of species j +!! is returned in PTERMS. +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Karsten Suhre (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) +!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) +!! +!!---------------------------------------------------------------------- +!! +!! EXTERNAL +!! -------- +!! none +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +USE MODD_CH_M9_SCHEME +USE MODI_CH_TERMS_AQ +USE MODI_CH_TERMS_GAZ +!! +!! EXPLICIT ARGUMENTS +!! ------------------ +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ, KREAC +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KREAC):: PTERMS +INTEGER, INTENT(IN) :: KMI +!! +TYPE(CCSTYPE), POINTER :: TPK +TPK=>TACCS(KMI) +IF (TPK%LUSECHAQ) THEN + CALL CH_TERMS_AQ(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) +ELSE + CALL CH_TERMS_GAZ(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) +END IF +END SUBROUTINE CH_TERMS ! !======================================================================== ! @@ -90007,317 +29798,15 @@ INTEGER, INTENT(IN) :: KMI TYPE(CCSTYPE), POINTER :: TPK TPK=>TACCS(KMI) ! /BEGIN_CODE/ -TPK%OSD = ( +TPK%K016*PCONC(:,JP_O3) ) / & - ( +TPK%K017*TPK%H2O+TPK%K018A*TPK%N2(:)+TPK%K018B*TPK%O2(:) ) -! -TPK%O = ( +TPK%K001*PCONC(:,JP_NO2)+TPK%K014*PCONC(:,JP_NO3)+TPK%& -&K015*PCONC(:,JP_O3)+TPK%K018A*TPK%OSD*TPK%N2(:)+TPK%K018B*TPK%OSD*TPK%O2(:) ) / & -( +TPK%K002*TPK%O2(:)+TPK%K003*PCONC(:,JP_NO2)+TPK%K004*PCONC(:,JP_NO2)+TPK%K034*& -PCONC(:,JP_O3)+TPK%K038*PCONC(:,JP_NO)+TPK%K052*PCONC(:,JP_ETHE)+& -&TPK%K057*PCONC(:,JP_OLEL)+TPK%K067*PCONC(:,JP_ISOP)+TPK%K077*PCONC(:,& -&JP_OLEH)+TPK%K087*PCONC(:,JP_BIOL)+TPK%K091*PCONC(:,JP_BIOH)+TPK%K283& -&*PCONC(:,JP_MVK)+TPK%K284*PCONC(:,JP_MCR) ) -! -TPK%RO225 = ( TPK%K085*PCONC(:,JP_BIOL)*PCONC(:,JP_NO3) ) / & -( +TPK%K201*PCONC(:,JP_NO)+TPK%K202*PCONC(:,JP_RO2T)+TPK%K203*PCONC(:,JP_HO2)) -! -TPK%RO228 = ( TPK%K089*PCONC(:,JP_BIOH)*PCONC(:,JP_NO3) ) / & -( +TPK%K210*PCONC(:,JP_NO)+TPK%K211*PCONC(:,JP_RO2T)+TPK%K212*PCONC(:,JP_HO2)) - -! -TPK%RO253 = ( +0.41*TPK%K282*PCONC(:,JP_MCR)*PCONC(:,JP_O3) ) / & -( +TPK%K297*PCONC(:,JP_NO)+TPK%K298*PCONC(:,JP_HO2)+TPK%K299*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO254 = ( +TPK%K140*PCONC(:,JP_PAN6)+TPK%K297*TPK%RO253*& -&PCONC(:,JP_NO)+TPK%K298*TPK%RO253*PCONC(:,JP_HO2)+TPK%K299*& -&TPK%RO253*PCONC(:,JP_RO2T) ) / & -( +TPK%K131*PCONC(:,JP_NO2)+TPK%K300*PCONC(:,JP_NO)+TPK%K301*PCONC(& -&:,JP_HO2)+TPK%K302*PCONC(:,JP_RO2T) ) -! -TPK%RO213 = ( +0.271*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3) ) / & -( +TPK%K162*PCONC(:,JP_NO)+TPK%K163*PCONC(:,JP_RO2T)+TPK%K164*PCONC& -&(:,JP_HO2) ) -! -TPK%RO239 = ( +TPK%K137*PCONC(:,JP_PAN3)+TPK%K162*TPK%RO213*& -&PCONC(:,JP_NO)+TPK%K163*TPK%RO213*PCONC(:,JP_RO2T)+TPK%K164*TPK%RO213*PCONC(:,JP_HO2) ) / & -( +TPK%K128*PCONC(:,JP_NO2)+TPK%K165*PCONC(:,JP_NO)+TPK%K166*PCONC(& -&:,JP_HO2)+TPK%K167*PCONC(:,JP_RO2T) ) -! -TPK%RO248 = ( +TPK%K141*PCONC(:,JP_PAN4)+TPK%K274*PCONC(:,JP_MGLY)*P& -&CONC(:,JP_OH)+TPK%K278*PCONC(:,JP_MGLY)*PCONC(:,JP_NO3) ) / & -( +TPK%K129*PCONC(:,JP_NO2)+TPK%K277*PCONC(:,JP_NO)+TPK%K279*PCONC(& -&:,JP_HO2)+TPK%K280*PCONC(:,JP_RO2T) ) -! -TPK%RO249 = ( +TPK%K272*PCONC(:,JP_MVK)*PCONC(:,JP_OH) ) / & -( +TPK%K285*PCONC(:,JP_NO)+TPK%K286*PCONC(:,JP_RO2T)+TPK%K287*PCONC& -&(:,JP_HO2) ) -! -TPK%RO250 = ( +0.3750353*TPK%K139*PCONC(:,JP_APAN)+TPK%CF46*TPK%K2& -&73*PCONC(:,JP_MCR)*PCONC(:,JP_OH)+TPK%CF46*TPK%K275*PCONC(:,JP_MCR)*PCONC& -&(:,JP_NO3) ) / & -( +TPK%K130*PCONC(:,JP_NO2)+TPK%K288*PCONC(:,JP_NO)+TPK%K289*PCONC(& -&:,JP_HO2)+TPK%K290*PCONC(:,JP_RO2T) ) -! -TPK%RO214 = ( +0.095*TPK%K066*PCONC(:,JP_ISOP)*PCONC(:,JP_O3)+TPK%K1& -&65*TPK%RO239*PCONC(:,JP_NO)+TPK%K167*TPK%RO239*PCONC(:,JP_R& -&O2T)+TPK%K288*TPK%RO250*PCONC(:,JP_NO)+TPK%K290*TPK%RO250& -&*PCONC(:,JP_RO2T) ) / & -( +TPK%K168*PCONC(:,JP_NO)+TPK%K169*PCONC(:,JP_RO2T)+TPK%K170*PCONC& -&(:,JP_HO2) ) -! -TPK%RO251 = ( +TPK%CF47*TPK%K273*PCONC(:,JP_MCR)*PCONC(:,JP_OH) ) / & -( +TPK%K291*PCONC(:,JP_NO)+TPK%K292*PCONC(:,JP_HO2)+TPK%K293*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO252 = ( +TPK%CF47*TPK%K275*PCONC(:,JP_MCR)*PCONC(:,JP_NO3) ) /& -( +TPK%K294*PCONC(:,JP_NO)+TPK%K295*PCONC(:,JP_HO2)+TPK%K296*PCONC(& -&:,JP_RO2T) ) -! -TPK%RO258 = ( +TPK%K138*PCONC(:,JP_PN10)+TPK%K305*PCONC(:,JP_RP16)*P& -&CONC(:,JP_OH)+TPK%K338*PCONC(:,JP_RP16)*PCONC(:,JP_NO3) ) / & -( +TPK%K134*PCONC(:,JP_NO2)+TPK%K340*PCONC(:,JP_NO)+TPK%K341*PCONC(& -&:,JP_HO2)+TPK%K342*PCONC(:,JP_RO2T) ) -! -TPK%RO255 = ( +TPK%K304*PCONC(:,JP_RPR1)*PCONC(:,JP_OH)+TPK%K307*PCO& -&NC(:,JP_RPR1)*PCONC(:,JP_NO3)+TPK%K343*PCONC(:,JP_PAN7) ) / & -( +TPK%K132*PCONC(:,JP_NO2)+TPK%K309*PCONC(:,JP_NO)+TPK%K310*PCONC(& -&:,JP_HO2)+TPK%K311*PCONC(:,JP_RO2T) ) -! -TPK%RO256 = ( +TPK%K312*PCONC(:,JP_RPR3)*PCONC(:,JP_OH)+TPK%K313*PCO& -&NC(:,JP_RPR3)*PCONC(:,JP_NO3)+TPK%K317*PCONC(:,JP_PAN8) ) / & -( +TPK%K315*PCONC(:,JP_NO)+TPK%K316*PCONC(:,JP_NO2)+TPK%K318*PCONC(& -&:,JP_HO2)+TPK%K319*PCONC(:,JP_RO2T) ) -! -TPK%RO257 = ( +0.6249651*TPK%K139*PCONC(:,JP_APAN)+TPK%K324*PCONC(:,& -&JP_RPR8)*PCONC(:,JP_OH)+TPK%K327*PCONC(:,JP_RPR8)*PCONC(:,JP_NO3)+TPK%K3& -&30*PCONC(:,JP_RPR8) ) / & -( +TPK%K133*PCONC(:,JP_NO2)+TPK%K331*PCONC(:,JP_NO)+TPK%K332*PCONC(& -&:,JP_HO2)+TPK%K333*PCONC(:,JP_RO2T) ) -! -TPK%RO29 = ( +0.66*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH)+TPK%K329& -&*PCONC(:,JP_RPR8)+TPK%K331*TPK%RO257*PCONC(:,JP_NO)+TPK%K333*TPK%RO257*& -PCONC(:,JP_RO2T) ) / & -( +TPK%K150*PCONC(:,JP_NO)+TPK%K151*PCONC(:,JP_RO2T)+TPK%K152*PCONC& -&(:,JP_HO2) ) -! -!avoid division by zero in prodloss -WHERE (PCONC(:,JP_NO2)>0.) - TPK%RAD1 = ( +TPK%K072*PCONC(:,JP_AROO)*PCONC(:,JP_NO3) ) / & - ( +TPK%K103*PCONC(:,JP_NO2) ) -! - TPK%RAD8 = ( +TPK%K320*PCONC(:,JP_RPR4)*PCONC(:,JP_NO3) ) / & - ( +TPK%K321*PCONC(:,JP_NO2) ) -ELSEWHERE - TPK%RAD1 = 0. - TPK%RAD8 = 0. -ENDWHERE -! -TPK%RAD2 = ( +0.74*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & -( +TPK%K097+TPK%K104*PCONC(:,JP_NO2) ) -! -TPK%RAD3 = ( +0.74*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & -( +TPK%K098+TPK%K105*PCONC(:,JP_NO2) ) -! -TPK%RAD4 = ( +0.84*TPK%K080*PCONC(:,JP_AROH)*PCONC(:,JP_OH) ) / & -( +TPK%K099+TPK%K106*PCONC(:,JP_NO2) ) -! -TPK%RAD5 = ( +TPK%CF40*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) / & -( +TPK%K100+TPK%K107*PCONC(:,JP_NO2) ) -! -TPK%RAD6 = ( +0.74*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & -( +TPK%K101+TPK%K108*PCONC(:,JP_NO2) ) -! -TPK%RAD7 = ( +0.74*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & -( +TPK%K102+TPK%K109*PCONC(:,JP_NO2) ) -! -TPK%RO22 = ( +TPK%K049*PCONC(:,JP_ETHE)*PCONC(:,JP_OH)+TPK%CF2*TPK& -&%K053*PCONC(:,JP_ETOH)*PCONC(:,JP_OH)+TPK%K054*PCONC(:,JP_OLEL)*PCONC(:,JP_& -&OH)+TPK%K069*PCONC(:,JP_ALCH)*PCONC(:,JP_OH) ) / & -( +TPK%K113*PCONC(:,JP_NO)+TPK%K114*PCONC(:,JP_RO2T)+TPK%K115*PCONC& -&(:,JP_HO2) ) -! -TPK%RO23 = ( +TPK%K050*PCONC(:,JP_ETHE)*PCONC(:,JP_NO3)+TPK%K055*PCO& -&NC(:,JP_OLEL)*PCONC(:,JP_NO3) ) / & -( +TPK%K116*PCONC(:,JP_NO)+TPK%K117*PCONC(:,JP_RO2T)+TPK%K118*PCONC& -&(:,JP_HO2) ) -! -TPK%RO24 = ( +0.4*TPK%K052*PCONC(:,JP_ETHE)*TPK%O+0.1*TPK%K0& -&57*PCONC(:,JP_OLEL)*TPK%O+0.1*TPK%K077*PCONC(:,JP_OLEH)*& -&TPK%O+0.15*TPK%K283*PCONC(:,JP_MVK)*TPK%O ) / & -( +TPK%K119*PCONC(:,JP_NO)+TPK%K120*PCONC(:,JP_RO2T)+TPK%K121*PCONC& -&(:,JP_HO2) ) -! -TPK%RO26 = ( +TPK%K060*PCONC(:,JP_ALD2)*PCONC(:,JP_OH)+TPK%K061*PCON& -&C(:,JP_ALD2)*PCONC(:,JP_NO3)+TPK%K135*PCONC(:,JP_PAN1) ) / & -( +TPK%K125*PCONC(:,JP_NO)+TPK%K126*PCONC(:,JP_NO2)+TPK%K142*PCONC(& -&:,JP_HO2)+TPK%K143*PCONC(:,JP_RO2T) ) -! -TPK%RO27 = ( +TPK%K062*PCONC(:,JP_KETL)*PCONC(:,JP_OH)+TPK%CF8*TPK& -&%K168*TPK%RO214*PCONC(:,JP_NO)+TPK%K169*TPK%RO214*PCONC(:,J& -&P_RO2T)+TPK%K170*TPK%RO214*PCONC(:,JP_HO2)+0.15*TPK%K284*PCONC(:& -&,JP_MCR)*TPK%O ) / & -( +TPK%K144*PCONC(:,JP_NO)+TPK%K145*PCONC(:,JP_RO2T)+TPK%K146*PCONC& -&(:,JP_HO2) ) -! -TPK%RO210 = ( +0.34*TPK%K064*PCONC(:,JP_ISOP)*PCONC(:,JP_OH) ) / & -( +TPK%K153*PCONC(:,JP_NO)+TPK%K154*PCONC(:,JP_RO2T)+TPK%K155*PCONC& -&(:,JP_HO2) ) -! -TPK%RO211 = ( +0.66*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & -( +TPK%K156*PCONC(:,JP_NO)+TPK%K157*PCONC(:,JP_RO2T)+TPK%K158*PCONC& -&(:,JP_HO2) ) -! -TPK%RO212 = ( +0.34*TPK%K065*PCONC(:,JP_ISOP)*PCONC(:,JP_NO3) ) / & -( +TPK%K159*PCONC(:,JP_NO)+TPK%K160*PCONC(:,JP_RO2T)+TPK%K161*PCONC& -&(:,JP_HO2) ) -! -TPK%RO215 = ( +TPK%K068*PCONC(:,JP_MTBE)*PCONC(:,JP_OH) ) / & -( +TPK%K171*PCONC(:,JP_NO)+TPK%K172*PCONC(:,JP_RO2T)+TPK%K173*PCONC& -&(:,JP_HO2) ) -! -TPK%RO216 = ( +TPK%K070*PCONC(:,JP_KETH)*PCONC(:,JP_OH) ) / & -( +TPK%K174*PCONC(:,JP_NO)+TPK%K175*PCONC(:,JP_RO2T)+TPK%K176*PCONC& -&(:,JP_HO2) ) -! -TPK%RO217 = ( +0.1*TPK%K073*PCONC(:,JP_AROO)*PCONC(:,JP_OH) ) / & -( +TPK%K177*PCONC(:,JP_NO)+TPK%K178*PCONC(:,JP_RO2T)+TPK%K179*PCONC& -&(:,JP_HO2) ) -! -TPK%RO220 = ( +0.28*TPK%K076*PCONC(:,JP_OLEH)*PCONC(:,JP_O3)+0.1*TPK& -&%K077*PCONC(:,JP_OLEH)*TPK%O+TPK%K078*PCONC(:,JP_ALKM)*PCONC(:,JP_O& -&H)+TPK%K308*PCONC(:,JP_RPR1)+TPK%K309*TPK%RO255*PCONC(:,JP_NO)+T& -&PK%K311*TPK%RO255*PCONC(:,JP_RO2T) ) / & -( +TPK%K186*PCONC(:,JP_NO)+TPK%K187*PCONC(:,JP_RO2T)+TPK%K188*PCONC& -&(:,JP_HO2) ) -! -TPK%RO218 = ( +TPK%K074*PCONC(:,JP_OLEH)*PCONC(:,JP_OH)+TPK%CF18*TPK%K186*& -TPK%RO220*PCONC(:,JP_NO)+TPK%K187*TPK%RO220*PCONC(:& -&,JP_RO2T)+TPK%K188*TPK%RO220*PCONC(:,JP_HO2) ) / & -( +TPK%K180*PCONC(:,JP_NO)+TPK%K181*PCONC(:,JP_RO2T)+TPK%K182*PCONC& -&(:,JP_HO2) ) -! -TPK%RO219 = ( +TPK%K075*PCONC(:,JP_OLEH)*PCONC(:,JP_NO3) ) / & -( +TPK%K183*PCONC(:,JP_NO)+TPK%K184*PCONC(:,JP_RO2T)+TPK%K185*PCONC& -&(:,JP_HO2) ) -! -TPK%RO221 = ( +0.1*TPK%K079*PCONC(:,JP_AROL)*PCONC(:,JP_OH) ) / & -( +TPK%K189*PCONC(:,JP_NO)+TPK%K190*PCONC(:,JP_RO2T)+TPK%K191*PCONC& -&(:,JP_HO2) ) -! -TPK%RO222 = ( +TPK%CF45*TPK%K082*PCONC(:,JP_ARAL)*PCONC(:,JP_OH) ) /& -& & -( +TPK%K192*PCONC(:,JP_NO)+TPK%K193*PCONC(:,JP_RO2T)+TPK%K194*PCONC& -&(:,JP_HO2) ) -! -TPK%RO223 = ( +0.1*TPK%K083*PCONC(:,JP_ARAC)*PCONC(:,JP_OH) ) / & -( +TPK%K195*PCONC(:,JP_NO)+TPK%K196*PCONC(:,JP_RO2T)+TPK%K197*PCONC& -&(:,JP_HO2) ) -! -TPK%RO224 = ( +TPK%K084*PCONC(:,JP_BIOL)*PCONC(:,JP_OH) ) / & -( +TPK%K198*PCONC(:,JP_NO)+TPK%K199*PCONC(:,JP_RO2T)+TPK%K200*PCONC& -&(:,JP_HO2) ) -! -TPK%RO226 = ( +0.445*TPK%K086*PCONC(:,JP_BIOL)*PCONC(:,JP_O3) ) / & -( +TPK%K204*PCONC(:,JP_NO)+TPK%K205*PCONC(:,JP_RO2T)+TPK%K206*PCONC& -&(:,JP_HO2) ) -! -TPK%RO227 = ( +TPK%K088*PCONC(:,JP_BIOH)*PCONC(:,JP_OH) ) / & -( +TPK%K207*PCONC(:,JP_NO)+TPK%K208*PCONC(:,JP_RO2T)+TPK%K209*PCONC& -&(:,JP_HO2) ) -! -TPK%RO229 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & -( +TPK%K213*PCONC(:,JP_NO)+TPK%K214*PCONC(:,JP_RO2T)+TPK%K215*PCONC& -&(:,JP_HO2) ) -! -TPK%RO230 = ( +0.445*TPK%K090*PCONC(:,JP_BIOH)*PCONC(:,JP_O3) ) / & -( +TPK%K219*PCONC(:,JP_RO2T)+TPK%K220*PCONC(:,JP_HO2)+TPK%K344*PCON& -&C(:,JP_NO) ) -! -TPK%RO231 = ( +0.1*TPK%K092*PCONC(:,JP_PAH)*PCONC(:,JP_OH) ) / & -( +TPK%K221*PCONC(:,JP_NO)+TPK%K222*PCONC(:,JP_RO2T)+TPK%K223*PCONC& -&(:,JP_HO2) ) -! -TPK%RO232 = ( +TPK%K093*PCONC(:,JP_ALKH)*PCONC(:,JP_OH) ) / & -( +TPK%K224*PCONC(:,JP_NO)+TPK%K225*PCONC(:,JP_RO2T)+TPK%K226*PCONC& -&(:,JP_HO2) ) -! -TPK%RO233 = ( +TPK%K097*TPK%RAD2 ) / & -( +TPK%K230+TPK%K231*PCONC(:,JP_NO)+TPK%K232*PCONC(:,JP_RO2T)+TPK%K233*& -PCONC(:,JP_HO2) ) -! -TPK%RO234 = ( +TPK%K098*TPK%RAD3 ) / & -( +TPK%K237+TPK%K238*PCONC(:,JP_NO)+TPK%K239*PCONC(:,JP_RO2T)+TPK%K240*& -PCONC(:,JP_HO2) ) -! -TPK%RO235 = ( +TPK%K099*TPK%RAD4 ) / & -( +TPK%K244+TPK%K245*PCONC(:,JP_NO)+TPK%K246*PCONC(:,JP_RO2T)+TPK%K247*& -PCONC(:,JP_HO2) ) -! -TPK%RO236 = ( +TPK%K100*TPK%RAD5 ) / & -( +TPK%K251+TPK%K252*PCONC(:,JP_NO)+TPK%K253*PCONC(:,JP_RO2T)+TPK%K254*& -PCONC(:,JP_HO2) ) -! -TPK%RO237 = ( +TPK%K101*TPK%RAD6 ) / & -( +TPK%K258+TPK%K259*PCONC(:,JP_NO)+TPK%K260*PCONC(:,JP_RO2T)+TPK%K261*& -PCONC(:,JP_HO2) ) -! -TPK%RO238 = ( +TPK%K102*TPK%RAD7 ) / & -( +TPK%K265+TPK%K266*PCONC(:,JP_NO)+TPK%K267*PCONC(:,JP_RO2T)+TPK%K268*& -PCONC(:,JP_HO2) ) -! -TPK%RO240 = ( +TPK%CF30*TPK%K213*TPK%RO229*PCONC(:,JP_NO)+TPK%K214*& -TPK%RO229*PCONC(:,JP_RO2T)+TPK%K215*TPK%RO229*PCON& -&C(:,JP_HO2) ) / & -( +TPK%K216*PCONC(:,JP_NO)+TPK%K217*PCONC(:,JP_RO2T)+TPK%K218*PCONC& -&(:,JP_HO2) ) -! -TPK%RO241 = ( +TPK%CF34*TPK%K224*TPK%RO232*PCONC(:,JP_NO)+TPK%K225*& -TPK%RO232*PCONC(:,JP_RO2T)+TPK%K226*TPK%RO232*PCON& -&C(:,JP_HO2) ) / & -( +TPK%K227*PCONC(:,JP_NO)+TPK%K228*PCONC(:,JP_RO2T)+TPK%K229*PCONC& -&(:,JP_HO2) ) -! -TPK%RO242 = ( +TPK%K230*TPK%RO233 ) / & -( +TPK%K234*PCONC(:,JP_NO)+TPK%K235*PCONC(:,JP_RO2T)+TPK%K236*PCONC& -&(:,JP_HO2) ) -! -TPK%RO243 = ( +TPK%K237*TPK%RO234 ) / & -( +TPK%K241*PCONC(:,JP_NO)+TPK%K242*PCONC(:,JP_RO2T)+TPK%K243*PCONC& -&(:,JP_HO2) ) -! -TPK%RO244 = ( +TPK%K244*TPK%RO235 ) / & -( +TPK%K248*PCONC(:,JP_NO)+TPK%K249*PCONC(:,JP_RO2T)+TPK%K250*PCONC& -&(:,JP_HO2) ) -! -TPK%RO245 = ( +TPK%K251*TPK%RO236 ) / & -( +TPK%K255*PCONC(:,JP_NO)+TPK%K256*PCONC(:,JP_RO2T)+TPK%K257*PCONC& -&(:,JP_HO2) ) -! -TPK%RO246 = ( +TPK%K258*TPK%RO237 ) / & -( +TPK%K262*PCONC(:,JP_NO)+TPK%K263*PCONC(:,JP_RO2T)+TPK%K264*PCONC& -&(:,JP_HO2) ) -! -TPK%RO247 = ( +TPK%K265*TPK%RO238 ) / & -( +TPK%K269*PCONC(:,JP_NO)+TPK%K270*PCONC(:,JP_RO2T)+TPK%K271*PCONC& -&(:,JP_HO2) ) -! -TPK%RO28 = ( +TPK%K063*PCONC(:,JP_KETL)+TPK%K071*PCONC(:,JP_KETH)+TP& -&K%K136*PCONC(:,JP_PAN2)+TPK%K144*TPK%RO27*PCONC(:,JP_NO)+TPK%& -&K145*TPK%RO27*PCONC(:,JP_RO2T)+TPK%K146*TPK%RO27*PCONC(:,JP& -&_HO2)+TPK%K174*TPK%RO216*PCONC(:,JP_NO)+TPK%K175*TPK%RO21& -&6*PCONC(:,JP_RO2T)+TPK%K176*TPK%RO216*PCONC(:,JP_HO2)+TPK%K204*& -&TPK%RO226*PCONC(:,JP_NO)+TPK%K205*TPK%RO226*PCONC(:,JP_RO2T)& -&+TPK%K206*TPK%RO226*PCONC(:,JP_HO2)+TPK%K216*TPK%RO240*& -&PCONC(:,JP_NO)+TPK%K217*TPK%RO240*PCONC(:,JP_RO2T)+TPK%K218*& -&TPK%RO240*PCONC(:,JP_HO2)+TPK%K219*TPK%RO230*PCONC(:,JP_RO2T)+T& -&PK%K220*TPK%RO230*PCONC(:,JP_HO2)+TPK%K276*PCONC(:,JP_MGLY)+TPK%K277*& -TPK%RO248*PCONC(:,JP_NO)+TPK%K280*TPK%RO248*PCONC(:& -&,JP_RO2T)+0.28*TPK%K281*PCONC(:,JP_MVK)*PCONC(:,JP_O3)+0.15*TPK%K283*PCO& -&NC(:,JP_MVK)*TPK%O+TPK%K344*TPK%RO230*PCONC(:,JP_NO) ) / & -( +TPK%K127*PCONC(:,JP_NO2)+TPK%K147*PCONC(:,JP_NO)+TPK%K148*PCONC(& -&:,JP_HO2)+TPK%K149*PCONC(:,JP_RO2T) ) -! +TPK%O1D(:)=(TPK%K002(:)*PCONC(:,JP_O3))/(TPK%K020(:)*TPK%N2(:)+TPK%K021(:)*TPK%O2(:)+& + &TPK%K022(:)*TPK%H2O(:)) +TPK%O3P(:)=(TPK%K001(:)*PCONC(:,JP_NO2)+TPK%K003(:)*PCONC(:,JP_O3)+TPK%K008(:)*PCONC(:,JP_NO3)+& + &TPK%K020(:)*TPK%O1D(:)*TPK%N2(:)+TPK%K021(:)*TPK%O1D(:)*TPK%O2(:)+& + &0.00000*TPK%K079(:)*PCONC(:,JP_ALKE)*PCONC(:,JP_O3)+& + &0.09000*TPK%K080(:)*PCONC(:,JP_BIO)*PCONC(:,JP_O3))/& + &(TPK%K018(:)*TPK%O2(:)+TPK%K019(:)*PCONC(:,JP_O3)+TPK%K029(:)*PCONC(:,JP_NO)+& + &TPK%K030(:)*PCONC(:,JP_NO2)+TPK%K031(:)*PCONC(:,JP_NO2)+TPK%K054(:)*PCONC(:,JP_BIO)+& + &TPK%K055(:)*PCONC(:,JP_CARBO)) ! /END_CODE/ PTERMS(:,:,:) = 0.0 CALL SUBT0 @@ -90368,47 +29857,6 @@ CALL SUBT44 CALL SUBT45 CALL SUBT46 CALL SUBT47 -CALL SUBT48 -CALL SUBT49 -CALL SUBT50 -CALL SUBT51 -CALL SUBT52 -CALL SUBT53 -CALL SUBT54 -CALL SUBT55 -CALL SUBT56 -CALL SUBT57 -CALL SUBT58 -CALL SUBT59 -CALL SUBT60 -CALL SUBT61 -CALL SUBT62 -CALL SUBT63 -CALL SUBT64 -CALL SUBT65 -CALL SUBT66 -CALL SUBT67 -CALL SUBT68 -CALL SUBT69 -CALL SUBT70 -CALL SUBT71 -CALL SUBT72 -CALL SUBT73 -CALL SUBT74 -CALL SUBT75 -CALL SUBT76 -CALL SUBT77 -CALL SUBT78 -CALL SUBT79 -CALL SUBT80 -CALL SUBT81 -CALL SUBT82 -CALL SUBT83 -CALL SUBT84 -CALL SUBT85 -CALL SUBT86 -CALL SUBT87 -CALL SUBT88 ! CONTAINS @@ -90418,64 +29866,64 @@ SUBROUTINE SUBT0 !Indices 1 a 20 ! !PTERMS(NO,K001) = +K001*<NO2> - PTERMS(:,1,1) = +TPK%K001(:)*PCONC(:,2) + PTERMS(:,3,1) = +TPK%K001(:)*PCONC(:,4) ! !PTERMS(NO2,K001) = -K001*<NO2> - PTERMS(:,2,1) = -TPK%K001(:)*PCONC(:,2) + PTERMS(:,4,1) = -TPK%K001(:)*PCONC(:,4) ! -!PTERMS(O3,K002) = +K002*<O2>*<O> - PTERMS(:,3,2) = +TPK%K002(:)*TPK%O2(:)*TPK%O(:) +!PTERMS(O3,K002) = -K002*<O3> + PTERMS(:,1,2) = -TPK%K002(:)*PCONC(:,1) ! -!PTERMS(NO,K003) = +K003*<NO2>*<O> - PTERMS(:,1,3) = +TPK%K003(:)*PCONC(:,2)*TPK%O(:) +!PTERMS(O3,K003) = -K003*<O3> + PTERMS(:,1,3) = -TPK%K003(:)*PCONC(:,1) ! -!PTERMS(NO2,K003) = -K003*<NO2>*<O> - PTERMS(:,2,3) = -TPK%K003(:)*PCONC(:,2)*TPK%O(:) +!PTERMS(NO,K004) = +K004*<HONO> + PTERMS(:,3,4) = +TPK%K004(:)*PCONC(:,7) ! -!PTERMS(NO2,K004) = -K004*<NO2>*<O> - PTERMS(:,2,4) = -TPK%K004(:)*PCONC(:,2)*TPK%O(:) +!PTERMS(HONO,K004) = -K004*<HONO> + PTERMS(:,7,4) = -TPK%K004(:)*PCONC(:,7) ! -!PTERMS(NO3,K004) = +K004*<NO2>*<O> - PTERMS(:,8,4) = +TPK%K004(:)*PCONC(:,2)*TPK%O(:) +!PTERMS(OH,K004) = +K004*<HONO> + PTERMS(:,14,4) = +TPK%K004(:)*PCONC(:,7) ! -!PTERMS(NO,K005) = -K005*<O3>*<NO> - PTERMS(:,1,5) = -TPK%K005(:)*PCONC(:,3)*PCONC(:,1) +!PTERMS(NO2,K005) = +K005*<HNO3> + PTERMS(:,4,5) = +TPK%K005(:)*PCONC(:,8) ! -!PTERMS(NO2,K005) = +K005*<O3>*<NO> - PTERMS(:,2,5) = +TPK%K005(:)*PCONC(:,3)*PCONC(:,1) +!PTERMS(HNO3,K005) = -K005*<HNO3> + PTERMS(:,8,5) = -TPK%K005(:)*PCONC(:,8) ! -!PTERMS(O3,K005) = -K005*<O3>*<NO> - PTERMS(:,3,5) = -TPK%K005(:)*PCONC(:,3)*PCONC(:,1) +!PTERMS(OH,K005) = +K005*<HNO3> + PTERMS(:,14,5) = +TPK%K005(:)*PCONC(:,8) ! -!PTERMS(NO2,K006) = -K006*<O3>*<NO2> - PTERMS(:,2,6) = -TPK%K006(:)*PCONC(:,3)*PCONC(:,2) +!PTERMS(NO2,K006) = +0.65*K006*<HNO4> + PTERMS(:,4,6) = +0.65*TPK%K006(:)*PCONC(:,9) ! -!PTERMS(O3,K006) = -K006*<O3>*<NO2> - PTERMS(:,3,6) = -TPK%K006(:)*PCONC(:,3)*PCONC(:,2) +!PTERMS(NO3,K006) = +0.35*K006*<HNO4> + PTERMS(:,5,6) = +0.35*TPK%K006(:)*PCONC(:,9) ! -!PTERMS(NO3,K006) = +K006*<O3>*<NO2> - PTERMS(:,8,6) = +TPK%K006(:)*PCONC(:,3)*PCONC(:,2) +!PTERMS(HNO4,K006) = -K006*<HNO4> + PTERMS(:,9,6) = -TPK%K006(:)*PCONC(:,9) ! -!PTERMS(NO,K007) = -K007*<NO3>*<NO> - PTERMS(:,1,7) = -TPK%K007(:)*PCONC(:,8)*PCONC(:,1) +!PTERMS(OH,K006) = +0.35*K006*<HNO4> + PTERMS(:,14,6) = +0.35*TPK%K006(:)*PCONC(:,9) ! -!PTERMS(NO2,K007) = +2.*K007*<NO3>*<NO> - PTERMS(:,2,7) = +2.*TPK%K007(:)*PCONC(:,8)*PCONC(:,1) +!PTERMS(HO2,K006) = +0.65*K006*<HNO4> + PTERMS(:,15,6) = +0.65*TPK%K006(:)*PCONC(:,9) ! -!PTERMS(NO3,K007) = -K007*<NO3>*<NO> - PTERMS(:,8,7) = -TPK%K007(:)*PCONC(:,8)*PCONC(:,1) +!PTERMS(NO,K007) = +K007*<NO3> + PTERMS(:,3,7) = +TPK%K007(:)*PCONC(:,5) ! -!PTERMS(NO,K008) = -K008*<NO>*<NO> - PTERMS(:,1,8) = -TPK%K008(:)*PCONC(:,1)*PCONC(:,1) +!PTERMS(NO3,K007) = -K007*<NO3> + PTERMS(:,5,7) = -TPK%K007(:)*PCONC(:,5) ! -!PTERMS(NO2,K008) = +2.*K008*<NO>*<NO> - PTERMS(:,2,8) = +2.*TPK%K008(:)*PCONC(:,1)*PCONC(:,1) +!PTERMS(NO2,K008) = +K008*<NO3> + PTERMS(:,4,8) = +TPK%K008(:)*PCONC(:,5) ! -!PTERMS(NO2,K009) = -K009*<NO3>*<NO2> - PTERMS(:,2,9) = -TPK%K009(:)*PCONC(:,8)*PCONC(:,2) +!PTERMS(NO3,K008) = -K008*<NO3> + PTERMS(:,5,8) = -TPK%K008(:)*PCONC(:,5) ! -!PTERMS(N2O5,K009) = +K009*<NO3>*<NO2> - PTERMS(:,7,9) = +TPK%K009(:)*PCONC(:,8)*PCONC(:,2) +!PTERMS(H2O2,K009) = -K009*<H2O2> + PTERMS(:,2,9) = -TPK%K009(:)*PCONC(:,2) ! ! RETURN @@ -90485,65 +29933,65 @@ SUBROUTINE SUBT1 ! !Indices 21 a 40 ! -!PTERMS(NO3,K009) = -K009*<NO3>*<NO2> - PTERMS(:,8,9) = -TPK%K009(:)*PCONC(:,8)*PCONC(:,2) +!PTERMS(OH,K009) = +K009*<H2O2> + PTERMS(:,14,9) = +TPK%K009(:)*PCONC(:,2) ! -!PTERMS(NO2,K010) = +K010*<N2O5> - PTERMS(:,2,10) = +TPK%K010(:)*PCONC(:,7) +!PTERMS(CO,K010) = +K010*<HCHO> + PTERMS(:,13,10) = +TPK%K010(:)*PCONC(:,22) ! -!PTERMS(N2O5,K010) = -K010*<N2O5> - PTERMS(:,7,10) = -TPK%K010(:)*PCONC(:,7) +!PTERMS(HCHO,K010) = -K010*<HCHO> + PTERMS(:,22,10) = -TPK%K010(:)*PCONC(:,22) ! -!PTERMS(NO3,K010) = +K010*<N2O5> - PTERMS(:,8,10) = +TPK%K010(:)*PCONC(:,7) +!PTERMS(CO,K011) = +K011*<HCHO> + PTERMS(:,13,11) = +TPK%K011(:)*PCONC(:,22) ! -!PTERMS(HNO3,K011) = +2.*K011*<H2O>*<N2O5> - PTERMS(:,5,11) = +2.*TPK%K011(:)*TPK%H2O(:)*PCONC(:,7) +!PTERMS(HO2,K011) = +K011*<HCHO> + PTERMS(:,15,11) = +TPK%K011(:)*PCONC(:,22) ! -!PTERMS(N2O5,K011) = -K011*<H2O>*<N2O5> - PTERMS(:,7,11) = -TPK%K011(:)*TPK%H2O(:)*PCONC(:,7) +!PTERMS(HCHO,K011) = -K011*<HCHO> + PTERMS(:,22,11) = -TPK%K011(:)*PCONC(:,22) ! -!PTERMS(NO,K012) = +K012*<NO3>*<NO2> - PTERMS(:,1,12) = +TPK%K012(:)*PCONC(:,8)*PCONC(:,2) +!PTERMS(CO,K012) = +K012*<ALD> + PTERMS(:,13,12) = +TPK%K012(:)*PCONC(:,23) ! -!PTERMS(NO2,K012) = -K012*<NO3>*<NO2> - PTERMS(:,2,12) = -TPK%K012(:)*PCONC(:,8)*PCONC(:,2) +!PTERMS(HO2,K012) = +K012*<ALD> + PTERMS(:,15,12) = +TPK%K012(:)*PCONC(:,23) ! -!PTERMS(NO3,K012) = -K012*<NO3>*<NO2> - PTERMS(:,8,12) = -TPK%K012(:)*PCONC(:,8)*PCONC(:,2) +!PTERMS(ALD,K012) = -K012*<ALD> + PTERMS(:,23,12) = -TPK%K012(:)*PCONC(:,23) ! -!PTERMS(NO,K013) = +K013*<NO3> - PTERMS(:,1,13) = +TPK%K013(:)*PCONC(:,8) +!PTERMS(MO2,K012) = +K012*<ALD> + PTERMS(:,32,12) = +TPK%K012(:)*PCONC(:,23) ! -!PTERMS(NO3,K013) = -K013*<NO3> - PTERMS(:,8,13) = -TPK%K013(:)*PCONC(:,8) +!PTERMS(OH,K013) = +K013*<OP1> + PTERMS(:,14,13) = +TPK%K013(:)*PCONC(:,28) ! -!PTERMS(NO2,K014) = +K014*<NO3> - PTERMS(:,2,14) = +TPK%K014(:)*PCONC(:,8) +!PTERMS(HO2,K013) = +K013*<OP1> + PTERMS(:,15,13) = +TPK%K013(:)*PCONC(:,28) ! -!PTERMS(NO3,K014) = -K014*<NO3> - PTERMS(:,8,14) = -TPK%K014(:)*PCONC(:,8) +!PTERMS(HCHO,K013) = +K013*<OP1> + PTERMS(:,22,13) = +TPK%K013(:)*PCONC(:,28) ! -!PTERMS(O3,K015) = -K015*<O3> - PTERMS(:,3,15) = -TPK%K015(:)*PCONC(:,3) +!PTERMS(OP1,K013) = -K013*<OP1> + PTERMS(:,28,13) = -TPK%K013(:)*PCONC(:,28) ! -!PTERMS(O3,K016) = -K016*<O3> - PTERMS(:,3,16) = -TPK%K016(:)*PCONC(:,3) +!PTERMS(OH,K014) = +K014*<OP2> + PTERMS(:,14,14) = +TPK%K014(:)*PCONC(:,29) ! -!PTERMS(OH,K017) = +K017*<H2O>*<OSD> - PTERMS(:,15,17) = +TPK%K017(:)*TPK%H2O(:)*TPK%OSD(:) +!PTERMS(HO2,K014) = +0.96205*K014*<OP2> + PTERMS(:,15,14) = +0.96205*TPK%K014(:)*PCONC(:,29) ! -!PTERMS(NO,K019) = -K019*<OH>*<NO> - PTERMS(:,1,20) = -TPK%K019(:)*PCONC(:,15)*PCONC(:,1) +!PTERMS(ALD,K014) = +0.96205*K014*<OP2> + PTERMS(:,23,14) = +0.96205*TPK%K014(:)*PCONC(:,29) ! -!PTERMS(HONO,K019) = +K019*<OH>*<NO> - PTERMS(:,4,20) = +TPK%K019(:)*PCONC(:,15)*PCONC(:,1) +!PTERMS(OP2,K014) = -K014*<OP2> + PTERMS(:,29,14) = -TPK%K014(:)*PCONC(:,29) ! -!PTERMS(OH,K019) = -K019*<OH>*<NO> - PTERMS(:,15,20) = -TPK%K019(:)*PCONC(:,15)*PCONC(:,1) +!PTERMS(MO2,K014) = +0.03795*K014*<OP2> + PTERMS(:,32,14) = +0.03795*TPK%K014(:)*PCONC(:,29) ! -!PTERMS(NO,K020) = +0.9*K020*<HONO> - PTERMS(:,1,21) = +0.9*TPK%K020(:)*PCONC(:,4) +!PTERMS(KET,K015) = -K015*<KET> + PTERMS(:,24,15) = -TPK%K015(:)*PCONC(:,24) ! ! RETURN @@ -90553,65 +30001,65 @@ SUBROUTINE SUBT2 ! !Indices 41 a 60 ! -!PTERMS(NO2,K020) = +0.1*K020*<HONO> - PTERMS(:,2,21) = +0.1*TPK%K020(:)*PCONC(:,4) +!PTERMS(ALKAP,K015) = +1.00000*K015*<KET> + PTERMS(:,33,15) = +1.00000*TPK%K015(:)*PCONC(:,24) ! -!PTERMS(HONO,K020) = -K020*<HONO> - PTERMS(:,4,21) = -TPK%K020(:)*PCONC(:,4) +!PTERMS(CARBOP,K015) = +1.00000*K015*<KET> + PTERMS(:,39,15) = +1.00000*TPK%K015(:)*PCONC(:,24) ! -!PTERMS(HO2,K020) = +0.1*K020*<HONO> - PTERMS(:,10,21) = +0.1*TPK%K020(:)*PCONC(:,4) +!PTERMS(CO,K016) = +0.91924*K016*<CARBO> + PTERMS(:,13,16) = +0.91924*TPK%K016(:)*PCONC(:,25) ! -!PTERMS(OH,K020) = +0.9*K020*<HONO> - PTERMS(:,15,21) = +0.9*TPK%K020(:)*PCONC(:,4) +!PTERMS(HO2,K016) = +0.75830*K016*<CARBO> + PTERMS(:,15,16) = +0.75830*TPK%K016(:)*PCONC(:,25) ! -!PTERMS(NO2,K021) = -K021*<H2O>*<NO2> - PTERMS(:,2,22) = -TPK%K021(:)*TPK%H2O(:)*PCONC(:,2) +!PTERMS(HCHO,K016) = +0.06517*K016*<CARBO> + PTERMS(:,22,16) = +0.06517*TPK%K016(:)*PCONC(:,25) ! -!PTERMS(HONO,K021) = +0.5*K021*<H2O>*<NO2> - PTERMS(:,4,22) = +0.5*TPK%K021(:)*TPK%H2O(:)*PCONC(:,2) +!PTERMS(CARBO,K016) = -K016*<CARBO> + PTERMS(:,25,16) = -TPK%K016(:)*PCONC(:,25) ! -!PTERMS(HNO3,K021) = +0.5*K021*<H2O>*<NO2> - PTERMS(:,5,22) = +0.5*TPK%K021(:)*TPK%H2O(:)*PCONC(:,2) +!PTERMS(CARBOP,K016) = +0.69622*K016*<CARBO> + PTERMS(:,39,16) = +0.69622*TPK%K016(:)*PCONC(:,25) ! -!PTERMS(NO2,K022) = -K022*<OH>*<NO2> - PTERMS(:,2,23) = -TPK%K022(:)*PCONC(:,15)*PCONC(:,2) +!PTERMS(NO2,K017) = +K017*<ONIT> + PTERMS(:,4,17) = +TPK%K017(:)*PCONC(:,26) ! -!PTERMS(HNO3,K022) = +K022*<OH>*<NO2> - PTERMS(:,5,23) = +TPK%K022(:)*PCONC(:,15)*PCONC(:,2) +!PTERMS(HO2,K017) = +K017*<ONIT> + PTERMS(:,15,17) = +TPK%K017(:)*PCONC(:,26) ! -!PTERMS(OH,K022) = -K022*<OH>*<NO2> - PTERMS(:,15,23) = -TPK%K022(:)*PCONC(:,15)*PCONC(:,2) +!PTERMS(ALD,K017) = +0.20*K017*<ONIT> + PTERMS(:,23,17) = +0.20*TPK%K017(:)*PCONC(:,26) ! -!PTERMS(HNO3,K023) = -K023*<OH>*<HNO3> - PTERMS(:,5,24) = -TPK%K023(:)*PCONC(:,15)*PCONC(:,5) +!PTERMS(KET,K017) = +0.80*K017*<ONIT> + PTERMS(:,24,17) = +0.80*TPK%K017(:)*PCONC(:,26) ! -!PTERMS(NO3,K023) = +K023*<OH>*<HNO3> - PTERMS(:,8,24) = +TPK%K023(:)*PCONC(:,15)*PCONC(:,5) +!PTERMS(ONIT,K017) = -K017*<ONIT> + PTERMS(:,26,17) = -TPK%K017(:)*PCONC(:,26) ! -!PTERMS(OH,K023) = -K023*<OH>*<HNO3> - PTERMS(:,15,24) = -TPK%K023(:)*PCONC(:,15)*PCONC(:,5) +!PTERMS(O3,K018) = +K018*<O3P>*<O2> + PTERMS(:,1,18) = +TPK%K018(:)*TPK%O3P(:)*TPK%O2(:) ! -!PTERMS(HO2,K024) = +K024*<OH>*<CO> - PTERMS(:,10,25) = +TPK%K024(:)*PCONC(:,15)*PCONC(:,11) +!PTERMS(O3,K019) = -K019*<O3P>*<O3> + PTERMS(:,1,19) = -TPK%K019(:)*TPK%O3P(:)*PCONC(:,1) ! -!PTERMS(CO,K024) = -K024*<OH>*<CO> - PTERMS(:,11,25) = -TPK%K024(:)*PCONC(:,15)*PCONC(:,11) +!PTERMS(OH,K022) = +K022*<O1D>*<H2O> + PTERMS(:,14,22) = +TPK%K022(:)*TPK%O1D(:)*TPK%H2O(:) ! -!PTERMS(OH,K024) = -K024*<OH>*<CO> - PTERMS(:,15,25) = -TPK%K024(:)*PCONC(:,15)*PCONC(:,11) +!PTERMS(O3,K023) = -K023*<O3>*<OH> + PTERMS(:,1,23) = -TPK%K023(:)*PCONC(:,1)*PCONC(:,14) ! -!PTERMS(O3,K025) = -K025*<OH>*<O3> - PTERMS(:,3,26) = -TPK%K025(:)*PCONC(:,15)*PCONC(:,3) +!PTERMS(OH,K023) = -K023*<O3>*<OH> + PTERMS(:,14,23) = -TPK%K023(:)*PCONC(:,1)*PCONC(:,14) ! -!PTERMS(HO2,K025) = +K025*<OH>*<O3> - PTERMS(:,10,26) = +TPK%K025(:)*PCONC(:,15)*PCONC(:,3) +!PTERMS(HO2,K023) = +K023*<O3>*<OH> + PTERMS(:,15,23) = +TPK%K023(:)*PCONC(:,1)*PCONC(:,14) ! -!PTERMS(OH,K025) = -K025*<OH>*<O3> - PTERMS(:,15,26) = -TPK%K025(:)*PCONC(:,15)*PCONC(:,3) +!PTERMS(O3,K024) = -K024*<O3>*<HO2> + PTERMS(:,1,24) = -TPK%K024(:)*PCONC(:,1)*PCONC(:,15) ! -!PTERMS(NO,K026) = -K026*<HO2>*<NO> - PTERMS(:,1,27) = -TPK%K026(:)*PCONC(:,10)*PCONC(:,1) +!PTERMS(OH,K024) = +K024*<O3>*<HO2> + PTERMS(:,14,24) = +TPK%K024(:)*PCONC(:,1)*PCONC(:,15) ! ! RETURN @@ -90621,65 +30069,65 @@ SUBROUTINE SUBT3 ! !Indices 61 a 80 ! -!PTERMS(NO2,K026) = +K026*<HO2>*<NO> - PTERMS(:,2,27) = +TPK%K026(:)*PCONC(:,10)*PCONC(:,1) +!PTERMS(HO2,K024) = -K024*<O3>*<HO2> + PTERMS(:,15,24) = -TPK%K024(:)*PCONC(:,1)*PCONC(:,15) ! -!PTERMS(HO2,K026) = -K026*<HO2>*<NO> - PTERMS(:,10,27) = -TPK%K026(:)*PCONC(:,10)*PCONC(:,1) +!PTERMS(OH,K025) = -K025*<OH>*<HO2> + PTERMS(:,14,25) = -TPK%K025(:)*PCONC(:,14)*PCONC(:,15) ! -!PTERMS(OH,K026) = +K026*<HO2>*<NO> - PTERMS(:,15,27) = +TPK%K026(:)*PCONC(:,10)*PCONC(:,1) +!PTERMS(HO2,K025) = -K025*<OH>*<HO2> + PTERMS(:,15,25) = -TPK%K025(:)*PCONC(:,14)*PCONC(:,15) ! -!PTERMS(NO2,K027) = -K027*<HO2>*<NO2> - PTERMS(:,2,28) = -TPK%K027(:)*PCONC(:,10)*PCONC(:,2) +!PTERMS(H2O2,K026) = -K026*<H2O2>*<OH> + PTERMS(:,2,26) = -TPK%K026(:)*PCONC(:,2)*PCONC(:,14) ! -!PTERMS(HNO4,K027) = +K027*<HO2>*<NO2> - PTERMS(:,6,28) = +TPK%K027(:)*PCONC(:,10)*PCONC(:,2) +!PTERMS(OH,K026) = -K026*<H2O2>*<OH> + PTERMS(:,14,26) = -TPK%K026(:)*PCONC(:,2)*PCONC(:,14) ! -!PTERMS(HO2,K027) = -K027*<HO2>*<NO2> - PTERMS(:,10,28) = -TPK%K027(:)*PCONC(:,10)*PCONC(:,2) +!PTERMS(HO2,K026) = +K026*<H2O2>*<OH> + PTERMS(:,15,26) = +TPK%K026(:)*PCONC(:,2)*PCONC(:,14) ! -!PTERMS(NO2,K028) = +K028*<HNO4> - PTERMS(:,2,29) = +TPK%K028(:)*PCONC(:,6) +!PTERMS(H2O2,K027) = +K027*<HO2>*<HO2> + PTERMS(:,2,27) = +TPK%K027(:)*PCONC(:,15)*PCONC(:,15) ! -!PTERMS(HNO4,K028) = -K028*<HNO4> - PTERMS(:,6,29) = -TPK%K028(:)*PCONC(:,6) +!PTERMS(HO2,K027) = -K027*<HO2>*<HO2> + PTERMS(:,15,27) = -TPK%K027(:)*PCONC(:,15)*PCONC(:,15) ! -!PTERMS(HO2,K028) = +K028*<HNO4> - PTERMS(:,10,29) = +TPK%K028(:)*PCONC(:,6) +!PTERMS(H2O2,K028) = +K028*<HO2>*<HO2>*<H2O> + PTERMS(:,2,28) = +TPK%K028(:)*PCONC(:,15)*PCONC(:,15)*TPK%H2O(:) ! -!PTERMS(NO2,K029) = +K029*<OH>*<HNO4> - PTERMS(:,2,30) = +TPK%K029(:)*PCONC(:,15)*PCONC(:,6) +!PTERMS(HO2,K028) = -K028*<HO2>*<HO2>*<H2O> + PTERMS(:,15,28) = -TPK%K028(:)*PCONC(:,15)*PCONC(:,15)*TPK%H2O(:) ! -!PTERMS(HNO4,K029) = -K029*<OH>*<HNO4> - PTERMS(:,6,30) = -TPK%K029(:)*PCONC(:,15)*PCONC(:,6) +!PTERMS(NO,K029) = -K029*<O3P>*<NO> + PTERMS(:,3,29) = -TPK%K029(:)*TPK%O3P(:)*PCONC(:,3) ! -!PTERMS(OH,K029) = -K029*<OH>*<HNO4> - PTERMS(:,15,30) = -TPK%K029(:)*PCONC(:,15)*PCONC(:,6) +!PTERMS(NO2,K029) = +K029*<O3P>*<NO> + PTERMS(:,4,29) = +TPK%K029(:)*TPK%O3P(:)*PCONC(:,3) ! -!PTERMS(O3,K030) = -K030*<HO2>*<O3> - PTERMS(:,3,31) = -TPK%K030(:)*PCONC(:,10)*PCONC(:,3) +!PTERMS(NO,K030) = +K030*<O3P>*<NO2> + PTERMS(:,3,30) = +TPK%K030(:)*TPK%O3P(:)*PCONC(:,4) ! -!PTERMS(HO2,K030) = -K030*<HO2>*<O3> - PTERMS(:,10,31) = -TPK%K030(:)*PCONC(:,10)*PCONC(:,3) +!PTERMS(NO2,K030) = -K030*<O3P>*<NO2> + PTERMS(:,4,30) = -TPK%K030(:)*TPK%O3P(:)*PCONC(:,4) ! -!PTERMS(OH,K030) = +K030*<HO2>*<O3> - PTERMS(:,15,31) = +TPK%K030(:)*PCONC(:,10)*PCONC(:,3) +!PTERMS(NO2,K031) = -K031*<O3P>*<NO2> + PTERMS(:,4,31) = -TPK%K031(:)*TPK%O3P(:)*PCONC(:,4) ! -!PTERMS(HO2,K031) = -K031*<HO2>*<HO2> - PTERMS(:,10,32) = -TPK%K031(:)*PCONC(:,10)*PCONC(:,10) +!PTERMS(NO3,K031) = +K031*<O3P>*<NO2> + PTERMS(:,5,31) = +TPK%K031(:)*TPK%O3P(:)*PCONC(:,4) ! -!PTERMS(H2O2,K031) = +K031*<HO2>*<HO2> - PTERMS(:,12,32) = +TPK%K031(:)*PCONC(:,10)*PCONC(:,10) +!PTERMS(NO,K032) = -K032*<OH>*<NO> + PTERMS(:,3,32) = -TPK%K032(:)*PCONC(:,14)*PCONC(:,3) ! -!PTERMS(HO2,K032) = -K032*<HO2>*<H2O>*<HO2> - PTERMS(:,10,33) = -TPK%K032(:)*PCONC(:,10)*TPK%H2O(:)*PCONC(:,10) +!PTERMS(HONO,K032) = +K032*<OH>*<NO> + PTERMS(:,7,32) = +TPK%K032(:)*PCONC(:,14)*PCONC(:,3) ! -!PTERMS(H2O2,K032) = +K032*<HO2>*<H2O>*<HO2> - PTERMS(:,12,33) = +TPK%K032(:)*PCONC(:,10)*TPK%H2O(:)*PCONC(:,10) +!PTERMS(OH,K032) = -K032*<OH>*<NO> + PTERMS(:,14,32) = -TPK%K032(:)*PCONC(:,14)*PCONC(:,3) ! -!PTERMS(NO2,K033) = +0.8*K033*<HO2>*<NO3> - PTERMS(:,2,34) = +0.8*TPK%K033(:)*PCONC(:,10)*PCONC(:,8) +!PTERMS(NO2,K033) = -K033*<OH>*<NO2> + PTERMS(:,4,33) = -TPK%K033(:)*PCONC(:,14)*PCONC(:,4) ! ! RETURN @@ -90689,65 +30137,65 @@ SUBROUTINE SUBT4 ! !Indices 81 a 100 ! -!PTERMS(HNO3,K033) = +0.2*K033*<HO2>*<NO3> - PTERMS(:,5,34) = +0.2*TPK%K033(:)*PCONC(:,10)*PCONC(:,8) +!PTERMS(HNO3,K033) = +K033*<OH>*<NO2> + PTERMS(:,8,33) = +TPK%K033(:)*PCONC(:,14)*PCONC(:,4) ! -!PTERMS(NO3,K033) = -K033*<HO2>*<NO3> - PTERMS(:,8,34) = -TPK%K033(:)*PCONC(:,10)*PCONC(:,8) +!PTERMS(OH,K033) = -K033*<OH>*<NO2> + PTERMS(:,14,33) = -TPK%K033(:)*PCONC(:,14)*PCONC(:,4) ! -!PTERMS(HO2,K033) = -K033*<HO2>*<NO3> - PTERMS(:,10,34) = -TPK%K033(:)*PCONC(:,10)*PCONC(:,8) +!PTERMS(NO2,K034) = +K034*<OH>*<NO3> + PTERMS(:,4,34) = +TPK%K034(:)*PCONC(:,14)*PCONC(:,5) ! -!PTERMS(OH,K033) = +0.8*K033*<HO2>*<NO3> - PTERMS(:,15,34) = +0.8*TPK%K033(:)*PCONC(:,10)*PCONC(:,8) +!PTERMS(NO3,K034) = -K034*<OH>*<NO3> + PTERMS(:,5,34) = -TPK%K034(:)*PCONC(:,14)*PCONC(:,5) ! -!PTERMS(O3,K034) = -K034*<O3>*<O> - PTERMS(:,3,35) = -TPK%K034(:)*PCONC(:,3)*TPK%O(:) +!PTERMS(OH,K034) = -K034*<OH>*<NO3> + PTERMS(:,14,34) = -TPK%K034(:)*PCONC(:,14)*PCONC(:,5) ! -!PTERMS(HO2,K035) = +K035*<OH>*<SO2> - PTERMS(:,10,36) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,13) +!PTERMS(HO2,K034) = +K034*<OH>*<NO3> + PTERMS(:,15,34) = +TPK%K034(:)*PCONC(:,14)*PCONC(:,5) ! -!PTERMS(SO2,K035) = -K035*<OH>*<SO2> - PTERMS(:,13,36) = -TPK%K035(:)*PCONC(:,15)*PCONC(:,13) +!PTERMS(NO,K035) = -K035*<HO2>*<NO> + PTERMS(:,3,35) = -TPK%K035(:)*PCONC(:,15)*PCONC(:,3) ! -!PTERMS(H2SO4,K035) = +K035*<OH>*<SO2> - PTERMS(:,14,36) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,13) +!PTERMS(NO2,K035) = +K035*<HO2>*<NO> + PTERMS(:,4,35) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,3) ! -!PTERMS(OH,K035) = -K035*<OH>*<SO2> - PTERMS(:,15,36) = -TPK%K035(:)*PCONC(:,15)*PCONC(:,13) +!PTERMS(OH,K035) = +K035*<HO2>*<NO> + PTERMS(:,14,35) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,3) ! -!PTERMS(H2O2,K036) = -K036*<H2O2> - PTERMS(:,12,37) = -TPK%K036(:)*PCONC(:,12) +!PTERMS(HO2,K035) = -K035*<HO2>*<NO> + PTERMS(:,15,35) = -TPK%K035(:)*PCONC(:,15)*PCONC(:,3) ! -!PTERMS(OH,K036) = +2.*K036*<H2O2> - PTERMS(:,15,37) = +2.*TPK%K036(:)*PCONC(:,12) +!PTERMS(NO2,K036) = -K036*<HO2>*<NO2> + PTERMS(:,4,36) = -TPK%K036(:)*PCONC(:,15)*PCONC(:,4) ! -!PTERMS(HO2,K037) = +K037*<OH>*<H2O2> - PTERMS(:,10,38) = +TPK%K037(:)*PCONC(:,15)*PCONC(:,12) +!PTERMS(HNO4,K036) = +K036*<HO2>*<NO2> + PTERMS(:,9,36) = +TPK%K036(:)*PCONC(:,15)*PCONC(:,4) ! -!PTERMS(H2O2,K037) = -K037*<OH>*<H2O2> - PTERMS(:,12,38) = -TPK%K037(:)*PCONC(:,15)*PCONC(:,12) +!PTERMS(HO2,K036) = -K036*<HO2>*<NO2> + PTERMS(:,15,36) = -TPK%K036(:)*PCONC(:,15)*PCONC(:,4) ! -!PTERMS(OH,K037) = -K037*<OH>*<H2O2> - PTERMS(:,15,38) = -TPK%K037(:)*PCONC(:,15)*PCONC(:,12) +!PTERMS(NO2,K037) = +K037*<HNO4> + PTERMS(:,4,37) = +TPK%K037(:)*PCONC(:,9) ! -!PTERMS(NO,K038) = -K038*<NO>*<O> - PTERMS(:,1,39) = -TPK%K038(:)*PCONC(:,1)*TPK%O(:) +!PTERMS(HNO4,K037) = -K037*<HNO4> + PTERMS(:,9,37) = -TPK%K037(:)*PCONC(:,9) ! -!PTERMS(NO2,K038) = +K038*<NO>*<O> - PTERMS(:,2,39) = +TPK%K038(:)*PCONC(:,1)*TPK%O(:) +!PTERMS(HO2,K037) = +K037*<HNO4> + PTERMS(:,15,37) = +TPK%K037(:)*PCONC(:,9) ! -!PTERMS(NO2,K039) = +K039*<OH>*<HONO> - PTERMS(:,2,40) = +TPK%K039(:)*PCONC(:,15)*PCONC(:,4) +!PTERMS(NO2,K038) = +0.7*K038*<HO2>*<NO3> + PTERMS(:,4,38) = +0.7*TPK%K038(:)*PCONC(:,15)*PCONC(:,5) ! -!PTERMS(HONO,K039) = -K039*<OH>*<HONO> - PTERMS(:,4,40) = -TPK%K039(:)*PCONC(:,15)*PCONC(:,4) +!PTERMS(NO3,K038) = -K038*<HO2>*<NO3> + PTERMS(:,5,38) = -TPK%K038(:)*PCONC(:,15)*PCONC(:,5) ! -!PTERMS(OH,K039) = -K039*<OH>*<HONO> - PTERMS(:,15,40) = -TPK%K039(:)*PCONC(:,15)*PCONC(:,4) +!PTERMS(HNO3,K038) = +0.3*K038*<HO2>*<NO3> + PTERMS(:,8,38) = +0.3*TPK%K038(:)*PCONC(:,15)*PCONC(:,5) ! -!PTERMS(NO2,K040) = +K040*<OH>*<NO3> - PTERMS(:,2,41) = +TPK%K040(:)*PCONC(:,15)*PCONC(:,8) +!PTERMS(OH,K038) = +0.7*K038*<HO2>*<NO3> + PTERMS(:,14,38) = +0.7*TPK%K038(:)*PCONC(:,15)*PCONC(:,5) ! ! RETURN @@ -90757,65 +30205,65 @@ SUBROUTINE SUBT5 ! !Indices 101 a 120 ! -!PTERMS(NO3,K040) = -K040*<OH>*<NO3> - PTERMS(:,8,41) = -TPK%K040(:)*PCONC(:,15)*PCONC(:,8) +!PTERMS(HO2,K038) = -K038*<HO2>*<NO3> + PTERMS(:,15,38) = -TPK%K038(:)*PCONC(:,15)*PCONC(:,5) ! -!PTERMS(HO2,K040) = +K040*<OH>*<NO3> - PTERMS(:,10,41) = +TPK%K040(:)*PCONC(:,15)*PCONC(:,8) +!PTERMS(NO2,K039) = +K039*<OH>*<HONO> + PTERMS(:,4,39) = +TPK%K039(:)*PCONC(:,14)*PCONC(:,7) ! -!PTERMS(OH,K040) = -K040*<OH>*<NO3> - PTERMS(:,15,41) = -TPK%K040(:)*PCONC(:,15)*PCONC(:,8) +!PTERMS(HONO,K039) = -K039*<OH>*<HONO> + PTERMS(:,7,39) = -TPK%K039(:)*PCONC(:,14)*PCONC(:,7) ! -!PTERMS(NO2,K041) = +2.*K041*<NO3>*<NO3> - PTERMS(:,2,42) = +2.*TPK%K041(:)*PCONC(:,8)*PCONC(:,8) +!PTERMS(OH,K039) = -K039*<OH>*<HONO> + PTERMS(:,14,39) = -TPK%K039(:)*PCONC(:,14)*PCONC(:,7) ! -!PTERMS(NO3,K041) = -K041*<NO3>*<NO3> - PTERMS(:,8,42) = -TPK%K041(:)*PCONC(:,8)*PCONC(:,8) +!PTERMS(NO3,K040) = +K040*<OH>*<HNO3> + PTERMS(:,5,40) = +TPK%K040(:)*PCONC(:,14)*PCONC(:,8) ! -!PTERMS(HO2,K042) = -K042*<HO2>*<OH> - PTERMS(:,10,43) = -TPK%K042(:)*PCONC(:,10)*PCONC(:,15) +!PTERMS(HNO3,K040) = -K040*<OH>*<HNO3> + PTERMS(:,8,40) = -TPK%K040(:)*PCONC(:,14)*PCONC(:,8) ! -!PTERMS(OH,K042) = -K042*<HO2>*<OH> - PTERMS(:,15,43) = -TPK%K042(:)*PCONC(:,10)*PCONC(:,15) +!PTERMS(OH,K040) = -K040*<OH>*<HNO3> + PTERMS(:,14,40) = -TPK%K040(:)*PCONC(:,14)*PCONC(:,8) ! -!PTERMS(OH,K043) = -K043*<OH>*<CH4> - PTERMS(:,15,44) = -TPK%K043(:)*PCONC(:,15)*TPK%CH4(:) +!PTERMS(NO2,K041) = +K041*<OH>*<HNO4> + PTERMS(:,4,41) = +TPK%K041(:)*PCONC(:,14)*PCONC(:,9) ! -!PTERMS(RO2T,K043) = +K043*<OH>*<CH4> - PTERMS(:,85,44) = +TPK%K043(:)*PCONC(:,15)*TPK%CH4(:) +!PTERMS(HNO4,K041) = -K041*<OH>*<HNO4> + PTERMS(:,9,41) = -TPK%K041(:)*PCONC(:,14)*PCONC(:,9) ! -!PTERMS(RO21,K043) = +K043*<OH>*<CH4> - PTERMS(:,86,44) = +TPK%K043(:)*PCONC(:,15)*TPK%CH4(:) +!PTERMS(OH,K041) = -K041*<OH>*<HNO4> + PTERMS(:,14,41) = -TPK%K041(:)*PCONC(:,14)*PCONC(:,9) ! -!PTERMS(HO2,K044) = +2.0*K044*<HCHO> - PTERMS(:,10,45) = +2.0*TPK%K044(:)*PCONC(:,28) +!PTERMS(O3,K042) = -K042*<O3>*<NO> + PTERMS(:,1,42) = -TPK%K042(:)*PCONC(:,1)*PCONC(:,3) ! -!PTERMS(CO,K044) = +K044*<HCHO> - PTERMS(:,11,45) = +TPK%K044(:)*PCONC(:,28) +!PTERMS(NO,K042) = -K042*<O3>*<NO> + PTERMS(:,3,42) = -TPK%K042(:)*PCONC(:,1)*PCONC(:,3) ! -!PTERMS(HCHO,K044) = -K044*<HCHO> - PTERMS(:,28,45) = -TPK%K044(:)*PCONC(:,28) +!PTERMS(NO2,K042) = +K042*<O3>*<NO> + PTERMS(:,4,42) = +TPK%K042(:)*PCONC(:,1)*PCONC(:,3) ! -!PTERMS(CO,K045) = +K045*<HCHO> - PTERMS(:,11,46) = +TPK%K045(:)*PCONC(:,28) +!PTERMS(O3,K043) = -K043*<O3>*<NO2> + PTERMS(:,1,43) = -TPK%K043(:)*PCONC(:,1)*PCONC(:,4) ! -!PTERMS(HCHO,K045) = -K045*<HCHO> - PTERMS(:,28,46) = -TPK%K045(:)*PCONC(:,28) +!PTERMS(NO2,K043) = -K043*<O3>*<NO2> + PTERMS(:,4,43) = -TPK%K043(:)*PCONC(:,1)*PCONC(:,4) ! -!PTERMS(HO2,K046) = +K046*<OH>*<HCHO> - PTERMS(:,10,47) = +TPK%K046(:)*PCONC(:,15)*PCONC(:,28) +!PTERMS(NO3,K043) = +K043*<O3>*<NO2> + PTERMS(:,5,43) = +TPK%K043(:)*PCONC(:,1)*PCONC(:,4) ! -!PTERMS(CO,K046) = +K046*<OH>*<HCHO> - PTERMS(:,11,47) = +TPK%K046(:)*PCONC(:,15)*PCONC(:,28) +!PTERMS(NO,K044) = -K044*<NO>*<NO>*<O2> + PTERMS(:,3,44) = -TPK%K044(:)*PCONC(:,3)*PCONC(:,3)*TPK%O2(:) ! -!PTERMS(OH,K046) = -K046*<OH>*<HCHO> - PTERMS(:,15,47) = -TPK%K046(:)*PCONC(:,15)*PCONC(:,28) +!PTERMS(NO2,K044) = +K044*<NO>*<NO>*<O2> + PTERMS(:,4,44) = +TPK%K044(:)*PCONC(:,3)*PCONC(:,3)*TPK%O2(:) ! -!PTERMS(HCHO,K046) = -K046*<OH>*<HCHO> - PTERMS(:,28,47) = -TPK%K046(:)*PCONC(:,15)*PCONC(:,28) +!PTERMS(NO,K045) = -K045*<NO3>*<NO> + PTERMS(:,3,45) = -TPK%K045(:)*PCONC(:,5)*PCONC(:,3) ! -!PTERMS(HNO3,K047) = +K047*<NO3>*<HCHO> - PTERMS(:,5,48) = +TPK%K047(:)*PCONC(:,8)*PCONC(:,28) +!PTERMS(NO2,K045) = +K045*<NO3>*<NO> + PTERMS(:,4,45) = +TPK%K045(:)*PCONC(:,5)*PCONC(:,3) ! ! RETURN @@ -90825,65 +30273,65 @@ SUBROUTINE SUBT6 ! !Indices 121 a 140 ! -!PTERMS(NO3,K047) = -K047*<NO3>*<HCHO> - PTERMS(:,8,48) = -TPK%K047(:)*PCONC(:,8)*PCONC(:,28) +!PTERMS(NO3,K045) = -K045*<NO3>*<NO> + PTERMS(:,5,45) = -TPK%K045(:)*PCONC(:,5)*PCONC(:,3) ! -!PTERMS(HO2,K047) = +K047*<NO3>*<HCHO> - PTERMS(:,10,48) = +TPK%K047(:)*PCONC(:,8)*PCONC(:,28) +!PTERMS(NO,K046) = +K046*<NO3>*<NO2> + PTERMS(:,3,46) = +TPK%K046(:)*PCONC(:,5)*PCONC(:,4) ! -!PTERMS(CO,K047) = +K047*<NO3>*<HCHO> - PTERMS(:,11,48) = +TPK%K047(:)*PCONC(:,8)*PCONC(:,28) +!PTERMS(NO2,K046) = -K046*<NO3>*<NO2> + PTERMS(:,4,46) = -TPK%K046(:)*PCONC(:,5)*PCONC(:,4) ! -!PTERMS(HCHO,K047) = -K047*<NO3>*<HCHO> - PTERMS(:,28,48) = -TPK%K047(:)*PCONC(:,8)*PCONC(:,28) +!PTERMS(NO3,K046) = -K046*<NO3>*<NO2> + PTERMS(:,5,46) = -TPK%K046(:)*PCONC(:,5)*PCONC(:,4) ! -!PTERMS(HO2,K048) = +K048*<OH>*<MEOH> - PTERMS(:,10,49) = +TPK%K048(:)*PCONC(:,15)*PCONC(:,32) +!PTERMS(NO2,K047) = -K047*<NO3>*<NO2> + PTERMS(:,4,47) = -TPK%K047(:)*PCONC(:,5)*PCONC(:,4) ! -!PTERMS(OH,K048) = -K048*<OH>*<MEOH> - PTERMS(:,15,49) = -TPK%K048(:)*PCONC(:,15)*PCONC(:,32) +!PTERMS(NO3,K047) = -K047*<NO3>*<NO2> + PTERMS(:,5,47) = -TPK%K047(:)*PCONC(:,5)*PCONC(:,4) ! -!PTERMS(HCHO,K048) = +K048*<OH>*<MEOH> - PTERMS(:,28,49) = +TPK%K048(:)*PCONC(:,15)*PCONC(:,32) +!PTERMS(N2O5,K047) = +K047*<NO3>*<NO2> + PTERMS(:,6,47) = +TPK%K047(:)*PCONC(:,5)*PCONC(:,4) ! -!PTERMS(MEOH,K048) = -K048*<OH>*<MEOH> - PTERMS(:,32,49) = -TPK%K048(:)*PCONC(:,15)*PCONC(:,32) +!PTERMS(NO2,K048) = +K048*<N2O5> + PTERMS(:,4,48) = +TPK%K048(:)*PCONC(:,6) ! -!PTERMS(OH,K049) = -K049*<OH>*<ETHE> - PTERMS(:,15,50) = -TPK%K049(:)*PCONC(:,15)*PCONC(:,16) +!PTERMS(NO3,K048) = +K048*<N2O5> + PTERMS(:,5,48) = +TPK%K048(:)*PCONC(:,6) ! -!PTERMS(ETHE,K049) = -K049*<OH>*<ETHE> - PTERMS(:,16,50) = -TPK%K049(:)*PCONC(:,15)*PCONC(:,16) +!PTERMS(N2O5,K048) = -K048*<N2O5> + PTERMS(:,6,48) = -TPK%K048(:)*PCONC(:,6) ! -!PTERMS(RO2T,K049) = +K049*<OH>*<ETHE> - PTERMS(:,85,50) = +TPK%K049(:)*PCONC(:,15)*PCONC(:,16) +!PTERMS(NO2,K049) = +K049*<NO3>*<NO3> + PTERMS(:,4,49) = +TPK%K049(:)*PCONC(:,5)*PCONC(:,5) ! -!PTERMS(NO3,K050) = -K050*<NO3>*<ETHE> - PTERMS(:,8,51) = -TPK%K050(:)*PCONC(:,8)*PCONC(:,16) +!PTERMS(NO3,K049) = -K049*<NO3>*<NO3> + PTERMS(:,5,49) = -TPK%K049(:)*PCONC(:,5)*PCONC(:,5) ! -!PTERMS(ETHE,K050) = -K050*<NO3>*<ETHE> - PTERMS(:,16,51) = -TPK%K050(:)*PCONC(:,8)*PCONC(:,16) +!PTERMS(NH3,K050) = -K050*<NH3>*<OH> + PTERMS(:,10,50) = -TPK%K050(:)*PCONC(:,10)*PCONC(:,14) ! -!PTERMS(RO2T,K050) = +K050*<NO3>*<ETHE> - PTERMS(:,85,51) = +TPK%K050(:)*PCONC(:,8)*PCONC(:,16) +!PTERMS(OH,K050) = -K050*<NH3>*<OH> + PTERMS(:,14,50) = -TPK%K050(:)*PCONC(:,10)*PCONC(:,14) ! -!PTERMS(O3,K051) = -K051*<O3>*<ETHE> - PTERMS(:,3,52) = -TPK%K051(:)*PCONC(:,3)*PCONC(:,16) +!PTERMS(OH,K051) = -K051*<OH>*<H2> + PTERMS(:,14,51) = -TPK%K051(:)*PCONC(:,14)*TPK%H2(:) ! -!PTERMS(HO2,K051) = +0.06*K051*<O3>*<ETHE> - PTERMS(:,10,52) = +0.06*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) +!PTERMS(HO2,K051) = +K051*<OH>*<H2> + PTERMS(:,15,51) = +TPK%K051(:)*PCONC(:,14)*TPK%H2(:) ! -!PTERMS(CO,K051) = +0.315*K051*<O3>*<ETHE> - PTERMS(:,11,52) = +0.315*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) +!PTERMS(SO2,K052) = -K052*<OH>*<SO2> + PTERMS(:,11,52) = -TPK%K052(:)*PCONC(:,14)*PCONC(:,11) ! -!PTERMS(OH,K051) = +0.06*K051*<O3>*<ETHE> - PTERMS(:,15,52) = +0.06*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) +!PTERMS(SULF,K052) = +K052*<OH>*<SO2> + PTERMS(:,12,52) = +TPK%K052(:)*PCONC(:,14)*PCONC(:,11) ! -!PTERMS(ETHE,K051) = -K051*<O3>*<ETHE> - PTERMS(:,16,52) = -TPK%K051(:)*PCONC(:,3)*PCONC(:,16) +!PTERMS(OH,K052) = -K052*<OH>*<SO2> + PTERMS(:,14,52) = -TPK%K052(:)*PCONC(:,14)*PCONC(:,11) ! -!PTERMS(HCHO,K051) = +0.5*K051*<O3>*<ETHE> - PTERMS(:,28,52) = +0.5*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) +!PTERMS(HO2,K052) = +K052*<OH>*<SO2> + PTERMS(:,15,52) = +TPK%K052(:)*PCONC(:,14)*PCONC(:,11) ! ! RETURN @@ -90893,65 +30341,65 @@ SUBROUTINE SUBT7 ! !Indices 141 a 160 ! -!PTERMS(ORA1,K051) = +0.185*K051*<O3>*<ETHE> - PTERMS(:,43,52) = +0.185*TPK%K051(:)*PCONC(:,3)*PCONC(:,16) +!PTERMS(CO,K053) = -K053*<CO>*<OH> + PTERMS(:,13,53) = -TPK%K053(:)*PCONC(:,13)*PCONC(:,14) ! -!PTERMS(HO2,K052) = +K052*<O>*<ETHE> - PTERMS(:,10,53) = +TPK%K052(:)*TPK%O(:)*PCONC(:,16) +!PTERMS(OH,K053) = -K053*<CO>*<OH> + PTERMS(:,14,53) = -TPK%K053(:)*PCONC(:,13)*PCONC(:,14) ! -!PTERMS(CO,K052) = +0.6*K052*<O>*<ETHE> - PTERMS(:,11,53) = +0.6*TPK%K052(:)*TPK%O(:)*PCONC(:,16) +!PTERMS(HO2,K053) = +K053*<CO>*<OH> + PTERMS(:,15,53) = +TPK%K053(:)*PCONC(:,13)*PCONC(:,14) ! -!PTERMS(ETHE,K052) = -K052*<O>*<ETHE> - PTERMS(:,16,53) = -TPK%K052(:)*TPK%O(:)*PCONC(:,16) +!PTERMS(CO,K054) = +0.01*K054*<BIO>*<O3P> + PTERMS(:,13,54) = +0.01*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) ! -!PTERMS(RO2T,K052) = +K052*<O>*<ETHE> - PTERMS(:,85,53) = +TPK%K052(:)*TPK%O(:)*PCONC(:,16) +!PTERMS(OH,K054) = +0.02*K054*<BIO>*<O3P> + PTERMS(:,14,54) = +0.02*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) ! -!PTERMS(RO21,K052) = +0.6*K052*<O>*<ETHE> - PTERMS(:,86,53) = +0.6*TPK%K052(:)*TPK%O(:)*PCONC(:,16) +!PTERMS(HO2,K054) = +0.28*K054*<BIO>*<O3P> + PTERMS(:,15,54) = +0.28*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) ! -!PTERMS(HO2,K053) = +TPK%CF1*K053*<OH>*<ETOH> - PTERMS(:,10,54) = +TPK%CF1*TPK%K053(:)*PCONC(:,15)*PCONC(:,33) +!PTERMS(ALKE,K054) = +0.91868*K054*<BIO>*<O3P> + PTERMS(:,19,54) = +0.91868*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) ! -!PTERMS(OH,K053) = -K053*<OH>*<ETOH> - PTERMS(:,15,54) = -TPK%K053(:)*PCONC(:,15)*PCONC(:,33) +!PTERMS(BIO,K054) = -K054*<BIO>*<O3P> + PTERMS(:,20,54) = -TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) ! -!PTERMS(ALD2,K053) = +TPK%CF1*K053*<OH>*<ETOH> - PTERMS(:,29,54) = +TPK%CF1*TPK%K053(:)*PCONC(:,15)*PCONC(:,33) +!PTERMS(HCHO,K054) = +0.05*K054*<BIO>*<O3P> + PTERMS(:,22,54) = +0.05*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) ! -!PTERMS(ETOH,K053) = -K053*<OH>*<ETOH> - PTERMS(:,33,54) = -TPK%K053(:)*PCONC(:,15)*PCONC(:,33) +!PTERMS(CARBO,K054) = +0.13255*K054*<BIO>*<O3P> + PTERMS(:,25,54) = +0.13255*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) ! -!PTERMS(RO2T,K053) = +TPK%CF2*K053*<OH>*<ETOH> - PTERMS(:,85,54) = +TPK%CF2*TPK%K053(:)*PCONC(:,15)*PCONC(:,33) +!PTERMS(XO2,K054) = +0.15*K054*<BIO>*<O3P> + PTERMS(:,41,54) = +0.15*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) ! -!PTERMS(OH,K054) = -K054*<OH>*<OLEL> - PTERMS(:,15,55) = -TPK%K054(:)*PCONC(:,15)*PCONC(:,17) +!PTERMS(ALD,K055) = +K055*<CARBO>*<O3P> + PTERMS(:,23,55) = +TPK%K055(:)*PCONC(:,25)*TPK%O3P(:) ! -!PTERMS(OLEL,K054) = -K054*<OH>*<OLEL> - PTERMS(:,17,55) = -TPK%K054(:)*PCONC(:,15)*PCONC(:,17) +!PTERMS(CARBO,K055) = -K055*<CARBO>*<O3P> + PTERMS(:,25,55) = -TPK%K055(:)*PCONC(:,25)*TPK%O3P(:) ! -!PTERMS(RO2T,K054) = +K054*<OH>*<OLEL> - PTERMS(:,85,55) = +TPK%K054(:)*PCONC(:,15)*PCONC(:,17) +!PTERMS(OH,K056) = -K056*<CH4>*<OH> + PTERMS(:,14,56) = -TPK%K056(:)*PCONC(:,16)*PCONC(:,14) ! -!PTERMS(NO3,K055) = -K055*<NO3>*<OLEL> - PTERMS(:,8,56) = -TPK%K055(:)*PCONC(:,8)*PCONC(:,17) +!PTERMS(CH4,K056) = -K056*<CH4>*<OH> + PTERMS(:,16,56) = -TPK%K056(:)*PCONC(:,16)*PCONC(:,14) ! -!PTERMS(OLEL,K055) = -K055*<NO3>*<OLEL> - PTERMS(:,17,56) = -TPK%K055(:)*PCONC(:,8)*PCONC(:,17) +!PTERMS(MO2,K056) = +K056*<CH4>*<OH> + PTERMS(:,32,56) = +TPK%K056(:)*PCONC(:,16)*PCONC(:,14) ! -!PTERMS(RO2T,K055) = +K055*<NO3>*<OLEL> - PTERMS(:,85,56) = +TPK%K055(:)*PCONC(:,8)*PCONC(:,17) +!PTERMS(OH,K057) = -K057*<ETH>*<OH> + PTERMS(:,14,57) = -TPK%K057(:)*PCONC(:,17)*PCONC(:,14) ! -!PTERMS(O3,K056) = -K056*<O3>*<OLEL> - PTERMS(:,3,57) = -TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +!PTERMS(ETH,K057) = -K057*<ETH>*<OH> + PTERMS(:,17,57) = -TPK%K057(:)*PCONC(:,17)*PCONC(:,14) ! -!PTERMS(HO2,K056) = +0.28*K056*<O3>*<OLEL> - PTERMS(:,10,57) = +0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +!PTERMS(ALKAP,K057) = +K057*<ETH>*<OH> + PTERMS(:,33,57) = +TPK%K057(:)*PCONC(:,17)*PCONC(:,14) ! -!PTERMS(CO,K056) = +0.56*K056*<O3>*<OLEL> - PTERMS(:,11,57) = +0.56*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +!PTERMS(CO,K058) = +0.00878*K058*<ALKA>*<OH> + PTERMS(:,13,58) = +0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! ! RETURN @@ -90961,65 +30409,65 @@ SUBROUTINE SUBT8 ! !Indices 161 a 180 ! -!PTERMS(OH,K056) = +0.36*K056*<O3>*<OLEL> - PTERMS(:,15,57) = +0.36*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +!PTERMS(OH,K058) = -K058*<ALKA>*<OH> + PTERMS(:,14,58) = -TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(OLEL,K056) = -K056*<O3>*<OLEL> - PTERMS(:,17,57) = -TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +!PTERMS(HO2,K058) = +0.12793*K058*<ALKA>*<OH> + PTERMS(:,15,58) = +0.12793*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(ALKL,K056) = +0.1*K056*<O3>*<OLEL> - PTERMS(:,19,57) = +0.1*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +!PTERMS(ALKA,K058) = -K058*<ALKA>*<OH> + PTERMS(:,18,58) = -TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(HCHO,K056) = +0.5*K056*<O3>*<OLEL> - PTERMS(:,28,57) = +0.5*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +!PTERMS(HCHO,K058) = +0.00140*K058*<ALKA>*<OH> + PTERMS(:,22,58) = +0.00140*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(ALD2,K056) = +0.5*K056*<O3>*<OLEL> - PTERMS(:,29,57) = +0.5*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +!PTERMS(ALD,K058) = +0.08173*K058*<ALKA>*<OH> + PTERMS(:,23,58) = +0.08173*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(ORA1,K056) = +0.12*K056*<O3>*<OLEL> - PTERMS(:,43,57) = +0.12*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +!PTERMS(KET,K058) = +0.03498*K058*<ALKA>*<OH> + PTERMS(:,24,58) = +0.03498*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(ORA2,K056) = +0.12*K056*<O3>*<OLEL> - PTERMS(:,44,57) = +0.12*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +!PTERMS(CARBO,K058) = +0.00835*K058*<ALKA>*<OH> + PTERMS(:,25,58) = +0.00835*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(RO2T,K056) = +0.28*K056*<O3>*<OLEL> - PTERMS(:,85,57) = +0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +!PTERMS(ORA1,K058) = +0.00878*K058*<ALKA>*<OH> + PTERMS(:,30,58) = +0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(RO25,K056) = +0.28*K056*<O3>*<OLEL> - PTERMS(:,87,57) = +0.28*TPK%K056(:)*PCONC(:,3)*PCONC(:,17) +!PTERMS(ALKAP,K058) = +0.87811*K058*<ALKA>*<OH> + PTERMS(:,33,58) = +0.87811*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(OLEL,K057) = -K057*<O>*<OLEL> - PTERMS(:,17,58) = -TPK%K057(:)*TPK%O(:)*PCONC(:,17) +!PTERMS(OH,K059) = -K059*<ALKE>*<OH> + PTERMS(:,14,59) = -TPK%K059(:)*PCONC(:,19)*PCONC(:,14) ! -!PTERMS(ALKL,K057) = +0.5*K057*<O>*<OLEL> - PTERMS(:,19,58) = +0.5*TPK%K057(:)*TPK%O(:)*PCONC(:,17) +!PTERMS(ALKE,K059) = -K059*<ALKE>*<OH> + PTERMS(:,19,59) = -TPK%K059(:)*PCONC(:,19)*PCONC(:,14) ! -!PTERMS(ALD2,K057) = +0.4*K057*<O>*<OLEL> - PTERMS(:,29,58) = +0.4*TPK%K057(:)*TPK%O(:)*PCONC(:,17) +!PTERMS(ALKEP,K059) = +1.02529*K059*<ALKE>*<OH> + PTERMS(:,34,59) = +1.02529*TPK%K059(:)*PCONC(:,19)*PCONC(:,14) ! -!PTERMS(RO2T,K057) = +0.2*K057*<O>*<OLEL> - PTERMS(:,85,58) = +0.2*TPK%K057(:)*TPK%O(:)*PCONC(:,17) +!PTERMS(BIOP,K059) = +0.00000*K059*<ALKE>*<OH> + PTERMS(:,35,59) = +0.00000*TPK%K059(:)*PCONC(:,19)*PCONC(:,14) ! -!PTERMS(RO25,K057) = +0.1*K057*<O>*<OLEL> - PTERMS(:,87,58) = +0.1*TPK%K057(:)*TPK%O(:)*PCONC(:,17) +!PTERMS(OH,K060) = -K060*<BIO>*<OH> + PTERMS(:,14,60) = -TPK%K060(:)*PCONC(:,20)*PCONC(:,14) ! -!PTERMS(OH,K058) = -K058*<OH>*<ALKL> - PTERMS(:,15,59) = -TPK%K058(:)*PCONC(:,15)*PCONC(:,19) +!PTERMS(BIO,K060) = -K060*<BIO>*<OH> + PTERMS(:,20,60) = -TPK%K060(:)*PCONC(:,20)*PCONC(:,14) ! -!PTERMS(ALKL,K058) = -K058*<OH>*<ALKL> - PTERMS(:,19,59) = -TPK%K058(:)*PCONC(:,15)*PCONC(:,19) +!PTERMS(BIOP,K060) = +1.00000*K060*<BIO>*<OH> + PTERMS(:,35,60) = +1.00000*TPK%K060(:)*PCONC(:,20)*PCONC(:,14) ! -!PTERMS(RO2T,K058) = +K058*<OH>*<ALKL> - PTERMS(:,85,59) = +TPK%K058(:)*PCONC(:,15)*PCONC(:,19) +!PTERMS(OH,K061) = -K061*<ARO>*<OH> + PTERMS(:,14,61) = -TPK%K061(:)*PCONC(:,21)*PCONC(:,14) ! -!PTERMS(RO25,K058) = +K058*<OH>*<ALKL> - PTERMS(:,87,59) = +TPK%K058(:)*PCONC(:,15)*PCONC(:,19) +!PTERMS(HO2,K061) = +0.10318*K061*<ARO>*<OH> + PTERMS(:,15,61) = +0.10318*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) ! -!PTERMS(HO2,K059) = +K059*<ALD2> - PTERMS(:,10,60) = +TPK%K059(:)*PCONC(:,29) +!PTERMS(ARO,K061) = -K061*<ARO>*<OH> + PTERMS(:,21,61) = -TPK%K061(:)*PCONC(:,21)*PCONC(:,14) ! -!PTERMS(CO,K059) = +K059*<ALD2> - PTERMS(:,11,60) = +TPK%K059(:)*PCONC(:,29) +!PTERMS(PHO,K061) = +0.00276*K061*<ARO>*<OH> + PTERMS(:,36,61) = +0.00276*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) ! ! RETURN @@ -91029,65 +30477,65 @@ SUBROUTINE SUBT9 ! !Indices 181 a 200 ! -!PTERMS(ALD2,K059) = -K059*<ALD2> - PTERMS(:,29,60) = -TPK%K059(:)*PCONC(:,29) +!PTERMS(ADD,K061) = +0.93968*K061*<ARO>*<OH> + PTERMS(:,37,61) = +0.93968*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) ! -!PTERMS(RO2T,K059) = +K059*<ALD2> - PTERMS(:,85,60) = +TPK%K059(:)*PCONC(:,29) +!PTERMS(XO2,K061) = +0.10318*K061*<ARO>*<OH> + PTERMS(:,41,61) = +0.10318*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) ! -!PTERMS(RO25,K059) = +K059*<ALD2> - PTERMS(:,87,60) = +TPK%K059(:)*PCONC(:,29) +!PTERMS(CO,K062) = +K062*<HCHO>*<OH> + PTERMS(:,13,62) = +TPK%K062(:)*PCONC(:,22)*PCONC(:,14) ! -!PTERMS(OH,K060) = -K060*<OH>*<ALD2> - PTERMS(:,15,61) = -TPK%K060(:)*PCONC(:,15)*PCONC(:,29) +!PTERMS(OH,K062) = -K062*<HCHO>*<OH> + PTERMS(:,14,62) = -TPK%K062(:)*PCONC(:,22)*PCONC(:,14) ! -!PTERMS(ALD2,K060) = -K060*<OH>*<ALD2> - PTERMS(:,29,61) = -TPK%K060(:)*PCONC(:,15)*PCONC(:,29) +!PTERMS(HO2,K062) = +K062*<HCHO>*<OH> + PTERMS(:,15,62) = +TPK%K062(:)*PCONC(:,22)*PCONC(:,14) ! -!PTERMS(RO2T,K060) = +K060*<OH>*<ALD2> - PTERMS(:,85,61) = +TPK%K060(:)*PCONC(:,15)*PCONC(:,29) +!PTERMS(HCHO,K062) = -K062*<HCHO>*<OH> + PTERMS(:,22,62) = -TPK%K062(:)*PCONC(:,22)*PCONC(:,14) ! -!PTERMS(HNO3,K061) = +K061*<NO3>*<ALD2> - PTERMS(:,5,62) = +TPK%K061(:)*PCONC(:,8)*PCONC(:,29) +!PTERMS(OH,K063) = -K063*<ALD>*<OH> + PTERMS(:,14,63) = -TPK%K063(:)*PCONC(:,23)*PCONC(:,14) ! -!PTERMS(NO3,K061) = -K061*<NO3>*<ALD2> - PTERMS(:,8,62) = -TPK%K061(:)*PCONC(:,8)*PCONC(:,29) +!PTERMS(ALD,K063) = -K063*<ALD>*<OH> + PTERMS(:,23,63) = -TPK%K063(:)*PCONC(:,23)*PCONC(:,14) ! -!PTERMS(ALD2,K061) = -K061*<NO3>*<ALD2> - PTERMS(:,29,62) = -TPK%K061(:)*PCONC(:,8)*PCONC(:,29) +!PTERMS(CARBOP,K063) = +1.00000*K063*<ALD>*<OH> + PTERMS(:,39,63) = +1.00000*TPK%K063(:)*PCONC(:,23)*PCONC(:,14) ! -!PTERMS(RO2T,K061) = +K061*<NO3>*<ALD2> - PTERMS(:,85,62) = +TPK%K061(:)*PCONC(:,8)*PCONC(:,29) +!PTERMS(OH,K064) = -K064*<KET>*<OH> + PTERMS(:,14,64) = -TPK%K064(:)*PCONC(:,24)*PCONC(:,14) ! -!PTERMS(OH,K062) = -K062*<OH>*<KETL> - PTERMS(:,15,63) = -TPK%K062(:)*PCONC(:,15)*PCONC(:,30) +!PTERMS(KET,K064) = -K064*<KET>*<OH> + PTERMS(:,24,64) = -TPK%K064(:)*PCONC(:,24)*PCONC(:,14) ! -!PTERMS(KETL,K062) = -K062*<OH>*<KETL> - PTERMS(:,30,63) = -TPK%K062(:)*PCONC(:,15)*PCONC(:,30) +!PTERMS(CARBOP,K064) = +1.00000*K064*<KET>*<OH> + PTERMS(:,39,64) = +1.00000*TPK%K064(:)*PCONC(:,24)*PCONC(:,14) ! -!PTERMS(RO2T,K062) = +K062*<OH>*<KETL> - PTERMS(:,85,63) = +TPK%K062(:)*PCONC(:,15)*PCONC(:,30) +!PTERMS(CO,K065) = +1.01732*K065*<CARBO>*<OH> + PTERMS(:,13,65) = +1.01732*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! -!PTERMS(KETL,K063) = -K063*<KETL> - PTERMS(:,30,64) = -TPK%K063(:)*PCONC(:,30) +!PTERMS(OH,K065) = -K065*<CARBO>*<OH> + PTERMS(:,14,65) = -TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! -!PTERMS(RO2T,K063) = +2.*K063*<KETL> - PTERMS(:,85,64) = +2.*TPK%K063(:)*PCONC(:,30) +!PTERMS(HO2,K065) = +0.51208*K065*<CARBO>*<OH> + PTERMS(:,15,65) = +0.51208*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! -!PTERMS(RO25,K063) = +K063*<KETL> - PTERMS(:,87,64) = +TPK%K063(:)*PCONC(:,30) +!PTERMS(HCHO,K065) = +0.00000*K065*<CARBO>*<OH> + PTERMS(:,22,65) = +0.00000*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! -!PTERMS(OH,K064) = -K064*<OH>*<ISOP> - PTERMS(:,15,65) = -TPK%K064(:)*PCONC(:,15)*PCONC(:,35) +!PTERMS(ALD,K065) = +0.06253*K065*<CARBO>*<OH> + PTERMS(:,23,65) = +0.06253*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! -!PTERMS(ISOP,K064) = -K064*<OH>*<ISOP> - PTERMS(:,35,65) = -TPK%K064(:)*PCONC(:,15)*PCONC(:,35) +!PTERMS(KET,K065) = +0.00853*K065*<CARBO>*<OH> + PTERMS(:,24,65) = +0.00853*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! -!PTERMS(RO2T,K064) = +K064*<OH>*<ISOP> - PTERMS(:,85,65) = +TPK%K064(:)*PCONC(:,15)*PCONC(:,35) +!PTERMS(CARBO,K065) = -K065*<CARBO>*<OH> + PTERMS(:,25,65) = -TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! -!PTERMS(NO3,K065) = -K065*<NO3>*<ISOP> - PTERMS(:,8,66) = -TPK%K065(:)*PCONC(:,8)*PCONC(:,35) +!PTERMS(CARBOP,K065) = +0.51419*K065*<CARBO>*<OH> + PTERMS(:,39,65) = +0.51419*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! ! RETURN @@ -91097,65 +30545,65 @@ SUBROUTINE SUBT10 ! !Indices 201 a 220 ! -!PTERMS(ISOP,K065) = -K065*<NO3>*<ISOP> - PTERMS(:,35,66) = -TPK%K065(:)*PCONC(:,8)*PCONC(:,35) +!PTERMS(XO2,K065) = +0.10162*K065*<CARBO>*<OH> + PTERMS(:,41,65) = +0.10162*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! -!PTERMS(RO2T,K065) = +K065*<NO3>*<ISOP> - PTERMS(:,85,66) = +TPK%K065(:)*PCONC(:,8)*PCONC(:,35) +!PTERMS(OH,K066) = -K066*<ORA1>*<OH> + PTERMS(:,14,66) = -TPK%K066(:)*PCONC(:,30)*PCONC(:,14) ! -!PTERMS(O3,K066) = -K066*<O3>*<ISOP> - PTERMS(:,3,67) = -TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +!PTERMS(HO2,K066) = +K066*<ORA1>*<OH> + PTERMS(:,15,66) = +TPK%K066(:)*PCONC(:,30)*PCONC(:,14) ! -!PTERMS(HO2,K066) = +0.366*K066*<O3>*<ISOP> - PTERMS(:,10,67) = +0.366*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +!PTERMS(ORA1,K066) = -K066*<ORA1>*<OH> + PTERMS(:,30,66) = -TPK%K066(:)*PCONC(:,30)*PCONC(:,14) ! -!PTERMS(CO,K066) = +0.461*K066*<O3>*<ISOP> - PTERMS(:,11,67) = +0.461*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +!PTERMS(OH,K067) = -K067*<ORA2>*<OH> + PTERMS(:,14,67) = -TPK%K067(:)*PCONC(:,31)*PCONC(:,14) ! -!PTERMS(OH,K066) = +0.664*K066*<O3>*<ISOP> - PTERMS(:,15,67) = +0.664*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +!PTERMS(ORA2,K067) = -K067*<ORA2>*<OH> + PTERMS(:,31,67) = -TPK%K067(:)*PCONC(:,31)*PCONC(:,14) ! -!PTERMS(OLEL,K066) = +0.054*K066*<O3>*<ISOP> - PTERMS(:,17,67) = +0.054*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +!PTERMS(OH,K068) = -K068*<OP1>*<OH> + PTERMS(:,14,68) = -TPK%K068(:)*PCONC(:,28)*PCONC(:,14) ! -!PTERMS(HCHO,K066) = +0.5*K066*<O3>*<ISOP> - PTERMS(:,28,67) = +0.5*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +!PTERMS(HCHO,K068) = +0.35*K068*<OP1>*<OH> + PTERMS(:,22,68) = +0.35*TPK%K068(:)*PCONC(:,28)*PCONC(:,14) ! -!PTERMS(ISOP,K066) = -K066*<O3>*<ISOP> - PTERMS(:,35,67) = -TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +!PTERMS(OP1,K068) = -K068*<OP1>*<OH> + PTERMS(:,28,68) = -TPK%K068(:)*PCONC(:,28)*PCONC(:,14) ! -!PTERMS(MVK,K066) = +0.389*K066*<O3>*<ISOP> - PTERMS(:,39,67) = +0.389*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +!PTERMS(MO2,K068) = +0.65*K068*<OP1>*<OH> + PTERMS(:,32,68) = +0.65*TPK%K068(:)*PCONC(:,28)*PCONC(:,14) ! -!PTERMS(MCR,K066) = +0.17*K066*<O3>*<ISOP> - PTERMS(:,40,67) = +0.17*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +!PTERMS(OH,K069) = -K069*<OP2>*<OH> + PTERMS(:,14,69) = -TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(ORA1,K066) = +0.121*K066*<O3>*<ISOP> - PTERMS(:,43,67) = +0.121*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +!PTERMS(HO2,K069) = +0.02915*K069*<OP2>*<OH> + PTERMS(:,15,69) = +0.02915*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(RO2T,K066) = +0.366*K066*<O3>*<ISOP> - PTERMS(:,85,67) = +0.366*TPK%K066(:)*PCONC(:,3)*PCONC(:,35) +!PTERMS(HCHO,K069) = +0.02915*K069*<OP2>*<OH> + PTERMS(:,22,69) = +0.02915*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(OLEL,K067) = +0.925*K067*<O>*<ISOP> - PTERMS(:,17,68) = +0.925*TPK%K067(:)*TPK%O(:)*PCONC(:,35) +!PTERMS(ALD,K069) = +0.07335*K069*<OP2>*<OH> + PTERMS(:,23,69) = +0.07335*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(ALD2,K067) = +0.075*K067*<O>*<ISOP> - PTERMS(:,29,68) = +0.075*TPK%K067(:)*TPK%O(:)*PCONC(:,35) +!PTERMS(KET,K069) = +0.37591*K069*<OP2>*<OH> + PTERMS(:,24,69) = +0.37591*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(ISOP,K067) = -K067*<O>*<ISOP> - PTERMS(:,35,68) = -TPK%K067(:)*TPK%O(:)*PCONC(:,35) +!PTERMS(OP2,K069) = -K069*<OP2>*<OH> + PTERMS(:,29,69) = -TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(OH,K068) = -K068*<OH>*<MTBE> - PTERMS(:,15,69) = -TPK%K068(:)*PCONC(:,15)*PCONC(:,38) +!PTERMS(ALKAP,K069) = +0.40341*K069*<OP2>*<OH> + PTERMS(:,33,69) = +0.40341*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(MTBE,K068) = -K068*<OH>*<MTBE> - PTERMS(:,38,69) = -TPK%K068(:)*PCONC(:,15)*PCONC(:,38) +!PTERMS(CARBOP,K069) = +0.05413*K069*<OP2>*<OH> + PTERMS(:,39,69) = +0.05413*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(RO2T,K068) = +K068*<OH>*<MTBE> - PTERMS(:,85,69) = +TPK%K068(:)*PCONC(:,15)*PCONC(:,38) +!PTERMS(XO2,K069) = +0.09333*K069*<OP2>*<OH> + PTERMS(:,41,69) = +0.09333*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(OH,K069) = -K069*<OH>*<ALCH> - PTERMS(:,15,70) = -TPK%K069(:)*PCONC(:,15)*PCONC(:,34) +!PTERMS(NO3,K070) = +0.71893*K070*<PAN>*<OH> + PTERMS(:,5,70) = +0.71893*TPK%K070(:)*PCONC(:,27)*PCONC(:,14) ! ! RETURN @@ -91165,65 +30613,65 @@ SUBROUTINE SUBT11 ! !Indices 221 a 240 ! -!PTERMS(ALCH,K069) = -K069*<OH>*<ALCH> - PTERMS(:,34,70) = -TPK%K069(:)*PCONC(:,15)*PCONC(:,34) +!PTERMS(OH,K070) = -K070*<PAN>*<OH> + PTERMS(:,14,70) = -TPK%K070(:)*PCONC(:,27)*PCONC(:,14) ! -!PTERMS(RO2T,K069) = +K069*<OH>*<ALCH> - PTERMS(:,85,70) = +TPK%K069(:)*PCONC(:,15)*PCONC(:,34) +!PTERMS(HO2,K070) = +0.28107*K070*<PAN>*<OH> + PTERMS(:,15,70) = +0.28107*TPK%K070(:)*PCONC(:,27)*PCONC(:,14) ! -!PTERMS(OH,K070) = -K070*<OH>*<KETH> - PTERMS(:,15,71) = -TPK%K070(:)*PCONC(:,15)*PCONC(:,31) +!PTERMS(HCHO,K070) = +0.57839*K070*<PAN>*<OH> + PTERMS(:,22,70) = +0.57839*TPK%K070(:)*PCONC(:,27)*PCONC(:,14) ! -!PTERMS(KETH,K070) = -K070*<OH>*<KETH> - PTERMS(:,31,71) = -TPK%K070(:)*PCONC(:,15)*PCONC(:,31) +!PTERMS(CARBO,K070) = +0.21863*K070*<PAN>*<OH> + PTERMS(:,25,70) = +0.21863*TPK%K070(:)*PCONC(:,27)*PCONC(:,14) ! -!PTERMS(RO2T,K070) = +K070*<OH>*<KETH> - PTERMS(:,85,71) = +TPK%K070(:)*PCONC(:,15)*PCONC(:,31) +!PTERMS(PAN,K070) = -K070*<PAN>*<OH> + PTERMS(:,27,70) = -TPK%K070(:)*PCONC(:,27)*PCONC(:,14) ! -!PTERMS(KETH,K071) = -K071*<KETH> - PTERMS(:,31,72) = -TPK%K071(:)*PCONC(:,31) +!PTERMS(XO2,K070) = +K070*<PAN>*<OH> + PTERMS(:,41,70) = +TPK%K070(:)*PCONC(:,27)*PCONC(:,14) ! -!PTERMS(RO2T,K071) = +2.*K071*<KETH> - PTERMS(:,85,72) = +2.*TPK%K071(:)*PCONC(:,31) +!PTERMS(NO2,K071) = +K071*<ONIT>*<OH> + PTERMS(:,4,71) = +TPK%K071(:)*PCONC(:,26)*PCONC(:,14) ! -!PTERMS(RO25,K071) = +K071*<KETH> - PTERMS(:,87,72) = +TPK%K071(:)*PCONC(:,31) +!PTERMS(OH,K071) = -K071*<ONIT>*<OH> + PTERMS(:,14,71) = -TPK%K071(:)*PCONC(:,26)*PCONC(:,14) ! -!PTERMS(HNO3,K072) = +K072*<NO3>*<AROO> - PTERMS(:,5,73) = +TPK%K072(:)*PCONC(:,8)*PCONC(:,24) +!PTERMS(ONIT,K071) = -K071*<ONIT>*<OH> + PTERMS(:,26,71) = -TPK%K071(:)*PCONC(:,26)*PCONC(:,14) ! -!PTERMS(NO3,K072) = -K072*<NO3>*<AROO> - PTERMS(:,8,73) = -TPK%K072(:)*PCONC(:,8)*PCONC(:,24) +!PTERMS(ALKAP,K071) = +1.00000*K071*<ONIT>*<OH> + PTERMS(:,33,71) = +1.00000*TPK%K071(:)*PCONC(:,26)*PCONC(:,14) ! -!PTERMS(AROO,K072) = -K072*<NO3>*<AROO> - PTERMS(:,24,73) = -TPK%K072(:)*PCONC(:,8)*PCONC(:,24) +!PTERMS(NO3,K072) = -K072*<HCHO>*<NO3> + PTERMS(:,5,72) = -TPK%K072(:)*PCONC(:,22)*PCONC(:,5) ! -!PTERMS(HO2,K073) = +0.16*K073*<OH>*<AROO> - PTERMS(:,10,74) = +0.16*TPK%K073(:)*PCONC(:,15)*PCONC(:,24) +!PTERMS(HNO3,K072) = +K072*<HCHO>*<NO3> + PTERMS(:,8,72) = +TPK%K072(:)*PCONC(:,22)*PCONC(:,5) ! -!PTERMS(OH,K073) = -K073*<OH>*<AROO> - PTERMS(:,15,74) = -TPK%K073(:)*PCONC(:,15)*PCONC(:,24) +!PTERMS(CO,K072) = +K072*<HCHO>*<NO3> + PTERMS(:,13,72) = +TPK%K072(:)*PCONC(:,22)*PCONC(:,5) ! -!PTERMS(AROO,K073) = -K073*<OH>*<AROO> - PTERMS(:,24,74) = -TPK%K073(:)*PCONC(:,15)*PCONC(:,24) +!PTERMS(HO2,K072) = +K072*<HCHO>*<NO3> + PTERMS(:,15,72) = +TPK%K072(:)*PCONC(:,22)*PCONC(:,5) ! -!PTERMS(RO2T,K073) = +0.1*K073*<OH>*<AROO> - PTERMS(:,85,74) = +0.1*TPK%K073(:)*PCONC(:,15)*PCONC(:,24) +!PTERMS(HCHO,K072) = -K072*<HCHO>*<NO3> + PTERMS(:,22,72) = -TPK%K072(:)*PCONC(:,22)*PCONC(:,5) ! -!PTERMS(OH,K074) = -K074*<OH>*<OLEH> - PTERMS(:,15,75) = -TPK%K074(:)*PCONC(:,15)*PCONC(:,18) +!PTERMS(NO3,K073) = -K073*<ALD>*<NO3> + PTERMS(:,5,73) = -TPK%K073(:)*PCONC(:,23)*PCONC(:,5) ! -!PTERMS(OLEH,K074) = -K074*<OH>*<OLEH> - PTERMS(:,18,75) = -TPK%K074(:)*PCONC(:,15)*PCONC(:,18) +!PTERMS(HNO3,K073) = +K073*<ALD>*<NO3> + PTERMS(:,8,73) = +TPK%K073(:)*PCONC(:,23)*PCONC(:,5) ! -!PTERMS(RO2T,K074) = +K074*<OH>*<OLEH> - PTERMS(:,85,75) = +TPK%K074(:)*PCONC(:,15)*PCONC(:,18) +!PTERMS(ALD,K073) = -K073*<ALD>*<NO3> + PTERMS(:,23,73) = -TPK%K073(:)*PCONC(:,23)*PCONC(:,5) ! -!PTERMS(NO3,K075) = -K075*<NO3>*<OLEH> - PTERMS(:,8,76) = -TPK%K075(:)*PCONC(:,8)*PCONC(:,18) +!PTERMS(CARBOP,K073) = +1.00000*K073*<ALD>*<NO3> + PTERMS(:,39,73) = +1.00000*TPK%K073(:)*PCONC(:,23)*PCONC(:,5) ! -!PTERMS(OLEH,K075) = -K075*<NO3>*<OLEH> - PTERMS(:,18,76) = -TPK%K075(:)*PCONC(:,8)*PCONC(:,18) +!PTERMS(NO2,K074) = +0.10530*K074*<CARBO>*<NO3> + PTERMS(:,4,74) = +0.10530*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! ! RETURN @@ -91233,5203 +30681,4587 @@ SUBROUTINE SUBT12 ! !Indices 241 a 260 ! -!PTERMS(RO2T,K075) = +K075*<NO3>*<OLEH> - PTERMS(:,85,76) = +TPK%K075(:)*PCONC(:,8)*PCONC(:,18) -! -!PTERMS(O3,K076) = -K076*<O3>*<OLEH> - PTERMS(:,3,77) = -TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(HO2,K076) = +0.28*K076*<O3>*<OLEH> - PTERMS(:,10,77) = +0.28*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(CO,K076) = +0.56*K076*<O3>*<OLEH> - PTERMS(:,11,77) = +0.56*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(OH,K076) = +0.36*K076*<O3>*<OLEH> - PTERMS(:,15,77) = +0.36*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(OLEH,K076) = -K076*<O3>*<OLEH> - PTERMS(:,18,77) = -TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(ALKM,K076) = +0.1*K076*<O3>*<OLEH> - PTERMS(:,20,77) = +0.1*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(HCHO,K076) = +0.5*K076*<O3>*<OLEH> - PTERMS(:,28,77) = +0.5*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(ACID,K076) = +0.12*K076*<O3>*<OLEH> - PTERMS(:,45,77) = +0.12*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(RPR1,K076) = +0.5*K076*<O3>*<OLEH> - PTERMS(:,69,77) = +0.5*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(RO2T,K076) = +0.28*K076*<O3>*<OLEH> - PTERMS(:,85,77) = +0.28*TPK%K076(:)*PCONC(:,3)*PCONC(:,18) -! -!PTERMS(OLEH,K077) = -K077*<O>*<OLEH> - PTERMS(:,18,78) = -TPK%K077(:)*TPK%O(:)*PCONC(:,18) -! -!PTERMS(ALKM,K077) = +0.5*K077*<O>*<OLEH> - PTERMS(:,20,78) = +0.5*TPK%K077(:)*TPK%O(:)*PCONC(:,18) -! -!PTERMS(RPR1,K077) = +0.4*K077*<O>*<OLEH> - PTERMS(:,69,78) = +0.4*TPK%K077(:)*TPK%O(:)*PCONC(:,18) -! -!PTERMS(RO2T,K077) = +0.2*K077*<O>*<OLEH> - PTERMS(:,85,78) = +0.2*TPK%K077(:)*TPK%O(:)*PCONC(:,18) -! -!PTERMS(OH,K078) = -K078*<OH>*<ALKM> - PTERMS(:,15,79) = -TPK%K078(:)*PCONC(:,15)*PCONC(:,20) -! -!PTERMS(ALKM,K078) = -K078*<OH>*<ALKM> - PTERMS(:,20,79) = -TPK%K078(:)*PCONC(:,15)*PCONC(:,20) -! -!PTERMS(RO2T,K078) = +K078*<OH>*<ALKM> - PTERMS(:,85,79) = +TPK%K078(:)*PCONC(:,15)*PCONC(:,20) -! -!PTERMS(HO2,K079) = +0.16*K079*<OH>*<AROL> - PTERMS(:,10,80) = +0.16*TPK%K079(:)*PCONC(:,15)*PCONC(:,23) -! -!PTERMS(OH,K079) = -K079*<OH>*<AROL> - PTERMS(:,15,80) = -TPK%K079(:)*PCONC(:,15)*PCONC(:,23) -! -! -RETURN -END SUBROUTINE SUBT12 -! -SUBROUTINE SUBT13 -! -!Indices 261 a 280 -! -!PTERMS(AROL,K079) = -K079*<OH>*<AROL> - PTERMS(:,23,80) = -TPK%K079(:)*PCONC(:,15)*PCONC(:,23) -! -!PTERMS(AROO,K079) = +0.16*K079*<OH>*<AROL> - PTERMS(:,24,80) = +0.16*TPK%K079(:)*PCONC(:,15)*PCONC(:,23) -! -!PTERMS(RO2T,K079) = +0.06*K079*<OH>*<AROL> - PTERMS(:,85,80) = +0.06*TPK%K079(:)*PCONC(:,15)*PCONC(:,23) -! -!PTERMS(HO2,K080) = +0.16*K080*<OH>*<AROH> - PTERMS(:,10,81) = +0.16*TPK%K080(:)*PCONC(:,15)*PCONC(:,22) -! -!PTERMS(OH,K080) = -K080*<OH>*<AROH> - PTERMS(:,15,81) = -TPK%K080(:)*PCONC(:,15)*PCONC(:,22) -! -!PTERMS(AROH,K080) = -K080*<OH>*<AROH> - PTERMS(:,22,81) = -TPK%K080(:)*PCONC(:,15)*PCONC(:,22) -! -!PTERMS(AROO,K080) = +0.16*K080*<OH>*<AROH> - PTERMS(:,24,81) = +0.16*TPK%K080(:)*PCONC(:,15)*PCONC(:,22) -! -!PTERMS(O3,K081) = +K081*<NO3>*<ARAL> - PTERMS(:,3,82) = +TPK%K081(:)*PCONC(:,8)*PCONC(:,25) -! -!PTERMS(HNO3,K081) = +K081*<NO3>*<ARAL> - PTERMS(:,5,82) = +TPK%K081(:)*PCONC(:,8)*PCONC(:,25) -! -!PTERMS(NO3,K081) = -K081*<NO3>*<ARAL> - PTERMS(:,8,82) = -TPK%K081(:)*PCONC(:,8)*PCONC(:,25) -! -!PTERMS(ARAL,K081) = -K081*<NO3>*<ARAL> - PTERMS(:,25,82) = -TPK%K081(:)*PCONC(:,8)*PCONC(:,25) -! -!PTERMS(ARAC,K081) = +K081*<NO3>*<ARAL> - PTERMS(:,26,82) = +TPK%K081(:)*PCONC(:,8)*PCONC(:,25) -! -!PTERMS(O3,K082) = +TPK%CF39*K082*<OH>*<ARAL> - PTERMS(:,3,83) = +TPK%CF39*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) -! -!PTERMS(HO2,K082) = +TPK%CF48*K082*<OH>*<ARAL> - PTERMS(:,10,83) = +TPK%CF48*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) -! -!PTERMS(OH,K082) = -K082*<OH>*<ARAL> - PTERMS(:,15,83) = -TPK%K082(:)*PCONC(:,15)*PCONC(:,25) -! -!PTERMS(ARAL,K082) = -K082*<OH>*<ARAL> - PTERMS(:,25,83) = -TPK%K082(:)*PCONC(:,15)*PCONC(:,25) -! -!PTERMS(ARAC,K082) = +TPK%CF39*K082*<OH>*<ARAL> - PTERMS(:,26,83) = +TPK%CF39*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) -! -!PTERMS(RPRL,K082) = +0.9983609*K082*<OH>*<ARAL> - PTERMS(:,75,83) = +0.9983609*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) -! -!PTERMS(RO2T,K082) = +TPK%CF45*K082*<OH>*<ARAL> - PTERMS(:,85,83) = +TPK%CF45*TPK%K082(:)*PCONC(:,15)*PCONC(:,25) -! -!PTERMS(HO2,K083) = +0.16*K083*<OH>*<ARAC> - PTERMS(:,10,84) = +0.16*TPK%K083(:)*PCONC(:,15)*PCONC(:,26) -! -! -RETURN -END SUBROUTINE SUBT13 -! -SUBROUTINE SUBT14 -! -!Indices 281 a 300 -! -!PTERMS(OH,K083) = -K083*<OH>*<ARAC> - PTERMS(:,15,84) = -TPK%K083(:)*PCONC(:,15)*PCONC(:,26) -! -!PTERMS(ARAC,K083) = -K083*<OH>*<ARAC> - PTERMS(:,26,84) = -TPK%K083(:)*PCONC(:,15)*PCONC(:,26) -! -!PTERMS(URG7,K083) = +0.1599999*K083*<OH>*<ARAC> - PTERMS(:,60,84) = +0.1599999*TPK%K083(:)*PCONC(:,15)*PCONC(:,26) -! -!PTERMS(RO2T,K083) = +0.1*K083*<OH>*<ARAC> - PTERMS(:,85,84) = +0.1*TPK%K083(:)*PCONC(:,15)*PCONC(:,26) -! -!PTERMS(OH,K084) = -K084*<OH>*<BIOL> - PTERMS(:,15,85) = -TPK%K084(:)*PCONC(:,15)*PCONC(:,36) -! -!PTERMS(BIOL,K084) = -K084*<OH>*<BIOL> - PTERMS(:,36,85) = -TPK%K084(:)*PCONC(:,15)*PCONC(:,36) -! -!PTERMS(RO2T,K084) = +K084*<OH>*<BIOL> - PTERMS(:,85,85) = +TPK%K084(:)*PCONC(:,15)*PCONC(:,36) -! -!PTERMS(NO3,K085) = -K085*<NO3>*<BIOL> - PTERMS(:,8,86) = -TPK%K085(:)*PCONC(:,8)*PCONC(:,36) -! -!PTERMS(BIOL,K085) = -K085*<NO3>*<BIOL> - PTERMS(:,36,86) = -TPK%K085(:)*PCONC(:,8)*PCONC(:,36) -! -!PTERMS(RO2T,K085) = +K085*<NO3>*<BIOL> - PTERMS(:,85,86) = +TPK%K085(:)*PCONC(:,8)*PCONC(:,36) -! -!PTERMS(O3,K086) = -K086*<O3>*<BIOL> - PTERMS(:,3,87) = -TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(HO2,K086) = +0.445*K086*<O3>*<BIOL> - PTERMS(:,10,87) = +0.445*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(CO,K086) = +0.445*K086*<O3>*<BIOL> - PTERMS(:,11,87) = +0.445*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(H2O2,K086) = +0.055*K086*<O3>*<BIOL> - PTERMS(:,12,87) = +0.055*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(OH,K086) = +0.89*K086*<O3>*<BIOL> - PTERMS(:,15,87) = +0.89*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(BIOL,K086) = -K086*<O3>*<BIOL> - PTERMS(:,36,87) = -TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(URG4,K086) = +5.5000000E-02*K086*<O3>*<BIOL> - PTERMS(:,53,87) = +5.5000000E-02*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(RPR3,K086) = +0.055*K086*<O3>*<BIOL> - PTERMS(:,57,87) = +0.055*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(RO2T,K086) = +0.445*K086*<O3>*<BIOL> - PTERMS(:,85,87) = +0.445*TPK%K086(:)*PCONC(:,3)*PCONC(:,36) -! -!PTERMS(BIOL,K087) = -K087*<O>*<BIOL> - PTERMS(:,36,88) = -TPK%K087(:)*TPK%O(:)*PCONC(:,36) -! -! -RETURN -END SUBROUTINE SUBT14 -! -SUBROUTINE SUBT15 -! -!Indices 301 a 320 -! -!PTERMS(URG10,K087) = +0.7500000*K087*<O>*<BIOL> - PTERMS(:,68,88) = +0.7500000*TPK%K087(:)*TPK%O(:)*PCONC(:,36) -! -!PTERMS(OH,K088) = -K088*<OH>*<BIOH> - PTERMS(:,15,89) = -TPK%K088(:)*PCONC(:,15)*PCONC(:,37) -! -!PTERMS(BIOH,K088) = -K088*<OH>*<BIOH> - PTERMS(:,37,89) = -TPK%K088(:)*PCONC(:,15)*PCONC(:,37) -! -!PTERMS(RO2T,K088) = +K088*<OH>*<BIOH> - PTERMS(:,85,89) = +TPK%K088(:)*PCONC(:,15)*PCONC(:,37) -! -!PTERMS(NO3,K089) = -K089*<NO3>*<BIOH> - PTERMS(:,8,90) = -TPK%K089(:)*PCONC(:,8)*PCONC(:,37) -! -!PTERMS(BIOH,K089) = -K089*<NO3>*<BIOH> - PTERMS(:,37,90) = -TPK%K089(:)*PCONC(:,8)*PCONC(:,37) -! -!PTERMS(RO2T,K089) = +K089*<NO3>*<BIOH> - PTERMS(:,85,90) = +TPK%K089(:)*PCONC(:,8)*PCONC(:,37) -! -!PTERMS(O3,K090) = -K090*<O3>*<BIOH> - PTERMS(:,3,91) = -TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -! -!PTERMS(CO,K090) = +0.445*K090*<O3>*<BIOH> - PTERMS(:,11,91) = +0.445*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -! -!PTERMS(H2O2,K090) = +0.055*K090*<O3>*<BIOH> - PTERMS(:,12,91) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -! -!PTERMS(OH,K090) = +0.89*K090*<O3>*<BIOH> - PTERMS(:,15,91) = +0.89*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -! -!PTERMS(BIOH,K090) = -K090*<O3>*<BIOH> - PTERMS(:,37,91) = -TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -! -!PTERMS(UR8,K090) = +0.055*K090*<O3>*<BIOH> - PTERMS(:,54,91) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -! -!PTERMS(UR7,K090) = +0.055*K090*<O3>*<BIOH> - PTERMS(:,56,91) = +0.055*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -! -!PTERMS(RO2T,K090) = +0.89*K090*<O3>*<BIOH> - PTERMS(:,85,91) = +0.89*TPK%K090(:)*PCONC(:,3)*PCONC(:,37) -! -!PTERMS(BIOH,K091) = -K091*<O>*<BIOH> - PTERMS(:,37,92) = -TPK%K091(:)*TPK%O(:)*PCONC(:,37) -! -!PTERMS(HO2,K092) = +0.16*K092*<OH>*<PAH> - PTERMS(:,10,93) = +0.16*TPK%K092(:)*PCONC(:,15)*PCONC(:,27) -! -!PTERMS(OH,K092) = -K092*<OH>*<PAH> - PTERMS(:,15,93) = -TPK%K092(:)*PCONC(:,15)*PCONC(:,27) -! -!PTERMS(PAH,K092) = -K092*<OH>*<PAH> - PTERMS(:,27,93) = -TPK%K092(:)*PCONC(:,15)*PCONC(:,27) -! -!PTERMS(URG8,K092) = +0.1600000*K092*<OH>*<PAH> - PTERMS(:,64,93) = +0.1600000*TPK%K092(:)*PCONC(:,15)*PCONC(:,27) -! -! -RETURN -END SUBROUTINE SUBT15 -! -SUBROUTINE SUBT16 -! -!Indices 321 a 340 -! -!PTERMS(RO2T,K092) = +0.1*K092*<OH>*<PAH> - PTERMS(:,85,93) = +0.1*TPK%K092(:)*PCONC(:,15)*PCONC(:,27) -! -!PTERMS(OH,K093) = -K093*<OH>*<ALKH> - PTERMS(:,15,94) = -TPK%K093(:)*PCONC(:,15)*PCONC(:,21) -! -!PTERMS(ALKH,K093) = -K093*<OH>*<ALKH> - PTERMS(:,21,94) = -TPK%K093(:)*PCONC(:,15)*PCONC(:,21) -! -!PTERMS(RO2T,K093) = +K093*<OH>*<ALKH> - PTERMS(:,85,94) = +TPK%K093(:)*PCONC(:,15)*PCONC(:,21) -! -!PTERMS(HO2,K094) = -K094*<HO2>*<RO2T> - PTERMS(:,10,95) = -TPK%K094(:)*PCONC(:,10)*PCONC(:,85) -! -!PTERMS(RO2T,K094) = -K094*<HO2>*<RO2T> - PTERMS(:,85,95) = -TPK%K094(:)*PCONC(:,10)*PCONC(:,85) -! -!PTERMS(NO,K095) = -K095*<NO>*<RO2T> - PTERMS(:,1,96) = -TPK%K095(:)*PCONC(:,1)*PCONC(:,85) -! -!PTERMS(RO2T,K095) = -K095*<NO>*<RO2T> - PTERMS(:,85,96) = -TPK%K095(:)*PCONC(:,1)*PCONC(:,85) -! -!PTERMS(RO2T,K096) = -K096*<RO2T>*<RO2T> - PTERMS(:,85,97) = -TPK%K096(:)*PCONC(:,85)*PCONC(:,85) -! -!PTERMS(RO2T,K097) = +K097*<RAD2> - PTERMS(:,85,98) = +TPK%K097(:)*TPK%RAD2(:) -! -!PTERMS(RO2T,K098) = +K098*<RAD3> - PTERMS(:,85,99) = +TPK%K098(:)*TPK%RAD3(:) -! -!PTERMS(RO2T,K099) = +K099*<RAD4> - PTERMS(:,85,100) = +TPK%K099(:)*TPK%RAD4(:) -! -!PTERMS(RO2T,K100) = +K100*<RAD5> - PTERMS(:,85,101) = +TPK%K100(:)*TPK%RAD5(:) -! -!PTERMS(RO2T,K101) = +K101*<RAD6> - PTERMS(:,85,102) = +TPK%K101(:)*TPK%RAD6(:) -! -!PTERMS(RO2T,K102) = +K102*<RAD7> - PTERMS(:,85,103) = +TPK%K102(:)*TPK%RAD7(:) -! -!PTERMS(NO2,K103) = -K103*<NO2>*<RAD1> - PTERMS(:,2,104) = -TPK%K103(:)*PCONC(:,2)*TPK%RAD1(:) -! -!PTERMS(RPR4,K103) = +K103*<NO2>*<RAD1> - PTERMS(:,61,104) = +TPK%K103(:)*PCONC(:,2)*TPK%RAD1(:) -! -!PTERMS(NO2,K104) = -K104*<NO2>*<RAD2> - PTERMS(:,2,105) = -TPK%K104(:)*PCONC(:,2)*TPK%RAD2(:) -! -!PTERMS(RPR4,K104) = +K104*<NO2>*<RAD2> - PTERMS(:,61,105) = +TPK%K104(:)*PCONC(:,2)*TPK%RAD2(:) -! -!PTERMS(NO2,K105) = -K105*<NO2>*<RAD3> - PTERMS(:,2,106) = -TPK%K105(:)*PCONC(:,2)*TPK%RAD3(:) -! -! -RETURN -END SUBROUTINE SUBT16 -! -SUBROUTINE SUBT17 -! -!Indices 341 a 360 -! -!PTERMS(NO2,K106) = -K106*<NO2>*<RAD4> - PTERMS(:,2,107) = -TPK%K106(:)*PCONC(:,2)*TPK%RAD4(:) -! -!PTERMS(NO2,K107) = -K107*<NO2>*<RAD5> - PTERMS(:,2,108) = -TPK%K107(:)*PCONC(:,2)*TPK%RAD5(:) -! -!PTERMS(RPR5,K107) = +K107*<NO2>*<RAD5> - PTERMS(:,70,108) = +TPK%K107(:)*PCONC(:,2)*TPK%RAD5(:) -! -!PTERMS(NO2,K108) = -K108*<NO2>*<RAD6> - PTERMS(:,2,109) = -TPK%K108(:)*PCONC(:,2)*TPK%RAD6(:) -! -!PTERMS(URG7,K108) = +0.9999993*K108*<NO2>*<RAD6> - PTERMS(:,60,109) = +0.9999993*TPK%K108(:)*PCONC(:,2)*TPK%RAD6(:) -! -!PTERMS(NO2,K109) = -K109*<NO2>*<RAD7> - PTERMS(:,2,110) = -TPK%K109(:)*PCONC(:,2)*TPK%RAD7(:) -! -!PTERMS(URG8,K109) = +1.0000000*K109*<NO2>*<RAD7> - PTERMS(:,64,110) = +1.0000000*TPK%K109(:)*PCONC(:,2)*TPK%RAD7(:) -! -!PTERMS(NO,K110) = -K110*<NO>*<RO21> - PTERMS(:,1,111) = -TPK%K110(:)*PCONC(:,1)*PCONC(:,86) -! -!PTERMS(NO2,K110) = +K110*<NO>*<RO21> - PTERMS(:,2,111) = +TPK%K110(:)*PCONC(:,1)*PCONC(:,86) -! -!PTERMS(HO2,K110) = +K110*<NO>*<RO21> - PTERMS(:,10,111) = +TPK%K110(:)*PCONC(:,1)*PCONC(:,86) -! -!PTERMS(HCHO,K110) = +K110*<NO>*<RO21> - PTERMS(:,28,111) = +TPK%K110(:)*PCONC(:,1)*PCONC(:,86) -! -!PTERMS(RO21,K110) = -K110*<NO>*<RO21> - PTERMS(:,86,111) = -TPK%K110(:)*PCONC(:,1)*PCONC(:,86) -! -!PTERMS(HO2,K111) = +K111*<RO2T>*<RO21> - PTERMS(:,10,112) = +TPK%K111(:)*PCONC(:,85)*PCONC(:,86) -! -!PTERMS(HCHO,K111) = +K111*<RO2T>*<RO21> - PTERMS(:,28,112) = +TPK%K111(:)*PCONC(:,85)*PCONC(:,86) -! -!PTERMS(RO2T,K111) = -K111*<RO2T>*<RO21> - PTERMS(:,85,112) = -TPK%K111(:)*PCONC(:,85)*PCONC(:,86) -! -!PTERMS(RO21,K111) = -K111*<RO2T>*<RO21> - PTERMS(:,86,112) = -TPK%K111(:)*PCONC(:,85)*PCONC(:,86) -! -!PTERMS(HO2,K112) = -K112*<HO2>*<RO21> - PTERMS(:,10,113) = -TPK%K112(:)*PCONC(:,10)*PCONC(:,86) -! -!PTERMS(OH,K112) = +K112*<HO2>*<RO21> - PTERMS(:,15,113) = +TPK%K112(:)*PCONC(:,10)*PCONC(:,86) -! -!PTERMS(HCHO,K112) = +K112*<HO2>*<RO21> - PTERMS(:,28,113) = +TPK%K112(:)*PCONC(:,10)*PCONC(:,86) -! -!PTERMS(RO21,K112) = -K112*<HO2>*<RO21> - PTERMS(:,86,113) = -TPK%K112(:)*PCONC(:,10)*PCONC(:,86) -! -! -RETURN -END SUBROUTINE SUBT17 -! -SUBROUTINE SUBT18 -! -!Indices 361 a 380 -! -!PTERMS(NO,K113) = -K113*<NO>*<RO22> - PTERMS(:,1,114) = -TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) -! -!PTERMS(NO2,K113) = +K113*<NO>*<RO22> - PTERMS(:,2,114) = +TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) -! -!PTERMS(HO2,K113) = +K113*<NO>*<RO22> - PTERMS(:,10,114) = +TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) -! -!PTERMS(HCHO,K113) = +K113*<NO>*<RO22> - PTERMS(:,28,114) = +TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) -! -!PTERMS(ALD2,K113) = +K113*<NO>*<RO22> - PTERMS(:,29,114) = +TPK%K113(:)*PCONC(:,1)*TPK%RO22(:) -! -!PTERMS(HO2,K114) = +K114*<RO2T>*<RO22> - PTERMS(:,10,115) = +TPK%K114(:)*PCONC(:,85)*TPK%RO22(:) -! -!PTERMS(HCHO,K114) = +K114*<RO2T>*<RO22> - PTERMS(:,28,115) = +TPK%K114(:)*PCONC(:,85)*TPK%RO22(:) -! -!PTERMS(ALD2,K114) = +K114*<RO2T>*<RO22> - PTERMS(:,29,115) = +TPK%K114(:)*PCONC(:,85)*TPK%RO22(:) -! -!PTERMS(RO2T,K114) = -K114*<RO2T>*<RO22> - PTERMS(:,85,115) = -TPK%K114(:)*PCONC(:,85)*TPK%RO22(:) -! -!PTERMS(HO2,K115) = -K115*<HO2>*<RO22> - PTERMS(:,10,116) = -TPK%K115(:)*PCONC(:,10)*TPK%RO22(:) -! -!PTERMS(OH,K115) = +K115*<HO2>*<RO22> - PTERMS(:,15,116) = +TPK%K115(:)*PCONC(:,10)*TPK%RO22(:) -! -!PTERMS(HCHO,K115) = +K115*<HO2>*<RO22> - PTERMS(:,28,116) = +TPK%K115(:)*PCONC(:,10)*TPK%RO22(:) -! -!PTERMS(ALD2,K115) = +K115*<HO2>*<RO22> - PTERMS(:,29,116) = +TPK%K115(:)*PCONC(:,10)*TPK%RO22(:) -! -!PTERMS(NO,K116) = -K116*<NO>*<RO23> - PTERMS(:,1,117) = -TPK%K116(:)*PCONC(:,1)*TPK%RO23(:) -! -!PTERMS(NO2,K116) = +2.*K116*<NO>*<RO23> - PTERMS(:,2,117) = +2.*TPK%K116(:)*PCONC(:,1)*TPK%RO23(:) -! -!PTERMS(HCHO,K116) = +K116*<NO>*<RO23> - PTERMS(:,28,117) = +TPK%K116(:)*PCONC(:,1)*TPK%RO23(:) -! -!PTERMS(ALD2,K116) = +K116*<NO>*<RO23> - PTERMS(:,29,117) = +TPK%K116(:)*PCONC(:,1)*TPK%RO23(:) -! -!PTERMS(NO2,K117) = +K117*<RO2T>*<RO23> - PTERMS(:,2,118) = +TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) -! -!PTERMS(HO2,K117) = +K117*<RO2T>*<RO23> - PTERMS(:,10,118) = +TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) -! -!PTERMS(HCHO,K117) = +K117*<RO2T>*<RO23> - PTERMS(:,28,118) = +TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) -! -! -RETURN -END SUBROUTINE SUBT18 -! -SUBROUTINE SUBT19 -! -!Indices 381 a 400 -! -!PTERMS(ALD2,K117) = +K117*<RO2T>*<RO23> - PTERMS(:,29,118) = +TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) -! -!PTERMS(RO2T,K117) = -K117*<RO2T>*<RO23> - PTERMS(:,85,118) = -TPK%K117(:)*PCONC(:,85)*TPK%RO23(:) -! -!PTERMS(NO2,K118) = +K118*<HO2>*<RO23> - PTERMS(:,2,119) = +TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) -! -!PTERMS(HO2,K118) = -K118*<HO2>*<RO23> - PTERMS(:,10,119) = -TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) -! -!PTERMS(OH,K118) = +K118*<HO2>*<RO23> - PTERMS(:,15,119) = +TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) -! -!PTERMS(HCHO,K118) = +K118*<HO2>*<RO23> - PTERMS(:,28,119) = +TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) -! -!PTERMS(ALD2,K118) = +K118*<HO2>*<RO23> - PTERMS(:,29,119) = +TPK%K118(:)*PCONC(:,10)*TPK%RO23(:) -! -!PTERMS(NO,K119) = -K119*<NO>*<RO24> - PTERMS(:,1,120) = -TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) -! -!PTERMS(NO2,K119) = +K119*<NO>*<RO24> - PTERMS(:,2,120) = +TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) -! -!PTERMS(HO2,K119) = +K119*<NO>*<RO24> - PTERMS(:,10,120) = +TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) -! -!PTERMS(CO,K119) = +K119*<NO>*<RO24> - PTERMS(:,11,120) = +TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) -! -!PTERMS(HCHO,K119) = +K119*<NO>*<RO24> - PTERMS(:,28,120) = +TPK%K119(:)*PCONC(:,1)*TPK%RO24(:) -! -!PTERMS(HO2,K120) = +K120*<RO2T>*<RO24> - PTERMS(:,10,121) = +TPK%K120(:)*PCONC(:,85)*TPK%RO24(:) -! -!PTERMS(CO,K120) = +K120*<RO2T>*<RO24> - PTERMS(:,11,121) = +TPK%K120(:)*PCONC(:,85)*TPK%RO24(:) -! -!PTERMS(HCHO,K120) = +K120*<RO2T>*<RO24> - PTERMS(:,28,121) = +TPK%K120(:)*PCONC(:,85)*TPK%RO24(:) -! -!PTERMS(RO2T,K120) = -K120*<RO2T>*<RO24> - PTERMS(:,85,121) = -TPK%K120(:)*PCONC(:,85)*TPK%RO24(:) -! -!PTERMS(HO2,K121) = -K121*<HO2>*<RO24> - PTERMS(:,10,122) = -TPK%K121(:)*PCONC(:,10)*TPK%RO24(:) -! -!PTERMS(CO,K121) = +K121*<HO2>*<RO24> - PTERMS(:,11,122) = +TPK%K121(:)*PCONC(:,10)*TPK%RO24(:) -! -!PTERMS(OH,K121) = +K121*<HO2>*<RO24> - PTERMS(:,15,122) = +TPK%K121(:)*PCONC(:,10)*TPK%RO24(:) -! -!PTERMS(HCHO,K121) = +K121*<HO2>*<RO24> - PTERMS(:,28,122) = +TPK%K121(:)*PCONC(:,10)*TPK%RO24(:) -! -! -RETURN -END SUBROUTINE SUBT19 -! -SUBROUTINE SUBT20 -! -!Indices 401 a 420 -! -!PTERMS(NO,K122) = -K122*<NO>*<RO25> - PTERMS(:,1,123) = -TPK%K122(:)*PCONC(:,1)*PCONC(:,87) -! -!PTERMS(NO2,K122) = +TPK%CF4*K122*<NO>*<RO25> - PTERMS(:,2,123) = +TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87) -! -!PTERMS(HO2,K122) = +TPK%CF4*K122*<NO>*<RO25> - PTERMS(:,10,123) = +TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87) -! -!PTERMS(ALKL,K122) = +TPK%CF3*K122*<NO>*<RO25> - PTERMS(:,19,123) = +TPK%CF3*TPK%K122(:)*PCONC(:,1)*PCONC(:,87) -! -!PTERMS(ALD2,K122) = +TPK%CF4*K122*<NO>*<RO25> - PTERMS(:,29,123) = +TPK%CF4*TPK%K122(:)*PCONC(:,1)*PCONC(:,87) -! -!PTERMS(RO25,K122) = -K122*<NO>*<RO25> - PTERMS(:,87,123) = -TPK%K122(:)*PCONC(:,1)*PCONC(:,87) -! -!PTERMS(HO2,K123) = +K123*<RO2T>*<RO25> - PTERMS(:,10,124) = +TPK%K123(:)*PCONC(:,85)*PCONC(:,87) -! -!PTERMS(ALD2,K123) = +K123*<RO2T>*<RO25> - PTERMS(:,29,124) = +TPK%K123(:)*PCONC(:,85)*PCONC(:,87) -! -!PTERMS(RO2T,K123) = -K123*<RO2T>*<RO25> - PTERMS(:,85,124) = -TPK%K123(:)*PCONC(:,85)*PCONC(:,87) -! -!PTERMS(RO25,K123) = -K123*<RO2T>*<RO25> - PTERMS(:,87,124) = -TPK%K123(:)*PCONC(:,85)*PCONC(:,87) -! -!PTERMS(HO2,K124) = -K124*<HO2>*<RO25> - PTERMS(:,10,125) = -TPK%K124(:)*PCONC(:,10)*PCONC(:,87) -! -!PTERMS(OH,K124) = +K124*<HO2>*<RO25> - PTERMS(:,15,125) = +TPK%K124(:)*PCONC(:,10)*PCONC(:,87) -! -!PTERMS(ALD2,K124) = +K124*<HO2>*<RO25> - PTERMS(:,29,125) = +TPK%K124(:)*PCONC(:,10)*PCONC(:,87) -! -!PTERMS(RO25,K124) = -K124*<HO2>*<RO25> - PTERMS(:,87,125) = -TPK%K124(:)*PCONC(:,10)*PCONC(:,87) -! -!PTERMS(NO,K125) = -K125*<NO>*<RO26> - PTERMS(:,1,126) = -TPK%K125(:)*PCONC(:,1)*TPK%RO26(:) -! -!PTERMS(NO2,K125) = +K125*<NO>*<RO26> - PTERMS(:,2,126) = +TPK%K125(:)*PCONC(:,1)*TPK%RO26(:) -! -!PTERMS(RO2T,K125) = +K125*<NO>*<RO26> - PTERMS(:,85,126) = +TPK%K125(:)*PCONC(:,1)*TPK%RO26(:) -! -!PTERMS(RO25,K125) = +K125*<NO>*<RO26> - PTERMS(:,87,126) = +TPK%K125(:)*PCONC(:,1)*TPK%RO26(:) -! -!PTERMS(NO2,K126) = -K126*<NO2>*<RO26> - PTERMS(:,2,127) = -TPK%K126(:)*PCONC(:,2)*TPK%RO26(:) -! -!PTERMS(PAN1,K126) = +K126*<NO2>*<RO26> - PTERMS(:,77,127) = +TPK%K126(:)*PCONC(:,2)*TPK%RO26(:) -! -! -RETURN -END SUBROUTINE SUBT20 -! -SUBROUTINE SUBT21 -! -!Indices 421 a 440 -! -!PTERMS(NO2,K127) = -K127*<NO2>*<RO28> - PTERMS(:,2,128) = -TPK%K127(:)*PCONC(:,2)*TPK%RO28(:) -! -!PTERMS(PAN2,K127) = +K127*<NO2>*<RO28> - PTERMS(:,78,128) = +TPK%K127(:)*PCONC(:,2)*TPK%RO28(:) -! -!PTERMS(NO2,K128) = -K128*<NO2>*<RO239> - PTERMS(:,2,129) = -TPK%K128(:)*PCONC(:,2)*TPK%RO239(:) -! -!PTERMS(PAN3,K128) = +K128*<NO2>*<RO239> - PTERMS(:,79,129) = +TPK%K128(:)*PCONC(:,2)*TPK%RO239(:) -! -!PTERMS(NO2,K129) = -K129*<NO2>*<RO248> - PTERMS(:,2,130) = -TPK%K129(:)*PCONC(:,2)*TPK%RO248(:) -! -!PTERMS(PAN4,K129) = +K129*<NO2>*<RO248> - PTERMS(:,80,130) = +TPK%K129(:)*PCONC(:,2)*TPK%RO248(:) -! -!PTERMS(NO2,K130) = -K130*<NO2>*<RO250> - PTERMS(:,2,131) = -TPK%K130(:)*PCONC(:,2)*TPK%RO250(:) -! -!PTERMS(APAN,K130) = +K130*<NO2>*<RO250> - PTERMS(:,76,131) = +TPK%K130(:)*PCONC(:,2)*TPK%RO250(:) -! -!PTERMS(NO2,K131) = -K131*<NO2>*<RO254> - PTERMS(:,2,132) = -TPK%K131(:)*PCONC(:,2)*TPK%RO254(:) -! -!PTERMS(PAN6,K131) = +K131*<NO2>*<RO254> - PTERMS(:,81,132) = +TPK%K131(:)*PCONC(:,2)*TPK%RO254(:) -! -!PTERMS(NO2,K132) = -K132*<NO2>*<RO255> - PTERMS(:,2,133) = -TPK%K132(:)*PCONC(:,2)*TPK%RO255(:) -! -!PTERMS(PAN7,K132) = +K132*<NO2>*<RO255> - PTERMS(:,82,133) = +TPK%K132(:)*PCONC(:,2)*TPK%RO255(:) -! -!PTERMS(NO2,K133) = -K133*<NO2>*<RO257> - PTERMS(:,2,134) = -TPK%K133(:)*PCONC(:,2)*TPK%RO257(:) -! -!PTERMS(APAN,K133) = +K133*<NO2>*<RO257> - PTERMS(:,76,134) = +TPK%K133(:)*PCONC(:,2)*TPK%RO257(:) -! -!PTERMS(NO2,K134) = -K134*<NO2>*<RO258> - PTERMS(:,2,135) = -TPK%K134(:)*PCONC(:,2)*TPK%RO258(:) -! -!PTERMS(PN10,K134) = +K134*<NO2>*<RO258> - PTERMS(:,84,135) = +TPK%K134(:)*PCONC(:,2)*TPK%RO258(:) -! -!PTERMS(NO2,K135) = +K135*<PAN1> - PTERMS(:,2,136) = +TPK%K135(:)*PCONC(:,77) -! -!PTERMS(PAN1,K135) = -K135*<PAN1> - PTERMS(:,77,136) = -TPK%K135(:)*PCONC(:,77) -! -!PTERMS(RO2T,K135) = +K135*<PAN1> - PTERMS(:,85,136) = +TPK%K135(:)*PCONC(:,77) -! -!PTERMS(NO2,K136) = +K136*<PAN2> - PTERMS(:,2,137) = +TPK%K136(:)*PCONC(:,78) -! -! -RETURN -END SUBROUTINE SUBT21 -! -SUBROUTINE SUBT22 -! -!Indices 441 a 460 -! -!PTERMS(PAN2,K136) = -K136*<PAN2> - PTERMS(:,78,137) = -TPK%K136(:)*PCONC(:,78) -! -!PTERMS(RO2T,K136) = +K136*<PAN2> - PTERMS(:,85,137) = +TPK%K136(:)*PCONC(:,78) -! -!PTERMS(NO2,K137) = +K137*<PAN3> - PTERMS(:,2,138) = +TPK%K137(:)*PCONC(:,79) -! -!PTERMS(PAN3,K137) = -K137*<PAN3> - PTERMS(:,79,138) = -TPK%K137(:)*PCONC(:,79) -! -!PTERMS(RO2T,K137) = +K137*<PAN3> - PTERMS(:,85,138) = +TPK%K137(:)*PCONC(:,79) -! -!PTERMS(NO2,K138) = +K138*<PN10> - PTERMS(:,2,139) = +TPK%K138(:)*PCONC(:,84) -! -!PTERMS(PN10,K138) = -K138*<PN10> - PTERMS(:,84,139) = -TPK%K138(:)*PCONC(:,84) -! -!PTERMS(RO2T,K138) = +K138*<PN10> - PTERMS(:,85,139) = +TPK%K138(:)*PCONC(:,84) -! -!PTERMS(NO2,K139) = +1.0000000*K139*<APAN> - PTERMS(:,2,140) = +1.0000000*TPK%K139(:)*PCONC(:,76) -! -!PTERMS(APAN,K139) = -K139*<APAN> - PTERMS(:,76,140) = -TPK%K139(:)*PCONC(:,76) -! -!PTERMS(RO2T,K139) = +1.0000000*K139*<APAN> - PTERMS(:,85,140) = +1.0000000*TPK%K139(:)*PCONC(:,76) -! -!PTERMS(NO2,K140) = +K140*<PAN6> - PTERMS(:,2,141) = +TPK%K140(:)*PCONC(:,81) -! -!PTERMS(PAN6,K140) = -K140*<PAN6> - PTERMS(:,81,141) = -TPK%K140(:)*PCONC(:,81) -! -!PTERMS(RO2T,K140) = +K140*<PAN6> - PTERMS(:,85,141) = +TPK%K140(:)*PCONC(:,81) -! -!PTERMS(NO2,K141) = +K141*<PAN4> - PTERMS(:,2,142) = +TPK%K141(:)*PCONC(:,80) -! -!PTERMS(PAN4,K141) = -K141*<PAN4> - PTERMS(:,80,142) = -TPK%K141(:)*PCONC(:,80) -! -!PTERMS(RO2T,K141) = +K141*<PAN4> - PTERMS(:,85,142) = +TPK%K141(:)*PCONC(:,80) -! -!PTERMS(O3,K142) = +K142*<HO2>*<RO26> - PTERMS(:,3,143) = +TPK%K142(:)*PCONC(:,10)*TPK%RO26(:) -! -!PTERMS(HO2,K142) = -K142*<HO2>*<RO26> - PTERMS(:,10,143) = -TPK%K142(:)*PCONC(:,10)*TPK%RO26(:) -! -!PTERMS(ORA2,K142) = +K142*<HO2>*<RO26> - PTERMS(:,44,143) = +TPK%K142(:)*PCONC(:,10)*TPK%RO26(:) -! -! -RETURN -END SUBROUTINE SUBT22 -! -SUBROUTINE SUBT23 -! -!Indices 461 a 480 -! -!PTERMS(ACID,K142) = +K142*<HO2>*<RO26> - PTERMS(:,45,143) = +TPK%K142(:)*PCONC(:,10)*TPK%RO26(:) +!PTERMS(NO3,K074) = -K074*<CARBO>*<NO3> + PTERMS(:,5,74) = -TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(RO2T,K143) = -K143*<RO2T>*<RO26> - PTERMS(:,85,144) = -TPK%K143(:)*PCONC(:,85)*TPK%RO26(:) +!PTERMS(HNO3,K074) = +0.91567*K074*<CARBO>*<NO3> + PTERMS(:,8,74) = +0.91567*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(RO25,K143) = +K143*<RO2T>*<RO26> - PTERMS(:,87,144) = +TPK%K143(:)*PCONC(:,85)*TPK%RO26(:) +!PTERMS(CO,K074) = +1.33723*K074*<CARBO>*<NO3> + PTERMS(:,13,74) = +1.33723*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(NO,K144) = -K144*<NO>*<RO27> - PTERMS(:,1,145) = -TPK%K144(:)*PCONC(:,1)*TPK%RO27(:) +!PTERMS(HO2,K074) = +0.63217*K074*<CARBO>*<NO3> + PTERMS(:,15,74) = +0.63217*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(NO2,K144) = +K144*<NO>*<RO27> - PTERMS(:,2,145) = +TPK%K144(:)*PCONC(:,1)*TPK%RO27(:) +!PTERMS(ALD,K074) = +0.05265*K074*<CARBO>*<NO3> + PTERMS(:,23,74) = +0.05265*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(ALD2,K144) = +K144*<NO>*<RO27> - PTERMS(:,29,145) = +TPK%K144(:)*PCONC(:,1)*TPK%RO27(:) +!PTERMS(KET,K074) = +0.00632*K074*<CARBO>*<NO3> + PTERMS(:,24,74) = +0.00632*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(RO2T,K144) = +K144*<NO>*<RO27> - PTERMS(:,85,145) = +TPK%K144(:)*PCONC(:,1)*TPK%RO27(:) +!PTERMS(CARBO,K074) = -K074*<CARBO>*<NO3> + PTERMS(:,25,74) = -TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(ALD2,K145) = +K145*<RO2T>*<RO27> - PTERMS(:,29,146) = +TPK%K145(:)*PCONC(:,85)*TPK%RO27(:) +!PTERMS(CARBOP,K074) = +0.38881*K074*<CARBO>*<NO3> + PTERMS(:,39,74) = +0.38881*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(RO2T,K145) = -K145*<RO2T>*<RO27> - PTERMS(:,85,146) = -TPK%K145(:)*PCONC(:,85)*TPK%RO27(:) +!PTERMS(OLN,K074) = +0.00000*K074*<CARBO>*<NO3> + PTERMS(:,40,74) = +0.00000*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(HO2,K146) = -K146*<HO2>*<RO27> - PTERMS(:,10,147) = -TPK%K146(:)*PCONC(:,10)*TPK%RO27(:) +!PTERMS(XO2,K074) = +0.10530*K074*<CARBO>*<NO3> + PTERMS(:,41,74) = +0.10530*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(OH,K146) = +K146*<HO2>*<RO27> - PTERMS(:,15,147) = +TPK%K146(:)*PCONC(:,10)*TPK%RO27(:) +!PTERMS(NO3,K075) = -K075*<ARO>*<NO3> + PTERMS(:,5,75) = -TPK%K075(:)*PCONC(:,21)*PCONC(:,5) ! -!PTERMS(ALD2,K146) = +K146*<HO2>*<RO27> - PTERMS(:,29,147) = +TPK%K146(:)*PCONC(:,10)*TPK%RO27(:) +!PTERMS(HNO3,K075) = +K075*<ARO>*<NO3> + PTERMS(:,8,75) = +TPK%K075(:)*PCONC(:,21)*PCONC(:,5) ! -!PTERMS(RO2T,K146) = +K146*<HO2>*<RO27> - PTERMS(:,85,147) = +TPK%K146(:)*PCONC(:,10)*TPK%RO27(:) +!PTERMS(ARO,K075) = -K075*<ARO>*<NO3> + PTERMS(:,21,75) = -TPK%K075(:)*PCONC(:,21)*PCONC(:,5) ! -!PTERMS(NO,K147) = -K147*<NO>*<RO28> - PTERMS(:,1,148) = -TPK%K147(:)*PCONC(:,1)*TPK%RO28(:) +!PTERMS(PHO,K075) = +K075*<ARO>*<NO3> + PTERMS(:,36,75) = +TPK%K075(:)*PCONC(:,21)*PCONC(:,5) ! -!PTERMS(NO2,K147) = +K147*<NO>*<RO28> - PTERMS(:,2,148) = +TPK%K147(:)*PCONC(:,1)*TPK%RO28(:) +!PTERMS(NO3,K076) = -K076*<ALKE>*<NO3> + PTERMS(:,5,76) = -TPK%K076(:)*PCONC(:,19)*PCONC(:,5) ! -!PTERMS(RO2T,K147) = +K147*<NO>*<RO28> - PTERMS(:,85,148) = +TPK%K147(:)*PCONC(:,1)*TPK%RO28(:) +!PTERMS(ALKE,K076) = -K076*<ALKE>*<NO3> + PTERMS(:,19,76) = -TPK%K076(:)*PCONC(:,19)*PCONC(:,5) ! -!PTERMS(RO21,K147) = +K147*<NO>*<RO28> - PTERMS(:,86,148) = +TPK%K147(:)*PCONC(:,1)*TPK%RO28(:) +!PTERMS(CARBO,K076) = +0.00000*K076*<ALKE>*<NO3> + PTERMS(:,25,76) = +0.00000*TPK%K076(:)*PCONC(:,19)*PCONC(:,5) ! -!PTERMS(O3,K148) = +K148*<HO2>*<RO28> - PTERMS(:,3,149) = +TPK%K148(:)*PCONC(:,10)*TPK%RO28(:) +!PTERMS(OLN,K076) = +0.93768*K076*<ALKE>*<NO3> + PTERMS(:,40,76) = +0.93768*TPK%K076(:)*PCONC(:,19)*PCONC(:,5) ! -!PTERMS(HO2,K148) = -K148*<HO2>*<RO28> - PTERMS(:,10,149) = -TPK%K148(:)*PCONC(:,10)*TPK%RO28(:) +!PTERMS(NO3,K077) = -K077*<BIO>*<NO3> + PTERMS(:,5,77) = -TPK%K077(:)*PCONC(:,20)*PCONC(:,5) ! -!PTERMS(ORA2,K148) = +K148*<HO2>*<RO28> - PTERMS(:,44,149) = +TPK%K148(:)*PCONC(:,10)*TPK%RO28(:) +!PTERMS(BIO,K077) = -K077*<BIO>*<NO3> + PTERMS(:,20,77) = -TPK%K077(:)*PCONC(:,20)*PCONC(:,5) ! ! RETURN -END SUBROUTINE SUBT23 +END SUBROUTINE SUBT12 ! -SUBROUTINE SUBT24 +SUBROUTINE SUBT13 ! -!Indices 481 a 500 +!Indices 261 a 280 ! -!PTERMS(RO2T,K149) = -K149*<RO2T>*<RO28> - PTERMS(:,85,150) = -TPK%K149(:)*PCONC(:,85)*TPK%RO28(:) +!PTERMS(CARBO,K077) = +0.91741*K077*<BIO>*<NO3> + PTERMS(:,25,77) = +0.91741*TPK%K077(:)*PCONC(:,20)*PCONC(:,5) ! -!PTERMS(RO21,K149) = +K149*<RO2T>*<RO28> - PTERMS(:,86,150) = +TPK%K149(:)*PCONC(:,85)*TPK%RO28(:) +!PTERMS(OLN,K077) = +1.00000*K077*<BIO>*<NO3> + PTERMS(:,40,77) = +1.00000*TPK%K077(:)*PCONC(:,20)*PCONC(:,5) ! -!PTERMS(NO,K150) = -K150*<NO>*<RO29> - PTERMS(:,1,151) = -TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) +!PTERMS(NO2,K078) = +0.40*K078*<PAN>*<NO3> + PTERMS(:,4,78) = +0.40*TPK%K078(:)*PCONC(:,27)*PCONC(:,5) ! -!PTERMS(NO2,K150) = +TPK%CF6*K150*<NO>*<RO29> - PTERMS(:,2,151) = +TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) +!PTERMS(NO3,K078) = -K078*<PAN>*<NO3> + PTERMS(:,5,78) = -TPK%K078(:)*PCONC(:,27)*PCONC(:,5) ! -!PTERMS(HO2,K150) = +TPK%CF6*K150*<NO>*<RO29> - PTERMS(:,10,151) = +TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) +!PTERMS(HCHO,K078) = +0.40*K078*<PAN>*<NO3> + PTERMS(:,22,78) = +0.40*TPK%K078(:)*PCONC(:,27)*PCONC(:,5) ! -!PTERMS(OLEL,K150) = +TPK%CF5*K150*<NO>*<RO29> - PTERMS(:,17,151) = +TPK%CF5*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) +!PTERMS(ONIT,K078) = +0.60*K078*<PAN>*<NO3> + PTERMS(:,26,78) = +0.60*TPK%K078(:)*PCONC(:,27)*PCONC(:,5) ! -!PTERMS(HCHO,K150) = +TPK%CF6*K150*<NO>*<RO29> - PTERMS(:,28,151) = +TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) +!PTERMS(PAN,K078) = -K078*<PAN>*<NO3> + PTERMS(:,27,78) = -TPK%K078(:)*PCONC(:,27)*PCONC(:,5) ! -!PTERMS(MVK,K150) = +TPK%CF6*K150*<NO>*<RO29> - PTERMS(:,39,151) = +TPK%CF6*TPK%K150(:)*PCONC(:,1)*TPK%RO29(:) +!PTERMS(XO2,K078) = +K078*<PAN>*<NO3> + PTERMS(:,41,78) = +TPK%K078(:)*PCONC(:,27)*PCONC(:,5) ! -!PTERMS(HO2,K151) = +K151*<RO2T>*<RO29> - PTERMS(:,10,152) = +TPK%K151(:)*PCONC(:,85)*TPK%RO29(:) +!PTERMS(O3,K079) = -K079*<ALKE>*<O3> + PTERMS(:,1,79) = -TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(HCHO,K151) = +K151*<RO2T>*<RO29> - PTERMS(:,28,152) = +TPK%K151(:)*PCONC(:,85)*TPK%RO29(:) +!PTERMS(H2O2,K079) = +0.01833*K079*<ALKE>*<O3> + PTERMS(:,2,79) = +0.01833*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(MVK,K151) = +K151*<RO2T>*<RO29> - PTERMS(:,39,152) = +TPK%K151(:)*PCONC(:,85)*TPK%RO29(:) +!PTERMS(CO,K079) = +0.35120*K079*<ALKE>*<O3> + PTERMS(:,13,79) = +0.35120*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(RO2T,K151) = -K151*<RO2T>*<RO29> - PTERMS(:,85,152) = -TPK%K151(:)*PCONC(:,85)*TPK%RO29(:) +!PTERMS(OH,K079) = +0.39435*K079*<ALKE>*<O3> + PTERMS(:,14,79) = +0.39435*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(HO2,K152) = -K152*<HO2>*<RO29> - PTERMS(:,10,153) = -TPK%K152(:)*PCONC(:,10)*TPK%RO29(:) +!PTERMS(HO2,K079) = +0.23451*K079*<ALKE>*<O3> + PTERMS(:,15,79) = +0.23451*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(OH,K152) = +K152*<HO2>*<RO29> - PTERMS(:,15,153) = +TPK%K152(:)*PCONC(:,10)*TPK%RO29(:) +!PTERMS(CH4,K079) = +0.04300*K079*<ALKE>*<O3> + PTERMS(:,16,79) = +0.04300*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(HCHO,K152) = +K152*<HO2>*<RO29> - PTERMS(:,28,153) = +TPK%K152(:)*PCONC(:,10)*TPK%RO29(:) +!PTERMS(ETH,K079) = +0.03196*K079*<ALKE>*<O3> + PTERMS(:,17,79) = +0.03196*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(MVK,K152) = +K152*<HO2>*<RO29> - PTERMS(:,39,153) = +TPK%K152(:)*PCONC(:,10)*TPK%RO29(:) +!PTERMS(ALKE,K079) = -K079*<ALKE>*<O3> + PTERMS(:,19,79) = -TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(NO,K153) = -K153*<NO>*<RO210> - PTERMS(:,1,154) = -TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) +!PTERMS(HCHO,K079) = +0.48290*K079*<ALKE>*<O3> + PTERMS(:,22,79) = +0.48290*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(NO2,K153) = +K153*<NO>*<RO210> - PTERMS(:,2,154) = +TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) +!PTERMS(ALD,K079) = +0.51468*K079*<ALKE>*<O3> + PTERMS(:,23,79) = +0.51468*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(HO2,K153) = +K153*<NO>*<RO210> - PTERMS(:,10,154) = +TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) +!PTERMS(KET,K079) = +0.07377*K079*<ALKE>*<O3> + PTERMS(:,24,79) = +0.07377*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(HCHO,K153) = +K153*<NO>*<RO210> - PTERMS(:,28,154) = +TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) +!PTERMS(CARBO,K079) = +0.00000*K079*<ALKE>*<O3> + PTERMS(:,25,79) = +0.00000*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! ! RETURN -END SUBROUTINE SUBT24 +END SUBROUTINE SUBT13 ! -SUBROUTINE SUBT25 +SUBROUTINE SUBT14 ! -!Indices 501 a 520 +!Indices 281 a 300 ! -!PTERMS(MCR,K153) = +K153*<NO>*<RO210> - PTERMS(:,40,154) = +TPK%K153(:)*PCONC(:,1)*TPK%RO210(:) +!PTERMS(ORA1,K079) = +0.15343*K079*<ALKE>*<O3> + PTERMS(:,30,79) = +0.15343*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(HO2,K154) = +K154*<RO2T>*<RO210> - PTERMS(:,10,155) = +TPK%K154(:)*PCONC(:,85)*TPK%RO210(:) +!PTERMS(ORA2,K079) = +0.08143*K079*<ALKE>*<O3> + PTERMS(:,31,79) = +0.08143*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(HCHO,K154) = +K154*<RO2T>*<RO210> - PTERMS(:,28,155) = +TPK%K154(:)*PCONC(:,85)*TPK%RO210(:) +!PTERMS(MO2,K079) = +0.13966*K079*<ALKE>*<O3> + PTERMS(:,32,79) = +0.13966*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(MCR,K154) = +K154*<RO2T>*<RO210> - PTERMS(:,40,155) = +TPK%K154(:)*PCONC(:,85)*TPK%RO210(:) +!PTERMS(ALKAP,K079) = +0.09815*K079*<ALKE>*<O3> + PTERMS(:,33,79) = +0.09815*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(RO2T,K154) = -K154*<RO2T>*<RO210> - PTERMS(:,85,155) = -TPK%K154(:)*PCONC(:,85)*TPK%RO210(:) +!PTERMS(CARBOP,K079) = +0.05705*K079*<ALKE>*<O3> + PTERMS(:,39,79) = +0.05705*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(HO2,K155) = -K155*<HO2>*<RO210> - PTERMS(:,10,156) = -TPK%K155(:)*PCONC(:,10)*TPK%RO210(:) +!PTERMS(XO2,K079) = +0.00000*K079*<ALKE>*<O3> + PTERMS(:,41,79) = +0.00000*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(OH,K155) = +K155*<HO2>*<RO210> - PTERMS(:,15,156) = +TPK%K155(:)*PCONC(:,10)*TPK%RO210(:) +!PTERMS(O3,K080) = -K080*<BIO>*<O3> + PTERMS(:,1,80) = -TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(HCHO,K155) = +K155*<HO2>*<RO210> - PTERMS(:,28,156) = +TPK%K155(:)*PCONC(:,10)*TPK%RO210(:) +!PTERMS(H2O2,K080) = +0.00100*K080*<BIO>*<O3> + PTERMS(:,2,80) = +0.00100*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(MCR,K155) = +K155*<HO2>*<RO210> - PTERMS(:,40,156) = +TPK%K155(:)*PCONC(:,10)*TPK%RO210(:) +!PTERMS(CO,K080) = +0.36000*K080*<BIO>*<O3> + PTERMS(:,13,80) = +0.36000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(NO,K156) = -K156*<NO>*<RO211> - PTERMS(:,1,157) = -TPK%K156(:)*PCONC(:,1)*TPK%RO211(:) +!PTERMS(OH,K080) = +0.28000*K080*<BIO>*<O3> + PTERMS(:,14,80) = +0.28000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(NO2,K156) = +2.*K156*<NO>*<RO211> - PTERMS(:,2,157) = +2.*TPK%K156(:)*PCONC(:,1)*TPK%RO211(:) +!PTERMS(HO2,K080) = +0.30000*K080*<BIO>*<O3> + PTERMS(:,15,80) = +0.30000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(HCHO,K156) = +K156*<NO>*<RO211> - PTERMS(:,28,157) = +TPK%K156(:)*PCONC(:,1)*TPK%RO211(:) +!PTERMS(ALKE,K080) = +0.37388*K080*<BIO>*<O3> + PTERMS(:,19,80) = +0.37388*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(MVK,K156) = +K156*<NO>*<RO211> - PTERMS(:,39,157) = +TPK%K156(:)*PCONC(:,1)*TPK%RO211(:) +!PTERMS(BIO,K080) = -K080*<BIO>*<O3> + PTERMS(:,20,80) = -TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(NO2,K157) = +K157*<RO2T>*<RO211> - PTERMS(:,2,158) = +TPK%K157(:)*PCONC(:,85)*TPK%RO211(:) +!PTERMS(HCHO,K080) = +0.90000*K080*<BIO>*<O3> + PTERMS(:,22,80) = +0.90000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(HCHO,K157) = +K157*<RO2T>*<RO211> - PTERMS(:,28,158) = +TPK%K157(:)*PCONC(:,85)*TPK%RO211(:) +!PTERMS(ALD,K080) = +0.00000*K080*<BIO>*<O3> + PTERMS(:,23,80) = +0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(MVK,K157) = +K157*<RO2T>*<RO211> - PTERMS(:,39,158) = +TPK%K157(:)*PCONC(:,85)*TPK%RO211(:) +!PTERMS(KET,K080) = +0.00000*K080*<BIO>*<O3> + PTERMS(:,24,80) = +0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(RO2T,K157) = -K157*<RO2T>*<RO211> - PTERMS(:,85,158) = -TPK%K157(:)*PCONC(:,85)*TPK%RO211(:) +!PTERMS(CARBO,K080) = +0.39754*K080*<BIO>*<O3> + PTERMS(:,25,80) = +0.39754*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(NO2,K158) = +K158*<HO2>*<RO211> - PTERMS(:,2,159) = +TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) +!PTERMS(ORA1,K080) = +0.15000*K080*<BIO>*<O3> + PTERMS(:,30,80) = +0.15000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(HO2,K158) = -K158*<HO2>*<RO211> - PTERMS(:,10,159) = -TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) +!PTERMS(ORA2,K080) = +0.00000*K080*<BIO>*<O3> + PTERMS(:,31,80) = +0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(OH,K158) = +K158*<HO2>*<RO211> - PTERMS(:,15,159) = +TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) +!PTERMS(MO2,K080) = +0.03000*K080*<BIO>*<O3> + PTERMS(:,32,80) = +0.03000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! ! RETURN -END SUBROUTINE SUBT25 +END SUBROUTINE SUBT14 ! -SUBROUTINE SUBT26 +SUBROUTINE SUBT15 ! -!Indices 521 a 540 +!Indices 301 a 320 ! -!PTERMS(HCHO,K158) = +K158*<HO2>*<RO211> - PTERMS(:,28,159) = +TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) +!PTERMS(ALKAP,K080) = +0.00000*K080*<BIO>*<O3> + PTERMS(:,33,80) = +0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(MVK,K158) = +K158*<HO2>*<RO211> - PTERMS(:,39,159) = +TPK%K158(:)*PCONC(:,10)*TPK%RO211(:) +!PTERMS(CARBOP,K080) = +0.17000*K080*<BIO>*<O3> + PTERMS(:,39,80) = +0.17000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(NO,K159) = -K159*<NO>*<RO212> - PTERMS(:,1,160) = -TPK%K159(:)*PCONC(:,1)*TPK%RO212(:) +!PTERMS(XO2,K080) = +0.13000*K080*<BIO>*<O3> + PTERMS(:,41,80) = +0.13000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(NO2,K159) = +2.*K159*<NO>*<RO212> - PTERMS(:,2,160) = +2.*TPK%K159(:)*PCONC(:,1)*TPK%RO212(:) +!PTERMS(O3,K081) = -K081*<CARBO>*<O3> + PTERMS(:,1,81) = -TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(HCHO,K159) = +K159*<NO>*<RO212> - PTERMS(:,28,160) = +TPK%K159(:)*PCONC(:,1)*TPK%RO212(:) +!PTERMS(CO,K081) = +0.64728*K081*<CARBO>*<O3> + PTERMS(:,13,81) = +0.64728*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(MCR,K159) = +K159*<NO>*<RO212> - PTERMS(:,40,160) = +TPK%K159(:)*PCONC(:,1)*TPK%RO212(:) +!PTERMS(OH,K081) = +0.20595*K081*<CARBO>*<O3> + PTERMS(:,14,81) = +0.20595*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(NO2,K160) = +K160*<RO2T>*<RO212> - PTERMS(:,2,161) = +TPK%K160(:)*PCONC(:,85)*TPK%RO212(:) +!PTERMS(HO2,K081) = +0.28441*K081*<CARBO>*<O3> + PTERMS(:,15,81) = +0.28441*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(HCHO,K160) = +K160*<RO2T>*<RO212> - PTERMS(:,28,161) = +TPK%K160(:)*PCONC(:,85)*TPK%RO212(:) +!PTERMS(HCHO,K081) = +0.00000*K081*<CARBO>*<O3> + PTERMS(:,22,81) = +0.00000*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(MCR,K160) = +K160*<RO2T>*<RO212> - PTERMS(:,40,161) = +TPK%K160(:)*PCONC(:,85)*TPK%RO212(:) +!PTERMS(ALD,K081) = +0.15692*K081*<CARBO>*<O3> + PTERMS(:,23,81) = +0.15692*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(RO2T,K160) = -K160*<RO2T>*<RO212> - PTERMS(:,85,161) = -TPK%K160(:)*PCONC(:,85)*TPK%RO212(:) +!PTERMS(CARBO,K081) = -K081*<CARBO>*<O3> + PTERMS(:,25,81) = -TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(NO2,K161) = +K161*<HO2>*<RO212> - PTERMS(:,2,162) = +TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) +!PTERMS(OP2,K081) = +0.10149*K081*<CARBO>*<O3> + PTERMS(:,29,81) = +0.10149*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(HO2,K161) = -K161*<HO2>*<RO212> - PTERMS(:,10,162) = -TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) +!PTERMS(ORA1,K081) = +0.10788*K081*<CARBO>*<O3> + PTERMS(:,30,81) = +0.10788*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(OH,K161) = +K161*<HO2>*<RO212> - PTERMS(:,15,162) = +TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) +!PTERMS(ORA2,K081) = +0.20595*K081*<CARBO>*<O3> + PTERMS(:,31,81) = +0.20595*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(HCHO,K161) = +K161*<HO2>*<RO212> - PTERMS(:,28,162) = +TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) +!PTERMS(CARBOP,K081) = +0.27460*K081*<CARBO>*<O3> + PTERMS(:,39,81) = +0.27460*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(MCR,K161) = +K161*<HO2>*<RO212> - PTERMS(:,40,162) = +TPK%K161(:)*PCONC(:,10)*TPK%RO212(:) +!PTERMS(O3,K082) = -K082*<PAN>*<O3> + PTERMS(:,1,82) = -TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! -!PTERMS(NO,K162) = -K162*<NO>*<RO213> - PTERMS(:,1,163) = -TPK%K162(:)*PCONC(:,1)*TPK%RO213(:) +!PTERMS(NO2,K082) = +0.70*K082*<PAN>*<O3> + PTERMS(:,4,82) = +0.70*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! -!PTERMS(NO2,K162) = +K162*<NO>*<RO213> - PTERMS(:,2,163) = +TPK%K162(:)*PCONC(:,1)*TPK%RO213(:) +!PTERMS(CO,K082) = +0.13*K082*<PAN>*<O3> + PTERMS(:,13,82) = +0.13*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! -!PTERMS(HCHO,K162) = +K162*<NO>*<RO213> - PTERMS(:,28,163) = +TPK%K162(:)*PCONC(:,1)*TPK%RO213(:) +!PTERMS(OH,K082) = +0.036*K082*<PAN>*<O3> + PTERMS(:,14,82) = +0.036*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! -!PTERMS(RO2T,K162) = +K162*<NO>*<RO213> - PTERMS(:,85,163) = +TPK%K162(:)*PCONC(:,1)*TPK%RO213(:) +!PTERMS(HO2,K082) = +0.08*K082*<PAN>*<O3> + PTERMS(:,15,82) = +0.08*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! -!PTERMS(HCHO,K163) = +K163*<RO2T>*<RO213> - PTERMS(:,28,164) = +TPK%K163(:)*PCONC(:,85)*TPK%RO213(:) +!PTERMS(HCHO,K082) = +0.70*K082*<PAN>*<O3> + PTERMS(:,22,82) = +0.70*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! ! RETURN -END SUBROUTINE SUBT26 +END SUBROUTINE SUBT15 ! -SUBROUTINE SUBT27 +SUBROUTINE SUBT16 ! -!Indices 541 a 560 +!Indices 321 a 340 ! -!PTERMS(RO2T,K163) = -K163*<RO2T>*<RO213> - PTERMS(:,85,164) = -TPK%K163(:)*PCONC(:,85)*TPK%RO213(:) +!PTERMS(PAN,K082) = -K082*<PAN>*<O3> + PTERMS(:,27,82) = -TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! -!PTERMS(HO2,K164) = -K164*<HO2>*<RO213> - PTERMS(:,10,165) = -TPK%K164(:)*PCONC(:,10)*TPK%RO213(:) +!PTERMS(ORA1,K082) = +0.11*K082*<PAN>*<O3> + PTERMS(:,30,82) = +0.11*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! -!PTERMS(OH,K164) = +K164*<HO2>*<RO213> - PTERMS(:,15,165) = +TPK%K164(:)*PCONC(:,10)*TPK%RO213(:) +!PTERMS(CARBOP,K082) = +0.70000*K082*<PAN>*<O3> + PTERMS(:,39,82) = +0.70000*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! -!PTERMS(HCHO,K164) = +K164*<HO2>*<RO213> - PTERMS(:,28,165) = +TPK%K164(:)*PCONC(:,10)*TPK%RO213(:) +!PTERMS(NO2,K083) = -K083*<PHO>*<NO2> + PTERMS(:,4,83) = -TPK%K083(:)*PCONC(:,36)*PCONC(:,4) ! -!PTERMS(RO2T,K164) = +K164*<HO2>*<RO213> - PTERMS(:,85,165) = +TPK%K164(:)*PCONC(:,10)*TPK%RO213(:) +!PTERMS(ARO,K083) = +0.10670*K083*<PHO>*<NO2> + PTERMS(:,21,83) = +0.10670*TPK%K083(:)*PCONC(:,36)*PCONC(:,4) ! -!PTERMS(NO,K165) = -K165*<NO>*<RO239> - PTERMS(:,1,166) = -TPK%K165(:)*PCONC(:,1)*TPK%RO239(:) +!PTERMS(ONIT,K083) = +K083*<PHO>*<NO2> + PTERMS(:,26,83) = +TPK%K083(:)*PCONC(:,36)*PCONC(:,4) ! -!PTERMS(NO2,K165) = +K165*<NO>*<RO239> - PTERMS(:,2,166) = +TPK%K165(:)*PCONC(:,1)*TPK%RO239(:) +!PTERMS(PHO,K083) = -K083*<PHO>*<NO2> + PTERMS(:,36,83) = -TPK%K083(:)*PCONC(:,36)*PCONC(:,4) ! -!PTERMS(RO2T,K165) = +K165*<NO>*<RO239> - PTERMS(:,85,166) = +TPK%K165(:)*PCONC(:,1)*TPK%RO239(:) +!PTERMS(HO2,K084) = -K084*<PHO>*<HO2> + PTERMS(:,15,84) = -TPK%K084(:)*PCONC(:,36)*PCONC(:,15) ! -!PTERMS(O3,K166) = +K166*<HO2>*<RO239> - PTERMS(:,3,167) = +TPK%K166(:)*PCONC(:,10)*TPK%RO239(:) +!PTERMS(ARO,K084) = +1.06698*K084*<PHO>*<HO2> + PTERMS(:,21,84) = +1.06698*TPK%K084(:)*PCONC(:,36)*PCONC(:,15) ! -!PTERMS(HO2,K166) = -K166*<HO2>*<RO239> - PTERMS(:,10,167) = -TPK%K166(:)*PCONC(:,10)*TPK%RO239(:) +!PTERMS(PHO,K084) = -K084*<PHO>*<HO2> + PTERMS(:,36,84) = -TPK%K084(:)*PCONC(:,36)*PCONC(:,15) ! -!PTERMS(OLEL,K166) = +0.5*K166*<HO2>*<RO239> - PTERMS(:,17,167) = +0.5*TPK%K166(:)*PCONC(:,10)*TPK%RO239(:) +!PTERMS(NO2,K085) = -K085*<ADD>*<NO2> + PTERMS(:,4,85) = -TPK%K085(:)*PCONC(:,37)*PCONC(:,4) ! -!PTERMS(ORA2,K166) = +0.5*K166*<HO2>*<RO239> - PTERMS(:,44,167) = +0.5*TPK%K166(:)*PCONC(:,10)*TPK%RO239(:) +!PTERMS(HONO,K085) = +K085*<ADD>*<NO2> + PTERMS(:,7,85) = +TPK%K085(:)*PCONC(:,37)*PCONC(:,4) ! -!PTERMS(RO2T,K167) = -K167*<RO2T>*<RO239> - PTERMS(:,85,168) = -TPK%K167(:)*PCONC(:,85)*TPK%RO239(:) +!PTERMS(ARO,K085) = +K085*<ADD>*<NO2> + PTERMS(:,21,85) = +TPK%K085(:)*PCONC(:,37)*PCONC(:,4) ! -!PTERMS(NO,K168) = -K168*<NO>*<RO214> - PTERMS(:,1,169) = -TPK%K168(:)*PCONC(:,1)*TPK%RO214(:) +!PTERMS(ADD,K085) = -K085*<ADD>*<NO2> + PTERMS(:,37,85) = -TPK%K085(:)*PCONC(:,37)*PCONC(:,4) ! -!PTERMS(NO2,K168) = +TPK%CF8*K168*<NO>*<RO214> - PTERMS(:,2,169) = +TPK%CF8*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:) +!PTERMS(HO2,K086) = +0.02*K086*<ADD>*<O2> + PTERMS(:,15,86) = +0.02*TPK%K086(:)*PCONC(:,37)*TPK%O2(:) ! -!PTERMS(OLEL,K168) = +TPK%CF7*K168*<NO>*<RO214> - PTERMS(:,17,169) = +TPK%CF7*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:) +!PTERMS(ARO,K086) = +0.02*K086*<ADD>*<O2> + PTERMS(:,21,86) = +0.02*TPK%K086(:)*PCONC(:,37)*TPK%O2(:) ! -!PTERMS(RO2T,K168) = +TPK%CF8*K168*<NO>*<RO214> - PTERMS(:,85,169) = +TPK%CF8*TPK%K168(:)*PCONC(:,1)*TPK%RO214(:) +!PTERMS(ADD,K086) = -K086*<ADD>*<O2> + PTERMS(:,37,86) = -TPK%K086(:)*PCONC(:,37)*TPK%O2(:) ! -!PTERMS(RO2T,K169) = -K169*<RO2T>*<RO214> - PTERMS(:,85,170) = -TPK%K169(:)*PCONC(:,85)*TPK%RO214(:) +!PTERMS(AROP,K086) = +0.98*K086*<ADD>*<O2> + PTERMS(:,38,86) = +0.98*TPK%K086(:)*PCONC(:,37)*TPK%O2(:) ! -!PTERMS(HO2,K170) = -K170*<HO2>*<RO214> - PTERMS(:,10,171) = -TPK%K170(:)*PCONC(:,10)*TPK%RO214(:) +!PTERMS(O3,K087) = -K087*<ADD>*<O3> + PTERMS(:,1,87) = -TPK%K087(:)*PCONC(:,37)*PCONC(:,1) ! -!PTERMS(OH,K170) = +K170*<HO2>*<RO214> - PTERMS(:,15,171) = +TPK%K170(:)*PCONC(:,10)*TPK%RO214(:) +!PTERMS(OH,K087) = +K087*<ADD>*<O3> + PTERMS(:,14,87) = +TPK%K087(:)*PCONC(:,37)*PCONC(:,1) ! ! RETURN -END SUBROUTINE SUBT27 +END SUBROUTINE SUBT16 ! -SUBROUTINE SUBT28 +SUBROUTINE SUBT17 ! -!Indices 561 a 580 +!Indices 341 a 360 ! -!PTERMS(RO2T,K170) = +K170*<HO2>*<RO214> - PTERMS(:,85,171) = +TPK%K170(:)*PCONC(:,10)*TPK%RO214(:) +!PTERMS(ARO,K087) = +K087*<ADD>*<O3> + PTERMS(:,21,87) = +TPK%K087(:)*PCONC(:,37)*PCONC(:,1) ! -!PTERMS(NO,K171) = -K171*<NO>*<RO215> - PTERMS(:,1,172) = -TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) +!PTERMS(ADD,K087) = -K087*<ADD>*<O3> + PTERMS(:,37,87) = -TPK%K087(:)*PCONC(:,37)*PCONC(:,1) ! -!PTERMS(NO2,K171) = +K171*<NO>*<RO215> - PTERMS(:,2,172) = +TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) +!PTERMS(NO2,K088) = -K088*<CARBOP>*<NO2> + PTERMS(:,4,88) = -TPK%K088(:)*PCONC(:,39)*PCONC(:,4) ! -!PTERMS(HO2,K171) = +K171*<NO>*<RO215> - PTERMS(:,10,172) = +TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) +!PTERMS(PAN,K088) = +1.00000*K088*<CARBOP>*<NO2> + PTERMS(:,27,88) = +1.00000*TPK%K088(:)*PCONC(:,39)*PCONC(:,4) ! -!PTERMS(ALKL,K171) = +TPK%CF12*K171*<NO>*<RO215> - PTERMS(:,19,172) = +TPK%CF12*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) +!PTERMS(CARBOP,K088) = -K088*<CARBOP>*<NO2> + PTERMS(:,39,88) = -TPK%K088(:)*PCONC(:,39)*PCONC(:,4) ! -!PTERMS(HCHO,K171) = +TPK%CF10*K171*<NO>*<RO215> - PTERMS(:,28,172) = +TPK%CF10*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) +!PTERMS(NO2,K089) = +K089*<PAN> + PTERMS(:,4,89) = +TPK%K089(:)*PCONC(:,27) ! -!PTERMS(ALD2,K171) = +TPK%CF9*K171*<NO>*<RO215> - PTERMS(:,29,172) = +TPK%CF9*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) +!PTERMS(PAN,K089) = -K089*<PAN> + PTERMS(:,27,89) = -TPK%K089(:)*PCONC(:,27) ! -!PTERMS(KETL,K171) = +TPK%CF11*K171*<NO>*<RO215> - PTERMS(:,30,172) = +TPK%CF11*TPK%K171(:)*PCONC(:,1)*TPK%RO215(:) +!PTERMS(CARBOP,K089) = +1.00000*K089*<PAN> + PTERMS(:,39,89) = +1.00000*TPK%K089(:)*PCONC(:,27) ! -!PTERMS(HO2,K172) = +K172*<RO2T>*<RO215> - PTERMS(:,10,173) = +TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) +!PTERMS(NO,K090) = -K090*<MO2>*<NO> + PTERMS(:,3,90) = -TPK%K090(:)*PCONC(:,32)*PCONC(:,3) ! -!PTERMS(ALKL,K172) = +TPK%CF16*K172*<RO2T>*<RO215> - PTERMS(:,19,173) = +TPK%CF16*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) +!PTERMS(NO2,K090) = +K090*<MO2>*<NO> + PTERMS(:,4,90) = +TPK%K090(:)*PCONC(:,32)*PCONC(:,3) ! -!PTERMS(HCHO,K172) = +TPK%CF14*K172*<RO2T>*<RO215> - PTERMS(:,28,173) = +TPK%CF14*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) +!PTERMS(HO2,K090) = +K090*<MO2>*<NO> + PTERMS(:,15,90) = +TPK%K090(:)*PCONC(:,32)*PCONC(:,3) ! -!PTERMS(ALD2,K172) = +TPK%CF13*K172*<RO2T>*<RO215> - PTERMS(:,29,173) = +TPK%CF13*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) +!PTERMS(HCHO,K090) = +K090*<MO2>*<NO> + PTERMS(:,22,90) = +TPK%K090(:)*PCONC(:,32)*PCONC(:,3) ! -!PTERMS(KETL,K172) = +TPK%CF15*K172*<RO2T>*<RO215> - PTERMS(:,30,173) = +TPK%CF15*TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) +!PTERMS(MO2,K090) = -K090*<MO2>*<NO> + PTERMS(:,32,90) = -TPK%K090(:)*PCONC(:,32)*PCONC(:,3) ! -!PTERMS(RO2T,K172) = -K172*<RO2T>*<RO215> - PTERMS(:,85,173) = -TPK%K172(:)*PCONC(:,85)*TPK%RO215(:) +!PTERMS(NO,K091) = -K091*<ALKAP>*<NO> + PTERMS(:,3,91) = -TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(HO2,K173) = -K173*<HO2>*<RO215> - PTERMS(:,10,174) = -TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) +!PTERMS(NO2,K091) = +0.91541*K091*<ALKAP>*<NO> + PTERMS(:,4,91) = +0.91541*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(OH,K173) = +K173*<HO2>*<RO215> - PTERMS(:,15,174) = +TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) +!PTERMS(HO2,K091) = +0.74265*K091*<ALKAP>*<NO> + PTERMS(:,15,91) = +0.74265*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(ALKL,K173) = +TPK%CF16*K173*<HO2>*<RO215> - PTERMS(:,19,174) = +TPK%CF16*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) +!PTERMS(HCHO,K091) = +0.03002*K091*<ALKAP>*<NO> + PTERMS(:,22,91) = +0.03002*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(HCHO,K173) = +TPK%CF14*K173*<HO2>*<RO215> - PTERMS(:,28,174) = +TPK%CF14*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) +!PTERMS(ALD,K091) = +0.33144*K091*<ALKAP>*<NO> + PTERMS(:,23,91) = +0.33144*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(ALD2,K173) = +TPK%CF13*K173*<HO2>*<RO215> - PTERMS(:,29,174) = +TPK%CF13*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) +!PTERMS(KET,K091) = +0.54531*K091*<ALKAP>*<NO> + PTERMS(:,24,91) = +0.54531*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(KETL,K173) = +TPK%CF15*K173*<HO2>*<RO215> - PTERMS(:,30,174) = +TPK%CF15*TPK%K173(:)*PCONC(:,10)*TPK%RO215(:) +!PTERMS(CARBO,K091) = +0.03407*K091*<ALKAP>*<NO> + PTERMS(:,25,91) = +0.03407*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! ! RETURN -END SUBROUTINE SUBT28 +END SUBROUTINE SUBT17 ! -SUBROUTINE SUBT29 +SUBROUTINE SUBT18 ! -!Indices 581 a 600 +!Indices 361 a 380 ! -!PTERMS(NO,K174) = -K174*<NO>*<RO216> - PTERMS(:,1,175) = -TPK%K174(:)*PCONC(:,1)*TPK%RO216(:) +!PTERMS(ONIT,K091) = +0.08459*K091*<ALKAP>*<NO> + PTERMS(:,26,91) = +0.08459*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(NO2,K174) = +K174*<NO>*<RO216> - PTERMS(:,2,175) = +TPK%K174(:)*PCONC(:,1)*TPK%RO216(:) +!PTERMS(MO2,K091) = +0.09016*K091*<ALKAP>*<NO> + PTERMS(:,32,91) = +0.09016*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(ALD2,K174) = +K174*<NO>*<RO216> - PTERMS(:,29,175) = +TPK%K174(:)*PCONC(:,1)*TPK%RO216(:) +!PTERMS(ALKAP,K091) = -K091*<ALKAP>*<NO> + PTERMS(:,33,91) = -TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(RO2T,K174) = +K174*<NO>*<RO216> - PTERMS(:,85,175) = +TPK%K174(:)*PCONC(:,1)*TPK%RO216(:) +!PTERMS(XO2,K091) = +0.13007*K091*<ALKAP>*<NO> + PTERMS(:,41,91) = +0.13007*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(ALD2,K175) = +K175*<RO2T>*<RO216> - PTERMS(:,29,176) = +TPK%K175(:)*PCONC(:,85)*TPK%RO216(:) +!PTERMS(NO,K092) = -K092*<ALKEP>*<NO> + PTERMS(:,3,92) = -TPK%K092(:)*PCONC(:,34)*PCONC(:,3) ! -!PTERMS(RO2T,K175) = -K175*<RO2T>*<RO216> - PTERMS(:,85,176) = -TPK%K175(:)*PCONC(:,85)*TPK%RO216(:) +!PTERMS(NO2,K092) = +K092*<ALKEP>*<NO> + PTERMS(:,4,92) = +TPK%K092(:)*PCONC(:,34)*PCONC(:,3) ! -!PTERMS(HO2,K176) = -K176*<HO2>*<RO216> - PTERMS(:,10,177) = -TPK%K176(:)*PCONC(:,10)*TPK%RO216(:) +!PTERMS(HO2,K092) = +K092*<ALKEP>*<NO> + PTERMS(:,15,92) = +TPK%K092(:)*PCONC(:,34)*PCONC(:,3) ! -!PTERMS(OH,K176) = +K176*<HO2>*<RO216> - PTERMS(:,15,177) = +TPK%K176(:)*PCONC(:,10)*TPK%RO216(:) +!PTERMS(HCHO,K092) = +1.39870*K092*<ALKEP>*<NO> + PTERMS(:,22,92) = +1.39870*TPK%K092(:)*PCONC(:,34)*PCONC(:,3) ! -!PTERMS(ALD2,K176) = +K176*<HO2>*<RO216> - PTERMS(:,29,177) = +TPK%K176(:)*PCONC(:,10)*TPK%RO216(:) +!PTERMS(ALD,K092) = +0.42125*K092*<ALKEP>*<NO> + PTERMS(:,23,92) = +0.42125*TPK%K092(:)*PCONC(:,34)*PCONC(:,3) ! -!PTERMS(RO2T,K176) = +K176*<HO2>*<RO216> - PTERMS(:,85,177) = +TPK%K176(:)*PCONC(:,10)*TPK%RO216(:) +!PTERMS(KET,K092) = +0.05220*K092*<ALKEP>*<NO> + PTERMS(:,24,92) = +0.05220*TPK%K092(:)*PCONC(:,34)*PCONC(:,3) ! -!PTERMS(NO,K177) = -K177*<NO>*<RO217> - PTERMS(:,1,178) = -TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) +!PTERMS(ALKEP,K092) = -K092*<ALKEP>*<NO> + PTERMS(:,34,92) = -TPK%K092(:)*PCONC(:,34)*PCONC(:,3) ! -!PTERMS(NO2,K177) = +TPK%CF22*K177*<NO>*<RO217> - PTERMS(:,2,178) = +TPK%CF22*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) +!PTERMS(NO,K093) = -K093*<BIOP>*<NO> + PTERMS(:,3,93) = -TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(HO2,K177) = +TPK%CF22*K177*<NO>*<RO217> - PTERMS(:,10,178) = +TPK%CF22*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) +!PTERMS(NO2,K093) = +0.84700*K093*<BIOP>*<NO> + PTERMS(:,4,93) = +0.84700*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(URG6,K177) = +TPK%CF21*K177*<NO>*<RO217> - PTERMS(:,58,178) = +TPK%CF21*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) +!PTERMS(HO2,K093) = +0.84700*K093*<BIOP>*<NO> + PTERMS(:,15,93) = +0.84700*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(RPRL,K177) = +TPK%CFA2*K177*<NO>*<RO217> - PTERMS(:,75,178) = +TPK%CFA2*TPK%K177(:)*PCONC(:,1)*TPK%RO217(:) +!PTERMS(ALKE,K093) = +0.37815*K093*<BIOP>*<NO> + PTERMS(:,19,93) = +0.37815*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(HO2,K178) = +K178*<RO2T>*<RO217> - PTERMS(:,10,179) = +TPK%K178(:)*PCONC(:,85)*TPK%RO217(:) +!PTERMS(HCHO,K093) = +0.60600*K093*<BIOP>*<NO> + PTERMS(:,22,93) = +0.60600*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(RPRL,K178) = +0.9983609*K178*<RO2T>*<RO217> - PTERMS(:,75,179) = +0.9983609*TPK%K178(:)*PCONC(:,85)*TPK%RO217(:) +!PTERMS(ALD,K093) = +0.00000*K093*<BIOP>*<NO> + PTERMS(:,23,93) = +0.00000*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(RO2T,K178) = -K178*<RO2T>*<RO217> - PTERMS(:,85,179) = -TPK%K178(:)*PCONC(:,85)*TPK%RO217(:) +!PTERMS(KET,K093) = +0.00000*K093*<BIOP>*<NO> + PTERMS(:,24,93) = +0.00000*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(HO2,K179) = -K179*<HO2>*<RO217> - PTERMS(:,10,180) = -TPK%K179(:)*PCONC(:,10)*TPK%RO217(:) +!PTERMS(CARBO,K093) = +0.45463*K093*<BIOP>*<NO> + PTERMS(:,25,93) = +0.45463*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(OH,K179) = +K179*<HO2>*<RO217> - PTERMS(:,15,180) = +TPK%K179(:)*PCONC(:,10)*TPK%RO217(:) +!PTERMS(ONIT,K093) = +0.15300*K093*<BIOP>*<NO> + PTERMS(:,26,93) = +0.15300*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! ! RETURN -END SUBROUTINE SUBT29 +END SUBROUTINE SUBT18 ! -SUBROUTINE SUBT30 +SUBROUTINE SUBT19 ! -!Indices 601 a 620 +!Indices 381 a 400 ! -!PTERMS(RPRL,K179) = +0.9983609*K179*<HO2>*<RO217> - PTERMS(:,75,180) = +0.9983609*TPK%K179(:)*PCONC(:,10)*TPK%RO217(:) +!PTERMS(BIOP,K093) = -K093*<BIOP>*<NO> + PTERMS(:,35,93) = -TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(NO,K180) = -K180*<NO>*<RO218> - PTERMS(:,1,181) = -TPK%K180(:)*PCONC(:,1)*TPK%RO218(:) +!PTERMS(NO,K094) = -K094*<AROP>*<NO> + PTERMS(:,3,94) = -TPK%K094(:)*PCONC(:,38)*PCONC(:,3) ! -!PTERMS(NO2,K180) = +TPK%CF20*K180*<NO>*<RO218> - PTERMS(:,2,181) = +TPK%CF20*TPK%K180(:)*PCONC(:,1)*TPK%RO218(:) +!PTERMS(NO2,K094) = +0.95115*K094*<AROP>*<NO> + PTERMS(:,4,94) = +0.95115*TPK%K094(:)*PCONC(:,38)*PCONC(:,3) ! -!PTERMS(HO2,K180) = +TPK%CF20*K180*<NO>*<RO218> - PTERMS(:,10,181) = +TPK%CF20*TPK%K180(:)*PCONC(:,1)*TPK%RO218(:) +!PTERMS(HO2,K094) = +0.95115*K094*<AROP>*<NO> + PTERMS(:,15,94) = +0.95115*TPK%K094(:)*PCONC(:,38)*PCONC(:,3) ! -!PTERMS(HO2,K181) = +K181*<RO2T>*<RO218> - PTERMS(:,10,182) = +TPK%K181(:)*PCONC(:,85)*TPK%RO218(:) +!PTERMS(CARBO,K094) = +2.06993*K094*<AROP>*<NO> + PTERMS(:,25,94) = +2.06993*TPK%K094(:)*PCONC(:,38)*PCONC(:,3) ! -!PTERMS(RO2T,K181) = -K181*<RO2T>*<RO218> - PTERMS(:,85,182) = -TPK%K181(:)*PCONC(:,85)*TPK%RO218(:) +!PTERMS(ONIT,K094) = +0.04885*K094*<AROP>*<NO> + PTERMS(:,26,94) = +0.04885*TPK%K094(:)*PCONC(:,38)*PCONC(:,3) ! -!PTERMS(HO2,K182) = -K182*<HO2>*<RO218> - PTERMS(:,10,183) = -TPK%K182(:)*PCONC(:,10)*TPK%RO218(:) +!PTERMS(AROP,K094) = -K094*<AROP>*<NO> + PTERMS(:,38,94) = -TPK%K094(:)*PCONC(:,38)*PCONC(:,3) ! -!PTERMS(OH,K182) = +K182*<HO2>*<RO218> - PTERMS(:,15,183) = +TPK%K182(:)*PCONC(:,10)*TPK%RO218(:) +!PTERMS(NO,K095) = -K095*<CARBOP>*<NO> + PTERMS(:,3,95) = -TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(NO,K183) = -K183*<NO>*<RO219> - PTERMS(:,1,184) = -TPK%K183(:)*PCONC(:,1)*TPK%RO219(:) +!PTERMS(NO2,K095) = +K095*<CARBOP>*<NO> + PTERMS(:,4,95) = +TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(NO2,K183) = +2.*K183*<NO>*<RO219> - PTERMS(:,2,184) = +2.*TPK%K183(:)*PCONC(:,1)*TPK%RO219(:) +!PTERMS(HO2,K095) = +0.12334*K095*<CARBOP>*<NO> + PTERMS(:,15,95) = +0.12334*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(HCHO,K183) = +K183*<NO>*<RO219> - PTERMS(:,28,184) = +TPK%K183(:)*PCONC(:,1)*TPK%RO219(:) +!PTERMS(HCHO,K095) = +0.05848*K095*<CARBOP>*<NO> + PTERMS(:,22,95) = +0.05848*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(RPR1,K183) = +K183*<NO>*<RO219> - PTERMS(:,69,184) = +TPK%K183(:)*PCONC(:,1)*TPK%RO219(:) +!PTERMS(ALD,K095) = +0.07368*K095*<CARBOP>*<NO> + PTERMS(:,23,95) = +0.07368*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(NO2,K184) = +K184*<RO2T>*<RO219> - PTERMS(:,2,185) = +TPK%K184(:)*PCONC(:,85)*TPK%RO219(:) +!PTERMS(CARBO,K095) = +0.08670*K095*<CARBOP>*<NO> + PTERMS(:,25,95) = +0.08670*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(HCHO,K184) = +K184*<RO2T>*<RO219> - PTERMS(:,28,185) = +TPK%K184(:)*PCONC(:,85)*TPK%RO219(:) +!PTERMS(MO2,K095) = +0.78134*K095*<CARBOP>*<NO> + PTERMS(:,32,95) = +0.78134*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(RPR1,K184) = +K184*<RO2T>*<RO219> - PTERMS(:,69,185) = +TPK%K184(:)*PCONC(:,85)*TPK%RO219(:) +!PTERMS(CARBOP,K095) = -K095*<CARBOP>*<NO> + PTERMS(:,39,95) = -TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(RO2T,K184) = -K184*<RO2T>*<RO219> - PTERMS(:,85,185) = -TPK%K184(:)*PCONC(:,85)*TPK%RO219(:) +!PTERMS(XO2,K095) = +0.02563*K095*<CARBOP>*<NO> + PTERMS(:,41,95) = +0.02563*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(NO2,K185) = +K185*<HO2>*<RO219> - PTERMS(:,2,186) = +TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) +!PTERMS(NO,K096) = -K096*<OLN>*<NO> + PTERMS(:,3,96) = -TPK%K096(:)*PCONC(:,40)*PCONC(:,3) ! -!PTERMS(HO2,K185) = -K185*<HO2>*<RO219> - PTERMS(:,10,186) = -TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) +!PTERMS(NO2,K096) = +1.81599*K096*<OLN>*<NO> + PTERMS(:,4,96) = +1.81599*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) ! -!PTERMS(OH,K185) = +K185*<HO2>*<RO219> - PTERMS(:,15,186) = +TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) +!PTERMS(HO2,K096) = +0.18401*K096*<OLN>*<NO> + PTERMS(:,15,96) = +0.18401*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) ! -!PTERMS(HCHO,K185) = +K185*<HO2>*<RO219> - PTERMS(:,28,186) = +TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) +!PTERMS(HCHO,K096) = +0.23419*K096*<OLN>*<NO> + PTERMS(:,22,96) = +0.23419*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) ! ! RETURN -END SUBROUTINE SUBT30 +END SUBROUTINE SUBT19 ! -SUBROUTINE SUBT31 +SUBROUTINE SUBT20 ! -!Indices 621 a 640 +!Indices 401 a 420 ! -!PTERMS(RPR1,K185) = +K185*<HO2>*<RO219> - PTERMS(:,69,186) = +TPK%K185(:)*PCONC(:,10)*TPK%RO219(:) +!PTERMS(ALD,K096) = +1.01182*K096*<OLN>*<NO> + PTERMS(:,23,96) = +1.01182*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) ! -!PTERMS(NO,K186) = -K186*<NO>*<RO220> - PTERMS(:,1,187) = -TPK%K186(:)*PCONC(:,1)*TPK%RO220(:) +!PTERMS(KET,K096) = +0.37862*K096*<OLN>*<NO> + PTERMS(:,24,96) = +0.37862*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) ! -!PTERMS(NO2,K186) = +TPK%CF18*K186*<NO>*<RO220> - PTERMS(:,2,187) = +TPK%CF18*TPK%K186(:)*PCONC(:,1)*TPK%RO220(:) +!PTERMS(ONIT,K096) = +0.18401*K096*<OLN>*<NO> + PTERMS(:,26,96) = +0.18401*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) ! -!PTERMS(RO2T,K186) = +TPK%CF18*K186*<NO>*<RO220> - PTERMS(:,85,187) = +TPK%CF18*TPK%K186(:)*PCONC(:,1)*TPK%RO220(:) +!PTERMS(OLN,K096) = -K096*<OLN>*<NO> + PTERMS(:,40,96) = -TPK%K096(:)*PCONC(:,40)*PCONC(:,3) ! -!PTERMS(RO2T,K187) = -K187*<RO2T>*<RO220> - PTERMS(:,85,188) = -TPK%K187(:)*PCONC(:,85)*TPK%RO220(:) +!PTERMS(HO2,K097) = -K097*<MO2>*<HO2> + PTERMS(:,15,97) = -TPK%K097(:)*PCONC(:,32)*PCONC(:,15) ! -!PTERMS(HO2,K188) = -K188*<HO2>*<RO220> - PTERMS(:,10,189) = -TPK%K188(:)*PCONC(:,10)*TPK%RO220(:) +!PTERMS(OP1,K097) = +K097*<MO2>*<HO2> + PTERMS(:,28,97) = +TPK%K097(:)*PCONC(:,32)*PCONC(:,15) ! -!PTERMS(OH,K188) = +K188*<HO2>*<RO220> - PTERMS(:,15,189) = +TPK%K188(:)*PCONC(:,10)*TPK%RO220(:) +!PTERMS(MO2,K097) = -K097*<MO2>*<HO2> + PTERMS(:,32,97) = -TPK%K097(:)*PCONC(:,32)*PCONC(:,15) ! -!PTERMS(RO2T,K188) = +K188*<HO2>*<RO220> - PTERMS(:,85,189) = +TPK%K188(:)*PCONC(:,10)*TPK%RO220(:) +!PTERMS(HO2,K098) = -K098*<ALKAP>*<HO2> + PTERMS(:,15,98) = -TPK%K098(:)*PCONC(:,33)*PCONC(:,15) ! -!PTERMS(NO,K189) = -K189*<NO>*<RO221> - PTERMS(:,1,190) = -TPK%K189(:)*PCONC(:,1)*TPK%RO221(:) +!PTERMS(OP2,K098) = +1.00524*K098*<ALKAP>*<HO2> + PTERMS(:,29,98) = +1.00524*TPK%K098(:)*PCONC(:,33)*PCONC(:,15) ! -!PTERMS(NO2,K189) = +TPK%CF24*K189*<NO>*<RO221> - PTERMS(:,2,190) = +TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:) +!PTERMS(ALKAP,K098) = -K098*<ALKAP>*<HO2> + PTERMS(:,33,98) = -TPK%K098(:)*PCONC(:,33)*PCONC(:,15) ! -!PTERMS(HO2,K189) = +TPK%CF24*K189*<NO>*<RO221> - PTERMS(:,10,190) = +TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:) +!PTERMS(HO2,K099) = -K099*<ALKEP>*<HO2> + PTERMS(:,15,99) = -TPK%K099(:)*PCONC(:,34)*PCONC(:,15) ! -!PTERMS(ARAL,K189) = +TPK%CF24*K189*<NO>*<RO221> - PTERMS(:,25,190) = +TPK%CF24*TPK%K189(:)*PCONC(:,1)*TPK%RO221(:) +!PTERMS(OP2,K099) = +1.00524*K099*<ALKEP>*<HO2> + PTERMS(:,29,99) = +1.00524*TPK%K099(:)*PCONC(:,34)*PCONC(:,15) ! -!PTERMS(HO2,K190) = +K190*<RO2T>*<RO221> - PTERMS(:,10,191) = +TPK%K190(:)*PCONC(:,85)*TPK%RO221(:) +!PTERMS(ALKEP,K099) = -K099*<ALKEP>*<HO2> + PTERMS(:,34,99) = -TPK%K099(:)*PCONC(:,34)*PCONC(:,15) ! -!PTERMS(ARAL,K190) = +K190*<RO2T>*<RO221> - PTERMS(:,25,191) = +TPK%K190(:)*PCONC(:,85)*TPK%RO221(:) +!PTERMS(HO2,K0100) = -K0100*<BIOP>*<HO2> + PTERMS(:,15,100) = -TPK%K0100(:)*PCONC(:,35)*PCONC(:,15) ! -!PTERMS(RO2T,K190) = -K190*<RO2T>*<RO221> - PTERMS(:,85,191) = -TPK%K190(:)*PCONC(:,85)*TPK%RO221(:) +!PTERMS(OP2,K0100) = +1.00524*K0100*<BIOP>*<HO2> + PTERMS(:,29,100) = +1.00524*TPK%K0100(:)*PCONC(:,35)*PCONC(:,15) ! -!PTERMS(HO2,K191) = -K191*<HO2>*<RO221> - PTERMS(:,10,192) = -TPK%K191(:)*PCONC(:,10)*TPK%RO221(:) +!PTERMS(BIOP,K0100) = -K0100*<BIOP>*<HO2> + PTERMS(:,35,100) = -TPK%K0100(:)*PCONC(:,35)*PCONC(:,15) ! -!PTERMS(OH,K191) = +K191*<HO2>*<RO221> - PTERMS(:,15,192) = +TPK%K191(:)*PCONC(:,10)*TPK%RO221(:) +!PTERMS(HO2,K0101) = -K0101*<AROP>*<HO2> + PTERMS(:,15,101) = -TPK%K0101(:)*PCONC(:,38)*PCONC(:,15) ! -!PTERMS(ARAL,K191) = +K191*<HO2>*<RO221> - PTERMS(:,25,192) = +TPK%K191(:)*PCONC(:,10)*TPK%RO221(:) +!PTERMS(OP2,K0101) = +1.00524*K0101*<AROP>*<HO2> + PTERMS(:,29,101) = +1.00524*TPK%K0101(:)*PCONC(:,38)*PCONC(:,15) ! -!PTERMS(NO,K192) = -K192*<NO>*<RO222> - PTERMS(:,1,193) = -TPK%K192(:)*PCONC(:,1)*TPK%RO222(:) +!PTERMS(AROP,K0101) = -K0101*<AROP>*<HO2> + PTERMS(:,38,101) = -TPK%K0101(:)*PCONC(:,38)*PCONC(:,15) ! -!PTERMS(NO2,K192) = +TPK%CF42*K192*<NO>*<RO222> - PTERMS(:,2,193) = +TPK%CF42*TPK%K192(:)*PCONC(:,1)*TPK%RO222(:) +!PTERMS(O3,K0102) = +0.17307*K0102*<CARBOP>*<HO2> + PTERMS(:,1,102) = +0.17307*TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) ! ! RETURN -END SUBROUTINE SUBT31 +END SUBROUTINE SUBT20 ! -SUBROUTINE SUBT32 +SUBROUTINE SUBT21 ! -!Indices 641 a 660 +!Indices 421 a 440 ! -!PTERMS(HO2,K192) = +TPK%CF42*K192*<NO>*<RO222> - PTERMS(:,10,193) = +TPK%CF42*TPK%K192(:)*PCONC(:,1)*TPK%RO222(:) +!PTERMS(HO2,K0102) = -K0102*<CARBOP>*<HO2> + PTERMS(:,15,102) = -TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) ! -!PTERMS(RPRL,K192) = +TPK%CFA7*K192*<NO>*<RO222> - PTERMS(:,75,193) = +TPK%CFA7*TPK%K192(:)*PCONC(:,1)*TPK%RO222(:) +!PTERMS(OP2,K0102) = +0.80904*K0102*<CARBOP>*<HO2> + PTERMS(:,29,102) = +0.80904*TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) ! -!PTERMS(HO2,K193) = +K193*<RO2T>*<RO222> - PTERMS(:,10,194) = +TPK%K193(:)*PCONC(:,85)*TPK%RO222(:) +!PTERMS(ORA2,K0102) = +0.17307*K0102*<CARBOP>*<HO2> + PTERMS(:,31,102) = +0.17307*TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) ! -!PTERMS(RPRL,K193) = +0.9983609*K193*<RO2T>*<RO222> - PTERMS(:,75,194) = +0.9983609*TPK%K193(:)*PCONC(:,85)*TPK%RO222(:) +!PTERMS(CARBOP,K0102) = -K0102*<CARBOP>*<HO2> + PTERMS(:,39,102) = -TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) ! -!PTERMS(RO2T,K193) = -K193*<RO2T>*<RO222> - PTERMS(:,85,194) = -TPK%K193(:)*PCONC(:,85)*TPK%RO222(:) +!PTERMS(HO2,K103) = -K103*<OLN>*<HO2> + PTERMS(:,15,103) = -TPK%K103(:)*PCONC(:,40)*PCONC(:,15) ! -!PTERMS(HO2,K194) = -K194*<HO2>*<RO222> - PTERMS(:,10,195) = -TPK%K194(:)*PCONC(:,10)*TPK%RO222(:) +!PTERMS(ONIT,K103) = +K103*<OLN>*<HO2> + PTERMS(:,26,103) = +TPK%K103(:)*PCONC(:,40)*PCONC(:,15) ! -!PTERMS(OH,K194) = +K194*<HO2>*<RO222> - PTERMS(:,15,195) = +TPK%K194(:)*PCONC(:,10)*TPK%RO222(:) +!PTERMS(OLN,K103) = -K103*<OLN>*<HO2> + PTERMS(:,40,103) = -TPK%K103(:)*PCONC(:,40)*PCONC(:,15) ! -!PTERMS(RPRL,K194) = +0.9983609*K194*<HO2>*<RO222> - PTERMS(:,75,195) = +0.9983609*TPK%K194(:)*PCONC(:,10)*TPK%RO222(:) +!PTERMS(HO2,K104) = +0.66*K104*<MO2>*<MO2> + PTERMS(:,15,104) = +0.66*TPK%K104(:)*PCONC(:,32)*PCONC(:,32) ! -!PTERMS(NO,K195) = -K195*<NO>*<RO223> - PTERMS(:,1,196) = -TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) +!PTERMS(HCHO,K104) = +1.33*K104*<MO2>*<MO2> + PTERMS(:,22,104) = +1.33*TPK%K104(:)*PCONC(:,32)*PCONC(:,32) ! -!PTERMS(NO2,K195) = +TPK%CF44*K195*<NO>*<RO223> - PTERMS(:,2,196) = +TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) +!PTERMS(MO2,K104) = -K104*<MO2>*<MO2> + PTERMS(:,32,104) = -TPK%K104(:)*PCONC(:,32)*PCONC(:,32) ! -!PTERMS(HO2,K195) = +TPK%CF44*K195*<NO>*<RO223> - PTERMS(:,10,196) = +TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) +!PTERMS(HO2,K105) = +0.98383*K105*<ALKAP>*<MO2> + PTERMS(:,15,105) = +0.98383*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) ! -!PTERMS(URG6,K195) = +TPK%CF43*K195*<NO>*<RO223> - PTERMS(:,58,196) = +TPK%CF43*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) +!PTERMS(HCHO,K105) = +0.80556*K105*<ALKAP>*<MO2> + PTERMS(:,22,105) = +0.80556*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) ! -!PTERMS(RPR7,K195) = +TPK%CF44*K195*<NO>*<RO223> - PTERMS(:,62,196) = +TPK%CF44*TPK%K195(:)*PCONC(:,1)*TPK%RO223(:) +!PTERMS(ALD,K105) = +0.56070*K105*<ALKAP>*<MO2> + PTERMS(:,23,105) = +0.56070*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) ! -!PTERMS(HO2,K196) = +K196*<RO2T>*<RO223> - PTERMS(:,10,197) = +TPK%K196(:)*PCONC(:,85)*TPK%RO223(:) +!PTERMS(KET,K105) = +0.09673*K105*<ALKAP>*<MO2> + PTERMS(:,24,105) = +0.09673*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) ! -!PTERMS(RPR7,K196) = +K196*<RO2T>*<RO223> - PTERMS(:,62,197) = +TPK%K196(:)*PCONC(:,85)*TPK%RO223(:) +!PTERMS(CARBO,K105) = +0.07976*K105*<ALKAP>*<MO2> + PTERMS(:,25,105) = +0.07976*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) ! -!PTERMS(RO2T,K196) = -K196*<RO2T>*<RO223> - PTERMS(:,85,197) = -TPK%K196(:)*PCONC(:,85)*TPK%RO223(:) +!PTERMS(MO2,K105) = -K105*<ALKAP>*<MO2> + PTERMS(:,32,105) = -TPK%K105(:)*PCONC(:,33)*PCONC(:,32) ! -!PTERMS(HO2,K197) = -K197*<HO2>*<RO223> - PTERMS(:,10,198) = -TPK%K197(:)*PCONC(:,10)*TPK%RO223(:) +!PTERMS(ALKAP,K105) = -K105*<ALKAP>*<MO2> + PTERMS(:,33,105) = -TPK%K105(:)*PCONC(:,33)*PCONC(:,32) ! -!PTERMS(OH,K197) = +K197*<HO2>*<RO223> - PTERMS(:,15,198) = +TPK%K197(:)*PCONC(:,10)*TPK%RO223(:) +!PTERMS(XO2,K105) = +0.13370*K105*<ALKAP>*<MO2> + PTERMS(:,41,105) = +0.13370*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) ! -!PTERMS(RPR7,K197) = +K197*<HO2>*<RO223> - PTERMS(:,62,198) = +TPK%K197(:)*PCONC(:,10)*TPK%RO223(:) +!PTERMS(HO2,K106) = +K106*<ALKEP>*<MO2> + PTERMS(:,15,106) = +TPK%K106(:)*PCONC(:,34)*PCONC(:,32) ! -!PTERMS(NO,K198) = -K198*<NO>*<RO224> - PTERMS(:,1,199) = -TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) +!PTERMS(HCHO,K106) = +1.42894*K106*<ALKEP>*<MO2> + PTERMS(:,22,106) = +1.42894*TPK%K106(:)*PCONC(:,34)*PCONC(:,32) ! ! RETURN -END SUBROUTINE SUBT32 +END SUBROUTINE SUBT21 ! -SUBROUTINE SUBT33 +SUBROUTINE SUBT22 ! -!Indices 661 a 680 +!Indices 441 a 460 ! -!PTERMS(NO2,K198) = +TPK%CF26*K198*<NO>*<RO224> - PTERMS(:,2,199) = +TPK%CF26*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) +!PTERMS(ALD,K106) = +0.46413*K106*<ALKEP>*<MO2> + PTERMS(:,23,106) = +0.46413*TPK%K106(:)*PCONC(:,34)*PCONC(:,32) ! -!PTERMS(HO2,K198) = +TPK%CF26*K198*<NO>*<RO224> - PTERMS(:,10,199) = +TPK%CF26*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) +!PTERMS(KET,K106) = +0.03814*K106*<ALKEP>*<MO2> + PTERMS(:,24,106) = +0.03814*TPK%K106(:)*PCONC(:,34)*PCONC(:,32) ! -!PTERMS(RPR3,K198) = +TPK%CFA10*K198*<NO>*<RO224> - PTERMS(:,57,199) = +TPK%CFA10*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) +!PTERMS(MO2,K106) = -K106*<ALKEP>*<MO2> + PTERMS(:,32,106) = -TPK%K106(:)*PCONC(:,34)*PCONC(:,32) ! -!PTERMS(AP7,K198) = +TPK%CFA23*K198*<NO>*<RO224> - PTERMS(:,67,199) = +TPK%CFA23*TPK%K198(:)*PCONC(:,1)*TPK%RO224(:) +!PTERMS(ALKEP,K106) = -K106*<ALKEP>*<MO2> + PTERMS(:,34,106) = -TPK%K106(:)*PCONC(:,34)*PCONC(:,32) ! -!PTERMS(HO2,K199) = +K199*<RO2T>*<RO224> - PTERMS(:,10,200) = +TPK%K199(:)*PCONC(:,85)*TPK%RO224(:) +!PTERMS(HO2,K107) = +1.00000*K107*<BIOP>*<MO2> + PTERMS(:,15,107) = +1.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) ! -!PTERMS(RPR3,K199) = +K199*<RO2T>*<RO224> - PTERMS(:,57,200) = +TPK%K199(:)*PCONC(:,85)*TPK%RO224(:) +!PTERMS(ALKE,K107) = +0.48074*K107*<BIOP>*<MO2> + PTERMS(:,19,107) = +0.48074*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) ! -!PTERMS(RO2T,K199) = -K199*<RO2T>*<RO224> - PTERMS(:,85,200) = -TPK%K199(:)*PCONC(:,85)*TPK%RO224(:) +!PTERMS(HCHO,K107) = +1.09000*K107*<BIOP>*<MO2> + PTERMS(:,22,107) = +1.09000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) ! -!PTERMS(HO2,K200) = -K200*<HO2>*<RO224> - PTERMS(:,10,201) = -TPK%K200(:)*PCONC(:,10)*TPK%RO224(:) +!PTERMS(ALD,K107) = +0.00000*K107*<BIOP>*<MO2> + PTERMS(:,23,107) = +0.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) ! -!PTERMS(OH,K200) = +K200*<HO2>*<RO224> - PTERMS(:,15,201) = +TPK%K200(:)*PCONC(:,10)*TPK%RO224(:) +!PTERMS(KET,K107) = +0.00000*K107*<BIOP>*<MO2> + PTERMS(:,24,107) = +0.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) ! -!PTERMS(RPR3,K200) = +K200*<HO2>*<RO224> - PTERMS(:,57,201) = +TPK%K200(:)*PCONC(:,10)*TPK%RO224(:) +!PTERMS(CARBO,K107) = +0.56064*K107*<BIOP>*<MO2> + PTERMS(:,25,107) = +0.56064*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) ! -!PTERMS(NO,K201) = -K201*<NO>*<RO225> - PTERMS(:,1,202) = -TPK%K201(:)*PCONC(:,1)*TPK%RO225(:) +!PTERMS(MO2,K107) = -K107*<BIOP>*<MO2> + PTERMS(:,32,107) = -TPK%K107(:)*PCONC(:,35)*PCONC(:,32) ! -!PTERMS(NO2,K201) = +2.*K201*<NO>*<RO225> - PTERMS(:,2,202) = +2.*TPK%K201(:)*PCONC(:,1)*TPK%RO225(:) +!PTERMS(BIOP,K107) = -K107*<BIOP>*<MO2> + PTERMS(:,35,107) = -TPK%K107(:)*PCONC(:,35)*PCONC(:,32) ! -!PTERMS(RPR3,K201) = +K201*<NO>*<RO225> - PTERMS(:,57,202) = +TPK%K201(:)*PCONC(:,1)*TPK%RO225(:) +!PTERMS(HO2,K108) = +1.02767*K108*<AROP>*<MO2> + PTERMS(:,15,108) = +1.02767*TPK%K108(:)*PCONC(:,38)*PCONC(:,32) ! -!PTERMS(NO2,K202) = +K202*<RO2T>*<RO225> - PTERMS(:,2,203) = +TPK%K202(:)*PCONC(:,85)*TPK%RO225(:) +!PTERMS(HCHO,K108) = +K108*<AROP>*<MO2> + PTERMS(:,22,108) = +TPK%K108(:)*PCONC(:,38)*PCONC(:,32) ! -!PTERMS(RPR3,K202) = +K202*<RO2T>*<RO225> - PTERMS(:,57,203) = +TPK%K202(:)*PCONC(:,85)*TPK%RO225(:) +!PTERMS(CARBO,K108) = +1.99461*K108*<AROP>*<MO2> + PTERMS(:,25,108) = +1.99461*TPK%K108(:)*PCONC(:,38)*PCONC(:,32) ! -!PTERMS(RO2T,K202) = -K202*<RO2T>*<RO225> - PTERMS(:,85,203) = -TPK%K202(:)*PCONC(:,85)*TPK%RO225(:) +!PTERMS(MO2,K108) = -K108*<AROP>*<MO2> + PTERMS(:,32,108) = -TPK%K108(:)*PCONC(:,38)*PCONC(:,32) ! -!PTERMS(NO2,K203) = +K203*<HO2>*<RO225> - PTERMS(:,2,204) = +TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) +!PTERMS(AROP,K108) = -K108*<AROP>*<MO2> + PTERMS(:,38,108) = -TPK%K108(:)*PCONC(:,38)*PCONC(:,32) ! -!PTERMS(HO2,K203) = -K203*<HO2>*<RO225> - PTERMS(:,10,204) = -TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) +!PTERMS(HO2,K109) = +0.82998*K109*<CARBOP>*<MO2> + PTERMS(:,15,109) = +0.82998*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) ! -!PTERMS(OH,K203) = +K203*<HO2>*<RO225> - PTERMS(:,15,204) = +TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) +!PTERMS(HCHO,K109) = +0.95723*K109*<CARBOP>*<MO2> + PTERMS(:,22,109) = +0.95723*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) ! -!PTERMS(RPR3,K203) = +K203*<HO2>*<RO225> - PTERMS(:,57,204) = +TPK%K203(:)*PCONC(:,10)*TPK%RO225(:) +!PTERMS(ALD,K109) = +0.08295*K109*<CARBOP>*<MO2> + PTERMS(:,23,109) = +0.08295*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) ! ! RETURN -END SUBROUTINE SUBT33 +END SUBROUTINE SUBT22 ! -SUBROUTINE SUBT34 +SUBROUTINE SUBT23 ! -!Indices 681 a 700 +!Indices 461 a 480 ! -!PTERMS(NO,K204) = -K204*<NO>*<RO226> - PTERMS(:,1,205) = -TPK%K204(:)*PCONC(:,1)*TPK%RO226(:) +!PTERMS(CARBO,K109) = +0.15387*K109*<CARBOP>*<MO2> + PTERMS(:,25,109) = +0.15387*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) ! -!PTERMS(NO2,K204) = +K204*<NO>*<RO226> - PTERMS(:,2,205) = +TPK%K204(:)*PCONC(:,1)*TPK%RO226(:) +!PTERMS(ORA2,K109) = +0.13684*K109*<CARBOP>*<MO2> + PTERMS(:,31,109) = +0.13684*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) ! -!PTERMS(UR17,K204) = +1.0000000*K204*<NO>*<RO226> - PTERMS(:,55,205) = +1.0000000*TPK%K204(:)*PCONC(:,1)*TPK%RO226(:) +!PTERMS(MO2,K109) = -K109*<CARBOP>*<MO2> + PTERMS(:,32,109) = -TPK%K109(:)*PCONC(:,39)*PCONC(:,32) ! -!PTERMS(RO2T,K204) = +K204*<NO>*<RO226> - PTERMS(:,85,205) = +TPK%K204(:)*PCONC(:,1)*TPK%RO226(:) +!PTERMS(CARBOP,K109) = -K109*<CARBOP>*<MO2> + PTERMS(:,39,109) = -TPK%K109(:)*PCONC(:,39)*PCONC(:,32) ! -!PTERMS(UR17,K205) = +1.0000000*K205*<RO2T>*<RO226> - PTERMS(:,55,206) = +1.0000000*TPK%K205(:)*PCONC(:,85)*TPK%RO226(:) +!PTERMS(XO2,K109) = +0.02212*K109*<CARBOP>*<MO2> + PTERMS(:,41,109) = +0.02212*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) ! -!PTERMS(RO2T,K205) = -K205*<RO2T>*<RO226> - PTERMS(:,85,206) = -TPK%K205(:)*PCONC(:,85)*TPK%RO226(:) +!PTERMS(NO2,K110) = +0.32440*K110*<OLN>*<MO2> + PTERMS(:,4,110) = +0.32440*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) ! -!PTERMS(HO2,K206) = -K206*<HO2>*<RO226> - PTERMS(:,10,207) = -TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) +!PTERMS(HO2,K110) = +0.67560*K110*<OLN>*<MO2> + PTERMS(:,15,110) = +0.67560*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) ! -!PTERMS(OH,K206) = +K206*<HO2>*<RO226> - PTERMS(:,15,207) = +TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) +!PTERMS(HCHO,K110) = +0.88625*K110*<OLN>*<MO2> + PTERMS(:,22,110) = +0.88625*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) ! -!PTERMS(UR17,K206) = +1.0000000*K206*<HO2>*<RO226> - PTERMS(:,55,207) = +1.0000000*TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) +!PTERMS(ALD,K110) = +0.41524*K110*<OLN>*<MO2> + PTERMS(:,23,110) = +0.41524*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) ! -!PTERMS(RO2T,K206) = +K206*<HO2>*<RO226> - PTERMS(:,85,207) = +TPK%K206(:)*PCONC(:,10)*TPK%RO226(:) +!PTERMS(KET,K110) = +0.09667*K110*<OLN>*<MO2> + PTERMS(:,24,110) = +0.09667*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) ! -!PTERMS(NO,K207) = -K207*<NO>*<RO227> - PTERMS(:,1,208) = -TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) +!PTERMS(ONIT,K110) = +0.67560*K110*<OLN>*<MO2> + PTERMS(:,26,110) = +0.67560*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) ! -!PTERMS(NO2,K207) = +TPK%CF28*K207*<NO>*<RO227> - PTERMS(:,2,208) = +TPK%CF28*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) +!PTERMS(MO2,K110) = -K110*<OLN>*<MO2> + PTERMS(:,32,110) = -TPK%K110(:)*PCONC(:,40)*PCONC(:,32) ! -!PTERMS(HO2,K207) = +TPK%CF28*K207*<NO>*<RO227> - PTERMS(:,10,208) = +TPK%CF28*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) +!PTERMS(OLN,K110) = -K110*<OLN>*<MO2> + PTERMS(:,40,110) = -TPK%K110(:)*PCONC(:,40)*PCONC(:,32) ! -!PTERMS(UR7,K207) = +TPK%CFA12*K207*<NO>*<RO227> - PTERMS(:,56,208) = +TPK%CFA12*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) +!PTERMS(HO2,K111) = +0.48079*K111*<ALKAP>*<CARBOP> + PTERMS(:,15,111) = +0.48079*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(URG10,K207) = +TPK%CF27*K207*<NO>*<RO227> - PTERMS(:,68,208) = +TPK%CF27*TPK%K207(:)*PCONC(:,1)*TPK%RO227(:) +!PTERMS(HCHO,K111) = +0.07600*K111*<ALKAP>*<CARBOP> + PTERMS(:,22,111) = +0.07600*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(HO2,K208) = +K208*<RO2T>*<RO227> - PTERMS(:,10,209) = +TPK%K208(:)*PCONC(:,85)*TPK%RO227(:) +!PTERMS(ALD,K111) = +0.71461*K111*<ALKAP>*<CARBOP> + PTERMS(:,23,111) = +0.71461*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(UR7,K208) = +K208*<RO2T>*<RO227> - PTERMS(:,56,209) = +TPK%K208(:)*PCONC(:,85)*TPK%RO227(:) +!PTERMS(KET,K111) = +0.18819*K111*<ALKAP>*<CARBOP> + PTERMS(:,24,111) = +0.18819*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(RO2T,K208) = -K208*<RO2T>*<RO227> - PTERMS(:,85,209) = -TPK%K208(:)*PCONC(:,85)*TPK%RO227(:) +!PTERMS(CARBO,K111) = +0.06954*K111*<ALKAP>*<CARBOP> + PTERMS(:,25,111) = +0.06954*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(HO2,K209) = -K209*<HO2>*<RO227> - PTERMS(:,10,210) = -TPK%K209(:)*PCONC(:,10)*TPK%RO227(:) +!PTERMS(ORA2,K111) = +0.49810*K111*<ALKAP>*<CARBOP> + PTERMS(:,31,111) = +0.49810*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(OH,K209) = +K209*<HO2>*<RO227> - PTERMS(:,15,210) = +TPK%K209(:)*PCONC(:,10)*TPK%RO227(:) +!PTERMS(MO2,K111) = +0.51480*K111*<ALKAP>*<CARBOP> + PTERMS(:,32,111) = +0.51480*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! ! RETURN -END SUBROUTINE SUBT34 +END SUBROUTINE SUBT23 ! -SUBROUTINE SUBT35 +SUBROUTINE SUBT24 ! -!Indices 701 a 720 +!Indices 481 a 500 ! -!PTERMS(UR7,K209) = +0.3*K209*<HO2>*<RO227> - PTERMS(:,56,210) = +0.3*TPK%K209(:)*PCONC(:,10)*TPK%RO227(:) +!PTERMS(ALKAP,K111) = -K111*<ALKAP>*<CARBOP> + PTERMS(:,33,111) = -TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(NO,K210) = -K210*<NO>*<RO228> - PTERMS(:,1,211) = -TPK%K210(:)*PCONC(:,1)*TPK%RO228(:) +!PTERMS(CARBOP,K111) = -K111*<ALKAP>*<CARBOP> + PTERMS(:,39,111) = -TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(NO2,K210) = +2.*K210*<NO>*<RO228> - PTERMS(:,2,211) = +2.*TPK%K210(:)*PCONC(:,1)*TPK%RO228(:) +!PTERMS(XO2,K111) = +0.11306*K111*<ALKAP>*<CARBOP> + PTERMS(:,41,111) = +0.11306*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(UR7,K210) = +0.3*K210*<NO>*<RO228> - PTERMS(:,56,211) = +0.3*TPK%K210(:)*PCONC(:,1)*TPK%RO228(:) +!PTERMS(HO2,K112) = +0.50078*K112*<ALKEP>*<CARBOP> + PTERMS(:,15,112) = +0.50078*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) ! -!PTERMS(NO2,K211) = +K211*<RO2T>*<RO228> - PTERMS(:,2,212) = +TPK%K211(:)*PCONC(:,85)*TPK%RO228(:) +!PTERMS(HCHO,K112) = +0.68192*K112*<ALKEP>*<CARBOP> + PTERMS(:,22,112) = +0.68192*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) ! -!PTERMS(UR7,K211) = +0.3*K211*<RO2T>*<RO228> - PTERMS(:,56,212) = +0.3*TPK%K211(:)*PCONC(:,85)*TPK%RO228(:) +!PTERMS(ALD,K112) = +0.68374*K112*<ALKEP>*<CARBOP> + PTERMS(:,23,112) = +0.68374*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) ! -!PTERMS(RO2T,K211) = -K211*<RO2T>*<RO228> - PTERMS(:,85,212) = -TPK%K211(:)*PCONC(:,85)*TPK%RO228(:) +!PTERMS(KET,K112) = +0.06579*K112*<ALKEP>*<CARBOP> + PTERMS(:,24,112) = +0.06579*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) ! -!PTERMS(NO2,K212) = +K212*<HO2>*<RO228> - PTERMS(:,2,213) = +TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) +!PTERMS(ORA2,K112) = +0.49922*K112*<ALKEP>*<CARBOP> + PTERMS(:,31,112) = +0.49922*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) ! -!PTERMS(HO2,K212) = -K212*<HO2>*<RO228> - PTERMS(:,10,213) = -TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) +!PTERMS(MO2,K112) = +0.50078*K112*<ALKEP>*<CARBOP> + PTERMS(:,32,112) = +0.50078*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) ! -!PTERMS(OH,K212) = +K212*<HO2>*<RO228> - PTERMS(:,15,213) = +TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) +!PTERMS(ALKEP,K112) = -K112*<ALKEP>*<CARBOP> + PTERMS(:,34,112) = -TPK%K112(:)*PCONC(:,34)*PCONC(:,39) ! -!PTERMS(UR7,K212) = +0.3*K212*<HO2>*<RO228> - PTERMS(:,56,213) = +0.3*TPK%K212(:)*PCONC(:,10)*TPK%RO228(:) +!PTERMS(CARBOP,K112) = -K112*<ALKEP>*<CARBOP> + PTERMS(:,39,112) = -TPK%K112(:)*PCONC(:,34)*PCONC(:,39) ! -!PTERMS(NO,K213) = -K213*<NO>*<RO229> - PTERMS(:,1,214) = -TPK%K213(:)*PCONC(:,1)*TPK%RO229(:) +!PTERMS(HO2,K113) = +0.50600*K113*<BIOP>*<CARBOP> + PTERMS(:,15,113) = +0.50600*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(NO2,K213) = +TPK%CF30*K213*<NO>*<RO229> - PTERMS(:,2,214) = +TPK%CF30*TPK%K213(:)*PCONC(:,1)*TPK%RO229(:) +!PTERMS(ALKE,K113) = +0.24463*K113*<BIOP>*<CARBOP> + PTERMS(:,19,113) = +0.24463*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(RO2T,K213) = +TPK%CF30*K213*<NO>*<RO229> - PTERMS(:,85,214) = +TPK%CF30*TPK%K213(:)*PCONC(:,1)*TPK%RO229(:) +!PTERMS(HCHO,K113) = +0.34000*K113*<BIOP>*<CARBOP> + PTERMS(:,22,113) = +0.34000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(RO2T,K214) = -K214*<RO2T>*<RO229> - PTERMS(:,85,215) = -TPK%K214(:)*PCONC(:,85)*TPK%RO229(:) +!PTERMS(ALD,K113) = +0.00000*K113*<BIOP>*<CARBOP> + PTERMS(:,23,113) = +0.00000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(HO2,K215) = -K215*<HO2>*<RO229> - PTERMS(:,10,216) = -TPK%K215(:)*PCONC(:,10)*TPK%RO229(:) +!PTERMS(KET,K113) = +0.00000*K113*<BIOP>*<CARBOP> + PTERMS(:,24,113) = +0.00000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(OH,K215) = +K215*<HO2>*<RO229> - PTERMS(:,15,216) = +TPK%K215(:)*PCONC(:,10)*TPK%RO229(:) +!PTERMS(CARBO,K113) = +0.78591*K113*<BIOP>*<CARBOP> + PTERMS(:,25,113) = +0.78591*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(RO2T,K215) = +K215*<HO2>*<RO229> - PTERMS(:,85,216) = +TPK%K215(:)*PCONC(:,10)*TPK%RO229(:) +!PTERMS(ORA2,K113) = +0.49400*K113*<BIOP>*<CARBOP> + PTERMS(:,31,113) = +0.49400*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(NO,K216) = -K216*<NO>*<RO240> - PTERMS(:,1,217) = -TPK%K216(:)*PCONC(:,1)*TPK%RO240(:) +!PTERMS(MO2,K113) = +0.50600*K113*<BIOP>*<CARBOP> + PTERMS(:,32,113) = +0.50600*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(NO2,K216) = +K216*<NO>*<RO240> - PTERMS(:,2,217) = +TPK%K216(:)*PCONC(:,1)*TPK%RO240(:) +!PTERMS(BIOP,K113) = -K113*<BIOP>*<CARBOP> + PTERMS(:,35,113) = -TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! ! RETURN -END SUBROUTINE SUBT35 +END SUBROUTINE SUBT24 ! -SUBROUTINE SUBT36 +SUBROUTINE SUBT25 ! -!Indices 721 a 740 +!Indices 501 a 520 ! -!PTERMS(RPR8,K216) = +K216*<NO>*<RO240> - PTERMS(:,71,217) = +TPK%K216(:)*PCONC(:,1)*TPK%RO240(:) +!PTERMS(CARBOP,K113) = -K113*<BIOP>*<CARBOP> + PTERMS(:,39,113) = -TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(RO2T,K216) = +K216*<NO>*<RO240> - PTERMS(:,85,217) = +TPK%K216(:)*PCONC(:,1)*TPK%RO240(:) +!PTERMS(HO2,K114) = +K114*<AROP>*<CARBOP> + PTERMS(:,15,114) = +TPK%K114(:)*PCONC(:,38)*PCONC(:,39) ! -!PTERMS(RPR8,K217) = +K217*<RO2T>*<RO240> - PTERMS(:,71,218) = +TPK%K217(:)*PCONC(:,85)*TPK%RO240(:) +!PTERMS(CARBO,K114) = +1.99455*K114*<AROP>*<CARBOP> + PTERMS(:,25,114) = +1.99455*TPK%K114(:)*PCONC(:,38)*PCONC(:,39) ! -!PTERMS(RO2T,K217) = -K217*<RO2T>*<RO240> - PTERMS(:,85,218) = -TPK%K217(:)*PCONC(:,85)*TPK%RO240(:) +!PTERMS(MO2,K114) = +K114*<AROP>*<CARBOP> + PTERMS(:,32,114) = +TPK%K114(:)*PCONC(:,38)*PCONC(:,39) ! -!PTERMS(HO2,K218) = -K218*<HO2>*<RO240> - PTERMS(:,10,219) = -TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) +!PTERMS(AROP,K114) = -K114*<AROP>*<CARBOP> + PTERMS(:,38,114) = -TPK%K114(:)*PCONC(:,38)*PCONC(:,39) ! -!PTERMS(OH,K218) = +K218*<HO2>*<RO240> - PTERMS(:,15,219) = +TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) +!PTERMS(CARBOP,K114) = -K114*<AROP>*<CARBOP> + PTERMS(:,39,114) = -TPK%K114(:)*PCONC(:,38)*PCONC(:,39) ! -!PTERMS(RPR8,K218) = +K218*<HO2>*<RO240> - PTERMS(:,71,219) = +TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) +!PTERMS(HO2,K115) = +0.07566*K115*<CARBOP>*<CARBOP> + PTERMS(:,15,115) = +0.07566*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(RO2T,K218) = +K218*<HO2>*<RO240> - PTERMS(:,85,219) = +TPK%K218(:)*PCONC(:,10)*TPK%RO240(:) +!PTERMS(HCHO,K115) = +0.03432*K115*<CARBOP>*<CARBOP> + PTERMS(:,22,115) = +0.03432*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(RO2T,K219) = -K219*<RO2T>*<RO230> - PTERMS(:,85,220) = -TPK%K219(:)*PCONC(:,85)*TPK%RO230(:) +!PTERMS(ALD,K115) = +0.06969*K115*<CARBOP>*<CARBOP> + PTERMS(:,23,115) = +0.06969*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(HO2,K220) = -K220*<HO2>*<RO230> - PTERMS(:,10,221) = -TPK%K220(:)*PCONC(:,10)*TPK%RO230(:) +!PTERMS(KET,K115) = +0.02190*K115*<CARBOP>*<CARBOP> + PTERMS(:,24,115) = +0.02190*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(OH,K220) = +K220*<HO2>*<RO230> - PTERMS(:,15,221) = +TPK%K220(:)*PCONC(:,10)*TPK%RO230(:) +!PTERMS(CARBO,K115) = +0.10777*K115*<CARBOP>*<CARBOP> + PTERMS(:,25,115) = +0.10777*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(RO2T,K220) = +K220*<HO2>*<RO230> - PTERMS(:,85,221) = +TPK%K220(:)*PCONC(:,10)*TPK%RO230(:) +!PTERMS(ORA2,K115) = +0.09955*K115*<CARBOP>*<CARBOP> + PTERMS(:,31,115) = +0.09955*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(NO,K221) = -K221*<NO>*<RO231> - PTERMS(:,1,222) = -TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) +!PTERMS(MO2,K115) = +1.66702*K115*<CARBOP>*<CARBOP> + PTERMS(:,32,115) = +1.66702*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(NO2,K221) = +TPK%CF32*K221*<NO>*<RO231> - PTERMS(:,2,222) = +TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) +!PTERMS(CARBOP,K115) = -K115*<CARBOP>*<CARBOP> + PTERMS(:,39,115) = -TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(HO2,K221) = +TPK%CF32*K221*<NO>*<RO231> - PTERMS(:,10,222) = +TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) +!PTERMS(XO2,K115) = +0.01593*K115*<CARBOP>*<CARBOP> + PTERMS(:,41,115) = +0.01593*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(URG8,K221) = +TPK%CF31*K221*<NO>*<RO231> - PTERMS(:,64,222) = +TPK%CF31*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) +!PTERMS(NO2,K116) = +0.00000*K116*<OLN>*<CARBOP> + PTERMS(:,4,116) = +0.00000*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(UR19,K221) = +TPK%CF32*K221*<NO>*<RO231> - PTERMS(:,65,222) = +TPK%CF32*TPK%K221(:)*PCONC(:,1)*TPK%RO231(:) +!PTERMS(HO2,K116) = +0.17599*K116*<OLN>*<CARBOP> + PTERMS(:,15,116) = +0.17599*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(HO2,K222) = +K222*<RO2T>*<RO231> - PTERMS(:,10,223) = +TPK%K222(:)*PCONC(:,85)*TPK%RO231(:) +!PTERMS(HCHO,K116) = +0.13414*K116*<OLN>*<CARBOP> + PTERMS(:,22,116) = +0.13414*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(UR19,K222) = +K222*<RO2T>*<RO231> - PTERMS(:,65,223) = +TPK%K222(:)*PCONC(:,85)*TPK%RO231(:) +!PTERMS(ALD,K116) = +0.42122*K116*<OLN>*<CARBOP> + PTERMS(:,23,116) = +0.42122*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(RO2T,K222) = -K222*<RO2T>*<RO231> - PTERMS(:,85,223) = -TPK%K222(:)*PCONC(:,85)*TPK%RO231(:) +!PTERMS(KET,K116) = +0.10822*K116*<OLN>*<CARBOP> + PTERMS(:,24,116) = +0.10822*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! ! RETURN -END SUBROUTINE SUBT36 +END SUBROUTINE SUBT25 ! -SUBROUTINE SUBT37 +SUBROUTINE SUBT26 ! -!Indices 741 a 760 +!Indices 521 a 540 ! -!PTERMS(HO2,K223) = -K223*<HO2>*<RO231> - PTERMS(:,10,224) = -TPK%K223(:)*PCONC(:,10)*TPK%RO231(:) +!PTERMS(ONIT,K116) = +0.66562*K116*<OLN>*<CARBOP> + PTERMS(:,26,116) = +0.66562*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(OH,K223) = +K223*<HO2>*<RO231> - PTERMS(:,15,224) = +TPK%K223(:)*PCONC(:,10)*TPK%RO231(:) +!PTERMS(ORA2,K116) = +0.48963*K116*<OLN>*<CARBOP> + PTERMS(:,31,116) = +0.48963*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(UR19,K223) = +K223*<HO2>*<RO231> - PTERMS(:,65,224) = +TPK%K223(:)*PCONC(:,10)*TPK%RO231(:) +!PTERMS(MO2,K116) = +0.51037*K116*<OLN>*<CARBOP> + PTERMS(:,32,116) = +0.51037*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(NO,K224) = -K224*<NO>*<RO232> - PTERMS(:,1,225) = -TPK%K224(:)*PCONC(:,1)*TPK%RO232(:) +!PTERMS(CARBOP,K116) = -K116*<OLN>*<CARBOP> + PTERMS(:,39,116) = -TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(NO2,K224) = +TPK%CF34*K224*<NO>*<RO232> - PTERMS(:,2,225) = +TPK%CF34*TPK%K224(:)*PCONC(:,1)*TPK%RO232(:) +!PTERMS(OLN,K116) = -K116*<OLN>*<CARBOP> + PTERMS(:,40,116) = -TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(URG9,K224) = +TPK%CFA14*K224*<NO>*<RO232> - PTERMS(:,66,225) = +TPK%CFA14*TPK%K224(:)*PCONC(:,1)*TPK%RO232(:) +!PTERMS(HO2,K117) = +K117*<OLN>*<OLN> + PTERMS(:,15,117) = +TPK%K117(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(RO2T,K224) = +TPK%CF34*K224*<NO>*<RO232> - PTERMS(:,85,225) = +TPK%CF34*TPK%K224(:)*PCONC(:,1)*TPK%RO232(:) +!PTERMS(ONIT,K117) = +2.00*K117*<OLN>*<OLN> + PTERMS(:,26,117) = +2.00*TPK%K117(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(RO2T,K225) = -K225*<RO2T>*<RO232> - PTERMS(:,85,226) = -TPK%K225(:)*PCONC(:,85)*TPK%RO232(:) +!PTERMS(OLN,K117) = -K117*<OLN>*<OLN> + PTERMS(:,40,117) = -TPK%K117(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(HO2,K226) = -K226*<HO2>*<RO232> - PTERMS(:,10,227) = -TPK%K226(:)*PCONC(:,10)*TPK%RO232(:) +!PTERMS(NO2,K118) = +0.00000*K118*<OLN>*<OLN> + PTERMS(:,4,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(OH,K226) = +K226*<HO2>*<RO232> - PTERMS(:,15,227) = +TPK%K226(:)*PCONC(:,10)*TPK%RO232(:) +!PTERMS(HO2,K118) = +0.00000*K118*<OLN>*<OLN> + PTERMS(:,15,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(RO2T,K226) = +K226*<HO2>*<RO232> - PTERMS(:,85,227) = +TPK%K226(:)*PCONC(:,10)*TPK%RO232(:) +!PTERMS(HCHO,K118) = +0.00000*K118*<OLN>*<OLN> + PTERMS(:,22,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(NO,K227) = -K227*<NO>*<RO241> - PTERMS(:,1,228) = -TPK%K227(:)*PCONC(:,1)*TPK%RO241(:) +!PTERMS(ALD,K118) = +0.00000*K118*<OLN>*<OLN> + PTERMS(:,23,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(NO2,K227) = +TPK%CF36*K227*<NO>*<RO241> - PTERMS(:,2,228) = +TPK%CF36*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:) +!PTERMS(KET,K118) = +0.00000*K118*<OLN>*<OLN> + PTERMS(:,24,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(HO2,K227) = +TPK%CF36*K227*<NO>*<RO241> - PTERMS(:,10,228) = +TPK%CF36*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:) +!PTERMS(ONIT,K118) = +0.00000*K118*<OLN>*<OLN> + PTERMS(:,26,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(URG9,K227) = +TPK%CFA15*K227*<NO>*<RO241> - PTERMS(:,66,228) = +TPK%CFA15*TPK%K227(:)*PCONC(:,1)*TPK%RO241(:) +!PTERMS(OLN,K118) = -K118*<OLN>*<OLN> + PTERMS(:,40,118) = -TPK%K118(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(HO2,K228) = +K228*<RO2T>*<RO241> - PTERMS(:,10,229) = +TPK%K228(:)*PCONC(:,85)*TPK%RO241(:) +!PTERMS(NO2,K119) = +K119*<MO2>*<NO3> + PTERMS(:,4,119) = +TPK%K119(:)*PCONC(:,32)*PCONC(:,5) ! -!PTERMS(URG9,K228) = +0.9999996*K228*<RO2T>*<RO241> - PTERMS(:,66,229) = +0.9999996*TPK%K228(:)*PCONC(:,85)*TPK%RO241(:) +!PTERMS(NO3,K119) = -K119*<MO2>*<NO3> + PTERMS(:,5,119) = -TPK%K119(:)*PCONC(:,32)*PCONC(:,5) ! -!PTERMS(RO2T,K228) = -K228*<RO2T>*<RO241> - PTERMS(:,85,229) = -TPK%K228(:)*PCONC(:,85)*TPK%RO241(:) +!PTERMS(HO2,K119) = +K119*<MO2>*<NO3> + PTERMS(:,15,119) = +TPK%K119(:)*PCONC(:,32)*PCONC(:,5) ! -!PTERMS(HO2,K229) = -K229*<HO2>*<RO241> - PTERMS(:,10,230) = -TPK%K229(:)*PCONC(:,10)*TPK%RO241(:) +!PTERMS(HCHO,K119) = +K119*<MO2>*<NO3> + PTERMS(:,22,119) = +TPK%K119(:)*PCONC(:,32)*PCONC(:,5) ! -!PTERMS(OH,K229) = +K229*<HO2>*<RO241> - PTERMS(:,15,230) = +TPK%K229(:)*PCONC(:,10)*TPK%RO241(:) +!PTERMS(MO2,K119) = -K119*<MO2>*<NO3> + PTERMS(:,32,119) = -TPK%K119(:)*PCONC(:,32)*PCONC(:,5) ! ! RETURN -END SUBROUTINE SUBT37 +END SUBROUTINE SUBT26 ! -SUBROUTINE SUBT38 +SUBROUTINE SUBT27 ! -!Indices 761 a 780 +!Indices 541 a 560 ! -!PTERMS(URG9,K229) = +0.9999996*K229*<HO2>*<RO241> - PTERMS(:,66,230) = +0.9999996*TPK%K229(:)*PCONC(:,10)*TPK%RO241(:) +!PTERMS(NO2,K120) = +K120*<ALKAP>*<NO3> + PTERMS(:,4,120) = +TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(RO2T,K230) = +K230*<RO233> - PTERMS(:,85,231) = +TPK%K230(:)*TPK%RO233(:) +!PTERMS(NO3,K120) = -K120*<ALKAP>*<NO3> + PTERMS(:,5,120) = -TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(NO,K231) = -K231*<NO>*<RO233> - PTERMS(:,1,232) = -TPK%K231(:)*PCONC(:,1)*TPK%RO233(:) +!PTERMS(HO2,K120) = +0.81290*K120*<ALKAP>*<NO3> + PTERMS(:,15,120) = +0.81290*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(NO2,K231) = +K231*<NO>*<RO233> - PTERMS(:,2,232) = +TPK%K231(:)*PCONC(:,1)*TPK%RO233(:) +!PTERMS(HCHO,K120) = +0.03142*K120*<ALKAP>*<NO3> + PTERMS(:,22,120) = +0.03142*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(HO2,K231) = +K231*<NO>*<RO233> - PTERMS(:,10,232) = +TPK%K231(:)*PCONC(:,1)*TPK%RO233(:) +!PTERMS(ALD,K120) = +0.33743*K120*<ALKAP>*<NO3> + PTERMS(:,23,120) = +0.33743*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(RPG3,K231) = +0.3000000*K231*<NO>*<RO233> - PTERMS(:,52,232) = +0.3000000*TPK%K231(:)*PCONC(:,1)*TPK%RO233(:) +!PTERMS(KET,K120) = +0.62978*K120*<ALKAP>*<NO3> + PTERMS(:,24,120) = +0.62978*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(HO2,K232) = +K232*<RO2T>*<RO233> - PTERMS(:,10,233) = +TPK%K232(:)*PCONC(:,85)*TPK%RO233(:) +!PTERMS(CARBO,K120) = +0.03531*K120*<ALKAP>*<NO3> + PTERMS(:,25,120) = +0.03531*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(RPG3,K232) = +1.0000000*K232*<RO2T>*<RO233> - PTERMS(:,52,233) = +1.0000000*TPK%K232(:)*PCONC(:,85)*TPK%RO233(:) +!PTERMS(MO2,K120) = +0.09731*K120*<ALKAP>*<NO3> + PTERMS(:,32,120) = +0.09731*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(RO2T,K232) = -K232*<RO2T>*<RO233> - PTERMS(:,85,233) = -TPK%K232(:)*PCONC(:,85)*TPK%RO233(:) +!PTERMS(ALKAP,K120) = -K120*<ALKAP>*<NO3> + PTERMS(:,33,120) = -TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(HO2,K233) = -K233*<HO2>*<RO233> - PTERMS(:,10,234) = -TPK%K233(:)*PCONC(:,10)*TPK%RO233(:) +!PTERMS(XO2,K120) = +0.16271*K120*<ALKAP>*<NO3> + PTERMS(:,41,120) = +0.16271*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(OH,K233) = +K233*<HO2>*<RO233> - PTERMS(:,15,234) = +TPK%K233(:)*PCONC(:,10)*TPK%RO233(:) +!PTERMS(NO2,K121) = +K121*<ALKEP>*<NO3> + PTERMS(:,4,121) = +TPK%K121(:)*PCONC(:,34)*PCONC(:,5) ! -!PTERMS(RPG3,K233) = +0.3000000*K233*<HO2>*<RO233> - PTERMS(:,52,234) = +0.3000000*TPK%K233(:)*PCONC(:,10)*TPK%RO233(:) +!PTERMS(NO3,K121) = -K121*<ALKEP>*<NO3> + PTERMS(:,5,121) = -TPK%K121(:)*PCONC(:,34)*PCONC(:,5) ! -!PTERMS(NO,K234) = -K234*<NO>*<RO242> - PTERMS(:,1,235) = -TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) +!PTERMS(HO2,K121) = +K121*<ALKEP>*<NO3> + PTERMS(:,15,121) = +TPK%K121(:)*PCONC(:,34)*PCONC(:,5) ! -!PTERMS(NO2,K234) = +K234*<NO>*<RO242> - PTERMS(:,2,235) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) +!PTERMS(HCHO,K121) = +1.40909*K121*<ALKEP>*<NO3> + PTERMS(:,22,121) = +1.40909*TPK%K121(:)*PCONC(:,34)*PCONC(:,5) ! -!PTERMS(HO2,K234) = +K234*<NO>*<RO242> - PTERMS(:,10,235) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) +!PTERMS(ALD,K121) = +0.43039*K121*<ALKEP>*<NO3> + PTERMS(:,23,121) = +0.43039*TPK%K121(:)*PCONC(:,34)*PCONC(:,5) ! -!PTERMS(MGLY,K234) = +K234*<NO>*<RO242> - PTERMS(:,41,235) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) +!PTERMS(KET,K121) = +0.02051*K121*<ALKEP>*<NO3> + PTERMS(:,24,121) = +0.02051*TPK%K121(:)*PCONC(:,34)*PCONC(:,5) ! -!PTERMS(RP10,K234) = +K234*<NO>*<RO242> - PTERMS(:,72,235) = +TPK%K234(:)*PCONC(:,1)*TPK%RO242(:) +!PTERMS(ALKEP,K121) = -K121*<ALKEP>*<NO3> + PTERMS(:,34,121) = -TPK%K121(:)*PCONC(:,34)*PCONC(:,5) ! -!PTERMS(HO2,K235) = +K235*<RO2T>*<RO242> - PTERMS(:,10,236) = +TPK%K235(:)*PCONC(:,85)*TPK%RO242(:) +!PTERMS(NO2,K122) = +K122*<BIOP>*<NO3> + PTERMS(:,4,122) = +TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! -!PTERMS(MGLY,K235) = +K235*<RO2T>*<RO242> - PTERMS(:,41,236) = +TPK%K235(:)*PCONC(:,85)*TPK%RO242(:) +!PTERMS(NO3,K122) = -K122*<BIOP>*<NO3> + PTERMS(:,5,122) = -TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! -!PTERMS(RP10,K235) = +K235*<RO2T>*<RO242> - PTERMS(:,72,236) = +TPK%K235(:)*PCONC(:,85)*TPK%RO242(:) +!PTERMS(HO2,K122) = +K122*<BIOP>*<NO3> + PTERMS(:,15,122) = +TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! ! RETURN -END SUBROUTINE SUBT38 +END SUBROUTINE SUBT27 ! -SUBROUTINE SUBT39 +SUBROUTINE SUBT28 ! -!Indices 781 a 800 +!Indices 561 a 580 ! -!PTERMS(RO2T,K235) = -K235*<RO2T>*<RO242> - PTERMS(:,85,236) = -TPK%K235(:)*PCONC(:,85)*TPK%RO242(:) +!PTERMS(ALKE,K122) = +0.42729*K122*<BIOP>*<NO3> + PTERMS(:,19,122) = +0.42729*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! -!PTERMS(HO2,K236) = -K236*<HO2>*<RO242> - PTERMS(:,10,237) = -TPK%K236(:)*PCONC(:,10)*TPK%RO242(:) +!PTERMS(HCHO,K122) = +0.68600*K122*<BIOP>*<NO3> + PTERMS(:,22,122) = +0.68600*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! -!PTERMS(OH,K236) = +K236*<HO2>*<RO242> - PTERMS(:,15,237) = +TPK%K236(:)*PCONC(:,10)*TPK%RO242(:) +!PTERMS(ALD,K122) = +0.00000*K122*<BIOP>*<NO3> + PTERMS(:,23,122) = +0.00000*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! -!PTERMS(MGLY,K236) = +K236*<HO2>*<RO242> - PTERMS(:,41,237) = +TPK%K236(:)*PCONC(:,10)*TPK%RO242(:) +!PTERMS(KET,K122) = +0.00000*K122*<BIOP>*<NO3> + PTERMS(:,24,122) = +0.00000*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! -!PTERMS(RP10,K236) = +K236*<HO2>*<RO242> - PTERMS(:,72,237) = +TPK%K236(:)*PCONC(:,10)*TPK%RO242(:) +!PTERMS(CARBO,K122) = +0.61160*K122*<BIOP>*<NO3> + PTERMS(:,25,122) = +0.61160*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! -!PTERMS(RO2T,K237) = +K237*<RO234> - PTERMS(:,85,238) = +TPK%K237(:)*TPK%RO234(:) +!PTERMS(BIOP,K122) = -K122*<BIOP>*<NO3> + PTERMS(:,35,122) = -TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! -!PTERMS(NO,K238) = -K238*<NO>*<RO234> - PTERMS(:,1,239) = -TPK%K238(:)*PCONC(:,1)*TPK%RO234(:) +!PTERMS(NO2,K123) = +K123*<AROP>*<NO3> + PTERMS(:,4,123) = +TPK%K123(:)*PCONC(:,38)*PCONC(:,5) ! -!PTERMS(NO2,K238) = +K238*<NO>*<RO234> - PTERMS(:,2,239) = +TPK%K238(:)*PCONC(:,1)*TPK%RO234(:) +!PTERMS(NO3,K123) = -K123*<AROP>*<NO3> + PTERMS(:,5,123) = -TPK%K123(:)*PCONC(:,38)*PCONC(:,5) ! -!PTERMS(HO2,K238) = +K238*<NO>*<RO234> - PTERMS(:,10,239) = +TPK%K238(:)*PCONC(:,1)*TPK%RO234(:) +!PTERMS(HO2,K123) = +K123*<AROP>*<NO3> + PTERMS(:,15,123) = +TPK%K123(:)*PCONC(:,38)*PCONC(:,5) ! -!PTERMS(RP11,K238) = +0.3*K238*<NO>*<RO234> - PTERMS(:,73,239) = +0.3*TPK%K238(:)*PCONC(:,1)*TPK%RO234(:) +!PTERMS(CARBO,K123) = +2.81904*K123*<AROP>*<NO3> + PTERMS(:,25,123) = +2.81904*TPK%K123(:)*PCONC(:,38)*PCONC(:,5) ! -!PTERMS(HO2,K239) = +K239*<RO2T>*<RO234> - PTERMS(:,10,240) = +TPK%K239(:)*PCONC(:,85)*TPK%RO234(:) +!PTERMS(AROP,K123) = -K123*<AROP>*<NO3> + PTERMS(:,38,123) = -TPK%K123(:)*PCONC(:,38)*PCONC(:,5) ! -!PTERMS(RP11,K239) = +K239*<RO2T>*<RO234> - PTERMS(:,73,240) = +TPK%K239(:)*PCONC(:,85)*TPK%RO234(:) +!PTERMS(NO2,K124) = +K124*<CARBOP>*<NO3> + PTERMS(:,4,124) = +TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! -!PTERMS(RO2T,K239) = -K239*<RO2T>*<RO234> - PTERMS(:,85,240) = -TPK%K239(:)*PCONC(:,85)*TPK%RO234(:) +!PTERMS(NO3,K124) = -K124*<CARBOP>*<NO3> + PTERMS(:,5,124) = -TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! -!PTERMS(HO2,K240) = -K240*<HO2>*<RO234> - PTERMS(:,10,241) = -TPK%K240(:)*PCONC(:,10)*TPK%RO234(:) +!PTERMS(HO2,K124) = +0.04915*K124*<CARBOP>*<NO3> + PTERMS(:,15,124) = +0.04915*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! -!PTERMS(OH,K240) = +K240*<HO2>*<RO234> - PTERMS(:,15,241) = +TPK%K240(:)*PCONC(:,10)*TPK%RO234(:) +!PTERMS(HCHO,K124) = +0.03175*K124*<CARBOP>*<NO3> + PTERMS(:,22,124) = +0.03175*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! -!PTERMS(RP11,K240) = +0.3*K240*<HO2>*<RO234> - PTERMS(:,73,241) = +0.3*TPK%K240(:)*PCONC(:,10)*TPK%RO234(:) +!PTERMS(ALD,K124) = +0.02936*K124*<CARBOP>*<NO3> + PTERMS(:,23,124) = +0.02936*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! -!PTERMS(NO,K241) = -K241*<NO>*<RO243> - PTERMS(:,1,242) = -TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) +!PTERMS(CARBO,K124) = +0.03455*K124*<CARBOP>*<NO3> + PTERMS(:,25,124) = +0.03455*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! -!PTERMS(NO2,K241) = +K241*<NO>*<RO243> - PTERMS(:,2,242) = +TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) +!PTERMS(MO2,K124) = +0.91910*K124*<CARBOP>*<NO3> + PTERMS(:,32,124) = +0.91910*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! -!PTERMS(HO2,K241) = +K241*<NO>*<RO243> - PTERMS(:,10,242) = +TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) +!PTERMS(CARBOP,K124) = -K124*<CARBOP>*<NO3> + PTERMS(:,39,124) = -TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! -!PTERMS(MGLY,K241) = +K241*<NO>*<RO243> - PTERMS(:,41,242) = +TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) +!PTERMS(XO2,K124) = +0.01021*K124*<CARBOP>*<NO3> + PTERMS(:,41,124) = +0.01021*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! ! RETURN -END SUBROUTINE SUBT39 +END SUBROUTINE SUBT28 ! -SUBROUTINE SUBT40 +SUBROUTINE SUBT29 ! -!Indices 801 a 820 +!Indices 581 a 600 ! -!PTERMS(RP10,K241) = +K241*<NO>*<RO243> - PTERMS(:,72,242) = +TPK%K241(:)*PCONC(:,1)*TPK%RO243(:) +!PTERMS(NO2,K125) = +1.74072*K125*<OLN>*<NO3> + PTERMS(:,4,125) = +1.74072*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) ! -!PTERMS(HO2,K242) = +K242*<RO2T>*<RO243> - PTERMS(:,10,243) = +TPK%K242(:)*PCONC(:,85)*TPK%RO243(:) +!PTERMS(NO3,K125) = -K125*<OLN>*<NO3> + PTERMS(:,5,125) = -TPK%K125(:)*PCONC(:,40)*PCONC(:,5) ! -!PTERMS(MGLY,K242) = +K242*<RO2T>*<RO243> - PTERMS(:,41,243) = +TPK%K242(:)*PCONC(:,85)*TPK%RO243(:) +!PTERMS(HO2,K125) = +0.25928*K125*<OLN>*<NO3> + PTERMS(:,15,125) = +0.25928*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) ! -!PTERMS(RP10,K242) = +K242*<RO2T>*<RO243> - PTERMS(:,72,243) = +TPK%K242(:)*PCONC(:,85)*TPK%RO243(:) +!PTERMS(HCHO,K125) = +0.20740*K125*<OLN>*<NO3> + PTERMS(:,22,125) = +0.20740*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) ! -!PTERMS(RO2T,K242) = -K242*<RO2T>*<RO243> - PTERMS(:,85,243) = -TPK%K242(:)*PCONC(:,85)*TPK%RO243(:) +!PTERMS(ALD,K125) = +0.91850*K125*<OLN>*<NO3> + PTERMS(:,23,125) = +0.91850*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) ! -!PTERMS(HO2,K243) = -K243*<HO2>*<RO243> - PTERMS(:,10,244) = -TPK%K243(:)*PCONC(:,10)*TPK%RO243(:) +!PTERMS(KET,K125) = +0.34740*K125*<OLN>*<NO3> + PTERMS(:,24,125) = +0.34740*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) ! -!PTERMS(OH,K243) = +K243*<HO2>*<RO243> - PTERMS(:,15,244) = +TPK%K243(:)*PCONC(:,10)*TPK%RO243(:) +!PTERMS(ONIT,K125) = +0.25928*K125*<OLN>*<NO3> + PTERMS(:,26,125) = +0.25928*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) ! -!PTERMS(MGLY,K243) = +K243*<HO2>*<RO243> - PTERMS(:,41,244) = +TPK%K243(:)*PCONC(:,10)*TPK%RO243(:) +!PTERMS(OLN,K125) = -K125*<OLN>*<NO3> + PTERMS(:,40,125) = -TPK%K125(:)*PCONC(:,40)*PCONC(:,5) ! -!PTERMS(RP10,K243) = +K243*<HO2>*<RO243> - PTERMS(:,72,244) = +TPK%K243(:)*PCONC(:,10)*TPK%RO243(:) +!PTERMS(HO2,K126) = -K126*<XO2>*<HO2> + PTERMS(:,15,126) = -TPK%K126(:)*PCONC(:,41)*PCONC(:,15) ! -!PTERMS(RO2T,K244) = +K244*<RO235> - PTERMS(:,85,245) = +TPK%K244(:)*TPK%RO235(:) +!PTERMS(OP2,K126) = +1.00524*K126*<XO2>*<HO2> + PTERMS(:,29,126) = +1.00524*TPK%K126(:)*PCONC(:,41)*PCONC(:,15) ! -!PTERMS(NO,K245) = -K245*<NO>*<RO235> - PTERMS(:,1,246) = -TPK%K245(:)*PCONC(:,1)*TPK%RO235(:) +!PTERMS(XO2,K126) = -K126*<XO2>*<HO2> + PTERMS(:,41,126) = -TPK%K126(:)*PCONC(:,41)*PCONC(:,15) ! -!PTERMS(NO2,K245) = +K245*<NO>*<RO235> - PTERMS(:,2,246) = +TPK%K245(:)*PCONC(:,1)*TPK%RO235(:) +!PTERMS(HO2,K127) = +K127*<XO2>*<MO2> + PTERMS(:,15,127) = +TPK%K127(:)*PCONC(:,41)*PCONC(:,32) ! -!PTERMS(HO2,K245) = +K245*<NO>*<RO235> - PTERMS(:,10,246) = +TPK%K245(:)*PCONC(:,1)*TPK%RO235(:) +!PTERMS(HCHO,K127) = +K127*<XO2>*<MO2> + PTERMS(:,22,127) = +TPK%K127(:)*PCONC(:,41)*PCONC(:,32) ! -!PTERMS(RP11,K245) = +0.5*K245*<NO>*<RO235> - PTERMS(:,73,246) = +0.5*TPK%K245(:)*PCONC(:,1)*TPK%RO235(:) +!PTERMS(MO2,K127) = -K127*<XO2>*<MO2> + PTERMS(:,32,127) = -TPK%K127(:)*PCONC(:,41)*PCONC(:,32) ! -!PTERMS(HO2,K246) = +K246*<RO2T>*<RO235> - PTERMS(:,10,247) = +TPK%K246(:)*PCONC(:,85)*TPK%RO235(:) +!PTERMS(XO2,K127) = -K127*<XO2>*<MO2> + PTERMS(:,41,127) = -TPK%K127(:)*PCONC(:,41)*PCONC(:,32) ! -!PTERMS(RP11,K246) = +K246*<RO2T>*<RO235> - PTERMS(:,73,247) = +TPK%K246(:)*PCONC(:,85)*TPK%RO235(:) +!PTERMS(MO2,K128) = +K128*<XO2>*<CARBOP> + PTERMS(:,32,128) = +TPK%K128(:)*PCONC(:,41)*PCONC(:,39) ! -!PTERMS(RO2T,K246) = -K246*<RO2T>*<RO235> - PTERMS(:,85,247) = -TPK%K246(:)*PCONC(:,85)*TPK%RO235(:) +!PTERMS(CARBOP,K128) = -K128*<XO2>*<CARBOP> + PTERMS(:,39,128) = -TPK%K128(:)*PCONC(:,41)*PCONC(:,39) ! -!PTERMS(HO2,K247) = -K247*<HO2>*<RO235> - PTERMS(:,10,248) = -TPK%K247(:)*PCONC(:,10)*TPK%RO235(:) +!PTERMS(XO2,K128) = -K128*<XO2>*<CARBOP> + PTERMS(:,41,128) = -TPK%K128(:)*PCONC(:,41)*PCONC(:,39) ! -!PTERMS(OH,K247) = +K247*<HO2>*<RO235> - PTERMS(:,15,248) = +TPK%K247(:)*PCONC(:,10)*TPK%RO235(:) +!PTERMS(XO2,K129) = -K129*<XO2>*<XO2> + PTERMS(:,41,129) = -TPK%K129(:)*PCONC(:,41)*PCONC(:,41) ! -!PTERMS(RP11,K247) = +K247*<HO2>*<RO235> - PTERMS(:,73,248) = +TPK%K247(:)*PCONC(:,10)*TPK%RO235(:) +!PTERMS(NO,K130) = -K130*<XO2>*<NO> + PTERMS(:,3,130) = -TPK%K130(:)*PCONC(:,41)*PCONC(:,3) ! ! RETURN -END SUBROUTINE SUBT40 +END SUBROUTINE SUBT29 ! -SUBROUTINE SUBT41 +SUBROUTINE SUBT30 ! -!Indices 821 a 840 +!Indices 601 a 620 ! -!PTERMS(NO,K248) = -K248*<NO>*<RO244> - PTERMS(:,1,249) = -TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) +!PTERMS(NO2,K130) = +K130*<XO2>*<NO> + PTERMS(:,4,130) = +TPK%K130(:)*PCONC(:,41)*PCONC(:,3) ! -!PTERMS(NO2,K248) = +K248*<NO>*<RO244> - PTERMS(:,2,249) = +TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) +!PTERMS(XO2,K130) = -K130*<XO2>*<NO> + PTERMS(:,41,130) = -TPK%K130(:)*PCONC(:,41)*PCONC(:,3) ! -!PTERMS(HO2,K248) = +K248*<NO>*<RO244> - PTERMS(:,10,249) = +TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) +!PTERMS(NO2,K131) = +K131*<XO2>*<NO3> + PTERMS(:,4,131) = +TPK%K131(:)*PCONC(:,41)*PCONC(:,5) ! -!PTERMS(MGLY,K248) = +K248*<NO>*<RO244> - PTERMS(:,41,249) = +TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) +!PTERMS(NO3,K131) = -K131*<XO2>*<NO3> + PTERMS(:,5,131) = -TPK%K131(:)*PCONC(:,41)*PCONC(:,5) ! -!PTERMS(RP10,K248) = +K248*<NO>*<RO244> - PTERMS(:,72,249) = +TPK%K248(:)*PCONC(:,1)*TPK%RO244(:) +!PTERMS(XO2,K131) = -K131*<XO2>*<NO3> + PTERMS(:,41,131) = -TPK%K131(:)*PCONC(:,41)*PCONC(:,5) ! -!PTERMS(HO2,K249) = +K249*<RO2T>*<RO244> - PTERMS(:,10,250) = +TPK%K249(:)*PCONC(:,85)*TPK%RO244(:) +!PTERMS(SULF,K132) = -K132*<SULF> + PTERMS(:,12,132) = -TPK%K132(:)*PCONC(:,12) ! -!PTERMS(MGLY,K249) = +K249*<RO2T>*<RO244> - PTERMS(:,41,250) = +TPK%K249(:)*PCONC(:,85)*TPK%RO244(:) +!PTERMS(O3,KTC1) = -KTC1*<O3> + PTERMS(:,1,133) = -TPK%KTC1(:)*PCONC(:,1) ! -!PTERMS(RP10,K249) = +K249*<RO2T>*<RO244> - PTERMS(:,72,250) = +TPK%K249(:)*PCONC(:,85)*TPK%RO244(:) +!PTERMS(WC_O3,KTC1) = +KTC1*<O3> + PTERMS(:,42,133) = +TPK%KTC1(:)*PCONC(:,1) ! -!PTERMS(RO2T,K249) = -K249*<RO2T>*<RO244> - PTERMS(:,85,250) = -TPK%K249(:)*PCONC(:,85)*TPK%RO244(:) +!PTERMS(H2O2,KTC2) = -KTC2*<H2O2> + PTERMS(:,2,134) = -TPK%KTC2(:)*PCONC(:,2) ! -!PTERMS(HO2,K250) = -K250*<HO2>*<RO244> - PTERMS(:,10,251) = -TPK%K250(:)*PCONC(:,10)*TPK%RO244(:) +!PTERMS(WC_H2O2,KTC2) = +KTC2*<H2O2> + PTERMS(:,43,134) = +TPK%KTC2(:)*PCONC(:,2) ! -!PTERMS(OH,K250) = +K250*<HO2>*<RO244> - PTERMS(:,15,251) = +TPK%K250(:)*PCONC(:,10)*TPK%RO244(:) +!PTERMS(NO,KTC3) = -KTC3*<NO> + PTERMS(:,3,135) = -TPK%KTC3(:)*PCONC(:,3) ! -!PTERMS(MGLY,K250) = +K250*<HO2>*<RO244> - PTERMS(:,41,251) = +TPK%K250(:)*PCONC(:,10)*TPK%RO244(:) +!PTERMS(WC_NO,KTC3) = +KTC3*<NO> + PTERMS(:,44,135) = +TPK%KTC3(:)*PCONC(:,3) ! -!PTERMS(RP10,K250) = +K250*<HO2>*<RO244> - PTERMS(:,72,251) = +TPK%K250(:)*PCONC(:,10)*TPK%RO244(:) +!PTERMS(NO2,KTC4) = -KTC4*<NO2> + PTERMS(:,4,136) = -TPK%KTC4(:)*PCONC(:,4) ! -!PTERMS(RO2T,K251) = +K251*<RO236> - PTERMS(:,85,252) = +TPK%K251(:)*TPK%RO236(:) +!PTERMS(WC_NO2,KTC4) = +KTC4*<NO2> + PTERMS(:,45,136) = +TPK%KTC4(:)*PCONC(:,4) ! -!PTERMS(NO,K252) = -K252*<NO>*<RO236> - PTERMS(:,1,253) = -TPK%K252(:)*PCONC(:,1)*TPK%RO236(:) +!PTERMS(NO3,KTC5) = -KTC5*<NO3> + PTERMS(:,5,137) = -TPK%KTC5(:)*PCONC(:,5) ! -!PTERMS(NO2,K252) = +K252*<NO>*<RO236> - PTERMS(:,2,253) = +TPK%K252(:)*PCONC(:,1)*TPK%RO236(:) +!PTERMS(WC_NO3,KTC5) = +KTC5*<NO3> + PTERMS(:,46,137) = +TPK%KTC5(:)*PCONC(:,5) ! -!PTERMS(HO2,K252) = +K252*<NO>*<RO236> - PTERMS(:,10,253) = +TPK%K252(:)*PCONC(:,1)*TPK%RO236(:) +!PTERMS(N2O5,KTC6) = -KTC6*<N2O5> + PTERMS(:,6,138) = -TPK%KTC6(:)*PCONC(:,6) ! -!PTERMS(RPG3,K252) = +0.3000000*K252*<NO>*<RO236> - PTERMS(:,52,253) = +0.3000000*TPK%K252(:)*PCONC(:,1)*TPK%RO236(:) +!PTERMS(WC_N2O5,KTC6) = +KTC6*<N2O5> + PTERMS(:,47,138) = +TPK%KTC6(:)*PCONC(:,6) ! -!PTERMS(HO2,K253) = +K253*<RO2T>*<RO236> - PTERMS(:,10,254) = +TPK%K253(:)*PCONC(:,85)*TPK%RO236(:) +!PTERMS(HONO,KTC7) = -KTC7*<HONO> + PTERMS(:,7,139) = -TPK%KTC7(:)*PCONC(:,7) ! -!PTERMS(RPG3,K253) = +1.0000000*K253*<RO2T>*<RO236> - PTERMS(:,52,254) = +1.0000000*TPK%K253(:)*PCONC(:,85)*TPK%RO236(:) +!PTERMS(WC_HONO,KTC7) = +KTC7*<HONO> + PTERMS(:,48,139) = +TPK%KTC7(:)*PCONC(:,7) ! ! RETURN -END SUBROUTINE SUBT41 +END SUBROUTINE SUBT30 ! -SUBROUTINE SUBT42 +SUBROUTINE SUBT31 ! -!Indices 841 a 860 +!Indices 621 a 640 ! -!PTERMS(RO2T,K253) = -K253*<RO2T>*<RO236> - PTERMS(:,85,254) = -TPK%K253(:)*PCONC(:,85)*TPK%RO236(:) +!PTERMS(HNO3,KTC8) = -KTC8*<HNO3> + PTERMS(:,8,140) = -TPK%KTC8(:)*PCONC(:,8) ! -!PTERMS(HO2,K254) = -K254*<HO2>*<RO236> - PTERMS(:,10,255) = -TPK%K254(:)*PCONC(:,10)*TPK%RO236(:) +!PTERMS(WC_HNO3,KTC8) = +KTC8*<HNO3> + PTERMS(:,49,140) = +TPK%KTC8(:)*PCONC(:,8) ! -!PTERMS(OH,K254) = +K254*<HO2>*<RO236> - PTERMS(:,15,255) = +TPK%K254(:)*PCONC(:,10)*TPK%RO236(:) +!PTERMS(HNO4,KTC9) = -KTC9*<HNO4> + PTERMS(:,9,141) = -TPK%KTC9(:)*PCONC(:,9) ! -!PTERMS(RPG3,K254) = +0.3000000*K254*<HO2>*<RO236> - PTERMS(:,52,255) = +0.3000000*TPK%K254(:)*PCONC(:,10)*TPK%RO236(:) +!PTERMS(WC_HNO4,KTC9) = +KTC9*<HNO4> + PTERMS(:,50,141) = +TPK%KTC9(:)*PCONC(:,9) ! -!PTERMS(NO,K255) = -K255*<NO>*<RO245> - PTERMS(:,1,256) = -TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) +!PTERMS(NH3,KTC10) = -KTC10*<NH3> + PTERMS(:,10,142) = -TPK%KTC10(:)*PCONC(:,10) ! -!PTERMS(NO2,K255) = +K255*<NO>*<RO245> - PTERMS(:,2,256) = +TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) +!PTERMS(WC_NH3,KTC10) = +KTC10*<NH3> + PTERMS(:,51,142) = +TPK%KTC10(:)*PCONC(:,10) ! -!PTERMS(HO2,K255) = +K255*<NO>*<RO245> - PTERMS(:,10,256) = +TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) +!PTERMS(OH,KTC11) = -KTC11*<OH> + PTERMS(:,14,143) = -TPK%KTC11(:)*PCONC(:,14) ! -!PTERMS(MGLY,K255) = +K255*<NO>*<RO245> - PTERMS(:,41,256) = +TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) +!PTERMS(WC_OH,KTC11) = +KTC11*<OH> + PTERMS(:,52,143) = +TPK%KTC11(:)*PCONC(:,14) ! -!PTERMS(RP10,K255) = +K255*<NO>*<RO245> - PTERMS(:,72,256) = +TPK%K255(:)*PCONC(:,1)*TPK%RO245(:) +!PTERMS(HO2,KTC12) = -KTC12*<HO2> + PTERMS(:,15,144) = -TPK%KTC12(:)*PCONC(:,15) ! -!PTERMS(HO2,K256) = +K256*<RO2T>*<RO245> - PTERMS(:,10,257) = +TPK%K256(:)*PCONC(:,85)*TPK%RO245(:) +!PTERMS(WC_HO2,KTC12) = +KTC12*<HO2> + PTERMS(:,53,144) = +TPK%KTC12(:)*PCONC(:,15) ! -!PTERMS(MGLY,K256) = +K256*<RO2T>*<RO245> - PTERMS(:,41,257) = +TPK%K256(:)*PCONC(:,85)*TPK%RO245(:) +!PTERMS(WC_CO2,KTC13) = +KTC13*<CO2> + PTERMS(:,54,145) = +TPK%KTC13(:)*TPK%CO2(:) ! -!PTERMS(RP10,K256) = +K256*<RO2T>*<RO245> - PTERMS(:,72,257) = +TPK%K256(:)*PCONC(:,85)*TPK%RO245(:) +!PTERMS(SO2,KTC14) = -KTC14*<SO2> + PTERMS(:,11,146) = -TPK%KTC14(:)*PCONC(:,11) ! -!PTERMS(RO2T,K256) = -K256*<RO2T>*<RO245> - PTERMS(:,85,257) = -TPK%K256(:)*PCONC(:,85)*TPK%RO245(:) +!PTERMS(WC_SO2,KTC14) = +KTC14*<SO2> + PTERMS(:,55,146) = +TPK%KTC14(:)*PCONC(:,11) ! -!PTERMS(HO2,K257) = -K257*<HO2>*<RO245> - PTERMS(:,10,258) = -TPK%K257(:)*PCONC(:,10)*TPK%RO245(:) +!PTERMS(SULF,KTC15) = -KTC15*<SULF> + PTERMS(:,12,147) = -TPK%KTC15(:)*PCONC(:,12) ! -!PTERMS(OH,K257) = +K257*<HO2>*<RO245> - PTERMS(:,15,258) = +TPK%K257(:)*PCONC(:,10)*TPK%RO245(:) +!PTERMS(WC_SULF,KTC15) = +KTC15*<SULF> + PTERMS(:,56,147) = +TPK%KTC15(:)*PCONC(:,12) ! -!PTERMS(MGLY,K257) = +K257*<HO2>*<RO245> - PTERMS(:,41,258) = +TPK%K257(:)*PCONC(:,10)*TPK%RO245(:) +!PTERMS(HCHO,KTC16) = -KTC16*<HCHO> + PTERMS(:,22,148) = -TPK%KTC16(:)*PCONC(:,22) ! -!PTERMS(RP10,K257) = +K257*<HO2>*<RO245> - PTERMS(:,72,258) = +TPK%K257(:)*PCONC(:,10)*TPK%RO245(:) +!PTERMS(WC_HCHO,KTC16) = +KTC16*<HCHO> + PTERMS(:,57,148) = +TPK%KTC16(:)*PCONC(:,22) ! -!PTERMS(RO2T,K258) = +K258*<RO237> - PTERMS(:,85,259) = +TPK%K258(:)*TPK%RO237(:) +!PTERMS(ORA1,KTC17) = -KTC17*<ORA1> + PTERMS(:,30,149) = -TPK%KTC17(:)*PCONC(:,30) ! -!PTERMS(NO,K259) = -K259*<NO>*<RO237> - PTERMS(:,1,260) = -TPK%K259(:)*PCONC(:,1)*TPK%RO237(:) +!PTERMS(WC_ORA1,KTC17) = +KTC17*<ORA1> + PTERMS(:,58,149) = +TPK%KTC17(:)*PCONC(:,30) ! -!PTERMS(NO2,K259) = +K259*<NO>*<RO237> - PTERMS(:,2,260) = +TPK%K259(:)*PCONC(:,1)*TPK%RO237(:) +!PTERMS(ORA2,KTC18) = -KTC18*<ORA2> + PTERMS(:,31,150) = -TPK%KTC18(:)*PCONC(:,31) ! ! RETURN -END SUBROUTINE SUBT42 +END SUBROUTINE SUBT31 ! -SUBROUTINE SUBT43 +SUBROUTINE SUBT32 ! -!Indices 861 a 880 +!Indices 641 a 660 ! -!PTERMS(HO2,K259) = +K259*<NO>*<RO237> - PTERMS(:,10,260) = +TPK%K259(:)*PCONC(:,1)*TPK%RO237(:) +!PTERMS(WC_ORA2,KTC18) = +KTC18*<ORA2> + PTERMS(:,59,150) = +TPK%KTC18(:)*PCONC(:,31) ! -!PTERMS(RPG2,K259) = +0.3000000*K259*<NO>*<RO237> - PTERMS(:,50,260) = +0.3000000*TPK%K259(:)*PCONC(:,1)*TPK%RO237(:) +!PTERMS(MO2,KTC19) = -KTC19*<MO2> + PTERMS(:,32,151) = -TPK%KTC19(:)*PCONC(:,32) ! -!PTERMS(HO2,K260) = +K260*<RO2T>*<RO237> - PTERMS(:,10,261) = +TPK%K260(:)*PCONC(:,85)*TPK%RO237(:) +!PTERMS(WC_MO2,KTC19) = +KTC19*<MO2> + PTERMS(:,60,151) = +TPK%KTC19(:)*PCONC(:,32) ! -!PTERMS(RPG2,K260) = +1.0000000*K260*<RO2T>*<RO237> - PTERMS(:,50,261) = +1.0000000*TPK%K260(:)*PCONC(:,85)*TPK%RO237(:) +!PTERMS(OP1,KTC20) = -KTC20*<OP1> + PTERMS(:,28,152) = -TPK%KTC20(:)*PCONC(:,28) ! -!PTERMS(RO2T,K260) = -K260*<RO2T>*<RO237> - PTERMS(:,85,261) = -TPK%K260(:)*PCONC(:,85)*TPK%RO237(:) +!PTERMS(WC_OP1,KTC20) = +KTC20*<OP1> + PTERMS(:,61,152) = +TPK%KTC20(:)*PCONC(:,28) ! -!PTERMS(HO2,K261) = -K261*<HO2>*<RO237> - PTERMS(:,10,262) = -TPK%K261(:)*PCONC(:,10)*TPK%RO237(:) +!PTERMS(O3,KTC21) = +KTC21*<WC_O3> + PTERMS(:,1,153) = +TPK%KTC21(:)*PCONC(:,42) ! -!PTERMS(OH,K261) = +K261*<HO2>*<RO237> - PTERMS(:,15,262) = +TPK%K261(:)*PCONC(:,10)*TPK%RO237(:) +!PTERMS(WC_O3,KTC21) = -KTC21*<WC_O3> + PTERMS(:,42,153) = -TPK%KTC21(:)*PCONC(:,42) ! -!PTERMS(RPG2,K261) = +0.3000000*K261*<HO2>*<RO237> - PTERMS(:,50,262) = +0.3000000*TPK%K261(:)*PCONC(:,10)*TPK%RO237(:) +!PTERMS(H2O2,KTC22) = +KTC22*<WC_H2O2> + PTERMS(:,2,154) = +TPK%KTC22(:)*PCONC(:,43) ! -!PTERMS(NO,K262) = -K262*<NO>*<RO246> - PTERMS(:,1,263) = -TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) +!PTERMS(WC_H2O2,KTC22) = -KTC22*<WC_H2O2> + PTERMS(:,43,154) = -TPK%KTC22(:)*PCONC(:,43) ! -!PTERMS(NO2,K262) = +K262*<NO>*<RO246> - PTERMS(:,2,263) = +TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) +!PTERMS(NO,KTC23) = +KTC23*<WC_NO> + PTERMS(:,3,155) = +TPK%KTC23(:)*PCONC(:,44) ! -!PTERMS(HO2,K262) = +K262*<NO>*<RO246> - PTERMS(:,10,263) = +TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) +!PTERMS(WC_NO,KTC23) = -KTC23*<WC_NO> + PTERMS(:,44,155) = -TPK%KTC23(:)*PCONC(:,44) ! -!PTERMS(MGLY,K262) = +K262*<NO>*<RO246> - PTERMS(:,41,263) = +TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) +!PTERMS(NO2,KTC24) = +KTC24*<WC_NO2> + PTERMS(:,4,156) = +TPK%KTC24(:)*PCONC(:,45) ! -!PTERMS(RP10,K262) = +K262*<NO>*<RO246> - PTERMS(:,72,263) = +TPK%K262(:)*PCONC(:,1)*TPK%RO246(:) +!PTERMS(WC_NO2,KTC24) = -KTC24*<WC_NO2> + PTERMS(:,45,156) = -TPK%KTC24(:)*PCONC(:,45) ! -!PTERMS(HO2,K263) = +K263*<RO2T>*<RO246> - PTERMS(:,10,264) = +TPK%K263(:)*PCONC(:,85)*TPK%RO246(:) +!PTERMS(NO3,KTC25) = +KTC25*<WC_NO3> + PTERMS(:,5,157) = +TPK%KTC25(:)*PCONC(:,46) ! -!PTERMS(MGLY,K263) = +K263*<RO2T>*<RO246> - PTERMS(:,41,264) = +TPK%K263(:)*PCONC(:,85)*TPK%RO246(:) +!PTERMS(WC_NO3,KTC25) = -KTC25*<WC_NO3> + PTERMS(:,46,157) = -TPK%KTC25(:)*PCONC(:,46) ! -!PTERMS(RP10,K263) = +K263*<RO2T>*<RO246> - PTERMS(:,72,264) = +TPK%K263(:)*PCONC(:,85)*TPK%RO246(:) +!PTERMS(N2O5,KTC26) = +KTC26*<WC_N2O5> + PTERMS(:,6,158) = +TPK%KTC26(:)*PCONC(:,47) ! -!PTERMS(RO2T,K263) = -K263*<RO2T>*<RO246> - PTERMS(:,85,264) = -TPK%K263(:)*PCONC(:,85)*TPK%RO246(:) +!PTERMS(WC_N2O5,KTC26) = -KTC26*<WC_N2O5> + PTERMS(:,47,158) = -TPK%KTC26(:)*PCONC(:,47) ! -!PTERMS(HO2,K264) = -K264*<HO2>*<RO246> - PTERMS(:,10,265) = -TPK%K264(:)*PCONC(:,10)*TPK%RO246(:) +!PTERMS(HONO,KTC27) = +KTC27*<WC_HONO> + PTERMS(:,7,159) = +TPK%KTC27(:)*PCONC(:,48) ! -!PTERMS(OH,K264) = +K264*<HO2>*<RO246> - PTERMS(:,15,265) = +TPK%K264(:)*PCONC(:,10)*TPK%RO246(:) +!PTERMS(WC_HONO,KTC27) = -KTC27*<WC_HONO> + PTERMS(:,48,159) = -TPK%KTC27(:)*PCONC(:,48) ! -!PTERMS(MGLY,K264) = +K264*<HO2>*<RO246> - PTERMS(:,41,265) = +TPK%K264(:)*PCONC(:,10)*TPK%RO246(:) +!PTERMS(HNO3,KTC28) = +KTC28*<WC_HNO3> + PTERMS(:,8,160) = +TPK%KTC28(:)*PCONC(:,49) ! ! RETURN -END SUBROUTINE SUBT43 +END SUBROUTINE SUBT32 ! -SUBROUTINE SUBT44 +SUBROUTINE SUBT33 ! -!Indices 881 a 900 +!Indices 661 a 680 ! -!PTERMS(RP10,K264) = +K264*<HO2>*<RO246> - PTERMS(:,72,265) = +TPK%K264(:)*PCONC(:,10)*TPK%RO246(:) +!PTERMS(WC_HNO3,KTC28) = -KTC28*<WC_HNO3> + PTERMS(:,49,160) = -TPK%KTC28(:)*PCONC(:,49) ! -!PTERMS(RO2T,K265) = +K265*<RO238> - PTERMS(:,85,266) = +TPK%K265(:)*TPK%RO238(:) +!PTERMS(HNO4,KTC29) = +KTC29*<WC_HNO4> + PTERMS(:,9,161) = +TPK%KTC29(:)*PCONC(:,50) ! -!PTERMS(NO,K266) = -K266*<NO>*<RO238> - PTERMS(:,1,267) = -TPK%K266(:)*PCONC(:,1)*TPK%RO238(:) +!PTERMS(WC_HNO4,KTC29) = -KTC29*<WC_HNO4> + PTERMS(:,50,161) = -TPK%KTC29(:)*PCONC(:,50) ! -!PTERMS(NO2,K266) = +K266*<NO>*<RO238> - PTERMS(:,2,267) = +TPK%K266(:)*PCONC(:,1)*TPK%RO238(:) +!PTERMS(NH3,KTC30) = +KTC30*<WC_NH3> + PTERMS(:,10,162) = +TPK%KTC30(:)*PCONC(:,51) ! -!PTERMS(HO2,K266) = +K266*<NO>*<RO238> - PTERMS(:,10,267) = +TPK%K266(:)*PCONC(:,1)*TPK%RO238(:) +!PTERMS(WC_NH3,KTC30) = -KTC30*<WC_NH3> + PTERMS(:,51,162) = -TPK%KTC30(:)*PCONC(:,51) ! -!PTERMS(RPG7,K266) = +1.0000013*K266*<NO>*<RO238> - PTERMS(:,63,267) = +1.0000013*TPK%K266(:)*PCONC(:,1)*TPK%RO238(:) +!PTERMS(OH,KTC31) = +KTC31*<WC_OH> + PTERMS(:,14,163) = +TPK%KTC31(:)*PCONC(:,52) ! -!PTERMS(HO2,K267) = +K267*<RO2T>*<RO238> - PTERMS(:,10,268) = +TPK%K267(:)*PCONC(:,85)*TPK%RO238(:) +!PTERMS(WC_OH,KTC31) = -KTC31*<WC_OH> + PTERMS(:,52,163) = -TPK%KTC31(:)*PCONC(:,52) ! -!PTERMS(RPG7,K267) = +1.0000013*K267*<RO2T>*<RO238> - PTERMS(:,63,268) = +1.0000013*TPK%K267(:)*PCONC(:,85)*TPK%RO238(:) +!PTERMS(HO2,KTC32) = +KTC32*<WC_HO2> + PTERMS(:,15,164) = +TPK%KTC32(:)*PCONC(:,53) ! -!PTERMS(RO2T,K267) = -K267*<RO2T>*<RO238> - PTERMS(:,85,268) = -TPK%K267(:)*PCONC(:,85)*TPK%RO238(:) +!PTERMS(WC_HO2,KTC32) = -KTC32*<WC_HO2> + PTERMS(:,53,164) = -TPK%KTC32(:)*PCONC(:,53) ! -!PTERMS(HO2,K268) = -K268*<HO2>*<RO238> - PTERMS(:,10,269) = -TPK%K268(:)*PCONC(:,10)*TPK%RO238(:) +!PTERMS(WC_CO2,KTC33) = -KTC33*<WC_CO2> + PTERMS(:,54,165) = -TPK%KTC33(:)*PCONC(:,54) ! -!PTERMS(OH,K268) = +K268*<HO2>*<RO238> - PTERMS(:,15,269) = +TPK%K268(:)*PCONC(:,10)*TPK%RO238(:) +!PTERMS(SO2,KTC34) = +KTC34*<WC_SO2> + PTERMS(:,11,166) = +TPK%KTC34(:)*PCONC(:,55) ! -!PTERMS(RPG7,K268) = +1.0000013*K268*<HO2>*<RO238> - PTERMS(:,63,269) = +1.0000013*TPK%K268(:)*PCONC(:,10)*TPK%RO238(:) +!PTERMS(WC_SO2,KTC34) = -KTC34*<WC_SO2> + PTERMS(:,55,166) = -TPK%KTC34(:)*PCONC(:,55) ! -!PTERMS(NO,K269) = -K269*<NO>*<RO247> - PTERMS(:,1,270) = -TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) +!PTERMS(SULF,KTC35) = +KTC35*<WC_SULF> + PTERMS(:,12,167) = +TPK%KTC35(:)*PCONC(:,56) ! -!PTERMS(NO2,K269) = +K269*<NO>*<RO247> - PTERMS(:,2,270) = +TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) +!PTERMS(WC_SULF,KTC35) = -KTC35*<WC_SULF> + PTERMS(:,56,167) = -TPK%KTC35(:)*PCONC(:,56) ! -!PTERMS(HO2,K269) = +K269*<NO>*<RO247> - PTERMS(:,10,270) = +TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) +!PTERMS(HCHO,KTC36) = +KTC36*<WC_HCHO> + PTERMS(:,22,168) = +TPK%KTC36(:)*PCONC(:,57) ! -!PTERMS(MGLY,K269) = +K269*<NO>*<RO247> - PTERMS(:,41,270) = +TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) +!PTERMS(WC_HCHO,KTC36) = -KTC36*<WC_HCHO> + PTERMS(:,57,168) = -TPK%KTC36(:)*PCONC(:,57) ! -!PTERMS(RPRL,K269) = +1.0023998*K269*<NO>*<RO247> - PTERMS(:,75,270) = +1.0023998*TPK%K269(:)*PCONC(:,1)*TPK%RO247(:) +!PTERMS(ORA1,KTC37) = +KTC37*<WC_ORA1> + PTERMS(:,30,169) = +TPK%KTC37(:)*PCONC(:,58) ! -!PTERMS(HO2,K270) = +K270*<RO2T>*<RO247> - PTERMS(:,10,271) = +TPK%K270(:)*PCONC(:,85)*TPK%RO247(:) +!PTERMS(WC_ORA1,KTC37) = -KTC37*<WC_ORA1> + PTERMS(:,58,169) = -TPK%KTC37(:)*PCONC(:,58) ! -!PTERMS(MGLY,K270) = +K270*<RO2T>*<RO247> - PTERMS(:,41,271) = +TPK%K270(:)*PCONC(:,85)*TPK%RO247(:) +!PTERMS(ORA2,KTC38) = +KTC38*<WC_ORA2> + PTERMS(:,31,170) = +TPK%KTC38(:)*PCONC(:,59) ! -!PTERMS(RPRL,K270) = +1.0023998*K270*<RO2T>*<RO247> - PTERMS(:,75,271) = +1.0023998*TPK%K270(:)*PCONC(:,85)*TPK%RO247(:) +!PTERMS(WC_ORA2,KTC38) = -KTC38*<WC_ORA2> + PTERMS(:,59,170) = -TPK%KTC38(:)*PCONC(:,59) ! ! RETURN -END SUBROUTINE SUBT44 +END SUBROUTINE SUBT33 ! -SUBROUTINE SUBT45 +SUBROUTINE SUBT34 ! -!Indices 901 a 920 +!Indices 681 a 700 ! -!PTERMS(RO2T,K270) = -K270*<RO2T>*<RO247> - PTERMS(:,85,271) = -TPK%K270(:)*PCONC(:,85)*TPK%RO247(:) +!PTERMS(MO2,KTC39) = +KTC39*<WC_MO2> + PTERMS(:,32,171) = +TPK%KTC39(:)*PCONC(:,60) ! -!PTERMS(HO2,K271) = -K271*<HO2>*<RO247> - PTERMS(:,10,272) = -TPK%K271(:)*PCONC(:,10)*TPK%RO247(:) +!PTERMS(WC_MO2,KTC39) = -KTC39*<WC_MO2> + PTERMS(:,60,171) = -TPK%KTC39(:)*PCONC(:,60) ! -!PTERMS(OH,K271) = +K271*<HO2>*<RO247> - PTERMS(:,15,272) = +TPK%K271(:)*PCONC(:,10)*TPK%RO247(:) +!PTERMS(OP1,KTC40) = +KTC40*<WC_OP1> + PTERMS(:,28,172) = +TPK%KTC40(:)*PCONC(:,61) ! -!PTERMS(MGLY,K271) = +K271*<HO2>*<RO247> - PTERMS(:,41,272) = +TPK%K271(:)*PCONC(:,10)*TPK%RO247(:) +!PTERMS(WC_OP1,KTC40) = -KTC40*<WC_OP1> + PTERMS(:,61,172) = -TPK%KTC40(:)*PCONC(:,61) ! -!PTERMS(RPRL,K271) = +1.0023998*K271*<HO2>*<RO247> - PTERMS(:,75,272) = +1.0023998*TPK%K271(:)*PCONC(:,10)*TPK%RO247(:) +!PTERMS(O3,KTR1) = -KTR1*<O3> + PTERMS(:,1,173) = -TPK%KTR1(:)*PCONC(:,1) ! -!PTERMS(OH,K272) = -K272*<OH>*<MVK> - PTERMS(:,15,273) = -TPK%K272(:)*PCONC(:,15)*PCONC(:,39) +!PTERMS(WR_O3,KTR1) = +KTR1*<O3> + PTERMS(:,67,173) = +TPK%KTR1(:)*PCONC(:,1) ! -!PTERMS(MVK,K272) = -K272*<OH>*<MVK> - PTERMS(:,39,273) = -TPK%K272(:)*PCONC(:,15)*PCONC(:,39) +!PTERMS(H2O2,KTR2) = -KTR2*<H2O2> + PTERMS(:,2,174) = -TPK%KTR2(:)*PCONC(:,2) ! -!PTERMS(RO2T,K272) = +K272*<OH>*<MVK> - PTERMS(:,85,273) = +TPK%K272(:)*PCONC(:,15)*PCONC(:,39) +!PTERMS(WR_H2O2,KTR2) = +KTR2*<H2O2> + PTERMS(:,68,174) = +TPK%KTR2(:)*PCONC(:,2) ! -!PTERMS(OH,K273) = -K273*<OH>*<MCR> - PTERMS(:,15,274) = -TPK%K273(:)*PCONC(:,15)*PCONC(:,40) +!PTERMS(NO,KTR3) = -KTR3*<NO> + PTERMS(:,3,175) = -TPK%KTR3(:)*PCONC(:,3) ! -!PTERMS(MCR,K273) = -K273*<OH>*<MCR> - PTERMS(:,40,274) = -TPK%K273(:)*PCONC(:,15)*PCONC(:,40) +!PTERMS(WR_NO,KTR3) = +KTR3*<NO> + PTERMS(:,69,175) = +TPK%KTR3(:)*PCONC(:,3) ! -!PTERMS(RO2T,K273) = +K273*<OH>*<MCR> - PTERMS(:,85,274) = +TPK%K273(:)*PCONC(:,15)*PCONC(:,40) +!PTERMS(NO2,KTR4) = -KTR4*<NO2> + PTERMS(:,4,176) = -TPK%KTR4(:)*PCONC(:,4) ! -!PTERMS(OH,K274) = -K274*<OH>*<MGLY> - PTERMS(:,15,275) = -TPK%K274(:)*PCONC(:,15)*PCONC(:,41) +!PTERMS(WR_NO2,KTR4) = +KTR4*<NO2> + PTERMS(:,70,176) = +TPK%KTR4(:)*PCONC(:,4) ! -!PTERMS(MGLY,K274) = -K274*<OH>*<MGLY> - PTERMS(:,41,275) = -TPK%K274(:)*PCONC(:,15)*PCONC(:,41) +!PTERMS(NO3,KTR5) = -KTR5*<NO3> + PTERMS(:,5,177) = -TPK%KTR5(:)*PCONC(:,5) ! -!PTERMS(RO2T,K274) = +K274*<OH>*<MGLY> - PTERMS(:,85,275) = +TPK%K274(:)*PCONC(:,15)*PCONC(:,41) +!PTERMS(WR_NO3,KTR5) = +KTR5*<NO3> + PTERMS(:,71,177) = +TPK%KTR5(:)*PCONC(:,5) ! -!PTERMS(HNO3,K275) = +TPK%CF46*K275*<NO3>*<MCR> - PTERMS(:,5,276) = +TPK%CF46*TPK%K275(:)*PCONC(:,8)*PCONC(:,40) +!PTERMS(N2O5,KTR6) = -KTR6*<N2O5> + PTERMS(:,6,178) = -TPK%KTR6(:)*PCONC(:,6) ! -!PTERMS(NO3,K275) = -K275*<NO3>*<MCR> - PTERMS(:,8,276) = -TPK%K275(:)*PCONC(:,8)*PCONC(:,40) +!PTERMS(WR_N2O5,KTR6) = +KTR6*<N2O5> + PTERMS(:,72,178) = +TPK%KTR6(:)*PCONC(:,6) ! -!PTERMS(MCR,K275) = -K275*<NO3>*<MCR> - PTERMS(:,40,276) = -TPK%K275(:)*PCONC(:,8)*PCONC(:,40) +!PTERMS(HONO,KTR7) = -KTR7*<HONO> + PTERMS(:,7,179) = -TPK%KTR7(:)*PCONC(:,7) ! -!PTERMS(RO2T,K275) = +K275*<NO3>*<MCR> - PTERMS(:,85,276) = +TPK%K275(:)*PCONC(:,8)*PCONC(:,40) +!PTERMS(WR_HONO,KTR7) = +KTR7*<HONO> + PTERMS(:,73,179) = +TPK%KTR7(:)*PCONC(:,7) ! -!PTERMS(HO2,K276) = +K276*<MGLY> - PTERMS(:,10,277) = +TPK%K276(:)*PCONC(:,41) +!PTERMS(HNO3,KTR8) = -KTR8*<HNO3> + PTERMS(:,8,180) = -TPK%KTR8(:)*PCONC(:,8) ! -!PTERMS(CO,K276) = +K276*<MGLY> - PTERMS(:,11,277) = +TPK%K276(:)*PCONC(:,41) +!PTERMS(WR_HNO3,KTR8) = +KTR8*<HNO3> + PTERMS(:,74,180) = +TPK%KTR8(:)*PCONC(:,8) ! ! RETURN -END SUBROUTINE SUBT45 +END SUBROUTINE SUBT34 ! -SUBROUTINE SUBT46 +SUBROUTINE SUBT35 ! -!Indices 921 a 940 +!Indices 701 a 720 ! -!PTERMS(MGLY,K276) = -K276*<MGLY> - PTERMS(:,41,277) = -TPK%K276(:)*PCONC(:,41) +!PTERMS(HNO4,KTR9) = -KTR9*<HNO4> + PTERMS(:,9,181) = -TPK%KTR9(:)*PCONC(:,9) ! -!PTERMS(RO2T,K276) = +K276*<MGLY> - PTERMS(:,85,277) = +TPK%K276(:)*PCONC(:,41) +!PTERMS(WR_HNO4,KTR9) = +KTR9*<HNO4> + PTERMS(:,75,181) = +TPK%KTR9(:)*PCONC(:,9) ! -!PTERMS(NO,K277) = -K277*<NO>*<RO248> - PTERMS(:,1,278) = -TPK%K277(:)*PCONC(:,1)*TPK%RO248(:) +!PTERMS(NH3,KTR10) = -KTR10*<NH3> + PTERMS(:,10,182) = -TPK%KTR10(:)*PCONC(:,10) ! -!PTERMS(NO2,K277) = +K277*<NO>*<RO248> - PTERMS(:,2,278) = +TPK%K277(:)*PCONC(:,1)*TPK%RO248(:) +!PTERMS(WR_NH3,KTR10) = +KTR10*<NH3> + PTERMS(:,76,182) = +TPK%KTR10(:)*PCONC(:,10) ! -!PTERMS(RO2T,K277) = +K277*<NO>*<RO248> - PTERMS(:,85,278) = +TPK%K277(:)*PCONC(:,1)*TPK%RO248(:) +!PTERMS(OH,KTR11) = -KTR11*<OH> + PTERMS(:,14,183) = -TPK%KTR11(:)*PCONC(:,14) ! -!PTERMS(HNO3,K278) = +K278*<NO3>*<MGLY> - PTERMS(:,5,279) = +TPK%K278(:)*PCONC(:,8)*PCONC(:,41) +!PTERMS(WR_OH,KTR11) = +KTR11*<OH> + PTERMS(:,77,183) = +TPK%KTR11(:)*PCONC(:,14) ! -!PTERMS(NO3,K278) = -K278*<NO3>*<MGLY> - PTERMS(:,8,279) = -TPK%K278(:)*PCONC(:,8)*PCONC(:,41) +!PTERMS(HO2,KTR12) = -KTR12*<HO2> + PTERMS(:,15,184) = -TPK%KTR12(:)*PCONC(:,15) ! -!PTERMS(MGLY,K278) = -K278*<NO3>*<MGLY> - PTERMS(:,41,279) = -TPK%K278(:)*PCONC(:,8)*PCONC(:,41) +!PTERMS(WR_HO2,KTR12) = +KTR12*<HO2> + PTERMS(:,78,184) = +TPK%KTR12(:)*PCONC(:,15) ! -!PTERMS(RO2T,K278) = +K278*<NO3>*<MGLY> - PTERMS(:,85,279) = +TPK%K278(:)*PCONC(:,8)*PCONC(:,41) +!PTERMS(WR_CO2,KTR13) = +KTR13*<CO2> + PTERMS(:,79,185) = +TPK%KTR13(:)*TPK%CO2(:) ! -!PTERMS(O3,K279) = +K279*<HO2>*<RO248> - PTERMS(:,3,280) = +TPK%K279(:)*PCONC(:,10)*TPK%RO248(:) +!PTERMS(SO2,KTR14) = -KTR14*<SO2> + PTERMS(:,11,186) = -TPK%KTR14(:)*PCONC(:,11) ! -!PTERMS(HO2,K279) = -K279*<HO2>*<RO248> - PTERMS(:,10,280) = -TPK%K279(:)*PCONC(:,10)*TPK%RO248(:) +!PTERMS(WR_SO2,KTR14) = +KTR14*<SO2> + PTERMS(:,80,186) = +TPK%KTR14(:)*PCONC(:,11) ! -!PTERMS(UR21,K279) = +K279*<HO2>*<RO248> - PTERMS(:,47,280) = +TPK%K279(:)*PCONC(:,10)*TPK%RO248(:) +!PTERMS(SULF,KTR15) = -KTR15*<SULF> + PTERMS(:,12,187) = -TPK%KTR15(:)*PCONC(:,12) ! -!PTERMS(RO2T,K280) = -K280*<RO2T>*<RO248> - PTERMS(:,85,281) = -TPK%K280(:)*PCONC(:,85)*TPK%RO248(:) +!PTERMS(WR_SULF,KTR15) = +KTR15*<SULF> + PTERMS(:,81,187) = +TPK%KTR15(:)*PCONC(:,12) ! -!PTERMS(O3,K281) = -K281*<O3>*<MVK> - PTERMS(:,3,282) = -TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +!PTERMS(HCHO,KTR16) = -KTR16*<HCHO> + PTERMS(:,22,188) = -TPK%KTR16(:)*PCONC(:,22) ! -!PTERMS(HO2,K281) = +0.28*K281*<O3>*<MVK> - PTERMS(:,10,282) = +0.28*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +!PTERMS(WR_HCHO,KTR16) = +KTR16*<HCHO> + PTERMS(:,82,188) = +TPK%KTR16(:)*PCONC(:,22) ! -!PTERMS(CO,K281) = +0.56*K281*<O3>*<MVK> - PTERMS(:,11,282) = +0.56*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +!PTERMS(ORA1,KTR17) = -KTR17*<ORA1> + PTERMS(:,30,189) = -TPK%KTR17(:)*PCONC(:,30) ! -!PTERMS(OH,K281) = +0.36*K281*<O3>*<MVK> - PTERMS(:,15,282) = +0.36*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +!PTERMS(WR_ORA1,KTR17) = +KTR17*<ORA1> + PTERMS(:,83,189) = +TPK%KTR17(:)*PCONC(:,30) ! -!PTERMS(HCHO,K281) = +0.5*K281*<O3>*<MVK> - PTERMS(:,28,282) = +0.5*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +!PTERMS(ORA2,KTR18) = -KTR18*<ORA2> + PTERMS(:,31,190) = -TPK%KTR18(:)*PCONC(:,31) ! -!PTERMS(ALD2,K281) = +0.1*K281*<O3>*<MVK> - PTERMS(:,29,282) = +0.1*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +!PTERMS(WR_ORA2,KTR18) = +KTR18*<ORA2> + PTERMS(:,84,190) = +TPK%KTR18(:)*PCONC(:,31) ! -!PTERMS(MVK,K281) = -K281*<O3>*<MVK> - PTERMS(:,39,282) = -TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +!PTERMS(MO2,KTR19) = -KTR19*<MO2> + PTERMS(:,32,191) = -TPK%KTR19(:)*PCONC(:,32) ! ! RETURN -END SUBROUTINE SUBT46 +END SUBROUTINE SUBT35 ! -SUBROUTINE SUBT47 +SUBROUTINE SUBT36 ! -!Indices 941 a 960 +!Indices 721 a 740 ! -!PTERMS(MGLY,K281) = +0.5*K281*<O3>*<MVK> - PTERMS(:,41,282) = +0.5*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +!PTERMS(WR_MO2,KTR19) = +KTR19*<MO2> + PTERMS(:,85,191) = +TPK%KTR19(:)*PCONC(:,32) ! -!PTERMS(ORA1,K281) = +0.12*K281*<O3>*<MVK> - PTERMS(:,43,282) = +0.12*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +!PTERMS(OP1,KTR20) = -KTR20*<OP1> + PTERMS(:,28,192) = -TPK%KTR20(:)*PCONC(:,28) ! -!PTERMS(UR21,K281) = +0.12*K281*<O3>*<MVK> - PTERMS(:,47,282) = +0.12*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +!PTERMS(WR_OP1,KTR20) = +KTR20*<OP1> + PTERMS(:,86,192) = +TPK%KTR20(:)*PCONC(:,28) ! -!PTERMS(RO2T,K281) = +0.28*K281*<O3>*<MVK> - PTERMS(:,85,282) = +0.28*TPK%K281(:)*PCONC(:,3)*PCONC(:,39) +!PTERMS(O3,KTR21) = +KTR21*<WR_O3> + PTERMS(:,1,193) = +TPK%KTR21(:)*PCONC(:,67) ! -!PTERMS(O3,K282) = -K282*<O3>*<MCR> - PTERMS(:,3,283) = -TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +!PTERMS(WR_O3,KTR21) = -KTR21*<WR_O3> + PTERMS(:,67,193) = -TPK%KTR21(:)*PCONC(:,67) ! -!PTERMS(HO2,K282) = +0.41*K282*<O3>*<MCR> - PTERMS(:,10,283) = +0.41*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +!PTERMS(H2O2,KTR22) = +KTR22*<WR_H2O2> + PTERMS(:,2,194) = +TPK%KTR22(:)*PCONC(:,68) ! -!PTERMS(CO,K282) = +0.41*K282*<O3>*<MCR> - PTERMS(:,11,283) = +0.41*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +!PTERMS(WR_H2O2,KTR22) = -KTR22*<WR_H2O2> + PTERMS(:,68,194) = -TPK%KTR22(:)*PCONC(:,68) ! -!PTERMS(OH,K282) = +0.82*K282*<O3>*<MCR> - PTERMS(:,15,283) = +0.82*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +!PTERMS(NO,KTR23) = +KTR23*<WR_NO> + PTERMS(:,3,195) = +TPK%KTR23(:)*PCONC(:,69) ! -!PTERMS(HCHO,K282) = +0.5*K282*<O3>*<MCR> - PTERMS(:,28,283) = +0.5*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +!PTERMS(WR_NO,KTR23) = -KTR23*<WR_NO> + PTERMS(:,69,195) = -TPK%KTR23(:)*PCONC(:,69) ! -!PTERMS(MCR,K282) = -K282*<O3>*<MCR> - PTERMS(:,40,283) = -TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +!PTERMS(NO2,KTR24) = +KTR24*<WR_NO2> + PTERMS(:,4,196) = +TPK%KTR24(:)*PCONC(:,70) ! -!PTERMS(MGLY,K282) = +0.59*K282*<O3>*<MCR> - PTERMS(:,41,283) = +0.59*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +!PTERMS(WR_NO2,KTR24) = -KTR24*<WR_NO2> + PTERMS(:,70,196) = -TPK%KTR24(:)*PCONC(:,70) ! -!PTERMS(ORA1,K282) = +0.09*K282*<O3>*<MCR> - PTERMS(:,43,283) = +0.09*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +!PTERMS(NO3,KTR25) = +KTR25*<WR_NO3> + PTERMS(:,5,197) = +TPK%KTR25(:)*PCONC(:,71) ! -!PTERMS(RO2T,K282) = +0.41*K282*<O3>*<MCR> - PTERMS(:,85,283) = +0.41*TPK%K282(:)*PCONC(:,3)*PCONC(:,40) +!PTERMS(WR_NO3,KTR25) = -KTR25*<WR_NO3> + PTERMS(:,71,197) = -TPK%KTR25(:)*PCONC(:,71) ! -!PTERMS(KETL,K283) = +0.85*K283*<O>*<MVK> - PTERMS(:,30,284) = +0.85*TPK%K283(:)*TPK%O(:)*PCONC(:,39) +!PTERMS(N2O5,KTR26) = +KTR26*<WR_N2O5> + PTERMS(:,6,198) = +TPK%KTR26(:)*PCONC(:,72) ! -!PTERMS(MVK,K283) = -K283*<O>*<MVK> - PTERMS(:,39,284) = -TPK%K283(:)*TPK%O(:)*PCONC(:,39) +!PTERMS(WR_N2O5,KTR26) = -KTR26*<WR_N2O5> + PTERMS(:,72,198) = -TPK%KTR26(:)*PCONC(:,72) ! -!PTERMS(RO2T,K283) = +0.3*K283*<O>*<MVK> - PTERMS(:,85,284) = +0.3*TPK%K283(:)*TPK%O(:)*PCONC(:,39) +!PTERMS(HONO,KTR27) = +KTR27*<WR_HONO> + PTERMS(:,7,199) = +TPK%KTR27(:)*PCONC(:,73) ! -!PTERMS(HO2,K284) = +0.15*K284*<O>*<MCR> - PTERMS(:,10,285) = +0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40) +!PTERMS(WR_HONO,KTR27) = -KTR27*<WR_HONO> + PTERMS(:,73,199) = -TPK%KTR27(:)*PCONC(:,73) ! -!PTERMS(CO,K284) = +0.15*K284*<O>*<MCR> - PTERMS(:,11,285) = +0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40) +!PTERMS(HNO3,KTR28) = +KTR28*<WR_HNO3> + PTERMS(:,8,200) = +TPK%KTR28(:)*PCONC(:,74) ! -!PTERMS(ALD2,K284) = +0.85*K284*<O>*<MCR> - PTERMS(:,29,285) = +0.85*TPK%K284(:)*TPK%O(:)*PCONC(:,40) +!PTERMS(WR_HNO3,KTR28) = -KTR28*<WR_HNO3> + PTERMS(:,74,200) = -TPK%KTR28(:)*PCONC(:,74) ! -!PTERMS(MCR,K284) = -K284*<O>*<MCR> - PTERMS(:,40,285) = -TPK%K284(:)*TPK%O(:)*PCONC(:,40) +!PTERMS(HNO4,KTR29) = +KTR29*<WR_HNO4> + PTERMS(:,9,201) = +TPK%KTR29(:)*PCONC(:,75) ! ! RETURN -END SUBROUTINE SUBT47 +END SUBROUTINE SUBT36 ! -SUBROUTINE SUBT48 +SUBROUTINE SUBT37 ! -!Indices 961 a 980 +!Indices 741 a 760 ! -!PTERMS(RO2T,K284) = +0.15*K284*<O>*<MCR> - PTERMS(:,85,285) = +0.15*TPK%K284(:)*TPK%O(:)*PCONC(:,40) +!PTERMS(WR_HNO4,KTR29) = -KTR29*<WR_HNO4> + PTERMS(:,75,201) = -TPK%KTR29(:)*PCONC(:,75) ! -!PTERMS(NO,K285) = -K285*<NO>*<RO249> - PTERMS(:,1,286) = -TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) +!PTERMS(NH3,KTR30) = +KTR30*<WR_NH3> + PTERMS(:,10,202) = +TPK%KTR30(:)*PCONC(:,76) ! -!PTERMS(NO2,K285) = +K285*<NO>*<RO249> - PTERMS(:,2,286) = +TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) +!PTERMS(WR_NH3,KTR30) = -KTR30*<WR_NH3> + PTERMS(:,76,202) = -TPK%KTR30(:)*PCONC(:,76) ! -!PTERMS(HO2,K285) = +K285*<NO>*<RO249> - PTERMS(:,10,286) = +TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) +!PTERMS(OH,KTR31) = +KTR31*<WR_OH> + PTERMS(:,14,203) = +TPK%KTR31(:)*PCONC(:,77) ! -!PTERMS(HCHO,K285) = +K285*<NO>*<RO249> - PTERMS(:,28,286) = +TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) +!PTERMS(WR_OH,KTR31) = -KTR31*<WR_OH> + PTERMS(:,77,203) = -TPK%KTR31(:)*PCONC(:,77) ! -!PTERMS(MGLY,K285) = +K285*<NO>*<RO249> - PTERMS(:,41,286) = +TPK%K285(:)*PCONC(:,1)*TPK%RO249(:) +!PTERMS(HO2,KTR32) = +KTR32*<WR_HO2> + PTERMS(:,15,204) = +TPK%KTR32(:)*PCONC(:,78) ! -!PTERMS(HO2,K286) = +K286*<RO2T>*<RO249> - PTERMS(:,10,287) = +TPK%K286(:)*PCONC(:,85)*TPK%RO249(:) +!PTERMS(WR_HO2,KTR32) = -KTR32*<WR_HO2> + PTERMS(:,78,204) = -TPK%KTR32(:)*PCONC(:,78) ! -!PTERMS(HCHO,K286) = +K286*<RO2T>*<RO249> - PTERMS(:,28,287) = +TPK%K286(:)*PCONC(:,85)*TPK%RO249(:) +!PTERMS(WR_CO2,KTR33) = -KTR33*<WR_CO2> + PTERMS(:,79,205) = -TPK%KTR33(:)*PCONC(:,79) ! -!PTERMS(MGLY,K286) = +K286*<RO2T>*<RO249> - PTERMS(:,41,287) = +TPK%K286(:)*PCONC(:,85)*TPK%RO249(:) +!PTERMS(SO2,KTR34) = +KTR34*<WR_SO2> + PTERMS(:,11,206) = +TPK%KTR34(:)*PCONC(:,80) ! -!PTERMS(RO2T,K286) = -K286*<RO2T>*<RO249> - PTERMS(:,85,287) = -TPK%K286(:)*PCONC(:,85)*TPK%RO249(:) +!PTERMS(WR_SO2,KTR34) = -KTR34*<WR_SO2> + PTERMS(:,80,206) = -TPK%KTR34(:)*PCONC(:,80) ! -!PTERMS(HO2,K287) = -K287*<HO2>*<RO249> - PTERMS(:,10,288) = -TPK%K287(:)*PCONC(:,10)*TPK%RO249(:) +!PTERMS(SULF,KTR35) = +KTR35*<WR_SULF> + PTERMS(:,12,207) = +TPK%KTR35(:)*PCONC(:,81) ! -!PTERMS(OH,K287) = +K287*<HO2>*<RO249> - PTERMS(:,15,288) = +TPK%K287(:)*PCONC(:,10)*TPK%RO249(:) +!PTERMS(WR_SULF,KTR35) = -KTR35*<WR_SULF> + PTERMS(:,81,207) = -TPK%KTR35(:)*PCONC(:,81) ! -!PTERMS(HCHO,K287) = +K287*<HO2>*<RO249> - PTERMS(:,28,288) = +TPK%K287(:)*PCONC(:,10)*TPK%RO249(:) +!PTERMS(HCHO,KTR36) = +KTR36*<WR_HCHO> + PTERMS(:,22,208) = +TPK%KTR36(:)*PCONC(:,82) ! -!PTERMS(MGLY,K287) = +K287*<HO2>*<RO249> - PTERMS(:,41,288) = +TPK%K287(:)*PCONC(:,10)*TPK%RO249(:) +!PTERMS(WR_HCHO,KTR36) = -KTR36*<WR_HCHO> + PTERMS(:,82,208) = -TPK%KTR36(:)*PCONC(:,82) ! -!PTERMS(NO,K288) = -K288*<NO>*<RO250> - PTERMS(:,1,289) = -TPK%K288(:)*PCONC(:,1)*TPK%RO250(:) +!PTERMS(ORA1,KTR37) = +KTR37*<WR_ORA1> + PTERMS(:,30,209) = +TPK%KTR37(:)*PCONC(:,83) ! -!PTERMS(NO2,K288) = +K288*<NO>*<RO250> - PTERMS(:,2,289) = +TPK%K288(:)*PCONC(:,1)*TPK%RO250(:) +!PTERMS(WR_ORA1,KTR37) = -KTR37*<WR_ORA1> + PTERMS(:,83,209) = -TPK%KTR37(:)*PCONC(:,83) ! -!PTERMS(RO2T,K288) = +K288*<NO>*<RO250> - PTERMS(:,85,289) = +TPK%K288(:)*PCONC(:,1)*TPK%RO250(:) +!PTERMS(ORA2,KTR38) = +KTR38*<WR_ORA2> + PTERMS(:,31,210) = +TPK%KTR38(:)*PCONC(:,84) ! -!PTERMS(O3,K289) = +K289*<HO2>*<RO250> - PTERMS(:,3,290) = +TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) +!PTERMS(WR_ORA2,KTR38) = -KTR38*<WR_ORA2> + PTERMS(:,84,210) = -TPK%KTR38(:)*PCONC(:,84) ! -!PTERMS(HO2,K289) = -K289*<HO2>*<RO250> - PTERMS(:,10,290) = -TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) +!PTERMS(MO2,KTR39) = +KTR39*<WR_MO2> + PTERMS(:,32,211) = +TPK%KTR39(:)*PCONC(:,85) ! -!PTERMS(OLEL,K289) = +0.5*K289*<HO2>*<RO250> - PTERMS(:,17,290) = +0.5*TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) +!PTERMS(WR_MO2,KTR39) = -KTR39*<WR_MO2> + PTERMS(:,85,211) = -TPK%KTR39(:)*PCONC(:,85) ! ! RETURN -END SUBROUTINE SUBT48 +END SUBROUTINE SUBT37 ! -SUBROUTINE SUBT49 +SUBROUTINE SUBT38 ! -!Indices 981 a 1000 +!Indices 761 a 780 ! -!PTERMS(ORA2,K289) = +0.5*K289*<HO2>*<RO250> - PTERMS(:,44,290) = +0.5*TPK%K289(:)*PCONC(:,10)*TPK%RO250(:) +!PTERMS(OP1,KTR40) = +KTR40*<WR_OP1> + PTERMS(:,28,212) = +TPK%KTR40(:)*PCONC(:,86) ! -!PTERMS(RO2T,K290) = -K290*<RO2T>*<RO250> - PTERMS(:,85,291) = -TPK%K290(:)*PCONC(:,85)*TPK%RO250(:) +!PTERMS(WR_OP1,KTR40) = -KTR40*<WR_OP1> + PTERMS(:,86,212) = -TPK%KTR40(:)*PCONC(:,86) ! -!PTERMS(NO,K291) = -K291*<NO>*<RO251> - PTERMS(:,1,292) = -TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) +!PTERMS(WC_H2O2,KC1) = -KC1*<WC_H2O2> + PTERMS(:,43,213) = -TPK%KC1(:)*PCONC(:,43) ! -!PTERMS(NO2,K291) = +K291*<NO>*<RO251> - PTERMS(:,2,292) = +TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) +!PTERMS(WC_OH,KC1) = +KC1*<WC_H2O2> + PTERMS(:,52,213) = +TPK%KC1(:)*PCONC(:,43) ! -!PTERMS(HO2,K291) = +K291*<NO>*<RO251> - PTERMS(:,10,292) = +TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) +!PTERMS(WC_H2O2,KC2) = +KC2*<WC_OH>*<WC_OH> + PTERMS(:,43,214) = +TPK%KC2(:)*PCONC(:,52)*PCONC(:,52) ! -!PTERMS(HCHO,K291) = +K291*<NO>*<RO251> - PTERMS(:,28,292) = +TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) +!PTERMS(WC_OH,KC2) = -KC2*<WC_OH>*<WC_OH> + PTERMS(:,52,214) = -TPK%KC2(:)*PCONC(:,52)*PCONC(:,52) ! -!PTERMS(MGLY,K291) = +K291*<NO>*<RO251> - PTERMS(:,41,292) = +TPK%K291(:)*PCONC(:,1)*TPK%RO251(:) +!PTERMS(WC_OH,KC3) = -KC3*<WC_OH>*<WC_HO2> + PTERMS(:,52,215) = -TPK%KC3(:)*PCONC(:,52)*PCONC(:,53) ! -!PTERMS(HO2,K292) = -K292*<HO2>*<RO251> - PTERMS(:,10,293) = -TPK%K292(:)*PCONC(:,10)*TPK%RO251(:) +!PTERMS(WC_HO2,KC3) = -KC3*<WC_OH>*<WC_HO2> + PTERMS(:,53,215) = -TPK%KC3(:)*PCONC(:,52)*PCONC(:,53) ! -!PTERMS(HCHO,K292) = +K292*<HO2>*<RO251> - PTERMS(:,28,293) = +TPK%K292(:)*PCONC(:,10)*TPK%RO251(:) +!PTERMS(WC_H2O2,KC4) = -KC4*<WC_H2O2>*<WC_OH> + PTERMS(:,43,216) = -TPK%KC4(:)*PCONC(:,43)*PCONC(:,52) ! -!PTERMS(MGLY,K292) = +K292*<HO2>*<RO251> - PTERMS(:,41,293) = +TPK%K292(:)*PCONC(:,10)*TPK%RO251(:) +!PTERMS(WC_OH,KC4) = -KC4*<WC_H2O2>*<WC_OH> + PTERMS(:,52,216) = -TPK%KC4(:)*PCONC(:,43)*PCONC(:,52) ! -!PTERMS(RO2T,K292) = +K292*<HO2>*<RO251> - PTERMS(:,85,293) = +TPK%K292(:)*PCONC(:,10)*TPK%RO251(:) +!PTERMS(WC_HO2,KC4) = +KC4*<WC_H2O2>*<WC_OH> + PTERMS(:,53,216) = +TPK%KC4(:)*PCONC(:,43)*PCONC(:,52) ! -!PTERMS(HO2,K293) = +K293*<RO2T>*<RO251> - PTERMS(:,10,294) = +TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) +!PTERMS(WC_H2O2,KC5) = +KC5*<WC_HO2>*<WC_HO2> + PTERMS(:,43,217) = +TPK%KC5(:)*PCONC(:,53)*PCONC(:,53) ! -!PTERMS(OH,K293) = +K293*<RO2T>*<RO251> - PTERMS(:,15,294) = +TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) +!PTERMS(WC_HO2,KC5) = -KC5*<WC_HO2>*<WC_HO2> + PTERMS(:,53,217) = -TPK%KC5(:)*PCONC(:,53)*PCONC(:,53) ! -!PTERMS(HCHO,K293) = +K293*<RO2T>*<RO251> - PTERMS(:,28,294) = +TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) +!PTERMS(WC_O3,KC6) = -KC6*<WC_O3>*<WC_HO2> + PTERMS(:,42,218) = -TPK%KC6(:)*PCONC(:,42)*PCONC(:,53) ! -!PTERMS(MGLY,K293) = +K293*<RO2T>*<RO251> - PTERMS(:,41,294) = +TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) +!PTERMS(WC_OH,KC6) = +KC6*<WC_O3>*<WC_HO2> + PTERMS(:,52,218) = +TPK%KC6(:)*PCONC(:,42)*PCONC(:,53) ! -!PTERMS(RO2T,K293) = -K293*<RO2T>*<RO251> - PTERMS(:,85,294) = -TPK%K293(:)*PCONC(:,85)*TPK%RO251(:) +!PTERMS(WC_HO2,KC6) = -KC6*<WC_O3>*<WC_HO2> + PTERMS(:,53,218) = -TPK%KC6(:)*PCONC(:,42)*PCONC(:,53) ! -!PTERMS(NO,K294) = -K294*<NO>*<RO252> - PTERMS(:,1,295) = -TPK%K294(:)*PCONC(:,1)*TPK%RO252(:) +!PTERMS(WC_OH,KC7) = -KC7*<WC_OH>*<WC_SO2> + PTERMS(:,52,219) = -TPK%KC7(:)*PCONC(:,52)*PCONC(:,55) ! -!PTERMS(NO2,K294) = +2.*K294*<NO>*<RO252> - PTERMS(:,2,295) = +2.*TPK%K294(:)*PCONC(:,1)*TPK%RO252(:) +!PTERMS(WC_SO2,KC7) = -KC7*<WC_OH>*<WC_SO2> + PTERMS(:,55,219) = -TPK%KC7(:)*PCONC(:,52)*PCONC(:,55) ! -!PTERMS(HCHO,K294) = +K294*<NO>*<RO252> - PTERMS(:,28,295) = +TPK%K294(:)*PCONC(:,1)*TPK%RO252(:) +!PTERMS(WC_ASO3,KC7) = +KC7*<WC_OH>*<WC_SO2> + PTERMS(:,62,219) = +TPK%KC7(:)*PCONC(:,52)*PCONC(:,55) ! -!PTERMS(MGLY,K294) = +K294*<NO>*<RO252> - PTERMS(:,41,295) = +TPK%K294(:)*PCONC(:,1)*TPK%RO252(:) +!PTERMS(WC_NO2,KC8) = +KC8*<WC_HONO>*<WC_OH> + PTERMS(:,45,220) = +TPK%KC8(:)*PCONC(:,48)*PCONC(:,52) ! ! RETURN -END SUBROUTINE SUBT49 +END SUBROUTINE SUBT38 ! -SUBROUTINE SUBT50 +SUBROUTINE SUBT39 ! -!Indices 1001 a 1020 +!Indices 781 a 800 ! -!PTERMS(NO2,K295) = +K295*<HO2>*<RO252> - PTERMS(:,2,296) = +TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) +!PTERMS(WC_HONO,KC8) = -KC8*<WC_HONO>*<WC_OH> + PTERMS(:,48,220) = -TPK%KC8(:)*PCONC(:,48)*PCONC(:,52) ! -!PTERMS(HO2,K295) = -K295*<HO2>*<RO252> - PTERMS(:,10,296) = -TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) +!PTERMS(WC_OH,KC8) = -KC8*<WC_HONO>*<WC_OH> + PTERMS(:,52,220) = -TPK%KC8(:)*PCONC(:,48)*PCONC(:,52) ! -!PTERMS(HCHO,K295) = +K295*<HO2>*<RO252> - PTERMS(:,28,296) = +TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) +!PTERMS(WC_NO2,KC9) = -KC9*<WC_NO2>*<WC_HO2> + PTERMS(:,45,221) = -TPK%KC9(:)*PCONC(:,45)*PCONC(:,53) ! -!PTERMS(MGLY,K295) = +K295*<HO2>*<RO252> - PTERMS(:,41,296) = +TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) +!PTERMS(WC_HNO4,KC9) = +KC9*<WC_NO2>*<WC_HO2> + PTERMS(:,50,221) = +TPK%KC9(:)*PCONC(:,45)*PCONC(:,53) ! -!PTERMS(RO2T,K295) = +K295*<HO2>*<RO252> - PTERMS(:,85,296) = +TPK%K295(:)*PCONC(:,10)*TPK%RO252(:) +!PTERMS(WC_HO2,KC9) = -KC9*<WC_NO2>*<WC_HO2> + PTERMS(:,53,221) = -TPK%KC9(:)*PCONC(:,45)*PCONC(:,53) ! -!PTERMS(NO2,K296) = +K296*<RO2T>*<RO252> - PTERMS(:,2,297) = +TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) +!PTERMS(WC_NO2,KC10) = +KC10*<WC_HNO4> + PTERMS(:,45,222) = +TPK%KC10(:)*PCONC(:,50) ! -!PTERMS(OH,K296) = +K296*<RO2T>*<RO252> - PTERMS(:,15,297) = +TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) +!PTERMS(WC_HNO4,KC10) = -KC10*<WC_HNO4> + PTERMS(:,50,222) = -TPK%KC10(:)*PCONC(:,50) ! -!PTERMS(HCHO,K296) = +K296*<RO2T>*<RO252> - PTERMS(:,28,297) = +TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) +!PTERMS(WC_HO2,KC10) = +KC10*<WC_HNO4> + PTERMS(:,53,222) = +TPK%KC10(:)*PCONC(:,50) ! -!PTERMS(MGLY,K296) = +K296*<RO2T>*<RO252> - PTERMS(:,41,297) = +TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) +!PTERMS(WC_HONO,KC11) = +KC11*<WC_HNO4> + PTERMS(:,48,223) = +TPK%KC11(:)*PCONC(:,50) ! -!PTERMS(RO2T,K296) = -K296*<RO2T>*<RO252> - PTERMS(:,85,297) = -TPK%K296(:)*PCONC(:,85)*TPK%RO252(:) +!PTERMS(WC_HNO4,KC11) = -KC11*<WC_HNO4> + PTERMS(:,50,223) = -TPK%KC11(:)*PCONC(:,50) ! -!PTERMS(NO,K297) = -K297*<NO>*<RO253> - PTERMS(:,1,298) = -TPK%K297(:)*PCONC(:,1)*TPK%RO253(:) +!PTERMS(WC_HNO3,KC12) = +KC12*<WC_HNO4>*<WC_SO2> + PTERMS(:,49,224) = +TPK%KC12(:)*PCONC(:,50)*PCONC(:,55) ! -!PTERMS(NO2,K297) = +K297*<NO>*<RO253> - PTERMS(:,2,298) = +TPK%K297(:)*PCONC(:,1)*TPK%RO253(:) +!PTERMS(WC_HNO4,KC12) = -KC12*<WC_HNO4>*<WC_SO2> + PTERMS(:,50,224) = -TPK%KC12(:)*PCONC(:,50)*PCONC(:,55) ! -!PTERMS(HCHO,K297) = +K297*<NO>*<RO253> - PTERMS(:,28,298) = +TPK%K297(:)*PCONC(:,1)*TPK%RO253(:) +!PTERMS(WC_SO2,KC12) = -KC12*<WC_HNO4>*<WC_SO2> + PTERMS(:,55,224) = -TPK%KC12(:)*PCONC(:,50)*PCONC(:,55) ! -!PTERMS(RO2T,K297) = +K297*<NO>*<RO253> - PTERMS(:,85,298) = +TPK%K297(:)*PCONC(:,1)*TPK%RO253(:) +!PTERMS(WC_SULF,KC12) = +KC12*<WC_HNO4>*<WC_SO2> + PTERMS(:,56,224) = +TPK%KC12(:)*PCONC(:,50)*PCONC(:,55) ! -!PTERMS(HO2,K298) = -K298*<HO2>*<RO253> - PTERMS(:,10,299) = -TPK%K298(:)*PCONC(:,10)*TPK%RO253(:) +!PTERMS(WC_NO2,KC13) = +KC13*<WC_HNO3> + PTERMS(:,45,225) = +TPK%KC13(:)*PCONC(:,49) ! -!PTERMS(HCHO,K298) = +K298*<HO2>*<RO253> - PTERMS(:,28,299) = +TPK%K298(:)*PCONC(:,10)*TPK%RO253(:) +!PTERMS(WC_HNO3,KC13) = -KC13*<WC_HNO3> + PTERMS(:,49,225) = -TPK%KC13(:)*PCONC(:,49) ! -!PTERMS(RO2T,K298) = +2.*K298*<HO2>*<RO253> - PTERMS(:,85,299) = +2.*TPK%K298(:)*PCONC(:,10)*TPK%RO253(:) +!PTERMS(WC_OH,KC13) = +KC13*<WC_HNO3> + PTERMS(:,52,225) = +TPK%KC13(:)*PCONC(:,49) ! -!PTERMS(OH,K299) = +K299*<RO2T>*<RO253> - PTERMS(:,15,300) = +TPK%K299(:)*PCONC(:,85)*TPK%RO253(:) +!PTERMS(WC_N2O5,KC14) = -KC14*<WC_N2O5> + PTERMS(:,47,226) = -TPK%KC14(:)*PCONC(:,47) ! -!PTERMS(HCHO,K299) = +K299*<RO2T>*<RO253> - PTERMS(:,28,300) = +TPK%K299(:)*PCONC(:,85)*TPK%RO253(:) +!PTERMS(WC_HNO3,KC14) = +KC14*<WC_N2O5> + PTERMS(:,49,226) = +TPK%KC14(:)*PCONC(:,47) ! -!PTERMS(RO2T,K299) = -K299*<RO2T>*<RO253> - PTERMS(:,85,300) = -TPK%K299(:)*PCONC(:,85)*TPK%RO253(:) +!PTERMS(WC_NO3,KC15) = -KC15*<WC_NO3>*<WC_SULF> + PTERMS(:,46,227) = -TPK%KC15(:)*PCONC(:,46)*PCONC(:,56) ! ! RETURN -END SUBROUTINE SUBT50 +END SUBROUTINE SUBT39 ! -SUBROUTINE SUBT51 +SUBROUTINE SUBT40 ! -!Indices 1021 a 1040 +!Indices 801 a 820 ! -!PTERMS(NO,K300) = -K300*<NO>*<RO254> - PTERMS(:,1,301) = -TPK%K300(:)*PCONC(:,1)*TPK%RO254(:) +!PTERMS(WC_HNO3,KC15) = +KC15*<WC_NO3>*<WC_SULF> + PTERMS(:,49,227) = +TPK%KC15(:)*PCONC(:,46)*PCONC(:,56) ! -!PTERMS(NO2,K300) = +K300*<NO>*<RO254> - PTERMS(:,2,301) = +TPK%K300(:)*PCONC(:,1)*TPK%RO254(:) +!PTERMS(WC_SULF,KC15) = -KC15*<WC_NO3>*<WC_SULF> + PTERMS(:,56,227) = -TPK%KC15(:)*PCONC(:,46)*PCONC(:,56) ! -!PTERMS(HO2,K300) = +K300*<NO>*<RO254> - PTERMS(:,10,301) = +TPK%K300(:)*PCONC(:,1)*TPK%RO254(:) +!PTERMS(WC_ASO4,KC15) = +KC15*<WC_NO3>*<WC_SULF> + PTERMS(:,63,227) = +TPK%KC15(:)*PCONC(:,46)*PCONC(:,56) ! -!PTERMS(CO,K300) = +K300*<NO>*<RO254> - PTERMS(:,11,301) = +TPK%K300(:)*PCONC(:,1)*TPK%RO254(:) +!PTERMS(WC_NO3,KC16) = -KC16*<WC_NO3>*<WC_SO2> + PTERMS(:,46,228) = -TPK%KC16(:)*PCONC(:,46)*PCONC(:,55) ! -!PTERMS(O3,K301) = +K301*<HO2>*<RO254> - PTERMS(:,3,302) = +TPK%K301(:)*PCONC(:,10)*TPK%RO254(:) +!PTERMS(WC_HNO3,KC16) = +KC16*<WC_NO3>*<WC_SO2> + PTERMS(:,49,228) = +TPK%KC16(:)*PCONC(:,46)*PCONC(:,55) ! -!PTERMS(HO2,K301) = -K301*<HO2>*<RO254> - PTERMS(:,10,302) = -TPK%K301(:)*PCONC(:,10)*TPK%RO254(:) +!PTERMS(WC_SO2,KC16) = -KC16*<WC_NO3>*<WC_SO2> + PTERMS(:,55,228) = -TPK%KC16(:)*PCONC(:,46)*PCONC(:,55) ! -!PTERMS(RP16,K301) = +K301*<HO2>*<RO254> - PTERMS(:,74,302) = +TPK%K301(:)*PCONC(:,10)*TPK%RO254(:) +!PTERMS(WC_ASO3,KC16) = +KC16*<WC_NO3>*<WC_SO2> + PTERMS(:,62,228) = +TPK%KC16(:)*PCONC(:,46)*PCONC(:,55) ! -!PTERMS(HO2,K302) = +K302*<RO2T>*<RO254> - PTERMS(:,10,303) = +TPK%K302(:)*PCONC(:,85)*TPK%RO254(:) +!PTERMS(WC_HO2,KC17) = +2.00*KC17*<WC_MO2>*<WC_MO2> + PTERMS(:,53,229) = +2.00*TPK%KC17(:)*PCONC(:,60)*PCONC(:,60) ! -!PTERMS(CO,K302) = +K302*<RO2T>*<RO254> - PTERMS(:,11,303) = +TPK%K302(:)*PCONC(:,85)*TPK%RO254(:) +!PTERMS(WC_HCHO,KC17) = +2.00*KC17*<WC_MO2>*<WC_MO2> + PTERMS(:,57,229) = +2.00*TPK%KC17(:)*PCONC(:,60)*PCONC(:,60) ! -!PTERMS(RO2T,K302) = -K302*<RO2T>*<RO254> - PTERMS(:,85,303) = -TPK%K302(:)*PCONC(:,85)*TPK%RO254(:) +!PTERMS(WC_MO2,KC17) = -KC17*<WC_MO2>*<WC_MO2> + PTERMS(:,60,229) = -TPK%KC17(:)*PCONC(:,60)*PCONC(:,60) ! -!PTERMS(O3,K303) = +K303*<OH>*<RPR5> - PTERMS(:,3,304) = +TPK%K303(:)*PCONC(:,15)*PCONC(:,70) +!PTERMS(WC_SO2,KC18) = -KC18*<WC_MO2>*<WC_SO2> + PTERMS(:,55,230) = -TPK%KC18(:)*PCONC(:,60)*PCONC(:,55) ! -!PTERMS(OH,K303) = -K303*<OH>*<RPR5> - PTERMS(:,15,304) = -TPK%K303(:)*PCONC(:,15)*PCONC(:,70) +!PTERMS(WC_MO2,KC18) = -KC18*<WC_MO2>*<WC_SO2> + PTERMS(:,60,230) = -TPK%KC18(:)*PCONC(:,60)*PCONC(:,55) ! -!PTERMS(URG7,K303) = +0.9999993*K303*<OH>*<RPR5> - PTERMS(:,60,304) = +0.9999993*TPK%K303(:)*PCONC(:,15)*PCONC(:,70) +!PTERMS(WC_OP1,KC18) = +KC18*<WC_MO2>*<WC_SO2> + PTERMS(:,61,230) = +TPK%KC18(:)*PCONC(:,60)*PCONC(:,55) ! -!PTERMS(RPR5,K303) = -K303*<OH>*<RPR5> - PTERMS(:,70,304) = -TPK%K303(:)*PCONC(:,15)*PCONC(:,70) +!PTERMS(WC_ASO3,KC18) = +KC18*<WC_MO2>*<WC_SO2> + PTERMS(:,62,230) = +TPK%KC18(:)*PCONC(:,60)*PCONC(:,55) ! -!PTERMS(OH,K304) = -K304*<OH>*<RPR1> - PTERMS(:,15,305) = -TPK%K304(:)*PCONC(:,15)*PCONC(:,69) +!PTERMS(WC_OH,KC19) = -KC19*<WC_HCHO>*<WC_OH> + PTERMS(:,52,231) = -TPK%KC19(:)*PCONC(:,57)*PCONC(:,52) ! -!PTERMS(RPR1,K304) = -K304*<OH>*<RPR1> - PTERMS(:,69,305) = -TPK%K304(:)*PCONC(:,15)*PCONC(:,69) +!PTERMS(WC_HO2,KC19) = +KC19*<WC_HCHO>*<WC_OH> + PTERMS(:,53,231) = +TPK%KC19(:)*PCONC(:,57)*PCONC(:,52) ! -!PTERMS(RO2T,K304) = +K304*<OH>*<RPR1> - PTERMS(:,85,305) = +TPK%K304(:)*PCONC(:,15)*PCONC(:,69) +!PTERMS(WC_HCHO,KC19) = -KC19*<WC_HCHO>*<WC_OH> + PTERMS(:,57,231) = -TPK%KC19(:)*PCONC(:,57)*PCONC(:,52) ! -!PTERMS(OH,K305) = -K305*<OH>*<RP16> - PTERMS(:,15,306) = -TPK%K305(:)*PCONC(:,15)*PCONC(:,74) +!PTERMS(WC_ORA1,KC19) = +KC19*<WC_HCHO>*<WC_OH> + PTERMS(:,58,231) = +TPK%KC19(:)*PCONC(:,57)*PCONC(:,52) ! -!PTERMS(RP16,K305) = -K305*<OH>*<RP16> - PTERMS(:,74,306) = -TPK%K305(:)*PCONC(:,15)*PCONC(:,74) +!PTERMS(WC_OH,KC20) = -KC20*<WC_ORA1>*<WC_OH> + PTERMS(:,52,232) = -TPK%KC20(:)*PCONC(:,58)*PCONC(:,52) ! -!PTERMS(RO2T,K305) = +K305*<OH>*<RP16> - PTERMS(:,85,306) = +TPK%K305(:)*PCONC(:,15)*PCONC(:,74) +!PTERMS(WC_HO2,KC20) = +KC20*<WC_ORA1>*<WC_OH> + PTERMS(:,53,232) = +TPK%KC20(:)*PCONC(:,58)*PCONC(:,52) ! ! RETURN -END SUBROUTINE SUBT51 +END SUBROUTINE SUBT40 ! -SUBROUTINE SUBT52 +SUBROUTINE SUBT41 ! -!Indices 1041 a 1060 +!Indices 821 a 840 ! -!PTERMS(O3,K306) = +1.0000011*K306*<OH>*<RPRL> - PTERMS(:,3,307) = +1.0000011*TPK%K306(:)*PCONC(:,15)*PCONC(:,75) +!PTERMS(WC_CO2,KC20) = +KC20*<WC_ORA1>*<WC_OH> + PTERMS(:,54,232) = +TPK%KC20(:)*PCONC(:,58)*PCONC(:,52) ! -!PTERMS(OH,K306) = -K306*<OH>*<RPRL> - PTERMS(:,15,307) = -TPK%K306(:)*PCONC(:,15)*PCONC(:,75) +!PTERMS(WC_ORA1,KC20) = -KC20*<WC_ORA1>*<WC_OH> + PTERMS(:,58,232) = -TPK%KC20(:)*PCONC(:,58)*PCONC(:,52) ! -!PTERMS(URG7,K306) = +0.9979297*K306*<OH>*<RPRL> - PTERMS(:,60,307) = +0.9979297*TPK%K306(:)*PCONC(:,15)*PCONC(:,75) +!PTERMS(WC_SO2,KC21) = -KC21*<WC_SO2>*<WC_HCHO> + PTERMS(:,55,233) = -TPK%KC21(:)*PCONC(:,55)*PCONC(:,57) ! -!PTERMS(RPR7,K306) = +2.0714202E-03*K306*<OH>*<RPRL> - PTERMS(:,62,307) = +2.0714202E-03*TPK%K306(:)*PCONC(:,15)*PCONC(:,75) +!PTERMS(WC_HCHO,KC21) = -KC21*<WC_SO2>*<WC_HCHO> + PTERMS(:,57,233) = -TPK%KC21(:)*PCONC(:,55)*PCONC(:,57) ! -!PTERMS(RPRL,K306) = -K306*<OH>*<RPRL> - PTERMS(:,75,307) = -TPK%K306(:)*PCONC(:,15)*PCONC(:,75) +!PTERMS(WC_AHMS,KC21) = +KC21*<WC_SO2>*<WC_HCHO> + PTERMS(:,66,233) = +TPK%KC21(:)*PCONC(:,55)*PCONC(:,57) ! -!PTERMS(HNO3,K307) = +K307*<NO3>*<RPR1> - PTERMS(:,5,308) = +TPK%K307(:)*PCONC(:,8)*PCONC(:,69) +!PTERMS(WC_SO2,KC22) = +KC22*<WC_AHMS> + PTERMS(:,55,234) = +TPK%KC22(:)*PCONC(:,66) ! -!PTERMS(NO3,K307) = -K307*<NO3>*<RPR1> - PTERMS(:,8,308) = -TPK%K307(:)*PCONC(:,8)*PCONC(:,69) +!PTERMS(WC_HCHO,KC22) = +KC22*<WC_AHMS> + PTERMS(:,57,234) = +TPK%KC22(:)*PCONC(:,66) ! -!PTERMS(RPR1,K307) = -K307*<NO3>*<RPR1> - PTERMS(:,69,308) = -TPK%K307(:)*PCONC(:,8)*PCONC(:,69) +!PTERMS(WC_AHMS,KC22) = -KC22*<WC_AHMS> + PTERMS(:,66,234) = -TPK%KC22(:)*PCONC(:,66) ! -!PTERMS(RO2T,K307) = +K307*<NO3>*<RPR1> - PTERMS(:,85,308) = +TPK%K307(:)*PCONC(:,8)*PCONC(:,69) +!PTERMS(WC_OH,KC23) = -KC23*<WC_AHMS>*<WC_OH> + PTERMS(:,52,235) = -TPK%KC23(:)*PCONC(:,66)*PCONC(:,52) ! -!PTERMS(HO2,K308) = +K308*<RPR1> - PTERMS(:,10,309) = +TPK%K308(:)*PCONC(:,69) +!PTERMS(WC_HO2,KC23) = +KC23*<WC_AHMS>*<WC_OH> + PTERMS(:,53,235) = +TPK%KC23(:)*PCONC(:,66)*PCONC(:,52) ! -!PTERMS(CO,K308) = +K308*<RPR1> - PTERMS(:,11,309) = +TPK%K308(:)*PCONC(:,69) +!PTERMS(WC_SO2,KC23) = +KC23*<WC_AHMS>*<WC_OH> + PTERMS(:,55,235) = +TPK%KC23(:)*PCONC(:,66)*PCONC(:,52) ! -!PTERMS(RPR1,K308) = -K308*<RPR1> - PTERMS(:,69,309) = -TPK%K308(:)*PCONC(:,69) +!PTERMS(WC_ORA1,KC23) = +KC23*<WC_AHMS>*<WC_OH> + PTERMS(:,58,235) = +TPK%KC23(:)*PCONC(:,66)*PCONC(:,52) ! -!PTERMS(RO2T,K308) = +K308*<RPR1> - PTERMS(:,85,309) = +TPK%K308(:)*PCONC(:,69) +!PTERMS(WC_AHMS,KC23) = -KC23*<WC_AHMS>*<WC_OH> + PTERMS(:,66,235) = -TPK%KC23(:)*PCONC(:,66)*PCONC(:,52) ! -!PTERMS(NO,K309) = -K309*<NO>*<RO255> - PTERMS(:,1,310) = -TPK%K309(:)*PCONC(:,1)*TPK%RO255(:) +!PTERMS(WC_ASO3,KC24) = -KC24*<WC_ASO3>*<W_O2> + PTERMS(:,62,236) = -TPK%KC24(:)*PCONC(:,62)*TPK%W_O2(:) ! -!PTERMS(NO2,K309) = +K309*<NO>*<RO255> - PTERMS(:,2,310) = +TPK%K309(:)*PCONC(:,1)*TPK%RO255(:) +!PTERMS(WC_ASO5,KC24) = +KC24*<WC_ASO3>*<W_O2> + PTERMS(:,64,236) = +TPK%KC24(:)*PCONC(:,62)*TPK%W_O2(:) ! -!PTERMS(RO2T,K309) = +K309*<NO>*<RO255> - PTERMS(:,85,310) = +TPK%K309(:)*PCONC(:,1)*TPK%RO255(:) +!PTERMS(WC_HO2,KC25) = -KC25*<WC_ASO5>*<WC_HO2> + PTERMS(:,53,237) = -TPK%KC25(:)*PCONC(:,64)*PCONC(:,53) ! -!PTERMS(O3,K310) = +K310*<HO2>*<RO255> - PTERMS(:,3,311) = +TPK%K310(:)*PCONC(:,10)*TPK%RO255(:) +!PTERMS(WC_ASO5,KC25) = -KC25*<WC_ASO5>*<WC_HO2> + PTERMS(:,64,237) = -TPK%KC25(:)*PCONC(:,64)*PCONC(:,53) ! -!PTERMS(HO2,K310) = -K310*<HO2>*<RO255> - PTERMS(:,10,311) = -TPK%K310(:)*PCONC(:,10)*TPK%RO255(:) +!PTERMS(WC_AHSO5,KC25) = +KC25*<WC_ASO5>*<WC_HO2> + PTERMS(:,65,237) = +TPK%KC25(:)*PCONC(:,64)*PCONC(:,53) ! -!PTERMS(ACID,K310) = +K310*<HO2>*<RO255> - PTERMS(:,45,311) = +TPK%K310(:)*PCONC(:,10)*TPK%RO255(:) +!PTERMS(WC_ASO4,KC26) = +KC26*<WC_ASO5>*<WC_ASO5> + PTERMS(:,63,238) = +TPK%KC26(:)*PCONC(:,64)*PCONC(:,64) ! -!PTERMS(RO2T,K311) = -K311*<RO2T>*<RO255> - PTERMS(:,85,312) = -TPK%K311(:)*PCONC(:,85)*TPK%RO255(:) +!PTERMS(WC_ASO5,KC26) = -KC26*<WC_ASO5>*<WC_ASO5> + PTERMS(:,64,238) = -TPK%KC26(:)*PCONC(:,64)*PCONC(:,64) ! ! RETURN -END SUBROUTINE SUBT52 +END SUBROUTINE SUBT41 ! -SUBROUTINE SUBT53 +SUBROUTINE SUBT42 ! -!Indices 1061 a 1080 +!Indices 841 a 860 ! -!PTERMS(OH,K312) = -K312*<OH>*<RPR3> - PTERMS(:,15,313) = -TPK%K312(:)*PCONC(:,15)*PCONC(:,57) +!PTERMS(WC_SO2,KC27) = -KC27*<WC_AHSO5>*<WC_SO2> + PTERMS(:,55,239) = -TPK%KC27(:)*PCONC(:,65)*PCONC(:,55) ! -!PTERMS(RPR3,K312) = -K312*<OH>*<RPR3> - PTERMS(:,57,313) = -TPK%K312(:)*PCONC(:,15)*PCONC(:,57) +!PTERMS(WC_SULF,KC27) = +2.00*KC27*<WC_AHSO5>*<WC_SO2> + PTERMS(:,56,239) = +2.00*TPK%KC27(:)*PCONC(:,65)*PCONC(:,55) ! -!PTERMS(RO2T,K312) = +K312*<OH>*<RPR3> - PTERMS(:,85,313) = +TPK%K312(:)*PCONC(:,15)*PCONC(:,57) +!PTERMS(WC_AHSO5,KC27) = -KC27*<WC_AHSO5>*<WC_SO2> + PTERMS(:,65,239) = -TPK%KC27(:)*PCONC(:,65)*PCONC(:,55) ! -!PTERMS(HNO3,K313) = +K313*<NO3>*<RPR3> - PTERMS(:,5,314) = +TPK%K313(:)*PCONC(:,8)*PCONC(:,57) +!PTERMS(WC_OH,KC28) = +KC28*<WC_ASO4> + PTERMS(:,52,240) = +TPK%KC28(:)*PCONC(:,63) ! -!PTERMS(NO3,K313) = -K313*<NO3>*<RPR3> - PTERMS(:,8,314) = -TPK%K313(:)*PCONC(:,8)*PCONC(:,57) +!PTERMS(WC_SULF,KC28) = +KC28*<WC_ASO4> + PTERMS(:,56,240) = +TPK%KC28(:)*PCONC(:,63) ! -!PTERMS(RPR3,K313) = -K313*<NO3>*<RPR3> - PTERMS(:,57,314) = -TPK%K313(:)*PCONC(:,8)*PCONC(:,57) +!PTERMS(WC_ASO4,KC28) = -KC28*<WC_ASO4> + PTERMS(:,63,240) = -TPK%KC28(:)*PCONC(:,63) ! -!PTERMS(RO2T,K313) = +K313*<NO3>*<RPR3> - PTERMS(:,85,314) = +TPK%K313(:)*PCONC(:,8)*PCONC(:,57) +!PTERMS(WC_O3,KC29) = -KC29*<WC_SO2>*<WC_O3> + PTERMS(:,42,241) = -TPK%KC29(:)*PCONC(:,55)*PCONC(:,42) ! -!PTERMS(HO2,K314) = +2.*K314*<RPR3> - PTERMS(:,10,315) = +2.*TPK%K314(:)*PCONC(:,57) +!PTERMS(WC_SO2,KC29) = -KC29*<WC_SO2>*<WC_O3> + PTERMS(:,55,241) = -TPK%KC29(:)*PCONC(:,55)*PCONC(:,42) ! -!PTERMS(CO,K314) = +K314*<RPR3> - PTERMS(:,11,315) = +TPK%K314(:)*PCONC(:,57) +!PTERMS(WC_SULF,KC29) = +KC29*<WC_SO2>*<WC_O3> + PTERMS(:,56,241) = +TPK%KC29(:)*PCONC(:,55)*PCONC(:,42) ! -!PTERMS(RPR3,K314) = -K314*<RPR3> - PTERMS(:,57,315) = -TPK%K314(:)*PCONC(:,57) +!PTERMS(WC_H2O2,KC30) = -KC30*<WC_SO2>*<WC_H2O2> + PTERMS(:,43,242) = -TPK%KC30(:)*PCONC(:,55)*PCONC(:,43) ! -!PTERMS(NO,K315) = -K315*<NO>*<RO256> - PTERMS(:,1,316) = -TPK%K315(:)*PCONC(:,1)*TPK%RO256(:) +!PTERMS(WC_SO2,KC30) = -KC30*<WC_SO2>*<WC_H2O2> + PTERMS(:,55,242) = -TPK%KC30(:)*PCONC(:,55)*PCONC(:,43) ! -!PTERMS(NO2,K315) = +K315*<NO>*<RO256> - PTERMS(:,2,316) = +TPK%K315(:)*PCONC(:,1)*TPK%RO256(:) +!PTERMS(WC_SULF,KC30) = +KC30*<WC_SO2>*<WC_H2O2> + PTERMS(:,56,242) = +TPK%KC30(:)*PCONC(:,55)*PCONC(:,43) ! -!PTERMS(HO2,K315) = +K315*<NO>*<RO256> - PTERMS(:,10,316) = +TPK%K315(:)*PCONC(:,1)*TPK%RO256(:) +!PTERMS(WR_H2O2,KR1) = -KR1*<WR_H2O2> + PTERMS(:,68,243) = -TPK%KR1(:)*PCONC(:,68) ! -!PTERMS(NO2,K316) = -K316*<NO2>*<RO256> - PTERMS(:,2,317) = -TPK%K316(:)*PCONC(:,2)*TPK%RO256(:) +!PTERMS(WR_OH,KR1) = +KR1*<WR_H2O2> + PTERMS(:,77,243) = +TPK%KR1(:)*PCONC(:,68) ! -!PTERMS(PAN8,K316) = +K316*<NO2>*<RO256> - PTERMS(:,83,317) = +TPK%K316(:)*PCONC(:,2)*TPK%RO256(:) +!PTERMS(WR_H2O2,KR2) = +KR2*<WR_OH>*<WR_OH> + PTERMS(:,68,244) = +TPK%KR2(:)*PCONC(:,77)*PCONC(:,77) ! -!PTERMS(NO2,K317) = +K317*<PAN8> - PTERMS(:,2,318) = +TPK%K317(:)*PCONC(:,83) +!PTERMS(WR_OH,KR2) = -KR2*<WR_OH>*<WR_OH> + PTERMS(:,77,244) = -TPK%KR2(:)*PCONC(:,77)*PCONC(:,77) ! -!PTERMS(PAN8,K317) = -K317*<PAN8> - PTERMS(:,83,318) = -TPK%K317(:)*PCONC(:,83) +!PTERMS(WR_OH,KR3) = -KR3*<WR_OH>*<WR_HO2> + PTERMS(:,77,245) = -TPK%KR3(:)*PCONC(:,77)*PCONC(:,78) ! -!PTERMS(RO2T,K317) = +K317*<PAN8> - PTERMS(:,85,318) = +TPK%K317(:)*PCONC(:,83) +!PTERMS(WR_HO2,KR3) = -KR3*<WR_OH>*<WR_HO2> + PTERMS(:,78,245) = -TPK%KR3(:)*PCONC(:,77)*PCONC(:,78) ! -!PTERMS(O3,K318) = +K318*<HO2>*<RO256> - PTERMS(:,3,319) = +TPK%K318(:)*PCONC(:,10)*TPK%RO256(:) +!PTERMS(WR_H2O2,KR4) = -KR4*<WR_H2O2>*<WR_OH> + PTERMS(:,68,246) = -TPK%KR4(:)*PCONC(:,68)*PCONC(:,77) ! -!PTERMS(HO2,K318) = -K318*<HO2>*<RO256> - PTERMS(:,10,319) = -TPK%K318(:)*PCONC(:,10)*TPK%RO256(:) +!PTERMS(WR_OH,KR4) = -KR4*<WR_H2O2>*<WR_OH> + PTERMS(:,77,246) = -TPK%KR4(:)*PCONC(:,68)*PCONC(:,77) ! ! RETURN -END SUBROUTINE SUBT53 +END SUBROUTINE SUBT42 ! -SUBROUTINE SUBT54 +SUBROUTINE SUBT43 ! -!Indices 1081 a 1100 +!Indices 861 a 880 ! -!PTERMS(URG4,K318) = +1.0000000*K318*<HO2>*<RO256> - PTERMS(:,53,319) = +1.0000000*TPK%K318(:)*PCONC(:,10)*TPK%RO256(:) +!PTERMS(WR_HO2,KR4) = +KR4*<WR_H2O2>*<WR_OH> + PTERMS(:,78,246) = +TPK%KR4(:)*PCONC(:,68)*PCONC(:,77) ! -!PTERMS(HO2,K319) = +K319*<RO2T>*<RO256> - PTERMS(:,10,320) = +TPK%K319(:)*PCONC(:,85)*TPK%RO256(:) +!PTERMS(WR_H2O2,KR5) = +KR5*<WR_HO2>*<WR_HO2> + PTERMS(:,68,247) = +TPK%KR5(:)*PCONC(:,78)*PCONC(:,78) ! -!PTERMS(RO2T,K319) = -K319*<RO2T>*<RO256> - PTERMS(:,85,320) = -TPK%K319(:)*PCONC(:,85)*TPK%RO256(:) +!PTERMS(WR_HO2,KR5) = -KR5*<WR_HO2>*<WR_HO2> + PTERMS(:,78,247) = -TPK%KR5(:)*PCONC(:,78)*PCONC(:,78) ! -!PTERMS(HNO3,K320) = +K320*<NO3>*<RPR4> - PTERMS(:,5,321) = +TPK%K320(:)*PCONC(:,8)*PCONC(:,61) +!PTERMS(WR_O3,KR6) = -KR6*<WR_O3>*<WR_HO2> + PTERMS(:,67,248) = -TPK%KR6(:)*PCONC(:,67)*PCONC(:,78) ! -!PTERMS(NO3,K320) = -K320*<NO3>*<RPR4> - PTERMS(:,8,321) = -TPK%K320(:)*PCONC(:,8)*PCONC(:,61) +!PTERMS(WR_OH,KR6) = +KR6*<WR_O3>*<WR_HO2> + PTERMS(:,77,248) = +TPK%KR6(:)*PCONC(:,67)*PCONC(:,78) ! -!PTERMS(RPR4,K320) = -K320*<NO3>*<RPR4> - PTERMS(:,61,321) = -TPK%K320(:)*PCONC(:,8)*PCONC(:,61) +!PTERMS(WR_HO2,KR6) = -KR6*<WR_O3>*<WR_HO2> + PTERMS(:,78,248) = -TPK%KR6(:)*PCONC(:,67)*PCONC(:,78) ! -!PTERMS(NO2,K321) = -K321*<NO2>*<RAD8> - PTERMS(:,2,322) = -TPK%K321(:)*PCONC(:,2)*TPK%RAD8(:) +!PTERMS(WR_OH,KR7) = -KR7*<WR_OH>*<WR_SO2> + PTERMS(:,77,249) = -TPK%KR7(:)*PCONC(:,77)*PCONC(:,80) ! -!PTERMS(UR22,K321) = +K321*<NO2>*<RAD8> - PTERMS(:,59,322) = +TPK%K321(:)*PCONC(:,2)*TPK%RAD8(:) +!PTERMS(WR_SO2,KR7) = -KR7*<WR_OH>*<WR_SO2> + PTERMS(:,80,249) = -TPK%KR7(:)*PCONC(:,77)*PCONC(:,80) ! -!PTERMS(O3,K322) = +K322*<OH>*<RPR7> - PTERMS(:,3,323) = +TPK%K322(:)*PCONC(:,15)*PCONC(:,62) +!PTERMS(WR_ASO3,KR7) = +KR7*<WR_OH>*<WR_SO2> + PTERMS(:,87,249) = +TPK%KR7(:)*PCONC(:,77)*PCONC(:,80) ! -!PTERMS(OH,K322) = -K322*<OH>*<RPR7> - PTERMS(:,15,323) = -TPK%K322(:)*PCONC(:,15)*PCONC(:,62) +!PTERMS(WR_NO2,KR8) = +KR8*<WR_HONO>*<WR_OH> + PTERMS(:,70,250) = +TPK%KR8(:)*PCONC(:,73)*PCONC(:,77) ! -!PTERMS(URG7,K322) = +0.9999993*K322*<OH>*<RPR7> - PTERMS(:,60,323) = +0.9999993*TPK%K322(:)*PCONC(:,15)*PCONC(:,62) +!PTERMS(WR_HONO,KR8) = -KR8*<WR_HONO>*<WR_OH> + PTERMS(:,73,250) = -TPK%KR8(:)*PCONC(:,73)*PCONC(:,77) ! -!PTERMS(RPR7,K322) = -K322*<OH>*<RPR7> - PTERMS(:,62,323) = -TPK%K322(:)*PCONC(:,15)*PCONC(:,62) +!PTERMS(WR_OH,KR8) = -KR8*<WR_HONO>*<WR_OH> + PTERMS(:,77,250) = -TPK%KR8(:)*PCONC(:,73)*PCONC(:,77) ! -!PTERMS(O3,K323) = +1.0000005*K323*<OH>*<RPG7> - PTERMS(:,3,324) = +1.0000005*TPK%K323(:)*PCONC(:,15)*PCONC(:,63) +!PTERMS(WR_NO2,KR9) = -KR9*<WR_NO2>*<WR_HO2> + PTERMS(:,70,251) = -TPK%KR9(:)*PCONC(:,70)*PCONC(:,78) ! -!PTERMS(OH,K323) = -K323*<OH>*<RPG7> - PTERMS(:,15,324) = -TPK%K323(:)*PCONC(:,15)*PCONC(:,63) +!PTERMS(WR_HNO4,KR9) = +KR9*<WR_NO2>*<WR_HO2> + PTERMS(:,75,251) = +TPK%KR9(:)*PCONC(:,70)*PCONC(:,78) ! -!PTERMS(URG6,K323) = +0.4978440*K323*<OH>*<RPG7> - PTERMS(:,58,324) = +0.4978440*TPK%K323(:)*PCONC(:,15)*PCONC(:,63) +!PTERMS(WR_HO2,KR9) = -KR9*<WR_NO2>*<WR_HO2> + PTERMS(:,78,251) = -TPK%KR9(:)*PCONC(:,70)*PCONC(:,78) ! -!PTERMS(RPG7,K323) = -K323*<OH>*<RPG7> - PTERMS(:,63,324) = -TPK%K323(:)*PCONC(:,15)*PCONC(:,63) +!PTERMS(WR_NO2,KR10) = +KR10*<WR_HNO4> + PTERMS(:,70,252) = +TPK%KR10(:)*PCONC(:,75) ! -!PTERMS(OH,K324) = -K324*<OH>*<RPR8> - PTERMS(:,15,325) = -TPK%K324(:)*PCONC(:,15)*PCONC(:,71) +!PTERMS(WR_HNO4,KR10) = -KR10*<WR_HNO4> + PTERMS(:,75,252) = -TPK%KR10(:)*PCONC(:,75) ! -!PTERMS(RPR8,K324) = -K324*<OH>*<RPR8> - PTERMS(:,71,325) = -TPK%K324(:)*PCONC(:,15)*PCONC(:,71) +!PTERMS(WR_HO2,KR10) = +KR10*<WR_HNO4> + PTERMS(:,78,252) = +TPK%KR10(:)*PCONC(:,75) ! -!PTERMS(RO2T,K324) = +K324*<OH>*<RPR8> - PTERMS(:,85,325) = +TPK%K324(:)*PCONC(:,15)*PCONC(:,71) +!PTERMS(WR_HONO,KR11) = +KR11*<WR_HNO4> + PTERMS(:,73,253) = +TPK%KR11(:)*PCONC(:,75) ! -!PTERMS(HO2,K325) = +K325*<OH>*<RP10> - PTERMS(:,10,326) = +TPK%K325(:)*PCONC(:,15)*PCONC(:,72) +!PTERMS(WR_HNO4,KR11) = -KR11*<WR_HNO4> + PTERMS(:,75,253) = -TPK%KR11(:)*PCONC(:,75) ! ! RETURN -END SUBROUTINE SUBT54 +END SUBROUTINE SUBT43 ! -SUBROUTINE SUBT55 +SUBROUTINE SUBT44 ! -!Indices 1101 a 1120 +!Indices 881 a 900 ! -!PTERMS(OH,K325) = -K325*<OH>*<RP10> - PTERMS(:,15,326) = -TPK%K325(:)*PCONC(:,15)*PCONC(:,72) +!PTERMS(WR_HNO3,KR12) = +KR12*<WR_HNO4>*<WR_SO2> + PTERMS(:,74,254) = +TPK%KR12(:)*PCONC(:,75)*PCONC(:,80) ! -!PTERMS(RP10,K325) = -K325*<OH>*<RP10> - PTERMS(:,72,326) = -TPK%K325(:)*PCONC(:,15)*PCONC(:,72) +!PTERMS(WR_HNO4,KR12) = -KR12*<WR_HNO4>*<WR_SO2> + PTERMS(:,75,254) = -TPK%KR12(:)*PCONC(:,75)*PCONC(:,80) ! -!PTERMS(O3,K326) = +K326*<OH>*<RP11> - PTERMS(:,3,327) = +TPK%K326(:)*PCONC(:,15)*PCONC(:,73) +!PTERMS(WR_SO2,KR12) = -KR12*<WR_HNO4>*<WR_SO2> + PTERMS(:,80,254) = -TPK%KR12(:)*PCONC(:,75)*PCONC(:,80) ! -!PTERMS(OH,K326) = -K326*<OH>*<RP11> - PTERMS(:,15,327) = -TPK%K326(:)*PCONC(:,15)*PCONC(:,73) +!PTERMS(WR_SULF,KR12) = +KR12*<WR_HNO4>*<WR_SO2> + PTERMS(:,81,254) = +TPK%KR12(:)*PCONC(:,75)*PCONC(:,80) ! -!PTERMS(UR26,K326) = +0.67*K326*<OH>*<RP11> - PTERMS(:,49,327) = +0.67*TPK%K326(:)*PCONC(:,15)*PCONC(:,73) +!PTERMS(WR_NO2,KR13) = +KR13*<WR_HNO3> + PTERMS(:,70,255) = +TPK%KR13(:)*PCONC(:,74) ! -!PTERMS(RP11,K326) = -K326*<OH>*<RP11> - PTERMS(:,73,327) = -TPK%K326(:)*PCONC(:,15)*PCONC(:,73) +!PTERMS(WR_HNO3,KR13) = -KR13*<WR_HNO3> + PTERMS(:,74,255) = -TPK%KR13(:)*PCONC(:,74) ! -!PTERMS(HNO3,K327) = +K327*<NO3>*<RPR8> - PTERMS(:,5,328) = +TPK%K327(:)*PCONC(:,8)*PCONC(:,71) +!PTERMS(WR_OH,KR13) = +KR13*<WR_HNO3> + PTERMS(:,77,255) = +TPK%KR13(:)*PCONC(:,74) ! -!PTERMS(NO3,K327) = -K327*<NO3>*<RPR8> - PTERMS(:,8,328) = -TPK%K327(:)*PCONC(:,8)*PCONC(:,71) +!PTERMS(WR_N2O5,KR14) = -KR14*<WR_N2O5> + PTERMS(:,72,256) = -TPK%KR14(:)*PCONC(:,72) ! -!PTERMS(RPR8,K327) = -K327*<NO3>*<RPR8> - PTERMS(:,71,328) = -TPK%K327(:)*PCONC(:,8)*PCONC(:,71) +!PTERMS(WR_HNO3,KR14) = +KR14*<WR_N2O5> + PTERMS(:,74,256) = +TPK%KR14(:)*PCONC(:,72) ! -!PTERMS(RO2T,K327) = +K327*<NO3>*<RPR8> - PTERMS(:,85,328) = +TPK%K327(:)*PCONC(:,8)*PCONC(:,71) +!PTERMS(WR_NO3,KR15) = -KR15*<WR_NO3>*<WR_SULF> + PTERMS(:,71,257) = -TPK%KR15(:)*PCONC(:,71)*PCONC(:,81) ! -!PTERMS(RP10,K328) = -K328*<RP10> - PTERMS(:,72,329) = -TPK%K328(:)*PCONC(:,72) +!PTERMS(WR_HNO3,KR15) = +KR15*<WR_NO3>*<WR_SULF> + PTERMS(:,74,257) = +TPK%KR15(:)*PCONC(:,71)*PCONC(:,81) ! -!PTERMS(HO2,K329) = +K329*<RPR8> - PTERMS(:,10,330) = +TPK%K329(:)*PCONC(:,71) +!PTERMS(WR_SULF,KR15) = -KR15*<WR_NO3>*<WR_SULF> + PTERMS(:,81,257) = -TPK%KR15(:)*PCONC(:,71)*PCONC(:,81) ! -!PTERMS(CO,K329) = +K329*<RPR8> - PTERMS(:,11,330) = +TPK%K329(:)*PCONC(:,71) +!PTERMS(WR_ASO4,KR15) = +KR15*<WR_NO3>*<WR_SULF> + PTERMS(:,88,257) = +TPK%KR15(:)*PCONC(:,71)*PCONC(:,81) ! -!PTERMS(RPR8,K329) = -K329*<RPR8> - PTERMS(:,71,330) = -TPK%K329(:)*PCONC(:,71) +!PTERMS(WR_NO3,KR16) = -KR16*<WR_NO3>*<WR_SO2> + PTERMS(:,71,258) = -TPK%KR16(:)*PCONC(:,71)*PCONC(:,80) ! -!PTERMS(RO2T,K329) = +K329*<RPR8> - PTERMS(:,85,330) = +TPK%K329(:)*PCONC(:,71) +!PTERMS(WR_HNO3,KR16) = +KR16*<WR_NO3>*<WR_SO2> + PTERMS(:,74,258) = +TPK%KR16(:)*PCONC(:,71)*PCONC(:,80) ! -!PTERMS(HO2,K330) = +K330*<RPR8> - PTERMS(:,10,331) = +TPK%K330(:)*PCONC(:,71) +!PTERMS(WR_SO2,KR16) = -KR16*<WR_NO3>*<WR_SO2> + PTERMS(:,80,258) = -TPK%KR16(:)*PCONC(:,71)*PCONC(:,80) ! -!PTERMS(RPR8,K330) = -K330*<RPR8> - PTERMS(:,71,331) = -TPK%K330(:)*PCONC(:,71) +!PTERMS(WR_ASO3,KR16) = +KR16*<WR_NO3>*<WR_SO2> + PTERMS(:,87,258) = +TPK%KR16(:)*PCONC(:,71)*PCONC(:,80) ! -!PTERMS(RO2T,K330) = +K330*<RPR8> - PTERMS(:,85,331) = +TPK%K330(:)*PCONC(:,71) +!PTERMS(WR_HO2,KR17) = +2.00*KR17*<WR_MO2>*<WR_MO2> + PTERMS(:,78,259) = +2.00*TPK%KR17(:)*PCONC(:,85)*PCONC(:,85) ! -!PTERMS(NO,K331) = -K331*<NO>*<RO257> - PTERMS(:,1,332) = -TPK%K331(:)*PCONC(:,1)*TPK%RO257(:) +!PTERMS(WR_HCHO,KR17) = +2.00*KR17*<WR_MO2>*<WR_MO2> + PTERMS(:,82,259) = +2.00*TPK%KR17(:)*PCONC(:,85)*PCONC(:,85) ! -!PTERMS(NO2,K331) = +K331*<NO>*<RO257> - PTERMS(:,2,332) = +TPK%K331(:)*PCONC(:,1)*TPK%RO257(:) +!PTERMS(WR_MO2,KR17) = -KR17*<WR_MO2>*<WR_MO2> + PTERMS(:,85,259) = -TPK%KR17(:)*PCONC(:,85)*PCONC(:,85) ! ! RETURN -END SUBROUTINE SUBT55 +END SUBROUTINE SUBT44 +! +SUBROUTINE SUBT45 +! +!Indices 901 a 920 ! -SUBROUTINE SUBT56 +!PTERMS(WR_SO2,KR18) = -KR18*<WR_MO2>*<WR_SO2> + PTERMS(:,80,260) = -TPK%KR18(:)*PCONC(:,85)*PCONC(:,80) ! -!Indices 1121 a 1140 +!PTERMS(WR_MO2,KR18) = -KR18*<WR_MO2>*<WR_SO2> + PTERMS(:,85,260) = -TPK%KR18(:)*PCONC(:,85)*PCONC(:,80) ! -!PTERMS(RO2T,K331) = +K331*<NO>*<RO257> - PTERMS(:,85,332) = +TPK%K331(:)*PCONC(:,1)*TPK%RO257(:) +!PTERMS(WR_OP1,KR18) = +KR18*<WR_MO2>*<WR_SO2> + PTERMS(:,86,260) = +TPK%KR18(:)*PCONC(:,85)*PCONC(:,80) ! -!PTERMS(O3,K332) = +K332*<HO2>*<RO257> - PTERMS(:,3,333) = +TPK%K332(:)*PCONC(:,10)*TPK%RO257(:) +!PTERMS(WR_ASO3,KR18) = +KR18*<WR_MO2>*<WR_SO2> + PTERMS(:,87,260) = +TPK%KR18(:)*PCONC(:,85)*PCONC(:,80) ! -!PTERMS(HO2,K332) = -K332*<HO2>*<RO257> - PTERMS(:,10,333) = -TPK%K332(:)*PCONC(:,10)*TPK%RO257(:) +!PTERMS(WR_OH,KR19) = -KR19*<WR_HCHO>*<WR_OH> + PTERMS(:,77,261) = -TPK%KR19(:)*PCONC(:,82)*PCONC(:,77) ! -!PTERMS(URG4,K332) = +1.0000000*K332*<HO2>*<RO257> - PTERMS(:,53,333) = +1.0000000*TPK%K332(:)*PCONC(:,10)*TPK%RO257(:) +!PTERMS(WR_HO2,KR19) = +KR19*<WR_HCHO>*<WR_OH> + PTERMS(:,78,261) = +TPK%KR19(:)*PCONC(:,82)*PCONC(:,77) ! -!PTERMS(RO2T,K333) = -K333*<RO2T>*<RO257> - PTERMS(:,85,334) = -TPK%K333(:)*PCONC(:,85)*TPK%RO257(:) +!PTERMS(WR_HCHO,KR19) = -KR19*<WR_HCHO>*<WR_OH> + PTERMS(:,82,261) = -TPK%KR19(:)*PCONC(:,82)*PCONC(:,77) ! -!PTERMS(O3,K334) = +1.0000000*K334*<OH>*<RPG3> - PTERMS(:,3,335) = +1.0000000*TPK%K334(:)*PCONC(:,15)*PCONC(:,52) +!PTERMS(WR_ORA1,KR19) = +KR19*<WR_HCHO>*<WR_OH> + PTERMS(:,83,261) = +TPK%KR19(:)*PCONC(:,82)*PCONC(:,77) ! -!PTERMS(OH,K334) = -K334*<OH>*<RPG3> - PTERMS(:,15,335) = -TPK%K334(:)*PCONC(:,15)*PCONC(:,52) +!PTERMS(WR_OH,KR20) = -KR20*<WR_ORA1>*<WR_OH> + PTERMS(:,77,262) = -TPK%KR20(:)*PCONC(:,83)*PCONC(:,77) ! -!PTERMS(RPG2,K334) = +0.8808107*K334*<OH>*<RPG3> - PTERMS(:,50,335) = +0.8808107*TPK%K334(:)*PCONC(:,15)*PCONC(:,52) +!PTERMS(WR_HO2,KR20) = +KR20*<WR_ORA1>*<WR_OH> + PTERMS(:,78,262) = +TPK%KR20(:)*PCONC(:,83)*PCONC(:,77) ! -!PTERMS(RPG3,K334) = -K334*<OH>*<RPG3> - PTERMS(:,52,335) = -TPK%K334(:)*PCONC(:,15)*PCONC(:,52) +!PTERMS(WR_CO2,KR20) = +KR20*<WR_ORA1>*<WR_OH> + PTERMS(:,79,262) = +TPK%KR20(:)*PCONC(:,83)*PCONC(:,77) ! -!PTERMS(O3,K335) = +1.0000000*K335*<OH>*<RPG2> - PTERMS(:,3,336) = +1.0000000*TPK%K335(:)*PCONC(:,15)*PCONC(:,50) +!PTERMS(WR_ORA1,KR20) = -KR20*<WR_ORA1>*<WR_OH> + PTERMS(:,83,262) = -TPK%KR20(:)*PCONC(:,83)*PCONC(:,77) ! -!PTERMS(OH,K335) = -K335*<OH>*<RPG2> - PTERMS(:,15,336) = -TPK%K335(:)*PCONC(:,15)*PCONC(:,50) +!PTERMS(WR_SO2,KR21) = -KR21*<WR_SO2>*<WR_HCHO> + PTERMS(:,80,263) = -TPK%KR21(:)*PCONC(:,80)*PCONC(:,82) ! -!PTERMS(URG2,K335) = +0.5562513*K335*<OH>*<RPG2> - PTERMS(:,48,336) = +0.5562513*TPK%K335(:)*PCONC(:,15)*PCONC(:,50) +!PTERMS(WR_HCHO,KR21) = -KR21*<WR_SO2>*<WR_HCHO> + PTERMS(:,82,263) = -TPK%KR21(:)*PCONC(:,80)*PCONC(:,82) ! -!PTERMS(RPG2,K335) = -K335*<OH>*<RPG2> - PTERMS(:,50,336) = -TPK%K335(:)*PCONC(:,15)*PCONC(:,50) +!PTERMS(WR_AHMS,KR21) = +KR21*<WR_SO2>*<WR_HCHO> + PTERMS(:,91,263) = +TPK%KR21(:)*PCONC(:,80)*PCONC(:,82) ! -!PTERMS(RP18,K335) = +0.4437492*K335*<OH>*<RPG2> - PTERMS(:,51,336) = +0.4437492*TPK%K335(:)*PCONC(:,15)*PCONC(:,50) +!PTERMS(WR_SO2,KR22) = +KR22*<WR_AHMS> + PTERMS(:,80,264) = +TPK%KR22(:)*PCONC(:,91) ! -!PTERMS(O3,K337) = +K337*<OH>*<RP18> - PTERMS(:,3,337) = +TPK%K337(:)*PCONC(:,15)*PCONC(:,51) +!PTERMS(WR_HCHO,KR22) = +KR22*<WR_AHMS> + PTERMS(:,82,264) = +TPK%KR22(:)*PCONC(:,91) ! -!PTERMS(OH,K337) = -K337*<OH>*<RP18> - PTERMS(:,15,337) = -TPK%K337(:)*PCONC(:,15)*PCONC(:,51) +!PTERMS(WR_AHMS,KR22) = -KR22*<WR_AHMS> + PTERMS(:,91,264) = -TPK%KR22(:)*PCONC(:,91) ! -!PTERMS(URG2,K337) = +K337*<OH>*<RP18> - PTERMS(:,48,337) = +TPK%K337(:)*PCONC(:,15)*PCONC(:,51) +!PTERMS(WR_OH,KR23) = -KR23*<WR_AHMS>*<WR_OH> + PTERMS(:,77,265) = -TPK%KR23(:)*PCONC(:,91)*PCONC(:,77) ! -!PTERMS(RP18,K337) = -K337*<OH>*<RP18> - PTERMS(:,51,337) = -TPK%K337(:)*PCONC(:,15)*PCONC(:,51) +!PTERMS(WR_HO2,KR23) = +KR23*<WR_AHMS>*<WR_OH> + PTERMS(:,78,265) = +TPK%KR23(:)*PCONC(:,91)*PCONC(:,77) ! -!PTERMS(HNO3,K338) = +K338*<NO3>*<RP16> - PTERMS(:,5,338) = +TPK%K338(:)*PCONC(:,8)*PCONC(:,74) ! -!PTERMS(NO3,K338) = -K338*<NO3>*<RP16> - PTERMS(:,8,338) = -TPK%K338(:)*PCONC(:,8)*PCONC(:,74) +RETURN +END SUBROUTINE SUBT45 ! +SUBROUTINE SUBT46 ! -RETURN -END SUBROUTINE SUBT56 +!Indices 921 a 940 ! -SUBROUTINE SUBT57 +!PTERMS(WR_SO2,KR23) = +KR23*<WR_AHMS>*<WR_OH> + PTERMS(:,80,265) = +TPK%KR23(:)*PCONC(:,91)*PCONC(:,77) ! -!Indices 1141 a 1160 +!PTERMS(WR_ORA1,KR23) = +KR23*<WR_AHMS>*<WR_OH> + PTERMS(:,83,265) = +TPK%KR23(:)*PCONC(:,91)*PCONC(:,77) ! -!PTERMS(RP16,K338) = -K338*<NO3>*<RP16> - PTERMS(:,74,338) = -TPK%K338(:)*PCONC(:,8)*PCONC(:,74) +!PTERMS(WR_AHMS,KR23) = -KR23*<WR_AHMS>*<WR_OH> + PTERMS(:,91,265) = -TPK%KR23(:)*PCONC(:,91)*PCONC(:,77) ! -!PTERMS(RO2T,K338) = +K338*<NO3>*<RP16> - PTERMS(:,85,338) = +TPK%K338(:)*PCONC(:,8)*PCONC(:,74) +!PTERMS(WR_ASO3,KR24) = -KR24*<WR_ASO3>*<W_O2> + PTERMS(:,87,266) = -TPK%KR24(:)*PCONC(:,87)*TPK%W_O2(:) ! -!PTERMS(HO2,K339) = +K339*<RP16> - PTERMS(:,10,339) = +TPK%K339(:)*PCONC(:,74) +!PTERMS(WR_ASO5,KR24) = +KR24*<WR_ASO3>*<W_O2> + PTERMS(:,89,266) = +TPK%KR24(:)*PCONC(:,87)*TPK%W_O2(:) ! -!PTERMS(CO,K339) = +2.*K339*<RP16> - PTERMS(:,11,339) = +2.*TPK%K339(:)*PCONC(:,74) +!PTERMS(WR_HO2,KR25) = -KR25*<WR_ASO5>*<WR_HO2> + PTERMS(:,78,267) = -TPK%KR25(:)*PCONC(:,89)*PCONC(:,78) ! -!PTERMS(OH,K339) = +K339*<RP16> - PTERMS(:,15,339) = +TPK%K339(:)*PCONC(:,74) +!PTERMS(WR_ASO5,KR25) = -KR25*<WR_ASO5>*<WR_HO2> + PTERMS(:,89,267) = -TPK%KR25(:)*PCONC(:,89)*PCONC(:,78) ! -!PTERMS(RP16,K339) = -K339*<RP16> - PTERMS(:,74,339) = -TPK%K339(:)*PCONC(:,74) +!PTERMS(WR_AHSO5,KR25) = +KR25*<WR_ASO5>*<WR_HO2> + PTERMS(:,90,267) = +TPK%KR25(:)*PCONC(:,89)*PCONC(:,78) ! -!PTERMS(NO,K340) = -K340*<NO>*<RO258> - PTERMS(:,1,340) = -TPK%K340(:)*PCONC(:,1)*TPK%RO258(:) +!PTERMS(WR_ASO4,KR26) = +KR26*<WR_ASO5>*<WR_ASO5> + PTERMS(:,88,268) = +TPK%KR26(:)*PCONC(:,89)*PCONC(:,89) ! -!PTERMS(NO2,K340) = +K340*<NO>*<RO258> - PTERMS(:,2,340) = +TPK%K340(:)*PCONC(:,1)*TPK%RO258(:) +!PTERMS(WR_ASO5,KR26) = -KR26*<WR_ASO5>*<WR_ASO5> + PTERMS(:,89,268) = -TPK%KR26(:)*PCONC(:,89)*PCONC(:,89) ! -!PTERMS(CO,K340) = +K340*<NO>*<RO258> - PTERMS(:,11,340) = +TPK%K340(:)*PCONC(:,1)*TPK%RO258(:) +!PTERMS(WR_SO2,KR27) = -KR27*<WR_AHSO5>*<WR_SO2> + PTERMS(:,80,269) = -TPK%KR27(:)*PCONC(:,90)*PCONC(:,80) ! -!PTERMS(OH,K340) = +K340*<NO>*<RO258> - PTERMS(:,15,340) = +TPK%K340(:)*PCONC(:,1)*TPK%RO258(:) +!PTERMS(WR_SULF,KR27) = +2.00*KR27*<WR_AHSO5>*<WR_SO2> + PTERMS(:,81,269) = +2.00*TPK%KR27(:)*PCONC(:,90)*PCONC(:,80) ! -!PTERMS(O3,K341) = +K341*<HO2>*<RO258> - PTERMS(:,3,341) = +TPK%K341(:)*PCONC(:,10)*TPK%RO258(:) +!PTERMS(WR_AHSO5,KR27) = -KR27*<WR_AHSO5>*<WR_SO2> + PTERMS(:,90,269) = -TPK%KR27(:)*PCONC(:,90)*PCONC(:,80) ! -!PTERMS(HO2,K341) = -K341*<HO2>*<RO258> - PTERMS(:,10,341) = -TPK%K341(:)*PCONC(:,10)*TPK%RO258(:) +!PTERMS(WR_OH,KR28) = +KR28*<WR_ASO4> + PTERMS(:,77,270) = +TPK%KR28(:)*PCONC(:,88) ! -!PTERMS(UR28,K341) = +K341*<HO2>*<RO258> - PTERMS(:,46,341) = +TPK%K341(:)*PCONC(:,10)*TPK%RO258(:) +!PTERMS(WR_SULF,KR28) = +KR28*<WR_ASO4> + PTERMS(:,81,270) = +TPK%KR28(:)*PCONC(:,88) ! -!PTERMS(CO,K342) = +K342*<RO2T>*<RO258> - PTERMS(:,11,342) = +TPK%K342(:)*PCONC(:,85)*TPK%RO258(:) +!PTERMS(WR_ASO4,KR28) = -KR28*<WR_ASO4> + PTERMS(:,88,270) = -TPK%KR28(:)*PCONC(:,88) ! -!PTERMS(OH,K342) = +K342*<RO2T>*<RO258> - PTERMS(:,15,342) = +TPK%K342(:)*PCONC(:,85)*TPK%RO258(:) +!PTERMS(WR_O3,KR29) = -KR29*<WR_SO2>*<WR_O3> + PTERMS(:,67,271) = -TPK%KR29(:)*PCONC(:,80)*PCONC(:,67) ! -!PTERMS(RO2T,K342) = -K342*<RO2T>*<RO258> - PTERMS(:,85,342) = -TPK%K342(:)*PCONC(:,85)*TPK%RO258(:) +!PTERMS(WR_SO2,KR29) = -KR29*<WR_SO2>*<WR_O3> + PTERMS(:,80,271) = -TPK%KR29(:)*PCONC(:,80)*PCONC(:,67) ! -!PTERMS(NO2,K343) = +K343*<PAN7> - PTERMS(:,2,343) = +TPK%K343(:)*PCONC(:,82) +!PTERMS(WR_SULF,KR29) = +KR29*<WR_SO2>*<WR_O3> + PTERMS(:,81,271) = +TPK%KR29(:)*PCONC(:,80)*PCONC(:,67) ! -!PTERMS(PAN7,K343) = -K343*<PAN7> - PTERMS(:,82,343) = -TPK%K343(:)*PCONC(:,82) +!PTERMS(WR_H2O2,KR30) = -KR30*<WR_SO2>*<WR_H2O2> + PTERMS(:,68,272) = -TPK%KR30(:)*PCONC(:,80)*PCONC(:,68) ! -!PTERMS(RO2T,K343) = +K343*<PAN7> - PTERMS(:,85,343) = +TPK%K343(:)*PCONC(:,82) ! -!PTERMS(NO,K344) = -K344*<NO>*<RO230> - PTERMS(:,1,344) = -TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) +RETURN +END SUBROUTINE SUBT46 +! +SUBROUTINE SUBT47 +! +!Indices 941 a 942 +! +!PTERMS(WR_SO2,KR30) = -KR30*<WR_SO2>*<WR_H2O2> + PTERMS(:,80,272) = -TPK%KR30(:)*PCONC(:,80)*PCONC(:,68) +! +!PTERMS(WR_SULF,KR30) = +KR30*<WR_SO2>*<WR_H2O2> + PTERMS(:,81,272) = +TPK%KR30(:)*PCONC(:,80)*PCONC(:,68) ! ! RETURN -END SUBROUTINE SUBT57 +END SUBROUTINE SUBT47 ! -SUBROUTINE SUBT58 +END SUBROUTINE CH_TERMS_AQ +! +!======================================================================== ! -!Indices 1161 a 1180 +!! #################### + MODULE MODI_CH_TERMS_GAZ +!! #################### +INTERFACE +SUBROUTINE CH_TERMS_GAZ(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ, KREAC +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KREAC):: PTERMS +INTEGER, INTENT(IN) :: KMI +END SUBROUTINE CH_TERMS_GAZ +END INTERFACE +END MODULE MODI_CH_TERMS_GAZ +! +!======================================================================== ! -!PTERMS(NO2,K344) = +K344*<NO>*<RO230> - PTERMS(:,2,344) = +TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) +!! +!! ###################### + SUBROUTINE CH_TERMS_GAZ(PTIME,PCONC,PTERMS,KMI,KVECNPT,KEQ,KREAC) +!! ###################### +!! This code has been created automatically by preprocessor m10, +!! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. +!! Please report all bugs to K. Suhre (Lab. d'Aerologie UPS/CNRS). +!! +!!*** *MODD_CH_TERMS* +!! +!! PURPOSE +!! ------- +! calculation of the contribution of each term in each reaction +!! +!!** METHOD +!! ------ +!! The contribution of reaction i to the evolution of species j +!! is returned in PTERMS. +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Karsten Suhre (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) +!! Modified 31/10/03: New interface for better MesoNH compilation (D. Gazen) +!! +!!---------------------------------------------------------------------- +!! +!! EXTERNAL +!! -------- +!! none +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +USE MODD_CH_M9_SCHEME +!! +!! EXPLICIT ARGUMENTS +!! ------------------ +IMPLICIT NONE +REAL, INTENT(IN) :: PTIME +INTEGER, INTENT(IN) :: KVECNPT +INTEGER, INTENT(IN) :: KEQ, KREAC +REAL, INTENT(IN), DIMENSION(KVECNPT,KEQ) :: PCONC +REAL, INTENT(OUT), DIMENSION(KVECNPT,KEQ,KREAC):: PTERMS +INTEGER, INTENT(IN) :: KMI +!! +TYPE(CCSTYPE), POINTER :: TPK +TPK=>TACCS(KMI) +! /BEGIN_CODE/ +TPK%O1D(:)=(TPK%K002(:)*PCONC(:,JP_O3))/(TPK%K020(:)*TPK%N2(:)+TPK%K021(:)*TPK%O2(:)+& + &TPK%K022(:)*TPK%H2O(:)) +TPK%O3P(:)=(TPK%K001(:)*PCONC(:,JP_NO2)+TPK%K003(:)*PCONC(:,JP_O3)+TPK%K008(:)*PCONC(:,JP_NO3)+& + &TPK%K020(:)*TPK%O1D(:)*TPK%N2(:)+TPK%K021(:)*TPK%O1D(:)*TPK%O2(:)+& + &0.00000*TPK%K079(:)*PCONC(:,JP_ALKE)*PCONC(:,JP_O3)+& + &0.09000*TPK%K080(:)*PCONC(:,JP_BIO)*PCONC(:,JP_O3))/& + &(TPK%K018(:)*TPK%O2(:)+TPK%K019(:)*PCONC(:,JP_O3)+TPK%K029(:)*PCONC(:,JP_NO)+& + &TPK%K030(:)*PCONC(:,JP_NO2)+TPK%K031(:)*PCONC(:,JP_NO2)+TPK%K054(:)*PCONC(:,JP_BIO)+& + &TPK%K055(:)*PCONC(:,JP_CARBO)) +! /END_CODE/ +PTERMS(:,:,:) = 0.0 +CALL SUBT0 +CALL SUBT1 +CALL SUBT2 +CALL SUBT3 +CALL SUBT4 +CALL SUBT5 +CALL SUBT6 +CALL SUBT7 +CALL SUBT8 +CALL SUBT9 +CALL SUBT10 +CALL SUBT11 +CALL SUBT12 +CALL SUBT13 +CALL SUBT14 +CALL SUBT15 +CALL SUBT16 +CALL SUBT17 +CALL SUBT18 +CALL SUBT19 +CALL SUBT20 +CALL SUBT21 +CALL SUBT22 +CALL SUBT23 +CALL SUBT24 +CALL SUBT25 +CALL SUBT26 +CALL SUBT27 +CALL SUBT28 +CALL SUBT29 +CALL SUBT30 +! + +CONTAINS + +SUBROUTINE SUBT0 +! +!Indices 1 a 20 +! +!PTERMS(NO,K001) = +K001*<NO2> + PTERMS(:,3,1) = +TPK%K001(:)*PCONC(:,4) ! -!PTERMS(RO2T,K344) = +K344*<NO>*<RO230> - PTERMS(:,85,344) = +TPK%K344(:)*PCONC(:,1)*TPK%RO230(:) +!PTERMS(NO2,K001) = -K001*<NO2> + PTERMS(:,4,1) = -TPK%K001(:)*PCONC(:,4) ! -!PTERMS(NH3,K345) = -K345*<OH>*<NH3> - PTERMS(:,9,345) = -TPK%K345(:)*PCONC(:,15)*PCONC(:,9) +!PTERMS(O3,K002) = -K002*<O3> + PTERMS(:,1,2) = -TPK%K002(:)*PCONC(:,1) ! -!PTERMS(OH,K345) = -K345*<OH>*<NH3> - PTERMS(:,15,345) = -TPK%K345(:)*PCONC(:,15)*PCONC(:,9) +!PTERMS(O3,K003) = -K003*<O3> + PTERMS(:,1,3) = -TPK%K003(:)*PCONC(:,1) ! -!PTERMS(H2SO4,K346) = -K346*<H2SO4> - PTERMS(:,14,346) = -TPK%K346(:)*PCONC(:,14) +!PTERMS(NO,K004) = +K004*<HONO> + PTERMS(:,3,4) = +TPK%K004(:)*PCONC(:,7) ! -!PTERMS(HO2,K347) = +K347*<OH>*<ORA1> - PTERMS(:,10,347) = +TPK%K347(:)*PCONC(:,15)*PCONC(:,43) +!PTERMS(HONO,K004) = -K004*<HONO> + PTERMS(:,7,4) = -TPK%K004(:)*PCONC(:,7) ! -!PTERMS(OH,K347) = -K347*<OH>*<ORA1> - PTERMS(:,15,347) = -TPK%K347(:)*PCONC(:,15)*PCONC(:,43) +!PTERMS(OH,K004) = +K004*<HONO> + PTERMS(:,14,4) = +TPK%K004(:)*PCONC(:,7) ! -!PTERMS(ORA1,K347) = -K347*<OH>*<ORA1> - PTERMS(:,43,347) = -TPK%K347(:)*PCONC(:,15)*PCONC(:,43) +!PTERMS(NO2,K005) = +K005*<HNO3> + PTERMS(:,4,5) = +TPK%K005(:)*PCONC(:,8) ! -!PTERMS(OH,K348) = -K348*<OH>*<ORA2> - PTERMS(:,15,348) = -TPK%K348(:)*PCONC(:,15)*PCONC(:,44) +!PTERMS(HNO3,K005) = -K005*<HNO3> + PTERMS(:,8,5) = -TPK%K005(:)*PCONC(:,8) ! -!PTERMS(ORA2,K348) = -K348*<OH>*<ORA2> - PTERMS(:,44,348) = -TPK%K348(:)*PCONC(:,15)*PCONC(:,44) +!PTERMS(OH,K005) = +K005*<HNO3> + PTERMS(:,14,5) = +TPK%K005(:)*PCONC(:,8) ! -!PTERMS(OH,K349) = -K349*<OH>*<ACID> - PTERMS(:,15,349) = -TPK%K349(:)*PCONC(:,15)*PCONC(:,45) +!PTERMS(NO2,K006) = +0.65*K006*<HNO4> + PTERMS(:,4,6) = +0.65*TPK%K006(:)*PCONC(:,9) ! -!PTERMS(ACID,K349) = -K349*<OH>*<ACID> - PTERMS(:,45,349) = -TPK%K349(:)*PCONC(:,15)*PCONC(:,45) +!PTERMS(NO3,K006) = +0.35*K006*<HNO4> + PTERMS(:,5,6) = +0.35*TPK%K006(:)*PCONC(:,9) ! -!PTERMS(URG2,K350) = -K350*<URG2> - PTERMS(:,48,350) = -TPK%K350(:)*PCONC(:,48) +!PTERMS(HNO4,K006) = -K006*<HNO4> + PTERMS(:,9,6) = -TPK%K006(:)*PCONC(:,9) ! -!PTERMS(URG4,K351) = -K351*<URG4> - PTERMS(:,53,351) = -TPK%K351(:)*PCONC(:,53) +!PTERMS(OH,K006) = +0.35*K006*<HNO4> + PTERMS(:,14,6) = +0.35*TPK%K006(:)*PCONC(:,9) ! -!PTERMS(URG6,K352) = -K352*<URG6> - PTERMS(:,58,352) = -TPK%K352(:)*PCONC(:,58) +!PTERMS(HO2,K006) = +0.65*K006*<HNO4> + PTERMS(:,15,6) = +0.65*TPK%K006(:)*PCONC(:,9) ! -!PTERMS(URG7,K353) = -K353*<URG7> - PTERMS(:,60,353) = -TPK%K353(:)*PCONC(:,60) +!PTERMS(NO,K007) = +K007*<NO3> + PTERMS(:,3,7) = +TPK%K007(:)*PCONC(:,5) ! -!PTERMS(URG8,K354) = -K354*<URG8> - PTERMS(:,64,354) = -TPK%K354(:)*PCONC(:,64) +!PTERMS(NO3,K007) = -K007*<NO3> + PTERMS(:,5,7) = -TPK%K007(:)*PCONC(:,5) ! -!PTERMS(URG9,K355) = -K355*<URG9> - PTERMS(:,66,355) = -TPK%K355(:)*PCONC(:,66) +!PTERMS(NO2,K008) = +K008*<NO3> + PTERMS(:,4,8) = +TPK%K008(:)*PCONC(:,5) ! -!PTERMS(URG10,K356) = -K356*<URG10> - PTERMS(:,68,356) = -TPK%K356(:)*PCONC(:,68) +!PTERMS(NO3,K008) = -K008*<NO3> + PTERMS(:,5,8) = -TPK%K008(:)*PCONC(:,5) ! -!PTERMS(UR7,K357) = -K357*<UR7> - PTERMS(:,56,357) = -TPK%K357(:)*PCONC(:,56) +!PTERMS(H2O2,K009) = -K009*<H2O2> + PTERMS(:,2,9) = -TPK%K009(:)*PCONC(:,2) ! ! RETURN -END SUBROUTINE SUBT58 +END SUBROUTINE SUBT0 ! -SUBROUTINE SUBT59 +SUBROUTINE SUBT1 ! -!Indices 1181 a 1200 +!Indices 21 a 40 ! -!PTERMS(UR8,K358) = -K358*<UR8> - PTERMS(:,54,358) = -TPK%K358(:)*PCONC(:,54) +!PTERMS(OH,K009) = +K009*<H2O2> + PTERMS(:,14,9) = +TPK%K009(:)*PCONC(:,2) ! -!PTERMS(UR17,K359) = -K359*<UR17> - PTERMS(:,55,359) = -TPK%K359(:)*PCONC(:,55) +!PTERMS(CO,K010) = +K010*<HCHO> + PTERMS(:,13,10) = +TPK%K010(:)*PCONC(:,22) ! -!PTERMS(UR19,K360) = -K360*<UR19> - PTERMS(:,65,360) = -TPK%K360(:)*PCONC(:,65) +!PTERMS(HCHO,K010) = -K010*<HCHO> + PTERMS(:,22,10) = -TPK%K010(:)*PCONC(:,22) ! -!PTERMS(UR21,K361) = -K361*<UR21> - PTERMS(:,47,361) = -TPK%K361(:)*PCONC(:,47) +!PTERMS(CO,K011) = +K011*<HCHO> + PTERMS(:,13,11) = +TPK%K011(:)*PCONC(:,22) ! -!PTERMS(UR22,K362) = -K362*<UR22> - PTERMS(:,59,362) = -TPK%K362(:)*PCONC(:,59) +!PTERMS(HO2,K011) = +K011*<HCHO> + PTERMS(:,15,11) = +TPK%K011(:)*PCONC(:,22) ! -!PTERMS(UR26,K363) = -K363*<UR26> - PTERMS(:,49,363) = -TPK%K363(:)*PCONC(:,49) +!PTERMS(HCHO,K011) = -K011*<HCHO> + PTERMS(:,22,11) = -TPK%K011(:)*PCONC(:,22) ! -!PTERMS(UR28,K364) = -K364*<UR28> - PTERMS(:,46,364) = -TPK%K364(:)*PCONC(:,46) +!PTERMS(CO,K012) = +K012*<ALD> + PTERMS(:,13,12) = +TPK%K012(:)*PCONC(:,23) ! -!PTERMS(AP7,K365) = -K365*<AP7> - PTERMS(:,67,365) = -TPK%K365(:)*PCONC(:,67) +!PTERMS(HO2,K012) = +K012*<ALD> + PTERMS(:,15,12) = +TPK%K012(:)*PCONC(:,23) ! -!PTERMS(O3,KTC1) = -KTC1*<O3> - PTERMS(:,3,366) = -TPK%KTC1(:)*PCONC(:,3) +!PTERMS(ALD,K012) = -K012*<ALD> + PTERMS(:,23,12) = -TPK%K012(:)*PCONC(:,23) ! -!PTERMS(WC_O3,KTC1) = +KTC1*<O3> - PTERMS(:,88,366) = +TPK%KTC1(:)*PCONC(:,3) +!PTERMS(MO2,K012) = +K012*<ALD> + PTERMS(:,32,12) = +TPK%K012(:)*PCONC(:,23) ! -!PTERMS(H2O2,KTC2) = -KTC2*<H2O2> - PTERMS(:,12,367) = -TPK%KTC2(:)*PCONC(:,12) +!PTERMS(OH,K013) = +K013*<OP1> + PTERMS(:,14,13) = +TPK%K013(:)*PCONC(:,28) ! -!PTERMS(WC_H2O2,KTC2) = +KTC2*<H2O2> - PTERMS(:,89,367) = +TPK%KTC2(:)*PCONC(:,12) +!PTERMS(HO2,K013) = +K013*<OP1> + PTERMS(:,15,13) = +TPK%K013(:)*PCONC(:,28) ! -!PTERMS(NO,KTC3) = -KTC3*<NO> - PTERMS(:,1,368) = -TPK%KTC3(:)*PCONC(:,1) +!PTERMS(HCHO,K013) = +K013*<OP1> + PTERMS(:,22,13) = +TPK%K013(:)*PCONC(:,28) ! -!PTERMS(WC_NO,KTC3) = +KTC3*<NO> - PTERMS(:,90,368) = +TPK%KTC3(:)*PCONC(:,1) +!PTERMS(OP1,K013) = -K013*<OP1> + PTERMS(:,28,13) = -TPK%K013(:)*PCONC(:,28) ! -!PTERMS(NO2,KTC4) = -KTC4*<NO2> - PTERMS(:,2,369) = -TPK%KTC4(:)*PCONC(:,2) +!PTERMS(OH,K014) = +K014*<OP2> + PTERMS(:,14,14) = +TPK%K014(:)*PCONC(:,29) ! -!PTERMS(WC_NO2,KTC4) = +KTC4*<NO2> - PTERMS(:,91,369) = +TPK%KTC4(:)*PCONC(:,2) +!PTERMS(HO2,K014) = +0.96205*K014*<OP2> + PTERMS(:,15,14) = +0.96205*TPK%K014(:)*PCONC(:,29) ! -!PTERMS(NO3,KTC5) = -KTC5*<NO3> - PTERMS(:,8,370) = -TPK%KTC5(:)*PCONC(:,8) +!PTERMS(ALD,K014) = +0.96205*K014*<OP2> + PTERMS(:,23,14) = +0.96205*TPK%K014(:)*PCONC(:,29) ! -!PTERMS(WC_NO3,KTC5) = +KTC5*<NO3> - PTERMS(:,92,370) = +TPK%KTC5(:)*PCONC(:,8) +!PTERMS(OP2,K014) = -K014*<OP2> + PTERMS(:,29,14) = -TPK%K014(:)*PCONC(:,29) ! -!PTERMS(N2O5,KTC6) = -KTC6*<N2O5> - PTERMS(:,7,371) = -TPK%KTC6(:)*PCONC(:,7) +!PTERMS(MO2,K014) = +0.03795*K014*<OP2> + PTERMS(:,32,14) = +0.03795*TPK%K014(:)*PCONC(:,29) ! -!PTERMS(WC_N2O5,KTC6) = +KTC6*<N2O5> - PTERMS(:,93,371) = +TPK%KTC6(:)*PCONC(:,7) +!PTERMS(KET,K015) = -K015*<KET> + PTERMS(:,24,15) = -TPK%K015(:)*PCONC(:,24) ! ! RETURN -END SUBROUTINE SUBT59 +END SUBROUTINE SUBT1 ! -SUBROUTINE SUBT60 +SUBROUTINE SUBT2 ! -!Indices 1201 a 1220 +!Indices 41 a 60 ! -!PTERMS(HONO,KTC7) = -KTC7*<HONO> - PTERMS(:,4,372) = -TPK%KTC7(:)*PCONC(:,4) +!PTERMS(ALKAP,K015) = +1.00000*K015*<KET> + PTERMS(:,33,15) = +1.00000*TPK%K015(:)*PCONC(:,24) ! -!PTERMS(WC_HONO,KTC7) = +KTC7*<HONO> - PTERMS(:,94,372) = +TPK%KTC7(:)*PCONC(:,4) +!PTERMS(CARBOP,K015) = +1.00000*K015*<KET> + PTERMS(:,39,15) = +1.00000*TPK%K015(:)*PCONC(:,24) ! -!PTERMS(HNO3,KTC8) = -KTC8*<HNO3> - PTERMS(:,5,373) = -TPK%KTC8(:)*PCONC(:,5) +!PTERMS(CO,K016) = +0.91924*K016*<CARBO> + PTERMS(:,13,16) = +0.91924*TPK%K016(:)*PCONC(:,25) ! -!PTERMS(WC_HNO3,KTC8) = +KTC8*<HNO3> - PTERMS(:,95,373) = +TPK%KTC8(:)*PCONC(:,5) +!PTERMS(HO2,K016) = +0.75830*K016*<CARBO> + PTERMS(:,15,16) = +0.75830*TPK%K016(:)*PCONC(:,25) ! -!PTERMS(HNO4,KTC9) = -KTC9*<HNO4> - PTERMS(:,6,374) = -TPK%KTC9(:)*PCONC(:,6) +!PTERMS(HCHO,K016) = +0.06517*K016*<CARBO> + PTERMS(:,22,16) = +0.06517*TPK%K016(:)*PCONC(:,25) ! -!PTERMS(WC_HNO4,KTC9) = +KTC9*<HNO4> - PTERMS(:,96,374) = +TPK%KTC9(:)*PCONC(:,6) +!PTERMS(CARBO,K016) = -K016*<CARBO> + PTERMS(:,25,16) = -TPK%K016(:)*PCONC(:,25) ! -!PTERMS(NH3,KTC10) = -KTC10*<NH3> - PTERMS(:,9,375) = -TPK%KTC10(:)*PCONC(:,9) +!PTERMS(CARBOP,K016) = +0.69622*K016*<CARBO> + PTERMS(:,39,16) = +0.69622*TPK%K016(:)*PCONC(:,25) ! -!PTERMS(WC_NH3,KTC10) = +KTC10*<NH3> - PTERMS(:,97,375) = +TPK%KTC10(:)*PCONC(:,9) +!PTERMS(NO2,K017) = +K017*<ONIT> + PTERMS(:,4,17) = +TPK%K017(:)*PCONC(:,26) ! -!PTERMS(OH,KTC11) = -KTC11*<OH> - PTERMS(:,15,376) = -TPK%KTC11(:)*PCONC(:,15) +!PTERMS(HO2,K017) = +K017*<ONIT> + PTERMS(:,15,17) = +TPK%K017(:)*PCONC(:,26) ! -!PTERMS(WC_OH,KTC11) = +KTC11*<OH> - PTERMS(:,98,376) = +TPK%KTC11(:)*PCONC(:,15) +!PTERMS(ALD,K017) = +0.20*K017*<ONIT> + PTERMS(:,23,17) = +0.20*TPK%K017(:)*PCONC(:,26) ! -!PTERMS(HO2,KTC12) = -KTC12*<HO2> - PTERMS(:,10,377) = -TPK%KTC12(:)*PCONC(:,10) +!PTERMS(KET,K017) = +0.80*K017*<ONIT> + PTERMS(:,24,17) = +0.80*TPK%K017(:)*PCONC(:,26) ! -!PTERMS(WC_HO2,KTC12) = +KTC12*<HO2> - PTERMS(:,99,377) = +TPK%KTC12(:)*PCONC(:,10) +!PTERMS(ONIT,K017) = -K017*<ONIT> + PTERMS(:,26,17) = -TPK%K017(:)*PCONC(:,26) ! -!PTERMS(WC_CO2,KTC13) = +KTC13*<CO2> - PTERMS(:,100,378) = +TPK%KTC13(:)*TPK%CO2(:) +!PTERMS(O3,K018) = +K018*<O3P>*<O2> + PTERMS(:,1,18) = +TPK%K018(:)*TPK%O3P(:)*TPK%O2(:) ! -!PTERMS(SO2,KTC14) = -KTC14*<SO2> - PTERMS(:,13,379) = -TPK%KTC14(:)*PCONC(:,13) +!PTERMS(O3,K019) = -K019*<O3P>*<O3> + PTERMS(:,1,19) = -TPK%K019(:)*TPK%O3P(:)*PCONC(:,1) ! -!PTERMS(WC_SO2,KTC14) = +KTC14*<SO2> - PTERMS(:,101,379) = +TPK%KTC14(:)*PCONC(:,13) +!PTERMS(OH,K022) = +K022*<O1D>*<H2O> + PTERMS(:,14,22) = +TPK%K022(:)*TPK%O1D(:)*TPK%H2O(:) ! -!PTERMS(H2SO4,KTC15) = -KTC15*<H2SO4> - PTERMS(:,14,380) = -TPK%KTC15(:)*PCONC(:,14) +!PTERMS(O3,K023) = -K023*<O3>*<OH> + PTERMS(:,1,23) = -TPK%K023(:)*PCONC(:,1)*PCONC(:,14) ! -!PTERMS(WC_H2SO4,KTC15) = +KTC15*<H2SO4> - PTERMS(:,102,380) = +TPK%KTC15(:)*PCONC(:,14) +!PTERMS(OH,K023) = -K023*<O3>*<OH> + PTERMS(:,14,23) = -TPK%K023(:)*PCONC(:,1)*PCONC(:,14) ! -!PTERMS(RO21,KTC16) = -KTC16*<RO21> - PTERMS(:,86,381) = -TPK%KTC16(:)*PCONC(:,86) +!PTERMS(HO2,K023) = +K023*<O3>*<OH> + PTERMS(:,15,23) = +TPK%K023(:)*PCONC(:,1)*PCONC(:,14) ! -!PTERMS(WC_RO21,KTC16) = +KTC16*<RO21> - PTERMS(:,103,381) = +TPK%KTC16(:)*PCONC(:,86) +!PTERMS(O3,K024) = -K024*<O3>*<HO2> + PTERMS(:,1,24) = -TPK%K024(:)*PCONC(:,1)*PCONC(:,15) ! -!PTERMS(RO25,KTC17) = -KTC17*<RO25> - PTERMS(:,87,382) = -TPK%KTC17(:)*PCONC(:,87) +!PTERMS(OH,K024) = +K024*<O3>*<HO2> + PTERMS(:,14,24) = +TPK%K024(:)*PCONC(:,1)*PCONC(:,15) ! ! RETURN -END SUBROUTINE SUBT60 +END SUBROUTINE SUBT2 ! -SUBROUTINE SUBT61 +SUBROUTINE SUBT3 ! -!Indices 1221 a 1240 +!Indices 61 a 80 ! -!PTERMS(WC_RO25,KTC17) = +KTC17*<RO25> - PTERMS(:,104,382) = +TPK%KTC17(:)*PCONC(:,87) +!PTERMS(HO2,K024) = -K024*<O3>*<HO2> + PTERMS(:,15,24) = -TPK%K024(:)*PCONC(:,1)*PCONC(:,15) ! -!PTERMS(MEOH,KTC18) = -KTC18*<MEOH> - PTERMS(:,32,383) = -TPK%KTC18(:)*PCONC(:,32) +!PTERMS(OH,K025) = -K025*<OH>*<HO2> + PTERMS(:,14,25) = -TPK%K025(:)*PCONC(:,14)*PCONC(:,15) ! -!PTERMS(WC_MEOH,KTC18) = +KTC18*<MEOH> - PTERMS(:,105,383) = +TPK%KTC18(:)*PCONC(:,32) +!PTERMS(HO2,K025) = -K025*<OH>*<HO2> + PTERMS(:,15,25) = -TPK%K025(:)*PCONC(:,14)*PCONC(:,15) ! -!PTERMS(ETOH,KTC19) = -KTC19*<ETOH> - PTERMS(:,33,384) = -TPK%KTC19(:)*PCONC(:,33) +!PTERMS(H2O2,K026) = -K026*<H2O2>*<OH> + PTERMS(:,2,26) = -TPK%K026(:)*PCONC(:,2)*PCONC(:,14) ! -!PTERMS(WC_ETOH,KTC19) = +KTC19*<ETOH> - PTERMS(:,106,384) = +TPK%KTC19(:)*PCONC(:,33) +!PTERMS(OH,K026) = -K026*<H2O2>*<OH> + PTERMS(:,14,26) = -TPK%K026(:)*PCONC(:,2)*PCONC(:,14) ! -!PTERMS(ALCH,KTC20) = -KTC20*<ALCH> - PTERMS(:,34,385) = -TPK%KTC20(:)*PCONC(:,34) +!PTERMS(HO2,K026) = +K026*<H2O2>*<OH> + PTERMS(:,15,26) = +TPK%K026(:)*PCONC(:,2)*PCONC(:,14) ! -!PTERMS(WC_ALCH,KTC20) = +KTC20*<ALCH> - PTERMS(:,107,385) = +TPK%KTC20(:)*PCONC(:,34) +!PTERMS(H2O2,K027) = +K027*<HO2>*<HO2> + PTERMS(:,2,27) = +TPK%K027(:)*PCONC(:,15)*PCONC(:,15) ! -!PTERMS(HCHO,KTC21) = -KTC21*<HCHO> - PTERMS(:,28,386) = -TPK%KTC21(:)*PCONC(:,28) +!PTERMS(HO2,K027) = -K027*<HO2>*<HO2> + PTERMS(:,15,27) = -TPK%K027(:)*PCONC(:,15)*PCONC(:,15) ! -!PTERMS(WC_HCHO,KTC21) = +KTC21*<HCHO> - PTERMS(:,108,386) = +TPK%KTC21(:)*PCONC(:,28) +!PTERMS(H2O2,K028) = +K028*<HO2>*<HO2>*<H2O> + PTERMS(:,2,28) = +TPK%K028(:)*PCONC(:,15)*PCONC(:,15)*TPK%H2O(:) ! -!PTERMS(ALD2,KTC22) = -KTC22*<ALD2> - PTERMS(:,29,387) = -TPK%KTC22(:)*PCONC(:,29) +!PTERMS(HO2,K028) = -K028*<HO2>*<HO2>*<H2O> + PTERMS(:,15,28) = -TPK%K028(:)*PCONC(:,15)*PCONC(:,15)*TPK%H2O(:) ! -!PTERMS(WC_ALD2,KTC22) = +KTC22*<ALD2> - PTERMS(:,109,387) = +TPK%KTC22(:)*PCONC(:,29) +!PTERMS(NO,K029) = -K029*<O3P>*<NO> + PTERMS(:,3,29) = -TPK%K029(:)*TPK%O3P(:)*PCONC(:,3) ! -!PTERMS(GLY,KTC23) = -KTC23*<GLY> - PTERMS(:,42,388) = -TPK%KTC23(:)*PCONC(:,42) +!PTERMS(NO2,K029) = +K029*<O3P>*<NO> + PTERMS(:,4,29) = +TPK%K029(:)*TPK%O3P(:)*PCONC(:,3) ! -!PTERMS(WC_GLY,KTC23) = +KTC23*<GLY> - PTERMS(:,110,388) = +TPK%KTC23(:)*PCONC(:,42) +!PTERMS(NO,K030) = +K030*<O3P>*<NO2> + PTERMS(:,3,30) = +TPK%K030(:)*TPK%O3P(:)*PCONC(:,4) ! -!PTERMS(KETL,KTC24) = -KTC24*<KETL> - PTERMS(:,30,389) = -TPK%KTC24(:)*PCONC(:,30) +!PTERMS(NO2,K030) = -K030*<O3P>*<NO2> + PTERMS(:,4,30) = -TPK%K030(:)*TPK%O3P(:)*PCONC(:,4) ! -!PTERMS(WC_KETL,KTC24) = +KTC24*<KETL> - PTERMS(:,112,389) = +TPK%KTC24(:)*PCONC(:,30) +!PTERMS(NO2,K031) = -K031*<O3P>*<NO2> + PTERMS(:,4,31) = -TPK%K031(:)*TPK%O3P(:)*PCONC(:,4) ! -!PTERMS(MGLY,KTC25) = -KTC25*<MGLY> - PTERMS(:,41,390) = -TPK%KTC25(:)*PCONC(:,41) +!PTERMS(NO3,K031) = +K031*<O3P>*<NO2> + PTERMS(:,5,31) = +TPK%K031(:)*TPK%O3P(:)*PCONC(:,4) ! -!PTERMS(WC_MGLY,KTC25) = +KTC25*<MGLY> - PTERMS(:,111,390) = +TPK%KTC25(:)*PCONC(:,41) +!PTERMS(NO,K032) = -K032*<OH>*<NO> + PTERMS(:,3,32) = -TPK%K032(:)*PCONC(:,14)*PCONC(:,3) ! -!PTERMS(ORA1,KTC26) = -KTC26*<ORA1> - PTERMS(:,43,391) = -TPK%KTC26(:)*PCONC(:,43) +!PTERMS(HONO,K032) = +K032*<OH>*<NO> + PTERMS(:,7,32) = +TPK%K032(:)*PCONC(:,14)*PCONC(:,3) ! -!PTERMS(WC_ORA1,KTC26) = +KTC26*<ORA1> - PTERMS(:,113,391) = +TPK%KTC26(:)*PCONC(:,43) +!PTERMS(OH,K032) = -K032*<OH>*<NO> + PTERMS(:,14,32) = -TPK%K032(:)*PCONC(:,14)*PCONC(:,3) ! -!PTERMS(ORA2,KTC27) = -KTC27*<ORA2> - PTERMS(:,44,392) = -TPK%KTC27(:)*PCONC(:,44) +!PTERMS(NO2,K033) = -K033*<OH>*<NO2> + PTERMS(:,4,33) = -TPK%K033(:)*PCONC(:,14)*PCONC(:,4) ! ! RETURN -END SUBROUTINE SUBT61 +END SUBROUTINE SUBT3 ! -SUBROUTINE SUBT62 +SUBROUTINE SUBT4 ! -!Indices 1241 a 1260 +!Indices 81 a 100 ! -!PTERMS(WC_ORA2,KTC27) = +KTC27*<ORA2> - PTERMS(:,114,392) = +TPK%KTC27(:)*PCONC(:,44) +!PTERMS(HNO3,K033) = +K033*<OH>*<NO2> + PTERMS(:,8,33) = +TPK%K033(:)*PCONC(:,14)*PCONC(:,4) ! -!PTERMS(ACID,KTC28) = -KTC28*<ACID> - PTERMS(:,45,393) = -TPK%KTC28(:)*PCONC(:,45) +!PTERMS(OH,K033) = -K033*<OH>*<NO2> + PTERMS(:,14,33) = -TPK%K033(:)*PCONC(:,14)*PCONC(:,4) ! -!PTERMS(WC_ACID,KTC28) = +KTC28*<ACID> - PTERMS(:,115,393) = +TPK%KTC28(:)*PCONC(:,45) +!PTERMS(NO2,K034) = +K034*<OH>*<NO3> + PTERMS(:,4,34) = +TPK%K034(:)*PCONC(:,14)*PCONC(:,5) ! -!PTERMS(RP16,KTC29) = -KTC29*<RP16> - PTERMS(:,74,394) = -TPK%KTC29(:)*PCONC(:,74) +!PTERMS(NO3,K034) = -K034*<OH>*<NO3> + PTERMS(:,5,34) = -TPK%K034(:)*PCONC(:,14)*PCONC(:,5) ! -!PTERMS(WC_RP16,KTC29) = +KTC29*<RP16> - PTERMS(:,116,394) = +TPK%KTC29(:)*PCONC(:,74) +!PTERMS(OH,K034) = -K034*<OH>*<NO3> + PTERMS(:,14,34) = -TPK%K034(:)*PCONC(:,14)*PCONC(:,5) ! -!PTERMS(UR21,KTC30) = -KTC30*<UR21> - PTERMS(:,47,395) = -TPK%KTC30(:)*PCONC(:,47) +!PTERMS(HO2,K034) = +K034*<OH>*<NO3> + PTERMS(:,15,34) = +TPK%K034(:)*PCONC(:,14)*PCONC(:,5) ! -!PTERMS(WC_UR21,KTC30) = +KTC30*<UR21> - PTERMS(:,117,395) = +TPK%KTC30(:)*PCONC(:,47) +!PTERMS(NO,K035) = -K035*<HO2>*<NO> + PTERMS(:,3,35) = -TPK%K035(:)*PCONC(:,15)*PCONC(:,3) ! -!PTERMS(UR28,KTC31) = -KTC31*<UR28> - PTERMS(:,46,396) = -TPK%KTC31(:)*PCONC(:,46) +!PTERMS(NO2,K035) = +K035*<HO2>*<NO> + PTERMS(:,4,35) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,3) ! -!PTERMS(WC_UR28,KTC31) = +KTC31*<UR28> - PTERMS(:,118,396) = +TPK%KTC31(:)*PCONC(:,46) +!PTERMS(OH,K035) = +K035*<HO2>*<NO> + PTERMS(:,14,35) = +TPK%K035(:)*PCONC(:,15)*PCONC(:,3) ! -!PTERMS(O3,KTC32) = +KTC32*<WC_O3> - PTERMS(:,3,397) = +TPK%KTC32(:)*PCONC(:,88) +!PTERMS(HO2,K035) = -K035*<HO2>*<NO> + PTERMS(:,15,35) = -TPK%K035(:)*PCONC(:,15)*PCONC(:,3) ! -!PTERMS(WC_O3,KTC32) = -KTC32*<WC_O3> - PTERMS(:,88,397) = -TPK%KTC32(:)*PCONC(:,88) +!PTERMS(NO2,K036) = -K036*<HO2>*<NO2> + PTERMS(:,4,36) = -TPK%K036(:)*PCONC(:,15)*PCONC(:,4) ! -!PTERMS(H2O2,KTC33) = +KTC33*<WC_H2O2> - PTERMS(:,12,398) = +TPK%KTC33(:)*PCONC(:,89) +!PTERMS(HNO4,K036) = +K036*<HO2>*<NO2> + PTERMS(:,9,36) = +TPK%K036(:)*PCONC(:,15)*PCONC(:,4) ! -!PTERMS(WC_H2O2,KTC33) = -KTC33*<WC_H2O2> - PTERMS(:,89,398) = -TPK%KTC33(:)*PCONC(:,89) +!PTERMS(HO2,K036) = -K036*<HO2>*<NO2> + PTERMS(:,15,36) = -TPK%K036(:)*PCONC(:,15)*PCONC(:,4) ! -!PTERMS(NO,KTC34) = +KTC34*<WC_NO> - PTERMS(:,1,399) = +TPK%KTC34(:)*PCONC(:,90) +!PTERMS(NO2,K037) = +K037*<HNO4> + PTERMS(:,4,37) = +TPK%K037(:)*PCONC(:,9) ! -!PTERMS(WC_NO,KTC34) = -KTC34*<WC_NO> - PTERMS(:,90,399) = -TPK%KTC34(:)*PCONC(:,90) +!PTERMS(HNO4,K037) = -K037*<HNO4> + PTERMS(:,9,37) = -TPK%K037(:)*PCONC(:,9) ! -!PTERMS(NO2,KTC35) = +KTC35*<WC_NO2> - PTERMS(:,2,400) = +TPK%KTC35(:)*PCONC(:,91) +!PTERMS(HO2,K037) = +K037*<HNO4> + PTERMS(:,15,37) = +TPK%K037(:)*PCONC(:,9) ! -!PTERMS(WC_NO2,KTC35) = -KTC35*<WC_NO2> - PTERMS(:,91,400) = -TPK%KTC35(:)*PCONC(:,91) +!PTERMS(NO2,K038) = +0.7*K038*<HO2>*<NO3> + PTERMS(:,4,38) = +0.7*TPK%K038(:)*PCONC(:,15)*PCONC(:,5) ! -!PTERMS(NO3,KTC36) = +KTC36*<WC_NO3> - PTERMS(:,8,401) = +TPK%KTC36(:)*PCONC(:,92) +!PTERMS(NO3,K038) = -K038*<HO2>*<NO3> + PTERMS(:,5,38) = -TPK%K038(:)*PCONC(:,15)*PCONC(:,5) ! -!PTERMS(WC_NO3,KTC36) = -KTC36*<WC_NO3> - PTERMS(:,92,401) = -TPK%KTC36(:)*PCONC(:,92) +!PTERMS(HNO3,K038) = +0.3*K038*<HO2>*<NO3> + PTERMS(:,8,38) = +0.3*TPK%K038(:)*PCONC(:,15)*PCONC(:,5) ! -!PTERMS(N2O5,KTC37) = +KTC37*<WC_N2O5> - PTERMS(:,7,402) = +TPK%KTC37(:)*PCONC(:,93) +!PTERMS(OH,K038) = +0.7*K038*<HO2>*<NO3> + PTERMS(:,14,38) = +0.7*TPK%K038(:)*PCONC(:,15)*PCONC(:,5) ! ! RETURN -END SUBROUTINE SUBT62 +END SUBROUTINE SUBT4 ! -SUBROUTINE SUBT63 +SUBROUTINE SUBT5 ! -!Indices 1261 a 1280 +!Indices 101 a 120 ! -!PTERMS(WC_N2O5,KTC37) = -KTC37*<WC_N2O5> - PTERMS(:,93,402) = -TPK%KTC37(:)*PCONC(:,93) +!PTERMS(HO2,K038) = -K038*<HO2>*<NO3> + PTERMS(:,15,38) = -TPK%K038(:)*PCONC(:,15)*PCONC(:,5) ! -!PTERMS(HONO,KTC38) = +KTC38*<WC_HONO> - PTERMS(:,4,403) = +TPK%KTC38(:)*PCONC(:,94) +!PTERMS(NO2,K039) = +K039*<OH>*<HONO> + PTERMS(:,4,39) = +TPK%K039(:)*PCONC(:,14)*PCONC(:,7) ! -!PTERMS(WC_HONO,KTC38) = -KTC38*<WC_HONO> - PTERMS(:,94,403) = -TPK%KTC38(:)*PCONC(:,94) +!PTERMS(HONO,K039) = -K039*<OH>*<HONO> + PTERMS(:,7,39) = -TPK%K039(:)*PCONC(:,14)*PCONC(:,7) ! -!PTERMS(HNO3,KTC39) = +KTC39*<WC_HNO3> - PTERMS(:,5,404) = +TPK%KTC39(:)*PCONC(:,95) +!PTERMS(OH,K039) = -K039*<OH>*<HONO> + PTERMS(:,14,39) = -TPK%K039(:)*PCONC(:,14)*PCONC(:,7) ! -!PTERMS(WC_HNO3,KTC39) = -KTC39*<WC_HNO3> - PTERMS(:,95,404) = -TPK%KTC39(:)*PCONC(:,95) +!PTERMS(NO3,K040) = +K040*<OH>*<HNO3> + PTERMS(:,5,40) = +TPK%K040(:)*PCONC(:,14)*PCONC(:,8) ! -!PTERMS(HNO4,KTC40) = +KTC40*<WC_HNO4> - PTERMS(:,6,405) = +TPK%KTC40(:)*PCONC(:,96) +!PTERMS(HNO3,K040) = -K040*<OH>*<HNO3> + PTERMS(:,8,40) = -TPK%K040(:)*PCONC(:,14)*PCONC(:,8) ! -!PTERMS(WC_HNO4,KTC40) = -KTC40*<WC_HNO4> - PTERMS(:,96,405) = -TPK%KTC40(:)*PCONC(:,96) +!PTERMS(OH,K040) = -K040*<OH>*<HNO3> + PTERMS(:,14,40) = -TPK%K040(:)*PCONC(:,14)*PCONC(:,8) ! -!PTERMS(NH3,KTC41) = +KTC41*<WC_NH3> - PTERMS(:,9,406) = +TPK%KTC41(:)*PCONC(:,97) +!PTERMS(NO2,K041) = +K041*<OH>*<HNO4> + PTERMS(:,4,41) = +TPK%K041(:)*PCONC(:,14)*PCONC(:,9) ! -!PTERMS(WC_NH3,KTC41) = -KTC41*<WC_NH3> - PTERMS(:,97,406) = -TPK%KTC41(:)*PCONC(:,97) +!PTERMS(HNO4,K041) = -K041*<OH>*<HNO4> + PTERMS(:,9,41) = -TPK%K041(:)*PCONC(:,14)*PCONC(:,9) ! -!PTERMS(OH,KTC42) = +KTC42*<WC_OH> - PTERMS(:,15,407) = +TPK%KTC42(:)*PCONC(:,98) +!PTERMS(OH,K041) = -K041*<OH>*<HNO4> + PTERMS(:,14,41) = -TPK%K041(:)*PCONC(:,14)*PCONC(:,9) ! -!PTERMS(WC_OH,KTC42) = -KTC42*<WC_OH> - PTERMS(:,98,407) = -TPK%KTC42(:)*PCONC(:,98) +!PTERMS(O3,K042) = -K042*<O3>*<NO> + PTERMS(:,1,42) = -TPK%K042(:)*PCONC(:,1)*PCONC(:,3) ! -!PTERMS(HO2,KTC43) = +KTC43*<WC_HO2> - PTERMS(:,10,408) = +TPK%KTC43(:)*PCONC(:,99) +!PTERMS(NO,K042) = -K042*<O3>*<NO> + PTERMS(:,3,42) = -TPK%K042(:)*PCONC(:,1)*PCONC(:,3) ! -!PTERMS(WC_HO2,KTC43) = -KTC43*<WC_HO2> - PTERMS(:,99,408) = -TPK%KTC43(:)*PCONC(:,99) +!PTERMS(NO2,K042) = +K042*<O3>*<NO> + PTERMS(:,4,42) = +TPK%K042(:)*PCONC(:,1)*PCONC(:,3) ! -!PTERMS(WC_CO2,KTC44) = -KTC44*<WC_CO2> - PTERMS(:,100,409) = -TPK%KTC44(:)*PCONC(:,100) +!PTERMS(O3,K043) = -K043*<O3>*<NO2> + PTERMS(:,1,43) = -TPK%K043(:)*PCONC(:,1)*PCONC(:,4) ! -!PTERMS(SO2,KTC45) = +KTC45*<WC_SO2> - PTERMS(:,13,410) = +TPK%KTC45(:)*PCONC(:,101) +!PTERMS(NO2,K043) = -K043*<O3>*<NO2> + PTERMS(:,4,43) = -TPK%K043(:)*PCONC(:,1)*PCONC(:,4) ! -!PTERMS(WC_SO2,KTC45) = -KTC45*<WC_SO2> - PTERMS(:,101,410) = -TPK%KTC45(:)*PCONC(:,101) +!PTERMS(NO3,K043) = +K043*<O3>*<NO2> + PTERMS(:,5,43) = +TPK%K043(:)*PCONC(:,1)*PCONC(:,4) ! -!PTERMS(H2SO4,KTC46) = +KTC46*<WC_H2SO4> - PTERMS(:,14,411) = +TPK%KTC46(:)*PCONC(:,102) +!PTERMS(NO,K044) = -K044*<NO>*<NO>*<O2> + PTERMS(:,3,44) = -TPK%K044(:)*PCONC(:,3)*PCONC(:,3)*TPK%O2(:) ! -!PTERMS(WC_H2SO4,KTC46) = -KTC46*<WC_H2SO4> - PTERMS(:,102,411) = -TPK%KTC46(:)*PCONC(:,102) +!PTERMS(NO2,K044) = +K044*<NO>*<NO>*<O2> + PTERMS(:,4,44) = +TPK%K044(:)*PCONC(:,3)*PCONC(:,3)*TPK%O2(:) ! -!PTERMS(RO21,KTC47) = +KTC47*<WC_RO21> - PTERMS(:,86,412) = +TPK%KTC47(:)*PCONC(:,103) +!PTERMS(NO,K045) = -K045*<NO3>*<NO> + PTERMS(:,3,45) = -TPK%K045(:)*PCONC(:,5)*PCONC(:,3) ! -!PTERMS(WC_RO21,KTC47) = -KTC47*<WC_RO21> - PTERMS(:,103,412) = -TPK%KTC47(:)*PCONC(:,103) +!PTERMS(NO2,K045) = +K045*<NO3>*<NO> + PTERMS(:,4,45) = +TPK%K045(:)*PCONC(:,5)*PCONC(:,3) ! ! RETURN -END SUBROUTINE SUBT63 +END SUBROUTINE SUBT5 ! -SUBROUTINE SUBT64 +SUBROUTINE SUBT6 ! -!Indices 1281 a 1300 +!Indices 121 a 140 ! -!PTERMS(RO25,KTC48) = +KTC48*<WC_RO25> - PTERMS(:,87,413) = +TPK%KTC48(:)*PCONC(:,104) +!PTERMS(NO3,K045) = -K045*<NO3>*<NO> + PTERMS(:,5,45) = -TPK%K045(:)*PCONC(:,5)*PCONC(:,3) ! -!PTERMS(WC_RO25,KTC48) = -KTC48*<WC_RO25> - PTERMS(:,104,413) = -TPK%KTC48(:)*PCONC(:,104) +!PTERMS(NO,K046) = +K046*<NO3>*<NO2> + PTERMS(:,3,46) = +TPK%K046(:)*PCONC(:,5)*PCONC(:,4) ! -!PTERMS(MEOH,KTC49) = +KTC49*<WC_MEOH> - PTERMS(:,32,414) = +TPK%KTC49(:)*PCONC(:,105) +!PTERMS(NO2,K046) = -K046*<NO3>*<NO2> + PTERMS(:,4,46) = -TPK%K046(:)*PCONC(:,5)*PCONC(:,4) ! -!PTERMS(WC_MEOH,KTC49) = -KTC49*<WC_MEOH> - PTERMS(:,105,414) = -TPK%KTC49(:)*PCONC(:,105) +!PTERMS(NO3,K046) = -K046*<NO3>*<NO2> + PTERMS(:,5,46) = -TPK%K046(:)*PCONC(:,5)*PCONC(:,4) ! -!PTERMS(ETOH,KTC50) = +KTC50*<WC_ETOH> - PTERMS(:,33,415) = +TPK%KTC50(:)*PCONC(:,106) +!PTERMS(NO2,K047) = -K047*<NO3>*<NO2> + PTERMS(:,4,47) = -TPK%K047(:)*PCONC(:,5)*PCONC(:,4) ! -!PTERMS(WC_ETOH,KTC50) = -KTC50*<WC_ETOH> - PTERMS(:,106,415) = -TPK%KTC50(:)*PCONC(:,106) +!PTERMS(NO3,K047) = -K047*<NO3>*<NO2> + PTERMS(:,5,47) = -TPK%K047(:)*PCONC(:,5)*PCONC(:,4) ! -!PTERMS(ALCH,KTC51) = +KTC51*<WC_ALCH> - PTERMS(:,34,416) = +TPK%KTC51(:)*PCONC(:,107) +!PTERMS(N2O5,K047) = +K047*<NO3>*<NO2> + PTERMS(:,6,47) = +TPK%K047(:)*PCONC(:,5)*PCONC(:,4) ! -!PTERMS(WC_ALCH,KTC51) = -KTC51*<WC_ALCH> - PTERMS(:,107,416) = -TPK%KTC51(:)*PCONC(:,107) +!PTERMS(NO2,K048) = +K048*<N2O5> + PTERMS(:,4,48) = +TPK%K048(:)*PCONC(:,6) ! -!PTERMS(HCHO,KTC52) = +KTC52*<WC_HCHO> - PTERMS(:,28,417) = +TPK%KTC52(:)*PCONC(:,108) +!PTERMS(NO3,K048) = +K048*<N2O5> + PTERMS(:,5,48) = +TPK%K048(:)*PCONC(:,6) ! -!PTERMS(WC_HCHO,KTC52) = -KTC52*<WC_HCHO> - PTERMS(:,108,417) = -TPK%KTC52(:)*PCONC(:,108) +!PTERMS(N2O5,K048) = -K048*<N2O5> + PTERMS(:,6,48) = -TPK%K048(:)*PCONC(:,6) ! -!PTERMS(ALD2,KTC53) = +KTC53*<WC_ALD2> - PTERMS(:,29,418) = +TPK%KTC53(:)*PCONC(:,109) +!PTERMS(NO2,K049) = +K049*<NO3>*<NO3> + PTERMS(:,4,49) = +TPK%K049(:)*PCONC(:,5)*PCONC(:,5) ! -!PTERMS(WC_ALD2,KTC53) = -KTC53*<WC_ALD2> - PTERMS(:,109,418) = -TPK%KTC53(:)*PCONC(:,109) +!PTERMS(NO3,K049) = -K049*<NO3>*<NO3> + PTERMS(:,5,49) = -TPK%K049(:)*PCONC(:,5)*PCONC(:,5) ! -!PTERMS(GLY,KTC54) = +KTC54*<WC_GLY> - PTERMS(:,42,419) = +TPK%KTC54(:)*PCONC(:,110) +!PTERMS(NH3,K050) = -K050*<NH3>*<OH> + PTERMS(:,10,50) = -TPK%K050(:)*PCONC(:,10)*PCONC(:,14) ! -!PTERMS(WC_GLY,KTC54) = -KTC54*<WC_GLY> - PTERMS(:,110,419) = -TPK%KTC54(:)*PCONC(:,110) +!PTERMS(OH,K050) = -K050*<NH3>*<OH> + PTERMS(:,14,50) = -TPK%K050(:)*PCONC(:,10)*PCONC(:,14) ! -!PTERMS(KETL,KTC55) = +KTC55*<WC_KETL> - PTERMS(:,30,420) = +TPK%KTC55(:)*PCONC(:,112) +!PTERMS(OH,K051) = -K051*<OH>*<H2> + PTERMS(:,14,51) = -TPK%K051(:)*PCONC(:,14)*TPK%H2(:) ! -!PTERMS(WC_KETL,KTC55) = -KTC55*<WC_KETL> - PTERMS(:,112,420) = -TPK%KTC55(:)*PCONC(:,112) +!PTERMS(HO2,K051) = +K051*<OH>*<H2> + PTERMS(:,15,51) = +TPK%K051(:)*PCONC(:,14)*TPK%H2(:) ! -!PTERMS(MGLY,KTC56) = +KTC56*<WC_MGLY> - PTERMS(:,41,421) = +TPK%KTC56(:)*PCONC(:,111) +!PTERMS(SO2,K052) = -K052*<OH>*<SO2> + PTERMS(:,11,52) = -TPK%K052(:)*PCONC(:,14)*PCONC(:,11) ! -!PTERMS(WC_MGLY,KTC56) = -KTC56*<WC_MGLY> - PTERMS(:,111,421) = -TPK%KTC56(:)*PCONC(:,111) +!PTERMS(SULF,K052) = +K052*<OH>*<SO2> + PTERMS(:,12,52) = +TPK%K052(:)*PCONC(:,14)*PCONC(:,11) ! -!PTERMS(ORA1,KTC57) = +KTC57*<WC_ORA1> - PTERMS(:,43,422) = +TPK%KTC57(:)*PCONC(:,113) +!PTERMS(OH,K052) = -K052*<OH>*<SO2> + PTERMS(:,14,52) = -TPK%K052(:)*PCONC(:,14)*PCONC(:,11) ! -!PTERMS(WC_ORA1,KTC57) = -KTC57*<WC_ORA1> - PTERMS(:,113,422) = -TPK%KTC57(:)*PCONC(:,113) +!PTERMS(HO2,K052) = +K052*<OH>*<SO2> + PTERMS(:,15,52) = +TPK%K052(:)*PCONC(:,14)*PCONC(:,11) ! ! RETURN -END SUBROUTINE SUBT64 +END SUBROUTINE SUBT6 ! -SUBROUTINE SUBT65 +SUBROUTINE SUBT7 ! -!Indices 1301 a 1320 +!Indices 141 a 160 ! -!PTERMS(ORA2,KTC58) = +KTC58*<WC_ORA2> - PTERMS(:,44,423) = +TPK%KTC58(:)*PCONC(:,114) +!PTERMS(CO,K053) = -K053*<CO>*<OH> + PTERMS(:,13,53) = -TPK%K053(:)*PCONC(:,13)*PCONC(:,14) ! -!PTERMS(WC_ORA2,KTC58) = -KTC58*<WC_ORA2> - PTERMS(:,114,423) = -TPK%KTC58(:)*PCONC(:,114) +!PTERMS(OH,K053) = -K053*<CO>*<OH> + PTERMS(:,14,53) = -TPK%K053(:)*PCONC(:,13)*PCONC(:,14) ! -!PTERMS(ACID,KTC59) = +KTC59*<WC_ACID> - PTERMS(:,45,424) = +TPK%KTC59(:)*PCONC(:,115) +!PTERMS(HO2,K053) = +K053*<CO>*<OH> + PTERMS(:,15,53) = +TPK%K053(:)*PCONC(:,13)*PCONC(:,14) ! -!PTERMS(WC_ACID,KTC59) = -KTC59*<WC_ACID> - PTERMS(:,115,424) = -TPK%KTC59(:)*PCONC(:,115) +!PTERMS(CO,K054) = +0.01*K054*<BIO>*<O3P> + PTERMS(:,13,54) = +0.01*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) ! -!PTERMS(RP16,KTC60) = +KTC60*<WC_RP16> - PTERMS(:,74,425) = +TPK%KTC60(:)*PCONC(:,116) +!PTERMS(OH,K054) = +0.02*K054*<BIO>*<O3P> + PTERMS(:,14,54) = +0.02*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) ! -!PTERMS(WC_RP16,KTC60) = -KTC60*<WC_RP16> - PTERMS(:,116,425) = -TPK%KTC60(:)*PCONC(:,116) +!PTERMS(HO2,K054) = +0.28*K054*<BIO>*<O3P> + PTERMS(:,15,54) = +0.28*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) ! -!PTERMS(UR21,KTC61) = +KTC61*<WC_UR21> - PTERMS(:,47,426) = +TPK%KTC61(:)*PCONC(:,117) +!PTERMS(ALKE,K054) = +0.91868*K054*<BIO>*<O3P> + PTERMS(:,19,54) = +0.91868*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) ! -!PTERMS(WC_UR21,KTC61) = -KTC61*<WC_UR21> - PTERMS(:,117,426) = -TPK%KTC61(:)*PCONC(:,117) +!PTERMS(BIO,K054) = -K054*<BIO>*<O3P> + PTERMS(:,20,54) = -TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) ! -!PTERMS(UR28,KTC62) = +KTC62*<WC_UR28> - PTERMS(:,46,427) = +TPK%KTC62(:)*PCONC(:,118) +!PTERMS(HCHO,K054) = +0.05*K054*<BIO>*<O3P> + PTERMS(:,22,54) = +0.05*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) ! -!PTERMS(WC_UR28,KTC62) = -KTC62*<WC_UR28> - PTERMS(:,118,427) = -TPK%KTC62(:)*PCONC(:,118) +!PTERMS(CARBO,K054) = +0.13255*K054*<BIO>*<O3P> + PTERMS(:,25,54) = +0.13255*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) ! -!PTERMS(O3,KTR1) = -KTR1*<O3> - PTERMS(:,3,428) = -TPK%KTR1(:)*PCONC(:,3) +!PTERMS(XO2,K054) = +0.15*K054*<BIO>*<O3P> + PTERMS(:,41,54) = +0.15*TPK%K054(:)*PCONC(:,20)*TPK%O3P(:) ! -!PTERMS(WR_O3,KTR1) = +KTR1*<O3> - PTERMS(:,125,428) = +TPK%KTR1(:)*PCONC(:,3) +!PTERMS(ALD,K055) = +K055*<CARBO>*<O3P> + PTERMS(:,23,55) = +TPK%K055(:)*PCONC(:,25)*TPK%O3P(:) ! -!PTERMS(H2O2,KTR2) = -KTR2*<H2O2> - PTERMS(:,12,429) = -TPK%KTR2(:)*PCONC(:,12) +!PTERMS(CARBO,K055) = -K055*<CARBO>*<O3P> + PTERMS(:,25,55) = -TPK%K055(:)*PCONC(:,25)*TPK%O3P(:) ! -!PTERMS(WR_H2O2,KTR2) = +KTR2*<H2O2> - PTERMS(:,126,429) = +TPK%KTR2(:)*PCONC(:,12) +!PTERMS(OH,K056) = -K056*<CH4>*<OH> + PTERMS(:,14,56) = -TPK%K056(:)*PCONC(:,16)*PCONC(:,14) ! -!PTERMS(NO,KTR3) = -KTR3*<NO> - PTERMS(:,1,430) = -TPK%KTR3(:)*PCONC(:,1) +!PTERMS(CH4,K056) = -K056*<CH4>*<OH> + PTERMS(:,16,56) = -TPK%K056(:)*PCONC(:,16)*PCONC(:,14) ! -!PTERMS(WR_NO,KTR3) = +KTR3*<NO> - PTERMS(:,127,430) = +TPK%KTR3(:)*PCONC(:,1) +!PTERMS(MO2,K056) = +K056*<CH4>*<OH> + PTERMS(:,32,56) = +TPK%K056(:)*PCONC(:,16)*PCONC(:,14) ! -!PTERMS(NO2,KTR4) = -KTR4*<NO2> - PTERMS(:,2,431) = -TPK%KTR4(:)*PCONC(:,2) +!PTERMS(OH,K057) = -K057*<ETH>*<OH> + PTERMS(:,14,57) = -TPK%K057(:)*PCONC(:,17)*PCONC(:,14) ! -!PTERMS(WR_NO2,KTR4) = +KTR4*<NO2> - PTERMS(:,128,431) = +TPK%KTR4(:)*PCONC(:,2) +!PTERMS(ETH,K057) = -K057*<ETH>*<OH> + PTERMS(:,17,57) = -TPK%K057(:)*PCONC(:,17)*PCONC(:,14) ! -!PTERMS(NO3,KTR5) = -KTR5*<NO3> - PTERMS(:,8,432) = -TPK%KTR5(:)*PCONC(:,8) +!PTERMS(ALKAP,K057) = +K057*<ETH>*<OH> + PTERMS(:,33,57) = +TPK%K057(:)*PCONC(:,17)*PCONC(:,14) ! -!PTERMS(WR_NO3,KTR5) = +KTR5*<NO3> - PTERMS(:,129,432) = +TPK%KTR5(:)*PCONC(:,8) +!PTERMS(CO,K058) = +0.00878*K058*<ALKA>*<OH> + PTERMS(:,13,58) = +0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! ! RETURN -END SUBROUTINE SUBT65 +END SUBROUTINE SUBT7 ! -SUBROUTINE SUBT66 +SUBROUTINE SUBT8 ! -!Indices 1321 a 1340 +!Indices 161 a 180 ! -!PTERMS(N2O5,KTR6) = -KTR6*<N2O5> - PTERMS(:,7,433) = -TPK%KTR6(:)*PCONC(:,7) +!PTERMS(OH,K058) = -K058*<ALKA>*<OH> + PTERMS(:,14,58) = -TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(WR_N2O5,KTR6) = +KTR6*<N2O5> - PTERMS(:,130,433) = +TPK%KTR6(:)*PCONC(:,7) +!PTERMS(HO2,K058) = +0.12793*K058*<ALKA>*<OH> + PTERMS(:,15,58) = +0.12793*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(HONO,KTR7) = -KTR7*<HONO> - PTERMS(:,4,434) = -TPK%KTR7(:)*PCONC(:,4) +!PTERMS(ALKA,K058) = -K058*<ALKA>*<OH> + PTERMS(:,18,58) = -TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(WR_HONO,KTR7) = +KTR7*<HONO> - PTERMS(:,131,434) = +TPK%KTR7(:)*PCONC(:,4) +!PTERMS(HCHO,K058) = +0.00140*K058*<ALKA>*<OH> + PTERMS(:,22,58) = +0.00140*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(HNO3,KTR8) = -KTR8*<HNO3> - PTERMS(:,5,435) = -TPK%KTR8(:)*PCONC(:,5) +!PTERMS(ALD,K058) = +0.08173*K058*<ALKA>*<OH> + PTERMS(:,23,58) = +0.08173*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(WR_HNO3,KTR8) = +KTR8*<HNO3> - PTERMS(:,132,435) = +TPK%KTR8(:)*PCONC(:,5) +!PTERMS(KET,K058) = +0.03498*K058*<ALKA>*<OH> + PTERMS(:,24,58) = +0.03498*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(HNO4,KTR9) = -KTR9*<HNO4> - PTERMS(:,6,436) = -TPK%KTR9(:)*PCONC(:,6) +!PTERMS(CARBO,K058) = +0.00835*K058*<ALKA>*<OH> + PTERMS(:,25,58) = +0.00835*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(WR_HNO4,KTR9) = +KTR9*<HNO4> - PTERMS(:,133,436) = +TPK%KTR9(:)*PCONC(:,6) +!PTERMS(ORA1,K058) = +0.00878*K058*<ALKA>*<OH> + PTERMS(:,30,58) = +0.00878*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(NH3,KTR10) = -KTR10*<NH3> - PTERMS(:,9,437) = -TPK%KTR10(:)*PCONC(:,9) +!PTERMS(ALKAP,K058) = +0.87811*K058*<ALKA>*<OH> + PTERMS(:,33,58) = +0.87811*TPK%K058(:)*PCONC(:,18)*PCONC(:,14) ! -!PTERMS(WR_NH3,KTR10) = +KTR10*<NH3> - PTERMS(:,134,437) = +TPK%KTR10(:)*PCONC(:,9) +!PTERMS(OH,K059) = -K059*<ALKE>*<OH> + PTERMS(:,14,59) = -TPK%K059(:)*PCONC(:,19)*PCONC(:,14) ! -!PTERMS(OH,KTR11) = -KTR11*<OH> - PTERMS(:,15,438) = -TPK%KTR11(:)*PCONC(:,15) +!PTERMS(ALKE,K059) = -K059*<ALKE>*<OH> + PTERMS(:,19,59) = -TPK%K059(:)*PCONC(:,19)*PCONC(:,14) ! -!PTERMS(WR_OH,KTR11) = +KTR11*<OH> - PTERMS(:,135,438) = +TPK%KTR11(:)*PCONC(:,15) +!PTERMS(ALKEP,K059) = +1.02529*K059*<ALKE>*<OH> + PTERMS(:,34,59) = +1.02529*TPK%K059(:)*PCONC(:,19)*PCONC(:,14) ! -!PTERMS(HO2,KTR12) = -KTR12*<HO2> - PTERMS(:,10,439) = -TPK%KTR12(:)*PCONC(:,10) +!PTERMS(BIOP,K059) = +0.00000*K059*<ALKE>*<OH> + PTERMS(:,35,59) = +0.00000*TPK%K059(:)*PCONC(:,19)*PCONC(:,14) ! -!PTERMS(WR_HO2,KTR12) = +KTR12*<HO2> - PTERMS(:,136,439) = +TPK%KTR12(:)*PCONC(:,10) +!PTERMS(OH,K060) = -K060*<BIO>*<OH> + PTERMS(:,14,60) = -TPK%K060(:)*PCONC(:,20)*PCONC(:,14) ! -!PTERMS(WR_CO2,KTR13) = +KTR13*<CO2> - PTERMS(:,137,440) = +TPK%KTR13(:)*TPK%CO2(:) +!PTERMS(BIO,K060) = -K060*<BIO>*<OH> + PTERMS(:,20,60) = -TPK%K060(:)*PCONC(:,20)*PCONC(:,14) ! -!PTERMS(SO2,KTR14) = -KTR14*<SO2> - PTERMS(:,13,441) = -TPK%KTR14(:)*PCONC(:,13) +!PTERMS(BIOP,K060) = +1.00000*K060*<BIO>*<OH> + PTERMS(:,35,60) = +1.00000*TPK%K060(:)*PCONC(:,20)*PCONC(:,14) ! -!PTERMS(WR_SO2,KTR14) = +KTR14*<SO2> - PTERMS(:,138,441) = +TPK%KTR14(:)*PCONC(:,13) +!PTERMS(OH,K061) = -K061*<ARO>*<OH> + PTERMS(:,14,61) = -TPK%K061(:)*PCONC(:,21)*PCONC(:,14) ! -!PTERMS(H2SO4,KTR15) = -KTR15*<H2SO4> - PTERMS(:,14,442) = -TPK%KTR15(:)*PCONC(:,14) +!PTERMS(HO2,K061) = +0.10318*K061*<ARO>*<OH> + PTERMS(:,15,61) = +0.10318*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) ! -!PTERMS(WR_H2SO4,KTR15) = +KTR15*<H2SO4> - PTERMS(:,139,442) = +TPK%KTR15(:)*PCONC(:,14) +!PTERMS(ARO,K061) = -K061*<ARO>*<OH> + PTERMS(:,21,61) = -TPK%K061(:)*PCONC(:,21)*PCONC(:,14) ! -!PTERMS(RO21,KTR16) = -KTR16*<RO21> - PTERMS(:,86,443) = -TPK%KTR16(:)*PCONC(:,86) +!PTERMS(PHO,K061) = +0.00276*K061*<ARO>*<OH> + PTERMS(:,36,61) = +0.00276*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) ! ! RETURN -END SUBROUTINE SUBT66 +END SUBROUTINE SUBT8 ! -SUBROUTINE SUBT67 +SUBROUTINE SUBT9 ! -!Indices 1341 a 1360 +!Indices 181 a 200 ! -!PTERMS(WR_RO21,KTR16) = +KTR16*<RO21> - PTERMS(:,140,443) = +TPK%KTR16(:)*PCONC(:,86) +!PTERMS(ADD,K061) = +0.93968*K061*<ARO>*<OH> + PTERMS(:,37,61) = +0.93968*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) ! -!PTERMS(RO25,KTR17) = -KTR17*<RO25> - PTERMS(:,87,444) = -TPK%KTR17(:)*PCONC(:,87) +!PTERMS(XO2,K061) = +0.10318*K061*<ARO>*<OH> + PTERMS(:,41,61) = +0.10318*TPK%K061(:)*PCONC(:,21)*PCONC(:,14) ! -!PTERMS(WR_RO25,KTR17) = +KTR17*<RO25> - PTERMS(:,141,444) = +TPK%KTR17(:)*PCONC(:,87) +!PTERMS(CO,K062) = +K062*<HCHO>*<OH> + PTERMS(:,13,62) = +TPK%K062(:)*PCONC(:,22)*PCONC(:,14) ! -!PTERMS(MEOH,KTR18) = -KTR18*<MEOH> - PTERMS(:,32,445) = -TPK%KTR18(:)*PCONC(:,32) +!PTERMS(OH,K062) = -K062*<HCHO>*<OH> + PTERMS(:,14,62) = -TPK%K062(:)*PCONC(:,22)*PCONC(:,14) ! -!PTERMS(WR_MEOH,KTR18) = +KTR18*<MEOH> - PTERMS(:,142,445) = +TPK%KTR18(:)*PCONC(:,32) +!PTERMS(HO2,K062) = +K062*<HCHO>*<OH> + PTERMS(:,15,62) = +TPK%K062(:)*PCONC(:,22)*PCONC(:,14) ! -!PTERMS(ETOH,KTR19) = -KTR19*<ETOH> - PTERMS(:,33,446) = -TPK%KTR19(:)*PCONC(:,33) +!PTERMS(HCHO,K062) = -K062*<HCHO>*<OH> + PTERMS(:,22,62) = -TPK%K062(:)*PCONC(:,22)*PCONC(:,14) ! -!PTERMS(WR_ETOH,KTR19) = +KTR19*<ETOH> - PTERMS(:,143,446) = +TPK%KTR19(:)*PCONC(:,33) +!PTERMS(OH,K063) = -K063*<ALD>*<OH> + PTERMS(:,14,63) = -TPK%K063(:)*PCONC(:,23)*PCONC(:,14) ! -!PTERMS(ALCH,KTR20) = -KTR20*<ALCH> - PTERMS(:,34,447) = -TPK%KTR20(:)*PCONC(:,34) +!PTERMS(ALD,K063) = -K063*<ALD>*<OH> + PTERMS(:,23,63) = -TPK%K063(:)*PCONC(:,23)*PCONC(:,14) ! -!PTERMS(WR_ALCH,KTR20) = +KTR20*<ALCH> - PTERMS(:,144,447) = +TPK%KTR20(:)*PCONC(:,34) +!PTERMS(CARBOP,K063) = +1.00000*K063*<ALD>*<OH> + PTERMS(:,39,63) = +1.00000*TPK%K063(:)*PCONC(:,23)*PCONC(:,14) ! -!PTERMS(HCHO,KTR21) = -KTR21*<HCHO> - PTERMS(:,28,448) = -TPK%KTR21(:)*PCONC(:,28) +!PTERMS(OH,K064) = -K064*<KET>*<OH> + PTERMS(:,14,64) = -TPK%K064(:)*PCONC(:,24)*PCONC(:,14) ! -!PTERMS(WR_HCHO,KTR21) = +KTR21*<HCHO> - PTERMS(:,145,448) = +TPK%KTR21(:)*PCONC(:,28) +!PTERMS(KET,K064) = -K064*<KET>*<OH> + PTERMS(:,24,64) = -TPK%K064(:)*PCONC(:,24)*PCONC(:,14) ! -!PTERMS(ALD2,KTR22) = -KTR22*<ALD2> - PTERMS(:,29,449) = -TPK%KTR22(:)*PCONC(:,29) +!PTERMS(CARBOP,K064) = +1.00000*K064*<KET>*<OH> + PTERMS(:,39,64) = +1.00000*TPK%K064(:)*PCONC(:,24)*PCONC(:,14) ! -!PTERMS(WR_ALD2,KTR22) = +KTR22*<ALD2> - PTERMS(:,146,449) = +TPK%KTR22(:)*PCONC(:,29) +!PTERMS(CO,K065) = +1.01732*K065*<CARBO>*<OH> + PTERMS(:,13,65) = +1.01732*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! -!PTERMS(GLY,KTR23) = -KTR23*<GLY> - PTERMS(:,42,450) = -TPK%KTR23(:)*PCONC(:,42) +!PTERMS(OH,K065) = -K065*<CARBO>*<OH> + PTERMS(:,14,65) = -TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! -!PTERMS(WR_GLY,KTR23) = +KTR23*<GLY> - PTERMS(:,147,450) = +TPK%KTR23(:)*PCONC(:,42) +!PTERMS(HO2,K065) = +0.51208*K065*<CARBO>*<OH> + PTERMS(:,15,65) = +0.51208*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! -!PTERMS(KETL,KTR24) = -KTR24*<KETL> - PTERMS(:,30,451) = -TPK%KTR24(:)*PCONC(:,30) +!PTERMS(HCHO,K065) = +0.00000*K065*<CARBO>*<OH> + PTERMS(:,22,65) = +0.00000*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! -!PTERMS(WR_KETL,KTR24) = +KTR24*<KETL> - PTERMS(:,149,451) = +TPK%KTR24(:)*PCONC(:,30) +!PTERMS(ALD,K065) = +0.06253*K065*<CARBO>*<OH> + PTERMS(:,23,65) = +0.06253*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! -!PTERMS(MGLY,KTR25) = -KTR25*<MGLY> - PTERMS(:,41,452) = -TPK%KTR25(:)*PCONC(:,41) +!PTERMS(KET,K065) = +0.00853*K065*<CARBO>*<OH> + PTERMS(:,24,65) = +0.00853*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! -!PTERMS(WR_MGLY,KTR25) = +KTR25*<MGLY> - PTERMS(:,148,452) = +TPK%KTR25(:)*PCONC(:,41) +!PTERMS(CARBO,K065) = -K065*<CARBO>*<OH> + PTERMS(:,25,65) = -TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! -!PTERMS(ORA1,KTR26) = -KTR26*<ORA1> - PTERMS(:,43,453) = -TPK%KTR26(:)*PCONC(:,43) +!PTERMS(CARBOP,K065) = +0.51419*K065*<CARBO>*<OH> + PTERMS(:,39,65) = +0.51419*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! ! RETURN -END SUBROUTINE SUBT67 +END SUBROUTINE SUBT9 ! -SUBROUTINE SUBT68 +SUBROUTINE SUBT10 ! -!Indices 1361 a 1380 +!Indices 201 a 220 ! -!PTERMS(WR_ORA1,KTR26) = +KTR26*<ORA1> - PTERMS(:,150,453) = +TPK%KTR26(:)*PCONC(:,43) +!PTERMS(XO2,K065) = +0.10162*K065*<CARBO>*<OH> + PTERMS(:,41,65) = +0.10162*TPK%K065(:)*PCONC(:,25)*PCONC(:,14) ! -!PTERMS(ORA2,KTR27) = -KTR27*<ORA2> - PTERMS(:,44,454) = -TPK%KTR27(:)*PCONC(:,44) +!PTERMS(OH,K066) = -K066*<ORA1>*<OH> + PTERMS(:,14,66) = -TPK%K066(:)*PCONC(:,30)*PCONC(:,14) ! -!PTERMS(WR_ORA2,KTR27) = +KTR27*<ORA2> - PTERMS(:,151,454) = +TPK%KTR27(:)*PCONC(:,44) +!PTERMS(HO2,K066) = +K066*<ORA1>*<OH> + PTERMS(:,15,66) = +TPK%K066(:)*PCONC(:,30)*PCONC(:,14) ! -!PTERMS(ACID,KTR28) = -KTR28*<ACID> - PTERMS(:,45,455) = -TPK%KTR28(:)*PCONC(:,45) +!PTERMS(ORA1,K066) = -K066*<ORA1>*<OH> + PTERMS(:,30,66) = -TPK%K066(:)*PCONC(:,30)*PCONC(:,14) ! -!PTERMS(WR_ACID,KTR28) = +KTR28*<ACID> - PTERMS(:,152,455) = +TPK%KTR28(:)*PCONC(:,45) +!PTERMS(OH,K067) = -K067*<ORA2>*<OH> + PTERMS(:,14,67) = -TPK%K067(:)*PCONC(:,31)*PCONC(:,14) ! -!PTERMS(RP16,KTR29) = -KTR29*<RP16> - PTERMS(:,74,456) = -TPK%KTR29(:)*PCONC(:,74) +!PTERMS(ORA2,K067) = -K067*<ORA2>*<OH> + PTERMS(:,31,67) = -TPK%K067(:)*PCONC(:,31)*PCONC(:,14) ! -!PTERMS(WR_RP16,KTR29) = +KTR29*<RP16> - PTERMS(:,153,456) = +TPK%KTR29(:)*PCONC(:,74) +!PTERMS(OH,K068) = -K068*<OP1>*<OH> + PTERMS(:,14,68) = -TPK%K068(:)*PCONC(:,28)*PCONC(:,14) ! -!PTERMS(UR21,KTR30) = -KTR30*<UR21> - PTERMS(:,47,457) = -TPK%KTR30(:)*PCONC(:,47) +!PTERMS(HCHO,K068) = +0.35*K068*<OP1>*<OH> + PTERMS(:,22,68) = +0.35*TPK%K068(:)*PCONC(:,28)*PCONC(:,14) ! -!PTERMS(WR_UR21,KTR30) = +KTR30*<UR21> - PTERMS(:,154,457) = +TPK%KTR30(:)*PCONC(:,47) +!PTERMS(OP1,K068) = -K068*<OP1>*<OH> + PTERMS(:,28,68) = -TPK%K068(:)*PCONC(:,28)*PCONC(:,14) ! -!PTERMS(UR28,KTR31) = -KTR31*<UR28> - PTERMS(:,46,458) = -TPK%KTR31(:)*PCONC(:,46) +!PTERMS(MO2,K068) = +0.65*K068*<OP1>*<OH> + PTERMS(:,32,68) = +0.65*TPK%K068(:)*PCONC(:,28)*PCONC(:,14) ! -!PTERMS(WR_UR28,KTR31) = +KTR31*<UR28> - PTERMS(:,155,458) = +TPK%KTR31(:)*PCONC(:,46) +!PTERMS(OH,K069) = -K069*<OP2>*<OH> + PTERMS(:,14,69) = -TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(O3,KTR32) = +KTR32*<WR_O3> - PTERMS(:,3,459) = +TPK%KTR32(:)*PCONC(:,125) +!PTERMS(HO2,K069) = +0.02915*K069*<OP2>*<OH> + PTERMS(:,15,69) = +0.02915*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(WR_O3,KTR32) = -KTR32*<WR_O3> - PTERMS(:,125,459) = -TPK%KTR32(:)*PCONC(:,125) +!PTERMS(HCHO,K069) = +0.02915*K069*<OP2>*<OH> + PTERMS(:,22,69) = +0.02915*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(H2O2,KTR33) = +KTR33*<WR_H2O2> - PTERMS(:,12,460) = +TPK%KTR33(:)*PCONC(:,126) +!PTERMS(ALD,K069) = +0.07335*K069*<OP2>*<OH> + PTERMS(:,23,69) = +0.07335*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(WR_H2O2,KTR33) = -KTR33*<WR_H2O2> - PTERMS(:,126,460) = -TPK%KTR33(:)*PCONC(:,126) +!PTERMS(KET,K069) = +0.37591*K069*<OP2>*<OH> + PTERMS(:,24,69) = +0.37591*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(NO,KTR34) = +KTR34*<WR_NO> - PTERMS(:,1,461) = +TPK%KTR34(:)*PCONC(:,127) +!PTERMS(OP2,K069) = -K069*<OP2>*<OH> + PTERMS(:,29,69) = -TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(WR_NO,KTR34) = -KTR34*<WR_NO> - PTERMS(:,127,461) = -TPK%KTR34(:)*PCONC(:,127) +!PTERMS(ALKAP,K069) = +0.40341*K069*<OP2>*<OH> + PTERMS(:,33,69) = +0.40341*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(NO2,KTR35) = +KTR35*<WR_NO2> - PTERMS(:,2,462) = +TPK%KTR35(:)*PCONC(:,128) +!PTERMS(CARBOP,K069) = +0.05413*K069*<OP2>*<OH> + PTERMS(:,39,69) = +0.05413*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(WR_NO2,KTR35) = -KTR35*<WR_NO2> - PTERMS(:,128,462) = -TPK%KTR35(:)*PCONC(:,128) +!PTERMS(XO2,K069) = +0.09333*K069*<OP2>*<OH> + PTERMS(:,41,69) = +0.09333*TPK%K069(:)*PCONC(:,29)*PCONC(:,14) ! -!PTERMS(NO3,KTR36) = +KTR36*<WR_NO3> - PTERMS(:,8,463) = +TPK%KTR36(:)*PCONC(:,129) +!PTERMS(NO3,K070) = +0.71893*K070*<PAN>*<OH> + PTERMS(:,5,70) = +0.71893*TPK%K070(:)*PCONC(:,27)*PCONC(:,14) ! ! RETURN -END SUBROUTINE SUBT68 +END SUBROUTINE SUBT10 ! -SUBROUTINE SUBT69 +SUBROUTINE SUBT11 ! -!Indices 1381 a 1400 +!Indices 221 a 240 ! -!PTERMS(WR_NO3,KTR36) = -KTR36*<WR_NO3> - PTERMS(:,129,463) = -TPK%KTR36(:)*PCONC(:,129) +!PTERMS(OH,K070) = -K070*<PAN>*<OH> + PTERMS(:,14,70) = -TPK%K070(:)*PCONC(:,27)*PCONC(:,14) ! -!PTERMS(N2O5,KTR37) = +KTR37*<WR_N2O5> - PTERMS(:,7,464) = +TPK%KTR37(:)*PCONC(:,130) +!PTERMS(HO2,K070) = +0.28107*K070*<PAN>*<OH> + PTERMS(:,15,70) = +0.28107*TPK%K070(:)*PCONC(:,27)*PCONC(:,14) ! -!PTERMS(WR_N2O5,KTR37) = -KTR37*<WR_N2O5> - PTERMS(:,130,464) = -TPK%KTR37(:)*PCONC(:,130) +!PTERMS(HCHO,K070) = +0.57839*K070*<PAN>*<OH> + PTERMS(:,22,70) = +0.57839*TPK%K070(:)*PCONC(:,27)*PCONC(:,14) ! -!PTERMS(HONO,KTR38) = +KTR38*<WR_HONO> - PTERMS(:,4,465) = +TPK%KTR38(:)*PCONC(:,131) +!PTERMS(CARBO,K070) = +0.21863*K070*<PAN>*<OH> + PTERMS(:,25,70) = +0.21863*TPK%K070(:)*PCONC(:,27)*PCONC(:,14) ! -!PTERMS(WR_HONO,KTR38) = -KTR38*<WR_HONO> - PTERMS(:,131,465) = -TPK%KTR38(:)*PCONC(:,131) +!PTERMS(PAN,K070) = -K070*<PAN>*<OH> + PTERMS(:,27,70) = -TPK%K070(:)*PCONC(:,27)*PCONC(:,14) ! -!PTERMS(HNO3,KTR39) = +KTR39*<WR_HNO3> - PTERMS(:,5,466) = +TPK%KTR39(:)*PCONC(:,132) +!PTERMS(XO2,K070) = +K070*<PAN>*<OH> + PTERMS(:,41,70) = +TPK%K070(:)*PCONC(:,27)*PCONC(:,14) ! -!PTERMS(WR_HNO3,KTR39) = -KTR39*<WR_HNO3> - PTERMS(:,132,466) = -TPK%KTR39(:)*PCONC(:,132) +!PTERMS(NO2,K071) = +K071*<ONIT>*<OH> + PTERMS(:,4,71) = +TPK%K071(:)*PCONC(:,26)*PCONC(:,14) ! -!PTERMS(HNO4,KTR40) = +KTR40*<WR_HNO4> - PTERMS(:,6,467) = +TPK%KTR40(:)*PCONC(:,133) +!PTERMS(OH,K071) = -K071*<ONIT>*<OH> + PTERMS(:,14,71) = -TPK%K071(:)*PCONC(:,26)*PCONC(:,14) ! -!PTERMS(WR_HNO4,KTR40) = -KTR40*<WR_HNO4> - PTERMS(:,133,467) = -TPK%KTR40(:)*PCONC(:,133) +!PTERMS(ONIT,K071) = -K071*<ONIT>*<OH> + PTERMS(:,26,71) = -TPK%K071(:)*PCONC(:,26)*PCONC(:,14) ! -!PTERMS(NH3,KTR41) = +KTR41*<WR_NH3> - PTERMS(:,9,468) = +TPK%KTR41(:)*PCONC(:,134) +!PTERMS(ALKAP,K071) = +1.00000*K071*<ONIT>*<OH> + PTERMS(:,33,71) = +1.00000*TPK%K071(:)*PCONC(:,26)*PCONC(:,14) ! -!PTERMS(WR_NH3,KTR41) = -KTR41*<WR_NH3> - PTERMS(:,134,468) = -TPK%KTR41(:)*PCONC(:,134) +!PTERMS(NO3,K072) = -K072*<HCHO>*<NO3> + PTERMS(:,5,72) = -TPK%K072(:)*PCONC(:,22)*PCONC(:,5) ! -!PTERMS(OH,KTR42) = +KTR42*<WR_OH> - PTERMS(:,15,469) = +TPK%KTR42(:)*PCONC(:,135) +!PTERMS(HNO3,K072) = +K072*<HCHO>*<NO3> + PTERMS(:,8,72) = +TPK%K072(:)*PCONC(:,22)*PCONC(:,5) ! -!PTERMS(WR_OH,KTR42) = -KTR42*<WR_OH> - PTERMS(:,135,469) = -TPK%KTR42(:)*PCONC(:,135) +!PTERMS(CO,K072) = +K072*<HCHO>*<NO3> + PTERMS(:,13,72) = +TPK%K072(:)*PCONC(:,22)*PCONC(:,5) ! -!PTERMS(HO2,KTR43) = +KTR43*<WR_HO2> - PTERMS(:,10,470) = +TPK%KTR43(:)*PCONC(:,136) +!PTERMS(HO2,K072) = +K072*<HCHO>*<NO3> + PTERMS(:,15,72) = +TPK%K072(:)*PCONC(:,22)*PCONC(:,5) ! -!PTERMS(WR_HO2,KTR43) = -KTR43*<WR_HO2> - PTERMS(:,136,470) = -TPK%KTR43(:)*PCONC(:,136) +!PTERMS(HCHO,K072) = -K072*<HCHO>*<NO3> + PTERMS(:,22,72) = -TPK%K072(:)*PCONC(:,22)*PCONC(:,5) ! -!PTERMS(WR_CO2,KTR44) = -KTR44*<WR_CO2> - PTERMS(:,137,471) = -TPK%KTR44(:)*PCONC(:,137) +!PTERMS(NO3,K073) = -K073*<ALD>*<NO3> + PTERMS(:,5,73) = -TPK%K073(:)*PCONC(:,23)*PCONC(:,5) ! -!PTERMS(SO2,KTR45) = +KTR45*<WR_SO2> - PTERMS(:,13,472) = +TPK%KTR45(:)*PCONC(:,138) +!PTERMS(HNO3,K073) = +K073*<ALD>*<NO3> + PTERMS(:,8,73) = +TPK%K073(:)*PCONC(:,23)*PCONC(:,5) ! -!PTERMS(WR_SO2,KTR45) = -KTR45*<WR_SO2> - PTERMS(:,138,472) = -TPK%KTR45(:)*PCONC(:,138) +!PTERMS(ALD,K073) = -K073*<ALD>*<NO3> + PTERMS(:,23,73) = -TPK%K073(:)*PCONC(:,23)*PCONC(:,5) ! -!PTERMS(H2SO4,KTR46) = +KTR46*<WR_H2SO4> - PTERMS(:,14,473) = +TPK%KTR46(:)*PCONC(:,139) +!PTERMS(CARBOP,K073) = +1.00000*K073*<ALD>*<NO3> + PTERMS(:,39,73) = +1.00000*TPK%K073(:)*PCONC(:,23)*PCONC(:,5) ! -!PTERMS(WR_H2SO4,KTR46) = -KTR46*<WR_H2SO4> - PTERMS(:,139,473) = -TPK%KTR46(:)*PCONC(:,139) +!PTERMS(NO2,K074) = +0.10530*K074*<CARBO>*<NO3> + PTERMS(:,4,74) = +0.10530*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! ! RETURN -END SUBROUTINE SUBT69 +END SUBROUTINE SUBT11 ! -SUBROUTINE SUBT70 +SUBROUTINE SUBT12 ! -!Indices 1401 a 1420 +!Indices 241 a 260 ! -!PTERMS(RO21,KTR47) = +KTR47*<WR_RO21> - PTERMS(:,86,474) = +TPK%KTR47(:)*PCONC(:,140) +!PTERMS(NO3,K074) = -K074*<CARBO>*<NO3> + PTERMS(:,5,74) = -TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(WR_RO21,KTR47) = -KTR47*<WR_RO21> - PTERMS(:,140,474) = -TPK%KTR47(:)*PCONC(:,140) +!PTERMS(HNO3,K074) = +0.91567*K074*<CARBO>*<NO3> + PTERMS(:,8,74) = +0.91567*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(RO25,KTR48) = +KTR48*<WR_RO25> - PTERMS(:,87,475) = +TPK%KTR48(:)*PCONC(:,141) +!PTERMS(CO,K074) = +1.33723*K074*<CARBO>*<NO3> + PTERMS(:,13,74) = +1.33723*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(WR_RO25,KTR48) = -KTR48*<WR_RO25> - PTERMS(:,141,475) = -TPK%KTR48(:)*PCONC(:,141) +!PTERMS(HO2,K074) = +0.63217*K074*<CARBO>*<NO3> + PTERMS(:,15,74) = +0.63217*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(MEOH,KTR49) = +KTR49*<WR_MEOH> - PTERMS(:,32,476) = +TPK%KTR49(:)*PCONC(:,142) +!PTERMS(ALD,K074) = +0.05265*K074*<CARBO>*<NO3> + PTERMS(:,23,74) = +0.05265*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(WR_MEOH,KTR49) = -KTR49*<WR_MEOH> - PTERMS(:,142,476) = -TPK%KTR49(:)*PCONC(:,142) +!PTERMS(KET,K074) = +0.00632*K074*<CARBO>*<NO3> + PTERMS(:,24,74) = +0.00632*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(ETOH,KTR50) = +KTR50*<WR_ETOH> - PTERMS(:,33,477) = +TPK%KTR50(:)*PCONC(:,143) +!PTERMS(CARBO,K074) = -K074*<CARBO>*<NO3> + PTERMS(:,25,74) = -TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(WR_ETOH,KTR50) = -KTR50*<WR_ETOH> - PTERMS(:,143,477) = -TPK%KTR50(:)*PCONC(:,143) +!PTERMS(CARBOP,K074) = +0.38881*K074*<CARBO>*<NO3> + PTERMS(:,39,74) = +0.38881*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(ALCH,KTR51) = +KTR51*<WR_ALCH> - PTERMS(:,34,478) = +TPK%KTR51(:)*PCONC(:,144) +!PTERMS(OLN,K074) = +0.00000*K074*<CARBO>*<NO3> + PTERMS(:,40,74) = +0.00000*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(WR_ALCH,KTR51) = -KTR51*<WR_ALCH> - PTERMS(:,144,478) = -TPK%KTR51(:)*PCONC(:,144) +!PTERMS(XO2,K074) = +0.10530*K074*<CARBO>*<NO3> + PTERMS(:,41,74) = +0.10530*TPK%K074(:)*PCONC(:,25)*PCONC(:,5) ! -!PTERMS(HCHO,KTR52) = +KTR52*<WR_HCHO> - PTERMS(:,28,479) = +TPK%KTR52(:)*PCONC(:,145) +!PTERMS(NO3,K075) = -K075*<ARO>*<NO3> + PTERMS(:,5,75) = -TPK%K075(:)*PCONC(:,21)*PCONC(:,5) ! -!PTERMS(WR_HCHO,KTR52) = -KTR52*<WR_HCHO> - PTERMS(:,145,479) = -TPK%KTR52(:)*PCONC(:,145) +!PTERMS(HNO3,K075) = +K075*<ARO>*<NO3> + PTERMS(:,8,75) = +TPK%K075(:)*PCONC(:,21)*PCONC(:,5) ! -!PTERMS(ALD2,KTR53) = +KTR53*<WR_ALD2> - PTERMS(:,29,480) = +TPK%KTR53(:)*PCONC(:,146) +!PTERMS(ARO,K075) = -K075*<ARO>*<NO3> + PTERMS(:,21,75) = -TPK%K075(:)*PCONC(:,21)*PCONC(:,5) ! -!PTERMS(WR_ALD2,KTR53) = -KTR53*<WR_ALD2> - PTERMS(:,146,480) = -TPK%KTR53(:)*PCONC(:,146) +!PTERMS(PHO,K075) = +K075*<ARO>*<NO3> + PTERMS(:,36,75) = +TPK%K075(:)*PCONC(:,21)*PCONC(:,5) ! -!PTERMS(GLY,KTR54) = +KTR54*<WR_GLY> - PTERMS(:,42,481) = +TPK%KTR54(:)*PCONC(:,147) +!PTERMS(NO3,K076) = -K076*<ALKE>*<NO3> + PTERMS(:,5,76) = -TPK%K076(:)*PCONC(:,19)*PCONC(:,5) ! -!PTERMS(WR_GLY,KTR54) = -KTR54*<WR_GLY> - PTERMS(:,147,481) = -TPK%KTR54(:)*PCONC(:,147) +!PTERMS(ALKE,K076) = -K076*<ALKE>*<NO3> + PTERMS(:,19,76) = -TPK%K076(:)*PCONC(:,19)*PCONC(:,5) ! -!PTERMS(KETL,KTR55) = +KTR55*<WR_KETL> - PTERMS(:,30,482) = +TPK%KTR55(:)*PCONC(:,149) +!PTERMS(CARBO,K076) = +0.00000*K076*<ALKE>*<NO3> + PTERMS(:,25,76) = +0.00000*TPK%K076(:)*PCONC(:,19)*PCONC(:,5) ! -!PTERMS(WR_KETL,KTR55) = -KTR55*<WR_KETL> - PTERMS(:,149,482) = -TPK%KTR55(:)*PCONC(:,149) +!PTERMS(OLN,K076) = +0.93768*K076*<ALKE>*<NO3> + PTERMS(:,40,76) = +0.93768*TPK%K076(:)*PCONC(:,19)*PCONC(:,5) ! -!PTERMS(MGLY,KTR56) = +KTR56*<WR_MGLY> - PTERMS(:,41,483) = +TPK%KTR56(:)*PCONC(:,148) +!PTERMS(NO3,K077) = -K077*<BIO>*<NO3> + PTERMS(:,5,77) = -TPK%K077(:)*PCONC(:,20)*PCONC(:,5) ! -!PTERMS(WR_MGLY,KTR56) = -KTR56*<WR_MGLY> - PTERMS(:,148,483) = -TPK%KTR56(:)*PCONC(:,148) +!PTERMS(BIO,K077) = -K077*<BIO>*<NO3> + PTERMS(:,20,77) = -TPK%K077(:)*PCONC(:,20)*PCONC(:,5) ! ! RETURN -END SUBROUTINE SUBT70 +END SUBROUTINE SUBT12 ! -SUBROUTINE SUBT71 +SUBROUTINE SUBT13 ! -!Indices 1421 a 1440 +!Indices 261 a 280 ! -!PTERMS(ORA1,KTR57) = +KTR57*<WR_ORA1> - PTERMS(:,43,484) = +TPK%KTR57(:)*PCONC(:,150) +!PTERMS(CARBO,K077) = +0.91741*K077*<BIO>*<NO3> + PTERMS(:,25,77) = +0.91741*TPK%K077(:)*PCONC(:,20)*PCONC(:,5) ! -!PTERMS(WR_ORA1,KTR57) = -KTR57*<WR_ORA1> - PTERMS(:,150,484) = -TPK%KTR57(:)*PCONC(:,150) +!PTERMS(OLN,K077) = +1.00000*K077*<BIO>*<NO3> + PTERMS(:,40,77) = +1.00000*TPK%K077(:)*PCONC(:,20)*PCONC(:,5) ! -!PTERMS(ORA2,KTR58) = +KTR58*<WR_ORA2> - PTERMS(:,44,485) = +TPK%KTR58(:)*PCONC(:,151) +!PTERMS(NO2,K078) = +0.40*K078*<PAN>*<NO3> + PTERMS(:,4,78) = +0.40*TPK%K078(:)*PCONC(:,27)*PCONC(:,5) ! -!PTERMS(WR_ORA2,KTR58) = -KTR58*<WR_ORA2> - PTERMS(:,151,485) = -TPK%KTR58(:)*PCONC(:,151) +!PTERMS(NO3,K078) = -K078*<PAN>*<NO3> + PTERMS(:,5,78) = -TPK%K078(:)*PCONC(:,27)*PCONC(:,5) ! -!PTERMS(ACID,KTR59) = +KTR59*<WR_ACID> - PTERMS(:,45,486) = +TPK%KTR59(:)*PCONC(:,152) +!PTERMS(HCHO,K078) = +0.40*K078*<PAN>*<NO3> + PTERMS(:,22,78) = +0.40*TPK%K078(:)*PCONC(:,27)*PCONC(:,5) ! -!PTERMS(WR_ACID,KTR59) = -KTR59*<WR_ACID> - PTERMS(:,152,486) = -TPK%KTR59(:)*PCONC(:,152) +!PTERMS(ONIT,K078) = +0.60*K078*<PAN>*<NO3> + PTERMS(:,26,78) = +0.60*TPK%K078(:)*PCONC(:,27)*PCONC(:,5) ! -!PTERMS(RP16,KTR60) = +KTR60*<WR_RP16> - PTERMS(:,74,487) = +TPK%KTR60(:)*PCONC(:,153) +!PTERMS(PAN,K078) = -K078*<PAN>*<NO3> + PTERMS(:,27,78) = -TPK%K078(:)*PCONC(:,27)*PCONC(:,5) ! -!PTERMS(WR_RP16,KTR60) = -KTR60*<WR_RP16> - PTERMS(:,153,487) = -TPK%KTR60(:)*PCONC(:,153) +!PTERMS(XO2,K078) = +K078*<PAN>*<NO3> + PTERMS(:,41,78) = +TPK%K078(:)*PCONC(:,27)*PCONC(:,5) ! -!PTERMS(UR21,KTR61) = +KTR61*<WR_UR21> - PTERMS(:,47,488) = +TPK%KTR61(:)*PCONC(:,154) +!PTERMS(O3,K079) = -K079*<ALKE>*<O3> + PTERMS(:,1,79) = -TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(WR_UR21,KTR61) = -KTR61*<WR_UR21> - PTERMS(:,154,488) = -TPK%KTR61(:)*PCONC(:,154) +!PTERMS(H2O2,K079) = +0.01833*K079*<ALKE>*<O3> + PTERMS(:,2,79) = +0.01833*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(UR28,KTR62) = +KTR62*<WR_UR28> - PTERMS(:,46,489) = +TPK%KTR62(:)*PCONC(:,155) +!PTERMS(CO,K079) = +0.35120*K079*<ALKE>*<O3> + PTERMS(:,13,79) = +0.35120*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(WR_UR28,KTR62) = -KTR62*<WR_UR28> - PTERMS(:,155,489) = -TPK%KTR62(:)*PCONC(:,155) +!PTERMS(OH,K079) = +0.39435*K079*<ALKE>*<O3> + PTERMS(:,14,79) = +0.39435*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(WC_H2O2,KC1) = -KC1*<WC_H2O2> - PTERMS(:,89,490) = -TPK%KC1(:)*PCONC(:,89) +!PTERMS(HO2,K079) = +0.23451*K079*<ALKE>*<O3> + PTERMS(:,15,79) = +0.23451*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(WC_OH,KC1) = +KC1*<WC_H2O2> - PTERMS(:,98,490) = +TPK%KC1(:)*PCONC(:,89) +!PTERMS(CH4,K079) = +0.04300*K079*<ALKE>*<O3> + PTERMS(:,16,79) = +0.04300*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(WC_H2O2,KC2) = +KC2*<WC_OH>*<WC_OH> - PTERMS(:,89,491) = +TPK%KC2(:)*PCONC(:,98)*PCONC(:,98) +!PTERMS(ETH,K079) = +0.03196*K079*<ALKE>*<O3> + PTERMS(:,17,79) = +0.03196*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(WC_OH,KC2) = -KC2*<WC_OH>*<WC_OH> - PTERMS(:,98,491) = -TPK%KC2(:)*PCONC(:,98)*PCONC(:,98) +!PTERMS(ALKE,K079) = -K079*<ALKE>*<O3> + PTERMS(:,19,79) = -TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(WC_OH,KC3) = -KC3*<WC_HO2>*<WC_OH> - PTERMS(:,98,492) = -TPK%KC3(:)*PCONC(:,99)*PCONC(:,98) +!PTERMS(HCHO,K079) = +0.48290*K079*<ALKE>*<O3> + PTERMS(:,22,79) = +0.48290*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(WC_HO2,KC3) = -KC3*<WC_HO2>*<WC_OH> - PTERMS(:,99,492) = -TPK%KC3(:)*PCONC(:,99)*PCONC(:,98) +!PTERMS(ALD,K079) = +0.51468*K079*<ALKE>*<O3> + PTERMS(:,23,79) = +0.51468*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(WC_H2O2,KC4) = -KC4*<WC_OH>*<WC_H2O2> - PTERMS(:,89,493) = -TPK%KC4(:)*PCONC(:,98)*PCONC(:,89) +!PTERMS(KET,K079) = +0.07377*K079*<ALKE>*<O3> + PTERMS(:,24,79) = +0.07377*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(WC_OH,KC4) = -KC4*<WC_OH>*<WC_H2O2> - PTERMS(:,98,493) = -TPK%KC4(:)*PCONC(:,98)*PCONC(:,89) +!PTERMS(CARBO,K079) = +0.00000*K079*<ALKE>*<O3> + PTERMS(:,25,79) = +0.00000*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! ! RETURN -END SUBROUTINE SUBT71 +END SUBROUTINE SUBT13 ! -SUBROUTINE SUBT72 +SUBROUTINE SUBT14 ! -!Indices 1441 a 1460 +!Indices 281 a 300 ! -!PTERMS(WC_HO2,KC4) = +KC4*<WC_OH>*<WC_H2O2> - PTERMS(:,99,493) = +TPK%KC4(:)*PCONC(:,98)*PCONC(:,89) +!PTERMS(ORA1,K079) = +0.15343*K079*<ALKE>*<O3> + PTERMS(:,30,79) = +0.15343*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(WC_H2O2,KC5) = +KC5*<WC_HO2>*<WC_HO2> - PTERMS(:,89,494) = +TPK%KC5(:)*PCONC(:,99)*PCONC(:,99) +!PTERMS(ORA2,K079) = +0.08143*K079*<ALKE>*<O3> + PTERMS(:,31,79) = +0.08143*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(WC_HO2,KC5) = -KC5*<WC_HO2>*<WC_HO2> - PTERMS(:,99,494) = -TPK%KC5(:)*PCONC(:,99)*PCONC(:,99) +!PTERMS(MO2,K079) = +0.13966*K079*<ALKE>*<O3> + PTERMS(:,32,79) = +0.13966*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(WC_O3,KC6) = -KC6*<WC_HO2>*<WC_O3> - PTERMS(:,88,495) = -TPK%KC6(:)*PCONC(:,99)*PCONC(:,88) +!PTERMS(ALKAP,K079) = +0.09815*K079*<ALKE>*<O3> + PTERMS(:,33,79) = +0.09815*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(WC_OH,KC6) = +KC6*<WC_HO2>*<WC_O3> - PTERMS(:,98,495) = +TPK%KC6(:)*PCONC(:,99)*PCONC(:,88) +!PTERMS(CARBOP,K079) = +0.05705*K079*<ALKE>*<O3> + PTERMS(:,39,79) = +0.05705*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(WC_HO2,KC6) = -KC6*<WC_HO2>*<WC_O3> - PTERMS(:,99,495) = -TPK%KC6(:)*PCONC(:,99)*PCONC(:,88) +!PTERMS(XO2,K079) = +0.00000*K079*<ALKE>*<O3> + PTERMS(:,41,79) = +0.00000*TPK%K079(:)*PCONC(:,19)*PCONC(:,1) ! -!PTERMS(WC_OH,KC7) = -KC7*<WC_SO2>*<WC_OH> - PTERMS(:,98,496) = -TPK%KC7(:)*PCONC(:,101)*PCONC(:,98) +!PTERMS(O3,K080) = -K080*<BIO>*<O3> + PTERMS(:,1,80) = -TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(WC_SO2,KC7) = -KC7*<WC_SO2>*<WC_OH> - PTERMS(:,101,496) = -TPK%KC7(:)*PCONC(:,101)*PCONC(:,98) +!PTERMS(H2O2,K080) = +0.00100*K080*<BIO>*<O3> + PTERMS(:,2,80) = +0.00100*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(WC_ASO3,KC7) = +KC7*<WC_SO2>*<WC_OH> - PTERMS(:,120,496) = +TPK%KC7(:)*PCONC(:,101)*PCONC(:,98) +!PTERMS(CO,K080) = +0.36000*K080*<BIO>*<O3> + PTERMS(:,13,80) = +0.36000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(WC_NO2,KC8) = +KC8*<WC_OH>*<WC_HONO> - PTERMS(:,91,497) = +TPK%KC8(:)*PCONC(:,98)*PCONC(:,94) +!PTERMS(OH,K080) = +0.28000*K080*<BIO>*<O3> + PTERMS(:,14,80) = +0.28000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(WC_HONO,KC8) = -KC8*<WC_OH>*<WC_HONO> - PTERMS(:,94,497) = -TPK%KC8(:)*PCONC(:,98)*PCONC(:,94) +!PTERMS(HO2,K080) = +0.30000*K080*<BIO>*<O3> + PTERMS(:,15,80) = +0.30000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(WC_OH,KC8) = -KC8*<WC_OH>*<WC_HONO> - PTERMS(:,98,497) = -TPK%KC8(:)*PCONC(:,98)*PCONC(:,94) +!PTERMS(ALKE,K080) = +0.37388*K080*<BIO>*<O3> + PTERMS(:,19,80) = +0.37388*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(WC_NO2,KC9) = -KC9*<WC_HO2>*<WC_NO2> - PTERMS(:,91,498) = -TPK%KC9(:)*PCONC(:,99)*PCONC(:,91) +!PTERMS(BIO,K080) = -K080*<BIO>*<O3> + PTERMS(:,20,80) = -TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(WC_HNO4,KC9) = +KC9*<WC_HO2>*<WC_NO2> - PTERMS(:,96,498) = +TPK%KC9(:)*PCONC(:,99)*PCONC(:,91) +!PTERMS(HCHO,K080) = +0.90000*K080*<BIO>*<O3> + PTERMS(:,22,80) = +0.90000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(WC_HO2,KC9) = -KC9*<WC_HO2>*<WC_NO2> - PTERMS(:,99,498) = -TPK%KC9(:)*PCONC(:,99)*PCONC(:,91) +!PTERMS(ALD,K080) = +0.00000*K080*<BIO>*<O3> + PTERMS(:,23,80) = +0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(WC_NO2,KC10) = +KC10*<WC_HNO4> - PTERMS(:,91,499) = +TPK%KC10(:)*PCONC(:,96) +!PTERMS(KET,K080) = +0.00000*K080*<BIO>*<O3> + PTERMS(:,24,80) = +0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(WC_HNO4,KC10) = -KC10*<WC_HNO4> - PTERMS(:,96,499) = -TPK%KC10(:)*PCONC(:,96) +!PTERMS(CARBO,K080) = +0.39754*K080*<BIO>*<O3> + PTERMS(:,25,80) = +0.39754*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(WC_HO2,KC10) = +KC10*<WC_HNO4> - PTERMS(:,99,499) = +TPK%KC10(:)*PCONC(:,96) +!PTERMS(ORA1,K080) = +0.15000*K080*<BIO>*<O3> + PTERMS(:,30,80) = +0.15000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(WC_HONO,KC11) = +KC11*<WC_HNO4> - PTERMS(:,94,500) = +TPK%KC11(:)*PCONC(:,96) +!PTERMS(ORA2,K080) = +0.00000*K080*<BIO>*<O3> + PTERMS(:,31,80) = +0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(WC_HNO4,KC11) = -KC11*<WC_HNO4> - PTERMS(:,96,500) = -TPK%KC11(:)*PCONC(:,96) +!PTERMS(MO2,K080) = +0.03000*K080*<BIO>*<O3> + PTERMS(:,32,80) = +0.03000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! ! RETURN -END SUBROUTINE SUBT72 +END SUBROUTINE SUBT14 ! -SUBROUTINE SUBT73 +SUBROUTINE SUBT15 ! -!Indices 1461 a 1480 +!Indices 301 a 320 ! -!PTERMS(WC_HNO3,KC12) = +KC12*<WC_SO2>*<WC_HNO4> - PTERMS(:,95,501) = +TPK%KC12(:)*PCONC(:,101)*PCONC(:,96) +!PTERMS(ALKAP,K080) = +0.00000*K080*<BIO>*<O3> + PTERMS(:,33,80) = +0.00000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(WC_HNO4,KC12) = -KC12*<WC_SO2>*<WC_HNO4> - PTERMS(:,96,501) = -TPK%KC12(:)*PCONC(:,101)*PCONC(:,96) +!PTERMS(CARBOP,K080) = +0.17000*K080*<BIO>*<O3> + PTERMS(:,39,80) = +0.17000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(WC_SO2,KC12) = -KC12*<WC_SO2>*<WC_HNO4> - PTERMS(:,101,501) = -TPK%KC12(:)*PCONC(:,101)*PCONC(:,96) +!PTERMS(XO2,K080) = +0.13000*K080*<BIO>*<O3> + PTERMS(:,41,80) = +0.13000*TPK%K080(:)*PCONC(:,20)*PCONC(:,1) ! -!PTERMS(WC_H2SO4,KC12) = +KC12*<WC_SO2>*<WC_HNO4> - PTERMS(:,102,501) = +TPK%KC12(:)*PCONC(:,101)*PCONC(:,96) +!PTERMS(O3,K081) = -K081*<CARBO>*<O3> + PTERMS(:,1,81) = -TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(WC_NO2,KC13) = +KC13*<WC_HNO3> - PTERMS(:,91,502) = +TPK%KC13(:)*PCONC(:,95) +!PTERMS(CO,K081) = +0.64728*K081*<CARBO>*<O3> + PTERMS(:,13,81) = +0.64728*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(WC_HNO3,KC13) = -KC13*<WC_HNO3> - PTERMS(:,95,502) = -TPK%KC13(:)*PCONC(:,95) +!PTERMS(OH,K081) = +0.20595*K081*<CARBO>*<O3> + PTERMS(:,14,81) = +0.20595*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(WC_OH,KC13) = +KC13*<WC_HNO3> - PTERMS(:,98,502) = +TPK%KC13(:)*PCONC(:,95) +!PTERMS(HO2,K081) = +0.28441*K081*<CARBO>*<O3> + PTERMS(:,15,81) = +0.28441*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(WC_N2O5,KC14) = -KC14*<WC_N2O5> - PTERMS(:,93,503) = -TPK%KC14(:)*PCONC(:,93) +!PTERMS(HCHO,K081) = +0.00000*K081*<CARBO>*<O3> + PTERMS(:,22,81) = +0.00000*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(WC_HNO3,KC14) = +KC14*<WC_N2O5> - PTERMS(:,95,503) = +TPK%KC14(:)*PCONC(:,93) +!PTERMS(ALD,K081) = +0.15692*K081*<CARBO>*<O3> + PTERMS(:,23,81) = +0.15692*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(WC_NO3,KC15) = -KC15*<WC_H2SO4>*<WC_NO3> - PTERMS(:,92,504) = -TPK%KC15(:)*PCONC(:,102)*PCONC(:,92) +!PTERMS(CARBO,K081) = -K081*<CARBO>*<O3> + PTERMS(:,25,81) = -TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(WC_HNO3,KC15) = +KC15*<WC_H2SO4>*<WC_NO3> - PTERMS(:,95,504) = +TPK%KC15(:)*PCONC(:,102)*PCONC(:,92) +!PTERMS(OP2,K081) = +0.10149*K081*<CARBO>*<O3> + PTERMS(:,29,81) = +0.10149*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(WC_H2SO4,KC15) = -KC15*<WC_H2SO4>*<WC_NO3> - PTERMS(:,102,504) = -TPK%KC15(:)*PCONC(:,102)*PCONC(:,92) +!PTERMS(ORA1,K081) = +0.10788*K081*<CARBO>*<O3> + PTERMS(:,30,81) = +0.10788*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(WC_ASO4,KC15) = +KC15*<WC_H2SO4>*<WC_NO3> - PTERMS(:,121,504) = +TPK%KC15(:)*PCONC(:,102)*PCONC(:,92) +!PTERMS(ORA2,K081) = +0.20595*K081*<CARBO>*<O3> + PTERMS(:,31,81) = +0.20595*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(WC_NO3,KC16) = -KC16*<WC_SO2>*<WC_NO3> - PTERMS(:,92,505) = -TPK%KC16(:)*PCONC(:,101)*PCONC(:,92) +!PTERMS(CARBOP,K081) = +0.27460*K081*<CARBO>*<O3> + PTERMS(:,39,81) = +0.27460*TPK%K081(:)*PCONC(:,25)*PCONC(:,1) ! -!PTERMS(WC_HNO3,KC16) = +KC16*<WC_SO2>*<WC_NO3> - PTERMS(:,95,505) = +TPK%KC16(:)*PCONC(:,101)*PCONC(:,92) +!PTERMS(O3,K082) = -K082*<PAN>*<O3> + PTERMS(:,1,82) = -TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! -!PTERMS(WC_SO2,KC16) = -KC16*<WC_SO2>*<WC_NO3> - PTERMS(:,101,505) = -TPK%KC16(:)*PCONC(:,101)*PCONC(:,92) +!PTERMS(NO2,K082) = +0.70*K082*<PAN>*<O3> + PTERMS(:,4,82) = +0.70*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! -!PTERMS(WC_ASO3,KC16) = +KC16*<WC_SO2>*<WC_NO3> - PTERMS(:,120,505) = +TPK%KC16(:)*PCONC(:,101)*PCONC(:,92) +!PTERMS(CO,K082) = +0.13*K082*<PAN>*<O3> + PTERMS(:,13,82) = +0.13*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! -!PTERMS(WC_SO2,KC17) = -KC17*<WC_HCHO>*<WC_SO2> - PTERMS(:,101,506) = -TPK%KC17(:)*PCONC(:,108)*PCONC(:,101) +!PTERMS(OH,K082) = +0.036*K082*<PAN>*<O3> + PTERMS(:,14,82) = +0.036*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! -!PTERMS(WC_HCHO,KC17) = -KC17*<WC_HCHO>*<WC_SO2> - PTERMS(:,108,506) = -TPK%KC17(:)*PCONC(:,108)*PCONC(:,101) +!PTERMS(HO2,K082) = +0.08*K082*<PAN>*<O3> + PTERMS(:,15,82) = +0.08*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! -!PTERMS(WC_AHMS,KC17) = +KC17*<WC_HCHO>*<WC_SO2> - PTERMS(:,124,506) = +TPK%KC17(:)*PCONC(:,108)*PCONC(:,101) +!PTERMS(HCHO,K082) = +0.70*K082*<PAN>*<O3> + PTERMS(:,22,82) = +0.70*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! ! RETURN -END SUBROUTINE SUBT73 +END SUBROUTINE SUBT15 ! -SUBROUTINE SUBT74 +SUBROUTINE SUBT16 ! -!Indices 1481 a 1500 +!Indices 321 a 340 ! -!PTERMS(WC_SO2,KC18) = +KC18*<WC_AHMS> - PTERMS(:,101,507) = +TPK%KC18(:)*PCONC(:,124) +!PTERMS(PAN,K082) = -K082*<PAN>*<O3> + PTERMS(:,27,82) = -TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! -!PTERMS(WC_HCHO,KC18) = +KC18*<WC_AHMS> - PTERMS(:,108,507) = +TPK%KC18(:)*PCONC(:,124) +!PTERMS(ORA1,K082) = +0.11*K082*<PAN>*<O3> + PTERMS(:,30,82) = +0.11*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! -!PTERMS(WC_AHMS,KC18) = -KC18*<WC_AHMS> - PTERMS(:,124,507) = -TPK%KC18(:)*PCONC(:,124) +!PTERMS(CARBOP,K082) = +0.70000*K082*<PAN>*<O3> + PTERMS(:,39,82) = +0.70000*TPK%K082(:)*PCONC(:,27)*PCONC(:,1) ! -!PTERMS(WC_OH,KC19) = -KC19*<WC_OH>*<WC_AHMS> - PTERMS(:,98,508) = -TPK%KC19(:)*PCONC(:,98)*PCONC(:,124) +!PTERMS(NO2,K083) = -K083*<PHO>*<NO2> + PTERMS(:,4,83) = -TPK%K083(:)*PCONC(:,36)*PCONC(:,4) ! -!PTERMS(WC_HO2,KC19) = +KC19*<WC_OH>*<WC_AHMS> - PTERMS(:,99,508) = +TPK%KC19(:)*PCONC(:,98)*PCONC(:,124) +!PTERMS(ARO,K083) = +0.10670*K083*<PHO>*<NO2> + PTERMS(:,21,83) = +0.10670*TPK%K083(:)*PCONC(:,36)*PCONC(:,4) ! -!PTERMS(WC_SO2,KC19) = +KC19*<WC_OH>*<WC_AHMS> - PTERMS(:,101,508) = +TPK%KC19(:)*PCONC(:,98)*PCONC(:,124) +!PTERMS(ONIT,K083) = +K083*<PHO>*<NO2> + PTERMS(:,26,83) = +TPK%K083(:)*PCONC(:,36)*PCONC(:,4) ! -!PTERMS(WC_ORA1,KC19) = +KC19*<WC_OH>*<WC_AHMS> - PTERMS(:,113,508) = +TPK%KC19(:)*PCONC(:,98)*PCONC(:,124) +!PTERMS(PHO,K083) = -K083*<PHO>*<NO2> + PTERMS(:,36,83) = -TPK%K083(:)*PCONC(:,36)*PCONC(:,4) ! -!PTERMS(WC_AHMS,KC19) = -KC19*<WC_OH>*<WC_AHMS> - PTERMS(:,124,508) = -TPK%KC19(:)*PCONC(:,98)*PCONC(:,124) +!PTERMS(HO2,K084) = -K084*<PHO>*<HO2> + PTERMS(:,15,84) = -TPK%K084(:)*PCONC(:,36)*PCONC(:,15) ! -!PTERMS(WC_ASO3,KC20) = -KC20*<W_O2>*<WC_ASO3> - PTERMS(:,120,509) = -TPK%KC20(:)*TPK%W_O2(:)*PCONC(:,120) +!PTERMS(ARO,K084) = +1.06698*K084*<PHO>*<HO2> + PTERMS(:,21,84) = +1.06698*TPK%K084(:)*PCONC(:,36)*PCONC(:,15) ! -!PTERMS(WC_ASO5,KC20) = +KC20*<W_O2>*<WC_ASO3> - PTERMS(:,122,509) = +TPK%KC20(:)*TPK%W_O2(:)*PCONC(:,120) +!PTERMS(PHO,K084) = -K084*<PHO>*<HO2> + PTERMS(:,36,84) = -TPK%K084(:)*PCONC(:,36)*PCONC(:,15) ! -!PTERMS(WC_HO2,KC21) = -KC21*<WC_HO2>*<WC_ASO5> - PTERMS(:,99,510) = -TPK%KC21(:)*PCONC(:,99)*PCONC(:,122) +!PTERMS(NO2,K085) = -K085*<ADD>*<NO2> + PTERMS(:,4,85) = -TPK%K085(:)*PCONC(:,37)*PCONC(:,4) ! -!PTERMS(WC_ASO5,KC21) = -KC21*<WC_HO2>*<WC_ASO5> - PTERMS(:,122,510) = -TPK%KC21(:)*PCONC(:,99)*PCONC(:,122) +!PTERMS(HONO,K085) = +K085*<ADD>*<NO2> + PTERMS(:,7,85) = +TPK%K085(:)*PCONC(:,37)*PCONC(:,4) ! -!PTERMS(WC_AHSO5,KC21) = +KC21*<WC_HO2>*<WC_ASO5> - PTERMS(:,123,510) = +TPK%KC21(:)*PCONC(:,99)*PCONC(:,122) +!PTERMS(ARO,K085) = +K085*<ADD>*<NO2> + PTERMS(:,21,85) = +TPK%K085(:)*PCONC(:,37)*PCONC(:,4) ! -!PTERMS(WC_ASO4,KC22) = +KC22*<WC_ASO5>*<WC_ASO5> - PTERMS(:,121,511) = +TPK%KC22(:)*PCONC(:,122)*PCONC(:,122) +!PTERMS(ADD,K085) = -K085*<ADD>*<NO2> + PTERMS(:,37,85) = -TPK%K085(:)*PCONC(:,37)*PCONC(:,4) ! -!PTERMS(WC_ASO5,KC22) = -KC22*<WC_ASO5>*<WC_ASO5> - PTERMS(:,122,511) = -TPK%KC22(:)*PCONC(:,122)*PCONC(:,122) +!PTERMS(HO2,K086) = +0.02*K086*<ADD>*<O2> + PTERMS(:,15,86) = +0.02*TPK%K086(:)*PCONC(:,37)*TPK%O2(:) ! -!PTERMS(WC_SO2,KC23) = -KC23*<WC_SO2>*<WC_AHSO5> - PTERMS(:,101,512) = -TPK%KC23(:)*PCONC(:,101)*PCONC(:,123) +!PTERMS(ARO,K086) = +0.02*K086*<ADD>*<O2> + PTERMS(:,21,86) = +0.02*TPK%K086(:)*PCONC(:,37)*TPK%O2(:) ! -!PTERMS(WC_H2SO4,KC23) = +2.00*KC23*<WC_SO2>*<WC_AHSO5> - PTERMS(:,102,512) = +2.00*TPK%KC23(:)*PCONC(:,101)*PCONC(:,123) +!PTERMS(ADD,K086) = -K086*<ADD>*<O2> + PTERMS(:,37,86) = -TPK%K086(:)*PCONC(:,37)*TPK%O2(:) ! -!PTERMS(WC_AHSO5,KC23) = -KC23*<WC_SO2>*<WC_AHSO5> - PTERMS(:,123,512) = -TPK%KC23(:)*PCONC(:,101)*PCONC(:,123) +!PTERMS(AROP,K086) = +0.98*K086*<ADD>*<O2> + PTERMS(:,38,86) = +0.98*TPK%K086(:)*PCONC(:,37)*TPK%O2(:) ! -!PTERMS(WC_OH,KC24) = +KC24*<WC_ASO4> - PTERMS(:,98,513) = +TPK%KC24(:)*PCONC(:,121) +!PTERMS(O3,K087) = -K087*<ADD>*<O3> + PTERMS(:,1,87) = -TPK%K087(:)*PCONC(:,37)*PCONC(:,1) ! -!PTERMS(WC_H2SO4,KC24) = +KC24*<WC_ASO4> - PTERMS(:,102,513) = +TPK%KC24(:)*PCONC(:,121) +!PTERMS(OH,K087) = +K087*<ADD>*<O3> + PTERMS(:,14,87) = +TPK%K087(:)*PCONC(:,37)*PCONC(:,1) ! ! RETURN -END SUBROUTINE SUBT74 +END SUBROUTINE SUBT16 ! -SUBROUTINE SUBT75 +SUBROUTINE SUBT17 ! -!Indices 1501 a 1520 +!Indices 341 a 360 ! -!PTERMS(WC_ASO4,KC24) = -KC24*<WC_ASO4> - PTERMS(:,121,513) = -TPK%KC24(:)*PCONC(:,121) +!PTERMS(ARO,K087) = +K087*<ADD>*<O3> + PTERMS(:,21,87) = +TPK%K087(:)*PCONC(:,37)*PCONC(:,1) ! -!PTERMS(WC_O3,KC25) = -KC25*<WC_O3>*<WC_SO2> - PTERMS(:,88,514) = -TPK%KC25(:)*PCONC(:,88)*PCONC(:,101) +!PTERMS(ADD,K087) = -K087*<ADD>*<O3> + PTERMS(:,37,87) = -TPK%K087(:)*PCONC(:,37)*PCONC(:,1) ! -!PTERMS(WC_SO2,KC25) = -KC25*<WC_O3>*<WC_SO2> - PTERMS(:,101,514) = -TPK%KC25(:)*PCONC(:,88)*PCONC(:,101) +!PTERMS(NO2,K088) = -K088*<CARBOP>*<NO2> + PTERMS(:,4,88) = -TPK%K088(:)*PCONC(:,39)*PCONC(:,4) ! -!PTERMS(WC_H2SO4,KC25) = +KC25*<WC_O3>*<WC_SO2> - PTERMS(:,102,514) = +TPK%KC25(:)*PCONC(:,88)*PCONC(:,101) +!PTERMS(PAN,K088) = +1.00000*K088*<CARBOP>*<NO2> + PTERMS(:,27,88) = +1.00000*TPK%K088(:)*PCONC(:,39)*PCONC(:,4) ! -!PTERMS(WC_H2O2,KC26) = -KC26*<WC_H2O2>*<WC_SO2> - PTERMS(:,89,515) = -TPK%KC26(:)*PCONC(:,89)*PCONC(:,101) +!PTERMS(CARBOP,K088) = -K088*<CARBOP>*<NO2> + PTERMS(:,39,88) = -TPK%K088(:)*PCONC(:,39)*PCONC(:,4) ! -!PTERMS(WC_SO2,KC26) = -KC26*<WC_H2O2>*<WC_SO2> - PTERMS(:,101,515) = -TPK%KC26(:)*PCONC(:,89)*PCONC(:,101) +!PTERMS(NO2,K089) = +K089*<PAN> + PTERMS(:,4,89) = +TPK%K089(:)*PCONC(:,27) ! -!PTERMS(WC_H2SO4,KC26) = +KC26*<WC_H2O2>*<WC_SO2> - PTERMS(:,102,515) = +TPK%KC26(:)*PCONC(:,89)*PCONC(:,101) +!PTERMS(PAN,K089) = -K089*<PAN> + PTERMS(:,27,89) = -TPK%K089(:)*PCONC(:,27) ! -!PTERMS(WC_HO2,KC27) = +2.00*KC27*<WC_RO21>*<WC_RO21> - PTERMS(:,99,516) = +2.00*TPK%KC27(:)*PCONC(:,103)*PCONC(:,103) +!PTERMS(CARBOP,K089) = +1.00000*K089*<PAN> + PTERMS(:,39,89) = +1.00000*TPK%K089(:)*PCONC(:,27) ! -!PTERMS(WC_RO21,KC27) = -KC27*<WC_RO21>*<WC_RO21> - PTERMS(:,103,516) = -TPK%KC27(:)*PCONC(:,103)*PCONC(:,103) +!PTERMS(NO,K090) = -K090*<MO2>*<NO> + PTERMS(:,3,90) = -TPK%K090(:)*PCONC(:,32)*PCONC(:,3) ! -!PTERMS(WC_HCHO,KC27) = +2.00*KC27*<WC_RO21>*<WC_RO21> - PTERMS(:,108,516) = +2.00*TPK%KC27(:)*PCONC(:,103)*PCONC(:,103) +!PTERMS(NO2,K090) = +K090*<MO2>*<NO> + PTERMS(:,4,90) = +TPK%K090(:)*PCONC(:,32)*PCONC(:,3) ! -!PTERMS(WC_SO2,KC28) = -KC28*<WC_SO2>*<WC_RO21> - PTERMS(:,101,517) = -TPK%KC28(:)*PCONC(:,101)*PCONC(:,103) +!PTERMS(HO2,K090) = +K090*<MO2>*<NO> + PTERMS(:,15,90) = +TPK%K090(:)*PCONC(:,32)*PCONC(:,3) ! -!PTERMS(WC_RO21,KC28) = -KC28*<WC_SO2>*<WC_RO21> - PTERMS(:,103,517) = -TPK%KC28(:)*PCONC(:,101)*PCONC(:,103) +!PTERMS(HCHO,K090) = +K090*<MO2>*<NO> + PTERMS(:,22,90) = +TPK%K090(:)*PCONC(:,32)*PCONC(:,3) ! -!PTERMS(WC_HCHO,KC28) = +KC28*<WC_SO2>*<WC_RO21> - PTERMS(:,108,517) = +TPK%KC28(:)*PCONC(:,101)*PCONC(:,103) +!PTERMS(MO2,K090) = -K090*<MO2>*<NO> + PTERMS(:,32,90) = -TPK%K090(:)*PCONC(:,32)*PCONC(:,3) ! -!PTERMS(WC_ASO3,KC28) = +KC28*<WC_SO2>*<WC_RO21> - PTERMS(:,120,517) = +TPK%KC28(:)*PCONC(:,101)*PCONC(:,103) +!PTERMS(NO,K091) = -K091*<ALKAP>*<NO> + PTERMS(:,3,91) = -TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(WC_H2O2,KC29) = +KC29*<WC_RO25>*<WC_RO25> - PTERMS(:,89,518) = +TPK%KC29(:)*PCONC(:,104)*PCONC(:,104) +!PTERMS(NO2,K091) = +0.91541*K091*<ALKAP>*<NO> + PTERMS(:,4,91) = +0.91541*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(WC_HO2,KC29) = +KC29*<WC_RO25>*<WC_RO25> - PTERMS(:,99,518) = +TPK%KC29(:)*PCONC(:,104)*PCONC(:,104) +!PTERMS(HO2,K091) = +0.74265*K091*<ALKAP>*<NO> + PTERMS(:,15,91) = +0.74265*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(WC_RO25,KC29) = -KC29*<WC_RO25>*<WC_RO25> - PTERMS(:,104,518) = -TPK%KC29(:)*PCONC(:,104)*PCONC(:,104) +!PTERMS(HCHO,K091) = +0.03002*K091*<ALKAP>*<NO> + PTERMS(:,22,91) = +0.03002*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(WC_ALD2,KC29) = +KC29*<WC_RO25>*<WC_RO25> - PTERMS(:,109,518) = +TPK%KC29(:)*PCONC(:,104)*PCONC(:,104) +!PTERMS(ALD,K091) = +0.33144*K091*<ALKAP>*<NO> + PTERMS(:,23,91) = +0.33144*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(WC_ORA2,KC29) = +KC29*<WC_RO25>*<WC_RO25> - PTERMS(:,114,518) = +TPK%KC29(:)*PCONC(:,104)*PCONC(:,104) +!PTERMS(KET,K091) = +0.54531*K091*<ALKAP>*<NO> + PTERMS(:,24,91) = +0.54531*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(WC_OH,KC30) = -KC30*<WC_OH>*<WC_MEOH> - PTERMS(:,98,519) = -TPK%KC30(:)*PCONC(:,98)*PCONC(:,105) +!PTERMS(CARBO,K091) = +0.03407*K091*<ALKAP>*<NO> + PTERMS(:,25,91) = +0.03407*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! ! RETURN -END SUBROUTINE SUBT75 +END SUBROUTINE SUBT17 ! -SUBROUTINE SUBT76 +SUBROUTINE SUBT18 ! -!Indices 1521 a 1540 +!Indices 361 a 380 ! -!PTERMS(WC_HO2,KC30) = +KC30*<WC_OH>*<WC_MEOH> - PTERMS(:,99,519) = +TPK%KC30(:)*PCONC(:,98)*PCONC(:,105) +!PTERMS(ONIT,K091) = +0.08459*K091*<ALKAP>*<NO> + PTERMS(:,26,91) = +0.08459*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(WC_MEOH,KC30) = -KC30*<WC_OH>*<WC_MEOH> - PTERMS(:,105,519) = -TPK%KC30(:)*PCONC(:,98)*PCONC(:,105) +!PTERMS(MO2,K091) = +0.09016*K091*<ALKAP>*<NO> + PTERMS(:,32,91) = +0.09016*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(WC_HCHO,KC30) = +KC30*<WC_OH>*<WC_MEOH> - PTERMS(:,108,519) = +TPK%KC30(:)*PCONC(:,98)*PCONC(:,105) +!PTERMS(ALKAP,K091) = -K091*<ALKAP>*<NO> + PTERMS(:,33,91) = -TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(WC_OH,KC31) = -KC31*<WC_OH>*<WC_ETOH> - PTERMS(:,98,520) = -TPK%KC31(:)*PCONC(:,98)*PCONC(:,106) +!PTERMS(XO2,K091) = +0.13007*K091*<ALKAP>*<NO> + PTERMS(:,41,91) = +0.13007*TPK%K091(:)*PCONC(:,33)*PCONC(:,3) ! -!PTERMS(WC_HO2,KC31) = +KC31*<WC_OH>*<WC_ETOH> - PTERMS(:,99,520) = +TPK%KC31(:)*PCONC(:,98)*PCONC(:,106) +!PTERMS(NO,K092) = -K092*<ALKEP>*<NO> + PTERMS(:,3,92) = -TPK%K092(:)*PCONC(:,34)*PCONC(:,3) ! -!PTERMS(WC_ETOH,KC31) = -KC31*<WC_OH>*<WC_ETOH> - PTERMS(:,106,520) = -TPK%KC31(:)*PCONC(:,98)*PCONC(:,106) +!PTERMS(NO2,K092) = +K092*<ALKEP>*<NO> + PTERMS(:,4,92) = +TPK%K092(:)*PCONC(:,34)*PCONC(:,3) ! -!PTERMS(WC_ALD2,KC31) = +KC31*<WC_OH>*<WC_ETOH> - PTERMS(:,109,520) = +TPK%KC31(:)*PCONC(:,98)*PCONC(:,106) +!PTERMS(HO2,K092) = +K092*<ALKEP>*<NO> + PTERMS(:,15,92) = +TPK%K092(:)*PCONC(:,34)*PCONC(:,3) ! -!PTERMS(WC_OH,KC32) = -KC32*<WC_OH>*<WC_ALCH> - PTERMS(:,98,521) = -TPK%KC32(:)*PCONC(:,98)*PCONC(:,107) +!PTERMS(HCHO,K092) = +1.39870*K092*<ALKEP>*<NO> + PTERMS(:,22,92) = +1.39870*TPK%K092(:)*PCONC(:,34)*PCONC(:,3) ! -!PTERMS(WC_HO2,KC32) = +KC32*<WC_OH>*<WC_ALCH> - PTERMS(:,99,521) = +TPK%KC32(:)*PCONC(:,98)*PCONC(:,107) +!PTERMS(ALD,K092) = +0.42125*K092*<ALKEP>*<NO> + PTERMS(:,23,92) = +0.42125*TPK%K092(:)*PCONC(:,34)*PCONC(:,3) ! -!PTERMS(WC_ALCH,KC32) = -KC32*<WC_OH>*<WC_ALCH> - PTERMS(:,107,521) = -TPK%KC32(:)*PCONC(:,98)*PCONC(:,107) +!PTERMS(KET,K092) = +0.05220*K092*<ALKEP>*<NO> + PTERMS(:,24,92) = +0.05220*TPK%K092(:)*PCONC(:,34)*PCONC(:,3) ! -!PTERMS(WC_ALD2,KC32) = +0.50*KC32*<WC_OH>*<WC_ALCH> - PTERMS(:,109,521) = +0.50*TPK%KC32(:)*PCONC(:,98)*PCONC(:,107) +!PTERMS(ALKEP,K092) = -K092*<ALKEP>*<NO> + PTERMS(:,34,92) = -TPK%K092(:)*PCONC(:,34)*PCONC(:,3) ! -!PTERMS(WC_KETL,KC32) = +0.50*KC32*<WC_OH>*<WC_ALCH> - PTERMS(:,112,521) = +0.50*TPK%KC32(:)*PCONC(:,98)*PCONC(:,107) +!PTERMS(NO,K093) = -K093*<BIOP>*<NO> + PTERMS(:,3,93) = -TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(WC_OH,KC33) = -KC33*<WC_OH>*<WC_HCHO> - PTERMS(:,98,522) = -TPK%KC33(:)*PCONC(:,98)*PCONC(:,108) +!PTERMS(NO2,K093) = +0.84700*K093*<BIOP>*<NO> + PTERMS(:,4,93) = +0.84700*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(WC_HO2,KC33) = +KC33*<WC_OH>*<WC_HCHO> - PTERMS(:,99,522) = +TPK%KC33(:)*PCONC(:,98)*PCONC(:,108) +!PTERMS(HO2,K093) = +0.84700*K093*<BIOP>*<NO> + PTERMS(:,15,93) = +0.84700*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(WC_HCHO,KC33) = -KC33*<WC_OH>*<WC_HCHO> - PTERMS(:,108,522) = -TPK%KC33(:)*PCONC(:,98)*PCONC(:,108) +!PTERMS(ALKE,K093) = +0.37815*K093*<BIOP>*<NO> + PTERMS(:,19,93) = +0.37815*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(WC_ORA1,KC33) = +KC33*<WC_OH>*<WC_HCHO> - PTERMS(:,113,522) = +TPK%KC33(:)*PCONC(:,98)*PCONC(:,108) +!PTERMS(HCHO,K093) = +0.60600*K093*<BIOP>*<NO> + PTERMS(:,22,93) = +0.60600*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(WC_OH,KC34) = -KC34*<WC_OH>*<WC_ALD2> - PTERMS(:,98,523) = -TPK%KC34(:)*PCONC(:,98)*PCONC(:,109) +!PTERMS(ALD,K093) = +0.00000*K093*<BIOP>*<NO> + PTERMS(:,23,93) = +0.00000*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(WC_CO2,KC34) = +KC34*<WC_OH>*<WC_ALD2> - PTERMS(:,100,523) = +TPK%KC34(:)*PCONC(:,98)*PCONC(:,109) +!PTERMS(KET,K093) = +0.00000*K093*<BIOP>*<NO> + PTERMS(:,24,93) = +0.00000*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(WC_RO21,KC34) = +0.50*KC34*<WC_OH>*<WC_ALD2> - PTERMS(:,103,523) = +0.50*TPK%KC34(:)*PCONC(:,98)*PCONC(:,109) +!PTERMS(CARBO,K093) = +0.45463*K093*<BIOP>*<NO> + PTERMS(:,25,93) = +0.45463*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(WC_RO25,KC34) = +0.50*KC34*<WC_OH>*<WC_ALD2> - PTERMS(:,104,523) = +0.50*TPK%KC34(:)*PCONC(:,98)*PCONC(:,109) +!PTERMS(ONIT,K093) = +0.15300*K093*<BIOP>*<NO> + PTERMS(:,26,93) = +0.15300*TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! ! RETURN -END SUBROUTINE SUBT76 +END SUBROUTINE SUBT18 ! -SUBROUTINE SUBT77 +SUBROUTINE SUBT19 ! -!Indices 1541 a 1560 +!Indices 381 a 400 ! -!PTERMS(WC_ALD2,KC34) = -KC34*<WC_OH>*<WC_ALD2> - PTERMS(:,109,523) = -TPK%KC34(:)*PCONC(:,98)*PCONC(:,109) +!PTERMS(BIOP,K093) = -K093*<BIOP>*<NO> + PTERMS(:,35,93) = -TPK%K093(:)*PCONC(:,35)*PCONC(:,3) ! -!PTERMS(WC_OH,KC35) = -KC35*<WC_OH>*<WC_GLY> - PTERMS(:,98,524) = -TPK%KC35(:)*PCONC(:,98)*PCONC(:,110) +!PTERMS(NO,K094) = -K094*<AROP>*<NO> + PTERMS(:,3,94) = -TPK%K094(:)*PCONC(:,38)*PCONC(:,3) ! -!PTERMS(WC_HO2,KC35) = +KC35*<WC_OH>*<WC_GLY> - PTERMS(:,99,524) = +TPK%KC35(:)*PCONC(:,98)*PCONC(:,110) +!PTERMS(NO2,K094) = +0.95115*K094*<AROP>*<NO> + PTERMS(:,4,94) = +0.95115*TPK%K094(:)*PCONC(:,38)*PCONC(:,3) ! -!PTERMS(WC_GLY,KC35) = -KC35*<WC_OH>*<WC_GLY> - PTERMS(:,110,524) = -TPK%KC35(:)*PCONC(:,98)*PCONC(:,110) +!PTERMS(HO2,K094) = +0.95115*K094*<AROP>*<NO> + PTERMS(:,15,94) = +0.95115*TPK%K094(:)*PCONC(:,38)*PCONC(:,3) ! -!PTERMS(WC_RP16,KC35) = +KC35*<WC_OH>*<WC_GLY> - PTERMS(:,116,524) = +TPK%KC35(:)*PCONC(:,98)*PCONC(:,110) +!PTERMS(CARBO,K094) = +2.06993*K094*<AROP>*<NO> + PTERMS(:,25,94) = +2.06993*TPK%K094(:)*PCONC(:,38)*PCONC(:,3) ! -!PTERMS(WC_OH,KC36) = -KC36*<WC_OH>*<WC_MGLY> - PTERMS(:,98,525) = -TPK%KC36(:)*PCONC(:,98)*PCONC(:,111) +!PTERMS(ONIT,K094) = +0.04885*K094*<AROP>*<NO> + PTERMS(:,26,94) = +0.04885*TPK%K094(:)*PCONC(:,38)*PCONC(:,3) ! -!PTERMS(WC_HO2,KC36) = +KC36*<WC_OH>*<WC_MGLY> - PTERMS(:,99,525) = +TPK%KC36(:)*PCONC(:,98)*PCONC(:,111) +!PTERMS(AROP,K094) = -K094*<AROP>*<NO> + PTERMS(:,38,94) = -TPK%K094(:)*PCONC(:,38)*PCONC(:,3) ! -!PTERMS(WC_MGLY,KC36) = -KC36*<WC_OH>*<WC_MGLY> - PTERMS(:,111,525) = -TPK%KC36(:)*PCONC(:,98)*PCONC(:,111) +!PTERMS(NO,K095) = -K095*<CARBOP>*<NO> + PTERMS(:,3,95) = -TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(WC_UR21,KC36) = +KC36*<WC_OH>*<WC_MGLY> - PTERMS(:,117,525) = +TPK%KC36(:)*PCONC(:,98)*PCONC(:,111) +!PTERMS(NO2,K095) = +K095*<CARBOP>*<NO> + PTERMS(:,4,95) = +TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(WC_H2O2,KC37) = +KC37*<WC_OH>*<WC_KETL> - PTERMS(:,89,526) = +TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) +!PTERMS(HO2,K095) = +0.12334*K095*<CARBOP>*<NO> + PTERMS(:,15,95) = +0.12334*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(WC_OH,KC37) = -KC37*<WC_OH>*<WC_KETL> - PTERMS(:,98,526) = -TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) +!PTERMS(HCHO,K095) = +0.05848*K095*<CARBOP>*<NO> + PTERMS(:,22,95) = +0.05848*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(WC_HO2,KC37) = +KC37*<WC_OH>*<WC_KETL> - PTERMS(:,99,526) = +TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) +!PTERMS(ALD,K095) = +0.07368*K095*<CARBOP>*<NO> + PTERMS(:,23,95) = +0.07368*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(WC_CO2,KC37) = +KC37*<WC_OH>*<WC_KETL> - PTERMS(:,100,526) = +TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) +!PTERMS(CARBO,K095) = +0.08670*K095*<CARBOP>*<NO> + PTERMS(:,25,95) = +0.08670*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(WC_RO21,KC37) = +KC37*<WC_OH>*<WC_KETL> - PTERMS(:,103,526) = +TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) +!PTERMS(MO2,K095) = +0.78134*K095*<CARBOP>*<NO> + PTERMS(:,32,95) = +0.78134*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(WC_HCHO,KC37) = +KC37*<WC_OH>*<WC_KETL> - PTERMS(:,108,526) = +TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) +!PTERMS(CARBOP,K095) = -K095*<CARBOP>*<NO> + PTERMS(:,39,95) = -TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(WC_ALD2,KC37) = +KC37*<WC_OH>*<WC_KETL> - PTERMS(:,109,526) = +TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) +!PTERMS(XO2,K095) = +0.02563*K095*<CARBOP>*<NO> + PTERMS(:,41,95) = +0.02563*TPK%K095(:)*PCONC(:,39)*PCONC(:,3) ! -!PTERMS(WC_MGLY,KC37) = +KC37*<WC_OH>*<WC_KETL> - PTERMS(:,111,526) = +TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) +!PTERMS(NO,K096) = -K096*<OLN>*<NO> + PTERMS(:,3,96) = -TPK%K096(:)*PCONC(:,40)*PCONC(:,3) ! -!PTERMS(WC_KETL,KC37) = -KC37*<WC_OH>*<WC_KETL> - PTERMS(:,112,526) = -TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) +!PTERMS(NO2,K096) = +1.81599*K096*<OLN>*<NO> + PTERMS(:,4,96) = +1.81599*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) ! -!PTERMS(WC_UR21,KC37) = +KC37*<WC_OH>*<WC_KETL> - PTERMS(:,117,526) = +TPK%KC37(:)*PCONC(:,98)*PCONC(:,112) +!PTERMS(HO2,K096) = +0.18401*K096*<OLN>*<NO> + PTERMS(:,15,96) = +0.18401*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) ! -!PTERMS(WC_OH,KC38) = -KC38*<WC_OH>*<WC_ORA1> - PTERMS(:,98,527) = -TPK%KC38(:)*PCONC(:,98)*PCONC(:,113) +!PTERMS(HCHO,K096) = +0.23419*K096*<OLN>*<NO> + PTERMS(:,22,96) = +0.23419*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) ! ! RETURN -END SUBROUTINE SUBT77 +END SUBROUTINE SUBT19 ! -SUBROUTINE SUBT78 +SUBROUTINE SUBT20 ! -!Indices 1561 a 1580 +!Indices 401 a 420 ! -!PTERMS(WC_HO2,KC38) = +KC38*<WC_OH>*<WC_ORA1> - PTERMS(:,99,527) = +TPK%KC38(:)*PCONC(:,98)*PCONC(:,113) +!PTERMS(ALD,K096) = +1.01182*K096*<OLN>*<NO> + PTERMS(:,23,96) = +1.01182*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) ! -!PTERMS(WC_CO2,KC38) = +KC38*<WC_OH>*<WC_ORA1> - PTERMS(:,100,527) = +TPK%KC38(:)*PCONC(:,98)*PCONC(:,113) +!PTERMS(KET,K096) = +0.37862*K096*<OLN>*<NO> + PTERMS(:,24,96) = +0.37862*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) ! -!PTERMS(WC_ORA1,KC38) = -KC38*<WC_OH>*<WC_ORA1> - PTERMS(:,113,527) = -TPK%KC38(:)*PCONC(:,98)*PCONC(:,113) +!PTERMS(ONIT,K096) = +0.18401*K096*<OLN>*<NO> + PTERMS(:,26,96) = +0.18401*TPK%K096(:)*PCONC(:,40)*PCONC(:,3) ! -!PTERMS(WC_H2O2,KC39) = +0.5*KC39*<WC_OH>*<WC_ORA2> - PTERMS(:,89,528) = +0.5*TPK%KC39(:)*PCONC(:,98)*PCONC(:,114) +!PTERMS(OLN,K096) = -K096*<OLN>*<NO> + PTERMS(:,40,96) = -TPK%K096(:)*PCONC(:,40)*PCONC(:,3) ! -!PTERMS(WC_OH,KC39) = -KC39*<WC_OH>*<WC_ORA2> - PTERMS(:,98,528) = -TPK%KC39(:)*PCONC(:,98)*PCONC(:,114) +!PTERMS(HO2,K097) = -K097*<MO2>*<HO2> + PTERMS(:,15,97) = -TPK%K097(:)*PCONC(:,32)*PCONC(:,15) ! -!PTERMS(WC_ORA2,KC39) = -KC39*<WC_OH>*<WC_ORA2> - PTERMS(:,114,528) = -TPK%KC39(:)*PCONC(:,98)*PCONC(:,114) +!PTERMS(OP1,K097) = +K097*<MO2>*<HO2> + PTERMS(:,28,97) = +TPK%K097(:)*PCONC(:,32)*PCONC(:,15) ! -!PTERMS(WC_RP16,KC39) = +KC39*<WC_OH>*<WC_ORA2> - PTERMS(:,116,528) = +TPK%KC39(:)*PCONC(:,98)*PCONC(:,114) +!PTERMS(MO2,K097) = -K097*<MO2>*<HO2> + PTERMS(:,32,97) = -TPK%K097(:)*PCONC(:,32)*PCONC(:,15) ! -!PTERMS(WC_OH,KC40) = -KC40*<WC_OH>*<WC_ACID> - PTERMS(:,98,529) = -TPK%KC40(:)*PCONC(:,98)*PCONC(:,115) +!PTERMS(HO2,K098) = -K098*<ALKAP>*<HO2> + PTERMS(:,15,98) = -TPK%K098(:)*PCONC(:,33)*PCONC(:,15) ! -!PTERMS(WC_CO2,KC40) = +KC40*<WC_OH>*<WC_ACID> - PTERMS(:,100,529) = +TPK%KC40(:)*PCONC(:,98)*PCONC(:,115) +!PTERMS(OP2,K098) = +1.00524*K098*<ALKAP>*<HO2> + PTERMS(:,29,98) = +1.00524*TPK%K098(:)*PCONC(:,33)*PCONC(:,15) ! -!PTERMS(WC_RO25,KC40) = +KC40*<WC_OH>*<WC_ACID> - PTERMS(:,104,529) = +TPK%KC40(:)*PCONC(:,98)*PCONC(:,115) +!PTERMS(ALKAP,K098) = -K098*<ALKAP>*<HO2> + PTERMS(:,33,98) = -TPK%K098(:)*PCONC(:,33)*PCONC(:,15) ! -!PTERMS(WC_ACID,KC40) = -KC40*<WC_OH>*<WC_ACID> - PTERMS(:,115,529) = -TPK%KC40(:)*PCONC(:,98)*PCONC(:,115) +!PTERMS(HO2,K099) = -K099*<ALKEP>*<HO2> + PTERMS(:,15,99) = -TPK%K099(:)*PCONC(:,34)*PCONC(:,15) ! -!PTERMS(WC_H2O2,KC41) = +0.29*KC41*<WC_OH>*<WC_ACID> - PTERMS(:,89,530) = +0.29*TPK%KC41(:)*PCONC(:,98)*PCONC(:,115) +!PTERMS(OP2,K099) = +1.00524*K099*<ALKEP>*<HO2> + PTERMS(:,29,99) = +1.00524*TPK%K099(:)*PCONC(:,34)*PCONC(:,15) ! -!PTERMS(WC_OH,KC41) = -KC41*<WC_OH>*<WC_ACID> - PTERMS(:,98,530) = -TPK%KC41(:)*PCONC(:,98)*PCONC(:,115) +!PTERMS(ALKEP,K099) = -K099*<ALKEP>*<HO2> + PTERMS(:,34,99) = -TPK%K099(:)*PCONC(:,34)*PCONC(:,15) ! -!PTERMS(WC_HO2,KC41) = +0.11*KC41*<WC_OH>*<WC_ACID> - PTERMS(:,99,530) = +0.11*TPK%KC41(:)*PCONC(:,98)*PCONC(:,115) +!PTERMS(HO2,K0100) = -K0100*<BIOP>*<HO2> + PTERMS(:,15,100) = -TPK%K0100(:)*PCONC(:,35)*PCONC(:,15) ! -!PTERMS(WC_ALD2,KC41) = +0.29*KC41*<WC_OH>*<WC_ACID> - PTERMS(:,109,530) = +0.29*TPK%KC41(:)*PCONC(:,98)*PCONC(:,115) +!PTERMS(OP2,K0100) = +1.00524*K0100*<BIOP>*<HO2> + PTERMS(:,29,100) = +1.00524*TPK%K0100(:)*PCONC(:,35)*PCONC(:,15) ! -!PTERMS(WC_ACID,KC41) = -KC41*<WC_OH>*<WC_ACID> - PTERMS(:,115,530) = -TPK%KC41(:)*PCONC(:,98)*PCONC(:,115) +!PTERMS(BIOP,K0100) = -K0100*<BIOP>*<HO2> + PTERMS(:,35,100) = -TPK%K0100(:)*PCONC(:,35)*PCONC(:,15) ! -!PTERMS(WC_UR21,KC41) = +0.56*KC41*<WC_OH>*<WC_ACID> - PTERMS(:,117,530) = +0.56*TPK%KC41(:)*PCONC(:,98)*PCONC(:,115) +!PTERMS(HO2,K0101) = -K0101*<AROP>*<HO2> + PTERMS(:,15,101) = -TPK%K0101(:)*PCONC(:,38)*PCONC(:,15) ! -!PTERMS(WC_ACID2,KC41) = +0.15*KC41*<WC_OH>*<WC_ACID> - PTERMS(:,119,530) = +0.15*TPK%KC41(:)*PCONC(:,98)*PCONC(:,115) +!PTERMS(OP2,K0101) = +1.00524*K0101*<AROP>*<HO2> + PTERMS(:,29,101) = +1.00524*TPK%K0101(:)*PCONC(:,38)*PCONC(:,15) ! -!PTERMS(WC_OH,KC42) = -KC42*<WC_OH>*<WC_UR28> - PTERMS(:,98,531) = -TPK%KC42(:)*PCONC(:,98)*PCONC(:,118) +!PTERMS(AROP,K0101) = -K0101*<AROP>*<HO2> + PTERMS(:,38,101) = -TPK%K0101(:)*PCONC(:,38)*PCONC(:,15) ! -!PTERMS(WC_HO2,KC42) = +KC42*<WC_OH>*<WC_UR28> - PTERMS(:,99,531) = +TPK%KC42(:)*PCONC(:,98)*PCONC(:,118) +!PTERMS(O3,K0102) = +0.17307*K0102*<CARBOP>*<HO2> + PTERMS(:,1,102) = +0.17307*TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) ! ! RETURN -END SUBROUTINE SUBT78 +END SUBROUTINE SUBT20 ! -SUBROUTINE SUBT79 +SUBROUTINE SUBT21 ! -!Indices 1581 a 1600 +!Indices 421 a 440 ! -!PTERMS(WC_CO2,KC42) = +2*KC42*<WC_OH>*<WC_UR28> - PTERMS(:,100,531) = +2*TPK%KC42(:)*PCONC(:,98)*PCONC(:,118) +!PTERMS(HO2,K0102) = -K0102*<CARBOP>*<HO2> + PTERMS(:,15,102) = -TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) ! -!PTERMS(WC_UR28,KC42) = -KC42*<WC_OH>*<WC_UR28> - PTERMS(:,118,531) = -TPK%KC42(:)*PCONC(:,98)*PCONC(:,118) +!PTERMS(OP2,K0102) = +0.80904*K0102*<CARBOP>*<HO2> + PTERMS(:,29,102) = +0.80904*TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) ! -!PTERMS(WC_H2O2,KC43) = +0.3*KC43*<WC_OH>*<WC_UR21> - PTERMS(:,89,532) = +0.3*TPK%KC43(:)*PCONC(:,98)*PCONC(:,117) +!PTERMS(ORA2,K0102) = +0.17307*K0102*<CARBOP>*<HO2> + PTERMS(:,31,102) = +0.17307*TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) ! -!PTERMS(WC_OH,KC43) = -KC43*<WC_OH>*<WC_UR21> - PTERMS(:,98,532) = -TPK%KC43(:)*PCONC(:,98)*PCONC(:,117) +!PTERMS(CARBOP,K0102) = -K0102*<CARBOP>*<HO2> + PTERMS(:,39,102) = -TPK%K0102(:)*PCONC(:,39)*PCONC(:,15) ! -!PTERMS(WC_HO2,KC43) = +0.81*KC43*<WC_OH>*<WC_UR21> - PTERMS(:,99,532) = +0.81*TPK%KC43(:)*PCONC(:,98)*PCONC(:,117) +!PTERMS(HO2,K103) = -K103*<OLN>*<HO2> + PTERMS(:,15,103) = -TPK%K103(:)*PCONC(:,40)*PCONC(:,15) ! -!PTERMS(WC_CO2,KC43) = +0.43*KC43*<WC_OH>*<WC_UR21> - PTERMS(:,100,532) = +0.43*TPK%KC43(:)*PCONC(:,98)*PCONC(:,117) +!PTERMS(ONIT,K103) = +K103*<OLN>*<HO2> + PTERMS(:,26,103) = +TPK%K103(:)*PCONC(:,40)*PCONC(:,15) ! -!PTERMS(WC_ALD2,KC43) = +0.43*KC43*<WC_OH>*<WC_UR21> - PTERMS(:,109,532) = +0.43*TPK%KC43(:)*PCONC(:,98)*PCONC(:,117) +!PTERMS(OLN,K103) = -K103*<OLN>*<HO2> + PTERMS(:,40,103) = -TPK%K103(:)*PCONC(:,40)*PCONC(:,15) ! -!PTERMS(WC_UR21,KC43) = -KC43*<WC_OH>*<WC_UR21> - PTERMS(:,117,532) = -TPK%KC43(:)*PCONC(:,98)*PCONC(:,117) +!PTERMS(HO2,K104) = +0.66*K104*<MO2>*<MO2> + PTERMS(:,15,104) = +0.66*TPK%K104(:)*PCONC(:,32)*PCONC(:,32) ! -!PTERMS(WC_ACID2,KC43) = +0.56*KC43*<WC_OH>*<WC_UR21> - PTERMS(:,119,532) = +0.56*TPK%KC43(:)*PCONC(:,98)*PCONC(:,117) +!PTERMS(HCHO,K104) = +1.33*K104*<MO2>*<MO2> + PTERMS(:,22,104) = +1.33*TPK%K104(:)*PCONC(:,32)*PCONC(:,32) ! -!PTERMS(WC_OH,KC44) = -KC44*<WC_OH>*<WC_RP16> - PTERMS(:,98,533) = -TPK%KC44(:)*PCONC(:,98)*PCONC(:,116) +!PTERMS(MO2,K104) = -K104*<MO2>*<MO2> + PTERMS(:,32,104) = -TPK%K104(:)*PCONC(:,32)*PCONC(:,32) ! -!PTERMS(WC_HO2,KC44) = +KC44*<WC_OH>*<WC_RP16> - PTERMS(:,99,533) = +TPK%KC44(:)*PCONC(:,98)*PCONC(:,116) +!PTERMS(HO2,K105) = +0.98383*K105*<ALKAP>*<MO2> + PTERMS(:,15,105) = +0.98383*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) ! -!PTERMS(WC_RP16,KC44) = -KC44*<WC_OH>*<WC_RP16> - PTERMS(:,116,533) = -TPK%KC44(:)*PCONC(:,98)*PCONC(:,116) +!PTERMS(HCHO,K105) = +0.80556*K105*<ALKAP>*<MO2> + PTERMS(:,22,105) = +0.80556*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) ! -!PTERMS(WC_UR28,KC44) = +KC44*<WC_OH>*<WC_RP16> - PTERMS(:,118,533) = +TPK%KC44(:)*PCONC(:,98)*PCONC(:,116) +!PTERMS(ALD,K105) = +0.56070*K105*<ALKAP>*<MO2> + PTERMS(:,23,105) = +0.56070*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) ! -!PTERMS(WC_H2O2,KC45) = +0.45*KC45*<WC_OH>*<WC_RP16> - PTERMS(:,89,534) = +0.45*TPK%KC45(:)*PCONC(:,98)*PCONC(:,116) +!PTERMS(KET,K105) = +0.09673*K105*<ALKAP>*<MO2> + PTERMS(:,24,105) = +0.09673*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) ! -!PTERMS(WC_OH,KC45) = -KC45*<WC_OH>*<WC_RP16> - PTERMS(:,98,534) = -TPK%KC45(:)*PCONC(:,98)*PCONC(:,116) +!PTERMS(CARBO,K105) = +0.07976*K105*<ALKAP>*<MO2> + PTERMS(:,25,105) = +0.07976*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) ! -!PTERMS(WC_HO2,KC45) = +0.71*KC45*<WC_OH>*<WC_RP16> - PTERMS(:,99,534) = +0.71*TPK%KC45(:)*PCONC(:,98)*PCONC(:,116) +!PTERMS(MO2,K105) = -K105*<ALKAP>*<MO2> + PTERMS(:,32,105) = -TPK%K105(:)*PCONC(:,33)*PCONC(:,32) ! -!PTERMS(WC_CO2,KC45) = +2*KC45*<WC_OH>*<WC_RP16> - PTERMS(:,100,534) = +2*TPK%KC45(:)*PCONC(:,98)*PCONC(:,116) +!PTERMS(ALKAP,K105) = -K105*<ALKAP>*<MO2> + PTERMS(:,33,105) = -TPK%K105(:)*PCONC(:,33)*PCONC(:,32) ! -!PTERMS(WC_RP16,KC45) = -KC45*<WC_OH>*<WC_RP16> - PTERMS(:,116,534) = -TPK%KC45(:)*PCONC(:,98)*PCONC(:,116) +!PTERMS(XO2,K105) = +0.13370*K105*<ALKAP>*<MO2> + PTERMS(:,41,105) = +0.13370*TPK%K105(:)*PCONC(:,33)*PCONC(:,32) ! -!PTERMS(WC_OH,KC46) = -KC46*<WC_OH>*<WC_ACID2> - PTERMS(:,98,535) = -TPK%KC46(:)*PCONC(:,98)*PCONC(:,119) +!PTERMS(HO2,K106) = +K106*<ALKEP>*<MO2> + PTERMS(:,15,106) = +TPK%K106(:)*PCONC(:,34)*PCONC(:,32) ! -!PTERMS(WC_ACID2,KC46) = -KC46*<WC_OH>*<WC_ACID2> - PTERMS(:,119,535) = -TPK%KC46(:)*PCONC(:,98)*PCONC(:,119) +!PTERMS(HCHO,K106) = +1.42894*K106*<ALKEP>*<MO2> + PTERMS(:,22,106) = +1.42894*TPK%K106(:)*PCONC(:,34)*PCONC(:,32) ! ! RETURN -END SUBROUTINE SUBT79 +END SUBROUTINE SUBT21 ! -SUBROUTINE SUBT80 +SUBROUTINE SUBT22 ! -!Indices 1601 a 1620 +!Indices 441 a 460 ! -!PTERMS(WR_H2O2,KR1) = -KR1*<WR_H2O2> - PTERMS(:,126,536) = -TPK%KR1(:)*PCONC(:,126) +!PTERMS(ALD,K106) = +0.46413*K106*<ALKEP>*<MO2> + PTERMS(:,23,106) = +0.46413*TPK%K106(:)*PCONC(:,34)*PCONC(:,32) ! -!PTERMS(WR_OH,KR1) = +KR1*<WR_H2O2> - PTERMS(:,135,536) = +TPK%KR1(:)*PCONC(:,126) +!PTERMS(KET,K106) = +0.03814*K106*<ALKEP>*<MO2> + PTERMS(:,24,106) = +0.03814*TPK%K106(:)*PCONC(:,34)*PCONC(:,32) ! -!PTERMS(WR_H2O2,KR2) = +KR2*<WR_OH>*<WR_OH> - PTERMS(:,126,537) = +TPK%KR2(:)*PCONC(:,135)*PCONC(:,135) +!PTERMS(MO2,K106) = -K106*<ALKEP>*<MO2> + PTERMS(:,32,106) = -TPK%K106(:)*PCONC(:,34)*PCONC(:,32) ! -!PTERMS(WR_OH,KR2) = -KR2*<WR_OH>*<WR_OH> - PTERMS(:,135,537) = -TPK%KR2(:)*PCONC(:,135)*PCONC(:,135) +!PTERMS(ALKEP,K106) = -K106*<ALKEP>*<MO2> + PTERMS(:,34,106) = -TPK%K106(:)*PCONC(:,34)*PCONC(:,32) ! -!PTERMS(WR_OH,KR3) = -KR3*<WR_HO2>*<WR_OH> - PTERMS(:,135,538) = -TPK%KR3(:)*PCONC(:,136)*PCONC(:,135) +!PTERMS(HO2,K107) = +1.00000*K107*<BIOP>*<MO2> + PTERMS(:,15,107) = +1.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) ! -!PTERMS(WR_HO2,KR3) = -KR3*<WR_HO2>*<WR_OH> - PTERMS(:,136,538) = -TPK%KR3(:)*PCONC(:,136)*PCONC(:,135) +!PTERMS(ALKE,K107) = +0.48074*K107*<BIOP>*<MO2> + PTERMS(:,19,107) = +0.48074*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) ! -!PTERMS(WR_H2O2,KR4) = -KR4*<WR_OH>*<WR_H2O2> - PTERMS(:,126,539) = -TPK%KR4(:)*PCONC(:,135)*PCONC(:,126) +!PTERMS(HCHO,K107) = +1.09000*K107*<BIOP>*<MO2> + PTERMS(:,22,107) = +1.09000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) ! -!PTERMS(WR_OH,KR4) = -KR4*<WR_OH>*<WR_H2O2> - PTERMS(:,135,539) = -TPK%KR4(:)*PCONC(:,135)*PCONC(:,126) +!PTERMS(ALD,K107) = +0.00000*K107*<BIOP>*<MO2> + PTERMS(:,23,107) = +0.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) ! -!PTERMS(WR_HO2,KR4) = +KR4*<WR_OH>*<WR_H2O2> - PTERMS(:,136,539) = +TPK%KR4(:)*PCONC(:,135)*PCONC(:,126) +!PTERMS(KET,K107) = +0.00000*K107*<BIOP>*<MO2> + PTERMS(:,24,107) = +0.00000*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) ! -!PTERMS(WR_H2O2,KR5) = +KR5*<WR_HO2>*<WR_HO2> - PTERMS(:,126,540) = +TPK%KR5(:)*PCONC(:,136)*PCONC(:,136) +!PTERMS(CARBO,K107) = +0.56064*K107*<BIOP>*<MO2> + PTERMS(:,25,107) = +0.56064*TPK%K107(:)*PCONC(:,35)*PCONC(:,32) ! -!PTERMS(WR_HO2,KR5) = -KR5*<WR_HO2>*<WR_HO2> - PTERMS(:,136,540) = -TPK%KR5(:)*PCONC(:,136)*PCONC(:,136) +!PTERMS(MO2,K107) = -K107*<BIOP>*<MO2> + PTERMS(:,32,107) = -TPK%K107(:)*PCONC(:,35)*PCONC(:,32) ! -!PTERMS(WR_O3,KR6) = -KR6*<WR_HO2>*<WR_O3> - PTERMS(:,125,541) = -TPK%KR6(:)*PCONC(:,136)*PCONC(:,125) +!PTERMS(BIOP,K107) = -K107*<BIOP>*<MO2> + PTERMS(:,35,107) = -TPK%K107(:)*PCONC(:,35)*PCONC(:,32) ! -!PTERMS(WR_OH,KR6) = +KR6*<WR_HO2>*<WR_O3> - PTERMS(:,135,541) = +TPK%KR6(:)*PCONC(:,136)*PCONC(:,125) +!PTERMS(HO2,K108) = +1.02767*K108*<AROP>*<MO2> + PTERMS(:,15,108) = +1.02767*TPK%K108(:)*PCONC(:,38)*PCONC(:,32) ! -!PTERMS(WR_HO2,KR6) = -KR6*<WR_HO2>*<WR_O3> - PTERMS(:,136,541) = -TPK%KR6(:)*PCONC(:,136)*PCONC(:,125) +!PTERMS(HCHO,K108) = +K108*<AROP>*<MO2> + PTERMS(:,22,108) = +TPK%K108(:)*PCONC(:,38)*PCONC(:,32) ! -!PTERMS(WR_OH,KR7) = -KR7*<WR_SO2>*<WR_OH> - PTERMS(:,135,542) = -TPK%KR7(:)*PCONC(:,138)*PCONC(:,135) +!PTERMS(CARBO,K108) = +1.99461*K108*<AROP>*<MO2> + PTERMS(:,25,108) = +1.99461*TPK%K108(:)*PCONC(:,38)*PCONC(:,32) ! -!PTERMS(WR_SO2,KR7) = -KR7*<WR_SO2>*<WR_OH> - PTERMS(:,138,542) = -TPK%KR7(:)*PCONC(:,138)*PCONC(:,135) +!PTERMS(MO2,K108) = -K108*<AROP>*<MO2> + PTERMS(:,32,108) = -TPK%K108(:)*PCONC(:,38)*PCONC(:,32) ! -!PTERMS(WR_ASO3,KR7) = +KR7*<WR_SO2>*<WR_OH> - PTERMS(:,157,542) = +TPK%KR7(:)*PCONC(:,138)*PCONC(:,135) +!PTERMS(AROP,K108) = -K108*<AROP>*<MO2> + PTERMS(:,38,108) = -TPK%K108(:)*PCONC(:,38)*PCONC(:,32) ! -!PTERMS(WR_NO2,KR8) = +KR8*<WR_OH>*<WR_HONO> - PTERMS(:,128,543) = +TPK%KR8(:)*PCONC(:,135)*PCONC(:,131) +!PTERMS(HO2,K109) = +0.82998*K109*<CARBOP>*<MO2> + PTERMS(:,15,109) = +0.82998*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) ! -!PTERMS(WR_HONO,KR8) = -KR8*<WR_OH>*<WR_HONO> - PTERMS(:,131,543) = -TPK%KR8(:)*PCONC(:,135)*PCONC(:,131) +!PTERMS(HCHO,K109) = +0.95723*K109*<CARBOP>*<MO2> + PTERMS(:,22,109) = +0.95723*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) ! -!PTERMS(WR_OH,KR8) = -KR8*<WR_OH>*<WR_HONO> - PTERMS(:,135,543) = -TPK%KR8(:)*PCONC(:,135)*PCONC(:,131) +!PTERMS(ALD,K109) = +0.08295*K109*<CARBOP>*<MO2> + PTERMS(:,23,109) = +0.08295*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) ! ! RETURN -END SUBROUTINE SUBT80 +END SUBROUTINE SUBT22 ! -SUBROUTINE SUBT81 +SUBROUTINE SUBT23 ! -!Indices 1621 a 1640 +!Indices 461 a 480 ! -!PTERMS(WR_NO2,KR9) = -KR9*<WR_HO2>*<WR_NO2> - PTERMS(:,128,544) = -TPK%KR9(:)*PCONC(:,136)*PCONC(:,128) +!PTERMS(CARBO,K109) = +0.15387*K109*<CARBOP>*<MO2> + PTERMS(:,25,109) = +0.15387*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) ! -!PTERMS(WR_HNO4,KR9) = +KR9*<WR_HO2>*<WR_NO2> - PTERMS(:,133,544) = +TPK%KR9(:)*PCONC(:,136)*PCONC(:,128) +!PTERMS(ORA2,K109) = +0.13684*K109*<CARBOP>*<MO2> + PTERMS(:,31,109) = +0.13684*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) ! -!PTERMS(WR_HO2,KR9) = -KR9*<WR_HO2>*<WR_NO2> - PTERMS(:,136,544) = -TPK%KR9(:)*PCONC(:,136)*PCONC(:,128) +!PTERMS(MO2,K109) = -K109*<CARBOP>*<MO2> + PTERMS(:,32,109) = -TPK%K109(:)*PCONC(:,39)*PCONC(:,32) ! -!PTERMS(WR_NO2,KR10) = +KR10*<WR_HNO4> - PTERMS(:,128,545) = +TPK%KR10(:)*PCONC(:,133) +!PTERMS(CARBOP,K109) = -K109*<CARBOP>*<MO2> + PTERMS(:,39,109) = -TPK%K109(:)*PCONC(:,39)*PCONC(:,32) ! -!PTERMS(WR_HNO4,KR10) = -KR10*<WR_HNO4> - PTERMS(:,133,545) = -TPK%KR10(:)*PCONC(:,133) +!PTERMS(XO2,K109) = +0.02212*K109*<CARBOP>*<MO2> + PTERMS(:,41,109) = +0.02212*TPK%K109(:)*PCONC(:,39)*PCONC(:,32) ! -!PTERMS(WR_HO2,KR10) = +KR10*<WR_HNO4> - PTERMS(:,136,545) = +TPK%KR10(:)*PCONC(:,133) +!PTERMS(NO2,K110) = +0.32440*K110*<OLN>*<MO2> + PTERMS(:,4,110) = +0.32440*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) ! -!PTERMS(WR_HONO,KR11) = +KR11*<WR_HNO4> - PTERMS(:,131,546) = +TPK%KR11(:)*PCONC(:,133) +!PTERMS(HO2,K110) = +0.67560*K110*<OLN>*<MO2> + PTERMS(:,15,110) = +0.67560*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) ! -!PTERMS(WR_HNO4,KR11) = -KR11*<WR_HNO4> - PTERMS(:,133,546) = -TPK%KR11(:)*PCONC(:,133) +!PTERMS(HCHO,K110) = +0.88625*K110*<OLN>*<MO2> + PTERMS(:,22,110) = +0.88625*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) ! -!PTERMS(WR_HNO3,KR12) = +KR12*<WR_SO2>*<WR_HNO4> - PTERMS(:,132,547) = +TPK%KR12(:)*PCONC(:,138)*PCONC(:,133) +!PTERMS(ALD,K110) = +0.41524*K110*<OLN>*<MO2> + PTERMS(:,23,110) = +0.41524*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) ! -!PTERMS(WR_HNO4,KR12) = -KR12*<WR_SO2>*<WR_HNO4> - PTERMS(:,133,547) = -TPK%KR12(:)*PCONC(:,138)*PCONC(:,133) +!PTERMS(KET,K110) = +0.09667*K110*<OLN>*<MO2> + PTERMS(:,24,110) = +0.09667*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) ! -!PTERMS(WR_SO2,KR12) = -KR12*<WR_SO2>*<WR_HNO4> - PTERMS(:,138,547) = -TPK%KR12(:)*PCONC(:,138)*PCONC(:,133) +!PTERMS(ONIT,K110) = +0.67560*K110*<OLN>*<MO2> + PTERMS(:,26,110) = +0.67560*TPK%K110(:)*PCONC(:,40)*PCONC(:,32) ! -!PTERMS(WR_H2SO4,KR12) = +KR12*<WR_SO2>*<WR_HNO4> - PTERMS(:,139,547) = +TPK%KR12(:)*PCONC(:,138)*PCONC(:,133) +!PTERMS(MO2,K110) = -K110*<OLN>*<MO2> + PTERMS(:,32,110) = -TPK%K110(:)*PCONC(:,40)*PCONC(:,32) ! -!PTERMS(WR_NO2,KR13) = +KR13*<WR_HNO3> - PTERMS(:,128,548) = +TPK%KR13(:)*PCONC(:,132) +!PTERMS(OLN,K110) = -K110*<OLN>*<MO2> + PTERMS(:,40,110) = -TPK%K110(:)*PCONC(:,40)*PCONC(:,32) ! -!PTERMS(WR_HNO3,KR13) = -KR13*<WR_HNO3> - PTERMS(:,132,548) = -TPK%KR13(:)*PCONC(:,132) +!PTERMS(HO2,K111) = +0.48079*K111*<ALKAP>*<CARBOP> + PTERMS(:,15,111) = +0.48079*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(WR_OH,KR13) = +KR13*<WR_HNO3> - PTERMS(:,135,548) = +TPK%KR13(:)*PCONC(:,132) +!PTERMS(HCHO,K111) = +0.07600*K111*<ALKAP>*<CARBOP> + PTERMS(:,22,111) = +0.07600*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(WR_N2O5,KR14) = -KR14*<WR_N2O5> - PTERMS(:,130,549) = -TPK%KR14(:)*PCONC(:,130) +!PTERMS(ALD,K111) = +0.71461*K111*<ALKAP>*<CARBOP> + PTERMS(:,23,111) = +0.71461*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(WR_HNO3,KR14) = +KR14*<WR_N2O5> - PTERMS(:,132,549) = +TPK%KR14(:)*PCONC(:,130) +!PTERMS(KET,K111) = +0.18819*K111*<ALKAP>*<CARBOP> + PTERMS(:,24,111) = +0.18819*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(WR_NO3,KR15) = -KR15*<WR_H2SO4>*<WR_NO3> - PTERMS(:,129,550) = -TPK%KR15(:)*PCONC(:,139)*PCONC(:,129) +!PTERMS(CARBO,K111) = +0.06954*K111*<ALKAP>*<CARBOP> + PTERMS(:,25,111) = +0.06954*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(WR_HNO3,KR15) = +KR15*<WR_H2SO4>*<WR_NO3> - PTERMS(:,132,550) = +TPK%KR15(:)*PCONC(:,139)*PCONC(:,129) +!PTERMS(ORA2,K111) = +0.49810*K111*<ALKAP>*<CARBOP> + PTERMS(:,31,111) = +0.49810*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(WR_H2SO4,KR15) = -KR15*<WR_H2SO4>*<WR_NO3> - PTERMS(:,139,550) = -TPK%KR15(:)*PCONC(:,139)*PCONC(:,129) +!PTERMS(MO2,K111) = +0.51480*K111*<ALKAP>*<CARBOP> + PTERMS(:,32,111) = +0.51480*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! ! RETURN -END SUBROUTINE SUBT81 +END SUBROUTINE SUBT23 ! -SUBROUTINE SUBT82 +SUBROUTINE SUBT24 ! -!Indices 1641 a 1660 +!Indices 481 a 500 ! -!PTERMS(WR_ASO4,KR15) = +KR15*<WR_H2SO4>*<WR_NO3> - PTERMS(:,158,550) = +TPK%KR15(:)*PCONC(:,139)*PCONC(:,129) +!PTERMS(ALKAP,K111) = -K111*<ALKAP>*<CARBOP> + PTERMS(:,33,111) = -TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(WR_NO3,KR16) = -KR16*<WR_SO2>*<WR_NO3> - PTERMS(:,129,551) = -TPK%KR16(:)*PCONC(:,138)*PCONC(:,129) +!PTERMS(CARBOP,K111) = -K111*<ALKAP>*<CARBOP> + PTERMS(:,39,111) = -TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(WR_HNO3,KR16) = +KR16*<WR_SO2>*<WR_NO3> - PTERMS(:,132,551) = +TPK%KR16(:)*PCONC(:,138)*PCONC(:,129) +!PTERMS(XO2,K111) = +0.11306*K111*<ALKAP>*<CARBOP> + PTERMS(:,41,111) = +0.11306*TPK%K111(:)*PCONC(:,33)*PCONC(:,39) ! -!PTERMS(WR_SO2,KR16) = -KR16*<WR_SO2>*<WR_NO3> - PTERMS(:,138,551) = -TPK%KR16(:)*PCONC(:,138)*PCONC(:,129) +!PTERMS(HO2,K112) = +0.50078*K112*<ALKEP>*<CARBOP> + PTERMS(:,15,112) = +0.50078*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) ! -!PTERMS(WR_ASO3,KR16) = +KR16*<WR_SO2>*<WR_NO3> - PTERMS(:,157,551) = +TPK%KR16(:)*PCONC(:,138)*PCONC(:,129) +!PTERMS(HCHO,K112) = +0.68192*K112*<ALKEP>*<CARBOP> + PTERMS(:,22,112) = +0.68192*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) ! -!PTERMS(WR_SO2,KR17) = -KR17*<WR_HCHO>*<WR_SO2> - PTERMS(:,138,552) = -TPK%KR17(:)*PCONC(:,145)*PCONC(:,138) +!PTERMS(ALD,K112) = +0.68374*K112*<ALKEP>*<CARBOP> + PTERMS(:,23,112) = +0.68374*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) ! -!PTERMS(WR_HCHO,KR17) = -KR17*<WR_HCHO>*<WR_SO2> - PTERMS(:,145,552) = -TPK%KR17(:)*PCONC(:,145)*PCONC(:,138) +!PTERMS(KET,K112) = +0.06579*K112*<ALKEP>*<CARBOP> + PTERMS(:,24,112) = +0.06579*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) ! -!PTERMS(WR_AHMS,KR17) = +KR17*<WR_HCHO>*<WR_SO2> - PTERMS(:,161,552) = +TPK%KR17(:)*PCONC(:,145)*PCONC(:,138) +!PTERMS(ORA2,K112) = +0.49922*K112*<ALKEP>*<CARBOP> + PTERMS(:,31,112) = +0.49922*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) ! -!PTERMS(WR_SO2,KR18) = +KR18*<WR_AHMS> - PTERMS(:,138,553) = +TPK%KR18(:)*PCONC(:,161) +!PTERMS(MO2,K112) = +0.50078*K112*<ALKEP>*<CARBOP> + PTERMS(:,32,112) = +0.50078*TPK%K112(:)*PCONC(:,34)*PCONC(:,39) ! -!PTERMS(WR_HCHO,KR18) = +KR18*<WR_AHMS> - PTERMS(:,145,553) = +TPK%KR18(:)*PCONC(:,161) +!PTERMS(ALKEP,K112) = -K112*<ALKEP>*<CARBOP> + PTERMS(:,34,112) = -TPK%K112(:)*PCONC(:,34)*PCONC(:,39) ! -!PTERMS(WR_AHMS,KR18) = -KR18*<WR_AHMS> - PTERMS(:,161,553) = -TPK%KR18(:)*PCONC(:,161) +!PTERMS(CARBOP,K112) = -K112*<ALKEP>*<CARBOP> + PTERMS(:,39,112) = -TPK%K112(:)*PCONC(:,34)*PCONC(:,39) ! -!PTERMS(WR_OH,KR19) = -KR19*<WR_OH>*<WR_AHMS> - PTERMS(:,135,554) = -TPK%KR19(:)*PCONC(:,135)*PCONC(:,161) +!PTERMS(HO2,K113) = +0.50600*K113*<BIOP>*<CARBOP> + PTERMS(:,15,113) = +0.50600*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(WR_HO2,KR19) = +KR19*<WR_OH>*<WR_AHMS> - PTERMS(:,136,554) = +TPK%KR19(:)*PCONC(:,135)*PCONC(:,161) +!PTERMS(ALKE,K113) = +0.24463*K113*<BIOP>*<CARBOP> + PTERMS(:,19,113) = +0.24463*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(WR_SO2,KR19) = +KR19*<WR_OH>*<WR_AHMS> - PTERMS(:,138,554) = +TPK%KR19(:)*PCONC(:,135)*PCONC(:,161) +!PTERMS(HCHO,K113) = +0.34000*K113*<BIOP>*<CARBOP> + PTERMS(:,22,113) = +0.34000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(WR_ORA1,KR19) = +KR19*<WR_OH>*<WR_AHMS> - PTERMS(:,150,554) = +TPK%KR19(:)*PCONC(:,135)*PCONC(:,161) +!PTERMS(ALD,K113) = +0.00000*K113*<BIOP>*<CARBOP> + PTERMS(:,23,113) = +0.00000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(WR_AHMS,KR19) = -KR19*<WR_OH>*<WR_AHMS> - PTERMS(:,161,554) = -TPK%KR19(:)*PCONC(:,135)*PCONC(:,161) +!PTERMS(KET,K113) = +0.00000*K113*<BIOP>*<CARBOP> + PTERMS(:,24,113) = +0.00000*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(WR_ASO3,KR20) = -KR20*<W_O2>*<WR_ASO3> - PTERMS(:,157,555) = -TPK%KR20(:)*TPK%W_O2(:)*PCONC(:,157) +!PTERMS(CARBO,K113) = +0.78591*K113*<BIOP>*<CARBOP> + PTERMS(:,25,113) = +0.78591*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(WR_ASO5,KR20) = +KR20*<W_O2>*<WR_ASO3> - PTERMS(:,159,555) = +TPK%KR20(:)*TPK%W_O2(:)*PCONC(:,157) +!PTERMS(ORA2,K113) = +0.49400*K113*<BIOP>*<CARBOP> + PTERMS(:,31,113) = +0.49400*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(WR_HO2,KR21) = -KR21*<WR_HO2>*<WR_ASO5> - PTERMS(:,136,556) = -TPK%KR21(:)*PCONC(:,136)*PCONC(:,159) +!PTERMS(MO2,K113) = +0.50600*K113*<BIOP>*<CARBOP> + PTERMS(:,32,113) = +0.50600*TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(WR_ASO5,KR21) = -KR21*<WR_HO2>*<WR_ASO5> - PTERMS(:,159,556) = -TPK%KR21(:)*PCONC(:,136)*PCONC(:,159) +!PTERMS(BIOP,K113) = -K113*<BIOP>*<CARBOP> + PTERMS(:,35,113) = -TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! ! RETURN -END SUBROUTINE SUBT82 +END SUBROUTINE SUBT24 ! -SUBROUTINE SUBT83 +SUBROUTINE SUBT25 ! -!Indices 1661 a 1680 +!Indices 501 a 520 ! -!PTERMS(WR_AHSO5,KR21) = +KR21*<WR_HO2>*<WR_ASO5> - PTERMS(:,160,556) = +TPK%KR21(:)*PCONC(:,136)*PCONC(:,159) +!PTERMS(CARBOP,K113) = -K113*<BIOP>*<CARBOP> + PTERMS(:,39,113) = -TPK%K113(:)*PCONC(:,35)*PCONC(:,39) ! -!PTERMS(WR_ASO4,KR22) = +KR22*<WR_ASO5>*<WR_ASO5> - PTERMS(:,158,557) = +TPK%KR22(:)*PCONC(:,159)*PCONC(:,159) +!PTERMS(HO2,K114) = +K114*<AROP>*<CARBOP> + PTERMS(:,15,114) = +TPK%K114(:)*PCONC(:,38)*PCONC(:,39) ! -!PTERMS(WR_ASO5,KR22) = -KR22*<WR_ASO5>*<WR_ASO5> - PTERMS(:,159,557) = -TPK%KR22(:)*PCONC(:,159)*PCONC(:,159) +!PTERMS(CARBO,K114) = +1.99455*K114*<AROP>*<CARBOP> + PTERMS(:,25,114) = +1.99455*TPK%K114(:)*PCONC(:,38)*PCONC(:,39) ! -!PTERMS(WR_SO2,KR23) = -KR23*<WR_SO2>*<WR_AHSO5> - PTERMS(:,138,558) = -TPK%KR23(:)*PCONC(:,138)*PCONC(:,160) +!PTERMS(MO2,K114) = +K114*<AROP>*<CARBOP> + PTERMS(:,32,114) = +TPK%K114(:)*PCONC(:,38)*PCONC(:,39) ! -!PTERMS(WR_H2SO4,KR23) = +2.00*KR23*<WR_SO2>*<WR_AHSO5> - PTERMS(:,139,558) = +2.00*TPK%KR23(:)*PCONC(:,138)*PCONC(:,160) +!PTERMS(AROP,K114) = -K114*<AROP>*<CARBOP> + PTERMS(:,38,114) = -TPK%K114(:)*PCONC(:,38)*PCONC(:,39) ! -!PTERMS(WR_AHSO5,KR23) = -KR23*<WR_SO2>*<WR_AHSO5> - PTERMS(:,160,558) = -TPK%KR23(:)*PCONC(:,138)*PCONC(:,160) +!PTERMS(CARBOP,K114) = -K114*<AROP>*<CARBOP> + PTERMS(:,39,114) = -TPK%K114(:)*PCONC(:,38)*PCONC(:,39) ! -!PTERMS(WR_OH,KR24) = +KR24*<WR_ASO4> - PTERMS(:,135,559) = +TPK%KR24(:)*PCONC(:,158) +!PTERMS(HO2,K115) = +0.07566*K115*<CARBOP>*<CARBOP> + PTERMS(:,15,115) = +0.07566*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(WR_H2SO4,KR24) = +KR24*<WR_ASO4> - PTERMS(:,139,559) = +TPK%KR24(:)*PCONC(:,158) +!PTERMS(HCHO,K115) = +0.03432*K115*<CARBOP>*<CARBOP> + PTERMS(:,22,115) = +0.03432*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(WR_ASO4,KR24) = -KR24*<WR_ASO4> - PTERMS(:,158,559) = -TPK%KR24(:)*PCONC(:,158) +!PTERMS(ALD,K115) = +0.06969*K115*<CARBOP>*<CARBOP> + PTERMS(:,23,115) = +0.06969*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(WR_O3,KR25) = -KR25*<WR_O3>*<WR_SO2> - PTERMS(:,125,560) = -TPK%KR25(:)*PCONC(:,125)*PCONC(:,138) +!PTERMS(KET,K115) = +0.02190*K115*<CARBOP>*<CARBOP> + PTERMS(:,24,115) = +0.02190*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(WR_SO2,KR25) = -KR25*<WR_O3>*<WR_SO2> - PTERMS(:,138,560) = -TPK%KR25(:)*PCONC(:,125)*PCONC(:,138) +!PTERMS(CARBO,K115) = +0.10777*K115*<CARBOP>*<CARBOP> + PTERMS(:,25,115) = +0.10777*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(WR_H2SO4,KR25) = +KR25*<WR_O3>*<WR_SO2> - PTERMS(:,139,560) = +TPK%KR25(:)*PCONC(:,125)*PCONC(:,138) +!PTERMS(ORA2,K115) = +0.09955*K115*<CARBOP>*<CARBOP> + PTERMS(:,31,115) = +0.09955*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(WR_H2O2,KR26) = -KR26*<WR_H2O2>*<WR_SO2> - PTERMS(:,126,561) = -TPK%KR26(:)*PCONC(:,126)*PCONC(:,138) +!PTERMS(MO2,K115) = +1.66702*K115*<CARBOP>*<CARBOP> + PTERMS(:,32,115) = +1.66702*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(WR_SO2,KR26) = -KR26*<WR_H2O2>*<WR_SO2> - PTERMS(:,138,561) = -TPK%KR26(:)*PCONC(:,126)*PCONC(:,138) +!PTERMS(CARBOP,K115) = -K115*<CARBOP>*<CARBOP> + PTERMS(:,39,115) = -TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(WR_H2SO4,KR26) = +KR26*<WR_H2O2>*<WR_SO2> - PTERMS(:,139,561) = +TPK%KR26(:)*PCONC(:,126)*PCONC(:,138) +!PTERMS(XO2,K115) = +0.01593*K115*<CARBOP>*<CARBOP> + PTERMS(:,41,115) = +0.01593*TPK%K115(:)*PCONC(:,39)*PCONC(:,39) ! -!PTERMS(WR_HO2,KR27) = +2.00*KR27*<WR_RO21>*<WR_RO21> - PTERMS(:,136,562) = +2.00*TPK%KR27(:)*PCONC(:,140)*PCONC(:,140) +!PTERMS(NO2,K116) = +0.00000*K116*<OLN>*<CARBOP> + PTERMS(:,4,116) = +0.00000*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(WR_RO21,KR27) = -KR27*<WR_RO21>*<WR_RO21> - PTERMS(:,140,562) = -TPK%KR27(:)*PCONC(:,140)*PCONC(:,140) +!PTERMS(HO2,K116) = +0.17599*K116*<OLN>*<CARBOP> + PTERMS(:,15,116) = +0.17599*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(WR_HCHO,KR27) = +2.00*KR27*<WR_RO21>*<WR_RO21> - PTERMS(:,145,562) = +2.00*TPK%KR27(:)*PCONC(:,140)*PCONC(:,140) +!PTERMS(HCHO,K116) = +0.13414*K116*<OLN>*<CARBOP> + PTERMS(:,22,116) = +0.13414*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(WR_SO2,KR28) = -KR28*<WR_SO2>*<WR_RO21> - PTERMS(:,138,563) = -TPK%KR28(:)*PCONC(:,138)*PCONC(:,140) +!PTERMS(ALD,K116) = +0.42122*K116*<OLN>*<CARBOP> + PTERMS(:,23,116) = +0.42122*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(WR_RO21,KR28) = -KR28*<WR_SO2>*<WR_RO21> - PTERMS(:,140,563) = -TPK%KR28(:)*PCONC(:,138)*PCONC(:,140) +!PTERMS(KET,K116) = +0.10822*K116*<OLN>*<CARBOP> + PTERMS(:,24,116) = +0.10822*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! ! RETURN -END SUBROUTINE SUBT83 +END SUBROUTINE SUBT25 ! -SUBROUTINE SUBT84 +SUBROUTINE SUBT26 ! -!Indices 1681 a 1700 +!Indices 521 a 540 ! -!PTERMS(WR_HCHO,KR28) = +KR28*<WR_SO2>*<WR_RO21> - PTERMS(:,145,563) = +TPK%KR28(:)*PCONC(:,138)*PCONC(:,140) +!PTERMS(ONIT,K116) = +0.66562*K116*<OLN>*<CARBOP> + PTERMS(:,26,116) = +0.66562*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(WR_ASO3,KR28) = +KR28*<WR_SO2>*<WR_RO21> - PTERMS(:,157,563) = +TPK%KR28(:)*PCONC(:,138)*PCONC(:,140) +!PTERMS(ORA2,K116) = +0.48963*K116*<OLN>*<CARBOP> + PTERMS(:,31,116) = +0.48963*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(WR_H2O2,KR29) = +KR29*<WR_RO25>*<WR_RO25> - PTERMS(:,126,564) = +TPK%KR29(:)*PCONC(:,141)*PCONC(:,141) +!PTERMS(MO2,K116) = +0.51037*K116*<OLN>*<CARBOP> + PTERMS(:,32,116) = +0.51037*TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(WR_HO2,KR29) = +KR29*<WR_RO25>*<WR_RO25> - PTERMS(:,136,564) = +TPK%KR29(:)*PCONC(:,141)*PCONC(:,141) +!PTERMS(CARBOP,K116) = -K116*<OLN>*<CARBOP> + PTERMS(:,39,116) = -TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(WR_RO25,KR29) = -KR29*<WR_RO25>*<WR_RO25> - PTERMS(:,141,564) = -TPK%KR29(:)*PCONC(:,141)*PCONC(:,141) +!PTERMS(OLN,K116) = -K116*<OLN>*<CARBOP> + PTERMS(:,40,116) = -TPK%K116(:)*PCONC(:,40)*PCONC(:,39) ! -!PTERMS(WR_ALD2,KR29) = +KR29*<WR_RO25>*<WR_RO25> - PTERMS(:,146,564) = +TPK%KR29(:)*PCONC(:,141)*PCONC(:,141) +!PTERMS(HO2,K117) = +K117*<OLN>*<OLN> + PTERMS(:,15,117) = +TPK%K117(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(WR_ORA2,KR29) = +KR29*<WR_RO25>*<WR_RO25> - PTERMS(:,151,564) = +TPK%KR29(:)*PCONC(:,141)*PCONC(:,141) +!PTERMS(ONIT,K117) = +2.00*K117*<OLN>*<OLN> + PTERMS(:,26,117) = +2.00*TPK%K117(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(WR_OH,KR30) = -KR30*<WR_OH>*<WR_MEOH> - PTERMS(:,135,565) = -TPK%KR30(:)*PCONC(:,135)*PCONC(:,142) +!PTERMS(OLN,K117) = -K117*<OLN>*<OLN> + PTERMS(:,40,117) = -TPK%K117(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(WR_HO2,KR30) = +KR30*<WR_OH>*<WR_MEOH> - PTERMS(:,136,565) = +TPK%KR30(:)*PCONC(:,135)*PCONC(:,142) +!PTERMS(NO2,K118) = +0.00000*K118*<OLN>*<OLN> + PTERMS(:,4,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(WR_MEOH,KR30) = -KR30*<WR_OH>*<WR_MEOH> - PTERMS(:,142,565) = -TPK%KR30(:)*PCONC(:,135)*PCONC(:,142) +!PTERMS(HO2,K118) = +0.00000*K118*<OLN>*<OLN> + PTERMS(:,15,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(WR_HCHO,KR30) = +KR30*<WR_OH>*<WR_MEOH> - PTERMS(:,145,565) = +TPK%KR30(:)*PCONC(:,135)*PCONC(:,142) +!PTERMS(HCHO,K118) = +0.00000*K118*<OLN>*<OLN> + PTERMS(:,22,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(WR_OH,KR31) = -KR31*<WR_OH>*<WR_ETOH> - PTERMS(:,135,566) = -TPK%KR31(:)*PCONC(:,135)*PCONC(:,143) +!PTERMS(ALD,K118) = +0.00000*K118*<OLN>*<OLN> + PTERMS(:,23,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(WR_HO2,KR31) = +KR31*<WR_OH>*<WR_ETOH> - PTERMS(:,136,566) = +TPK%KR31(:)*PCONC(:,135)*PCONC(:,143) +!PTERMS(KET,K118) = +0.00000*K118*<OLN>*<OLN> + PTERMS(:,24,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(WR_ETOH,KR31) = -KR31*<WR_OH>*<WR_ETOH> - PTERMS(:,143,566) = -TPK%KR31(:)*PCONC(:,135)*PCONC(:,143) +!PTERMS(ONIT,K118) = +0.00000*K118*<OLN>*<OLN> + PTERMS(:,26,118) = +0.00000*TPK%K118(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(WR_ALD2,KR31) = +KR31*<WR_OH>*<WR_ETOH> - PTERMS(:,146,566) = +TPK%KR31(:)*PCONC(:,135)*PCONC(:,143) +!PTERMS(OLN,K118) = -K118*<OLN>*<OLN> + PTERMS(:,40,118) = -TPK%K118(:)*PCONC(:,40)*PCONC(:,40) ! -!PTERMS(WR_OH,KR32) = -KR32*<WR_OH>*<WR_ALCH> - PTERMS(:,135,567) = -TPK%KR32(:)*PCONC(:,135)*PCONC(:,144) +!PTERMS(NO2,K119) = +K119*<MO2>*<NO3> + PTERMS(:,4,119) = +TPK%K119(:)*PCONC(:,32)*PCONC(:,5) ! -!PTERMS(WR_HO2,KR32) = +KR32*<WR_OH>*<WR_ALCH> - PTERMS(:,136,567) = +TPK%KR32(:)*PCONC(:,135)*PCONC(:,144) +!PTERMS(NO3,K119) = -K119*<MO2>*<NO3> + PTERMS(:,5,119) = -TPK%K119(:)*PCONC(:,32)*PCONC(:,5) ! -!PTERMS(WR_ALCH,KR32) = -KR32*<WR_OH>*<WR_ALCH> - PTERMS(:,144,567) = -TPK%KR32(:)*PCONC(:,135)*PCONC(:,144) +!PTERMS(HO2,K119) = +K119*<MO2>*<NO3> + PTERMS(:,15,119) = +TPK%K119(:)*PCONC(:,32)*PCONC(:,5) ! -!PTERMS(WR_ALD2,KR32) = +0.50*KR32*<WR_OH>*<WR_ALCH> - PTERMS(:,146,567) = +0.50*TPK%KR32(:)*PCONC(:,135)*PCONC(:,144) +!PTERMS(HCHO,K119) = +K119*<MO2>*<NO3> + PTERMS(:,22,119) = +TPK%K119(:)*PCONC(:,32)*PCONC(:,5) ! -!PTERMS(WR_KETL,KR32) = +0.50*KR32*<WR_OH>*<WR_ALCH> - PTERMS(:,149,567) = +0.50*TPK%KR32(:)*PCONC(:,135)*PCONC(:,144) +!PTERMS(MO2,K119) = -K119*<MO2>*<NO3> + PTERMS(:,32,119) = -TPK%K119(:)*PCONC(:,32)*PCONC(:,5) ! ! RETURN -END SUBROUTINE SUBT84 +END SUBROUTINE SUBT26 ! -SUBROUTINE SUBT85 +SUBROUTINE SUBT27 ! -!Indices 1701 a 1720 +!Indices 541 a 560 ! -!PTERMS(WR_OH,KR33) = -KR33*<WR_OH>*<WR_HCHO> - PTERMS(:,135,568) = -TPK%KR33(:)*PCONC(:,135)*PCONC(:,145) +!PTERMS(NO2,K120) = +K120*<ALKAP>*<NO3> + PTERMS(:,4,120) = +TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(WR_HO2,KR33) = +KR33*<WR_OH>*<WR_HCHO> - PTERMS(:,136,568) = +TPK%KR33(:)*PCONC(:,135)*PCONC(:,145) +!PTERMS(NO3,K120) = -K120*<ALKAP>*<NO3> + PTERMS(:,5,120) = -TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(WR_HCHO,KR33) = -KR33*<WR_OH>*<WR_HCHO> - PTERMS(:,145,568) = -TPK%KR33(:)*PCONC(:,135)*PCONC(:,145) +!PTERMS(HO2,K120) = +0.81290*K120*<ALKAP>*<NO3> + PTERMS(:,15,120) = +0.81290*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(WR_ORA1,KR33) = +KR33*<WR_OH>*<WR_HCHO> - PTERMS(:,150,568) = +TPK%KR33(:)*PCONC(:,135)*PCONC(:,145) +!PTERMS(HCHO,K120) = +0.03142*K120*<ALKAP>*<NO3> + PTERMS(:,22,120) = +0.03142*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(WR_OH,KR34) = -KR34*<WR_OH>*<WR_ALD2> - PTERMS(:,135,569) = -TPK%KR34(:)*PCONC(:,135)*PCONC(:,146) +!PTERMS(ALD,K120) = +0.33743*K120*<ALKAP>*<NO3> + PTERMS(:,23,120) = +0.33743*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(WR_CO2,KR34) = +KR34*<WR_OH>*<WR_ALD2> - PTERMS(:,137,569) = +TPK%KR34(:)*PCONC(:,135)*PCONC(:,146) +!PTERMS(KET,K120) = +0.62978*K120*<ALKAP>*<NO3> + PTERMS(:,24,120) = +0.62978*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(WR_RO21,KR34) = +0.50*KR34*<WR_OH>*<WR_ALD2> - PTERMS(:,140,569) = +0.50*TPK%KR34(:)*PCONC(:,135)*PCONC(:,146) +!PTERMS(CARBO,K120) = +0.03531*K120*<ALKAP>*<NO3> + PTERMS(:,25,120) = +0.03531*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(WR_RO25,KR34) = +0.50*KR34*<WR_OH>*<WR_ALD2> - PTERMS(:,141,569) = +0.50*TPK%KR34(:)*PCONC(:,135)*PCONC(:,146) +!PTERMS(MO2,K120) = +0.09731*K120*<ALKAP>*<NO3> + PTERMS(:,32,120) = +0.09731*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(WR_ALD2,KR34) = -KR34*<WR_OH>*<WR_ALD2> - PTERMS(:,146,569) = -TPK%KR34(:)*PCONC(:,135)*PCONC(:,146) +!PTERMS(ALKAP,K120) = -K120*<ALKAP>*<NO3> + PTERMS(:,33,120) = -TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(WR_OH,KR35) = -KR35*<WR_OH>*<WR_GLY> - PTERMS(:,135,570) = -TPK%KR35(:)*PCONC(:,135)*PCONC(:,147) +!PTERMS(XO2,K120) = +0.16271*K120*<ALKAP>*<NO3> + PTERMS(:,41,120) = +0.16271*TPK%K120(:)*PCONC(:,33)*PCONC(:,5) ! -!PTERMS(WR_HO2,KR35) = +KR35*<WR_OH>*<WR_GLY> - PTERMS(:,136,570) = +TPK%KR35(:)*PCONC(:,135)*PCONC(:,147) +!PTERMS(NO2,K121) = +K121*<ALKEP>*<NO3> + PTERMS(:,4,121) = +TPK%K121(:)*PCONC(:,34)*PCONC(:,5) ! -!PTERMS(WR_GLY,KR35) = -KR35*<WR_OH>*<WR_GLY> - PTERMS(:,147,570) = -TPK%KR35(:)*PCONC(:,135)*PCONC(:,147) +!PTERMS(NO3,K121) = -K121*<ALKEP>*<NO3> + PTERMS(:,5,121) = -TPK%K121(:)*PCONC(:,34)*PCONC(:,5) ! -!PTERMS(WR_RP16,KR35) = +KR35*<WR_OH>*<WR_GLY> - PTERMS(:,153,570) = +TPK%KR35(:)*PCONC(:,135)*PCONC(:,147) +!PTERMS(HO2,K121) = +K121*<ALKEP>*<NO3> + PTERMS(:,15,121) = +TPK%K121(:)*PCONC(:,34)*PCONC(:,5) ! -!PTERMS(WR_OH,KR36) = -KR36*<WR_OH>*<WR_MGLY> - PTERMS(:,135,571) = -TPK%KR36(:)*PCONC(:,135)*PCONC(:,148) +!PTERMS(HCHO,K121) = +1.40909*K121*<ALKEP>*<NO3> + PTERMS(:,22,121) = +1.40909*TPK%K121(:)*PCONC(:,34)*PCONC(:,5) ! -!PTERMS(WR_HO2,KR36) = +KR36*<WR_OH>*<WR_MGLY> - PTERMS(:,136,571) = +TPK%KR36(:)*PCONC(:,135)*PCONC(:,148) +!PTERMS(ALD,K121) = +0.43039*K121*<ALKEP>*<NO3> + PTERMS(:,23,121) = +0.43039*TPK%K121(:)*PCONC(:,34)*PCONC(:,5) ! -!PTERMS(WR_MGLY,KR36) = -KR36*<WR_OH>*<WR_MGLY> - PTERMS(:,148,571) = -TPK%KR36(:)*PCONC(:,135)*PCONC(:,148) +!PTERMS(KET,K121) = +0.02051*K121*<ALKEP>*<NO3> + PTERMS(:,24,121) = +0.02051*TPK%K121(:)*PCONC(:,34)*PCONC(:,5) ! -!PTERMS(WR_UR21,KR36) = +KR36*<WR_OH>*<WR_MGLY> - PTERMS(:,154,571) = +TPK%KR36(:)*PCONC(:,135)*PCONC(:,148) +!PTERMS(ALKEP,K121) = -K121*<ALKEP>*<NO3> + PTERMS(:,34,121) = -TPK%K121(:)*PCONC(:,34)*PCONC(:,5) ! -!PTERMS(WR_H2O2,KR37) = +KR37*<WR_OH>*<WR_KETL> - PTERMS(:,126,572) = +TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) +!PTERMS(NO2,K122) = +K122*<BIOP>*<NO3> + PTERMS(:,4,122) = +TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! -!PTERMS(WR_OH,KR37) = -KR37*<WR_OH>*<WR_KETL> - PTERMS(:,135,572) = -TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) +!PTERMS(NO3,K122) = -K122*<BIOP>*<NO3> + PTERMS(:,5,122) = -TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! -!PTERMS(WR_HO2,KR37) = +KR37*<WR_OH>*<WR_KETL> - PTERMS(:,136,572) = +TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) +!PTERMS(HO2,K122) = +K122*<BIOP>*<NO3> + PTERMS(:,15,122) = +TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! ! RETURN -END SUBROUTINE SUBT85 +END SUBROUTINE SUBT27 ! -SUBROUTINE SUBT86 +SUBROUTINE SUBT28 ! -!Indices 1721 a 1740 +!Indices 561 a 580 ! -!PTERMS(WR_CO2,KR37) = +KR37*<WR_OH>*<WR_KETL> - PTERMS(:,137,572) = +TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) +!PTERMS(ALKE,K122) = +0.42729*K122*<BIOP>*<NO3> + PTERMS(:,19,122) = +0.42729*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! -!PTERMS(WR_RO21,KR37) = +KR37*<WR_OH>*<WR_KETL> - PTERMS(:,140,572) = +TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) +!PTERMS(HCHO,K122) = +0.68600*K122*<BIOP>*<NO3> + PTERMS(:,22,122) = +0.68600*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! -!PTERMS(WR_HCHO,KR37) = +KR37*<WR_OH>*<WR_KETL> - PTERMS(:,145,572) = +TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) +!PTERMS(ALD,K122) = +0.00000*K122*<BIOP>*<NO3> + PTERMS(:,23,122) = +0.00000*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! -!PTERMS(WR_ALD2,KR37) = +KR37*<WR_OH>*<WR_KETL> - PTERMS(:,146,572) = +TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) +!PTERMS(KET,K122) = +0.00000*K122*<BIOP>*<NO3> + PTERMS(:,24,122) = +0.00000*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! -!PTERMS(WR_MGLY,KR37) = +KR37*<WR_OH>*<WR_KETL> - PTERMS(:,148,572) = +TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) +!PTERMS(CARBO,K122) = +0.61160*K122*<BIOP>*<NO3> + PTERMS(:,25,122) = +0.61160*TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! -!PTERMS(WR_KETL,KR37) = -KR37*<WR_OH>*<WR_KETL> - PTERMS(:,149,572) = -TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) +!PTERMS(BIOP,K122) = -K122*<BIOP>*<NO3> + PTERMS(:,35,122) = -TPK%K122(:)*PCONC(:,35)*PCONC(:,5) ! -!PTERMS(WR_UR21,KR37) = +KR37*<WR_OH>*<WR_KETL> - PTERMS(:,154,572) = +TPK%KR37(:)*PCONC(:,135)*PCONC(:,149) +!PTERMS(NO2,K123) = +K123*<AROP>*<NO3> + PTERMS(:,4,123) = +TPK%K123(:)*PCONC(:,38)*PCONC(:,5) ! -!PTERMS(WR_OH,KR38) = -KR38*<WR_OH>*<WR_ORA1> - PTERMS(:,135,573) = -TPK%KR38(:)*PCONC(:,135)*PCONC(:,150) +!PTERMS(NO3,K123) = -K123*<AROP>*<NO3> + PTERMS(:,5,123) = -TPK%K123(:)*PCONC(:,38)*PCONC(:,5) ! -!PTERMS(WR_HO2,KR38) = +KR38*<WR_OH>*<WR_ORA1> - PTERMS(:,136,573) = +TPK%KR38(:)*PCONC(:,135)*PCONC(:,150) +!PTERMS(HO2,K123) = +K123*<AROP>*<NO3> + PTERMS(:,15,123) = +TPK%K123(:)*PCONC(:,38)*PCONC(:,5) ! -!PTERMS(WR_CO2,KR38) = +KR38*<WR_OH>*<WR_ORA1> - PTERMS(:,137,573) = +TPK%KR38(:)*PCONC(:,135)*PCONC(:,150) +!PTERMS(CARBO,K123) = +2.81904*K123*<AROP>*<NO3> + PTERMS(:,25,123) = +2.81904*TPK%K123(:)*PCONC(:,38)*PCONC(:,5) ! -!PTERMS(WR_ORA1,KR38) = -KR38*<WR_OH>*<WR_ORA1> - PTERMS(:,150,573) = -TPK%KR38(:)*PCONC(:,135)*PCONC(:,150) +!PTERMS(AROP,K123) = -K123*<AROP>*<NO3> + PTERMS(:,38,123) = -TPK%K123(:)*PCONC(:,38)*PCONC(:,5) ! -!PTERMS(WR_H2O2,KR39) = +0.5*KR39*<WR_OH>*<WR_ORA2> - PTERMS(:,126,574) = +0.5*TPK%KR39(:)*PCONC(:,135)*PCONC(:,151) +!PTERMS(NO2,K124) = +K124*<CARBOP>*<NO3> + PTERMS(:,4,124) = +TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! -!PTERMS(WR_OH,KR39) = -KR39*<WR_OH>*<WR_ORA2> - PTERMS(:,135,574) = -TPK%KR39(:)*PCONC(:,135)*PCONC(:,151) +!PTERMS(NO3,K124) = -K124*<CARBOP>*<NO3> + PTERMS(:,5,124) = -TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! -!PTERMS(WR_ORA2,KR39) = -KR39*<WR_OH>*<WR_ORA2> - PTERMS(:,151,574) = -TPK%KR39(:)*PCONC(:,135)*PCONC(:,151) +!PTERMS(HO2,K124) = +0.04915*K124*<CARBOP>*<NO3> + PTERMS(:,15,124) = +0.04915*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! -!PTERMS(WR_RP16,KR39) = +KR39*<WR_OH>*<WR_ORA2> - PTERMS(:,153,574) = +TPK%KR39(:)*PCONC(:,135)*PCONC(:,151) +!PTERMS(HCHO,K124) = +0.03175*K124*<CARBOP>*<NO3> + PTERMS(:,22,124) = +0.03175*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! -!PTERMS(WR_OH,KR40) = -KR40*<WR_OH>*<WR_ACID> - PTERMS(:,135,575) = -TPK%KR40(:)*PCONC(:,135)*PCONC(:,152) +!PTERMS(ALD,K124) = +0.02936*K124*<CARBOP>*<NO3> + PTERMS(:,23,124) = +0.02936*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! -!PTERMS(WR_CO2,KR40) = +KR40*<WR_OH>*<WR_ACID> - PTERMS(:,137,575) = +TPK%KR40(:)*PCONC(:,135)*PCONC(:,152) +!PTERMS(CARBO,K124) = +0.03455*K124*<CARBOP>*<NO3> + PTERMS(:,25,124) = +0.03455*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! -!PTERMS(WR_RO25,KR40) = +KR40*<WR_OH>*<WR_ACID> - PTERMS(:,141,575) = +TPK%KR40(:)*PCONC(:,135)*PCONC(:,152) +!PTERMS(MO2,K124) = +0.91910*K124*<CARBOP>*<NO3> + PTERMS(:,32,124) = +0.91910*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! -!PTERMS(WR_ACID,KR40) = -KR40*<WR_OH>*<WR_ACID> - PTERMS(:,152,575) = -TPK%KR40(:)*PCONC(:,135)*PCONC(:,152) +!PTERMS(CARBOP,K124) = -K124*<CARBOP>*<NO3> + PTERMS(:,39,124) = -TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! -!PTERMS(WR_H2O2,KR41) = +0.29*KR41*<WR_OH>*<WR_ACID> - PTERMS(:,126,576) = +0.29*TPK%KR41(:)*PCONC(:,135)*PCONC(:,152) +!PTERMS(XO2,K124) = +0.01021*K124*<CARBOP>*<NO3> + PTERMS(:,41,124) = +0.01021*TPK%K124(:)*PCONC(:,39)*PCONC(:,5) ! ! RETURN -END SUBROUTINE SUBT86 +END SUBROUTINE SUBT28 ! -SUBROUTINE SUBT87 +SUBROUTINE SUBT29 ! -!Indices 1741 a 1760 +!Indices 581 a 600 ! -!PTERMS(WR_OH,KR41) = -KR41*<WR_OH>*<WR_ACID> - PTERMS(:,135,576) = -TPK%KR41(:)*PCONC(:,135)*PCONC(:,152) +!PTERMS(NO2,K125) = +1.74072*K125*<OLN>*<NO3> + PTERMS(:,4,125) = +1.74072*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) ! -!PTERMS(WR_HO2,KR41) = +0.11*KR41*<WR_OH>*<WR_ACID> - PTERMS(:,136,576) = +0.11*TPK%KR41(:)*PCONC(:,135)*PCONC(:,152) +!PTERMS(NO3,K125) = -K125*<OLN>*<NO3> + PTERMS(:,5,125) = -TPK%K125(:)*PCONC(:,40)*PCONC(:,5) ! -!PTERMS(WR_ALD2,KR41) = +0.29*KR41*<WR_OH>*<WR_ACID> - PTERMS(:,146,576) = +0.29*TPK%KR41(:)*PCONC(:,135)*PCONC(:,152) +!PTERMS(HO2,K125) = +0.25928*K125*<OLN>*<NO3> + PTERMS(:,15,125) = +0.25928*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) ! -!PTERMS(WR_ACID,KR41) = -KR41*<WR_OH>*<WR_ACID> - PTERMS(:,152,576) = -TPK%KR41(:)*PCONC(:,135)*PCONC(:,152) +!PTERMS(HCHO,K125) = +0.20740*K125*<OLN>*<NO3> + PTERMS(:,22,125) = +0.20740*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) ! -!PTERMS(WR_UR21,KR41) = +0.56*KR41*<WR_OH>*<WR_ACID> - PTERMS(:,154,576) = +0.56*TPK%KR41(:)*PCONC(:,135)*PCONC(:,152) +!PTERMS(ALD,K125) = +0.91850*K125*<OLN>*<NO3> + PTERMS(:,23,125) = +0.91850*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) ! -!PTERMS(WR_ACID2,KR41) = +0.15*KR41*<WR_OH>*<WR_ACID> - PTERMS(:,156,576) = +0.15*TPK%KR41(:)*PCONC(:,135)*PCONC(:,152) +!PTERMS(KET,K125) = +0.34740*K125*<OLN>*<NO3> + PTERMS(:,24,125) = +0.34740*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) ! -!PTERMS(WR_OH,KR42) = -KR42*<WR_OH>*<WR_UR28> - PTERMS(:,135,577) = -TPK%KR42(:)*PCONC(:,135)*PCONC(:,155) +!PTERMS(ONIT,K125) = +0.25928*K125*<OLN>*<NO3> + PTERMS(:,26,125) = +0.25928*TPK%K125(:)*PCONC(:,40)*PCONC(:,5) ! -!PTERMS(WR_HO2,KR42) = +KR42*<WR_OH>*<WR_UR28> - PTERMS(:,136,577) = +TPK%KR42(:)*PCONC(:,135)*PCONC(:,155) +!PTERMS(OLN,K125) = -K125*<OLN>*<NO3> + PTERMS(:,40,125) = -TPK%K125(:)*PCONC(:,40)*PCONC(:,5) ! -!PTERMS(WR_CO2,KR42) = +2*KR42*<WR_OH>*<WR_UR28> - PTERMS(:,137,577) = +2*TPK%KR42(:)*PCONC(:,135)*PCONC(:,155) +!PTERMS(HO2,K126) = -K126*<XO2>*<HO2> + PTERMS(:,15,126) = -TPK%K126(:)*PCONC(:,41)*PCONC(:,15) ! -!PTERMS(WR_UR28,KR42) = -KR42*<WR_OH>*<WR_UR28> - PTERMS(:,155,577) = -TPK%KR42(:)*PCONC(:,135)*PCONC(:,155) +!PTERMS(OP2,K126) = +1.00524*K126*<XO2>*<HO2> + PTERMS(:,29,126) = +1.00524*TPK%K126(:)*PCONC(:,41)*PCONC(:,15) ! -!PTERMS(WR_H2O2,KR43) = +0.3*KR43*<WR_OH>*<WR_UR21> - PTERMS(:,126,578) = +0.3*TPK%KR43(:)*PCONC(:,135)*PCONC(:,154) +!PTERMS(XO2,K126) = -K126*<XO2>*<HO2> + PTERMS(:,41,126) = -TPK%K126(:)*PCONC(:,41)*PCONC(:,15) ! -!PTERMS(WR_OH,KR43) = -KR43*<WR_OH>*<WR_UR21> - PTERMS(:,135,578) = -TPK%KR43(:)*PCONC(:,135)*PCONC(:,154) +!PTERMS(HO2,K127) = +K127*<XO2>*<MO2> + PTERMS(:,15,127) = +TPK%K127(:)*PCONC(:,41)*PCONC(:,32) ! -!PTERMS(WR_HO2,KR43) = +0.81*KR43*<WR_OH>*<WR_UR21> - PTERMS(:,136,578) = +0.81*TPK%KR43(:)*PCONC(:,135)*PCONC(:,154) +!PTERMS(HCHO,K127) = +K127*<XO2>*<MO2> + PTERMS(:,22,127) = +TPK%K127(:)*PCONC(:,41)*PCONC(:,32) ! -!PTERMS(WR_CO2,KR43) = +0.43*KR43*<WR_OH>*<WR_UR21> - PTERMS(:,137,578) = +0.43*TPK%KR43(:)*PCONC(:,135)*PCONC(:,154) +!PTERMS(MO2,K127) = -K127*<XO2>*<MO2> + PTERMS(:,32,127) = -TPK%K127(:)*PCONC(:,41)*PCONC(:,32) ! -!PTERMS(WR_ALD2,KR43) = +0.43*KR43*<WR_OH>*<WR_UR21> - PTERMS(:,146,578) = +0.43*TPK%KR43(:)*PCONC(:,135)*PCONC(:,154) +!PTERMS(XO2,K127) = -K127*<XO2>*<MO2> + PTERMS(:,41,127) = -TPK%K127(:)*PCONC(:,41)*PCONC(:,32) ! -!PTERMS(WR_UR21,KR43) = -KR43*<WR_OH>*<WR_UR21> - PTERMS(:,154,578) = -TPK%KR43(:)*PCONC(:,135)*PCONC(:,154) +!PTERMS(MO2,K128) = +K128*<XO2>*<CARBOP> + PTERMS(:,32,128) = +TPK%K128(:)*PCONC(:,41)*PCONC(:,39) ! -!PTERMS(WR_ACID2,KR43) = +0.56*KR43*<WR_OH>*<WR_UR21> - PTERMS(:,156,578) = +0.56*TPK%KR43(:)*PCONC(:,135)*PCONC(:,154) +!PTERMS(CARBOP,K128) = -K128*<XO2>*<CARBOP> + PTERMS(:,39,128) = -TPK%K128(:)*PCONC(:,41)*PCONC(:,39) ! -!PTERMS(WR_OH,KR44) = -KR44*<WR_OH>*<WR_RP16> - PTERMS(:,135,579) = -TPK%KR44(:)*PCONC(:,135)*PCONC(:,153) +!PTERMS(XO2,K128) = -K128*<XO2>*<CARBOP> + PTERMS(:,41,128) = -TPK%K128(:)*PCONC(:,41)*PCONC(:,39) ! -!PTERMS(WR_HO2,KR44) = +KR44*<WR_OH>*<WR_RP16> - PTERMS(:,136,579) = +TPK%KR44(:)*PCONC(:,135)*PCONC(:,153) +!PTERMS(XO2,K129) = -K129*<XO2>*<XO2> + PTERMS(:,41,129) = -TPK%K129(:)*PCONC(:,41)*PCONC(:,41) ! -!PTERMS(WR_RP16,KR44) = -KR44*<WR_OH>*<WR_RP16> - PTERMS(:,153,579) = -TPK%KR44(:)*PCONC(:,135)*PCONC(:,153) +!PTERMS(NO,K130) = -K130*<XO2>*<NO> + PTERMS(:,3,130) = -TPK%K130(:)*PCONC(:,41)*PCONC(:,3) ! ! RETURN -END SUBROUTINE SUBT87 -! -SUBROUTINE SUBT88 -! -!Indices 1761 a 1768 +END SUBROUTINE SUBT29 ! -!PTERMS(WR_UR28,KR44) = +KR44*<WR_OH>*<WR_RP16> - PTERMS(:,155,579) = +TPK%KR44(:)*PCONC(:,135)*PCONC(:,153) +SUBROUTINE SUBT30 ! -!PTERMS(WR_H2O2,KR45) = +0.45*KR45*<WR_OH>*<WR_RP16> - PTERMS(:,126,580) = +0.45*TPK%KR45(:)*PCONC(:,135)*PCONC(:,153) +!Indices 601 a 606 ! -!PTERMS(WR_OH,KR45) = -KR45*<WR_OH>*<WR_RP16> - PTERMS(:,135,580) = -TPK%KR45(:)*PCONC(:,135)*PCONC(:,153) +!PTERMS(NO2,K130) = +K130*<XO2>*<NO> + PTERMS(:,4,130) = +TPK%K130(:)*PCONC(:,41)*PCONC(:,3) ! -!PTERMS(WR_HO2,KR45) = +0.71*KR45*<WR_OH>*<WR_RP16> - PTERMS(:,136,580) = +0.71*TPK%KR45(:)*PCONC(:,135)*PCONC(:,153) +!PTERMS(XO2,K130) = -K130*<XO2>*<NO> + PTERMS(:,41,130) = -TPK%K130(:)*PCONC(:,41)*PCONC(:,3) ! -!PTERMS(WR_CO2,KR45) = +2*KR45*<WR_OH>*<WR_RP16> - PTERMS(:,137,580) = +2*TPK%KR45(:)*PCONC(:,135)*PCONC(:,153) +!PTERMS(NO2,K131) = +K131*<XO2>*<NO3> + PTERMS(:,4,131) = +TPK%K131(:)*PCONC(:,41)*PCONC(:,5) ! -!PTERMS(WR_RP16,KR45) = -KR45*<WR_OH>*<WR_RP16> - PTERMS(:,153,580) = -TPK%KR45(:)*PCONC(:,135)*PCONC(:,153) +!PTERMS(NO3,K131) = -K131*<XO2>*<NO3> + PTERMS(:,5,131) = -TPK%K131(:)*PCONC(:,41)*PCONC(:,5) ! -!PTERMS(WR_OH,KR46) = -KR46*<WR_OH>*<WR_ACID2> - PTERMS(:,135,581) = -TPK%KR46(:)*PCONC(:,135)*PCONC(:,156) +!PTERMS(XO2,K131) = -K131*<XO2>*<NO3> + PTERMS(:,41,131) = -TPK%K131(:)*PCONC(:,41)*PCONC(:,5) ! -!PTERMS(WR_ACID2,KR46) = -KR46*<WR_OH>*<WR_ACID2> - PTERMS(:,156,581) = -TPK%KR46(:)*PCONC(:,135)*PCONC(:,156) +!PTERMS(SULF,K132) = -K132*<SULF> + PTERMS(:,12,132) = -TPK%K132(:)*PCONC(:,12) ! ! RETURN -END SUBROUTINE SUBT88 +END SUBROUTINE SUBT30 ! -END SUBROUTINE CH_TERMS_AQ +END SUBROUTINE CH_TERMS_GAZ ! !======================================================================== ! @@ -96503,7 +35335,7 @@ END IF CONTAINS !! !! ############################# - SUBROUTINE CH_NONZEROTERMS_GAZ + SUBROUTINE CH_NONZEROTERMS_AQ !! ############################# !! This code has been created automatically by preprocessor m10, !! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. @@ -96547,2391 +35379,1899 @@ CONTAINS !! ------------------ IMPLICIT NONE ! check if output array is large enough -IF (KINDEXDIM.LT.1188) THEN +IF (KINDEXDIM.LT.942) THEN STOP 'CH_NONZEROTERMS ERROR: array KINDEX is too small!' END IF - KINDEX(1, 1)=1 + KINDEX(1, 1)=3 KINDEX(2, 1)=1 - KINDEX(1, 2)=2 + KINDEX(1, 2)=4 KINDEX(2, 2)=1 - KINDEX(1, 3)=3 + KINDEX(1, 3)=1 KINDEX(2, 3)=2 KINDEX(1, 4)=1 KINDEX(2, 4)=3 - KINDEX(1, 5)=2 - KINDEX(2, 5)=3 - KINDEX(1, 6)=2 + KINDEX(1, 5)=3 + KINDEX(2, 5)=4 + KINDEX(1, 6)=7 KINDEX(2, 6)=4 - KINDEX(1, 7)=8 + KINDEX(1, 7)=14 KINDEX(2, 7)=4 - KINDEX(1, 8)=1 + KINDEX(1, 8)=4 KINDEX(2, 8)=5 - KINDEX(1, 9)=2 + KINDEX(1, 9)=8 KINDEX(2, 9)=5 - KINDEX(1, 10)=3 + KINDEX(1, 10)=14 KINDEX(2, 10)=5 - KINDEX(1, 11)=2 + KINDEX(1, 11)=4 KINDEX(2, 11)=6 - KINDEX(1, 12)=3 + KINDEX(1, 12)=5 KINDEX(2, 12)=6 - KINDEX(1, 13)=8 + KINDEX(1, 13)=9 KINDEX(2, 13)=6 - KINDEX(1, 14)=1 - KINDEX(2, 14)=7 - KINDEX(1, 15)=2 - KINDEX(2, 15)=7 - KINDEX(1, 16)=8 + KINDEX(1, 14)=14 + KINDEX(2, 14)=6 + KINDEX(1, 15)=15 + KINDEX(2, 15)=6 + KINDEX(1, 16)=3 KINDEX(2, 16)=7 - KINDEX(1, 17)=1 - KINDEX(2, 17)=8 - KINDEX(1, 18)=2 + KINDEX(1, 17)=5 + KINDEX(2, 17)=7 + KINDEX(1, 18)=4 KINDEX(2, 18)=8 - KINDEX(1, 19)=2 - KINDEX(2, 19)=9 - KINDEX(1, 20)=7 + KINDEX(1, 19)=5 + KINDEX(2, 19)=8 + KINDEX(1, 20)=2 KINDEX(2, 20)=9 - KINDEX(1, 21)=8 + KINDEX(1, 21)=14 KINDEX(2, 21)=9 - KINDEX(1, 22)=2 + KINDEX(1, 22)=13 KINDEX(2, 22)=10 - KINDEX(1, 23)=7 + KINDEX(1, 23)=22 KINDEX(2, 23)=10 - KINDEX(1, 24)=8 - KINDEX(2, 24)=10 - KINDEX(1, 25)=5 + KINDEX(1, 24)=13 + KINDEX(2, 24)=11 + KINDEX(1, 25)=15 KINDEX(2, 25)=11 - KINDEX(1, 26)=7 + KINDEX(1, 26)=22 KINDEX(2, 26)=11 - KINDEX(1, 27)=1 + KINDEX(1, 27)=13 KINDEX(2, 27)=12 - KINDEX(1, 28)=2 + KINDEX(1, 28)=15 KINDEX(2, 28)=12 - KINDEX(1, 29)=8 + KINDEX(1, 29)=23 KINDEX(2, 29)=12 - KINDEX(1, 30)=1 - KINDEX(2, 30)=13 - KINDEX(1, 31)=8 + KINDEX(1, 30)=32 + KINDEX(2, 30)=12 + KINDEX(1, 31)=14 KINDEX(2, 31)=13 - KINDEX(1, 32)=2 - KINDEX(2, 32)=14 - KINDEX(1, 33)=8 - KINDEX(2, 33)=14 - KINDEX(1, 34)=3 - KINDEX(2, 34)=15 - KINDEX(1, 35)=3 - KINDEX(2, 35)=16 + KINDEX(1, 32)=15 + KINDEX(2, 32)=13 + KINDEX(1, 33)=22 + KINDEX(2, 33)=13 + KINDEX(1, 34)=28 + KINDEX(2, 34)=13 + KINDEX(1, 35)=14 + KINDEX(2, 35)=14 KINDEX(1, 36)=15 - KINDEX(2, 36)=17 - KINDEX(1, 37)=1 - KINDEX(2, 37)=20 - KINDEX(1, 38)=4 - KINDEX(2, 38)=20 - KINDEX(1, 39)=15 - KINDEX(2, 39)=20 - KINDEX(1, 40)=1 - KINDEX(2, 40)=21 - KINDEX(1, 41)=2 - KINDEX(2, 41)=21 - KINDEX(1, 42)=4 - KINDEX(2, 42)=21 - KINDEX(1, 43)=10 - KINDEX(2, 43)=21 + KINDEX(2, 36)=14 + KINDEX(1, 37)=23 + KINDEX(2, 37)=14 + KINDEX(1, 38)=29 + KINDEX(2, 38)=14 + KINDEX(1, 39)=32 + KINDEX(2, 39)=14 + KINDEX(1, 40)=24 + KINDEX(2, 40)=15 + KINDEX(1, 41)=33 + KINDEX(2, 41)=15 + KINDEX(1, 42)=39 + KINDEX(2, 42)=15 + KINDEX(1, 43)=13 + KINDEX(2, 43)=16 KINDEX(1, 44)=15 - KINDEX(2, 44)=21 - KINDEX(1, 45)=2 - KINDEX(2, 45)=22 - KINDEX(1, 46)=4 - KINDEX(2, 46)=22 - KINDEX(1, 47)=5 - KINDEX(2, 47)=22 - KINDEX(1, 48)=2 - KINDEX(2, 48)=23 - KINDEX(1, 49)=5 - KINDEX(2, 49)=23 - KINDEX(1, 50)=15 - KINDEX(2, 50)=23 - KINDEX(1, 51)=5 - KINDEX(2, 51)=24 - KINDEX(1, 52)=8 - KINDEX(2, 52)=24 - KINDEX(1, 53)=15 - KINDEX(2, 53)=24 - KINDEX(1, 54)=10 - KINDEX(2, 54)=25 - KINDEX(1, 55)=11 - KINDEX(2, 55)=25 - KINDEX(1, 56)=15 - KINDEX(2, 56)=25 - KINDEX(1, 57)=3 - KINDEX(2, 57)=26 - KINDEX(1, 58)=10 - KINDEX(2, 58)=26 - KINDEX(1, 59)=15 - KINDEX(2, 59)=26 - KINDEX(1, 60)=1 - KINDEX(2, 60)=27 - KINDEX(1, 61)=2 - KINDEX(2, 61)=27 - KINDEX(1, 62)=10 - KINDEX(2, 62)=27 + KINDEX(2, 44)=16 + KINDEX(1, 45)=22 + KINDEX(2, 45)=16 + KINDEX(1, 46)=25 + KINDEX(2, 46)=16 + KINDEX(1, 47)=39 + KINDEX(2, 47)=16 + KINDEX(1, 48)=4 + KINDEX(2, 48)=17 + KINDEX(1, 49)=15 + KINDEX(2, 49)=17 + KINDEX(1, 50)=23 + KINDEX(2, 50)=17 + KINDEX(1, 51)=24 + KINDEX(2, 51)=17 + KINDEX(1, 52)=26 + KINDEX(2, 52)=17 + KINDEX(1, 53)=1 + KINDEX(2, 53)=18 + KINDEX(1, 54)=1 + KINDEX(2, 54)=19 + KINDEX(1, 55)=14 + KINDEX(2, 55)=22 + KINDEX(1, 56)=1 + KINDEX(2, 56)=23 + KINDEX(1, 57)=14 + KINDEX(2, 57)=23 + KINDEX(1, 58)=15 + KINDEX(2, 58)=23 + KINDEX(1, 59)=1 + KINDEX(2, 59)=24 + KINDEX(1, 60)=14 + KINDEX(2, 60)=24 + KINDEX(1, 61)=15 + KINDEX(2, 61)=24 + KINDEX(1, 62)=14 + KINDEX(2, 62)=25 KINDEX(1, 63)=15 - KINDEX(2, 63)=27 + KINDEX(2, 63)=25 KINDEX(1, 64)=2 - KINDEX(2, 64)=28 - KINDEX(1, 65)=6 - KINDEX(2, 65)=28 - KINDEX(1, 66)=10 - KINDEX(2, 66)=28 + KINDEX(2, 64)=26 + KINDEX(1, 65)=14 + KINDEX(2, 65)=26 + KINDEX(1, 66)=15 + KINDEX(2, 66)=26 KINDEX(1, 67)=2 - KINDEX(2, 67)=29 - KINDEX(1, 68)=6 - KINDEX(2, 68)=29 - KINDEX(1, 69)=10 - KINDEX(2, 69)=29 - KINDEX(1, 70)=2 - KINDEX(2, 70)=30 - KINDEX(1, 71)=6 - KINDEX(2, 71)=30 - KINDEX(1, 72)=15 - KINDEX(2, 72)=30 + KINDEX(2, 67)=27 + KINDEX(1, 68)=15 + KINDEX(2, 68)=27 + KINDEX(1, 69)=2 + KINDEX(2, 69)=28 + KINDEX(1, 70)=15 + KINDEX(2, 70)=28 + KINDEX(1, 71)=3 + KINDEX(2, 71)=29 + KINDEX(1, 72)=4 + KINDEX(2, 72)=29 KINDEX(1, 73)=3 - KINDEX(2, 73)=31 - KINDEX(1, 74)=10 - KINDEX(2, 74)=31 - KINDEX(1, 75)=15 + KINDEX(2, 73)=30 + KINDEX(1, 74)=4 + KINDEX(2, 74)=30 + KINDEX(1, 75)=4 KINDEX(2, 75)=31 - KINDEX(1, 76)=10 - KINDEX(2, 76)=32 - KINDEX(1, 77)=12 + KINDEX(1, 76)=5 + KINDEX(2, 76)=31 + KINDEX(1, 77)=3 KINDEX(2, 77)=32 - KINDEX(1, 78)=10 - KINDEX(2, 78)=33 - KINDEX(1, 79)=12 - KINDEX(2, 79)=33 - KINDEX(1, 80)=2 - KINDEX(2, 80)=34 - KINDEX(1, 81)=5 - KINDEX(2, 81)=34 - KINDEX(1, 82)=8 - KINDEX(2, 82)=34 - KINDEX(1, 83)=10 + KINDEX(1, 78)=7 + KINDEX(2, 78)=32 + KINDEX(1, 79)=14 + KINDEX(2, 79)=32 + KINDEX(1, 80)=4 + KINDEX(2, 80)=33 + KINDEX(1, 81)=8 + KINDEX(2, 81)=33 + KINDEX(1, 82)=14 + KINDEX(2, 82)=33 + KINDEX(1, 83)=4 KINDEX(2, 83)=34 - KINDEX(1, 84)=15 + KINDEX(1, 84)=5 KINDEX(2, 84)=34 - KINDEX(1, 85)=3 - KINDEX(2, 85)=35 - KINDEX(1, 86)=10 - KINDEX(2, 86)=36 - KINDEX(1, 87)=13 - KINDEX(2, 87)=36 - KINDEX(1, 88)=14 - KINDEX(2, 88)=36 - KINDEX(1, 89)=15 - KINDEX(2, 89)=36 - KINDEX(1, 90)=12 - KINDEX(2, 90)=37 - KINDEX(1, 91)=15 - KINDEX(2, 91)=37 - KINDEX(1, 92)=10 - KINDEX(2, 92)=38 - KINDEX(1, 93)=12 - KINDEX(2, 93)=38 - KINDEX(1, 94)=15 - KINDEX(2, 94)=38 - KINDEX(1, 95)=1 - KINDEX(2, 95)=39 - KINDEX(1, 96)=2 - KINDEX(2, 96)=39 - KINDEX(1, 97)=2 - KINDEX(2, 97)=40 - KINDEX(1, 98)=4 - KINDEX(2, 98)=40 - KINDEX(1, 99)=15 - KINDEX(2, 99)=40 - KINDEX(1, 100)=2 - KINDEX(2, 100)=41 - KINDEX(1, 101)=8 - KINDEX(2, 101)=41 - KINDEX(1, 102)=10 - KINDEX(2, 102)=41 - KINDEX(1, 103)=15 - KINDEX(2, 103)=41 - KINDEX(1, 104)=2 - KINDEX(2, 104)=42 - KINDEX(1, 105)=8 - KINDEX(2, 105)=42 - KINDEX(1, 106)=10 - KINDEX(2, 106)=43 - KINDEX(1, 107)=15 - KINDEX(2, 107)=43 - KINDEX(1, 108)=15 - KINDEX(2, 108)=44 - KINDEX(1, 109)=85 - KINDEX(2, 109)=44 - KINDEX(1, 110)=86 - KINDEX(2, 110)=44 - KINDEX(1, 111)=10 - KINDEX(2, 111)=45 - KINDEX(1, 112)=11 - KINDEX(2, 112)=45 - KINDEX(1, 113)=28 - KINDEX(2, 113)=45 - KINDEX(1, 114)=11 - KINDEX(2, 114)=46 - KINDEX(1, 115)=28 - KINDEX(2, 115)=46 - KINDEX(1, 116)=10 - KINDEX(2, 116)=47 - KINDEX(1, 117)=11 - KINDEX(2, 117)=47 - KINDEX(1, 118)=15 - KINDEX(2, 118)=47 - KINDEX(1, 119)=28 - KINDEX(2, 119)=47 - KINDEX(1, 120)=5 - KINDEX(2, 120)=48 - KINDEX(1, 121)=8 - KINDEX(2, 121)=48 - KINDEX(1, 122)=10 - KINDEX(2, 122)=48 - KINDEX(1, 123)=11 - KINDEX(2, 123)=48 - KINDEX(1, 124)=28 - KINDEX(2, 124)=48 - KINDEX(1, 125)=10 - KINDEX(2, 125)=49 - KINDEX(1, 126)=15 - KINDEX(2, 126)=49 - KINDEX(1, 127)=28 - KINDEX(2, 127)=49 - KINDEX(1, 128)=32 - KINDEX(2, 128)=49 - KINDEX(1, 129)=15 - KINDEX(2, 129)=50 - KINDEX(1, 130)=16 - KINDEX(2, 130)=50 - KINDEX(1, 131)=85 - KINDEX(2, 131)=50 - KINDEX(1, 132)=8 - KINDEX(2, 132)=51 - KINDEX(1, 133)=16 - KINDEX(2, 133)=51 - KINDEX(1, 134)=85 - KINDEX(2, 134)=51 - KINDEX(1, 135)=3 - KINDEX(2, 135)=52 - KINDEX(1, 136)=10 - KINDEX(2, 136)=52 + KINDEX(1, 85)=14 + KINDEX(2, 85)=34 + KINDEX(1, 86)=15 + KINDEX(2, 86)=34 + KINDEX(1, 87)=3 + KINDEX(2, 87)=35 + KINDEX(1, 88)=4 + KINDEX(2, 88)=35 + KINDEX(1, 89)=14 + KINDEX(2, 89)=35 + KINDEX(1, 90)=15 + KINDEX(2, 90)=35 + KINDEX(1, 91)=4 + KINDEX(2, 91)=36 + KINDEX(1, 92)=9 + KINDEX(2, 92)=36 + KINDEX(1, 93)=15 + KINDEX(2, 93)=36 + KINDEX(1, 94)=4 + KINDEX(2, 94)=37 + KINDEX(1, 95)=9 + KINDEX(2, 95)=37 + KINDEX(1, 96)=15 + KINDEX(2, 96)=37 + KINDEX(1, 97)=4 + KINDEX(2, 97)=38 + KINDEX(1, 98)=5 + KINDEX(2, 98)=38 + KINDEX(1, 99)=8 + KINDEX(2, 99)=38 + KINDEX(1, 100)=14 + KINDEX(2, 100)=38 + KINDEX(1, 101)=15 + KINDEX(2, 101)=38 + KINDEX(1, 102)=4 + KINDEX(2, 102)=39 + KINDEX(1, 103)=7 + KINDEX(2, 103)=39 + KINDEX(1, 104)=14 + KINDEX(2, 104)=39 + KINDEX(1, 105)=5 + KINDEX(2, 105)=40 + KINDEX(1, 106)=8 + KINDEX(2, 106)=40 + KINDEX(1, 107)=14 + KINDEX(2, 107)=40 + KINDEX(1, 108)=4 + KINDEX(2, 108)=41 + KINDEX(1, 109)=9 + KINDEX(2, 109)=41 + KINDEX(1, 110)=14 + KINDEX(2, 110)=41 + KINDEX(1, 111)=1 + KINDEX(2, 111)=42 + KINDEX(1, 112)=3 + KINDEX(2, 112)=42 + KINDEX(1, 113)=4 + KINDEX(2, 113)=42 + KINDEX(1, 114)=1 + KINDEX(2, 114)=43 + KINDEX(1, 115)=4 + KINDEX(2, 115)=43 + KINDEX(1, 116)=5 + KINDEX(2, 116)=43 + KINDEX(1, 117)=3 + KINDEX(2, 117)=44 + KINDEX(1, 118)=4 + KINDEX(2, 118)=44 + KINDEX(1, 119)=3 + KINDEX(2, 119)=45 + KINDEX(1, 120)=4 + KINDEX(2, 120)=45 + KINDEX(1, 121)=5 + KINDEX(2, 121)=45 + KINDEX(1, 122)=3 + KINDEX(2, 122)=46 + KINDEX(1, 123)=4 + KINDEX(2, 123)=46 + KINDEX(1, 124)=5 + KINDEX(2, 124)=46 + KINDEX(1, 125)=4 + KINDEX(2, 125)=47 + KINDEX(1, 126)=5 + KINDEX(2, 126)=47 + KINDEX(1, 127)=6 + KINDEX(2, 127)=47 + KINDEX(1, 128)=4 + KINDEX(2, 128)=48 + KINDEX(1, 129)=5 + KINDEX(2, 129)=48 + KINDEX(1, 130)=6 + KINDEX(2, 130)=48 + KINDEX(1, 131)=4 + KINDEX(2, 131)=49 + KINDEX(1, 132)=5 + KINDEX(2, 132)=49 + KINDEX(1, 133)=10 + KINDEX(2, 133)=50 + KINDEX(1, 134)=14 + KINDEX(2, 134)=50 + KINDEX(1, 135)=14 + KINDEX(2, 135)=51 + KINDEX(1, 136)=15 + KINDEX(2, 136)=51 KINDEX(1, 137)=11 KINDEX(2, 137)=52 - KINDEX(1, 138)=15 + KINDEX(1, 138)=12 KINDEX(2, 138)=52 - KINDEX(1, 139)=16 + KINDEX(1, 139)=14 KINDEX(2, 139)=52 - KINDEX(1, 140)=28 + KINDEX(1, 140)=15 KINDEX(2, 140)=52 - KINDEX(1, 141)=43 - KINDEX(2, 141)=52 - KINDEX(1, 142)=10 + KINDEX(1, 141)=13 + KINDEX(2, 141)=53 + KINDEX(1, 142)=14 KINDEX(2, 142)=53 - KINDEX(1, 143)=11 + KINDEX(1, 143)=15 KINDEX(2, 143)=53 - KINDEX(1, 144)=16 - KINDEX(2, 144)=53 - KINDEX(1, 145)=85 - KINDEX(2, 145)=53 - KINDEX(1, 146)=86 - KINDEX(2, 146)=53 - KINDEX(1, 147)=10 + KINDEX(1, 144)=13 + KINDEX(2, 144)=54 + KINDEX(1, 145)=14 + KINDEX(2, 145)=54 + KINDEX(1, 146)=15 + KINDEX(2, 146)=54 + KINDEX(1, 147)=19 KINDEX(2, 147)=54 - KINDEX(1, 148)=15 + KINDEX(1, 148)=20 KINDEX(2, 148)=54 - KINDEX(1, 149)=29 + KINDEX(1, 149)=22 KINDEX(2, 149)=54 - KINDEX(1, 150)=33 + KINDEX(1, 150)=25 KINDEX(2, 150)=54 - KINDEX(1, 151)=85 + KINDEX(1, 151)=41 KINDEX(2, 151)=54 - KINDEX(1, 152)=15 + KINDEX(1, 152)=23 KINDEX(2, 152)=55 - KINDEX(1, 153)=17 + KINDEX(1, 153)=25 KINDEX(2, 153)=55 - KINDEX(1, 154)=85 - KINDEX(2, 154)=55 - KINDEX(1, 155)=8 + KINDEX(1, 154)=14 + KINDEX(2, 154)=56 + KINDEX(1, 155)=16 KINDEX(2, 155)=56 - KINDEX(1, 156)=17 + KINDEX(1, 156)=32 KINDEX(2, 156)=56 - KINDEX(1, 157)=85 - KINDEX(2, 157)=56 - KINDEX(1, 158)=3 + KINDEX(1, 157)=14 + KINDEX(2, 157)=57 + KINDEX(1, 158)=17 KINDEX(2, 158)=57 - KINDEX(1, 159)=10 + KINDEX(1, 159)=33 KINDEX(2, 159)=57 - KINDEX(1, 160)=11 - KINDEX(2, 160)=57 - KINDEX(1, 161)=15 - KINDEX(2, 161)=57 - KINDEX(1, 162)=17 - KINDEX(2, 162)=57 - KINDEX(1, 163)=19 - KINDEX(2, 163)=57 - KINDEX(1, 164)=28 - KINDEX(2, 164)=57 - KINDEX(1, 165)=29 - KINDEX(2, 165)=57 - KINDEX(1, 166)=43 - KINDEX(2, 166)=57 - KINDEX(1, 167)=44 - KINDEX(2, 167)=57 - KINDEX(1, 168)=85 - KINDEX(2, 168)=57 - KINDEX(1, 169)=87 - KINDEX(2, 169)=57 - KINDEX(1, 170)=17 - KINDEX(2, 170)=58 + KINDEX(1, 160)=13 + KINDEX(2, 160)=58 + KINDEX(1, 161)=14 + KINDEX(2, 161)=58 + KINDEX(1, 162)=15 + KINDEX(2, 162)=58 + KINDEX(1, 163)=18 + KINDEX(2, 163)=58 + KINDEX(1, 164)=22 + KINDEX(2, 164)=58 + KINDEX(1, 165)=23 + KINDEX(2, 165)=58 + KINDEX(1, 166)=24 + KINDEX(2, 166)=58 + KINDEX(1, 167)=25 + KINDEX(2, 167)=58 + KINDEX(1, 168)=30 + KINDEX(2, 168)=58 + KINDEX(1, 169)=33 + KINDEX(2, 169)=58 + KINDEX(1, 170)=14 + KINDEX(2, 170)=59 KINDEX(1, 171)=19 - KINDEX(2, 171)=58 - KINDEX(1, 172)=29 - KINDEX(2, 172)=58 - KINDEX(1, 173)=85 - KINDEX(2, 173)=58 - KINDEX(1, 174)=87 - KINDEX(2, 174)=58 - KINDEX(1, 175)=15 - KINDEX(2, 175)=59 - KINDEX(1, 176)=19 - KINDEX(2, 176)=59 - KINDEX(1, 177)=85 - KINDEX(2, 177)=59 - KINDEX(1, 178)=87 - KINDEX(2, 178)=59 - KINDEX(1, 179)=10 - KINDEX(2, 179)=60 - KINDEX(1, 180)=11 - KINDEX(2, 180)=60 - KINDEX(1, 181)=29 - KINDEX(2, 181)=60 - KINDEX(1, 182)=85 - KINDEX(2, 182)=60 - KINDEX(1, 183)=87 - KINDEX(2, 183)=60 - KINDEX(1, 184)=15 - KINDEX(2, 184)=61 - KINDEX(1, 185)=29 - KINDEX(2, 185)=61 - KINDEX(1, 186)=85 - KINDEX(2, 186)=61 - KINDEX(1, 187)=5 - KINDEX(2, 187)=62 - KINDEX(1, 188)=8 - KINDEX(2, 188)=62 - KINDEX(1, 189)=29 - KINDEX(2, 189)=62 - KINDEX(1, 190)=85 - KINDEX(2, 190)=62 - KINDEX(1, 191)=15 - KINDEX(2, 191)=63 - KINDEX(1, 192)=30 - KINDEX(2, 192)=63 - KINDEX(1, 193)=85 - KINDEX(2, 193)=63 - KINDEX(1, 194)=30 - KINDEX(2, 194)=64 - KINDEX(1, 195)=85 - KINDEX(2, 195)=64 - KINDEX(1, 196)=87 - KINDEX(2, 196)=64 - KINDEX(1, 197)=15 + KINDEX(2, 171)=59 + KINDEX(1, 172)=34 + KINDEX(2, 172)=59 + KINDEX(1, 173)=35 + KINDEX(2, 173)=59 + KINDEX(1, 174)=14 + KINDEX(2, 174)=60 + KINDEX(1, 175)=20 + KINDEX(2, 175)=60 + KINDEX(1, 176)=35 + KINDEX(2, 176)=60 + KINDEX(1, 177)=14 + KINDEX(2, 177)=61 + KINDEX(1, 178)=15 + KINDEX(2, 178)=61 + KINDEX(1, 179)=21 + KINDEX(2, 179)=61 + KINDEX(1, 180)=36 + KINDEX(2, 180)=61 + KINDEX(1, 181)=37 + KINDEX(2, 181)=61 + KINDEX(1, 182)=41 + KINDEX(2, 182)=61 + KINDEX(1, 183)=13 + KINDEX(2, 183)=62 + KINDEX(1, 184)=14 + KINDEX(2, 184)=62 + KINDEX(1, 185)=15 + KINDEX(2, 185)=62 + KINDEX(1, 186)=22 + KINDEX(2, 186)=62 + KINDEX(1, 187)=14 + KINDEX(2, 187)=63 + KINDEX(1, 188)=23 + KINDEX(2, 188)=63 + KINDEX(1, 189)=39 + KINDEX(2, 189)=63 + KINDEX(1, 190)=14 + KINDEX(2, 190)=64 + KINDEX(1, 191)=24 + KINDEX(2, 191)=64 + KINDEX(1, 192)=39 + KINDEX(2, 192)=64 + KINDEX(1, 193)=13 + KINDEX(2, 193)=65 + KINDEX(1, 194)=14 + KINDEX(2, 194)=65 + KINDEX(1, 195)=15 + KINDEX(2, 195)=65 + KINDEX(1, 196)=22 + KINDEX(2, 196)=65 + KINDEX(1, 197)=23 KINDEX(2, 197)=65 - KINDEX(1, 198)=35 + KINDEX(1, 198)=24 KINDEX(2, 198)=65 - KINDEX(1, 199)=85 + KINDEX(1, 199)=25 KINDEX(2, 199)=65 - KINDEX(1, 200)=8 - KINDEX(2, 200)=66 - KINDEX(1, 201)=35 - KINDEX(2, 201)=66 - KINDEX(1, 202)=85 + KINDEX(1, 200)=39 + KINDEX(2, 200)=65 + KINDEX(1, 201)=41 + KINDEX(2, 201)=65 + KINDEX(1, 202)=14 KINDEX(2, 202)=66 - KINDEX(1, 203)=3 - KINDEX(2, 203)=67 - KINDEX(1, 204)=10 - KINDEX(2, 204)=67 - KINDEX(1, 205)=11 + KINDEX(1, 203)=15 + KINDEX(2, 203)=66 + KINDEX(1, 204)=30 + KINDEX(2, 204)=66 + KINDEX(1, 205)=14 KINDEX(2, 205)=67 - KINDEX(1, 206)=15 + KINDEX(1, 206)=31 KINDEX(2, 206)=67 - KINDEX(1, 207)=17 - KINDEX(2, 207)=67 - KINDEX(1, 208)=28 - KINDEX(2, 208)=67 - KINDEX(1, 209)=35 - KINDEX(2, 209)=67 - KINDEX(1, 210)=39 - KINDEX(2, 210)=67 - KINDEX(1, 211)=40 - KINDEX(2, 211)=67 - KINDEX(1, 212)=43 - KINDEX(2, 212)=67 - KINDEX(1, 213)=85 - KINDEX(2, 213)=67 - KINDEX(1, 214)=17 - KINDEX(2, 214)=68 - KINDEX(1, 215)=29 - KINDEX(2, 215)=68 - KINDEX(1, 216)=35 - KINDEX(2, 216)=68 - KINDEX(1, 217)=15 + KINDEX(1, 207)=14 + KINDEX(2, 207)=68 + KINDEX(1, 208)=22 + KINDEX(2, 208)=68 + KINDEX(1, 209)=28 + KINDEX(2, 209)=68 + KINDEX(1, 210)=32 + KINDEX(2, 210)=68 + KINDEX(1, 211)=14 + KINDEX(2, 211)=69 + KINDEX(1, 212)=15 + KINDEX(2, 212)=69 + KINDEX(1, 213)=22 + KINDEX(2, 213)=69 + KINDEX(1, 214)=23 + KINDEX(2, 214)=69 + KINDEX(1, 215)=24 + KINDEX(2, 215)=69 + KINDEX(1, 216)=29 + KINDEX(2, 216)=69 + KINDEX(1, 217)=33 KINDEX(2, 217)=69 - KINDEX(1, 218)=38 + KINDEX(1, 218)=39 KINDEX(2, 218)=69 - KINDEX(1, 219)=85 + KINDEX(1, 219)=41 KINDEX(2, 219)=69 - KINDEX(1, 220)=15 + KINDEX(1, 220)=5 KINDEX(2, 220)=70 - KINDEX(1, 221)=34 + KINDEX(1, 221)=14 KINDEX(2, 221)=70 - KINDEX(1, 222)=85 + KINDEX(1, 222)=15 KINDEX(2, 222)=70 - KINDEX(1, 223)=15 - KINDEX(2, 223)=71 - KINDEX(1, 224)=31 - KINDEX(2, 224)=71 - KINDEX(1, 225)=85 - KINDEX(2, 225)=71 - KINDEX(1, 226)=31 - KINDEX(2, 226)=72 - KINDEX(1, 227)=85 - KINDEX(2, 227)=72 - KINDEX(1, 228)=87 - KINDEX(2, 228)=72 - KINDEX(1, 229)=5 - KINDEX(2, 229)=73 - KINDEX(1, 230)=8 - KINDEX(2, 230)=73 - KINDEX(1, 231)=24 - KINDEX(2, 231)=73 - KINDEX(1, 232)=10 - KINDEX(2, 232)=74 - KINDEX(1, 233)=15 - KINDEX(2, 233)=74 - KINDEX(1, 234)=24 - KINDEX(2, 234)=74 - KINDEX(1, 235)=85 - KINDEX(2, 235)=74 - KINDEX(1, 236)=15 - KINDEX(2, 236)=75 - KINDEX(1, 237)=18 - KINDEX(2, 237)=75 - KINDEX(1, 238)=85 - KINDEX(2, 238)=75 - KINDEX(1, 239)=8 - KINDEX(2, 239)=76 - KINDEX(1, 240)=18 - KINDEX(2, 240)=76 - KINDEX(1, 241)=85 - KINDEX(2, 241)=76 - KINDEX(1, 242)=3 - KINDEX(2, 242)=77 - KINDEX(1, 243)=10 - KINDEX(2, 243)=77 - KINDEX(1, 244)=11 - KINDEX(2, 244)=77 - KINDEX(1, 245)=15 - KINDEX(2, 245)=77 - KINDEX(1, 246)=18 - KINDEX(2, 246)=77 - KINDEX(1, 247)=20 - KINDEX(2, 247)=77 - KINDEX(1, 248)=28 - KINDEX(2, 248)=77 - KINDEX(1, 249)=45 - KINDEX(2, 249)=77 - KINDEX(1, 250)=69 - KINDEX(2, 250)=77 - KINDEX(1, 251)=85 - KINDEX(2, 251)=77 - KINDEX(1, 252)=18 - KINDEX(2, 252)=78 - KINDEX(1, 253)=20 - KINDEX(2, 253)=78 - KINDEX(1, 254)=69 - KINDEX(2, 254)=78 - KINDEX(1, 255)=85 - KINDEX(2, 255)=78 - KINDEX(1, 256)=15 - KINDEX(2, 256)=79 - KINDEX(1, 257)=20 - KINDEX(2, 257)=79 - KINDEX(1, 258)=85 - KINDEX(2, 258)=79 - KINDEX(1, 259)=10 - KINDEX(2, 259)=80 - KINDEX(1, 260)=15 - KINDEX(2, 260)=80 - KINDEX(1, 261)=23 - KINDEX(2, 261)=80 - KINDEX(1, 262)=24 - KINDEX(2, 262)=80 - KINDEX(1, 263)=85 - KINDEX(2, 263)=80 - KINDEX(1, 264)=10 - KINDEX(2, 264)=81 - KINDEX(1, 265)=15 - KINDEX(2, 265)=81 - KINDEX(1, 266)=22 - KINDEX(2, 266)=81 - KINDEX(1, 267)=24 - KINDEX(2, 267)=81 - KINDEX(1, 268)=3 - KINDEX(2, 268)=82 - KINDEX(1, 269)=5 - KINDEX(2, 269)=82 - KINDEX(1, 270)=8 - KINDEX(2, 270)=82 - KINDEX(1, 271)=25 - KINDEX(2, 271)=82 - KINDEX(1, 272)=26 - KINDEX(2, 272)=82 - KINDEX(1, 273)=3 - KINDEX(2, 273)=83 - KINDEX(1, 274)=10 - KINDEX(2, 274)=83 - KINDEX(1, 275)=15 - KINDEX(2, 275)=83 - KINDEX(1, 276)=25 - KINDEX(2, 276)=83 - KINDEX(1, 277)=26 - KINDEX(2, 277)=83 - KINDEX(1, 278)=75 - KINDEX(2, 278)=83 - KINDEX(1, 279)=85 - KINDEX(2, 279)=83 - KINDEX(1, 280)=10 - KINDEX(2, 280)=84 - KINDEX(1, 281)=15 - KINDEX(2, 281)=84 - KINDEX(1, 282)=26 - KINDEX(2, 282)=84 - KINDEX(1, 283)=60 - KINDEX(2, 283)=84 - KINDEX(1, 284)=85 - KINDEX(2, 284)=84 - KINDEX(1, 285)=15 - KINDEX(2, 285)=85 - KINDEX(1, 286)=36 - KINDEX(2, 286)=85 - KINDEX(1, 287)=85 - KINDEX(2, 287)=85 - KINDEX(1, 288)=8 - KINDEX(2, 288)=86 - KINDEX(1, 289)=36 - KINDEX(2, 289)=86 - KINDEX(1, 290)=85 - KINDEX(2, 290)=86 - KINDEX(1, 291)=3 - KINDEX(2, 291)=87 - KINDEX(1, 292)=10 - KINDEX(2, 292)=87 - KINDEX(1, 293)=11 - KINDEX(2, 293)=87 - KINDEX(1, 294)=12 - KINDEX(2, 294)=87 - KINDEX(1, 295)=15 - KINDEX(2, 295)=87 - KINDEX(1, 296)=36 - KINDEX(2, 296)=87 - KINDEX(1, 297)=53 - KINDEX(2, 297)=87 - KINDEX(1, 298)=57 - KINDEX(2, 298)=87 - KINDEX(1, 299)=85 - KINDEX(2, 299)=87 - KINDEX(1, 300)=36 - KINDEX(2, 300)=88 - KINDEX(1, 301)=68 - KINDEX(2, 301)=88 - KINDEX(1, 302)=15 - KINDEX(2, 302)=89 - KINDEX(1, 303)=37 - KINDEX(2, 303)=89 - KINDEX(1, 304)=85 - KINDEX(2, 304)=89 - KINDEX(1, 305)=8 - KINDEX(2, 305)=90 - KINDEX(1, 306)=37 - KINDEX(2, 306)=90 - KINDEX(1, 307)=85 - KINDEX(2, 307)=90 - KINDEX(1, 308)=3 - KINDEX(2, 308)=91 - KINDEX(1, 309)=11 - KINDEX(2, 309)=91 - KINDEX(1, 310)=12 - KINDEX(2, 310)=91 - KINDEX(1, 311)=15 - KINDEX(2, 311)=91 - KINDEX(1, 312)=37 - KINDEX(2, 312)=91 - KINDEX(1, 313)=54 - KINDEX(2, 313)=91 - KINDEX(1, 314)=56 - KINDEX(2, 314)=91 - KINDEX(1, 315)=85 - KINDEX(2, 315)=91 - KINDEX(1, 316)=37 - KINDEX(2, 316)=92 - KINDEX(1, 317)=10 - KINDEX(2, 317)=93 - KINDEX(1, 318)=15 - KINDEX(2, 318)=93 - KINDEX(1, 319)=27 - KINDEX(2, 319)=93 - KINDEX(1, 320)=64 - KINDEX(2, 320)=93 - KINDEX(1, 321)=85 - KINDEX(2, 321)=93 - KINDEX(1, 322)=15 - KINDEX(2, 322)=94 - KINDEX(1, 323)=21 - KINDEX(2, 323)=94 - KINDEX(1, 324)=85 - KINDEX(2, 324)=94 - KINDEX(1, 325)=10 - KINDEX(2, 325)=95 - KINDEX(1, 326)=85 - KINDEX(2, 326)=95 - KINDEX(1, 327)=1 - KINDEX(2, 327)=96 - KINDEX(1, 328)=85 - KINDEX(2, 328)=96 - KINDEX(1, 329)=85 - KINDEX(2, 329)=97 - KINDEX(1, 330)=85 - KINDEX(2, 330)=98 - KINDEX(1, 331)=85 - KINDEX(2, 331)=99 - KINDEX(1, 332)=85 - KINDEX(2, 332)=100 - KINDEX(1, 333)=85 - KINDEX(2, 333)=101 - KINDEX(1, 334)=85 - KINDEX(2, 334)=102 - KINDEX(1, 335)=85 - KINDEX(2, 335)=103 - KINDEX(1, 336)=2 - KINDEX(2, 336)=104 - KINDEX(1, 337)=61 - KINDEX(2, 337)=104 - KINDEX(1, 338)=2 - KINDEX(2, 338)=105 - KINDEX(1, 339)=61 - KINDEX(2, 339)=105 - KINDEX(1, 340)=2 - KINDEX(2, 340)=106 - KINDEX(1, 341)=2 - KINDEX(2, 341)=107 - KINDEX(1, 342)=2 - KINDEX(2, 342)=108 - KINDEX(1, 343)=70 - KINDEX(2, 343)=108 - KINDEX(1, 344)=2 - KINDEX(2, 344)=109 - KINDEX(1, 345)=60 - KINDEX(2, 345)=109 - KINDEX(1, 346)=2 - KINDEX(2, 346)=110 - KINDEX(1, 347)=64 - KINDEX(2, 347)=110 - KINDEX(1, 348)=1 - KINDEX(2, 348)=111 - KINDEX(1, 349)=2 - KINDEX(2, 349)=111 - KINDEX(1, 350)=10 - KINDEX(2, 350)=111 - KINDEX(1, 351)=28 - KINDEX(2, 351)=111 - KINDEX(1, 352)=86 - KINDEX(2, 352)=111 - KINDEX(1, 353)=10 - KINDEX(2, 353)=112 - KINDEX(1, 354)=28 - KINDEX(2, 354)=112 - KINDEX(1, 355)=85 - KINDEX(2, 355)=112 - KINDEX(1, 356)=86 - KINDEX(2, 356)=112 - KINDEX(1, 357)=10 - KINDEX(2, 357)=113 - KINDEX(1, 358)=15 - KINDEX(2, 358)=113 - KINDEX(1, 359)=28 - KINDEX(2, 359)=113 - KINDEX(1, 360)=86 - KINDEX(2, 360)=113 - KINDEX(1, 361)=1 - KINDEX(2, 361)=114 - KINDEX(1, 362)=2 - KINDEX(2, 362)=114 - KINDEX(1, 363)=10 - KINDEX(2, 363)=114 - KINDEX(1, 364)=28 - KINDEX(2, 364)=114 - KINDEX(1, 365)=29 - KINDEX(2, 365)=114 - KINDEX(1, 366)=10 - KINDEX(2, 366)=115 - KINDEX(1, 367)=28 - KINDEX(2, 367)=115 - KINDEX(1, 368)=29 - KINDEX(2, 368)=115 - KINDEX(1, 369)=85 - KINDEX(2, 369)=115 - KINDEX(1, 370)=10 - KINDEX(2, 370)=116 - KINDEX(1, 371)=15 - KINDEX(2, 371)=116 - KINDEX(1, 372)=28 - KINDEX(2, 372)=116 - KINDEX(1, 373)=29 - KINDEX(2, 373)=116 - KINDEX(1, 374)=1 - KINDEX(2, 374)=117 - KINDEX(1, 375)=2 - KINDEX(2, 375)=117 - KINDEX(1, 376)=28 - KINDEX(2, 376)=117 - KINDEX(1, 377)=29 - KINDEX(2, 377)=117 - KINDEX(1, 378)=2 - KINDEX(2, 378)=118 - KINDEX(1, 379)=10 - KINDEX(2, 379)=118 - KINDEX(1, 380)=28 - KINDEX(2, 380)=118 - KINDEX(1, 381)=29 - KINDEX(2, 381)=118 - KINDEX(1, 382)=85 - KINDEX(2, 382)=118 - KINDEX(1, 383)=2 - KINDEX(2, 383)=119 - KINDEX(1, 384)=10 - KINDEX(2, 384)=119 - KINDEX(1, 385)=15 - KINDEX(2, 385)=119 - KINDEX(1, 386)=28 - KINDEX(2, 386)=119 - KINDEX(1, 387)=29 - KINDEX(2, 387)=119 - KINDEX(1, 388)=1 - KINDEX(2, 388)=120 - KINDEX(1, 389)=2 - KINDEX(2, 389)=120 - KINDEX(1, 390)=10 - KINDEX(2, 390)=120 - KINDEX(1, 391)=11 - KINDEX(2, 391)=120 - KINDEX(1, 392)=28 - KINDEX(2, 392)=120 - KINDEX(1, 393)=10 - KINDEX(2, 393)=121 - KINDEX(1, 394)=11 - KINDEX(2, 394)=121 - KINDEX(1, 395)=28 - KINDEX(2, 395)=121 - KINDEX(1, 396)=85 - KINDEX(2, 396)=121 - KINDEX(1, 397)=10 - KINDEX(2, 397)=122 - KINDEX(1, 398)=11 - KINDEX(2, 398)=122 + KINDEX(1, 223)=22 + KINDEX(2, 223)=70 + KINDEX(1, 224)=25 + KINDEX(2, 224)=70 + KINDEX(1, 225)=27 + KINDEX(2, 225)=70 + KINDEX(1, 226)=41 + KINDEX(2, 226)=70 + KINDEX(1, 227)=4 + KINDEX(2, 227)=71 + KINDEX(1, 228)=14 + KINDEX(2, 228)=71 + KINDEX(1, 229)=26 + KINDEX(2, 229)=71 + KINDEX(1, 230)=33 + KINDEX(2, 230)=71 + KINDEX(1, 231)=5 + KINDEX(2, 231)=72 + KINDEX(1, 232)=8 + KINDEX(2, 232)=72 + KINDEX(1, 233)=13 + KINDEX(2, 233)=72 + KINDEX(1, 234)=15 + KINDEX(2, 234)=72 + KINDEX(1, 235)=22 + KINDEX(2, 235)=72 + KINDEX(1, 236)=5 + KINDEX(2, 236)=73 + KINDEX(1, 237)=8 + KINDEX(2, 237)=73 + KINDEX(1, 238)=23 + KINDEX(2, 238)=73 + KINDEX(1, 239)=39 + KINDEX(2, 239)=73 + KINDEX(1, 240)=4 + KINDEX(2, 240)=74 + KINDEX(1, 241)=5 + KINDEX(2, 241)=74 + KINDEX(1, 242)=8 + KINDEX(2, 242)=74 + KINDEX(1, 243)=13 + KINDEX(2, 243)=74 + KINDEX(1, 244)=15 + KINDEX(2, 244)=74 + KINDEX(1, 245)=23 + KINDEX(2, 245)=74 + KINDEX(1, 246)=24 + KINDEX(2, 246)=74 + KINDEX(1, 247)=25 + KINDEX(2, 247)=74 + KINDEX(1, 248)=39 + KINDEX(2, 248)=74 + KINDEX(1, 249)=40 + KINDEX(2, 249)=74 + KINDEX(1, 250)=41 + KINDEX(2, 250)=74 + KINDEX(1, 251)=5 + KINDEX(2, 251)=75 + KINDEX(1, 252)=8 + KINDEX(2, 252)=75 + KINDEX(1, 253)=21 + KINDEX(2, 253)=75 + KINDEX(1, 254)=36 + KINDEX(2, 254)=75 + KINDEX(1, 255)=5 + KINDEX(2, 255)=76 + KINDEX(1, 256)=19 + KINDEX(2, 256)=76 + KINDEX(1, 257)=25 + KINDEX(2, 257)=76 + KINDEX(1, 258)=40 + KINDEX(2, 258)=76 + KINDEX(1, 259)=5 + KINDEX(2, 259)=77 + KINDEX(1, 260)=20 + KINDEX(2, 260)=77 + KINDEX(1, 261)=25 + KINDEX(2, 261)=77 + KINDEX(1, 262)=40 + KINDEX(2, 262)=77 + KINDEX(1, 263)=4 + KINDEX(2, 263)=78 + KINDEX(1, 264)=5 + KINDEX(2, 264)=78 + KINDEX(1, 265)=22 + KINDEX(2, 265)=78 + KINDEX(1, 266)=26 + KINDEX(2, 266)=78 + KINDEX(1, 267)=27 + KINDEX(2, 267)=78 + KINDEX(1, 268)=41 + KINDEX(2, 268)=78 + KINDEX(1, 269)=1 + KINDEX(2, 269)=79 + KINDEX(1, 270)=2 + KINDEX(2, 270)=79 + KINDEX(1, 271)=13 + KINDEX(2, 271)=79 + KINDEX(1, 272)=14 + KINDEX(2, 272)=79 + KINDEX(1, 273)=15 + KINDEX(2, 273)=79 + KINDEX(1, 274)=16 + KINDEX(2, 274)=79 + KINDEX(1, 275)=17 + KINDEX(2, 275)=79 + KINDEX(1, 276)=19 + KINDEX(2, 276)=79 + KINDEX(1, 277)=22 + KINDEX(2, 277)=79 + KINDEX(1, 278)=23 + KINDEX(2, 278)=79 + KINDEX(1, 279)=24 + KINDEX(2, 279)=79 + KINDEX(1, 280)=25 + KINDEX(2, 280)=79 + KINDEX(1, 281)=30 + KINDEX(2, 281)=79 + KINDEX(1, 282)=31 + KINDEX(2, 282)=79 + KINDEX(1, 283)=32 + KINDEX(2, 283)=79 + KINDEX(1, 284)=33 + KINDEX(2, 284)=79 + KINDEX(1, 285)=39 + KINDEX(2, 285)=79 + KINDEX(1, 286)=41 + KINDEX(2, 286)=79 + KINDEX(1, 287)=1 + KINDEX(2, 287)=80 + KINDEX(1, 288)=2 + KINDEX(2, 288)=80 + KINDEX(1, 289)=13 + KINDEX(2, 289)=80 + KINDEX(1, 290)=14 + KINDEX(2, 290)=80 + KINDEX(1, 291)=15 + KINDEX(2, 291)=80 + KINDEX(1, 292)=19 + KINDEX(2, 292)=80 + KINDEX(1, 293)=20 + KINDEX(2, 293)=80 + KINDEX(1, 294)=22 + KINDEX(2, 294)=80 + KINDEX(1, 295)=23 + KINDEX(2, 295)=80 + KINDEX(1, 296)=24 + KINDEX(2, 296)=80 + KINDEX(1, 297)=25 + KINDEX(2, 297)=80 + KINDEX(1, 298)=30 + KINDEX(2, 298)=80 + KINDEX(1, 299)=31 + KINDEX(2, 299)=80 + KINDEX(1, 300)=32 + KINDEX(2, 300)=80 + KINDEX(1, 301)=33 + KINDEX(2, 301)=80 + KINDEX(1, 302)=39 + KINDEX(2, 302)=80 + KINDEX(1, 303)=41 + KINDEX(2, 303)=80 + KINDEX(1, 304)=1 + KINDEX(2, 304)=81 + KINDEX(1, 305)=13 + KINDEX(2, 305)=81 + KINDEX(1, 306)=14 + KINDEX(2, 306)=81 + KINDEX(1, 307)=15 + KINDEX(2, 307)=81 + KINDEX(1, 308)=22 + KINDEX(2, 308)=81 + KINDEX(1, 309)=23 + KINDEX(2, 309)=81 + KINDEX(1, 310)=25 + KINDEX(2, 310)=81 + KINDEX(1, 311)=29 + KINDEX(2, 311)=81 + KINDEX(1, 312)=30 + KINDEX(2, 312)=81 + KINDEX(1, 313)=31 + KINDEX(2, 313)=81 + KINDEX(1, 314)=39 + KINDEX(2, 314)=81 + KINDEX(1, 315)=1 + KINDEX(2, 315)=82 + KINDEX(1, 316)=4 + KINDEX(2, 316)=82 + KINDEX(1, 317)=13 + KINDEX(2, 317)=82 + KINDEX(1, 318)=14 + KINDEX(2, 318)=82 + KINDEX(1, 319)=15 + KINDEX(2, 319)=82 + KINDEX(1, 320)=22 + KINDEX(2, 320)=82 + KINDEX(1, 321)=27 + KINDEX(2, 321)=82 + KINDEX(1, 322)=30 + KINDEX(2, 322)=82 + KINDEX(1, 323)=39 + KINDEX(2, 323)=82 + KINDEX(1, 324)=4 + KINDEX(2, 324)=83 + KINDEX(1, 325)=21 + KINDEX(2, 325)=83 + KINDEX(1, 326)=26 + KINDEX(2, 326)=83 + KINDEX(1, 327)=36 + KINDEX(2, 327)=83 + KINDEX(1, 328)=15 + KINDEX(2, 328)=84 + KINDEX(1, 329)=21 + KINDEX(2, 329)=84 + KINDEX(1, 330)=36 + KINDEX(2, 330)=84 + KINDEX(1, 331)=4 + KINDEX(2, 331)=85 + KINDEX(1, 332)=7 + KINDEX(2, 332)=85 + KINDEX(1, 333)=21 + KINDEX(2, 333)=85 + KINDEX(1, 334)=37 + KINDEX(2, 334)=85 + KINDEX(1, 335)=15 + KINDEX(2, 335)=86 + KINDEX(1, 336)=21 + KINDEX(2, 336)=86 + KINDEX(1, 337)=37 + KINDEX(2, 337)=86 + KINDEX(1, 338)=38 + KINDEX(2, 338)=86 + KINDEX(1, 339)=1 + KINDEX(2, 339)=87 + KINDEX(1, 340)=14 + KINDEX(2, 340)=87 + KINDEX(1, 341)=21 + KINDEX(2, 341)=87 + KINDEX(1, 342)=37 + KINDEX(2, 342)=87 + KINDEX(1, 343)=4 + KINDEX(2, 343)=88 + KINDEX(1, 344)=27 + KINDEX(2, 344)=88 + KINDEX(1, 345)=39 + KINDEX(2, 345)=88 + KINDEX(1, 346)=4 + KINDEX(2, 346)=89 + KINDEX(1, 347)=27 + KINDEX(2, 347)=89 + KINDEX(1, 348)=39 + KINDEX(2, 348)=89 + KINDEX(1, 349)=3 + KINDEX(2, 349)=90 + KINDEX(1, 350)=4 + KINDEX(2, 350)=90 + KINDEX(1, 351)=15 + KINDEX(2, 351)=90 + KINDEX(1, 352)=22 + KINDEX(2, 352)=90 + KINDEX(1, 353)=32 + KINDEX(2, 353)=90 + KINDEX(1, 354)=3 + KINDEX(2, 354)=91 + KINDEX(1, 355)=4 + KINDEX(2, 355)=91 + KINDEX(1, 356)=15 + KINDEX(2, 356)=91 + KINDEX(1, 357)=22 + KINDEX(2, 357)=91 + KINDEX(1, 358)=23 + KINDEX(2, 358)=91 + KINDEX(1, 359)=24 + KINDEX(2, 359)=91 + KINDEX(1, 360)=25 + KINDEX(2, 360)=91 + KINDEX(1, 361)=26 + KINDEX(2, 361)=91 + KINDEX(1, 362)=32 + KINDEX(2, 362)=91 + KINDEX(1, 363)=33 + KINDEX(2, 363)=91 + KINDEX(1, 364)=41 + KINDEX(2, 364)=91 + KINDEX(1, 365)=3 + KINDEX(2, 365)=92 + KINDEX(1, 366)=4 + KINDEX(2, 366)=92 + KINDEX(1, 367)=15 + KINDEX(2, 367)=92 + KINDEX(1, 368)=22 + KINDEX(2, 368)=92 + KINDEX(1, 369)=23 + KINDEX(2, 369)=92 + KINDEX(1, 370)=24 + KINDEX(2, 370)=92 + KINDEX(1, 371)=34 + KINDEX(2, 371)=92 + KINDEX(1, 372)=3 + KINDEX(2, 372)=93 + KINDEX(1, 373)=4 + KINDEX(2, 373)=93 + KINDEX(1, 374)=15 + KINDEX(2, 374)=93 + KINDEX(1, 375)=19 + KINDEX(2, 375)=93 + KINDEX(1, 376)=22 + KINDEX(2, 376)=93 + KINDEX(1, 377)=23 + KINDEX(2, 377)=93 + KINDEX(1, 378)=24 + KINDEX(2, 378)=93 + KINDEX(1, 379)=25 + KINDEX(2, 379)=93 + KINDEX(1, 380)=26 + KINDEX(2, 380)=93 + KINDEX(1, 381)=35 + KINDEX(2, 381)=93 + KINDEX(1, 382)=3 + KINDEX(2, 382)=94 + KINDEX(1, 383)=4 + KINDEX(2, 383)=94 + KINDEX(1, 384)=15 + KINDEX(2, 384)=94 + KINDEX(1, 385)=25 + KINDEX(2, 385)=94 + KINDEX(1, 386)=26 + KINDEX(2, 386)=94 + KINDEX(1, 387)=38 + KINDEX(2, 387)=94 + KINDEX(1, 388)=3 + KINDEX(2, 388)=95 + KINDEX(1, 389)=4 + KINDEX(2, 389)=95 + KINDEX(1, 390)=15 + KINDEX(2, 390)=95 + KINDEX(1, 391)=22 + KINDEX(2, 391)=95 + KINDEX(1, 392)=23 + KINDEX(2, 392)=95 + KINDEX(1, 393)=25 + KINDEX(2, 393)=95 + KINDEX(1, 394)=32 + KINDEX(2, 394)=95 + KINDEX(1, 395)=39 + KINDEX(2, 395)=95 + KINDEX(1, 396)=41 + KINDEX(2, 396)=95 + KINDEX(1, 397)=3 + KINDEX(2, 397)=96 + KINDEX(1, 398)=4 + KINDEX(2, 398)=96 KINDEX(1, 399)=15 - KINDEX(2, 399)=122 - KINDEX(1, 400)=28 - KINDEX(2, 400)=122 - KINDEX(1, 401)=1 - KINDEX(2, 401)=123 - KINDEX(1, 402)=2 - KINDEX(2, 402)=123 - KINDEX(1, 403)=10 - KINDEX(2, 403)=123 - KINDEX(1, 404)=19 - KINDEX(2, 404)=123 - KINDEX(1, 405)=29 - KINDEX(2, 405)=123 - KINDEX(1, 406)=87 - KINDEX(2, 406)=123 - KINDEX(1, 407)=10 - KINDEX(2, 407)=124 - KINDEX(1, 408)=29 - KINDEX(2, 408)=124 - KINDEX(1, 409)=85 - KINDEX(2, 409)=124 - KINDEX(1, 410)=87 - KINDEX(2, 410)=124 - KINDEX(1, 411)=10 - KINDEX(2, 411)=125 - KINDEX(1, 412)=15 - KINDEX(2, 412)=125 - KINDEX(1, 413)=29 - KINDEX(2, 413)=125 - KINDEX(1, 414)=87 - KINDEX(2, 414)=125 - KINDEX(1, 415)=1 - KINDEX(2, 415)=126 - KINDEX(1, 416)=2 - KINDEX(2, 416)=126 - KINDEX(1, 417)=85 - KINDEX(2, 417)=126 - KINDEX(1, 418)=87 - KINDEX(2, 418)=126 - KINDEX(1, 419)=2 - KINDEX(2, 419)=127 - KINDEX(1, 420)=77 - KINDEX(2, 420)=127 - KINDEX(1, 421)=2 - KINDEX(2, 421)=128 - KINDEX(1, 422)=78 - KINDEX(2, 422)=128 - KINDEX(1, 423)=2 - KINDEX(2, 423)=129 - KINDEX(1, 424)=79 - KINDEX(2, 424)=129 - KINDEX(1, 425)=2 - KINDEX(2, 425)=130 - KINDEX(1, 426)=80 - KINDEX(2, 426)=130 - KINDEX(1, 427)=2 - KINDEX(2, 427)=131 - KINDEX(1, 428)=76 - KINDEX(2, 428)=131 - KINDEX(1, 429)=2 - KINDEX(2, 429)=132 - KINDEX(1, 430)=81 - KINDEX(2, 430)=132 - KINDEX(1, 431)=2 - KINDEX(2, 431)=133 - KINDEX(1, 432)=82 - KINDEX(2, 432)=133 - KINDEX(1, 433)=2 - KINDEX(2, 433)=134 - KINDEX(1, 434)=76 - KINDEX(2, 434)=134 - KINDEX(1, 435)=2 - KINDEX(2, 435)=135 - KINDEX(1, 436)=84 - KINDEX(2, 436)=135 - KINDEX(1, 437)=2 - KINDEX(2, 437)=136 - KINDEX(1, 438)=77 - KINDEX(2, 438)=136 - KINDEX(1, 439)=85 - KINDEX(2, 439)=136 - KINDEX(1, 440)=2 - KINDEX(2, 440)=137 - KINDEX(1, 441)=78 - KINDEX(2, 441)=137 - KINDEX(1, 442)=85 - KINDEX(2, 442)=137 - KINDEX(1, 443)=2 - KINDEX(2, 443)=138 - KINDEX(1, 444)=79 - KINDEX(2, 444)=138 - KINDEX(1, 445)=85 - KINDEX(2, 445)=138 - KINDEX(1, 446)=2 - KINDEX(2, 446)=139 - KINDEX(1, 447)=84 - KINDEX(2, 447)=139 - KINDEX(1, 448)=85 - KINDEX(2, 448)=139 - KINDEX(1, 449)=2 - KINDEX(2, 449)=140 - KINDEX(1, 450)=76 - KINDEX(2, 450)=140 - KINDEX(1, 451)=85 - KINDEX(2, 451)=140 - KINDEX(1, 452)=2 - KINDEX(2, 452)=141 - KINDEX(1, 453)=81 - KINDEX(2, 453)=141 - KINDEX(1, 454)=85 - KINDEX(2, 454)=141 - KINDEX(1, 455)=2 - KINDEX(2, 455)=142 - KINDEX(1, 456)=80 - KINDEX(2, 456)=142 - KINDEX(1, 457)=85 - KINDEX(2, 457)=142 - KINDEX(1, 458)=3 - KINDEX(2, 458)=143 - KINDEX(1, 459)=10 - KINDEX(2, 459)=143 - KINDEX(1, 460)=44 - KINDEX(2, 460)=143 - KINDEX(1, 461)=45 - KINDEX(2, 461)=143 - KINDEX(1, 462)=85 - KINDEX(2, 462)=144 - KINDEX(1, 463)=87 - KINDEX(2, 463)=144 - KINDEX(1, 464)=1 - KINDEX(2, 464)=145 - KINDEX(1, 465)=2 - KINDEX(2, 465)=145 - KINDEX(1, 466)=29 - KINDEX(2, 466)=145 - KINDEX(1, 467)=85 - KINDEX(2, 467)=145 - KINDEX(1, 468)=29 - KINDEX(2, 468)=146 - KINDEX(1, 469)=85 - KINDEX(2, 469)=146 - KINDEX(1, 470)=10 - KINDEX(2, 470)=147 - KINDEX(1, 471)=15 - KINDEX(2, 471)=147 - KINDEX(1, 472)=29 - KINDEX(2, 472)=147 - KINDEX(1, 473)=85 - KINDEX(2, 473)=147 - KINDEX(1, 474)=1 - KINDEX(2, 474)=148 - KINDEX(1, 475)=2 - KINDEX(2, 475)=148 - KINDEX(1, 476)=85 - KINDEX(2, 476)=148 - KINDEX(1, 477)=86 - KINDEX(2, 477)=148 - KINDEX(1, 478)=3 - KINDEX(2, 478)=149 - KINDEX(1, 479)=10 - KINDEX(2, 479)=149 - KINDEX(1, 480)=44 - KINDEX(2, 480)=149 - KINDEX(1, 481)=85 - KINDEX(2, 481)=150 - KINDEX(1, 482)=86 - KINDEX(2, 482)=150 - KINDEX(1, 483)=1 - KINDEX(2, 483)=151 - KINDEX(1, 484)=2 - KINDEX(2, 484)=151 - KINDEX(1, 485)=10 - KINDEX(2, 485)=151 - KINDEX(1, 486)=17 - KINDEX(2, 486)=151 - KINDEX(1, 487)=28 - KINDEX(2, 487)=151 - KINDEX(1, 488)=39 - KINDEX(2, 488)=151 - KINDEX(1, 489)=10 - KINDEX(2, 489)=152 - KINDEX(1, 490)=28 - KINDEX(2, 490)=152 + KINDEX(2, 399)=96 + KINDEX(1, 400)=22 + KINDEX(2, 400)=96 + KINDEX(1, 401)=23 + KINDEX(2, 401)=96 + KINDEX(1, 402)=24 + KINDEX(2, 402)=96 + KINDEX(1, 403)=26 + KINDEX(2, 403)=96 + KINDEX(1, 404)=40 + KINDEX(2, 404)=96 + KINDEX(1, 405)=15 + KINDEX(2, 405)=97 + KINDEX(1, 406)=28 + KINDEX(2, 406)=97 + KINDEX(1, 407)=32 + KINDEX(2, 407)=97 + KINDEX(1, 408)=15 + KINDEX(2, 408)=98 + KINDEX(1, 409)=29 + KINDEX(2, 409)=98 + KINDEX(1, 410)=33 + KINDEX(2, 410)=98 + KINDEX(1, 411)=15 + KINDEX(2, 411)=99 + KINDEX(1, 412)=29 + KINDEX(2, 412)=99 + KINDEX(1, 413)=34 + KINDEX(2, 413)=99 + KINDEX(1, 414)=15 + KINDEX(2, 414)=100 + KINDEX(1, 415)=29 + KINDEX(2, 415)=100 + KINDEX(1, 416)=35 + KINDEX(2, 416)=100 + KINDEX(1, 417)=15 + KINDEX(2, 417)=101 + KINDEX(1, 418)=29 + KINDEX(2, 418)=101 + KINDEX(1, 419)=38 + KINDEX(2, 419)=101 + KINDEX(1, 420)=1 + KINDEX(2, 420)=102 + KINDEX(1, 421)=15 + KINDEX(2, 421)=102 + KINDEX(1, 422)=29 + KINDEX(2, 422)=102 + KINDEX(1, 423)=31 + KINDEX(2, 423)=102 + KINDEX(1, 424)=39 + KINDEX(2, 424)=102 + KINDEX(1, 425)=15 + KINDEX(2, 425)=103 + KINDEX(1, 426)=26 + KINDEX(2, 426)=103 + KINDEX(1, 427)=40 + KINDEX(2, 427)=103 + KINDEX(1, 428)=15 + KINDEX(2, 428)=104 + KINDEX(1, 429)=22 + KINDEX(2, 429)=104 + KINDEX(1, 430)=32 + KINDEX(2, 430)=104 + KINDEX(1, 431)=15 + KINDEX(2, 431)=105 + KINDEX(1, 432)=22 + KINDEX(2, 432)=105 + KINDEX(1, 433)=23 + KINDEX(2, 433)=105 + KINDEX(1, 434)=24 + KINDEX(2, 434)=105 + KINDEX(1, 435)=25 + KINDEX(2, 435)=105 + KINDEX(1, 436)=32 + KINDEX(2, 436)=105 + KINDEX(1, 437)=33 + KINDEX(2, 437)=105 + KINDEX(1, 438)=41 + KINDEX(2, 438)=105 + KINDEX(1, 439)=15 + KINDEX(2, 439)=106 + KINDEX(1, 440)=22 + KINDEX(2, 440)=106 + KINDEX(1, 441)=23 + KINDEX(2, 441)=106 + KINDEX(1, 442)=24 + KINDEX(2, 442)=106 + KINDEX(1, 443)=32 + KINDEX(2, 443)=106 + KINDEX(1, 444)=34 + KINDEX(2, 444)=106 + KINDEX(1, 445)=15 + KINDEX(2, 445)=107 + KINDEX(1, 446)=19 + KINDEX(2, 446)=107 + KINDEX(1, 447)=22 + KINDEX(2, 447)=107 + KINDEX(1, 448)=23 + KINDEX(2, 448)=107 + KINDEX(1, 449)=24 + KINDEX(2, 449)=107 + KINDEX(1, 450)=25 + KINDEX(2, 450)=107 + KINDEX(1, 451)=32 + KINDEX(2, 451)=107 + KINDEX(1, 452)=35 + KINDEX(2, 452)=107 + KINDEX(1, 453)=15 + KINDEX(2, 453)=108 + KINDEX(1, 454)=22 + KINDEX(2, 454)=108 + KINDEX(1, 455)=25 + KINDEX(2, 455)=108 + KINDEX(1, 456)=32 + KINDEX(2, 456)=108 + KINDEX(1, 457)=38 + KINDEX(2, 457)=108 + KINDEX(1, 458)=15 + KINDEX(2, 458)=109 + KINDEX(1, 459)=22 + KINDEX(2, 459)=109 + KINDEX(1, 460)=23 + KINDEX(2, 460)=109 + KINDEX(1, 461)=25 + KINDEX(2, 461)=109 + KINDEX(1, 462)=31 + KINDEX(2, 462)=109 + KINDEX(1, 463)=32 + KINDEX(2, 463)=109 + KINDEX(1, 464)=39 + KINDEX(2, 464)=109 + KINDEX(1, 465)=41 + KINDEX(2, 465)=109 + KINDEX(1, 466)=4 + KINDEX(2, 466)=110 + KINDEX(1, 467)=15 + KINDEX(2, 467)=110 + KINDEX(1, 468)=22 + KINDEX(2, 468)=110 + KINDEX(1, 469)=23 + KINDEX(2, 469)=110 + KINDEX(1, 470)=24 + KINDEX(2, 470)=110 + KINDEX(1, 471)=26 + KINDEX(2, 471)=110 + KINDEX(1, 472)=32 + KINDEX(2, 472)=110 + KINDEX(1, 473)=40 + KINDEX(2, 473)=110 + KINDEX(1, 474)=15 + KINDEX(2, 474)=111 + KINDEX(1, 475)=22 + KINDEX(2, 475)=111 + KINDEX(1, 476)=23 + KINDEX(2, 476)=111 + KINDEX(1, 477)=24 + KINDEX(2, 477)=111 + KINDEX(1, 478)=25 + KINDEX(2, 478)=111 + KINDEX(1, 479)=31 + KINDEX(2, 479)=111 + KINDEX(1, 480)=32 + KINDEX(2, 480)=111 + KINDEX(1, 481)=33 + KINDEX(2, 481)=111 + KINDEX(1, 482)=39 + KINDEX(2, 482)=111 + KINDEX(1, 483)=41 + KINDEX(2, 483)=111 + KINDEX(1, 484)=15 + KINDEX(2, 484)=112 + KINDEX(1, 485)=22 + KINDEX(2, 485)=112 + KINDEX(1, 486)=23 + KINDEX(2, 486)=112 + KINDEX(1, 487)=24 + KINDEX(2, 487)=112 + KINDEX(1, 488)=31 + KINDEX(2, 488)=112 + KINDEX(1, 489)=32 + KINDEX(2, 489)=112 + KINDEX(1, 490)=34 + KINDEX(2, 490)=112 KINDEX(1, 491)=39 - KINDEX(2, 491)=152 - KINDEX(1, 492)=85 - KINDEX(2, 492)=152 - KINDEX(1, 493)=10 - KINDEX(2, 493)=153 - KINDEX(1, 494)=15 - KINDEX(2, 494)=153 - KINDEX(1, 495)=28 - KINDEX(2, 495)=153 - KINDEX(1, 496)=39 - KINDEX(2, 496)=153 - KINDEX(1, 497)=1 - KINDEX(2, 497)=154 - KINDEX(1, 498)=2 - KINDEX(2, 498)=154 - KINDEX(1, 499)=10 - KINDEX(2, 499)=154 - KINDEX(1, 500)=28 - KINDEX(2, 500)=154 - KINDEX(1, 501)=40 - KINDEX(2, 501)=154 - KINDEX(1, 502)=10 - KINDEX(2, 502)=155 - KINDEX(1, 503)=28 - KINDEX(2, 503)=155 - KINDEX(1, 504)=40 - KINDEX(2, 504)=155 - KINDEX(1, 505)=85 - KINDEX(2, 505)=155 - KINDEX(1, 506)=10 - KINDEX(2, 506)=156 + KINDEX(2, 491)=112 + KINDEX(1, 492)=15 + KINDEX(2, 492)=113 + KINDEX(1, 493)=19 + KINDEX(2, 493)=113 + KINDEX(1, 494)=22 + KINDEX(2, 494)=113 + KINDEX(1, 495)=23 + KINDEX(2, 495)=113 + KINDEX(1, 496)=24 + KINDEX(2, 496)=113 + KINDEX(1, 497)=25 + KINDEX(2, 497)=113 + KINDEX(1, 498)=31 + KINDEX(2, 498)=113 + KINDEX(1, 499)=32 + KINDEX(2, 499)=113 + KINDEX(1, 500)=35 + KINDEX(2, 500)=113 + KINDEX(1, 501)=39 + KINDEX(2, 501)=113 + KINDEX(1, 502)=15 + KINDEX(2, 502)=114 + KINDEX(1, 503)=25 + KINDEX(2, 503)=114 + KINDEX(1, 504)=32 + KINDEX(2, 504)=114 + KINDEX(1, 505)=38 + KINDEX(2, 505)=114 + KINDEX(1, 506)=39 + KINDEX(2, 506)=114 KINDEX(1, 507)=15 - KINDEX(2, 507)=156 - KINDEX(1, 508)=28 - KINDEX(2, 508)=156 - KINDEX(1, 509)=40 - KINDEX(2, 509)=156 - KINDEX(1, 510)=1 - KINDEX(2, 510)=157 - KINDEX(1, 511)=2 - KINDEX(2, 511)=157 - KINDEX(1, 512)=28 - KINDEX(2, 512)=157 - KINDEX(1, 513)=39 - KINDEX(2, 513)=157 - KINDEX(1, 514)=2 - KINDEX(2, 514)=158 - KINDEX(1, 515)=28 - KINDEX(2, 515)=158 - KINDEX(1, 516)=39 - KINDEX(2, 516)=158 - KINDEX(1, 517)=85 - KINDEX(2, 517)=158 - KINDEX(1, 518)=2 - KINDEX(2, 518)=159 - KINDEX(1, 519)=10 - KINDEX(2, 519)=159 - KINDEX(1, 520)=15 - KINDEX(2, 520)=159 - KINDEX(1, 521)=28 - KINDEX(2, 521)=159 - KINDEX(1, 522)=39 - KINDEX(2, 522)=159 - KINDEX(1, 523)=1 - KINDEX(2, 523)=160 - KINDEX(1, 524)=2 - KINDEX(2, 524)=160 - KINDEX(1, 525)=28 - KINDEX(2, 525)=160 - KINDEX(1, 526)=40 - KINDEX(2, 526)=160 - KINDEX(1, 527)=2 - KINDEX(2, 527)=161 - KINDEX(1, 528)=28 - KINDEX(2, 528)=161 - KINDEX(1, 529)=40 - KINDEX(2, 529)=161 - KINDEX(1, 530)=85 - KINDEX(2, 530)=161 - KINDEX(1, 531)=2 - KINDEX(2, 531)=162 - KINDEX(1, 532)=10 - KINDEX(2, 532)=162 - KINDEX(1, 533)=15 - KINDEX(2, 533)=162 - KINDEX(1, 534)=28 - KINDEX(2, 534)=162 + KINDEX(2, 507)=115 + KINDEX(1, 508)=22 + KINDEX(2, 508)=115 + KINDEX(1, 509)=23 + KINDEX(2, 509)=115 + KINDEX(1, 510)=24 + KINDEX(2, 510)=115 + KINDEX(1, 511)=25 + KINDEX(2, 511)=115 + KINDEX(1, 512)=31 + KINDEX(2, 512)=115 + KINDEX(1, 513)=32 + KINDEX(2, 513)=115 + KINDEX(1, 514)=39 + KINDEX(2, 514)=115 + KINDEX(1, 515)=41 + KINDEX(2, 515)=115 + KINDEX(1, 516)=4 + KINDEX(2, 516)=116 + KINDEX(1, 517)=15 + KINDEX(2, 517)=116 + KINDEX(1, 518)=22 + KINDEX(2, 518)=116 + KINDEX(1, 519)=23 + KINDEX(2, 519)=116 + KINDEX(1, 520)=24 + KINDEX(2, 520)=116 + KINDEX(1, 521)=26 + KINDEX(2, 521)=116 + KINDEX(1, 522)=31 + KINDEX(2, 522)=116 + KINDEX(1, 523)=32 + KINDEX(2, 523)=116 + KINDEX(1, 524)=39 + KINDEX(2, 524)=116 + KINDEX(1, 525)=40 + KINDEX(2, 525)=116 + KINDEX(1, 526)=15 + KINDEX(2, 526)=117 + KINDEX(1, 527)=26 + KINDEX(2, 527)=117 + KINDEX(1, 528)=40 + KINDEX(2, 528)=117 + KINDEX(1, 529)=4 + KINDEX(2, 529)=118 + KINDEX(1, 530)=15 + KINDEX(2, 530)=118 + KINDEX(1, 531)=22 + KINDEX(2, 531)=118 + KINDEX(1, 532)=23 + KINDEX(2, 532)=118 + KINDEX(1, 533)=24 + KINDEX(2, 533)=118 + KINDEX(1, 534)=26 + KINDEX(2, 534)=118 KINDEX(1, 535)=40 - KINDEX(2, 535)=162 - KINDEX(1, 536)=1 - KINDEX(2, 536)=163 - KINDEX(1, 537)=2 - KINDEX(2, 537)=163 - KINDEX(1, 538)=28 - KINDEX(2, 538)=163 - KINDEX(1, 539)=85 - KINDEX(2, 539)=163 - KINDEX(1, 540)=28 - KINDEX(2, 540)=164 - KINDEX(1, 541)=85 - KINDEX(2, 541)=164 - KINDEX(1, 542)=10 - KINDEX(2, 542)=165 + KINDEX(2, 535)=118 + KINDEX(1, 536)=4 + KINDEX(2, 536)=119 + KINDEX(1, 537)=5 + KINDEX(2, 537)=119 + KINDEX(1, 538)=15 + KINDEX(2, 538)=119 + KINDEX(1, 539)=22 + KINDEX(2, 539)=119 + KINDEX(1, 540)=32 + KINDEX(2, 540)=119 + KINDEX(1, 541)=4 + KINDEX(2, 541)=120 + KINDEX(1, 542)=5 + KINDEX(2, 542)=120 KINDEX(1, 543)=15 - KINDEX(2, 543)=165 - KINDEX(1, 544)=28 - KINDEX(2, 544)=165 - KINDEX(1, 545)=85 - KINDEX(2, 545)=165 - KINDEX(1, 546)=1 - KINDEX(2, 546)=166 - KINDEX(1, 547)=2 - KINDEX(2, 547)=166 - KINDEX(1, 548)=85 - KINDEX(2, 548)=166 - KINDEX(1, 549)=3 - KINDEX(2, 549)=167 - KINDEX(1, 550)=10 - KINDEX(2, 550)=167 - KINDEX(1, 551)=17 - KINDEX(2, 551)=167 - KINDEX(1, 552)=44 - KINDEX(2, 552)=167 - KINDEX(1, 553)=85 - KINDEX(2, 553)=168 - KINDEX(1, 554)=1 - KINDEX(2, 554)=169 - KINDEX(1, 555)=2 - KINDEX(2, 555)=169 - KINDEX(1, 556)=17 - KINDEX(2, 556)=169 - KINDEX(1, 557)=85 - KINDEX(2, 557)=169 - KINDEX(1, 558)=85 - KINDEX(2, 558)=170 - KINDEX(1, 559)=10 - KINDEX(2, 559)=171 + KINDEX(2, 543)=120 + KINDEX(1, 544)=22 + KINDEX(2, 544)=120 + KINDEX(1, 545)=23 + KINDEX(2, 545)=120 + KINDEX(1, 546)=24 + KINDEX(2, 546)=120 + KINDEX(1, 547)=25 + KINDEX(2, 547)=120 + KINDEX(1, 548)=32 + KINDEX(2, 548)=120 + KINDEX(1, 549)=33 + KINDEX(2, 549)=120 + KINDEX(1, 550)=41 + KINDEX(2, 550)=120 + KINDEX(1, 551)=4 + KINDEX(2, 551)=121 + KINDEX(1, 552)=5 + KINDEX(2, 552)=121 + KINDEX(1, 553)=15 + KINDEX(2, 553)=121 + KINDEX(1, 554)=22 + KINDEX(2, 554)=121 + KINDEX(1, 555)=23 + KINDEX(2, 555)=121 + KINDEX(1, 556)=24 + KINDEX(2, 556)=121 + KINDEX(1, 557)=34 + KINDEX(2, 557)=121 + KINDEX(1, 558)=4 + KINDEX(2, 558)=122 + KINDEX(1, 559)=5 + KINDEX(2, 559)=122 KINDEX(1, 560)=15 - KINDEX(2, 560)=171 - KINDEX(1, 561)=85 - KINDEX(2, 561)=171 - KINDEX(1, 562)=1 - KINDEX(2, 562)=172 - KINDEX(1, 563)=2 - KINDEX(2, 563)=172 - KINDEX(1, 564)=10 - KINDEX(2, 564)=172 - KINDEX(1, 565)=19 - KINDEX(2, 565)=172 - KINDEX(1, 566)=28 - KINDEX(2, 566)=172 - KINDEX(1, 567)=29 - KINDEX(2, 567)=172 - KINDEX(1, 568)=30 - KINDEX(2, 568)=172 - KINDEX(1, 569)=10 - KINDEX(2, 569)=173 - KINDEX(1, 570)=19 - KINDEX(2, 570)=173 - KINDEX(1, 571)=28 - KINDEX(2, 571)=173 - KINDEX(1, 572)=29 - KINDEX(2, 572)=173 - KINDEX(1, 573)=30 - KINDEX(2, 573)=173 - KINDEX(1, 574)=85 - KINDEX(2, 574)=173 - KINDEX(1, 575)=10 - KINDEX(2, 575)=174 - KINDEX(1, 576)=15 - KINDEX(2, 576)=174 - KINDEX(1, 577)=19 - KINDEX(2, 577)=174 - KINDEX(1, 578)=28 - KINDEX(2, 578)=174 - KINDEX(1, 579)=29 - KINDEX(2, 579)=174 - KINDEX(1, 580)=30 - KINDEX(2, 580)=174 - KINDEX(1, 581)=1 - KINDEX(2, 581)=175 - KINDEX(1, 582)=2 - KINDEX(2, 582)=175 - KINDEX(1, 583)=29 - KINDEX(2, 583)=175 - KINDEX(1, 584)=85 - KINDEX(2, 584)=175 - KINDEX(1, 585)=29 - KINDEX(2, 585)=176 - KINDEX(1, 586)=85 - KINDEX(2, 586)=176 - KINDEX(1, 587)=10 - KINDEX(2, 587)=177 - KINDEX(1, 588)=15 - KINDEX(2, 588)=177 - KINDEX(1, 589)=29 - KINDEX(2, 589)=177 - KINDEX(1, 590)=85 - KINDEX(2, 590)=177 - KINDEX(1, 591)=1 - KINDEX(2, 591)=178 - KINDEX(1, 592)=2 - KINDEX(2, 592)=178 - KINDEX(1, 593)=10 - KINDEX(2, 593)=178 - KINDEX(1, 594)=58 - KINDEX(2, 594)=178 - KINDEX(1, 595)=75 - KINDEX(2, 595)=178 - KINDEX(1, 596)=10 - KINDEX(2, 596)=179 - KINDEX(1, 597)=75 - KINDEX(2, 597)=179 - KINDEX(1, 598)=85 - KINDEX(2, 598)=179 - KINDEX(1, 599)=10 - KINDEX(2, 599)=180 - KINDEX(1, 600)=15 - KINDEX(2, 600)=180 - KINDEX(1, 601)=75 - KINDEX(2, 601)=180 - KINDEX(1, 602)=1 - KINDEX(2, 602)=181 - KINDEX(1, 603)=2 - KINDEX(2, 603)=181 - KINDEX(1, 604)=10 - KINDEX(2, 604)=181 - KINDEX(1, 605)=10 - KINDEX(2, 605)=182 - KINDEX(1, 606)=85 - KINDEX(2, 606)=182 - KINDEX(1, 607)=10 - KINDEX(2, 607)=183 - KINDEX(1, 608)=15 - KINDEX(2, 608)=183 - KINDEX(1, 609)=1 - KINDEX(2, 609)=184 - KINDEX(1, 610)=2 - KINDEX(2, 610)=184 - KINDEX(1, 611)=28 - KINDEX(2, 611)=184 - KINDEX(1, 612)=69 - KINDEX(2, 612)=184 - KINDEX(1, 613)=2 - KINDEX(2, 613)=185 - KINDEX(1, 614)=28 - KINDEX(2, 614)=185 - KINDEX(1, 615)=69 - KINDEX(2, 615)=185 - KINDEX(1, 616)=85 - KINDEX(2, 616)=185 - KINDEX(1, 617)=2 - KINDEX(2, 617)=186 - KINDEX(1, 618)=10 - KINDEX(2, 618)=186 - KINDEX(1, 619)=15 - KINDEX(2, 619)=186 - KINDEX(1, 620)=28 - KINDEX(2, 620)=186 - KINDEX(1, 621)=69 - KINDEX(2, 621)=186 - KINDEX(1, 622)=1 - KINDEX(2, 622)=187 - KINDEX(1, 623)=2 - KINDEX(2, 623)=187 - KINDEX(1, 624)=85 - KINDEX(2, 624)=187 - KINDEX(1, 625)=85 - KINDEX(2, 625)=188 - KINDEX(1, 626)=10 - KINDEX(2, 626)=189 - KINDEX(1, 627)=15 - KINDEX(2, 627)=189 - KINDEX(1, 628)=85 - KINDEX(2, 628)=189 - KINDEX(1, 629)=1 - KINDEX(2, 629)=190 - KINDEX(1, 630)=2 - KINDEX(2, 630)=190 - KINDEX(1, 631)=10 - KINDEX(2, 631)=190 - KINDEX(1, 632)=25 - KINDEX(2, 632)=190 - KINDEX(1, 633)=10 - KINDEX(2, 633)=191 - KINDEX(1, 634)=25 - KINDEX(2, 634)=191 - KINDEX(1, 635)=85 - KINDEX(2, 635)=191 - KINDEX(1, 636)=10 - KINDEX(2, 636)=192 - KINDEX(1, 637)=15 - KINDEX(2, 637)=192 - KINDEX(1, 638)=25 - KINDEX(2, 638)=192 - KINDEX(1, 639)=1 - KINDEX(2, 639)=193 - KINDEX(1, 640)=2 - KINDEX(2, 640)=193 - KINDEX(1, 641)=10 - KINDEX(2, 641)=193 - KINDEX(1, 642)=75 - KINDEX(2, 642)=193 - KINDEX(1, 643)=10 - KINDEX(2, 643)=194 - KINDEX(1, 644)=75 - KINDEX(2, 644)=194 - KINDEX(1, 645)=85 - KINDEX(2, 645)=194 - KINDEX(1, 646)=10 - KINDEX(2, 646)=195 - KINDEX(1, 647)=15 - KINDEX(2, 647)=195 - KINDEX(1, 648)=75 - KINDEX(2, 648)=195 - KINDEX(1, 649)=1 - KINDEX(2, 649)=196 - KINDEX(1, 650)=2 - KINDEX(2, 650)=196 - KINDEX(1, 651)=10 - KINDEX(2, 651)=196 - KINDEX(1, 652)=58 - KINDEX(2, 652)=196 - KINDEX(1, 653)=62 - KINDEX(2, 653)=196 - KINDEX(1, 654)=10 - KINDEX(2, 654)=197 - KINDEX(1, 655)=62 - KINDEX(2, 655)=197 - KINDEX(1, 656)=85 - KINDEX(2, 656)=197 - KINDEX(1, 657)=10 - KINDEX(2, 657)=198 - KINDEX(1, 658)=15 - KINDEX(2, 658)=198 - KINDEX(1, 659)=62 - KINDEX(2, 659)=198 - KINDEX(1, 660)=1 - KINDEX(2, 660)=199 - KINDEX(1, 661)=2 - KINDEX(2, 661)=199 - KINDEX(1, 662)=10 - KINDEX(2, 662)=199 - KINDEX(1, 663)=57 - KINDEX(2, 663)=199 - KINDEX(1, 664)=67 - KINDEX(2, 664)=199 - KINDEX(1, 665)=10 - KINDEX(2, 665)=200 - KINDEX(1, 666)=57 - KINDEX(2, 666)=200 - KINDEX(1, 667)=85 - KINDEX(2, 667)=200 - KINDEX(1, 668)=10 - KINDEX(2, 668)=201 - KINDEX(1, 669)=15 - KINDEX(2, 669)=201 - KINDEX(1, 670)=57 - KINDEX(2, 670)=201 - KINDEX(1, 671)=1 - KINDEX(2, 671)=202 - KINDEX(1, 672)=2 - KINDEX(2, 672)=202 - KINDEX(1, 673)=57 - KINDEX(2, 673)=202 - KINDEX(1, 674)=2 - KINDEX(2, 674)=203 - KINDEX(1, 675)=57 - KINDEX(2, 675)=203 - KINDEX(1, 676)=85 - KINDEX(2, 676)=203 - KINDEX(1, 677)=2 - KINDEX(2, 677)=204 - KINDEX(1, 678)=10 - KINDEX(2, 678)=204 - KINDEX(1, 679)=15 - KINDEX(2, 679)=204 - KINDEX(1, 680)=57 - KINDEX(2, 680)=204 - KINDEX(1, 681)=1 - KINDEX(2, 681)=205 - KINDEX(1, 682)=2 - KINDEX(2, 682)=205 - KINDEX(1, 683)=55 - KINDEX(2, 683)=205 - KINDEX(1, 684)=85 - KINDEX(2, 684)=205 - KINDEX(1, 685)=55 - KINDEX(2, 685)=206 - KINDEX(1, 686)=85 - KINDEX(2, 686)=206 - KINDEX(1, 687)=10 - KINDEX(2, 687)=207 - KINDEX(1, 688)=15 - KINDEX(2, 688)=207 - KINDEX(1, 689)=55 - KINDEX(2, 689)=207 - KINDEX(1, 690)=85 - KINDEX(2, 690)=207 - KINDEX(1, 691)=1 - KINDEX(2, 691)=208 - KINDEX(1, 692)=2 - KINDEX(2, 692)=208 - KINDEX(1, 693)=10 - KINDEX(2, 693)=208 - KINDEX(1, 694)=56 - KINDEX(2, 694)=208 - KINDEX(1, 695)=68 - KINDEX(2, 695)=208 - KINDEX(1, 696)=10 - KINDEX(2, 696)=209 - KINDEX(1, 697)=56 - KINDEX(2, 697)=209 - KINDEX(1, 698)=85 - KINDEX(2, 698)=209 - KINDEX(1, 699)=10 - KINDEX(2, 699)=210 - KINDEX(1, 700)=15 - KINDEX(2, 700)=210 - KINDEX(1, 701)=56 - KINDEX(2, 701)=210 - KINDEX(1, 702)=1 - KINDEX(2, 702)=211 - KINDEX(1, 703)=2 - KINDEX(2, 703)=211 - KINDEX(1, 704)=56 - KINDEX(2, 704)=211 - KINDEX(1, 705)=2 - KINDEX(2, 705)=212 - KINDEX(1, 706)=56 - KINDEX(2, 706)=212 - KINDEX(1, 707)=85 - KINDEX(2, 707)=212 - KINDEX(1, 708)=2 - KINDEX(2, 708)=213 - KINDEX(1, 709)=10 - KINDEX(2, 709)=213 - KINDEX(1, 710)=15 - KINDEX(2, 710)=213 - KINDEX(1, 711)=56 - KINDEX(2, 711)=213 - KINDEX(1, 712)=1 - KINDEX(2, 712)=214 - KINDEX(1, 713)=2 - KINDEX(2, 713)=214 - KINDEX(1, 714)=85 - KINDEX(2, 714)=214 - KINDEX(1, 715)=85 - KINDEX(2, 715)=215 - KINDEX(1, 716)=10 - KINDEX(2, 716)=216 - KINDEX(1, 717)=15 - KINDEX(2, 717)=216 - KINDEX(1, 718)=85 - KINDEX(2, 718)=216 - KINDEX(1, 719)=1 - KINDEX(2, 719)=217 - KINDEX(1, 720)=2 - KINDEX(2, 720)=217 - KINDEX(1, 721)=71 - KINDEX(2, 721)=217 - KINDEX(1, 722)=85 - KINDEX(2, 722)=217 - KINDEX(1, 723)=71 - KINDEX(2, 723)=218 - KINDEX(1, 724)=85 - KINDEX(2, 724)=218 - KINDEX(1, 725)=10 - KINDEX(2, 725)=219 - KINDEX(1, 726)=15 - KINDEX(2, 726)=219 - KINDEX(1, 727)=71 - KINDEX(2, 727)=219 - KINDEX(1, 728)=85 - KINDEX(2, 728)=219 - KINDEX(1, 729)=85 - KINDEX(2, 729)=220 - KINDEX(1, 730)=10 - KINDEX(2, 730)=221 - KINDEX(1, 731)=15 - KINDEX(2, 731)=221 - KINDEX(1, 732)=85 - KINDEX(2, 732)=221 - KINDEX(1, 733)=1 - KINDEX(2, 733)=222 - KINDEX(1, 734)=2 - KINDEX(2, 734)=222 - KINDEX(1, 735)=10 - KINDEX(2, 735)=222 - KINDEX(1, 736)=64 - KINDEX(2, 736)=222 - KINDEX(1, 737)=65 - KINDEX(2, 737)=222 - KINDEX(1, 738)=10 - KINDEX(2, 738)=223 - KINDEX(1, 739)=65 - KINDEX(2, 739)=223 - KINDEX(1, 740)=85 - KINDEX(2, 740)=223 - KINDEX(1, 741)=10 - KINDEX(2, 741)=224 - KINDEX(1, 742)=15 - KINDEX(2, 742)=224 - KINDEX(1, 743)=65 - KINDEX(2, 743)=224 - KINDEX(1, 744)=1 - KINDEX(2, 744)=225 - KINDEX(1, 745)=2 - KINDEX(2, 745)=225 - KINDEX(1, 746)=66 - KINDEX(2, 746)=225 - KINDEX(1, 747)=85 - KINDEX(2, 747)=225 - KINDEX(1, 748)=85 - KINDEX(2, 748)=226 - KINDEX(1, 749)=10 - KINDEX(2, 749)=227 - KINDEX(1, 750)=15 - KINDEX(2, 750)=227 - KINDEX(1, 751)=85 - KINDEX(2, 751)=227 - KINDEX(1, 752)=1 - KINDEX(2, 752)=228 - KINDEX(1, 753)=2 - KINDEX(2, 753)=228 - KINDEX(1, 754)=10 - KINDEX(2, 754)=228 - KINDEX(1, 755)=66 - KINDEX(2, 755)=228 - KINDEX(1, 756)=10 - KINDEX(2, 756)=229 - KINDEX(1, 757)=66 - KINDEX(2, 757)=229 - KINDEX(1, 758)=85 - KINDEX(2, 758)=229 - KINDEX(1, 759)=10 - KINDEX(2, 759)=230 - KINDEX(1, 760)=15 - KINDEX(2, 760)=230 - KINDEX(1, 761)=66 - KINDEX(2, 761)=230 - KINDEX(1, 762)=85 - KINDEX(2, 762)=231 - KINDEX(1, 763)=1 - KINDEX(2, 763)=232 - KINDEX(1, 764)=2 - KINDEX(2, 764)=232 - KINDEX(1, 765)=10 - KINDEX(2, 765)=232 + KINDEX(2, 560)=122 + KINDEX(1, 561)=19 + KINDEX(2, 561)=122 + KINDEX(1, 562)=22 + KINDEX(2, 562)=122 + KINDEX(1, 563)=23 + KINDEX(2, 563)=122 + KINDEX(1, 564)=24 + KINDEX(2, 564)=122 + KINDEX(1, 565)=25 + KINDEX(2, 565)=122 + KINDEX(1, 566)=35 + KINDEX(2, 566)=122 + KINDEX(1, 567)=4 + KINDEX(2, 567)=123 + KINDEX(1, 568)=5 + KINDEX(2, 568)=123 + KINDEX(1, 569)=15 + KINDEX(2, 569)=123 + KINDEX(1, 570)=25 + KINDEX(2, 570)=123 + KINDEX(1, 571)=38 + KINDEX(2, 571)=123 + KINDEX(1, 572)=4 + KINDEX(2, 572)=124 + KINDEX(1, 573)=5 + KINDEX(2, 573)=124 + KINDEX(1, 574)=15 + KINDEX(2, 574)=124 + KINDEX(1, 575)=22 + KINDEX(2, 575)=124 + KINDEX(1, 576)=23 + KINDEX(2, 576)=124 + KINDEX(1, 577)=25 + KINDEX(2, 577)=124 + KINDEX(1, 578)=32 + KINDEX(2, 578)=124 + KINDEX(1, 579)=39 + KINDEX(2, 579)=124 + KINDEX(1, 580)=41 + KINDEX(2, 580)=124 + KINDEX(1, 581)=4 + KINDEX(2, 581)=125 + KINDEX(1, 582)=5 + KINDEX(2, 582)=125 + KINDEX(1, 583)=15 + KINDEX(2, 583)=125 + KINDEX(1, 584)=22 + KINDEX(2, 584)=125 + KINDEX(1, 585)=23 + KINDEX(2, 585)=125 + KINDEX(1, 586)=24 + KINDEX(2, 586)=125 + KINDEX(1, 587)=26 + KINDEX(2, 587)=125 + KINDEX(1, 588)=40 + KINDEX(2, 588)=125 + KINDEX(1, 589)=15 + KINDEX(2, 589)=126 + KINDEX(1, 590)=29 + KINDEX(2, 590)=126 + KINDEX(1, 591)=41 + KINDEX(2, 591)=126 + KINDEX(1, 592)=15 + KINDEX(2, 592)=127 + KINDEX(1, 593)=22 + KINDEX(2, 593)=127 + KINDEX(1, 594)=32 + KINDEX(2, 594)=127 + KINDEX(1, 595)=41 + KINDEX(2, 595)=127 + KINDEX(1, 596)=32 + KINDEX(2, 596)=128 + KINDEX(1, 597)=39 + KINDEX(2, 597)=128 + KINDEX(1, 598)=41 + KINDEX(2, 598)=128 + KINDEX(1, 599)=41 + KINDEX(2, 599)=129 + KINDEX(1, 600)=3 + KINDEX(2, 600)=130 + KINDEX(1, 601)=4 + KINDEX(2, 601)=130 + KINDEX(1, 602)=41 + KINDEX(2, 602)=130 + KINDEX(1, 603)=4 + KINDEX(2, 603)=131 + KINDEX(1, 604)=5 + KINDEX(2, 604)=131 + KINDEX(1, 605)=41 + KINDEX(2, 605)=131 + KINDEX(1, 606)=12 + KINDEX(2, 606)=132 + KINDEX(1, 607)=1 + KINDEX(2, 607)=133 + KINDEX(1, 608)=42 + KINDEX(2, 608)=133 + KINDEX(1, 609)=2 + KINDEX(2, 609)=134 + KINDEX(1, 610)=43 + KINDEX(2, 610)=134 + KINDEX(1, 611)=3 + KINDEX(2, 611)=135 + KINDEX(1, 612)=44 + KINDEX(2, 612)=135 + KINDEX(1, 613)=4 + KINDEX(2, 613)=136 + KINDEX(1, 614)=45 + KINDEX(2, 614)=136 + KINDEX(1, 615)=5 + KINDEX(2, 615)=137 + KINDEX(1, 616)=46 + KINDEX(2, 616)=137 + KINDEX(1, 617)=6 + KINDEX(2, 617)=138 + KINDEX(1, 618)=47 + KINDEX(2, 618)=138 + KINDEX(1, 619)=7 + KINDEX(2, 619)=139 + KINDEX(1, 620)=48 + KINDEX(2, 620)=139 + KINDEX(1, 621)=8 + KINDEX(2, 621)=140 + KINDEX(1, 622)=49 + KINDEX(2, 622)=140 + KINDEX(1, 623)=9 + KINDEX(2, 623)=141 + KINDEX(1, 624)=50 + KINDEX(2, 624)=141 + KINDEX(1, 625)=10 + KINDEX(2, 625)=142 + KINDEX(1, 626)=51 + KINDEX(2, 626)=142 + KINDEX(1, 627)=14 + KINDEX(2, 627)=143 + KINDEX(1, 628)=52 + KINDEX(2, 628)=143 + KINDEX(1, 629)=15 + KINDEX(2, 629)=144 + KINDEX(1, 630)=53 + KINDEX(2, 630)=144 + KINDEX(1, 631)=54 + KINDEX(2, 631)=145 + KINDEX(1, 632)=11 + KINDEX(2, 632)=146 + KINDEX(1, 633)=55 + KINDEX(2, 633)=146 + KINDEX(1, 634)=12 + KINDEX(2, 634)=147 + KINDEX(1, 635)=56 + KINDEX(2, 635)=147 + KINDEX(1, 636)=22 + KINDEX(2, 636)=148 + KINDEX(1, 637)=57 + KINDEX(2, 637)=148 + KINDEX(1, 638)=30 + KINDEX(2, 638)=149 + KINDEX(1, 639)=58 + KINDEX(2, 639)=149 + KINDEX(1, 640)=31 + KINDEX(2, 640)=150 + KINDEX(1, 641)=59 + KINDEX(2, 641)=150 + KINDEX(1, 642)=32 + KINDEX(2, 642)=151 + KINDEX(1, 643)=60 + KINDEX(2, 643)=151 + KINDEX(1, 644)=28 + KINDEX(2, 644)=152 + KINDEX(1, 645)=61 + KINDEX(2, 645)=152 + KINDEX(1, 646)=1 + KINDEX(2, 646)=153 + KINDEX(1, 647)=42 + KINDEX(2, 647)=153 + KINDEX(1, 648)=2 + KINDEX(2, 648)=154 + KINDEX(1, 649)=43 + KINDEX(2, 649)=154 + KINDEX(1, 650)=3 + KINDEX(2, 650)=155 + KINDEX(1, 651)=44 + KINDEX(2, 651)=155 + KINDEX(1, 652)=4 + KINDEX(2, 652)=156 + KINDEX(1, 653)=45 + KINDEX(2, 653)=156 + KINDEX(1, 654)=5 + KINDEX(2, 654)=157 + KINDEX(1, 655)=46 + KINDEX(2, 655)=157 + KINDEX(1, 656)=6 + KINDEX(2, 656)=158 + KINDEX(1, 657)=47 + KINDEX(2, 657)=158 + KINDEX(1, 658)=7 + KINDEX(2, 658)=159 + KINDEX(1, 659)=48 + KINDEX(2, 659)=159 + KINDEX(1, 660)=8 + KINDEX(2, 660)=160 + KINDEX(1, 661)=49 + KINDEX(2, 661)=160 + KINDEX(1, 662)=9 + KINDEX(2, 662)=161 + KINDEX(1, 663)=50 + KINDEX(2, 663)=161 + KINDEX(1, 664)=10 + KINDEX(2, 664)=162 + KINDEX(1, 665)=51 + KINDEX(2, 665)=162 + KINDEX(1, 666)=14 + KINDEX(2, 666)=163 + KINDEX(1, 667)=52 + KINDEX(2, 667)=163 + KINDEX(1, 668)=15 + KINDEX(2, 668)=164 + KINDEX(1, 669)=53 + KINDEX(2, 669)=164 + KINDEX(1, 670)=54 + KINDEX(2, 670)=165 + KINDEX(1, 671)=11 + KINDEX(2, 671)=166 + KINDEX(1, 672)=55 + KINDEX(2, 672)=166 + KINDEX(1, 673)=12 + KINDEX(2, 673)=167 + KINDEX(1, 674)=56 + KINDEX(2, 674)=167 + KINDEX(1, 675)=22 + KINDEX(2, 675)=168 + KINDEX(1, 676)=57 + KINDEX(2, 676)=168 + KINDEX(1, 677)=30 + KINDEX(2, 677)=169 + KINDEX(1, 678)=58 + KINDEX(2, 678)=169 + KINDEX(1, 679)=31 + KINDEX(2, 679)=170 + KINDEX(1, 680)=59 + KINDEX(2, 680)=170 + KINDEX(1, 681)=32 + KINDEX(2, 681)=171 + KINDEX(1, 682)=60 + KINDEX(2, 682)=171 + KINDEX(1, 683)=28 + KINDEX(2, 683)=172 + KINDEX(1, 684)=61 + KINDEX(2, 684)=172 + KINDEX(1, 685)=1 + KINDEX(2, 685)=173 + KINDEX(1, 686)=67 + KINDEX(2, 686)=173 + KINDEX(1, 687)=2 + KINDEX(2, 687)=174 + KINDEX(1, 688)=68 + KINDEX(2, 688)=174 + KINDEX(1, 689)=3 + KINDEX(2, 689)=175 + KINDEX(1, 690)=69 + KINDEX(2, 690)=175 + KINDEX(1, 691)=4 + KINDEX(2, 691)=176 + KINDEX(1, 692)=70 + KINDEX(2, 692)=176 + KINDEX(1, 693)=5 + KINDEX(2, 693)=177 + KINDEX(1, 694)=71 + KINDEX(2, 694)=177 + KINDEX(1, 695)=6 + KINDEX(2, 695)=178 + KINDEX(1, 696)=72 + KINDEX(2, 696)=178 + KINDEX(1, 697)=7 + KINDEX(2, 697)=179 + KINDEX(1, 698)=73 + KINDEX(2, 698)=179 + KINDEX(1, 699)=8 + KINDEX(2, 699)=180 + KINDEX(1, 700)=74 + KINDEX(2, 700)=180 + KINDEX(1, 701)=9 + KINDEX(2, 701)=181 + KINDEX(1, 702)=75 + KINDEX(2, 702)=181 + KINDEX(1, 703)=10 + KINDEX(2, 703)=182 + KINDEX(1, 704)=76 + KINDEX(2, 704)=182 + KINDEX(1, 705)=14 + KINDEX(2, 705)=183 + KINDEX(1, 706)=77 + KINDEX(2, 706)=183 + KINDEX(1, 707)=15 + KINDEX(2, 707)=184 + KINDEX(1, 708)=78 + KINDEX(2, 708)=184 + KINDEX(1, 709)=79 + KINDEX(2, 709)=185 + KINDEX(1, 710)=11 + KINDEX(2, 710)=186 + KINDEX(1, 711)=80 + KINDEX(2, 711)=186 + KINDEX(1, 712)=12 + KINDEX(2, 712)=187 + KINDEX(1, 713)=81 + KINDEX(2, 713)=187 + KINDEX(1, 714)=22 + KINDEX(2, 714)=188 + KINDEX(1, 715)=82 + KINDEX(2, 715)=188 + KINDEX(1, 716)=30 + KINDEX(2, 716)=189 + KINDEX(1, 717)=83 + KINDEX(2, 717)=189 + KINDEX(1, 718)=31 + KINDEX(2, 718)=190 + KINDEX(1, 719)=84 + KINDEX(2, 719)=190 + KINDEX(1, 720)=32 + KINDEX(2, 720)=191 + KINDEX(1, 721)=85 + KINDEX(2, 721)=191 + KINDEX(1, 722)=28 + KINDEX(2, 722)=192 + KINDEX(1, 723)=86 + KINDEX(2, 723)=192 + KINDEX(1, 724)=1 + KINDEX(2, 724)=193 + KINDEX(1, 725)=67 + KINDEX(2, 725)=193 + KINDEX(1, 726)=2 + KINDEX(2, 726)=194 + KINDEX(1, 727)=68 + KINDEX(2, 727)=194 + KINDEX(1, 728)=3 + KINDEX(2, 728)=195 + KINDEX(1, 729)=69 + KINDEX(2, 729)=195 + KINDEX(1, 730)=4 + KINDEX(2, 730)=196 + KINDEX(1, 731)=70 + KINDEX(2, 731)=196 + KINDEX(1, 732)=5 + KINDEX(2, 732)=197 + KINDEX(1, 733)=71 + KINDEX(2, 733)=197 + KINDEX(1, 734)=6 + KINDEX(2, 734)=198 + KINDEX(1, 735)=72 + KINDEX(2, 735)=198 + KINDEX(1, 736)=7 + KINDEX(2, 736)=199 + KINDEX(1, 737)=73 + KINDEX(2, 737)=199 + KINDEX(1, 738)=8 + KINDEX(2, 738)=200 + KINDEX(1, 739)=74 + KINDEX(2, 739)=200 + KINDEX(1, 740)=9 + KINDEX(2, 740)=201 + KINDEX(1, 741)=75 + KINDEX(2, 741)=201 + KINDEX(1, 742)=10 + KINDEX(2, 742)=202 + KINDEX(1, 743)=76 + KINDEX(2, 743)=202 + KINDEX(1, 744)=14 + KINDEX(2, 744)=203 + KINDEX(1, 745)=77 + KINDEX(2, 745)=203 + KINDEX(1, 746)=15 + KINDEX(2, 746)=204 + KINDEX(1, 747)=78 + KINDEX(2, 747)=204 + KINDEX(1, 748)=79 + KINDEX(2, 748)=205 + KINDEX(1, 749)=11 + KINDEX(2, 749)=206 + KINDEX(1, 750)=80 + KINDEX(2, 750)=206 + KINDEX(1, 751)=12 + KINDEX(2, 751)=207 + KINDEX(1, 752)=81 + KINDEX(2, 752)=207 + KINDEX(1, 753)=22 + KINDEX(2, 753)=208 + KINDEX(1, 754)=82 + KINDEX(2, 754)=208 + KINDEX(1, 755)=30 + KINDEX(2, 755)=209 + KINDEX(1, 756)=83 + KINDEX(2, 756)=209 + KINDEX(1, 757)=31 + KINDEX(2, 757)=210 + KINDEX(1, 758)=84 + KINDEX(2, 758)=210 + KINDEX(1, 759)=32 + KINDEX(2, 759)=211 + KINDEX(1, 760)=85 + KINDEX(2, 760)=211 + KINDEX(1, 761)=28 + KINDEX(2, 761)=212 + KINDEX(1, 762)=86 + KINDEX(2, 762)=212 + KINDEX(1, 763)=43 + KINDEX(2, 763)=213 + KINDEX(1, 764)=52 + KINDEX(2, 764)=213 + KINDEX(1, 765)=43 + KINDEX(2, 765)=214 KINDEX(1, 766)=52 - KINDEX(2, 766)=232 - KINDEX(1, 767)=10 - KINDEX(2, 767)=233 - KINDEX(1, 768)=52 - KINDEX(2, 768)=233 - KINDEX(1, 769)=85 - KINDEX(2, 769)=233 - KINDEX(1, 770)=10 - KINDEX(2, 770)=234 - KINDEX(1, 771)=15 - KINDEX(2, 771)=234 - KINDEX(1, 772)=52 - KINDEX(2, 772)=234 - KINDEX(1, 773)=1 - KINDEX(2, 773)=235 - KINDEX(1, 774)=2 - KINDEX(2, 774)=235 - KINDEX(1, 775)=10 - KINDEX(2, 775)=235 - KINDEX(1, 776)=41 - KINDEX(2, 776)=235 - KINDEX(1, 777)=72 - KINDEX(2, 777)=235 - KINDEX(1, 778)=10 - KINDEX(2, 778)=236 - KINDEX(1, 779)=41 - KINDEX(2, 779)=236 - KINDEX(1, 780)=72 - KINDEX(2, 780)=236 - KINDEX(1, 781)=85 - KINDEX(2, 781)=236 - KINDEX(1, 782)=10 - KINDEX(2, 782)=237 - KINDEX(1, 783)=15 - KINDEX(2, 783)=237 - KINDEX(1, 784)=41 - KINDEX(2, 784)=237 - KINDEX(1, 785)=72 - KINDEX(2, 785)=237 - KINDEX(1, 786)=85 - KINDEX(2, 786)=238 - KINDEX(1, 787)=1 - KINDEX(2, 787)=239 - KINDEX(1, 788)=2 - KINDEX(2, 788)=239 - KINDEX(1, 789)=10 - KINDEX(2, 789)=239 - KINDEX(1, 790)=73 - KINDEX(2, 790)=239 - KINDEX(1, 791)=10 - KINDEX(2, 791)=240 - KINDEX(1, 792)=73 - KINDEX(2, 792)=240 - KINDEX(1, 793)=85 - KINDEX(2, 793)=240 - KINDEX(1, 794)=10 - KINDEX(2, 794)=241 - KINDEX(1, 795)=15 - KINDEX(2, 795)=241 - KINDEX(1, 796)=73 - KINDEX(2, 796)=241 - KINDEX(1, 797)=1 - KINDEX(2, 797)=242 - KINDEX(1, 798)=2 - KINDEX(2, 798)=242 - KINDEX(1, 799)=10 - KINDEX(2, 799)=242 - KINDEX(1, 800)=41 - KINDEX(2, 800)=242 - KINDEX(1, 801)=72 - KINDEX(2, 801)=242 - KINDEX(1, 802)=10 - KINDEX(2, 802)=243 - KINDEX(1, 803)=41 - KINDEX(2, 803)=243 - KINDEX(1, 804)=72 - KINDEX(2, 804)=243 - KINDEX(1, 805)=85 - KINDEX(2, 805)=243 - KINDEX(1, 806)=10 - KINDEX(2, 806)=244 - KINDEX(1, 807)=15 - KINDEX(2, 807)=244 - KINDEX(1, 808)=41 - KINDEX(2, 808)=244 - KINDEX(1, 809)=72 - KINDEX(2, 809)=244 - KINDEX(1, 810)=85 - KINDEX(2, 810)=245 - KINDEX(1, 811)=1 - KINDEX(2, 811)=246 - KINDEX(1, 812)=2 - KINDEX(2, 812)=246 - KINDEX(1, 813)=10 - KINDEX(2, 813)=246 - KINDEX(1, 814)=73 - KINDEX(2, 814)=246 - KINDEX(1, 815)=10 - KINDEX(2, 815)=247 - KINDEX(1, 816)=73 - KINDEX(2, 816)=247 - KINDEX(1, 817)=85 - KINDEX(2, 817)=247 - KINDEX(1, 818)=10 - KINDEX(2, 818)=248 - KINDEX(1, 819)=15 - KINDEX(2, 819)=248 - KINDEX(1, 820)=73 - KINDEX(2, 820)=248 - KINDEX(1, 821)=1 - KINDEX(2, 821)=249 - KINDEX(1, 822)=2 - KINDEX(2, 822)=249 - KINDEX(1, 823)=10 - KINDEX(2, 823)=249 - KINDEX(1, 824)=41 - KINDEX(2, 824)=249 - KINDEX(1, 825)=72 - KINDEX(2, 825)=249 - KINDEX(1, 826)=10 - KINDEX(2, 826)=250 - KINDEX(1, 827)=41 - KINDEX(2, 827)=250 - KINDEX(1, 828)=72 - KINDEX(2, 828)=250 - KINDEX(1, 829)=85 - KINDEX(2, 829)=250 - KINDEX(1, 830)=10 - KINDEX(2, 830)=251 - KINDEX(1, 831)=15 - KINDEX(2, 831)=251 - KINDEX(1, 832)=41 - KINDEX(2, 832)=251 - KINDEX(1, 833)=72 - KINDEX(2, 833)=251 - KINDEX(1, 834)=85 - KINDEX(2, 834)=252 - KINDEX(1, 835)=1 - KINDEX(2, 835)=253 - KINDEX(1, 836)=2 - KINDEX(2, 836)=253 - KINDEX(1, 837)=10 - KINDEX(2, 837)=253 - KINDEX(1, 838)=52 - KINDEX(2, 838)=253 - KINDEX(1, 839)=10 - KINDEX(2, 839)=254 - KINDEX(1, 840)=52 - KINDEX(2, 840)=254 - KINDEX(1, 841)=85 - KINDEX(2, 841)=254 - KINDEX(1, 842)=10 - KINDEX(2, 842)=255 - KINDEX(1, 843)=15 - KINDEX(2, 843)=255 + KINDEX(2, 766)=214 + KINDEX(1, 767)=52 + KINDEX(2, 767)=215 + KINDEX(1, 768)=53 + KINDEX(2, 768)=215 + KINDEX(1, 769)=43 + KINDEX(2, 769)=216 + KINDEX(1, 770)=52 + KINDEX(2, 770)=216 + KINDEX(1, 771)=53 + KINDEX(2, 771)=216 + KINDEX(1, 772)=43 + KINDEX(2, 772)=217 + KINDEX(1, 773)=53 + KINDEX(2, 773)=217 + KINDEX(1, 774)=42 + KINDEX(2, 774)=218 + KINDEX(1, 775)=52 + KINDEX(2, 775)=218 + KINDEX(1, 776)=53 + KINDEX(2, 776)=218 + KINDEX(1, 777)=52 + KINDEX(2, 777)=219 + KINDEX(1, 778)=55 + KINDEX(2, 778)=219 + KINDEX(1, 779)=62 + KINDEX(2, 779)=219 + KINDEX(1, 780)=45 + KINDEX(2, 780)=220 + KINDEX(1, 781)=48 + KINDEX(2, 781)=220 + KINDEX(1, 782)=52 + KINDEX(2, 782)=220 + KINDEX(1, 783)=45 + KINDEX(2, 783)=221 + KINDEX(1, 784)=50 + KINDEX(2, 784)=221 + KINDEX(1, 785)=53 + KINDEX(2, 785)=221 + KINDEX(1, 786)=45 + KINDEX(2, 786)=222 + KINDEX(1, 787)=50 + KINDEX(2, 787)=222 + KINDEX(1, 788)=53 + KINDEX(2, 788)=222 + KINDEX(1, 789)=48 + KINDEX(2, 789)=223 + KINDEX(1, 790)=50 + KINDEX(2, 790)=223 + KINDEX(1, 791)=49 + KINDEX(2, 791)=224 + KINDEX(1, 792)=50 + KINDEX(2, 792)=224 + KINDEX(1, 793)=55 + KINDEX(2, 793)=224 + KINDEX(1, 794)=56 + KINDEX(2, 794)=224 + KINDEX(1, 795)=45 + KINDEX(2, 795)=225 + KINDEX(1, 796)=49 + KINDEX(2, 796)=225 + KINDEX(1, 797)=52 + KINDEX(2, 797)=225 + KINDEX(1, 798)=47 + KINDEX(2, 798)=226 + KINDEX(1, 799)=49 + KINDEX(2, 799)=226 + KINDEX(1, 800)=46 + KINDEX(2, 800)=227 + KINDEX(1, 801)=49 + KINDEX(2, 801)=227 + KINDEX(1, 802)=56 + KINDEX(2, 802)=227 + KINDEX(1, 803)=63 + KINDEX(2, 803)=227 + KINDEX(1, 804)=46 + KINDEX(2, 804)=228 + KINDEX(1, 805)=49 + KINDEX(2, 805)=228 + KINDEX(1, 806)=55 + KINDEX(2, 806)=228 + KINDEX(1, 807)=62 + KINDEX(2, 807)=228 + KINDEX(1, 808)=53 + KINDEX(2, 808)=229 + KINDEX(1, 809)=57 + KINDEX(2, 809)=229 + KINDEX(1, 810)=60 + KINDEX(2, 810)=229 + KINDEX(1, 811)=55 + KINDEX(2, 811)=230 + KINDEX(1, 812)=60 + KINDEX(2, 812)=230 + KINDEX(1, 813)=61 + KINDEX(2, 813)=230 + KINDEX(1, 814)=62 + KINDEX(2, 814)=230 + KINDEX(1, 815)=52 + KINDEX(2, 815)=231 + KINDEX(1, 816)=53 + KINDEX(2, 816)=231 + KINDEX(1, 817)=57 + KINDEX(2, 817)=231 + KINDEX(1, 818)=58 + KINDEX(2, 818)=231 + KINDEX(1, 819)=52 + KINDEX(2, 819)=232 + KINDEX(1, 820)=53 + KINDEX(2, 820)=232 + KINDEX(1, 821)=54 + KINDEX(2, 821)=232 + KINDEX(1, 822)=58 + KINDEX(2, 822)=232 + KINDEX(1, 823)=55 + KINDEX(2, 823)=233 + KINDEX(1, 824)=57 + KINDEX(2, 824)=233 + KINDEX(1, 825)=66 + KINDEX(2, 825)=233 + KINDEX(1, 826)=55 + KINDEX(2, 826)=234 + KINDEX(1, 827)=57 + KINDEX(2, 827)=234 + KINDEX(1, 828)=66 + KINDEX(2, 828)=234 + KINDEX(1, 829)=52 + KINDEX(2, 829)=235 + KINDEX(1, 830)=53 + KINDEX(2, 830)=235 + KINDEX(1, 831)=55 + KINDEX(2, 831)=235 + KINDEX(1, 832)=58 + KINDEX(2, 832)=235 + KINDEX(1, 833)=66 + KINDEX(2, 833)=235 + KINDEX(1, 834)=62 + KINDEX(2, 834)=236 + KINDEX(1, 835)=64 + KINDEX(2, 835)=236 + KINDEX(1, 836)=53 + KINDEX(2, 836)=237 + KINDEX(1, 837)=64 + KINDEX(2, 837)=237 + KINDEX(1, 838)=65 + KINDEX(2, 838)=237 + KINDEX(1, 839)=63 + KINDEX(2, 839)=238 + KINDEX(1, 840)=64 + KINDEX(2, 840)=238 + KINDEX(1, 841)=55 + KINDEX(2, 841)=239 + KINDEX(1, 842)=56 + KINDEX(2, 842)=239 + KINDEX(1, 843)=65 + KINDEX(2, 843)=239 KINDEX(1, 844)=52 - KINDEX(2, 844)=255 - KINDEX(1, 845)=1 - KINDEX(2, 845)=256 - KINDEX(1, 846)=2 - KINDEX(2, 846)=256 - KINDEX(1, 847)=10 - KINDEX(2, 847)=256 - KINDEX(1, 848)=41 - KINDEX(2, 848)=256 - KINDEX(1, 849)=72 - KINDEX(2, 849)=256 - KINDEX(1, 850)=10 - KINDEX(2, 850)=257 - KINDEX(1, 851)=41 - KINDEX(2, 851)=257 - KINDEX(1, 852)=72 - KINDEX(2, 852)=257 - KINDEX(1, 853)=85 - KINDEX(2, 853)=257 - KINDEX(1, 854)=10 - KINDEX(2, 854)=258 - KINDEX(1, 855)=15 - KINDEX(2, 855)=258 - KINDEX(1, 856)=41 - KINDEX(2, 856)=258 - KINDEX(1, 857)=72 - KINDEX(2, 857)=258 - KINDEX(1, 858)=85 - KINDEX(2, 858)=259 - KINDEX(1, 859)=1 - KINDEX(2, 859)=260 - KINDEX(1, 860)=2 - KINDEX(2, 860)=260 - KINDEX(1, 861)=10 - KINDEX(2, 861)=260 - KINDEX(1, 862)=50 - KINDEX(2, 862)=260 - KINDEX(1, 863)=10 - KINDEX(2, 863)=261 - KINDEX(1, 864)=50 - KINDEX(2, 864)=261 - KINDEX(1, 865)=85 - KINDEX(2, 865)=261 - KINDEX(1, 866)=10 - KINDEX(2, 866)=262 - KINDEX(1, 867)=15 - KINDEX(2, 867)=262 - KINDEX(1, 868)=50 - KINDEX(2, 868)=262 - KINDEX(1, 869)=1 - KINDEX(2, 869)=263 - KINDEX(1, 870)=2 - KINDEX(2, 870)=263 - KINDEX(1, 871)=10 - KINDEX(2, 871)=263 - KINDEX(1, 872)=41 - KINDEX(2, 872)=263 - KINDEX(1, 873)=72 - KINDEX(2, 873)=263 - KINDEX(1, 874)=10 - KINDEX(2, 874)=264 - KINDEX(1, 875)=41 - KINDEX(2, 875)=264 - KINDEX(1, 876)=72 - KINDEX(2, 876)=264 - KINDEX(1, 877)=85 - KINDEX(2, 877)=264 - KINDEX(1, 878)=10 - KINDEX(2, 878)=265 - KINDEX(1, 879)=15 - KINDEX(2, 879)=265 - KINDEX(1, 880)=41 - KINDEX(2, 880)=265 - KINDEX(1, 881)=72 - KINDEX(2, 881)=265 - KINDEX(1, 882)=85 - KINDEX(2, 882)=266 - KINDEX(1, 883)=1 - KINDEX(2, 883)=267 - KINDEX(1, 884)=2 - KINDEX(2, 884)=267 - KINDEX(1, 885)=10 - KINDEX(2, 885)=267 - KINDEX(1, 886)=63 - KINDEX(2, 886)=267 - KINDEX(1, 887)=10 - KINDEX(2, 887)=268 - KINDEX(1, 888)=63 - KINDEX(2, 888)=268 - KINDEX(1, 889)=85 - KINDEX(2, 889)=268 - KINDEX(1, 890)=10 - KINDEX(2, 890)=269 - KINDEX(1, 891)=15 - KINDEX(2, 891)=269 - KINDEX(1, 892)=63 - KINDEX(2, 892)=269 - KINDEX(1, 893)=1 - KINDEX(2, 893)=270 - KINDEX(1, 894)=2 - KINDEX(2, 894)=270 - KINDEX(1, 895)=10 - KINDEX(2, 895)=270 - KINDEX(1, 896)=41 - KINDEX(2, 896)=270 - KINDEX(1, 897)=75 - KINDEX(2, 897)=270 - KINDEX(1, 898)=10 - KINDEX(2, 898)=271 - KINDEX(1, 899)=41 - KINDEX(2, 899)=271 - KINDEX(1, 900)=75 - KINDEX(2, 900)=271 - KINDEX(1, 901)=85 - KINDEX(2, 901)=271 - KINDEX(1, 902)=10 - KINDEX(2, 902)=272 - KINDEX(1, 903)=15 - KINDEX(2, 903)=272 - KINDEX(1, 904)=41 - KINDEX(2, 904)=272 - KINDEX(1, 905)=75 - KINDEX(2, 905)=272 - KINDEX(1, 906)=15 - KINDEX(2, 906)=273 - KINDEX(1, 907)=39 - KINDEX(2, 907)=273 - KINDEX(1, 908)=85 - KINDEX(2, 908)=273 - KINDEX(1, 909)=15 - KINDEX(2, 909)=274 - KINDEX(1, 910)=40 - KINDEX(2, 910)=274 - KINDEX(1, 911)=85 - KINDEX(2, 911)=274 - KINDEX(1, 912)=15 - KINDEX(2, 912)=275 - KINDEX(1, 913)=41 - KINDEX(2, 913)=275 - KINDEX(1, 914)=85 - KINDEX(2, 914)=275 - KINDEX(1, 915)=5 - KINDEX(2, 915)=276 - KINDEX(1, 916)=8 - KINDEX(2, 916)=276 - KINDEX(1, 917)=40 - KINDEX(2, 917)=276 - KINDEX(1, 918)=85 - KINDEX(2, 918)=276 - KINDEX(1, 919)=10 - KINDEX(2, 919)=277 - KINDEX(1, 920)=11 - KINDEX(2, 920)=277 - KINDEX(1, 921)=41 - KINDEX(2, 921)=277 - KINDEX(1, 922)=85 - KINDEX(2, 922)=277 - KINDEX(1, 923)=1 - KINDEX(2, 923)=278 - KINDEX(1, 924)=2 - KINDEX(2, 924)=278 - KINDEX(1, 925)=85 - KINDEX(2, 925)=278 - KINDEX(1, 926)=5 - KINDEX(2, 926)=279 - KINDEX(1, 927)=8 - KINDEX(2, 927)=279 - KINDEX(1, 928)=41 - KINDEX(2, 928)=279 - KINDEX(1, 929)=85 - KINDEX(2, 929)=279 - KINDEX(1, 930)=3 - KINDEX(2, 930)=280 - KINDEX(1, 931)=10 - KINDEX(2, 931)=280 - KINDEX(1, 932)=47 - KINDEX(2, 932)=280 - KINDEX(1, 933)=85 - KINDEX(2, 933)=281 - KINDEX(1, 934)=3 - KINDEX(2, 934)=282 - KINDEX(1, 935)=10 - KINDEX(2, 935)=282 - KINDEX(1, 936)=11 - KINDEX(2, 936)=282 - KINDEX(1, 937)=15 - KINDEX(2, 937)=282 - KINDEX(1, 938)=28 - KINDEX(2, 938)=282 - KINDEX(1, 939)=29 - KINDEX(2, 939)=282 - KINDEX(1, 940)=39 - KINDEX(2, 940)=282 - KINDEX(1, 941)=41 - KINDEX(2, 941)=282 - KINDEX(1, 942)=43 - KINDEX(2, 942)=282 - KINDEX(1, 943)=47 - KINDEX(2, 943)=282 - KINDEX(1, 944)=85 - KINDEX(2, 944)=282 - KINDEX(1, 945)=3 - KINDEX(2, 945)=283 - KINDEX(1, 946)=10 - KINDEX(2, 946)=283 - KINDEX(1, 947)=11 - KINDEX(2, 947)=283 - KINDEX(1, 948)=15 - KINDEX(2, 948)=283 - KINDEX(1, 949)=28 - KINDEX(2, 949)=283 - KINDEX(1, 950)=40 - KINDEX(2, 950)=283 - KINDEX(1, 951)=41 - KINDEX(2, 951)=283 - KINDEX(1, 952)=43 - KINDEX(2, 952)=283 - KINDEX(1, 953)=85 - KINDEX(2, 953)=283 - KINDEX(1, 954)=30 - KINDEX(2, 954)=284 - KINDEX(1, 955)=39 - KINDEX(2, 955)=284 - KINDEX(1, 956)=85 - KINDEX(2, 956)=284 - KINDEX(1, 957)=10 - KINDEX(2, 957)=285 - KINDEX(1, 958)=11 - KINDEX(2, 958)=285 - KINDEX(1, 959)=29 - KINDEX(2, 959)=285 - KINDEX(1, 960)=40 - KINDEX(2, 960)=285 - KINDEX(1, 961)=85 - KINDEX(2, 961)=285 - KINDEX(1, 962)=1 - KINDEX(2, 962)=286 - KINDEX(1, 963)=2 - KINDEX(2, 963)=286 - KINDEX(1, 964)=10 - KINDEX(2, 964)=286 - KINDEX(1, 965)=28 - KINDEX(2, 965)=286 - KINDEX(1, 966)=41 - KINDEX(2, 966)=286 - KINDEX(1, 967)=10 - KINDEX(2, 967)=287 - KINDEX(1, 968)=28 - KINDEX(2, 968)=287 - KINDEX(1, 969)=41 - KINDEX(2, 969)=287 - KINDEX(1, 970)=85 - KINDEX(2, 970)=287 - KINDEX(1, 971)=10 - KINDEX(2, 971)=288 - KINDEX(1, 972)=15 - KINDEX(2, 972)=288 - KINDEX(1, 973)=28 - KINDEX(2, 973)=288 - KINDEX(1, 974)=41 - KINDEX(2, 974)=288 - KINDEX(1, 975)=1 - KINDEX(2, 975)=289 - KINDEX(1, 976)=2 - KINDEX(2, 976)=289 - KINDEX(1, 977)=85 - KINDEX(2, 977)=289 - KINDEX(1, 978)=3 - KINDEX(2, 978)=290 - KINDEX(1, 979)=10 - KINDEX(2, 979)=290 - KINDEX(1, 980)=17 - KINDEX(2, 980)=290 - KINDEX(1, 981)=44 - KINDEX(2, 981)=290 - KINDEX(1, 982)=85 - KINDEX(2, 982)=291 - KINDEX(1, 983)=1 - KINDEX(2, 983)=292 - KINDEX(1, 984)=2 - KINDEX(2, 984)=292 - KINDEX(1, 985)=10 - KINDEX(2, 985)=292 - KINDEX(1, 986)=28 - KINDEX(2, 986)=292 - KINDEX(1, 987)=41 - KINDEX(2, 987)=292 - KINDEX(1, 988)=10 - KINDEX(2, 988)=293 - KINDEX(1, 989)=28 - KINDEX(2, 989)=293 - KINDEX(1, 990)=41 - KINDEX(2, 990)=293 - KINDEX(1, 991)=85 - KINDEX(2, 991)=293 - KINDEX(1, 992)=10 - KINDEX(2, 992)=294 - KINDEX(1, 993)=15 - KINDEX(2, 993)=294 - KINDEX(1, 994)=28 - KINDEX(2, 994)=294 - KINDEX(1, 995)=41 - KINDEX(2, 995)=294 - KINDEX(1, 996)=85 - KINDEX(2, 996)=294 - KINDEX(1, 997)=1 - KINDEX(2, 997)=295 - KINDEX(1, 998)=2 - KINDEX(2, 998)=295 - KINDEX(1, 999)=28 - KINDEX(2, 999)=295 - KINDEX(1, 1000)=41 - KINDEX(2, 1000)=295 - KINDEX(1, 1001)=2 - KINDEX(2, 1001)=296 - KINDEX(1, 1002)=10 - KINDEX(2, 1002)=296 - KINDEX(1, 1003)=28 - KINDEX(2, 1003)=296 - KINDEX(1, 1004)=41 - KINDEX(2, 1004)=296 - KINDEX(1, 1005)=85 - KINDEX(2, 1005)=296 - KINDEX(1, 1006)=2 - KINDEX(2, 1006)=297 - KINDEX(1, 1007)=15 - KINDEX(2, 1007)=297 - KINDEX(1, 1008)=28 - KINDEX(2, 1008)=297 - KINDEX(1, 1009)=41 - KINDEX(2, 1009)=297 - KINDEX(1, 1010)=85 - KINDEX(2, 1010)=297 - KINDEX(1, 1011)=1 - KINDEX(2, 1011)=298 - KINDEX(1, 1012)=2 - KINDEX(2, 1012)=298 - KINDEX(1, 1013)=28 - KINDEX(2, 1013)=298 - KINDEX(1, 1014)=85 - KINDEX(2, 1014)=298 - KINDEX(1, 1015)=10 - KINDEX(2, 1015)=299 - KINDEX(1, 1016)=28 - KINDEX(2, 1016)=299 - KINDEX(1, 1017)=85 - KINDEX(2, 1017)=299 - KINDEX(1, 1018)=15 - KINDEX(2, 1018)=300 - KINDEX(1, 1019)=28 - KINDEX(2, 1019)=300 - KINDEX(1, 1020)=85 - KINDEX(2, 1020)=300 - KINDEX(1, 1021)=1 - KINDEX(2, 1021)=301 - KINDEX(1, 1022)=2 - KINDEX(2, 1022)=301 - KINDEX(1, 1023)=10 - KINDEX(2, 1023)=301 - KINDEX(1, 1024)=11 - KINDEX(2, 1024)=301 - KINDEX(1, 1025)=3 - KINDEX(2, 1025)=302 - KINDEX(1, 1026)=10 - KINDEX(2, 1026)=302 - KINDEX(1, 1027)=74 - KINDEX(2, 1027)=302 - KINDEX(1, 1028)=10 - KINDEX(2, 1028)=303 - KINDEX(1, 1029)=11 - KINDEX(2, 1029)=303 - KINDEX(1, 1030)=85 - KINDEX(2, 1030)=303 - KINDEX(1, 1031)=3 - KINDEX(2, 1031)=304 - KINDEX(1, 1032)=15 - KINDEX(2, 1032)=304 - KINDEX(1, 1033)=60 - KINDEX(2, 1033)=304 - KINDEX(1, 1034)=70 - KINDEX(2, 1034)=304 - KINDEX(1, 1035)=15 - KINDEX(2, 1035)=305 - KINDEX(1, 1036)=69 - KINDEX(2, 1036)=305 - KINDEX(1, 1037)=85 - KINDEX(2, 1037)=305 - KINDEX(1, 1038)=15 - KINDEX(2, 1038)=306 - KINDEX(1, 1039)=74 - KINDEX(2, 1039)=306 - KINDEX(1, 1040)=85 - KINDEX(2, 1040)=306 - KINDEX(1, 1041)=3 - KINDEX(2, 1041)=307 - KINDEX(1, 1042)=15 - KINDEX(2, 1042)=307 - KINDEX(1, 1043)=60 - KINDEX(2, 1043)=307 - KINDEX(1, 1044)=62 - KINDEX(2, 1044)=307 - KINDEX(1, 1045)=75 - KINDEX(2, 1045)=307 - KINDEX(1, 1046)=5 - KINDEX(2, 1046)=308 - KINDEX(1, 1047)=8 - KINDEX(2, 1047)=308 - KINDEX(1, 1048)=69 - KINDEX(2, 1048)=308 - KINDEX(1, 1049)=85 - KINDEX(2, 1049)=308 - KINDEX(1, 1050)=10 - KINDEX(2, 1050)=309 - KINDEX(1, 1051)=11 - KINDEX(2, 1051)=309 - KINDEX(1, 1052)=69 - KINDEX(2, 1052)=309 - KINDEX(1, 1053)=85 - KINDEX(2, 1053)=309 - KINDEX(1, 1054)=1 - KINDEX(2, 1054)=310 - KINDEX(1, 1055)=2 - KINDEX(2, 1055)=310 - KINDEX(1, 1056)=85 - KINDEX(2, 1056)=310 - KINDEX(1, 1057)=3 - KINDEX(2, 1057)=311 - KINDEX(1, 1058)=10 - KINDEX(2, 1058)=311 - KINDEX(1, 1059)=45 - KINDEX(2, 1059)=311 - KINDEX(1, 1060)=85 - KINDEX(2, 1060)=312 - KINDEX(1, 1061)=15 - KINDEX(2, 1061)=313 - KINDEX(1, 1062)=57 - KINDEX(2, 1062)=313 - KINDEX(1, 1063)=85 - KINDEX(2, 1063)=313 - KINDEX(1, 1064)=5 - KINDEX(2, 1064)=314 - KINDEX(1, 1065)=8 - KINDEX(2, 1065)=314 - KINDEX(1, 1066)=57 - KINDEX(2, 1066)=314 - KINDEX(1, 1067)=85 - KINDEX(2, 1067)=314 - KINDEX(1, 1068)=10 - KINDEX(2, 1068)=315 - KINDEX(1, 1069)=11 - KINDEX(2, 1069)=315 - KINDEX(1, 1070)=57 - KINDEX(2, 1070)=315 - KINDEX(1, 1071)=1 - KINDEX(2, 1071)=316 - KINDEX(1, 1072)=2 - KINDEX(2, 1072)=316 - KINDEX(1, 1073)=10 - KINDEX(2, 1073)=316 - KINDEX(1, 1074)=2 - KINDEX(2, 1074)=317 - KINDEX(1, 1075)=83 - KINDEX(2, 1075)=317 - KINDEX(1, 1076)=2 - KINDEX(2, 1076)=318 - KINDEX(1, 1077)=83 - KINDEX(2, 1077)=318 - KINDEX(1, 1078)=85 - KINDEX(2, 1078)=318 - KINDEX(1, 1079)=3 - KINDEX(2, 1079)=319 - KINDEX(1, 1080)=10 - KINDEX(2, 1080)=319 - KINDEX(1, 1081)=53 - KINDEX(2, 1081)=319 - KINDEX(1, 1082)=10 - KINDEX(2, 1082)=320 - KINDEX(1, 1083)=85 - KINDEX(2, 1083)=320 - KINDEX(1, 1084)=5 - KINDEX(2, 1084)=321 - KINDEX(1, 1085)=8 - KINDEX(2, 1085)=321 - KINDEX(1, 1086)=61 - KINDEX(2, 1086)=321 - KINDEX(1, 1087)=2 - KINDEX(2, 1087)=322 - KINDEX(1, 1088)=59 - KINDEX(2, 1088)=322 - KINDEX(1, 1089)=3 - KINDEX(2, 1089)=323 - KINDEX(1, 1090)=15 - KINDEX(2, 1090)=323 - KINDEX(1, 1091)=60 - KINDEX(2, 1091)=323 - KINDEX(1, 1092)=62 - KINDEX(2, 1092)=323 - KINDEX(1, 1093)=3 - KINDEX(2, 1093)=324 - KINDEX(1, 1094)=15 - KINDEX(2, 1094)=324 - KINDEX(1, 1095)=58 - KINDEX(2, 1095)=324 - KINDEX(1, 1096)=63 - KINDEX(2, 1096)=324 - KINDEX(1, 1097)=15 - KINDEX(2, 1097)=325 - KINDEX(1, 1098)=71 - KINDEX(2, 1098)=325 - KINDEX(1, 1099)=85 - KINDEX(2, 1099)=325 - KINDEX(1, 1100)=10 - KINDEX(2, 1100)=326 - KINDEX(1, 1101)=15 - KINDEX(2, 1101)=326 - KINDEX(1, 1102)=72 - KINDEX(2, 1102)=326 - KINDEX(1, 1103)=3 - KINDEX(2, 1103)=327 - KINDEX(1, 1104)=15 - KINDEX(2, 1104)=327 - KINDEX(1, 1105)=49 - KINDEX(2, 1105)=327 - KINDEX(1, 1106)=73 - KINDEX(2, 1106)=327 - KINDEX(1, 1107)=5 - KINDEX(2, 1107)=328 - KINDEX(1, 1108)=8 - KINDEX(2, 1108)=328 - KINDEX(1, 1109)=71 - KINDEX(2, 1109)=328 - KINDEX(1, 1110)=85 - KINDEX(2, 1110)=328 - KINDEX(1, 1111)=72 - KINDEX(2, 1111)=329 - KINDEX(1, 1112)=10 - KINDEX(2, 1112)=330 - KINDEX(1, 1113)=11 - KINDEX(2, 1113)=330 - KINDEX(1, 1114)=71 - KINDEX(2, 1114)=330 - KINDEX(1, 1115)=85 - KINDEX(2, 1115)=330 - KINDEX(1, 1116)=10 - KINDEX(2, 1116)=331 - KINDEX(1, 1117)=71 - KINDEX(2, 1117)=331 - KINDEX(1, 1118)=85 - KINDEX(2, 1118)=331 - KINDEX(1, 1119)=1 - KINDEX(2, 1119)=332 - KINDEX(1, 1120)=2 - KINDEX(2, 1120)=332 - KINDEX(1, 1121)=85 - KINDEX(2, 1121)=332 - KINDEX(1, 1122)=3 - KINDEX(2, 1122)=333 - KINDEX(1, 1123)=10 - KINDEX(2, 1123)=333 - KINDEX(1, 1124)=53 - KINDEX(2, 1124)=333 - KINDEX(1, 1125)=85 - KINDEX(2, 1125)=334 - KINDEX(1, 1126)=3 - KINDEX(2, 1126)=335 - KINDEX(1, 1127)=15 - KINDEX(2, 1127)=335 - KINDEX(1, 1128)=50 - KINDEX(2, 1128)=335 - KINDEX(1, 1129)=52 - KINDEX(2, 1129)=335 - KINDEX(1, 1130)=3 - KINDEX(2, 1130)=336 - KINDEX(1, 1131)=15 - KINDEX(2, 1131)=336 - KINDEX(1, 1132)=48 - KINDEX(2, 1132)=336 - KINDEX(1, 1133)=50 - KINDEX(2, 1133)=336 - KINDEX(1, 1134)=51 - KINDEX(2, 1134)=336 - KINDEX(1, 1135)=3 - KINDEX(2, 1135)=337 - KINDEX(1, 1136)=15 - KINDEX(2, 1136)=337 - KINDEX(1, 1137)=48 - KINDEX(2, 1137)=337 - KINDEX(1, 1138)=51 - KINDEX(2, 1138)=337 - KINDEX(1, 1139)=5 - KINDEX(2, 1139)=338 - KINDEX(1, 1140)=8 - KINDEX(2, 1140)=338 - KINDEX(1, 1141)=74 - KINDEX(2, 1141)=338 - KINDEX(1, 1142)=85 - KINDEX(2, 1142)=338 - KINDEX(1, 1143)=10 - KINDEX(2, 1143)=339 - KINDEX(1, 1144)=11 - KINDEX(2, 1144)=339 - KINDEX(1, 1145)=15 - KINDEX(2, 1145)=339 - KINDEX(1, 1146)=74 - KINDEX(2, 1146)=339 - KINDEX(1, 1147)=1 - KINDEX(2, 1147)=340 - KINDEX(1, 1148)=2 - KINDEX(2, 1148)=340 - KINDEX(1, 1149)=11 - KINDEX(2, 1149)=340 - KINDEX(1, 1150)=15 - KINDEX(2, 1150)=340 - KINDEX(1, 1151)=3 - KINDEX(2, 1151)=341 - KINDEX(1, 1152)=10 - KINDEX(2, 1152)=341 - KINDEX(1, 1153)=46 - KINDEX(2, 1153)=341 - KINDEX(1, 1154)=11 - KINDEX(2, 1154)=342 - KINDEX(1, 1155)=15 - KINDEX(2, 1155)=342 - KINDEX(1, 1156)=85 - KINDEX(2, 1156)=342 - KINDEX(1, 1157)=2 - KINDEX(2, 1157)=343 - KINDEX(1, 1158)=82 - KINDEX(2, 1158)=343 - KINDEX(1, 1159)=85 - KINDEX(2, 1159)=343 - KINDEX(1, 1160)=1 - KINDEX(2, 1160)=344 - KINDEX(1, 1161)=2 - KINDEX(2, 1161)=344 - KINDEX(1, 1162)=85 - KINDEX(2, 1162)=344 - KINDEX(1, 1163)=9 - KINDEX(2, 1163)=345 - KINDEX(1, 1164)=15 - KINDEX(2, 1164)=345 - KINDEX(1, 1165)=14 - KINDEX(2, 1165)=346 - KINDEX(1, 1166)=10 - KINDEX(2, 1166)=347 - KINDEX(1, 1167)=15 - KINDEX(2, 1167)=347 - KINDEX(1, 1168)=43 - KINDEX(2, 1168)=347 - KINDEX(1, 1169)=15 - KINDEX(2, 1169)=348 - KINDEX(1, 1170)=44 - KINDEX(2, 1170)=348 - KINDEX(1, 1171)=15 - KINDEX(2, 1171)=349 - KINDEX(1, 1172)=45 - KINDEX(2, 1172)=349 - KINDEX(1, 1173)=48 - KINDEX(2, 1173)=350 - KINDEX(1, 1174)=53 - KINDEX(2, 1174)=351 - KINDEX(1, 1175)=58 - KINDEX(2, 1175)=352 - KINDEX(1, 1176)=60 - KINDEX(2, 1176)=353 - KINDEX(1, 1177)=64 - KINDEX(2, 1177)=354 - KINDEX(1, 1178)=66 - KINDEX(2, 1178)=355 - KINDEX(1, 1179)=68 - KINDEX(2, 1179)=356 - KINDEX(1, 1180)=56 - KINDEX(2, 1180)=357 - KINDEX(1, 1181)=54 - KINDEX(2, 1181)=358 - KINDEX(1, 1182)=55 - KINDEX(2, 1182)=359 - KINDEX(1, 1183)=65 - KINDEX(2, 1183)=360 - KINDEX(1, 1184)=47 - KINDEX(2, 1184)=361 - KINDEX(1, 1185)=59 - KINDEX(2, 1185)=362 - KINDEX(1, 1186)=49 - KINDEX(2, 1186)=363 - KINDEX(1, 1187)=46 - KINDEX(2, 1187)=364 - KINDEX(1, 1188)=67 - KINDEX(2, 1188)=365 + KINDEX(2, 844)=240 + KINDEX(1, 845)=56 + KINDEX(2, 845)=240 + KINDEX(1, 846)=63 + KINDEX(2, 846)=240 + KINDEX(1, 847)=42 + KINDEX(2, 847)=241 + KINDEX(1, 848)=55 + KINDEX(2, 848)=241 + KINDEX(1, 849)=56 + KINDEX(2, 849)=241 + KINDEX(1, 850)=43 + KINDEX(2, 850)=242 + KINDEX(1, 851)=55 + KINDEX(2, 851)=242 + KINDEX(1, 852)=56 + KINDEX(2, 852)=242 + KINDEX(1, 853)=68 + KINDEX(2, 853)=243 + KINDEX(1, 854)=77 + KINDEX(2, 854)=243 + KINDEX(1, 855)=68 + KINDEX(2, 855)=244 + KINDEX(1, 856)=77 + KINDEX(2, 856)=244 + KINDEX(1, 857)=77 + KINDEX(2, 857)=245 + KINDEX(1, 858)=78 + KINDEX(2, 858)=245 + KINDEX(1, 859)=68 + KINDEX(2, 859)=246 + KINDEX(1, 860)=77 + KINDEX(2, 860)=246 + KINDEX(1, 861)=78 + KINDEX(2, 861)=246 + KINDEX(1, 862)=68 + KINDEX(2, 862)=247 + KINDEX(1, 863)=78 + KINDEX(2, 863)=247 + KINDEX(1, 864)=67 + KINDEX(2, 864)=248 + KINDEX(1, 865)=77 + KINDEX(2, 865)=248 + KINDEX(1, 866)=78 + KINDEX(2, 866)=248 + KINDEX(1, 867)=77 + KINDEX(2, 867)=249 + KINDEX(1, 868)=80 + KINDEX(2, 868)=249 + KINDEX(1, 869)=87 + KINDEX(2, 869)=249 + KINDEX(1, 870)=70 + KINDEX(2, 870)=250 + KINDEX(1, 871)=73 + KINDEX(2, 871)=250 + KINDEX(1, 872)=77 + KINDEX(2, 872)=250 + KINDEX(1, 873)=70 + KINDEX(2, 873)=251 + KINDEX(1, 874)=75 + KINDEX(2, 874)=251 + KINDEX(1, 875)=78 + KINDEX(2, 875)=251 + KINDEX(1, 876)=70 + KINDEX(2, 876)=252 + KINDEX(1, 877)=75 + KINDEX(2, 877)=252 + KINDEX(1, 878)=78 + KINDEX(2, 878)=252 + KINDEX(1, 879)=73 + KINDEX(2, 879)=253 + KINDEX(1, 880)=75 + KINDEX(2, 880)=253 + KINDEX(1, 881)=74 + KINDEX(2, 881)=254 + KINDEX(1, 882)=75 + KINDEX(2, 882)=254 + KINDEX(1, 883)=80 + KINDEX(2, 883)=254 + KINDEX(1, 884)=81 + KINDEX(2, 884)=254 + KINDEX(1, 885)=70 + KINDEX(2, 885)=255 + KINDEX(1, 886)=74 + KINDEX(2, 886)=255 + KINDEX(1, 887)=77 + KINDEX(2, 887)=255 + KINDEX(1, 888)=72 + KINDEX(2, 888)=256 + KINDEX(1, 889)=74 + KINDEX(2, 889)=256 + KINDEX(1, 890)=71 + KINDEX(2, 890)=257 + KINDEX(1, 891)=74 + KINDEX(2, 891)=257 + KINDEX(1, 892)=81 + KINDEX(2, 892)=257 + KINDEX(1, 893)=88 + KINDEX(2, 893)=257 + KINDEX(1, 894)=71 + KINDEX(2, 894)=258 + KINDEX(1, 895)=74 + KINDEX(2, 895)=258 + KINDEX(1, 896)=80 + KINDEX(2, 896)=258 + KINDEX(1, 897)=87 + KINDEX(2, 897)=258 + KINDEX(1, 898)=78 + KINDEX(2, 898)=259 + KINDEX(1, 899)=82 + KINDEX(2, 899)=259 + KINDEX(1, 900)=85 + KINDEX(2, 900)=259 + KINDEX(1, 901)=80 + KINDEX(2, 901)=260 + KINDEX(1, 902)=85 + KINDEX(2, 902)=260 + KINDEX(1, 903)=86 + KINDEX(2, 903)=260 + KINDEX(1, 904)=87 + KINDEX(2, 904)=260 + KINDEX(1, 905)=77 + KINDEX(2, 905)=261 + KINDEX(1, 906)=78 + KINDEX(2, 906)=261 + KINDEX(1, 907)=82 + KINDEX(2, 907)=261 + KINDEX(1, 908)=83 + KINDEX(2, 908)=261 + KINDEX(1, 909)=77 + KINDEX(2, 909)=262 + KINDEX(1, 910)=78 + KINDEX(2, 910)=262 + KINDEX(1, 911)=79 + KINDEX(2, 911)=262 + KINDEX(1, 912)=83 + KINDEX(2, 912)=262 + KINDEX(1, 913)=80 + KINDEX(2, 913)=263 + KINDEX(1, 914)=82 + KINDEX(2, 914)=263 + KINDEX(1, 915)=91 + KINDEX(2, 915)=263 + KINDEX(1, 916)=80 + KINDEX(2, 916)=264 + KINDEX(1, 917)=82 + KINDEX(2, 917)=264 + KINDEX(1, 918)=91 + KINDEX(2, 918)=264 + KINDEX(1, 919)=77 + KINDEX(2, 919)=265 + KINDEX(1, 920)=78 + KINDEX(2, 920)=265 + KINDEX(1, 921)=80 + KINDEX(2, 921)=265 + KINDEX(1, 922)=83 + KINDEX(2, 922)=265 + KINDEX(1, 923)=91 + KINDEX(2, 923)=265 + KINDEX(1, 924)=87 + KINDEX(2, 924)=266 + KINDEX(1, 925)=89 + KINDEX(2, 925)=266 + KINDEX(1, 926)=78 + KINDEX(2, 926)=267 + KINDEX(1, 927)=89 + KINDEX(2, 927)=267 + KINDEX(1, 928)=90 + KINDEX(2, 928)=267 + KINDEX(1, 929)=88 + KINDEX(2, 929)=268 + KINDEX(1, 930)=89 + KINDEX(2, 930)=268 + KINDEX(1, 931)=80 + KINDEX(2, 931)=269 + KINDEX(1, 932)=81 + KINDEX(2, 932)=269 + KINDEX(1, 933)=90 + KINDEX(2, 933)=269 + KINDEX(1, 934)=77 + KINDEX(2, 934)=270 + KINDEX(1, 935)=81 + KINDEX(2, 935)=270 + KINDEX(1, 936)=88 + KINDEX(2, 936)=270 + KINDEX(1, 937)=67 + KINDEX(2, 937)=271 + KINDEX(1, 938)=80 + KINDEX(2, 938)=271 + KINDEX(1, 939)=81 + KINDEX(2, 939)=271 + KINDEX(1, 940)=68 + KINDEX(2, 940)=272 + KINDEX(1, 941)=80 + KINDEX(2, 941)=272 + KINDEX(1, 942)=81 + KINDEX(2, 942)=272 RETURN -END SUBROUTINE CH_NONZEROTERMS_GAZ +END SUBROUTINE CH_NONZEROTERMS_AQ !! !! !! ############################# - SUBROUTINE CH_NONZEROTERMS_AQ + SUBROUTINE CH_NONZEROTERMS_GAZ !! ############################# !! This code has been created automatically by preprocessor m10, !! version: 9.7, copyright 1995-1999 by Meteo France/Universite Paul Sabatier. @@ -98975,3547 +37315,1223 @@ END SUBROUTINE CH_NONZEROTERMS_GAZ !! ------------------ IMPLICIT NONE ! check if output array is large enough -IF (KINDEXDIM.LT.1768) THEN +IF (KINDEXDIM.LT.606) THEN STOP 'CH_NONZEROTERMS ERROR: array KINDEX is too small!' END IF - KINDEX(1, 1)=1 + KINDEX(1, 1)=3 KINDEX(2, 1)=1 - KINDEX(1, 2)=2 + KINDEX(1, 2)=4 KINDEX(2, 2)=1 - KINDEX(1, 3)=3 + KINDEX(1, 3)=1 KINDEX(2, 3)=2 KINDEX(1, 4)=1 KINDEX(2, 4)=3 - KINDEX(1, 5)=2 - KINDEX(2, 5)=3 - KINDEX(1, 6)=2 + KINDEX(1, 5)=3 + KINDEX(2, 5)=4 + KINDEX(1, 6)=7 KINDEX(2, 6)=4 - KINDEX(1, 7)=8 + KINDEX(1, 7)=14 KINDEX(2, 7)=4 - KINDEX(1, 8)=1 + KINDEX(1, 8)=4 KINDEX(2, 8)=5 - KINDEX(1, 9)=2 + KINDEX(1, 9)=8 KINDEX(2, 9)=5 - KINDEX(1, 10)=3 + KINDEX(1, 10)=14 KINDEX(2, 10)=5 - KINDEX(1, 11)=2 + KINDEX(1, 11)=4 KINDEX(2, 11)=6 - KINDEX(1, 12)=3 + KINDEX(1, 12)=5 KINDEX(2, 12)=6 - KINDEX(1, 13)=8 + KINDEX(1, 13)=9 KINDEX(2, 13)=6 - KINDEX(1, 14)=1 - KINDEX(2, 14)=7 - KINDEX(1, 15)=2 - KINDEX(2, 15)=7 - KINDEX(1, 16)=8 + KINDEX(1, 14)=14 + KINDEX(2, 14)=6 + KINDEX(1, 15)=15 + KINDEX(2, 15)=6 + KINDEX(1, 16)=3 KINDEX(2, 16)=7 - KINDEX(1, 17)=1 - KINDEX(2, 17)=8 - KINDEX(1, 18)=2 + KINDEX(1, 17)=5 + KINDEX(2, 17)=7 + KINDEX(1, 18)=4 KINDEX(2, 18)=8 - KINDEX(1, 19)=2 - KINDEX(2, 19)=9 - KINDEX(1, 20)=7 + KINDEX(1, 19)=5 + KINDEX(2, 19)=8 + KINDEX(1, 20)=2 KINDEX(2, 20)=9 - KINDEX(1, 21)=8 + KINDEX(1, 21)=14 KINDEX(2, 21)=9 - KINDEX(1, 22)=2 + KINDEX(1, 22)=13 KINDEX(2, 22)=10 - KINDEX(1, 23)=7 + KINDEX(1, 23)=22 KINDEX(2, 23)=10 - KINDEX(1, 24)=8 - KINDEX(2, 24)=10 - KINDEX(1, 25)=5 + KINDEX(1, 24)=13 + KINDEX(2, 24)=11 + KINDEX(1, 25)=15 KINDEX(2, 25)=11 - KINDEX(1, 26)=7 + KINDEX(1, 26)=22 KINDEX(2, 26)=11 - KINDEX(1, 27)=1 + KINDEX(1, 27)=13 KINDEX(2, 27)=12 - KINDEX(1, 28)=2 + KINDEX(1, 28)=15 KINDEX(2, 28)=12 - KINDEX(1, 29)=8 + KINDEX(1, 29)=23 KINDEX(2, 29)=12 - KINDEX(1, 30)=1 - KINDEX(2, 30)=13 - KINDEX(1, 31)=8 + KINDEX(1, 30)=32 + KINDEX(2, 30)=12 + KINDEX(1, 31)=14 KINDEX(2, 31)=13 - KINDEX(1, 32)=2 - KINDEX(2, 32)=14 - KINDEX(1, 33)=8 - KINDEX(2, 33)=14 - KINDEX(1, 34)=3 - KINDEX(2, 34)=15 - KINDEX(1, 35)=3 - KINDEX(2, 35)=16 + KINDEX(1, 32)=15 + KINDEX(2, 32)=13 + KINDEX(1, 33)=22 + KINDEX(2, 33)=13 + KINDEX(1, 34)=28 + KINDEX(2, 34)=13 + KINDEX(1, 35)=14 + KINDEX(2, 35)=14 KINDEX(1, 36)=15 - KINDEX(2, 36)=17 - KINDEX(1, 37)=1 - KINDEX(2, 37)=20 - KINDEX(1, 38)=4 - KINDEX(2, 38)=20 - KINDEX(1, 39)=15 - KINDEX(2, 39)=20 - KINDEX(1, 40)=1 - KINDEX(2, 40)=21 - KINDEX(1, 41)=2 - KINDEX(2, 41)=21 - KINDEX(1, 42)=4 - KINDEX(2, 42)=21 - KINDEX(1, 43)=10 - KINDEX(2, 43)=21 + KINDEX(2, 36)=14 + KINDEX(1, 37)=23 + KINDEX(2, 37)=14 + KINDEX(1, 38)=29 + KINDEX(2, 38)=14 + KINDEX(1, 39)=32 + KINDEX(2, 39)=14 + KINDEX(1, 40)=24 + KINDEX(2, 40)=15 + KINDEX(1, 41)=33 + KINDEX(2, 41)=15 + KINDEX(1, 42)=39 + KINDEX(2, 42)=15 + KINDEX(1, 43)=13 + KINDEX(2, 43)=16 KINDEX(1, 44)=15 - KINDEX(2, 44)=21 - KINDEX(1, 45)=2 - KINDEX(2, 45)=22 - KINDEX(1, 46)=4 - KINDEX(2, 46)=22 - KINDEX(1, 47)=5 - KINDEX(2, 47)=22 - KINDEX(1, 48)=2 - KINDEX(2, 48)=23 - KINDEX(1, 49)=5 - KINDEX(2, 49)=23 - KINDEX(1, 50)=15 - KINDEX(2, 50)=23 - KINDEX(1, 51)=5 - KINDEX(2, 51)=24 - KINDEX(1, 52)=8 - KINDEX(2, 52)=24 - KINDEX(1, 53)=15 - KINDEX(2, 53)=24 - KINDEX(1, 54)=10 - KINDEX(2, 54)=25 - KINDEX(1, 55)=11 - KINDEX(2, 55)=25 - KINDEX(1, 56)=15 - KINDEX(2, 56)=25 - KINDEX(1, 57)=3 - KINDEX(2, 57)=26 - KINDEX(1, 58)=10 - KINDEX(2, 58)=26 - KINDEX(1, 59)=15 - KINDEX(2, 59)=26 - KINDEX(1, 60)=1 - KINDEX(2, 60)=27 - KINDEX(1, 61)=2 - KINDEX(2, 61)=27 - KINDEX(1, 62)=10 - KINDEX(2, 62)=27 + KINDEX(2, 44)=16 + KINDEX(1, 45)=22 + KINDEX(2, 45)=16 + KINDEX(1, 46)=25 + KINDEX(2, 46)=16 + KINDEX(1, 47)=39 + KINDEX(2, 47)=16 + KINDEX(1, 48)=4 + KINDEX(2, 48)=17 + KINDEX(1, 49)=15 + KINDEX(2, 49)=17 + KINDEX(1, 50)=23 + KINDEX(2, 50)=17 + KINDEX(1, 51)=24 + KINDEX(2, 51)=17 + KINDEX(1, 52)=26 + KINDEX(2, 52)=17 + KINDEX(1, 53)=1 + KINDEX(2, 53)=18 + KINDEX(1, 54)=1 + KINDEX(2, 54)=19 + KINDEX(1, 55)=14 + KINDEX(2, 55)=22 + KINDEX(1, 56)=1 + KINDEX(2, 56)=23 + KINDEX(1, 57)=14 + KINDEX(2, 57)=23 + KINDEX(1, 58)=15 + KINDEX(2, 58)=23 + KINDEX(1, 59)=1 + KINDEX(2, 59)=24 + KINDEX(1, 60)=14 + KINDEX(2, 60)=24 + KINDEX(1, 61)=15 + KINDEX(2, 61)=24 + KINDEX(1, 62)=14 + KINDEX(2, 62)=25 KINDEX(1, 63)=15 - KINDEX(2, 63)=27 + KINDEX(2, 63)=25 KINDEX(1, 64)=2 - KINDEX(2, 64)=28 - KINDEX(1, 65)=6 - KINDEX(2, 65)=28 - KINDEX(1, 66)=10 - KINDEX(2, 66)=28 + KINDEX(2, 64)=26 + KINDEX(1, 65)=14 + KINDEX(2, 65)=26 + KINDEX(1, 66)=15 + KINDEX(2, 66)=26 KINDEX(1, 67)=2 - KINDEX(2, 67)=29 - KINDEX(1, 68)=6 - KINDEX(2, 68)=29 - KINDEX(1, 69)=10 - KINDEX(2, 69)=29 - KINDEX(1, 70)=2 - KINDEX(2, 70)=30 - KINDEX(1, 71)=6 - KINDEX(2, 71)=30 - KINDEX(1, 72)=15 - KINDEX(2, 72)=30 + KINDEX(2, 67)=27 + KINDEX(1, 68)=15 + KINDEX(2, 68)=27 + KINDEX(1, 69)=2 + KINDEX(2, 69)=28 + KINDEX(1, 70)=15 + KINDEX(2, 70)=28 + KINDEX(1, 71)=3 + KINDEX(2, 71)=29 + KINDEX(1, 72)=4 + KINDEX(2, 72)=29 KINDEX(1, 73)=3 - KINDEX(2, 73)=31 - KINDEX(1, 74)=10 - KINDEX(2, 74)=31 - KINDEX(1, 75)=15 + KINDEX(2, 73)=30 + KINDEX(1, 74)=4 + KINDEX(2, 74)=30 + KINDEX(1, 75)=4 KINDEX(2, 75)=31 - KINDEX(1, 76)=10 - KINDEX(2, 76)=32 - KINDEX(1, 77)=12 + KINDEX(1, 76)=5 + KINDEX(2, 76)=31 + KINDEX(1, 77)=3 KINDEX(2, 77)=32 - KINDEX(1, 78)=10 - KINDEX(2, 78)=33 - KINDEX(1, 79)=12 - KINDEX(2, 79)=33 - KINDEX(1, 80)=2 - KINDEX(2, 80)=34 - KINDEX(1, 81)=5 - KINDEX(2, 81)=34 - KINDEX(1, 82)=8 - KINDEX(2, 82)=34 - KINDEX(1, 83)=10 + KINDEX(1, 78)=7 + KINDEX(2, 78)=32 + KINDEX(1, 79)=14 + KINDEX(2, 79)=32 + KINDEX(1, 80)=4 + KINDEX(2, 80)=33 + KINDEX(1, 81)=8 + KINDEX(2, 81)=33 + KINDEX(1, 82)=14 + KINDEX(2, 82)=33 + KINDEX(1, 83)=4 KINDEX(2, 83)=34 - KINDEX(1, 84)=15 + KINDEX(1, 84)=5 KINDEX(2, 84)=34 - KINDEX(1, 85)=3 - KINDEX(2, 85)=35 - KINDEX(1, 86)=10 - KINDEX(2, 86)=36 - KINDEX(1, 87)=13 - KINDEX(2, 87)=36 - KINDEX(1, 88)=14 - KINDEX(2, 88)=36 - KINDEX(1, 89)=15 - KINDEX(2, 89)=36 - KINDEX(1, 90)=12 - KINDEX(2, 90)=37 - KINDEX(1, 91)=15 - KINDEX(2, 91)=37 - KINDEX(1, 92)=10 - KINDEX(2, 92)=38 - KINDEX(1, 93)=12 - KINDEX(2, 93)=38 - KINDEX(1, 94)=15 - KINDEX(2, 94)=38 - KINDEX(1, 95)=1 - KINDEX(2, 95)=39 - KINDEX(1, 96)=2 - KINDEX(2, 96)=39 - KINDEX(1, 97)=2 - KINDEX(2, 97)=40 - KINDEX(1, 98)=4 - KINDEX(2, 98)=40 - KINDEX(1, 99)=15 - KINDEX(2, 99)=40 - KINDEX(1, 100)=2 - KINDEX(2, 100)=41 - KINDEX(1, 101)=8 - KINDEX(2, 101)=41 - KINDEX(1, 102)=10 - KINDEX(2, 102)=41 - KINDEX(1, 103)=15 - KINDEX(2, 103)=41 - KINDEX(1, 104)=2 - KINDEX(2, 104)=42 - KINDEX(1, 105)=8 - KINDEX(2, 105)=42 - KINDEX(1, 106)=10 - KINDEX(2, 106)=43 - KINDEX(1, 107)=15 - KINDEX(2, 107)=43 - KINDEX(1, 108)=15 - KINDEX(2, 108)=44 - KINDEX(1, 109)=85 - KINDEX(2, 109)=44 - KINDEX(1, 110)=86 - KINDEX(2, 110)=44 - KINDEX(1, 111)=10 - KINDEX(2, 111)=45 - KINDEX(1, 112)=11 - KINDEX(2, 112)=45 - KINDEX(1, 113)=28 - KINDEX(2, 113)=45 - KINDEX(1, 114)=11 - KINDEX(2, 114)=46 - KINDEX(1, 115)=28 - KINDEX(2, 115)=46 - KINDEX(1, 116)=10 - KINDEX(2, 116)=47 - KINDEX(1, 117)=11 - KINDEX(2, 117)=47 - KINDEX(1, 118)=15 - KINDEX(2, 118)=47 - KINDEX(1, 119)=28 - KINDEX(2, 119)=47 - KINDEX(1, 120)=5 - KINDEX(2, 120)=48 - KINDEX(1, 121)=8 - KINDEX(2, 121)=48 - KINDEX(1, 122)=10 - KINDEX(2, 122)=48 - KINDEX(1, 123)=11 - KINDEX(2, 123)=48 - KINDEX(1, 124)=28 - KINDEX(2, 124)=48 - KINDEX(1, 125)=10 - KINDEX(2, 125)=49 - KINDEX(1, 126)=15 - KINDEX(2, 126)=49 - KINDEX(1, 127)=28 - KINDEX(2, 127)=49 - KINDEX(1, 128)=32 - KINDEX(2, 128)=49 - KINDEX(1, 129)=15 - KINDEX(2, 129)=50 - KINDEX(1, 130)=16 - KINDEX(2, 130)=50 - KINDEX(1, 131)=85 - KINDEX(2, 131)=50 - KINDEX(1, 132)=8 - KINDEX(2, 132)=51 - KINDEX(1, 133)=16 - KINDEX(2, 133)=51 - KINDEX(1, 134)=85 - KINDEX(2, 134)=51 - KINDEX(1, 135)=3 - KINDEX(2, 135)=52 - KINDEX(1, 136)=10 - KINDEX(2, 136)=52 + KINDEX(1, 85)=14 + KINDEX(2, 85)=34 + KINDEX(1, 86)=15 + KINDEX(2, 86)=34 + KINDEX(1, 87)=3 + KINDEX(2, 87)=35 + KINDEX(1, 88)=4 + KINDEX(2, 88)=35 + KINDEX(1, 89)=14 + KINDEX(2, 89)=35 + KINDEX(1, 90)=15 + KINDEX(2, 90)=35 + KINDEX(1, 91)=4 + KINDEX(2, 91)=36 + KINDEX(1, 92)=9 + KINDEX(2, 92)=36 + KINDEX(1, 93)=15 + KINDEX(2, 93)=36 + KINDEX(1, 94)=4 + KINDEX(2, 94)=37 + KINDEX(1, 95)=9 + KINDEX(2, 95)=37 + KINDEX(1, 96)=15 + KINDEX(2, 96)=37 + KINDEX(1, 97)=4 + KINDEX(2, 97)=38 + KINDEX(1, 98)=5 + KINDEX(2, 98)=38 + KINDEX(1, 99)=8 + KINDEX(2, 99)=38 + KINDEX(1, 100)=14 + KINDEX(2, 100)=38 + KINDEX(1, 101)=15 + KINDEX(2, 101)=38 + KINDEX(1, 102)=4 + KINDEX(2, 102)=39 + KINDEX(1, 103)=7 + KINDEX(2, 103)=39 + KINDEX(1, 104)=14 + KINDEX(2, 104)=39 + KINDEX(1, 105)=5 + KINDEX(2, 105)=40 + KINDEX(1, 106)=8 + KINDEX(2, 106)=40 + KINDEX(1, 107)=14 + KINDEX(2, 107)=40 + KINDEX(1, 108)=4 + KINDEX(2, 108)=41 + KINDEX(1, 109)=9 + KINDEX(2, 109)=41 + KINDEX(1, 110)=14 + KINDEX(2, 110)=41 + KINDEX(1, 111)=1 + KINDEX(2, 111)=42 + KINDEX(1, 112)=3 + KINDEX(2, 112)=42 + KINDEX(1, 113)=4 + KINDEX(2, 113)=42 + KINDEX(1, 114)=1 + KINDEX(2, 114)=43 + KINDEX(1, 115)=4 + KINDEX(2, 115)=43 + KINDEX(1, 116)=5 + KINDEX(2, 116)=43 + KINDEX(1, 117)=3 + KINDEX(2, 117)=44 + KINDEX(1, 118)=4 + KINDEX(2, 118)=44 + KINDEX(1, 119)=3 + KINDEX(2, 119)=45 + KINDEX(1, 120)=4 + KINDEX(2, 120)=45 + KINDEX(1, 121)=5 + KINDEX(2, 121)=45 + KINDEX(1, 122)=3 + KINDEX(2, 122)=46 + KINDEX(1, 123)=4 + KINDEX(2, 123)=46 + KINDEX(1, 124)=5 + KINDEX(2, 124)=46 + KINDEX(1, 125)=4 + KINDEX(2, 125)=47 + KINDEX(1, 126)=5 + KINDEX(2, 126)=47 + KINDEX(1, 127)=6 + KINDEX(2, 127)=47 + KINDEX(1, 128)=4 + KINDEX(2, 128)=48 + KINDEX(1, 129)=5 + KINDEX(2, 129)=48 + KINDEX(1, 130)=6 + KINDEX(2, 130)=48 + KINDEX(1, 131)=4 + KINDEX(2, 131)=49 + KINDEX(1, 132)=5 + KINDEX(2, 132)=49 + KINDEX(1, 133)=10 + KINDEX(2, 133)=50 + KINDEX(1, 134)=14 + KINDEX(2, 134)=50 + KINDEX(1, 135)=14 + KINDEX(2, 135)=51 + KINDEX(1, 136)=15 + KINDEX(2, 136)=51 KINDEX(1, 137)=11 KINDEX(2, 137)=52 - KINDEX(1, 138)=15 + KINDEX(1, 138)=12 KINDEX(2, 138)=52 - KINDEX(1, 139)=16 + KINDEX(1, 139)=14 KINDEX(2, 139)=52 - KINDEX(1, 140)=28 + KINDEX(1, 140)=15 KINDEX(2, 140)=52 - KINDEX(1, 141)=43 - KINDEX(2, 141)=52 - KINDEX(1, 142)=10 + KINDEX(1, 141)=13 + KINDEX(2, 141)=53 + KINDEX(1, 142)=14 KINDEX(2, 142)=53 - KINDEX(1, 143)=11 + KINDEX(1, 143)=15 KINDEX(2, 143)=53 - KINDEX(1, 144)=16 - KINDEX(2, 144)=53 - KINDEX(1, 145)=85 - KINDEX(2, 145)=53 - KINDEX(1, 146)=86 - KINDEX(2, 146)=53 - KINDEX(1, 147)=10 + KINDEX(1, 144)=13 + KINDEX(2, 144)=54 + KINDEX(1, 145)=14 + KINDEX(2, 145)=54 + KINDEX(1, 146)=15 + KINDEX(2, 146)=54 + KINDEX(1, 147)=19 KINDEX(2, 147)=54 - KINDEX(1, 148)=15 + KINDEX(1, 148)=20 KINDEX(2, 148)=54 - KINDEX(1, 149)=29 + KINDEX(1, 149)=22 KINDEX(2, 149)=54 - KINDEX(1, 150)=33 + KINDEX(1, 150)=25 KINDEX(2, 150)=54 - KINDEX(1, 151)=85 + KINDEX(1, 151)=41 KINDEX(2, 151)=54 - KINDEX(1, 152)=15 + KINDEX(1, 152)=23 KINDEX(2, 152)=55 - KINDEX(1, 153)=17 + KINDEX(1, 153)=25 KINDEX(2, 153)=55 - KINDEX(1, 154)=85 - KINDEX(2, 154)=55 - KINDEX(1, 155)=8 + KINDEX(1, 154)=14 + KINDEX(2, 154)=56 + KINDEX(1, 155)=16 KINDEX(2, 155)=56 - KINDEX(1, 156)=17 + KINDEX(1, 156)=32 KINDEX(2, 156)=56 - KINDEX(1, 157)=85 - KINDEX(2, 157)=56 - KINDEX(1, 158)=3 + KINDEX(1, 157)=14 + KINDEX(2, 157)=57 + KINDEX(1, 158)=17 KINDEX(2, 158)=57 - KINDEX(1, 159)=10 + KINDEX(1, 159)=33 KINDEX(2, 159)=57 - KINDEX(1, 160)=11 - KINDEX(2, 160)=57 - KINDEX(1, 161)=15 - KINDEX(2, 161)=57 - KINDEX(1, 162)=17 - KINDEX(2, 162)=57 - KINDEX(1, 163)=19 - KINDEX(2, 163)=57 - KINDEX(1, 164)=28 - KINDEX(2, 164)=57 - KINDEX(1, 165)=29 - KINDEX(2, 165)=57 - KINDEX(1, 166)=43 - KINDEX(2, 166)=57 - KINDEX(1, 167)=44 - KINDEX(2, 167)=57 - KINDEX(1, 168)=85 - KINDEX(2, 168)=57 - KINDEX(1, 169)=87 - KINDEX(2, 169)=57 - KINDEX(1, 170)=17 - KINDEX(2, 170)=58 + KINDEX(1, 160)=13 + KINDEX(2, 160)=58 + KINDEX(1, 161)=14 + KINDEX(2, 161)=58 + KINDEX(1, 162)=15 + KINDEX(2, 162)=58 + KINDEX(1, 163)=18 + KINDEX(2, 163)=58 + KINDEX(1, 164)=22 + KINDEX(2, 164)=58 + KINDEX(1, 165)=23 + KINDEX(2, 165)=58 + KINDEX(1, 166)=24 + KINDEX(2, 166)=58 + KINDEX(1, 167)=25 + KINDEX(2, 167)=58 + KINDEX(1, 168)=30 + KINDEX(2, 168)=58 + KINDEX(1, 169)=33 + KINDEX(2, 169)=58 + KINDEX(1, 170)=14 + KINDEX(2, 170)=59 KINDEX(1, 171)=19 - KINDEX(2, 171)=58 - KINDEX(1, 172)=29 - KINDEX(2, 172)=58 - KINDEX(1, 173)=85 - KINDEX(2, 173)=58 - KINDEX(1, 174)=87 - KINDEX(2, 174)=58 - KINDEX(1, 175)=15 - KINDEX(2, 175)=59 - KINDEX(1, 176)=19 - KINDEX(2, 176)=59 - KINDEX(1, 177)=85 - KINDEX(2, 177)=59 - KINDEX(1, 178)=87 - KINDEX(2, 178)=59 - KINDEX(1, 179)=10 - KINDEX(2, 179)=60 - KINDEX(1, 180)=11 - KINDEX(2, 180)=60 - KINDEX(1, 181)=29 - KINDEX(2, 181)=60 - KINDEX(1, 182)=85 - KINDEX(2, 182)=60 - KINDEX(1, 183)=87 - KINDEX(2, 183)=60 - KINDEX(1, 184)=15 - KINDEX(2, 184)=61 - KINDEX(1, 185)=29 - KINDEX(2, 185)=61 - KINDEX(1, 186)=85 - KINDEX(2, 186)=61 - KINDEX(1, 187)=5 - KINDEX(2, 187)=62 - KINDEX(1, 188)=8 - KINDEX(2, 188)=62 - KINDEX(1, 189)=29 - KINDEX(2, 189)=62 - KINDEX(1, 190)=85 - KINDEX(2, 190)=62 - KINDEX(1, 191)=15 - KINDEX(2, 191)=63 - KINDEX(1, 192)=30 - KINDEX(2, 192)=63 - KINDEX(1, 193)=85 - KINDEX(2, 193)=63 - KINDEX(1, 194)=30 - KINDEX(2, 194)=64 - KINDEX(1, 195)=85 - KINDEX(2, 195)=64 - KINDEX(1, 196)=87 - KINDEX(2, 196)=64 - KINDEX(1, 197)=15 + KINDEX(2, 171)=59 + KINDEX(1, 172)=34 + KINDEX(2, 172)=59 + KINDEX(1, 173)=35 + KINDEX(2, 173)=59 + KINDEX(1, 174)=14 + KINDEX(2, 174)=60 + KINDEX(1, 175)=20 + KINDEX(2, 175)=60 + KINDEX(1, 176)=35 + KINDEX(2, 176)=60 + KINDEX(1, 177)=14 + KINDEX(2, 177)=61 + KINDEX(1, 178)=15 + KINDEX(2, 178)=61 + KINDEX(1, 179)=21 + KINDEX(2, 179)=61 + KINDEX(1, 180)=36 + KINDEX(2, 180)=61 + KINDEX(1, 181)=37 + KINDEX(2, 181)=61 + KINDEX(1, 182)=41 + KINDEX(2, 182)=61 + KINDEX(1, 183)=13 + KINDEX(2, 183)=62 + KINDEX(1, 184)=14 + KINDEX(2, 184)=62 + KINDEX(1, 185)=15 + KINDEX(2, 185)=62 + KINDEX(1, 186)=22 + KINDEX(2, 186)=62 + KINDEX(1, 187)=14 + KINDEX(2, 187)=63 + KINDEX(1, 188)=23 + KINDEX(2, 188)=63 + KINDEX(1, 189)=39 + KINDEX(2, 189)=63 + KINDEX(1, 190)=14 + KINDEX(2, 190)=64 + KINDEX(1, 191)=24 + KINDEX(2, 191)=64 + KINDEX(1, 192)=39 + KINDEX(2, 192)=64 + KINDEX(1, 193)=13 + KINDEX(2, 193)=65 + KINDEX(1, 194)=14 + KINDEX(2, 194)=65 + KINDEX(1, 195)=15 + KINDEX(2, 195)=65 + KINDEX(1, 196)=22 + KINDEX(2, 196)=65 + KINDEX(1, 197)=23 KINDEX(2, 197)=65 - KINDEX(1, 198)=35 + KINDEX(1, 198)=24 KINDEX(2, 198)=65 - KINDEX(1, 199)=85 + KINDEX(1, 199)=25 KINDEX(2, 199)=65 - KINDEX(1, 200)=8 - KINDEX(2, 200)=66 - KINDEX(1, 201)=35 - KINDEX(2, 201)=66 - KINDEX(1, 202)=85 + KINDEX(1, 200)=39 + KINDEX(2, 200)=65 + KINDEX(1, 201)=41 + KINDEX(2, 201)=65 + KINDEX(1, 202)=14 KINDEX(2, 202)=66 - KINDEX(1, 203)=3 - KINDEX(2, 203)=67 - KINDEX(1, 204)=10 - KINDEX(2, 204)=67 - KINDEX(1, 205)=11 + KINDEX(1, 203)=15 + KINDEX(2, 203)=66 + KINDEX(1, 204)=30 + KINDEX(2, 204)=66 + KINDEX(1, 205)=14 KINDEX(2, 205)=67 - KINDEX(1, 206)=15 + KINDEX(1, 206)=31 KINDEX(2, 206)=67 - KINDEX(1, 207)=17 - KINDEX(2, 207)=67 - KINDEX(1, 208)=28 - KINDEX(2, 208)=67 - KINDEX(1, 209)=35 - KINDEX(2, 209)=67 - KINDEX(1, 210)=39 - KINDEX(2, 210)=67 - KINDEX(1, 211)=40 - KINDEX(2, 211)=67 - KINDEX(1, 212)=43 - KINDEX(2, 212)=67 - KINDEX(1, 213)=85 - KINDEX(2, 213)=67 - KINDEX(1, 214)=17 - KINDEX(2, 214)=68 - KINDEX(1, 215)=29 - KINDEX(2, 215)=68 - KINDEX(1, 216)=35 - KINDEX(2, 216)=68 - KINDEX(1, 217)=15 + KINDEX(1, 207)=14 + KINDEX(2, 207)=68 + KINDEX(1, 208)=22 + KINDEX(2, 208)=68 + KINDEX(1, 209)=28 + KINDEX(2, 209)=68 + KINDEX(1, 210)=32 + KINDEX(2, 210)=68 + KINDEX(1, 211)=14 + KINDEX(2, 211)=69 + KINDEX(1, 212)=15 + KINDEX(2, 212)=69 + KINDEX(1, 213)=22 + KINDEX(2, 213)=69 + KINDEX(1, 214)=23 + KINDEX(2, 214)=69 + KINDEX(1, 215)=24 + KINDEX(2, 215)=69 + KINDEX(1, 216)=29 + KINDEX(2, 216)=69 + KINDEX(1, 217)=33 KINDEX(2, 217)=69 - KINDEX(1, 218)=38 + KINDEX(1, 218)=39 KINDEX(2, 218)=69 - KINDEX(1, 219)=85 + KINDEX(1, 219)=41 KINDEX(2, 219)=69 - KINDEX(1, 220)=15 + KINDEX(1, 220)=5 KINDEX(2, 220)=70 - KINDEX(1, 221)=34 + KINDEX(1, 221)=14 KINDEX(2, 221)=70 - KINDEX(1, 222)=85 + KINDEX(1, 222)=15 KINDEX(2, 222)=70 - KINDEX(1, 223)=15 - KINDEX(2, 223)=71 - KINDEX(1, 224)=31 - KINDEX(2, 224)=71 - KINDEX(1, 225)=85 - KINDEX(2, 225)=71 - KINDEX(1, 226)=31 - KINDEX(2, 226)=72 - KINDEX(1, 227)=85 - KINDEX(2, 227)=72 - KINDEX(1, 228)=87 - KINDEX(2, 228)=72 - KINDEX(1, 229)=5 - KINDEX(2, 229)=73 - KINDEX(1, 230)=8 - KINDEX(2, 230)=73 - KINDEX(1, 231)=24 - KINDEX(2, 231)=73 - KINDEX(1, 232)=10 - KINDEX(2, 232)=74 - KINDEX(1, 233)=15 - KINDEX(2, 233)=74 - KINDEX(1, 234)=24 - KINDEX(2, 234)=74 - KINDEX(1, 235)=85 - KINDEX(2, 235)=74 - KINDEX(1, 236)=15 - KINDEX(2, 236)=75 - KINDEX(1, 237)=18 - KINDEX(2, 237)=75 - KINDEX(1, 238)=85 - KINDEX(2, 238)=75 - KINDEX(1, 239)=8 - KINDEX(2, 239)=76 - KINDEX(1, 240)=18 - KINDEX(2, 240)=76 - KINDEX(1, 241)=85 - KINDEX(2, 241)=76 - KINDEX(1, 242)=3 - KINDEX(2, 242)=77 - KINDEX(1, 243)=10 - KINDEX(2, 243)=77 - KINDEX(1, 244)=11 - KINDEX(2, 244)=77 - KINDEX(1, 245)=15 - KINDEX(2, 245)=77 - KINDEX(1, 246)=18 - KINDEX(2, 246)=77 - KINDEX(1, 247)=20 - KINDEX(2, 247)=77 - KINDEX(1, 248)=28 - KINDEX(2, 248)=77 - KINDEX(1, 249)=45 - KINDEX(2, 249)=77 - KINDEX(1, 250)=69 - KINDEX(2, 250)=77 - KINDEX(1, 251)=85 - KINDEX(2, 251)=77 - KINDEX(1, 252)=18 - KINDEX(2, 252)=78 - KINDEX(1, 253)=20 - KINDEX(2, 253)=78 - KINDEX(1, 254)=69 - KINDEX(2, 254)=78 - KINDEX(1, 255)=85 - KINDEX(2, 255)=78 - KINDEX(1, 256)=15 - KINDEX(2, 256)=79 - KINDEX(1, 257)=20 - KINDEX(2, 257)=79 - KINDEX(1, 258)=85 - KINDEX(2, 258)=79 - KINDEX(1, 259)=10 - KINDEX(2, 259)=80 - KINDEX(1, 260)=15 - KINDEX(2, 260)=80 - KINDEX(1, 261)=23 - KINDEX(2, 261)=80 - KINDEX(1, 262)=24 - KINDEX(2, 262)=80 - KINDEX(1, 263)=85 - KINDEX(2, 263)=80 - KINDEX(1, 264)=10 - KINDEX(2, 264)=81 - KINDEX(1, 265)=15 - KINDEX(2, 265)=81 - KINDEX(1, 266)=22 - KINDEX(2, 266)=81 - KINDEX(1, 267)=24 - KINDEX(2, 267)=81 - KINDEX(1, 268)=3 - KINDEX(2, 268)=82 - KINDEX(1, 269)=5 - KINDEX(2, 269)=82 - KINDEX(1, 270)=8 - KINDEX(2, 270)=82 - KINDEX(1, 271)=25 - KINDEX(2, 271)=82 - KINDEX(1, 272)=26 - KINDEX(2, 272)=82 - KINDEX(1, 273)=3 - KINDEX(2, 273)=83 - KINDEX(1, 274)=10 - KINDEX(2, 274)=83 - KINDEX(1, 275)=15 - KINDEX(2, 275)=83 - KINDEX(1, 276)=25 - KINDEX(2, 276)=83 - KINDEX(1, 277)=26 - KINDEX(2, 277)=83 - KINDEX(1, 278)=75 - KINDEX(2, 278)=83 - KINDEX(1, 279)=85 - KINDEX(2, 279)=83 - KINDEX(1, 280)=10 - KINDEX(2, 280)=84 - KINDEX(1, 281)=15 - KINDEX(2, 281)=84 - KINDEX(1, 282)=26 - KINDEX(2, 282)=84 - KINDEX(1, 283)=60 - KINDEX(2, 283)=84 - KINDEX(1, 284)=85 - KINDEX(2, 284)=84 - KINDEX(1, 285)=15 - KINDEX(2, 285)=85 - KINDEX(1, 286)=36 - KINDEX(2, 286)=85 - KINDEX(1, 287)=85 - KINDEX(2, 287)=85 - KINDEX(1, 288)=8 - KINDEX(2, 288)=86 - KINDEX(1, 289)=36 - KINDEX(2, 289)=86 - KINDEX(1, 290)=85 - KINDEX(2, 290)=86 - KINDEX(1, 291)=3 - KINDEX(2, 291)=87 - KINDEX(1, 292)=10 - KINDEX(2, 292)=87 - KINDEX(1, 293)=11 - KINDEX(2, 293)=87 - KINDEX(1, 294)=12 - KINDEX(2, 294)=87 - KINDEX(1, 295)=15 - KINDEX(2, 295)=87 - KINDEX(1, 296)=36 - KINDEX(2, 296)=87 - KINDEX(1, 297)=53 - KINDEX(2, 297)=87 - KINDEX(1, 298)=57 - KINDEX(2, 298)=87 - KINDEX(1, 299)=85 - KINDEX(2, 299)=87 - KINDEX(1, 300)=36 - KINDEX(2, 300)=88 - KINDEX(1, 301)=68 - KINDEX(2, 301)=88 - KINDEX(1, 302)=15 - KINDEX(2, 302)=89 - KINDEX(1, 303)=37 - KINDEX(2, 303)=89 - KINDEX(1, 304)=85 - KINDEX(2, 304)=89 - KINDEX(1, 305)=8 - KINDEX(2, 305)=90 - KINDEX(1, 306)=37 - KINDEX(2, 306)=90 - KINDEX(1, 307)=85 - KINDEX(2, 307)=90 - KINDEX(1, 308)=3 - KINDEX(2, 308)=91 - KINDEX(1, 309)=11 - KINDEX(2, 309)=91 - KINDEX(1, 310)=12 - KINDEX(2, 310)=91 - KINDEX(1, 311)=15 - KINDEX(2, 311)=91 - KINDEX(1, 312)=37 - KINDEX(2, 312)=91 - KINDEX(1, 313)=54 - KINDEX(2, 313)=91 - KINDEX(1, 314)=56 - KINDEX(2, 314)=91 - KINDEX(1, 315)=85 - KINDEX(2, 315)=91 - KINDEX(1, 316)=37 - KINDEX(2, 316)=92 - KINDEX(1, 317)=10 - KINDEX(2, 317)=93 - KINDEX(1, 318)=15 - KINDEX(2, 318)=93 - KINDEX(1, 319)=27 - KINDEX(2, 319)=93 - KINDEX(1, 320)=64 - KINDEX(2, 320)=93 - KINDEX(1, 321)=85 - KINDEX(2, 321)=93 - KINDEX(1, 322)=15 - KINDEX(2, 322)=94 - KINDEX(1, 323)=21 - KINDEX(2, 323)=94 - KINDEX(1, 324)=85 - KINDEX(2, 324)=94 - KINDEX(1, 325)=10 - KINDEX(2, 325)=95 - KINDEX(1, 326)=85 - KINDEX(2, 326)=95 - KINDEX(1, 327)=1 - KINDEX(2, 327)=96 - KINDEX(1, 328)=85 - KINDEX(2, 328)=96 - KINDEX(1, 329)=85 - KINDEX(2, 329)=97 - KINDEX(1, 330)=85 - KINDEX(2, 330)=98 - KINDEX(1, 331)=85 - KINDEX(2, 331)=99 - KINDEX(1, 332)=85 - KINDEX(2, 332)=100 - KINDEX(1, 333)=85 - KINDEX(2, 333)=101 - KINDEX(1, 334)=85 - KINDEX(2, 334)=102 - KINDEX(1, 335)=85 - KINDEX(2, 335)=103 - KINDEX(1, 336)=2 - KINDEX(2, 336)=104 - KINDEX(1, 337)=61 - KINDEX(2, 337)=104 - KINDEX(1, 338)=2 - KINDEX(2, 338)=105 - KINDEX(1, 339)=61 - KINDEX(2, 339)=105 - KINDEX(1, 340)=2 - KINDEX(2, 340)=106 - KINDEX(1, 341)=2 - KINDEX(2, 341)=107 - KINDEX(1, 342)=2 - KINDEX(2, 342)=108 - KINDEX(1, 343)=70 - KINDEX(2, 343)=108 - KINDEX(1, 344)=2 - KINDEX(2, 344)=109 - KINDEX(1, 345)=60 - KINDEX(2, 345)=109 - KINDEX(1, 346)=2 - KINDEX(2, 346)=110 - KINDEX(1, 347)=64 - KINDEX(2, 347)=110 - KINDEX(1, 348)=1 - KINDEX(2, 348)=111 - KINDEX(1, 349)=2 - KINDEX(2, 349)=111 - KINDEX(1, 350)=10 - KINDEX(2, 350)=111 - KINDEX(1, 351)=28 - KINDEX(2, 351)=111 - KINDEX(1, 352)=86 - KINDEX(2, 352)=111 - KINDEX(1, 353)=10 - KINDEX(2, 353)=112 - KINDEX(1, 354)=28 - KINDEX(2, 354)=112 - KINDEX(1, 355)=85 - KINDEX(2, 355)=112 - KINDEX(1, 356)=86 - KINDEX(2, 356)=112 - KINDEX(1, 357)=10 - KINDEX(2, 357)=113 - KINDEX(1, 358)=15 - KINDEX(2, 358)=113 - KINDEX(1, 359)=28 - KINDEX(2, 359)=113 - KINDEX(1, 360)=86 - KINDEX(2, 360)=113 - KINDEX(1, 361)=1 - KINDEX(2, 361)=114 - KINDEX(1, 362)=2 - KINDEX(2, 362)=114 - KINDEX(1, 363)=10 - KINDEX(2, 363)=114 - KINDEX(1, 364)=28 - KINDEX(2, 364)=114 - KINDEX(1, 365)=29 - KINDEX(2, 365)=114 - KINDEX(1, 366)=10 - KINDEX(2, 366)=115 - KINDEX(1, 367)=28 - KINDEX(2, 367)=115 - KINDEX(1, 368)=29 - KINDEX(2, 368)=115 - KINDEX(1, 369)=85 - KINDEX(2, 369)=115 - KINDEX(1, 370)=10 - KINDEX(2, 370)=116 - KINDEX(1, 371)=15 - KINDEX(2, 371)=116 - KINDEX(1, 372)=28 - KINDEX(2, 372)=116 - KINDEX(1, 373)=29 - KINDEX(2, 373)=116 - KINDEX(1, 374)=1 - KINDEX(2, 374)=117 - KINDEX(1, 375)=2 - KINDEX(2, 375)=117 - KINDEX(1, 376)=28 - KINDEX(2, 376)=117 - KINDEX(1, 377)=29 - KINDEX(2, 377)=117 - KINDEX(1, 378)=2 - KINDEX(2, 378)=118 - KINDEX(1, 379)=10 - KINDEX(2, 379)=118 - KINDEX(1, 380)=28 - KINDEX(2, 380)=118 - KINDEX(1, 381)=29 - KINDEX(2, 381)=118 - KINDEX(1, 382)=85 - KINDEX(2, 382)=118 - KINDEX(1, 383)=2 - KINDEX(2, 383)=119 - KINDEX(1, 384)=10 - KINDEX(2, 384)=119 - KINDEX(1, 385)=15 - KINDEX(2, 385)=119 - KINDEX(1, 386)=28 - KINDEX(2, 386)=119 - KINDEX(1, 387)=29 - KINDEX(2, 387)=119 - KINDEX(1, 388)=1 - KINDEX(2, 388)=120 - KINDEX(1, 389)=2 - KINDEX(2, 389)=120 - KINDEX(1, 390)=10 - KINDEX(2, 390)=120 - KINDEX(1, 391)=11 - KINDEX(2, 391)=120 - KINDEX(1, 392)=28 - KINDEX(2, 392)=120 - KINDEX(1, 393)=10 - KINDEX(2, 393)=121 - KINDEX(1, 394)=11 - KINDEX(2, 394)=121 - KINDEX(1, 395)=28 - KINDEX(2, 395)=121 - KINDEX(1, 396)=85 - KINDEX(2, 396)=121 - KINDEX(1, 397)=10 - KINDEX(2, 397)=122 - KINDEX(1, 398)=11 - KINDEX(2, 398)=122 + KINDEX(1, 223)=22 + KINDEX(2, 223)=70 + KINDEX(1, 224)=25 + KINDEX(2, 224)=70 + KINDEX(1, 225)=27 + KINDEX(2, 225)=70 + KINDEX(1, 226)=41 + KINDEX(2, 226)=70 + KINDEX(1, 227)=4 + KINDEX(2, 227)=71 + KINDEX(1, 228)=14 + KINDEX(2, 228)=71 + KINDEX(1, 229)=26 + KINDEX(2, 229)=71 + KINDEX(1, 230)=33 + KINDEX(2, 230)=71 + KINDEX(1, 231)=5 + KINDEX(2, 231)=72 + KINDEX(1, 232)=8 + KINDEX(2, 232)=72 + KINDEX(1, 233)=13 + KINDEX(2, 233)=72 + KINDEX(1, 234)=15 + KINDEX(2, 234)=72 + KINDEX(1, 235)=22 + KINDEX(2, 235)=72 + KINDEX(1, 236)=5 + KINDEX(2, 236)=73 + KINDEX(1, 237)=8 + KINDEX(2, 237)=73 + KINDEX(1, 238)=23 + KINDEX(2, 238)=73 + KINDEX(1, 239)=39 + KINDEX(2, 239)=73 + KINDEX(1, 240)=4 + KINDEX(2, 240)=74 + KINDEX(1, 241)=5 + KINDEX(2, 241)=74 + KINDEX(1, 242)=8 + KINDEX(2, 242)=74 + KINDEX(1, 243)=13 + KINDEX(2, 243)=74 + KINDEX(1, 244)=15 + KINDEX(2, 244)=74 + KINDEX(1, 245)=23 + KINDEX(2, 245)=74 + KINDEX(1, 246)=24 + KINDEX(2, 246)=74 + KINDEX(1, 247)=25 + KINDEX(2, 247)=74 + KINDEX(1, 248)=39 + KINDEX(2, 248)=74 + KINDEX(1, 249)=40 + KINDEX(2, 249)=74 + KINDEX(1, 250)=41 + KINDEX(2, 250)=74 + KINDEX(1, 251)=5 + KINDEX(2, 251)=75 + KINDEX(1, 252)=8 + KINDEX(2, 252)=75 + KINDEX(1, 253)=21 + KINDEX(2, 253)=75 + KINDEX(1, 254)=36 + KINDEX(2, 254)=75 + KINDEX(1, 255)=5 + KINDEX(2, 255)=76 + KINDEX(1, 256)=19 + KINDEX(2, 256)=76 + KINDEX(1, 257)=25 + KINDEX(2, 257)=76 + KINDEX(1, 258)=40 + KINDEX(2, 258)=76 + KINDEX(1, 259)=5 + KINDEX(2, 259)=77 + KINDEX(1, 260)=20 + KINDEX(2, 260)=77 + KINDEX(1, 261)=25 + KINDEX(2, 261)=77 + KINDEX(1, 262)=40 + KINDEX(2, 262)=77 + KINDEX(1, 263)=4 + KINDEX(2, 263)=78 + KINDEX(1, 264)=5 + KINDEX(2, 264)=78 + KINDEX(1, 265)=22 + KINDEX(2, 265)=78 + KINDEX(1, 266)=26 + KINDEX(2, 266)=78 + KINDEX(1, 267)=27 + KINDEX(2, 267)=78 + KINDEX(1, 268)=41 + KINDEX(2, 268)=78 + KINDEX(1, 269)=1 + KINDEX(2, 269)=79 + KINDEX(1, 270)=2 + KINDEX(2, 270)=79 + KINDEX(1, 271)=13 + KINDEX(2, 271)=79 + KINDEX(1, 272)=14 + KINDEX(2, 272)=79 + KINDEX(1, 273)=15 + KINDEX(2, 273)=79 + KINDEX(1, 274)=16 + KINDEX(2, 274)=79 + KINDEX(1, 275)=17 + KINDEX(2, 275)=79 + KINDEX(1, 276)=19 + KINDEX(2, 276)=79 + KINDEX(1, 277)=22 + KINDEX(2, 277)=79 + KINDEX(1, 278)=23 + KINDEX(2, 278)=79 + KINDEX(1, 279)=24 + KINDEX(2, 279)=79 + KINDEX(1, 280)=25 + KINDEX(2, 280)=79 + KINDEX(1, 281)=30 + KINDEX(2, 281)=79 + KINDEX(1, 282)=31 + KINDEX(2, 282)=79 + KINDEX(1, 283)=32 + KINDEX(2, 283)=79 + KINDEX(1, 284)=33 + KINDEX(2, 284)=79 + KINDEX(1, 285)=39 + KINDEX(2, 285)=79 + KINDEX(1, 286)=41 + KINDEX(2, 286)=79 + KINDEX(1, 287)=1 + KINDEX(2, 287)=80 + KINDEX(1, 288)=2 + KINDEX(2, 288)=80 + KINDEX(1, 289)=13 + KINDEX(2, 289)=80 + KINDEX(1, 290)=14 + KINDEX(2, 290)=80 + KINDEX(1, 291)=15 + KINDEX(2, 291)=80 + KINDEX(1, 292)=19 + KINDEX(2, 292)=80 + KINDEX(1, 293)=20 + KINDEX(2, 293)=80 + KINDEX(1, 294)=22 + KINDEX(2, 294)=80 + KINDEX(1, 295)=23 + KINDEX(2, 295)=80 + KINDEX(1, 296)=24 + KINDEX(2, 296)=80 + KINDEX(1, 297)=25 + KINDEX(2, 297)=80 + KINDEX(1, 298)=30 + KINDEX(2, 298)=80 + KINDEX(1, 299)=31 + KINDEX(2, 299)=80 + KINDEX(1, 300)=32 + KINDEX(2, 300)=80 + KINDEX(1, 301)=33 + KINDEX(2, 301)=80 + KINDEX(1, 302)=39 + KINDEX(2, 302)=80 + KINDEX(1, 303)=41 + KINDEX(2, 303)=80 + KINDEX(1, 304)=1 + KINDEX(2, 304)=81 + KINDEX(1, 305)=13 + KINDEX(2, 305)=81 + KINDEX(1, 306)=14 + KINDEX(2, 306)=81 + KINDEX(1, 307)=15 + KINDEX(2, 307)=81 + KINDEX(1, 308)=22 + KINDEX(2, 308)=81 + KINDEX(1, 309)=23 + KINDEX(2, 309)=81 + KINDEX(1, 310)=25 + KINDEX(2, 310)=81 + KINDEX(1, 311)=29 + KINDEX(2, 311)=81 + KINDEX(1, 312)=30 + KINDEX(2, 312)=81 + KINDEX(1, 313)=31 + KINDEX(2, 313)=81 + KINDEX(1, 314)=39 + KINDEX(2, 314)=81 + KINDEX(1, 315)=1 + KINDEX(2, 315)=82 + KINDEX(1, 316)=4 + KINDEX(2, 316)=82 + KINDEX(1, 317)=13 + KINDEX(2, 317)=82 + KINDEX(1, 318)=14 + KINDEX(2, 318)=82 + KINDEX(1, 319)=15 + KINDEX(2, 319)=82 + KINDEX(1, 320)=22 + KINDEX(2, 320)=82 + KINDEX(1, 321)=27 + KINDEX(2, 321)=82 + KINDEX(1, 322)=30 + KINDEX(2, 322)=82 + KINDEX(1, 323)=39 + KINDEX(2, 323)=82 + KINDEX(1, 324)=4 + KINDEX(2, 324)=83 + KINDEX(1, 325)=21 + KINDEX(2, 325)=83 + KINDEX(1, 326)=26 + KINDEX(2, 326)=83 + KINDEX(1, 327)=36 + KINDEX(2, 327)=83 + KINDEX(1, 328)=15 + KINDEX(2, 328)=84 + KINDEX(1, 329)=21 + KINDEX(2, 329)=84 + KINDEX(1, 330)=36 + KINDEX(2, 330)=84 + KINDEX(1, 331)=4 + KINDEX(2, 331)=85 + KINDEX(1, 332)=7 + KINDEX(2, 332)=85 + KINDEX(1, 333)=21 + KINDEX(2, 333)=85 + KINDEX(1, 334)=37 + KINDEX(2, 334)=85 + KINDEX(1, 335)=15 + KINDEX(2, 335)=86 + KINDEX(1, 336)=21 + KINDEX(2, 336)=86 + KINDEX(1, 337)=37 + KINDEX(2, 337)=86 + KINDEX(1, 338)=38 + KINDEX(2, 338)=86 + KINDEX(1, 339)=1 + KINDEX(2, 339)=87 + KINDEX(1, 340)=14 + KINDEX(2, 340)=87 + KINDEX(1, 341)=21 + KINDEX(2, 341)=87 + KINDEX(1, 342)=37 + KINDEX(2, 342)=87 + KINDEX(1, 343)=4 + KINDEX(2, 343)=88 + KINDEX(1, 344)=27 + KINDEX(2, 344)=88 + KINDEX(1, 345)=39 + KINDEX(2, 345)=88 + KINDEX(1, 346)=4 + KINDEX(2, 346)=89 + KINDEX(1, 347)=27 + KINDEX(2, 347)=89 + KINDEX(1, 348)=39 + KINDEX(2, 348)=89 + KINDEX(1, 349)=3 + KINDEX(2, 349)=90 + KINDEX(1, 350)=4 + KINDEX(2, 350)=90 + KINDEX(1, 351)=15 + KINDEX(2, 351)=90 + KINDEX(1, 352)=22 + KINDEX(2, 352)=90 + KINDEX(1, 353)=32 + KINDEX(2, 353)=90 + KINDEX(1, 354)=3 + KINDEX(2, 354)=91 + KINDEX(1, 355)=4 + KINDEX(2, 355)=91 + KINDEX(1, 356)=15 + KINDEX(2, 356)=91 + KINDEX(1, 357)=22 + KINDEX(2, 357)=91 + KINDEX(1, 358)=23 + KINDEX(2, 358)=91 + KINDEX(1, 359)=24 + KINDEX(2, 359)=91 + KINDEX(1, 360)=25 + KINDEX(2, 360)=91 + KINDEX(1, 361)=26 + KINDEX(2, 361)=91 + KINDEX(1, 362)=32 + KINDEX(2, 362)=91 + KINDEX(1, 363)=33 + KINDEX(2, 363)=91 + KINDEX(1, 364)=41 + KINDEX(2, 364)=91 + KINDEX(1, 365)=3 + KINDEX(2, 365)=92 + KINDEX(1, 366)=4 + KINDEX(2, 366)=92 + KINDEX(1, 367)=15 + KINDEX(2, 367)=92 + KINDEX(1, 368)=22 + KINDEX(2, 368)=92 + KINDEX(1, 369)=23 + KINDEX(2, 369)=92 + KINDEX(1, 370)=24 + KINDEX(2, 370)=92 + KINDEX(1, 371)=34 + KINDEX(2, 371)=92 + KINDEX(1, 372)=3 + KINDEX(2, 372)=93 + KINDEX(1, 373)=4 + KINDEX(2, 373)=93 + KINDEX(1, 374)=15 + KINDEX(2, 374)=93 + KINDEX(1, 375)=19 + KINDEX(2, 375)=93 + KINDEX(1, 376)=22 + KINDEX(2, 376)=93 + KINDEX(1, 377)=23 + KINDEX(2, 377)=93 + KINDEX(1, 378)=24 + KINDEX(2, 378)=93 + KINDEX(1, 379)=25 + KINDEX(2, 379)=93 + KINDEX(1, 380)=26 + KINDEX(2, 380)=93 + KINDEX(1, 381)=35 + KINDEX(2, 381)=93 + KINDEX(1, 382)=3 + KINDEX(2, 382)=94 + KINDEX(1, 383)=4 + KINDEX(2, 383)=94 + KINDEX(1, 384)=15 + KINDEX(2, 384)=94 + KINDEX(1, 385)=25 + KINDEX(2, 385)=94 + KINDEX(1, 386)=26 + KINDEX(2, 386)=94 + KINDEX(1, 387)=38 + KINDEX(2, 387)=94 + KINDEX(1, 388)=3 + KINDEX(2, 388)=95 + KINDEX(1, 389)=4 + KINDEX(2, 389)=95 + KINDEX(1, 390)=15 + KINDEX(2, 390)=95 + KINDEX(1, 391)=22 + KINDEX(2, 391)=95 + KINDEX(1, 392)=23 + KINDEX(2, 392)=95 + KINDEX(1, 393)=25 + KINDEX(2, 393)=95 + KINDEX(1, 394)=32 + KINDEX(2, 394)=95 + KINDEX(1, 395)=39 + KINDEX(2, 395)=95 + KINDEX(1, 396)=41 + KINDEX(2, 396)=95 + KINDEX(1, 397)=3 + KINDEX(2, 397)=96 + KINDEX(1, 398)=4 + KINDEX(2, 398)=96 KINDEX(1, 399)=15 - KINDEX(2, 399)=122 - KINDEX(1, 400)=28 - KINDEX(2, 400)=122 - KINDEX(1, 401)=1 - KINDEX(2, 401)=123 - KINDEX(1, 402)=2 - KINDEX(2, 402)=123 - KINDEX(1, 403)=10 - KINDEX(2, 403)=123 - KINDEX(1, 404)=19 - KINDEX(2, 404)=123 - KINDEX(1, 405)=29 - KINDEX(2, 405)=123 - KINDEX(1, 406)=87 - KINDEX(2, 406)=123 - KINDEX(1, 407)=10 - KINDEX(2, 407)=124 - KINDEX(1, 408)=29 - KINDEX(2, 408)=124 - KINDEX(1, 409)=85 - KINDEX(2, 409)=124 - KINDEX(1, 410)=87 - KINDEX(2, 410)=124 - KINDEX(1, 411)=10 - KINDEX(2, 411)=125 - KINDEX(1, 412)=15 - KINDEX(2, 412)=125 - KINDEX(1, 413)=29 - KINDEX(2, 413)=125 - KINDEX(1, 414)=87 - KINDEX(2, 414)=125 - KINDEX(1, 415)=1 - KINDEX(2, 415)=126 - KINDEX(1, 416)=2 - KINDEX(2, 416)=126 - KINDEX(1, 417)=85 - KINDEX(2, 417)=126 - KINDEX(1, 418)=87 - KINDEX(2, 418)=126 - KINDEX(1, 419)=2 - KINDEX(2, 419)=127 - KINDEX(1, 420)=77 - KINDEX(2, 420)=127 - KINDEX(1, 421)=2 - KINDEX(2, 421)=128 - KINDEX(1, 422)=78 - KINDEX(2, 422)=128 - KINDEX(1, 423)=2 - KINDEX(2, 423)=129 - KINDEX(1, 424)=79 - KINDEX(2, 424)=129 - KINDEX(1, 425)=2 - KINDEX(2, 425)=130 - KINDEX(1, 426)=80 - KINDEX(2, 426)=130 - KINDEX(1, 427)=2 - KINDEX(2, 427)=131 - KINDEX(1, 428)=76 - KINDEX(2, 428)=131 - KINDEX(1, 429)=2 - KINDEX(2, 429)=132 - KINDEX(1, 430)=81 - KINDEX(2, 430)=132 - KINDEX(1, 431)=2 - KINDEX(2, 431)=133 - KINDEX(1, 432)=82 - KINDEX(2, 432)=133 - KINDEX(1, 433)=2 - KINDEX(2, 433)=134 - KINDEX(1, 434)=76 - KINDEX(2, 434)=134 - KINDEX(1, 435)=2 - KINDEX(2, 435)=135 - KINDEX(1, 436)=84 - KINDEX(2, 436)=135 - KINDEX(1, 437)=2 - KINDEX(2, 437)=136 - KINDEX(1, 438)=77 - KINDEX(2, 438)=136 - KINDEX(1, 439)=85 - KINDEX(2, 439)=136 - KINDEX(1, 440)=2 - KINDEX(2, 440)=137 - KINDEX(1, 441)=78 - KINDEX(2, 441)=137 - KINDEX(1, 442)=85 - KINDEX(2, 442)=137 - KINDEX(1, 443)=2 - KINDEX(2, 443)=138 - KINDEX(1, 444)=79 - KINDEX(2, 444)=138 - KINDEX(1, 445)=85 - KINDEX(2, 445)=138 - KINDEX(1, 446)=2 - KINDEX(2, 446)=139 - KINDEX(1, 447)=84 - KINDEX(2, 447)=139 - KINDEX(1, 448)=85 - KINDEX(2, 448)=139 - KINDEX(1, 449)=2 - KINDEX(2, 449)=140 - KINDEX(1, 450)=76 - KINDEX(2, 450)=140 - KINDEX(1, 451)=85 - KINDEX(2, 451)=140 - KINDEX(1, 452)=2 - KINDEX(2, 452)=141 - KINDEX(1, 453)=81 - KINDEX(2, 453)=141 - KINDEX(1, 454)=85 - KINDEX(2, 454)=141 - KINDEX(1, 455)=2 - KINDEX(2, 455)=142 - KINDEX(1, 456)=80 - KINDEX(2, 456)=142 - KINDEX(1, 457)=85 - KINDEX(2, 457)=142 - KINDEX(1, 458)=3 - KINDEX(2, 458)=143 - KINDEX(1, 459)=10 - KINDEX(2, 459)=143 - KINDEX(1, 460)=44 - KINDEX(2, 460)=143 - KINDEX(1, 461)=45 - KINDEX(2, 461)=143 - KINDEX(1, 462)=85 - KINDEX(2, 462)=144 - KINDEX(1, 463)=87 - KINDEX(2, 463)=144 - KINDEX(1, 464)=1 - KINDEX(2, 464)=145 - KINDEX(1, 465)=2 - KINDEX(2, 465)=145 - KINDEX(1, 466)=29 - KINDEX(2, 466)=145 - KINDEX(1, 467)=85 - KINDEX(2, 467)=145 - KINDEX(1, 468)=29 - KINDEX(2, 468)=146 - KINDEX(1, 469)=85 - KINDEX(2, 469)=146 - KINDEX(1, 470)=10 - KINDEX(2, 470)=147 - KINDEX(1, 471)=15 - KINDEX(2, 471)=147 - KINDEX(1, 472)=29 - KINDEX(2, 472)=147 - KINDEX(1, 473)=85 - KINDEX(2, 473)=147 - KINDEX(1, 474)=1 - KINDEX(2, 474)=148 - KINDEX(1, 475)=2 - KINDEX(2, 475)=148 - KINDEX(1, 476)=85 - KINDEX(2, 476)=148 - KINDEX(1, 477)=86 - KINDEX(2, 477)=148 - KINDEX(1, 478)=3 - KINDEX(2, 478)=149 - KINDEX(1, 479)=10 - KINDEX(2, 479)=149 - KINDEX(1, 480)=44 - KINDEX(2, 480)=149 - KINDEX(1, 481)=85 - KINDEX(2, 481)=150 - KINDEX(1, 482)=86 - KINDEX(2, 482)=150 - KINDEX(1, 483)=1 - KINDEX(2, 483)=151 - KINDEX(1, 484)=2 - KINDEX(2, 484)=151 - KINDEX(1, 485)=10 - KINDEX(2, 485)=151 - KINDEX(1, 486)=17 - KINDEX(2, 486)=151 - KINDEX(1, 487)=28 - KINDEX(2, 487)=151 - KINDEX(1, 488)=39 - KINDEX(2, 488)=151 - KINDEX(1, 489)=10 - KINDEX(2, 489)=152 - KINDEX(1, 490)=28 - KINDEX(2, 490)=152 + KINDEX(2, 399)=96 + KINDEX(1, 400)=22 + KINDEX(2, 400)=96 + KINDEX(1, 401)=23 + KINDEX(2, 401)=96 + KINDEX(1, 402)=24 + KINDEX(2, 402)=96 + KINDEX(1, 403)=26 + KINDEX(2, 403)=96 + KINDEX(1, 404)=40 + KINDEX(2, 404)=96 + KINDEX(1, 405)=15 + KINDEX(2, 405)=97 + KINDEX(1, 406)=28 + KINDEX(2, 406)=97 + KINDEX(1, 407)=32 + KINDEX(2, 407)=97 + KINDEX(1, 408)=15 + KINDEX(2, 408)=98 + KINDEX(1, 409)=29 + KINDEX(2, 409)=98 + KINDEX(1, 410)=33 + KINDEX(2, 410)=98 + KINDEX(1, 411)=15 + KINDEX(2, 411)=99 + KINDEX(1, 412)=29 + KINDEX(2, 412)=99 + KINDEX(1, 413)=34 + KINDEX(2, 413)=99 + KINDEX(1, 414)=15 + KINDEX(2, 414)=100 + KINDEX(1, 415)=29 + KINDEX(2, 415)=100 + KINDEX(1, 416)=35 + KINDEX(2, 416)=100 + KINDEX(1, 417)=15 + KINDEX(2, 417)=101 + KINDEX(1, 418)=29 + KINDEX(2, 418)=101 + KINDEX(1, 419)=38 + KINDEX(2, 419)=101 + KINDEX(1, 420)=1 + KINDEX(2, 420)=102 + KINDEX(1, 421)=15 + KINDEX(2, 421)=102 + KINDEX(1, 422)=29 + KINDEX(2, 422)=102 + KINDEX(1, 423)=31 + KINDEX(2, 423)=102 + KINDEX(1, 424)=39 + KINDEX(2, 424)=102 + KINDEX(1, 425)=15 + KINDEX(2, 425)=103 + KINDEX(1, 426)=26 + KINDEX(2, 426)=103 + KINDEX(1, 427)=40 + KINDEX(2, 427)=103 + KINDEX(1, 428)=15 + KINDEX(2, 428)=104 + KINDEX(1, 429)=22 + KINDEX(2, 429)=104 + KINDEX(1, 430)=32 + KINDEX(2, 430)=104 + KINDEX(1, 431)=15 + KINDEX(2, 431)=105 + KINDEX(1, 432)=22 + KINDEX(2, 432)=105 + KINDEX(1, 433)=23 + KINDEX(2, 433)=105 + KINDEX(1, 434)=24 + KINDEX(2, 434)=105 + KINDEX(1, 435)=25 + KINDEX(2, 435)=105 + KINDEX(1, 436)=32 + KINDEX(2, 436)=105 + KINDEX(1, 437)=33 + KINDEX(2, 437)=105 + KINDEX(1, 438)=41 + KINDEX(2, 438)=105 + KINDEX(1, 439)=15 + KINDEX(2, 439)=106 + KINDEX(1, 440)=22 + KINDEX(2, 440)=106 + KINDEX(1, 441)=23 + KINDEX(2, 441)=106 + KINDEX(1, 442)=24 + KINDEX(2, 442)=106 + KINDEX(1, 443)=32 + KINDEX(2, 443)=106 + KINDEX(1, 444)=34 + KINDEX(2, 444)=106 + KINDEX(1, 445)=15 + KINDEX(2, 445)=107 + KINDEX(1, 446)=19 + KINDEX(2, 446)=107 + KINDEX(1, 447)=22 + KINDEX(2, 447)=107 + KINDEX(1, 448)=23 + KINDEX(2, 448)=107 + KINDEX(1, 449)=24 + KINDEX(2, 449)=107 + KINDEX(1, 450)=25 + KINDEX(2, 450)=107 + KINDEX(1, 451)=32 + KINDEX(2, 451)=107 + KINDEX(1, 452)=35 + KINDEX(2, 452)=107 + KINDEX(1, 453)=15 + KINDEX(2, 453)=108 + KINDEX(1, 454)=22 + KINDEX(2, 454)=108 + KINDEX(1, 455)=25 + KINDEX(2, 455)=108 + KINDEX(1, 456)=32 + KINDEX(2, 456)=108 + KINDEX(1, 457)=38 + KINDEX(2, 457)=108 + KINDEX(1, 458)=15 + KINDEX(2, 458)=109 + KINDEX(1, 459)=22 + KINDEX(2, 459)=109 + KINDEX(1, 460)=23 + KINDEX(2, 460)=109 + KINDEX(1, 461)=25 + KINDEX(2, 461)=109 + KINDEX(1, 462)=31 + KINDEX(2, 462)=109 + KINDEX(1, 463)=32 + KINDEX(2, 463)=109 + KINDEX(1, 464)=39 + KINDEX(2, 464)=109 + KINDEX(1, 465)=41 + KINDEX(2, 465)=109 + KINDEX(1, 466)=4 + KINDEX(2, 466)=110 + KINDEX(1, 467)=15 + KINDEX(2, 467)=110 + KINDEX(1, 468)=22 + KINDEX(2, 468)=110 + KINDEX(1, 469)=23 + KINDEX(2, 469)=110 + KINDEX(1, 470)=24 + KINDEX(2, 470)=110 + KINDEX(1, 471)=26 + KINDEX(2, 471)=110 + KINDEX(1, 472)=32 + KINDEX(2, 472)=110 + KINDEX(1, 473)=40 + KINDEX(2, 473)=110 + KINDEX(1, 474)=15 + KINDEX(2, 474)=111 + KINDEX(1, 475)=22 + KINDEX(2, 475)=111 + KINDEX(1, 476)=23 + KINDEX(2, 476)=111 + KINDEX(1, 477)=24 + KINDEX(2, 477)=111 + KINDEX(1, 478)=25 + KINDEX(2, 478)=111 + KINDEX(1, 479)=31 + KINDEX(2, 479)=111 + KINDEX(1, 480)=32 + KINDEX(2, 480)=111 + KINDEX(1, 481)=33 + KINDEX(2, 481)=111 + KINDEX(1, 482)=39 + KINDEX(2, 482)=111 + KINDEX(1, 483)=41 + KINDEX(2, 483)=111 + KINDEX(1, 484)=15 + KINDEX(2, 484)=112 + KINDEX(1, 485)=22 + KINDEX(2, 485)=112 + KINDEX(1, 486)=23 + KINDEX(2, 486)=112 + KINDEX(1, 487)=24 + KINDEX(2, 487)=112 + KINDEX(1, 488)=31 + KINDEX(2, 488)=112 + KINDEX(1, 489)=32 + KINDEX(2, 489)=112 + KINDEX(1, 490)=34 + KINDEX(2, 490)=112 KINDEX(1, 491)=39 - KINDEX(2, 491)=152 - KINDEX(1, 492)=85 - KINDEX(2, 492)=152 - KINDEX(1, 493)=10 - KINDEX(2, 493)=153 - KINDEX(1, 494)=15 - KINDEX(2, 494)=153 - KINDEX(1, 495)=28 - KINDEX(2, 495)=153 - KINDEX(1, 496)=39 - KINDEX(2, 496)=153 - KINDEX(1, 497)=1 - KINDEX(2, 497)=154 - KINDEX(1, 498)=2 - KINDEX(2, 498)=154 - KINDEX(1, 499)=10 - KINDEX(2, 499)=154 - KINDEX(1, 500)=28 - KINDEX(2, 500)=154 - KINDEX(1, 501)=40 - KINDEX(2, 501)=154 - KINDEX(1, 502)=10 - KINDEX(2, 502)=155 - KINDEX(1, 503)=28 - KINDEX(2, 503)=155 - KINDEX(1, 504)=40 - KINDEX(2, 504)=155 - KINDEX(1, 505)=85 - KINDEX(2, 505)=155 - KINDEX(1, 506)=10 - KINDEX(2, 506)=156 + KINDEX(2, 491)=112 + KINDEX(1, 492)=15 + KINDEX(2, 492)=113 + KINDEX(1, 493)=19 + KINDEX(2, 493)=113 + KINDEX(1, 494)=22 + KINDEX(2, 494)=113 + KINDEX(1, 495)=23 + KINDEX(2, 495)=113 + KINDEX(1, 496)=24 + KINDEX(2, 496)=113 + KINDEX(1, 497)=25 + KINDEX(2, 497)=113 + KINDEX(1, 498)=31 + KINDEX(2, 498)=113 + KINDEX(1, 499)=32 + KINDEX(2, 499)=113 + KINDEX(1, 500)=35 + KINDEX(2, 500)=113 + KINDEX(1, 501)=39 + KINDEX(2, 501)=113 + KINDEX(1, 502)=15 + KINDEX(2, 502)=114 + KINDEX(1, 503)=25 + KINDEX(2, 503)=114 + KINDEX(1, 504)=32 + KINDEX(2, 504)=114 + KINDEX(1, 505)=38 + KINDEX(2, 505)=114 + KINDEX(1, 506)=39 + KINDEX(2, 506)=114 KINDEX(1, 507)=15 - KINDEX(2, 507)=156 - KINDEX(1, 508)=28 - KINDEX(2, 508)=156 - KINDEX(1, 509)=40 - KINDEX(2, 509)=156 - KINDEX(1, 510)=1 - KINDEX(2, 510)=157 - KINDEX(1, 511)=2 - KINDEX(2, 511)=157 - KINDEX(1, 512)=28 - KINDEX(2, 512)=157 - KINDEX(1, 513)=39 - KINDEX(2, 513)=157 - KINDEX(1, 514)=2 - KINDEX(2, 514)=158 - KINDEX(1, 515)=28 - KINDEX(2, 515)=158 - KINDEX(1, 516)=39 - KINDEX(2, 516)=158 - KINDEX(1, 517)=85 - KINDEX(2, 517)=158 - KINDEX(1, 518)=2 - KINDEX(2, 518)=159 - KINDEX(1, 519)=10 - KINDEX(2, 519)=159 - KINDEX(1, 520)=15 - KINDEX(2, 520)=159 - KINDEX(1, 521)=28 - KINDEX(2, 521)=159 - KINDEX(1, 522)=39 - KINDEX(2, 522)=159 - KINDEX(1, 523)=1 - KINDEX(2, 523)=160 - KINDEX(1, 524)=2 - KINDEX(2, 524)=160 - KINDEX(1, 525)=28 - KINDEX(2, 525)=160 - KINDEX(1, 526)=40 - KINDEX(2, 526)=160 - KINDEX(1, 527)=2 - KINDEX(2, 527)=161 - KINDEX(1, 528)=28 - KINDEX(2, 528)=161 - KINDEX(1, 529)=40 - KINDEX(2, 529)=161 - KINDEX(1, 530)=85 - KINDEX(2, 530)=161 - KINDEX(1, 531)=2 - KINDEX(2, 531)=162 - KINDEX(1, 532)=10 - KINDEX(2, 532)=162 - KINDEX(1, 533)=15 - KINDEX(2, 533)=162 - KINDEX(1, 534)=28 - KINDEX(2, 534)=162 + KINDEX(2, 507)=115 + KINDEX(1, 508)=22 + KINDEX(2, 508)=115 + KINDEX(1, 509)=23 + KINDEX(2, 509)=115 + KINDEX(1, 510)=24 + KINDEX(2, 510)=115 + KINDEX(1, 511)=25 + KINDEX(2, 511)=115 + KINDEX(1, 512)=31 + KINDEX(2, 512)=115 + KINDEX(1, 513)=32 + KINDEX(2, 513)=115 + KINDEX(1, 514)=39 + KINDEX(2, 514)=115 + KINDEX(1, 515)=41 + KINDEX(2, 515)=115 + KINDEX(1, 516)=4 + KINDEX(2, 516)=116 + KINDEX(1, 517)=15 + KINDEX(2, 517)=116 + KINDEX(1, 518)=22 + KINDEX(2, 518)=116 + KINDEX(1, 519)=23 + KINDEX(2, 519)=116 + KINDEX(1, 520)=24 + KINDEX(2, 520)=116 + KINDEX(1, 521)=26 + KINDEX(2, 521)=116 + KINDEX(1, 522)=31 + KINDEX(2, 522)=116 + KINDEX(1, 523)=32 + KINDEX(2, 523)=116 + KINDEX(1, 524)=39 + KINDEX(2, 524)=116 + KINDEX(1, 525)=40 + KINDEX(2, 525)=116 + KINDEX(1, 526)=15 + KINDEX(2, 526)=117 + KINDEX(1, 527)=26 + KINDEX(2, 527)=117 + KINDEX(1, 528)=40 + KINDEX(2, 528)=117 + KINDEX(1, 529)=4 + KINDEX(2, 529)=118 + KINDEX(1, 530)=15 + KINDEX(2, 530)=118 + KINDEX(1, 531)=22 + KINDEX(2, 531)=118 + KINDEX(1, 532)=23 + KINDEX(2, 532)=118 + KINDEX(1, 533)=24 + KINDEX(2, 533)=118 + KINDEX(1, 534)=26 + KINDEX(2, 534)=118 KINDEX(1, 535)=40 - KINDEX(2, 535)=162 - KINDEX(1, 536)=1 - KINDEX(2, 536)=163 - KINDEX(1, 537)=2 - KINDEX(2, 537)=163 - KINDEX(1, 538)=28 - KINDEX(2, 538)=163 - KINDEX(1, 539)=85 - KINDEX(2, 539)=163 - KINDEX(1, 540)=28 - KINDEX(2, 540)=164 - KINDEX(1, 541)=85 - KINDEX(2, 541)=164 - KINDEX(1, 542)=10 - KINDEX(2, 542)=165 + KINDEX(2, 535)=118 + KINDEX(1, 536)=4 + KINDEX(2, 536)=119 + KINDEX(1, 537)=5 + KINDEX(2, 537)=119 + KINDEX(1, 538)=15 + KINDEX(2, 538)=119 + KINDEX(1, 539)=22 + KINDEX(2, 539)=119 + KINDEX(1, 540)=32 + KINDEX(2, 540)=119 + KINDEX(1, 541)=4 + KINDEX(2, 541)=120 + KINDEX(1, 542)=5 + KINDEX(2, 542)=120 KINDEX(1, 543)=15 - KINDEX(2, 543)=165 - KINDEX(1, 544)=28 - KINDEX(2, 544)=165 - KINDEX(1, 545)=85 - KINDEX(2, 545)=165 - KINDEX(1, 546)=1 - KINDEX(2, 546)=166 - KINDEX(1, 547)=2 - KINDEX(2, 547)=166 - KINDEX(1, 548)=85 - KINDEX(2, 548)=166 - KINDEX(1, 549)=3 - KINDEX(2, 549)=167 - KINDEX(1, 550)=10 - KINDEX(2, 550)=167 - KINDEX(1, 551)=17 - KINDEX(2, 551)=167 - KINDEX(1, 552)=44 - KINDEX(2, 552)=167 - KINDEX(1, 553)=85 - KINDEX(2, 553)=168 - KINDEX(1, 554)=1 - KINDEX(2, 554)=169 - KINDEX(1, 555)=2 - KINDEX(2, 555)=169 - KINDEX(1, 556)=17 - KINDEX(2, 556)=169 - KINDEX(1, 557)=85 - KINDEX(2, 557)=169 - KINDEX(1, 558)=85 - KINDEX(2, 558)=170 - KINDEX(1, 559)=10 - KINDEX(2, 559)=171 + KINDEX(2, 543)=120 + KINDEX(1, 544)=22 + KINDEX(2, 544)=120 + KINDEX(1, 545)=23 + KINDEX(2, 545)=120 + KINDEX(1, 546)=24 + KINDEX(2, 546)=120 + KINDEX(1, 547)=25 + KINDEX(2, 547)=120 + KINDEX(1, 548)=32 + KINDEX(2, 548)=120 + KINDEX(1, 549)=33 + KINDEX(2, 549)=120 + KINDEX(1, 550)=41 + KINDEX(2, 550)=120 + KINDEX(1, 551)=4 + KINDEX(2, 551)=121 + KINDEX(1, 552)=5 + KINDEX(2, 552)=121 + KINDEX(1, 553)=15 + KINDEX(2, 553)=121 + KINDEX(1, 554)=22 + KINDEX(2, 554)=121 + KINDEX(1, 555)=23 + KINDEX(2, 555)=121 + KINDEX(1, 556)=24 + KINDEX(2, 556)=121 + KINDEX(1, 557)=34 + KINDEX(2, 557)=121 + KINDEX(1, 558)=4 + KINDEX(2, 558)=122 + KINDEX(1, 559)=5 + KINDEX(2, 559)=122 KINDEX(1, 560)=15 - KINDEX(2, 560)=171 - KINDEX(1, 561)=85 - KINDEX(2, 561)=171 - KINDEX(1, 562)=1 - KINDEX(2, 562)=172 - KINDEX(1, 563)=2 - KINDEX(2, 563)=172 - KINDEX(1, 564)=10 - KINDEX(2, 564)=172 - KINDEX(1, 565)=19 - KINDEX(2, 565)=172 - KINDEX(1, 566)=28 - KINDEX(2, 566)=172 - KINDEX(1, 567)=29 - KINDEX(2, 567)=172 - KINDEX(1, 568)=30 - KINDEX(2, 568)=172 - KINDEX(1, 569)=10 - KINDEX(2, 569)=173 - KINDEX(1, 570)=19 - KINDEX(2, 570)=173 - KINDEX(1, 571)=28 - KINDEX(2, 571)=173 - KINDEX(1, 572)=29 - KINDEX(2, 572)=173 - KINDEX(1, 573)=30 - KINDEX(2, 573)=173 - KINDEX(1, 574)=85 - KINDEX(2, 574)=173 - KINDEX(1, 575)=10 - KINDEX(2, 575)=174 - KINDEX(1, 576)=15 - KINDEX(2, 576)=174 - KINDEX(1, 577)=19 - KINDEX(2, 577)=174 - KINDEX(1, 578)=28 - KINDEX(2, 578)=174 - KINDEX(1, 579)=29 - KINDEX(2, 579)=174 - KINDEX(1, 580)=30 - KINDEX(2, 580)=174 - KINDEX(1, 581)=1 - KINDEX(2, 581)=175 - KINDEX(1, 582)=2 - KINDEX(2, 582)=175 - KINDEX(1, 583)=29 - KINDEX(2, 583)=175 - KINDEX(1, 584)=85 - KINDEX(2, 584)=175 - KINDEX(1, 585)=29 - KINDEX(2, 585)=176 - KINDEX(1, 586)=85 - KINDEX(2, 586)=176 - KINDEX(1, 587)=10 - KINDEX(2, 587)=177 - KINDEX(1, 588)=15 - KINDEX(2, 588)=177 - KINDEX(1, 589)=29 - KINDEX(2, 589)=177 - KINDEX(1, 590)=85 - KINDEX(2, 590)=177 - KINDEX(1, 591)=1 - KINDEX(2, 591)=178 - KINDEX(1, 592)=2 - KINDEX(2, 592)=178 - KINDEX(1, 593)=10 - KINDEX(2, 593)=178 - KINDEX(1, 594)=58 - KINDEX(2, 594)=178 - KINDEX(1, 595)=75 - KINDEX(2, 595)=178 - KINDEX(1, 596)=10 - KINDEX(2, 596)=179 - KINDEX(1, 597)=75 - KINDEX(2, 597)=179 - KINDEX(1, 598)=85 - KINDEX(2, 598)=179 - KINDEX(1, 599)=10 - KINDEX(2, 599)=180 - KINDEX(1, 600)=15 - KINDEX(2, 600)=180 - KINDEX(1, 601)=75 - KINDEX(2, 601)=180 - KINDEX(1, 602)=1 - KINDEX(2, 602)=181 - KINDEX(1, 603)=2 - KINDEX(2, 603)=181 - KINDEX(1, 604)=10 - KINDEX(2, 604)=181 - KINDEX(1, 605)=10 - KINDEX(2, 605)=182 - KINDEX(1, 606)=85 - KINDEX(2, 606)=182 - KINDEX(1, 607)=10 - KINDEX(2, 607)=183 - KINDEX(1, 608)=15 - KINDEX(2, 608)=183 - KINDEX(1, 609)=1 - KINDEX(2, 609)=184 - KINDEX(1, 610)=2 - KINDEX(2, 610)=184 - KINDEX(1, 611)=28 - KINDEX(2, 611)=184 - KINDEX(1, 612)=69 - KINDEX(2, 612)=184 - KINDEX(1, 613)=2 - KINDEX(2, 613)=185 - KINDEX(1, 614)=28 - KINDEX(2, 614)=185 - KINDEX(1, 615)=69 - KINDEX(2, 615)=185 - KINDEX(1, 616)=85 - KINDEX(2, 616)=185 - KINDEX(1, 617)=2 - KINDEX(2, 617)=186 - KINDEX(1, 618)=10 - KINDEX(2, 618)=186 - KINDEX(1, 619)=15 - KINDEX(2, 619)=186 - KINDEX(1, 620)=28 - KINDEX(2, 620)=186 - KINDEX(1, 621)=69 - KINDEX(2, 621)=186 - KINDEX(1, 622)=1 - KINDEX(2, 622)=187 - KINDEX(1, 623)=2 - KINDEX(2, 623)=187 - KINDEX(1, 624)=85 - KINDEX(2, 624)=187 - KINDEX(1, 625)=85 - KINDEX(2, 625)=188 - KINDEX(1, 626)=10 - KINDEX(2, 626)=189 - KINDEX(1, 627)=15 - KINDEX(2, 627)=189 - KINDEX(1, 628)=85 - KINDEX(2, 628)=189 - KINDEX(1, 629)=1 - KINDEX(2, 629)=190 - KINDEX(1, 630)=2 - KINDEX(2, 630)=190 - KINDEX(1, 631)=10 - KINDEX(2, 631)=190 - KINDEX(1, 632)=25 - KINDEX(2, 632)=190 - KINDEX(1, 633)=10 - KINDEX(2, 633)=191 - KINDEX(1, 634)=25 - KINDEX(2, 634)=191 - KINDEX(1, 635)=85 - KINDEX(2, 635)=191 - KINDEX(1, 636)=10 - KINDEX(2, 636)=192 - KINDEX(1, 637)=15 - KINDEX(2, 637)=192 - KINDEX(1, 638)=25 - KINDEX(2, 638)=192 - KINDEX(1, 639)=1 - KINDEX(2, 639)=193 - KINDEX(1, 640)=2 - KINDEX(2, 640)=193 - KINDEX(1, 641)=10 - KINDEX(2, 641)=193 - KINDEX(1, 642)=75 - KINDEX(2, 642)=193 - KINDEX(1, 643)=10 - KINDEX(2, 643)=194 - KINDEX(1, 644)=75 - KINDEX(2, 644)=194 - KINDEX(1, 645)=85 - KINDEX(2, 645)=194 - KINDEX(1, 646)=10 - KINDEX(2, 646)=195 - KINDEX(1, 647)=15 - KINDEX(2, 647)=195 - KINDEX(1, 648)=75 - KINDEX(2, 648)=195 - KINDEX(1, 649)=1 - KINDEX(2, 649)=196 - KINDEX(1, 650)=2 - KINDEX(2, 650)=196 - KINDEX(1, 651)=10 - KINDEX(2, 651)=196 - KINDEX(1, 652)=58 - KINDEX(2, 652)=196 - KINDEX(1, 653)=62 - KINDEX(2, 653)=196 - KINDEX(1, 654)=10 - KINDEX(2, 654)=197 - KINDEX(1, 655)=62 - KINDEX(2, 655)=197 - KINDEX(1, 656)=85 - KINDEX(2, 656)=197 - KINDEX(1, 657)=10 - KINDEX(2, 657)=198 - KINDEX(1, 658)=15 - KINDEX(2, 658)=198 - KINDEX(1, 659)=62 - KINDEX(2, 659)=198 - KINDEX(1, 660)=1 - KINDEX(2, 660)=199 - KINDEX(1, 661)=2 - KINDEX(2, 661)=199 - KINDEX(1, 662)=10 - KINDEX(2, 662)=199 - KINDEX(1, 663)=57 - KINDEX(2, 663)=199 - KINDEX(1, 664)=67 - KINDEX(2, 664)=199 - KINDEX(1, 665)=10 - KINDEX(2, 665)=200 - KINDEX(1, 666)=57 - KINDEX(2, 666)=200 - KINDEX(1, 667)=85 - KINDEX(2, 667)=200 - KINDEX(1, 668)=10 - KINDEX(2, 668)=201 - KINDEX(1, 669)=15 - KINDEX(2, 669)=201 - KINDEX(1, 670)=57 - KINDEX(2, 670)=201 - KINDEX(1, 671)=1 - KINDEX(2, 671)=202 - KINDEX(1, 672)=2 - KINDEX(2, 672)=202 - KINDEX(1, 673)=57 - KINDEX(2, 673)=202 - KINDEX(1, 674)=2 - KINDEX(2, 674)=203 - KINDEX(1, 675)=57 - KINDEX(2, 675)=203 - KINDEX(1, 676)=85 - KINDEX(2, 676)=203 - KINDEX(1, 677)=2 - KINDEX(2, 677)=204 - KINDEX(1, 678)=10 - KINDEX(2, 678)=204 - KINDEX(1, 679)=15 - KINDEX(2, 679)=204 - KINDEX(1, 680)=57 - KINDEX(2, 680)=204 - KINDEX(1, 681)=1 - KINDEX(2, 681)=205 - KINDEX(1, 682)=2 - KINDEX(2, 682)=205 - KINDEX(1, 683)=55 - KINDEX(2, 683)=205 - KINDEX(1, 684)=85 - KINDEX(2, 684)=205 - KINDEX(1, 685)=55 - KINDEX(2, 685)=206 - KINDEX(1, 686)=85 - KINDEX(2, 686)=206 - KINDEX(1, 687)=10 - KINDEX(2, 687)=207 - KINDEX(1, 688)=15 - KINDEX(2, 688)=207 - KINDEX(1, 689)=55 - KINDEX(2, 689)=207 - KINDEX(1, 690)=85 - KINDEX(2, 690)=207 - KINDEX(1, 691)=1 - KINDEX(2, 691)=208 - KINDEX(1, 692)=2 - KINDEX(2, 692)=208 - KINDEX(1, 693)=10 - KINDEX(2, 693)=208 - KINDEX(1, 694)=56 - KINDEX(2, 694)=208 - KINDEX(1, 695)=68 - KINDEX(2, 695)=208 - KINDEX(1, 696)=10 - KINDEX(2, 696)=209 - KINDEX(1, 697)=56 - KINDEX(2, 697)=209 - KINDEX(1, 698)=85 - KINDEX(2, 698)=209 - KINDEX(1, 699)=10 - KINDEX(2, 699)=210 - KINDEX(1, 700)=15 - KINDEX(2, 700)=210 - KINDEX(1, 701)=56 - KINDEX(2, 701)=210 - KINDEX(1, 702)=1 - KINDEX(2, 702)=211 - KINDEX(1, 703)=2 - KINDEX(2, 703)=211 - KINDEX(1, 704)=56 - KINDEX(2, 704)=211 - KINDEX(1, 705)=2 - KINDEX(2, 705)=212 - KINDEX(1, 706)=56 - KINDEX(2, 706)=212 - KINDEX(1, 707)=85 - KINDEX(2, 707)=212 - KINDEX(1, 708)=2 - KINDEX(2, 708)=213 - KINDEX(1, 709)=10 - KINDEX(2, 709)=213 - KINDEX(1, 710)=15 - KINDEX(2, 710)=213 - KINDEX(1, 711)=56 - KINDEX(2, 711)=213 - KINDEX(1, 712)=1 - KINDEX(2, 712)=214 - KINDEX(1, 713)=2 - KINDEX(2, 713)=214 - KINDEX(1, 714)=85 - KINDEX(2, 714)=214 - KINDEX(1, 715)=85 - KINDEX(2, 715)=215 - KINDEX(1, 716)=10 - KINDEX(2, 716)=216 - KINDEX(1, 717)=15 - KINDEX(2, 717)=216 - KINDEX(1, 718)=85 - KINDEX(2, 718)=216 - KINDEX(1, 719)=1 - KINDEX(2, 719)=217 - KINDEX(1, 720)=2 - KINDEX(2, 720)=217 - KINDEX(1, 721)=71 - KINDEX(2, 721)=217 - KINDEX(1, 722)=85 - KINDEX(2, 722)=217 - KINDEX(1, 723)=71 - KINDEX(2, 723)=218 - KINDEX(1, 724)=85 - KINDEX(2, 724)=218 - KINDEX(1, 725)=10 - KINDEX(2, 725)=219 - KINDEX(1, 726)=15 - KINDEX(2, 726)=219 - KINDEX(1, 727)=71 - KINDEX(2, 727)=219 - KINDEX(1, 728)=85 - KINDEX(2, 728)=219 - KINDEX(1, 729)=85 - KINDEX(2, 729)=220 - KINDEX(1, 730)=10 - KINDEX(2, 730)=221 - KINDEX(1, 731)=15 - KINDEX(2, 731)=221 - KINDEX(1, 732)=85 - KINDEX(2, 732)=221 - KINDEX(1, 733)=1 - KINDEX(2, 733)=222 - KINDEX(1, 734)=2 - KINDEX(2, 734)=222 - KINDEX(1, 735)=10 - KINDEX(2, 735)=222 - KINDEX(1, 736)=64 - KINDEX(2, 736)=222 - KINDEX(1, 737)=65 - KINDEX(2, 737)=222 - KINDEX(1, 738)=10 - KINDEX(2, 738)=223 - KINDEX(1, 739)=65 - KINDEX(2, 739)=223 - KINDEX(1, 740)=85 - KINDEX(2, 740)=223 - KINDEX(1, 741)=10 - KINDEX(2, 741)=224 - KINDEX(1, 742)=15 - KINDEX(2, 742)=224 - KINDEX(1, 743)=65 - KINDEX(2, 743)=224 - KINDEX(1, 744)=1 - KINDEX(2, 744)=225 - KINDEX(1, 745)=2 - KINDEX(2, 745)=225 - KINDEX(1, 746)=66 - KINDEX(2, 746)=225 - KINDEX(1, 747)=85 - KINDEX(2, 747)=225 - KINDEX(1, 748)=85 - KINDEX(2, 748)=226 - KINDEX(1, 749)=10 - KINDEX(2, 749)=227 - KINDEX(1, 750)=15 - KINDEX(2, 750)=227 - KINDEX(1, 751)=85 - KINDEX(2, 751)=227 - KINDEX(1, 752)=1 - KINDEX(2, 752)=228 - KINDEX(1, 753)=2 - KINDEX(2, 753)=228 - KINDEX(1, 754)=10 - KINDEX(2, 754)=228 - KINDEX(1, 755)=66 - KINDEX(2, 755)=228 - KINDEX(1, 756)=10 - KINDEX(2, 756)=229 - KINDEX(1, 757)=66 - KINDEX(2, 757)=229 - KINDEX(1, 758)=85 - KINDEX(2, 758)=229 - KINDEX(1, 759)=10 - KINDEX(2, 759)=230 - KINDEX(1, 760)=15 - KINDEX(2, 760)=230 - KINDEX(1, 761)=66 - KINDEX(2, 761)=230 - KINDEX(1, 762)=85 - KINDEX(2, 762)=231 - KINDEX(1, 763)=1 - KINDEX(2, 763)=232 - KINDEX(1, 764)=2 - KINDEX(2, 764)=232 - KINDEX(1, 765)=10 - KINDEX(2, 765)=232 - KINDEX(1, 766)=52 - KINDEX(2, 766)=232 - KINDEX(1, 767)=10 - KINDEX(2, 767)=233 - KINDEX(1, 768)=52 - KINDEX(2, 768)=233 - KINDEX(1, 769)=85 - KINDEX(2, 769)=233 - KINDEX(1, 770)=10 - KINDEX(2, 770)=234 - KINDEX(1, 771)=15 - KINDEX(2, 771)=234 - KINDEX(1, 772)=52 - KINDEX(2, 772)=234 - KINDEX(1, 773)=1 - KINDEX(2, 773)=235 - KINDEX(1, 774)=2 - KINDEX(2, 774)=235 - KINDEX(1, 775)=10 - KINDEX(2, 775)=235 - KINDEX(1, 776)=41 - KINDEX(2, 776)=235 - KINDEX(1, 777)=72 - KINDEX(2, 777)=235 - KINDEX(1, 778)=10 - KINDEX(2, 778)=236 - KINDEX(1, 779)=41 - KINDEX(2, 779)=236 - KINDEX(1, 780)=72 - KINDEX(2, 780)=236 - KINDEX(1, 781)=85 - KINDEX(2, 781)=236 - KINDEX(1, 782)=10 - KINDEX(2, 782)=237 - KINDEX(1, 783)=15 - KINDEX(2, 783)=237 - KINDEX(1, 784)=41 - KINDEX(2, 784)=237 - KINDEX(1, 785)=72 - KINDEX(2, 785)=237 - KINDEX(1, 786)=85 - KINDEX(2, 786)=238 - KINDEX(1, 787)=1 - KINDEX(2, 787)=239 - KINDEX(1, 788)=2 - KINDEX(2, 788)=239 - KINDEX(1, 789)=10 - KINDEX(2, 789)=239 - KINDEX(1, 790)=73 - KINDEX(2, 790)=239 - KINDEX(1, 791)=10 - KINDEX(2, 791)=240 - KINDEX(1, 792)=73 - KINDEX(2, 792)=240 - KINDEX(1, 793)=85 - KINDEX(2, 793)=240 - KINDEX(1, 794)=10 - KINDEX(2, 794)=241 - KINDEX(1, 795)=15 - KINDEX(2, 795)=241 - KINDEX(1, 796)=73 - KINDEX(2, 796)=241 - KINDEX(1, 797)=1 - KINDEX(2, 797)=242 - KINDEX(1, 798)=2 - KINDEX(2, 798)=242 - KINDEX(1, 799)=10 - KINDEX(2, 799)=242 - KINDEX(1, 800)=41 - KINDEX(2, 800)=242 - KINDEX(1, 801)=72 - KINDEX(2, 801)=242 - KINDEX(1, 802)=10 - KINDEX(2, 802)=243 - KINDEX(1, 803)=41 - KINDEX(2, 803)=243 - KINDEX(1, 804)=72 - KINDEX(2, 804)=243 - KINDEX(1, 805)=85 - KINDEX(2, 805)=243 - KINDEX(1, 806)=10 - KINDEX(2, 806)=244 - KINDEX(1, 807)=15 - KINDEX(2, 807)=244 - KINDEX(1, 808)=41 - KINDEX(2, 808)=244 - KINDEX(1, 809)=72 - KINDEX(2, 809)=244 - KINDEX(1, 810)=85 - KINDEX(2, 810)=245 - KINDEX(1, 811)=1 - KINDEX(2, 811)=246 - KINDEX(1, 812)=2 - KINDEX(2, 812)=246 - KINDEX(1, 813)=10 - KINDEX(2, 813)=246 - KINDEX(1, 814)=73 - KINDEX(2, 814)=246 - KINDEX(1, 815)=10 - KINDEX(2, 815)=247 - KINDEX(1, 816)=73 - KINDEX(2, 816)=247 - KINDEX(1, 817)=85 - KINDEX(2, 817)=247 - KINDEX(1, 818)=10 - KINDEX(2, 818)=248 - KINDEX(1, 819)=15 - KINDEX(2, 819)=248 - KINDEX(1, 820)=73 - KINDEX(2, 820)=248 - KINDEX(1, 821)=1 - KINDEX(2, 821)=249 - KINDEX(1, 822)=2 - KINDEX(2, 822)=249 - KINDEX(1, 823)=10 - KINDEX(2, 823)=249 - KINDEX(1, 824)=41 - KINDEX(2, 824)=249 - KINDEX(1, 825)=72 - KINDEX(2, 825)=249 - KINDEX(1, 826)=10 - KINDEX(2, 826)=250 - KINDEX(1, 827)=41 - KINDEX(2, 827)=250 - KINDEX(1, 828)=72 - KINDEX(2, 828)=250 - KINDEX(1, 829)=85 - KINDEX(2, 829)=250 - KINDEX(1, 830)=10 - KINDEX(2, 830)=251 - KINDEX(1, 831)=15 - KINDEX(2, 831)=251 - KINDEX(1, 832)=41 - KINDEX(2, 832)=251 - KINDEX(1, 833)=72 - KINDEX(2, 833)=251 - KINDEX(1, 834)=85 - KINDEX(2, 834)=252 - KINDEX(1, 835)=1 - KINDEX(2, 835)=253 - KINDEX(1, 836)=2 - KINDEX(2, 836)=253 - KINDEX(1, 837)=10 - KINDEX(2, 837)=253 - KINDEX(1, 838)=52 - KINDEX(2, 838)=253 - KINDEX(1, 839)=10 - KINDEX(2, 839)=254 - KINDEX(1, 840)=52 - KINDEX(2, 840)=254 - KINDEX(1, 841)=85 - KINDEX(2, 841)=254 - KINDEX(1, 842)=10 - KINDEX(2, 842)=255 - KINDEX(1, 843)=15 - KINDEX(2, 843)=255 - KINDEX(1, 844)=52 - KINDEX(2, 844)=255 - KINDEX(1, 845)=1 - KINDEX(2, 845)=256 - KINDEX(1, 846)=2 - KINDEX(2, 846)=256 - KINDEX(1, 847)=10 - KINDEX(2, 847)=256 - KINDEX(1, 848)=41 - KINDEX(2, 848)=256 - KINDEX(1, 849)=72 - KINDEX(2, 849)=256 - KINDEX(1, 850)=10 - KINDEX(2, 850)=257 - KINDEX(1, 851)=41 - KINDEX(2, 851)=257 - KINDEX(1, 852)=72 - KINDEX(2, 852)=257 - KINDEX(1, 853)=85 - KINDEX(2, 853)=257 - KINDEX(1, 854)=10 - KINDEX(2, 854)=258 - KINDEX(1, 855)=15 - KINDEX(2, 855)=258 - KINDEX(1, 856)=41 - KINDEX(2, 856)=258 - KINDEX(1, 857)=72 - KINDEX(2, 857)=258 - KINDEX(1, 858)=85 - KINDEX(2, 858)=259 - KINDEX(1, 859)=1 - KINDEX(2, 859)=260 - KINDEX(1, 860)=2 - KINDEX(2, 860)=260 - KINDEX(1, 861)=10 - KINDEX(2, 861)=260 - KINDEX(1, 862)=50 - KINDEX(2, 862)=260 - KINDEX(1, 863)=10 - KINDEX(2, 863)=261 - KINDEX(1, 864)=50 - KINDEX(2, 864)=261 - KINDEX(1, 865)=85 - KINDEX(2, 865)=261 - KINDEX(1, 866)=10 - KINDEX(2, 866)=262 - KINDEX(1, 867)=15 - KINDEX(2, 867)=262 - KINDEX(1, 868)=50 - KINDEX(2, 868)=262 - KINDEX(1, 869)=1 - KINDEX(2, 869)=263 - KINDEX(1, 870)=2 - KINDEX(2, 870)=263 - KINDEX(1, 871)=10 - KINDEX(2, 871)=263 - KINDEX(1, 872)=41 - KINDEX(2, 872)=263 - KINDEX(1, 873)=72 - KINDEX(2, 873)=263 - KINDEX(1, 874)=10 - KINDEX(2, 874)=264 - KINDEX(1, 875)=41 - KINDEX(2, 875)=264 - KINDEX(1, 876)=72 - KINDEX(2, 876)=264 - KINDEX(1, 877)=85 - KINDEX(2, 877)=264 - KINDEX(1, 878)=10 - KINDEX(2, 878)=265 - KINDEX(1, 879)=15 - KINDEX(2, 879)=265 - KINDEX(1, 880)=41 - KINDEX(2, 880)=265 - KINDEX(1, 881)=72 - KINDEX(2, 881)=265 - KINDEX(1, 882)=85 - KINDEX(2, 882)=266 - KINDEX(1, 883)=1 - KINDEX(2, 883)=267 - KINDEX(1, 884)=2 - KINDEX(2, 884)=267 - KINDEX(1, 885)=10 - KINDEX(2, 885)=267 - KINDEX(1, 886)=63 - KINDEX(2, 886)=267 - KINDEX(1, 887)=10 - KINDEX(2, 887)=268 - KINDEX(1, 888)=63 - KINDEX(2, 888)=268 - KINDEX(1, 889)=85 - KINDEX(2, 889)=268 - KINDEX(1, 890)=10 - KINDEX(2, 890)=269 - KINDEX(1, 891)=15 - KINDEX(2, 891)=269 - KINDEX(1, 892)=63 - KINDEX(2, 892)=269 - KINDEX(1, 893)=1 - KINDEX(2, 893)=270 - KINDEX(1, 894)=2 - KINDEX(2, 894)=270 - KINDEX(1, 895)=10 - KINDEX(2, 895)=270 - KINDEX(1, 896)=41 - KINDEX(2, 896)=270 - KINDEX(1, 897)=75 - KINDEX(2, 897)=270 - KINDEX(1, 898)=10 - KINDEX(2, 898)=271 - KINDEX(1, 899)=41 - KINDEX(2, 899)=271 - KINDEX(1, 900)=75 - KINDEX(2, 900)=271 - KINDEX(1, 901)=85 - KINDEX(2, 901)=271 - KINDEX(1, 902)=10 - KINDEX(2, 902)=272 - KINDEX(1, 903)=15 - KINDEX(2, 903)=272 - KINDEX(1, 904)=41 - KINDEX(2, 904)=272 - KINDEX(1, 905)=75 - KINDEX(2, 905)=272 - KINDEX(1, 906)=15 - KINDEX(2, 906)=273 - KINDEX(1, 907)=39 - KINDEX(2, 907)=273 - KINDEX(1, 908)=85 - KINDEX(2, 908)=273 - KINDEX(1, 909)=15 - KINDEX(2, 909)=274 - KINDEX(1, 910)=40 - KINDEX(2, 910)=274 - KINDEX(1, 911)=85 - KINDEX(2, 911)=274 - KINDEX(1, 912)=15 - KINDEX(2, 912)=275 - KINDEX(1, 913)=41 - KINDEX(2, 913)=275 - KINDEX(1, 914)=85 - KINDEX(2, 914)=275 - KINDEX(1, 915)=5 - KINDEX(2, 915)=276 - KINDEX(1, 916)=8 - KINDEX(2, 916)=276 - KINDEX(1, 917)=40 - KINDEX(2, 917)=276 - KINDEX(1, 918)=85 - KINDEX(2, 918)=276 - KINDEX(1, 919)=10 - KINDEX(2, 919)=277 - KINDEX(1, 920)=11 - KINDEX(2, 920)=277 - KINDEX(1, 921)=41 - KINDEX(2, 921)=277 - KINDEX(1, 922)=85 - KINDEX(2, 922)=277 - KINDEX(1, 923)=1 - KINDEX(2, 923)=278 - KINDEX(1, 924)=2 - KINDEX(2, 924)=278 - KINDEX(1, 925)=85 - KINDEX(2, 925)=278 - KINDEX(1, 926)=5 - KINDEX(2, 926)=279 - KINDEX(1, 927)=8 - KINDEX(2, 927)=279 - KINDEX(1, 928)=41 - KINDEX(2, 928)=279 - KINDEX(1, 929)=85 - KINDEX(2, 929)=279 - KINDEX(1, 930)=3 - KINDEX(2, 930)=280 - KINDEX(1, 931)=10 - KINDEX(2, 931)=280 - KINDEX(1, 932)=47 - KINDEX(2, 932)=280 - KINDEX(1, 933)=85 - KINDEX(2, 933)=281 - KINDEX(1, 934)=3 - KINDEX(2, 934)=282 - KINDEX(1, 935)=10 - KINDEX(2, 935)=282 - KINDEX(1, 936)=11 - KINDEX(2, 936)=282 - KINDEX(1, 937)=15 - KINDEX(2, 937)=282 - KINDEX(1, 938)=28 - KINDEX(2, 938)=282 - KINDEX(1, 939)=29 - KINDEX(2, 939)=282 - KINDEX(1, 940)=39 - KINDEX(2, 940)=282 - KINDEX(1, 941)=41 - KINDEX(2, 941)=282 - KINDEX(1, 942)=43 - KINDEX(2, 942)=282 - KINDEX(1, 943)=47 - KINDEX(2, 943)=282 - KINDEX(1, 944)=85 - KINDEX(2, 944)=282 - KINDEX(1, 945)=3 - KINDEX(2, 945)=283 - KINDEX(1, 946)=10 - KINDEX(2, 946)=283 - KINDEX(1, 947)=11 - KINDEX(2, 947)=283 - KINDEX(1, 948)=15 - KINDEX(2, 948)=283 - KINDEX(1, 949)=28 - KINDEX(2, 949)=283 - KINDEX(1, 950)=40 - KINDEX(2, 950)=283 - KINDEX(1, 951)=41 - KINDEX(2, 951)=283 - KINDEX(1, 952)=43 - KINDEX(2, 952)=283 - KINDEX(1, 953)=85 - KINDEX(2, 953)=283 - KINDEX(1, 954)=30 - KINDEX(2, 954)=284 - KINDEX(1, 955)=39 - KINDEX(2, 955)=284 - KINDEX(1, 956)=85 - KINDEX(2, 956)=284 - KINDEX(1, 957)=10 - KINDEX(2, 957)=285 - KINDEX(1, 958)=11 - KINDEX(2, 958)=285 - KINDEX(1, 959)=29 - KINDEX(2, 959)=285 - KINDEX(1, 960)=40 - KINDEX(2, 960)=285 - KINDEX(1, 961)=85 - KINDEX(2, 961)=285 - KINDEX(1, 962)=1 - KINDEX(2, 962)=286 - KINDEX(1, 963)=2 - KINDEX(2, 963)=286 - KINDEX(1, 964)=10 - KINDEX(2, 964)=286 - KINDEX(1, 965)=28 - KINDEX(2, 965)=286 - KINDEX(1, 966)=41 - KINDEX(2, 966)=286 - KINDEX(1, 967)=10 - KINDEX(2, 967)=287 - KINDEX(1, 968)=28 - KINDEX(2, 968)=287 - KINDEX(1, 969)=41 - KINDEX(2, 969)=287 - KINDEX(1, 970)=85 - KINDEX(2, 970)=287 - KINDEX(1, 971)=10 - KINDEX(2, 971)=288 - KINDEX(1, 972)=15 - KINDEX(2, 972)=288 - KINDEX(1, 973)=28 - KINDEX(2, 973)=288 - KINDEX(1, 974)=41 - KINDEX(2, 974)=288 - KINDEX(1, 975)=1 - KINDEX(2, 975)=289 - KINDEX(1, 976)=2 - KINDEX(2, 976)=289 - KINDEX(1, 977)=85 - KINDEX(2, 977)=289 - KINDEX(1, 978)=3 - KINDEX(2, 978)=290 - KINDEX(1, 979)=10 - KINDEX(2, 979)=290 - KINDEX(1, 980)=17 - KINDEX(2, 980)=290 - KINDEX(1, 981)=44 - KINDEX(2, 981)=290 - KINDEX(1, 982)=85 - KINDEX(2, 982)=291 - KINDEX(1, 983)=1 - KINDEX(2, 983)=292 - KINDEX(1, 984)=2 - KINDEX(2, 984)=292 - KINDEX(1, 985)=10 - KINDEX(2, 985)=292 - KINDEX(1, 986)=28 - KINDEX(2, 986)=292 - KINDEX(1, 987)=41 - KINDEX(2, 987)=292 - KINDEX(1, 988)=10 - KINDEX(2, 988)=293 - KINDEX(1, 989)=28 - KINDEX(2, 989)=293 - KINDEX(1, 990)=41 - KINDEX(2, 990)=293 - KINDEX(1, 991)=85 - KINDEX(2, 991)=293 - KINDEX(1, 992)=10 - KINDEX(2, 992)=294 - KINDEX(1, 993)=15 - KINDEX(2, 993)=294 - KINDEX(1, 994)=28 - KINDEX(2, 994)=294 - KINDEX(1, 995)=41 - KINDEX(2, 995)=294 - KINDEX(1, 996)=85 - KINDEX(2, 996)=294 - KINDEX(1, 997)=1 - KINDEX(2, 997)=295 - KINDEX(1, 998)=2 - KINDEX(2, 998)=295 - KINDEX(1, 999)=28 - KINDEX(2, 999)=295 - KINDEX(1, 1000)=41 - KINDEX(2, 1000)=295 - KINDEX(1, 1001)=2 - KINDEX(2, 1001)=296 - KINDEX(1, 1002)=10 - KINDEX(2, 1002)=296 - KINDEX(1, 1003)=28 - KINDEX(2, 1003)=296 - KINDEX(1, 1004)=41 - KINDEX(2, 1004)=296 - KINDEX(1, 1005)=85 - KINDEX(2, 1005)=296 - KINDEX(1, 1006)=2 - KINDEX(2, 1006)=297 - KINDEX(1, 1007)=15 - KINDEX(2, 1007)=297 - KINDEX(1, 1008)=28 - KINDEX(2, 1008)=297 - KINDEX(1, 1009)=41 - KINDEX(2, 1009)=297 - KINDEX(1, 1010)=85 - KINDEX(2, 1010)=297 - KINDEX(1, 1011)=1 - KINDEX(2, 1011)=298 - KINDEX(1, 1012)=2 - KINDEX(2, 1012)=298 - KINDEX(1, 1013)=28 - KINDEX(2, 1013)=298 - KINDEX(1, 1014)=85 - KINDEX(2, 1014)=298 - KINDEX(1, 1015)=10 - KINDEX(2, 1015)=299 - KINDEX(1, 1016)=28 - KINDEX(2, 1016)=299 - KINDEX(1, 1017)=85 - KINDEX(2, 1017)=299 - KINDEX(1, 1018)=15 - KINDEX(2, 1018)=300 - KINDEX(1, 1019)=28 - KINDEX(2, 1019)=300 - KINDEX(1, 1020)=85 - KINDEX(2, 1020)=300 - KINDEX(1, 1021)=1 - KINDEX(2, 1021)=301 - KINDEX(1, 1022)=2 - KINDEX(2, 1022)=301 - KINDEX(1, 1023)=10 - KINDEX(2, 1023)=301 - KINDEX(1, 1024)=11 - KINDEX(2, 1024)=301 - KINDEX(1, 1025)=3 - KINDEX(2, 1025)=302 - KINDEX(1, 1026)=10 - KINDEX(2, 1026)=302 - KINDEX(1, 1027)=74 - KINDEX(2, 1027)=302 - KINDEX(1, 1028)=10 - KINDEX(2, 1028)=303 - KINDEX(1, 1029)=11 - KINDEX(2, 1029)=303 - KINDEX(1, 1030)=85 - KINDEX(2, 1030)=303 - KINDEX(1, 1031)=3 - KINDEX(2, 1031)=304 - KINDEX(1, 1032)=15 - KINDEX(2, 1032)=304 - KINDEX(1, 1033)=60 - KINDEX(2, 1033)=304 - KINDEX(1, 1034)=70 - KINDEX(2, 1034)=304 - KINDEX(1, 1035)=15 - KINDEX(2, 1035)=305 - KINDEX(1, 1036)=69 - KINDEX(2, 1036)=305 - KINDEX(1, 1037)=85 - KINDEX(2, 1037)=305 - KINDEX(1, 1038)=15 - KINDEX(2, 1038)=306 - KINDEX(1, 1039)=74 - KINDEX(2, 1039)=306 - KINDEX(1, 1040)=85 - KINDEX(2, 1040)=306 - KINDEX(1, 1041)=3 - KINDEX(2, 1041)=307 - KINDEX(1, 1042)=15 - KINDEX(2, 1042)=307 - KINDEX(1, 1043)=60 - KINDEX(2, 1043)=307 - KINDEX(1, 1044)=62 - KINDEX(2, 1044)=307 - KINDEX(1, 1045)=75 - KINDEX(2, 1045)=307 - KINDEX(1, 1046)=5 - KINDEX(2, 1046)=308 - KINDEX(1, 1047)=8 - KINDEX(2, 1047)=308 - KINDEX(1, 1048)=69 - KINDEX(2, 1048)=308 - KINDEX(1, 1049)=85 - KINDEX(2, 1049)=308 - KINDEX(1, 1050)=10 - KINDEX(2, 1050)=309 - KINDEX(1, 1051)=11 - KINDEX(2, 1051)=309 - KINDEX(1, 1052)=69 - KINDEX(2, 1052)=309 - KINDEX(1, 1053)=85 - KINDEX(2, 1053)=309 - KINDEX(1, 1054)=1 - KINDEX(2, 1054)=310 - KINDEX(1, 1055)=2 - KINDEX(2, 1055)=310 - KINDEX(1, 1056)=85 - KINDEX(2, 1056)=310 - KINDEX(1, 1057)=3 - KINDEX(2, 1057)=311 - KINDEX(1, 1058)=10 - KINDEX(2, 1058)=311 - KINDEX(1, 1059)=45 - KINDEX(2, 1059)=311 - KINDEX(1, 1060)=85 - KINDEX(2, 1060)=312 - KINDEX(1, 1061)=15 - KINDEX(2, 1061)=313 - KINDEX(1, 1062)=57 - KINDEX(2, 1062)=313 - KINDEX(1, 1063)=85 - KINDEX(2, 1063)=313 - KINDEX(1, 1064)=5 - KINDEX(2, 1064)=314 - KINDEX(1, 1065)=8 - KINDEX(2, 1065)=314 - KINDEX(1, 1066)=57 - KINDEX(2, 1066)=314 - KINDEX(1, 1067)=85 - KINDEX(2, 1067)=314 - KINDEX(1, 1068)=10 - KINDEX(2, 1068)=315 - KINDEX(1, 1069)=11 - KINDEX(2, 1069)=315 - KINDEX(1, 1070)=57 - KINDEX(2, 1070)=315 - KINDEX(1, 1071)=1 - KINDEX(2, 1071)=316 - KINDEX(1, 1072)=2 - KINDEX(2, 1072)=316 - KINDEX(1, 1073)=10 - KINDEX(2, 1073)=316 - KINDEX(1, 1074)=2 - KINDEX(2, 1074)=317 - KINDEX(1, 1075)=83 - KINDEX(2, 1075)=317 - KINDEX(1, 1076)=2 - KINDEX(2, 1076)=318 - KINDEX(1, 1077)=83 - KINDEX(2, 1077)=318 - KINDEX(1, 1078)=85 - KINDEX(2, 1078)=318 - KINDEX(1, 1079)=3 - KINDEX(2, 1079)=319 - KINDEX(1, 1080)=10 - KINDEX(2, 1080)=319 - KINDEX(1, 1081)=53 - KINDEX(2, 1081)=319 - KINDEX(1, 1082)=10 - KINDEX(2, 1082)=320 - KINDEX(1, 1083)=85 - KINDEX(2, 1083)=320 - KINDEX(1, 1084)=5 - KINDEX(2, 1084)=321 - KINDEX(1, 1085)=8 - KINDEX(2, 1085)=321 - KINDEX(1, 1086)=61 - KINDEX(2, 1086)=321 - KINDEX(1, 1087)=2 - KINDEX(2, 1087)=322 - KINDEX(1, 1088)=59 - KINDEX(2, 1088)=322 - KINDEX(1, 1089)=3 - KINDEX(2, 1089)=323 - KINDEX(1, 1090)=15 - KINDEX(2, 1090)=323 - KINDEX(1, 1091)=60 - KINDEX(2, 1091)=323 - KINDEX(1, 1092)=62 - KINDEX(2, 1092)=323 - KINDEX(1, 1093)=3 - KINDEX(2, 1093)=324 - KINDEX(1, 1094)=15 - KINDEX(2, 1094)=324 - KINDEX(1, 1095)=58 - KINDEX(2, 1095)=324 - KINDEX(1, 1096)=63 - KINDEX(2, 1096)=324 - KINDEX(1, 1097)=15 - KINDEX(2, 1097)=325 - KINDEX(1, 1098)=71 - KINDEX(2, 1098)=325 - KINDEX(1, 1099)=85 - KINDEX(2, 1099)=325 - KINDEX(1, 1100)=10 - KINDEX(2, 1100)=326 - KINDEX(1, 1101)=15 - KINDEX(2, 1101)=326 - KINDEX(1, 1102)=72 - KINDEX(2, 1102)=326 - KINDEX(1, 1103)=3 - KINDEX(2, 1103)=327 - KINDEX(1, 1104)=15 - KINDEX(2, 1104)=327 - KINDEX(1, 1105)=49 - KINDEX(2, 1105)=327 - KINDEX(1, 1106)=73 - KINDEX(2, 1106)=327 - KINDEX(1, 1107)=5 - KINDEX(2, 1107)=328 - KINDEX(1, 1108)=8 - KINDEX(2, 1108)=328 - KINDEX(1, 1109)=71 - KINDEX(2, 1109)=328 - KINDEX(1, 1110)=85 - KINDEX(2, 1110)=328 - KINDEX(1, 1111)=72 - KINDEX(2, 1111)=329 - KINDEX(1, 1112)=10 - KINDEX(2, 1112)=330 - KINDEX(1, 1113)=11 - KINDEX(2, 1113)=330 - KINDEX(1, 1114)=71 - KINDEX(2, 1114)=330 - KINDEX(1, 1115)=85 - KINDEX(2, 1115)=330 - KINDEX(1, 1116)=10 - KINDEX(2, 1116)=331 - KINDEX(1, 1117)=71 - KINDEX(2, 1117)=331 - KINDEX(1, 1118)=85 - KINDEX(2, 1118)=331 - KINDEX(1, 1119)=1 - KINDEX(2, 1119)=332 - KINDEX(1, 1120)=2 - KINDEX(2, 1120)=332 - KINDEX(1, 1121)=85 - KINDEX(2, 1121)=332 - KINDEX(1, 1122)=3 - KINDEX(2, 1122)=333 - KINDEX(1, 1123)=10 - KINDEX(2, 1123)=333 - KINDEX(1, 1124)=53 - KINDEX(2, 1124)=333 - KINDEX(1, 1125)=85 - KINDEX(2, 1125)=334 - KINDEX(1, 1126)=3 - KINDEX(2, 1126)=335 - KINDEX(1, 1127)=15 - KINDEX(2, 1127)=335 - KINDEX(1, 1128)=50 - KINDEX(2, 1128)=335 - KINDEX(1, 1129)=52 - KINDEX(2, 1129)=335 - KINDEX(1, 1130)=3 - KINDEX(2, 1130)=336 - KINDEX(1, 1131)=15 - KINDEX(2, 1131)=336 - KINDEX(1, 1132)=48 - KINDEX(2, 1132)=336 - KINDEX(1, 1133)=50 - KINDEX(2, 1133)=336 - KINDEX(1, 1134)=51 - KINDEX(2, 1134)=336 - KINDEX(1, 1135)=3 - KINDEX(2, 1135)=337 - KINDEX(1, 1136)=15 - KINDEX(2, 1136)=337 - KINDEX(1, 1137)=48 - KINDEX(2, 1137)=337 - KINDEX(1, 1138)=51 - KINDEX(2, 1138)=337 - KINDEX(1, 1139)=5 - KINDEX(2, 1139)=338 - KINDEX(1, 1140)=8 - KINDEX(2, 1140)=338 - KINDEX(1, 1141)=74 - KINDEX(2, 1141)=338 - KINDEX(1, 1142)=85 - KINDEX(2, 1142)=338 - KINDEX(1, 1143)=10 - KINDEX(2, 1143)=339 - KINDEX(1, 1144)=11 - KINDEX(2, 1144)=339 - KINDEX(1, 1145)=15 - KINDEX(2, 1145)=339 - KINDEX(1, 1146)=74 - KINDEX(2, 1146)=339 - KINDEX(1, 1147)=1 - KINDEX(2, 1147)=340 - KINDEX(1, 1148)=2 - KINDEX(2, 1148)=340 - KINDEX(1, 1149)=11 - KINDEX(2, 1149)=340 - KINDEX(1, 1150)=15 - KINDEX(2, 1150)=340 - KINDEX(1, 1151)=3 - KINDEX(2, 1151)=341 - KINDEX(1, 1152)=10 - KINDEX(2, 1152)=341 - KINDEX(1, 1153)=46 - KINDEX(2, 1153)=341 - KINDEX(1, 1154)=11 - KINDEX(2, 1154)=342 - KINDEX(1, 1155)=15 - KINDEX(2, 1155)=342 - KINDEX(1, 1156)=85 - KINDEX(2, 1156)=342 - KINDEX(1, 1157)=2 - KINDEX(2, 1157)=343 - KINDEX(1, 1158)=82 - KINDEX(2, 1158)=343 - KINDEX(1, 1159)=85 - KINDEX(2, 1159)=343 - KINDEX(1, 1160)=1 - KINDEX(2, 1160)=344 - KINDEX(1, 1161)=2 - KINDEX(2, 1161)=344 - KINDEX(1, 1162)=85 - KINDEX(2, 1162)=344 - KINDEX(1, 1163)=9 - KINDEX(2, 1163)=345 - KINDEX(1, 1164)=15 - KINDEX(2, 1164)=345 - KINDEX(1, 1165)=14 - KINDEX(2, 1165)=346 - KINDEX(1, 1166)=10 - KINDEX(2, 1166)=347 - KINDEX(1, 1167)=15 - KINDEX(2, 1167)=347 - KINDEX(1, 1168)=43 - KINDEX(2, 1168)=347 - KINDEX(1, 1169)=15 - KINDEX(2, 1169)=348 - KINDEX(1, 1170)=44 - KINDEX(2, 1170)=348 - KINDEX(1, 1171)=15 - KINDEX(2, 1171)=349 - KINDEX(1, 1172)=45 - KINDEX(2, 1172)=349 - KINDEX(1, 1173)=48 - KINDEX(2, 1173)=350 - KINDEX(1, 1174)=53 - KINDEX(2, 1174)=351 - KINDEX(1, 1175)=58 - KINDEX(2, 1175)=352 - KINDEX(1, 1176)=60 - KINDEX(2, 1176)=353 - KINDEX(1, 1177)=64 - KINDEX(2, 1177)=354 - KINDEX(1, 1178)=66 - KINDEX(2, 1178)=355 - KINDEX(1, 1179)=68 - KINDEX(2, 1179)=356 - KINDEX(1, 1180)=56 - KINDEX(2, 1180)=357 - KINDEX(1, 1181)=54 - KINDEX(2, 1181)=358 - KINDEX(1, 1182)=55 - KINDEX(2, 1182)=359 - KINDEX(1, 1183)=65 - KINDEX(2, 1183)=360 - KINDEX(1, 1184)=47 - KINDEX(2, 1184)=361 - KINDEX(1, 1185)=59 - KINDEX(2, 1185)=362 - KINDEX(1, 1186)=49 - KINDEX(2, 1186)=363 - KINDEX(1, 1187)=46 - KINDEX(2, 1187)=364 - KINDEX(1, 1188)=67 - KINDEX(2, 1188)=365 - KINDEX(1, 1189)=3 - KINDEX(2, 1189)=366 - KINDEX(1, 1190)=88 - KINDEX(2, 1190)=366 - KINDEX(1, 1191)=12 - KINDEX(2, 1191)=367 - KINDEX(1, 1192)=89 - KINDEX(2, 1192)=367 - KINDEX(1, 1193)=1 - KINDEX(2, 1193)=368 - KINDEX(1, 1194)=90 - KINDEX(2, 1194)=368 - KINDEX(1, 1195)=2 - KINDEX(2, 1195)=369 - KINDEX(1, 1196)=91 - KINDEX(2, 1196)=369 - KINDEX(1, 1197)=8 - KINDEX(2, 1197)=370 - KINDEX(1, 1198)=92 - KINDEX(2, 1198)=370 - KINDEX(1, 1199)=7 - KINDEX(2, 1199)=371 - KINDEX(1, 1200)=93 - KINDEX(2, 1200)=371 - KINDEX(1, 1201)=4 - KINDEX(2, 1201)=372 - KINDEX(1, 1202)=94 - KINDEX(2, 1202)=372 - KINDEX(1, 1203)=5 - KINDEX(2, 1203)=373 - KINDEX(1, 1204)=95 - KINDEX(2, 1204)=373 - KINDEX(1, 1205)=6 - KINDEX(2, 1205)=374 - KINDEX(1, 1206)=96 - KINDEX(2, 1206)=374 - KINDEX(1, 1207)=9 - KINDEX(2, 1207)=375 - KINDEX(1, 1208)=97 - KINDEX(2, 1208)=375 - KINDEX(1, 1209)=15 - KINDEX(2, 1209)=376 - KINDEX(1, 1210)=98 - KINDEX(2, 1210)=376 - KINDEX(1, 1211)=10 - KINDEX(2, 1211)=377 - KINDEX(1, 1212)=99 - KINDEX(2, 1212)=377 - KINDEX(1, 1213)=100 - KINDEX(2, 1213)=378 - KINDEX(1, 1214)=13 - KINDEX(2, 1214)=379 - KINDEX(1, 1215)=101 - KINDEX(2, 1215)=379 - KINDEX(1, 1216)=14 - KINDEX(2, 1216)=380 - KINDEX(1, 1217)=102 - KINDEX(2, 1217)=380 - KINDEX(1, 1218)=86 - KINDEX(2, 1218)=381 - KINDEX(1, 1219)=103 - KINDEX(2, 1219)=381 - KINDEX(1, 1220)=87 - KINDEX(2, 1220)=382 - KINDEX(1, 1221)=104 - KINDEX(2, 1221)=382 - KINDEX(1, 1222)=32 - KINDEX(2, 1222)=383 - KINDEX(1, 1223)=105 - KINDEX(2, 1223)=383 - KINDEX(1, 1224)=33 - KINDEX(2, 1224)=384 - KINDEX(1, 1225)=106 - KINDEX(2, 1225)=384 - KINDEX(1, 1226)=34 - KINDEX(2, 1226)=385 - KINDEX(1, 1227)=107 - KINDEX(2, 1227)=385 - KINDEX(1, 1228)=28 - KINDEX(2, 1228)=386 - KINDEX(1, 1229)=108 - KINDEX(2, 1229)=386 - KINDEX(1, 1230)=29 - KINDEX(2, 1230)=387 - KINDEX(1, 1231)=109 - KINDEX(2, 1231)=387 - KINDEX(1, 1232)=42 - KINDEX(2, 1232)=388 - KINDEX(1, 1233)=110 - KINDEX(2, 1233)=388 - KINDEX(1, 1234)=30 - KINDEX(2, 1234)=389 - KINDEX(1, 1235)=112 - KINDEX(2, 1235)=389 - KINDEX(1, 1236)=41 - KINDEX(2, 1236)=390 - KINDEX(1, 1237)=111 - KINDEX(2, 1237)=390 - KINDEX(1, 1238)=43 - KINDEX(2, 1238)=391 - KINDEX(1, 1239)=113 - KINDEX(2, 1239)=391 - KINDEX(1, 1240)=44 - KINDEX(2, 1240)=392 - KINDEX(1, 1241)=114 - KINDEX(2, 1241)=392 - KINDEX(1, 1242)=45 - KINDEX(2, 1242)=393 - KINDEX(1, 1243)=115 - KINDEX(2, 1243)=393 - KINDEX(1, 1244)=74 - KINDEX(2, 1244)=394 - KINDEX(1, 1245)=116 - KINDEX(2, 1245)=394 - KINDEX(1, 1246)=47 - KINDEX(2, 1246)=395 - KINDEX(1, 1247)=117 - KINDEX(2, 1247)=395 - KINDEX(1, 1248)=46 - KINDEX(2, 1248)=396 - KINDEX(1, 1249)=118 - KINDEX(2, 1249)=396 - KINDEX(1, 1250)=3 - KINDEX(2, 1250)=397 - KINDEX(1, 1251)=88 - KINDEX(2, 1251)=397 - KINDEX(1, 1252)=12 - KINDEX(2, 1252)=398 - KINDEX(1, 1253)=89 - KINDEX(2, 1253)=398 - KINDEX(1, 1254)=1 - KINDEX(2, 1254)=399 - KINDEX(1, 1255)=90 - KINDEX(2, 1255)=399 - KINDEX(1, 1256)=2 - KINDEX(2, 1256)=400 - KINDEX(1, 1257)=91 - KINDEX(2, 1257)=400 - KINDEX(1, 1258)=8 - KINDEX(2, 1258)=401 - KINDEX(1, 1259)=92 - KINDEX(2, 1259)=401 - KINDEX(1, 1260)=7 - KINDEX(2, 1260)=402 - KINDEX(1, 1261)=93 - KINDEX(2, 1261)=402 - KINDEX(1, 1262)=4 - KINDEX(2, 1262)=403 - KINDEX(1, 1263)=94 - KINDEX(2, 1263)=403 - KINDEX(1, 1264)=5 - KINDEX(2, 1264)=404 - KINDEX(1, 1265)=95 - KINDEX(2, 1265)=404 - KINDEX(1, 1266)=6 - KINDEX(2, 1266)=405 - KINDEX(1, 1267)=96 - KINDEX(2, 1267)=405 - KINDEX(1, 1268)=9 - KINDEX(2, 1268)=406 - KINDEX(1, 1269)=97 - KINDEX(2, 1269)=406 - KINDEX(1, 1270)=15 - KINDEX(2, 1270)=407 - KINDEX(1, 1271)=98 - KINDEX(2, 1271)=407 - KINDEX(1, 1272)=10 - KINDEX(2, 1272)=408 - KINDEX(1, 1273)=99 - KINDEX(2, 1273)=408 - KINDEX(1, 1274)=100 - KINDEX(2, 1274)=409 - KINDEX(1, 1275)=13 - KINDEX(2, 1275)=410 - KINDEX(1, 1276)=101 - KINDEX(2, 1276)=410 - KINDEX(1, 1277)=14 - KINDEX(2, 1277)=411 - KINDEX(1, 1278)=102 - KINDEX(2, 1278)=411 - KINDEX(1, 1279)=86 - KINDEX(2, 1279)=412 - KINDEX(1, 1280)=103 - KINDEX(2, 1280)=412 - KINDEX(1, 1281)=87 - KINDEX(2, 1281)=413 - KINDEX(1, 1282)=104 - KINDEX(2, 1282)=413 - KINDEX(1, 1283)=32 - KINDEX(2, 1283)=414 - KINDEX(1, 1284)=105 - KINDEX(2, 1284)=414 - KINDEX(1, 1285)=33 - KINDEX(2, 1285)=415 - KINDEX(1, 1286)=106 - KINDEX(2, 1286)=415 - KINDEX(1, 1287)=34 - KINDEX(2, 1287)=416 - KINDEX(1, 1288)=107 - KINDEX(2, 1288)=416 - KINDEX(1, 1289)=28 - KINDEX(2, 1289)=417 - KINDEX(1, 1290)=108 - KINDEX(2, 1290)=417 - KINDEX(1, 1291)=29 - KINDEX(2, 1291)=418 - KINDEX(1, 1292)=109 - KINDEX(2, 1292)=418 - KINDEX(1, 1293)=42 - KINDEX(2, 1293)=419 - KINDEX(1, 1294)=110 - KINDEX(2, 1294)=419 - KINDEX(1, 1295)=30 - KINDEX(2, 1295)=420 - KINDEX(1, 1296)=112 - KINDEX(2, 1296)=420 - KINDEX(1, 1297)=41 - KINDEX(2, 1297)=421 - KINDEX(1, 1298)=111 - KINDEX(2, 1298)=421 - KINDEX(1, 1299)=43 - KINDEX(2, 1299)=422 - KINDEX(1, 1300)=113 - KINDEX(2, 1300)=422 - KINDEX(1, 1301)=44 - KINDEX(2, 1301)=423 - KINDEX(1, 1302)=114 - KINDEX(2, 1302)=423 - KINDEX(1, 1303)=45 - KINDEX(2, 1303)=424 - KINDEX(1, 1304)=115 - KINDEX(2, 1304)=424 - KINDEX(1, 1305)=74 - KINDEX(2, 1305)=425 - KINDEX(1, 1306)=116 - KINDEX(2, 1306)=425 - KINDEX(1, 1307)=47 - KINDEX(2, 1307)=426 - KINDEX(1, 1308)=117 - KINDEX(2, 1308)=426 - KINDEX(1, 1309)=46 - KINDEX(2, 1309)=427 - KINDEX(1, 1310)=118 - KINDEX(2, 1310)=427 - KINDEX(1, 1311)=3 - KINDEX(2, 1311)=428 - KINDEX(1, 1312)=125 - KINDEX(2, 1312)=428 - KINDEX(1, 1313)=12 - KINDEX(2, 1313)=429 - KINDEX(1, 1314)=126 - KINDEX(2, 1314)=429 - KINDEX(1, 1315)=1 - KINDEX(2, 1315)=430 - KINDEX(1, 1316)=127 - KINDEX(2, 1316)=430 - KINDEX(1, 1317)=2 - KINDEX(2, 1317)=431 - KINDEX(1, 1318)=128 - KINDEX(2, 1318)=431 - KINDEX(1, 1319)=8 - KINDEX(2, 1319)=432 - KINDEX(1, 1320)=129 - KINDEX(2, 1320)=432 - KINDEX(1, 1321)=7 - KINDEX(2, 1321)=433 - KINDEX(1, 1322)=130 - KINDEX(2, 1322)=433 - KINDEX(1, 1323)=4 - KINDEX(2, 1323)=434 - KINDEX(1, 1324)=131 - KINDEX(2, 1324)=434 - KINDEX(1, 1325)=5 - KINDEX(2, 1325)=435 - KINDEX(1, 1326)=132 - KINDEX(2, 1326)=435 - KINDEX(1, 1327)=6 - KINDEX(2, 1327)=436 - KINDEX(1, 1328)=133 - KINDEX(2, 1328)=436 - KINDEX(1, 1329)=9 - KINDEX(2, 1329)=437 - KINDEX(1, 1330)=134 - KINDEX(2, 1330)=437 - KINDEX(1, 1331)=15 - KINDEX(2, 1331)=438 - KINDEX(1, 1332)=135 - KINDEX(2, 1332)=438 - KINDEX(1, 1333)=10 - KINDEX(2, 1333)=439 - KINDEX(1, 1334)=136 - KINDEX(2, 1334)=439 - KINDEX(1, 1335)=137 - KINDEX(2, 1335)=440 - KINDEX(1, 1336)=13 - KINDEX(2, 1336)=441 - KINDEX(1, 1337)=138 - KINDEX(2, 1337)=441 - KINDEX(1, 1338)=14 - KINDEX(2, 1338)=442 - KINDEX(1, 1339)=139 - KINDEX(2, 1339)=442 - KINDEX(1, 1340)=86 - KINDEX(2, 1340)=443 - KINDEX(1, 1341)=140 - KINDEX(2, 1341)=443 - KINDEX(1, 1342)=87 - KINDEX(2, 1342)=444 - KINDEX(1, 1343)=141 - KINDEX(2, 1343)=444 - KINDEX(1, 1344)=32 - KINDEX(2, 1344)=445 - KINDEX(1, 1345)=142 - KINDEX(2, 1345)=445 - KINDEX(1, 1346)=33 - KINDEX(2, 1346)=446 - KINDEX(1, 1347)=143 - KINDEX(2, 1347)=446 - KINDEX(1, 1348)=34 - KINDEX(2, 1348)=447 - KINDEX(1, 1349)=144 - KINDEX(2, 1349)=447 - KINDEX(1, 1350)=28 - KINDEX(2, 1350)=448 - KINDEX(1, 1351)=145 - KINDEX(2, 1351)=448 - KINDEX(1, 1352)=29 - KINDEX(2, 1352)=449 - KINDEX(1, 1353)=146 - KINDEX(2, 1353)=449 - KINDEX(1, 1354)=42 - KINDEX(2, 1354)=450 - KINDEX(1, 1355)=147 - KINDEX(2, 1355)=450 - KINDEX(1, 1356)=30 - KINDEX(2, 1356)=451 - KINDEX(1, 1357)=149 - KINDEX(2, 1357)=451 - KINDEX(1, 1358)=41 - KINDEX(2, 1358)=452 - KINDEX(1, 1359)=148 - KINDEX(2, 1359)=452 - KINDEX(1, 1360)=43 - KINDEX(2, 1360)=453 - KINDEX(1, 1361)=150 - KINDEX(2, 1361)=453 - KINDEX(1, 1362)=44 - KINDEX(2, 1362)=454 - KINDEX(1, 1363)=151 - KINDEX(2, 1363)=454 - KINDEX(1, 1364)=45 - KINDEX(2, 1364)=455 - KINDEX(1, 1365)=152 - KINDEX(2, 1365)=455 - KINDEX(1, 1366)=74 - KINDEX(2, 1366)=456 - KINDEX(1, 1367)=153 - KINDEX(2, 1367)=456 - KINDEX(1, 1368)=47 - KINDEX(2, 1368)=457 - KINDEX(1, 1369)=154 - KINDEX(2, 1369)=457 - KINDEX(1, 1370)=46 - KINDEX(2, 1370)=458 - KINDEX(1, 1371)=155 - KINDEX(2, 1371)=458 - KINDEX(1, 1372)=3 - KINDEX(2, 1372)=459 - KINDEX(1, 1373)=125 - KINDEX(2, 1373)=459 - KINDEX(1, 1374)=12 - KINDEX(2, 1374)=460 - KINDEX(1, 1375)=126 - KINDEX(2, 1375)=460 - KINDEX(1, 1376)=1 - KINDEX(2, 1376)=461 - KINDEX(1, 1377)=127 - KINDEX(2, 1377)=461 - KINDEX(1, 1378)=2 - KINDEX(2, 1378)=462 - KINDEX(1, 1379)=128 - KINDEX(2, 1379)=462 - KINDEX(1, 1380)=8 - KINDEX(2, 1380)=463 - KINDEX(1, 1381)=129 - KINDEX(2, 1381)=463 - KINDEX(1, 1382)=7 - KINDEX(2, 1382)=464 - KINDEX(1, 1383)=130 - KINDEX(2, 1383)=464 - KINDEX(1, 1384)=4 - KINDEX(2, 1384)=465 - KINDEX(1, 1385)=131 - KINDEX(2, 1385)=465 - KINDEX(1, 1386)=5 - KINDEX(2, 1386)=466 - KINDEX(1, 1387)=132 - KINDEX(2, 1387)=466 - KINDEX(1, 1388)=6 - KINDEX(2, 1388)=467 - KINDEX(1, 1389)=133 - KINDEX(2, 1389)=467 - KINDEX(1, 1390)=9 - KINDEX(2, 1390)=468 - KINDEX(1, 1391)=134 - KINDEX(2, 1391)=468 - KINDEX(1, 1392)=15 - KINDEX(2, 1392)=469 - KINDEX(1, 1393)=135 - KINDEX(2, 1393)=469 - KINDEX(1, 1394)=10 - KINDEX(2, 1394)=470 - KINDEX(1, 1395)=136 - KINDEX(2, 1395)=470 - KINDEX(1, 1396)=137 - KINDEX(2, 1396)=471 - KINDEX(1, 1397)=13 - KINDEX(2, 1397)=472 - KINDEX(1, 1398)=138 - KINDEX(2, 1398)=472 - KINDEX(1, 1399)=14 - KINDEX(2, 1399)=473 - KINDEX(1, 1400)=139 - KINDEX(2, 1400)=473 - KINDEX(1, 1401)=86 - KINDEX(2, 1401)=474 - KINDEX(1, 1402)=140 - KINDEX(2, 1402)=474 - KINDEX(1, 1403)=87 - KINDEX(2, 1403)=475 - KINDEX(1, 1404)=141 - KINDEX(2, 1404)=475 - KINDEX(1, 1405)=32 - KINDEX(2, 1405)=476 - KINDEX(1, 1406)=142 - KINDEX(2, 1406)=476 - KINDEX(1, 1407)=33 - KINDEX(2, 1407)=477 - KINDEX(1, 1408)=143 - KINDEX(2, 1408)=477 - KINDEX(1, 1409)=34 - KINDEX(2, 1409)=478 - KINDEX(1, 1410)=144 - KINDEX(2, 1410)=478 - KINDEX(1, 1411)=28 - KINDEX(2, 1411)=479 - KINDEX(1, 1412)=145 - KINDEX(2, 1412)=479 - KINDEX(1, 1413)=29 - KINDEX(2, 1413)=480 - KINDEX(1, 1414)=146 - KINDEX(2, 1414)=480 - KINDEX(1, 1415)=42 - KINDEX(2, 1415)=481 - KINDEX(1, 1416)=147 - KINDEX(2, 1416)=481 - KINDEX(1, 1417)=30 - KINDEX(2, 1417)=482 - KINDEX(1, 1418)=149 - KINDEX(2, 1418)=482 - KINDEX(1, 1419)=41 - KINDEX(2, 1419)=483 - KINDEX(1, 1420)=148 - KINDEX(2, 1420)=483 - KINDEX(1, 1421)=43 - KINDEX(2, 1421)=484 - KINDEX(1, 1422)=150 - KINDEX(2, 1422)=484 - KINDEX(1, 1423)=44 - KINDEX(2, 1423)=485 - KINDEX(1, 1424)=151 - KINDEX(2, 1424)=485 - KINDEX(1, 1425)=45 - KINDEX(2, 1425)=486 - KINDEX(1, 1426)=152 - KINDEX(2, 1426)=486 - KINDEX(1, 1427)=74 - KINDEX(2, 1427)=487 - KINDEX(1, 1428)=153 - KINDEX(2, 1428)=487 - KINDEX(1, 1429)=47 - KINDEX(2, 1429)=488 - KINDEX(1, 1430)=154 - KINDEX(2, 1430)=488 - KINDEX(1, 1431)=46 - KINDEX(2, 1431)=489 - KINDEX(1, 1432)=155 - KINDEX(2, 1432)=489 - KINDEX(1, 1433)=89 - KINDEX(2, 1433)=490 - KINDEX(1, 1434)=98 - KINDEX(2, 1434)=490 - KINDEX(1, 1435)=89 - KINDEX(2, 1435)=491 - KINDEX(1, 1436)=98 - KINDEX(2, 1436)=491 - KINDEX(1, 1437)=98 - KINDEX(2, 1437)=492 - KINDEX(1, 1438)=99 - KINDEX(2, 1438)=492 - KINDEX(1, 1439)=89 - KINDEX(2, 1439)=493 - KINDEX(1, 1440)=98 - KINDEX(2, 1440)=493 - KINDEX(1, 1441)=99 - KINDEX(2, 1441)=493 - KINDEX(1, 1442)=89 - KINDEX(2, 1442)=494 - KINDEX(1, 1443)=99 - KINDEX(2, 1443)=494 - KINDEX(1, 1444)=88 - KINDEX(2, 1444)=495 - KINDEX(1, 1445)=98 - KINDEX(2, 1445)=495 - KINDEX(1, 1446)=99 - KINDEX(2, 1446)=495 - KINDEX(1, 1447)=98 - KINDEX(2, 1447)=496 - KINDEX(1, 1448)=101 - KINDEX(2, 1448)=496 - KINDEX(1, 1449)=120 - KINDEX(2, 1449)=496 - KINDEX(1, 1450)=91 - KINDEX(2, 1450)=497 - KINDEX(1, 1451)=94 - KINDEX(2, 1451)=497 - KINDEX(1, 1452)=98 - KINDEX(2, 1452)=497 - KINDEX(1, 1453)=91 - KINDEX(2, 1453)=498 - KINDEX(1, 1454)=96 - KINDEX(2, 1454)=498 - KINDEX(1, 1455)=99 - KINDEX(2, 1455)=498 - KINDEX(1, 1456)=91 - KINDEX(2, 1456)=499 - KINDEX(1, 1457)=96 - KINDEX(2, 1457)=499 - KINDEX(1, 1458)=99 - KINDEX(2, 1458)=499 - KINDEX(1, 1459)=94 - KINDEX(2, 1459)=500 - KINDEX(1, 1460)=96 - KINDEX(2, 1460)=500 - KINDEX(1, 1461)=95 - KINDEX(2, 1461)=501 - KINDEX(1, 1462)=96 - KINDEX(2, 1462)=501 - KINDEX(1, 1463)=101 - KINDEX(2, 1463)=501 - KINDEX(1, 1464)=102 - KINDEX(2, 1464)=501 - KINDEX(1, 1465)=91 - KINDEX(2, 1465)=502 - KINDEX(1, 1466)=95 - KINDEX(2, 1466)=502 - KINDEX(1, 1467)=98 - KINDEX(2, 1467)=502 - KINDEX(1, 1468)=93 - KINDEX(2, 1468)=503 - KINDEX(1, 1469)=95 - KINDEX(2, 1469)=503 - KINDEX(1, 1470)=92 - KINDEX(2, 1470)=504 - KINDEX(1, 1471)=95 - KINDEX(2, 1471)=504 - KINDEX(1, 1472)=102 - KINDEX(2, 1472)=504 - KINDEX(1, 1473)=121 - KINDEX(2, 1473)=504 - KINDEX(1, 1474)=92 - KINDEX(2, 1474)=505 - KINDEX(1, 1475)=95 - KINDEX(2, 1475)=505 - KINDEX(1, 1476)=101 - KINDEX(2, 1476)=505 - KINDEX(1, 1477)=120 - KINDEX(2, 1477)=505 - KINDEX(1, 1478)=101 - KINDEX(2, 1478)=506 - KINDEX(1, 1479)=108 - KINDEX(2, 1479)=506 - KINDEX(1, 1480)=124 - KINDEX(2, 1480)=506 - KINDEX(1, 1481)=101 - KINDEX(2, 1481)=507 - KINDEX(1, 1482)=108 - KINDEX(2, 1482)=507 - KINDEX(1, 1483)=124 - KINDEX(2, 1483)=507 - KINDEX(1, 1484)=98 - KINDEX(2, 1484)=508 - KINDEX(1, 1485)=99 - KINDEX(2, 1485)=508 - KINDEX(1, 1486)=101 - KINDEX(2, 1486)=508 - KINDEX(1, 1487)=113 - KINDEX(2, 1487)=508 - KINDEX(1, 1488)=124 - KINDEX(2, 1488)=508 - KINDEX(1, 1489)=120 - KINDEX(2, 1489)=509 - KINDEX(1, 1490)=122 - KINDEX(2, 1490)=509 - KINDEX(1, 1491)=99 - KINDEX(2, 1491)=510 - KINDEX(1, 1492)=122 - KINDEX(2, 1492)=510 - KINDEX(1, 1493)=123 - KINDEX(2, 1493)=510 - KINDEX(1, 1494)=121 - KINDEX(2, 1494)=511 - KINDEX(1, 1495)=122 - KINDEX(2, 1495)=511 - KINDEX(1, 1496)=101 - KINDEX(2, 1496)=512 - KINDEX(1, 1497)=102 - KINDEX(2, 1497)=512 - KINDEX(1, 1498)=123 - KINDEX(2, 1498)=512 - KINDEX(1, 1499)=98 - KINDEX(2, 1499)=513 - KINDEX(1, 1500)=102 - KINDEX(2, 1500)=513 - KINDEX(1, 1501)=121 - KINDEX(2, 1501)=513 - KINDEX(1, 1502)=88 - KINDEX(2, 1502)=514 - KINDEX(1, 1503)=101 - KINDEX(2, 1503)=514 - KINDEX(1, 1504)=102 - KINDEX(2, 1504)=514 - KINDEX(1, 1505)=89 - KINDEX(2, 1505)=515 - KINDEX(1, 1506)=101 - KINDEX(2, 1506)=515 - KINDEX(1, 1507)=102 - KINDEX(2, 1507)=515 - KINDEX(1, 1508)=99 - KINDEX(2, 1508)=516 - KINDEX(1, 1509)=103 - KINDEX(2, 1509)=516 - KINDEX(1, 1510)=108 - KINDEX(2, 1510)=516 - KINDEX(1, 1511)=101 - KINDEX(2, 1511)=517 - KINDEX(1, 1512)=103 - KINDEX(2, 1512)=517 - KINDEX(1, 1513)=108 - KINDEX(2, 1513)=517 - KINDEX(1, 1514)=120 - KINDEX(2, 1514)=517 - KINDEX(1, 1515)=89 - KINDEX(2, 1515)=518 - KINDEX(1, 1516)=99 - KINDEX(2, 1516)=518 - KINDEX(1, 1517)=104 - KINDEX(2, 1517)=518 - KINDEX(1, 1518)=109 - KINDEX(2, 1518)=518 - KINDEX(1, 1519)=114 - KINDEX(2, 1519)=518 - KINDEX(1, 1520)=98 - KINDEX(2, 1520)=519 - KINDEX(1, 1521)=99 - KINDEX(2, 1521)=519 - KINDEX(1, 1522)=105 - KINDEX(2, 1522)=519 - KINDEX(1, 1523)=108 - KINDEX(2, 1523)=519 - KINDEX(1, 1524)=98 - KINDEX(2, 1524)=520 - KINDEX(1, 1525)=99 - KINDEX(2, 1525)=520 - KINDEX(1, 1526)=106 - KINDEX(2, 1526)=520 - KINDEX(1, 1527)=109 - KINDEX(2, 1527)=520 - KINDEX(1, 1528)=98 - KINDEX(2, 1528)=521 - KINDEX(1, 1529)=99 - KINDEX(2, 1529)=521 - KINDEX(1, 1530)=107 - KINDEX(2, 1530)=521 - KINDEX(1, 1531)=109 - KINDEX(2, 1531)=521 - KINDEX(1, 1532)=112 - KINDEX(2, 1532)=521 - KINDEX(1, 1533)=98 - KINDEX(2, 1533)=522 - KINDEX(1, 1534)=99 - KINDEX(2, 1534)=522 - KINDEX(1, 1535)=108 - KINDEX(2, 1535)=522 - KINDEX(1, 1536)=113 - KINDEX(2, 1536)=522 - KINDEX(1, 1537)=98 - KINDEX(2, 1537)=523 - KINDEX(1, 1538)=100 - KINDEX(2, 1538)=523 - KINDEX(1, 1539)=103 - KINDEX(2, 1539)=523 - KINDEX(1, 1540)=104 - KINDEX(2, 1540)=523 - KINDEX(1, 1541)=109 - KINDEX(2, 1541)=523 - KINDEX(1, 1542)=98 - KINDEX(2, 1542)=524 - KINDEX(1, 1543)=99 - KINDEX(2, 1543)=524 - KINDEX(1, 1544)=110 - KINDEX(2, 1544)=524 - KINDEX(1, 1545)=116 - KINDEX(2, 1545)=524 - KINDEX(1, 1546)=98 - KINDEX(2, 1546)=525 - KINDEX(1, 1547)=99 - KINDEX(2, 1547)=525 - KINDEX(1, 1548)=111 - KINDEX(2, 1548)=525 - KINDEX(1, 1549)=117 - KINDEX(2, 1549)=525 - KINDEX(1, 1550)=89 - KINDEX(2, 1550)=526 - KINDEX(1, 1551)=98 - KINDEX(2, 1551)=526 - KINDEX(1, 1552)=99 - KINDEX(2, 1552)=526 - KINDEX(1, 1553)=100 - KINDEX(2, 1553)=526 - KINDEX(1, 1554)=103 - KINDEX(2, 1554)=526 - KINDEX(1, 1555)=108 - KINDEX(2, 1555)=526 - KINDEX(1, 1556)=109 - KINDEX(2, 1556)=526 - KINDEX(1, 1557)=111 - KINDEX(2, 1557)=526 - KINDEX(1, 1558)=112 - KINDEX(2, 1558)=526 - KINDEX(1, 1559)=117 - KINDEX(2, 1559)=526 - KINDEX(1, 1560)=98 - KINDEX(2, 1560)=527 - KINDEX(1, 1561)=99 - KINDEX(2, 1561)=527 - KINDEX(1, 1562)=100 - KINDEX(2, 1562)=527 - KINDEX(1, 1563)=113 - KINDEX(2, 1563)=527 - KINDEX(1, 1564)=89 - KINDEX(2, 1564)=528 - KINDEX(1, 1565)=98 - KINDEX(2, 1565)=528 - KINDEX(1, 1566)=114 - KINDEX(2, 1566)=528 - KINDEX(1, 1567)=116 - KINDEX(2, 1567)=528 - KINDEX(1, 1568)=98 - KINDEX(2, 1568)=529 - KINDEX(1, 1569)=100 - KINDEX(2, 1569)=529 - KINDEX(1, 1570)=104 - KINDEX(2, 1570)=529 - KINDEX(1, 1571)=115 - KINDEX(2, 1571)=529 - KINDEX(1, 1572)=89 - KINDEX(2, 1572)=530 - KINDEX(1, 1573)=98 - KINDEX(2, 1573)=530 - KINDEX(1, 1574)=99 - KINDEX(2, 1574)=530 - KINDEX(1, 1575)=109 - KINDEX(2, 1575)=530 - KINDEX(1, 1576)=115 - KINDEX(2, 1576)=530 - KINDEX(1, 1577)=117 - KINDEX(2, 1577)=530 - KINDEX(1, 1578)=119 - KINDEX(2, 1578)=530 - KINDEX(1, 1579)=98 - KINDEX(2, 1579)=531 - KINDEX(1, 1580)=99 - KINDEX(2, 1580)=531 - KINDEX(1, 1581)=100 - KINDEX(2, 1581)=531 - KINDEX(1, 1582)=118 - KINDEX(2, 1582)=531 - KINDEX(1, 1583)=89 - KINDEX(2, 1583)=532 - KINDEX(1, 1584)=98 - KINDEX(2, 1584)=532 - KINDEX(1, 1585)=99 - KINDEX(2, 1585)=532 - KINDEX(1, 1586)=100 - KINDEX(2, 1586)=532 - KINDEX(1, 1587)=109 - KINDEX(2, 1587)=532 - KINDEX(1, 1588)=117 - KINDEX(2, 1588)=532 - KINDEX(1, 1589)=119 - KINDEX(2, 1589)=532 - KINDEX(1, 1590)=98 - KINDEX(2, 1590)=533 - KINDEX(1, 1591)=99 - KINDEX(2, 1591)=533 - KINDEX(1, 1592)=116 - KINDEX(2, 1592)=533 - KINDEX(1, 1593)=118 - KINDEX(2, 1593)=533 - KINDEX(1, 1594)=89 - KINDEX(2, 1594)=534 - KINDEX(1, 1595)=98 - KINDEX(2, 1595)=534 - KINDEX(1, 1596)=99 - KINDEX(2, 1596)=534 - KINDEX(1, 1597)=100 - KINDEX(2, 1597)=534 - KINDEX(1, 1598)=116 - KINDEX(2, 1598)=534 - KINDEX(1, 1599)=98 - KINDEX(2, 1599)=535 - KINDEX(1, 1600)=119 - KINDEX(2, 1600)=535 - KINDEX(1, 1601)=126 - KINDEX(2, 1601)=536 - KINDEX(1, 1602)=135 - KINDEX(2, 1602)=536 - KINDEX(1, 1603)=126 - KINDEX(2, 1603)=537 - KINDEX(1, 1604)=135 - KINDEX(2, 1604)=537 - KINDEX(1, 1605)=135 - KINDEX(2, 1605)=538 - KINDEX(1, 1606)=136 - KINDEX(2, 1606)=538 - KINDEX(1, 1607)=126 - KINDEX(2, 1607)=539 - KINDEX(1, 1608)=135 - KINDEX(2, 1608)=539 - KINDEX(1, 1609)=136 - KINDEX(2, 1609)=539 - KINDEX(1, 1610)=126 - KINDEX(2, 1610)=540 - KINDEX(1, 1611)=136 - KINDEX(2, 1611)=540 - KINDEX(1, 1612)=125 - KINDEX(2, 1612)=541 - KINDEX(1, 1613)=135 - KINDEX(2, 1613)=541 - KINDEX(1, 1614)=136 - KINDEX(2, 1614)=541 - KINDEX(1, 1615)=135 - KINDEX(2, 1615)=542 - KINDEX(1, 1616)=138 - KINDEX(2, 1616)=542 - KINDEX(1, 1617)=157 - KINDEX(2, 1617)=542 - KINDEX(1, 1618)=128 - KINDEX(2, 1618)=543 - KINDEX(1, 1619)=131 - KINDEX(2, 1619)=543 - KINDEX(1, 1620)=135 - KINDEX(2, 1620)=543 - KINDEX(1, 1621)=128 - KINDEX(2, 1621)=544 - KINDEX(1, 1622)=133 - KINDEX(2, 1622)=544 - KINDEX(1, 1623)=136 - KINDEX(2, 1623)=544 - KINDEX(1, 1624)=128 - KINDEX(2, 1624)=545 - KINDEX(1, 1625)=133 - KINDEX(2, 1625)=545 - KINDEX(1, 1626)=136 - KINDEX(2, 1626)=545 - KINDEX(1, 1627)=131 - KINDEX(2, 1627)=546 - KINDEX(1, 1628)=133 - KINDEX(2, 1628)=546 - KINDEX(1, 1629)=132 - KINDEX(2, 1629)=547 - KINDEX(1, 1630)=133 - KINDEX(2, 1630)=547 - KINDEX(1, 1631)=138 - KINDEX(2, 1631)=547 - KINDEX(1, 1632)=139 - KINDEX(2, 1632)=547 - KINDEX(1, 1633)=128 - KINDEX(2, 1633)=548 - KINDEX(1, 1634)=132 - KINDEX(2, 1634)=548 - KINDEX(1, 1635)=135 - KINDEX(2, 1635)=548 - KINDEX(1, 1636)=130 - KINDEX(2, 1636)=549 - KINDEX(1, 1637)=132 - KINDEX(2, 1637)=549 - KINDEX(1, 1638)=129 - KINDEX(2, 1638)=550 - KINDEX(1, 1639)=132 - KINDEX(2, 1639)=550 - KINDEX(1, 1640)=139 - KINDEX(2, 1640)=550 - KINDEX(1, 1641)=158 - KINDEX(2, 1641)=550 - KINDEX(1, 1642)=129 - KINDEX(2, 1642)=551 - KINDEX(1, 1643)=132 - KINDEX(2, 1643)=551 - KINDEX(1, 1644)=138 - KINDEX(2, 1644)=551 - KINDEX(1, 1645)=157 - KINDEX(2, 1645)=551 - KINDEX(1, 1646)=138 - KINDEX(2, 1646)=552 - KINDEX(1, 1647)=145 - KINDEX(2, 1647)=552 - KINDEX(1, 1648)=161 - KINDEX(2, 1648)=552 - KINDEX(1, 1649)=138 - KINDEX(2, 1649)=553 - KINDEX(1, 1650)=145 - KINDEX(2, 1650)=553 - KINDEX(1, 1651)=161 - KINDEX(2, 1651)=553 - KINDEX(1, 1652)=135 - KINDEX(2, 1652)=554 - KINDEX(1, 1653)=136 - KINDEX(2, 1653)=554 - KINDEX(1, 1654)=138 - KINDEX(2, 1654)=554 - KINDEX(1, 1655)=150 - KINDEX(2, 1655)=554 - KINDEX(1, 1656)=161 - KINDEX(2, 1656)=554 - KINDEX(1, 1657)=157 - KINDEX(2, 1657)=555 - KINDEX(1, 1658)=159 - KINDEX(2, 1658)=555 - KINDEX(1, 1659)=136 - KINDEX(2, 1659)=556 - KINDEX(1, 1660)=159 - KINDEX(2, 1660)=556 - KINDEX(1, 1661)=160 - KINDEX(2, 1661)=556 - KINDEX(1, 1662)=158 - KINDEX(2, 1662)=557 - KINDEX(1, 1663)=159 - KINDEX(2, 1663)=557 - KINDEX(1, 1664)=138 - KINDEX(2, 1664)=558 - KINDEX(1, 1665)=139 - KINDEX(2, 1665)=558 - KINDEX(1, 1666)=160 - KINDEX(2, 1666)=558 - KINDEX(1, 1667)=135 - KINDEX(2, 1667)=559 - KINDEX(1, 1668)=139 - KINDEX(2, 1668)=559 - KINDEX(1, 1669)=158 - KINDEX(2, 1669)=559 - KINDEX(1, 1670)=125 - KINDEX(2, 1670)=560 - KINDEX(1, 1671)=138 - KINDEX(2, 1671)=560 - KINDEX(1, 1672)=139 - KINDEX(2, 1672)=560 - KINDEX(1, 1673)=126 - KINDEX(2, 1673)=561 - KINDEX(1, 1674)=138 - KINDEX(2, 1674)=561 - KINDEX(1, 1675)=139 - KINDEX(2, 1675)=561 - KINDEX(1, 1676)=136 - KINDEX(2, 1676)=562 - KINDEX(1, 1677)=140 - KINDEX(2, 1677)=562 - KINDEX(1, 1678)=145 - KINDEX(2, 1678)=562 - KINDEX(1, 1679)=138 - KINDEX(2, 1679)=563 - KINDEX(1, 1680)=140 - KINDEX(2, 1680)=563 - KINDEX(1, 1681)=145 - KINDEX(2, 1681)=563 - KINDEX(1, 1682)=157 - KINDEX(2, 1682)=563 - KINDEX(1, 1683)=126 - KINDEX(2, 1683)=564 - KINDEX(1, 1684)=136 - KINDEX(2, 1684)=564 - KINDEX(1, 1685)=141 - KINDEX(2, 1685)=564 - KINDEX(1, 1686)=146 - KINDEX(2, 1686)=564 - KINDEX(1, 1687)=151 - KINDEX(2, 1687)=564 - KINDEX(1, 1688)=135 - KINDEX(2, 1688)=565 - KINDEX(1, 1689)=136 - KINDEX(2, 1689)=565 - KINDEX(1, 1690)=142 - KINDEX(2, 1690)=565 - KINDEX(1, 1691)=145 - KINDEX(2, 1691)=565 - KINDEX(1, 1692)=135 - KINDEX(2, 1692)=566 - KINDEX(1, 1693)=136 - KINDEX(2, 1693)=566 - KINDEX(1, 1694)=143 - KINDEX(2, 1694)=566 - KINDEX(1, 1695)=146 - KINDEX(2, 1695)=566 - KINDEX(1, 1696)=135 - KINDEX(2, 1696)=567 - KINDEX(1, 1697)=136 - KINDEX(2, 1697)=567 - KINDEX(1, 1698)=144 - KINDEX(2, 1698)=567 - KINDEX(1, 1699)=146 - KINDEX(2, 1699)=567 - KINDEX(1, 1700)=149 - KINDEX(2, 1700)=567 - KINDEX(1, 1701)=135 - KINDEX(2, 1701)=568 - KINDEX(1, 1702)=136 - KINDEX(2, 1702)=568 - KINDEX(1, 1703)=145 - KINDEX(2, 1703)=568 - KINDEX(1, 1704)=150 - KINDEX(2, 1704)=568 - KINDEX(1, 1705)=135 - KINDEX(2, 1705)=569 - KINDEX(1, 1706)=137 - KINDEX(2, 1706)=569 - KINDEX(1, 1707)=140 - KINDEX(2, 1707)=569 - KINDEX(1, 1708)=141 - KINDEX(2, 1708)=569 - KINDEX(1, 1709)=146 - KINDEX(2, 1709)=569 - KINDEX(1, 1710)=135 - KINDEX(2, 1710)=570 - KINDEX(1, 1711)=136 - KINDEX(2, 1711)=570 - KINDEX(1, 1712)=147 - KINDEX(2, 1712)=570 - KINDEX(1, 1713)=153 - KINDEX(2, 1713)=570 - KINDEX(1, 1714)=135 - KINDEX(2, 1714)=571 - KINDEX(1, 1715)=136 - KINDEX(2, 1715)=571 - KINDEX(1, 1716)=148 - KINDEX(2, 1716)=571 - KINDEX(1, 1717)=154 - KINDEX(2, 1717)=571 - KINDEX(1, 1718)=126 - KINDEX(2, 1718)=572 - KINDEX(1, 1719)=135 - KINDEX(2, 1719)=572 - KINDEX(1, 1720)=136 - KINDEX(2, 1720)=572 - KINDEX(1, 1721)=137 - KINDEX(2, 1721)=572 - KINDEX(1, 1722)=140 - KINDEX(2, 1722)=572 - KINDEX(1, 1723)=145 - KINDEX(2, 1723)=572 - KINDEX(1, 1724)=146 - KINDEX(2, 1724)=572 - KINDEX(1, 1725)=148 - KINDEX(2, 1725)=572 - KINDEX(1, 1726)=149 - KINDEX(2, 1726)=572 - KINDEX(1, 1727)=154 - KINDEX(2, 1727)=572 - KINDEX(1, 1728)=135 - KINDEX(2, 1728)=573 - KINDEX(1, 1729)=136 - KINDEX(2, 1729)=573 - KINDEX(1, 1730)=137 - KINDEX(2, 1730)=573 - KINDEX(1, 1731)=150 - KINDEX(2, 1731)=573 - KINDEX(1, 1732)=126 - KINDEX(2, 1732)=574 - KINDEX(1, 1733)=135 - KINDEX(2, 1733)=574 - KINDEX(1, 1734)=151 - KINDEX(2, 1734)=574 - KINDEX(1, 1735)=153 - KINDEX(2, 1735)=574 - KINDEX(1, 1736)=135 - KINDEX(2, 1736)=575 - KINDEX(1, 1737)=137 - KINDEX(2, 1737)=575 - KINDEX(1, 1738)=141 - KINDEX(2, 1738)=575 - KINDEX(1, 1739)=152 - KINDEX(2, 1739)=575 - KINDEX(1, 1740)=126 - KINDEX(2, 1740)=576 - KINDEX(1, 1741)=135 - KINDEX(2, 1741)=576 - KINDEX(1, 1742)=136 - KINDEX(2, 1742)=576 - KINDEX(1, 1743)=146 - KINDEX(2, 1743)=576 - KINDEX(1, 1744)=152 - KINDEX(2, 1744)=576 - KINDEX(1, 1745)=154 - KINDEX(2, 1745)=576 - KINDEX(1, 1746)=156 - KINDEX(2, 1746)=576 - KINDEX(1, 1747)=135 - KINDEX(2, 1747)=577 - KINDEX(1, 1748)=136 - KINDEX(2, 1748)=577 - KINDEX(1, 1749)=137 - KINDEX(2, 1749)=577 - KINDEX(1, 1750)=155 - KINDEX(2, 1750)=577 - KINDEX(1, 1751)=126 - KINDEX(2, 1751)=578 - KINDEX(1, 1752)=135 - KINDEX(2, 1752)=578 - KINDEX(1, 1753)=136 - KINDEX(2, 1753)=578 - KINDEX(1, 1754)=137 - KINDEX(2, 1754)=578 - KINDEX(1, 1755)=146 - KINDEX(2, 1755)=578 - KINDEX(1, 1756)=154 - KINDEX(2, 1756)=578 - KINDEX(1, 1757)=156 - KINDEX(2, 1757)=578 - KINDEX(1, 1758)=135 - KINDEX(2, 1758)=579 - KINDEX(1, 1759)=136 - KINDEX(2, 1759)=579 - KINDEX(1, 1760)=153 - KINDEX(2, 1760)=579 - KINDEX(1, 1761)=155 - KINDEX(2, 1761)=579 - KINDEX(1, 1762)=126 - KINDEX(2, 1762)=580 - KINDEX(1, 1763)=135 - KINDEX(2, 1763)=580 - KINDEX(1, 1764)=136 - KINDEX(2, 1764)=580 - KINDEX(1, 1765)=137 - KINDEX(2, 1765)=580 - KINDEX(1, 1766)=153 - KINDEX(2, 1766)=580 - KINDEX(1, 1767)=135 - KINDEX(2, 1767)=581 - KINDEX(1, 1768)=156 - KINDEX(2, 1768)=581 + KINDEX(2, 560)=122 + KINDEX(1, 561)=19 + KINDEX(2, 561)=122 + KINDEX(1, 562)=22 + KINDEX(2, 562)=122 + KINDEX(1, 563)=23 + KINDEX(2, 563)=122 + KINDEX(1, 564)=24 + KINDEX(2, 564)=122 + KINDEX(1, 565)=25 + KINDEX(2, 565)=122 + KINDEX(1, 566)=35 + KINDEX(2, 566)=122 + KINDEX(1, 567)=4 + KINDEX(2, 567)=123 + KINDEX(1, 568)=5 + KINDEX(2, 568)=123 + KINDEX(1, 569)=15 + KINDEX(2, 569)=123 + KINDEX(1, 570)=25 + KINDEX(2, 570)=123 + KINDEX(1, 571)=38 + KINDEX(2, 571)=123 + KINDEX(1, 572)=4 + KINDEX(2, 572)=124 + KINDEX(1, 573)=5 + KINDEX(2, 573)=124 + KINDEX(1, 574)=15 + KINDEX(2, 574)=124 + KINDEX(1, 575)=22 + KINDEX(2, 575)=124 + KINDEX(1, 576)=23 + KINDEX(2, 576)=124 + KINDEX(1, 577)=25 + KINDEX(2, 577)=124 + KINDEX(1, 578)=32 + KINDEX(2, 578)=124 + KINDEX(1, 579)=39 + KINDEX(2, 579)=124 + KINDEX(1, 580)=41 + KINDEX(2, 580)=124 + KINDEX(1, 581)=4 + KINDEX(2, 581)=125 + KINDEX(1, 582)=5 + KINDEX(2, 582)=125 + KINDEX(1, 583)=15 + KINDEX(2, 583)=125 + KINDEX(1, 584)=22 + KINDEX(2, 584)=125 + KINDEX(1, 585)=23 + KINDEX(2, 585)=125 + KINDEX(1, 586)=24 + KINDEX(2, 586)=125 + KINDEX(1, 587)=26 + KINDEX(2, 587)=125 + KINDEX(1, 588)=40 + KINDEX(2, 588)=125 + KINDEX(1, 589)=15 + KINDEX(2, 589)=126 + KINDEX(1, 590)=29 + KINDEX(2, 590)=126 + KINDEX(1, 591)=41 + KINDEX(2, 591)=126 + KINDEX(1, 592)=15 + KINDEX(2, 592)=127 + KINDEX(1, 593)=22 + KINDEX(2, 593)=127 + KINDEX(1, 594)=32 + KINDEX(2, 594)=127 + KINDEX(1, 595)=41 + KINDEX(2, 595)=127 + KINDEX(1, 596)=32 + KINDEX(2, 596)=128 + KINDEX(1, 597)=39 + KINDEX(2, 597)=128 + KINDEX(1, 598)=41 + KINDEX(2, 598)=128 + KINDEX(1, 599)=41 + KINDEX(2, 599)=129 + KINDEX(1, 600)=3 + KINDEX(2, 600)=130 + KINDEX(1, 601)=4 + KINDEX(2, 601)=130 + KINDEX(1, 602)=41 + KINDEX(2, 602)=130 + KINDEX(1, 603)=4 + KINDEX(2, 603)=131 + KINDEX(1, 604)=5 + KINDEX(2, 604)=131 + KINDEX(1, 605)=41 + KINDEX(2, 605)=131 + KINDEX(1, 606)=12 + KINDEX(2, 606)=132 RETURN -END SUBROUTINE CH_NONZEROTERMS_AQ +END SUBROUTINE CH_NONZEROTERMS_GAZ !! END SUBROUTINE CH_NONZEROTERMS ! @@ -102595,1860 +38611,6 @@ ELSE END IF CONTAINS !! -!! ####################### - SUBROUTINE CH_SPARSE_GAZ -!! ####################### -!! -!!*** *MODD_CH_SPARSE* -!! -!! PURPOSE -!! ------- -! calculation of the non-zero matrix elements in the Jacobian -!! -!!** METHOD -!! ------ -!! A 2D array KSPARSE of DIMESNSION(2,*) is returned, containing -!! the indices of the non-zero matrix elements in the Jacobian. -!! -!! REFERENCE -!! --------- -!! none -!! -!! AUTHOR -!! ------ -!! Karsten Suhre (LA) -!! -!! MODIFICATIONS -!! ------------- -!! Original 26/07/96 -!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) -!! -!!---------------------------------------------------------------------- -!! -!! EXTERNAL -!! -------- -!! none -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -!! none -!! -!! EXPLICIT ARGUMENTS -!! ------------------ -IMPLICIT NONE -!! -!! LOCAL VARIABLES -!! --------------- -!! none -!!---------------------------------------------------------------------- -!! -!! EXECUTABLE STATEMENTS -!! --------------------- -! check if output array is large enough -IF (KSPARSEDIM.LT.599) THEN - STOP 'CH_SPARSE ERROR: array KSPARSE is too small!' -END IF -!NO/NO - KSPARSE(1, 1)=1 - KSPARSE(2, 1)=1 -!NO/NO2 - KSPARSE(1, 2)=1 - KSPARSE(2, 2)=2 -!NO/O3 - KSPARSE(1, 3)=1 - KSPARSE(2, 3)=3 -!NO/HONO - KSPARSE(1, 4)=1 - KSPARSE(2, 4)=4 -!NO/NO3 - KSPARSE(1, 5)=1 - KSPARSE(2, 5)=8 -!NO/HO2 - KSPARSE(1, 6)=1 - KSPARSE(2, 6)=10 -!NO/OH - KSPARSE(1, 7)=1 - KSPARSE(2, 7)=15 -!NO/RO2T - KSPARSE(1, 8)=1 - KSPARSE(2, 8)=85 -!NO/RO21 - KSPARSE(1, 9)=1 - KSPARSE(2, 9)=86 -!NO/RO25 - KSPARSE(1, 10)=1 - KSPARSE(2, 10)=87 -!NO2/NO - KSPARSE(1, 11)=2 - KSPARSE(2, 11)=1 -!NO2/NO2 - KSPARSE(1, 12)=2 - KSPARSE(2, 12)=2 -!NO2/O3 - KSPARSE(1, 13)=2 - KSPARSE(2, 13)=3 -!NO2/HONO - KSPARSE(1, 14)=2 - KSPARSE(2, 14)=4 -!NO2/HNO4 - KSPARSE(1, 15)=2 - KSPARSE(2, 15)=6 -!NO2/N2O5 - KSPARSE(1, 16)=2 - KSPARSE(2, 16)=7 -!NO2/NO3 - KSPARSE(1, 17)=2 - KSPARSE(2, 17)=8 -!NO2/HO2 - KSPARSE(1, 18)=2 - KSPARSE(2, 18)=10 -!NO2/OH - KSPARSE(1, 19)=2 - KSPARSE(2, 19)=15 -!NO2/APAN - KSPARSE(1, 20)=2 - KSPARSE(2, 20)=76 -!NO2/PAN1 - KSPARSE(1, 21)=2 - KSPARSE(2, 21)=77 -!NO2/PAN2 - KSPARSE(1, 22)=2 - KSPARSE(2, 22)=78 -!NO2/PAN3 - KSPARSE(1, 23)=2 - KSPARSE(2, 23)=79 -!NO2/PAN4 - KSPARSE(1, 24)=2 - KSPARSE(2, 24)=80 -!NO2/PAN6 - KSPARSE(1, 25)=2 - KSPARSE(2, 25)=81 -!NO2/PAN7 - KSPARSE(1, 26)=2 - KSPARSE(2, 26)=82 -!NO2/PAN8 - KSPARSE(1, 27)=2 - KSPARSE(2, 27)=83 -!NO2/PN10 - KSPARSE(1, 28)=2 - KSPARSE(2, 28)=84 -!NO2/RO2T - KSPARSE(1, 29)=2 - KSPARSE(2, 29)=85 -!NO2/RO21 - KSPARSE(1, 30)=2 - KSPARSE(2, 30)=86 -!NO2/RO25 - KSPARSE(1, 31)=2 - KSPARSE(2, 31)=87 -!O3/NO - KSPARSE(1, 32)=3 - KSPARSE(2, 32)=1 -!O3/NO2 - KSPARSE(1, 33)=3 - KSPARSE(2, 33)=2 -!O3/O3 - KSPARSE(1, 34)=3 - KSPARSE(2, 34)=3 -!O3/NO3 - KSPARSE(1, 35)=3 - KSPARSE(2, 35)=8 -!O3/HO2 - KSPARSE(1, 36)=3 - KSPARSE(2, 36)=10 -!O3/OH - KSPARSE(1, 37)=3 - KSPARSE(2, 37)=15 -!O3/ETHE - KSPARSE(1, 38)=3 - KSPARSE(2, 38)=16 -!O3/OLEL - KSPARSE(1, 39)=3 - KSPARSE(2, 39)=17 -!O3/OLEH - KSPARSE(1, 40)=3 - KSPARSE(2, 40)=18 -!O3/ARAL - KSPARSE(1, 41)=3 - KSPARSE(2, 41)=25 -!O3/ISOP - KSPARSE(1, 42)=3 - KSPARSE(2, 42)=35 -!O3/BIOL - KSPARSE(1, 43)=3 - KSPARSE(2, 43)=36 -!O3/BIOH - KSPARSE(1, 44)=3 - KSPARSE(2, 44)=37 -!O3/MVK - KSPARSE(1, 45)=3 - KSPARSE(2, 45)=39 -!O3/MCR - KSPARSE(1, 46)=3 - KSPARSE(2, 46)=40 -!O3/RPG2 - KSPARSE(1, 47)=3 - KSPARSE(2, 47)=50 -!O3/RP18 - KSPARSE(1, 48)=3 - KSPARSE(2, 48)=51 -!O3/RPG3 - KSPARSE(1, 49)=3 - KSPARSE(2, 49)=52 -!O3/RPR7 - KSPARSE(1, 50)=3 - KSPARSE(2, 50)=62 -!O3/RPG7 - KSPARSE(1, 51)=3 - KSPARSE(2, 51)=63 -!O3/RPR5 - KSPARSE(1, 52)=3 - KSPARSE(2, 52)=70 -!O3/RP11 - KSPARSE(1, 53)=3 - KSPARSE(2, 53)=73 -!O3/RPRL - KSPARSE(1, 54)=3 - KSPARSE(2, 54)=75 -!HONO/NO - KSPARSE(1, 55)=4 - KSPARSE(2, 55)=1 -!HONO/NO2 - KSPARSE(1, 56)=4 - KSPARSE(2, 56)=2 -!HONO/HONO - KSPARSE(1, 57)=4 - KSPARSE(2, 57)=4 -!HONO/OH - KSPARSE(1, 58)=4 - KSPARSE(2, 58)=15 -!HNO3/NO2 - KSPARSE(1, 59)=5 - KSPARSE(2, 59)=2 -!HNO3/HNO3 - KSPARSE(1, 60)=5 - KSPARSE(2, 60)=5 -!HNO3/N2O5 - KSPARSE(1, 61)=5 - KSPARSE(2, 61)=7 -!HNO3/NO3 - KSPARSE(1, 62)=5 - KSPARSE(2, 62)=8 -!HNO3/HO2 - KSPARSE(1, 63)=5 - KSPARSE(2, 63)=10 -!HNO3/OH - KSPARSE(1, 64)=5 - KSPARSE(2, 64)=15 -!HNO3/AROO - KSPARSE(1, 65)=5 - KSPARSE(2, 65)=24 -!HNO3/ARAL - KSPARSE(1, 66)=5 - KSPARSE(2, 66)=25 -!HNO3/HCHO - KSPARSE(1, 67)=5 - KSPARSE(2, 67)=28 -!HNO3/ALD2 - KSPARSE(1, 68)=5 - KSPARSE(2, 68)=29 -!HNO3/MCR - KSPARSE(1, 69)=5 - KSPARSE(2, 69)=40 -!HNO3/MGLY - KSPARSE(1, 70)=5 - KSPARSE(2, 70)=41 -!HNO3/RPR3 - KSPARSE(1, 71)=5 - KSPARSE(2, 71)=57 -!HNO3/RPR4 - KSPARSE(1, 72)=5 - KSPARSE(2, 72)=61 -!HNO3/RPR1 - KSPARSE(1, 73)=5 - KSPARSE(2, 73)=69 -!HNO3/RPR8 - KSPARSE(1, 74)=5 - KSPARSE(2, 74)=71 -!HNO3/RP16 - KSPARSE(1, 75)=5 - KSPARSE(2, 75)=74 -!HNO4/NO2 - KSPARSE(1, 76)=6 - KSPARSE(2, 76)=2 -!HNO4/HNO4 - KSPARSE(1, 77)=6 - KSPARSE(2, 77)=6 -!HNO4/HO2 - KSPARSE(1, 78)=6 - KSPARSE(2, 78)=10 -!HNO4/OH - KSPARSE(1, 79)=6 - KSPARSE(2, 79)=15 -!N2O5/NO2 - KSPARSE(1, 80)=7 - KSPARSE(2, 80)=2 -!N2O5/N2O5 - KSPARSE(1, 81)=7 - KSPARSE(2, 81)=7 -!N2O5/NO3 - KSPARSE(1, 82)=7 - KSPARSE(2, 82)=8 -!NO3/NO - KSPARSE(1, 83)=8 - KSPARSE(2, 83)=1 -!NO3/NO2 - KSPARSE(1, 84)=8 - KSPARSE(2, 84)=2 -!NO3/O3 - KSPARSE(1, 85)=8 - KSPARSE(2, 85)=3 -!NO3/HNO3 - KSPARSE(1, 86)=8 - KSPARSE(2, 86)=5 -!NO3/N2O5 - KSPARSE(1, 87)=8 - KSPARSE(2, 87)=7 -!NO3/NO3 - KSPARSE(1, 88)=8 - KSPARSE(2, 88)=8 -!NO3/HO2 - KSPARSE(1, 89)=8 - KSPARSE(2, 89)=10 -!NO3/OH - KSPARSE(1, 90)=8 - KSPARSE(2, 90)=15 -!NO3/ETHE - KSPARSE(1, 91)=8 - KSPARSE(2, 91)=16 -!NO3/OLEL - KSPARSE(1, 92)=8 - KSPARSE(2, 92)=17 -!NO3/OLEH - KSPARSE(1, 93)=8 - KSPARSE(2, 93)=18 -!NO3/AROO - KSPARSE(1, 94)=8 - KSPARSE(2, 94)=24 -!NO3/ARAL - KSPARSE(1, 95)=8 - KSPARSE(2, 95)=25 -!NO3/HCHO - KSPARSE(1, 96)=8 - KSPARSE(2, 96)=28 -!NO3/ALD2 - KSPARSE(1, 97)=8 - KSPARSE(2, 97)=29 -!NO3/ISOP - KSPARSE(1, 98)=8 - KSPARSE(2, 98)=35 -!NO3/BIOL - KSPARSE(1, 99)=8 - KSPARSE(2, 99)=36 -!NO3/BIOH - KSPARSE(1, 100)=8 - KSPARSE(2, 100)=37 -!NO3/MCR - KSPARSE(1, 101)=8 - KSPARSE(2, 101)=40 -!NO3/MGLY - KSPARSE(1, 102)=8 - KSPARSE(2, 102)=41 -!NO3/RPR3 - KSPARSE(1, 103)=8 - KSPARSE(2, 103)=57 -!NO3/RPR4 - KSPARSE(1, 104)=8 - KSPARSE(2, 104)=61 -!NO3/RPR1 - KSPARSE(1, 105)=8 - KSPARSE(2, 105)=69 -!NO3/RPR8 - KSPARSE(1, 106)=8 - KSPARSE(2, 106)=71 -!NO3/RP16 - KSPARSE(1, 107)=8 - KSPARSE(2, 107)=74 -!NH3/NH3 - KSPARSE(1, 108)=9 - KSPARSE(2, 108)=9 -!NH3/OH - KSPARSE(1, 109)=9 - KSPARSE(2, 109)=15 -!HO2/NO - KSPARSE(1, 110)=10 - KSPARSE(2, 110)=1 -!HO2/NO2 - KSPARSE(1, 111)=10 - KSPARSE(2, 111)=2 -!HO2/O3 - KSPARSE(1, 112)=10 - KSPARSE(2, 112)=3 -!HO2/HONO - KSPARSE(1, 113)=10 - KSPARSE(2, 113)=4 -!HO2/HNO4 - KSPARSE(1, 114)=10 - KSPARSE(2, 114)=6 -!HO2/NO3 - KSPARSE(1, 115)=10 - KSPARSE(2, 115)=8 -!HO2/HO2 - KSPARSE(1, 116)=10 - KSPARSE(2, 116)=10 -!HO2/CO - KSPARSE(1, 117)=10 - KSPARSE(2, 117)=11 -!HO2/H2O2 - KSPARSE(1, 118)=10 - KSPARSE(2, 118)=12 -!HO2/SO2 - KSPARSE(1, 119)=10 - KSPARSE(2, 119)=13 -!HO2/OH - KSPARSE(1, 120)=10 - KSPARSE(2, 120)=15 -!HO2/ETHE - KSPARSE(1, 121)=10 - KSPARSE(2, 121)=16 -!HO2/OLEL - KSPARSE(1, 122)=10 - KSPARSE(2, 122)=17 -!HO2/OLEH - KSPARSE(1, 123)=10 - KSPARSE(2, 123)=18 -!HO2/AROH - KSPARSE(1, 124)=10 - KSPARSE(2, 124)=22 -!HO2/AROL - KSPARSE(1, 125)=10 - KSPARSE(2, 125)=23 -!HO2/AROO - KSPARSE(1, 126)=10 - KSPARSE(2, 126)=24 -!HO2/ARAL - KSPARSE(1, 127)=10 - KSPARSE(2, 127)=25 -!HO2/ARAC - KSPARSE(1, 128)=10 - KSPARSE(2, 128)=26 -!HO2/PAH - KSPARSE(1, 129)=10 - KSPARSE(2, 129)=27 -!HO2/HCHO - KSPARSE(1, 130)=10 - KSPARSE(2, 130)=28 -!HO2/ALD2 - KSPARSE(1, 131)=10 - KSPARSE(2, 131)=29 -!HO2/MEOH - KSPARSE(1, 132)=10 - KSPARSE(2, 132)=32 -!HO2/ETOH - KSPARSE(1, 133)=10 - KSPARSE(2, 133)=33 -!HO2/ISOP - KSPARSE(1, 134)=10 - KSPARSE(2, 134)=35 -!HO2/BIOL - KSPARSE(1, 135)=10 - KSPARSE(2, 135)=36 -!HO2/MVK - KSPARSE(1, 136)=10 - KSPARSE(2, 136)=39 -!HO2/MCR - KSPARSE(1, 137)=10 - KSPARSE(2, 137)=40 -!HO2/MGLY - KSPARSE(1, 138)=10 - KSPARSE(2, 138)=41 -!HO2/ORA1 - KSPARSE(1, 139)=10 - KSPARSE(2, 139)=43 -!HO2/RPR3 - KSPARSE(1, 140)=10 - KSPARSE(2, 140)=57 -!HO2/RPR1 - KSPARSE(1, 141)=10 - KSPARSE(2, 141)=69 -!HO2/RPR8 - KSPARSE(1, 142)=10 - KSPARSE(2, 142)=71 -!HO2/RP10 - KSPARSE(1, 143)=10 - KSPARSE(2, 143)=72 -!HO2/RP16 - KSPARSE(1, 144)=10 - KSPARSE(2, 144)=74 -!HO2/RO2T - KSPARSE(1, 145)=10 - KSPARSE(2, 145)=85 -!HO2/RO21 - KSPARSE(1, 146)=10 - KSPARSE(2, 146)=86 -!HO2/RO25 - KSPARSE(1, 147)=10 - KSPARSE(2, 147)=87 -!CO/NO - KSPARSE(1, 148)=11 - KSPARSE(2, 148)=1 -!CO/O3 - KSPARSE(1, 149)=11 - KSPARSE(2, 149)=3 -!CO/NO3 - KSPARSE(1, 150)=11 - KSPARSE(2, 150)=8 -!CO/HO2 - KSPARSE(1, 151)=11 - KSPARSE(2, 151)=10 -!CO/CO - KSPARSE(1, 152)=11 - KSPARSE(2, 152)=11 -!CO/OH - KSPARSE(1, 153)=11 - KSPARSE(2, 153)=15 -!CO/ETHE - KSPARSE(1, 154)=11 - KSPARSE(2, 154)=16 -!CO/OLEL - KSPARSE(1, 155)=11 - KSPARSE(2, 155)=17 -!CO/OLEH - KSPARSE(1, 156)=11 - KSPARSE(2, 156)=18 -!CO/HCHO - KSPARSE(1, 157)=11 - KSPARSE(2, 157)=28 -!CO/ALD2 - KSPARSE(1, 158)=11 - KSPARSE(2, 158)=29 -!CO/ISOP - KSPARSE(1, 159)=11 - KSPARSE(2, 159)=35 -!CO/BIOL - KSPARSE(1, 160)=11 - KSPARSE(2, 160)=36 -!CO/BIOH - KSPARSE(1, 161)=11 - KSPARSE(2, 161)=37 -!CO/MVK - KSPARSE(1, 162)=11 - KSPARSE(2, 162)=39 -!CO/MCR - KSPARSE(1, 163)=11 - KSPARSE(2, 163)=40 -!CO/MGLY - KSPARSE(1, 164)=11 - KSPARSE(2, 164)=41 -!CO/RPR3 - KSPARSE(1, 165)=11 - KSPARSE(2, 165)=57 -!CO/RPR1 - KSPARSE(1, 166)=11 - KSPARSE(2, 166)=69 -!CO/RPR8 - KSPARSE(1, 167)=11 - KSPARSE(2, 167)=71 -!CO/RP16 - KSPARSE(1, 168)=11 - KSPARSE(2, 168)=74 -!CO/RO2T - KSPARSE(1, 169)=11 - KSPARSE(2, 169)=85 -!H2O2/O3 - KSPARSE(1, 170)=12 - KSPARSE(2, 170)=3 -!H2O2/HO2 - KSPARSE(1, 171)=12 - KSPARSE(2, 171)=10 -!H2O2/H2O2 - KSPARSE(1, 172)=12 - KSPARSE(2, 172)=12 -!H2O2/OH - KSPARSE(1, 173)=12 - KSPARSE(2, 173)=15 -!H2O2/BIOL - KSPARSE(1, 174)=12 - KSPARSE(2, 174)=36 -!H2O2/BIOH - KSPARSE(1, 175)=12 - KSPARSE(2, 175)=37 -!SO2/SO2 - KSPARSE(1, 176)=13 - KSPARSE(2, 176)=13 -!SO2/OH - KSPARSE(1, 177)=13 - KSPARSE(2, 177)=15 -!H2SO4/SO2 - KSPARSE(1, 178)=14 - KSPARSE(2, 178)=13 -!H2SO4/H2SO4 - KSPARSE(1, 179)=14 - KSPARSE(2, 179)=14 -!H2SO4/OH - KSPARSE(1, 180)=14 - KSPARSE(2, 180)=15 -!OH/NO - KSPARSE(1, 181)=15 - KSPARSE(2, 181)=1 -!OH/NO2 - KSPARSE(1, 182)=15 - KSPARSE(2, 182)=2 -!OH/O3 - KSPARSE(1, 183)=15 - KSPARSE(2, 183)=3 -!OH/HONO - KSPARSE(1, 184)=15 - KSPARSE(2, 184)=4 -!OH/HNO3 - KSPARSE(1, 185)=15 - KSPARSE(2, 185)=5 -!OH/HNO4 - KSPARSE(1, 186)=15 - KSPARSE(2, 186)=6 -!OH/NO3 - KSPARSE(1, 187)=15 - KSPARSE(2, 187)=8 -!OH/NH3 - KSPARSE(1, 188)=15 - KSPARSE(2, 188)=9 -!OH/HO2 - KSPARSE(1, 189)=15 - KSPARSE(2, 189)=10 -!OH/CO - KSPARSE(1, 190)=15 - KSPARSE(2, 190)=11 -!OH/H2O2 - KSPARSE(1, 191)=15 - KSPARSE(2, 191)=12 -!OH/SO2 - KSPARSE(1, 192)=15 - KSPARSE(2, 192)=13 -!OH/OH - KSPARSE(1, 193)=15 - KSPARSE(2, 193)=15 -!OH/ETHE - KSPARSE(1, 194)=15 - KSPARSE(2, 194)=16 -!OH/OLEL - KSPARSE(1, 195)=15 - KSPARSE(2, 195)=17 -!OH/OLEH - KSPARSE(1, 196)=15 - KSPARSE(2, 196)=18 -!OH/ALKL - KSPARSE(1, 197)=15 - KSPARSE(2, 197)=19 -!OH/ALKM - KSPARSE(1, 198)=15 - KSPARSE(2, 198)=20 -!OH/ALKH - KSPARSE(1, 199)=15 - KSPARSE(2, 199)=21 -!OH/AROH - KSPARSE(1, 200)=15 - KSPARSE(2, 200)=22 -!OH/AROL - KSPARSE(1, 201)=15 - KSPARSE(2, 201)=23 -!OH/AROO - KSPARSE(1, 202)=15 - KSPARSE(2, 202)=24 -!OH/ARAL - KSPARSE(1, 203)=15 - KSPARSE(2, 203)=25 -!OH/ARAC - KSPARSE(1, 204)=15 - KSPARSE(2, 204)=26 -!OH/PAH - KSPARSE(1, 205)=15 - KSPARSE(2, 205)=27 -!OH/HCHO - KSPARSE(1, 206)=15 - KSPARSE(2, 206)=28 -!OH/ALD2 - KSPARSE(1, 207)=15 - KSPARSE(2, 207)=29 -!OH/KETL - KSPARSE(1, 208)=15 - KSPARSE(2, 208)=30 -!OH/KETH - KSPARSE(1, 209)=15 - KSPARSE(2, 209)=31 -!OH/MEOH - KSPARSE(1, 210)=15 - KSPARSE(2, 210)=32 -!OH/ETOH - KSPARSE(1, 211)=15 - KSPARSE(2, 211)=33 -!OH/ALCH - KSPARSE(1, 212)=15 - KSPARSE(2, 212)=34 -!OH/ISOP - KSPARSE(1, 213)=15 - KSPARSE(2, 213)=35 -!OH/BIOL - KSPARSE(1, 214)=15 - KSPARSE(2, 214)=36 -!OH/BIOH - KSPARSE(1, 215)=15 - KSPARSE(2, 215)=37 -!OH/MTBE - KSPARSE(1, 216)=15 - KSPARSE(2, 216)=38 -!OH/MVK - KSPARSE(1, 217)=15 - KSPARSE(2, 217)=39 -!OH/MCR - KSPARSE(1, 218)=15 - KSPARSE(2, 218)=40 -!OH/MGLY - KSPARSE(1, 219)=15 - KSPARSE(2, 219)=41 -!OH/ORA1 - KSPARSE(1, 220)=15 - KSPARSE(2, 220)=43 -!OH/ORA2 - KSPARSE(1, 221)=15 - KSPARSE(2, 221)=44 -!OH/ACID - KSPARSE(1, 222)=15 - KSPARSE(2, 222)=45 -!OH/RPG2 - KSPARSE(1, 223)=15 - KSPARSE(2, 223)=50 -!OH/RP18 - KSPARSE(1, 224)=15 - KSPARSE(2, 224)=51 -!OH/RPG3 - KSPARSE(1, 225)=15 - KSPARSE(2, 225)=52 -!OH/RPR3 - KSPARSE(1, 226)=15 - KSPARSE(2, 226)=57 -!OH/RPR7 - KSPARSE(1, 227)=15 - KSPARSE(2, 227)=62 -!OH/RPG7 - KSPARSE(1, 228)=15 - KSPARSE(2, 228)=63 -!OH/RPR1 - KSPARSE(1, 229)=15 - KSPARSE(2, 229)=69 -!OH/RPR5 - KSPARSE(1, 230)=15 - KSPARSE(2, 230)=70 -!OH/RPR8 - KSPARSE(1, 231)=15 - KSPARSE(2, 231)=71 -!OH/RP10 - KSPARSE(1, 232)=15 - KSPARSE(2, 232)=72 -!OH/RP11 - KSPARSE(1, 233)=15 - KSPARSE(2, 233)=73 -!OH/RP16 - KSPARSE(1, 234)=15 - KSPARSE(2, 234)=74 -!OH/RPRL - KSPARSE(1, 235)=15 - KSPARSE(2, 235)=75 -!OH/RO2T - KSPARSE(1, 236)=15 - KSPARSE(2, 236)=85 -!OH/RO21 - KSPARSE(1, 237)=15 - KSPARSE(2, 237)=86 -!OH/RO25 - KSPARSE(1, 238)=15 - KSPARSE(2, 238)=87 -!ETHE/O3 - KSPARSE(1, 239)=16 - KSPARSE(2, 239)=3 -!ETHE/NO3 - KSPARSE(1, 240)=16 - KSPARSE(2, 240)=8 -!ETHE/OH - KSPARSE(1, 241)=16 - KSPARSE(2, 241)=15 -!ETHE/ETHE - KSPARSE(1, 242)=16 - KSPARSE(2, 242)=16 -!OLEL/NO - KSPARSE(1, 243)=17 - KSPARSE(2, 243)=1 -!OLEL/O3 - KSPARSE(1, 244)=17 - KSPARSE(2, 244)=3 -!OLEL/NO3 - KSPARSE(1, 245)=17 - KSPARSE(2, 245)=8 -!OLEL/HO2 - KSPARSE(1, 246)=17 - KSPARSE(2, 246)=10 -!OLEL/OH - KSPARSE(1, 247)=17 - KSPARSE(2, 247)=15 -!OLEL/OLEL - KSPARSE(1, 248)=17 - KSPARSE(2, 248)=17 -!OLEL/ISOP - KSPARSE(1, 249)=17 - KSPARSE(2, 249)=35 -!OLEH/O3 - KSPARSE(1, 250)=18 - KSPARSE(2, 250)=3 -!OLEH/NO3 - KSPARSE(1, 251)=18 - KSPARSE(2, 251)=8 -!OLEH/OH - KSPARSE(1, 252)=18 - KSPARSE(2, 252)=15 -!OLEH/OLEH - KSPARSE(1, 253)=18 - KSPARSE(2, 253)=18 -!ALKL/NO - KSPARSE(1, 254)=19 - KSPARSE(2, 254)=1 -!ALKL/O3 - KSPARSE(1, 255)=19 - KSPARSE(2, 255)=3 -!ALKL/HO2 - KSPARSE(1, 256)=19 - KSPARSE(2, 256)=10 -!ALKL/OH - KSPARSE(1, 257)=19 - KSPARSE(2, 257)=15 -!ALKL/OLEL - KSPARSE(1, 258)=19 - KSPARSE(2, 258)=17 -!ALKL/ALKL - KSPARSE(1, 259)=19 - KSPARSE(2, 259)=19 -!ALKL/RO2T - KSPARSE(1, 260)=19 - KSPARSE(2, 260)=85 -!ALKL/RO25 - KSPARSE(1, 261)=19 - KSPARSE(2, 261)=87 -!ALKM/O3 - KSPARSE(1, 262)=20 - KSPARSE(2, 262)=3 -!ALKM/OH - KSPARSE(1, 263)=20 - KSPARSE(2, 263)=15 -!ALKM/OLEH - KSPARSE(1, 264)=20 - KSPARSE(2, 264)=18 -!ALKM/ALKM - KSPARSE(1, 265)=20 - KSPARSE(2, 265)=20 -!ALKH/OH - KSPARSE(1, 266)=21 - KSPARSE(2, 266)=15 -!ALKH/ALKH - KSPARSE(1, 267)=21 - KSPARSE(2, 267)=21 -!AROH/OH - KSPARSE(1, 268)=22 - KSPARSE(2, 268)=15 -!AROH/AROH - KSPARSE(1, 269)=22 - KSPARSE(2, 269)=22 -!AROL/OH - KSPARSE(1, 270)=23 - KSPARSE(2, 270)=15 -!AROL/AROL - KSPARSE(1, 271)=23 - KSPARSE(2, 271)=23 -!AROO/NO3 - KSPARSE(1, 272)=24 - KSPARSE(2, 272)=8 -!AROO/OH - KSPARSE(1, 273)=24 - KSPARSE(2, 273)=15 -!AROO/AROH - KSPARSE(1, 274)=24 - KSPARSE(2, 274)=22 -!AROO/AROL - KSPARSE(1, 275)=24 - KSPARSE(2, 275)=23 -!AROO/AROO - KSPARSE(1, 276)=24 - KSPARSE(2, 276)=24 -!ARAL/NO - KSPARSE(1, 277)=25 - KSPARSE(2, 277)=1 -!ARAL/NO3 - KSPARSE(1, 278)=25 - KSPARSE(2, 278)=8 -!ARAL/HO2 - KSPARSE(1, 279)=25 - KSPARSE(2, 279)=10 -!ARAL/OH - KSPARSE(1, 280)=25 - KSPARSE(2, 280)=15 -!ARAL/ARAL - KSPARSE(1, 281)=25 - KSPARSE(2, 281)=25 -!ARAL/RO2T - KSPARSE(1, 282)=25 - KSPARSE(2, 282)=85 -!ARAC/NO3 - KSPARSE(1, 283)=26 - KSPARSE(2, 283)=8 -!ARAC/OH - KSPARSE(1, 284)=26 - KSPARSE(2, 284)=15 -!ARAC/ARAL - KSPARSE(1, 285)=26 - KSPARSE(2, 285)=25 -!ARAC/ARAC - KSPARSE(1, 286)=26 - KSPARSE(2, 286)=26 -!PAH/OH - KSPARSE(1, 287)=27 - KSPARSE(2, 287)=15 -!PAH/PAH - KSPARSE(1, 288)=27 - KSPARSE(2, 288)=27 -!HCHO/NO - KSPARSE(1, 289)=28 - KSPARSE(2, 289)=1 -!HCHO/O3 - KSPARSE(1, 290)=28 - KSPARSE(2, 290)=3 -!HCHO/NO3 - KSPARSE(1, 291)=28 - KSPARSE(2, 291)=8 -!HCHO/HO2 - KSPARSE(1, 292)=28 - KSPARSE(2, 292)=10 -!HCHO/OH - KSPARSE(1, 293)=28 - KSPARSE(2, 293)=15 -!HCHO/ETHE - KSPARSE(1, 294)=28 - KSPARSE(2, 294)=16 -!HCHO/OLEL - KSPARSE(1, 295)=28 - KSPARSE(2, 295)=17 -!HCHO/OLEH - KSPARSE(1, 296)=28 - KSPARSE(2, 296)=18 -!HCHO/HCHO - KSPARSE(1, 297)=28 - KSPARSE(2, 297)=28 -!HCHO/MEOH - KSPARSE(1, 298)=28 - KSPARSE(2, 298)=32 -!HCHO/ISOP - KSPARSE(1, 299)=28 - KSPARSE(2, 299)=35 -!HCHO/MVK - KSPARSE(1, 300)=28 - KSPARSE(2, 300)=39 -!HCHO/MCR - KSPARSE(1, 301)=28 - KSPARSE(2, 301)=40 -!HCHO/RO2T - KSPARSE(1, 302)=28 - KSPARSE(2, 302)=85 -!HCHO/RO21 - KSPARSE(1, 303)=28 - KSPARSE(2, 303)=86 -!ALD2/NO - KSPARSE(1, 304)=29 - KSPARSE(2, 304)=1 -!ALD2/O3 - KSPARSE(1, 305)=29 - KSPARSE(2, 305)=3 -!ALD2/NO3 - KSPARSE(1, 306)=29 - KSPARSE(2, 306)=8 -!ALD2/HO2 - KSPARSE(1, 307)=29 - KSPARSE(2, 307)=10 -!ALD2/OH - KSPARSE(1, 308)=29 - KSPARSE(2, 308)=15 -!ALD2/OLEL - KSPARSE(1, 309)=29 - KSPARSE(2, 309)=17 -!ALD2/ALD2 - KSPARSE(1, 310)=29 - KSPARSE(2, 310)=29 -!ALD2/ETOH - KSPARSE(1, 311)=29 - KSPARSE(2, 311)=33 -!ALD2/ISOP - KSPARSE(1, 312)=29 - KSPARSE(2, 312)=35 -!ALD2/MVK - KSPARSE(1, 313)=29 - KSPARSE(2, 313)=39 -!ALD2/MCR - KSPARSE(1, 314)=29 - KSPARSE(2, 314)=40 -!ALD2/RO2T - KSPARSE(1, 315)=29 - KSPARSE(2, 315)=85 -!ALD2/RO25 - KSPARSE(1, 316)=29 - KSPARSE(2, 316)=87 -!KETL/NO - KSPARSE(1, 317)=30 - KSPARSE(2, 317)=1 -!KETL/HO2 - KSPARSE(1, 318)=30 - KSPARSE(2, 318)=10 -!KETL/OH - KSPARSE(1, 319)=30 - KSPARSE(2, 319)=15 -!KETL/KETL - KSPARSE(1, 320)=30 - KSPARSE(2, 320)=30 -!KETL/MVK - KSPARSE(1, 321)=30 - KSPARSE(2, 321)=39 -!KETL/RO2T - KSPARSE(1, 322)=30 - KSPARSE(2, 322)=85 -!KETH/OH - KSPARSE(1, 323)=31 - KSPARSE(2, 323)=15 -!KETH/KETH - KSPARSE(1, 324)=31 - KSPARSE(2, 324)=31 -!MEOH/OH - KSPARSE(1, 325)=32 - KSPARSE(2, 325)=15 -!MEOH/MEOH - KSPARSE(1, 326)=32 - KSPARSE(2, 326)=32 -!ETOH/OH - KSPARSE(1, 327)=33 - KSPARSE(2, 327)=15 -!ETOH/ETOH - KSPARSE(1, 328)=33 - KSPARSE(2, 328)=33 -!ALCH/OH - KSPARSE(1, 329)=34 - KSPARSE(2, 329)=15 -!ALCH/ALCH - KSPARSE(1, 330)=34 - KSPARSE(2, 330)=34 -!ISOP/O3 - KSPARSE(1, 331)=35 - KSPARSE(2, 331)=3 -!ISOP/NO3 - KSPARSE(1, 332)=35 - KSPARSE(2, 332)=8 -!ISOP/OH - KSPARSE(1, 333)=35 - KSPARSE(2, 333)=15 -!ISOP/ISOP - KSPARSE(1, 334)=35 - KSPARSE(2, 334)=35 -!BIOL/O3 - KSPARSE(1, 335)=36 - KSPARSE(2, 335)=3 -!BIOL/NO3 - KSPARSE(1, 336)=36 - KSPARSE(2, 336)=8 -!BIOL/OH - KSPARSE(1, 337)=36 - KSPARSE(2, 337)=15 -!BIOL/BIOL - KSPARSE(1, 338)=36 - KSPARSE(2, 338)=36 -!BIOH/O3 - KSPARSE(1, 339)=37 - KSPARSE(2, 339)=3 -!BIOH/NO3 - KSPARSE(1, 340)=37 - KSPARSE(2, 340)=8 -!BIOH/OH - KSPARSE(1, 341)=37 - KSPARSE(2, 341)=15 -!BIOH/BIOH - KSPARSE(1, 342)=37 - KSPARSE(2, 342)=37 -!MTBE/OH - KSPARSE(1, 343)=38 - KSPARSE(2, 343)=15 -!MTBE/MTBE - KSPARSE(1, 344)=38 - KSPARSE(2, 344)=38 -!MVK/NO - KSPARSE(1, 345)=39 - KSPARSE(2, 345)=1 -!MVK/O3 - KSPARSE(1, 346)=39 - KSPARSE(2, 346)=3 -!MVK/HO2 - KSPARSE(1, 347)=39 - KSPARSE(2, 347)=10 -!MVK/OH - KSPARSE(1, 348)=39 - KSPARSE(2, 348)=15 -!MVK/ISOP - KSPARSE(1, 349)=39 - KSPARSE(2, 349)=35 -!MVK/MVK - KSPARSE(1, 350)=39 - KSPARSE(2, 350)=39 -!MVK/RO2T - KSPARSE(1, 351)=39 - KSPARSE(2, 351)=85 -!MCR/NO - KSPARSE(1, 352)=40 - KSPARSE(2, 352)=1 -!MCR/O3 - KSPARSE(1, 353)=40 - KSPARSE(2, 353)=3 -!MCR/NO3 - KSPARSE(1, 354)=40 - KSPARSE(2, 354)=8 -!MCR/HO2 - KSPARSE(1, 355)=40 - KSPARSE(2, 355)=10 -!MCR/OH - KSPARSE(1, 356)=40 - KSPARSE(2, 356)=15 -!MCR/ISOP - KSPARSE(1, 357)=40 - KSPARSE(2, 357)=35 -!MCR/MCR - KSPARSE(1, 358)=40 - KSPARSE(2, 358)=40 -!MCR/RO2T - KSPARSE(1, 359)=40 - KSPARSE(2, 359)=85 -!MGLY/NO - KSPARSE(1, 360)=41 - KSPARSE(2, 360)=1 -!MGLY/O3 - KSPARSE(1, 361)=41 - KSPARSE(2, 361)=3 -!MGLY/NO3 - KSPARSE(1, 362)=41 - KSPARSE(2, 362)=8 -!MGLY/HO2 - KSPARSE(1, 363)=41 - KSPARSE(2, 363)=10 -!MGLY/OH - KSPARSE(1, 364)=41 - KSPARSE(2, 364)=15 -!MGLY/MVK - KSPARSE(1, 365)=41 - KSPARSE(2, 365)=39 -!MGLY/MCR - KSPARSE(1, 366)=41 - KSPARSE(2, 366)=40 -!MGLY/MGLY - KSPARSE(1, 367)=41 - KSPARSE(2, 367)=41 -!MGLY/RO2T - KSPARSE(1, 368)=41 - KSPARSE(2, 368)=85 -!ORA1/O3 - KSPARSE(1, 369)=43 - KSPARSE(2, 369)=3 -!ORA1/OH - KSPARSE(1, 370)=43 - KSPARSE(2, 370)=15 -!ORA1/ETHE - KSPARSE(1, 371)=43 - KSPARSE(2, 371)=16 -!ORA1/OLEL - KSPARSE(1, 372)=43 - KSPARSE(2, 372)=17 -!ORA1/ISOP - KSPARSE(1, 373)=43 - KSPARSE(2, 373)=35 -!ORA1/MVK - KSPARSE(1, 374)=43 - KSPARSE(2, 374)=39 -!ORA1/MCR - KSPARSE(1, 375)=43 - KSPARSE(2, 375)=40 -!ORA1/ORA1 - KSPARSE(1, 376)=43 - KSPARSE(2, 376)=43 -!ORA2/O3 - KSPARSE(1, 377)=44 - KSPARSE(2, 377)=3 -!ORA2/HO2 - KSPARSE(1, 378)=44 - KSPARSE(2, 378)=10 -!ORA2/OH - KSPARSE(1, 379)=44 - KSPARSE(2, 379)=15 -!ORA2/OLEL - KSPARSE(1, 380)=44 - KSPARSE(2, 380)=17 -!ORA2/ORA2 - KSPARSE(1, 381)=44 - KSPARSE(2, 381)=44 -!ACID/O3 - KSPARSE(1, 382)=45 - KSPARSE(2, 382)=3 -!ACID/HO2 - KSPARSE(1, 383)=45 - KSPARSE(2, 383)=10 -!ACID/OH - KSPARSE(1, 384)=45 - KSPARSE(2, 384)=15 -!ACID/OLEH - KSPARSE(1, 385)=45 - KSPARSE(2, 385)=18 -!ACID/ACID - KSPARSE(1, 386)=45 - KSPARSE(2, 386)=45 -!UR28/HO2 - KSPARSE(1, 387)=46 - KSPARSE(2, 387)=10 -!UR28/UR28 - KSPARSE(1, 388)=46 - KSPARSE(2, 388)=46 -!UR21/O3 - KSPARSE(1, 389)=47 - KSPARSE(2, 389)=3 -!UR21/HO2 - KSPARSE(1, 390)=47 - KSPARSE(2, 390)=10 -!UR21/MVK - KSPARSE(1, 391)=47 - KSPARSE(2, 391)=39 -!UR21/UR21 - KSPARSE(1, 392)=47 - KSPARSE(2, 392)=47 -!URG2/OH - KSPARSE(1, 393)=48 - KSPARSE(2, 393)=15 -!URG2/URG2 - KSPARSE(1, 394)=48 - KSPARSE(2, 394)=48 -!URG2/RPG2 - KSPARSE(1, 395)=48 - KSPARSE(2, 395)=50 -!URG2/RP18 - KSPARSE(1, 396)=48 - KSPARSE(2, 396)=51 -!UR26/OH - KSPARSE(1, 397)=49 - KSPARSE(2, 397)=15 -!UR26/UR26 - KSPARSE(1, 398)=49 - KSPARSE(2, 398)=49 -!UR26/RP11 - KSPARSE(1, 399)=49 - KSPARSE(2, 399)=73 -!RPG2/NO - KSPARSE(1, 400)=50 - KSPARSE(2, 400)=1 -!RPG2/HO2 - KSPARSE(1, 401)=50 - KSPARSE(2, 401)=10 -!RPG2/OH - KSPARSE(1, 402)=50 - KSPARSE(2, 402)=15 -!RPG2/RPG2 - KSPARSE(1, 403)=50 - KSPARSE(2, 403)=50 -!RPG2/RPG3 - KSPARSE(1, 404)=50 - KSPARSE(2, 404)=52 -!RPG2/RO2T - KSPARSE(1, 405)=50 - KSPARSE(2, 405)=85 -!RP18/OH - KSPARSE(1, 406)=51 - KSPARSE(2, 406)=15 -!RP18/RPG2 - KSPARSE(1, 407)=51 - KSPARSE(2, 407)=50 -!RP18/RP18 - KSPARSE(1, 408)=51 - KSPARSE(2, 408)=51 -!RPG3/NO - KSPARSE(1, 409)=52 - KSPARSE(2, 409)=1 -!RPG3/HO2 - KSPARSE(1, 410)=52 - KSPARSE(2, 410)=10 -!RPG3/OH - KSPARSE(1, 411)=52 - KSPARSE(2, 411)=15 -!RPG3/RPG3 - KSPARSE(1, 412)=52 - KSPARSE(2, 412)=52 -!RPG3/RO2T - KSPARSE(1, 413)=52 - KSPARSE(2, 413)=85 -!URG4/O3 - KSPARSE(1, 414)=53 - KSPARSE(2, 414)=3 -!URG4/HO2 - KSPARSE(1, 415)=53 - KSPARSE(2, 415)=10 -!URG4/BIOL - KSPARSE(1, 416)=53 - KSPARSE(2, 416)=36 -!URG4/URG4 - KSPARSE(1, 417)=53 - KSPARSE(2, 417)=53 -!UR8/O3 - KSPARSE(1, 418)=54 - KSPARSE(2, 418)=3 -!UR8/BIOH - KSPARSE(1, 419)=54 - KSPARSE(2, 419)=37 -!UR8/UR8 - KSPARSE(1, 420)=54 - KSPARSE(2, 420)=54 -!UR17/NO - KSPARSE(1, 421)=55 - KSPARSE(2, 421)=1 -!UR17/HO2 - KSPARSE(1, 422)=55 - KSPARSE(2, 422)=10 -!UR17/UR17 - KSPARSE(1, 423)=55 - KSPARSE(2, 423)=55 -!UR17/RO2T - KSPARSE(1, 424)=55 - KSPARSE(2, 424)=85 -!UR7/NO - KSPARSE(1, 425)=56 - KSPARSE(2, 425)=1 -!UR7/O3 - KSPARSE(1, 426)=56 - KSPARSE(2, 426)=3 -!UR7/HO2 - KSPARSE(1, 427)=56 - KSPARSE(2, 427)=10 -!UR7/BIOH - KSPARSE(1, 428)=56 - KSPARSE(2, 428)=37 -!UR7/UR7 - KSPARSE(1, 429)=56 - KSPARSE(2, 429)=56 -!UR7/RO2T - KSPARSE(1, 430)=56 - KSPARSE(2, 430)=85 -!RPR3/NO - KSPARSE(1, 431)=57 - KSPARSE(2, 431)=1 -!RPR3/O3 - KSPARSE(1, 432)=57 - KSPARSE(2, 432)=3 -!RPR3/NO3 - KSPARSE(1, 433)=57 - KSPARSE(2, 433)=8 -!RPR3/HO2 - KSPARSE(1, 434)=57 - KSPARSE(2, 434)=10 -!RPR3/OH - KSPARSE(1, 435)=57 - KSPARSE(2, 435)=15 -!RPR3/BIOL - KSPARSE(1, 436)=57 - KSPARSE(2, 436)=36 -!RPR3/RPR3 - KSPARSE(1, 437)=57 - KSPARSE(2, 437)=57 -!RPR3/RO2T - KSPARSE(1, 438)=57 - KSPARSE(2, 438)=85 -!URG6/NO - KSPARSE(1, 439)=58 - KSPARSE(2, 439)=1 -!URG6/OH - KSPARSE(1, 440)=58 - KSPARSE(2, 440)=15 -!URG6/URG6 - KSPARSE(1, 441)=58 - KSPARSE(2, 441)=58 -!URG6/RPG7 - KSPARSE(1, 442)=58 - KSPARSE(2, 442)=63 -!UR22/NO2 - KSPARSE(1, 443)=59 - KSPARSE(2, 443)=2 -!UR22/UR22 - KSPARSE(1, 444)=59 - KSPARSE(2, 444)=59 -!URG7/NO2 - KSPARSE(1, 445)=60 - KSPARSE(2, 445)=2 -!URG7/OH - KSPARSE(1, 446)=60 - KSPARSE(2, 446)=15 -!URG7/ARAC - KSPARSE(1, 447)=60 - KSPARSE(2, 447)=26 -!URG7/URG7 - KSPARSE(1, 448)=60 - KSPARSE(2, 448)=60 -!URG7/RPR7 - KSPARSE(1, 449)=60 - KSPARSE(2, 449)=62 -!URG7/RPR5 - KSPARSE(1, 450)=60 - KSPARSE(2, 450)=70 -!URG7/RPRL - KSPARSE(1, 451)=60 - KSPARSE(2, 451)=75 -!RPR4/NO2 - KSPARSE(1, 452)=61 - KSPARSE(2, 452)=2 -!RPR4/NO3 - KSPARSE(1, 453)=61 - KSPARSE(2, 453)=8 -!RPR4/RPR4 - KSPARSE(1, 454)=61 - KSPARSE(2, 454)=61 -!RPR7/NO - KSPARSE(1, 455)=62 - KSPARSE(2, 455)=1 -!RPR7/HO2 - KSPARSE(1, 456)=62 - KSPARSE(2, 456)=10 -!RPR7/OH - KSPARSE(1, 457)=62 - KSPARSE(2, 457)=15 -!RPR7/RPR7 - KSPARSE(1, 458)=62 - KSPARSE(2, 458)=62 -!RPR7/RPRL - KSPARSE(1, 459)=62 - KSPARSE(2, 459)=75 -!RPR7/RO2T - KSPARSE(1, 460)=62 - KSPARSE(2, 460)=85 -!RPG7/NO - KSPARSE(1, 461)=63 - KSPARSE(2, 461)=1 -!RPG7/HO2 - KSPARSE(1, 462)=63 - KSPARSE(2, 462)=10 -!RPG7/OH - KSPARSE(1, 463)=63 - KSPARSE(2, 463)=15 -!RPG7/RPG7 - KSPARSE(1, 464)=63 - KSPARSE(2, 464)=63 -!RPG7/RO2T - KSPARSE(1, 465)=63 - KSPARSE(2, 465)=85 -!URG8/NO - KSPARSE(1, 466)=64 - KSPARSE(2, 466)=1 -!URG8/NO2 - KSPARSE(1, 467)=64 - KSPARSE(2, 467)=2 -!URG8/OH - KSPARSE(1, 468)=64 - KSPARSE(2, 468)=15 -!URG8/PAH - KSPARSE(1, 469)=64 - KSPARSE(2, 469)=27 -!URG8/URG8 - KSPARSE(1, 470)=64 - KSPARSE(2, 470)=64 -!UR19/NO - KSPARSE(1, 471)=65 - KSPARSE(2, 471)=1 -!UR19/HO2 - KSPARSE(1, 472)=65 - KSPARSE(2, 472)=10 -!UR19/UR19 - KSPARSE(1, 473)=65 - KSPARSE(2, 473)=65 -!UR19/RO2T - KSPARSE(1, 474)=65 - KSPARSE(2, 474)=85 -!URG9/NO - KSPARSE(1, 475)=66 - KSPARSE(2, 475)=1 -!URG9/HO2 - KSPARSE(1, 476)=66 - KSPARSE(2, 476)=10 -!URG9/URG9 - KSPARSE(1, 477)=66 - KSPARSE(2, 477)=66 -!URG9/RO2T - KSPARSE(1, 478)=66 - KSPARSE(2, 478)=85 -!AP7/NO - KSPARSE(1, 479)=67 - KSPARSE(2, 479)=1 -!AP7/AP7 - KSPARSE(1, 480)=67 - KSPARSE(2, 480)=67 -!URG10/NO - KSPARSE(1, 481)=68 - KSPARSE(2, 481)=1 -!URG10/BIOL - KSPARSE(1, 482)=68 - KSPARSE(2, 482)=36 -!URG10/URG10 - KSPARSE(1, 483)=68 - KSPARSE(2, 483)=68 -!RPR1/NO - KSPARSE(1, 484)=69 - KSPARSE(2, 484)=1 -!RPR1/O3 - KSPARSE(1, 485)=69 - KSPARSE(2, 485)=3 -!RPR1/NO3 - KSPARSE(1, 486)=69 - KSPARSE(2, 486)=8 -!RPR1/HO2 - KSPARSE(1, 487)=69 - KSPARSE(2, 487)=10 -!RPR1/OH - KSPARSE(1, 488)=69 - KSPARSE(2, 488)=15 -!RPR1/OLEH - KSPARSE(1, 489)=69 - KSPARSE(2, 489)=18 -!RPR1/RPR1 - KSPARSE(1, 490)=69 - KSPARSE(2, 490)=69 -!RPR1/RO2T - KSPARSE(1, 491)=69 - KSPARSE(2, 491)=85 -!RPR5/NO2 - KSPARSE(1, 492)=70 - KSPARSE(2, 492)=2 -!RPR5/OH - KSPARSE(1, 493)=70 - KSPARSE(2, 493)=15 -!RPR5/RPR5 - KSPARSE(1, 494)=70 - KSPARSE(2, 494)=70 -!RPR8/NO - KSPARSE(1, 495)=71 - KSPARSE(2, 495)=1 -!RPR8/NO3 - KSPARSE(1, 496)=71 - KSPARSE(2, 496)=8 -!RPR8/HO2 - KSPARSE(1, 497)=71 - KSPARSE(2, 497)=10 -!RPR8/OH - KSPARSE(1, 498)=71 - KSPARSE(2, 498)=15 -!RPR8/RPR8 - KSPARSE(1, 499)=71 - KSPARSE(2, 499)=71 -!RPR8/RO2T - KSPARSE(1, 500)=71 - KSPARSE(2, 500)=85 -!RP10/NO - KSPARSE(1, 501)=72 - KSPARSE(2, 501)=1 -!RP10/HO2 - KSPARSE(1, 502)=72 - KSPARSE(2, 502)=10 -!RP10/OH - KSPARSE(1, 503)=72 - KSPARSE(2, 503)=15 -!RP10/RP10 - KSPARSE(1, 504)=72 - KSPARSE(2, 504)=72 -!RP10/RO2T - KSPARSE(1, 505)=72 - KSPARSE(2, 505)=85 -!RP11/NO - KSPARSE(1, 506)=73 - KSPARSE(2, 506)=1 -!RP11/HO2 - KSPARSE(1, 507)=73 - KSPARSE(2, 507)=10 -!RP11/OH - KSPARSE(1, 508)=73 - KSPARSE(2, 508)=15 -!RP11/RP11 - KSPARSE(1, 509)=73 - KSPARSE(2, 509)=73 -!RP11/RO2T - KSPARSE(1, 510)=73 - KSPARSE(2, 510)=85 -!RP16/NO3 - KSPARSE(1, 511)=74 - KSPARSE(2, 511)=8 -!RP16/HO2 - KSPARSE(1, 512)=74 - KSPARSE(2, 512)=10 -!RP16/OH - KSPARSE(1, 513)=74 - KSPARSE(2, 513)=15 -!RP16/RP16 - KSPARSE(1, 514)=74 - KSPARSE(2, 514)=74 -!RPRL/NO - KSPARSE(1, 515)=75 - KSPARSE(2, 515)=1 -!RPRL/HO2 - KSPARSE(1, 516)=75 - KSPARSE(2, 516)=10 -!RPRL/OH - KSPARSE(1, 517)=75 - KSPARSE(2, 517)=15 -!RPRL/ARAL - KSPARSE(1, 518)=75 - KSPARSE(2, 518)=25 -!RPRL/RPRL - KSPARSE(1, 519)=75 - KSPARSE(2, 519)=75 -!RPRL/RO2T - KSPARSE(1, 520)=75 - KSPARSE(2, 520)=85 -!APAN/NO2 - KSPARSE(1, 521)=76 - KSPARSE(2, 521)=2 -!APAN/APAN - KSPARSE(1, 522)=76 - KSPARSE(2, 522)=76 -!PAN1/NO2 - KSPARSE(1, 523)=77 - KSPARSE(2, 523)=2 -!PAN1/PAN1 - KSPARSE(1, 524)=77 - KSPARSE(2, 524)=77 -!PAN2/NO2 - KSPARSE(1, 525)=78 - KSPARSE(2, 525)=2 -!PAN2/PAN2 - KSPARSE(1, 526)=78 - KSPARSE(2, 526)=78 -!PAN3/NO2 - KSPARSE(1, 527)=79 - KSPARSE(2, 527)=2 -!PAN3/PAN3 - KSPARSE(1, 528)=79 - KSPARSE(2, 528)=79 -!PAN4/NO2 - KSPARSE(1, 529)=80 - KSPARSE(2, 529)=2 -!PAN4/PAN4 - KSPARSE(1, 530)=80 - KSPARSE(2, 530)=80 -!PAN6/NO2 - KSPARSE(1, 531)=81 - KSPARSE(2, 531)=2 -!PAN6/PAN6 - KSPARSE(1, 532)=81 - KSPARSE(2, 532)=81 -!PAN7/NO2 - KSPARSE(1, 533)=82 - KSPARSE(2, 533)=2 -!PAN7/PAN7 - KSPARSE(1, 534)=82 - KSPARSE(2, 534)=82 -!PAN8/NO2 - KSPARSE(1, 535)=83 - KSPARSE(2, 535)=2 -!PAN8/PAN8 - KSPARSE(1, 536)=83 - KSPARSE(2, 536)=83 -!PN10/NO2 - KSPARSE(1, 537)=84 - KSPARSE(2, 537)=2 -!PN10/PN10 - KSPARSE(1, 538)=84 - KSPARSE(2, 538)=84 -!RO2T/NO - KSPARSE(1, 539)=85 - KSPARSE(2, 539)=1 -!RO2T/O3 - KSPARSE(1, 540)=85 - KSPARSE(2, 540)=3 -!RO2T/NO3 - KSPARSE(1, 541)=85 - KSPARSE(2, 541)=8 -!RO2T/HO2 - KSPARSE(1, 542)=85 - KSPARSE(2, 542)=10 -!RO2T/OH - KSPARSE(1, 543)=85 - KSPARSE(2, 543)=15 -!RO2T/ETHE - KSPARSE(1, 544)=85 - KSPARSE(2, 544)=16 -!RO2T/OLEL - KSPARSE(1, 545)=85 - KSPARSE(2, 545)=17 -!RO2T/OLEH - KSPARSE(1, 546)=85 - KSPARSE(2, 546)=18 -!RO2T/ALKL - KSPARSE(1, 547)=85 - KSPARSE(2, 547)=19 -!RO2T/ALKM - KSPARSE(1, 548)=85 - KSPARSE(2, 548)=20 -!RO2T/ALKH - KSPARSE(1, 549)=85 - KSPARSE(2, 549)=21 -!RO2T/AROL - KSPARSE(1, 550)=85 - KSPARSE(2, 550)=23 -!RO2T/AROO - KSPARSE(1, 551)=85 - KSPARSE(2, 551)=24 -!RO2T/ARAL - KSPARSE(1, 552)=85 - KSPARSE(2, 552)=25 -!RO2T/ARAC - KSPARSE(1, 553)=85 - KSPARSE(2, 553)=26 -!RO2T/PAH - KSPARSE(1, 554)=85 - KSPARSE(2, 554)=27 -!RO2T/ALD2 - KSPARSE(1, 555)=85 - KSPARSE(2, 555)=29 -!RO2T/KETL - KSPARSE(1, 556)=85 - KSPARSE(2, 556)=30 -!RO2T/KETH - KSPARSE(1, 557)=85 - KSPARSE(2, 557)=31 -!RO2T/ETOH - KSPARSE(1, 558)=85 - KSPARSE(2, 558)=33 -!RO2T/ALCH - KSPARSE(1, 559)=85 - KSPARSE(2, 559)=34 -!RO2T/ISOP - KSPARSE(1, 560)=85 - KSPARSE(2, 560)=35 -!RO2T/BIOL - KSPARSE(1, 561)=85 - KSPARSE(2, 561)=36 -!RO2T/BIOH - KSPARSE(1, 562)=85 - KSPARSE(2, 562)=37 -!RO2T/MTBE - KSPARSE(1, 563)=85 - KSPARSE(2, 563)=38 -!RO2T/MVK - KSPARSE(1, 564)=85 - KSPARSE(2, 564)=39 -!RO2T/MCR - KSPARSE(1, 565)=85 - KSPARSE(2, 565)=40 -!RO2T/MGLY - KSPARSE(1, 566)=85 - KSPARSE(2, 566)=41 -!RO2T/RPR3 - KSPARSE(1, 567)=85 - KSPARSE(2, 567)=57 -!RO2T/RPR1 - KSPARSE(1, 568)=85 - KSPARSE(2, 568)=69 -!RO2T/RPR8 - KSPARSE(1, 569)=85 - KSPARSE(2, 569)=71 -!RO2T/RP16 - KSPARSE(1, 570)=85 - KSPARSE(2, 570)=74 -!RO2T/APAN - KSPARSE(1, 571)=85 - KSPARSE(2, 571)=76 -!RO2T/PAN1 - KSPARSE(1, 572)=85 - KSPARSE(2, 572)=77 -!RO2T/PAN2 - KSPARSE(1, 573)=85 - KSPARSE(2, 573)=78 -!RO2T/PAN3 - KSPARSE(1, 574)=85 - KSPARSE(2, 574)=79 -!RO2T/PAN4 - KSPARSE(1, 575)=85 - KSPARSE(2, 575)=80 -!RO2T/PAN6 - KSPARSE(1, 576)=85 - KSPARSE(2, 576)=81 -!RO2T/PAN7 - KSPARSE(1, 577)=85 - KSPARSE(2, 577)=82 -!RO2T/PAN8 - KSPARSE(1, 578)=85 - KSPARSE(2, 578)=83 -!RO2T/PN10 - KSPARSE(1, 579)=85 - KSPARSE(2, 579)=84 -!RO2T/RO2T - KSPARSE(1, 580)=85 - KSPARSE(2, 580)=85 -!RO2T/RO21 - KSPARSE(1, 581)=85 - KSPARSE(2, 581)=86 -!RO2T/RO25 - KSPARSE(1, 582)=85 - KSPARSE(2, 582)=87 -!RO21/NO - KSPARSE(1, 583)=86 - KSPARSE(2, 583)=1 -!RO21/HO2 - KSPARSE(1, 584)=86 - KSPARSE(2, 584)=10 -!RO21/OH - KSPARSE(1, 585)=86 - KSPARSE(2, 585)=15 -!RO21/ETHE - KSPARSE(1, 586)=86 - KSPARSE(2, 586)=16 -!RO21/RO2T - KSPARSE(1, 587)=86 - KSPARSE(2, 587)=85 -!RO21/RO21 - KSPARSE(1, 588)=86 - KSPARSE(2, 588)=86 -!RO25/NO - KSPARSE(1, 589)=87 - KSPARSE(2, 589)=1 -!RO25/O3 - KSPARSE(1, 590)=87 - KSPARSE(2, 590)=3 -!RO25/HO2 - KSPARSE(1, 591)=87 - KSPARSE(2, 591)=10 -!RO25/OH - KSPARSE(1, 592)=87 - KSPARSE(2, 592)=15 -!RO25/OLEL - KSPARSE(1, 593)=87 - KSPARSE(2, 593)=17 -!RO25/ALKL - KSPARSE(1, 594)=87 - KSPARSE(2, 594)=19 -!RO25/ALD2 - KSPARSE(1, 595)=87 - KSPARSE(2, 595)=29 -!RO25/KETL - KSPARSE(1, 596)=87 - KSPARSE(2, 596)=30 -!RO25/KETH - KSPARSE(1, 597)=87 - KSPARSE(2, 597)=31 -!RO25/RO2T - KSPARSE(1, 598)=87 - KSPARSE(2, 598)=85 -!RO25/RO25 - KSPARSE(1, 599)=87 - KSPARSE(2, 599)=87 -KSPARSEDIM = 599 -RETURN -END SUBROUTINE CH_SPARSE_GAZ -!! !! ####################### SUBROUTINE CH_SPARSE_AQ !! ####################### @@ -104499,3336 +38661,3651 @@ IMPLICIT NONE !! EXECUTABLE STATEMENTS !! --------------------- ! check if output array is large enough -IF (KSPARSEDIM.LT.1108) THEN +IF (KSPARSEDIM.LT.745) THEN STOP 'CH_SPARSE ERROR: array KSPARSE is too small!' END IF -!NO/NO +!O3/O3 KSPARSE(1, 1)=1 KSPARSE(2, 1)=1 -!NO/NO2 +!O3/NO KSPARSE(1, 2)=1 - KSPARSE(2, 2)=2 -!NO/O3 + KSPARSE(2, 2)=3 +!O3/NO2 KSPARSE(1, 3)=1 - KSPARSE(2, 3)=3 -!NO/HONO + KSPARSE(2, 3)=4 +!O3/OH KSPARSE(1, 4)=1 - KSPARSE(2, 4)=4 -!NO/NO3 + KSPARSE(2, 4)=14 +!O3/HO2 KSPARSE(1, 5)=1 - KSPARSE(2, 5)=8 -!NO/HO2 + KSPARSE(2, 5)=15 +!O3/ALKE KSPARSE(1, 6)=1 - KSPARSE(2, 6)=10 -!NO/OH + KSPARSE(2, 6)=19 +!O3/BIO KSPARSE(1, 7)=1 - KSPARSE(2, 7)=15 -!NO/RO2T + KSPARSE(2, 7)=20 +!O3/CARBO KSPARSE(1, 8)=1 - KSPARSE(2, 8)=85 -!NO/RO21 + KSPARSE(2, 8)=25 +!O3/PAN KSPARSE(1, 9)=1 - KSPARSE(2, 9)=86 -!NO/RO25 + KSPARSE(2, 9)=27 +!O3/ADD KSPARSE(1, 10)=1 - KSPARSE(2, 10)=87 -!NO/WC_NO + KSPARSE(2, 10)=37 +!O3/CARBOP KSPARSE(1, 11)=1 - KSPARSE(2, 11)=90 -!NO/WR_NO + KSPARSE(2, 11)=39 +!O3/WC_O3 KSPARSE(1, 12)=1 - KSPARSE(2, 12)=127 -!NO2/NO - KSPARSE(1, 13)=2 - KSPARSE(2, 13)=1 -!NO2/NO2 + KSPARSE(2, 12)=42 +!O3/WR_O3 + KSPARSE(1, 13)=1 + KSPARSE(2, 13)=67 +!H2O2/O3 KSPARSE(1, 14)=2 - KSPARSE(2, 14)=2 -!NO2/O3 + KSPARSE(2, 14)=1 +!H2O2/H2O2 KSPARSE(1, 15)=2 - KSPARSE(2, 15)=3 -!NO2/HONO + KSPARSE(2, 15)=2 +!H2O2/OH KSPARSE(1, 16)=2 - KSPARSE(2, 16)=4 -!NO2/HNO4 + KSPARSE(2, 16)=14 +!H2O2/HO2 KSPARSE(1, 17)=2 - KSPARSE(2, 17)=6 -!NO2/N2O5 + KSPARSE(2, 17)=15 +!H2O2/ALKE KSPARSE(1, 18)=2 - KSPARSE(2, 18)=7 -!NO2/NO3 + KSPARSE(2, 18)=19 +!H2O2/BIO KSPARSE(1, 19)=2 - KSPARSE(2, 19)=8 -!NO2/HO2 + KSPARSE(2, 19)=20 +!H2O2/WC_H2O2 KSPARSE(1, 20)=2 - KSPARSE(2, 20)=10 -!NO2/OH + KSPARSE(2, 20)=43 +!H2O2/WR_H2O2 KSPARSE(1, 21)=2 - KSPARSE(2, 21)=15 -!NO2/APAN - KSPARSE(1, 22)=2 - KSPARSE(2, 22)=76 -!NO2/PAN1 - KSPARSE(1, 23)=2 - KSPARSE(2, 23)=77 -!NO2/PAN2 - KSPARSE(1, 24)=2 - KSPARSE(2, 24)=78 -!NO2/PAN3 - KSPARSE(1, 25)=2 - KSPARSE(2, 25)=79 -!NO2/PAN4 - KSPARSE(1, 26)=2 - KSPARSE(2, 26)=80 -!NO2/PAN6 - KSPARSE(1, 27)=2 - KSPARSE(2, 27)=81 -!NO2/PAN7 - KSPARSE(1, 28)=2 - KSPARSE(2, 28)=82 -!NO2/PAN8 - KSPARSE(1, 29)=2 - KSPARSE(2, 29)=83 -!NO2/PN10 - KSPARSE(1, 30)=2 - KSPARSE(2, 30)=84 -!NO2/RO2T - KSPARSE(1, 31)=2 - KSPARSE(2, 31)=85 -!NO2/RO21 - KSPARSE(1, 32)=2 - KSPARSE(2, 32)=86 -!NO2/RO25 - KSPARSE(1, 33)=2 - KSPARSE(2, 33)=87 -!NO2/WC_NO2 - KSPARSE(1, 34)=2 - KSPARSE(2, 34)=91 -!NO2/WR_NO2 - KSPARSE(1, 35)=2 - KSPARSE(2, 35)=128 -!O3/NO + KSPARSE(2, 21)=68 +!NO/O3 + KSPARSE(1, 22)=3 + KSPARSE(2, 22)=1 +!NO/NO + KSPARSE(1, 23)=3 + KSPARSE(2, 23)=3 +!NO/NO2 + KSPARSE(1, 24)=3 + KSPARSE(2, 24)=4 +!NO/NO3 + KSPARSE(1, 25)=3 + KSPARSE(2, 25)=5 +!NO/HONO + KSPARSE(1, 26)=3 + KSPARSE(2, 26)=7 +!NO/OH + KSPARSE(1, 27)=3 + KSPARSE(2, 27)=14 +!NO/HO2 + KSPARSE(1, 28)=3 + KSPARSE(2, 28)=15 +!NO/MO2 + KSPARSE(1, 29)=3 + KSPARSE(2, 29)=32 +!NO/ALKAP + KSPARSE(1, 30)=3 + KSPARSE(2, 30)=33 +!NO/ALKEP + KSPARSE(1, 31)=3 + KSPARSE(2, 31)=34 +!NO/BIOP + KSPARSE(1, 32)=3 + KSPARSE(2, 32)=35 +!NO/AROP + KSPARSE(1, 33)=3 + KSPARSE(2, 33)=38 +!NO/CARBOP + KSPARSE(1, 34)=3 + KSPARSE(2, 34)=39 +!NO/OLN + KSPARSE(1, 35)=3 + KSPARSE(2, 35)=40 +!NO/XO2 KSPARSE(1, 36)=3 - KSPARSE(2, 36)=1 -!O3/NO2 + KSPARSE(2, 36)=41 +!NO/WC_NO KSPARSE(1, 37)=3 - KSPARSE(2, 37)=2 -!O3/O3 + KSPARSE(2, 37)=44 +!NO/WR_NO KSPARSE(1, 38)=3 - KSPARSE(2, 38)=3 -!O3/NO3 - KSPARSE(1, 39)=3 - KSPARSE(2, 39)=8 -!O3/HO2 - KSPARSE(1, 40)=3 - KSPARSE(2, 40)=10 -!O3/OH - KSPARSE(1, 41)=3 - KSPARSE(2, 41)=15 -!O3/ETHE - KSPARSE(1, 42)=3 - KSPARSE(2, 42)=16 -!O3/OLEL - KSPARSE(1, 43)=3 - KSPARSE(2, 43)=17 -!O3/OLEH - KSPARSE(1, 44)=3 - KSPARSE(2, 44)=18 -!O3/ARAL - KSPARSE(1, 45)=3 - KSPARSE(2, 45)=25 -!O3/ISOP - KSPARSE(1, 46)=3 - KSPARSE(2, 46)=35 -!O3/BIOL - KSPARSE(1, 47)=3 - KSPARSE(2, 47)=36 -!O3/BIOH - KSPARSE(1, 48)=3 - KSPARSE(2, 48)=37 -!O3/MVK - KSPARSE(1, 49)=3 - KSPARSE(2, 49)=39 -!O3/MCR - KSPARSE(1, 50)=3 - KSPARSE(2, 50)=40 -!O3/RPG2 - KSPARSE(1, 51)=3 - KSPARSE(2, 51)=50 -!O3/RP18 - KSPARSE(1, 52)=3 - KSPARSE(2, 52)=51 -!O3/RPG3 - KSPARSE(1, 53)=3 - KSPARSE(2, 53)=52 -!O3/RPR7 - KSPARSE(1, 54)=3 - KSPARSE(2, 54)=62 -!O3/RPG7 - KSPARSE(1, 55)=3 - KSPARSE(2, 55)=63 -!O3/RPR5 - KSPARSE(1, 56)=3 - KSPARSE(2, 56)=70 -!O3/RP11 - KSPARSE(1, 57)=3 - KSPARSE(2, 57)=73 -!O3/RPRL - KSPARSE(1, 58)=3 - KSPARSE(2, 58)=75 -!O3/WC_O3 - KSPARSE(1, 59)=3 - KSPARSE(2, 59)=88 -!O3/WR_O3 - KSPARSE(1, 60)=3 - KSPARSE(2, 60)=125 -!HONO/NO + KSPARSE(2, 38)=69 +!NO2/O3 + KSPARSE(1, 39)=4 + KSPARSE(2, 39)=1 +!NO2/NO + KSPARSE(1, 40)=4 + KSPARSE(2, 40)=3 +!NO2/NO2 + KSPARSE(1, 41)=4 + KSPARSE(2, 41)=4 +!NO2/NO3 + KSPARSE(1, 42)=4 + KSPARSE(2, 42)=5 +!NO2/N2O5 + KSPARSE(1, 43)=4 + KSPARSE(2, 43)=6 +!NO2/HONO + KSPARSE(1, 44)=4 + KSPARSE(2, 44)=7 +!NO2/HNO3 + KSPARSE(1, 45)=4 + KSPARSE(2, 45)=8 +!NO2/HNO4 + KSPARSE(1, 46)=4 + KSPARSE(2, 46)=9 +!NO2/OH + KSPARSE(1, 47)=4 + KSPARSE(2, 47)=14 +!NO2/HO2 + KSPARSE(1, 48)=4 + KSPARSE(2, 48)=15 +!NO2/CARBO + KSPARSE(1, 49)=4 + KSPARSE(2, 49)=25 +!NO2/ONIT + KSPARSE(1, 50)=4 + KSPARSE(2, 50)=26 +!NO2/PAN + KSPARSE(1, 51)=4 + KSPARSE(2, 51)=27 +!NO2/MO2 + KSPARSE(1, 52)=4 + KSPARSE(2, 52)=32 +!NO2/ALKAP + KSPARSE(1, 53)=4 + KSPARSE(2, 53)=33 +!NO2/ALKEP + KSPARSE(1, 54)=4 + KSPARSE(2, 54)=34 +!NO2/BIOP + KSPARSE(1, 55)=4 + KSPARSE(2, 55)=35 +!NO2/PHO + KSPARSE(1, 56)=4 + KSPARSE(2, 56)=36 +!NO2/ADD + KSPARSE(1, 57)=4 + KSPARSE(2, 57)=37 +!NO2/AROP + KSPARSE(1, 58)=4 + KSPARSE(2, 58)=38 +!NO2/CARBOP + KSPARSE(1, 59)=4 + KSPARSE(2, 59)=39 +!NO2/OLN + KSPARSE(1, 60)=4 + KSPARSE(2, 60)=40 +!NO2/XO2 KSPARSE(1, 61)=4 - KSPARSE(2, 61)=1 -!HONO/NO2 + KSPARSE(2, 61)=41 +!NO2/WC_NO2 KSPARSE(1, 62)=4 - KSPARSE(2, 62)=2 -!HONO/HONO + KSPARSE(2, 62)=45 +!NO2/WR_NO2 KSPARSE(1, 63)=4 - KSPARSE(2, 63)=4 -!HONO/OH - KSPARSE(1, 64)=4 - KSPARSE(2, 64)=15 -!HONO/WC_HONO - KSPARSE(1, 65)=4 - KSPARSE(2, 65)=94 -!HONO/WR_HONO - KSPARSE(1, 66)=4 - KSPARSE(2, 66)=131 -!HNO3/NO2 + KSPARSE(2, 63)=70 +!NO3/O3 + KSPARSE(1, 64)=5 + KSPARSE(2, 64)=1 +!NO3/NO + KSPARSE(1, 65)=5 + KSPARSE(2, 65)=3 +!NO3/NO2 + KSPARSE(1, 66)=5 + KSPARSE(2, 66)=4 +!NO3/NO3 KSPARSE(1, 67)=5 - KSPARSE(2, 67)=2 -!HNO3/HNO3 + KSPARSE(2, 67)=5 +!NO3/N2O5 KSPARSE(1, 68)=5 - KSPARSE(2, 68)=5 -!HNO3/N2O5 + KSPARSE(2, 68)=6 +!NO3/HNO3 KSPARSE(1, 69)=5 - KSPARSE(2, 69)=7 -!HNO3/NO3 + KSPARSE(2, 69)=8 +!NO3/HNO4 KSPARSE(1, 70)=5 - KSPARSE(2, 70)=8 -!HNO3/HO2 + KSPARSE(2, 70)=9 +!NO3/OH KSPARSE(1, 71)=5 - KSPARSE(2, 71)=10 -!HNO3/OH + KSPARSE(2, 71)=14 +!NO3/HO2 KSPARSE(1, 72)=5 KSPARSE(2, 72)=15 -!HNO3/AROO +!NO3/ALKE KSPARSE(1, 73)=5 - KSPARSE(2, 73)=24 -!HNO3/ARAL + KSPARSE(2, 73)=19 +!NO3/BIO KSPARSE(1, 74)=5 - KSPARSE(2, 74)=25 -!HNO3/HCHO + KSPARSE(2, 74)=20 +!NO3/ARO KSPARSE(1, 75)=5 - KSPARSE(2, 75)=28 -!HNO3/ALD2 + KSPARSE(2, 75)=21 +!NO3/HCHO KSPARSE(1, 76)=5 - KSPARSE(2, 76)=29 -!HNO3/MCR + KSPARSE(2, 76)=22 +!NO3/ALD KSPARSE(1, 77)=5 - KSPARSE(2, 77)=40 -!HNO3/MGLY + KSPARSE(2, 77)=23 +!NO3/CARBO KSPARSE(1, 78)=5 - KSPARSE(2, 78)=41 -!HNO3/RPR3 + KSPARSE(2, 78)=25 +!NO3/PAN KSPARSE(1, 79)=5 - KSPARSE(2, 79)=57 -!HNO3/RPR4 + KSPARSE(2, 79)=27 +!NO3/MO2 KSPARSE(1, 80)=5 - KSPARSE(2, 80)=61 -!HNO3/RPR1 + KSPARSE(2, 80)=32 +!NO3/ALKAP KSPARSE(1, 81)=5 - KSPARSE(2, 81)=69 -!HNO3/RPR8 + KSPARSE(2, 81)=33 +!NO3/ALKEP KSPARSE(1, 82)=5 - KSPARSE(2, 82)=71 -!HNO3/RP16 + KSPARSE(2, 82)=34 +!NO3/BIOP KSPARSE(1, 83)=5 - KSPARSE(2, 83)=74 -!HNO3/WC_HNO3 + KSPARSE(2, 83)=35 +!NO3/AROP KSPARSE(1, 84)=5 - KSPARSE(2, 84)=95 -!HNO3/WR_HNO3 + KSPARSE(2, 84)=38 +!NO3/CARBOP KSPARSE(1, 85)=5 - KSPARSE(2, 85)=132 -!HNO4/NO2 - KSPARSE(1, 86)=6 - KSPARSE(2, 86)=2 -!HNO4/HNO4 - KSPARSE(1, 87)=6 - KSPARSE(2, 87)=6 -!HNO4/HO2 - KSPARSE(1, 88)=6 - KSPARSE(2, 88)=10 -!HNO4/OH - KSPARSE(1, 89)=6 - KSPARSE(2, 89)=15 -!HNO4/WC_HNO4 + KSPARSE(2, 85)=39 +!NO3/OLN + KSPARSE(1, 86)=5 + KSPARSE(2, 86)=40 +!NO3/XO2 + KSPARSE(1, 87)=5 + KSPARSE(2, 87)=41 +!NO3/WC_NO3 + KSPARSE(1, 88)=5 + KSPARSE(2, 88)=46 +!NO3/WR_NO3 + KSPARSE(1, 89)=5 + KSPARSE(2, 89)=71 +!N2O5/NO2 KSPARSE(1, 90)=6 - KSPARSE(2, 90)=96 -!HNO4/WR_HNO4 + KSPARSE(2, 90)=4 +!N2O5/NO3 KSPARSE(1, 91)=6 - KSPARSE(2, 91)=133 -!N2O5/NO2 - KSPARSE(1, 92)=7 - KSPARSE(2, 92)=2 + KSPARSE(2, 91)=5 !N2O5/N2O5 - KSPARSE(1, 93)=7 - KSPARSE(2, 93)=7 -!N2O5/NO3 - KSPARSE(1, 94)=7 - KSPARSE(2, 94)=8 + KSPARSE(1, 92)=6 + KSPARSE(2, 92)=6 !N2O5/WC_N2O5 - KSPARSE(1, 95)=7 - KSPARSE(2, 95)=93 + KSPARSE(1, 93)=6 + KSPARSE(2, 93)=47 !N2O5/WR_N2O5 + KSPARSE(1, 94)=6 + KSPARSE(2, 94)=72 +!HONO/NO + KSPARSE(1, 95)=7 + KSPARSE(2, 95)=3 +!HONO/NO2 KSPARSE(1, 96)=7 - KSPARSE(2, 96)=130 -!NO3/NO - KSPARSE(1, 97)=8 - KSPARSE(2, 97)=1 -!NO3/NO2 - KSPARSE(1, 98)=8 - KSPARSE(2, 98)=2 -!NO3/O3 - KSPARSE(1, 99)=8 - KSPARSE(2, 99)=3 -!NO3/HNO3 - KSPARSE(1, 100)=8 - KSPARSE(2, 100)=5 -!NO3/N2O5 - KSPARSE(1, 101)=8 - KSPARSE(2, 101)=7 -!NO3/NO3 + KSPARSE(2, 96)=4 +!HONO/HONO + KSPARSE(1, 97)=7 + KSPARSE(2, 97)=7 +!HONO/OH + KSPARSE(1, 98)=7 + KSPARSE(2, 98)=14 +!HONO/ADD + KSPARSE(1, 99)=7 + KSPARSE(2, 99)=37 +!HONO/WC_HONO + KSPARSE(1, 100)=7 + KSPARSE(2, 100)=48 +!HONO/WR_HONO + KSPARSE(1, 101)=7 + KSPARSE(2, 101)=73 +!HNO3/NO2 KSPARSE(1, 102)=8 - KSPARSE(2, 102)=8 -!NO3/HO2 + KSPARSE(2, 102)=4 +!HNO3/NO3 KSPARSE(1, 103)=8 - KSPARSE(2, 103)=10 -!NO3/OH + KSPARSE(2, 103)=5 +!HNO3/HNO3 KSPARSE(1, 104)=8 - KSPARSE(2, 104)=15 -!NO3/ETHE + KSPARSE(2, 104)=8 +!HNO3/OH KSPARSE(1, 105)=8 - KSPARSE(2, 105)=16 -!NO3/OLEL + KSPARSE(2, 105)=14 +!HNO3/HO2 KSPARSE(1, 106)=8 - KSPARSE(2, 106)=17 -!NO3/OLEH + KSPARSE(2, 106)=15 +!HNO3/ARO KSPARSE(1, 107)=8 - KSPARSE(2, 107)=18 -!NO3/AROO + KSPARSE(2, 107)=21 +!HNO3/HCHO KSPARSE(1, 108)=8 - KSPARSE(2, 108)=24 -!NO3/ARAL + KSPARSE(2, 108)=22 +!HNO3/ALD KSPARSE(1, 109)=8 - KSPARSE(2, 109)=25 -!NO3/HCHO + KSPARSE(2, 109)=23 +!HNO3/CARBO KSPARSE(1, 110)=8 - KSPARSE(2, 110)=28 -!NO3/ALD2 + KSPARSE(2, 110)=25 +!HNO3/WC_HNO3 KSPARSE(1, 111)=8 - KSPARSE(2, 111)=29 -!NO3/ISOP + KSPARSE(2, 111)=49 +!HNO3/WR_HNO3 KSPARSE(1, 112)=8 - KSPARSE(2, 112)=35 -!NO3/BIOL - KSPARSE(1, 113)=8 - KSPARSE(2, 113)=36 -!NO3/BIOH - KSPARSE(1, 114)=8 - KSPARSE(2, 114)=37 -!NO3/MCR - KSPARSE(1, 115)=8 - KSPARSE(2, 115)=40 -!NO3/MGLY - KSPARSE(1, 116)=8 - KSPARSE(2, 116)=41 -!NO3/RPR3 - KSPARSE(1, 117)=8 - KSPARSE(2, 117)=57 -!NO3/RPR4 - KSPARSE(1, 118)=8 - KSPARSE(2, 118)=61 -!NO3/RPR1 - KSPARSE(1, 119)=8 - KSPARSE(2, 119)=69 -!NO3/RPR8 - KSPARSE(1, 120)=8 - KSPARSE(2, 120)=71 -!NO3/RP16 - KSPARSE(1, 121)=8 - KSPARSE(2, 121)=74 -!NO3/WC_NO3 - KSPARSE(1, 122)=8 - KSPARSE(2, 122)=92 -!NO3/WR_NO3 - KSPARSE(1, 123)=8 - KSPARSE(2, 123)=129 + KSPARSE(2, 112)=74 +!HNO4/NO2 + KSPARSE(1, 113)=9 + KSPARSE(2, 113)=4 +!HNO4/HNO4 + KSPARSE(1, 114)=9 + KSPARSE(2, 114)=9 +!HNO4/OH + KSPARSE(1, 115)=9 + KSPARSE(2, 115)=14 +!HNO4/HO2 + KSPARSE(1, 116)=9 + KSPARSE(2, 116)=15 +!HNO4/WC_HNO4 + KSPARSE(1, 117)=9 + KSPARSE(2, 117)=50 +!HNO4/WR_HNO4 + KSPARSE(1, 118)=9 + KSPARSE(2, 118)=75 !NH3/NH3 - KSPARSE(1, 124)=9 - KSPARSE(2, 124)=9 + KSPARSE(1, 119)=10 + KSPARSE(2, 119)=10 !NH3/OH - KSPARSE(1, 125)=9 - KSPARSE(2, 125)=15 + KSPARSE(1, 120)=10 + KSPARSE(2, 120)=14 !NH3/WC_NH3 - KSPARSE(1, 126)=9 - KSPARSE(2, 126)=97 + KSPARSE(1, 121)=10 + KSPARSE(2, 121)=51 !NH3/WR_NH3 - KSPARSE(1, 127)=9 - KSPARSE(2, 127)=134 -!HO2/NO - KSPARSE(1, 128)=10 - KSPARSE(2, 128)=1 -!HO2/NO2 - KSPARSE(1, 129)=10 - KSPARSE(2, 129)=2 -!HO2/O3 - KSPARSE(1, 130)=10 - KSPARSE(2, 130)=3 -!HO2/HONO - KSPARSE(1, 131)=10 - KSPARSE(2, 131)=4 -!HO2/HNO4 - KSPARSE(1, 132)=10 - KSPARSE(2, 132)=6 -!HO2/NO3 - KSPARSE(1, 133)=10 - KSPARSE(2, 133)=8 -!HO2/HO2 - KSPARSE(1, 134)=10 - KSPARSE(2, 134)=10 -!HO2/CO - KSPARSE(1, 135)=10 - KSPARSE(2, 135)=11 -!HO2/H2O2 - KSPARSE(1, 136)=10 - KSPARSE(2, 136)=12 -!HO2/SO2 - KSPARSE(1, 137)=10 - KSPARSE(2, 137)=13 -!HO2/OH - KSPARSE(1, 138)=10 - KSPARSE(2, 138)=15 -!HO2/ETHE - KSPARSE(1, 139)=10 - KSPARSE(2, 139)=16 -!HO2/OLEL - KSPARSE(1, 140)=10 - KSPARSE(2, 140)=17 -!HO2/OLEH - KSPARSE(1, 141)=10 - KSPARSE(2, 141)=18 -!HO2/AROH - KSPARSE(1, 142)=10 - KSPARSE(2, 142)=22 -!HO2/AROL - KSPARSE(1, 143)=10 - KSPARSE(2, 143)=23 -!HO2/AROO - KSPARSE(1, 144)=10 - KSPARSE(2, 144)=24 -!HO2/ARAL - KSPARSE(1, 145)=10 - KSPARSE(2, 145)=25 -!HO2/ARAC - KSPARSE(1, 146)=10 - KSPARSE(2, 146)=26 -!HO2/PAH - KSPARSE(1, 147)=10 - KSPARSE(2, 147)=27 -!HO2/HCHO - KSPARSE(1, 148)=10 - KSPARSE(2, 148)=28 -!HO2/ALD2 - KSPARSE(1, 149)=10 - KSPARSE(2, 149)=29 -!HO2/MEOH - KSPARSE(1, 150)=10 - KSPARSE(2, 150)=32 -!HO2/ETOH - KSPARSE(1, 151)=10 - KSPARSE(2, 151)=33 -!HO2/ISOP - KSPARSE(1, 152)=10 - KSPARSE(2, 152)=35 -!HO2/BIOL - KSPARSE(1, 153)=10 - KSPARSE(2, 153)=36 -!HO2/MVK - KSPARSE(1, 154)=10 - KSPARSE(2, 154)=39 -!HO2/MCR - KSPARSE(1, 155)=10 - KSPARSE(2, 155)=40 -!HO2/MGLY - KSPARSE(1, 156)=10 - KSPARSE(2, 156)=41 -!HO2/ORA1 - KSPARSE(1, 157)=10 - KSPARSE(2, 157)=43 -!HO2/RPR3 - KSPARSE(1, 158)=10 - KSPARSE(2, 158)=57 -!HO2/RPR1 - KSPARSE(1, 159)=10 - KSPARSE(2, 159)=69 -!HO2/RPR8 - KSPARSE(1, 160)=10 - KSPARSE(2, 160)=71 -!HO2/RP10 - KSPARSE(1, 161)=10 - KSPARSE(2, 161)=72 -!HO2/RP16 - KSPARSE(1, 162)=10 - KSPARSE(2, 162)=74 -!HO2/RO2T - KSPARSE(1, 163)=10 - KSPARSE(2, 163)=85 -!HO2/RO21 - KSPARSE(1, 164)=10 - KSPARSE(2, 164)=86 -!HO2/RO25 - KSPARSE(1, 165)=10 - KSPARSE(2, 165)=87 -!HO2/WC_HO2 - KSPARSE(1, 166)=10 - KSPARSE(2, 166)=99 -!HO2/WR_HO2 - KSPARSE(1, 167)=10 - KSPARSE(2, 167)=136 -!CO/NO - KSPARSE(1, 168)=11 - KSPARSE(2, 168)=1 + KSPARSE(1, 122)=10 + KSPARSE(2, 122)=76 +!SO2/SO2 + KSPARSE(1, 123)=11 + KSPARSE(2, 123)=11 +!SO2/OH + KSPARSE(1, 124)=11 + KSPARSE(2, 124)=14 +!SO2/WC_SO2 + KSPARSE(1, 125)=11 + KSPARSE(2, 125)=55 +!SO2/WR_SO2 + KSPARSE(1, 126)=11 + KSPARSE(2, 126)=80 +!SULF/SO2 + KSPARSE(1, 127)=12 + KSPARSE(2, 127)=11 +!SULF/SULF + KSPARSE(1, 128)=12 + KSPARSE(2, 128)=12 +!SULF/OH + KSPARSE(1, 129)=12 + KSPARSE(2, 129)=14 +!SULF/WC_SULF + KSPARSE(1, 130)=12 + KSPARSE(2, 130)=56 +!SULF/WR_SULF + KSPARSE(1, 131)=12 + KSPARSE(2, 131)=81 !CO/O3 - KSPARSE(1, 169)=11 - KSPARSE(2, 169)=3 + KSPARSE(1, 132)=13 + KSPARSE(2, 132)=1 !CO/NO3 - KSPARSE(1, 170)=11 - KSPARSE(2, 170)=8 -!CO/HO2 - KSPARSE(1, 171)=11 - KSPARSE(2, 171)=10 + KSPARSE(1, 133)=13 + KSPARSE(2, 133)=5 !CO/CO - KSPARSE(1, 172)=11 - KSPARSE(2, 172)=11 + KSPARSE(1, 134)=13 + KSPARSE(2, 134)=13 !CO/OH - KSPARSE(1, 173)=11 - KSPARSE(2, 173)=15 -!CO/ETHE - KSPARSE(1, 174)=11 - KSPARSE(2, 174)=16 -!CO/OLEL - KSPARSE(1, 175)=11 - KSPARSE(2, 175)=17 -!CO/OLEH - KSPARSE(1, 176)=11 - KSPARSE(2, 176)=18 + KSPARSE(1, 135)=13 + KSPARSE(2, 135)=14 +!CO/ALKA + KSPARSE(1, 136)=13 + KSPARSE(2, 136)=18 +!CO/ALKE + KSPARSE(1, 137)=13 + KSPARSE(2, 137)=19 +!CO/BIO + KSPARSE(1, 138)=13 + KSPARSE(2, 138)=20 !CO/HCHO - KSPARSE(1, 177)=11 - KSPARSE(2, 177)=28 -!CO/ALD2 - KSPARSE(1, 178)=11 - KSPARSE(2, 178)=29 -!CO/ISOP - KSPARSE(1, 179)=11 - KSPARSE(2, 179)=35 -!CO/BIOL - KSPARSE(1, 180)=11 - KSPARSE(2, 180)=36 -!CO/BIOH - KSPARSE(1, 181)=11 - KSPARSE(2, 181)=37 -!CO/MVK - KSPARSE(1, 182)=11 - KSPARSE(2, 182)=39 -!CO/MCR - KSPARSE(1, 183)=11 - KSPARSE(2, 183)=40 -!CO/MGLY - KSPARSE(1, 184)=11 - KSPARSE(2, 184)=41 -!CO/RPR3 - KSPARSE(1, 185)=11 - KSPARSE(2, 185)=57 -!CO/RPR1 - KSPARSE(1, 186)=11 - KSPARSE(2, 186)=69 -!CO/RPR8 - KSPARSE(1, 187)=11 - KSPARSE(2, 187)=71 -!CO/RP16 - KSPARSE(1, 188)=11 - KSPARSE(2, 188)=74 -!CO/RO2T - KSPARSE(1, 189)=11 - KSPARSE(2, 189)=85 -!H2O2/O3 - KSPARSE(1, 190)=12 - KSPARSE(2, 190)=3 -!H2O2/HO2 - KSPARSE(1, 191)=12 - KSPARSE(2, 191)=10 -!H2O2/H2O2 - KSPARSE(1, 192)=12 - KSPARSE(2, 192)=12 -!H2O2/OH - KSPARSE(1, 193)=12 - KSPARSE(2, 193)=15 -!H2O2/BIOL - KSPARSE(1, 194)=12 - KSPARSE(2, 194)=36 -!H2O2/BIOH - KSPARSE(1, 195)=12 - KSPARSE(2, 195)=37 -!H2O2/WC_H2O2 - KSPARSE(1, 196)=12 - KSPARSE(2, 196)=89 -!H2O2/WR_H2O2 - KSPARSE(1, 197)=12 - KSPARSE(2, 197)=126 -!SO2/SO2 - KSPARSE(1, 198)=13 - KSPARSE(2, 198)=13 -!SO2/OH - KSPARSE(1, 199)=13 - KSPARSE(2, 199)=15 -!SO2/WC_SO2 - KSPARSE(1, 200)=13 - KSPARSE(2, 200)=101 -!SO2/WR_SO2 - KSPARSE(1, 201)=13 - KSPARSE(2, 201)=138 -!H2SO4/SO2 - KSPARSE(1, 202)=14 - KSPARSE(2, 202)=13 -!H2SO4/H2SO4 - KSPARSE(1, 203)=14 - KSPARSE(2, 203)=14 -!H2SO4/OH - KSPARSE(1, 204)=14 - KSPARSE(2, 204)=15 -!H2SO4/WC_H2SO4 - KSPARSE(1, 205)=14 - KSPARSE(2, 205)=102 -!H2SO4/WR_H2SO4 - KSPARSE(1, 206)=14 - KSPARSE(2, 206)=139 + KSPARSE(1, 139)=13 + KSPARSE(2, 139)=22 +!CO/ALD + KSPARSE(1, 140)=13 + KSPARSE(2, 140)=23 +!CO/CARBO + KSPARSE(1, 141)=13 + KSPARSE(2, 141)=25 +!CO/PAN + KSPARSE(1, 142)=13 + KSPARSE(2, 142)=27 +!OH/O3 + KSPARSE(1, 143)=14 + KSPARSE(2, 143)=1 +!OH/H2O2 + KSPARSE(1, 144)=14 + KSPARSE(2, 144)=2 !OH/NO - KSPARSE(1, 207)=15 - KSPARSE(2, 207)=1 + KSPARSE(1, 145)=14 + KSPARSE(2, 145)=3 !OH/NO2 - KSPARSE(1, 208)=15 - KSPARSE(2, 208)=2 -!OH/O3 - KSPARSE(1, 209)=15 - KSPARSE(2, 209)=3 + KSPARSE(1, 146)=14 + KSPARSE(2, 146)=4 +!OH/NO3 + KSPARSE(1, 147)=14 + KSPARSE(2, 147)=5 !OH/HONO - KSPARSE(1, 210)=15 - KSPARSE(2, 210)=4 + KSPARSE(1, 148)=14 + KSPARSE(2, 148)=7 !OH/HNO3 - KSPARSE(1, 211)=15 - KSPARSE(2, 211)=5 + KSPARSE(1, 149)=14 + KSPARSE(2, 149)=8 !OH/HNO4 - KSPARSE(1, 212)=15 - KSPARSE(2, 212)=6 -!OH/NO3 - KSPARSE(1, 213)=15 - KSPARSE(2, 213)=8 + KSPARSE(1, 150)=14 + KSPARSE(2, 150)=9 !OH/NH3 - KSPARSE(1, 214)=15 - KSPARSE(2, 214)=9 -!OH/HO2 - KSPARSE(1, 215)=15 - KSPARSE(2, 215)=10 -!OH/CO - KSPARSE(1, 216)=15 - KSPARSE(2, 216)=11 -!OH/H2O2 - KSPARSE(1, 217)=15 - KSPARSE(2, 217)=12 + KSPARSE(1, 151)=14 + KSPARSE(2, 151)=10 !OH/SO2 - KSPARSE(1, 218)=15 - KSPARSE(2, 218)=13 + KSPARSE(1, 152)=14 + KSPARSE(2, 152)=11 +!OH/CO + KSPARSE(1, 153)=14 + KSPARSE(2, 153)=13 !OH/OH - KSPARSE(1, 219)=15 - KSPARSE(2, 219)=15 -!OH/ETHE - KSPARSE(1, 220)=15 - KSPARSE(2, 220)=16 -!OH/OLEL - KSPARSE(1, 221)=15 - KSPARSE(2, 221)=17 -!OH/OLEH - KSPARSE(1, 222)=15 - KSPARSE(2, 222)=18 -!OH/ALKL - KSPARSE(1, 223)=15 - KSPARSE(2, 223)=19 -!OH/ALKM - KSPARSE(1, 224)=15 - KSPARSE(2, 224)=20 -!OH/ALKH - KSPARSE(1, 225)=15 - KSPARSE(2, 225)=21 -!OH/AROH - KSPARSE(1, 226)=15 - KSPARSE(2, 226)=22 -!OH/AROL - KSPARSE(1, 227)=15 - KSPARSE(2, 227)=23 -!OH/AROO - KSPARSE(1, 228)=15 - KSPARSE(2, 228)=24 -!OH/ARAL - KSPARSE(1, 229)=15 - KSPARSE(2, 229)=25 -!OH/ARAC - KSPARSE(1, 230)=15 - KSPARSE(2, 230)=26 -!OH/PAH - KSPARSE(1, 231)=15 - KSPARSE(2, 231)=27 + KSPARSE(1, 154)=14 + KSPARSE(2, 154)=14 +!OH/HO2 + KSPARSE(1, 155)=14 + KSPARSE(2, 155)=15 +!OH/CH4 + KSPARSE(1, 156)=14 + KSPARSE(2, 156)=16 +!OH/ETH + KSPARSE(1, 157)=14 + KSPARSE(2, 157)=17 +!OH/ALKA + KSPARSE(1, 158)=14 + KSPARSE(2, 158)=18 +!OH/ALKE + KSPARSE(1, 159)=14 + KSPARSE(2, 159)=19 +!OH/BIO + KSPARSE(1, 160)=14 + KSPARSE(2, 160)=20 +!OH/ARO + KSPARSE(1, 161)=14 + KSPARSE(2, 161)=21 !OH/HCHO - KSPARSE(1, 232)=15 - KSPARSE(2, 232)=28 -!OH/ALD2 - KSPARSE(1, 233)=15 - KSPARSE(2, 233)=29 -!OH/KETL - KSPARSE(1, 234)=15 - KSPARSE(2, 234)=30 -!OH/KETH - KSPARSE(1, 235)=15 - KSPARSE(2, 235)=31 -!OH/MEOH - KSPARSE(1, 236)=15 - KSPARSE(2, 236)=32 -!OH/ETOH - KSPARSE(1, 237)=15 - KSPARSE(2, 237)=33 -!OH/ALCH - KSPARSE(1, 238)=15 - KSPARSE(2, 238)=34 -!OH/ISOP - KSPARSE(1, 239)=15 - KSPARSE(2, 239)=35 -!OH/BIOL - KSPARSE(1, 240)=15 - KSPARSE(2, 240)=36 -!OH/BIOH - KSPARSE(1, 241)=15 - KSPARSE(2, 241)=37 -!OH/MTBE - KSPARSE(1, 242)=15 - KSPARSE(2, 242)=38 -!OH/MVK - KSPARSE(1, 243)=15 - KSPARSE(2, 243)=39 -!OH/MCR - KSPARSE(1, 244)=15 - KSPARSE(2, 244)=40 -!OH/MGLY - KSPARSE(1, 245)=15 - KSPARSE(2, 245)=41 + KSPARSE(1, 162)=14 + KSPARSE(2, 162)=22 +!OH/ALD + KSPARSE(1, 163)=14 + KSPARSE(2, 163)=23 +!OH/KET + KSPARSE(1, 164)=14 + KSPARSE(2, 164)=24 +!OH/CARBO + KSPARSE(1, 165)=14 + KSPARSE(2, 165)=25 +!OH/ONIT + KSPARSE(1, 166)=14 + KSPARSE(2, 166)=26 +!OH/PAN + KSPARSE(1, 167)=14 + KSPARSE(2, 167)=27 +!OH/OP1 + KSPARSE(1, 168)=14 + KSPARSE(2, 168)=28 +!OH/OP2 + KSPARSE(1, 169)=14 + KSPARSE(2, 169)=29 !OH/ORA1 - KSPARSE(1, 246)=15 - KSPARSE(2, 246)=43 + KSPARSE(1, 170)=14 + KSPARSE(2, 170)=30 !OH/ORA2 - KSPARSE(1, 247)=15 - KSPARSE(2, 247)=44 -!OH/ACID - KSPARSE(1, 248)=15 - KSPARSE(2, 248)=45 -!OH/RPG2 - KSPARSE(1, 249)=15 - KSPARSE(2, 249)=50 -!OH/RP18 - KSPARSE(1, 250)=15 - KSPARSE(2, 250)=51 -!OH/RPG3 - KSPARSE(1, 251)=15 - KSPARSE(2, 251)=52 -!OH/RPR3 - KSPARSE(1, 252)=15 - KSPARSE(2, 252)=57 -!OH/RPR7 - KSPARSE(1, 253)=15 - KSPARSE(2, 253)=62 -!OH/RPG7 - KSPARSE(1, 254)=15 - KSPARSE(2, 254)=63 -!OH/RPR1 - KSPARSE(1, 255)=15 - KSPARSE(2, 255)=69 -!OH/RPR5 - KSPARSE(1, 256)=15 - KSPARSE(2, 256)=70 -!OH/RPR8 - KSPARSE(1, 257)=15 - KSPARSE(2, 257)=71 -!OH/RP10 - KSPARSE(1, 258)=15 - KSPARSE(2, 258)=72 -!OH/RP11 - KSPARSE(1, 259)=15 - KSPARSE(2, 259)=73 -!OH/RP16 - KSPARSE(1, 260)=15 - KSPARSE(2, 260)=74 -!OH/RPRL - KSPARSE(1, 261)=15 - KSPARSE(2, 261)=75 -!OH/RO2T - KSPARSE(1, 262)=15 - KSPARSE(2, 262)=85 -!OH/RO21 - KSPARSE(1, 263)=15 - KSPARSE(2, 263)=86 -!OH/RO25 - KSPARSE(1, 264)=15 - KSPARSE(2, 264)=87 + KSPARSE(1, 171)=14 + KSPARSE(2, 171)=31 +!OH/ADD + KSPARSE(1, 172)=14 + KSPARSE(2, 172)=37 !OH/WC_OH - KSPARSE(1, 265)=15 - KSPARSE(2, 265)=98 + KSPARSE(1, 173)=14 + KSPARSE(2, 173)=52 !OH/WR_OH - KSPARSE(1, 266)=15 - KSPARSE(2, 266)=135 -!ETHE/O3 - KSPARSE(1, 267)=16 - KSPARSE(2, 267)=3 -!ETHE/NO3 - KSPARSE(1, 268)=16 - KSPARSE(2, 268)=8 -!ETHE/OH - KSPARSE(1, 269)=16 - KSPARSE(2, 269)=15 -!ETHE/ETHE - KSPARSE(1, 270)=16 - KSPARSE(2, 270)=16 -!OLEL/NO - KSPARSE(1, 271)=17 - KSPARSE(2, 271)=1 -!OLEL/O3 - KSPARSE(1, 272)=17 - KSPARSE(2, 272)=3 -!OLEL/NO3 - KSPARSE(1, 273)=17 - KSPARSE(2, 273)=8 -!OLEL/HO2 - KSPARSE(1, 274)=17 - KSPARSE(2, 274)=10 -!OLEL/OH - KSPARSE(1, 275)=17 - KSPARSE(2, 275)=15 -!OLEL/OLEL - KSPARSE(1, 276)=17 - KSPARSE(2, 276)=17 -!OLEL/ISOP - KSPARSE(1, 277)=17 - KSPARSE(2, 277)=35 -!OLEH/O3 - KSPARSE(1, 278)=18 - KSPARSE(2, 278)=3 -!OLEH/NO3 - KSPARSE(1, 279)=18 - KSPARSE(2, 279)=8 -!OLEH/OH - KSPARSE(1, 280)=18 - KSPARSE(2, 280)=15 -!OLEH/OLEH - KSPARSE(1, 281)=18 - KSPARSE(2, 281)=18 -!ALKL/NO - KSPARSE(1, 282)=19 - KSPARSE(2, 282)=1 -!ALKL/O3 - KSPARSE(1, 283)=19 - KSPARSE(2, 283)=3 -!ALKL/HO2 - KSPARSE(1, 284)=19 - KSPARSE(2, 284)=10 -!ALKL/OH - KSPARSE(1, 285)=19 - KSPARSE(2, 285)=15 -!ALKL/OLEL - KSPARSE(1, 286)=19 - KSPARSE(2, 286)=17 -!ALKL/ALKL - KSPARSE(1, 287)=19 - KSPARSE(2, 287)=19 -!ALKL/RO2T - KSPARSE(1, 288)=19 - KSPARSE(2, 288)=85 -!ALKL/RO25 - KSPARSE(1, 289)=19 - KSPARSE(2, 289)=87 -!ALKM/O3 - KSPARSE(1, 290)=20 - KSPARSE(2, 290)=3 -!ALKM/OH - KSPARSE(1, 291)=20 - KSPARSE(2, 291)=15 -!ALKM/OLEH - KSPARSE(1, 292)=20 - KSPARSE(2, 292)=18 -!ALKM/ALKM - KSPARSE(1, 293)=20 - KSPARSE(2, 293)=20 -!ALKH/OH - KSPARSE(1, 294)=21 - KSPARSE(2, 294)=15 -!ALKH/ALKH - KSPARSE(1, 295)=21 - KSPARSE(2, 295)=21 -!AROH/OH - KSPARSE(1, 296)=22 - KSPARSE(2, 296)=15 -!AROH/AROH - KSPARSE(1, 297)=22 - KSPARSE(2, 297)=22 -!AROL/OH - KSPARSE(1, 298)=23 - KSPARSE(2, 298)=15 -!AROL/AROL - KSPARSE(1, 299)=23 - KSPARSE(2, 299)=23 -!AROO/NO3 - KSPARSE(1, 300)=24 - KSPARSE(2, 300)=8 -!AROO/OH - KSPARSE(1, 301)=24 - KSPARSE(2, 301)=15 -!AROO/AROH - KSPARSE(1, 302)=24 - KSPARSE(2, 302)=22 -!AROO/AROL - KSPARSE(1, 303)=24 - KSPARSE(2, 303)=23 -!AROO/AROO - KSPARSE(1, 304)=24 - KSPARSE(2, 304)=24 -!ARAL/NO + KSPARSE(1, 174)=14 + KSPARSE(2, 174)=77 +!HO2/O3 + KSPARSE(1, 175)=15 + KSPARSE(2, 175)=1 +!HO2/H2O2 + KSPARSE(1, 176)=15 + KSPARSE(2, 176)=2 +!HO2/NO + KSPARSE(1, 177)=15 + KSPARSE(2, 177)=3 +!HO2/NO2 + KSPARSE(1, 178)=15 + KSPARSE(2, 178)=4 +!HO2/NO3 + KSPARSE(1, 179)=15 + KSPARSE(2, 179)=5 +!HO2/HNO4 + KSPARSE(1, 180)=15 + KSPARSE(2, 180)=9 +!HO2/SO2 + KSPARSE(1, 181)=15 + KSPARSE(2, 181)=11 +!HO2/CO + KSPARSE(1, 182)=15 + KSPARSE(2, 182)=13 +!HO2/OH + KSPARSE(1, 183)=15 + KSPARSE(2, 183)=14 +!HO2/HO2 + KSPARSE(1, 184)=15 + KSPARSE(2, 184)=15 +!HO2/ALKA + KSPARSE(1, 185)=15 + KSPARSE(2, 185)=18 +!HO2/ALKE + KSPARSE(1, 186)=15 + KSPARSE(2, 186)=19 +!HO2/BIO + KSPARSE(1, 187)=15 + KSPARSE(2, 187)=20 +!HO2/ARO + KSPARSE(1, 188)=15 + KSPARSE(2, 188)=21 +!HO2/HCHO + KSPARSE(1, 189)=15 + KSPARSE(2, 189)=22 +!HO2/ALD + KSPARSE(1, 190)=15 + KSPARSE(2, 190)=23 +!HO2/CARBO + KSPARSE(1, 191)=15 + KSPARSE(2, 191)=25 +!HO2/ONIT + KSPARSE(1, 192)=15 + KSPARSE(2, 192)=26 +!HO2/PAN + KSPARSE(1, 193)=15 + KSPARSE(2, 193)=27 +!HO2/OP1 + KSPARSE(1, 194)=15 + KSPARSE(2, 194)=28 +!HO2/OP2 + KSPARSE(1, 195)=15 + KSPARSE(2, 195)=29 +!HO2/ORA1 + KSPARSE(1, 196)=15 + KSPARSE(2, 196)=30 +!HO2/MO2 + KSPARSE(1, 197)=15 + KSPARSE(2, 197)=32 +!HO2/ALKAP + KSPARSE(1, 198)=15 + KSPARSE(2, 198)=33 +!HO2/ALKEP + KSPARSE(1, 199)=15 + KSPARSE(2, 199)=34 +!HO2/BIOP + KSPARSE(1, 200)=15 + KSPARSE(2, 200)=35 +!HO2/PHO + KSPARSE(1, 201)=15 + KSPARSE(2, 201)=36 +!HO2/ADD + KSPARSE(1, 202)=15 + KSPARSE(2, 202)=37 +!HO2/AROP + KSPARSE(1, 203)=15 + KSPARSE(2, 203)=38 +!HO2/CARBOP + KSPARSE(1, 204)=15 + KSPARSE(2, 204)=39 +!HO2/OLN + KSPARSE(1, 205)=15 + KSPARSE(2, 205)=40 +!HO2/XO2 + KSPARSE(1, 206)=15 + KSPARSE(2, 206)=41 +!HO2/WC_HO2 + KSPARSE(1, 207)=15 + KSPARSE(2, 207)=53 +!HO2/WR_HO2 + KSPARSE(1, 208)=15 + KSPARSE(2, 208)=78 +!CH4/O3 + KSPARSE(1, 209)=16 + KSPARSE(2, 209)=1 +!CH4/OH + KSPARSE(1, 210)=16 + KSPARSE(2, 210)=14 +!CH4/CH4 + KSPARSE(1, 211)=16 + KSPARSE(2, 211)=16 +!CH4/ALKE + KSPARSE(1, 212)=16 + KSPARSE(2, 212)=19 +!ETH/O3 + KSPARSE(1, 213)=17 + KSPARSE(2, 213)=1 +!ETH/OH + KSPARSE(1, 214)=17 + KSPARSE(2, 214)=14 +!ETH/ETH + KSPARSE(1, 215)=17 + KSPARSE(2, 215)=17 +!ETH/ALKE + KSPARSE(1, 216)=17 + KSPARSE(2, 216)=19 +!ALKA/OH + KSPARSE(1, 217)=18 + KSPARSE(2, 217)=14 +!ALKA/ALKA + KSPARSE(1, 218)=18 + KSPARSE(2, 218)=18 +!ALKE/O3 + KSPARSE(1, 219)=19 + KSPARSE(2, 219)=1 +!ALKE/NO + KSPARSE(1, 220)=19 + KSPARSE(2, 220)=3 +!ALKE/NO3 + KSPARSE(1, 221)=19 + KSPARSE(2, 221)=5 +!ALKE/OH + KSPARSE(1, 222)=19 + KSPARSE(2, 222)=14 +!ALKE/ALKE + KSPARSE(1, 223)=19 + KSPARSE(2, 223)=19 +!ALKE/BIO + KSPARSE(1, 224)=19 + KSPARSE(2, 224)=20 +!ALKE/MO2 + KSPARSE(1, 225)=19 + KSPARSE(2, 225)=32 +!ALKE/BIOP + KSPARSE(1, 226)=19 + KSPARSE(2, 226)=35 +!ALKE/CARBOP + KSPARSE(1, 227)=19 + KSPARSE(2, 227)=39 +!BIO/O3 + KSPARSE(1, 228)=20 + KSPARSE(2, 228)=1 +!BIO/NO3 + KSPARSE(1, 229)=20 + KSPARSE(2, 229)=5 +!BIO/OH + KSPARSE(1, 230)=20 + KSPARSE(2, 230)=14 +!BIO/BIO + KSPARSE(1, 231)=20 + KSPARSE(2, 231)=20 +!ARO/O3 + KSPARSE(1, 232)=21 + KSPARSE(2, 232)=1 +!ARO/NO2 + KSPARSE(1, 233)=21 + KSPARSE(2, 233)=4 +!ARO/NO3 + KSPARSE(1, 234)=21 + KSPARSE(2, 234)=5 +!ARO/OH + KSPARSE(1, 235)=21 + KSPARSE(2, 235)=14 +!ARO/HO2 + KSPARSE(1, 236)=21 + KSPARSE(2, 236)=15 +!ARO/ARO + KSPARSE(1, 237)=21 + KSPARSE(2, 237)=21 +!ARO/PHO + KSPARSE(1, 238)=21 + KSPARSE(2, 238)=36 +!ARO/ADD + KSPARSE(1, 239)=21 + KSPARSE(2, 239)=37 +!HCHO/O3 + KSPARSE(1, 240)=22 + KSPARSE(2, 240)=1 +!HCHO/NO + KSPARSE(1, 241)=22 + KSPARSE(2, 241)=3 +!HCHO/NO3 + KSPARSE(1, 242)=22 + KSPARSE(2, 242)=5 +!HCHO/OH + KSPARSE(1, 243)=22 + KSPARSE(2, 243)=14 +!HCHO/ALKA + KSPARSE(1, 244)=22 + KSPARSE(2, 244)=18 +!HCHO/ALKE + KSPARSE(1, 245)=22 + KSPARSE(2, 245)=19 +!HCHO/BIO + KSPARSE(1, 246)=22 + KSPARSE(2, 246)=20 +!HCHO/HCHO + KSPARSE(1, 247)=22 + KSPARSE(2, 247)=22 +!HCHO/CARBO + KSPARSE(1, 248)=22 + KSPARSE(2, 248)=25 +!HCHO/PAN + KSPARSE(1, 249)=22 + KSPARSE(2, 249)=27 +!HCHO/OP1 + KSPARSE(1, 250)=22 + KSPARSE(2, 250)=28 +!HCHO/OP2 + KSPARSE(1, 251)=22 + KSPARSE(2, 251)=29 +!HCHO/MO2 + KSPARSE(1, 252)=22 + KSPARSE(2, 252)=32 +!HCHO/ALKAP + KSPARSE(1, 253)=22 + KSPARSE(2, 253)=33 +!HCHO/ALKEP + KSPARSE(1, 254)=22 + KSPARSE(2, 254)=34 +!HCHO/BIOP + KSPARSE(1, 255)=22 + KSPARSE(2, 255)=35 +!HCHO/AROP + KSPARSE(1, 256)=22 + KSPARSE(2, 256)=38 +!HCHO/CARBOP + KSPARSE(1, 257)=22 + KSPARSE(2, 257)=39 +!HCHO/OLN + KSPARSE(1, 258)=22 + KSPARSE(2, 258)=40 +!HCHO/XO2 + KSPARSE(1, 259)=22 + KSPARSE(2, 259)=41 +!HCHO/WC_HCHO + KSPARSE(1, 260)=22 + KSPARSE(2, 260)=57 +!HCHO/WR_HCHO + KSPARSE(1, 261)=22 + KSPARSE(2, 261)=82 +!ALD/O3 + KSPARSE(1, 262)=23 + KSPARSE(2, 262)=1 +!ALD/NO + KSPARSE(1, 263)=23 + KSPARSE(2, 263)=3 +!ALD/NO3 + KSPARSE(1, 264)=23 + KSPARSE(2, 264)=5 +!ALD/OH + KSPARSE(1, 265)=23 + KSPARSE(2, 265)=14 +!ALD/ALKA + KSPARSE(1, 266)=23 + KSPARSE(2, 266)=18 +!ALD/ALKE + KSPARSE(1, 267)=23 + KSPARSE(2, 267)=19 +!ALD/BIO + KSPARSE(1, 268)=23 + KSPARSE(2, 268)=20 +!ALD/ALD + KSPARSE(1, 269)=23 + KSPARSE(2, 269)=23 +!ALD/CARBO + KSPARSE(1, 270)=23 + KSPARSE(2, 270)=25 +!ALD/ONIT + KSPARSE(1, 271)=23 + KSPARSE(2, 271)=26 +!ALD/OP2 + KSPARSE(1, 272)=23 + KSPARSE(2, 272)=29 +!ALD/MO2 + KSPARSE(1, 273)=23 + KSPARSE(2, 273)=32 +!ALD/ALKAP + KSPARSE(1, 274)=23 + KSPARSE(2, 274)=33 +!ALD/ALKEP + KSPARSE(1, 275)=23 + KSPARSE(2, 275)=34 +!ALD/BIOP + KSPARSE(1, 276)=23 + KSPARSE(2, 276)=35 +!ALD/CARBOP + KSPARSE(1, 277)=23 + KSPARSE(2, 277)=39 +!ALD/OLN + KSPARSE(1, 278)=23 + KSPARSE(2, 278)=40 +!KET/O3 + KSPARSE(1, 279)=24 + KSPARSE(2, 279)=1 +!KET/NO + KSPARSE(1, 280)=24 + KSPARSE(2, 280)=3 +!KET/NO3 + KSPARSE(1, 281)=24 + KSPARSE(2, 281)=5 +!KET/OH + KSPARSE(1, 282)=24 + KSPARSE(2, 282)=14 +!KET/ALKA + KSPARSE(1, 283)=24 + KSPARSE(2, 283)=18 +!KET/ALKE + KSPARSE(1, 284)=24 + KSPARSE(2, 284)=19 +!KET/BIO + KSPARSE(1, 285)=24 + KSPARSE(2, 285)=20 +!KET/KET + KSPARSE(1, 286)=24 + KSPARSE(2, 286)=24 +!KET/CARBO + KSPARSE(1, 287)=24 + KSPARSE(2, 287)=25 +!KET/ONIT + KSPARSE(1, 288)=24 + KSPARSE(2, 288)=26 +!KET/OP2 + KSPARSE(1, 289)=24 + KSPARSE(2, 289)=29 +!KET/MO2 + KSPARSE(1, 290)=24 + KSPARSE(2, 290)=32 +!KET/ALKAP + KSPARSE(1, 291)=24 + KSPARSE(2, 291)=33 +!KET/ALKEP + KSPARSE(1, 292)=24 + KSPARSE(2, 292)=34 +!KET/BIOP + KSPARSE(1, 293)=24 + KSPARSE(2, 293)=35 +!KET/CARBOP + KSPARSE(1, 294)=24 + KSPARSE(2, 294)=39 +!KET/OLN + KSPARSE(1, 295)=24 + KSPARSE(2, 295)=40 +!CARBO/O3 + KSPARSE(1, 296)=25 + KSPARSE(2, 296)=1 +!CARBO/NO + KSPARSE(1, 297)=25 + KSPARSE(2, 297)=3 +!CARBO/NO3 + KSPARSE(1, 298)=25 + KSPARSE(2, 298)=5 +!CARBO/OH + KSPARSE(1, 299)=25 + KSPARSE(2, 299)=14 +!CARBO/ALKA + KSPARSE(1, 300)=25 + KSPARSE(2, 300)=18 +!CARBO/ALKE + KSPARSE(1, 301)=25 + KSPARSE(2, 301)=19 +!CARBO/BIO + KSPARSE(1, 302)=25 + KSPARSE(2, 302)=20 +!CARBO/CARBO + KSPARSE(1, 303)=25 + KSPARSE(2, 303)=25 +!CARBO/PAN + KSPARSE(1, 304)=25 + KSPARSE(2, 304)=27 +!CARBO/MO2 KSPARSE(1, 305)=25 - KSPARSE(2, 305)=1 -!ARAL/NO3 + KSPARSE(2, 305)=32 +!CARBO/ALKAP KSPARSE(1, 306)=25 - KSPARSE(2, 306)=8 -!ARAL/HO2 + KSPARSE(2, 306)=33 +!CARBO/BIOP KSPARSE(1, 307)=25 - KSPARSE(2, 307)=10 -!ARAL/OH + KSPARSE(2, 307)=35 +!CARBO/AROP KSPARSE(1, 308)=25 - KSPARSE(2, 308)=15 -!ARAL/ARAL + KSPARSE(2, 308)=38 +!CARBO/CARBOP KSPARSE(1, 309)=25 - KSPARSE(2, 309)=25 -!ARAL/RO2T - KSPARSE(1, 310)=25 - KSPARSE(2, 310)=85 -!ARAC/NO3 + KSPARSE(2, 309)=39 +!ONIT/NO + KSPARSE(1, 310)=26 + KSPARSE(2, 310)=3 +!ONIT/NO2 KSPARSE(1, 311)=26 - KSPARSE(2, 311)=8 -!ARAC/OH + KSPARSE(2, 311)=4 +!ONIT/NO3 KSPARSE(1, 312)=26 - KSPARSE(2, 312)=15 -!ARAC/ARAL + KSPARSE(2, 312)=5 +!ONIT/OH KSPARSE(1, 313)=26 - KSPARSE(2, 313)=25 -!ARAC/ARAC + KSPARSE(2, 313)=14 +!ONIT/HO2 KSPARSE(1, 314)=26 - KSPARSE(2, 314)=26 -!PAH/OH - KSPARSE(1, 315)=27 - KSPARSE(2, 315)=15 -!PAH/PAH - KSPARSE(1, 316)=27 + KSPARSE(2, 314)=15 +!ONIT/ONIT + KSPARSE(1, 315)=26 + KSPARSE(2, 315)=26 +!ONIT/PAN + KSPARSE(1, 316)=26 KSPARSE(2, 316)=27 -!HCHO/NO - KSPARSE(1, 317)=28 - KSPARSE(2, 317)=1 -!HCHO/O3 - KSPARSE(1, 318)=28 - KSPARSE(2, 318)=3 -!HCHO/NO3 - KSPARSE(1, 319)=28 - KSPARSE(2, 319)=8 -!HCHO/HO2 - KSPARSE(1, 320)=28 - KSPARSE(2, 320)=10 -!HCHO/OH - KSPARSE(1, 321)=28 - KSPARSE(2, 321)=15 -!HCHO/ETHE - KSPARSE(1, 322)=28 - KSPARSE(2, 322)=16 -!HCHO/OLEL - KSPARSE(1, 323)=28 - KSPARSE(2, 323)=17 -!HCHO/OLEH - KSPARSE(1, 324)=28 - KSPARSE(2, 324)=18 -!HCHO/HCHO - KSPARSE(1, 325)=28 - KSPARSE(2, 325)=28 -!HCHO/MEOH - KSPARSE(1, 326)=28 - KSPARSE(2, 326)=32 -!HCHO/ISOP - KSPARSE(1, 327)=28 - KSPARSE(2, 327)=35 -!HCHO/MVK - KSPARSE(1, 328)=28 - KSPARSE(2, 328)=39 -!HCHO/MCR - KSPARSE(1, 329)=28 - KSPARSE(2, 329)=40 -!HCHO/RO2T +!ONIT/MO2 + KSPARSE(1, 317)=26 + KSPARSE(2, 317)=32 +!ONIT/ALKAP + KSPARSE(1, 318)=26 + KSPARSE(2, 318)=33 +!ONIT/BIOP + KSPARSE(1, 319)=26 + KSPARSE(2, 319)=35 +!ONIT/PHO + KSPARSE(1, 320)=26 + KSPARSE(2, 320)=36 +!ONIT/AROP + KSPARSE(1, 321)=26 + KSPARSE(2, 321)=38 +!ONIT/CARBOP + KSPARSE(1, 322)=26 + KSPARSE(2, 322)=39 +!ONIT/OLN + KSPARSE(1, 323)=26 + KSPARSE(2, 323)=40 +!PAN/O3 + KSPARSE(1, 324)=27 + KSPARSE(2, 324)=1 +!PAN/NO2 + KSPARSE(1, 325)=27 + KSPARSE(2, 325)=4 +!PAN/NO3 + KSPARSE(1, 326)=27 + KSPARSE(2, 326)=5 +!PAN/OH + KSPARSE(1, 327)=27 + KSPARSE(2, 327)=14 +!PAN/PAN + KSPARSE(1, 328)=27 + KSPARSE(2, 328)=27 +!PAN/CARBOP + KSPARSE(1, 329)=27 + KSPARSE(2, 329)=39 +!OP1/OH KSPARSE(1, 330)=28 - KSPARSE(2, 330)=85 -!HCHO/RO21 + KSPARSE(2, 330)=14 +!OP1/HO2 KSPARSE(1, 331)=28 - KSPARSE(2, 331)=86 -!HCHO/WC_HCHO + KSPARSE(2, 331)=15 +!OP1/OP1 KSPARSE(1, 332)=28 - KSPARSE(2, 332)=108 -!HCHO/WR_HCHO + KSPARSE(2, 332)=28 +!OP1/MO2 KSPARSE(1, 333)=28 - KSPARSE(2, 333)=145 -!ALD2/NO - KSPARSE(1, 334)=29 - KSPARSE(2, 334)=1 -!ALD2/O3 - KSPARSE(1, 335)=29 - KSPARSE(2, 335)=3 -!ALD2/NO3 + KSPARSE(2, 333)=32 +!OP1/WC_OP1 + KSPARSE(1, 334)=28 + KSPARSE(2, 334)=61 +!OP1/WR_OP1 + KSPARSE(1, 335)=28 + KSPARSE(2, 335)=86 +!OP2/O3 KSPARSE(1, 336)=29 - KSPARSE(2, 336)=8 -!ALD2/HO2 + KSPARSE(2, 336)=1 +!OP2/OH KSPARSE(1, 337)=29 - KSPARSE(2, 337)=10 -!ALD2/OH + KSPARSE(2, 337)=14 +!OP2/HO2 KSPARSE(1, 338)=29 KSPARSE(2, 338)=15 -!ALD2/OLEL +!OP2/CARBO KSPARSE(1, 339)=29 - KSPARSE(2, 339)=17 -!ALD2/ALD2 + KSPARSE(2, 339)=25 +!OP2/OP2 KSPARSE(1, 340)=29 KSPARSE(2, 340)=29 -!ALD2/ETOH +!OP2/ALKAP KSPARSE(1, 341)=29 KSPARSE(2, 341)=33 -!ALD2/ISOP +!OP2/ALKEP KSPARSE(1, 342)=29 - KSPARSE(2, 342)=35 -!ALD2/MVK + KSPARSE(2, 342)=34 +!OP2/BIOP KSPARSE(1, 343)=29 - KSPARSE(2, 343)=39 -!ALD2/MCR + KSPARSE(2, 343)=35 +!OP2/AROP KSPARSE(1, 344)=29 - KSPARSE(2, 344)=40 -!ALD2/RO2T + KSPARSE(2, 344)=38 +!OP2/CARBOP KSPARSE(1, 345)=29 - KSPARSE(2, 345)=85 -!ALD2/RO25 + KSPARSE(2, 345)=39 +!OP2/XO2 KSPARSE(1, 346)=29 - KSPARSE(2, 346)=87 -!ALD2/WC_ALD2 - KSPARSE(1, 347)=29 - KSPARSE(2, 347)=109 -!ALD2/WR_ALD2 - KSPARSE(1, 348)=29 - KSPARSE(2, 348)=146 -!KETL/NO + KSPARSE(2, 346)=41 +!ORA1/O3 + KSPARSE(1, 347)=30 + KSPARSE(2, 347)=1 +!ORA1/OH + KSPARSE(1, 348)=30 + KSPARSE(2, 348)=14 +!ORA1/ALKA KSPARSE(1, 349)=30 - KSPARSE(2, 349)=1 -!KETL/HO2 + KSPARSE(2, 349)=18 +!ORA1/ALKE KSPARSE(1, 350)=30 - KSPARSE(2, 350)=10 -!KETL/OH + KSPARSE(2, 350)=19 +!ORA1/BIO KSPARSE(1, 351)=30 - KSPARSE(2, 351)=15 -!KETL/KETL + KSPARSE(2, 351)=20 +!ORA1/CARBO KSPARSE(1, 352)=30 - KSPARSE(2, 352)=30 -!KETL/MVK + KSPARSE(2, 352)=25 +!ORA1/PAN KSPARSE(1, 353)=30 - KSPARSE(2, 353)=39 -!KETL/RO2T + KSPARSE(2, 353)=27 +!ORA1/ORA1 KSPARSE(1, 354)=30 - KSPARSE(2, 354)=85 -!KETL/WC_KETL + KSPARSE(2, 354)=30 +!ORA1/WC_ORA1 KSPARSE(1, 355)=30 - KSPARSE(2, 355)=112 -!KETL/WR_KETL + KSPARSE(2, 355)=58 +!ORA1/WR_ORA1 KSPARSE(1, 356)=30 - KSPARSE(2, 356)=149 -!KETH/OH + KSPARSE(2, 356)=83 +!ORA2/O3 KSPARSE(1, 357)=31 - KSPARSE(2, 357)=15 -!KETH/KETH + KSPARSE(2, 357)=1 +!ORA2/OH KSPARSE(1, 358)=31 - KSPARSE(2, 358)=31 -!MEOH/OH - KSPARSE(1, 359)=32 - KSPARSE(2, 359)=15 -!MEOH/MEOH - KSPARSE(1, 360)=32 - KSPARSE(2, 360)=32 -!MEOH/WC_MEOH - KSPARSE(1, 361)=32 - KSPARSE(2, 361)=105 -!MEOH/WR_MEOH - KSPARSE(1, 362)=32 - KSPARSE(2, 362)=142 -!ETOH/OH - KSPARSE(1, 363)=33 - KSPARSE(2, 363)=15 -!ETOH/ETOH - KSPARSE(1, 364)=33 - KSPARSE(2, 364)=33 -!ETOH/WC_ETOH - KSPARSE(1, 365)=33 - KSPARSE(2, 365)=106 -!ETOH/WR_ETOH - KSPARSE(1, 366)=33 - KSPARSE(2, 366)=143 -!ALCH/OH - KSPARSE(1, 367)=34 - KSPARSE(2, 367)=15 -!ALCH/ALCH - KSPARSE(1, 368)=34 - KSPARSE(2, 368)=34 -!ALCH/WC_ALCH - KSPARSE(1, 369)=34 - KSPARSE(2, 369)=107 -!ALCH/WR_ALCH - KSPARSE(1, 370)=34 - KSPARSE(2, 370)=144 -!ISOP/O3 - KSPARSE(1, 371)=35 - KSPARSE(2, 371)=3 -!ISOP/NO3 - KSPARSE(1, 372)=35 - KSPARSE(2, 372)=8 -!ISOP/OH - KSPARSE(1, 373)=35 - KSPARSE(2, 373)=15 -!ISOP/ISOP - KSPARSE(1, 374)=35 - KSPARSE(2, 374)=35 -!BIOL/O3 - KSPARSE(1, 375)=36 - KSPARSE(2, 375)=3 -!BIOL/NO3 - KSPARSE(1, 376)=36 - KSPARSE(2, 376)=8 -!BIOL/OH - KSPARSE(1, 377)=36 - KSPARSE(2, 377)=15 -!BIOL/BIOL - KSPARSE(1, 378)=36 - KSPARSE(2, 378)=36 -!BIOH/O3 - KSPARSE(1, 379)=37 - KSPARSE(2, 379)=3 -!BIOH/NO3 - KSPARSE(1, 380)=37 - KSPARSE(2, 380)=8 -!BIOH/OH - KSPARSE(1, 381)=37 - KSPARSE(2, 381)=15 -!BIOH/BIOH - KSPARSE(1, 382)=37 - KSPARSE(2, 382)=37 -!MTBE/OH - KSPARSE(1, 383)=38 - KSPARSE(2, 383)=15 -!MTBE/MTBE - KSPARSE(1, 384)=38 - KSPARSE(2, 384)=38 -!MVK/NO - KSPARSE(1, 385)=39 - KSPARSE(2, 385)=1 -!MVK/O3 - KSPARSE(1, 386)=39 - KSPARSE(2, 386)=3 -!MVK/HO2 - KSPARSE(1, 387)=39 - KSPARSE(2, 387)=10 -!MVK/OH - KSPARSE(1, 388)=39 - KSPARSE(2, 388)=15 -!MVK/ISOP - KSPARSE(1, 389)=39 - KSPARSE(2, 389)=35 -!MVK/MVK - KSPARSE(1, 390)=39 - KSPARSE(2, 390)=39 -!MVK/RO2T - KSPARSE(1, 391)=39 - KSPARSE(2, 391)=85 -!MCR/NO - KSPARSE(1, 392)=40 - KSPARSE(2, 392)=1 -!MCR/O3 - KSPARSE(1, 393)=40 - KSPARSE(2, 393)=3 -!MCR/NO3 - KSPARSE(1, 394)=40 - KSPARSE(2, 394)=8 -!MCR/HO2 - KSPARSE(1, 395)=40 - KSPARSE(2, 395)=10 -!MCR/OH - KSPARSE(1, 396)=40 - KSPARSE(2, 396)=15 -!MCR/ISOP - KSPARSE(1, 397)=40 - KSPARSE(2, 397)=35 -!MCR/MCR - KSPARSE(1, 398)=40 - KSPARSE(2, 398)=40 -!MCR/RO2T - KSPARSE(1, 399)=40 - KSPARSE(2, 399)=85 -!MGLY/NO - KSPARSE(1, 400)=41 - KSPARSE(2, 400)=1 -!MGLY/O3 - KSPARSE(1, 401)=41 - KSPARSE(2, 401)=3 -!MGLY/NO3 - KSPARSE(1, 402)=41 - KSPARSE(2, 402)=8 -!MGLY/HO2 - KSPARSE(1, 403)=41 - KSPARSE(2, 403)=10 -!MGLY/OH - KSPARSE(1, 404)=41 - KSPARSE(2, 404)=15 -!MGLY/MVK - KSPARSE(1, 405)=41 - KSPARSE(2, 405)=39 -!MGLY/MCR - KSPARSE(1, 406)=41 - KSPARSE(2, 406)=40 -!MGLY/MGLY - KSPARSE(1, 407)=41 - KSPARSE(2, 407)=41 -!MGLY/RO2T - KSPARSE(1, 408)=41 - KSPARSE(2, 408)=85 -!MGLY/WC_MGLY - KSPARSE(1, 409)=41 - KSPARSE(2, 409)=111 -!MGLY/WR_MGLY - KSPARSE(1, 410)=41 - KSPARSE(2, 410)=148 -!GLY/GLY - KSPARSE(1, 411)=42 - KSPARSE(2, 411)=42 -!GLY/WC_GLY - KSPARSE(1, 412)=42 - KSPARSE(2, 412)=110 -!GLY/WR_GLY - KSPARSE(1, 413)=42 - KSPARSE(2, 413)=147 -!ORA1/O3 - KSPARSE(1, 414)=43 - KSPARSE(2, 414)=3 -!ORA1/OH - KSPARSE(1, 415)=43 - KSPARSE(2, 415)=15 -!ORA1/ETHE - KSPARSE(1, 416)=43 - KSPARSE(2, 416)=16 -!ORA1/OLEL - KSPARSE(1, 417)=43 - KSPARSE(2, 417)=17 -!ORA1/ISOP - KSPARSE(1, 418)=43 - KSPARSE(2, 418)=35 -!ORA1/MVK - KSPARSE(1, 419)=43 - KSPARSE(2, 419)=39 -!ORA1/MCR - KSPARSE(1, 420)=43 - KSPARSE(2, 420)=40 -!ORA1/ORA1 - KSPARSE(1, 421)=43 - KSPARSE(2, 421)=43 -!ORA1/WC_ORA1 - KSPARSE(1, 422)=43 - KSPARSE(2, 422)=113 -!ORA1/WR_ORA1 - KSPARSE(1, 423)=43 - KSPARSE(2, 423)=150 -!ORA2/O3 - KSPARSE(1, 424)=44 - KSPARSE(2, 424)=3 + KSPARSE(2, 358)=14 !ORA2/HO2 - KSPARSE(1, 425)=44 - KSPARSE(2, 425)=10 -!ORA2/OH - KSPARSE(1, 426)=44 - KSPARSE(2, 426)=15 -!ORA2/OLEL - KSPARSE(1, 427)=44 - KSPARSE(2, 427)=17 + KSPARSE(1, 359)=31 + KSPARSE(2, 359)=15 +!ORA2/ALKE + KSPARSE(1, 360)=31 + KSPARSE(2, 360)=19 +!ORA2/BIO + KSPARSE(1, 361)=31 + KSPARSE(2, 361)=20 +!ORA2/CARBO + KSPARSE(1, 362)=31 + KSPARSE(2, 362)=25 !ORA2/ORA2 - KSPARSE(1, 428)=44 - KSPARSE(2, 428)=44 + KSPARSE(1, 363)=31 + KSPARSE(2, 363)=31 +!ORA2/MO2 + KSPARSE(1, 364)=31 + KSPARSE(2, 364)=32 +!ORA2/ALKAP + KSPARSE(1, 365)=31 + KSPARSE(2, 365)=33 +!ORA2/ALKEP + KSPARSE(1, 366)=31 + KSPARSE(2, 366)=34 +!ORA2/BIOP + KSPARSE(1, 367)=31 + KSPARSE(2, 367)=35 +!ORA2/CARBOP + KSPARSE(1, 368)=31 + KSPARSE(2, 368)=39 +!ORA2/OLN + KSPARSE(1, 369)=31 + KSPARSE(2, 369)=40 !ORA2/WC_ORA2 - KSPARSE(1, 429)=44 - KSPARSE(2, 429)=114 + KSPARSE(1, 370)=31 + KSPARSE(2, 370)=59 !ORA2/WR_ORA2 - KSPARSE(1, 430)=44 - KSPARSE(2, 430)=151 -!ACID/O3 - KSPARSE(1, 431)=45 - KSPARSE(2, 431)=3 -!ACID/HO2 - KSPARSE(1, 432)=45 - KSPARSE(2, 432)=10 -!ACID/OH - KSPARSE(1, 433)=45 - KSPARSE(2, 433)=15 -!ACID/OLEH - KSPARSE(1, 434)=45 - KSPARSE(2, 434)=18 -!ACID/ACID - KSPARSE(1, 435)=45 - KSPARSE(2, 435)=45 -!ACID/WC_ACID - KSPARSE(1, 436)=45 - KSPARSE(2, 436)=115 -!ACID/WR_ACID - KSPARSE(1, 437)=45 - KSPARSE(2, 437)=152 -!UR28/HO2 - KSPARSE(1, 438)=46 - KSPARSE(2, 438)=10 -!UR28/UR28 - KSPARSE(1, 439)=46 - KSPARSE(2, 439)=46 -!UR28/WC_UR28 - KSPARSE(1, 440)=46 - KSPARSE(2, 440)=118 -!UR28/WR_UR28 - KSPARSE(1, 441)=46 - KSPARSE(2, 441)=155 -!UR21/O3 - KSPARSE(1, 442)=47 - KSPARSE(2, 442)=3 -!UR21/HO2 - KSPARSE(1, 443)=47 - KSPARSE(2, 443)=10 -!UR21/MVK - KSPARSE(1, 444)=47 - KSPARSE(2, 444)=39 -!UR21/UR21 - KSPARSE(1, 445)=47 - KSPARSE(2, 445)=47 -!UR21/WC_UR21 - KSPARSE(1, 446)=47 - KSPARSE(2, 446)=117 -!UR21/WR_UR21 - KSPARSE(1, 447)=47 - KSPARSE(2, 447)=154 -!URG2/OH - KSPARSE(1, 448)=48 + KSPARSE(1, 371)=31 + KSPARSE(2, 371)=84 +!MO2/O3 + KSPARSE(1, 372)=32 + KSPARSE(2, 372)=1 +!MO2/NO + KSPARSE(1, 373)=32 + KSPARSE(2, 373)=3 +!MO2/NO3 + KSPARSE(1, 374)=32 + KSPARSE(2, 374)=5 +!MO2/OH + KSPARSE(1, 375)=32 + KSPARSE(2, 375)=14 +!MO2/HO2 + KSPARSE(1, 376)=32 + KSPARSE(2, 376)=15 +!MO2/CH4 + KSPARSE(1, 377)=32 + KSPARSE(2, 377)=16 +!MO2/ALKE + KSPARSE(1, 378)=32 + KSPARSE(2, 378)=19 +!MO2/BIO + KSPARSE(1, 379)=32 + KSPARSE(2, 379)=20 +!MO2/ALD + KSPARSE(1, 380)=32 + KSPARSE(2, 380)=23 +!MO2/OP1 + KSPARSE(1, 381)=32 + KSPARSE(2, 381)=28 +!MO2/OP2 + KSPARSE(1, 382)=32 + KSPARSE(2, 382)=29 +!MO2/MO2 + KSPARSE(1, 383)=32 + KSPARSE(2, 383)=32 +!MO2/ALKAP + KSPARSE(1, 384)=32 + KSPARSE(2, 384)=33 +!MO2/ALKEP + KSPARSE(1, 385)=32 + KSPARSE(2, 385)=34 +!MO2/BIOP + KSPARSE(1, 386)=32 + KSPARSE(2, 386)=35 +!MO2/AROP + KSPARSE(1, 387)=32 + KSPARSE(2, 387)=38 +!MO2/CARBOP + KSPARSE(1, 388)=32 + KSPARSE(2, 388)=39 +!MO2/OLN + KSPARSE(1, 389)=32 + KSPARSE(2, 389)=40 +!MO2/XO2 + KSPARSE(1, 390)=32 + KSPARSE(2, 390)=41 +!MO2/WC_MO2 + KSPARSE(1, 391)=32 + KSPARSE(2, 391)=60 +!MO2/WR_MO2 + KSPARSE(1, 392)=32 + KSPARSE(2, 392)=85 +!ALKAP/O3 + KSPARSE(1, 393)=33 + KSPARSE(2, 393)=1 +!ALKAP/NO + KSPARSE(1, 394)=33 + KSPARSE(2, 394)=3 +!ALKAP/NO3 + KSPARSE(1, 395)=33 + KSPARSE(2, 395)=5 +!ALKAP/OH + KSPARSE(1, 396)=33 + KSPARSE(2, 396)=14 +!ALKAP/HO2 + KSPARSE(1, 397)=33 + KSPARSE(2, 397)=15 +!ALKAP/ETH + KSPARSE(1, 398)=33 + KSPARSE(2, 398)=17 +!ALKAP/ALKA + KSPARSE(1, 399)=33 + KSPARSE(2, 399)=18 +!ALKAP/ALKE + KSPARSE(1, 400)=33 + KSPARSE(2, 400)=19 +!ALKAP/BIO + KSPARSE(1, 401)=33 + KSPARSE(2, 401)=20 +!ALKAP/KET + KSPARSE(1, 402)=33 + KSPARSE(2, 402)=24 +!ALKAP/ONIT + KSPARSE(1, 403)=33 + KSPARSE(2, 403)=26 +!ALKAP/OP2 + KSPARSE(1, 404)=33 + KSPARSE(2, 404)=29 +!ALKAP/MO2 + KSPARSE(1, 405)=33 + KSPARSE(2, 405)=32 +!ALKAP/ALKAP + KSPARSE(1, 406)=33 + KSPARSE(2, 406)=33 +!ALKAP/CARBOP + KSPARSE(1, 407)=33 + KSPARSE(2, 407)=39 +!ALKEP/NO + KSPARSE(1, 408)=34 + KSPARSE(2, 408)=3 +!ALKEP/NO3 + KSPARSE(1, 409)=34 + KSPARSE(2, 409)=5 +!ALKEP/OH + KSPARSE(1, 410)=34 + KSPARSE(2, 410)=14 +!ALKEP/HO2 + KSPARSE(1, 411)=34 + KSPARSE(2, 411)=15 +!ALKEP/ALKE + KSPARSE(1, 412)=34 + KSPARSE(2, 412)=19 +!ALKEP/MO2 + KSPARSE(1, 413)=34 + KSPARSE(2, 413)=32 +!ALKEP/ALKEP + KSPARSE(1, 414)=34 + KSPARSE(2, 414)=34 +!ALKEP/CARBOP + KSPARSE(1, 415)=34 + KSPARSE(2, 415)=39 +!BIOP/NO + KSPARSE(1, 416)=35 + KSPARSE(2, 416)=3 +!BIOP/NO3 + KSPARSE(1, 417)=35 + KSPARSE(2, 417)=5 +!BIOP/OH + KSPARSE(1, 418)=35 + KSPARSE(2, 418)=14 +!BIOP/HO2 + KSPARSE(1, 419)=35 + KSPARSE(2, 419)=15 +!BIOP/ALKE + KSPARSE(1, 420)=35 + KSPARSE(2, 420)=19 +!BIOP/BIO + KSPARSE(1, 421)=35 + KSPARSE(2, 421)=20 +!BIOP/MO2 + KSPARSE(1, 422)=35 + KSPARSE(2, 422)=32 +!BIOP/BIOP + KSPARSE(1, 423)=35 + KSPARSE(2, 423)=35 +!BIOP/CARBOP + KSPARSE(1, 424)=35 + KSPARSE(2, 424)=39 +!PHO/NO2 + KSPARSE(1, 425)=36 + KSPARSE(2, 425)=4 +!PHO/NO3 + KSPARSE(1, 426)=36 + KSPARSE(2, 426)=5 +!PHO/OH + KSPARSE(1, 427)=36 + KSPARSE(2, 427)=14 +!PHO/HO2 + KSPARSE(1, 428)=36 + KSPARSE(2, 428)=15 +!PHO/ARO + KSPARSE(1, 429)=36 + KSPARSE(2, 429)=21 +!PHO/PHO + KSPARSE(1, 430)=36 + KSPARSE(2, 430)=36 +!ADD/O3 + KSPARSE(1, 431)=37 + KSPARSE(2, 431)=1 +!ADD/NO2 + KSPARSE(1, 432)=37 + KSPARSE(2, 432)=4 +!ADD/OH + KSPARSE(1, 433)=37 + KSPARSE(2, 433)=14 +!ADD/ARO + KSPARSE(1, 434)=37 + KSPARSE(2, 434)=21 +!ADD/ADD + KSPARSE(1, 435)=37 + KSPARSE(2, 435)=37 +!AROP/NO + KSPARSE(1, 436)=38 + KSPARSE(2, 436)=3 +!AROP/NO3 + KSPARSE(1, 437)=38 + KSPARSE(2, 437)=5 +!AROP/HO2 + KSPARSE(1, 438)=38 + KSPARSE(2, 438)=15 +!AROP/MO2 + KSPARSE(1, 439)=38 + KSPARSE(2, 439)=32 +!AROP/ADD + KSPARSE(1, 440)=38 + KSPARSE(2, 440)=37 +!AROP/AROP + KSPARSE(1, 441)=38 + KSPARSE(2, 441)=38 +!AROP/CARBOP + KSPARSE(1, 442)=38 + KSPARSE(2, 442)=39 +!CARBOP/O3 + KSPARSE(1, 443)=39 + KSPARSE(2, 443)=1 +!CARBOP/NO + KSPARSE(1, 444)=39 + KSPARSE(2, 444)=3 +!CARBOP/NO2 + KSPARSE(1, 445)=39 + KSPARSE(2, 445)=4 +!CARBOP/NO3 + KSPARSE(1, 446)=39 + KSPARSE(2, 446)=5 +!CARBOP/OH + KSPARSE(1, 447)=39 + KSPARSE(2, 447)=14 +!CARBOP/HO2 + KSPARSE(1, 448)=39 KSPARSE(2, 448)=15 -!URG2/URG2 - KSPARSE(1, 449)=48 - KSPARSE(2, 449)=48 -!URG2/RPG2 - KSPARSE(1, 450)=48 - KSPARSE(2, 450)=50 -!URG2/RP18 - KSPARSE(1, 451)=48 - KSPARSE(2, 451)=51 -!UR26/OH - KSPARSE(1, 452)=49 - KSPARSE(2, 452)=15 -!UR26/UR26 - KSPARSE(1, 453)=49 - KSPARSE(2, 453)=49 -!UR26/RP11 - KSPARSE(1, 454)=49 - KSPARSE(2, 454)=73 -!RPG2/NO - KSPARSE(1, 455)=50 - KSPARSE(2, 455)=1 -!RPG2/HO2 - KSPARSE(1, 456)=50 - KSPARSE(2, 456)=10 -!RPG2/OH - KSPARSE(1, 457)=50 - KSPARSE(2, 457)=15 -!RPG2/RPG2 - KSPARSE(1, 458)=50 - KSPARSE(2, 458)=50 -!RPG2/RPG3 - KSPARSE(1, 459)=50 - KSPARSE(2, 459)=52 -!RPG2/RO2T - KSPARSE(1, 460)=50 - KSPARSE(2, 460)=85 -!RP18/OH - KSPARSE(1, 461)=51 - KSPARSE(2, 461)=15 -!RP18/RPG2 - KSPARSE(1, 462)=51 - KSPARSE(2, 462)=50 -!RP18/RP18 - KSPARSE(1, 463)=51 - KSPARSE(2, 463)=51 -!RPG3/NO - KSPARSE(1, 464)=52 - KSPARSE(2, 464)=1 -!RPG3/HO2 - KSPARSE(1, 465)=52 - KSPARSE(2, 465)=10 -!RPG3/OH - KSPARSE(1, 466)=52 +!CARBOP/ALKE + KSPARSE(1, 449)=39 + KSPARSE(2, 449)=19 +!CARBOP/BIO + KSPARSE(1, 450)=39 + KSPARSE(2, 450)=20 +!CARBOP/ALD + KSPARSE(1, 451)=39 + KSPARSE(2, 451)=23 +!CARBOP/KET + KSPARSE(1, 452)=39 + KSPARSE(2, 452)=24 +!CARBOP/CARBO + KSPARSE(1, 453)=39 + KSPARSE(2, 453)=25 +!CARBOP/PAN + KSPARSE(1, 454)=39 + KSPARSE(2, 454)=27 +!CARBOP/OP2 + KSPARSE(1, 455)=39 + KSPARSE(2, 455)=29 +!CARBOP/MO2 + KSPARSE(1, 456)=39 + KSPARSE(2, 456)=32 +!CARBOP/ALKAP + KSPARSE(1, 457)=39 + KSPARSE(2, 457)=33 +!CARBOP/ALKEP + KSPARSE(1, 458)=39 + KSPARSE(2, 458)=34 +!CARBOP/BIOP + KSPARSE(1, 459)=39 + KSPARSE(2, 459)=35 +!CARBOP/AROP + KSPARSE(1, 460)=39 + KSPARSE(2, 460)=38 +!CARBOP/CARBOP + KSPARSE(1, 461)=39 + KSPARSE(2, 461)=39 +!CARBOP/OLN + KSPARSE(1, 462)=39 + KSPARSE(2, 462)=40 +!CARBOP/XO2 + KSPARSE(1, 463)=39 + KSPARSE(2, 463)=41 +!OLN/NO + KSPARSE(1, 464)=40 + KSPARSE(2, 464)=3 +!OLN/NO3 + KSPARSE(1, 465)=40 + KSPARSE(2, 465)=5 +!OLN/HO2 + KSPARSE(1, 466)=40 KSPARSE(2, 466)=15 -!RPG3/RPG3 - KSPARSE(1, 467)=52 - KSPARSE(2, 467)=52 -!RPG3/RO2T - KSPARSE(1, 468)=52 - KSPARSE(2, 468)=85 -!URG4/O3 - KSPARSE(1, 469)=53 - KSPARSE(2, 469)=3 -!URG4/HO2 - KSPARSE(1, 470)=53 - KSPARSE(2, 470)=10 -!URG4/BIOL - KSPARSE(1, 471)=53 - KSPARSE(2, 471)=36 -!URG4/URG4 - KSPARSE(1, 472)=53 - KSPARSE(2, 472)=53 -!UR8/O3 - KSPARSE(1, 473)=54 - KSPARSE(2, 473)=3 -!UR8/BIOH - KSPARSE(1, 474)=54 - KSPARSE(2, 474)=37 -!UR8/UR8 - KSPARSE(1, 475)=54 - KSPARSE(2, 475)=54 -!UR17/NO - KSPARSE(1, 476)=55 - KSPARSE(2, 476)=1 -!UR17/HO2 - KSPARSE(1, 477)=55 - KSPARSE(2, 477)=10 -!UR17/UR17 - KSPARSE(1, 478)=55 - KSPARSE(2, 478)=55 -!UR17/RO2T - KSPARSE(1, 479)=55 - KSPARSE(2, 479)=85 -!UR7/NO - KSPARSE(1, 480)=56 - KSPARSE(2, 480)=1 -!UR7/O3 - KSPARSE(1, 481)=56 - KSPARSE(2, 481)=3 -!UR7/HO2 - KSPARSE(1, 482)=56 - KSPARSE(2, 482)=10 -!UR7/BIOH - KSPARSE(1, 483)=56 - KSPARSE(2, 483)=37 -!UR7/UR7 - KSPARSE(1, 484)=56 - KSPARSE(2, 484)=56 -!UR7/RO2T - KSPARSE(1, 485)=56 - KSPARSE(2, 485)=85 -!RPR3/NO - KSPARSE(1, 486)=57 - KSPARSE(2, 486)=1 -!RPR3/O3 - KSPARSE(1, 487)=57 - KSPARSE(2, 487)=3 -!RPR3/NO3 - KSPARSE(1, 488)=57 - KSPARSE(2, 488)=8 -!RPR3/HO2 - KSPARSE(1, 489)=57 - KSPARSE(2, 489)=10 -!RPR3/OH - KSPARSE(1, 490)=57 - KSPARSE(2, 490)=15 -!RPR3/BIOL - KSPARSE(1, 491)=57 - KSPARSE(2, 491)=36 -!RPR3/RPR3 - KSPARSE(1, 492)=57 - KSPARSE(2, 492)=57 -!RPR3/RO2T - KSPARSE(1, 493)=57 - KSPARSE(2, 493)=85 -!URG6/NO - KSPARSE(1, 494)=58 - KSPARSE(2, 494)=1 -!URG6/OH - KSPARSE(1, 495)=58 - KSPARSE(2, 495)=15 -!URG6/URG6 - KSPARSE(1, 496)=58 - KSPARSE(2, 496)=58 -!URG6/RPG7 - KSPARSE(1, 497)=58 - KSPARSE(2, 497)=63 -!UR22/NO2 - KSPARSE(1, 498)=59 - KSPARSE(2, 498)=2 -!UR22/UR22 - KSPARSE(1, 499)=59 - KSPARSE(2, 499)=59 -!URG7/NO2 - KSPARSE(1, 500)=60 - KSPARSE(2, 500)=2 -!URG7/OH - KSPARSE(1, 501)=60 - KSPARSE(2, 501)=15 -!URG7/ARAC - KSPARSE(1, 502)=60 - KSPARSE(2, 502)=26 -!URG7/URG7 - KSPARSE(1, 503)=60 - KSPARSE(2, 503)=60 -!URG7/RPR7 - KSPARSE(1, 504)=60 - KSPARSE(2, 504)=62 -!URG7/RPR5 - KSPARSE(1, 505)=60 - KSPARSE(2, 505)=70 -!URG7/RPRL - KSPARSE(1, 506)=60 - KSPARSE(2, 506)=75 -!RPR4/NO2 - KSPARSE(1, 507)=61 - KSPARSE(2, 507)=2 -!RPR4/NO3 - KSPARSE(1, 508)=61 - KSPARSE(2, 508)=8 -!RPR4/RPR4 - KSPARSE(1, 509)=61 - KSPARSE(2, 509)=61 -!RPR7/NO - KSPARSE(1, 510)=62 - KSPARSE(2, 510)=1 -!RPR7/HO2 - KSPARSE(1, 511)=62 - KSPARSE(2, 511)=10 -!RPR7/OH - KSPARSE(1, 512)=62 - KSPARSE(2, 512)=15 -!RPR7/RPR7 - KSPARSE(1, 513)=62 - KSPARSE(2, 513)=62 -!RPR7/RPRL - KSPARSE(1, 514)=62 - KSPARSE(2, 514)=75 -!RPR7/RO2T - KSPARSE(1, 515)=62 - KSPARSE(2, 515)=85 -!RPG7/NO - KSPARSE(1, 516)=63 - KSPARSE(2, 516)=1 -!RPG7/HO2 - KSPARSE(1, 517)=63 - KSPARSE(2, 517)=10 -!RPG7/OH - KSPARSE(1, 518)=63 - KSPARSE(2, 518)=15 -!RPG7/RPG7 - KSPARSE(1, 519)=63 - KSPARSE(2, 519)=63 -!RPG7/RO2T - KSPARSE(1, 520)=63 - KSPARSE(2, 520)=85 -!URG8/NO - KSPARSE(1, 521)=64 - KSPARSE(2, 521)=1 -!URG8/NO2 - KSPARSE(1, 522)=64 - KSPARSE(2, 522)=2 -!URG8/OH - KSPARSE(1, 523)=64 - KSPARSE(2, 523)=15 -!URG8/PAH - KSPARSE(1, 524)=64 - KSPARSE(2, 524)=27 -!URG8/URG8 - KSPARSE(1, 525)=64 - KSPARSE(2, 525)=64 -!UR19/NO - KSPARSE(1, 526)=65 - KSPARSE(2, 526)=1 -!UR19/HO2 - KSPARSE(1, 527)=65 - KSPARSE(2, 527)=10 -!UR19/UR19 - KSPARSE(1, 528)=65 - KSPARSE(2, 528)=65 -!UR19/RO2T - KSPARSE(1, 529)=65 - KSPARSE(2, 529)=85 -!URG9/NO - KSPARSE(1, 530)=66 - KSPARSE(2, 530)=1 -!URG9/HO2 - KSPARSE(1, 531)=66 - KSPARSE(2, 531)=10 -!URG9/URG9 - KSPARSE(1, 532)=66 - KSPARSE(2, 532)=66 -!URG9/RO2T - KSPARSE(1, 533)=66 - KSPARSE(2, 533)=85 -!AP7/NO - KSPARSE(1, 534)=67 - KSPARSE(2, 534)=1 -!AP7/AP7 - KSPARSE(1, 535)=67 - KSPARSE(2, 535)=67 -!URG10/NO - KSPARSE(1, 536)=68 - KSPARSE(2, 536)=1 -!URG10/BIOL - KSPARSE(1, 537)=68 - KSPARSE(2, 537)=36 -!URG10/URG10 - KSPARSE(1, 538)=68 - KSPARSE(2, 538)=68 -!RPR1/NO - KSPARSE(1, 539)=69 - KSPARSE(2, 539)=1 -!RPR1/O3 - KSPARSE(1, 540)=69 - KSPARSE(2, 540)=3 -!RPR1/NO3 - KSPARSE(1, 541)=69 - KSPARSE(2, 541)=8 -!RPR1/HO2 - KSPARSE(1, 542)=69 - KSPARSE(2, 542)=10 -!RPR1/OH - KSPARSE(1, 543)=69 - KSPARSE(2, 543)=15 -!RPR1/OLEH - KSPARSE(1, 544)=69 - KSPARSE(2, 544)=18 -!RPR1/RPR1 - KSPARSE(1, 545)=69 - KSPARSE(2, 545)=69 -!RPR1/RO2T - KSPARSE(1, 546)=69 - KSPARSE(2, 546)=85 -!RPR5/NO2 - KSPARSE(1, 547)=70 - KSPARSE(2, 547)=2 -!RPR5/OH - KSPARSE(1, 548)=70 - KSPARSE(2, 548)=15 -!RPR5/RPR5 - KSPARSE(1, 549)=70 - KSPARSE(2, 549)=70 -!RPR8/NO - KSPARSE(1, 550)=71 - KSPARSE(2, 550)=1 -!RPR8/NO3 - KSPARSE(1, 551)=71 - KSPARSE(2, 551)=8 -!RPR8/HO2 - KSPARSE(1, 552)=71 - KSPARSE(2, 552)=10 -!RPR8/OH - KSPARSE(1, 553)=71 - KSPARSE(2, 553)=15 -!RPR8/RPR8 - KSPARSE(1, 554)=71 - KSPARSE(2, 554)=71 -!RPR8/RO2T - KSPARSE(1, 555)=71 - KSPARSE(2, 555)=85 -!RP10/NO - KSPARSE(1, 556)=72 - KSPARSE(2, 556)=1 -!RP10/HO2 - KSPARSE(1, 557)=72 - KSPARSE(2, 557)=10 -!RP10/OH - KSPARSE(1, 558)=72 - KSPARSE(2, 558)=15 -!RP10/RP10 - KSPARSE(1, 559)=72 - KSPARSE(2, 559)=72 -!RP10/RO2T - KSPARSE(1, 560)=72 - KSPARSE(2, 560)=85 -!RP11/NO - KSPARSE(1, 561)=73 - KSPARSE(2, 561)=1 -!RP11/HO2 - KSPARSE(1, 562)=73 - KSPARSE(2, 562)=10 -!RP11/OH - KSPARSE(1, 563)=73 - KSPARSE(2, 563)=15 -!RP11/RP11 - KSPARSE(1, 564)=73 - KSPARSE(2, 564)=73 -!RP11/RO2T - KSPARSE(1, 565)=73 - KSPARSE(2, 565)=85 -!RP16/NO3 - KSPARSE(1, 566)=74 - KSPARSE(2, 566)=8 -!RP16/HO2 - KSPARSE(1, 567)=74 - KSPARSE(2, 567)=10 -!RP16/OH - KSPARSE(1, 568)=74 - KSPARSE(2, 568)=15 -!RP16/RP16 - KSPARSE(1, 569)=74 - KSPARSE(2, 569)=74 -!RP16/WC_RP16 - KSPARSE(1, 570)=74 - KSPARSE(2, 570)=116 -!RP16/WR_RP16 - KSPARSE(1, 571)=74 - KSPARSE(2, 571)=153 -!RPRL/NO - KSPARSE(1, 572)=75 - KSPARSE(2, 572)=1 -!RPRL/HO2 - KSPARSE(1, 573)=75 - KSPARSE(2, 573)=10 -!RPRL/OH - KSPARSE(1, 574)=75 - KSPARSE(2, 574)=15 -!RPRL/ARAL - KSPARSE(1, 575)=75 - KSPARSE(2, 575)=25 -!RPRL/RPRL - KSPARSE(1, 576)=75 - KSPARSE(2, 576)=75 -!RPRL/RO2T - KSPARSE(1, 577)=75 - KSPARSE(2, 577)=85 -!APAN/NO2 - KSPARSE(1, 578)=76 - KSPARSE(2, 578)=2 -!APAN/APAN - KSPARSE(1, 579)=76 - KSPARSE(2, 579)=76 -!PAN1/NO2 - KSPARSE(1, 580)=77 - KSPARSE(2, 580)=2 -!PAN1/PAN1 - KSPARSE(1, 581)=77 - KSPARSE(2, 581)=77 -!PAN2/NO2 - KSPARSE(1, 582)=78 - KSPARSE(2, 582)=2 -!PAN2/PAN2 - KSPARSE(1, 583)=78 - KSPARSE(2, 583)=78 -!PAN3/NO2 - KSPARSE(1, 584)=79 - KSPARSE(2, 584)=2 -!PAN3/PAN3 - KSPARSE(1, 585)=79 - KSPARSE(2, 585)=79 -!PAN4/NO2 - KSPARSE(1, 586)=80 - KSPARSE(2, 586)=2 -!PAN4/PAN4 - KSPARSE(1, 587)=80 - KSPARSE(2, 587)=80 -!PAN6/NO2 - KSPARSE(1, 588)=81 - KSPARSE(2, 588)=2 -!PAN6/PAN6 - KSPARSE(1, 589)=81 - KSPARSE(2, 589)=81 -!PAN7/NO2 - KSPARSE(1, 590)=82 - KSPARSE(2, 590)=2 -!PAN7/PAN7 - KSPARSE(1, 591)=82 - KSPARSE(2, 591)=82 -!PAN8/NO2 - KSPARSE(1, 592)=83 - KSPARSE(2, 592)=2 -!PAN8/PAN8 - KSPARSE(1, 593)=83 - KSPARSE(2, 593)=83 -!PN10/NO2 - KSPARSE(1, 594)=84 - KSPARSE(2, 594)=2 -!PN10/PN10 - KSPARSE(1, 595)=84 - KSPARSE(2, 595)=84 -!RO2T/NO - KSPARSE(1, 596)=85 - KSPARSE(2, 596)=1 -!RO2T/O3 - KSPARSE(1, 597)=85 - KSPARSE(2, 597)=3 -!RO2T/NO3 - KSPARSE(1, 598)=85 - KSPARSE(2, 598)=8 -!RO2T/HO2 - KSPARSE(1, 599)=85 - KSPARSE(2, 599)=10 -!RO2T/OH - KSPARSE(1, 600)=85 - KSPARSE(2, 600)=15 -!RO2T/ETHE - KSPARSE(1, 601)=85 - KSPARSE(2, 601)=16 -!RO2T/OLEL - KSPARSE(1, 602)=85 - KSPARSE(2, 602)=17 -!RO2T/OLEH - KSPARSE(1, 603)=85 - KSPARSE(2, 603)=18 -!RO2T/ALKL - KSPARSE(1, 604)=85 - KSPARSE(2, 604)=19 -!RO2T/ALKM - KSPARSE(1, 605)=85 - KSPARSE(2, 605)=20 -!RO2T/ALKH - KSPARSE(1, 606)=85 - KSPARSE(2, 606)=21 -!RO2T/AROL - KSPARSE(1, 607)=85 - KSPARSE(2, 607)=23 -!RO2T/AROO - KSPARSE(1, 608)=85 - KSPARSE(2, 608)=24 -!RO2T/ARAL - KSPARSE(1, 609)=85 - KSPARSE(2, 609)=25 -!RO2T/ARAC - KSPARSE(1, 610)=85 - KSPARSE(2, 610)=26 -!RO2T/PAH - KSPARSE(1, 611)=85 - KSPARSE(2, 611)=27 -!RO2T/ALD2 - KSPARSE(1, 612)=85 - KSPARSE(2, 612)=29 -!RO2T/KETL - KSPARSE(1, 613)=85 - KSPARSE(2, 613)=30 -!RO2T/KETH - KSPARSE(1, 614)=85 - KSPARSE(2, 614)=31 -!RO2T/ETOH - KSPARSE(1, 615)=85 - KSPARSE(2, 615)=33 -!RO2T/ALCH - KSPARSE(1, 616)=85 - KSPARSE(2, 616)=34 -!RO2T/ISOP - KSPARSE(1, 617)=85 - KSPARSE(2, 617)=35 -!RO2T/BIOL - KSPARSE(1, 618)=85 - KSPARSE(2, 618)=36 -!RO2T/BIOH - KSPARSE(1, 619)=85 - KSPARSE(2, 619)=37 -!RO2T/MTBE - KSPARSE(1, 620)=85 - KSPARSE(2, 620)=38 -!RO2T/MVK - KSPARSE(1, 621)=85 - KSPARSE(2, 621)=39 -!RO2T/MCR - KSPARSE(1, 622)=85 - KSPARSE(2, 622)=40 -!RO2T/MGLY - KSPARSE(1, 623)=85 - KSPARSE(2, 623)=41 -!RO2T/RPR3 - KSPARSE(1, 624)=85 - KSPARSE(2, 624)=57 -!RO2T/RPR1 - KSPARSE(1, 625)=85 - KSPARSE(2, 625)=69 -!RO2T/RPR8 - KSPARSE(1, 626)=85 - KSPARSE(2, 626)=71 -!RO2T/RP16 - KSPARSE(1, 627)=85 - KSPARSE(2, 627)=74 -!RO2T/APAN - KSPARSE(1, 628)=85 - KSPARSE(2, 628)=76 -!RO2T/PAN1 - KSPARSE(1, 629)=85 - KSPARSE(2, 629)=77 -!RO2T/PAN2 - KSPARSE(1, 630)=85 - KSPARSE(2, 630)=78 -!RO2T/PAN3 - KSPARSE(1, 631)=85 - KSPARSE(2, 631)=79 -!RO2T/PAN4 - KSPARSE(1, 632)=85 - KSPARSE(2, 632)=80 -!RO2T/PAN6 - KSPARSE(1, 633)=85 - KSPARSE(2, 633)=81 -!RO2T/PAN7 - KSPARSE(1, 634)=85 - KSPARSE(2, 634)=82 -!RO2T/PAN8 - KSPARSE(1, 635)=85 - KSPARSE(2, 635)=83 -!RO2T/PN10 - KSPARSE(1, 636)=85 - KSPARSE(2, 636)=84 -!RO2T/RO2T - KSPARSE(1, 637)=85 - KSPARSE(2, 637)=85 -!RO2T/RO21 - KSPARSE(1, 638)=85 - KSPARSE(2, 638)=86 -!RO2T/RO25 - KSPARSE(1, 639)=85 - KSPARSE(2, 639)=87 -!RO21/NO - KSPARSE(1, 640)=86 - KSPARSE(2, 640)=1 -!RO21/HO2 - KSPARSE(1, 641)=86 - KSPARSE(2, 641)=10 -!RO21/OH - KSPARSE(1, 642)=86 - KSPARSE(2, 642)=15 -!RO21/ETHE - KSPARSE(1, 643)=86 - KSPARSE(2, 643)=16 -!RO21/RO2T - KSPARSE(1, 644)=86 - KSPARSE(2, 644)=85 -!RO21/RO21 - KSPARSE(1, 645)=86 - KSPARSE(2, 645)=86 -!RO21/WC_RO21 - KSPARSE(1, 646)=86 - KSPARSE(2, 646)=103 -!RO21/WR_RO21 - KSPARSE(1, 647)=86 - KSPARSE(2, 647)=140 -!RO25/NO - KSPARSE(1, 648)=87 - KSPARSE(2, 648)=1 -!RO25/O3 - KSPARSE(1, 649)=87 - KSPARSE(2, 649)=3 -!RO25/HO2 - KSPARSE(1, 650)=87 - KSPARSE(2, 650)=10 -!RO25/OH - KSPARSE(1, 651)=87 - KSPARSE(2, 651)=15 -!RO25/OLEL - KSPARSE(1, 652)=87 - KSPARSE(2, 652)=17 -!RO25/ALKL - KSPARSE(1, 653)=87 - KSPARSE(2, 653)=19 -!RO25/ALD2 - KSPARSE(1, 654)=87 - KSPARSE(2, 654)=29 -!RO25/KETL - KSPARSE(1, 655)=87 - KSPARSE(2, 655)=30 -!RO25/KETH - KSPARSE(1, 656)=87 - KSPARSE(2, 656)=31 -!RO25/RO2T - KSPARSE(1, 657)=87 - KSPARSE(2, 657)=85 -!RO25/RO25 - KSPARSE(1, 658)=87 - KSPARSE(2, 658)=87 -!RO25/WC_RO25 - KSPARSE(1, 659)=87 - KSPARSE(2, 659)=104 -!RO25/WR_RO25 - KSPARSE(1, 660)=87 - KSPARSE(2, 660)=141 +!OLN/ALKE + KSPARSE(1, 467)=40 + KSPARSE(2, 467)=19 +!OLN/BIO + KSPARSE(1, 468)=40 + KSPARSE(2, 468)=20 +!OLN/CARBO + KSPARSE(1, 469)=40 + KSPARSE(2, 469)=25 +!OLN/MO2 + KSPARSE(1, 470)=40 + KSPARSE(2, 470)=32 +!OLN/CARBOP + KSPARSE(1, 471)=40 + KSPARSE(2, 471)=39 +!OLN/OLN + KSPARSE(1, 472)=40 + KSPARSE(2, 472)=40 +!XO2/O3 + KSPARSE(1, 473)=41 + KSPARSE(2, 473)=1 +!XO2/NO + KSPARSE(1, 474)=41 + KSPARSE(2, 474)=3 +!XO2/NO3 + KSPARSE(1, 475)=41 + KSPARSE(2, 475)=5 +!XO2/OH + KSPARSE(1, 476)=41 + KSPARSE(2, 476)=14 +!XO2/HO2 + KSPARSE(1, 477)=41 + KSPARSE(2, 477)=15 +!XO2/ALKE + KSPARSE(1, 478)=41 + KSPARSE(2, 478)=19 +!XO2/BIO + KSPARSE(1, 479)=41 + KSPARSE(2, 479)=20 +!XO2/ARO + KSPARSE(1, 480)=41 + KSPARSE(2, 480)=21 +!XO2/CARBO + KSPARSE(1, 481)=41 + KSPARSE(2, 481)=25 +!XO2/PAN + KSPARSE(1, 482)=41 + KSPARSE(2, 482)=27 +!XO2/OP2 + KSPARSE(1, 483)=41 + KSPARSE(2, 483)=29 +!XO2/MO2 + KSPARSE(1, 484)=41 + KSPARSE(2, 484)=32 +!XO2/ALKAP + KSPARSE(1, 485)=41 + KSPARSE(2, 485)=33 +!XO2/CARBOP + KSPARSE(1, 486)=41 + KSPARSE(2, 486)=39 +!XO2/XO2 + KSPARSE(1, 487)=41 + KSPARSE(2, 487)=41 !WC_O3/O3 - KSPARSE(1, 661)=88 - KSPARSE(2, 661)=3 + KSPARSE(1, 488)=42 + KSPARSE(2, 488)=1 !WC_O3/WC_O3 - KSPARSE(1, 662)=88 - KSPARSE(2, 662)=88 + KSPARSE(1, 489)=42 + KSPARSE(2, 489)=42 !WC_O3/WC_HO2 - KSPARSE(1, 663)=88 - KSPARSE(2, 663)=99 + KSPARSE(1, 490)=42 + KSPARSE(2, 490)=53 !WC_O3/WC_SO2 - KSPARSE(1, 664)=88 - KSPARSE(2, 664)=101 + KSPARSE(1, 491)=42 + KSPARSE(2, 491)=55 !WC_H2O2/H2O2 - KSPARSE(1, 665)=89 - KSPARSE(2, 665)=12 + KSPARSE(1, 492)=43 + KSPARSE(2, 492)=2 !WC_H2O2/WC_H2O2 - KSPARSE(1, 666)=89 - KSPARSE(2, 666)=89 + KSPARSE(1, 493)=43 + KSPARSE(2, 493)=43 !WC_H2O2/WC_OH - KSPARSE(1, 667)=89 - KSPARSE(2, 667)=98 + KSPARSE(1, 494)=43 + KSPARSE(2, 494)=52 !WC_H2O2/WC_HO2 - KSPARSE(1, 668)=89 - KSPARSE(2, 668)=99 + KSPARSE(1, 495)=43 + KSPARSE(2, 495)=53 !WC_H2O2/WC_SO2 - KSPARSE(1, 669)=89 - KSPARSE(2, 669)=101 -!WC_H2O2/WC_RO25 - KSPARSE(1, 670)=89 - KSPARSE(2, 670)=104 -!WC_H2O2/WC_KETL - KSPARSE(1, 671)=89 - KSPARSE(2, 671)=112 -!WC_H2O2/WC_ORA2 - KSPARSE(1, 672)=89 - KSPARSE(2, 672)=114 -!WC_H2O2/WC_ACID - KSPARSE(1, 673)=89 - KSPARSE(2, 673)=115 -!WC_H2O2/WC_RP16 - KSPARSE(1, 674)=89 - KSPARSE(2, 674)=116 -!WC_H2O2/WC_UR21 - KSPARSE(1, 675)=89 - KSPARSE(2, 675)=117 + KSPARSE(1, 496)=43 + KSPARSE(2, 496)=55 !WC_NO/NO - KSPARSE(1, 676)=90 - KSPARSE(2, 676)=1 + KSPARSE(1, 497)=44 + KSPARSE(2, 497)=3 !WC_NO/WC_NO - KSPARSE(1, 677)=90 - KSPARSE(2, 677)=90 + KSPARSE(1, 498)=44 + KSPARSE(2, 498)=44 !WC_NO2/NO2 - KSPARSE(1, 678)=91 - KSPARSE(2, 678)=2 + KSPARSE(1, 499)=45 + KSPARSE(2, 499)=4 !WC_NO2/WC_NO2 - KSPARSE(1, 679)=91 - KSPARSE(2, 679)=91 + KSPARSE(1, 500)=45 + KSPARSE(2, 500)=45 !WC_NO2/WC_HONO - KSPARSE(1, 680)=91 - KSPARSE(2, 680)=94 + KSPARSE(1, 501)=45 + KSPARSE(2, 501)=48 !WC_NO2/WC_HNO3 - KSPARSE(1, 681)=91 - KSPARSE(2, 681)=95 + KSPARSE(1, 502)=45 + KSPARSE(2, 502)=49 !WC_NO2/WC_HNO4 - KSPARSE(1, 682)=91 - KSPARSE(2, 682)=96 + KSPARSE(1, 503)=45 + KSPARSE(2, 503)=50 !WC_NO2/WC_OH - KSPARSE(1, 683)=91 - KSPARSE(2, 683)=98 + KSPARSE(1, 504)=45 + KSPARSE(2, 504)=52 !WC_NO2/WC_HO2 - KSPARSE(1, 684)=91 - KSPARSE(2, 684)=99 + KSPARSE(1, 505)=45 + KSPARSE(2, 505)=53 !WC_NO3/NO3 - KSPARSE(1, 685)=92 - KSPARSE(2, 685)=8 + KSPARSE(1, 506)=46 + KSPARSE(2, 506)=5 !WC_NO3/WC_NO3 - KSPARSE(1, 686)=92 - KSPARSE(2, 686)=92 + KSPARSE(1, 507)=46 + KSPARSE(2, 507)=46 !WC_NO3/WC_SO2 - KSPARSE(1, 687)=92 - KSPARSE(2, 687)=101 -!WC_NO3/WC_H2SO4 - KSPARSE(1, 688)=92 - KSPARSE(2, 688)=102 + KSPARSE(1, 508)=46 + KSPARSE(2, 508)=55 +!WC_NO3/WC_SULF + KSPARSE(1, 509)=46 + KSPARSE(2, 509)=56 !WC_N2O5/N2O5 - KSPARSE(1, 689)=93 - KSPARSE(2, 689)=7 + KSPARSE(1, 510)=47 + KSPARSE(2, 510)=6 !WC_N2O5/WC_N2O5 - KSPARSE(1, 690)=93 - KSPARSE(2, 690)=93 + KSPARSE(1, 511)=47 + KSPARSE(2, 511)=47 !WC_HONO/HONO - KSPARSE(1, 691)=94 - KSPARSE(2, 691)=4 + KSPARSE(1, 512)=48 + KSPARSE(2, 512)=7 !WC_HONO/WC_HONO - KSPARSE(1, 692)=94 - KSPARSE(2, 692)=94 + KSPARSE(1, 513)=48 + KSPARSE(2, 513)=48 !WC_HONO/WC_HNO4 - KSPARSE(1, 693)=94 - KSPARSE(2, 693)=96 + KSPARSE(1, 514)=48 + KSPARSE(2, 514)=50 !WC_HONO/WC_OH - KSPARSE(1, 694)=94 - KSPARSE(2, 694)=98 + KSPARSE(1, 515)=48 + KSPARSE(2, 515)=52 !WC_HNO3/HNO3 - KSPARSE(1, 695)=95 - KSPARSE(2, 695)=5 + KSPARSE(1, 516)=49 + KSPARSE(2, 516)=8 !WC_HNO3/WC_NO3 - KSPARSE(1, 696)=95 - KSPARSE(2, 696)=92 + KSPARSE(1, 517)=49 + KSPARSE(2, 517)=46 !WC_HNO3/WC_N2O5 - KSPARSE(1, 697)=95 - KSPARSE(2, 697)=93 + KSPARSE(1, 518)=49 + KSPARSE(2, 518)=47 !WC_HNO3/WC_HNO3 - KSPARSE(1, 698)=95 - KSPARSE(2, 698)=95 + KSPARSE(1, 519)=49 + KSPARSE(2, 519)=49 !WC_HNO3/WC_HNO4 - KSPARSE(1, 699)=95 - KSPARSE(2, 699)=96 + KSPARSE(1, 520)=49 + KSPARSE(2, 520)=50 !WC_HNO3/WC_SO2 - KSPARSE(1, 700)=95 - KSPARSE(2, 700)=101 -!WC_HNO3/WC_H2SO4 - KSPARSE(1, 701)=95 - KSPARSE(2, 701)=102 + KSPARSE(1, 521)=49 + KSPARSE(2, 521)=55 +!WC_HNO3/WC_SULF + KSPARSE(1, 522)=49 + KSPARSE(2, 522)=56 !WC_HNO4/HNO4 - KSPARSE(1, 702)=96 - KSPARSE(2, 702)=6 + KSPARSE(1, 523)=50 + KSPARSE(2, 523)=9 !WC_HNO4/WC_NO2 - KSPARSE(1, 703)=96 - KSPARSE(2, 703)=91 + KSPARSE(1, 524)=50 + KSPARSE(2, 524)=45 !WC_HNO4/WC_HNO4 - KSPARSE(1, 704)=96 - KSPARSE(2, 704)=96 + KSPARSE(1, 525)=50 + KSPARSE(2, 525)=50 !WC_HNO4/WC_HO2 - KSPARSE(1, 705)=96 - KSPARSE(2, 705)=99 + KSPARSE(1, 526)=50 + KSPARSE(2, 526)=53 !WC_HNO4/WC_SO2 - KSPARSE(1, 706)=96 - KSPARSE(2, 706)=101 + KSPARSE(1, 527)=50 + KSPARSE(2, 527)=55 !WC_NH3/NH3 - KSPARSE(1, 707)=97 - KSPARSE(2, 707)=9 + KSPARSE(1, 528)=51 + KSPARSE(2, 528)=10 !WC_NH3/WC_NH3 - KSPARSE(1, 708)=97 - KSPARSE(2, 708)=97 + KSPARSE(1, 529)=51 + KSPARSE(2, 529)=51 !WC_OH/OH - KSPARSE(1, 709)=98 - KSPARSE(2, 709)=15 + KSPARSE(1, 530)=52 + KSPARSE(2, 530)=14 !WC_OH/WC_O3 - KSPARSE(1, 710)=98 - KSPARSE(2, 710)=88 + KSPARSE(1, 531)=52 + KSPARSE(2, 531)=42 !WC_OH/WC_H2O2 - KSPARSE(1, 711)=98 - KSPARSE(2, 711)=89 + KSPARSE(1, 532)=52 + KSPARSE(2, 532)=43 !WC_OH/WC_HONO - KSPARSE(1, 712)=98 - KSPARSE(2, 712)=94 + KSPARSE(1, 533)=52 + KSPARSE(2, 533)=48 !WC_OH/WC_HNO3 - KSPARSE(1, 713)=98 - KSPARSE(2, 713)=95 + KSPARSE(1, 534)=52 + KSPARSE(2, 534)=49 !WC_OH/WC_OH - KSPARSE(1, 714)=98 - KSPARSE(2, 714)=98 + KSPARSE(1, 535)=52 + KSPARSE(2, 535)=52 !WC_OH/WC_HO2 - KSPARSE(1, 715)=98 - KSPARSE(2, 715)=99 + KSPARSE(1, 536)=52 + KSPARSE(2, 536)=53 !WC_OH/WC_SO2 - KSPARSE(1, 716)=98 - KSPARSE(2, 716)=101 -!WC_OH/WC_MEOH - KSPARSE(1, 717)=98 - KSPARSE(2, 717)=105 -!WC_OH/WC_ETOH - KSPARSE(1, 718)=98 - KSPARSE(2, 718)=106 -!WC_OH/WC_ALCH - KSPARSE(1, 719)=98 - KSPARSE(2, 719)=107 + KSPARSE(1, 537)=52 + KSPARSE(2, 537)=55 !WC_OH/WC_HCHO - KSPARSE(1, 720)=98 - KSPARSE(2, 720)=108 -!WC_OH/WC_ALD2 - KSPARSE(1, 721)=98 - KSPARSE(2, 721)=109 -!WC_OH/WC_GLY - KSPARSE(1, 722)=98 - KSPARSE(2, 722)=110 -!WC_OH/WC_MGLY - KSPARSE(1, 723)=98 - KSPARSE(2, 723)=111 -!WC_OH/WC_KETL - KSPARSE(1, 724)=98 - KSPARSE(2, 724)=112 + KSPARSE(1, 538)=52 + KSPARSE(2, 538)=57 !WC_OH/WC_ORA1 - KSPARSE(1, 725)=98 - KSPARSE(2, 725)=113 -!WC_OH/WC_ORA2 - KSPARSE(1, 726)=98 - KSPARSE(2, 726)=114 -!WC_OH/WC_ACID - KSPARSE(1, 727)=98 - KSPARSE(2, 727)=115 -!WC_OH/WC_RP16 - KSPARSE(1, 728)=98 - KSPARSE(2, 728)=116 -!WC_OH/WC_UR21 - KSPARSE(1, 729)=98 - KSPARSE(2, 729)=117 -!WC_OH/WC_UR28 - KSPARSE(1, 730)=98 - KSPARSE(2, 730)=118 -!WC_OH/WC_ACID2 - KSPARSE(1, 731)=98 - KSPARSE(2, 731)=119 + KSPARSE(1, 539)=52 + KSPARSE(2, 539)=58 !WC_OH/WC_ASO4 - KSPARSE(1, 732)=98 - KSPARSE(2, 732)=121 + KSPARSE(1, 540)=52 + KSPARSE(2, 540)=63 !WC_OH/WC_AHMS - KSPARSE(1, 733)=98 - KSPARSE(2, 733)=124 + KSPARSE(1, 541)=52 + KSPARSE(2, 541)=66 !WC_HO2/HO2 - KSPARSE(1, 734)=99 - KSPARSE(2, 734)=10 + KSPARSE(1, 542)=53 + KSPARSE(2, 542)=15 !WC_HO2/WC_O3 - KSPARSE(1, 735)=99 - KSPARSE(2, 735)=88 + KSPARSE(1, 543)=53 + KSPARSE(2, 543)=42 !WC_HO2/WC_H2O2 - KSPARSE(1, 736)=99 - KSPARSE(2, 736)=89 + KSPARSE(1, 544)=53 + KSPARSE(2, 544)=43 !WC_HO2/WC_NO2 - KSPARSE(1, 737)=99 - KSPARSE(2, 737)=91 + KSPARSE(1, 545)=53 + KSPARSE(2, 545)=45 !WC_HO2/WC_HNO4 - KSPARSE(1, 738)=99 - KSPARSE(2, 738)=96 + KSPARSE(1, 546)=53 + KSPARSE(2, 546)=50 !WC_HO2/WC_OH - KSPARSE(1, 739)=99 - KSPARSE(2, 739)=98 + KSPARSE(1, 547)=53 + KSPARSE(2, 547)=52 !WC_HO2/WC_HO2 - KSPARSE(1, 740)=99 - KSPARSE(2, 740)=99 -!WC_HO2/WC_RO21 - KSPARSE(1, 741)=99 - KSPARSE(2, 741)=103 -!WC_HO2/WC_RO25 - KSPARSE(1, 742)=99 - KSPARSE(2, 742)=104 -!WC_HO2/WC_MEOH - KSPARSE(1, 743)=99 - KSPARSE(2, 743)=105 -!WC_HO2/WC_ETOH - KSPARSE(1, 744)=99 - KSPARSE(2, 744)=106 -!WC_HO2/WC_ALCH - KSPARSE(1, 745)=99 - KSPARSE(2, 745)=107 + KSPARSE(1, 548)=53 + KSPARSE(2, 548)=53 !WC_HO2/WC_HCHO - KSPARSE(1, 746)=99 - KSPARSE(2, 746)=108 -!WC_HO2/WC_GLY - KSPARSE(1, 747)=99 - KSPARSE(2, 747)=110 -!WC_HO2/WC_MGLY - KSPARSE(1, 748)=99 - KSPARSE(2, 748)=111 -!WC_HO2/WC_KETL - KSPARSE(1, 749)=99 - KSPARSE(2, 749)=112 + KSPARSE(1, 549)=53 + KSPARSE(2, 549)=57 !WC_HO2/WC_ORA1 - KSPARSE(1, 750)=99 - KSPARSE(2, 750)=113 -!WC_HO2/WC_ACID - KSPARSE(1, 751)=99 - KSPARSE(2, 751)=115 -!WC_HO2/WC_RP16 - KSPARSE(1, 752)=99 - KSPARSE(2, 752)=116 -!WC_HO2/WC_UR21 - KSPARSE(1, 753)=99 - KSPARSE(2, 753)=117 -!WC_HO2/WC_UR28 - KSPARSE(1, 754)=99 - KSPARSE(2, 754)=118 + KSPARSE(1, 550)=53 + KSPARSE(2, 550)=58 +!WC_HO2/WC_MO2 + KSPARSE(1, 551)=53 + KSPARSE(2, 551)=60 !WC_HO2/WC_ASO5 - KSPARSE(1, 755)=99 - KSPARSE(2, 755)=122 + KSPARSE(1, 552)=53 + KSPARSE(2, 552)=64 !WC_HO2/WC_AHMS - KSPARSE(1, 756)=99 - KSPARSE(2, 756)=124 + KSPARSE(1, 553)=53 + KSPARSE(2, 553)=66 !WC_CO2/WC_OH - KSPARSE(1, 757)=100 - KSPARSE(2, 757)=98 + KSPARSE(1, 554)=54 + KSPARSE(2, 554)=52 !WC_CO2/WC_CO2 - KSPARSE(1, 758)=100 - KSPARSE(2, 758)=100 -!WC_CO2/WC_ALD2 - KSPARSE(1, 759)=100 - KSPARSE(2, 759)=109 -!WC_CO2/WC_KETL - KSPARSE(1, 760)=100 - KSPARSE(2, 760)=112 + KSPARSE(1, 555)=54 + KSPARSE(2, 555)=54 !WC_CO2/WC_ORA1 - KSPARSE(1, 761)=100 - KSPARSE(2, 761)=113 -!WC_CO2/WC_ACID - KSPARSE(1, 762)=100 - KSPARSE(2, 762)=115 -!WC_CO2/WC_RP16 - KSPARSE(1, 763)=100 - KSPARSE(2, 763)=116 -!WC_CO2/WC_UR21 - KSPARSE(1, 764)=100 - KSPARSE(2, 764)=117 -!WC_CO2/WC_UR28 - KSPARSE(1, 765)=100 - KSPARSE(2, 765)=118 + KSPARSE(1, 556)=54 + KSPARSE(2, 556)=58 !WC_SO2/SO2 - KSPARSE(1, 766)=101 - KSPARSE(2, 766)=13 + KSPARSE(1, 557)=55 + KSPARSE(2, 557)=11 !WC_SO2/WC_O3 - KSPARSE(1, 767)=101 - KSPARSE(2, 767)=88 + KSPARSE(1, 558)=55 + KSPARSE(2, 558)=42 !WC_SO2/WC_H2O2 - KSPARSE(1, 768)=101 - KSPARSE(2, 768)=89 + KSPARSE(1, 559)=55 + KSPARSE(2, 559)=43 !WC_SO2/WC_NO3 - KSPARSE(1, 769)=101 - KSPARSE(2, 769)=92 + KSPARSE(1, 560)=55 + KSPARSE(2, 560)=46 !WC_SO2/WC_HNO4 - KSPARSE(1, 770)=101 - KSPARSE(2, 770)=96 + KSPARSE(1, 561)=55 + KSPARSE(2, 561)=50 !WC_SO2/WC_OH - KSPARSE(1, 771)=101 - KSPARSE(2, 771)=98 + KSPARSE(1, 562)=55 + KSPARSE(2, 562)=52 !WC_SO2/WC_SO2 - KSPARSE(1, 772)=101 - KSPARSE(2, 772)=101 -!WC_SO2/WC_RO21 - KSPARSE(1, 773)=101 - KSPARSE(2, 773)=103 + KSPARSE(1, 563)=55 + KSPARSE(2, 563)=55 !WC_SO2/WC_HCHO - KSPARSE(1, 774)=101 - KSPARSE(2, 774)=108 + KSPARSE(1, 564)=55 + KSPARSE(2, 564)=57 +!WC_SO2/WC_MO2 + KSPARSE(1, 565)=55 + KSPARSE(2, 565)=60 !WC_SO2/WC_AHSO5 - KSPARSE(1, 775)=101 - KSPARSE(2, 775)=123 + KSPARSE(1, 566)=55 + KSPARSE(2, 566)=65 !WC_SO2/WC_AHMS - KSPARSE(1, 776)=101 - KSPARSE(2, 776)=124 -!WC_H2SO4/H2SO4 - KSPARSE(1, 777)=102 - KSPARSE(2, 777)=14 -!WC_H2SO4/WC_O3 - KSPARSE(1, 778)=102 - KSPARSE(2, 778)=88 -!WC_H2SO4/WC_H2O2 - KSPARSE(1, 779)=102 - KSPARSE(2, 779)=89 -!WC_H2SO4/WC_NO3 - KSPARSE(1, 780)=102 - KSPARSE(2, 780)=92 -!WC_H2SO4/WC_HNO4 - KSPARSE(1, 781)=102 - KSPARSE(2, 781)=96 -!WC_H2SO4/WC_SO2 - KSPARSE(1, 782)=102 - KSPARSE(2, 782)=101 -!WC_H2SO4/WC_H2SO4 - KSPARSE(1, 783)=102 - KSPARSE(2, 783)=102 -!WC_H2SO4/WC_ASO4 - KSPARSE(1, 784)=102 - KSPARSE(2, 784)=121 -!WC_H2SO4/WC_AHSO5 - KSPARSE(1, 785)=102 - KSPARSE(2, 785)=123 -!WC_RO21/RO21 - KSPARSE(1, 786)=103 - KSPARSE(2, 786)=86 -!WC_RO21/WC_OH - KSPARSE(1, 787)=103 - KSPARSE(2, 787)=98 -!WC_RO21/WC_SO2 - KSPARSE(1, 788)=103 - KSPARSE(2, 788)=101 -!WC_RO21/WC_RO21 - KSPARSE(1, 789)=103 - KSPARSE(2, 789)=103 -!WC_RO21/WC_ALD2 - KSPARSE(1, 790)=103 - KSPARSE(2, 790)=109 -!WC_RO21/WC_KETL - KSPARSE(1, 791)=103 - KSPARSE(2, 791)=112 -!WC_RO25/RO25 - KSPARSE(1, 792)=104 - KSPARSE(2, 792)=87 -!WC_RO25/WC_OH - KSPARSE(1, 793)=104 - KSPARSE(2, 793)=98 -!WC_RO25/WC_RO25 - KSPARSE(1, 794)=104 - KSPARSE(2, 794)=104 -!WC_RO25/WC_ALD2 - KSPARSE(1, 795)=104 - KSPARSE(2, 795)=109 -!WC_RO25/WC_ACID - KSPARSE(1, 796)=104 - KSPARSE(2, 796)=115 -!WC_MEOH/MEOH - KSPARSE(1, 797)=105 - KSPARSE(2, 797)=32 -!WC_MEOH/WC_OH - KSPARSE(1, 798)=105 - KSPARSE(2, 798)=98 -!WC_MEOH/WC_MEOH - KSPARSE(1, 799)=105 - KSPARSE(2, 799)=105 -!WC_ETOH/ETOH - KSPARSE(1, 800)=106 - KSPARSE(2, 800)=33 -!WC_ETOH/WC_OH - KSPARSE(1, 801)=106 - KSPARSE(2, 801)=98 -!WC_ETOH/WC_ETOH - KSPARSE(1, 802)=106 - KSPARSE(2, 802)=106 -!WC_ALCH/ALCH - KSPARSE(1, 803)=107 - KSPARSE(2, 803)=34 -!WC_ALCH/WC_OH - KSPARSE(1, 804)=107 - KSPARSE(2, 804)=98 -!WC_ALCH/WC_ALCH - KSPARSE(1, 805)=107 - KSPARSE(2, 805)=107 + KSPARSE(1, 567)=55 + KSPARSE(2, 567)=66 +!WC_SULF/SULF + KSPARSE(1, 568)=56 + KSPARSE(2, 568)=12 +!WC_SULF/WC_O3 + KSPARSE(1, 569)=56 + KSPARSE(2, 569)=42 +!WC_SULF/WC_H2O2 + KSPARSE(1, 570)=56 + KSPARSE(2, 570)=43 +!WC_SULF/WC_NO3 + KSPARSE(1, 571)=56 + KSPARSE(2, 571)=46 +!WC_SULF/WC_HNO4 + KSPARSE(1, 572)=56 + KSPARSE(2, 572)=50 +!WC_SULF/WC_SO2 + KSPARSE(1, 573)=56 + KSPARSE(2, 573)=55 +!WC_SULF/WC_SULF + KSPARSE(1, 574)=56 + KSPARSE(2, 574)=56 +!WC_SULF/WC_ASO4 + KSPARSE(1, 575)=56 + KSPARSE(2, 575)=63 +!WC_SULF/WC_AHSO5 + KSPARSE(1, 576)=56 + KSPARSE(2, 576)=65 !WC_HCHO/HCHO - KSPARSE(1, 806)=108 - KSPARSE(2, 806)=28 + KSPARSE(1, 577)=57 + KSPARSE(2, 577)=22 !WC_HCHO/WC_OH - KSPARSE(1, 807)=108 - KSPARSE(2, 807)=98 + KSPARSE(1, 578)=57 + KSPARSE(2, 578)=52 !WC_HCHO/WC_SO2 - KSPARSE(1, 808)=108 - KSPARSE(2, 808)=101 -!WC_HCHO/WC_RO21 - KSPARSE(1, 809)=108 - KSPARSE(2, 809)=103 -!WC_HCHO/WC_MEOH - KSPARSE(1, 810)=108 - KSPARSE(2, 810)=105 + KSPARSE(1, 579)=57 + KSPARSE(2, 579)=55 !WC_HCHO/WC_HCHO - KSPARSE(1, 811)=108 - KSPARSE(2, 811)=108 -!WC_HCHO/WC_KETL - KSPARSE(1, 812)=108 - KSPARSE(2, 812)=112 + KSPARSE(1, 580)=57 + KSPARSE(2, 580)=57 +!WC_HCHO/WC_MO2 + KSPARSE(1, 581)=57 + KSPARSE(2, 581)=60 !WC_HCHO/WC_AHMS - KSPARSE(1, 813)=108 - KSPARSE(2, 813)=124 -!WC_ALD2/ALD2 - KSPARSE(1, 814)=109 - KSPARSE(2, 814)=29 -!WC_ALD2/WC_OH - KSPARSE(1, 815)=109 - KSPARSE(2, 815)=98 -!WC_ALD2/WC_RO25 - KSPARSE(1, 816)=109 - KSPARSE(2, 816)=104 -!WC_ALD2/WC_ETOH - KSPARSE(1, 817)=109 - KSPARSE(2, 817)=106 -!WC_ALD2/WC_ALCH - KSPARSE(1, 818)=109 - KSPARSE(2, 818)=107 -!WC_ALD2/WC_ALD2 - KSPARSE(1, 819)=109 - KSPARSE(2, 819)=109 -!WC_ALD2/WC_KETL - KSPARSE(1, 820)=109 - KSPARSE(2, 820)=112 -!WC_ALD2/WC_ACID - KSPARSE(1, 821)=109 - KSPARSE(2, 821)=115 -!WC_ALD2/WC_UR21 - KSPARSE(1, 822)=109 - KSPARSE(2, 822)=117 -!WC_GLY/GLY - KSPARSE(1, 823)=110 - KSPARSE(2, 823)=42 -!WC_GLY/WC_OH - KSPARSE(1, 824)=110 - KSPARSE(2, 824)=98 -!WC_GLY/WC_GLY - KSPARSE(1, 825)=110 - KSPARSE(2, 825)=110 -!WC_MGLY/MGLY - KSPARSE(1, 826)=111 - KSPARSE(2, 826)=41 -!WC_MGLY/WC_OH - KSPARSE(1, 827)=111 - KSPARSE(2, 827)=98 -!WC_MGLY/WC_MGLY - KSPARSE(1, 828)=111 - KSPARSE(2, 828)=111 -!WC_MGLY/WC_KETL - KSPARSE(1, 829)=111 - KSPARSE(2, 829)=112 -!WC_KETL/KETL - KSPARSE(1, 830)=112 - KSPARSE(2, 830)=30 -!WC_KETL/WC_OH - KSPARSE(1, 831)=112 - KSPARSE(2, 831)=98 -!WC_KETL/WC_ALCH - KSPARSE(1, 832)=112 - KSPARSE(2, 832)=107 -!WC_KETL/WC_KETL - KSPARSE(1, 833)=112 - KSPARSE(2, 833)=112 + KSPARSE(1, 582)=57 + KSPARSE(2, 582)=66 !WC_ORA1/ORA1 - KSPARSE(1, 834)=113 - KSPARSE(2, 834)=43 + KSPARSE(1, 583)=58 + KSPARSE(2, 583)=30 !WC_ORA1/WC_OH - KSPARSE(1, 835)=113 - KSPARSE(2, 835)=98 + KSPARSE(1, 584)=58 + KSPARSE(2, 584)=52 !WC_ORA1/WC_HCHO - KSPARSE(1, 836)=113 - KSPARSE(2, 836)=108 + KSPARSE(1, 585)=58 + KSPARSE(2, 585)=57 !WC_ORA1/WC_ORA1 - KSPARSE(1, 837)=113 - KSPARSE(2, 837)=113 + KSPARSE(1, 586)=58 + KSPARSE(2, 586)=58 !WC_ORA1/WC_AHMS - KSPARSE(1, 838)=113 - KSPARSE(2, 838)=124 + KSPARSE(1, 587)=58 + KSPARSE(2, 587)=66 !WC_ORA2/ORA2 - KSPARSE(1, 839)=114 - KSPARSE(2, 839)=44 -!WC_ORA2/WC_OH - KSPARSE(1, 840)=114 - KSPARSE(2, 840)=98 -!WC_ORA2/WC_RO25 - KSPARSE(1, 841)=114 - KSPARSE(2, 841)=104 + KSPARSE(1, 588)=59 + KSPARSE(2, 588)=31 !WC_ORA2/WC_ORA2 - KSPARSE(1, 842)=114 - KSPARSE(2, 842)=114 -!WC_ACID/ACID - KSPARSE(1, 843)=115 - KSPARSE(2, 843)=45 -!WC_ACID/WC_OH - KSPARSE(1, 844)=115 - KSPARSE(2, 844)=98 -!WC_ACID/WC_ACID - KSPARSE(1, 845)=115 - KSPARSE(2, 845)=115 -!WC_RP16/RP16 - KSPARSE(1, 846)=116 - KSPARSE(2, 846)=74 -!WC_RP16/WC_OH - KSPARSE(1, 847)=116 - KSPARSE(2, 847)=98 -!WC_RP16/WC_GLY - KSPARSE(1, 848)=116 - KSPARSE(2, 848)=110 -!WC_RP16/WC_ORA2 - KSPARSE(1, 849)=116 - KSPARSE(2, 849)=114 -!WC_RP16/WC_RP16 - KSPARSE(1, 850)=116 - KSPARSE(2, 850)=116 -!WC_UR21/UR21 - KSPARSE(1, 851)=117 - KSPARSE(2, 851)=47 -!WC_UR21/WC_OH - KSPARSE(1, 852)=117 - KSPARSE(2, 852)=98 -!WC_UR21/WC_MGLY - KSPARSE(1, 853)=117 - KSPARSE(2, 853)=111 -!WC_UR21/WC_KETL - KSPARSE(1, 854)=117 - KSPARSE(2, 854)=112 -!WC_UR21/WC_ACID - KSPARSE(1, 855)=117 - KSPARSE(2, 855)=115 -!WC_UR21/WC_UR21 - KSPARSE(1, 856)=117 - KSPARSE(2, 856)=117 -!WC_UR28/UR28 - KSPARSE(1, 857)=118 - KSPARSE(2, 857)=46 -!WC_UR28/WC_OH - KSPARSE(1, 858)=118 - KSPARSE(2, 858)=98 -!WC_UR28/WC_RP16 - KSPARSE(1, 859)=118 - KSPARSE(2, 859)=116 -!WC_UR28/WC_UR28 - KSPARSE(1, 860)=118 - KSPARSE(2, 860)=118 -!WC_ACID2/WC_OH - KSPARSE(1, 861)=119 - KSPARSE(2, 861)=98 -!WC_ACID2/WC_ACID - KSPARSE(1, 862)=119 - KSPARSE(2, 862)=115 -!WC_ACID2/WC_UR21 - KSPARSE(1, 863)=119 - KSPARSE(2, 863)=117 -!WC_ACID2/WC_ACID2 - KSPARSE(1, 864)=119 - KSPARSE(2, 864)=119 + KSPARSE(1, 589)=59 + KSPARSE(2, 589)=59 +!WC_MO2/MO2 + KSPARSE(1, 590)=60 + KSPARSE(2, 590)=32 +!WC_MO2/WC_SO2 + KSPARSE(1, 591)=60 + KSPARSE(2, 591)=55 +!WC_MO2/WC_MO2 + KSPARSE(1, 592)=60 + KSPARSE(2, 592)=60 +!WC_OP1/OP1 + KSPARSE(1, 593)=61 + KSPARSE(2, 593)=28 +!WC_OP1/WC_SO2 + KSPARSE(1, 594)=61 + KSPARSE(2, 594)=55 +!WC_OP1/WC_MO2 + KSPARSE(1, 595)=61 + KSPARSE(2, 595)=60 +!WC_OP1/WC_OP1 + KSPARSE(1, 596)=61 + KSPARSE(2, 596)=61 !WC_ASO3/WC_NO3 - KSPARSE(1, 865)=120 - KSPARSE(2, 865)=92 + KSPARSE(1, 597)=62 + KSPARSE(2, 597)=46 !WC_ASO3/WC_OH - KSPARSE(1, 866)=120 - KSPARSE(2, 866)=98 + KSPARSE(1, 598)=62 + KSPARSE(2, 598)=52 !WC_ASO3/WC_SO2 - KSPARSE(1, 867)=120 - KSPARSE(2, 867)=101 -!WC_ASO3/WC_RO21 - KSPARSE(1, 868)=120 - KSPARSE(2, 868)=103 + KSPARSE(1, 599)=62 + KSPARSE(2, 599)=55 +!WC_ASO3/WC_MO2 + KSPARSE(1, 600)=62 + KSPARSE(2, 600)=60 !WC_ASO3/WC_ASO3 - KSPARSE(1, 869)=120 - KSPARSE(2, 869)=120 + KSPARSE(1, 601)=62 + KSPARSE(2, 601)=62 !WC_ASO4/WC_NO3 - KSPARSE(1, 870)=121 - KSPARSE(2, 870)=92 -!WC_ASO4/WC_H2SO4 - KSPARSE(1, 871)=121 - KSPARSE(2, 871)=102 + KSPARSE(1, 602)=63 + KSPARSE(2, 602)=46 +!WC_ASO4/WC_SULF + KSPARSE(1, 603)=63 + KSPARSE(2, 603)=56 !WC_ASO4/WC_ASO4 - KSPARSE(1, 872)=121 - KSPARSE(2, 872)=121 + KSPARSE(1, 604)=63 + KSPARSE(2, 604)=63 !WC_ASO4/WC_ASO5 - KSPARSE(1, 873)=121 - KSPARSE(2, 873)=122 + KSPARSE(1, 605)=63 + KSPARSE(2, 605)=64 !WC_ASO5/WC_HO2 - KSPARSE(1, 874)=122 - KSPARSE(2, 874)=99 + KSPARSE(1, 606)=64 + KSPARSE(2, 606)=53 !WC_ASO5/WC_ASO3 - KSPARSE(1, 875)=122 - KSPARSE(2, 875)=120 + KSPARSE(1, 607)=64 + KSPARSE(2, 607)=62 !WC_ASO5/WC_ASO5 - KSPARSE(1, 876)=122 - KSPARSE(2, 876)=122 + KSPARSE(1, 608)=64 + KSPARSE(2, 608)=64 !WC_AHSO5/WC_HO2 - KSPARSE(1, 877)=123 - KSPARSE(2, 877)=99 + KSPARSE(1, 609)=65 + KSPARSE(2, 609)=53 !WC_AHSO5/WC_SO2 - KSPARSE(1, 878)=123 - KSPARSE(2, 878)=101 + KSPARSE(1, 610)=65 + KSPARSE(2, 610)=55 !WC_AHSO5/WC_ASO5 - KSPARSE(1, 879)=123 - KSPARSE(2, 879)=122 + KSPARSE(1, 611)=65 + KSPARSE(2, 611)=64 !WC_AHSO5/WC_AHSO5 - KSPARSE(1, 880)=123 - KSPARSE(2, 880)=123 + KSPARSE(1, 612)=65 + KSPARSE(2, 612)=65 !WC_AHMS/WC_OH - KSPARSE(1, 881)=124 - KSPARSE(2, 881)=98 + KSPARSE(1, 613)=66 + KSPARSE(2, 613)=52 !WC_AHMS/WC_SO2 - KSPARSE(1, 882)=124 - KSPARSE(2, 882)=101 + KSPARSE(1, 614)=66 + KSPARSE(2, 614)=55 !WC_AHMS/WC_HCHO - KSPARSE(1, 883)=124 - KSPARSE(2, 883)=108 + KSPARSE(1, 615)=66 + KSPARSE(2, 615)=57 !WC_AHMS/WC_AHMS - KSPARSE(1, 884)=124 - KSPARSE(2, 884)=124 + KSPARSE(1, 616)=66 + KSPARSE(2, 616)=66 !WR_O3/O3 - KSPARSE(1, 885)=125 - KSPARSE(2, 885)=3 + KSPARSE(1, 617)=67 + KSPARSE(2, 617)=1 !WR_O3/WR_O3 - KSPARSE(1, 886)=125 - KSPARSE(2, 886)=125 + KSPARSE(1, 618)=67 + KSPARSE(2, 618)=67 !WR_O3/WR_HO2 - KSPARSE(1, 887)=125 - KSPARSE(2, 887)=136 + KSPARSE(1, 619)=67 + KSPARSE(2, 619)=78 !WR_O3/WR_SO2 - KSPARSE(1, 888)=125 - KSPARSE(2, 888)=138 + KSPARSE(1, 620)=67 + KSPARSE(2, 620)=80 !WR_H2O2/H2O2 - KSPARSE(1, 889)=126 - KSPARSE(2, 889)=12 + KSPARSE(1, 621)=68 + KSPARSE(2, 621)=2 !WR_H2O2/WR_H2O2 - KSPARSE(1, 890)=126 - KSPARSE(2, 890)=126 + KSPARSE(1, 622)=68 + KSPARSE(2, 622)=68 !WR_H2O2/WR_OH - KSPARSE(1, 891)=126 - KSPARSE(2, 891)=135 + KSPARSE(1, 623)=68 + KSPARSE(2, 623)=77 !WR_H2O2/WR_HO2 - KSPARSE(1, 892)=126 - KSPARSE(2, 892)=136 + KSPARSE(1, 624)=68 + KSPARSE(2, 624)=78 !WR_H2O2/WR_SO2 - KSPARSE(1, 893)=126 - KSPARSE(2, 893)=138 -!WR_H2O2/WR_RO25 - KSPARSE(1, 894)=126 - KSPARSE(2, 894)=141 -!WR_H2O2/WR_KETL - KSPARSE(1, 895)=126 - KSPARSE(2, 895)=149 -!WR_H2O2/WR_ORA2 - KSPARSE(1, 896)=126 - KSPARSE(2, 896)=151 -!WR_H2O2/WR_ACID - KSPARSE(1, 897)=126 - KSPARSE(2, 897)=152 -!WR_H2O2/WR_RP16 - KSPARSE(1, 898)=126 - KSPARSE(2, 898)=153 -!WR_H2O2/WR_UR21 - KSPARSE(1, 899)=126 - KSPARSE(2, 899)=154 + KSPARSE(1, 625)=68 + KSPARSE(2, 625)=80 !WR_NO/NO - KSPARSE(1, 900)=127 - KSPARSE(2, 900)=1 + KSPARSE(1, 626)=69 + KSPARSE(2, 626)=3 !WR_NO/WR_NO - KSPARSE(1, 901)=127 - KSPARSE(2, 901)=127 + KSPARSE(1, 627)=69 + KSPARSE(2, 627)=69 !WR_NO2/NO2 - KSPARSE(1, 902)=128 - KSPARSE(2, 902)=2 + KSPARSE(1, 628)=70 + KSPARSE(2, 628)=4 !WR_NO2/WR_NO2 - KSPARSE(1, 903)=128 - KSPARSE(2, 903)=128 + KSPARSE(1, 629)=70 + KSPARSE(2, 629)=70 !WR_NO2/WR_HONO - KSPARSE(1, 904)=128 - KSPARSE(2, 904)=131 + KSPARSE(1, 630)=70 + KSPARSE(2, 630)=73 !WR_NO2/WR_HNO3 - KSPARSE(1, 905)=128 - KSPARSE(2, 905)=132 + KSPARSE(1, 631)=70 + KSPARSE(2, 631)=74 !WR_NO2/WR_HNO4 - KSPARSE(1, 906)=128 - KSPARSE(2, 906)=133 + KSPARSE(1, 632)=70 + KSPARSE(2, 632)=75 !WR_NO2/WR_OH - KSPARSE(1, 907)=128 - KSPARSE(2, 907)=135 + KSPARSE(1, 633)=70 + KSPARSE(2, 633)=77 !WR_NO2/WR_HO2 - KSPARSE(1, 908)=128 - KSPARSE(2, 908)=136 + KSPARSE(1, 634)=70 + KSPARSE(2, 634)=78 !WR_NO3/NO3 - KSPARSE(1, 909)=129 - KSPARSE(2, 909)=8 + KSPARSE(1, 635)=71 + KSPARSE(2, 635)=5 !WR_NO3/WR_NO3 - KSPARSE(1, 910)=129 - KSPARSE(2, 910)=129 + KSPARSE(1, 636)=71 + KSPARSE(2, 636)=71 !WR_NO3/WR_SO2 - KSPARSE(1, 911)=129 - KSPARSE(2, 911)=138 -!WR_NO3/WR_H2SO4 - KSPARSE(1, 912)=129 - KSPARSE(2, 912)=139 + KSPARSE(1, 637)=71 + KSPARSE(2, 637)=80 +!WR_NO3/WR_SULF + KSPARSE(1, 638)=71 + KSPARSE(2, 638)=81 !WR_N2O5/N2O5 - KSPARSE(1, 913)=130 - KSPARSE(2, 913)=7 + KSPARSE(1, 639)=72 + KSPARSE(2, 639)=6 !WR_N2O5/WR_N2O5 - KSPARSE(1, 914)=130 - KSPARSE(2, 914)=130 + KSPARSE(1, 640)=72 + KSPARSE(2, 640)=72 !WR_HONO/HONO - KSPARSE(1, 915)=131 - KSPARSE(2, 915)=4 + KSPARSE(1, 641)=73 + KSPARSE(2, 641)=7 !WR_HONO/WR_HONO - KSPARSE(1, 916)=131 - KSPARSE(2, 916)=131 + KSPARSE(1, 642)=73 + KSPARSE(2, 642)=73 !WR_HONO/WR_HNO4 - KSPARSE(1, 917)=131 - KSPARSE(2, 917)=133 + KSPARSE(1, 643)=73 + KSPARSE(2, 643)=75 !WR_HONO/WR_OH - KSPARSE(1, 918)=131 - KSPARSE(2, 918)=135 + KSPARSE(1, 644)=73 + KSPARSE(2, 644)=77 !WR_HNO3/HNO3 - KSPARSE(1, 919)=132 - KSPARSE(2, 919)=5 + KSPARSE(1, 645)=74 + KSPARSE(2, 645)=8 !WR_HNO3/WR_NO3 - KSPARSE(1, 920)=132 - KSPARSE(2, 920)=129 + KSPARSE(1, 646)=74 + KSPARSE(2, 646)=71 !WR_HNO3/WR_N2O5 - KSPARSE(1, 921)=132 - KSPARSE(2, 921)=130 + KSPARSE(1, 647)=74 + KSPARSE(2, 647)=72 !WR_HNO3/WR_HNO3 - KSPARSE(1, 922)=132 - KSPARSE(2, 922)=132 + KSPARSE(1, 648)=74 + KSPARSE(2, 648)=74 !WR_HNO3/WR_HNO4 - KSPARSE(1, 923)=132 - KSPARSE(2, 923)=133 + KSPARSE(1, 649)=74 + KSPARSE(2, 649)=75 !WR_HNO3/WR_SO2 - KSPARSE(1, 924)=132 - KSPARSE(2, 924)=138 -!WR_HNO3/WR_H2SO4 - KSPARSE(1, 925)=132 - KSPARSE(2, 925)=139 + KSPARSE(1, 650)=74 + KSPARSE(2, 650)=80 +!WR_HNO3/WR_SULF + KSPARSE(1, 651)=74 + KSPARSE(2, 651)=81 !WR_HNO4/HNO4 - KSPARSE(1, 926)=133 - KSPARSE(2, 926)=6 + KSPARSE(1, 652)=75 + KSPARSE(2, 652)=9 !WR_HNO4/WR_NO2 - KSPARSE(1, 927)=133 - KSPARSE(2, 927)=128 + KSPARSE(1, 653)=75 + KSPARSE(2, 653)=70 !WR_HNO4/WR_HNO4 - KSPARSE(1, 928)=133 - KSPARSE(2, 928)=133 + KSPARSE(1, 654)=75 + KSPARSE(2, 654)=75 !WR_HNO4/WR_HO2 - KSPARSE(1, 929)=133 - KSPARSE(2, 929)=136 + KSPARSE(1, 655)=75 + KSPARSE(2, 655)=78 !WR_HNO4/WR_SO2 - KSPARSE(1, 930)=133 - KSPARSE(2, 930)=138 + KSPARSE(1, 656)=75 + KSPARSE(2, 656)=80 !WR_NH3/NH3 - KSPARSE(1, 931)=134 - KSPARSE(2, 931)=9 + KSPARSE(1, 657)=76 + KSPARSE(2, 657)=10 !WR_NH3/WR_NH3 - KSPARSE(1, 932)=134 - KSPARSE(2, 932)=134 + KSPARSE(1, 658)=76 + KSPARSE(2, 658)=76 !WR_OH/OH - KSPARSE(1, 933)=135 - KSPARSE(2, 933)=15 + KSPARSE(1, 659)=77 + KSPARSE(2, 659)=14 !WR_OH/WR_O3 - KSPARSE(1, 934)=135 - KSPARSE(2, 934)=125 + KSPARSE(1, 660)=77 + KSPARSE(2, 660)=67 !WR_OH/WR_H2O2 - KSPARSE(1, 935)=135 - KSPARSE(2, 935)=126 + KSPARSE(1, 661)=77 + KSPARSE(2, 661)=68 !WR_OH/WR_HONO - KSPARSE(1, 936)=135 - KSPARSE(2, 936)=131 + KSPARSE(1, 662)=77 + KSPARSE(2, 662)=73 !WR_OH/WR_HNO3 - KSPARSE(1, 937)=135 - KSPARSE(2, 937)=132 + KSPARSE(1, 663)=77 + KSPARSE(2, 663)=74 !WR_OH/WR_OH - KSPARSE(1, 938)=135 - KSPARSE(2, 938)=135 + KSPARSE(1, 664)=77 + KSPARSE(2, 664)=77 !WR_OH/WR_HO2 - KSPARSE(1, 939)=135 - KSPARSE(2, 939)=136 + KSPARSE(1, 665)=77 + KSPARSE(2, 665)=78 !WR_OH/WR_SO2 - KSPARSE(1, 940)=135 - KSPARSE(2, 940)=138 -!WR_OH/WR_MEOH - KSPARSE(1, 941)=135 - KSPARSE(2, 941)=142 -!WR_OH/WR_ETOH - KSPARSE(1, 942)=135 - KSPARSE(2, 942)=143 -!WR_OH/WR_ALCH - KSPARSE(1, 943)=135 - KSPARSE(2, 943)=144 + KSPARSE(1, 666)=77 + KSPARSE(2, 666)=80 !WR_OH/WR_HCHO - KSPARSE(1, 944)=135 - KSPARSE(2, 944)=145 -!WR_OH/WR_ALD2 - KSPARSE(1, 945)=135 - KSPARSE(2, 945)=146 -!WR_OH/WR_GLY - KSPARSE(1, 946)=135 - KSPARSE(2, 946)=147 -!WR_OH/WR_MGLY - KSPARSE(1, 947)=135 - KSPARSE(2, 947)=148 -!WR_OH/WR_KETL - KSPARSE(1, 948)=135 - KSPARSE(2, 948)=149 + KSPARSE(1, 667)=77 + KSPARSE(2, 667)=82 !WR_OH/WR_ORA1 - KSPARSE(1, 949)=135 - KSPARSE(2, 949)=150 -!WR_OH/WR_ORA2 - KSPARSE(1, 950)=135 - KSPARSE(2, 950)=151 -!WR_OH/WR_ACID - KSPARSE(1, 951)=135 - KSPARSE(2, 951)=152 -!WR_OH/WR_RP16 - KSPARSE(1, 952)=135 - KSPARSE(2, 952)=153 -!WR_OH/WR_UR21 - KSPARSE(1, 953)=135 - KSPARSE(2, 953)=154 -!WR_OH/WR_UR28 - KSPARSE(1, 954)=135 - KSPARSE(2, 954)=155 -!WR_OH/WR_ACID2 - KSPARSE(1, 955)=135 - KSPARSE(2, 955)=156 + KSPARSE(1, 668)=77 + KSPARSE(2, 668)=83 !WR_OH/WR_ASO4 - KSPARSE(1, 956)=135 - KSPARSE(2, 956)=158 + KSPARSE(1, 669)=77 + KSPARSE(2, 669)=88 !WR_OH/WR_AHMS - KSPARSE(1, 957)=135 - KSPARSE(2, 957)=161 + KSPARSE(1, 670)=77 + KSPARSE(2, 670)=91 !WR_HO2/HO2 - KSPARSE(1, 958)=136 - KSPARSE(2, 958)=10 + KSPARSE(1, 671)=78 + KSPARSE(2, 671)=15 !WR_HO2/WR_O3 - KSPARSE(1, 959)=136 - KSPARSE(2, 959)=125 + KSPARSE(1, 672)=78 + KSPARSE(2, 672)=67 !WR_HO2/WR_H2O2 - KSPARSE(1, 960)=136 - KSPARSE(2, 960)=126 + KSPARSE(1, 673)=78 + KSPARSE(2, 673)=68 !WR_HO2/WR_NO2 - KSPARSE(1, 961)=136 - KSPARSE(2, 961)=128 + KSPARSE(1, 674)=78 + KSPARSE(2, 674)=70 !WR_HO2/WR_HNO4 - KSPARSE(1, 962)=136 - KSPARSE(2, 962)=133 + KSPARSE(1, 675)=78 + KSPARSE(2, 675)=75 !WR_HO2/WR_OH - KSPARSE(1, 963)=136 - KSPARSE(2, 963)=135 + KSPARSE(1, 676)=78 + KSPARSE(2, 676)=77 !WR_HO2/WR_HO2 - KSPARSE(1, 964)=136 - KSPARSE(2, 964)=136 -!WR_HO2/WR_RO21 - KSPARSE(1, 965)=136 - KSPARSE(2, 965)=140 -!WR_HO2/WR_RO25 - KSPARSE(1, 966)=136 - KSPARSE(2, 966)=141 -!WR_HO2/WR_MEOH - KSPARSE(1, 967)=136 - KSPARSE(2, 967)=142 -!WR_HO2/WR_ETOH - KSPARSE(1, 968)=136 - KSPARSE(2, 968)=143 -!WR_HO2/WR_ALCH - KSPARSE(1, 969)=136 - KSPARSE(2, 969)=144 + KSPARSE(1, 677)=78 + KSPARSE(2, 677)=78 !WR_HO2/WR_HCHO - KSPARSE(1, 970)=136 - KSPARSE(2, 970)=145 -!WR_HO2/WR_GLY - KSPARSE(1, 971)=136 - KSPARSE(2, 971)=147 -!WR_HO2/WR_MGLY - KSPARSE(1, 972)=136 - KSPARSE(2, 972)=148 -!WR_HO2/WR_KETL - KSPARSE(1, 973)=136 - KSPARSE(2, 973)=149 + KSPARSE(1, 678)=78 + KSPARSE(2, 678)=82 !WR_HO2/WR_ORA1 - KSPARSE(1, 974)=136 - KSPARSE(2, 974)=150 -!WR_HO2/WR_ACID - KSPARSE(1, 975)=136 - KSPARSE(2, 975)=152 -!WR_HO2/WR_RP16 - KSPARSE(1, 976)=136 - KSPARSE(2, 976)=153 -!WR_HO2/WR_UR21 - KSPARSE(1, 977)=136 - KSPARSE(2, 977)=154 -!WR_HO2/WR_UR28 - KSPARSE(1, 978)=136 - KSPARSE(2, 978)=155 + KSPARSE(1, 679)=78 + KSPARSE(2, 679)=83 +!WR_HO2/WR_MO2 + KSPARSE(1, 680)=78 + KSPARSE(2, 680)=85 !WR_HO2/WR_ASO5 - KSPARSE(1, 979)=136 - KSPARSE(2, 979)=159 + KSPARSE(1, 681)=78 + KSPARSE(2, 681)=89 !WR_HO2/WR_AHMS - KSPARSE(1, 980)=136 - KSPARSE(2, 980)=161 + KSPARSE(1, 682)=78 + KSPARSE(2, 682)=91 !WR_CO2/WR_OH - KSPARSE(1, 981)=137 - KSPARSE(2, 981)=135 + KSPARSE(1, 683)=79 + KSPARSE(2, 683)=77 !WR_CO2/WR_CO2 - KSPARSE(1, 982)=137 - KSPARSE(2, 982)=137 -!WR_CO2/WR_ALD2 - KSPARSE(1, 983)=137 - KSPARSE(2, 983)=146 -!WR_CO2/WR_KETL - KSPARSE(1, 984)=137 - KSPARSE(2, 984)=149 + KSPARSE(1, 684)=79 + KSPARSE(2, 684)=79 !WR_CO2/WR_ORA1 - KSPARSE(1, 985)=137 - KSPARSE(2, 985)=150 -!WR_CO2/WR_ACID - KSPARSE(1, 986)=137 - KSPARSE(2, 986)=152 -!WR_CO2/WR_RP16 - KSPARSE(1, 987)=137 - KSPARSE(2, 987)=153 -!WR_CO2/WR_UR21 - KSPARSE(1, 988)=137 - KSPARSE(2, 988)=154 -!WR_CO2/WR_UR28 - KSPARSE(1, 989)=137 - KSPARSE(2, 989)=155 + KSPARSE(1, 685)=79 + KSPARSE(2, 685)=83 !WR_SO2/SO2 - KSPARSE(1, 990)=138 - KSPARSE(2, 990)=13 + KSPARSE(1, 686)=80 + KSPARSE(2, 686)=11 !WR_SO2/WR_O3 - KSPARSE(1, 991)=138 - KSPARSE(2, 991)=125 + KSPARSE(1, 687)=80 + KSPARSE(2, 687)=67 !WR_SO2/WR_H2O2 - KSPARSE(1, 992)=138 - KSPARSE(2, 992)=126 + KSPARSE(1, 688)=80 + KSPARSE(2, 688)=68 !WR_SO2/WR_NO3 - KSPARSE(1, 993)=138 - KSPARSE(2, 993)=129 + KSPARSE(1, 689)=80 + KSPARSE(2, 689)=71 !WR_SO2/WR_HNO4 - KSPARSE(1, 994)=138 - KSPARSE(2, 994)=133 + KSPARSE(1, 690)=80 + KSPARSE(2, 690)=75 !WR_SO2/WR_OH - KSPARSE(1, 995)=138 - KSPARSE(2, 995)=135 + KSPARSE(1, 691)=80 + KSPARSE(2, 691)=77 !WR_SO2/WR_SO2 - KSPARSE(1, 996)=138 - KSPARSE(2, 996)=138 -!WR_SO2/WR_RO21 - KSPARSE(1, 997)=138 - KSPARSE(2, 997)=140 + KSPARSE(1, 692)=80 + KSPARSE(2, 692)=80 !WR_SO2/WR_HCHO - KSPARSE(1, 998)=138 - KSPARSE(2, 998)=145 + KSPARSE(1, 693)=80 + KSPARSE(2, 693)=82 +!WR_SO2/WR_MO2 + KSPARSE(1, 694)=80 + KSPARSE(2, 694)=85 !WR_SO2/WR_AHSO5 - KSPARSE(1, 999)=138 - KSPARSE(2, 999)=160 + KSPARSE(1, 695)=80 + KSPARSE(2, 695)=90 !WR_SO2/WR_AHMS - KSPARSE(1, 1000)=138 - KSPARSE(2, 1000)=161 -!WR_H2SO4/H2SO4 - KSPARSE(1, 1001)=139 - KSPARSE(2, 1001)=14 -!WR_H2SO4/WR_O3 - KSPARSE(1, 1002)=139 - KSPARSE(2, 1002)=125 -!WR_H2SO4/WR_H2O2 - KSPARSE(1, 1003)=139 - KSPARSE(2, 1003)=126 -!WR_H2SO4/WR_NO3 - KSPARSE(1, 1004)=139 - KSPARSE(2, 1004)=129 -!WR_H2SO4/WR_HNO4 - KSPARSE(1, 1005)=139 - KSPARSE(2, 1005)=133 -!WR_H2SO4/WR_SO2 - KSPARSE(1, 1006)=139 - KSPARSE(2, 1006)=138 -!WR_H2SO4/WR_H2SO4 - KSPARSE(1, 1007)=139 - KSPARSE(2, 1007)=139 -!WR_H2SO4/WR_ASO4 - KSPARSE(1, 1008)=139 - KSPARSE(2, 1008)=158 -!WR_H2SO4/WR_AHSO5 - KSPARSE(1, 1009)=139 - KSPARSE(2, 1009)=160 -!WR_RO21/RO21 - KSPARSE(1, 1010)=140 - KSPARSE(2, 1010)=86 -!WR_RO21/WR_OH - KSPARSE(1, 1011)=140 - KSPARSE(2, 1011)=135 -!WR_RO21/WR_SO2 - KSPARSE(1, 1012)=140 - KSPARSE(2, 1012)=138 -!WR_RO21/WR_RO21 - KSPARSE(1, 1013)=140 - KSPARSE(2, 1013)=140 -!WR_RO21/WR_ALD2 - KSPARSE(1, 1014)=140 - KSPARSE(2, 1014)=146 -!WR_RO21/WR_KETL - KSPARSE(1, 1015)=140 - KSPARSE(2, 1015)=149 -!WR_RO25/RO25 - KSPARSE(1, 1016)=141 - KSPARSE(2, 1016)=87 -!WR_RO25/WR_OH - KSPARSE(1, 1017)=141 - KSPARSE(2, 1017)=135 -!WR_RO25/WR_RO25 - KSPARSE(1, 1018)=141 - KSPARSE(2, 1018)=141 -!WR_RO25/WR_ALD2 - KSPARSE(1, 1019)=141 - KSPARSE(2, 1019)=146 -!WR_RO25/WR_ACID - KSPARSE(1, 1020)=141 - KSPARSE(2, 1020)=152 -!WR_MEOH/MEOH - KSPARSE(1, 1021)=142 - KSPARSE(2, 1021)=32 -!WR_MEOH/WR_OH - KSPARSE(1, 1022)=142 - KSPARSE(2, 1022)=135 -!WR_MEOH/WR_MEOH - KSPARSE(1, 1023)=142 - KSPARSE(2, 1023)=142 -!WR_ETOH/ETOH - KSPARSE(1, 1024)=143 - KSPARSE(2, 1024)=33 -!WR_ETOH/WR_OH - KSPARSE(1, 1025)=143 - KSPARSE(2, 1025)=135 -!WR_ETOH/WR_ETOH - KSPARSE(1, 1026)=143 - KSPARSE(2, 1026)=143 -!WR_ALCH/ALCH - KSPARSE(1, 1027)=144 - KSPARSE(2, 1027)=34 -!WR_ALCH/WR_OH - KSPARSE(1, 1028)=144 - KSPARSE(2, 1028)=135 -!WR_ALCH/WR_ALCH - KSPARSE(1, 1029)=144 - KSPARSE(2, 1029)=144 + KSPARSE(1, 696)=80 + KSPARSE(2, 696)=91 +!WR_SULF/SULF + KSPARSE(1, 697)=81 + KSPARSE(2, 697)=12 +!WR_SULF/WR_O3 + KSPARSE(1, 698)=81 + KSPARSE(2, 698)=67 +!WR_SULF/WR_H2O2 + KSPARSE(1, 699)=81 + KSPARSE(2, 699)=68 +!WR_SULF/WR_NO3 + KSPARSE(1, 700)=81 + KSPARSE(2, 700)=71 +!WR_SULF/WR_HNO4 + KSPARSE(1, 701)=81 + KSPARSE(2, 701)=75 +!WR_SULF/WR_SO2 + KSPARSE(1, 702)=81 + KSPARSE(2, 702)=80 +!WR_SULF/WR_SULF + KSPARSE(1, 703)=81 + KSPARSE(2, 703)=81 +!WR_SULF/WR_ASO4 + KSPARSE(1, 704)=81 + KSPARSE(2, 704)=88 +!WR_SULF/WR_AHSO5 + KSPARSE(1, 705)=81 + KSPARSE(2, 705)=90 !WR_HCHO/HCHO - KSPARSE(1, 1030)=145 - KSPARSE(2, 1030)=28 + KSPARSE(1, 706)=82 + KSPARSE(2, 706)=22 !WR_HCHO/WR_OH - KSPARSE(1, 1031)=145 - KSPARSE(2, 1031)=135 + KSPARSE(1, 707)=82 + KSPARSE(2, 707)=77 !WR_HCHO/WR_SO2 - KSPARSE(1, 1032)=145 - KSPARSE(2, 1032)=138 -!WR_HCHO/WR_RO21 - KSPARSE(1, 1033)=145 - KSPARSE(2, 1033)=140 -!WR_HCHO/WR_MEOH - KSPARSE(1, 1034)=145 - KSPARSE(2, 1034)=142 + KSPARSE(1, 708)=82 + KSPARSE(2, 708)=80 !WR_HCHO/WR_HCHO - KSPARSE(1, 1035)=145 - KSPARSE(2, 1035)=145 -!WR_HCHO/WR_KETL - KSPARSE(1, 1036)=145 - KSPARSE(2, 1036)=149 + KSPARSE(1, 709)=82 + KSPARSE(2, 709)=82 +!WR_HCHO/WR_MO2 + KSPARSE(1, 710)=82 + KSPARSE(2, 710)=85 !WR_HCHO/WR_AHMS - KSPARSE(1, 1037)=145 - KSPARSE(2, 1037)=161 -!WR_ALD2/ALD2 - KSPARSE(1, 1038)=146 - KSPARSE(2, 1038)=29 -!WR_ALD2/WR_OH - KSPARSE(1, 1039)=146 - KSPARSE(2, 1039)=135 -!WR_ALD2/WR_RO25 - KSPARSE(1, 1040)=146 - KSPARSE(2, 1040)=141 -!WR_ALD2/WR_ETOH - KSPARSE(1, 1041)=146 - KSPARSE(2, 1041)=143 -!WR_ALD2/WR_ALCH - KSPARSE(1, 1042)=146 - KSPARSE(2, 1042)=144 -!WR_ALD2/WR_ALD2 - KSPARSE(1, 1043)=146 - KSPARSE(2, 1043)=146 -!WR_ALD2/WR_KETL - KSPARSE(1, 1044)=146 - KSPARSE(2, 1044)=149 -!WR_ALD2/WR_ACID - KSPARSE(1, 1045)=146 - KSPARSE(2, 1045)=152 -!WR_ALD2/WR_UR21 - KSPARSE(1, 1046)=146 - KSPARSE(2, 1046)=154 -!WR_GLY/GLY - KSPARSE(1, 1047)=147 - KSPARSE(2, 1047)=42 -!WR_GLY/WR_OH - KSPARSE(1, 1048)=147 - KSPARSE(2, 1048)=135 -!WR_GLY/WR_GLY - KSPARSE(1, 1049)=147 - KSPARSE(2, 1049)=147 -!WR_MGLY/MGLY - KSPARSE(1, 1050)=148 - KSPARSE(2, 1050)=41 -!WR_MGLY/WR_OH - KSPARSE(1, 1051)=148 - KSPARSE(2, 1051)=135 -!WR_MGLY/WR_MGLY - KSPARSE(1, 1052)=148 - KSPARSE(2, 1052)=148 -!WR_MGLY/WR_KETL - KSPARSE(1, 1053)=148 - KSPARSE(2, 1053)=149 -!WR_KETL/KETL - KSPARSE(1, 1054)=149 - KSPARSE(2, 1054)=30 -!WR_KETL/WR_OH - KSPARSE(1, 1055)=149 - KSPARSE(2, 1055)=135 -!WR_KETL/WR_ALCH - KSPARSE(1, 1056)=149 - KSPARSE(2, 1056)=144 -!WR_KETL/WR_KETL - KSPARSE(1, 1057)=149 - KSPARSE(2, 1057)=149 + KSPARSE(1, 711)=82 + KSPARSE(2, 711)=91 !WR_ORA1/ORA1 - KSPARSE(1, 1058)=150 - KSPARSE(2, 1058)=43 + KSPARSE(1, 712)=83 + KSPARSE(2, 712)=30 !WR_ORA1/WR_OH - KSPARSE(1, 1059)=150 - KSPARSE(2, 1059)=135 + KSPARSE(1, 713)=83 + KSPARSE(2, 713)=77 !WR_ORA1/WR_HCHO - KSPARSE(1, 1060)=150 - KSPARSE(2, 1060)=145 + KSPARSE(1, 714)=83 + KSPARSE(2, 714)=82 !WR_ORA1/WR_ORA1 - KSPARSE(1, 1061)=150 - KSPARSE(2, 1061)=150 + KSPARSE(1, 715)=83 + KSPARSE(2, 715)=83 !WR_ORA1/WR_AHMS - KSPARSE(1, 1062)=150 - KSPARSE(2, 1062)=161 + KSPARSE(1, 716)=83 + KSPARSE(2, 716)=91 !WR_ORA2/ORA2 - KSPARSE(1, 1063)=151 - KSPARSE(2, 1063)=44 -!WR_ORA2/WR_OH - KSPARSE(1, 1064)=151 - KSPARSE(2, 1064)=135 -!WR_ORA2/WR_RO25 - KSPARSE(1, 1065)=151 - KSPARSE(2, 1065)=141 + KSPARSE(1, 717)=84 + KSPARSE(2, 717)=31 !WR_ORA2/WR_ORA2 - KSPARSE(1, 1066)=151 - KSPARSE(2, 1066)=151 -!WR_ACID/ACID - KSPARSE(1, 1067)=152 - KSPARSE(2, 1067)=45 -!WR_ACID/WR_OH - KSPARSE(1, 1068)=152 - KSPARSE(2, 1068)=135 -!WR_ACID/WR_ACID - KSPARSE(1, 1069)=152 - KSPARSE(2, 1069)=152 -!WR_RP16/RP16 - KSPARSE(1, 1070)=153 - KSPARSE(2, 1070)=74 -!WR_RP16/WR_OH - KSPARSE(1, 1071)=153 - KSPARSE(2, 1071)=135 -!WR_RP16/WR_GLY - KSPARSE(1, 1072)=153 - KSPARSE(2, 1072)=147 -!WR_RP16/WR_ORA2 - KSPARSE(1, 1073)=153 - KSPARSE(2, 1073)=151 -!WR_RP16/WR_RP16 - KSPARSE(1, 1074)=153 - KSPARSE(2, 1074)=153 -!WR_UR21/UR21 - KSPARSE(1, 1075)=154 - KSPARSE(2, 1075)=47 -!WR_UR21/WR_OH - KSPARSE(1, 1076)=154 - KSPARSE(2, 1076)=135 -!WR_UR21/WR_MGLY - KSPARSE(1, 1077)=154 - KSPARSE(2, 1077)=148 -!WR_UR21/WR_KETL - KSPARSE(1, 1078)=154 - KSPARSE(2, 1078)=149 -!WR_UR21/WR_ACID - KSPARSE(1, 1079)=154 - KSPARSE(2, 1079)=152 -!WR_UR21/WR_UR21 - KSPARSE(1, 1080)=154 - KSPARSE(2, 1080)=154 -!WR_UR28/UR28 - KSPARSE(1, 1081)=155 - KSPARSE(2, 1081)=46 -!WR_UR28/WR_OH - KSPARSE(1, 1082)=155 - KSPARSE(2, 1082)=135 -!WR_UR28/WR_RP16 - KSPARSE(1, 1083)=155 - KSPARSE(2, 1083)=153 -!WR_UR28/WR_UR28 - KSPARSE(1, 1084)=155 - KSPARSE(2, 1084)=155 -!WR_ACID2/WR_OH - KSPARSE(1, 1085)=156 - KSPARSE(2, 1085)=135 -!WR_ACID2/WR_ACID - KSPARSE(1, 1086)=156 - KSPARSE(2, 1086)=152 -!WR_ACID2/WR_UR21 - KSPARSE(1, 1087)=156 - KSPARSE(2, 1087)=154 -!WR_ACID2/WR_ACID2 - KSPARSE(1, 1088)=156 - KSPARSE(2, 1088)=156 + KSPARSE(1, 718)=84 + KSPARSE(2, 718)=84 +!WR_MO2/MO2 + KSPARSE(1, 719)=85 + KSPARSE(2, 719)=32 +!WR_MO2/WR_SO2 + KSPARSE(1, 720)=85 + KSPARSE(2, 720)=80 +!WR_MO2/WR_MO2 + KSPARSE(1, 721)=85 + KSPARSE(2, 721)=85 +!WR_OP1/OP1 + KSPARSE(1, 722)=86 + KSPARSE(2, 722)=28 +!WR_OP1/WR_SO2 + KSPARSE(1, 723)=86 + KSPARSE(2, 723)=80 +!WR_OP1/WR_MO2 + KSPARSE(1, 724)=86 + KSPARSE(2, 724)=85 +!WR_OP1/WR_OP1 + KSPARSE(1, 725)=86 + KSPARSE(2, 725)=86 !WR_ASO3/WR_NO3 - KSPARSE(1, 1089)=157 - KSPARSE(2, 1089)=129 + KSPARSE(1, 726)=87 + KSPARSE(2, 726)=71 !WR_ASO3/WR_OH - KSPARSE(1, 1090)=157 - KSPARSE(2, 1090)=135 + KSPARSE(1, 727)=87 + KSPARSE(2, 727)=77 !WR_ASO3/WR_SO2 - KSPARSE(1, 1091)=157 - KSPARSE(2, 1091)=138 -!WR_ASO3/WR_RO21 - KSPARSE(1, 1092)=157 - KSPARSE(2, 1092)=140 + KSPARSE(1, 728)=87 + KSPARSE(2, 728)=80 +!WR_ASO3/WR_MO2 + KSPARSE(1, 729)=87 + KSPARSE(2, 729)=85 !WR_ASO3/WR_ASO3 - KSPARSE(1, 1093)=157 - KSPARSE(2, 1093)=157 + KSPARSE(1, 730)=87 + KSPARSE(2, 730)=87 !WR_ASO4/WR_NO3 - KSPARSE(1, 1094)=158 - KSPARSE(2, 1094)=129 -!WR_ASO4/WR_H2SO4 - KSPARSE(1, 1095)=158 - KSPARSE(2, 1095)=139 + KSPARSE(1, 731)=88 + KSPARSE(2, 731)=71 +!WR_ASO4/WR_SULF + KSPARSE(1, 732)=88 + KSPARSE(2, 732)=81 !WR_ASO4/WR_ASO4 - KSPARSE(1, 1096)=158 - KSPARSE(2, 1096)=158 + KSPARSE(1, 733)=88 + KSPARSE(2, 733)=88 !WR_ASO4/WR_ASO5 - KSPARSE(1, 1097)=158 - KSPARSE(2, 1097)=159 + KSPARSE(1, 734)=88 + KSPARSE(2, 734)=89 !WR_ASO5/WR_HO2 - KSPARSE(1, 1098)=159 - KSPARSE(2, 1098)=136 + KSPARSE(1, 735)=89 + KSPARSE(2, 735)=78 !WR_ASO5/WR_ASO3 - KSPARSE(1, 1099)=159 - KSPARSE(2, 1099)=157 + KSPARSE(1, 736)=89 + KSPARSE(2, 736)=87 !WR_ASO5/WR_ASO5 - KSPARSE(1, 1100)=159 - KSPARSE(2, 1100)=159 + KSPARSE(1, 737)=89 + KSPARSE(2, 737)=89 !WR_AHSO5/WR_HO2 - KSPARSE(1, 1101)=160 - KSPARSE(2, 1101)=136 + KSPARSE(1, 738)=90 + KSPARSE(2, 738)=78 !WR_AHSO5/WR_SO2 - KSPARSE(1, 1102)=160 - KSPARSE(2, 1102)=138 + KSPARSE(1, 739)=90 + KSPARSE(2, 739)=80 !WR_AHSO5/WR_ASO5 - KSPARSE(1, 1103)=160 - KSPARSE(2, 1103)=159 + KSPARSE(1, 740)=90 + KSPARSE(2, 740)=89 !WR_AHSO5/WR_AHSO5 - KSPARSE(1, 1104)=160 - KSPARSE(2, 1104)=160 + KSPARSE(1, 741)=90 + KSPARSE(2, 741)=90 !WR_AHMS/WR_OH - KSPARSE(1, 1105)=161 - KSPARSE(2, 1105)=135 + KSPARSE(1, 742)=91 + KSPARSE(2, 742)=77 !WR_AHMS/WR_SO2 - KSPARSE(1, 1106)=161 - KSPARSE(2, 1106)=138 + KSPARSE(1, 743)=91 + KSPARSE(2, 743)=80 !WR_AHMS/WR_HCHO - KSPARSE(1, 1107)=161 - KSPARSE(2, 1107)=145 + KSPARSE(1, 744)=91 + KSPARSE(2, 744)=82 !WR_AHMS/WR_AHMS - KSPARSE(1, 1108)=161 - KSPARSE(2, 1108)=161 -KSPARSEDIM = 1108 + KSPARSE(1, 745)=91 + KSPARSE(2, 745)=91 +KSPARSEDIM = 745 RETURN END SUBROUTINE CH_SPARSE_AQ +!! +!! ####################### + SUBROUTINE CH_SPARSE_GAZ +!! ####################### +!! +!!*** *MODD_CH_SPARSE* +!! +!! PURPOSE +!! ------- +! calculation of the non-zero matrix elements in the Jacobian +!! +!!** METHOD +!! ------ +!! A 2D array KSPARSE of DIMESNSION(2,*) is returned, containing +!! the indices of the non-zero matrix elements in the Jacobian. +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Karsten Suhre (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Original 26/07/96 +!! Modified 05/05/98: Vectorization (Vincent Crassier & KS) +!! +!!---------------------------------------------------------------------- +!! +!! EXTERNAL +!! -------- +!! none +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +!! none +!! +!! EXPLICIT ARGUMENTS +!! ------------------ +IMPLICIT NONE +!! +!! LOCAL VARIABLES +!! --------------- +!! none +!!---------------------------------------------------------------------- +!! +!! EXECUTABLE STATEMENTS +!! --------------------- +! check if output array is large enough +IF (KSPARSEDIM.LT.449) THEN + STOP 'CH_SPARSE ERROR: array KSPARSE is too small!' +END IF +!O3/O3 + KSPARSE(1, 1)=1 + KSPARSE(2, 1)=1 +!O3/NO + KSPARSE(1, 2)=1 + KSPARSE(2, 2)=3 +!O3/NO2 + KSPARSE(1, 3)=1 + KSPARSE(2, 3)=4 +!O3/OH + KSPARSE(1, 4)=1 + KSPARSE(2, 4)=14 +!O3/HO2 + KSPARSE(1, 5)=1 + KSPARSE(2, 5)=15 +!O3/ALKE + KSPARSE(1, 6)=1 + KSPARSE(2, 6)=19 +!O3/BIO + KSPARSE(1, 7)=1 + KSPARSE(2, 7)=20 +!O3/CARBO + KSPARSE(1, 8)=1 + KSPARSE(2, 8)=25 +!O3/PAN + KSPARSE(1, 9)=1 + KSPARSE(2, 9)=27 +!O3/ADD + KSPARSE(1, 10)=1 + KSPARSE(2, 10)=37 +!O3/CARBOP + KSPARSE(1, 11)=1 + KSPARSE(2, 11)=39 +!H2O2/O3 + KSPARSE(1, 12)=2 + KSPARSE(2, 12)=1 +!H2O2/H2O2 + KSPARSE(1, 13)=2 + KSPARSE(2, 13)=2 +!H2O2/OH + KSPARSE(1, 14)=2 + KSPARSE(2, 14)=14 +!H2O2/HO2 + KSPARSE(1, 15)=2 + KSPARSE(2, 15)=15 +!H2O2/ALKE + KSPARSE(1, 16)=2 + KSPARSE(2, 16)=19 +!H2O2/BIO + KSPARSE(1, 17)=2 + KSPARSE(2, 17)=20 +!NO/O3 + KSPARSE(1, 18)=3 + KSPARSE(2, 18)=1 +!NO/NO + KSPARSE(1, 19)=3 + KSPARSE(2, 19)=3 +!NO/NO2 + KSPARSE(1, 20)=3 + KSPARSE(2, 20)=4 +!NO/NO3 + KSPARSE(1, 21)=3 + KSPARSE(2, 21)=5 +!NO/HONO + KSPARSE(1, 22)=3 + KSPARSE(2, 22)=7 +!NO/OH + KSPARSE(1, 23)=3 + KSPARSE(2, 23)=14 +!NO/HO2 + KSPARSE(1, 24)=3 + KSPARSE(2, 24)=15 +!NO/MO2 + KSPARSE(1, 25)=3 + KSPARSE(2, 25)=32 +!NO/ALKAP + KSPARSE(1, 26)=3 + KSPARSE(2, 26)=33 +!NO/ALKEP + KSPARSE(1, 27)=3 + KSPARSE(2, 27)=34 +!NO/BIOP + KSPARSE(1, 28)=3 + KSPARSE(2, 28)=35 +!NO/AROP + KSPARSE(1, 29)=3 + KSPARSE(2, 29)=38 +!NO/CARBOP + KSPARSE(1, 30)=3 + KSPARSE(2, 30)=39 +!NO/OLN + KSPARSE(1, 31)=3 + KSPARSE(2, 31)=40 +!NO/XO2 + KSPARSE(1, 32)=3 + KSPARSE(2, 32)=41 +!NO2/O3 + KSPARSE(1, 33)=4 + KSPARSE(2, 33)=1 +!NO2/NO + KSPARSE(1, 34)=4 + KSPARSE(2, 34)=3 +!NO2/NO2 + KSPARSE(1, 35)=4 + KSPARSE(2, 35)=4 +!NO2/NO3 + KSPARSE(1, 36)=4 + KSPARSE(2, 36)=5 +!NO2/N2O5 + KSPARSE(1, 37)=4 + KSPARSE(2, 37)=6 +!NO2/HONO + KSPARSE(1, 38)=4 + KSPARSE(2, 38)=7 +!NO2/HNO3 + KSPARSE(1, 39)=4 + KSPARSE(2, 39)=8 +!NO2/HNO4 + KSPARSE(1, 40)=4 + KSPARSE(2, 40)=9 +!NO2/OH + KSPARSE(1, 41)=4 + KSPARSE(2, 41)=14 +!NO2/HO2 + KSPARSE(1, 42)=4 + KSPARSE(2, 42)=15 +!NO2/CARBO + KSPARSE(1, 43)=4 + KSPARSE(2, 43)=25 +!NO2/ONIT + KSPARSE(1, 44)=4 + KSPARSE(2, 44)=26 +!NO2/PAN + KSPARSE(1, 45)=4 + KSPARSE(2, 45)=27 +!NO2/MO2 + KSPARSE(1, 46)=4 + KSPARSE(2, 46)=32 +!NO2/ALKAP + KSPARSE(1, 47)=4 + KSPARSE(2, 47)=33 +!NO2/ALKEP + KSPARSE(1, 48)=4 + KSPARSE(2, 48)=34 +!NO2/BIOP + KSPARSE(1, 49)=4 + KSPARSE(2, 49)=35 +!NO2/PHO + KSPARSE(1, 50)=4 + KSPARSE(2, 50)=36 +!NO2/ADD + KSPARSE(1, 51)=4 + KSPARSE(2, 51)=37 +!NO2/AROP + KSPARSE(1, 52)=4 + KSPARSE(2, 52)=38 +!NO2/CARBOP + KSPARSE(1, 53)=4 + KSPARSE(2, 53)=39 +!NO2/OLN + KSPARSE(1, 54)=4 + KSPARSE(2, 54)=40 +!NO2/XO2 + KSPARSE(1, 55)=4 + KSPARSE(2, 55)=41 +!NO3/O3 + KSPARSE(1, 56)=5 + KSPARSE(2, 56)=1 +!NO3/NO + KSPARSE(1, 57)=5 + KSPARSE(2, 57)=3 +!NO3/NO2 + KSPARSE(1, 58)=5 + KSPARSE(2, 58)=4 +!NO3/NO3 + KSPARSE(1, 59)=5 + KSPARSE(2, 59)=5 +!NO3/N2O5 + KSPARSE(1, 60)=5 + KSPARSE(2, 60)=6 +!NO3/HNO3 + KSPARSE(1, 61)=5 + KSPARSE(2, 61)=8 +!NO3/HNO4 + KSPARSE(1, 62)=5 + KSPARSE(2, 62)=9 +!NO3/OH + KSPARSE(1, 63)=5 + KSPARSE(2, 63)=14 +!NO3/HO2 + KSPARSE(1, 64)=5 + KSPARSE(2, 64)=15 +!NO3/ALKE + KSPARSE(1, 65)=5 + KSPARSE(2, 65)=19 +!NO3/BIO + KSPARSE(1, 66)=5 + KSPARSE(2, 66)=20 +!NO3/ARO + KSPARSE(1, 67)=5 + KSPARSE(2, 67)=21 +!NO3/HCHO + KSPARSE(1, 68)=5 + KSPARSE(2, 68)=22 +!NO3/ALD + KSPARSE(1, 69)=5 + KSPARSE(2, 69)=23 +!NO3/CARBO + KSPARSE(1, 70)=5 + KSPARSE(2, 70)=25 +!NO3/PAN + KSPARSE(1, 71)=5 + KSPARSE(2, 71)=27 +!NO3/MO2 + KSPARSE(1, 72)=5 + KSPARSE(2, 72)=32 +!NO3/ALKAP + KSPARSE(1, 73)=5 + KSPARSE(2, 73)=33 +!NO3/ALKEP + KSPARSE(1, 74)=5 + KSPARSE(2, 74)=34 +!NO3/BIOP + KSPARSE(1, 75)=5 + KSPARSE(2, 75)=35 +!NO3/AROP + KSPARSE(1, 76)=5 + KSPARSE(2, 76)=38 +!NO3/CARBOP + KSPARSE(1, 77)=5 + KSPARSE(2, 77)=39 +!NO3/OLN + KSPARSE(1, 78)=5 + KSPARSE(2, 78)=40 +!NO3/XO2 + KSPARSE(1, 79)=5 + KSPARSE(2, 79)=41 +!N2O5/NO2 + KSPARSE(1, 80)=6 + KSPARSE(2, 80)=4 +!N2O5/NO3 + KSPARSE(1, 81)=6 + KSPARSE(2, 81)=5 +!N2O5/N2O5 + KSPARSE(1, 82)=6 + KSPARSE(2, 82)=6 +!HONO/NO + KSPARSE(1, 83)=7 + KSPARSE(2, 83)=3 +!HONO/NO2 + KSPARSE(1, 84)=7 + KSPARSE(2, 84)=4 +!HONO/HONO + KSPARSE(1, 85)=7 + KSPARSE(2, 85)=7 +!HONO/OH + KSPARSE(1, 86)=7 + KSPARSE(2, 86)=14 +!HONO/ADD + KSPARSE(1, 87)=7 + KSPARSE(2, 87)=37 +!HNO3/NO2 + KSPARSE(1, 88)=8 + KSPARSE(2, 88)=4 +!HNO3/NO3 + KSPARSE(1, 89)=8 + KSPARSE(2, 89)=5 +!HNO3/HNO3 + KSPARSE(1, 90)=8 + KSPARSE(2, 90)=8 +!HNO3/OH + KSPARSE(1, 91)=8 + KSPARSE(2, 91)=14 +!HNO3/HO2 + KSPARSE(1, 92)=8 + KSPARSE(2, 92)=15 +!HNO3/ARO + KSPARSE(1, 93)=8 + KSPARSE(2, 93)=21 +!HNO3/HCHO + KSPARSE(1, 94)=8 + KSPARSE(2, 94)=22 +!HNO3/ALD + KSPARSE(1, 95)=8 + KSPARSE(2, 95)=23 +!HNO3/CARBO + KSPARSE(1, 96)=8 + KSPARSE(2, 96)=25 +!HNO4/NO2 + KSPARSE(1, 97)=9 + KSPARSE(2, 97)=4 +!HNO4/HNO4 + KSPARSE(1, 98)=9 + KSPARSE(2, 98)=9 +!HNO4/OH + KSPARSE(1, 99)=9 + KSPARSE(2, 99)=14 +!HNO4/HO2 + KSPARSE(1, 100)=9 + KSPARSE(2, 100)=15 +!NH3/NH3 + KSPARSE(1, 101)=10 + KSPARSE(2, 101)=10 +!NH3/OH + KSPARSE(1, 102)=10 + KSPARSE(2, 102)=14 +!SO2/SO2 + KSPARSE(1, 103)=11 + KSPARSE(2, 103)=11 +!SO2/OH + KSPARSE(1, 104)=11 + KSPARSE(2, 104)=14 +!SULF/SO2 + KSPARSE(1, 105)=12 + KSPARSE(2, 105)=11 +!SULF/SULF + KSPARSE(1, 106)=12 + KSPARSE(2, 106)=12 +!SULF/OH + KSPARSE(1, 107)=12 + KSPARSE(2, 107)=14 +!CO/O3 + KSPARSE(1, 108)=13 + KSPARSE(2, 108)=1 +!CO/NO3 + KSPARSE(1, 109)=13 + KSPARSE(2, 109)=5 +!CO/CO + KSPARSE(1, 110)=13 + KSPARSE(2, 110)=13 +!CO/OH + KSPARSE(1, 111)=13 + KSPARSE(2, 111)=14 +!CO/ALKA + KSPARSE(1, 112)=13 + KSPARSE(2, 112)=18 +!CO/ALKE + KSPARSE(1, 113)=13 + KSPARSE(2, 113)=19 +!CO/BIO + KSPARSE(1, 114)=13 + KSPARSE(2, 114)=20 +!CO/HCHO + KSPARSE(1, 115)=13 + KSPARSE(2, 115)=22 +!CO/ALD + KSPARSE(1, 116)=13 + KSPARSE(2, 116)=23 +!CO/CARBO + KSPARSE(1, 117)=13 + KSPARSE(2, 117)=25 +!CO/PAN + KSPARSE(1, 118)=13 + KSPARSE(2, 118)=27 +!OH/O3 + KSPARSE(1, 119)=14 + KSPARSE(2, 119)=1 +!OH/H2O2 + KSPARSE(1, 120)=14 + KSPARSE(2, 120)=2 +!OH/NO + KSPARSE(1, 121)=14 + KSPARSE(2, 121)=3 +!OH/NO2 + KSPARSE(1, 122)=14 + KSPARSE(2, 122)=4 +!OH/NO3 + KSPARSE(1, 123)=14 + KSPARSE(2, 123)=5 +!OH/HONO + KSPARSE(1, 124)=14 + KSPARSE(2, 124)=7 +!OH/HNO3 + KSPARSE(1, 125)=14 + KSPARSE(2, 125)=8 +!OH/HNO4 + KSPARSE(1, 126)=14 + KSPARSE(2, 126)=9 +!OH/NH3 + KSPARSE(1, 127)=14 + KSPARSE(2, 127)=10 +!OH/SO2 + KSPARSE(1, 128)=14 + KSPARSE(2, 128)=11 +!OH/CO + KSPARSE(1, 129)=14 + KSPARSE(2, 129)=13 +!OH/OH + KSPARSE(1, 130)=14 + KSPARSE(2, 130)=14 +!OH/HO2 + KSPARSE(1, 131)=14 + KSPARSE(2, 131)=15 +!OH/CH4 + KSPARSE(1, 132)=14 + KSPARSE(2, 132)=16 +!OH/ETH + KSPARSE(1, 133)=14 + KSPARSE(2, 133)=17 +!OH/ALKA + KSPARSE(1, 134)=14 + KSPARSE(2, 134)=18 +!OH/ALKE + KSPARSE(1, 135)=14 + KSPARSE(2, 135)=19 +!OH/BIO + KSPARSE(1, 136)=14 + KSPARSE(2, 136)=20 +!OH/ARO + KSPARSE(1, 137)=14 + KSPARSE(2, 137)=21 +!OH/HCHO + KSPARSE(1, 138)=14 + KSPARSE(2, 138)=22 +!OH/ALD + KSPARSE(1, 139)=14 + KSPARSE(2, 139)=23 +!OH/KET + KSPARSE(1, 140)=14 + KSPARSE(2, 140)=24 +!OH/CARBO + KSPARSE(1, 141)=14 + KSPARSE(2, 141)=25 +!OH/ONIT + KSPARSE(1, 142)=14 + KSPARSE(2, 142)=26 +!OH/PAN + KSPARSE(1, 143)=14 + KSPARSE(2, 143)=27 +!OH/OP1 + KSPARSE(1, 144)=14 + KSPARSE(2, 144)=28 +!OH/OP2 + KSPARSE(1, 145)=14 + KSPARSE(2, 145)=29 +!OH/ORA1 + KSPARSE(1, 146)=14 + KSPARSE(2, 146)=30 +!OH/ORA2 + KSPARSE(1, 147)=14 + KSPARSE(2, 147)=31 +!OH/ADD + KSPARSE(1, 148)=14 + KSPARSE(2, 148)=37 +!HO2/O3 + KSPARSE(1, 149)=15 + KSPARSE(2, 149)=1 +!HO2/H2O2 + KSPARSE(1, 150)=15 + KSPARSE(2, 150)=2 +!HO2/NO + KSPARSE(1, 151)=15 + KSPARSE(2, 151)=3 +!HO2/NO2 + KSPARSE(1, 152)=15 + KSPARSE(2, 152)=4 +!HO2/NO3 + KSPARSE(1, 153)=15 + KSPARSE(2, 153)=5 +!HO2/HNO4 + KSPARSE(1, 154)=15 + KSPARSE(2, 154)=9 +!HO2/SO2 + KSPARSE(1, 155)=15 + KSPARSE(2, 155)=11 +!HO2/CO + KSPARSE(1, 156)=15 + KSPARSE(2, 156)=13 +!HO2/OH + KSPARSE(1, 157)=15 + KSPARSE(2, 157)=14 +!HO2/HO2 + KSPARSE(1, 158)=15 + KSPARSE(2, 158)=15 +!HO2/ALKA + KSPARSE(1, 159)=15 + KSPARSE(2, 159)=18 +!HO2/ALKE + KSPARSE(1, 160)=15 + KSPARSE(2, 160)=19 +!HO2/BIO + KSPARSE(1, 161)=15 + KSPARSE(2, 161)=20 +!HO2/ARO + KSPARSE(1, 162)=15 + KSPARSE(2, 162)=21 +!HO2/HCHO + KSPARSE(1, 163)=15 + KSPARSE(2, 163)=22 +!HO2/ALD + KSPARSE(1, 164)=15 + KSPARSE(2, 164)=23 +!HO2/CARBO + KSPARSE(1, 165)=15 + KSPARSE(2, 165)=25 +!HO2/ONIT + KSPARSE(1, 166)=15 + KSPARSE(2, 166)=26 +!HO2/PAN + KSPARSE(1, 167)=15 + KSPARSE(2, 167)=27 +!HO2/OP1 + KSPARSE(1, 168)=15 + KSPARSE(2, 168)=28 +!HO2/OP2 + KSPARSE(1, 169)=15 + KSPARSE(2, 169)=29 +!HO2/ORA1 + KSPARSE(1, 170)=15 + KSPARSE(2, 170)=30 +!HO2/MO2 + KSPARSE(1, 171)=15 + KSPARSE(2, 171)=32 +!HO2/ALKAP + KSPARSE(1, 172)=15 + KSPARSE(2, 172)=33 +!HO2/ALKEP + KSPARSE(1, 173)=15 + KSPARSE(2, 173)=34 +!HO2/BIOP + KSPARSE(1, 174)=15 + KSPARSE(2, 174)=35 +!HO2/PHO + KSPARSE(1, 175)=15 + KSPARSE(2, 175)=36 +!HO2/ADD + KSPARSE(1, 176)=15 + KSPARSE(2, 176)=37 +!HO2/AROP + KSPARSE(1, 177)=15 + KSPARSE(2, 177)=38 +!HO2/CARBOP + KSPARSE(1, 178)=15 + KSPARSE(2, 178)=39 +!HO2/OLN + KSPARSE(1, 179)=15 + KSPARSE(2, 179)=40 +!HO2/XO2 + KSPARSE(1, 180)=15 + KSPARSE(2, 180)=41 +!CH4/O3 + KSPARSE(1, 181)=16 + KSPARSE(2, 181)=1 +!CH4/OH + KSPARSE(1, 182)=16 + KSPARSE(2, 182)=14 +!CH4/CH4 + KSPARSE(1, 183)=16 + KSPARSE(2, 183)=16 +!CH4/ALKE + KSPARSE(1, 184)=16 + KSPARSE(2, 184)=19 +!ETH/O3 + KSPARSE(1, 185)=17 + KSPARSE(2, 185)=1 +!ETH/OH + KSPARSE(1, 186)=17 + KSPARSE(2, 186)=14 +!ETH/ETH + KSPARSE(1, 187)=17 + KSPARSE(2, 187)=17 +!ETH/ALKE + KSPARSE(1, 188)=17 + KSPARSE(2, 188)=19 +!ALKA/OH + KSPARSE(1, 189)=18 + KSPARSE(2, 189)=14 +!ALKA/ALKA + KSPARSE(1, 190)=18 + KSPARSE(2, 190)=18 +!ALKE/O3 + KSPARSE(1, 191)=19 + KSPARSE(2, 191)=1 +!ALKE/NO + KSPARSE(1, 192)=19 + KSPARSE(2, 192)=3 +!ALKE/NO3 + KSPARSE(1, 193)=19 + KSPARSE(2, 193)=5 +!ALKE/OH + KSPARSE(1, 194)=19 + KSPARSE(2, 194)=14 +!ALKE/ALKE + KSPARSE(1, 195)=19 + KSPARSE(2, 195)=19 +!ALKE/BIO + KSPARSE(1, 196)=19 + KSPARSE(2, 196)=20 +!ALKE/MO2 + KSPARSE(1, 197)=19 + KSPARSE(2, 197)=32 +!ALKE/BIOP + KSPARSE(1, 198)=19 + KSPARSE(2, 198)=35 +!ALKE/CARBOP + KSPARSE(1, 199)=19 + KSPARSE(2, 199)=39 +!BIO/O3 + KSPARSE(1, 200)=20 + KSPARSE(2, 200)=1 +!BIO/NO3 + KSPARSE(1, 201)=20 + KSPARSE(2, 201)=5 +!BIO/OH + KSPARSE(1, 202)=20 + KSPARSE(2, 202)=14 +!BIO/BIO + KSPARSE(1, 203)=20 + KSPARSE(2, 203)=20 +!ARO/O3 + KSPARSE(1, 204)=21 + KSPARSE(2, 204)=1 +!ARO/NO2 + KSPARSE(1, 205)=21 + KSPARSE(2, 205)=4 +!ARO/NO3 + KSPARSE(1, 206)=21 + KSPARSE(2, 206)=5 +!ARO/OH + KSPARSE(1, 207)=21 + KSPARSE(2, 207)=14 +!ARO/HO2 + KSPARSE(1, 208)=21 + KSPARSE(2, 208)=15 +!ARO/ARO + KSPARSE(1, 209)=21 + KSPARSE(2, 209)=21 +!ARO/PHO + KSPARSE(1, 210)=21 + KSPARSE(2, 210)=36 +!ARO/ADD + KSPARSE(1, 211)=21 + KSPARSE(2, 211)=37 +!HCHO/O3 + KSPARSE(1, 212)=22 + KSPARSE(2, 212)=1 +!HCHO/NO + KSPARSE(1, 213)=22 + KSPARSE(2, 213)=3 +!HCHO/NO3 + KSPARSE(1, 214)=22 + KSPARSE(2, 214)=5 +!HCHO/OH + KSPARSE(1, 215)=22 + KSPARSE(2, 215)=14 +!HCHO/ALKA + KSPARSE(1, 216)=22 + KSPARSE(2, 216)=18 +!HCHO/ALKE + KSPARSE(1, 217)=22 + KSPARSE(2, 217)=19 +!HCHO/BIO + KSPARSE(1, 218)=22 + KSPARSE(2, 218)=20 +!HCHO/HCHO + KSPARSE(1, 219)=22 + KSPARSE(2, 219)=22 +!HCHO/CARBO + KSPARSE(1, 220)=22 + KSPARSE(2, 220)=25 +!HCHO/PAN + KSPARSE(1, 221)=22 + KSPARSE(2, 221)=27 +!HCHO/OP1 + KSPARSE(1, 222)=22 + KSPARSE(2, 222)=28 +!HCHO/OP2 + KSPARSE(1, 223)=22 + KSPARSE(2, 223)=29 +!HCHO/MO2 + KSPARSE(1, 224)=22 + KSPARSE(2, 224)=32 +!HCHO/ALKAP + KSPARSE(1, 225)=22 + KSPARSE(2, 225)=33 +!HCHO/ALKEP + KSPARSE(1, 226)=22 + KSPARSE(2, 226)=34 +!HCHO/BIOP + KSPARSE(1, 227)=22 + KSPARSE(2, 227)=35 +!HCHO/AROP + KSPARSE(1, 228)=22 + KSPARSE(2, 228)=38 +!HCHO/CARBOP + KSPARSE(1, 229)=22 + KSPARSE(2, 229)=39 +!HCHO/OLN + KSPARSE(1, 230)=22 + KSPARSE(2, 230)=40 +!HCHO/XO2 + KSPARSE(1, 231)=22 + KSPARSE(2, 231)=41 +!ALD/O3 + KSPARSE(1, 232)=23 + KSPARSE(2, 232)=1 +!ALD/NO + KSPARSE(1, 233)=23 + KSPARSE(2, 233)=3 +!ALD/NO3 + KSPARSE(1, 234)=23 + KSPARSE(2, 234)=5 +!ALD/OH + KSPARSE(1, 235)=23 + KSPARSE(2, 235)=14 +!ALD/ALKA + KSPARSE(1, 236)=23 + KSPARSE(2, 236)=18 +!ALD/ALKE + KSPARSE(1, 237)=23 + KSPARSE(2, 237)=19 +!ALD/BIO + KSPARSE(1, 238)=23 + KSPARSE(2, 238)=20 +!ALD/ALD + KSPARSE(1, 239)=23 + KSPARSE(2, 239)=23 +!ALD/CARBO + KSPARSE(1, 240)=23 + KSPARSE(2, 240)=25 +!ALD/ONIT + KSPARSE(1, 241)=23 + KSPARSE(2, 241)=26 +!ALD/OP2 + KSPARSE(1, 242)=23 + KSPARSE(2, 242)=29 +!ALD/MO2 + KSPARSE(1, 243)=23 + KSPARSE(2, 243)=32 +!ALD/ALKAP + KSPARSE(1, 244)=23 + KSPARSE(2, 244)=33 +!ALD/ALKEP + KSPARSE(1, 245)=23 + KSPARSE(2, 245)=34 +!ALD/BIOP + KSPARSE(1, 246)=23 + KSPARSE(2, 246)=35 +!ALD/CARBOP + KSPARSE(1, 247)=23 + KSPARSE(2, 247)=39 +!ALD/OLN + KSPARSE(1, 248)=23 + KSPARSE(2, 248)=40 +!KET/O3 + KSPARSE(1, 249)=24 + KSPARSE(2, 249)=1 +!KET/NO + KSPARSE(1, 250)=24 + KSPARSE(2, 250)=3 +!KET/NO3 + KSPARSE(1, 251)=24 + KSPARSE(2, 251)=5 +!KET/OH + KSPARSE(1, 252)=24 + KSPARSE(2, 252)=14 +!KET/ALKA + KSPARSE(1, 253)=24 + KSPARSE(2, 253)=18 +!KET/ALKE + KSPARSE(1, 254)=24 + KSPARSE(2, 254)=19 +!KET/BIO + KSPARSE(1, 255)=24 + KSPARSE(2, 255)=20 +!KET/KET + KSPARSE(1, 256)=24 + KSPARSE(2, 256)=24 +!KET/CARBO + KSPARSE(1, 257)=24 + KSPARSE(2, 257)=25 +!KET/ONIT + KSPARSE(1, 258)=24 + KSPARSE(2, 258)=26 +!KET/OP2 + KSPARSE(1, 259)=24 + KSPARSE(2, 259)=29 +!KET/MO2 + KSPARSE(1, 260)=24 + KSPARSE(2, 260)=32 +!KET/ALKAP + KSPARSE(1, 261)=24 + KSPARSE(2, 261)=33 +!KET/ALKEP + KSPARSE(1, 262)=24 + KSPARSE(2, 262)=34 +!KET/BIOP + KSPARSE(1, 263)=24 + KSPARSE(2, 263)=35 +!KET/CARBOP + KSPARSE(1, 264)=24 + KSPARSE(2, 264)=39 +!KET/OLN + KSPARSE(1, 265)=24 + KSPARSE(2, 265)=40 +!CARBO/O3 + KSPARSE(1, 266)=25 + KSPARSE(2, 266)=1 +!CARBO/NO + KSPARSE(1, 267)=25 + KSPARSE(2, 267)=3 +!CARBO/NO3 + KSPARSE(1, 268)=25 + KSPARSE(2, 268)=5 +!CARBO/OH + KSPARSE(1, 269)=25 + KSPARSE(2, 269)=14 +!CARBO/ALKA + KSPARSE(1, 270)=25 + KSPARSE(2, 270)=18 +!CARBO/ALKE + KSPARSE(1, 271)=25 + KSPARSE(2, 271)=19 +!CARBO/BIO + KSPARSE(1, 272)=25 + KSPARSE(2, 272)=20 +!CARBO/CARBO + KSPARSE(1, 273)=25 + KSPARSE(2, 273)=25 +!CARBO/PAN + KSPARSE(1, 274)=25 + KSPARSE(2, 274)=27 +!CARBO/MO2 + KSPARSE(1, 275)=25 + KSPARSE(2, 275)=32 +!CARBO/ALKAP + KSPARSE(1, 276)=25 + KSPARSE(2, 276)=33 +!CARBO/BIOP + KSPARSE(1, 277)=25 + KSPARSE(2, 277)=35 +!CARBO/AROP + KSPARSE(1, 278)=25 + KSPARSE(2, 278)=38 +!CARBO/CARBOP + KSPARSE(1, 279)=25 + KSPARSE(2, 279)=39 +!ONIT/NO + KSPARSE(1, 280)=26 + KSPARSE(2, 280)=3 +!ONIT/NO2 + KSPARSE(1, 281)=26 + KSPARSE(2, 281)=4 +!ONIT/NO3 + KSPARSE(1, 282)=26 + KSPARSE(2, 282)=5 +!ONIT/OH + KSPARSE(1, 283)=26 + KSPARSE(2, 283)=14 +!ONIT/HO2 + KSPARSE(1, 284)=26 + KSPARSE(2, 284)=15 +!ONIT/ONIT + KSPARSE(1, 285)=26 + KSPARSE(2, 285)=26 +!ONIT/PAN + KSPARSE(1, 286)=26 + KSPARSE(2, 286)=27 +!ONIT/MO2 + KSPARSE(1, 287)=26 + KSPARSE(2, 287)=32 +!ONIT/ALKAP + KSPARSE(1, 288)=26 + KSPARSE(2, 288)=33 +!ONIT/BIOP + KSPARSE(1, 289)=26 + KSPARSE(2, 289)=35 +!ONIT/PHO + KSPARSE(1, 290)=26 + KSPARSE(2, 290)=36 +!ONIT/AROP + KSPARSE(1, 291)=26 + KSPARSE(2, 291)=38 +!ONIT/CARBOP + KSPARSE(1, 292)=26 + KSPARSE(2, 292)=39 +!ONIT/OLN + KSPARSE(1, 293)=26 + KSPARSE(2, 293)=40 +!PAN/O3 + KSPARSE(1, 294)=27 + KSPARSE(2, 294)=1 +!PAN/NO2 + KSPARSE(1, 295)=27 + KSPARSE(2, 295)=4 +!PAN/NO3 + KSPARSE(1, 296)=27 + KSPARSE(2, 296)=5 +!PAN/OH + KSPARSE(1, 297)=27 + KSPARSE(2, 297)=14 +!PAN/PAN + KSPARSE(1, 298)=27 + KSPARSE(2, 298)=27 +!PAN/CARBOP + KSPARSE(1, 299)=27 + KSPARSE(2, 299)=39 +!OP1/OH + KSPARSE(1, 300)=28 + KSPARSE(2, 300)=14 +!OP1/HO2 + KSPARSE(1, 301)=28 + KSPARSE(2, 301)=15 +!OP1/OP1 + KSPARSE(1, 302)=28 + KSPARSE(2, 302)=28 +!OP1/MO2 + KSPARSE(1, 303)=28 + KSPARSE(2, 303)=32 +!OP2/O3 + KSPARSE(1, 304)=29 + KSPARSE(2, 304)=1 +!OP2/OH + KSPARSE(1, 305)=29 + KSPARSE(2, 305)=14 +!OP2/HO2 + KSPARSE(1, 306)=29 + KSPARSE(2, 306)=15 +!OP2/CARBO + KSPARSE(1, 307)=29 + KSPARSE(2, 307)=25 +!OP2/OP2 + KSPARSE(1, 308)=29 + KSPARSE(2, 308)=29 +!OP2/ALKAP + KSPARSE(1, 309)=29 + KSPARSE(2, 309)=33 +!OP2/ALKEP + KSPARSE(1, 310)=29 + KSPARSE(2, 310)=34 +!OP2/BIOP + KSPARSE(1, 311)=29 + KSPARSE(2, 311)=35 +!OP2/AROP + KSPARSE(1, 312)=29 + KSPARSE(2, 312)=38 +!OP2/CARBOP + KSPARSE(1, 313)=29 + KSPARSE(2, 313)=39 +!OP2/XO2 + KSPARSE(1, 314)=29 + KSPARSE(2, 314)=41 +!ORA1/O3 + KSPARSE(1, 315)=30 + KSPARSE(2, 315)=1 +!ORA1/OH + KSPARSE(1, 316)=30 + KSPARSE(2, 316)=14 +!ORA1/ALKA + KSPARSE(1, 317)=30 + KSPARSE(2, 317)=18 +!ORA1/ALKE + KSPARSE(1, 318)=30 + KSPARSE(2, 318)=19 +!ORA1/BIO + KSPARSE(1, 319)=30 + KSPARSE(2, 319)=20 +!ORA1/CARBO + KSPARSE(1, 320)=30 + KSPARSE(2, 320)=25 +!ORA1/PAN + KSPARSE(1, 321)=30 + KSPARSE(2, 321)=27 +!ORA1/ORA1 + KSPARSE(1, 322)=30 + KSPARSE(2, 322)=30 +!ORA2/O3 + KSPARSE(1, 323)=31 + KSPARSE(2, 323)=1 +!ORA2/OH + KSPARSE(1, 324)=31 + KSPARSE(2, 324)=14 +!ORA2/HO2 + KSPARSE(1, 325)=31 + KSPARSE(2, 325)=15 +!ORA2/ALKE + KSPARSE(1, 326)=31 + KSPARSE(2, 326)=19 +!ORA2/BIO + KSPARSE(1, 327)=31 + KSPARSE(2, 327)=20 +!ORA2/CARBO + KSPARSE(1, 328)=31 + KSPARSE(2, 328)=25 +!ORA2/ORA2 + KSPARSE(1, 329)=31 + KSPARSE(2, 329)=31 +!ORA2/MO2 + KSPARSE(1, 330)=31 + KSPARSE(2, 330)=32 +!ORA2/ALKAP + KSPARSE(1, 331)=31 + KSPARSE(2, 331)=33 +!ORA2/ALKEP + KSPARSE(1, 332)=31 + KSPARSE(2, 332)=34 +!ORA2/BIOP + KSPARSE(1, 333)=31 + KSPARSE(2, 333)=35 +!ORA2/CARBOP + KSPARSE(1, 334)=31 + KSPARSE(2, 334)=39 +!ORA2/OLN + KSPARSE(1, 335)=31 + KSPARSE(2, 335)=40 +!MO2/O3 + KSPARSE(1, 336)=32 + KSPARSE(2, 336)=1 +!MO2/NO + KSPARSE(1, 337)=32 + KSPARSE(2, 337)=3 +!MO2/NO3 + KSPARSE(1, 338)=32 + KSPARSE(2, 338)=5 +!MO2/OH + KSPARSE(1, 339)=32 + KSPARSE(2, 339)=14 +!MO2/HO2 + KSPARSE(1, 340)=32 + KSPARSE(2, 340)=15 +!MO2/CH4 + KSPARSE(1, 341)=32 + KSPARSE(2, 341)=16 +!MO2/ALKE + KSPARSE(1, 342)=32 + KSPARSE(2, 342)=19 +!MO2/BIO + KSPARSE(1, 343)=32 + KSPARSE(2, 343)=20 +!MO2/ALD + KSPARSE(1, 344)=32 + KSPARSE(2, 344)=23 +!MO2/OP1 + KSPARSE(1, 345)=32 + KSPARSE(2, 345)=28 +!MO2/OP2 + KSPARSE(1, 346)=32 + KSPARSE(2, 346)=29 +!MO2/MO2 + KSPARSE(1, 347)=32 + KSPARSE(2, 347)=32 +!MO2/ALKAP + KSPARSE(1, 348)=32 + KSPARSE(2, 348)=33 +!MO2/ALKEP + KSPARSE(1, 349)=32 + KSPARSE(2, 349)=34 +!MO2/BIOP + KSPARSE(1, 350)=32 + KSPARSE(2, 350)=35 +!MO2/AROP + KSPARSE(1, 351)=32 + KSPARSE(2, 351)=38 +!MO2/CARBOP + KSPARSE(1, 352)=32 + KSPARSE(2, 352)=39 +!MO2/OLN + KSPARSE(1, 353)=32 + KSPARSE(2, 353)=40 +!MO2/XO2 + KSPARSE(1, 354)=32 + KSPARSE(2, 354)=41 +!ALKAP/O3 + KSPARSE(1, 355)=33 + KSPARSE(2, 355)=1 +!ALKAP/NO + KSPARSE(1, 356)=33 + KSPARSE(2, 356)=3 +!ALKAP/NO3 + KSPARSE(1, 357)=33 + KSPARSE(2, 357)=5 +!ALKAP/OH + KSPARSE(1, 358)=33 + KSPARSE(2, 358)=14 +!ALKAP/HO2 + KSPARSE(1, 359)=33 + KSPARSE(2, 359)=15 +!ALKAP/ETH + KSPARSE(1, 360)=33 + KSPARSE(2, 360)=17 +!ALKAP/ALKA + KSPARSE(1, 361)=33 + KSPARSE(2, 361)=18 +!ALKAP/ALKE + KSPARSE(1, 362)=33 + KSPARSE(2, 362)=19 +!ALKAP/BIO + KSPARSE(1, 363)=33 + KSPARSE(2, 363)=20 +!ALKAP/KET + KSPARSE(1, 364)=33 + KSPARSE(2, 364)=24 +!ALKAP/ONIT + KSPARSE(1, 365)=33 + KSPARSE(2, 365)=26 +!ALKAP/OP2 + KSPARSE(1, 366)=33 + KSPARSE(2, 366)=29 +!ALKAP/MO2 + KSPARSE(1, 367)=33 + KSPARSE(2, 367)=32 +!ALKAP/ALKAP + KSPARSE(1, 368)=33 + KSPARSE(2, 368)=33 +!ALKAP/CARBOP + KSPARSE(1, 369)=33 + KSPARSE(2, 369)=39 +!ALKEP/NO + KSPARSE(1, 370)=34 + KSPARSE(2, 370)=3 +!ALKEP/NO3 + KSPARSE(1, 371)=34 + KSPARSE(2, 371)=5 +!ALKEP/OH + KSPARSE(1, 372)=34 + KSPARSE(2, 372)=14 +!ALKEP/HO2 + KSPARSE(1, 373)=34 + KSPARSE(2, 373)=15 +!ALKEP/ALKE + KSPARSE(1, 374)=34 + KSPARSE(2, 374)=19 +!ALKEP/MO2 + KSPARSE(1, 375)=34 + KSPARSE(2, 375)=32 +!ALKEP/ALKEP + KSPARSE(1, 376)=34 + KSPARSE(2, 376)=34 +!ALKEP/CARBOP + KSPARSE(1, 377)=34 + KSPARSE(2, 377)=39 +!BIOP/NO + KSPARSE(1, 378)=35 + KSPARSE(2, 378)=3 +!BIOP/NO3 + KSPARSE(1, 379)=35 + KSPARSE(2, 379)=5 +!BIOP/OH + KSPARSE(1, 380)=35 + KSPARSE(2, 380)=14 +!BIOP/HO2 + KSPARSE(1, 381)=35 + KSPARSE(2, 381)=15 +!BIOP/ALKE + KSPARSE(1, 382)=35 + KSPARSE(2, 382)=19 +!BIOP/BIO + KSPARSE(1, 383)=35 + KSPARSE(2, 383)=20 +!BIOP/MO2 + KSPARSE(1, 384)=35 + KSPARSE(2, 384)=32 +!BIOP/BIOP + KSPARSE(1, 385)=35 + KSPARSE(2, 385)=35 +!BIOP/CARBOP + KSPARSE(1, 386)=35 + KSPARSE(2, 386)=39 +!PHO/NO2 + KSPARSE(1, 387)=36 + KSPARSE(2, 387)=4 +!PHO/NO3 + KSPARSE(1, 388)=36 + KSPARSE(2, 388)=5 +!PHO/OH + KSPARSE(1, 389)=36 + KSPARSE(2, 389)=14 +!PHO/HO2 + KSPARSE(1, 390)=36 + KSPARSE(2, 390)=15 +!PHO/ARO + KSPARSE(1, 391)=36 + KSPARSE(2, 391)=21 +!PHO/PHO + KSPARSE(1, 392)=36 + KSPARSE(2, 392)=36 +!ADD/O3 + KSPARSE(1, 393)=37 + KSPARSE(2, 393)=1 +!ADD/NO2 + KSPARSE(1, 394)=37 + KSPARSE(2, 394)=4 +!ADD/OH + KSPARSE(1, 395)=37 + KSPARSE(2, 395)=14 +!ADD/ARO + KSPARSE(1, 396)=37 + KSPARSE(2, 396)=21 +!ADD/ADD + KSPARSE(1, 397)=37 + KSPARSE(2, 397)=37 +!AROP/NO + KSPARSE(1, 398)=38 + KSPARSE(2, 398)=3 +!AROP/NO3 + KSPARSE(1, 399)=38 + KSPARSE(2, 399)=5 +!AROP/HO2 + KSPARSE(1, 400)=38 + KSPARSE(2, 400)=15 +!AROP/MO2 + KSPARSE(1, 401)=38 + KSPARSE(2, 401)=32 +!AROP/ADD + KSPARSE(1, 402)=38 + KSPARSE(2, 402)=37 +!AROP/AROP + KSPARSE(1, 403)=38 + KSPARSE(2, 403)=38 +!AROP/CARBOP + KSPARSE(1, 404)=38 + KSPARSE(2, 404)=39 +!CARBOP/O3 + KSPARSE(1, 405)=39 + KSPARSE(2, 405)=1 +!CARBOP/NO + KSPARSE(1, 406)=39 + KSPARSE(2, 406)=3 +!CARBOP/NO2 + KSPARSE(1, 407)=39 + KSPARSE(2, 407)=4 +!CARBOP/NO3 + KSPARSE(1, 408)=39 + KSPARSE(2, 408)=5 +!CARBOP/OH + KSPARSE(1, 409)=39 + KSPARSE(2, 409)=14 +!CARBOP/HO2 + KSPARSE(1, 410)=39 + KSPARSE(2, 410)=15 +!CARBOP/ALKE + KSPARSE(1, 411)=39 + KSPARSE(2, 411)=19 +!CARBOP/BIO + KSPARSE(1, 412)=39 + KSPARSE(2, 412)=20 +!CARBOP/ALD + KSPARSE(1, 413)=39 + KSPARSE(2, 413)=23 +!CARBOP/KET + KSPARSE(1, 414)=39 + KSPARSE(2, 414)=24 +!CARBOP/CARBO + KSPARSE(1, 415)=39 + KSPARSE(2, 415)=25 +!CARBOP/PAN + KSPARSE(1, 416)=39 + KSPARSE(2, 416)=27 +!CARBOP/OP2 + KSPARSE(1, 417)=39 + KSPARSE(2, 417)=29 +!CARBOP/MO2 + KSPARSE(1, 418)=39 + KSPARSE(2, 418)=32 +!CARBOP/ALKAP + KSPARSE(1, 419)=39 + KSPARSE(2, 419)=33 +!CARBOP/ALKEP + KSPARSE(1, 420)=39 + KSPARSE(2, 420)=34 +!CARBOP/BIOP + KSPARSE(1, 421)=39 + KSPARSE(2, 421)=35 +!CARBOP/AROP + KSPARSE(1, 422)=39 + KSPARSE(2, 422)=38 +!CARBOP/CARBOP + KSPARSE(1, 423)=39 + KSPARSE(2, 423)=39 +!CARBOP/OLN + KSPARSE(1, 424)=39 + KSPARSE(2, 424)=40 +!CARBOP/XO2 + KSPARSE(1, 425)=39 + KSPARSE(2, 425)=41 +!OLN/NO + KSPARSE(1, 426)=40 + KSPARSE(2, 426)=3 +!OLN/NO3 + KSPARSE(1, 427)=40 + KSPARSE(2, 427)=5 +!OLN/HO2 + KSPARSE(1, 428)=40 + KSPARSE(2, 428)=15 +!OLN/ALKE + KSPARSE(1, 429)=40 + KSPARSE(2, 429)=19 +!OLN/BIO + KSPARSE(1, 430)=40 + KSPARSE(2, 430)=20 +!OLN/CARBO + KSPARSE(1, 431)=40 + KSPARSE(2, 431)=25 +!OLN/MO2 + KSPARSE(1, 432)=40 + KSPARSE(2, 432)=32 +!OLN/CARBOP + KSPARSE(1, 433)=40 + KSPARSE(2, 433)=39 +!OLN/OLN + KSPARSE(1, 434)=40 + KSPARSE(2, 434)=40 +!XO2/O3 + KSPARSE(1, 435)=41 + KSPARSE(2, 435)=1 +!XO2/NO + KSPARSE(1, 436)=41 + KSPARSE(2, 436)=3 +!XO2/NO3 + KSPARSE(1, 437)=41 + KSPARSE(2, 437)=5 +!XO2/OH + KSPARSE(1, 438)=41 + KSPARSE(2, 438)=14 +!XO2/HO2 + KSPARSE(1, 439)=41 + KSPARSE(2, 439)=15 +!XO2/ALKE + KSPARSE(1, 440)=41 + KSPARSE(2, 440)=19 +!XO2/BIO + KSPARSE(1, 441)=41 + KSPARSE(2, 441)=20 +!XO2/ARO + KSPARSE(1, 442)=41 + KSPARSE(2, 442)=21 +!XO2/CARBO + KSPARSE(1, 443)=41 + KSPARSE(2, 443)=25 +!XO2/PAN + KSPARSE(1, 444)=41 + KSPARSE(2, 444)=27 +!XO2/OP2 + KSPARSE(1, 445)=41 + KSPARSE(2, 445)=29 +!XO2/MO2 + KSPARSE(1, 446)=41 + KSPARSE(2, 446)=32 +!XO2/ALKAP + KSPARSE(1, 447)=41 + KSPARSE(2, 447)=33 +!XO2/CARBOP + KSPARSE(1, 448)=41 + KSPARSE(2, 448)=39 +!XO2/XO2 + KSPARSE(1, 449)=41 + KSPARSE(2, 449)=41 +KSPARSEDIM = 449 +RETURN +END SUBROUTINE CH_SPARSE_GAZ ! END SUBROUTINE CH_SPARSE ! -- GitLab From be57a092f7e84b9d638e4b3d610c98763b8f48c5 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 25 Feb 2019 14:36:37 +0100 Subject: [PATCH 072/139] Philippe 25/02/2019: bug correction for the file unit numbers --- src/MNH/ch_init_constn.f90 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/MNH/ch_init_constn.f90 b/src/MNH/ch_init_constn.f90 index 4e306a0d0..198761771 100644 --- a/src/MNH/ch_init_constn.f90 +++ b/src/MNH/ch_init_constn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2001-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !! ################################ @@ -56,8 +56,8 @@ END MODULE MODI_CH_INIT_CONST_n !! MODIFICATIONS !! ------------- !! Original 16/02/01 -!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O - +! P. Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet: 25/02/2019: bug correction for the file unit numbers !! EXTERNAL !! -------- USE MODI_CH_OPEN_INPUT ! open the general purpose ASCII input file @@ -241,6 +241,7 @@ IF (KVERB >= 5) WRITE(KLUOUT,*) & "CH_INIT_CONST: reading effective Henry constant", & " and its temperature correction " CALL CH_OPEN_INPUT(CCHEM_INPUT_FILE, "HENRY_SP", TZFILE, KLUOUT, KVERB) +ICHANNEL = TZFILE%NLU ! ! read number of molecular diffusivity IHENRY READ(ICHANNEL, *) IHENRY -- GitLab From 62357aad645e336e04d276e77622a5a2d28905bb Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 25 Feb 2019 16:57:38 +0100 Subject: [PATCH 073/139] Philippe 25/02/2019: split rain_ice subroutines (cleaner and easier to maintain/debug) --- src/MNH/rain_ice.f90 | 2668 +--------------------- src/MNH/rain_ice_fast_rg.f90 | 420 ++++ src/MNH/rain_ice_fast_rh.f90 | 354 +++ src/MNH/rain_ice_fast_ri.f90 | 101 + src/MNH/rain_ice_fast_rs.f90 | 325 +++ src/MNH/rain_ice_nucleation.f90 | 197 ++ src/MNH/rain_ice_sedimentation_split.f90 | 641 ++++++ src/MNH/rain_ice_sedimentation_stat.f90 | 603 +++++ src/MNH/rain_ice_slow.f90 | 234 ++ src/MNH/rain_ice_warm.f90 | 235 ++ 10 files changed, 3203 insertions(+), 2575 deletions(-) create mode 100644 src/MNH/rain_ice_fast_rg.f90 create mode 100644 src/MNH/rain_ice_fast_rh.f90 create mode 100644 src/MNH/rain_ice_fast_ri.f90 create mode 100644 src/MNH/rain_ice_fast_rs.f90 create mode 100644 src/MNH/rain_ice_nucleation.f90 create mode 100644 src/MNH/rain_ice_sedimentation_split.f90 create mode 100644 src/MNH/rain_ice_sedimentation_stat.f90 create mode 100644 src/MNH/rain_ice_slow.f90 create mode 100644 src/MNH/rain_ice_warm.f90 diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90 index 7bffe8cfd..652541015 100644 --- a/src/MNH/rain_ice.f90 +++ b/src/MNH/rain_ice.f90 @@ -69,7 +69,7 @@ REAL, DIMENSION(:,:,:),INTENT(OUT) :: PINPRR3D! Rain inst precip 3D REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PEVAP3D! Rain evap profile REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRS! Snow instant precip REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRG! Graupel instant precip -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRAINFR! Rain fraction +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRAINFR! Rain fraction REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! Sea Mask REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN! Fraction that is town REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t @@ -240,6 +240,7 @@ END MODULE MODI_RAIN_ICE !! J.Escobar : 8/2018 : for real*4 , bis => limit exp() in RAIN_ICE_SLOW with XMNH_HUGE_12_LOG !! P.Wautelet 01/02/2019: add missing initialization for PFPR !! 02/2019 C.Lac add rain fraction as an output field +! P. Wautelet 25/02/2019: split rain_ice (cleaner and easier to maintain/debug) ! !* 0. DECLARATIONS ! ------------ @@ -257,11 +258,22 @@ USE MODI_GAMMA USE MODE_FMWRIT USE MODE_ll USE MODE_MSG +USE MODE_RAIN_ICE_FAST_RG, only: RAIN_ICE_FAST_RG +USE MODE_RAIN_ICE_FAST_RH, only: RAIN_ICE_FAST_RH +USE MODE_RAIN_ICE_FAST_RI, only: RAIN_ICE_FAST_RI +USE MODE_RAIN_ICE_FAST_RS, only: RAIN_ICE_FAST_RS +USE MODE_RAIN_ICE_NUCLEATION, only: RAIN_ICE_NUCLEATION +USE MODE_RAIN_ICE_SEDIMENTATION_SPLIT, only: RAIN_ICE_SEDIMENTATION_SPLIT +USE MODE_RAIN_ICE_SEDIMENTATION_STAT, only: RAIN_ICE_SEDIMENTATION_STAT +USE MODE_RAIN_ICE_SLOW, only: RAIN_ICE_SLOW +USE MODE_RAIN_ICE_WARM, only: RAIN_ICE_WARM ! #ifdef MNH_PGI USE MODE_PACK_PGI #endif ! +USE MODI_ICE4_RAINFR_VERT +! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : @@ -328,64 +340,24 @@ REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT) :: PFPR ! upper-air precipitat ! !* 0.2 Declarations of local variables : ! -INTEGER :: JK ! Vertical loop index for the rain sedimentation -INTEGER :: JN ! Temporal loop index for the rain sedimentation -INTEGER :: JJ ! Loop index for the interpolation -INTEGER :: JI ! Loop index for the interpolation INTEGER :: IIB ! Define the domain where is INTEGER :: IIE ! the microphysical sources have to be computed +INTEGER :: IIT ! INTEGER :: IJB ! INTEGER :: IJE ! +INTEGER :: IJT ! INTEGER :: IKB,IKTB,IKT ! INTEGER :: IKE,IKTE ! ! -REAL :: ZTSPLITR ! Small time step for rain sedimentation ! ! -INTEGER :: ISEDIMR,ISEDIMC, ISEDIMI, ISEDIMS, ISEDIMG, ISEDIMH, & - INEGT, IMICRO ! Case number of sedimentation, T>0 (for HEN) - ! and r_x>0 locations -INTEGER :: IGRIM, IGACC, IGDRY ! Case number of riming, accretion and dry growth - ! locations -INTEGER :: IGWET, IHAIL ! wet growth locations and case number -LOGICAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & - :: GSEDIMR,GSEDIMC, GSEDIMI, GSEDIMS, GSEDIMG, GSEDIMH ! Test where to compute the SED processes -LOGICAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & - :: GNEGT ! Test where to compute the HEN process +INTEGER :: IMICRO LOGICAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & :: GMICRO ! Test where to compute all processes -LOGICAL, DIMENSION(:), ALLOCATABLE :: GRIM ! Test where to compute riming -LOGICAL, DIMENSION(:), ALLOCATABLE :: GACC ! Test where to compute accretion -LOGICAL, DIMENSION(:), ALLOCATABLE :: GDRY ! Test where to compute dry growth -LOGICAL, DIMENSION(:), ALLOCATABLE :: GWET ! Test where to compute wet growth -LOGICAL, DIMENSION(:), ALLOCATABLE :: GHAIL ! Test where to compute hail growth -LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)):: GDEP -INTEGER, DIMENSION(:), ALLOCATABLE :: IVEC1,IVEC2 ! Vectors of indices for - ! interpolations -REAL, DIMENSION(:), ALLOCATABLE :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for - ! interpolations REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & :: ZW ! work array -REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & - :: ZPRCS,ZPRRS,ZPRSS,ZPRGS,ZPRHS ! Mixing ratios created during the time step -REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),0:SIZE(PEXNREF,3)+1) & - :: ZWSED ! sedimentation fluxes -REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),0:SIZE(PEXNREF,3)+1) & - :: ZWSEDW1 ! sedimentation speed -REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),0:SIZE(PEXNREF,3)+1) & - :: ZWSEDW2 ! sedimentation speed -REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2)) & - :: ZCONC_TMP ! Weighted concentration REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & :: ZT ! Temperature -REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: & - ZRAY, & ! Cloud Mean radius - ZLBC, & ! XLBC weighted by sea fraction - ZFSEDC -REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZHLC_HCF3D ! HLCLOUDS cloud fraction in high water content part -REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZHLC_LCF3D ! HLCLOUDS cloud fraction in low water content part -REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZHLC_HRC3D ! HLCLOUDS cloud water content in high water content part -REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZHLC_LRC3D ! HLCLOUDS cloud water content in low water content REAL, DIMENSION(:), ALLOCATABLE :: ZRVT ! Water vapor m.r. at t REAL, DIMENSION(:), ALLOCATABLE :: ZRCT ! Cloud water m.r. at t REAL, DIMENSION(:), ALLOCATABLE :: ZRRT ! Rain water m.r. at t @@ -405,24 +377,14 @@ REAL, DIMENSION(:), ALLOCATABLE :: ZRHS ! Hail m.r. source REAL, DIMENSION(:), ALLOCATABLE :: ZTHS ! Theta source REAL, DIMENSION(:), ALLOCATABLE :: ZTHT ! Potential temperature REAL, DIMENSION(:), ALLOCATABLE :: ZTHLT ! Liquid potential temperature -REAL, DIMENSION(:), ALLOCATABLE :: ZCRIAUTI ! Snow-to-ice autoconversion thres. ! REAL, DIMENSION(:), ALLOCATABLE & :: ZRHODREF, & ! RHO Dry REFerence - ZRHODREFC,& ! RHO Dry REFerence - ZRHODREFR,& ! RHO Dry REFerence - ZRHODREFI,& ! RHO Dry REFerence - ZRHODREFS,& ! RHO Dry REFerence - ZRHODREFG,& ! RHO Dry REFerence - ZRHODREFH,& ! RHO Dry REFerence ZRHODJ, & ! RHO times Jacobian ZZT, & ! Temperature ZPRES, & ! Pressure ZEXNREF, & ! EXNer Pressure REFerence ZZW, & ! Work array - ZZW2, & ! Work array - ZZW3, & ! Work array - ZZW4, & ! Work array ZLSFACT, & ! L_s/(Pi_ref*C_ph) ZLVFACT, & ! L_v/(Pi_ref*C_ph) ZUSW, & ! Undersaturation over water @@ -451,21 +413,11 @@ REAL, DIMENSION(:), ALLOCATABLE & ZHLC_RCMAX, & ! HLCLOUDS : maximum value for RC in distribution ZRCRAUTC, & ! RC value to begin rain formation =XCRIAUTC/RHODREF ZHLC_HRCLOCAL, & ! HLCLOUDS : LWC that is High LWC local in HCF - ZHLC_LRCLOCAL, & ! HLCLOUDS : LWC that is Low LWC local in LCF + ZHLC_LRCLOCAL ! HLCLOUDS : LWC that is Low LWC local in LCF ! note that ZRC/CF = ZHLC_HRCLOCAL+ ZHLC_LRCLOCAL ! = ZHLC_HRC/HCF+ ZHLC_LRC/LCF - ZCC, & ! terminal velocity - ZFSEDC1D, & ! For cloud sedimentation - ZWLBDC, & ! Slope parameter of the droplet distribution - ZCONC, & ! Concentration des aerosols - ZRAY1D, & ! Mean radius - ZWLBDA ! Libre parcours moyen REAL, DIMENSION(:,:), ALLOCATABLE :: ZZW1 ! Work arrays -REAL :: ZTIMAUTIC,XDUMMY6,XDUMMY7 REAL :: ZINVTSTEP -REAL, DIMENSION(SIZE(XRTMIN)) :: ZRTMIN -! XRTMIN = Minimum value for the mixing ratio -! ZRTMIN = Minimum value for the source (tendency) ! INTEGER , DIMENSION(SIZE(GMICRO)) :: I1,I2,I3 ! Used to replace the COUNT INTEGER :: JL ! and PACK intrinsics @@ -477,6 +429,8 @@ REAL :: ZCOEFFRCM ! ----------------------- ! CALL GET_INDICE_ll (IIB,IJB,IIE,IJE) +IIT=SIZE(PDZZ,1) +IJT=SIZE(PDZZ,2) IKB=KKA+JPVEXT*KKL IKE=KKU-JPVEXT*KKL IKT=SIZE(PDZZ,3) @@ -490,7 +444,13 @@ ZINVTSTEP=1./PTSTEP !* 2. COMPUTES THE SLOW COLD PROCESS SOURCES ! -------------------------------------- ! -CALL RAIN_ICE_NUCLEATION +#ifdef RAIN_OLD +CALL RAIN_ICE_NUCLEATION_OLD +#else +CALL RAIN_ICE_NUCLEATION(IIB, IIE, IJB, IJE, IKTB, IKTE,KRR,PTSTEP,& + PTHT,PPABST,PRHODJ,PRHODREF,PRVT,PRCT,PRRT,PRIT,PRST,PRGT,& + PCIT,PEXNREF,PTHS,PRVS,PRIS,ZT,PRHT) +#endif ! ! ! optimization by looking for locations where @@ -523,7 +483,11 @@ IF( IMICRO >= 0 ) THEN ALLOCATE(ZRIT(IMICRO)) ALLOCATE(ZRST(IMICRO)) ALLOCATE(ZRGT(IMICRO)) - IF ( KRR == 7 ) ALLOCATE(ZRHT(IMICRO)) + IF ( KRR == 7 ) THEN + ALLOCATE(ZRHT(IMICRO)) + ELSE + ALLOCATE(ZRHT(0)) + END IF ALLOCATE(ZCIT(IMICRO)) ALLOCATE(ZRVS(IMICRO)) ALLOCATE(ZRCS(IMICRO)) @@ -531,7 +495,11 @@ IF( IMICRO >= 0 ) THEN ALLOCATE(ZRIS(IMICRO)) ALLOCATE(ZRSS(IMICRO)) ALLOCATE(ZRGS(IMICRO)) - IF ( KRR == 7 ) ALLOCATE(ZRHS(IMICRO)) + IF ( KRR == 7 ) THEN + ALLOCATE(ZRHS(IMICRO)) + ELSE + ALLOCATE(ZRHS(0)) + END IF ALLOCATE(ZTHS(IMICRO)) ALLOCATE(ZTHT(IMICRO)) ALLOCATE(ZTHLT(IMICRO)) @@ -582,9 +550,6 @@ IF( IMICRO >= 0 ) THEN ZEXNREF(JL) = PEXNREF(I1(JL),I2(JL),I3(JL)) ENDDO ALLOCATE(ZZW(IMICRO)) - ALLOCATE(ZZW2(IMICRO)) - ALLOCATE(ZZW3(IMICRO)) - ALLOCATE(ZZW4(IMICRO)) ALLOCATE(ZLSFACT(IMICRO)) ALLOCATE(ZLVFACT(IMICRO)) ZZW(:) = ZEXNREF(:)*( XCPD+XCPV*ZRVT(:)+XCL*(ZRCT(:)+ZRRT(:)) & @@ -601,7 +566,11 @@ IF( IMICRO >= 0 ) THEN ALLOCATE(ZLBDAR_RF(IMICRO)) ALLOCATE(ZLBDAS(IMICRO)) ALLOCATE(ZLBDAG(IMICRO)) - IF ( KRR == 7 ) ALLOCATE(ZLBDAH(IMICRO)) + IF ( KRR == 7 ) THEN + ALLOCATE(ZLBDAH(IMICRO)) + ELSE + ALLOCATE(ZLBDAH(0)) + END IF ALLOCATE(ZRDRYG(IMICRO)) ALLOCATE(ZRWETG(IMICRO)) ALLOCATE(ZAI(IMICRO)) @@ -618,6 +587,8 @@ IF( IMICRO >= 0 ) THEN IF (LBU_ENABLE .OR. LLES_CALL) THEN ALLOCATE(ZRHODJ(IMICRO)) ZRHODJ(:) = PACK( PRHODJ(:,:,:),MASK=GMICRO(:,:,:) ) + ELSE + ALLOCATE(ZRHODJ(0)) END IF ! @@ -810,12 +781,17 @@ IF( IMICRO >= 0 ) THEN !Diagnostic of precipitation fraction ZW(:,:,:) = 0. PRAINFR(:,:,:) = UNPACK( ZRF(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) - CALL RAINFR_VERT(PRAINFR(:,:,:), PRRT(:,:,:)) + CALL ICE4_RAINFR_VERT(IIB, IIE, IIT, IJB, IJE, IJT, IKB, IKE, IKT, KKL, PRAINFR, PRRT(:,:,:)) DO JL=1,IMICRO ZRF(JL)=PRAINFR(I1(JL),I2(JL),I3(JL)) END DO ! - CALL RAIN_ICE_SLOW + CALL RAIN_ICE_SLOW(GMICRO, ZINVTSTEP, ZRHODREF, & + ZRCT, ZRRT, ZRIT, ZRST, ZRGT, ZRHODJ, ZZT, ZPRES, & + ZLSFACT, ZLVFACT, & + ZSSI, PRHODJ, PTHS, PRVS, & + ZRVS, ZRCS, ZRRS, ZRIS, ZRSS, ZRGS, ZTHS, & + ZAI, ZCJ, ZKA, ZDV, ZLBDAS, ZLBDAG) ! !------------------------------------------------------------------------------- ! @@ -839,7 +815,9 @@ IF( IMICRO >= 0 ) THEN IF( OWARM ) THEN ! Check if the formation of the raindrops by the slow ! warm processes is allowed PEVAP3D(:,:,:)= 0. - CALL RAIN_ICE_WARM + CALL RAIN_ICE_WARM(GMICRO, ZRHODREF, ZRVT, ZRCT, ZRRT, ZHLC_HCF, ZHLC_LCF, ZHLC_HRC, ZHLC_LRC, & + ZRHODJ, ZPRES, ZZT, ZLBDAR, ZLBDAR_RF, ZLVFACT, ZCJ, ZKA, ZDV, ZRF, ZCF, ZTHT, ZTHLT, & + PRHODJ, PTHS, PRVS, ZRVS, ZRCS, ZRRS, ZTHS, ZUSW, PEVAP3D) END IF ! !------------------------------------------------------------------------------- @@ -848,7 +826,9 @@ IF( IMICRO >= 0 ) THEN !* 4. COMPUTES THE FAST COLD PROCESS SOURCES FOR r_s ! ---------------------------------------------- ! - CALL RAIN_ICE_FAST_RS + CALL RAIN_ICE_FAST_RS(PTSTEP, GMICRO, ZRHODREF, ZRVT, ZRCT, ZRRT, ZRST, ZRHODJ, ZPRES, ZZT, & + ZLBDAR, ZLBDAS, ZLSFACT, ZLVFACT, ZCJ, ZKA, ZDV, PRHODJ, PTHS, & + ZRCS, ZRRS, ZRSS, ZRGS, ZTHS) ! !------------------------------------------------------------------------------- ! @@ -856,7 +836,10 @@ IF( IMICRO >= 0 ) THEN !* 5. COMPUTES THE FAST COLD PROCESS SOURCES FOR r_g ! ---------------------------------------------- ! - CALL RAIN_ICE_FAST_RG + CALL RAIN_ICE_FAST_RG(KRR, GMICRO, ZRHODREF, ZRVT, ZRCT, ZRRT, ZRIT, ZRST, ZRGT, ZCIT, & + ZRHODJ, ZPRES, ZZT, ZLBDAR, ZLBDAS, ZLBDAG, ZLSFACT, ZLVFACT, & + ZCJ, ZKA, ZDV, PRHODJ, PTHS, ZRCS, ZRRS, ZRIS, ZRSS, ZRGS, ZRHS, ZTHS, & + ZUSW, ZRDRYG, ZRWETG) ! !------------------------------------------------------------------------------- ! @@ -865,7 +848,9 @@ IF( IMICRO >= 0 ) THEN ! ---------------------------------------------- ! IF ( KRR == 7 ) THEN - CALL RAIN_ICE_FAST_RH + CALL RAIN_ICE_FAST_RH(GMICRO, ZRHODREF, ZRVT, ZRCT, ZRIT, ZRST, ZRGT, ZRHT, ZRHODJ, ZPRES, & + ZZT, ZLBDAS, ZLBDAG, ZLBDAH, ZLSFACT, ZLVFACT, ZCJ, ZKA, ZDV, PRHODJ, PTHS, & + ZRCS, ZRRS, ZRIS, ZRSS, ZRGS, ZRHS, ZTHS, ZUSW) END IF ! !------------------------------------------------------------------------------- @@ -874,7 +859,8 @@ IF( IMICRO >= 0 ) THEN !* 7. COMPUTES SPECIFIC SOURCES OF THE WARM AND COLD CLOUDY SPECIES ! ------------------------------------------------------------- ! - CALL RAIN_ICE_FAST_RI + CALL RAIN_ICE_FAST_RI(GMICRO, ZRHODREF, ZRIT, ZRHODJ, ZZT, ZSSI, ZLSFACT, ZLVFACT, & + ZAI, ZCJ, PRHODJ, PTHS, ZCIT, ZRCS, ZRIS, ZTHS) ! ! !------------------------------------------------------------------------------- @@ -905,17 +891,6 @@ IF( IMICRO >= 0 ) THEN ZW(:,:,:) = PRAINFR(:,:,:) PRAINFR(:,:,:) = UNPACK( ZRF(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) ! - ZW(:,:,:) = 0. - ZHLC_HCF3D(:,:,:) = UNPACK( ZHLC_HCF(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) -! - ZW(:,:,:) = 0. - ZHLC_LCF3D(:,:,:) = UNPACK( ZHLC_LCF(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) -! - ZW(:,:,:) = 0. - ZHLC_HRC3D(:,:,:) = UNPACK( ZHLC_HRC(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) -! - ZW(:,:,:) = 0. - ZHLC_LRC3D(:,:,:) = UNPACK( ZHLC_LRC(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) ! ! DEALLOCATE(ZZW1) @@ -924,7 +899,7 @@ IF( IMICRO >= 0 ) THEN DEALLOCATE(ZRDRYG) DEALLOCATE(ZRWETG) DEALLOCATE(ZLBDAG) - IF ( KRR == 7 ) DEALLOCATE(ZLBDAH) + DEALLOCATE(ZLBDAH) DEALLOCATE(ZLBDAS) DEALLOCATE(ZLBDAR) DEALLOCATE(ZLBDAR_RF) @@ -933,9 +908,6 @@ IF( IMICRO >= 0 ) THEN DEALLOCATE(ZLVFACT) DEALLOCATE(ZLSFACT) DEALLOCATE(ZZW) - DEALLOCATE(ZZW2) - DEALLOCATE(ZZW3) - DEALLOCATE(ZZW4) DEALLOCATE(ZEXNREF) DEALLOCATE(ZPRES) DEALLOCATE(ZRHODREF) @@ -944,7 +916,7 @@ IF( IMICRO >= 0 ) THEN DEALLOCATE(ZTHS) DEALLOCATE(ZTHT) DEALLOCATE(ZTHLT) - IF ( KRR == 7 ) DEALLOCATE(ZRHS) + DEALLOCATE(ZRHS) DEALLOCATE(ZRGS) DEALLOCATE(ZRSS) DEALLOCATE(ZRIS) @@ -953,7 +925,7 @@ IF( IMICRO >= 0 ) THEN DEALLOCATE(ZRVS) DEALLOCATE(ZCIT) DEALLOCATE(ZRGT) - IF ( KRR == 7 ) DEALLOCATE(ZRHT) + DEALLOCATE(ZRHT) DEALLOCATE(ZRST) DEALLOCATE(ZRIT) DEALLOCATE(ZRRT) @@ -1071,35 +1043,35 @@ END IF ! !* 8.1 time splitting loop initialization ! -ZTSPLITR= PTSTEP / FLOAT(KSPLITR) ! ! IF (HSEDIM == 'STAT') THEN - CALL RAIN_ICE_SEDIMENTATION_STAT + CALL RAIN_ICE_SEDIMENTATION_STAT( IIB, IIE, IJB, IJE, IKB, IKE, IKTB, IKTE, IKT, KKL, KRR, & + PTSTEP, OSEDIC, PINPRC, PINDEP, & + PINPRR, PINPRS, PINPRG, PDZZ, PRHODREF, PPABST, PTHT, PRHODJ, PINPRR3D, & + PRCS, PRCT, PRRS, PRRT, PRIS, PRSS, PRST, PRGS, PRGT, & + PSEA, PTOWN, PINPRH, PRHS, PRHT, PFPR ) ELSEIF (HSEDIM == 'SPLI') THEN - CALL RAIN_ICE_SEDIMENTATION_SPLIT + CALL RAIN_ICE_SEDIMENTATION_SPLIT(IIB, IIE, IJB, IJE, IKB, IKE, IKTB, IKTE, IKT, KKL,& + KSPLITR,PTSTEP, & + KRR,OSEDIC,LDEPOSC,PINPRC,PINDEP,PINPRR,PINPRS,PINPRG,PDZZ,PRHODREF,PPABST,PTHT,PRHODJ,& + PINPRR3D,PRCS,PRCT,PRRS,PRRT,PRIS,PRIT,PRSS,PRST,PRGS,PRGT,PSEA,PTOWN,PINPRH,PRHS,PRHT,PFPR) ELSE WRITE(*,*) ' STOP' WRITE(*,*) ' NO SEDIMENTATION SCHEME FOR HSEDIM=',HSEDIM CALL PRINT_MSG(NVERB_FATAL,'GEN','RAIN_ICE','') END IF !sedimentation of rain fraction -CALL RAINFR_VERT(PRAINFR, PRRS(:,:,:)*PTSTEP) - +CALL ICE4_RAINFR_VERT(IIB, IIE, IIT, IJB, IJE, IJT, IKB, IKE, IKT, KKL, PRAINFR, PRRS(:,:,:)*PTSTEP) ! ! !------------------------------------------------------------------------------- ! -!------------------------------------------------------------------------------- -! -! CONTAINS ! -! !------------------------------------------------------------------------------- ! -! - SUBROUTINE RAIN_ICE_SEDIMENTATION_SPLIT + FUNCTION COUNTJV(LTAB,I1,I2,I3) RESULT(IC) ! !* 0. DECLARATIONS ! ------------ @@ -1109,2481 +1081,27 @@ IMPLICIT NONE !* 0.2 declaration of local variables ! ! -INTEGER , DIMENSION(SIZE(GSEDIMC)) :: IC1,IC2,IC3 ! Used to replace the COUNT -INTEGER , DIMENSION(SIZE(GSEDIMR)) :: IR1,IR2,IR3 ! Used to replace the COUNT -INTEGER , DIMENSION(SIZE(GSEDIMS)) :: IS1,IS2,IS3 ! Used to replace the COUNT -INTEGER , DIMENSION(SIZE(GSEDIMI)) :: II1,II2,II3 ! Used to replace the COUNT -INTEGER , DIMENSION(SIZE(GSEDIMG)) :: IG1,IG2,IG3 ! Used to replace the COUNT -INTEGER , DIMENSION(SIZE(GSEDIMH)) :: IH1,IH2,IH3 ! Used to replace the COUNT -INTEGER :: ILENALLOCC,ILENALLOCR,ILENALLOCI,ILENALLOCS,ILENALLOCG,ILENALLOCH -INTEGER :: ILISTLENC,ILISTLENR,ILISTLENI,ILISTLENS,ILISTLENG,ILISTLENH -INTEGER, ALLOCATABLE :: ILISTR(:),ILISTC(:),ILISTI(:),ILISTS(:),ILISTG(:),ILISTH(:) -! Optimization for NEC -!INTEGER, SAVE :: IOLDALLOCC = SIZE(PEXNREF,1)*SIZE(PEXNREF,2)*SIZE(PEXNREF,3)/10 -!INTEGER, SAVE :: IOLDALLOCR = SIZE(PEXNREF,1)*SIZE(PEXNREF,2)*SIZE(PEXNREF,3)/10 -!INTEGER, SAVE :: IOLDALLOCI = SIZE(PEXNREF,1)*SIZE(PEXNREF,2)*SIZE(PEXNREF,3)/10 -!INTEGER, SAVE :: IOLDALLOCS = SIZE(PEXNREF,1)*SIZE(PEXNREF,2)*SIZE(PEXNREF,3)/10 -!INTEGER, SAVE :: IOLDALLOCG = SIZE(PEXNREF,1)*SIZE(PEXNREF,2)*SIZE(PEXNREF,3)/10 -!INTEGER, SAVE :: IOLDALLOCH = SIZE(PEXNREF,1)*SIZE(PEXNREF,2)*SIZE(PEXNREF,3)/10 -INTEGER, SAVE :: IOLDALLOCC = 6000 -INTEGER, SAVE :: IOLDALLOCR = 6000 -INTEGER, SAVE :: IOLDALLOCI = 6000 -INTEGER, SAVE :: IOLDALLOCS = 6000 -INTEGER, SAVE :: IOLDALLOCG = 6000 -INTEGER, SAVE :: IOLDALLOCH = 6000 -! -REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZCONC3D ! droplet condensation -!------------------------------------------------------------------------------- -! -! -! O. Initialization of for sedimentation -! -IF (OSEDIC) PINPRC (:,:) = 0. -IF (LDEPOSC) PINDEP (:,:) = 0. -PINPRR (:,:) = 0. -PINPRR3D (:,:,:) = 0. -PINPRS (:,:) = 0. -PINPRG (:,:) = 0. -IF ( KRR == 7 ) PINPRH (:,:) = 0. -IF (PRESENT(PFPR)) PFPR(:,:,:,:) = 0. -! -!* 1. Parameters for cloud sedimentation -! - IF (OSEDIC) THEN - ZRAY(:,:,:) = 0. - ZLBC(:,:,:) = XLBC(1) - ZFSEDC(:,:,:) = XFSEDC(1) - ZCONC3D(:,:,:)= XCONC_LAND - ZCONC_TMP(:,:)= XCONC_LAND - IF (PRESENT(PSEA)) THEN - ZCONC_TMP(:,:)=PSEA(:,:)*XCONC_SEA+(1.-PSEA(:,:))*XCONC_LAND - - DO JK=IKTB,IKTE - ZLBC(:,:,JK) = PSEA(:,:)*XLBC(2)+(1.-PSEA(:,:))*XLBC(1) - ZFSEDC(:,:,JK) = (PSEA(:,:)*XFSEDC(2)+(1.-PSEA(:,:))*XFSEDC(1)) - ZFSEDC(:,:,JK) = MAX(MIN(XFSEDC(1),XFSEDC(2)),ZFSEDC(:,:,JK)) - ZCONC3D(:,:,JK)= (1.-PTOWN(:,:))*ZCONC_TMP(:,:)+PTOWN(:,:)*XCONC_URBAN - ZRAY(:,:,JK) = 0.5*((1.-PSEA(:,:))*GAMMA(XNUC+1.0/XALPHAC)/(GAMMA(XNUC)) + & - PSEA(:,:)*GAMMA(XNUC2+1.0/XALPHAC2)/(GAMMA(XNUC2))) - END DO - ELSE - ZCONC3D(:,:,:) = XCONC_LAND - ZRAY(:,:,:) = 0.5*(GAMMA(XNUC+1.0/XALPHAC)/(GAMMA(XNUC))) - END IF - ZRAY(:,:,:) = MAX(1.,ZRAY(:,:,:)) - ZLBC(:,:,:) = MAX(MIN(XLBC(1),XLBC(2)),ZLBC(:,:,:)) - ENDIF -! -!* 2. compute the fluxes -! -! optimization by looking for locations where -! the precipitating fields are larger than a minimal value only !!! -! For optimization we consider each variable separately - -ZRTMIN(:) = XRTMIN(:) * ZINVTSTEP -IF (OSEDIC) GSEDIMC(:,:,:) = .FALSE. -GSEDIMR(:,:,:) = .FALSE. -GSEDIMI(:,:,:) = .FALSE. -GSEDIMS(:,:,:) = .FALSE. -GSEDIMG(:,:,:) = .FALSE. -IF ( KRR == 7 ) GSEDIMH(:,:,:) = .FALSE. -! -ILENALLOCR = 0 -IF (OSEDIC) ILENALLOCC = 0 -ILENALLOCI = 0 -ILENALLOCS = 0 -ILENALLOCG = 0 -IF ( KRR == 7 ) ILENALLOCH = 0 -! -! ZPiS = Specie i source creating during the current time step -! PRiS = Source of the previous time step -! -IF (OSEDIC) THEN - ZPRCS(:,:,:) = 0.0 - ZPRCS(:,:,:) = PRCS(:,:,:)-PRCT(:,:,:)* ZINVTSTEP - PRCS(:,:,:) = PRCT(:,:,:)* ZINVTSTEP -END IF -ZPRRS(:,:,:) = 0.0 -ZPRSS(:,:,:) = 0.0 -ZPRGS(:,:,:) = 0.0 -IF ( KRR == 7 ) ZPRHS(:,:,:) = 0.0 -! -ZPRRS(:,:,:) = PRRS(:,:,:)-PRRT(:,:,:)* ZINVTSTEP -ZPRSS(:,:,:) = PRSS(:,:,:)-PRST(:,:,:)* ZINVTSTEP -ZPRGS(:,:,:) = PRGS(:,:,:)-PRGT(:,:,:)* ZINVTSTEP -IF ( KRR == 7 ) ZPRHS(:,:,:) = PRHS(:,:,:)-PRHT(:,:,:)* ZINVTSTEP -PRRS(:,:,:) = PRRT(:,:,:)* ZINVTSTEP -PRSS(:,:,:) = PRST(:,:,:)* ZINVTSTEP -PRGS(:,:,:) = PRGT(:,:,:)* ZINVTSTEP -IF ( KRR == 7 ) PRHS(:,:,:) = PRHT(:,:,:)* ZINVTSTEP -! -! PRiS = Source of the previous time step + source created during the subtime -! step -! -DO JN = 1 , KSPLITR - IF( JN==1 ) THEN - IF (OSEDIC) PRCS(:,:,:) = PRCS(:,:,:) + ZPRCS(:,:,:)/KSPLITR - PRRS(:,:,:) = PRRS(:,:,:) + ZPRRS(:,:,:)/KSPLITR - PRSS(:,:,:) = PRSS(:,:,:) + ZPRSS(:,:,:)/KSPLITR - PRGS(:,:,:) = PRGS(:,:,:) + ZPRGS(:,:,:)/KSPLITR - IF ( KRR == 7 ) PRHS(:,:,:) = PRHS(:,:,:) + ZPRHS(:,:,:)/KSPLITR - DO JK = IKTB , IKTE - ZW(:,:,JK) =ZTSPLITR/(PRHODREF(:,:,JK)* PDZZ(:,:,JK)) - END DO - ELSE - IF (OSEDIC) PRCS(:,:,:) = PRCS(:,:,:) + ZPRCS(:,:,:)*ZTSPLITR - PRRS(:,:,:) = PRRS(:,:,:) + ZPRRS(:,:,:)*ZTSPLITR - PRSS(:,:,:) = PRSS(:,:,:) + ZPRSS(:,:,:)*ZTSPLITR - PRGS(:,:,:) = PRGS(:,:,:) + ZPRGS(:,:,:)*ZTSPLITR - IF ( KRR == 7 ) PRHS(:,:,:) = PRHS(:,:,:) + ZPRHS(:,:,:)*ZTSPLITR - END IF - ! - IF (OSEDIC) GSEDIMC(IIB:IIE,IJB:IJE,IKTB:IKTE) = & - PRCS(IIB:IIE,IJB:IJE,IKTB:IKTE)>ZRTMIN(2) - GSEDIMR(IIB:IIE,IJB:IJE,IKTB:IKTE) = & - PRRS(IIB:IIE,IJB:IJE,IKTB:IKTE)>ZRTMIN(3) - GSEDIMI(IIB:IIE,IJB:IJE,IKTB:IKTE) = & - PRIS(IIB:IIE,IJB:IJE,IKTB:IKTE)>ZRTMIN(4) - GSEDIMS(IIB:IIE,IJB:IJE,IKTB:IKTE) = & - PRSS(IIB:IIE,IJB:IJE,IKTB:IKTE)>ZRTMIN(5) - GSEDIMG(IIB:IIE,IJB:IJE,IKTB:IKTE) = & - PRGS(IIB:IIE,IJB:IJE,IKTB:IKTE)>ZRTMIN(6) - IF ( KRR == 7 ) GSEDIMH(IIB:IIE,IJB:IJE,IKTB:IKTE) = & - PRHS(IIB:IIE,IJB:IJE,IKTB:IKTE)>ZRTMIN(7) -! - IF (OSEDIC) ISEDIMC = COUNTJV( GSEDIMC(:,:,:),IC1(:),IC2(:),IC3(:)) - ISEDIMR = COUNTJV( GSEDIMR(:,:,:),IR1(:),IR2(:),IR3(:)) - ISEDIMI = COUNTJV( GSEDIMI(:,:,:),II1(:),II2(:),II3(:)) - ISEDIMS = COUNTJV( GSEDIMS(:,:,:),IS1(:),IS2(:),IS3(:)) - ISEDIMG = COUNTJV( GSEDIMG(:,:,:),IG1(:),IG2(:),IG3(:)) - IF ( KRR == 7 ) ISEDIMH = COUNTJV( GSEDIMH(:,:,:),IH1(:),IH2(:),IH3(:)) -! -!* 2.1 for cloud -! - IF (OSEDIC) THEN - ZWSED(:,:,:) = 0. - IF( JN==1 ) PRCS(:,:,:) = PRCS(:,:,:) * PTSTEP - IF( ISEDIMC >= 1 ) THEN - IF ( ISEDIMC .GT. ILENALLOCC ) THEN - IF ( ILENALLOCC .GT. 0 ) THEN - DEALLOCATE (ZRCS, ZRHODREFC, ILISTC,ZWLBDC,ZCONC,ZRCT, & - ZZT,ZPRES,ZRAY1D,ZFSEDC1D,ZWLBDA,ZCC ) - END IF - ILENALLOCC = MAX (IOLDALLOCC, 2*ISEDIMC ) - IOLDALLOCC = ILENALLOCC - ALLOCATE(ZRCS(ILENALLOCC), ZRHODREFC(ILENALLOCC), ILISTC(ILENALLOCC), & - ZWLBDC(ILENALLOCC), ZCONC(ILENALLOCC), ZRCT(ILENALLOCC), ZZT(ILENALLOCC), & - ZPRES(ILENALLOCC), ZRAY1D(ILENALLOCC), ZFSEDC1D(ILENALLOCC), & - ZWLBDA(ILENALLOCC), ZCC(ILENALLOCC) ) - END IF -! - DO JL=1,ISEDIMC - ZRCS(JL) = PRCS(IC1(JL),IC2(JL),IC3(JL)) - ZRHODREFC(JL) = PRHODREF(IC1(JL),IC2(JL),IC3(JL)) - ZWLBDC(JL) = ZLBC(IC1(JL),IC2(JL),IC3(JL)) - ZCONC(JL) = ZCONC3D(IC1(JL),IC2(JL),IC3(JL)) - ZRCT(JL) = PRCT(IC1(JL),IC2(JL),IC3(JL)) - ZZT(JL) = PTHT(IC1(JL),IC2(JL),IC3(JL)) - ZPRES(JL) = PPABST(IC1(JL),IC2(JL),IC3(JL)) - ZRAY1D(JL) = ZRAY(IC1(JL),IC2(JL),IC3(JL)) - ZFSEDC1D(JL) = ZFSEDC(IC1(JL),IC2(JL),IC3(JL)) - END DO -! - ILISTLENC = 0 - DO JL=1,ISEDIMC - IF( ZRCS(JL) .GT. ZRTMIN(2) ) THEN - ILISTLENC = ILISTLENC + 1 - ILISTC(ILISTLENC) = JL - END IF - END DO - DO JJ = 1, ILISTLENC - JL = ILISTC(JJ) - IF (ZRCS(JL) .GT. ZRTMIN(2) .AND. ZRCT(JL) .GT. XRTMIN(2)) THEN - ZWLBDC(JL) = ZWLBDC(JL) * ZCONC(JL) / (ZRHODREFC(JL) * ZRCT(JL)) - ZWLBDC(JL) = ZWLBDC(JL)**XLBEXC - ZRAY1D(JL) = ZRAY1D(JL) / ZWLBDC(JL) !! ZRAY : mean diameter=M(1)/2 - ZZT(JL) = ZZT(JL) * (ZPRES(JL)/XP00)**(XRD/XCPD) - ZWLBDA(JL) = 6.6E-8*(101325./ZPRES(JL))*(ZZT(JL)/293.15) - ZCC(JL) = XCC*(1.+1.26*ZWLBDA(JL)/ZRAY1D(JL)) !! XCC modified for cloud - ZWSED (IC1(JL),IC2(JL),IC3(JL))= ZRHODREFC(JL)**(-XCEXVT +1 ) * & - ZWLBDC(JL)**(-XDC)*ZCC(JL)*ZFSEDC1D(JL) * ZRCS(JL) - END IF - END DO - END IF - DO JK = IKTB , IKTE - PRCS(:,:,JK) = PRCS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) - END DO - IF (PRESENT(PFPR)) THEN - DO JK = IKTB , IKTE - PFPR(:,:,JK,2)=ZWSED(:,:,JK) - ENDDO - ENDIF - PINPRC(:,:) = PINPRC(:,:) + ZWSED(:,:,IKB) / XRHOLW / KSPLITR - IF( JN==KSPLITR ) THEN - PRCS(:,:,:) = PRCS(:,:,:) * ZINVTSTEP - END IF - END IF -! -!* 2.2 for rain -! - IF( JN==1 ) PRRS(:,:,:) = PRRS(:,:,:) * PTSTEP - ZWSED(:,:,:) = 0. - IF( ISEDIMR >= 1 ) THEN - IF ( ISEDIMR .GT. ILENALLOCR ) THEN - IF ( ILENALLOCR .GT. 0 ) THEN - DEALLOCATE (ZRRS, ZRHODREFR, ILISTR) - END IF - ILENALLOCR = MAX (IOLDALLOCR, 2*ISEDIMR ) - IOLDALLOCR = ILENALLOCR - ALLOCATE(ZRRS(ILENALLOCR), ZRHODREFR(ILENALLOCR), ILISTR(ILENALLOCR)) - END IF -! - DO JL=1,ISEDIMR - ZRRS(JL) = PRRS(IR1(JL),IR2(JL),IR3(JL)) - ZRHODREFR(JL) = PRHODREF(IR1(JL),IR2(JL),IR3(JL)) - END DO -! - ILISTLENR = 0 - DO JL=1,ISEDIMR - IF( ZRRS(JL) .GT. ZRTMIN(3) ) THEN - ILISTLENR = ILISTLENR + 1 - ILISTR(ILISTLENR) = JL - END IF - END DO - DO JJ = 1, ILISTLENR - JL = ILISTR(JJ) - ZWSED (IR1(JL),IR2(JL),IR3(JL))= XFSEDR * ZRRS(JL)**XEXSEDR * & - ZRHODREFR(JL)**(XEXSEDR-XCEXVT) - END DO - END IF - DO JK = IKTB , IKTE - PRRS(:,:,JK) = PRRS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) - END DO - IF (PRESENT(PFPR)) THEN - DO JK = IKTB , IKTE - PFPR(:,:,JK,3)=ZWSED(:,:,JK) - ENDDO - ENDIF - PINPRR(:,:) = PINPRR(:,:) + ZWSED(:,:,IKB)/XRHOLW/KSPLITR - PINPRR3D(:,:,:) = PINPRR3D(:,:,:) + ZWSED(:,:,1:IKT)/XRHOLW/KSPLITR - IF( JN==KSPLITR ) THEN - PRRS(:,:,:) = PRRS(:,:,:) * ZINVTSTEP - END IF -! -!* 2.3 for pristine ice -! - IF( JN==1 ) PRIS(:,:,:) = PRIS(:,:,:) * PTSTEP - ZWSED(:,:,:) = 0. - IF( ISEDIMI >= 1 ) THEN - IF ( ISEDIMI .GT. ILENALLOCI ) THEN - IF ( ILENALLOCI .GT. 0 ) THEN - DEALLOCATE (ZRIS, ZRHODREFI, ILISTI) - END IF - ILENALLOCI = MAX (IOLDALLOCI, 2*ISEDIMI ) - IOLDALLOCI = ILENALLOCI - ALLOCATE(ZRIS(ILENALLOCI), ZRHODREFI(ILENALLOCI), ILISTI(ILENALLOCI)) - END IF -! - DO JL=1,ISEDIMI - ZRIS(JL) = PRIS(II1(JL),II2(JL),II3(JL)) - ZRHODREFI(JL) = PRHODREF(II1(JL),II2(JL),II3(JL)) - END DO -! - ILISTLENI = 0 - DO JL=1,ISEDIMI - IF( ZRIS(JL) .GT. MAX(ZRTMIN(4),1.0E-7 )) THEN ! limitation of the McF&H formula - ILISTLENI = ILISTLENI + 1 - ILISTI(ILISTLENI) = JL - END IF - END DO - DO JJ = 1, ILISTLENI - JL = ILISTI(JJ) - ZWSED (II1(JL),II2(JL),II3(JL))= XFSEDI * ZRIS(JL) * & - ZRHODREFI(JL)**(1.0-XCEXVT) * & ! McF&H - MAX( 0.05E6,-0.15319E6-0.021454E6* & - ALOG(ZRHODREFI(JL)*ZRIS(JL)) )**XEXCSEDI - END DO - END IF - DO JK = IKTB , IKTE - PRIS(:,:,JK) = PRIS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) - END DO - IF (PRESENT(PFPR)) THEN - DO JK = IKTB , IKTE - PFPR(:,:,JK,4)=ZWSED(:,:,JK) - ENDDO - ENDIF - IF( JN==KSPLITR ) THEN - PRIS(:,:,:) = PRIS(:,:,:) * ZINVTSTEP - END IF -! -!* 2.4 for aggregates/snow -! - IF( JN==1 ) PRSS(:,:,:) = PRSS(:,:,:) * PTSTEP - ZWSED(:,:,:) = 0. - IF( ISEDIMS >= 1 ) THEN - IF ( ISEDIMS .GT. ILENALLOCS ) THEN - IF ( ILENALLOCS .GT. 0 ) THEN - DEALLOCATE (ZRSS, ZRHODREFS, ILISTS) - END IF - ILENALLOCS = MAX (IOLDALLOCS, 2*ISEDIMS ) - IOLDALLOCS = ILENALLOCS - ALLOCATE(ZRSS(ILENALLOCS), ZRHODREFS(ILENALLOCS), ILISTS(ILENALLOCS)) - END IF -! - DO JL=1,ISEDIMS - ZRSS(JL) = PRSS(IS1(JL),IS2(JL),IS3(JL)) - ZRHODREFS(JL) = PRHODREF(IS1(JL),IS2(JL),IS3(JL)) - END DO -! - ILISTLENS = 0 - DO JL=1,ISEDIMS - IF( ZRSS(JL) .GT. ZRTMIN(5) ) THEN - ILISTLENS = ILISTLENS + 1 - ILISTS(ILISTLENS) = JL - END IF - END DO - DO JJ = 1, ILISTLENS - JL = ILISTS(JJ) - ZWSED (IS1(JL),IS2(JL),IS3(JL))= XFSEDS * ZRSS(JL)**XEXSEDS * & - ZRHODREFS(JL)**(XEXSEDS-XCEXVT) - END DO - END IF - DO JK = IKTB , IKTE - PRSS(:,:,JK) = PRSS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) - END DO - IF (PRESENT(PFPR)) THEN - DO JK = IKTB , IKTE - PFPR(:,:,JK,5)=ZWSED(:,:,JK) - ENDDO - ENDIF - PINPRS(:,:) = PINPRS(:,:) + ZWSED(:,:,IKB)/XRHOLW/KSPLITR - IF( JN==KSPLITR ) THEN - PRSS(:,:,:) = PRSS(:,:,:) * ZINVTSTEP - END IF -! -!* 2.5 for graupeln -! - ZWSED(:,:,:) = 0. - IF( JN==1 ) PRGS(:,:,:) = PRGS(:,:,:) * PTSTEP - IF( ISEDIMG >= 1 ) THEN - IF ( ISEDIMG .GT. ILENALLOCG ) THEN - IF ( ILENALLOCG .GT. 0 ) THEN - DEALLOCATE (ZRGS, ZRHODREFG, ILISTG) - END IF - ILENALLOCG = MAX (IOLDALLOCG, 2*ISEDIMG ) - IOLDALLOCG = ILENALLOCG - ALLOCATE(ZRGS(ILENALLOCG), ZRHODREFG(ILENALLOCG), ILISTG(ILENALLOCG)) - END IF -! - DO JL=1,ISEDIMG - ZRGS(JL) = PRGS(IG1(JL),IG2(JL),IG3(JL)) - ZRHODREFG(JL) = PRHODREF(IG1(JL),IG2(JL),IG3(JL)) - END DO -! - ILISTLENG = 0 - DO JL=1,ISEDIMG - IF( ZRGS(JL) .GT. ZRTMIN(6) ) THEN - ILISTLENG = ILISTLENG + 1 - ILISTG(ILISTLENG) = JL - END IF - END DO - DO JJ = 1, ILISTLENG - JL = ILISTG(JJ) - ZWSED (IG1(JL),IG2(JL),IG3(JL))= XFSEDG * ZRGS(JL)**XEXSEDG * & - ZRHODREFG(JL)**(XEXSEDG-XCEXVT) - END DO -END IF - DO JK = IKTB , IKTE - PRGS(:,:,JK) = PRGS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) - END DO - IF (PRESENT(PFPR)) THEN - DO JK = IKTB , IKTE - PFPR(:,:,JK,6)=ZWSED(:,:,JK) - ENDDO - ENDIF - PINPRG(:,:) = PINPRG(:,:) + ZWSED(:,:,IKB)/XRHOLW/KSPLITR - IF( JN==KSPLITR ) THEN - PRGS(:,:,:) = PRGS(:,:,:) * ZINVTSTEP - END IF +LOGICAL, DIMENSION(:,:,:) :: LTAB ! Mask +INTEGER, DIMENSION(:) :: I1,I2,I3 ! Used to replace the COUNT and PACK +INTEGER :: JI,JJ,JK,IC ! -!* 2.6 for hail +!------------------------------------------------------------------------------- ! - IF ( KRR == 7 ) THEN - IF( JN==1 ) PRHS(:,:,:) = PRHS(:,:,:) * PTSTEP - ZWSED(:,:,:) = 0. - IF( ISEDIMH >= 1 ) THEN - IF ( ISEDIMH .GT. ILENALLOCH ) THEN - IF ( ILENALLOCH .GT. 0 ) THEN - DEALLOCATE (ZRHS, ZRHODREFH, ILISTH) +IC = 0 +DO JK = 1,SIZE(LTAB,3) + DO JJ = 1,SIZE(LTAB,2) + DO JI = 1,SIZE(LTAB,1) + IF( LTAB(JI,JJ,JK) ) THEN + IC = IC +1 + I1(IC) = JI + I2(IC) = JJ + I3(IC) = JK END IF - ILENALLOCH = MAX (IOLDALLOCH, 2*ISEDIMH ) - IOLDALLOCH = ILENALLOCH - ALLOCATE(ZRHS(ILENALLOCH), ZRHODREFH(ILENALLOCH), ILISTH(ILENALLOCH)) - END IF -! - DO JL=1,ISEDIMH - ZRHS(JL) = PRHS(IH1(JL),IH2(JL),IH3(JL)) - ZRHODREFH(JL) = PRHODREF(IH1(JL),IH2(JL),IH3(JL)) - END DO -! - ILISTLENH = 0 - DO JL=1,ISEDIMH - IF( ZRHS(JL) .GT. ZRTMIN(7) ) THEN - ILISTLENH = ILISTLENH + 1 - ILISTH(ILISTLENH) = JL - END IF END DO - DO JJ = 1, ILISTLENH - JL = ILISTH(JJ) - ZWSED (IH1(JL),IH2(JL),IH3(JL))= XFSEDH * ZRHS(JL)**XEXSEDH * & - ZRHODREFH(JL)**(XEXSEDH-XCEXVT) - END DO - END IF - DO JK = IKTB , IKTE - PRHS(:,:,JK) = PRHS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) - END DO - IF (PRESENT(PFPR)) THEN - DO JK = IKTB , IKTE - PFPR(:,:,JK,7)=ZWSED(:,:,JK) - ENDDO - ENDIF - PINPRH(:,:) = PINPRH(:,:) + ZWSED(:,:,IKB)/XRHOLW/KSPLITR - IF( JN==KSPLITR ) THEN - PRHS(:,:,:) = PRHS(:,:,:) * ZINVTSTEP - END IF - END IF -! -END DO -! -IF (OSEDIC) THEN - IF (ILENALLOCC .GT. 0) DEALLOCATE (ZRCS, ZRHODREFC, & - ILISTC,ZWLBDC,ZCONC,ZRCT, ZZT,ZPRES,ZRAY1D,ZFSEDC1D, ZWLBDA,ZCC) -END IF -IF (ILENALLOCR .GT. 0 ) DEALLOCATE(ZRHODREFR,ZRRS,ILISTR) -IF (ILENALLOCI .GT. 0 ) DEALLOCATE(ZRHODREFI,ZRIS,ILISTI) -IF (ILENALLOCS .GT. 0 ) DEALLOCATE(ZRHODREFS,ZRSS,ILISTS) -IF (ILENALLOCG .GT. 0 ) DEALLOCATE(ZRHODREFG,ZRGS,ILISTG) -IF (KRR == 7 .AND. (ILENALLOCH .GT. 0 )) DEALLOCATE(ZRHODREFH,ZRHS,ILISTH) -! -!* 2.3 budget storage -! -IF (LBUDGET_RC .AND. OSEDIC) & - CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'SEDI_BU_RRC') -IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'SEDI_BU_RRR') -IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9 ,'SEDI_BU_RRI') -IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'SEDI_BU_RRS') -IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'SEDI_BU_RRG') -IF ( KRR == 7 .AND. LBUDGET_RH) & - CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'SEDI_BU_RRH') -! -! -! -!* 2.4 DROPLET DEPOSITION AT THE 1ST LEVEL ABOVE GROUND -! -IF (LDEPOSC) THEN - GDEP(:,:) = .FALSE. - GDEP(IIB:IIE,IJB:IJE) = PRCS(IIB:IIE,IJB:IJE,IKB) >0 - WHERE (GDEP) - PRCS(:,:,IKB) = PRCS(:,:,IKB) - XVDEPOSC * PRCT(:,:,IKB) / PDZZ(:,:,IKB) - PINPRC(:,:) = PINPRC(:,:) + XVDEPOSC * PRCT(:,:,IKB) * PRHODREF(:,:,IKB) /XRHOLW - PINDEP(:,:) = XVDEPOSC * PRCT(:,:,IKB) * PRHODREF(:,:,IKB) /XRHOLW - END WHERE -END IF -! -!* 2.5 budget storage -! -IF ( LBUDGET_RC .AND. LDEPOSC ) & - CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'DEPO_BU_RRC') -! - - END SUBROUTINE RAIN_ICE_SEDIMENTATION_SPLIT -! -!------------------------------------------------------------------------------- -! - SUBROUTINE RAIN_ICE_SEDIMENTATION_STAT -! -!* 0. DECLARATIONS -! ------------ -! -IMPLICIT NONE -! -!* 0.2 declaration of local variables -! -! - -REAL :: ZP1,ZP2,ZH,ZZWLBDA,ZZWLBDC,ZZCC -REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)) :: ZQP -INTEGER :: JI,JJ,JK -INTEGER :: JCOUNT, JL -INTEGER, DIMENSION(SIZE(PRHODREF,1)*SIZE(PRHODREF,2)) :: I1, I2 -! -REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZCONC3D ! droplet condensation -!------------------------------------------------------------------------------- -! -! -! -!* 1. Parameters for cloud sedimentation -! - IF (OSEDIC) THEN - ZRAY(:,:,:) = 0. - ZLBC(:,:,:) = XLBC(1) - ZFSEDC(:,:,:) = XFSEDC(1) - ZCONC3D(:,:,:)= XCONC_LAND - ZCONC_TMP(:,:)= XCONC_LAND - IF (PRESENT(PSEA)) THEN - ZCONC_TMP(:,:)=PSEA(:,:)*XCONC_SEA+(1.-PSEA(:,:))*XCONC_LAND - - DO JK=IKTB,IKTE - ZLBC(:,:,JK) = PSEA(:,:)*XLBC(2)+(1.-PSEA(:,:))*XLBC(1) - ZFSEDC(:,:,JK) = (PSEA(:,:)*XFSEDC(2)+(1.-PSEA(:,:))*XFSEDC(1)) - ZFSEDC(:,:,JK) = MAX(MIN(XFSEDC(1),XFSEDC(2)),ZFSEDC(:,:,JK)) - ZCONC3D(:,:,JK)= (1.-PTOWN(:,:))*ZCONC_TMP(:,:)+PTOWN(:,:)*XCONC_URBAN - ZRAY(:,:,JK) = 0.5*((1.-PSEA(:,:))*GAMMA(XNUC+1.0/XALPHAC)/(GAMMA(XNUC)) + & - PSEA(:,:)*GAMMA(XNUC2+1.0/XALPHAC2)/(GAMMA(XNUC2))) - END DO - ELSE - ZCONC3D(:,:,:) = XCONC_LAND - ZRAY(:,:,:) = 0.5*(GAMMA(XNUC+1.0/XALPHAC)/(GAMMA(XNUC))) - END IF - ZRAY(:,:,:) = MAX(1.,ZRAY(:,:,:)) - ZLBC(:,:,:) = MAX(MIN(XLBC(1),XLBC(2)),ZLBC(:,:,:)) - ENDIF - IF (LDEPOSC) PINDEP (:,:) = 0. -! -!* 2. compute the fluxes -! - - -ZRTMIN(:) = XRTMIN(:) * ZINVTSTEP -! -IF (OSEDIC) THEN - ZPRCS(:,:,:) = 0.0 - ZPRCS(:,:,:) = PRCS(:,:,:)-PRCT(:,:,:)* ZINVTSTEP - PRCS(:,:,:) = PRCT(:,:,:)* ZINVTSTEP -END IF -ZPRRS(:,:,:) = 0.0 -ZPRSS(:,:,:) = 0.0 -ZPRGS(:,:,:) = 0.0 -IF ( KRR == 7 ) ZPRHS(:,:,:) = 0.0 -! -ZPRRS(:,:,:) = PRRS(:,:,:)-PRRT(:,:,:)* ZINVTSTEP -ZPRSS(:,:,:) = PRSS(:,:,:)-PRST(:,:,:)* ZINVTSTEP -ZPRGS(:,:,:) = PRGS(:,:,:)-PRGT(:,:,:)* ZINVTSTEP -IF ( KRR == 7 ) ZPRHS(:,:,:) = PRHS(:,:,:)-PRHT(:,:,:)* ZINVTSTEP -PRRS(:,:,:) = PRRT(:,:,:)* ZINVTSTEP -PRSS(:,:,:) = PRST(:,:,:)* ZINVTSTEP -PRGS(:,:,:) = PRGT(:,:,:)* ZINVTSTEP -IF ( KRR == 7 ) PRHS(:,:,:) = PRHT(:,:,:)* ZINVTSTEP -! -IF (OSEDIC) PRCS(:,:,:) = PRCS(:,:,:) + ZPRCS(:,:,:) -PRRS(:,:,:) = PRRS(:,:,:) + ZPRRS(:,:,:) -PRSS(:,:,:) = PRSS(:,:,:) + ZPRSS(:,:,:) -PRGS(:,:,:) = PRGS(:,:,:) + ZPRGS(:,:,:) -IF ( KRR == 7 ) PRHS(:,:,:) = PRHS(:,:,:) + ZPRHS(:,:,:) -DO JK = IKTB , IKTE - ZW(:,:,JK) =PTSTEP/(PRHODREF(:,:,JK)* PDZZ(:,:,JK) ) -END DO - -! -!* 2.1 for cloud -! - IF (OSEDIC) THEN - PRCS(:,:,:) = PRCS(:,:,:) * PTSTEP - ZWSED(:,:,:) = 0. - ZWSEDW1(:,:,:) = 0. - ZWSEDW2(:,:,:) = 0. - -! calculation of P1, P2 and sedimentation flux - DO JK = IKE , IKB, -1*KKL - !estimation of q' taking into account incomming ZWSED - ZQP(:,:)=ZWSED(:,:,JK+KKL)*ZW(:,:,JK) - - JCOUNT=COUNTJV2((PRCS(:,:,JK) > ZRTMIN(2) .AND. PRCT(:,:,JK) > ZRTMIN(2)) .OR. & - (ZQP(:,:) > ZRTMIN(2)),I1(:),I2(:)) - DO JL=1, JCOUNT - JI=I1(JL) - JJ=I2(JL) - !calculation of w - ! mars 2009 : ajout d'un test - !IF ( PRCS(JI,JJ,JK) > ZRTMIN(2) ) THEN - IF(PRCS(JI,JJ,JK) > ZRTMIN(2) .AND. PRCT(JI,JJ,JK) > ZRTMIN(2)) THEN - ZZWLBDA=6.6E-8*(101325./PPABST(JI,JJ,JK))*(PTHT(JI,JJ,JK)/293.15) - ZZWLBDC=(ZLBC(JI,JJ,JK)*ZCONC3D(JI,JJ,JK) & - &/(PRHODREF(JI,JJ,JK)*PRCT(JI,JJ,JK)))**XLBEXC - ZZCC=XCC*(1.+1.26*ZZWLBDA*ZZWLBDC/ZRAY(JI,JJ,JK)) !! ZCC : Fall speed - ZWSEDW1 (JI,JJ,JK)=PRHODREF(JI,JJ,JK)**(-XCEXVT ) * & - & ZZWLBDC**(-XDC)*ZZCC*ZFSEDC(JI,JJ,JK) - ENDIF - IF ( ZQP(JI,JJ) > ZRTMIN(2) ) THEN - ZZWLBDA=6.6E-8*(101325./PPABST(JI,JJ,JK))*(PTHT(JI,JJ,JK)/293.15) - ZZWLBDC=(ZLBC(JI,JJ,JK)*ZCONC3D(JI,JJ,JK) & - &/(PRHODREF(JI,JJ,JK)*ZQP(JI,JJ)))**XLBEXC - ZZCC=XCC*(1.+1.26*ZZWLBDA*ZZWLBDC/ZRAY(JI,JJ,JK)) !! ZCC : Fall speed - ZWSEDW2 (JI,JJ,JK)=PRHODREF(JI,JJ,JK)**(-XCEXVT ) * & - & ZZWLBDC**(-XDC)*ZZCC*ZFSEDC(JI,JJ,JK) - ENDIF - ENDDO - - DO JJ = IJB, IJE - DO JI = IIB, IIE - ZH=PDZZ(JI,JJ,JK) - ZP1 = MIN(1., ZWSEDW1(JI,JJ,JK) * PTSTEP / ZH) - ! mars 2009 : correction : ZWSEDW1 => ZWSEDW2 - !IF (ZWSEDW1(JI,JJ,JK) /= 0.) THEN - IF (ZWSEDW2(JI,JJ,JK) /= 0.) THEN - ZP2 = MAX(0.,1 - ZH & - & / (PTSTEP*ZWSEDW2(JI,JJ,JK)) ) - ELSE - ZP2 = 0. - ENDIF - ZWSED (JI,JJ,JK)=ZP1*PRHODREF(JI,JJ,JK)*& - &ZH*PRCS(JI,JJ,JK)& - &* ZINVTSTEP+ ZP2 * ZWSED (JI,JJ,JK+KKL) - ENDDO - ENDDO - ENDDO - - DO JK = IKTB , IKTE - PRCS(:,:,JK) = PRCS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) - END DO - IF (PRESENT(PFPR)) THEN - DO JK = IKTB , IKTE - PFPR(:,:,JK,2)=ZWSED(:,:,JK) - ENDDO - ENDIF - - PINPRC(:,:) = ZWSED(:,:,IKB)/XRHOLW ! in m/s - PRCS(:,:,:) = PRCS(:,:,:) * ZINVTSTEP - ENDIF - -! -!* 2.2 for rain -! - - PRRS(:,:,:) = PRRS(:,:,:) * PTSTEP - ZWSED(:,:,:) = 0. - ZWSEDW1(:,:,:) = 0. - ZWSEDW2(:,:,:) = 0. - -! calculation of ZP1, ZP2 and sedimentation flux - DO JK = IKE , IKB, -1*KKL - !estimation of q' taking into account incomming ZWSED - ZQP(:,:)=ZWSED(:,:,JK+KKL)*ZW(:,:,JK) - - JCOUNT=COUNTJV2((PRRS(:,:,JK) > ZRTMIN(3)) .OR. & - (ZQP(:,:) > ZRTMIN(3)),I1(:),I2(:)) - DO JL=1, JCOUNT - JI=I1(JL) - JJ=I2(JL) - !calculation of w - IF ( PRRS(JI,JJ,JK) > ZRTMIN(3) ) THEN - ZWSEDW1 (JI,JJ,JK)= XFSEDR *PRRS(JI,JJ,JK)**(XEXSEDR-1)* & - PRHODREF(JI,JJ,JK)**(XEXSEDR-XCEXVT-1) - ENDIF - IF ( ZQP(JI,JJ) > ZRTMIN(3) ) THEN - ZWSEDW2 (JI,JJ,JK)= XFSEDR *(ZQP(JI,JJ))**(XEXSEDR-1)* & - PRHODREF(JI,JJ,JK)**(XEXSEDR-XCEXVT-1) - ENDIF - ENDDO - DO JJ = IJB, IJE - DO JI = IIB, IIE - ZH=PDZZ(JI,JJ,JK) - ZP1 = MIN(1., ZWSEDW1(JI,JJ,JK) * PTSTEP / ZH ) - IF (ZWSEDW2(JI,JJ,JK) /= 0.) THEN - ZP2 = MAX(0.,1 - ZH & - & / (PTSTEP*ZWSEDW2(JI,JJ,JK)) ) - ELSE - ZP2 = 0. - ENDIF - ZWSED (JI,JJ,JK)=ZP1*PRHODREF(JI,JJ,JK)*& - &ZH*PRRS(JI,JJ,JK)& - &* ZINVTSTEP+ ZP2 * ZWSED (JI,JJ,JK+KKL) - ENDDO - ENDDO - ENDDO - - DO JK = IKTB , IKTE - PRRS(:,:,JK) = PRRS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) - ENDDO - IF (PRESENT(PFPR)) THEN - DO JK = IKTB , IKTE - PFPR(:,:,JK,3)=ZWSED(:,:,JK) - ENDDO - ENDIF - PINPRR(:,:) = ZWSED(:,:,IKB)/XRHOLW ! in m/s - PINPRR3D(:,:,:) = ZWSED(:,:,1:IKT)/XRHOLW ! in m/s - PRRS(:,:,:) = PRRS(:,:,:) * ZINVTSTEP - -! -!* 2.3 for pristine ice -! - - PRIS(:,:,:) = PRIS(:,:,:) * PTSTEP - ZWSED(:,:,:) = 0. - ZWSEDW1(:,:,:) = 0. - ZWSEDW2(:,:,:) = 0. -! calculation of ZP1, ZP2 and sedimentation flux - DO JK = IKE , IKB, -1*KKL - !estimation of q' taking into account incomming ZWSED - ZQP(:,:)=ZWSED(:,:,JK+KKL)*ZW(:,:,JK) - - JCOUNT=COUNTJV2((PRIS(:,:,JK) > MAX(ZRTMIN(4),1.0E-7 )) .OR. & - (ZQP(:,:) > MAX(ZRTMIN(4),1.0E-7 )),I1(:),I2(:)) - DO JL=1, JCOUNT - JI=I1(JL) - JJ=I2(JL) - !calculation of w - IF ( PRIS(JI,JJ,JK) > MAX(ZRTMIN(4),1.0E-7 ) ) THEN - ZWSEDW1 (JI,JJ,JK)= XFSEDI * & - & PRHODREF(JI,JJ,JK)**(XCEXVT) * & ! McF&H - & MAX( 0.05E6,-0.15319E6-0.021454E6* & - & ALOG(PRHODREF(JI,JJ,JK)*PRIS(JI,JJ,JK)) )**XEXCSEDI - ENDIF - IF ( ZQP(JI,JJ) > MAX(ZRTMIN(4),1.0E-7 ) ) THEN - ZWSEDW2 (JI,JJ,JK)= XFSEDI * & - & PRHODREF(JI,JJ,JK)**(XCEXVT) * & ! McF&H - & MAX( 0.05E6,-0.15319E6-0.021454E6* & - & ALOG(PRHODREF(JI,JJ,JK)*ZQP(JI,JJ)) )**XEXCSEDI - ENDIF - ENDDO - DO JJ = IJB, IJE - DO JI = IIB, IIE - ZH=PDZZ(JI,JJ,JK) - ZP1 = MIN(1., ZWSEDW1(JI,JJ,JK) * PTSTEP / ZH ) - IF (ZWSEDW2(JI,JJ,JK) /= 0.) THEN - ZP2 = MAX(0.,1 - ZH & - & / (PTSTEP*ZWSEDW2(JI,JJ,JK)) ) - ELSE - ZP2 = 0. - ENDIF - ZWSED (JI,JJ,JK)=ZP1*PRHODREF(JI,JJ,JK)*& - &ZH*PRIS(JI,JJ,JK)& - &* ZINVTSTEP+ ZP2 * ZWSED (JI,JJ,JK+KKL) - ENDDO - ENDDO - ENDDO - - DO JK = IKTB , IKTE - PRIS(:,:,JK) = PRIS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) - ENDDO - IF (PRESENT(PFPR)) THEN - DO JK = IKTB , IKTE - PFPR(:,:,JK,4)=ZWSED(:,:,JK) - ENDDO - ENDIF - - PRIS(:,:,:) = PRIS(:,:,:) * ZINVTSTEP - - -! -!* 2.4 for aggregates/snow -! - - PRSS(:,:,:) = PRSS(:,:,:) * PTSTEP - ZWSED(:,:,:) = 0. - ZWSEDW1(:,:,:) = 0. - ZWSEDW2(:,:,:) = 0. - -! calculation of ZP1, ZP2 and sedimentation flux - DO JK = IKE , IKB, -1*KKL - !estimation of q' taking into account incomming ZWSED - ZQP(:,:)=ZWSED(:,:,JK+KKL)*ZW(:,:,JK) - - JCOUNT=COUNTJV2((PRSS(:,:,JK) > ZRTMIN(5)) .OR. & - (ZQP(:,:) > ZRTMIN(5)),I1(:),I2(:)) - DO JL=1, JCOUNT - JI=I1(JL) - JJ=I2(JL) - !calculation of w - IF (PRSS(JI,JJ,JK) > ZRTMIN(5) ) THEN - ZWSEDW1(JI,JJ,JK)=XFSEDS*(PRSS(JI,JJ,JK))**(XEXSEDS-1)*& - PRHODREF(JI,JJ,JK)**(XEXSEDS-XCEXVT-1) - ENDIF - IF ( ZQP(JI,JJ) > ZRTMIN(5) ) THEN - ZWSEDW2(JI,JJ,JK)=XFSEDS*(ZQP(JI,JJ))**(XEXSEDS-1)*& - PRHODREF(JI,JJ,JK)**(XEXSEDS-XCEXVT-1) - ENDIF - ENDDO - DO JJ = IJB, IJE - DO JI = IIB, IIE - ZH=PDZZ(JI,JJ,JK) - ZP1 = MIN(1., ZWSEDW1(JI,JJ,JK) * PTSTEP / ZH ) - IF (ZWSEDW2(JI,JJ,JK) /= 0.) THEN - ZP2 = MAX(0.,1 - ZH& - / (PTSTEP*ZWSEDW2(JI,JJ,JK)) ) - ELSE - ZP2 = 0. - ENDIF - ZWSED (JI,JJ,JK)=ZP1*PRHODREF(JI,JJ,JK)*& - &ZH*PRSS(JI,JJ,JK)& - &* ZINVTSTEP+ ZP2 * ZWSED (JI,JJ,JK+KKL) - ENDDO - ENDDO - ENDDO - - DO JK = IKTB , IKTE - PRSS(:,:,JK) = PRSS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) - ENDDO - IF (PRESENT(PFPR)) THEN - DO JK = IKTB , IKTE - PFPR(:,:,JK,5)=ZWSED(:,:,JK) - ENDDO - ENDIF - - PINPRS(:,:) = ZWSED(:,:,IKB)/XRHOLW ! in m/s - - PRSS(:,:,:) = PRSS(:,:,:) * ZINVTSTEP - - -! -!* 2.5 for graupeln -! - - PRGS(:,:,:) = PRGS(:,:,:) * PTSTEP - ZWSED(:,:,:) = 0. - ZWSEDW1(:,:,:) = 0. - ZWSEDW2(:,:,:) = 0. - -! calculation of ZP1, ZP2 and sedimentation flux - DO JK = IKE, IKB, -1*KKL - !estimation of q' taking into account incomming ZWSED - ZQP(:,:)=ZWSED(:,:,JK+KKL)*ZW(:,:,JK) - - JCOUNT=COUNTJV2((PRGS(:,:,JK) > ZRTMIN(6)) .OR. & - (ZQP(:,:) > ZRTMIN(6)),I1(:),I2(:)) - DO JL=1, JCOUNT - JI=I1(JL) - JJ=I2(JL) - !calculation of w - IF ( PRGS(JI,JJ,JK) > ZRTMIN(6) ) THEN - ZWSEDW1 (JI,JJ,JK)= XFSEDG*(PRGS(JI,JJ,JK))**(XEXSEDG-1) * & - PRHODREF(JI,JJ,JK)**(XEXSEDG-XCEXVT-1) - ENDIF - IF ( ZQP(JI,JJ) > ZRTMIN(6) ) THEN - ZWSEDW2 (JI,JJ,JK)= XFSEDG*(ZQP(JI,JJ))**(XEXSEDG-1) * & - PRHODREF(JI,JJ,JK)**(XEXSEDG-XCEXVT-1) - ENDIF - ENDDO - DO JJ = IJB, IJE - DO JI = IIB, IIE - ZH=PDZZ(JI,JJ,JK) - ZP1 = MIN(1., ZWSEDW1(JI,JJ,JK) * PTSTEP / ZH ) - IF (ZWSEDW2(JI,JJ,JK) /= 0.) THEN - ZP2 = MAX(0.,1 - ZH & - & / (PTSTEP*ZWSEDW2(JI,JJ,JK)) ) - ELSE - ZP2 = 0. - ENDIF - ZWSED (JI,JJ,JK)=ZP1*PRHODREF(JI,JJ,JK)*& - &ZH*PRGS(JI,JJ,JK)& - &* ZINVTSTEP+ ZP2 * ZWSED (JI,JJ,JK+KKL) - ENDDO - ENDDO - ENDDO - - DO JK = IKTB , IKTE - PRGS(:,:,JK) = PRGS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) - ENDDO - IF (PRESENT(PFPR)) THEN - DO JK = IKTB , IKTE - PFPR(:,:,JK,6)=ZWSED(:,:,JK) - ENDDO - ENDIF - - PINPRG(:,:) = ZWSED(:,:,IKB)/XRHOLW ! in m/s - - PRGS(:,:,:) = PRGS(:,:,:) * ZINVTSTEP - -! -!* 2.6 for hail -! - IF ( KRR == 7 ) THEN - PRHS(:,:,:) = PRHS(:,:,:) * PTSTEP - ZWSED(:,:,:) = 0. - ZWSEDW1(:,:,:) = 0. - ZWSEDW2(:,:,:) = 0. -! calculation of ZP1, ZP2 and sedimentation flux - DO JK = IKE , IKB, -1*KKL - !estimation of q' taking into account incomming ZWSED - ZQP(:,:)=ZWSED(:,:,JK+KKL)*ZW(:,:,JK) - - JCOUNT=COUNTJV2((PRHS(:,:,JK)+ZQP(JI,JJ) > ZRTMIN(7)) .OR. & - (ZQP(:,:) > ZRTMIN(7)),I1(:),I2(:)) - DO JL=1, JCOUNT - JI=I1(JL) - JJ=I2(JL) - !calculation of w - IF ((PRHS(JI,JJ,JK)+ZQP(JI,JJ)) > ZRTMIN(7) ) THEN - ZWSEDW1 (JI,JJ,JK)= XFSEDH * (PRHS(JI,JJ,JK))**(XEXSEDH-1) * & - PRHODREF(JI,JJ,JK)**(XEXSEDH-XCEXVT-1) - ENDIF - IF ( ZQP(JI,JJ) > ZRTMIN(7) ) THEN - ZWSEDW2 (JI,JJ,JK)= XFSEDH * ZQP(JI,JJ)**(XEXSEDH-1) * & - PRHODREF(JI,JJ,JK)**(XEXSEDH-XCEXVT-1) - ENDIF - ENDDO - DO JJ = IJB, IJE - DO JI = IIB, IIE - ZH=PDZZ(JI,JJ,JK) - ZP1 = MIN(1., ZWSEDW1(JI,JJ,JK) * PTSTEP / ZH) - IF (ZWSEDW2(JI,JJ,JK) /= 0.) THEN - ZP2 = MAX(0.,1 - ZH & - & / (PTSTEP*ZWSEDW2(JI,JJ,JK)) ) - ELSE - ZP2 = 0. - ENDIF - ZWSED (JI,JJ,JK)=ZP1*PRHODREF(JI,JJ,JK)*& - &ZH*PRHS(JI,JJ,JK)& - &* ZINVTSTEP+ ZP2 * ZWSED (JI,JJ,JK+KKL) - ENDDO - ENDDO - ENDDO - - DO JK = IKTB , IKTE - PRHS(:,:,JK) = PRHS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) - ENDDO - IF (PRESENT(PFPR)) THEN - DO JK = IKTB , IKTE - PFPR(:,:,JK,7)=ZWSED(:,:,JK) - ENDDO - ENDIF - - PINPRH(:,:) = ZWSED(:,:,IKB)/XRHOLW ! in m/s - - PRHS(:,:,:) = PRHS(:,:,:) * ZINVTSTEP - - ENDIF -! - -! -!* 2.3 budget storage -! -IF (LBUDGET_RC .AND. OSEDIC) & - CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'SEDI_BU_RRC') -IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'SEDI_BU_RRR') -IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9 ,'SEDI_BU_RRI') -IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'SEDI_BU_RRS') -IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'SEDI_BU_RRG') -IF ( KRR == 7 .AND. LBUDGET_RH) & - CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'SEDI_BU_RRH') -! -! -!* 2.4 DROPLET DEPOSITION AT THE 1ST LEVEL ABOVE GROUND -! -IF (LDEPOSC) THEN - GDEP(:,:) = .FALSE. - GDEP(IIB:IIE,IJB:IJE) = PRCS(IIB:IIE,IJB:IJE,IKB) >0 - WHERE (GDEP) - PRCS(:,:,IKB) = PRCS(:,:,IKB) - XVDEPOSC * PRCT(:,:,IKB) / PDZZ(:,:,IKB) - PINPRC(:,:) = PINPRC(:,:) + XVDEPOSC * PRCT(:,:,IKB) * PRHODREF(:,:,IKB) /XRHOLW - PINDEP(:,:) = XVDEPOSC * PRCT(:,:,IKB) * PRHODREF(:,:,IKB) /XRHOLW - END WHERE -END IF -! -!* 2.5 budget storage -! -IF ( LBUDGET_RC .AND. LDEPOSC ) & - CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'DEPO_BU_RRC') - -! - END SUBROUTINE RAIN_ICE_SEDIMENTATION_STAT -! -!------------------------------------------------------------------------------- -! - -! - SUBROUTINE RAIN_ICE_NUCLEATION -! -!* 0. DECLARATIONS -! ------------ -! -IMPLICIT NONE -! -!* 0.2 declaration of local variables -! -INTEGER , DIMENSION(SIZE(GNEGT)) :: I1,I2,I3 ! Used to replace the COUNT -INTEGER :: JL ! and PACK intrinsics -! -!------------------------------------------------------------------------------- -! -! -! compute the temperature and the pressure -! -ZT(:,:,:) = PTHT(:,:,:) * ( PPABST(:,:,:) / XP00 ) ** (XRD/XCPD) -! -! optimization by looking for locations where -! the temperature is negative only !!! -! -GNEGT(:,:,:) = .FALSE. -GNEGT(IIB:IIE,IJB:IJE,IKTB:IKTE) = ZT(IIB:IIE,IJB:IJE,IKTB:IKTE)<XTT -INEGT = COUNTJV( GNEGT(:,:,:),I1(:),I2(:),I3(:)) -IF( INEGT >= 1 ) THEN - ALLOCATE(ZRVT(INEGT)) ; - ALLOCATE(ZCIT(INEGT)) ; - ALLOCATE(ZZT(INEGT)) ; - ALLOCATE(ZPRES(INEGT)); - DO JL=1,INEGT - ZRVT(JL) = PRVT(I1(JL),I2(JL),I3(JL)) - ZCIT(JL) = PCIT(I1(JL),I2(JL),I3(JL)) - ZZT(JL) = ZT(I1(JL),I2(JL),I3(JL)) - ZPRES(JL) = PPABST(I1(JL),I2(JL),I3(JL)) - ENDDO - ALLOCATE(ZZW(INEGT)) - ALLOCATE(ZUSW(INEGT)) - ALLOCATE(ZSSI(INEGT)) - ZZW(:) = EXP( XALPI - XBETAI/ZZT(:) - XGAMI*ALOG(ZZT(:) ) ) ! es_i - ZZW(:) = MIN(ZPRES(:)/2., ZZW(:)) ! safety limitation - ZSSI(:) = ZRVT(:)*( ZPRES(:)-ZZW(:) ) / ( (XMV/XMD) * ZZW(:) ) - 1.0 - ! Supersaturation over ice - ZUSW(:) = EXP( XALPW - XBETAW/ZZT(:) - XGAMW*ALOG(ZZT(:) ) ) ! es_w - ZUSW(:) = MIN(ZPRES(:)/2.,ZUSW(:)) ! safety limitation - ZUSW(:) = ( ZUSW(:)/ZZW(:) )*( (ZPRES(:)-ZZW(:))/(ZPRES(:)-ZUSW(:)) ) - 1.0 - ! Supersaturation of saturated water vapor over ice -! -!* 3.1 compute the heterogeneous nucleation source: RVHENI -! -!* 3.1.1 compute the cloud ice concentration -! - ZZW(:) = 0.0 - ZSSI(:) = MIN( ZSSI(:), ZUSW(:) ) ! limitation of SSi according to SSw=0 - WHERE( (ZZT(:)<XTT-5.0) .AND. (ZSSI(:)>0.0) ) - ZZW(:) = XNU20 * EXP( XALPHA2*ZSSI(:)-XBETA2 ) - END WHERE - WHERE( (ZZT(:)<=XTT-2.0) .AND. (ZZT(:)>=XTT-5.0) .AND. (ZSSI(:)>0.0) ) - ZZW(:) = MAX( XNU20 * EXP( -XBETA2 ),XNU10 * EXP( -XBETA1*(ZZT(:)-XTT) ) * & - ( ZSSI(:)/ZUSW(:) )**XALPHA1 ) - END WHERE - ZZW(:) = ZZW(:) - ZCIT(:) - IF( MAXVAL(ZZW(:)) > 0.0 ) THEN -! -!* 3.1.2 update the r_i and r_v mixing ratios -! - ZZW(:) = MIN( ZZW(:),50.E3 ) ! limitation provisoire a 50 l^-1 - ZW(:,:,:) = UNPACK( ZZW(:),MASK=GNEGT(:,:,:),FIELD=0.0 ) - ZW(:,:,:) = MAX( ZW(:,:,:) ,0.0 ) *XMNU0/(PRHODREF(:,:,:)*PTSTEP) - PRIS(:,:,:) = PRIS(:,:,:) + ZW(:,:,:) - PRVS(:,:,:) = PRVS(:,:,:) - ZW(:,:,:) - IF ( KRR == 7 ) THEN - PTHS(:,:,:) = PTHS(:,:,:) + ZW(:,:,:)*(XLSTT+(XCPV-XCI)*(ZT(:,:,:)-XTT)) & - /( (XCPD + XCPV*PRVT(:,:,:) + XCL*(PRCT(:,:,:)+PRRT(:,:,:)) & - + XCI*(PRIT(:,:,:)+PRST(:,:,:)+PRGT(:,:,:)+PRHT(:,:,:)))*PEXNREF(:,:,:) ) - ELSE IF( KRR == 6 ) THEN - PTHS(:,:,:) = PTHS(:,:,:) + ZW(:,:,:)*(XLSTT+(XCPV-XCI)*(ZT(:,:,:)-XTT)) & - /( (XCPD + XCPV*PRVT(:,:,:) + XCL*(PRCT(:,:,:)+PRRT(:,:,:)) & - + XCI*(PRIT(:,:,:)+PRST(:,:,:)+PRGT(:,:,:)))*PEXNREF(:,:,:) ) - END IF - ! f(L_s*(RVHENI)) - ZZW(:) = MAX( ZZW(:)+ZCIT(:),ZCIT(:) ) - PCIT(:,:,:) = MAX( UNPACK( ZZW(:),MASK=GNEGT(:,:,:),FIELD=0.0 ) , & - PCIT(:,:,:) ) - END IF - DEALLOCATE(ZSSI) - DEALLOCATE(ZUSW) - DEALLOCATE(ZZW) - DEALLOCATE(ZPRES) - DEALLOCATE(ZZT) - DEALLOCATE(ZCIT) - DEALLOCATE(ZRVT) -END IF -! -!* 3.1.3 budget storage -! -IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'HENU_BU_RTH') -IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6,'HENU_BU_RRV') -IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'HENU_BU_RRI') -! - END SUBROUTINE RAIN_ICE_NUCLEATION -! -!------------------------------------------------------------------------------- -! -! - SUBROUTINE RAIN_ICE_SLOW -! -!* 0. DECLARATIONS -! ------------ -! -IMPLICIT NONE -! -!------------------------------------------------------------------------------- -! -! -!* 3.2 compute the homogeneous nucleation source: RCHONI -! - ZZW(:) = 0.0 - WHERE( (ZZT(:)<XTT-35.0) .AND. (ZRCT(:)>XRTMIN(2)) .AND. (ZRCS(:)>0.) ) - ZZW(:) = MIN( ZRCS(:),XHON*ZRHODREF(:)*ZRCT(:) & - *EXP( MIN(XMNH_HUGE_12_LOG,XALPHA3*(ZZT(:)-XTT)-XBETA3) ) ) - ! *EXP( XALPHA3*(ZZT(:)-XTT)-XBETA3 ) ) - ZRIS(:) = ZRIS(:) + ZZW(:) - ZRCS(:) = ZRCS(:) - ZZW(:) - ZTHS(:) = ZTHS(:) + ZZW(:)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(RCHONI)) - ENDWHERE -! - IF (LBUDGET_TH) CALL BUDGET ( & - UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'HON_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET ( & - UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'HON_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET ( & - UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'HON_BU_RRI') -! -!* 3.3 compute the spontaneous freezing source: RRHONG -! - ZZW(:) = 0.0 - WHERE( (ZZT(:)<XTT-35.0) .AND. (ZRRT(:)>XRTMIN(3)) .AND. (ZRRS(:)>0.) ) - ZZW(:) = MIN( ZRRS(:),ZRRT(:)* ZINVTSTEP ) - ZRGS(:) = ZRGS(:) + ZZW(:) - ZRRS(:) = ZRRS(:) - ZZW(:) - ZTHS(:) = ZTHS(:) + ZZW(:)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(RRHONG)) - ENDWHERE -! - IF (LBUDGET_TH) CALL BUDGET ( & - UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'SFR_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET ( & - UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'SFR_BU_RRR') - IF (LBUDGET_RG) CALL BUDGET ( & - UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'SFR_BU_RRG') -! -!* 3.4 compute the deposition, aggregation and autoconversion sources -! - ZKA(:) = 2.38E-2 + 0.0071E-2 * ( ZZT(:) - XTT ) ! k_a - ZDV(:) = 0.211E-4 * (ZZT(:)/XTT)**1.94 * (XP00/ZPRES(:)) ! D_v -! -!* 3.4.1 compute the thermodynamical function A_i(T,P) -!* and the c^prime_j (in the ventilation factor) -! - - ZAI(:) = EXP( XALPI - XBETAI/ZZT(:) - XGAMI*ALOG(ZZT(:) ) ) ! es_i - ZAI(:) = ( XLSTT + (XCPV-XCI)*(ZZT(:)-XTT) )**2 / (ZKA(:)*XRV*ZZT(:)**2) & - + ( XRV*ZZT(:) ) / (ZDV(:)*ZAI(:)) - ZCJ(:) = XSCFAC * ZRHODREF(:)**0.3 / SQRT( 1.718E-5+0.0049E-5*(ZZT(:)-XTT) ) -! -!* 3.4.2 compute the riming-conversion of r_c for r_i production: RCAUTI -! -! ZZW(:) = 0.0 -! ZTIMAUTIC = SQRT( XTIMAUTI*XTIMAUTC ) -! WHERE ( (ZRCT(:)>0.0) .AND. (ZRIT(:)>0.0) .AND. (ZRCS(:)>0.0) ) -! ZZW(:) = MIN( ZRCS(:),ZTIMAUTIC * MAX( SQRT( ZRIT(:)*ZRCT(:) ),0.0 ) ) -! ZRIS(:) = ZRIS(:) + ZZW(:) -! ZRCS(:) = ZRCS(:) - ZZW(:) -! ZTHS(:) = ZTHS(:) + ZZW(:)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(RCAUTI)) -! END WHERE -! -!* 3.4.3 compute the deposition on r_s: RVDEPS -! - WHERE ( ZRST(:)>0.0 ) - ZLBDAS(:) = MIN( XLBDAS_MAX, & - XLBS*( ZRHODREF(:)*MAX( ZRST(:),XRTMIN(5) ) )**XLBEXS ) - END WHERE - ZZW(:) = 0.0 - WHERE ( (ZRST(:)>XRTMIN(5)) .AND. (ZRSS(:)>0.0) ) - ZZW(:) = ( ZSSI(:)/(ZRHODREF(:)*ZAI(:)) ) * & - ( X0DEPS*ZLBDAS(:)**XEX0DEPS + X1DEPS*ZCJ(:)*ZLBDAS(:)**XEX1DEPS ) - ZZW(:) = MIN( ZRVS(:),ZZW(:) )*(0.5+SIGN(0.5,ZZW(:))) & - - MIN( ZRSS(:),ABS(ZZW(:)) )*(0.5-SIGN(0.5,ZZW(:))) - ZRSS(:) = ZRSS(:) + ZZW(:) - ZRVS(:) = ZRVS(:) - ZZW(:) - ZTHS(:) = ZTHS(:) + ZZW(:)*ZLSFACT(:) - END WHERE - IF (LBUDGET_TH) CALL BUDGET ( & - UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'DEPS_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET ( & - UNPACK(ZRVS(:),MASK=GMICRO(:,:,:),FIELD=PRVS)*PRHODJ(:,:,:), & - 6,'DEPS_BU_RRV') - IF (LBUDGET_RS) CALL BUDGET ( & - UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'DEPS_BU_RRS') -! -!* 3.4.4 compute the aggregation on r_s: RIAGGS -! - ZZW(:) = 0.0 - WHERE ( (ZRIT(:)>XRTMIN(4)) .AND. (ZRST(:)>XRTMIN(5)) .AND. (ZRIS(:)>0.0) ) - ZZW(:) = MIN( ZRIS(:),XFIAGGS * EXP( XCOLEXIS*(ZZT(:)-XTT) ) & - * ZRIT(:) & - * ZLBDAS(:)**XEXIAGGS & - * ZRHODREF(:)**(-XCEXVT) ) - ZRSS(:) = ZRSS(:) + ZZW(:) - ZRIS(:) = ZRIS(:) - ZZW(:) - END WHERE - IF (LBUDGET_RI) CALL BUDGET ( & - UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'AGGS_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET ( & - UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'AGGS_BU_RRS') -! -!* 3.4.5 compute the autoconversion of r_i for r_s production: RIAUTS -! - ALLOCATE(ZCRIAUTI(IMICRO)) -! ZCRIAUTI(:)=MIN(XCRIAUTI,10**(0.06*(ZZT(:)-XTT)-3.5)) - ZCRIAUTI(:)=MIN(XCRIAUTI,10**(XACRIAUTI*(ZZT(:)-XTT)+XBCRIAUTI)) - ZZW(:) = 0.0 - WHERE ( (ZRIT(:)>XRTMIN(4)) .AND. (ZRIS(:)>0.0) ) - ZZW(:) = MIN( ZRIS(:),XTIMAUTI * EXP( XTEXAUTI*(ZZT(:)-XTT) ) & - * MAX( ZRIT(:)-ZCRIAUTI(:),0.0 ) ) - ZRSS(:) = ZRSS(:) + ZZW(:) - ZRIS(:) = ZRIS(:) - ZZW(:) - END WHERE - DEALLOCATE(ZCRIAUTI) - IF (LBUDGET_RI) CALL BUDGET ( & - UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'AUTS_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET ( & - UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'AUTS_BU_RRS') -! -!* 3.4.6 compute the deposition on r_g: RVDEPG -! -! - WHERE ( ZRGT(:)>0.0 ) - ZLBDAG(:) = XLBG*( ZRHODREF(:)*MAX( ZRGT(:),XRTMIN(6) ) )**XLBEXG - END WHERE - ZZW(:) = 0.0 - WHERE ( (ZRGT(:)>XRTMIN(6)) .AND. (ZRGS(:)>0.0) ) - ZZW(:) = ( ZSSI(:)/(ZRHODREF(:)*ZAI(:)) ) * & - ( X0DEPG*ZLBDAG(:)**XEX0DEPG + X1DEPG*ZCJ(:)*ZLBDAG(:)**XEX1DEPG ) - ZZW(:) = MIN( ZRVS(:),ZZW(:) )*(0.5+SIGN(0.5,ZZW(:))) & - - MIN( ZRGS(:),ABS(ZZW(:)) )*(0.5-SIGN(0.5,ZZW(:))) - ZRGS(:) = ZRGS(:) + ZZW(:) - ZRVS(:) = ZRVS(:) - ZZW(:) - ZTHS(:) = ZTHS(:) + ZZW(:)*ZLSFACT(:) - END WHERE - IF (LBUDGET_TH) CALL BUDGET ( & - UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'DEPG_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET ( & - UNPACK(ZRVS(:),MASK=GMICRO(:,:,:),FIELD=PRVS)*PRHODJ(:,:,:), & - 6,'DEPG_BU_RRV') - IF (LBUDGET_RG) CALL BUDGET ( & - UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'DEPG_BU_RRG') -! - END SUBROUTINE RAIN_ICE_SLOW -! -!------------------------------------------------------------------------------- -! -! - SUBROUTINE RAIN_ICE_WARM -! -!* 0. DECLARATIONS -! ------------ -! -IMPLICIT NONE -! -! -!------------------------------------------------------------------------------- -! -!* 4.2 compute the autoconversion of r_c for r_r production: RCAUTR -! - - WHERE( ZRCS(:)>0.0 .AND. ZHLC_HCF(:).GT.0.0 ) - ZZW(:) = XTIMAUTC*MAX( ZHLC_HRC(:)/ZHLC_HCF(:) - XCRIAUTC/ZRHODREF(:),0.0) - ZZW(:) = MIN( ZRCS(:),ZHLC_HCF(:)*ZZW(:)) - ZRCS(:) = ZRCS(:) - ZZW(:) - ZRRS(:) = ZRRS(:) + ZZW(:) - END WHERE -! - IF (LBUDGET_RC) CALL BUDGET ( & - UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'AUTO_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET ( & - UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'AUTO_BU_RRR') -! -!* 4.3 compute the accretion of r_c for r_r production: RCACCR -! - IF (CSUBG_RC_RR_ACCR=='NONE') THEN - !CLoud water and rain are diluted over the grid box - WHERE( ZRCT(:)>XRTMIN(2) .AND. ZRRT(:)>XRTMIN(3) .AND. ZRCS(:)>0.0 ) - ZZW(:) = MIN( ZRCS(:), XFCACCR * ZRCT(:) & - * ZLBDAR(:)**XEXCACCR & - * ZRHODREF(:)**(-XCEXVT) ) - ZRCS(:) = ZRCS(:) - ZZW(:) - ZRRS(:) = ZRRS(:) + ZZW(:) - END WHERE - - ELSEIF (CSUBG_RC_RR_ACCR=='PRFR') THEN - !Cloud water is concentrated over its fraction with possibly to parts with high and low content as set for autoconversion - !Rain is concnetrated over its fraction - !Rain in high content area fraction: ZHLC_HCF - !Rain in low content area fraction: - ! if ZRF<ZCF (rain is entirely falling in cloud): ZRF-ZHLC_HCF - ! if ZRF>ZCF (rain is falling in cloud and in clear sky): ZCF-ZHLC_HCF - ! => min(ZCF, ZRF)-ZHLC_HCF - ZZW(:) = 0. - WHERE( ZHLC_HRC(:)>XRTMIN(2) .AND. ZRRT(:)>XRTMIN(3) .AND. ZRCS(:)>0.0 & - .AND. ZHLC_HCF(:)>0 ) - !Accretion due to rain falling in high cloud content - ZZW(:) = XFCACCR * ( ZHLC_HRC(:)/ZHLC_HCF(:) ) & - * ZLBDAR_RF(:)**XEXCACCR & - * ZRHODREF(:)**(-XCEXVT) & - * ZHLC_HCF - END WHERE - WHERE( ZHLC_LRC(:)>XRTMIN(2) .AND. ZRRT(:)>XRTMIN(3) .AND. ZRCS(:)>0.0 & - .AND. ZHLC_LCF(:)>0 ) - !We add acrretion due to rain falling in low cloud content - ZZW(:) = ZZW(:) + XFCACCR * ( ZHLC_LRC(:)/ZHLC_LCF(:) ) & - * ZLBDAR_RF(:)**XEXCACCR & - * ZRHODREF(:)**(-XCEXVT) & - * (MIN(ZCF(:), ZRF(:))-ZHLC_HCF(:)) - END WHERE - ZZW(:)=MIN(ZRCS(:), ZZW(:)) - ZRCS(:) = ZRCS(:) - ZZW(:) - ZRRS(:) = ZRRS(:) + ZZW(:) - - ELSE - !wrong CSUBG_RC_RR_ACCR case - WRITE(*,*) 'wrong CSUBG_RC_RR_ACCR case' - CALL PRINT_MSG(NVERB_FATAL,'GEN','RAIN_ICE_WARM','') - ENDIF - - IF (LBUDGET_RC) CALL BUDGET ( & - UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'ACCR_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET ( & - UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'ACCR_BU_RRR') -! -!* 4.4 compute the evaporation of r_r: RREVAV -! - ZZW(:) = 0.0 - - IF (CSUBG_RR_EVAP=='NONE') THEN - !Evaporation only when there's no cloud (RC must be 0) - WHERE( (ZRRT(:)>XRTMIN(3)) .AND. (ZRCT(:)<=XRTMIN(2)) ) - ZZW(:) = EXP( XALPW - XBETAW/ZZT(:) - XGAMW*ALOG(ZZT(:) ) ) ! es_w - ZUSW(:) = 1.0 - ZRVT(:)*( ZPRES(:)-ZZW(:) ) / ( (XMV/XMD) * ZZW(:) ) - ! Undersaturation over water - ZZW(:) = ( XLVTT+(XCPV-XCL)*(ZZT(:)-XTT) )**2 / ( ZKA(:)*XRV*ZZT(:)**2 ) & - + ( XRV*ZZT(:) ) / ( ZDV(:)*ZZW(:) ) - ZZW(:) = MIN( ZRRS(:),( MAX( 0.0,ZUSW(:) )/(ZRHODREF(:)*ZZW(:)) ) * & - ( X0EVAR*ZLBDAR(:)**XEX0EVAR+X1EVAR*ZCJ(:)*ZLBDAR(:)**XEX1EVAR ) ) - ZRRS(:) = ZRRS(:) - ZZW(:) - ZRVS(:) = ZRVS(:) + ZZW(:) - ZTHS(:) = ZTHS(:) - ZZW(:)*ZLVFACT(:) - END WHERE - - ELSEIF (CSUBG_RR_EVAP=='CLFR' .OR. CSUBG_RR_EVAP=='PRFR') THEN - !Evaporation in clear sky part - !With CLFR, rain is diluted over the grid box - !With PRFR, rain is concentrated in its fraction - !Use temperature and humidity in clear sky part like Bechtold et al. (1993) - IF (CSUBG_RR_EVAP=='CLFR') THEN - ZZW4(:)=1. !Precipitation fraction - ZZW3(:)=ZLBDAR(:) - ELSE - ZZW4(:)=ZRF(:) !Precipitation fraction - ZZW3(:)=ZLBDAR_RF(:) - ENDIF - - !ATTENTION - !Il faudrait recalculer les variables ZKA, ZDV, ZCJ en tenant compte de la température T^u - !Ces variables devraient être sorties de rain_ice_slow et on mettrait le calcul de T^u, T^s - !et plusieurs versions (comme actuellement, en ciel clair, en ciel nuageux) de ZKA, ZDV, ZCJ dans rain_ice - !On utiliserait la bonne version suivant l'option NONE, CLFR... dans l'évaporation et ailleurs - - WHERE( (ZRRT(:)>XRTMIN(3)) .AND. ( ZZW4(:) > ZCF(:) ) ) - ! outside the cloud (environment) the use of T^u (unsaturated) instead of T - ! Bechtold et al. 1993 - ! - ! T^u = T_l = theta_l * (T/theta) - ZZW2(:) = ZTHLT(:) * ZZT(:) / ZTHT(:) - ! - ! es_w with new T^u - ZZW(:) = EXP( XALPW - XBETAW/ZZW2(:) - XGAMW*ALOG(ZZW2(:) ) ) - ! - ! S, Undersaturation over water (with new theta^u) - ZUSW(:) = 1.0 - ZRVT(:)*( ZPRES(:)-ZZW(:) ) / ( (XMV/XMD) * ZZW(:) ) - ! - ZZW(:) = ( XLVTT+(XCPV-XCL)*(ZZW2(:)-XTT) )**2 / ( ZKA(:)*XRV*ZZW2(:)**2 ) & - + ( XRV*ZZW2(:) ) / ( ZDV(:)*ZZW(:) ) - ! - ZZW(:) = MAX( 0.0,ZUSW(:) )/(ZRHODREF(:)*ZZW(:)) * & - ( X0EVAR*ZZW3(:)**XEX0EVAR+X1EVAR*ZCJ(:)*ZZW3(:)**XEX1EVAR ) - ! - ZZW(:) = MIN( ZRRS(:), ZZW(:) *( ZZW4(:) - ZCF(:) ) ) - ! - ZRRS(:) = ZRRS(:) - ZZW(:) - ZRVS(:) = ZRVS(:) + ZZW(:) - ZTHS(:) = ZTHS(:) - ZZW(:)*ZLVFACT(:) - END WHERE - - ELSE - !wrong CSUBG_RR_EVAP case - WRITE(*,*) 'wrong CSUBG_RR_EVAP case' - CALL PRINT_MSG(NVERB_FATAL,'GEN','RAIN_ICE_WARM','') - END IF - - IF (LBUDGET_TH) CALL BUDGET ( & - UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'REVA_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET ( & - UNPACK(ZRVS(:),MASK=GMICRO(:,:,:),FIELD=PRVS)*PRHODJ(:,:,:), & - 6,'REVA_BU_RRV') - IF (LBUDGET_RR) CALL BUDGET ( & - UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'REVA_BU_RRR') - ZW(:,:,:)=PEVAP3D(:,:,:) - PEVAP3D(:,:,:)=UNPACK(ZZW(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:)) -! - END SUBROUTINE RAIN_ICE_WARM -! -!------------------------------------------------------------------------------- -! -! - SUBROUTINE RAIN_ICE_FAST_RS -! -!* 0. DECLARATIONS -! ------------ -! -IMPLICIT NONE -! -!------------------------------------------------------------------------------- -! -!* 5.1 cloud droplet riming of the aggregates -! - ZZW1(:,:) = 0.0 -! - ALLOCATE(GRIM(IMICRO)) -! GRIM(:) = (ZRCT(:)>0.0) .AND. (ZRST(:)>0.0) .AND. & - GRIM(:) = (ZRCT(:)>XRTMIN(2)) .AND. (ZRST(:)>XRTMIN(5)) .AND. & - (ZRCS(:)>0.0) .AND. (ZZT(:)<XTT) - IGRIM = COUNT( GRIM(:) ) -! - IF( IGRIM>0 ) THEN -! -! 5.1.0 allocations -! - ALLOCATE(ZVEC1(IGRIM)) - ALLOCATE(ZVEC2(IGRIM)) - ALLOCATE(IVEC1(IGRIM)) - ALLOCATE(IVEC2(IGRIM)) -! -! 5.1.1 select the ZLBDAS -! - ZVEC1(:) = PACK( ZLBDAS(:),MASK=GRIM(:) ) -! -! 5.1.2 find the next lower indice for the ZLBDAS in the geometrical -! set of Lbda_s used to tabulate some moments of the incomplete -! gamma function -! - ZVEC2(1:IGRIM) = MAX( 1.00001, MIN( FLOAT(NGAMINC)-0.00001, & - XRIMINTP1 * LOG( ZVEC1(1:IGRIM) ) + XRIMINTP2 ) ) - IVEC2(1:IGRIM) = INT( ZVEC2(1:IGRIM) ) - ZVEC2(1:IGRIM) = ZVEC2(1:IGRIM) - FLOAT( IVEC2(1:IGRIM) ) -! -! 5.1.3 perform the linear interpolation of the normalized -! "2+XDS"-moment of the incomplete gamma function -! - ZVEC1(1:IGRIM) = XGAMINC_RIM1( IVEC2(1:IGRIM)+1 )* ZVEC2(1:IGRIM) & - - XGAMINC_RIM1( IVEC2(1:IGRIM) )*(ZVEC2(1:IGRIM) - 1.0) - ZZW(:) = UNPACK( VECTOR=ZVEC1(:),MASK=GRIM,FIELD=0.0 ) -! -! 5.1.4 riming of the small sized aggregates -! - WHERE ( GRIM(:) ) - ZZW1(:,1) = MIN( ZRCS(:), & - XCRIMSS * ZZW(:) * ZRCT(:) & ! RCRIMSS - * ZLBDAS(:)**XEXCRIMSS & - * ZRHODREF(:)**(-XCEXVT) ) - ZRCS(:) = ZRCS(:) - ZZW1(:,1) - ZRSS(:) = ZRSS(:) + ZZW1(:,1) - ZTHS(:) = ZTHS(:) + ZZW1(:,1)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(RCRIMSS)) - END WHERE -! -! 5.1.5 perform the linear interpolation of the normalized -! "XBS"-moment of the incomplete gamma function -! - ZVEC1(1:IGRIM) = XGAMINC_RIM2( IVEC2(1:IGRIM)+1 )* ZVEC2(1:IGRIM) & - - XGAMINC_RIM2( IVEC2(1:IGRIM) )*(ZVEC2(1:IGRIM) - 1.0) - ZZW(:) = UNPACK( VECTOR=ZVEC1(:),MASK=GRIM,FIELD=0.0 ) -! -! 5.1.6 riming-conversion of the large sized aggregates into graupeln -! -! - WHERE ( GRIM(:) .AND. (ZRSS(:)>0.0) ) - ZZW1(:,2) = MIN( ZRCS(:), & - XCRIMSG * ZRCT(:) & ! RCRIMSG - * ZLBDAS(:)**XEXCRIMSG & - * ZRHODREF(:)**(-XCEXVT) & - - ZZW1(:,1) ) - ZZW1(:,3) = MIN( ZRSS(:), & - XSRIMCG * ZLBDAS(:)**XEXSRIMCG & ! RSRIMCG - * (1.0 - ZZW(:) )/(PTSTEP*ZRHODREF(:)) ) - ZRCS(:) = ZRCS(:) - ZZW1(:,2) - ZRSS(:) = ZRSS(:) - ZZW1(:,3) - ZRGS(:) = ZRGS(:) + ZZW1(:,2)+ZZW1(:,3) - ZTHS(:) = ZTHS(:) + ZZW1(:,2)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(RCRIMSG)) - END WHERE - DEALLOCATE(IVEC2) - DEALLOCATE(IVEC1) - DEALLOCATE(ZVEC2) - DEALLOCATE(ZVEC1) - END IF - IF (LBUDGET_TH) CALL BUDGET ( & - UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'RIM_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET ( & - UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'RIM_BU_RRC') - IF (LBUDGET_RS) CALL BUDGET ( & - UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'RIM_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET ( & - UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'RIM_BU_RRG') - DEALLOCATE(GRIM) -! -!* 5.2 rain accretion onto the aggregates -! - ZZW1(:,2:3) = 0.0 - ALLOCATE(GACC(IMICRO)) - GACC(:) = (ZRRT(:)>XRTMIN(3)) .AND. (ZRST(:)>XRTMIN(5)) .AND. & - (ZRRS(:)>0.0) .AND. (ZZT(:)<XTT) - IGACC = COUNT( GACC(:) ) -! - IF( IGACC>0 ) THEN -! -! 5.2.0 allocations -! - ALLOCATE(ZVEC1(IGACC)) - ALLOCATE(ZVEC2(IGACC)) - ALLOCATE(ZVEC3(IGACC)) - ALLOCATE(IVEC1(IGACC)) - ALLOCATE(IVEC2(IGACC)) -! -! 5.2.1 select the (ZLBDAS,ZLBDAR) couplet -! - ZVEC1(:) = PACK( ZLBDAS(:),MASK=GACC(:) ) - ZVEC2(:) = PACK( ZLBDAR(:),MASK=GACC(:) ) -! -! 5.2.2 find the next lower indice for the ZLBDAS and for the ZLBDAR -! in the geometrical set of (Lbda_s,Lbda_r) couplet use to -! tabulate the RACCSS-kernel -! - ZVEC1(1:IGACC) = MAX( 1.00001, MIN( FLOAT(NACCLBDAS)-0.00001, & - XACCINTP1S * LOG( ZVEC1(1:IGACC) ) + XACCINTP2S ) ) - IVEC1(1:IGACC) = INT( ZVEC1(1:IGACC) ) - ZVEC1(1:IGACC) = ZVEC1(1:IGACC) - FLOAT( IVEC1(1:IGACC) ) -! - ZVEC2(1:IGACC) = MAX( 1.00001, MIN( FLOAT(NACCLBDAR)-0.00001, & - XACCINTP1R * LOG( ZVEC2(1:IGACC) ) + XACCINTP2R ) ) - IVEC2(1:IGACC) = INT( ZVEC2(1:IGACC) ) - ZVEC2(1:IGACC) = ZVEC2(1:IGACC) - FLOAT( IVEC2(1:IGACC) ) -! -! 5.2.3 perform the bilinear interpolation of the normalized -! RACCSS-kernel -! - DO JJ = 1,IGACC - ZVEC3(JJ) = ( XKER_RACCSS(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ) & - - XKER_RACCSS(IVEC1(JJ)+1,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & - * ZVEC1(JJ) & - - ( XKER_RACCSS(IVEC1(JJ) ,IVEC2(JJ)+1)* ZVEC2(JJ) & - - XKER_RACCSS(IVEC1(JJ) ,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & - * (ZVEC1(JJ) - 1.0) - END DO - ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GACC,FIELD=0.0 ) -! -! 5.2.4 raindrop accretion on the small sized aggregates -! - WHERE ( GACC(:) ) - ZZW1(:,2) = & !! coef of RRACCS - XFRACCSS*( ZLBDAS(:)**XCXS )*( ZRHODREF(:)**(-XCEXVT-1.) ) & - *( XLBRACCS1/((ZLBDAS(:)**2) ) + & - XLBRACCS2/( ZLBDAS(:) * ZLBDAR(:) ) + & - XLBRACCS3/( (ZLBDAR(:)**2)) )/ZLBDAR(:)**4 - ZZW1(:,4) = MIN( ZRRS(:),ZZW1(:,2)*ZZW(:) ) ! RRACCSS - ZRRS(:) = ZRRS(:) - ZZW1(:,4) - ZRSS(:) = ZRSS(:) + ZZW1(:,4) - ZTHS(:) = ZTHS(:) + ZZW1(:,4)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(RRACCSS)) - END WHERE -! -! 5.2.4b perform the bilinear interpolation of the normalized -! RACCS-kernel -! - DO JJ = 1,IGACC - ZVEC3(JJ) = ( XKER_RACCS(IVEC2(JJ)+1,IVEC1(JJ)+1)* ZVEC1(JJ) & - - XKER_RACCS(IVEC2(JJ)+1,IVEC1(JJ) )*(ZVEC1(JJ) - 1.0) ) & - * ZVEC2(JJ) & - - ( XKER_RACCS(IVEC2(JJ) ,IVEC1(JJ)+1)* ZVEC1(JJ) & - - XKER_RACCS(IVEC2(JJ) ,IVEC1(JJ) )*(ZVEC1(JJ) - 1.0) ) & - * (ZVEC2(JJ) - 1.0) - END DO - ZZW1(:,2) = ZZW1(:,2)*UNPACK( VECTOR=ZVEC3(:),MASK=GACC(:),FIELD=0.0 ) - !! RRACCS! -! 5.2.5 perform the bilinear interpolation of the normalized -! SACCRG-kernel -! - DO JJ = 1,IGACC - ZVEC3(JJ) = ( XKER_SACCRG(IVEC2(JJ)+1,IVEC1(JJ)+1)* ZVEC1(JJ) & - - XKER_SACCRG(IVEC2(JJ)+1,IVEC1(JJ) )*(ZVEC1(JJ) - 1.0) ) & - * ZVEC2(JJ) & - - ( XKER_SACCRG(IVEC2(JJ) ,IVEC1(JJ)+1)* ZVEC1(JJ) & - - XKER_SACCRG(IVEC2(JJ) ,IVEC1(JJ) )*(ZVEC1(JJ) - 1.0) ) & - * (ZVEC2(JJ) - 1.0) - END DO - ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GACC,FIELD=0.0 ) -! -! 5.2.6 raindrop accretion-conversion of the large sized aggregates -! into graupeln -! - WHERE ( GACC(:) .AND. (ZRSS(:)>0.0) ) - ZZW1(:,2) = MAX( MIN( ZRRS(:),ZZW1(:,2)-ZZW1(:,4) ),0.0 ) ! RRACCSG - END WHERE - WHERE ( GACC(:) .AND. (ZRSS(:)>0.0) .AND. ZZW1(:,2)>0.0 ) - ZZW1(:,3) = MIN( ZRSS(:),XFSACCRG*ZZW(:)* & ! RSACCRG - ( ZLBDAS(:)**(XCXS-XBS) )*( ZRHODREF(:)**(-XCEXVT-1.) ) & - *( XLBSACCR1/((ZLBDAR(:)**2) ) + & - XLBSACCR2/( ZLBDAR(:) * ZLBDAS(:) ) + & - XLBSACCR3/( (ZLBDAS(:)**2)) )/ZLBDAR(:) ) - ZRRS(:) = ZRRS(:) - ZZW1(:,2) - ZRSS(:) = ZRSS(:) - ZZW1(:,3) - ZRGS(:) = ZRGS(:) + ZZW1(:,2)+ZZW1(:,3) - ZTHS(:) = ZTHS(:) + ZZW1(:,2)*(ZLSFACT(:)-ZLVFACT(:)) ! - ! f(L_f*(RRACCSG)) - END WHERE - DEALLOCATE(IVEC2) - DEALLOCATE(IVEC1) - DEALLOCATE(ZVEC3) - DEALLOCATE(ZVEC2) - DEALLOCATE(ZVEC1) - END IF - DEALLOCATE(GACC) - IF (LBUDGET_TH) CALL BUDGET ( & - UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'ACC_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET ( & - UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'ACC_BU_RRR') - IF (LBUDGET_RS) CALL BUDGET ( & - UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'ACC_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET ( & - UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'ACC_BU_RRG') -! -!* 5.3 Conversion-Melting of the aggregates -! - ZZW(:) = 0.0 - WHERE( (ZRST(:)>XRTMIN(5)) .AND. (ZRSS(:)>0.0) .AND. (ZZT(:)>XTT) ) - ZZW(:) = ZRVT(:)*ZPRES(:)/((XMV/XMD)+ZRVT(:)) ! Vapor pressure - ZZW(:) = ZKA(:)*(XTT-ZZT(:)) + & - ( ZDV(:)*(XLVTT + ( XCPV - XCL ) * ( ZZT(:) - XTT )) & - *(XESTT-ZZW(:))/(XRV*ZZT(:)) ) -! -! compute RSMLT -! - ZZW(:) = MIN( ZRSS(:), XFSCVMG*MAX( 0.0,( -ZZW(:) * & - ( X0DEPS* ZLBDAS(:)**XEX0DEPS + & - X1DEPS*ZCJ(:)*ZLBDAS(:)**XEX1DEPS ) - & - ( ZZW1(:,1)+ZZW1(:,4) ) * & - ( ZRHODREF(:)*XCL*(XTT-ZZT(:))) ) / & - ( ZRHODREF(:)*XLMTT ) ) ) -! -! note that RSCVMG = RSMLT*XFSCVMG but no heat is exchanged (at the rate RSMLT) -! because the graupeln produced by this process are still icy!!! -! - ZRSS(:) = ZRSS(:) - ZZW(:) - ZRGS(:) = ZRGS(:) + ZZW(:) - END WHERE - IF (LBUDGET_RS) CALL BUDGET ( & - UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'CMEL_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET ( & - UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'CMEL_BU_RRG') -! - END SUBROUTINE RAIN_ICE_FAST_RS -! -!------------------------------------------------------------------------------- -! -! - SUBROUTINE RAIN_ICE_FAST_RG -! -!* 0. DECLARATIONS -! ------------ -! -IMPLICIT NONE -! -!------------------------------------------------------------------------------- -! -!* 6.1 rain contact freezing -! - ZZW1(:,3:4) = 0.0 - WHERE( (ZRIT(:)>XRTMIN(4)) .AND. (ZRRT(:)>XRTMIN(3)) .AND. & - (ZRIS(:)>0.0) .AND. (ZRRS(:)>0.0) ) - ZZW1(:,3) = MIN( ZRIS(:),XICFRR * ZRIT(:) & ! RICFRRG - * ZLBDAR(:)**XEXICFRR & - * ZRHODREF(:)**(-XCEXVT) ) - ZZW1(:,4) = MIN( ZRRS(:),XRCFRI * ZCIT(:) & ! RRCFRIG - * ZLBDAR(:)**XEXRCFRI & - * ZRHODREF(:)**(-XCEXVT-1.) ) - ZRIS(:) = ZRIS(:) - ZZW1(:,3) - ZRRS(:) = ZRRS(:) - ZZW1(:,4) - ZRGS(:) = ZRGS(:) + ZZW1(:,3)+ZZW1(:,4) - ZTHS(:) = ZTHS(:) + ZZW1(:,4)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*RRCFRIG) - END WHERE - IF (LBUDGET_TH) CALL BUDGET ( & - UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'CFRZ_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET ( & - UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'CFRZ_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET ( & - UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'CFRZ_BU_RRI') - IF (LBUDGET_RG) CALL BUDGET ( & - UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'CFRZ_BU_RRG') -! -!* 6.2 compute the Dry growth case -! - ZZW1(:,:) = 0.0 - WHERE( (ZRGT(:)>XRTMIN(6)) .AND. ((ZRCT(:)>XRTMIN(2) .AND. ZRCS(:)>0.0)) ) - ZZW(:) = ZLBDAG(:)**(XCXG-XDG-2.0) * ZRHODREF(:)**(-XCEXVT) - ZZW1(:,1) = MIN( ZRCS(:),XFCDRYG * ZRCT(:) * ZZW(:) ) ! RCDRYG - END WHERE - WHERE( (ZRGT(:)>XRTMIN(6)) .AND. ((ZRIT(:)>XRTMIN(4) .AND. ZRIS(:)>0.0)) ) - ZZW(:) = ZLBDAG(:)**(XCXG-XDG-2.0) * ZRHODREF(:)**(-XCEXVT) - ZZW1(:,2) = MIN( ZRIS(:),XFIDRYG * EXP( XCOLEXIG*(ZZT(:)-XTT) ) & - * ZRIT(:) * ZZW(:) ) ! RIDRYG - END WHERE -! -!* 6.2.1 accretion of aggregates on the graupeln -! - ALLOCATE(GDRY(IMICRO)) - GDRY(:) = (ZRST(:)>XRTMIN(5)) .AND. (ZRGT(:)>XRTMIN(6)) .AND. (ZRSS(:)>0.0) - IGDRY = COUNT( GDRY(:) ) -! - IF( IGDRY>0 ) THEN -! -!* 6.2.2 allocations -! - ALLOCATE(ZVEC1(IGDRY)) - ALLOCATE(ZVEC2(IGDRY)) - ALLOCATE(ZVEC3(IGDRY)) - ALLOCATE(IVEC1(IGDRY)) - ALLOCATE(IVEC2(IGDRY)) -! -!* 6.2.3 select the (ZLBDAG,ZLBDAS) couplet -! - ZVEC1(:) = PACK( ZLBDAG(:),MASK=GDRY(:) ) - ZVEC2(:) = PACK( ZLBDAS(:),MASK=GDRY(:) ) -! -!* 6.2.4 find the next lower indice for the ZLBDAG and for the ZLBDAS -! in the geometrical set of (Lbda_g,Lbda_s) couplet use to -! tabulate the SDRYG-kernel -! - ZVEC1(1:IGDRY) = MAX( 1.00001, MIN( FLOAT(NDRYLBDAG)-0.00001, & - XDRYINTP1G * LOG( ZVEC1(1:IGDRY) ) + XDRYINTP2G ) ) - IVEC1(1:IGDRY) = INT( ZVEC1(1:IGDRY) ) - ZVEC1(1:IGDRY) = ZVEC1(1:IGDRY) - FLOAT( IVEC1(1:IGDRY) ) -! - ZVEC2(1:IGDRY) = MAX( 1.00001, MIN( FLOAT(NDRYLBDAS)-0.00001, & - XDRYINTP1S * LOG( ZVEC2(1:IGDRY) ) + XDRYINTP2S ) ) - IVEC2(1:IGDRY) = INT( ZVEC2(1:IGDRY) ) - ZVEC2(1:IGDRY) = ZVEC2(1:IGDRY) - FLOAT( IVEC2(1:IGDRY) ) -! -!* 6.2.5 perform the bilinear interpolation of the normalized -! SDRYG-kernel -! - DO JJ = 1,IGDRY - ZVEC3(JJ) = ( XKER_SDRYG(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ) & - - XKER_SDRYG(IVEC1(JJ)+1,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & - * ZVEC1(JJ) & - - ( XKER_SDRYG(IVEC1(JJ) ,IVEC2(JJ)+1)* ZVEC2(JJ) & - - XKER_SDRYG(IVEC1(JJ) ,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & - * (ZVEC1(JJ) - 1.0) - END DO - ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GDRY,FIELD=0.0 ) -! - WHERE( GDRY(:) ) - ZZW1(:,3) = MIN( ZRSS(:),XFSDRYG*ZZW(:) & ! RSDRYG - * EXP( XCOLEXSG*(ZZT(:)-XTT) ) & - *( ZLBDAS(:)**(XCXS-XBS) )*( ZLBDAG(:)**XCXG ) & - *( ZRHODREF(:)**(-XCEXVT-1.) ) & - *( XLBSDRYG1/( ZLBDAG(:)**2 ) + & - XLBSDRYG2/( ZLBDAG(:) * ZLBDAS(:) ) + & - XLBSDRYG3/( ZLBDAS(:)**2) ) ) - END WHERE - DEALLOCATE(IVEC2) - DEALLOCATE(IVEC1) - DEALLOCATE(ZVEC3) - DEALLOCATE(ZVEC2) - DEALLOCATE(ZVEC1) - END IF -! -!* 6.2.6 accretion of raindrops on the graupeln -! - GDRY(:) = (ZRRT(:)>XRTMIN(3)) .AND. (ZRGT(:)>XRTMIN(6)) .AND. (ZRRS(:)>0.0) - IGDRY = COUNT( GDRY(:) ) -! - IF( IGDRY>0 ) THEN -! -!* 6.2.7 allocations -! - ALLOCATE(ZVEC1(IGDRY)) - ALLOCATE(ZVEC2(IGDRY)) - ALLOCATE(ZVEC3(IGDRY)) - ALLOCATE(IVEC1(IGDRY)) - ALLOCATE(IVEC2(IGDRY)) -! -!* 6.2.8 select the (ZLBDAG,ZLBDAR) couplet -! - ZVEC1(:) = PACK( ZLBDAG(:),MASK=GDRY(:) ) - ZVEC2(:) = PACK( ZLBDAR(:),MASK=GDRY(:) ) -! -!* 6.2.9 find the next lower indice for the ZLBDAG and for the ZLBDAR -! in the geometrical set of (Lbda_g,Lbda_r) couplet use to -! tabulate the RDRYG-kernel -! - ZVEC1(1:IGDRY) = MAX( 1.00001, MIN( FLOAT(NDRYLBDAG)-0.00001, & - XDRYINTP1G * LOG( ZVEC1(1:IGDRY) ) + XDRYINTP2G ) ) - IVEC1(1:IGDRY) = INT( ZVEC1(1:IGDRY) ) - ZVEC1(1:IGDRY) = ZVEC1(1:IGDRY) - FLOAT( IVEC1(1:IGDRY) ) -! - ZVEC2(1:IGDRY) = MAX( 1.00001, MIN( FLOAT(NDRYLBDAR)-0.00001, & - XDRYINTP1R * LOG( ZVEC2(1:IGDRY) ) + XDRYINTP2R ) ) - IVEC2(1:IGDRY) = INT( ZVEC2(1:IGDRY) ) - ZVEC2(1:IGDRY) = ZVEC2(1:IGDRY) - FLOAT( IVEC2(1:IGDRY) ) -! -!* 6.2.10 perform the bilinear interpolation of the normalized -! RDRYG-kernel -! - DO JJ = 1,IGDRY - ZVEC3(JJ) = ( XKER_RDRYG(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ) & - - XKER_RDRYG(IVEC1(JJ)+1,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & - * ZVEC1(JJ) & - - ( XKER_RDRYG(IVEC1(JJ) ,IVEC2(JJ)+1)* ZVEC2(JJ) & - - XKER_RDRYG(IVEC1(JJ) ,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & - * (ZVEC1(JJ) - 1.0) - END DO - ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GDRY,FIELD=0.0 ) -! - WHERE( GDRY(:) ) - ZZW1(:,4) = MIN( ZRRS(:),XFRDRYG*ZZW(:) & ! RRDRYG - *( ZLBDAR(:)**(-4) )*( ZLBDAG(:)**XCXG ) & - *( ZRHODREF(:)**(-XCEXVT-1.) ) & - *( XLBRDRYG1/( ZLBDAG(:)**2 ) + & - XLBRDRYG2/( ZLBDAG(:) * ZLBDAR(:) ) + & - XLBRDRYG3/( ZLBDAR(:)**2) ) ) - END WHERE - DEALLOCATE(IVEC2) - DEALLOCATE(IVEC1) - DEALLOCATE(ZVEC3) - DEALLOCATE(ZVEC2) - DEALLOCATE(ZVEC1) - END IF -! - ZRDRYG(:) = ZZW1(:,1) + ZZW1(:,2) + ZZW1(:,3) + ZZW1(:,4) - DEALLOCATE(GDRY) -! -!* 6.3 compute the Wet growth case -! - ZZW(:) = 0.0 - ZRWETG(:) = 0.0 - WHERE( ZRGT(:)>XRTMIN(6) ) - ZZW1(:,5) = MIN( ZRIS(:), & - ZZW1(:,2) / (XCOLIG*EXP(XCOLEXIG*(ZZT(:)-XTT)) ) ) ! RIWETG - ZZW1(:,6) = MIN( ZRSS(:), & - ZZW1(:,3) / (XCOLSG*EXP(XCOLEXSG*(ZZT(:)-XTT)) ) ) ! RSWETG -! - ZZW(:) = ZRVT(:)*ZPRES(:)/((XMV/XMD)+ZRVT(:)) ! Vapor pressure - ZZW(:) = ZKA(:)*(XTT-ZZT(:)) + & - ( ZDV(:)*(XLVTT + ( XCPV - XCL ) * ( ZZT(:) - XTT )) & - *(XESTT-ZZW(:))/(XRV*ZZT(:)) ) -! -! compute RWETG -! - ZRWETG(:)=MAX( 0.0, & - ( ZZW(:) * ( X0DEPG* ZLBDAG(:)**XEX0DEPG + & - X1DEPG*ZCJ(:)*ZLBDAG(:)**XEX1DEPG ) + & - ( ZZW1(:,5)+ZZW1(:,6) ) * & - ( ZRHODREF(:)*(XLMTT+(XCI-XCL)*(XTT-ZZT(:))) ) ) / & - ( ZRHODREF(:)*(XLMTT-XCL*(XTT-ZZT(:))) ) ) - END WHERE -! -!* 6.4 Select Wet or Dry case -! - ZZW(:) = 0.0 - IF ( KRR == 7 ) THEN - WHERE( ZRGT(:)>XRTMIN(6) .AND. ZZT(:)<XTT & - .AND. & ! Wet - ZRDRYG(:)>=ZRWETG(:) .AND. ZRWETG(:)>0.0 ) ! case - ZZW(:) = ZRWETG(:) - ZZW1(:,5) - ZZW1(:,6) ! RCWETG+RRWETG -! -! limitation of the available rainwater mixing ratio (RRWETH < RRS !) -! - ZZW1(:,7) = MAX( 0.0,MIN( ZZW(:),ZRRS(:)+ZZW1(:,1) ) ) - ZUSW(:) = ZZW1(:,7) / ZZW(:) - ZZW1(:,5) = ZZW1(:,5)*ZUSW(:) - ZZW1(:,6) = ZZW1(:,6)*ZUSW(:) - ZRWETG(:) = ZZW1(:,7) + ZZW1(:,5) + ZZW1(:,6) -! - ZRCS(:) = ZRCS(:) - ZZW1(:,1) - ZRIS(:) = ZRIS(:) - ZZW1(:,5) - ZRSS(:) = ZRSS(:) - ZZW1(:,6) -! -! assume a linear percent of conversion of graupel into hail -! - ZRGS(:) = ZRGS(:) + ZRWETG(:) ! Wet growth - ZZW(:) = ZRGS(:)*ZRDRYG(:)/(ZRWETG(:)+ZRDRYG(:)) ! and - ZRGS(:) = ZRGS(:) - ZZW(:) ! partial conversion - ZRHS(:) = ZRHS(:) + ZZW(:) ! of the graupel into hail -! - ZRRS(:) = MAX( 0.0,ZRRS(:) - ZZW1(:,7) + ZZW1(:,1) ) - ZTHS(:) = ZTHS(:) + ZZW1(:,7)*(ZLSFACT(:)-ZLVFACT(:)) - ! f(L_f*(RCWETG+RRWETG)) - END WHERE - ELSE IF( KRR == 6 ) THEN - WHERE( ZRGT(:)>XRTMIN(6) .AND. ZZT(:)<XTT & - .AND. & ! Wet - ZRDRYG(:)>=ZRWETG(:) .AND. ZRWETG(:)>0.0 ) ! case - ZZW(:) = ZRWETG(:) - ZRCS(:) = ZRCS(:) - ZZW1(:,1) - ZRIS(:) = ZRIS(:) - ZZW1(:,5) - ZRSS(:) = ZRSS(:) - ZZW1(:,6) - ZRGS(:) = ZRGS(:) + ZZW(:) -! - ZRRS(:) = ZRRS(:) - ZZW(:) + ZZW1(:,5) + ZZW1(:,6) + ZZW1(:,1) - ZTHS(:) = ZTHS(:) + (ZZW(:)-ZZW1(:,5)-ZZW1(:,6))*(ZLSFACT(:)-ZLVFACT(:)) - ! f(L_f*(RCWETG+RRWETG)) - END WHERE - END IF - IF (LBUDGET_TH) CALL BUDGET ( & - UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'WETG_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET ( & - UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'WETG_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET ( & - UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'WETG_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET ( & - UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'WETG_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET ( & - UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'WETG_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET ( & - UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'WETG_BU_RRG') - IF ( KRR == 7 ) THEN - IF (LBUDGET_RH) CALL BUDGET ( & - UNPACK(ZRHS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 12,'WETG_BU_RRH') - END IF - -! - WHERE( ZRGT(:)>XRTMIN(6) .AND. ZZT(:)<XTT & - .AND. & - ZRDRYG(:)<ZRWETG(:) .AND. ZRDRYG(:)>0.0 ) ! Dry - ZRCS(:) = ZRCS(:) - ZZW1(:,1) - ZRIS(:) = ZRIS(:) - ZZW1(:,2) - ZRSS(:) = ZRSS(:) - ZZW1(:,3) - ZRRS(:) = ZRRS(:) - ZZW1(:,4) - ZRGS(:) = ZRGS(:) + ZRDRYG(:) - ZTHS(:) = ZTHS(:) + (ZZW1(:,1)+ZZW1(:,4))*(ZLSFACT(:)-ZLVFACT(:)) ! - ! f(L_f*(RCDRYG+RRDRYG)) - END WHERE - IF (LBUDGET_TH) CALL BUDGET ( & - UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'DRYG_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET ( & - UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'DRYG_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET ( & - UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'DRYG_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET ( & - UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'DRYG_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET ( & - UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'DRYG_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET ( & - UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'DRYG_BU_RRG') -! -! WHERE ( ZZT(:) > XTT ) ! RSWETG case only -! ZRSS(:) = ZRSS(:) - ZZW1(:,6) -! ZRGS(:) = ZRGS(:) + ZZW1(:,6) -! END WHERE -! -!* 6.5 Melting of the graupeln -! - ZZW(:) = 0.0 - WHERE( (ZRGT(:)>XRTMIN(6)) .AND. (ZRGS(:)>0.0) .AND. (ZZT(:)>XTT) ) - ZZW(:) = ZRVT(:)*ZPRES(:)/((XMV/XMD)+ZRVT(:)) ! Vapor pressure - ZZW(:) = ZKA(:)*(XTT-ZZT(:)) + & - ( ZDV(:)*(XLVTT + ( XCPV - XCL ) * ( ZZT(:) - XTT )) & - *(XESTT-ZZW(:))/(XRV*ZZT(:)) ) -! -! compute RGMLTR -! - ZZW(:) = MIN( ZRGS(:), MAX( 0.0,( -ZZW(:) * & - ( X0DEPG* ZLBDAG(:)**XEX0DEPG + & - X1DEPG*ZCJ(:)*ZLBDAG(:)**XEX1DEPG ) - & - ( ZZW1(:,1)+ZZW1(:,4) ) * & - ( ZRHODREF(:)*XCL*(XTT-ZZT(:))) ) / & - ( ZRHODREF(:)*XLMTT ) ) ) - ZRRS(:) = ZRRS(:) + ZZW(:) - ZRGS(:) = ZRGS(:) - ZZW(:) - ZTHS(:) = ZTHS(:) - ZZW(:)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(-RGMLTR)) - END WHERE - IF (LBUDGET_TH) CALL BUDGET ( & - UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'GMLT_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET ( & - UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'GMLT_BU_RRR') - IF (LBUDGET_RG) CALL BUDGET ( & - UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'GMLT_BU_RRG') -! - END SUBROUTINE RAIN_ICE_FAST_RG -! -!------------------------------------------------------------------------------- -! -! - SUBROUTINE RAIN_ICE_FAST_RH -! -!* 0. DECLARATIONS -! ------------ -! -IMPLICIT NONE -! -!------------------------------------------------------------------------------- -! - ALLOCATE(GHAIL(IMICRO)) - GHAIL(:) = ZRHT(:)>XRTMIN(7) - IHAIL = COUNT(GHAIL(:)) -! - IF( IHAIL>0 ) THEN -! -!* 7.2 compute the Wet growth of hail -! - WHERE ( GHAIL(:) ) - ZLBDAH(:) = XLBH*( ZRHODREF(:)*MAX( ZRHT(:),XRTMIN(7) ) )**XLBEXH - END WHERE -! - ZZW1(:,:) = 0.0 - WHERE( GHAIL(:) .AND. ((ZRCT(:)>XRTMIN(2) .AND. ZRCS(:)>0.0)) ) - ZZW(:) = ZLBDAH(:)**(XCXH-XDH-2.0) * ZRHODREF(:)**(-XCEXVT) - ZZW1(:,1) = MIN( ZRCS(:),XFWETH * ZRCT(:) * ZZW(:) ) ! RCWETH - END WHERE - WHERE( GHAIL(:) .AND. ((ZRIT(:)>XRTMIN(4) .AND. ZRIS(:)>0.0)) ) - ZZW(:) = ZLBDAH(:)**(XCXH-XDH-2.0) * ZRHODREF(:)**(-XCEXVT) - ZZW1(:,2) = MIN( ZRIS(:),XFWETH * ZRIT(:) * ZZW(:) ) ! RIWETH - END WHERE -! -!* 7.2.1 accretion of aggregates on the hailstones -! - ALLOCATE(GWET(IMICRO)) - GWET(:) = GHAIL(:) .AND. (ZRST(:)>XRTMIN(5) .AND. ZRSS(:)>0.0) - IGWET = COUNT( GWET(:) ) -! - IF( IGWET>0 ) THEN -! -!* 7.2.2 allocations -! - ALLOCATE(ZVEC1(IGWET)) - ALLOCATE(ZVEC2(IGWET)) - ALLOCATE(ZVEC3(IGWET)) - ALLOCATE(IVEC1(IGWET)) - ALLOCATE(IVEC2(IGWET)) -! -!* 7.2.3 select the (ZLBDAH,ZLBDAS) couplet -! - ZVEC1(:) = PACK( ZLBDAH(:),MASK=GWET(:) ) - ZVEC2(:) = PACK( ZLBDAS(:),MASK=GWET(:) ) -! -!* 7.2.4 find the next lower indice for the ZLBDAG and for the ZLBDAS -! in the geometrical set of (Lbda_h,Lbda_s) couplet use to -! tabulate the SWETH-kernel -! - ZVEC1(1:IGWET) = MAX( 1.00001, MIN( FLOAT(NWETLBDAH)-0.00001, & - XWETINTP1H * LOG( ZVEC1(1:IGWET) ) + XWETINTP2H ) ) - IVEC1(1:IGWET) = INT( ZVEC1(1:IGWET) ) - ZVEC1(1:IGWET) = ZVEC1(1:IGWET) - FLOAT( IVEC1(1:IGWET) ) -! - ZVEC2(1:IGWET) = MAX( 1.00001, MIN( FLOAT(NWETLBDAS)-0.00001, & - XWETINTP1S * LOG( ZVEC2(1:IGWET) ) + XWETINTP2S ) ) - IVEC2(1:IGWET) = INT( ZVEC2(1:IGWET) ) - ZVEC2(1:IGWET) = ZVEC2(1:IGWET) - FLOAT( IVEC2(1:IGWET) ) -! -!* 7.2.5 perform the bilinear interpolation of the normalized -! SWETH-kernel -! - DO JJ = 1,IGWET - ZVEC3(JJ) = ( XKER_SWETH(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ) & - - XKER_SWETH(IVEC1(JJ)+1,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & - * ZVEC1(JJ) & - - ( XKER_SWETH(IVEC1(JJ) ,IVEC2(JJ)+1)* ZVEC2(JJ) & - - XKER_SWETH(IVEC1(JJ) ,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & - * (ZVEC1(JJ) - 1.0) - END DO - ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GWET,FIELD=0.0 ) -! - WHERE( GWET(:) ) - ZZW1(:,3) = MIN( ZRSS(:),XFSWETH*ZZW(:) & ! RSWETH - *( ZLBDAS(:)**(XCXS-XBS) )*( ZLBDAH(:)**XCXH ) & - *( ZRHODREF(:)**(-XCEXVT-1.) ) & - *( XLBSWETH1/( ZLBDAH(:)**2 ) + & - XLBSWETH2/( ZLBDAH(:) * ZLBDAS(:) ) + & - XLBSWETH3/( ZLBDAS(:)**2) ) ) - END WHERE - DEALLOCATE(IVEC2) - DEALLOCATE(IVEC1) - DEALLOCATE(ZVEC3) - DEALLOCATE(ZVEC2) - DEALLOCATE(ZVEC1) - END IF -! -!* 7.2.6 accretion of graupeln on the hailstones -! - GWET(:) = GHAIL(:) .AND. (ZRGT(:)>XRTMIN(6) .AND. ZRGS(:)>0.0) - IGWET = COUNT( GWET(:) ) -! - IF( IGWET>0 ) THEN -! -!* 7.2.7 allocations -! - ALLOCATE(ZVEC1(IGWET)) - ALLOCATE(ZVEC2(IGWET)) - ALLOCATE(ZVEC3(IGWET)) - ALLOCATE(IVEC1(IGWET)) - ALLOCATE(IVEC2(IGWET)) -! -!* 7.2.8 select the (ZLBDAH,ZLBDAG) couplet -! - ZVEC1(:) = PACK( ZLBDAH(:),MASK=GWET(:) ) - ZVEC2(:) = PACK( ZLBDAG(:),MASK=GWET(:) ) -! -!* 7.2.9 find the next lower indice for the ZLBDAH and for the ZLBDAG -! in the geometrical set of (Lbda_h,Lbda_g) couplet use to -! tabulate the GWETH-kernel -! - ZVEC1(1:IGWET) = MAX( 1.00001, MIN( FLOAT(NWETLBDAG)-0.00001, & - XWETINTP1H * LOG( ZVEC1(1:IGWET) ) + XWETINTP2H ) ) - IVEC1(1:IGWET) = INT( ZVEC1(1:IGWET) ) - ZVEC1(1:IGWET) = ZVEC1(1:IGWET) - FLOAT( IVEC1(1:IGWET) ) -! - ZVEC2(1:IGWET) = MAX( 1.00001, MIN( FLOAT(NWETLBDAG)-0.00001, & - XWETINTP1G * LOG( ZVEC2(1:IGWET) ) + XWETINTP2G ) ) - IVEC2(1:IGWET) = INT( ZVEC2(1:IGWET) ) - ZVEC2(1:IGWET) = ZVEC2(1:IGWET) - FLOAT( IVEC2(1:IGWET) ) -! -!* 7.2.10 perform the bilinear interpolation of the normalized -! GWETH-kernel -! - DO JJ = 1,IGWET - ZVEC3(JJ) = ( XKER_GWETH(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ) & - - XKER_GWETH(IVEC1(JJ)+1,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & - * ZVEC1(JJ) & - - ( XKER_GWETH(IVEC1(JJ) ,IVEC2(JJ)+1)* ZVEC2(JJ) & - - XKER_GWETH(IVEC1(JJ) ,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & - * (ZVEC1(JJ) - 1.0) - END DO - ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GWET,FIELD=0.0 ) -! - WHERE( GWET(:) ) - ZZW1(:,5) = MAX(MIN( ZRGS(:),XFGWETH*ZZW(:) & ! RGWETH - *( ZLBDAG(:)**(XCXG-XBG) )*( ZLBDAH(:)**XCXH ) & - *( ZRHODREF(:)**(-XCEXVT-1.) ) & - *( XLBGWETH1/( ZLBDAH(:)**2 ) + & - XLBGWETH2/( ZLBDAH(:) * ZLBDAG(:) ) + & - XLBGWETH3/( ZLBDAG(:)**2) ) ),0. ) - END WHERE - DEALLOCATE(IVEC2) - DEALLOCATE(IVEC1) - DEALLOCATE(ZVEC3) - DEALLOCATE(ZVEC2) - DEALLOCATE(ZVEC1) - END IF - DEALLOCATE(GWET) -! -!* 7.3 compute the Wet growth of hail -! - ZZW(:) = 0.0 - WHERE( GHAIL(:) .AND. ZZT(:)<XTT ) - ZZW(:) = ZRVT(:)*ZPRES(:)/((XMV/XMD)+ZRVT(:)) ! Vapor pressure - ZZW(:) = ZKA(:)*(XTT-ZZT(:)) + & - ( ZDV(:)*(XLVTT + ( XCPV - XCL ) * ( ZZT(:) - XTT )) & - *(XESTT-ZZW(:))/(XRV*ZZT(:)) ) -! -! compute RWETH -! - ZZW(:) = MAX(0., ( ZZW(:) * ( X0DEPH* ZLBDAH(:)**XEX0DEPH + & - X1DEPH*ZCJ(:)*ZLBDAH(:)**XEX1DEPH ) + & - ( ZZW1(:,2)+ZZW1(:,3)+ZZW1(:,5) ) * & - ( ZRHODREF(:)*(XLMTT+(XCI-XCL)*(XTT-ZZT(:))) ) ) / & - ( ZRHODREF(:)*(XLMTT-XCL*(XTT-ZZT(:))) ) ) -! - ZZW1(:,6) = MAX( ZZW(:) - ZZW1(:,2) - ZZW1(:,3) - ZZW1(:,5),0.) ! RCWETH+RRWETH - END WHERE - WHERE ( GHAIL(:) .AND. ZZT(:)<XTT .AND. ZZW1(:,6)/=0.) -! -! limitation of the available rainwater mixing ratio (RRWETH < RRS !) -! - ZZW1(:,4) = MAX( 0.0,MIN( ZZW1(:,6),ZRRS(:)+ZZW1(:,1) ) ) - ZUSW(:) = ZZW1(:,4) / ZZW1(:,6) - ZZW1(:,2) = ZZW1(:,2)*ZUSW(:) - ZZW1(:,3) = ZZW1(:,3)*ZUSW(:) - ZZW1(:,5) = ZZW1(:,5)*ZUSW(:) - ZZW(:) = ZZW1(:,4) + ZZW1(:,2) + ZZW1(:,3) + ZZW1(:,5) -! -!* 7.1.6 integrate the Wet growth of hail -! - ZRCS(:) = ZRCS(:) - ZZW1(:,1) - ZRIS(:) = ZRIS(:) - ZZW1(:,2) - ZRSS(:) = ZRSS(:) - ZZW1(:,3) - ZRGS(:) = ZRGS(:) - ZZW1(:,5) - ZRHS(:) = ZRHS(:) + ZZW(:) - ZRRS(:) = MAX( 0.0,ZRRS(:) - ZZW1(:,4) + ZZW1(:,1) ) - ZTHS(:) = ZTHS(:) + ZZW1(:,4)*(ZLSFACT(:)-ZLVFACT(:)) - ! f(L_f*(RCWETH+RRWETH)) - END WHERE - END IF - IF (LBUDGET_TH) CALL BUDGET ( & - UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'WETH_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET ( & - UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'WETH_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET ( & - UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'WETH_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET ( & - UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'WETH_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET ( & - UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'WETH_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET ( & - UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'WETH_BU_RRG') - IF (LBUDGET_RH) CALL BUDGET ( & - UNPACK(ZRHS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 12,'WETH_BU_RRH') -! -! -! ici LRECONVH et un flag pour autoriser une reconversion partielle de -!la grele en gresil -! -! IF( IHAIL>0 ) THEN -! -!UPG_CD -! -! -!* 7.45 Conversion of the hailstones into graupel -! -! XDUMMY6=0.01E-3 -! XDUMMY7=0.001E-3 -! WHERE( ZRHT(:)<XDUMMY6 .AND. ZRCT(:)<XDUMMY7 .AND. ZZT(:)<XTT ) -! ZZW(:) = MIN( 1.0,MAX( 0.0,1.0-(ZRCT(:)/XDUMMY7) ) ) -! -! assume a linear percent conversion rate of hail into graupel -! -! ZZW(:) = ZRHS(:)*ZZW(:) -! ZRGS(:) = ZRGS(:) + ZZW(:) ! partial conversion -! ZRHS(:) = ZRHS(:) - ZZW(:) ! of hail into graupel -! -! END WHERE -! END IF - - - - - IF( IHAIL>0 ) THEN -! -!* 7.5 Melting of the hailstones -! - ZZW(:) = 0.0 - WHERE( GHAIL(:) .AND. (ZRHS(:)>0.0) .AND. (ZZT(:)>XTT) ) - ZZW(:) = ZRVT(:)*ZPRES(:)/((XMV/XMD)+ZRVT(:)) ! Vapor pressure - ZZW(:) = ZKA(:)*(XTT-ZZT(:)) + & - ( ZDV(:)*(XLVTT + ( XCPV - XCL ) * ( ZZT(:) - XTT )) & - *(XESTT-ZZW(:))/(XRV*ZZT(:)) ) -! -! compute RHMLTR -! - ZZW(:) = MIN( ZRHS(:), MAX( 0.0,( -ZZW(:) * & - ( X0DEPH* ZLBDAH(:)**XEX0DEPH + & - X1DEPH*ZCJ(:)*ZLBDAH(:)**XEX1DEPH ) - & - ZZW1(:,6)*( ZRHODREF(:)*XCL*(XTT-ZZT(:))) ) / & - ( ZRHODREF(:)*XLMTT ) ) ) - ZRRS(:) = ZRRS(:) + ZZW(:) - ZRHS(:) = ZRHS(:) - ZZW(:) - ZTHS(:) = ZTHS(:) - ZZW(:)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(-RHMLTR)) - END WHERE - END IF - DEALLOCATE(GHAIL) - IF (LBUDGET_TH) CALL BUDGET ( & - UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'HMLT_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET ( & - UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'HMLT_BU_RRR') - IF (LBUDGET_RH) CALL BUDGET ( & - UNPACK(ZRHS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 12,'HMLT_BU_RRH') -! - END SUBROUTINE RAIN_ICE_FAST_RH -! -!------------------------------------------------------------------------------- -! -! - SUBROUTINE RAIN_ICE_FAST_RI -! -!* 0. DECLARATIONS -! ------------ -! -IMPLICIT NONE -! -!------------------------------------------------------------------------------- -! -!* 7.1 cloud ice melting -! - ZZW(:) = 0.0 - WHERE( (ZRIS(:)>0.0) .AND. (ZZT(:)>XTT) ) - ZZW(:) = ZRIS(:) - ZRCS(:) = ZRCS(:) + ZRIS(:) - ZTHS(:) = ZTHS(:) - ZRIS(:)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(-RIMLTC)) - ZRIS(:) = 0.0 - ZCIT(:) = 0.0 - END WHERE - IF (LBUDGET_TH) CALL BUDGET ( & - UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'IMLT_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET ( & - UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'IMLT_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET ( & - UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'IMLT_BU_RRI') -! -!* 7.2 Bergeron-Findeisen effect: RCBERI -! - ZZW(:) = 0.0 - WHERE( (ZRCS(:)>0.0) .AND. (ZSSI(:)>0.0) .AND. & - (ZRIT(:)>XRTMIN(4)) .AND. (ZCIT(:)>0.0) ) - ZZW(:) = MIN(1.E8,XLBI*( ZRHODREF(:)*ZRIT(:)/ZCIT(:) )**XLBEXI) ! Lbda_i - ZZW(:) = MIN( ZRCS(:),( ZSSI(:) / (ZRHODREF(:)*ZAI(:)) ) * ZCIT(:) * & - ( X0DEPI/ZZW(:) + X2DEPI*ZCJ(:)*ZCJ(:)/ZZW(:)**(XDI+2.0) ) ) - ZRCS(:) = ZRCS(:) - ZZW(:) - ZRIS(:) = ZRIS(:) + ZZW(:) - ZTHS(:) = ZTHS(:) + ZZW(:)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(RCBERI)) - END WHERE - IF (LBUDGET_TH) CALL BUDGET ( & - UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'BERFI_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET ( & - UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'BERFI_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET ( & - UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'BERFI_BU_RRI') -! - END SUBROUTINE RAIN_ICE_FAST_RI -! -SUBROUTINE RAINFR_VERT(ZPRFR, ZRR) - -IMPLICIT NONE -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: ZPRFR !Precipitation fraction -REAL, DIMENSION(:,:,:), INTENT(IN) :: ZRR !Rain field -! -!------------------------------------------------------------------------------- -INTEGER :: JI, JJ, JK -! -DO JI = IIB,IIE - DO JJ = IJB, IJE - ZPRFR(JI,JJ,IKE)=0. - DO JK=IKE-KKL, IKB, -KKL - IF (ZRR(JI,JJ,JK) .GT. XRTMIN(3)) THEN - ZPRFR(JI,JJ,JK)=MAX(ZPRFR(JI,JJ,JK),ZPRFR(JI,JJ,JK+KKL)) - IF (ZPRFR(JI,JJ,JK)==0) THEN - ZPRFR(JI,JJ,JK)=1. - END IF - ELSE - ZPRFR(JI,JJ,JK)=0. - END IF - END DO - END DO -END DO -! -! -END SUBROUTINE RAINFR_VERT -! -! -!------------------------------------------------------------------------------- -! -! - FUNCTION COUNTJV(LTAB,I1,I2,I3) RESULT(IC) -! -!* 0. DECLARATIONS -! ------------ -! -IMPLICIT NONE -! -!* 0.2 declaration of local variables -! -! -LOGICAL, DIMENSION(:,:,:) :: LTAB ! Mask -INTEGER, DIMENSION(:) :: I1,I2,I3 ! Used to replace the COUNT and PACK -INTEGER :: JI,JJ,JK,IC -! -!------------------------------------------------------------------------------- -! -IC = 0 -DO JK = 1,SIZE(LTAB,3) - DO JJ = 1,SIZE(LTAB,2) - DO JI = 1,SIZE(LTAB,1) - IF( LTAB(JI,JJ,JK) ) THEN - IC = IC +1 - I1(IC) = JI - I2(IC) = JJ - I3(IC) = JK - END IF - END DO - END DO + END DO END DO ! END FUNCTION COUNTJV - FUNCTION COUNTJV2(LTAB,I1,I2) RESULT(IC) -! -!* 0. DECLARATIONS -! ------------ -! -IMPLICIT NONE -! -!* 0.2 declaration of local variables -! -! -LOGICAL, DIMENSION(:,:) :: LTAB ! Mask -INTEGER, DIMENSION(:) :: I1,I2 ! Used to replace the COUNT and PACK -INTEGER :: JI,JJ,IC -! -!------------------------------------------------------------------------------- -! -IC = 0 -DO JJ = 1,SIZE(LTAB,2) - DO JI = 1,SIZE(LTAB,1) - IF( LTAB(JI,JJ) ) THEN - IC = IC +1 - I1(IC) = JI - I2(IC) = JJ - END IF - END DO -END DO -! -END FUNCTION COUNTJV2 ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/rain_ice_fast_rg.f90 b/src/MNH/rain_ice_fast_rg.f90 new file mode 100644 index 000000000..b83d8f3b7 --- /dev/null +++ b/src/MNH/rain_ice_fast_rg.f90 @@ -0,0 +1,420 @@ +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 25/02/2019: split rain_ice (cleaner and easier to maintain/debug) +!----------------------------------------------------------------- +MODULE MODE_RAIN_ICE_FAST_RG + + IMPLICIT NONE + + PRIVATE + + PUBLIC :: RAIN_ICE_FAST_RG + +CONTAINS + +SUBROUTINE RAIN_ICE_FAST_RG(KRR, OMICRO, PRHODREF, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, PCIT, & + PRHODJ, PPRES, PZT, PLBDAR, PLBDAS, PLBDAG, PLSFACT, PLVFACT, & + PCJ, PKA, PDV, PRHODJ3D, PTHS3D, PRCS, PRRS, PRIS, PRSS, PRGS, PRHS, PTHS, & + PUSW, PRDRYG, PRWETG) + +! +!* 0. DECLARATIONS +! ------------ +! +use MODD_BUDGET +use MODD_CST +use MODD_PARAM_ICE +USE MODD_RAIN_ICE_DESCR +USE MODD_RAIN_ICE_PARAM +! +IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! +INTEGER, INTENT(IN) :: KRR ! Number of moist variables +LOGICAL, DIMENSION(:,:,:), intent(in) :: OMICRO ! Test where to compute all processes +REAL, DIMENSION(:), intent(in) :: PRHODREF ! RHO Dry REFerence +REAL, DIMENSION(:), intent(in) :: PRVT ! Water vapor m.r. at t +REAL, DIMENSION(:), intent(in) :: PRCT ! Cloud water m.r. at t +REAL, DIMENSION(:), intent(in) :: PRRT ! Rain water m.r. at t +REAL, DIMENSION(:), intent(in) :: PRIT ! Pristine ice m.r. at t +REAL, DIMENSION(:), intent(in) :: PRST ! Snow/aggregate m.r. at t +REAL, DIMENSION(:), intent(in) :: PRGT ! Graupel m.r. at t +REAL, DIMENSION(:), intent(in) :: PCIT ! Pristine ice conc. at t +REAL, DIMENSION(:), intent(in) :: PRHODJ ! RHO times Jacobian +REAL, DIMENSION(:), intent(in) :: PPRES ! Pressure +REAL, DIMENSION(:), intent(in) :: PZT ! Temperature +REAL, DIMENSION(:), intent(in) :: PLBDAR ! Slope parameter of the raindrop distribution +REAL, DIMENSION(:), intent(in) :: PLBDAS ! Slope parameter of the aggregate distribution +REAL, DIMENSION(:), intent(in) :: PLBDAG ! Slope parameter of the graupel distribution +REAL, DIMENSION(:), intent(in) :: PLSFACT ! L_s/(Pi_ref*C_ph) +REAL, DIMENSION(:), intent(in) :: PLVFACT ! L_v/(Pi_ref*C_ph) +REAL, DIMENSION(:), intent(in) :: PCJ ! Function to compute the ventilation coefficient +REAL, DIMENSION(:), intent(in) :: PKA ! Thermal conductivity of the air +REAL, DIMENSION(:), intent(in) :: PDV ! Diffusivity of water vapor in the air +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ3D ! Dry density * Jacobian +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHS3D ! Theta source +REAL, DIMENSION(:), INTENT(INOUT) :: PRCS ! Cloud water m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRRS ! Rain water m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRIS ! Pristine ice m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRSS ! Snow/aggregate m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRGS ! Graupel m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRHS ! Hail m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PTHS ! Theta source +REAL, DIMENSION(:), intent(inout) :: PUSW ! Undersaturation over water +REAL, DIMENSION(:), intent(out) :: PRDRYG ! Dry growth rate of the graupeln +REAL, DIMENSION(:), intent(out) :: PRWETG ! Wet growth rate of the graupeln +! +!* 0.2 declaration of local variables +! +INTEGER :: IGDRY +INTEGER :: JJ +LOGICAL, DIMENSION(size(PRHODREF)) :: GDRY ! Test where to compute dry growth +INTEGER, DIMENSION(:), ALLOCATABLE :: IVEC1, IVEC2 ! Vectors of indices for + ! interpolations +REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array +REAL, DIMENSION(:), ALLOCATABLE :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for + ! interpolations +REAL, DIMENSION(size(PRHODREF),7) :: ZZW1 ! Work arrays +! +!------------------------------------------------------------------------------- +! +!* 6.1 rain contact freezing +! + ZZW1(:,3:4) = 0.0 + WHERE( (PRIT(:)>XRTMIN(4)) .AND. (PRRT(:)>XRTMIN(3)) .AND. & + (PRIS(:)>0.0) .AND. (PRRS(:)>0.0) ) + ZZW1(:,3) = MIN( PRIS(:),XICFRR * PRIT(:) & ! RICFRRG + * PLBDAR(:)**XEXICFRR & + * PRHODREF(:)**(-XCEXVT) ) + ZZW1(:,4) = MIN( PRRS(:),XRCFRI * PCIT(:) & ! RRCFRIG + * PLBDAR(:)**XEXRCFRI & + * PRHODREF(:)**(-XCEXVT-1.) ) + PRIS(:) = PRIS(:) - ZZW1(:,3) + PRRS(:) = PRRS(:) - ZZW1(:,4) + PRGS(:) = PRGS(:) + ZZW1(:,3)+ZZW1(:,4) + PTHS(:) = PTHS(:) + ZZW1(:,4)*(PLSFACT(:)-PLVFACT(:)) ! f(L_f*RRCFRIG) + END WHERE + IF (LBUDGET_TH) CALL BUDGET ( & + UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & + 4,'CFRZ_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET ( & + UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 8,'CFRZ_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET ( & + UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 9,'CFRZ_BU_RRI') + IF (LBUDGET_RG) CALL BUDGET ( & + UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 11,'CFRZ_BU_RRG') +! +!* 6.2 compute the Dry growth case +! + ZZW1(:,:) = 0.0 + WHERE( (PRGT(:)>XRTMIN(6)) .AND. ((PRCT(:)>XRTMIN(2) .AND. PRCS(:)>0.0)) ) + ZZW(:) = PLBDAG(:)**(XCXG-XDG-2.0) * PRHODREF(:)**(-XCEXVT) + ZZW1(:,1) = MIN( PRCS(:),XFCDRYG * PRCT(:) * ZZW(:) ) ! RCDRYG + END WHERE + WHERE( (PRGT(:)>XRTMIN(6)) .AND. ((PRIT(:)>XRTMIN(4) .AND. PRIS(:)>0.0)) ) + ZZW(:) = PLBDAG(:)**(XCXG-XDG-2.0) * PRHODREF(:)**(-XCEXVT) + ZZW1(:,2) = MIN( PRIS(:),XFIDRYG * EXP( XCOLEXIG*(PZT(:)-XTT) ) & + * PRIT(:) * ZZW(:) ) ! RIDRYG + END WHERE +! +!* 6.2.1 accretion of aggregates on the graupeln +! + GDRY(:) = (PRST(:)>XRTMIN(5)) .AND. (PRGT(:)>XRTMIN(6)) .AND. (PRSS(:)>0.0) + IGDRY = COUNT( GDRY(:) ) +! + IF( IGDRY>0 ) THEN +! +!* 6.2.2 allocations +! + ALLOCATE(ZVEC1(IGDRY)) + ALLOCATE(ZVEC2(IGDRY)) + ALLOCATE(ZVEC3(IGDRY)) + ALLOCATE(IVEC1(IGDRY)) + ALLOCATE(IVEC2(IGDRY)) +! +!* 6.2.3 select the (PLBDAG,PLBDAS) couplet +! + ZVEC1(:) = PACK( PLBDAG(:),MASK=GDRY(:) ) + ZVEC2(:) = PACK( PLBDAS(:),MASK=GDRY(:) ) +! +!* 6.2.4 find the next lower indice for the PLBDAG and for the PLBDAS +! in the geometrical set of (Lbda_g,Lbda_s) couplet use to +! tabulate the SDRYG-kernel +! + ZVEC1(1:IGDRY) = MAX( 1.00001, MIN( FLOAT(NDRYLBDAG)-0.00001, & + XDRYINTP1G * LOG( ZVEC1(1:IGDRY) ) + XDRYINTP2G ) ) + IVEC1(1:IGDRY) = INT( ZVEC1(1:IGDRY) ) + ZVEC1(1:IGDRY) = ZVEC1(1:IGDRY) - FLOAT( IVEC1(1:IGDRY) ) +! + ZVEC2(1:IGDRY) = MAX( 1.00001, MIN( FLOAT(NDRYLBDAS)-0.00001, & + XDRYINTP1S * LOG( ZVEC2(1:IGDRY) ) + XDRYINTP2S ) ) + IVEC2(1:IGDRY) = INT( ZVEC2(1:IGDRY) ) + ZVEC2(1:IGDRY) = ZVEC2(1:IGDRY) - FLOAT( IVEC2(1:IGDRY) ) +! +!* 6.2.5 perform the bilinear interpolation of the normalized +! SDRYG-kernel +! + DO JJ = 1,IGDRY + ZVEC3(JJ) = ( XKER_SDRYG(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ) & + - XKER_SDRYG(IVEC1(JJ)+1,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & + * ZVEC1(JJ) & + - ( XKER_SDRYG(IVEC1(JJ) ,IVEC2(JJ)+1)* ZVEC2(JJ) & + - XKER_SDRYG(IVEC1(JJ) ,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & + * (ZVEC1(JJ) - 1.0) + END DO + ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GDRY,FIELD=0.0 ) +! + WHERE( GDRY(:) ) + ZZW1(:,3) = MIN( PRSS(:),XFSDRYG*ZZW(:) & ! RSDRYG + * EXP( XCOLEXSG*(PZT(:)-XTT) ) & + *( PLBDAS(:)**(XCXS-XBS) )*( PLBDAG(:)**XCXG ) & + *( PRHODREF(:)**(-XCEXVT-1.) ) & + *( XLBSDRYG1/( PLBDAG(:)**2 ) + & + XLBSDRYG2/( PLBDAG(:) * PLBDAS(:) ) + & + XLBSDRYG3/( PLBDAS(:)**2) ) ) + END WHERE + DEALLOCATE(IVEC2) + DEALLOCATE(IVEC1) + DEALLOCATE(ZVEC3) + DEALLOCATE(ZVEC2) + DEALLOCATE(ZVEC1) + END IF +! +!* 6.2.6 accretion of raindrops on the graupeln +! + GDRY(:) = (PRRT(:)>XRTMIN(3)) .AND. (PRGT(:)>XRTMIN(6)) .AND. (PRRS(:)>0.0) + IGDRY = COUNT( GDRY(:) ) +! + IF( IGDRY>0 ) THEN +! +!* 6.2.7 allocations +! + ALLOCATE(ZVEC1(IGDRY)) + ALLOCATE(ZVEC2(IGDRY)) + ALLOCATE(ZVEC3(IGDRY)) + ALLOCATE(IVEC1(IGDRY)) + ALLOCATE(IVEC2(IGDRY)) +! +!* 6.2.8 select the (PLBDAG,PLBDAR) couplet +! + ZVEC1(:) = PACK( PLBDAG(:),MASK=GDRY(:) ) + ZVEC2(:) = PACK( PLBDAR(:),MASK=GDRY(:) ) +! +!* 6.2.9 find the next lower indice for the PLBDAG and for the PLBDAR +! in the geometrical set of (Lbda_g,Lbda_r) couplet use to +! tabulate the RDRYG-kernel +! + ZVEC1(1:IGDRY) = MAX( 1.00001, MIN( FLOAT(NDRYLBDAG)-0.00001, & + XDRYINTP1G * LOG( ZVEC1(1:IGDRY) ) + XDRYINTP2G ) ) + IVEC1(1:IGDRY) = INT( ZVEC1(1:IGDRY) ) + ZVEC1(1:IGDRY) = ZVEC1(1:IGDRY) - FLOAT( IVEC1(1:IGDRY) ) +! + ZVEC2(1:IGDRY) = MAX( 1.00001, MIN( FLOAT(NDRYLBDAR)-0.00001, & + XDRYINTP1R * LOG( ZVEC2(1:IGDRY) ) + XDRYINTP2R ) ) + IVEC2(1:IGDRY) = INT( ZVEC2(1:IGDRY) ) + ZVEC2(1:IGDRY) = ZVEC2(1:IGDRY) - FLOAT( IVEC2(1:IGDRY) ) +! +!* 6.2.10 perform the bilinear interpolation of the normalized +! RDRYG-kernel +! + DO JJ = 1,IGDRY + ZVEC3(JJ) = ( XKER_RDRYG(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ) & + - XKER_RDRYG(IVEC1(JJ)+1,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & + * ZVEC1(JJ) & + - ( XKER_RDRYG(IVEC1(JJ) ,IVEC2(JJ)+1)* ZVEC2(JJ) & + - XKER_RDRYG(IVEC1(JJ) ,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & + * (ZVEC1(JJ) - 1.0) + END DO + ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GDRY,FIELD=0.0 ) +! + WHERE( GDRY(:) ) + ZZW1(:,4) = MIN( PRRS(:),XFRDRYG*ZZW(:) & ! RRDRYG + *( PLBDAR(:)**(-4) )*( PLBDAG(:)**XCXG ) & + *( PRHODREF(:)**(-XCEXVT-1.) ) & + *( XLBRDRYG1/( PLBDAG(:)**2 ) + & + XLBRDRYG2/( PLBDAG(:) * PLBDAR(:) ) + & + XLBRDRYG3/( PLBDAR(:)**2) ) ) + END WHERE + DEALLOCATE(IVEC2) + DEALLOCATE(IVEC1) + DEALLOCATE(ZVEC3) + DEALLOCATE(ZVEC2) + DEALLOCATE(ZVEC1) + END IF +! + PRDRYG(:) = ZZW1(:,1) + ZZW1(:,2) + ZZW1(:,3) + ZZW1(:,4) +! +!* 6.3 compute the Wet growth case +! + ZZW(:) = 0.0 + PRWETG(:) = 0.0 + WHERE( PRGT(:)>XRTMIN(6) ) + ZZW1(:,5) = MIN( PRIS(:), & + ZZW1(:,2) / (XCOLIG*EXP(XCOLEXIG*(PZT(:)-XTT)) ) ) ! RIWETG + ZZW1(:,6) = MIN( PRSS(:), & + ZZW1(:,3) / (XCOLSG*EXP(XCOLEXSG*(PZT(:)-XTT)) ) ) ! RSWETG +! + ZZW(:) = PRVT(:)*PPRES(:)/((XMV/XMD)+PRVT(:)) ! Vapor pressure + ZZW(:) = PKA(:)*(XTT-PZT(:)) + & + ( PDV(:)*(XLVTT + ( XCPV - XCL ) * ( PZT(:) - XTT )) & + *(XESTT-ZZW(:))/(XRV*PZT(:)) ) +! +! compute RWETG +! + PRWETG(:)=MAX( 0.0, & + ( ZZW(:) * ( X0DEPG* PLBDAG(:)**XEX0DEPG + & + X1DEPG*PCJ(:)*PLBDAG(:)**XEX1DEPG ) + & + ( ZZW1(:,5)+ZZW1(:,6) ) * & + ( PRHODREF(:)*(XLMTT+(XCI-XCL)*(XTT-PZT(:))) ) ) / & + ( PRHODREF(:)*(XLMTT-XCL*(XTT-PZT(:))) ) ) + END WHERE +! +!* 6.4 Select Wet or Dry case +! + ZZW(:) = 0.0 + IF ( KRR == 7 ) THEN + WHERE( PRGT(:)>XRTMIN(6) .AND. PZT(:)<XTT & + .AND. & ! Wet + PRDRYG(:)>=PRWETG(:) .AND. PRWETG(:)>0.0 ) ! case + ZZW(:) = PRWETG(:) - ZZW1(:,5) - ZZW1(:,6) ! RCWETG+RRWETG +! +! limitation of the available rainwater mixing ratio (RRWETH < RRS !) +! + ZZW1(:,7) = MAX( 0.0,MIN( ZZW(:),PRRS(:)+ZZW1(:,1) ) ) + PUSW(:) = ZZW1(:,7) / ZZW(:) + ZZW1(:,5) = ZZW1(:,5)*PUSW(:) + ZZW1(:,6) = ZZW1(:,6)*PUSW(:) + PRWETG(:) = ZZW1(:,7) + ZZW1(:,5) + ZZW1(:,6) +! + PRCS(:) = PRCS(:) - ZZW1(:,1) + PRIS(:) = PRIS(:) - ZZW1(:,5) + PRSS(:) = PRSS(:) - ZZW1(:,6) +! +! assume a linear percent of conversion of graupel into hail +! + PRGS(:) = PRGS(:) + PRWETG(:) ! Wet growth + ZZW(:) = PRGS(:)*PRDRYG(:)/(PRWETG(:)+PRDRYG(:)) ! and + PRGS(:) = PRGS(:) - ZZW(:) ! partial conversion + PRHS(:) = PRHS(:) + ZZW(:) ! of the graupel into hail +! + PRRS(:) = MAX( 0.0,PRRS(:) - ZZW1(:,7) + ZZW1(:,1) ) + PTHS(:) = PTHS(:) + ZZW1(:,7)*(PLSFACT(:)-PLVFACT(:)) + ! f(L_f*(RCWETG+RRWETG)) + END WHERE + ELSE IF( KRR == 6 ) THEN + WHERE( PRGT(:)>XRTMIN(6) .AND. PZT(:)<XTT & + .AND. & ! Wet + PRDRYG(:)>=PRWETG(:) .AND. PRWETG(:)>0.0 ) ! case + ZZW(:) = PRWETG(:) + PRCS(:) = PRCS(:) - ZZW1(:,1) + PRIS(:) = PRIS(:) - ZZW1(:,5) + PRSS(:) = PRSS(:) - ZZW1(:,6) + PRGS(:) = PRGS(:) + ZZW(:) +! + PRRS(:) = PRRS(:) - ZZW(:) + ZZW1(:,5) + ZZW1(:,6) + ZZW1(:,1) + PTHS(:) = PTHS(:) + (ZZW(:)-ZZW1(:,5)-ZZW1(:,6))*(PLSFACT(:)-PLVFACT(:)) + ! f(L_f*(RCWETG+RRWETG)) + END WHERE + END IF + IF (LBUDGET_TH) CALL BUDGET ( & + UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & + 4,'WETG_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET ( & + UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 7,'WETG_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET ( & + UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 8,'WETG_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET ( & + UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 9,'WETG_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET ( & + UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 10,'WETG_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET ( & + UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 11,'WETG_BU_RRG') + IF ( KRR == 7 ) THEN + IF (LBUDGET_RH) CALL BUDGET ( & + UNPACK(PRHS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 12,'WETG_BU_RRH') + END IF + +! + WHERE( PRGT(:)>XRTMIN(6) .AND. PZT(:)<XTT & + .AND. & + PRDRYG(:)<PRWETG(:) .AND. PRDRYG(:)>0.0 ) ! Dry + PRCS(:) = PRCS(:) - ZZW1(:,1) + PRIS(:) = PRIS(:) - ZZW1(:,2) + PRSS(:) = PRSS(:) - ZZW1(:,3) + PRRS(:) = PRRS(:) - ZZW1(:,4) + PRGS(:) = PRGS(:) + PRDRYG(:) + PTHS(:) = PTHS(:) + (ZZW1(:,1)+ZZW1(:,4))*(PLSFACT(:)-PLVFACT(:)) ! + ! f(L_f*(RCDRYG+RRDRYG)) + END WHERE + IF (LBUDGET_TH) CALL BUDGET ( & + UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & + 4,'DRYG_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET ( & + UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 7,'DRYG_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET ( & + UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 8,'DRYG_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET ( & + UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 9,'DRYG_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET ( & + UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 10,'DRYG_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET ( & + UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 11,'DRYG_BU_RRG') +! +! WHERE ( PZT(:) > XTT ) ! RSWETG case only +! PRSS(:) = PRSS(:) - ZZW1(:,6) +! PRGS(:) = PRGS(:) + ZZW1(:,6) +! END WHERE +! +!* 6.5 Melting of the graupeln +! + ZZW(:) = 0.0 + WHERE( (PRGT(:)>XRTMIN(6)) .AND. (PRGS(:)>0.0) .AND. (PZT(:)>XTT) ) + ZZW(:) = PRVT(:)*PPRES(:)/((XMV/XMD)+PRVT(:)) ! Vapor pressure + ZZW(:) = PKA(:)*(XTT-PZT(:)) + & + ( PDV(:)*(XLVTT + ( XCPV - XCL ) * ( PZT(:) - XTT )) & + *(XESTT-ZZW(:))/(XRV*PZT(:)) ) +! +! compute RGMLTR +! + ZZW(:) = MIN( PRGS(:), MAX( 0.0,( -ZZW(:) * & + ( X0DEPG* PLBDAG(:)**XEX0DEPG + & + X1DEPG*PCJ(:)*PLBDAG(:)**XEX1DEPG ) - & + ( ZZW1(:,1)+ZZW1(:,4) ) * & + ( PRHODREF(:)*XCL*(XTT-PZT(:))) ) / & + ( PRHODREF(:)*XLMTT ) ) ) + PRRS(:) = PRRS(:) + ZZW(:) + PRGS(:) = PRGS(:) - ZZW(:) + PTHS(:) = PTHS(:) - ZZW(:)*(PLSFACT(:)-PLVFACT(:)) ! f(L_f*(-RGMLTR)) + END WHERE + IF (LBUDGET_TH) CALL BUDGET ( & + UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & + 4,'GMLT_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET ( & + UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 8,'GMLT_BU_RRR') + IF (LBUDGET_RG) CALL BUDGET ( & + UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 11,'GMLT_BU_RRG') +! +END SUBROUTINE RAIN_ICE_FAST_RG + +END MODULE MODE_RAIN_ICE_FAST_RG diff --git a/src/MNH/rain_ice_fast_rh.f90 b/src/MNH/rain_ice_fast_rh.f90 new file mode 100644 index 000000000..e45423c09 --- /dev/null +++ b/src/MNH/rain_ice_fast_rh.f90 @@ -0,0 +1,354 @@ +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 25/02/2019: split rain_ice (cleaner and easier to maintain/debug) +!----------------------------------------------------------------- +MODULE MODE_RAIN_ICE_FAST_RH + + IMPLICIT NONE + + PRIVATE + + PUBLIC :: RAIN_ICE_FAST_RH + +CONTAINS + +SUBROUTINE RAIN_ICE_FAST_RH(OMICRO, PRHODREF, PRVT, PRCT, PRIT, PRST, PRGT, PRHT, PRHODJ, PPRES, & + PZT, PLBDAS, PLBDAG, PLBDAH, PLSFACT, PLVFACT, PCJ, PKA, PDV, PRHODJ3D, PTHS3D, & + PRCS, PRRS, PRIS, PRSS, PRGS, PRHS, PTHS, PUSW) +! +!* 0. DECLARATIONS +! ------------ +! +use MODD_BUDGET +use MODD_CST +use MODD_PARAM_ICE +USE MODD_RAIN_ICE_DESCR +USE MODD_RAIN_ICE_PARAM +! +IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! +LOGICAL, DIMENSION(:,:,:), intent(in) :: OMICRO ! Test where to compute all processes +REAL, DIMENSION(:), intent(in) :: PRHODREF ! RHO Dry REFerence +REAL, DIMENSION(:), intent(in) :: PRVT ! Water vapor m.r. at t +REAL, DIMENSION(:), intent(in) :: PRCT ! Cloud water m.r. at t +REAL, DIMENSION(:), intent(in) :: PRIT ! Pristine ice m.r. at t +REAL, DIMENSION(:), intent(in) :: PRST ! Snow/aggregate m.r. at t +REAL, DIMENSION(:), intent(in) :: PRGT ! Graupel m.r. at t +REAL, DIMENSION(:), intent(in) :: PRHT ! Hail m.r. at t +REAL, DIMENSION(:), intent(in) :: PRHODJ ! RHO times Jacobian +REAL, DIMENSION(:), intent(in) :: PPRES ! Pressure +REAL, DIMENSION(:), intent(in) :: PZT ! Temperature +REAL, DIMENSION(:), intent(in) :: PLBDAS ! Slope parameter of the aggregate distribution +REAL, DIMENSION(:), intent(in) :: PLBDAG ! Slope parameter of the graupel distribution +REAL, DIMENSION(:), intent(inout) :: PLBDAH ! Slope parameter of the hail distribution +REAL, DIMENSION(:), intent(in) :: PLSFACT ! L_s/(Pi_ref*C_ph) +REAL, DIMENSION(:), intent(in) :: PLVFACT ! L_v/(Pi_ref*C_ph) +REAL, DIMENSION(:), intent(in) :: PCJ ! Function to compute the ventilation coefficient +REAL, DIMENSION(:), intent(in) :: PKA ! Thermal conductivity of the air +REAL, DIMENSION(:), intent(in) :: PDV ! Diffusivity of water vapor in the air +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ3D ! Dry density * Jacobian +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHS3D ! Theta source +REAL, DIMENSION(:), INTENT(INOUT) :: PRCS ! Cloud water m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRRS ! Rain water m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRIS ! Pristine ice m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRSS ! Snow/aggregate m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRGS ! Graupel m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRHS ! Hail m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PTHS ! Theta source +REAL, DIMENSION(:), intent(inout) :: PUSW ! Undersaturation over water +! +!* 0.2 declaration of local variables +! +INTEGER :: IHAIL, IGWET +INTEGER :: JJ +LOGICAL, DIMENSION(size(PRHODREF)) :: GWET ! Test where to compute wet growth +LOGICAL, DIMENSION(size(PRHODREF)) :: GHAIL ! Test where to compute hail growth +INTEGER, DIMENSION(:), ALLOCATABLE :: IVEC1, IVEC2 ! Vectors of indices for + ! interpolations +REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array +REAL, DIMENSION(:), ALLOCATABLE :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for + ! interpolations +REAL, DIMENSION(size(PRHODREF),6) :: ZZW1 ! Work arrays +! +!------------------------------------------------------------------------------- +! + GHAIL(:) = PRHT(:)>XRTMIN(7) + IHAIL = COUNT(GHAIL(:)) +! + IF( IHAIL>0 ) THEN +! +!* 7.2 compute the Wet growth of hail +! + WHERE ( GHAIL(:) ) + PLBDAH(:) = XLBH*( PRHODREF(:)*MAX( PRHT(:),XRTMIN(7) ) )**XLBEXH + END WHERE +! + ZZW1(:,:) = 0.0 + WHERE( GHAIL(:) .AND. ((PRCT(:)>XRTMIN(2) .AND. PRCS(:)>0.0)) ) + ZZW(:) = PLBDAH(:)**(XCXH-XDH-2.0) * PRHODREF(:)**(-XCEXVT) + ZZW1(:,1) = MIN( PRCS(:),XFWETH * PRCT(:) * ZZW(:) ) ! RCWETH + END WHERE + WHERE( GHAIL(:) .AND. ((PRIT(:)>XRTMIN(4) .AND. PRIS(:)>0.0)) ) + ZZW(:) = PLBDAH(:)**(XCXH-XDH-2.0) * PRHODREF(:)**(-XCEXVT) + ZZW1(:,2) = MIN( PRIS(:),XFWETH * PRIT(:) * ZZW(:) ) ! RIWETH + END WHERE +! +!* 7.2.1 accretion of aggregates on the hailstones +! + GWET(:) = GHAIL(:) .AND. (PRST(:)>XRTMIN(5) .AND. PRSS(:)>0.0) + IGWET = COUNT( GWET(:) ) +! + IF( IGWET>0 ) THEN +! +!* 7.2.2 allocations +! + ALLOCATE(ZVEC1(IGWET)) + ALLOCATE(ZVEC2(IGWET)) + ALLOCATE(ZVEC3(IGWET)) + ALLOCATE(IVEC1(IGWET)) + ALLOCATE(IVEC2(IGWET)) +! +!* 7.2.3 select the (PLBDAH,PLBDAS) couplet +! + ZVEC1(:) = PACK( PLBDAH(:),MASK=GWET(:) ) + ZVEC2(:) = PACK( PLBDAS(:),MASK=GWET(:) ) +! +!* 7.2.4 find the next lower indice for the PLBDAG and for the PLBDAS +! in the geometrical set of (Lbda_h,Lbda_s) couplet use to +! tabulate the SWETH-kernel +! + ZVEC1(1:IGWET) = MAX( 1.00001, MIN( FLOAT(NWETLBDAH)-0.00001, & + XWETINTP1H * LOG( ZVEC1(1:IGWET) ) + XWETINTP2H ) ) + IVEC1(1:IGWET) = INT( ZVEC1(1:IGWET) ) + ZVEC1(1:IGWET) = ZVEC1(1:IGWET) - FLOAT( IVEC1(1:IGWET) ) +! + ZVEC2(1:IGWET) = MAX( 1.00001, MIN( FLOAT(NWETLBDAS)-0.00001, & + XWETINTP1S * LOG( ZVEC2(1:IGWET) ) + XWETINTP2S ) ) + IVEC2(1:IGWET) = INT( ZVEC2(1:IGWET) ) + ZVEC2(1:IGWET) = ZVEC2(1:IGWET) - FLOAT( IVEC2(1:IGWET) ) +! +!* 7.2.5 perform the bilinear interpolation of the normalized +! SWETH-kernel +! + DO JJ = 1,IGWET + ZVEC3(JJ) = ( XKER_SWETH(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ) & + - XKER_SWETH(IVEC1(JJ)+1,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & + * ZVEC1(JJ) & + - ( XKER_SWETH(IVEC1(JJ) ,IVEC2(JJ)+1)* ZVEC2(JJ) & + - XKER_SWETH(IVEC1(JJ) ,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & + * (ZVEC1(JJ) - 1.0) + END DO + ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GWET,FIELD=0.0 ) +! + WHERE( GWET(:) ) + ZZW1(:,3) = MIN( PRSS(:),XFSWETH*ZZW(:) & ! RSWETH + *( PLBDAS(:)**(XCXS-XBS) )*( PLBDAH(:)**XCXH ) & + *( PRHODREF(:)**(-XCEXVT-1.) ) & + *( XLBSWETH1/( PLBDAH(:)**2 ) + & + XLBSWETH2/( PLBDAH(:) * PLBDAS(:) ) + & + XLBSWETH3/( PLBDAS(:)**2) ) ) + END WHERE + DEALLOCATE(IVEC2) + DEALLOCATE(IVEC1) + DEALLOCATE(ZVEC3) + DEALLOCATE(ZVEC2) + DEALLOCATE(ZVEC1) + END IF +! +!* 7.2.6 accretion of graupeln on the hailstones +! + GWET(:) = GHAIL(:) .AND. (PRGT(:)>XRTMIN(6) .AND. PRGS(:)>0.0) + IGWET = COUNT( GWET(:) ) +! + IF( IGWET>0 ) THEN +! +!* 7.2.7 allocations +! + ALLOCATE(ZVEC1(IGWET)) + ALLOCATE(ZVEC2(IGWET)) + ALLOCATE(ZVEC3(IGWET)) + ALLOCATE(IVEC1(IGWET)) + ALLOCATE(IVEC2(IGWET)) +! +!* 7.2.8 select the (PLBDAH,PLBDAG) couplet +! + ZVEC1(:) = PACK( PLBDAH(:),MASK=GWET(:) ) + ZVEC2(:) = PACK( PLBDAG(:),MASK=GWET(:) ) +! +!* 7.2.9 find the next lower indice for the PLBDAH and for the PLBDAG +! in the geometrical set of (Lbda_h,Lbda_g) couplet use to +! tabulate the GWETH-kernel +! + ZVEC1(1:IGWET) = MAX( 1.00001, MIN( FLOAT(NWETLBDAG)-0.00001, & + XWETINTP1H * LOG( ZVEC1(1:IGWET) ) + XWETINTP2H ) ) + IVEC1(1:IGWET) = INT( ZVEC1(1:IGWET) ) + ZVEC1(1:IGWET) = ZVEC1(1:IGWET) - FLOAT( IVEC1(1:IGWET) ) +! + ZVEC2(1:IGWET) = MAX( 1.00001, MIN( FLOAT(NWETLBDAG)-0.00001, & + XWETINTP1G * LOG( ZVEC2(1:IGWET) ) + XWETINTP2G ) ) + IVEC2(1:IGWET) = INT( ZVEC2(1:IGWET) ) + ZVEC2(1:IGWET) = ZVEC2(1:IGWET) - FLOAT( IVEC2(1:IGWET) ) +! +!* 7.2.10 perform the bilinear interpolation of the normalized +! GWETH-kernel +! + DO JJ = 1,IGWET + ZVEC3(JJ) = ( XKER_GWETH(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ) & + - XKER_GWETH(IVEC1(JJ)+1,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & + * ZVEC1(JJ) & + - ( XKER_GWETH(IVEC1(JJ) ,IVEC2(JJ)+1)* ZVEC2(JJ) & + - XKER_GWETH(IVEC1(JJ) ,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & + * (ZVEC1(JJ) - 1.0) + END DO + ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GWET,FIELD=0.0 ) +! + WHERE( GWET(:) ) + ZZW1(:,5) = MAX(MIN( PRGS(:),XFGWETH*ZZW(:) & ! RGWETH + *( PLBDAG(:)**(XCXG-XBG) )*( PLBDAH(:)**XCXH ) & + *( PRHODREF(:)**(-XCEXVT-1.) ) & + *( XLBGWETH1/( PLBDAH(:)**2 ) + & + XLBGWETH2/( PLBDAH(:) * PLBDAG(:) ) + & + XLBGWETH3/( PLBDAG(:)**2) ) ),0. ) + END WHERE + DEALLOCATE(IVEC2) + DEALLOCATE(IVEC1) + DEALLOCATE(ZVEC3) + DEALLOCATE(ZVEC2) + DEALLOCATE(ZVEC1) + END IF +! +!* 7.3 compute the Wet growth of hail +! + ZZW(:) = 0.0 + WHERE( GHAIL(:) .AND. PZT(:)<XTT ) + ZZW(:) = PRVT(:)*PPRES(:)/((XMV/XMD)+PRVT(:)) ! Vapor pressure + ZZW(:) = PKA(:)*(XTT-PZT(:)) + & + ( PDV(:)*(XLVTT + ( XCPV - XCL ) * ( PZT(:) - XTT )) & + *(XESTT-ZZW(:))/(XRV*PZT(:)) ) +! +! compute RWETH +! + ZZW(:) = MAX(0., ( ZZW(:) * ( X0DEPH* PLBDAH(:)**XEX0DEPH + & + X1DEPH*PCJ(:)*PLBDAH(:)**XEX1DEPH ) + & + ( ZZW1(:,2)+ZZW1(:,3)+ZZW1(:,5) ) * & + ( PRHODREF(:)*(XLMTT+(XCI-XCL)*(XTT-PZT(:))) ) ) / & + ( PRHODREF(:)*(XLMTT-XCL*(XTT-PZT(:))) ) ) +! + ZZW1(:,6) = MAX( ZZW(:) - ZZW1(:,2) - ZZW1(:,3) - ZZW1(:,5),0.) ! RCWETH+RRWETH + END WHERE + WHERE ( GHAIL(:) .AND. PZT(:)<XTT .AND. ZZW1(:,6)/=0.) +! +! limitation of the available rainwater mixing ratio (RRWETH < RRS !) +! + ZZW1(:,4) = MAX( 0.0,MIN( ZZW1(:,6),PRRS(:)+ZZW1(:,1) ) ) + PUSW(:) = ZZW1(:,4) / ZZW1(:,6) + ZZW1(:,2) = ZZW1(:,2)*PUSW(:) + ZZW1(:,3) = ZZW1(:,3)*PUSW(:) + ZZW1(:,5) = ZZW1(:,5)*PUSW(:) + ZZW(:) = ZZW1(:,4) + ZZW1(:,2) + ZZW1(:,3) + ZZW1(:,5) +! +!* 7.1.6 integrate the Wet growth of hail +! + PRCS(:) = PRCS(:) - ZZW1(:,1) + PRIS(:) = PRIS(:) - ZZW1(:,2) + PRSS(:) = PRSS(:) - ZZW1(:,3) + PRGS(:) = PRGS(:) - ZZW1(:,5) + PRHS(:) = PRHS(:) + ZZW(:) + PRRS(:) = MAX( 0.0,PRRS(:) - ZZW1(:,4) + ZZW1(:,1) ) + PTHS(:) = PTHS(:) + ZZW1(:,4)*(PLSFACT(:)-PLVFACT(:)) + ! f(L_f*(RCWETH+RRWETH)) + END WHERE + END IF + IF (LBUDGET_TH) CALL BUDGET ( & + UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:),& + 4,'WETH_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET ( & + UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 7,'WETH_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET ( & + UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 8,'WETH_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET ( & + UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 9,'WETH_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET ( & + UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 10,'WETH_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET ( & + UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 11,'WETH_BU_RRG') + IF (LBUDGET_RH) CALL BUDGET ( & + UNPACK(PRHS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 12,'WETH_BU_RRH') +! +! +! ici LRECONVH et un flag pour autoriser une reconversion partielle de +!la grele en gresil +! +! IF( IHAIL>0 ) THEN +! +!UPG_CD +! +! +!* 7.45 Conversion of the hailstones into graupel +! +! XDUMMY6=0.01E-3 +! XDUMMY7=0.001E-3 +! WHERE( PRHT(:)<XDUMMY6 .AND. PRCT(:)<XDUMMY7 .AND. PZT(:)<XTT ) +! ZZW(:) = MIN( 1.0,MAX( 0.0,1.0-(PRCT(:)/XDUMMY7) ) ) +! +! assume a linear percent conversion rate of hail into graupel +! +! ZZW(:) = PRHS(:)*ZZW(:) +! PRGS(:) = PRGS(:) + ZZW(:) ! partial conversion +! PRHS(:) = PRHS(:) - ZZW(:) ! of hail into graupel +! +! END WHERE +! END IF + + + + + IF( IHAIL>0 ) THEN +! +!* 7.5 Melting of the hailstones +! + ZZW(:) = 0.0 + WHERE( GHAIL(:) .AND. (PRHS(:)>0.0) .AND. (PZT(:)>XTT) ) + ZZW(:) = PRVT(:)*PPRES(:)/((XMV/XMD)+PRVT(:)) ! Vapor pressure + ZZW(:) = PKA(:)*(XTT-PZT(:)) + & + ( PDV(:)*(XLVTT + ( XCPV - XCL ) * ( PZT(:) - XTT )) & + *(XESTT-ZZW(:))/(XRV*PZT(:)) ) +! +! compute RHMLTR +! + ZZW(:) = MIN( PRHS(:), MAX( 0.0,( -ZZW(:) * & + ( X0DEPH* PLBDAH(:)**XEX0DEPH + & + X1DEPH*PCJ(:)*PLBDAH(:)**XEX1DEPH ) - & + ZZW1(:,6)*( PRHODREF(:)*XCL*(XTT-PZT(:))) ) / & + ( PRHODREF(:)*XLMTT ) ) ) + PRRS(:) = PRRS(:) + ZZW(:) + PRHS(:) = PRHS(:) - ZZW(:) + PTHS(:) = PTHS(:) - ZZW(:)*(PLSFACT(:)-PLVFACT(:)) ! f(L_f*(-RHMLTR)) + END WHERE + END IF + + IF (LBUDGET_TH) CALL BUDGET ( & + UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:),& + 4,'HMLT_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET ( & + UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 8,'HMLT_BU_RRR') + IF (LBUDGET_RH) CALL BUDGET ( & + UNPACK(PRHS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 12,'HMLT_BU_RRH') +! +END SUBROUTINE RAIN_ICE_FAST_RH + +END MODULE MODE_RAIN_ICE_FAST_RH diff --git a/src/MNH/rain_ice_fast_ri.f90 b/src/MNH/rain_ice_fast_ri.f90 new file mode 100644 index 000000000..90092fff9 --- /dev/null +++ b/src/MNH/rain_ice_fast_ri.f90 @@ -0,0 +1,101 @@ +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 25/02/2019: split rain_ice (cleaner and easier to maintain/debug) +!----------------------------------------------------------------- +MODULE MODE_RAIN_ICE_FAST_RI + + IMPLICIT NONE + + PRIVATE + + PUBLIC :: RAIN_ICE_FAST_RI + +CONTAINS + +SUBROUTINE RAIN_ICE_FAST_RI(OMICRO, PRHODREF, PRIT, PRHODJ, PZT, PSSI, PLSFACT, PLVFACT, & + PAI, PCJ, PRHODJ3D, PTHS3D, PCIT, PRCS, PRIS, PTHS) +! +!* 0. DECLARATIONS +! ------------ +! +use MODD_BUDGET +use MODD_CST +use MODD_PARAM_ICE +USE MODD_RAIN_ICE_DESCR +USE MODD_RAIN_ICE_PARAM +! +IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! +LOGICAL, DIMENSION(:,:,:), intent(in) :: OMICRO ! Test where to compute all processes +REAL, DIMENSION(:), intent(in) :: PRHODREF ! RHO Dry REFerence +REAL, DIMENSION(:), intent(in) :: PRIT ! Pristine ice m.r. at t +REAL, DIMENSION(:), intent(in) :: PRHODJ ! RHO times Jacobian +REAL, DIMENSION(:), intent(in) :: PZT ! Temperature +REAL, DIMENSION(:), intent(in) :: PSSI ! Supersaturation over ice +REAL, DIMENSION(:), intent(in) :: PLSFACT ! L_s/(Pi_ref*C_ph) +REAL, DIMENSION(:), intent(in) :: PLVFACT ! L_v/(Pi_ref*C_ph) +REAL, DIMENSION(:), intent(in) :: PAI ! Thermodynamical function +REAL, DIMENSION(:), intent(in) :: PCJ ! Function to compute the ventilation coefficient +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ3D ! Dry density * Jacobian +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHS3D ! Theta source +REAL, DIMENSION(:), intent(inout) :: PCIT ! Pristine ice conc. at t +REAL, DIMENSION(:), INTENT(INOUT) :: PRCS ! Cloud water m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRIS ! Pristine ice m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PTHS ! Theta source +! +!* 0.2 declaration of local variables +! +REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array +!------------------------------------------------------------------------------- +! +!* 7.1 cloud ice melting +! + ZZW(:) = 0.0 + WHERE( (PRIS(:)>0.0) .AND. (PZT(:)>XTT) ) + ZZW(:) = PRIS(:) + PRCS(:) = PRCS(:) + PRIS(:) + PTHS(:) = PTHS(:) - PRIS(:)*(PLSFACT(:)-PLVFACT(:)) ! f(L_f*(-RIMLTC)) + PRIS(:) = 0.0 + PCIT(:) = 0.0 + END WHERE + IF (LBUDGET_TH) CALL BUDGET ( & + UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & + 4,'IMLT_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET ( & + UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 7,'IMLT_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET ( & + UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 9,'IMLT_BU_RRI') +! +!* 7.2 Bergeron-Findeisen effect: RCBERI +! + ZZW(:) = 0.0 + WHERE( (PRCS(:)>0.0) .AND. (PSSI(:)>0.0) .AND. & + (PRIT(:)>XRTMIN(4)) .AND. (PCIT(:)>0.0) ) + ZZW(:) = MIN(1.E8,XLBI*( PRHODREF(:)*PRIT(:)/PCIT(:) )**XLBEXI) ! Lbda_i + ZZW(:) = MIN( PRCS(:),( PSSI(:) / (PRHODREF(:)*PAI(:)) ) * PCIT(:) * & + ( X0DEPI/ZZW(:) + X2DEPI*PCJ(:)*PCJ(:)/ZZW(:)**(XDI+2.0) ) ) + PRCS(:) = PRCS(:) - ZZW(:) + PRIS(:) = PRIS(:) + ZZW(:) + PTHS(:) = PTHS(:) + ZZW(:)*(PLSFACT(:)-PLVFACT(:)) ! f(L_f*(RCBERI)) + END WHERE + IF (LBUDGET_TH) CALL BUDGET ( & + UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & + 4,'BERFI_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET ( & + UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 7,'BERFI_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET ( & + UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 9,'BERFI_BU_RRI') +! +END SUBROUTINE RAIN_ICE_FAST_RI + +END MODULE MODE_RAIN_ICE_FAST_RI diff --git a/src/MNH/rain_ice_fast_rs.f90 b/src/MNH/rain_ice_fast_rs.f90 new file mode 100644 index 000000000..ae822783d --- /dev/null +++ b/src/MNH/rain_ice_fast_rs.f90 @@ -0,0 +1,325 @@ +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 25/02/2019: split rain_ice (cleaner and easier to maintain/debug) +!----------------------------------------------------------------- +MODULE MODE_RAIN_ICE_FAST_RS + + IMPLICIT NONE + + PRIVATE + + PUBLIC :: RAIN_ICE_FAST_RS + +CONTAINS + +SUBROUTINE RAIN_ICE_FAST_RS(PTSTEP, OMICRO, PRHODREF, PRVT, PRCT, PRRT, PRST, PRHODJ, PPRES, PZT, & + PLBDAR, PLBDAS, PLSFACT, PLVFACT, PCJ, PKA, PDV, PRHODJ3D, PTHS3D, & + PRCS, PRRS, PRSS, PRGS, PTHS) +! +!* 0. DECLARATIONS +! ------------ +! +use MODD_BUDGET +use MODD_CST +use MODD_PARAM_ICE +USE MODD_RAIN_ICE_DESCR +USE MODD_RAIN_ICE_PARAM +! +IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! +REAL, intent(in) :: PTSTEP ! Double Time step + ! (single if cold start) +LOGICAL, DIMENSION(:,:,:), intent(in) :: OMICRO ! Test where to compute all processes +REAL, DIMENSION(:), intent(in) :: PRHODREF ! RHO Dry REFerence +REAL, DIMENSION(:), intent(in) :: PRVT ! Water vapor m.r. at t +REAL, DIMENSION(:), intent(in) :: PRCT ! Cloud water m.r. at t +REAL, DIMENSION(:), intent(in) :: PRRT ! Rain water m.r. at t +REAL, DIMENSION(:), intent(in) :: PRST ! Snow/aggregate m.r. at t +REAL, DIMENSION(:), intent(in) :: PRHODJ ! RHO times Jacobian +REAL, DIMENSION(:), intent(in) :: PPRES ! Pressure +REAL, DIMENSION(:), intent(in) :: PZT ! Temperature +REAL, DIMENSION(:), intent(in) :: PLBDAR ! Slope parameter of the raindrop distribution +REAL, DIMENSION(:), intent(in) :: PLBDAS ! Slope parameter of the aggregate distribution +REAL, DIMENSION(:), intent(in) :: PLSFACT ! L_s/(Pi_ref*C_ph) +REAL, DIMENSION(:), intent(in) :: PLVFACT ! L_v/(Pi_ref*C_ph) +REAL, DIMENSION(:), intent(in) :: PCJ ! Function to compute the ventilation coefficient +REAL, DIMENSION(:), intent(in) :: PKA ! Thermal conductivity of the air +REAL, DIMENSION(:), intent(in) :: PDV ! Diffusivity of water vapor in the air +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ3D ! Dry density * Jacobian +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHS3D ! Theta source +REAL, DIMENSION(:), INTENT(INOUT) :: PRCS ! Cloud water m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRRS ! Rain water m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRSS ! Snow/aggregate m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRGS ! Graupel m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PTHS ! Theta source +! +!* 0.2 declaration of local variables +! +INTEGER :: IGRIM, IGACC +INTEGER :: JJ +LOGICAL, DIMENSION(size(PRHODREF)) :: GRIM ! Test where to compute riming +LOGICAL, DIMENSION(size(PRHODREF)) :: GACC ! Test where to compute accretion +INTEGER, DIMENSION(:), ALLOCATABLE :: IVEC1, IVEC2 ! Vectors of indices for + ! interpolations +REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array +REAL, DIMENSION(size(PRHODREF),4) :: ZZW1 ! Work arrays +REAL, DIMENSION(:), ALLOCATABLE :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for + ! interpolations +!------------------------------------------------------------------------------- +! +!* 5.1 cloud droplet riming of the aggregates +! + ZZW1(:,:) = 0.0 +! +! GRIM(:) = (PRCT(:)>0.0) .AND. (PRST(:)>0.0) .AND. & + GRIM(:) = (PRCT(:)>XRTMIN(2)) .AND. (PRST(:)>XRTMIN(5)) .AND. & + (PRCS(:)>0.0) .AND. (PZT(:)<XTT) + IGRIM = COUNT( GRIM(:) ) +! + IF( IGRIM>0 ) THEN +! +! 5.1.0 allocations +! + ALLOCATE(ZVEC1(IGRIM)) + ALLOCATE(ZVEC2(IGRIM)) + ALLOCATE(IVEC2(IGRIM)) +! +! 5.1.1 select the PLBDAS +! + ZVEC1(:) = PACK( PLBDAS(:),MASK=GRIM(:) ) +! +! 5.1.2 find the next lower indice for the PLBDAS in the geometrical +! set of Lbda_s used to tabulate some moments of the incomplete +! gamma function +! + ZVEC2(1:IGRIM) = MAX( 1.00001, MIN( FLOAT(NGAMINC)-0.00001, & + XRIMINTP1 * LOG( ZVEC1(1:IGRIM) ) + XRIMINTP2 ) ) + IVEC2(1:IGRIM) = INT( ZVEC2(1:IGRIM) ) + ZVEC2(1:IGRIM) = ZVEC2(1:IGRIM) - FLOAT( IVEC2(1:IGRIM) ) +! +! 5.1.3 perform the linear interpolation of the normalized +! "2+XDS"-moment of the incomplete gamma function +! + ZVEC1(1:IGRIM) = XGAMINC_RIM1( IVEC2(1:IGRIM)+1 )* ZVEC2(1:IGRIM) & + - XGAMINC_RIM1( IVEC2(1:IGRIM) )*(ZVEC2(1:IGRIM) - 1.0) + ZZW(:) = UNPACK( VECTOR=ZVEC1(:),MASK=GRIM,FIELD=0.0 ) +! +! 5.1.4 riming of the small sized aggregates +! + WHERE ( GRIM(:) ) + ZZW1(:,1) = MIN( PRCS(:), & + XCRIMSS * ZZW(:) * PRCT(:) & ! RCRIMSS + * PLBDAS(:)**XEXCRIMSS & + * PRHODREF(:)**(-XCEXVT) ) + PRCS(:) = PRCS(:) - ZZW1(:,1) + PRSS(:) = PRSS(:) + ZZW1(:,1) + PTHS(:) = PTHS(:) + ZZW1(:,1)*(PLSFACT(:)-PLVFACT(:)) ! f(L_f*(RCRIMSS)) + END WHERE +! +! 5.1.5 perform the linear interpolation of the normalized +! "XBS"-moment of the incomplete gamma function +! + ZVEC1(1:IGRIM) = XGAMINC_RIM2( IVEC2(1:IGRIM)+1 )* ZVEC2(1:IGRIM) & + - XGAMINC_RIM2( IVEC2(1:IGRIM) )*(ZVEC2(1:IGRIM) - 1.0) + ZZW(:) = UNPACK( VECTOR=ZVEC1(:),MASK=GRIM,FIELD=0.0 ) +! +! 5.1.6 riming-conversion of the large sized aggregates into graupeln +! +! + WHERE ( GRIM(:) .AND. (PRSS(:)>0.0) ) + ZZW1(:,2) = MIN( PRCS(:), & + XCRIMSG * PRCT(:) & ! RCRIMSG + * PLBDAS(:)**XEXCRIMSG & + * PRHODREF(:)**(-XCEXVT) & + - ZZW1(:,1) ) + ZZW1(:,3) = MIN( PRSS(:), & + XSRIMCG * PLBDAS(:)**XEXSRIMCG & ! RSRIMCG + * (1.0 - ZZW(:) )/(PTSTEP*PRHODREF(:)) ) + PRCS(:) = PRCS(:) - ZZW1(:,2) + PRSS(:) = PRSS(:) - ZZW1(:,3) + PRGS(:) = PRGS(:) + ZZW1(:,2)+ZZW1(:,3) + PTHS(:) = PTHS(:) + ZZW1(:,2)*(PLSFACT(:)-PLVFACT(:)) ! f(L_f*(RCRIMSG)) + END WHERE + DEALLOCATE(IVEC2) + DEALLOCATE(ZVEC2) + DEALLOCATE(ZVEC1) + END IF + IF (LBUDGET_TH) CALL BUDGET ( & + UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & + 4,'RIM_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET ( & + UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 7,'RIM_BU_RRC') + IF (LBUDGET_RS) CALL BUDGET ( & + UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 10,'RIM_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET ( & + UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 11,'RIM_BU_RRG') +! +!* 5.2 rain accretion onto the aggregates +! + ZZW1(:,2:3) = 0.0 + GACC(:) = (PRRT(:)>XRTMIN(3)) .AND. (PRST(:)>XRTMIN(5)) .AND. & + (PRRS(:)>0.0) .AND. (PZT(:)<XTT) + IGACC = COUNT( GACC(:) ) +! + IF( IGACC>0 ) THEN +! +! 5.2.0 allocations +! + ALLOCATE(ZVEC1(IGACC)) + ALLOCATE(ZVEC2(IGACC)) + ALLOCATE(ZVEC3(IGACC)) + ALLOCATE(IVEC1(IGACC)) + ALLOCATE(IVEC2(IGACC)) +! +! 5.2.1 select the (PLBDAS,PLBDAR) couplet +! + ZVEC1(:) = PACK( PLBDAS(:),MASK=GACC(:) ) + ZVEC2(:) = PACK( PLBDAR(:),MASK=GACC(:) ) +! +! 5.2.2 find the next lower indice for the PLBDAS and for the PLBDAR +! in the geometrical set of (Lbda_s,Lbda_r) couplet use to +! tabulate the RACCSS-kernel +! + ZVEC1(1:IGACC) = MAX( 1.00001, MIN( FLOAT(NACCLBDAS)-0.00001, & + XACCINTP1S * LOG( ZVEC1(1:IGACC) ) + XACCINTP2S ) ) + IVEC1(1:IGACC) = INT( ZVEC1(1:IGACC) ) + ZVEC1(1:IGACC) = ZVEC1(1:IGACC) - FLOAT( IVEC1(1:IGACC) ) +! + ZVEC2(1:IGACC) = MAX( 1.00001, MIN( FLOAT(NACCLBDAR)-0.00001, & + XACCINTP1R * LOG( ZVEC2(1:IGACC) ) + XACCINTP2R ) ) + IVEC2(1:IGACC) = INT( ZVEC2(1:IGACC) ) + ZVEC2(1:IGACC) = ZVEC2(1:IGACC) - FLOAT( IVEC2(1:IGACC) ) +! +! 5.2.3 perform the bilinear interpolation of the normalized +! RACCSS-kernel +! + DO JJ = 1,IGACC + ZVEC3(JJ) = ( XKER_RACCSS(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ) & + - XKER_RACCSS(IVEC1(JJ)+1,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & + * ZVEC1(JJ) & + - ( XKER_RACCSS(IVEC1(JJ) ,IVEC2(JJ)+1)* ZVEC2(JJ) & + - XKER_RACCSS(IVEC1(JJ) ,IVEC2(JJ) )*(ZVEC2(JJ) - 1.0) ) & + * (ZVEC1(JJ) - 1.0) + END DO + ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GACC,FIELD=0.0 ) +! +! 5.2.4 raindrop accretion on the small sized aggregates +! + WHERE ( GACC(:) ) + ZZW1(:,2) = & !! coef of RRACCS + XFRACCSS*( PLBDAS(:)**XCXS )*( PRHODREF(:)**(-XCEXVT-1.) ) & + *( XLBRACCS1/((PLBDAS(:)**2) ) + & + XLBRACCS2/( PLBDAS(:) * PLBDAR(:) ) + & + XLBRACCS3/( (PLBDAR(:)**2)) )/PLBDAR(:)**4 + ZZW1(:,4) = MIN( PRRS(:),ZZW1(:,2)*ZZW(:) ) ! RRACCSS + PRRS(:) = PRRS(:) - ZZW1(:,4) + PRSS(:) = PRSS(:) + ZZW1(:,4) + PTHS(:) = PTHS(:) + ZZW1(:,4)*(PLSFACT(:)-PLVFACT(:)) ! f(L_f*(RRACCSS)) + END WHERE +! +! 5.2.4b perform the bilinear interpolation of the normalized +! RACCS-kernel +! + DO JJ = 1,IGACC + ZVEC3(JJ) = ( XKER_RACCS(IVEC2(JJ)+1,IVEC1(JJ)+1)* ZVEC1(JJ) & + - XKER_RACCS(IVEC2(JJ)+1,IVEC1(JJ) )*(ZVEC1(JJ) - 1.0) ) & + * ZVEC2(JJ) & + - ( XKER_RACCS(IVEC2(JJ) ,IVEC1(JJ)+1)* ZVEC1(JJ) & + - XKER_RACCS(IVEC2(JJ) ,IVEC1(JJ) )*(ZVEC1(JJ) - 1.0) ) & + * (ZVEC2(JJ) - 1.0) + END DO + ZZW1(:,2) = ZZW1(:,2)*UNPACK( VECTOR=ZVEC3(:),MASK=GACC(:),FIELD=0.0 ) + !! RRACCS! +! 5.2.5 perform the bilinear interpolation of the normalized +! SACCRG-kernel +! + DO JJ = 1,IGACC + ZVEC3(JJ) = ( XKER_SACCRG(IVEC2(JJ)+1,IVEC1(JJ)+1)* ZVEC1(JJ) & + - XKER_SACCRG(IVEC2(JJ)+1,IVEC1(JJ) )*(ZVEC1(JJ) - 1.0) ) & + * ZVEC2(JJ) & + - ( XKER_SACCRG(IVEC2(JJ) ,IVEC1(JJ)+1)* ZVEC1(JJ) & + - XKER_SACCRG(IVEC2(JJ) ,IVEC1(JJ) )*(ZVEC1(JJ) - 1.0) ) & + * (ZVEC2(JJ) - 1.0) + END DO + ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GACC,FIELD=0.0 ) +! +! 5.2.6 raindrop accretion-conversion of the large sized aggregates +! into graupeln +! + WHERE ( GACC(:) .AND. (PRSS(:)>0.0) ) + ZZW1(:,2) = MAX( MIN( PRRS(:),ZZW1(:,2)-ZZW1(:,4) ),0.0 ) ! RRACCSG + END WHERE + WHERE ( GACC(:) .AND. (PRSS(:)>0.0) .AND. ZZW1(:,2)>0.0 ) + ZZW1(:,3) = MIN( PRSS(:),XFSACCRG*ZZW(:)* & ! RSACCRG + ( PLBDAS(:)**(XCXS-XBS) )*( PRHODREF(:)**(-XCEXVT-1.) ) & + *( XLBSACCR1/((PLBDAR(:)**2) ) + & + XLBSACCR2/( PLBDAR(:) * PLBDAS(:) ) + & + XLBSACCR3/( (PLBDAS(:)**2)) )/PLBDAR(:) ) + PRRS(:) = PRRS(:) - ZZW1(:,2) + PRSS(:) = PRSS(:) - ZZW1(:,3) + PRGS(:) = PRGS(:) + ZZW1(:,2)+ZZW1(:,3) + PTHS(:) = PTHS(:) + ZZW1(:,2)*(PLSFACT(:)-PLVFACT(:)) ! + ! f(L_f*(RRACCSG)) + END WHERE + DEALLOCATE(IVEC2) + DEALLOCATE(IVEC1) + DEALLOCATE(ZVEC3) + DEALLOCATE(ZVEC2) + DEALLOCATE(ZVEC1) + END IF + IF (LBUDGET_TH) CALL BUDGET ( & + UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & + 4,'ACC_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET ( & + UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 8,'ACC_BU_RRR') + IF (LBUDGET_RS) CALL BUDGET ( & + UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 10,'ACC_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET ( & + UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 11,'ACC_BU_RRG') +! +!* 5.3 Conversion-Melting of the aggregates +! + ZZW(:) = 0.0 + WHERE( (PRST(:)>XRTMIN(5)) .AND. (PRSS(:)>0.0) .AND. (PZT(:)>XTT) ) + ZZW(:) = PRVT(:)*PPRES(:)/((XMV/XMD)+PRVT(:)) ! Vapor pressure + ZZW(:) = PKA(:)*(XTT-PZT(:)) + & + ( PDV(:)*(XLVTT + ( XCPV - XCL ) * ( PZT(:) - XTT )) & + *(XESTT-ZZW(:))/(XRV*PZT(:)) ) +! +! compute RSMLT +! + ZZW(:) = MIN( PRSS(:), XFSCVMG*MAX( 0.0,( -ZZW(:) * & + ( X0DEPS* PLBDAS(:)**XEX0DEPS + & + X1DEPS*PCJ(:)*PLBDAS(:)**XEX1DEPS ) - & + ( ZZW1(:,1)+ZZW1(:,4) ) * & + ( PRHODREF(:)*XCL*(XTT-PZT(:))) ) / & + ( PRHODREF(:)*XLMTT ) ) ) +! +! note that RSCVMG = RSMLT*XFSCVMG but no heat is exchanged (at the rate RSMLT) +! because the graupeln produced by this process are still icy!!! +! + PRSS(:) = PRSS(:) - ZZW(:) + PRGS(:) = PRGS(:) + ZZW(:) + END WHERE + IF (LBUDGET_RS) CALL BUDGET ( & + UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 10,'CMEL_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET ( & + UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 11,'CMEL_BU_RRG') +! +END SUBROUTINE RAIN_ICE_FAST_RS + +END MODULE MODE_RAIN_ICE_FAST_RS diff --git a/src/MNH/rain_ice_nucleation.f90 b/src/MNH/rain_ice_nucleation.f90 new file mode 100644 index 000000000..faa2574bf --- /dev/null +++ b/src/MNH/rain_ice_nucleation.f90 @@ -0,0 +1,197 @@ +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 25/02/2019: split rain_ice (cleaner and easier to maintain/debug) +!----------------------------------------------------------------- +MODULE MODE_RAIN_ICE_NUCLEATION + + IMPLICIT NONE + + PRIVATE + + PUBLIC RAIN_ICE_NUCLEATION + +CONTAINS + +SUBROUTINE RAIN_ICE_NUCLEATION(KIB, KIE, KJB, KJE, KKTB, KKTE,KRR,PTSTEP,& + PTHT,PPABST,PRHODJ,PRHODREF,PRVT,PRCT,PRRT,PRIT,PRST,PRGT,& + PCIT,PEXNREF,PTHS,PRVS,PRIS,PT,PRHT) +! +!* 0. DECLARATIONS +! ------------ +! +USE MODD_BUDGET +USE MODD_CST +USE MODD_RAIN_ICE_PARAM +USE MODD_RAIN_ICE_DESCR, ONLY : XRTMIN +USE MODD_PARAM_ICE, ONLY : LFEEDBACKT +! +IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! +INTEGER, INTENT(IN) :: KIB, KIE, KJB, KJE, KKTB, KKTE +INTEGER, INTENT(IN) :: KRR ! Number of moist variable +REAL, INTENT(IN) :: PTSTEP ! Double Time step + ! (single if cold start) +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT ! Theta at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! absolute pressure at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF! Reference density +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRVT ! Water vapor m.r. at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRCT ! Cloud water m.r. at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRRT ! Rain water m.r. at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRIT ! Pristine ice m.r. at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRGT ! Graupel/hail m.r. at t +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCIT ! Pristine ice n.c. at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PEXNREF ! Reference Exner function +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRVS ! Water vapor m.r. source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRIS ! Pristine ice m.r. source +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PT ! Temperature +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t +! +!* 0.2 declaration of local variables +! +INTEGER :: INEGT +INTEGER :: JL ! and PACK intrinsics +INTEGER , DIMENSION(SIZE(PEXNREF)) :: I1,I2,I3 ! Used to replace the COUNT +LOGICAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & + :: GNEGT ! Test where to compute the HEN process +REAL, DIMENSION(:), ALLOCATABLE :: ZRVT ! Water vapor m.r. at t +REAL, DIMENSION(:), ALLOCATABLE :: ZCIT ! Pristine ice conc. at t +REAL, DIMENSION(:), ALLOCATABLE :: ZZT, & ! Temperature + ZPRES, & ! Pressure + ZZW, & ! Work array + ZUSW, & ! Undersaturation over water + ZSSI ! Supersaturation over ice +REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & + :: ZW ! work array +! +!------------------------------------------------------------------------------- +! +! +! compute the temperature and the pressure +! +PT(:,:,:) = PTHT(:,:,:) * ( PPABST(:,:,:) / XP00 ) ** (XRD/XCPD) +! +! optimization by looking for locations where +! the temperature is negative only !!! +! +GNEGT(:,:,:) = .FALSE. +GNEGT(KIB:KIE,KJB:KJE,KKTB:KKTE) = PT(KIB:KIE,KJB:KJE,KKTB:KKTE)<XTT +INEGT = COUNTJV( GNEGT(:,:,:),I1(:),I2(:),I3(:)) +IF( INEGT >= 1 ) THEN + ALLOCATE(ZRVT(INEGT)) ; + ALLOCATE(ZCIT(INEGT)) ; + ALLOCATE(ZZT(INEGT)) ; + ALLOCATE(ZPRES(INEGT)); + DO JL=1,INEGT + ZRVT(JL) = PRVT(I1(JL),I2(JL),I3(JL)) + ZCIT(JL) = PCIT(I1(JL),I2(JL),I3(JL)) + ZZT(JL) = PT(I1(JL),I2(JL),I3(JL)) + ZPRES(JL) = PPABST(I1(JL),I2(JL),I3(JL)) + ENDDO + ALLOCATE(ZZW(INEGT)) + ALLOCATE(ZUSW(INEGT)) + ALLOCATE(ZSSI(INEGT)) + ZZW(:) = EXP( XALPI - XBETAI/ZZT(:) - XGAMI*ALOG(ZZT(:) ) ) ! es_i + ZZW(:) = MIN(ZPRES(:)/2., ZZW(:)) ! safety limitation + ZSSI(:) = ZRVT(:)*( ZPRES(:)-ZZW(:) ) / ( (XMV/XMD) * ZZW(:) ) - 1.0 + ! Supersaturation over ice + ZUSW(:) = EXP( XALPW - XBETAW/ZZT(:) - XGAMW*ALOG(ZZT(:) ) ) ! es_w + ZUSW(:) = MIN(ZPRES(:)/2.,ZUSW(:)) ! safety limitation + ZUSW(:) = ( ZUSW(:)/ZZW(:) )*( (ZPRES(:)-ZZW(:))/(ZPRES(:)-ZUSW(:)) ) - 1.0 + ! Supersaturation of saturated water vapor over ice +! +!* 3.1 compute the heterogeneous nucleation source: RVHENI +! +!* 3.1.1 compute the cloud ice concentration +! + ZZW(:) = 0.0 + ZSSI(:) = MIN( ZSSI(:), ZUSW(:) ) ! limitation of SSi according to SSw=0 + WHERE( (ZZT(:)<XTT-5.0) .AND. (ZSSI(:)>0.0) ) + ZZW(:) = XNU20 * EXP( XALPHA2*ZSSI(:)-XBETA2 ) + END WHERE + WHERE( (ZZT(:)<=XTT-2.0) .AND. (ZZT(:)>=XTT-5.0) .AND. (ZSSI(:)>0.0) ) + ZZW(:) = MAX( XNU20 * EXP( -XBETA2 ),XNU10 * EXP( -XBETA1*(ZZT(:)-XTT) ) * & + ( ZSSI(:)/ZUSW(:) )**XALPHA1 ) + END WHERE + ZZW(:) = ZZW(:) - ZCIT(:) + IF( MAXVAL(ZZW(:)) > 0.0 ) THEN +! +!* 3.1.2 update the r_i and r_v mixing ratios +! + ZZW(:) = MIN( ZZW(:),50.E3 ) ! limitation provisoire a 50 l^-1 + ZW(:,:,:) = UNPACK( ZZW(:),MASK=GNEGT(:,:,:),FIELD=0.0 ) + ZW(:,:,:) = MAX( ZW(:,:,:) ,0.0 ) *XMNU0/(PRHODREF(:,:,:)*PTSTEP) + PRIS(:,:,:) = PRIS(:,:,:) + ZW(:,:,:) + PRVS(:,:,:) = PRVS(:,:,:) - ZW(:,:,:) + IF ( KRR == 7 ) THEN + PTHS(:,:,:) = PTHS(:,:,:) + ZW(:,:,:)*(XLSTT+(XCPV-XCI)*(PT(:,:,:)-XTT)) & + /( (XCPD + XCPV*PRVT(:,:,:) + XCL*(PRCT(:,:,:)+PRRT(:,:,:)) & + + XCI*(PRIT(:,:,:)+PRST(:,:,:)+PRGT(:,:,:)+PRHT(:,:,:)))*PEXNREF(:,:,:) ) + ELSE IF( KRR == 6 ) THEN + PTHS(:,:,:) = PTHS(:,:,:) + ZW(:,:,:)*(XLSTT+(XCPV-XCI)*(PT(:,:,:)-XTT)) & + /( (XCPD + XCPV*PRVT(:,:,:) + XCL*(PRCT(:,:,:)+PRRT(:,:,:)) & + + XCI*(PRIT(:,:,:)+PRST(:,:,:)+PRGT(:,:,:)))*PEXNREF(:,:,:) ) + END IF + ! f(L_s*(RVHENI)) + ZZW(:) = MAX( ZZW(:)+ZCIT(:),ZCIT(:) ) + PCIT(:,:,:) = MAX( UNPACK( ZZW(:),MASK=GNEGT(:,:,:),FIELD=0.0 ) , & + PCIT(:,:,:) ) + END IF + DEALLOCATE(ZSSI) + DEALLOCATE(ZUSW) + DEALLOCATE(ZZW) + DEALLOCATE(ZPRES) + DEALLOCATE(ZZT) + DEALLOCATE(ZCIT) + DEALLOCATE(ZRVT) +END IF +! +!* 3.1.3 budget storage +! +IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'HENU_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6,'HENU_BU_RRV') +IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'HENU_BU_RRI') +! +END SUBROUTINE RAIN_ICE_NUCLEATION + +FUNCTION COUNTJV(LTAB,I1,I2,I3) RESULT(IC) +! +!* 0. DECLARATIONS +! ------------ +! +IMPLICIT NONE +! +!* 0.2 declaration of local variables +! +! +LOGICAL, DIMENSION(:,:,:) :: LTAB ! Mask +INTEGER, DIMENSION(:) :: I1,I2,I3 ! Used to replace the COUNT and PACK +INTEGER :: JI,JJ,JK,IC +! +!------------------------------------------------------------------------------- +! +IC = 0 +DO JK = 1,SIZE(LTAB,3) + DO JJ = 1,SIZE(LTAB,2) + DO JI = 1,SIZE(LTAB,1) + IF( LTAB(JI,JJ,JK) ) THEN + IC = IC +1 + I1(IC) = JI + I2(IC) = JJ + I3(IC) = JK + END IF + END DO + END DO +END DO +! +END FUNCTION COUNTJV + +END MODULE MODE_RAIN_ICE_NUCLEATION diff --git a/src/MNH/rain_ice_sedimentation_split.f90 b/src/MNH/rain_ice_sedimentation_split.f90 new file mode 100644 index 000000000..f8441d3a9 --- /dev/null +++ b/src/MNH/rain_ice_sedimentation_split.f90 @@ -0,0 +1,641 @@ +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 25/02/2019: split rain_ice (cleaner and easier to maintain/debug) +!----------------------------------------------------------------- +MODULE MODE_RAIN_ICE_SEDIMENTATION_SPLIT + + IMPLICIT NONE + + PRIVATE + + PUBLIC RAIN_ICE_SEDIMENTATION_SPLIT + +CONTAINS + +SUBROUTINE RAIN_ICE_SEDIMENTATION_SPLIT(KIB, KIE, KJB, KJE, KKB, KKE, KKTB, KKTE, KKT, KKL,& + KSPLITR,PTSTEP, & + KRR,OSEDIC,ODEPOSC,PINPRC,PINDEP,PINPRR,PINPRS,PINPRG,PDZZ,PRHODREF,PPABST,PTHT,PRHODJ,& + PINPRR3D,PRCS,PRCT,PRRS,PRRT,PRIS,PRIT,PRSS,PRST,PRGS,PRGT,PSEA,PTOWN,PINPRH,PRHS,PRHT,PFPR) +! +!* 0. DECLARATIONS +! ------------ +! +USE MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS +USE MODD_CST, only: XCPD, XP00, XRD, XRHOLW +USE MODD_PARAM_ICE, only: XVDEPOSC +USE MODD_RAIN_ICE_DESCR, only: XCC,XCONC_LAND,xconc_sea,xconc_urban,XDC,XCEXVT,XALPHAC,XNUC,XALPHAC2,XNUC2, XLBEXC,XRTMIN,& + XLBEXC, XLBC +USE MODD_RAIN_ICE_PARAM, only: xexsedg,xexsedh,XEXCSEDI,xexsedr,xexseds,xfsedg,xfsedh,xfsedi,xfsedr,xfseds,XFSEDC +! +IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! +INTEGER, INTENT(IN) :: KIB, KIE, KJB, KJE, KKB, KKE, KKTB, KKTE, KKT +INTEGER, INTENT(IN) :: KKL !vert. levels type 1=MNH -1=ARO +INTEGER, INTENT(IN) :: KSPLITR ! Number of small time step + ! integration for rain sedimendation +REAL, INTENT(IN) :: PTSTEP ! Double Time step + ! (single if cold start) +INTEGER, INTENT(IN) :: KRR ! Number of moist variable +LOGICAL, INTENT(IN) :: OSEDIC ! Switch for droplet sedim. +LOGICAL, INTENT(IN) :: ODEPOSC ! Switch for droplet depos. +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC ! Cloud instant precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINDEP ! Cloud instant deposition +REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRR ! Rain instant precip +REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRS ! Snow instant precip +REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRG ! Graupel instant precip +REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! Layer thikness (m) +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF! Reference density +REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! absolute pressure at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT ! Theta at time t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian +REAL, DIMENSION(:,:,:),INTENT(OUT) :: PINPRR3D! Rain inst precip 3D +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRCS ! Cloud water m.r. source +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRCT ! Cloud water m.r. at t +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRRS ! Rain water m.r. source +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRRT ! Rain water m.r. at t +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRIS ! Pristine ice m.r. source +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRIT ! Pristine ice m.r. at t +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRSS ! Snow/aggregate m.r. source +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRGS ! Graupel m.r. source +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRGT ! Graupel/hail m.r. at t +REAL, DIMENSION(:,:), OPTIONAL,INTENT(IN) :: PSEA ! Sea Mask +REAL, DIMENSION(:,:), OPTIONAL,INTENT(IN) :: PTOWN ! Fraction that is town +REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: PINPRH ! Hail instant precip +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(INOUT) :: PRHS ! Hail m.r. source +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t +REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT) :: PFPR ! upper-air precipitation fluxes +! +!* 0.2 declaration of local variables +! +! +INTEGER, SAVE :: IOLDALLOCC = 6000 +INTEGER, SAVE :: IOLDALLOCR = 6000 +INTEGER, SAVE :: IOLDALLOCI = 6000 +INTEGER, SAVE :: IOLDALLOCS = 6000 +INTEGER, SAVE :: IOLDALLOCG = 6000 +INTEGER, SAVE :: IOLDALLOCH = 6000 +INTEGER :: ILENALLOCC,ILENALLOCR,ILENALLOCI,ILENALLOCS,ILENALLOCG,ILENALLOCH +INTEGER :: ILISTLENC,ILISTLENR,ILISTLENI,ILISTLENS,ILISTLENG,ILISTLENH +INTEGER :: ISEDIMR,ISEDIMC, ISEDIMI, ISEDIMS, ISEDIMG, ISEDIMH +INTEGER :: JK ! Vertical loop index for the rain sedimentation +INTEGER :: JN ! Temporal loop index for the rain sedimentation +INTEGER :: JJ ! Loop index for the interpolation +INTEGER :: JL +INTEGER , DIMENSION(SIZE(PRCS)) :: IC1,IC2,IC3 ! Used to replace the COUNT +INTEGER , DIMENSION(SIZE(PRCS)) :: IR1,IR2,IR3 ! Used to replace the COUNT +INTEGER , DIMENSION(SIZE(PRCS)) :: IS1,IS2,IS3 ! Used to replace the COUNT +INTEGER , DIMENSION(SIZE(PRCS)) :: II1,II2,II3 ! Used to replace the COUNT +INTEGER , DIMENSION(SIZE(PRCS)) :: IG1,IG2,IG3 ! Used to replace the COUNT +INTEGER , DIMENSION(SIZE(PRCS)) :: IH1,IH2,IH3 ! Used to replace the COUNT +INTEGER, DIMENSION(:), ALLOCATABLE :: ILISTR,ILISTC,ILISTI,ILISTS,ILISTG,ILISTH +LOGICAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2)):: GDEP +LOGICAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3)) & + :: GSEDIMR,GSEDIMC, GSEDIMI, GSEDIMS, GSEDIMG, GSEDIMH ! Test where to compute the SED processes +REAL :: ZINVTSTEP +REAL :: ZTSPLITR ! Small time step for rain sedimentation +REAL, DIMENSION(SIZE(XRTMIN)) :: ZRTMIN +! XRTMIN = Minimum value for the mixing ratio +! ZRTMIN = Minimum value for the source (tendency) +REAL, DIMENSION(:), ALLOCATABLE :: ZRCS ! Cloud water m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRRS ! Rain water m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRIS ! Pristine ice m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRSS ! Snow/aggregate m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRGS ! Graupel m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRHS ! Hail m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRCT ! Cloud water m.r. at t +REAL, DIMENSION(:), ALLOCATABLE :: & + ZRHODREFC,& ! RHO Dry REFerence + ZRHODREFR,& ! RHO Dry REFerence + ZRHODREFI,& ! RHO Dry REFerence + ZRHODREFS,& ! RHO Dry REFerence + ZRHODREFG,& ! RHO Dry REFerence + ZRHODREFH,& ! RHO Dry REFerence + ZCC, & ! terminal velocity + ZFSEDC1D, & ! For cloud sedimentation + ZWLBDC, & ! Slope parameter of the droplet distribution + ZCONC, & ! Concentration des aerosols + ZRAY1D, & ! Mean radius + ZWLBDA, & ! Libre parcours moyen + ZZT, & ! Temperature + ZPRES ! Pressure +REAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2)) & + :: ZCONC_TMP ! Weighted concentration +REAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3)) :: ZCONC3D ! droplet condensation +REAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3)) :: & + ZRAY, & ! Cloud Mean radius + ZLBC, & ! XLBC weighted by sea fraction + ZFSEDC +REAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3)) & + :: ZPRCS,ZPRRS,ZPRSS,ZPRGS,ZPRHS ! Mixing ratios created during the time step +REAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3)) & + :: ZW ! work array +REAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),0:SIZE(PRCS,3)+1) & + :: ZWSED ! sedimentation fluxes +!------------------------------------------------------------------------------- +! +! +! O. Initialization of for sedimentation +! +ZINVTSTEP=1./PTSTEP +ZTSPLITR= PTSTEP / FLOAT(KSPLITR) +! +IF (OSEDIC) PINPRC (:,:) = 0. +IF (ODEPOSC) PINDEP (:,:) = 0. +PINPRR (:,:) = 0. +PINPRR3D (:,:,:) = 0. +PINPRS (:,:) = 0. +PINPRG (:,:) = 0. +IF ( KRR == 7 ) PINPRH (:,:) = 0. +IF (PRESENT(PFPR)) PFPR(:,:,:,:) = 0. +! +!* 1. Parameters for cloud sedimentation +! + IF (OSEDIC) THEN + ZRAY(:,:,:) = 0. + ZLBC(:,:,:) = XLBC(1) + ZFSEDC(:,:,:) = XFSEDC(1) + ZCONC3D(:,:,:)= XCONC_LAND + ZCONC_TMP(:,:)= XCONC_LAND + IF (PRESENT(PSEA)) THEN + ZCONC_TMP(:,:)=PSEA(:,:)*XCONC_SEA+(1.-PSEA(:,:))*XCONC_LAND + + DO JK=KKTB,KKTE + ZLBC(:,:,JK) = PSEA(:,:)*XLBC(2)+(1.-PSEA(:,:))*XLBC(1) + ZFSEDC(:,:,JK) = (PSEA(:,:)*XFSEDC(2)+(1.-PSEA(:,:))*XFSEDC(1)) + ZFSEDC(:,:,JK) = MAX(MIN(XFSEDC(1),XFSEDC(2)),ZFSEDC(:,:,JK)) + ZCONC3D(:,:,JK)= (1.-PTOWN(:,:))*ZCONC_TMP(:,:)+PTOWN(:,:)*XCONC_URBAN + ZRAY(:,:,JK) = 0.5*((1.-PSEA(:,:))*GAMMA(XNUC+1.0/XALPHAC)/(GAMMA(XNUC)) + & + PSEA(:,:)*GAMMA(XNUC2+1.0/XALPHAC2)/(GAMMA(XNUC2))) + END DO + ELSE + ZCONC3D(:,:,:) = XCONC_LAND + ZRAY(:,:,:) = 0.5*(GAMMA(XNUC+1.0/XALPHAC)/(GAMMA(XNUC))) + END IF + ZRAY(:,:,:) = MAX(1.,ZRAY(:,:,:)) + ZLBC(:,:,:) = MAX(MIN(XLBC(1),XLBC(2)),ZLBC(:,:,:)) + ENDIF +! +!* 2. compute the fluxes +! +! optimization by looking for locations where +! the precipitating fields are larger than a minimal value only !!! +! For optimization we consider each variable separately + +ZRTMIN(:) = XRTMIN(:) * ZINVTSTEP +IF (OSEDIC) GSEDIMC(:,:,:) = .FALSE. +GSEDIMR(:,:,:) = .FALSE. +GSEDIMI(:,:,:) = .FALSE. +GSEDIMS(:,:,:) = .FALSE. +GSEDIMG(:,:,:) = .FALSE. +IF ( KRR == 7 ) GSEDIMH(:,:,:) = .FALSE. +! +ILENALLOCR = 0 +IF (OSEDIC) ILENALLOCC = 0 +ILENALLOCI = 0 +ILENALLOCS = 0 +ILENALLOCG = 0 +IF ( KRR == 7 ) ILENALLOCH = 0 +! +! ZPiS = Specie i source creating during the current time step +! PRiS = Source of the previous time step +! +IF (OSEDIC) THEN + ZPRCS(:,:,:) = 0.0 + ZPRCS(:,:,:) = PRCS(:,:,:)-PRCT(:,:,:)* ZINVTSTEP + PRCS(:,:,:) = PRCT(:,:,:)* ZINVTSTEP +END IF +ZPRRS(:,:,:) = 0.0 +ZPRSS(:,:,:) = 0.0 +ZPRGS(:,:,:) = 0.0 +IF ( KRR == 7 ) ZPRHS(:,:,:) = 0.0 +! +ZPRRS(:,:,:) = PRRS(:,:,:)-PRRT(:,:,:)* ZINVTSTEP +ZPRSS(:,:,:) = PRSS(:,:,:)-PRST(:,:,:)* ZINVTSTEP +ZPRGS(:,:,:) = PRGS(:,:,:)-PRGT(:,:,:)* ZINVTSTEP +IF ( KRR == 7 ) ZPRHS(:,:,:) = PRHS(:,:,:)-PRHT(:,:,:)* ZINVTSTEP +PRRS(:,:,:) = PRRT(:,:,:)* ZINVTSTEP +PRSS(:,:,:) = PRST(:,:,:)* ZINVTSTEP +PRGS(:,:,:) = PRGT(:,:,:)* ZINVTSTEP +IF ( KRR == 7 ) PRHS(:,:,:) = PRHT(:,:,:)* ZINVTSTEP +! +! PRiS = Source of the previous time step + source created during the subtime +! step +! +DO JN = 1 , KSPLITR + IF( JN==1 ) THEN + IF (OSEDIC) PRCS(:,:,:) = PRCS(:,:,:) + ZPRCS(:,:,:)/KSPLITR + PRRS(:,:,:) = PRRS(:,:,:) + ZPRRS(:,:,:)/KSPLITR + PRSS(:,:,:) = PRSS(:,:,:) + ZPRSS(:,:,:)/KSPLITR + PRGS(:,:,:) = PRGS(:,:,:) + ZPRGS(:,:,:)/KSPLITR + IF ( KRR == 7 ) PRHS(:,:,:) = PRHS(:,:,:) + ZPRHS(:,:,:)/KSPLITR + DO JK = KKTB , KKTE + ZW(:,:,JK) =ZTSPLITR/(PRHODREF(:,:,JK)* PDZZ(:,:,JK)) + END DO + ELSE + IF (OSEDIC) PRCS(:,:,:) = PRCS(:,:,:) + ZPRCS(:,:,:)*ZTSPLITR + PRRS(:,:,:) = PRRS(:,:,:) + ZPRRS(:,:,:)*ZTSPLITR + PRSS(:,:,:) = PRSS(:,:,:) + ZPRSS(:,:,:)*ZTSPLITR + PRGS(:,:,:) = PRGS(:,:,:) + ZPRGS(:,:,:)*ZTSPLITR + IF ( KRR == 7 ) PRHS(:,:,:) = PRHS(:,:,:) + ZPRHS(:,:,:)*ZTSPLITR + END IF + ! + IF (OSEDIC) GSEDIMC(KIB:KIE,KJB:KJE,KKTB:KKTE) = & + PRCS(KIB:KIE,KJB:KJE,KKTB:KKTE)>ZRTMIN(2) + GSEDIMR(KIB:KIE,KJB:KJE,KKTB:KKTE) = & + PRRS(KIB:KIE,KJB:KJE,KKTB:KKTE)>ZRTMIN(3) + GSEDIMI(KIB:KIE,KJB:KJE,KKTB:KKTE) = & + PRIS(KIB:KIE,KJB:KJE,KKTB:KKTE)>ZRTMIN(4) + GSEDIMS(KIB:KIE,KJB:KJE,KKTB:KKTE) = & + PRSS(KIB:KIE,KJB:KJE,KKTB:KKTE)>ZRTMIN(5) + GSEDIMG(KIB:KIE,KJB:KJE,KKTB:KKTE) = & + PRGS(KIB:KIE,KJB:KJE,KKTB:KKTE)>ZRTMIN(6) + IF ( KRR == 7 ) GSEDIMH(KIB:KIE,KJB:KJE,KKTB:KKTE) = & + PRHS(KIB:KIE,KJB:KJE,KKTB:KKTE)>ZRTMIN(7) +! + IF (OSEDIC) ISEDIMC = COUNTJV( GSEDIMC(:,:,:),IC1(:),IC2(:),IC3(:)) + ISEDIMR = COUNTJV( GSEDIMR(:,:,:),IR1(:),IR2(:),IR3(:)) + ISEDIMI = COUNTJV( GSEDIMI(:,:,:),II1(:),II2(:),II3(:)) + ISEDIMS = COUNTJV( GSEDIMS(:,:,:),IS1(:),IS2(:),IS3(:)) + ISEDIMG = COUNTJV( GSEDIMG(:,:,:),IG1(:),IG2(:),IG3(:)) + IF ( KRR == 7 ) ISEDIMH = COUNTJV( GSEDIMH(:,:,:),IH1(:),IH2(:),IH3(:)) +! +!* 2.1 for cloud +! + IF (OSEDIC) THEN + ZWSED(:,:,:) = 0. + IF( JN==1 ) PRCS(:,:,:) = PRCS(:,:,:) * PTSTEP + IF( ISEDIMC >= 1 ) THEN + IF ( ISEDIMC .GT. ILENALLOCC ) THEN + IF ( ILENALLOCC .GT. 0 ) THEN + DEALLOCATE (ZRCS, ZRHODREFC, ILISTC,ZWLBDC,ZCONC,ZRCT, & + ZZT,ZPRES,ZRAY1D,ZFSEDC1D,ZWLBDA,ZCC ) + END IF + ILENALLOCC = MAX (IOLDALLOCC, 2*ISEDIMC ) + IOLDALLOCC = ILENALLOCC + ALLOCATE(ZRCS(ILENALLOCC), ZRHODREFC(ILENALLOCC), ILISTC(ILENALLOCC), & + ZWLBDC(ILENALLOCC), ZCONC(ILENALLOCC), ZRCT(ILENALLOCC), ZZT(ILENALLOCC), & + ZPRES(ILENALLOCC), ZRAY1D(ILENALLOCC), ZFSEDC1D(ILENALLOCC), & + ZWLBDA(ILENALLOCC), ZCC(ILENALLOCC) ) + END IF +! + DO JL=1,ISEDIMC + ZRCS(JL) = PRCS(IC1(JL),IC2(JL),IC3(JL)) + ZRHODREFC(JL) = PRHODREF(IC1(JL),IC2(JL),IC3(JL)) + ZWLBDC(JL) = ZLBC(IC1(JL),IC2(JL),IC3(JL)) + ZCONC(JL) = ZCONC3D(IC1(JL),IC2(JL),IC3(JL)) + ZRCT(JL) = PRCT(IC1(JL),IC2(JL),IC3(JL)) + ZZT(JL) = PTHT(IC1(JL),IC2(JL),IC3(JL)) + ZPRES(JL) = PPABST(IC1(JL),IC2(JL),IC3(JL)) + ZRAY1D(JL) = ZRAY(IC1(JL),IC2(JL),IC3(JL)) + ZFSEDC1D(JL) = ZFSEDC(IC1(JL),IC2(JL),IC3(JL)) + END DO +! + ILISTLENC = 0 + DO JL=1,ISEDIMC + IF( ZRCS(JL) .GT. ZRTMIN(2) ) THEN + ILISTLENC = ILISTLENC + 1 + ILISTC(ILISTLENC) = JL + END IF + END DO + DO JJ = 1, ILISTLENC + JL = ILISTC(JJ) + IF (ZRCS(JL) .GT. ZRTMIN(2) .AND. ZRCT(JL) .GT. XRTMIN(2)) THEN + ZWLBDC(JL) = ZWLBDC(JL) * ZCONC(JL) / (ZRHODREFC(JL) * ZRCT(JL)) + ZWLBDC(JL) = ZWLBDC(JL)**XLBEXC + ZRAY1D(JL) = ZRAY1D(JL) / ZWLBDC(JL) !! ZRAY : mean diameter=M(1)/2 + ZZT(JL) = ZZT(JL) * (ZPRES(JL)/XP00)**(XRD/XCPD) + ZWLBDA(JL) = 6.6E-8*(101325./ZPRES(JL))*(ZZT(JL)/293.15) + ZCC(JL) = XCC*(1.+1.26*ZWLBDA(JL)/ZRAY1D(JL)) !! XCC modified for cloud + ZWSED (IC1(JL),IC2(JL),IC3(JL))= ZRHODREFC(JL)**(-XCEXVT +1 ) * & + ZWLBDC(JL)**(-XDC)*ZCC(JL)*ZFSEDC1D(JL) * ZRCS(JL) + END IF + END DO + END IF + DO JK = KKTB , KKTE + PRCS(:,:,JK) = PRCS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) + END DO + IF (PRESENT(PFPR)) THEN + DO JK = KKTB , KKTE + PFPR(:,:,JK,2)=ZWSED(:,:,JK) + ENDDO + ENDIF + PINPRC(:,:) = PINPRC(:,:) + ZWSED(:,:,KKB) / XRHOLW / KSPLITR + IF( JN==KSPLITR ) THEN + PRCS(:,:,:) = PRCS(:,:,:) * ZINVTSTEP + END IF + END IF +! +!* 2.2 for rain +! + IF( JN==1 ) PRRS(:,:,:) = PRRS(:,:,:) * PTSTEP + ZWSED(:,:,:) = 0. + IF( ISEDIMR >= 1 ) THEN + IF ( ISEDIMR .GT. ILENALLOCR ) THEN + IF ( ILENALLOCR .GT. 0 ) THEN + DEALLOCATE (ZRRS, ZRHODREFR, ILISTR) + END IF + ILENALLOCR = MAX (IOLDALLOCR, 2*ISEDIMR ) + IOLDALLOCR = ILENALLOCR + ALLOCATE(ZRRS(ILENALLOCR), ZRHODREFR(ILENALLOCR), ILISTR(ILENALLOCR)) + END IF +! + DO JL=1,ISEDIMR + ZRRS(JL) = PRRS(IR1(JL),IR2(JL),IR3(JL)) + ZRHODREFR(JL) = PRHODREF(IR1(JL),IR2(JL),IR3(JL)) + END DO +! + ILISTLENR = 0 + DO JL=1,ISEDIMR + IF( ZRRS(JL) .GT. ZRTMIN(3) ) THEN + ILISTLENR = ILISTLENR + 1 + ILISTR(ILISTLENR) = JL + END IF + END DO + DO JJ = 1, ILISTLENR + JL = ILISTR(JJ) + ZWSED (IR1(JL),IR2(JL),IR3(JL))= XFSEDR * ZRRS(JL)**XEXSEDR * & + ZRHODREFR(JL)**(XEXSEDR-XCEXVT) + END DO + END IF + DO JK = KKTB , KKTE + PRRS(:,:,JK) = PRRS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) + END DO + IF (PRESENT(PFPR)) THEN + DO JK = KKTB , KKTE + PFPR(:,:,JK,3)=ZWSED(:,:,JK) + ENDDO + ENDIF + PINPRR(:,:) = PINPRR(:,:) + ZWSED(:,:,KKB)/XRHOLW/KSPLITR + PINPRR3D(:,:,:) = PINPRR3D(:,:,:) + ZWSED(:,:,1:KKT)/XRHOLW/KSPLITR + IF( JN==KSPLITR ) THEN + PRRS(:,:,:) = PRRS(:,:,:) * ZINVTSTEP + END IF +! +!* 2.3 for pristine ice +! + IF( JN==1 ) PRIS(:,:,:) = PRIS(:,:,:) * PTSTEP + ZWSED(:,:,:) = 0. + IF( ISEDIMI >= 1 ) THEN + IF ( ISEDIMI .GT. ILENALLOCI ) THEN + IF ( ILENALLOCI .GT. 0 ) THEN + DEALLOCATE (ZRIS, ZRHODREFI, ILISTI) + END IF + ILENALLOCI = MAX (IOLDALLOCI, 2*ISEDIMI ) + IOLDALLOCI = ILENALLOCI + ALLOCATE(ZRIS(ILENALLOCI), ZRHODREFI(ILENALLOCI), ILISTI(ILENALLOCI)) + END IF +! + DO JL=1,ISEDIMI + ZRIS(JL) = PRIS(II1(JL),II2(JL),II3(JL)) + ZRHODREFI(JL) = PRHODREF(II1(JL),II2(JL),II3(JL)) + END DO +! + ILISTLENI = 0 + DO JL=1,ISEDIMI + IF( ZRIS(JL) .GT. MAX(ZRTMIN(4),1.0E-7 )) THEN ! limitation of the McF&H formula + ILISTLENI = ILISTLENI + 1 + ILISTI(ILISTLENI) = JL + END IF + END DO + DO JJ = 1, ILISTLENI + JL = ILISTI(JJ) + ZWSED (II1(JL),II2(JL),II3(JL))= XFSEDI * ZRIS(JL) * & + ZRHODREFI(JL)**(1.0-XCEXVT) * & ! McF&H + MAX( 0.05E6,-0.15319E6-0.021454E6* & + ALOG(ZRHODREFI(JL)*ZRIS(JL)) )**XEXCSEDI + END DO + END IF + DO JK = KKTB , KKTE + PRIS(:,:,JK) = PRIS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) + END DO + IF (PRESENT(PFPR)) THEN + DO JK = KKTB , KKTE + PFPR(:,:,JK,4)=ZWSED(:,:,JK) + ENDDO + ENDIF + IF( JN==KSPLITR ) THEN + PRIS(:,:,:) = PRIS(:,:,:) * ZINVTSTEP + END IF +! +!* 2.4 for aggregates/snow +! + IF( JN==1 ) PRSS(:,:,:) = PRSS(:,:,:) * PTSTEP + ZWSED(:,:,:) = 0. + IF( ISEDIMS >= 1 ) THEN + IF ( ISEDIMS .GT. ILENALLOCS ) THEN + IF ( ILENALLOCS .GT. 0 ) THEN + DEALLOCATE (ZRSS, ZRHODREFS, ILISTS) + END IF + ILENALLOCS = MAX (IOLDALLOCS, 2*ISEDIMS ) + IOLDALLOCS = ILENALLOCS + ALLOCATE(ZRSS(ILENALLOCS), ZRHODREFS(ILENALLOCS), ILISTS(ILENALLOCS)) + END IF +! + DO JL=1,ISEDIMS + ZRSS(JL) = PRSS(IS1(JL),IS2(JL),IS3(JL)) + ZRHODREFS(JL) = PRHODREF(IS1(JL),IS2(JL),IS3(JL)) + END DO +! + ILISTLENS = 0 + DO JL=1,ISEDIMS + IF( ZRSS(JL) .GT. ZRTMIN(5) ) THEN + ILISTLENS = ILISTLENS + 1 + ILISTS(ILISTLENS) = JL + END IF + END DO + DO JJ = 1, ILISTLENS + JL = ILISTS(JJ) + ZWSED (IS1(JL),IS2(JL),IS3(JL))= XFSEDS * ZRSS(JL)**XEXSEDS * & + ZRHODREFS(JL)**(XEXSEDS-XCEXVT) + END DO + END IF + DO JK = KKTB , KKTE + PRSS(:,:,JK) = PRSS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) + END DO + IF (PRESENT(PFPR)) THEN + DO JK = KKTB , KKTE + PFPR(:,:,JK,5)=ZWSED(:,:,JK) + ENDDO + ENDIF + PINPRS(:,:) = PINPRS(:,:) + ZWSED(:,:,KKB)/XRHOLW/KSPLITR + IF( JN==KSPLITR ) THEN + PRSS(:,:,:) = PRSS(:,:,:) * ZINVTSTEP + END IF +! +!* 2.5 for graupeln +! + ZWSED(:,:,:) = 0. + IF( JN==1 ) PRGS(:,:,:) = PRGS(:,:,:) * PTSTEP + IF( ISEDIMG >= 1 ) THEN + IF ( ISEDIMG .GT. ILENALLOCG ) THEN + IF ( ILENALLOCG .GT. 0 ) THEN + DEALLOCATE (ZRGS, ZRHODREFG, ILISTG) + END IF + ILENALLOCG = MAX (IOLDALLOCG, 2*ISEDIMG ) + IOLDALLOCG = ILENALLOCG + ALLOCATE(ZRGS(ILENALLOCG), ZRHODREFG(ILENALLOCG), ILISTG(ILENALLOCG)) + END IF +! + DO JL=1,ISEDIMG + ZRGS(JL) = PRGS(IG1(JL),IG2(JL),IG3(JL)) + ZRHODREFG(JL) = PRHODREF(IG1(JL),IG2(JL),IG3(JL)) + END DO +! + ILISTLENG = 0 + DO JL=1,ISEDIMG + IF( ZRGS(JL) .GT. ZRTMIN(6) ) THEN + ILISTLENG = ILISTLENG + 1 + ILISTG(ILISTLENG) = JL + END IF + END DO + DO JJ = 1, ILISTLENG + JL = ILISTG(JJ) + ZWSED (IG1(JL),IG2(JL),IG3(JL))= XFSEDG * ZRGS(JL)**XEXSEDG * & + ZRHODREFG(JL)**(XEXSEDG-XCEXVT) + END DO +END IF + DO JK = KKTB , KKTE + PRGS(:,:,JK) = PRGS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) + END DO + IF (PRESENT(PFPR)) THEN + DO JK = KKTB , KKTE + PFPR(:,:,JK,6)=ZWSED(:,:,JK) + ENDDO + ENDIF + PINPRG(:,:) = PINPRG(:,:) + ZWSED(:,:,KKB)/XRHOLW/KSPLITR + IF( JN==KSPLITR ) THEN + PRGS(:,:,:) = PRGS(:,:,:) * ZINVTSTEP + END IF +! +!* 2.6 for hail +! + IF ( KRR == 7 ) THEN + IF( JN==1 ) PRHS(:,:,:) = PRHS(:,:,:) * PTSTEP + ZWSED(:,:,:) = 0. + IF( ISEDIMH >= 1 ) THEN + IF ( ISEDIMH .GT. ILENALLOCH ) THEN + IF ( ILENALLOCH .GT. 0 ) THEN + DEALLOCATE (ZRHS, ZRHODREFH, ILISTH) + END IF + ILENALLOCH = MAX (IOLDALLOCH, 2*ISEDIMH ) + IOLDALLOCH = ILENALLOCH + ALLOCATE(ZRHS(ILENALLOCH), ZRHODREFH(ILENALLOCH), ILISTH(ILENALLOCH)) + END IF +! + DO JL=1,ISEDIMH + ZRHS(JL) = PRHS(IH1(JL),IH2(JL),IH3(JL)) + ZRHODREFH(JL) = PRHODREF(IH1(JL),IH2(JL),IH3(JL)) + END DO +! + ILISTLENH = 0 + DO JL=1,ISEDIMH + IF( ZRHS(JL) .GT. ZRTMIN(7) ) THEN + ILISTLENH = ILISTLENH + 1 + ILISTH(ILISTLENH) = JL + END IF + END DO + DO JJ = 1, ILISTLENH + JL = ILISTH(JJ) + ZWSED (IH1(JL),IH2(JL),IH3(JL))= XFSEDH * ZRHS(JL)**XEXSEDH * & + ZRHODREFH(JL)**(XEXSEDH-XCEXVT) + END DO + END IF + DO JK = KKTB , KKTE + PRHS(:,:,JK) = PRHS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) + END DO + IF (PRESENT(PFPR)) THEN + DO JK = KKTB , KKTE + PFPR(:,:,JK,7)=ZWSED(:,:,JK) + ENDDO + ENDIF + PINPRH(:,:) = PINPRH(:,:) + ZWSED(:,:,KKB)/XRHOLW/KSPLITR + IF( JN==KSPLITR ) THEN + PRHS(:,:,:) = PRHS(:,:,:) * ZINVTSTEP + END IF + END IF +! +END DO +! +IF (OSEDIC) THEN + IF (ILENALLOCC .GT. 0) DEALLOCATE (ZRCS, ZRHODREFC, & + ILISTC,ZWLBDC,ZCONC,ZRCT, ZZT,ZPRES,ZRAY1D,ZFSEDC1D, ZWLBDA,ZCC) +END IF +IF (ILENALLOCR .GT. 0 ) DEALLOCATE(ZRHODREFR,ZRRS,ILISTR) +IF (ILENALLOCI .GT. 0 ) DEALLOCATE(ZRHODREFI,ZRIS,ILISTI) +IF (ILENALLOCS .GT. 0 ) DEALLOCATE(ZRHODREFS,ZRSS,ILISTS) +IF (ILENALLOCG .GT. 0 ) DEALLOCATE(ZRHODREFG,ZRGS,ILISTG) +IF (KRR == 7 .AND. (ILENALLOCH .GT. 0 )) DEALLOCATE(ZRHODREFH,ZRHS,ILISTH) +! +!* 2.3 budget storage +! +IF (LBUDGET_RC .AND. OSEDIC) & + CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'SEDI_BU_RRC') +IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'SEDI_BU_RRR') +IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9 ,'SEDI_BU_RRI') +IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'SEDI_BU_RRS') +IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'SEDI_BU_RRG') +IF ( KRR == 7 .AND. LBUDGET_RH) & + CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'SEDI_BU_RRH') +! +! +! +!* 2.4 DROPLET DEPOSITION AT THE 1ST LEVEL ABOVE GROUND +! +IF (ODEPOSC) THEN + GDEP(:,:) = .FALSE. + GDEP(KIB:KIE,KJB:KJE) = PRCS(KIB:KIE,KJB:KJE,KKB) >0 + WHERE (GDEP) + PRCS(:,:,KKB) = PRCS(:,:,KKB) - XVDEPOSC * PRCT(:,:,KKB) / PDZZ(:,:,KKB) + PINPRC(:,:) = PINPRC(:,:) + XVDEPOSC * PRCT(:,:,KKB) * PRHODREF(:,:,KKB) /XRHOLW + PINDEP(:,:) = XVDEPOSC * PRCT(:,:,KKB) * PRHODREF(:,:,KKB) /XRHOLW + END WHERE +END IF +! +!* 2.5 budget storage +! +IF ( LBUDGET_RC .AND. ODEPOSC ) & + CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'DEPO_BU_RRC') +! + + END SUBROUTINE RAIN_ICE_SEDIMENTATION_SPLIT + + FUNCTION COUNTJV(LTAB,I1,I2,I3) RESULT(IC) +! +!* 0. DECLARATIONS +! ------------ +! +IMPLICIT NONE +! +!* 0.2 declaration of local variables +! +! +LOGICAL, DIMENSION(:,:,:) :: LTAB ! Mask +INTEGER, DIMENSION(:) :: I1,I2,I3 ! Used to replace the COUNT and PACK +INTEGER :: JI,JJ,JK,IC +! +!------------------------------------------------------------------------------- +! +IC = 0 +DO JK = 1,SIZE(LTAB,3) + DO JJ = 1,SIZE(LTAB,2) + DO JI = 1,SIZE(LTAB,1) + IF( LTAB(JI,JJ,JK) ) THEN + IC = IC +1 + I1(IC) = JI + I2(IC) = JJ + I3(IC) = JK + END IF + END DO + END DO +END DO +! +END FUNCTION COUNTJV + +END MODULE MODE_RAIN_ICE_SEDIMENTATION_SPLIT diff --git a/src/MNH/rain_ice_sedimentation_stat.f90 b/src/MNH/rain_ice_sedimentation_stat.f90 new file mode 100644 index 000000000..111ecf1bc --- /dev/null +++ b/src/MNH/rain_ice_sedimentation_stat.f90 @@ -0,0 +1,603 @@ +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 25/02/2019: split rain_ice (cleaner and easier to maintain/debug) +!----------------------------------------------------------------- +MODULE MODE_RAIN_ICE_SEDIMENTATION_STAT + + IMPLICIT NONE + + PRIVATE + + PUBLIC :: RAIN_ICE_SEDIMENTATION_STAT + +CONTAINS + +SUBROUTINE RAIN_ICE_SEDIMENTATION_STAT( KIB, KIE, KJB, KJE, KKB, KKE, KKTB, KKTE, KKT, KKL, KRR, & + PTSTEP, OSEDIC, PINPRC, PINDEP, & + PINPRR, PINPRS, PINPRG, PDZZ, PRHODREF, PPABST, PTHT, PRHODJ, PINPRR3D, & + PRCS, PRCT, PRRS, PRRT, PRIS, PRSS, PRST, PRGS, PRGT, & + PSEA, PTOWN, PINPRH, PRHS, PRHT, PFPR ) +! +!* 0. DECLARATIONS +! ------------ +! +USE MODD_BUDGET +USE MODD_CST +USE MODD_PARAM_ICE +USE MODD_RAIN_ICE_DESCR +USE MODD_RAIN_ICE_PARAM +! +IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! +INTEGER, INTENT(IN) :: KIB, KIE, KJB, KJE, KKB, KKE, KKTB, KKTE, KKT +INTEGER, INTENT(IN) :: KKL ! vert. levels type 1=MNH -1=ARO +INTEGER, INTENT(IN) :: KRR ! Number of moist variable +REAL, INTENT(IN) :: PTSTEP ! Double Time step + ! (single if cold start) +LOGICAL, INTENT(IN) :: OSEDIC ! Switch for droplet sedim. +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC ! Cloud instant precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINDEP ! Cloud instant deposition +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRR ! Rain instant precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRS ! Snow instant precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRG ! Graupel instant precip +REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! Layer thikness (m) +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF! Reference density +REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! absolute pressure at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT ! Theta at time t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PINPRR3D! Rain inst precip 3D +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRCS ! Cloud water m.r. source +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRCT ! Cloud water m.r. at t +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRRS ! Rain water m.r. source +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRRT ! Rain water m.r. at t +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRIS ! Pristine ice m.r. source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRSS ! Snow/aggregate m.r. source +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRGS ! Graupel m.r. source +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRGT ! Graupel/hail m.r. at t +REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! Sea Mask +REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN ! Fraction that is town +REAL, DIMENSION(:,:), OPTIONAL, INTENT(INOUT) :: PINPRH ! Hail instant precip +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(INOUT) :: PRHS ! Hail m.r. source +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t +REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT) :: PFPR ! upper-air precipitation fluxes +! +!* 0.2 declaration of local variables +! +REAL :: ZINVTSTEP +REAL :: ZP1,ZP2,ZH,ZZWLBDA,ZZWLBDC,ZZCC +REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)) :: ZQP +INTEGER :: JI,JJ,JK +INTEGER :: JCOUNT, JL +INTEGER, DIMENSION(SIZE(PRHODREF,1)*SIZE(PRHODREF,2)) :: I1, I2 +! +LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)):: GDEP +REAL, DIMENSION(SIZE(XRTMIN)) :: ZRTMIN +! XRTMIN = Minimum value for the mixing ratio +! ZRTMIN = Minimum value for the source (tendency) +REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) & + :: ZPRCS,ZPRRS,ZPRSS,ZPRGS,ZPRHS ! Mixing ratios created during the time step +REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)) & + :: ZCONC_TMP ! Weighted concentration +REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZCONC3D ! droplet condensation +REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: & + ZRAY, & ! Cloud Mean radius + ZLBC, & ! XLBC weighted by sea fraction + ZFSEDC +REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) & + :: ZW ! work array +REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),0:SIZE(PRHODREF,3)+1) & + :: ZWSED ! sedimentation fluxes +REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),0:SIZE(PRHODREF,3)+1) & + :: ZWSEDW1 ! sedimentation speed +REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),0:SIZE(PRHODREF,3)+1) & + :: ZWSEDW2 ! sedimentation speed +!------------------------------------------------------------------------------- +! +! +ZINVTSTEP=1./PTSTEP +! +!* 1. Parameters for cloud sedimentation +! + IF (OSEDIC) THEN + ZRAY(:,:,:) = 0. + ZLBC(:,:,:) = XLBC(1) + ZFSEDC(:,:,:) = XFSEDC(1) + ZCONC3D(:,:,:)= XCONC_LAND + ZCONC_TMP(:,:)= XCONC_LAND + IF (PRESENT(PSEA)) THEN + ZCONC_TMP(:,:)=PSEA(:,:)*XCONC_SEA+(1.-PSEA(:,:))*XCONC_LAND + + DO JK=KKTB,KKTE + ZLBC(:,:,JK) = PSEA(:,:)*XLBC(2)+(1.-PSEA(:,:))*XLBC(1) + ZFSEDC(:,:,JK) = (PSEA(:,:)*XFSEDC(2)+(1.-PSEA(:,:))*XFSEDC(1)) + ZFSEDC(:,:,JK) = MAX(MIN(XFSEDC(1),XFSEDC(2)),ZFSEDC(:,:,JK)) + ZCONC3D(:,:,JK)= (1.-PTOWN(:,:))*ZCONC_TMP(:,:)+PTOWN(:,:)*XCONC_URBAN + ZRAY(:,:,JK) = 0.5*((1.-PSEA(:,:))*GAMMA(XNUC+1.0/XALPHAC)/(GAMMA(XNUC)) + & + PSEA(:,:)*GAMMA(XNUC2+1.0/XALPHAC2)/(GAMMA(XNUC2))) + END DO + ELSE + ZCONC3D(:,:,:) = XCONC_LAND + ZRAY(:,:,:) = 0.5*(GAMMA(XNUC+1.0/XALPHAC)/(GAMMA(XNUC))) + END IF + ZRAY(:,:,:) = MAX(1.,ZRAY(:,:,:)) + ZLBC(:,:,:) = MAX(MIN(XLBC(1),XLBC(2)),ZLBC(:,:,:)) + ENDIF + IF (LDEPOSC) PINDEP (:,:) = 0. +! +!* 2. compute the fluxes +! + + +ZRTMIN(:) = XRTMIN(:) * ZINVTSTEP +! +IF (OSEDIC) THEN + ZPRCS(:,:,:) = 0.0 + ZPRCS(:,:,:) = PRCS(:,:,:)-PRCT(:,:,:)* ZINVTSTEP + PRCS(:,:,:) = PRCT(:,:,:)* ZINVTSTEP +END IF +ZPRRS(:,:,:) = 0.0 +ZPRSS(:,:,:) = 0.0 +ZPRGS(:,:,:) = 0.0 +IF ( KRR == 7 ) ZPRHS(:,:,:) = 0.0 +! +ZPRRS(:,:,:) = PRRS(:,:,:)-PRRT(:,:,:)* ZINVTSTEP +ZPRSS(:,:,:) = PRSS(:,:,:)-PRST(:,:,:)* ZINVTSTEP +ZPRGS(:,:,:) = PRGS(:,:,:)-PRGT(:,:,:)* ZINVTSTEP +IF ( KRR == 7 ) ZPRHS(:,:,:) = PRHS(:,:,:)-PRHT(:,:,:)* ZINVTSTEP +PRRS(:,:,:) = PRRT(:,:,:)* ZINVTSTEP +PRSS(:,:,:) = PRST(:,:,:)* ZINVTSTEP +PRGS(:,:,:) = PRGT(:,:,:)* ZINVTSTEP +IF ( KRR == 7 ) PRHS(:,:,:) = PRHT(:,:,:)* ZINVTSTEP +! +IF (OSEDIC) PRCS(:,:,:) = PRCS(:,:,:) + ZPRCS(:,:,:) +PRRS(:,:,:) = PRRS(:,:,:) + ZPRRS(:,:,:) +PRSS(:,:,:) = PRSS(:,:,:) + ZPRSS(:,:,:) +PRGS(:,:,:) = PRGS(:,:,:) + ZPRGS(:,:,:) +IF ( KRR == 7 ) PRHS(:,:,:) = PRHS(:,:,:) + ZPRHS(:,:,:) +IF (PRESENT(PFPR)) PFPR(:,:,:,:) = 0. +DO JK = KKTB , KKTE + ZW(:,:,JK) =PTSTEP/(PRHODREF(:,:,JK)* PDZZ(:,:,JK) ) +END DO +PINPRR3D (:,:,:) = 0. + +! +!* 2.1 for cloud +! + IF (OSEDIC) THEN + PRCS(:,:,:) = PRCS(:,:,:) * PTSTEP + ZWSED(:,:,:) = 0. + ZWSEDW1(:,:,:) = 0. + ZWSEDW2(:,:,:) = 0. + +! calculation of P1, P2 and sedimentation flux + DO JK = KKE , KKB, -1*KKL + !estimation of q' taking into account incomming ZWSED + ZQP(:,:)=ZWSED(:,:,JK+KKL)*ZW(:,:,JK) + + JCOUNT=COUNTJV2((PRCS(:,:,JK) > ZRTMIN(2) .AND. PRCT(:,:,JK) > ZRTMIN(2)) .OR. & + (ZQP(:,:) > ZRTMIN(2)),I1(:),I2(:)) + DO JL=1, JCOUNT + JI=I1(JL) + JJ=I2(JL) + !calculation of w + ! mars 2009 : ajout d'un test + !IF ( PRCS(JI,JJ,JK) > ZRTMIN(2) ) THEN + IF(PRCS(JI,JJ,JK) > ZRTMIN(2) .AND. PRCT(JI,JJ,JK) > ZRTMIN(2)) THEN + ZZWLBDA=6.6E-8*(101325./PPABST(JI,JJ,JK))*(PTHT(JI,JJ,JK)/293.15) + ZZWLBDC=(ZLBC(JI,JJ,JK)*ZCONC3D(JI,JJ,JK) & + &/(PRHODREF(JI,JJ,JK)*PRCT(JI,JJ,JK)))**XLBEXC + ZZCC=XCC*(1.+1.26*ZZWLBDA*ZZWLBDC/ZRAY(JI,JJ,JK)) !! ZCC : Fall speed + ZWSEDW1 (JI,JJ,JK)=PRHODREF(JI,JJ,JK)**(-XCEXVT ) * & + & ZZWLBDC**(-XDC)*ZZCC*ZFSEDC(JI,JJ,JK) + ENDIF + IF ( ZQP(JI,JJ) > ZRTMIN(2) ) THEN + ZZWLBDA=6.6E-8*(101325./PPABST(JI,JJ,JK))*(PTHT(JI,JJ,JK)/293.15) + ZZWLBDC=(ZLBC(JI,JJ,JK)*ZCONC3D(JI,JJ,JK) & + &/(PRHODREF(JI,JJ,JK)*ZQP(JI,JJ)))**XLBEXC + ZZCC=XCC*(1.+1.26*ZZWLBDA*ZZWLBDC/ZRAY(JI,JJ,JK)) !! ZCC : Fall speed + ZWSEDW2 (JI,JJ,JK)=PRHODREF(JI,JJ,JK)**(-XCEXVT ) * & + & ZZWLBDC**(-XDC)*ZZCC*ZFSEDC(JI,JJ,JK) + ENDIF + ENDDO + + DO JJ = KJB, KJE + DO JI = KIB, KIE + ZH=PDZZ(JI,JJ,JK) + ZP1 = MIN(1., ZWSEDW1(JI,JJ,JK) * PTSTEP / ZH) + ! mars 2009 : correction : ZWSEDW1 => ZWSEDW2 + !IF (ZWSEDW1(JI,JJ,JK) /= 0.) THEN + IF (ZWSEDW2(JI,JJ,JK) /= 0.) THEN + ZP2 = MAX(0.,1 - ZH & + & / (PTSTEP*ZWSEDW2(JI,JJ,JK)) ) + ELSE + ZP2 = 0. + ENDIF + ZWSED (JI,JJ,JK)=ZP1*PRHODREF(JI,JJ,JK)*& + &ZH*PRCS(JI,JJ,JK)& + &* ZINVTSTEP+ ZP2 * ZWSED (JI,JJ,JK+KKL) + ENDDO + ENDDO + ENDDO + + DO JK = KKTB , KKTE + PRCS(:,:,JK) = PRCS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) + END DO + IF (PRESENT(PFPR)) THEN + DO JK = KKTB , KKTE + PFPR(:,:,JK,2)=ZWSED(:,:,JK) + ENDDO + ENDIF + + PINPRC(:,:) = ZWSED(:,:,KKB)/XRHOLW ! in m/s + PRCS(:,:,:) = PRCS(:,:,:) * ZINVTSTEP + ENDIF + +! +!* 2.2 for rain +! + + PRRS(:,:,:) = PRRS(:,:,:) * PTSTEP + ZWSED(:,:,:) = 0. + ZWSEDW1(:,:,:) = 0. + ZWSEDW2(:,:,:) = 0. + +! calculation of ZP1, ZP2 and sedimentation flux + DO JK = KKE , KKB, -1*KKL + !estimation of q' taking into account incomming ZWSED + ZQP(:,:)=ZWSED(:,:,JK+KKL)*ZW(:,:,JK) + + JCOUNT=COUNTJV2((PRRS(:,:,JK) > ZRTMIN(3)) .OR. & + (ZQP(:,:) > ZRTMIN(3)),I1(:),I2(:)) + DO JL=1, JCOUNT + JI=I1(JL) + JJ=I2(JL) + !calculation of w + IF ( PRRS(JI,JJ,JK) > ZRTMIN(3) ) THEN + ZWSEDW1 (JI,JJ,JK)= XFSEDR *PRRS(JI,JJ,JK)**(XEXSEDR-1)* & + PRHODREF(JI,JJ,JK)**(XEXSEDR-XCEXVT-1) + ENDIF + IF ( ZQP(JI,JJ) > ZRTMIN(3) ) THEN + ZWSEDW2 (JI,JJ,JK)= XFSEDR *(ZQP(JI,JJ))**(XEXSEDR-1)* & + PRHODREF(JI,JJ,JK)**(XEXSEDR-XCEXVT-1) + ENDIF + ENDDO + DO JJ = KJB, KJE + DO JI = KIB, KIE + ZH=PDZZ(JI,JJ,JK) + ZP1 = MIN(1., ZWSEDW1(JI,JJ,JK) * PTSTEP / ZH ) + IF (ZWSEDW2(JI,JJ,JK) /= 0.) THEN + ZP2 = MAX(0.,1 - ZH & + & / (PTSTEP*ZWSEDW2(JI,JJ,JK)) ) + ELSE + ZP2 = 0. + ENDIF + ZWSED (JI,JJ,JK)=ZP1*PRHODREF(JI,JJ,JK)*& + &ZH*PRRS(JI,JJ,JK)& + &* ZINVTSTEP+ ZP2 * ZWSED (JI,JJ,JK+KKL) + ENDDO + ENDDO + ENDDO + + DO JK = KKTB , KKTE + PRRS(:,:,JK) = PRRS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) + ENDDO + IF (PRESENT(PFPR)) THEN + DO JK = KKTB , KKTE + PFPR(:,:,JK,3)=ZWSED(:,:,JK) + ENDDO + ENDIF + PINPRR(:,:) = ZWSED(:,:,KKB)/XRHOLW ! in m/s + PINPRR3D(:,:,:) = ZWSED(:,:,1:KKT)/XRHOLW ! in m/s + PRRS(:,:,:) = PRRS(:,:,:) * ZINVTSTEP + +! +!* 2.3 for pristine ice +! + + PRIS(:,:,:) = PRIS(:,:,:) * PTSTEP + ZWSED(:,:,:) = 0. + ZWSEDW1(:,:,:) = 0. + ZWSEDW2(:,:,:) = 0. +! calculation of ZP1, ZP2 and sedimentation flux + DO JK = KKE , KKB, -1*KKL + !estimation of q' taking into account incomming ZWSED + ZQP(:,:)=ZWSED(:,:,JK+KKL)*ZW(:,:,JK) + + JCOUNT=COUNTJV2((PRIS(:,:,JK) > MAX(ZRTMIN(4),1.0E-7 )) .OR. & + (ZQP(:,:) > MAX(ZRTMIN(4),1.0E-7 )),I1(:),I2(:)) + DO JL=1, JCOUNT + JI=I1(JL) + JJ=I2(JL) + !calculation of w + IF ( PRIS(JI,JJ,JK) > MAX(ZRTMIN(4),1.0E-7 ) ) THEN + ZWSEDW1 (JI,JJ,JK)= XFSEDI * & + & PRHODREF(JI,JJ,JK)**(XCEXVT) * & ! McF&H + & MAX( 0.05E6,-0.15319E6-0.021454E6* & + & ALOG(PRHODREF(JI,JJ,JK)*PRIS(JI,JJ,JK)) )**XEXCSEDI + ENDIF + IF ( ZQP(JI,JJ) > MAX(ZRTMIN(4),1.0E-7 ) ) THEN + ZWSEDW2 (JI,JJ,JK)= XFSEDI * & + & PRHODREF(JI,JJ,JK)**(XCEXVT) * & ! McF&H + & MAX( 0.05E6,-0.15319E6-0.021454E6* & + & ALOG(PRHODREF(JI,JJ,JK)*ZQP(JI,JJ)) )**XEXCSEDI + ENDIF + ENDDO + DO JJ = KJB, KJE + DO JI = KIB, KIE + ZH=PDZZ(JI,JJ,JK) + ZP1 = MIN(1., ZWSEDW1(JI,JJ,JK) * PTSTEP / ZH ) + IF (ZWSEDW2(JI,JJ,JK) /= 0.) THEN + ZP2 = MAX(0.,1 - ZH & + & / (PTSTEP*ZWSEDW2(JI,JJ,JK)) ) + ELSE + ZP2 = 0. + ENDIF + ZWSED (JI,JJ,JK)=ZP1*PRHODREF(JI,JJ,JK)*& + &ZH*PRIS(JI,JJ,JK)& + &* ZINVTSTEP+ ZP2 * ZWSED (JI,JJ,JK+KKL) + ENDDO + ENDDO + ENDDO + + DO JK = KKTB , KKTE + PRIS(:,:,JK) = PRIS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) + ENDDO + IF (PRESENT(PFPR)) THEN + DO JK = KKTB , KKTE + PFPR(:,:,JK,4)=ZWSED(:,:,JK) + ENDDO + ENDIF + + PRIS(:,:,:) = PRIS(:,:,:) * ZINVTSTEP + + +! +!* 2.4 for aggregates/snow +! + + PRSS(:,:,:) = PRSS(:,:,:) * PTSTEP + ZWSED(:,:,:) = 0. + ZWSEDW1(:,:,:) = 0. + ZWSEDW2(:,:,:) = 0. + +! calculation of ZP1, ZP2 and sedimentation flux + DO JK = KKE , KKB, -1*KKL + !estimation of q' taking into account incomming ZWSED + ZQP(:,:)=ZWSED(:,:,JK+KKL)*ZW(:,:,JK) + + JCOUNT=COUNTJV2((PRSS(:,:,JK) > ZRTMIN(5)) .OR. & + (ZQP(:,:) > ZRTMIN(5)),I1(:),I2(:)) + DO JL=1, JCOUNT + JI=I1(JL) + JJ=I2(JL) + !calculation of w + IF (PRSS(JI,JJ,JK) > ZRTMIN(5) ) THEN + ZWSEDW1(JI,JJ,JK)=XFSEDS*(PRSS(JI,JJ,JK))**(XEXSEDS-1)*& + PRHODREF(JI,JJ,JK)**(XEXSEDS-XCEXVT-1) + ENDIF + IF ( ZQP(JI,JJ) > ZRTMIN(5) ) THEN + ZWSEDW2(JI,JJ,JK)=XFSEDS*(ZQP(JI,JJ))**(XEXSEDS-1)*& + PRHODREF(JI,JJ,JK)**(XEXSEDS-XCEXVT-1) + ENDIF + ENDDO + DO JJ = KJB, KJE + DO JI = KIB, KIE + ZH=PDZZ(JI,JJ,JK) + ZP1 = MIN(1., ZWSEDW1(JI,JJ,JK) * PTSTEP / ZH ) + IF (ZWSEDW2(JI,JJ,JK) /= 0.) THEN + ZP2 = MAX(0.,1 - ZH& + / (PTSTEP*ZWSEDW2(JI,JJ,JK)) ) + ELSE + ZP2 = 0. + ENDIF + ZWSED (JI,JJ,JK)=ZP1*PRHODREF(JI,JJ,JK)*& + &ZH*PRSS(JI,JJ,JK)& + &* ZINVTSTEP+ ZP2 * ZWSED (JI,JJ,JK+KKL) + ENDDO + ENDDO + ENDDO + + DO JK = KKTB , KKTE + PRSS(:,:,JK) = PRSS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) + ENDDO + IF (PRESENT(PFPR)) THEN + DO JK = KKTB , KKTE + PFPR(:,:,JK,5)=ZWSED(:,:,JK) + ENDDO + ENDIF + + PINPRS(:,:) = ZWSED(:,:,KKB)/XRHOLW ! in m/s + + PRSS(:,:,:) = PRSS(:,:,:) * ZINVTSTEP + + +! +!* 2.5 for graupeln +! + + PRGS(:,:,:) = PRGS(:,:,:) * PTSTEP + ZWSED(:,:,:) = 0. + ZWSEDW1(:,:,:) = 0. + ZWSEDW2(:,:,:) = 0. + +! calculation of ZP1, ZP2 and sedimentation flux + DO JK = KKE, KKB, -1*KKL + !estimation of q' taking into account incomming ZWSED + ZQP(:,:)=ZWSED(:,:,JK+KKL)*ZW(:,:,JK) + + JCOUNT=COUNTJV2((PRGS(:,:,JK) > ZRTMIN(6)) .OR. & + (ZQP(:,:) > ZRTMIN(6)),I1(:),I2(:)) + DO JL=1, JCOUNT + JI=I1(JL) + JJ=I2(JL) + !calculation of w + IF ( PRGS(JI,JJ,JK) > ZRTMIN(6) ) THEN + ZWSEDW1 (JI,JJ,JK)= XFSEDG*(PRGS(JI,JJ,JK))**(XEXSEDG-1) * & + PRHODREF(JI,JJ,JK)**(XEXSEDG-XCEXVT-1) + ENDIF + IF ( ZQP(JI,JJ) > ZRTMIN(6) ) THEN + ZWSEDW2 (JI,JJ,JK)= XFSEDG*(ZQP(JI,JJ))**(XEXSEDG-1) * & + PRHODREF(JI,JJ,JK)**(XEXSEDG-XCEXVT-1) + ENDIF + ENDDO + DO JJ = KJB, KJE + DO JI = KIB, KIE + ZH=PDZZ(JI,JJ,JK) + ZP1 = MIN(1., ZWSEDW1(JI,JJ,JK) * PTSTEP / ZH ) + IF (ZWSEDW2(JI,JJ,JK) /= 0.) THEN + ZP2 = MAX(0.,1 - ZH & + & / (PTSTEP*ZWSEDW2(JI,JJ,JK)) ) + ELSE + ZP2 = 0. + ENDIF + ZWSED (JI,JJ,JK)=ZP1*PRHODREF(JI,JJ,JK)*& + &ZH*PRGS(JI,JJ,JK)& + &* ZINVTSTEP+ ZP2 * ZWSED (JI,JJ,JK+KKL) + ENDDO + ENDDO + ENDDO + + DO JK = KKTB , KKTE + PRGS(:,:,JK) = PRGS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) + ENDDO + IF (PRESENT(PFPR)) THEN + DO JK = KKTB , KKTE + PFPR(:,:,JK,6)=ZWSED(:,:,JK) + ENDDO + ENDIF + + PINPRG(:,:) = ZWSED(:,:,KKB)/XRHOLW ! in m/s + + PRGS(:,:,:) = PRGS(:,:,:) * ZINVTSTEP + +! +!* 2.6 for hail +! + IF ( KRR == 7 ) THEN + PRHS(:,:,:) = PRHS(:,:,:) * PTSTEP + ZWSED(:,:,:) = 0. + ZWSEDW1(:,:,:) = 0. + ZWSEDW2(:,:,:) = 0. +! calculation of ZP1, ZP2 and sedimentation flux + DO JK = KKE , KKB, -1*KKL + !estimation of q' taking into account incomming ZWSED + ZQP(:,:)=ZWSED(:,:,JK+KKL)*ZW(:,:,JK) + + JCOUNT=COUNTJV2((PRHS(:,:,JK)+ZQP(JI,JJ) > ZRTMIN(7)) .OR. & + (ZQP(:,:) > ZRTMIN(7)),I1(:),I2(:)) + DO JL=1, JCOUNT + JI=I1(JL) + JJ=I2(JL) + !calculation of w + IF ((PRHS(JI,JJ,JK)+ZQP(JI,JJ)) > ZRTMIN(7) ) THEN + ZWSEDW1 (JI,JJ,JK)= XFSEDH * (PRHS(JI,JJ,JK))**(XEXSEDH-1) * & + PRHODREF(JI,JJ,JK)**(XEXSEDH-XCEXVT-1) + ENDIF + IF ( ZQP(JI,JJ) > ZRTMIN(7) ) THEN + ZWSEDW2 (JI,JJ,JK)= XFSEDH * ZQP(JI,JJ)**(XEXSEDH-1) * & + PRHODREF(JI,JJ,JK)**(XEXSEDH-XCEXVT-1) + ENDIF + ENDDO + DO JJ = KJB, KJE + DO JI = KIB, KIE + ZH=PDZZ(JI,JJ,JK) + ZP1 = MIN(1., ZWSEDW1(JI,JJ,JK) * PTSTEP / ZH) + IF (ZWSEDW2(JI,JJ,JK) /= 0.) THEN + ZP2 = MAX(0.,1 - ZH & + & / (PTSTEP*ZWSEDW2(JI,JJ,JK)) ) + ELSE + ZP2 = 0. + ENDIF + ZWSED (JI,JJ,JK)=ZP1*PRHODREF(JI,JJ,JK)*& + &ZH*PRHS(JI,JJ,JK)& + &* ZINVTSTEP+ ZP2 * ZWSED (JI,JJ,JK+KKL) + ENDDO + ENDDO + ENDDO + + DO JK = KKTB , KKTE + PRHS(:,:,JK) = PRHS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) + ENDDO + IF (PRESENT(PFPR)) THEN + DO JK = KKTB , KKTE + PFPR(:,:,JK,7)=ZWSED(:,:,JK) + ENDDO + ENDIF + + PINPRH(:,:) = ZWSED(:,:,KKB)/XRHOLW ! in m/s + + PRHS(:,:,:) = PRHS(:,:,:) * ZINVTSTEP + + ENDIF +! + +! +!* 2.3 budget storage +! +IF (LBUDGET_RC .AND. OSEDIC) & + CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'SEDI_BU_RRC') +IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'SEDI_BU_RRR') +IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9 ,'SEDI_BU_RRI') +IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'SEDI_BU_RRS') +IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'SEDI_BU_RRG') +IF ( KRR == 7 .AND. LBUDGET_RH) & + CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'SEDI_BU_RRH') +! +! +!* 2.4 DROPLET DEPOSITION AT THE 1ST LEVEL ABOVE GROUND +! +IF (LDEPOSC) THEN + GDEP(:,:) = .FALSE. + GDEP(KIB:KIE,KJB:KJE) = PRCS(KIB:KIE,KJB:KJE,KKB) >0 + WHERE (GDEP) + PRCS(:,:,KKB) = PRCS(:,:,KKB) - XVDEPOSC * PRCT(:,:,KKB) / PDZZ(:,:,KKB) + PINPRC(:,:) = PINPRC(:,:) + XVDEPOSC * PRCT(:,:,KKB) * PRHODREF(:,:,KKB) /XRHOLW + PINDEP(:,:) = XVDEPOSC * PRCT(:,:,KKB) * PRHODREF(:,:,KKB) /XRHOLW + END WHERE +END IF +! +!* 2.5 budget storage +! +IF ( LBUDGET_RC .AND. LDEPOSC ) & + CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'DEPO_BU_RRC') +! +END SUBROUTINE RAIN_ICE_SEDIMENTATION_STAT + + +FUNCTION COUNTJV2(LTAB,I1,I2) RESULT(IC) +! +!* 0. DECLARATIONS +! ------------ +! +IMPLICIT NONE +! +!* 0.2 declaration of local variables +! +! +LOGICAL, DIMENSION(:,:) :: LTAB ! Mask +INTEGER, DIMENSION(:) :: I1,I2 ! Used to replace the COUNT and PACK +INTEGER :: JI,JJ,IC +! +!------------------------------------------------------------------------------- +! +IC = 0 +DO JJ = 1,SIZE(LTAB,2) + DO JI = 1,SIZE(LTAB,1) + IF( LTAB(JI,JJ) ) THEN + IC = IC +1 + I1(IC) = JI + I2(IC) = JJ + END IF + END DO +END DO +! +END FUNCTION COUNTJV2 + +END MODULE MODE_RAIN_ICE_SEDIMENTATION_STAT diff --git a/src/MNH/rain_ice_slow.f90 b/src/MNH/rain_ice_slow.f90 new file mode 100644 index 000000000..663309b1c --- /dev/null +++ b/src/MNH/rain_ice_slow.f90 @@ -0,0 +1,234 @@ +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 25/02/2019: split rain_ice (cleaner and easier to maintain/debug) +!----------------------------------------------------------------- +MODULE MODE_RAIN_ICE_SLOW + + IMPLICIT NONE + + PRIVATE + + PUBLIC :: RAIN_ICE_SLOW + +CONTAINS + +SUBROUTINE RAIN_ICE_SLOW(OMICRO, PINVTSTEP, PRHODREF, & + PRCT, PRRT, PRIT, PRST, PRGT, PRHODJ, PZT, PPRES, & + PLSFACT, PLVFACT, & + PSSI, PRHODJ3D, PTHS3D, PRVS3D, & + PRVS, PRCS, PRRS, PRIS, PRSS, PRGS, PTHS, & + PAI, PCJ, PKA, PDV, PLBDAS, PLBDAG) +! +!* 0. DECLARATIONS +! ------------ +! +USE MODD_BUDGET +USE MODD_CST +USE MODD_RAIN_ICE_DESCR +USE MODD_RAIN_ICE_PARAM +! +IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! +LOGICAL, DIMENSION(:,:,:), intent(in) :: OMICRO ! Test where to compute all processes +REAL, intent(in) :: PINVTSTEP +REAL, DIMENSION(:), intent(in) :: PRHODREF ! RHO Dry REFerence +REAL, DIMENSION(:), intent(in) :: PRCT ! Cloud water m.r. at t +REAL, DIMENSION(:), intent(in) :: PRRT ! Rain water m.r. at t +REAL, DIMENSION(:), intent(in) :: PRIT ! Pristine ice m.r. at t +REAL, DIMENSION(:), intent(in) :: PRST ! Snow/aggregate m.r. at t +REAL, DIMENSION(:), intent(in) :: PRGT ! Graupel m.r. at t +REAL, DIMENSION(:), intent(in) :: PRHODJ ! RHO times Jacobian +REAL, DIMENSION(:), intent(in) :: PZT ! Temperature +REAL, DIMENSION(:), intent(in) :: PPRES ! Pressure +REAL, DIMENSION(:), intent(in) :: PLSFACT ! L_s/(Pi_ref*C_ph) +REAL, DIMENSION(:), intent(in) :: PLVFACT ! L_v/(Pi_ref*C_ph) +REAL, DIMENSION(:), intent(in) :: PSSI ! Supersaturation over ice +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ3D ! Dry density * Jacobian +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHS3D ! Theta source +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRVS3D ! Water vapor m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRVS ! Water vapor m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRCS ! Cloud water m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRRS ! Rain water m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRIS ! Pristine ice m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRSS ! Snow/aggregate m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRGS ! Graupel m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PTHS ! Theta source +REAL, DIMENSION(:), intent(OUT) :: PAI ! Thermodynamical function +REAL, DIMENSION(:), intent(OUT) :: PCJ ! Function to compute the ventilation coefficient +REAL, DIMENSION(:), intent(OUT) :: PKA ! Thermal conductivity of the air +REAL, DIMENSION(:), intent(OUT) :: PDV ! Diffusivity of water vapor in the air +REAL, DIMENSION(:), intent(OUT) :: PLBDAS ! Slope parameter of the aggregate distribution +REAL, DIMENSION(:), intent(OUT) :: PLBDAG ! Slope parameter of the graupel distribution +! +!* 0.2 declaration of local variables +! +REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array +REAL, DIMENSION(size(PRHODREF)) :: ZCRIAUTI ! Snow-to-ice autoconversion thres. +! +!------------------------------------------------------------------------------- +! +! +!* 3.2 compute the homogeneous nucleation source: RCHONI +! + ZZW(:) = 0.0 + WHERE( (PZT(:)<XTT-35.0) .AND. (PRCT(:)>XRTMIN(2)) .AND. (PRCS(:)>0.) ) + ZZW(:) = MIN( PRCS(:),XHON*PRHODREF(:)*PRCT(:) & + *EXP( MIN(XMNH_HUGE_12_LOG,XALPHA3*(PZT(:)-XTT)-XBETA3) ) ) + ! *EXP( XALPHA3*(PZT(:)-XTT)-XBETA3 ) ) + PRIS(:) = PRIS(:) + ZZW(:) + PRCS(:) = PRCS(:) - ZZW(:) + PTHS(:) = PTHS(:) + ZZW(:)*(PLSFACT(:)-PLVFACT(:)) ! f(L_f*(RCHONI)) + ENDWHERE +! + IF (LBUDGET_TH) CALL BUDGET ( & + UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & + 4,'HON_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET ( & + UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 7,'HON_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET ( & + UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 9,'HON_BU_RRI') +! +!* 3.3 compute the spontaneous freezing source: RRHONG +! + ZZW(:) = 0.0 + WHERE( (PZT(:)<XTT-35.0) .AND. (PRRT(:)>XRTMIN(3)) .AND. (PRRS(:)>0.) ) + ZZW(:) = MIN( PRRS(:),PRRT(:)* PINVTSTEP ) + PRGS(:) = PRGS(:) + ZZW(:) + PRRS(:) = PRRS(:) - ZZW(:) + PTHS(:) = PTHS(:) + ZZW(:)*(PLSFACT(:)-PLVFACT(:)) ! f(L_f*(RRHONG)) + ENDWHERE +! + IF (LBUDGET_TH) CALL BUDGET ( & + UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & + 4,'SFR_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET ( & + UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 8,'SFR_BU_RRR') + IF (LBUDGET_RG) CALL BUDGET ( & + UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 11,'SFR_BU_RRG') +! +!* 3.4 compute the deposition, aggregation and autoconversion sources +! + PKA(:) = 2.38E-2 + 0.0071E-2 * ( PZT(:) - XTT ) ! k_a + PDV(:) = 0.211E-4 * (PZT(:)/XTT)**1.94 * (XP00/PPRES(:)) ! D_v +! +!* 3.4.1 compute the thermodynamical function A_i(T,P) +!* and the c^prime_j (in the ventilation factor) +! + + PAI(:) = EXP( XALPI - XBETAI/PZT(:) - XGAMI*ALOG(PZT(:) ) ) ! es_i + PAI(:) = ( XLSTT + (XCPV-XCI)*(PZT(:)-XTT) )**2 / (PKA(:)*XRV*PZT(:)**2) & + + ( XRV*PZT(:) ) / (PDV(:)*PAI(:)) + PCJ(:) = XSCFAC * PRHODREF(:)**0.3 / SQRT( 1.718E-5+0.0049E-5*(PZT(:)-XTT) ) +! +!* 3.4.2 compute the riming-conversion of r_c for r_i production: RCAUTI +! +! ZZW(:) = 0.0 +! ZTIMAUTIC = SQRT( XTIMAUTI*XTIMAUTC ) +! WHERE ( (PRCT(:)>0.0) .AND. (PRIT(:)>0.0) .AND. (PRCS(:)>0.0) ) +! ZZW(:) = MIN( PRCS(:),ZTIMAUTIC * MAX( SQRT( PRIT(:)*PRCT(:) ),0.0 ) ) +! PRIS(:) = PRIS(:) + ZZW(:) +! PRCS(:) = PRCS(:) - ZZW(:) +! PTHS(:) = PTHS(:) + ZZW(:)*(PLSFACT(:)-PLVFACT(:)) ! f(L_f*(RCAUTI)) +! END WHERE +! +!* 3.4.3 compute the deposition on r_s: RVDEPS +! + WHERE ( PRST(:)>0.0 ) + PLBDAS(:) = MIN( XLBDAS_MAX, & + XLBS*( PRHODREF(:)*MAX( PRST(:),XRTMIN(5) ) )**XLBEXS ) + END WHERE + ZZW(:) = 0.0 + WHERE ( (PRST(:)>XRTMIN(5)) .AND. (PRSS(:)>0.0) ) + ZZW(:) = ( PSSI(:)/(PRHODREF(:)*PAI(:)) ) * & + ( X0DEPS*PLBDAS(:)**XEX0DEPS + X1DEPS*PCJ(:)*PLBDAS(:)**XEX1DEPS ) + ZZW(:) = MIN( PRVS(:),ZZW(:) )*(0.5+SIGN(0.5,ZZW(:))) & + - MIN( PRSS(:),ABS(ZZW(:)) )*(0.5-SIGN(0.5,ZZW(:))) + PRSS(:) = PRSS(:) + ZZW(:) + PRVS(:) = PRVS(:) - ZZW(:) + PTHS(:) = PTHS(:) + ZZW(:)*PLSFACT(:) + END WHERE + IF (LBUDGET_TH) CALL BUDGET ( & + UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & + 4,'DEPS_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET ( & + UNPACK(PRVS(:),MASK=OMICRO(:,:,:),FIELD=PRVS3D)*PRHODJ3D(:,:,:), & + 6,'DEPS_BU_RRV') + IF (LBUDGET_RS) CALL BUDGET ( & + UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 10,'DEPS_BU_RRS') +! +!* 3.4.4 compute the aggregation on r_s: RIAGGS +! + ZZW(:) = 0.0 + WHERE ( (PRIT(:)>XRTMIN(4)) .AND. (PRST(:)>XRTMIN(5)) .AND. (PRIS(:)>0.0) ) + ZZW(:) = MIN( PRIS(:),XFIAGGS * EXP( XCOLEXIS*(PZT(:)-XTT) ) & + * PRIT(:) & + * PLBDAS(:)**XEXIAGGS & + * PRHODREF(:)**(-XCEXVT) ) + PRSS(:) = PRSS(:) + ZZW(:) + PRIS(:) = PRIS(:) - ZZW(:) + END WHERE + IF (LBUDGET_RI) CALL BUDGET ( & + UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 9,'AGGS_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET ( & + UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 10,'AGGS_BU_RRS') +! +!* 3.4.5 compute the autoconversion of r_i for r_s production: RIAUTS +! +! ZCRIAUTI(:)=MIN(XCRIAUTI,10**(0.06*(PZT(:)-XTT)-3.5)) + ZCRIAUTI(:)=MIN(XCRIAUTI,10**(XACRIAUTI*(PZT(:)-XTT)+XBCRIAUTI)) + ZZW(:) = 0.0 + WHERE ( (PRIT(:)>XRTMIN(4)) .AND. (PRIS(:)>0.0) ) + ZZW(:) = MIN( PRIS(:),XTIMAUTI * EXP( XTEXAUTI*(PZT(:)-XTT) ) & + * MAX( PRIT(:)-ZCRIAUTI(:),0.0 ) ) + PRSS(:) = PRSS(:) + ZZW(:) + PRIS(:) = PRIS(:) - ZZW(:) + END WHERE + IF (LBUDGET_RI) CALL BUDGET ( & + UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 9,'AUTS_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET ( & + UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 10,'AUTS_BU_RRS') +! +!* 3.4.6 compute the deposition on r_g: RVDEPG +! +! + WHERE ( PRGT(:)>0.0 ) + PLBDAG(:) = XLBG*( PRHODREF(:)*MAX( PRGT(:),XRTMIN(6) ) )**XLBEXG + END WHERE + ZZW(:) = 0.0 + WHERE ( (PRGT(:)>XRTMIN(6)) .AND. (PRGS(:)>0.0) ) + ZZW(:) = ( PSSI(:)/(PRHODREF(:)*PAI(:)) ) * & + ( X0DEPG*PLBDAG(:)**XEX0DEPG + X1DEPG*PCJ(:)*PLBDAG(:)**XEX1DEPG ) + ZZW(:) = MIN( PRVS(:),ZZW(:) )*(0.5+SIGN(0.5,ZZW(:))) & + - MIN( PRGS(:),ABS(ZZW(:)) )*(0.5-SIGN(0.5,ZZW(:))) + PRGS(:) = PRGS(:) + ZZW(:) + PRVS(:) = PRVS(:) - ZZW(:) + PTHS(:) = PTHS(:) + ZZW(:)*PLSFACT(:) + END WHERE + IF (LBUDGET_TH) CALL BUDGET ( & + UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & + 4,'DEPG_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET ( & + UNPACK(PRVS(:),MASK=OMICRO(:,:,:),FIELD=PRVS3D)*PRHODJ3D(:,:,:), & + 6,'DEPG_BU_RRV') + IF (LBUDGET_RG) CALL BUDGET ( & + UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 11,'DEPG_BU_RRG') +! +END SUBROUTINE RAIN_ICE_SLOW + +END MODULE MODE_RAIN_ICE_SLOW diff --git a/src/MNH/rain_ice_warm.f90 b/src/MNH/rain_ice_warm.f90 new file mode 100644 index 000000000..69b48ed6e --- /dev/null +++ b/src/MNH/rain_ice_warm.f90 @@ -0,0 +1,235 @@ +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 25/02/2019: split rain_ice (cleaner and easier to maintain/debug) +!----------------------------------------------------------------- +MODULE MODE_RAIN_ICE_WARM + + IMPLICIT NONE + + PRIVATE + + PUBLIC :: RAIN_ICE_WARM + +CONTAINS + +SUBROUTINE RAIN_ICE_WARM(OMICRO, PRHODREF, PRVT, PRCT, PRRT, PHLC_HCF, PHLC_LCF, PHLC_HRC, PHLC_LRC, & + PRHODJ, PPRES, PZT, PLBDAR, PLBDAR_RF, PLVFACT, PCJ, PKA, PDV, PRF, PCF, PTHT, PTHLT, & + PRHODJ3D, PTHS3D, PRVS3D, PRVS, PRCS, PRRS, PTHS, PUSW, PEVAP3D) +! +!* 0. DECLARATIONS +! ------------ +! +use MODD_BUDGET +use MODD_CST +use MODD_PARAM_ICE +USE MODD_RAIN_ICE_DESCR +USE MODD_RAIN_ICE_PARAM +! +use MODE_MSG +! +IMPLICIT NONE +! +!* 0.1 Declarations of dummy arguments : +! +LOGICAL, DIMENSION(:,:,:), intent(in) :: OMICRO ! Test where to compute all processes +REAL, DIMENSION(:), intent(in) :: PRHODREF ! RHO Dry REFerence +REAL, DIMENSION(:), intent(in) :: PRVT ! Water vapor m.r. at t +REAL, DIMENSION(:), intent(in) :: PRCT ! Cloud water m.r. at t +REAL, DIMENSION(:), intent(in) :: PRRT ! Rain water m.r. at t +REAL, DIMENSION(:), intent(in) :: PHLC_HCF ! HLCLOUDS : fraction of High Cloud Fraction in grid +REAL, DIMENSION(:), intent(in) :: PHLC_LCF ! HLCLOUDS : fraction of Low Cloud Fraction in grid +REAL, DIMENSION(:), intent(in) :: PHLC_HRC ! HLCLOUDS : LWC that is High LWC in grid +REAL, DIMENSION(:), intent(in) :: PHLC_LRC ! HLCLOUDS : LWC that is Low LWC in grid +REAL, DIMENSION(:), intent(in) :: PRHODJ ! RHO times Jacobian +REAL, DIMENSION(:), intent(in) :: PPRES ! Pressure +REAL, DIMENSION(:), intent(in) :: PZT ! Temperature +REAL, DIMENSION(:), intent(in) :: PLBDAR ! Slope parameter of the raindrop distribution +REAL, DIMENSION(:), intent(in) :: PLBDAR_RF! Slope parameter of the raindrop distribution + ! for the Rain Fraction part +REAL, DIMENSION(:), intent(in) :: PLVFACT ! L_v/(Pi_ref*C_ph) +REAL, DIMENSION(:), intent(in) :: PCJ ! Function to compute the ventilation coefficient +REAL, DIMENSION(:), intent(in) :: PKA ! Thermal conductivity of the air +REAL, DIMENSION(:), intent(in) :: PDV ! Diffusivity of water vapor in the air +REAL, DIMENSION(:), intent(in) :: PRF ! Rain fraction +REAL, DIMENSION(:), intent(in) :: PCF ! Cloud fraction +REAL, DIMENSION(:), intent(in) :: PTHT ! Potential temperature +REAL, DIMENSION(:), intent(in) :: PTHLT ! Liquid potential temperature +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ3D ! Dry density * Jacobian +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHS3D ! Theta source +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRVS3D ! Water vapor m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRVS ! Water vapor m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRCS ! Cloud water m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PRRS ! Rain water m.r. source +REAL, DIMENSION(:), INTENT(INOUT) :: PTHS ! Theta source +!PW: PUSW could be a purely local variable? +REAL, DIMENSION(:), INTENT(INOUT) :: PUSW ! Undersaturation over water +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PEVAP3D ! Rain evap profile +! +!* 0.2 declaration of local variables +! +REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array +REAL, DIMENSION(size(PRHODREF)) :: ZZW2 ! Work array +REAL, DIMENSION(size(PRHODREF)) :: ZZW3 ! Work array +REAL, DIMENSION(size(PRHODREF)) :: ZZW4 ! Work array +! +!------------------------------------------------------------------------------- +! +!* 4.2 compute the autoconversion of r_c for r_r production: RCAUTR +! + + WHERE( PRCS(:)>0.0 .AND. PHLC_HCF(:).GT.0.0 ) + ZZW(:) = XTIMAUTC*MAX( PHLC_HRC(:)/PHLC_HCF(:) - XCRIAUTC/PRHODREF(:),0.0) + ZZW(:) = MIN( PRCS(:),PHLC_HCF(:)*ZZW(:)) + PRCS(:) = PRCS(:) - ZZW(:) + PRRS(:) = PRRS(:) + ZZW(:) + END WHERE +! + IF (LBUDGET_RC) CALL BUDGET ( & + UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 7,'AUTO_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET ( & + UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 8,'AUTO_BU_RRR') +! +!* 4.3 compute the accretion of r_c for r_r production: RCACCR +! + IF (CSUBG_RC_RR_ACCR=='NONE') THEN + !CLoud water and rain are diluted over the grid box + WHERE( PRCT(:)>XRTMIN(2) .AND. PRRT(:)>XRTMIN(3) .AND. PRCS(:)>0.0 ) + ZZW(:) = MIN( PRCS(:), XFCACCR * PRCT(:) & + * PLBDAR(:)**XEXCACCR & + * PRHODREF(:)**(-XCEXVT) ) + PRCS(:) = PRCS(:) - ZZW(:) + PRRS(:) = PRRS(:) + ZZW(:) + END WHERE + + ELSEIF (CSUBG_RC_RR_ACCR=='PRFR') THEN + !Cloud water is concentrated over its fraction with possibly to parts with high and low content as set for autoconversion + !Rain is concnetrated over its fraction + !Rain in high content area fraction: PHLC_HCF + !Rain in low content area fraction: + ! if PRF<PCF (rain is entirely falling in cloud): PRF-PHLC_HCF + ! if PRF>PCF (rain is falling in cloud and in clear sky): PCF-PHLC_HCF + ! => min(PCF, PRF)-PHLC_HCF + ZZW(:) = 0. + WHERE( PHLC_HRC(:)>XRTMIN(2) .AND. PRRT(:)>XRTMIN(3) .AND. PRCS(:)>0.0 & + .AND. PHLC_HCF(:)>0 ) + !Accretion due to rain falling in high cloud content + ZZW(:) = XFCACCR * ( PHLC_HRC(:)/PHLC_HCF(:) ) & + * PLBDAR_RF(:)**XEXCACCR & + * PRHODREF(:)**(-XCEXVT) & + * PHLC_HCF + END WHERE + WHERE( PHLC_LRC(:)>XRTMIN(2) .AND. PRRT(:)>XRTMIN(3) .AND. PRCS(:)>0.0 & + .AND. PHLC_LCF(:)>0 ) + !We add acrretion due to rain falling in low cloud content + ZZW(:) = ZZW(:) + XFCACCR * ( PHLC_LRC(:)/PHLC_LCF(:) ) & + * PLBDAR_RF(:)**XEXCACCR & + * PRHODREF(:)**(-XCEXVT) & + * (MIN(PCF(:), PRF(:))-PHLC_HCF(:)) + END WHERE + ZZW(:)=MIN(PRCS(:), ZZW(:)) + PRCS(:) = PRCS(:) - ZZW(:) + PRRS(:) = PRRS(:) + ZZW(:) + + ELSE + !wrong CSUBG_RC_RR_ACCR case + WRITE(*,*) 'wrong CSUBG_RC_RR_ACCR case' + CALL PRINT_MSG(NVERB_FATAL,'GEN','RAIN_ICE_WARM','') + ENDIF + + IF (LBUDGET_RC) CALL BUDGET ( & + UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 7,'ACCR_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET ( & + UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 8,'ACCR_BU_RRR') +! +!* 4.4 compute the evaporation of r_r: RREVAV +! + ZZW(:) = 0.0 + + IF (CSUBG_RR_EVAP=='NONE') THEN + !Evaporation only when there's no cloud (RC must be 0) + WHERE( (PRRT(:)>XRTMIN(3)) .AND. (PRCT(:)<=XRTMIN(2)) ) + ZZW(:) = EXP( XALPW - XBETAW/PZT(:) - XGAMW*ALOG(PZT(:) ) ) ! es_w + PUSW(:) = 1.0 - PRVT(:)*( PPRES(:)-ZZW(:) ) / ( (XMV/XMD) * ZZW(:) ) + ! Undersaturation over water + ZZW(:) = ( XLVTT+(XCPV-XCL)*(PZT(:)-XTT) )**2 / ( PKA(:)*XRV*PZT(:)**2 ) & + + ( XRV*PZT(:) ) / ( PDV(:)*ZZW(:) ) + ZZW(:) = MIN( PRRS(:),( MAX( 0.0,PUSW(:) )/(PRHODREF(:)*ZZW(:)) ) * & + ( X0EVAR*PLBDAR(:)**XEX0EVAR+X1EVAR*PCJ(:)*PLBDAR(:)**XEX1EVAR ) ) + PRRS(:) = PRRS(:) - ZZW(:) + PRVS(:) = PRVS(:) + ZZW(:) + PTHS(:) = PTHS(:) - ZZW(:)*PLVFACT(:) + END WHERE + + ELSEIF (CSUBG_RR_EVAP=='CLFR' .OR. CSUBG_RR_EVAP=='PRFR') THEN + !Evaporation in clear sky part + !With CLFR, rain is diluted over the grid box + !With PRFR, rain is concentrated in its fraction + !Use temperature and humidity in clear sky part like Bechtold et al. (1993) + IF (CSUBG_RR_EVAP=='CLFR') THEN + ZZW4(:)=1. !Precipitation fraction + ZZW3(:)=PLBDAR(:) + ELSE + ZZW4(:)=PRF(:) !Precipitation fraction + ZZW3(:)=PLBDAR_RF(:) + ENDIF + + !ATTENTION + !Il faudrait recalculer les variables PKA, PDV, PCJ en tenant compte de la température T^u + !Ces variables devraient être sorties de rain_ice_slow et on mettrait le calcul de T^u, T^s + !et plusieurs versions (comme actuellement, en ciel clair, en ciel nuageux) de PKA, PDV, PCJ dans rain_ice + !On utiliserait la bonne version suivant l'option NONE, CLFR... dans l'évaporation et ailleurs + + WHERE( (PRRT(:)>XRTMIN(3)) .AND. ( ZZW4(:) > PCF(:) ) ) + ! outside the cloud (environment) the use of T^u (unsaturated) instead of T + ! Bechtold et al. 1993 + ! + ! T^u = T_l = theta_l * (T/theta) + ZZW2(:) = PTHLT(:) * PZT(:) / PTHT(:) + ! + ! es_w with new T^u + ZZW(:) = EXP( XALPW - XBETAW/ZZW2(:) - XGAMW*ALOG(ZZW2(:) ) ) + ! + ! S, Undersaturation over water (with new theta^u) + PUSW(:) = 1.0 - PRVT(:)*( PPRES(:)-ZZW(:) ) / ( (XMV/XMD) * ZZW(:) ) + ! + ZZW(:) = ( XLVTT+(XCPV-XCL)*(ZZW2(:)-XTT) )**2 / ( PKA(:)*XRV*ZZW2(:)**2 ) & + + ( XRV*ZZW2(:) ) / ( PDV(:)*ZZW(:) ) + ! + ZZW(:) = MAX( 0.0,PUSW(:) )/(PRHODREF(:)*ZZW(:)) * & + ( X0EVAR*ZZW3(:)**XEX0EVAR+X1EVAR*PCJ(:)*ZZW3(:)**XEX1EVAR ) + ! + ZZW(:) = MIN( PRRS(:), ZZW(:) *( ZZW4(:) - PCF(:) ) ) + ! + PRRS(:) = PRRS(:) - ZZW(:) + PRVS(:) = PRVS(:) + ZZW(:) + PTHS(:) = PTHS(:) - ZZW(:)*PLVFACT(:) + END WHERE + + ELSE + !wrong CSUBG_RR_EVAP case + WRITE(*,*) 'wrong CSUBG_RR_EVAP case' + CALL PRINT_MSG(NVERB_FATAL,'GEN','RAIN_ICE_WARM','') + END IF + + IF (LBUDGET_TH) CALL BUDGET ( & + UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & + 4,'REVA_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET ( & + UNPACK(PRVS(:),MASK=OMICRO(:,:,:),FIELD=PRVS3D)*PRHODJ3D(:,:,:), & + 6,'REVA_BU_RRV') + IF (LBUDGET_RR) CALL BUDGET ( & + UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & + 8,'REVA_BU_RRR') + PEVAP3D(:,:,:)=UNPACK(ZZW(:),MASK=OMICRO(:,:,:),FIELD=PEVAP3D(:,:,:)) +! + END SUBROUTINE RAIN_ICE_WARM + +END MODULE MODE_RAIN_ICE_WARM -- GitLab From b9be1b4e19c1f571498f302d6e07f27eb4e47e7d Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 27 Feb 2019 14:54:11 +0100 Subject: [PATCH 074/139] Philippe 27/02/2019: minor: force only in module uses + improve readability --- src/MNH/rain_ice.f90 | 261 +++++++++++------------ src/MNH/rain_ice_fast_rg.f90 | 30 +-- src/MNH/rain_ice_fast_rh.f90 | 32 +-- src/MNH/rain_ice_fast_ri.f90 | 11 +- src/MNH/rain_ice_fast_rs.f90 | 33 +-- src/MNH/rain_ice_nucleation.f90 | 73 +++---- src/MNH/rain_ice_sedimentation_split.f90 | 190 +++++++++-------- src/MNH/rain_ice_sedimentation_stat.f90 | 35 +-- src/MNH/rain_ice_slow.f90 | 13 +- src/MNH/rain_ice_warm.f90 | 12 +- 10 files changed, 350 insertions(+), 340 deletions(-) diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90 index 652541015..51f318aa2 100644 --- a/src/MNH/rain_ice.f90 +++ b/src/MNH/rain_ice.f90 @@ -60,21 +60,20 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRRS ! Rain water m.r. source REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRIS ! Pristine ice m.r. source REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRSS ! Snow/aggregate m.r. source REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRGS ! Graupel m.r. source - ! -REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC! Cloud instant precip -REAL, DIMENSION(:,:), INTENT(INOUT) :: PINDEP ! Cloud instant deposition -REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRR! Rain instant precip -REAL, DIMENSION(:,:,:),INTENT(OUT) :: PINPRR3D! Rain inst precip 3D -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PEVAP3D! Rain evap profile -REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRS! Snow instant precip -REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRG! Graupel instant precip -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRAINFR! Rain fraction -REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! Sea Mask -REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN! Fraction that is town -REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t -REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(INOUT) :: PRHS ! Hail m.r. source -REAL, DIMENSION(:,:), OPTIONAL, INTENT(INOUT) :: PINPRH! Hail instant precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC! Cloud instant precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINDEP ! Cloud instant deposition +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRR! Rain instant precip +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PINPRR3D! Rain inst precip 3D +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PEVAP3D! Rain evap profile +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRS! Snow instant precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRG! Graupel instant precip +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRAINFR! Rain fraction +REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! Sea Mask +REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN! Fraction that is town +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(INOUT) :: PRHS ! Hail m.r. source +REAL, DIMENSION(:,:), OPTIONAL, INTENT(INOUT) :: PINPRH! Hail instant precip REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT) :: PFPR ! upper-air precipitation fluxes ! END SUBROUTINE RAIN_ICE @@ -245,33 +244,32 @@ END MODULE MODI_RAIN_ICE !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS -USE MODD_CST -USE MODD_CONF -USE MODD_RAIN_ICE_DESCR -USE MODD_RAIN_ICE_PARAM -USE MODD_PARAM_ICE -USE MODD_BUDGET -USE MODD_LES -USE MODI_BUDGET -USE MODI_GAMMA -USE MODE_FMWRIT -USE MODE_ll -USE MODE_MSG -USE MODE_RAIN_ICE_FAST_RG, only: RAIN_ICE_FAST_RG -USE MODE_RAIN_ICE_FAST_RH, only: RAIN_ICE_FAST_RH -USE MODE_RAIN_ICE_FAST_RI, only: RAIN_ICE_FAST_RI -USE MODE_RAIN_ICE_FAST_RS, only: RAIN_ICE_FAST_RS -USE MODE_RAIN_ICE_NUCLEATION, only: RAIN_ICE_NUCLEATION -USE MODE_RAIN_ICE_SEDIMENTATION_SPLIT, only: RAIN_ICE_SEDIMENTATION_SPLIT -USE MODE_RAIN_ICE_SEDIMENTATION_STAT, only: RAIN_ICE_SEDIMENTATION_STAT -USE MODE_RAIN_ICE_SLOW, only: RAIN_ICE_SLOW -USE MODE_RAIN_ICE_WARM, only: RAIN_ICE_WARM +use MODD_BUDGET, only: LBU_ENABLE, LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, & + LBUDGET_RR, LBUDGET_RS, LBUDGET_RV, LBUDGET_TH +use MODD_CST, only: XCI, XCL, XCPD, XCPV, XLSTT, XLVTT, XTT +use MODD_CST, only: XALPI, XBETAI, XGAMI, XMD, XMV, XTT +use MODD_LES, only: LLES_CALL +use MODD_PARAMETERS, only: JPVEXT +use MODD_PARAM_ICE, only: CSUBG_PR_PDF, LDEPOSC +use MODD_RAIN_ICE_DESCR, only: XLBEXR, XLBR, XRTMIN +use MODD_RAIN_ICE_PARAM, only: XCRIAUTC +! +use MODE_MSG +use MODE_RAIN_ICE_FAST_RG, only: RAIN_ICE_FAST_RG +use MODE_RAIN_ICE_FAST_RH, only: RAIN_ICE_FAST_RH +use MODE_RAIN_ICE_FAST_RI, only: RAIN_ICE_FAST_RI +use MODE_RAIN_ICE_FAST_RS, only: RAIN_ICE_FAST_RS +use MODE_RAIN_ICE_NUCLEATION, only: RAIN_ICE_NUCLEATION +use MODE_RAIN_ICE_SEDIMENTATION_SPLIT, only: RAIN_ICE_SEDIMENTATION_SPLIT +use MODE_RAIN_ICE_SEDIMENTATION_STAT, only: RAIN_ICE_SEDIMENTATION_STAT +use MODE_RAIN_ICE_SLOW, only: RAIN_ICE_SLOW +use MODE_RAIN_ICE_WARM, only: RAIN_ICE_WARM ! #ifdef MNH_PGI USE MODE_PACK_PGI #endif ! +use MODI_BUDGET USE MODI_ICE4_RAINFR_VERT ! IMPLICIT NONE @@ -282,7 +280,7 @@ IMPLICIT NONE ! LOGICAL, INTENT(IN) :: OSEDIC ! Switch for droplet sedim. CHARACTER(LEN=4), INTENT(IN) :: HSEDIM ! Sedimentation scheme -CHARACTER(LEN=4), INTENT(IN) :: HSUBG_AUCV +CHARACTER(LEN=4), INTENT(IN) :: HSUBG_AUCV ! Switch for rc->rr Subgrid autoconversion ! Kind of Subgrid autoconversion method LOGICAL, INTENT(IN) :: OWARM ! .TRUE. allows raindrops to ! form by warm processes @@ -297,14 +295,14 @@ REAL, INTENT(IN) :: PTSTEP ! Double Time step ! (single if cold start) INTEGER, INTENT(IN) :: KRR ! Number of moist variable ! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! Layer thikness (m) +REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! Layer thikness (m) REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF! Reference density REAL, DIMENSION(:,:,:), INTENT(IN) :: PEXNREF ! Reference Exner function REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! absolute pressure at t ! REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCIT ! Pristine ice n.c. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PCLDFR! Convective Mass Flux Cloud fraction +REAL, DIMENSION(:,:,:), INTENT(IN) :: PCLDFR ! Cloud fraction ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT ! Theta at time t REAL, DIMENSION(:,:,:), INTENT(IN) :: PRVT ! Water vapor m.r. at t @@ -313,6 +311,7 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PRRT ! Rain water m.r. at t REAL, DIMENSION(:,:,:), INTENT(IN) :: PRIT ! Pristine ice m.r. at t REAL, DIMENSION(:,:,:), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t REAL, DIMENSION(:,:,:), INTENT(IN) :: PRGT ! Graupel/hail m.r. at t +! REAL, DIMENSION(:,:,:), INTENT(IN) :: PSIGS ! Sigma_s at t ! REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source @@ -323,105 +322,101 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRIS ! Pristine ice m.r. source REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRSS ! Snow/aggregate m.r. source REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRGS ! Graupel m.r. source ! -REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC! Cloud instant precip -REAL, DIMENSION(:,:), INTENT(INOUT) :: PINDEP ! Cloud instant deposition -REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRR! Rain instant precip -REAL, DIMENSION(:,:,:),INTENT(OUT) :: PINPRR3D! Rain inst precip 3D -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PEVAP3D! Rain evap profile -REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRS! Snow instant precip -REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRG! Graupel instant precip -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRAINFR! Rain fraction -REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! Sea Mask -REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN! Fraction that is town -REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t -REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(INOUT) :: PRHS ! Hail m.r. source -REAL, DIMENSION(:,:), OPTIONAL, INTENT(INOUT) :: PINPRH! Hail instant precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC! Cloud instant precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINDEP ! Cloud instant deposition +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRR! Rain instant precip +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PINPRR3D! Rain inst precip 3D +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PEVAP3D! Rain evap profile +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRS! Snow instant precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRG! Graupel instant precip +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRAINFR! Rain fraction +REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! Sea Mask +REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN! Fraction that is town +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(INOUT) :: PRHS ! Hail m.r. source +REAL, DIMENSION(:,:), OPTIONAL, INTENT(INOUT) :: PINPRH! Hail instant precip REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT) :: PFPR ! upper-air precipitation fluxes ! !* 0.2 Declarations of local variables : ! -INTEGER :: IIB ! Define the domain where is -INTEGER :: IIE ! the microphysical sources have to be computed -INTEGER :: IIT ! -INTEGER :: IJB ! -INTEGER :: IJE ! -INTEGER :: IJT ! -INTEGER :: IKB,IKTB,IKT ! -INTEGER :: IKE,IKTE ! -! -! -! -INTEGER :: IMICRO +INTEGER :: IIB ! Define the domain where is +INTEGER :: IIE ! the microphysical sources have to be computed +INTEGER :: IIT ! +INTEGER :: IJB ! +INTEGER :: IJE ! +INTEGER :: IJT ! +INTEGER :: IKB,IKTB,IKT ! +INTEGER :: IKE,IKTE ! +! +INTEGER :: IMICRO +INTEGER, DIMENSION(SIZE(PEXNREF)) :: I1,I2,I3 ! Used to replace the COUNT +INTEGER :: JL ! and PACK intrinsics LOGICAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & - :: GMICRO ! Test where to compute all processes -REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & + :: GMICRO ! Test where to compute all processes +REAL :: ZINVTSTEP +REAL :: ZCOEFFRCM +REAL, DIMENSION(:), ALLOCATABLE :: ZRVT ! Water vapor m.r. at t +REAL, DIMENSION(:), ALLOCATABLE :: ZRCT ! Cloud water m.r. at t +REAL, DIMENSION(:), ALLOCATABLE :: ZRRT ! Rain water m.r. at t +REAL, DIMENSION(:), ALLOCATABLE :: ZRIT ! Pristine ice m.r. at t +REAL, DIMENSION(:), ALLOCATABLE :: ZRST ! Snow/aggregate m.r. at t +REAL, DIMENSION(:), ALLOCATABLE :: ZRGT ! Graupel m.r. at t +REAL, DIMENSION(:), ALLOCATABLE :: ZRHT ! Hail m.r. at t +REAL, DIMENSION(:), ALLOCATABLE :: ZCIT ! Pristine ice conc. at t +! +REAL, DIMENSION(:), ALLOCATABLE :: ZRVS ! Water vapor m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRCS ! Cloud water m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRRS ! Rain water m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRIS ! Pristine ice m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRSS ! Snow/aggregate m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRGS ! Graupel m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRHS ! Hail m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZTHS ! Theta source +REAL, DIMENSION(:), ALLOCATABLE :: ZTHT ! Potential temperature +REAL, DIMENSION(:), ALLOCATABLE :: ZTHLT ! Liquid potential temperature +! +REAL, DIMENSION(:), ALLOCATABLE :: ZRHODREF, & ! RHO Dry REFerence + ZRHODJ, & ! RHO times Jacobian + ZZT, & ! Temperature + ZPRES, & ! Pressure + ZEXNREF, & ! EXNer Pressure REFerence + ZZW, & ! Work array + ZLSFACT, & ! L_s/(Pi_ref*C_ph) + ZLVFACT, & ! L_v/(Pi_ref*C_ph) + ZUSW, & ! Undersaturation over water + ZSSI, & ! Supersaturation over ice + ZLBDAR, & ! Slope parameter of the raindrop distribution + ZLBDAR_RF,& ! Slope parameter of the raindrop distribution + ! for the Rain Fraction part + ZLBDAS, & ! Slope parameter of the aggregate distribution + ZLBDAG, & ! Slope parameter of the graupel distribution + ZLBDAH, & ! Slope parameter of the hail distribution + ZRDRYG, & ! Dry growth rate of the graupeln + ZRWETG, & ! Wet growth rate of the graupeln + ZAI, & ! Thermodynamical function + ZCJ, & ! Function to compute the ventilation coefficient + ZKA, & ! Thermal conductivity of the air + ZDV, & ! Diffusivity of water vapor in the air + ZSIGMA_RC,& ! Standard deviation of rc at time t + ZCF, & ! Cloud fraction + ZRF, & ! Rain fraction + ZHLC_HCF, & ! HLCLOUDS : fraction of High Cloud Fraction in grid + ZHLC_LCF, & ! HLCLOUDS : fraction of Low Cloud Fraction in grid + ! note that ZCF = ZHLC_HCF + ZHLC_LCF + ZHLC_HRC, & ! HLCLOUDS : LWC that is High LWC in grid + ZHLC_LRC, & ! HLCLOUDS : LWC that is Low LWC in grid + ! note that ZRC = ZHLC_HRC + ZHLC_LRC + ZHLC_RCMAX, & ! HLCLOUDS : maximum value for RC in distribution + ZRCRAUTC, & ! RC value to begin rain formation =XCRIAUTC/RHODREF + ZHLC_HRCLOCAL, & ! HLCLOUDS : LWC that is High LWC local in HCF + ZHLC_LRCLOCAL ! HLCLOUDS : LWC that is Low LWC local in LCF + ! note that ZRC/CF = ZHLC_HRCLOCAL+ ZHLC_LRCLOCAL + ! = ZHLC_HRC/HCF+ ZHLC_LRC/LCF +REAL, DIMENSION(:,:), ALLOCATABLE :: ZZW1 ! Work arrays +REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & :: ZW ! work array -REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & +REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & :: ZT ! Temperature -REAL, DIMENSION(:), ALLOCATABLE :: ZRVT ! Water vapor m.r. at t -REAL, DIMENSION(:), ALLOCATABLE :: ZRCT ! Cloud water m.r. at t -REAL, DIMENSION(:), ALLOCATABLE :: ZRRT ! Rain water m.r. at t -REAL, DIMENSION(:), ALLOCATABLE :: ZRIT ! Pristine ice m.r. at t -REAL, DIMENSION(:), ALLOCATABLE :: ZRST ! Snow/aggregate m.r. at t -REAL, DIMENSION(:), ALLOCATABLE :: ZRGT ! Graupel m.r. at t -REAL, DIMENSION(:), ALLOCATABLE :: ZRHT ! Hail m.r. at t -REAL, DIMENSION(:), ALLOCATABLE :: ZCIT ! Pristine ice conc. at t -! -REAL, DIMENSION(:), ALLOCATABLE :: ZRVS ! Water vapor m.r. source -REAL, DIMENSION(:), ALLOCATABLE :: ZRCS ! Cloud water m.r. source -REAL, DIMENSION(:), ALLOCATABLE :: ZRRS ! Rain water m.r. source -REAL, DIMENSION(:), ALLOCATABLE :: ZRIS ! Pristine ice m.r. source -REAL, DIMENSION(:), ALLOCATABLE :: ZRSS ! Snow/aggregate m.r. source -REAL, DIMENSION(:), ALLOCATABLE :: ZRGS ! Graupel m.r. source -REAL, DIMENSION(:), ALLOCATABLE :: ZRHS ! Hail m.r. source -REAL, DIMENSION(:), ALLOCATABLE :: ZTHS ! Theta source -REAL, DIMENSION(:), ALLOCATABLE :: ZTHT ! Potential temperature -REAL, DIMENSION(:), ALLOCATABLE :: ZTHLT ! Liquid potential temperature -! -REAL, DIMENSION(:), ALLOCATABLE & - :: ZRHODREF, & ! RHO Dry REFerence - ZRHODJ, & ! RHO times Jacobian - ZZT, & ! Temperature - ZPRES, & ! Pressure - ZEXNREF, & ! EXNer Pressure REFerence - ZZW, & ! Work array - ZLSFACT, & ! L_s/(Pi_ref*C_ph) - ZLVFACT, & ! L_v/(Pi_ref*C_ph) - ZUSW, & ! Undersaturation over water - ZSSI, & ! Supersaturation over ice - ZLBDAR, & ! Slope parameter of the raindrop distribution - ZLBDAR_RF,& ! Slope parameter of the raindrop distribution - ! for the Rain Fraction part - ZLBDAS, & ! Slope parameter of the aggregate distribution - ZLBDAG, & ! Slope parameter of the graupel distribution - ZLBDAH, & ! Slope parameter of the hail distribution - ZRDRYG, & ! Dry growth rate of the graupeln - ZRWETG, & ! Wet growth rate of the graupeln - ZAI, & ! Thermodynamical function - ZCJ, & ! Function to compute the ventilation coefficient - ZKA, & ! Thermal conductivity of the air - ZDV, & ! Diffusivity of water vapor in the air - ZSIGMA_RC,& ! Standard deviation of rc at time t - ZCF, & ! Cloud fraction - ZRF, & ! Rain fraction - ZHLC_HCF, & ! HLCLOUDS : fraction of High Cloud Fraction in grid - ZHLC_LCF, & ! HLCLOUDS : fraction of Low Cloud Fraction in grid - ! note that ZCF = ZHLC_HCF + ZHLC_LCF - ZHLC_HRC, & ! HLCLOUDS : LWC that is High LWC in grid - ZHLC_LRC, & ! HLCLOUDS : LWC that is Low LWC in grid - ! note that ZRC = ZHLC_HRC + ZHLC_LRC - ZHLC_RCMAX, & ! HLCLOUDS : maximum value for RC in distribution - ZRCRAUTC, & ! RC value to begin rain formation =XCRIAUTC/RHODREF - ZHLC_HRCLOCAL, & ! HLCLOUDS : LWC that is High LWC local in HCF - ZHLC_LRCLOCAL ! HLCLOUDS : LWC that is Low LWC local in LCF - ! note that ZRC/CF = ZHLC_HRCLOCAL+ ZHLC_LRCLOCAL - ! = ZHLC_HRC/HCF+ ZHLC_LRC/LCF -REAL, DIMENSION(:,:), ALLOCATABLE :: ZZW1 ! Work arrays -REAL :: ZINVTSTEP -! -INTEGER , DIMENSION(SIZE(GMICRO)) :: I1,I2,I3 ! Used to replace the COUNT -INTEGER :: JL ! and PACK intrinsics -REAL :: ZCOEFFRCM ! !------------------------------------------------------------------------------- ! @@ -444,13 +439,9 @@ ZINVTSTEP=1./PTSTEP !* 2. COMPUTES THE SLOW COLD PROCESS SOURCES ! -------------------------------------- ! -#ifdef RAIN_OLD -CALL RAIN_ICE_NUCLEATION_OLD -#else CALL RAIN_ICE_NUCLEATION(IIB, IIE, IJB, IJE, IKTB, IKTE,KRR,PTSTEP,& PTHT,PPABST,PRHODJ,PRHODREF,PRVT,PRCT,PRRT,PRIT,PRST,PRGT,& PCIT,PEXNREF,PTHS,PRVS,PRIS,ZT,PRHT) -#endif ! ! ! optimization by looking for locations where diff --git a/src/MNH/rain_ice_fast_rg.f90 b/src/MNH/rain_ice_fast_rg.f90 index b83d8f3b7..1829f8ca0 100644 --- a/src/MNH/rain_ice_fast_rg.f90 +++ b/src/MNH/rain_ice_fast_rg.f90 @@ -25,11 +25,15 @@ SUBROUTINE RAIN_ICE_FAST_RG(KRR, OMICRO, PRHODREF, PRVT, PRCT, PRRT, PRIT, PRST, !* 0. DECLARATIONS ! ------------ ! -use MODD_BUDGET -use MODD_CST -use MODD_PARAM_ICE -USE MODD_RAIN_ICE_DESCR -USE MODD_RAIN_ICE_PARAM +use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS, LBUDGET_TH +use MODD_CST, only: XCI, XCL, XCPV, XESTT, XLMTT, XLVTT, XMD, XMV, XRV, XTT +use MODD_RAIN_ICE_DESCR, only: XBS, XCEXVT, XCXG, XCXS, XDG, XRTMIN +use MODD_RAIN_ICE_PARAM, only: NDRYLBDAG, NDRYLBDAR, NDRYLBDAS, X0DEPG, X1DEPG, XCOLEXIG, XCOLEXSG, XCOLIG, XCOLSG, XDRYINTP1G, & + XDRYINTP1R, XDRYINTP1S, XDRYINTP2G, XDRYINTP2R, XDRYINTP2S, XEX0DEPG, XEX1DEPG, XEXICFRR, & + XEXRCFRI, XFCDRYG, XFIDRYG, XFRDRYG, XFSDRYG, XICFRR, XKER_RDRYG, XKER_SDRYG, XLBRDRYG1, & + XLBRDRYG2, XLBRDRYG3, XLBSDRYG1, XLBSDRYG2, XLBSDRYG3, XRCFRI +! +use MODI_BUDGET ! IMPLICIT NONE ! @@ -71,15 +75,13 @@ REAL, DIMENSION(:), intent(out) :: PRWETG ! Wet growth rate of the g ! !* 0.2 declaration of local variables ! -INTEGER :: IGDRY -INTEGER :: JJ -LOGICAL, DIMENSION(size(PRHODREF)) :: GDRY ! Test where to compute dry growth -INTEGER, DIMENSION(:), ALLOCATABLE :: IVEC1, IVEC2 ! Vectors of indices for - ! interpolations -REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array -REAL, DIMENSION(:), ALLOCATABLE :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for - ! interpolations -REAL, DIMENSION(size(PRHODREF),7) :: ZZW1 ! Work arrays +INTEGER :: IGDRY +INTEGER :: JJ +INTEGER, DIMENSION(:), ALLOCATABLE :: IVEC1, IVEC2 ! Vectors of indices for interpolations +LOGICAL, DIMENSION(size(PRHODREF)) :: GDRY ! Test where to compute dry growth +REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array +REAL, DIMENSION(:), ALLOCATABLE :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for interpolations +REAL, DIMENSION(size(PRHODREF),7) :: ZZW1 ! Work arrays ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/rain_ice_fast_rh.f90 b/src/MNH/rain_ice_fast_rh.f90 index e45423c09..4691df965 100644 --- a/src/MNH/rain_ice_fast_rh.f90 +++ b/src/MNH/rain_ice_fast_rh.f90 @@ -23,11 +23,15 @@ SUBROUTINE RAIN_ICE_FAST_RH(OMICRO, PRHODREF, PRVT, PRCT, PRIT, PRST, PRGT, PRHT !* 0. DECLARATIONS ! ------------ ! -use MODD_BUDGET -use MODD_CST -use MODD_PARAM_ICE -USE MODD_RAIN_ICE_DESCR -USE MODD_RAIN_ICE_PARAM +use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS, LBUDGET_TH +use MODD_CST, only: XCI, XCL, XCPV, XESTT, XLMTT, XLVTT, XMD, XMV, XRV, XTT +use MODD_RAIN_ICE_DESCR, only: XBG, XBS, XCEXVT, XCXG, XCXH, XCXS, XDH, XLBEXH, XLBH, XRTMIN +use MODD_RAIN_ICE_PARAM, only: NWETLBDAG, NWETLBDAH, NWETLBDAS, X0DEPH, X1DEPH, & + XEX0DEPH, XEX1DEPH, XFGWETH, XFSWETH, XFWETH, XKER_GWETH, XKER_SWETH, & + XLBGWETH1, XLBGWETH2, XLBGWETH3, XLBSWETH1, XLBSWETH2, XLBSWETH3, & + XWETINTP1G, XWETINTP1H, XWETINTP1S, XWETINTP2G, XWETINTP2H, XWETINTP2S +! +use MODI_BUDGET ! IMPLICIT NONE ! @@ -65,16 +69,14 @@ REAL, DIMENSION(:), intent(inout) :: PUSW ! Undersaturation over wat ! !* 0.2 declaration of local variables ! -INTEGER :: IHAIL, IGWET -INTEGER :: JJ -LOGICAL, DIMENSION(size(PRHODREF)) :: GWET ! Test where to compute wet growth -LOGICAL, DIMENSION(size(PRHODREF)) :: GHAIL ! Test where to compute hail growth -INTEGER, DIMENSION(:), ALLOCATABLE :: IVEC1, IVEC2 ! Vectors of indices for - ! interpolations -REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array -REAL, DIMENSION(:), ALLOCATABLE :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for - ! interpolations -REAL, DIMENSION(size(PRHODREF),6) :: ZZW1 ! Work arrays +INTEGER :: IHAIL, IGWET +INTEGER :: JJ +INTEGER, DIMENSION(:), ALLOCATABLE :: IVEC1, IVEC2 ! Vectors of indices for interpolations +LOGICAL, DIMENSION(size(PRHODREF)) :: GWET ! Test where to compute wet growth +LOGICAL, DIMENSION(size(PRHODREF)) :: GHAIL ! Test where to compute hail growth +REAL, DIMENSION(:), ALLOCATABLE :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for interpolations +REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array +REAL, DIMENSION(size(PRHODREF),6) :: ZZW1 ! Work arrays ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/rain_ice_fast_ri.f90 b/src/MNH/rain_ice_fast_ri.f90 index 90092fff9..2ed51c7ff 100644 --- a/src/MNH/rain_ice_fast_ri.f90 +++ b/src/MNH/rain_ice_fast_ri.f90 @@ -22,11 +22,12 @@ SUBROUTINE RAIN_ICE_FAST_RI(OMICRO, PRHODREF, PRIT, PRHODJ, PZT, PSSI, PLSFACT, !* 0. DECLARATIONS ! ------------ ! -use MODD_BUDGET -use MODD_CST -use MODD_PARAM_ICE -USE MODD_RAIN_ICE_DESCR -USE MODD_RAIN_ICE_PARAM +use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RI, LBUDGET_TH +use MODD_CST, only: XTT +use MODD_RAIN_ICE_DESCR, only: XDI, XLBEXI, XLBI, XRTMIN +use MODD_RAIN_ICE_PARAM, only: X0DEPI, X2DEPI +! +use MODI_BUDGET ! IMPLICIT NONE ! diff --git a/src/MNH/rain_ice_fast_rs.f90 b/src/MNH/rain_ice_fast_rs.f90 index ae822783d..3a3749cfa 100644 --- a/src/MNH/rain_ice_fast_rs.f90 +++ b/src/MNH/rain_ice_fast_rs.f90 @@ -23,11 +23,16 @@ SUBROUTINE RAIN_ICE_FAST_RS(PTSTEP, OMICRO, PRHODREF, PRVT, PRCT, PRRT, PRST, PR !* 0. DECLARATIONS ! ------------ ! -use MODD_BUDGET -use MODD_CST -use MODD_PARAM_ICE -USE MODD_RAIN_ICE_DESCR -USE MODD_RAIN_ICE_PARAM +use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RR, LBUDGET_RS, LBUDGET_TH +use MODD_CST, only: XCL, XCPV, XESTT, XLMTT, XLVTT, XMD, XMV, XRV, XTT +use MODD_RAIN_ICE_DESCR, only: XBS, XCEXVT, XCXS, XRTMIN +use MODD_RAIN_ICE_PARAM, only: NACCLBDAR, NACCLBDAS, NGAMINC, X0DEPS, X1DEPS, XACCINTP1R, XACCINTP1S, XACCINTP2R, XACCINTP2S, & + XCRIMSG, XCRIMSS, XEX0DEPS, XEX1DEPS, XEXCRIMSG, XEXCRIMSS, XEXSRIMCG, XFRACCSS, & + XFSACCRG, XFSCVMG, XGAMINC_RIM1, XGAMINC_RIM1, XGAMINC_RIM2, XKER_RACCS, & + XKER_RACCSS, XKER_SACCRG, XLBRACCS1, XLBRACCS2, XLBRACCS3, XLBSACCR1, XLBSACCR2, XLBSACCR3, & + XRIMINTP1, XRIMINTP2, XSRIMCG +! +use MODI_BUDGET ! IMPLICIT NONE ! @@ -61,16 +66,14 @@ REAL, DIMENSION(:), INTENT(INOUT) :: PTHS ! Theta source ! !* 0.2 declaration of local variables ! -INTEGER :: IGRIM, IGACC -INTEGER :: JJ -LOGICAL, DIMENSION(size(PRHODREF)) :: GRIM ! Test where to compute riming -LOGICAL, DIMENSION(size(PRHODREF)) :: GACC ! Test where to compute accretion -INTEGER, DIMENSION(:), ALLOCATABLE :: IVEC1, IVEC2 ! Vectors of indices for - ! interpolations -REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array -REAL, DIMENSION(size(PRHODREF),4) :: ZZW1 ! Work arrays -REAL, DIMENSION(:), ALLOCATABLE :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for - ! interpolations +INTEGER :: IGRIM, IGACC +INTEGER :: JJ +INTEGER, DIMENSION(:), ALLOCATABLE :: IVEC1, IVEC2 ! Vectors of indices for interpolations +LOGICAL, DIMENSION(size(PRHODREF)) :: GRIM ! Test where to compute riming +LOGICAL, DIMENSION(size(PRHODREF)) :: GACC ! Test where to compute accretion +REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array +REAL, DIMENSION(:), ALLOCATABLE :: ZVEC1,ZVEC2,ZVEC3 ! Work vectors for interpolations +REAL, DIMENSION(size(PRHODREF),4) :: ZZW1 ! Work arrays !------------------------------------------------------------------------------- ! !* 5.1 cloud droplet riming of the aggregates diff --git a/src/MNH/rain_ice_nucleation.f90 b/src/MNH/rain_ice_nucleation.f90 index faa2574bf..4fd4b2625 100644 --- a/src/MNH/rain_ice_nucleation.f90 +++ b/src/MNH/rain_ice_nucleation.f90 @@ -23,54 +23,55 @@ SUBROUTINE RAIN_ICE_NUCLEATION(KIB, KIE, KJB, KJE, KKTB, KKTE,KRR,PTSTEP,& !* 0. DECLARATIONS ! ------------ ! -USE MODD_BUDGET -USE MODD_CST -USE MODD_RAIN_ICE_PARAM -USE MODD_RAIN_ICE_DESCR, ONLY : XRTMIN -USE MODD_PARAM_ICE, ONLY : LFEEDBACKT +use MODD_BUDGET, only: LBUDGET_RI, LBUDGET_RV, LBUDGET_TH +use MODD_CST, only: XALPI, XALPW, XBETAI, XBETAW, XCI, XCL, XCPD, XCPV, XGAMI, XGAMW, & + XLSTT, XMD, XMV, XP00, XRD, XTT +use MODD_RAIN_ICE_PARAM, only: XALPHA1, XALPHA2, XBETA1, XBETA2, XMNU0, XNU10, XNU20 +! +use MODI_BUDGET ! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : ! INTEGER, INTENT(IN) :: KIB, KIE, KJB, KJE, KKTB, KKTE -INTEGER, INTENT(IN) :: KRR ! Number of moist variable -REAL, INTENT(IN) :: PTSTEP ! Double Time step - ! (single if cold start) -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT ! Theta at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! absolute pressure at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF! Reference density -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRVT ! Water vapor m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRCT ! Cloud water m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRRT ! Rain water m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRIT ! Pristine ice m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRGT ! Graupel/hail m.r. at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCIT ! Pristine ice n.c. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PEXNREF ! Reference Exner function -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRVS ! Water vapor m.r. source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRIS ! Pristine ice m.r. source -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PT ! Temperature +INTEGER, INTENT(IN) :: KRR ! Number of moist variable +REAL, INTENT(IN) :: PTSTEP ! Double Time step + ! (single if cold start) +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT ! Theta at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! absolute pressure at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF! Reference density +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRVT ! Water vapor m.r. at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRCT ! Cloud water m.r. at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRRT ! Rain water m.r. at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRIT ! Pristine ice m.r. at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRGT ! Graupel/hail m.r. at t +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCIT ! Pristine ice n.c. at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PEXNREF ! Reference Exner function +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRVS ! Water vapor m.r. source +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRIS ! Pristine ice m.r. source +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PT ! Temperature REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t ! !* 0.2 declaration of local variables ! -INTEGER :: INEGT -INTEGER :: JL ! and PACK intrinsics -INTEGER , DIMENSION(SIZE(PEXNREF)) :: I1,I2,I3 ! Used to replace the COUNT +INTEGER :: INEGT +INTEGER :: JL ! and PACK intrinsics +INTEGER, DIMENSION(SIZE(PEXNREF)) :: I1,I2,I3 ! Used to replace the COUNT LOGICAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & - :: GNEGT ! Test where to compute the HEN process -REAL, DIMENSION(:), ALLOCATABLE :: ZRVT ! Water vapor m.r. at t -REAL, DIMENSION(:), ALLOCATABLE :: ZCIT ! Pristine ice conc. at t -REAL, DIMENSION(:), ALLOCATABLE :: ZZT, & ! Temperature - ZPRES, & ! Pressure - ZZW, & ! Work array - ZUSW, & ! Undersaturation over water - ZSSI ! Supersaturation over ice + :: GNEGT ! Test where to compute the HEN process +REAL, DIMENSION(:), ALLOCATABLE :: ZRVT ! Water vapor m.r. at t +REAL, DIMENSION(:), ALLOCATABLE :: ZCIT ! Pristine ice conc. at t +REAL, DIMENSION(:), ALLOCATABLE :: ZZT, & ! Temperature + ZPRES, & ! Pressure + ZZW, & ! Work array + ZUSW, & ! Undersaturation over water + ZSSI ! Supersaturation over ice REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & - :: ZW ! work array + :: ZW ! work array ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/rain_ice_sedimentation_split.f90 b/src/MNH/rain_ice_sedimentation_split.f90 index f8441d3a9..d7637345e 100644 --- a/src/MNH/rain_ice_sedimentation_split.f90 +++ b/src/MNH/rain_ice_sedimentation_split.f90 @@ -24,120 +24,122 @@ SUBROUTINE RAIN_ICE_SEDIMENTATION_SPLIT(KIB, KIE, KJB, KJE, KKB, KKE, KKTB, KKTE !* 0. DECLARATIONS ! ------------ ! -USE MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS -USE MODD_CST, only: XCPD, XP00, XRD, XRHOLW -USE MODD_PARAM_ICE, only: XVDEPOSC -USE MODD_RAIN_ICE_DESCR, only: XCC,XCONC_LAND,xconc_sea,xconc_urban,XDC,XCEXVT,XALPHAC,XNUC,XALPHAC2,XNUC2, XLBEXC,XRTMIN,& - XLBEXC, XLBC -USE MODD_RAIN_ICE_PARAM, only: xexsedg,xexsedh,XEXCSEDI,xexsedr,xexseds,xfsedg,xfsedh,xfsedi,xfsedr,xfseds,XFSEDC +use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS +use MODD_CST, only: XCPD, XP00, XRD, XRHOLW +use MODD_PARAM_ICE, only: XVDEPOSC +use MODD_RAIN_ICE_DESCR, only: XCC, XCONC_LAND, xconc_sea, xconc_urban, XDC, XCEXVT, & + XALPHAC, XNUC, XALPHAC2, XNUC2, XLBEXC, XRTMIN, XLBEXC, XLBC +use MODD_RAIN_ICE_PARAM, only: XEXSEDG, XEXSEDH, XEXCSEDI, XEXSEDR, XEXSEDS, & + XFSEDG, XFSEDH, XFSEDI, XFSEDR, XFSEDS, XFSEDC +! +use MODI_BUDGET ! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : ! -INTEGER, INTENT(IN) :: KIB, KIE, KJB, KJE, KKB, KKE, KKTB, KKTE, KKT -INTEGER, INTENT(IN) :: KKL !vert. levels type 1=MNH -1=ARO -INTEGER, INTENT(IN) :: KSPLITR ! Number of small time step - ! integration for rain sedimendation -REAL, INTENT(IN) :: PTSTEP ! Double Time step - ! (single if cold start) -INTEGER, INTENT(IN) :: KRR ! Number of moist variable -LOGICAL, INTENT(IN) :: OSEDIC ! Switch for droplet sedim. -LOGICAL, INTENT(IN) :: ODEPOSC ! Switch for droplet depos. -REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC ! Cloud instant precip -REAL, DIMENSION(:,:), INTENT(INOUT) :: PINDEP ! Cloud instant deposition -REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRR ! Rain instant precip -REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRS ! Snow instant precip -REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRG ! Graupel instant precip -REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! Layer thikness (m) -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF! Reference density -REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! absolute pressure at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT ! Theta at time t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian -REAL, DIMENSION(:,:,:),INTENT(OUT) :: PINPRR3D! Rain inst precip 3D -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRCS ! Cloud water m.r. source -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRCT ! Cloud water m.r. at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRRS ! Rain water m.r. source -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRRT ! Rain water m.r. at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRIS ! Pristine ice m.r. source -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRIT ! Pristine ice m.r. at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRSS ! Snow/aggregate m.r. source -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRGS ! Graupel m.r. source -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRGT ! Graupel/hail m.r. at t -REAL, DIMENSION(:,:), OPTIONAL,INTENT(IN) :: PSEA ! Sea Mask -REAL, DIMENSION(:,:), OPTIONAL,INTENT(IN) :: PTOWN ! Fraction that is town -REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: PINPRH ! Hail instant precip -REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(INOUT) :: PRHS ! Hail m.r. source -REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t +INTEGER, INTENT(IN) :: KIB, KIE, KJB, KJE, KKB, KKE, KKTB, KKTE, KKT +INTEGER, INTENT(IN) :: KKL !vert. levels type 1=MNH -1=ARO +INTEGER, INTENT(IN) :: KSPLITR ! Number of small time step + ! integration for rain sedimendation +REAL, INTENT(IN) :: PTSTEP ! Double Time step + ! (single if cold start) +INTEGER, INTENT(IN) :: KRR ! Number of moist variable +LOGICAL, INTENT(IN) :: OSEDIC ! Switch for droplet sedim. +LOGICAL, INTENT(IN) :: ODEPOSC ! Switch for droplet depos. +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPRC ! Cloud instant precip +REAL, DIMENSION(:,:), INTENT(INOUT) :: PINDEP ! Cloud instant deposition +REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRR ! Rain instant precip +REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRS ! Snow instant precip +REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRG ! Graupel instant precip +REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! Layer thikness (m) +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF! Reference density +REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! absolute pressure at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT ! Theta at time t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PINPRR3D! Rain inst precip 3D +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRCS ! Cloud water m.r. source +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRCT ! Cloud water m.r. at t +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRRS ! Rain water m.r. source +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRRT ! Rain water m.r. at t +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRIS ! Pristine ice m.r. source +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRIT ! Pristine ice m.r. at t +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRSS ! Snow/aggregate m.r. source +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRGS ! Graupel m.r. source +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRGT ! Graupel/hail m.r. at t +REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! Sea Mask +REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN ! Fraction that is town +REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: PINPRH ! Hail instant precip +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(INOUT) :: PRHS ! Hail m.r. source +REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PRHT ! Hail m.r. at t REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT) :: PFPR ! upper-air precipitation fluxes ! !* 0.2 declaration of local variables ! ! -INTEGER, SAVE :: IOLDALLOCC = 6000 -INTEGER, SAVE :: IOLDALLOCR = 6000 -INTEGER, SAVE :: IOLDALLOCI = 6000 -INTEGER, SAVE :: IOLDALLOCS = 6000 -INTEGER, SAVE :: IOLDALLOCG = 6000 -INTEGER, SAVE :: IOLDALLOCH = 6000 -INTEGER :: ILENALLOCC,ILENALLOCR,ILENALLOCI,ILENALLOCS,ILENALLOCG,ILENALLOCH -INTEGER :: ILISTLENC,ILISTLENR,ILISTLENI,ILISTLENS,ILISTLENG,ILISTLENH -INTEGER :: ISEDIMR,ISEDIMC, ISEDIMI, ISEDIMS, ISEDIMG, ISEDIMH -INTEGER :: JK ! Vertical loop index for the rain sedimentation -INTEGER :: JN ! Temporal loop index for the rain sedimentation -INTEGER :: JJ ! Loop index for the interpolation -INTEGER :: JL -INTEGER , DIMENSION(SIZE(PRCS)) :: IC1,IC2,IC3 ! Used to replace the COUNT -INTEGER , DIMENSION(SIZE(PRCS)) :: IR1,IR2,IR3 ! Used to replace the COUNT -INTEGER , DIMENSION(SIZE(PRCS)) :: IS1,IS2,IS3 ! Used to replace the COUNT -INTEGER , DIMENSION(SIZE(PRCS)) :: II1,II2,II3 ! Used to replace the COUNT -INTEGER , DIMENSION(SIZE(PRCS)) :: IG1,IG2,IG3 ! Used to replace the COUNT -INTEGER , DIMENSION(SIZE(PRCS)) :: IH1,IH2,IH3 ! Used to replace the COUNT +INTEGER, SAVE :: IOLDALLOCC = 6000 +INTEGER, SAVE :: IOLDALLOCR = 6000 +INTEGER, SAVE :: IOLDALLOCI = 6000 +INTEGER, SAVE :: IOLDALLOCS = 6000 +INTEGER, SAVE :: IOLDALLOCG = 6000 +INTEGER, SAVE :: IOLDALLOCH = 6000 +INTEGER :: ILENALLOCC,ILENALLOCR,ILENALLOCI,ILENALLOCS,ILENALLOCG,ILENALLOCH +INTEGER :: ILISTLENC,ILISTLENR,ILISTLENI,ILISTLENS,ILISTLENG,ILISTLENH +INTEGER :: ISEDIMR,ISEDIMC, ISEDIMI, ISEDIMS, ISEDIMG, ISEDIMH +INTEGER :: JK ! Vertical loop index for the rain sedimentation +INTEGER :: JN ! Temporal loop index for the rain sedimentation +INTEGER :: JJ ! Loop index for the interpolation +INTEGER :: JL +INTEGER, DIMENSION(SIZE(PRCS)) :: IC1,IC2,IC3 ! Used to replace the COUNT +INTEGER, DIMENSION(SIZE(PRCS)) :: IR1,IR2,IR3 ! Used to replace the COUNT +INTEGER, DIMENSION(SIZE(PRCS)) :: IS1,IS2,IS3 ! Used to replace the COUNT +INTEGER, DIMENSION(SIZE(PRCS)) :: II1,II2,II3 ! Used to replace the COUNT +INTEGER, DIMENSION(SIZE(PRCS)) :: IG1,IG2,IG3 ! Used to replace the COUNT +INTEGER, DIMENSION(SIZE(PRCS)) :: IH1,IH2,IH3 ! Used to replace the COUNT INTEGER, DIMENSION(:), ALLOCATABLE :: ILISTR,ILISTC,ILISTI,ILISTS,ILISTG,ILISTH LOGICAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2)):: GDEP LOGICAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3)) & - :: GSEDIMR,GSEDIMC, GSEDIMI, GSEDIMS, GSEDIMG, GSEDIMH ! Test where to compute the SED processes -REAL :: ZINVTSTEP -REAL :: ZTSPLITR ! Small time step for rain sedimentation -REAL, DIMENSION(SIZE(XRTMIN)) :: ZRTMIN + :: GSEDIMR,GSEDIMC, GSEDIMI, GSEDIMS, GSEDIMG, GSEDIMH ! Test where to compute the SED processes +REAL :: ZINVTSTEP +REAL :: ZTSPLITR ! Small time step for rain sedimentation +REAL, DIMENSION(SIZE(XRTMIN)) :: ZRTMIN ! XRTMIN = Minimum value for the mixing ratio ! ZRTMIN = Minimum value for the source (tendency) -REAL, DIMENSION(:), ALLOCATABLE :: ZRCS ! Cloud water m.r. source -REAL, DIMENSION(:), ALLOCATABLE :: ZRRS ! Rain water m.r. source -REAL, DIMENSION(:), ALLOCATABLE :: ZRIS ! Pristine ice m.r. source -REAL, DIMENSION(:), ALLOCATABLE :: ZRSS ! Snow/aggregate m.r. source -REAL, DIMENSION(:), ALLOCATABLE :: ZRGS ! Graupel m.r. source -REAL, DIMENSION(:), ALLOCATABLE :: ZRHS ! Hail m.r. source -REAL, DIMENSION(:), ALLOCATABLE :: ZRCT ! Cloud water m.r. at t -REAL, DIMENSION(:), ALLOCATABLE :: & - ZRHODREFC,& ! RHO Dry REFerence - ZRHODREFR,& ! RHO Dry REFerence - ZRHODREFI,& ! RHO Dry REFerence - ZRHODREFS,& ! RHO Dry REFerence - ZRHODREFG,& ! RHO Dry REFerence - ZRHODREFH,& ! RHO Dry REFerence - ZCC, & ! terminal velocity - ZFSEDC1D, & ! For cloud sedimentation - ZWLBDC, & ! Slope parameter of the droplet distribution - ZCONC, & ! Concentration des aerosols - ZRAY1D, & ! Mean radius - ZWLBDA, & ! Libre parcours moyen - ZZT, & ! Temperature - ZPRES ! Pressure +REAL, DIMENSION(:), ALLOCATABLE :: ZRCS ! Cloud water m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRRS ! Rain water m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRIS ! Pristine ice m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRSS ! Snow/aggregate m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRGS ! Graupel m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRHS ! Hail m.r. source +REAL, DIMENSION(:), ALLOCATABLE :: ZRCT ! Cloud water m.r. at t +REAL, DIMENSION(:), ALLOCATABLE :: ZRHODREFC,& ! RHO Dry REFerence + ZRHODREFR,& ! RHO Dry REFerence + ZRHODREFI,& ! RHO Dry REFerence + ZRHODREFS,& ! RHO Dry REFerence + ZRHODREFG,& ! RHO Dry REFerence + ZRHODREFH,& ! RHO Dry REFerence + ZCC, & ! terminal velocity + ZFSEDC1D, & ! For cloud sedimentation + ZWLBDC, & ! Slope parameter of the droplet distribution + ZCONC, & ! Concentration des aerosols + ZRAY1D, & ! Mean radius + ZWLBDA, & ! Libre parcours moyen + ZZT, & ! Temperature + ZPRES ! Pressure REAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2)) & - :: ZCONC_TMP ! Weighted concentration -REAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3)) :: ZCONC3D ! droplet condensation + :: ZCONC_TMP ! Weighted concentration +REAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3)) :: ZCONC3D ! droplet condensation REAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3)) :: & - ZRAY, & ! Cloud Mean radius - ZLBC, & ! XLBC weighted by sea fraction - ZFSEDC + ZRAY, & ! Cloud Mean radius + ZLBC, & ! XLBC weighted by sea fraction + ZFSEDC REAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3)) & - :: ZPRCS,ZPRRS,ZPRSS,ZPRGS,ZPRHS ! Mixing ratios created during the time step + :: ZPRCS,ZPRRS,ZPRSS,ZPRGS,ZPRHS ! Mixing ratios created during the time step REAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),SIZE(PRCS,3)) & - :: ZW ! work array + :: ZW ! work array REAL, DIMENSION(SIZE(PRCS,1),SIZE(PRCS,2),0:SIZE(PRCS,3)+1) & - :: ZWSED ! sedimentation fluxes + :: ZWSED ! sedimentation fluxes !------------------------------------------------------------------------------- ! ! diff --git a/src/MNH/rain_ice_sedimentation_stat.f90 b/src/MNH/rain_ice_sedimentation_stat.f90 index 111ecf1bc..e8d07221c 100644 --- a/src/MNH/rain_ice_sedimentation_stat.f90 +++ b/src/MNH/rain_ice_sedimentation_stat.f90 @@ -25,11 +25,15 @@ SUBROUTINE RAIN_ICE_SEDIMENTATION_STAT( KIB, KIE, KJB, KJE, KKB, KKE, KKTB, KKTE !* 0. DECLARATIONS ! ------------ ! -USE MODD_BUDGET -USE MODD_CST -USE MODD_PARAM_ICE -USE MODD_RAIN_ICE_DESCR -USE MODD_RAIN_ICE_PARAM +use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS +use MODD_CST, only: XRHOLW +use MODD_PARAM_ICE, only: LDEPOSC, XVDEPOSC +use MODD_RAIN_ICE_PARAM, only: XEXSEDG, XEXSEDH, XEXCSEDI, XEXSEDR, XEXSEDS, & + XFSEDC, XFSEDG, XFSEDH, XFSEDI, XFSEDR, XFSEDS +use MODD_RAIN_ICE_DESCR, only: XALPHAC, XALPHAC2, XCC, XCEXVT, XCONC_LAND, XCONC_SEA, XCONC_URBAN, & + XDC, XLBC, XLBEXC, XNUC, XNUC2, XRTMIN +! +use MODI_BUDGET ! IMPLICIT NONE ! @@ -70,22 +74,21 @@ REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT) :: PFPR ! upper-air precipi ! !* 0.2 declaration of local variables ! -REAL :: ZINVTSTEP -REAL :: ZP1,ZP2,ZH,ZZWLBDA,ZZWLBDC,ZZCC -REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)) :: ZQP -INTEGER :: JI,JJ,JK -INTEGER :: JCOUNT, JL +INTEGER :: JI,JJ,JK +INTEGER :: JCOUNT, JL INTEGER, DIMENSION(SIZE(PRHODREF,1)*SIZE(PRHODREF,2)) :: I1, I2 -! -LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)):: GDEP -REAL, DIMENSION(SIZE(XRTMIN)) :: ZRTMIN +LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)) :: GDEP +REAL :: ZINVTSTEP +REAL :: ZP1,ZP2,ZH,ZZWLBDA,ZZWLBDC,ZZCC +REAL, DIMENSION(SIZE(XRTMIN)) :: ZRTMIN ! XRTMIN = Minimum value for the mixing ratio ! ZRTMIN = Minimum value for the source (tendency) -REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) & - :: ZPRCS,ZPRRS,ZPRSS,ZPRGS,ZPRHS ! Mixing ratios created during the time step +REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)) :: ZQP REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)) & :: ZCONC_TMP ! Weighted concentration -REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZCONC3D ! droplet condensation +REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) & + :: ZPRCS,ZPRRS,ZPRSS,ZPRGS,ZPRHS ! Mixing ratios created during the time step +REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZCONC3D ! droplet condensation REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: & ZRAY, & ! Cloud Mean radius ZLBC, & ! XLBC weighted by sea fraction diff --git a/src/MNH/rain_ice_slow.f90 b/src/MNH/rain_ice_slow.f90 index 663309b1c..eb46ad531 100644 --- a/src/MNH/rain_ice_slow.f90 +++ b/src/MNH/rain_ice_slow.f90 @@ -26,10 +26,13 @@ SUBROUTINE RAIN_ICE_SLOW(OMICRO, PINVTSTEP, PRHODREF, & !* 0. DECLARATIONS ! ------------ ! -USE MODD_BUDGET -USE MODD_CST -USE MODD_RAIN_ICE_DESCR -USE MODD_RAIN_ICE_PARAM +use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS, LBUDGET_RV, LBUDGET_TH +use MODD_CST, only: XALPI, XBETAI, XCI, XCPV, XGAMI, XLSTT, XMNH_HUGE_12_LOG, XP00, XRV, XTT +use MODD_RAIN_ICE_DESCR, only: XCEXVT, XLBDAS_MAX, XLBEXG, XLBEXS, XLBG, XLBS, XRTMIN +use MODD_RAIN_ICE_PARAM, only: X0DEPG, X0DEPS, X1DEPG, X1DEPS, XACRIAUTI, XALPHA3, XBCRIAUTI, XBETA3, XCOLEXIS, XCRIAUTI, & + XEX0DEPG, XEX0DEPS, XEX1DEPG, XEX1DEPS, XEXIAGGS, XFIAGGS, XHON, XSCFAC, XTEXAUTI, XTIMAUTI +! +use MODI_BUDGET ! IMPLICIT NONE ! @@ -68,7 +71,7 @@ REAL, DIMENSION(:), intent(OUT) :: PLBDAG ! Slope parameter of the g ! !* 0.2 declaration of local variables ! -REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array +REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array REAL, DIMENSION(size(PRHODREF)) :: ZCRIAUTI ! Snow-to-ice autoconversion thres. ! !------------------------------------------------------------------------------- diff --git a/src/MNH/rain_ice_warm.f90 b/src/MNH/rain_ice_warm.f90 index 69b48ed6e..d83fad363 100644 --- a/src/MNH/rain_ice_warm.f90 +++ b/src/MNH/rain_ice_warm.f90 @@ -23,14 +23,16 @@ SUBROUTINE RAIN_ICE_WARM(OMICRO, PRHODREF, PRVT, PRCT, PRRT, PHLC_HCF, PHLC_LCF, !* 0. DECLARATIONS ! ------------ ! -use MODD_BUDGET -use MODD_CST -use MODD_PARAM_ICE -USE MODD_RAIN_ICE_DESCR -USE MODD_RAIN_ICE_PARAM +use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RR, LBUDGET_RV, LBUDGET_TH +use MODD_CST, only: XALPW, XBETAW, XCL, XCPV, XGAMW, XLVTT, XMD, XMV, XRV, XTT +use MODD_PARAM_ICE, only: CSUBG_RC_RR_ACCR, CSUBG_RR_EVAP +use MODD_RAIN_ICE_DESCR, only: XCEXVT, XRTMIN +use MODD_RAIN_ICE_PARAM, only: X0EVAR, X1EVAR, XCRIAUTC, XEX0EVAR, XEX1EVAR, XEXCACCR, XFCACCR, XTIMAUTC ! use MODE_MSG ! +use MODI_BUDGET +! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : -- GitLab From cc05f89a7cf8363629de52ce60badf09b876e02e Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 27 Feb 2019 16:49:38 +0100 Subject: [PATCH 075/139] Philippe 27/02/2019: IO: use recursive calls to open/close DES files --- src/LIB/SURCOUCHE/src/mode_fm.f90 | 44 ++++++++++++++++--------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index 53c1fe8ea..2292f92d1 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -20,6 +20,7 @@ ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines ! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) ! P. Wautelet 19/02/2019: simplification/restructuration/cleaning of open/close subroutines (TBCto be continued) +! P. Wautelet 27/02/2019: use recursive calls to open/close DES files !----------------------------------------------------------------- MODULE MODE_FM @@ -50,12 +51,12 @@ IF ( IP == 1 ) PRINT *,'INIT L1D,L2D,LPACK = ',L1D,L2D,LPACK END SUBROUTINE SET_FMPACK_ll -SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,HPOSITION,HSTATUS,HPROGRAM_ORIG) +recursive SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,HPOSITION,HSTATUS,HPROGRAM_ORIG) ! USE MODD_CONF, ONLY: CPROGRAM USE MODD_IO_ll, ONLY: LIO_NO_WRITE, TFILEDATA ! -USE MODE_IO_ll, ONLY: OPEN_ll +USE MODE_IO_ll, ONLY: GCONFIO, OPEN_ll USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME ! TYPE(TFILEDATA), POINTER, INTENT(INOUT) :: TPFILE ! File structure @@ -74,7 +75,8 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_OPEN_ll','opening '//TRIM(TPFILE%CNAME) IF (.NOT.ASSOCIATED(TPFILE)) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','TPFILE is not associated') ! IF ( LIO_NO_WRITE .AND. TPFILE%CMODE == 'WRITE' .AND. TPFILE%CTYPE/='OUTPUTLISTING') THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_OPEN_ll','opening file '//TRIM(TPFILE%CNAME)//' in write mode but LIO_NO_WRITE is set') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_OPEN_ll','opening file '//TRIM(TPFILE%CNAME)// & + ' in write mode but LIO_NO_WRITE is set') END IF ! TZFILE_DES => NULL() @@ -105,6 +107,11 @@ SELECT CASE(TPFILE%CTYPE) CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') + !DES files + CASE('DES') + CALL OPEN_ll(TPFILE,IRESP,HDELIM='QUOTE') + + !GPS files CASE('GPS') CALL OPEN_ll(TPFILE,IRESP,HMODE='SPECIFIC') @@ -135,19 +142,22 @@ SELECT CASE(TPFILE%CTYPE) CALL OPEN_ll(TPFILE,IRESP,HPOSITION=HPOSITION,HSTATUS=HSTATUS,HMODE='GLOBAL') - CASE DEFAULT + !MesoNH files + !Remark: 'MNH' is more general than MNHBACKUP and could be in fact a MNHBACKUP file + CASE ('MNH', 'MNHBACKUP', 'MNHDIACHRONIC', 'MNHDIAG', 'MNHOUTPUT', 'PGD') + if (.not.GCONFIO) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','SET_CONFIO_ll must be called before IO_FILE_OPEN_ll') !Do not open '.des' file if OUTPUT IF(TPFILE%CTYPE/='MNHOUTPUT' .AND. CPROGRAM/='LFICDF') THEN - CALL IO_FILE_ADD2LIST(TZFILE_DES,TRIM(TPFILE%CNAME)//'.des','DES',TPFILE%CMODE,TPDATAFILE=TPFILE,OOLD=.TRUE.) !OOLD=T because the file may already be in the list - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_OPEN_ll','OPEN_ll for '//TRIM(TPFILE%CNAME)//'.des') - CALL OPEN_ll(TZFILE_DES,IRESP,HDELIM='QUOTE') - TZFILE_DES%LOPENED = .TRUE. - TZFILE_DES%NOPEN_CURRENT = TZFILE_DES%NOPEN_CURRENT + 1 - TZFILE_DES%NOPEN = TZFILE_DES%NOPEN + 1 + !OOLD=T because the file may already be in the list + CALL IO_FILE_ADD2LIST(TZFILE_DES,TRIM(TPFILE%CNAME)//'.des','DES',TPFILE%CMODE,TPDATAFILE=TPFILE,OOLD=.TRUE.) + CALL IO_FILE_OPEN_ll(TZFILE_DES,HPROGRAM_ORIG=HPROGRAM_ORIG) ENDIF ! CALL FMOPEN_ll(TPFILE,IRESP,HPROGRAM_ORIG=HPROGRAM_ORIG) + + CASE DEFAULT + call print_msg(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','invalid type '//trim(tpfile%ctype)//' for file '//trim(tpfile%cname)) END SELECT ! IF (PRESENT(KRESP)) KRESP = IRESP @@ -266,7 +276,7 @@ KRESP=IRESP END SUBROUTINE FMOPEN_ll -SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,HPROGRAM_ORIG) +recursive SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,HPROGRAM_ORIG) ! USE MODD_CONF, ONLY: CPROGRAM USE MODD_IO_ll, ONLY: TFILEDATA @@ -310,7 +320,7 @@ IF (TPFILE%NOPEN_CURRENT>1) THEN END IF ! SELECT CASE(TPFILE%CTYPE) - CASE('CHEMINPUT','CHEMTAB','GPS','METEO','NML','OUTPUTLISTING','SURFACE_DATA','TXT') + CASE('CHEMINPUT','CHEMTAB','DES','GPS','METEO','NML','OUTPUTLISTING','SURFACE_DATA','TXT') CALL CLOSE_ll(TPFILE,IRESP) ! TPFILE%NLU = -1 @@ -320,15 +330,7 @@ SELECT CASE(TPFILE%CTYPE) IF(TPFILE%CTYPE/='OUTPUT' .AND. CPROGRAM/='LFICDF') THEN CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//'.des',TZFILE_DES,IRESP) IF (IRESP/=0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_CLOSE_ll','file '//TRIM(TPFILE%CNAME)//'.des not in filelist') - ! - TZFILE_DES%NOPEN_CURRENT = TZFILE_DES%NOPEN_CURRENT - 1 - TZFILE_DES%NCLOSE = TZFILE_DES%NCLOSE + 1 - ! - IF (TZFILE_DES%NOPEN_CURRENT==0) THEN - CALL CLOSE_ll(TZFILE_DES,IRESP) - TZFILE_DES%LOPENED = .FALSE. - TZFILE_DES%NLU = -1 - END IF + CALL IO_FILE_CLOSE_ll(TZFILE_DES,KRESP=IRESP,HPROGRAM_ORIG=HPROGRAM_ORIG) ENDIF ! #if defined(MNH_IOCDF4) -- GitLab From c8f3e2ebc02308a755f7f6c3fb3ad2cd8cc11b9e Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 27 Feb 2019 17:01:57 +0100 Subject: [PATCH 076/139] Philippe 27/02/2019: IO: extract module PRINT_MSG from mode_io.f90 --- src/LIB/SURCOUCHE/src/mode_io.f90 | 126 --------------------------- src/LIB/SURCOUCHE/src/mode_msg.f90 | 134 +++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+), 126 deletions(-) create mode 100644 src/LIB/SURCOUCHE/src/mode_msg.f90 diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 1f86e1553..385f8ec01 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -509,129 +509,3 @@ CONTAINS END SUBROUTINE CLOSE_ll END MODULE MODE_IO_ll - - -MODULE MODE_MSG -! -USE MODD_IO_ll, ONLY : NVERB_FATAL,NVERB_ERROR,NVERB_WARNING,NVERB_INFO,NVERB_DEBUG -! -IMPLICIT NONE -! -CONTAINS -! -SUBROUTINE PRINT_MSG(KVERB,HDOMAIN,HSUBR,HMSG) -! -USE ISO_FORTRAN_ENV, ONLY : ERROR_UNIT, OUTPUT_UNIT -! -USE MODD_CONF, ONLY : CPROGRAM -USE MODD_IO_ll, ONLY : NIO_VERB,NIO_ABORT_LEVEL,NGEN_VERB,NGEN_ABORT_LEVEL, & - LVERB_OUTLST, LVERB_STDOUT, LVERB_ALLPRC, TFILE_OUTPUTLISTING -USE MODD_LUNIT, ONLY : TLUOUT0 -USE MODD_VAR_ll, ONLY : IP, NMNH_COMM_WORLD -! -use modi_tools_c -! -!USE MODE_FM, ONLY : IO_FILE_CLOSE_ll -! -INTEGER, INTENT(IN) :: KVERB !Verbosity level -CHARACTER(LEN=*),INTENT(IN) :: HDOMAIN !Domain/category of message -CHARACTER(LEN=*),INTENT(IN) :: HSUBR !Subroutine/function name -CHARACTER(LEN=*),INTENT(IN) :: HMSG !Message -! -CHARACTER(LEN=8) :: YPRC -CHARACTER(LEN=9) :: YPRE -CHARACTER(LEN=30) :: YSUBR -INTEGER :: IERR, IMAXVERB,IABORTLEVEL -INTEGER :: ILU -LOGICAL :: GWRITE_OUTLST,GWRITE_STDOUT -! -!Determine if the process will write -GWRITE_OUTLST = .FALSE. -GWRITE_STDOUT = .FALSE. -IF (IP == 1 .OR. LVERB_ALLPRC) THEN - IF (LVERB_OUTLST) GWRITE_OUTLST = .TRUE. - IF (LVERB_STDOUT) GWRITE_STDOUT = .TRUE. -END IF -! -YPRC='' -IF (LVERB_ALLPRC) WRITE(YPRC,'( I8 )') IP-1 -! -!Check if the output file is available -ILU = -1 -IF (ASSOCIATED(TFILE_OUTPUTLISTING)) THEN - IF (TFILE_OUTPUTLISTING%LOPENED) THEN - ILU = TFILE_OUTPUTLISTING%NLU - ELSE - GWRITE_OUTLST = .FALSE. - IF (GWRITE_STDOUT) WRITE(UNIT=OUTPUT_UNIT,FMT=*) 'TFILE_OUTPUTLISTING not opened' - END IF -ELSE -!PW: TODO?: temporary to detect non-initialisation -! should disappear except at the beginning of a run - GWRITE_OUTLST = .FALSE. - IF (GWRITE_STDOUT .AND. CPROGRAM/='LFICDF') WRITE(UNIT=OUTPUT_UNIT,FMT=*) 'TFILE_OUTPUTLISTING not associated' -END IF -! -SELECT CASE(HDOMAIN) - CASE('IO') - IMAXVERB = NIO_VERB - IABORTLEVEL = NIO_ABORT_LEVEL - CASE ('GEN') - IMAXVERB = NGEN_VERB - IABORTLEVEL = NGEN_ABORT_LEVEL - CASE DEFAULT - IF (GWRITE_STDOUT) WRITE(UNIT=OUTPUT_UNIT,FMT=*) 'ERROR: PRINT_MSG: wrong message category (',TRIM(HDOMAIN),')' - IF (GWRITE_OUTLST) WRITE(UNIT=ILU, FMT=*) 'ERROR: PRINT_MSG: wrong message category (',TRIM(HDOMAIN),')' - RETURN -END SELECT -! -IF (KVERB>IMAXVERB) RETURN -! -SELECT CASE(KVERB) - CASE(NVERB_FATAL) - YPRE='FATAL: ' - CASE(NVERB_ERROR) - YPRE='ERROR: ' - CASE(NVERB_WARNING) - YPRE='WARNING: ' - CASE(NVERB_INFO) - YPRE='INFO: ' - CASE(NVERB_DEBUG) - YPRE='DEBUG: ' - CASE DEFAULT - IF (GWRITE_STDOUT) WRITE(UNIT=OUTPUT_UNIT,FMT=*) 'ERROR: PRINT_MSG: wrong verbosity level' - IF (GWRITE_OUTLST) WRITE(UNIT=ILU, FMT=*) 'ERROR: PRINT_MSG: wrong verbosity level' -END SELECT -! -YSUBR=TRIM(HSUBR)//':' -IF (LVERB_ALLPRC) THEN - IF (GWRITE_STDOUT) WRITE(UNIT=OUTPUT_UNIT,FMT="(A8,': ',A9,A30,A)") ADJUSTL(YPRC),YPRE,YSUBR,HMSG - IF (GWRITE_OUTLST) WRITE(UNIT=ILU, FMT="(A8,': ',A9,A30,A)") ADJUSTL(YPRC),YPRE,YSUBR,HMSG -ELSE - IF (GWRITE_STDOUT) WRITE(UNIT=OUTPUT_UNIT,FMT="(A9,A30,A)") YPRE,YSUBR,HMSG - IF (GWRITE_OUTLST) WRITE(UNIT=ILU, FMT="(A9,A30,A)") YPRE,YSUBR,HMSG -END IF -! -IF (KVERB<=IABORTLEVEL) THEN - IF (IP==1) WRITE(UNIT=ERROR_UNIT,FMT=*) 'ABORT asked by application '//TRIM(CPROGRAM) - IF (GWRITE_STDOUT) WRITE(UNIT=OUTPUT_UNIT,FMT=*) 'ABORT asked by application '//TRIM(CPROGRAM) - IF (GWRITE_OUTLST) WRITE(UNIT=ILU, FMT=*) 'ABORT asked by application '//TRIM(CPROGRAM) -#if 0 - !Problem: loop dependency between MODE_MSG and MODE_FM (IO_FILE_CLOSE_ll call PRINT_MSG) - NIO_VERB = 0 !To not get further messages (ABORT should be the last for readability) - IF (ILU>0) CALL IO_FILE_CLOSE_ll(TFILE_OUTPUTLISTING) !To flush it -#else - IF (ILU>0) FLUSH(UNIT=ILU) !OK in F2003 - IF (ASSOCIATED(TLUOUT0)) FLUSH(UNIT=TLUOUT0%NLU) -#endif - !Add a sleep to ensure that the process(es) that have to write to stderr and to file - !have enough time before an other process calls mpi_abort - CALL SLEEP_C(5) - ! - CALL MPI_ABORT(NMNH_COMM_WORLD, -10, IERR) - CALL ABORT -END IF -! -END SUBROUTINE PRINT_MSG -! -END MODULE MODE_MSG diff --git a/src/LIB/SURCOUCHE/src/mode_msg.f90 b/src/LIB/SURCOUCHE/src/mode_msg.f90 new file mode 100644 index 000000000..ad5cd4191 --- /dev/null +++ b/src/LIB/SURCOUCHE/src/mode_msg.f90 @@ -0,0 +1,134 @@ +!MNH_LIC Copyright 2017-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Author(s) +! P. Wautelet 24/01/2017 +! Modifications: +! P. Wautelet 27/02/2019: module extracted from mode_io.f90 +!----------------------------------------------------------------- +MODULE MODE_MSG +! +USE MODD_IO_ll, ONLY : NVERB_FATAL,NVERB_ERROR,NVERB_WARNING,NVERB_INFO,NVERB_DEBUG +! +IMPLICIT NONE +! +CONTAINS +! +SUBROUTINE PRINT_MSG(KVERB,HDOMAIN,HSUBR,HMSG) +! +USE ISO_FORTRAN_ENV, ONLY : ERROR_UNIT, OUTPUT_UNIT +! +USE MODD_CONF, ONLY : CPROGRAM +USE MODD_IO_ll, ONLY : NIO_VERB,NIO_ABORT_LEVEL,NGEN_VERB,NGEN_ABORT_LEVEL, & + LVERB_OUTLST, LVERB_STDOUT, LVERB_ALLPRC, TFILE_OUTPUTLISTING +USE MODD_LUNIT, ONLY : TLUOUT0 +USE MODD_VAR_ll, ONLY : IP, NMNH_COMM_WORLD +! +use modi_tools_c +! +!USE MODE_FM, ONLY : IO_FILE_CLOSE_ll +! +INTEGER, INTENT(IN) :: KVERB !Verbosity level +CHARACTER(LEN=*),INTENT(IN) :: HDOMAIN !Domain/category of message +CHARACTER(LEN=*),INTENT(IN) :: HSUBR !Subroutine/function name +CHARACTER(LEN=*),INTENT(IN) :: HMSG !Message +! +CHARACTER(LEN=8) :: YPRC +CHARACTER(LEN=9) :: YPRE +CHARACTER(LEN=30) :: YSUBR +INTEGER :: IERR, IMAXVERB,IABORTLEVEL +INTEGER :: ILU +LOGICAL :: GWRITE_OUTLST,GWRITE_STDOUT +! +!Determine if the process will write +GWRITE_OUTLST = .FALSE. +GWRITE_STDOUT = .FALSE. +IF (IP == 1 .OR. LVERB_ALLPRC) THEN + IF (LVERB_OUTLST) GWRITE_OUTLST = .TRUE. + IF (LVERB_STDOUT) GWRITE_STDOUT = .TRUE. +END IF +! +YPRC='' +IF (LVERB_ALLPRC) WRITE(YPRC,'( I8 )') IP-1 +! +!Check if the output file is available +ILU = -1 +IF (ASSOCIATED(TFILE_OUTPUTLISTING)) THEN + IF (TFILE_OUTPUTLISTING%LOPENED) THEN + ILU = TFILE_OUTPUTLISTING%NLU + ELSE + GWRITE_OUTLST = .FALSE. + IF (GWRITE_STDOUT) WRITE(UNIT=OUTPUT_UNIT,FMT=*) 'TFILE_OUTPUTLISTING not opened' + END IF +ELSE +!PW: TODO?: temporary to detect non-initialisation +! should disappear except at the beginning of a run + GWRITE_OUTLST = .FALSE. + IF (GWRITE_STDOUT .AND. CPROGRAM/='LFICDF') WRITE(UNIT=OUTPUT_UNIT,FMT=*) 'TFILE_OUTPUTLISTING not associated' +END IF +! +SELECT CASE(HDOMAIN) + CASE('IO') + IMAXVERB = NIO_VERB + IABORTLEVEL = NIO_ABORT_LEVEL + CASE ('GEN') + IMAXVERB = NGEN_VERB + IABORTLEVEL = NGEN_ABORT_LEVEL + CASE DEFAULT + IF (GWRITE_STDOUT) WRITE(UNIT=OUTPUT_UNIT,FMT=*) 'ERROR: PRINT_MSG: wrong message category (',TRIM(HDOMAIN),')' + IF (GWRITE_OUTLST) WRITE(UNIT=ILU, FMT=*) 'ERROR: PRINT_MSG: wrong message category (',TRIM(HDOMAIN),')' + RETURN +END SELECT +! +IF (KVERB>IMAXVERB) RETURN +! +SELECT CASE(KVERB) + CASE(NVERB_FATAL) + YPRE='FATAL: ' + CASE(NVERB_ERROR) + YPRE='ERROR: ' + CASE(NVERB_WARNING) + YPRE='WARNING: ' + CASE(NVERB_INFO) + YPRE='INFO: ' + CASE(NVERB_DEBUG) + YPRE='DEBUG: ' + CASE DEFAULT + IF (GWRITE_STDOUT) WRITE(UNIT=OUTPUT_UNIT,FMT=*) 'ERROR: PRINT_MSG: wrong verbosity level' + IF (GWRITE_OUTLST) WRITE(UNIT=ILU, FMT=*) 'ERROR: PRINT_MSG: wrong verbosity level' +END SELECT +! +YSUBR=TRIM(HSUBR)//':' +IF (LVERB_ALLPRC) THEN + IF (GWRITE_STDOUT) WRITE(UNIT=OUTPUT_UNIT,FMT="(A8,': ',A9,A30,A)") ADJUSTL(YPRC),YPRE,YSUBR,HMSG + IF (GWRITE_OUTLST) WRITE(UNIT=ILU, FMT="(A8,': ',A9,A30,A)") ADJUSTL(YPRC),YPRE,YSUBR,HMSG +ELSE + IF (GWRITE_STDOUT) WRITE(UNIT=OUTPUT_UNIT,FMT="(A9,A30,A)") YPRE,YSUBR,HMSG + IF (GWRITE_OUTLST) WRITE(UNIT=ILU, FMT="(A9,A30,A)") YPRE,YSUBR,HMSG +END IF +! +IF (KVERB<=IABORTLEVEL) THEN + IF (IP==1) WRITE(UNIT=ERROR_UNIT,FMT=*) 'ABORT asked by application '//TRIM(CPROGRAM) + IF (GWRITE_STDOUT) WRITE(UNIT=OUTPUT_UNIT,FMT=*) 'ABORT asked by application '//TRIM(CPROGRAM) + IF (GWRITE_OUTLST) WRITE(UNIT=ILU, FMT=*) 'ABORT asked by application '//TRIM(CPROGRAM) +#if 0 + !Problem: loop dependency between MODE_MSG and MODE_FM (IO_FILE_CLOSE_ll call PRINT_MSG) + NIO_VERB = 0 !To not get further messages (ABORT should be the last for readability) + IF (ILU>0) CALL IO_FILE_CLOSE_ll(TFILE_OUTPUTLISTING) !To flush it +#else + IF (ILU>0) FLUSH(UNIT=ILU) !OK in F2003 + IF (ASSOCIATED(TLUOUT0)) FLUSH(UNIT=TLUOUT0%NLU) +#endif + !Add a sleep to ensure that the process(es) that have to write to stderr and to file + !have enough time before an other process calls mpi_abort + CALL SLEEP_C(5) + ! + CALL MPI_ABORT(NMNH_COMM_WORLD, -10, IERR) + CALL ABORT +END IF +! +END SUBROUTINE PRINT_MSG +! +END MODULE MODE_MSG -- GitLab From 65dcf2e843b9a8dd9b2f6e0bf71c594bbd26435d Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 27 Feb 2019 17:15:48 +0100 Subject: [PATCH 077/139] Philippe 27/02/2019: IO: remove CLOSE_ll subroutine --- src/LIB/SURCOUCHE/src/mode_fm.f90 | 26 +++++++++++++++++++++----- src/LIB/SURCOUCHE/src/mode_io.f90 | 30 ++---------------------------- 2 files changed, 23 insertions(+), 33 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index 2292f92d1..4b54121aa 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -21,6 +21,7 @@ ! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) ! P. Wautelet 19/02/2019: simplification/restructuration/cleaning of open/close subroutines (TBCto be continued) ! P. Wautelet 27/02/2019: use recursive calls to open/close DES files +! P. Wautelet 27/02/2019: remove CLOSE_ll subroutine (from mode_io.f90) !----------------------------------------------------------------- MODULE MODE_FM @@ -279,20 +280,20 @@ END SUBROUTINE FMOPEN_ll recursive SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,HPROGRAM_ORIG) ! USE MODD_CONF, ONLY: CPROGRAM -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO_ll, ONLY: NNULLUNIT, TFILEDATA use mode_io_file_lfi, only: io_close_file_lfi #if defined(MNH_IOCDF4) use mode_io_file_nc4, only: io_close_file_nc4 use mode_io_write_nc4, only: io_write_coordvar_nc4 #endif -USE MODE_IO_ll, ONLY: CLOSE_ll USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME ! TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure INTEGER, OPTIONAL, INTENT(OUT) :: KRESP ! Return code CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HPROGRAM_ORIG !To emulate a file coming from this program ! +character(len=256) :: yioerrmsg INTEGER :: IRESP, JI TYPE(TFILEDATA),POINTER :: TZFILE_DES TYPE(TFILEDATA),POINTER :: TZFILE_IOZ @@ -321,11 +322,22 @@ END IF ! SELECT CASE(TPFILE%CTYPE) CASE('CHEMINPUT','CHEMTAB','DES','GPS','METEO','NML','OUTPUTLISTING','SURFACE_DATA','TXT') - CALL CLOSE_ll(TPFILE,IRESP) - ! + IF (TPFILE%LMASTER) THEN + IF (TPFILE%NLU/=-1 .AND. TPFILE%NLU/=NNULLUNIT) THEN + CLOSE(UNIT=TPFILE%NLU, STATUS='KEEP', IOSTAT=IRESP, IOMSG=yioerrmsg) + END IF + END IF + + !Warning and not error or fatal if close fails to allow continuation of execution + IF (IRESP/=0) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_CLOSE_ll','Problem when closing ' & + //TRIM(TPFILE%CNAME)//': '//TRIM(YIOERRMSG)) + TPFILE%NLU = -1 - CASE DEFAULT + + !MesoNH files + !Remark: 'MNH' is more general than MNHBACKUP and could be in fact a MNHBACKUP file + CASE ('MNH', 'MNHBACKUP', 'MNHDIACHRONIC', 'MNHDIAG', 'MNHOUTPUT', 'PGD') !Do not close (non-existing) '.des' file if OUTPUT IF(TPFILE%CTYPE/='OUTPUT' .AND. CPROGRAM/='LFICDF') THEN CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//'.des',TZFILE_DES,IRESP) @@ -372,6 +384,10 @@ SELECT CASE(TPFILE%CTYPE) #endif END IF END DO SUBFILES + + + CASE DEFAULT + call print_msg(NVERB_FATAL,'IO','IO_FILE_CLOSE_ll','invalid type '//trim(tpfile%ctype)//' for file '//trim(tpfile%cname)) END SELECT ! TPFILE%LOPENED = .FALSE. diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 385f8ec01..85b9c1078 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -29,6 +29,7 @@ ! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) ! P. Wautelet 14/02/2019: move UPCASE function to tools.f90 ! P. Wautelet 19/02/2019: simplification/restructuration/cleaning of open/close subroutines (TBCto be continued) +! P. Wautelet 27/02/2019: remove CLOSE_ll subroutine ! !----------------------------------------------------------------- MODULE MODE_IO_ll @@ -44,7 +45,7 @@ MODULE MODE_IO_ll LOGICAL,SAVE :: GCONFIO = .FALSE. ! Turn TRUE when SET_CONFIO_ll is called. - PUBLIC INITIO_ll,OPEN_ll,CLOSE_ll + PUBLIC INITIO_ll,OPEN_ll PUBLIC SET_CONFIO_ll,GCONFIO CONTAINS @@ -481,31 +482,4 @@ CONTAINS END SUBROUTINE OPEN_ll - - SUBROUTINE CLOSE_ll(TPFILE,KRESP) - USE MODD_IO_ll - - TYPE(TFILEDATA), INTENT(IN) :: TPFILE - INTEGER, INTENT(OUT) :: KRESP - - character(len=256) :: yioerrmsg - INTEGER :: IRESP - - CALL PRINT_MSG(NVERB_DEBUG,'IO','CLOSE_ll','closing '//TRIM(TPFILE%CNAME)) - - IRESP = 0 - - IF (TPFILE%LMASTER) THEN - IF (TPFILE%NLU/=-1 .AND. TPFILE%NLU/=NNULLUNIT) THEN - CLOSE(UNIT=TPFILE%NLU, STATUS='KEEP', IOSTAT=IRESP, IOMSG=yioerrmsg) - END IF - END IF - - !Warning and not error or fatal if close fails to allow continuation of execution - IF (IRESP/=0) CALL PRINT_MSG(NVERB_WARNING,'IO','CLOSE_ll','Problem when closing '//TRIM(TPFILE%CNAME)//': '//TRIM(YIOERRMSG)) - - KRESP = IRESP - - END SUBROUTINE CLOSE_ll - END MODULE MODE_IO_ll -- GitLab From ee2805f313c15e1c999f1e4f0a8af2c1e58959c2 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Mar 2019 13:39:14 +0100 Subject: [PATCH 078/139] Philippe 01/03/2019: IO: restructuration of mode_io and mode_fm , creation of mode_io_file --- src/LIB/SURCOUCHE/src/mode_fm.f90 | 420 +------------ src/LIB/SURCOUCHE/src/mode_io.f90 | 384 +----------- src/LIB/SURCOUCHE/src/mode_io_file.f90 | 787 +++++++++++++++++++++++++ 3 files changed, 803 insertions(+), 788 deletions(-) create mode 100644 src/LIB/SURCOUCHE/src/mode_io_file.f90 diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index 4b54121aa..04252af39 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -25,426 +25,10 @@ !----------------------------------------------------------------- MODULE MODE_FM -USE MODE_MSG -IMPLICIT NONE - -PRIVATE - -PUBLIC SET_FMPACK_ll -PUBLIC IO_FILE_OPEN_ll, IO_FILE_CLOSE_ll - -CONTAINS - -SUBROUTINE SET_FMPACK_ll(O1D,O2D,OPACK) -USE MODD_IO_ll, ONLY: LPACK, L1D, L2D -USE MODD_VAR_ll, ONLY: IP +use mode_io_ll +use mode_io_file IMPLICIT NONE -LOGICAL, INTENT(IN) :: O1D,O2D,OPACK - -LPACK = OPACK -L1D = O1D -L2D = O2D - -IF ( IP == 1 ) PRINT *,'INIT L1D,L2D,LPACK = ',L1D,L2D,LPACK - -END SUBROUTINE SET_FMPACK_ll - -recursive SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,HPOSITION,HSTATUS,HPROGRAM_ORIG) -! -USE MODD_CONF, ONLY: CPROGRAM -USE MODD_IO_ll, ONLY: LIO_NO_WRITE, TFILEDATA -! -USE MODE_IO_ll, ONLY: GCONFIO, OPEN_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME -! -TYPE(TFILEDATA), POINTER, INTENT(INOUT) :: TPFILE ! File structure -INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! Return code -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPOSITION -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HSTATUS -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program -! -INTEGER :: IRESP -TYPE(TFILEDATA), POINTER :: TZFILE_DES -TYPE(TFILEDATA), POINTER :: TZFILE_DUMMY -! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_OPEN_ll','opening '//TRIM(TPFILE%CNAME)//' for '//TRIM(TPFILE%CMODE)// & - ' (filetype='//TRIM(TPFILE%CTYPE)//')') -! -IF (.NOT.ASSOCIATED(TPFILE)) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','TPFILE is not associated') -! -IF ( LIO_NO_WRITE .AND. TPFILE%CMODE == 'WRITE' .AND. TPFILE%CTYPE/='OUTPUTLISTING') THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_OPEN_ll','opening file '//TRIM(TPFILE%CNAME)// & - ' in write mode but LIO_NO_WRITE is set') -END IF -! -TZFILE_DES => NULL() -TZFILE_DUMMY => NULL() -! -TPFILE%NOPEN = TPFILE%NOPEN + 1 -TPFILE%NOPEN_CURRENT = TPFILE%NOPEN_CURRENT + 1 -! -IF (TPFILE%LOPENED) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_FILE_OPEN_ll','file '//TRIM(TPFILE%CNAME)//' is already in open state') - RETURN -END IF -! -TPFILE%LOPENED = .TRUE. -! -!Check if file is in filelist -CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME),TZFILE_DUMMY,IRESP) -IF (IRESP/=0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_OPEN_ll','file '//TRIM(TPFILE%CNAME)//' not in filelist') -! -SELECT CASE(TPFILE%CTYPE) - !Chemistry input files - CASE('CHEMINPUT') - CALL OPEN_ll(TPFILE,IRESP,HPOSITION='REWIND',HSTATUS='OLD',HMODE='GLOBAL') - - - !Chemistry tabulation files - CASE('CHEMTAB') - CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') - - - !DES files - CASE('DES') - CALL OPEN_ll(TPFILE,IRESP,HDELIM='QUOTE') - - - !GPS files - CASE('GPS') - CALL OPEN_ll(TPFILE,IRESP,HMODE='SPECIFIC') - - - !Meteo files - CASE('METEO') - CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') - - - !Namelist files - CASE('NML') - CALL OPEN_ll(TPFILE,IRESP,HDELIM='QUOTE',HMODE='GLOBAL') - - - !OUTPUTLISTING files - CASE('OUTPUTLISTING') - CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') - - - !SURFACE_DATA files - CASE('SURFACE_DATA') - CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') - - - !Text files - CASE('TXT') - CALL OPEN_ll(TPFILE,IRESP,HPOSITION=HPOSITION,HSTATUS=HSTATUS,HMODE='GLOBAL') - - - !MesoNH files - !Remark: 'MNH' is more general than MNHBACKUP and could be in fact a MNHBACKUP file - CASE ('MNH', 'MNHBACKUP', 'MNHDIACHRONIC', 'MNHDIAG', 'MNHOUTPUT', 'PGD') - if (.not.GCONFIO) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','SET_CONFIO_ll must be called before IO_FILE_OPEN_ll') - !Do not open '.des' file if OUTPUT - IF(TPFILE%CTYPE/='MNHOUTPUT' .AND. CPROGRAM/='LFICDF') THEN - !OOLD=T because the file may already be in the list - CALL IO_FILE_ADD2LIST(TZFILE_DES,TRIM(TPFILE%CNAME)//'.des','DES',TPFILE%CMODE,TPDATAFILE=TPFILE,OOLD=.TRUE.) - CALL IO_FILE_OPEN_ll(TZFILE_DES,HPROGRAM_ORIG=HPROGRAM_ORIG) - ENDIF - ! - CALL FMOPEN_ll(TPFILE,IRESP,HPROGRAM_ORIG=HPROGRAM_ORIG) - - - CASE DEFAULT - call print_msg(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','invalid type '//trim(tpfile%ctype)//' for file '//trim(tpfile%cname)) -END SELECT -! -IF (PRESENT(KRESP)) KRESP = IRESP -! -END SUBROUTINE IO_FILE_OPEN_ll - - -SUBROUTINE FMOPEN_ll(TPFILE,KRESP,HPROGRAM_ORIG) - -USE MODD_IO_ll, ONLY: TFILEDATA - -#if defined(MNH_IOCDF4) -use mode_io_file_nc4, only: io_create_file_nc4, io_open_file_nc4 -#endif -use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi -USE MODE_IO_ll, ONLY: OPEN_ll, GCONFIO - -TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure -INTEGER, INTENT(OUT) :: KRESP ! return-code -CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HPROGRAM_ORIG !To emulate a file coming from this program -! -! Local variables -! -INTEGER :: IRESP -CHARACTER(LEN=7) :: YACTION ! Action upon the file ('READ' or 'WRITE') -CHARACTER(LEN=8) :: YRESP -LOGICAL :: GEXIST_LFI, GEXIST_NC4 - -YACTION = TPFILE%CMODE - -CALL PRINT_MSG(NVERB_DEBUG,'IO','FMOPEN_ll','opening '//TRIM(TPFILE%CNAME)//' for '//TRIM(YACTION)) - -IF (.NOT. GCONFIO) THEN - PRINT *, 'FMOPEN_ll Aborting... Please, ensure to call SET_CONFIO_ll before & - &the first FMOPEN_ll call.' - STOP -END IF - -IRESP = 0 - -CALL OPEN_ll(TPFILE,IRESP,HMODE='IO_ZSPLIT',HPROGRAM_ORIG=HPROGRAM_ORIG) - -IF (TPFILE%LMASTER) THEN - ! Proc I/O case - INQUIRE(FILE=TRIM(TPFILE%CNAME)//'.lfi',EXIST=GEXIST_LFI) - INQUIRE(FILE=TRIM(TPFILE%CNAME)//'.nc',EXIST=GEXIST_NC4) - - IF (YACTION == 'READ') THEN - IF (.NOT.GEXIST_LFI .AND. .NOT.GEXIST_NC4) & - CALL PRINT_MSG(NVERB_FATAL,'IO','FMOPEN_ll',TRIM(TPFILE%CNAME)//': no .nc or .lfi file') - - SELECT CASE (TRIM(TPFILE%CFORMAT)) - CASE ('NETCDF4') - IF (.NOT.GEXIST_NC4 .AND. GEXIST_LFI) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','FMOPEN_ll',TRIM(TPFILE%CNAME)// & - ': .nc file does not exist but .lfi exists -> forced to LFI') - TPFILE%CFORMAT='LFI' - END IF - CASE ('LFI') - IF (.NOT.GEXIST_LFI .AND. GEXIST_NC4) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','FMOPEN_ll',TRIM(TPFILE%CNAME)// & - ': .lfi file does not exist but .nc exists -> forced to NETCDF4') - TPFILE%CFORMAT='NETCDF4' - END IF - CASE ('LFICDF4') - IF (GEXIST_NC4) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','FMOPEN_ll',TRIM(TPFILE%CNAME)// & - ': LFICDF4 format is not allowed in READ mode -> forced to NETCDF4') - TPFILE%CFORMAT='NETCDF4' - ELSE IF (GEXIST_LFI) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','FMOPEN_ll',TRIM(TPFILE%CNAME)// & - ': LFICDF4 format is not allowed in READ mode -> forced to LFI') - TPFILE%CFORMAT='LFI' - END IF - CASE DEFAULT - IF (GEXIST_NC4) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','FMOPEN_ll',TRIM(TPFILE%CNAME)// & - ': invalid fileformat (-> forced to NETCDF4 if no abort)') - TPFILE%CFORMAT='NETCDF4' - ELSE IF (GEXIST_LFI) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','FMOPEN_ll',TRIM(TPFILE%CNAME)// & - ': invalid fileformat (-> forced to LFI if no abort)') - TPFILE%CFORMAT='LFI' - END IF - END SELECT - END IF -END IF - -#if defined(MNH_IOCDF4) -IF (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4') THEN - SELECT CASE (YACTION) - CASE('READ') - call io_open_file_nc4(tpfile) - CASE('WRITE') - call io_create_file_nc4(TPFILE, hprogram_orig=HPROGRAM_ORIG) - END SELECT -END IF -#endif - -IF (TPFILE%CFORMAT=='LFI' .OR. TPFILE%CFORMAT=='LFICDF4') THEN - SELECT CASE (YACTION) - CASE('READ') - call io_open_file_lfi(tpfile,iresp) - CASE('WRITE') - call io_create_file_lfi(tpfile,iresp) - END SELECT -END IF - -IF ( IRESP /= 0 ) THEN - WRITE(YRESP,"( I0 )") IRESP - CALL PRINT_MSG(NVERB_ERROR,'IO','FMOPEN_ll',TRIM(TPFILE%CNAME)//': exit with IRESP='//TRIM(YRESP)) -END IF - -KRESP=IRESP - -END SUBROUTINE FMOPEN_ll - - -recursive SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,HPROGRAM_ORIG) -! -USE MODD_CONF, ONLY: CPROGRAM -USE MODD_IO_ll, ONLY: NNULLUNIT, TFILEDATA - -use mode_io_file_lfi, only: io_close_file_lfi -#if defined(MNH_IOCDF4) -use mode_io_file_nc4, only: io_close_file_nc4 -use mode_io_write_nc4, only: io_write_coordvar_nc4 -#endif -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME -! -TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure -INTEGER, OPTIONAL, INTENT(OUT) :: KRESP ! Return code -CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HPROGRAM_ORIG !To emulate a file coming from this program -! -character(len=256) :: yioerrmsg -INTEGER :: IRESP, JI -TYPE(TFILEDATA),POINTER :: TZFILE_DES -TYPE(TFILEDATA),POINTER :: TZFILE_IOZ -! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_CLOSE_ll','closing '//TRIM(TPFILE%CNAME)) -! -IF (.NOT.TPFILE%LOPENED) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_CLOSE_ll','trying to close a file not opened: '//TRIM(TPFILE%CNAME)) - RETURN -ENDIF -! -IF (TPFILE%NOPEN_CURRENT>1) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_CLOSE_ll',TRIM(TPFILE%CNAME)// & - ': decrementing NOPEN_CURRENT (still opened after this call)') - TPFILE%NOPEN_CURRENT = TPFILE%NOPEN_CURRENT - 1 - TPFILE%NCLOSE = TPFILE%NCLOSE + 1 - ! - DO JI = 1,TPFILE%NSUBFILES_IOZ - TZFILE_IOZ => TPFILE%TFILES_IOZ(JI)%TFILE - TZFILE_IOZ%NOPEN_CURRENT = TZFILE_IOZ%NOPEN_CURRENT - 1 - TZFILE_IOZ%NCLOSE = TZFILE_IOZ%NCLOSE + 1 - END DO - ! - RETURN -END IF -! -SELECT CASE(TPFILE%CTYPE) - CASE('CHEMINPUT','CHEMTAB','DES','GPS','METEO','NML','OUTPUTLISTING','SURFACE_DATA','TXT') - IF (TPFILE%LMASTER) THEN - IF (TPFILE%NLU/=-1 .AND. TPFILE%NLU/=NNULLUNIT) THEN - CLOSE(UNIT=TPFILE%NLU, STATUS='KEEP', IOSTAT=IRESP, IOMSG=yioerrmsg) - END IF - END IF - - !Warning and not error or fatal if close fails to allow continuation of execution - IF (IRESP/=0) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_CLOSE_ll','Problem when closing ' & - //TRIM(TPFILE%CNAME)//': '//TRIM(YIOERRMSG)) - - TPFILE%NLU = -1 - - - !MesoNH files - !Remark: 'MNH' is more general than MNHBACKUP and could be in fact a MNHBACKUP file - CASE ('MNH', 'MNHBACKUP', 'MNHDIACHRONIC', 'MNHDIAG', 'MNHOUTPUT', 'PGD') - !Do not close (non-existing) '.des' file if OUTPUT - IF(TPFILE%CTYPE/='OUTPUT' .AND. CPROGRAM/='LFICDF') THEN - CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//'.des',TZFILE_DES,IRESP) - IF (IRESP/=0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_CLOSE_ll','file '//TRIM(TPFILE%CNAME)//'.des not in filelist') - CALL IO_FILE_CLOSE_ll(TZFILE_DES,KRESP=IRESP,HPROGRAM_ORIG=HPROGRAM_ORIG) - ENDIF - ! -#if defined(MNH_IOCDF4) - !Write coordinates variables in NetCDF file - IF (TPFILE%CMODE == 'WRITE' .AND. (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4')) THEN - CALL IO_WRITE_COORDVAR_NC4(TPFILE,HPROGRAM_ORIG=HPROGRAM_ORIG) - END IF -#endif - - if (tpfile%lmaster) then - if (tpfile%cformat == 'LFI' .or. tpfile%cformat == 'LFICDF4') call io_close_file_lfi(tpfile,iresp) -#if defined(MNH_IOCDF4) - if (tpfile%cformat == 'NETCDF4' .or. tpfile%cformat == 'LFICDF4') call io_close_file_nc4(tpfile,iresp) -#endif - end if - ! - CALL IO_ADD2TRANSFER_LIST(TPFILE) - ! - SUBFILES: DO JI = 1,TPFILE%NSUBFILES_IOZ - TZFILE_IOZ => TPFILE%TFILES_IOZ(JI)%TFILE - IF (.NOT.TZFILE_IOZ%LOPENED) & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_CLOSE_ll','file '//TRIM(TZFILE_IOZ%CNAME)//' is not opened') - IF (TZFILE_IOZ%NOPEN_CURRENT/=1) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_CLOSE_ll','file '//TRIM(TZFILE_IOZ%CNAME)//& - ' is currently opened 0 or several times (expected only 1)') - TZFILE_IOZ%LOPENED = .FALSE. - TZFILE_IOZ%NOPEN_CURRENT = 0 - TZFILE_IOZ%NCLOSE = TZFILE_IOZ%NCLOSE + 1 -#if defined(MNH_IOCDF4) - !Write coordinates variables in netCDF file - IF (TZFILE_IOZ%CMODE == 'WRITE' .AND. (TZFILE_IOZ%CFORMAT=='NETCDF4' .OR. TZFILE_IOZ%CFORMAT=='LFICDF4')) THEN - CALL IO_WRITE_COORDVAR_NC4(TZFILE_IOZ,HPROGRAM_ORIG=HPROGRAM_ORIG) - END IF -#endif - IF (TZFILE_IOZ%LMASTER) THEN - if (tzfile_ioz%cformat == 'LFI' .or. tzfile_ioz%cformat == 'LFICDF4') call io_close_file_lfi(tzfile_ioz,iresp) -#if defined(MNH_IOCDF4) - if (tzfile_ioz%cformat == 'NETCDF4' .or. tzfile_ioz%cformat == 'LFICDF4') call io_close_file_nc4(tzfile_ioz,iresp) -#endif - END IF - END DO SUBFILES - - - CASE DEFAULT - call print_msg(NVERB_FATAL,'IO','IO_FILE_CLOSE_ll','invalid type '//trim(tpfile%ctype)//' for file '//trim(tpfile%cname)) -END SELECT -! -TPFILE%LOPENED = .FALSE. -TPFILE%NOPEN_CURRENT = 0 -TPFILE%NCLOSE = TPFILE%NCLOSE + 1 -! -IF (PRESENT(KRESP)) KRESP=IRESP -! -END SUBROUTINE IO_FILE_CLOSE_ll - - -subroutine IO_ADD2TRANSFER_LIST(TPFILE) - -USE MODD_CONF, ONLY : CPROGRAM -USE MODD_IO_ll, ONLY : TFILEDATA - -USE MODI_SYSTEM_MNH - -TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure - -CHARACTER(len=:),allocatable :: YFILEM ! name of the file -CHARACTER(len=:),allocatable :: YCPIO -CHARACTER(len=:),allocatable :: YTRANS -CHARACTER(LEN=100) :: YCOMMAND -INTEGER, SAVE :: ICPT = 0 - -YFILEM = TPFILE%CNAME - -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_ADD2TRANSFER_LIST','called for '//TRIM(YFILEM)) - -IF (TPFILE%LMASTER .AND. CPROGRAM/='LFICDF') THEN - !! Write in pipe -#if defined(MNH_SX5) - YTRANS='nectransfer.x' -#else - YTRANS='xtransfer.x' -#endif - - SELECT CASE (TPFILE%NLFITYPE) - CASE(:-1,3:) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_ADD2TRANSFER_LIST',TRIM(YFILEM)//': incorrect NLFITYPE') - CASE(0) - YCPIO='NIL' - CASE(1) - YCPIO='MESONH' - CASE(2) - CALL PRINT_MSG(NVERB_INFO,'IO','IO_ADD2TRANSFER_LIST','file '//TRIM(YFILEM)//' not transferred') - END SELECT - - if (TPFILE%NLFITYPE==0 .or. TPFILE%NLFITYPE==1) then - ICPT=ICPT+1 - WRITE (YCOMMAND,'(A," ",A," ",A," >> OUTPUT_TRANSFER",I3.3," 2>&1 &")') YTRANS,YCPIO,TRIM(YFILEM),ICPT - CALL PRINT_MSG(NVERB_INFO,'IO','IO_ADD2TRANSFER_LIST','YCOMMAND='//TRIM(YCOMMAND)) - CALL SYSTEM_MNH(YCOMMAND) - end if -END IF - -end subroutine IO_ADD2TRANSFER_LIST - END MODULE MODE_FM diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 85b9c1078..912ee2e51 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -6,30 +6,7 @@ ! Author(s) ! D. Gazen ! Modifications: -! J. Escobar 19/08/2005: bug argument optinonel ACCESS --> YACCESS -! J. Escobar 22/05/2008: bug mode SPECIFIC in OPEN_ll -! J. Escobar 05/11/2009: allow JPMAX_UNIT=48 open files -! J. Escobar 18/10/2010: bug with PGI compiler on ADJUSTL -! P. Wautelet 04/02/2016: bug with DELIM='NONE' and GCC 5.2/5.3 -! D.Gazen April 2016: change error message -! P. Wautelet May 2016 : use netCDF Fortran module -! P. Wautelet July 2016 : added type OUTBAK -! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O -! J. Pianezze 01/08/2016: add LOASIS flag -! P. Wautelet 13/12/2018: moved some operations to new mode_io_*_nc4 modules -! P. Wautelet 10/01/2019: bug correction: close correctly Z-split files -! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN -! + move IOFREEFLU and IONEWFLU to mode_io_file_lfi.f90 -! + move management of NNCID and NLFIFLU to the nc4 and lfi subroutines -! P. Wautelet 10/01/2019: bug: modify some metadata before open calls -! P. Wautelet 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll to allow -! to disable writes (for bench purposes) -! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place -! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) -! P. Wautelet 14/02/2019: move UPCASE function to tools.f90 -! P. Wautelet 19/02/2019: simplification/restructuration/cleaning of open/close subroutines (TBCto be continued) -! P. Wautelet 27/02/2019: remove CLOSE_ll subroutine +! P. Wautelet 01/03/2019: move OPEN_ll to mode_io_file.f90 and SET_FMPACK_ll to here from mode_fm.f90 ! !----------------------------------------------------------------- MODULE MODE_IO_ll @@ -45,8 +22,9 @@ MODULE MODE_IO_ll LOGICAL,SAVE :: GCONFIO = .FALSE. ! Turn TRUE when SET_CONFIO_ll is called. - PUBLIC INITIO_ll,OPEN_ll - PUBLIC SET_CONFIO_ll,GCONFIO + public :: GCONFIO + public :: INITIO_ll, SET_CONFIO_ll + public :: SET_FMPACK_ll CONTAINS @@ -132,354 +110,20 @@ CONTAINS END SUBROUTINE INITIO_ll - SUBROUTINE OPEN_ll(TPFILE, KRESP, HMODE, HSTATUS, HPOSITION, HDELIM, HPROGRAM_ORIG) +SUBROUTINE SET_FMPACK_ll(O1D,O2D,OPACK) +USE MODD_IO_ll, ONLY: LPACK, L1D, L2D +USE MODD_VAR_ll, ONLY: IP - USE MODD_IO_ll -#if defined(MNH_IOCDF4) - use mode_io_file_nc4, only: io_create_file_nc4, io_open_file_nc4 -#endif - use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi - USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME - use mode_io_tools, only: io_rank - use mode_tools, only: upcase - - TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE - INTEGER, INTENT(OUT) :: KRESP - CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HMODE - CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HSTATUS - CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HPOSITION - CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HDELIM - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HPROGRAM_ORIG !To emulate a file coming from this program - ! - ! local var - ! - INTEGER, PARAMETER :: RECL_DEF = 10000 - ! - CHARACTER(len=5) :: YFILE - CHARACTER(len=20) :: YSTATUS - CHARACTER(len=20) :: YPOSITION - CHARACTER(len=20) :: YDELIM - CHARACTER(len=20) :: YACTION - CHARACTER(len=20) :: YMODE - CHARACTER(LEN=256) :: YIOERRMSG - CHARACTER(LEN=:),ALLOCATABLE :: YPREFILENAME !To store the directory + filename - INTEGER :: IFILE, IRANK_PROCIO - INTEGER :: YRECL - INTEGER :: IOS, IRESP - TYPE(TFILEDATA),POINTER :: TZSPLITFILE - - CALL PRINT_MSG(NVERB_DEBUG,'IO','OPEN_ll','opening '//TRIM(TPFILE%CNAME)//' for '//TRIM(TPFILE%CMODE)) - - IOS = 0 - - IF (PRESENT(HMODE)) THEN - YMODE = HMODE - YMODE = UPCASE(TRIM(ADJUSTL(YMODE))) - ELSE - YMODE = 'GLOBAL' ! Default Mode - END IF - - YACTION = TPFILE%CMODE - YACTION = UPCASE(TRIM(ADJUSTL(YACTION))) - IF (YACTION /= "READ" .AND. YACTION /= "WRITE") THEN - KRESP = 99 - TPFILE%NLU = -1 - CALL PRINT_MSG(NVERB_ERROR,'IO','OPEN_ll','action='//TRIM(YACTION)//' not supported') - RETURN - END IF - - IF (.NOT. ANY(YMODE == (/'GLOBAL ','SPECIFIC ', 'IO_ZSPLIT '/))) THEN - KRESP = 99 - TPFILE%NLU = -1 - CALL PRINT_MSG(NVERB_ERROR,'IO','OPEN_ll','ymode='//TRIM(YMODE)//' not supported') - RETURN - END IF - - IF (PRESENT(HSTATUS)) THEN - YSTATUS=HSTATUS - ELSE - YSTATUS='UNKNOWN' - ENDIF - - IF (TPFILE%NRECL == -1) THEN - YRECL = RECL_DEF - ELSE - YRECL = TPFILE%NRECL - END IF - - IF (PRESENT(HPOSITION)) THEN - YPOSITION=HPOSITION - ELSE - YPOSITION='ASIS' - ENDIF - IF (PRESENT(HDELIM)) THEN - YDELIM=HDELIM - ELSE - YDELIM='NONE' - ENDIF - - IF (ALLOCATED(TPFILE%CDIRNAME)) THEN - IF(LEN_TRIM(TPFILE%CDIRNAME)>0) THEN - YPREFILENAME = TRIM(TPFILE%CDIRNAME)//'/'//TRIM(TPFILE%CNAME) - ELSE - YPREFILENAME = TRIM(TPFILE%CNAME) - END IF - ELSE - YPREFILENAME = TRIM(TPFILE%CNAME) - END IF - - SELECT CASE(YMODE) - - CASE('GLOBAL') - IF (YACTION == 'READ') THEN - TPFILE%NMASTER_RANK = -1 - TPFILE%LMASTER = .TRUE. !Every process read the file - TPFILE%LMULTIMASTERS = .TRUE. - ELSE - IF (TPFILE%CTYPE=='OUTPUTLISTING') THEN - IF (LVERB_ALLPRC) THEN - TPFILE%NMASTER_RANK = -1 - TPFILE%LMASTER = .TRUE. !Every process may write in the file - TPFILE%LMULTIMASTERS = .TRUE. - ELSE - TPFILE%NMASTER_RANK = ISIOP - TPFILE%LMASTER = (ISP == ISIOP) - TPFILE%LMULTIMASTERS = .FALSE. - END IF - ELSE - TPFILE%NMASTER_RANK = ISIOP - TPFILE%LMASTER = (ISP == ISIOP) - TPFILE%LMULTIMASTERS = .FALSE. - END IF - END IF - TPFILE%NSUBFILES_IOZ = 0 - - IF (TPFILE%LMASTER) THEN - !! I/O processor case - !JUAN : 31/03/2000 modif pour acces direct - IF (TPFILE%CACCESS=='STREAM') THEN - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME),& - STATUS=YSTATUS, & - ACCESS=TPFILE%CACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=TPFILE%CFORM, & - ACTION=YACTION) - ELSEIF (TPFILE%CACCESS=='DIRECT') THEN - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME),& - STATUS=YSTATUS, & - ACCESS=TPFILE%CACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=TPFILE%CFORM, & - RECL=YRECL, & - ACTION=YACTION) - ELSE - IF (TPFILE%CFORM=="FORMATTED") THEN - IF (YACTION=='READ') THEN - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME),& - STATUS=YSTATUS, & - ACCESS=TPFILE%CACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=TPFILE%CFORM, & - RECL=YRECL, & - POSITION=YPOSITION, & - ACTION=YACTION) - !DELIM=YDELIM, & !Philippe: commented because bug with GCC 5.X - ELSE - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME),& - STATUS=YSTATUS, & - ACCESS=TPFILE%CACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=TPFILE%CFORM, & - RECL=YRECL, & - POSITION=YPOSITION, & - ACTION=YACTION, & - DELIM=YDELIM) - ENDIF - ELSE - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME),& - STATUS=YSTATUS, & - ACCESS=TPFILE%CACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=TPFILE%CFORM, & - RECL=YRECL, & - POSITION=YPOSITION, & - ACTION=YACTION) - ENDIF - ENDIF - - IF (IOS/=0) CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','Problem when opening '//TRIM(YPREFILENAME)//': '//TRIM(YIOERRMSG)) - ELSE - !! NON I/O processors case - IOS = 0 - TPFILE%NLU = NNULLUNIT - END IF - - - CASE('SPECIFIC') - TPFILE%NMASTER_RANK = -1 - TPFILE%LMASTER = .TRUE. !Every process use the file - TPFILE%LMULTIMASTERS = .TRUE. - TPFILE%NSUBFILES_IOZ = 0 - - IF (TPFILE%CACCESS=='DIRECT') THEN - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & - STATUS=YSTATUS, & - ACCESS=TPFILE%CACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=TPFILE%CFORM, & - RECL=YRECL, & - ACTION=YACTION) - ELSE - IF (YACTION=='READ') THEN - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & - STATUS=YSTATUS, & - ACCESS=TPFILE%CACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=TPFILE%CFORM, & - RECL=YRECL, & - POSITION=YPOSITION, & - ACTION=YACTION) - !DELIM=YDELIM, & !Philippe: commented because bug with GCC 5.X - ELSE - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & - STATUS=YSTATUS, & - ACCESS=TPFILE%CACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=TPFILE%CFORM, & - RECL=YRECL, & - POSITION=YPOSITION, & - ACTION=YACTION, & - DELIM=YDELIM) - ENDIF - ENDIF - - IF (IOS/=0) CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','Problem when opening '//TRIM(YPREFILENAME)//': '//TRIM(YIOERRMSG)) - - - - CASE('IO_ZSPLIT') - TPFILE%NMASTER_RANK = ISIOP - TPFILE%LMASTER = (ISP == ISIOP) - TPFILE%LMULTIMASTERS = .FALSE. - -#if defined(MNH_IOCDF4) - IF (TPFILE%LMASTER .AND. (TPFILE%CFORMAT=='LFI' .OR. TPFILE%CFORMAT=='LFICDF4') ) THEN -#else - IF (TPFILE%LMASTER) THEN -#endif - ELSE - !! NON I/O processors OR netCDF read case - IOS = 0 - END IF - - IF (TPFILE%NSUBFILES_IOZ > 0) THEN - IF (.NOT.ALLOCATED(TPFILE%TFILES_IOZ)) THEN - ALLOCATE(TPFILE%TFILES_IOZ(TPFILE%NSUBFILES_IOZ)) - ELSE IF ( SIZE(TPFILE%TFILES_IOZ) /= TPFILE%NSUBFILES_IOZ ) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','SIZE(TPFILE%TFILES_IOZ) /= TPFILE%NSUBFILES_IOZ for '//TRIM(TPFILE%CNAME)) - END IF - DO IFILE=1,TPFILE%NSUBFILES_IOZ - IRANK_PROCIO = 1 + IO_RANK(IFILE-1,ISNPROC,TPFILE%NSUBFILES_IOZ) - WRITE(YFILE ,'(".Z",i3.3)') IFILE - - CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//TRIM(YFILE),TZSPLITFILE,IRESP) - - IF (IRESP/=0) THEN !File not yet in filelist => add it (nothing to do if already in list) - IF (ALLOCATED(TPFILE%CDIRNAME)) THEN - CALL IO_FILE_ADD2LIST(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & - HDIRNAME=TPFILE%CDIRNAME, & - KLFINPRAR=TPFILE%NLFINPRAR,KLFITYPE=TPFILE%NLFITYPE,KLFIVERB=TPFILE%NLFIVERB, & - HFORMAT=TPFILE%CFORMAT) - ELSE - CALL IO_FILE_ADD2LIST(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & - KLFINPRAR=TPFILE%NLFINPRAR,KLFITYPE=TPFILE%NLFITYPE,KLFIVERB=TPFILE%NLFIVERB, & - HFORMAT=TPFILE%CFORMAT) - END IF - END IF - - IF (ALLOCATED(TPFILE%CDIRNAME)) THEN - IF (LEN_TRIM(TZSPLITFILE%CDIRNAME)>0) THEN - YPREFILENAME = TRIM(TZSPLITFILE%CDIRNAME)//'/'//TRIM(TZSPLITFILE%CNAME) - ELSE - YPREFILENAME = TRIM(TZSPLITFILE%CNAME) - END IF - ELSE - YPREFILENAME = TRIM(TZSPLITFILE%CNAME) - END IF - - TPFILE%TFILES_IOZ(IFILE)%TFILE => TZSPLITFILE - !Done outside of the previous IF to prevent problems with .OUT files - TZSPLITFILE%NMPICOMM = NMNH_COMM_WORLD - TZSPLITFILE%NMASTER_RANK = IRANK_PROCIO - TZSPLITFILE%LMASTER = (ISP == IRANK_PROCIO) - TZSPLITFILE%LMULTIMASTERS = .FALSE. - TZSPLITFILE%NSUBFILES_IOZ = 0 - - ! Must be done BEFORE the call to io_open_file_* because we need to read things in these subroutines - TZSPLITFILE%LOPENED = .TRUE. - TZSPLITFILE%NOPEN = TZSPLITFILE%NOPEN + 1 - TZSPLITFILE%NOPEN_CURRENT = TZSPLITFILE%NOPEN_CURRENT + 1 - -#if defined(MNH_IOCDF4) - IF (TZSPLITFILE%CFORMAT=='NETCDF4' .OR. TZSPLITFILE%CFORMAT=='LFICDF4') THEN - IF (YACTION == 'READ') THEN - ! Open netCDF File for reading - call io_open_file_nc4(tzsplitfile) - IOS = 0 - END IF - - IF (YACTION == 'WRITE') THEN - ! Create netCDF File for writing - call io_create_file_nc4(TZSPLITFILE, hprogram_orig=HPROGRAM_ORIG) - IOS = 0 - END IF - END IF -#endif - IF (TZSPLITFILE%CFORMAT=='LFI' .OR. TZSPLITFILE%CFORMAT=='LFICDF4') THEN - SELECT CASE (YACTION) - CASE('READ') - call io_open_file_lfi(tzsplitfile,iresp) - CASE('WRITE') - call io_create_file_lfi(tzsplitfile,iresp) - END SELECT - ENDIF - ! - ENDDO - END IF - - - END SELECT - - TPFILE%NMPICOMM = NMNH_COMM_WORLD - - KRESP = IOS - - CONTAINS - FUNCTION SUFFIX(HEXT) +IMPLICIT NONE - CHARACTER(len=*) :: HEXT - CHARACTER(len=LEN(HEXT)+3) :: SUFFIX +LOGICAL, INTENT(IN) :: O1D,O2D,OPACK - WRITE(SUFFIX,'(A,i3.3)') TRIM(HEXT), ISP +LPACK = OPACK +L1D = O1D +L2D = O2D - END FUNCTION SUFFIX +IF ( IP == 1 ) PRINT *,'INIT L1D,L2D,LPACK = ',L1D,L2D,LPACK - END SUBROUTINE OPEN_ll +END SUBROUTINE SET_FMPACK_ll END MODULE MODE_IO_ll diff --git a/src/LIB/SURCOUCHE/src/mode_io_file.f90 b/src/LIB/SURCOUCHE/src/mode_io_file.f90 new file mode 100644 index 000000000..fd980c03c --- /dev/null +++ b/src/LIB/SURCOUCHE/src/mode_io_file.f90 @@ -0,0 +1,787 @@ +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Author(s) +! D. Gazen, P. Wautelet +! Modifications: +! J. Escobar 19/08/2005: bug argument optinonel ACCESS --> YACCESS +! J. Escobar 22/05/2008: bug mode SPECIFIC in OPEN_ll +! J. Escobar 05/11/2009: allow JPMAX_UNIT=48 open files +! J. Escobar 18/10/2010: bug with PGI compiler on ADJUSTL +! P. Wautelet 04/02/2016: bug with DELIM='NONE' and GCC 5.2/5.3 +! D. Gazen April 2016: change error message +! P. Wautelet May 2016 : use netCDF Fortran module +! P. Wautelet July 2016 : added type OUTBAK +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! J. Pianezze 01/08/2016: add LOASIS flag +! P. Wautelet 29/10/2018: better detection of older MNH version numbers +! P. Wautelet 13/12/2018: moved some operations to new mode_io_*_nc4 modules +! P. Wautelet 10/01/2019: bug correction: close correctly Z-split files +! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN +! + move IOFREEFLU and IONEWFLU to mode_io_file_lfi.f90 +! + move management of NNCID and NLFIFLU to the nc4 and lfi subroutines +! P. Wautelet 10/01/2019: bug: modify some metadata before open calls +! P. Wautelet 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll to allow +! to disable writes (for bench purposes) +! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place +! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines +! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 14/02/2019: move UPCASE function to tools.f90 +! P. Wautelet 19/02/2019: simplification/restructuration/cleaning of open/close subroutines (TBCto be continued) +! P. Wautelet 27/02/2019: use recursive calls to open/close DES files +! P. Wautelet 27/02/2019: remove CLOSE_ll subroutine +! P. Wautelet 01/03/2019: move open/close subroutines to mode_io_file.f90 +! +!----------------------------------------------------------------- +module mode_io_file + +use modd_io_ll, only: tfiledata + +use mode_msg + +implicit none + +private + +public :: IO_File_close_ll, IO_File_open_ll + +interface IO_File_close_ll + module procedure IO_File_close +end interface + +interface IO_File_open_ll + module procedure IO_File_open +end interface + + +contains + + +recursive SUBROUTINE IO_File_open(TPFILE,KRESP,HPOSITION,HSTATUS,HPROGRAM_ORIG) +! +USE MODD_CONF, ONLY: CPROGRAM +USE MODD_IO_ll, ONLY: LIO_NO_WRITE +! +USE MODE_IO_ll, ONLY: GCONFIO +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME +! +TYPE(TFILEDATA), POINTER, INTENT(INOUT) :: TPFILE ! File structure +INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! Return code +CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPOSITION +CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HSTATUS +CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program +! +INTEGER :: IRESP +TYPE(TFILEDATA), POINTER :: TZFILE_DES +TYPE(TFILEDATA), POINTER :: TZFILE_DUMMY +! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_File_open','opening '//TRIM(TPFILE%CNAME)//' for '//TRIM(TPFILE%CMODE)// & + ' (filetype='//TRIM(TPFILE%CTYPE)//')') +! +IF (.NOT.ASSOCIATED(TPFILE)) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_open','TPFILE is not associated') +! +IF ( LIO_NO_WRITE .AND. TPFILE%CMODE == 'WRITE' .AND. TPFILE%CTYPE/='OUTPUTLISTING') THEN + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_open','opening file '//TRIM(TPFILE%CNAME)// & + ' in write mode but LIO_NO_WRITE is set') +END IF +! +TZFILE_DES => NULL() +TZFILE_DUMMY => NULL() +! +TPFILE%NOPEN = TPFILE%NOPEN + 1 +TPFILE%NOPEN_CURRENT = TPFILE%NOPEN_CURRENT + 1 +! +IF (TPFILE%LOPENED) THEN + CALL PRINT_MSG(NVERB_INFO,'IO','IO_File_open','file '//TRIM(TPFILE%CNAME)//' is already in open state') + RETURN +END IF +! +TPFILE%LOPENED = .TRUE. +! +!Check if file is in filelist +CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME),TZFILE_DUMMY,IRESP) +IF (IRESP/=0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_open','file '//TRIM(TPFILE%CNAME)//' not in filelist') +! +SELECT CASE(TPFILE%CTYPE) + !Chemistry input files + CASE('CHEMINPUT') + CALL OPEN_ll(TPFILE,IRESP,HPOSITION='REWIND',HSTATUS='OLD',HMODE='GLOBAL') + + + !Chemistry tabulation files + CASE('CHEMTAB') + CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') + + + !DES files + CASE('DES') + CALL OPEN_ll(TPFILE,IRESP,HDELIM='QUOTE') + + + !GPS files + CASE('GPS') + CALL OPEN_ll(TPFILE,IRESP,HMODE='SPECIFIC') + + + !Meteo files + CASE('METEO') + CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') + + + !Namelist files + CASE('NML') + CALL OPEN_ll(TPFILE,IRESP,HDELIM='QUOTE',HMODE='GLOBAL') + + + !OUTPUTLISTING files + CASE('OUTPUTLISTING') + CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') + + + !SURFACE_DATA files + CASE('SURFACE_DATA') + CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') + + + !Text files + CASE('TXT') + CALL OPEN_ll(TPFILE,IRESP,HPOSITION=HPOSITION,HSTATUS=HSTATUS,HMODE='GLOBAL') + + + !MesoNH files + !Remark: 'MNH' is more general than MNHBACKUP and could be in fact a MNHBACKUP file + CASE ('MNH', 'MNHBACKUP', 'MNHDIACHRONIC', 'MNHDIAG', 'MNHOUTPUT', 'PGD') + if (.not.GCONFIO) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_open','SET_CONFIO_ll must be called before IO_File_open') + !Do not open '.des' file if OUTPUT + IF(TPFILE%CTYPE/='MNHOUTPUT' .AND. CPROGRAM/='LFICDF') THEN + !OOLD=T because the file may already be in the list + CALL IO_FILE_ADD2LIST(TZFILE_DES,TRIM(TPFILE%CNAME)//'.des','DES',TPFILE%CMODE,TPDATAFILE=TPFILE,OOLD=.TRUE.) + CALL IO_File_open(TZFILE_DES,HPROGRAM_ORIG=HPROGRAM_ORIG) + ENDIF + + CALL OPEN_ll(TPFILE,IRESP,HMODE='IO_ZSPLIT',HPROGRAM_ORIG=HPROGRAM_ORIG) + + call IO_File_check_format_exist( tpfile ) + + call IO_File_open_format( tpfile ) + + + CASE DEFAULT + call print_msg(NVERB_FATAL,'IO','IO_File_open','invalid type '//trim(tpfile%ctype)//' for file '//trim(tpfile%cname)) +END SELECT +! +IF (PRESENT(KRESP)) KRESP = IRESP +! +END SUBROUTINE IO_File_open + + +SUBROUTINE OPEN_ll(TPFILE, KRESP, HMODE, HSTATUS, HPOSITION, HDELIM, HPROGRAM_ORIG) + + use modd_io_ll, only: ISNPROC, ISP, LVERB_ALLPRC, ISIOP, NNULLUNIT + use modd_var_ll, only : nmnh_comm_world + +#if defined(MNH_IOCDF4) + use mode_io_file_nc4, only: io_create_file_nc4, io_open_file_nc4 +#endif + use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi + USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME + use mode_io_tools, only: io_rank + use mode_tools, only: upcase + + TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE + INTEGER, INTENT(OUT) :: KRESP + CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HMODE + CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HSTATUS + CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HPOSITION + CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HDELIM + CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HPROGRAM_ORIG !To emulate a file coming from this program + ! + ! local var + ! + INTEGER, PARAMETER :: RECL_DEF = 10000 + ! + CHARACTER(len=5) :: YFILE + CHARACTER(len=20) :: YSTATUS + CHARACTER(len=20) :: YPOSITION + CHARACTER(len=20) :: YDELIM + CHARACTER(len=20) :: YACTION + CHARACTER(len=20) :: YMODE + CHARACTER(LEN=256) :: YIOERRMSG + CHARACTER(LEN=:),ALLOCATABLE :: YPREFILENAME !To store the directory + filename + INTEGER :: IFILE, IRANK_PROCIO + INTEGER :: YRECL + INTEGER :: IOS, IRESP + TYPE(TFILEDATA),POINTER :: TZSPLITFILE + + CALL PRINT_MSG(NVERB_DEBUG,'IO','OPEN_ll','opening '//TRIM(TPFILE%CNAME)//' for '//TRIM(TPFILE%CMODE)) + + IOS = 0 + + IF (PRESENT(HMODE)) THEN + YMODE = HMODE + YMODE = UPCASE(TRIM(ADJUSTL(YMODE))) + ELSE + YMODE = 'GLOBAL' ! Default Mode + END IF + + YACTION = TPFILE%CMODE + YACTION = UPCASE(TRIM(ADJUSTL(YACTION))) + IF (YACTION /= "READ" .AND. YACTION /= "WRITE") THEN + KRESP = 99 + TPFILE%NLU = -1 + CALL PRINT_MSG(NVERB_ERROR,'IO','OPEN_ll','action='//TRIM(YACTION)//' not supported') + RETURN + END IF + + IF (.NOT. ANY(YMODE == (/'GLOBAL ','SPECIFIC ', 'IO_ZSPLIT '/))) THEN + KRESP = 99 + TPFILE%NLU = -1 + CALL PRINT_MSG(NVERB_ERROR,'IO','OPEN_ll','ymode='//TRIM(YMODE)//' not supported') + RETURN + END IF + + IF (PRESENT(HSTATUS)) THEN + YSTATUS=HSTATUS + ELSE + YSTATUS='UNKNOWN' + ENDIF + + IF (TPFILE%NRECL == -1) THEN + YRECL = RECL_DEF + ELSE + YRECL = TPFILE%NRECL + END IF + + IF (PRESENT(HPOSITION)) THEN + YPOSITION=HPOSITION + ELSE + YPOSITION='ASIS' + ENDIF + IF (PRESENT(HDELIM)) THEN + YDELIM=HDELIM + ELSE + YDELIM='NONE' + ENDIF + + IF (ALLOCATED(TPFILE%CDIRNAME)) THEN + IF(LEN_TRIM(TPFILE%CDIRNAME)>0) THEN + YPREFILENAME = TRIM(TPFILE%CDIRNAME)//'/'//TRIM(TPFILE%CNAME) + ELSE + YPREFILENAME = TRIM(TPFILE%CNAME) + END IF + ELSE + YPREFILENAME = TRIM(TPFILE%CNAME) + END IF + + SELECT CASE(YMODE) + + CASE('GLOBAL') + IF (YACTION == 'READ') THEN + TPFILE%NMASTER_RANK = -1 + TPFILE%LMASTER = .TRUE. !Every process read the file + TPFILE%LMULTIMASTERS = .TRUE. + ELSE + IF (TPFILE%CTYPE=='OUTPUTLISTING') THEN + IF (LVERB_ALLPRC) THEN + TPFILE%NMASTER_RANK = -1 + TPFILE%LMASTER = .TRUE. !Every process may write in the file + TPFILE%LMULTIMASTERS = .TRUE. + ELSE + TPFILE%NMASTER_RANK = ISIOP + TPFILE%LMASTER = (ISP == ISIOP) + TPFILE%LMULTIMASTERS = .FALSE. + END IF + ELSE + TPFILE%NMASTER_RANK = ISIOP + TPFILE%LMASTER = (ISP == ISIOP) + TPFILE%LMULTIMASTERS = .FALSE. + END IF + END IF + TPFILE%NSUBFILES_IOZ = 0 + + IF (TPFILE%LMASTER) THEN + !! I/O processor case + !JUAN : 31/03/2000 modif pour acces direct + IF (TPFILE%CACCESS=='STREAM') THEN + OPEN(NEWUNIT=TPFILE%NLU, & + FILE=TRIM(YPREFILENAME),& + STATUS=YSTATUS, & + ACCESS=TPFILE%CACCESS, & + IOSTAT=IOS, & + IOMSG=YIOERRMSG, & + FORM=TPFILE%CFORM, & + ACTION=YACTION) + ELSEIF (TPFILE%CACCESS=='DIRECT') THEN + OPEN(NEWUNIT=TPFILE%NLU, & + FILE=TRIM(YPREFILENAME),& + STATUS=YSTATUS, & + ACCESS=TPFILE%CACCESS, & + IOSTAT=IOS, & + IOMSG=YIOERRMSG, & + FORM=TPFILE%CFORM, & + RECL=YRECL, & + ACTION=YACTION) + ELSE + IF (TPFILE%CFORM=="FORMATTED") THEN + IF (YACTION=='READ') THEN + OPEN(NEWUNIT=TPFILE%NLU, & + FILE=TRIM(YPREFILENAME),& + STATUS=YSTATUS, & + ACCESS=TPFILE%CACCESS, & + IOSTAT=IOS, & + IOMSG=YIOERRMSG, & + FORM=TPFILE%CFORM, & + RECL=YRECL, & + POSITION=YPOSITION, & + ACTION=YACTION) + !DELIM=YDELIM, & !Philippe: commented because bug with GCC 5.X + ELSE + OPEN(NEWUNIT=TPFILE%NLU, & + FILE=TRIM(YPREFILENAME),& + STATUS=YSTATUS, & + ACCESS=TPFILE%CACCESS, & + IOSTAT=IOS, & + IOMSG=YIOERRMSG, & + FORM=TPFILE%CFORM, & + RECL=YRECL, & + POSITION=YPOSITION, & + ACTION=YACTION, & + DELIM=YDELIM) + ENDIF + ELSE + OPEN(NEWUNIT=TPFILE%NLU, & + FILE=TRIM(YPREFILENAME),& + STATUS=YSTATUS, & + ACCESS=TPFILE%CACCESS, & + IOSTAT=IOS, & + IOMSG=YIOERRMSG, & + FORM=TPFILE%CFORM, & + RECL=YRECL, & + POSITION=YPOSITION, & + ACTION=YACTION) + ENDIF + ENDIF + + IF (IOS/=0) CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','Problem when opening '//TRIM(YPREFILENAME)//': '//TRIM(YIOERRMSG)) + ELSE + !! NON I/O processors case + IOS = 0 + TPFILE%NLU = NNULLUNIT + END IF + + + CASE('SPECIFIC') + TPFILE%NMASTER_RANK = -1 + TPFILE%LMASTER = .TRUE. !Every process use the file + TPFILE%LMULTIMASTERS = .TRUE. + TPFILE%NSUBFILES_IOZ = 0 + + IF (TPFILE%CACCESS=='DIRECT') THEN + OPEN(NEWUNIT=TPFILE%NLU, & + FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & + STATUS=YSTATUS, & + ACCESS=TPFILE%CACCESS, & + IOSTAT=IOS, & + IOMSG=YIOERRMSG, & + FORM=TPFILE%CFORM, & + RECL=YRECL, & + ACTION=YACTION) + ELSE + IF (YACTION=='READ') THEN + OPEN(NEWUNIT=TPFILE%NLU, & + FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & + STATUS=YSTATUS, & + ACCESS=TPFILE%CACCESS, & + IOSTAT=IOS, & + IOMSG=YIOERRMSG, & + FORM=TPFILE%CFORM, & + RECL=YRECL, & + POSITION=YPOSITION, & + ACTION=YACTION) + !DELIM=YDELIM, & !Philippe: commented because bug with GCC 5.X + ELSE + OPEN(NEWUNIT=TPFILE%NLU, & + FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & + STATUS=YSTATUS, & + ACCESS=TPFILE%CACCESS, & + IOSTAT=IOS, & + IOMSG=YIOERRMSG, & + FORM=TPFILE%CFORM, & + RECL=YRECL, & + POSITION=YPOSITION, & + ACTION=YACTION, & + DELIM=YDELIM) + ENDIF + ENDIF + + IF (IOS/=0) CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','Problem when opening '//TRIM(YPREFILENAME)//': '//TRIM(YIOERRMSG)) + + + + CASE('IO_ZSPLIT') + TPFILE%NMASTER_RANK = ISIOP + TPFILE%LMASTER = (ISP == ISIOP) + TPFILE%LMULTIMASTERS = .FALSE. + + IF (TPFILE%NSUBFILES_IOZ > 0) THEN + IF (.NOT.ALLOCATED(TPFILE%TFILES_IOZ)) THEN + ALLOCATE(TPFILE%TFILES_IOZ(TPFILE%NSUBFILES_IOZ)) + ELSE IF ( SIZE(TPFILE%TFILES_IOZ) /= TPFILE%NSUBFILES_IOZ ) THEN + CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','SIZE(TPFILE%TFILES_IOZ) /= TPFILE%NSUBFILES_IOZ for '//TRIM(TPFILE%CNAME)) + END IF + DO IFILE=1,TPFILE%NSUBFILES_IOZ + IRANK_PROCIO = 1 + IO_RANK(IFILE-1,ISNPROC,TPFILE%NSUBFILES_IOZ) + WRITE(YFILE ,'(".Z",i3.3)') IFILE + + CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//TRIM(YFILE),TZSPLITFILE,IRESP) + + IF (IRESP/=0) THEN !File not yet in filelist => add it (nothing to do if already in list) + IF (ALLOCATED(TPFILE%CDIRNAME)) THEN + CALL IO_FILE_ADD2LIST(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & + HDIRNAME=TPFILE%CDIRNAME, & + KLFINPRAR=TPFILE%NLFINPRAR,KLFITYPE=TPFILE%NLFITYPE,KLFIVERB=TPFILE%NLFIVERB, & + HFORMAT=TPFILE%CFORMAT) + ELSE + CALL IO_FILE_ADD2LIST(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & + KLFINPRAR=TPFILE%NLFINPRAR,KLFITYPE=TPFILE%NLFITYPE,KLFIVERB=TPFILE%NLFIVERB, & + HFORMAT=TPFILE%CFORMAT) + END IF + END IF + + IF (ALLOCATED(TPFILE%CDIRNAME)) THEN + IF (LEN_TRIM(TZSPLITFILE%CDIRNAME)>0) THEN + YPREFILENAME = TRIM(TZSPLITFILE%CDIRNAME)//'/'//TRIM(TZSPLITFILE%CNAME) + ELSE + YPREFILENAME = TRIM(TZSPLITFILE%CNAME) + END IF + ELSE + YPREFILENAME = TRIM(TZSPLITFILE%CNAME) + END IF + + TPFILE%TFILES_IOZ(IFILE)%TFILE => TZSPLITFILE + !Done outside of the previous IF to prevent problems with .OUT files + TZSPLITFILE%NMPICOMM = NMNH_COMM_WORLD + TZSPLITFILE%NMASTER_RANK = IRANK_PROCIO + TZSPLITFILE%LMASTER = (ISP == IRANK_PROCIO) + TZSPLITFILE%LMULTIMASTERS = .FALSE. + TZSPLITFILE%NSUBFILES_IOZ = 0 + + ! Must be done BEFORE the call to io_open_file_* because we need to read things in these subroutines + TZSPLITFILE%LOPENED = .TRUE. + TZSPLITFILE%NOPEN = TZSPLITFILE%NOPEN + 1 + TZSPLITFILE%NOPEN_CURRENT = TZSPLITFILE%NOPEN_CURRENT + 1 + +#if defined(MNH_IOCDF4) + IF (TZSPLITFILE%CFORMAT=='NETCDF4' .OR. TZSPLITFILE%CFORMAT=='LFICDF4') THEN + IF (YACTION == 'READ') THEN + ! Open netCDF File for reading + call io_open_file_nc4(tzsplitfile) + END IF + + IF (YACTION == 'WRITE') THEN + ! Create netCDF File for writing + call io_create_file_nc4(TZSPLITFILE, hprogram_orig=HPROGRAM_ORIG) + END IF + END IF +#endif + IF (TZSPLITFILE%CFORMAT=='LFI' .OR. TZSPLITFILE%CFORMAT=='LFICDF4') THEN + SELECT CASE (YACTION) + CASE('READ') + call io_open_file_lfi(tzsplitfile,iresp) + CASE('WRITE') + call io_create_file_lfi(tzsplitfile,iresp) + END SELECT + ENDIF + ! + ENDDO + END IF + + + END SELECT + + TPFILE%NMPICOMM = NMNH_COMM_WORLD + + KRESP = IOS + + CONTAINS + FUNCTION SUFFIX(HEXT) + + CHARACTER(len=*) :: HEXT + CHARACTER(len=LEN(HEXT)+3) :: SUFFIX + + WRITE(SUFFIX,'(A,i3.3)') TRIM(HEXT), ISP + + END FUNCTION SUFFIX + +END SUBROUTINE OPEN_ll + + +recursive SUBROUTINE IO_File_close(TPFILE,KRESP,HPROGRAM_ORIG) +! +USE MODD_CONF, ONLY: CPROGRAM +USE MODD_IO_ll, ONLY: NNULLUNIT + +use mode_io_file_lfi, only: io_close_file_lfi +#if defined(MNH_IOCDF4) +use mode_io_file_nc4, only: io_close_file_nc4 +use mode_io_write_nc4, only: io_write_coordvar_nc4 +#endif +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME +! +TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure +INTEGER, OPTIONAL, INTENT(OUT) :: KRESP ! Return code +CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HPROGRAM_ORIG !To emulate a file coming from this program +! +character(len=256) :: yioerrmsg +INTEGER :: IRESP, JI +TYPE(TFILEDATA),POINTER :: TZFILE_DES +TYPE(TFILEDATA),POINTER :: TZFILE_IOZ +! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_File_close','closing '//TRIM(TPFILE%CNAME)) +! +IF (.NOT.TPFILE%LOPENED) THEN + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_close','trying to close a file not opened: '//TRIM(TPFILE%CNAME)) + RETURN +ENDIF +! +IF (TPFILE%NOPEN_CURRENT>1) THEN + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_File_close',TRIM(TPFILE%CNAME)// & + ': decrementing NOPEN_CURRENT (still opened after this call)') + TPFILE%NOPEN_CURRENT = TPFILE%NOPEN_CURRENT - 1 + TPFILE%NCLOSE = TPFILE%NCLOSE + 1 + ! + DO JI = 1,TPFILE%NSUBFILES_IOZ + TZFILE_IOZ => TPFILE%TFILES_IOZ(JI)%TFILE + TZFILE_IOZ%NOPEN_CURRENT = TZFILE_IOZ%NOPEN_CURRENT - 1 + TZFILE_IOZ%NCLOSE = TZFILE_IOZ%NCLOSE + 1 + END DO + ! + RETURN +END IF +! +SELECT CASE(TPFILE%CTYPE) + CASE('CHEMINPUT','CHEMTAB','DES','GPS','METEO','NML','OUTPUTLISTING','SURFACE_DATA','TXT') + IF (TPFILE%LMASTER) THEN + IF (TPFILE%NLU/=-1 .AND. TPFILE%NLU/=NNULLUNIT) THEN + CLOSE(UNIT=TPFILE%NLU, STATUS='KEEP', IOSTAT=IRESP, IOMSG=yioerrmsg) + END IF + END IF + + !Warning and not error or fatal if close fails to allow continuation of execution + IF (IRESP/=0) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_close','Problem when closing ' & + //TRIM(TPFILE%CNAME)//': '//TRIM(YIOERRMSG)) + + TPFILE%NLU = -1 + + + !MesoNH files + !Remark: 'MNH' is more general than MNHBACKUP and could be in fact a MNHBACKUP file + CASE ('MNH', 'MNHBACKUP', 'MNHDIACHRONIC', 'MNHDIAG', 'MNHOUTPUT', 'PGD') + !Do not close (non-existing) '.des' file if OUTPUT + IF(TPFILE%CTYPE/='OUTPUT' .AND. CPROGRAM/='LFICDF') THEN + CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//'.des',TZFILE_DES,IRESP) + IF (IRESP/=0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_close','file '//TRIM(TPFILE%CNAME)//'.des not in filelist') + CALL IO_File_close(TZFILE_DES,KRESP=IRESP,HPROGRAM_ORIG=HPROGRAM_ORIG) + ENDIF + ! +#if defined(MNH_IOCDF4) + !Write coordinates variables in NetCDF file + IF (TPFILE%CMODE == 'WRITE' .AND. (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4')) THEN + CALL IO_WRITE_COORDVAR_NC4(TPFILE,HPROGRAM_ORIG=HPROGRAM_ORIG) + END IF +#endif + + if (tpfile%lmaster) then + if (tpfile%cformat == 'LFI' .or. tpfile%cformat == 'LFICDF4') call io_close_file_lfi(tpfile,iresp) +#if defined(MNH_IOCDF4) + if (tpfile%cformat == 'NETCDF4' .or. tpfile%cformat == 'LFICDF4') call io_close_file_nc4(tpfile,iresp) +#endif + end if + ! + CALL IO_ADD2TRANSFER_LIST(TPFILE) + ! + SUBFILES: DO JI = 1,TPFILE%NSUBFILES_IOZ + TZFILE_IOZ => TPFILE%TFILES_IOZ(JI)%TFILE + IF (.NOT.TZFILE_IOZ%LOPENED) & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_close','file '//TRIM(TZFILE_IOZ%CNAME)//' is not opened') + IF (TZFILE_IOZ%NOPEN_CURRENT/=1) & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_close','file '//TRIM(TZFILE_IOZ%CNAME)//& + ' is currently opened 0 or several times (expected only 1)') + TZFILE_IOZ%LOPENED = .FALSE. + TZFILE_IOZ%NOPEN_CURRENT = 0 + TZFILE_IOZ%NCLOSE = TZFILE_IOZ%NCLOSE + 1 +#if defined(MNH_IOCDF4) + !Write coordinates variables in netCDF file + IF (TZFILE_IOZ%CMODE == 'WRITE' .AND. (TZFILE_IOZ%CFORMAT=='NETCDF4' .OR. TZFILE_IOZ%CFORMAT=='LFICDF4')) THEN + CALL IO_WRITE_COORDVAR_NC4(TZFILE_IOZ,HPROGRAM_ORIG=HPROGRAM_ORIG) + END IF +#endif + IF (TZFILE_IOZ%LMASTER) THEN + if (tzfile_ioz%cformat == 'LFI' .or. tzfile_ioz%cformat == 'LFICDF4') call io_close_file_lfi(tzfile_ioz,iresp) +#if defined(MNH_IOCDF4) + if (tzfile_ioz%cformat == 'NETCDF4' .or. tzfile_ioz%cformat == 'LFICDF4') call io_close_file_nc4(tzfile_ioz,iresp) +#endif + END IF + END DO SUBFILES + + + CASE DEFAULT + call print_msg(NVERB_FATAL,'IO','IO_File_close','invalid type '//trim(tpfile%ctype)//' for file '//trim(tpfile%cname)) +END SELECT +! +TPFILE%LOPENED = .FALSE. +TPFILE%NOPEN_CURRENT = 0 +TPFILE%NCLOSE = TPFILE%NCLOSE + 1 +! +IF (PRESENT(KRESP)) KRESP=IRESP +! +END SUBROUTINE IO_File_close + + +subroutine IO_ADD2TRANSFER_LIST(TPFILE) + +USE MODD_CONF, ONLY : CPROGRAM + +USE MODI_SYSTEM_MNH + +TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure + +CHARACTER(len=:),allocatable :: YFILEM ! name of the file +CHARACTER(len=:),allocatable :: YCPIO +CHARACTER(len=:),allocatable :: YTRANS +CHARACTER(LEN=100) :: YCOMMAND +INTEGER, SAVE :: ICPT = 0 + +YFILEM = TPFILE%CNAME + +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_ADD2TRANSFER_LIST','called for '//TRIM(YFILEM)) + +IF (TPFILE%LMASTER .AND. CPROGRAM/='LFICDF') THEN + !! Write in pipe +#if defined(MNH_SX5) + YTRANS='nectransfer.x' +#else + YTRANS='xtransfer.x' +#endif + + SELECT CASE (TPFILE%NLFITYPE) + CASE(:-1,3:) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_ADD2TRANSFER_LIST',TRIM(YFILEM)//': incorrect NLFITYPE') + CASE(0) + YCPIO='NIL' + CASE(1) + YCPIO='MESONH' + CASE(2) + CALL PRINT_MSG(NVERB_INFO,'IO','IO_ADD2TRANSFER_LIST','file '//TRIM(YFILEM)//' not transferred') + END SELECT + + if (TPFILE%NLFITYPE==0 .or. TPFILE%NLFITYPE==1) then + ICPT=ICPT+1 + WRITE (YCOMMAND,'(A," ",A," ",A," >> OUTPUT_TRANSFER",I3.3," 2>&1 &")') YTRANS,YCPIO,TRIM(YFILEM),ICPT + CALL PRINT_MSG(NVERB_INFO,'IO','IO_ADD2TRANSFER_LIST','YCOMMAND='//TRIM(YCOMMAND)) + CALL SYSTEM_MNH(YCOMMAND) + end if +END IF + +end subroutine IO_ADD2TRANSFER_LIST + + +subroutine IO_File_check_format_exist( tpfile ) + +type(tfiledata), intent(inout) :: tpfile ! File structure + +logical :: gexist_lfi, gexist_nc4 + + +call Print_msg( NVERB_DEBUG, 'IO', 'IO_File_check_format_exist', 'called for '//TRIM(tpfile%cname) ) + +IF (TPFILE%LMASTER) THEN + ! Proc I/O case + INQUIRE(FILE=TRIM(TPFILE%CNAME)//'.lfi',EXIST=GEXIST_LFI) + INQUIRE(FILE=TRIM(TPFILE%CNAME)//'.nc', EXIST=GEXIST_NC4) + + MODE: if ( tpfile%cmode == 'READ' ) then + IF (.NOT.GEXIST_LFI .AND. .NOT.GEXIST_NC4) & + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_check_format_exist',TRIM(TPFILE%CNAME)//': no .nc or .lfi file') + + SELECT CASE (TRIM(TPFILE%CFORMAT)) + CASE ('NETCDF4') + IF (.NOT.GEXIST_NC4 .AND. GEXIST_LFI) THEN + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_check_format_exist',TRIM(TPFILE%CNAME)// & + ': .nc file does not exist but .lfi exists -> forced to LFI') + TPFILE%CFORMAT='LFI' + END IF + CASE ('LFI') + IF (.NOT.GEXIST_LFI .AND. GEXIST_NC4) THEN + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_check_format_exist',TRIM(TPFILE%CNAME)// & + ': .lfi file does not exist but .nc exists -> forced to NETCDF4') + TPFILE%CFORMAT='NETCDF4' + END IF + CASE ('LFICDF4') + IF (GEXIST_NC4) THEN + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_check_format_exist',TRIM(TPFILE%CNAME)// & + ': LFICDF4 format is not allowed in READ mode -> forced to NETCDF4') + TPFILE%CFORMAT='NETCDF4' + ELSE IF (GEXIST_LFI) THEN + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_check_format_exist',TRIM(TPFILE%CNAME)// & + ': LFICDF4 format is not allowed in READ mode -> forced to LFI') + TPFILE%CFORMAT='LFI' + END IF + CASE DEFAULT + IF (GEXIST_NC4) THEN + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_check_format_exist',TRIM(TPFILE%CNAME)// & + ': invalid fileformat (-> forced to NETCDF4 if no abort)') + TPFILE%CFORMAT='NETCDF4' + ELSE IF (GEXIST_LFI) THEN + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_check_format_exist',TRIM(TPFILE%CNAME)// & + ': invalid fileformat (-> forced to LFI if no abort)') + TPFILE%CFORMAT='LFI' + END IF + END SELECT + end if MODE +END IF + +end subroutine IO_File_check_format_exist + + +subroutine IO_File_open_format( tpfile, hprogram_orig ) + +#if defined(MNH_IOCDF4) +use mode_io_file_nc4, only: io_create_file_nc4, io_open_file_nc4 +#endif +use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi + +type(tfiledata), intent(inout) :: tpfile ! File structure +character(len=*), optional, intent(in) :: hprogram_orig !To emulate a file coming from this program + +integer :: iresp + + +call Print_msg( NVERB_DEBUG, 'IO', 'IO_File_open_format', 'called for '//TRIM(tpfile%cname) ) + +#if defined(MNH_IOCDF4) + IF (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4') THEN + SELECT CASE (TPFILE%CMODE) + CASE('READ') + call io_open_file_nc4(tpfile) + CASE('WRITE') + call io_create_file_nc4(TPFILE, hprogram_orig=HPROGRAM_ORIG) + END SELECT + END IF +#endif + + IF (TPFILE%CFORMAT=='LFI' .OR. TPFILE%CFORMAT=='LFICDF4') THEN + SELECT CASE (TPFILE%CMODE) + CASE('READ') + call io_open_file_lfi(tpfile,iresp) + CASE('WRITE') + call io_create_file_lfi(tpfile,iresp) + END SELECT + END IF + +end subroutine IO_File_open_format + +end module mode_io_file -- GitLab From 0d6c333ccbd2203b79ab0edf6b92fea7367e9503 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Mar 2019 13:42:58 +0100 Subject: [PATCH 079/139] Philippe 01/03/2019: minor: rename ISIOP -> NIO_RANK --- src/LIB/SURCOUCHE/src/modd_io.f90 | 2 +- src/LIB/SURCOUCHE/src/mode_io.f90 | 4 ++-- src/LIB/SURCOUCHE/src/mode_io_file.f90 | 14 +++++++------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90 index d304f439d..eaab4a3f0 100644 --- a/src/LIB/SURCOUCHE/src/modd_io.f90 +++ b/src/LIB/SURCOUCHE/src/modd_io.f90 @@ -23,7 +23,7 @@ INTEGER, PARAMETER :: NVERB_NO=0, NVERB_FATAL=1, NVERB_ERROR=2, NVERB_WARNING=3, INTEGER :: NNULLUNIT = -1 ! /dev/null fortran unit, value set in INITIO_ll CHARACTER(LEN=*), PARAMETER :: CNULLFILE = "/dev/null" -INTEGER, SAVE :: ISIOP !! IOproc number +INTEGER, SAVE :: NIO_RANK ! Rank of IO process INTEGER, SAVE :: ISP !! Actual proc number INTEGER, SAVE :: ISNPROC !! Total number of allocated processes LOGICAL, SAVE :: GSMONOPROC = .FALSE. !! True if sequential execution (ISNPROC = 1) diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 912ee2e51..4ff0f6265 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -71,7 +71,7 @@ CONTAINS END SUBROUTINE SET_CONFIO_INTERN_ll SUBROUTINE INITIO_ll() - USE MODD_IO_ll, only: CNULLFILE, GSMONOPROC, ISIOP, ISNPROC, ISP, NNULLUNIT + USE MODD_IO_ll, only: CNULLFILE, GSMONOPROC, nio_rank, ISNPROC, ISP, NNULLUNIT USE MODE_MNH_WORLD, ONLY: INIT_NMNH_COMM_WORLD @@ -88,7 +88,7 @@ CONTAINS !! Now MPI is initialized for sure !! Default number for Processor I/O - ISIOP = 1 + nio_rank = 1 !! Get number of allocated processors CALL MPI_COMM_SIZE(NMNH_COMM_WORLD, ISNPROC,IERR) diff --git a/src/LIB/SURCOUCHE/src/mode_io_file.f90 b/src/LIB/SURCOUCHE/src/mode_io_file.f90 index fd980c03c..9aa4c9a07 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_file.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_file.f90 @@ -180,7 +180,7 @@ END SUBROUTINE IO_File_open SUBROUTINE OPEN_ll(TPFILE, KRESP, HMODE, HSTATUS, HPOSITION, HDELIM, HPROGRAM_ORIG) - use modd_io_ll, only: ISNPROC, ISP, LVERB_ALLPRC, ISIOP, NNULLUNIT + use modd_io_ll, only: ISNPROC, ISP, LVERB_ALLPRC, nio_rank, NNULLUNIT use modd_var_ll, only : nmnh_comm_world #if defined(MNH_IOCDF4) @@ -290,13 +290,13 @@ SUBROUTINE OPEN_ll(TPFILE, KRESP, HMODE, HSTATUS, HPOSITION, HDELIM, HPROGRAM_OR TPFILE%LMASTER = .TRUE. !Every process may write in the file TPFILE%LMULTIMASTERS = .TRUE. ELSE - TPFILE%NMASTER_RANK = ISIOP - TPFILE%LMASTER = (ISP == ISIOP) + TPFILE%NMASTER_RANK = nio_rank + TPFILE%LMASTER = (ISP == nio_rank) TPFILE%LMULTIMASTERS = .FALSE. END IF ELSE - TPFILE%NMASTER_RANK = ISIOP - TPFILE%LMASTER = (ISP == ISIOP) + TPFILE%NMASTER_RANK = nio_rank + TPFILE%LMASTER = (ISP == nio_rank) TPFILE%LMULTIMASTERS = .FALSE. END IF END IF @@ -422,8 +422,8 @@ SUBROUTINE OPEN_ll(TPFILE, KRESP, HMODE, HSTATUS, HPOSITION, HDELIM, HPROGRAM_OR CASE('IO_ZSPLIT') - TPFILE%NMASTER_RANK = ISIOP - TPFILE%LMASTER = (ISP == ISIOP) + TPFILE%NMASTER_RANK = nio_rank + TPFILE%LMASTER = (ISP == nio_rank) TPFILE%LMULTIMASTERS = .FALSE. IF (TPFILE%NSUBFILES_IOZ > 0) THEN -- GitLab From 43775537e49295948405602eb01732320f653990 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Fri, 1 Mar 2019 15:20:43 +0100 Subject: [PATCH 080/139] Quentin 01/03/2019: backup from commit 7d17f6da9: the TINY function added on PURS lead to non-zero values to other variables such as convective precip. and snow variables such as T%TSNOW_ROOF%WSNOW in urban_snow_evol.F90 which lead to activate the snow cover 1layer model even if snow is not present --- src/MNH/convect_updraft.f90 | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/MNH/convect_updraft.f90 b/src/MNH/convect_updraft.f90 index 13b65f82a..d860b6240 100644 --- a/src/MNH/convect_updraft.f90 +++ b/src/MNH/convect_updraft.f90 @@ -144,7 +144,6 @@ END MODULE MODI_CONVECT_UPDRAFT !! Original 07/11/95 !! Last modified 10/12/97 !! V.Masson, C.Lac, Sept. 2010 : Correction of a loop for reproducibility -! P. Wautelet 12/02/2019: bugfix: PURR/PURS were sometimes =-0. -> problems later !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -380,9 +379,7 @@ DO JK = MAX( IKB + 1, JKMIN ), IKE - 1 PUTPR(:) = PUTPR(:) + PUPR(:,JKP) ! total precipitation rate ZWORK2(:) = PURR(:,JKP) / MAX( 1.E-8, PURC(:,JKP) + PURI(:,JKP) ) PURR(:,JKP) = ZWORK2(:) * PURC(:,JKP) ! liquid precipitation - PURR(:,JKP)=MAX(TINY(0.),PURR(:,JKP)) !To prevent problems when =-0. (occur sometimes) PURS(:,JKP) = ZWORK2(:) * PURI(:,JKP) ! solid precipitation - PURS(:,JKP)=MAX(TINY(0.),PURS(:,JKP)) !To prevent problems when =-0. (occur sometimes) ! ! !* 7. Update r_c, r_i, enthalpy, r_w for precipitation -- GitLab From b0e04b95e6ef8de779c4e2e7027c80336ad1f184 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Fri, 1 Mar 2019 16:08:17 +0100 Subject: [PATCH 081/139] Soline Bielli : 01/03/2019: Sea salt update: the significant sea wave height now influences salt emission. The sea salt is either set to a default value of 2meters or read in ECMWF Grib file (if the variable exists). Now 5 modes are available (3 before) and the order in output is changed. The large-scale sea wave height from ECMWF grib is 2D. HALO2 update of the ls variable in modeln is not yet adapted to 2D field (it is switch off in this version for this variable). --- src/LIB/SURCOUCHE/src/mode_field.f90 | 18 + src/MNH/aer_monitorn.f90 | 85 ++- src/MNH/default_desfmn.f90 | 2 +- src/MNH/effic_salt.f90 | 1 + src/MNH/end_diag_in_run.f90 | 4 + src/MNH/endstep.f90 | 25 +- src/MNH/ground_paramn.f90 | 14 +- src/MNH/ini_cpl.f90 | 16 +- src/MNH/ini_diag_in_run.f90 | 7 + src/MNH/ini_lb.f90 | 15 +- src/MNH/ini_ls.f90 | 17 +- src/MNH/ini_modeln.f90 | 22 +- src/MNH/ini_spawn_lsn.f90 | 41 +- src/MNH/ini_spectren.f90 | 12 +- src/MNH/init_salt.f90 | 74 ++ src/MNH/ls_coupling.f90 | 15 +- src/MNH/modd_csts_salt.f90 | 5 +- src/MNH/modd_diag_in_run.f90 | 3 + src/MNH/modd_fieldn.f90 | 9 + src/MNH/modd_getn.f90 | 4 + src/MNH/modd_lsfieldn.f90 | 10 + src/MNH/modd_salt.f90 | 72 +- src/MNH/modd_spawn.f90 | 3 + src/MNH/mode_salt_psd.f90 | 37 +- src/MNH/mode_salt_psd_wet.f90 | 926 ++++++++++++++++++++++++++ src/MNH/mode_saltopt.f90 | 32 +- src/MNH/modeln.f90 | 20 +- src/MNH/modn_salt.f90 | 3 +- src/MNH/prep_real_case.f90 | 4 + src/MNH/radiations.f90 | 5 +- src/MNH/read_all_data_grib_case.f90 | 64 +- src/MNH/read_exsegn.f90 | 9 +- src/MNH/read_field.f90 | 30 +- src/MNH/salt_filter.f90 | 188 +++++- src/MNH/saltlfin.f90 | 125 +++- src/MNH/spawn_field2.f90 | 45 +- src/MNH/spawn_lsn.f90 | 36 +- src/MNH/spawn_model2.f90 | 11 +- src/MNH/spawning.f90 | 3 + src/MNH/write_lbn.f90 | 46 +- src/MNH/write_lfifm1_for_diag.f90 | 18 +- src/MNH/write_lfin.f90 | 8 +- src/SURFEX/coupling_seaflux_orogn.F90 | 6 +- src/SURFEX/coupling_seaflux_sbln.F90 | 6 +- src/SURFEX/coupling_seafluxn.F90 | 58 +- src/SURFEX/coupling_sean.F90 | 6 +- src/SURFEX/coupling_sltn.F90 | 315 ++++++--- src/SURFEX/coupling_surf_atmn.F90 | 8 +- src/SURFEX/default_slt.F90 | 7 +- src/SURFEX/init_slt.F90 | 59 +- src/SURFEX/modd_slt_surf.F90 | 9 +- src/SURFEX/modd_sltn.F90 | 26 +- src/SURFEX/modn_slt.F90 | 6 +- 53 files changed, 2243 insertions(+), 347 deletions(-) create mode 100644 src/MNH/init_salt.f90 create mode 100644 src/MNH/mode_salt_psd_wet.f90 diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90 index ff01011b6..86eb6589f 100644 --- a/src/LIB/SURCOUCHE/src/mode_field.f90 +++ b/src/LIB/SURCOUCHE/src/mode_field.f90 @@ -9,6 +9,7 @@ ! Philippe Wautelet: 29/01/2019 : small bug correction (null pointers) in FIELDLIST_GOTO_MODEL if NESPGD or PGD ! Philippe Wautelet: 01/02/2019 : bug correction in case XRT is not associated ! 02/2019 C.Lac add rain fraction as an output field +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !----------------------------------------------------------------- MODULE MODE_FIELD ! @@ -896,6 +897,20 @@ ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL)) IDX = IDX+1 ! IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST() +TFIELDLIST(IDX)%CMNHNAME = 'ZWS' +TFIELDLIST(IDX)%CSTDNAME = 'surface_altitude' +TFIELDLIST(IDX)%CLONGNAME = 'ZWS' +TFIELDLIST(IDX)%CUNITS = 'm' +TFIELDLIST(IDX)%CDIR = 'XY' +TFIELDLIST(IDX)%CCOMMENT = 'sea wave height' +TFIELDLIST(IDX)%NGRID = 4 +TFIELDLIST(IDX)%NTYPE = TYPEREAL +TFIELDLIST(IDX)%NDIMS = 2 +TFIELDLIST(IDX)%LTIMEDEP = .TRUE. +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL)) +IDX = IDX+1 +! +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST() TFIELDLIST(IDX)%CMNHNAME = 'ZSMT' TFIELDLIST(IDX)%CSTDNAME = '' TFIELDLIST(IDX)%CLONGNAME = 'ZSMT' @@ -4160,6 +4175,9 @@ IF( KFROM/=KTO) THEN ! ! MODD_FIELD_n variables ! +! *** BEGIN SB ADD HS *** +CALL FIND_FIELD_ID_FROM_MNHNAME('ZWS', IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XZWS +! *** END SB ADD HS *** CALL FIND_FIELD_ID_FROM_MNHNAME('UT', IID,IRESP); XUT => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA CALL FIND_FIELD_ID_FROM_MNHNAME('VT', IID,IRESP); XVT => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA CALL FIND_FIELD_ID_FROM_MNHNAME('WT', IID,IRESP); XWT => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA diff --git a/src/MNH/aer_monitorn.f90 b/src/MNH/aer_monitorn.f90 index 245e8f672..21f1f177f 100644 --- a/src/MNH/aer_monitorn.f90 +++ b/src/MNH/aer_monitorn.f90 @@ -72,7 +72,8 @@ END MODULE MODI_AER_MONITOR_n !! !! MODIFICATIONS !! ------------- -!! +! +!! Bielli S. (02/2019) : Sea salt : significant sea wave height influences salt emission; 5 salt modes !! EXTERNAL !! -------- ! @@ -112,7 +113,7 @@ USE MODD_LBC_n, ONLY: CLBCX, &!X-direction LBC type at left(1) ! and right(2) boundaries USE MODD_CLOUDPAR_n, ONLY: NSPLITR ! Nb of required small time step integration ! for rain sedimentation computation -USE MODD_CONF, ONLY: L1D, L2D +USE MODD_CONF, ONLY: L1D, L2D, NVERB USE MODD_CONF_n, ONLY: LUSERC,& ! Logical to use clouds LUSERV,& ! Logical to use wapor water LUSERR,& ! Logical to use rain water @@ -185,9 +186,14 @@ IKE = IKU - JPVEXT ! !* 1.2 calculate timestep variables ! +! ++ JORIS DEBUG ++ +IF (NVERB == 10) WRITE(*,*) 'dans aer_monitorn.f90 1.' +! -- JORIS DEBUG -- ! - XRSVS(:,:,:,NSV_DSTBEG:NSV_DSTEND) = & - MAX(XRSVS(:,:,:,NSV_DSTBEG:NSV_DSTEND), 0.) +! ++ PIERRE / MARINE SSA DUST - MODIF ++ +! XRSVS(:,:,:,NSV_DSTBEG:NSV_DSTEND) = & +! MAX(XRSVS(:,:,:,NSV_DSTBEG:NSV_DSTEND), 0.) +! -- PIERRE / MARINE SSA DUST - MODIF -- ! !* 2. Sedimentation of aerosols ! ------------------------ @@ -198,8 +204,11 @@ IF (LDUST.AND.LSEDIMDUST) THEN DO JSV = NSV_DSTBEG, NSV_DSTEND ZSVT(:,:,:,JSV-NSV_DSTBEG+1) = XRSVS(:,:,:,JSV) * PTSTEP / XRHODJ(:,:,:) ENDDO - CALL DUST_FILTER(ZSVT(IIB:IIE,IJB:IJE,IKB:IKE,:),& - XRHODREF(IIB:IIE,IJB:IJE,IKB:IKE)) +! ++ PIERRE / MARINE SSA DUST - MODIF ++ + CALL DUST_FILTER(ZSVT,XRHODREF) +! CALL DUST_FILTER(ZSVT(IIB:IIE,IJB:IJE,IKB:IKE,:),& +! XRHODREF(IIB:IIE,IJB:IJE,IKB:IKE)) +! -- PIERRE / MARINE SSA DUST - MODIF -- CALL SEDIM_DUST(XTHT(IIB:IIE,IJB:IJE,IKB:IKE), PTSTEP,& XRHODREF(IIB:IIE,IJB:IJE,IKB:IKE), & XPABST(IIB:IIE,IJB:IJE,IKB:IKE), & @@ -222,14 +231,17 @@ IF ((LSALT).AND.(LSEDIMSALT)) THEN ZSVT(:,:,:,JSV-NSV_SLTBEG+1) = XRSVS(:,:,:,JSV) * PTSTEP / XRHODJ(:,:,:) ENDDO +! ++ JORIS DEBUG ++ CALL SALT_FILTER(ZSVT(IIB:IIE,IJB:IJE,IKB:IKE,:),& - XRHODREF(IIB:IIE,IJB:IJE,IKB:IKE)) + XRHODREF(IIB:IIE,IJB:IJE,IKB:IKE)) +! CALL SEDIM_SALT(XTHT(IIB:IIE,IJB:IJE,IKB:IKE),PTSTEP,& XRHODREF(IIB:IIE,IJB:IJE,IKB:IKE), & XPABST(IIB:IIE,IJB:IJE,IKB:IKE), & XZZ(IIB:IIE,IJB:IJE,IKB:IKE+1), & ZSVT(IIB:IIE,IJB:IJE,IKB:IKE,:)) !ppp (concentration) -! +! -- JORIS DEBUG -- + DO JSV = NSV_SLTBEG, NSV_SLTEND XRSVS(IIB:IIE,IJB:IJE,IKB:IKE,JSV) = & ZSVT(IIB:IIE,IJB:IJE,IKB:IKE,JSV-NSV_SLTBEG+1) *& @@ -365,7 +377,26 @@ SELECT CASE (CCLOUD) ZVMASSMIN(IIB:IIE,IJB:IJE,IKB:IKE,:),& PCCT=ZSVT(IIB:IIE,IJB:IJE,IKB:IKE,NSV_C2R2BEG+1),& PCRT=ZSVT(IIB:IIE,IJB:IJE,IKB:IKE,NSV_C2R2BEG+2) ) - +!++th++ 05/05/17 ajout LIMA +CASE ('LIMA') + CALL AER_WET_DEP_KMT_WARM (NSPLITR, PTSTEP, & + XZZ(IIB:IIE,IJB:IJE,IKB:IKE), & + XRHODREF(IIB:IIE,IJB:IJE,IKB:IKE), & + XRT(IIB:IIE,IJB:IJE,IKB:IKE,2), & + XRT(IIB:IIE,IJB:IJE,IKB:IKE,3), & + ZRCS(IIB:IIE,IJB:IJE,IKB:IKE), & + ZRRS(IIB:IIE,IJB:IJE,IKB:IKE), & + ZSVDST(IIB:IIE,IJB:IJE,IKB:IKE,:), & + XTHT(IIB:IIE,IJB:IJE,IKB:IKE), & + XPABST(IIB:IIE,IJB:IJE,IKB:IKE), & + ZRGDST(IIB:IIE,IJB:IJE,IKB:IKE,:), & + XEVAP3D(IIB:IIE,IJB:IJE,IKB:IKE), & + NMODE_DST, & + ZDENSITY(IIB:IIE,IJB:IJE,IKB:IKE,:), & + ZVMASSMIN(IIB:IIE,IJB:IJE,IKB:IKE,:),& + PCCT=ZSVT(IIB:IIE,IJB:IJE,IKB:IKE,NSV_LIMA_NC),& + PCRT=ZSVT(IIB:IIE,IJB:IJE,IKB:IKE,NSV_LIMA_NR) ) +!--th-- END SELECT ! 3.5 Compute return to moment vector @@ -441,25 +472,25 @@ ZDENSITY(:,:,:,:) = XDENSITY_SALT ! ! 4.1 Minimum mass to transfer between dry mass or in-cloud droplets - +! ++ PIERRE / MARINE SSA DUST - MODIF ++ DO JN=1,NMODE_SLT IMODEIDX = JPSALTORDER(JN) IF (CRGUNITD=="MASS") THEN - ZINIRADIUS(JN) = XINIRADIUS(IMODEIDX) * EXP(-3.*(LOG(XINISIG(IMODEIDX)))**2) + ZINIRADIUS(JN) = XINIRADIUS_SLT(IMODEIDX) * EXP(-3.*(LOG(XINISIG_SLT(IMODEIDX)))**2) ELSE - ZINIRADIUS(JN) = XINIRADIUS(IMODEIDX) + ZINIRADIUS(JN) = XINIRADIUS_SLT(IMODEIDX) END IF IF (LVARSIG) THEN - ZSIGMIN = XSIGMIN + ZSIGMIN = XSIGMIN_SLT ELSE - ZSIGMIN = XINISIG(IMODEIDX) + ZSIGMIN = XINISIG_SLT(IMODEIDX) ENDIF - ZMASSMIN(JN) = XN0MIN(IMODEIDX) * (ZINIRADIUS(JN)**3)*EXP(4.5 * LOG(ZSIGMIN)**2) + ZMASSMIN(JN) = XN0MIN_SLT(IMODEIDX) * (ZINIRADIUS(JN)**3)*EXP(4.5 * LOG(ZSIGMIN)**2) ! volume/um3 => #/molec_{air} ZVMASSMIN(:,:,:,JN)= ZMASSMIN(JN) * XMD * XPI * 4./3. * XDENSITY_SALT / & - (XMOLARWEIGHT_SALT*XM3TOUM3*XRHODREF(:,:,:)) + (XMOLARWEIGHT_SALT*XM3TOUM3_SALT*XRHODREF(:,:,:)) ENDDO - +! -- PIERRE / MARINE SSA DUST - MODIF -- ! ! 4.2 Derive moment from aerosol moments sources @@ -536,7 +567,25 @@ SELECT CASE (CCLOUD) ZVMASSMIN(IIB:IIE,IJB:IJE,IKB:IKE,:),& PCCT=ZSVT(IIB:IIE,IJB:IJE,IKB:IKE,NSV_C2R2BEG+1),& PCRT=ZSVT(IIB:IIE,IJB:IJE,IKB:IKE,NSV_C2R2BEG+2) ) - +!++th++05/05/17 ajout LIMA + CALL AER_WET_DEP_KMT_WARM (NSPLITR, PTSTEP, & + XZZ(IIB:IIE,IJB:IJE,IKB:IKE), & + XRHODREF(IIB:IIE,IJB:IJE,IKB:IKE), & + XRT(IIB:IIE,IJB:IJE,IKB:IKE,2), & + XRT(IIB:IIE,IJB:IJE,IKB:IKE,3), & + ZRCS(IIB:IIE,IJB:IJE,IKB:IKE), & + ZRRS(IIB:IIE,IJB:IJE,IKB:IKE), & + ZSVSLT(IIB:IIE,IJB:IJE,IKB:IKE,:), & + XTHT(IIB:IIE,IJB:IJE,IKB:IKE), & + XPABST(IIB:IIE,IJB:IJE,IKB:IKE), & + ZRGSLT(IIB:IIE,IJB:IJE,IKB:IKE,:), & + XEVAP3D(IIB:IIE,IJB:IJE,IKB:IKE), & + NMODE_SLT, & + ZDENSITY(IIB:IIE,IJB:IJE,IKB:IKE,:), & + ZVMASSMIN(IIB:IIE,IJB:IJE,IKB:IKE,:),& + PCCT=ZSVT(IIB:IIE,IJB:IJE,IKB:IKE,NSV_LIMA_NC),& + PCRT=ZSVT(IIB:IIE,IJB:IJE,IKB:IKE,NSV_LIMA_NR) ) +!--th-- END SELECT ! 4.5 Compute return to moment vector diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90 index 2632f9f08..9c7cbcb5b 100644 --- a/src/MNH/default_desfmn.f90 +++ b/src/MNH/default_desfmn.f90 @@ -227,6 +227,7 @@ END MODULE MODI_DEFAULT_DESFM_n !! 01/2018 (J.Colin) add VISC and DRAG !! 07/2017 (V. Vionnet) add blowing snow variables !! 01/2019 (R. Honnert) add reduction of the mass-flux surface closure with the resolution +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -1371,7 +1372,6 @@ IF (KMI == 1) THEN ! other values initialized in modd_dust LDEPOS_DST(:) = .FALSE. LSALT = .FALSE. - NMODE_SLT = 3 LVARSIG_SLT= .FALSE. LSEDIMSALT = .FALSE. LDEPOS_SLT(:) = .FALSE. diff --git a/src/MNH/effic_salt.f90 b/src/MNH/effic_salt.f90 index 71ee6dfc2..a26367896 100644 --- a/src/MNH/effic_salt.f90 +++ b/src/MNH/effic_salt.f90 @@ -57,6 +57,7 @@ END MODULE MODI_EFFIC_SALT !! ------------- !! Original !! +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes ! Entry variables: ! ! PSVTS(INOUT) -Array of moments included in PSVTS diff --git a/src/MNH/end_diag_in_run.f90 b/src/MNH/end_diag_in_run.f90 index 139ba83be..61405af36 100644 --- a/src/MNH/end_diag_in_run.f90 +++ b/src/MNH/end_diag_in_run.f90 @@ -58,6 +58,7 @@ SUBROUTINE END_DIAG_IN_RUN !! Original 11/2003 !! !! 02/2018 Q.Libois ECRAD +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -92,6 +93,9 @@ DEALLOCATE(XCURRENT_MER10M)! meridian wind at 10m DEALLOCATE(XCURRENT_DSTAOD)! dust aerosol optical depth DEALLOCATE(XCURRENT_SFCO2 ) ! CO2 Surface flux DEALLOCATE(XCURRENT_TKE_DISS) ! Tke dissipation rate +DEALLOCATE(XCURRENT_SLTAOD) ! Salt aerosol optical depth +DEALLOCATE(XCURRENT_ZWS ) ! Significant height of waves + ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/endstep.f90 b/src/MNH/endstep.f90 index fb0bd478b..9a3da2c54 100644 --- a/src/MNH/endstep.f90 +++ b/src/MNH/endstep.f90 @@ -18,16 +18,16 @@ INTERFACE PUS,PVS,PWS,PDRYMASSS, & PTHS,PRS,PTKES,PSVS, & PLSUS,PLSVS,PLSWS, & - PLSTHS,PLSRVS, & + PLSTHS,PLSRVS,PLSZWSS, & PLBXUS,PLBXVS,PLBXWS, & PLBXTHS,PLBXRS,PLBXTKES,PLBXSVS, & PLBYUS,PLBYVS,PLBYWS, & PLBYTHS,PLBYRS,PLBYTKES,PLBYSVS, & - PUM,PVM,PWM, & + PUM,PVM,PWM,PZWS, & PUT,PVT,PWT,PPABST,PDRYMASST, & PTHT,PRT,PTHM,PRCM,PPABSM,PTKET,PSVT, & PLSUM,PLSVM,PLSWM, & - PLSTHM,PLSRVM, & + PLSTHM,PLSRVM,PLSZWSM, & PLBXUM,PLBXVM,PLBXWM, & PLBXTHM,PLBXRM,PLBXTKEM,PLBXSVM, & PLBYUM,PLBYVM,PLBYWM, & @@ -51,6 +51,7 @@ REAL, INTENT(IN) :: PDRYMASSS ! Md source REAL, DIMENSION(:,:,:), INTENT(IN) :: PLSUS,PLSVS,PLSWS,& ! Large Scale PLSTHS,PLSRVS ! fields tendencies ! +REAL, DIMENSION(:,:), INTENT(IN) :: PLSZWSS ! Large Scale fields tendencies REAL, DIMENSION(:,:,:), INTENT(IN) :: PLBXUS,PLBXVS,PLBXWS, & ! PLBXTHS,PLBXTKES ! LBX tendancy REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PLBXRS,PLBXSVS ! @@ -68,6 +69,7 @@ REAL, INTENT(INOUT):: PDRYMASST ! ! REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLSUM,PLSVM,PLSWM,& ! Large Scale fields PLSTHM,PLSRVM ! at t-dt +REAL, DIMENSION(:,:), INTENT(INOUT) :: PLSZWSM ! Large Scale fields at t-dt ! REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLBXUM,PLBXVM,PLBXWM, & ! PLBXTHM,PLBXTKEM ! LBX fields @@ -76,6 +78,7 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT):: PLBXRM,PLBXSVM ! REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLBYUM,PLBYVM,PLBYWM, & ! PLBYTHM,PLBYTKEM ! LBY fields REAL, DIMENSION(:,:,:,:), INTENT(INOUT):: PLBYRM,PLBYSVM ! +REAL, DIMENSION(:,:), INTENT(INOUT) :: PZWS ! significant wave height ! END SUBROUTINE ENDSTEP ! @@ -91,16 +94,16 @@ END MODULE MODI_ENDSTEP PUS,PVS,PWS,PDRYMASSS, & PTHS,PRS,PTKES,PSVS, & PLSUS,PLSVS,PLSWS, & - PLSTHS,PLSRVS, & + PLSTHS,PLSRVS,PLSZWSS, & PLBXUS,PLBXVS,PLBXWS, & PLBXTHS,PLBXRS,PLBXTKES,PLBXSVS, & PLBYUS,PLBYVS,PLBYWS, & PLBYTHS,PLBYRS,PLBYTKES,PLBYSVS, & - PUM,PVM,PWM, & + PUM,PVM,PWM,PZWS, & PUT,PVT,PWT,PPABST,PDRYMASST, & PTHT,PRT,PTHM,PRCM,PPABSM,PTKET,PSVT, & PLSUM,PLSVM,PLSWM, & - PLSTHM,PLSRVM, & + PLSTHM,PLSRVM,PLSZWSM, & PLBXUM,PLBXVM,PLBXWM, & PLBXTHM,PLBXRM,PLBXTKEM,PLBXSVM, & PLBYUM,PLBYVM,PLBYWM, & @@ -192,6 +195,7 @@ END MODULE MODI_ENDSTEP !! 04/2013 (C.Lac) FIT for all the variables !! 04/2014 (C.Lac) Check on the positivity of PSVT !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 +!! 02/2019 (S. Bielli) Sea salt : significant sea wave height influences salt emission; 5 salt modes !! !------------------------------------------------------------------------------ ! @@ -241,6 +245,7 @@ REAL, INTENT(IN) :: PDRYMASSS ! Md source ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PLSUS,PLSVS,PLSWS,& ! Large Scale PLSTHS,PLSRVS ! fields tendencies +REAL, DIMENSION(:,:), INTENT(IN) :: PLSZWSS ! Large Scale fields tendencies ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PLBXUS,PLBXVS,PLBXWS, & ! PLBXTHS,PLBXTKES ! LBX tendancy @@ -260,6 +265,8 @@ REAL, INTENT(INOUT):: PDRYMASST ! REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLSUM,PLSVM,PLSWM,& ! Large Scale fields PLSTHM,PLSRVM ! at t-dt ! +REAL, DIMENSION(:,:), INTENT(INOUT) :: PLSZWSM ! Large Scale fields at t-dt +! REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLBXUM,PLBXVM,PLBXWM, & ! PLBXTHM,PLBXTKEM ! LBX fields REAL, DIMENSION(:,:,:,:), INTENT(INOUT):: PLBXRM,PLBXSVM ! @@ -268,6 +275,7 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLBYUM,PLBYVM,PLBYWM, & ! PLBYTHM,PLBYTKEM ! LBY fields REAL, DIMENSION(:,:,:,:), INTENT(INOUT):: PLBYRM,PLBYSVM ! ! +REAL, DIMENSION(:,:), INTENT(INOUT) :: PZWS ! significant wave height ! !* 0.2 DECLARATIONS OF LOCAL VARIABLES ! @@ -383,6 +391,11 @@ ENDIF IF (SIZE(PLSRVS,1) /= 0) THEN PLSRVM(:,:,:) = MAX( PLSRVM(:,:,:) + PTSTEP * PLSRVS(:,:,:) , 0.) ENDIF + +IF (SIZE(PLSZWSS,1) /= 0) THEN + PLSZWSM(:,:) = MAX( PLSZWSM(:,:) + PTSTEP * PLSZWSS(:,:) , 0.) + PZWS(:,:) = PLSZWSM(:,:) +ENDIF ! !------------------------------------------------------------------------------ ! diff --git a/src/MNH/ground_paramn.f90 b/src/MNH/ground_paramn.f90 index a492a36b3..717aa871b 100644 --- a/src/MNH/ground_paramn.f90 +++ b/src/MNH/ground_paramn.f90 @@ -109,6 +109,7 @@ END MODULE MODI_GROUND_PARAM_n !! (P.Wautelet) 28/03/2018 replace TEMPORAL_DIST by DATETIME_DISTANCE !! (V. Vionnet) 18/07/2017 add coupling for blowing snow module +!! (Bielli S.) 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -128,7 +129,7 @@ USE MODD_CST, ONLY : XP00, XCPD, XRD, XRV,XRHOLW, XDAY, XPI, XLVTT, XMD, USE MODD_PARAMETERS, ONLY : JPVEXT, XUNDEF USE MODD_DYN_n, ONLY : XTSTEP USE MODD_CH_MNHC_n, ONLY : LUSECHEM -USE MODD_FIELD_n, ONLY : XUT, XVT, XWT, XTHT, XRT, XPABST, XSVT, XTKET +USE MODD_FIELD_n, ONLY : XUT, XVT, XWT, XTHT, XRT, XPABST, XSVT, XTKET, XZWS USE MODD_METRICS_n, ONLY : XDXX, XDYY, XDZZ USE MODD_DIM_n, ONLY : NKMAX USE MODD_GRID_n, ONLY : XLON, XZZ, XDIRCOSXW, XDIRCOSYW, XDIRCOSZW, & @@ -307,6 +308,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZP_DIR_SW ! direct incoming shortwave REAL, DIMENSION(:,:), ALLOCATABLE :: ZP_SCA_SW ! diffuse incoming shortwave REAL, DIMENSION(:), ALLOCATABLE :: ZP_PS ! surface pressure REAL, DIMENSION(:), ALLOCATABLE :: ZP_PA ! pressure at first atmospheric level +REAL, DIMENSION(:), ALLOCATABLE :: ZP_ZWS ! significant wave height (m) REAL, DIMENSION(:), ALLOCATABLE :: ZP_SFTQ ! water vapor flux REAL, DIMENSION(:), ALLOCATABLE :: ZP_SFTH ! potential temperature flux @@ -594,7 +596,7 @@ CALL COUPLING_SURF_ATM_n(YSURF_CUR,'MESONH', 'E',ZTIMEC, ZP_SFTQ, ZP_SFTH, ZP_SFTS, ZP_SFCO2, ZP_SFU, ZP_SFV, & ZP_TSRAD, ZP_DIR_ALB, ZP_SCA_ALB, ZP_EMIS, ZP_TSURF, ZP_Z0, ZP_Z0H, ZP_QSURF, & ZP_PEW_A_COEF, ZP_PEW_B_COEF, & - ZP_PET_A_COEF, ZP_PEQ_A_COEF, ZP_PET_B_COEF, ZP_PEQ_B_COEF, & + ZP_PET_A_COEF, ZP_PEQ_A_COEF, ZP_PET_B_COEF, ZP_PEQ_B_COEF,ZP_ZWS, & 'OK' ) ! #ifdef CPLOASIS @@ -751,12 +753,14 @@ IF (LDIAG_IN_RUN) THEN XCURRENT_SWDIFF(:,:) = SUM(XSCAFLASWD(:,:,:),DIM=3) XCURRENT_SFCO2(:,:) = ZSFCO2(:,:) XCURRENT_DSTAOD(:,:)=0.0 + XCURRENT_SLTAOD(:,:)=0.0 IF (CRAD=='ECMW') THEN DO JK=IKB,IKE IKRAD = JK - 1 DO JJ=IJB,IJE DO JI=IIB,IIE XCURRENT_DSTAOD(JI,JJ)=XCURRENT_DSTAOD(JI,JJ)+XAER(JI,JJ,IKRAD,3) + XCURRENT_SLTAOD(JI,JJ)=XCURRENT_SLTAOD(JI,JJ)+XAER(JI,JJ,IKRAD,2) ENDDO ENDDO ENDDO @@ -777,6 +781,8 @@ IF (LDIAG_IN_RUN) THEN CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_ZON10M) CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_MER10M) CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_DSTAOD) + CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_SLTAOD) + CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_ZWS ) CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_SFCO2 ) CALL UPDATE_HALO_ll(TZFIELDSURF_ll,IINFO_ll) @@ -815,6 +821,7 @@ ALLOCATE(ZP_DIR_SW (KDIM1D,SIZE(XDIRSRFSWD,3))) ALLOCATE(ZP_SCA_SW (KDIM1D,SIZE(XSCAFLASWD,3))) ALLOCATE(ZP_PS (KDIM1D)) ALLOCATE(ZP_PA (KDIM1D)) +ALLOCATE(ZP_ZWS (KDIM1D)) ALLOCATE(ZP_SFTQ (KDIM1D)) ALLOCATE(ZP_SFTH (KDIM1D)) @@ -861,6 +868,7 @@ ZP_CO2(:) = RESHAPE(ZCO2(IIB:IIE,IJB:IJE), ISHAPE_1) ZP_SNOW(:) = RESHAPE(ZSNOW(IIB:IIE,IJB:IJE), ISHAPE_1) ZP_RAIN(:) = RESHAPE(ZRAIN(IIB:IIE,IJB:IJE), ISHAPE_1) ZP_ZREF(:) = RESHAPE(ZZREF(IIB:IIE,IJB:IJE), ISHAPE_1) +ZP_ZWS(:) = RESHAPE(XZWS(IIB:IIE,IJB:IJE), ISHAPE_1) DO JLAYER=1,NSV ZP_SV(:,JLAYER) = RESHAPE(XSVT(IIB:IIE,IJB:IJE,IKB,JLAYER), ISHAPE_1) @@ -961,6 +969,7 @@ IF (LDIAG_IN_RUN) THEN XCURRENT_HU2M (IIB:IIE,IJB:IJE) = RESHAPE(ZP_HU2M(:), ISHAPE_2) XCURRENT_ZON10M (IIB:IIE,IJB:IJE) = RESHAPE(ZP_ZON10M(:), ISHAPE_2) XCURRENT_MER10M (IIB:IIE,IJB:IJE) = RESHAPE(ZP_MER10M(:), ISHAPE_2) + XCURRENT_ZWS (IIB:IIE,IJB:IJE) = RESHAPE(ZP_ZWS(:), ISHAPE_2) ENDIF ! DO JLAYER=1,SIZE(PDIR_ALB,3) @@ -987,6 +996,7 @@ DEALLOCATE(ZP_DIR_SW ) DEALLOCATE(ZP_SCA_SW ) DEALLOCATE(ZP_PS ) DEALLOCATE(ZP_PA ) +DEALLOCATE(ZP_ZWS ) DEALLOCATE(ZP_SFTQ ) DEALLOCATE(ZP_SFTH ) diff --git a/src/MNH/ini_cpl.f90 b/src/MNH/ini_cpl.f90 index 5f7909787..d7dac918a 100644 --- a/src/MNH/ini_cpl.f90 +++ b/src/MNH/ini_cpl.f90 @@ -17,10 +17,10 @@ INTERFACE KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll, & KSIZELBXTKE_ll,KSIZELBYTKE_ll, & KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll, & - PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PDRYMASST, & + PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PLSZWSM,PDRYMASST, & PLBXUM,PLBXVM,PLBXWM,PLBXTHM,PLBXTKEM,PLBXRM,PLBXSVM, & PLBYUM,PLBYVM,PLBYWM,PLBYTHM,PLBYTKEM,PLBYRM,PLBYSVM, & - PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS,PDRYMASSS, & + PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS,PLSZWSS,PDRYMASSS, & PLBXUS,PLBXVS,PLBXWS,PLBXTHS,PLBXTKES,PLBXRS,PLBXSVS, & PLBYUS,PLBYVS,PLBYWS,PLBYTHS,PLBYTKES,PLBYRS,PLBYSVS ) ! @@ -53,6 +53,7 @@ INTEGER, INTENT(IN):: KSIZELBYTKE_ll ! for TKE INTEGER, INTENT(IN) :: KSIZELBYR_ll,KSIZELBYSV_ll ! for Rx and SV ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PLSUM,PLSVM,PLSWM ! Large Scale +REAL, DIMENSION(:,:), INTENT(IN) :: PLSZWSM ! Significant wave height REAL, DIMENSION(:,:,:), INTENT(IN) :: PLSTHM, PLSRVM ! fields at t-dt REAL, INTENT(IN) :: PDRYMASST ! Mass of dry air Md ! larger scale fields for Lateral Boundary condition @@ -68,6 +69,7 @@ REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PLBYRM ,PLBYSVM ! in x and y-di REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSUS,PLSVS,PLSWS ! Large Scale REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSTHS,PLSRVS ! source terms REAL, INTENT(OUT) :: PDRYMASSS ! Md source +REAL, DIMENSION(:,:), INTENT(OUT) :: PLSZWSS ! Significant wave height ! larger scale fields sources for Lateral Boundary condition REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLBXUS,PLBXVS,PLBXWS ! Wind REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLBXTHS ! Mass @@ -94,10 +96,10 @@ END MODULE MODI_INI_CPL KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll, & KSIZELBXTKE_ll,KSIZELBYTKE_ll, & KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll, & - PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PDRYMASST, & + PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PLSZWSM,PDRYMASST, & PLBXUM,PLBXVM,PLBXWM,PLBXTHM,PLBXTKEM,PLBXRM,PLBXSVM, & PLBYUM,PLBYVM,PLBYWM,PLBYTHM,PLBYTKEM,PLBYRM,PLBYSVM, & - PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS,PDRYMASSS, & + PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS,PLSZWSS,PDRYMASSS, & PLBXUS,PLBXVS,PLBXWS,PLBXTHS,PLBXTKES,PLBXRS,PLBXSVS, & PLBYUS,PLBYVS,PLBYWS,PLBYTHS,PLBYTKES,PLBYRS,PLBYSVS ) ! ##################################################################### @@ -209,6 +211,7 @@ END MODULE MODI_INI_CPL !! (J.Escobar) 26/03/2014 bug in init of NSV_USER on RESTA case !! (P.Wautelet)28/03/2018 replace TEMPORAL_DIST by DATETIME_DISTANCE !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -275,6 +278,7 @@ INTEGER, INTENT(IN) :: KSIZELBYR_ll,KSIZELBYSV_ll ! for Rx and SV ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PLSUM,PLSVM,PLSWM ! Large Scale REAL, DIMENSION(:,:,:), INTENT(IN) :: PLSTHM, PLSRVM ! fields at t-dt +REAL, DIMENSION(:,:), INTENT(IN) :: PLSZWSM ! Significant wave height at t-dt REAL, INTENT(IN) :: PDRYMASST ! Mass of dry air Md ! larger scale fields for Lateral Boundary condition REAL, DIMENSION(:,:,:), INTENT(IN) :: PLBXUM,PLBXVM,PLBXWM ! Wind @@ -288,6 +292,7 @@ REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PLBYRM ,PLBYSVM ! in x and y-di ! REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSUS,PLSVS,PLSWS ! Large Scale REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSTHS,PLSRVS ! source terms +REAL, DIMENSION(:,:), INTENT(OUT) :: PLSZWSS ! Significant wave height REAL, INTENT(OUT) :: PDRYMASSS ! Md source ! larger scale fields sources for Lateral Boundary condition REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLBXUS,PLBXVS,PLBXWS ! Wind @@ -467,7 +472,8 @@ GLSOURCE=.TRUE. ZLENG = (NCPL_TIMES(NCPL_CUR,1)-2) * PTSTEP ! CALL INI_LS(TCPLFILE(NCPL_CUR)%TZFILE,HGETRVM,GLSOURCE,PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS, & - PDRYMASSS,PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PDRYMASST,ZLENG,OSTEADY_DMASS) + PLSZWSS,PDRYMASSS,PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PLSZWSM,PDRYMASST,ZLENG, & + OSTEADY_DMASS) ! ! !* 3.2 Initialize the LB sources diff --git a/src/MNH/ini_diag_in_run.f90 b/src/MNH/ini_diag_in_run.f90 index 2df092c1c..d44800cdc 100644 --- a/src/MNH/ini_diag_in_run.f90 +++ b/src/MNH/ini_diag_in_run.f90 @@ -63,6 +63,7 @@ END MODULE MODI_INI_DIAG_IN_RUN !! ------------- !! Original 11/2003 !! 02/2018 Q.Libois ECRAD +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !! !! -------------------------------------------------------------------------- ! @@ -113,6 +114,8 @@ IF (LDIAG_IN_RUN) THEN ALLOCATE(XCURRENT_DSTAOD(KIU,KJU))! dust aerosol optical depth ALLOCATE(XCURRENT_SFCO2 (KIU,KJU))! CO2 Surface flux ALLOCATE(XCURRENT_TKE_DISS(KIU,KJU,KKU)) ! Tke dissipation rate + ALLOCATE(XCURRENT_SLTAOD(KIU,KJU))! Salt aerosol optical depth + ALLOCATE(XCURRENT_ZWS(KIU,KJU)) ! Significant height of waves ! ! XCURRENT_RN = XUNDEF @@ -134,6 +137,8 @@ IF (LDIAG_IN_RUN) THEN XCURRENT_DSTAOD= XUNDEF XCURRENT_SFCO2 = XUNDEF XCURRENT_TKE_DISS = XUNDEF + XCURRENT_SLTAOD= XUNDEF + XCURRENT_ZWS = XUNDEF ELSE ALLOCATE(XCURRENT_RN (0,0))! net radiation ALLOCATE(XCURRENT_H (0,0))! sensible heat flux @@ -154,6 +159,8 @@ ELSE ALLOCATE(XCURRENT_DSTAOD(0,0))! dust aerosol optical depth ALLOCATE(XCURRENT_SFCO2 (0,0))! CO2 Surface flux ALLOCATE(XCURRENT_TKE_DISS(0,0,0)) ! Tke dissipation rate + ALLOCATE(XCURRENT_SLTAOD(0,0))! Salt aerosol optical depth + ALLOCATE(XCURRENT_ZWS(0,0))! Significant height of waves END IF ! !------------------------------------------------------------------------------- diff --git a/src/MNH/ini_lb.f90 b/src/MNH/ini_lb.f90 index 087ffad67..d204ff419 100644 --- a/src/MNH/ini_lb.f90 +++ b/src/MNH/ini_lb.f90 @@ -133,6 +133,7 @@ SUBROUTINE INI_LB(TPINIFILE,OLSOURCE,KSV, & !! M.Leriche 09/02/16 Treat gas and aq. chemicals separately !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 13/02/2019: initialize PLBXSVM and PLBYSVM in all cases +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -900,7 +901,7 @@ END IF ! Chemical aqueous phase scalar variables IF (NSV_CHACEND>=NSV_CHACBEG) THEN TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'kg kg-1' + TZFIELD%CUNITS = 'ppp' TZFIELD%CDIR = '' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL @@ -956,7 +957,7 @@ END IF ! Chemical ice phase scalar variables IF (NSV_CHICEND>=NSV_CHICBEG) THEN TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'kg kg-1' + TZFIELD%CUNITS = 'ppp' TZFIELD%CDIR = '' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL @@ -1012,7 +1013,7 @@ END IF ! Orilam aerosol scalar variables IF (NSV_AEREND>=NSV_AERBEG) THEN TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'kg kg-1' + TZFIELD%CUNITS = 'ppp' TZFIELD%CDIR = '' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL @@ -1068,7 +1069,7 @@ END IF ! Orilam aerosols moist scalar variables IF (NSV_AERDEPEND>=NSV_AERDEPBEG) THEN TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'kg kg-1' + TZFIELD%CUNITS = 'ppp' TZFIELD%CDIR = '' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL @@ -1124,7 +1125,7 @@ END IF ! Dust scalar variables IF (NSV_DSTEND>=NSV_DSTBEG) THEN TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'kg kg-1' + TZFIELD%CUNITS = 'ppp' TZFIELD%CDIR = '' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL @@ -1180,7 +1181,7 @@ END IF ! IF (NSV_DSTDEPEND>=NSV_DSTDEPBEG) THEN TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'kg kg-1' + TZFIELD%CUNITS = 'ppp' TZFIELD%CDIR = '' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL @@ -1237,7 +1238,7 @@ END IF ! Sea salt scalar variables IF (NSV_SLTEND>=NSV_SLTBEG) THEN TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'kg kg-1' + TZFIELD%CUNITS = 'ppp' TZFIELD%CDIR = '' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL diff --git a/src/MNH/ini_ls.f90 b/src/MNH/ini_ls.f90 index 5cf231784..4addd03ac 100644 --- a/src/MNH/ini_ls.f90 +++ b/src/MNH/ini_ls.f90 @@ -10,9 +10,9 @@ INTERFACE ! SUBROUTINE INI_LS(TPINIFILE,HGETRVM,OLSOURCE, & - PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM, & + PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PLSZWSM, & PDRYMASSS, & - PLSUMM,PLSVMM,PLSWMM,PLSTHMM,PLSRVMM,PDRYMASST,PLENG, & + PLSUMM,PLSVMM,PLSWMM,PLSTHMM,PLSRVMM,PLSZWSMM, PDRYMASST,PLENG, & OSTEADY_DMASS) ! USE MODD_IO_ll, ONLY: TFILEDATA @@ -23,11 +23,13 @@ LOGICAL, INTENT(IN) :: OLSOURCE ! Switch for the source term ! Larger Scale fields (source if OLSOURCE=T, fields at time t-dt if OLSOURCE=F) : REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLSUM,PLSVM,PLSWM ! Wind REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLSTHM,PLSRVM ! Mass +REAL, DIMENSION(:,:), INTENT(INOUT) :: PLSZWSM ! sea wave !if OLSOURCE=T : REAL, INTENT(INOUT), OPTIONAL :: PDRYMASSS ! Md source !Large Scale fields at time t-dt (if OLSOURCE=T) : REAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: PLSUMM,PLSVMM,PLSWMM ! Wind REAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: PLSTHMM,PLSRVMM ! Mass +REAL, DIMENSION(:,:), INTENT(IN), OPTIONAL :: PLSZWSMM ! Sea wave REAL, INTENT(IN), OPTIONAL :: PDRYMASST ! Md(t) REAL, INTENT(IN), OPTIONAL :: PLENG ! Interpolation length LOGICAL, INTENT(IN), OPTIONAL :: OSTEADY_DMASS ! Md evolution logical switch @@ -41,9 +43,9 @@ END MODULE MODI_INI_LS ! ! ############################################################ SUBROUTINE INI_LS(TPINIFILE,HGETRVM,OLSOURCE, & - PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM, & + PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PLSZWSM, & PDRYMASSS, & - PLSUMM,PLSVMM,PLSWMM,PLSTHMM,PLSRVMM,PDRYMASST,PLENG, & + PLSUMM,PLSVMM,PLSWMM,PLSTHMM,PLSRVMM,PLSZWSMM,PDRYMASST,PLENG, & OSTEADY_DMASS) ! ############################################################ ! @@ -80,6 +82,7 @@ END MODULE MODI_INI_LS !! ------------- !! Original 22/09/98 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !! !! !------------------------------------------------------------------------------- @@ -105,11 +108,13 @@ LOGICAL, INTENT(IN) :: OLSOURCE ! Switch for the source term ! Larger Scale fields (source if OLSOURCE=T, fields at time t-dt if OLSOURCE=F) : REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLSUM,PLSVM,PLSWM ! Wind REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLSTHM,PLSRVM ! Mass +REAL, DIMENSION(:,:), INTENT(INOUT) :: PLSZWSM ! sea wave !if OLSOURCE=T : REAL, INTENT(INOUT), OPTIONAL :: PDRYMASSS ! Md source !Large Scale fields at time t-dt (if OLSOURCE=T) : REAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: PLSUMM,PLSVMM,PLSWMM ! Wind REAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: PLSTHMM,PLSRVMM ! Mass +REAL, DIMENSION(:,:), INTENT(IN), OPTIONAL :: PLSZWSMM ! Sea wave REAL, INTENT(IN), OPTIONAL :: PDRYMASST ! Md(t) REAL, INTENT(IN), OPTIONAL :: PLENG ! Interpolation length LOGICAL, INTENT(IN), OPTIONAL :: OSTEADY_DMASS ! Md evolution logical switch @@ -138,11 +143,15 @@ CALL IO_READ_FIELD(TPINIFILE,'LSUM', PLSUM) CALL IO_READ_FIELD(TPINIFILE,'LSVM', PLSVM) CALL IO_READ_FIELD(TPINIFILE,'LSWM', PLSWM) CALL IO_READ_FIELD(TPINIFILE,'LSTHM',PLSTHM) +CALL IO_READ_FIELD(TPINIFILE,'ZWS',PLSZWSM) ! IF (HGETRVM == 'READ') THEN ! LS-vapor CALL IO_READ_FIELD(TPINIFILE,'LSRVM',PLSRVM) ENDIF ! +IF (PRESENT(PLSZWSMM)) THEN + PLSZWSM(:,:)= (PLSZWSM(:,:) - PLSZWSMM(:,:)) / PLENG +END IF ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index dd7d2119f..c879f7b8b 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -282,6 +282,7 @@ END MODULE MODI_INI_MODEL_n ! P. Wautelet 13/02/2019: initialize XALBUV even if no radiation (needed in CH_INTERP_JVALUES) ! P. Wautelet 13/02/2019: removed PPABSM and PTSTEP dummy arguments of READ_FIELD !! 02/2019 C.Lac add rain fraction as an output field +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -532,6 +533,7 @@ REAL, DIMENSION(:,:,:,:), POINTER :: DPTR_XLBXRM,DPTR_XLBYRM REAL, DIMENSION(:,:,:), POINTER :: DPTR_XZZ REAL, DIMENSION(:,:,:), POINTER :: DPTR_XLSUM,DPTR_XLSVM,DPTR_XLSWM,DPTR_XLSTHM,DPTR_XLSRVM REAL, DIMENSION(:,:,:), POINTER :: DPTR_XLSUS,DPTR_XLSVS,DPTR_XLSWS,DPTR_XLSTHS,DPTR_XLSRVS +REAL, DIMENSION(:,:), POINTER :: DPTR_XLSZWSM,DPTR_XLSZWSS ! INTEGER :: IIB,IJB,IIE,IJE,IDIMX,IDIMY,IMI ! @@ -845,6 +847,7 @@ END IF ALLOCATE(XSVT(IIU,IJU,IKU,NSV)) ; XSVT = 0. ALLOCATE(XRSVS(IIU,IJU,IKU,NSV)); XRSVS = 0. ALLOCATE(XRSVS_CLD(IIU,IJU,IKU,NSV)); XRSVS_CLD = 0.0 +ALLOCATE(XZWS(IIU,IJU)) ; XZWS = -1. ! IF (LPASPOL) THEN ALLOCATE( XATC(IIU,IJU,IKU,NSV_PP) ) @@ -987,6 +990,7 @@ IF ( NRR > 0 ) THEN ELSE ALLOCATE(XLSRVM(0,0,0)) END IF +ALLOCATE(XLSZWSM(IIU,IJU)) ; XLSZWSM = -1. ! ! lbc part ! @@ -1265,6 +1269,7 @@ IF( .NOT. LSTEADYLS ) THEN ALLOCATE(XLSWS(SIZE(XLSWM,1),SIZE(XLSWM,2),SIZE(XLSWM,3))) ALLOCATE(XLSTHS(SIZE(XLSTHM,1),SIZE(XLSTHM,2),SIZE(XLSTHM,3))) ALLOCATE(XLSRVS(SIZE(XLSRVM,1),SIZE(XLSRVM,2),SIZE(XLSRVM,3))) + ALLOCATE(XLSZWSS(SIZE(XLSZWSM,1),SIZE(XLSZWSM,2))) ! ELSE ! @@ -1273,6 +1278,7 @@ ELSE ALLOCATE(XLSWS(0,0,0)) ALLOCATE(XLSTHS(0,0,0)) ALLOCATE(XLSRVS(0,0,0)) + ALLOCATE(XLSZWSS(0,0)) ! END IF ! allocation of the LB fields for horizontal relaxation and Lateral Boundaries @@ -1752,7 +1758,7 @@ IF (CCLOUD=='LIMA') CALL INIT_AEROSOL_PROPERTIES ! CALL MPPDB_CHECK3D(XUT,"INI_MODEL_N-before read_field::XUT",PRECISION) CALL READ_FIELD(TPINIFILE,IIU,IJU,IKU, & - CGETTKET,CGETRVT,CGETRCT,CGETRRT,CGETRIT,CGETCIT, & + CGETTKET,CGETRVT,CGETRCT,CGETRRT,CGETRIT,CGETCIT,CGETZWS, & CGETRST,CGETRGT,CGETRHT,CGETSVT,CGETSRCT,CGETSIGS,CGETCLDFR, & CGETBL_DEPTH,CGETSBL_DEPTH,CGETPHC,CGETPHR,CUVW_ADV_SCHEME, & CTEMP_SCHEME,NSIZELBX_ll,NSIZELBXU_ll,NSIZELBY_ll,NSIZELBYV_ll,& @@ -1760,9 +1766,9 @@ CALL READ_FIELD(TPINIFILE,IIU,IJU,IKU, & NSIZELBXR_ll,NSIZELBYR_ll,NSIZELBXSV_ll,NSIZELBYSV_ll, & XUM,XVM,XWM,XDUM,XDVM,XDWM, & XUT,XVT,XWT,XTHT,XPABST,XTKET,XRTKEMS, & - XRT,XSVT,XCIT,XDRYMASST, & + XRT,XSVT,XZWS,XCIT,XDRYMASST, & XSIGS,XSRCT,XCLDFR,XBL_DEPTH,XSBL_DEPTH,XWTHVMF,XPHC,XPHR, & - XLSUM,XLSVM,XLSWM,XLSTHM,XLSRVM, & + XLSUM,XLSVM,XLSWM,XLSTHM,XLSRVM,XLSZWSM, & XLBXUM,XLBXVM,XLBXWM,XLBXTHM,XLBXTKEM, & XLBXRM,XLBXSVM, & XLBYUM,XLBYVM,XLBYWM,XLBYTHM,XLBYTKEM, & @@ -1865,10 +1871,10 @@ IF ((KMI==1).AND.(.NOT. LSTEADYLS)) THEN NSIZELBX_ll,NSIZELBXU_ll,NSIZELBY_ll,NSIZELBYV_ll, & NSIZELBXTKE_ll,NSIZELBYTKE_ll, & NSIZELBXR_ll,NSIZELBYR_ll,NSIZELBXSV_ll,NSIZELBYSV_ll, & - XLSUM,XLSVM,XLSWM,XLSTHM,XLSRVM,XDRYMASST, & + XLSUM,XLSVM,XLSWM,XLSTHM,XLSRVM,XLSZWSM,XDRYMASST, & XLBXUM,XLBXVM,XLBXWM,XLBXTHM,XLBXTKEM,XLBXRM,XLBXSVM, & XLBYUM,XLBYVM,XLBYWM,XLBYTHM,XLBYTKEM,XLBYRM,XLBYSVM, & - XLSUS,XLSVS,XLSWS,XLSTHS,XLSRVS,XDRYMASSS, & + XLSUS,XLSVS,XLSWS,XLSTHS,XLSRVS,XLSZWSS,XDRYMASSS, & XLBXUS,XLBXVS,XLBXWS,XLBXTHS,XLBXTKES,XLBXRS,XLBXSVS, & XLBYUS,XLBYVS,XLBYWS,XLBYTHS,XLBYTKES,XLBYRS,XLBYSVS ) CALL MPPDB_CHECK3D(XUT,"INI_MODEL_N-after ini_cpl::XUT",PRECISION) @@ -1955,11 +1961,13 @@ IF ( KMI > 1) THEN DPTR_XLSWM=>XLSWM DPTR_XLSTHM=>XLSTHM DPTR_XLSRVM=>XLSRVM + DPTR_XLSZWSM=>XLSZWSM DPTR_XLSUS=>XLSUS DPTR_XLSVS=>XLSVS DPTR_XLSWS=>XLSWS DPTR_XLSTHS=>XLSTHS DPTR_XLSRVS=>XLSRVS + DPTR_XLSZWSS=>XLSZWSS ! DPTR_NKLIN_LBXU=>NKLIN_LBXU DPTR_XCOEFLIN_LBXU=>XCOEFLIN_LBXU @@ -1984,8 +1992,8 @@ IF ( KMI > 1) THEN NDXRATIO_ALL(KMI),NDYRATIO_ALL(KMI), & DPTR_CLBCX,DPTR_CLBCY,DPTR_XZZ,DPTR_XZHAT, & LSLEVE,XLEN1,XLEN2, & - DPTR_XLSUM,DPTR_XLSVM,DPTR_XLSWM,DPTR_XLSTHM,DPTR_XLSRVM, & - DPTR_XLSUS,DPTR_XLSVS,DPTR_XLSWS,DPTR_XLSTHS,DPTR_XLSRVS, & + DPTR_XLSUM,DPTR_XLSVM,DPTR_XLSWM,DPTR_XLSTHM,DPTR_XLSRVM,DPTR_XLSZWSM, & + DPTR_XLSUS,DPTR_XLSVS,DPTR_XLSWS,DPTR_XLSTHS,DPTR_XLSRVS,DPTR_XLSZWSS, & DPTR_NKLIN_LBXU,DPTR_XCOEFLIN_LBXU,DPTR_NKLIN_LBYU,DPTR_XCOEFLIN_LBYU, & DPTR_NKLIN_LBXV,DPTR_XCOEFLIN_LBXV,DPTR_NKLIN_LBYV,DPTR_XCOEFLIN_LBYV, & DPTR_NKLIN_LBXW,DPTR_XCOEFLIN_LBXW,DPTR_NKLIN_LBYW,DPTR_XCOEFLIN_LBYW, & diff --git a/src/MNH/ini_spawn_lsn.f90 b/src/MNH/ini_spawn_lsn.f90 index 8c5809786..f33f727bb 100644 --- a/src/MNH/ini_spawn_lsn.f90 +++ b/src/MNH/ini_spawn_lsn.f90 @@ -19,8 +19,8 @@ INTERFACE KDXRATIO,KDYRATIO, & HLBCX,HLBCY,PZZ,PZHAT, & OSLEVE,PLEN1,PLEN2, & - PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM, & - PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS, & + PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PLSZWSM, & + PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS,PLSZWSS, & KKLIN_LBXU,PCOEFLIN_LBXU,KKLIN_LBYU,PCOEFLIN_LBYU, & KKLIN_LBXV,PCOEFLIN_LBXV,KKLIN_LBYV,PCOEFLIN_LBYV, & KKLIN_LBXW,PCOEFLIN_LBXW,KKLIN_LBYW,PCOEFLIN_LBYW, & @@ -48,8 +48,10 @@ CHARACTER (LEN=4), DIMENSION (2), INTENT(IN) :: HLBCY ! boundary conditions ! REAL, DIMENSION(:,:,:), INTENT( OUT) :: PLSUM,PLSVM,PLSWM ! Large Scale fields REAL, DIMENSION(:,:,:), INTENT( OUT) :: PLSTHM, PLSRVM ! at t-dt +REAL, DIMENSION(:,:), INTENT( OUT) :: PLSZWSM ! at t-dt REAL, DIMENSION(:,:,:), INTENT( OUT) :: PLSUS,PLSVS,PLSWS ! Large Scale source REAL, DIMENSION(:,:,:), INTENT( OUT) :: PLSTHS, PLSRVS ! terms +REAL, DIMENSION(:,:), INTENT( OUT) :: PLSZWSS ! source terms ! coefficients for the vertical interpolation of the LB fields INTEGER, DIMENSION(:,:,:), INTENT( OUT) :: KKLIN_LBXU,KKLIN_LBYU REAL, DIMENSION(:,:,:), INTENT( OUT) :: PCOEFLIN_LBXU,PCOEFLIN_LBYU @@ -73,8 +75,8 @@ END MODULE MODI_INI_SPAWN_LS_n KDXRATIO,KDYRATIO, & HLBCX,HLBCY,PZZ,PZHAT, & OSLEVE,PLEN1,PLEN2, & - PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM, & - PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS, & + PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PLSZWSM, & + PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS,PLSZWSS, & KKLIN_LBXU,PCOEFLIN_LBXU,KKLIN_LBYU,PCOEFLIN_LBYU, & KKLIN_LBXV,PCOEFLIN_LBXV,KKLIN_LBYV,PCOEFLIN_LBYV, & KKLIN_LBXW,PCOEFLIN_LBXW,KKLIN_LBYW,PCOEFLIN_LBYW, & @@ -140,6 +142,7 @@ END MODULE MODI_INI_SPAWN_LS_n !! coeff for U !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! J.Escobar : 18/12/2015 : Correction of bug in bound in // for NHALO <>1 +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -190,6 +193,8 @@ CHARACTER (LEN=4), DIMENSION (2), INTENT(IN) :: HLBCY ! boundary conditions ! REAL, DIMENSION(:,:,:), INTENT( OUT) :: PLSUM,PLSVM,PLSWM ! Large Scale fields REAL, DIMENSION(:,:,:), INTENT( OUT) :: PLSTHM, PLSRVM ! at t-dt +REAL, DIMENSION(:,:), INTENT( OUT) :: PLSZWSM ! LS at t-dt +REAL, DIMENSION(:,:), INTENT( OUT) :: PLSZWSS ! source terms REAL, DIMENSION(:,:,:), INTENT( OUT) :: PLSUS,PLSVS,PLSWS ! Large Scale source REAL, DIMENSION(:,:,:), INTENT( OUT) :: PLSTHS, PLSRVS ! terms ! coefficients for the vertical interpolation of the LB fields @@ -231,6 +236,7 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTLSUM, ZTLSVM, ZTLSWM, ZTLSTHM, ZTLSRVM REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTLSUS, ZTLSVS, ZTLSWS, ZTLSTHS, ZTLSRVS REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTZS,ZZS REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTZSMT,ZZSMT +REAL, DIMENSION(:,:), ALLOCATABLE :: ZTZWS,ZTZWSS ! !------------------------------------------------------------------------------- ! @@ -260,6 +266,7 @@ ALLOCATE(ZTLSUM(IDIMX,IDIMY,SIZE(PLSUM,3))) ALLOCATE(ZTLSVM(IDIMX,IDIMY,SIZE(PLSVM,3))) ALLOCATE(ZTLSWM(IDIMX,IDIMY,SIZE(PLSWM,3))) ALLOCATE(ZTLSTHM(IDIMX,IDIMY,SIZE(PLSTHM,3))) +IF(SIZE(PLSZWSM) /= 0) ALLOCATE(ZTZWS(IDIMX,IDIMY)) IF(SIZE(PLSRVM) /= 0) ALLOCATE(ZTLSRVM(IDIMX,IDIMY,SIZE(PLSRVM,3))) ! IF(GVERT_INTERP) THEN @@ -277,11 +284,14 @@ IF ( SIZE(PLSTHS,1) /= 0 ) THEN ALLOCATE(ZTLSWS(IDIMX,IDIMY,SIZE(PLSWS,3))) ALLOCATE(ZTLSTHS(IDIMX,IDIMY,SIZE(PLSTHS,3))) ENDIF +IF ( SIZE(PLSZWSS) /= 0 ) ALLOCATE(ZTZWSS(IDIMX,IDIMY)) IF ( SIZE(PLSRVS) /= 0 ) ALLOCATE(ZTLSRVS(IDIMX,IDIMY,SIZE(PLSRVS,3))) ! ! 1.3 Specify the ls "source" fields and receiver fields ! CALL SET_LSFIELD_1WAY_ll(XLSUM, ZTLSUM, KMI) +IF ( SIZE(PLSZWSM,1) /= 0 ) & + CALL SET_LSFIELD_1WAY_ll(XLSZWSM, ZTZWS, KMI) CALL SET_LSFIELD_1WAY_ll(XLSVM, ZTLSVM, KMI) CALL SET_LSFIELD_1WAY_ll(XLSWM, ZTLSWM, KMI) CALL SET_LSFIELD_1WAY_ll(XLSTHM, ZTLSTHM, KMI) @@ -295,6 +305,8 @@ IF ( SIZE(PLSTHS,1) /= 0 ) THEN CALL SET_LSFIELD_1WAY_ll(XLSTHS, ZTLSTHS, KMI) IF ( SIZE(PLSRVM,1) /= 0 ) & CALL SET_LSFIELD_1WAY_ll(XLSRVS, ZTLSRVS, KMI) + IF ( SIZE(PLSZWSM,1) /= 0 ) & + CALL SET_LSFIELD_1WAY_ll(XLSZWSS, ZTZWSS, KMI) ENDIF ! IF ( GVERT_INTERP ) THEN @@ -454,6 +466,13 @@ IF ( SIZE(PLSRVM,1) /= 0 ) THEN HLBCX,HLBCY,ZTLSRVM,PLSRVM(IIB:IIE,IJB:IJE,:)) END IF ! +IF ( SIZE(PLSZWSM,1) /= 0 ) THEN + CALL BIKHARDT (PBMX1,PBMX2,PBMX3,PBMX4,PBMY1,PBMY2,PBMY3,PBMY4, & + PBFX1,PBFX2,PBFX3,PBFX4,PBFY1,PBFY2,PBFY3,PBFY4, & + 2,2,IDIMX-1,IDIMY-1,KDXRATIO,KDYRATIO,1, & + HLBCX,HLBCY,ZTZWS,PLSZWSM(IIB:IIE,IJB:IJE)) +END IF + IF ( SIZE(PLSTHS,1) /= 0 ) THEN ! CALL BIKHARDT (PBMX1,PBMX2,PBMX3,PBMX4,PBMY1,PBMY2,PBMY3,PBMY4, & @@ -469,6 +488,13 @@ IF ( SIZE(PLSTHS,1) /= 0 ) THEN ! END IF ! + IF ( SIZE(PLSZWSM,1) /= 0 ) THEN + CALL BIKHARDT (PBMX1,PBMX2,PBMX3,PBMX4,PBMY1,PBMY2,PBMY3,PBMY4, & + PBFX1,PBFX2,PBFX3,PBFX4,PBFY1,PBFY2,PBFY3,PBFY4, & + 2,2,IDIMX-1,IDIMY-1,KDXRATIO,KDYRATIO,1, & + HLBCX,HLBCY,ZTZWS+ZTIME*ZTZWSS,PLSZWSS(IIB:IIE,IJB:IJE)) + ! + END IF END IF ! !* 3.2 Vertical linear interpolation on the mass grid @@ -550,6 +576,9 @@ IF ( SIZE(PLSTHS,1) /= 0 ) THEN PLSRVS(:,:,:) = (PLSRVS(:,:,:) - PLSRVM(:,:,:)) / ZTIME END IF ! + IF ( SIZE(PLSZWSM,1) /= 0 ) THEN + PLSZWSS(:,:) = (PLSZWSS(:,:) - PLSZWSM(:,:)) / ZTIME + END IF END IF ! !------------------------------------------------------------------------------ @@ -749,12 +778,14 @@ END IF ! DEALLOCATE(ZTLSUM,ZTLSVM,ZTLSWM,ZTLSTHM) IF(SIZE(PLSRVM) /= 0) DEALLOCATE(ZTLSRVM) +IF(SIZE(PLSZWSM) /= 0) DEALLOCATE(ZTZWS) ! IF(GVERT_INTERP) DEALLOCATE(ZTZS,ZZS) IF(GVERT_INTERP) DEALLOCATE(ZTZSMT,ZZSMT) ! IF ( SIZE(PLSTHS,1) /= 0 ) DEALLOCATE(ZTLSUS,ZTLSVS,ZTLSWS,ZTLSTHS) IF ( SIZE(PLSRVS,1) /= 0 ) DEALLOCATE(ZTLSRVS) +IF ( SIZE(PLSZWSS,1) /= 0 ) DEALLOCATE(ZTZWSS) !------------------------------------------------------------------------------ NULLIFY(TZLSFIELD_ll) CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSUM) @@ -762,6 +793,7 @@ CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSVM) CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSWM) CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSTHM) IF(SIZE(PLSRVM) /= 0) CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSRVM) +IF(SIZE(PLSZWSM) /= 0) CALL ADD2DFIELD_ll(TZLSFIELD_ll, PLSZWSM) IF ( SIZE(PLSTHS,1) /= 0 ) THEN CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSUS) CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSVS) @@ -769,6 +801,7 @@ IF ( SIZE(PLSTHS,1) /= 0 ) THEN CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSTHS) ENDIF IF ( SIZE(PLSRVS,1) /= 0 ) CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSRVS) +IF ( SIZE(PLSZWSS,1) /= 0 ) CALL ADD2DFIELD_ll(TZLSFIELD_ll, PLSZWSS) CALL UPDATE_HALO_ll(TZLSFIELD_ll,IINFO_ll) CALL CLEANLIST_ll(TZLSFIELD_ll) ! diff --git a/src/MNH/ini_spectren.f90 b/src/MNH/ini_spectren.f90 index b932716fc..89fe2916a 100644 --- a/src/MNH/ini_spectren.f90 +++ b/src/MNH/ini_spectren.f90 @@ -35,6 +35,7 @@ END MODULE MODI_INI_SPECTRE_n !! 10/2016 (C.Lac) Cleaning of the modules !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 08/02/2019: allocate to zero-size non associated pointers +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !! !--------------------------------------------------------------------------------- ! @@ -198,6 +199,7 @@ REAL, DIMENSION(:,:,:,:), POINTER :: DPTR_XLBXRM,DPTR_XLBYRM REAL, DIMENSION(:,:,:), POINTER :: DPTR_XZZ REAL, DIMENSION(:,:,:), POINTER :: DPTR_XLSUM,DPTR_XLSVM,DPTR_XLSWM,DPTR_XLSTHM,DPTR_XLSRVM REAL, DIMENSION(:,:,:), POINTER :: DPTR_XLSUS,DPTR_XLSVS,DPTR_XLSWS,DPTR_XLSTHS,DPTR_XLSRVS +REAL, DIMENSION(:,:), POINTER :: DPTR_XLSZWSS,DPTR_XLSZWSM ! !------------------------------------------------------------------------------- ! @@ -804,10 +806,10 @@ IF ((KMI==1).AND.(.NOT. LSTEADYLS)) THEN NSIZELBX_ll,NSIZELBXU_ll,NSIZELBY_ll,NSIZELBYV_ll, & NSIZELBXTKE_ll,NSIZELBYTKE_ll, & NSIZELBXR_ll,NSIZELBYR_ll,NSIZELBXSV_ll,NSIZELBYSV_ll, & - XLSUM,XLSVM,XLSWM,XLSTHM,XLSRVM,XDRYMASST, & + XLSUM,XLSVM,XLSWM,XLSTHM,XLSRVM,XLSZWSM,XDRYMASST, & XLBXUM,XLBXVM,XLBXWM,XLBXTHM,XLBXTKEM,XLBXRM,XLBXSVM, & XLBYUM,XLBYVM,XLBYWM,XLBYTHM,XLBYTKEM,XLBYRM,XLBYSVM, & - XLSUS,XLSVS,XLSWS,XLSTHS,XLSRVS,XDRYMASSS, & + XLSUS,XLSVS,XLSWS,XLSTHS,XLSRVS,XLSZWSS,XDRYMASSS, & XLBXUS,XLBXVS,XLBXWS,XLBXTHS,XLBXTKES,XLBXRS,XLBXSVS, & XLBYUS,XLBYVS,XLBYWS,XLBYTHS,XLBYTKES,XLBYRS,XLBYSVS ) END IF @@ -841,11 +843,13 @@ IF ( KMI > 1) THEN DPTR_XLSWM=>XLSWM DPTR_XLSTHM=>XLSTHM DPTR_XLSRVM=>XLSRVM + DPTR_XLSZWSM=>XLSZWSM DPTR_XLSUS=>XLSUS DPTR_XLSVS=>XLSVS DPTR_XLSWS=>XLSWS DPTR_XLSTHS=>XLSTHS DPTR_XLSRVS=>XLSRVS + DPTR_XLSZWSS=>XLSZWSS ! DPTR_NKLIN_LBXU=>NKLIN_LBXU DPTR_XCOEFLIN_LBXU=>XCOEFLIN_LBXU @@ -870,8 +874,8 @@ IF ( KMI > 1) THEN NDXRATIO_ALL(KMI),NDYRATIO_ALL(KMI), & DPTR_CLBCX,DPTR_CLBCY,DPTR_XZZ,DPTR_XZHAT, & LSLEVE,XLEN1,XLEN2, & - DPTR_XLSUM,DPTR_XLSVM,DPTR_XLSWM,DPTR_XLSTHM,DPTR_XLSRVM, & - DPTR_XLSUS,DPTR_XLSVS,DPTR_XLSWS,DPTR_XLSTHS,DPTR_XLSRVS, & + DPTR_XLSUM,DPTR_XLSVM,DPTR_XLSWM,DPTR_XLSTHM,DPTR_XLSRVM,DPTR_XLSZWSM, & + DPTR_XLSUS,DPTR_XLSVS,DPTR_XLSWS,DPTR_XLSTHS,DPTR_XLSRVS,DPTR_XLSZWSS, & DPTR_NKLIN_LBXU,DPTR_XCOEFLIN_LBXU,DPTR_NKLIN_LBYU,DPTR_XCOEFLIN_LBYU, & DPTR_NKLIN_LBXV,DPTR_XCOEFLIN_LBXV,DPTR_NKLIN_LBYV,DPTR_XCOEFLIN_LBYV, & DPTR_NKLIN_LBXW,DPTR_XCOEFLIN_LBXW,DPTR_NKLIN_LBYW,DPTR_XCOEFLIN_LBYW, & diff --git a/src/MNH/init_salt.f90 b/src/MNH/init_salt.f90 new file mode 100644 index 000000000..de95ce681 --- /dev/null +++ b/src/MNH/init_salt.f90 @@ -0,0 +1,74 @@ +!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence +!ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!ORILAM_LIC for details. +!----------------------------------------------------------------- + +!! ###################### + SUBROUTINE INIT_SALT +!! ###################### +! PURPOSE +!! ------- +!! +!! initialization of variables for the sea salt scheme +!! +!! METHOD +!! ------ +!! +!! +!! REFERENCE +!! --------- +!! none +!! +!! +!! AUTHOR +!! ------ +!! Marine Claeys (CNRM) +!! +!! MODIFICATIONS +!! ------------- +!! +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! +USE MODD_SALT +! +IMPLICIT NONE + +IF(NMODE_SLT == 5) THEN + +!JPSALTORDER = (/5, 4, 3, 2, 1 /) +!Initial dry number median radius (um) from Ova et al., 2014 +XINIRADIUS_SLT= (/0.009, 0.021, 0.045, 0.115, 0.415/) +!Initial, standard deviation from Ova et al., 2014 +XINISIG_SLT = (/ 1.37, 1.5, 1.42, 1.53, 1.85 /) +!Minimum allowed number concentration for any mode (#/m3) +XN0MIN_SLT = (/1.e1 , 1.e1, 1.e1, 1., 1.e-4 /) + + +ELSE IF ( NMODE_SLT == 3) THEN + +! Set the order of the loops sorted by importance +!This means that if a user choses 1 mode it will have characteristics of mode 2 +!2 modes will be mode 2 & 3, whereas 3 modes will modes 1, 2 and 3 +!JPSALTORDER = (/3, 2, 1, 4, 5/) +! + !Initial dry number median radius (um) from Vignati et al., 2001 + ! XINIRADIUS_SLT= (/0.2, 2., 12./) + !Initial, standard deviation from Vignati et al., 2001 + ! XINISIG_SLT = (/1.9, 2., 3./) + !Minimum allowed number concentration for any mode (#/m3) + ! XN0MIN_SLT = (/1.e1 , 1. , 1.e-4 /) + + +!Pour 3 modes Schultz +!Initial dry number median radius (um) from Schultz et al., 2004 + XINIRADIUS_SLT= 0.5*(/0.28, 2.25, 15.32, 0., 0. /) +!Initial, standard deviation from Schultz et al., 2004 + XINISIG_SLT = (/1.9, 2., 2., 0., 0./) +!Minimum allowed number concentration for any mode (#/m3) + XN0MIN_SLT = (/1.e1 , 1. , 1.e-4, 0., 0. /) +! +END IF + + +END SUBROUTINE INIT_SALT diff --git a/src/MNH/ls_coupling.f90 b/src/MNH/ls_coupling.f90 index b2d17436a..24238e398 100644 --- a/src/MNH/ls_coupling.f90 +++ b/src/MNH/ls_coupling.f90 @@ -17,10 +17,10 @@ INTERFACE KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll, & KSIZELBXTKE_ll,KSIZELBYTKE_ll, & KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll, & - PLSUM,PLSVM,PLSWM, PLSTHM,PLSRVM,PDRYMASST, & + PLSUM,PLSVM,PLSWM, PLSTHM,PLSRVM,PLSZWSM,PDRYMASST, & PLBXUM,PLBXVM,PLBXWM,PLBXTHM,PLBXTKEM,PLBXRM,PLBXSVM, & PLBYUM,PLBYVM,PLBYWM,PLBYTHM,PLBYTKEM,PLBYRM,PLBYSVM, & - PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS,PDRYMASSS, & + PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS,PLSZWSS,PDRYMASSS, & PLBXUS,PLBXVS,PLBXWS,PLBXTHS,PLBXTKES,PLBXRS,PLBXSVS, & PLBYUS,PLBYVS,PLBYWS,PLBYTHS,PLBYTKES,PLBYRS,PLBYSVS ) ! @@ -52,6 +52,7 @@ INTEGER, INTENT(IN) :: KSIZELBYR_ll,KSIZELBYSV_ll ! for Rx and SV ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PLSUM,PLSVM,PLSWM ! Large Scale REAL, DIMENSION(:,:,:), INTENT(IN) :: PLSTHM, PLSRVM ! fields at t-dt +REAL, DIMENSION(:,:), INTENT(IN) :: PLSZWSM ! fields at t-dt REAL, INTENT(IN) :: PDRYMASST ! Mass of dry air Md ! larger scale fields for Lateral Boundary condition REAL, DIMENSION(:,:,:), INTENT(IN) :: PLBXUM,PLBXVM,PLBXWM ! Wind @@ -65,6 +66,7 @@ REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PLBYRM ,PLBYSVM ! in x and y-di ! REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSUS,PLSVS,PLSWS ! Large Scale REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSTHS,PLSRVS ! source terms +REAL, DIMENSION(:,:), INTENT(OUT) :: PLSZWSS ! source terms REAL, INTENT(OUT) :: PDRYMASSS ! Md source ! larger scale fields sources for Lateral Boundary condition REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLBXUS,PLBXVS,PLBXWS ! Wind @@ -95,10 +97,10 @@ END MODULE MODI_LS_COUPLING KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll, & KSIZELBXTKE_ll,KSIZELBYTKE_ll, & KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll, & - PLSUM,PLSVM,PLSWM, PLSTHM,PLSRVM,PDRYMASST, & + PLSUM,PLSVM,PLSWM, PLSTHM,PLSRVM,PLSZWSM,PDRYMASST, & PLBXUM,PLBXVM,PLBXWM,PLBXTHM,PLBXTKEM,PLBXRM,PLBXSVM, & PLBYUM,PLBYVM,PLBYWM,PLBYTHM,PLBYTKEM,PLBYRM,PLBYSVM, & - PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS,PDRYMASSS, & + PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS,PLSZWSS,PDRYMASSS, & PLBXUS,PLBXVS,PLBXWS,PLBXTHS,PLBXTKES,PLBXRS,PLBXSVS, & PLBYUS,PLBYVS,PLBYWS,PLBYTHS,PLBYTKES,PLBYRS,PLBYSVS ) ! ###################################################################### @@ -171,6 +173,7 @@ END MODULE MODI_LS_COUPLING !! 05/2006 Remove KEPS !! 2/2014 (escobar) add paspol for Forefire ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !! !------------------------------------------------------------------------------ ! @@ -228,6 +231,7 @@ INTEGER, INTENT(IN) :: KSIZELBYR_ll,KSIZELBYSV_ll ! for Rx and SV ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PLSUM,PLSVM,PLSWM ! Large Scale REAL, DIMENSION(:,:,:), INTENT(IN) :: PLSTHM, PLSRVM ! fields at t-dt +REAL, DIMENSION(:,:), INTENT(IN) :: PLSZWSM REAL, INTENT(IN) :: PDRYMASST ! Mass of dry air Md ! larger scale fields for Lateral Boundary condition REAL, DIMENSION(:,:,:), INTENT(IN) :: PLBXUM,PLBXVM,PLBXWM ! Wind @@ -251,6 +255,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLBXTKES ! TKE REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLBYTKES REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PLBXRS ,PLBXSVS ! Moisture and SV REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PLBYRS ,PLBYSVS ! in x and y-dir. +REAL, DIMENSION(:,:), INTENT(OUT) :: PLSZWSS ! source terms ! ! !* 0.2 declarations of local variables @@ -298,7 +303,7 @@ GLSOURCE=.TRUE. ZLENG = (NCPL_TIMES(NCPL_CUR,1) - NCPL_TIMES(NCPL_CUR-1,1)) * PTSTEP ! CALL INI_LS(TCPLFILE(NCPL_CUR)%TZFILE,HGETRVM,GLSOURCE,PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS, & - PDRYMASSS,PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PDRYMASST,ZLENG,OSTEADY_DMASS) + PLSZWSS, PDRYMASSS,PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PLSZWSM,PDRYMASST,ZLENG,OSTEADY_DMASS) ! ! diff --git a/src/MNH/modd_csts_salt.f90 b/src/MNH/modd_csts_salt.f90 index 4c985d21a..9db26edac 100644 --- a/src/MNH/modd_csts_salt.f90 +++ b/src/MNH/modd_csts_salt.f90 @@ -33,6 +33,7 @@ !! !! MODIFICATIONS !! ------------- +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !! !!-------------------------------------------------------------------- !! DECLARATIONS @@ -42,7 +43,9 @@ IMPLICIT NONE ! !densité salt a introduire -REAL, PARAMETER :: XDENSITY_SALT = 2.1e3 ![kg/m3] density of dust +! ++ PIERRE / MARINE SSA DUST - MODIF ++ +REAL, PARAMETER :: XDENSITY_SALT = 2.2e3 ![kg/m3] density of dust +! -- PIERRE / MARINE SSA DUST - MODIF -- REAL, PARAMETER :: XMOLARWEIGHT_SALT = 58.e-3 ![kg/mol] molar weight dust REAL, PARAMETER :: XM3TOUM3_SALT = 1.d18 ![um3/m3] conversion factor REAL, PARAMETER :: XUM3TOM3_SALT = 1.d-18 ![m3/um3] conversion factor diff --git a/src/MNH/modd_diag_in_run.f90 b/src/MNH/modd_diag_in_run.f90 index 4c52ea117..b7bba80d0 100644 --- a/src/MNH/modd_diag_in_run.f90 +++ b/src/MNH/modd_diag_in_run.f90 @@ -11,6 +11,7 @@ MODULE MODD_DIAG_IN_RUN ! Modifications !! 02/2018 Q.Libois ECRAD +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes ! !* stores instantaneous diagnostic arrays for the current time-step ! @@ -37,4 +38,6 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: XCURRENT_MER10M! meridian wind at 10m REAL, DIMENSION(:,:), ALLOCATABLE :: XCURRENT_DSTAOD! dust aerosol optical depth REAL, DIMENSION(:,:), ALLOCATABLE :: XCURRENT_SFCO2 ! CO2 Surface flux REAL, DIMENSION(:,:,:), ALLOCATABLE :: XCURRENT_TKE_DISS ! Tke dissipation rate +REAL, DIMENSION(:,:), ALLOCATABLE :: XCURRENT_SLTAOD ! Salt aerosol optical depth +REAL, DIMENSION(:,:), ALLOCATABLE :: XCURRENT_ZWS ! Significant height of waves END MODULE MODD_DIAG_IN_RUN diff --git a/src/MNH/modd_fieldn.f90 b/src/MNH/modd_fieldn.f90 index c1a0be8f9..7a91f15cc 100644 --- a/src/MNH/modd_fieldn.f90 +++ b/src/MNH/modd_fieldn.f90 @@ -50,6 +50,7 @@ !! 04/16 (M.Mazoyer) New supersaturation fields !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! 02/2019 C.Lac add rain fraction as an output field +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !! !------------------------------------------------------------------------------- ! @@ -81,6 +82,8 @@ TYPE FIELD_t REAL, DIMENSION(:,:,:), POINTER :: XRTKES=>NULL() ! Source of kinetic energy ! (rho e) ! REAL, DIMENSION(:,:,:), POINTER :: XPABST=>NULL() ! absolute pressure at + REAL, DIMENSION(:,:), POINTER :: XZWS=>NULL() ! significant sea wave + REAL, DIMENSION(:,:), POINTER :: XZWSS=>NULL() ! significant sea wave ! ! time t ! REAL, DIMENSION(:,:,:,:), POINTER :: XRT=>NULL() ! Moist variables (rho Rn) ! ! at time t @@ -114,6 +117,8 @@ REAL, DIMENSION(:,:,:), POINTER :: XRUS=>NULL(),XRVS=>NULL(),XRWS=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XRUS_PRES=>NULL(),XRVS_PRES=>NULL(),XRWS_PRES=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XTHT=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XRTHS=>NULL() +REAL, DIMENSION(:,:), POINTER :: XZWS=>NULL() +REAL, DIMENSION(:,:), POINTER :: XZWSS=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XRTHS_CLD=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XSUPSAT=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XNACT=>NULL() @@ -159,6 +164,8 @@ FIELD_MODEL(KFROM)%XRWS=>XRWS !FIELD_MODEL(KFROM)%XRVS_PRES=>XRVS_PRES !Done in FIELDLIST_GOTO_MODEL !FIELD_MODEL(KFROM)%XRWS_PRES=>XRWS_PRES !Done in FIELDLIST_GOTO_MODEL !FIELD_MODEL(KFROM)%XTHT=>XTHT !Done in FIELDLIST_GOTO_MODEL +FIELD_MODEL(KFROM)%XZWS=>XZWS +FIELD_MODEL(KFROM)%XZWSS=>XZWSS FIELD_MODEL(KFROM)%XRTHS=>XRTHS !FIELD_MODEL(KFROM)%XRTHS_CLD=>XRTHS_CLD !Done in FIELDLIST_GOTO_MODEL !FIELD_MODEL(KFROM)%XSUPSAT=>XSUPSAT !Done in FIELDLIST_GOTO_MODEL @@ -193,6 +200,8 @@ XRWS=>FIELD_MODEL(KTO)%XRWS !XRUS_PRES=>FIELD_MODEL(KTO)%XRUS_PRES !Done in FIELDLIST_GOTO_MODEL !XRVS_PRES=>FIELD_MODEL(KTO)%XRVS_PRES !Done in FIELDLIST_GOTO_MODEL !XRWS_PRES=>FIELD_MODEL(KTO)%XRWS_PRES !Done in FIELDLIST_GOTO_MODEL +XZWS=>FIELD_MODEL(KTO)%XZWS +XZWSS=>FIELD_MODEL(KTO)%XZWSS !XTHT=>FIELD_MODEL(KTO)%XTHT !Done in FIELDLIST_GOTO_MODEL XRTHS=>FIELD_MODEL(KTO)%XRTHS !XRTHS_CLD=>FIELD_MODEL(KTO)%XRTHS_CLD !Done in FIELDLIST_GOTO_MODEL diff --git a/src/MNH/modd_getn.f90 b/src/MNH/modd_getn.f90 index 7a583779d..bae3402d5 100644 --- a/src/MNH/modd_getn.f90 +++ b/src/MNH/modd_getn.f90 @@ -52,6 +52,7 @@ !! V. Masson 01/2004 surface externalization (rm CGETSURF) !! 05/2006 Remove EPS and LGETALL !! M. Leriche 04/2010 add get indicators for pH in cloud and rain +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -102,6 +103,7 @@ TYPE GET_t CHARACTER (LEN=4) :: CGETBL_DEPTH ! Get indicator for the BL depth CHARACTER (LEN=4) :: CGETSBL_DEPTH ! Get indicator for the SBL depth CHARACTER (LEN=4) :: CGETPHC,CGETPHR ! Get indicator for the pH values + CHARACTER (LEN=4) :: CGETZWS ! in cloud water and rainwater ! END TYPE GET_t @@ -133,6 +135,7 @@ CHARACTER (LEN=4), POINTER :: CGETBL_DEPTH=>NULL() CHARACTER (LEN=4), POINTER :: CGETSBL_DEPTH=>NULL() CHARACTER (LEN=4), POINTER :: CGETPHC=>NULL() CHARACTER (LEN=4), POINTER :: CGETPHR=>NULL() +CHARACTER (LEN=4), POINTER :: CGETZWS=>NULL() CONTAINS @@ -179,6 +182,7 @@ CGETSRC=>GET_MODEL(KTO)%CGETSRC CGETCLDFR=>GET_MODEL(KTO)%CGETCLDFR CGETSRCT=>GET_MODEL(KTO)%CGETSRCT CGETCIT=>GET_MODEL(KTO)%CGETCIT +CGETZWS=>GET_MODEL(KTO)%CGETZWS CGETCONV=>GET_MODEL(KTO)%CGETCONV CGETRAD=>GET_MODEL(KTO)%CGETRAD CGETCLOUD=>GET_MODEL(KTO)%CGETCLOUD diff --git a/src/MNH/modd_lsfieldn.f90 b/src/MNH/modd_lsfieldn.f90 index 208f1d4d2..6274b8dd6 100644 --- a/src/MNH/modd_lsfieldn.f90 +++ b/src/MNH/modd_lsfieldn.f90 @@ -36,6 +36,7 @@ !! 2D arrays to store values at lateral boundaries !! 20/05/06 Remove EPS !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! ! @@ -55,12 +56,15 @@ TYPE LSFIELD_t ! ! time t-dt for larger scales ! REAL, DIMENSION(:,:,:), POINTER :: XLSRVM=>NULL() ! Rv (mixing ratio for vapor) ! ! at time t-dt for larger scales + REAL, DIMENSION(:,:), POINTER :: XLSZWSM=>NULL() ! height of sea waves REAL, DIMENSION(:,:,:), POINTER :: XLSUS=>NULL(),XLSVS=>NULL(),XLSWS=>NULL() ! Tendency of ! U,V,W for larger scales REAL, DIMENSION(:,:,:), POINTER :: XLSTHS=>NULL() ! Tendency of ! theta for larger scales REAL, DIMENSION(:,:,:), POINTER :: XLSRVS=>NULL() ! Tendency of ! ! RV for larger scales +REAL, DIMENSION(:,:), POINTER :: XLSZWSS=>NULL() ! Tendency of +! ! sea wave for larger scales ! previously present for LS for V * Prhodj ! ! Large scale variables for horizontal lbc @@ -104,8 +108,10 @@ TYPE(LSFIELD_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: LSFIELD_MODEL REAL, DIMENSION(:,:,:), POINTER :: XLSUM=>NULL(),XLSVM=>NULL(),XLSWM=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XLSTHM=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XLSRVM=>NULL() +REAL, DIMENSION(:,:), POINTER :: XLSZWSM=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XLSUS=>NULL(),XLSVS=>NULL(),XLSWS=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XLSTHS=>NULL() +REAL, DIMENSION(:,:), POINTER :: XLSZWSS=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XLSRVS=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XLBXUM=>NULL(),XLBXVM=>NULL(),XLBXWM=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XLBXTHM=>NULL() @@ -143,11 +149,13 @@ INTEGER, INTENT(IN) :: KFROM, KTO !LSFIELD_MODEL(KFROM)%XLSWM=>XLSWM !Done in FIELDLIST_GOTO_MODEL !LSFIELD_MODEL(KFROM)%XLSTHM=>XLSTHM !Done in FIELDLIST_GOTO_MODEL !LSFIELD_MODEL(KFROM)%XLSRVM=>XLSRVM !Done in FIELDLIST_GOTO_MODEL +LSFIELD_MODEL(KFROM)%XLSZWSM=>XLSZWSM LSFIELD_MODEL(KFROM)%XLSUS=>XLSUS LSFIELD_MODEL(KFROM)%XLSVS=>XLSVS LSFIELD_MODEL(KFROM)%XLSWS=>XLSWS LSFIELD_MODEL(KFROM)%XLSTHS=>XLSTHS LSFIELD_MODEL(KFROM)%XLSRVS=>XLSRVS +LSFIELD_MODEL(KFROM)%XLSZWSS=>XLSZWSS !LSFIELD_MODEL(KFROM)%XLBXUM=>XLBXUM !Done in FIELDLIST_GOTO_MODEL !LSFIELD_MODEL(KFROM)%XLBXVM=>XLBXVM !Done in FIELDLIST_GOTO_MODEL !LSFIELD_MODEL(KFROM)%XLBXWM=>XLBXWM !Done in FIELDLIST_GOTO_MODEL @@ -199,11 +207,13 @@ LSFIELD_MODEL(KFROM)%NKLIN_LBYM=>NKLIN_LBYM !XLSWM=>LSFIELD_MODEL(KTO)%XLSWM !Done in FIELDLIST_GOTO_MODEL !XLSTHM=>LSFIELD_MODEL(KTO)%XLSTHM !Done in FIELDLIST_GOTO_MODEL !XLSRVM=>LSFIELD_MODEL(KTO)%XLSRVM !Done in FIELDLIST_GOTO_MODEL +XLSZWSM=>LSFIELD_MODEL(KTO)%XLSZWSM XLSUS=>LSFIELD_MODEL(KTO)%XLSUS XLSVS=>LSFIELD_MODEL(KTO)%XLSVS XLSWS=>LSFIELD_MODEL(KTO)%XLSWS XLSTHS=>LSFIELD_MODEL(KTO)%XLSTHS XLSRVS=>LSFIELD_MODEL(KTO)%XLSRVS +XLSZWSS=>LSFIELD_MODEL(KTO)%XLSZWSS !XLBXUM=>LSFIELD_MODEL(KTO)%XLBXUM !Done in FIELDLIST_GOTO_MODEL !XLBXVM=>LSFIELD_MODEL(KTO)%XLBXVM !Done in FIELDLIST_GOTO_MODEL !XLBXWM=>LSFIELD_MODEL(KTO)%XLBXWM !Done in FIELDLIST_GOTO_MODEL diff --git a/src/MNH/modd_salt.f90 b/src/MNH/modd_salt.f90 index 01f908fe1..907b95672 100644 --- a/src/MNH/modd_salt.f90 +++ b/src/MNH/modd_salt.f90 @@ -35,6 +35,7 @@ !! ------------- !! !! 2014 P.Tulet modif XINIRADIUS_SLT and XN0MIN_SLT +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !! USE MODD_PARAMETERS, ONLY: JPMODELMAX !!-------------------------------------------------------------------- @@ -42,51 +43,64 @@ USE MODD_PARAMETERS, ONLY: JPMODELMAX !! ------------ IMPLICIT NONE ! - +! ++ PIERRE / MARINE SSA DUST - MODIF ++ +LOGICAL :: LSLTMACC = .FALSE. ! switch to active pronostic sea salts from MACC LOGICAL :: LSALT = .FALSE. ! switch to active pronostic sea salts +LOGICAL :: LONLY = .FALSE. +LOGICAL :: LREAD_ONLY_HS_MACC = .FALSE. LOGICAL :: LSLTINIT = .FALSE. ! switch to initialize pronostic sea salts LOGICAL :: LSLTPRES = .FALSE. ! switch to know if pronostic salts exist LOGICAL,DIMENSION(JPMODELMAX) :: LDEPOS_SLT = .FALSE. ! switch to SLT wet depositon -INTEGER :: NMODE_SLT= 3 ! number of sea salt modes (max 3; default = 3) + +!INTEGER :: NMODE_SLT= 3 ! number of sea salt modes (max 3; default = 3) +INTEGER :: NMODE_SLT= 5 ! number of sea salt modes (max 5; default = 3) ! CHARACTER(LEN=9),DIMENSION(:),ALLOCATABLE :: CDESLTNAMES -CHARACTER(LEN=9),DIMENSION(6), PARAMETER :: YPDESLT_INI = & - (/'DESLTM31C','DESLTM32C','DESLTM33C' & - ,'DESLTM31R','DESLTM32R','DESLTM33R' /) -CHARACTER(LEN=6),DIMENSION(:),ALLOCATABLE :: CSALTNAMES -CHARACTER(LEN=6),DIMENSION(9), PARAMETER :: YPSALT_INI = & - (/'SLTM01','SLTM31','SLTM61' & - ,'SLTM02','SLTM32','SLTM62' & - ,'SLTM03','SLTM33','SLTM63' /) -! Set the order of the loops sorted by importance -!This means that if a user choses 1 mode it will have characteristics of mode 2 -!2 modes will be mode 2 & 3, whereas 3 modes will modes 1, 2 and 3 -INTEGER, DIMENSION(3),PARAMETER :: JPSALTORDER = (/3, 2, 1/) -! -REAL, ALLOCATABLE :: XSLTMSS(:,:,:) ! [kg/m3] total mass concentration of sea salt +CHARACTER(LEN=6),DIMENSION(:), ALLOCATABLE :: CSALTNAMES +CHARACTER(LEN=9),DIMENSION(10), PARAMETER :: YPDESLT_INI = & + (/'DESLTM31C','DESLTM32C','DESLTM33C','DESLTM34C', 'DESLTM35C', & + 'DESLTM31R','DESLTM32R','DESLTM33R', 'DESLTM34R','DESLTM35R' /) + +CHARACTER(LEN=6),DIMENSION(15), PARAMETER :: YPSALT_INI = & + (/'SLTM01','SLTM31','SLTM61',& + 'SLTM02','SLTM32','SLTM62',& + 'SLTM03','SLTM33','SLTM63',& + 'SLTM04','SLTM34','SLTM64',& + 'SLTM05','SLTM35','SLTM65' /) + +INTEGER, DIMENSION(5),PARAMETER :: JPSALTORDER = (/3, 2, 1, 5, 4/) + +!Test Thomas (definir rayons et sigma ici si on veut desactiver initialisation MACC) + +!REAL, DIMENSION(5) :: XINIRADIUS_SLT,XINISIG_SLT,XN0MIN_SLT + +!Initial dry number median radius (um) from Ova et al., 2014 +REAL,DIMENSION(5) :: XINIRADIUS_SLT= (/0.009, 0.021, 0.045, 0.115, 0.415/) +!Initial, standard deviation from Ova et al., 2014 +REAL,DIMENSION(5) :: XINISIG_SLT = (/ 1.37, 1.5, 1.42, 1.53, 1.85 /) +!Minimum allowed number concentration for any mode (#/m3) +REAL,DIMENSION(5) :: XN0MIN_SLT = (/1.e1 , 1.e1, 1.e1, 1., 1.e-4 /) + +!Test Thomas + +REAL, DIMENSION(:,:,:), ALLOCATABLE :: XSLTMSS ! [kg/m3] total mass concentration of sea salt ! ! aerosol lognormal parameterization -CHARACTER(LEN=4) :: CRGUNITS = 'MASS' ! type of log-normal geometric mean radius +CHARACTER(LEN=4) :: CRGUNITS = 'NUMB' ! type of log-normal geometric mean radius ! !given in namelist (mass on number) ! LOGICAL :: LRGFIX_SLT = .FALSE. ! switch to fix RG (sedimentation) LOGICAL :: LVARSIG_SLT = .FALSE. ! switch to active pronostic dispersion for all modes LOGICAL :: LSEDIMSALT = .FALSE. ! switch to active aerosol sedimentation REAL :: XSIGMIN_SLT = 1.20 ! minimum dispersion value for sea salt mode +!REAL :: XSIGMIN_SLT = 0. ! minimum dispersion value for sea salt mode REAL :: XSIGMAX_SLT = 3.60 ! maximum dispersion value for sea salt mode REAL :: XCOEFRADMAX_SLT = 10. ! maximum increasement for Rg mode sea salt -REAL :: XCOEFRADMIN_SLT = 0.1 ! maximum decreasement for Rg mode sea salt -! +REAL :: XCOEFRADMIN_SLT = 0.1 ! minimum decreasement for Rg mode sea salt +!REAL :: XCOEFRADMIN_SLT = 0. ! minimum decreasement for Rg mode sea salt -!Initial dry number median radius (um) from Vignati et al., 2001 -!REAL, DIMENSION(3) :: XINIRADIUS_SLT= (/0.2, 2., 12./) -!Initial, standard deviation from Vignati et al., 2001 -!REAL, DIMENSION(3) :: XINISIG_SLT = (/1.9, 2., 3./) -!Initial dry number median radius (um) from Schultz et al., 2004 -REAL, DIMENSION(3) :: XINIRADIUS_SLT= 0.5*(/0.28, 2.25, 15.32/) -!Initial, standard deviation from Schultz et al., 2004 -REAL, DIMENSION(3) :: XINISIG_SLT = (/1.9, 2., 2./) -!Minimum allowed number concentration for any mode (#/m3) -REAL, DIMENSION(3) :: XN0MIN_SLT = (/1.e1 , 1. , 1.e-4 /) + +! +! -- PIERRE / MARINE SSA DUST - MODIF -- ! END MODULE MODD_SALT diff --git a/src/MNH/modd_spawn.f90 b/src/MNH/modd_spawn.f90 index 41f83c8a1..8d432e588 100644 --- a/src/MNH/modd_spawn.f90 +++ b/src/MNH/modd_spawn.f90 @@ -33,6 +33,7 @@ !! Original 12/07/99 !! Modification 08/04/04 (G.Jaubert) Spawning 1 option !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -79,12 +80,14 @@ REAL,DIMENSION(:,:,:,:),SAVE,POINTER :: XRT1 => NULL() REAL,DIMENSION(:,:,:),SAVE,POINTER :: XUT1 => NULL() REAL,DIMENSION(:,:,:),SAVE,POINTER :: XVT1 => NULL() REAL,DIMENSION(:,:,:),SAVE,POINTER :: XWT1 => NULL() +REAL,DIMENSION(:,:), SAVE,POINTER :: XZWS1 => NULL() REAL,DIMENSION(:,:,:),SAVE,POINTER :: XSRCT1 => NULL() REAL,DIMENSION(:,:,:),SAVE,POINTER :: XSIGS1 => NULL() TYPE(DATE_TIME), SAVE,POINTER :: TDTCUR1 => NULL() REAL,DIMENSION(:,:,:),SAVE,POINTER :: XLSUM1 => NULL() REAL,DIMENSION(:,:,:),SAVE,POINTER :: XLSVM1 => NULL() REAL,DIMENSION(:,:,:),SAVE,POINTER :: XLSWM1 => NULL() +REAL,DIMENSION(:,:) ,SAVE,POINTER :: XLSZWSM1=> NULL() REAL,DIMENSION(:,:,:),SAVE,POINTER :: XLSTHM1 => NULL() REAL,DIMENSION(:,:,:),SAVE,POINTER :: XLSRVM1 => NULL() ! diff --git a/src/MNH/mode_salt_psd.f90 b/src/MNH/mode_salt_psd.f90 index e361c1dfa..dc5a8611e 100644 --- a/src/MNH/mode_salt_psd.f90 +++ b/src/MNH/mode_salt_psd.f90 @@ -23,9 +23,14 @@ !! !! MODIFICATIONS !! ------------- +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !! !------------------------------------------------------------------------------- ! +! ++ JORIS DEBUG ++ +USE MODD_CONF, ONLY : NVERB +! -- JORIS DEBUG -- +! USE MODD_CSTS_SALT !Constants which are important for sea salt calculations USE MODD_SALT !Dust module which contains even more constants USE MODD_CST, ONLY : & @@ -137,6 +142,11 @@ ALLOCATE (ZINIRADIUS(NMODE_SLT)) ZSV(:,:,:,:) = MAX(PSVT(:,:,:,:), XMNH_TINY) +! ++ JORIS DBG ++ +ZRG(:,:,:)= XMNH_TINY +ZM(:,:,:,:)= XMNH_TINY +! -- JORIS DBG -- + DO JN=1,NMODE_SLT IMODEIDX = JPSALTORDER(JN) !Calculations here are for one mode only @@ -235,6 +245,10 @@ DO JN=1,NMODE_SLT * XM3TOUM3_SALT & !==>um3_{aer}/m3_{air} / (XPI * 4./3.) !==>um3_{aer}/m3_{air} (volume ==> 3rd moment) ZM(:,:,:,NM3(JN)) = MAX(ZM(:,:,:,NM3(JN)), ZMMIN(NM3(JN))) +!Modif salt/dust 5.1. beg + PSVT(:,:,:,JN) = ZM(:,:,:,NM3(JN)) * XMD * XPI * 4./3. * ZRHOI / & + (ZMI*PRHODREF(:,:,:)*XM3TOUM3_SALT) +!Modif salt/dust 5.1. end ZM(:,:,:,NM0(JN))= ZM(:,:,:,NM3(JN))/& ((ZINIRADIUS(JN)**3)*EXP(4.5 * LOG(XINISIG_SLT(JPSALTORDER(JN)))**2)) @@ -280,6 +294,21 @@ DO JN=1,NMODE_SLT END IF ! !Get number median radius (eqn. 7 in Orilam manuscript) + ! ++ JORIS DBG ++ + IF (NVERB ==15) THEN + WRITE(*,*) 'SHAPE(ZM) =', SHAPE(ZM) + WRITE(*,*) 'MINVAL(ZM), MAXVAL(ZM) =', MINVAL(ZM), MAXVAL(ZM) + WRITE(*,*) 'MINLOC(ZM), MAXLOC(ZM) =', MINLOC(ZM), MAXLOC(ZM) + WRITE(*,*) 'SHAPE(ZRG) =', SHAPE(ZRG) + WRITE(*,*) 'MINVAL(ZRG), MAXVAL(ZRG) =', MINVAL(ZRG), MAXVAL(ZRG) + WRITE(*,*) 'MINLOC(ZRG), MAXLOC(ZRG) =', MINLOC(ZRG), MAXLOC(ZRG) + WRITE(*,*) 'XSIXTH_SALT =', XSIXTH_SALT + WRITE(*,*) 'JN =', JN + WRITE(*,*) 'NM0 =', NM0 + WRITE(*,*) 'NM3 =', NM3 + WRITE(*,*) 'NM6 =', NM6 + ENDIF + ! -- JORIS DBG -- ZRG(:,:,:)= & ( & ZM(:,:,:,NM3(JN))*ZM(:,:,:,NM3(JN))*ZM(:,:,:,NM3(JN))*ZM(:,:,:,NM3(JN)) & @@ -414,7 +443,9 @@ END SUBROUTINE PPP2SALT ! ! PSVT need to be positive - PSVT(:,:,:,:) = MAX(PSVT(:,:,:,:), XMNH_TINY) +!Modif salt/dust 5.1. beg +! PSVT(:,:,:,:) = MAX(PSVT(:,:,:,:), XMNH_TINY) +!Modif salt/dust 5.1. end DO JN=1,NMODE_SLT IMODEIDX = JPSALTORDER(JN) @@ -629,8 +660,10 @@ ALLOCATE (ZSIGMA(SIZE(PSVT,1))) ALLOCATE (ZRG(SIZE(PSVT,1))) ALLOCATE (ZSV(SIZE(PSVT,1), SIZE(PSVT,2))) ALLOCATE (ZINIRADIUS(NMODE_SLT)) - + +!Modif salt/dust 5.1. beg ZSV(:,:) = MAX(PSVT(:,:), XMNH_TINY) +!Modif salt/dust 5.1. end DO JN=1,NMODE_SLT IMODEIDX = JPSALTORDER(JN) diff --git a/src/MNH/mode_salt_psd_wet.f90 b/src/MNH/mode_salt_psd_wet.f90 new file mode 100644 index 000000000..cb5af52f8 --- /dev/null +++ b/src/MNH/mode_salt_psd_wet.f90 @@ -0,0 +1,926 @@ +!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence +!ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!ORILAM_LIC for details. +!----------------------------------------------------------------- +!--------------- special set of characters for RCS information +!----------------------------------------------------------------- +! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/Attic/mode_salt_psd.f90,v $ $Revision: 1.1.2.1.2.1.2.1.2.1 $ $Date: 2013/07/12 13:55:08 $ +!----------------------------------------------------------------- +!! ######################## + MODULE MODE_SALT_PSD_WET +!! ######################## +!! +!! PURPOSE +!! ------- +!! MODULE SALT PSD (Particle Size Distribution) +!! Purpose: Contains subroutines to convert from transported variables (ppp) +!! to understandable aerosol variables, e.g. #/m3, kg/m3, sigma, R_{n} +!! +!! AUTHOR +!! ------ +!! Alf Grini (CNRM/GMEI) +!! +!! MODIFICATIONS +!! ------------- +!! M. Claeys - (CNRM-GMEI) 2015 +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +!------------------------------------------------------------------------------- +! +USE MODD_CSTS_SALT !Constants which are important for sea salt calculations +USE MODD_SALT !Dust module which contains even more constants +USE MODD_CST, ONLY : & + XPI & !Definition of pi + ,XBOLTZ & ! Boltzman constant + ,XAVOGADRO & ![molec/mol] avogadros number + ,XG & ! Gravity constant + ,XP00 & ! Reference pressure + ,XMD & ![kg/mol] molar weight of air + ,XRD & ! Gaz constant for dry air + ,XCPD & ! Cpd (dry air) + ,XRHOLW & ! Densité de l'eau + ,XMV & ! Molar weight of water + ,XALPI & + ,XBETAI & + ,XGAMI & + ,XTT +USE MODD_CST, ONLY : XMNH_TINY +USE MODE_THERMO ! Pour calcul de la pression de vapeur saturante +USE MODD_PARAM_n, ONLY : CCLOUD + + +! +IMPLICIT NONE +! +CONTAINS +! +!! ############################################################ + SUBROUTINE PPP2SALT_WET( & + PSVT & !I [ppp] input scalar variables (moment of distribution) + , PRHODREF & !I [kg/m3] density of air + , PPABST & !I Pression + , PTHT & !I Potential temperature + , PRT & !I Large scale vapor mixing ratio + , PSIG3D & !O [-] standard deviation of aerosol distribution + , PRG3D & !O [um] number median wet radius of aerosol distribution + , PN3D & !O [#/m3] number concentration of aerosols + , PMASS3D & !O [kg/m3]wet mass concentration of aerosol + , PM3D & !O aerosols moments 0, 3 and 6 + , PDENSITY_WET & !O [g/m2] density of wet aerosol (water + salt) + ) +!! ############################################################ +! +!! +!! PURPOSE +!! ------- +!! Translate the three moments M0, M3 and M6 given in ppp into +!! Values which can be understood more easily (R, sigma, N, M) +!! +!! Calcul the wet radius of the particles, using RH and Gerber (1985) relation +!! The mass of the aerosols is calculated using the new radius and the +!density of water and salt +!! +!! CALLING STRUCTURE NOTE: OPTIONAL VARIABLES +!! ------- +!! CALL PPP2AEROS(PSVT, PRHODREF, PSIG3D=SIGVAR, & +!! PRG3D=RVAR, PN3D=NVAR, PM3D=MASSVAR) +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Pierre TULET (LA) +!! +!! MODIFICATIONS +!! ------------- +!! 2005 Alf Grini (CNRM) +!! 2006 Jean-Pierre Chaboureau (LA) +!! 2015 Marine Claeys (CNRM) +!! EXTERNAL +!! -------- +!! None +!! + IMPLICIT NONE +!! +!------------------------------------------------------------------------------- +! +!* 0. DECLARATIONS +! ------------ +! +!* 0.1 declarations of arguments +! +REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVT !I [ppp] first moment +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF !I [kg/m3] density of air +REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST !I Pression +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT !I Potential temperature +REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT !I Large scale vapor mixing ratio + +REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT) :: PSIG3D !O [-] standard deviation +REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT) :: PRG3D !O [um] number median radius +REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT) :: PN3D !O [#/m3] number concentration +REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT) :: PMASS3D !O [kg_{aer}/m3] wet mass concentration +REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT) :: PM3D !O aerosols moments +REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT) :: PDENSITY_WET !O Density of wet aerosol (water + salt) +! +! +!* 0.2 declarations local variables +! +REAL :: ZRHOI ! [kg/m3] density of aerosol +REAL :: ZRHOLW ! [kg/m3] density of water +REAL :: ZMI ! [kg/mol] molar weight of aerosol +REAL :: ZMV ! [kg/mol] molar weight of water +REAL :: ZRGMIN ! [um] minimum radius accepted +REAL :: ZSIGMIN ! minimum standard deviation accepted + +REAL, PARAMETER :: C1 = 0.7674 +REAL, PARAMETER :: C2 = 3.079 +REAL, PARAMETER :: C3 = 2.572E-11 +REAL, PARAMETER :: C4 = -1.424 + +REAL,DIMENSION(:,:,:,:), ALLOCATABLE :: ZM ! [aerosol units] local array which goes to output later +REAL,DIMENSION(:,:,:,:), ALLOCATABLE :: ZSV ! [sea salts moment concentration] +REAL,DIMENSION(:), ALLOCATABLE :: ZMMIN ! [aerosol units] minimum values for N, sigma, M +INTEGER,DIMENSION(:), ALLOCATABLE :: NM0 ! [idx] index for Mode 0 in passed variables +INTEGER,DIMENSION(:), ALLOCATABLE :: NM3 ! [idx] indexes for Mode 3 in passed variables +INTEGER,DIMENSION(:), ALLOCATABLE :: NM6 ! [idx] indexes for Mode 6 in passed variables +REAL,DIMENSION(:), ALLOCATABLE :: ZINIRADIUS ! initial mean radius +INTEGER :: JN,IMODEIDX,JJ ! [idx] loop counters + +REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3), NMODE_SLT) :: ZMASS3D, & + ZMASS3D_SLT ![kg/m3] mass of one sea salt mode + +REAL,DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: ZTEMP, ZREHU, ZREHU_tmp +REAL,DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3), NMODE_SLT) :: ZDENSITY_WET ! [g/m2] Aerosol wet density (salt + water) +REAL,DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: ZSIGMA ! [-] standard deviation +REAL,DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: ZRG, ZRG_WET ! [um] number median radius, and nuber median wet radius +! +!------------------------------------------------------------------------------- +! + +!+ Marine +! Calcul de RH +! Pris dans write_lfi_for_diag pour le calcul de RH +ZTEMP(:,:,:) = PTHT(:,:,:) * (PPABST(:,:,:) / XP00)**(XRD/XCPD) + +ZREHU_tmp(:,:,:) = SM_FOES(ZTEMP(:,:,:)) ! SM_FOES = to compute saturation vapor pressure +ZREHU_tmp(:,:,:) = (XMV / XMD) * ZREHU_tmp(:,:,:) / (PPABST(:,:,:) - ZREHU_tmp(:,:,:)) +!XMD,XMV ! Molar mass of dry air and molar mass of vapor, PPABST: pression + +ZREHU(:,:,:) = PRT(:,:,:,1) / ZREHU_tmp(:,:,:) + +IF (CCLOUD(1:3) =='ICE' .OR. CCLOUD =='C3R5') THEN + WHERE ( ZTEMP(:,:,:) < XTT) ! XTT : Triple point temperature + ZREHU_tmp(:,:,:) = EXP( XALPI - XBETAI/ZTEMP(:,:,:) & ! XALPI,XBETAI,XGAMI ! Constants for saturation vapor pressure + - XGAMI*ALOG(ZTEMP(:,:,:)) ) !saturation over ice + ZREHU_tmp(:,:,:) = (XMV / XMD) * ZREHU_tmp(:,:,:) / (PPABST(:,:,:) - ZREHU_tmp(:,:,:)) + ZREHU(:,:,:) = PRT(:,:,:,1) / ZREHU_tmp(:,:,:) + END WHERE +END IF + +ZREHU(:,:,:) = MIN(MAX(ZREHU(:,:,:), 0.02),0.95) + + +! 1.1 initialisation +! +!Calculations here are for one mode only +! +ALLOCATE (NM0(NMODE_SLT)) +ALLOCATE (NM3(NMODE_SLT)) +ALLOCATE (NM6(NMODE_SLT)) +ALLOCATE (ZM(SIZE(PSVT,1), SIZE(PSVT,2), SIZE(PSVT,3), NMODE_SLT*3)) +ALLOCATE (ZMMIN(NMODE_SLT*3)) +ALLOCATE (ZSV(SIZE(PSVT,1), SIZE(PSVT,2), SIZE(PSVT,3), SIZE(PSVT,4))) +ALLOCATE (ZINIRADIUS(NMODE_SLT)) + +ZSV(:,:,:,:) = MAX(PSVT(:,:,:,:), XMNH_TINY) + +DO JN = 1, NMODE_SLT + IMODEIDX = JPSALTORDER(JN) + !Calculations here are for one mode only + IF (CRGUNITS == "MASS") THEN + ZINIRADIUS(JN) = XINIRADIUS_SLT(IMODEIDX) * EXP(-3.*(LOG(XINISIG_SLT(IMODEIDX)))**2) + ELSE + ZINIRADIUS(JN) = XINIRADIUS_SLT(IMODEIDX) + END IF + + !Set counter for number, M3 and M6 + NM0(JN) = 1 + (JN - 1) * 3 + NM3(JN) = 2 + (JN - 1) * 3 + NM6(JN) = 3 + (JN - 1) * 3 + !Get minimum values possible + ZMMIN(NM0(JN)) = XN0MIN_SLT(IMODEIDX) + ZRGMIN = ZINIRADIUS(JN) + IF (LVARSIG_SLT) THEN + ZSIGMIN = XSIGMIN_SLT + ELSE + ZSIGMIN = XINISIG_SLT(IMODEIDX) + ENDIF + ZMMIN(NM3(JN)) = ZMMIN(NM0(JN)) * (ZRGMIN**3)*EXP(4.5 * LOG(ZSIGMIN)**2) + ZMMIN(NM6(JN)) = ZMMIN(NM0(JN)) * (ZRGMIN**6)*EXP(18. * LOG(ZSIGMIN)**2) +END DO +! +!Set density of aerosol, here sea salt (kg/m3) and water +ZRHOI = XDENSITY_SALT +ZRHOLW = XRHOLW +!Set molecular weight of sea salt and water!NOTE THAT THIS IS NOW IN KG +ZMI = XMOLARWEIGHT_SALT +ZMV = XMV +! +! +DO JN = 1, NMODE_SLT + ! + IF (LVARSIG_SLT) THEN ! give M6 (case of variable standard deviation) + ! + !Get number concentration (#/molec_{air}==>#/m3) + ZM(:,:,:,NM0(JN))= & + ZSV(:,:,:,1+(JN-1)*3) & !#/molec_{air} + * XAVOGADRO & !==>#/mole + / XMD & !==>#/kg_{air} + * PRHODREF(:,:,:) !==>#/m3 + ! + !calculate moment 3 from total aerosol mass (molec_{aer}/molec_{air} ==> + ZM(:,:,:,NM3(JN)) = & + ZSV(:,:,:,2+(JN-1)*3) & !molec_{aer}/molec_{aer} + * (ZMI/XMD) & !==>kg_{aer}/kg_{aer} + * PRHODREF(:,:,:) & !==>kg_{aer}/m3_{air} + * (1.d0/ZRHOI) & !==>m3_{aer}/m3_{air} + * XM3TOUM3_SALT & !==>um3_{aer}/m3_{air} + / (XPI * 4./3.) !==>um3_{aer}/m3_{air} (volume ==> 3rd moment) + !Limit mass concentration to minimum value + ZM(:,:,:,NM3(JN)) = MAX(ZM(:,:,:,NM3(JN)), ZMMIN(NM3(JN))) + ! + ZM(:,:,:,NM6(JN)) = ZSV(:,:,:,3+(JN-1)*3) & !um6/molec_{air}*(cm3/m3) + * 1.d-6 & !==> um6/molec_{air} + * XAVOGADRO & !==> um6/mole_{air} + / XMD & !==> um6/kg_{air} + * PRHODREF(:,:,:) !==> um6/m3_{air} + !Limit m6 concentration to minimum value + ZM(:,:,:,NM6(JN)) = MAX(ZM(:,:,:,NM6(JN)), ZMMIN(NM6(JN))) + ! + !Get sigma (only if sigma is allowed to vary) + !Get intermediate values for sigma M3^2/(M0*M6) (ORILAM paper, eqn 8) + ZSIGMA(:,:,:)=ZM(:,:,:,NM3(JN))**2/(ZM(:,:,:,NM0(JN))*ZM(:,:,:,NM6(JN))) + !Limit the intermediate value, can not be larger than 1 + ZSIGMA(:,:,:)=MIN(1-1E-10,ZSIGMA(:,:,:)) + !Limit the value for intermediate, can not be smaller than 0 + ZSIGMA(:,:,:)=MAX(1E-10,ZSIGMA(:,:,:)) + !Calculate log(sigma) + ZSIGMA(:,:,:)= LOG(ZSIGMA(:,:,:)) + !Finally get the real sigma the negative sign is because of + !The way the equation is written (M3^2/(M0*M6)) instead of (M0*M6)/M3^3 + ZSIGMA(:,:,:)= EXP(1./3.*SQRT(-ZSIGMA(:,:,:))) + !Limit the value to reasonable ones + ZSIGMA(:,:,:) = MAX( XSIGMIN_SLT, MIN( XSIGMAX_SLT, ZSIGMA(:,:,:) ) ) + + ! + !Put back M6 so that it fits the sigma which is possibly modified above + !The following makes M6 consistent with N, R, SIGMA + ZM(:,:,:,NM6(JN)) = ZM(:,:,:,NM0(JN)) & + * ( (ZM(:,:,:,NM3(JN))/ZM(:,:,:,NM0(JN)))**(1./3.) & + * exp(-(3./2.)*log(ZSIGMA(:,:,:))**2))**6 & + * exp(18.*log(ZSIGMA(:,:,:))**2) + + ELSE ! compute M6 from M0, M3 and SIGMA + ! + ZSIGMA(:,:,:) = XINISIG_SLT(JPSALTORDER(JN)) + IF (LRGFIX_SLT) THEN + + !calculate moment 3 from total aerosol mass (molec_{aer}/molec_{air} ==> + ZM(:,:,:,NM3(JN)) = & + ZSV(:,:,:,JN) & !molec_{aer}/molec_{aer} + * (ZMI/XMD) & !==>kg_{aer}/kg_{aer} + * PRHODREF(:,:,:) & !==>kg_{aer}/m3_{air} + * (1.d0/ZRHOI) & !==>m3_{aer}/m3_{air} + * XM3TOUM3_SALT & !==>um3_{aer}/m3_{air} + / (XPI * 4./3.) !==>um3_{aer}/m3_{air} (volume ==> 3rd moment) + + ZM(:,:,:,NM3(JN)) = MAX(ZM(:,:,:,NM3(JN)), ZMMIN(NM3(JN))) + PSVT(:,:,:,JN) = ZM(:,:,:,NM3(JN)) * XMD * XPI * 4./3. * ZRHOI / & + (ZMI*PRHODREF(:,:,:)*XM3TOUM3_SALT) + + ZM(:,:,:,NM0(JN))= ZM(:,:,:,NM3(JN))/& + ((ZINIRADIUS(JN)**3)*EXP(4.5 * LOG(XINISIG_SLT(JPSALTORDER(JN)))**2)) + + + + ELSE + + !calculate moment 3 from total aerosol mass (molec_{aer}/molec_{air} ==> + ZM(:,:,:,NM3(JN)) = & + ZSV(:,:,:,2+(JN-1)*2) & !molec_{aer}/molec_{aer} + * (ZMI/XMD) & !==>kg_{aer}/kg_{aer} + * PRHODREF(:,:,:) & !==>kg_{aer}/m3_{air} + * (1.d0/ZRHOI) & !==>m3_{aer}/m3_{air} + * XM3TOUM3_SALT & !==>um3_{aer}/m3_{air} + / (XPI * 4./3.) !==>um3_{aer}/m3_{air} (volume ==> 3rd moment) + + + !Get number concentration (#/molec_{air}==>#/m3) + ZM(:,:,:,NM0(JN))= & + ZSV(:,:,:,1+(JN-1)*2) & !#/molec_{air} + * XAVOGADRO & !==>#/mole + / XMD & !==>#/kg_{air} + * PRHODREF(:,:,:) !==>#/m3 + + ! Limit concentration to minimum values + WHERE ((ZM(:,:,:,NM0(JN)) < ZMMIN(NM0(JN)) ).OR. & + (ZM(:,:,:,NM3(JN)) < ZMMIN(NM3(JN)) )) + ZM(:,:,:,NM0(JN)) = ZMMIN(NM0(JN)) + ZM(:,:,:,NM3(JN)) = ZMMIN(NM3(JN)) + PSVT(:,:,:,1+(JN-1)*2) = ZM(:,:,:,NM0(JN)) * XMD / & + (XAVOGADRO * PRHODREF(:,:,:) ) + PSVT(:,:,:,2+(JN-1)*2) = ZM(:,:,:,NM3(JN)) * XMD * XPI * 4./3. * ZRHOI / & + (ZMI*PRHODREF(:,:,:)*XM3TOUM3_SALT) + ENDWHERE + END IF + + ZM(:,:,:,NM6(JN)) = ZM(:,:,:,NM0(JN)) & + * ( (ZM(:,:,:,NM3(JN))/ZM(:,:,:,NM0(JN)))**(1./3.) & + * exp(-(3./2.)*log(ZSIGMA(:,:,:))**2))**6 & + * exp(18.*log(ZSIGMA(:,:,:))**2) + + ! + END IF + ! + !Get number median radius (eqn. 7 in Orilam manuscript) + ZRG(:,:,:)= & + ( & + ZM(:,:,:,NM3(JN))*ZM(:,:,:,NM3(JN))*ZM(:,:,:,NM3(JN))*ZM(:,:,:,NM3(JN)) & + /(ZM(:,:,:,NM6(JN))*ZM(:,:,:,NM0(JN))*ZM(:,:,:,NM0(JN))*ZM(:,:,:,NM0(JN))) & + ) & + ** XSIXTH_SALT + + + !ZRG(:,:,:)=MIN(ZRG(:,:,:),ZINIRADIUS(JN)) + !Give the sigma-values to the passed array + IF(PRESENT(PSIG3D)) PSIG3D(:,:,:,JN) = ZSIGMA(:,:,:) + ! + !Set the number concentrations in the passed array + IF(PRESENT(PN3D)) PN3D(:,:,:,JN) = ZM(:,:,:,NM0(JN)) + ! +! !Get the number median radius +! IF(PRESENT(PRG3D)) PRG3D(:,:,:,JN)= ZRG(:,:,:) + ! + ! + !+ Marine +!!!!!!!!!!! Wet radius calculus + +!Test pour Marine + + ZRG_WET(:,:,:) = C1 * (ZRG(:,:,:)*1.d-4)**C2 ! Pour le calcul, ZRG en cm! (d'où 1.d-4) + +!+ Marine test + + ZRG_WET(:,:,:) = ZRG_WET(:,:,:) / (C3 * ((ZRG(:,:,:)*1.d-4)**C4) - LOG10(ZREHU(:,:,:))) + ZRG_WET(:,:,:) = ZRG_WET(:,:,:) + (ZRG(:,:,:)*1.d-4)**3 + ZRG_WET(:,:,:) = ( ZRG_WET(:,:,:)**(1./3) )*1.d4 ! *1.d4 pour repasser de cm à micromètres + + !Get the number median radius + IF(PRESENT(PRG3D)) PRG3D(:,:,:,JN) = ZRG_WET(:,:,:) + + + +! Wet density calcul + ZDENSITY_WET(:,:,:,JN)=(ZRHOI * ZRG(:,:,:) * ZRG(:,:,:) * ZRG(:,:,:) + & + ZRHOLW * (ZRG_WET(:,:,:) * ZRG_WET(:,:,:) * ZRG_WET(:,:,:)- & + ZRG(:,:,:) * ZRG(:,:,:) * ZRG(:,:,:))) & + / (ZRG_WET(:,:,:) * ZRG_WET(:,:,:) * ZRG_WET(:,:,:)) + +!Wet mass + ZMASS3D(:,:,:,JN)= & + ZM(:,:,:,NM0(JN)) & !#/m^3_{air} + * XPI*4./3. & + * ZDENSITY_WET(:,:,:,JN) & !==>kg/m^3_{aeros}/m^3_{air} + * ZRG_WET(:,:,:) * ZRG_WET(:,:,:) * ZRG_WET(:,:,:) & + * XUM3TOM3_SALT & !==>kg/m^3_{air} + * exp(4.5*log(ZSIGMA(:,:,:))*log(ZSIGMA(:,:,:))) + +! Salt Mass + ZMASS3D_SLT(:,:,:,JN)= & + ZM(:,:,:,NM0(JN)) & !#/m^3_{air} + * XPI*4./3. & + * ZRHOI & !==>kg/m^3_{aeros}/m^3_{air} + * ZRG(:,:,:) * ZRG(:,:,:) * ZRG(:,:,:) & + * XUM3TOM3_SALT & !==>kg/m^3_{air} + * exp(4.5*log(ZSIGMA(:,:,:))*log(ZSIGMA(:,:,:))) + + IF(PRESENT(PMASS3D)) THEN + PMASS3D(:,:,:,JN)= ZMASS3D(:,:,:,JN) + ENDIF + + IF(PRESENT(PDENSITY_WET)) THEN + PDENSITY_WET(:,:,:,JN) = ZDENSITY_WET(:,:,:,JN) + ENDIF +! +END DO !Loop on modes +! +IF(PRESENT(PM3D)) PM3D(:,:,:,:) = ZM(:,:,:,:) +! +DEALLOCATE(ZINIRADIUS) +DEALLOCATE(ZSV) +DEALLOCATE(ZMMIN) +DEALLOCATE(ZM) +DEALLOCATE(NM6) +DEALLOCATE(NM3) +DEALLOCATE(NM0) + +!+ Marine + +END SUBROUTINE PPP2SALT_WET + +!! ############################################################ + SUBROUTINE SALT2PPP( & + PSVT & !IO [ppp] input scalar variables (moment of distribution) + , PRHODREF & !I [kg/m3] density of air + , PSIG3D & !I [-] standard deviation of aerosol distribution + , PRG3D & !I [um] number median diameter of aerosol distribution + ) +!! ############################################################ +! +!! +!! PURPOSE +!! ------- +!! Translate the sea salt Mass, RG and SIGMA in the three moments M0, M3 and M6 given in ppp +!! +!! CALLING STRUCTURE NOTE: OPTIONAL VARIABLES +!! ------- +!! CALL PPP2AEROS(PSVT, PRHODREF, PSIG3D=SIGVAR, & +!! PRG3D=RVAR, PN3D=NVAR) +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Pierre TULET (LA) +!! +!! MODIFICATIONS +!! ------------- +!! Alf Grini (CNRM) +!! +!! EXTERNAL +!! -------- +!! None +!! + IMPLICIT NONE +!! +!------------------------------------------------------------------------------- +! +!* 0. DECLARATIONS +! ------------ +! +!* 0.1 declarations of arguments +! + !INPUT + REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF !I [kg/m3] density of air + REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSIG3D !O [-] standard deviation + REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRG3D !O [um] number median diameter + + !OUTPUT + REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVT !IO [#/molec_{air}] first moment + !IO [molec_{aer}/molec_{air} 3rd moment + !IO [um6/molec_{air}*(cm3/m3)] 6th moment +! +! +!* 0.2 declarations local variables +! + REAL :: ZRHOI ! [kg/m3] density of aerosol + REAL :: ZMI ! [kg/mol] molar weight of aerosol + REAL :: ZRGMIN ! [um] minimum radius accepted + REAL :: ZSIGMIN ! minimum standard deviation accepted + REAL,DIMENSION(:,:,:,:), ALLOCATABLE :: ZM ! [aerosol units] local array which goes to output later + REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZSIGMA ! aersol standard deviation + REAL,DIMENSION(:), ALLOCATABLE :: ZMMIN ! [aerosol units] minimum values for N, sigma, M + REAL,DIMENSION(:), ALLOCATABLE :: ZINIRADIUS ! initial mean radius + INTEGER,DIMENSION(:), ALLOCATABLE :: NM0 ! [idx] index for Mode 0 in passed variables + INTEGER,DIMENSION(:), ALLOCATABLE :: NM3 ! [idx] indexes for Mode 3 in passed variables + INTEGER,DIMENSION(:), ALLOCATABLE :: NM6 ! [idx] indexes for Mode 6 in passed variables + INTEGER :: JJ, JN ! [idx] loop counters + INTEGER :: IMODEIDX +! +!------------------------------------------------------------------------------- +! +! 1.1 initialisation + + + ALLOCATE (NM0(NMODE_SLT)) + ALLOCATE (NM3(NMODE_SLT)) + ALLOCATE (NM6(NMODE_SLT)) + ALLOCATE (ZINIRADIUS(NMODE_SLT)) + ALLOCATE (ZMMIN(NMODE_SLT*3)) + ALLOCATE (ZM(SIZE(PSVT,1), SIZE(PSVT,2), SIZE(PSVT,3), NMODE_SLT*3)) + ALLOCATE (ZSIGMA(SIZE(PSVT,1), SIZE(PSVT,2), SIZE(PSVT,3))) + + !Set density of aerosol, here sea salt (kg/m3) + ZRHOI = XDENSITY_SALT + !Set molecular weight of sea salt !NOTE THAT THIS IS NOW IN KG + ZMI = XMOLARWEIGHT_SALT +! + + ! PSVT need to be positive +! PSVT(:,:,:,:) = MAX(PSVT(:,:,:,:), XMNH_TINY) + + DO JN=1,NMODE_SLT + IMODEIDX = JPSALTORDER(JN) + !Calculations here are for one mode only + IF (CRGUNITS=="MASS") THEN + ZINIRADIUS(JN) = XINIRADIUS_SLT(IMODEIDX) * EXP(-3.*(LOG(XINISIG_SLT(IMODEIDX)))**2) + ELSE + ZINIRADIUS(JN) = XINIRADIUS_SLT(IMODEIDX) + END IF + + !Set counter for number, M3 and M6 + NM0(JN) = 1+(JN-1)*3 + NM3(JN) = 2+(JN-1)*3 + NM6(JN) = 3+(JN-1)*3 + + !Get minimum values possible + ZMMIN(NM0(JN)) = XN0MIN_SLT(IMODEIDX) + ZRGMIN = ZINIRADIUS(JN) + IF (LVARSIG_SLT) THEN + ZSIGMIN = XSIGMIN_SLT + ELSE + ZSIGMIN = XINISIG_SLT(IMODEIDX) + ENDIF + ZMMIN(NM3(JN)) = ZMMIN(NM0(JN)) * (ZRGMIN**3)*EXP(4.5 * LOG(ZSIGMIN)**2) + ZMMIN(NM6(JN)) = ZMMIN(NM0(JN)) * (ZRGMIN**6)*EXP(18. * LOG(ZSIGMIN)**2) + END DO + + !Set density of aerosol, here sea salt (kg/m3) + ZRHOI = XDENSITY_SALT + !Set molecular weight of sea salt !NOTE THAT THIS IS NOW IN KG + ZMI = XMOLARWEIGHT_SALT +! + DO JN=1,NMODE_SLT + !calculate moment 3 from total aerosol mass (molec_{aer}/molec_{air} ==> + IF (LVARSIG_SLT) THEN + ZM(:,:,:,NM3(JN)) = & + PSVT(:,:,:,2+(JN-1)*3) & !molec_{aer}/molec_{aer} + * (ZMI/XMD) & !==>kg_{aer}/kg_{aer} + * PRHODREF(:,:,:) & !==>kg_{aer}/m3_{air} + * (1.d0/ZRHOI) & !==>m3_{aer}/m3_{air} + * XM3TOUM3_SALT & !==>um3_{aer}/m3_{air} + / (XPI * 4./3.) !==>um3_{aer}/m3_{air} (volume ==> 3rd moment) + ELSE + IF ((LRGFIX_SLT)) THEN + ZM(:,:,:,NM3(JN)) = & + PSVT(:,:,:,JN) & !molec_{aer}/molec_{aer} + * (ZMI/XMD) & !==>kg_{aer}/kg_{aer} + * PRHODREF(:,:,:) & !==>kg_{aer}/m3_{air} + * (1.d0/ZRHOI) & !==>m3_{aer}/m3_{air} + * XM3TOUM3_SALT & !==>um3_{aer}/m3_{air} + / (XPI * 4./3.) !==>um3_{aer}/m3_{air} (volume ==> 3rd moment) + ZM(:,:,:,NM3(JN)) = MAX(ZM(:,:,:,NM3(JN)), ZMMIN(NM3(JN))) + ELSE + ZM(:,:,:,NM3(JN)) = & + PSVT(:,:,:,2+(JN-1)*2) & !molec_{aer}/molec_{aer} + * (ZMI/XMD) & !==>kg_{aer}/kg_{aer} + * PRHODREF(:,:,:) & !==>kg_{aer}/m3_{air} + * (1.d0/ZRHOI) & !==>m3_{aer}/m3_{air} + * XM3TOUM3_SALT & !==>um3_{aer}/m3_{air} + / (XPI * 4./3.) !==>um3_{aer}/m3_{air} (volume ==> 3rd moment) + END IF + END IF +! calculate moment 0 from dispersion and mean radius + ZM(:,:,:,NM0(JN))= ZM(:,:,:,NM3(JN))/& + ((PRG3D(:,:,:,JN)**3)*EXP(4.5 * LOG(PSIG3D(:,:,:,JN))**2)) + +! calculate moment 6 from dispersion and mean radius + ZM(:,:,:,NM6(JN)) = ZM(:,:,:,NM0(JN)) * (PRG3D(:,:,:,JN)**6) * & + EXP(18 *(LOG(PSIG3D(:,:,:,JN)))**2) + + IF (LVARSIG_SLT) THEN + WHERE ((ZM(:,:,:,NM0(JN)) .LT. ZMMIN(NM0(JN))).OR.& + (ZM(:,:,:,NM3(JN)) .LT. ZMMIN(NM3(JN))).OR.& + (ZM(:,:,:,NM6(JN)) .LT. ZMMIN(NM6(JN)))) + ZM(:,:,:,NM0(JN)) = ZMMIN(NM0(JN)) + ZM(:,:,:,NM3(JN)) = ZMMIN(NM3(JN)) + ZM(:,:,:,NM6(JN)) = ZMMIN(NM6(JN)) + END WHERE + ELSE IF (.NOT.(LRGFIX_SLT)) THEN + + WHERE ((ZM(:,:,:,NM0(JN)) .LT. ZMMIN(NM0(JN))).OR.& + (ZM(:,:,:,NM3(JN)) .LT. ZMMIN(NM3(JN)))) + ZM(:,:,:,NM0(JN)) = ZMMIN(NM0(JN)) + ZM(:,:,:,NM3(JN)) = ZMMIN(NM3(JN)) + END WHERE + ENDIF + + + ! return to concentration #/m3 => (#/molec_{air} + IF (LVARSIG_SLT) THEN + PSVT(:,:,:,1+(JN-1)*3) = ZM(:,:,:,NM0(JN)) * XMD / & + (XAVOGADRO*PRHODREF(:,:,:)) + + PSVT(:,:,:,2+(JN-1)*3) = ZM(:,:,:,NM3(JN)) * XMD * XPI * 4./3 * ZRHOI / & + (ZMI*PRHODREF(:,:,:)*XM3TOUM3_SALT) + + PSVT(:,:,:,3+(JN-1)*3) = ZM(:,:,:,NM6(JN)) * XMD / & + ( XAVOGADRO*PRHODREF(:,:,:) * 1.d-6) + ELSE IF (LRGFIX_SLT) THEN + PSVT(:,:,:,JN) = ZM(:,:,:,NM3(JN)) * XMD * XPI * 4./3. * ZRHOI / & + (ZMI*PRHODREF(:,:,:)*XM3TOUM3_SALT) + ELSE + PSVT(:,:,:,1+(JN-1)*2) = ZM(:,:,:,NM0(JN)) * XMD / & + (XAVOGADRO*PRHODREF(:,:,:)) + + PSVT(:,:,:,2+(JN-1)*2) = ZM(:,:,:,NM3(JN)) * XMD * XPI * 4./3. * ZRHOI / & + (ZMI*PRHODREF(:,:,:)*XM3TOUM3_SALT) + END IF +! +END DO !Loop on modes + +DEALLOCATE(ZINIRADIUS) +DEALLOCATE(ZMMIN) +DEALLOCATE(ZSIGMA) +DEALLOCATE(ZM) +DEALLOCATE(NM6) +DEALLOCATE(NM3) +DEALLOCATE(NM0) +! +END SUBROUTINE SALT2PPP +! +!! ############################################################ + SUBROUTINE PPP2SALT1D( & + PSVT & !I [ppp] input scalar variables (moment of distribution) + , PRHODREF & !I [kg/m3] density of air + , PSIG1D & !O [-] standard deviation of aerosol distribution + , PRG1D & !O [um] number median diameter of aerosol distribution + , PN1D & !O [#/m3] number concentration of aerosols + , PMASS1D & !O [kg/m3] mass concentration of aerosol + , PM1D & !O aerosols moments 0, 3 and 6 + ) +!! ############################################################ +! +!! +!! PURPOSE +!! ------- +!! Translate the three moments M0, M3 and M6 given in ppp into +!! Values which can be understood more easily (R, sigma, N, M) +!! +!! CALLING STRUCTURE NOTE: OPTIONAL VARIABLES +!! ------- +!! CALL PPP2AEROS(PSVT, PRHODREF, PSIG3D=SIGVAR, & +!! PRG3D=RVAR, PN3D=NVAR, PM3D=MASSVAR) +!! +!! REFERENCE +!! --------- +!! none +!! +!! AUTHOR +!! ------ +!! Pierre TULET (LA) +!! +!! MODIFICATIONS +!! ------------- +!! 2005 Alf Grini (CNRM) +!! 2006 Jean-Pierre Chaboureau (LA) +!! +!! EXTERNAL +!! -------- +!! None +!! + IMPLICIT NONE +!! +!------------------------------------------------------------------------------- +! +!* 0. DECLARATIONS +! ------------ +! +!* 0.1 declarations of arguments +! +REAL, DIMENSION(:,:), INTENT(INOUT) :: PSVT !I [ppp] first moment +REAL, DIMENSION(:), INTENT(IN) :: PRHODREF !I [kg/m3] density of air + +REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: PSIG1D !O [-] standard deviation +REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: PRG1D !O [um] number median diameter +REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: PN1D !O [#/m3] number concentration +REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: PMASS1D !O [kg_{aer}/m3] mass concentration +REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: PM1D !O aerosols moments +! +! +!* 0.2 declarations local variables +! +REAL :: ZRHOI ! [kg/m3] density of aerosol +REAL :: ZMI ! [kg/mol] molar weight of aerosol +REAL :: ZRGMIN ! [um] minimum radius accepted +REAL :: ZSIGMIN ! minimum standard deviation accepted +REAL,DIMENSION(:,:), ALLOCATABLE :: ZM ! [aerosol units] local array which goes to output later +REAL,DIMENSION(:,:), ALLOCATABLE :: ZSV ! [sea salts moment concentration] +REAL,DIMENSION(:), ALLOCATABLE :: ZSIGMA ! [-] standard deviation +REAL,DIMENSION(:), ALLOCATABLE :: ZRG ! [um] number median diameter +REAL,DIMENSION(:), ALLOCATABLE :: ZMMIN ! [aerosol units] minimum values for N, sigma, M +INTEGER,DIMENSION(:), ALLOCATABLE :: NM0 ! [idx] index for Mode 0 in passed variables +INTEGER,DIMENSION(:), ALLOCATABLE :: NM3 ! [idx] indexes for Mode 3 in passed variables +INTEGER,DIMENSION(:), ALLOCATABLE :: NM6 ! [idx] indexes for Mode 6 in passed variables +REAL,DIMENSION(:), ALLOCATABLE :: ZINIRADIUS ! initial mean radius +INTEGER :: JN,IMODEIDX,JJ ! [idx] loop counters +! +!------------------------------------------------------------------------------- +! +! 1.1 initialisation +! +!Calculations here are for one mode only +! +ALLOCATE (NM0(NMODE_SLT)) +ALLOCATE (NM3(NMODE_SLT)) +ALLOCATE (NM6(NMODE_SLT)) +ALLOCATE (ZM(SIZE(PSVT,1), NMODE_SLT*3)) +ALLOCATE (ZMMIN(NMODE_SLT*3)) +ALLOCATE (ZSIGMA(SIZE(PSVT,1))) +ALLOCATE (ZRG(SIZE(PSVT,1))) +ALLOCATE (ZSV(SIZE(PSVT,1), SIZE(PSVT,2))) +ALLOCATE (ZINIRADIUS(NMODE_SLT)) + +!ZSV(:,:) = MAX(PSVT(:,:), XMNH_TINY) + +DO JN=1,NMODE_SLT + IMODEIDX = JPSALTORDER(JN) + !Calculations here are for one mode only + IF (CRGUNITS=="MASS") THEN + ZINIRADIUS(JN) = XINIRADIUS_SLT(IMODEIDX) * EXP(-3.*(LOG(XINISIG_SLT(IMODEIDX)))**2) + ELSE + ZINIRADIUS(JN) = XINIRADIUS_SLT(IMODEIDX) + END IF + + !Set counter for number, M3 and M6 + NM0(JN) = 1+(JN-1)*3 + NM3(JN) = 2+(JN-1)*3 + NM6(JN) = 3+(JN-1)*3 + !Get minimum values possible + ZMMIN(NM0(JN)) = XN0MIN_SLT(IMODEIDX) + ZRGMIN = ZINIRADIUS(JN) + IF (LVARSIG_SLT) THEN + ZSIGMIN = XSIGMIN_SLT + ELSE + ZSIGMIN = XINISIG_SLT(IMODEIDX) + ENDIF + ZMMIN(NM3(JN)) = ZMMIN(NM0(JN)) * (ZRGMIN**3)*EXP(4.5 * LOG(ZSIGMIN)**2) + ZMMIN(NM6(JN)) = ZMMIN(NM0(JN)) * (ZRGMIN**6)*EXP(18. * LOG(ZSIGMIN)**2) +END DO +! +!Set density of aerosol, here sea salt (kg/m3) +ZRHOI = XDENSITY_SALT +!Set molecular weight of sea salt !NOTE THAT THIS IS NOW IN KG +ZMI = XMOLARWEIGHT_SALT +! +! +DO JN=1,NMODE_SLT + ! + IF (LVARSIG_SLT) THEN ! give M6 (case of variable standard deviation) + ! + !Get number concentration (#/molec_{air}==>#/m3) + ZM(:,NM0(JN))= & + ZSV(:,1+(JN-1)*3) & !#/molec_{air} + * XAVOGADRO & !==>#/mole + / XMD & !==>#/kg_{air} + * PRHODREF(:) !==>#/m3 + ! + !calculate moment 3 from total aerosol mass (molec_{aer}/molec_{air} ==> + ZM(:,NM3(JN)) = & + ZSV(:,2+(JN-1)*3) & !molec_{aer}/molec_{aer} + * (ZMI/XMD) & !==>kg_{aer}/kg_{aer} + * PRHODREF(:) & !==>kg_{aer}/m3_{air} + * (1.d0/ZRHOI) & !==>m3_{aer}/m3_{air} + * XM3TOUM3_SALT & !==>um3_{aer}/m3_{air} + / (XPI * 4./3.) !==>um3_{aer}/m3_{air} (volume ==> 3rd moment) + !Limit mass concentration to minimum value + ZM(:,NM3(JN)) = MAX(ZM(:,NM3(JN)), ZMMIN(NM3(JN))) + ! + ZM(:,NM6(JN)) = ZSV(:,3+(JN-1)*3) & !um6/molec_{air}*(cm3/m3) + * 1.d-6 & !==> um6/molec_{air} + * XAVOGADRO & !==> um6/mole_{air} + / XMD & !==> um6/kg_{air} + * PRHODREF(:) !==> um6/m3_{air} + !Limit m6 concentration to minimum value + ZM(:,NM6(JN)) = MAX(ZM(:,NM6(JN)), ZMMIN(NM6(JN))) + ! + !Get sigma (only if sigma is allowed to vary) + !Get intermediate values for sigma M3^2/(M0*M6) (ORILAM paper, eqn 8) + ZSIGMA(:)=ZM(:,NM3(JN))**2/(ZM(:,NM0(JN))*ZM(:,NM6(JN))) + !Limit the intermediate value, can not be larger than 1 + ZSIGMA(:)=MIN(1-1E-10,ZSIGMA(:)) + !Limit the value for intermediate, can not be smaller than 0 + ZSIGMA(:)=MAX(1E-10,ZSIGMA(:)) + !Calculate log(sigma) + ZSIGMA(:)= LOG(ZSIGMA(:)) + !Finally get the real sigma the negative sign is because of + !The way the equation is written (M3^2/(M0*M6)) instead of (M0*M6)/M3^3 + ZSIGMA(:)= EXP(1./3.*SQRT(-ZSIGMA(:))) + !Limit the value to reasonable ones + ZSIGMA(:) = MAX( XSIGMIN_SLT, MIN( XSIGMAX_SLT, ZSIGMA(:) ) ) + + ! + !Put back M6 so that it fits the sigma which is possibly modified above + !The following makes M6 consistent with N, R, SIGMA + ZM(:,NM6(JN)) = ZM(:,NM0(JN)) & + * ( (ZM(:,NM3(JN))/ZM(:,NM0(JN)))**(1./3.) & + * exp(-(3./2.)*log(ZSIGMA(:))**2))**6 & + * exp(18.*log(ZSIGMA(:))**2) + + ELSE ! compute M6 from M0, M3 and SIGMA + ! + ZSIGMA(:) = XINISIG_SLT(JPSALTORDER(JN)) + IF (LRGFIX_SLT) THEN + + !calculate moment 3 from total aerosol mass (molec_{aer}/molec_{air} ==> + ZM(:,NM3(JN)) = & + ZSV(:,JN) & !molec_{aer}/molec_{aer} + * (ZMI/XMD) & !==>kg_{aer}/kg_{aer} + * PRHODREF(:) & !==>kg_{aer}/m3_{air} + * (1.d0/ZRHOI) & !==>m3_{aer}/m3_{air} + * XM3TOUM3_SALT & !==>um3_{aer}/m3_{air} + / (XPI * 4./3.) !==>um3_{aer}/m3_{air} (volume ==> 3rd moment) + ZM(:,NM3(JN)) = MAX(ZM(:,NM3(JN)), ZMMIN(NM3(JN))) + + ZM(:,NM0(JN))= ZM(:,NM3(JN))/& + ((ZINIRADIUS(JN)**3)*EXP(4.5 * LOG(XINISIG_SLT(JPSALTORDER(JN)))**2)) + + ELSE + + !calculate moment 3 from total aerosol mass (molec_{aer}/molec_{air} ==> + ZM(:,NM3(JN)) = & + ZSV(:,2+(JN-1)*2) & !molec_{aer}/molec_{aer} + * (ZMI/XMD) & !==>kg_{aer}/kg_{aer} + * PRHODREF(:) & !==>kg_{aer}/m3_{air} + * (1.d0/ZRHOI) & !==>m3_{aer}/m3_{air} + * XM3TOUM3_SALT & !==>um3_{aer}/m3_{air} + / (XPI * 4./3.) !==>um3_{aer}/m3_{air} (volume ==> 3rd moment) + + + !Get number concentration (#/molec_{air}==>#/m3) + ZM(:,NM0(JN))= & + ZSV(:,1+(JN-1)*2) & !#/molec_{air} + * XAVOGADRO & !==>#/mole + / XMD & !==>#/kg_{air} + * PRHODREF(:) !==>#/m3 + + ! Limit concentration to minimum values + WHERE ((ZM(:,NM0(JN)) < ZMMIN(NM0(JN)) ).OR. & + (ZM(:,NM3(JN)) < ZMMIN(NM3(JN)) )) + ZM(:,NM0(JN)) = ZMMIN(NM0(JN)) + ZM(:,NM3(JN)) = ZMMIN(NM3(JN)) + PSVT(:,1+(JN-1)*2) = ZM(:,NM0(JN)) * XMD / & + (XAVOGADRO * PRHODREF(:) ) + PSVT(:,2+(JN-1)*2) = ZM(:,NM3(JN)) * XMD * XPI * 4./3. * ZRHOI / & + (ZMI*PRHODREF(:)*XM3TOUM3_SALT) + ENDWHERE + + END IF + + ZM(:,NM6(JN)) = ZM(:,NM0(JN)) & + * ( (ZM(:,NM3(JN))/ZM(:,NM0(JN)))**(1./3.) & + * exp(-(3./2.)*log(ZSIGMA(:))**2))**6 & + * exp(18.*log(ZSIGMA(:))**2) + + ! + END IF + ! + !Get number median radius (eqn. 7 in Orilam manuscript) + ZRG(:)= & + ( & + ZM(:,NM3(JN))*ZM(:,NM3(JN))*ZM(:,NM3(JN))*ZM(:,NM3(JN)) & + /(ZM(:,NM6(JN))*ZM(:,NM0(JN))*ZM(:,NM0(JN))*ZM(:,NM0(JN))) & + ) & + ** XSIXTH_SALT + !ZRG(:)=MIN(ZRG(:),ZINIRADIUS(JN)) + !Give the sigma-values to the passed array + IF(PRESENT(PSIG1D)) PSIG1D(:,JN) = ZSIGMA(:) + ! + !Set the number concentrations in the passed array + IF(PRESENT(PN1D)) PN1D(:,JN) = ZM(:,NM0(JN)) + ! + !Get the number median radius + IF(PRESENT(PRG1D)) PRG1D(:,JN)= ZRG(:) + ! + IF(PRESENT(PMASS1D))THEN + PMASS1D(:,JN)= & + ZM(:,NM0(JN)) & !#/m^3_{air} + * XPI*4./3. & + * ZRHOI & !==>kg/m^3_{aeros}/m^3_{air} + * ZRG(:) * ZRG(:) * ZRG(:) & + * XUM3TOM3_SALT & !==>kg/m^3_{air} + * exp(4.5*log(ZSIGMA(:))*log(ZSIGMA(:))) + ENDIF +! +END DO !Loop on modes +! +IF(PRESENT(PM1D)) PM1D(:,:) = ZM(:,:) +! +DEALLOCATE(ZINIRADIUS) +DEALLOCATE(ZSV) +DEALLOCATE(ZRG) +DEALLOCATE(ZSIGMA) +DEALLOCATE(ZMMIN) +DEALLOCATE(ZM) +DEALLOCATE(NM6) +DEALLOCATE(NM3) +DEALLOCATE(NM0) +! +END SUBROUTINE PPP2SALT1D + +!! ############################################################ +END MODULE MODE_SALT_PSD_WET diff --git a/src/MNH/mode_saltopt.f90 b/src/MNH/mode_saltopt.f90 index ac1b4099d..d7fd28f3f 100644 --- a/src/MNH/mode_saltopt.f90 +++ b/src/MNH/mode_saltopt.f90 @@ -14,8 +14,11 @@ !! PURPOSE !! ------- !! +!! MODIFICATIONS +!! ------------- !! - +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! IMPLICIT NONE PUBLIC PRIVATE :: SALTOPT_LKT @@ -27,6 +30,9 @@ CONTAINS PSVT & !I [moments/molec_{air}] Transported moments of sea salts ,PZZ & !I [m] height of layers ,PRHODREF & !I [kg/m3] density of air + ,PTHT & + ,PPABST & + ,PRT & ,PPIZA_WVL & !O [-] single scattering albedo of sea salt layer for all SW wavelengths ,PCGA_WVL & !O [-] assymetry factor for sea salt layer for all SW wavelengths ,PTAUREL_WVL & !O [-] opt.depth/opt.depth(550) for sea salt layer for all SW wvl @@ -35,14 +41,18 @@ CONTAINS ) - USE MODE_SALT_PSD !Conversion procedures from moments to radius, ,number, mass and sigma + USE MODE_SALT_PSD_WET !Conversion procedures from moments to radius, ,number, mass and sigma + USE MODE_SALT_PSD USE MODD_SALT, ONLY : NMODE_SLT + IMPLICIT NONE !INPUT REAL, DIMENSION(:,:,:,:),INTENT(IN) :: PSVT !I [moments/molec_{air}] transported moments of sea salt REAL, DIMENSION(:,:,:),INTENT(IN) :: PZZ !I [m] height of layers REAL, DIMENSION(:,:,:),INTENT(IN) :: PRHODREF !I [kg/m3] density of air + REAL, DIMENSION(:,:,:),INTENT(IN) :: PTHT, PPABST !I + REAL, DIMENSION(:,:,:,:),INTENT(IN) :: PRT INTEGER, INTENT(IN) :: KSWB !I [nbr] number of shortwave wavelengths REAL, PARAMETER :: EPSILON=1.e-8 !a very low number for optical depth in a layer @@ -57,6 +67,7 @@ CONTAINS REAL, DIMENSION(SIZE(PSVT,1),SIZE(PSVT,2),SIZE(PSVT,3), NMODE_SLT) :: ZMASS ![kg/m3] mass of one sea salt mode REAL, DIMENSION(SIZE(PSVT,1),SIZE(PSVT,2),SIZE(PSVT,3), NMODE_SLT) :: ZRADIUS ![um] number median radius of one sea salt mode REAL, DIMENSION(SIZE(PSVT,1),SIZE(PSVT,2),SIZE(PSVT,3), NMODE_SLT) :: ZSIGMA ![-] dispersion coefficient one sea salt mode + REAL, DIMENSION(SIZE(PSVT,1),SIZE(PSVT,2),SIZE(PSVT,3), NMODE_SLT) :: ZDENSITY ![-] [g/m2] density of wet aerosol (water + sea salt) REAL, ALLOCATABLE, DIMENSION(:,:,:,:) :: ZTAU550_MDE ![-] opt.depth 550nm one mode REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:) :: ZTAU_WVL_MDE ![-] opt.depth @ wvl, one mode REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:) :: ZPIZA_WVL_MDE ![-] single scattering albedo @ wvl, one mode @@ -70,15 +81,26 @@ CONTAINS ALLOCATE(ZCGA_WVL_MDE(SIZE(PTAU550,1),SIZE(PTAU550,2),SIZE(PTAU550,3),KSWB,NMODE_SLT)) ZSVT(:,:,:,:)=PSVT(:,:,:,:) - - CALL PPP2SALT( & + CALL PPP2SALT_WET( & ZSVT & !I [moments/molec_{air}] moments of sea salt for all modes ,PRHODREF & !I [kg/m3] air density + ,PPABST & !I Pression + ,PTHT & !I Potential temperature + ,PRT & !I Large scale vapor mixing ratio ,PSIG3D=ZSIGMA & !O [-] dispersion coefficient ,PRG3D=ZRADIUS & !O [um] number median radius ,PMASS3D=ZMASS & !O [kg/m3] mass of sea salt + ,PDENSITY_WET=ZDENSITY & !0 [g/m2] density of wet aerosol (water + salt) ) - + +! CALL PPP2SALT( & +! ZSVT & !I [moments/molec_{air}] moments of sea salt for all modes +! ,PRHODREF & !I [kg/m3] air density +! ,PSIG3D=ZSIGMA & !O [-] dispersion coefficient +! ,PRG3D=ZRADIUS & !O [um] number median radius +! ,PMASS3D=ZMASS & !O [kg/m3] mass of sea salt +! ) + DO JMDE=1,NMODE_SLT !Get sea salt optical properties from look up tables CALL SALTOPT_LKT( & diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index a903c134f..873112354 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -254,6 +254,7 @@ END MODULE MODI_MODEL_n !! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll ! to allow to disable writes (for bench purposes) !! 02/2019 C.Lac add rain fraction as an output field +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -497,6 +498,7 @@ REAL, DIMENSION(:,:,:,:), POINTER :: DPTR_XLBXRM,DPTR_XLBYRM REAL, DIMENSION(:,:,:), POINTER :: DPTR_XZZ REAL, DIMENSION(:,:,:), POINTER :: DPTR_XLSUM,DPTR_XLSVM,DPTR_XLSWM,DPTR_XLSTHM,DPTR_XLSRVM REAL, DIMENSION(:,:,:), POINTER :: DPTR_XLSUS,DPTR_XLSVS,DPTR_XLSWS,DPTR_XLSTHS,DPTR_XLSRVS +REAL, DIMENSION(:,:), POINTER :: DPTR_XLSZWSM,DPTR_XLSZWSS REAL, DIMENSION(:,:,:), POINTER :: DPTR_XLBXUS,DPTR_XLBYUS,DPTR_XLBXVS,DPTR_XLBYVS REAL, DIMENSION(:,:,:), POINTER :: DPTR_XLBXWS,DPTR_XLBYWS,DPTR_XLBXTHS,DPTR_XLBYTHS REAL, DIMENSION(:,:,:), POINTER :: DPTR_XLBXTKES,DPTR_XLBYTKES @@ -672,6 +674,7 @@ IF (KTCOUNT == 1) THEN CALL ADD3DFIELD_ll(TZLSFIELD_ll, XLSVM) CALL ADD3DFIELD_ll(TZLSFIELD_ll, XLSWM) CALL ADD3DFIELD_ll(TZLSFIELD_ll, XLSTHM) + CALL ADD2DFIELD_ll(TZLSFIELD_ll, XLSZWSM) IF (NRR >= 1) THEN CALL ADD3DFIELD_ll(TZLSFIELD_ll, XLSRVM) ENDIF @@ -701,6 +704,7 @@ IF (KTCOUNT == 1) THEN ! IF ( LSTEADYLS ) THEN CALL UPDATE_HALO_ll(TZLSFIELD_ll, IINFO_ll) + CALL DEL2DFIELD_ll(TZLSFIELD_ll,XLSZWSM,IINFO_ll) CALL UPDATE_HALO2_ll(TZLSFIELD_ll, TZLSHALO2_ll, IINFO_ll) END IF END IF @@ -798,11 +802,13 @@ IF (IMI/=1 .AND. NDAD(IMI)/=IMI .AND. (ISYNCHRO==1 .OR. NDTRATIO(IMI) == 1) ) TH DPTR_XLSUM=>XLSUM DPTR_XLSVM=>XLSVM DPTR_XLSWM=>XLSWM + DPTR_XLSZWSM=>XLSZWSM DPTR_XLSTHS=>XLSTHS DPTR_XLSRVS=>XLSRVS DPTR_XLSUS=>XLSUS DPTR_XLSVS=>XLSVS DPTR_XLSWS=>XLSWS + DPTR_XLSZWSS=>XLSZWSS ! IF ( LSTEADYLS ) THEN NCPL_CUR=0 @@ -817,8 +823,8 @@ IF (IMI/=1 .AND. NDAD(IMI)/=IMI .AND. (ISYNCHRO==1 .OR. NDTRATIO(IMI) == 1) ) TH DPTR_XBFX1,DPTR_XBFX2,DPTR_XBFX3,DPTR_XBFX4,DPTR_XBFY1,DPTR_XBFY2,DPTR_XBFY3,DPTR_XBFY4, & NDXRATIO_ALL(IMI),NDYRATIO_ALL(IMI), & DPTR_CLBCX,DPTR_CLBCY,DPTR_XZZ,DPTR_XZHAT,LSLEVE,XLEN1,XLEN2,DPTR_XCOEFLIN_LBXM, & - DPTR_XLSTHM,DPTR_XLSRVM,DPTR_XLSUM,DPTR_XLSVM,DPTR_XLSWM, & - DPTR_XLSTHS,DPTR_XLSRVS,DPTR_XLSUS,DPTR_XLSVS,DPTR_XLSWS ) + DPTR_XLSTHM,DPTR_XLSRVM,DPTR_XLSUM,DPTR_XLSVM,DPTR_XLSWM,DPTR_XLSZWSM, & + DPTR_XLSTHS,DPTR_XLSRVS,DPTR_XLSUS,DPTR_XLSVS,DPTR_XLSWS, DPTR_XLSZWSS ) END IF END IF ! @@ -1408,10 +1414,10 @@ IF (.NOT. LSTEADYLS) THEN NSIZELBX_ll,NSIZELBXU_ll,NSIZELBY_ll,NSIZELBYV_ll, & NSIZELBXTKE_ll,NSIZELBYTKE_ll, & NSIZELBXR_ll,NSIZELBYR_ll,NSIZELBXSV_ll,NSIZELBYSV_ll, & - XLSUM,XLSVM,XLSWM,XLSTHM,XLSRVM,XDRYMASST, & + XLSUM,XLSVM,XLSWM,XLSTHM,XLSRVM,XLSZWSM,XDRYMASST, & XLBXUM,XLBXVM,XLBXWM,XLBXTHM,XLBXTKEM,XLBXRM,XLBXSVM, & XLBYUM,XLBYVM,XLBYWM,XLBYTHM,XLBYTKEM,XLBYRM,XLBYSVM, & - XLSUS,XLSVS,XLSWS,XLSTHS,XLSRVS,XDRYMASSS, & + XLSUS,XLSVS,XLSWS,XLSTHS,XLSRVS,XLSZWSS,XDRYMASSS, & XLBXUS,XLBXVS,XLBXWS,XLBXTHS,XLBXTKES,XLBXRS,XLBXSVS, & XLBYUS,XLBYVS,XLBYWS,XLBYTHS,XLBYTKES,XLBYRS,XLBYSVS ) ! @@ -1978,16 +1984,16 @@ CALL ENDSTEP ( XTSTEP,NRR,NSV,KTCOUNT,IMI, & XRUS,XRVS,XRWS,XDRYMASSS, & XRTHS,XRRS,XRTKES,XRSVS, & XLSUS,XLSVS,XLSWS, & - XLSTHS,XLSRVS, & + XLSTHS,XLSRVS,XLSZWSS, & XLBXUS,XLBXVS,XLBXWS, & XLBXTHS,XLBXRS,XLBXTKES,XLBXSVS, & XLBYUS,XLBYVS,XLBYWS, & XLBYTHS,XLBYRS,XLBYTKES,XLBYSVS, & - XUM,XVM,XWM, & + XUM,XVM,XWM,XZWS, & XUT,XVT,XWT,XPABST,XDRYMASST, & XTHT, XRT, XTHM, XRCM, XPABSM,XTKET, XSVT,& XLSUM,XLSVM,XLSWM, & - XLSTHM,XLSRVM, & + XLSTHM,XLSRVM,XLSZWSM, & XLBXUM,XLBXVM,XLBXWM, & XLBXTHM,XLBXRM,XLBXTKEM,XLBXSVM, & XLBYUM,XLBYVM,XLBYWM, & diff --git a/src/MNH/modn_salt.f90 b/src/MNH/modn_salt.f90 index 92fa84998..0b7e67447 100644 --- a/src/MNH/modn_salt.f90 +++ b/src/MNH/modn_salt.f90 @@ -25,6 +25,7 @@ !! MODIFICATIONS !! ------------- !! Original 24/02/05 +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -38,6 +39,6 @@ IMPLICIT NONE ! NAMELIST /NAM_SALT/ LSALT, CRGUNITS, LVARSIG_SLT,LSEDIMSALT,XN0MIN_SLT, XINIRADIUS_SLT, & XINISIG_SLT, XSIGMIN_SLT, XSIGMAX_SLT, XCOEFRADMAX_SLT, XCOEFRADMIN_SLT, & - NMODE_SLT, LRGFIX_SLT, LDEPOS_SLT + NMODE_SLT, LRGFIX_SLT, LDEPOS_SLT, LONLY ! END MODULE MODN_SALT diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90 index a11651b58..b4ea670d8 100644 --- a/src/MNH/prep_real_case.f90 +++ b/src/MNH/prep_real_case.f90 @@ -379,6 +379,7 @@ !! P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define !! B.VIE 2016 : LIMA !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -688,6 +689,9 @@ IF (GFOUND) READ(IPRE_REAL1,NAM_AERO_CONF) CALL POSNAM(IPRE_REAL1,'NAM_CONFZ',GFOUND,ILUOUT0) IF (GFOUND) READ(UNIT=IPRE_REAL1,NML=NAM_CONFZ) ! +! Sea salt +CALL INIT_SALT +! !* 4.3 set soil scheme to ISBA for initialization from GRIB ! IF (YATMFILETYPE=='GRIBEX') THEN diff --git a/src/MNH/radiations.f90 b/src/MNH/radiations.f90 index 2bec821d7..807b5e1c6 100644 --- a/src/MNH/radiations.f90 +++ b/src/MNH/radiations.f90 @@ -118,6 +118,7 @@ CONTAINS !! J.Escobar 28/06/2018 : Reproductible parallelisation of CLOUD_ONLY case !! J.Escobar 20/07/2018 : for real*4 compilation, convert with REAL(X) argument to SUM_DD... !! P.Wautelet 22/01/2019: use standard FLUSH statement instead of non standard intrinsics +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -926,13 +927,15 @@ IF (CAOP=='EXPL') THEN PSVT(IIB:IIE,IJB:IJE,:,NSV_SLTBEG:NSV_SLTEND) & !I [ppp] sea salt scalar concentration ,PZZ(IIB:IIE,IJB:IJE,:) & !I [m] height of layers ,PRHODREF(IIB:IIE,IJB:IJE,:) & !I [kg/m3] density of air + ,PTHT(IIB:IIE,IJB:IJE,:) & !I [K] potential temperature + ,PPABST(IIB:IIE,IJB:IJE,:) & !I [hPa] pressure + ,PRT(IIB:IIE,IJB:IJE,:,:) & !I [kg/kg] water mixing ratio ,ZPIZA_SLT_TMP(IIB:IIE,IJB:IJE,IKB-JPVEXT:IKE-JPVEXT,:) & !O [-] single scattering albedo of sea salt ,ZCGA_SLT_TMP(IIB:IIE,IJB:IJE,IKB-JPVEXT:IKE-JPVEXT,:) & !O [-] assymetry factor for sea salt ,ZTAUREL_SLT_TMP(IIB:IIE,IJB:IJE,IKB-JPVEXT:IKE-JPVEXT,:) & !O [-] opt.depth(wvl=lambda)/opt.depth(wvl=550nm) ,PAER_SLT(IIB:IIE,IJB:IJE,IKB-JPVEXT:IKE-JPVEXT) & !O [-] optical depth of sea salt at wvl=550nm ,KSWB_OLD & !I |nbr] number of shortwave bands ) - ENDIF ZTAUREL_EQ_TMP(:,:,:,:)=ZTAUREL_DST_TMP(:,:,:,:)+ZTAUREL_AER_TMP(:,:,:,:)+ZTAUREL_SLT_TMP(:,:,:,:) diff --git a/src/MNH/read_all_data_grib_case.f90 b/src/MNH/read_all_data_grib_case.f90 index 8f4e4835a..ade924ead 100644 --- a/src/MNH/read_all_data_grib_case.f90 +++ b/src/MNH/read_all_data_grib_case.f90 @@ -128,6 +128,7 @@ END MODULE MODI_READ_ALL_DATA_GRIB_CASE !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! Pergaud : 2018 add GFS !! 01/2019 (G.Delautier via Q.Rodier) for GRIB2 ARPEGE and AROME from EPYGRAM +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -152,6 +153,7 @@ USE MODI_CH_AER_INIT_SOA USE MODI_INI_CTURB USE MODI_CH_OPEN_INPUT ! +USE MODD_FIELD_n, ONLY: XZWS USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_CONF USE MODD_CONF_n @@ -325,6 +327,7 @@ INTEGER :: IMI TYPE(TFILEDATA),POINTER :: TZFILE INTEGER, DIMENSION(JP_GFS) :: IP_GFS ! list of pressure levels for GFS model INTEGER :: IVERSION,ILEVTYPE +LOGICAL :: GFIND ! to test if sea wave height is found !--------------------------------------------------------------------------------------- IP_GFS=(/1000,975,950,925,900,850,800,750,700,650,600,550,500,450,400,350,300,& 250,200,150,100,70,50,30,20,10/)! @@ -565,6 +568,55 @@ ELSE IF (HFILE=='CHEM') THEN END IF DEALLOCATE (ZOUT) ! +! *** BEGIN MODIF SB ADD HS *** +!--------------------------------------------------------------------------------------- +!* 2.3 bis Read and interpol Sea Wave significant height +!--------------------------------------------------------------------------------------- +WRITE (ILUOUT0,'(A)') ' | Searching sea wave significant height' +SELECT CASE (IMODEL) + CASE(0) ! ECMWF + ALLOCATE (XZWS(IIU,IJU)) + GFIND=.FALSE. + ! + CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=140229) + IF(INUM < 0) THEN + CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=229) + ! + IF(INUM < 0) THEN + WRITE (ILUOUT0,'(A)')' | !!! WARNING !!! Sea wave height is missing in & + the GRIB file - the default value of 2 meters is used' + XZWS = 2.0 + ELSE + GFIND=.TRUE. + END IF + ELSE + GFIND=.TRUE. + END IF + ! + IF(GFIND) THEN + !!!!!!!!!!! Faire en sorte de le faire que pour le CASE(0) + ! Sea wave significant height disponible uniquement pour ECMWF + ! recuperation du tableau de valeurs + CALL GRIB_GET_SIZE(IGRIB(INUM),'values',ISIZE) + ALLOCATE(IINLO(INJ)) + CALL COORDINATE_CONVERSION(IMODEL,IGRIB(INUM),IIU,IJU,ZLONOUT,ZLATOUT,& + ZXOUT,ZYOUT,INI,ZPARAM,IINLO) + ALLOCATE(ZVALUE(ISIZE)) + CALL GRIB_GET(IGRIB(INUM),'values',ZVALUE) + ! Change 9999 value to -1 + WHERE(ZVALUE.EQ.9999.) ZVALUE=0. + ALLOCATE(ZOUT(INO)) + CALL HORIBL(ZPARAM(3),ZPARAM(4),ZPARAM(5),ZPARAM(6),INT(ZPARAM(2)),IINLO,INI, & + ZVALUE,INO,ZXOUT,ZYOUT,ZOUT,.FALSE.,PTIME_HORI,.FALSE.) + DEALLOCATE(IINLO) + DEALLOCATE(ZVALUE) + ! Stores the field in a 2 dimension array + CALL ARRAY_1D_TO_2D (INO,ZOUT,IIU,IJU,XZWS) + DEALLOCATE (ZOUT) + END IF +END SELECT + ! *** END MODIF SB ADD HS *** +! !--------------------------------------------------------------------------------------- !* 2.4 Interpolation surface pressure !--------------------------------------------------------------------------------------- @@ -1882,14 +1934,15 @@ INTEGER :: ILUOUT0 ! Logical unit number of the listing ILUOUT0 = TLUOUT0%NLU ! ISEARCH=0 +! Initialize as not found +KNUM = -1 +! IF (PRESENT(KPARAM)) ISEARCH=ISEARCH+1 IF (PRESENT(KDIS)) ISEARCH=ISEARCH+1 IF (PRESENT(KCAT)) ISEARCH=ISEARCH+1 IF (PRESENT(KNUMBER)) ISEARCH=ISEARCH+1 IF (PRESENT(KLEV1)) ISEARCH=ISEARCH+1 - - - +! DO JLOOP=1,SIZE(KGRIB) IFOUND = 0 ! @@ -1982,16 +2035,15 @@ DO JLOOP=1,SIZE(KGRIB) CYCLE ENDIF ENDIF - ! + ! IF (IFOUND == ISEARCH) THEN KNUM=JLOOP EXIT ELSE ! field not found KNUM=-1 END IF - END DO - +! END SUBROUTINE SEARCH_FIELD !################################################################################# SUBROUTINE COORDINATE_CONVERSION(KMODEL,KGRIB,KNOLON,KNOLARG,& diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90 index e8f0e9d73..83d45636d 100644 --- a/src/MNH/read_exsegn.f90 +++ b/src/MNH/read_exsegn.f90 @@ -291,6 +291,7 @@ END MODULE MODI_READ_EXSEG_n !! Modification 01/2019 (Q. Rodier) define XCEDIS depending on BL89 or RM17 mixing length !! Modification 01/2019 (P. Wautelet) bugs correction: incorrect writes !! Modification 01/2019 (R. Honnert) remove SURF in CMF_UPDRAFT +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !!------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -1739,6 +1740,7 @@ END IF IF (LSALT) THEN IF (OSALT) THEN CGETSVT(NSV_SLTBEG:NSV_SLTEND)='READ' + CGETZWS='READ' ! IF(CCONF=='START') CGETSVT(NSV_SLTBEG:NSV_SLTEND)='INIT' ELSE WRITE(UNIT=ILUOUT,FMT=9001) KMI @@ -1746,6 +1748,7 @@ IF (LSALT) THEN &SCHEME IN INITIAL FMFILE",/,& & "THE SALT VARIABLES HAVE BEEN INITIALIZED TO ZERO ")') CGETSVT(NSV_SLTBEG:NSV_SLTEND)='INIT' + CGETZWS='INIT' END IF IF (LDEPOS_SLT(KMI)) THEN @@ -1770,9 +1773,9 @@ IF (LSALT) THEN CGETSVT(NSV_SLTDEPBEG:NSV_SLTDEPEND)='INIT' END IF END IF - IF(NMODE_SLT.GT.3 .OR. NMODE_SLT.LT.1) THEN + IF(NMODE_SLT.GT.5 .OR. NMODE_SLT.LT.1) THEN WRITE(UNIT=ILUOUT,FMT=9003) KMI - WRITE(UNIT=ILUOUT,FMT='("SALT MODES MUST BE BETWEEN 1 and 3 ")') + WRITE(UNIT=ILUOUT,FMT='("SALT MODES MUST BE BETWEEN 1 and 5 ")') !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF @@ -1806,7 +1809,7 @@ IF (LSALT) THEN IF(.NOT.ALLOCATED(CDESLTNAMES)) THEN ALLOCATE(CDESLTNAMES(NMODE_SLT*2)) DO JMODE=1,NMODE_SLT - IMODEIDX=JPDUSTORDER(JMODE) + IMODEIDX=JPSALTORDER(JMODE) CDESLTNAMES(JMODE) = YPDESLT_INI(IMODEIDX) CDESLTNAMES(NMODE_SLT+JMODE) = YPDESLT_INI(NMODE_SLT+IMODEIDX) ENDDO diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90 index cba6d68cd..15878a3b6 100644 --- a/src/MNH/read_field.f90 +++ b/src/MNH/read_field.f90 @@ -9,7 +9,7 @@ INTERFACE ! SUBROUTINE READ_FIELD(TPINIFILE,KIU,KJU,KKU, & - HGETTKET,HGETRVT,HGETRCT,HGETRRT,HGETRIT,HGETCIT, & + HGETTKET,HGETRVT,HGETRCT,HGETRRT,HGETRIT,HGETCIT,HGETZWS, & HGETRST,HGETRGT,HGETRHT,HGETSVT,HGETSRCT,HGETSIGS,HGETCLDFR, & HGETBL_DEPTH,HGETSBL_DEPTH,HGETPHC,HGETPHR,HUVW_ADV_SCHEME, & HTEMP_SCHEME,KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll, & @@ -17,9 +17,9 @@ INTERFACE KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll, & PUM,PVM,PWM,PDUM,PDVM,PDWM, & PUT,PVT,PWT,PTHT,PPABST,PTKET,PRTKEMS, & - PRT,PSVT,PCIT,PDRYMASST, & + PRT,PSVT,PZWS,PCIT,PDRYMASST, & PSIGS,PSRCT,PCLDFR,PBL_DEPTH,PSBL_DEPTH,PWTHVMF,PPHC,PPHR, & - PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM, & + PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM, PLSZWSM, & PLBXUM,PLBXVM,PLBXWM,PLBXTHM,PLBXTKEM,PLBXRM,PLBXSVM, & PLBYUM,PLBYVM,PLBYWM,PLBYTHM,PLBYTKEM,PLBYRM,PLBYSVM, & KFRC,TPDTFRC,PUFRC,PVFRC,PWFRC,PTHFRC,PRVFRC, & @@ -41,7 +41,7 @@ INTEGER, INTENT(IN) :: KIU, KJU, KKU CHARACTER (LEN=*), INTENT(IN) :: HGETTKET, & HGETRVT,HGETRCT,HGETRRT, & HGETRIT,HGETRST,HGETRGT,HGETRHT, & - HGETCIT,HGETSRCT, & + HGETCIT,HGETSRCT, HGETZWS, & HGETSIGS,HGETCLDFR,HGETBL_DEPTH, & HGETSBL_DEPTH,HGETPHC,HGETPHR CHARACTER (LEN=*), DIMENSION(:),INTENT(IN) :: HGETSVT @@ -72,6 +72,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRTKEMS ! tke adv source REAL, DIMENSION(:,:,:), INTENT(OUT) :: PPABST ! pressure at t REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PRT,PSVT ! moist and scalar ! variables at t +REAL, DIMENSION(:,:), INTENT(OUT) :: PZWS REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCT ! turbulent flux ! <s'Rc'> at t REAL, DIMENSION(:,:,:), INTENT(OUT) :: PCIT ! ice conc. at t @@ -85,6 +86,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PPHR ! pH value in rainwate REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSUM,PLSVM,PLSWM ! Wind REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSTHM, PLSRVM ! Mass ! LB fields +REAL, DIMENSION(:,:), INTENT(OUT) :: PLSZWSM ! significant height of sea waves REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLBXUM,PLBXVM,PLBXWM ! Wind REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLBXTHM ! Mass REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLBYUM,PLBYVM,PLBYWM ! Wind @@ -122,7 +124,7 @@ END MODULE MODI_READ_FIELD ! ! ######################################################################## SUBROUTINE READ_FIELD(TPINIFILE,KIU,KJU,KKU, & - HGETTKET,HGETRVT,HGETRCT,HGETRRT,HGETRIT,HGETCIT, & + HGETTKET,HGETRVT,HGETRCT,HGETRRT,HGETRIT,HGETCIT,HGETZWS, & HGETRST,HGETRGT,HGETRHT,HGETSVT,HGETSRCT,HGETSIGS,HGETCLDFR, & HGETBL_DEPTH,HGETSBL_DEPTH,HGETPHC,HGETPHR,HUVW_ADV_SCHEME, & HTEMP_SCHEME,KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll, & @@ -130,9 +132,9 @@ END MODULE MODI_READ_FIELD KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll, & PUM,PVM,PWM,PDUM,PDVM,PDWM, & PUT,PVT,PWT,PTHT,PPABST,PTKET,PRTKEMS, & - PRT,PSVT,PCIT,PDRYMASST, & + PRT,PSVT,PZWS,PCIT,PDRYMASST, & PSIGS,PSRCT,PCLDFR,PBL_DEPTH,PSBL_DEPTH,PWTHVMF,PPHC,PPHR, & - PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM, & + PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PLSZWSM, & PLBXUM,PLBXVM,PLBXWM,PLBXTHM,PLBXTKEM,PLBXRM,PLBXSVM, & PLBYUM,PLBYVM,PLBYWM,PLBYTHM,PLBYTKEM,PLBYRM,PLBYSVM, & KFRC,TPDTFRC,PUFRC,PVFRC,PWFRC,PTHFRC,PRVFRC, & @@ -236,6 +238,7 @@ END MODULE MODI_READ_FIELD !! V. Vionnet 07/17 add blowing snow scheme !! P. Wautelet 01/2019 corrected intent of PDUM,PDVM,PDWM (OUT->INOUT) ! P. Wautelet 13/02/2019: removed PPABSM and PTSTEP dummy arguments (bugfix: PPABSM was intent(OUT)) +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -296,7 +299,7 @@ INTEGER, INTENT(IN) :: KIU, KJU, KKU CHARACTER (LEN=*), INTENT(IN) :: HGETTKET, & HGETRVT,HGETRCT,HGETRRT, & HGETRIT,HGETRST,HGETRGT,HGETRHT, & - HGETCIT,HGETSRCT, & + HGETCIT,HGETSRCT,HGETZWS, & HGETSIGS,HGETCLDFR,HGETBL_DEPTH, & HGETSBL_DEPTH,HGETPHC,HGETPHR CHARACTER (LEN=*), DIMENSION(:),INTENT(IN) :: HGETSVT @@ -329,6 +332,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRTKEMS ! tke adv source REAL, DIMENSION(:,:,:), INTENT(OUT) :: PPABST ! pressure at t REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PRT,PSVT ! moist and scalar ! variables at t +REAL, DIMENSION(:,:), INTENT(OUT) :: PZWS REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCT ! turbulent flux ! <s'Rc'> at t REAL, DIMENSION(:,:,:), INTENT(OUT) :: PCIT ! ice conc. at t @@ -341,6 +345,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PPHR ! pH value in rainwate ! ! ! Larger Scale fields +REAL, DIMENSION(:,:), INTENT(OUT) :: PLSZWSM ! significant height of sea waves REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSUM,PLSVM,PLSWM ! Wind REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSTHM, PLSRVM ! Mass REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLBXUM,PLBXVM,PLBXWM ! Wind @@ -456,6 +461,13 @@ SELECT CASE(HGETTKET) PRTKEMS(:,:,:) = 0. END SELECT ! +SELECT CASE(HGETZWS) + CASE('READ') + CALL IO_READ_FIELD(TPINIFILE,'ZWS',PZWS) + CASE('INIT') + PZWS(:,:)=0. +END SELECT +! SELECT CASE(HGETRVT) ! vapor CASE('READ') IF (TPINIFILE%NMNHVERSION(1)<5) THEN @@ -1193,7 +1205,7 @@ END IF !* 2.2a 3D LS fields ! ! -CALL INI_LS(TPINIFILE,HGETRVT,GLSOURCE,PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM) +CALL INI_LS(TPINIFILE,HGETRVT,GLSOURCE,PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PLSZWSM) ! ! !* 2.2b 2D "surfacic" LB fields diff --git a/src/MNH/salt_filter.f90 b/src/MNH/salt_filter.f90 index bff76dfe9..bc40e8891 100644 --- a/src/MNH/salt_filter.f90 +++ b/src/MNH/salt_filter.f90 @@ -45,19 +45,8 @@ END MODULE MODI_SALT_FILTER !! MODIFICATIONS !! ------------- !! Original +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !! -! Entry variables: -! -! PRSVS(INOUT) -Array of moments included in PRSVS -! -!************************************************************* -! Exit variables: -! -!************************************************************* -! Variables used during the deposition velocity calculation -! -! ZVGK -Polydisperse settling velocity of the kth moment (m/s) -!************************************************************ !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -66,10 +55,12 @@ END MODULE MODI_SALT_FILTER ! IMPLICIT ARGUMENTS ! USE MODD_SALT -USE MODD_CSTS_SALT -! USE MODE_SALT_PSD -USE MODD_CST, ONLY : XMNH_TINY + +!+ Marine +USE MODI_INIT_SALT +!- Marine + ! IMPLICIT NONE ! @@ -78,27 +69,156 @@ IMPLICIT NONE REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSV REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! -!* 0.2 Declarations of local variables : -! -INTEGER :: JN -INTEGER :: IMODEIDX -REAL, DIMENSION(NMODE_SLT*3) :: ZPMIN -REAL, DIMENSION(NMODE_SLT) :: ZINIRADIUS -REAL, DIMENSION(SIZE(PSV,1), SIZE(PSV,2), SIZE(PSV,3), NMODE_SLT*3) :: ZM ! [aerosol units] local array which goes to output later - -REAL :: ZRGMIN, ZSIGMIN -REAL :: ZRHOP, ZMI -INTEGER,DIMENSION(NMODE_SLT) :: NM0, NM3, NM6 -! -!* 0.3 initialize constant -! -ZRHOP = XDENSITY_SALT -ZMI = XMOLARWEIGHT_SALT ! molecular mass in kg/mol -! +!* 0.2 declarations local variables +! +REAL :: ZRHOI ! [kg/m3] density of aerosol +REAL :: ZMI ! [kg/mol] molar weight of aerosol +REAL :: ZRGMIN ! [um] minimum radius accepted +REAL :: ZSIGMIN ! minimum standard deviation accepted +REAL,DIMENSION(:,:,:,:), ALLOCATABLE :: ZM ! [aerosol units] local array which goes to output later +REAL,DIMENSION(:), ALLOCATABLE :: ZMMIN ! [aerosol units] minimum values for N, sigma, M +INTEGER,DIMENSION(:), ALLOCATABLE :: NM0 ! [idx] index for Mode 0 in passed variables +INTEGER,DIMENSION(:), ALLOCATABLE :: NM3 ! [idx] indexes for Mode 3 in passed variables +INTEGER,DIMENSION(:), ALLOCATABLE :: NM6 ! [idx] indexes for Mode 6 in passed variables +REAL,DIMENSION(:), ALLOCATABLE :: ZINIRADIUS ! initial mean radius +REAL,DIMENSION(:), ALLOCATABLE :: ZINISIGMA ! initial standard deviation +INTEGER :: JN,IMODEIDX,JJ ! [idx] loop counters + !------------------------------------------------------------------------------- +!+ Marine +CALL INIT_SALT +!- Marine + + +ALLOCATE (NM0(NMODE_SLT)) +ALLOCATE (NM3(NMODE_SLT)) +ALLOCATE (NM6(NMODE_SLT)) +ALLOCATE (ZM(SIZE(PSV,1), SIZE(PSV,2), SIZE(PSV,3), NMODE_SLT*3)) +ALLOCATE (ZMMIN(NMODE_SLT*3)) +ALLOCATE (ZINIRADIUS(NMODE_SLT)) +ALLOCATE (ZINISIGMA(NMODE_SLT)) + +PSV(:,:,:,:) = MAX(PSV(:,:,:,:), XMNH_TINY) + +DO JN=1,NMODE_SLT + IMODEIDX = JPSALTORDER(JN) + !Calculations here are for one mode only + ZINISIGMA(JN) = XINISIG_SLT(IMODEIDX) + IF (CRGUNITS=="MASS") THEN + ZINIRADIUS(JN) = XINIRADIUS_SLT(IMODEIDX) * EXP(-3.*(LOG(XINISIG_SLT(IMODEIDX)))**2) + ELSE + ZINIRADIUS(JN) = XINIRADIUS_SLT(IMODEIDX) + END IF + + !Set counter for number, M3 and M6 + NM0(JN) = 1+(JN-1)*3 + NM3(JN) = 2+(JN-1)*3 + NM6(JN) = 3+(JN-1)*3 + !Get minimum values possible + ZMMIN(NM0(JN)) = XN0MIN_SLT(IMODEIDX) + ZRGMIN = ZINIRADIUS(JN) + IF (LVARSIG_SLT) THEN + ZSIGMIN = XSIGMIN_SLT + ELSE + ZSIGMIN = XINISIG_SLT(IMODEIDX) + ENDIF + ZMMIN(NM3(JN)) = ZMMIN(NM0(JN)) * (ZRGMIN**3)*EXP(4.5 * LOG(ZSIGMIN)**2) + ZMMIN(NM6(JN)) = ZMMIN(NM0(JN)) * (ZRGMIN**6)*EXP(18. * LOG(ZSIGMIN)**2) +END DO +! +!Set density of aerosol, here dust (kg/m3) +ZRHOI = XDENSITY_SALT +!Set molecular weight of dust !NOTE THAT THIS IS NOW IN KG +ZMI = XMOLARWEIGHT_SALT +! +DO JN=1,NMODE_SLT + !calculate moment 3 from total aerosol mass (molec_{aer}/molec_{air} ==> + IF (LVARSIG_SLT) THEN + ZM(:,:,:,NM3(JN)) = & + PSV(:,:,:,2+(JN-1)*3) & !molec_{aer}/molec_{aer} + * (ZMI/XMD) & !==>kg_{aer}/kg_{aer} + * PRHODREF(:,:,:) & !==>kg_{aer}/m3_{air} + * (1.d0/ZRHOI) & !==>m3_{aer}/m3_{air} + * XM3TOUM3_SALT & !==>um3_{aer}/m3_{air} + / (XPI * 4./3.) !==>um3_{aer}/m3_{air} (volume ==> 3rd moment) + ELSE + IF ((LRGFIX_SLT)) THEN + ZM(:,:,:,NM3(JN)) = & + PSV(:,:,:,JN) & !molec_{aer}/molec_{aer} + * (ZMI/XMD) & !==>kg_{aer}/kg_{aer} + * PRHODREF(:,:,:) & !==>kg_{aer}/m3_{air} + * (1.d0/ZRHOI) & !==>m3_{aer}/m3_{air} + * XM3TOUM3_SALT & !==>um3_{aer}/m3_{air} + / (XPI * 4./3.) !==>um3_{aer}/m3_{air} (volume ==> 3rd moment) + ELSE + ZM(:,:,:,NM3(JN)) = & + PSV(:,:,:,2+(JN-1)*2) & !molec_{aer}/molec_{aer} + * (ZMI/XMD) & !==>kg_{aer}/kg_{aer} + * PRHODREF(:,:,:) & !==>kg_{aer}/m3_{air} + * (1.d0/ZRHOI) & !==>m3_{aer}/m3_{air} + * XM3TOUM3_SALT & !==>um3_{aer}/m3_{air} + / (XPI * 4./3.) !==>um3_{aer}/m3_{air} (volume ==> 3rd moment) + END IF + END IF + +! calculate moment 0 from dispersion and mean radius + ZM(:,:,:,NM0(JN))= ZM(:,:,:,NM3(JN))/& + ((ZINIRADIUS(JN)**3)*EXP(4.5 * LOG(ZINISIGMA(JN))**2)) + + +! calculate moment 6 from dispersion and mean radius + ZM(:,:,:,NM6(JN)) = ZM(:,:,:,NM0(JN)) * (ZINIRADIUS(JN)**6) * & + EXP(18 *(LOG(ZINISIGMA(JN)))**2) + + IF (LVARSIG_SLT) THEN + WHERE ((ZM(:,:,:,NM0(JN)) .LT. ZMMIN(NM0(JN))).OR.& + (ZM(:,:,:,NM3(JN)) .LT. ZMMIN(NM3(JN))).OR.& + (ZM(:,:,:,NM6(JN)) .LT. ZMMIN(NM6(JN)))) + ZM(:,:,:,NM0(JN)) = ZMMIN(NM0(JN)) + ZM(:,:,:,NM3(JN)) = ZMMIN(NM3(JN)) + ZM(:,:,:,NM6(JN)) = ZMMIN(NM6(JN)) + END WHERE + + ELSE IF (.NOT.(LRGFIX_SLT)) THEN + + WHERE ((ZM(:,:,:,NM0(JN)) .LT. ZMMIN(NM0(JN))).OR.& + (ZM(:,:,:,NM3(JN)) .LT. ZMMIN(NM3(JN)))) + ZM(:,:,:,NM0(JN)) = ZMMIN(NM0(JN)) + ZM(:,:,:,NM3(JN)) = ZMMIN(NM3(JN)) + END WHERE + ENDIF + + ! return to concentration #/m3 => (#/molec_{air} + IF (LVARSIG_SLT) THEN + PSV(:,:,:,1+(JN-1)*3) = ZM(:,:,:,NM0(JN)) * XMD / & + (XAVOGADRO*PRHODREF(:,:,:)) + + PSV(:,:,:,2+(JN-1)*3) = ZM(:,:,:,NM3(JN)) * XMD * XPI * 4./3 * ZRHOI / & + (ZMI*PRHODREF(:,:,:)*XM3TOUM3_SALT) + + PSV(:,:,:,3+(JN-1)*3) = ZM(:,:,:,NM6(JN)) * XMD / & + ( XAVOGADRO*PRHODREF(:,:,:) * 1.d-6) + ELSE IF (LRGFIX_SLT) THEN + PSV(:,:,:,JN) = ZM(:,:,:,NM3(JN)) * XMD * XPI * 4./3. * ZRHOI / & + (ZMI*PRHODREF(:,:,:)*XM3TOUM3_SALT) + ELSE + PSV(:,:,:,1+(JN-1)*2) = ZM(:,:,:,NM0(JN)) * XMD / & + (XAVOGADRO*PRHODREF(:,:,:)) + + PSV(:,:,:,2+(JN-1)*2) = ZM(:,:,:,NM3(JN)) * XMD * XPI * 4./3. * ZRHOI / & + (ZMI*PRHODREF(:,:,:)*XM3TOUM3_SALT) + END IF ! -PSV(:,:,:,:) = MAX(PSV(:,:,:,:), XMNH_TINY) -! +END DO !Loop on modes + +DEALLOCATE(ZINIRADIUS) +DEALLOCATE(ZMMIN) +DEALLOCATE(ZINISIGMA) +DEALLOCATE(ZM) +DEALLOCATE(NM6) +DEALLOCATE(NM3) +DEALLOCATE(NM0) + END SUBROUTINE SALT_FILTER diff --git a/src/MNH/saltlfin.f90 b/src/MNH/saltlfin.f90 index c3a2650b0..3b637b278 100644 --- a/src/MNH/saltlfin.f90 +++ b/src/MNH/saltlfin.f90 @@ -14,10 +14,14 @@ ! INTERFACE ! -SUBROUTINE SALTLFI_n(PSV, PRHODREF) +!++cb++24/10/16 +!SUBROUTINE SALTLFI_n(PSV, PRHODREF) +SUBROUTINE SALTLFI_n(PSV, PRHODREF, PZZ) IMPLICIT NONE -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSV -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF +REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSV +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF +REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ + END SUBROUTINE SALTLFI_n ! END INTERFACE @@ -26,7 +30,8 @@ END MODULE MODI_SALTLFI_n ! ! ! ############################################################ - SUBROUTINE SALTLFI_n(PSV, PRHODREF) +! SUBROUTINE SALTLFI_n(PSV, PRHODREF) + SUBROUTINE SALTLFI_n(PSV, PRHODREF, PZZ) ! ############################################################ ! !! PURPOSE @@ -43,9 +48,9 @@ END MODULE MODI_SALTLFI_n !! !! MODIFICATIONS !! ------------- -!! none -!! !! 2014 P.Tulet modif calcul ZM +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes + !! EXTERNAL !! -------- !! None @@ -57,7 +62,9 @@ END MODULE MODI_SALTLFI_n ! USE MODD_SALT USE MODD_NSV -USE MODD_GRID_n, ONLY: XZZ +!++cb++24/10/16 +!USE MODD_GRID_n, ONLY: XZZ +!--cb-- USE MODD_CSTS_SALT USE MODD_CST, ONLY : & XPI & !Definition of pi @@ -75,6 +82,7 @@ IMPLICIT NONE ! REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSV REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF +REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ ! ! !* 0.2 declarations local variables @@ -88,6 +96,9 @@ REAL,DIMENSION(:), ALLOCATABLE :: ZMMIN REAL,DIMENSION(:), ALLOCATABLE :: ZINIRADIUS, ZINISIGMA REAL,DIMENSION(:,:), ALLOCATABLE :: ZSEA INTEGER :: IKU +!+Marine +INTEGER :: IMOMENTS +!-Marine INTEGER :: JI, JJ, JN, JK ! loop counter INTEGER :: IMODEIDX ! index mode REAL, PARAMETER :: ZN_SALT=0.1 ! particles of sea salt/cm3 {air} @@ -102,6 +113,7 @@ REAL :: ZN_SALTN ! 1.1 initialisation ! IKU=SIZE(PSV,3) +!+ Marine ! ALLOCATE (IM0(NMODE_SLT)) ALLOCATE (IM3(NMODE_SLT)) @@ -115,11 +127,20 @@ ALLOCATE (ZMMIN(NMODE_SLT*3)) ALLOCATE (ZSEA(SIZE(PSV,1), SIZE(PSV,2))) ZSEA(:,:) = 0. -WHERE ((XZZ(:,:,1) .LT. 0.1).AND.(XZZ(:,:,1) .GE. 0.)) +!++cb++20/10/16 +!WHERE ((XZZ(:,:,1) .LT. 0.1).AND.(XZZ(:,:,1) .GE. 0.)) +! ZSEA(:,:) = 1. +!END WHERE +!++cb++24/10/16 +!WHERE (XZZ(:,:,1) .LE. 0.01) +WHERE (PZZ(:,:,1) .LE. 0.01) +!--cb-- ZSEA(:,:) = 1. END WHERE +!--cb-- ! ! +!+ Marine DO JN = 1, NMODE_SLT IM0(JN) = 1+(JN-1)*3 IM3(JN) = 2+(JN-1)*3 @@ -146,8 +167,8 @@ DO JN = 1, NMODE_SLT ENDDO ! ! -ZRHOI = XDENSITY_SALT !1.8e3 !++changed alfgr -!ZMI = XMOLARWEIGHT_SALT*1.D3 !100. !++changed alfgr +!XDENSITY_SALT est fixé dans modd_csts_salt.f90 +ZRHOI = XDENSITY_SALT ZMI = XMOLARWEIGHT_SALT ZDEN2MOL = 1E-6 * XAVOGADRO / XMD ZFAC=(4./3.)*XPI*ZRHOI*1.e-9 @@ -158,18 +179,49 @@ DO JN=1,NMODE_SLT !* 1.1 calculate moment 0 from sea salt number by m3 ! ! initial vertical profil of sea salt and convert in #/m3 - IF (JN == 1) ZN_SALTN = 1E-4 * ZN_SALT *1E6 - IF (JN == 2) ZN_SALTN = 1. * ZN_SALT *1E6 - IF (JN == 3) ZN_SALTN = 10 * ZN_SALT *1E6 - DO JK=1, SIZE(XZZ,3) - DO JJ=1, SIZE(XZZ,2) - DO JI=1, SIZE(XZZ,1) - IF (XZZ(JI,JJ,JK) .LT. 600.) THEN - ZM(JI,JJ,JK,IM0(JN)) = ZN_SALTN - ELSE IF ((XZZ(JI,JJ,JK) .GE. 600.).AND.(XZZ(JI,JJ,JK) .LT. 1000.)) THEN - ZM(JI,JJ,JK,IM0(JN)) = ZN_SALTN - ZN_SALTN*(1.-1E-3)*(XZZ(JI,JJ,JK)-600.) / 400. - ELSE IF (XZZ(JI,JJ,JK) .GE. 1000.) THEN - ZM(JI,JJ,JK,IM0(JN)) = ZN_SALTN *1E-3 +!+Marine : (reprendre XN0MIN_SLT de modd_salt.f90). +! Pas plus simple de fixer une dimension à ZN_SALT qui dépend de JN pour ne pas +! avoir à rappeler le schéma d'émission? + + IF(NMODE_SLT == 5)THEN + + + IF (JN == 1) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT *1E6 + IF (JN == 2) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT *1E6 + IF (JN == 3) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT *1E6 + IF (JN == 4) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT *1E6 + IF (JN == 5) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT *1E6 + + ELSE +! IF (JN == 1) ZN_SALTN = 1E-4 * ZN_SALT *1E6 +! IF (JN == 2) ZN_SALTN = 1. * ZN_SALT *1E6 +! IF (JN == 3) ZN_SALTN = 10 * ZN_SALT *1E6 + + IF (JN == 1) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT *1E6 + IF (JN == 2) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT *1E6 + IF (JN == 3) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT *1E6 + + END IF + + +!-Marine + + DO JK=1, SIZE(PSV,3) + DO JJ=1, SIZE(PSV,2) + DO JI=1, SIZE(PSV,1) +!++cb++24/10/16 +! IF (XZZ(JI,JJ,JK) .LT. 600.) THEN + IF (PZZ(JI,JJ,JK) .LT. 600.) THEN + ZM(JI,JJ,JK,IM0(JN)) = ZN_SALTN +! ELSE IF ((XZZ(JI,JJ,JK) .GE. 600.).AND.(XZZ(JI,JJ,JK) .LT. 1000.)) THEN + ELSE IF ((PZZ(JI,JJ,JK) .GE. 600.).AND.(PZZ(JI,JJ,JK) .LT. 1000.)) THEN +! ZM(JI,JJ,JK,IM0(JN)) = ZN_SALTN - ZN_SALTN*(1.-1E-3)*(XZZ(JI,JJ,JK)-600.) / 400. + ZM(JI,JJ,JK,IM0(JN)) = ZN_SALTN - & + ZN_SALTN * (1.-1E-3) * (PZZ(JI,JJ,JK)-600.) / 400. +! ELSE IF (XZZ(JI,JJ,JK) .GE. 1000.) THEN + ELSE IF (PZZ(JI,JJ,JK) .GE. 1000.) THEN + ZM(JI,JJ,JK,IM0(JN)) = ZN_SALTN * 1E-3 +!--cb-- END IF END DO END DO @@ -179,7 +231,7 @@ DO JN=1,NMODE_SLT END WHERE WHERE ((ZSEA(:,:) .GT. 0.).AND.(ZSEA(:,:) .LT. 1.)) ZM(:,:,JK,IM0(JN)) = ZM(:,:,JK,IM0(JN))-(ZM(:,:,JK,IM0(JN)) -ZN_SALTN *1E-3) * & - (1. - ZSEA(:,:)) + (1. - ZSEA(:,:)) END WHERE END DO @@ -198,12 +250,31 @@ DO JN=1,NMODE_SLT ZM(:,:,:,IM6(JN)) = MAX(ZMMIN(IM6(JN)), ZM(:,:,:,IM6(JN))) ! !* 1.4 output concentration +!+ Marine +! PSV(:,:,:,1+(JN-1)*3) = ZM(:,:,:,IM0(JN)) * XMD / (XAVOGADRO*PRHODREF(:,:,:)) +! PSV(:,:,:,2+(JN-1)*3) = ZM(:,:,:,IM3(JN)) * XMD*XPI * 4./3. / & +! (ZMI*PRHODREF(:,:,:)*(1.d0/ZRHOI)*XM3TOUM3_SALT) +! +! PSV(:,:,:,3+(JN-1)*3) = ZM(:,:,:,IM6(JN)) * XMD / (XAVOGADRO*PRHODREF(:,:,:)*1.d-6) ! - PSV(:,:,:,1+(JN-1)*3) = ZM(:,:,:,IM0(JN)) * XMD / (XAVOGADRO*PRHODREF(:,:,:)) - PSV(:,:,:,2+(JN-1)*3) = ZM(:,:,:,IM3(JN)) * XMD*XPI * 4./3. / & - (ZMI*PRHODREF(:,:,:)*(1.d0/ZRHOI)*XM3TOUM3_SALT) +!++cb++20/10/16 + IMOMENTS = INT(NSV_SLTEND - NSV_SLTBEG + 1) / NMODE_SLT +!--cb-- - PSV(:,:,:,3+(JN-1)*3) = ZM(:,:,:,IM6(JN)) * XMD / (XAVOGADRO*PRHODREF(:,:,:)*1.d-6) + IF (IMOMENTS == 3) THEN + PSV(:,:,:,1+(JN-1)*3) = ZM(:,:,:,IM0(JN)) * XMD / (XAVOGADRO*PRHODREF(:,:,:)) + PSV(:,:,:,2+(JN-1)*3) = ZM(:,:,:,IM3(JN)) * XMD*XPI * 4./3. / & + (ZMI*PRHODREF(:,:,:)*(1.d0/ZRHOI)*XM3TOUM3_SALT) + + PSV(:,:,:,3+(JN-1)*3) = ZM(:,:,:,IM6(JN)) * XMD / (XAVOGADRO*PRHODREF(:,:,:)*1.d-6) + ELSE IF (IMOMENTS == 2) THEN + PSV(:,:,:,1+(JN-1)*2) = ZM(:,:,:,IM0(JN)) * XMD / (XAVOGADRO*PRHODREF(:,:,:)) + PSV(:,:,:,2+(JN-1)*2) = ZM(:,:,:,IM3(JN)) * XMD*XPI * 4./3. / & + (ZMI*PRHODREF(:,:,:)*(1.d0/ZRHOI)*XM3TOUM3_SALT) + ELSE + PSV(:,:,:,JN) = ZM(:,:,:,IM3(JN)) * XMD*XPI * 4./3. / & + (ZMI*PRHODREF(:,:,:)*(1.d0/ZRHOI)*XM3TOUM3_SALT) + END IF ! END DO ! diff --git a/src/MNH/spawn_field2.f90 b/src/MNH/spawn_field2.f90 index b083a03d6..b49d86cc6 100644 --- a/src/MNH/spawn_field2.f90 +++ b/src/MNH/spawn_field2.f90 @@ -9,9 +9,9 @@ MODULE MODI_SPAWN_FIELD2 INTERFACE ! SUBROUTINE SPAWN_FIELD2(KXOR,KYOR,KXEND,KYEND,KDXRATIO,KDYRATIO,HTURB, & - PUT,PVT,PWT,PTHVT,PRT,PHUT,PTKET,PSVT,PATC, & + PUT,PVT,PWT,PTHVT,PRT,PHUT,PTKET,PSVT,PZWS,PATC, & PSRCT,PSIGS, & - PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM, & + PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PLSZWSM, & PDTHFRC,PDRVFRC,PTHREL,PRVREL, & PVU_FLUX_M,PVTH_FLUX_M,PWTH_FLUX_M, & TPSONFILE,KIUSON,KJUSON, & @@ -30,11 +30,13 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PUT,PVT,PWT ! model 2 REAL, DIMENSION(:,:,:), INTENT(OUT) :: PTKET ! variables REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PRT,PSVT,PATC ! at t REAL, DIMENSION(:,:,:), INTENT(OUT) :: PTHVT,PHUT ! +REAL, DIMENSION(:,:), INTENT(OUT) :: PZWS ! REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCT,PSIGS ! secondary ! prognostic variables ! Larger Scale fields for relaxation and diffusion REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSUM, PLSVM, PLSWM +REAL, DIMENSION(:,:), INTENT(OUT) :: PLSZWSM REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSTHM, PLSRVM REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PDTHFRC,PDRVFRC REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PTHREL,PRVREL @@ -55,9 +57,9 @@ END INTERFACE END MODULE MODI_SPAWN_FIELD2 ! ########################################################################## SUBROUTINE SPAWN_FIELD2(KXOR,KYOR,KXEND,KYEND,KDXRATIO,KDYRATIO,HTURB, & - PUT,PVT,PWT,PTHVT,PRT,PHUT,PTKET,PSVT,PATC, & + PUT,PVT,PWT,PTHVT,PRT,PHUT,PTKET,PSVT, PZWS,PATC, & PSRCT,PSIGS, & - PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM, & + PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PLSZWSM, & PDTHFRC,PDRVFRC,PTHREL,PRVREL, & PVU_FLUX_M,PVTH_FLUX_M,PWTH_FLUX_M, & TPSONFILE,KIUSON,KJUSON, & @@ -150,6 +152,7 @@ END MODULE MODI_SPAWN_FIELD2 !! Modification 01/2016 (JP Pinty) Add LIMA !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! Modification 05/03/2018 (J.Escobar) bypass gridnesting special case KD(X/Y)RATIO == 1 not parallelized +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -205,6 +208,7 @@ INTEGER, INTENT(IN) :: KDYRATIO ! between model 2 and model 1 CHARACTER (LEN=4), INTENT(IN) :: HTURB ! Kind of turbulence parameterization ! REAL, DIMENSION(:,:,:), INTENT(OUT) :: PUT,PVT,PWT ! model 2 +REAL, DIMENSION(:,:), INTENT(OUT) :: PZWS REAL, DIMENSION(:,:,:), INTENT(OUT) :: PTKET ! variables REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PRT,PSVT,PATC ! at t REAL, DIMENSION(:,:,:), INTENT(OUT) :: PTHVT,PHUT ! @@ -213,6 +217,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCT,PSIGS ! secondary ! prognostic variables ! Larger Scale fields for relaxation and diffusion REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSUM, PLSVM, PLSWM +REAL, DIMENSION(:,:), INTENT(OUT) :: PLSZWSM REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSTHM, PLSRVM REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PDTHFRC,PDRVFRC REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PTHREL,PRVREL @@ -238,6 +243,7 @@ REAL, DIMENSION(SIZE(XRT1,1),SIZE(XRT1,2),SIZE(XRT1,3)) :: ZHUT ! relative humid REAL, DIMENSION(SIZE(XTHT1,1),SIZE(XTHT1,2),SIZE(XTHT1,3)) :: ZTHVT! virtual pot. T ! (model 1) !$20140708 +REAL, DIMENSION(:,:), ALLOCATABLE :: ZZWS_C, ZLSZWSM_C !$***** 3D REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZUT_C, ZLSUM_C REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZVT_C, ZLSVM_C @@ -261,6 +267,7 @@ INTEGER :: IINFO_ll !$ ! Arrays for reading fields of input SON 1 file REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZWORK3D +REAL, DIMENSION(:,:), ALLOCATABLE :: ZWORK2D REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTHT1,ZTHVT1 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZPABST1,ZHUT1 REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZRT1 @@ -291,6 +298,7 @@ CALL COMPUTE_THV_HU(CONF_MODEL(1)%LUSERV,XRT1,XTHT1,XPABST1,ZTHVT,ZHUT) ! IF (PRESENT(TPSONFILE)) THEN ALLOCATE(ZWORK3D(KIUSON,KJUSON,SIZE(PUT,3))) + ALLOCATE(ZWORK2D(KIUSON,KJUSON)) ALLOCATE(ZPABST1(KIE1-KIB1+1,KJE1-KJB1+1,SIZE(PUT,3))) ALLOCATE(ZTHT1(KIE1-KIB1+1,KJE1-KJB1+1,SIZE(PUT,3))) ALLOCATE(ZTHVT1(KIE1-KIB1+1,KJE1-KJB1+1,SIZE(PUT,3))) @@ -402,6 +410,8 @@ END IF CALL GET_CHILD_DIM_ll(2, IDIMX_C, IDIMY_C, IINFO_ll) ! !$20140708 use ZTHVM_C in BIKAT top cal PTHVM_C + ALLOCATE(ZZWS_C(IDIMX_C,IDIMY_C)) + ALLOCATE(ZLSZWSM_C(IDIMX_C,IDIMY_C)) !$**** 3D ALLOCATE(ZUT_C(IDIMX_C,IDIMY_C,SIZE(PUT,3))) ALLOCATE(ZLSUM_C(IDIMX_C,IDIMY_C,SIZE(PUT,3))) @@ -434,6 +444,8 @@ END IF ZVT_C =0. ZWT_C =0. ZTHVT_C =0. + ZZWS_C =0. + ZLSZWSM_C=0. ZHUT_C =0. ZTKET_C =0. ZSRCT_C =0. @@ -449,6 +461,14 @@ END IF ZRVREL_C=0. ZTHREL_C=00 ! + CALL SET_LSFIELD_1WAY_ll(XZWS1(:,:),ZZWS_C(:,:),2) + CALL SET_LSFIELD_1WAY_ll(XLSZWSM1(:,:),ZLSZWSM_C(:,:),2) + ! + CALL LS_FORCING_ll(2, IINFO_ll, .TRUE.) + CALL GO_TOMODEL_ll(2, IINFO_ll) + CALL GOTO_MODEL(2) + CALL UNSET_LSFIELD_1WAY_ll() + ! !$***** 3D VARS DO JI=1,SIZE(PUT,3) CALL GOTO_MODEL(1) @@ -566,6 +586,21 @@ END IF 2,2,IDIMX_C-1,IDIMY_C-1,KDXRATIO,KDYRATIO,3, & LBC_MODEL(1)%CLBCX,LBC_MODEL(1)%CLBCY,ZLSVM_C,PLSVM) CALL MPPDB_CHECK3D(PLSVM,"SPAWN_FIELD2:PLSVM",PRECISION) + +! Interpolation of the ZWS variable at t +! + CALL BIKHARDT (XBMX1,XBMX2,XBMX3,XBMX4,XBMY1,XBMY2,XBMY3,XBMY4, & + XBFX1,XBFX2,XBFX3,XBFX4,XBFY1,XBFY2,XBFY3,XBFY4, & + 2,2,IDIMX_C-1,IDIMY_C-1,KDXRATIO,KDYRATIO,3, & + LBC_MODEL(1)%CLBCX,LBC_MODEL(1)%CLBCY,ZZWS_C,PZWS) + CALL MPPDB_CHECK2D(PZWS,"SPAWN_FIELD2:PZWS",PRECISION) +! + CALL BIKHARDT (XBMX1,XBMX2,XBMX3,XBMX4,XBMY1,XBMY2,XBMY3,XBMY4, & + XBFX1,XBFX2,XBFX3,XBFX4,XBFY1,XBFY2,XBFY3,XBFY4, & + 2,2,IDIMX_C-1,IDIMY_C-1,KDXRATIO,KDYRATIO,3, & + LBC_MODEL(1)%CLBCX,LBC_MODEL(1)%CLBCY,ZLSZWSM_C,PLSZWSM) + CALL MPPDB_CHECK2D(PLSZWSM,"SPAWN_FIELD2:PLSZWSM",PRECISION) +! ! ! Interpolation of variables at t ! @@ -725,6 +760,8 @@ IF (PRESENT(TPSONFILE)) THEN PVT(KIB2:KIE2,KJB2:KJE2,:) = ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) CALL IO_READ_FIELD(TPSONFILE,'WT',ZWORK3D) ! W wind component at time t PWT(KIB2:KIE2,KJB2:KJE2,:) = ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) + CALL IO_READ_FIELD(TPSONFILE,'ZWS',ZWORK2D) ! + PZWS(KIB2:KIE2,KJB2:KJE2) = ZWORK2D(KIB1:KIE1,KJB1:KJE1) ! ! moist variables ! diff --git a/src/MNH/spawn_lsn.f90 b/src/MNH/spawn_lsn.f90 index 74f43ed3e..b7e8c6605 100644 --- a/src/MNH/spawn_lsn.f90 +++ b/src/MNH/spawn_lsn.f90 @@ -21,9 +21,9 @@ INTERFACE HLBCX,HLBCY,PZZ,PZHAT,OSLEVE,PLEN1,PLEN2, & PCOEFLIN_LBXM, & PLSTHM,PLSRVM, & - PLSUM,PLSVM,PLSWM, & + PLSUM,PLSVM,PLSWM,PLSZWSM, & PLSTHS,PLSRVS, & - PLSUS,PLSVS,PLSWS ) + PLSUS,PLSVS,PLSWS,PLSZWSS ) ! INTEGER, INTENT(IN) :: KDAD ! number of the DAD model REAL, INTENT(IN) :: PTSTEP ! Time step @@ -48,8 +48,11 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PCOEFLIN_LBXM ! coefficient used for ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PLSTHM,PLSRVM ! Large Scale fields at t-dt REAL, DIMENSION(:,:,:), INTENT(IN) :: PLSUM,PLSVM,PLSWM ! Large Scale fields at t-dt +REAL, DIMENSION(:,:), INTENT(IN) :: PLSZWSM ! Large Scale fields at t-dt + REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSTHS,PLSRVS ! Large Scale source terms REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSUS,PLSVS,PLSWS ! Large Scale source terms +REAL, DIMENSION(:,:), INTENT(OUT) :: PLSZWSS ! END SUBROUTINE SPAWN_LS_n ! @@ -65,10 +68,10 @@ END MODULE MODI_SPAWN_LS_n KDXRATIO,KDYRATIO, & HLBCX,HLBCY,PZZ,PZHAT,OSLEVE,PLEN1,PLEN2, & PCOEFLIN_LBXM, & - PLSTHM,PLSRVM, & + PLSTHM,PLSRVM,PLSZWSM, & PLSUM,PLSVM,PLSWM, & PLSTHS,PLSRVS, & - PLSUS,PLSVS,PLSWS ) + PLSUS,PLSVS,PLSWS,PLSZWSS ) ! ################################################################ ! !!**** *SPAWN_LS_n* - Refresh of the Large Scale sources @@ -125,7 +128,7 @@ END MODULE MODI_SPAWN_LS_n !! Original 22/12/97 !! P. Jabouille 19/04/00 parallelisation !! J.Escobar : 18/12/2015 : Correction of bug in bound in // for NHALO <>1 -!! +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -174,8 +177,10 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PCOEFLIN_LBXM ! coefficient used for ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PLSTHM,PLSRVM ! Large Scale fields at t-dt REAL, DIMENSION(:,:,:), INTENT(IN) :: PLSUM,PLSVM,PLSWM ! Large Scale fields at t-dt +REAL, DIMENSION(:,:), INTENT(IN) :: PLSZWSM ! Large Scale fields at t-dt REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSTHS,PLSRVS ! Large Scale source terms REAL, DIMENSION(:,:,:), INTENT(OUT) :: PLSUS,PLSVS,PLSWS ! Large Scale source terms +REAL, DIMENSION(:,:), INTENT(OUT) :: PLSZWSS ! ! !* 0.2 declarations of local variables @@ -202,8 +207,10 @@ TYPE(LIST_ll), POINTER :: TZLSFIELD_ll ! list of metric coefficient fields INTEGER :: IINFO_ll, IDIMX, IDIMY REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTLSUM, ZTLSVM, ZTLSWM, ZTLSTHM, ZTLSRVM REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTZS,ZZS +REAL, DIMENSION(:,:), ALLOCATABLE :: ZTZWS REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTZSMT,ZZSMT REAL, DIMENSION(:,:,:), ALLOCATABLE :: Z1,Z2,Z3,Z4,Z5 +REAL, DIMENSION(:,:), ALLOCATABLE :: Z6 ! !------------------------------------------------------------------------------- ! @@ -235,6 +242,7 @@ ALLOCATE(ZTLSVM(IDIMX,IDIMY,SIZE(PLSVM,3))) ALLOCATE(ZTLSWM(IDIMX,IDIMY,SIZE(PLSWM,3))) ALLOCATE(ZTLSTHM(IDIMX,IDIMY,SIZE(PLSTHM,3))) ALLOCATE(ZTLSRVM(IDIMX,IDIMY,SIZE(PLSRVM,3))) +ALLOCATE(ZTZWS(IDIMX,IDIMY)) ! IF(GVERT_INTERP) THEN ALLOCATE(ZTZS (IDIMX,IDIMY,1)) @@ -250,6 +258,7 @@ ALLOCATE(Z2(SIZE(XLSUM,1),SIZE(XLSUM,2),SIZE(XLSUM,3))) ALLOCATE(Z3(SIZE(XLSUM,1),SIZE(XLSUM,2),SIZE(XLSUM,3))) ALLOCATE(Z4(SIZE(XLSUM,1),SIZE(XLSUM,2),SIZE(XLSUM,3))) ALLOCATE(Z5(SIZE(XLSUM,1),SIZE(XLSUM,2),SIZE(XLSUM,3))) +ALLOCATE(Z6(SIZE(XLSUM,1),SIZE(XLSUM,2))) ! Z1=XLSUM+XLSUS*ZTIME CALL SET_LSFIELD_1WAY_ll(Z1, ZTLSUM, KMI) @@ -263,6 +272,10 @@ IF ( SIZE(PLSRVM,1) /= 0 ) THEN Z5=XLSRVM+XLSRVS*ZTIME CALL SET_LSFIELD_1WAY_ll(Z5, ZTLSRVM, KMI) ENDIF +IF ( SIZE(PLSZWSM,1) /= 0 ) THEN + Z6=XLSZWSM+XLSZWSS*ZTIME + CALL SET_LSFIELD_1WAY_ll(Z6, ZTZWS, KMI) +ENDIF ! IF ( GVERT_INTERP ) THEN CALL SET_LSFIELD_1WAY_ll(ZZS, ZTZS, KMI) @@ -273,7 +286,7 @@ ENDIF ! CALL LS_FORCING_ll(KMI, IINFO_ll) ! -DEALLOCATE(Z1,Z2,Z3,Z4,Z5) +DEALLOCATE(Z1,Z2,Z3,Z4,Z5,Z6) ! ! 1.5 Back to the (current) child model ! @@ -355,6 +368,12 @@ IF ( SIZE(PLSRVM,1) /= 0 ) THEN 2,2,IDIMX-1,IDIMY-1,KDXRATIO,KDYRATIO,1, & HLBCX,HLBCY,ZTLSRVM,PLSRVS(IIB:IIE,IJB:IJE,:)) END IF +IF ( SIZE(PLSZWSM,1) /= 0 ) THEN + CALL BIKHARDT (PBMX1,PBMX2,PBMX3,PBMX4,PBMY1,PBMY2,PBMY3,PBMY4, & + PBFX1,PBFX2,PBFX3,PBFX4,PBFY1,PBFY2,PBFY3,PBFY4, & + 2,2,IDIMX-1,IDIMY-1,KDXRATIO,KDYRATIO,1, & + HLBCX,HLBCY,ZTZWS,PLSZWSS(IIB:IIE,IJB:IJE)) +END IF ! !* 3.2 Vertical linear interpolation on the mass grid ! @@ -384,6 +403,9 @@ PLSTHS(:,:,:) = (PLSTHS(:,:,:) - PLSTHM(:,:,:)) / ZTIME IF ( SIZE(PLSRVM,1) /= 0 ) THEN PLSRVS(:,:,:) = (PLSRVS(:,:,:) - PLSRVM(:,:,:)) / ZTIME END IF +IF ( SIZE(PLSZWSM,1) /= 0 ) THEN + PLSZWSS(:,:) = (PLSZWSS(:,:) - PLSZWSM(:,:)) / ZTIME +END IF ! !------------------------------------------------------------------------------ ! @@ -454,6 +476,7 @@ PLSVS(:,:,:) = (PLSVS(:,:,:) - PLSVM(:,:,:)) / ZTIME ! DEALLOCATE(ZTLSUM,ZTLSVM,ZTLSWM,ZTLSTHM,ZTLSRVM) IF(GVERT_INTERP) DEALLOCATE(ZTZS,ZZS) +DEALLOCATE(ZTLSUM,ZTLSVM,ZTLSWM,ZTLSTHM,ZTLSRVM,ZTZWS) IF(GVERT_INTERP) DEALLOCATE(ZTZSMT,ZZSMT) ! NULLIFY(TZLSFIELD_ll) @@ -462,6 +485,7 @@ CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSVS) CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSWS) CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSTHS) IF(SIZE(PLSRVM) /= 0) CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSRVS) +IF(SIZE(PLSZWSM) /= 0) CALL ADD2DFIELD_ll(TZLSFIELD_ll, PLSZWSS) CALL UPDATE_HALO_ll(TZLSFIELD_ll,IINFO_ll) CALL CLEANLIST_ll(TZLSFIELD_ll) !------------------------------------------------------------------------------ diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90 index d920dbc0c..2811911fc 100644 --- a/src/MNH/spawn_model2.f90 +++ b/src/MNH/spawn_model2.f90 @@ -191,6 +191,7 @@ END MODULE MODI_SPAWN_MODEL2 !! Modification 01/2016 (JP Pinty) Add LIMA !! 10/2016 (C.Lac) Add droplet deposition !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -703,6 +704,8 @@ ALLOCATE(ZJ(IIU,IJU,IKU)) ! !* 4.2 Prognostic (and diagnostic) variables (module MODD_FIELD2) : ! +ALLOCATE(XZWS(IIU,IJU)) +ALLOCATE(XLSZWSM(IIU,IJU)) ALLOCATE(XUT(IIU,IJU,IKU)) ALLOCATE(XVT(IIU,IJU,IKU)) ALLOCATE(XWT(IIU,IJU,IKU)) @@ -1117,18 +1120,18 @@ ALLOCATE(ZHUT(IIU,IJU,IKU)) MPPDB_CHECK_LB = .TRUE. IF (GNOSON) THEN CALL SPAWN_FIELD2 (NXOR,NYOR,NXEND,NYEND,NDXRATIO,NDYRATIO,CTURB, & - XUT,XVT,XWT,ZTHVT,XRT,ZHUT,XTKET,XSVT,XATC, & + XUT,XVT,XWT,ZTHVT,XRT,ZHUT,XTKET,XSVT,XZWS,XATC, & XSRCT,XSIGS, & - XLSUM,XLSVM,XLSWM,XLSTHM,XLSRVM, & + XLSUM,XLSVM,XLSWM,XLSTHM,XLSRVM,XLSZWSM, & XDTHFRC,XDRVFRC,XTHREL,XRVREL, & XVU_FLUX_M,XVTH_FLUX_M,XWTH_FLUX_M ) CALL MPPDB_CHECK3D(XUT,"SPAWN_M2 after SPAWN_FIELD2:XUT",PRECISION) ELSE CALL MPPDB_CHECK3D(XUT,"SPAWN_M2 before SPAWN_FIELD2:XUT",PRECISION) CALL SPAWN_FIELD2 (NXOR,NYOR,NXEND,NYEND,NDXRATIO,NDYRATIO,CTURB, & - XUT,XVT,XWT,ZTHVT,XRT,ZHUT,XTKET,XSVT,XATC, & + XUT,XVT,XWT,ZTHVT,XRT,ZHUT,XTKET,XSVT,XZWS,XATC, & XSRCT,XSIGS, & - XLSUM,XLSVM,XLSWM,XLSTHM,XLSRVM, & + XLSUM,XLSVM,XLSWM,XLSTHM,XLSRVM,XLSZWSM, & XDTHFRC,XDRVFRC,XTHREL,XRVREL, & XVU_FLUX_M, XVTH_FLUX_M,XWTH_FLUX_M, & TZSONFILE,IIUSON,IJUSON, & diff --git a/src/MNH/spawning.f90 b/src/MNH/spawning.f90 index 7ab352665..04eda8bb6 100644 --- a/src/MNH/spawning.f90 +++ b/src/MNH/spawning.f90 @@ -74,6 +74,7 @@ !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! 06/2016 (G.Delautier) phasage surfex 8 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -292,12 +293,14 @@ XRT1 => XRT XUT1 => XUT XVT1 => XVT XWT1 => XWT +XZWS1 => XZWS XSRCT1 => XSRCT XSIGS1 => XSIGS TDTCUR1 => TDTCUR XLSUM1 => XLSUM XLSVM1 => XLSVM XLSWM1 => XLSWM +XLSZWSM1 => XLSZWSM XLSTHM1 => XLSTHM XLSRVM1 => XLSRVM ! diff --git a/src/MNH/write_lbn.f90 b/src/MNH/write_lbn.f90 index b4044c86b..0334fe22c 100644 --- a/src/MNH/write_lbn.f90 +++ b/src/MNH/write_lbn.f90 @@ -76,6 +76,7 @@ END MODULE MODI_WRITE_LB_n !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! J.-P. Pinty 09/02/16 Add LIMA that is LBC for CCN and IFN !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -111,6 +112,8 @@ USE MODI_CH_AER_REALLFI_n USE MODD_CONF USE MODD_REF, ONLY : XRHODREFZ USE MODD_CONF, ONLY : CPROGRAM +USE MODD_GRID_n, ONLY : XZZ +USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT USE MODD_DUST USE MODD_SALT USE MODI_DUSTLFI_n @@ -144,6 +147,12 @@ INTEGER :: JK INTEGER :: JMOM, IMOMENTS, JMODE, ISV_NAME_IDX INTEGER :: IMI ! Current model index CHARACTER(LEN=2) :: INDICE ! to index CCN and IFN fields of LIMA scheme +INTEGER :: I +INTEGER :: ILBX,ILBY +INTEGER :: IIB, IIE, IJB, IJE, IKB, IKE +INTEGER :: IIU, IJU, IKU +REAL, DIMENSION(SIZE(XLBXSVM,1), SIZE(XLBXSVM,2), SIZE(XLBXSVM,3)) :: ZLBXZZ +REAL, DIMENSION(SIZE(XLBYSVM,1), SIZE(XLBYSVM,2), SIZE(XLBYSVM,3)) :: ZLBYZZ CHARACTER(LEN=100) :: YMSG TYPE(TFIELDDATA) :: TZFIELD !------------------------------------------------------------------------------- @@ -154,6 +163,16 @@ TYPE(TFIELDDATA) :: TZFIELD ILUOUT = TLUOUT%NLU ! IMI = GET_CURRENT_MODEL_INDEX() + +IIB=JPHEXT+1 +IIE=SIZE(XZZ,1)-JPHEXT +IIU=SIZE(XZZ,1) +IJB=JPHEXT+1 +IJE=SIZE(XZZ,2)-JPHEXT +IJU=SIZE(XZZ,2) +IKB=JPVEXT+1 +IKE=SIZE(XZZ,3)-JPVEXT +IKU=SIZE(XZZ,3) ! ! 2. WRITE THE DIMENSION OF LB FIELDS ! -------------------------------- @@ -456,7 +475,7 @@ IF (NSV >=1) THEN END IF ! TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'kg kg-1' + TZFIELD%CUNITS = 'ppp' TZFIELD%CDIR = '' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL @@ -664,7 +683,7 @@ IF (NSV >=1) THEN !in the same order as the variables in XSVM (i.e. following JPDUSTORDER) ! TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'kg kg-1' + TZFIELD%CUNITS = 'ppp' TZFIELD%CDIR = '' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL @@ -717,6 +736,19 @@ IF (NSV >=1) THEN DO JK=1,size(XLBYSVM,3) ZRHODREFY(:,:,JK) = XRHODREFZ(JK) ENDDO + IIU = SIZE(XZZ,1) + IJU = SIZE(XZZ,2) + IKU = SIZE(XZZ,3) + IF (SIZE(ZLBXZZ) .NE. 0 ) THEN + ILBX=SIZE(ZLBXZZ,1)/2-1 + ZLBXZZ(1:ILBX+1,:,:) = XZZ(IIB-1:IIB-1+ILBX,:,:) + ZLBXZZ(ILBX+2:2*ILBX+2,:,:) = XZZ(IIE+1-ILBX:IIE+1,:,:) + ENDIF + IF (SIZE(ZLBYZZ) .NE. 0 ) THEN + ILBY=SIZE(ZLBYZZ,2)/2-1 + ZLBYZZ(:,1:ILBY+1,:) = XZZ(:,IJB-1:IJB-1+ILBY,:) + ZLBYZZ(:,ILBY+2:2*ILBY+2,:) = XZZ(:,IJE+1-ILBY:IJE+1,:) + ENDIF IF (NSIZELBXSV_ll /= 0) & XLBXSVM(:,:,:,NSV_SLTBEG:NSV_SLTEND) = MAX(XLBXSVM(:,:,:,NSV_SLTBEG:NSV_SLTEND), 0.) IF (NSIZELBYSV_ll /= 0) & @@ -727,16 +759,16 @@ IF (NSV >=1) THEN XLBYSVM(:,:,:,NSV_SLTDEPBEG:NSV_SLTDEPEND) = MAX(XLBYSVM(:,:,:,NSV_SLTDEPBEG:NSV_SLTDEPEND), 0.) IF ((LSLTINIT).OR.(LSLTPRES)) THEN ! GRIBEX case (dust initialization) IF ((NSIZELBXSV_ll /= 0).AND.(CPROGRAM == 'REAL ').AND.(NSV_SLT > 1)) THEN - CALL SALTLFI_n(XLBXSVM(:,:,:,NSV_SLTBEG:NSV_SLTEND), ZRHODREFX) + CALL SALTLFI_n(XLBXSVM(:,:,:,NSV_SLTBEG:NSV_SLTEND), ZRHODREFX, ZLBXZZ) END IF IF ((NSIZELBYSV_ll /= 0).AND.(CPROGRAM == 'REAL ').AND.(NSV_SLT > 1)) THEN - CALL SALTLFI_n(XLBYSVM(:,:,:,NSV_SLTBEG:NSV_SLTEND), ZRHODREFY) + CALL SALTLFI_n(XLBYSVM(:,:,:,NSV_SLTBEG:NSV_SLTEND), ZRHODREFY, ZLBYZZ) END IF IF ((NSIZELBXSV_ll /= 0).AND.(CPROGRAM == 'IDEAL ').AND.(NSV_SLT > 1)) THEN - CALL SALTLFI_n(XLBXSVM(:,:,:,NSV_SLTBEG:NSV_SLTEND), ZRHODREFX) + CALL SALTLFI_n(XLBXSVM(:,:,:,NSV_SLTBEG:NSV_SLTEND), ZRHODREFX, ZLBXZZ) END IF IF ((NSIZELBYSV_ll /= 0).AND.(CPROGRAM == 'IDEAL ').AND.(NSV_SLT > 1)) THEN - CALL SALTLFI_n(XLBYSVM(:,:,:,NSV_SLTBEG:NSV_SLTEND), ZRHODREFY) + CALL SALTLFI_n(XLBYSVM(:,:,:,NSV_SLTBEG:NSV_SLTEND), ZRHODREFY, ZLBYZZ) END IF END IF ! @@ -810,7 +842,7 @@ IF (NSV >=1) THEN ! We are in the subprogram MESONH, CSALTNAMES are allocated and are !in the same order as the variables in XSVM (i.e. following JPSALTORDER) TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'kg kg-1' + TZFIELD%CUNITS = 'ppp' TZFIELD%CDIR = '' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90 index 188a9f0c6..235aa1ec2 100644 --- a/src/MNH/write_lfifm1_for_diag.f90 +++ b/src/MNH/write_lfifm1_for_diag.f90 @@ -143,6 +143,7 @@ END MODULE MODI_WRITE_LFIFM1_FOR_DIAG !! D.Ricard and P.Marquet 2016-2017 : THETAL + THETAS1 POVOS1 or THETAS2 POVOS2 !! if LMOIST_L LMOIST_S1 or LMOIST_S2 ! P. Wautelet 08/02/2019: minor bug: compute ZWORK36 only when needed +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -430,6 +431,7 @@ CALL IO_WRITE_FIELD(TPFILE,'ZHAT',XZHAT) CALL IO_WRITE_FIELD(TPFILE,'ZTOP',XZTOP) ! CALL IO_WRITE_FIELD(TPFILE,'ZS', XZS) +CALL IO_WRITE_FIELD(TPFILE,'ZWS', XZWS) CALL IO_WRITE_FIELD(TPFILE,'ZSMT', XZSMT) CALL IO_WRITE_FIELD(TPFILE,'SLEVE',LSLEVE) ! @@ -1529,14 +1531,14 @@ IF (LSALT) THEN TZFIELD%LTIMEDEP = .TRUE. ! DO JJ=1,NMODE_SLT - TZFIELD%CMNHNAME = 'SLTRGA' - TZFIELD%CLONGNAME = 'SLTRGA' + WRITE(TZFIELD%CMNHNAME,'(A6,I1)')'SLTRGA',JJ + TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'um' WRITE(TZFIELD%CCOMMENT,'(A18,I1)')'RG (nb) SALT MODE ',JJ CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZRG_SLT(:,:,:,JJ)) ! - TZFIELD%CMNHNAME = 'SLTRGAM' - TZFIELD%CLONGNAME = 'SLTRGAM' + WRITE(TZFIELD%CMNHNAME,'(A7,I1)')'SLTRGAM',JJ + TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'um' WRITE(TZFIELD%CCOMMENT,'(A17,I1)')'RG (m) SALT MODE ',JJ ZWORK31(:,:,:)=ZRG_SLT(:,:,:,JJ) / (EXP(-3.*(LOG(ZSIG_SLT(:,:,:,JJ)))**2)) @@ -1707,14 +1709,14 @@ IF (LDUST) THEN CALL PPP2DUST(XSVT(:,:,:,NSV_DSTBEG:NSV_DSTEND),XRHODREF,& PSIG3D=ZSIG_DST, PRG3D=ZRG_DST, PN3D=ZN0_DST) DO JJ=1,NMODE_DST - TZFIELD%CMNHNAME = 'DSTRGA' - TZFIELD%CLONGNAME = 'DSTRGA' + WRITE(TZFIELD%CMNHNAME,'(A6,I1)')'DSTRGA',JJ + TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'um' WRITE(TZFIELD%CCOMMENT,'(A18,I1)')'RG (nb) DUST MODE ',JJ CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZRG_DST(:,:,:,JJ)) ! - TZFIELD%CMNHNAME = 'DSTRGAM' - TZFIELD%CLONGNAME = 'DSTRGAM' + WRITE(TZFIELD%CMNHNAME,'(A7,I1)')'DSTRGAM',JJ + TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'um' WRITE(TZFIELD%CCOMMENT,'(A17,I1)')'RG (m) DUST MODE ',JJ ZWORK31(:,:,:)=ZRG_DST(:,:,:,JJ) / (EXP(-3.*(LOG(ZSIG_DST(:,:,:,JJ)))**2)) diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90 index 7d7b49854..6b6eb5b18 100644 --- a/src/MNH/write_lfin.f90 +++ b/src/MNH/write_lfin.f90 @@ -170,6 +170,7 @@ END MODULE MODI_WRITE_LFIFM_n !! V. Vionnet 07/2017, add blowing snow variables !! P.Wautelet 11/01/2019: bug correction in write XBL_DEPTH->XSBL_DEPTH !! C.Lac 18/02/2019: add rain fraction as an output field +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -393,6 +394,9 @@ IF (.NOT.LCARTESIAN) THEN END IF ! CALL IO_WRITE_FIELD(TPFILE,'ZS', XZS) +IF(ASSOCIATED(XZWS)) THEN + CALL IO_WRITE_FIELD(TPFILE,'ZWS', XZWS) +END IF CALL IO_WRITE_FIELD(TPFILE,'ZSMT', XZSMT) CALL IO_WRITE_FIELD(TPFILE,'SLEVE',LSLEVE) ! @@ -1249,9 +1253,9 @@ IF (NSV >=1) THEN ! sea salt scalar variables IF (LSALT) THEN IF ((CPROGRAM == 'REAL ').AND.(NSV_SLT > 1).AND.(IMI==1).AND.(LSLTINIT)) & - CALL SALTLFI_n(XSVT(:,:,:,NSV_SLTBEG:NSV_SLTEND), XRHODREF) + CALL SALTLFI_n(XSVT(:,:,:,NSV_SLTBEG:NSV_SLTEND), XRHODREF, XZZ) IF ((CPROGRAM == 'IDEAL ').AND.(NSV_SLT > 1).AND.(IMI==1)) & - CALL SALTLFI_n(XSVT(:,:,:,NSV_SLTBEG:NSV_SLTEND), XRHODREF) + CALL SALTLFI_n(XSVT(:,:,:,NSV_SLTBEG:NSV_SLTEND), XRHODREF, XZZ) !At this point, we have the tracer array in order of importance, i.e. !if mode 2 is most important it will occupy place 1-3 of XSVT IF (((CPROGRAM == 'REAL ').AND.(LSLTINIT)).OR.& diff --git a/src/SURFEX/coupling_seaflux_orogn.F90 b/src/SURFEX/coupling_seaflux_orogn.F90 index 71b257f9f..5d222e848 100644 --- a/src/SURFEX/coupling_seaflux_orogn.F90 +++ b/src/SURFEX/coupling_seaflux_orogn.F90 @@ -11,7 +11,7 @@ SUBROUTINE COUPLING_SEAFLUX_OROG_n (SM, DST, SLT, HPROGRAM, HCOUPLING, PTIMEC, P PSFTS, PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB,& PEMIS, PTSURF, PZ0, PZ0H, PQSURF, PPEW_A_COEF, & PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, & - PPEQ_B_COEF, HTEST ) + PPEQ_B_COEF, PZWS, HTEST ) ! ############################################################################### ! !!**** *COUPLING_SEAFLUX_OROG_n * - Modifies the input forcing if not @@ -38,6 +38,7 @@ SUBROUTINE COUPLING_SEAFLUX_OROG_n (SM, DST, SLT, HPROGRAM, HCOUPLING, PTIMEC, P !! J. Escobar 09/2012 SIZE(PTA) not allowed without-interface , replace by KI !! B. Decharme 04/2013 new coupling variables !! improve forcing vertical shift +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !!------------------------------------------------------------- ! ! @@ -106,6 +107,7 @@ REAL, DIMENSION(KI), INTENT(IN) :: PLW ! longwave radiation (on horizonta ! ! (W/m2) REAL, DIMENSION(KI), INTENT(IN) :: PPS ! pressure at atmospheric model surface (Pa) REAL, DIMENSION(KI), INTENT(IN) :: PPA ! pressure at forcing level (Pa) +REAL, DIMENSION(KI), INTENT(IN) :: PZWS ! significant sea wave (m) REAL, DIMENSION(KI), INTENT(IN) :: PZS ! atmospheric model orography (m) REAL, DIMENSION(KI), INTENT(IN) :: PCO2 ! CO2 concentration in the air (kg/m3) REAL, DIMENSION(KI), INTENT(IN) :: PSNOW ! snow precipitation (kg/m2/s) @@ -204,7 +206,7 @@ ENDIF PSFTS, PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, & PEMIS, PTSURF, PZ0, PZ0H, PQSURF, PPEW_A_COEF, & PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, ZPET_B_COEF, & - ZPEQ_B_COEF, HTEST ) + ZPEQ_B_COEF, PZWS, HTEST ) ! IF (LHOOK) CALL DR_HOOK('COUPLING_SEAFLUX_OROG_N',1,ZHOOK_HANDLE) !------------------------------------------------------------------------------------- diff --git a/src/SURFEX/coupling_seaflux_sbln.F90 b/src/SURFEX/coupling_seaflux_sbln.F90 index 857f16473..53aa72d42 100644 --- a/src/SURFEX/coupling_seaflux_sbln.F90 +++ b/src/SURFEX/coupling_seaflux_sbln.F90 @@ -11,7 +11,7 @@ SUBROUTINE COUPLING_SEAFLUX_SBL_n (CHS, DTS, DGS, O, OR, G, S, SB, DST, SLT, PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, & PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, PZ0, PZ0H, PQSURF, & PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, & - PPEQ_B_COEF, HTEST ) + PPEQ_B_COEF, PZWS, HTEST ) ! ############################################################################### ! !!**** *COUPLING_SEAFLUX_SBL_n * - Adds a SBL into SEAFLUX @@ -38,6 +38,7 @@ SUBROUTINE COUPLING_SEAFLUX_SBL_n (CHS, DTS, DGS, O, OR, G, S, SB, DST, SLT, !! S. Riette 10/2009 Iterative computation of XZ0 !! S. Riette 01/2010 Use of interpol_sbl to compute 10m wind diagnostic !! B. Decharme 04/2013 new coupling variables +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !---------------------------------------------------------------- ! ! @@ -122,6 +123,7 @@ REAL, DIMENSION(KI), INTENT(IN) :: PLW ! longwave radiation (on horizonta ! ! (W/m2) REAL, DIMENSION(KI), INTENT(IN) :: PPS ! pressure at atmospheric model surface (Pa) REAL, DIMENSION(KI), INTENT(IN) :: PPA ! pressure at forcing level (Pa) +REAL, DIMENSION(KI), INTENT(IN) :: PZWS ! significant sea wave (m) REAL, DIMENSION(KI), INTENT(IN) :: PCO2 ! CO2 concentration in the air (kg/m3) REAL, DIMENSION(KI), INTENT(IN) :: PSNOW ! snow precipitation (kg/m2/s) REAL, DIMENSION(KI), INTENT(IN) :: PRAIN ! liquid precipitation (kg/m2/s) @@ -302,7 +304,7 @@ END IF PSV, PCO2, HSV, PRAIN, PSNOW, PLW, PDIR_SW, PSCA_SW, PSW_BANDS, PPS, ZPA,& PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, & PEMIS, PTSURF, PZ0, PZ0H, PQSURF, ZPEW_A_COEF, ZPEW_B_COEF, & - ZPET_A_COEF, ZPEQ_A_COEF, ZPET_B_COEF, ZPEQ_B_COEF, HTEST) + ZPET_A_COEF, ZPEQ_A_COEF, ZPET_B_COEF, ZPEQ_B_COEF, PZWS, HTEST) ! !------------------------------------------------------------------------------------- ! diff --git a/src/SURFEX/coupling_seafluxn.F90 b/src/SURFEX/coupling_seafluxn.F90 index 5ea7b516c..f7fc56d80 100644 --- a/src/SURFEX/coupling_seafluxn.F90 +++ b/src/SURFEX/coupling_seafluxn.F90 @@ -10,7 +10,7 @@ SUBROUTINE COUPLING_SEAFLUX_n (CHS, DTS, DGS, O, OR, G, S, DST, SLT, & PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, PSFTQ, PSFTH, PSFTS, & PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, & PZ0, PZ0H, PQSURF, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, & - PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, HTEST ) + PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, PZWS, HTEST ) ! ############################################################################### ! !!**** *COUPLING_SEAFLUX_n * - Driver of the WATER_FLUX scheme for sea @@ -49,6 +49,7 @@ SUBROUTINE COUPLING_SEAFLUX_n (CHS, DTS, DGS, O, OR, G, S, DST, SLT, & !! Modified 01/2015 : R. Séférian interactive ocaen surface albedo !! Modified 03/2014 : M.N. Bouin possibility of wave parameters from external source !! Modified 11/2014 : J. Pianezze : add currents for wave coupling +!! Modified 02/2019 : S. Bielli Sea salt : significant sea wave height influences salt emission; 5 salt modes !! !!--------------------------------------------------------------------- ! @@ -157,6 +158,7 @@ REAL, DIMENSION(KI), INTENT(IN) :: PLW ! longwave radiation (on horizonta ! ! (W/m2) REAL, DIMENSION(KI), INTENT(IN) :: PPS ! pressure at atmospheric model surface (Pa) REAL, DIMENSION(KI), INTENT(IN) :: PPA ! pressure at forcing level (Pa) +REAL, DIMENSION(KI), INTENT(IN) :: PZWS ! significant sea wave (m) REAL, DIMENSION(KI), INTENT(IN) :: PCO2 ! CO2 concentration in the air (kg/m3) REAL, DIMENSION(KI), INTENT(IN) :: PSNOW ! snow precipitation (kg/m2/s) REAL, DIMENSION(KI), INTENT(IN) :: PRAIN ! liquid precipitation (kg/m2/s) @@ -232,6 +234,8 @@ REAL, DIMENSION(KI) :: ZHU ! Near surface relative humidity REAL, DIMENSION(KI) :: ZQA ! specific humidity (kg/kg) REAL, DIMENSION(KI) :: ZEMIS ! Emissivity at time t REAL, DIMENSION(KI) :: ZTRAD ! Radiative temperature at time t +REAL, DIMENSION(KI) :: ZHS ! significant wave height +REAL, DIMENSION(KI) :: ZTP ! peak period ! REAL, DIMENSION(KI) :: ZSST ! XSST corrected for anomalously low values (which actually are sea-ice temp) REAL, DIMENSION(KI) :: ZMASK ! A mask for diagnosing where seaice exists (or, for coupling_iceflux, may appear) @@ -245,14 +249,17 @@ INTEGER :: ISIZE_ICE ! number of points with some se ! INTEGER :: ISWB ! number of shortwave spectral bands INTEGER :: JSWB ! loop counter on shortwave spectral bands -INTEGER :: ISLT ! number of sea salt variable ! INTEGER :: IBEG, IEND +INTEGER :: ISLT, IDST, JSV, IMOMENT ! number of sea salt, dust variables +! +INTEGER :: ILUOUT ! REAL(KIND=JPRB) :: ZHOOK_HANDLE !------------------------------------------------------------------------------------- ! Preliminaries: !------------------------------------------------------------------------------------- +CALL GET_LUOUT(HPROGRAM,ILUOUT) IF (LHOOK) CALL DR_HOOK('COUPLING_SEAFLUX_N',0,ZHOOK_HANDLE) IF (HTEST/='OK') THEN CALL ABOR1_SFX('COUPLING_SEAFLUXN: FATAL ERROR DURING ARGUMENT TRANSFER') @@ -277,6 +284,8 @@ ZUSTAR (:) = XUNDEF ZZ0 (:) = XUNDEF ZZ0H (:) = XUNDEF ZQSAT (:) = XUNDEF +ZHS (:) = XUNDEF +ZTP (:) = XUNDEF ! ZSFTQ_ICE(:) = XUNDEF ZSFTH_ICE(:) = XUNDEF @@ -317,6 +326,24 @@ PSFTS(:,:) = 0. ZHU = 1. ! ZQA(:) = PQA(:) / PRHOA(:) + +! HS value from ECMWF file +ZHS(:) = PZWS(:) +#ifdef CPLOASIS +! HS value from WW3 if activated +IF (LCPL_WAVE) THEN + ZHS(:)=S%XHS(:) + ZTP(:)=S%XTP(:) +ELSE + ZHS(:)=PZWS(:) + ZTP(:)=S%XTP(:) +END IF +#endif +! if HS value is undef : constant value and alert message +IF (ALL(ZHS==XUNDEF)) THEN + ZHS(:)=2. + WRITE (ILUOUT,*) 'WARNING : no HS values from ECMWF or WW3, then it is initialized to a constant value of 2 m' +END IF ! ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ! Time evolution @@ -374,8 +401,16 @@ CALL COARE30_SEAFLUX(S, ZMASK, ISIZE_WATER, ISIZE_ICE, & PTA, ZEXNA ,PRHOA, ZSST, ZEXNS, ZQA, PRAIN, & PSNOW, ZWIND, PZREF, PUREF, PPS, ZQSAT, & ZSFTH, ZSFTQ, ZUSTAR, & - ZCD, ZCDN, ZCH, ZCE, ZRI, ZRESA_SEA, ZZ0H ) + ZCD, ZCDN, ZCH, ZCE, ZRI, ZRESA_SEA, ZZ0H ) END SELECT + +#ifdef CPLOASIS +IF (.NOT. LCPL_WAVE) THEN + S%XHS(:)=ZHS(:) + S%XTP(:)=ZTP(:) +END IF +#endif + ! !------------------------------------------------------------------------------------- !radiative properties at time t @@ -442,7 +477,7 @@ PSFCO2(:) = - ZWIND(:)**2 * 1.13E-3 * 8.7 * 44.E-3 / ( 365*24*3600 ) ! Scalar fluxes: !------------------------------------------------------------------------------------- ! -IF (CHS%SVS%NBEQ>0) THEN +IF (CHS%SVS%NBEQ>0.AND.(KI.GT.0)) THEN ! IF (CHS%CCH_DRY_DEP == "WES89") THEN ! @@ -475,7 +510,7 @@ IF (CHS%SVS%NBEQ>0) THEN ! ENDIF ! -IF (CHS%SVS%NDSTEQ>0) THEN +IF (CHS%SVS%NDSTEQ>0.AND.(KI.GT.0)) THEN ! IBEG = CHS%SVS%NSV_DSTBEG IEND = CHS%SVS%NSV_DSTEND @@ -499,7 +534,7 @@ IF (CHS%SVS%NDSTEQ>0) THEN ENDIF ! -IF (CHS%SVS%NSLTEQ>0) THEN +IF (CHS%SVS%NSLTEQ>0.AND.(KI.GT.0)) THEN ! IBEG = CHS%SVS%NSV_SLTBEG IEND = CHS%SVS%NSV_SLTEND @@ -510,6 +545,9 @@ IF (CHS%SVS%NSLTEQ>0) THEN SIZE(ZUSTAR,1), & !I [nbr] number of sea point ISLT, & !I [nbr] number of sea salt variables ZWIND, & !I [m/s] wind velocity + ZHS, & !I [m] significant sea wave + S%XSST, & + ZUSTAR, & PSFTS(:,IBEG:IEND) ) ! CALL DSLT_DEP(PSV(:,IBEG:IEND), PSFTS(:,IBEG:IEND), ZUSTAR, ZRESA_SEA, PTA, & @@ -517,11 +555,11 @@ IF (CHS%SVS%NSLTEQ>0) THEN XDENSITY_SLT, XMOLARWEIGHT_SLT, ZCONVERTFACM0_SLT, ZCONVERTFACM6_SLT, & ZCONVERTFACM3_SLT, LVARSIG_SLT, LRGFIX_SLT, CVERMOD ) ! - CALL MASSFLUX2MOMENTFLUX( & - PSFTS(:,IBEG:IEND), & !I/O ![kg/m2/sec] In: flux of only mass, out: flux of moments + CALL MASSFLUX2MOMENTFLUX( & + PSFTS(:,IBEG:IEND), & !I/O [kg/m2/sec] In: flux of only mass, out: flux of moments PRHOA, & !I [kg/m3] air density - SLT%XEMISRADIUS_SLT, &!I [um] emitted radius for the modes (max 3) - SLT%XEMISSIG_SLT, &!I [-] emitted sigma for the different modes (max 3) + SLT%XEMISRADIUS_SLT, & !I [um] emitted radius for the modes (max 3) + SLT%XEMISSIG_SLT, & !I [-] emitted sigma for the different modes (max 3) NSLTMDE, & ZCONVERTFACM0_SLT, & ZCONVERTFACM6_SLT, & diff --git a/src/SURFEX/coupling_sean.F90 b/src/SURFEX/coupling_sean.F90 index 97a8b1f7c..ca4ae2081 100644 --- a/src/SURFEX/coupling_sean.F90 +++ b/src/SURFEX/coupling_sean.F90 @@ -10,7 +10,7 @@ SUBROUTINE COUPLING_SEA_n (SM, DGO, DL, DLC, U, DST, SLT, HPROGRAM, HCOUPLING, P PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, & PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, PZ0, PZ0H, PQSURF, & PPEW_A_COEF, PPEW_B_COEF, & - PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, HTEST ) + PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, PZWS, HTEST ) ! ############################################################################### ! !!**** *COUPLING_SEA_n * - Chooses the surface schemes for sea @@ -33,6 +33,7 @@ SUBROUTINE COUPLING_SEA_n (SM, DGO, DL, DLC, U, DST, SLT, HPROGRAM, HCOUPLING, P !! ------------- !! Original 01/2004 !! B. Decharme 04/2013 new coupling variables +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !!----------------------------------------------------------------------- ! ! @@ -104,6 +105,7 @@ REAL, DIMENSION(KI), INTENT(IN) :: PLW ! longwave radiation (on horizonta ! ! (W/m2) REAL, DIMENSION(KI), INTENT(IN) :: PPS ! pressure at atmospheric model surface (Pa) REAL, DIMENSION(KI), INTENT(IN) :: PPA ! pressure at forcing level (Pa) +REAL, DIMENSION(KI), INTENT(IN) :: PZWS ! significant sea wave (m) REAL, DIMENSION(KI), INTENT(IN) :: PZS ! atmospheric model orography (m) REAL, DIMENSION(KI), INTENT(IN) :: PCO2 ! CO2 concentration in the air (kg/m3) REAL, DIMENSION(KI), INTENT(IN) :: PSNOW ! snow precipitation (kg/m2/s) @@ -150,7 +152,7 @@ IF (U%CSEA=='SEAFLX') THEN PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, & PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, PZ0, PZ0H, PQSURF, & PPEW_A_COEF, PPEW_B_COEF, & - PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, HTEST ) + PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, PZWS, HTEST ) ELSE IF (U%CSEA=='FLUX ') THEN CALL COUPLING_IDEAL_FLUX(DGO, DL, DLC, HPROGRAM, HCOUPLING, PTIMEC, & PTSTEP, KYEAR, KMONTH, KDAY, PTIME, KI, KSV, KSW, & diff --git a/src/SURFEX/coupling_sltn.F90 b/src/SURFEX/coupling_sltn.F90 index 7e66f3fa5..284fc0935 100644 --- a/src/SURFEX/coupling_sltn.F90 +++ b/src/SURFEX/coupling_sltn.F90 @@ -3,16 +3,26 @@ !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. SUBROUTINE COUPLING_SLT_n (SLT, & - KI, &!I [nbr] number of sea points - KSLT, &!I [nbr] number of sea points - PWIND, &!I Wind velocity - PSFSLT &!O [kg/m2/sec] flux of sea salt + KI, &!I [nbr] number of sea points + KSLT, &!I [nbr] number of sea salt variables + PWIND, &!I Wind velocity +! ++ PIERRE / MARINE SSA - MODIF ++ + PWHEIGHT, &! Significant height of wind-generated waves (in ECMWF analyses) + ! local pour l'instant, PWHEIGHT plus tard + PSST, &! Sea water temperature (C) + PUSTAR, &! Friction velocity (ecmwf?) Calcule dans coupling_seafluxn.F90 +! -- PIERRE / MARINE SSA - MODIF -- + PSFSLT &!O [kg/m2/sec] production flux of sea salt ) !PURPOSE !------- ! Compute sea salt emission upon Vignatti et al, 2001 +! ++ PIERRE / MARINE SSA - MODIF ++ +! Compute sea salt emission upon Ovadnevaite et al, 2014 +! -- PIERRE / MARINE SSA - MODIF -- ! +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !AUTHOR !------- ! P. Tulet @@ -35,45 +45,64 @@ TYPE(SLT_t), INTENT(INOUT) :: SLT INTEGER, INTENT(IN) :: KI !I Number of sea points INTEGER, INTENT(IN) :: KSLT !I Number of sea salt emission variables REAL, DIMENSION(KI), INTENT(IN) :: PWIND !I wind velocity -REAL, DIMENSION(KI,KSLT), INTENT(OUT) :: PSFSLT !Out: mole particles per mole air m/s *(MWdst/MWair*rhoair)(index #1) - !Out: kg/m2/s (index #2) - !Out: moles m6/moles air m/s *(MWdst/MWair*rhoair)(index #3) +REAL, DIMENSION(KI,KSLT), INTENT(OUT) :: PSFSLT !Out: kg/m2/s (index #2) +! ++ PIERRE / MARINE SSA - MODIF ++ +REAL, DIMENSION(KI), INTENT(INOUT) :: PWHEIGHT !Significant height of wind-generated waves (in ECMWF analyses) +REAL, DIMENSION(KI), INTENT(IN) :: PUSTAR !Friction velocity (ecmwf?) : Unite: m.s^(-2)? +REAL, DIMENSION(KI), INTENT(IN) :: PSST ! Sea surface temperature (K) +! -- PIERRE / MARINE SSA - MODIF -- + !LOCAL VARIABLES -REAL,DIMENSION(KI,3) :: ZSFSLT_MDE ! sea salt flux from modes -INTEGER :: JN, JI !Counter for sea salt modes -REAL, DIMENSION(KI) :: DZSPEED -INTEGER, DIMENSION(KI):: WCL -REAL :: ZCONVERTFACM0_SLT -REAL :: ZCONVERTFACM3_SLT -REAL :: ZCONVERTFACM6_SLT -! -!REAL, PARAMETER :: MASS1FLUX(0:40) = (/ & -! 0.000E+00, 2.483E-15, 2.591E-14, 1.022E-13, 2.707E-13, 5.761E-13, & -! 1.068E-12, 1.800E-12, 2.829E-12, 4.215E-12, 6.023E-12, 8.317E-12, & -! 1.117E-11, 1.464E-11, 1.882E-11, 2.378E-11, 2.959E-11, 3.633E-11, & -! 4.409E-11, 5.296E-11, 6.301E-11, 7.433E-11, 8.693E-11, 1.012E-10, & -! 1.168E-10, 1.342E-10, 1.532E-10, 1.741E-10, 1.970E-10, 2.219E-10, & -! 2.489E-10, 2.781E-10, 3.097E-10, 3.437E-10, 3.803E-10, 4.195E-10, & -! 4.616E-10, 5.065E-10, 5.544E-10, 6.054E-10, 6.711E-10 /) -! -!REAL, PARAMETER :: MASS2FLUX(0:40) = (/ & -! 0.000E+00, 2.319E-13, 2.411E-12, 9.481E-12, 2.505E-11, 5.321E-11, & -! 9.850E-11, 1.658E-10, 2.602E-10, 3.874E-10, 5.529E-10, 7.628E-10, & -! 1.023E-09, 1.341E-09, 1.722E-09, 2.175E-09, 2.704E-09, 3.319E-09, & -! 4.026E-09, 4.832E-09, 5.746E-09, 6.776E-09, 7.925E-09, 9.214E-09, & -! 1.064E-08, 1.221E-08, 1.394E-08, 1.584E-08, 1.791E-08, 2.016E-08, & -! 2.261E-08, 2.526E-08, 2.812E-08, 3.120E-08, 3.451E-08, 3.806E-08, & -! 4.186E-08, 4.592E-08, 5.025E-08, 5.486E-08, 6.014E-08 /) -! -!REAL, PARAMETER :: MASS3FLUX(0:40) = (/ 0.0, & -! 1.783E-12, 1.579E-11, 5.852E-11, 1.501E-10, 3.134E-10, 5.740E-10, & -! 9.597E-10, 1.500E-09, 2.227E-09, 3.175E-09, 4.378E-09, 5.872E-09, & -! 7.698E-09, 9.897E-09, 1.250E-08, 1.556E-08, 1.912E-08, 2.323E-08, & -! 2.792E-08, 3.325E-08, 3.927E-08, 4.608E-08, 5.356E-08, 6.194E-08, & +REAL,DIMENSION(KI,JPMODE_SLT) :: ZSFSLT_MDE ! sea salt flux from modes +INTEGER :: JN, JI, II !Counter for sea salt modes +REAL, DIMENSION(KI) :: DZSPEED +INTEGER, DIMENSION(KI) :: WCL +REAL :: ZCONVERTFACM0_SLT ![kg/mole*mole/molec] conversion factor + !for moment fluxes and used fluxes +REAL :: ZCONVERTFACM3_SLT +REAL :: ZCONVERTFACM6_SLT +! +! ++ PIERRE / MARINE SSA - MODIF ++ + +REAL, DIMENSION(5) :: ZNUWATER ! Temperature-dependant kinematic viscosity of + ! sea-water (table of data to interpolate) (m².s-¹) +REAL, DIMENSION(5) :: ZWT ! Sea water temperature in table +REAL, DIMENSION(KI) :: ZREYNOLDS ! Reynolds Number +REAL, DIMENSION(KI) :: ZHVAGUE ! sea wave height from wind if ZWS is unknown. +REAL, DIMENSION(KI) :: ZVISCO ! Temperature-dependant kinematic viscosity + ! of sea-water interpolated +! -- PIERRE / MARINE SSA - MODIF -- +! +!REAL, PARAMETER :: mass1flux(0:40) = (/ & +! 0.000E+00, 2.483E-15, 2.591E-14, 1.022E-13, 2.707E-13, 5.761E-13, & +! 1.068E-12, 1.800E-12, 2.829E-12, 4.215E-12, 6.023E-12, 8.317E-12, & +! 1.117E-11, 1.464E-11, 1.882E-11, 2.378E-11, 2.959E-11, 3.633E-11, & +! 4.409E-11, 5.296E-11, 6.301E-11, 7.433E-11, 8.693E-11, 1.012E-10, & +! 1.168E-10, 1.342E-10, 1.532E-10, 1.741E-10, 1.970E-10, 2.219E-10, & +! 2.489E-10, 2.781E-10, 3.097E-10, 3.437E-10, 3.803E-10, 4.195E-10, & +! 4.616E-10, 5.065E-10, 5.544E-10, 6.054E-10, 6.711E-10 /) + +!REAL, PARAMETER :: mass2flux(0:40) = (/ & +! 0.000E+00, 2.319E-13, 2.411E-12, 9.481E-12, 2.505E-11, 5.321E-11, & +! 9.850E-11, 1.658E-10, 2.602E-10, 3.874E-10, 5.529E-10, 7.628E-10, & +! 1.023E-09, 1.341E-09, 1.722E-09, 2.175E-09, 2.704E-09, 3.319E-09, & +! 4.026E-09, 4.832E-09, 5.746E-09, 6.776E-09, 7.925E-09, 9.214E-09, & +! 1.064E-08, 1.221E-08, 1.394E-08, 1.584E-08, 1.791E-08, 2.016E-08, & +! 2.261E-08, 2.526E-08, 2.812E-08, 3.120E-08, 3.451E-08, 3.806E-08, & +! 4.186E-08, 4.592E-08, 5.025E-08, 5.486E-08, 6.014E-08 /) + +!REAL, PARAMETER :: mass3flux(0:40) = (/ 0.0, & +! 1.783E-12, 1.579E-11, 5.852E-11, 1.501E-10, 3.134E-10, 5.740E-10, & +! 9.597E-10, 1.500E-09, 2.227E-09, 3.175E-09, 4.378E-09, 5.872E-09, & +! 7.698E-09, 9.897E-09, 1.250E-08, 1.556E-08, 1.912E-08, 2.323E-08, & +! 2.792E-08, 3.325E-08, 3.927E-08, 4.608E-08, 5.356E-08, 6.194E-08, & ! 7.121E-08, 8.143E-08, 9.266E-08, 1.049E-07, 1.183E-07, 1.329E-07, & ! 1.487E-07, 1.658E-07, 1.843E-07, 2.041E-07, 2.255E-07, 2.484E-07, & ! 2.729E-07, 2.991E-07, 3.270E-07, 3.517E-07 /) +REAL, PARAMETER :: HVAGUE(1:9) = (/ 0., 0.1, 0.5, 1.25, 2.5, 4., 6., 9., 14. /) +REAL, PARAMETER :: VVENT(1:9) = (/ 1., 2.7, 4.1, 6.3, 8.3, 11.1, 13.8, & + 16.6, 19.4/) REAL, PARAMETER :: NUMB1FLUX(0:40) = (/ & 0.000E+00, 3.004E+01, 3.245E+02, 1.306E+03, 3.505E+03, 7.542E+03, & @@ -107,7 +136,7 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE !! M0=#/molec_{air} !! M6=um6/molec_{air}*1.d6 !! The surface model should have (for sea salt) -!! M0=#/m3*[kg_{dst}/mole_{dst}/XAVOGADRO] +!! M0=#/m3*[kg_{slt}/mole_{slt}/XAVOGADRO] !! M3=kg/m3 !! M6=um6/m3 !! REFERENCE @@ -119,71 +148,175 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE IF (LHOOK) CALL DR_HOOK('COUPLING_SLT_N',0,ZHOOK_HANDLE) ! !Factor which is needed so that all gains normal units when leaving ground paramn -ZCONVERTFACM0_SLT = XMOLARWEIGHT_SLT / XAVOGADRO !(kg_dst/mol_dst)/(molec/mol) +ZCONVERTFACM0_SLT = XMOLARWEIGHT_SLT / XAVOGADRO !(kg_slt/mol_slt)/(molec/mol) !Factor which is needed for moment 6, there is a factor 1.d6 transported around in M6 in MESONH ZCONVERTFACM6_SLT = XMOLARWEIGHT_SLT / XAVOGADRO*1.d6 ZCONVERTFACM3_SLT = 4./3.*XPI*XDENSITY_SLT / 1.d18 ! PSFSLT(:,:)=0.d0 ! -IF (CEMISPARAM_SLT.eq."Vig01")THEN - ! - ! Vignatti et al. 2001 (in particles.cm-2.s-1) - ZSFSLT_MDE(:,1) = 10**(0.09 *PWIND(:) + 0.283) ! fine mode - ZSFSLT_MDE(:,2) = 10**(0.0422*PWIND(:) + 0.288) ! median mode - ZSFSLT_MDE(:,3) = 10**(0.069 *PWIND(:) - 3.5) ! coarse mode - ! convert into particles.m-2.s-1) - ZSFSLT_MDE(:,1) = MAX(ZSFSLT_MDE(:,1) * 1E4, 1E-10) - ZSFSLT_MDE(:,2) = MAX(ZSFSLT_MDE(:,2) * 1E4, 1E-10) - ZSFSLT_MDE(:,3) = MAX(ZSFSLT_MDE(:,3) * 1E4, 1E-10) - ! -ELSE ! Use Schultz et al., 2004 - ! +!+ Marine +IF (CEMISPARAM_SLT .eq. "Ova14") THEN ! Rajouter Ova14 dans fichier initialisation + ZHVAGUE(:) = 0. + DO II = 1, 8 +!++cb++19/10/16 modif de la formule : + de vent => vagues + hautes +! WHERE ((PWIND(:) .GT. VVENT(II)).AND.(PWIND(:) .LT. VVENT(II+1))) + WHERE ((PWIND(:) .GT. VVENT(II)).AND.(PWIND(:) .LT. VVENT(II+1))) +! ZHVAGUE(:) = HVAGUE(II) + (VVENT(II+1) - PWIND(:)) * & + ZHVAGUE(:) = HVAGUE(II) + (PWIND(:) - VVENT(II+1)) * & + (HVAGUE(II+1) - HVAGUE(II)) / & + (VVENT(II+1) - VVENT(II)) +!--cb-- + ENDWHERE + ENDDO + + WHERE (PWIND(:) .GE. VVENT(9)) + ZHVAGUE(:) = HVAGUE(9) + END WHERE + + WHERE (PWHEIGHT(:) .EQ. -1.) + PWHEIGHT(:) = ZHVAGUE(:) + END WHERE + + ZWT = (/ 273.15, 283.15, 293.15, 303.15, 313.15 /) ! Unite : K + ZNUWATER = (/ 1.854E-6, 1.36E-6, 1.051E-6, 0.843E-6, 0.695E-6 /) +! Unite : m².s^(-1) Pour une salinite = 35g/kg. +! En mer Mediterranee = 38.5g/kg (Lewis and Schwartz) + +! Initialisation des valeurs de ZVISCO, ZREYNOLDS + ZVISCO(:) = 0. + ZREYNOLDS(:) = 0. + + ! Tableau d'interpolation pour calculer ZNUWATER en fonction de la SST + ! Cas ou 0 < SST < 10 C + WHERE ((PSST(:) >= 273.15).AND.(PSST(:) < 283.15)) + ZVISCO(:) = ZNUWATER(1) + (PSST(:) - ZWT(1)) * (ZNUWATER(2)-ZNUWATER(1)) / & + (ZWT(2) - ZWT(1)) + ENDWHERE + + ! Cas ou 10 < SST < 20 C + WHERE ((PSST(:) >= 283.15).AND.(PSST(:) < 293.15)) + ZVISCO(:) = ZNUWATER(2) + (PSST(:) - ZWT(2)) * (ZNUWATER(3)-ZNUWATER(2)) / & + (ZWT(3) - ZWT(2)) + ENDWHERE + + ! Cas ou 20 < SST < 30 C + WHERE ((PSST(:) >= 293.15).AND.(PSST(:) < 303.15)) + ZVISCO(:) = ZNUWATER(3) + (PSST(:) - ZWT(3)) * (ZNUWATER(4)-ZNUWATER(3)) / & + (ZWT(4) - ZWT(3)) + ENDWHERE + + ! Cas ou 30 < SST < 40 C + WHERE ((PSST(:) >= 303.15).AND.(PSST(:) < 313.15)) + ZVISCO(:) = ZNUWATER(4) + (PSST(:) - ZWT(4)) * (ZNUWATER(5)-ZNUWATER(4)) / & + (ZWT(5) - ZWT(4)) + ENDWHERE + +! Calcul du nombre de Reynolds + ZREYNOLDS(:) = (PUSTAR(:) * PWHEIGHT(:)) / ZVISCO(:) + +! Calcul du flux en nombre pour chaque mode + +! Ovadnevaite et al. 2014 +!!!!! Total number flux, Unite ZSDSLT_MDE ne correspond pas au total number +!flux mais au size dependent SSA production flux + +! Ecrire equation integration pour chaque mode + +!Condition d'emission : ZREYNOLDS > 1E5 + + WHERE (ZREYNOLDS(:) > 1.E5) + ZSFSLT_MDE(:,1) = 104.51 * ( ZREYNOLDS(:) - 1.E5)**0.556 + ZSFSLT_MDE(:,2) = 0.044 * ( ZREYNOLDS(:) - 1.E5)**1.08 + ZSFSLT_MDE(:,3) = 149.64 * ( ZREYNOLDS(:) - 1.E5)**0.545 + ZSFSLT_MDE(:,4) = 2.96 * ( ZREYNOLDS(:) - 1.E5)**0.79 + ENDWHERE + WHERE (ZREYNOLDS(:) > 2.E5) + ZSFSLT_MDE(:,5) = 0.52 * ( ZREYNOLDS(:) - 2.E5)**0.87 + ENDWHERE + + + + WHERE (ZREYNOLDS(:) <= 1.E5) + ZSFSLT_MDE(:,1) = 1.E-10 + ZSFSLT_MDE(:,2) = 1.E-10 + ZSFSLT_MDE(:,3) = 1.E-10 + ZSFSLT_MDE(:,4) = 1.E-10 + ENDWHERE + WHERE (ZREYNOLDS(:) <= 2.E5) + ZSFSLT_MDE(:,5) = 1.E-10 + ENDWHERE + +! Controle avec des valeurs limites , Pas besoin de la conversion 1E4 pour Ova +! car deja en m-2 + ZSFSLT_MDE(:,1) = MAX(ZSFSLT_MDE(:,1) , 1.E-10) + ZSFSLT_MDE(:,2) = MAX(ZSFSLT_MDE(:,2) , 1.E-10) + ZSFSLT_MDE(:,3) = MAX(ZSFSLT_MDE(:,3) , 1.E-10) + ZSFSLT_MDE(:,4) = MAX(ZSFSLT_MDE(:,4) , 1.E-10) + ZSFSLT_MDE(:,5) = MAX(ZSFSLT_MDE(:,5) , 1.E-10) +!- Marine + +ELSEIF (CEMISPARAM_SLT .eq. "Vig01") THEN +! Vignatti et al. 2001 (in particles.cm-2.s-1) : en #.cm-3 en fait + ZSFSLT_MDE(:,1) = 10.**(0.09 *PWIND(:) + 0.283) ! fine mode + ZSFSLT_MDE(:,2) = 10.**(0.0422*PWIND(:) + 0.288) ! median mode + ZSFSLT_MDE(:,3) = 10.**(0.069 *PWIND(:) - 3.5) ! coarse mode + +! convert into particles.m-2.s-1) + ZSFSLT_MDE(:,1) = MAX(ZSFSLT_MDE(:,1) * 1.E4, 1.E-10) + ZSFSLT_MDE(:,2) = MAX(ZSFSLT_MDE(:,2) * 1.E4, 1.E-10) + ZSFSLT_MDE(:,3) = MAX(ZSFSLT_MDE(:,3) * 1.E4, 1.E-10) +! +ELSEIF (CEMISPARAM_SLT .eq. "Sch04") THEN! Use Schultz et al., 2004 WCL(:) = INT(PWIND(:)) WCL(:) = MAX (0, MIN(WCL(:), 39)) - ! + DZSPEED(:) = MAX(0., MIN(PWIND(:) - FLOAT(WCL(:)), 1.)) - ! - ! Flux given in particles.m-2 s-1 - ! - DO JI=1,KI - !plm-gfortran - ZSFSLT_MDE(JI,1) = NUMB1FLUX(WCL(JI)) + (NUMB1FLUX(WCL(JI)+1)-NUMB1FLUX(WCL(JI)))*DZSPEED(JI) - ZSFSLT_MDE(JI,2) = NUMB2FLUX(WCL(JI)) + (NUMB2FLUX(WCL(JI)+1)-NUMB2FLUX(WCL(JI)))*DZSPEED(JI) - ZSFSLT_MDE(JI,3) = NUMB3FLUX(WCL(JI)) + (NUMB3FLUX(WCL(JI)+1)-NUMB3FLUX(WCL(JI)))*DZSPEED(JI) - !plm-gfortran - ENDDO - ! + ! + ! Flux given in particles.m-2 s-1 + ! + DO JI = 1, KI + !plm-gfortran + ZSFSLT_MDE(JI,1) = NUMB1FLUX(WCL(JI)) + & + (NUMB1FLUX(WCL(JI)+1)-NUMB1FLUX(WCL(JI)))*DZSPEED(JI) + ZSFSLT_MDE(JI,2) = NUMB2FLUX(WCL(JI)) + & + (NUMB2FLUX(WCL(JI)+1)-NUMB2FLUX(WCL(JI)))*DZSPEED(JI) + ZSFSLT_MDE(JI,3) = NUMB3FLUX(WCL(JI)) + & + (NUMB3FLUX(WCL(JI)+1)-NUMB3FLUX(WCL(JI)))*DZSPEED(JI) + !plm-gfortran + END DO END IF ! -DO JN=1,JPMODE_SLT +DO JN = 1, JPMODE_SLT + +! convert particles.m-2 s-1 into kg.m-2.s-1 +! N'est calculé que pour le moment 3 (en masse), la conversion pour les autres +! flux de moments se fait plus tard (mode_dslt_surf.F90 MASSFLUX2MOMENTFLUX) +!+Marine ! - IF (LVARSIG_SLT) THEN - ! - PSFSLT(:,1+(JN-1)*3) = ZSFSLT_MDE(:,JORDER_SLT(JN)) - PSFSLT(:,2+(JN-1)*3) = PSFSLT(:,1+(JN-1)*3) * (SLT%XEMISRADIUS_SLT(JN)**3)*EXP(4.5 * LOG(SLT%XEMISSIG_SLT(JN))**2) - PSFSLT(:,3+(JN-1)*3) = PSFSLT(:,1+(JN-1)*3) * (SLT%XEMISRADIUS_SLT(JN)**6)*EXP(18. * LOG(SLT%XEMISSIG_SLT(JN))**2) - ! - ! Conversion into fluxes - PSFSLT(:,1+(JN-1)*3) = PSFSLT(:,1+(JN-1)*3) * ZCONVERTFACM0_SLT - PSFSLT(:,2+(JN-1)*3) = PSFSLT(:,1+(JN-1)*3) * ZCONVERTFACM3_SLT - PSFSLT(:,3+(JN-1)*3) = PSFSLT(:,3+(JN-1)*3) * ZCONVERTFACM6_SLT - - ELSE IF (LRGFIX_SLT) THEN - PSFSLT(:,JN) = ZSFSLT_MDE(:,JORDER_SLT(JN)) * (SLT%XEMISRADIUS_SLT(JN)**3)*EXP(4.5 * LOG(SLT%XEMISSIG_SLT(JN))**2) - ! Conversion into fluxes - PSFSLT(:,JN) = PSFSLT(:,JN) * ZCONVERTFACM3_SLT - - ELSE - PSFSLT(:,1+(JN-1)*2) = ZSFSLT_MDE(:,JORDER_SLT(JN)) - PSFSLT(:,2+(JN-1)*2) = PSFSLT(:,1+(JN-1)*2) * (SLT%XEMISRADIUS_SLT(JN)**3)*EXP(4.5 * LOG(SLT%XEMISSIG_SLT(JN))**2) - - ! Conversion into fluxes - PSFSLT(:,1+(JN-1)*2) = PSFSLT(:,1+(JN-1)*2) * ZCONVERTFACM0_SLT - PSFSLT(:,2+(JN-1)*2) = PSFSLT(:,1+(JN-1)*2) * ZCONVERTFACM3_SLT - - ENDIF + IF (LVARSIG_SLT) THEN ! cas 3 moment + + PSFSLT(:,2+(JN-1)*3) = ZSFSLT_MDE(:,JORDER_SLT(JN)) & + * ((SLT%XEMISRADIUS_SLT(JORDER_SLT(JN))**3) & + * EXP(4.5 * LOG(SLT%XEMISSIG_SLT(JORDER_SLT(JN)))**2)) & + * ZCONVERTFACM3_SLT + + ELSEIF (LRGFIX_SLT) THEN ! cas 1 moment + PSFSLT(:,JN) = ZSFSLT_MDE(:,JORDER_SLT(JN)) & + * (SLT%XEMISRADIUS_SLT(JORDER_SLT(JN))**3) & + * EXP(4.5 * LOG(SLT%XEMISSIG_SLT(JORDER_SLT(JN)))**2) & + * ZCONVERTFACM3_SLT + + ELSE ! cas 2 moments + + PSFSLT(:,2+(JN-1)*2) = ZSFSLT_MDE(:,JORDER_SLT(JN)) & + * ((SLT%XEMISRADIUS_SLT(JORDER_SLT(JN))**3) & + * EXP(4.5 * LOG(SLT%XEMISSIG_SLT(JORDER_SLT(JN)))**2)) & + * ZCONVERTFACM3_SLT +! -- PIERRE / MARINE SSA - MODIF -- + END IF END DO + IF (LHOOK) CALL DR_HOOK('COUPLING_SLT_N',1,ZHOOK_HANDLE) END SUBROUTINE COUPLING_SLT_n diff --git a/src/SURFEX/coupling_surf_atmn.F90 b/src/SURFEX/coupling_surf_atmn.F90 index 9ee9651c2..9a52eed46 100644 --- a/src/SURFEX/coupling_surf_atmn.F90 +++ b/src/SURFEX/coupling_surf_atmn.F90 @@ -10,7 +10,7 @@ SUBROUTINE COUPLING_SURF_ATM_n (YSC, HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, PPS, PPA, PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, PTRAD, & PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, PZ0, PZ0H, PQSURF, & PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, & - PPET_B_COEF, PPEQ_B_COEF, HTEST ) + PPET_B_COEF, PPEQ_B_COEF, PZWS, HTEST ) ! ################################################################################# ! !!**** *COUPLING_INLAND_WATER_n * - Driver to call the schemes for the @@ -39,6 +39,7 @@ SUBROUTINE COUPLING_SURF_ATM_n (YSC, HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, !! Modified 06/2013 by J.Escobar : replace DOUBLE PRECISION by REAL to handle problem for promotion of real on IBM SP !! R. Séférian 03/2014 Adding decoupling between CO2 seen by photosynthesis and radiative CO2 !! P. Wautelet 02/2019 bug correction KI->KSIZE for size of KMASK argument in TREAT_SURF +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !!------------------------------------------------------------- ! ! @@ -128,6 +129,7 @@ REAL, DIMENSION(KI), INTENT(IN) :: PLW ! longwave radiation (on horizonta ! ! (W/m2) REAL, DIMENSION(KI), INTENT(IN) :: PPS ! pressure at atmospheric model surface (Pa) REAL, DIMENSION(KI), INTENT(IN) :: PPA ! pressure at forcing level (Pa) +REAL, DIMENSION(KI), INTENT(IN) :: PZWS ! significant sea wave (m) REAL, DIMENSION(KI), INTENT(IN) :: PZS ! atmospheric model orography (m) REAL, DIMENSION(KI), INTENT(IN) :: PCO2 ! CO2 concentration in the air (kg/m3) REAL, DIMENSION(KI), INTENT(IN) :: PSNOW ! snow precipitation (kg/m2/s) @@ -475,6 +477,7 @@ REAL, DIMENSION(KSIZE) :: ZP_LW ! longwave radiation (on horizontal surf.) ! ! (W/m2) REAL, DIMENSION(KSIZE) :: ZP_PS ! pressure at atmospheric model surface (Pa) REAL, DIMENSION(KSIZE) :: ZP_PA ! pressure at forcing level (Pa) +REAL, DIMENSION(KSIZE) :: ZP_ZWS ! significant sea wave (m) REAL, DIMENSION(KSIZE) :: ZP_ZS ! atmospheric model orography (m) REAL, DIMENSION(KSIZE) :: ZP_CO2 ! CO2 concentration in the air (kg/m3) REAL, DIMENSION(KSIZE,KSV) :: ZP_SV ! scalar concentration in the air @@ -532,6 +535,7 @@ DO JJ=1,KSIZE ZP_LW(JJ) = PLW (JI) ZP_PS(JJ) = PPS (JI) ZP_PA(JJ) = PPA (JI) + ZP_ZWS(JJ) = PZWS (JI) ZP_ZS(JJ) = PZS (JI) ENDDO ! @@ -584,7 +588,7 @@ IF (KTILE==1) THEN ZP_PS, ZP_PA, ZP_SFTQ, ZP_SFTH, ZP_SFTS, ZP_SFCO2, ZP_SFU, ZP_SFV, & ZP_TRAD, ZP_DIR_ALB, ZP_SCA_ALB, ZP_EMIS, ZP_TSURF, ZP_Z0, ZP_Z0H, & ZP_QSURF, ZP_PEW_A_COEF, ZP_PEW_B_COEF, ZP_PET_A_COEF, ZP_PEQ_A_COEF, & - ZP_PET_B_COEF, ZP_PEQ_B_COEF, 'OK' ) + ZP_PET_B_COEF, ZP_PEQ_B_COEF, ZP_ZWS, 'OK' ) ! ELSEIF (KTILE==2) THEN ! diff --git a/src/SURFEX/default_slt.F90 b/src/SURFEX/default_slt.F90 index e4f99f54a..ca96f03f9 100644 --- a/src/SURFEX/default_slt.F90 +++ b/src/SURFEX/default_slt.F90 @@ -32,6 +32,7 @@ !! MODIFICATIONS !! ------------- !! Original 03/2005 +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -52,8 +53,10 @@ IMPLICIT NONE REAL(KIND=JPRB) :: ZHOOK_HANDLE ! IF (LHOOK) CALL DR_HOOK('DEFAULT_SLT',0,ZHOOK_HANDLE) -CEMISPARAM_SLT = 'Vig01' -JPMODE_SLT = 3 +! ++ PIERRE / MARINE SSA - MODIF ++ +CEMISPARAM_SLT = 'Ova14' +JPMODE_SLT = 5 +! -- PIERRE / MARINE SSA - MODIF -- LVARSIG_SLT = .FALSE. LRGFIX_SLT = .TRUE. IF (LHOOK) CALL DR_HOOK('DEFAULT_SLT',1,ZHOOK_HANDLE) diff --git a/src/SURFEX/init_slt.F90 b/src/SURFEX/init_slt.F90 index 2320d6517..44e1e1bf9 100644 --- a/src/SURFEX/init_slt.F90 +++ b/src/SURFEX/init_slt.F90 @@ -5,7 +5,36 @@ SUBROUTINE INIT_SLT (SLT, & HPROGRAM &! Program calling unit ) - +! ###################################################################### +! +!!**** *INIT_SLT* - +!! +!! PURPOSE +!! ------- +! +!!** METHOD +!! ------ +!! !! +!! EXTERNAL +!! -------- +!! +!! IMPLICIT ARGUMENTS +!! ------------------ +!! +!! REFERENCE +!! --------- +!! +!! +!! AUTHOR +!! ------ +!! ? +!! +!! MODIFICATIONS +!! ------------- +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +!! +!------------------------------------------------------------------------------ +! ! USE MODD_SLT_n, ONLY : SLT_t ! @@ -38,14 +67,28 @@ ALLOCATE(SLT%XEMISSIG_SLT (NSLTMDE)) !Get initial size distributions. This is cut and pasted !from dead routine dstpsd.F90 !Check for different source parameterizations -IF(CEMISPARAM_SLT.eq."Vig01") THEN + +IF (CEMISPARAM_SLT.eq."Ova14") THEN + NSLTMDE = 5 +! JORDER_SLT = (/3,2,1,4,5/) !Salt modes in order of importance CRGUNITS = 'NUMB' - XEMISRADIUS_INI_SLT(:) = (/ 0.2, 2.0, 12. /) ! [um] Number median radius She84 p. 75 Table 1 - XEMISSIG_INI_SLT (:) = (/ 1.9, 2.0, 3.00 /) ! [frc] Geometric standard deviation She84 p. 75 Table 1 -ELSE ! use default of Schultz et al, 2004 - CRGUNITS = 'MASS' - XEMISRADIUS_INI_SLT(:) = 0.5*(/0.28, 2.25, 15.32/) ! [um] Mass median radius - XEMISSIG_INI_SLT (:) = (/1.59, 2.00, 2.00 /) ! [frc] Geometric standard deviation + XEMISRADIUS_INI_SLT = (/0.009, 0.021, 0.045, 0.115, 0.415/) + XEMISSIG_INI_SLT = (/1.37, 1.5, 1.42, 1.53, 1.85/) + +ELSE IF(CEMISPARAM_SLT.eq."Vig01") THEN + NSLTMDE = 5 +! JORDER_SLT = (/3,2,1,4,5/) !Salt modes in order of importance, only three modes + CRGUNITS = 'NUMB' + XEMISRADIUS_INI_SLT = (/ 0.2, 2.0, 12.,0.,0. /) ! [um] Number median radius Viganati et al., 2001 + XEMISSIG_INI_SLT = (/ 1.9, 2.0, 3.00,0.,0. /) ! [frc] Geometric standard deviation Viganati et al., 2001 + +ELSE IF(CEMISPARAM_SLT.eq."Sch04") THEN ! use default of Schultz et al, 2004 + NSLTMDE = 5 +! JORDER_SLT = (/3,2,1,4,5/), only three modes + CRGUNITS = 'MASS' + XEMISRADIUS_INI_SLT = 0.5*(/0.28, 2.25, 15.32, 0., 0./)! [um] Mass median radius + XEMISSIG_INI_SLT = (/1.59, 2.00, 2.00, 0., 0./) ! [frc] Geometric standard deviation + ENDIF ! DO JMODE=1,NSLTMDE diff --git a/src/SURFEX/modd_slt_surf.F90 b/src/SURFEX/modd_slt_surf.F90 index 0ee1b2b65..589cfb655 100644 --- a/src/SURFEX/modd_slt_surf.F90 +++ b/src/SURFEX/modd_slt_surf.F90 @@ -4,13 +4,18 @@ !SFX_LIC for details. version 1. MODULE MODD_SLT_SURF ! +! MODIFICATIONS +! +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes + + IMPLICIT NONE ! REAL, PARAMETER :: XDENSITY_SLT = 2.1e3 ! [kg/m3] density of sea salt REAL, PARAMETER :: XMOLARWEIGHT_SLT = 58.e-3 ! [kg/mol] molar weight sea salt ! -INTEGER, PARAMETER :: NEMISMODES_MAX=3 -INTEGER, DIMENSION(NEMISMODES_MAX), PARAMETER :: JORDER_SLT=(/3,2,1/) !Dust modes in order of importance +INTEGER, PARAMETER :: NEMISMODES_MAX=5 +INTEGER, DIMENSION(NEMISMODES_MAX), PARAMETER :: JORDER_SLT=(/3,2,1,5,4/) !Dust modes in order of importance !Set emission related parameters REAL,DIMENSION(NEMISMODES_MAX) :: XEMISRADIUS_INI_SLT ! number madian radius initialization for sea salt mode (um) REAL,DIMENSION(NEMISMODES_MAX) :: XEMISSIG_INI_SLT ! dispersion initialization for sea salt mode diff --git a/src/SURFEX/modd_sltn.F90 b/src/SURFEX/modd_sltn.F90 index 84a48d74c..4187b72f2 100644 --- a/src/SURFEX/modd_sltn.F90 +++ b/src/SURFEX/modd_sltn.F90 @@ -10,25 +10,43 @@ MODULE MODD_SLT_n ! !Author: Alf Grini / Pierre Tulet ! +! MODIFICATIONS +! +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes + USE YOMHOOK ,ONLY : LHOOK, DR_HOOK USE PARKIND1 ,ONLY : JPRB ! IMPLICIT NONE -! + TYPE SLT_t +! ++ PIERRE / MARINE SSA DUST - MODIF ++ +! REAL, DIMENSION(:,:,:),POINTER :: XSFSLT ! Sea Salt variables to be send to output +! -- PIERRE / MARINE SSA DUST - MODIF -- REAL,DIMENSION(:), POINTER :: XEMISRADIUS_SLT ! Number median radius for each source mode REAL,DIMENSION(:), POINTER :: XEMISSIG_SLT ! sigma for each source mode END TYPE SLT_t + + + + CONTAINS + ! -CONTAINS -! + + + + SUBROUTINE SLT_INIT(YSLT) TYPE(SLT_t), INTENT(INOUT) :: YSLT REAL(KIND=JPRB) :: ZHOOK_HANDLE IF (LHOOK) CALL DR_HOOK("MODD_SLT_N:SLT_INIT",0,ZHOOK_HANDLE) +! ++ PIERRE / MARINE SSA DUST - MODIF ++ +! NULLIFY(YSLT%XSFSLT) +! -- PIERRE / MARINE SSA DUST - MODIF -- NULLIFY(YSLT%XEMISRADIUS_SLT) NULLIFY(YSLT%XEMISSIG_SLT) IF (LHOOK) CALL DR_HOOK("MODD_SLT_N:SLT_INIT",1,ZHOOK_HANDLE) END SUBROUTINE SLT_INIT -! + + END MODULE MODD_SLT_n diff --git a/src/SURFEX/modn_slt.F90 b/src/SURFEX/modn_slt.F90 index 44a889c3f..091c4e400 100644 --- a/src/SURFEX/modn_slt.F90 +++ b/src/SURFEX/modn_slt.F90 @@ -20,10 +20,11 @@ !! MODIFICATIONS !! ------------- !! Original 24/02/05 +!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes !! !! IMPLICIT ARGUMENTS !! ------------------ -USE MODD_SLT_SURF, ONLY : CEMISPARAM_SLT +USE MODD_SLT_SURF !! !----------------------------------------------------------------------------- ! @@ -32,7 +33,6 @@ USE MODD_SLT_SURF, ONLY : CEMISPARAM_SLT IMPLICIT NONE SAVE NAMELIST /NAM_SURF_SLT/ & - CEMISPARAM_SLT !Parameterization type - + CEMISPARAM_SLT, LVARSIG_SLT, LRGFIX_SLT, JPMODE_SLT !Parameterization type ! END MODULE MODN_SLT -- GitLab From da116bf25ed967c6d376f5cb7d06b8a78342b6c2 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Tue, 5 Mar 2019 14:13:40 +0100 Subject: [PATCH 082/139] Philippe 05/03/2019: deallocate XMI and XSOLORG if already allocated in ini_modeln but size=0 with respect to commit 77ee6c7ab19d (29/01/2019) --- src/MNH/ch_aer_eqm_initn.f90 | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/MNH/ch_aer_eqm_initn.f90 b/src/MNH/ch_aer_eqm_initn.f90 index ef4f69812..95f5616de 100644 --- a/src/MNH/ch_aer_eqm_initn.f90 +++ b/src/MNH/ch_aer_eqm_initn.f90 @@ -49,6 +49,7 @@ END MODULE MODI_CH_AER_EQM_INIT_n !! MODIFICATIONS !! ------------- !! M.Leriche 2015 : masse molaire Black carbon à 12 g/mol +!! P.Wautelet 03/2019 : deallocate XMI and XSOLORG if already allocated in ini_modeln but size=0 !! !! EXTERNAL !! -------- @@ -116,15 +117,24 @@ END DO ZDEN2MOL = 1E-6 * XAVOGADRO / XMD + +IF ( SIZE(XMI) == 0 ) THEN + DEALLOCATE( XMI ) + XMI => NULL() +END IF IF (.NOT.(ASSOCIATED(XMI))) THEN ALLOCATE(XMI(SIZE(PCHEM,1),SIZE(PCHEM,2),SIZE(PCHEM,3),NSP+NCARB+NSOA)) END IF - +! +IF ( SIZE(XSOLORG) == 0 ) THEN + DEALLOCATE( XSOLORG ) + XSOLORG => NULL() +END IF IF (.NOT.(ASSOCIATED(XSOLORG))) THEN ALLOCATE(XSOLORG(SIZE(PCHEM,1),SIZE(PCHEM,2),SIZE(PCHEM,3),10)) XSOLORG(:,:,:,:) = 0. END IF - +! ! Default values of molar mass XMI(:,:,:,:) = 250. -- GitLab From 88e9631e06134b86a285a52577f4b902fbccbefe Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 6 Mar 2019 09:45:29 +0100 Subject: [PATCH 083/139] Philippe 01/03/2019: SURFEX: minor: rename ISIOP -> NIO_RANK --- src/SURFEX/interpol_npts.F90 | 18 +++++++++--------- src/SURFEX/make_lcover.F90 | 8 ++++---- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/SURFEX/interpol_npts.F90 b/src/SURFEX/interpol_npts.F90 index b36f719b3..1cf360b69 100644 --- a/src/SURFEX/interpol_npts.F90 +++ b/src/SURFEX/interpol_npts.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 2004-2018 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. ! ######### SUBROUTINE INTERPOL_NPTS (UG, U, HPROGRAM,KLUOUT,KNPTS,KCODE,PX,PY,PFIELD,KNEAR_NBR) @@ -69,7 +69,7 @@ USE YOMHOOK ,ONLY : LHOOK, DR_HOOK USE PARKIND1 ,ONLY : JPRB ! #ifdef SFX_MNH -USE MODD_IO_ll, ONLY : ISIOP, ISP, ISNPROC +USE MODD_IO, ONLY : ISP, ISNPROC, NIO_RANK USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD USE MODE_GATHER_ll USE MODE_TOOLS_ll, ONLY : GET_GLOBALDIMS_ll @@ -178,7 +178,7 @@ IF (IOLD==2) THEN ! on met les infos de mésonh NRANK = ISP-1 NPROC = ISNPROC - NPIO = ISIOP-1 + NPIO = NIO_RANK-1 NCOMM = NMNH_COMM_WORLD ! !KCODE to 2D @@ -187,7 +187,7 @@ IF (IOLD==2) THEN ISIZE_2D(1+JPHEXT:IIU+JPHEXT,1+JPHEXT:IJU+JPHEXT) = RESHAPE(KCODE, (/ IIU,IJU /) ) ! tasks to whole domaine ALLOCATE(ISIZE_2D_ALL(IIMAX+2*JPHEXT,IJMAX+2*JPHEXT)) - CALL GATHER_XYFIELD(ISIZE_2D,ISIZE_2D_ALL,ISIOP,NMNH_COMM_WORLD) + CALL GATHER_XYFIELD(ISIZE_2D,ISIZE_2D_ALL,NIO_RANK,NMNH_COMM_WORLD) DEALLOCATE(ISIZE_2D) ALLOCATE(ISIZE_TOT(IDIM_FULL)) ISIZE_TOT = RESHAPE(ISIZE_2D_ALL(1+JPHEXT:IIMAX+JPHEXT,1+JPHEXT:IJMAX+JPHEXT),(/IDIM_FULL/)) @@ -247,7 +247,7 @@ IF (IOLD==2) THEN DEALLOCATE(INUM_1D) ! tasks to whole domaine ALLOCATE(INUM_2D_ALL(IIMAX+2*JPHEXT,IJMAX+2*JPHEXT)) - CALL GATHER_XYFIELD(INUM_2D,INUM_2D_ALL,ISIOP,NMNH_COMM_WORLD) + CALL GATHER_XYFIELD(INUM_2D,INUM_2D_ALL,NIO_RANK,NMNH_COMM_WORLD) DEALLOCATE(INUM_2D) ALLOCATE(INUM_TOT(IDIM_FULL)) INUM_TOT = RESHAPE(INUM_2D_ALL(1+JPHEXT:IIMAX+JPHEXT,1+JPHEXT:IJMAX+JPHEXT),(/IDIM_FULL/)) @@ -263,7 +263,7 @@ IF (IOLD==2) THEN DEALLOCATE(IINDEX_1D) ! tasks to whole domaine ALLOCATE(IINDEX_2D_ALL(IIMAX+2*JPHEXT,IJMAX+2*JPHEXT)) - CALL GATHER_XYFIELD(IINDEX_2D,IINDEX_2D_ALL,ISIOP,NMNH_COMM_WORLD) + CALL GATHER_XYFIELD(IINDEX_2D,IINDEX_2D_ALL,NIO_RANK,NMNH_COMM_WORLD) DEALLOCATE(IINDEX_2D) ALLOCATE(IINDEX_TOT(IDIM_FULL)) IINDEX_TOT = RESHAPE(IINDEX_2D_ALL(1+JPHEXT:IIMAX+JPHEXT,1+JPHEXT:IJMAX+JPHEXT),(/IDIM_FULL/)) @@ -276,13 +276,13 @@ IF (IOLD==2) THEN ! ZCOORD_2D = 0. ZCOORD_2D(1+JPHEXT:IIU+JPHEXT,1+JPHEXT:IJU+JPHEXT) = RESHAPE(PX, (/ IIU,IJU /) ) - CALL GATHER_XYFIELD(ZCOORD_2D,ZCOORD_2D_ALL,ISIOP,NMNH_COMM_WORLD) + CALL GATHER_XYFIELD(ZCOORD_2D,ZCOORD_2D_ALL,NIO_RANK,NMNH_COMM_WORLD) ALLOCATE(ZX(IDIM_FULL)) ZX = RESHAPE(ZCOORD_2D_ALL(1+JPHEXT:IIMAX+JPHEXT,1+JPHEXT:IJMAX+JPHEXT),(/IDIM_FULL/)) ! ZCOORD_2D = 0. ZCOORD_2D(1+JPHEXT:IIU+JPHEXT,1+JPHEXT:IJU+JPHEXT) = RESHAPE(PY, (/ IIU,IJU /) ) - CALL GATHER_XYFIELD(ZCOORD_2D,ZCOORD_2D_ALL,ISIOP,NMNH_COMM_WORLD) + CALL GATHER_XYFIELD(ZCOORD_2D,ZCOORD_2D_ALL,NIO_RANK,NMNH_COMM_WORLD) ALLOCATE(ZY(IDIM_FULL)) ZY = RESHAPE(ZCOORD_2D_ALL(1+JPHEXT:IIMAX+JPHEXT,1+JPHEXT:IJMAX+JPHEXT),(/IDIM_FULL/)) ! diff --git a/src/SURFEX/make_lcover.F90 b/src/SURFEX/make_lcover.F90 index b793379d7..32d01144b 100644 --- a/src/SURFEX/make_lcover.F90 +++ b/src/SURFEX/make_lcover.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 1997-2018 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 1997-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. ! ######### @@ -46,7 +46,7 @@ USE YOMHOOK ,ONLY : LHOOK, DR_HOOK USE PARKIND1 ,ONLY : JPRB ! #ifdef SFX_MNH -USE MODD_IO_ll, ONLY : ISIOP, ISP, ISNPROC +USE MODD_IO, ONLY : ISP, ISNPROC, NIO_RANK USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD #endif ! @@ -88,7 +88,7 @@ ICOMM_SAVE = NCOMM ! on met les infos de mésonh NRANK = ISP-1 NPROC = ISNPROC -NPIO = ISIOP-1 +NPIO = NIO_RANK-1 NCOMM = NMNH_COMM_WORLD #endif ! -- GitLab From 3f40b96230317e1ed8add02532164d18426d7a5b Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 1 Mar 2019 15:10:58 +0100 Subject: [PATCH 084/139] Philippe 01/03/2019: rename of 2 IO source files --- src/LIB/SURCOUCHE/src/{fmread_ll.f90 => mode_io_field_read.f90} | 0 src/LIB/SURCOUCHE/src/{fmwrit_ll.f90 => mode_io_field_write.f90} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/LIB/SURCOUCHE/src/{fmread_ll.f90 => mode_io_field_read.f90} (100%) rename src/LIB/SURCOUCHE/src/{fmwrit_ll.f90 => mode_io_field_write.f90} (100%) diff --git a/src/LIB/SURCOUCHE/src/fmread_ll.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 similarity index 100% rename from src/LIB/SURCOUCHE/src/fmread_ll.f90 rename to src/LIB/SURCOUCHE/src/mode_io_field_read.f90 diff --git a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 similarity index 100% rename from src/LIB/SURCOUCHE/src/fmwrit_ll.f90 rename to src/LIB/SURCOUCHE/src/mode_io_field_write.f90 -- GitLab From bbad15cc209f1ffa3a80ab4fd84962c61768fc94 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 6 Mar 2019 09:44:12 +0100 Subject: [PATCH 085/139] Philippe 05/03/2019: IO: rename IO subroutines and modules + restructure IO source files --- LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90 | 17 +- LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 | 184 +-- src/LIB/SURCOUCHE/src/io_write_field.f90 | 500 ------ src/LIB/SURCOUCHE/src/modd_io.f90 | 8 +- src/LIB/SURCOUCHE/src/mode_allocbuff.f90 | 22 +- src/LIB/SURCOUCHE/src/mode_field.f90 | 2 +- src/LIB/SURCOUCHE/src/mode_fm.f90 | 34 - src/LIB/SURCOUCHE/src/mode_ga.f90 | 18 +- src/LIB/SURCOUCHE/src/mode_gather.f90 | 68 +- src/LIB/SURCOUCHE/src/mode_init_ll.f90 | 8 +- src/LIB/SURCOUCHE/src/mode_io.f90 | 53 +- src/LIB/SURCOUCHE/src/mode_io_field_read.f90 | 698 ++++----- src/LIB/SURCOUCHE/src/mode_io_field_write.f90 | 1344 +++++++++++------ src/LIB/SURCOUCHE/src/mode_io_file.f90 | 125 +- src/LIB/SURCOUCHE/src/mode_io_file_lfi.f90 | 93 +- src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 | 124 +- .../SURCOUCHE/src/mode_io_manage_struct.f90 | 129 +- src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 | 188 +-- src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 | 447 +++--- src/LIB/SURCOUCHE/src/mode_io_tools.f90 | 264 ++-- src/LIB/SURCOUCHE/src/mode_io_tools_lfi.f90 | 16 +- src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 | 246 +-- src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90 | 190 +-- src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 | 599 ++++---- src/LIB/SURCOUCHE/src/mode_lb_ll.f90 | 13 +- src/LIB/SURCOUCHE/src/mode_mppdb.f90 | 11 +- src/LIB/SURCOUCHE/src/mode_msg.f90 | 16 +- src/LIB/SURCOUCHE/src/mode_scatter.f90 | 106 +- src/LIB/SURCOUCHE/src/modi_fm.f90 | 37 - src/LIB/SURCOUCHE/src/modi_io.f90 | 49 - src/LIB/SURCOUCHE/src/modn_confio.f90 | 8 +- src/LIB/SURCOUCHE/src/system_mnh.f90 | 1 - src/MNH/adjust_langlois.f90 | 1 - src/MNH/adv_forcingn.f90 | 16 +- src/MNH/advec_4th_order_aux.f90 | 11 +- src/MNH/advection_metsv.f90 | 29 +- src/MNH/aerozon.f90 | 6 +- src/MNH/aircraft_balloon_evol.f90 | 5 +- src/MNH/anel_balancen.f90 | 1 - src/MNH/budget.f90 | 6 +- src/MNH/c2r2_adjust.f90 | 22 +- src/MNH/call_rttov11.f90 | 17 +- src/MNH/call_rttov8.f90 | 27 +- src/MNH/ch_aer_mod_init.f90 | 44 +- src/MNH/ch_emission_flux0d.f90 | 9 +- src/MNH/ch_field_valuen.f90 | 14 +- src/MNH/ch_init_constn.f90 | 10 +- src/MNH/ch_init_meteo.f90 | 9 +- src/MNH/ch_model0d.f90 | 12 +- src/MNH/ch_open_input.f90 | 16 +- src/MNH/ch_read_chem.f90 | 11 +- src/MNH/ch_surface0d.f90 | 10 +- src/MNH/check_zhat.f90 | 20 +- src/MNH/check_zs.f90 | 24 +- src/MNH/close_file_mnh.f90 | 8 +- src/MNH/compare_dad.f90 | 92 +- src/MNH/compare_with_pgd_domain.f90 | 2 - src/MNH/compute_r00.f90 | 61 +- src/MNH/compute_spectre.f90 | 2 - src/MNH/define_maskn.f90 | 6 +- src/MNH/detect_field_mnh.f90 | 19 +- src/MNH/diag.f90 | 49 +- src/MNH/elec_fieldn.f90 | 7 +- src/MNH/elec_trid.f90 | 5 +- src/MNH/elec_tridz.f90 | 5 +- src/MNH/endstep_budget.f90 | 8 +- src/MNH/fast_terms.f90 | 6 +- src/MNH/flash_geom_elec.f90 | 63 +- src/MNH/forcing.f90 | 21 +- src/MNH/free_atm_profile.f90 | 22 +- src/MNH/gps_zenith.f90 | 18 +- src/MNH/horibl.f90 | 11 +- src/MNH/ice_adjust.f90 | 13 +- src/MNH/ice_adjust_elec.f90 | 9 +- src/MNH/ini_aircraft_balloon.f90 | 27 +- src/MNH/ini_budget.f90 | 12 +- src/MNH/ini_cpl.f90 | 31 +- src/MNH/ini_deep_convection.f90 | 83 +- src/MNH/ini_drag.f90 | 6 +- src/MNH/ini_elec.f90 | 18 +- src/MNH/ini_elecn.f90 | 6 +- src/MNH/ini_field_elec.f90 | 5 +- src/MNH/ini_lb.f90 | 124 +- src/MNH/ini_lesn.f90 | 6 +- src/MNH/ini_ls.f90 | 23 +- src/MNH/ini_micron.f90 | 6 +- src/MNH/ini_modeln.f90 | 46 +- src/MNH/ini_param_elec.f90 | 20 +- src/MNH/ini_posprofilern.f90 | 5 +- src/MNH/ini_prog_var.f90 | 43 +- src/MNH/ini_radiations.f90 | 36 +- src/MNH/ini_radiations_ecmwf.f90 | 1 - src/MNH/ini_rain_ice.f90 | 1 - src/MNH/ini_rain_ice_elec.f90 | 10 +- src/MNH/ini_segn.f90 | 58 +- src/MNH/ini_seriesn.f90 | 5 +- src/MNH/ini_size_spawn.f90 | 69 +- src/MNH/ini_sizen.f90 | 55 +- src/MNH/ini_spectren.f90 | 21 +- src/MNH/ini_surf_rad.f90 | 20 +- src/MNH/ini_surfstationn.f90 | 7 +- src/MNH/init_for_convlfi.f90 | 79 +- src/MNH/init_ground_paramn.f90 | 5 +- src/MNH/init_mnh.f90 | 11 +- src/MNH/khko_notadjust.f90 | 15 +- src/MNH/latlon_to_xy.f90 | 30 +- src/MNH/les_specn.f90 | 6 +- src/MNH/lima.f90 | 10 +- src/MNH/lima_adjust.f90 | 19 +- src/MNH/lima_ccn_activation.f90 | 29 +- src/MNH/lima_nucleation_procs.f90 | 9 +- src/MNH/lima_warm.f90 | 11 +- src/MNH/lima_warm_nucl.f90 | 25 +- src/MNH/lochead.f90 | 10 +- src/MNH/ls_coupling.f90 | 21 +- src/MNH/menu_diachro.f90 | 18 +- src/MNH/mesonh.f90 | 12 +- src/MNH/mnh2lpdm.f90 | 48 +- src/MNH/mnh2lpdm_ech.f90 | 52 +- src/MNH/mnh2lpdm_ini.f90 | 35 +- src/MNH/mnh_surf_grid_io_init.f90 | 26 +- src/MNH/mnhclose_aux_io_surf.f90 | 11 +- src/MNH/mnhclose_namelist.f90 | 4 +- src/MNH/mnhclose_write_cover_tex.f90 | 14 +- src/MNH/mnhend_io_surfn.f90 | 10 +- src/MNH/mnhinit_io_surfn.f90 | 2 - src/MNH/mnhopen_aux_io_surf.f90 | 23 +- src/MNH/mnhopen_namelist.f90 | 12 +- src/MNH/mnhopen_write_cover_tex.f90 | 14 +- src/MNH/mnhread_zs_dummyn.f90 | 36 +- src/MNH/mnhwrite_zs_dummyn.f90 | 32 +- src/MNH/modd_ch_model0d.f90 | 2 +- src/MNH/modd_io_nam.f90 | 6 +- src/MNH/modd_io_surf_mnh.f90 | 6 +- src/MNH/modd_lunit.f90 | 2 +- src/MNH/modd_lunitn.f90 | 4 +- src/MNH/modd_outn.f90 | 6 +- src/MNH/mode_les_diachro.f90 | 20 +- src/MNH/mode_time.f90 | 6 +- src/MNH/modeln.f90 | 54 +- src/MNH/modules_diachro.f90 | 10 +- src/MNH/open_file_mnh.f90 | 12 +- src/MNH/open_nestpgd_files.f90 | 51 +- src/MNH/open_prc_files.f90 | 30 +- src/MNH/paspol.f90 | 12 +- src/MNH/pgd_grid_io_init_mnh.f90 | 34 +- src/MNH/phys_paramn.f90 | 12 +- src/MNH/ppm.f90 | 6 - src/MNH/prandtl.f90 | 20 +- src/MNH/prep_ideal_case.f90 | 80 +- src/MNH/prep_nest_pgd.f90 | 72 +- src/MNH/prep_pgd.f90 | 70 +- src/MNH/prep_real_case.f90 | 42 +- src/MNH/prep_surf_mnh.f90 | 6 +- src/MNH/prep_surfex.f90 | 48 +- src/MNH/pressure_in_prep.f90 | 3 +- src/MNH/prognos.f90 | 5 +- src/MNH/radar_rain_ice.f90 | 6 +- src/MNH/radar_scattering.f90 | 45 +- src/MNH/radar_simulator.f90 | 14 +- src/MNH/radiations.f90 | 106 +- src/MNH/rain_c2r2_khko.f90 | 23 +- src/MNH/rain_ice.f90 | 2 +- src/MNH/rain_ice_red.f90 | 5 +- src/MNH/read_all_data_grib_case.f90 | 14 +- src/MNH/read_all_data_mesonh_case.f90 | 19 +- src/MNH/read_chem_data_netcdf_case.f90 | 12 +- src/MNH/read_desfmn.f90 | 8 +- src/MNH/read_dummy_gr_fieldn.f90 | 20 +- src/MNH/read_exsegn.f90 | 5 +- src/MNH/read_exspa.f90 | 20 +- src/MNH/read_field.f90 | 208 +-- src/MNH/read_grid_time_mesonh_case.f90 | 34 +- src/MNH/read_hgrid.f90 | 53 +- src/MNH/read_hgridn.f90 | 58 +- src/MNH/read_precip_field.f90 | 43 +- src/MNH/read_surf_mnh.f90 | 247 ++- src/MNH/read_ver_grid.f90 | 5 +- src/MNH/rel_forcingn.f90 | 1 - src/MNH/reset_exseg.f90 | 14 +- src/MNH/resolved_cloud.f90 | 4 +- src/MNH/resolved_elecn.f90 | 35 +- src/MNH/retrieve2_nest_infon.f90 | 2 +- src/MNH/series_cloud_elec.f90 | 5 +- src/MNH/seriesn.f90 | 5 +- src/MNH/set_advfrc.f90 | 9 +- src/MNH/set_bogus_vortex.f90 | 7 +- src/MNH/set_conc_lima.f90 | 5 +- src/MNH/set_cstn.f90 | 5 +- src/MNH/set_frc.f90 | 6 +- src/MNH/set_grid.f90 | 61 +- src/MNH/set_mass.f90 | 8 +- src/MNH/set_perturb.f90 | 5 +- src/MNH/set_ref.f90 | 16 +- src/MNH/set_relfrc.f90 | 10 +- src/MNH/set_rsou.f90 | 8 +- src/MNH/set_subdomain.f90 | 39 +- src/MNH/shallow_mf_pack.f90 | 24 +- src/MNH/spawn_field2.f90 | 86 +- src/MNH/spawn_grid2.f90 | 6 +- src/MNH/spawn_model2.f90 | 50 +- src/MNH/spawn_surf.f90 | 10 +- src/MNH/spawn_surf2_rain.f90 | 10 +- src/MNH/spawn_zs.f90 | 5 +- src/MNH/spawning.f90 | 36 +- src/MNH/spectre.f90 | 31 +- src/MNH/spectre_arome.f90 | 14 +- src/MNH/tke_eps_sources.f90 | 20 +- src/MNH/trid.f90 | 5 +- src/MNH/tridz.f90 | 5 +- src/MNH/turb.f90 | 28 +- src/MNH/turb_cloud_index.f90 | 30 +- src/MNH/turb_hor.f90 | 8 +- src/MNH/turb_hor_dyn_corr.f90 | 20 +- src/MNH/turb_hor_splt.f90 | 8 +- src/MNH/turb_hor_sv_flux.f90 | 18 +- src/MNH/turb_hor_thermo_corr.f90 | 18 +- src/MNH/turb_hor_thermo_flux.f90 | 24 +- src/MNH/turb_hor_uv.f90 | 14 +- src/MNH/turb_hor_uw.f90 | 14 +- src/MNH/turb_hor_vw.f90 | 14 +- src/MNH/turb_ver.f90 | 20 +- src/MNH/turb_ver_dyn_flux.f90 | 24 +- src/MNH/turb_ver_sv_flux.f90 | 16 +- src/MNH/turb_ver_thermo_corr.f90 | 18 +- src/MNH/turb_ver_thermo_flux.f90 | 18 +- src/MNH/uv_to_zonal_and_merid.f90 | 34 +- src/MNH/ver_int_thermo.f90 | 4 +- src/MNH/ver_interp_to_mixed_grid.f90 | 2 - src/MNH/ver_thermo.f90 | 16 +- src/MNH/viscosity.f90 | 8 +- src/MNH/write_aircraft_balloon.f90 | 4 +- src/MNH/write_balloonn.f90 | 24 +- src/MNH/write_budget.f90 | 20 +- src/MNH/write_desfmn.f90 | 4 +- src/MNH/write_diachro.f90 | 43 +- src/MNH/write_dummy_gr_fieldn.f90 | 22 +- src/MNH/write_hgrid.f90 | 35 +- src/MNH/write_hgridn.f90 | 38 +- src/MNH/write_lbn.f90 | 134 +- src/MNH/write_les_budgetn.f90 | 8 +- src/MNH/write_les_rt_budgetn.f90 | 8 +- src/MNH/write_les_sv_budgetn.f90 | 8 +- src/MNH/write_lesn.f90 | 8 +- src/MNH/write_lfifm1_for_diag.f90 | 545 ++++--- src/MNH/write_lfifm1_for_diag_supp.f90 | 164 +- src/MNH/write_lfifmn_fordiachron.f90 | 82 +- src/MNH/write_lfin.f90 | 540 +++---- src/MNH/write_profilern.f90 | 8 +- src/MNH/write_seriesn.f90 | 9 +- src/MNH/write_stationn.f90 | 8 +- src/MNH/write_surf_mnh.f90 | 184 +-- src/MNH/write_ts1d.f90 | 23 +- src/MNH/xy_to_latlon.f90 | 30 +- src/MNH/zoom_pgd.f90 | 72 +- src/MNH/zsmt_pgd.f90 | 27 +- 256 files changed, 5909 insertions(+), 6346 deletions(-) delete mode 100644 src/LIB/SURCOUCHE/src/io_write_field.f90 delete mode 100644 src/LIB/SURCOUCHE/src/mode_fm.f90 delete mode 100644 src/LIB/SURCOUCHE/src/modi_fm.f90 delete mode 100644 src/LIB/SURCOUCHE/src/modi_io.f90 diff --git a/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90 b/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90 index 3e0a8b2d7..bb8534b6d 100644 --- a/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90 +++ b/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90 @@ -1,21 +1,22 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- program LFI2CDF USE MODD_CONF, ONLY: CPROGRAM USE MODD_CONFZ, ONLY: NB_PROCIO_R USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX - USE MODD_IO_ll, ONLY: LVERB_OUTLST, LVERB_STDOUT, NIO_ABORT_LEVEL, NIO_VERB, NGEN_ABORT_LEVEL, NGEN_VERB + USE MODD_IO, ONLY: LVERB_OUTLST, LVERB_STDOUT, NIO_ABORT_LEVEL, NIO_VERB, NGEN_ABORT_LEVEL, NGEN_VERB USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT USE MODD_TIMEZ, ONLY: TIMEZ - USE MODE_IO_ll, ONLY: INITIO_ll, SET_CONFIO_ll USE MODE_FIELD, ONLY: INI_FIELD_LIST + USE MODE_IO, ONLY: IO_Init, IO_Config_set USE mode_options USE MODE_SPLITTINGZ_ll, ONLY: INI_PARAZ_ll USE mode_util + USE MODI_VERSION USE MODN_CONFIO, ONLY: LCDF4, LLFIOUT, LLFIREAD @@ -43,7 +44,7 @@ program LFI2CDF CPROGRAM = 'LFICDF' - CALL INITIO_ll() + CALL IO_Init() CALL VERSION CALL INI_CST @@ -73,17 +74,17 @@ program LFI2CDF LCDF4 = .TRUE. LLFIOUT = .FALSE. LLFIREAD = .TRUE. - CALL SET_CONFIO_ll() + CALL IO_Config_set() ELSE IF (runmode == MODECDF2CDF) THEN LCDF4 = .TRUE. LLFIOUT = .FALSE. LLFIREAD = .FALSE. - CALL SET_CONFIO_ll() + CALL IO_Config_set() ELSE LCDF4 = .TRUE. LLFIOUT = .TRUE. LLFIREAD = .FALSE. - CALL SET_CONFIO_ll() + CALL IO_Config_set() END IF CALL INI_FIELD_LIST(1) diff --git a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 index 7fe27b75a..34c2d8332 100644 --- a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 +++ b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 @@ -1,19 +1,19 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications: ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !----------------------------------------------------------------- MODULE mode_util - USE MODD_IO_ll, ONLY: TFILE_ELT - USE MODD_NETCDF, ONLY: DIMCDF, IDCDF_KIND + USE MODD_IO, ONLY: TFILE_ELT + USE MODD_NETCDF, ONLY: DIMCDF, IDCDF_KIND USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH, NMNHNAMELGTMAX USE MODE_FIELD - USE MODE_FMREAD - USE MODE_FMWRIT + USE MODE_IO_FIELD_READ + USE MODE_IO_FIELD_WRITE USE mode_options @@ -59,7 +59,7 @@ CONTAINS USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT, NGRIDUNKNOWN - use mode_io_tools_nc4, only: io_guess_dimids_nc4 + use mode_io_tools_nc4, only: IO_Dimids_guess_nc4 TYPE(TFILE_ELT),DIMENSION(:), INTENT(IN) :: infiles TYPE(TFILE_ELT),DIMENSION(:), INTENT(IN) :: outfiles @@ -242,7 +242,7 @@ CONTAINS ! IF (status == NF90_NOERR) THEN tpreclist(ji)%found = .true. - CALL IO_GET_METADATA_NC4(kcdf_id2,var_id,tpreclist(ji)) + CALL IO_Metadata_get_nc4(kcdf_id2,var_id,tpreclist(ji)) END IF END IF @@ -334,7 +334,7 @@ END DO status = NF90_INQUIRE_VARIABLE(kcdf_id,var_id, name = tpreclist(ji)%name) IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__) tpreclist(ji)%found = .TRUE. - CALL IO_GET_METADATA_NC4(kcdf_id,var_id,tpreclist(ji)) + CALL IO_Metadata_get_nc4(kcdf_id,var_id,tpreclist(ji)) END DO END IF @@ -375,13 +375,13 @@ END DO ! Determine TDIMS IF (runmode==MODELFI2CDF) THEN ALLOCATE(tpreclist(ji)%TDIMS(tpreclist(ji)%TFIELD%NDIMS)) - CALL IO_GUESS_DIMIDS_NC4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,& + CALL IO_Dimids_guess_nc4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,& tpreclist(ji)%NSIZE,tpreclist(ji)%TDIMS,IRESP) ELSE !If we read netCDF4, we already have all necessary data !Special case for EMIS (only the first band is read/written) -> NDIMS reduced to 2 if(tpreclist(ji)%TFIELD%CMNHNAME=="EMIS") tpreclist(ji)%TFIELD%NDIMS = 2 - CALL IO_FILL_DIMS_NC4(outfiles(idx_out)%TFILE,tpreclist(ji),IRESP) + CALL IO_Dims_fill_nc4(outfiles(idx_out)%TFILE,tpreclist(ji),IRESP) ENDIF IF (IRESP/=0) THEN CALL PRINT_MSG(NVERB_WARNING,'IO','parse_infiles','can not guess dimensions for '//tpreclist(ji)%TFIELD%CMNHNAME// & @@ -409,14 +409,14 @@ END DO ! Determine TDIMS CALL PRINT_MSG(NVERB_DEBUG,'IO','parse_infiles',tpreclist(ji)%TFIELD%CMNHNAME//': try 3D') tpreclist(ji)%TFIELD%NDIMS = 3 !Try with 3D - CALL IO_GUESS_DIMIDS_NC4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,& + CALL IO_Dimids_guess_nc4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,& tpreclist(ji)%NSIZE,tpreclist(ji)%TDIMS,IRESP) ! IF (IRESP/=0 .OR. tpreclist(ji)%TDIMS(3)%LEN==1) THEN CALL PRINT_MSG(NVERB_DEBUG,'IO','parse_infiles',tpreclist(ji)%TFIELD%CMNHNAME//': try 2D') !Try again with 2D tpreclist(ji)%TFIELD%NDIMS = 2 - CALL IO_GUESS_DIMIDS_NC4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,& + CALL IO_Dimids_guess_nc4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,& tpreclist(ji)%NSIZE,tpreclist(ji)%TDIMS,IRESP) END IF ! @@ -425,7 +425,7 @@ END DO !Try again with 1D tpreclist(ji)%TFIELD%NDIMS = 1 tpreclist(ji)%TFIELD%CDIR = '--' !Assumption... - CALL IO_GUESS_DIMIDS_NC4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,& + CALL IO_Dimids_guess_nc4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,& tpreclist(ji)%NSIZE,tpreclist(ji)%TDIMS,IRESP) END IF ! @@ -474,7 +474,7 @@ END DO tpreclist(ji)%TFIELD%CDIR = 'XY' !Assumption END IF - CALL IO_FILL_DIMS_NC4(outfiles(idx_out)%TFILE,tpreclist(ji),IRESP) + CALL IO_Dims_fill_nc4(outfiles(idx_out)%TFILE,tpreclist(ji),IRESP) IF (tpreclist(ji)%NDIMS_FILE>0) THEN IF (tpreclist(ji)%CDIMNAMES_FILE(tpreclist(ji)%NDIMS_FILE)=='time') THEN @@ -623,7 +623,7 @@ END DO SUBROUTINE def_ncdf(infiles,outfiles,KNFILES_OUT) USE MODD_CONF, ONLY: NMNHVERSION - use mode_io_write_nc4, only: io_write_header_nc4 + use mode_io_write_nc4, only: IO_Header_write_nc4 TYPE(TFILE_ELT),DIMENSION(:),INTENT(IN) :: infiles TYPE(TFILE_ELT),DIMENSION(:),INTENT(IN) :: outfiles @@ -666,7 +666,7 @@ END DO kcdf_id = outfiles(ji)%TFILE%NNCID ! global attributes - CALL IO_WRITE_HEADER_NC4(outfiles(ji)%TFILE) + CALL IO_Header_write_nc4(outfiles(ji)%TFILE) ! WRITE(YMNHVERSION,"( I0,'.',I0,'.',I0 )" ) NMNHVERSION(1),NMNHVERSION(2),NMNHVERSION(3) status = NF90_PUT_ATT(kcdf_id,NF90_GLOBAL,'lfi2cdf_version',TRIM(YMNHVERSION)) @@ -737,15 +737,15 @@ END DO CASE (0) ALLOCATE(ITAB1D(1)) IF (tpreclist(ji)%calc) ALLOCATE(ITAB1D2(1)) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB1D(1)) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB1D(1)) CASE (1) ALLOCATE(ITAB1D(IDIMLEN(1))) IF (tpreclist(ji)%calc) ALLOCATE(ITAB1D2(IDIMLEN(1))) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB1D) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB1D) CASE (2) ALLOCATE(ITAB2D(IDIMLEN(1),IDIMLEN(2))) IF (tpreclist(ji)%calc) ALLOCATE(ITAB2D2(IDIMLEN(1),IDIMLEN(2))) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB2D) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB2D) CASE DEFAULT CALL PRINT_MSG(NVERB_WARNING,'IO','fill_files','too many dimensions for ' & //TRIM(tpreclist(ISRC)%name)//' => ignored') @@ -758,13 +758,13 @@ END DO SELECT CASE(IDIMS) CASE (0) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB1D2(1)) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB1D2(1)) ITAB1D(1) = ITAB1D(1) + ITAB1D2(1) CASE (1) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB1D2) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB1D2) ITAB1D(:) = ITAB1D(:) + ITAB1D2(:) CASE (2) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB2D2) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB2D2) ITAB2D(:,:) = ITAB2D(:,:) + ITAB2D2(:,:) END SELECT END DO @@ -772,15 +772,15 @@ END DO tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_out(ji) SELECT CASE(IDIMS) CASE (0) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,ITAB1D(1)) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,ITAB1D(1)) DEALLOCATE(ITAB1D) IF (tpreclist(ji)%calc) DEALLOCATE(ITAB1D2) CASE (1) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,ITAB1D) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,ITAB1D) DEALLOCATE(ITAB1D) IF (tpreclist(ji)%calc) DEALLOCATE(ITAB1D2) CASE (2) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,ITAB2D) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,ITAB2D) DEALLOCATE(ITAB2D) IF (tpreclist(ji)%calc) DEALLOCATE(ITAB2D2) END SELECT @@ -793,15 +793,15 @@ END DO SELECT CASE(IDIMS) CASE (0) ALLOCATE(GTAB1D(1)) - CALL IO_READ_FIELD (INFILES(1)%TFILE, tpreclist(ji)%TFIELD,GTAB1D(1)) + CALL IO_Field_read (INFILES(1)%TFILE, tpreclist(ji)%TFIELD,GTAB1D(1)) tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_out(ji) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,GTAB1D(1)) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,GTAB1D(1)) DEALLOCATE(GTAB1D) CASE (1) ALLOCATE(GTAB1D(IDIMLEN(1))) - CALL IO_READ_FIELD (INFILES(1)%TFILE, tpreclist(ji)%TFIELD,GTAB1D) + CALL IO_Field_read (INFILES(1)%TFILE, tpreclist(ji)%TFIELD,GTAB1D) tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_out(ji) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,GTAB1D) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,GTAB1D) DEALLOCATE(GTAB1D) CASE DEFAULT CALL PRINT_MSG(NVERB_WARNING,'IO','fill_files','too many dimensions for ' & @@ -826,23 +826,23 @@ END DO CASE (0) ALLOCATE(XTAB1D(1)) IF (tpreclist(ji)%calc) ALLOCATE(XTAB1D2(1)) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB1D(1)) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB1D(1)) CASE (1) ALLOCATE(XTAB1D(IDIMLEN(1))) IF (tpreclist(ji)%calc) ALLOCATE(XTAB1D2(IDIMLEN(1))) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB1D) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB1D) CASE (2) ALLOCATE(XTAB2D(IDIMLEN(1),IDIMLEN(2))) IF (tpreclist(ji)%calc) ALLOCATE(XTAB2D2(IDIMLEN(1),IDIMLEN(2))) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB2D) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB2D) CASE (3) ALLOCATE(XTAB3D(IDIMLEN(1),IDIMLEN(2),IDIMLEN(3))) IF (tpreclist(ji)%calc) ALLOCATE(XTAB3D2(IDIMLEN(1),IDIMLEN(2),IDIMLEN(3))) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB3D) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB3D) CASE (4) ALLOCATE(XTAB4D(IDIMLEN(1),IDIMLEN(2),IDIMLEN(3),IDIMLEN(4))) IF (tpreclist(ji)%calc) ALLOCATE(XTAB4D2(IDIMLEN(1),IDIMLEN(2),IDIMLEN(3),IDIMLEN(4))) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB4D) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB4D) CASE DEFAULT CALL PRINT_MSG(NVERB_WARNING,'IO','fill_files','too many dimensions for ' & //TRIM(tpreclist(ISRC)%name)//' => ignored') @@ -855,19 +855,19 @@ END DO SELECT CASE(IDIMS) CASE (0) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB1D2(1)) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB1D2(1)) XTAB1D(1) = XTAB1D(1) + XTAB1D2(1) CASE (1) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB1D2) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB1D2) XTAB1D(:) = XTAB1D(:) + XTAB1D2(:) CASE (2) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB2D2) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB2D2) XTAB2D(:,:) = XTAB2D(:,:) + XTAB2D2(:,:) CASE (3) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB3D2) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB3D2) XTAB3D(:,:,:) = XTAB3D(:,:,:) + XTAB3D2(:,:,:) CASE (4) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB4D2) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB4D2) XTAB4D(:,:,:,:) = XTAB4D(:,:,:,:) + XTAB4D2(:,:,:,:) END SELECT END DO @@ -875,23 +875,23 @@ END DO tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_out(ji) SELECT CASE(IDIMS) CASE (0) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB1D(1)) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB1D(1)) DEALLOCATE(XTAB1D) IF (tpreclist(ji)%calc) DEALLOCATE(XTAB1D2) CASE (1) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB1D) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB1D) DEALLOCATE(XTAB1D) IF (tpreclist(ji)%calc) DEALLOCATE(XTAB1D2) CASE (2) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB2D) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB2D) DEALLOCATE(XTAB2D) IF (tpreclist(ji)%calc) DEALLOCATE(XTAB2D2) CASE (3) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB3D) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB3D) DEALLOCATE(XTAB3D) IF (tpreclist(ji)%calc) DEALLOCATE(XTAB3D2) CASE (4) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB4D) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB4D) DEALLOCATE(XTAB4D) IF (tpreclist(ji)%calc) DEALLOCATE(XTAB4D2) END SELECT @@ -908,9 +908,9 @@ END DO ALLOCATE(CHARACTER(LEN=tpreclist(ji)%NSIZE)::YTAB0D) tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_in(ji) - CALL IO_READ_FIELD (INFILES(1)%TFILE, tpreclist(ji)%TFIELD,YTAB0D) + CALL IO_Field_read (INFILES(1)%TFILE, tpreclist(ji)%TFIELD,YTAB0D) tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_out(ji) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,YTAB0D) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,YTAB0D) DEALLOCATE(YTAB0D) @@ -923,9 +923,9 @@ END DO CYCLE END IF tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_in(ji) - CALL IO_READ_FIELD (INFILES(1)%TFILE, tpreclist(ji)%TFIELD%CMNHNAME,TZDATE) + CALL IO_Field_read (INFILES(1)%TFILE, tpreclist(ji)%TFIELD%CMNHNAME,TZDATE) tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_out(ji) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,TZDATE) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,TZDATE) CASE default @@ -947,12 +947,12 @@ END DO USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX USE MODD_GRID, ONLY: XBETA, XRPK, XLAT0, XLON0, XLATORI, XLONORI USE MODD_GRID_n, ONLY: LSLEVE, XXHAT, XYHAT, XZHAT - USE MODD_IO_ll, ONLY: LIOCDF4 + USE MODD_IO, ONLY: LIOCDF4 USE MODD_PARAMETERS, ONLY: JPHEXT USE MODD_PARAMETERS_ll, ONLY: JPHEXT_ll=>JPHEXT, JPVEXT_ll=>JPVEXT USE MODD_TIME_n, ONLY: TDTCUR, TDTMOD - USE MODE_FM, ONLY: IO_FILE_OPEN_ll, IO_FILE_CLOSE_ll + USE MODE_IO_FILE, ONLY: IO_FILE_OPEN, IO_FILE_CLOSE USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST TYPE(TFILE_ELT),DIMENSION(:),INTENT(OUT) :: infiles @@ -981,7 +981,7 @@ END DO ! NetCDF ! CALL IO_FILE_ADD2LIST(INFILES(1)%TFILE,HINFILE,'MNH','READ',HFORMAT='NETCDF4') - CALL IO_FILE_OPEN_ll(INFILES(1)%TFILE) + CALL IO_FILE_OPEN(INFILES(1)%TFILE) nbvar_infile = INFILES(1)%TFILE%NNCNAR ELSE @@ -990,7 +990,7 @@ END DO ! CALL IO_FILE_ADD2LIST(INFILES(1)%TFILE,HINFILE,'MNH','READ', & HFORMAT='LFI',KLFIVERB=0) - CALL IO_FILE_OPEN_ll(INFILES(1)%TFILE) + CALL IO_FILE_OPEN(INFILES(1)%TFILE) ilu = INFILES(1)%TFILE%NLFIFLU @@ -998,54 +998,54 @@ END DO IF (options(OPTLIST)%set) THEN CALL LFILAF(iresp,ilu,lfalse) - CALL IO_FILE_CLOSE_ll(INFILES(1)%TFILE) + CALL IO_FILE_CLOSE(INFILES(1)%TFILE) return END IF END IF ! - !Read problem dimensions and some grid variables (needed to determine domain size and also by IO_FILE_OPEN_ll to create netCDF files) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'JPHEXT',JPHEXT) + !Read problem dimensions and some grid variables (needed to determine domain size and also by IO_FILE_OPEN to create netCDF files) + CALL IO_Field_read(INFILES(1)%TFILE,'JPHEXT',JPHEXT) JPHEXT_ll = JPHEXT JPVEXT_ll = JPVEXT ! ALLOCATE(NIMAX_ll,NJMAX_ll,NKMAX) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'IMAX',NIMAX_ll) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'JMAX',NJMAX_ll) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'KMAX',NKMAX,IRESP2) + CALL IO_Field_read(INFILES(1)%TFILE,'IMAX',NIMAX_ll) + CALL IO_Field_read(INFILES(1)%TFILE,'JMAX',NJMAX_ll) + CALL IO_Field_read(INFILES(1)%TFILE,'KMAX',NKMAX,IRESP2) IF (IRESP2/=0) NKMAX = 0 ! - CALL IO_READ_FIELD(INFILES(1)%TFILE,'PROGRAM',CPROGRAM_ORIG) + CALL IO_Field_read(INFILES(1)%TFILE,'PROGRAM',CPROGRAM_ORIG) ! ALLOCATE(CSTORAGE_TYPE) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'STORAGE_TYPE',CSTORAGE_TYPE) + CALL IO_Field_read(INFILES(1)%TFILE,'STORAGE_TYPE',CSTORAGE_TYPE) ! ALLOCATE(XXHAT(NIMAX_ll+2*JPHEXT)) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'XHAT',XXHAT) + CALL IO_Field_read(INFILES(1)%TFILE,'XHAT',XXHAT) ALLOCATE(XYHAT(NJMAX_ll+2*JPHEXT)) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'YHAT',XYHAT) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'CARTESIAN',LCARTESIAN) + CALL IO_Field_read(INFILES(1)%TFILE,'YHAT',XYHAT) + CALL IO_Field_read(INFILES(1)%TFILE,'CARTESIAN',LCARTESIAN) ! - CALL IO_READ_FIELD(INFILES(1)%TFILE,'LAT0',XLAT0) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'LON0',XLON0) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'BETA',XBETA) + CALL IO_Field_read(INFILES(1)%TFILE,'LAT0',XLAT0) + CALL IO_Field_read(INFILES(1)%TFILE,'LON0',XLON0) + CALL IO_Field_read(INFILES(1)%TFILE,'BETA',XBETA) ! IF (.NOT.LCARTESIAN) THEN - CALL IO_READ_FIELD(INFILES(1)%TFILE,'RPK', XRPK) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'LATORI',XLATORI) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'LONORI',XLONORI) + CALL IO_Field_read(INFILES(1)%TFILE,'RPK', XRPK) + CALL IO_Field_read(INFILES(1)%TFILE,'LATORI',XLATORI) + CALL IO_Field_read(INFILES(1)%TFILE,'LONORI',XLONORI) ENDIF ! IF (TRIM(CPROGRAM_ORIG)/='PGD' .AND. TRIM(CPROGRAM_ORIG)/='NESPGD' .AND. TRIM(CPROGRAM_ORIG)/='ZOOMPG' & .AND. .NOT.(TRIM(CPROGRAM_ORIG)=='REAL' .AND. CSTORAGE_TYPE=='SU') ) THEN !condition to detect PREP_SURFEX ALLOCATE(XZHAT(NKMAX+2*JPVEXT)) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'ZHAT',XZHAT) + CALL IO_Field_read(INFILES(1)%TFILE,'ZHAT',XZHAT) ALLOCATE(LSLEVE) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'SLEVE',LSLEVE) + CALL IO_Field_read(INFILES(1)%TFILE,'SLEVE',LSLEVE) ALLOCATE(TDTMOD) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'DTMOD',TDTMOD,IRESP2) + CALL IO_Field_read(INFILES(1)%TFILE,'DTMOD',TDTMOD,IRESP2) IF(IRESP2/=0) DEALLOCATE(TDTMOD) ALLOCATE(TDTCUR) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'DTCUR',TDTCUR,IRESP2) + CALL IO_Field_read(INFILES(1)%TFILE,'DTCUR',TDTCUR,IRESP2) IF(IRESP2/=0) DEALLOCATE(TDTCUR) END IF ! @@ -1061,7 +1061,7 @@ END DO idx = KNFILES_OUT CALL IO_FILE_ADD2LIST(outfiles(idx)%TFILE,HOUTFILE,'MNH','WRITE', & HFORMAT='NETCDF4',OOLD=.TRUE.) - CALL IO_FILE_OPEN_ll(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) + CALL IO_FILE_OPEN(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) IF (options(OPTCOMPRESS)%set) THEN outfiles(idx)%tfile%LNCCOMPRESS = .TRUE. @@ -1084,7 +1084,7 @@ END DO CALL IO_FILE_ADD2LIST(outfiles(idx)%TFILE,houtfile,'MNH','WRITE', & HFORMAT='LFI',KLFIVERB=0,OOLD=.TRUE.) LIOCDF4 = .FALSE. !Necessary to open correctly the LFI file - CALL IO_FILE_OPEN_ll(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) + CALL IO_FILE_OPEN(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) LIOCDF4 = .TRUE. END IF ! @@ -1095,7 +1095,7 @@ END DO idx = KNFILES_OUT CALL IO_FILE_ADD2LIST(outfiles(idx)%TFILE,'dummy_file','MNH','WRITE', & HFORMAT='NETCDF4',OOLD=.TRUE.) - CALL IO_FILE_OPEN_ll(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) + CALL IO_FILE_OPEN(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) END IF PRINT *,'--> Converted to file: ', TRIM(houtfile) @@ -1103,7 +1103,7 @@ END DO END SUBROUTINE OPEN_FILES SUBROUTINE OPEN_SPLIT_NCFILES_OUT(outfiles,KNFILES_OUT,houtfile,nbvar,options) - USE MODE_FM, ONLY: IO_FILE_OPEN_ll + USE MODE_IO_FILE, ONLY: IO_FILE_OPEN USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST TYPE(TFILE_ELT),DIMENSION(:), INTENT(INOUT) :: outfiles @@ -1150,7 +1150,7 @@ END DO filename = trim(houtfile)//'.'//TRIM(YVARS(ji)) CALL IO_FILE_ADD2LIST(outfiles(ji)%TFILE,filename,'MNH','WRITE', & HFORMAT='NETCDF4') - CALL IO_FILE_OPEN_ll(outfiles(ji)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) + CALL IO_FILE_OPEN(outfiles(ji)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) IF (options(OPTCOMPRESS)%set) THEN outfiles(ji)%tfile%LNCCOMPRESS = .TRUE. @@ -1168,7 +1168,7 @@ END DO END SUBROUTINE OPEN_SPLIT_NCFILES_OUT SUBROUTINE CLOSE_FILES(filelist,KNFILES) - USE MODE_FM, ONLY: IO_FILE_CLOSE_ll + USE MODE_IO_FILE, ONLY: IO_FILE_CLOSE TYPE(TFILE_ELT),DIMENSION(:),INTENT(INOUT) :: filelist INTEGER, INTENT(IN) :: KNFILES @@ -1179,13 +1179,13 @@ END DO CALL PRINT_MSG(NVERB_DEBUG,'IO','CLOSE_FILES','called') DO ji=1,KNFILES - IF (filelist(ji)%TFILE%LOPENED) CALL IO_FILE_CLOSE_ll(filelist(ji)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) + IF (filelist(ji)%TFILE%LOPENED) CALL IO_FILE_CLOSE(filelist(ji)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) END DO END SUBROUTINE CLOSE_FILES - SUBROUTINE IO_GET_METADATA_NC4(KFILE_ID,KVAR_ID,TPREC) + SUBROUTINE IO_Metadata_get_nc4(KFILE_ID,KVAR_ID,TPREC) USE MODD_DIM_n, ONLY: NKMAX USE MODD_PARAMETERS, ONLY: JPVEXT @@ -1198,7 +1198,7 @@ END DO INTEGER(KIND=IDCDF_KIND) :: ISTATUS INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IDIMS_ID - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_GET_METADATA_NC4','called') + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Metadata_get_nc4','called') ISTATUS = NF90_INQUIRE_VARIABLE(KFILE_ID,KVAR_ID,NDIMS = TPREC%NDIMS_FILE, & XTYPE = TPREC%NTYPE_FILE, DIMIDS = IDIMS_ID) @@ -1262,12 +1262,12 @@ END DO ISTATUS = NF90_GET_ATT(KFILE_ID,KVAR_ID,'units',TPREC%CUNITS_FILE) IF (ISTATUS /= NF90_NOERR) TPREC%CUNITS_FILE = '' - END SUBROUTINE IO_GET_METADATA_NC4 + END SUBROUTINE IO_Metadata_get_nc4 - SUBROUTINE IO_FILL_DIMS_NC4(TPFILE,TPREC,KRESP) - USE MODD_IO_ll, ONLY: TFILEDATA - use mode_io_tools_nc4, only: getdimcdf, io_find_dim_byname_nc4 + SUBROUTINE IO_Dims_fill_nc4(TPFILE,TPREC,KRESP) + USE MODD_IO, ONLY: TFILEDATA + use mode_io_tools_nc4, only: IO_Dimcdf_get_nc4, IO_Dim_find_byname_nc4 TYPE(TFILEDATA),INTENT(IN) :: TPFILE TYPE(workfield),INTENT(INOUT) :: TPREC @@ -1276,12 +1276,12 @@ END DO INTEGER :: JJ TYPE(DIMCDF),POINTER :: TZDIMPTR - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILL_DIMS_NC4','called') + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Dims_fill_nc4','called') KRESP = 0 IF (TPREC%NDIMS_FILE<TPREC%TFIELD%NDIMS) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILL_DIMS_NC4','less dimensions than expected for '//TRIM(TPREC%TFIELD%CMNHNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dims_fill_nc4','less dimensions than expected for '//TRIM(TPREC%TFIELD%CMNHNAME)// & ' => ignored') TPREC%tbw = .FALSE. TPREC%tbr = .FALSE. @@ -1293,10 +1293,10 @@ END DO DO JJ=1,TPREC%TFIELD%NDIMS !DO JJ=1,TPREC%NDIMS_FILE !NDIMS_FILE can be bigger than NDIMS due to time dimension (it can be ignored here) - CALL IO_FIND_DIM_BYNAME_NC4(TPFILE,TPREC%CDIMNAMES_FILE(JJ),TPREC%TDIMS(JJ),KRESP) + CALL IO_Dim_find_byname_nc4(TPFILE,TPREC%CDIMNAMES_FILE(JJ),TPREC%TDIMS(JJ),KRESP) !If dimension not found => create it IF (KRESP/=0) THEN - TZDIMPTR => GETDIMCDF(TPFILE,TPREC%NDIMSIZES_FILE(JJ)) + TZDIMPTR => IO_Dimcdf_get_nc4(TPFILE,TPREC%NDIMSIZES_FILE(JJ)) TPREC%TDIMS(JJ) = TZDIMPTR KRESP = 0 END IF @@ -1308,6 +1308,6 @@ END DO END IF END DO - END SUBROUTINE IO_FILL_DIMS_NC4 + END SUBROUTINE IO_Dims_fill_nc4 END MODULE mode_util diff --git a/src/LIB/SURCOUCHE/src/io_write_field.f90 b/src/LIB/SURCOUCHE/src/io_write_field.f90 deleted file mode 100644 index 70bca359e..000000000 --- a/src/LIB/SURCOUCHE/src/io_write_field.f90 +++ /dev/null @@ -1,500 +0,0 @@ -!MNH_LIC Copyright 2016-2018 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -! Original version: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! -MODULE MODE_IO_WRITE_FIELD -! -USE MODD_IO_ll, ONLY: TOUTBAK -USE MODE_FIELD -USE MODE_FMWRIT -! -IMPLICIT NONE -! -CONTAINS -! -SUBROUTINE IO_WRITE_FIELDLIST(TPOUTPUT) -! -USE MODE_MODELN_HANDLER, ONLY : GET_CURRENT_MODEL_INDEX -! -IMPLICIT NONE -! -TYPE(TOUTBAK), INTENT(IN) :: TPOUTPUT !Output structure -! -INTEGER :: IDX -INTEGER :: IMI -INTEGER :: JI -! -IMI = GET_CURRENT_MODEL_INDEX() -! -DO JI = 1,SIZE(TPOUTPUT%NFIELDLIST) - IDX = TPOUTPUT%NFIELDLIST(JI) - SELECT CASE (TFIELDLIST(IDX)%NDIMS) - ! - !0D output - ! - CASE (0) - SELECT CASE (TFIELDLIST(IDX)%NTYPE) - ! - !0D real - ! - CASE (TYPEREAL) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X0D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X0D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X0D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 0D logical fields') - END IF - ! - !0D integer - ! - CASE (TYPEINT) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N0D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_N0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N0D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_N0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N0D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 0D integer fields') - END IF - ! - !0D logical - ! - CASE (TYPELOG) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_L0D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_L0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_L0D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_L0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_L0D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 0D logical fields') - END IF - ! - !0D string - ! - CASE (TYPECHAR) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_C0D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_C0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_C0D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_C0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_C0D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 0D character fields') - END IF - ! - !0D date/time - ! - CASE (TYPEDATE) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_T0D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_T0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_T0D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_T0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_T0D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 0D date/time fields') - END IF - ! - !0D other types - ! - CASE DEFAULT - PRINT *,'FATAL: IO_WRITE_FIELDLIST: type not yet supported for 0D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT - ! - !1D output - ! - CASE (1) - SELECT CASE (TFIELDLIST(IDX)%NTYPE) - ! - !1D real - ! - CASE (TYPEREAL) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X1D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X1D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X1D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 1D real fields') - END IF -! ! -! !1D integer -! ! -! CASE (TYPEINT) -! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N1D) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_N1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N1D(IMI)%DATA) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_N1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN -! CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N1D(IMI)%DATA) -! ELSE -! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 1D integer fields') -! END IF -! ! -! !1D logical -! ! -! CASE (TYPELOG) -! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_L1D) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_L1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_L1D(IMI)%DATA) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_L1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN -! CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_L1D(IMI)%DATA) -! ELSE -! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 1D logical fields') -! END IF -! ! -! !1D string -! ! -! CASE (TYPECHAR) -! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_C1D) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_C1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_C1D(IMI)%DATA) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_C1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN -! CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_C1D(IMI)%DATA) -! ELSE -! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 1D character fields') -! END IF - ! - !1D other types - ! - CASE DEFAULT - PRINT *,'FATAL: IO_WRITE_FIELDLIST: type not yet supported for 1D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT - ! - !2D output - ! - CASE (2) - SELECT CASE (TFIELDLIST(IDX)%NTYPE) - ! - !2D real - ! - CASE (TYPEREAL) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X2D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X2D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X2D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X2D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X2D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 2D real fields') - END IF - ! - !2D integer - ! - CASE (TYPEINT) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N2D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_N2D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N2D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_N2D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N2D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 2D integer fields') - END IF - ! - !2D other types - ! - CASE DEFAULT - PRINT *,'FATAL: IO_WRITE_FIELDLIST: type not yet supported for 2D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT - ! - !3D output - ! - CASE (3) - SELECT CASE (TFIELDLIST(IDX)%NTYPE) - ! - !3D real - ! - CASE (TYPEREAL) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X3D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X3D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X3D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X3D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X3D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not (yet) allowed for 3D real fields') - !PW: TODO?: add missing field in TFIELDLIST? - !CALL IO_WRITE_FIELD_LB(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X3D(IMI)%DATA) - END IF - ! - !3D integer - ! - CASE (TYPEINT) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N3D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_N3D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N3D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_N3D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N3D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not (yet) allowed for 3D integer fields') - !PW: TODO?: add missing field in TFIELDLIST? - !CALL IO_WRITE_FIELD_LB(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_N3D(IMI)%DATA) - END IF - ! - !3D other types - ! - CASE DEFAULT - PRINT *,'FATAL: IO_WRITE_FIELDLIST: type not yet supported for 3D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT - ! - !4D output - ! - CASE (4) - SELECT CASE (TFIELDLIST(IDX)%NTYPE) - ! - !4D real - ! - CASE (TYPEREAL) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X4D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X4D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X4D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X4D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X4D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not (yet) allowed for 4D real fields') - !PW: TODO?: add missing field in TFIELDLIST? - !CALL IO_WRITE_FIELD_LB(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X4D(IMI)%DATA) - END IF - ! - !4D other types - ! - CASE DEFAULT - PRINT *,'FATAL: IO_WRITE_FIELDLIST: type not yet supported for 4D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT -! ! -! !5D output -! ! -! CASE (5) -! SELECT CASE (TFIELDLIST(IDX)%NTYPE) -! ! -! !5D real -! ! -! CASE (TYPEREAL) -! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X5D) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X5D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X5D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN -! CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) -! ELSE -! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not (yet) allowed for 5D real fields') -! !PW: TODO?: add missing field in TFIELDLIST? -! !CALL IO_WRITE_FIELD_LB(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) -! END IF -! ! -! !5D other types -! ! -! CASE DEFAULT -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: type not yet supported for 5D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END SELECT -! ! -! !6D output -! ! -! CASE (6) -! SELECT CASE (TFIELDLIST(IDX)%NTYPE) -! ! -! !6D real -! ! -! CASE (TYPEREAL) -! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X6D) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X6D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X6D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN -! CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) -! ELSE -! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not (yet) allowed for 6D real fields') -! !PW: TODO?: add missing field in TFIELDLIST? -! !CALL IO_WRITE_FIELD_LB(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) -! END IF -! ! -! !6D other types -! ! -! CASE DEFAULT -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: type not yet supported for 4D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END SELECT - ! - !Other number of dimensions - ! - CASE DEFAULT - PRINT *,'FATAL: IO_WRITE_FIELDLIST: number of dimensions not yet supported for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT -END DO -! -END SUBROUTINE IO_WRITE_FIELDLIST -! -! -! -SUBROUTINE IO_WRITE_FIELD_USER(TPOUTPUT) -! -#if 0 -USE MODD_PARAMETERS, ONLY : JPVEXT -USE MODD_DYN_n, ONLY: XTSTEP -USE MODD_FIELD_n, ONLY: XUT, XVT, XRT, XTHT -USE MODD_PRECIP_n, ONLY: XINPRR -#endif -! -IMPLICIT NONE -! -TYPE(TOUTBAK), INTENT(IN) :: TPOUTPUT !Output structure -! -TYPE(TFIELDDATA) :: TZFIELD -! -#if 0 -INTEGER :: IKB -! -IKB=JPVEXT+1 -! -TZFIELD%CMNHNAME = 'UTLOW' -TZFIELD%CSTDNAME = 'x_wind' -TZFIELD%CLONGNAME = '' -TZFIELD%CUNITS = 'm s-1' -TZFIELD%CDIR = 'XY' -TZFIELD%CCOMMENT = 'X_Y_Z_U component of wind at lowest physical level' -TZFIELD%NGRID = 2 -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 2 -TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TZFIELD,XUT(:,:,IKB)) -! -TZFIELD%CMNHNAME = 'VTLOW' -TZFIELD%CSTDNAME = 'y_wind' -TZFIELD%CLONGNAME = '' -TZFIELD%CUNITS = 'm s-1' -TZFIELD%CDIR = 'XY' -TZFIELD%CCOMMENT = 'X_Y_Z_V component of wind at lowest physical level' -TZFIELD%NGRID = 3 -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 2 -TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TZFIELD,XVT(:,:,IKB)) -! -TZFIELD%CMNHNAME = 'THTLOW' -TZFIELD%CSTDNAME = 'air_potential_temperature' -TZFIELD%CLONGNAME = '' -TZFIELD%CUNITS = 'K' -TZFIELD%CDIR = 'XY' -TZFIELD%CCOMMENT = 'X_Y_Z_potential temperature at lowest physical level' -TZFIELD%NGRID = 1 -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 2 -TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TZFIELD,XTHT(:,:,IKB)) -! -TZFIELD%CMNHNAME = 'RVTLOW' -!TZFIELD%CSTDNAME = 'humidity_mixing_ratio' !ratio of the mass of water vapor to the mass of dry air -TZFIELD%CSTDNAME = 'specific_humidity' !mass fraction of water vapor in (moist) air -TZFIELD%CLONGNAME = '' -TZFIELD%CUNITS = 'kg kg-1' -TZFIELD%CDIR = 'XY' -TZFIELD%CCOMMENT = 'X_Y_Z_Vapor mixing Ratio at lowest physical level' -TZFIELD%NGRID = 1 -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 2 -TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TZFIELD,XRT(:,:,IKB,1)) -! -TZFIELD%CMNHNAME = 'ACPRRSTEP' -TZFIELD%CSTDNAME = 'rainfall_amount' -TZFIELD%CLONGNAME = '' -TZFIELD%CUNITS = 'kg m-2' -TZFIELD%CDIR = '' -TZFIELD%CCOMMENT = 'X_Y_ACcumulated Precipitation Rain Rate during timestep' -TZFIELD%NGRID = 1 -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 2 -TZFIELD%LTIMEDEP = .TRUE. -!XACPRR is multiplied by 1000. to convert from m to kg m-2 (water density is assumed to be 1000 kg m-3) -CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TZFIELD,XINPRR*XTSTEP*1.0E3) -#endif -! -END SUBROUTINE IO_WRITE_FIELD_USER -! -END MODULE MODE_IO_WRITE_FIELD diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90 index eaab4a3f0..5d4b5b00e 100644 --- a/src/LIB/SURCOUCHE/src/modd_io.f90 +++ b/src/LIB/SURCOUCHE/src/modd_io.f90 @@ -7,10 +7,10 @@ ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN (removed ISTDOUT, ISTDERR, added NNULLUNIT, CNULLFILE) ! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll to allow to disable writes (for bench purposes) -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !----------------------------------------------------------------- -MODULE MODD_IO_ll +MODULE MODD_IO ! USE MODD_NETCDF, ONLY: IDCDF_KIND, IOCDF, TPTR2DIMCDF USE MODD_PARAMETERS, ONLY: NDIRNAMELGTMAX, NFILENAMELGTMAX @@ -20,7 +20,7 @@ IMPLICIT NONE ! INTEGER, PARAMETER :: NVERB_NO=0, NVERB_FATAL=1, NVERB_ERROR=2, NVERB_WARNING=3, NVERB_INFO=4, NVERB_DEBUG=5 -INTEGER :: NNULLUNIT = -1 ! /dev/null fortran unit, value set in INITIO_ll +INTEGER :: NNULLUNIT = -1 ! /dev/null fortran unit, value set in IO_Init CHARACTER(LEN=*), PARAMETER :: CNULLFILE = "/dev/null" INTEGER, SAVE :: NIO_RANK ! Rank of IO process @@ -137,4 +137,4 @@ TYPE(TFILEDATA),POINTER,SAVE :: TFILE_OUTPUTLISTING => NULL() !Pointer used to !Non existing file which can be used as a dummy target TYPE(TFILEDATA),TARGET, SAVE :: TFILE_DUMMY = TFILEDATA(CNAME="dummy",CDIRNAME=NULL(),TFILES_IOZ=NULL(),TNCCOORDS=NULL()) -END MODULE MODD_IO_ll +END MODULE MODD_IO diff --git a/src/LIB/SURCOUCHE/src/mode_allocbuff.f90 b/src/LIB/SURCOUCHE/src/mode_allocbuff.f90 index b6ba60133..e6d0e9a1a 100644 --- a/src/LIB/SURCOUCHE/src/mode_allocbuff.f90 +++ b/src/LIB/SURCOUCHE/src/mode_allocbuff.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications: @@ -8,8 +8,8 @@ !----------------------------------------------------------------- MODULE MODE_ALLOCBUFFER_ll -USE MODE_TOOLS_ll, ONLY : GET_GLOBALDIMS_ll -USE MODD_PARAMETERS_ll,ONLY : JPHEXT +USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll +USE MODD_PARAMETERS_ll, ONLY: JPHEXT IMPLICIT NONE @@ -51,7 +51,7 @@ END SELECT END SUBROUTINE ALLOCBUFFER_N1 SUBROUTINE ALLOCBUFFER_N2(KTAB_P,KTAB,HDIR,OALLOC) -USE MODD_IO_ll, ONLY : LPACK, L2D +USE MODD_IO, ONLY: LPACK, L2D ! INTEGER,DIMENSION(:,:),POINTER :: KTAB_P INTEGER,DIMENSION(:,:),TARGET,INTENT(IN) :: KTAB @@ -85,7 +85,7 @@ END SELECT END SUBROUTINE ALLOCBUFFER_N2 SUBROUTINE ALLOCBUFFER_N3(KTAB_P,KTAB,HDIR,OALLOC) -USE MODD_IO_ll, ONLY : LPACK, L2D +USE MODD_IO, ONLY: LPACK, L2D ! INTEGER,DIMENSION(:,:,:),POINTER :: KTAB_P INTEGER,DIMENSION(:,:,:),TARGET,INTENT(IN) :: KTAB @@ -179,7 +179,7 @@ END SELECT END SUBROUTINE ALLOCBUFFER_X1 SUBROUTINE ALLOCBUFFER_X2(PTAB_P,PTAB,HDIR,OALLOC, KIMAX_ll, KJMAX_ll) -USE MODD_IO_ll, ONLY : LPACK, L2D +USE MODD_IO, ONLY: LPACK, L2D ! REAL,DIMENSION(:,:),POINTER :: PTAB_P REAL,DIMENSION(:,:),TARGET,INTENT(IN) :: PTAB @@ -229,7 +229,7 @@ END SELECT END SUBROUTINE ALLOCBUFFER_X2 SUBROUTINE ALLOCBUFFER_X3(PTAB_P,PTAB,HDIR,OALLOC) -USE MODD_IO_ll, ONLY : LPACK, L2D +USE MODD_IO, ONLY: LPACK, L2D ! REAL,DIMENSION(:,:,:),POINTER :: PTAB_P REAL,DIMENSION(:,:,:),TARGET,INTENT(IN) :: PTAB @@ -263,7 +263,7 @@ END SELECT END SUBROUTINE ALLOCBUFFER_X3 SUBROUTINE ALLOCBUFFER_X4(PTAB_P,PTAB,HDIR,OALLOC) -USE MODD_IO_ll, ONLY : LPACK, L2D +USE MODD_IO, ONLY: LPACK, L2D ! REAL,DIMENSION(:,:,:,:),POINTER :: PTAB_P REAL,DIMENSION(:,:,:,:),TARGET,INTENT(IN) :: PTAB @@ -299,7 +299,7 @@ END SELECT END SUBROUTINE ALLOCBUFFER_X4 SUBROUTINE ALLOCBUFFER_X5(PTAB_P,PTAB,HDIR,OALLOC) -USE MODD_IO_ll, ONLY : LPACK, L2D +USE MODD_IO, ONLY: LPACK, L2D ! REAL,DIMENSION(:,:,:,:,:),POINTER :: PTAB_P REAL,DIMENSION(:,:,:,:,:),TARGET,INTENT(IN) :: PTAB @@ -337,7 +337,7 @@ END SELECT END SUBROUTINE ALLOCBUFFER_X5 SUBROUTINE ALLOCBUFFER_X6(PTAB_P,PTAB,HDIR,OALLOC) -USE MODD_IO_ll, ONLY : LPACK, L2D +USE MODD_IO, ONLY: LPACK, L2D ! REAL,DIMENSION(:,:,:,:,:,:),POINTER :: PTAB_P REAL,DIMENSION(:,:,:,:,:,:),TARGET,INTENT(IN) :: PTAB diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90 index e0858d4b3..a7bcc64c5 100644 --- a/src/LIB/SURCOUCHE/src/mode_field.f90 +++ b/src/LIB/SURCOUCHE/src/mode_field.f90 @@ -12,7 +12,7 @@ MODULE MODE_FIELD ! USE MODD_CONF, ONLY : CPROGRAM -USE MODD_IO_ll, ONLY : NVERB_DEBUG,NVERB_INFO,NVERB_WARNING,NVERB_ERROR,NVERB_FATAL +USE MODD_IO, ONLY : NVERB_DEBUG, NVERB_INFO, NVERB_WARNING, NVERB_ERROR, NVERB_FATAL USE MODD_PARAMETERS USE MODD_TYPE_DATE, ONLY : DATE_TIME #if defined(MNH_IOCDF4) diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 deleted file mode 100644 index 04252af39..000000000 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ /dev/null @@ -1,34 +0,0 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -! Author(s): -! -! Modifications: -! D. Gazen April 2016: change error message -! P. Wautelet May 2016 : use NetCDF Fortran module -! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 29/10/2018: better detection of older MNH version numbers -! P. Wautelet 13/12/2018: moved some operations to new mode_io_*_nc4 modules -! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN + move management -! of NNCID and NLFIFLU to the nc4 and lfi subroutines -! P. Wautelet 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll -! to allow to disable writes (for bench purposes) -! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST -! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) -! P. Wautelet 19/02/2019: simplification/restructuration/cleaning of open/close subroutines (TBCto be continued) -! P. Wautelet 27/02/2019: use recursive calls to open/close DES files -! P. Wautelet 27/02/2019: remove CLOSE_ll subroutine (from mode_io.f90) -!----------------------------------------------------------------- - -MODULE MODE_FM - -use mode_io_ll -use mode_io_file - -IMPLICIT NONE - -END MODULE MODE_FM diff --git a/src/LIB/SURCOUCHE/src/mode_ga.f90 b/src/LIB/SURCOUCHE/src/mode_ga.f90 index 7457a7f3e..635888394 100644 --- a/src/LIB/SURCOUCHE/src/mode_ga.f90 +++ b/src/LIB/SURCOUCHE/src/mode_ga.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -6,7 +6,8 @@ ! Author: J.Escobar ! ! Modifications: -! P.Wautelet: 14/12/2018: split from fmwrit_ll.f90 +! J. Escobar 05/02/2015: use JPHEXT from MODD_PARAMETERS_ll +! P. Wautelet 14/12/2018: split from fmwrit_ll.f90 !----------------------------------------------------------------- #ifdef MNH_GA MODULE MODE_GA @@ -36,15 +37,12 @@ MODULE MODE_GA SUBROUTINE MNH_INIT_GA(MY_NI,MY_NJ,MY_NK,HRECFM,HRW_MODE) -! -! Modification -! J.Escobar 5/02/2015 : use JPHEXT from MODD_PARAMETERS_ll + USE MODD_IO, ONLY: ISP + USE MODD_PARAMETERS_ll, ONLY: JPHEXT - USE MODE_TOOLS_ll, ONLY : GET_GLOBALDIMS_ll - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_IO_ll, ONLY : ISP - USE MODE_GATHER_ll, ONLY : GET_DOMWRITE_ll - USE MODE_SCATTER_ll, ONLY : GET_DOMREAD_ll + USE MODE_GATHER_ll, ONLY: GET_DOMWRITE_ll + USE MODE_SCATTER_ll, ONLY: GET_DOMREAD_ll + USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll IMPLICIT NONE diff --git a/src/LIB/SURCOUCHE/src/mode_gather.f90 b/src/LIB/SURCOUCHE/src/mode_gather.f90 index 756d8dcaa..adf0d7401 100644 --- a/src/LIB/SURCOUCHE/src/mode_gather.f90 +++ b/src/LIB/SURCOUCHE/src/mode_gather.f90 @@ -1,8 +1,15 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- +! Modifications: +! J.Escobar 10/02/2012 : Bug , in MPI_RECV replace MPI_STATUSES_IGNORE +! with MPI_STATUS_IGNORE +! J.Escobar 22/05/2012 : Bug in ISEND with non-contiguous buffer , reintroduce intermediate buffer +! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! +!----------------------------------------------------------------- #ifdef MNH_MPI_DOUBLE_PRECISION #define MPI_FLOAT MPI_DOUBLE_PRECISION @@ -12,15 +19,9 @@ MODULE MODE_GATHER_ll -! Modifications: -! J.Escobar 10/02/2012 : Bug , in MPI_RECV replace MPI_STATUSES_IGNORE -! with MPI_STATUS_IGNORE -! J.Escobar 22/05/2012 : Bug in ISEND with non-contiguous buffer , reintroduce intermediate buffer -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! USE MODD_MPIF !JUANZ -USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD +USE MODD_VAR_ll, ONLY: NMNH_COMM_WORLD !JUANZ IMPLICIT NONE @@ -182,8 +183,8 @@ END SUBROUTINE GATHERALL_N2 ! Gather des champs XX (ou YY) ! SUBROUTINE GATHERXX_X1(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC -USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE +USE MODD_IO, ONLY: ISP, ISNPROC +USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:),TARGET,INTENT(IN) :: PSEND @@ -256,7 +257,7 @@ END SUBROUTINE GATHERXX_X1 SUBROUTINE GATHERXX_X2(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:),TARGET,INTENT(IN) :: PSEND @@ -319,7 +320,7 @@ END IF END SUBROUTINE GATHERXX_X2 SUBROUTINE GATHERXX_X3(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:,:),TARGET,INTENT(IN) :: PSEND @@ -382,7 +383,7 @@ END IF END SUBROUTINE GATHERXX_X3 SUBROUTINE GATHERXX_X4(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:,:,:),TARGET,INTENT(IN) :: PSEND @@ -445,7 +446,7 @@ END IF END SUBROUTINE GATHERXX_X4 SUBROUTINE GATHERXX_X5(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:,:,:,:),TARGET,INTENT(IN) :: PSEND @@ -508,7 +509,7 @@ END IF END SUBROUTINE GATHERXX_X5 SUBROUTINE GATHERXX_X6(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:,:,:,:,:),TARGET,INTENT(IN) :: PSEND @@ -571,7 +572,7 @@ END IF END SUBROUTINE GATHERXX_X6 SUBROUTINE GATHERXX_N1(HDIR,KSEND,KRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR INTEGER,DIMENSION(:),TARGET,INTENT(IN) :: KSEND @@ -636,7 +637,7 @@ END SUBROUTINE GATHERXX_N1 SUBROUTINE GATHERXX_N2(HDIR,KSEND,KRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR INTEGER,DIMENSION(:,:),TARGET,INTENT(IN) :: KSEND @@ -700,7 +701,7 @@ END IF END SUBROUTINE GATHERXX_N2 SUBROUTINE GATHERXX_N3(HDIR,KSEND,KRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR INTEGER,DIMENSION(:,:,:),TARGET,INTENT(IN) :: KSEND @@ -761,7 +762,7 @@ END IF END SUBROUTINE GATHERXX_N3 SUBROUTINE GATHERXX_L1(HDIR,OSEND,ORECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR LOGICAL,DIMENSION(:),TARGET,INTENT(IN) :: OSEND @@ -828,8 +829,8 @@ END SUBROUTINE GATHERXX_L1 ! Gather des champs XY ! SUBROUTINE GATHERXY_X2(PSEND,PRECV,KROOT,KCOMM,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) -USE MODD_IO_ll, ONLY : ISP, ISNPROC -USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE +USE MODD_IO, ONLY: ISP, ISNPROC +USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE REAL,DIMENSION(:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:),TARGET,INTENT(INOUT):: PRECV @@ -883,7 +884,7 @@ END IF END SUBROUTINE GATHERXY_X2 SUBROUTINE GATHERXY_X3(PSEND,PRECV,KROOT,KCOMM,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:,:),TARGET,INTENT(INOUT):: PRECV @@ -926,7 +927,7 @@ END IF END SUBROUTINE GATHERXY_X3 SUBROUTINE GATHERXY_X4(PSEND,PRECV,KROOT,KCOMM,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:,:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:,:,:),TARGET,INTENT(INOUT):: PRECV @@ -969,7 +970,7 @@ END IF END SUBROUTINE GATHERXY_X4 SUBROUTINE GATHERXY_X5(PSEND,PRECV,KROOT,KCOMM,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:,:,:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:,:,:,:),TARGET,INTENT(INOUT):: PRECV @@ -1012,7 +1013,7 @@ END IF END SUBROUTINE GATHERXY_X5 SUBROUTINE GATHERXY_X6(PSEND,PRECV,KROOT,KCOMM,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:,:,:,:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:,:,:,:,:),TARGET,INTENT(INOUT):: PRECV @@ -1055,7 +1056,7 @@ END IF END SUBROUTINE GATHERXY_X6 SUBROUTINE GATHERXY_N2(KSEND,KRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC INTEGER,DIMENSION(:,:),TARGET,INTENT(IN) :: KSEND INTEGER,DIMENSION(:,:),TARGET,INTENT(INOUT):: KRECV @@ -1092,7 +1093,7 @@ END IF END SUBROUTINE GATHERXY_N2 SUBROUTINE GATHERXY_N3(KSEND,KRECV,KROOT,KCOMM,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC INTEGER,DIMENSION(:,:,:),TARGET,INTENT(IN) :: KSEND INTEGER,DIMENSION(:,:,:),TARGET,INTENT(INOUT):: KRECV @@ -1133,7 +1134,7 @@ END IF END SUBROUTINE GATHERXY_N3 SUBROUTINE GATHERBOX_X2(PSEND,PRECV,KROOT,KCOMM,KXOBOX,KXEBOX,KYOBOX,KYEBOX) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:),TARGET,INTENT(INOUT):: PRECV @@ -1176,10 +1177,11 @@ END SUBROUTINE GATHERBOX_X2 SUBROUTINE GET_DOMWRITE_ll(KIP,HTYPE,KXOR,KXEND,KYOR,KYEND,& & KXORBOX,KXENDBOX,KYORBOX,KYENDBOX,HINTER) -USE MODD_VAR_ll, ONLY : TCRRT_PROCONF -USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll -USE MODE_TOOLS_ll, ONLY : LWEST_ll,LEAST_ll,LSOUTH_ll,LNORTH_ll -IMPLICIT NONE +USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll +USE MODE_TOOLS_ll, ONLY: LWEST_ll, LEAST_ll, LSOUTH_ll, LNORTH_ll +USE MODD_VAR_ll, ONLY: TCRRT_PROCONF + +IMPLICIT NONE INTEGER, INTENT(IN) :: KIP CHARACTER(LEN=*), INTENT(IN) :: HTYPE diff --git a/src/LIB/SURCOUCHE/src/mode_init_ll.f90 b/src/LIB/SURCOUCHE/src/mode_init_ll.f90 index 257cc2b9c..aa0d0c7c4 100644 --- a/src/LIB/SURCOUCHE/src/mode_init_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_init_ll.f90 @@ -744,15 +744,13 @@ !* 0. DECLARATIONS ! USE MODD_DIM_ll -! USE MODD_STRUCTURE_ll -! USE MODD_VAR_ll, ONLY : NIOUNIT, YOUTPUTFILE - USE MODD_IO_ll, ONLY : ISP + USE MODD_IO, ONLY: ISP #ifdef CPLOASIS - USE MODD_SFX_OASIS, ONLY : LOASIS + USE MODD_SFX_OASIS, ONLY: LOASIS #endif ! #ifdef MNH_GA -USE MODE_GA + USE MODE_GA #endif ! IMPLICIT NONE diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 4ff0f6265..596d631ae 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -6,13 +6,14 @@ ! Author(s) ! D. Gazen ! Modifications: -! P. Wautelet 01/03/2019: move OPEN_ll to mode_io_file.f90 and SET_FMPACK_ll to here from mode_fm.f90 +! P. Wautelet 01/03/2019: move OPEN_ll to mode_io_file.f90 and IO_Pack_set to here from mode_fm.f90 +! P. Wautelet 05/03/2019: rename IO subroutines and modules ! !----------------------------------------------------------------- -MODULE MODE_IO_ll +MODULE MODE_IO USE MODD_MPIF - USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD + USE MODD_VAR_ll, ONLY: NMNH_COMM_WORLD USE MODE_MSG @@ -20,30 +21,30 @@ MODULE MODE_IO_ll PRIVATE - LOGICAL,SAVE :: GCONFIO = .FALSE. ! Turn TRUE when SET_CONFIO_ll is called. + LOGICAL,SAVE :: GCONFIO = .FALSE. ! Turn TRUE when IO_Config_set is called. public :: GCONFIO - public :: INITIO_ll, SET_CONFIO_ll - public :: SET_FMPACK_ll + public :: IO_Init, IO_Config_set + public :: IO_Pack_set CONTAINS - SUBROUTINE SET_CONFIO_ll() + SUBROUTINE IO_Config_set() USE MODN_CONFIO, only: LCDF4, LLFIOUT, LLFIREAD !Use MODN_CONFIO namelist variables - CALL SET_CONFIO_INTERN_ll(LCDF4, LLFIOUT, LLFIREAD) - END SUBROUTINE SET_CONFIO_ll + CALL IO_Config_set_intern(LCDF4, LLFIOUT, LLFIREAD) + END SUBROUTINE IO_Config_set - SUBROUTINE SET_CONFIO_INTERN_ll(OIOCDF4, OLFIOUT, OLFIREAD) - USE MODD_IO_ll, ONLY : LIOCDF4, LLFIOUT, LLFIREAD, LIO_ALLOW_NO_BACKUP, LIO_NO_WRITE + SUBROUTINE IO_Config_set_intern(OIOCDF4, OLFIOUT, OLFIREAD) + USE MODD_IO, ONLY: LIOCDF4, LLFIOUT, LLFIREAD, LIO_ALLOW_NO_BACKUP, LIO_NO_WRITE LOGICAL, INTENT(IN) :: OIOCDF4, OLFIOUT, OLFIREAD - CALL PRINT_MSG(NVERB_DEBUG,'IO','SET_CONFIO_ll','called') + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Config_set','called') IF (GCONFIO) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','SET_CONFIO_ll','already called (ignoring this call)') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Config_set','already called (ignoring this call)') ELSE #if defined(MNH_IOCDF4) LIOCDF4 = OIOCDF4 @@ -51,7 +52,7 @@ CONTAINS LLFIREAD = OLFIREAD IF (.NOT.LIOCDF4 .AND. .NOT.LLFIOUT) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','SET_CONFIO_ll','output format forced to netCDF') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Config_set','output format forced to netCDF') LIOCDF4 = .TRUE. END IF #else @@ -63,15 +64,15 @@ CONTAINS ! Set LIO_ALLOW_NO_BACKUP=.true. if writes are disabled (to be coherent) IF (LIO_NO_WRITE) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','SET_CONFIO_ll','file writes are disabled') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Config_set','file writes are disabled') LIO_ALLOW_NO_BACKUP = .true. END IF END IF - END SUBROUTINE SET_CONFIO_INTERN_ll + END SUBROUTINE IO_Config_set_intern - SUBROUTINE INITIO_ll() - USE MODD_IO_ll, only: CNULLFILE, GSMONOPROC, nio_rank, ISNPROC, ISP, NNULLUNIT + SUBROUTINE IO_Init() + use MODD_IO, only: CNULLFILE, GSMONOPROC, nio_rank, ISNPROC, ISP, NNULLUNIT USE MODE_MNH_WORLD, ONLY: INIT_NMNH_COMM_WORLD @@ -80,10 +81,10 @@ CONTAINS INTEGER :: IERR, IOS character(len=256) :: yioerrmsg - CALL PRINT_MSG(NVERB_DEBUG,'IO','INITIO_ll','called') + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Init','called') CALL INIT_NMNH_COMM_WORLD(IERR) - IF (IERR .NE.0) CALL PRINT_MSG(NVERB_FATAL,'IO','INITIO_ll','problem with remapping of NMNH_COMM_WORLD') + IF (IERR .NE.0) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Init','problem with remapping of NMNH_COMM_WORLD') !! Now MPI is initialized for sure @@ -105,13 +106,13 @@ CONTAINS OPEN(NEWUNIT=NNULLUNIT,STATUS='SCRATCH',ACTION='WRITE',IOSTAT=IOS, IOMSG=yioerrmsg) #endif IF (IOS /= 0) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','INITIO_ll','problem opening /dev/null :'//trim(yioerrmsg)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Init','problem opening /dev/null :'//trim(yioerrmsg)) END IF - END SUBROUTINE INITIO_ll + END SUBROUTINE IO_Init -SUBROUTINE SET_FMPACK_ll(O1D,O2D,OPACK) -USE MODD_IO_ll, ONLY: LPACK, L1D, L2D +SUBROUTINE IO_Pack_set(O1D,O2D,OPACK) +USE MODD_IO, ONLY: LPACK, L1D, L2D USE MODD_VAR_ll, ONLY: IP IMPLICIT NONE @@ -124,6 +125,6 @@ L2D = O2D IF ( IP == 1 ) PRINT *,'INIT L1D,L2D,LPACK = ',L1D,L2D,LPACK -END SUBROUTINE SET_FMPACK_ll +END SUBROUTINE IO_Pack_set -END MODULE MODE_IO_ll +END MODULE MODE_IO diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 index 2efa39b22..5a5fcddb8 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 @@ -3,6 +3,15 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- +! Modifications: +! J. Escobar 22/08/2005: BUG : missing "GOTO 1000" if read field not found +! J. Escobar 13/01/2015: remove comment on BCAST(IRESP in FMREADX2_ll +! J. Escobar 15/09/2015: WENO5 & JPHEXT <> 1 +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! J. Escobar 17/07/2018: reintroduce needed MPI_BARRIER in IO_Field_read_byfield_X3 +! P. Wautelet 29/01/2019: small bug correction in time measurement in IO_Field_read_byfield_X2 +! P. Wautelet 05/03/2019: rename IO subroutines and modules +!----------------------------------------------------------------- #ifdef MNH_MPI_DOUBLE_PRECISION #define MPI_FLOAT MPI_DOUBLE_PRECISION @@ -10,18 +19,9 @@ #define MPI_FLOAT MPI_REAL #endif -MODULE MODE_FMREAD -! -!Correction : -! J.Escobar : 22/08/2005 : BUG : manque un "GOTO 1000" si champs -! lue non trouvé !!! -! J.Escobar : 13/01/2015 : remove comment on BCAST(IRESP in FMREADX2_ll -! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! J.Escobar : 17/07/2018 : reintroduce needed MPI_BARRIER in IO_READ_FIELD_BYFIELD_X3 -! P.Wautelet: 29/01/2019 : small bug correction in time measurement in IO_READ_FIELD_BYFIELD_X2 -! -USE MODD_IO_ll, ONLY : NVERB_FATAL,NVERB_ERROR,NVERB_WARNING,NVERB_INFO,NVERB_DEBUG,TFILEDATA +MODULE MODE_IO_FIELD_READ +! +USE MODD_IO, ONLY : NVERB_FATAL,NVERB_ERROR,NVERB_WARNING,NVERB_INFO,NVERB_DEBUG,TFILEDATA USE MODD_MPIF ! USE MODE_FIELD @@ -35,36 +35,36 @@ IMPLICIT NONE PRIVATE -INTERFACE IO_READ_FIELD - MODULE PROCEDURE IO_READ_FIELD_BYNAME_X0, IO_READ_FIELD_BYNAME_X1, & - IO_READ_FIELD_BYNAME_X2, IO_READ_FIELD_BYNAME_X3, & - IO_READ_FIELD_BYNAME_X4, IO_READ_FIELD_BYNAME_X5, & - IO_READ_FIELD_BYNAME_X6, & - IO_READ_FIELD_BYNAME_N0, IO_READ_FIELD_BYNAME_N1, & - IO_READ_FIELD_BYNAME_N2, & - IO_READ_FIELD_BYNAME_L0, IO_READ_FIELD_BYNAME_L1, & - IO_READ_FIELD_BYNAME_C0, & - IO_READ_FIELD_BYNAME_T0, & - IO_READ_FIELD_BYFIELD_X0,IO_READ_FIELD_BYFIELD_X1, & - IO_READ_FIELD_BYFIELD_X2,IO_READ_FIELD_BYFIELD_X3, & - IO_READ_FIELD_BYFIELD_X4,IO_READ_FIELD_BYFIELD_X5, & - IO_READ_FIELD_BYFIELD_X6, & - IO_READ_FIELD_BYFIELD_N0,IO_READ_FIELD_BYFIELD_N1, & - IO_READ_FIELD_BYFIELD_N2, & - IO_READ_FIELD_BYFIELD_L0,IO_READ_FIELD_BYFIELD_L1, & - IO_READ_FIELD_BYFIELD_C0, & - IO_READ_FIELD_BYFIELD_T0 -END INTERFACE +public :: IO_Field_read, IO_Field_read_lb -INTERFACE IO_READ_FIELD_LB - MODULE PROCEDURE IO_READ_FIELD_BYNAME_LB, IO_READ_FIELD_BYFIELD_LB +INTERFACE IO_Field_read + MODULE PROCEDURE IO_Field_read_byname_X0, IO_Field_read_byname_X1, & + IO_Field_read_byname_X2, IO_Field_read_byname_X3, & + IO_Field_read_byname_X4, IO_Field_read_byname_X5, & + IO_Field_read_byname_X6, & + IO_Field_read_byname_N0, IO_Field_read_byname_N1, & + IO_Field_read_byname_N2, & + IO_Field_read_byname_L0, IO_Field_read_byname_L1, & + IO_Field_read_byname_C0, & + IO_Field_read_byname_T0, & + IO_Field_read_byfield_X0,IO_Field_read_byfield_X1, & + IO_Field_read_byfield_X2,IO_Field_read_byfield_X3, & + IO_Field_read_byfield_X4,IO_Field_read_byfield_X5, & + IO_Field_read_byfield_X6, & + IO_Field_read_byfield_N0,IO_Field_read_byfield_N1, & + IO_Field_read_byfield_N2, & + IO_Field_read_byfield_L0,IO_Field_read_byfield_L1, & + IO_Field_read_byfield_C0, & + IO_Field_read_byfield_T0 END INTERFACE -PUBLIC IO_READ_FIELD,IO_READ_FIELD_LB +INTERFACE IO_Field_read_lb + MODULE PROCEDURE IO_Field_read_byname_lb, IO_Field_read_byfield_lb +END INTERFACE CONTAINS -SUBROUTINE IO_FILE_READ_CHECK(TPFILE,HSUBR,KRESP) +SUBROUTINE IO_File_read_check(TPFILE,HSUBR,KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HSUBR INTEGER, INTENT(OUT) :: KRESP @@ -92,16 +92,16 @@ IF (TPFILE%CFORMAT/='NETCDF4' .AND. TPFILE%CFORMAT/='LFI' .AND. TPFILE%CFORMAT/= RETURN END IF ! -END SUBROUTINE IO_FILE_READ_CHECK +END SUBROUTINE IO_File_read_check -SUBROUTINE IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) +SUBROUTINE IO_Field_metadata_bcast(TPFILE,TPFIELD) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD ! INTEGER :: IERR ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_BCAST_FIELD_METADATA','called for '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_metadata_bcast','called for '//TRIM(TPFIELD%CMNHNAME)) ! CALL MPI_BCAST(TPFIELD%CMNHNAME, LEN(TPFIELD%CMNHNAME), MPI_CHARACTER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) CALL MPI_BCAST(TPFIELD%CSTDNAME, LEN(TPFIELD%CSTDNAME), MPI_CHARACTER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -114,10 +114,10 @@ CALL MPI_BCAST(TPFIELD%NGRID, 1, MPI_INTEGER, TPFILE%NMA CALL MPI_BCAST(TPFIELD%NTYPE, 1, MPI_INTEGER, TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) CALL MPI_BCAST(TPFIELD%NDIMS, 1, MPI_INTEGER, TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! -END SUBROUTINE IO_BCAST_FIELD_METADATA +END SUBROUTINE IO_Field_metadata_bcast -SUBROUTINE IO_READ_FIELD_BYNAME_X0(TPFILE,HNAME,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_X0(TPFILE,HNAME,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -127,19 +127,19 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_X0 +END SUBROUTINE IO_Field_read_byname_X0 -SUBROUTINE IO_READ_FIELD_BYFIELD_X0(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_X0(TPFILE,TPFIELD,PFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISP,GSMONOPROC +USE MODD_IO, ONLY: ISP,GSMONOPROC ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD @@ -149,37 +149,37 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: IERR INTEGER :: IRESP ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_X0',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_X0',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,PFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,PFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! ! Broadcast Field CALL MPI_BCAST(PFIELD,1,MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -190,13 +190,13 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_X0 +END SUBROUTINE IO_Field_read_byfield_X0 -SUBROUTINE IO_READ_FIELD_BYNAME_X1(TPFILE,HNAME,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) +SUBROUTINE IO_Field_read_byname_X1(TPFILE,HNAME,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) ! -USE MODD_IO_ll, ONLY : ISNPROC -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll +USE MODD_IO, ONLY: ISNPROC +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -209,20 +209,20 @@ TYPE(ZONE_ll),DIMENSION(ISNPROC),OPTIONAL,INTENT(IN) :: TPSPLITTING ! splitting INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),PFIELD,IRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_X1 +END SUBROUTINE IO_Field_read_byname_X1 -SUBROUTINE IO_READ_FIELD_BYFIELD_X1(TPFILE,TPFIELD,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) +SUBROUTINE IO_Field_read_byfield_X1(TPFILE,TPFIELD,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) ! -USE MODD_IO_ll, ONLY : ISP,GSMONOPROC,ISNPROC -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll +USE MODD_IO, ONLY: ISP, GSMONOPROC, ISNPROC +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll ! USE MODE_SCATTER_ll USE MODE_ALLOCBUFFER_ll @@ -240,32 +240,32 @@ REAL,DIMENSION(:),POINTER :: ZFIELDP LOGICAL :: GALLOC INTEGER :: IRESP ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! GALLOC = .FALSE. IRESP = 0 ZFIELDP => NULL() ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_X1',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_X1',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,PFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN CALL ALLOCBUFFER_ll(ZFIELDP,PFIELD,TPFIELD%CDIR,GALLOC, KIMAX_ll, KJMAX_ll) IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ELSE !Not really necessary but useful to suppress alerts with Valgrind @@ -276,8 +276,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! IF (TPFIELD%CDIR /= 'XX' .AND. TPFIELD%CDIR /='YY') THEN ! Broadcast Field @@ -295,13 +295,13 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_X1 +END SUBROUTINE IO_Field_read_byfield_X1 -SUBROUTINE IO_READ_FIELD_BYNAME_X2(TPFILE,HNAME,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) +SUBROUTINE IO_Field_read_byname_X2(TPFILE,HNAME,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) ! -USE MODD_IO_ll, ONLY : ISNPROC -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll +USE MODD_IO, ONLY: ISNPROC +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll ! ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -315,27 +315,27 @@ TYPE(ZONE_ll),DIMENSION(ISNPROC),OPTIONAL,INTENT(IN) :: TPSPLITTING ! splitting INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),PFIELD,IRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_X2 +END SUBROUTINE IO_Field_read_byname_X2 -SUBROUTINE IO_READ_FIELD_BYFIELD_X2(TPFILE,TPFIELD,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) +SUBROUTINE IO_Field_read_byfield_X2(TPFILE,TPFIELD,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) ! -USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll -USE MODD_TIMEZ, ONLY : TIMEZ +USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll #ifdef MNH_GA USE MODE_GA #endif -USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 +USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 USE MODE_SCATTER_ll ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -357,7 +357,7 @@ REAL(KIND=8),DIMENSION(2) :: T11,T22 REAL,DIMENSION(:,:),POINTER :: ZFIELD_GA #endif ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! CALL SECOND_MNH2(T11) GALLOC = .FALSE. @@ -365,7 +365,7 @@ IRESP = 0 ZFIELDP => NULL() ! IHEXTOT = 2*JPHEXT+1 -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_X2',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_X2',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution @@ -377,11 +377,11 @@ IF (IRESP==0) THEN ZFIELDP=>PFIELD(:,:) END IF IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN PFIELD(:,:)=SPREAD(SPREAD(PFIELD(JPHEXT+1,JPHEXT+1),DIM=1,NCOPIES=IHEXTOT),DIM=2,NCOPIES=IHEXTOT) @@ -394,11 +394,11 @@ IF (IRESP==0) THEN ! I/O process case CALL ALLOCBUFFER_ll(ZFIELDP,PFIELD,TPFIELD%CDIR,GALLOC, KIMAX_ll, KJMAX_ll) IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ELSE !Not really necessary but useful to suppress alerts with Valgrind @@ -411,8 +411,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! IF (TPFIELD%CDIR == 'XX' .OR. TPFIELD%CDIR == 'YY') THEN ! XX or YY Scatter Field @@ -467,10 +467,10 @@ IF (PRESENT(KRESP)) KRESP = IRESP CALL SECOND_MNH2(T22) TIMEZ%T_READ2D_ALL=TIMEZ%T_READ2D_ALL + T22 - T11 ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_X2 +END SUBROUTINE IO_Field_read_byfield_X2 -SUBROUTINE IO_READ_FIELD_BYNAME_X3(TPFILE,HNAME,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_X3(TPFILE,HNAME,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -480,29 +480,29 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_X3 +END SUBROUTINE IO_Field_read_byname_X3 -SUBROUTINE IO_READ_FIELD_BYFIELD_X3(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_X3(TPFILE,TPFIELD,PFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D -USE MODD_TIMEZ, ONLY : TIMEZ -USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE +USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D +USE MODD_TIMEZ, ONLY: TIMEZ +USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE ! USE MODE_ALLOCBUFFER_ll #ifdef MNH_GA USE MODE_GA #endif -USE MODE_IO_TOOLS, ONLY : IO_FILE -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_FIND_BYNAME -USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 +USE MODE_IO_TOOLS, ONLY: IO_Level2filenumber_get +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_find_byname +USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 USE MODE_SCATTER_ll ! TYPE(TFILEDATA),TARGET, INTENT(IN) :: TPFILE @@ -539,7 +539,7 @@ TYPE(TX_2DP),ALLOCATABLE,DIMENSION(:) :: T_TX2DP REAL,DIMENSION(:,:,:),POINTER :: ZFIELD_GA #endif ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! CALL SECOND_MNH2(T11) ! @@ -552,7 +552,7 @@ YDIR = TPFIELD%CDIR ! IHEXTOT = 2*JPHEXT+1 ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_X3',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_X3',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC .AND. TPFILE%NSUBFILES_IOZ==0 ) THEN ! sequential execution @@ -565,11 +565,11 @@ IF (IRESP==0) THEN ZFIELDP=>PFIELD(:,:,:) END IF IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN PFIELD(:,:,:)=SPREAD(SPREAD(PFIELD(JPHEXT+1,JPHEXT+1,:),DIM=1,NCOPIES=IHEXTOT),DIM=2,NCOPIES=IHEXTOT) @@ -581,11 +581,11 @@ IF (IRESP==0) THEN ! I/O process case CALL ALLOCBUFFER_ll(ZFIELDP,PFIELD,YDIR,GALLOC) IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ELSE !Not really necessary but useful to suppress alerts with Valgrind @@ -596,8 +596,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! IF (YDIR == 'XX' .OR. YDIR =='YY') THEN ! XX or YY Scatter Field @@ -631,7 +631,7 @@ IF (IRESP==0) THEN ALLOCATE(ZSLICE_ll(0,0)) ! to avoid bug on test of size GALLOC_ll = .TRUE. DO JKK=1,IKU_ll - IK_FILE = IO_FILE(JKK,TPFILE%NSUBFILES_IOZ) + IK_FILE = IO_Level2filenumber_get(JKK,TPFILE%NSUBFILES_IOZ) TZFILE => TPFILE%TFILES_IOZ(IK_FILE+1)%TFILE TZFIELD = TPFIELD WRITE(YSUFFIX,'(I4.4)') JKK @@ -652,11 +652,11 @@ IF (IRESP==0) THEN WRITE(YK,'(I4.4)') JKK YRECZSLICE = TRIM(TPFIELD%CMNHNAME)//YK IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) + CALL IO_Field_read_nc4(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) + CALL IO_Field_read_lfi(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) + CALL IO_Field_read_nc4(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) END IF CALL SECOND_MNH2(T1) TIMEZ%T_READ3D_READ=TIMEZ%T_READ3D_READ + T1 - T0 @@ -696,7 +696,7 @@ IF (IRESP==0) THEN NB_REQ=0 DO JKK=JK,JK_MAX IF (TPFILE%NSUBFILES_IOZ .GT. 1 ) THEN - IK_FILE = IO_FILE(JKK,TPFILE%NSUBFILES_IOZ) + IK_FILE = IO_Level2filenumber_get(JKK,TPFILE%NSUBFILES_IOZ) TZFILE => TPFILE%TFILES_IOZ(IK_FILE+1)%TFILE TZFIELD = TPFIELD WRITE(YSUFFIX,'(I4.4)') JKK @@ -718,11 +718,11 @@ IF (IRESP==0) THEN WRITE(YK,'(I4.4)') JKK YRECZSLICE = TRIM(TPFIELD%CMNHNAME)//YK IF (TZFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) + CALL IO_Field_read_nc4(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) ELSE IF (TZFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) + CALL IO_Field_read_lfi(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) ELSE IF (TZFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) + CALL IO_Field_read_nc4(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) END IF CALL SECOND_MNH2(T1) TIMEZ%T_READ3D_READ=TIMEZ%T_READ3D_READ + T1 - T0 @@ -771,7 +771,7 @@ IF (IRESP==0) THEN ! get the file & rank ! IF (TPFILE%NSUBFILES_IOZ .GT. 1 ) THEN - IK_FILE = IO_FILE(JKK,TPFILE%NSUBFILES_IOZ) + IK_FILE = IO_Level2filenumber_get(JKK,TPFILE%NSUBFILES_IOZ) TZFILE => TPFILE%TFILES_IOZ(IK_FILE+1)%TFILE ELSE TZFILE => TPFILE @@ -808,8 +808,8 @@ IF (IRESP==0) THEN DEALLOCATE(REQ_TAB) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! #endif !JUAN BG Z SLICE @@ -827,13 +827,13 @@ CALL MPI_BARRIER(TPFILE%NMPICOMM,IERR) CALL SECOND_MNH2(T22) TIMEZ%T_READ3D_ALL=TIMEZ%T_READ3D_ALL + T22 - T11 ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_X3 +END SUBROUTINE IO_Field_read_byfield_X3 -SUBROUTINE IO_READ_FIELD_BYNAME_X4(TPFILE,HNAME,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_X4(TPFILE,HNAME,PFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISNPROC -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll +USE MODD_IO, ONLY: ISNPROC +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll ! ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -844,24 +844,24 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_X4 +END SUBROUTINE IO_Field_read_byname_X4 -SUBROUTINE IO_READ_FIELD_BYFIELD_X4(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_X4(TPFILE,TPFIELD,PFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll -USE MODD_TIMEZ, ONLY : TIMEZ +USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll -USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 +USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 USE MODE_SCATTER_ll ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -875,14 +875,14 @@ LOGICAL :: GALLOC INTEGER :: IRESP INTEGER :: IHEXTOT ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! GALLOC = .FALSE. IRESP = 0 ZFIELDP => NULL() ! IHEXTOT = 2*JPHEXT+1 -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_X4',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_X4',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution @@ -894,11 +894,11 @@ IF (IRESP==0) THEN ZFIELDP=>PFIELD(:,:,:,:) END IF IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN PFIELD(:,:,:,:)=SPREAD(SPREAD(PFIELD(JPHEXT+1,JPHEXT+1,:,:),DIM=1,NCOPIES=IHEXTOT),DIM=2,NCOPIES=IHEXTOT) @@ -910,11 +910,11 @@ IF (IRESP==0) THEN ! I/O process case CALL ALLOCBUFFER_ll(ZFIELDP,PFIELD,TPFIELD%CDIR,GALLOC) IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ELSE !Not really necessary but useful to suppress alerts with Valgrind @@ -925,8 +925,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! IF (TPFIELD%CDIR == 'XX' .OR. TPFIELD%CDIR == 'YY') THEN ! XX or YY Scatter Field @@ -952,13 +952,13 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_X4 +END SUBROUTINE IO_Field_read_byfield_X4 -SUBROUTINE IO_READ_FIELD_BYNAME_X5(TPFILE,HNAME,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_X5(TPFILE,HNAME,PFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISNPROC -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll +USE MODD_IO, ONLY: ISNPROC +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll ! ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -969,24 +969,24 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_X5 +END SUBROUTINE IO_Field_read_byname_X5 -SUBROUTINE IO_READ_FIELD_BYFIELD_X5(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_X5(TPFILE,TPFIELD,PFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll -USE MODD_TIMEZ, ONLY : TIMEZ +USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll -USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 +USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 USE MODE_SCATTER_ll ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -1000,14 +1000,14 @@ LOGICAL :: GALLOC INTEGER :: IRESP INTEGER :: IHEXTOT ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! GALLOC = .FALSE. IRESP = 0 ZFIELDP => NULL() ! IHEXTOT = 2*JPHEXT+1 -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_X5',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_X5',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution @@ -1019,11 +1019,11 @@ IF (IRESP==0) THEN ZFIELDP=>PFIELD(:,:,:,:,:) END IF IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN PFIELD(:,:,:,:,:)=SPREAD(SPREAD(PFIELD(JPHEXT+1,JPHEXT+1,:,:,:),DIM=1,NCOPIES=IHEXTOT),DIM=2,NCOPIES=IHEXTOT) @@ -1035,11 +1035,11 @@ IF (IRESP==0) THEN ! I/O process case CALL ALLOCBUFFER_ll(ZFIELDP,PFIELD,TPFIELD%CDIR,GALLOC) IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ELSE !Not really necessary but useful to suppress alerts with Valgrind @@ -1050,8 +1050,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! IF (TPFIELD%CDIR == 'XX' .OR. TPFIELD%CDIR == 'YY') THEN ! XX or YY Scatter Field @@ -1077,13 +1077,13 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_X5 +END SUBROUTINE IO_Field_read_byfield_X5 -SUBROUTINE IO_READ_FIELD_BYNAME_X6(TPFILE,HNAME,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_X6(TPFILE,HNAME,PFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISNPROC -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll +USE MODD_IO, ONLY: ISNPROC +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll ! ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -1094,24 +1094,24 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_X6 +END SUBROUTINE IO_Field_read_byname_X6 -SUBROUTINE IO_READ_FIELD_BYFIELD_X6(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_X6(TPFILE,TPFIELD,PFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll -USE MODD_TIMEZ, ONLY : TIMEZ +USE MODD_IO, ONLY: GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll -USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 +USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 USE MODE_SCATTER_ll ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -1125,34 +1125,34 @@ LOGICAL :: GALLOC INTEGER :: IRESP INTEGER :: IHEXTOT ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! GALLOC = .FALSE. IRESP = 0 ZFIELDP => NULL() ! IHEXTOT = 2*JPHEXT+1 -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_X6',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_X6',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,PFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN ! I/O process case CALL ALLOCBUFFER_ll(ZFIELDP,PFIELD,TPFIELD%CDIR,GALLOC) IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ELSE !Not really necessary but useful to suppress alerts with Valgrind @@ -1163,8 +1163,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! IF (TPFIELD%CDIR == 'XX' .OR. TPFIELD%CDIR == 'YY') THEN ! XX or YY Scatter Field @@ -1184,10 +1184,10 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_X6 +END SUBROUTINE IO_Field_read_byfield_X6 -SUBROUTINE IO_READ_FIELD_BYNAME_N0(TPFILE,HNAME,KFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_N0(TPFILE,HNAME,KFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -1197,19 +1197,19 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_N0 +END SUBROUTINE IO_Field_read_byname_N0 -SUBROUTINE IO_READ_FIELD_BYFIELD_N0(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_N0(TPFILE,TPFIELD,KFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISP,GSMONOPROC +USE MODD_IO, ONLY: ISP,GSMONOPROC ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD @@ -1219,37 +1219,37 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: IERR INTEGER :: IRESP ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_N0',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_N0',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,KFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,KFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,KFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,KFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,KFIELD,IRESP) END IF END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! CALL MPI_BCAST(KFIELD,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF @@ -1259,10 +1259,10 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_N0 +END SUBROUTINE IO_Field_read_byfield_N0 -SUBROUTINE IO_READ_FIELD_BYNAME_N1(TPFILE,HNAME,KFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_N1(TPFILE,HNAME,KFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -1272,19 +1272,19 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_N1 +END SUBROUTINE IO_Field_read_byname_N1 -SUBROUTINE IO_READ_FIELD_BYFIELD_N1(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_N1(TPFILE,TPFIELD,KFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISP,GSMONOPROC +USE MODD_IO, ONLY: ISP, GSMONOPROC ! USE MODE_ALLOCBUFFER_ll USE MODE_SCATTER_ll @@ -1299,32 +1299,32 @@ INTEGER :: IRESP INTEGER,DIMENSION(:),POINTER :: IFIELDP LOGICAL :: GALLOC ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! GALLOC = .FALSE. IRESP = 0 IFIELDP => NULL() ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_N1',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_N1',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,KFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,KFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN CALL ALLOCBUFFER_ll(IFIELDP,KFIELD,TPFIELD%CDIR,GALLOC) IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF ELSE !Not really necessary but useful to suppress alerts with Valgrind @@ -1335,8 +1335,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! IF (TPFIELD%CDIR /= 'XX' .AND. TPFIELD%CDIR /='YY') THEN ! Broadcast Field @@ -1354,13 +1354,13 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_N1 +END SUBROUTINE IO_Field_read_byfield_N1 -SUBROUTINE IO_READ_FIELD_BYNAME_N2(TPFILE,HNAME,KFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_N2(TPFILE,HNAME,KFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISNPROC -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll +USE MODD_IO, ONLY: ISNPROC +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll ! ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -1371,21 +1371,21 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_N2 +END SUBROUTINE IO_Field_read_byname_N2 -SUBROUTINE IO_READ_FIELD_BYFIELD_N2(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_N2(TPFILE,TPFIELD,KFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll -USE MODD_TIMEZ, ONLY : TIMEZ +USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll USE MODE_SCATTER_ll @@ -1401,14 +1401,14 @@ LOGICAL :: GALLOC INTEGER :: IRESP INTEGER :: IHEXTOT ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! GALLOC = .FALSE. IRESP = 0 IFIELDP => NULL() ! IHEXTOT = 2*JPHEXT+1 -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_N2',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_N2',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution @@ -1420,11 +1420,11 @@ IF (IRESP==0) THEN IFIELDP=>KFIELD(:,:) END IF IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF IF (LPACK .AND. L1D .AND. SIZE(KFIELD,1)==IHEXTOT .AND. SIZE(KFIELD,2)==IHEXTOT) THEN KFIELD(:,:)=SPREAD(SPREAD(KFIELD(JPHEXT+1,JPHEXT+1),DIM=1,NCOPIES=IHEXTOT),DIM=2,NCOPIES=IHEXTOT) @@ -1436,11 +1436,11 @@ IF (IRESP==0) THEN ! I/O process case CALL ALLOCBUFFER_ll(IFIELDP,KFIELD,TPFIELD%CDIR,GALLOC) IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF ELSE !Not really necessary but useful to suppress alerts with Valgrind @@ -1451,8 +1451,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! IF (TPFIELD%CDIR == 'XX' .OR. TPFIELD%CDIR == 'YY') THEN ! XX or YY Scatter Field @@ -1481,10 +1481,10 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_N2 +END SUBROUTINE IO_Field_read_byfield_N2 -SUBROUTINE IO_READ_FIELD_BYNAME_L0(TPFILE,HNAME,OFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_L0(TPFILE,HNAME,OFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -1494,19 +1494,19 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),OFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),OFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_L0 +END SUBROUTINE IO_Field_read_byname_L0 -SUBROUTINE IO_READ_FIELD_BYFIELD_L0(TPFILE,TPFIELD,OFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_L0(TPFILE,TPFIELD,OFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISP,GSMONOPROC +USE MODD_IO, ONLY: ISP, GSMONOPROC ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD @@ -1516,37 +1516,37 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: IERR INTEGER :: IRESP ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_L0',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_L0',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,OFIELD,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,OFIELD,IRESP) END IF END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! CALL MPI_BCAST(OFIELD,1,MPI_LOGICAL,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF @@ -1556,10 +1556,10 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_L0 +END SUBROUTINE IO_Field_read_byfield_L0 -SUBROUTINE IO_READ_FIELD_BYNAME_L1(TPFILE,HNAME,OFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_L1(TPFILE,HNAME,OFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -1569,19 +1569,19 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),OFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),OFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_L1 +END SUBROUTINE IO_Field_read_byname_L1 -SUBROUTINE IO_READ_FIELD_BYFIELD_L1(TPFILE,TPFIELD,OFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_L1(TPFILE,TPFIELD,OFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISP,GSMONOPROC +USE MODD_IO, ONLY: ISP, GSMONOPROC ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD @@ -1591,37 +1591,37 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: IERR INTEGER :: IRESP ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_L1',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_L1',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,OFIELD,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,OFIELD,IRESP) END IF END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! CALL MPI_BCAST(OFIELD,SIZE(OFIELD),MPI_LOGICAL,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF @@ -1631,10 +1631,10 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_L1 +END SUBROUTINE IO_Field_read_byfield_L1 -SUBROUTINE IO_READ_FIELD_BYNAME_C0(TPFILE,HNAME,HFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_C0(TPFILE,HNAME,HFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -1644,19 +1644,19 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),HFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),HFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_C0 +END SUBROUTINE IO_Field_read_byname_C0 -SUBROUTINE IO_READ_FIELD_BYFIELD_C0(TPFILE,TPFIELD,HFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_C0(TPFILE,TPFIELD,HFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISP,GSMONOPROC +USE MODD_IO, ONLY: ISP, GSMONOPROC ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD @@ -1666,37 +1666,37 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: IERR INTEGER :: IRESP ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_C0',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_C0',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,HFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,HFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,HFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,HFIELD,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,HFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,HFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,HFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,HFIELD,IRESP) END IF END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! CALL MPI_BCAST(HFIELD,LEN(HFIELD),MPI_CHARACTER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF @@ -1706,10 +1706,10 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_C0 +END SUBROUTINE IO_Field_read_byfield_C0 -SUBROUTINE IO_READ_FIELD_BYNAME_T0(TPFILE,HNAME,TPDATA,KRESP) +SUBROUTINE IO_Field_read_byname_T0(TPFILE,HNAME,TPDATA,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -1719,19 +1719,19 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),TPDATA,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),TPDATA,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_T0 +END SUBROUTINE IO_Field_read_byname_T0 -SUBROUTINE IO_READ_FIELD_BYFIELD_T0(TPFILE,TPFIELD,TPDATA,KRESP) +SUBROUTINE IO_Field_read_byfield_T0(TPFILE,TPFIELD,TPDATA,KRESP) ! -USE MODD_IO_ll, ONLY : ISP,GSMONOPROC +USE MODD_IO, ONLY: ISP, GSMONOPROC ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD @@ -1742,29 +1742,29 @@ INTEGER :: IERR INTEGER :: IRESP INTEGER,DIMENSION(3) :: ITDATE ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_T0',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_T0',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,TPDATA,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,TPDATA,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,TPDATA,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,TPDATA,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,TPDATA,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,TPDATA,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,TPDATA,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,TPDATA,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,TPDATA,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,TPDATA,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,TPDATA,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,TPDATA,IRESP) END IF ITDATE(1) = TPDATA%TDATE%YEAR ITDATE(2) = TPDATA%TDATE%MONTH @@ -1774,8 +1774,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! CALL MPI_BCAST(ITDATE, 3,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) CALL MPI_BCAST(TPDATA%TIME,1,MPI_FLOAT, TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1789,10 +1789,10 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_T0 +END SUBROUTINE IO_Field_read_byfield_T0 -SUBROUTINE IO_READ_FIELD_BYNAME_LB(TPFILE,HNAME,KL3D,KRIM,PLB,KRESP) +SUBROUTINE IO_Field_read_byname_lb(TPFILE,HNAME,KL3D,KRIM,PLB,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -1804,26 +1804,26 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_LB',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_lb',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD_LB(TPFILE,TFIELDLIST(ID),KL3D,KRIM,PLB,IRESP) +IF(IRESP==0) CALL IO_Field_read_lb(TPFILE,TFIELDLIST(ID),KL3D,KRIM,PLB,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_LB +END SUBROUTINE IO_Field_read_byname_lb -SUBROUTINE IO_READ_FIELD_BYFIELD_LB(TPFILE,TPFIELD,KL3D,KRIM,PLB,KRESP) +SUBROUTINE IO_Field_read_byfield_lb(TPFILE,TPFIELD,KL3D,KRIM,PLB,KRESP) ! -USE MODD_IO_ll, ONLY : ISP,ISNPROC,GSMONOPROC,LPACK,L2D -USE MODD_PARAMETERS_ll,ONLY : JPHEXT -USE MODD_TIMEZ, ONLY : TIMEZ -USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE +USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L2D +USE MODD_PARAMETERS_ll, ONLY: JPHEXT +USE MODD_TIMEZ, ONLY: TIMEZ +USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE ! -USE MODE_DISTRIB_LB -USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 -USE MODE_TOOLS_ll, ONLY : GET_GLOBALDIMS_ll +USE MODE_DISTRIB_lb +USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 +USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD @@ -1854,12 +1854,12 @@ REAL(KIND=8),DIMENSION(2) :: T0,T1,T2,T3 REAL(KIND=8),DIMENSION(2) :: T11,T22 TYPE(TX_3DP),ALLOCATABLE,DIMENSION(:) :: T_TX3DP ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_LB','reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_lb','reading '//TRIM(TPFIELD%CMNHNAME)) ! YLBTYPE = TPFIELD%CLBTYPE ! IF (YLBTYPE/='LBX' .AND. YLBTYPE/='LBXU' .AND. YLBTYPE/='LBY' .AND. YLBTYPE/='LBYV') THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_BYFIELD_LB',TRIM(TPFILE%CNAME)//': invalid CLBTYPE (' & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_byfield_lb',TRIM(TPFILE%CNAME)//': invalid CLBTYPE (' & //TRIM(TPFIELD%CLBTYPE)//') for '//TRIM(TPFIELD%CMNHNAME)) RETURN END IF @@ -1870,7 +1870,7 @@ CALL SECOND_MNH2(T11) IRESP = 0 !------------------------------------------------------------------ IHEXTOT = 2*JPHEXT+1 -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_LB',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_lb',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution @@ -1888,11 +1888,11 @@ IF (IRESP==0) THEN TX3DP => Z3D(:,:,:) END IF IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,TX3DP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,TX3DP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,TX3DP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,TX3DP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,TX3DP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,TX3DP,IRESP) END IF IF (YLBTYPE == 'LBX' .OR. YLBTYPE == 'LBXU') THEN IF (LPACK .AND. L2D) Z3D(:,:,:) = SPREAD(Z3D(:,JPHEXT+1,:),DIM=2,NCOPIES=IHEXTOT) @@ -1920,11 +1920,11 @@ IF (IRESP==0) THEN TX3DP => Z3D(:,:,:) END IF IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,TX3DP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,TX3DP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,TX3DP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,TX3DP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,TX3DP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,TX3DP,IRESP) END IF IF (YLBTYPE == 'LBX' .OR. YLBTYPE == 'LBXU') THEN IF (LPACK .AND. L2D) Z3D(:,:,:) = SPREAD(Z3D(:,JPHEXT+1,:),DIM=2,NCOPIES=IHEXTOT) @@ -1941,8 +1941,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! NB_REQ=0 ALLOCATE(REQ_TAB(ISNPROC-1)) @@ -1954,7 +1954,7 @@ IF (IRESP==0) THEN ALLOCATE(T_TX3DP(ISNPROC-1)) IKU = SIZE(Z3D,3) DO JI = 1,ISNPROC - CALL GET_DISTRIB_LB(YLBTYPE,JI,'FM','READ',KRIM,IIB,IIE,IJB,IJE) + CALL GET_DISTRIB_lb(YLBTYPE,JI,'FM','READ',KRIM,IIB,IIE,IJB,IJE) IF (IIB /= 0) THEN TX3DP=>Z3D(IIB:IIE,IJB:IJE,:) IF (ISP /= JI) THEN @@ -1964,7 +1964,7 @@ IF (IRESP==0) THEN CALL MPI_ISEND(T_TX3DP(NB_REQ)%X,SIZE(TX3DP),MPI_FLOAT,JI-1,99,TPFILE%NMPICOMM,REQ_TAB(NB_REQ),IERR) !CALL MPI_BSEND(T_TX3DP(NB_REQ)%X,SIZE(TX3DP),MPI_FLOAT,JI-1,99,TPFILE%NMPICOMM,IERR) ELSE - CALL GET_DISTRIB_LB(YLBTYPE,JI,'LOC','READ',KRIM,IIB,IIE,IJB,IJE) + CALL GET_DISTRIB_lb(YLBTYPE,JI,'LOC','READ',KRIM,IIB,IIE,IJB,IJE) PLB(IIB:IIE,IJB:IJE,:) = TX3DP(:,:,:) END IF END IF @@ -1986,7 +1986,7 @@ IF (IRESP==0) THEN CALL SECOND_MNH2(T0) !ALLOCATE(REQ_TAB(1)) !REQ_TAB=MPI_REQUEST_NULL - CALL GET_DISTRIB_LB(YLBTYPE,ISP,'LOC','READ',KRIM,IIB,IIE,IJB,IJE) + CALL GET_DISTRIB_lb(YLBTYPE,ISP,'LOC','READ',KRIM,IIB,IIE,IJB,IJE) IF (IIB /= 0) THEN TX3DP=>PLB(IIB:IIE,IJB:IJE,:) CALL MPI_RECV(TX3DP,SIZE(TX3DP),MPI_FLOAT,TPFILE%NMASTER_RANK-1,99,TPFILE%NMPICOMM,STATUS,IERR) @@ -2011,6 +2011,6 @@ IF (PRESENT(KRESP)) KRESP = IRESP CALL SECOND_MNH2(T22) TIMEZ%T_READLB_ALL=TIMEZ%T_READLB_ALL + T22 - T11 ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_LB +END SUBROUTINE IO_Field_read_byfield_lb -END MODULE MODE_FMREAD +END MODULE MODE_IO_FIELD_READ diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 index 41c659421..5eddb048c 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 @@ -4,10 +4,11 @@ !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications: -! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! Philippe Wautelet: 10/01/2019: do not write scalars in Z-split files -! Philippe Wautelet: 10/01/2019: write header also for Z-split files +! J. Escobar 15/09/2015: WENO5 & JPHEXT <> 1 +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/01/2019: do not write scalars in Z-split files +! P. Wautelet 10/01/2019: write header also for Z-split files +! P. Wautelet 05/03/2019: rename IO subroutines and modules !----------------------------------------------------------------- #ifdef MNH_MPI_DOUBLE_PRECISION @@ -18,10 +19,10 @@ #define MNH_SCALARS_IN_SPLITFILES 0 -MODULE MODE_FMWRIT +MODULE MODE_IO_FIELD_WRITE USE MODD_MPIF - USE MODD_IO_ll, ONLY: TFILEDATA + USE MODD_IO, ONLY: TFILEDATA, TOUTBAK USE MODE_FIELD USE MODE_IO_WRITE_LFI @@ -33,41 +34,42 @@ MODULE MODE_FMWRIT PRIVATE - INTERFACE IO_WRITE_FIELD - MODULE PROCEDURE IO_WRITE_FIELD_BYNAME_X0, IO_WRITE_FIELD_BYNAME_X1, & - IO_WRITE_FIELD_BYNAME_X2, IO_WRITE_FIELD_BYNAME_X3, & - IO_WRITE_FIELD_BYNAME_X4, IO_WRITE_FIELD_BYNAME_X5, & - IO_WRITE_FIELD_BYNAME_X6, & - IO_WRITE_FIELD_BYNAME_N0, IO_WRITE_FIELD_BYNAME_N1, & - IO_WRITE_FIELD_BYNAME_N2, IO_WRITE_FIELD_BYNAME_N3, & - IO_WRITE_FIELD_BYNAME_L0, IO_WRITE_FIELD_BYNAME_L1, & - IO_WRITE_FIELD_BYNAME_C0, IO_WRITE_FIELD_BYNAME_C1, & - IO_WRITE_FIELD_BYNAME_T0, & - IO_WRITE_FIELD_BYFIELD_X0,IO_WRITE_FIELD_BYFIELD_X1, & - IO_WRITE_FIELD_BYFIELD_X2,IO_WRITE_FIELD_BYFIELD_X3, & - IO_WRITE_FIELD_BYFIELD_X4,IO_WRITE_FIELD_BYFIELD_X5, & - IO_WRITE_FIELD_BYFIELD_X6, & - IO_WRITE_FIELD_BYFIELD_N0,IO_WRITE_FIELD_BYFIELD_N1, & - IO_WRITE_FIELD_BYFIELD_N2,IO_WRITE_FIELD_BYFIELD_N3, & - IO_WRITE_FIELD_BYFIELD_L0,IO_WRITE_FIELD_BYFIELD_L1, & - IO_WRITE_FIELD_BYFIELD_C0,IO_WRITE_FIELD_BYFIELD_C1, & - IO_WRITE_FIELD_BYFIELD_T0 + public :: IO_Field_write, IO_Field_write_box, IO_Field_write_lb + public :: IO_Header_write + public :: IO_Fieldlist_write, IO_Field_user_write + + INTERFACE IO_Field_write + MODULE PROCEDURE IO_Field_write_byname_X0, IO_Field_write_byname_X1, & + IO_Field_write_byname_X2, IO_Field_write_byname_X3, & + IO_Field_write_byname_X4, IO_Field_write_byname_X5, & + IO_Field_write_byname_X6, & + IO_Field_write_byname_N0, IO_Field_write_byname_N1, & + IO_Field_write_byname_N2, IO_Field_write_byname_N3, & + IO_Field_write_byname_L0, IO_Field_write_byname_L1, & + IO_Field_write_byname_C0, IO_Field_write_byname_C1, & + IO_Field_write_byname_T0, & + IO_Field_write_byfield_X0,IO_Field_write_byfield_X1, & + IO_Field_write_byfield_X2,IO_Field_write_byfield_X3, & + IO_Field_write_byfield_X4,IO_Field_write_byfield_X5, & + IO_Field_write_byfield_X6, & + IO_Field_write_byfield_N0,IO_Field_write_byfield_N1, & + IO_Field_write_byfield_N2,IO_Field_write_byfield_N3, & + IO_Field_write_byfield_L0,IO_Field_write_byfield_L1, & + IO_Field_write_byfield_C0,IO_Field_write_byfield_C1, & + IO_Field_write_byfield_T0 END INTERFACE - INTERFACE IO_WRITE_FIELD_BOX - MODULE PROCEDURE IO_WRITE_FIELD_BOX_BYFIELD_X5 + INTERFACE IO_Field_write_box + MODULE PROCEDURE IO_Field_write_box_byfield_X5 END INTERFACE - INTERFACE IO_WRITE_FIELD_LB - MODULE PROCEDURE IO_WRITE_FIELD_BYNAME_LB, IO_WRITE_FIELD_BYFIELD_LB + INTERFACE IO_Field_write_lb + MODULE PROCEDURE IO_Field_write_byname_lb, IO_Field_write_byfield_lb END INTERFACE - PUBLIC IO_WRITE_FIELD, IO_WRITE_FIELD_BOX, IO_WRITE_FIELD_LB - PUBLIC IO_WRITE_HEADER - CONTAINS - SUBROUTINE FIELD_METADATA_CHECK(TPFIELD,KTYPE,KDIMS,HCALLER) + SUBROUTINE IO_Field_metadata_check(TPFIELD,KTYPE,KDIMS,HCALLER) TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD ! Field to check INTEGER, INTENT(IN) :: KTYPE ! Expected datatype INTEGER, INTENT(IN) :: KDIMS ! Expected number of dimensions @@ -113,10 +115,10 @@ CONTAINS END SELECT ! END SUBROUTINE TYPE_WRITE - END SUBROUTINE FIELD_METADATA_CHECK + END SUBROUTINE IO_Field_metadata_check - SUBROUTINE IO_FILE_WRITE_CHECK(TPFILE,HSUBR,KRESP) + SUBROUTINE IO_File_write_check(TPFILE,HSUBR,KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HSUBR INTEGER, INTENT(OUT) :: KRESP @@ -144,10 +146,10 @@ CONTAINS RETURN END IF ! - END SUBROUTINE IO_FILE_WRITE_CHECK + END SUBROUTINE IO_File_write_check - SUBROUTINE IO_WRITE_SELECT_FORMAT(TPFILE,OLFI,ONC4) + SUBROUTINE IO_Format_write_select(TPFILE,OLFI,ONC4) TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File structure LOGICAL, INTENT(OUT) :: OLFI ! Write in LFI format? LOGICAL, INTENT(OUT) :: ONC4 ! Write in netCDF format? @@ -156,27 +158,27 @@ CONTAINS ONC4 = .FALSE. IF (TPFILE%CFORMAT=='LFI' .OR. TPFILE%CFORMAT=='LFICDF4') OLFI = .TRUE. IF (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4') ONC4 = .TRUE. - END SUBROUTINE IO_WRITE_SELECT_FORMAT + END SUBROUTINE IO_Format_write_select - SUBROUTINE IO_WRITE_HEADER(TPFILE,HDAD_NAME) + SUBROUTINE IO_Header_write(TPFILE,HDAD_NAME) TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File structure CHARACTER(LEN=*),OPTIONAL,INTENT(IN) :: HDAD_NAME integer :: ifile - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_HEADER_FILE','called for file '//TRIM(TPFILE%CNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Header_write_FILE','called for file '//TRIM(TPFILE%CNAME)) - CALL IO_WRITE_HEADER_ONEFILE(TPFILE,HDAD_NAME) + CALL IO_Header_onefile_write(TPFILE,HDAD_NAME) !Write header also for the Z-split files DO IFILE=1,TPFILE%NSUBFILES_IOZ - CALL IO_WRITE_HEADER_ONEFILE(TPFILE%TFILES_IOZ(IFILE)%TFILE,HDAD_NAME) + CALL IO_Header_onefile_write(TPFILE%TFILES_IOZ(IFILE)%TFILE,HDAD_NAME) END DO - END SUBROUTINE IO_WRITE_HEADER + END SUBROUTINE IO_Header_write - SUBROUTINE IO_WRITE_HEADER_ONEFILE(TPFILE,HDAD_NAME) + SUBROUTINE IO_Header_onefile_write(TPFILE,HDAD_NAME) ! USE MODD_CONF USE MODD_CONF_n, ONLY: CSTORAGE_TYPE @@ -188,23 +190,23 @@ CONTAINS CHARACTER(LEN=:),ALLOCATABLE :: YDAD_NAME INTEGER :: ILEN,ILEN2 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_HEADER_ONEFILE','called for file '//TRIM(TPFILE%CNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Header_onefile_write','called for file '//TRIM(TPFILE%CNAME)) ! IF ( ASSOCIATED(TPFILE%TDADFILE) .AND. PRESENT(HDAD_NAME) ) THEN IF ( TRIM(TPFILE%TDADFILE%CNAME) /= TRIM(HDAD_NAME) ) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_HEADER_ONEFILE','TPFILE%TDADFILE%CNAME /= HDAD_NAME') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Header_onefile_write','TPFILE%TDADFILE%CNAME /= HDAD_NAME') END IF END IF ! - CALL IO_WRITE_HEADER_NC4(TPFILE) + CALL IO_Header_write_nc4(TPFILE) ! - CALL IO_WRITE_FIELD(TPFILE,'MNHVERSION', NMNHVERSION) - CALL IO_WRITE_FIELD(TPFILE,'MASDEV', NMASDEV) - CALL IO_WRITE_FIELD(TPFILE,'BUGFIX', NBUGFIX) - CALL IO_WRITE_FIELD(TPFILE,'BIBUSER', CBIBUSER) - CALL IO_WRITE_FIELD(TPFILE,'PROGRAM', CPROGRAM) - CALL IO_WRITE_FIELD(TPFILE,'STORAGE_TYPE',CSTORAGE_TYPE) - CALL IO_WRITE_FIELD(TPFILE,'MY_NAME', TPFILE%CNAME) + CALL IO_Field_write(TPFILE,'MNHVERSION', NMNHVERSION) + CALL IO_Field_write(TPFILE,'MASDEV', NMASDEV) + CALL IO_Field_write(TPFILE,'BUGFIX', NBUGFIX) + CALL IO_Field_write(TPFILE,'BIBUSER', CBIBUSER) + CALL IO_Field_write(TPFILE,'PROGRAM', CPROGRAM) + CALL IO_Field_write(TPFILE,'STORAGE_TYPE',CSTORAGE_TYPE) + CALL IO_Field_write(TPFILE,'MY_NAME', TPFILE%CNAME) ! IF ( ASSOCIATED(TPFILE%TDADFILE) ) THEN ILEN = LEN_TRIM(TPFILE%TDADFILE%CNAME) @@ -227,18 +229,18 @@ CONTAINS YDAD_NAME(:) = ' ' END IF ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_HEADER_ONEFILE',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Header_onefile_write',TRIM(TPFILE%CNAME)// & ': TPFILE%TDADFILE not associated and HDAD_NAME not provided') ALLOCATE(CHARACTER(LEN=NFILENAMELGTMAXLFI) :: YDAD_NAME) YDAD_NAME(:) = ' ' ENDIF - CALL IO_WRITE_FIELD(TPFILE,'DAD_NAME',YDAD_NAME) + CALL IO_Field_write(TPFILE,'DAD_NAME',YDAD_NAME) DEALLOCATE(YDAD_NAME) ! - END SUBROUTINE IO_WRITE_HEADER_ONEFILE + END SUBROUTINE IO_Header_onefile_write - SUBROUTINE IO_WRITE_FIELD_BYNAME_X0(TPFILE,HNAME,PFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_X0(TPFILE,HNAME,PFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -252,21 +254,21 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_X0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_X0 + END SUBROUTINE IO_Field_write_byname_X0 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_X0(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll, ONLY: GSMONOPROC,ISP + SUBROUTINE IO_Field_write_byfield_X0(TPFILE,TPFIELD,PFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP ! - USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME + USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_find_byname ! IMPLICIT NONE ! @@ -298,22 +300,22 @@ CONTAINS IRESP = 0 TZFILE => NULL() ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X0',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_X0',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEREAL,0,'IO_WRITE_FIELD_BYFIELD_X0') + CALL IO_Field_metadata_check(TPFIELD,TYPEREAL,0,'IO_Field_write_byfield_X0') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X0',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_X0',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE ! multiprocesses execution IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -324,8 +326,8 @@ CONTAINS DO IK_FILE=1,TPFILE%NSUBFILES_IOZ TZFILE => TPFILE%TFILES_IOZ(IK_FILE)%TFILE IF ( ISP == TZFILE%NMASTER_RANK ) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TZFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TZFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TZFILE,TPFIELD,PFIELD,IRESP) END IF END DO ENDIF @@ -335,13 +337,13 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_X0',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_X0',YMSG) END IF IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_X0 + END SUBROUTINE IO_Field_write_byfield_X0 - SUBROUTINE IO_WRITE_FIELD_BYNAME_X1(TPFILE,HNAME,PFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_X1(TPFILE,HNAME,PFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -355,23 +357,23 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return-code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X1',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_X1',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_X1 + END SUBROUTINE IO_Field_write_byname_X1 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_X1(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll, ONLY: GSMONOPROC,ISP + SUBROUTINE IO_Field_write_byfield_X1(TPFILE,TPFIELD,PFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll - USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME + USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_find_byname ! IMPLICIT NONE ! @@ -404,18 +406,18 @@ CONTAINS YRECFM = TPFIELD%CMNHNAME YDIR = TPFIELD%CDIR ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X1',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_X1',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEREAL,1,'IO_WRITE_FIELD_BYFIELD_X1') + CALL IO_Field_metadata_check(TPFIELD,TYPEREAL,1,'IO_Field_write_byfield_X1') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X1',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_X1',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE ! multiprocesses execution #if ( MNH_INT == 4 ) CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) @@ -423,7 +425,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_X1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -440,8 +442,8 @@ CONTAINS END IF ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -451,14 +453,14 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_X1',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_X1',YMSG) END IF IF (GALLOC) DEALLOCATE(ZFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_X1 + END SUBROUTINE IO_Field_write_byfield_X1 - SUBROUTINE IO_WRITE_FIELD_BYNAME_X2(TPFILE,HNAME,PFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_X2(TPFILE,HNAME,PFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -472,28 +474,28 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return-code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X2',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_X2',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_X2 + END SUBROUTINE IO_Field_write_byname_X2 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_X2(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,L1D,L2D,LPACK - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_TIMEZ, ONLY : TIMEZ + SUBROUTINE IO_Field_write_byfield_X2(TPFILE,TPFIELD,PFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC,ISP,L1D,L2D,LPACK + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll #ifdef MNH_GA USE MODE_GA #endif USE MODE_GATHER_ll - USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 + USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 ! IMPLICIT NONE ! @@ -535,29 +537,29 @@ CONTAINS ! CALL SECOND_MNH2(T11) ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X2',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_X2',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEREAL,2,'IO_WRITE_FIELD_BYFIELD_X2') + CALL IO_Field_metadata_check(TPFIELD,TYPEREAL,2,'IO_Field_write_byfield_X2') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X2',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_X2',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution ! IF (LPACK .AND. L1D .AND. YDIR=='XY') THEN IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(JPHEXT+1:JPHEXT+1,JPHEXT+1:JPHEXT+1) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ! ELSE IF (LPACK .AND. L2D .AND. YDIR=='XY') THEN ELSEIF (LPACK .AND. L2D .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(:,JPHEXT+1:JPHEXT+1) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE ! multiprocesses execution CALL SECOND_MNH2(T0) @@ -567,7 +569,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X2','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_X2','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -616,8 +618,8 @@ CONTAINS TIMEZ%T_WRIT2D_GATH=TIMEZ%T_WRIT2D_GATH + T1 - T0 ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF #ifdef MNH_GA call ga_sync @@ -632,16 +634,16 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_X2',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_X2',YMSG) END IF IF (GALLOC) DEALLOCATE(ZFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP CALL SECOND_MNH2(T22) TIMEZ%T_WRIT2D_ALL=TIMEZ%T_WRIT2D_ALL + T22 - T11 - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_X2 + END SUBROUTINE IO_Field_write_byfield_X2 - SUBROUTINE IO_WRITE_FIELD_BYNAME_X3(TPFILE,HNAME,PFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_X3(TPFILE,HNAME,PFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -655,31 +657,31 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X3',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_X3',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_X3 + END SUBROUTINE IO_Field_write_byname_X3 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_X3(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC,ISNPROC,ISP,L1D,L2D,LPACK - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_TIMEZ, ONLY : TIMEZ + SUBROUTINE IO_Field_write_byfield_X3(TPFILE,TPFIELD,PFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISNPROC, ISP, L1D, L2D, LPACK + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_TIMEZ, ONLY: TIMEZ + USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE ! USE MODE_ALLOCBUFFER_ll - USE MODE_GATHER_ll - USE MODE_IO_TOOLS, ONLY : IO_FILE - USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_FIND_BYNAME - USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 #ifdef MNH_GA USE MODE_GA #endif - USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE + USE MODE_GATHER_ll + USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_find_byname + USE MODE_IO_TOOLS, ONLY: IO_Level2filenumber_get + USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 ! ! !* 0.1 Declarations of arguments @@ -737,31 +739,31 @@ CONTAINS GALLOC_ll = .FALSE. IHEXTOT = 2*JPHEXT+1 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X3',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_X3',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! CALL SECOND_MNH2(T11) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEREAL,3,'IO_WRITE_FIELD_BYFIELD_X3') + CALL IO_Field_metadata_check(TPFIELD,TYPEREAL,3,'IO_Field_write_byfield_X3') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X3',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_X3',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC .AND. TPFILE%NSUBFILES_IOZ==0 ) THEN ! sequential execution ! IF (LPACK .AND. L1D .AND. YDIR=='XY') THEN IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(JPHEXT+1:JPHEXT+1,JPHEXT+1:JPHEXT+1,:) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ! ELSE IF (LPACK .AND. L2D .AND. YDIR=='XY') THEN ELSEIF (LPACK .AND. L2D .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(:,JPHEXT+1:JPHEXT+1,:) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSEIF ( TPFILE%NSUBFILES_IOZ==0 .OR. YDIR=='--' ) THEN ! multiprocesses execution & 1 proc IO #if ( MNH_INT == 4 ) @@ -770,7 +772,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_X3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -794,8 +796,8 @@ CONTAINS END IF ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -807,7 +809,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_X3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -839,7 +841,7 @@ CONTAINS ! DO JKK=1,IKU_ll ! - IK_FILE = IO_FILE(JKK,TPFILE%NSUBFILES_IOZ) + IK_FILE = IO_Level2filenumber_get(JKK,TPFILE%NSUBFILES_IOZ) TZFILE => TPFILE%TFILES_IOZ(IK_FILE+1)%TFILE ! IK_RANK = TZFILE%NMASTER_RANK @@ -860,8 +862,8 @@ CONTAINS CALL SECOND_MNH2(T1) TIMEZ%T_WRIT3D_RECV=TIMEZ%T_WRIT3D_RECV + T1 - T0 ! - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) CALL SECOND_MNH2(T2) TIMEZ%T_WRIT3D_WRIT=TIMEZ%T_WRIT3D_WRIT + T2 - T1 END IF @@ -890,7 +892,7 @@ CONTAINS ! get the file & rank to write this level ! IF (TPFILE%NSUBFILES_IOZ .GT. 1 ) THEN - IK_FILE = IO_FILE(JKK,TPFILE%NSUBFILES_IOZ) + IK_FILE = IO_Level2filenumber_get(JKK,TPFILE%NSUBFILES_IOZ) TZFILE => TPFILE%TFILES_IOZ(IK_FILE+1)%TFILE ELSE TZFILE => TPFILE @@ -931,7 +933,7 @@ CONTAINS ! DO JKK=JK,JK_MAX IF (TPFILE%NSUBFILES_IOZ .GT. 1 ) THEN - IK_FILE = IO_FILE(JKK,TPFILE%NSUBFILES_IOZ) + IK_FILE = IO_Level2filenumber_get(JKK,TPFILE%NSUBFILES_IOZ) TZFILE => TPFILE%TFILES_IOZ(IK_FILE+1)%TFILE ELSE TZFILE => TPFILE @@ -960,8 +962,8 @@ CONTAINS END DO CALL SECOND_MNH2(T1) TIMEZ%T_WRIT3D_RECV=TIMEZ%T_WRIT3D_RECV + T1 - T0 - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) CALL SECOND_MNH2(T2) TIMEZ%T_WRIT3D_WRIT=TIMEZ%T_WRIT3D_WRIT + T2 - T1 END IF @@ -986,17 +988,17 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_X3',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_X3',YMSG) END IF IF (GALLOC) DEALLOCATE(ZFIELDP) IF (GALLOC_ll) DEALLOCATE(ZSLICE_ll) IF (PRESENT(KRESP)) KRESP = IRESP CALL SECOND_MNH2(T22) TIMEZ%T_WRIT3D_ALL=TIMEZ%T_WRIT3D_ALL + T22 - T11 - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_X3 + END SUBROUTINE IO_Field_write_byfield_X3 - SUBROUTINE IO_WRITE_FIELD_BYNAME_X4(TPFILE,HNAME,PFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_X4(TPFILE,HNAME,PFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -1010,27 +1012,27 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X4',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_X4',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_X4 + END SUBROUTINE IO_Field_write_byname_X4 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_X4(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,L1D,L2D,LPACK - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_TIMEZ, ONLY : TIMEZ + SUBROUTINE IO_Field_write_byfield_X4(TPFILE,TPFIELD,PFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP, L1D, L2D, LPACK + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll - USE MODE_IO_TOOLS, ONLY : IO_FILE,IO_RANK - USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 - USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE + USE MODE_IO_TOOLS, ONLY: IO_Level2filenumber_get + USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 + USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE ! ! !* 0.1 Declarations of arguments @@ -1064,13 +1066,13 @@ CONTAINS ! IHEXTOT = 2*JPHEXT+1 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X4',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_X4',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEREAL,4,'IO_WRITE_FIELD_BYFIELD_X4') + CALL IO_Field_metadata_check(TPFIELD,TYPEREAL,4,'IO_Field_write_byfield_X4') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X4',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_X4',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution @@ -1080,11 +1082,11 @@ CONTAINS ! ELSE IF (LPACK .AND. L2D .AND. YDIR=='XY') THEN ELSEIF (LPACK .AND. L2D .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(:,JPHEXT+1:JPHEXT+1,:,:) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE #if ( MNH_INT == 4 ) @@ -1093,7 +1095,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X4','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_X4','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -1116,8 +1118,8 @@ CONTAINS END IF ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1127,14 +1129,14 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_X4',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_X4',YMSG) END IF IF (GALLOC) DEALLOCATE(ZFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_X4 + END SUBROUTINE IO_Field_write_byfield_X4 - SUBROUTINE IO_WRITE_FIELD_BYNAME_X5(TPFILE,HNAME,PFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_X5(TPFILE,HNAME,PFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -1148,27 +1150,27 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X5',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_X5',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_X5 + END SUBROUTINE IO_Field_write_byname_X5 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_X5(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,L1D,L2D,LPACK - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_TIMEZ, ONLY : TIMEZ + SUBROUTINE IO_Field_write_byfield_X5(TPFILE,TPFIELD,PFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP, L1D, L2D, LPACK + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll - USE MODE_IO_TOOLS, ONLY : IO_FILE,IO_RANK - USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 - USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE + USE MODE_IO_TOOLS, ONLY: IO_Level2filenumber_get + USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 + USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE ! ! !* 0.1 Declarations of arguments @@ -1202,13 +1204,13 @@ CONTAINS ! IHEXTOT = 2*JPHEXT+1 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X5',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_X5',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEREAL,5,'IO_WRITE_FIELD_BYFIELD_X5') + CALL IO_Field_metadata_check(TPFIELD,TYPEREAL,5,'IO_Field_write_byfield_X5') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X5',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_X5',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution @@ -1218,11 +1220,11 @@ CONTAINS ! ELSE IF (LPACK .AND. L2D .AND. YDIR=='XY') THEN ELSEIF (LPACK .AND. L2D .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(:,JPHEXT+1:JPHEXT+1,:,:,:) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE #if ( MNH_INT == 4 ) @@ -1231,7 +1233,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X5','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_X5','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -1255,8 +1257,8 @@ CONTAINS END IF ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1266,14 +1268,14 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_X5',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_X5',YMSG) END IF IF (GALLOC) DEALLOCATE(ZFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_X5 + END SUBROUTINE IO_Field_write_byfield_X5 - SUBROUTINE IO_WRITE_FIELD_BYNAME_X6(TPFILE,HNAME,PFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_X6(TPFILE,HNAME,PFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -1287,26 +1289,26 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X6',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_X6',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_X6 + END SUBROUTINE IO_Field_write_byname_X6 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_X6(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC, ISP - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_TIMEZ, ONLY : TIMEZ + SUBROUTINE IO_Field_write_byfield_X6(TPFILE,TPFIELD,PFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll - USE MODE_IO_TOOLS, ONLY : IO_FILE,IO_RANK - USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 - USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE + USE MODE_IO_TOOLS, ONLY: IO_Level2filenumber_get + USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 + USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE ! ! !* 0.1 Declarations of arguments @@ -1340,18 +1342,18 @@ CONTAINS ! IHEXTOT = 2*JPHEXT+1 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X6',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_X6',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEREAL,6,'IO_WRITE_FIELD_BYFIELD_X6') + CALL IO_Field_metadata_check(TPFIELD,TYPEREAL,6,'IO_Field_write_byfield_X6') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X6',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_X6',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE #if ( MNH_INT == 4 ) CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) @@ -1359,7 +1361,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X6','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_X6','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -1378,8 +1380,8 @@ CONTAINS END IF ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1389,14 +1391,14 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_X6',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_X6',YMSG) END IF IF (GALLOC) DEALLOCATE(ZFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_X6 + END SUBROUTINE IO_Field_write_byfield_X6 - SUBROUTINE IO_WRITE_FIELD_BYNAME_N0(TPFILE,HNAME,KFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_N0(TPFILE,HNAME,KFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -1410,19 +1412,19 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_N0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_N0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_N0 + END SUBROUTINE IO_Field_write_byname_N0 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_N0(TPFILE,TPFIELD,KFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC, ISP + SUBROUTINE IO_Field_write_byfield_N0(TPFILE,TPFIELD,KFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP !* 0. DECLARATIONS ! ------------ ! @@ -1447,22 +1449,22 @@ CONTAINS IRESP = 0 TZFILE => NULL() ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_N0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_N0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEINT,0,'IO_WRITE_FIELD_BYFIELD_N0') + CALL IO_Field_metadata_check(TPFIELD,TYPEINT,0,'IO_Field_write_byfield_N0') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_N0',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_N0',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,KFIELD,IRESP) ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1473,8 +1475,8 @@ CONTAINS DO IK_FILE=1,TPFILE%NSUBFILES_IOZ TZFILE => TPFILE%TFILES_IOZ(IK_FILE)%TFILE IF ( ISP == TZFILE%NMASTER_RANK ) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TZFILE,TPFIELD,KFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,KFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TZFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TZFILE,TPFIELD,KFIELD,IRESP) END IF END DO ENDIF @@ -1484,13 +1486,13 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(TPFIELD%CMNHNAME)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_N0',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_N0',YMSG) END IF IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_N0 + END SUBROUTINE IO_Field_write_byfield_N0 - SUBROUTINE IO_WRITE_FIELD_BYNAME_N1(TPFILE,HNAME,KFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_N1(TPFILE,HNAME,KFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -1504,20 +1506,20 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_N1',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_N1',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_N1 + END SUBROUTINE IO_Field_write_byname_N1 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_N1(TPFILE,TPFIELD,KFIELD,KRESP) + SUBROUTINE IO_Field_write_byfield_N1(TPFILE,TPFIELD,KFIELD,KRESP) ! - USE MODD_IO_ll, ONLY : ISP,GSMONOPROC + USE MODD_IO, ONLY: ISP,GSMONOPROC ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll @@ -1552,18 +1554,18 @@ CONTAINS IRESP = 0 GALLOC = .FALSE. ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_N1',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_N1',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEINT,1,'IO_WRITE_FIELD_BYFIELD_N1') + CALL IO_Field_metadata_check(TPFIELD,TYPEINT,1,'IO_Field_write_byfield_N1') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_N1',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_N1',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,KFIELD,IRESP) ELSE ! multiprocesses execution #if ( MNH_INT == 4 ) CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) @@ -1571,7 +1573,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_N1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_N1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -1588,8 +1590,8 @@ CONTAINS END IF ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1599,15 +1601,15 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_N1',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_N1',YMSG) END IF IF (GALLOC) DEALLOCATE(IFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_N1 + END SUBROUTINE IO_Field_write_byfield_N1 - SUBROUTINE IO_WRITE_FIELD_BYNAME_N2(TPFILE,HNAME,KFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_N2(TPFILE,HNAME,KFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -1621,25 +1623,25 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_N2',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_N2',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_N2 + END SUBROUTINE IO_Field_write_byname_N2 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_N2(TPFILE,TPFIELD,KFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,L1D,L2D,LPACK - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_TIMEZ, ONLY : TIMEZ + SUBROUTINE IO_Field_write_byfield_N2(TPFILE,TPFIELD,KFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP, L1D, L2D, LPACK + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll - USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 + USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 ! IMPLICIT NONE ! @@ -1677,30 +1679,30 @@ CONTAINS ! IHEXTOT = 2*JPHEXT+1 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_N2',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_N2',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! CALL SECOND_MNH2(T11) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEINT,2,'IO_WRITE_FIELD_BYFIELD_N2') + CALL IO_Field_metadata_check(TPFIELD,TYPEINT,2,'IO_Field_write_byfield_N2') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_N2',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_N2',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (LPACK .AND. L1D .AND. SIZE(KFIELD,1)==IHEXTOT .AND. SIZE(KFIELD,2)==IHEXTOT) THEN IFIELDP=>KFIELD(JPHEXT+1:JPHEXT+1,JPHEXT+1:JPHEXT+1) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) ! ELSE IF (LPACK .AND. L2D .AND. YDIR=='XY') THEN ELSEIF (LPACK .AND. L2D .AND. SIZE(KFIELD,2)==IHEXTOT) THEN IFIELDP=>KFIELD(:,JPHEXT+1:JPHEXT+1) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ELSE ! multiprocesses execution #if ( MNH_INT == 4 ) @@ -1709,7 +1711,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_N2','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_N2','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -1736,8 +1738,8 @@ CONTAINS TIMEZ%T_WRIT2D_GATH=TIMEZ%T_WRIT2D_GATH + T1 - T0 ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF CALL SECOND_MNH2(T2) TIMEZ%T_WRIT2D_WRIT=TIMEZ%T_WRIT2D_WRIT + T2 - T1 @@ -1749,17 +1751,17 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_N2',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_N2',YMSG) END IF IF (GALLOC) DEALLOCATE(IFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP CALL SECOND_MNH2(T22) TIMEZ%T_WRIT2D_ALL=TIMEZ%T_WRIT2D_ALL + T22 - T11 ! - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_N2 + END SUBROUTINE IO_Field_write_byfield_N2 - SUBROUTINE IO_WRITE_FIELD_BYNAME_N3(TPFILE,HNAME,KFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_N3(TPFILE,HNAME,KFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -1773,24 +1775,24 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_N3',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_N3',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_N3 + END SUBROUTINE IO_Field_write_byname_N3 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_N3(TPFILE,TPFIELD,KFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,L1D,L2D,LPACK - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_TIMEZ, ONLY : TIMEZ + SUBROUTINE IO_Field_write_byfield_N3(TPFILE,TPFIELD,KFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP, L1D, L2D, LPACK + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll - USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 + USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 ! IMPLICIT NONE ! @@ -1827,30 +1829,30 @@ CONTAINS ! IHEXTOT = 2*JPHEXT+1 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_N3',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_N3',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! CALL SECOND_MNH2(T11) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEINT,3,'IO_WRITE_FIELD_BYFIELD_N3') + CALL IO_Field_metadata_check(TPFIELD,TYPEINT,3,'IO_Field_write_byfield_N3') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_N3',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_N3',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (LPACK .AND. L1D .AND. SIZE(KFIELD,1)==IHEXTOT .AND. SIZE(KFIELD,2)==IHEXTOT) THEN IFIELDP=>KFIELD(JPHEXT+1:JPHEXT+1,JPHEXT+1:JPHEXT+1,:) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) ! ELSE IF (LPACK .AND. L2D .AND. YDIR=='XY') THEN ELSEIF (LPACK .AND. L2D .AND. SIZE(KFIELD,2)==IHEXTOT) THEN IFIELDP=>KFIELD(:,JPHEXT+1:JPHEXT+1,:) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ELSE ! multiprocesses execution #if ( MNH_INT == 4 ) @@ -1859,7 +1861,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_N3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_N3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -1883,8 +1885,8 @@ CONTAINS END IF ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1894,17 +1896,17 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_N3',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_N3',YMSG) END IF IF (GALLOC) DEALLOCATE(IFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP CALL SECOND_MNH2(T22) TIMEZ%T_WRIT3D_ALL=TIMEZ%T_WRIT3D_ALL + T22 - T11 ! - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_N3 + END SUBROUTINE IO_Field_write_byfield_N3 - SUBROUTINE IO_WRITE_FIELD_BYNAME_L0(TPFILE,HNAME,OFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_L0(TPFILE,HNAME,OFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -1918,20 +1920,20 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_L0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_L0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),OFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),OFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_L0 + END SUBROUTINE IO_Field_write_byname_L0 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_L0(TPFILE,TPFIELD,OFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC, ISP + SUBROUTINE IO_Field_write_byfield_L0(TPFILE,TPFIELD,OFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP ! - USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME + USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_find_byname !* 0. DECLARATIONS ! ------------ ! @@ -1956,22 +1958,22 @@ CONTAINS IRESP = 0 TZFILE => NULL() ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_L0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_L0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPELOG,0,'IO_WRITE_FIELD_BYFIELD_L0') + CALL IO_Field_metadata_check(TPFIELD,TYPELOG,0,'IO_Field_write_byfield_L0') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_L0',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_L0',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,OFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,OFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,OFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1982,8 +1984,8 @@ CONTAINS DO IK_FILE=1,TPFILE%NSUBFILES_IOZ TZFILE => TPFILE%TFILES_IOZ(IK_FILE)%TFILE IF ( ISP == TZFILE%NMASTER_RANK ) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TZFILE,TPFIELD,OFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,OFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TZFILE,TPFIELD,OFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TZFILE,TPFIELD,OFIELD,IRESP) END IF END DO ENDIF @@ -1993,13 +1995,13 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(TPFIELD%CMNHNAME)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_L0',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_L0',YMSG) END IF IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_L0 + END SUBROUTINE IO_Field_write_byfield_L0 - SUBROUTINE IO_WRITE_FIELD_BYNAME_L1(TPFILE,HNAME,OFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_L1(TPFILE,HNAME,OFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -2013,20 +2015,20 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_L1',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_L1',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),OFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),OFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_L1 + END SUBROUTINE IO_Field_write_byname_L1 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_L1(TPFILE,TPFIELD,OFIELD,KRESP) + SUBROUTINE IO_Field_write_byfield_L1(TPFILE,TPFIELD,OFIELD,KRESP) ! - USE MODD_IO_ll, ONLY : ISP,GSMONOPROC + USE MODD_IO, ONLY: ISP, GSMONOPROC ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll @@ -2061,18 +2063,18 @@ CONTAINS IRESP = 0 GALLOC = .FALSE. ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_L1',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_L1',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPELOG,1,'IO_WRITE_FIELD_BYFIELD_L1') + CALL IO_Field_metadata_check(TPFIELD,TYPELOG,1,'IO_Field_write_byfield_L1') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_L1',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_L1',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,OFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE ! multiprocesses execution #if ( MNH_INT == 4 ) CALL MPI_ALLREDUCE(SIZE(OFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) @@ -2080,7 +2082,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(OFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_L1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_L1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -2097,8 +2099,8 @@ CONTAINS END IF ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,GFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,GFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,GFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,GFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -2108,15 +2110,15 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_L1',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_L1',YMSG) END IF IF (GALLOC) DEALLOCATE(GFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_L1 + END SUBROUTINE IO_Field_write_byfield_L1 - SUBROUTINE IO_WRITE_FIELD_BYNAME_C0(TPFILE,HNAME,HFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_C0(TPFILE,HNAME,HFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -2130,19 +2132,19 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_C0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_C0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),HFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),HFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_C0 + END SUBROUTINE IO_Field_write_byname_C0 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_C0(TPFILE,TPFIELD,HFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC, ISP + SUBROUTINE IO_Field_write_byfield_C0(TPFILE,TPFIELD,HFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP ! !* 0. DECLARATIONS ! ------------ @@ -2165,27 +2167,27 @@ CONTAINS ! IRESP = 0 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_C0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_C0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPECHAR,0,'IO_WRITE_FIELD_BYFIELD_C0') + CALL IO_Field_metadata_check(TPFIELD,TYPECHAR,0,'IO_Field_write_byfield_C0') ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (LEN(HFIELD)==0 .AND. GLFI) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_C0',& + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_C0',& 'zero-size string not allowed if LFI output for '//TRIM(TPFIELD%CMNHNAME)) END IF ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_C0',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_C0',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,HFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,HFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,HFIELD,IRESP) ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,HFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,HFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,HFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -2195,13 +2197,13 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(TPFIELD%CMNHNAME)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_C0',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_C0',YMSG) END IF IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_C0 + END SUBROUTINE IO_Field_write_byfield_C0 - SUBROUTINE IO_WRITE_FIELD_BYNAME_C1(TPFILE,HNAME,HFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_C1(TPFILE,HNAME,HFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -2215,19 +2217,19 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_C1',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_C1',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),HFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),HFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_C1 + END SUBROUTINE IO_Field_write_byname_C1 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_C1(TPFILE,TPFIELD,HFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC, ISP + SUBROUTINE IO_Field_write_byfield_C1(TPFILE,TPFIELD,HFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP ! !* 0. DECLARATIONS ! ------------ @@ -2252,13 +2254,13 @@ CONTAINS CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_C1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_C1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPECHAR,1,'IO_WRITE_FIELD_BYFIELD_C1') + CALL IO_Field_metadata_check(TPFIELD,TYPECHAR,1,'IO_Field_write_byfield_C1') ! IRESP = 0 ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF(GLFI) THEN ILE=LEN(HFIELD) @@ -2281,16 +2283,16 @@ CONTAINS END IF END IF ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_C1',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_C1',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,HFIELD,IRESP) ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,HFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -2300,14 +2302,14 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(TPFIELD%CMNHNAME)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_C1',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_C1',YMSG) END IF IF (ALLOCATED(IFIELD)) DEALLOCATE(IFIELD) IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_C1 + END SUBROUTINE IO_Field_write_byfield_C1 - SUBROUTINE IO_WRITE_FIELD_BYNAME_T0(TPFILE,HNAME,TFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_T0(TPFILE,HNAME,TFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -2321,19 +2323,19 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_T0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_T0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),TFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),TFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_T0 + END SUBROUTINE IO_Field_write_byname_T0 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_T0(TPFILE,TPFIELD,TFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC, ISP + SUBROUTINE IO_Field_write_byfield_T0(TPFILE,TPFIELD,TFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP USE MODD_TYPE_DATE ! !* 0. DECLARATIONS @@ -2355,24 +2357,24 @@ CONTAINS CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_T0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_T0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEDATE,0,'IO_WRITE_FIELD_BYFIELD_T0') + CALL IO_Field_metadata_check(TPFIELD,TYPEDATE,0,'IO_Field_write_byfield_T0') ! IRESP = 0 ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_T0',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_T0',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,TFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,TFIELD,IRESP) ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,TFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,TFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -2382,13 +2384,13 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(TPFIELD%CMNHNAME)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_T0',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_T0',YMSG) END IF IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_T0 + END SUBROUTINE IO_Field_write_byfield_T0 - SUBROUTINE IO_WRITE_FIELD_BYNAME_LB(TPFILE,HNAME,KL3D,PLB,KRESP) + SUBROUTINE IO_Field_write_byname_lb(TPFILE,HNAME,KL3D,PLB,KRESP) ! !* 0.1 Declarations of arguments ! @@ -2403,25 +2405,25 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_LB',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_lb',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD_LB(TPFILE,TFIELDLIST(ID),KL3D,PLB,IRESP) + IF(IRESP==0) CALL IO_Field_write_lb(TPFILE,TFIELDLIST(ID),KL3D,PLB,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_LB + END SUBROUTINE IO_Field_write_byname_lb - SUBROUTINE IO_WRITE_FIELD_BYFIELD_LB(TPFILE,TPFIELD,KL3D,PLB,KRESP) + SUBROUTINE IO_Field_write_byfield_lb(TPFILE,TPFIELD,KL3D,PLB,KRESP) ! - USE MODD_IO_ll, ONLY : GSMONOPROC,ISNPROC,ISP,L1D,L2D,LPACK - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE + USE MODD_IO, ONLY: GSMONOPROC, ISNPROC, ISP, L1D, L2D, LPACK + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE ! - USE MODE_DISTRIB_LB - USE MODE_TOOLS_ll, ONLY : GET_GLOBALDIMS_ll + USE MODE_DISTRIB_lb + USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll ! ! !* 0.1 Declarations of arguments @@ -2462,15 +2464,15 @@ CONTAINS ! IRESP = 0 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_LB',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_lb',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! IF (YLBTYPE/='LBX' .AND. YLBTYPE/='LBXU' .AND. YLBTYPE/='LBY' .AND. YLBTYPE/='LBYV') THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_LB','unknown LBTYPE ('//YLBTYPE//')') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_lb','unknown LBTYPE ('//YLBTYPE//')') RETURN END IF ! IF (TPFIELD%CDIR/='') THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_BYFIELD_LB','CDIR was set for '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_byfield_lb','CDIR was set for '//TRIM(YRECFM)) TPFIELD%CDIR='' END IF ! @@ -2480,19 +2482,19 @@ CONTAINS GOTO 1000 END IF ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_LB',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_lb',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (LPACK .AND. L2D) THEN TX3DP=>PLB(:,JPHEXT+1:JPHEXT+1,:) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TX3DP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TX3DP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,TX3DP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,TX3DP,IRESP) ELSE - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PLB,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PLB,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PLB,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PLB,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN @@ -2504,13 +2506,13 @@ CONTAINS ALLOCATE(Z3D(IIMAX_ll+2*JPHEXT,(IRIM+JPHEXT)*2,SIZE(PLB,3))) END IF DO JI = 1,ISNPROC - CALL GET_DISTRIB_LB(YLBTYPE,JI,'FM','WRITE',IRIM,IIB,IIE,IJB,IJE) + CALL GET_DISTRIB_lb(YLBTYPE,JI,'FM','WRITE',IRIM,IIB,IIE,IJB,IJE) IF (IIB /= 0) THEN TX3DP=>Z3D(IIB:IIE,IJB:IJE,:) IF (ISP /= JI) THEN CALL MPI_RECV(TX3DP,SIZE(TX3DP),MPI_FLOAT,JI-1,99,TPFILE%NMPICOMM,STATUS,IERR) ELSE - CALL GET_DISTRIB_LB(YLBTYPE,JI,'LOC','WRITE',IRIM,IIB,IIE,IJB,IJE) + CALL GET_DISTRIB_lb(YLBTYPE,JI,'LOC','WRITE',IRIM,IIB,IIE,IJB,IJE) TX3DP = PLB(IIB:IIE,IJB:IJE,:) END IF END IF @@ -2520,15 +2522,15 @@ CONTAINS ELSE TX3DP=>Z3D END IF - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TX3DP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TX3DP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,TX3DP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,TX3DP,IRESP) ELSE NB_REQ=0 ALLOCATE(REQ_TAB(1)) ALLOCATE(T_TX3DP(1)) IKU = SIZE(PLB,3) ! Other processes - CALL GET_DISTRIB_LB(YLBTYPE,ISP,'LOC','WRITE',IRIM,IIB,IIE,IJB,IJE) + CALL GET_DISTRIB_lb(YLBTYPE,ISP,'LOC','WRITE',IRIM,IIB,IIE,IJB,IJE) IF (IIB /= 0) THEN TX3DP=>PLB(IIB:IIE,IJB:IJE,:) NB_REQ = NB_REQ + 1 @@ -2553,17 +2555,17 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_LB',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_lb',YMSG) END IF ! IF (ALLOCATED(Z3D)) DEALLOCATE(Z3D) IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_LB + END SUBROUTINE IO_Field_write_byfield_lb - SUBROUTINE IO_WRITE_FIELD_BOX_BYFIELD_X5(TPFILE,TPFIELD,HBUDGET,PFIELD,KXOBOX,KXEBOX,KYOBOX,KYEBOX,KRESP) + SUBROUTINE IO_Field_write_box_byfield_X5(TPFILE,TPFIELD,HBUDGET,PFIELD,KXOBOX,KXEBOX,KYOBOX,KYEBOX,KRESP) ! - USE MODD_IO_ll, ONLY : GSMONOPROC, ISP + USE MODD_IO, ONLY: GSMONOPROC, ISP ! USE MODE_GATHER_ll ! @@ -2590,14 +2592,14 @@ CONTAINS CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BOX_BYFIELD_X5',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_box_byfield_X5',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 GALLOC = .FALSE. ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BOX_BYFIELD_X5',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_box_byfield_X5',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution @@ -2608,8 +2610,8 @@ CONTAINS ! take the field as a budget ZFIELDP=>PFIELD END IF - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE ! multiprocesses execution IF (ISP == TPFILE%NMASTER_RANK) THEN ! Allocate the box @@ -2625,8 +2627,8 @@ CONTAINS & KXOBOX,KXEBOX,KYOBOX,KYEBOX,HBUDGET) ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -2636,10 +2638,492 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(TPFIELD%CMNHNAME)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BOX_BYFIELD_X5',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_box_byfield_X5',YMSG) END IF IF (GALLOC) DEALLOCATE(ZFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BOX_BYFIELD_X5 + END SUBROUTINE IO_Field_write_box_byfield_X5 + + +SUBROUTINE IO_Fieldlist_write(TPOUTPUT) +! +USE MODE_MODELN_HANDLER, ONLY: GET_CURRENT_MODEL_INDEX +! +IMPLICIT NONE +! +TYPE(TOUTBAK), INTENT(IN) :: TPOUTPUT !Output structure +! +INTEGER :: IDX +INTEGER :: IMI +INTEGER :: JI +! +IMI = GET_CURRENT_MODEL_INDEX() +! +DO JI = 1,SIZE(TPOUTPUT%NFIELDLIST) + IDX = TPOUTPUT%NFIELDLIST(JI) + SELECT CASE (TFIELDLIST(IDX)%NDIMS) + ! + !0D output + ! + CASE (0) + SELECT CASE (TFIELDLIST(IDX)%NTYPE) + ! + !0D real + ! + CASE (TYPEREAL) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X0D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X0D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X0D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 0D logical fields') + END IF + ! + !0D integer + ! + CASE (TYPEINT) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N0D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N0D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N0D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 0D integer fields') + END IF + ! + !0D logical + ! + CASE (TYPELOG) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_L0D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_L0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_L0D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_L0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_L0D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 0D logical fields') + END IF + ! + !0D string + ! + CASE (TYPECHAR) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_C0D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_C0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_C0D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_C0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_C0D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 0D character fields') + END IF + ! + !0D date/time + ! + CASE (TYPEDATE) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_T0D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_T0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_T0D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_T0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_T0D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 0D date/time fields') + END IF + ! + !0D other types + ! + CASE DEFAULT + PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 0D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END SELECT + ! + !1D output + ! + CASE (1) + SELECT CASE (TFIELDLIST(IDX)%NTYPE) + ! + !1D real + ! + CASE (TYPEREAL) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X1D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X1D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X1D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 1D real fields') + END IF +! ! +! !1D integer +! ! +! CASE (TYPEINT) +! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N1D) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N1D(IMI)%DATA) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN +! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N1D(IMI)%DATA) +! ELSE +! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 1D integer fields') +! END IF +! ! +! !1D logical +! ! +! CASE (TYPELOG) +! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_L1D) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_L1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_L1D(IMI)%DATA) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_L1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN +! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_L1D(IMI)%DATA) +! ELSE +! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 1D logical fields') +! END IF +! ! +! !1D string +! ! +! CASE (TYPECHAR) +! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_C1D) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_C1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_C1D(IMI)%DATA) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_C1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN +! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_C1D(IMI)%DATA) +! ELSE +! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 1D character fields') +! END IF + ! + !1D other types + ! + CASE DEFAULT + PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 1D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END SELECT + ! + !2D output + ! + CASE (2) + SELECT CASE (TFIELDLIST(IDX)%NTYPE) + ! + !2D real + ! + CASE (TYPEREAL) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X2D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X2D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X2D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X2D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X2D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 2D real fields') + END IF + ! + !2D integer + ! + CASE (TYPEINT) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N2D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N2D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N2D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N2D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N2D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 2D integer fields') + END IF + ! + !2D other types + ! + CASE DEFAULT + PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 2D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END SELECT + ! + !3D output + ! + CASE (3) + SELECT CASE (TFIELDLIST(IDX)%NTYPE) + ! + !3D real + ! + CASE (TYPEREAL) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X3D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X3D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X3D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X3D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X3D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not (yet) allowed for 3D real fields') + !PW: TODO?: add missing field in TFIELDLIST? + !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X3D(IMI)%DATA) + END IF + ! + !3D integer + ! + CASE (TYPEINT) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N3D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N3D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N3D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N3D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N3D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not (yet) allowed for 3D integer fields') + !PW: TODO?: add missing field in TFIELDLIST? + !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_N3D(IMI)%DATA) + END IF + ! + !3D other types + ! + CASE DEFAULT + PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 3D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END SELECT + ! + !4D output + ! + CASE (4) + SELECT CASE (TFIELDLIST(IDX)%NTYPE) + ! + !4D real + ! + CASE (TYPEREAL) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X4D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X4D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X4D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X4D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X4D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not (yet) allowed for 4D real fields') + !PW: TODO?: add missing field in TFIELDLIST? + !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X4D(IMI)%DATA) + END IF + ! + !4D other types + ! + CASE DEFAULT + PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 4D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END SELECT +! ! +! !5D output +! ! +! CASE (5) +! SELECT CASE (TFIELDLIST(IDX)%NTYPE) +! ! +! !5D real +! ! +! CASE (TYPEREAL) +! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X5D) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X5D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X5D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN +! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) +! ELSE +! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not (yet) allowed for 5D real fields') +! !PW: TODO?: add missing field in TFIELDLIST? +! !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) +! END IF +! ! +! !5D other types +! ! +! CASE DEFAULT +! PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 5D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END SELECT +! ! +! !6D output +! ! +! CASE (6) +! SELECT CASE (TFIELDLIST(IDX)%NTYPE) +! ! +! !6D real +! ! +! CASE (TYPEREAL) +! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X6D) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X6D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X6D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN +! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) +! ELSE +! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not (yet) allowed for 6D real fields') +! !PW: TODO?: add missing field in TFIELDLIST? +! !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) +! END IF +! ! +! !6D other types +! ! +! CASE DEFAULT +! PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 4D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END SELECT + ! + !Other number of dimensions + ! + CASE DEFAULT + PRINT *,'FATAL: IO_Fieldlist_write: number of dimensions not yet supported for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END SELECT +END DO +! +END SUBROUTINE IO_Fieldlist_write + + +SUBROUTINE IO_Field_user_write(TPOUTPUT) +! +#if 0 +USE MODD_DYN_n, ONLY: XTSTEP +USE MODD_FIELD_n, ONLY: XUT, XVT, XRT, XTHT +USE MODD_PARAMETERS, ONLY: JPVEXT +USE MODD_PRECIP_n, ONLY: XINPRR +#endif +! +IMPLICIT NONE +! +TYPE(TOUTBAK), INTENT(IN) :: TPOUTPUT !Output structure +! +TYPE(TFIELDDATA) :: TZFIELD +! +#if 0 +INTEGER :: IKB +! +IKB=JPVEXT+1 +! +TZFIELD%CMNHNAME = 'UTLOW' +TZFIELD%CSTDNAME = 'x_wind' +TZFIELD%CLONGNAME = '' +TZFIELD%CUNITS = 'm s-1' +TZFIELD%CDIR = 'XY' +TZFIELD%CCOMMENT = 'X_Y_Z_U component of wind at lowest physical level' +TZFIELD%NGRID = 2 +TZFIELD%NTYPE = TYPEREAL +TZFIELD%NDIMS = 2 +TZFIELD%LTIMEDEP = .TRUE. +CALL IO_Field_write(TPOUTPUT%TFILE,TZFIELD,XUT(:,:,IKB)) +! +TZFIELD%CMNHNAME = 'VTLOW' +TZFIELD%CSTDNAME = 'y_wind' +TZFIELD%CLONGNAME = '' +TZFIELD%CUNITS = 'm s-1' +TZFIELD%CDIR = 'XY' +TZFIELD%CCOMMENT = 'X_Y_Z_V component of wind at lowest physical level' +TZFIELD%NGRID = 3 +TZFIELD%NTYPE = TYPEREAL +TZFIELD%NDIMS = 2 +TZFIELD%LTIMEDEP = .TRUE. +CALL IO_Field_write(TPOUTPUT%TFILE,TZFIELD,XVT(:,:,IKB)) +! +TZFIELD%CMNHNAME = 'THTLOW' +TZFIELD%CSTDNAME = 'air_potential_temperature' +TZFIELD%CLONGNAME = '' +TZFIELD%CUNITS = 'K' +TZFIELD%CDIR = 'XY' +TZFIELD%CCOMMENT = 'X_Y_Z_potential temperature at lowest physical level' +TZFIELD%NGRID = 1 +TZFIELD%NTYPE = TYPEREAL +TZFIELD%NDIMS = 2 +TZFIELD%LTIMEDEP = .TRUE. +CALL IO_Field_write(TPOUTPUT%TFILE,TZFIELD,XTHT(:,:,IKB)) +! +TZFIELD%CMNHNAME = 'RVTLOW' +!TZFIELD%CSTDNAME = 'humidity_mixing_ratio' !ratio of the mass of water vapor to the mass of dry air +TZFIELD%CSTDNAME = 'specific_humidity' !mass fraction of water vapor in (moist) air +TZFIELD%CLONGNAME = '' +TZFIELD%CUNITS = 'kg kg-1' +TZFIELD%CDIR = 'XY' +TZFIELD%CCOMMENT = 'X_Y_Z_Vapor mixing Ratio at lowest physical level' +TZFIELD%NGRID = 1 +TZFIELD%NTYPE = TYPEREAL +TZFIELD%NDIMS = 2 +TZFIELD%LTIMEDEP = .TRUE. +CALL IO_Field_write(TPOUTPUT%TFILE,TZFIELD,XRT(:,:,IKB,1)) +! +TZFIELD%CMNHNAME = 'ACPRRSTEP' +TZFIELD%CSTDNAME = 'rainfall_amount' +TZFIELD%CLONGNAME = '' +TZFIELD%CUNITS = 'kg m-2' +TZFIELD%CDIR = '' +TZFIELD%CCOMMENT = 'X_Y_ACcumulated Precipitation Rain Rate during timestep' +TZFIELD%NGRID = 1 +TZFIELD%NTYPE = TYPEREAL +TZFIELD%NDIMS = 2 +TZFIELD%LTIMEDEP = .TRUE. +!XACPRR is multiplied by 1000. to convert from m to kg m-2 (water density is assumed to be 1000 kg m-3) +CALL IO_Field_write(TPOUTPUT%TFILE,TZFIELD,XINPRR*XTSTEP*1.0E3) +#endif +! +END SUBROUTINE IO_Field_user_write + +END MODULE MODE_IO_FIELD_WRITE -END MODULE MODE_FMWRIT diff --git a/src/LIB/SURCOUCHE/src/mode_io_file.f90 b/src/LIB/SURCOUCHE/src/mode_io_file.f90 index 9aa4c9a07..f6e62e24e 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_file.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_file.f90 @@ -27,18 +27,19 @@ ! to disable writes (for bench purposes) ! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! (nsubfiles_ioz is now determined in IO_File_add2list) +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 14/02/2019: move UPCASE function to tools.f90 ! P. Wautelet 19/02/2019: simplification/restructuration/cleaning of open/close subroutines (TBCto be continued) ! P. Wautelet 27/02/2019: use recursive calls to open/close DES files ! P. Wautelet 27/02/2019: remove CLOSE_ll subroutine ! P. Wautelet 01/03/2019: move open/close subroutines to mode_io_file.f90 +! P. Wautelet 05/03/2019: rename IO subroutines and modules ! !----------------------------------------------------------------- module mode_io_file -use modd_io_ll, only: tfiledata +use modd_io, only: tfiledata use mode_msg @@ -46,15 +47,7 @@ implicit none private -public :: IO_File_close_ll, IO_File_open_ll - -interface IO_File_close_ll - module procedure IO_File_close -end interface - -interface IO_File_open_ll - module procedure IO_File_open -end interface +public :: IO_File_close, IO_File_open contains @@ -63,10 +56,10 @@ contains recursive SUBROUTINE IO_File_open(TPFILE,KRESP,HPOSITION,HSTATUS,HPROGRAM_ORIG) ! USE MODD_CONF, ONLY: CPROGRAM -USE MODD_IO_ll, ONLY: LIO_NO_WRITE +USE MODD_IO, ONLY: LIO_NO_WRITE ! -USE MODE_IO_ll, ONLY: GCONFIO -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME +USE MODE_IO, ONLY: GCONFIO +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list, IO_File_find_byname ! TYPE(TFILEDATA), POINTER, INTENT(INOUT) :: TPFILE ! File structure INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! Return code @@ -102,7 +95,7 @@ END IF TPFILE%LOPENED = .TRUE. ! !Check if file is in filelist -CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME),TZFILE_DUMMY,IRESP) +CALL IO_File_find_byname(TRIM(TPFILE%CNAME),TZFILE_DUMMY,IRESP) IF (IRESP/=0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_open','file '//TRIM(TPFILE%CNAME)//' not in filelist') ! SELECT CASE(TPFILE%CTYPE) @@ -154,11 +147,11 @@ SELECT CASE(TPFILE%CTYPE) !MesoNH files !Remark: 'MNH' is more general than MNHBACKUP and could be in fact a MNHBACKUP file CASE ('MNH', 'MNHBACKUP', 'MNHDIACHRONIC', 'MNHDIAG', 'MNHOUTPUT', 'PGD') - if (.not.GCONFIO) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_open','SET_CONFIO_ll must be called before IO_File_open') + if (.not.GCONFIO) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_open','IO_Config_set must be called before IO_File_open') !Do not open '.des' file if OUTPUT IF(TPFILE%CTYPE/='MNHOUTPUT' .AND. CPROGRAM/='LFICDF') THEN !OOLD=T because the file may already be in the list - CALL IO_FILE_ADD2LIST(TZFILE_DES,TRIM(TPFILE%CNAME)//'.des','DES',TPFILE%CMODE,TPDATAFILE=TPFILE,OOLD=.TRUE.) + CALL IO_File_add2list(TZFILE_DES,TRIM(TPFILE%CNAME)//'.des','DES',TPFILE%CMODE,TPDATAFILE=TPFILE,OOLD=.TRUE.) CALL IO_File_open(TZFILE_DES,HPROGRAM_ORIG=HPROGRAM_ORIG) ENDIF @@ -180,15 +173,11 @@ END SUBROUTINE IO_File_open SUBROUTINE OPEN_ll(TPFILE, KRESP, HMODE, HSTATUS, HPOSITION, HDELIM, HPROGRAM_ORIG) - use modd_io_ll, only: ISNPROC, ISP, LVERB_ALLPRC, nio_rank, NNULLUNIT + use modd_io, only: ISNPROC, ISP, LVERB_ALLPRC, nio_rank, NNULLUNIT use modd_var_ll, only : nmnh_comm_world -#if defined(MNH_IOCDF4) - use mode_io_file_nc4, only: io_create_file_nc4, io_open_file_nc4 -#endif - use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi - USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME - use mode_io_tools, only: io_rank + USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list, IO_File_find_byname + use mode_io_tools, only: IO_Rank_master_get use mode_tools, only: upcase TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE @@ -433,19 +422,19 @@ SUBROUTINE OPEN_ll(TPFILE, KRESP, HMODE, HSTATUS, HPOSITION, HDELIM, HPROGRAM_OR CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','SIZE(TPFILE%TFILES_IOZ) /= TPFILE%NSUBFILES_IOZ for '//TRIM(TPFILE%CNAME)) END IF DO IFILE=1,TPFILE%NSUBFILES_IOZ - IRANK_PROCIO = 1 + IO_RANK(IFILE-1,ISNPROC,TPFILE%NSUBFILES_IOZ) + IRANK_PROCIO = 1 + IO_Rank_master_get( IFILE-1, ISNPROC, TPFILE%NSUBFILES_IOZ ) WRITE(YFILE ,'(".Z",i3.3)') IFILE - CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//TRIM(YFILE),TZSPLITFILE,IRESP) + CALL IO_File_find_byname(TRIM(TPFILE%CNAME)//TRIM(YFILE),TZSPLITFILE,IRESP) IF (IRESP/=0) THEN !File not yet in filelist => add it (nothing to do if already in list) IF (ALLOCATED(TPFILE%CDIRNAME)) THEN - CALL IO_FILE_ADD2LIST(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & + CALL IO_File_add2list(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & HDIRNAME=TPFILE%CDIRNAME, & KLFINPRAR=TPFILE%NLFINPRAR,KLFITYPE=TPFILE%NLFITYPE,KLFIVERB=TPFILE%NLFIVERB, & HFORMAT=TPFILE%CFORMAT) ELSE - CALL IO_FILE_ADD2LIST(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & + CALL IO_File_add2list(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & KLFINPRAR=TPFILE%NLFINPRAR,KLFITYPE=TPFILE%NLFITYPE,KLFIVERB=TPFILE%NLFIVERB, & HFORMAT=TPFILE%CFORMAT) END IF @@ -474,32 +463,10 @@ SUBROUTINE OPEN_ll(TPFILE, KRESP, HMODE, HSTATUS, HPOSITION, HDELIM, HPROGRAM_OR TZSPLITFILE%NOPEN = TZSPLITFILE%NOPEN + 1 TZSPLITFILE%NOPEN_CURRENT = TZSPLITFILE%NOPEN_CURRENT + 1 -#if defined(MNH_IOCDF4) - IF (TZSPLITFILE%CFORMAT=='NETCDF4' .OR. TZSPLITFILE%CFORMAT=='LFICDF4') THEN - IF (YACTION == 'READ') THEN - ! Open netCDF File for reading - call io_open_file_nc4(tzsplitfile) - END IF - - IF (YACTION == 'WRITE') THEN - ! Create netCDF File for writing - call io_create_file_nc4(TZSPLITFILE, hprogram_orig=HPROGRAM_ORIG) - END IF - END IF -#endif - IF (TZSPLITFILE%CFORMAT=='LFI' .OR. TZSPLITFILE%CFORMAT=='LFICDF4') THEN - SELECT CASE (YACTION) - CASE('READ') - call io_open_file_lfi(tzsplitfile,iresp) - CASE('WRITE') - call io_create_file_lfi(tzsplitfile,iresp) - END SELECT - ENDIF - ! + call IO_File_open_format( tzsplitfile, hprogram_orig=hprogram_orig ) ENDDO END IF - END SELECT TPFILE%NMPICOMM = NMNH_COMM_WORLD @@ -521,15 +488,15 @@ END SUBROUTINE OPEN_ll recursive SUBROUTINE IO_File_close(TPFILE,KRESP,HPROGRAM_ORIG) ! -USE MODD_CONF, ONLY: CPROGRAM -USE MODD_IO_ll, ONLY: NNULLUNIT +use modd_conf, only: cprogram +use modd_io, only: nnullunit -use mode_io_file_lfi, only: io_close_file_lfi +use mode_io_file_lfi, only: IO_File_close_lfi #if defined(MNH_IOCDF4) -use mode_io_file_nc4, only: io_close_file_nc4 -use mode_io_write_nc4, only: io_write_coordvar_nc4 +use mode_io_file_nc4, only: IO_File_close_nc4 +use mode_io_write_nc4, only: IO_Coordvar_write_nc4 #endif -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME +use mode_io_manage_struct, only: IO_File_find_byname ! TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure INTEGER, OPTIONAL, INTENT(OUT) :: KRESP ! Return code @@ -582,7 +549,7 @@ SELECT CASE(TPFILE%CTYPE) CASE ('MNH', 'MNHBACKUP', 'MNHDIACHRONIC', 'MNHDIAG', 'MNHOUTPUT', 'PGD') !Do not close (non-existing) '.des' file if OUTPUT IF(TPFILE%CTYPE/='OUTPUT' .AND. CPROGRAM/='LFICDF') THEN - CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//'.des',TZFILE_DES,IRESP) + CALL IO_File_find_byname(TRIM(TPFILE%CNAME)//'.des',TZFILE_DES,IRESP) IF (IRESP/=0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_close','file '//TRIM(TPFILE%CNAME)//'.des not in filelist') CALL IO_File_close(TZFILE_DES,KRESP=IRESP,HPROGRAM_ORIG=HPROGRAM_ORIG) ENDIF @@ -590,18 +557,18 @@ SELECT CASE(TPFILE%CTYPE) #if defined(MNH_IOCDF4) !Write coordinates variables in NetCDF file IF (TPFILE%CMODE == 'WRITE' .AND. (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4')) THEN - CALL IO_WRITE_COORDVAR_NC4(TPFILE,HPROGRAM_ORIG=HPROGRAM_ORIG) + CALL IO_Coordvar_write_nc4(TPFILE,HPROGRAM_ORIG=HPROGRAM_ORIG) END IF #endif if (tpfile%lmaster) then - if (tpfile%cformat == 'LFI' .or. tpfile%cformat == 'LFICDF4') call io_close_file_lfi(tpfile,iresp) + if (tpfile%cformat == 'LFI' .or. tpfile%cformat == 'LFICDF4') call IO_File_close_lfi(tpfile,iresp) #if defined(MNH_IOCDF4) - if (tpfile%cformat == 'NETCDF4' .or. tpfile%cformat == 'LFICDF4') call io_close_file_nc4(tpfile,iresp) + if (tpfile%cformat == 'NETCDF4' .or. tpfile%cformat == 'LFICDF4') call IO_File_close_nc4(tpfile,iresp) #endif end if ! - CALL IO_ADD2TRANSFER_LIST(TPFILE) + CALL IO_Transfer_list_addto(TPFILE) ! SUBFILES: DO JI = 1,TPFILE%NSUBFILES_IOZ TZFILE_IOZ => TPFILE%TFILES_IOZ(JI)%TFILE @@ -616,13 +583,13 @@ SELECT CASE(TPFILE%CTYPE) #if defined(MNH_IOCDF4) !Write coordinates variables in netCDF file IF (TZFILE_IOZ%CMODE == 'WRITE' .AND. (TZFILE_IOZ%CFORMAT=='NETCDF4' .OR. TZFILE_IOZ%CFORMAT=='LFICDF4')) THEN - CALL IO_WRITE_COORDVAR_NC4(TZFILE_IOZ,HPROGRAM_ORIG=HPROGRAM_ORIG) + CALL IO_Coordvar_write_nc4(TZFILE_IOZ,HPROGRAM_ORIG=HPROGRAM_ORIG) END IF #endif IF (TZFILE_IOZ%LMASTER) THEN - if (tzfile_ioz%cformat == 'LFI' .or. tzfile_ioz%cformat == 'LFICDF4') call io_close_file_lfi(tzfile_ioz,iresp) + if (tzfile_ioz%cformat == 'LFI' .or. tzfile_ioz%cformat == 'LFICDF4') call IO_File_close_lfi(tzfile_ioz,iresp) #if defined(MNH_IOCDF4) - if (tzfile_ioz%cformat == 'NETCDF4' .or. tzfile_ioz%cformat == 'LFICDF4') call io_close_file_nc4(tzfile_ioz,iresp) + if (tzfile_ioz%cformat == 'NETCDF4' .or. tzfile_ioz%cformat == 'LFICDF4') call IO_File_close_nc4(tzfile_ioz,iresp) #endif END IF END DO SUBFILES @@ -641,9 +608,9 @@ IF (PRESENT(KRESP)) KRESP=IRESP END SUBROUTINE IO_File_close -subroutine IO_ADD2TRANSFER_LIST(TPFILE) +subroutine IO_Transfer_list_addto(TPFILE) -USE MODD_CONF, ONLY : CPROGRAM +USE MODD_CONF, ONLY: CPROGRAM USE MODI_SYSTEM_MNH @@ -657,7 +624,7 @@ INTEGER, SAVE :: ICPT = 0 YFILEM = TPFILE%CNAME -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_ADD2TRANSFER_LIST','called for '//TRIM(YFILEM)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Transfer_list_addto','called for '//TRIM(YFILEM)) IF (TPFILE%LMASTER .AND. CPROGRAM/='LFICDF') THEN !! Write in pipe @@ -669,24 +636,24 @@ IF (TPFILE%LMASTER .AND. CPROGRAM/='LFICDF') THEN SELECT CASE (TPFILE%NLFITYPE) CASE(:-1,3:) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_ADD2TRANSFER_LIST',TRIM(YFILEM)//': incorrect NLFITYPE') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Transfer_list_addto',TRIM(YFILEM)//': incorrect NLFITYPE') CASE(0) YCPIO='NIL' CASE(1) YCPIO='MESONH' CASE(2) - CALL PRINT_MSG(NVERB_INFO,'IO','IO_ADD2TRANSFER_LIST','file '//TRIM(YFILEM)//' not transferred') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Transfer_list_addto','file '//TRIM(YFILEM)//' not transferred') END SELECT if (TPFILE%NLFITYPE==0 .or. TPFILE%NLFITYPE==1) then ICPT=ICPT+1 WRITE (YCOMMAND,'(A," ",A," ",A," >> OUTPUT_TRANSFER",I3.3," 2>&1 &")') YTRANS,YCPIO,TRIM(YFILEM),ICPT - CALL PRINT_MSG(NVERB_INFO,'IO','IO_ADD2TRANSFER_LIST','YCOMMAND='//TRIM(YCOMMAND)) + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Transfer_list_addto','YCOMMAND='//TRIM(YCOMMAND)) CALL SYSTEM_MNH(YCOMMAND) end if END IF -end subroutine IO_ADD2TRANSFER_LIST +end subroutine IO_Transfer_list_addto subroutine IO_File_check_format_exist( tpfile ) @@ -750,9 +717,9 @@ end subroutine IO_File_check_format_exist subroutine IO_File_open_format( tpfile, hprogram_orig ) #if defined(MNH_IOCDF4) -use mode_io_file_nc4, only: io_create_file_nc4, io_open_file_nc4 +use mode_io_file_nc4, only: IO_File_create_nc4, IO_File_open_nc4 #endif -use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi +use mode_io_file_lfi, only: IO_File_create_lfi, IO_File_open_lfi type(tfiledata), intent(inout) :: tpfile ! File structure character(len=*), optional, intent(in) :: hprogram_orig !To emulate a file coming from this program @@ -766,9 +733,9 @@ call Print_msg( NVERB_DEBUG, 'IO', 'IO_File_open_format', 'called for '//TRIM(tp IF (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4') THEN SELECT CASE (TPFILE%CMODE) CASE('READ') - call io_open_file_nc4(tpfile) + call IO_File_open_nc4(tpfile) CASE('WRITE') - call io_create_file_nc4(TPFILE, hprogram_orig=HPROGRAM_ORIG) + call IO_File_create_nc4(TPFILE, hprogram_orig=HPROGRAM_ORIG) END SELECT END IF #endif @@ -776,9 +743,9 @@ call Print_msg( NVERB_DEBUG, 'IO', 'IO_File_open_format', 'called for '//TRIM(tp IF (TPFILE%CFORMAT=='LFI' .OR. TPFILE%CFORMAT=='LFICDF4') THEN SELECT CASE (TPFILE%CMODE) CASE('READ') - call io_open_file_lfi(tpfile,iresp) + call IO_File_open_lfi(tpfile,iresp) CASE('WRITE') - call io_create_file_lfi(tpfile,iresp) + call IO_File_create_lfi(tpfile,iresp) END SELECT END IF diff --git a/src/LIB/SURCOUCHE/src/mode_io_file_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_file_lfi.f90 index b79ff2ec1..f8645e9ca 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_file_lfi.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_file_lfi.f90 @@ -3,21 +3,22 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -! Author: P. Wautelet 14/12/2018 +! Author +! P. Wautelet 14/12/2018 ! ! Remarks: some of the code comes from mode_fm.f90 and mode_io.f90 ! (was duplicated in the 2 files) ! -! Modifications: -! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN -! + move IOFREEFLU and IONEWFLU to mode_io_file_lfi.f90 -! + move management of NNCID and NLFIFLU to the nc4 and lfi subroutines +! Modifications: +! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN +! + move IO_Flu_dealloc and IO_Flu_alloc to mode_io_file_lfi.f90 +! + move management of NNCID and NLFIFLU to the nc4 and lfi subroutines +! P. Wautelet 05/03/2019: rename IO subroutines and modules ! !----------------------------------------------------------------- module mode_io_file_lfi -use modd_io_ll, only: tfiledata -use modd_netcdf, only: idcdf_kind +use modd_io, only: tfiledata use mode_msg @@ -25,7 +26,7 @@ implicit none private -public :: io_create_file_lfi, io_close_file_lfi, io_open_file_lfi +public :: IO_File_create_lfi, IO_File_close_lfi, IO_File_open_lfi integer, parameter :: JPRESERVED_UNIT = 11 integer, parameter :: JPMAX_UNIT_NUMBER = JPRESERVED_UNIT + 300 @@ -34,10 +35,10 @@ logical,save :: galloc(JPRESERVED_UNIT:JPMAX_UNIT_NUMBER) = .false. contains -subroutine io_create_file_lfi(tpfile, kstatus) - use mode_io_tools, only: io_construct_filename - use mode_io_tools_lfi, only: io_prepare_verbosity_lfi - use mode_io_tools_mnhversion, only: io_set_mnhversion +subroutine IO_File_create_lfi(tpfile, kstatus) + use mode_io_tools, only: IO_Filename_construct + use mode_io_tools_mnhversion, only: IO_Mnhversion_set + use mode_io_tools_lfi, only: IO_Verbosity_prepare_lfi type(tfiledata), intent(inout) :: tpfile integer, intent(inout) :: kstatus @@ -50,22 +51,22 @@ subroutine io_create_file_lfi(tpfile, kstatus) logical :: gnewfi logical :: gnamfi, gfater, gstats - call print_msg(NVERB_DEBUG,'IO','io_create_file_lfi','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_File_create_lfi','called for '//trim(tpfile%cname)) kstatus = 0 if (tpfile%lmaster) then - call io_construct_filename(tpfile, yfilem) + call IO_Filename_construct(tpfile, yfilem) iresou = 0 if ( tpfile%nlfiflu /= -1 ) call print_msg(NVERB_ERROR,'IO', & - 'io_create_file_lfi','file '//trim(yfilem)//'.lfi has already a unit number') - tpfile%nlfiflu = ionewflu() + 'IO_File_create_lfi','file '//trim(yfilem)//'.lfi has already a unit number') + tpfile%nlfiflu = IO_Flu_alloc() gnamfi = .true. yforstatus = 'REPLACE' gfater = .true. - call io_prepare_verbosity_lfi(tpfile, imelev, gstats) + call IO_Verbosity_prepare_lfi(tpfile, imelev, gstats) inumbr = tpfile%nlfiflu inprar = tpfile%nlfinprar @@ -78,14 +79,14 @@ subroutine io_create_file_lfi(tpfile, kstatus) !test if file is newly defined gnewfi = (ininar==0) .or. (imelev<2) if (.not.gnewfi) then - call print_msg(NVERB_INFO,'IO','io_create_file_lfi','file '//trim(yfilem)//'.lfi previously created with LFI') + call print_msg(NVERB_INFO,'IO','IO_File_create_lfi','file '//trim(yfilem)//'.lfi previously created with LFI') endif end if - call io_set_mnhversion(tpfile) -end subroutine io_create_file_lfi + call IO_Mnhversion_set(tpfile) +end subroutine IO_File_create_lfi -subroutine io_close_file_lfi(tpfile, kstatus) +subroutine IO_File_close_lfi(tpfile, kstatus) type(tfiledata), intent(inout) :: tpfile integer, optional, intent(out) :: kstatus @@ -93,29 +94,29 @@ subroutine io_close_file_lfi(tpfile, kstatus) integer(kind=LFI_INT) :: istatus - call print_msg(NVERB_DEBUG,'IO','io_close_file_lfi','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_File_close_lfi','called for '//trim(tpfile%cname)) istatus = 0 if (tpfile%lmaster) then if ( tpfile%nlfiflu /= -1 ) then call lfifer(istatus, tpfile%nlfiflu, YSTATUS) - call iofreeflu(int(tpfile%nlfiflu)) + call IO_Flu_dealloc(int(tpfile%nlfiflu)) tpfile%nlfiflu = -1 else istatus = -1 - call print_msg(NVERB_WARNING, 'IO', 'io_close_file_lfi', 'file '//trim(tpfile%cname)//'.lfi is not opened') + call print_msg(NVERB_WARNING, 'IO', 'IO_File_close_lfi', 'file '//trim(tpfile%cname)//'.lfi is not opened') end if end if if (present(kstatus)) kstatus = int(istatus,kind=kind(kstatus)) -end subroutine io_close_file_lfi +end subroutine IO_File_close_lfi -subroutine io_open_file_lfi(tpfile, kstatus) - use mode_io_tools, only: io_construct_filename - use mode_io_tools_lfi, only: io_prepare_verbosity_lfi - use mode_io_tools_mnhversion, only: io_get_mnhversion +subroutine IO_File_open_lfi(tpfile, kstatus) + use mode_io_tools, only: IO_Filename_construct + use mode_io_tools_mnhversion, only: IO_Mnhversion_get + use mode_io_tools_lfi, only: IO_Verbosity_prepare_lfi type(tfiledata), intent(inout) :: tpfile integer, intent(inout) :: kstatus @@ -129,22 +130,22 @@ subroutine io_open_file_lfi(tpfile, kstatus) logical :: gnewfi logical :: gnamfi, gfater, gstats - call print_msg(NVERB_DEBUG,'IO','io_open_file_lfi','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_File_open_lfi','called for '//trim(tpfile%cname)) kstatus = 0 if (tpfile%lmaster) then - call io_construct_filename(tpfile, yfilem) + call IO_Filename_construct(tpfile, yfilem) iresou = 0 if ( tpfile%nlfiflu /= -1 ) call print_msg(NVERB_ERROR,'IO', & - 'io_open_file_lfi','file '//trim(yfilem)//'.lfi has already a unit number') - tpfile%nlfiflu = ionewflu() + 'IO_File_open_lfi','file '//trim(yfilem)//'.lfi has already a unit number') + tpfile%nlfiflu = IO_Flu_alloc() gnamfi = .true. yforstatus = 'OLD' gfater = .true. - call io_prepare_verbosity_lfi(tpfile, imelev, gstats) + call IO_Verbosity_prepare_lfi(tpfile, imelev, gstats) inumbr = tpfile%nlfiflu inprar = tpfile%nlfinprar @@ -155,14 +156,14 @@ subroutine io_open_file_lfi(tpfile, kstatus) if (iresou/=0) kstatus = int(iresou, kind=kind(kstatus)) end if - call io_get_mnhversion(tpfile) -end subroutine io_open_file_lfi + call IO_Mnhversion_get(tpfile) +end subroutine IO_File_open_lfi -function ionewflu() - use modd_io_ll, only: nnullunit +function IO_Flu_alloc() + use modd_io, only: nnullunit - integer :: ionewflu + integer :: IO_Flu_alloc integer :: ji integer :: ios @@ -174,7 +175,7 @@ function ionewflu() if ( galloc(ji) ) cycle inquire(unit=ji, exist=gexists, opened=gopened, iostat=ios) if (gexists .and. .not. gopened .and. ios == 0) then - ionewflu = ji + IO_Flu_alloc = ji gfound = .true. galloc(ji) = .true. exit @@ -182,21 +183,21 @@ function ionewflu() end do if (.not. gfound) then - call print_msg(NVERB_ERROR,'IO','ionewflu','wrong unit number') - ionewflu = nnullunit !/dev/null Fortran unit + call print_msg(NVERB_ERROR,'IO','IO_Flu_alloc','wrong unit number') + IO_Flu_alloc = nnullunit !/dev/null Fortran unit end if -end function ionewflu +end function IO_Flu_alloc -subroutine iofreeflu(koflu) +subroutine IO_Flu_dealloc(koflu) integer :: koflu if ( (koflu >= JPRESERVED_UNIT) .and. (koflu <= JPMAX_UNIT_NUMBER) ) then galloc(koflu) = .false. else - call print_msg(NVERB_ERROR,'IO','iofreeflu','wrong unit number') + call print_msg(NVERB_ERROR,'IO','IO_Flu_dealloc','wrong unit number') end if -end subroutine iofreeflu +end subroutine IO_Flu_dealloc end module mode_io_file_lfi diff --git a/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 index 34b375157..fbc563242 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 @@ -3,25 +3,27 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -! Author: P. Wautelet 13/12/2018 +! Author +! P. Wautelet 13/12/2018 ! ! Remarks: some of the code comes from mode_fm.f90 and mode_io.f90 ! (was duplicated in the 2 files) ! -! Modifications: -! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN -! + move IOFREEFLU and IONEWFLU to mode_io_file_lfi.f90 -! + move management of NNCID and NLFIFLU to the nc4 and lfi subroutines -! Philippe Wautelet: 10/01/2019: replace handle_err by io_handle_err_nc4 for better netCDF error messages +! Modifications: +! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN +! + move IOFREEFLU and IONEWFLU to mode_io_file_lfi.f90 +! + move management of NNCID and NLFIFLU to the nc4 and lfi subroutines +! P. Wautelet 10/01/2019: replace handle_err by IO_Err_handle_nc4 for better netCDF error messages +! P. Wautelet 05/03/2019: rename IO subroutines and modules ! !----------------------------------------------------------------- #if defined(MNH_IOCDF4) module mode_io_file_nc4 -use modd_io_ll, only: tfiledata +use modd_io, only: tfiledata use modd_netcdf, only: IDCDF_KIND -use mode_io_tools_nc4, only: io_handle_err_nc4, io_set_knowndims_nc4, newiocdf +use mode_io_tools_nc4, only: IO_Err_handle_nc4, IO_Knowndims_set_nc4, IO_Iocdf_alloc_nc4 use mode_msg use NETCDF, only: NF90_CLOBBER, NF90_GLOBAL, NF90_NETCDF4, NF90_NOERR, NF90_NOWRITE, & @@ -32,13 +34,13 @@ implicit none private -public :: io_create_file_nc4, io_close_file_nc4, io_open_file_nc4 +public :: IO_File_create_nc4, IO_File_close_nc4, IO_File_open_nc4 contains -subroutine io_create_file_nc4(tpfile,hprogram_orig) - use mode_io_tools, only: io_construct_filename - use mode_io_tools_mnhversion, only: io_set_mnhversion +subroutine IO_File_create_nc4(tpfile,hprogram_orig) + use mode_io_tools, only: IO_Filename_construct + use mode_io_tools_mnhversion, only: IO_Mnhversion_set type(tfiledata), intent(inout) :: tpfile character(len=*),optional, intent(in) :: hprogram_orig !to emulate a file coming from this program @@ -46,141 +48,141 @@ subroutine io_create_file_nc4(tpfile,hprogram_orig) character(len=:),allocatable :: yfilem ! name of the file integer(kind=IDCDF_KIND) :: istatus - call print_msg(NVERB_DEBUG,'IO','io_create_file_nc4','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_File_create_nc4','called for '//trim(tpfile%cname)) if (tpfile%lmaster) then - call io_construct_filename(tpfile, yfilem) + call IO_Filename_construct(tpfile, yfilem) - tpfile%tncdims => newiocdf() + tpfile%tncdims => IO_Iocdf_alloc_nc4() istatus = NF90_CREATE(adjustl(trim(yfilem))//".nc", ior(NF90_CLOBBER,NF90_NETCDF4), tpfile%nncid) if (istatus /= NF90_NOERR) then - call print_msg(NVERB_FATAL,'IO','io_create_file_nc4','NF90_CREATE for '//trim(yfilem)//'.nc: '//NF90_STRERROR(istatus)) + call print_msg(NVERB_FATAL,'IO','IO_File_create_nc4','NF90_CREATE for '//trim(yfilem)//'.nc: '//NF90_STRERROR(istatus)) end if call io_set_not_cleanly_closed_nc4(tpfile) - call io_set_mnhversion(tpfile) - call io_set_knowndims_nc4(tpfile, hprogram_orig=hprogram_orig) + call IO_Mnhversion_set(tpfile) + call IO_Knowndims_set_nc4(tpfile, hprogram_orig=hprogram_orig) end if -end subroutine io_create_file_nc4 +end subroutine IO_File_create_nc4 -subroutine io_close_file_nc4(tpfile,kstatus) - use mode_io_tools_nc4, only: cleaniocdf +subroutine IO_File_close_nc4(tpfile,kstatus) + use mode_io_tools_nc4, only: IO_Iocdf_dealloc_nc4 type(tfiledata), intent(inout) :: tpfile integer(kind=IDCDF_KIND), optional, intent(out) :: kstatus integer(kind=IDCDF_KIND) :: istatus - call print_msg(NVERB_DEBUG,'IO','io_close_file_nc4','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_File_close_nc4','called for '//trim(tpfile%cname)) istatus = 0 if (tpfile%lmaster ) then if (tpfile%nncid == -1) then - call print_msg(NVERB_WARNING, 'IO', 'io_close_file_nc4', 'file '//trim(tpfile%cname)//'.nc is not opened') + call print_msg(NVERB_WARNING, 'IO', 'IO_File_close_nc4', 'file '//trim(tpfile%cname)//'.nc is not opened') else - if (trim(tpfile%cmode) == 'WRITE') call io_set_cleanly_closed_nc4(tpfile) + if (trim(tpfile%cmode) == 'WRITE') call IO_Cleanly_closed_set_nc4(tpfile) istatus = NF90_CLOSE(tpfile%nncid) if (istatus /= NF90_NOERR) then - call print_msg(NVERB_WARNING, 'IO', 'io_close_file_nc4', 'NF90_CLOSE error: '//trim(NF90_STRERROR(istatus))) + call print_msg(NVERB_WARNING, 'IO', 'IO_File_close_nc4', 'NF90_CLOSE error: '//trim(NF90_STRERROR(istatus))) end if tpfile%nncid = -1 - if (associated(tpfile%tncdims)) call cleaniocdf(tpfile%tncdims) + if (associated(tpfile%tncdims)) call IO_Iocdf_dealloc_nc4(tpfile%tncdims) end if end if if (present(kstatus)) kstatus = istatus -end subroutine io_close_file_nc4 +end subroutine IO_File_close_nc4 -subroutine io_open_file_nc4(tpfile) - use mode_io_tools, only: io_construct_filename - use mode_io_tools_mnhversion, only: io_get_mnhversion +subroutine IO_File_open_nc4(tpfile) + use mode_io_tools, only: IO_Filename_construct + use mode_io_tools_mnhversion, only: IO_Mnhversion_get type(tfiledata), intent(inout) :: tpfile character(len=:),allocatable :: yfilem ! name of the file integer(kind=IDCDF_KIND) :: istatus - call print_msg(NVERB_DEBUG,'IO','io_open_file_nc4','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_File_open_nc4','called for '//trim(tpfile%cname)) if (tpfile%lmaster) then - call io_construct_filename(tpfile, yfilem) + call IO_Filename_construct(tpfile, yfilem) - tpfile%tncdims => newiocdf() + tpfile%tncdims => IO_Iocdf_alloc_nc4() istatus = NF90_OPEN(adjustl(trim(yfilem))//".nc", NF90_NOWRITE, tpfile%nncid) if (istatus /= NF90_NOERR) then - call print_msg(NVERB_FATAL, 'IO', 'io_open_file_nc4', 'NF90_OPEN for '//trim(yfilem)//'.nc: '//NF90_STRERROR(istatus)) + call print_msg(NVERB_FATAL, 'IO', 'IO_File_open_nc4', 'NF90_OPEN for '//trim(yfilem)//'.nc: '//NF90_STRERROR(istatus)) end if istatus = NF90_INQUIRE(tpfile%nncid, nvariables=tpfile%nncnar) if (istatus /= NF90_NOERR) then - call print_msg(NVERB_FATAL,'IO','io_open_file_nc4','NF90_INQUIRE for '//trim(yfilem)//'.nc: '//NF90_STRERROR(istatus)) + call print_msg(NVERB_FATAL,'IO','IO_File_open_nc4','NF90_INQUIRE for '//trim(yfilem)//'.nc: '//NF90_STRERROR(istatus)) end if end if if (trim(tpfile%cmode) == 'READ') then - call io_get_mnhversion(tpfile) - if (tpfile%lmaster) call io_check_cleanly_closed_nc4(tpfile) + call IO_Mnhversion_get(tpfile) + if (tpfile%lmaster) call IO_Cleanly_closed_check_nc4(tpfile) end if -end subroutine io_open_file_nc4 +end subroutine IO_File_open_nc4 -subroutine io_check_cleanly_closed_nc4(tpfile) +subroutine IO_Cleanly_closed_check_nc4(tpfile) type(tfiledata), intent(in) :: tpfile character(len=:), allocatable :: yclean integer(kind=IDCDF_KIND) :: ilen, istatus integer, dimension(3) :: imnhversion - call print_msg(NVERB_DEBUG,'IO','io_check_cleanly_closed_nc4','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_Cleanly_closed_check_nc4','called for '//trim(tpfile%cname)) imnhversion = tpfile%nmnhversion if ( imnhversion(1)<5 .OR. & (imnhversion(1)==5 .AND. imnhversion(2)<4) .OR. & (imnhversion(1)==5 .AND. imnhversion(2)==4 .AND. imnhversion(3)<2) ) then - call print_msg(NVERB_DEBUG,'IO','io_check_cleanly_closed_nc4', & + call print_msg(NVERB_DEBUG,'IO','IO_Cleanly_closed_check_nc4', & 'file '//trim(tpfile%cname)//' is too old (before MNH 5.4.2) to check if cleanly closed') return end if istatus = NF90_INQUIRE_ATTRIBUTE(tpfile%nncid, NF90_GLOBAL, 'MNH_cleanly_closed', len = ilen) if (istatus /= NF90_NOERR) then - call print_msg(NVERB_ERROR,'IO','io_check_cleanly_closed_nc4', & + call print_msg(NVERB_ERROR,'IO','IO_Cleanly_closed_check_nc4', & 'MNH_cleanly_closed attribute not found in file '//trim(tpfile%cname)) else allocate( character(len=ilen) :: yclean ) istatus = NF90_GET_ATT(tpfile%nncid, NF90_GLOBAL, 'MNH_cleanly_closed', yclean) if (istatus /= NF90_NOERR) then - call print_msg(NVERB_WARNING,'IO','io_check_cleanly_closed_nc4', & + call print_msg(NVERB_WARNING,'IO','IO_Cleanly_closed_check_nc4', & 'MNH_cleanly_closed attribute not found in file '//trim(tpfile%cname)) else if (yclean == 'yes') then - call print_msg(NVERB_DEBUG,'IO','io_check_cleanly_closed_nc4', & + call print_msg(NVERB_DEBUG,'IO','IO_Cleanly_closed_check_nc4', & 'file '//trim(tpfile%cname)//' was cleanly closed before opening') else if (yclean == 'no') then - call print_msg(NVERB_ERROR,'IO','io_check_cleanly_closed_nc4', & + call print_msg(NVERB_ERROR,'IO','IO_Cleanly_closed_check_nc4', & 'file '//trim(tpfile%cname)//' was not cleanly closed before opening') else - call print_msg(NVERB_ERROR,'IO','io_check_cleanly_closed_nc4', & + call print_msg(NVERB_ERROR,'IO','IO_Cleanly_closed_check_nc4', & 'invalid MNH_cleanly_closed attribute for file '//trim(tpfile%cname)) end if end if end if -end subroutine io_check_cleanly_closed_nc4 +end subroutine IO_Cleanly_closed_check_nc4 -subroutine io_set_cleanly_closed_nc4(tpfile) +subroutine IO_Cleanly_closed_set_nc4(tpfile) type(tfiledata), intent(in) :: tpfile integer(kind=IDCDF_KIND) :: istatus - call print_msg(NVERB_DEBUG,'IO','io_set_cleanly_closed_nc4','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_Cleanly_closed_set_nc4','called for '//trim(tpfile%cname)) istatus = NF90_PUT_ATT(tpfile%nncid, NF90_GLOBAL, 'MNH_cleanly_closed', 'yes') - if (istatus /= NF90_NOERR) call io_handle_err_nc4(istatus,'io_set_cleanly_closed_nc4','NF90_PUT_ATT','MNH_cleanly_closed') -end subroutine io_set_cleanly_closed_nc4 + if (istatus /= NF90_NOERR) call IO_Err_handle_nc4(istatus,'IO_Cleanly_closed_set_nc4','NF90_PUT_ATT','MNH_cleanly_closed') +end subroutine IO_Cleanly_closed_set_nc4 subroutine io_set_not_cleanly_closed_nc4(tpfile) @@ -191,7 +193,7 @@ subroutine io_set_not_cleanly_closed_nc4(tpfile) call print_msg(NVERB_DEBUG,'IO','io_set_not_cleanly_closed_nc4','called for '//trim(tpfile%cname)) istatus = NF90_PUT_ATT(tpfile%nncid, NF90_GLOBAL, 'MNH_cleanly_closed', 'no') - if (istatus /= NF90_NOERR) call io_handle_err_nc4(istatus,'io_set_not_cleanly_closed_nc4','NF90_PUT_ATT','MNH_cleanly_closed') + if (istatus /= NF90_NOERR) call IO_Err_handle_nc4(istatus,'io_set_not_cleanly_closed_nc4','NF90_PUT_ATT','MNH_cleanly_closed') end subroutine io_set_not_cleanly_closed_nc4 end module mode_io_file_nc4 @@ -199,22 +201,22 @@ end module mode_io_file_nc4 ! ! External dummy subroutines ! -subroutine io_create_file_nc4(a, b) +subroutine IO_File_create_nc4(a, b) use mode_msg integer :: a, b -CALL PRINT_MSG(NVERB_ERROR,'IO','io_create_file_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_create_file_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_create_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_File_create_nc4 ! -subroutine io_close_file_nc4(a) +subroutine IO_File_close_nc4(a) use mode_msg integer :: a -CALL PRINT_MSG(NVERB_ERROR,'IO','io_close_file_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_close_file_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_close_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_File_close_nc4 ! -subroutine io_open_file_nc4(a) +subroutine IO_File_open_nc4(a) use mode_msg integer :: a -CALL PRINT_MSG(NVERB_ERROR,'IO','io_open_file_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_open_file_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_open_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_File_open_nc4 ! #endif diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 index e3233b76c..8a50caedd 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 @@ -3,31 +3,34 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!! Authors -!! ------- -! -! P. Wautelet : 2016: original version +! Author(s) +! P. Wautelet 2016 ! Modifications: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll -! to allow to disable writes (for bench purposes) +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll +! to allow to disable writes (for bench purposes) ! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) ! P. Wautelet 18/02/2019: bugfixes for nsubfiles_ioz +! P. Wautelet 05/03/2019: rename IO subroutines and modules !----------------------------------------------------------------- MODULE MODE_IO_MANAGE_STRUCT ! -USE MODD_IO_ll +USE MODD_IO USE MODE_MSG ! IMPLICIT NONE ! +private +! +public :: IO_Bakout_struct_prepare, IO_File_add2list, IO_File_find_byname, IO_Filelist_print +! CONTAINS ! !######################################################################### -SUBROUTINE IO_PREPARE_BAKOUT_STRUCT(KSUP,PTSTEP,PSEGLEN) +SUBROUTINE IO_Bakout_struct_prepare(KSUP,PTSTEP,PSEGLEN) !######################################################################### ! USE MODD_BAKOUT @@ -61,7 +64,7 @@ INTEGER, DIMENSION(:), ALLOCATABLE :: IBAK_STEP, IOUT_STEP CHARACTER (LEN=4) :: YDADNUMBER ! Character string for the DAD model file number ! ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_PREPARE_BAKOUT_STRUCT','called') +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Bakout_struct_prepare','called') ! ! Special case if writes are forced to NO IF (LIO_NO_WRITE) THEN @@ -182,7 +185,7 @@ DO IMI = 1, NMODEL ELSE IERR_LVL = NVERB_ERROR END IF - CALL PRINT_MSG(IERR_LVL,'IO','IO_PREPARE_BAKOUT_STRUCT','no (valid) backup time') + CALL PRINT_MSG(IERR_LVL,'IO','IO_Bakout_struct_prepare','no (valid) backup time') END IF ! IOUT_NUMB = 0 @@ -206,7 +209,7 @@ DO IMI = 1, NMODEL !* Find dad output number ! !Security check (if it happens, this part of the code should be exported outside of the IMI loop) - IF (NDAD(IMI)>IMI) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_PREPARE_BAKOUT_STRUCT','NDAD(IMI)>IMI') + IF (NDAD(IMI)>IMI) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Bakout_struct_prepare','NDAD(IMI)>IMI') IF (NDAD(IMI) == IMI .OR. IMI == 1) THEN OUT_MODEL(IMI)%TBACKUPN(:)%NOUTDAD = 0 DO IPOS = 1,OUT_MODEL(IMI)%NBAK_NUMB @@ -262,7 +265,7 @@ DO IMI = 1, NMODEL DO IPOS = 1,JPOUTVARMAX IF (COUT_VAR(IMI,IPOS)/='') IVAR = IVAR + 1 END DO - IF (IVAR==0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_PREPARE_BAKOUT_STRUCT','no fields chosen for output') + IF (IVAR==0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Bakout_struct_prepare','no fields chosen for output') ALLOCATE(OUT_MODEL(IMI)%TOUTPUTN(1)%NFIELDLIST(IVAR)) !Determine the list of the outputs to do (by field number) IVAR = 1 @@ -273,7 +276,7 @@ DO IMI = 1, NMODEL CALL FIND_FIELD_ID_FROM_MNHNAME(COUT_VAR(IMI,IPOS),IFIELD,IRESP) OUT_MODEL(IMI)%TOUTPUTN(1)%NFIELDLIST(IVAR) = IFIELD IF (IRESP/=0) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_PREPARE_BAKOUT_STRUCT','unknown field for output: '//TRIM(COUT_VAR(IMI,IPOS))) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Bakout_struct_prepare','unknown field for output: '//TRIM(COUT_VAR(IMI,IPOS))) !MNH is killed to prevent problems with wrong values in NFIELDLIST END IF ! @@ -634,9 +637,9 @@ SUBROUTINE POPULATE_STRUCT(TPFILE_FIRST,TPFILE_LAST,KSTEPS,HFILETYPE,TPBAKOUTN) END DO END SUBROUTINE POPULATE_STRUCT ! -END SUBROUTINE IO_PREPARE_BAKOUT_STRUCT +END SUBROUTINE IO_Bakout_struct_prepare ! -SUBROUTINE IO_FILE_ADD2LIST(TPFILE,HNAME,HTYPE,HMODE, & +SUBROUTINE IO_File_add2list(TPFILE,HNAME,HTYPE,HMODE, & HFORM,HACCESS,HFORMAT,HDIRNAME, & KLFINPRAR,KLFITYPE,KLFIVERB,KRECL,KMODEL, & TPDADFILE,TPDATAFILE,OOLD,OSPLIT_IOZ) @@ -674,7 +677,7 @@ INTEGER :: ILFIVERB LOGICAL :: GOLD logical :: gsplit_ioz ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_ADD2LIST','called for '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_File_add2list','called for '//TRIM(HNAME)) ! IMI = GET_CURRENT_MODEL_INDEX() ! @@ -686,57 +689,57 @@ END IF ! IF (ASSOCIATED(TPFILE)) THEN IF (GOLD) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_FILE_ADD2LIST','file '//TRIM(HNAME)//' already associated. Pointer will be overwritten') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_File_add2list','file '//TRIM(HNAME)//' already associated. Pointer will be overwritten') TPFILE => NULL() ELSE - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','file '//TRIM(HNAME)//' already associated') + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_add2list','file '//TRIM(HNAME)//' already associated') END IF END IF ! -CALL IO_FILE_FIND_BYNAME(HNAME,TPFILE,IRESP,OOLD=GOLD) +CALL IO_File_find_byname(HNAME,TPFILE,IRESP,OOLD=GOLD) IF (IRESP==0) THEN !File has been found !Check if really same one (LFI vs netCDF) IF (PRESENT(HFORMAT)) THEN IF ( (HFORMAT=='LFI' .AND. TPFILE%CFORMAT/='NETCDF4') .OR. (HFORMAT=='NETCDF4' .AND. TPFILE%CFORMAT/='LFI') ) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','file '//TRIM(HNAME)//' already in filelist') + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_add2list','file '//TRIM(HNAME)//' already in filelist') END IF ELSE IF (.NOT.GOLD) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','file '//TRIM(HNAME)//' already in filelist') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','file '//TRIM(HNAME)//' already in filelist') ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_ADD2LIST','file '//TRIM(HNAME)//' already in filelist (not unexpected)') + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_File_add2list','file '//TRIM(HNAME)//' already in filelist (not unexpected)') END IF RETURN END IF END IF ! IF( PRESENT(HFORM) .AND. TRIM(HTYPE)/='SURFACE_DATA') & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST','optional argument HFORM is not used by '//TRIM(HTYPE)//' files') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_add2list','optional argument HFORM is not used by '//TRIM(HTYPE)//' files') IF(.NOT.PRESENT(HFORM) .AND. TRIM(HTYPE)=='SURFACE_DATA') & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','optional argument HFORM is necessary for '//TRIM(HTYPE)//' files') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','optional argument HFORM is necessary for '//TRIM(HTYPE)//' files') IF(PRESENT(HFORM)) THEN IF(HFORM/='FORMATTED' .AND. HFORM/='UNFORMATTED') & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','HFORM should be FORMATTED or UNFORMATTED and not '//TRIM(HFORM)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','HFORM should be FORMATTED or UNFORMATTED and not '//TRIM(HFORM)) END IF ! IF( PRESENT(HACCESS) .AND. TRIM(HTYPE)/='SURFACE_DATA') & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST','optional argument HACCESS is not used by '//TRIM(HTYPE)//' files') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_add2list','optional argument HACCESS is not used by '//TRIM(HTYPE)//' files') IF(.NOT.PRESENT(HACCESS) .AND. TRIM(HTYPE)=='SURFACE_DATA') & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','optional argument HACCESS is necessary for '//TRIM(HTYPE)//' files') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','optional argument HACCESS is necessary for '//TRIM(HTYPE)//' files') IF(PRESENT(HACCESS)) THEN IF(HACCESS/='DIRECT' .AND. HACCESS/='SEQUENTIAL' .AND. HACCESS/='STREAM') & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','HACCESS should be DIRECT, SEQUENTIAL or STREAM and not '//TRIM(HACCESS)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','HACCESS should be DIRECT, SEQUENTIAL or STREAM and not '//TRIM(HACCESS)) END IF ! IF (PRESENT(HFORMAT)) THEN IF(CPROGRAM=='LFICDF') THEN IF (HFORMAT/='LFI' .AND. HFORMAT/='NETCDF4') & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid HFORMAT ('//TRIM(HFORMAT)//')') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','invalid HFORMAT ('//TRIM(HFORMAT)//')') END IF ELSE IF(CPROGRAM=='LFICDF') & - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','optional argument HFORMAT is necessary for CPROGRAM='//TRIM(CPROGRAM)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_add2list','optional argument HFORMAT is necessary for CPROGRAM='//TRIM(CPROGRAM)) END IF ! IF(PRESENT(KLFINPRAR)) THEN @@ -758,15 +761,15 @@ ELSE END IF ! IF( PRESENT(KRECL) .AND. TRIM(HTYPE)/='SURFACE_DATA' .AND. TRIM(HTYPE)/='TXT') & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST','optional argument KRECL is not used by '//TRIM(HTYPE)//' files') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_add2list','optional argument KRECL is not used by '//TRIM(HTYPE)//' files') IF(.NOT.PRESENT(KRECL) .AND. TRIM(HTYPE)=='SURFACE_DATA') THEN IF(TRIM(HACCESS)=='DIRECT') & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','optional argument KRECL is necessary for '//TRIM(HTYPE)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','optional argument KRECL is necessary for '//TRIM(HTYPE)// & ' files in DIRECT access') END IF ! IF (PRESENT(TPDATAFILE) .AND. TRIM(HTYPE)/='DES') & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST','optional argument TPDATAFILE is not used by '//TRIM(HTYPE)//' files') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_add2list','optional argument TPDATAFILE is not used by '//TRIM(HTYPE)//' files') ! IF (.NOT.ASSOCIATED(TFILE_LAST)) THEN ALLOCATE(TFILE_LAST) @@ -787,7 +790,7 @@ IF (PRESENT(HDIRNAME)) THEN END IF ! IF (TRIM(HMODE)/='READ' .AND. TRIM(HMODE)/='WRITE') THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','unknown mode ('//TRIM(HMODE)//') for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_add2list','unknown mode ('//TRIM(HMODE)//') for file '//TRIM(HNAME)) END IF ! TPFILE%CMODE = HMODE @@ -819,7 +822,7 @@ SELECT CASE(TPFILE%CTYPE) !Chemistry input files CASE('CHEMINPUT') IF (TRIM(HMODE)/='READ') & !Invalid because not (yet) necessary - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) TPFILE%CACCESS = 'SEQUENTIAL' TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' @@ -828,7 +831,7 @@ SELECT CASE(TPFILE%CTYPE) !Chemistry tabulation files CASE('CHEMTAB') IF (TRIM(HMODE)/='READ') & !Invalid because not (yet) necessary - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) TPFILE%CACCESS = 'SEQUENTIAL' TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' @@ -841,14 +844,14 @@ SELECT CASE(TPFILE%CTYPE) TPFILE%CFORMAT = 'TEXT' TPFILE%NRECL = 8*1024 IF (.NOT.PRESENT(TPDATAFILE)) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','missing TPDATAFILE argument for DES file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','missing TPDATAFILE argument for DES file '//TRIM(HNAME)) ELSE IF (.NOT.ASSOCIATED(TPDATAFILE)) & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','TPDATAFILE is not associated for DES file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','TPDATAFILE is not associated for DES file '//TRIM(HNAME)) TPFILE%TDATAFILE => TPDATAFILE TPDATAFILE%TDESFILE => TPFILE IF (PRESENT(HDIRNAME)) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST','HDIRNAME argument ignored for DES file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_add2list','HDIRNAME argument ignored for DES file '//TRIM(HNAME)) IF (ALLOCATED(TPDATAFILE%CDIRNAME)) TPFILE%CDIRNAME = TPDATAFILE%CDIRNAME END IF @@ -856,7 +859,7 @@ SELECT CASE(TPFILE%CTYPE) !GPS files CASE('GPS') IF (TRIM(HMODE)/='WRITE') & !Invalid because not (yet) necessary - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) TPFILE%CACCESS = 'SEQUENTIAL' TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' @@ -865,7 +868,7 @@ SELECT CASE(TPFILE%CTYPE) !Meteo files CASE('METEO') IF (TRIM(HMODE)/='WRITE') & !Invalid because not (yet) necessary - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) TPFILE%CACCESS = 'SEQUENTIAL' TPFILE%CFORM = 'UNFORMATTED' TPFILE%CFORMAT = 'BINARY' @@ -875,7 +878,7 @@ SELECT CASE(TPFILE%CTYPE) !Namelist files CASE('NML') IF (TRIM(HMODE)/='READ') & !Invalid because not (yet) necessary - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) TPFILE%CACCESS = 'SEQUENTIAL' TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' @@ -884,7 +887,7 @@ SELECT CASE(TPFILE%CTYPE) !OUTPUTLISTING files CASE('OUTPUTLISTING') IF (TRIM(HMODE)/='WRITE') & !Invalid because not (yet) necessary - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) TPFILE%CACCESS = 'SEQUENTIAL' TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' @@ -893,7 +896,7 @@ SELECT CASE(TPFILE%CTYPE) !SURFACE_DATA files CASE('SURFACE_DATA') IF (TRIM(HMODE)/='READ') & !Invalid because not (yet) necessary - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) TPFILE%CFORMAT = 'SURFACE_DATA' TPFILE%CFORM = HFORM TPFILE%CACCESS = HACCESS @@ -920,7 +923,7 @@ SELECT CASE(TPFILE%CTYPE) ELSE IF (LIOCDF4) THEN TPFILE%CFORMAT = 'NETCDF4' ELSE - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','invalid format for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_add2list','invalid format for file '//TRIM(HNAME)) END IF ELSE IF (TRIM(HMODE)=='WRITE') THEN IF (PRESENT(HFORMAT)) THEN @@ -934,7 +937,7 @@ SELECT CASE(TPFILE%CTYPE) TPFILE%CFORMAT = 'LFI' TPFILE%NLFINPRAR = ILFINPRAR ELSE - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','invalid format for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_add2list','invalid format for file '//TRIM(HNAME)) END IF END IF ! @@ -948,7 +951,7 @@ SELECT CASE(TPFILE%CTYPE) END IF ! IF(PRESENT(TPDADFILE)) THEN - IF (.NOT.ASSOCIATED(TPDADFILE)) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST', & + IF (.NOT.ASSOCIATED(TPDADFILE)) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_add2list', & 'TPDADFILE provided but not associated for file '//TRIM(HNAME)) TPFILE%TDADFILE => TPDADFILE ELSE @@ -957,7 +960,7 @@ SELECT CASE(TPFILE%CTYPE) CASE default - call print_msg(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','invalid type '//trim(tpfile%ctype)//' for file '//trim(hname)) + call print_msg(NVERB_FATAL,'IO','IO_File_add2list','invalid type '//trim(tpfile%ctype)//' for file '//trim(hname)) END SELECT ! IF(PRESENT(KMODEL)) TPFILE%NMODEL = KMODEL @@ -966,9 +969,9 @@ TPFILE%LOPENED = .FALSE. TPFILE%NOPEN = 0 TPFILE%NCLOSE = 0 ! -END SUBROUTINE IO_FILE_ADD2LIST +END SUBROUTINE IO_File_add2list ! -SUBROUTINE IO_FILE_FIND_BYNAME(HNAME,TPFILE,KRESP,OOLD) +SUBROUTINE IO_File_find_byname(HNAME,TPFILE,KRESP,OOLD) ! USE MODD_PARAMETERS, ONLY: NFILENAMELGTMAX ! @@ -981,7 +984,7 @@ LOGICAL, OPTIONAL, INTENT(IN) :: OOLD ! FALSE if new file (should not be TYPE(TFILEDATA),POINTER :: TZFILE ! File structure LOGICAL :: GOLD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_FIND_BYNAME','looking for '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_File_find_byname','looking for '//TRIM(HNAME)) ! NULLIFY(TPFILE) KRESP = 0 @@ -993,10 +996,10 @@ ELSE END IF ! IF (LEN_TRIM(HNAME)>NFILENAMELGTMAX) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_FIND_BYNAME','HNAME length is bigger than NFILENAMELGTMAX for '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_find_byname','HNAME length is bigger than NFILENAMELGTMAX for '//TRIM(HNAME)) ! IF (.NOT.ASSOCIATED(TFILE_FIRST)) THEN - IF (GOLD) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_FIND_BYNAME','filelist is empty') + IF (GOLD) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_find_byname','filelist is empty') ELSE ! TZFILE => TFILE_FIRST @@ -1012,19 +1015,19 @@ ELSE END IF ! IF (.NOT.ASSOCIATED(TPFILE)) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_FIND_BYNAME','file '//TRIM(HNAME)//' not found in list') + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_File_find_byname','file '//TRIM(HNAME)//' not found in list') KRESP = -1 !File not found ELSE IF (GOLD) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_FIND_BYNAME',TRIM(HNAME)//' was found') + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_File_find_byname',TRIM(HNAME)//' was found') ELSE !File should not be found - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_FIND_BYNAME',TRIM(HNAME)//' was found (unexpected)') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_find_byname',TRIM(HNAME)//' was found (unexpected)') END IF END IF ! -END SUBROUTINE IO_FILE_FIND_BYNAME +END SUBROUTINE IO_File_find_byname ! -SUBROUTINE IO_FILE_PRINT_LIST(TPFILE_FIRST) +SUBROUTINE IO_Filelist_print(TPFILE_FIRST) ! USE MODD_VAR_ll, ONLY : IP ! @@ -1034,7 +1037,7 @@ TYPE(TFILEDATA),POINTER :: TZFILE ! File structure ! IF (IP/=1 .AND. .NOT.LVERB_ALLPRC) RETURN ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_PRINT_LIST','called') +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Filelist_print','called') ! IF (PRESENT(TPFILE_FIRST)) THEN IF (.NOT.ASSOCIATED(TPFILE_FIRST)) RETURN @@ -1060,6 +1063,6 @@ DO WHILE (ASSOCIATED(TZFILE%TFILE_NEXT)) END DO WRITE (*,'(/)') ! -END SUBROUTINE IO_FILE_PRINT_LIST +END SUBROUTINE IO_Filelist_print ! END MODULE MODE_IO_MANAGE_STRUCT diff --git a/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 index 91e4e0031..991a0c4b4 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 @@ -1,15 +1,17 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -module mode_io_read_lfi ! Modifications: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! Philippe Wautelet: 21/06/2018: read and write correctly if MNH_REAL=4 -! Philippe Wautelet: 14/12/2018: split fmreadwrit.f90 +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 21/06/2018: read and write correctly if MNH_REAL=4 +! P. Wautelet 14/12/2018: split fmreadwrit.f90 +! P. Wautelet 05/03/2019: rename IO subroutines and modules +!----------------------------------------------------------------- +module mode_io_read_lfi ! -USE MODD_IO_ll +USE MODD_IO USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH ! USE MODE_FIELD, ONLY : TFIELDDATA @@ -19,26 +21,26 @@ IMPLICIT NONE ! PRIVATE ! +public :: IO_Field_read_lfi +! INTEGER, PARAMETER :: JPXKRK = NLFIMAXCOMMENTLENGTH INTEGER, PARAMETER :: JPXFIE = 1.5E8 ! -INTERFACE IO_READ_FIELD_LFI - MODULE PROCEDURE IO_READ_FIELD_LFI_X0, IO_READ_FIELD_LFI_X1, & - IO_READ_FIELD_LFI_X2, IO_READ_FIELD_LFI_X3, & - IO_READ_FIELD_LFI_X4, IO_READ_FIELD_LFI_X5, & - IO_READ_FIELD_LFI_X6, & - IO_READ_FIELD_LFI_N0, IO_READ_FIELD_LFI_N1, & - IO_READ_FIELD_LFI_N2, & - IO_READ_FIELD_LFI_L0, IO_READ_FIELD_LFI_L1, & - IO_READ_FIELD_LFI_C0, & - IO_READ_FIELD_LFI_T0 -END INTERFACE IO_READ_FIELD_LFI -! -PUBLIC IO_READ_FIELD_LFI +INTERFACE IO_Field_read_lfi + MODULE PROCEDURE IO_Field_read_lfi_X0, IO_Field_read_lfi_X1, & + IO_Field_read_lfi_X2, IO_Field_read_lfi_X3, & + IO_Field_read_lfi_X4, IO_Field_read_lfi_X5, & + IO_Field_read_lfi_X6, & + IO_Field_read_lfi_N0, IO_Field_read_lfi_N1, & + IO_Field_read_lfi_N2, & + IO_Field_read_lfi_L0, IO_Field_read_lfi_L1, & + IO_Field_read_lfi_C0, & + IO_Field_read_lfi_T0 +END INTERFACE IO_Field_read_lfi ! CONTAINS ! -SUBROUTINE IO_READ_FIELD_LFI_X0(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_X0(TPFILE,TPFIELD,PFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -58,11 +60,11 @@ INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD REAL,DIMENSION(1) :: ZFIELD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = 1 ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) THEN !TRANSFER_I8_R works with 1D arrays @@ -74,10 +76,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_X0 +END SUBROUTINE IO_Field_read_lfi_X0 ! ! -SUBROUTINE IO_READ_FIELD_LFI_X1(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_X1(TPFILE,TPFIELD,PFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -96,11 +98,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) PFIELD = TRANSFER_I8_R(IWORK(IWORK(2)+3:)) ! @@ -108,10 +110,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_X1 +END SUBROUTINE IO_Field_read_lfi_X1 ! ! -SUBROUTINE IO_READ_FIELD_LFI_X2(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_X2(TPFILE,TPFIELD,PFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -130,11 +132,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) PFIELD = RESHAPE( TRANSFER_I8_R(IWORK(IWORK(2)+3:)) , SHAPE(PFIELD) ) ! @@ -142,10 +144,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_X2 +END SUBROUTINE IO_Field_read_lfi_X2 ! ! -SUBROUTINE IO_READ_FIELD_LFI_X3(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_X3(TPFILE,TPFIELD,PFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -164,11 +166,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) PFIELD = RESHAPE( TRANSFER_I8_R(IWORK(IWORK(2)+3:)) , SHAPE(PFIELD) ) ! @@ -176,10 +178,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_X3 +END SUBROUTINE IO_Field_read_lfi_X3 ! ! -SUBROUTINE IO_READ_FIELD_LFI_X4(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_X4(TPFILE,TPFIELD,PFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -198,11 +200,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) PFIELD = RESHAPE( TRANSFER_I8_R(IWORK(IWORK(2)+3:)) , SHAPE(PFIELD) ) ! @@ -210,10 +212,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_X4 +END SUBROUTINE IO_Field_read_lfi_X4 ! ! -SUBROUTINE IO_READ_FIELD_LFI_X5(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_X5(TPFILE,TPFIELD,PFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -232,11 +234,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) PFIELD = RESHAPE( TRANSFER_I8_R(IWORK(IWORK(2)+3:)) , SHAPE(PFIELD) ) ! @@ -244,10 +246,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_X5 +END SUBROUTINE IO_Field_read_lfi_X5 ! ! -SUBROUTINE IO_READ_FIELD_LFI_X6(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_X6(TPFILE,TPFIELD,PFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -266,11 +268,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) PFIELD = RESHAPE( TRANSFER_I8_R(IWORK(IWORK(2)+3:)) , SHAPE(PFIELD) ) ! @@ -278,10 +280,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_X6 +END SUBROUTINE IO_Field_read_lfi_X6 ! ! -SUBROUTINE IO_READ_FIELD_LFI_N0(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_N0(TPFILE,TPFIELD,KFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -300,11 +302,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = 1 ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) KFIELD = IWORK(IWORK(2)+3) ! @@ -312,10 +314,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_N0 +END SUBROUTINE IO_Field_read_lfi_N0 ! ! -SUBROUTINE IO_READ_FIELD_LFI_N1(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_N1(TPFILE,TPFIELD,KFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -334,11 +336,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(KFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) KFIELD(:) = IWORK(IWORK(2)+3:) ! @@ -346,10 +348,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_N1 +END SUBROUTINE IO_Field_read_lfi_N1 ! ! -SUBROUTINE IO_READ_FIELD_LFI_N2(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_N2(TPFILE,TPFIELD,KFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -368,11 +370,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(KFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) KFIELD(:,:) = RESHAPE(IWORK(IWORK(2)+3:),SHAPE(KFIELD)) ! @@ -380,10 +382,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_N2 +END SUBROUTINE IO_Field_read_lfi_N2 ! ! -SUBROUTINE IO_READ_FIELD_LFI_L0(TPFILE,TPFIELD,OFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_L0(TPFILE,TPFIELD,OFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -403,11 +405,11 @@ INTEGER :: IFIELD INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = 1 ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) THEN IFIELD = IWORK(IWORK(2)+3) @@ -416,7 +418,7 @@ IF (GGOOD) THEN ELSE IF (IFIELD==1) THEN OFIELD = .TRUE. ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_LFI_L0',TRIM(TPFILE%CNAME)//': invalid value in file for ' & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_lfi_L0',TRIM(TPFILE%CNAME)//': invalid value in file for ' & //TRIM(TPFIELD%CMNHNAME)) OFIELD = .TRUE. IRESP = -112 @@ -427,10 +429,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_L0 +END SUBROUTINE IO_Field_read_lfi_L0 ! ! -SUBROUTINE IO_READ_FIELD_LFI_L1(TPFILE,TPFIELD,OFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_L1(TPFILE,TPFIELD,OFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -451,11 +453,11 @@ INTEGER, DIMENSION(SIZE(OFIELD)) :: IFIELD INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(OFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) THEN IFIELD(:) = IWORK(IWORK(2)+3:) @@ -470,7 +472,7 @@ IF (GGOOD) THEN END IF END DO IF (IRESP==-112) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_LFI_L1',TRIM(TPFILE%CNAME)//': invalid value(s) in file for ' & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_lfi_L1',TRIM(TPFILE%CNAME)//': invalid value(s) in file for ' & //TRIM(TPFIELD%CMNHNAME)) END IF END IF @@ -479,10 +481,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_L1 +END SUBROUTINE IO_Field_read_lfi_L1 ! ! -SUBROUTINE IO_READ_FIELD_LFI_C0(TPFILE,TPFIELD,HFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_C0(TPFILE,TPFIELD,HFIELD,KRESP) ! USE MODD_PARAMETERS, ONLY: NFILENAMELGTMAXLFI ! @@ -504,7 +506,7 @@ INTEGER :: ILENG, ILENGMAX, JLOOP INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = LEN(HFIELD) ILENGMAX = ILENG @@ -514,11 +516,11 @@ IF (TPFIELD%CMNHNAME=='MY_NAME' .OR. TPFIELD%CMNHNAME=='DAD_NAME') THEN ILENG = MIN(LEN(HFIELD),NFILENAMELGTMAXLFI) ILENGMAX = NFILENAMELGTMAXLFI IF (LEN(HFIELD)<NFILENAMELGTMAXLFI) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_FIELD_LFI_C0',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_read_lfi_C0',TRIM(TPFILE%CNAME)// & ': LEN(HFIELD)<NFILENAMELGTMAXLFI') END IF ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENGMAX,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENGMAX,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) THEN DO JLOOP=1,ILENG @@ -530,10 +532,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_C0 +END SUBROUTINE IO_Field_read_lfi_C0 ! ! -SUBROUTINE IO_READ_FIELD_LFI_T0(TPFILE,TPFIELD,TPDATA,KRESP) +SUBROUTINE IO_Field_read_lfi_T0(TPFILE,TPFIELD,TPDATA,KRESP) ! USE MODE_MSG USE MODD_TYPE_DATE @@ -557,7 +559,7 @@ TYPE(TFIELDDATA) :: TZFIELD INTEGER, DIMENSION(3) :: ITDATE ! date array REAL,DIMENSION(1) :: ZTIME ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! TZFIELD = TPFIELD ! @@ -568,7 +570,7 @@ TZFIELD%CCOMMENT = 'YYYYMMDD' ! ILENG=SIZE(ITDATE) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TZFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TZFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) THEN TPDATA%TDATE%YEAR = IWORK(IWORK(2)+2+1) @@ -590,7 +592,7 @@ TZFIELD%CCOMMENT = 'SECONDS' ! ILENG=1 ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TZFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TZFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) THEN !TRANSFER_I8_R works with 1D arrays @@ -602,10 +604,10 @@ IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_LFI_T0 +END SUBROUTINE IO_Field_read_lfi_T0 ! ! -SUBROUTINE IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,KLENG,KWORK,KTOTAL,KRESP,OGOOD) +SUBROUTINE IO_Field_read_check_lfi(TPFILE,TPFIELD,KLENG,KWORK,KTOTAL,KRESP,OGOOD) ! USE MODD_PARAMETERS, ONLY: NGRIDUNKNOWN ! @@ -634,7 +636,7 @@ GOLDMNH = TPFILE%NMNHVERSION(1)<5 .OR. (TPFILE%NMNHVERSION(1)==5 .AND. TPFILE%NM ! YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_LFI','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_read_check_lfi','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) ! !* 2.a LET'S GET SOME INFORMATION ON THE DESIRED ARTICLE @@ -645,17 +647,17 @@ CALL LFINFO(KRESP,INUMBR,YRECFM,KTOTAL,IPOSEX) IF (KRESP.NE.0) THEN WRITE(YRESP, '( I12 )') KRESP YMSG = 'RESP='//TRIM(ADJUSTL(YRESP))//' in call to LFINFO when reading '//TRIM(TPFIELD%CMNHNAME)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_CHECK_FIELD_LFI',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_check_lfi',YMSG) OGOOD = .FALSE. RETURN ELSEIF (KTOTAL.EQ.0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_LFI',TRIM(TPFILE%CNAME)//': record length is zero for ' & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_read_check_lfi',TRIM(TPFILE%CNAME)//': record length is zero for ' & //TRIM(TPFIELD%CMNHNAME)) KRESP=-47 OGOOD = .FALSE. RETURN ELSEIF (KTOTAL.GT.JPXFIE) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_LFI',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_read_check_lfi',TRIM(TPFILE%CNAME)// & ': record length exceeds the maximum value in FM for '//TRIM(TPFIELD%CMNHNAME)) KRESP=-48 OGOOD = .FALSE. @@ -670,7 +672,7 @@ CALL LFILEC(KRESP,INUMBR,YRECFM,KWORK,KTOTAL) IF (KRESP.NE.0) THEN WRITE(YRESP, '( I12 )') KRESP YMSG = 'RESP='//TRIM(ADJUSTL(YRESP))//' in call to LFILEC when reading '//TRIM(TPFIELD%CMNHNAME)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_CHECK_FIELD_LFI',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_check_lfi',YMSG) OGOOD = .FALSE. RETURN ENDIF @@ -683,7 +685,7 @@ IROW=KLENG+ICOMLEN+2 IF (KTOTAL.NE.IROW) THEN WRITE(YRECLENGTH_FILE,'(I12)') KTOTAL-2-ICOMLEN WRITE(YRECLENGTH_MEM, '(I12)') KLENG - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_CHECK_FIELD_LFI','wrong field size for '//TRIM(TPFIELD%CMNHNAME) & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_check_lfi','wrong field size for '//TRIM(TPFIELD%CMNHNAME) & //' (expected: '//TRIM(ADJUSTL(YRECLENGTH_MEM))// & ', in file: ' //TRIM(ADJUSTL(YRECLENGTH_FILE))//')') KRESP=-63 @@ -701,21 +703,21 @@ IF (KWORK(1)/=TPFIELD%NGRID) THEN ELSE IERRLEVEL = NVERB_ERROR END IF - CALL PRINT_MSG(IERRLEVEL,'IO','IO_READ_CHECK_FIELD_LFI','expected GRID value ('//TRIM(ADJUSTL(YVAL_MEM))// & + CALL PRINT_MSG(IERRLEVEL,'IO','IO_Field_read_check_lfi','expected GRID value ('//TRIM(ADJUSTL(YVAL_MEM))// & ') is different than found in file ('//TRIM(ADJUSTL(YVAL_FILE))//') for variable '//TRIM(TPFIELD%CMNHNAME)) IF(.NOT.GOLDMNH) THEN !Do not modify probably incorrect grid number (to prevent problems later with other correct files) TPFIELD%NGRID = KWORK(1) KRESP = -111 !Used later to broadcast modified metadata END IF ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_LFI','expected GRID found in file for field ' & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_check_lfi','expected GRID found in file for field ' & //TRIM(TPFIELD%CMNHNAME)) ENDIF ! YCOMMENT='' SELECT CASE (ICOMLEN) CASE(:-1) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_CHECK_FIELD_LFI',TRIM(TPFILE%CNAME)//': comment length is negative for ' & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_check_lfi',TRIM(TPFILE%CNAME)//': comment length is negative for ' & //TRIM(TPFIELD%CMNHNAME)) KRESP=-58 OGOOD = .FALSE. @@ -728,23 +730,23 @@ CASE(1:JPXKRK) YCOMMENT(J:J)=CHAR(ICOMMENT(J)) ENDDO CASE(JPXKRK+1:) - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_LFI',TRIM(TPFILE%CNAME)//': comment is too long in file for ' & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_read_check_lfi',TRIM(TPFILE%CNAME)//': comment is too long in file for ' & //TRIM(TPFIELD%CMNHNAME)) KRESP=-56 RETURN END SELECT ! IF (TRIM(YCOMMENT)/=TRIM(TPFIELD%CCOMMENT)) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_READ_CHECK_FIELD_LFI','expected COMMENT ('//TRIM(TPFIELD%CCOMMENT)// & + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_read_check_lfi','expected COMMENT ('//TRIM(TPFIELD%CCOMMENT)// & ') is different than found ('//TRIM(YCOMMENT)//') in file for field '//TRIM(TPFIELD%CMNHNAME)) TPFIELD%CCOMMENT=TRIM(YCOMMENT) KRESP = -111 !Used later to broadcast modified metadata ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_LFI','expected COMMENT found in file for field ' & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_check_lfi','expected COMMENT found in file for field ' & //TRIM(TPFIELD%CMNHNAME)) END IF ! -END SUBROUTINE IO_READ_CHECK_FIELD_LFI +END SUBROUTINE IO_Field_read_check_lfi ! ! FUNCTION TRANSFER_I8_R(KFIELDIN) RESULT(PFIELDOUT) diff --git a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 index 9fb6870ad..2b760b114 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 @@ -3,21 +3,22 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -! Modifications: -! P. Wautelet : may 2016 : use NetCDF Fortran module -! J.Escobar : 14/12/2017 : Correction for MNH_INT=8 -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet : 13/12/2018 : split of mode_netcdf into multiple modules/files -! Philippe Wautelet: 10/01/2019: replace handle_err by io_handle_err_nc4 for better netCDF error messages +! Modifications: +! P. Wautelet may 2016 : use NetCDF Fortran module +! J. Escobar 14/12/2017: correction for MNH_INT=8 +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 13/12/2018: split of mode_netcdf into multiple modules/files +! P. Wautelet 10/01/2019: replace handle_err by IO_Err_handle_nc4 for better netCDF error messages +! P. Wautelet 05/03/2019: rename IO subroutines and modules !----------------------------------------------------------------- #if defined(MNH_IOCDF4) module mode_io_read_nc4 -use modd_io_ll, only: tfiledata +use modd_io, only: tfiledata use modd_netcdf, only: IDCDF_KIND use mode_field, only: tfielddata -use mode_io_tools_nc4, only: cleanmnhname, io_handle_err_nc4 +use mode_io_tools_nc4, only: IO_Mnhname_clean, IO_Err_handle_nc4 use mode_msg use NETCDF, only: NF90_CHAR, NF90_DOUBLE, NF90_FLOAT, NF90_INT, NF90_INT1, NF90_INT64, & @@ -29,23 +30,23 @@ implicit none private -public :: io_read_field_nc4 +public :: IO_Field_read_nc4 -INTERFACE IO_READ_FIELD_NC4 - MODULE PROCEDURE IO_READ_FIELD_NC4_X0,IO_READ_FIELD_NC4_X1, & - IO_READ_FIELD_NC4_X2,IO_READ_FIELD_NC4_X3, & - IO_READ_FIELD_NC4_X4,IO_READ_FIELD_NC4_X5, & - IO_READ_FIELD_NC4_X6, & - IO_READ_FIELD_NC4_N0,IO_READ_FIELD_NC4_N1, & - IO_READ_FIELD_NC4_N2, & - IO_READ_FIELD_NC4_L0,IO_READ_FIELD_NC4_L1, & - IO_READ_FIELD_NC4_C0, & - IO_READ_FIELD_NC4_T0 -END INTERFACE IO_READ_FIELD_NC4 +INTERFACE IO_Field_read_nc4 + MODULE PROCEDURE IO_Field_read_nc4_X0,IO_Field_read_nc4_X1, & + IO_Field_read_nc4_X2,IO_Field_read_nc4_X3, & + IO_Field_read_nc4_X4,IO_Field_read_nc4_X5, & + IO_Field_read_nc4_X6, & + IO_Field_read_nc4_N0,IO_Field_read_nc4_N1, & + IO_Field_read_nc4_N2, & + IO_Field_read_nc4_L0,IO_Field_read_nc4_L1, & + IO_Field_read_nc4_C0, & + IO_Field_read_nc4_T0 +END INTERFACE IO_Field_read_nc4 contains -SUBROUTINE IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,KVARID,KRESP,HCALENDAR) +SUBROUTINE IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,KVARID,KRESP,HCALENDAR) ! USE MODD_PARAMETERS, ONLY: NGRIDUNKNOWN ! @@ -64,7 +65,7 @@ CHARACTER(LEN=12) :: YVAL_FILE, YVAL_MEM CHARACTER(LEN=:),ALLOCATABLE :: YVALUE LOGICAL :: GOLDMNH !if old version of MesoNH (<5.4, old files without complete and correct metadata) ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)//': called for field '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)//': called for field '//TRIM(TPFIELD%CMNHNAME)) ! KRESP = 0 INCID = TPFILE%NNCID @@ -85,7 +86,7 @@ IF (STATUS == NF90_NOERR) THEN IF (IGRID/=TPFIELD%NGRID) THEN WRITE(YVAL_FILE,'(I12)') IGRID WRITE(YVAL_MEM, '(I12)') TPFIELD%NGRID - CALL PRINT_MSG(IERRLEVEL,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(IERRLEVEL,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected GRID value ('//TRIM(ADJUSTL(YVAL_MEM))// & ') is different than found in file ('//TRIM(ADJUSTL(YVAL_FILE))//') for variable '//TRIM(TPFIELD%CMNHNAME)) IF (.NOT.GOLDMNH) THEN !Do not modify probably incorrect grid number (to prevent problems later with other correct files) @@ -93,15 +94,15 @@ IF (STATUS == NF90_NOERR) THEN KRESP = -111 !Used later to broadcast modified metadata END IF ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected GRID found in file for field '//TRIM(TPFIELD%CMNHNAME)) ENDIF ELSE !no GRID IF (TPFIELD%NGRID==0 .OR. TPFIELD%NGRID==NGRIDUNKNOWN) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': no GRID (as expected) in file for field '//TRIM(TPFIELD%CMNHNAME)) ELSE - CALL PRINT_MSG(IERRLEVEL,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(IERRLEVEL,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected GRID but not found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF ENDIF @@ -114,26 +115,26 @@ IF (STATUS == NF90_NOERR) THEN STATUS = NF90_GET_ATT(INCID, KVARID, 'comment', YVALUE) IF (LEN_TRIM(TPFIELD%CCOMMENT)==0 .AND. LEN_TRIM(YVALUE)>0) THEN !Expected comment is empty, read comment is not - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': COMMENT found (unexpected) in file for field '//TRIM(TPFIELD%CMNHNAME)) TPFIELD%CCOMMENT=TRIM(YVALUE) ELSE IF (TRIM(YVALUE)/=TRIM(TPFIELD%CCOMMENT)) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected COMMENT ('//TRIM(TPFIELD%CCOMMENT)// & ') is different than found ('//TRIM(YVALUE)//') in file for field '//TRIM(TPFIELD%CMNHNAME)) TPFIELD%CCOMMENT=TRIM(YVALUE) KRESP = -111 !Used later to broadcast modified metadata ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected COMMENT found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF DEALLOCATE(YVALUE) ELSE !no COMMENT IF (LEN_TRIM(TPFIELD%CCOMMENT)==0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': no COMMENT (as expected) in file for field '//TRIM(TPFIELD%CMNHNAME)) ELSE - CALL PRINT_MSG(NVERB_INFO,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected COMMENT but not found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF END IF @@ -145,22 +146,22 @@ IF (STATUS == NF90_NOERR) THEN ALLOCATE(CHARACTER(LEN=ILEN) :: YVALUE) STATUS = NF90_GET_ATT(INCID, KVARID, 'standard_name', YVALUE) IF (TRIM(YVALUE)/=TRIM(TPFIELD%CSTDNAME)) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected STDNAME ('//TRIM(TPFIELD%CSTDNAME)// & ') is different than found ('//TRIM(YVALUE)//') in file for field '//TRIM(TPFIELD%CMNHNAME)) TPFIELD%CSTDNAME=TRIM(YVALUE) KRESP = -111 !Used later to broadcast modified metadata ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected STDNAME found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF DEALLOCATE(YVALUE) ELSE !no STDNAME IF (LEN_TRIM(TPFIELD%CSTDNAME)==0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': no STDNAME (as expected) in file for field '//TRIM(TPFIELD%CMNHNAME)) ELSE - CALL PRINT_MSG(NVERB_INFO,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected STDNAME but not found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF END IF @@ -172,22 +173,22 @@ IF (STATUS == NF90_NOERR) THEN ALLOCATE(CHARACTER(LEN=ILEN) :: YVALUE) STATUS = NF90_GET_ATT(INCID, KVARID, 'long_name', YVALUE) IF (TRIM(YVALUE)/=TRIM(TPFIELD%CLONGNAME)) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected LONGNAME ('//TRIM(TPFIELD%CLONGNAME)// & ') is different than found ('//TRIM(YVALUE)//') in file for field '//TRIM(TPFIELD%CMNHNAME)) TPFIELD%CLONGNAME=TRIM(YVALUE) KRESP = -111 !Used later to broadcast modified metadata ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected LONGNAME found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF DEALLOCATE(YVALUE) ELSE !no LONGNAME IF (LEN_TRIM(TPFIELD%CLONGNAME)==0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': no LONGNAME (as expected) in file for field '//TRIM(TPFIELD%CMNHNAME)) ELSE - CALL PRINT_MSG(NVERB_INFO,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected LONGNAME but not found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF END IF @@ -200,30 +201,30 @@ IF (STATUS == NF90_NOERR) THEN STATUS = NF90_GET_ATT(INCID, KVARID, 'units', YVALUE) IF (TRIM(YVALUE)/=TRIM(TPFIELD%CUNITS)) THEN IF(.NOT.PRESENT(HCALENDAR)) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected UNITS ('//TRIM(TPFIELD%CUNITS)// & ') is different than found ('//TRIM(YVALUE)//') in file for field '//TRIM(TPFIELD%CMNHNAME)) KRESP = -111 !Used later to broadcast modified metadata ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': UNITS found in file for field '//TRIM(TPFIELD%CMNHNAME)//' (will be analysed later)') END IF TPFIELD%CUNITS=TRIM(YVALUE) ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected UNITS found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF DEALLOCATE(YVALUE) ELSE !no UNITS IF (LEN_TRIM(TPFIELD%CUNITS)==0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': no UNITS (as expected) in file for field '//TRIM(TPFIELD%CMNHNAME)) ELSE IF(.NOT.PRESENT(HCALENDAR)) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected UNITS but not found in file for field '//TRIM(TPFIELD%CMNHNAME)) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected UNITS but not found in file for field '//TRIM(TPFIELD%CMNHNAME)) KRESP = -3 END IF @@ -238,24 +239,24 @@ IF (STATUS == NF90_NOERR) THEN ALLOCATE(CHARACTER(LEN=ILEN) :: YVALUE) STATUS = NF90_GET_ATT(INCID, KVARID, 'calendar', YVALUE) IF (TRIM(YVALUE)/=TRIM(HCALENDAR)) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected CALENDAR ('//TRIM(HCALENDAR)// & ') is different than found ('//TRIM(YVALUE)//') in file for field '//TRIM(TPFIELD%CMNHNAME)) ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected CALENDAR found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF DEALLOCATE(YVALUE) ELSE !no CALENDAR - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected CALENDAR but not found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF ENDIF ! -END SUBROUTINE IO_READ_CHECK_FIELD_ATTR_NC4 +END SUBROUTINE IO_Field_attr_read_check_nc4 -SUBROUTINE IO_READ_FIELD_NC4_X0(TPFILE, TPFIELD, PFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_X0(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL, INTENT(OUT) :: PFIELD @@ -269,22 +270,22 @@ INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions CHARACTER(LEN=30) :: YVARNAME INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -293,13 +294,13 @@ IF (IDIMS == 0 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, PFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size or type)') IRESP = -3 END IF @@ -307,10 +308,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_X0 +END SUBROUTINE IO_Field_read_nc4_X0 -SUBROUTINE IO_READ_FIELD_NC4_X1(TPFILE, TPFIELD, PFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_X1(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:),INTENT(OUT) :: PFIELD @@ -326,22 +327,22 @@ CHARACTER(LEN=30) :: YVARNAME INTEGER(KIND=IDCDF_KIND) :: IDIMLEN INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X1','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X1','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X1','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X1','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -349,24 +350,24 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 IF (IDIMS == 1 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X1','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X1','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF (IDIMLEN == SIZE(PFIELD)) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, PFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X1','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X1','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -374,10 +375,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_X1 +END SUBROUTINE IO_Field_read_nc4_X1 -SUBROUTINE IO_READ_FIELD_NC4_X2(TPFILE, TPFIELD, PFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_X2(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:,:),INTENT(OUT) :: PFIELD @@ -393,22 +394,22 @@ CHARACTER(LEN=30) :: YVARNAME INTEGER(KIND=IDCDF_KIND),DIMENSION(3) :: IDIMLEN INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X2','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X2','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X2','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X2','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -416,39 +417,39 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 !Treat special case of a degenerated 3D array (3rd dimension size is 1) IF (IDIMS==3) THEN STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(3), LEN=IDIMLEN(3)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF (IDIMLEN(3)==1) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_READ_FIELD_NC4_X2',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_read_nc4_X2',TRIM(TPFILE%CNAME)// & ': reading 3D array with degenerated third dimension in 2D array for '//TRIM(YVARNAME)) IDIMS = 2 ELSE - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_READ_FIELD_NC4_X2',TRIM(TPFILE%CNAME)//': wrong number of dimensions for '//TRIM(YVARNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Field_read_nc4_X2',TRIM(TPFILE%CNAME)//': wrong number of dimensions for '//TRIM(YVARNAME)) END IF END IF IF (IDIMS == 2 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN(1)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(2), LEN=IDIMLEN(2)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF (IDIMLEN(1) == SIZE(PFIELD,1) .AND. IDIMLEN(2) == SIZE(PFIELD,2)) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, PFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X2','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X2','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -456,10 +457,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_X2 +END SUBROUTINE IO_Field_read_nc4_X2 -SUBROUTINE IO_READ_FIELD_NC4_X3(TPFILE, TPFIELD, PFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_X3(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:,:,:),INTENT(OUT) :: PFIELD @@ -475,22 +476,22 @@ INTEGER(KIND=IDCDF_KIND),DIMENSION(3) :: IDIMLEN CHARACTER(LEN=30) :: YVARNAME INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X3','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X3','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X3','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X3','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -498,28 +499,28 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 IF (IDIMS == 3 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN(1)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(2), LEN=IDIMLEN(2)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(3), LEN=IDIMLEN(3)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF (IDIMLEN(1) == SIZE(PFIELD,1) .AND. IDIMLEN(2) == SIZE(PFIELD,2) .AND. IDIMLEN(3) == SIZE(PFIELD,3)) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, PFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X3','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X3','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -527,10 +528,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_X3 +END SUBROUTINE IO_Field_read_nc4_X3 -SUBROUTINE IO_READ_FIELD_NC4_X4(TPFILE, TPFIELD, PFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_X4(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:,:,:,:),INTENT(OUT) :: PFIELD @@ -546,22 +547,22 @@ INTEGER(KIND=IDCDF_KIND),DIMENSION(4) :: IDIMLEN CHARACTER(LEN=30) :: YVARNAME INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X4','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X4','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X4','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X4','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -569,31 +570,31 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 IF (IDIMS == 4 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN(1)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X4','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X4','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(2), LEN=IDIMLEN(2)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X4','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X4','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(3), LEN=IDIMLEN(3)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X4','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X4','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(4), LEN=IDIMLEN(4)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X4','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X4','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF ( IDIMLEN(1) == SIZE(PFIELD,1) .AND. IDIMLEN(2) == SIZE(PFIELD,2) .AND. & IDIMLEN(3) == SIZE(PFIELD,3) .AND. IDIMLEN(4) == SIZE(PFIELD,4)) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, PFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X4','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X4','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X4',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X4',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X4',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X4',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -601,10 +602,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_X4 +END SUBROUTINE IO_Field_read_nc4_X4 -SUBROUTINE IO_READ_FIELD_NC4_X5(TPFILE, TPFIELD, PFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_X5(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:,:,:,:,:),INTENT(OUT) :: PFIELD @@ -620,22 +621,22 @@ INTEGER(KIND=IDCDF_KIND),DIMENSION(5) :: IDIMLEN CHARACTER(LEN=30) :: YVARNAME INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X5','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X5','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X5','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X5','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -643,15 +644,15 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 IF (IDIMS == 5 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN(1)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(2), LEN=IDIMLEN(2)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(3), LEN=IDIMLEN(3)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(4), LEN=IDIMLEN(4)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(5), LEN=IDIMLEN(5)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF ( IDIMLEN(1) == SIZE(PFIELD,1) .AND. IDIMLEN(2) == SIZE(PFIELD,2) .AND. & IDIMLEN(3) == SIZE(PFIELD,3) .AND. IDIMLEN(4) == SIZE(PFIELD,4) .AND. & @@ -659,18 +660,18 @@ IF (IDIMS == 5 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, PFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X5','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X5','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X5',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X5',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X5',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X5',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -678,10 +679,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_X5 +END SUBROUTINE IO_Field_read_nc4_X5 -SUBROUTINE IO_READ_FIELD_NC4_X6(TPFILE, TPFIELD, PFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_X6(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:,:,:,:,:,:),INTENT(OUT) :: PFIELD @@ -697,22 +698,22 @@ INTEGER(KIND=IDCDF_KIND),DIMENSION(6) :: IDIMLEN CHARACTER(LEN=30) :: YVARNAME INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -720,17 +721,17 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 IF (IDIMS == 6 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN(1)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(2), LEN=IDIMLEN(2)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(3), LEN=IDIMLEN(3)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(4), LEN=IDIMLEN(4)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(5), LEN=IDIMLEN(5)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(6), LEN=IDIMLEN(6)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF ( IDIMLEN(1) == SIZE(PFIELD,1) .AND. IDIMLEN(2) == SIZE(PFIELD,2) .AND. & IDIMLEN(3) == SIZE(PFIELD,3) .AND. IDIMLEN(4) == SIZE(PFIELD,4) .AND. & @@ -738,18 +739,18 @@ IF (IDIMS == 6 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, PFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X6',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X6',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X6',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X6',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -757,10 +758,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_X6 +END SUBROUTINE IO_Field_read_nc4_X6 -SUBROUTINE IO_READ_FIELD_NC4_N0(TPFILE, TPFIELD, KFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_N0(TPFILE, TPFIELD, KFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD INTEGER, INTENT(OUT) :: KFIELD @@ -774,22 +775,22 @@ INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions CHARACTER(LEN=30) :: YVARNAME INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -799,13 +800,13 @@ IF (IDIMS == 0 .AND. (ITYPE == NF90_INT .OR. ITYPE == NF90_INT64) ) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, KFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_N0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_N0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size or type)') IRESP = -3 END IF @@ -813,10 +814,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_N0 +END SUBROUTINE IO_Field_read_nc4_N0 -SUBROUTINE IO_READ_FIELD_NC4_N1(TPFILE, TPFIELD, KFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_N1(TPFILE, TPFIELD, KFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD INTEGER, DIMENSION(:), INTENT(OUT) :: KFIELD @@ -832,22 +833,22 @@ CHARACTER(LEN=30) :: YVARNAME INTEGER(KIND=IDCDF_KIND) :: IDIMLEN INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N1','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N1','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N1','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N1','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -856,24 +857,24 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 IF (IDIMS == 1 .AND. (ITYPE == NF90_INT .OR. ITYPE == NF90_INT64 .OR. ITYPE == NF90_INT1) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N1','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N1','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF (IDIMLEN == SIZE(KFIELD)) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, KFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N1','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N1','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_N1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_N1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_N1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_N1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -881,10 +882,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_N1 +END SUBROUTINE IO_Field_read_nc4_N1 -SUBROUTINE IO_READ_FIELD_NC4_N2(TPFILE, TPFIELD, KFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_N2(TPFILE, TPFIELD, KFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD INTEGER, DIMENSION(:,:), INTENT(OUT) :: KFIELD @@ -900,22 +901,22 @@ CHARACTER(LEN=30) :: YVARNAME INTEGER(KIND=IDCDF_KIND),DIMENSION(3) :: IDIMLEN INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N2','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N2','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N2','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N2','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -923,13 +924,13 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 !Treat special case of a degenerated 3D array (3rd dimension size is 1) IF (IDIMS==3) THEN STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(3), LEN=IDIMLEN(3)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF (IDIMLEN(3)==1) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_READ_FIELD_NC4_N2',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_read_nc4_N2',TRIM(TPFILE%CNAME)// & ': reading 3D array with degenerated third dimension in 2D array for '//TRIM(YVARNAME)) IDIMS = 2 ELSE - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_READ_FIELD_NC4_N2',TRIM(TPFILE%CNAME)//': wrong number of dimensions for '//TRIM(YVARNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Field_read_nc4_N2',TRIM(TPFILE%CNAME)//': wrong number of dimensions for '//TRIM(YVARNAME)) END IF END IF @@ -937,26 +938,26 @@ END IF IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. (ITYPE == NF90_INT .OR. ITYPE == NF90_INT64 .OR. ITYPE == NF90_INT1) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN(1)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(2), LEN=IDIMLEN(2)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF (IDIMLEN(1) == SIZE(KFIELD,1) .AND. IDIMLEN(2) == SIZE(KFIELD,2)) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, KFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N2','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N2','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_N2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_N2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_N2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_N2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -964,9 +965,9 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_N2 +END SUBROUTINE IO_Field_read_nc4_N2 -SUBROUTINE IO_READ_FIELD_NC4_L0(TPFILE, TPFIELD, OFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_L0(TPFILE, TPFIELD, OFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD LOGICAL, INTENT(OUT) :: OFIELD @@ -981,22 +982,22 @@ CHARACTER(LEN=30) :: YVARNAME INTEGER :: IRESP INTEGER :: IFIELD -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_L0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_L0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_L0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_L0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -1007,7 +1008,7 @@ IF (IDIMS == 0 .AND. (ITYPE == NF90_INT1 .OR. ITYPE == NF90_INT .OR. ITYPE == NF ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, IFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_L0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_L0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF @@ -1016,16 +1017,16 @@ IF (IDIMS == 0 .AND. (ITYPE == NF90_INT1 .OR. ITYPE == NF90_INT .OR. ITYPE == NF ELSE IF (IFIELD==1) THEN OFIELD = .TRUE. ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_LFI_L0',TRIM(TPFILE%CNAME)//': invalid value in file for ' & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_L0',TRIM(TPFILE%CNAME)//': invalid value in file for ' & //TRIM(TPFIELD%CMNHNAME)) OFIELD = .TRUE. IRESP = -112 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_L0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_L0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size or type)') IRESP = -3 END IF @@ -1033,10 +1034,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_L0 +END SUBROUTINE IO_Field_read_nc4_L0 -SUBROUTINE IO_READ_FIELD_NC4_L1(TPFILE, TPFIELD, OFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_L1(TPFILE, TPFIELD, OFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD LOGICAL,DIMENSION(:),INTENT(OUT) :: OFIELD @@ -1054,22 +1055,22 @@ INTEGER :: IRESP INTEGER :: JI INTEGER,DIMENSION(SIZE(OFIELD)) :: IFIELD -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_L1','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_L1','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_L1','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_L1','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -1079,13 +1080,13 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 IF (IDIMS == 1 .AND. (ITYPE == NF90_INT1 .OR. ITYPE == NF90_INT .OR. ITYPE == NF90_INT64) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_L1','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_L1','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF (IDIMLEN == SIZE(OFIELD)) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, IFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_L1','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_L1','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF @@ -1100,19 +1101,19 @@ IF (IDIMS == 1 .AND. (ITYPE == NF90_INT1 .OR. ITYPE == NF90_INT .OR. ITYPE == NF END IF END DO IF (IRESP==-112) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_LFI_L1',TRIM(TPFILE%CNAME)//': invalid value(s) in file for ' & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_L1',TRIM(TPFILE%CNAME)//': invalid value(s) in file for ' & //TRIM(TPFIELD%CMNHNAME)) END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_L1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_L1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_L1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_L1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -1120,10 +1121,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_L1 +END SUBROUTINE IO_Field_read_nc4_L1 -SUBROUTINE IO_READ_FIELD_NC4_C0(TPFILE, TPFIELD, HFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_C0(TPFILE, TPFIELD, HFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD CHARACTER(LEN=*), INTENT(OUT) :: HFIELD @@ -1140,44 +1141,44 @@ CHARACTER(LEN=:),ALLOCATABLE :: YSTR INTEGER(KIND=IDCDF_KIND) :: IDIMLEN INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_C0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_C0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_C0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_C0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) IF (IDIMS == 1 .AND. (ITYPE == NF90_CHAR) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_C0','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_C0','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) ! ALLOCATE(CHARACTER(LEN=IDIMLEN)::YSTR) ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, YSTR) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_C0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_C0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF IF (LEN_TRIM(YSTR) > LEN(HFIELD)) & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_C0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' truncated') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_C0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' truncated') HFIELD = TRIM(YSTR) DEALLOCATE(YSTR) ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_C0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_C0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size or type)') IRESP = -3 END IF @@ -1185,9 +1186,9 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_C0 +END SUBROUTINE IO_Field_read_nc4_C0 -SUBROUTINE IO_READ_FIELD_NC4_T0(TPFILE, TPFIELD, TPDATA, KRESP) +SUBROUTINE IO_Field_read_nc4_T0(TPFILE, TPFIELD, TPDATA, KRESP) ! USE MODD_TYPE_DATE ! @@ -1208,32 +1209,32 @@ CHARACTER(LEN=:),ALLOCATABLE :: YSTR INTEGER(KIND=IDCDF_KIND) :: IDIMLEN INTEGER :: IDX,IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_T0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_T0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_T0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_T0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) IF (IDIMS == 0 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Read time STATUS = NF90_GET_VAR(INCID, IVARID, TPDATA%TIME) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_T0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_T0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP,HCALENDAR='standard') + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP,HCALENDAR='standard') ! Extract date from UNITS IDX = INDEX(TPFIELD%CUNITS,'since ') READ(TPFIELD%CUNITS(IDX+6 :IDX+9), '( I4.4 )') TPDATA%TDATE%YEAR @@ -1241,14 +1242,14 @@ IF (IDIMS == 0 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN READ(TPFIELD%CUNITS(IDX+14:IDX+15),'( I2.2 )') TPDATA%TDATE%DAY ! Simple check (should catch most errors) IF ( TPDATA%TDATE%DAY<1 .OR. TPDATA%TDATE%DAY>31 .OR. TPDATA%TDATE%MONTH<1 .OR. TPDATA%TDATE%MONTH>12 ) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' read date is invalid') IRESP = -3 END IF ! Correct date and time (necessary for example if time is bigger than 86400 s) CALL DATETIME_CORRECTDATE(TPDATA) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size or type)') IRESP = -3 END IF @@ -1256,7 +1257,7 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_T0 +END SUBROUTINE IO_Field_read_nc4_T0 end module mode_io_read_nc4 @@ -1264,10 +1265,10 @@ end module mode_io_read_nc4 ! ! External dummy subroutines ! -subroutine io_read_field_nc4(a, b, c, d, e, f, g) +subroutine IO_Field_read_nc4(a, b, c, d, e, f, g) use mode_msg integer :: a, b, c, d, e, f, g -CALL PRINT_MSG(NVERB_ERROR,'IO','io_read_field_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_read_field_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Field_read_nc4 ! #endif diff --git a/src/LIB/SURCOUCHE/src/mode_io_tools.f90 b/src/LIB/SURCOUCHE/src/mode_io_tools.f90 index 9e8dd1fc8..8b666ab46 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_tools.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_tools.f90 @@ -1,69 +1,70 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -! Modifications: -! P. Wautelet : 13/12/2018 : extracted from mode_io.f90 -! P. Wautelet : 14/12/2018 : added io_construct_filename +! Modifications: +! P. Wautelet 13/12/2018: extracted from mode_io.f90 +! P. Wautelet 14/12/2018: added IO_Filename_construct +! P. Wautelet 05/03/2019: rename IO subroutines and modules !----------------------------------------------------------------- module mode_io_tools -use modd_io_ll, only: tfiledata +use modd_io, only: tfiledata implicit none private -public :: io_file, io_rank, io_construct_filename +public :: IO_Level2filenumber_get, IO_Rank_master_get, IO_Filename_construct contains - FUNCTION io_file(k,nb_proc_io) - ! - ! return the file number where to write the K level of data - ! - IMPLICIT NONE - INTEGER(kind=MNH_MPI_RANK_KIND) :: k,nb_proc_io - INTEGER(kind=MNH_MPI_RANK_KIND) :: io_file +FUNCTION IO_Level2filenumber_get(k,nb_proc_io) + ! + ! return the file number where to write the K level of data + ! + IMPLICIT NONE + INTEGER(kind=MNH_MPI_RANK_KIND) :: k,nb_proc_io + INTEGER(kind=MNH_MPI_RANK_KIND) :: IO_Level2filenumber_get - io_file = MOD ((k-1) , nb_proc_io ) + IO_Level2filenumber_get = MOD ((k-1) , nb_proc_io ) - END FUNCTION io_file +END FUNCTION IO_Level2filenumber_get - FUNCTION IO_RANK(IFILE,nb_proc,nb_proc_io,offset_rank) - ! - ! return the proc number which must write the 'IFILE' file - ! - IMPLICIT NONE - INTEGER(kind=MNH_MPI_RANK_KIND) :: IFILE,nb_proc,nb_proc_io - INTEGER(kind=MNH_MPI_RANK_KIND),OPTIONAL :: offset_rank +FUNCTION IO_Rank_master_get(IFILE,nb_proc,nb_proc_io,offset_rank) + ! + ! return the proc number which must write the 'IFILE' file + ! + IMPLICIT NONE + INTEGER(kind=MNH_MPI_RANK_KIND) :: IFILE,nb_proc,nb_proc_io + INTEGER(kind=MNH_MPI_RANK_KIND),OPTIONAL :: offset_rank - INTEGER(kind=MNH_MPI_RANK_KIND) :: IO_RANK + INTEGER(kind=MNH_MPI_RANK_KIND) :: IO_Rank_master_get - INTEGER(kind=MNH_MPI_RANK_KIND) :: ipas,irest + INTEGER(kind=MNH_MPI_RANK_KIND) :: ipas,irest - ipas = nb_proc / nb_proc_io - irest = MOD ( nb_proc , nb_proc_io ) + ipas = nb_proc / nb_proc_io + irest = MOD ( nb_proc , nb_proc_io ) - IF (ipas /= 0 ) THEN - IO_RANK=ipas * IFILE + MIN(IFILE , irest ) - ELSE - IO_RANK=MOD(IFILE , nb_proc ) - ENDIF + IF (ipas /= 0 ) THEN + IO_Rank_master_get=ipas * IFILE + MIN(IFILE , irest ) + ELSE + IO_Rank_master_get=MOD(IFILE , nb_proc ) + ENDIF - ! - ! optional rank to shift for read test - ! - IF (PRESENT(offset_rank)) THEN - IF ( offset_rank .GT.0 ) IO_RANK=MOD(IO_RANK+offset_rank,nb_proc) - IF ( offset_rank .LT.0 ) IO_RANK=MOD(nb_proc-IO_RANK+offset_rank,nb_proc) - ENDIF + ! + ! optional rank to shift for read test + ! + IF (PRESENT(offset_rank)) THEN + IF ( offset_rank .GT.0 ) IO_Rank_master_get=MOD(IO_Rank_master_get+offset_rank,nb_proc) + IF ( offset_rank .LT.0 ) IO_Rank_master_get=MOD(nb_proc-IO_Rank_master_get+offset_rank,nb_proc) + ENDIF - END FUNCTION IO_RANK +END FUNCTION IO_Rank_master_get -subroutine io_construct_filename(tpfile,hfilem) +subroutine IO_Filename_construct(tpfile,hfilem) type(tfiledata), intent(inout) :: tpfile character(len=:), allocatable, intent(out) :: hfilem @@ -77,8 +78,7 @@ subroutine io_construct_filename(tpfile,hfilem) hfilem = trim(tpfile%cname) end if -end subroutine io_construct_filename - +end subroutine IO_Filename_construct end module mode_io_tools @@ -86,7 +86,7 @@ end module mode_io_tools module mode_io_tools_mnhversion -use modd_io_ll, only: tfiledata +use modd_io, only: tfiledata use mode_msg @@ -94,109 +94,107 @@ implicit none private -public :: io_get_mnhversion, io_set_mnhversion +public :: IO_Mnhversion_get, IO_Mnhversion_set contains - subroutine io_get_mnhversion(tpfile) - !Compare MNHVERSION of file with current version and store it in file metadata - use modd_conf, only: nmnhversion - use modd_io_ll, only: tfiledata - use mode_field, only: tfielddata,typeint - use mode_fmread, only: io_read_field - - type(tfiledata), intent(inout) :: tpfile - - character(len=12) :: ymnhversion_file,ymnhversion_curr - integer :: imasdev,ibugfix - integer :: iresp - integer,dimension(3) :: imnhversion - type(tfielddata) :: tzfield - - call print_msg(NVERB_DEBUG,'IO','io_get_mnhversion','called for '//trim(tpfile%cname)) - - if ( trim(tpfile%cmode) /= 'READ' ) & - call print_msg(NVERB_FATAL,'IO','io_get_mnhversion',trim(tpfile%cname)// 'not opened in read mode') - - imnhversion(:) = 0 - !use tzfield because tfieldlist could be not initialised - tzfield%cmnhname = 'MNHVERSION' - tzfield%cstdname = '' - tzfield%clongname = 'MesoNH version' - tzfield%cunits = '' - tzfield%cdir = '--' - tzfield%ccomment = '' - tzfield%ngrid = 0 - tzfield%ntype = TYPEINT - tzfield%ndims = 1 - tzfield%ltimedep = .false. - call io_read_field(tpfile,tzfield,imnhversion,iresp) +subroutine IO_Mnhversion_get(tpfile) +!Compare MNHVERSION of file with current version and store it in file metadata + use modd_conf, only: nmnhversion + use mode_field, only: tfielddata,typeint + use mode_io_field_read, only: IO_Field_read + + type(tfiledata), intent(inout) :: tpfile + + character(len=12) :: ymnhversion_file,ymnhversion_curr + integer :: imasdev,ibugfix + integer :: iresp + integer,dimension(3) :: imnhversion + type(tfielddata) :: tzfield + + call print_msg(NVERB_DEBUG,'IO','IO_Mnhversion_get','called for '//trim(tpfile%cname)) + + if ( trim(tpfile%cmode) /= 'READ' ) & + call print_msg(NVERB_FATAL,'IO','IO_Mnhversion_get',trim(tpfile%cname)// 'not opened in read mode') + + imnhversion(:) = 0 + !use tzfield because tfieldlist could be not initialised + tzfield%cmnhname = 'MNHVERSION' + tzfield%cstdname = '' + tzfield%clongname = 'MesoNH version' + tzfield%cunits = '' + tzfield%cdir = '--' + tzfield%ccomment = '' + tzfield%ngrid = 0 + tzfield%ntype = TYPEINT + tzfield%ndims = 1 + tzfield%ltimedep = .false. + call IO_Field_read(tpfile,tzfield,imnhversion,iresp) + if (iresp/=0) then + tzfield%cmnhname = 'MASDEV' + tzfield%clongname = 'MesoNH version (without bugfix)' + tzfield%ndims = 0 + call IO_Field_read(tpfile,tzfield,imasdev,iresp) if (iresp/=0) then - tzfield%cmnhname = 'MASDEV' - tzfield%clongname = 'MesoNH version (without bugfix)' - tzfield%ndims = 0 - call io_read_field(tpfile,tzfield,imasdev,iresp) - if (iresp/=0) then - call print_msg(NVERB_WARNING,'IO','io_get_mnhversion','unknown MASDEV version for '//trim(tpfile%cname)) - else - if (imasdev<100) then - imnhversion(1)=imasdev/10 - imnhversion(2)=mod(imasdev,10) - else !for example for mnh 4.10 - imnhversion(1)=imasdev/100 - imnhversion(2)=mod(imasdev,100) - end if - end if - ! - tzfield%cmnhname = 'BUGFIX' - tzfield%clongname = 'MesoNH bugfix number' - call io_read_field(tpfile,tzfield,ibugfix,iresp) - if (iresp/=0) then - call print_msg(NVERB_WARNING,'IO','io_get_mnhversion','unknown BUGFIX version for '//trim(tpfile%cname)) - else - imnhversion(3)=ibugfix + call print_msg(NVERB_WARNING,'IO','IO_Mnhversion_get','unknown MASDEV version for '//trim(tpfile%cname)) + else + if (imasdev<100) then + imnhversion(1)=imasdev/10 + imnhversion(2)=mod(imasdev,10) + else !for example for mnh 4.10 + imnhversion(1)=imasdev/100 + imnhversion(2)=mod(imasdev,100) end if end if ! - write(ymnhversion_file,"( I0,'.',I0,'.',I0 )" ) imnhversion(1),imnhversion(2),imnhversion(3) - write(ymnhversion_curr,"( I0,'.',I0,'.',I0 )" ) nmnhversion(1),nmnhversion(2),nmnhversion(3) + tzfield%cmnhname = 'BUGFIX' + tzfield%clongname = 'MesoNH bugfix number' + call IO_Field_read(tpfile,tzfield,ibugfix,iresp) + if (iresp/=0) then + call print_msg(NVERB_WARNING,'IO','IO_Mnhversion_get','unknown BUGFIX version for '//trim(tpfile%cname)) + else + imnhversion(3)=ibugfix + end if + end if + ! + write(ymnhversion_file,"( I0,'.',I0,'.',I0 )" ) imnhversion(1),imnhversion(2),imnhversion(3) + write(ymnhversion_curr,"( I0,'.',I0,'.',I0 )" ) nmnhversion(1),nmnhversion(2),nmnhversion(3) + ! + if ( imnhversion(1)==0 .and. imnhversion(2)==0 .and. imnhversion(3)==0 ) then + call print_msg(NVERB_WARNING,'IO','IO_Mnhversion_get','file '//trim(tpfile%cname)//& + ' was written with an unknown version of MesoNH') + else if ( imnhversion(1)< nmnhversion(1) .or. & + (imnhversion(1)==nmnhversion(1) .and. imnhversion(2)< nmnhversion(2)) .or. & + (imnhversion(1)==nmnhversion(1) .and. imnhversion(2)==nmnhversion(2) .and. imnhversion(3)<nmnhversion(3)) ) then + call print_msg(NVERB_WARNING,'IO','IO_Mnhversion_get','file '//trim(tpfile%cname)//& + ' was written with an older version of MesoNH ('//trim(ymnhversion_file)//& + ' instead of '//trim(ymnhversion_curr)//')') + else if ( imnhversion(1)> nmnhversion(1) .or. & + (imnhversion(1)==nmnhversion(1) .and. imnhversion(2)> nmnhversion(2)) .or. & + (imnhversion(1)==nmnhversion(1) .and. imnhversion(2)==nmnhversion(2) .and. imnhversion(3)>nmnhversion(3)) ) then + call print_msg(NVERB_WARNING,'IO','IO_Mnhversion_get','file '//trim(tpfile%cname)//& + ' was written with a more recent version of MesoNH ('//trim(ymnhversion_file)//& + ' instead of '//trim(ymnhversion_curr)//')') + else + call print_msg(NVERB_DEBUG,'IO','IO_Mnhversion_get','file '//trim(tpfile%cname)//& + ' was written with the same version of MesoNH ('//trim(ymnhversion_curr)//')') + end if ! - if ( imnhversion(1)==0 .and. imnhversion(2)==0 .and. imnhversion(3)==0 ) then - call print_msg(NVERB_WARNING,'IO','io_get_mnhversion','file '//trim(tpfile%cname)//& - ' was written with an unknown version of MesoNH') - else if ( imnhversion(1)< nmnhversion(1) .or. & - (imnhversion(1)==nmnhversion(1) .and. imnhversion(2)< nmnhversion(2)) .or. & - (imnhversion(1)==nmnhversion(1) .and. imnhversion(2)==nmnhversion(2) .and. imnhversion(3)<nmnhversion(3)) ) then - call print_msg(NVERB_WARNING,'IO','io_get_mnhversion','file '//trim(tpfile%cname)//& - ' was written with an older version of MesoNH ('//trim(ymnhversion_file)//& - ' instead of '//trim(ymnhversion_curr)//')') - else if ( imnhversion(1)> nmnhversion(1) .or. & - (imnhversion(1)==nmnhversion(1) .and. imnhversion(2)> nmnhversion(2)) .or. & - (imnhversion(1)==nmnhversion(1) .and. imnhversion(2)==nmnhversion(2) .and. imnhversion(3)>nmnhversion(3)) ) then - call print_msg(NVERB_WARNING,'IO','io_get_mnhversion','file '//trim(tpfile%cname)//& - ' was written with a more recent version of MesoNH ('//trim(ymnhversion_file)//& - ' instead of '//trim(ymnhversion_curr)//')') - else - call print_msg(NVERB_DEBUG,'IO','io_get_mnhversion','file '//trim(tpfile%cname)//& - ' was written with the same version of MesoNH ('//trim(ymnhversion_curr)//')') - end if - ! - tpfile%nmnhversion(:) = imnhversion(:) - end subroutine io_get_mnhversion + tpfile%nmnhversion(:) = imnhversion(:) +end subroutine IO_Mnhversion_get - subroutine io_set_mnhversion(tpfile) - use modd_conf, only: nmnhversion - use modd_io_ll, only: tfiledata +subroutine IO_Mnhversion_set(tpfile) + use modd_conf, only: nmnhversion - type(tfiledata), intent(inout) :: tpfile + type(tfiledata), intent(inout) :: tpfile - call print_msg(NVERB_DEBUG,'IO','io_set_mnhversion','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_Mnhversion_set','called for '//trim(tpfile%cname)) - if ( trim(tpfile%cmode) /= 'WRITE' ) & - call print_msg(NVERB_FATAL,'IO','io_set_mnhversion',trim(tpfile%cname)// 'not opened in write mode') + if ( trim(tpfile%cmode) /= 'WRITE' ) & + call print_msg(NVERB_FATAL,'IO','IO_Mnhversion_set',trim(tpfile%cname)// 'not opened in write mode') - tpfile%nmnhversion(:) = nmnhversion(:) - end subroutine io_set_mnhversion + tpfile%nmnhversion(:) = nmnhversion(:) +end subroutine IO_Mnhversion_set end module mode_io_tools_mnhversion diff --git a/src/LIB/SURCOUCHE/src/mode_io_tools_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_tools_lfi.f90 index a55365550..c320a2c7d 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_tools_lfi.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_tools_lfi.f90 @@ -1,24 +1,26 @@ -!MNH_LIC Copyright 2018-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2018-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -! Creation: -! P. Wautelet : 14/12/2018 +! Author(s): +! P. Wautelet : 14/12/2018 +! Modifications: +! P. Wautelet 05/03/2019: rename IO subroutines and modules !----------------------------------------------------------------- module mode_io_tools_lfi -use modd_io_ll, only: tfiledata +use modd_io, only: tfiledata implicit none private -public :: io_prepare_verbosity_lfi +public :: IO_Verbosity_prepare_lfi contains -subroutine io_prepare_verbosity_lfi(tpfile, kmelev, ostats) +subroutine IO_Verbosity_prepare_lfi(tpfile, kmelev, ostats) type(tfiledata), intent(in) :: tpfile integer(kind=LFI_INT), intent(out) :: kmelev logical, intent(out) :: ostats @@ -38,7 +40,7 @@ subroutine io_prepare_verbosity_lfi(tpfile, kmelev, ostats) kmelev = 2 end select -end subroutine io_prepare_verbosity_lfi +end subroutine IO_Verbosity_prepare_lfi end module mode_io_tools_lfi diff --git a/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 index b66011fac..638340f23 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 @@ -3,17 +3,18 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -! Modifications: -! P. Wautelet : may 2016 : use NetCDF Fortran module -! J.Escobar : 14/12/2017 : Correction for MNH_INT=8 -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet : 13/12/2018 : split of mode_netcdf into multiple modules/files -! Philippe Wautelet: 10/01/2019: replace handle_err by io_handle_err_nc4 for better netCDF error messages +! Modifications: +! P. Wautelet may 2016 : use NetCDF Fortran module +! J.Escobar 14/12/2017: correction for MNH_INT=8 +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 13/12/2018: split of mode_netcdf into multiple modules/files +! P. Wautelet 10/01/2019: replace handle_err by IO_Err_handle_nc4 for better netCDF error messages +! P. Wautelet 05/03/2019: rename IO subroutines and modules !----------------------------------------------------------------- #if defined(MNH_IOCDF4) module mode_io_tools_nc4 -use modd_io_ll, only: tfiledata +use modd_io, only: tfiledata use modd_netcdf, only: dimcdf, IDCDF_KIND, iocdf, tdim_dummy use mode_field, only: tfielddata @@ -26,12 +27,13 @@ implicit none private -public :: io_find_dim_byname_nc4, io_guess_dimids_nc4, io_set_knowndims_nc4 -public :: cleaniocdf, cleanmnhname, fillvdims, getdimcdf, getstrdimid, io_handle_err_nc4, newiocdf +public :: IO_Dim_find_byname_nc4, IO_Dimids_guess_nc4, IO_Knowndims_set_nc4 +public :: IO_Iocdf_alloc_nc4, IO_Iocdf_dealloc_nc4, IO_Mnhname_clean +public :: IO_Dimcdf_get_nc4, IO_Strdimid_get_nc4, IO_Vdims_fill_nc4, IO_Err_handle_nc4 contains -SUBROUTINE IO_FIND_DIM_BYNAME_NC4(TPFILE, HDIMNAME, TPDIM, KRESP) +SUBROUTINE IO_Dim_find_byname_nc4(TPFILE, HDIMNAME, TPDIM, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HDIMNAME TYPE(DIMCDF), INTENT(OUT) :: TPDIM @@ -39,12 +41,12 @@ INTEGER, INTENT(OUT) :: KRESP ! TYPE(DIMCDF), POINTER :: TMP ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FIND_DIM_BYNAME_NC4','called for dimension name '//TRIM(HDIMNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Dim_find_byname_nc4','called for dimension name '//TRIM(HDIMNAME)) ! KRESP = -2 ! IF(.NOT.ASSOCIATED(TPFILE%TNCDIMS%DIMLIST)) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FIND_DIM_BYNAME_NC4','DIMLIST not associated for file '//TRIM(TPFILE%CNAME)) + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dim_find_byname_nc4','DIMLIST not associated for file '//TRIM(TPFILE%CNAME)) KRESP = -1 RETURN END IF @@ -60,10 +62,10 @@ DO WHILE(ASSOCIATED(TMP)) TMP => TMP%NEXT END DO ! -END SUBROUTINE IO_FIND_DIM_BYNAME_NC4 +END SUBROUTINE IO_Dim_find_byname_nc4 -SUBROUTINE IO_GUESS_DIMIDS_NC4(TPFILE, TPFIELD, KLEN, TPDIMS, KRESP) +SUBROUTINE IO_Dimids_guess_nc4(TPFILE, TPFIELD, KLEN, TPDIMS, KRESP) ! USE MODE_FIELD, ONLY: TYPECHAR ! @@ -81,7 +83,7 @@ CHARACTER(LEN=32) :: YINT CHARACTER(LEN=2) :: YDIR TYPE(DIMCDF), POINTER :: PTDIM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_GUESS_DIMIDS_NC4','called for '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Dimids_guess_nc4','called for '//TRIM(TPFIELD%CMNHNAME)) ! IGRID = TPFIELD%NGRID YDIR = TPFIELD%CDIR @@ -92,11 +94,11 @@ PTDIM => NULL() ! IF(IGRID<0 .OR. IGRID>8) THEN WRITE(YINT,'( I0 )') IGRID - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_GUESS_DIMIDS_NC4','invalid NGRID ('//TRIM(YINT)//') for field '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Dimids_guess_nc4','invalid NGRID ('//TRIM(YINT)//') for field '//TRIM(TPFIELD%CMNHNAME)) END IF ! IF(IGRID==0 .AND. YDIR/='--' .AND. YDIR/='' ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4','invalid YDIR ('//TRIM(YDIR)//') with NGRID=0 for field '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4','invalid YDIR ('//TRIM(YDIR)//') with NGRID=0 for field '& //TRIM(TPFIELD%CMNHNAME)) END IF ! @@ -109,16 +111,16 @@ IF (IGRID==0) THEN ILEN = 1 END IF CASE (1) - PTDIM => GETDIMCDF(TPFILE,KLEN) + PTDIM => IO_Dimcdf_get_nc4(TPFILE,KLEN) TPDIMS(1) = PTDIM ILEN = PTDIM%LEN CASE DEFAULT - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4','NGRID=0 and NDIMS>1 not yet supported (field '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4','NGRID=0 and NDIMS>1 not yet supported (field '& //TRIM(TPFIELD%CMNHNAME)//')') END SELECT ELSE IF (TPFIELD%CLBTYPE/='NONE') THEN IF (TPFIELD%NDIMS/=3) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4','CLBTYPE/=NONE and NDIMS/=3 not supported (field '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4','CLBTYPE/=NONE and NDIMS/=3 not supported (field '& //TRIM(TPFIELD%CMNHNAME)//')') END IF ! @@ -129,9 +131,9 @@ ELSE IF (TPFIELD%CLBTYPE/='NONE') THEN TPDIMS(3) = PTDIM ILEN = TPDIMS(2)%LEN * TPDIMS(3)%LEN ISIZE = KLEN/ILEN - IF (MOD(KLEN,ILEN)/=0) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4', & + IF (MOD(KLEN,ILEN)/=0) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4', & 'can not guess 1st dimension for field '//TRIM(TPFIELD%CMNHNAME)) - PTDIM => GETDIMCDF(TPFILE, ISIZE) + PTDIM => IO_Dimcdf_get_nc4(TPFILE, ISIZE) TPDIMS(1) = PTDIM ILEN = ILEN * PTDIM%LEN ELSE IF (TPFIELD%CLBTYPE=='LBY' .OR. TPFIELD%CLBTYPE=='LBYV') THEN @@ -141,13 +143,13 @@ ELSE IF (TPFIELD%CLBTYPE/='NONE') THEN TPDIMS(3) = PTDIM ILEN = TPDIMS(1)%LEN * TPDIMS(3)%LEN ISIZE = KLEN/ILEN - IF (MOD(KLEN,ILEN)/=0) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4', & + IF (MOD(KLEN,ILEN)/=0) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4', & 'can not guess 2nd dimension for field '//TRIM(TPFIELD%CMNHNAME)) - PTDIM => GETDIMCDF(TPFILE, ISIZE) + PTDIM => IO_Dimcdf_get_nc4(TPFILE, ISIZE) TPDIMS(2) = PTDIM ILEN = ILEN * PTDIM%LEN ELSE - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4','invalid CLBTYPE ('//TPFIELD%CLBTYPE//') for field '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4','invalid CLBTYPE ('//TPFIELD%CLBTYPE//') for field '& //TRIM(TPFIELD%CMNHNAME)) END IF ELSE @@ -162,7 +164,7 @@ ELSE ELSE IF ( YDIR == 'ZZ' ) THEN PTDIM => TPFILE%TNCCOORDS(3,IGRID)%TDIM ELSE IF (JI==TPFIELD%NDIMS) THEN !Guess last dimension - PTDIM => GETDIMCDF(TPFILE, KLEN) + PTDIM => IO_Dimcdf_get_nc4(TPFILE, KLEN) END IF ILEN = PTDIM%LEN TPDIMS(JI) = PTDIM @@ -172,13 +174,13 @@ ELSE ELSE IF (JI==TPFIELD%NDIMS) THEN !Guess last dimension ISIZE = KLEN/ILEN IF (MOD(KLEN,ILEN)/=0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4', & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4', & 'can not guess 2nd and last dimension for field '//TRIM(TPFIELD%CMNHNAME)) EXIT END IF - PTDIM => GETDIMCDF(TPFILE, ISIZE) + PTDIM => IO_Dimcdf_get_nc4(TPFILE, ISIZE) ELSE - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4','can not guess 2nd dimension for field '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4','can not guess 2nd dimension for field '//TRIM(TPFIELD%CMNHNAME)) EXIT END IF ILEN = ILEN * PTDIM%LEN @@ -188,20 +190,20 @@ ELSE IF (JI==TPFIELD%NDIMS .AND. KLEN/ILEN==1 .AND. MOD(KLEN,ILEN)==0) THEN !The last dimension is of size 1 => probably time dimension ISIZE = 1 - PTDIM => GETDIMCDF(TPFILE,ISIZE) + PTDIM => IO_Dimcdf_get_nc4(TPFILE,ISIZE) ELSE PTDIM => TPFILE%TNCCOORDS(3,IGRID)%TDIM END IF ELSE IF (JI==TPFIELD%NDIMS) THEN !Guess last dimension ISIZE = KLEN/ILEN IF (MOD(KLEN,ILEN)/=0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4', & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4', & 'can not guess 3rd and last dimension for field '//TRIM(TPFIELD%CMNHNAME)) EXIT END IF - PTDIM => GETDIMCDF(TPFILE, ISIZE) + PTDIM => IO_Dimcdf_get_nc4(TPFILE, ISIZE) ELSE - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4','can not guess 3rd dimension for field '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4','can not guess 3rd dimension for field '//TRIM(TPFIELD%CMNHNAME)) EXIT END IF ILEN = ILEN * PTDIM%LEN @@ -209,30 +211,30 @@ ELSE ELSE IF (JI==4 .AND. JI==TPFIELD%NDIMS) THEN !Guess last dimension ISIZE = KLEN/ILEN IF (MOD(KLEN,ILEN)/=0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4', & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4', & 'can not guess 4th and last dimension for field '//TRIM(TPFIELD%CMNHNAME)) EXIT END IF - PTDIM => GETDIMCDF(TPFILE, ISIZE) + PTDIM => IO_Dimcdf_get_nc4(TPFILE, ISIZE) ILEN = ILEN * PTDIM%LEN TPDIMS(JI) = PTDIM ELSE - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4','can not guess dimension above 4 for field '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4','can not guess dimension above 4 for field '& //TRIM(TPFIELD%CMNHNAME)) END IF END DO END IF ! IF (KLEN /= ILEN) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_GUESS_DIMIDS_NC4','can not guess dimensions of field '& + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Dimids_guess_nc4','can not guess dimensions of field '& //TRIM(TPFIELD%CMNHNAME)) KRESP = 1 END IF ! -END SUBROUTINE IO_GUESS_DIMIDS_NC4 +END SUBROUTINE IO_Dimids_guess_nc4 -SUBROUTINE IO_SET_KNOWNDIMS_NC4(TPFILE,HPROGRAM_ORIG) +SUBROUTINE IO_Knowndims_set_nc4(TPFILE,HPROGRAM_ORIG) USE MODD_CONF, ONLY: CPROGRAM USE MODD_CONF_n, ONLY: CSTORAGE_TYPE @@ -246,7 +248,7 @@ CHARACTER(LEN=:),ALLOCATABLE :: YPROGRAM INTEGER :: IIU_ll, IJU_ll, IKU TYPE(IOCDF), POINTER :: PIOCDF -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_SET_KNOWNDIMS_NC4','called for '//TRIM(TPFILE%CNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Knowndims_set_nc4','called for '//TRIM(TPFILE%CNAME)) PIOCDF => TPFILE%TNCDIMS @@ -260,17 +262,17 @@ IIU_ll = NIMAX_ll + 2*JPHEXT IJU_ll = NJMAX_ll + 2*JPHEXT IKU = NKMAX + 2*JPVEXT -IF (.NOT. ASSOCIATED(PIOCDF%DIM_NI)) PIOCDF%DIM_NI => GETDIMCDF(TPFILE, IIU_ll, 'ni') -IF (.NOT. ASSOCIATED(PIOCDF%DIM_NJ)) PIOCDF%DIM_NJ => GETDIMCDF(TPFILE, IJU_ll, 'nj') -IF (.NOT. ASSOCIATED(PIOCDF%DIM_NI_U)) PIOCDF%DIM_NI_U => GETDIMCDF(TPFILE, IIU_ll, 'ni_u') -IF (.NOT. ASSOCIATED(PIOCDF%DIM_NJ_U)) PIOCDF%DIM_NJ_U => GETDIMCDF(TPFILE, IJU_ll, 'nj_u') -IF (.NOT. ASSOCIATED(PIOCDF%DIM_NI_V)) PIOCDF%DIM_NI_V => GETDIMCDF(TPFILE, IIU_ll, 'ni_v') -IF (.NOT. ASSOCIATED(PIOCDF%DIM_NJ_V)) PIOCDF%DIM_NJ_V => GETDIMCDF(TPFILE, IJU_ll, 'nj_v') +IF (.NOT. ASSOCIATED(PIOCDF%DIM_NI)) PIOCDF%DIM_NI => IO_Dimcdf_get_nc4(TPFILE, IIU_ll, 'ni') +IF (.NOT. ASSOCIATED(PIOCDF%DIM_NJ)) PIOCDF%DIM_NJ => IO_Dimcdf_get_nc4(TPFILE, IJU_ll, 'nj') +IF (.NOT. ASSOCIATED(PIOCDF%DIM_NI_U)) PIOCDF%DIM_NI_U => IO_Dimcdf_get_nc4(TPFILE, IIU_ll, 'ni_u') +IF (.NOT. ASSOCIATED(PIOCDF%DIM_NJ_U)) PIOCDF%DIM_NJ_U => IO_Dimcdf_get_nc4(TPFILE, IJU_ll, 'nj_u') +IF (.NOT. ASSOCIATED(PIOCDF%DIM_NI_V)) PIOCDF%DIM_NI_V => IO_Dimcdf_get_nc4(TPFILE, IIU_ll, 'ni_v') +IF (.NOT. ASSOCIATED(PIOCDF%DIM_NJ_V)) PIOCDF%DIM_NJ_V => IO_Dimcdf_get_nc4(TPFILE, IJU_ll, 'nj_v') IF (TRIM(YPROGRAM)/='PGD' .AND. TRIM(YPROGRAM)/='NESPGD' .AND. TRIM(YPROGRAM)/='ZOOMPG' & .AND. .NOT.(TRIM(YPROGRAM)=='REAL' .AND. CSTORAGE_TYPE=='SU') ) THEN !condition to detect PREP_SURFEX - IF (.NOT. ASSOCIATED(PIOCDF%DIM_LEVEL)) PIOCDF%DIM_LEVEL => GETDIMCDF(TPFILE, IKU , 'level') - IF (.NOT. ASSOCIATED(PIOCDF%DIM_LEVEL_W)) PIOCDF%DIM_LEVEL_W => GETDIMCDF(TPFILE, IKU , 'level_w') - IF (.NOT. ASSOCIATED(PIOCDF%DIMTIME)) PIOCDF%DIMTIME => GETDIMCDF(TPFILE, NF90_UNLIMITED, 'time') + IF (.NOT. ASSOCIATED(PIOCDF%DIM_LEVEL)) PIOCDF%DIM_LEVEL => IO_Dimcdf_get_nc4(TPFILE, IKU , 'level') + IF (.NOT. ASSOCIATED(PIOCDF%DIM_LEVEL_W)) PIOCDF%DIM_LEVEL_W => IO_Dimcdf_get_nc4(TPFILE, IKU , 'level_w') + IF (.NOT. ASSOCIATED(PIOCDF%DIMTIME)) PIOCDF%DIMTIME => IO_Dimcdf_get_nc4(TPFILE, NF90_UNLIMITED, 'time') ELSE !PGD and SURFEX files for MesoNH have no vertical levels or time scale !These dimensions are allocated to default values @@ -321,15 +323,15 @@ TPFILE%TNCCOORDS(2,8)%TDIM => PIOCDF%DIM_NJ_V TPFILE%TNCCOORDS(3,8)%TDIM => PIOCDF%DIM_LEVEL_W -END SUBROUTINE IO_SET_KNOWNDIMS_NC4 +END SUBROUTINE IO_Knowndims_set_nc4 -SUBROUTINE CLEANIOCDF(PIOCDF) +SUBROUTINE IO_Iocdf_dealloc_nc4(PIOCDF) TYPE(IOCDF), POINTER :: PIOCDF INTEGER(KIND=IDCDF_KIND) :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','CLEANIOCDF','called') +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Iocdf_dealloc_nc4','called') ! Clean DIMLIST and DIMSTR CALL CLEANLIST(PIOCDF%DIMLIST) @@ -351,10 +353,10 @@ END DO END SUBROUTINE CLEANLIST -END SUBROUTINE CLEANIOCDF +END SUBROUTINE IO_Iocdf_dealloc_nc4 -SUBROUTINE FILLVDIMS(TPFILE, TPFIELD, KSHAPE, KVDIMS) +SUBROUTINE IO_Vdims_fill_nc4(TPFILE, TPFIELD, KSHAPE, KVDIMS) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD INTEGER(KIND=IDCDF_KIND),DIMENSION(:),INTENT(IN) :: KSHAPE @@ -366,16 +368,16 @@ CHARACTER(LEN=32) :: YINT CHARACTER(LEN=2) :: YDIR TYPE(DIMCDF), POINTER :: PTDIM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','FILLVDIMS','called for '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Vdims_fill_nc4','called for '//TRIM(TPFIELD%CMNHNAME)) ! -IF (SIZE(KSHAPE) < 1 .AND. .NOT.TPFIELD%LTIMEDEP) CALL PRINT_MSG(NVERB_FATAL,'IO','FILLVDIMS','empty KSHAPE') +IF (SIZE(KSHAPE) < 1 .AND. .NOT.TPFIELD%LTIMEDEP) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Vdims_fill_nc4','empty KSHAPE') ! IGRID = TPFIELD%NGRID YDIR = TPFIELD%CDIR ! IF(SIZE(KSHAPE)/=TPFIELD%NDIMS) THEN WRITE(YINT,'( I0,"/",I0 )') SIZE(KSHAPE),TPFIELD%NDIMS - CALL PRINT_MSG(NVERB_FATAL,'IO','FILLVDIMS','SIZE(KSHAPE)/=TPFIELD%NDIMS ('//TRIM(YINT)//') for field ' & + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Vdims_fill_nc4','SIZE(KSHAPE)/=TPFIELD%NDIMS ('//TRIM(YINT)//') for field ' & //TRIM(TPFIELD%CMNHNAME)) END IF ! @@ -389,11 +391,12 @@ END IF ! IF(IGRID<0 .OR. IGRID>8) THEN WRITE(YINT,'( I0 )') IGRID - CALL PRINT_MSG(NVERB_FATAL,'IO','FILLVDIMS','invalid NGRID ('//TRIM(YINT)//') for field '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Vdims_fill_nc4','invalid NGRID ('//TRIM(YINT)//') for field '//TRIM(TPFIELD%CMNHNAME)) END IF ! IF(IGRID==0 .AND. YDIR/='--' .AND. YDIR/='' ) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','FILLVDIMS','invalid YDIR ('//TRIM(YDIR)//') with NGRID=0 for field '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Vdims_fill_nc4','invalid YDIR ('//TRIM(YDIR)//') with NGRID=0 for field ' & + //TRIM(TPFIELD%CMNHNAME)) END IF ! DO JI=1,SIZE(KSHAPE) @@ -405,34 +408,34 @@ DO JI=1,SIZE(KSHAPE) ELSE IF ( YDIR == 'ZZ' .AND. KSHAPE(1)==TPFILE%TNCCOORDS(3,IGRID)%TDIM%LEN) THEN KVDIMS(1) = TPFILE%TNCCOORDS(3,IGRID)%TDIM%ID ELSE - PTDIM => GETDIMCDF(TPFILE, KSHAPE(1)); KVDIMS(1) = PTDIM%ID + PTDIM => IO_Dimcdf_get_nc4(TPFILE, KSHAPE(1)); KVDIMS(1) = PTDIM%ID END IF ELSE IF (JI == 2) THEN IF ( YDIR == 'XY' .AND. KSHAPE(2)==TPFILE%TNCCOORDS(2,IGRID)%TDIM%LEN) THEN KVDIMS(2) = TPFILE%TNCCOORDS(2,IGRID)%TDIM%ID ELSE - PTDIM => GETDIMCDF(TPFILE, KSHAPE(2)); KVDIMS(2) = PTDIM%ID + PTDIM => IO_Dimcdf_get_nc4(TPFILE, KSHAPE(2)); KVDIMS(2) = PTDIM%ID END IF ELSE IF (JI == 3) THEN IF ( YDIR == 'XY' .AND. KSHAPE(3)==TPFILE%TNCCOORDS(3,IGRID)%TDIM%LEN) THEN KVDIMS(3) = TPFILE%TNCCOORDS(3,IGRID)%TDIM%ID ELSE - PTDIM => GETDIMCDF(TPFILE, KSHAPE(3)); KVDIMS(3) = PTDIM%ID + PTDIM => IO_Dimcdf_get_nc4(TPFILE, KSHAPE(3)); KVDIMS(3) = PTDIM%ID END IF ELSE - PTDIM => GETDIMCDF(TPFILE, KSHAPE(JI)); KVDIMS(JI) = PTDIM%ID + PTDIM => IO_Dimcdf_get_nc4(TPFILE, KSHAPE(JI)); KVDIMS(JI) = PTDIM%ID END IF END DO ! -END SUBROUTINE FILLVDIMS +END SUBROUTINE IO_Vdims_fill_nc4 -FUNCTION GETDIMCDF(TPFILE, KLEN, HDIMNAME) +FUNCTION IO_Dimcdf_get_nc4(TPFILE, KLEN, HDIMNAME) TYPE(TFILEDATA), INTENT(IN) :: TPFILE INTEGER(KIND=IDCDF_KIND),INTENT(IN) :: KLEN CHARACTER(LEN=*), OPTIONAL :: HDIMNAME ! When provided don't search but ! simply create with name HDIMNAME -TYPE(DIMCDF), POINTER :: GETDIMCDF +TYPE(DIMCDF), POINTER :: IO_Dimcdf_get_nc4 TYPE(DIMCDF), POINTER :: TMP INTEGER :: COUNT @@ -442,7 +445,7 @@ INTEGER(KIND=IDCDF_KIND) :: STATUS LOGICAL :: GCHKLEN !Check if KLEN is valid TYPE(IOCDF), POINTER :: PIOCDF -CALL PRINT_MSG(NVERB_DEBUG,'IO','GETDIMCDF','called') +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Dimcdf_get_nc4','called') PIOCDF => TPFILE%TNCDIMS @@ -457,7 +460,7 @@ END IF WRITE(YSUFFIX,'(I0)') KLEN IF (GCHKLEN .AND. KLEN < 1) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','GETDIMCDF','KLEN='//TRIM(YSUFFIX)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Dimcdf_get_nc4','KLEN='//TRIM(YSUFFIX)) END IF IF (PRESENT(HDIMNAME)) THEN @@ -481,34 +484,34 @@ IF (.NOT. ASSOCIATED(TMP)) THEN TMP%NAME = YDIMNAME TMP%LEN = KLEN STATUS = NF90_DEF_DIM(TPFILE%NNCID, TMP%NAME, KLEN, TMP%ID) - IF (STATUS /= NF90_NOERR) CALL io_handle_err_nc4(status,'GETDIMCDF','NF90_DEF_DIM',trim(TMP%NAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Dimcdf_get_nc4','NF90_DEF_DIM',trim(TMP%NAME)) NULLIFY(TMP%NEXT) TMP%NEXT => PIOCDF%DIMLIST PIOCDF%DIMLIST => TMP -CALL PRINT_MSG(NVERB_DEBUG,'IO','GETDIMCDF','new dimension: '//TRIM(TMP%NAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Dimcdf_get_nc4','new dimension: '//TRIM(TMP%NAME)) END IF -GETDIMCDF => TMP +IO_Dimcdf_get_nc4 => TMP -END FUNCTION GETDIMCDF +END FUNCTION IO_Dimcdf_get_nc4 -FUNCTION GETSTRDIMID(TPFILE,KLEN) +FUNCTION IO_Strdimid_get_nc4(TPFILE,KLEN) TYPE(TFILEDATA), INTENT(IN) :: TPFILE INTEGER(KIND=IDCDF_KIND),INTENT(IN) :: KLEN -INTEGER(KIND=IDCDF_KIND) :: GETSTRDIMID +INTEGER(KIND=IDCDF_KIND) :: IO_Strdimid_get_nc4 TYPE(DIMCDF), POINTER :: TMP TYPE(IOCDF), POINTER :: TZIOCDF CHARACTER(LEN=16) :: YSUFFIX INTEGER(KIND=IDCDF_KIND) :: STATUS -CALL PRINT_MSG(NVERB_DEBUG,'IO','GETSTRDIMID','called') +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Strdimid_get_nc4','called') WRITE(YSUFFIX,'(I0)') KLEN IF (KLEN < 1) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','GETSTRDIMID','KLEN='//TRIM(YSUFFIX)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Strdimid_get_nc4','KLEN='//TRIM(YSUFFIX)) END IF ! Search string dimension with KLEN length @@ -524,37 +527,36 @@ IF (.NOT. ASSOCIATED(TMP)) THEN TMP%NAME = 'char'//TRIM(YSUFFIX) TMP%LEN = KLEN STATUS = NF90_DEF_DIM(TPFILE%NNCID, TMP%NAME, KLEN, TMP%ID) - IF (STATUS /= NF90_NOERR) CALL io_handle_err_nc4(status,'GETSTRDIMID','NF90_DEF_DIM',trim(TMP%NAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Strdimid_get_nc4','NF90_DEF_DIM',trim(TMP%NAME)) NULLIFY(TMP%NEXT) TMP%NEXT => TPFILE%TNCDIMS%DIMSTR TZIOCDF => TPFILE%TNCDIMS TZIOCDF%DIMSTR => TMP END IF -GETSTRDIMID = TMP%ID +IO_Strdimid_get_nc4 = TMP%ID -END FUNCTION GETSTRDIMID +END FUNCTION IO_Strdimid_get_nc4 -FUNCTION NEWIOCDF() -TYPE(IOCDF), POINTER :: NEWIOCDF +FUNCTION IO_Iocdf_alloc_nc4() +TYPE(IOCDF), POINTER :: IO_Iocdf_alloc_nc4 TYPE(IOCDF), POINTER :: TZIOCDF INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','NEWIOCDF','called') +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Iocdf_alloc_nc4','called') ALLOCATE(TZIOCDF, STAT=IRESP) IF (IRESP > 0) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','NEWIOCDF','memory allocation error') - STOP + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Iocdf_alloc_nc4','memory allocation error') END IF -NEWIOCDF=>TZIOCDF +IO_Iocdf_alloc_nc4=>TZIOCDF -END FUNCTION NEWIOCDF +END FUNCTION IO_Iocdf_alloc_nc4 -subroutine io_handle_err_nc4(kstatus,hsubr,hncsubr,hvar,kresp) +subroutine IO_Err_handle_nc4(kstatus,hsubr,hncsubr,hvar,kresp) integer(kind=IDCDF_KIND),intent(in) :: kstatus character(len=*), intent(in) :: hsubr character(len=*), intent(in) :: hncsubr @@ -575,10 +577,10 @@ if (kstatus /= NF90_NOERR) then call print_msg(NVERB_ERROR, 'IO',trim(hsubr),trim(hvar)//': '//trim(hncsubr)//': '//trim(NF90_STRERROR(kstatus))) end if end if -end subroutine io_handle_err_nc4 +end subroutine IO_Err_handle_nc4 -SUBROUTINE CLEANMNHNAME(HINNAME,HOUTNAME) +SUBROUTINE IO_Mnhname_clean(HINNAME,HOUTNAME) CHARACTER(LEN=*),INTENT(IN) :: HINNAME CHARACTER(LEN=*),INTENT(OUT) :: HOUTNAME @@ -610,66 +612,66 @@ end module mode_io_tools_nc4 ! ! External dummy subroutines ! -subroutine io_find_dim_byname_nc4(a, b, c, d) +subroutine IO_Dim_find_byname_nc4(a, b, c, d) use mode_msg integer :: a, b, c, d -CALL PRINT_MSG(NVERB_ERROR,'IO','io_find_dim_byname_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_find_dim_byname_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Dim_find_byname_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Dim_find_byname_nc4 ! -subroutine io_guess_dimids_nc4(a, b, c, d) +subroutine IO_Dimids_guess_nc4(a, b, c, d) use mode_msg integer :: a, b, c, d -CALL PRINT_MSG(NVERB_ERROR,'IO','io_guess_dimids_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_guess_dimids_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Dimids_guess_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Dimids_guess_nc4 ! -subroutine io_set_knowndims_nc4(a, b) +subroutine IO_Knowndims_set_nc4(a, b) use mode_msg integer :: a, b, -CALL PRINT_MSG(NVERB_ERROR,'IO','io_set_knowndims_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_set_knowndims_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Knowndims_set_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Knowndims_set_nc4 ! -subroutine cleaniocdf(a) +subroutine IO_Iocdf_dealloc_nc4(a) use mode_msg integer :: a -CALL PRINT_MSG(NVERB_ERROR,'IO','cleaniocdf','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine cleaniocdf +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Iocdf_dealloc_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Iocdf_dealloc_nc4 ! -subroutine cleanmnhname(a, b) +subroutine IO_Mnhname_clean(a, b) use mode_msg integer :: a, b -CALL PRINT_MSG(NVERB_ERROR,'IO','cleanmnhname','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine cleanmnhname +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Mnhname_clean','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Mnhname_clean ! -subroutine fillvdims(a, b, c, d) +subroutine IO_Vdims_fill_nc4(a, b, c, d) use mode_msg integer :: a, b, c, d -CALL PRINT_MSG(NVERB_ERROR,'IO','fillvdims','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine fillvdims +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Vdims_fill_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Vdims_fill_nc4 ! -function getdimcdf(a, b, c) +function IO_Dimcdf_get_nc4(a, b, c) use mode_msg -integer :: getdimcdf +integer :: IO_Dimcdf_get_nc4 integer :: a, b, c -CALL PRINT_MSG(NVERB_ERROR,'IO','getdimcdf','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end function getdimcdf +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Dimcdf_get_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end function IO_Dimcdf_get_nc4 ! -function getstrdimid(a, b) +function IO_Strdimid_get_nc4(a, b) use mode_msg -integer :: getstrdimid +integer :: IO_Strdimid_get_nc4 integer :: a, b -CALL PRINT_MSG(NVERB_ERROR,'IO','getstrdimid','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end function getstrdimid +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Strdimid_get_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end function IO_Strdimid_get_nc4 ! -subroutine io_handle_err_nc4(a, b, c, d, e) +subroutine IO_Err_handle_nc4(a, b, c, d, e) use mode_msg integer :: a, b, c, d, e -CALL PRINT_MSG(NVERB_ERROR,'IO','io_handle_err_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_handle_err_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Err_handle_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Err_handle_nc4 ! -function newiocdf() +function IO_Iocdf_alloc_nc4() use mode_msg -integer :: newiocdf -CALL PRINT_MSG(NVERB_ERROR,'IO','newiocdf','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end function newiocdf() +integer :: IO_Iocdf_alloc_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Iocdf_alloc_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end function IO_Iocdf_alloc_nc4() ! #endif diff --git a/src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90 index 0ec774476..5dc2195e0 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90 @@ -3,44 +3,46 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -module mode_io_write_lfi ! Modifications: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! Philippe Wautelet: 21/06/2018: read and write correctly if MNH_REAL=4 -! Philippe Wautelet: 14/12/2018: split fmreadwrit.f90 -! Philippe Wautelet: 11/01/2019: do not write variables with a zero size +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 21/06/2018: read and write correctly if MNH_REAL=4 +! P. Wautelet 14/12/2018: split fmreadwrit.f90 +! P. Wautelet 11/01/2019: do not write variables with a zero size +! P. Wautelet 05/03/2019: rename IO subroutines and modules +!----------------------------------------------------------------- +module mode_io_write_lfi ! -USE MODD_IO_ll +USE MODD_IO USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH ! -USE MODE_FIELD, ONLY : TFIELDDATA +USE MODE_FIELD, ONLY: TFIELDDATA USE MODE_MSG ! IMPLICIT NONE ! PRIVATE ! +public :: IO_Field_write_lfi +! INTEGER, PARAMETER :: JPXKRK = NLFIMAXCOMMENTLENGTH INTEGER, PARAMETER :: JPXFIE = 1.5E8 ! -INTERFACE IO_WRITE_FIELD_LFI - MODULE PROCEDURE IO_WRITE_FIELD_LFI_X0,IO_WRITE_FIELD_LFI_X1, & - IO_WRITE_FIELD_LFI_X2,IO_WRITE_FIELD_LFI_X3, & - IO_WRITE_FIELD_LFI_X4,IO_WRITE_FIELD_LFI_X5, & - IO_WRITE_FIELD_LFI_X6, & - IO_WRITE_FIELD_LFI_N0,IO_WRITE_FIELD_LFI_N1, & - IO_WRITE_FIELD_LFI_N2,IO_WRITE_FIELD_LFI_N3, & - IO_WRITE_FIELD_LFI_L0,IO_WRITE_FIELD_LFI_L1, & - IO_WRITE_FIELD_LFI_C0, & - IO_WRITE_FIELD_LFI_T0 -END INTERFACE IO_WRITE_FIELD_LFI -! -PUBLIC IO_WRITE_FIELD_LFI +INTERFACE IO_Field_write_lfi + MODULE PROCEDURE IO_Field_write_lfi_X0,IO_Field_write_lfi_X1, & + IO_Field_write_lfi_X2,IO_Field_write_lfi_X3, & + IO_Field_write_lfi_X4,IO_Field_write_lfi_X5, & + IO_Field_write_lfi_X6, & + IO_Field_write_lfi_N0,IO_Field_write_lfi_N1, & + IO_Field_write_lfi_N2,IO_Field_write_lfi_N3, & + IO_Field_write_lfi_L0,IO_Field_write_lfi_L1, & + IO_Field_write_lfi_C0, & + IO_Field_write_lfi_T0 +END INTERFACE IO_Field_write_lfi ! CONTAINS ! ! -SUBROUTINE IO_WRITE_FIELD_LFI_X0(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_X0(TPFILE,TPFIELD,PFIELD,KRESP) ! IMPLICIT NONE ! @@ -58,7 +60,7 @@ INTEGER(KIND=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X0','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_X0','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = 1 ! @@ -68,7 +70,7 @@ IF (IRESP==0) THEN CALL TRANSFER_R_I8( (/PFIELD/) , IWORK(LEN(TPFIELD%CCOMMENT)+3:) ) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X0','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X0','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,TRIM(TPFIELD%CMNHNAME),IWORK,ITOTAL) ENDIF @@ -77,9 +79,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_X0 +END SUBROUTINE IO_Field_write_lfi_X0 ! -SUBROUTINE IO_WRITE_FIELD_LFI_X1(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_X1(TPFILE,TPFIELD,PFIELD,KRESP) ! IMPLICIT NONE ! @@ -97,12 +99,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X1','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_X1','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X1','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X1','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -113,7 +115,7 @@ IF (IRESP==0) THEN CALL TRANSFER_R_I8(PFIELD,IWORK(LEN(TPFIELD%CCOMMENT)+3:)) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X1','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X1','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -122,9 +124,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_X1 +END SUBROUTINE IO_Field_write_lfi_X1 ! -SUBROUTINE IO_WRITE_FIELD_LFI_X2(TPFILE,TPFIELD,PFIELD,KRESP,KVERTLEVEL,KZFILE) +SUBROUTINE IO_Field_write_lfi_X2(TPFILE,TPFIELD,PFIELD,KRESP,KVERTLEVEL,KZFILE) ! IMPLICIT NONE ! @@ -152,26 +154,26 @@ IRESP=0 ILENG = SIZE(PFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X2','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X2','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF ! IF (PRESENT(KVERTLEVEL)) THEN IF (.NOT.PRESENT(KZFILE)) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_LFI_X2','KZFILE argument not provided') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_lfi_X2','KZFILE argument not provided') RETURN END IF WRITE(YSUFFIX,'(I4.4)') KVERTLEVEL YVARNAME = TRIM(TPFIELD%CMNHNAME)//YSUFFIX - IF (KZFILE>TPFILE%NSUBFILES_IOZ) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_WRITE_FIELD_LFI_X2','KZFILE value too high') + IF (KZFILE>TPFILE%NSUBFILES_IOZ) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Field_write_lfi_X2','KZFILE value too high') TZFILE => TPFILE%TFILES_IOZ(KZFILE)%TFILE ELSE YVARNAME = TRIM(TPFIELD%CMNHNAME) TZFILE => TPFILE ENDIF ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X2','writing '//TRIM(YVARNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_X2','writing '//TRIM(YVARNAME)) ! CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) ! @@ -179,7 +181,7 @@ IF (IRESP==0) THEN CALL TRANSFER_R_I8(RESHAPE(PFIELD,(/ILENG/)),IWORK(LEN(TPFIELD%CCOMMENT)+3:)) YRECFM=TRIM(YVARNAME) IF( LEN_TRIM(YVARNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X2','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X2','field name was truncated to '& //YRECFM//' for '//TRIM(YVARNAME)) CALL LFIECR(IRESP,TZFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -188,9 +190,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_X2 +END SUBROUTINE IO_Field_write_lfi_X2 ! -SUBROUTINE IO_WRITE_FIELD_LFI_X3(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_X3(TPFILE,TPFIELD,PFIELD,KRESP) ! IMPLICIT NONE ! @@ -208,12 +210,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X3','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_X3','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X3','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X3','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -224,7 +226,7 @@ IF (IRESP==0) THEN CALL TRANSFER_R_I8(RESHAPE(PFIELD,(/ILENG/)),IWORK(LEN(TPFIELD%CCOMMENT)+3:)) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X3','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X3','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -233,9 +235,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_X3 +END SUBROUTINE IO_Field_write_lfi_X3 ! -SUBROUTINE IO_WRITE_FIELD_LFI_X4(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_X4(TPFILE,TPFIELD,PFIELD,KRESP) ! IMPLICIT NONE ! @@ -253,12 +255,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X4','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_X4','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X4','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X4','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -269,7 +271,7 @@ IF (IRESP==0) THEN CALL TRANSFER_R_I8(RESHAPE(PFIELD,(/ILENG/)),IWORK(LEN(TPFIELD%CCOMMENT)+3:)) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X4','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X4','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -278,9 +280,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_X4 +END SUBROUTINE IO_Field_write_lfi_X4 ! -SUBROUTINE IO_WRITE_FIELD_LFI_X5(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_X5(TPFILE,TPFIELD,PFIELD,KRESP) ! IMPLICIT NONE ! @@ -298,12 +300,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X5','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_X5','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X5','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X5','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -314,7 +316,7 @@ IF (IRESP==0) THEN CALL TRANSFER_R_I8(RESHAPE(PFIELD,(/ILENG/)),IWORK(LEN(TPFIELD%CCOMMENT)+3:)) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X5','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X5','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -323,9 +325,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_X5 +END SUBROUTINE IO_Field_write_lfi_X5 ! -SUBROUTINE IO_WRITE_FIELD_LFI_X6(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_X6(TPFILE,TPFIELD,PFIELD,KRESP) ! IMPLICIT NONE ! @@ -343,12 +345,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X6','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_X6','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X6','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X6','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -359,7 +361,7 @@ IF (IRESP==0) THEN CALL TRANSFER_R_I8(RESHAPE(PFIELD,(/ILENG/)),IWORK(LEN(TPFIELD%CCOMMENT)+3:)) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X6','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X6','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -368,9 +370,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_X6 +END SUBROUTINE IO_Field_write_lfi_X6 ! -SUBROUTINE IO_WRITE_FIELD_LFI_N0(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_N0(TPFILE,TPFIELD,KFIELD,KRESP) ! IMPLICIT NONE ! @@ -388,7 +390,7 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N0','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_N0','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = 1 ! @@ -398,7 +400,7 @@ IF (IRESP==0) THEN IWORK(LEN(TPFIELD%CCOMMENT)+3)=KFIELD YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N0','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_N0','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -407,9 +409,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_N0 +END SUBROUTINE IO_Field_write_lfi_N0 ! -SUBROUTINE IO_WRITE_FIELD_LFI_N1(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_N1(TPFILE,TPFIELD,KFIELD,KRESP) ! IMPLICIT NONE ! @@ -427,12 +429,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N1','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_N1','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(KFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N1','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_N1','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -443,7 +445,7 @@ IF (IRESP==0) THEN IWORK(LEN(TPFIELD%CCOMMENT)+3:) = KFIELD(:) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N1','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_N1','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -452,9 +454,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_N1 +END SUBROUTINE IO_Field_write_lfi_N1 ! -SUBROUTINE IO_WRITE_FIELD_LFI_N2(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_N2(TPFILE,TPFIELD,KFIELD,KRESP) ! IMPLICIT NONE ! @@ -472,12 +474,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N2','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_N2','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(KFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N2','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_N2','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -488,7 +490,7 @@ IF (IRESP==0) THEN IWORK(LEN(TPFIELD%CCOMMENT)+3:) = RESHAPE( KFIELD(:,:) , (/ SIZE(KFIELD) /) ) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N2','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_N2','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -497,9 +499,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_N2 +END SUBROUTINE IO_Field_write_lfi_N2 ! -SUBROUTINE IO_WRITE_FIELD_LFI_N3(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_N3(TPFILE,TPFIELD,KFIELD,KRESP) ! IMPLICIT NONE ! @@ -517,12 +519,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N3','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_N3','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(KFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N3','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_N3','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -533,7 +535,7 @@ IF (IRESP==0) THEN IWORK(LEN(TPFIELD%CCOMMENT)+3:) = RESHAPE( KFIELD(:,:,:) , (/ SIZE(KFIELD) /) ) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N3','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_N3','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -542,9 +544,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_N3 +END SUBROUTINE IO_Field_write_lfi_N3 ! -SUBROUTINE IO_WRITE_FIELD_LFI_L0(TPFILE,TPFIELD,OFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_L0(TPFILE,TPFIELD,OFIELD,KRESP) ! IMPLICIT NONE ! @@ -563,7 +565,7 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_L0','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_L0','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = 1 ! @@ -580,7 +582,7 @@ IF (IRESP==0) THEN IWORK(LEN(TPFIELD%CCOMMENT)+3)=IFIELD YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_L0','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_L0','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -589,9 +591,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_L0 +END SUBROUTINE IO_Field_write_lfi_L0 ! -SUBROUTINE IO_WRITE_FIELD_LFI_L1(TPFILE,TPFIELD,OFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_L1(TPFILE,TPFIELD,OFIELD,KRESP) ! IMPLICIT NONE ! @@ -610,12 +612,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_L1','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_L1','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(OFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_L1','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_L1','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -633,7 +635,7 @@ IF (IRESP==0) THEN IWORK(LEN(TPFIELD%CCOMMENT)+3:) = IFIELD(:) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_L1','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_L1','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -642,9 +644,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_L1 +END SUBROUTINE IO_Field_write_lfi_L1 ! -SUBROUTINE IO_WRITE_FIELD_LFI_C0(TPFILE,TPFIELD,HFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_C0(TPFILE,TPFIELD,HFIELD,KRESP) ! USE MODD_PARAMETERS, ONLY: NFILENAMELGTMAXLFI ! @@ -664,7 +666,7 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_C0','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_C0','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG=LEN(HFIELD) ILENGMAX = ILENG @@ -675,7 +677,7 @@ IF (TPFIELD%CMNHNAME=='MY_NAME' .OR. TPFIELD%CMNHNAME=='DAD_NAME') THEN ILENG = MIN(LEN(HFIELD),NFILENAMELGTMAXLFI) ILENGMAX = NFILENAMELGTMAXLFI IF (LEN_TRIM(HFIELD)>ILENGMAX) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_C0',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_C0',TRIM(TPFILE%CNAME)// & ': MY_NAME was truncated from '//TRIM(HFIELD)//' to '//HFIELD(1:NFILENAMELGTMAXLFI)) END IF ! @@ -691,7 +693,7 @@ IF (IRESP==0) THEN END DO YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_C0','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_C0','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -700,9 +702,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_C0 +END SUBROUTINE IO_Field_write_lfi_C0 ! -SUBROUTINE IO_WRITE_FIELD_LFI_T0(TPFILE,TPFIELD,TPDATA,KRESP) +SUBROUTINE IO_Field_write_lfi_T0(TPFILE,TPFIELD,TPDATA,KRESP) ! USE MODD_TYPE_DATE ! @@ -724,7 +726,7 @@ INTEGER, DIMENSION(3) :: ITDATE ! date array INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_T0','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_T0','writing '//TRIM(TPFIELD%CMNHNAME)) ! TZFIELD = TPFIELD ! @@ -743,7 +745,7 @@ IF (IRESP==0) THEN IWORK(LEN(TZFIELD%CCOMMENT)+3:)=ITDATE(:) YRECFM=TRIM(TZFIELD%CMNHNAME) IF( LEN_TRIM(TZFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_T0','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_T0','field name was truncated to '& //YRECFM//' for '//TRIM(TZFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -767,7 +769,7 @@ IF (IRESP==0) THEN IWORK(LEN(TZFIELD%CCOMMENT)+3) = TRANSFER(TPDATA%TIME,IWORK(1)) YRECFM=TRIM(TZFIELD%CMNHNAME) IF( LEN_TRIM(TZFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_T0','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_T0','field name was truncated to '& //YRECFM//' for '//TRIM(TZFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -776,7 +778,7 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_T0 +END SUBROUTINE IO_Field_write_lfi_T0 ! SUBROUTINE WRITE_PREPARE(TPFIELD,KLENG,KWORK,KTOTAL,KRESP) ! diff --git a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 index c6837768f..0fc391c69 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 @@ -3,23 +3,24 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -! Modifications: -! P. Wautelet : may 2016 : use NetCDF Fortran module -! J.Escobar : 14/12/2017 : Correction for MNH_INT=8 -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet : 13/12/2018 : split of mode_netcdf into multiple modules/files -! Philippe Wautelet: 10/01/2019: replace handle_err by io_handle_err_nc4 for better netCDF error messages -! P. Wautelet : 11/01/2019 : NVERB_INFO->NVERB_WARNING for zero size fields -! P. Wautelet : 01/02/2019 : IO_WRITE_COORDVAR_NC4: bug: use of non-associated pointers (PIOCDF%DIM_Nx_y) +! Modifications: +! P. Wautelet may 2016 : use NetCDF Fortran module +! J. Escobar 14/12/2017: correction for MNH_INT=8 +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 13/12/2018: split of mode_netcdf into multiple modules/files +! P. Wautelet 10/01/2019: replace handle_err by IO_Err_handle_nc4 for better netCDF error messages +! P. Wautelet 11/01/2019: NVERB_INFO->NVERB_WARNING for zero size fields +! P. Wautelet 01/02/2019: IO_Coordvar_write_nc4: bug: use of non-associated pointers (PIOCDF%DIM_Nx_y) +! P. Wautelet 05/03/2019: rename IO subroutines and modules !----------------------------------------------------------------- #if defined(MNH_IOCDF4) module mode_io_write_nc4 -use modd_io_ll, only: gsmonoproc, tfiledata +use modd_io, only: gsmonoproc, tfiledata use modd_netcdf, only: dimcdf, IDCDF_KIND, iocdf use mode_field, only: tfielddata -use mode_io_tools_nc4, only: cleanmnhname, fillvdims, getdimcdf, getstrdimid, io_handle_err_nc4 +use mode_io_tools_nc4, only: IO_Mnhname_clean, IO_Vdims_fill_nc4, IO_Dimcdf_get_nc4, IO_Strdimid_get_nc4, IO_Err_handle_nc4 use mode_msg use NETCDF, only: NF90_CHAR, NF90_DOUBLE, NF90_FLOAT, NF90_INT, NF90_INT1, NF90_INT64, & @@ -31,19 +32,19 @@ implicit none private -public :: io_write_coordvar_nc4, io_write_field_nc4, io_write_header_nc4 +public :: IO_Coordvar_write_nc4, IO_Field_write_nc4, IO_Header_write_nc4 -INTERFACE IO_WRITE_FIELD_NC4 - MODULE PROCEDURE IO_WRITE_FIELD_NC4_X0,IO_WRITE_FIELD_NC4_X1, & - IO_WRITE_FIELD_NC4_X2,IO_WRITE_FIELD_NC4_X3, & - IO_WRITE_FIELD_NC4_X4,IO_WRITE_FIELD_NC4_X5, & - IO_WRITE_FIELD_NC4_X6, & - IO_WRITE_FIELD_NC4_N0,IO_WRITE_FIELD_NC4_N1, & - IO_WRITE_FIELD_NC4_N2,IO_WRITE_FIELD_NC4_N3, & - IO_WRITE_FIELD_NC4_L0,IO_WRITE_FIELD_NC4_L1, & - IO_WRITE_FIELD_NC4_C0,IO_WRITE_FIELD_NC4_C1, & - IO_WRITE_FIELD_NC4_T0 -END INTERFACE IO_WRITE_FIELD_NC4 +INTERFACE IO_Field_write_nc4 + MODULE PROCEDURE IO_Field_write_nc4_X0,IO_Field_write_nc4_X1, & + IO_Field_write_nc4_X2,IO_Field_write_nc4_X3, & + IO_Field_write_nc4_X4,IO_Field_write_nc4_X5, & + IO_Field_write_nc4_X6, & + IO_Field_write_nc4_N0,IO_Field_write_nc4_N1, & + IO_Field_write_nc4_N2,IO_Field_write_nc4_N3, & + IO_Field_write_nc4_L0,IO_Field_write_nc4_L1, & + IO_Field_write_nc4_C0,IO_Field_write_nc4_C1, & + IO_Field_write_nc4_T0 +END INTERFACE IO_Field_write_nc4 integer,parameter :: NSTRINGCHUNKSIZE = 16 !Dimension of the chunks of strings !(to limit the number of dimensions for strings) @@ -53,7 +54,7 @@ integer(kind=IDCDF_KIND),parameter :: DEFLATE = 1 contains -SUBROUTINE IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,KVARID,OEXISTED,KSHAPE,HCALENDAR,OISCOORD) +SUBROUTINE IO_Field_attr_write_nc4(TPFILE,TPFIELD,KVARID,OEXISTED,KSHAPE,HCALENDAR,OISCOORD) ! USE MODD_CONF, ONLY: CPROGRAM, LCARTESIAN USE MODD_CONF_n, ONLY: CSTORAGE_TYPE @@ -73,15 +74,15 @@ INTEGER(KIND=IDCDF_KIND) :: STATUS CHARACTER(LEN=:),ALLOCATABLE :: YCOORDS LOGICAL :: GISCOORD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','called for field '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_write_nc4','called for field '//TRIM(TPFIELD%CMNHNAME)) ! IF(LEN_TRIM(TPFIELD%CSTDNAME)==0 .AND. LEN_TRIM(TPFIELD%CLONGNAME)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_ATTR_NC4','at least long_name or standard_name must be provided & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_write_nc4','at least long_name or standard_name must be provided & &to respect CF-convention for variable '//TRIM(TPFIELD%CMNHNAME)) ENDIF ! IF (TPFIELD%NDIMS>1 .AND. .NOT.PRESENT(KSHAPE)) & - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_WRITE_FIELD_ATTR_NC4','KSHAPE not provided for '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Field_attr_write_nc4','KSHAPE not provided for '//TRIM(TPFIELD%CMNHNAME)) ! IF (PRESENT(OISCOORD)) THEN GISCOORD = OISCOORD @@ -93,55 +94,55 @@ INCID = TPFILE%NNCID ! ! Standard_name attribute definition (CF convention) IF(LEN_TRIM(TPFIELD%CSTDNAME)==0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','TPFIELD%CSTDNAME not set for variable '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_write_nc4','TPFIELD%CSTDNAME not set for variable '//TRIM(TPFIELD%CMNHNAME)) ELSE STATUS = NF90_PUT_ATT(INCID, KVARID,'standard_name', TRIM(TPFIELD%CSTDNAME)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','standard_name for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','standard_name for ' & //trim(TPFIELD%CMNHNAME)) ENDIF ! ! Long_name attribute definition (CF convention) IF(LEN_TRIM(TPFIELD%CLONGNAME)==0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','TPFIELD%CLONGNAME not set for variable '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_write_nc4','TPFIELD%CLONGNAME not set for variable '//TRIM(TPFIELD%CMNHNAME)) ELSE STATUS = NF90_PUT_ATT(INCID, KVARID,'long_name', TRIM(TPFIELD%CLONGNAME)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','long_name for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','long_name for ' & //trim(TPFIELD%CMNHNAME)) ENDIF ! ! Canonical units attribute definition (CF convention) IF(LEN_TRIM(TPFIELD%CUNITS)==0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','TPFIELD%CUNITS not set for variable '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_write_nc4','TPFIELD%CUNITS not set for variable '//TRIM(TPFIELD%CMNHNAME)) ELSE STATUS = NF90_PUT_ATT(INCID, KVARID,'units', TRIM(TPFIELD%CUNITS)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','units for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','units for ' & //trim(TPFIELD%CMNHNAME)) ENDIF ! ! GRID attribute definition IF(TPFIELD%NGRID<0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','TPFIELD%NGRID not set for variable '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_write_nc4','TPFIELD%NGRID not set for variable '//TRIM(TPFIELD%CMNHNAME)) !Do not write GRID attribute if NGRID=0 ELSE IF (TPFIELD%NGRID>0) THEN STATUS = NF90_PUT_ATT(INCID, KVARID, 'grid', TPFIELD%NGRID) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','grid for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','grid for ' & //trim(TPFIELD%CMNHNAME)) ENDIF ! ! COMMENT attribute definition IF(LEN_TRIM(TPFIELD%CCOMMENT)==0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','TPFIELD%CCOMMENT not set for variable '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_write_nc4','TPFIELD%CCOMMENT not set for variable '//TRIM(TPFIELD%CMNHNAME)) ELSE STATUS = NF90_PUT_ATT(INCID, KVARID,'comment', TRIM(TPFIELD%CCOMMENT)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','comment for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','comment for ' & //trim(TPFIELD%CMNHNAME)) ENDIF ! ! Calendar (CF convention) IF(PRESENT(HCALENDAR)) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','CALENDAR provided for variable '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_write_nc4','CALENDAR provided for variable '//TRIM(TPFIELD%CMNHNAME)) STATUS = NF90_PUT_ATT(INCID, KVARID,'calendar', TRIM(HCALENDAR)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','calendar for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','calendar for ' & //trim(TPFIELD%CMNHNAME)) ENDIF ! @@ -172,14 +173,14 @@ IF (.NOT.GISCOORD) THEN CASE (8) !fw point (=uvw point) YCOORDS='latitude_f longitude_f' CASE DEFAULT - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_ATTR_NC4','invalid NGRID for variable '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_attr_write_nc4','invalid NGRID for variable '//TRIM(TPFIELD%CMNHNAME)) END SELECT ! STATUS = NF90_PUT_ATT(INCID, KVARID,'coordinates',YCOORDS) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','coordinates') + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','coordinates') DEALLOCATE(YCOORDS) ELSE - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_ATTR_NC4','coordinates not implemented for variable ' & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_write_nc4','coordinates not implemented for variable ' & //TRIM(TPFIELD%CMNHNAME)) END IF ELSE @@ -190,7 +191,7 @@ ENDIF ! IF(TPFIELD%NTYPE==TYPEINT .AND. TPFIELD%NDIMS>0) THEN IF (TPFIELD%NFILLVALUE>=TPFIELD%NVALIDMIN .AND. TPFIELD%NFILLVALUE<=TPFIELD%NVALIDMAX) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_ATTR_NC4','_FillValue is not outside of valid_min - valid_max'// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_write_nc4','_FillValue is not outside of valid_min - valid_max'// & 'interval for variable '//TRIM(TPFIELD%CMNHNAME)) ! ! Fillvalue (CF/COMODO convention) @@ -199,20 +200,20 @@ IF(TPFIELD%NTYPE==TYPEINT .AND. TPFIELD%NDIMS>0) THEN ! * it cannot be modified if some data has already been written (->check OEXISTED) IF(.NOT.OEXISTED) THEN STATUS = NF90_PUT_ATT(INCID, KVARID,'_FillValue', TPFIELD%NFILLVALUE) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','_FillValue') + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','_FillValue') END IF ! ! Valid_min/max (CF/COMODO convention) STATUS = NF90_PUT_ATT(INCID, KVARID,'valid_min', TPFIELD%NVALIDMIN) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','valid_min') + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','valid_min') ! STATUS = NF90_PUT_ATT(INCID, KVARID,'valid_max',TPFIELD%NVALIDMAX) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','valid_max') + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','valid_max') ENDIF ! IF(TPFIELD%NTYPE==TYPEREAL .AND. TPFIELD%NDIMS>0) THEN IF (TPFIELD%XFILLVALUE>=TPFIELD%XVALIDMIN .AND. TPFIELD%XFILLVALUE<=TPFIELD%XVALIDMAX) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_ATTR_NC4','_FillValue is not outside of valid_min - valid_max'// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_write_nc4','_FillValue is not outside of valid_min - valid_max'// & 'interval for variable '//TRIM(TPFIELD%CMNHNAME)) ! ! Fillvalue (CF/COMODO convention) @@ -225,7 +226,7 @@ IF(TPFIELD%NTYPE==TYPEREAL .AND. TPFIELD%NDIMS>0) THEN ELSE STATUS = NF90_PUT_ATT(INCID, KVARID,'_FillValue', TPFIELD%XFILLVALUE) END IF - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','_FillValue') + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','_FillValue') END IF ! ! Valid_min/max (CF/COMODO convention) @@ -234,20 +235,20 @@ IF(TPFIELD%NTYPE==TYPEREAL .AND. TPFIELD%NDIMS>0) THEN ELSE STATUS = NF90_PUT_ATT(INCID, KVARID,'valid_min', TPFIELD%XVALIDMIN) END IF - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','valid_min') + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','valid_min') ! IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN STATUS = NF90_PUT_ATT(INCID, KVARID,'valid_max', REAL(TPFIELD%XVALIDMAX,KIND=4)) ELSE STATUS = NF90_PUT_ATT(INCID, KVARID,'valid_max',TPFIELD%XVALIDMAX) END IF - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','valid_max') + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','valid_max') ENDIF ! -END SUBROUTINE IO_WRITE_FIELD_ATTR_NC4 +END SUBROUTINE IO_Field_attr_write_nc4 -SUBROUTINE IO_WRITE_FIELD_NC4_X0(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_X0(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -262,7 +263,7 @@ INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_X0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -270,21 +271,21 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (TPFIELD%LTIMEDEP) THEN ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable #if (MNH_REAL == 8) STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID) #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X0','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X0','NF90_DEF_VAR',trim(YVARNAME)) DEALLOCATE(IVDIMS) ELSE ! Define the scalar variable @@ -293,24 +294,24 @@ IF (STATUS /= NF90_NOERR) THEN #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X0','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X0','NF90_DEF_VAR',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X0','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X0','NF90_PUT_VAR',trim(YVARNAME),IRESP) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_X0 +END SUBROUTINE IO_Field_write_nc4_X0 -SUBROUTINE IO_WRITE_FIELD_NC4_X1(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_X1(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA),TARGET,INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -325,7 +326,7 @@ INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_X1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -333,19 +334,19 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(PFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -357,30 +358,30 @@ IF (STATUS /= NF90_NOERR) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) #endif END IF - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X1','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X1','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TPFILE%LNCCOMPRESS) THEN STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, TPFILE%NNCCOMPRESS_LEVEL) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X1','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X1','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X1','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X1','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_X1 +END SUBROUTINE IO_Field_write_nc4_X1 -SUBROUTINE IO_WRITE_FIELD_NC4_X2(TPFILE,TPFIELD,PFIELD,KRESP,KVERTLEVEL,KZFILE,OISCOORD) +SUBROUTINE IO_Field_write_nc4_X2(TPFILE,TPFIELD,PFIELD,KRESP,KVERTLEVEL,KZFILE,OISCOORD) ! TYPE(TFILEDATA),TARGET,INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -406,10 +407,10 @@ IRESP = 0 IF (PRESENT(KVERTLEVEL)) THEN WRITE(YSUFFIX,'(I4.4)') KVERTLEVEL IF (.NOT.PRESENT(KZFILE)) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_NC4_X2','KZFILE argument not provided') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_nc4_X2','KZFILE argument not provided') RETURN END IF - IF (KZFILE>TPFILE%NSUBFILES_IOZ) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_WRITE_FIELD_NC4_X2','KZFILE value too high') + IF (KZFILE>TPFILE%NSUBFILES_IOZ) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Field_write_nc4_X2','KZFILE value too high') TZFILE => TPFILE%TFILES_IOZ(KZFILE)%TFILE TZFIELD = TPFIELD TZFIELD%CMNHNAME = TRIM(TZFIELD%CMNHNAME)//YSUFFIX @@ -421,26 +422,26 @@ ELSE TZFIELD = TPFIELD ENDIF ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X2',TRIM(TZFILE%CNAME)//': writing '//TRIM(TZFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_X2',TRIM(TZFILE%CNAME)//': writing '//TRIM(TZFIELD%CMNHNAME)) ! ! Get the Netcdf file ID INCID = TZFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TZFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TZFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(PFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X2','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X2','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TZFILE, TZFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TZFILE, TZFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable IF (TZFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -452,30 +453,30 @@ IF (STATUS /= NF90_NOERR) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) #endif END IF - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X2','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X2','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TZFILE%LNCCOMPRESS) THEN STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, TZFILE%NNCCOMPRESS_LEVEL) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X2','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X2','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X2',TRIM(TZFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X2',TRIM(TZFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TZFILE,TZFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND),OISCOORD=OISCOORD) +CALL IO_Field_attr_write_nc4(TZFILE,TZFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND),OISCOORD=OISCOORD) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X2','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X2','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_X2 +END SUBROUTINE IO_Field_write_nc4_X2 -SUBROUTINE IO_WRITE_FIELD_NC4_X3(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_X3(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -491,7 +492,7 @@ INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X3',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_X3',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -499,19 +500,19 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(PFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X3','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X3','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -523,31 +524,31 @@ IF (STATUS /= NF90_NOERR) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) #endif END IF - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X3','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X3','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TPFILE%LNCCOMPRESS) THEN STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, TPFILE%NNCCOMPRESS_LEVEL) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X3','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X3','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X3','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X3','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_X3 +END SUBROUTINE IO_Field_write_nc4_X3 -SUBROUTINE IO_WRITE_FIELD_NC4_X4(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_X4(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -563,7 +564,7 @@ INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X4',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_X4',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -571,19 +572,19 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(PFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X4','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X4','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -595,31 +596,31 @@ IF (STATUS /= NF90_NOERR) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) #endif END IF - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X4','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X4','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TPFILE%LNCCOMPRESS) THEN STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, TPFILE%NNCCOMPRESS_LEVEL) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X4','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X4','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X4',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X4',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X4','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X4','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_X4 +END SUBROUTINE IO_Field_write_nc4_X4 -SUBROUTINE IO_WRITE_FIELD_NC4_X5(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_X5(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -635,7 +636,7 @@ INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X5',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_X5',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -643,19 +644,19 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(PFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X5','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X5','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -667,31 +668,31 @@ IF (STATUS /= NF90_NOERR) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) #endif END IF - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X5','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X5','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TPFILE%LNCCOMPRESS) THEN STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, TPFILE%NNCCOMPRESS_LEVEL) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X5','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X5','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X5',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X5',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X5','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X5','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_X5 +END SUBROUTINE IO_Field_write_nc4_X5 -SUBROUTINE IO_WRITE_FIELD_NC4_X6(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_X6(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -707,7 +708,7 @@ INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X6',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_X6',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -715,19 +716,19 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(PFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X6','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X6','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -739,36 +740,37 @@ IF (STATUS /= NF90_NOERR) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) #endif END IF - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X6','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X6','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TPFILE%LNCCOMPRESS) THEN STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, TPFILE%NNCCOMPRESS_LEVEL) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X6','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X6','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X6',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X6',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X6','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X6','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_X6 +END SUBROUTINE IO_Field_write_nc4_X6 -SUBROUTINE IO_WRITE_FIELD_NC4_N0(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_N0(TPFILE,TPFIELD,KFIELD,KRESP) ! -USE MODD_PARAMETERS_ll, ONLY : JPVEXT #if 0 -USE MODD_PARAMETERS_ll, ONLY : JPHEXT, JPVEXT -USE MODD_IO_ll, ONLY : LPACK,L1D,L2D +USE MODD_IO, ONLY: LPACK,L1D,L2D +USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT +#else +USE MODD_PARAMETERS_ll, ONLY: JPVEXT #endif ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -785,7 +787,7 @@ INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined TYPE(IOCDF), POINTER :: TZIOCDF ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_N0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_N0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -793,21 +795,21 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (TPFIELD%LTIMEDEP) THEN ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable #if ( MNH_INT == 4 ) STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT, IVDIMS, IVARID) #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVDIMS, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N0','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N0','NF90_DEF_VAR',trim(YVARNAME)) DEALLOCATE(IVDIMS) ELSE ! Define the scalar variable @@ -816,48 +818,49 @@ IF (STATUS /= NF90_NOERR) THEN #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N0','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N0','NF90_DEF_VAR',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_N0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N0','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N0','NF90_PUT_VAR',trim(YVARNAME),IRESP) ! ! Use IMAX, JMAX, KMAX to define DIM_NI, DIM_NJ, DIM_LEVEL ! /!\ Can only work if IMAX, JMAX or KMAX are written before any array ! #if 0 -IF (YVARNAME == 'IMAX' .AND. .NOT. ASSOCIATED(TPFILE%TNCDIMS%DIM_NI)) TPFILE%TNCDIMS%DIM_NI=>GETDIMCDF(TPFILE%TNCDIMS,KFIELD+2*JPHEXT,'X') +IF (YVARNAME == 'IMAX' .AND. .NOT. ASSOCIATED(TPFILE%TNCDIMS%DIM_NI)) TPFILE%TNCDIMS%DIM_NI=>IO_Dimcdf_get_nc4(TPFILE%TNCDIMS,KFIELD+2*JPHEXT,'X') IF (YVARNAME == 'JMAX' .AND. .NOT. ASSOCIATED(TPFILE%TNCDIMS%DIM_NJ)) THEN IF (LPACK .AND. L2D) THEN - TPFILE%TNCDIMS%DIM_NJ=>GETDIMCDF(TPFILE, 1,'Y') + TPFILE%TNCDIMS%DIM_NJ=>IO_Dimcdf_get_nc4(TPFILE, 1,'Y') ELSE - TPFILE%TNCDIMS%DIM_NJ=>GETDIMCDF(TPFILE, KFIELD+2*JPHEXT, 'Y') + TPFILE%TNCDIMS%DIM_NJ=>IO_Dimcdf_get_nc4(TPFILE, KFIELD+2*JPHEXT, 'Y') END IF END IF #endif IF (YVARNAME == 'KMAX' .AND. .NOT. ASSOCIATED(TPFILE%TNCDIMS%DIM_LEVEL)) THEN TZIOCDF => TPFILE%TNCDIMS - TZIOCDF%DIM_LEVEL=>GETDIMCDF(TPFILE,INT(KFIELD+2*JPVEXT,KIND=IDCDF_KIND),'Z') + TZIOCDF%DIM_LEVEL=>IO_Dimcdf_get_nc4(TPFILE,INT(KFIELD+2*JPVEXT,KIND=IDCDF_KIND),'Z') END IF KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_N0 +END SUBROUTINE IO_Field_write_nc4_N0 -SUBROUTINE IO_WRITE_FIELD_NC4_N1(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_N1(TPFILE,TPFIELD,KFIELD,KRESP) ! -USE MODD_PARAMETERS_ll, ONLY : JPVEXT #if 0 -USE MODD_PARAMETERS_ll, ONLY : JPHEXT, JPVEXT -USE MODD_IO_ll, ONLY : LPACK,L1D,L2D +USE MODD_IO, ONLY: LPACK,L1D,L2D +USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT +#else +USE MODD_PARAMETERS_ll, ONLY: JPVEXT #endif ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -873,7 +876,7 @@ INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_N1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_N1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -881,19 +884,19 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(KFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_N1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable #if ( MNH_INT == 4 ) @@ -901,25 +904,25 @@ IF (STATUS /= NF90_NOERR) THEN #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVDIMS, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N1','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N1','NF90_DEF_VAR',trim(YVARNAME)) ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_N1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N1','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N1','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_N1 +END SUBROUTINE IO_Field_write_nc4_N1 -SUBROUTINE IO_WRITE_FIELD_NC4_N2(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_N2(TPFILE,TPFIELD,KFIELD,KRESP) ! TYPE(TFILEDATA),TARGET,INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -936,26 +939,26 @@ LOGICAL :: GEXISTED !True if variable was already defined ! IRESP = 0 ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_N2',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_N2',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! ! Get the Netcdf file ID INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(KFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N2','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_N2','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable #if ( MNH_INT == 4 ) @@ -963,29 +966,29 @@ IF (STATUS /= NF90_NOERR) THEN #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVDIMS, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N2','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N2','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TPFILE%LNCCOMPRESS) THEN STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, TPFILE%NNCCOMPRESS_LEVEL) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N2','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N2','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_N2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFIELD),KIND=IDCDF_KIND)) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFIELD),KIND=IDCDF_KIND)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N2','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N2','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_N2 +END SUBROUTINE IO_Field_write_nc4_N2 -SUBROUTINE IO_WRITE_FIELD_NC4_N3(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_N3(TPFILE,TPFIELD,KFIELD,KRESP) ! TYPE(TFILEDATA),TARGET, INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -1002,26 +1005,26 @@ LOGICAL :: GEXISTED !True if variable was already defined ! IRESP = 0 ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_N3',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_N3',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! ! Get the Netcdf file ID INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(KFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N3','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_N3','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable #if ( MNH_INT == 4 ) @@ -1029,31 +1032,31 @@ IF (STATUS /= NF90_NOERR) THEN #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVDIMS, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N3','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N3','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TPFILE%LNCCOMPRESS) THEN STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, TPFILE%NNCCOMPRESS_LEVEL) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N3','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N3','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_N3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFIELD),KIND=IDCDF_KIND)) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFIELD),KIND=IDCDF_KIND)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N3','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N3','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_N3 +END SUBROUTINE IO_Field_write_nc4_N3 -SUBROUTINE IO_WRITE_FIELD_NC4_L0(TPFILE,TPFIELD,OFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_L0(TPFILE,TPFIELD,OFIELD,KRESP) ! -USE MODD_PARAMETERS_ll, ONLY : JPVEXT +USE MODD_PARAMETERS_ll, ONLY: JPVEXT ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -1069,7 +1072,7 @@ INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_L0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_L0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -1077,28 +1080,28 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (TPFIELD%LTIMEDEP) THEN ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(OFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(OFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable ! Use of NF90_INT1 datatype (=NF90_BYTE) that is enough to store a boolean STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT1, IVDIMS, IVARID) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_L0','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_L0','NF90_DEF_VAR',trim(YVARNAME)) DEALLOCATE(IVDIMS) ELSE ! Define the scalar variable ! Use of NF90_INT1 datatype (=NF90_BYTE) that is enough to store a boolean STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT1, IVARID) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_L0','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_L0','NF90_DEF_VAR',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_L0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_L0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF !Convert LOGICAL to INTEGER (LOGICAL format not supported by netCDF files) @@ -1109,17 +1112,17 @@ ELSE END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, IFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_L0','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_L0','NF90_PUT_VAR',trim(YVARNAME),IRESP) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_L0 +END SUBROUTINE IO_Field_write_nc4_L0 -SUBROUTINE IO_WRITE_FIELD_NC4_L1(TPFILE,TPFIELD,OFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_L1(TPFILE,TPFIELD,OFIELD,KRESP) ! -USE MODD_PARAMETERS_ll, ONLY : JPVEXT +USE MODD_PARAMETERS_ll, ONLY: JPVEXT ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -1135,7 +1138,7 @@ INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_L1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_L1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -1143,27 +1146,27 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(OFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_L1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_L1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(OFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(OFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable ! Use of NF90_INT1 datatype (=NF90_BYTE) that is enough to store a boolean STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT1, IVDIMS, IVARID) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_L1','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_L1','NF90_DEF_VAR',trim(YVARNAME)) ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_L1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_L1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF !Convert LOGICAL to INTEGER (LOGICAL format not supported by netCDF files) @@ -1174,18 +1177,18 @@ ELSEWHERE END WHERE ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, IFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_L1','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_L1','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_L1 +END SUBROUTINE IO_Field_write_nc4_L1 -SUBROUTINE IO_WRITE_FIELD_NC4_C0(TPFILE,TPFIELD,HFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_C0(TPFILE,TPFIELD,HFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -1201,7 +1204,7 @@ INTEGER :: IRESP, ILEN CHARACTER(LEN=:),ALLOCATABLE :: YFIELD LOGICAL :: GEXISTED !True if variable was already defined ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_C0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_C0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 !Store the character string in a string of a size multiple of NSTRINGCHUNKSIZE @@ -1215,39 +1218,39 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! IF (TPFIELD%LTIMEDEP) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_C0',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_C0',TRIM(TPFILE%CNAME)// & ': time dependent variable not (yet) possible for 0D variable '//TRIM(TPFIELD%CMNHNAME)) ! ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf string dimensions id - IVDIMS(1) = GETSTRDIMID(TPFILE,INT(ILEN,KIND=IDCDF_KIND)) + IVDIMS(1) = IO_Strdimid_get_nc4(TPFILE,INT(ILEN,KIND=IDCDF_KIND)) ! Define the variable STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_CHAR, IVDIMS, IVARID) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_C0','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_C0','NF90_DEF_VAR',trim(YVARNAME)) ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_C0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_C0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ALLOCATE(CHARACTER(LEN=ILEN)::YFIELD) YFIELD(1:LEN_TRIM(HFIELD))=TRIM(HFIELD) YFIELD(LEN_TRIM(HFIELD)+1:)=' ' ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, YFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_C0','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_C0','NF90_PUT_VAR',trim(YVARNAME),IRESP) DEALLOCATE(YFIELD) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_C0 +END SUBROUTINE IO_Field_write_nc4_C0 -SUBROUTINE IO_WRITE_FIELD_NC4_C1(TPFILE,TPFIELD,HFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_C1(TPFILE,TPFIELD,HFIELD,KRESP) ! Modif ! J.Escobar : 25/04/2018 : missing 'IF ALLOCATED(IVDIMSTMP)' DEALLOCATE !---------------------------------------------------------------- @@ -1268,7 +1271,7 @@ INTEGER(KIND=IDCDF_KIND) :: ILEN, ISIZE INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_C1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_C1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 @@ -1280,11 +1283,11 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! IF (TPFIELD%LTIMEDEP) THEN !This is an error (+return) and not a warning because IVDIMSTMP could be of size 2 if LTIMEDEP=T - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_NC4_C1',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_nc4_C1',TRIM(TPFILE%CNAME)// & ': time dependent variable not (yet) possible for '//TRIM(TPFIELD%CMNHNAME)) RETURN END IF @@ -1293,30 +1296,30 @@ END IF STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf string dimensions id - IVDIMS(1) = GETSTRDIMID(TPFILE,ILEN) - CALL FILLVDIMS(TPFILE, TPFIELD, (/ISIZE/), IVDIMSTMP) + IVDIMS(1) = IO_Strdimid_get_nc4(TPFILE,ILEN) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, (/ISIZE/), IVDIMSTMP) IVDIMS(2) = IVDIMSTMP(1) ! Define the variable STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_CHAR, IVDIMS, IVARID) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_C1','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_C1','NF90_DEF_VAR',trim(YVARNAME)) ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_C1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_C1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, HFIELD(1:ISIZE)(1:ILEN), START=(/IONE,IONE/), COUNT=(/ILEN,ISIZE/)) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_C1','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_C1','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMSTMP)) DEALLOCATE(IVDIMSTMP) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_C1 +END SUBROUTINE IO_Field_write_nc4_C1 -SUBROUTINE IO_WRITE_FIELD_NC4_T0(TPFILE,TPFIELD,TPDATA,KRESP) +SUBROUTINE IO_Field_write_nc4_T0(TPFILE,TPFIELD,TPDATA,KRESP) ! USE MODD_TIME_n, ONLY: TDTMOD USE MODD_TYPE_DATE @@ -1340,7 +1343,7 @@ LOGICAL :: GEXISTED !True if variable was already REAL :: ZDELTATIME !Distance in seconds since reference date and time TYPE(DATE_TIME) :: TZREF ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_T0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! @@ -1351,14 +1354,14 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! TZFIELD%CMNHNAME = TRIM(YVARNAME) ! ! Model beginning date (TDTMOD%TDATE) is used as the reference date ! Reference time is set to 0. IF (.NOT.ASSOCIATED(TDTMOD)) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_T0',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_T0',TRIM(TPFILE%CNAME)// & ': '//TRIM(TZFIELD%CMNHNAME)//': DTMOD is not associated and not known. Reference date set to 2000/01/01') TZREF%TDATE%YEAR = 2000 TZREF%TDATE%MONTH = 1 @@ -1373,7 +1376,7 @@ WRITE(YUNITS,'( "seconds since ",I4.4,"-",I2.2,"-",I2.2," 00:00:00 +0:00" )') & TZFIELD%CUNITS = TRIM(YUNITS) ! IF (TPFIELD%LTIMEDEP) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_T0',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_T0',TRIM(TPFILE%CNAME)// & ': time dependent variable not (yet) possible for 0D variable '//TRIM(TPFIELD%CMNHNAME)) ! ! The variable should not already exist but who knows ? @@ -1385,21 +1388,21 @@ IF (STATUS /= NF90_NOERR) THEN #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_T0','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_T0','NF90_DEF_VAR',trim(YVARNAME)) ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TZFIELD,IVARID,GEXISTED,HCALENDAR='standard') +CALL IO_Field_attr_write_nc4(TPFILE,TZFIELD,IVARID,GEXISTED,HCALENDAR='standard') ! ! Compute the temporal distance from reference CALL DATETIME_DISTANCE(TZREF,TPDATA,ZDELTATIME) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, ZDELTATIME) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_T0','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_T0','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF (IRESP/=0) THEN KRESP = IRESP @@ -1421,19 +1424,19 @@ TZFIELD%CCOMMENT = 'YYYYMMDD' STATUS = NF90_INQ_VARID(INCID, TZFIELD%CMNHNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(ITDATE),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(ITDATE),KIND=IDCDF_KIND), IVDIMS) ! Define the variable STATUS = NF90_DEF_VAR(INCID, TZFIELD%CMNHNAME, NF90_INT, IVDIMS, IVARID) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_T0','NF90_DEF_VAR',trim(TZFIELD%CMNHNAME)) - CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TZFIELD,IVARID,GEXISTED) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_T0','NF90_DEF_VAR',trim(TZFIELD%CMNHNAME)) + CALL IO_Field_attr_write_nc4(TPFILE,TZFIELD,IVARID,GEXISTED) ELSE - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(TZFIELD%CMNHNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(TZFIELD%CMNHNAME)//' already defined') END IF ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, ITDATE) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_T0','NF90_PUT_VAR',trim(TZFIELD%CMNHNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_T0','NF90_PUT_VAR',trim(TZFIELD%CMNHNAME),IRESP) IF (IRESP/=0) THEN KRESP = IRESP @@ -1456,22 +1459,22 @@ IF (STATUS /= NF90_NOERR) THEN #else STATUS = NF90_DEF_VAR(INCID, TZFIELD%CMNHNAME, NF90_FLOAT, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_T0','NF90_DEF_VAR',trim(TZFIELD%CMNHNAME)) - CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TZFIELD,IVARID,GEXISTED) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_T0','NF90_DEF_VAR',trim(TZFIELD%CMNHNAME)) + CALL IO_Field_attr_write_nc4(TPFILE,TZFIELD,IVARID,GEXISTED) ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(TZFIELD%CMNHNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(TZFIELD%CMNHNAME)//' already defined') END IF ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, TPDATA%TIME) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_T0','NF90_PUT_VAR',trim(TZFIELD%CMNHNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_T0','NF90_PUT_VAR',trim(TZFIELD%CMNHNAME),IRESP) #endif KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_T0 +END SUBROUTINE IO_Field_write_nc4_T0 -SUBROUTINE IO_WRITE_COORDVAR_NC4(TPFILE,HPROGRAM_ORIG) +SUBROUTINE IO_Coordvar_write_nc4(TPFILE,HPROGRAM_ORIG) USE MODD_CONF, ONLY: CPROGRAM, LCARTESIAN USE MODD_CONF_n, ONLY: CSTORAGE_TYPE USE MODD_GRID, ONLY: XLATORI, XLONORI @@ -1500,7 +1503,7 @@ REAL,DIMENSION(:,:),POINTER :: ZLAT, ZLON type(dimcdf), pointer :: tzdim_ni, tzdim_nj, tzdim_ni_u, tzdim_nj_u, tzdim_ni_v, tzdim_nj_v TYPE(IOCDF), POINTER :: PIOCDF -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_COORDVAR_NC4','called for '//TRIM(TPFILE%CNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Coordvar_write_nc4','called for '//TRIM(TPFILE%CNAME)) ZXHAT => NULL() ZYHAT => NULL() @@ -1704,33 +1707,33 @@ SUBROUTINE WRITE_HOR_COORD(TDIM,HLONGNAME,HSTDNAME,HAXIS,PSHIFT,KBOUNDLOW,KBOUND #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIM, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_HOR_COORD','NF90_DEF_VAR',trim(YVARNAME)) ELSE CALL PRINT_MSG(NVERB_ERROR,'IO','WRITE_HOR_COORD',TRIM(YVARNAME)//' already defined') END IF ! Write metadata STATUS = NF90_PUT_ATT(INCID, IVARID, 'long_name',HLONGNAME) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','long_name for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','long_name for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'standard_name',HSTDNAME) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','standard_name for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','standard_name for '//trim(YVARNAME)) IF (PRESENT(PCOORDS)) THEN STATUS = NF90_PUT_ATT(INCID, IVARID, 'units','m') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','units for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','units for '//trim(YVARNAME)) END IF STATUS = NF90_PUT_ATT(INCID, IVARID, 'axis',HAXIS) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','axis for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','axis for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'c_grid_axis_shift',PSHIFT) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','c_grid_axis_shift for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','c_grid_axis_shift for ' & //trim(YVARNAME)) WRITE(YRANGE,'( I0,":",I0 )') 1+KBOUNDLOW,ISIZE-KBOUNDHIGH STATUS = NF90_PUT_ATT(INCID, IVARID, 'c_grid_dynamic_range',TRIM(YRANGE)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','c_grid_dynamic_range for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','c_grid_dynamic_range for ' & //trim(YVARNAME)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, ZTAB) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_PUT_VAR',trim(YVARNAME),IRESP) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_HOR_COORD','NF90_PUT_VAR',trim(YVARNAME),IRESP) END IF IF (GALLOC) DEALLOCATE(ZTAB) @@ -1775,9 +1778,9 @@ SUBROUTINE WRITE_HOR_2DCOORD(PX,PY,HLAT,HLON) ENDIF ! CALL FIND_FIELD_ID_FROM_MNHNAME(HLAT,ID,IRESP) - CALL IO_WRITE_FIELD_NC4_X2(TPFILE,TFIELDLIST(ID),ZTAB1,IRESP,OISCOORD=.TRUE.) + CALL IO_Field_write_nc4_X2(TPFILE,TFIELDLIST(ID),ZTAB1,IRESP,OISCOORD=.TRUE.) CALL FIND_FIELD_ID_FROM_MNHNAME(HLON,ID,IRESP) - CALL IO_WRITE_FIELD_NC4_X2(TPFILE,TFIELDLIST(ID),ZTAB2,IRESP,OISCOORD=.TRUE.) + CALL IO_Field_write_nc4_X2(TPFILE,TFIELDLIST(ID),ZTAB2,IRESP,OISCOORD=.TRUE.) END IF IF (GALLOC1) DEALLOCATE(ZTAB1) @@ -1815,56 +1818,56 @@ SUBROUTINE WRITE_VER_COORD(TDIM,HLONGNAME,HSTDNAME,HCOMPNAME,PSHIFT,KBOUNDLOW,KB #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIM, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_DEF_VAR',trim(YVARNAME)) ELSE CALL PRINT_MSG(NVERB_ERROR,'IO','WRITE_VER_COORD',TRIM(YVARNAME)//' already defined') END IF ! Write metadata STATUS = NF90_PUT_ATT(INCID, IVARID, 'long_name',HLONGNAME) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','long_name for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','long_name for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'standard_name',HSTDNAME) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','standard_name for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','standard_name for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'units','m') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','units for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','units for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'axis','Z') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','axis for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','axis for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'positive','up') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','positive for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','positive for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'c_grid_axis_shift',PSHIFT) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','c_grid_axis_shift for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','c_grid_axis_shift for ' & //trim(YVARNAME)) WRITE(YRANGE,'( I0,":",I0 )') 1+KBOUNDLOW,ISIZE-KBOUNDHIGH STATUS = NF90_PUT_ATT(INCID, IVARID, 'c_grid_dynamic_range',TRIM(YRANGE)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','c_grid_dynamic_range for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','c_grid_dynamic_range for ' & //trim(YVARNAME)) ! IF (GSLEVE) THEN !Remark: ZS, ZSMT and ZTOP in the formula are the same for mass point or flux point STATUS = NF90_PUT_ATT(INCID, IVARID,'formula_terms','s: '//TRIM(YVARNAME)// & ' height: ZTOP oro_ls: ZSMT oro: ZS len1: LEN1 len2: LEN2') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','formula_terms for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','formula_terms for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'formula_definition','z(n,k,j,i)=s(k)'// & '+ oro_ls(j,i)*sinh((height/len1)**1.35-(s(k)/len1)**1.35)/sinh((s(k)/len1)**1.35)'// & '+(oro(j,i)-oro_ls(j,i))*sinh((height/len2)**1.35-(s(k)/len2)**1.35)/sinh((s(k)/len2)**1.35)') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','formula_definition for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','formula_definition for ' & //trim(YVARNAME)) ELSE !Remark: ZS and ZTOP in the formula are the same for mass point or flux point STATUS = NF90_PUT_ATT(INCID, IVARID, 'formula_terms','s: '//TRIM(YVARNAME)//' height: ZTOP orog: ZS') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','formula_terms for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','formula_terms for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'formula_definition','z(n,k,j,i)=s(k)*(height-orog(j,i))/height+orog(j,i)') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','formula_definition for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','formula_definition for ' & //trim(YVARNAME)) ENDIF ! STATUS = NF90_PUT_ATT(INCID, IVARID, 'computed_standard_name',HCOMPNAME) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','computed_standard_name for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','computed_standard_name for ' & //trim(YVARNAME)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PCOORDS) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_VAR',trim(YVARNAME)) END SUBROUTINE WRITE_VER_COORD @@ -1899,24 +1902,24 @@ SUBROUTINE WRITE_TIME_COORD(TDIM) #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIM, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_TIME_COORD','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_TIME_COORD','NF90_DEF_VAR',trim(YVARNAME)) ELSE CALL PRINT_MSG(NVERB_ERROR,'IO','WRITE_TIME_COORD',TRIM(YVARNAME)//' already defined') END IF ! Write metadata STATUS = NF90_PUT_ATT(INCID, IVARID, 'long_name','time axis') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','long_name for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','long_name for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'standard_name','time') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','standard_name for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','standard_name for '//trim(YVARNAME)) WRITE(YUNITS,'( "seconds since ",I4.4,"-",I2.2,"-",I2.2," 00:00:00 +0:00" )') & TDTMOD%TDATE%YEAR,TDTMOD%TDATE%MONTH,TDTMOD%TDATE%DAY STATUS = NF90_PUT_ATT(INCID, IVARID, 'units',YUNITS) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','units for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','units for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'axis','T') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','axis for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','axis for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID,'calendar','standard') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','calendar for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','calendar for '//trim(YVARNAME)) ! Model beginning date (TDTMOD%TDATE) is used as the reference date ! Reference time is set to 0. @@ -1926,15 +1929,15 @@ SUBROUTINE WRITE_TIME_COORD(TDIM) CALL DATETIME_DISTANCE(TZREF,TDTCUR,ZDELTATIME) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, ZDELTATIME) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_TIME_COORD','NF90_PUT_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_TIME_COORD','NF90_PUT_VAR',trim(YVARNAME)) END IF END SUBROUTINE WRITE_TIME_COORD -END SUBROUTINE IO_WRITE_COORDVAR_NC4 +END SUBROUTINE IO_Coordvar_write_nc4 -SUBROUTINE IO_WRITE_HEADER_NC4(TPFILE) +SUBROUTINE IO_Header_write_nc4(TPFILE) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File structure ! @@ -1942,30 +1945,30 @@ INTEGER(KIND=IDCDF_KIND) :: ISTATUS ! IF (TRIM(TPFILE%CFORMAT)/='NETCDF4' .AND. TRIM(TPFILE%CFORMAT)/='LFICDF4') RETURN ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_HEADER_NC4','called for file '//TRIM(TPFILE%CNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Header_write_nc4','called for file '//TRIM(TPFILE%CNAME)) ! IF (TPFILE%LMASTER) THEN ISTATUS = NF90_PUT_ATT(TPFILE%NNCID, NF90_GLOBAL, 'Conventions', 'CF-1.7 COMODO-1.4') - IF (ISTATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(istatus,'IO_FILE_WRITE_HEADER','NF90_PUT_ATT','Conventions') + IF (ISTATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(istatus,'IO_FILE_WRITE_HEADER','NF90_PUT_ATT','Conventions') #if (MNH_REAL == 8) ISTATUS = NF90_PUT_ATT(TPFILE%NNCID, NF90_GLOBAL, 'MNH_REAL', '8') #else ISTATUS = NF90_PUT_ATT(TPFILE%NNCID, NF90_GLOBAL, 'MNH_REAL', '4') #endif - IF (ISTATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(istatus,'IO_FILE_WRITE_HEADER','NF90_PUT_ATT','MNH_REAL') + IF (ISTATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(istatus,'IO_FILE_WRITE_HEADER','NF90_PUT_ATT','MNH_REAL') #if (MNH_INT == 4) ISTATUS = NF90_PUT_ATT(TPFILE%NNCID, NF90_GLOBAL, 'MNH_INT', '4') #else ISTATUS = NF90_PUT_ATT(TPFILE%NNCID, NF90_GLOBAL, 'MNH_INT', '8') #endif - IF (ISTATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(istatus,'IO_FILE_WRITE_HEADER','NF90_PUT_ATT','MNH_INT') + IF (ISTATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(istatus,'IO_FILE_WRITE_HEADER','NF90_PUT_ATT','MNH_INT') !title !history - CALL IO_APPEND_HISTORY_NC4(TPFILE) + CALL IO_History_append_nc4(TPFILE) !institution @@ -1976,12 +1979,12 @@ IF (TPFILE%LMASTER) THEN !references END IF ! -END SUBROUTINE IO_WRITE_HEADER_NC4 +END SUBROUTINE IO_Header_write_nc4 -SUBROUTINE IO_APPEND_HISTORY_NC4(TPFILE) +SUBROUTINE IO_History_append_nc4(TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File structure ! @@ -1995,7 +1998,7 @@ INTEGER,DIMENSION(8) :: IDATETIME ! IF (TRIM(TPFILE%CFORMAT)/='NETCDF4' .AND. TRIM(TPFILE%CFORMAT)/='LFICDF4') RETURN ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_APPEND_HISTORY_NC4','called for file '//TRIM(TPFILE%CNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_History_append_nc4','called for file '//TRIM(TPFILE%CNAME)) ! IF (TPFILE%LMASTER) THEN !Check if history attribute already exists in file and read it @@ -2003,7 +2006,7 @@ IF (TPFILE%LMASTER) THEN IF (ISTATUS == NF90_NOERR) THEN ALLOCATE(CHARACTER(LEN=ILEN_PREV) :: YHISTORY_PREV) ISTATUS = NF90_GET_ATT(TPFILE%NNCID, NF90_GLOBAL, 'history', YHISTORY_PREV) - IF (ISTATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(ISTATUS,'IO_APPEND_HISTORY_NC4','NF90_GET_ATT','history') + IF (ISTATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(ISTATUS,'IO_History_append_nc4','NF90_GET_ATT','history') YHISTORY_PREV = YHISTORY_PREV ELSE ILEN_PREV = 0 @@ -2029,10 +2032,10 @@ IF (TPFILE%LMASTER) THEN YHISTORY = YHISTORY_NEW//NEW_LINE('A')//YHISTORY_PREV END IF ISTATUS = NF90_PUT_ATT(TPFILE%NNCID, NF90_GLOBAL, 'history', YHISTORY ) - IF (ISTATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(istatus,'IO_APPEND_HISTORY_NC4','NF90_PUT_ATT','history') + IF (ISTATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(istatus,'IO_History_append_nc4','NF90_PUT_ATT','history') END IF -END SUBROUTINE IO_APPEND_HISTORY_NC4 +END SUBROUTINE IO_History_append_nc4 end module mode_io_write_nc4 @@ -2040,22 +2043,22 @@ end module mode_io_write_nc4 ! ! External dummy subroutines ! -subroutine io_write_coordvar_nc4(a, b) +subroutine IO_Coordvar_write_nc4(a, b) use mode_msg integer :: a, b -CALL PRINT_MSG(NVERB_ERROR,'IO','io_write_coordvar_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_write_coordvar_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Coordvar_write_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Coordvar_write_nc4 ! -subroutine io_write_field_nc4(a, b, c, d, e, f, g) +subroutine IO_Field_write_nc4(a, b, c, d, e, f, g) use mode_msg integer :: a, b, c, d, e, f, g -CALL PRINT_MSG(NVERB_ERROR,'IO','io_write_field_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_write_field_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Field_write_nc4 ! -subroutine io_write_header_nc4(a) +subroutine IO_Header_write_nc4(a) use mode_msg integer :: a -CALL PRINT_MSG(NVERB_ERROR,'IO','io_write_header_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_write_header_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Header_write_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Header_write_nc4 ! #endif diff --git a/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 b/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 index 72b5dc99b..19fcea8e5 100644 --- a/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1999-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- @@ -1666,14 +1666,11 @@ ! ------------ ! USE MODD_CONF -! USE MODD_DIM_n USE MODD_DYN_n - USE MODD_IO_ll, ONLY : ISP,GSMONOPROC -! USE MODE_ll - USE MODE_IO_ll - USE MODE_MPPDB + USE MODD_IO, ONLY: ISP + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODE_DISTRIB_LB - USE MODD_PARAMETERS_ll, ONLY : JPHEXT ! IMPLICIT NONE ! diff --git a/src/LIB/SURCOUCHE/src/mode_mppdb.f90 b/src/LIB/SURCOUCHE/src/mode_mppdb.f90 index 575fb7b8e..ae15313af 100644 --- a/src/LIB/SURCOUCHE/src/mode_mppdb.f90 +++ b/src/LIB/SURCOUCHE/src/mode_mppdb.f90 @@ -610,13 +610,14 @@ CONTAINS SUBROUTINE MPPDB_CHECKLB(PLB,MESSAGE,PRECISION,HLBTYPE,KRIM) - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_VAR_ll , ONLY : MPI_PRECISION , NMNH_COMM_WORLD - USE MODD_IO_ll, ONLY : ISP,ISNPROC,GSMONOPROC,LPACK,L2D - USE MODD_MPIF , ONLY : MPI_INTEGER, MPI_STATUS_IGNORE + USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, L2D, LPACK + USE MODD_MPIF, ONLY: MPI_INTEGER, MPI_STATUS_IGNORE + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_VAR_ll, ONLY: MPI_PRECISION, NMNH_COMM_WORLD USE MODE_DISTRIB_LB - USE MODE_TOOLS_ll, ONLY : GET_GLOBALDIMS_ll + USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll + IMPLICIT NONE REAL, DIMENSION(:,:,:) , TARGET :: PLB diff --git a/src/LIB/SURCOUCHE/src/mode_msg.f90 b/src/LIB/SURCOUCHE/src/mode_msg.f90 index ad5cd4191..27d206a3a 100644 --- a/src/LIB/SURCOUCHE/src/mode_msg.f90 +++ b/src/LIB/SURCOUCHE/src/mode_msg.f90 @@ -10,7 +10,7 @@ !----------------------------------------------------------------- MODULE MODE_MSG ! -USE MODD_IO_ll, ONLY : NVERB_FATAL,NVERB_ERROR,NVERB_WARNING,NVERB_INFO,NVERB_DEBUG +USE MODD_IO, ONLY: NVERB_FATAL, NVERB_ERROR, NVERB_WARNING, NVERB_INFO, NVERB_DEBUG ! IMPLICIT NONE ! @@ -18,18 +18,16 @@ CONTAINS ! SUBROUTINE PRINT_MSG(KVERB,HDOMAIN,HSUBR,HMSG) ! -USE ISO_FORTRAN_ENV, ONLY : ERROR_UNIT, OUTPUT_UNIT +USE ISO_FORTRAN_ENV, ONLY: ERROR_UNIT, OUTPUT_UNIT ! -USE MODD_CONF, ONLY : CPROGRAM -USE MODD_IO_ll, ONLY : NIO_VERB,NIO_ABORT_LEVEL,NGEN_VERB,NGEN_ABORT_LEVEL, & - LVERB_OUTLST, LVERB_STDOUT, LVERB_ALLPRC, TFILE_OUTPUTLISTING -USE MODD_LUNIT, ONLY : TLUOUT0 -USE MODD_VAR_ll, ONLY : IP, NMNH_COMM_WORLD +USE MODD_CONF, ONLY: CPROGRAM +USE MODD_IO, ONLY: NIO_VERB, NIO_ABORT_LEVEL, NGEN_VERB, NGEN_ABORT_LEVEL, & + LVERB_OUTLST, LVERB_STDOUT, LVERB_ALLPRC, TFILE_OUTPUTLISTING +USE MODD_LUNIT, ONLY: TLUOUT0 +USE MODD_VAR_ll, ONLY: IP, NMNH_COMM_WORLD ! use modi_tools_c ! -!USE MODE_FM, ONLY : IO_FILE_CLOSE_ll -! INTEGER, INTENT(IN) :: KVERB !Verbosity level CHARACTER(LEN=*),INTENT(IN) :: HDOMAIN !Domain/category of message CHARACTER(LEN=*),INTENT(IN) :: HSUBR !Subroutine/function name diff --git a/src/LIB/SURCOUCHE/src/mode_scatter.f90 b/src/LIB/SURCOUCHE/src/mode_scatter.f90 index cc933744a..8ee7b755f 100644 --- a/src/LIB/SURCOUCHE/src/mode_scatter.f90 +++ b/src/LIB/SURCOUCHE/src/mode_scatter.f90 @@ -1,16 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- #ifdef MNH_MPI_DOUBLE_PRECISION #define MPI_FLOAT MPI_DOUBLE_PRECISION @@ -32,8 +24,6 @@ IMPLICIT NONE PRIVATE -!INCLUDE 'mpif.h' - INTERFACE SCATTER_XXFIELD MODULE PROCEDURE SCATTERXX_X1,SCATTERXX_X2,SCATTERXX_X3& & ,SCATTERXX_X4,SCATTERXX_X5,SCATTERXX_X6,& @@ -50,10 +40,10 @@ PUBLIC SCATTER_XXFIELD,SCATTER_XYFIELD,GET_DOMREAD_ll CONTAINS SUBROUTINE SCATTERXX_X1(HDIR,PSEND,PRECV,KROOT,KCOMM, TPSPLITTING) -USE MODD_IO_ll, ONLY : ISP, ISNPROC -USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll -USE MODD_PARAMETERS_ll, ONLY : JPHEXT +USE MODD_IO, ONLY: ISP, ISNPROC +USE MODD_PARAMETERS_ll, ONLY: JPHEXT +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:), TARGET, INTENT(IN) :: PSEND @@ -61,14 +51,11 @@ REAL,DIMENSION(:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM TYPE(ZONE_ll), DIMENSION(ISNPROC), OPTIONAL :: TPSPLITTING ! splitting of the domain - -!INCLUDE 'mpif.h' INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:), POINTER :: TX1DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS INTEGER,ALLOCATABLE,DIMENSION(:) :: REQ_TAB INTEGER :: NB_REQ @@ -122,9 +109,9 @@ END IF END SUBROUTINE SCATTERXX_X1 SUBROUTINE SCATTERXX_X2(HDIR,PSEND,PRECV,KROOT,KCOMM, TPSPLITTING) -USE MODD_IO_ll, ONLY : ISP, ISNPROC -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll -USE MODD_PARAMETERS_ll, ONLY : JPHEXT +USE MODD_IO, ONLY: ISP, ISNPROC +USE MODD_PARAMETERS_ll, ONLY: JPHEXT +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:), TARGET,INTENT(IN) :: PSEND @@ -133,13 +120,10 @@ INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM TYPE(ZONE_ll), DIMENSION(ISNPROC), OPTIONAL :: TPSPLITTING ! splitting of the domain -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:), POINTER :: TX2DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -172,7 +156,7 @@ END IF END SUBROUTINE SCATTERXX_X2 SUBROUTINE SCATTERXX_X3(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:,:), TARGET, INTENT(IN) :: PSEND @@ -180,13 +164,10 @@ REAL,DIMENSION(:,:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:,:), POINTER :: TX2DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -212,7 +193,7 @@ END IF END SUBROUTINE SCATTERXX_X3 SUBROUTINE SCATTERXX_X4(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:,:,:),TARGET,INTENT(IN) :: PSEND @@ -220,13 +201,10 @@ REAL,DIMENSION(:,:,:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:,:,:), POINTER :: TX2DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -252,7 +230,7 @@ END IF END SUBROUTINE SCATTERXX_X4 SUBROUTINE SCATTERXX_X5(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:,:,:,:),TARGET,INTENT(IN) :: PSEND @@ -260,14 +238,11 @@ REAL,DIMENSION(:,:,:,:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:,:,:,:), POINTER :: TX2DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS - + IF (ISP == KROOT) THEN DO JI = 1,ISNPROC CALL GET_DOMREAD_ll(JI,IXO,IXE,IYO,IYE) @@ -292,7 +267,7 @@ END IF END SUBROUTINE SCATTERXX_X5 SUBROUTINE SCATTERXX_X6(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:,:,:,:,:),TARGET,INTENT(IN) :: PSEND @@ -300,13 +275,10 @@ REAL,DIMENSION(:,:,:,:,:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:,:,:,:,:), POINTER :: TX2DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -332,7 +304,7 @@ END IF END SUBROUTINE SCATTERXX_X6 SUBROUTINE SCATTERXX_N1(HDIR,KSEND,KRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR INTEGER,DIMENSION(:),TARGET,INTENT(IN) :: KSEND @@ -340,13 +312,10 @@ INTEGER,DIMENSION(:), INTENT(INOUT):: KRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE INTEGER, DIMENSION(:), POINTER :: TI2DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -372,7 +341,7 @@ END IF END SUBROUTINE SCATTERXX_N1 SUBROUTINE SCATTERXX_N2(HDIR,KSEND,KRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR INTEGER, DIMENSION(:,:),TARGET,INTENT(IN) :: KSEND @@ -380,13 +349,10 @@ INTEGER, DIMENSION(:,:), INTENT(INOUT):: KRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE INTEGER, DIMENSION(:,:), POINTER :: TI2DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -412,21 +378,18 @@ END IF END SUBROUTINE SCATTERXX_N2 SUBROUTINE SCATTERXY_X2(PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC -USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE +USE MODD_IO, ONLY: ISP, ISNPROC +USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE REAL,DIMENSION(:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:), POINTER :: TX2DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS INTEGER,ALLOCATABLE,DIMENSION(:) :: REQ_TAB INTEGER :: NB_REQ @@ -468,20 +431,17 @@ END IF END SUBROUTINE SCATTERXY_X2 SUBROUTINE SCATTERXY_X3(PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:,:), POINTER :: TX3DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -503,20 +463,17 @@ END IF END SUBROUTINE SCATTERXY_X3 SUBROUTINE SCATTERXY_X4(PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:,:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:,:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:,:,:), POINTER :: TX3DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -538,21 +495,18 @@ END IF END SUBROUTINE SCATTERXY_X4 SUBROUTINE SCATTERXY_X5(PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:,:,:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:,:,:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:,:,:,:), POINTER :: TX3DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS - + IF (ISP == KROOT) THEN DO JI = 1,ISNPROC CALL GET_DOMREAD_ll(JI,IXO,IXE,IYO,IYE) @@ -573,21 +527,18 @@ END IF END SUBROUTINE SCATTERXY_X5 SUBROUTINE SCATTERXY_X6(PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:,:,:,:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:,:,:,:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:,:,:,:,:), POINTER :: TX3DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS - + IF (ISP == KROOT) THEN DO JI = 1,ISNPROC CALL GET_DOMREAD_ll(JI,IXO,IXE,IYO,IYE) @@ -608,20 +559,17 @@ END IF END SUBROUTINE SCATTERXY_X6 SUBROUTINE SCATTERXY_N2(KSEND,KRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC INTEGER,DIMENSION(:,:),TARGET,INTENT(IN) :: KSEND INTEGER,DIMENSION(:,:), INTENT(INOUT):: KRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE INTEGER ,DIMENSION(:,:), POINTER :: TI3DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -643,8 +591,8 @@ END IF END SUBROUTINE SCATTERXY_N2 SUBROUTINE GET_DOMREAD_ll(KIP,KXOR,KXEND,KYOR,KYEND) -USE MODD_VAR_ll, ONLY : TCRRT_PROCONF -USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll +USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll +USE MODD_VAR_ll, ONLY: TCRRT_PROCONF IMPLICIT NONE diff --git a/src/LIB/SURCOUCHE/src/modi_fm.f90 b/src/LIB/SURCOUCHE/src/modi_fm.f90 deleted file mode 100644 index c64838a04..000000000 --- a/src/LIB/SURCOUCHE/src/modi_fm.f90 +++ /dev/null @@ -1,37 +0,0 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -! Modifications: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) -!----------------------------------------------------------------- - -MODULE MODI_FM_ll -! -INTERFACE -! -SUBROUTINE SET_FMPACK_ll(O1D,O2D,OPACK) -LOGICAL, INTENT(IN) :: O1D,O2D,OPACK -END SUBROUTINE SET_FMPACK_ll -! -SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,HPOSITION,HSTATUS,HPROGRAM_ORIG) -USE MODD_IO_ll, ONLY: TFILEDATA -TYPE(TFILEDATA),POINTER,INTENT(INOUT) :: TPFILE ! File structure -INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! Return code -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPOSITION -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HSTATUS -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program -END SUBROUTINE IO_FILE_OPEN_ll -! -SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,HPROGRAM_ORIG) -USE MODD_IO_ll, ONLY: TFILEDATA -TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure -INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! Return code -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program -END SUBROUTINE IO_FILE_CLOSE_ll -! -END INTERFACE -END MODULE MODI_FM_ll diff --git a/src/LIB/SURCOUCHE/src/modi_io.f90 b/src/LIB/SURCOUCHE/src/modi_io.f90 deleted file mode 100644 index b4fee82f8..000000000 --- a/src/LIB/SURCOUCHE/src/modi_io.f90 +++ /dev/null @@ -1,49 +0,0 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -! Modifications: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place -! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) -!----------------------------------------------------------------- - -MODULE MODI_IO_ll -! -INTERFACE - SUBROUTINE INITIO_ll() - END SUBROUTINE INITIO_ll - - SUBROUTINE OPEN_ll(& - TPFILE, & - MODE, & - STATUS, & - IOSTAT, & - POSITION,& - DELIM, & - HPROGRAM_ORIG) - - USE MODD_IO_ll, ONLY : TFILEDATA - - TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE - CHARACTER(len=*),INTENT(IN), OPTIONAL :: MODE - CHARACTER(len=*),INTENT(IN), OPTIONAL :: STATUS - INTEGER, INTENT(OUT) :: IOSTAT - CHARACTER(len=*),INTENT(IN), OPTIONAL :: POSITION - CHARACTER(len=*),INTENT(IN), OPTIONAL :: DELIM - CHARACTER(LEN=*),INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program - END SUBROUTINE OPEN_ll - - SUBROUTINE CLOSE_ll(TPFILE,IOSTAT,HPROGRAM_ORIG) - USE MODD_IO_ll, ONLY : TFILEDATA - - TYPE(TFILEDATA), INTENT(IN) :: TPFILE - INTEGER, INTENT(OUT), OPTIONAL :: IOSTAT - CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program - END SUBROUTINE CLOSE_ll - -END INTERFACE -! -END MODULE MODI_IO_ll diff --git a/src/LIB/SURCOUCHE/src/modn_confio.f90 b/src/LIB/SURCOUCHE/src/modn_confio.f90 index b4a4ea3be..8505a61f9 100644 --- a/src/LIB/SURCOUCHE/src/modn_confio.f90 +++ b/src/LIB/SURCOUCHE/src/modn_confio.f90 @@ -13,7 +13,7 @@ !! ------- ! Define I/O configuration variables that can be set with the NAM_CONFIO namelist !! /!\ These variables must be transmitted to the SURCOUCHE library via the -!! SET_CONFIO_ll subroutine before the FIRST call to IO_FILE_OPEN_ll +!! IO_Config_set subroutine before the FIRST call to IO_FILE_OPEN_ll ! !! !!** IMPLICIT ARGUMENTS @@ -36,9 +36,9 @@ !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY : LVERB_OUTLST, LVERB_STDOUT, LVERB_ALLPRC, & - NIO_VERB, NIO_ABORT_LEVEL, NGEN_VERB, NGEN_ABORT_LEVEL, & - CIO_DIR, LIO_ALLOW_NO_BACKUP, LIO_NO_WRITE +USE MODD_IO, ONLY : LVERB_OUTLST, LVERB_STDOUT, LVERB_ALLPRC, & + NIO_VERB, NIO_ABORT_LEVEL, NGEN_VERB, NGEN_ABORT_LEVEL, & + CIO_DIR, LIO_ALLOW_NO_BACKUP, LIO_NO_WRITE ! IMPLICIT NONE ! diff --git a/src/LIB/SURCOUCHE/src/system_mnh.f90 b/src/LIB/SURCOUCHE/src/system_mnh.f90 index ccdcc751d..b43981265 100644 --- a/src/LIB/SURCOUCHE/src/system_mnh.f90 +++ b/src/LIB/SURCOUCHE/src/system_mnh.f90 @@ -12,7 +12,6 @@ SUBROUTINE SYSTEM_MNH(HCOMMAND) !! Modifications: !! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN !! - USE MODE_IO_ll !! !* 0. DECLARATIONS ! ------------ diff --git a/src/MNH/adjust_langlois.f90 b/src/MNH/adjust_langlois.f90 index 57f958bdf..ed6df1d2a 100644 --- a/src/MNH/adjust_langlois.f90 +++ b/src/MNH/adjust_langlois.f90 @@ -118,7 +118,6 @@ USE MODD_BUDGET ! USE MODI_CONDENSATION USE MODI_BUDGET -USE MODE_FMWRIT ! IMPLICIT NONE ! diff --git a/src/MNH/adv_forcingn.f90 b/src/MNH/adv_forcingn.f90 index a4a4038b6..5a8246825 100644 --- a/src/MNH/adv_forcingn.f90 +++ b/src/MNH/adv_forcingn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ##################### MODULE MODI_ADV_FORCING_n @@ -100,21 +100,17 @@ END MODULE MODI_ADV_FORCING_n !* 0. DECLARATIONS ! ------------ ! -USE MODE_DATETIME -USE MODE_FM -USE MODE_IO_ll -! +USE MODD_ADVFRC_n ! Modules for time evolving advfrc +USE MODD_BUDGET USE MODD_DYN USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_TIME -USE MODD_BUDGET ! -USE MODI_BUDGET +USE MODE_DATETIME ! -USE MODD_ADVFRC_n ! Modules for time evolving advfrc +USE MODI_BUDGET USE MODI_SHUMAN -!USE MODD_FRC ! IMPLICIT NONE ! diff --git a/src/MNH/advec_4th_order_aux.f90 b/src/MNH/advec_4th_order_aux.f90 index 6bffab256..190a59d22 100644 --- a/src/MNH/advec_4th_order_aux.f90 +++ b/src/MNH/advec_4th_order_aux.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2005-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################### @@ -106,11 +106,10 @@ END MODULE MODI_ADVEC_4TH_ORDER_AUX !* 0. DECLARATIONS ! ------------ ! -USE MODE_ll -! +USE MODD_ARGSLIST_ll, ONLY: HALO2LIST_ll USE MODD_CONF -USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll -USE MODE_IO_ll +! +USE MODE_ll ! IMPLICIT NONE ! diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90 index 3ec0b2a5c..485238b02 100644 --- a/src/MNH/advection_metsv.f90 +++ b/src/MNH/advection_metsv.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################### @@ -17,7 +17,7 @@ INTERFACE PRTHS, PRRS, PRTKES, PRSVS, & PRTHS_CLD, PRRS_CLD, PRSVS_CLD, PRTKES_ADV ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_TYPE_DATE, ONLY: DATE_TIME ! LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous @@ -143,19 +143,18 @@ END MODULE MODI_ADVECTION_METSV ! USE MODD_BUDGET USE MODD_CST -USE MODD_CTURB, ONLY: XTKEMIN -USE MODD_CONF, ONLY: LNEUTRAL,NHALO,L1D, L2D -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_CTURB, ONLY: XTKEMIN +USE MODD_CONF, ONLY: LNEUTRAL,NHALO,L1D, L2D +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAM_n -USE MODD_TYPE_DATE, ONLY: DATE_TIME +USE MODD_TYPE_DATE, ONLY: DATE_TIME USE MODD_BLOWSNOW USE MODD_BLOWSNOW_n USE MODD_PARAMETERS ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT -USE MODE_IO_ll +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll USE MODE_MSG ! @@ -342,7 +341,7 @@ IF (OCLOSE_OUT .AND. OCFL_WRIT .AND. (.NOT. L1D)) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCFLU) + CALL IO_Field_write(TPFILE,TZFIELD,ZCFLU) ! IF (.NOT. L2D) THEN TZFIELD%CMNHNAME = 'CFLV' @@ -355,7 +354,7 @@ IF (OCLOSE_OUT .AND. OCFL_WRIT .AND. (.NOT. L1D)) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCFLV) + CALL IO_Field_write(TPFILE,TZFIELD,ZCFLV) END IF ! TZFIELD%CMNHNAME = 'CFLW' @@ -368,7 +367,7 @@ IF (OCLOSE_OUT .AND. OCFL_WRIT .AND. (.NOT. L1D)) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCFLW) + CALL IO_Field_write(TPFILE,TZFIELD,ZCFLW) ! TZFIELD%CMNHNAME = 'CFL' TZFIELD%CSTDNAME = '' @@ -380,7 +379,7 @@ IF (OCLOSE_OUT .AND. OCFL_WRIT .AND. (.NOT. L1D)) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCFL) + CALL IO_Field_write(TPFILE,TZFIELD,ZCFL) END IF ! !* prints in the output file the maximum CFL diff --git a/src/MNH/aerozon.f90 b/src/MNH/aerozon.f90 index 04808cb47..41989f6b5 100644 --- a/src/MNH/aerozon.f90 +++ b/src/MNH/aerozon.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -162,8 +162,6 @@ USE MODD_GROUND_PAR USE MODD_PARAM_RAD_n, ONLY: LFIX_DAT ! USE MODE_ll -USE MODE_FM -USE MODE_FMREAD ! USE MODI_SHUMAN USE MODI_INI_RADCONF diff --git a/src/MNH/aircraft_balloon_evol.f90 b/src/MNH/aircraft_balloon_evol.f90 index df4675587..12f4f595d 100644 --- a/src/MNH/aircraft_balloon_evol.f90 +++ b/src/MNH/aircraft_balloon_evol.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -175,7 +175,6 @@ USE MODE_DATETIME USE MODE_FGAU, ONLY: GAULAG USE MODE_FSCATTER, ONLY: QEPSW,QEPSI,BHMIE,MOMG,MG USE MODE_GRIDPROJ -USE MODE_IO_ll USE MODE_ll USE MODE_MSG ! diff --git a/src/MNH/anel_balancen.f90 b/src/MNH/anel_balancen.f90 index ad0f32051..e5aa55cfe 100644 --- a/src/MNH/anel_balancen.f90 +++ b/src/MNH/anel_balancen.f90 @@ -108,7 +108,6 @@ END MODULE MODI_ANEL_BALANCE_n ! ! USE MODE_ll -USE MODE_IO_ll USE MODE_MODELN_HANDLER ! USE MODD_CONF ! declarative modules diff --git a/src/MNH/budget.f90 b/src/MNH/budget.f90 index a4d5256d2..c8fe1b6cb 100644 --- a/src/MNH/budget.f90 +++ b/src/MNH/budget.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !################## @@ -90,8 +90,6 @@ USE MODD_CONF, ONLY : LCHECK USE MODD_NSV, ONLY : NSV USE MODD_LES ! -USE MODE_FM -USE MODE_IO_ll USE MODE_MSG ! USE MODI_LES_BUDGET diff --git a/src/MNH/c2r2_adjust.f90 b/src/MNH/c2r2_adjust.f90 index 29333957d..aeaeaa05e 100644 --- a/src/MNH/c2r2_adjust.f90 +++ b/src/MNH/c2r2_adjust.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -15,7 +15,7 @@ INTERFACE PTHS, PRVS, PRCS, PCNUCS, & PCCS, PSRCS, PCLDFR, PRRS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KRR ! Number of moist variables TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file @@ -152,18 +152,18 @@ END MODULE MODI_C2R2_ADJUST USE MODD_BUDGET USE MODD_CONF USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n, ONLY: TLUOUT -USE MODD_NSV, ONLY: NSV_C2R2BEG +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_NSV, ONLY: NSV_C2R2BEG USE MODD_PARAMETERS ! -USE MODI_CONDENS -USE MODI_BUDGET -! USE MODE_FIELD -USE MODE_FMWRIT +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG ! +USE MODI_CONDENS +USE MODI_BUDGET +! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : @@ -423,7 +423,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZW1) + CALL IO_Field_write(TPFILE,TZFIELD,ZW1) END IF ! ! diff --git a/src/MNH/call_rttov11.f90 b/src/MNH/call_rttov11.f90 index 3a5f6b338..70d452642 100644 --- a/src/MNH/call_rttov11.f90 +++ b/src/MNH/call_rttov11.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################## @@ -12,7 +12,7 @@ INTERFACE PTHT, PRT, PPABST, PZZ, PMFCONV, PCLDFR, PULVLKB, PVLVLKB, & OUSERI, KRTTOVINFO, TPFILE ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KDLON !number of columns where the !radiation calculations are performed @@ -90,23 +90,20 @@ SUBROUTINE CALL_RTTOV11(KDLON, KFLEV, PEMIS, PTSRAD, & USE MODD_CST USE MODD_PARAMETERS USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n USE MODD_DEEP_CONVECTION_n USE MODD_REF_n USE MODD_RADIATIONS_n, ONLY : XSEA ! USE MODN_CONF -! +! USE MODI_DETER_ANGLE USE MODI_PINTER ! USE MODE_FIELD -USE MODE_FMWRIT -USE MODE_FMREAD +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll -USE MODE_FM -USE MODE_IO_ll USE MODE_MSG USE MODE_POS ! @@ -579,7 +576,7 @@ DO JSAT=1,IJSAT ! loop over sensors TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. ! PRINT *,'YRECFM='//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZBT(:,:,JCH)) + CALL IO_Field_write(TPFILE,TZFIELD,ZBT(:,:,JCH)) END DO DEALLOCATE(chanprof,frequencies,emissivity,calcemis,profiles,cld_profiles) DEALLOCATE(ZBT) diff --git a/src/MNH/call_rttov8.f90 b/src/MNH/call_rttov8.f90 index d8ae1818b..6180ec0f9 100644 --- a/src/MNH/call_rttov8.f90 +++ b/src/MNH/call_rttov8.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -12,7 +12,7 @@ INTERFACE PTHT, PRT, PPABST, PZZ, PMFCONV, PCLDFR, PULVLKB, PVLVLKB, & OUSERI, KRTTOVINFO, TPFILE ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KDLON !number of columns where the !radiation calculations are performed @@ -90,7 +90,7 @@ SUBROUTINE CALL_RTTOV8(KDLON, KFLEV, KSTATM, PEMIS, PTSRAD, PSTATM, & !! ------------ !! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_GRID_n USE MODD_DEEP_CONVECTION_n @@ -98,18 +98,15 @@ USE MODD_REF_n USE MODD_RADIATIONS_n, ONLY : XSEA ! USE MODN_CONF -! +! USE MODD_RAD_TRANSF -! +! USE MODI_DETER_ANGLE USE MODI_PINTER ! USE MODE_FIELD -USE MODE_FMWRIT -USE MODE_FMREAD +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll -USE MODE_FM -USE MODE_IO_ll USE MODE_MSG USE MODE_POS ! @@ -1582,7 +1579,7 @@ DO JSAT=1,IJSAT ! loop over sensors TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. PRINT *,TZFIELD%CMNHNAME//TZFIELD%CCOMMENT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZANTMP) + CALL IO_Field_write(TPFILE,TZFIELD,ZANTMP) END IF DEALLOCATE(ZANTMP) ! ----------------------------------------------------------------------------- @@ -1641,7 +1638,7 @@ DO JSAT=1,IJSAT ! loop over sensors PRINT *,TZFIELD%CMNHNAME//TZFIELD%CCOMMENT, & MINVAL(ZTBTMP(:,:,JCH),ZTBTMP(:,:,JCH)/=XUNDEF), & MAXVAL(ZTBTMP(:,:,JCH),ZTBTMP(:,:,JCH)/=XUNDEF) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTBTMP(:,:,JCH)) + CALL IO_Field_write(TPFILE,TZFIELD,ZTBTMP(:,:,JCH)) IF (KRTTOVINFO(3,JSAT) == 4.AND. JCH==3 ) THEN ! AMSU-B TZFIELD%CMNHNAME = TRIM(YBEG)//'_UTH' TZFIELD%CSTDNAME = '' @@ -1670,7 +1667,7 @@ DO JSAT=1,IJSAT ! loop over sensors END IF END DO END DO - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZUTH) + CALL IO_Field_write(TPFILE,TZFIELD,ZUTH) DEALLOCATE(ZUTH) END IF END DO @@ -1737,7 +1734,7 @@ DO JSAT=1,IJSAT ! loop over sensors PRINT *,TZFIELD%CMNHNAME//TZFIELD%CCOMMENT, & MINVAL(ZTEMPK(:,:,:),ZTEMPK(:,:,:)/=XUNDEF), & MAXVAL(ZTEMPK(:,:,:),ZTEMPK(:,:,:)/=XUNDEF) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTEMPK(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZTEMPK(:,:,:)) ! TZFIELD%CMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'JAV' TZFIELD%CSTDNAME = '' @@ -1754,7 +1751,7 @@ DO JSAT=1,IJSAT ! loop over sensors PRINT *,TZFIELD%CMNHNAME//TZFIELD%CCOMMENT, & MINVAL(ZWVAPK(:,:,:),ZWVAPK(:,:,:)/=XUNDEF), & MAXVAL(ZWVAPK(:,:,:),ZWVAPK(:,:,:)/=XUNDEF) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWVAPK(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWVAPK(:,:,:)) END DO DEALLOCATE(ZTEMPKP,ZWVAPKP,ZFIN) ENDIF diff --git a/src/MNH/ch_aer_mod_init.f90 b/src/MNH/ch_aer_mod_init.f90 index 86313a9ed..b5a2409aa 100644 --- a/src/MNH/ch_aer_mod_init.f90 +++ b/src/MNH/ch_aer_mod_init.f90 @@ -1,4 +1,4 @@ -!ORILAM_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !ORILAM_LIC for details. @@ -50,11 +50,11 @@ END MODULE MODI_CH_AER_MOD_INIT !! ------------------ USE MODD_CH_AEROSOL USE MODD_GLO -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_UNIFACPARAM ! -USE MODE_FM, ONLY: IO_FILE_OPEN_ll,IO_FILE_CLOSE_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, ONLY: IO_File_open,IO_File_close +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_UNIFAC ! ! @@ -84,8 +84,8 @@ TZFILE => NULL() ! Initialize the mineral tabulation IF (CMINERAL == 'NARES') THEN ! .. the file ares.w contains the weights of the model - CALL IO_FILE_ADD2LIST(TZFILE,'ares1A.w','CHEMTAB','READ') - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_add2list(TZFILE,'ares1A.w','CHEMTAB','READ') + CALL IO_File_open(TZFILE) ILU = TZFILE%NLU READ(ILU,*) I1IA,J1JA,K1KA DO JI=1,I1IA @@ -100,11 +100,11 @@ IF (CMINERAL == 'NARES') THEN DO JJ=1,J1JA+1 READ(ILU,*) (W1JKA(JJ,JK),JK=1,K1KA) ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! - CALL IO_FILE_ADD2LIST(TZFILE,'ares1C.w','CHEMTAB','READ') - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_add2list(TZFILE,'ares1C.w','CHEMTAB','READ') + CALL IO_File_open(TZFILE) ILU = TZFILE%NLU READ(ILU,*) I1IC,J1JC,K1KC DO JI=1,I1IC @@ -119,11 +119,11 @@ IF (CMINERAL == 'NARES') THEN DO JJ=1,J1JC+1 READ(ILU,*) (W1JKC(JJ,JK),JK=1,K1KC) ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! - CALL IO_FILE_ADD2LIST(TZFILE,'ares2A.w','CHEMTAB','READ') - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_add2list(TZFILE,'ares2A.w','CHEMTAB','READ') + CALL IO_File_open(TZFILE) ILU = TZFILE%NLU READ(ILU,*) I2IA,J2JA,K2KA DO JI=1,I2IA @@ -138,11 +138,11 @@ IF (CMINERAL == 'NARES') THEN DO JJ=1,J2JA+1 READ(ILU,*) (W2JKA(JJ,JK),JK=1,K2KA) ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! - CALL IO_FILE_ADD2LIST(TZFILE,'ares2B.w','CHEMTAB','READ') - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_add2list(TZFILE,'ares2B.w','CHEMTAB','READ') + CALL IO_File_open(TZFILE) ILU = TZFILE%NLU READ(ILU,*) I2IB,J2JB,K2KB DO JI=1,I2IB @@ -157,11 +157,11 @@ IF (CMINERAL == 'NARES') THEN DO JJ=1,J2JB+1 READ(ILU,*) (W2JKB(JJ,JK),JK=1,K2KB) ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! - CALL IO_FILE_ADD2LIST(TZFILE,'ares2C.w','CHEMTAB','READ') - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_add2list(TZFILE,'ares2C.w','CHEMTAB','READ') + CALL IO_File_open(TZFILE) ILU = TZFILE%NLU READ(ILU,*) I2IC,J2JC,K2KC DO JI=1,I2IC @@ -176,7 +176,7 @@ IF (CMINERAL == 'NARES') THEN DO JJ=1,J2JC+1 READ(ILU,*) (W2JKC(JJ,JK),JK=1,K2KC) ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! END IF @@ -188,8 +188,8 @@ IF (CMINERAL == 'TABUL') THEN IF(.NOT.ALLOCATED(znh)) ALLOCATE(znh(22)) IF(.NOT.ALLOCATED(zni)) ALLOCATE(zni(22)) IF(.NOT.ALLOCATED(zf)) ALLOCATE(zf(16,11,22,22,22,3)) - CALL IO_FILE_ADD2LIST(TZFILE,'AEROMIN_NEW','CHEMTAB','READ') - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_add2list(TZFILE,'AEROMIN_NEW','CHEMTAB','READ') + CALL IO_File_open(TZFILE) ILU = TZFILE%NLU WRITE(*,*) 'LOADING MINERAL AEROSOL DATA ...' @@ -220,7 +220,7 @@ IF (CMINERAL == 'TABUL') THEN ENDDO ENDDO WRITE(*,*) 'END LOADING' - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ENDIF diff --git a/src/MNH/ch_emission_flux0d.f90 b/src/MNH/ch_emission_flux0d.f90 index 2cbcf2ff6..2795fe267 100644 --- a/src/MNH/ch_emission_flux0d.f90 +++ b/src/MNH/ch_emission_flux0d.f90 @@ -73,15 +73,14 @@ END MODULE MODI_CH_EMISSION_FLUX0D !! !! EXTERNAL !! -------- -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll -USE MODE_IO_ll +USE MODD_IO, ONLY: TFILEDATA +USE MODE_IO_FILE, ONLY: IO_File_close ! USE MODI_CH_OPEN_INPUT !! !! IMPLICIT ARGUMENTS !! ------------------ -USE MODD_CH_M9_n, ONLY: NEQ, CNAMES +USE MODD_CH_M9_n, ONLY: NEQ, CNAMES !! !------------------------------------------------------------------------------ ! @@ -198,7 +197,7 @@ IF (LSFIRSTCALL) THEN ! ! close file ! - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) ! !* 2. MAP DATA ONTO PROGNOSTIC VARIABLES ! --------------------------------------- diff --git a/src/MNH/ch_field_valuen.f90 b/src/MNH/ch_field_valuen.f90 index c20e8e858..22796effc 100644 --- a/src/MNH/ch_field_valuen.f90 +++ b/src/MNH/ch_field_valuen.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !! ############################ @@ -74,8 +74,8 @@ END MODULE MODI_CH_FIELD_VALUE_n !! EXTERNAL !! -------- USE MODI_CH_OPEN_INPUT ! open general purpose ASCII input file -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll +USE MODD_IO, ONLY: TFILEDATA +USE MODE_IO_FILE, ONLY: IO_File_close !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -169,7 +169,7 @@ firstcall: IF (GSFIRSTCALL) THEN END IF ! ! close file - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! ! check if Z-profile is given in increasing order, otherwise stop @@ -214,7 +214,7 @@ firstcall: IF (GSFIRSTCALL) THEN ENDDO ! ! close file - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! ! @@ -261,7 +261,7 @@ firstcall: IF (GSFIRSTCALL) THEN ENDDO ! ! close file - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! ENDIF firstcall diff --git a/src/MNH/ch_init_constn.f90 b/src/MNH/ch_init_constn.f90 index 4d5dc7882..08109e2bf 100644 --- a/src/MNH/ch_init_constn.f90 +++ b/src/MNH/ch_init_constn.f90 @@ -61,8 +61,8 @@ END MODULE MODI_CH_INIT_CONST_n !! EXTERNAL !! -------- USE MODI_CH_OPEN_INPUT ! open the general purpose ASCII input file -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll +USE MODD_IO, ONLY: TFILEDATA +USE MODE_IO_FILE, ONLY: IO_File_close !! !! IMPLICIT ARGUMENTS @@ -151,7 +151,7 @@ DO JI = 1, IMASS END DO ! ! close file -CALL IO_FILE_CLOSE_ll(TZFILE) +CALL IO_File_close(TZFILE) TZFILE => NULL() ! ! @@ -205,7 +205,7 @@ DO JI = 1, IREACT END DO ! ! close file -CALL IO_FILE_CLOSE_ll(TZFILE) +CALL IO_File_close(TZFILE) TZFILE => NULL() ! ! @@ -262,7 +262,7 @@ DO JNREAL = 1, IHENRY END DO ! ! close file -CALL IO_FILE_CLOSE_ll(TZFILE) +CALL IO_File_close(TZFILE) TZFILE => NULL() ! IF (KVERB >= 10) THEN diff --git a/src/MNH/ch_init_meteo.f90 b/src/MNH/ch_init_meteo.f90 index 95191d0f6..d290e5196 100644 --- a/src/MNH/ch_init_meteo.f90 +++ b/src/MNH/ch_init_meteo.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !! ######################### @@ -58,8 +58,7 @@ END MODULE MODI_CH_INIT_METEO !! EXTERNAL !! -------- USE MODI_CH_OPEN_INPUT -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll -USE MODE_IO_ll +USE MODE_IO_FILE, ONLY: IO_File_close !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -138,6 +137,6 @@ END DO ! ! close file ! -CALL IO_FILE_CLOSE_ll(TMETEOFILE) +CALL IO_File_close(TMETEOFILE) ! END SUBROUTINE CH_INIT_METEO diff --git a/src/MNH/ch_model0d.f90 b/src/MNH/ch_model0d.f90 index da17517f3..fbff58f80 100644 --- a/src/MNH/ch_model0d.f90 +++ b/src/MNH/ch_model0d.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################## @@ -81,10 +81,10 @@ USE MODD_CH_M9_n, ONLY: NEQ, NREAC, & ! no. of species & reactions CNAMES, & ! names of chem. species METEOTRANSTYPE ! TYPE of meteo struct variable -USE MODD_CONF, ONLY : CPROGRAM -USE MODD_CH_M9_SCHEME, ONLY : CCSTYPE,TACCS +USE MODD_CONF, ONLY: CPROGRAM +USE MODD_CH_M9_SCHEME, ONLY: CCSTYPE,TACCS -USE MODE_IO_ll +USE MODE_IO, only: IO_Init USE MODE_MODELN_HANDLER !! !! @@ -184,7 +184,7 @@ XCH_TUV_DOBNEW = 320. ! O3 dobson (to be modified) ! !* 1. INITIALISATION ! ------------------- -CALL INITIO_ll() +CALL IO_Init() ! !* 1.1 read namelist and initialize time control variables ! diff --git a/src/MNH/ch_open_input.f90 b/src/MNH/ch_open_input.f90 index 95f17a316..8ffa174d6 100644 --- a/src/MNH/ch_open_input.f90 +++ b/src/MNH/ch_open_input.f90 @@ -11,7 +11,7 @@ INTERFACE !! SUBROUTINE CH_OPEN_INPUT(HCHEM_INPUT_FILE,HKEYWORD,TPFILE,KLUOUT,KVERB) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! IMPLICIT NONE ! @@ -72,10 +72,10 @@ SUBROUTINE CH_OPEN_INPUT(HCHEM_INPUT_FILE,HKEYWORD,TPFILE,KLUOUT,KVERB) !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! -USE MODE_FM, ONLY: IO_FILE_OPEN_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, ONLY: IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list ! IMPLICIT NONE ! @@ -91,7 +91,7 @@ INTEGER, INTENT(IN) :: KVERB ! verbosity level ! CHARACTER(LEN=79) :: YIN ! character string for line-by-line read INTEGER :: ILU -INTEGER :: IRESP ! return code from IO_FILE_OPEN_ll +INTEGER :: IRESP ! return code from IO_File_open ! !------------------------------------------------------------------------------- ! @@ -101,13 +101,13 @@ TPFILE => NULL() ! ----------------------- ! IF (KVERB >= 5) WRITE(KLUOUT,*) "CH_OPEN_INPUT: opening file ", HCHEM_INPUT_FILE -CALL IO_FILE_ADD2LIST(TPFILE,HCHEM_INPUT_FILE,'CHEMINPUT','READ',OOLD=.TRUE.) -CALL IO_FILE_OPEN_ll(TPFILE,KRESP=IRESP) +CALL IO_File_add2list(TPFILE,HCHEM_INPUT_FILE,'CHEMINPUT','READ',OOLD=.TRUE.) +CALL IO_File_open(TPFILE,KRESP=IRESP) ILU = TPFILE%NLU ! IF (IRESP /= 0) THEN WRITE(KLUOUT,*) "CH_OPEN_INPUT ERROR: unable to open file", HCHEM_INPUT_FILE - WRITE(KLUOUT,*) " IO_FILE_OPEN_ll return code is: ", IRESP + WRITE(KLUOUT,*) " IO_File_open return code is: ", IRESP WRITE(KLUOUT,*) " the program will be stopped now" ! callabortstop CALL ABORT diff --git a/src/MNH/ch_read_chem.f90 b/src/MNH/ch_read_chem.f90 index 56e358524..fe8e3fbe6 100644 --- a/src/MNH/ch_read_chem.f90 +++ b/src/MNH/ch_read_chem.f90 @@ -60,16 +60,17 @@ END MODULE MODI_CH_READ_CHEM !! !! EXTERNAL !! -------- +USE MODE_IO_FILE, ONLY: IO_File_close +! USE MODI_CH_OPEN_INPUT USE MODI_CH_READ_VECTOR -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll !! !! IMPLICIT ARGUMENTS !! ------------------ -USE MODD_CH_MODEL0D, ONLY: NVERB -USE MODD_CH_M9_n, ONLY: NEQ, CNAMES USE MODD_CH_AEROSOL +USE MODD_CH_M9_n, ONLY: NEQ, CNAMES +USE MODD_CH_MODEL0D, ONLY: NVERB +USE MODD_IO, ONLY: TFILEDATA !! !! EXPLICIT ARGUMENTS !! ------------------ @@ -109,7 +110,7 @@ IF (HFILE(1:14) .EQ. "CHCONTROL1.nam") THEN CALL CH_READ_VECTOR(NEQ, CNAMES, PCONC, 0.0, IIN, 6, NVERB) IF (LORILAM) CALL CH_READ_VECTOR(SIZE(PAERO,1), CAERONAMES, PAERO, 0.0, IIN, 6, NVERB) ! - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) ! ELSE ! diff --git a/src/MNH/ch_surface0d.f90 b/src/MNH/ch_surface0d.f90 index dd3a11ff3..ce3bab6c4 100644 --- a/src/MNH/ch_surface0d.f90 +++ b/src/MNH/ch_surface0d.f90 @@ -252,8 +252,8 @@ CONTAINS ! SUBROUTINE CH_SURFACE0D_SETPARAM ! -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll,IO_FILE_OPEN_ll +USE MODD_IO, ONLY: TFILEDATA +USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open ! IMPLICIT NONE ! @@ -302,15 +302,15 @@ IF (LSFIRSTCALL) THEN LSFIRSTCALL = .FALSE. CALL CH_OPEN_INPUT("SURFACE.nam", "SURFDATA", TZFILE, 6, NVERB) ISURFIO = TZFILE%NLU - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) ! END IF ! IF (PTSIMUL .GE. TNEXTUPDATE) THEN PRINT *, "updating surface variables from file ",TRIM(TZFILE%CNAME) - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_open(TZFILE) READ(ISURFIO,NAM_SURF) - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) ! PRINT *, "current setting is:" ! WRITE(*,NAM_SURF) TNEXTUPDATE = PTSIMUL + TVALID diff --git a/src/MNH/check_zhat.f90 b/src/MNH/check_zhat.f90 index ca9094fa9..1f4487567 100644 --- a/src/MNH/check_zhat.f90 +++ b/src/MNH/check_zhat.f90 @@ -75,12 +75,12 @@ END MODULE MODI_CHECK_ZHAT USE MODD_CONF USE MODD_DIM_n USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS ! -USE MODE_FMREAD -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_MANAGE_STRUCT, only: IO_File_find_byname ! IMPLICIT NONE ! @@ -114,16 +114,16 @@ ILUOUT0 = TLUOUT0%NLU !* 1. Reading grid and dimension ! -------------------------- ! -CALL IO_FILE_FIND_BYNAME(TRIM(HFMFILE),TZFMFILE,IRESP) +CALL IO_File_find_byname(TRIM(HFMFILE),TZFMFILE,IRESP) ! -CALL IO_READ_FIELD(TZFMFILE,'KMAX',IKMAX) +CALL IO_Field_read(TZFMFILE,'KMAX',IKMAX) ALLOCATE(ZZHAT(IKMAX+2*JPVEXT)) -CALL IO_READ_FIELD(TZFMFILE,'ZHAT',ZZHAT) -CALL IO_READ_FIELD(TZFMFILE,'THINSHELL',GTHINSHELL) +CALL IO_Field_read(TZFMFILE,'ZHAT',ZZHAT) +CALL IO_Field_read(TZFMFILE,'THINSHELL',GTHINSHELL) IF ( TZFMFILE%NMNHVERSION(1)<4 .OR. (TZFMFILE%NMNHVERSION(1)==4 .AND. TZFMFILE%NMNHVERSION(2)<=6) ) THEN GSLEVE = .FALSE. ELSE - CALL IO_READ_FIELD(TZFMFILE,'SLEVE',GSLEVE) + CALL IO_Field_read(TZFMFILE,'SLEVE',GSLEVE) ENDIF ! !* 2. Check dimensions @@ -171,8 +171,8 @@ END IF ! ------------------------------------- ! IF ( GSLEVE .AND. LSLEVE ) THEN - CALL IO_READ_FIELD(TZFMFILE,'LEN1',ZLEN1) - CALL IO_READ_FIELD(TZFMFILE,'LEN2',ZLEN2) + CALL IO_Field_read(TZFMFILE,'LEN1',ZLEN1) + CALL IO_Field_read(TZFMFILE,'LEN2',ZLEN2) IF (ZLEN1 /= XLEN1 .OR. ZLEN2 /= XLEN2) THEN HDAD_NAME=' ' WRITE (ILUOUT0,*) '********************************************************' diff --git a/src/MNH/check_zs.f90 b/src/MNH/check_zs.f90 index 42b9aaa6f..bab046512 100644 --- a/src/MNH/check_zs.f90 +++ b/src/MNH/check_zs.f90 @@ -81,13 +81,13 @@ END MODULE MODI_CHECK_ZS USE MODD_CONF USE MODD_DIM_n USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_NESTING USE MODD_PARAMETERS ! -USE MODE_FMREAD -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_MANAGE_STRUCT, only: IO_File_find_byname ! IMPLICIT NONE ! @@ -128,9 +128,9 @@ ILUOUT0 = TLUOUT0%NLU !* 1. Reading of aspect ratios and dimensions ! --------------------------------------- ! -CALL IO_FILE_FIND_BYNAME(TRIM(HFMFILE),TZFMFILE,IRESP) +CALL IO_File_find_byname(TRIM(HFMFILE),TZFMFILE,IRESP) ! -CALL IO_READ_FIELD(TZFMFILE,'DXRATIO',IDXRATIO,IRESP) +CALL IO_Field_read(TZFMFILE,'DXRATIO',IDXRATIO,IRESP) IF ( IRESP /= 0 .OR. IDXRATIO == 0 ) THEN WRITE (ILUOUT0,*) '********************************************************' WRITE (ILUOUT0,*) 'resolution ratio in x direction not present in fmfile; no nesting allowed' @@ -139,7 +139,7 @@ IF ( IRESP /= 0 .OR. IDXRATIO == 0 ) THEN RETURN END IF ! -CALL IO_READ_FIELD(TZFMFILE,'DYRATIO',IDYRATIO,IRESP) +CALL IO_Field_read(TZFMFILE,'DYRATIO',IDYRATIO,IRESP) IF ( IRESP /= 0 .OR. IDYRATIO == 0 ) THEN WRITE (ILUOUT0,*) '********************************************************' WRITE (ILUOUT0,*) 'resolution ratio in y direction not present in fmfile; no nesting allowed' @@ -148,7 +148,7 @@ IF ( IRESP /= 0 .OR. IDYRATIO == 0 ) THEN RETURN END IF ! -CALL IO_READ_FIELD(TZFMFILE,'XOR',NXOR_ALL(1),IRESP) +CALL IO_Field_read(TZFMFILE,'XOR',NXOR_ALL(1),IRESP) IF ( IRESP /= 0 ) THEN WRITE (ILUOUT0,*) '********************************************************' WRITE (ILUOUT0,*) 'position XOR not present in fmfile; no nesting allowed' @@ -157,7 +157,7 @@ IF ( IRESP /= 0 ) THEN RETURN END IF ! -CALL IO_READ_FIELD(TZFMFILE,'YOR',NYOR_ALL(1),IRESP) +CALL IO_Field_read(TZFMFILE,'YOR',NYOR_ALL(1),IRESP) IF ( IRESP /= 0 ) THEN WRITE (ILUOUT0,*) '********************************************************' WRITE (ILUOUT0,*) 'resolution YOR not present in fmfile; no nesting allowed' @@ -166,11 +166,11 @@ IF ( IRESP /= 0 ) THEN RETURN END IF ! -CALL IO_READ_FIELD(TZFMFILE,'IMAX',IIMAX) -CALL IO_READ_FIELD(TZFMFILE,'JMAX',IJMAX) +CALL IO_Field_read(TZFMFILE,'IMAX',IIMAX) +CALL IO_Field_read(TZFMFILE,'JMAX',IJMAX) ! ALLOCATE(ZZS(IIMAX+2*JPHEXT,IJMAX+2*JPHEXT)) -CALL IO_READ_FIELD(TZFMFILE,'ZS',ZZS) +CALL IO_Field_read(TZFMFILE,'ZS',ZZS) ! !* 2. Allocate coarse arrays ! ---------------------- @@ -236,7 +236,7 @@ END IF ! IF (LSLEVE) THEN ! - CALL IO_READ_FIELD(TZFMFILE,'ZSMT',ZZS) + CALL IO_Field_read(TZFMFILE,'ZSMT',ZZS) ! !* 5. Average the smooth orographies ! ------------------------------ diff --git a/src/MNH/close_file_mnh.f90 b/src/MNH/close_file_mnh.f90 index 2bb13e611..6d3d87e4b 100644 --- a/src/MNH/close_file_mnh.f90 +++ b/src/MNH/close_file_mnh.f90 @@ -54,12 +54,12 @@ END MODULE MODI_CLOSE_FILE_MNH ! ------------ ! USE MODD_CONF, ONLY: CPROGRAM -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_IO_NAM, ONLY: TFILE USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_LUNIT_n, ONLY: TLUOUT ! -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll +USE MODE_IO_FILE, ONLY: IO_File_close USE MODE_MSG ! IMPLICIT NONE @@ -96,7 +96,7 @@ END SELECT ! IF (ILUOUT==KUNIT) THEN CALL PRINT_MSG(NVERB_DEBUG,'IO','CLOSE_FILE_MNH','called for '//TRIM(TZFILE%CNAME)) - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) RETURN END IF ! @@ -110,7 +110,7 @@ IF (.NOT.ASSOCIATED(TFILE)) CALL PRINT_MSG(NVERB_FATAL,'IO','CLOSE_FILE_MNH','TF CALL PRINT_MSG(NVERB_DEBUG,'IO','CLOSE_FILE_MNH','called for '//TRIM(TFILE%CNAME)) ! IF (TFILE%NLU==KUNIT) THEN - CALL IO_FILE_CLOSE_ll(TFILE) + CALL IO_File_close(TFILE) TFILE => NULL() ELSE WRITE(ILUOUT,*) 'Error for closing a file: ' diff --git a/src/MNH/compare_dad.f90 b/src/MNH/compare_dad.f90 index 8c2662bb7..4efd6a8f4 100644 --- a/src/MNH/compare_dad.f90 +++ b/src/MNH/compare_dad.f90 @@ -43,8 +43,8 @@ END MODULE MODI_COMPARE_DAD !! EXTERNAL !! -------- !! -!! IO_FILE_OPEN_ll : to open a FM-file (DESFM + LFIFM) -!! IO_FILE_CLOSE_ll : to close a FM-file (DESFM + LFIFM) +!! IO_File_open : to open a FM-file (DESFM + LFIFM) +!! IO_File_close : to close a FM-file (DESFM + LFIFM) !! !! !! @@ -58,7 +58,7 @@ END MODULE MODI_COMPARE_DAD !! !! Original O8/04/04 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -66,15 +66,15 @@ END MODULE MODI_COMPARE_DAD ! ! USE MODD_CONF -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n, ONLY: TLUOUT -USE MODD_PARAMETERS, ONLY: JPHEXT,JPVEXT,NMNHNAMELGTMAX +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT, NMNHNAMELGTMAX ! -USE MODE_FIELD, ONLY : TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_GRIDPROJ -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO_MANAGE_STRUCT, ONLY : IO_File_add2list ! ! IMPLICIT NONE @@ -137,12 +137,12 @@ ZLATORI_2=0. !* 2. Read DAD of initial file ! ------------------------ ! -CALL IO_FILE_ADD2LIST(TZDADINIFILE,TRIM(HDADINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) -CALL IO_FILE_OPEN_ll(TZDADINIFILE) +CALL IO_File_add2list(TZDADINIFILE,TRIM(HDADINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) +CALL IO_File_open(TZDADINIFILE) ! -CALL IO_READ_FIELD(TZDADINIFILE,'IMAX',IIMAX_1) -CALL IO_READ_FIELD(TZDADINIFILE,'JMAX',IJMAX_1) -CALL IO_READ_FIELD(TZDADINIFILE,'KMAX',IKMAX_1) +CALL IO_Field_read(TZDADINIFILE,'IMAX',IIMAX_1) +CALL IO_Field_read(TZDADINIFILE,'JMAX',IJMAX_1) +CALL IO_Field_read(TZDADINIFILE,'KMAX',IKMAX_1) ! IIU_1=IIMAX_1 + 2 * JPHEXT IJU_1=IJMAX_1 + 2 * JPHEXT @@ -151,32 +151,32 @@ IKU_1=IKMAX_1 + 2 * JPVEXT ALLOCATE(ZXHAT_1(IIU_1)) ALLOCATE(ZYHAT_1(IJU_1)) ALLOCATE(ZZHAT_1(IKU_1)) -CALL IO_READ_FIELD(TZDADINIFILE,'XHAT',ZXHAT_1) -CALL IO_READ_FIELD(TZDADINIFILE,'YHAT',ZYHAT_1) -CALL IO_READ_FIELD(TZDADINIFILE,'ZHAT',ZZHAT_1) +CALL IO_Field_read(TZDADINIFILE,'XHAT',ZXHAT_1) +CALL IO_Field_read(TZDADINIFILE,'YHAT',ZYHAT_1) +CALL IO_Field_read(TZDADINIFILE,'ZHAT',ZZHAT_1) ! ALLOCATE(ZZS_1(IIU_1,IJU_1)) -CALL IO_READ_FIELD(TZDADINIFILE,'ZS',ZZS_1) +CALL IO_Field_read(TZDADINIFILE,'ZS',ZZS_1) ! -CALL IO_READ_FIELD(TZDADINIFILE,'LON0',ZLON0_1) -CALL IO_READ_FIELD(TZDADINIFILE,'LAT0',ZLAT0_1) -CALL IO_READ_FIELD(TZDADINIFILE,'BETA',ZBETA_1) +CALL IO_Field_read(TZDADINIFILE,'LON0',ZLON0_1) +CALL IO_Field_read(TZDADINIFILE,'LAT0',ZLAT0_1) +CALL IO_Field_read(TZDADINIFILE,'BETA',ZBETA_1) ! IF (.NOT.LCARTESIAN) THEN - CALL IO_READ_FIELD(TZDADINIFILE,'RPK',ZRPK_1) - CALL IO_READ_FIELD(TZDADINIFILE,'LATORI',ZLATORI_1) - CALL IO_READ_FIELD(TZDADINIFILE,'LONORI',ZLONORI_1) + CALL IO_Field_read(TZDADINIFILE,'RPK',ZRPK_1) + CALL IO_Field_read(TZDADINIFILE,'LATORI',ZLATORI_1) + CALL IO_Field_read(TZDADINIFILE,'LONORI',ZLONORI_1) ! IF (TZDADINIFILE%NMNHVERSION(1)<4 .OR. (TZDADINIFILE%NMNHVERSION(1)==4 .AND. TZDADINIFILE%NMNHVERSION(2)<=5) ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('LONORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LONOR' - CALL IO_READ_FIELD(TZDADINIFILE,TZFIELD,ZLONORI_1) + CALL IO_Field_read(TZDADINIFILE,TZFIELD,ZLONORI_1) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LATORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LATOR' - CALL IO_READ_FIELD(TZDADINIFILE,TZFIELD,ZLATORI_1) + CALL IO_Field_read(TZDADINIFILE,TZFIELD,ZLATORI_1) ! ZXHATM = - 0.5 * (ZXHAT_1(1)+ZXHAT_1(2)) ZYHATM = - 0.5 * (ZYHAT_1(1)+ZYHAT_1(2)) @@ -186,19 +186,19 @@ IF (.NOT.LCARTESIAN) THEN END IF ENDIF ! -CALL IO_FILE_CLOSE_ll(TZDADINIFILE) +CALL IO_File_close(TZDADINIFILE) ! !------------------------------------------------------------------------------- ! !* 3. Read DAD of spawning file ! ------------------------ ! -CALL IO_FILE_ADD2LIST(TZDADSPAFILE,TRIM(HDADSPAFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) -CALL IO_FILE_OPEN_ll(TZDADSPAFILE) +CALL IO_File_add2list(TZDADSPAFILE,TRIM(HDADSPAFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) +CALL IO_File_open(TZDADSPAFILE) ! -CALL IO_READ_FIELD(TZDADSPAFILE,'IMAX',IIMAX_2) -CALL IO_READ_FIELD(TZDADSPAFILE,'JMAX',IJMAX_2) -CALL IO_READ_FIELD(TZDADSPAFILE,'KMAX',IKMAX_2) +CALL IO_Field_read(TZDADSPAFILE,'IMAX',IIMAX_2) +CALL IO_Field_read(TZDADSPAFILE,'JMAX',IJMAX_2) +CALL IO_Field_read(TZDADSPAFILE,'KMAX',IKMAX_2) ! IIU_2=IIMAX_2 + 2 * JPHEXT IJU_2=IJMAX_2 + 2 * JPHEXT @@ -207,32 +207,32 @@ IKU_2=IKMAX_2 + 2 * JPVEXT ALLOCATE(ZXHAT_2(IIU_2)) ALLOCATE(ZYHAT_2(IJU_2)) ALLOCATE(ZZHAT_2(IKU_2)) -CALL IO_READ_FIELD(TZDADSPAFILE,'XHAT',ZXHAT_2) -CALL IO_READ_FIELD(TZDADSPAFILE,'YHAT',ZYHAT_2) -CALL IO_READ_FIELD(TZDADSPAFILE,'ZHAT',ZZHAT_2) +CALL IO_Field_read(TZDADSPAFILE,'XHAT',ZXHAT_2) +CALL IO_Field_read(TZDADSPAFILE,'YHAT',ZYHAT_2) +CALL IO_Field_read(TZDADSPAFILE,'ZHAT',ZZHAT_2) ! ALLOCATE(ZZS_2(IIU_2,IJU_2)) -CALL IO_READ_FIELD(TZDADSPAFILE,'ZS',ZZS_2) +CALL IO_Field_read(TZDADSPAFILE,'ZS',ZZS_2) ! -CALL IO_READ_FIELD(TZDADSPAFILE,'LON0',ZLON0_2) -CALL IO_READ_FIELD(TZDADSPAFILE,'LAT0',ZLAT0_2) -CALL IO_READ_FIELD(TZDADSPAFILE,'BETA',ZBETA_2) +CALL IO_Field_read(TZDADSPAFILE,'LON0',ZLON0_2) +CALL IO_Field_read(TZDADSPAFILE,'LAT0',ZLAT0_2) +CALL IO_Field_read(TZDADSPAFILE,'BETA',ZBETA_2) ! IF (.NOT.LCARTESIAN) THEN - CALL IO_READ_FIELD(TZDADSPAFILE,'RPK',ZRPK_2) - CALL IO_READ_FIELD(TZDADSPAFILE,'LATORI',ZLATORI_2) - CALL IO_READ_FIELD(TZDADSPAFILE,'LONORI',ZLONORI_2) + CALL IO_Field_read(TZDADSPAFILE,'RPK',ZRPK_2) + CALL IO_Field_read(TZDADSPAFILE,'LATORI',ZLATORI_2) + CALL IO_Field_read(TZDADSPAFILE,'LONORI',ZLONORI_2) ! IF (TZDADSPAFILE%NMNHVERSION(1)<4 .OR. (TZDADSPAFILE%NMNHVERSION(1)==4 .AND. TZDADSPAFILE%NMNHVERSION(2)<=5)) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('LONORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LONOR' - CALL IO_READ_FIELD(TZDADSPAFILE,TZFIELD,ZLONORI_2) + CALL IO_Field_read(TZDADSPAFILE,TZFIELD,ZLONORI_2) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LATORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LATOR' - CALL IO_READ_FIELD(TZDADSPAFILE,TZFIELD,ZLATORI_2) + CALL IO_Field_read(TZDADSPAFILE,TZFIELD,ZLATORI_2) ! ZXHATM = - 0.5 * (ZXHAT_2(1)+ZXHAT_2(2)) ZYHATM = - 0.5 * (ZYHAT_2(1)+ZYHAT_2(2)) @@ -242,7 +242,7 @@ IF (.NOT.LCARTESIAN) THEN END IF ENDIF ! -CALL IO_FILE_CLOSE_ll(TZDADSPAFILE) +CALL IO_File_close(TZDADSPAFILE) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/compare_with_pgd_domain.f90 b/src/MNH/compare_with_pgd_domain.f90 index 1378b63db..028dc1f80 100644 --- a/src/MNH/compare_with_pgd_domain.f90 +++ b/src/MNH/compare_with_pgd_domain.f90 @@ -79,8 +79,6 @@ END MODULE MODI_COMPARE_WITH_PGD_DOMAIN !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -USE MODE_IO_ll USE MODE_MSG ! USE MODD_CONF ! declaration modules diff --git a/src/MNH/compute_r00.f90 b/src/MNH/compute_r00.f90 index 2c76d7f39..b3f1d31e7 100644 --- a/src/MNH/compute_r00.f90 +++ b/src/MNH/compute_r00.f90 @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE COMPUTE_R00(TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file ! @@ -56,35 +56,32 @@ END MODULE MODI_COMPUTE_R00 !! change of YCOMMENT !! Mai 2016 (G.Delautier) replace LG?M by LG?T !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ -! -USE MODD_FIELD_n +! +USE MODD_CONF USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_FIELD_n +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n -USE MODD_GRID_n -USE MODD_STO_FILE -USE MODD_CONF +USE MODD_NSV, ONLY: NSV_LGBEG, NSV_LGEND USE MODD_PARAMETERS -USE MODD_NSV, ONLY : NSV_LGBEG,NSV_LGEND -! -USE MODI_SHUMAN -! +USE MODD_STO_FILE +USE MODD_TYPE_DATE USE MODD_VAR_ll ! USE MODE_FIELD -USE MODE_FM -USE MODE_FMWRIT -USE MODE_FMREAD -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Field_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_ll USE MODE_MSG -USE MODD_TYPE_DATE +! +USE MODI_SHUMAN ! IMPLICIT NONE ! @@ -239,8 +236,8 @@ END IF ! is performed DO JFILECUR=1,NFILES ! - CALL IO_FILE_ADD2LIST(TZTRACFILE,CFILES(NBRFILES(JFILECUR)),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TZTRACFILE) + CALL IO_File_add2list(TZTRACFILE,CFILES(NBRFILES(JFILECUR)),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TZTRACFILE) ! !* 4.1 check if this file is a start instant ! @@ -257,7 +254,7 @@ DO JFILECUR=1,NFILES ! IF (GSTART) THEN ! - CALL IO_READ_FIELD(TZTRACFILE,'DTCUR',TDTCUR_START) + CALL IO_Field_read(TZTRACFILE,'DTCUR',TDTCUR_START) IHOUR = INT(TDTCUR_START%TIME/3600.) ZREMAIN = MOD(TDTCUR_START%TIME,3600.) IMINUTE = INT(ZREMAIN/60.) @@ -265,9 +262,9 @@ DO JFILECUR=1,NFILES WRITE(YDATE,FMT='(1X,I4.4,I2.2,I2.2,2X,I2.2,"H",I2.2,"M", & & F5.2,"S")') TDTCUR_START%TDATE, IHOUR,IMINUTE,ZSECOND ! - CALL IO_READ_FIELD(TZTRACFILE,'THT',ZTH0(:,:,:)) + CALL IO_Field_read(TZTRACFILE,'THT',ZTH0(:,:,:)) ! - CALL IO_READ_FIELD(TZTRACFILE,'RVT',ZRV0(:,:,:)) + CALL IO_Field_read(TZTRACFILE,'RVT',ZRV0(:,:,:)) ZRV0(:,:,:)=ZRV0(:,:,:)*1.E+3 ! ZRV0 in g/kg ! END IF @@ -288,7 +285,7 @@ DO JFILECUR=1,NFILES TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZX00(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZX00(:,:,:)) ! WRITE(TZFIELD%CMNHNAME,'(A2,I2.2)')'Y0',INBR_START TZFIELD%CSTDNAME = '' @@ -301,7 +298,7 @@ DO JFILECUR=1,NFILES TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZY00(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZY00(:,:,:)) ! WRITE(TZFIELD%CMNHNAME,'(A2,I2.2)')'Z0',INBR_START TZFIELD%CSTDNAME = '' @@ -314,7 +311,7 @@ DO JFILECUR=1,NFILES TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZZ00(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZZ00(:,:,:)) END IF ! ! @@ -343,7 +340,7 @@ DO JFILECUR=1,NFILES TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK1(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK1(:,:,:)) ! WRITE(TZFIELD%CMNHNAME,'(A3,I2.2)')'RV0',INBR_START TZFIELD%CSTDNAME = '' @@ -356,7 +353,7 @@ DO JFILECUR=1,NFILES TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK2(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2(:,:,:)) ENDIF !* 4.4 compute the origin of the particules using one more segment ! @@ -372,17 +369,17 @@ DO JFILECUR=1,NFILES ! TZFIELD%CMNHNAME = 'LGXT' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TZTRACFILE,TZFIELD,ZX0) + CALL IO_Field_read(TZTRACFILE,TZFIELD,ZX0) ZX0(:,:,:)=ZX0(:,:,:)*1.E-3 ! ZX0 in km ! TZFIELD%CMNHNAME = 'LGYT' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TZTRACFILE,TZFIELD,ZY0) + CALL IO_Field_read(TZTRACFILE,TZFIELD,ZY0) ZY0(:,:,:)=ZY0(:,:,:)*1.E-3 ! ZY0 in km ! TZFIELD%CMNHNAME = 'LGZT' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TZTRACFILE,TZFIELD,ZZ0) + CALL IO_Field_read(TZTRACFILE,TZFIELD,ZZ0) ZZ0(:,:,:)=ZZ0(:,:,:)*1.E-3 ! ZZ0 in km ! ! old position of the set of particles @@ -418,7 +415,7 @@ DO JFILECUR=1,NFILES ! !* 4.5 close the input file ! - CALL IO_FILE_CLOSE_ll(TZTRACFILE) + CALL IO_File_close(TZTRACFILE) ! END DO ! diff --git a/src/MNH/compute_spectre.f90 b/src/MNH/compute_spectre.f90 index 6a31130f0..9d5237cac 100644 --- a/src/MNH/compute_spectre.f90 +++ b/src/MNH/compute_spectre.f90 @@ -61,8 +61,6 @@ USE MODD_CONF USE MODE_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll USE MODD_LUNIT_n, ONLY: TLUOUT -USE MODE_FM -USE MODE_IO_ll USE MODE_MSG USE MODE_SPLITTINGZ_ll ! diff --git a/src/MNH/define_maskn.f90 b/src/MNH/define_maskn.f90 index a22147d55..abd56bf02 100644 --- a/src/MNH/define_maskn.f90 +++ b/src/MNH/define_maskn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################## @@ -63,8 +63,6 @@ USE MODD_LUNIT USE MODD_NESTING USE MODD_NEST_PGD_n ! -USE MODE_FM -USE MODE_IO_ll USE MODE_MSG USE MODE_MODELN_HANDLER ! diff --git a/src/MNH/detect_field_mnh.f90 b/src/MNH/detect_field_mnh.f90 index 1b4fc3b3c..8d94c1c35 100644 --- a/src/MNH/detect_field_mnh.f90 +++ b/src/MNH/detect_field_mnh.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 surfex 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ##################### MODULE MODI_DETECT_FIELD_MNH ! ##################### @@ -72,15 +67,13 @@ SUBROUTINE DETECT_FIELD_MNH(HPROGRAM,KI,KJ,PFIELD,OITSHERE) ! ! ! -USE MODE_FM +USE MODD_PARAMETERS, ONLY: XUNDEF, JPHEXT +USE MODD_IO_SURF_MNH, ONLY: NMASK, NIU, NJU, NIB, NJB, NIE, NJE +! USE MODE_ll -USE MODE_IO_ll - -USE MODD_PARAMETERS, ONLY : XUNDEF, JPHEXT ! -USE MODD_IO_SURF_MNH, ONLY : NMASK, NIU, NJU, NIB, NJB, NIE, NJE - USE MODI_UNPACK_1D_2D +! IMPLICIT NONE ! !* 0.1 declarations of arguments diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90 index f05ff2240..1ad4aa373 100644 --- a/src/MNH/diag.f90 +++ b/src/MNH/diag.f90 @@ -88,7 +88,7 @@ !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! V.Vionnet 07/2017 add LWIND_CONTRAV !! 11/2017 (D. Ricard, P. Marquet) add diagnostics for THETAS -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -106,9 +106,9 @@ USE MODD_DYN USE MODD_DYN_n USE MODD_FIELD_n USE MODD_GR_FIELD_n -USE MODD_GRID, ONLY: XLONORI,XLATORI +USE MODD_GRID, ONLY: XLONORI, XLATORI USE MODD_GRID_n -USE MODD_IO_ll, ONLY: CIO_DIR,NIO_VERB,NVERB_DEBUG,TFILEDATA,TFILE_SURFEX +USE MODD_IO, ONLY: CIO_DIR, NIO_VERB, NVERB_DEBUG, TFILEDATA, TFILE_SURFEX USE MODD_LBC_n USE MODD_LES USE MODD_LES_BUDGET @@ -136,11 +136,10 @@ USE MODD_TURB_n USE MODD_VAR_ll ! USE MODE_DATETIME -USE MODE_FM -USE MODE_FMREAD -USE MODE_FMWRIT, ONLY: IO_WRITE_HEADER -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST,IO_FILE_PRINT_LIST +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_FIELD_WRITE, only: IO_Header_write +USE MODE_IO, only: IO_Config_set, IO_Init +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list,IO_Filelist_print USE MODE_ll USE MODE_MNH_TIMING USE MODE_MODELN_HANDLER @@ -245,7 +244,7 @@ CALL GOTO_MODEL(1) CALL VERSION CPROGRAM='DIAG ' ! -CALL INITIO_ll() +CALL IO_Init() CALL SECOND_MNH2(ZTIME1) ZTIME0=ZTIME1 ! @@ -392,8 +391,8 @@ NDXCOARSE=1 !* 1.0 Namelist reading ! ---------------- ! -CALL IO_FILE_ADD2LIST(TZNMLFILE,'DIAG1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TZNMLFILE) +CALL IO_File_add2list(TZNMLFILE,'DIAG1.nam','NML','READ') +CALL IO_File_open(TZNMLFILE) ILUNAM = TZNMLFILE%NLU ! ! @@ -424,9 +423,9 @@ CALL POSNAM(ILUNAM,'NAM_CONFIO',GFOUND) IF (GFOUND) THEN READ(UNIT=ILUNAM,NML=NAM_CONFIO) END IF -CALL SET_CONFIO_ll() +CALL IO_Config_set() ! -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_File_close(TZNMLFILE) ! CINIFILE = YINIFILE(1) CINIFILEPGD = YINIFILEPGD(1) @@ -459,7 +458,7 @@ ENDIF ! INPRAR = 24 +2*(4+NRR+NSV) ! -CALL IO_FILE_ADD2LIST(TOUTDATAFILE,TRIM(CINIFILE)//YSUFFIX,'MNHDIAG','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) +CALL IO_File_add2list(TOUTDATAFILE,TRIM(CINIFILE)//YSUFFIX,'MNHDIAG','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) ! CALL SECOND_MNH2(ZTIME2) ZSTART=ZTIME2-ZTIME1 @@ -505,7 +504,7 @@ ENDIF ! !* 4.0 Stores the fields in MESONH files if necessary ! -CALL IO_FILE_OPEN_ll(TOUTDATAFILE) +CALL IO_File_open(TOUTDATAFILE) ! CALL WRITE_LFIFM1_FOR_DIAG(TOUTDATAFILE,CDAD_NAME(1)) ! @@ -522,10 +521,10 @@ ZTIME1=ZTIME2 ! IF ( LAIRCRAFT_BALLOON ) THEN ! - CALL IO_FILE_ADD2LIST(TZDIACFILE,TRIM(CINIFILE)//'BAL','MNHDIACHRONIC','WRITE', & + CALL IO_File_add2list(TZDIACFILE,TRIM(CINIFILE)//'BAL','MNHDIACHRONIC','WRITE', & HDIRNAME=CIO_DIR,KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) ! - CALL IO_FILE_OPEN_ll(TZDIACFILE) + CALL IO_File_open(TZDIACFILE) ! WRITE(ILUOUT0,*) ' ' WRITE(ILUOUT0,*) 'DIAG AFTER OPEN DIACHRONIC FILE' @@ -556,11 +555,11 @@ IF ( LAIRCRAFT_BALLOON ) THEN TXDTBAL%TIME=TXDTBAL%TIME + XSTEP_AIRCRAFT_BALLOON CALL DATETIME_CORRECTDATE(TXDTBAL) ENDDO - CALL IO_WRITE_HEADER(TZDIACFILE) + CALL IO_Header_write(TZDIACFILE) CALL WRITE_LFIFMN_FORDIACHRO_n(TZDIACFILE) CALL WRITE_AIRCRAFT_BALLOON(TZDIACFILE) CALL MENU_DIACHRO(TZDIACFILE,'END') - CALL IO_FILE_CLOSE_ll(TZDIACFILE) + CALL IO_File_close(TZDIACFILE) WRITE(ILUOUT0,*) ' ' WRITE(ILUOUT0,*) 'DIAG AFTER CLOSE DIACHRONIC FILE' WRITE(ILUOUT0,*) ' ' @@ -751,12 +750,12 @@ DEALLOCATE(GMASKkids) DEALLOCATE(ZWETDEPAER) IF (GCLOSE_OUT) THEN GCLOSE_OUT=.FALSE. - CALL IO_FILE_CLOSE_ll(TOUTDATAFILE) + CALL IO_File_close(TOUTDATAFILE) END IF ! -CALL IO_FILE_CLOSE_ll(TINIFILE) -IF (LEN_TRIM(CINIFILEPGD)>0) CALL IO_FILE_CLOSE_ll(TINIFILEPGD) -CALL IO_FILE_CLOSE_ll(TLUOUT) +CALL IO_File_close(TINIFILE) +IF (LEN_TRIM(CINIFILEPGD)>0) CALL IO_File_close(TINIFILEPGD) +CALL IO_File_close(TLUOUT) ! CALL SECOND_MNH2(ZTIME2) ZTIME2=ZTIME2-ZTIME0 @@ -802,7 +801,7 @@ ZTIME2=ZTIME2-ZTIME0 !WRITE(ILUOUT0,*) '|---------------------| -------------------|-------------------|' ! ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! WRITE(ILUOUT0,*) ' ' WRITE(ILUOUT0,*) '***************************** **************' @@ -811,7 +810,7 @@ WRITE(ILUOUT0,*) '**************************** ***************' !WRITE(ILUOUT0,*) ' (see time analysis in ',TRIM(TLUOUT0%CNAME),' )' WRITE(ILUOUT0,*) ' ' ! -CALL IO_FILE_CLOSE_ll(TLUOUT0) +CALL IO_File_close(TLUOUT0) !------------------------------------------------------------------------------- ! !* 10. FINALIZE THE PARALLEL SESSION diff --git a/src/MNH/elec_fieldn.f90 b/src/MNH/elec_fieldn.f90 index 6b7aaf8f3..f39cdc7ab 100644 --- a/src/MNH/elec_fieldn.f90 +++ b/src/MNH/elec_fieldn.f90 @@ -1,8 +1,8 @@ - -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######################## MODULE MODI_ELEC_FIELD_n ! ######################## @@ -58,7 +58,6 @@ USE MODI_GRADIENT_M USE MODD_ARGSLIST_ll, ONLY : LIST_ll ! USE MODE_ll -USE MODE_FM ! ! IMPLICIT NONE diff --git a/src/MNH/elec_trid.f90 b/src/MNH/elec_trid.f90 index e8a95db3b..2a8c5aad1 100644 --- a/src/MNH/elec_trid.f90 +++ b/src/MNH/elec_trid.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ##################### @@ -185,7 +185,6 @@ USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! USE MODE_ll -USE MODE_IO_ll USE MODE_MSG ! !JUAN diff --git a/src/MNH/elec_tridz.f90 b/src/MNH/elec_tridz.f90 index 214fc6a88..5c5ce6796 100644 --- a/src/MNH/elec_tridz.f90 +++ b/src/MNH/elec_tridz.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -193,7 +193,6 @@ USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! USE MODE_ll -USE MODE_IO_ll USE MODE_MSG !++cb - Z_SPLITTING USE MODE_SPLITTINGZ_ll , ONLY : GET_DIM_EXTZ_ll,GET_ORZ_ll,LWESTZ_ll,LSOUTHZ_ll diff --git a/src/MNH/endstep_budget.f90 b/src/MNH/endstep_budget.f90 index eff9d4bfe..d6c619db4 100644 --- a/src/MNH/endstep_budget.f90 +++ b/src/MNH/endstep_budget.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !########################## @@ -12,7 +12,7 @@ INTERFACE SUBROUTINE ENDSTEP_BUDGET(TPDIAFILE,KTCOUNT, & TPDTCUR,TPDTMOD,PTSTEP,KSV) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_TYPE_DATE ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write @@ -101,7 +101,7 @@ END MODULE MODI_ENDSTEP_BUDGET !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_TIME USE MODD_BUDGET ! diff --git a/src/MNH/fast_terms.f90 b/src/MNH/fast_terms.f90 index 12bb06a95..eba11a693 100644 --- a/src/MNH/fast_terms.f90 +++ b/src/MNH/fast_terms.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -162,8 +162,6 @@ USE MODD_CONF USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! -USE MODE_FMWRIT -! USE MODI_BUDGET USE MODI_CONDENS USE MODI_GET_HALO diff --git a/src/MNH/flash_geom_elec.f90 b/src/MNH/flash_geom_elec.f90 index e0b13e74f..b34d69118 100644 --- a/src/MNH/flash_geom_elec.f90 +++ b/src/MNH/flash_geom_elec.f90 @@ -13,7 +13,7 @@ INTERFACE TPFILE_FGEOM_DIAG, TPFILE_FGEOM_COORD, TPFILE_LMA, & PTOWN, PSEA ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop counter INTEGER, INTENT(IN) :: KMI ! current model index @@ -98,44 +98,43 @@ END MODULE MODI_FLASH_GEOM_ELEC_n !* 0. DECLARATIONS ! ------------ ! -USE MODD_CST, ONLY : XAVOGADRO, XMD -USE MODD_CONF, ONLY : CEXP, LCARTESIAN -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT -USE MODD_GRID, ONLY : XLATORI,XLONORI -USE MODD_GRID_n, ONLY : XXHAT, XYHAT, XZHAT -USE MODD_DYN_n, ONLY : XDXHATM, XDYHATM, NSTOP -USE MODD_METRICS_n, ONLY : XDXX, XDYY, XDZZ ! in linox_production -USE MODD_ELEC_DESCR -USE MODD_ELEC_PARAM, ONLY : XFQLIGHTR, XEXQLIGHTR, & - XFQLIGHTI, XEXQLIGHTI, & - XFQLIGHTS, XEXQLIGHTS, & - XFQLIGHTG, XEXQLIGHTG, & - XFQLIGHTH, XEXQLIGHTH, & - XFQLIGHTC -USE MODD_RAIN_ICE_DESCR, ONLY : XLBR, XLBEXR, XLBS, XLBEXS, & - XLBG, XLBEXG, XLBH, XLBEXH, & - XRTMIN -USE MODD_NSV, ONLY : NSV_ELECBEG, NSV_ELECEND, NSV_ELEC -USE MODD_VAR_ll, ONLY : NPROC,NMNH_COMM_WORLD -USE MODD_ARGSLIST_ll, ONLY : LIST_ll +USE MODD_ARGSLIST_ll, ONLY: LIST_ll +USE MODD_CONF, ONLY: CEXP, LCARTESIAN +USE MODD_CST, ONLY: XAVOGADRO, XMD +USE MODD_DYN_n, ONLY: XDXHATM, XDYHATM, NSTOP +USE MODD_ELEC_DESCR +USE MODD_ELEC_FLASH +USE MODD_ELEC_PARAM, ONLY: XFQLIGHTR, XEXQLIGHTR, & + XFQLIGHTI, XEXQLIGHTI, & + XFQLIGHTS, XEXQLIGHTS, & + XFQLIGHTG, XEXQLIGHTG, & + XFQLIGHTH, XEXQLIGHTH, & + XFQLIGHTC +USE MODD_GRID, ONLY: XLATORI,XLONORI +USE MODD_GRID_n, ONLY: XXHAT, XYHAT, XZHAT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LMA_SIMULATOR +USE MODD_METRICS_n, ONLY: XDXX, XDYY, XDZZ ! in linox_production +USE MODD_NSV, ONLY: NSV_ELECBEG, NSV_ELECEND, NSV_ELEC +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT +USE MODD_RAIN_ICE_DESCR, ONLY: XLBR, XLBEXR, XLBS, XLBEXS, & + XLBG, XLBEXG, XLBH, XLBEXH, & + XRTMIN USE MODD_SUB_ELEC_n USE MODD_TIME_n -USE MODD_LMA_SIMULATOR -USE MODD_ELEC_FLASH -! -USE MODI_SHUMAN -USE MODI_TO_ELEC_FIELD_n -USE MODI_ION_ATTACH_ELEC +USE MODD_VAR_ll, ONLY: NPROC,NMNH_COMM_WORLD ! +USE MODE_ELEC_ll +USE MODE_GRIDPROJ +USE MODE_ll +USE MODE_MPPDB #ifdef MNH_PGI USE MODE_PACK_PGI #endif ! -USE MODE_ll -USE MODE_ELEC_ll -USE MODE_GRIDPROJ -USE MODE_MPPDB +USE MODI_ION_ATTACH_ELEC +USE MODI_SHUMAN +USE MODI_TO_ELEC_FIELD_n ! IMPLICIT NONE ! diff --git a/src/MNH/forcing.f90 b/src/MNH/forcing.f90 index ebb2873db..e2cecf24f 100644 --- a/src/MNH/forcing.f90 +++ b/src/MNH/forcing.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -151,25 +151,22 @@ END MODULE MODI_FORCING !* 0. DECLARATIONS ! ------------ ! -USE MODE_DATETIME -USE MODE_FM -USE MODE_IO_ll -USE MODE_MSG -! +USE MODD_BUDGET USE MODD_CONF +USE MODD_CST USE MODD_DYN USE MODD_FRC USE MODD_LUNIT USE MODD_PARAMETERS USE MODD_TIME -USE MODD_BUDGET -USE MODD_CST ! -USE MODI_SHUMAN -USE MODI_UPSTREAM_Z -USE MODI_BUDGET +USE MODE_DATETIME +USE MODE_MSG ! +USE MODI_BUDGET USE MODI_GET_HALO +USE MODI_SHUMAN +USE MODI_UPSTREAM_Z ! IMPLICIT NONE ! diff --git a/src/MNH/free_atm_profile.f90 b/src/MNH/free_atm_profile.f90 index fe785ac91..d4ae43d2a 100644 --- a/src/MNH/free_atm_profile.f90 +++ b/src/MNH/free_atm_profile.f90 @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE FREE_ATM_PROFILE(TPFILE,PVAR_MX,PZMASS_MX,PZS_LS,PZSMT_LS,PCLIMGR,& PF_FREE,PZ_FREE) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics REAL, DIMENSION(:,:,:), INTENT(IN) :: PVAR_MX ! thermodynamical field @@ -93,20 +93,20 @@ END MODULE MODI_FREE_ATM_PROFILE ! USE MODD_CONF USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT, ONLY: TLUOUT0 +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_VER_INTERP_LIN ! +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEINT, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write +USE MODE_MPPDB +! USE MODI_COEF_VER_INTERP_LIN USE MODI_PGDFILTER USE MODI_VER_INTERP_LIN USE MODI_VERT_COORD ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEINT, TYPEREAL -USE MODE_FMWRIT -USE MODE_MPPDB -! IMPLICIT NONE ! !* 0.1 Declaration of arguments @@ -477,7 +477,7 @@ IF (CPROGRAM == 'DIAG ' ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,Z2D) + CALL IO_Field_write(TPFILE,TZFIELD,Z2D) ! !* 11.2 Writing of level of boundary layer top ! -------------------------------------- @@ -493,7 +493,7 @@ IF (CPROGRAM == 'DIAG ' ) THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,IK_BL_TOP) + CALL IO_Field_write(TPFILE,TZFIELD,IK_BL_TOP) END IF ! IF (CPROGRAM /= 'DIAG ' .AND. CPROGRAM /= 'IDEAL ' ) THEN @@ -513,7 +513,7 @@ IF (CPROGRAM /= 'DIAG ' .AND. CPROGRAM /= 'IDEAL ' ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,Z2D) + CALL IO_Field_write(TPFILE,TZFIELD,Z2D) ! !* 11.4 Writing of free atmosphere 3D profiles ! -------------------------------------- @@ -534,7 +534,7 @@ IF (CPROGRAM /= 'DIAG ' .AND. CPROGRAM /= 'IDEAL ' ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,Z3D) + CALL IO_Field_write(TPFILE,TZFIELD,Z3D) ! END IF !------------------------------------------------------------------------------- diff --git a/src/MNH/gps_zenith.f90 b/src/MNH/gps_zenith.f90 index ea3602360..613ad8f2b 100644 --- a/src/MNH/gps_zenith.f90 +++ b/src/MNH/gps_zenith.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !########################################## @@ -77,15 +77,15 @@ END MODULE MODI_GPS_ZENITH USE MODD_CST USE MODD_DIAG_FLAG USE MODD_GR_FIELD_n -USE MODD_GRID, ONLY: XLONORI,XLATORI +USE MODD_GRID, ONLY: XLONORI, XLATORI USE MODD_GRID_n USE MODE_GRIDPROJ -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT USE MODD_PARAMETERS ! -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll,IO_FILE_OPEN_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_TOOLS_ll, ONLY: LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll ! USE MODI_INTERPOL_STATION @@ -275,8 +275,8 @@ PRINT *,'Number of GPS STATIONS ', ISTATIONS ! IF (ISTATIONS >0 ) THEN ! - CALL IO_FILE_ADD2LIST(TZFILE,HFGRI,'GPS','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_add2list(TZFILE,HFGRI,'GPS','WRITE') + CALL IO_File_open(TZFILE) IFGRI = TZFILE%NLU PRINT *,'File ',TRIM(HFGRI),' opened with unit= ',IFGRI,' IRESP= ',IRESP WRITE(IFGRI,*,IOSTAT=IRESP) 'Number of STATIONS', ISTATIONS @@ -432,7 +432,7 @@ IF (ISTATIONS >0 ) THEN ! 1000 FORMAT('STATION ',A10,' ZHD: ',F8.5,' ZWD: ',F8.5,' ZTD: ',F8.5) ! - CALL IO_FILE_CLOSE_ll(TZFILE,IRESP) + CALL IO_File_close(TZFILE,IRESP) PRINT *,'File ',TRIM(HFGRI),' closed, IRESP= ',IRESP ! DEALLOCATE(ZXHATM) diff --git a/src/MNH/horibl.f90 b/src/MNH/horibl.f90 index f9d47b2d9..cab3e58d9 100644 --- a/src/MNH/horibl.f90 +++ b/src/MNH/horibl.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1999-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################## @@ -136,13 +136,10 @@ END MODULE MODI_HORIBL !* 0. DECLARATIONS ! --------------- ! -USE MODE_FM -USE MODE_IO_ll -USE MODE_MSG -! USE MODD_LUNIT +USE MODD_PARAMETERS, ONLY: XUNDEF ! -USE MODD_PARAMETERS,ONLY : XUNDEF +USE MODE_MSG ! USE MODI_SECOND_MNH ! diff --git a/src/MNH/ice_adjust.f90 b/src/MNH/ice_adjust.f90 index d1682f4ac..2008de1af 100644 --- a/src/MNH/ice_adjust.f90 +++ b/src/MNH/ice_adjust.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -170,14 +170,13 @@ END MODULE MODI_ICE_ADJUST !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS -USE MODD_CST -USE MODD_CONF USE MODD_BUDGET +USE MODD_CONF +USE MODD_CST +USE MODD_PARAMETERS ! -USE MODI_CONDENSATION USE MODI_BUDGET -USE MODE_FMWRIT +USE MODI_CONDENSATION USE MODI_GET_HALO ! IMPLICIT NONE diff --git a/src/MNH/ice_adjust_elec.f90 b/src/MNH/ice_adjust_elec.f90 index 8a0b414fc..cdc92d380 100644 --- a/src/MNH/ice_adjust_elec.f90 +++ b/src/MNH/ice_adjust_elec.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ $Date$ -!----------------------------------------------------------------- ! ########################### MODULE MODI_ICE_ADJUST_ELEC ! ########################### @@ -186,7 +182,6 @@ USE MODD_RAIN_ICE_DESCR, ONLY : XRTMIN, XBI ! USE MODI_CONDENSATION USE MODI_BUDGET -USE MODE_FMWRIT USE MODI_GET_HALO ! IMPLICIT NONE diff --git a/src/MNH/ini_aircraft_balloon.f90 b/src/MNH/ini_aircraft_balloon.f90 index 28c4089c9..2d5cc4fb3 100644 --- a/src/MNH/ini_aircraft_balloon.f90 +++ b/src/MNH/ini_aircraft_balloon.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2000-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -14,7 +14,7 @@ INTERFACE KRR, KSV, KKU, OUSETKE, & PLATOR, PLONOR ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_TYPE_DATE ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file @@ -85,14 +85,13 @@ USE MODD_CONF USE MODD_DIAG_FLAG USE MODD_DYN_n USE MODD_GRID -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT_n, ONLY : TLUOUT -USE MODD_PARAM_n, ONLY : CCLOUD +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_PARAM_n, ONLY: CCLOUD USE MODD_PARAMETERS ! -USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_GRIDPROJ -USE MODE_IO_ll USE MODE_ll USE MODE_MODELN_HANDLER USE MODE_MSG @@ -455,7 +454,7 @@ END SUBROUTINE ALLOCATE_FLYER !---------------------------------------------------------------------------- SUBROUTINE INI_LAUNCH(KNBR,TPFLYER) ! -USE MODE_FMREAD +use MODE_IO_FIELD_READ, only: IO_Field_read ! INTEGER, INTENT(IN) :: KNBR TYPE(FLYER), INTENT(INOUT) :: TPFLYER @@ -490,7 +489,7 @@ IF ( CPROGRAM == 'MESONH' .OR. CPROGRAM == 'SPAWN ' .OR. CPROGRAM == 'REAL ' ) TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,ZLAT,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,ZLAT,IRESP) ! IF ( IRESP /= 0 ) THEN WRITE(ILUOUT,*) "INI_LAUCH: Initial location take for ",TPFLYER%TITLE @@ -505,7 +504,7 @@ IF ( CPROGRAM == 'MESONH' .OR. CPROGRAM == 'SPAWN ' .OR. CPROGRAM == 'REAL ' ) TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,ZLON) + CALL IO_Field_read(TPINIFILE,TZFIELD,ZLON) ! TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'ALT' TZFIELD%CSTDNAME = '' @@ -517,7 +516,7 @@ IF ( CPROGRAM == 'MESONH' .OR. CPROGRAM == 'SPAWN ' .OR. CPROGRAM == 'REAL ' ) TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,TPFLYER%Z_CUR) + CALL IO_Field_read(TPINIFILE,TZFIELD,TPFLYER%Z_CUR) ! TPFLYER%P_CUR = XUNDEF ! @@ -531,7 +530,7 @@ IF ( CPROGRAM == 'MESONH' .OR. CPROGRAM == 'SPAWN ' .OR. CPROGRAM == 'REAL ' ) TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,TPFLYER%WASCENT) + CALL IO_Field_read(TPINIFILE,TZFIELD,TPFLYER%WASCENT) ! TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'RHO' TZFIELD%CSTDNAME = '' @@ -543,7 +542,7 @@ IF ( CPROGRAM == 'MESONH' .OR. CPROGRAM == 'SPAWN ' .OR. CPROGRAM == 'REAL ' ) TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,TPFLYER%RHO) + CALL IO_Field_read(TPINIFILE,TZFIELD,TPFLYER%RHO) ! CALL SM_XYHAT(PLATOR,PLONOR,& ZLAT,ZLON, & diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index 4593b1fe7..da0eef4b2 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/ini_budget.f90,v $ $Revision: 1.3.2.5.2.2.2.2.10.2.2.5.2.1 $ -! masdev4_8 budget 2008/06/20 10:08:26 -!----------------------------------------------------------------- ! ###################### MODULE MODI_INI_BUDGET ! ###################### @@ -163,8 +158,6 @@ END MODULE MODI_INI_BUDGET !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -! USE MODD_PARAMETERS USE MODD_BUDGET USE MODD_DYN @@ -181,7 +174,6 @@ USE MODD_PARAM_LIMA, ONLY : OWARM=>LWARM, OCOLD=>LCOLD, OSEDI=>LSEDI, & NMOD_CCN ! USE MODE_ll -USE MODE_IO_ll USE MODE_MSG ! IMPLICIT NONE diff --git a/src/MNH/ini_cpl.f90 b/src/MNH/ini_cpl.f90 index a53e37642..c7229f794 100644 --- a/src/MNH/ini_cpl.f90 +++ b/src/MNH/ini_cpl.f90 @@ -140,8 +140,8 @@ END MODULE MODI_INI_CPL !! !! EXTERNAL !! -------- -!! IO_READ_FIELD: to read data in LFI_FM file -!! IO_FILE_CLOSE_ll : to close a FM-file +!! IO_Field_read: to read data in LFI_FM file +!! IO_File_close : to close a FM-file !! INI_LS : to initialize larger scale fields !! INI_LB : to initialize "2D" surfacic LB fields !! DATETIME_DISTANCE : compute the temporal distance in seconds between 2 dates @@ -209,7 +209,7 @@ END MODULE MODI_INI_CPL !! (J.Escobar) 26/03/2014 bug in init of NSV_USER on RESTA case !! (P.Wautelet)28/03/2018 replace TEMPORAL_DIST by DATETIME_DISTANCE !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -218,7 +218,8 @@ USE MODD_CH_MNHC_n USE MODD_CONF USE MODD_CTURB USE MODD_DYN -USE MODD_LUNIT_n, ONLY: CCPLFILE, TCPLFILE, TLUOUT +USE MODD_LUNIT_n, ONLY: CCPLFILE, TCPLFILE, TLUOUT +USE MODD_NESTING USE MODD_NSV USE MODD_PARAMETERS USE MODD_TIME_n @@ -229,12 +230,10 @@ USE MODD_TIME_n ! #endif ! USE MODE_DATETIME -USE MODE_FM, ONLY: IO_FILE_OPEN_ll, IO_FILE_CLOSE_ll -USE MODE_FMREAD -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FILE, only: IO_File_open, IO_File_close +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list USE MODE_MSG -USE MODD_NESTING USE MODE_TIME ! USE MODI_INI_LS @@ -344,15 +343,15 @@ ILUOUT = TLUOUT%NLU ! DO JCI=1,NCPL_NBR WRITE(YCI,'(I2.0)') JCI - CALL IO_FILE_ADD2LIST(TCPLFILE(JCI)%TZFILE,CCPLFILE(JCI),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TCPLFILE(JCI)%TZFILE,KRESP=IRESP) + CALL IO_File_add2list(TCPLFILE(JCI)%TZFILE,CCPLFILE(JCI),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TCPLFILE(JCI)%TZFILE,KRESP=IRESP) IF (IRESP /= 0) THEN CALL PRINT_MSG(NVERB_FATAL,'IO','INI_CPL','problem when opening coupling file '//TRIM(YCI)) END IF ! !* 2.1 Read current time in coupling files ! - CALL IO_READ_FIELD(TCPLFILE(JCI)%TZFILE,'DTCUR',TDTCPL(JCI)) + CALL IO_Field_read(TCPLFILE(JCI)%TZFILE,'DTCUR',TDTCPL(JCI)) ! !* 2.2 Check chronological order ! @@ -445,9 +444,9 @@ END DO ! !* 3.1 Read dimensions in coupling file and checks with initial file ! -CALL IO_READ_FIELD(TCPLFILE(NCPL_CUR)%TZFILE,'IMAX',IIMAX) -CALL IO_READ_FIELD(TCPLFILE(NCPL_CUR)%TZFILE,'JMAX',IJMAX) -CALL IO_READ_FIELD(TCPLFILE(NCPL_CUR)%TZFILE,'KMAX',IKMAX) +CALL IO_Field_read(TCPLFILE(NCPL_CUR)%TZFILE,'IMAX',IIMAX) +CALL IO_Field_read(TCPLFILE(NCPL_CUR)%TZFILE,'JMAX',IJMAX) +CALL IO_Field_read(TCPLFILE(NCPL_CUR)%TZFILE,'KMAX',IKMAX) ! IKU=SIZE(PLSUM,3) ! @@ -510,7 +509,7 @@ CALL INI_LB(TCPLFILE(NCPL_CUR)%TZFILE,GLSOURCE,KSV, & ! !* 3.5 Close the coupling file ! -CALL IO_FILE_CLOSE_ll(TCPLFILE(NCPL_CUR)%TZFILE) +CALL IO_File_close(TCPLFILE(NCPL_CUR)%TZFILE) !!------------------------------------------------------------------------------- ! !* 6. FORMATS diff --git a/src/MNH/ini_deep_convection.f90 b/src/MNH/ini_deep_convection.f90 index 1622565cc..6934822e3 100644 --- a/src/MNH/ini_deep_convection.f90 +++ b/src/MNH/ini_deep_convection.f90 @@ -18,7 +18,7 @@ INTERFACE OCH_CONV_LINOX, PIC_RATE, PCG_RATE, & PIC_TOTAL_NUMBER, PCG_TOTAL_NUMBER ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_TIME ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file @@ -115,27 +115,26 @@ END MODULE MODI_INI_DEEP_CONVECTION !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_TIME -USE MODD_CONVPAR +USE MODD_CH_AEROSOL, ONLY: CAERONAMES USE MODD_CH_M9_n, ONLY: CNAMES -USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES -USE MODD_ICE_C1R3_DESCR, ONLY : C1R3NAMES -USE MODD_ELEC_DESCR, ONLY : CELECNAMES +USE MODD_CONVPAR +USE MODD_DUST, ONLY: CDUSTNAMES +USE MODD_ELEC_DESCR, ONLY: CELECNAMES +USE MODD_ICE_C1R3_DESCR, ONLY: C1R3NAMES +USE MODD_IO, ONLY: TFILEDATA USE MODD_LG, ONLY: CLGNAMES -USE MODD_NSV, ONLY : NSV,NSV_USER,NSV_CHEMBEG,NSV_CHEMEND,NSV_C2R2BEG,NSV_C2R2END, & - NSV_LGBEG,NSV_LGEND,NSV_LNOXBEG,NSV_LNOXEND, & - NSV_DSTBEG,NSV_DSTEND, NSV_AERBEG,NSV_AEREND, & - NSV_SLTBEG,NSV_SLTEND, NSV_PPBEG,NSV_PPEND, & - NSV_C1R3BEG,NSV_C1R3END, NSV_ELECBEG,NSV_ELECEND -USE MODD_CH_AEROSOL, ONLY : CAERONAMES -USE MODD_DUST, ONLY : CDUSTNAMES -USE MODD_SALT, ONLY : CSALTNAMES +USE MODD_NSV, ONLY: NSV, NSV_USER, NSV_CHEMBEG, NSV_CHEMEND, NSV_C2R2BEG, NSV_C2R2END, & + NSV_LGBEG, NSV_LGEND, NSV_LNOXBEG, NSV_LNOXEND, & + NSV_DSTBEG, NSV_DSTEND, NSV_AERBEG, NSV_AEREND, & + NSV_SLTBEG, NSV_SLTEND, NSV_PPBEG, NSV_PPEND, & + NSV_C1R3BEG, NSV_C1R3END, NSV_ELECBEG, NSV_ELECEND +USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES +USE MODD_SALT, ONLY: CSALTNAMES +USE MODD_TIME ! USE MODE_FIELD -USE MODE_FM -USE MODE_FMREAD -USE MODE_TOOLS, ONLY: UPCASE +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_TOOLS, ONLY: UPCASE ! IMPLICIT NONE ! @@ -225,36 +224,36 @@ IF ( OINIDCONV ) THEN ! ELSE ! - CALL IO_READ_FIELD(TPINIFILE,'DTDCONV', TPDTDCONV) - CALL IO_READ_FIELD(TPINIFILE,'COUNTCONV',KCOUNTCONV) - CALL IO_READ_FIELD(TPINIFILE,'DTHCONV', PDTHCONV) - CALL IO_READ_FIELD(TPINIFILE,'DRVCONV', PDRVCONV) - CALL IO_READ_FIELD(TPINIFILE,'DRCCONV', PDRCCONV) - CALL IO_READ_FIELD(TPINIFILE,'DRICONV', PDRICONV) + CALL IO_Field_read(TPINIFILE,'DTDCONV', TPDTDCONV) + CALL IO_Field_read(TPINIFILE,'COUNTCONV',KCOUNTCONV) + CALL IO_Field_read(TPINIFILE,'DTHCONV', PDTHCONV) + CALL IO_Field_read(TPINIFILE,'DRVCONV', PDRVCONV) + CALL IO_Field_read(TPINIFILE,'DRCCONV', PDRCCONV) + CALL IO_Field_read(TPINIFILE,'DRICONV', PDRICONV) ! CALL FIND_FIELD_ID_FROM_MNHNAME('PRCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PPRCONV) + CALL IO_Field_read(TPINIFILE,TZFIELD,PPRCONV) PPRCONV=PPRCONV/(1000.*3600.) ! conversion into m/s units ! CALL FIND_FIELD_ID_FROM_MNHNAME('PRSCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PPRSCONV) + CALL IO_Field_read(TPINIFILE,TZFIELD,PPRSCONV) PPRSCONV=PPRSCONV/(1000.*3600.) ! conversion into m/s units ! CALL FIND_FIELD_ID_FROM_MNHNAME('PACCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PPACCONV) + CALL IO_Field_read(TPINIFILE,TZFIELD,PPACCONV) PPACCONV=PPACCONV/1000. ! conversion into m unit ! IF ( OCH_CONV_LINOX ) THEN - CALL IO_READ_FIELD(TPINIFILE,'IC_RATE', PIC_RATE) - CALL IO_READ_FIELD(TPINIFILE,'CG_RATE', PCG_RATE) - CALL IO_READ_FIELD(TPINIFILE,'IC_TOTAL_NB',PIC_TOTAL_NUMBER) - CALL IO_READ_FIELD(TPINIFILE,'CG_TOTAL_NB',PCG_TOTAL_NUMBER) + CALL IO_Field_read(TPINIFILE,'IC_RATE', PIC_RATE) + CALL IO_Field_read(TPINIFILE,'CG_RATE', PCG_RATE) + CALL IO_Field_read(TPINIFILE,'IC_TOTAL_NB',PIC_TOTAL_NUMBER) + CALL IO_Field_read(TPINIFILE,'CG_TOTAL_NB',PCG_TOTAL_NUMBER) END IF ! ! @@ -272,67 +271,67 @@ ELSE WRITE(TZFIELD%CMNHNAME,'(A7,I3.3)')'DSVCONV',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_C2R2BEG, NSV_C2R2END TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_C1R3BEG, NSV_C1R3END TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_ELECBEG, NSV_ELECEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CELECNAMES(JSV-NSV_ELECBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_CHEMBEG, NSV_CHEMEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(UPCASE(CNAMES(JSV-NSV_CHEMBEG+1))) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_AERBEG, NSV_AEREND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1))) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_LNOXBEG,NSV_LNOXEND TZFIELD%CMNHNAME = 'DSVCONV_LINOX' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_DSTBEG, NSV_DSTEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(UPCASE(CDUSTNAMES(JSV-NSV_DSTBEG+1))) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_SLTBEG, NSV_SLTEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(UPCASE(CSALTNAMES(JSV-NSV_SLTBEG+1))) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_LGBEG, NSV_LGEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CLGNAMES(JSV-NSV_LGBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_PPBEG, NSV_PPEND WRITE(TZFIELD%CMNHNAME,'(A7,I3.3)')'DSVCONV',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO END SELECT ! diff --git a/src/MNH/ini_drag.f90 b/src/MNH/ini_drag.f90 index 39bcf5b53..aea5faa99 100644 --- a/src/MNH/ini_drag.f90 +++ b/src/MNH/ini_drag.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2012-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ###################### MODULE MODI_INI_DRAG ! ###################### @@ -52,7 +53,6 @@ END MODULE MODI_INI_DRAG !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS -USE MODE_FM USE MODE_ll USE MODD_PARAMETERS ! diff --git a/src/MNH/ini_elec.f90 b/src/MNH/ini_elec.f90 index 4dfdd8e47..55ff715c4 100644 --- a/src/MNH/ini_elec.f90 +++ b/src/MNH/ini_elec.f90 @@ -43,26 +43,22 @@ !* 0. DECLARATIONS ! ------------ ! -USE MODE_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODE_IO_ll -USE MODE_FM -USE MODE_FMREAD -! -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT_n -USE MODD_NSV, ONLY : NSV,NSV_ELEC,NSV_ELECBEG,NSV_ELECEND -USE MODD_PARAMETERS -USE MODD_CST USE MODD_CONF +USE MODD_CST USE MODD_DYN +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n +USE MODD_NSV, ONLY: NSV, NSV_ELEC, NSV_ELECBEG, NSV_ELECEND +USE MODD_PARAMETERS USE MODD_REF USE MODD_TIME ! -USE MODN_CONF_n +USE MODE_ll ! USE MODI_INI_CLOUD ! +USE MODN_CONF_n ! IMPLICIT NONE ! diff --git a/src/MNH/ini_elecn.f90 b/src/MNH/ini_elecn.f90 index f668ebc3a..292304f41 100644 --- a/src/MNH/ini_elecn.f90 +++ b/src/MNH/ini_elecn.f90 @@ -12,7 +12,7 @@ INTERFACE PTSTEP, PZZ, & PDXX, PDYY, PDZZ, PDZX, PDZY ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! INTEGER, INTENT(IN) :: KLUOUT ! Logical unit number for prints CHARACTER (LEN=4), INTENT(IN) :: HELEC ! atmospheric electricity scheme @@ -93,7 +93,7 @@ USE MODD_ELEC_n, ONLY : XRHOM_E, XAF_E, XCF_E, XBFY_E, XBFB_E, XBF_SXP2_YP1_Z_E USE MODD_GET_n, ONLY : CGETINPRC, CGETINPRR, CGETINPRS, CGETINPRG, CGETINPRH, & CGETCLOUD, CGETSVT USE MODD_GRID_n, ONLY : XMAP, XDXHAT, XDYHAT -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_LBC_n, ONLY : CLBCX, CLBCY USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAM_C2R2, ONLY : LDEPOC @@ -107,8 +107,6 @@ USE MODD_REF_n, ONLY : XRHODJ, XTHVREF USE MODD_TIME ! USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODE_IO_ll -USE MODE_FMREAD USE MODE_ll ! USE MODI_ELEC_TRIDZ diff --git a/src/MNH/ini_field_elec.f90 b/src/MNH/ini_field_elec.f90 index 9fa4a9fb1..86b68ca99 100644 --- a/src/MNH/ini_field_elec.f90 +++ b/src/MNH/ini_field_elec.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ########################## MODULE MODI_INI_FIELD_ELEC @@ -78,7 +78,6 @@ USE MODI_GDIV USE MODI_SHUMAN ! USE MODE_ll -USE MODE_FM ! IMPLICIT NONE ! diff --git a/src/MNH/ini_lb.f90 b/src/MNH/ini_lb.f90 index 004e340ec..046270d70 100644 --- a/src/MNH/ini_lb.f90 +++ b/src/MNH/ini_lb.f90 @@ -21,7 +21,7 @@ SUBROUTINE INI_LB(TPINIFILE,OLSOURCE,KSV, & PLBYUMM,PLBYVMM,PLBYWMM,PLBYTHMM,PLBYTKEMM,PLBYRMM,PLBYSVMM, & PLENG ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file LOGICAL, INTENT(IN) :: OLSOURCE ! switch for the source term @@ -144,7 +144,7 @@ USE MODD_CONF USE MODD_DUST USE MODD_ELEC_DESCR, ONLY: CELECNAMES USE MODD_ICE_C1R3_DESCR, ONLY: C1R3NAMES -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LG, ONLY: CLGNAMES USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_NSV @@ -157,7 +157,7 @@ USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES USE MODD_SALT ! USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read, IO_Field_read_lb USE MODE_MSG USE MODE_TOOLS, ONLY: UPCASE ! @@ -237,7 +237,7 @@ TYPE(TFIELDDATA) :: TZFIELD !* 0. READ CPL_AROME to know which LB_fileds there are to read ! -------------------- IF ((TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFILE%NMNHVERSION(2)>8) .OR. TPINIFILE%NMNHVERSION(1)>4) THEN - CALL IO_READ_FIELD(TPINIFILE,'CPL_AROME',LCPL_AROME) + CALL IO_Field_read(TPINIFILE,'CPL_AROME',LCPL_AROME) ELSE LCPL_AROME=.FALSE. ENDIF @@ -256,12 +256,12 @@ ILUOUT = TLUOUT%NLU ! !* 2.1 read the number of available points for the horizontal relaxation ! for basic variables -CALL IO_READ_FIELD(TPINIFILE,'RIMX',ILBSIZEX) -CALL IO_READ_FIELD(TPINIFILE,'RIMY',ILBSIZEY) +CALL IO_Field_read(TPINIFILE,'RIMX',ILBSIZEX) +CALL IO_Field_read(TPINIFILE,'RIMY',ILBSIZEY) ! !* 2.2 Basic variables ! -CALL IO_READ_FIELD(TPINIFILE,'HORELAX_UVWTH',GHORELAX_UVWTH) +CALL IO_Field_read(TPINIFILE,'HORELAX_UVWTH',GHORELAX_UVWTH) ! IF (GHORELAX_UVWTH) THEN IRIMX =(KSIZELBX_ll-2*JPHEXT)/2 @@ -284,35 +284,35 @@ ELSE ENDIF ! IF (KSIZELBXU_ll/= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBXUM',IL3DXU,IRIMXU,PLBXUM) + CALL IO_Field_read_lb(TPINIFILE,'LBXUM',IL3DXU,IRIMXU,PLBXUM) END IF IF ( KSIZELBX_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBXVM',IL3DX,IRIMX,PLBXVM) + CALL IO_Field_read_lb(TPINIFILE,'LBXVM',IL3DX,IRIMX,PLBXVM) ENDIF IF ( KSIZELBX_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBXWM',IL3DX,IRIMX,PLBXWM) + CALL IO_Field_read_lb(TPINIFILE,'LBXWM',IL3DX,IRIMX,PLBXWM) END IF IF ( KSIZELBY_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBYUM',IL3DY,IRIMY,PLBYUM) + CALL IO_Field_read_lb(TPINIFILE,'LBYUM',IL3DY,IRIMY,PLBYUM) END IF IF ( KSIZELBYV_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBYVM',IL3DYV,IRIMYV,PLBYVM) + CALL IO_Field_read_lb(TPINIFILE,'LBYVM',IL3DYV,IRIMYV,PLBYVM) END IF IF (KSIZELBY_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBYWM',IL3DY,IRIMY,PLBYWM) + CALL IO_Field_read_lb(TPINIFILE,'LBYWM',IL3DY,IRIMY,PLBYWM) END IF IF (KSIZELBX_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBXTHM',IL3DX,IRIMX,PLBXTHM) + CALL IO_Field_read_lb(TPINIFILE,'LBXTHM',IL3DX,IRIMX,PLBXTHM) END IF IF ( KSIZELBY_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBYTHM',IL3DY,IRIMY,PLBYTHM) + CALL IO_Field_read_lb(TPINIFILE,'LBYTHM',IL3DY,IRIMY,PLBYTHM) END IF ! !* 2.3 LB-TKE @@ -329,7 +329,7 @@ CASE('READ') CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize LBXTKES and LBYTKES') ENDIF ELSE - CALL IO_READ_FIELD(TPINIFILE,'HORELAX_TKE',GHORELAX_TKE) + CALL IO_Field_read(TPINIFILE,'HORELAX_TKE',GHORELAX_TKE) IF (GHORELAX_TKE) THEN IRIMX=(KSIZELBXTKE_ll-2*JPHEXT)/2 IRIMY=(KSIZELBYTKE_ll-2*JPHEXT)/2 @@ -343,11 +343,11 @@ CASE('READ') ENDIF ! IF (KSIZELBXTKE_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBXTKEM',IL3DX,IRIMX,PLBXTKEM) + CALL IO_Field_read_lb(TPINIFILE,'LBXTKEM',IL3DX,IRIMX,PLBXTKEM) END IF ! IF (KSIZELBYTKE_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBYTKEM',IL3DY,IRIMY,PLBYTKEM) + CALL IO_Field_read_lb(TPINIFILE,'LBYTKEM',IL3DY,IRIMY,PLBYTKEM) END IF ENDIF CASE('INIT') @@ -371,7 +371,7 @@ IF(KSIZELBXR_ll > 0 ) THEN TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. ! - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,GHORELAX_R) + CALL IO_Field_read(TPINIFILE,TZFIELD,GHORELAX_R) ! YGETRXM(:)=(/HGETRVM,HGETRCM,HGETRRM,HGETRIM,HGETRSM,HGETRGM,HGETRHM/) YC(:)=(/"V","C","R","I","S","G","H"/) @@ -405,7 +405,7 @@ IF(KSIZELBXR_ll > 0 ) THEN TZFIELD%CLONGNAME = 'LBXR'//YC(JRR)//'M' TZFIELD%CLBTYPE = 'LBX' TZFIELD%CCOMMENT = '2_Y_Z_LBXR'//YC(JRR)//'M' - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXRM(:,:,:,IRR)) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXRM(:,:,:,IRR)) END IF ! IF ( KSIZELBYR_ll /= 0 ) THEN @@ -413,7 +413,7 @@ IF(KSIZELBXR_ll > 0 ) THEN TZFIELD%CLONGNAME = 'LBYR'//YC(JRR)//'M' TZFIELD%CLBTYPE = 'LBY' TZFIELD%CCOMMENT = '2_Y_Z_LBYR'//YC(JRR)//'M' - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYRM(:,:,:,IRR)) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYRM(:,:,:,IRR)) END IF CASE('INIT') IRR=IRR+1 @@ -440,7 +440,7 @@ IF(KSIZELBXR_ll > 0 ) THEN TZFIELD%CLONGNAME = 'LBXR'//YC(JRR)//'M' TZFIELD%CLBTYPE = 'LBX' TZFIELD%CCOMMENT = '2_Y_Z_LBXR'//YC(JRR)//'M' - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXRM(:,:,:,IRR)) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXRM(:,:,:,IRR)) ENDIF END IF ! @@ -458,7 +458,7 @@ IF(KSIZELBXR_ll > 0 ) THEN TZFIELD%CLONGNAME = 'LBYR'//YC(JRR)//'M' TZFIELD%CLBTYPE = 'LBY' TZFIELD%CCOMMENT = '2_Y_Z_LBYR'//YC(JRR)//'M' - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYRM(:,:,:,IRR)) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYRM(:,:,:,IRR)) ENDIF END IF CASE('INIT') @@ -484,7 +484,7 @@ IF (KSV > 0) THEN TZFIELD%NTYPE = TYPELOG TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,GHORELAX_SV) + CALL IO_Field_read(TPINIFILE,TZFIELD,GHORELAX_SV) IF ( GHORELAX_SV ) THEN IRIMX=(KSIZELBXSV_ll-2*JPHEXT)/2 IRIMY=(KSIZELBYSV_ll-2*JPHEXT)/2 @@ -516,7 +516,7 @@ IF (NSV_USER>0) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -535,7 +535,7 @@ IF (NSV_USER>0) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -572,7 +572,7 @@ IF (NSV_C2R2END>=NSV_C2R2BEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -591,7 +591,7 @@ IF (NSV_C2R2END>=NSV_C2R2BEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -628,7 +628,7 @@ IF (NSV_C1R3END>=NSV_C1R3BEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -647,7 +647,7 @@ IF (NSV_C1R3END>=NSV_C1R3BEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -688,7 +688,7 @@ IF (CCLOUD=='LIMA' ) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -707,7 +707,7 @@ IF (CCLOUD=='LIMA' ) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -745,7 +745,7 @@ IF (CCLOUD=='LIMA' ) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -764,7 +764,7 @@ IF (CCLOUD=='LIMA' ) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -802,7 +802,7 @@ IF (NSV_ELECEND>=NSV_ELECBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -820,7 +820,7 @@ IF (NSV_ELECEND>=NSV_ELECBEG) THEN TZFIELD%CMNHNAME = 'LBY_'//TRIM(CELECNAMES(JSV-NSV_ELECBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -857,7 +857,7 @@ IF (NSV_CHGSEND>=NSV_CHGSBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -876,7 +876,7 @@ IF (NSV_CHGSEND>=NSV_CHGSBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -913,7 +913,7 @@ IF (NSV_CHACEND>=NSV_CHACBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -932,7 +932,7 @@ IF (NSV_CHACEND>=NSV_CHACBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -969,7 +969,7 @@ IF (NSV_CHICEND>=NSV_CHICBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -988,7 +988,7 @@ IF (NSV_CHICEND>=NSV_CHICBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1025,7 +1025,7 @@ IF (NSV_AEREND>=NSV_AERBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1044,7 +1044,7 @@ IF (NSV_AEREND>=NSV_AERBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1081,7 +1081,7 @@ IF (NSV_AERDEPEND>=NSV_AERDEPBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1100,7 +1100,7 @@ IF (NSV_AERDEPEND>=NSV_AERDEPBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1137,7 +1137,7 @@ IF (NSV_DSTEND>=NSV_DSTBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1156,7 +1156,7 @@ IF (NSV_DSTEND>=NSV_DSTBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1193,7 +1193,7 @@ IF (NSV_DSTDEPEND>=NSV_DSTDEPBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1212,7 +1212,7 @@ IF (NSV_DSTDEPEND>=NSV_DSTDEPBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1250,7 +1250,7 @@ IF (NSV_SLTEND>=NSV_SLTBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1269,7 +1269,7 @@ IF (NSV_SLTEND>=NSV_SLTBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1306,7 +1306,7 @@ IF (NSV_PPEND>=NSV_PPBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1325,7 +1325,7 @@ IF (NSV_PPEND>=NSV_PPBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1363,7 +1363,7 @@ IF (NSV_FFEND>=NSV_FFBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) WRITE(ILUOUT,*) 'ForeFire LBX_FF ', IRESP IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN @@ -1383,7 +1383,7 @@ IF (NSV_FFEND>=NSV_FFBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1421,7 +1421,7 @@ IF (NSV_CSEND>=NSV_CSBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1440,7 +1440,7 @@ IF (NSV_CSEND>=NSV_CSBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1477,7 +1477,7 @@ IF (NSV_LNOXEND>=NSV_LNOXBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1496,7 +1496,7 @@ IF (NSV_LNOXEND>=NSV_LNOXBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1533,7 +1533,7 @@ IF (NSV_LGEND>=NSV_LGBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1552,7 +1552,7 @@ IF (NSV_LGEND>=NSV_LGBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN diff --git a/src/MNH/ini_lesn.f90 b/src/MNH/ini_lesn.f90 index 3f398b419..48e83c6fb 100644 --- a/src/MNH/ini_lesn.f90 +++ b/src/MNH/ini_lesn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -41,7 +41,6 @@ ! USE MODE_ll USE MODE_GATHER_ll -USE MODE_IO_ll USE MODE_MSG USE MODE_MODELN_HANDLER ! @@ -66,7 +65,6 @@ USE MODD_DYN USE MODD_NSV, ONLY: NSV ! update_nsv is done in INI_MODEL USE MODD_CONDSAMP, ONLY : LCONDSAMP ! - USE MODI_INI_LES_CART_MASKn USE MODI_COEF_VER_INTERP_LIN ! diff --git a/src/MNH/ini_ls.f90 b/src/MNH/ini_ls.f90 index 5cf231784..4fe067049 100644 --- a/src/MNH/ini_ls.f90 +++ b/src/MNH/ini_ls.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -15,7 +15,7 @@ INTERFACE PLSUMM,PLSVMM,PLSWMM,PLSTHMM,PLSRVMM,PDRYMASST,PLENG, & OSTEADY_DMASS) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file CHARACTER (LEN=*), INTENT(IN) :: HGETRVM ! GET indicator @@ -87,10 +87,9 @@ END MODULE MODI_INI_LS !* 0. DECLARATIONS ! USE MODD_CONF -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_TIME ! for type DATE_TIME +USE MODD_IO, ONLY: TFILEDATA ! -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG ! IMPLICIT NONE @@ -134,13 +133,13 @@ LOGICAL, INTENT(IN), OPTIONAL :: OSTEADY_DMASS ! Md ev !* 2. READ LARGE SCALE FIELDS ! ----------------------- ! -CALL IO_READ_FIELD(TPINIFILE,'LSUM', PLSUM) -CALL IO_READ_FIELD(TPINIFILE,'LSVM', PLSVM) -CALL IO_READ_FIELD(TPINIFILE,'LSWM', PLSWM) -CALL IO_READ_FIELD(TPINIFILE,'LSTHM',PLSTHM) +CALL IO_Field_read(TPINIFILE,'LSUM', PLSUM) +CALL IO_Field_read(TPINIFILE,'LSVM', PLSVM) +CALL IO_Field_read(TPINIFILE,'LSWM', PLSWM) +CALL IO_Field_read(TPINIFILE,'LSTHM',PLSTHM) ! IF (HGETRVM == 'READ') THEN ! LS-vapor - CALL IO_READ_FIELD(TPINIFILE,'LSRVM',PLSRVM) + CALL IO_Field_read(TPINIFILE,'LSRVM',PLSRVM) ENDIF ! ! @@ -172,7 +171,7 @@ IF (OLSOURCE) THEN ! Dry mass IF(.NOT. OSTEADY_DMASS) THEN IF (PRESENT(PDRYMASSS).AND.PRESENT(PDRYMASST)) THEN - CALL IO_READ_FIELD(TPINIFILE,'DRYMASST',PDRYMASSS) + CALL IO_Field_read(TPINIFILE,'DRYMASST',PDRYMASSS) PDRYMASSS = (PDRYMASSS - PDRYMASST) / PLENG ENDIF ENDIF diff --git a/src/MNH/ini_micron.f90 b/src/MNH/ini_micron.f90 index e45a6b56b..718eebb46 100644 --- a/src/MNH/ini_micron.f90 +++ b/src/MNH/ini_micron.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE INI_MICRO_n ( TPINIFILE,KLUOUT ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file INTEGER, INTENT(IN) :: KLUOUT ! Logical unit number for prints @@ -61,7 +61,7 @@ END MODULE MODI_INI_MICRO_n ! ! USE MODD_CONF, ONLY : CCONF,CPROGRAM -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_GET_n, ONLY : CGETRCT,CGETRRT, CGETRST, CGETRGT, CGETRHT, CGETCLOUD USE MODD_DIM_n, ONLY : NIMAX_ll, NJMAX_ll USE MODD_PARAMETERS, ONLY : JPVEXT, JPHEXT diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index c4fc6fb9a..20ad8d343 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE INI_MODEL_n(KMI,TPINIFILE) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! Model Index TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file @@ -63,7 +63,7 @@ END MODULE MODI_INI_MODEL_n !! INI_CPL. !! - The initialization of the parameters needed for the dynamics !! of the model n is realized in INI_DYNAMICS. -!! - Then the initial file (DESFM+LFIFM files) is closed by IO_FILE_CLOSE_ll. +!! - Then the initial file (DESFM+LFIFM files) is closed by IO_File_close. !! - The initialization of the parameters needed for the ECMWF radiation !! code is realized in INI_RADIATIONS. !! - The contents of the scalar variables are overwritten by @@ -74,8 +74,6 @@ END MODULE MODI_INI_MODEL_n !! !! EXTERNAL !! -------- -!! FMREAD : to read a LFIFM file -!! FMFREE : to release a logical unit number !! SET_DIM : to initialize dimensions !! SET_GRID : to initialize grid !! METRICS : to compute metric coefficients @@ -278,7 +276,7 @@ END MODULE MODI_INI_MODEL_n !! V. Vionnet : 18/07/2017 : add blowing snow scheme !! 01/18 J.Colin Add DRAG !! P.Wautelet 29/01/2019: bug: add missing zero-size allocations -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables ! P. Wautelet 14/02/2019: remove HINIFILE dummy argument from INI_RADIATIONS_ECMWF/ECRAD !--------------------------------------------------------------------------------- @@ -292,10 +290,10 @@ END MODULE MODI_INI_MODEL_n ! USE MODE_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST -USE MODE_FM, ONLY: IO_FILE_OPEN_ll -USE MODE_FMREAD +USE MODE_IO +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list +USE MODE_IO_FILE, ONLY: IO_File_open +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_GATHER_ll USE MODE_MSG USE MODE_TYPE_ZDIFFU @@ -436,7 +434,7 @@ USE MODD_ADVFRC_n USE MODD_RELFRC_n USE MODD_2D_FRC USE MODD_IO_SURF_MNH, ONLY : IO_SURF_MNH_MODEL -USE MODD_IO_ll, ONLY : CIO_DIR,TFILEDATA,TFILE_DUMMY,TFILE_FIRST,TFILE_LAST +USE MODD_IO, ONLY: CIO_DIR, TFILEDATA, TFILE_DUMMY, TFILE_FIRST, TFILE_LAST ! USE MODD_CH_PRODLOSSTOT_n USE MODI_CH_INIT_PRODLOSSTOT_n @@ -557,11 +555,11 @@ ILUOUT = TLUOUT%NLU !* 2.1 Read number of forcing fields ! IF (LFORCING) THEN ! Retrieve the number of time-dependent forcings. - CALL IO_READ_FIELD(TPINIFILE,'FRC',NFRC,IRESP) + CALL IO_Field_read(TPINIFILE,'FRC',NFRC,IRESP) IF ( (IRESP /= 0) .OR. (NFRC <=0) ) THEN WRITE(ILUOUT,'(A/A)') & "INI_MODEL_n ERROR: you want to read forcing variables from FMfile", & - " but no fields have been found by IO_READ_FIELD" + " but no fields have been found by IO_Field_read" !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_MODEL_n','') END IF @@ -570,11 +568,11 @@ END IF ! Modif PP for time evolving adv forcing IF ( L2D_ADV_FRC ) THEN ! Retrieve the number of time-dependent forcings. WRITE(ILUOUT,FMT=*) "INI_MODEL_n ENTER ADV_FORCING" - CALL IO_READ_FIELD(TPINIFILE,'NADVFRC1',NADVFRC,IRESP) + CALL IO_Field_read(TPINIFILE,'NADVFRC1',NADVFRC,IRESP) IF ( (IRESP /= 0) .OR. (NADVFRC <=0) ) THEN WRITE(ILUOUT,'(A/A)') & "INI_MODELn ERROR: you want to read forcing ADV variables from FMfile", & - " but no fields have been found by IO_READ_FIELD" + " but no fields have been found by IO_Field_read" !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_MODEL_n','') END IF @@ -583,11 +581,11 @@ END IF ! IF ( L2D_REL_FRC ) THEN ! Retrieve the number of time-dependent forcings. WRITE(ILUOUT,FMT=*) "INI_MODEL_n ENTER REL_FORCING" - CALL IO_READ_FIELD(TPINIFILE,'NRELFRC1',NRELFRC,IRESP) + CALL IO_Field_read(TPINIFILE,'NRELFRC1',NRELFRC,IRESP) IF ( (IRESP /= 0) .OR. (NRELFRC <=0) ) THEN WRITE(ILUOUT,'(A/A)') & "INI_MODELn ERROR: you want to read forcing REL variables from FMfile", & - " but no fields have been found by IO_READ_FIELD" + " but no fields have been found by IO_Field_read" !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_MODEL_n','') END IF @@ -598,8 +596,8 @@ END IF IKU=NKMAX+2*JPVEXT ! ALLOCATE(XZHAT(IKU)) -CALL IO_READ_FIELD(TPINIFILE,'ZHAT',XZHAT) -CALL IO_READ_FIELD(TPINIFILE,'ZTOP',XZTOP) +CALL IO_Field_read(TPINIFILE,'ZHAT',XZHAT) +CALL IO_Field_read(TPINIFILE,'ZTOP',XZTOP) IF (XALZBOT>=XZHAT(IKU) .AND. LVE_RELAX) THEN WRITE(ILUOUT,FMT=*) "INI_MODEL_n ERROR: you want to use vertical relaxation" WRITE(ILUOUT,FMT=*) " but bottom of layer XALZBOT(",XALZBOT,")" @@ -1664,7 +1662,7 @@ IF (KMI == 1) THEN DO IMI = 1 , NMODEL WRITE(IO_SURF_MNH_MODEL(IMI)%COUTFILE,'(A,".",I1,".",A)') CEXP,IMI,TRIM(ADJUSTL(CSEG)) WRITE(YNAME, '(A,".",I1,".",A)') CEXP,IMI,TRIM(ADJUSTL(CSEG))//'.000' - CALL IO_FILE_ADD2LIST(LUNIT_MODEL(IMI)%TDIAFILE,YNAME,'MNHDIACHRONIC','WRITE', & + CALL IO_File_add2list(LUNIT_MODEL(IMI)%TDIAFILE,YNAME,'MNHDIACHRONIC','WRITE', & HDIRNAME=CIO_DIR, & KLFINPRAR=INT(50,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=NVERB, & TPDADFILE=LUNIT_MODEL(NDAD(IMI))%TDIAFILE ) @@ -2132,7 +2130,7 @@ ALLOCATE(ZEMIS (IIU,IJU,NLWB_MNH)) ALLOCATE(ZTSRAD (IIU,IJU)) ! IF ((TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFILE%NMNHVERSION(2)>=6) .OR. TPINIFILE%NMNHVERSION(1)>4) THEN - CALL IO_READ_FIELD(TPINIFILE,'SURF',CSURF) + CALL IO_Field_read(TPINIFILE,'SURF',CSURF) ELSE CSURF = "EXTE" END IF @@ -2141,8 +2139,8 @@ END IF IF (CSURF=='EXTE' .AND. (CPROGRAM=='MESONH' .OR. CPROGRAM=='DIAG ')) THEN ! ouverture du fichier PGD IF ( LEN_TRIM(CINIFILEPGD) > 0 ) THEN - CALL IO_FILE_ADD2LIST(TINIFILEPGD,TRIM(CINIFILEPGD),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TINIFILEPGD,KRESP=IRESP) + CALL IO_File_add2list(TINIFILEPGD,TRIM(CINIFILEPGD),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TINIFILEPGD,KRESP=IRESP) LUNIT_MODEL(KMI)%TINIFILEPGD => TINIFILEPGD IF (IRESP/=0) THEN WRITE(ILUOUT,FMT=*) "INI_MODEL_n ERROR TO OPEN THE FILE CINIFILEPGD=",CINIFILEPGD @@ -2184,8 +2182,8 @@ ELSE END IF IF (CSURF=='EXTE' .AND. (CPROGRAM=='SPAWN ')) THEN ! ouverture du fichier PGD - CALL IO_FILE_ADD2LIST(TINIFILEPGD,TRIM(CINIFILEPGD),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TINIFILEPGD,KRESP=IRESP) + CALL IO_File_add2list(TINIFILEPGD,TRIM(CINIFILEPGD),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TINIFILEPGD,KRESP=IRESP) LUNIT_MODEL(KMI)%TINIFILEPGD => TINIFILEPGD IF (IRESP/=0) THEN WRITE(ILUOUT,FMT=*) "INI_MODEL_n ERROR TO OPEN THE FILE CINIFILEPGD=",CINIFILEPGD diff --git a/src/MNH/ini_param_elec.f90 b/src/MNH/ini_param_elec.f90 index fc1adb10d..ca55b7664 100644 --- a/src/MNH/ini_param_elec.f90 +++ b/src/MNH/ini_param_elec.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -12,7 +12,7 @@ INTERFACE SUBROUTINE INI_PARAM_ELEC (TPINIFILE, HGETSVM, PRHO00, & KRR, KND, PFDINFTY, IIU, IJU, IKU ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file CHARACTER (LEN=*), DIMENSION(:),INTENT(IN) :: HGETSVM @@ -94,15 +94,15 @@ USE MODD_CST USE MODD_ELEC_n USE MODD_ELEC_DESCR USE MODD_ELEC_PARAM -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_NSV, ONLY : NSV_ELECEND +USE MODD_IO, ONLY: TFILEDATA +USE MODD_NSV, ONLY: NSV_ELECEND USE MODD_PARAMETERS USE MODD_PARAM_ICE USE MODD_RAIN_ICE_DESCR USE MODD_RAIN_ICE_PARAM USE MODD_VAR_ll ! -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read ! USE MODI_MOMG USE MODI_RRCOLSS @@ -348,10 +348,10 @@ XEW(:,:,:) = 0. ! SELECT CASE(HGETSVM(NSV_ELECEND)) CASE ('READ') - CALL IO_READ_FIELD(TPINIFILE,'NI_IAGGS',XNI_IAGGS) - CALL IO_READ_FIELD(TPINIFILE,'NI_IDRYG',XNI_IDRYG) - CALL IO_READ_FIELD(TPINIFILE,'NI_SDRYG',XNI_SDRYG) - CALL IO_READ_FIELD(TPINIFILE,'INDUC_CG',XIND_RATE) + CALL IO_Field_read(TPINIFILE,'NI_IAGGS',XNI_IAGGS) + CALL IO_Field_read(TPINIFILE,'NI_IDRYG',XNI_IDRYG) + CALL IO_Field_read(TPINIFILE,'NI_SDRYG',XNI_SDRYG) + CALL IO_Field_read(TPINIFILE,'INDUC_CG',XIND_RATE) CASE ('INIT') XNI_IAGGS(:,:,:) = 0. XNI_IDRYG(:,:,:) = 0. diff --git a/src/MNH/ini_posprofilern.f90 b/src/MNH/ini_posprofilern.f90 index 846d52d74..88b86c3cb 100644 --- a/src/MNH/ini_posprofilern.f90 +++ b/src/MNH/ini_posprofilern.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -84,7 +84,6 @@ USE MODD_TYPE_PROFILER USE MODD_TYPE_DATE ! USE MODE_GRIDPROJ -USE MODE_IO_ll USE MODE_ll USE MODE_MSG ! diff --git a/src/MNH/ini_prog_var.f90 b/src/MNH/ini_prog_var.f90 index 75d6242b8..f02cd9c38 100644 --- a/src/MNH/ini_prog_var.f90 +++ b/src/MNH/ini_prog_var.f90 @@ -93,7 +93,7 @@ END MODULE MODI_INI_PROG_VAR !! Mai 2017 (M. Leriche) read aerosol namelists before call ini_nsv !! Mai 2017 (M. Leriche) Get wet dep. sv in Meso-NH init file !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! @@ -110,7 +110,7 @@ USE MODD_DIM_n USE MODD_DUST USE MODD_DYN_n USE MODD_FIELD_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LSFIELD_n USE MODD_LUNIT USE MODD_LUNIT_n, ONLY: TLUOUT @@ -120,11 +120,10 @@ USE MODD_PARAMETERS USE MODD_SALT USE MODD_TURB_n ! -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll, IO_FILE_OPEN_ll -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MODELN_HANDLER USE MODE_MSG USE MODE_POS @@ -215,24 +214,24 @@ ALLOCATE(XSVT(0,0,0,0)) IF(PRESENT(HCHEMFILE)) THEN WRITE(ILUOUT,*) 'Routine INI_PROG_VAR: CHEMical species read in ',TRIM(HCHEMFILE) ! Read dimensions in chem file and checks with output file - CALL IO_FILE_ADD2LIST(TZCHEMFILE,TRIM(HCHEMFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TZCHEMFILE) + CALL IO_File_add2list(TZCHEMFILE,TRIM(HCHEMFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TZCHEMFILE) ! ILUDES = TZCHEMFILE%TDESFILE%NLU ! - CALL IO_READ_FIELD(TZCHEMFILE,'IMAX',IIMAX,IRESP) + CALL IO_Field_read(TZCHEMFILE,'IMAX',IIMAX,IRESP) IF (IRESP/=0) THEN !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR','IMAX not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP ! - CALL IO_READ_FIELD(TZCHEMFILE,'JMAX',IJMAX,IRESP) + CALL IO_Field_read(TZCHEMFILE,'JMAX',IJMAX,IRESP) IF (IRESP/=0) THEN !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR','JMAX not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP ! - CALL IO_READ_FIELD(TZCHEMFILE,'KMAX',IKMAX,IRESP) + CALL IO_Field_read(TZCHEMFILE,'KMAX',IKMAX,IRESP) IF (IRESP/=0) THEN !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR','KMAX not found in the CHEM file '//TRIM(HCHEMFILE)) @@ -286,7 +285,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(CNAMES(JSV-NSV_CHEMBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN WRITE(ILUOUT,*) TRIM(TZFIELD%CMNHNAME),' NOT FOUND IN THE CHEM FILE ',HCHEMFILE XSVT(:,:,:,JSV) = 0. @@ -313,7 +312,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(CAERONAMES(JSV-NSV_AERBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN WRITE(ILUOUT,*) TRIM(TZFIELD%CMNHNAME),'NOT FOUND IN THE CHEM FILE ',HCHEMFILE LORILAM=.FALSE. @@ -338,7 +337,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(CDEAERNAMES(JSV-NSV_AERDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN WRITE(ILUOUT,*) TRIM(TZFIELD%CMNHNAME),'NOT FOUND IN THE CHEM FILE ',HCHEMFILE LDEPOS_AER(IMI)=.FALSE. @@ -367,7 +366,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(YPDUST_INI(ISV_NAME_IDX))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR',TRIM(TZFIELD%CMNHNAME)//' not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP @@ -382,7 +381,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(YPDUST_INI(ISV_NAME_IDX))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR',TRIM(TZFIELD%CMNHNAME)//& ' not found in the CHEM file '//TRIM(HCHEMFILE)) @@ -412,7 +411,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(CDEDSTNAMES(JSV-NSV_DSTDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN WRITE(ILUOUT,*) TRIM(TZFIELD%CMNHNAME),'NOT FOUND IN THE CHEM FILE ',HCHEMFILE LDEPOS_DST(IMI)=.FALSE. @@ -441,7 +440,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(YPSALT_INI(ISV_NAME_IDX))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR',TRIM(TZFIELD%CMNHNAME)//' not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP @@ -456,7 +455,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(YPSALT_INI(ISV_NAME_IDX))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR',TRIM(TZFIELD%CMNHNAME)//' not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP @@ -486,7 +485,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(CDESLTNAMES(JSV-NSV_SLTDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN WRITE(ILUOUT,*) TRIM(TZFIELD%CMNHNAME),'NOT FOUND IN THE CHEM FILE ',HCHEMFILE LDEPOS_SLT(IMI)=.FALSE. @@ -495,7 +494,7 @@ IF(PRESENT(HCHEMFILE)) THEN ENDIF ! ldepos_slt END IF ! LSALT ! - CALL IO_FILE_CLOSE_ll(TZCHEMFILE) + CALL IO_File_close(TZCHEMFILE) ! ELSE ! HCHEMFILE IF (NSV >=1) THEN diff --git a/src/MNH/ini_radiations.f90 b/src/MNH/ini_radiations.f90 index a9af173cf..640467fbb 100644 --- a/src/MNH/ini_radiations.f90 +++ b/src/MNH/ini_radiations.f90 @@ -18,7 +18,7 @@ INTERFACE PRADEFF,PSWU,PSWD,PLWU,PLWD,PDTHRADSW,PDTHRADLW ) ! USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_TYPE_DATE ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file @@ -115,16 +115,16 @@ END MODULE MODI_INI_RADIATIONS ! !MESO-NH modules ! -USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODD_CST, ONLY : XPI -USE MODD_CONF, ONLY : LFLAT, L2D -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_ARGSLIST_ll, ONLY: LIST_ll +USE MODD_CST, ONLY: XPI +USE MODD_CONF, ONLY: LFLAT, L2D +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES -USE MODD_PARAMETERS, ONLY : JPVEXT -USE MODD_PARAM_RAD_n, ONLY : LFIX_DAT +USE MODD_PARAMETERS, ONLY: JPVEXT +USE MODD_PARAM_RAD_n, ONLY: LFIX_DAT USE MODD_TYPE_DATE ! -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll ! USE MODI_SHUMAN @@ -308,16 +308,16 @@ IF ( OINIRAD ) THEN PDIRSRFSWD(:,:,:)= 0. KCLEARCOL_TM1 = 0 ELSE - CALL IO_READ_FIELD(TPINIFILE,'DTRAD_FULL', TPDTRAD_FULL) - CALL IO_READ_FIELD(TPINIFILE,'DTRAD_CLLY', TPDTRAD_CLONLY) - CALL IO_READ_FIELD(TPINIFILE,'DTHRAD', PDTHRAD) - CALL IO_READ_FIELD(TPINIFILE,'FLALWD', PFLALWD) - CALL IO_READ_FIELD(TPINIFILE,'DIRFLASWD', PDIRFLASWD) - CALL IO_READ_FIELD(TPINIFILE,'SCAFLASWD', PSCAFLASWD) - CALL IO_READ_FIELD(TPINIFILE,'DIRSRFSWD', PDIRSRFSWD) - CALL IO_READ_FIELD(TPINIFILE,'CLEARCOL_TM1',KCLEARCOL_TM1) - CALL IO_READ_FIELD(TPINIFILE,'ZENITH', PZENITH) - CALL IO_READ_FIELD(TPINIFILE,'AZIM', PAZIM) + CALL IO_Field_read(TPINIFILE,'DTRAD_FULL', TPDTRAD_FULL) + CALL IO_Field_read(TPINIFILE,'DTRAD_CLLY', TPDTRAD_CLONLY) + CALL IO_Field_read(TPINIFILE,'DTHRAD', PDTHRAD) + CALL IO_Field_read(TPINIFILE,'FLALWD', PFLALWD) + CALL IO_Field_read(TPINIFILE,'DIRFLASWD', PDIRFLASWD) + CALL IO_Field_read(TPINIFILE,'SCAFLASWD', PSCAFLASWD) + CALL IO_Field_read(TPINIFILE,'DIRSRFSWD', PDIRSRFSWD) + CALL IO_Field_read(TPINIFILE,'CLEARCOL_TM1',KCLEARCOL_TM1) + CALL IO_Field_read(TPINIFILE,'ZENITH', PZENITH) + CALL IO_Field_read(TPINIFILE,'AZIM', PAZIM) END IF !------------------------------------------------------------------------------- ! diff --git a/src/MNH/ini_radiations_ecmwf.f90 b/src/MNH/ini_radiations_ecmwf.f90 index 2ee41916e..cf0ba2ebc 100644 --- a/src/MNH/ini_radiations_ecmwf.f90 +++ b/src/MNH/ini_radiations_ecmwf.f90 @@ -196,7 +196,6 @@ USE MODD_STAND_ATM USE MODD_PARAM_RAD_n, ONLY: LFIX_DAT ! USE MODE_ll -USE MODE_FM ! USE MODI_INI_RADCONF USE MODI_INI_HOR_AERCLIM diff --git a/src/MNH/ini_rain_ice.f90 b/src/MNH/ini_rain_ice.f90 index 530ad47cd..9420cb1e7 100644 --- a/src/MNH/ini_rain_ice.f90 +++ b/src/MNH/ini_rain_ice.f90 @@ -107,7 +107,6 @@ END MODULE MODI_INI_RAIN_ICE !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM USE MODD_CST USE MODD_LUNIT USE MODD_PARAMETERS diff --git a/src/MNH/ini_rain_ice_elec.f90 b/src/MNH/ini_rain_ice_elec.f90 index 15721ada4..d352581f8 100644 --- a/src/MNH/ini_rain_ice_elec.f90 +++ b/src/MNH/ini_rain_ice_elec.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! masdev4_7 BUG1 2007/06/15 17:47:18 -!----------------------------------------------------------------- ! ############################# MODULE MODI_INI_RAIN_ICE_ELEC ! ############################# @@ -97,7 +92,6 @@ END MODULE MODI_INI_RAIN_ICE_ELEC !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM USE MODD_CST USE MODD_LUNIT USE MODD_PARAMETERS diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90 index b011e0892..0abca3844 100644 --- a/src/MNH/ini_segn.f90 +++ b/src/MNH/ini_segn.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE INI_SEG_n(KMI,TPINIFILE,HINIFILEPGD,PTSTEP_ALL) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! INTEGER, INTENT(IN) :: KMI !Model index TYPE(TFILEDATA), POINTER, INTENT(OUT) :: TPINIFILE !Initial file @@ -73,7 +73,7 @@ END MODULE MODI_INI_SEG_n !! The name of the initial file is read in EXSEG file. !! - Default values are supplied for variables in descriptor files !! (by DEFAULT_DESFM). -!! - The Initial file (LFIFM + DESFM) is opened by IO_FILE_OPEN_ll. +!! - The Initial file (LFIFM + DESFM) is opened by IO_File_open. !! - The descriptor DESFM file is read (by READ_DESFM_n). !! - The descriptor file EXSEG is read (by READ_EXSEG_n) and coherence !! between the initial file and the description of segment is also checked @@ -90,7 +90,7 @@ END MODULE MODI_INI_SEG_n !! EXTERNAL !! -------- !! FMATTR : to associate a logical unit number to a file -!! IO_FILE_OPEN_ll : to open descriptor file or LFI file +!! IO_File_open : to open descriptor file or LFI file !! DEFAULT_DESFM1: to set default values !! READ_DESFM_n : to read a DESFM file !! READ_EXSEG_n : to read a EXSEG file @@ -162,7 +162,7 @@ END MODULE MODI_INI_SEG_n !! 04/2016 add ABORT if CINIFILEPGD is not specified (G.Delautier) !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! 07/2017 add GBLOWSNOW (V. Vionnet) -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! @@ -172,7 +172,7 @@ USE MODD_CONF USE MODD_CONF_n, ONLY: CSTORAGE_TYPE USE MODN_CONFZ USE MODD_DYN -USE MODD_IO_ll, ONLY: NVERB_FATAL,NVERB_WARNING,TFILE_OUTPUTLISTING,TFILEDATA +USE MODD_IO, ONLY: NVERB_FATAL, NVERB_WARNING, TFILE_OUTPUTLISTING, TFILEDATA USE MODD_LUNIT USE MODD_LUNIT_n, ONLY: CINIFILE_n=> CINIFILE, TINIFILE_n => TINIFILE, CINIFILEPGD_n=> CINIFILEPGD, TLUOUT, LUNIT_MODEL USE MODD_PARAM_n, ONLY: CSURF @@ -180,10 +180,10 @@ USE MODD_PARAMETERS USE MODD_REF, ONLY: LBOUSS ! USE MODE_FIELD -USE MODE_FMREAD -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll, IO_FILE_OPEN_ll -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open +USE MODE_IO, only: IO_Config_set +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MSG USE MODE_POS ! @@ -259,9 +259,9 @@ TZFILE_DES => NULL() ! --------------------------------------- ! WRITE(YMI,'(I2.0)') KMI -CALL IO_FILE_ADD2LIST(LUNIT_MODEL(KMI)%TLUOUT,'OUTPUT_LISTING'//ADJUSTL(YMI),'OUTPUTLISTING','WRITE') +CALL IO_File_add2list(LUNIT_MODEL(KMI)%TLUOUT,'OUTPUT_LISTING'//ADJUSTL(YMI),'OUTPUTLISTING','WRITE') TLUOUT => LUNIT_MODEL(KMI)%TLUOUT !Necessary because TLUOUT was initially pointing to NULL -CALL IO_FILE_OPEN_ll(TLUOUT) +CALL IO_File_open(TLUOUT) ! !Set output file for PRINT_MSG TFILE_OUTPUTLISTING => TLUOUT @@ -272,8 +272,8 @@ WRITE(UNIT=ILUOUT,FMT='(50("*"),/,"*",17X,"MODEL ",I1," LISTING",16X,"*",/, & & 50("*"))') KMI ! IF (CPROGRAM=='MESONH') THEN - CALL IO_FILE_ADD2LIST(TZFILE_DES,'EXSEG'//TRIM(ADJUSTL(YMI))//'.nam','NML','READ') - CALL IO_FILE_OPEN_ll(TZFILE_DES) + CALL IO_File_add2list(TZFILE_DES,'EXSEG'//TRIM(ADJUSTL(YMI))//'.nam','NML','READ') + CALL IO_File_open(TZFILE_DES) ! !* 1.3 SPAWNING or SPEC or REAL program case ! --------------------- @@ -281,8 +281,8 @@ IF (CPROGRAM=='MESONH') THEN ELSE IF (CPROGRAM=='SPAWN ' .OR. CPROGRAM=='REAL '.OR. CPROGRAM=='SPEC ') THEN YINIFILE = CINIFILE_n HINIFILEPGD = CINIFILEPGD_n - CALL IO_FILE_ADD2LIST(TPINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TPINIFILE) + CALL IO_File_add2list(TPINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TPINIFILE) TZFILE_DES => TPINIFILE%TDESFILE ! !* 1.3bis DIAG program case @@ -290,8 +290,8 @@ ELSE IF (CPROGRAM=='SPAWN ' .OR. CPROGRAM=='REAL '.OR. CPROGRAM=='SPEC ') THEN ELSE IF (CPROGRAM=='DIAG ') THEN YINIFILE = CINIFILE_n HINIFILEPGD = CINIFILEPGD_n - CALL IO_FILE_ADD2LIST(TINIFILE_n,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TINIFILE_n) + CALL IO_File_add2list(TINIFILE_n,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TINIFILE_n) TPINIFILE => TINIFILE_n TZFILE_DES => TPINIFILE%TDESFILE ! @@ -334,14 +334,14 @@ IF (CPROGRAM=='MESONH') THEN IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_CONFZ) CALL POSNAM(ILUSEG,'NAM_CONFIO',GFOUND,ILUOUT) IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_CONFIO) - CALL SET_CONFIO_ll() + CALL IO_Config_set() END IF HINIFILEPGD=CINIFILEPGD_n YINIFILE=CINIFILE_n - CALL IO_FILE_ADD2LIST(TPINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_add2list(TPINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) TINIFILE_n => TPINIFILE !Necessary because TINIFILE was initially pointing to NULL - CALL IO_FILE_OPEN_ll(TPINIFILE) + CALL IO_File_open(TPINIFILE) END IF ! !------------------------------------------------------------------------------- @@ -384,7 +384,7 @@ END IF ! IF (CPROGRAM=='MESONH' .OR. CPROGRAM=='SPAWN ') THEN IF ((TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFILE%NMNHVERSION(2)>9) .OR. TPINIFILE%NMNHVERSION(1)>4) THEN - CALL IO_READ_FIELD(TPINIFILE,'COUPLING',LCOUPLING) + CALL IO_Field_read(TPINIFILE,'COUPLING',LCOUPLING) IF (LCOUPLING) THEN WRITE(ILUOUT,*) 'Error with the initial file' WRITE(ILUOUT,*) 'The file',YINIFILE,' was created with LCOUPLING=.TRUE.' @@ -397,7 +397,7 @@ IF (CPROGRAM=='MESONH' .OR. CPROGRAM=='SPAWN ') THEN END IF ! ! Read the storage type - CALL IO_READ_FIELD(TPINIFILE,'STORAGE_TYPE',CSTORAGE_TYPE,IRESP) + CALL IO_Field_read(TPINIFILE,'STORAGE_TYPE',CSTORAGE_TYPE,IRESP) IF (IRESP /= 0) THEN WRITE(ILUOUT,FMT=9002) 'STORAGE_TYPE',IRESP !callabortstop @@ -405,18 +405,18 @@ END IF END IF IF (KMI == 1) THEN ! Read the geometry kind - CALL IO_READ_FIELD(TPINIFILE,'CARTESIAN',LCARTESIAN) + CALL IO_Field_read(TPINIFILE,'CARTESIAN',LCARTESIAN) ! Read the thinshell approximation - CALL IO_READ_FIELD(TPINIFILE,'THINSHELL',LTHINSHELL) + CALL IO_Field_read(TPINIFILE,'THINSHELL',LTHINSHELL) ! IF ((TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFILE%NMNHVERSION(2)>=6) .OR. TPINIFILE%NMNHVERSION(1)>4) THEN - CALL IO_READ_FIELD(TPINIFILE,'L1D',L1D,IRESP) + CALL IO_Field_read(TPINIFILE,'L1D',L1D,IRESP) IF (IRESP/=0) L1D=.FALSE. ! - CALL IO_READ_FIELD(TPINIFILE,'L2D',L2D,IRESP) + CALL IO_Field_read(TPINIFILE,'L2D',L2D,IRESP) IF (IRESP/=0) L2D=.FALSE. ! - CALL IO_READ_FIELD(TPINIFILE,'PACK',LPACK,IRESP) + CALL IO_Field_read(TPINIFILE,'PACK',LPACK,IRESP) IF (IRESP/=0) LPACK=.TRUE. ELSE L1D=.FALSE. @@ -424,7 +424,7 @@ IF (KMI == 1) THEN LPACK=.TRUE. END IF IF ((TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFILE%NMNHVERSION(2)>=10) .OR. TPINIFILE%NMNHVERSION(1)>4) THEN - CALL IO_READ_FIELD(TPINIFILE,'LBOUSS',LBOUSS) + CALL IO_Field_read(TPINIFILE,'LBOUSS',LBOUSS) END IF ! END IF @@ -467,7 +467,7 @@ END IF !* 7. CLOSE FILES ! ------------ ! -IF (CPROGRAM=='MESONH') CALL IO_FILE_CLOSE_ll(TZFILE_DES) +IF (CPROGRAM=='MESONH') CALL IO_File_close(TZFILE_DES) ! !------------------------------------------------------------------------------- 9002 FORMAT(/,'FATAL ERROR IN INI_SEG_n: pb to read ',A16,' IRESP=',I3) diff --git a/src/MNH/ini_seriesn.f90 b/src/MNH/ini_seriesn.f90 index e584ca73a..a6f861ec4 100644 --- a/src/MNH/ini_seriesn.f90 +++ b/src/MNH/ini_seriesn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################## @@ -47,7 +47,6 @@ ! -------------- ! USE MODE_ll -USE MODE_IO_ll USE MODE_MSG USE MODE_MODELN_HANDLER ! diff --git a/src/MNH/ini_size_spawn.f90 b/src/MNH/ini_size_spawn.f90 index e8707b14f..ee52cc7b6 100644 --- a/src/MNH/ini_size_spawn.f90 +++ b/src/MNH/ini_size_spawn.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE INI_SIZE_SPAWN(HLBCX,HLBCY,HPRESOPT,KITR,TPINIFILE) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! CHARACTER (LEN=4),DIMENSION(2), INTENT(IN) :: HLBCX,HLBCY ! LBC types for model1 CHARACTER (LEN=5), INTENT(IN) :: HPRESOPT ! Pressure solver option of model1 @@ -44,9 +44,9 @@ END MODULE MODI_INI_SIZE_SPAWN !! EXTERNAL !! -------- !! DEFAULT_DESFM2 -!! IO_FILE_OPEN_ll +!! IO_File_open !! READ_HGRID -!! IO_FILE_CLOSE_ll +!! IO_File_close !! RETRIEVE_NEST_INFO !! !! IMPLICIT ARGUMENTS @@ -67,35 +67,34 @@ END MODULE MODI_INI_SIZE_SPAWN !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! USE MODD_CONF -USE MODD_DIM_n, ONLY : DIM_MODEL -USE MODD_DYN_n, ONLY : CPRESOPT, NITR +USE MODD_DIM_n, ONLY: DIM_MODEL +USE MODD_DYN_n, ONLY: CPRESOPT, NITR USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY : ISNPROC, ISP, TFILEDATA +USE MODD_IO, ONLY: ISNPROC, ISP, TFILEDATA USE MODD_LBC_n USE MODD_LUNIT_n USE MODD_PARAMETERS USE MODD_PGDDIM USE MODD_PGDGRID USE MODD_SPAWN -USE MODD_VAR_ll, ONLY : YSPLITTING +USE MODD_VAR_ll, ONLY: YSPLITTING ! -USE MODE_ll -USE MODE_FIELD, ONLY : TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME USE MODE_GRIDPROJ -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list +USE MODE_ll USE MODE_MSG USE MODE_MODELN_HANDLER USE MODE_SPLITTINGZ_ll @@ -187,7 +186,7 @@ IF (LBAL_ONLY) THEN !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SIZE_SPAWN','YDADINIFILE not initialized in namelist NAM_LUNIT2_SPA') ELSE - CALL IO_READ_FIELD(TPINIFILE,'DAD_NAME',YDAD_NAME) + CALL IO_Field_read(TPINIFILE,'DAD_NAME',YDAD_NAME) IF (ADJUSTL(ADJUSTR(YDAD_NAME)) .NE. ADJUSTL(ADJUSTR(CDADINIFILE))) THEN WRITE(ILUOUT,*) 'ERROR in INI_SIZE_SPAWN: YDADINIFILE is NOT the DAD of model 1' WRITE(ILUOUT,*) ' YDADINIFILE='//TRIM(CDADINIFILE) @@ -212,12 +211,12 @@ ENDIF ! IF (LEN_TRIM(CDOMAIN)>0) THEN ! - CALL IO_READ_FIELD(TPINIFILE,'LAT0', XLAT0) - CALL IO_READ_FIELD(TPINIFILE,'LON0', XLON0) - CALL IO_READ_FIELD(TPINIFILE,'RPK', XRPK) - CALL IO_READ_FIELD(TPINIFILE,'BETA', XBETA) - CALL IO_READ_FIELD(TPINIFILE,'LATORI',XPGDLATOR) - CALL IO_READ_FIELD(TPINIFILE,'LONORI',XPGDLONOR) + CALL IO_Field_read(TPINIFILE,'LAT0', XLAT0) + CALL IO_Field_read(TPINIFILE,'LON0', XLON0) + CALL IO_Field_read(TPINIFILE,'RPK', XRPK) + CALL IO_Field_read(TPINIFILE,'BETA', XBETA) + CALL IO_Field_read(TPINIFILE,'LATORI',XPGDLATOR) + CALL IO_Field_read(TPINIFILE,'LONORI',XPGDLONOR) ! !$20140602 INSERT BIG MODIF JUAN May27 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -227,15 +226,15 @@ IF (LEN_TRIM(CDOMAIN)>0) THEN ! initialize grid2 dims, xor, xend and ratio so to initialize in INI_CHILD ! structures TCRRT_COMDATA%T_CHILDREN%T_SPLITB and TCRRT_PROCONF%T_CHILDREN !$20140602 add condition on npproc - CALL IO_FILE_ADD2LIST(TZDOMAIN,TRIM(CDOMAIN),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TZDOMAIN) + CALL IO_File_add2list(TZDOMAIN,TRIM(CDOMAIN),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TZDOMAIN) ! - CALL IO_READ_FIELD(TZDOMAIN,'DXRATIO',NDXRATIO) - CALL IO_READ_FIELD(TZDOMAIN,'DYRATIO',NDYRATIO) - CALL IO_READ_FIELD(TZDOMAIN,'XOR', NXOR) - CALL IO_READ_FIELD(TZDOMAIN,'YOR', NYOR) - CALL IO_READ_FIELD(TZDOMAIN,'IMAX', IIMAX_ll) - CALL IO_READ_FIELD(TZDOMAIN,'JMAX', IJMAX_ll) + CALL IO_Field_read(TZDOMAIN,'DXRATIO',NDXRATIO) + CALL IO_Field_read(TZDOMAIN,'DYRATIO',NDYRATIO) + CALL IO_Field_read(TZDOMAIN,'XOR', NXOR) + CALL IO_Field_read(TZDOMAIN,'YOR', NYOR) + CALL IO_Field_read(TZDOMAIN,'IMAX', IIMAX_ll) + CALL IO_Field_read(TZDOMAIN,'JMAX', IJMAX_ll) NXEND=NXOR+IIMAX_ll/NDXRATIO+2*JPHEXT-1 NYEND=NYOR+IJMAX_ll/NDYRATIO+2*JPHEXT-1 ! @@ -258,21 +257,21 @@ IF (LEN_TRIM(CDOMAIN)>0) THEN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !$ ALLOCATE(XPGDXHAT(DIM_MODEL(1)%NIMAX+2*JPHEXT)) - CALL IO_READ_FIELD(TPINIFILE,'XHAT',XPGDXHAT) + CALL IO_Field_read(TPINIFILE,'XHAT',XPGDXHAT) ! ALLOCATE(XPGDYHAT(DIM_MODEL(1)%NJMAX+2*JPHEXT)) - CALL IO_READ_FIELD(TPINIFILE,'YHAT',XPGDYHAT) + CALL IO_Field_read(TPINIFILE,'YHAT',XPGDYHAT) ! IF (TPINIFILE%NMNHVERSION(1)<4 .OR. (TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFILE%NMNHVERSION(2)<=5)) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('LONORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LONOR' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,XPGDLONOR) + CALL IO_Field_read(TPINIFILE,TZFIELD,XPGDLONOR) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LATORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LATOR' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,XPGDLATOR) + CALL IO_Field_read(TPINIFILE,TZFIELD,XPGDLATOR) ! ZXHATM = - 0.5 * (XPGDXHAT(1)+XPGDXHAT(2)) ZYHATM = - 0.5 * (XPGDYHAT(1)+XPGDYHAT(2)) @@ -285,7 +284,7 @@ IF (LEN_TRIM(CDOMAIN)>0) THEN !* 1.4 read grid in file CDOMAIN if available : ! CALL READ_HGRID(2,TZDOMAIN,YMY_NAME,YDAD_NAME,YSTORAGE_TYPE) - CALL IO_FILE_CLOSE_ll(TZDOMAIN) + CALL IO_File_close(TZDOMAIN) CALL RETRIEVE1_NEST_INFO_n(1,2,NXOR,NYOR,NXSIZE,NYSIZE,NDXRATIO,NDYRATIO) DEALLOCATE(XZS,XZSMT,XXHAT,XYHAT) ! diff --git a/src/MNH/ini_sizen.f90 b/src/MNH/ini_sizen.f90 index e3e757376..5e21aeeaf 100644 --- a/src/MNH/ini_sizen.f90 +++ b/src/MNH/ini_sizen.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE INI_SIZE_n( KMI, TPINIFILE, HINIFILEPGD ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! INTEGER, INTENT(IN) :: KMI !Model Index TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file @@ -54,7 +54,7 @@ END MODULE MODI_INI_SIZE_n !! !! EXTERNAL !! -------- -!! IO_READ_FIELD : to read a LFIFM file +!! IO_Field_read : to read a LFIFM file !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -101,21 +101,20 @@ END MODULE MODI_INI_SIZE_n !* 0. DECLARATIONS ! ------------ ! -USE MODD_CONF, ONLY: CCONF, LCARTESIAN, NVERB, LTHINSHELL, NHALO, CSPLIT, & - L1D, L2D, LPACK -USE MODD_CONFZ, ONLY: NZ_PROC -USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX -USE MODD_DYN, ONLY: LCORIO -USE MODD_IO_ll, ONLY: GSMONOPROC, TFILEDATA -USE MODD_LBC_n, ONLY: CLBCX, CLBCY -USE MODD_LUNIT_n, ONLY: CINIFILE, CINIFILEPGD, TLUOUT -USE MODD_NESTING, ONLY: CMY_NAME, CDAD_NAME, NDAD, NDXRATIO_ALL, NDYRATIO_ALL, & - NXOR_ALL, NYOR_ALL, NXEND_ALL,NYEND_ALL -USE MODD_PARAMETERS, ONLY: JPMODELMAX, JPHEXT,JPVEXT -! -USE MODE_FM, ONLY: SET_FMPACK_ll -USE MODE_FMREAD -USE MODE_IO_ll +USE MODD_CONF, ONLY: CCONF, LCARTESIAN, NVERB, LTHINSHELL, NHALO, CSPLIT, & + L1D, L2D, LPACK +USE MODD_CONFZ, ONLY: NZ_PROC +USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX +USE MODD_DYN, ONLY: LCORIO +USE MODD_IO, ONLY: GSMONOPROC, TFILEDATA +USE MODD_LBC_n, ONLY: CLBCX, CLBCY +USE MODD_LUNIT_n, ONLY: CINIFILE, CINIFILEPGD, TLUOUT +USE MODD_NESTING, ONLY: CMY_NAME, CDAD_NAME, NDAD, NDXRATIO_ALL, NDYRATIO_ALL, & + NXOR_ALL, NYOR_ALL, NXEND_ALL,NYEND_ALL +USE MODD_PARAMETERS, ONLY: JPMODELMAX, JPHEXT,JPVEXT +! +USE MODE_IO, ONLY: IO_Pack_set +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll USE MODE_MSG USE MODE_POS @@ -150,14 +149,14 @@ CINIFILEPGD=HINIFILEPGD ! !* 2.0 Retrieve DAD_NAME and MY_NAME to check the DAD model identity ! -CALL IO_READ_FIELD(TPINIFILE,'MY_NAME',CMY_NAME(KMI),IRESP) +CALL IO_Field_read(TPINIFILE,'MY_NAME',CMY_NAME(KMI),IRESP) IF (IRESP /= 0) THEN WRITE(ILUOUT,FMT=9000) 'MY_NAME',IRESP !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SIZE_n','') END IF ! -CALL IO_READ_FIELD(TPINIFILE,'DAD_NAME',CDAD_NAME(KMI),IRESP) +CALL IO_Field_read(TPINIFILE,'DAD_NAME',CDAD_NAME(KMI),IRESP) IF (IRESP /= 0) THEN WRITE(ILUOUT,FMT=9000) 'DAD_NAME',IRESP !callabortstop @@ -185,10 +184,10 @@ END IF !* 3.1 Read dimensions in initial file and initialize subdomain ! dimensions and parallel variables ! -CALL IO_READ_FIELD(TPINIFILE,'IMAX', NIMAX_ll) -CALL IO_READ_FIELD(TPINIFILE,'JMAX', NJMAX_ll) -CALL IO_READ_FIELD(TPINIFILE,'KMAX', NKMAX) -CALL IO_READ_FIELD(TPINIFILE,'JPHEXT',IJPHEXT) +CALL IO_Field_read(TPINIFILE,'IMAX', NIMAX_ll) +CALL IO_Field_read(TPINIFILE,'JMAX', NJMAX_ll) +CALL IO_Field_read(TPINIFILE,'KMAX', NKMAX) +CALL IO_Field_read(TPINIFILE,'JPHEXT',IJPHEXT) ! IF ( IJPHEXT .NE. JPHEXT ) THEN WRITE(ILUOUT,FMT=*) ' INI_SIZE_N : JPHEXT in namelist NAM_CONF ( or default or .des value )& @@ -218,10 +217,10 @@ ENDIF ! read the nested model location in its father's grid ! and compute the coordinates of the corner points IF (LEN_TRIM(CDAD_NAME(KMI))>0) THEN - CALL IO_READ_FIELD(TPINIFILE,'DXRATIO',NDXRATIO_ALL(KMI)) - CALL IO_READ_FIELD(TPINIFILE,'DYRATIO',NDYRATIO_ALL(KMI)) - CALL IO_READ_FIELD(TPINIFILE,'XOR',NXOR_ALL(KMI)) - CALL IO_READ_FIELD(TPINIFILE,'YOR',NYOR_ALL(KMI)) + CALL IO_Field_read(TPINIFILE,'DXRATIO',NDXRATIO_ALL(KMI)) + CALL IO_Field_read(TPINIFILE,'DYRATIO',NDYRATIO_ALL(KMI)) + CALL IO_Field_read(TPINIFILE,'XOR',NXOR_ALL(KMI)) + CALL IO_Field_read(TPINIFILE,'YOR',NYOR_ALL(KMI)) NXEND_ALL(KMI)=NXOR_ALL(KMI)-1 + NIMAX_ll/NDXRATIO_ALL(KMI) +2*JPHEXT NYEND_ALL(KMI)=NYOR_ALL(KMI)-1 + NJMAX_ll/NDYRATIO_ALL(KMI) +2*JPHEXT ELSE @@ -273,7 +272,7 @@ IF (KMI == 1) THEN CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SIZE_n','this is a 2D simulation: it has to be performed in monoprocess mode') ENDIF ! - CALL SET_FMPACK_ll(L1D,L2D,LPACK) + CALL IO_Pack_set(L1D,L2D,LPACK) ! END IF !------------------------------------------------------------------------------- diff --git a/src/MNH/ini_spectren.f90 b/src/MNH/ini_spectren.f90 index 93075f50a..e18f019a1 100644 --- a/src/MNH/ini_spectren.f90 +++ b/src/MNH/ini_spectren.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE INI_SPECTRE_n(KMI,TPINIFILE) ! - USE MODD_IO_ll, ONLY: TFILEDATA + USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file @@ -71,7 +71,7 @@ USE MODD_FRC_n USE MODD_GET_n USE MODD_GRID, ONLY: XLONORI,XLATORI USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LBC_n USE MODD_LSFIELD_n USE MODD_LUNIT_n, ONLY: COUTFILE, TLUOUT @@ -106,9 +106,8 @@ USE MODD_TURB_n USE MODD_VAR_ll, ONLY: IP ! USE MODD_ARGSLIST_ll, ONLY: LIST_ll -USE MODE_FMREAD USE MODE_GATHER_ll -USE MODE_IO_ll +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll USE MODE_MODELN_HANDLER USE MODE_MSG @@ -221,8 +220,8 @@ ILUOUT = TLUOUT%NLU IKU=NKMAX+2*JPVEXT ! ALLOCATE(XZHAT(IKU)) -CALL IO_READ_FIELD(TPINIFILE,'ZHAT',XZHAT) -CALL IO_READ_FIELD(TPINIFILE,'ZTOP',XZTOP) +CALL IO_Field_read(TPINIFILE,'ZHAT',XZHAT) +CALL IO_Field_read(TPINIFILE,'ZTOP',XZTOP) IF (XALZBOT>=XZHAT(IKU) .AND. LVE_RELAX) THEN WRITE(ILUOUT,FMT=*) "INI_SPECTRE_n ERROR: you want to use vertical relaxation" WRITE(ILUOUT,FMT=*) " but bottom of layer XALZBOT(",XALZBOT,")" @@ -742,27 +741,27 @@ NDT_2_WAY(KMI)=4 IF (LSPECTRE_U) THEN ALLOCATE(XUT(IIU,IJU,IKU)) ; XUT = 0.0 - CALL IO_READ_FIELD(TPINIFILE,'UT',XUT) + CALL IO_Field_read(TPINIFILE,'UT',XUT) END IF ! IF (LSPECTRE_V) THEN ALLOCATE(XVT(IIU,IJU,IKU)) ; XVT = 0.0 - CALL IO_READ_FIELD(TPINIFILE,'VT',XVT) + CALL IO_Field_read(TPINIFILE,'VT',XVT) END IF ! IF (LSPECTRE_W) THEN ALLOCATE(XWT(IIU,IJU,IKU)) ; XWT = 0.0 - CALL IO_READ_FIELD(TPINIFILE,'WT',XWT) + CALL IO_Field_read(TPINIFILE,'WT',XWT) END IF ! IF (LSPECTRE_TH) THEN ALLOCATE(XTHT(IIU,IJU,IKU)) ; XTHT = 0.0 - CALL IO_READ_FIELD(TPINIFILE,'THT',XTHT) + CALL IO_Field_read(TPINIFILE,'THT',XTHT) END IF ! IF (LSPECTRE_RV) THEN ALLOCATE(XRT(IIU,IJU,IKU,NRR)) - CALL IO_READ_FIELD(TPINIFILE,'RVT',XRT(:,:,:,1)) + CALL IO_Field_read(TPINIFILE,'RVT',XRT(:,:,:,1)) END IF ! !------------------------------------------------------------------------------- diff --git a/src/MNH/ini_surf_rad.f90 b/src/MNH/ini_surf_rad.f90 index e3c30fdf8..a6c4934e7 100644 --- a/src/MNH/ini_surf_rad.f90 +++ b/src/MNH/ini_surf_rad.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2003-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE INI_SURF_RAD(TPINIFILE, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file REAL, DIMENSION(:,:,:), INTENT(OUT) :: PDIR_ALB ! Direct albedo @@ -63,10 +63,10 @@ END MODULE MODI_INI_SURF_RAD !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! -USE MODE_FIELD, ONLY: FIND_FIELD_ID_FROM_MNHNAME, TFIELDDATA, TFIELDLIST -USE MODE_FMREAD +USE MODE_FIELD, ONLY: FIND_FIELD_ID_FROM_MNHNAME, TFIELDDATA, TFIELDLIST +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG ! IMPLICIT NONE @@ -85,17 +85,17 @@ INTEGER :: IID, IRESP TYPE(TFIELDDATA) :: TZFIELD !------------------------------------------------------------------------------- ! -CALL IO_READ_FIELD(TPINIFILE,'DIR_ALB',PDIR_ALB) -CALL IO_READ_FIELD(TPINIFILE,'SCA_ALB',PSCA_ALB) +CALL IO_Field_read(TPINIFILE,'DIR_ALB',PDIR_ALB) +CALL IO_Field_read(TPINIFILE,'SCA_ALB',PSCA_ALB) ! CALL PRINT_MSG(NVERB_INFO,'IO','INI_SURF_RAD','EMIS: reading only first band (copy on others)') CALL FIND_FIELD_ID_FROM_MNHNAME('EMIS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%NDIMS = 2 -CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PEMIS(:,:,1)) +CALL IO_Field_read(TPINIFILE,TZFIELD,PEMIS(:,:,1)) PEMIS(:,:,:) = SPREAD(SOURCE=PEMIS(:,:,1),DIM=3,NCOPIES=SIZE(PEMIS,3)) ! -CALL IO_READ_FIELD(TPINIFILE,'TSRAD',PTSRAD) +CALL IO_Field_read(TPINIFILE,'TSRAD',PTSRAD) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/ini_surfstationn.f90 b/src/MNH/ini_surfstationn.f90 index 887733ede..3d8f08596 100644 --- a/src/MNH/ini_surfstationn.f90 +++ b/src/MNH/ini_surfstationn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -68,7 +68,7 @@ END MODULE MODI_INI_SURFSTATION_n !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! !! -------------------------------------------------------------------------- -! +! !* 0. DECLARATIONS ! ------------ ! @@ -82,7 +82,6 @@ USE MODD_STATION_n USE MODD_TYPE_DATE ! USE MODE_GRIDPROJ -USE MODE_IO_ll USE MODE_ll USE MODE_MSG ! diff --git a/src/MNH/init_for_convlfi.f90 b/src/MNH/init_for_convlfi.f90 index d302211ec..733aa93ca 100644 --- a/src/MNH/init_for_convlfi.f90 +++ b/src/MNH/init_for_convlfi.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -11,7 +11,7 @@ MODULE MODI_INIT_FOR_CONVLFI INTERFACE SUBROUTINE INIT_FOR_CONVLFI(TPINIFILE) ! -USE MODD_IO_ll,ONLY: TFILEDATA +USE MODD_IO,ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! file being read ! @@ -66,7 +66,7 @@ END MODULE MODI_INIT_FOR_CONVLFI !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll,ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_CONF USE MODD_CST @@ -74,20 +74,19 @@ USE MODD_DIM_n USE MODD_FIELD_n USE MODD_GRID USE MODD_GRID_n -USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_TIME USE MODD_TIME_n -USE MODD_VAR_ll, ONLY : NPROC +USE MODD_VAR_ll, ONLY: NPROC ! -USE MODE_FIELD, ONLY : TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME +USE MODE_FIELD, ONLY: TFIELDDATA, TFIELDLIST, FIND_FIELD_ID_FROM_MNHNAME USE MODE_TIME USE MODE_GRIDPROJ USE MODE_GRIDCART ! -USE MODE_FM -USE MODE_FMREAD USE MODE_GATHER_ll -USE MODE_IO_ll +USE MODE_IO, only: IO_Pack_set +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll ! USE MODI_INI_CST @@ -127,39 +126,39 @@ TYPE(TFIELDDATA) :: TZFIELD ! !* 1.1 Read the geometry kind in the LFIFM file (Cartesian or spherical) ! -CALL IO_READ_FIELD(TPINIFILE,'CARTESIAN',LCARTESIAN) +CALL IO_Field_read(TPINIFILE,'CARTESIAN',LCARTESIAN) ! !* 1.2 Read configuration and dimensions in initial file and initialize ! subdomain dimensions and parallel variables ! -CALL IO_READ_FIELD(TPINIFILE,'IMAX',NIMAX_ll) -CALL IO_READ_FIELD(TPINIFILE,'JMAX',NJMAX_ll) +CALL IO_Field_read(TPINIFILE,'IMAX',NIMAX_ll) +CALL IO_Field_read(TPINIFILE,'JMAX',NJMAX_ll) ! -CALL IO_READ_FIELD(TPINIFILE,'L1D',L1D,IRESP) +CALL IO_Field_read(TPINIFILE,'L1D',L1D,IRESP) IF (IRESP/=0) THEN L1D=.FALSE. IF( (NIMAX_ll == 1).AND.(NJMAX_ll == 1) ) L1D=.TRUE. ENDIF ! -CALL IO_READ_FIELD(TPINIFILE,'L2D',L2D,IRESP) +CALL IO_Field_read(TPINIFILE,'L2D',L2D,IRESP) IF (IRESP/=0) THEN L2D=.FALSE. IF( (NIMAX_ll /= 1).AND.(NJMAX_ll == 1) ) L2D=.TRUE. ENDIF ! -CALL IO_READ_FIELD(TPINIFILE,'PACK',LPACK,IRESP) +CALL IO_Field_read(TPINIFILE,'PACK',LPACK,IRESP) IF (IRESP/=0) LPACK=.TRUE. ! -CALL SET_FMPACK_ll(L1D,L2D,LPACK) +CALL IO_Pack_set(L1D,L2D,LPACK) ! -CALL IO_READ_FIELD(TPINIFILE,'KMAX',NKMAX) +CALL IO_Field_read(TPINIFILE,'KMAX',NKMAX) ! CSPLIT ='BSPLITTING' ; NHALO = 1 CALL SET_SPLITTING_ll(CSPLIT) CALL SET_JP_ll(1,JPHEXT,JPVEXT, NHALO) CALL SET_DAD0_ll() CALL SET_DIM_ll(NIMAX_ll, NJMAX_ll, NKMAX) -CALL SET_FMPACK_ll(L1D,L2D,LPACK) +CALL IO_Pack_set(L1D,L2D,LPACK) CALL SET_LBX_ll('OPEN', 1) CALL SET_LBY_ll('OPEN', 1) CALL SET_XRATIO_ll(1, 1) @@ -185,27 +184,27 @@ CALL GET_DIM_PHYS_ll('B',NIMAX,NJMAX) ! ! 2.1 reading ! -CALL IO_READ_FIELD(TPINIFILE,'LAT0',XLAT0) -CALL IO_READ_FIELD(TPINIFILE,'LON0',XLON0) -CALL IO_READ_FIELD(TPINIFILE,'BETA',XBETA) -CALL IO_READ_FIELD(TPINIFILE,'XHAT',XXHAT) -CALL IO_READ_FIELD(TPINIFILE,'YHAT',XYHAT) +CALL IO_Field_read(TPINIFILE,'LAT0',XLAT0) +CALL IO_Field_read(TPINIFILE,'LON0',XLON0) +CALL IO_Field_read(TPINIFILE,'BETA',XBETA) +CALL IO_Field_read(TPINIFILE,'XHAT',XXHAT) +CALL IO_Field_read(TPINIFILE,'YHAT',XYHAT) ! IF (.NOT.LCARTESIAN) THEN - CALL IO_READ_FIELD(TPINIFILE,'RPK',XRPK) - CALL IO_READ_FIELD(TPINIFILE,'LONORI',XLONORI) - CALL IO_READ_FIELD(TPINIFILE,'LATORI',XLATORI) + CALL IO_Field_read(TPINIFILE,'RPK',XRPK) + CALL IO_Field_read(TPINIFILE,'LONORI',XLONORI) + CALL IO_Field_read(TPINIFILE,'LATORI',XLATORI) ! IF (TPINIFILE%NMNHVERSION(1)<4 .OR. (TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFILE%NMNHVERSION(2)<=5)) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('LONORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LONOR' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,XLONORI) + CALL IO_Field_read(TPINIFILE,TZFIELD,XLONORI) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LATORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LATOR' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,XLATORI) + CALL IO_Field_read(TPINIFILE,TZFIELD,XLATORI) ! ALLOCATE(ZXHAT_ll(NIMAX_ll+ 2 * JPHEXT),ZYHAT_ll(NJMAX_ll+2 * JPHEXT)) CALL GATHERALL_FIELD_ll('XX',XXHAT,ZXHAT_ll,IRESP) !// @@ -220,29 +219,29 @@ IF (.NOT.LCARTESIAN) THEN END IF ! ALLOCATE(XZS(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'ZS',XZS,IRESP) +CALL IO_Field_read(TPINIFILE,'ZS',XZS,IRESP) IF (IRESP/=0) XZS(:,:)=0. ! ALLOCATE(XZSMT(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'ZSMT',XZSMT,IRESP) +CALL IO_Field_read(TPINIFILE,'ZSMT',XZSMT,IRESP) IF (IRESP/=0) XZSMT(:,:)=XZS(:,:) ! ALLOCATE(XZHAT(IKU)) -CALL IO_READ_FIELD(TPINIFILE,'ZHAT',XZHAT) -CALL IO_READ_FIELD(TPINIFILE,'ZTOP',XZTOP) +CALL IO_Field_read(TPINIFILE,'ZHAT',XZHAT) +CALL IO_Field_read(TPINIFILE,'ZTOP',XZTOP) ! -CALL IO_READ_FIELD(TPINIFILE,'SLEVE',LSLEVE,IRESP) +CALL IO_Field_read(TPINIFILE,'SLEVE',LSLEVE,IRESP) IF (IRESP/=0) LSLEVE = .FALSE. ! IF (LSLEVE) THEN - CALL IO_READ_FIELD(TPINIFILE,'LEN1',XLEN1) - CALL IO_READ_FIELD(TPINIFILE,'LEN2',XLEN2) + CALL IO_Field_read(TPINIFILE,'LEN1',XLEN1) + CALL IO_Field_read(TPINIFILE,'LEN2',XLEN2) END IF ! -CALL IO_READ_FIELD(TPINIFILE,'DTEXP',TDTEXP) -CALL IO_READ_FIELD(TPINIFILE,'DTMOD',TDTMOD) -CALL IO_READ_FIELD(TPINIFILE,'DTSEG',TDTSEG) -CALL IO_READ_FIELD(TPINIFILE,'DTCUR',TDTCUR) +CALL IO_Field_read(TPINIFILE,'DTEXP',TDTEXP) +CALL IO_Field_read(TPINIFILE,'DTMOD',TDTMOD) +CALL IO_Field_read(TPINIFILE,'DTSEG',TDTSEG) +CALL IO_Field_read(TPINIFILE,'DTCUR',TDTCUR) ! YTITLE='CURRENT DATE AND TIME' CALL SM_PRINT_TIME(TDTCUR,TLUOUT,YTITLE) @@ -271,7 +270,7 @@ END IF !* 3. INITIALIZE THE PROGNOSTIC AND SURFACE FIELDS (read_field) ! -------------------------------------------- ALLOCATE(XPABST(IIU,IJU,IKU)) -CALL IO_READ_FIELD(TPINIFILE,'PABST',XPABST) +CALL IO_Field_read(TPINIFILE,'PABST',XPABST) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/init_ground_paramn.f90 b/src/MNH/init_ground_paramn.f90 index 95a5bcee7..f8e37bd5a 100644 --- a/src/MNH/init_ground_paramn.f90 +++ b/src/MNH/init_ground_paramn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -74,7 +74,6 @@ END MODULE MODI_INIT_GROUND_PARAM_n ! ------------ ! USE MODE_DATETIME -USE MODE_IO_ll USE MODE_FIELD USE MODE_ll ! diff --git a/src/MNH/init_mnh.f90 b/src/MNH/init_mnh.f90 index debf3b7a0..18c169617 100644 --- a/src/MNH/init_mnh.f90 +++ b/src/MNH/init_mnh.f90 @@ -77,7 +77,7 @@ ! ------------ USE MODD_CONF USE MODD_DYN_n, ONLY: CPRESOPT,NITR ! only for spawning purpose -USE MODD_IO_ll, ONLY: TFILE_OUTPUTLISTING,TPTR2FILE +USE MODD_IO, ONLY: TFILE_OUTPUTLISTING, TPTR2FILE USE MODD_LBC_n, ONLY: CLBCX,CLBCY ! only for spawning purpose USE MODD_LUNIT USE MODD_LUNIT_n @@ -85,9 +85,8 @@ USE MODD_MNH_SURFEX_n USE MODD_PARAMETERS ! USE MODE_FIELD -USE MODE_FM, ONLY: IO_FILE_OPEN_ll -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, ONLY: IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_ll USE MODE_MODELN_HANDLER USE MODE_SPLITTINGZ_ll @@ -127,8 +126,8 @@ CHARACTER(LEN=4), DIMENSION(:), POINTER :: DPTR_CLBCX,DPTR_CLBCY ! ! IF (CPROGRAM/='REAL ') THEN - CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') - CALL IO_FILE_OPEN_ll(TLUOUT0) + CALL IO_File_add2list(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') + CALL IO_File_open(TLUOUT0) !Set output file for PRINT_MSG TFILE_OUTPUTLISTING => TLUOUT0 ILUOUT0=TLUOUT0%NLU diff --git a/src/MNH/khko_notadjust.f90 b/src/MNH/khko_notadjust.f90 index a1cf0d41e..2cd179fc5 100644 --- a/src/MNH/khko_notadjust.f90 +++ b/src/MNH/khko_notadjust.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -15,7 +15,7 @@ INTERFACE PTHS, PRVS, PRCS, PRRS, PCCS, PCNUCS, PSAT, & PCLDFR, PSRCS, PNPRO,PSSPRO ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KTCOUNT ! Number of moist variables @@ -99,7 +99,7 @@ END MODULE MODI_KHKO_NOTADJUST USE MODD_BUDGET USE MODD_CONF USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_NSV, ONLY: NSV_C2R2BEG USE MODD_PARAMETERS @@ -107,8 +107,7 @@ USE MODD_RAIN_C2R2_DESCR, ONLY: XRTMIN ! USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT -USE MODE_IO_ll +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG ! USE MODI_BUDGET @@ -391,7 +390,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK) ! TZFIELD%CMNHNAME = 'ACT_OD' TZFIELD%CSTDNAME = '' @@ -403,7 +402,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZACT) + CALL IO_Field_write(TPFILE,TZFIELD,ZACT) END IF ! !* 7. STORE THE BUDGET TERMS diff --git a/src/MNH/latlon_to_xy.f90 b/src/MNH/latlon_to_xy.f90 index c79760c69..0b6d8b658 100644 --- a/src/MNH/latlon_to_xy.f90 +++ b/src/MNH/latlon_to_xy.f90 @@ -55,28 +55,28 @@ !! no transfer of the file when closing Dec. 09, 1996 (V.Masson) !! + changes call to READ_HGRID !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !---------------------------------------------------------------------------- ! !* 0. DECLARATION ! ----------- ! -USE MODD_GRID -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_GRID +USE MODD_IO, ONLY: TFILEDATA USE MODD_PGDDIM USE MODD_PGDGRID USE MODD_PARAMETERS USE MODD_LUNIT ! -USE MODE_FM USE MODE_GRIDPROJ -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO, only: IO_Config_set, IO_Init +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list ! USE MODI_INI_CST USE MODI_READ_HGRID ! -USE MODN_CONFIO, ONLY : NAM_CONFIO +USE MODN_CONFIO, ONLY: NAM_CONFIO ! IMPLICIT NONE ! @@ -119,22 +119,22 @@ CALL INI_CST !* 2. Reading of namelist file ! ------------------------ ! -CALL INITIO_ll() +CALL IO_Init() ! -CALL IO_FILE_ADD2LIST(TZNMLFILE,'LATLON2XY1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TZNMLFILE) +CALL IO_File_add2list(TZNMLFILE,'LATLON2XY1.nam','NML','READ') +CALL IO_File_open(TZNMLFILE) INAM=TZNMLFILE%NLU READ(INAM,NAM_INIFILE) ! READ(INAM,NAM_CONFIO) -CALL SET_CONFIO_ll() -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_Config_set() +CALL IO_File_close(TZNMLFILE) ! !* 1. Opening of MESONH file ! ---------------------- ! -CALL IO_FILE_ADD2LIST(TZINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=2) -CALL IO_FILE_OPEN_ll(TZINIFILE) +CALL IO_File_add2list(TZINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=2) +CALL IO_File_open(TZINIFILE) ! !* 2. Reading of MESONH file ! ---------------------- @@ -144,7 +144,7 @@ CALL READ_HGRID(0,TZINIFILE,YNAME,YDAD,YSTORAGE_TYPE) !* 3. Closing of MESONH file ! ---------------------- ! -CALL IO_FILE_CLOSE_ll(TZINIFILE) +CALL IO_File_close(TZINIFILE) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/les_specn.f90 b/src/MNH/les_specn.f90 index be4c3b404..d95300068 100644 --- a/src/MNH/les_specn.f90 +++ b/src/MNH/les_specn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -58,7 +58,7 @@ CONTAINS USE MODD_CONF USE MODD_CONF_n USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LBC_n, ONLY: CLBCX, CLBCY USE MODD_LES USE MODD_LES_n diff --git a/src/MNH/lima.f90 b/src/MNH/lima.f90 index d9149be2a..ea0244c42 100644 --- a/src/MNH/lima.f90 +++ b/src/MNH/lima.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2013-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ######spl MODULE MODI_LIMA @@ -18,7 +18,7 @@ INTERFACE PINPRC, PINDEP, PINPRR, PINPRI, PINPRS, PINPRG, PINPRH, & PEVAP3D ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index @@ -99,8 +99,8 @@ END MODULE MODI_LIMA !! !* 0. DECLARATIONS ! ------------ -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_CLOUDPAR_n, ONLY : NSPLITR, NSPLITG USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT USE MODD_PARAM_LIMA, ONLY : LCOLD, LRAIN, LWARM, NMOD_CCN, NMOD_IFN, NMOD_IMM, LHHONI, & diff --git a/src/MNH/lima_adjust.f90 b/src/MNH/lima_adjust.f90 index 7d20f4f44..2f0957ca1 100644 --- a/src/MNH/lima_adjust.f90 +++ b/src/MNH/lima_adjust.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2013-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -15,7 +15,7 @@ INTERFACE PRT, PRS, PSVT, PSVS, & PTHS, PSRCS, PCLDFR ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KMI ! Model index @@ -144,8 +144,8 @@ END MODULE MODI_LIMA_ADJUST USE MODD_BUDGET USE MODD_CONF USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_NSV USE MODD_PARAMETERS USE MODD_PARAM_LIMA @@ -153,9 +153,8 @@ USE MODD_PARAM_LIMA_COLD USE MODD_PARAM_LIMA_MIXED USE MODD_PARAM_LIMA_WARM ! -USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL -USE MODE_FM -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_BUDGET USE MODI_CONDENS @@ -1133,7 +1132,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZW) + CALL IO_Field_write(TPFILE,TZFIELD,ZW) END IF ! ! @@ -1188,7 +1187,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZW) + CALL IO_Field_write(TPFILE,TZFIELD,ZW) END IF ! ! diff --git a/src/MNH/lima_ccn_activation.f90 b/src/MNH/lima_ccn_activation.f90 index 884c98379..4b6d1c348 100644 --- a/src/MNH/lima_ccn_activation.f90 +++ b/src/MNH/lima_ccn_activation.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2013-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ############################### MODULE MODI_LIMA_CCN_ACTIVATION @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE LIMA_CCN_ACTIVATION (PTSTEP, TPFILE, OCLOSE_OUT, & PRHODREF, PEXNREF, PPABST, ZT, ZTM, PW_NU, & PTHT, PRVT, PRCT, PCCT, PRRT, PNFT, PNAT ) -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! REAL, INTENT(IN) :: PTSTEP ! Double Time step ! (single if cold start) @@ -92,20 +92,19 @@ END MODULE MODI_LIMA_CCN_ACTIVATION !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT -USE MODD_CST, ONLY : XALPW, XBETAW, XCL, XCPD, XCPV, XGAMW, XLVTT, XMD, XMV, XRV, XTT -USE MODD_PARAM_LIMA, ONLY : LACTIT, NMOD_CCN, XKHEN_MULTI, XCTMIN, XLIMIT_FACTOR -USE MODD_PARAM_LIMA_WARM, ONLY : XWMIN, NAHEN, NHYP, XAHENINTP1, XAHENINTP2, XCSTDCRIT, XHYPF12, & - XHYPINTP1, XHYPINTP2, XTMIN, XHYPF32, XPSI3, XAHENG, XPSI1 +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT +USE MODD_CST, ONLY: XALPW, XBETAW, XCL, XCPD, XCPV, XGAMW, XLVTT, XMD, XMV, XRV, XTT +USE MODD_PARAM_LIMA, ONLY: LACTIT, NMOD_CCN, XKHEN_MULTI, XCTMIN, XLIMIT_FACTOR +USE MODD_PARAM_LIMA_WARM, ONLY: XWMIN, NAHEN, NHYP, XAHENINTP1, XAHENINTP2, XCSTDCRIT, XHYPF12, & + XHYPINTP1, XHYPINTP2, XTMIN, XHYPF32, XPSI3, XAHENG, XPSI1 ! USE MODI_GAMMA USE MODI_LIMA_FUNCTIONS, ONLY : COUNTJV ! -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n, ONLY : TLUOUT -USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL -USE MODE_FM -USE MODE_FMWRIT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! IMPLICIT NONE ! @@ -467,7 +466,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZW) + CALL IO_Field_write(TPFILE,TZFIELD,ZW) ! TZFIELD%CMNHNAME ='NACT' TZFIELD%CSTDNAME = '' @@ -479,7 +478,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZW2) + CALL IO_Field_write(TPFILE,TZFIELD,ZW2) END IF ! ! diff --git a/src/MNH/lima_nucleation_procs.f90 b/src/MNH/lima_nucleation_procs.f90 index f18b78589..e3efc478d 100644 --- a/src/MNH/lima_nucleation_procs.f90 +++ b/src/MNH/lima_nucleation_procs.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 2013-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2018-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ############################### MODULE MODI_LIMA_NUCLEATION_PROCS ! ############################### @@ -13,7 +14,7 @@ INTERFACE PCCT, PCRT, PCIT, & PNFT, PNAT, PIFT, PINT, PNIT, PNHT ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! REAL, INTENT(IN) :: PTSTEP ! Double Time step TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file @@ -78,7 +79,7 @@ USE MODD_BUDGET, ONLY : LBU_ENABLE, LBUDGET_TH, LBUDGET_RV, LBUDGET_RC, LBUD USE MODD_NSV, ONLY : NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_FREE, & NSV_LIMA_NI, NSV_LIMA_IFN_FREE ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODI_BUDGET USE MODI_LIMA_CCN_ACTIVATION USE MODI_LIMA_PHILLIPS_IFN_NUCLEATION diff --git a/src/MNH/lima_warm.f90 b/src/MNH/lima_warm.f90 index 35961b3ba..1ac67f3ce 100644 --- a/src/MNH/lima_warm.f90 +++ b/src/MNH/lima_warm.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2013-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ##################### @@ -16,7 +16,7 @@ INTERFACE PTHS, PRS, PSVS, & PINPRC, PINPRR, PINDEP, PINPRR3D, PEVAP3D ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! LOGICAL, INTENT(IN) :: OACTIT ! Switch to activate the ! activation by radiative @@ -144,14 +144,11 @@ USE MODD_NSV USE MODD_BUDGET USE MODI_BUDGET ! -USE MODE_FM -USE MODE_FMWRIT -! USE MODI_LIMA_WARM_SEDIMENTATION USE MODI_LIMA_WARM_NUCL USE MODI_LIMA_WARM_COAL USE MODI_LIMA_WARM_EVAP -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT ! IMPLICIT NONE diff --git a/src/MNH/lima_warm_nucl.f90 b/src/MNH/lima_warm_nucl.f90 index 66b235e48..71974fc8c 100644 --- a/src/MNH/lima_warm_nucl.f90 +++ b/src/MNH/lima_warm_nucl.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2013-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -13,7 +13,7 @@ INTERFACE PRCM, PRVT, PRCT, PRRT, & PTHS, PRVS, PRCS, PCCS, PNFS, PNAS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! LOGICAL, INTENT(IN) :: OACTIT ! Switch to activate the ! activation by radiative @@ -108,19 +108,18 @@ END MODULE MODI_LIMA_WARM_NUCL !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT +USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT USE MODD_CST USE MODD_PARAM_LIMA USE MODD_PARAM_LIMA_WARM ! USE MODI_GAMMA -USE MODI_LIMA_FUNCTIONS, ONLY : COUNTJV +USE MODI_LIMA_FUNCTIONS, ONLY : COUNTJV ! -USE MODE_FM -USE MODE_FMWRIT -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n, ONLY: TLUOUT -USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL ! IMPLICIT NONE ! @@ -132,7 +131,7 @@ LOGICAL, INTENT(IN) :: OACTIT ! Switch to activate the REAL, INTENT(IN) :: PTSTEP ! Double Time step ! (single if cold start) INTEGER, INTENT(IN) :: KMI ! Model index -TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file LOGICAL, INTENT(IN) :: OCLOSE_OUT ! Conditional closure of ! the output FM file ! @@ -535,7 +534,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZW) + CALL IO_Field_write(TPFILE,TZFIELD,ZW) ! TZFIELD%CMNHNAME ='NACT' TZFIELD%CSTDNAME = '' @@ -547,7 +546,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZW2) + CALL IO_Field_write(TPFILE,TZFIELD,ZW2) END IF ! ! diff --git a/src/MNH/lochead.f90 b/src/MNH/lochead.f90 index d77bbadba..5bb77e10e 100644 --- a/src/MNH/lochead.f90 +++ b/src/MNH/lochead.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -77,9 +77,9 @@ END MODULE MODI_LOCHEAD !* 0. DECLARATION ! ----------- ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_FIND_BYNAME +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_find_byname ! IMPLICIT NONE ! @@ -125,7 +125,7 @@ TYPE(TFILEDATA),POINTER :: TZFILE !------------------------------------------------------------------------------- ! IF (ODATASAVE) THEN - CALL IO_FILE_FIND_BYNAME(HSAVEDDATAFILE,TZFILE,IRESP) + CALL IO_File_find_byname(HSAVEDDATAFILE,TZFILE,IRESP) ISAVE = TZFILE%NLU END IF ! diff --git a/src/MNH/ls_coupling.f90 b/src/MNH/ls_coupling.f90 index b2d17436a..8b9430d83 100644 --- a/src/MNH/ls_coupling.f90 +++ b/src/MNH/ls_coupling.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################## @@ -124,8 +124,8 @@ END MODULE MODI_LS_COUPLING !! !! EXTERNAL !! -------- -!! IO_READ_FIELD : to read data in file -!! IO_FILE_CLOSE_ll : to close a file +!! IO_Field_read : to read data in file +!! IO_File_close : to close a file !! INI_LS : to initialize larger scale fields !! INI_LB : to initialize "2D" surfacic LB fields !! @@ -186,9 +186,8 @@ USE MODD_PASPOL #endif USE MODD_CH_MNHC_n ! -USE MODE_FM -USE MODE_FMREAD -USE MODE_IO_ll +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FILE, only: IO_File_close USE MODE_MSG ! USE MODI_INI_LS @@ -274,9 +273,9 @@ LOGICAL :: GLSOURCE ! switch for the source term (for ini_ls and i ! !* 1.1 Check dimensions ! -CALL IO_READ_FIELD(TCPLFILE(NCPL_CUR)%TZFILE,'IMAX',IIMAX) -CALL IO_READ_FIELD(TCPLFILE(NCPL_CUR)%TZFILE,'JMAX',IJMAX) -CALL IO_READ_FIELD(TCPLFILE(NCPL_CUR)%TZFILE,'KMAX',IKMAX) +CALL IO_Field_read(TCPLFILE(NCPL_CUR)%TZFILE,'IMAX',IIMAX) +CALL IO_Field_read(TCPLFILE(NCPL_CUR)%TZFILE,'JMAX',IJMAX) +CALL IO_Field_read(TCPLFILE(NCPL_CUR)%TZFILE,'KMAX',IKMAX) ! IKU=SIZE(PLSTHM,3) ! @@ -345,7 +344,7 @@ CALL INI_LB(TCPLFILE(NCPL_CUR)%TZFILE,GLSOURCE,KSV, & ! !* 1.4 Close the coupling file ! -CALL IO_FILE_CLOSE_ll(TCPLFILE(NCPL_CUR)%TZFILE) +CALL IO_File_close(TCPLFILE(NCPL_CUR)%TZFILE) ! !------------------------------------------------------------------------------- diff --git a/src/MNH/menu_diachro.f90 b/src/MNH/menu_diachro.f90 index b9147f3b2..7cf66861c 100644 --- a/src/MNH/menu_diachro.f90 +++ b/src/MNH/menu_diachro.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################################## @@ -54,11 +54,11 @@ ! ------------ ! USE MODD_CONF -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, only: TFILEDATA ! USE MODE_FIELD -USE MODE_FMREAD -USE MODE_FMWRIT +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! IMPLICIT NONE ! @@ -103,7 +103,7 @@ IF(HGROUP == 'END')THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,ILENG) + CALL IO_Field_write(TPDIAFILE,TZFIELD,ILENG) ALLOCATE(ITABCHAR(ILENG)) DO JJ=1,IGROUP @@ -122,7 +122,7 @@ IF(HGROUP == 'END')THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,ITABCHAR) + CALL IO_Field_write(TPDIAFILE,TZFIELD,ITABCHAR) DEALLOCATE(ITABCHAR) @@ -138,7 +138,7 @@ ELSE IF(HGROUP == 'READ')THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPDIAFILE,TZFIELD,ILENG,IRESPDIA) + CALL IO_Field_read(TPDIAFILE,TZFIELD,ILENG,IRESPDIA) IF(IRESPDIA == -47)THEN ! print *,' No record MENU_BUDGET ' LPACK=GPACK @@ -156,7 +156,7 @@ ELSE IF(HGROUP == 'READ')THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPDIAFILE,TZFIELD,ITABCHAR) + CALL IO_Field_read(TPDIAFILE,TZFIELD,ITABCHAR) IGROUP=ILENG/NMNHNAMELGTMAX DO JJ=1,IGROUP DO J = 1,NMNHNAMELGTMAX diff --git a/src/MNH/mesonh.f90 b/src/MNH/mesonh.f90 index b058f104f..8964d79d1 100644 --- a/src/MNH/mesonh.f90 +++ b/src/MNH/mesonh.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -90,14 +90,14 @@ USE MODD_CONF USE MODD_NESTING USE MODD_CONF_n -USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG +USE MODD_IO, ONLY: NIO_VERB,NVERB_DEBUG ! USE MODI_MODEL_n USE MODI_KID_MODEL ! +USE MODE_IO, only: IO_Init +USE MODE_IO_MANAGE_STRUCT, only: IO_Filelist_print USE MODE_ll -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_PRINT_LIST USE MODE_MODELN_HANDLER ! USE MODI_VERSION @@ -144,7 +144,7 @@ CALL GOTO_MODEL(1,ONOFIELDLIST=.TRUE.) CALL SFX_OASIS_INIT(CNAMELIST, NMNH_COMM_WORLD) #endif ! -CALL INITIO_ll() +CALL IO_Init() ! CALL VERSION CPROGRAM='MESONH' @@ -213,7 +213,7 @@ DO ! END DO ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/mnh2lpdm.f90 b/src/MNH/mnh2lpdm.f90 index 77ff393c7..08b1957a2 100644 --- a/src/MNH/mnh2lpdm.f90 +++ b/src/MNH/mnh2lpdm.f90 @@ -13,7 +13,7 @@ ! Modification : 07.01.2006 (T.LAUVAUX, adaptation LPDM) ! Modification : 04.01.2009 (F. BONNARDOT, DP/SER/ENV ) ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! !----------------------------------------------------------------------------- ! @@ -25,12 +25,12 @@ !* 0.1 Modules. ! USE MODD_CONF, ONLY : CPROGRAM -USE MODD_IO_ll, ONLY : TFILEDATA,TPTR2FILE +USE MODD_IO, ONLY : TFILEDATA,TPTR2FILE USE MODD_MNH2LPDM ! -USE MODE_FM, ONLY: IO_FILE_OPEN_ll,IO_FILE_CLOSE_ll -USE MODE_IO_ll, ONLY: INITIO_ll,SET_CONFIO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO, ONLY: IO_Init, IO_Config_set +USE MODE_IO_FILE, ONLY: IO_File_open, IO_File_close +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MODELN_HANDLER USE MODE_POS ! @@ -74,19 +74,19 @@ CALL GOTO_MODEL(1) ! !* 1.2 Initialisation routines LL. ! -CALL INITIO_ll() +CALL IO_Init() ! ! !* 1.3 Ouverture du fichier log. ! -CALL IO_FILE_ADD2LIST(TZLOGFILE,YFLOG,'TXT','WRITE') -CALL IO_FILE_OPEN_ll(TZLOGFILE) +CALL IO_File_add2list(TZLOGFILE,YFLOG,'TXT','WRITE') +CALL IO_File_open(TZLOGFILE) ! ! !* 1.4 Lecture des namelists. ! -CALL IO_FILE_ADD2LIST(TZNMLFILE,YFNML,'NML','READ') -CALL IO_FILE_OPEN_ll(TZNMLFILE) +CALL IO_File_add2list(TZNMLFILE,YFNML,'NML','READ') +CALL IO_File_open(TZNMLFILE) IFNML = TZNMLFILE%NLU READ(UNIT=IFNML,NML=NAM_TURB) @@ -100,18 +100,18 @@ END IF LCDF4 = .FALSE. LLFIOUT = .FALSE. LLFIREAD = .FALSE. -CALL SET_CONFIO_ll() -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_Config_set() +CALL IO_File_close(TZNMLFILE) ! ! !* 1.5 Comptage des FM a traiter. ! IF (LEN_TRIM(CFMNH(1))>0) THEN NBMNH=1 - CALL IO_FILE_ADD2LIST(TZFMNH(1)%TZFILE,TRIM(CFMNH(1)),'MNH','READ',KLFITYPE=2,KLFIVERB=IVERB) + CALL IO_File_add2list(TZFMNH(1)%TZFILE,TRIM(CFMNH(1)),'MNH','READ',KLFITYPE=2,KLFIVERB=IVERB) DO WHILE (CFMNH(NBMNH+1).NE.'VIDE') NBMNH=NBMNH+1 - CALL IO_FILE_ADD2LIST(TZFMNH(NBMNH)%TZFILE,TRIM(CFMNH(NBMNH)),'MNH','READ',KLFITYPE=2,KLFIVERB=IVERB) + CALL IO_File_add2list(TZFMNH(NBMNH)%TZFILE,TRIM(CFMNH(NBMNH)),'MNH','READ',KLFITYPE=2,KLFIVERB=IVERB) END DO print *,NBMNH,' fichiers a traiter.' ELSE @@ -126,10 +126,10 @@ ENDIF ! !* 2.1 Ouverture des fichiers METEO et GRILLE et DATE. ! -CALL IO_FILE_ADD2LIST(TZGRIDFILE,CFGRI,'TXT','WRITE') -CALL IO_FILE_OPEN_ll(TZGRIDFILE) -CALL IO_FILE_ADD2LIST(TZDATEFILE,CFDAT,'TXT','WRITE') -CALL IO_FILE_OPEN_ll(TZDATEFILE) +CALL IO_File_add2list(TZGRIDFILE,CFGRI,'TXT','WRITE') +CALL IO_File_open(TZGRIDFILE) +CALL IO_File_add2list(TZDATEFILE,CFDAT,'TXT','WRITE') +CALL IO_File_open(TZDATEFILE) ! ! !* 2.2 Preparation du couplage. @@ -141,20 +141,20 @@ CALL MNH2LPDM_INI(TZFMNH(1)%TZFILE,TZFMNH(NBMNH)%TZFILE,TZLOGFILE,TZGRIDFILE,TZD ! DO JFIC=1,NBMNH print*,"CFMTO(JFIC)=",CFMTO(JFIC) - CALL IO_FILE_ADD2LIST(TZMETEOFILE,CFMTO(JFIC),'METEO','WRITE') - CALL IO_FILE_OPEN_ll(TZMETEOFILE) + CALL IO_File_add2list(TZMETEOFILE,CFMTO(JFIC),'METEO','WRITE') + CALL IO_File_open(TZMETEOFILE) CALL MNH2LPDM_ECH(TZFMNH(JFIC)%TZFILE,TZMETEOFILE) print*,"CLOSE_LL(CFMTO(JFIC)" - CALL IO_FILE_CLOSE_ll(TZMETEOFILE) + CALL IO_File_close(TZMETEOFILE) TZMETEOFILE => NULL() END DO ! ! !* 2.4 Fermeture des fichiers, METEO, GRILLE et LOG. ! -CALL IO_FILE_CLOSE_ll(TZGRIDFILE) -CALL IO_FILE_CLOSE_ll(TZDATEFILE) -CALL IO_FILE_CLOSE_ll(TZLOGFILE) +CALL IO_File_close(TZGRIDFILE) +CALL IO_File_close(TZDATEFILE) +CALL IO_File_close(TZLOGFILE) ! ! ! diff --git a/src/MNH/mnh2lpdm_ech.f90 b/src/MNH/mnh2lpdm_ech.f90 index e7b334e84..462bd2ae4 100644 --- a/src/MNH/mnh2lpdm_ech.f90 +++ b/src/MNH/mnh2lpdm_ech.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2009-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2009-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------------- ! ######spl @@ -24,7 +24,7 @@ ! ! USE MODD_DIM_n -USE MODD_IO_ll,ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_TIME_n USE MODD_GRID_n ! @@ -34,9 +34,9 @@ USE MODD_TIME ! USE MODD_MNH2LPDM ! -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll,IO_FILE_OPEN_ll -USE MODE_FMREAD -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list ! USE MODI_INI_CST ! @@ -76,11 +76,11 @@ IFMTO = TPMETEOFILE%NLU ! !* 2.1 Ouverture du fichier Meso-NH. ! -CALL IO_FILE_OPEN_ll(TPFILE) +CALL IO_File_open(TPFILE) ! !* 2.2 Date et heure courante. ! -CALL IO_READ_FIELD(TPFILE,'DTCUR',TZDTCUR) +CALL IO_Field_read(TPFILE,'DTCUR',TZDTCUR) ! ICURAA=MOD(TZDTCUR%TDATE%YEAR,100) ! Annee sur 2 caracteres. ICURMM=TZDTCUR%TDATE%MONTH @@ -100,28 +100,28 @@ print 20300, ICURJJ,ICURMM,ICURAA,ICURHH,ICURMN,ICURSS ! !* 2.3 Lecture des champs Meso-NH de base. ! -CALL IO_READ_FIELD(TPFILE,'UT', XUT) -CALL IO_READ_FIELD(TPFILE,'VT', XVT) -CALL IO_READ_FIELD(TPFILE,'WT', XWT) -CALL IO_READ_FIELD(TPFILE,'THT', XTHT) -CALL IO_READ_FIELD(TPFILE,'TKET', XTKET) +CALL IO_Field_read(TPFILE,'UT', XUT) +CALL IO_Field_read(TPFILE,'VT', XVT) +CALL IO_Field_read(TPFILE,'WT', XWT) +CALL IO_Field_read(TPFILE,'THT', XTHT) +CALL IO_Field_read(TPFILE,'TKET', XTKET) !PW:TODO: where are these fields (LM,THW_FLX,DISS,FMU,FMV) written? !Warning: not in fieldlist => won't be found -CALL IO_READ_FIELD(TPFILE,'LM', XLM) -CALL IO_READ_FIELD(TPFILE,'THW_FLX',XWPTHP) -CALL IO_READ_FIELD(TPFILE,'DISS', XDISSIP) -CALL IO_READ_FIELD(TPFILE,'FMU', XSFU) -CALL IO_READ_FIELD(TPFILE,'FMV', XSFV) -CALL IO_READ_FIELD(TPFILE,'INPRT', XINRT) -CALL IO_READ_FIELD(TPFILE,'RVT', XRMVT) -CALL IO_READ_FIELD(TPFILE,'RCT', XRMCT) -CALL IO_READ_FIELD(TPFILE,'RRT', XRMRT) +CALL IO_Field_read(TPFILE,'LM', XLM) +CALL IO_Field_read(TPFILE,'THW_FLX',XWPTHP) +CALL IO_Field_read(TPFILE,'DISS', XDISSIP) +CALL IO_Field_read(TPFILE,'FMU', XSFU) +CALL IO_Field_read(TPFILE,'FMV', XSFV) +CALL IO_Field_read(TPFILE,'INPRT', XINRT) +CALL IO_Field_read(TPFILE,'RVT', XRMVT) +CALL IO_Field_read(TPFILE,'RCT', XRMCT) +CALL IO_Field_read(TPFILE,'RRT', XRMRT) ! ! Lecture des donnees Meso-NH terminee.' ! !* 2.4 Fermeture du fichier Meso-NH. ! -CALL IO_FILE_CLOSE_ll(TPFILE) +CALL IO_File_close(TPFILE) ! ! !* 3. PREPARATION DES DONNEES. @@ -376,8 +376,8 @@ XSSFV(:,:) = XSFV(NSIB:NSIE,NSJB:NSJE) ! IF (IGRILLE.EQ.2) THEN WRITE(YFTURB,'("TURB_LPDM",5I2.2)') ICURAA,ICURMM,ICURJJ,ICURHH,ICURMN - CALL IO_FILE_ADD2LIST(TZFILE,YFTURB,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_add2list(TZFILE,YFTURB,'TXT','WRITE') + CALL IO_File_open(TZFILE) IFTURB = TZFILE%NLU WRITE(UNIT=IFTURB,FMT='(5A12)') "WSTAR ","USTAR ", & "HMIX ","LMO ", & @@ -398,7 +398,7 @@ XSSFV(:,:) = XSFV(NSIB:NSIE,NSJB:NSJE) XSTIMEU(15,15,JK),XSTIMEW(15,15,JK) ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) ENDIF ! diff --git a/src/MNH/mnh2lpdm_ini.f90 b/src/MNH/mnh2lpdm_ini.f90 index f7d71da91..7c185cfde 100644 --- a/src/MNH/mnh2lpdm_ini.f90 +++ b/src/MNH/mnh2lpdm_ini.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2009-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ######spl SUBROUTINE MNH2LPDM_INI(TPFILE1,TPFILE2,TPLOGFILE,TPGRIDFILE,TPDATEFILE) @@ -33,7 +33,7 @@ USE MODD_CST USE MODD_DIM_n USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT USE MODD_MNH2LPDM USE MODD_PARAMETERS @@ -41,10 +41,9 @@ USE MODD_TIME USE MODD_TIME_n ! USE MODE_DATETIME -USE MODE_FM -USE MODE_FMREAD USE MODE_GRIDPROJ -USE MODE_IO_ll +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MODELN_HANDLER ! USE MODI_INI_CST @@ -100,15 +99,15 @@ CALL GOTO_MODEL(1) ! !* 2.1 Ouverture du fichier Meso-NH. ! -CALL IO_FILE_OPEN_ll(TPFILE1) -CALL IO_FILE_OPEN_ll(TPFILE2) +CALL IO_File_open(TPFILE1) +CALL IO_File_open(TPFILE2) ! ! !* 2.2 Date et heure du modele. ! -CALL IO_READ_FIELD(TPFILE1,'DTEXP',TZDTEXP1) -CALL IO_READ_FIELD(TPFILE1,'DTCUR',TZDTCUR1) -CALL IO_READ_FIELD(TPFILE2,'DTCUR',TZDTCUR2) +CALL IO_Field_read(TPFILE1,'DTEXP',TZDTEXP1) +CALL IO_Field_read(TPFILE1,'DTCUR',TZDTCUR1) +CALL IO_Field_read(TPFILE2,'DTCUR',TZDTCUR2) ! CALL DATETIME_DISTANCE(TZDTEXP1,TZDTCUR1,ZECHEANCE1) CALL DATETIME_DISTANCE(TZDTEXP1,TZDTCUR2,ZECHEANCE2) @@ -164,7 +163,7 @@ NJE=NJU-JPHEXT ! !* 2.4 Nombre de niveaux-verticaux. ! -CALL IO_READ_FIELD(TPFILE1,'KMAX',NKMAX) +CALL IO_Field_read(TPFILE1,'KMAX',NKMAX) !WRITE(IFLOG,*) '%%% MNH2S2_INI Lecture du nombre de niveau OK.' ! NKU = NKMAX+2*JPVEXT @@ -194,17 +193,17 @@ ALLOCATE( XSFV(NIU,NJU)) ! !* 2.6 Decoupage vertical. ! -CALL IO_READ_FIELD(TPFILE1,'ZHAT',XZHAT) -CALL IO_READ_FIELD(TPFILE1,'ZTOP',XZTOP) +CALL IO_Field_read(TPFILE1,'ZHAT',XZHAT) +CALL IO_Field_read(TPFILE1,'ZTOP',XZTOP) ! !* 2.7 Orographie. ! -CALL IO_READ_FIELD(TPFILE1,'ZS',XZS) +CALL IO_Field_read(TPFILE1,'ZS',XZS) ! !* 2.8 Rugosite Z0. ! !PW:TODO: where is this field written? Warning: not in fieldlist => won't be found -CALL IO_READ_FIELD(TPFILE1,'Z0',XZ0) +CALL IO_Field_read(TPFILE1,'Z0',XZ0) ! XXPTSOMNH=XXHAT(1)+(XXHAT(2)-XXHAT(1))/2 XYPTSOMNH=XYHAT(1)+(XYHAT(2)-XYHAT(1))/2 @@ -435,8 +434,8 @@ DEALLOCATE(XZHAT) ! ! Fermeture du fichier Meso-NH. ! -CALL IO_FILE_CLOSE_ll(TPFILE1) -CALL IO_FILE_CLOSE_ll(TPFILE2) +CALL IO_File_close(TPFILE1) +CALL IO_File_close(TPFILE2) ! ! !-------------------------------------------' diff --git a/src/MNH/mnh_surf_grid_io_init.f90 b/src/MNH/mnh_surf_grid_io_init.f90 index 7c87e7fc0..3da201159 100644 --- a/src/MNH/mnh_surf_grid_io_init.f90 +++ b/src/MNH/mnh_surf_grid_io_init.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2015-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2015-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !####################### @@ -43,19 +43,6 @@ MODULE MODI_MNH_SURF_GRID_IO_INIT !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !---------------------------------------------------------------------------- ! - !* 0. DECLARATION - ! ----------- - ! - USE MODE_ll - USE MODE_FM - USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT, JPMODELMAX - USE MODD_CONF, ONLY : CPROGRAM, L1D, L2D, LPACK - ! - USE MODE_SPLITTINGZ_ll - ! - USE MODI_GET_SURF_GRID_DIM_N - USE MODI_GET_LUOUT - ! IMPLICIT NONE ! !* 0.1 Declaration of dummy arguments @@ -105,10 +92,9 @@ END MODULE MODI_MNH_SURF_GRID_IO_INIT ! ----------- ! USE MODE_ll -USE MODE_FM -USE MODE_IO_ll -USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT, JPMODELMAX -USE MODD_CONF, ONLY : CPROGRAM, L1D, L2D, LPACK +USE MODE_IO, only: IO_Pack_set +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT, JPMODELMAX +USE MODD_CONF, ONLY: CPROGRAM, L1D, L2D, LPACK ! !JUANZ USE MODE_SPLITTINGZ_ll @@ -139,7 +125,7 @@ IF (CPROGRAM=='IDEAL ' .OR. CPROGRAM=='SPAWN ' .OR. CPROGRAM=='REAL ') RETURN L1D=(KIMAX==1).AND.(KJMAX==1) L2D=(KIMAX/=1).AND.(KJMAX==1) LPACK=L1D.OR.L2D -CALL SET_FMPACK_ll(L1D,L2D,LPACK) +CALL IO_Pack_set(L1D,L2D,LPACK) CALL SET_JP_ll(JPMODELMAX,JPHEXT,JPVEXT,JPHEXT) CALL SET_DAD0_ll() CALL SET_DIM_ll(KIMAX, KJMAX, 1) diff --git a/src/MNH/mnhclose_aux_io_surf.f90 b/src/MNH/mnhclose_aux_io_surf.f90 index 6a1b88477..ba818000a 100644 --- a/src/MNH/mnhclose_aux_io_surf.f90 +++ b/src/MNH/mnhclose_aux_io_surf.f90 @@ -50,17 +50,16 @@ END MODULE MODI_MNHCLOSE_AUX_IO_SURF !! Original 09/2003 !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! +USE MODD_IO_SURF_MNH, ONLY: TPINFILE, CACTION, NMASK_ALL, NMASK +! +USE MODE_IO_FILE, only: IO_File_close USE MODE_ll -USE MODE_FM -USE MODE_IO_ll - -USE MODD_IO_SURF_MNH, ONLY : TPINFILE, CACTION, NMASK_ALL, NMASK ! IMPLICIT NONE ! @@ -79,7 +78,7 @@ INTEGER :: IRESP ! return-code if a problem appears !------------------------------------------------------------------------------- ! IF (CACTION=='OPEN ') THEN - CALL IO_FILE_CLOSE_ll(TPINFILE) + CALL IO_File_close(TPINFILE) CACTION=' ' END IF ! diff --git a/src/MNH/mnhclose_namelist.f90 b/src/MNH/mnhclose_namelist.f90 index 1e7544b0a..824cdb3f0 100644 --- a/src/MNH/mnhclose_namelist.f90 +++ b/src/MNH/mnhclose_namelist.f90 @@ -58,7 +58,7 @@ USE MODD_IO_NAM, ONLY: TNAM USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_LUNIT_n, ONLY: TLUOUT ! -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll +USE MODE_IO_FILE, ONLY: IO_File_close USE MODE_MSG ! IMPLICIT NONE @@ -89,7 +89,7 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','MNHCLOSE_NAMELIST','called for '//TRIM(TNAM%CNA ! ------------------- ! IF (TNAM%NLU==KLUNAM) THEN - CALL IO_FILE_CLOSE_ll(TNAM) + CALL IO_File_close(TNAM) TNAM => NULL() ELSE SELECT CASE(CPROGRAM) diff --git a/src/MNH/mnhclose_write_cover_tex.f90 b/src/MNH/mnhclose_write_cover_tex.f90 index 7415fd379..c041ea0d0 100644 --- a/src/MNH/mnhclose_write_cover_tex.f90 +++ b/src/MNH/mnhclose_write_cover_tex.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################## @@ -40,10 +40,10 @@ ! ------------ ! USE MODD_CONF, ONLY: CPROGRAM -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME +USE MODE_IO_FILE, ONLY: IO_File_close +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_find_byname ! ! IMPLICIT NONE @@ -68,8 +68,8 @@ TYPE(TFILEDATA),POINTER :: TZFILE TZFILE => NULL() ! IF (TRIM(CPROGRAM)=='PGD') THEN - CALL IO_FILE_FIND_BYNAME(YTEX,TZFILE,IRESP) - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_find_byname(YTEX,TZFILE,IRESP) + CALL IO_File_close(TZFILE) END IF !------------------------------------------------------------------------------- ! diff --git a/src/MNH/mnhend_io_surfn.f90 b/src/MNH/mnhend_io_surfn.f90 index 3e09c9598..6a1d1c034 100644 --- a/src/MNH/mnhend_io_surfn.f90 +++ b/src/MNH/mnhend_io_surfn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -52,12 +52,10 @@ END MODULE MODI_MNHEND_IO_SURF_n !* 0. DECLARATIONS ! ------------ ! -USE MODE_ll -USE MODE_FM -USE MODE_IO_ll -! USE MODD_IO_SURF_MNH, ONLY : CACTION, TPINFILE, COUTFILE, NMASK, NMASK_ALL ! +USE MODE_ll +! IMPLICIT NONE ! !* 0.1 Declarations of arguments diff --git a/src/MNH/mnhinit_io_surfn.f90 b/src/MNH/mnhinit_io_surfn.f90 index f242171c8..16fda8024 100644 --- a/src/MNH/mnhinit_io_surfn.f90 +++ b/src/MNH/mnhinit_io_surfn.f90 @@ -66,8 +66,6 @@ USE MODD_LUNIT_n, ONLY: CMASK_SURFEX, TINIFILE, TINIFILEPGD, TLUOUT USE MODD_MNH_SURFEX_n, ONLY: YSURF_CUR USE MODD_PARAMETERS, ONLY: JPHEXT ! -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME USE MODE_ll USE MODE_MODELN_HANDLER ! diff --git a/src/MNH/mnhopen_aux_io_surf.f90 b/src/MNH/mnhopen_aux_io_surf.f90 index 2c4a223fb..262a09b08 100644 --- a/src/MNH/mnhopen_aux_io_surf.f90 +++ b/src/MNH/mnhopen_aux_io_surf.f90 @@ -53,9 +53,9 @@ END MODULE MODI_MNHOPEN_AUX_IO_SURF !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! J.Escobar : 02/06/2016 : abort MNHOPEN with STOP if problem with OPEN of INPUT/READ file !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -70,10 +70,9 @@ USE MODD_LUNIT, ONLY: TPGDFILE, TLUOUT0, TOUTDATAFILE USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS, ONLY: JPHEXT ! -USE MODE_FM, ONLY: IO_FILE_OPEN_ll -USE MODE_FMREAD -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST,IO_FILE_FIND_BYNAME +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FILE, ONLY: IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list, IO_File_find_byname USE MODE_MSG ! USE MODI_GET_1D_MASK @@ -141,8 +140,8 @@ ELSE END IF ! IF (HFILE/=YFILE .AND. HFILE/=YPGDFILE) THEN - CALL IO_FILE_ADD2LIST(TPINFILE,TRIM(HFILE),'PGD','READ',KLFITYPE=2,KLFIVERB=5,OOLD=.TRUE.) - CALL IO_FILE_OPEN_ll(TPINFILE,KRESP=IRESP) + CALL IO_File_add2list(TPINFILE,TRIM(HFILE),'PGD','READ',KLFITYPE=2,KLFIVERB=5,OOLD=.TRUE.) + CALL IO_File_open(TPINFILE,KRESP=IRESP) ! IF (IRESP .NE. 0) THEN PRINT*," /!\ MNHOPEN_AUX_IO_SURF :: FATAL PROBLEM OPENING INPUT/READ FILES =", HFILE @@ -150,7 +149,7 @@ IF (HFILE/=YFILE .AND. HFILE/=YPGDFILE) THEN ENDIF CACTION = 'OPEN ' ELSE - CALL IO_FILE_FIND_BYNAME(TRIM(HFILE),TPINFILE,IRESP) + CALL IO_File_find_byname(TRIM(HFILE),TPINFILE,IRESP) END IF ! COUTFILE = HFILE @@ -158,11 +157,11 @@ COUTFILE = HFILE ! !* 3. initialisation of 2D arrays for entire physical field ! -CALL IO_READ_FIELD(TPINFILE,'IMAX',IIMAX) -CALL IO_READ_FIELD(TPINFILE,'JMAX',IJMAX) +CALL IO_Field_read(TPINFILE,'IMAX',IIMAX) +CALL IO_Field_read(TPINFILE,'JMAX',IJMAX) CALL MNH_SURF_GRID_IO_INIT(IIMAX,IJMAX) IJPHEXT= 1 -CALL IO_READ_FIELD(TPINFILE,'JPHEXT',IJPHEXT) +CALL IO_Field_read(TPINFILE,'JPHEXT',IJPHEXT) IF ( IJPHEXT .NE. JPHEXT ) THEN WRITE(ILUOUT,FMT=*) ' MNHOPEN_AUX_IO : JPHEXT in PRE_PGD1.nam/NAM_CONF_PGD ( or default value )& & JPHEXT=',JPHEXT diff --git a/src/MNH/mnhopen_namelist.f90 b/src/MNH/mnhopen_namelist.f90 index 7820d3e0d..d594b6e5f 100644 --- a/src/MNH/mnhopen_namelist.f90 +++ b/src/MNH/mnhopen_namelist.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################# @@ -57,8 +57,8 @@ END MODULE MODI_MNHOPEN_NAMELIST USE MODD_CONF, ONLY: CPROGRAM USE MODD_IO_NAM, ONLY: TNAM ! -USE MODE_FM, ONLY: IO_FILE_OPEN_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, ONLY: IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MSG ! IMPLICIT NONE @@ -113,8 +113,8 @@ END IF ! CALL PRINT_MSG(NVERB_DEBUG,'IO','MNHOPEN_NAMELIST','called for '//TRIM(YNAM)) ! -CALL IO_FILE_ADD2LIST(TNAM,TRIM(YNAM),'NML','READ',OOLD=.TRUE.) !OOLD=T because the file may already be in list -CALL IO_FILE_OPEN_ll(TNAM) +CALL IO_File_add2list(TNAM,TRIM(YNAM),'NML','READ',OOLD=.TRUE.) !OOLD=T because the file may already be in list +CALL IO_File_open(TNAM) ! KLUNAM = TNAM%NLU ! diff --git a/src/MNH/mnhopen_write_cover_tex.f90 b/src/MNH/mnhopen_write_cover_tex.f90 index 73904aa62..941758e61 100644 --- a/src/MNH/mnhopen_write_cover_tex.f90 +++ b/src/MNH/mnhopen_write_cover_tex.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################## @@ -40,10 +40,10 @@ ! ------------ ! USE MODD_CONF, ONLY: CPROGRAM -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! -USE MODE_FM, ONLY: IO_FILE_OPEN_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, ONLY: IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list ! ! IMPLICIT NONE @@ -67,8 +67,8 @@ TYPE(TFILEDATA),POINTER :: TZFILE TZFILE => NULL() ! IF (TRIM(CPROGRAM)=='PGD') THEN - CALL IO_FILE_ADD2LIST(TZFILE,YTEX,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE,HPOSITION='REWIND') + CALL IO_File_add2list(TZFILE,YTEX,'TXT','WRITE') + CALL IO_File_open(TZFILE,HPOSITION='REWIND') KTEX = TZFILE%NLU ELSE KTEX=0 diff --git a/src/MNH/mnhread_zs_dummyn.f90 b/src/MNH/mnhread_zs_dummyn.f90 index 94376de62..eb5eb084a 100644 --- a/src/MNH/mnhread_zs_dummyn.f90 +++ b/src/MNH/mnhread_zs_dummyn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -9,7 +9,7 @@ INTERFACE SUBROUTINE MNHREAD_ZS_DUMMY_n(TPINIFILE) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file ! @@ -57,16 +57,16 @@ END MODULE MODI_MNHREAD_ZS_DUMMY_n !* 0. DECLARATIONS ! ------------ ! -USE MODD_GRID_n, ONLY : XZS -USE MODD_GR_FIELD_n, ONLY : XSSO_STDEV, XSSO_ANISOTROPY, XSSO_DIRECTION, XSSO_SLOPE, & - XAVG_ZS, XSIL_ZS, XMIN_ZS, XMAX_ZS -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_PARAM_n, ONLY : CSURF +USE MODD_GRID_n, ONLY: XZS +USE MODD_GR_FIELD_n, ONLY: XSSO_STDEV, XSSO_ANISOTROPY, XSSO_DIRECTION, XSSO_SLOPE, & + XAVG_ZS, XSIL_ZS, XMIN_ZS, XMAX_ZS +USE MODD_IO, ONLY: TFILEDATA +USE MODD_PARAM_n, ONLY: CSURF ! USE MODI_READ_DUMMY_GR_FIELD_n ! USE MODE_ll -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read ! IMPLICIT NONE ! @@ -101,7 +101,7 @@ CALL GET_DIM_EXT_ll('B',IIU,IJU) ! --------- IF (.NOT.(ASSOCIATED(XZS))) THEN ALLOCATE(XZS(IIU,IJU)) - CALL IO_READ_FIELD(TPINIFILE,'ZS',XZS) + CALL IO_Field_read(TPINIFILE,'ZS',XZS) END IF ! IF (CSURF /='EXTE') RETURN @@ -113,28 +113,28 @@ IF (CSURF /='EXTE') RETURN ! -------------------------- ! IF (.NOT.(ASSOCIATED(XSSO_ANISOTROPY))) ALLOCATE(XSSO_ANISOTROPY(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'SSO_ANIS',XSSO_ANISOTROPY(:,:)) +CALL IO_Field_read(TPINIFILE,'SSO_ANIS',XSSO_ANISOTROPY(:,:)) ! IF (.NOT.(ASSOCIATED(XSSO_SLOPE))) ALLOCATE(XSSO_SLOPE(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'SSO_SLOPE',XSSO_SLOPE(:,:)) +CALL IO_Field_read(TPINIFILE,'SSO_SLOPE',XSSO_SLOPE(:,:)) ! IF (.NOT.(ASSOCIATED(XSSO_DIRECTION))) ALLOCATE(XSSO_DIRECTION(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'SSO_DIR',XSSO_DIRECTION(:,:)) +CALL IO_Field_read(TPINIFILE,'SSO_DIR',XSSO_DIRECTION(:,:)) ! IF (.NOT.(ASSOCIATED(XAVG_ZS))) ALLOCATE(XAVG_ZS(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'AVG_ZS',XAVG_ZS(:,:)) +CALL IO_Field_read(TPINIFILE,'AVG_ZS',XAVG_ZS(:,:)) ! IF (.NOT.(ASSOCIATED(XSIL_ZS))) ALLOCATE(XSIL_ZS(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'SIL_ZS',XSIL_ZS(:,:)) +CALL IO_Field_read(TPINIFILE,'SIL_ZS',XSIL_ZS(:,:)) ! IF (.NOT.(ASSOCIATED(XMAX_ZS))) ALLOCATE(XMAX_ZS(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'MAX_ZS',XMAX_ZS(:,:)) +CALL IO_Field_read(TPINIFILE,'MAX_ZS',XMAX_ZS(:,:)) ! IF (.NOT.(ASSOCIATED(XMIN_ZS))) ALLOCATE(XMIN_ZS(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'MIN_ZS',XMIN_ZS(:,:)) +CALL IO_Field_read(TPINIFILE,'MIN_ZS',XMIN_ZS(:,:)) ! IF (.NOT.(ASSOCIATED(XSSO_STDEV))) ALLOCATE(XSSO_STDEV(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'SSO_STDEV',XSSO_STDEV(:,:)) +CALL IO_Field_read(TPINIFILE,'SSO_STDEV',XSSO_STDEV(:,:)) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/mnhwrite_zs_dummyn.f90 b/src/MNH/mnhwrite_zs_dummyn.f90 index 708cf971d..29392ec2b 100644 --- a/src/MNH/mnhwrite_zs_dummyn.f90 +++ b/src/MNH/mnhwrite_zs_dummyn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -9,7 +9,7 @@ INTERFACE SUBROUTINE MNHWRITE_ZS_DUMMY_n(TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics ! @@ -57,15 +57,15 @@ END MODULE MODI_MNHWRITE_ZS_DUMMY_n !* 0. DECLARATIONS ! ------------ ! -USE MODD_GR_FIELD_n, ONLY : XSSO_STDEV, XSSO_ANISOTROPY, XSSO_DIRECTION, XSSO_SLOPE, & - XAVG_ZS, XSIL_ZS, XMIN_ZS, XMAX_ZS +USE MODD_GR_FIELD_n, ONLY: XSSO_STDEV, XSSO_ANISOTROPY, XSSO_DIRECTION, XSSO_SLOPE, & + XAVG_ZS, XSIL_ZS, XMIN_ZS, XMAX_ZS ! -USE MODD_PARAM_n, ONLY : CSURF -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_PARAM_n, ONLY: CSURF +USE MODD_IO, ONLY: TFILEDATA ! USE MODI_WRITE_DUMMY_GR_FIELD_n ! -USE MODE_FMWRIT +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! IMPLICIT NONE ! @@ -92,14 +92,14 @@ IF (CSURF /='EXTE') RETURN !* 2. Orographic characteristics : ! -------------------------- ! -CALL IO_WRITE_FIELD(TPFILE,'SSO_ANIS', XSSO_ANISOTROPY) -CALL IO_WRITE_FIELD(TPFILE,'SSO_SLOPE',XSSO_SLOPE) -CALL IO_WRITE_FIELD(TPFILE,'SSO_DIR', XSSO_DIRECTION) -CALL IO_WRITE_FIELD(TPFILE,'AVG_ZS', XAVG_ZS) -CALL IO_WRITE_FIELD(TPFILE,'SIL_ZS', XSIL_ZS) -CALL IO_WRITE_FIELD(TPFILE,'MAX_ZS', XMAX_ZS) -CALL IO_WRITE_FIELD(TPFILE,'MIN_ZS', XMIN_ZS) -CALL IO_WRITE_FIELD(TPFILE,'SSO_STDEV',XSSO_STDEV) +CALL IO_Field_write(TPFILE,'SSO_ANIS', XSSO_ANISOTROPY) +CALL IO_Field_write(TPFILE,'SSO_SLOPE',XSSO_SLOPE) +CALL IO_Field_write(TPFILE,'SSO_DIR', XSSO_DIRECTION) +CALL IO_Field_write(TPFILE,'AVG_ZS', XAVG_ZS) +CALL IO_Field_write(TPFILE,'SIL_ZS', XSIL_ZS) +CALL IO_Field_write(TPFILE,'MAX_ZS', XMAX_ZS) +CALL IO_Field_write(TPFILE,'MIN_ZS', XMIN_ZS) +CALL IO_Field_write(TPFILE,'SSO_STDEV',XSSO_STDEV) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/modd_ch_model0d.f90 b/src/MNH/modd_ch_model0d.f90 index f55a168be..0dd1a92ad 100644 --- a/src/MNH/modd_ch_model0d.f90 +++ b/src/MNH/modd_ch_model0d.f90 @@ -43,7 +43,7 @@ !* 0. DECLARATIONS ! ----------------- ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! IMPLICIT NONE SAVE diff --git a/src/MNH/modd_io_nam.f90 b/src/MNH/modd_io_nam.f90 index 8c4a8e628..e5249d0d4 100644 --- a/src/MNH/modd_io_nam.f90 +++ b/src/MNH/modd_io_nam.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -31,7 +31,7 @@ !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! IMPLICIT NONE !------------------------------------------------------------------------------ diff --git a/src/MNH/modd_io_surf_mnh.f90 b/src/MNH/modd_io_surf_mnh.f90 index dffcc6bc7..635f6b6ed 100644 --- a/src/MNH/modd_io_surf_mnh.f90 +++ b/src/MNH/modd_io_surf_mnh.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################## @@ -32,7 +32,7 @@ ! !* 0. DECLARATIONS ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS, ONLY: JPMODELMAX IMPLICIT NONE diff --git a/src/MNH/modd_lunit.f90 b/src/MNH/modd_lunit.f90 index a409e852d..d19cf3d35 100644 --- a/src/MNH/modd_lunit.f90 +++ b/src/MNH/modd_lunit.f90 @@ -38,7 +38,7 @@ !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! IMPLICIT NONE ! diff --git a/src/MNH/modd_lunitn.f90 b/src/MNH/modd_lunitn.f90 index 9462e7bbf..4ac4a5c31 100644 --- a/src/MNH/modd_lunitn.f90 +++ b/src/MNH/modd_lunitn.f90 @@ -42,7 +42,7 @@ ! ------------ ! ! -USE MODD_IO_ll, ONLY: TFILEDATA, TPTR2FILE +USE MODD_IO, ONLY: TFILEDATA, TPTR2FILE USE MODD_PARAMETERS, ONLY: JPMODELMAX, JPCPLFILEMAX IMPLICIT NONE @@ -82,7 +82,7 @@ CONTAINS SUBROUTINE LUNIT_GOTO_MODEL(KFROM, KTO) ! -USE MODD_IO_ll, ONLY : TFILE_OUTPUTLISTING +USE MODD_IO, ONLY : TFILE_OUTPUTLISTING ! INTEGER, INTENT(IN) :: KFROM, KTO ! diff --git a/src/MNH/modd_outn.f90 b/src/MNH/modd_outn.f90 index 0dceb304a..7a3ff7e78 100644 --- a/src/MNH/modd_outn.f90 +++ b/src/MNH/modd_outn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################ @@ -39,7 +39,7 @@ ! ! USE MODD_PARAMETERS, ONLY: JPMODELMAX, JPOUTMAX -USE MODD_IO_ll, ONLY:TOUTBAK +USE MODD_IO, ONLY: TOUTBAK IMPLICIT NONE TYPE OUT_t diff --git a/src/MNH/mode_les_diachro.f90 b/src/MNH/mode_les_diachro.f90 index 462859ff0..3e07a46f6 100644 --- a/src/MNH/mode_les_diachro.f90 +++ b/src/MNH/mode_les_diachro.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications @@ -726,7 +726,7 @@ END SUBROUTINE LES_TIME_AVG SUBROUTINE LES_DIACHRO(TPDIAFILE,HGROUP,HCOMMENT,HUNIT,PFIELD,HAVG) !######################################################## ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_GRID USE MODI_WRITE_DIACHRO @@ -854,7 +854,7 @@ END SUBROUTINE LES_DIACHRO SUBROUTINE LES_DIACHRO_SV(TPDIAFILE,HGROUP,HCOMMENT,HUNIT,PFIELD,HAVG) !########################################################### ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_GRID USE MODI_WRITE_DIACHRO @@ -980,7 +980,7 @@ END SUBROUTINE LES_DIACHRO_SV SUBROUTINE LES_DIACHRO_MASKS(TPDIAFILE,HGROUP,HTITLE,HCOMMENT,HUNIT,PFIELD,HAVG) !##################################################################### ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_GRID USE MODI_WRITE_DIACHRO @@ -1111,7 +1111,7 @@ END SUBROUTINE LES_DIACHRO_MASKS SUBROUTINE LES_DIACHRO_SV_MASKS(TPDIAFILE,HGROUP,HTITLE,HCOMMENT,HUNIT,PFIELD,HAVG) !######################################################################## ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_GRID USE MODI_WRITE_DIACHRO @@ -1247,7 +1247,7 @@ END SUBROUTINE LES_DIACHRO_SV_MASKS SUBROUTINE LES_DIACHRO_SURF(TPDIAFILE,HGROUP,HCOMMENT,HUNIT,PFIELD,HAVG) !############################################################# ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_GRID USE MODI_WRITE_DIACHRO @@ -1361,7 +1361,7 @@ END SUBROUTINE LES_DIACHRO_SURF SUBROUTINE LES_DIACHRO_SURF_SV(TPDIAFILE,HGROUP,HCOMMENT,HUNIT,PFIELD,HAVG) !################################################################ ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_GRID USE MODI_WRITE_DIACHRO @@ -1479,7 +1479,7 @@ SUBROUTINE LES_DIACHRO_2PT(TPDIAFILE,HGROUP,HCOMMENT,HUNIT,PFIELDX,PFIELDY,HAVG) !* Modification 01/04/03 (V. Masson) safer use of ZWORK6 with loops ! ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_GRID USE MODD_CONF @@ -1638,7 +1638,7 @@ SUBROUTINE LES_DIACHRO_SPEC(TPDIAFILE,HGROUP,HCOMMENT,HUNIT,PSPECTRAX,PSPECTRAY) !* Modification 01/04/03 (V. Masson) safer use of ZWORK6 with loops ! ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_GRID USE MODD_CONF diff --git a/src/MNH/mode_time.f90 b/src/MNH/mode_time.f90 index 1ac45c254..0f71113f9 100644 --- a/src/MNH/mode_time.f90 +++ b/src/MNH/mode_time.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -39,7 +39,7 @@ !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_TIME ! IMPLICIT NONE diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index bece43011..62c57bede 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -62,7 +62,7 @@ END MODULE MODI_MODEL_n !! !! EXTERNAL !! -------- -!! Subroutine IO_FILE_OPEN_ll: to open a file +!! Subroutine IO_File_open: to open a file !! Subroutine WRITE_DESFM: to write the descriptive part of a FMfile !! Subroutine WRITE_LFIFM: to write the binary part of a FMfile !! Subroutine SET_MASK : to compute all the masks selected for budget @@ -89,7 +89,7 @@ END MODULE MODI_MODEL_n !! compute the large scale fields, used to !! couple Model_n with outer informations. !! Subroutine ENDSTEP_BUDGET: writes the budget informations. -!! Subroutine IO_FILE_CLOSE_ll: closes a file +!! Subroutine IO_File_close: closes a file !! Subroutine DATETIME_CORRECTDATE: transform the current time in GMT !! Subroutine FORCING : computes forcing terms !! Subroutine ADD3DFIELD_ll : add a field to 3D-list @@ -254,7 +254,7 @@ END MODULE MODI_MODEL_n !! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll ! to allow to disable writes (for bench purposes) ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -293,7 +293,7 @@ USE MODD_GET_n USE MODD_GRID, ONLY: XLONORI,XLATORI USE MODD_GRID_n USE MODD_ICE_C1R3_DESCR, ONLY: XRTMIN_C1R3=>XRTMIN -USE MODD_IO_ll, ONLY: LIO_NO_WRITE, TFILEDATA,TFILE_SURFEX,TFILE_DUMMY +USE MODD_IO, ONLY: LIO_NO_WRITE, TFILEDATA, TFILE_SURFEX, TFILE_DUMMY USE MODD_LBC_n USE MODD_LES USE MODD_LES_BUDGET @@ -318,7 +318,7 @@ USE MODD_PARAM_LIMA, ONLY: MSEDC => LSEDC, MWARM => LWARM, MRAIN => LRAIN, L MSEDI => LSEDI, MHHONI => LHHONI, NMOD_IFN, LHAIL, & XRTMIN_LIMA=>XRTMIN, MACTTKE=>LACTTKE USE MODD_BLOWSNOW_n -USE MODD_BLOWSNOW +USE MODD_BLOWSNOW USE MODD_PARAM_MFSHALL_n USE MODD_PARAM_n USE MODD_PAST_FIELD_n @@ -340,19 +340,19 @@ USE MODD_TURB_n ! USE MODE_DATETIME USE MODE_ELEC_ll -USE MODE_FM -USE MODE_GRIDCART +USE MODE_GRIDCART USE MODE_GRIDPROJ -USE MODE_IO_ll -USE MODE_IO_WRITE_FIELD +USE MODE_IO_FIELD_WRITE, only: IO_Field_user_write, IO_Fieldlist_write, IO_Header_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list USE MODE_ll USE MODE_MNH_TIMING USE MODE_MODELN_HANDLER USE MODE_MPPDB ! USE MODI_ADVECTION_METSV -USE MODI_ADVECTION_UVW -USE MODI_ADVECTION_UVW_CEN +USE MODI_ADVECTION_UVW +USE MODI_ADVECTION_UVW_CEN USE MODI_ADV_FORCING_n USE MODI_AER_MONITOR_n USE MODI_AIRCRAFT_BALLOON @@ -370,7 +370,7 @@ USE MODI_FORCING USE MODI_FORC_SQUALL_LINE USE MODI_FORC_WIND USE MODI_GET_HALO -USE MODI_GRAVITY_IMPL +USE MODI_GRAVITY_IMPL USE MODI_INI_DIAG_IN_RUN USE MODI_INI_LG USE MODI_INI_MEAN_FIELD @@ -635,9 +635,9 @@ IF (KTCOUNT == 1) THEN IOUT=0 ! IF ( .NOT. LIO_NO_WRITE ) THEN - CALL IO_FILE_OPEN_ll(TDIAFILE) + CALL IO_File_open(TDIAFILE) ! - CALL IO_WRITE_HEADER(TDIAFILE) + CALL IO_Header_write(TDIAFILE) CALL WRITE_DESFM_n(IMI,TDIAFILE) CALL WRITE_LFIFMN_FORDIACHRO_n(TDIAFILE) END IF @@ -946,10 +946,10 @@ IF (IBAK < NBAK_NUMB ) THEN TZBAKFILE => TBACKUPN(IBAK)%TFILE IVERB = TZBAKFILE%NLFIVERB ! - CALL IO_FILE_OPEN_ll(TZBAKFILE) + CALL IO_File_open(TZBAKFILE) ! CALL WRITE_DESFM_n(IMI,TZBAKFILE) - CALL IO_WRITE_HEADER(TBACKUPN(IBAK)%TFILE) + CALL IO_Header_write(TBACKUPN(IBAK)%TFILE) CALL WRITE_LFIFM_n(TBACKUPN(IBAK)%TFILE,TBACKUPN(IBAK)%TFILE%TDADFILE%CNAME) TOUTDATAFILE => TZBAKFILE CALL MNHWRITE_ZS_DUMMY_n(TZBAKFILE) @@ -989,13 +989,13 @@ IF (IOUT < NOUT_NUMB ) THEN ! TZOUTFILE => TOUTPUTN(IOUT)%TFILE ! - CALL IO_FILE_OPEN_ll(TZOUTFILE) + CALL IO_File_open(TZOUTFILE) ! - CALL IO_WRITE_HEADER(TZOUTFILE) - CALL IO_WRITE_FIELDLIST(TOUTPUTN(IOUT)) - CALL IO_WRITE_FIELD_USER(TOUTPUTN(IOUT)) + CALL IO_Header_write(TZOUTFILE) + CALL IO_Fieldlist_write(TOUTPUTN(IOUT)) + CALL IO_Field_user_write(TOUTPUTN(IOUT)) ! - CALL IO_FILE_CLOSE_ll(TZOUTFILE) + CALL IO_File_close(TZOUTFILE) ! END IF END IF @@ -2073,7 +2073,7 @@ XT_STEP_BUD = XT_STEP_BUD + ZTIME2 - ZTIME1 + XTIME_BU ! IF (GCLOSE_OUT) THEN GCLOSE_OUT=.FALSE. - CALL IO_FILE_CLOSE_ll(TZBAKFILE) + CALL IO_File_close(TZBAKFILE) END IF ! !------------------------------------------------------------------------------- @@ -2109,11 +2109,11 @@ IF (OEXIT) THEN CALL WRITE_LES_n(TDIAFILE,'E') CALL WRITE_LES_n(TDIAFILE,'H') CALL MENU_DIACHRO(TDIAFILE,'END') - CALL IO_FILE_CLOSE_ll(TDIAFILE) + CALL IO_File_close(TDIAFILE) END IF ! - CALL IO_FILE_CLOSE_ll(TINIFILE) - IF (CSURF=="EXTE") CALL IO_FILE_CLOSE_ll(TINIFILEPGD) + CALL IO_File_close(TINIFILE) + IF (CSURF=="EXTE") CALL IO_File_close(TINIFILEPGD) ! !* 28.1 print statistics! ! @@ -2228,8 +2228,8 @@ IF (OEXIT) THEN ! ! ! - CALL IO_FILE_CLOSE_ll(TLUOUT) - IF (IMI==NMODEL) CALL IO_FILE_CLOSE_ll(TLUOUT0) + CALL IO_File_close(TLUOUT) + IF (IMI==NMODEL) CALL IO_File_close(TLUOUT0) END IF ! END SUBROUTINE MODEL_n diff --git a/src/MNH/modules_diachro.f90 b/src/MNH/modules_diachro.f90 index 2dd05edff..75fafa132 100644 --- a/src/MNH/modules_diachro.f90 +++ b/src/MNH/modules_diachro.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications: @@ -13,7 +13,7 @@ INTERFACE ! SUBROUTINE MENU_DIACHRO(TPDIAFILE,HGROUP) -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write CHARACTER(LEN=*), INTENT(IN) :: HGROUP @@ -31,7 +31,7 @@ END MODULE MODI_MENU_DIACHRO INTERFACE ! SUBROUTINE WRITE_LFIFMN_FORDIACHRO_n(TPFILE) -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA TYPE(TFILEDATA),INTENT(IN) :: TPFILE END SUBROUTINE WRITE_LFIFMN_FORDIACHRO_n ! @@ -49,7 +49,7 @@ SUBROUTINE WRITE_DIACHRO(TPDIAFILE,TPLUOUTDIA,HGROUP,HTYPE, & HTITRE,HUNITE,HCOMMENT,OICP,OJCP,OKCP,KIL,KIH,KJL,KJH,KKL,KKH, & PTRAJX,PTRAJY,PTRAJZ,PMASK) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write TYPE(TFILEDATA), INTENT(IN) :: TPLUOUTDIA diff --git a/src/MNH/open_file_mnh.f90 b/src/MNH/open_file_mnh.f90 index 8762e066e..4a0539ec7 100644 --- a/src/MNH/open_file_mnh.f90 +++ b/src/MNH/open_file_mnh.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2003-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -59,8 +59,8 @@ END MODULE MODI_OPEN_FILE_MNH ! USE MODD_IO_NAM, ONLY: TFILE ! -USE MODE_FM, ONLY: IO_FILE_OPEN_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, ONLY: IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MSG ! IMPLICIT NONE @@ -84,10 +84,10 @@ INTEGER :: IRESP ! CALL PRINT_MSG(NVERB_DEBUG,'IO','OPEN_FILE_MNH','called for '//TRIM(HFILE)) ! -CALL IO_FILE_ADD2LIST(TFILE,TRIM(HFILE),'SURFACE_DATA',HACTION, & +CALL IO_File_add2list(TFILE,TRIM(HFILE),'SURFACE_DATA',HACTION, & HFORM=HFORM,HACCESS=HACCESS,KRECL=KRECL, & OOLD=.TRUE.) !OOLD=T because the file may already be in list -CALL IO_FILE_OPEN_ll(TFILE) +CALL IO_File_open(TFILE) ! KUNIT = TFILE%NLU ! diff --git a/src/MNH/open_nestpgd_files.f90 b/src/MNH/open_nestpgd_files.f90 index 18d8f5f51..d331134d6 100644 --- a/src/MNH/open_nestpgd_files.f90 +++ b/src/MNH/open_nestpgd_files.f90 @@ -10,7 +10,7 @@ MODULE MODI_OPEN_NESTPGD_FILES INTERFACE SUBROUTINE OPEN_NESTPGD_FILES(TPFILEPGD,TPFILENESTPGD) ! -USE MODD_IO_ll, ONLY : TPTR2FILE +USE MODD_IO, ONLY : TPTR2FILE ! TYPE(TPTR2FILE),DIMENSION(:),ALLOCATABLE, INTENT(OUT) :: TPFILEPGD ! Input PGD files TYPE(TPTR2FILE),DIMENSION(:),ALLOCATABLE,TARGET,INTENT(OUT) :: TPFILENESTPGD ! Output PGD files @@ -67,35 +67,32 @@ END MODULE MODI_OPEN_NESTPGD_FILES !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! +USE MODD_CONF +USE MODD_CONF, ONLY: NHALO_CONF_MNH => NHALO +USE MODD_IO, ONLY: TFILE_OUTPUTLISTING, TFILEDATA, TPTR2FILE USE MODD_LUNIT USE MODD_LUNIT_n -USE MODD_CONF USE MODD_NESTING USE MODD_PARAMETERS -USE MODD_IO_ll, ONLY : TFILE_OUTPUTLISTING,TFILEDATA,TPTR2FILE -! -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST -USE MODE_FM, ONLY : IO_FILE_OPEN_ll, IO_FILE_CLOSE_ll -USE MODE_POS -USE MODE_MSG ! +USE MODE_IO, ONLY: IO_Config_set +USE MODE_IO_FILE, ONLY: IO_File_open, IO_File_close +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MODELN_HANDLER -! -USE MODD_PARAMETERS, ONLY : JPHEXT -USE MODD_CONF, ONLY : NHALO_CONF_MNH => NHALO +USE MODE_MSG +USE MODE_POS ! USE MODN_CONFZ -USE MODN_CONFIO, ONLY : NAM_CONFIO +USE MODN_CONFIO, ONLY: NAM_CONFIO ! IMPLICIT NONE ! @@ -159,8 +156,8 @@ HPRE_NEST_PGD='PRE_NEST_PGD1.nam' !* 2. OPENING OF TLUOUT0 ! ------------------ ! -CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') -CALL IO_FILE_OPEN_ll(TLUOUT0) +CALL IO_File_add2list(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') +CALL IO_File_open(TLUOUT0) !Set output file for PRINT_MSG TFILE_OUTPUTLISTING => TLUOUT0 ! @@ -171,8 +168,8 @@ ILUOUT0=TLUOUT0%NLU !* 3. OPENNING OF PRE_NEST_PGD1.nam ! ----------------------------- ! -CALL IO_FILE_ADD2LIST(TZPRE_NEST_PGD,TRIM(HPRE_NEST_PGD),'NML','READ') -CALL IO_FILE_OPEN_ll(TZPRE_NEST_PGD) +CALL IO_File_add2list(TZPRE_NEST_PGD,TRIM(HPRE_NEST_PGD),'NML','READ') +CALL IO_File_open(TZPRE_NEST_PGD) IPRE_NEST_PGD = TZPRE_NEST_PGD%NLU !reading of NAM_CONFZ CALL POSNAM(IPRE_NEST_PGD,'NAM_CONFZ',GFOUND) @@ -285,8 +282,8 @@ END DO ! DO JPGD=1,NMODEL WRITE(YLUOUT,'("OUTPUT_LISTING",I0)') JPGD - CALL IO_FILE_ADD2LIST(LUNIT_MODEL(JPGD)%TLUOUT,YLUOUT,'OUTPUTLISTING','WRITE') - CALL IO_FILE_OPEN_ll(LUNIT_MODEL(JPGD)%TLUOUT) + CALL IO_File_add2list(LUNIT_MODEL(JPGD)%TLUOUT,YLUOUT,'OUTPUTLISTING','WRITE') + CALL IO_File_open(LUNIT_MODEL(JPGD)%TLUOUT) END DO ! !------------------------------------------------------------------------------- @@ -299,26 +296,26 @@ IF (GFOUND) READ(UNIT=IPRE_NEST_PGD,NML=NAM_NEST_PGD) ! CALL POSNAM(IPRE_NEST_PGD,'NAM_CONFIO',GFOUND,ILUOUT0) IF (GFOUND) READ(UNIT=IPRE_NEST_PGD,NML=NAM_CONFIO) -CALL SET_CONFIO_ll() +CALL IO_Config_set() ! ALLOCATE(TPFILEPGD (NMODEL)) ALLOCATE(TPFILENESTPGD(NMODEL)) ! DO JPGD=1,NMODEL - CALL IO_FILE_ADD2LIST(TPFILEPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD)),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_add2list(TPFILEPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD)),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) ! IF (NDAD(JPGD)>=1) THEN TZDADFILE => TPFILENESTPGD(NDAD(JPGD))%TZFILE - CALL IO_FILE_ADD2LIST(TPFILENESTPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD))//'.nest'//ADJUSTL(YNEST),'PGD', & + CALL IO_File_add2list(TPFILENESTPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD))//'.nest'//ADJUSTL(YNEST),'PGD', & 'WRITE',KLFITYPE=1,KLFIVERB=NVERB,KMODEL=JPGD,TPDADFILE=TZDADFILE) ELSE NULLIFY(TZDADFILE) - CALL IO_FILE_ADD2LIST(TPFILENESTPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD))//'.nest'//ADJUSTL(YNEST),'PGD', & + CALL IO_File_add2list(TPFILENESTPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD))//'.nest'//ADJUSTL(YNEST),'PGD', & 'WRITE',KLFITYPE=1,KLFIVERB=NVERB,KMODEL=JPGD) END IF END DO ! -CALL IO_FILE_CLOSE_ll(TZPRE_NEST_PGD) +CALL IO_File_close(TZPRE_NEST_PGD) !------------------------------------------------------------------------------- ! !* 7. OPENING OF INPUT PGD FILES @@ -327,7 +324,7 @@ CALL IO_FILE_CLOSE_ll(TZPRE_NEST_PGD) !Remark: output PGD files are opened later when the mesh dimensions are known ! DO JPGD=1,NMODEL - CALL IO_FILE_OPEN_ll(TPFILEPGD(JPGD)%TZFILE) + CALL IO_File_open(TPFILEPGD(JPGD)%TZFILE) END DO ! !------------------------------------------------------------------------------- diff --git a/src/MNH/open_prc_files.f90 b/src/MNH/open_prc_files.f90 index 42cee97ca..bb02f6951 100644 --- a/src/MNH/open_prc_files.f90 +++ b/src/MNH/open_prc_files.f90 @@ -13,7 +13,7 @@ INTERFACE HSURFFILE,HSURFFILETYPE, & HPGDFILE,TPPGDFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA),POINTER, INTENT(OUT) :: TPPRE_REAL1FILE ! PRE_REAL1 file CHARACTER(LEN=28), INTENT(OUT) :: HATMFILE ! name of the input atmospheric file @@ -91,9 +91,9 @@ END MODULE MODI_OPEN_PRC_FILES !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! P. Wautelet 01/02/2019 added missing initialization to NULL for files with OUT intent -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! @@ -105,16 +105,16 @@ USE MODD_CONF_n !JUAN Z_SPLITTING !USE MODD_CONFZ !JUAN Z_SPLITTING -USE MODD_IO_ll, ONLY: TFILE_OUTPUTLISTING,TFILEDATA +USE MODD_IO, ONLY: TFILE_OUTPUTLISTING, TFILEDATA USE MODD_LUNIT USE MODD_LUNIT_n, CINIFILE_n=>CINIFILE , CINIFILEPGD_n=>CINIFILEPGD ! ! -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST -USE MODE_POS -USE MODE_FM -USE MODE_IO_ll +USE MODE_IO, only: IO_Config_set +USE MODE_IO_FILE, only: IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list USE MODE_MSG +USE MODE_POS ! USE MODN_CONFIO, ONLY : NAM_CONFIO !JUAN Z_SPLITTING @@ -171,8 +171,8 @@ HSURFFILETYPE='MESONH' !* 2. OPENNING OF THE OUTPUT LISTING FILE ! ----------------------------------- ! -CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') -CALL IO_FILE_OPEN_ll(TLUOUT0) +CALL IO_File_add2list(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') +CALL IO_File_open(TLUOUT0) !Set output file for PRINT_MSG TFILE_OUTPUTLISTING => TLUOUT0 ! @@ -185,8 +185,8 @@ IF (NVERB>=5) WRITE(ILUOUT0,*) 'Routine OPEN_PRC_FILES started' ! ------------------------- ! TPPRE_REAL1FILE => NULL() -CALL IO_FILE_ADD2LIST(TPPRE_REAL1FILE,'PRE_REAL1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TPPRE_REAL1FILE,KRESP=IRESP) +CALL IO_File_add2list(TPPRE_REAL1FILE,'PRE_REAL1.nam','NML','READ') +CALL IO_File_open(TPPRE_REAL1FILE,KRESP=IRESP) IPRE_REAL1=TPPRE_REAL1FILE%NLU IF (IRESP.NE.0 ) THEN !callabortstop @@ -204,7 +204,7 @@ IF (GFOUND) READ(UNIT=IPRE_REAL1,NML=NAM_CONFZ) !JUANZ CALL POSNAM(IPRE_REAL1,'NAM_CONFIO',GFOUND,ILUOUT0) IF (GFOUND) READ(UNIT=IPRE_REAL1,NML=NAM_CONFIO) -CALL SET_CONFIO_ll() +CALL IO_Config_set() ! CINIFILE = CINIFILE_n CALL POSNAM(IPRE_REAL1,'NAM_FILE_NAMES',GFOUND,ILUOUT0) @@ -271,8 +271,8 @@ ELSE ! ----------------------------------- ! TPPGDFILE => NULL() - CALL IO_FILE_ADD2LIST(TPPGDFILE,TRIM(HPGDFILE),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TPPGDFILE,IRESP) + CALL IO_File_add2list(TPPGDFILE,TRIM(HPGDFILE),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TPPGDFILE,IRESP) IF (IRESP/=0) THEN !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','OPEN_PRC_FILES',' problem during opening of PGD file '//TRIM(HPGDFILE)) diff --git a/src/MNH/paspol.f90 b/src/MNH/paspol.f90 index 4cab8bd6b..1fee61de9 100644 --- a/src/MNH/paspol.f90 +++ b/src/MNH/paspol.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl MODULE MODI_PASPOL ! ################## @@ -10,7 +11,7 @@ INTERFACE ! SUBROUTINE PASPOL (PTSTEP, PSFSV, KLUOUT, KVERB, OCLOSE_OUT, TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! IMPLICIT NONE ! @@ -67,7 +68,7 @@ END MODULE MODI_PASPOL USE MODD_PARAMETERS USE MODD_NSV USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODE_GRIDPROJ USE MODD_PASPOL USE MODD_CTURB @@ -75,9 +76,8 @@ USE MODI_SHUMAN USE MODI_GRADIENT_U USE MODI_GRADIENT_V USE MODI_GRADIENT_M -USE MODE_FMWRIT +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll -USE MODE_FM USE MODD_ARGSLIST_ll, ONLY : LIST_ll USE MODD_DYN_n USE MODD_CONF @@ -591,7 +591,7 @@ IF (OCLOSE_OUT) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','ATC',JSV+NSV_PPBEG-1 ! - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTEMPO) + CALL IO_Field_write(TPFILE,TZFIELD,ZTEMPO) END DO ! DEALLOCATE(ZTEMPO) diff --git a/src/MNH/pgd_grid_io_init_mnh.f90 b/src/MNH/pgd_grid_io_init_mnh.f90 index e7e416226..202333f7d 100644 --- a/src/MNH/pgd_grid_io_init_mnh.f90 +++ b/src/MNH/pgd_grid_io_init_mnh.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2004-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !####################### @@ -59,19 +59,6 @@ MODULE MODI_PGD_GRID_IO_INIT_MNH ! USE MODD_SURF_ATM_GRID_n, ONLY : SURF_ATM_GRID_t ! - USE MODE_ll - USE MODE_FM - USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT, JPMODELMAX - USE MODD_CONF, ONLY : CPROGRAM, L1D, L2D, LPACK - ! - USE MODE_IO_ll - !JUANZ - USE MODE_SPLITTINGZ_ll - !JUANZ - ! - USE MODI_GET_SURF_GRID_DIM_N - USE MODI_GET_LUOUT - ! IMPLICIT NONE ! !* 0.1 Declaration of dummy arguments @@ -140,22 +127,19 @@ END MODULE MODI_PGD_GRID_IO_INIT_MNH !* 0. DECLARATION ! ----------- ! -USE MODD_SURF_ATM_GRID_n, ONLY : SURF_ATM_GRID_t +USE MODD_CONF, ONLY: CPROGRAM, L1D, L2D, LPACK +USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX +USE MODD_MNH_SURFEX_n +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT, JPMODELMAX +USE MODD_SURF_ATM_GRID_n, ONLY: SURF_ATM_GRID_t ! +USE MODE_IO, only: IO_Pack_set USE MODE_ll -USE MODE_FM -USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT, JPMODELMAX -USE MODD_CONF, ONLY : CPROGRAM, L1D, L2D, LPACK -USE MODD_DIM_n, ONLY : NIMAX_ll, NJMAX_ll, NKMAX -! -!JUANZ USE MODE_SPLITTINGZ_ll -!JUANZ ! USE MODI_GET_SURF_GRID_DIM_N USE MODI_GET_LUOUT ! -USE MODD_MNH_SURFEX_n ! IMPLICIT NONE ! @@ -227,7 +211,7 @@ END IF L1D=(IIMAX==1).AND.(IJMAX==1) L2D=(IIMAX/=1).AND.(IJMAX==1) LPACK=L1D.OR.L2D -CALL SET_FMPACK_ll(L1D,L2D,LPACK) +CALL IO_Pack_set(L1D,L2D,LPACK) CALL SET_JP_ll(JPMODELMAX,JPHEXT,JPVEXT,JPHEXT) CALL SET_DAD0_ll() NIMAX_ll = IIMAX diff --git a/src/MNH/phys_paramn.f90 b/src/MNH/phys_paramn.f90 index 106ec1623..9fa7c447d 100644 --- a/src/MNH/phys_paramn.f90 +++ b/src/MNH/phys_paramn.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######################## MODULE MODI_PHYS_PARAM_n ! ######################## @@ -13,7 +14,7 @@ INTERFACE PRAD,PSHADOWS,PKAFR,PGROUND,PMAFL,PDRAG,PTURB,PTRACER, & PTIME_BU, PWETDEPAER, OMASKkids,OCLOUD_ONLY ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KTCOUNT ! temporal iteration count TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Synchronous output file @@ -239,8 +240,6 @@ END MODULE MODI_PHYS_PARAM_n ! USE MODE_DATETIME USE MODE_ll -USE MODE_FM -USE MODE_FMWRIT USE MODD_ARGSLIST_ll, ONLY : LIST_ll ! USE MODD_BLANK @@ -248,7 +247,7 @@ USE MODD_CST USE MODD_DYN USE MODD_CONF USE MODD_FRC -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_GRID USE MODD_NSV @@ -303,7 +302,6 @@ USE MODI_CONVECTION USE MODI_BUDGET USE MODI_PASPOL USE MODI_CONDSAMP -USE MODE_FM USE MODE_MODELN_HANDLER USE MODI_SEDIM_DUST USE MODI_SEDIM_SALT diff --git a/src/MNH/ppm.f90 b/src/MNH/ppm.f90 index 446178015..779233104 100644 --- a/src/MNH/ppm.f90 +++ b/src/MNH/ppm.f90 @@ -193,7 +193,6 @@ END MODULE MODI_PPM !------------------------------------------------------------------------------- ! USE MODE_ll -USE MODE_IO_ll USE MODI_SHUMAN USE MODI_GET_HALO ! @@ -633,7 +632,6 @@ END FUNCTION PPM_01_X !------------------------------------------------------------------------------- ! USE MODE_ll -USE MODE_IO_ll USE MODI_SHUMAN USE MODI_GET_HALO ! @@ -1275,7 +1273,6 @@ END FUNCTION PPM_01_Z !------------------------------------------------------------------------------- ! USE MODE_ll -USE MODE_IO_ll USE MODI_SHUMAN USE MODI_GET_HALO ! @@ -1540,7 +1537,6 @@ END FUNCTION PPM_S0_X !------------------------------------------------------------------------------- ! USE MODE_ll -USE MODE_IO_ll USE MODI_SHUMAN USE MODI_GET_HALO ! @@ -1933,7 +1929,6 @@ END FUNCTION PPM_S0_Z !------------------------------------------------------------------------------- ! USE MODE_ll -USE MODE_IO_ll USE MODI_SHUMAN ! USE MODD_CONF @@ -2186,7 +2181,6 @@ END FUNCTION PPM_S1_X !------------------------------------------------------------------------------- ! USE MODE_ll -USE MODE_IO_ll USE MODI_SHUMAN ! USE MODD_CONF diff --git a/src/MNH/prandtl.f90 b/src/MNH/prandtl.f90 index 13537544f..85e161424 100644 --- a/src/MNH/prandtl.f90 +++ b/src/MNH/prandtl.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -22,7 +22,7 @@ INTERFACE PETHETA, PEMOIST ) ! ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index @@ -197,7 +197,7 @@ END MODULE MODI_PRANDTL USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS ! USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL @@ -206,7 +206,7 @@ USE MODI_GRADIENT_M USE MODI_EMOIST USE MODI_ETHETA USE MODI_SHUMAN -USE MODE_FMWRIT +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! IMPLICIT NONE ! @@ -526,7 +526,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PREDTH1) + CALL IO_Field_write(TPFILE,TZFIELD,PREDTH1) ! ! stores the RED_R1 TZFIELD%CMNHNAME = 'RED_R1' @@ -539,7 +539,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PREDR1) + CALL IO_Field_write(TPFILE,TZFIELD,PREDR1) ! ! stores the RED2_TH3 TZFIELD%CMNHNAME = 'RED2_TH3' @@ -552,7 +552,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PRED2TH3) + CALL IO_Field_write(TPFILE,TZFIELD,PRED2TH3) ! ! stores the RED2_R3 TZFIELD%CMNHNAME = 'RED2_R3' @@ -565,7 +565,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PRED2R3) + CALL IO_Field_write(TPFILE,TZFIELD,PRED2R3) ! ! stores the RED2_THR3 TZFIELD%CMNHNAME = 'RED2_THR3' @@ -578,7 +578,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PRED2THR3) + CALL IO_Field_write(TPFILE,TZFIELD,PRED2THR3) ! END IF ! diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index 7a64a4869..6454934b0 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -171,10 +171,10 @@ !! SET_REF : to compute rhoJ !! RESSURE_IN_PREP : to apply an anelastic correction in the case of !! non-vanishing orography -!! IO_FILE_OPEN_ll : to open a FM-file (DESFM + LFIFM) +!! IO_File_open : to open a FM-file (DESFM + LFIFM) !! WRITE_DESFM : to write the DESFM file !! WRI_LFIFM : to write the LFIFM file -!! IO_FILE_CLOSE_ll : to close a FM-file (DESFM + LFIFM) +!! IO_File_close : to close a FM-file (DESFM + LFIFM) !! !! MXM,MYM,MZM : Shuman operators !! WGUESS : to compute W with the continuity equation from @@ -311,7 +311,7 @@ !! P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define !! 01/2018 (G.Delautier) SURFEX 8.1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! @@ -323,7 +323,7 @@ USE MODD_ARGSLIST_ll, ONLY : LIST_ll USE MODD_DIM_n USE MODD_CONF USE MODD_CST -USE MODD_GRID +USE MODD_GRID USE MODD_GRID_n USE MODD_METRICS_n USE MODD_PGDDIM @@ -347,7 +347,7 @@ USE MODD_SALT, ONLY: LSALT, NMODE_SLT, CRGUNITS, XINISIG_SLT, XINIRADIUS_S USE MODD_VAR_ll, ONLY: NPROC USE MODD_LUNIT, ONLY: TLUOUT0, TOUTDATAFILE USE MODD_LUNIT_n -USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG,TFILE_DUMMY,TFILE_OUTPUTLISTING +USE MODD_IO, ONLY: NIO_VERB, NVERB_DEBUG, TFILE_DUMMY, TFILE_OUTPUTLISTING USE MODD_CONF_n USE MODD_NSV, ONLY : NSV,NSV_CHEM, & NSV_DSTEND, NSV_DSTBEG @@ -358,11 +358,12 @@ USE MODE_THERMO USE MODE_POS USE MODE_GRIDCART ! Executive modules USE MODE_GRIDPROJ -USE MODE_FM -USE MODE_FMREAD USE MODE_GATHER_ll -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST,IO_FILE_PRINT_LIST +USE MODE_IO, only: IO_Config_set, IO_Init, IO_Pack_set +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Field_write, IO_Header_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list,IO_Filelist_print USE MODE_ll USE MODE_MODELN_HANDLER USE MODE_FIELD @@ -421,11 +422,10 @@ USE MODI_SET_RELFRC ! USE MODI_INI_CST USE MODI_INI_NEB -USE MODE_FMWRIT USE MODI_WRITE_HGRID USE MODD_MPIF USE MODD_VAR_ll -USE MODD_IO_ll, ONLY: TFILEDATA,TFILE_SURFEX +USE MODD_IO, ONLY: TFILEDATA,TFILE_SURFEX ! USE MODE_MPPDB ! @@ -617,7 +617,7 @@ CALL MPPDB_INIT() ! CALL GOTO_MODEL(1) ! -CALL INITIO_ll() +CALL IO_Init() NULLIFY(TZ_FIELDS_ll) CALL VERSION CPROGRAM='IDEAL ' @@ -665,15 +665,15 @@ CALL DEFAULT_EXPRE ! and open these files : ! ! -CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING1','OUTPUTLISTING','WRITE') -CALL IO_FILE_OPEN_ll(TLUOUT0) +CALL IO_File_add2list(TLUOUT0,'OUTPUT_LISTING1','OUTPUTLISTING','WRITE') +CALL IO_File_open(TLUOUT0) NLUOUT = TLUOUT0%NLU !Set output files for PRINT_MSG TLUOUT => TLUOUT0 TFILE_OUTPUTLISTING => TLUOUT0 ! -CALL IO_FILE_ADD2LIST(TZEXPREFILE,'PRE_IDEA1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TZEXPREFILE) +CALL IO_File_add2list(TZEXPREFILE,'PRE_IDEA1.nam','NML','READ') +CALL IO_File_open(TZEXPREFILE) NLUPRE=TZEXPREFILE%NLU ! !* 3.2 read in NLUPRE the namelist informations @@ -691,7 +691,7 @@ IF (GFOUND) READ(UNIT=NLUPRE,NML=NAM_CONFZ) !JUANZ CALL POSNAM(NLUPRE,'NAM_CONFIO',GFOUND,NLUOUT) IF (GFOUND) READ(UNIT=NLUPRE,NML=NAM_CONFIO) -CALL SET_CONFIO_ll() +CALL IO_Config_set() CALL POSNAM(NLUPRE,'NAM_GRID_PRE',GFOUND,NLUOUT) IF (GFOUND) READ(UNIT=NLUPRE,NML=NAM_GRID_PRE) CALL POSNAM(NLUPRE,'NAM_GRIDH_PRE',GFOUND,NLUOUT) @@ -710,13 +710,13 @@ CALL INI_FIELD_SCALARS() ! IF( LEN_TRIM(CPGD_FILE) /= 0 ) THEN ! open the PGD_FILE - CALL IO_FILE_ADD2LIST(TPGDFILE,TRIM(CPGD_FILE),'PGD','READ',KLFINPRAR=NNPRAR,KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TPGDFILE) + CALL IO_File_add2list(TPGDFILE,TRIM(CPGD_FILE),'PGD','READ',KLFINPRAR=NNPRAR,KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TPGDFILE) ! read the grid in the PGD file - CALL IO_READ_FIELD(TPGDFILE,'IMAX', NIMAX) - CALL IO_READ_FIELD(TPGDFILE,'JMAX', NJMAX) - CALL IO_READ_FIELD(TPGDFILE,'JPHEXT',IJPHEXT) + CALL IO_Field_read(TPGDFILE,'IMAX', NIMAX) + CALL IO_Field_read(TPGDFILE,'JMAX', NJMAX) + CALL IO_Field_read(TPGDFILE,'JPHEXT',IJPHEXT) IF ( CPGD_FILE /= CINIFILEPGD) THEN WRITE(NLUOUT,FMT=*) ' WARNING : in PRE_IDEA1.nam, in NAM_LUNITn you& @@ -911,7 +911,7 @@ ENDIF CALL SET_JP_ll(1,JPHEXT,JPVEXT,JPHEXT) CALL SET_DAD0_ll() CALL SET_DIM_ll(NIMAX_ll, NJMAX_ll, NKMAX) -CALL SET_FMPACK_ll(L1D,L2D,LPACK) +CALL IO_Pack_set(L1D,L2D,LPACK) CALL SET_LBX_ll(CLBCX(1), 1) CALL SET_LBY_ll(CLBCY(1), 1) CALL SET_XRATIO_ll(1, 1) @@ -1713,7 +1713,7 @@ END IF ! before calling chemistry CCONF = 'START' CSTORAGE_TYPE='TT' -CALL IO_FILE_CLOSE_ll(TZEXPREFILE) ! Close the EXPRE file +CALL IO_File_close(TZEXPREFILE) ! Close the EXPRE file ! IF ( LCH_INIT_FIELD ) CALL CH_INIT_FIELD_n(1, NLUOUT, NVERB) ! @@ -1730,11 +1730,11 @@ NNPRAR = 22 + 2*(NRR+NSV) & ! 22 = number of grid variables + reference ! variables at time t and t-dt NTYPE=1 ! -CALL IO_FILE_ADD2LIST(TINIFILE,TRIM(CINIFILE),'MNH','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB) +CALL IO_File_add2list(TINIFILE,TRIM(CINIFILE),'MNH','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB) ! -CALL IO_FILE_OPEN_ll(TINIFILE) +CALL IO_File_open(TINIFILE) ! -CALL IO_WRITE_HEADER(TINIFILE) +CALL IO_Header_write(TINIFILE) ! CALL WRITE_DESFM_n(1,TINIFILE) ! @@ -1770,8 +1770,8 @@ IF (CSURF =='EXTE') THEN TPGDFILE => TINIFILE CALL PGD_GRID_SURF_ATM(YSURF_CUR%UG, YSURF_CUR%U,YSURF_CUR%GCP,'MESONH',TINIFILE%CNAME,'MESONH',.TRUE.,HDIR='-') CALL PGD_SURF_ATM (YSURF_CUR,'MESONH',TINIFILE%CNAME,'MESONH',.TRUE.) - CALL IO_FILE_ADD2LIST(TINIFILEPGD,TRIM(CINIFILEPGD),'PGD','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll (TINIFILEPGD) + CALL IO_File_add2list(TINIFILEPGD,TRIM(CINIFILEPGD),'PGD','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB) + CALL IO_File_open (TINIFILEPGD) TPGDFILE => TINIFILEPGD ELSE ! ... or read from file. @@ -1790,12 +1790,12 @@ IF (CSURF =='EXTE') THEN !* writing of physiographic fields in the file CSTORAGE_TYPE='PG' ! - CALL IO_WRITE_HEADER(TINIFILEPGD) - CALL IO_WRITE_FIELD(TINIFILEPGD,'JPHEXT', JPHEXT) - CALL IO_WRITE_FIELD(TINIFILEPGD,'SURF','EXTE') - CALL IO_WRITE_FIELD(TINIFILEPGD,'L1D', L1D) - CALL IO_WRITE_FIELD(TINIFILEPGD,'L2D', L2D) - CALL IO_WRITE_FIELD(TINIFILEPGD,'PACK',LPACK) + CALL IO_Header_write(TINIFILEPGD) + CALL IO_Field_write(TINIFILEPGD,'JPHEXT', JPHEXT) + CALL IO_Field_write(TINIFILEPGD,'SURF','EXTE') + CALL IO_Field_write(TINIFILEPGD,'L1D', L1D) + CALL IO_Field_write(TINIFILEPGD,'L2D', L2D) + CALL IO_Field_write(TINIFILEPGD,'PACK',LPACK) CALL WRITE_HGRID(1,TINIFILEPGD) ! TOUTDATAFILE => TINIFILEPGD @@ -1825,11 +1825,11 @@ END IF ! --------------- ! IF (CSURF =='EXTE' .AND. (LEN_TRIM(CPGD_FILE)==0 .OR. .NOT. LREAD_GROUND_PARAM)) THEN - CALL IO_FILE_CLOSE_ll(TINIFILEPGD) + CALL IO_File_close(TINIFILEPGD) ENDIF -CALL IO_FILE_CLOSE_ll(TINIFILE) +CALL IO_File_close(TINIFILE) IF( LEN_TRIM(CPGD_FILE) /= 0 ) THEN - CALL IO_FILE_CLOSE_ll(TPGDFILE) + CALL IO_File_close(TPGDFILE) ENDIF ! ! @@ -1896,9 +1896,9 @@ WRITE(NLUOUT,FMT=*) '****************************************************' WRITE(NLUOUT,FMT=*) '* PREP_IDEAL_CASE: PREP_IDEAL_CASE ENDS CORRECTLY. *' WRITE(NLUOUT,FMT=*) '****************************************************' ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! -CALL IO_FILE_CLOSE_ll(TLUOUT) +CALL IO_File_close(TLUOUT) ! CALL END_PARA_ll(IINFO_ll) ! diff --git a/src/MNH/prep_nest_pgd.f90 b/src/MNH/prep_nest_pgd.f90 index 8e7270040..5b5a884f4 100644 --- a/src/MNH/prep_nest_pgd.f90 +++ b/src/MNH/prep_nest_pgd.f90 @@ -91,7 +91,7 @@ !! 06/2016 (G.Delautier) phasage surfex 8 !! P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -101,7 +101,7 @@ USE MODD_CONF USE MODD_CONF_n USE MODD_CST USE MODD_DIM_n -USE MODD_IO_ll, ONLY: NIO_VERB, NVERB_DEBUG, TFILE_SURFEX, TPTR2FILE +USE MODD_IO, ONLY: NIO_VERB, NVERB_DEBUG, TFILE_SURFEX, TPTR2FILE USE MODD_GRID_n, ONLY: XZSMT USE MODD_LUNIT, ONLY: TPGDFILE,TLUOUT0,TOUTDATAFILE USE MODD_MNH_SURFEX_n @@ -110,11 +110,11 @@ USE MODD_PARAMETERS USE MODD_VAR_ll, ONLY: NPROC, IP, NMNH_COMM_WORLD ! USE MODE_FIELD, ONLY: INI_FIELD_LIST -USE MODE_FM -USE MODE_FMREAD -USE MODE_FMWRIT -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_PRINT_LIST +USE MODE_IO, only: IO_Init, IO_Pack_set +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Field_write, IO_Header_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_Filelist_print USE MODE_ll USE MODE_MNH_WORLD, ONLY: INIT_NMNH_COMM_WORLD USE MODE_MODELN_HANDLER @@ -168,7 +168,7 @@ CALL MPPDB_INIT() CALL VERSION CPROGRAM='NESPGD' ! -CALL INITIO_ll() +CALL IO_Init() !!$CALL SET_JP_ll(JPMODELMAX,JPHEXT,JPVEXT,JPHEXT) ! !* 1. INITIALIZATION OF PHYSICAL CONSTANTS @@ -202,14 +202,14 @@ CALL INI_FIELD_LIST() CALL SET_DAD0_ll() DO JPGD=1,NMODEL ! read and set dimensions and ratios of model JPGD - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'IMAX', IIMAX) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'JMAX', IJMAX) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'DXRATIO',NDXRATIO_ALL(JPGD)) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'DYRATIO',NDYRATIO_ALL(JPGD)) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'XSIZE', NXSIZE(JPGD)) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'YSIZE', NYSIZE(JPGD)) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'XOR', NXOR_ALL(JPGD)) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'YOR', NYOR_ALL(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'IMAX', IIMAX) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'JMAX', IJMAX) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'DXRATIO',NDXRATIO_ALL(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'DYRATIO',NDYRATIO_ALL(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'XSIZE', NXSIZE(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'YSIZE', NYSIZE(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'XOR', NXOR_ALL(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'YOR', NYOR_ALL(JPGD)) CALL SET_DIM_ll(IIMAX, IJMAX, 1) ! compute origin and end of local subdomain of model JPGD ! initialize variables from MODD_NESTING, origin and end of global model JPGD in coordinates of its father @@ -246,10 +246,10 @@ DO JPGD=1,NMODEL CALL GOTO_MODEL(JPGD) CALL GO_TOMODEL_ll(JPGD,IINFO_ll) CALL GOTO_SURFEX(JPGD) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'L1D', L1D_ALL(JPGD)) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'L2D', L2D_ALL(JPGD)) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'PACK',LPACK_ALL(JPGD)) - CALL SET_FMPACK_ll(L1D_ALL(JPGD),L2D_ALL(JPGD),LPACK_ALL(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'L1D', L1D_ALL(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'L2D', L2D_ALL(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'PACK',LPACK_ALL(JPGD)) + CALL IO_Pack_set(L1D_ALL(JPGD),L2D_ALL(JPGD),LPACK_ALL(JPGD)) CALL READ_HGRID(JPGD,TZFILEPGD(JPGD)%TZFILE,YMY_NAME,YDAD_NAME,YSTORAGE_TYPE) CSTORAGE_TYPE='PG' END DO @@ -335,12 +335,12 @@ DO JPGD=1,NMODEL TOUTDATAFILE => TZFILENESTPGD(JPGD)%TZFILE CALL GOTO_MODEL(JPGD) !Open done here because grid dimensions have to be known - CALL IO_FILE_OPEN_ll(TZFILENESTPGD(JPGD)%TZFILE) + CALL IO_File_open(TZFILENESTPGD(JPGD)%TZFILE) CALL GOTO_SURFEX(JPGD) TFILE_SURFEX => TZFILENESTPGD(JPGD)%TZFILE CALL WRITE_PGD_SURF_ATM_n(YSURF_CUR,'MESONH') NULLIFY(TFILE_SURFEX) - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'ZSMT',XZSMT) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'ZSMT',XZSMT) END DO ! !------------------------------------------------------------------------------- @@ -350,18 +350,18 @@ END DO ! ! DO JPGD=1,NMODEL - CALL IO_WRITE_HEADER(TZFILENESTPGD(JPGD)%TZFILE) + CALL IO_Header_write(TZFILENESTPGD(JPGD)%TZFILE) IF ( ASSOCIATED(TZFILENESTPGD(JPGD)%TZFILE%TDADFILE) ) THEN - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'DXRATIO',NDXRATIO_ALL(JPGD)) - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'DYRATIO',NDYRATIO_ALL(JPGD)) - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'XOR', NXOR_ALL(JPGD)) - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'YOR', NYOR_ALL(JPGD)) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'DXRATIO',NDXRATIO_ALL(JPGD)) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'DYRATIO',NDYRATIO_ALL(JPGD)) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'XOR', NXOR_ALL(JPGD)) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'YOR', NYOR_ALL(JPGD)) END IF - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'SURF', 'EXTE') - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'L1D', L1D_ALL(JPGD)) - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'L2D', L2D_ALL(JPGD)) - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'PACK', LPACK_ALL(JPGD)) - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'JPHEXT',JPHEXT) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'SURF', 'EXTE') + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'L1D', L1D_ALL(JPGD)) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'L2D', L2D_ALL(JPGD)) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'PACK', LPACK_ALL(JPGD)) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'JPHEXT',JPHEXT) END DO ! !------------------------------------------------------------------------------- @@ -370,8 +370,8 @@ END DO ! -------------------- ! DO JPGD=1,NMODEL - CALL IO_FILE_CLOSE_ll(TZFILEPGD(JPGD)%TZFILE) - CALL IO_FILE_CLOSE_ll(TZFILENESTPGD(JPGD)%TZFILE) + CALL IO_File_close(TZFILEPGD(JPGD)%TZFILE) + CALL IO_File_close(TZFILENESTPGD(JPGD)%TZFILE) END DO ! !* loop to spare enough time to transfer commands before end of program @@ -384,14 +384,14 @@ END DO !* 12. EPILOGUE ! -------- ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! WRITE(ILUOUT0,FMT=*) WRITE(ILUOUT0,FMT=*) '************************************************' WRITE(ILUOUT0,FMT=*) '* PREP_NEST_PGD: PREP_NEST_PGD ends correctly. *' WRITE(ILUOUT0,FMT=*) '************************************************' ! -CALL IO_FILE_CLOSE_ll(TLUOUT0) +CALL IO_File_close(TLUOUT0) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/prep_pgd.f90 b/src/MNH/prep_pgd.f90 index c06a62092..81ab9dd5e 100644 --- a/src/MNH/prep_pgd.f90 +++ b/src/MNH/prep_pgd.f90 @@ -74,9 +74,9 @@ !! 01/2018 (G.Delautier) SURFEX 8.1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! Q. Rodier 01/2019 : add a new filtering for very high slopes in NAM_ZSFILTER -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables ! !---------------------------------------------------------------------------- @@ -89,18 +89,18 @@ USE MODD_CONF_n,ONLY : CSTORAGE_TYPE USE MODD_LUNIT, ONLY : TLUOUT0 USE MODD_LUNIT_n,ONLY : LUNIT_MODEL USE MODD_PARAMETERS, ONLY : XUNDEF -USE MODD_IO_ll, ONLY : NIO_VERB,NVERB_DEBUG,TFILEDATA,TFILE_OUTPUTLISTING,TFILE_SURFEX +USE MODD_IO, ONLY : NIO_VERB,NVERB_DEBUG,TFILEDATA,TFILE_OUTPUTLISTING,TFILE_SURFEX USE MODD_IO_SURF_MNH, ONLY : NHALO USE MODD_SPAWN, ONLY : NDXRATIO,NDYRATIO,NXSIZE,NYSIZE,NXOR,NYOR ! -USE MODE_POS -USE MODE_FM -USE MODE_FMWRIT -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST,IO_FILE_PRINT_LIST +USE MODE_FIELD +USE MODE_IO, only: IO_Config_set, IO_Init +USE MODE_IO_FIELD_WRITE, only: IO_Field_write, IO_Header_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_Filelist_print USE MODE_MODELN_HANDLER USE MODE_MSG -USE MODE_FIELD +USE MODE_POS ! USE MODI_ZSMT_PGD ! @@ -164,12 +164,12 @@ CPROGRAM='PGD ' !* 1. Set default names and parallelized I/O ! -------------------------------------- ! -CALL INITIO_ll() +CALL IO_Init() ! NHALO=15 ! -CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') -CALL IO_FILE_OPEN_ll(TLUOUT0) +CALL IO_File_add2list(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') +CALL IO_File_open(TLUOUT0) ! !Set output file for PRINT_MSG TFILE_OUTPUTLISTING => TLUOUT0 @@ -178,8 +178,8 @@ LUNIT_MODEL(1)%TLUOUT => TLUOUT0 ILUOUT0=TLUOUT0%NLU ! !JUAN -CALL IO_FILE_ADD2LIST(TZNMLFILE,'PRE_PGD1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TZNMLFILE,KRESP=IRESP) +CALL IO_File_add2list(TZNMLFILE,'PRE_PGD1.nam','NML','READ') +CALL IO_File_open(TZNMLFILE,KRESP=IRESP) ILUNAM = TZNMLFILE%NLU IF (IRESP.NE.0 ) THEN WRITE(YMSG,*) 'file PRE_PGD1.nam not found, IRESP=', IRESP @@ -206,9 +206,9 @@ ENDIF !JUANZ CALL POSNAM(ILUNAM,'NAM_CONFIO',GFOUND) IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_CONFIO) -CALL SET_CONFIO_ll() +CALL IO_Config_set() ! -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_File_close(TZNMLFILE) ! ! CALL SURFEX_ALLOC_LIST(1) @@ -248,16 +248,16 @@ CALL PGD_SURF_ATM(YSURF_CUR,'MESONH',' ',' ',.FA !* 3. Writes the physiographic fields ! ------------------------------- ! -CALL IO_FILE_ADD2LIST(TZFILE,CPGDFILE,'PGD','WRITE',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=5) +CALL IO_File_add2list(TZFILE,CPGDFILE,'PGD','WRITE',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=5) ! -CALL IO_FILE_OPEN_ll(TZFILE) +CALL IO_File_open(TZFILE) ! -CALL IO_WRITE_HEADER(TZFILE) +CALL IO_Header_write(TZFILE) ! -CALL IO_WRITE_FIELD(TZFILE,'SURF','EXTE') -CALL IO_WRITE_FIELD(TZFILE,'L1D', L1D) -CALL IO_WRITE_FIELD(TZFILE,'L2D', L2D) -CALL IO_WRITE_FIELD(TZFILE,'PACK',LPACK) +CALL IO_Field_write(TZFILE,'SURF','EXTE') +CALL IO_Field_write(TZFILE,'L1D', L1D) +CALL IO_Field_write(TZFILE,'L2D', L2D) +CALL IO_Field_write(TZFILE,'PACK',LPACK) IF ( NDXRATIO <= 0 .AND. NDYRATIO <= 0 ) THEN NDXRATIO = 1 NDYRATIO = 1 @@ -270,13 +270,13 @@ IF ( NXOR <= 0 .AND. NYOR <= 0 ) THEN NXOR = 1 NYOR = 1 ENDIF -CALL IO_WRITE_FIELD(TZFILE,'DXRATIO',NDXRATIO) -CALL IO_WRITE_FIELD(TZFILE,'DYRATIO',NDYRATIO) -CALL IO_WRITE_FIELD(TZFILE,'XSIZE', NXSIZE) -CALL IO_WRITE_FIELD(TZFILE,'YSIZE', NYSIZE) -CALL IO_WRITE_FIELD(TZFILE,'XOR', NXOR) -CALL IO_WRITE_FIELD(TZFILE,'YOR', NYOR) -CALL IO_WRITE_FIELD(TZFILE,'JPHEXT', JPHEXT) +CALL IO_Field_write(TZFILE,'DXRATIO',NDXRATIO) +CALL IO_Field_write(TZFILE,'DYRATIO',NDYRATIO) +CALL IO_Field_write(TZFILE,'XSIZE', NXSIZE) +CALL IO_Field_write(TZFILE,'YSIZE', NYSIZE) +CALL IO_Field_write(TZFILE,'XOR', NXOR) +CALL IO_Field_write(TZFILE,'YOR', NYOR) +CALL IO_Field_write(TZFILE,'JPHEXT', JPHEXT) ! TFILE_SURFEX => TZFILE ALLOCATE(YSURF_CUR%DUO%CSELECT(0)) @@ -313,8 +313,8 @@ IF (.NOT.LCARTESIAN) THEN ZWORK_LON(:,1) = ZWORK_LON(:,2) ZWORK_LON(:,IJMAX+2) = ZWORK_LON(:,IJMAX+1) ENDIF - CALL IO_WRITE_FIELD(TZFILE,'LAT',ZWORK_LAT) - CALL IO_WRITE_FIELD(TZFILE,'LON',ZWORK_LON) + CALL IO_Field_write(TZFILE,'LAT',ZWORK_LAT) + CALL IO_Field_write(TZFILE,'LON',ZWORK_LON) ! DEALLOCATE(ZWORK,ZWORK_LAT,ZWORK_LON) END IF @@ -328,13 +328,13 @@ WRITE(ILUOUT0,*) '***************************' !* 6. Close parallelized I/O ! ---------------------- ! -CALL IO_FILE_CLOSE_ll(TZFILE) +CALL IO_File_close(TZFILE) ! CALL SURFEX_DEALLO_LIST ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! -CALL IO_FILE_CLOSE_ll(TLUOUT0) +CALL IO_File_close(TLUOUT0) ! CALL END_PARA_ll(IINFO_ll) ! diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90 index 06d09417c..7f87fe6a1 100644 --- a/src/MNH/prep_real_case.f90 +++ b/src/MNH/prep_real_case.f90 @@ -259,7 +259,7 @@ !! initialized !! Routine WRITE_DESFM1 : to write a DESFM file. !! Routine WRITE_LFIFM1 : to write a LFIFM file. -!! Routine IO_FILE_CLOSE_ll : to close a FM-file (DESFM + LFIFM). +!! Routine IO_File_close : to close a FM-file (DESFM + LFIFM). !! !! Module MODE_GRIDPROJ : contains conformal projection routines !! @@ -378,7 +378,7 @@ !! P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define !! B.VIE 2016 : LIMA !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! @@ -399,7 +399,7 @@ USE MODD_GR_FIELD_n USE MODD_GRID USE MODD_GRID_n USE MODD_HURR_CONF -USE MODD_IO_ll, ONLY: TFILEDATA,NIO_VERB,NVERB_DEBUG,TFILE_SURFEX +USE MODD_IO, ONLY: TFILEDATA,NIO_VERB,NVERB_DEBUG,TFILE_SURFEX USE MODD_LBC_n USE MODD_LSFIELD_n USE MODD_LUNIT, ONLY: TPGDFILE,TLUOUT0,TOUTDATAFILE @@ -417,13 +417,13 @@ USE MODD_TURB_n ! USE MODE_EXTRAPOL USE MODE_FIELD -USE MODE_FM -USE MODE_FMREAD -USE MODE_FMWRIT, ONLY: IO_WRITE_HEADER USE MODE_GRIDCART USE MODE_GRIDPROJ -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME,IO_FILE_PRINT_LIST +USE MODE_IO, only: IO_Init +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Header_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_File_find_byname,IO_Filelist_print USE MODE_ll USE MODE_MODELN_HANDLER USE MODE_MPPDB @@ -564,7 +564,7 @@ IDX_RVT = 1 ! !* 2. OPENNING OF THE FILES ! --------------------- -CALL INITIO_ll() +CALL IO_Init() ! CALL OPEN_PRC_FILES(TZPRE_REAL1FILE,YATMFILE, YATMFILETYPE,TZATMFILE & ,YCHEMFILE,YCHEMFILETYPE & @@ -626,8 +626,8 @@ IF (YATMFILETYPE == 'GRIBEX') THEN CALL INIT_NMLVAR() CALL READ_VER_GRID(TZPRE_REAL1FILE) ! -CALL IO_READ_FIELD(TPGDFILE,'IMAX',NIMAX) -CALL IO_READ_FIELD(TPGDFILE,'JMAX',NJMAX) +CALL IO_Field_read(TPGDFILE,'IMAX',NIMAX) +CALL IO_Field_read(TPGDFILE,'JMAX',NJMAX) ! NIMAX_ll=NIMAX !! _ll variables are global variables NJMAX_ll=NJMAX !! but the old names are kept in PRE_IDEA1.nam file @@ -740,14 +740,14 @@ IF(LEN_TRIM(YCHEMFILE)>0)THEN CALL READ_CHEM_DATA_NETCDF_CASE(TZPRE_REAL1FILE,YCHEMFILE,TPGDFILE,ZHORI,NVERB,LDUMMY_REAL) END IF ! -CALL IO_FILE_CLOSE_ll(TZPRE_REAL1FILE) +CALL IO_File_close(TZPRE_REAL1FILE) ! CALL SECOND_MNH(ZTIME2) ZREAD = ZTIME2 - ZTIME1 - ZHORI !------------------------------------------------------------------------------- ! -CALL IO_FILE_ADD2LIST(TINIFILE,CINIFILE,'MNH','WRITE',KLFITYPE=1,KLFIVERB=NVERB) -CALL IO_FILE_OPEN_ll(TINIFILE) +CALL IO_File_add2list(TINIFILE,CINIFILE,'MNH','WRITE',KLFITYPE=1,KLFIVERB=NVERB) +CALL IO_File_open(TINIFILE) ! ZTIME1=ZTIME2 ! @@ -1048,7 +1048,7 @@ IF (YATMFILETYPE=='GRIBEX') THEN END IF ! CALL WRITE_DESFM_n(1,TINIFILE) -CALL IO_WRITE_HEADER(TINIFILE,HDAD_NAME=YDAD_NAME) +CALL IO_Header_write(TINIFILE,HDAD_NAME=YDAD_NAME) CALL WRITE_LFIFM_n(TINIFILE,YDAD_NAME) ! CALL SECOND_MNH(ZTIME2) @@ -1071,8 +1071,8 @@ CALL MNHWRITE_ZS_DUMMY_n(TINIFILE) CALL DEALLOCATE_MODEL1(3) ! IF (YATMFILETYPE=='MESONH'.AND. YATMFILE/=YPGDFILE) THEN - CALL IO_FILE_FIND_BYNAME(TRIM(YATMFILE),TZATMFILE,IRESP) - CALL IO_FILE_CLOSE_ll(TZATMFILE) + CALL IO_File_find_byname(TRIM(YATMFILE),TZATMFILE,IRESP) + CALL IO_File_close(TZATMFILE) END IF !------------------------------------------------------------------------------- ! @@ -1178,12 +1178,12 @@ END IF ! !------------------------------------------------------------------------------- ! -CALL IO_FILE_CLOSE_ll(TINIFILE) -CALL IO_FILE_CLOSE_ll(TPGDFILE) +CALL IO_File_close(TINIFILE) +CALL IO_File_close(TPGDFILE) ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! -CALL IO_FILE_CLOSE_ll(TLUOUT0) +CALL IO_File_close(TLUOUT0) ! ! CALL END_PARA_ll(IINFO_ll) diff --git a/src/MNH/prep_surf_mnh.f90 b/src/MNH/prep_surf_mnh.f90 index afe9493b2..0e6c02cfb 100644 --- a/src/MNH/prep_surf_mnh.f90 +++ b/src/MNH/prep_surf_mnh.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2004-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -53,7 +53,7 @@ USE MODD_LUNIT_n, ONLY : CINIFILE, TINIFILE USE MODD_MNH_SURFEX_n USE MODD_TIME_n, ONLY : TDTCUR ! -USE MODE_FM, ONLY : IO_FILE_OPEN_ll +USE MODE_IO_FILE, ONLY: IO_File_open USE MODE_PREP_CTL, ONLY : PREP_CTL ! USE MODI_INIT_PGD_SURF_ATM @@ -100,7 +100,7 @@ CALL INIT_PGD_SURF_ATM(YSURF_CUR,'MESONH','PRE',HATMFILE,YATMFILETYPE, & CALL PREP_SURF_ATM(YSURF_CUR,'MESONH',HATMFILE,YATMFILETYPE,HATMFILE,YATMFILETYPE,YLCTL) IF (PRESENT(OINIFILEOPEN)) THEN !This is done here because model dimensions were not known before this call (for PREP_SURFEX) - IF (OINIFILEOPEN) CALL IO_FILE_OPEN_ll(TINIFILE) + IF (OINIFILEOPEN) CALL IO_File_open(TINIFILE) END IF CALL WRITE_SURF_ATM_n(YSURF_CUR,'MESONH','PRE',.FALSE.) CALL WRITE_DIAG_SURF_ATM_n(YSURF_CUR,'MESONH','PRE') diff --git a/src/MNH/prep_surfex.f90 b/src/MNH/prep_surfex.f90 index 5de5ce5c6..c21d5caa8 100644 --- a/src/MNH/prep_surfex.f90 +++ b/src/MNH/prep_surfex.f90 @@ -26,7 +26,7 @@ !! 10/10/2011 J.Escobar call INI_PARAZ_ll !! 06/2016 (G.Delautier) phasage surfex 8 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -35,7 +35,7 @@ USE MODD_CONF, ONLY : CPROGRAM,& L1D, L2D, LPACK USE MODD_CONF_n, ONLY : CSTORAGE_TYPE -USE MODD_IO_ll, ONLY : TFILEDATA, NIO_VERB, NVERB_DEBUG, TFILE_SURFEX +USE MODD_IO, ONLY : TFILEDATA, NIO_VERB, NVERB_DEBUG, TFILE_SURFEX USE MODD_LUNIT, ONLY : TPGDFILE, TLUOUT0 USE MODD_LUNIT_n, ONLY : CINIFILE, TINIFILE USE MODD_MNH_SURFEX_n @@ -43,11 +43,11 @@ USE MODD_PARAMETERS, ONLY : JPMODELMAX,JPHEXT,JPVEXT, NUNDEF, XUNDEF USE MODD_TIME_n, ONLY : TDTCUR ! USE MODE_FIELD -USE MODE_FM -USE MODE_FMREAD -USE MODE_FMWRIT -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST,IO_FILE_PRINT_LIST +USE MODE_IO, only: IO_Init +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Field_write, IO_Header_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_Filelist_print USE MODE_ll USE MODE_MSG USE MODE_MODELN_HANDLER @@ -100,7 +100,7 @@ CSTORAGE_TYPE='SU' ! !* 2. OPENNING OF THE FILES ! --------------------- -CALL INITIO_ll() +CALL IO_Init() ! CALL OPEN_PRC_FILES(TZPRE_REAL1FILE,YATMFILE, YATMFILETYPE,TZATMFILE & ,YCHEMFILE,YCHEMFILETYPE & @@ -122,7 +122,7 @@ CALL INI_CST ! !* 4.1 reading of configuration variables ! -CALL IO_FILE_CLOSE_ll(TZPRE_REAL1FILE) +CALL IO_File_close(TZPRE_REAL1FILE) ! !* 4.2 reading of values of some configuration variables in namelist ! @@ -130,8 +130,8 @@ CALL INI_FIELD_LIST(1) ! CALL INI_FIELD_SCALARS() ! -CALL IO_READ_FIELD(TPGDFILE,'IMAX',II) -CALL IO_READ_FIELD(TPGDFILE,'JMAX',IJ) +CALL IO_Field_read(TPGDFILE,'IMAX',II) +CALL IO_Field_read(TPGDFILE,'JMAX',IJ) CALL SET_JP_ll(JPMODELMAX,JPHEXT,JPVEXT,JPHEXT) CALL SET_DAD0_ll() CALL SET_DIM_ll(II, IJ, 1) @@ -156,10 +156,10 @@ CALL INI_PARAZ_ll(IINFO_ll) !* reading of date ! IF (YATMFILETYPE=='MESONH') THEN - CALL IO_FILE_ADD2LIST(TZATMFILE,TRIM(YATMFILE),'MNH','READ',KLFITYPE=1,KLFIVERB=1) - CALL IO_FILE_OPEN_ll(TZATMFILE) - CALL IO_READ_FIELD(TZATMFILE,'DTCUR',TDTCUR) - CALL IO_FILE_CLOSE_ll(TZATMFILE) + CALL IO_File_add2list(TZATMFILE,TRIM(YATMFILE),'MNH','READ',KLFITYPE=1,KLFIVERB=1) + CALL IO_File_open(TZATMFILE) + CALL IO_Field_read(TZATMFILE,'DTCUR',TDTCUR) + CALL IO_File_close(TZATMFILE) ELSE TDTCUR%TDATE%YEAR = NUNDEF TDTCUR%TDATE%MONTH= NUNDEF @@ -172,7 +172,7 @@ YSURF_CUR => YSURF_LIST(1) CALL READ_ALL_NAMELISTS(YSURF_CUR,'MESONH','PRE',.FALSE.) CALL GOTO_SURFEX(1) ! -CALL IO_FILE_ADD2LIST(TINIFILE,TRIM(CINIFILE),'PGD','WRITE',KLFITYPE=1,KLFIVERB=1) +CALL IO_File_add2list(TINIFILE,TRIM(CINIFILE),'PGD','WRITE',KLFITYPE=1,KLFIVERB=1) !The open is done later in PREP_SURF_MNH when domain dimensions are known ! TFILE_SURFEX => TINIFILE @@ -181,11 +181,11 @@ NULLIFY(TFILE_SURFEX) ! !------------------------------------------------------------------------------- ! -CALL IO_WRITE_HEADER(TINIFILE) -CALL IO_WRITE_FIELD(TINIFILE,'SURF','EXTE') -CALL IO_WRITE_FIELD(TINIFILE,'L1D', L1D) -CALL IO_WRITE_FIELD(TINIFILE,'L2D', L2D) -CALL IO_WRITE_FIELD(TINIFILE,'PACK',LPACK) +CALL IO_Header_write(TINIFILE) +CALL IO_Field_write(TINIFILE,'SURF','EXTE') +CALL IO_Field_write(TINIFILE,'L1D', L1D) +CALL IO_Field_write(TINIFILE,'L2D', L2D) +CALL IO_Field_write(TINIFILE,'PACK',LPACK) ! !------------------------------------------------------------------------------- WRITE(ILUOUT0,*) ' ' @@ -194,11 +194,11 @@ WRITE(ILUOUT0,*) '| |' WRITE(ILUOUT0,*) '| PREP_SURFEX ends correctly |' WRITE(ILUOUT0,*) '| |' WRITE(ILUOUT0,*) '----------------------------------' -CALL IO_FILE_CLOSE_ll(TINIFILE) +CALL IO_File_close(TINIFILE) ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! -CALL IO_FILE_CLOSE_ll(TLUOUT0) +CALL IO_File_close(TLUOUT0) ! CALL END_PARA_ll(IINFO_ll) CALL SURFEX_DEALLO_LIST diff --git a/src/MNH/pressure_in_prep.f90 b/src/MNH/pressure_in_prep.f90 index 844b549d6..7fafcfd88 100644 --- a/src/MNH/pressure_in_prep.f90 +++ b/src/MNH/pressure_in_prep.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1998-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -71,7 +71,6 @@ END MODULE MODI_PRESSURE_IN_PREP ! ------------ ! USE MODE_ll -USE MODE_IO_ll USE MODE_MSG ! USE MODI_ANEL_BALANCE_n diff --git a/src/MNH/prognos.f90 b/src/MNH/prognos.f90 index 791f813af..569a2aa08 100644 --- a/src/MNH/prognos.f90 +++ b/src/MNH/prognos.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2012-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2012-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ####################### MODULE MODI_PROGNOS @@ -67,7 +67,6 @@ USE MODD_CST USE MODD_PARAM_C2R2 USE MODD_RAIN_C2R2_KHKO_PARAM ! -USE MODE_IO_ll USE MODE_MSG ! USE MODI_GAMMA diff --git a/src/MNH/radar_rain_ice.f90 b/src/MNH/radar_rain_ice.f90 index f3d2e2a0d..eddac2294 100644 --- a/src/MNH/radar_rain_ice.f90 +++ b/src/MNH/radar_rain_ice.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ########################## @@ -128,8 +128,6 @@ USE MODD_PARAMETERS USE MODD_PARAM_n, ONLY : CCLOUD USE MODD_LUNIT ! -USE MODE_IO_ll -! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : diff --git a/src/MNH/radar_scattering.f90 b/src/MNH/radar_scattering.f90 index fdc5bf15f..dc3ddc1e5 100644 --- a/src/MNH/radar_scattering.f90 +++ b/src/MNH/radar_scattering.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ $Date$ -!----------------------------------------------------------------- ! ######spl MODULE MODI_RADAR_SCATTERING ! ############################# @@ -106,7 +102,7 @@ END MODULE MODI_RADAR_SCATTERING ! ------------ ! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT USE MODD_PARAMETERS USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XDR_I=>XDR,XLBEXR_I=>XLBEXR,& @@ -140,10 +136,9 @@ USE MODE_READTMAT USE MODE_FGAU , ONLY:GAULAG USE MODI_GAMMA, ONLY:GAMMA ! -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll,IO_FILE_OPEN_ll -USE MODE_IO_ll USE MODD_LUNIT -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MSG ! @@ -750,8 +745,8 @@ DO JI=1,INBRAD E12.5,2X,E12.5,2X,E12.5,2X,E12.5,2X,E12.5) !rain - CALL IO_FILE_ADD2LIST(TZFILE,YFILE_COEFINT(1),'TXT','READ') - CALL IO_FILE_OPEN_ll(TZFILE,KRESP=IRESP) + CALL IO_File_add2list(TZFILE,YFILE_COEFINT(1),'TXT','READ') + CALL IO_File_open(TZFILE,KRESP=IRESP) IUNIT = TZFILE%NLU IF ( IRESP /= 0 ) THEN WRITE(YMSG,*) "problem opening file ",TRIM(YFILE_COEFINT(1)) @@ -764,7 +759,7 @@ DO JI=1,INBRAD ZIM_S22S11_T_R(ILINE),ZRE_S22FMS11FT_T_R(ILINE),ZIM_S22FT_T_R(ILINE),ZIM_S11FT_T_R(ILINE) ILINE=ILINE+1 ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() WRITE(ILUOUT0,*) "NLIGNE rain",ILINE ILINE=2 @@ -777,8 +772,8 @@ DO JI=1,INBRAD ZIM_S22S11_T_R(ILINE),ZRE_S22FMS11FT_T_R(ILINE),ZIM_S22FT_T_R(ILINE),ZIM_S11FT_T_R(ILINE) !snow - CALL IO_FILE_ADD2LIST(TZFILE,YFILE_COEFINT(2),'TXT','READ') - CALL IO_FILE_OPEN_ll(TZFILE,KRESP=IRESP) + CALL IO_File_add2list(TZFILE,YFILE_COEFINT(2),'TXT','READ') + CALL IO_File_open(TZFILE,KRESP=IRESP) IUNIT = TZFILE%NLU IF ( IRESP /= 0 ) THEN WRITE(YMSG,*) "problem opening file ",TRIM(YFILE_COEFINT(2)) @@ -791,7 +786,7 @@ DO JI=1,INBRAD ZIM_S22S11_T_S(ILINE),ZRE_S22FMS11FT_T_S(ILINE),ZIM_S22FT_T_S(ILINE),ZIM_S11FT_T_S(ILINE) ILINE=ILINE+1 ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() WRITE(ILUOUT0,*) "NLIGNE snow",ILINE ILINE=2 @@ -804,8 +799,8 @@ DO JI=1,INBRAD ZIM_S22S11_T_S(ILINE),ZRE_S22FMS11FT_T_S(ILINE),ZIM_S22FT_T_S(ILINE),ZIM_S11FT_T_S(ILINE) !graupel - CALL IO_FILE_ADD2LIST(TZFILE,YFILE_COEFINT(3),'TXT','READ') - CALL IO_FILE_OPEN_ll(TZFILE,KRESP=IRESP) + CALL IO_File_add2list(TZFILE,YFILE_COEFINT(3),'TXT','READ') + CALL IO_File_open(TZFILE,KRESP=IRESP) IUNIT = TZFILE%NLU IF ( IRESP /= 0 ) THEN WRITE(YMSG,*) "problem opening file ",TRIM(YFILE_COEFINT(3)) @@ -818,7 +813,7 @@ DO JI=1,INBRAD ZIM_S22S11_T_G(ILINE),ZRE_S22FMS11FT_T_G(ILINE),ZIM_S22FT_T_G(ILINE),ZIM_S11FT_T_G(ILINE) ILINE=ILINE+1 ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() WRITE(ILUOUT0,*) "NLIGNE graupel",ILINE ILINE=2 @@ -831,8 +826,8 @@ DO JI=1,INBRAD ZIM_S22S11_T_G(ILINE),ZRE_S22FMS11FT_T_G(ILINE),ZIM_S22FT_T_G(ILINE),ZIM_S11FT_T_G(ILINE) !wet graupel - CALL IO_FILE_ADD2LIST(TZFILE,YFILE_COEFINT(4),'TXT','READ') - CALL IO_FILE_OPEN_ll(TZFILE,KRESP=IRESP) + CALL IO_File_add2list(TZFILE,YFILE_COEFINT(4),'TXT','READ') + CALL IO_File_open(TZFILE,KRESP=IRESP) IUNIT = TZFILE%NLU IF ( IRESP /= 0 ) THEN WRITE(YMSG,*) "problem opening file ",TRIM(YFILE_COEFINT(4)) @@ -845,7 +840,7 @@ DO JI=1,INBRAD ZIM_S22S11_T_W(ILINE),ZRE_S22FMS11FT_T_W(ILINE),ZIM_S22FT_T_W(ILINE),ZIM_S11FT_T_W(ILINE) ILINE=ILINE+1 ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() WRITE(ILUOUT0,*) "NLIGNE wet graupel",ILINE ILINE=2 @@ -858,8 +853,8 @@ DO JI=1,INBRAD !hail IF (GHAIL) THEN - CALL IO_FILE_ADD2LIST(TZFILE,YFILE_COEFINT(5),'TXT','READ') - CALL IO_FILE_OPEN_ll(TZFILE,KRESP=IRESP) + CALL IO_File_add2list(TZFILE,YFILE_COEFINT(5),'TXT','READ') + CALL IO_File_open(TZFILE,KRESP=IRESP) IUNIT = TZFILE%NLU IF ( IRESP /= 0 ) THEN WRITE(YMSG,*) "problem opening file ",TRIM(YFILE_COEFINT(5)) @@ -872,7 +867,7 @@ DO JI=1,INBRAD ZIM_S22S11_T_H(ILINE),ZRE_S22FMS11FT_T_H(ILINE),ZIM_S22FT_T_H(ILINE),ZIM_S11FT_T_H(ILINE) ILINE=ILINE+1 ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() WRITE(ILUOUT0,*) "NLIGNE hail",ILINE ILINE=2 diff --git a/src/MNH/radar_simulator.f90 b/src/MNH/radar_simulator.f90 index 0735b1dc5..1d09ecc69 100644 --- a/src/MNH/radar_simulator.f90 +++ b/src/MNH/radar_simulator.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/Attic/radar_simulator.f90,v $ $Revision: 1.1.2.3.2.1.12.2.2.2 $ $Date: 2015/09/16 14:31:20 $ -!----------------------------------------------------------------- ! ########################### MODULE MODI_RADAR_SIMULATOR ! ########################### @@ -63,10 +59,7 @@ END MODULE MODI_RADAR_SIMULATOR !! Module MODD_RAIN_ICE_PARAM !! Module MODD_PARAMETERS !! Module MODD_LUNIT -! -!! Module MODE_IO_ll -!! Module MODE_FM -! +!! !! Module MODD_GR_FIELD_n !! Module MODD_GRID_n !! Module MODD_CONF_n @@ -139,7 +132,6 @@ USE MODD_REF USE MODD_PARAMETERS USE MODD_LUNIT ! -USE MODE_IO_ll USE MODE_MSG ! USE MODD_GR_FIELD_n diff --git a/src/MNH/radiations.f90 b/src/MNH/radiations.f90 index 2bec821d7..efd8bca80 100644 --- a/src/MNH/radiations.f90 +++ b/src/MNH/radiations.f90 @@ -132,7 +132,7 @@ USE MODD_CST USE MODD_DUST, ONLY: LDUST USE MODD_GRID , ONLY: XLAT0, XLON0 USE MODD_GRID_n , ONLY: XLAT, XLON -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_NSV, ONLY: NSV_C2R2,NSV_C2R2BEG,NSV_C2R2END, & NSV_C1R3,NSV_C1R3BEG,NSV_C1R3END, & @@ -150,10 +150,10 @@ USE MODD_SALT, ONLY: LSALT USE MODD_TIME ! USE MODE_DUSTOPT -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll -USE MODE_REPRO_SUM, ONLY : SUM_DD_R2_R1_ll,SUM_DD_R1_ll +USE MODE_REPRO_SUM, ONLY : SUM_DD_R2_R1_ll,SUM_DD_R1_ll ! #ifdef MNH_PGI USE MODE_PACK_PGI @@ -2699,7 +2699,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2720,7 +2720,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2741,7 +2741,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2762,7 +2762,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2783,7 +2783,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2804,7 +2804,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE DO JJ=IJB,IJE @@ -2823,7 +2823,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE DO JJ=IJB,IJE @@ -2842,7 +2842,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -2860,7 +2860,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -2878,7 +2878,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -2896,7 +2896,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) END IF ! ! @@ -2920,7 +2920,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2941,7 +2941,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2962,7 +2962,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2983,7 +2983,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3004,7 +3004,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3025,7 +3025,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK-JPVEXT @@ -3046,7 +3046,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK-JPVEXT @@ -3067,7 +3067,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3085,7 +3085,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3103,7 +3103,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3121,7 +3121,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) END IF ! ! @@ -3142,7 +3142,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3160,7 +3160,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3178,7 +3178,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3196,7 +3196,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3214,7 +3214,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3232,7 +3232,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! ! END IF @@ -3258,7 +3258,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3279,7 +3279,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3300,7 +3300,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3321,7 +3321,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3342,7 +3342,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3363,7 +3363,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3384,7 +3384,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3405,7 +3405,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! ! spectral bands IF (KSWB_OLD==6) THEN @@ -3432,7 +3432,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTAUAZ(:,:,:,JBAND)) + CALL IO_Field_write(TPFILE,TZFIELD,ZTAUAZ(:,:,:,JBAND)) ! TZFIELD%CMNHNAME = 'SSAAER_'//YBAND_NAME(JBAND) TZFIELD%CSTDNAME = '' @@ -3444,7 +3444,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPIZAZ(:,:,:,JBAND)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPIZAZ(:,:,:,JBAND)) ! TZFIELD%CMNHNAME = 'GAER_'//YBAND_NAME(JBAND) TZFIELD%CSTDNAME = '' @@ -3456,7 +3456,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCGAZ(:,:,:,JBAND)) + CALL IO_Field_write(TPFILE,TZFIELD,ZCGAZ(:,:,:,JBAND)) ENDDO DO JBAND=1,KSWB_OLD @@ -3479,7 +3479,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3500,7 +3500,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3521,7 +3521,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) END DO END IF ! @@ -3549,7 +3549,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! !cumulated optical thickness of aerosols !cumul begin from the top of the domain, not from the TOA ! @@ -3580,7 +3580,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D2) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) ! ! sea DO JK=IKB,IKE @@ -3609,7 +3609,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D2) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) ! ! desert DO JK=IKB,IKE @@ -3638,7 +3638,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D2) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) ! ! urban DO JK=IKB,IKE @@ -3667,7 +3667,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D2) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) ! ! Volcanoes DO JK=IKB,IKE @@ -3696,7 +3696,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D2) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) ! ! stratospheric background DO JK=IKB,IKE @@ -3725,7 +3725,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D2) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) ENDIF END IF ! diff --git a/src/MNH/rain_c2r2_khko.f90 b/src/MNH/rain_c2r2_khko.f90 index 33f070d10..9139c8987 100644 --- a/src/MNH/rain_c2r2_khko.f90 +++ b/src/MNH/rain_c2r2_khko.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/Attic/rain_c2r2_khko.f90,v $ $Revision: 1.1.2.1.2.3 $ -!----------------------------------------------------------------- ! ###################### MODULE MODI_RAIN_C2R2_KHKO ! ###################### @@ -24,7 +20,7 @@ INTERFACE PSOLORG, PMI, HACTCCN, & PINDEP, PSUPSAT, PNACT ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! CHARACTER(LEN=*), INTENT(IN) :: HCLOUD ! kind of cloud @@ -225,7 +221,7 @@ END MODULE MODI_RAIN_C2R2_KHKO USE MODD_PARAMETERS USE MODD_CST USE MODD_CONF -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAM_C2R2 USE MODD_RAIN_C2R2_DESCR USE MODD_RAIN_C2R2_KHKO_PARAM @@ -238,9 +234,8 @@ USE MODD_SALT USE MODI_BUDGET ! USE MODE_FIELD -USE MODE_FM USE MODE_ll -USE MODE_FMWRIT +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODI_GAMMA ! IMPLICIT NONE @@ -602,7 +597,7 @@ INTEGER :: J1 ! TZFIELD%NTYPE = TYPEREAL ! TZFIELD%NDIMS = 3 ! TZFIELD%LTIMEDEP = .TRUE. -! CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCHEN) +! CALL IO_Field_write(TPFILE,TZFIELD,ZCHEN) ! END IF ! !------------------------------------------------------------------------------- @@ -885,7 +880,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZZW1LOG) + CALL IO_Field_write(TPFILE,TZFIELD,ZZW1LOG) END IF ! !* 3.4 budget storage @@ -1912,7 +1907,7 @@ DO JN = 1 , KSPLITR TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWSEDC) + CALL IO_Field_write(TPFILE,TZFIELD,ZWSEDC) ! TZFIELD%CMNHNAME = 'SEDFLUXR' TZFIELD%CSTDNAME = '' @@ -1924,7 +1919,7 @@ DO JN = 1 , KSPLITR TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWSEDR) + CALL IO_Field_write(TPFILE,TZFIELD,ZWSEDR) END IF END DO ! diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90 index 06f621435..4e627a348 100644 --- a/src/MNH/rain_ice.f90 +++ b/src/MNH/rain_ice.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl MODULE MODI_RAIN_ICE ! #################### @@ -252,7 +253,6 @@ USE MODD_BUDGET USE MODD_LES USE MODI_BUDGET USE MODI_GAMMA -USE MODE_FMWRIT USE MODE_ll USE MODE_MSG ! diff --git a/src/MNH/rain_ice_red.f90 b/src/MNH/rain_ice_red.f90 index b2d30ddf9..3f92b1f9e 100644 --- a/src/MNH/rain_ice_red.f90 +++ b/src/MNH/rain_ice_red.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ######spl MODULE MODI_RAIN_ICE_RED @@ -254,7 +254,6 @@ USE MODI_ICE4_SEDIMENTATION_STAT USE MODI_ICE4_SEDIMENTATION_SPLIT USE MODI_ICE4_NUCLEATION_WRAPPER USE MODI_ICE4_TENDENCIES -USE MODE_FMWRIT USE MODE_ll USE MODE_MSG ! diff --git a/src/MNH/read_all_data_grib_case.f90 b/src/MNH/read_all_data_grib_case.f90 index 8d26d8f74..b782886d0 100644 --- a/src/MNH/read_all_data_grib_case.f90 +++ b/src/MNH/read_all_data_grib_case.f90 @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE READ_ALL_DATA_GRIB_CASE(HFILE,TPPRE_REAL1,HGRIB,TPPGDFILE, & PTIME_HORI,KVERB,ODUMMY_REAL ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! CHARACTER(LEN=4), INTENT(IN) :: HFILE ! which file ('ATM0','ATM1' or 'CHEM') TYPE(TFILEDATA),POINTER,INTENT(INOUT) :: TPPRE_REAL1 ! PRE_REAL1 file @@ -134,7 +134,7 @@ END MODULE MODI_READ_ALL_DATA_GRIB_CASE !------------ ! USE MODE_DATETIME -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll +USE MODE_IO_FILE, ONLY: IO_File_close USE MODE_MSG USE MODE_TIME USE MODE_THERMO @@ -152,7 +152,7 @@ USE MODI_CH_AER_INIT_SOA USE MODI_INI_CTURB USE MODI_CH_OPEN_INPUT ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_CONF USE MODD_CONF_n USE MODD_CST @@ -1282,7 +1282,7 @@ IF (IMODEL==5) THEN ENDIF ! ! close file - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! !* 2.6.2 exchange mocage values onto prognostic variables XSV_LS @@ -1660,7 +1660,7 @@ IF (ODUMMY_REAL) THEN !* 2.10.1 read 2D dummy fields ! ! close file - CALL IO_FILE_CLOSE_ll(TPPRE_REAL1) + CALL IO_File_close(TPPRE_REAL1) ! open input file CALL CH_OPEN_INPUT(TPPRE_REAL1%CNAME, "DUMMY_2D", TZFILE, ILUOUT0, KVERB) ICHANNEL = TZFILE%NLU @@ -1727,7 +1727,7 @@ IF (ODUMMY_REAL) THEN ! END DO ! - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! IF (NVERB>=10) THEN @@ -1854,8 +1854,6 @@ SUBROUTINE SEARCH_FIELD(KGRIB,KNUM,KPARAM,KDIS,KCAT,KNUMBER,KLEV1) USE MODD_LUNIT USE GRIB_API ! -USE MODE_IO_ll -! IMPLICIT NONE ! ! diff --git a/src/MNH/read_all_data_mesonh_case.f90 b/src/MNH/read_all_data_mesonh_case.f90 index 0b619c2a1..01c538421 100644 --- a/src/MNH/read_all_data_mesonh_case.f90 +++ b/src/MNH/read_all_data_mesonh_case.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE READ_ALL_DATA_MESONH_CASE(TZPRE_REAL1,HFMFILE,TPPGDFILE, & HDAD_NAME ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA),POINTER, INTENT(INOUT) :: TZPRE_REAL1 !PRE_REAL1 file CHARACTER(LEN=28), INTENT(IN) :: HFMFILE ! name of the Mesonh input file @@ -111,9 +111,8 @@ END MODULE MODI_READ_ALL_DATA_MESONH_CASE !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -USE MODE_FMREAD -USE MODE_IO_ll +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG ! USE MODI_READ_GRID_TIME_MESONH_CASE ! interface modules @@ -128,7 +127,7 @@ USE MODI_ZS_BOUNDARY ! USE MODD_CONF ! declaration modules USE MODD_CONF_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAM_n USE MODD_LUNIT USE MODD_LUNIT_n @@ -221,9 +220,9 @@ ZRES = XRES YOUTFILE=CINIFILE CINIFILE=HFMFILE ! -CALL IO_FILE_CLOSE_ll(TZPRE_REAL1) +CALL IO_File_close(TZPRE_REAL1) CALL INIT_MNH -CALL IO_FILE_OPEN_ll(TZPRE_REAL1) +CALL IO_File_open(TZPRE_REAL1) ! CINIFILE=YOUTFILE ! @@ -306,14 +305,14 @@ CALL READ_PRC_FMFILE(IIINF_LS,IISUP_LS,IJINF_LS,IJSUP_LS ) ! --------- ! ALLOCATE(XZS(IISUP_LS-IIINF_LS+1,IJSUP_LS-IJINF_LS+1)) -CALL IO_READ_FIELD(TPPGDFILE,'ZS',XZS) +CALL IO_Field_read(TPPGDFILE,'ZS',XZS) CALL ZS_BOUNDARY(XZS,XZS_LS) ! ALLOCATE(XZSMT(IISUP_LS-IIINF_LS+1,IJSUP_LS-IJINF_LS+1)) IF (TPPGDFILE%NMNHVERSION(1)<4 .OR. (TPPGDFILE%NMNHVERSION(1)==4 .AND. TPPGDFILE%NMNHVERSION(2)<=6)) THEN XZSMT = XZS ELSE - CALL IO_READ_FIELD(TPPGDFILE,'ZSMT',XZSMT) + CALL IO_Field_read(TPPGDFILE,'ZSMT',XZSMT) END IF CALL ZS_BOUNDARY(XZSMT,XZSMT_LS) ! diff --git a/src/MNH/read_chem_data_netcdf_case.f90 b/src/MNH/read_chem_data_netcdf_case.f90 index 1ba217830..b92f56cc4 100644 --- a/src/MNH/read_chem_data_netcdf_case.f90 +++ b/src/MNH/read_chem_data_netcdf_case.f90 @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE READ_CHEM_DATA_NETCDF_CASE(TPPRE_REAL1,HFILE,TPPGDFILE, & PTIME_HORI,KVERB,ODUMMY_REAL ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA),POINTER,INTENT(IN) :: TPPRE_REAL1 ! PRE_REAL1 file CHARACTER(LEN=28), INTENT(IN) :: HFILE ! name of the NETCDF file @@ -99,7 +99,7 @@ USE MODD_CST USE MODD_DIM_n USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT, ONLY: TLUOUT0 USE MODE_MODELN_HANDLER USE MODD_NETCDF, ONLY:IDCDF_KIND @@ -110,15 +110,15 @@ USE MODD_PREP_REAL USE MODD_TIME USE MODD_TIME_n ! -USE MODE_FM +USE MODE_IO_FILE, only: IO_File_close USE MODE_MPPDB USE MODE_THERMO USE MODE_TIME -USE MODE_TOOLS, ONLY: UPCASE +USE MODE_TOOLS, ONLY: UPCASE ! USE MODI_CH_AER_INIT_SOA USE MODI_CH_INIT_SCHEME_n -USE MODI_CH_OPEN_INPUT +USE MODI_CH_OPEN_INPUT USE MODI_HORIBL USE MODI_INI_NSV USE MODI_READ_HGRID_n @@ -728,7 +728,7 @@ if (status /= nf90_noerr) call handle_err(status) ! close ! file -CALL IO_FILE_CLOSE_ll(TZFILE) +CALL IO_File_close(TZFILE) !------------------------------------------------------------- diff --git a/src/MNH/read_desfmn.f90 b/src/MNH/read_desfmn.f90 index 86cde7c74..294bafd45 100644 --- a/src/MNH/read_desfmn.f90 +++ b/src/MNH/read_desfmn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -22,7 +22,7 @@ INTERFACE KRIMX,KRIMY,KSV_USER, & HTURB,HTOM,ORMC01,HRAD,HDCONV,HSCONV,HCLOUD,HELEC,HEQNSYS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS ! INTEGER, INTENT(IN) :: KMI ! Model index @@ -196,7 +196,7 @@ END MODULE MODI_READ_DESFM_n ! !* 0. DECLARATIONS ! ------------ -USE MODD_IO_ll, ONLY: NVERB_FATAL, TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! diff --git a/src/MNH/read_dummy_gr_fieldn.f90 b/src/MNH/read_dummy_gr_fieldn.f90 index be766bd67..cd3e1b157 100644 --- a/src/MNH/read_dummy_gr_fieldn.f90 +++ b/src/MNH/read_dummy_gr_fieldn.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE READ_DUMMY_GR_FIELD_n(TPINIFILE,KIINF,KISUP,KJINF,KJSUP,OREAD_ALL) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! !* 0.1 declarations of arguments ! @@ -74,12 +74,12 @@ END MODULE MODI_READ_DUMMY_GR_FIELD_n !* 0. DECLARATIONS ! USE MODD_DUMMY_GR_FIELD_n -USE MODE_FIELD, ONLY : TFIELDDATA,TYPEINT,TYPEREAL +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEINT, TYPEREAL USE MODD_GRID_n -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_PARAMETERS, ONLY : JPHEXT, NMNHNAMELGTMAX +USE MODD_IO, ONLY: TFILEDATA +USE MODD_PARAMETERS, ONLY: JPHEXT, NMNHNAMELGTMAX ! -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG ! IMPLICIT NONE @@ -134,8 +134,8 @@ ELSE IJINF = KJINF IJSUP = KJSUP ! - CALL IO_READ_FIELD(TPINIFILE,'IMAX',IIWORK) - CALL IO_READ_FIELD(TPINIFILE,'JMAX',IJWORK) + CALL IO_Field_read(TPINIFILE,'IMAX',IIWORK) + CALL IO_Field_read(TPINIFILE,'JMAX',IJWORK) ! ALLOCATE(ZWORK(IIWORK+2*JPHEXT,IJWORK+2*JPHEXT)) END IF @@ -158,7 +158,7 @@ IF (TPINIFILE%NMNHVERSION(1)>=4) THEN TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. ! - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,NDUMMY_GR_NBR,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,NDUMMY_GR_NBR,IRESP) ! IF (IRESP/=0) THEN !callabortstop @@ -189,7 +189,7 @@ DO JDUMMY=1,NDUMMY_GR_NBR TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. ! - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,ZWORK(:,:),IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,ZWORK(:,:),IRESP) ! IF (IRESP/=0) THEN !callabortstop diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90 index e8f0e9d73..05faa7b8c 100644 --- a/src/MNH/read_exsegn.f90 +++ b/src/MNH/read_exsegn.f90 @@ -23,7 +23,7 @@ INTERFACE HTURB,HTOM,ORMC01,HRAD,HDCONV,HSCONV,HCLOUD,HELEC, & HEQNSYS,PTSTEP_ALL,HSTORAGE_TYPE,HINIFILEPGD ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPEXSEGFILE ! EXSEG file @@ -299,7 +299,7 @@ USE MODD_PARAMETERS USE MODD_CONF USE MODD_CONFZ USE MODD_CONF_n, ONLY: CSTORAGE_TYPE -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_VAR_ll, ONLY: NPROC ! @@ -352,7 +352,6 @@ USE MODD_GET_n USE MODD_GR_FIELD_n ! USE MODE_POS -USE MODE_IO_ll USE MODE_MSG ! USE MODI_TEST_NAM_VAR diff --git a/src/MNH/read_exspa.f90 b/src/MNH/read_exspa.f90 index 1eb9bd915..f2b15fa20 100644 --- a/src/MNH/read_exspa.f90 +++ b/src/MNH/read_exspa.f90 @@ -102,13 +102,13 @@ END MODULE MODI_READ_EXSPA ! ------------ ! USE MODD_CONF -USE MODD_IO_ll, ONLY : TFILEDATA,TFILE_OUTPUTLISTING +USE MODD_IO, ONLY : TFILEDATA,TFILE_OUTPUTLISTING USE MODD_LUNIT_n, ONLY : LUNIT_MODEL USE MODD_PARAMETERS ! -USE MODE_FM, ONLY : IO_FILE_OPEN_ll,IO_FILE_CLOSE_ll -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO, only: IO_Config_set +USE MODE_IO_FILE, only: IO_File_open, IO_File_close +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list USE MODE_POS USE MODE_MODELN_HANDLER ! @@ -202,16 +202,16 @@ YSPANBR = '00' YDADINIFILE = ' ' YDADSPAFILE = ' ' ! -CALL IO_FILE_ADD2LIST(LUNIT_MODEL(2)%TLUOUT,'OUTPUT_LISTING2','OUTPUTLISTING','WRITE') -CALL IO_FILE_OPEN_ll(LUNIT_MODEL(2)%TLUOUT) +CALL IO_File_add2list(LUNIT_MODEL(2)%TLUOUT,'OUTPUT_LISTING2','OUTPUTLISTING','WRITE') +CALL IO_File_open(LUNIT_MODEL(2)%TLUOUT) ! !Set output file for PRINT_MSG TFILE_OUTPUTLISTING => LUNIT_MODEL(2)%TLUOUT ! ILUOUT=LUNIT_MODEL(2)%TLUOUT%NLU ! -CALL IO_FILE_ADD2LIST(TZNMLFILE,'SPAWN1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TZNMLFILE) +CALL IO_File_add2list(TZNMLFILE,'SPAWN1.nam','NML','READ') +CALL IO_File_open(TZNMLFILE) ILUSPA = TZNMLFILE%NLU ! ! @@ -239,8 +239,8 @@ LUNIT_MODEL(2)%CINIFILEPGD = CINIFILEPGD CALL POSNAM(ILUSPA,'NAM_CONFIO',GFOUND,ILUOUT) IF (GFOUND) READ(ILUSPA,NAM_CONFIO) ! -CALL SET_CONFIO_ll() -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_Config_set() +CALL IO_File_close(TZNMLFILE) ! ! !* 3. model 1 and SON1 FM file name (passed as arguments) diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90 index 819595627..9c305af69 100644 --- a/src/MNH/read_field.f90 +++ b/src/MNH/read_field.f90 @@ -30,7 +30,7 @@ INTERFACE PVTH_FLUX_M,PWTH_FLUX_M,PVU_FLUX_M, & PRUS_PRES,PRVS_PRES,PRWS_PRES,PRTHS_CLD,PRRS_CLD,PRSVS_CLD ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_TIME ! for type DATE_TIME ! ! @@ -259,7 +259,7 @@ USE MODD_BLOWSNOW USE MODD_BLOWSNOW_n USE MODD_ICE_C1R3_DESCR, ONLY: C1R3NAMES -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LATZ_EDFLX USE MODD_LG, ONLY: CLGNAMES USE MODD_LUNIT_N, ONLY: TLUOUT @@ -277,8 +277,8 @@ USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES USE MODD_SALT USE MODD_TIME ! for type DATE_TIME ! -USE MODE_FIELD, ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME,TYPEDATE,TYPEREAL -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA, TFIELDLIST, FIND_FIELD_ID_FROM_MNHNAME, TYPEDATE, TYPEREAL +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG USE MODE_TOOLS, ONLY: UPCASE ! @@ -413,33 +413,33 @@ IF (TPINIFILE%NMNHVERSION(1)<5) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('UT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'UM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PUT) + CALL IO_Field_read(TPINIFILE,TZFIELD,PUT) ! CALL FIND_FIELD_ID_FROM_MNHNAME('VT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'VM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PVT) + CALL IO_Field_read(TPINIFILE,TZFIELD,PVT) ! CALL FIND_FIELD_ID_FROM_MNHNAME('WT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'WM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PWT) + CALL IO_Field_read(TPINIFILE,TZFIELD,PWT) ! CALL FIND_FIELD_ID_FROM_MNHNAME('THT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'THM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PTHT) + CALL IO_Field_read(TPINIFILE,TZFIELD,PTHT) ! CALL FIND_FIELD_ID_FROM_MNHNAME('PABST',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'PABSM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PPABST) + CALL IO_Field_read(TPINIFILE,TZFIELD,PPABST) ELSE - CALL IO_READ_FIELD(TPINIFILE,'UT',PUT) - CALL IO_READ_FIELD(TPINIFILE,'VT',PVT) - CALL IO_READ_FIELD(TPINIFILE,'WT',PWT) - CALL IO_READ_FIELD(TPINIFILE,'THT',PTHT) - CALL IO_READ_FIELD(TPINIFILE,'PABST',PPABST) + CALL IO_Field_read(TPINIFILE,'UT',PUT) + CALL IO_Field_read(TPINIFILE,'VT',PVT) + CALL IO_Field_read(TPINIFILE,'WT',PWT) + CALL IO_Field_read(TPINIFILE,'THT',PTHT) + CALL IO_Field_read(TPINIFILE,'PABST',PPABST) ENDIF ! SELECT CASE(HGETTKET) @@ -448,13 +448,13 @@ SELECT CASE(HGETTKET) CALL FIND_FIELD_ID_FROM_MNHNAME('TKET',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'TKEM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PTKET) + CALL IO_Field_read(TPINIFILE,TZFIELD,PTKET) ELSE - CALL IO_READ_FIELD(TPINIFILE,'TKET',PTKET) + CALL IO_Field_read(TPINIFILE,'TKET',PTKET) END IF IF ( ( (TPINIFILE%NMNHVERSION(1)==5 .AND. TPINIFILE%NMNHVERSION(2)>0) .OR. TPINIFILE%NMNHVERSION(1)>5 ) & .AND. (CCONF == 'RESTA') .AND. LSPLIT_CFL) THEN - CALL IO_READ_FIELD(TPINIFILE,'TKEMS',PRTKEMS) + CALL IO_Field_read(TPINIFILE,'TKEMS',PRTKEMS) END IF CASE('INIT') PTKET(:,:,:) = XTKEMIN @@ -467,9 +467,9 @@ SELECT CASE(HGETRVT) ! vapor CALL FIND_FIELD_ID_FROM_MNHNAME('RVT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'RVM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RVT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RVT)) ELSE - CALL IO_READ_FIELD(TPINIFILE,'RVT',PRT(:,:,:,IDX_RVT)) + CALL IO_Field_read(TPINIFILE,'RVT',PRT(:,:,:,IDX_RVT)) END IF CASE('INIT') PRT(:,:,:,IDX_RVT) = 0. @@ -481,9 +481,9 @@ SELECT CASE(HGETRCT) ! cloud CALL FIND_FIELD_ID_FROM_MNHNAME('RCT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'RCM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RCT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RCT)) ELSE - CALL IO_READ_FIELD(TPINIFILE,'RCT',PRT(:,:,:,IDX_RCT)) + CALL IO_Field_read(TPINIFILE,'RCT',PRT(:,:,:,IDX_RCT)) END IF CASE('INIT') PRT(:,:,:,IDX_RCT) = 0. @@ -495,9 +495,9 @@ SELECT CASE(HGETRRT) ! rain CALL FIND_FIELD_ID_FROM_MNHNAME('RRT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'RRM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RRT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RRT)) ELSE - CALL IO_READ_FIELD(TPINIFILE,'RRT',PRT(:,:,:,IDX_RRT)) + CALL IO_Field_read(TPINIFILE,'RRT',PRT(:,:,:,IDX_RRT)) END IF CASE('INIT') PRT(:,:,:,IDX_RRT) = 0. @@ -509,9 +509,9 @@ SELECT CASE(HGETRIT) ! cloud ice CALL FIND_FIELD_ID_FROM_MNHNAME('RIT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'RIM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RIT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RIT)) ELSE - CALL IO_READ_FIELD(TPINIFILE,'RIT',PRT(:,:,:,IDX_RIT)) + CALL IO_Field_read(TPINIFILE,'RIT',PRT(:,:,:,IDX_RIT)) END IF CASE('INIT') PRT(:,:,:,IDX_RIT) = 0. @@ -523,9 +523,9 @@ SELECT CASE(HGETRST) ! snow CALL FIND_FIELD_ID_FROM_MNHNAME('RST',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'RSM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RST)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RST)) ELSE - CALL IO_READ_FIELD(TPINIFILE,'RST',PRT(:,:,:,IDX_RST)) + CALL IO_Field_read(TPINIFILE,'RST',PRT(:,:,:,IDX_RST)) END IF CASE('INIT') PRT(:,:,:,IDX_RST) = 0. @@ -537,9 +537,9 @@ SELECT CASE(HGETRGT) ! graupel CALL FIND_FIELD_ID_FROM_MNHNAME('RGT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'RGM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RGT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RGT)) ELSE - CALL IO_READ_FIELD(TPINIFILE,'RGT',PRT(:,:,:,IDX_RGT)) + CALL IO_Field_read(TPINIFILE,'RGT',PRT(:,:,:,IDX_RGT)) END IF CASE('INIT') PRT(:,:,:,IDX_RGT) = 0. @@ -551,9 +551,9 @@ SELECT CASE(HGETRHT) ! hail CALL FIND_FIELD_ID_FROM_MNHNAME('RHT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'RHM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RHT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RHT)) ELSE - CALL IO_READ_FIELD(TPINIFILE,'RHT',PRT(:,:,:,IDX_RHT)) + CALL IO_Field_read(TPINIFILE,'RHT',PRT(:,:,:,IDX_RHT)) END IF CASE('INIT') PRT(:,:,:,IDX_RHT) = 0. @@ -561,7 +561,7 @@ END SELECT ! SELECT CASE(HGETCIT) ! ice concentration CASE('READ') - IF (SIZE(PCIT) /= 0 ) CALL IO_READ_FIELD(TPINIFILE,'CIT',PCIT) + IF (SIZE(PCIT) /= 0 ) CALL IO_Field_read(TPINIFILE,'CIT',PCIT) CASE('INIT') PCIT(:,:,:)=0. END SELECT @@ -585,7 +585,7 @@ IF (NSV_USER>0) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -607,7 +607,7 @@ IF (NSV_C2R2END>=NSV_C2R2BEG) THEN TZFIELD%CMNHNAME = TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. IF (LSUPSAT .AND. (HGETRVT == 'READ') ) THEN @@ -638,7 +638,7 @@ IF (NSV_C1R3END>=NSV_C1R3BEG) THEN TZFIELD%CMNHNAME = TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -708,7 +708,7 @@ DO JSV = NSV_LIMA_BEG,NSV_LIMA_END END IF ! TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -734,7 +734,7 @@ IF (NSV_ELECEND>=NSV_ELECBEG) THEN TZFIELD%CUNITS = 'm-3' WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (nb ions/m3)' END IF - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -757,7 +757,7 @@ IF (NSV_CHGSEND>=NSV_CHGSBEG) THEN TZFIELD%CMNHNAME = TRIM(CNAMES(JSV-NSV_CHGSBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3)')'X_Y_Z_','CHIM',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -781,7 +781,7 @@ IF (NSV_CHACEND>=NSV_CHACBEG) THEN TZFIELD%CMNHNAME = TRIM(CNAMES(JSV-NSV_CHACBEG+NSV_CHGS+1))//'M' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3,A4)')'X_Y_Z_','CHAQ',JSV,' (M)' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) !***ATTENTION: BUG ? field written with a M suffix, read with a T suffix CASE ('INIT') PSVT(:,:,:,JSV) = 0. @@ -805,7 +805,7 @@ IF (NSV_CHICEND>=NSV_CHICBEG) THEN TZFIELD%CMNHNAME = TRIM(CICNAMES(JSV-NSV_CHICBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -827,7 +827,7 @@ IF (NSV_SLTEND>=NSV_SLTBEG) THEN TZFIELD%CMNHNAME = TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -849,7 +849,7 @@ IF (NSV_SLTDEPEND>=NSV_SLTDEPBEG) THEN TZFIELD%CMNHNAME = TRIM(CDESLTNAMES(JSV-NSV_SLTDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -871,7 +871,7 @@ IF (NSV_DSTEND>=NSV_DSTBEG) THEN TZFIELD%CMNHNAME = TRIM(CDUSTNAMES(JSV-NSV_DSTBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -893,7 +893,7 @@ IF (NSV_DSTDEPEND>=NSV_DSTDEPBEG) THEN TZFIELD%CMNHNAME = TRIM(CDEDSTNAMES(JSV-NSV_DSTDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -915,7 +915,7 @@ IF (NSV_AEREND>=NSV_AERBEG) THEN TZFIELD%CMNHNAME = TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1)))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -937,7 +937,7 @@ IF (NSV_AERDEPEND>=NSV_AERDEPBEG) THEN TZFIELD%CMNHNAME = TRIM(CDEAERNAMES(JSV-NSV_AERDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -959,7 +959,7 @@ IF (NSV_LGEND>=NSV_LGBEG) THEN TZFIELD%CMNHNAME = TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -981,7 +981,7 @@ IF (NSV_PPEND>=NSV_PPBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'kg kg-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN PSVT(:,:,:,JSV) = 0. END IF @@ -990,7 +990,7 @@ IF (NSV_PPEND>=NSV_PPBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','ATC',JSV+NSV_PPBEG-1 TZFIELD%CUNITS = 'm-3' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PATC(:,:,:,JSV-NSV_PPBEG+1),IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,PATC(:,:,:,JSV-NSV_PPBEG+1),IRESP) IF (IRESP/=0) THEN PATC(:,:,:,JSV-NSV_PPBEG+1) = 0. ENDIF @@ -1017,7 +1017,7 @@ IF (NSV_FFEND>=NSV_FFBEG) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV),IRESP) IF (IRESP /= 0) THEN PSVT(:,:,:,JSV) = 0. END IF @@ -1043,7 +1043,7 @@ IF (NSV_CSEND>=NSV_CSBEG) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV),IRESP) IF (IRESP /= 0) THEN PSVT(:,:,:,JSV) = 0. END IF @@ -1068,7 +1068,7 @@ IF (NSV_LNOXEND>=NSV_LNOXBEG) THEN TZFIELD%CMNHNAME = 'LINOXT' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)') 'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -1089,7 +1089,7 @@ IF (NSV_SNWEND>=NSV_SNWBEG) THEN TZFIELD%CMNHNAME = TRIM(CSNOWNAMES(JSV-NSV_SNWBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)') 'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -1109,7 +1109,7 @@ IF (NSV_SNW>=1) THEN WRITE(TZFIELD%CMNHNAME,'(A10,I3.3)')'SNOWCANO_M',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A8,I3.3)') 'X_Y_Z_','SNOWCANO',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,XSNWCANO(:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,XSNWCANO(:,:,JSV)) CASE ('INIT') XSNWCANO(:,:,JSV) = 0. END SELECT @@ -1120,28 +1120,28 @@ END IF ! IF (CCONF == 'RESTA') THEN IF (CTEMP_SCHEME/='LEFR') THEN - CALL IO_READ_FIELD(TPINIFILE,'US_PRES',PRUS_PRES) - CALL IO_READ_FIELD(TPINIFILE,'VS_PRES',PRVS_PRES) - CALL IO_READ_FIELD(TPINIFILE,'WS_PRES',PRWS_PRES) + CALL IO_Field_read(TPINIFILE,'US_PRES',PRUS_PRES) + CALL IO_Field_read(TPINIFILE,'VS_PRES',PRVS_PRES) + CALL IO_Field_read(TPINIFILE,'WS_PRES',PRWS_PRES) END IF IF (LSPLIT_CFL) THEN - CALL IO_READ_FIELD(TPINIFILE,'THS_CLD',PRTHS_CLD) + CALL IO_Field_read(TPINIFILE,'THS_CLD',PRTHS_CLD) DO JRR = 1, SIZE(PRT,4) SELECT CASE(JRR) CASE (1) - CALL IO_READ_FIELD(TPINIFILE,'RVS_CLD',PRRS_CLD(:,:,:,JRR)) + CALL IO_Field_read(TPINIFILE,'RVS_CLD',PRRS_CLD(:,:,:,JRR)) CASE (2) - CALL IO_READ_FIELD(TPINIFILE,'RCS_CLD',PRRS_CLD(:,:,:,JRR)) + CALL IO_Field_read(TPINIFILE,'RCS_CLD',PRRS_CLD(:,:,:,JRR)) CASE (3) - CALL IO_READ_FIELD(TPINIFILE,'RRS_CLD',PRRS_CLD(:,:,:,JRR)) + CALL IO_Field_read(TPINIFILE,'RRS_CLD',PRRS_CLD(:,:,:,JRR)) CASE (4) - CALL IO_READ_FIELD(TPINIFILE,'RIS_CLD',PRRS_CLD(:,:,:,JRR)) + CALL IO_Field_read(TPINIFILE,'RIS_CLD',PRRS_CLD(:,:,:,JRR)) CASE (5) - CALL IO_READ_FIELD(TPINIFILE,'RSS_CLD',PRRS_CLD(:,:,:,JRR)) + CALL IO_Field_read(TPINIFILE,'RSS_CLD',PRRS_CLD(:,:,:,JRR)) CASE (6) - CALL IO_READ_FIELD(TPINIFILE,'RGS_CLD',PRRS_CLD(:,:,:,JRR)) + CALL IO_Field_read(TPINIFILE,'RGS_CLD',PRRS_CLD(:,:,:,JRR)) CASE (7) - CALL IO_READ_FIELD(TPINIFILE,'RHS_CLD',PRRS_CLD(:,:,:,JRR)) + CALL IO_Field_read(TPINIFILE,'RHS_CLD',PRRS_CLD(:,:,:,JRR)) CASE DEFAULT CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_FIELD','PRT is too big') END SELECT @@ -1158,7 +1158,7 @@ IF (CCONF == 'RESTA') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRSVS_CLD(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRSVS_CLD(:,:,:,JSV)) END IF IF (JSV == NSV_C2R2BEG ) THEN TZFIELD%CMNHNAME = 'RSVS_CLD2' @@ -1171,7 +1171,7 @@ IF (CCONF == 'RESTA') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRSVS_CLD(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRSVS_CLD(:,:,:,JSV)) END IF END DO END IF @@ -1182,12 +1182,12 @@ END IF IF (CPROGRAM=='MESONH' .AND. HUVW_ADV_SCHEME(1:3)=='CEN' .AND. & HTEMP_SCHEME == 'LEFR' ) THEN IF (CCONF=='RESTA') THEN - CALL IO_READ_FIELD(TPINIFILE,'UM', PUM) - CALL IO_READ_FIELD(TPINIFILE,'VM', PVM) - CALL IO_READ_FIELD(TPINIFILE,'WM', PWM) - CALL IO_READ_FIELD(TPINIFILE,'DUM',PDUM) - CALL IO_READ_FIELD(TPINIFILE,'DVM',PDVM) - CALL IO_READ_FIELD(TPINIFILE,'DWM',PDWM) + CALL IO_Field_read(TPINIFILE,'UM', PUM) + CALL IO_Field_read(TPINIFILE,'VM', PVM) + CALL IO_Field_read(TPINIFILE,'WM', PWM) + CALL IO_Field_read(TPINIFILE,'DUM',PDUM) + CALL IO_Field_read(TPINIFILE,'DVM',PDVM) + CALL IO_Field_read(TPINIFILE,'DWM',PDWM) ELSE PUM = PUT PVM = PVT @@ -1216,39 +1216,39 @@ CALL INI_LB(TPINIFILE,GLSOURCE,ISV, & ! !* 2.3 Some special variables: ! -CALL IO_READ_FIELD(TPINIFILE,'DRYMASST',PDRYMASST) ! dry mass +CALL IO_Field_read(TPINIFILE,'DRYMASST',PDRYMASST) ! dry mass ! SELECT CASE(HGETSRCT) ! turbulent flux SRC at time t CASE('READ') - CALL IO_READ_FIELD(TPINIFILE,'SRCT',PSRCT) + CALL IO_Field_read(TPINIFILE,'SRCT',PSRCT) CASE('INIT') PSRCT(:,:,:)=0. END SELECT ! SELECT CASE(HGETSIGS) ! subgrid condensation CASE('READ') - CALL IO_READ_FIELD(TPINIFILE,'SIGS',PSIGS) + CALL IO_Field_read(TPINIFILE,'SIGS',PSIGS) CASE('INIT') PSIGS(:,:,:)=0. END SELECT ! SELECT CASE(HGETPHC) ! pH in cloud water CASE('READ') - CALL IO_READ_FIELD(TPINIFILE,'PHC',PPHC) + CALL IO_Field_read(TPINIFILE,'PHC',PPHC) CASE('INIT') PPHC(:,:,:)=0. END SELECT ! SELECT CASE(HGETPHR) ! pH in rainwater CASE('READ') - CALL IO_READ_FIELD(TPINIFILE,'PHR',PPHR) + CALL IO_Field_read(TPINIFILE,'PHR',PPHR) CASE('INIT') PPHR(:,:,:)=0. END SELECT ! IRESP=0 IF(HGETCLDFR=='READ') THEN ! cloud fraction - CALL IO_READ_FIELD(TPINIFILE,'CLDFR',PCLDFR,IRESP) + CALL IO_Field_read(TPINIFILE,'CLDFR',PCLDFR,IRESP) ENDIF IF(HGETCLDFR=='INIT' .OR. IRESP /= 0) THEN IF(SIZE(PRT,4) > 3) THEN @@ -1269,7 +1269,7 @@ ENDIF !* boundary layer depth ! IF (HGETBL_DEPTH=='READ') THEN - CALL IO_READ_FIELD(TPINIFILE,'BL_DEPTH',PBL_DEPTH) + CALL IO_Field_read(TPINIFILE,'BL_DEPTH',PBL_DEPTH) ELSE PBL_DEPTH(:,:)=XUNDEF END IF @@ -1277,7 +1277,7 @@ END IF !* surface boundary layer depth ! IF (HGETSBL_DEPTH=='READ') THEN - CALL IO_READ_FIELD(TPINIFILE,'SBL_DEPTH',PSBL_DEPTH) + CALL IO_Field_read(TPINIFILE,'SBL_DEPTH',PSBL_DEPTH) ELSE PSBL_DEPTH(:,:)=0. END IF @@ -1287,7 +1287,7 @@ END IF SELECT CASE(HGETTKET) CASE('READ') IF (CSCONV=='EDKF') THEN - CALL IO_READ_FIELD(TPINIFILE,'WTHVMF',PWTHVMF) + CALL IO_Field_read(TPINIFILE,'WTHVMF',PWTHVMF) ELSE PWTHVMF(:,:,:)=0 ENDIF @@ -1315,7 +1315,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEDATE TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,TPDTFRC(JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,TPDTFRC(JT)) ! TZFIELD%CMNHNAME = 'UFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1327,7 +1327,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PUFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PUFRC(:,JT)) ! TZFIELD%CMNHNAME = 'VFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1339,7 +1339,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PVFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'WFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1351,7 +1351,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PWFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PWFRC(:,JT)) ! TZFIELD%CMNHNAME = 'THFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1363,7 +1363,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PTHFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'RVFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1375,7 +1375,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRVFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'TENDTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1387,7 +1387,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PTENDTHFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PTENDTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'TENDRVFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1399,7 +1399,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PTENDRVFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PTENDRVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'GXTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1411,7 +1411,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PGXTHFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PGXTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'GYTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1423,7 +1423,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PGYTHFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PGYTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'PGROUNDFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1435,7 +1435,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PPGROUNDFRC(JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PPGROUNDFRC(JT)) ! TZFIELD%CMNHNAME = 'TENDUFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1447,7 +1447,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PTENDUFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PTENDUFRC(:,JT)) ! TZFIELD%CMNHNAME = 'TENDVFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1459,7 +1459,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PTENDVFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PTENDVFRC(:,JT)) END DO END IF ! @@ -1479,7 +1479,7 @@ IF (L2D_ADV_FRC) THEN TZFIELD%NTYPE = TYPEDATE TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,TPDTADVFRC(JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,TPDTADVFRC(JT)) ! TZFIELD%CMNHNAME = 'TH_ADV'//YFRC TZFIELD%CSTDNAME = '' @@ -1491,7 +1491,7 @@ IF (L2D_ADV_FRC) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDTHFRC(:,:,:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDTHFRC(:,:,:,JT)) ! TZFIELD%CMNHNAME = 'Q_ADV'//YFRC TZFIELD%CSTDNAME = '' @@ -1503,7 +1503,7 @@ IF (L2D_ADV_FRC) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDRVFRC(:,:,:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDRVFRC(:,:,:,JT)) ENDDO ENDIF ! @@ -1522,7 +1522,7 @@ IF (L2D_REL_FRC) THEN TZFIELD%NTYPE = TYPEDATE TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,TPDTRELFRC(JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,TPDTRELFRC(JT)) ! ! Relaxation TZFIELD%CMNHNAME = 'TH_REL'//YFRC @@ -1535,7 +1535,7 @@ IF (L2D_REL_FRC) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PTHREL(:,:,:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PTHREL(:,:,:,JT)) ! TZFIELD%CMNHNAME = 'Q_REL'//YFRC TZFIELD%CSTDNAME = '' @@ -1547,13 +1547,13 @@ IF (L2D_REL_FRC) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRVREL(:,:,:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRVREL(:,:,:,JT)) ENDDO ENDIF ! IF (LUV_FLX) THEN IF ( CCONF /= 'START' .OR. CPROGRAM=='SPAWN ' ) THEN - CALL IO_READ_FIELD(TPINIFILE,'VU_FLX',PVU_FLUX_M) + CALL IO_Field_read(TPINIFILE,'VU_FLX',PVU_FLUX_M) ELSE IF (CCONF == 'START') THEN PVU_FLUX_M(:,:,:)=0. END IF @@ -1561,8 +1561,8 @@ ENDIF ! IF (LTH_FLX) THEN IF ( CCONF /= 'START' .OR. CPROGRAM=='SPAWN ' ) THEN - CALL IO_READ_FIELD(TPINIFILE,'VT_FLX',PVTH_FLUX_M) - CALL IO_READ_FIELD(TPINIFILE,'WT_FLX',PWTH_FLUX_M) + CALL IO_Field_read(TPINIFILE,'VT_FLX',PVTH_FLUX_M) + CALL IO_Field_read(TPINIFILE,'WT_FLX',PWTH_FLUX_M) ELSE IF (CCONF == 'START') THEN PWTH_FLUX_M(:,:,:)=0. PVTH_FLUX_M(:,:,:)=0. diff --git a/src/MNH/read_grid_time_mesonh_case.f90 b/src/MNH/read_grid_time_mesonh_case.f90 index 9c2c6669e..58599b383 100644 --- a/src/MNH/read_grid_time_mesonh_case.f90 +++ b/src/MNH/read_grid_time_mesonh_case.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -90,15 +90,15 @@ END MODULE MODI_READ_GRID_TIME_MESONH_CASE USE MODD_CONF USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_PREP_REAL USE MODD_TIME USE MODD_TIME_n ! -USE MODE_FMREAD -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_MANAGE_STRUCT, only: IO_File_find_byname ! USE MODI_DEFAULT_SLEVE USE MODI_READ_HGRID @@ -152,12 +152,12 @@ ZEPS=1.E-10 ! !PW: TODO: temporary: look for file from its name ! TPFMFILE should be passed in arguments -CALL IO_FILE_FIND_BYNAME(HFMFILE,TZFMFILE,IRESP) +CALL IO_File_find_byname(HFMFILE,TZFMFILE,IRESP) ! !* 1.1 Original FMfile name ! -------------------- ! -CALL IO_READ_FIELD(TZFMFILE,'DAD_NAME',HDAD_NAME) +CALL IO_Field_read(TZFMFILE,'DAD_NAME',HDAD_NAME) ! !------------------------------------------------------------------------------- ! @@ -167,12 +167,12 @@ CALL IO_READ_FIELD(TZFMFILE,'DAD_NAME',HDAD_NAME) !* 2.1 Projection : ! ---------- ! -CALL IO_READ_FIELD(TZFMFILE,'LON0',ZLON0_LS) +CALL IO_Field_read(TZFMFILE,'LON0',ZLON0_LS) ZLON0_LS =ZLON0_LS +NINT((XLON0 -ZLON0_LS )/360.)*360. ! -CALL IO_READ_FIELD(TZFMFILE,'RPK', ZRPK_LS) -CALL IO_READ_FIELD(TZFMFILE,'LAT0',ZLAT0_LS) -CALL IO_READ_FIELD(TZFMFILE,'BETA',ZBETA_LS) +CALL IO_Field_read(TZFMFILE,'RPK', ZRPK_LS) +CALL IO_Field_read(TZFMFILE,'LAT0',ZLAT0_LS) +CALL IO_Field_read(TZFMFILE,'BETA',ZBETA_LS) ! IF ( (ABS(ZLAT0_LS-XLAT0)>ZEPS*MAX(1.,ABS(XLAT0))) & .OR. (ABS(ZLON0_LS-XLON0)>ZEPS*MAX(1.,ABS(XLON0))) & @@ -215,30 +215,30 @@ END IF ! ------------- ! ! -CALL IO_READ_FIELD(TZFMFILE,'KMAX',ILMAX_LS) +CALL IO_Field_read(TZFMFILE,'KMAX',ILMAX_LS) ! ILMAX_LS=ILMAX_LS+2*JPVEXT ! ALLOCATE(XZHAT_LS(ILMAX_LS)) -CALL IO_READ_FIELD(TZFMFILE,'ZHAT',XZHAT_LS) +CALL IO_Field_read(TZFMFILE,'ZHAT',XZHAT_LS) ! CALL DEFAULT_SLEVE(LSLEVE_LS,XLEN1_LS,XLEN2_LS) IF (TZFMFILE%NMNHVERSION(1)<4 .OR. (TZFMFILE%NMNHVERSION(1)==4 .AND. TZFMFILE%NMNHVERSION(2)<=6)) THEN LSLEVE_LS = .FALSE. ELSE - CALL IO_READ_FIELD(TZFMFILE,'SLEVE',LSLEVE_LS) + CALL IO_Field_read(TZFMFILE,'SLEVE',LSLEVE_LS) IF (LSLEVE_LS) THEN - CALL IO_READ_FIELD(TZFMFILE,'LEN1',XLEN1_LS) - CALL IO_READ_FIELD(TZFMFILE,'LEN2',XLEN2_LS) + CALL IO_Field_read(TZFMFILE,'LEN1',XLEN1_LS) + CALL IO_Field_read(TZFMFILE,'LEN2',XLEN2_LS) END IF END IF ! -CALL IO_READ_FIELD(TZFMFILE,'THINSHELL',LTHINSHELL) +CALL IO_Field_read(TZFMFILE,'THINSHELL',LTHINSHELL) ! !* 2.5 Time variables : ! -------------- ! -CALL IO_READ_FIELD(TZFMFILE,'DTCUR',TDTCUR) +CALL IO_Field_read(TZFMFILE,'DTCUR',TDTCUR) ! TDTMOD=TDTCUR TDTSEG=TDTCUR diff --git a/src/MNH/read_hgrid.f90 b/src/MNH/read_hgrid.f90 index b501ea100..26b9881e4 100644 --- a/src/MNH/read_hgrid.f90 +++ b/src/MNH/read_hgrid.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -9,7 +9,7 @@ INTERFACE SUBROUTINE READ_HGRID(KMI,TPFMFILE,HMY_NAME,HDAD_NAME,HSTORAGE_TYPE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! model index TYPE(TFILEDATA), INTENT(IN) :: TPFMFILE ! file n @@ -80,18 +80,17 @@ END MODULE MODI_READ_HGRID ! !* 0. DECLARATIONS ! -USE MODD_CONF, ONLY : CPROGRAM +USE MODD_CONF, ONLY: CPROGRAM USE MODD_GRID -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_PGDDIM USE MODD_PGDGRID ! -USE MODE_FIELD, ONLY : TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME -USE MODE_FM, ONLY : SET_FMPACK_ll -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA, TFIELDLIST, FIND_FIELD_ID_FROM_MNHNAME +USE MODE_IO, ONLY: IO_Pack_set +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_GRIDPROJ -USE MODE_IO_ll USE MODE_MSG USE MODE_MODELN_HANDLER ! @@ -148,9 +147,9 @@ END IF !* 2.1 General information : ! ------------------- ! -CALL IO_READ_FIELD(TPFMFILE,'MY_NAME', HMY_NAME) -CALL IO_READ_FIELD(TPFMFILE,'DAD_NAME', HDAD_NAME) -CALL IO_READ_FIELD(TPFMFILE,'STORAGE_TYPE',HSTORAGE_TYPE) +CALL IO_Field_read(TPFMFILE,'MY_NAME', HMY_NAME) +CALL IO_Field_read(TPFMFILE,'DAD_NAME', HDAD_NAME) +CALL IO_Field_read(TPFMFILE,'STORAGE_TYPE',HSTORAGE_TYPE) ! !* 2.2 Grid information : ! ---------------- @@ -159,14 +158,14 @@ CALL IO_READ_FIELD(TPFMFILE,'STORAGE_TYPE',HSTORAGE_TYPE) !GET_DIM_PHYS_ll impact => 1st one no visible impact CALL GET_DIM_PHYS_ll ( 'B',NPGDIMAX,NPGDJMAX) ! -CALL IO_READ_FIELD(TPFMFILE,'LAT0', XLAT0) -CALL IO_READ_FIELD(TPFMFILE,'LON0', XLON0) -CALL IO_READ_FIELD(TPFMFILE,'RPK', XRPK) -CALL IO_READ_FIELD(TPFMFILE,'BETA', XBETA) -CALL IO_READ_FIELD(TPFMFILE,'LATORI',XPGDLATOR) -CALL IO_READ_FIELD(TPFMFILE,'LONORI',XPGDLONOR) -CALL IO_READ_FIELD(TPFMFILE,'IMAX', NPGDIMAX) -CALL IO_READ_FIELD(TPFMFILE,'JMAX', NPGDJMAX) +CALL IO_Field_read(TPFMFILE,'LAT0', XLAT0) +CALL IO_Field_read(TPFMFILE,'LON0', XLON0) +CALL IO_Field_read(TPFMFILE,'RPK', XRPK) +CALL IO_Field_read(TPFMFILE,'BETA', XBETA) +CALL IO_Field_read(TPFMFILE,'LATORI',XPGDLATOR) +CALL IO_Field_read(TPFMFILE,'LONORI',XPGDLONOR) +CALL IO_Field_read(TPFMFILE,'IMAX', NPGDIMAX) +CALL IO_Field_read(TPFMFILE,'JMAX', NPGDJMAX) ! !20131010 recompute properly NPGDIMAX NPGDJMAX !GET_DIM_PHYS_ll impact 2nd one => prevent run failures @@ -175,38 +174,38 @@ CALL GET_DIM_PHYS_ll ( 'B',NPGDIMAX,NPGDJMAX) IF (.NOT.(ALLOCATED(XPGDXHAT))) ALLOCATE(XPGDXHAT(NPGDIMAX+2*JPHEXT)) IF (.NOT.(ALLOCATED(XPGDYHAT))) ALLOCATE(XPGDYHAT(NPGDJMAX+2*JPHEXT)) !20131023 change FMREAD option '--' -> 'XX' ou 'YY' for // reading -CALL IO_READ_FIELD(TPFMFILE,'XHAT',XPGDXHAT) -CALL IO_READ_FIELD(TPFMFILE,'YHAT',XPGDYHAT) +CALL IO_Field_read(TPFMFILE,'XHAT',XPGDXHAT) +CALL IO_Field_read(TPFMFILE,'YHAT',XPGDYHAT) ! !* 3. Read the configuration (MODD_CONF) ! -CALL IO_READ_FIELD(TPFMFILE,'L1D',G1D,IRESP) +CALL IO_Field_read(TPFMFILE,'L1D',G1D,IRESP) IF (IRESP/=0) THEN G1D=.FALSE. IF( (NPGDIMAX == 1).AND.(NPGDJMAX == 1) ) G1D=.TRUE. ENDIF ! -CALL IO_READ_FIELD(TPFMFILE,'L2D',G2D,IRESP) +CALL IO_Field_read(TPFMFILE,'L2D',G2D,IRESP) IF (IRESP/=0) THEN G2D=.FALSE. IF( (NPGDIMAX /= 1).AND.(NPGDJMAX == 1) ) G2D=.TRUE. ENDIF ! -CALL IO_READ_FIELD(TPFMFILE,'PACK',GPACK,IRESP) +CALL IO_Field_read(TPFMFILE,'PACK',GPACK,IRESP) IF (IRESP/=0) GPACK=.TRUE. ! -CALL SET_FMPACK_ll(G1D,G2D,GPACK) +CALL IO_Pack_set(G1D,G2D,GPACK) !------------------------------------------------------------------------------- IF (TPFMFILE%NMNHVERSION(1)<4 .OR. (TPFMFILE%NMNHVERSION(1)==4 .AND. TPFMFILE%NMNHVERSION(2)<=5)) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('LONORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LONOR' - CALL IO_READ_FIELD(TPFMFILE,TZFIELD,XPGDLONOR) + CALL IO_Field_read(TPFMFILE,TZFIELD,XPGDLONOR) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LATORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LATOR' - CALL IO_READ_FIELD(TPFMFILE,TZFIELD,XPGDLATOR) + CALL IO_Field_read(TPFMFILE,TZFIELD,XPGDLATOR) ! ZXHATM = - 0.5 * (XPGDXHAT(1)+XPGDXHAT(2)) ZYHATM = - 0.5 * (XPGDYHAT(1)+XPGDYHAT(2)) diff --git a/src/MNH/read_hgridn.f90 b/src/MNH/read_hgridn.f90 index 77aa6acd7..0989fed53 100644 --- a/src/MNH/read_hgridn.f90 +++ b/src/MNH/read_hgridn.f90 @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE READ_HGRID_n(TPFMFILE,HMY_NAME,HDAD_NAME,HSTORAGE_TYPE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFMFILE ! file n CHARACTER(LEN=28), INTENT(OUT) :: HMY_NAME ! True Name of FM-file @@ -82,14 +82,14 @@ USE MODD_CONF USE MODD_DIM_n USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n -USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT, JPMODELMAX +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT, JPMODELMAX ! -USE MODE_FIELD, ONLY : TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA, TFIELDLIST, FIND_FIELD_ID_FROM_MNHNAME USE MODE_GRIDPROJ -USE MODE_IO_ll +USE MODE_IO, only: IO_Pack_set +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG USE MODE_MODELN_HANDLER ! @@ -125,9 +125,9 @@ ILUOUT = TLUOUT%NLU !* 1. General information : ! ------------------- ! -CALL IO_READ_FIELD(TPFMFILE,'MY_NAME', HMY_NAME) -CALL IO_READ_FIELD(TPFMFILE,'DAD_NAME', HDAD_NAME) -CALL IO_READ_FIELD(TPFMFILE,'STORAGE_TYPE',HSTORAGE_TYPE) +CALL IO_Field_read(TPFMFILE,'MY_NAME', HMY_NAME) +CALL IO_Field_read(TPFMFILE,'DAD_NAME', HDAD_NAME) +CALL IO_Field_read(TPFMFILE,'STORAGE_TYPE',HSTORAGE_TYPE) ! !* 2. Grid information : ! ---------------- @@ -136,16 +136,16 @@ IF( (TPFMFILE%NMNHVERSION(1)<4 .OR. (TPFMFILE%NMNHVERSION(1)==4 .AND. TPFMFILE%N .AND. HSTORAGE_TYPE == 'PG') THEN LCARTESIAN=.FALSE. ELSE - CALL IO_READ_FIELD(TPFMFILE,'CARTESIAN',LCARTESIAN) + CALL IO_Field_read(TPFMFILE,'CARTESIAN',LCARTESIAN) ENDIF -CALL IO_READ_FIELD(TPFMFILE,'LAT0',ZLAT0) -CALL IO_READ_FIELD(TPFMFILE,'LON0',ZLON0) -CALL IO_READ_FIELD(TPFMFILE,'BETA',ZBETA,IRESP) +CALL IO_Field_read(TPFMFILE,'LAT0',ZLAT0) +CALL IO_Field_read(TPFMFILE,'LON0',ZLON0) +CALL IO_Field_read(TPFMFILE,'BETA',ZBETA,IRESP) IF(IRESP/=0) ZBETA=0. IF (.NOT.LCARTESIAN ) THEN - CALL IO_READ_FIELD(TPFMFILE,'RPK', ZRPK) - CALL IO_READ_FIELD(TPFMFILE,'LATORI',XLATORI) - CALL IO_READ_FIELD(TPFMFILE,'LONORI',XLONORI) + CALL IO_Field_read(TPFMFILE,'RPK', ZRPK) + CALL IO_Field_read(TPFMFILE,'LATORI',XLATORI) + CALL IO_Field_read(TPFMFILE,'LONORI',XLONORI) ENDIF ! IMI = GET_CURRENT_MODEL_INDEX() @@ -184,9 +184,9 @@ IF (CPROGRAM/='IDEAL ') THEN ! b) and arrays XXHAT, XYHAT, XZS, XZSMT are deallocated after this ! routine (as in ini_size_spawn.f90) !$20140506 try 'XX','YY' it is FMREADN0_LL scalar reading so leave '--' - CALL IO_READ_FIELD(TPFMFILE,'IMAX', NIMAX) - CALL IO_READ_FIELD(TPFMFILE,'JMAX', NJMAX) - CALL IO_READ_FIELD(TPFMFILE,'JPHEXT',IJPHEXT) + CALL IO_Field_read(TPFMFILE,'IMAX', NIMAX) + CALL IO_Field_read(TPFMFILE,'JMAX', NJMAX) + CALL IO_Field_read(TPFMFILE,'JPHEXT',IJPHEXT) IF ( IJPHEXT .NE. JPHEXT ) THEN IF (CPROGRAM == 'REAL' ) THEN WRITE(ILUOUT,FMT=*) ' READ_HGRID_N : JPHEXT in PRE_REAL1.nam/NAM_REAL_CONF ( or default value )& @@ -205,21 +205,21 @@ END IF !* 2.1 Read the configuration (MODD_CONF) ! IF (IMI == 1) THEN - CALL IO_READ_FIELD(TPFMFILE,'L1D',L1D,IRESP) + CALL IO_Field_read(TPFMFILE,'L1D',L1D,IRESP) IF (IRESP/=0) THEN L1D=.FALSE. IF( (NIMAX == 1).AND.(NJMAX == 1) ) L1D=.TRUE. ENDIF ! - CALL IO_READ_FIELD(TPFMFILE,'L2D',L2D,IRESP) + CALL IO_Field_read(TPFMFILE,'L2D',L2D,IRESP) IF (IRESP/=0) THEN L2D=.FALSE. IF( (NIMAX /= 1).AND.(NJMAX == 1) ) L2D=.TRUE. ENDIF ! - CALL IO_READ_FIELD(TPFMFILE,'PACK',LPACK,IRESP) + CALL IO_Field_read(TPFMFILE,'PACK',LPACK,IRESP) IF (IRESP/=0) LPACK=.TRUE. -! CALL SET_FMPACK_ll(L1D,L2D,LPACK) +! CALL IO_Pack_set(L1D,L2D,LPACK) END IF ! !* 2.2 Grid information : @@ -246,8 +246,8 @@ ELSE ENDIF !JUAN REALZ -CALL IO_READ_FIELD(TPFMFILE,'XHAT',XXHAT) -CALL IO_READ_FIELD(TPFMFILE,'YHAT',XYHAT) +CALL IO_Field_read(TPFMFILE,'XHAT',XXHAT) +CALL IO_Field_read(TPFMFILE,'YHAT',XYHAT) ! !JUAN REALZ IF ( CPROGRAM .EQ. "REAL " ) THEN @@ -257,7 +257,7 @@ IF (.NOT. (ASSOCIATED(XZS))) ALLOCATE(XZS(NIMAX+2*JPHEXT,NJMAX+2*JPHEXT)) ENDIF !JUAN REALZ -CALL IO_READ_FIELD(TPFMFILE,'ZS',XZS) +CALL IO_Field_read(TPFMFILE,'ZS',XZS) ! !JUAN REALZ IF ( CPROGRAM .EQ. "REAL " ) THEN @@ -270,7 +270,7 @@ ENDIF IF (TPFMFILE%NMNHVERSION(1)<4 .OR. (TPFMFILE%NMNHVERSION(1)==4 .AND. TPFMFILE%NMNHVERSION(2)<=6)) THEN XZSMT = XZS ELSE - CALL IO_READ_FIELD(TPFMFILE,'ZSMT',XZSMT) + CALL IO_Field_read(TPFMFILE,'ZSMT',XZSMT) ! END IF ! @@ -279,12 +279,12 @@ IF (TPFMFILE%NMNHVERSION(1)<4 .OR. (TPFMFILE%NMNHVERSION(1)==4 .AND. TPFMFILE%NM CALL FIND_FIELD_ID_FROM_MNHNAME('LONORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LONOR' - CALL IO_READ_FIELD(TPFMFILE,TZFIELD,XLONORI) + CALL IO_Field_read(TPFMFILE,TZFIELD,XLONORI) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LATORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LATOR' - CALL IO_READ_FIELD(TPFMFILE,TZFIELD,XLATORI) + CALL IO_Field_read(TPFMFILE,TZFIELD,XLATORI) ! ZXHATM = - 0.5 * (XXHAT(1)+XXHAT(2)) ZYHATM = - 0.5 * (XYHAT(1)+XYHAT(2)) diff --git a/src/MNH/read_precip_field.f90 b/src/MNH/read_precip_field.f90 index 9450008a6..c8251ed16 100644 --- a/src/MNH/read_precip_field.f90 +++ b/src/MNH/read_precip_field.f90 @@ -16,7 +16,7 @@ INTERFACE PINPRC,PACPRC,PINDEP,PACDEP,PINPRR,PINPRR3D,PEVAP3D, & PACPRR,PINPRS,PACPRS,PINPRG,PACPRG,PINPRH,PACPRH ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! !* 0.1 declarations of arguments ! @@ -97,14 +97,13 @@ END MODULE MODI_READ_PRECIP_FIELD !----------------------------------------------------------------------------- ! !* 0. DECLARATIONS -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_PARAM_ICE, ONLY : LDEPOSC -USE MODD_PARAM_C2R2, ONLY : LDEPOC -USE MODD_PARAM_LIMA, ONLY : MDEPOC=>LDEPOC +USE MODD_IO, ONLY: TFILEDATA +USE MODD_PARAM_ICE, ONLY: LDEPOSC +USE MODD_PARAM_C2R2, ONLY: LDEPOC +USE MODD_PARAM_LIMA, ONLY: MDEPOC=>LDEPOC ! -USE MODE_FIELD, ONLY : TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA, TFIELDLIST, FIND_FIELD_ID_FROM_MNHNAME +USE MODE_IO_FIELD_READ, only: IO_Field_read ! IMPLICIT NONE ! @@ -171,13 +170,13 @@ IF (SIZE(PINPRC) /= 0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRC',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PINPRC(:,:)=Z2D(:,:)/(1000.*3600.) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRC',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PACPRC(:,:)=Z2D(:,:)/(1000.) CASE ('INIT') PINPRC(:,:) = 0.0 @@ -191,13 +190,13 @@ IF (SIZE(PINPRC) /= 0 .AND. (LDEPOSC .OR. LDEPOC .OR. MDEPOC) ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INDEP',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PINDEP(:,:)=Z2D(:,:)/(1000.*3600.) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACDEP',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PACDEP(:,:)=Z2D(:,:)/(1000.) CASE ('INIT') PINDEP(:,:) = 0.0 @@ -211,19 +210,19 @@ IF (SIZE(PINPRR) /= 0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRR',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PINPRR(:,:)=Z2D(:,:)/(1000.*3600.) ! - CALL IO_READ_FIELD(TPINIFILE,'INPRR3D',Z3D,IRESP) + CALL IO_Field_read(TPINIFILE,'INPRR3D',Z3D,IRESP) IF (IRESP == 0) PINPRR3D(:,:,:)=Z3D(:,:,:) ! - CALL IO_READ_FIELD(TPINIFILE,'EVAP3D',Z3D,IRESP) + CALL IO_Field_read(TPINIFILE,'EVAP3D',Z3D,IRESP) IF (IRESP == 0) PEVAP3D(:,:,:)=Z3D(:,:,:) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRR',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PACPRR(:,:)=Z2D(:,:)/(1000.) CASE ('INIT') PINPRR(:,:) = 0.0 @@ -239,13 +238,13 @@ IF (SIZE(PINPRS) /= 0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PINPRS(:,:)=Z2D(:,:)/(1000.*3600.) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PACPRS(:,:)=Z2D(:,:)/(1000.) CASE ('INIT') PINPRS(:,:) = 0.0 @@ -259,13 +258,13 @@ IF (SIZE(PINPRG) /= 0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PINPRG(:,:)=Z2D(:,:)/(1000.*3600.) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PACPRG(:,:)=Z2D(:,:)/(1000.) CASE ('INIT') PINPRG(:,:) = 0.0 @@ -279,13 +278,13 @@ IF (SIZE(PINPRH) /= 0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRH',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PINPRH(:,:)=Z2D(:,:)/(1000.*3600.) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRH',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PACPRH(:,:)=Z2D(:,:)/(1000.) CASE ('INIT') PINPRH(:,:) = 0.0 diff --git a/src/MNH/read_surf_mnh.f90 b/src/MNH/read_surf_mnh.f90 index 21ddfeba6..09c51cee2 100644 --- a/src/MNH/read_surf_mnh.f90 +++ b/src/MNH/read_surf_mnh.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2003-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -136,14 +136,13 @@ END MODULE MODE_READ_SURF_MNH_TOOLS !* 0. DECLARATIONS ! ------------ ! -USE MODD_CONF, ONLY: CPROGRAM -USE MODD_GRID, ONLY: XRPK,XBETA,XLAT0,XLON0 -USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE -USE MODD_PARAMETERS, ONLY: JPHEXT, XUNDEF +USE MODD_CONF, ONLY: CPROGRAM +USE MODD_GRID, ONLY: XRPK,XBETA,XLAT0,XLON0 +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE +USE MODD_PARAMETERS, ONLY: JPHEXT, XUNDEF ! -USE MODE_FIELD, ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME,TYPEREAL -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME,TYPEREAL +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_GRIDPROJ USE MODE_MSG USE MODE_READ_SURF_MNH_TOOLS @@ -186,26 +185,26 @@ IF (HREC=='LONORI' .OR. HREC=='LATORI') THEN ZRPK = XRPK ZBETA = XBETA !* reads projection and grid data in the file - CALL IO_READ_FIELD(TPINFILE,'LAT0',XLAT0) - CALL IO_READ_FIELD(TPINFILE,'LON0',XLON0) - CALL IO_READ_FIELD(TPINFILE,'RPK', XRPK) - CALL IO_READ_FIELD(TPINFILE,'BETA',XBETA) + CALL IO_Field_read(TPINFILE,'LAT0',XLAT0) + CALL IO_Field_read(TPINFILE,'LON0',XLON0) + CALL IO_Field_read(TPINFILE,'RPK', XRPK) + CALL IO_Field_read(TPINFILE,'BETA',XBETA) ! - CALL IO_READ_FIELD(TPINFILE,'IMAX',IIMAX) - CALL IO_READ_FIELD(TPINFILE,'JMAX',IJMAX) + CALL IO_Field_read(TPINFILE,'IMAX',IIMAX) + CALL IO_Field_read(TPINFILE,'JMAX',IJMAX) ALLOCATE(ZXHAT(IIMAX+2*JPHEXT),ZYHAT(IJMAX+2*JPHEXT)) - CALL IO_READ_FIELD(TPINFILE,'XHAT',ZXHAT) - CALL IO_READ_FIELD(TPINFILE,'YHAT',ZYHAT) + CALL IO_Field_read(TPINFILE,'XHAT',ZXHAT) + CALL IO_Field_read(TPINFILE,'YHAT',ZYHAT) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LONORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LONOR' - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZLONOR) + CALL IO_Field_read(TPINFILE,TZFIELD,ZLONOR) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LATORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LATOR' - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZLATOR) + CALL IO_Field_read(TPINFILE,TZFIELD,ZLATOR) ! ZXHATM = - 0.5 * (ZXHAT(1)+ZXHAT(2)) ZYHATM = - 0.5 * (ZYHAT(1)+ZYHAT(2)) @@ -227,10 +226,10 @@ END IF IF ( HREC=='LAT0' .OR. HREC=='LON0' .OR. HREC=='RPK' .OR. HREC=='BETA' & .OR. HREC=='LATORI'.OR. HREC=='LONORI' ) THEN - CALL IO_READ_FIELD(TPINFILE,HREC,PFIELD,KRESP) + CALL IO_Field_read(TPINFILE,HREC,PFIELD,KRESP) ELSE CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPEREAL,0,'READ_SURFX0_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,PFIELD,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,PFIELD,KRESP) END IF IF (KRESP /=0) THEN @@ -284,22 +283,20 @@ END SUBROUTINE READ_SURFX0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY: FIND_FIELD_ID_FROM_MNHNAME,TFIELDDATA,TFIELDLIST,TYPEREAL -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: FIND_FIELD_ID_FROM_MNHNAME,TFIELDDATA,TFIELDLIST,TYPEREAL +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll -USE MODE_IO_ll USE MODE_MSG USE MODE_READ_SURF_MNH_TOOLS ! -USE MODD_CST, ONLY : XPI +USE MODD_CST, ONLY: XPI ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & - NIU, NJU, NIB, NJB, NIE, NJE, & - NIU_ALL, NJU_ALL, NIB_ALL, & - NJB_ALL, NIE_ALL, NJE_ALL, & - NMASK_ALL -USE MODD_PARAMETERS, ONLY: XUNDEF +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, NMASK, & + NIU, NJU, NIB, NJB, NIE, NJE, & + NIU_ALL, NJU_ALL, NIB_ALL, & + NJB_ALL, NIE_ALL, NJE_ALL, & + NMASK_ALL +USE MODD_PARAMETERS, ONLY: XUNDEF ! USE MODI_PACK_2D_1D ! @@ -370,12 +367,12 @@ END IF ! IF (HREC=='LAT') THEN - CALL IO_READ_FIELD(TPINFILE,'LAT0',ZW,KRESP) + CALL IO_Field_read(TPINFILE,'LAT0',ZW,KRESP) PFIELD(:) = ZW ELSE IF (HREC=='LON') THEN - CALL IO_READ_FIELD(TPINFILE,'LON0',ZW,KRESP) + CALL IO_Field_read(TPINFILE,'LON0',ZW,KRESP) PFIELD(:) = ZW ELSE IF (HREC=='MESH_SIZE') THEN @@ -395,7 +392,7 @@ ELSE IF (HREC=='XX') THEN ELSE TZFIELD%CDIR = '--' END IF - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK1D,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK1D,KRESP) DO JJ = 1,IJU ZWORK(IIB:IIE,JJ) = 0.5 * ZWORK1D(IIB:IIE) + 0.5 * ZWORK1D(IIB+1:IIE+1) END DO @@ -414,7 +411,7 @@ ELSE IF (HREC=='DX') THEN ELSE TZFIELD%CDIR = '--' END IF - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK1D,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK1D,KRESP) DO JJ = 1,IJU ZWORK(IIB:IIE,JJ) = - ZWORK1D(IIB:IIE) + ZWORK1D(IIB+1:IIE+1) END DO @@ -433,7 +430,7 @@ ELSE IF (HREC=='YY') THEN ELSE TZFIELD%CDIR = '--' END IF - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK1D,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK1D,KRESP) DO JI = 1,IIU ZWORK(JI,IJB:IJE) = 0.5 * ZWORK1D(IJB:IJE) + 0.5 * ZWORK1D(IJB+1:IJE+1) END DO @@ -452,7 +449,7 @@ ELSE IF (HREC=='DY') THEN ELSE TZFIELD%CDIR = '--' END IF - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK1D,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK1D,KRESP) DO JI = 1,IIU ZWORK(JI,IJB:IJE) = - ZWORK1D(IJB:IJE) + ZWORK1D(IJB+1:IJE+1) END DO @@ -468,7 +465,7 @@ ELSE YREC(1:LEN(HREC)) = HREC IF (HREC(1:8)=='Q_CANYON') THEN IF (TPINFILE%NMNHVERSION(1)<4 .OR. (TPINFILE%NMNHVERSION(1)==4 .AND. TPINFILE%NMNHVERSION(2)<=5)) THEN - CALL IO_READ_FIELD(TPINFILE,'STORAGE_TYPE',YSTORAGE_TYPE) + CALL IO_Field_read(TPINFILE,'STORAGE_TYPE',YSTORAGE_TYPE) IF (YSTORAGE_TYPE=='TT') THEN PFIELD = 0. DEALLOCATE(IMASK) @@ -480,7 +477,7 @@ ELSE END IF IF (HREC(1:8)=='T_CANYON') THEN IF (TPINFILE%NMNHVERSION(1)<4 .OR. (TPINFILE%NMNHVERSION(1)==4 .AND. TPINFILE%NMNHVERSION(2)<=5)) THEN - CALL IO_READ_FIELD(TPINFILE,'STORAGE_TYPE',YSTORAGE_TYPE) + CALL IO_Field_read(TPINFILE,'STORAGE_TYPE',YSTORAGE_TYPE) IF (YSTORAGE_TYPE=='TT') YREC = 'T_ROAD1 ' END IF END IF @@ -494,13 +491,13 @@ ELSE ! IF (HDIR=='H') THEN CALL PREPARE_METADATA_READ_SURF(YREC,'XY',4,TYPEREAL,2,'READ_SURFX1_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK,KRESP) ELSEIF (HDIR=='A'.OR.HDIR=='E') THEN CALL PREPARE_METADATA_READ_SURF(YREC,'--',4,TYPEREAL,2,'READ_SURFX1_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK,KRESP) ELSE CALL PREPARE_METADATA_READ_SURF(YREC,'--',4,TYPEREAL,1,'READ_SURFX1_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,PFIELD,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,PFIELD,KRESP) END IF ! IF (KRESP /=0) THEN @@ -574,16 +571,14 @@ END SUBROUTINE READ_SURFX1_MNH ! ------------ ! USE MODE_ll -USE MODE_FIELD, ONLY : TFIELDDATA,TYPEREAL -USE MODE_FM -USE MODE_FMREAD -USE MODE_IO_ll +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG USE MODE_READ_SURF_MNH_TOOLS ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, NIU, NJU, NIB, NJB, NIE, NJE, & - NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, NIE_ALL, NJE_ALL, NMASK_ALL -USE MODD_PARAMETERS, ONLY : XUNDEF +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, NMASK, NIU, NJU, NIB, NJB, NIE, NJE, & + NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, NIE_ALL, NJE_ALL, NMASK_ALL +USE MODD_PARAMETERS, ONLY: XUNDEF ! USE MODI_PACK_2D_1D ! @@ -631,14 +626,14 @@ ILUOUT = TOUT%NLU IF (HDIR=='H') THEN ALLOCATE(ZWORK(NIU,NJU,SIZE(PFIELD,2))) CALL PREPARE_METADATA_READ_SURF(HREC,'XY',4,TYPEREAL,3,'READ_SURFX2_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK,KRESP) ELSEIF (HDIR=='A'.OR.HDIR=='E') THEN ALLOCATE(ZWORK(NIU_ALL,NJU_ALL,SIZE(PFIELD,2))) CALL PREPARE_METADATA_READ_SURF(HREC,'--',4,TYPEREAL,3,'READ_SURFX2_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK,KRESP) ELSE CALL PREPARE_METADATA_READ_SURF(HREC,'--',4,TYPEREAL,2,'READ_SURFX2_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,PFIELD,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,PFIELD,KRESP) END IF ! IF (KRESP /=0) THEN @@ -710,20 +705,18 @@ END SUBROUTINE READ_SURFX2_MNH ! USE MODE_ll USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL -USE MODE_FM -USE MODE_FMREAD -USE MODE_IO_ll +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG USE MODE_READ_SURF_MNH_TOOLS ! -USE MODD_DATA_COVER_PAR, ONLY : JPCOVER -USE MODD_CST, ONLY : XPI +USE MODD_DATA_COVER_PAR, ONLY: JPCOVER +USE MODD_CST, ONLY: XPI ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & - NIU, NJU, NIB, NJB, NIE, NJE, & - NIU_ALL, NJU_ALL, NIB_ALL, & - NJB_ALL, NIE_ALL, NJE_ALL, & - NMASK_ALL +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, NMASK, & + NIU, NJU, NIB, NJB, NIE, NJE, & + NIU_ALL, NJU_ALL, NIB_ALL, & + NJB_ALL, NIE_ALL, NJE_ALL, & + NMASK_ALL ! USE MODI_PACK_2D_1D ! @@ -800,8 +793,8 @@ NCOVER=COUNT(OFLAG) ALLOCATE (ZWORK3D(IIU,IJU,NCOVER)) ZWORK3D(:,:,:) = 0.0 ! -CALL IO_READ_FIELD(TPINFILE,'VERSION',IVERSION) -CALL IO_READ_FIELD(TPINFILE,'BUG', IBUGFIX) +CALL IO_Field_read(TPINFILE,'VERSION',IVERSION) +CALL IO_Field_read(TPINFILE,'BUG', IBUGFIX) IF (IVERSION<7 .OR. (IVERSION==7 .AND. IBUGFIX==0)) THEN GCOVER_PACKED = .FALSE. @@ -816,7 +809,7 @@ ELSE TZFIELD%NTYPE = TYPELOG TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINFILE,TZFIELD,GCOVER_PACKED) + CALL IO_Field_read(TPINFILE,TZFIELD,GCOVER_PACKED) END IF ! IF (.NOT. GCOVER_PACKED) THEN @@ -835,13 +828,13 @@ IF (.NOT. GCOVER_PACKED) THEN TZFIELD%CDIR = YDIR IF (OFLAG(JL2)) THEN ICOVER=ICOVER+1 - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK3D(:,:,ICOVER),IRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK3D(:,:,ICOVER),IRESP) END IF IF (IRESP/=0) KRESP=IRESP END DO ELSE CALL PREPARE_METADATA_READ_SURF(HREC,YDIR,4,TYPEREAL,3,'READ_SURFX2COV_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK3D(:,:,:),KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK3D(:,:,:),KRESP) END IF ! IF (KRESP /=0) THEN @@ -904,20 +897,18 @@ END SUBROUTINE READ_SURFX2COV_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY : TFIELDDATA,TYPELOG,TYPEREAL -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL USE MODE_ll -USE MODE_IO_ll +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG ! -USE MODD_CST, ONLY : XPI +USE MODD_CST, ONLY: XPI ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & - NIU, NJU, NIB, NJB, NIE, NJE, & - NIU_ALL, NJU_ALL, NIB_ALL, & - NJB_ALL, NIE_ALL, NJE_ALL, & - NMASK_ALL +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, NMASK, & + NIU, NJU, NIB, NJB, NIE, NJE, & + NIU_ALL, NJU_ALL, NIB_ALL, & + NJB_ALL, NIE_ALL, NJE_ALL, & + NMASK_ALL ! USE MODI_PACK_2D_1D ! @@ -995,8 +986,8 @@ END IF ALLOCATE (ZWORK2D(IIU,IJU)) ZWORK2D(:,:) = 0.0 ! -CALL IO_READ_FIELD(TPINFILE,'VERSION',IVERSION) -CALL IO_READ_FIELD(TPINFILE,'BUG', IBUGFIX) +CALL IO_Field_read(TPINFILE,'VERSION',IVERSION) +CALL IO_Field_read(TPINFILE,'BUG', IBUGFIX) IF (IVERSION<7 .OR. (IVERSION==7 .AND. IBUGFIX==0)) THEN GCOVER_PACKED = .FALSE. @@ -1011,7 +1002,7 @@ ELSE TZFIELD%NTYPE = TYPELOG TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINFILE,TZFIELD,GCOVER_PACKED,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,GCOVER_PACKED,KRESP) END IF ! IF (.NOT. GCOVER_PACKED) THEN @@ -1026,7 +1017,7 @@ IF (.NOT. GCOVER_PACKED) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK2D,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK2D,KRESP) ELSE WRITE(ILUOUT,*) 'WARNING' WRITE(ILUOUT,*) '-------' @@ -1092,16 +1083,15 @@ END SUBROUTINE READ_SURFX2COV_1COV_MNH !* 0. DECLARATIONS ! ------------ ! +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT -USE MODE_FM -USE MODE_FMREAD USE MODE_MSG USE MODE_READ_SURF_MNH_TOOLS ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & - NIU, NJU, NIB, NJB, NIE, NJE -USE MODD_CONF, ONLY : CPROGRAM +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, NMASK, & + NIU, NJU, NIB, NJB, NIE, NJE +USE MODD_CONF, ONLY: CPROGRAM ! ! ! @@ -1129,12 +1119,12 @@ ILUOUT = TOUT%NLU ! IF (HREC=='DIM_FULL' .AND. ( CPROGRAM=='IDEAL ' .OR. & CPROGRAM=='SPAWN ' .OR. CPROGRAM=='ZOOMPG' ))THEN - CALL IO_READ_FIELD(TPINFILE,'IMAX',IIMAX) - CALL IO_READ_FIELD(TPINFILE,'JMAX',IJMAX) + CALL IO_Field_read(TPINFILE,'IMAX',IIMAX) + CALL IO_Field_read(TPINFILE,'JMAX',IJMAX) KFIELD = IIMAX * IJMAX ELSE CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPEINT,0,'READ_SURFN0_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,KFIELD,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,KFIELD,KRESP) IF (KRESP /=0) THEN WRITE(ILUOUT,*) 'WARNING' @@ -1189,14 +1179,13 @@ END SUBROUTINE READ_SURFN0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG USE MODE_READ_SURF_MNH_TOOLS ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & - NIU, NJU, NIB, NJB, NIE, NJE +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, NMASK, & + NIU, NJU, NIB, NJB, NIE, NJE ! USE MODI_PACK_2D_1D ! @@ -1231,13 +1220,13 @@ ILUOUT = TOUT%NLU IF (HDIR=='-') THEN ! CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPEINT,1,'READ_SURFN1_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,KFIELD,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,KFIELD,KRESP) ! ELSE IF (HDIR=='H') THEN ALLOCATE(IWORK(NIU,NJU)) ! CALL PREPARE_METADATA_READ_SURF(HREC,'XY',4,TYPEINT,2,'READ_SURFN1_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,IWORK,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,IWORK,KRESP) ! IF (KRESP /=0) THEN WRITE(ILUOUT,*) 'WARNING' @@ -1296,16 +1285,16 @@ END SUBROUTINE READ_SURFN1_MNH !* 0. DECLARATIONS ! ------------ ! +USE MODE_FIELD, ONLY: TFIELDDATA, TYPECHAR +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll -USE MODE_FIELD, ONLY : TFIELDDATA,TYPECHAR -USE MODE_FMREAD USE MODE_MSG USE MODE_POS USE MODE_READ_SURF_MNH_TOOLS ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE -USE MODD_CONF, ONLY : LCARTESIAN, CPROGRAM -USE MODD_LUNIT, ONLY : TPGDFILE +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE +USE MODD_CONF, ONLY: LCARTESIAN, CPROGRAM +USE MODD_LUNIT, ONLY: TPGDFILE ! ! IMPLICIT NONE @@ -1381,7 +1370,7 @@ IF (TPINFILE%NMNHVERSION(1)<4 .OR. (TPINFILE%NMNHVERSION(1)==4 .AND. TPINFILE%NM END IF CASE DEFAULT CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPECHAR,0,'READ_SURFC0_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,HFIELD,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,HFIELD,KRESP) ! IF (KRESP /=0) THEN CALL PRINT_MSG(NVERB_FATAL,'IO','READ_SURFC0_MNH',TRIM(TPINFILE%CNAME)//': error when reading article '//TRIM(HREC)// & @@ -1399,7 +1388,7 @@ ELSE IF ( HREC=='GRID_TYPE'.AND. ( & END IF ELSE CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPECHAR,0,'READ_SURFC0_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,HFIELD,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,HFIELD,KRESP) ! IF (KRESP /=0) THEN CALL PRINT_MSG(NVERB_FATAL,'IO','READ_SURFC0_MNH',TRIM(TPINFILE%CNAME)//': error when reading article '//TRIM(HREC)// & @@ -1451,12 +1440,11 @@ END SUBROUTINE READ_SURFC0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & - NIU, NJU, NIB, NJB, NIE, NJE +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, NMASK, & + NIU, NJU, NIB, NJB, NIE, NJE ! -USE MODE_FIELD, ONLY : TFIELDDATA,TYPEINT,TYPELOG -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT,TYPELOG +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG USE MODE_READ_SURF_MNH_TOOLS ! @@ -1493,7 +1481,7 @@ ILUOUT = TOUT%NLU ! IF (HDIR=='-') THEN CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPELOG,1,'READ_SURFL1_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,OFIELD,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,OFIELD,KRESP) IF (KRESP /=0) THEN WRITE(ILUOUT,*) 'WARNING' @@ -1508,7 +1496,7 @@ ELSE IF (HDIR=='H') THEN ! ALLOCATE(IWORK(NIU,NJU)) CALL PREPARE_METADATA_READ_SURF(HREC,'XY',4,TYPEINT,2,'READ_SURFL1_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,IWORK,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,IWORK,KRESP) WHERE (IWORK==1) GWORK = .TRUE. DEALLOCATE(IWORK) ! @@ -1567,13 +1555,12 @@ END SUBROUTINE READ_SURFL1_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY : TFIELDDATA,TYPELOG -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG USE MODE_READ_SURF_MNH_TOOLS ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE ! ! IMPLICIT NONE @@ -1611,7 +1598,7 @@ IF (HREC=='ECOCLIMAP') THEN END IF ! CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPELOG,0,'READ_SURFL0_MNH',TZFIELD) -CALL IO_READ_FIELD(TPINFILE,TZFIELD,OFIELD,KRESP) +CALL IO_Field_read(TPINFILE,TZFIELD,OFIELD,KRESP) HCOMMENT = TZFIELD%CCOMMENT ! IF (KRESP /=0) THEN @@ -1665,13 +1652,12 @@ END SUBROUTINE READ_SURFL0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY : TFIELDDATA,TYPECHAR -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA,TYPECHAR +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE USE MODD_TYPE_DATE +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE ! ! IMPLICIT NONE @@ -1705,7 +1691,7 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFT0_MNH',TRIM(TPINFILE%CNAME)//': readi ILUOUT = TOUT%NLU ! IF (TPINFILE%NMNHVERSION(1)<4 .OR. (TPINFILE%NMNHVERSION(1)==4 .AND. TPINFILE%NMNHVERSION(2)<6)) THEN - CALL IO_READ_FIELD(TPINFILE,'STORAGE_TYPE',YFILETYPE2) + CALL IO_Field_read(TPINFILE,'STORAGE_TYPE',YFILETYPE2) ELSE TZFIELD%CMNHNAME = 'STORAGETYPE' TZFIELD%CSTDNAME = '' @@ -1717,7 +1703,7 @@ ELSE TZFIELD%NTYPE = TYPECHAR TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINFILE,TZFIELD,YFILETYPE40) + CALL IO_Field_read(TPINFILE,TZFIELD,YFILETYPE40) YFILETYPE2 = YFILETYPE40(1:2) END IF IF (YFILETYPE2(1:2)=='PG') THEN @@ -1730,7 +1716,7 @@ IF (YFILETYPE2(1:2)=='PG') THEN RETURN END IF ! -CALL IO_READ_FIELD(TPINFILE,HREC,TZDATETIME,KRESP) +CALL IO_Field_read(TPINFILE,HREC,TZDATETIME,KRESP) ! IF (KRESP /=0) THEN WRITE(ILUOUT,*) 'WARNING' @@ -1789,12 +1775,11 @@ END SUBROUTINE READ_SURFT0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY : TFIELDDATA,TYPECHAR,TYPEINT,TYPEREAL -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA, TYPECHAR, TYPEINT, TYPEREAL +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE ! ! IMPLICIT NONE @@ -1829,7 +1814,7 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFT1_MNH',TRIM(TPINFILE%CNAME)//': readi ILUOUT = TOUT%NLU ! IF (TPINFILE%NMNHVERSION(1)<4 .OR. (TPINFILE%NMNHVERSION(1)==4 .AND. TPINFILE%NMNHVERSION(2)<6)) THEN - CALL IO_READ_FIELD(TPINFILE,'STORAGE_TYPE',YFILETYPE2) + CALL IO_Field_read(TPINFILE,'STORAGE_TYPE',YFILETYPE2) ELSE TZFIELD%CMNHNAME = 'STORAGETYPE' TZFIELD%CSTDNAME = '' @@ -1841,7 +1826,7 @@ ELSE TZFIELD%NTYPE = TYPECHAR TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINFILE,TZFIELD,YFILETYPE40) + CALL IO_Field_read(TPINFILE,TZFIELD,YFILETYPE40) YFILETYPE2 = YFILETYPE40(1:2) END IF !IF (YFILETYPE2(1:2)=='PG') THEN @@ -1865,7 +1850,7 @@ TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. ! -CALL IO_READ_FIELD(TPINFILE,TZFIELD,ITDATE(:,:),KRESP) +CALL IO_Field_read(TPINFILE,TZFIELD,ITDATE(:,:),KRESP) ! KYEAR(:) = ITDATE(1,:) KMONTH(:) = ITDATE(2,:) @@ -1890,7 +1875,7 @@ TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. ! -CALL IO_READ_FIELD(TPINFILE,TZFIELD,PTIME(:),KRESP) +CALL IO_Field_read(TPINFILE,TZFIELD,PTIME(:),KRESP) ! IF (KRESP /=0) THEN WRITE(ILUOUT,*) 'WARNING' diff --git a/src/MNH/read_ver_grid.f90 b/src/MNH/read_ver_grid.f90 index 42183bf94..e9d83fe22 100644 --- a/src/MNH/read_ver_grid.f90 +++ b/src/MNH/read_ver_grid.f90 @@ -9,7 +9,7 @@ INTERFACE SUBROUTINE READ_VER_GRID(TPPRE_REAL1,PZHAT,OSLEVE,PLEN1,PLEN2) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! TYPE(TFILEDATA),POINTER, INTENT(IN) :: TPPRE_REAL1! namelist file REAL, DIMENSION(:), OPTIONAL, INTENT(IN) :: PZHAT ! vertival grid of input fmfile @@ -104,11 +104,10 @@ END MODULE MODI_READ_VER_GRID USE MODD_CONF ! declaration modules USE MODD_DIM_n, NKMAX_n=>NKMAX USE MODD_GRID_n, LSLEVE_n=>LSLEVE, XLEN1_n=>XLEN1, XLEN2_n=>XLEN2 -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_LUNIT USE MODD_PARAMETERS ! -USE MODE_FM USE MODE_MSG USE MODE_POS ! diff --git a/src/MNH/rel_forcingn.f90 b/src/MNH/rel_forcingn.f90 index b85cff608..e057e1223 100644 --- a/src/MNH/rel_forcingn.f90 +++ b/src/MNH/rel_forcingn.f90 @@ -109,7 +109,6 @@ USE MODD_RELFRC_n ! Modules for time evolving advfrc USE MODD_TIME ! USE MODE_DATETIME -USE MODE_IO_ll ! USE MODI_BUDGET USE MODI_SHUMAN diff --git a/src/MNH/reset_exseg.f90 b/src/MNH/reset_exseg.f90 index ca4903a6d..5c6a80d42 100644 --- a/src/MNH/reset_exseg.f90 +++ b/src/MNH/reset_exseg.f90 @@ -60,17 +60,15 @@ END MODULE MODI_RESET_EXSEG ! !* 0. DECLARATIONS ! ------------ -USE MODE_FM, ONLY : IO_FILE_OPEN_ll,IO_FILE_CLOSE_ll -USE MODE_FMREAD -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME +USE MODE_IO_FILE, ONLY : IO_File_open,IO_File_close +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_find_byname USE MODE_POS ! USE MODD_DIAG_FLAG USE MODD_CH_MNHC_n, ONLY: LUSECHEM USE MODD_CONF_n, ONLY: LUSERV USE MODD_GET_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAM_n, ONLY: CDCONV, CRAD USE MODN_PARAM_KAFR_n USE MODN_PARAM_RAD_n @@ -97,8 +95,8 @@ TYPE(TFILEDATA),POINTER :: TZNMLFILE! Namelist file ! TZNMLFILE => NULL() ! -CALL IO_FILE_FIND_BYNAME('DIAG1.nam',TZNMLFILE,IRESP) -CALL IO_FILE_OPEN_ll(TZNMLFILE) +CALL IO_File_find_byname('DIAG1.nam',TZNMLFILE,IRESP) +CALL IO_File_open(TZNMLFILE) ILUNAM = TZNMLFILE%NLU ! !------------------------------------------------------------------------------- @@ -186,6 +184,6 @@ PRINT*,' ' ! !------------------------------------------------------------------------------- ! -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_File_close(TZNMLFILE) ! END SUBROUTINE RESET_EXSEG diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90 index 7713aeb71..67ba3a572 100644 --- a/src/MNH/resolved_cloud.f90 +++ b/src/MNH/resolved_cloud.f90 @@ -25,7 +25,7 @@ INTERFACE PINDEP, PSUPSAT, PNACT, PNPRO,PSSPRO, & PSEA,PTOWN ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! CHARACTER(LEN=4), INTENT(IN) :: HCLOUD ! kind of cloud CHARACTER(LEN=4), INTENT(IN) :: HACTCCN ! kind of CCN activation scheme @@ -275,7 +275,7 @@ USE MODD_CH_AEROSOL, ONLY: LORILAM USE MODD_DUST, ONLY: LDUST USE MODD_CST, ONLY: XCI, XCL, XCPD, XCPV, XLSTT, XLVTT, XMNH_TINY, XP00, XRD, XRHOLW, XTT USE MODD_DUST , ONLY: LDUST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_NSV, ONLY: NSV_C1R3END, NSV_C2R2BEG, NSV_C2R2END, & NSV_LIMA_BEG, NSV_LIMA_END, NSV_LIMA_CCN_FREE, NSV_LIMA_IFN_FREE, & NSV_LIMA_NC, NSV_LIMA_NI, NSV_LIMA_NR diff --git a/src/MNH/resolved_elecn.f90 b/src/MNH/resolved_elecn.f90 index aaa23d218..f1d9b42f9 100644 --- a/src/MNH/resolved_elecn.f90 +++ b/src/MNH/resolved_elecn.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ########################### MODULE MODI_RESOLVED_ELEC_n ! ########################### @@ -175,15 +176,15 @@ END MODULE MODI_RESOLVED_ELEC_n ! ------------ ! USE MODE_ELEC_ll -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll,IO_FILE_OPEN_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST,IO_FILE_FIND_BYNAME +USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list, IO_File_find_byname USE MODE_ll ! USE MODD_METRICS_n, ONLY : XDXX, XDYY, XDZX, XDZY, XDZZ USE MODD_FIELD_n, ONLY : XRSVS USE MODD_CONF, ONLY : L1D, L2D, CEXP USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS, ONLY : JPVEXT USE MODD_ELEC_DESCR USE MODD_ELEC_n @@ -846,8 +847,8 @@ ENDIF IF (KTCOUNT==1 .AND. IPROC==0) THEN IF (LFLASH_GEOM) THEN YASCFILE = CEXP//"_fgeom_diag.asc" - CALL IO_FILE_ADD2LIST(TZFILE_FGEOM_DIAG,YASCFILE,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE_FGEOM_DIAG,HPOSITION='APPEND',HSTATUS='NEW') + CALL IO_File_add2list(TZFILE_FGEOM_DIAG,YASCFILE,'TXT','WRITE') + CALL IO_File_open(TZFILE_FGEOM_DIAG,HPOSITION='APPEND',HSTATUS='NEW') ILU = TZFILE_FGEOM_DIAG%NLU WRITE (UNIT=ILU, FMT='(A)') '--------------------------------------------------------' WRITE (UNIT=ILU, FMT='(A)') '*FLASH CHARACTERISTICS FROM FLASH_GEOM_ELEC*' @@ -870,8 +871,8 @@ IF (KTCOUNT==1 .AND. IPROC==0) THEN ! IF (LSAVE_COORD) THEN YASCFILE = CEXP//"_fgeom_coord.asc" - CALL IO_FILE_ADD2LIST(TZFILE_FGEOM_COORD,YASCFILE,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE_FGEOM_COORD,HPOSITION='APPEND',HSTATUS='NEW') + CALL IO_File_add2list(TZFILE_FGEOM_COORD,YASCFILE,'TXT','WRITE') + CALL IO_File_open(TZFILE_FGEOM_COORD,HPOSITION='APPEND',HSTATUS='NEW') ILU = TZFILE_FGEOM_COORD%NLU WRITE (UNIT=ILU,FMT='(A)') '------------------------------------------' WRITE (UNIT=ILU,FMT='(A)') '*****FLASH COORD. FROM FLASH_GEOM_ELEC****' @@ -888,8 +889,8 @@ IF (KTCOUNT==1 .AND. IPROC==0) THEN ! IF (LSERIES_ELEC) THEN YASCFILE = CEXP//"_series_cloud_elec.asc" - CALL IO_FILE_ADD2LIST(TZFILE_SERIES_CLOUD_ELEC,YASCFILE,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE_SERIES_CLOUD_ELEC,HPOSITION='APPEND',HSTATUS='NEW') + CALL IO_File_add2list(TZFILE_SERIES_CLOUD_ELEC,YASCFILE,'TXT','WRITE') + CALL IO_File_open(TZFILE_SERIES_CLOUD_ELEC,HPOSITION='APPEND',HSTATUS='NEW') ILU = TZFILE_SERIES_CLOUD_ELEC%NLU WRITE (UNIT=ILU, FMT='(A)') '----------------------------------------------------' WRITE (UNIT=ILU, FMT='(A)') '********* RESULTS FROM of LSERIES_ELEC *************' @@ -935,8 +936,8 @@ IF (LFLASH_GEOM .AND. LLMA) THEN ! IF (GLMA_FILE) THEN IF(CLMA_FILE(1:5) /= "BEGIN") THEN ! close previous file if exists - CALL IO_FILE_FIND_BYNAME(CLMA_FILE,TZFILE_LMA,IERR) - CALL IO_FILE_CLOSE_ll(TZFILE_LMA) + CALL IO_File_find_byname(CLMA_FILE,TZFILE_LMA,IERR) + CALL IO_File_close(TZFILE_LMA) TZFILE_LMA => NULL() ENDIF ! @@ -949,8 +950,8 @@ IF (LFLASH_GEOM .AND. LLMA) THEN CLMA_FILE = CEXP//"_SIMLMA_"//YNAME//".dat" ! IF ( IPROC .EQ. 0 ) THEN - CALL IO_FILE_ADD2LIST(TZFILE_LMA,CLMA_FILE,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE_LMA,HPOSITION='APPEND',HSTATUS='NEW') + CALL IO_File_add2list(TZFILE_LMA,CLMA_FILE,'TXT','WRITE') + CALL IO_File_open(TZFILE_LMA,HPOSITION='APPEND',HSTATUS='NEW') ILU = TZFILE_LMA%NLU WRITE (UNIT=ILU,FMT='(A)') '----------------------------------------' WRITE (UNIT=ILU,FMT='(A)') '*** FLASH COORD. FROM LMA SIMULATOR ****' @@ -1026,10 +1027,10 @@ END IF ! ! Close Ascii Files if KTCOUNT = NSTOP IF (OEXIT .AND. IPROC==0) THEN - IF (LFLASH_GEOM) CALL IO_FILE_CLOSE_ll(TZFILE_FGEOM_DIAG) - IF(LFLASH_GEOM .AND. LSAVE_COORD) CALL IO_FILE_CLOSE_ll(TZFILE_FGEOM_COORD) - IF (LSERIES_ELEC) CALL IO_FILE_CLOSE_ll(TZFILE_SERIES_CLOUD_ELEC) - IF (LFLASH_GEOM .AND. LLMA) CALL IO_FILE_CLOSE_ll(TZFILE_LMA) + IF (LFLASH_GEOM) CALL IO_File_close(TZFILE_FGEOM_DIAG) + IF(LFLASH_GEOM .AND. LSAVE_COORD) CALL IO_File_close(TZFILE_FGEOM_COORD) + IF (LSERIES_ELEC) CALL IO_File_close(TZFILE_SERIES_CLOUD_ELEC) + IF (LFLASH_GEOM .AND. LLMA) CALL IO_File_close(TZFILE_LMA) ENDIF ! ! diff --git a/src/MNH/retrieve2_nest_infon.f90 b/src/MNH/retrieve2_nest_infon.f90 index 8ab5618e7..1e3b0776c 100644 --- a/src/MNH/retrieve2_nest_infon.f90 +++ b/src/MNH/retrieve2_nest_infon.f90 @@ -100,7 +100,7 @@ USE MODD_DIM_ll, ONLY: NXOR_ALL, NXEND_ALL, NYOR_ALL, NYEND_ALL, NIMAX_TMP USE MODD_DIM_n, ONLY: NIMAX, NJMAX USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: ISNPROC, ISP +USE MODD_IO, ONLY: ISNPROC, ISP USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_MPIF USE MODD_PARAMETERS diff --git a/src/MNH/series_cloud_elec.f90 b/src/MNH/series_cloud_elec.f90 index f12d2fdcc..6bd26c192 100644 --- a/src/MNH/series_cloud_elec.f90 +++ b/src/MNH/series_cloud_elec.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ############################# MODULE MODI_SERIES_CLOUD_ELEC ! ############################# @@ -14,7 +15,7 @@ INTERFACE TPFILE_SERIES_CLOUD_ELEC, & PINPRR ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop counter ! @@ -88,7 +89,7 @@ END MODULE MODI_SERIES_CLOUD_ELEC ! USE MODD_CONF, ONLY : CEXP USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_REF USE MODD_PARAMETERS USE MODD_ELEC_DESCR diff --git a/src/MNH/seriesn.f90 b/src/MNH/seriesn.f90 index 9fff8dfb8..c592e4b54 100644 --- a/src/MNH/seriesn.f90 +++ b/src/MNH/seriesn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2002-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -63,7 +63,6 @@ USE MODD_TIME_n, ONLY: TDTCUR USE MODI_GET_SURF_VAR_n ! USE MODE_DATETIME -USE MODE_IO_ll USE MODE_ll USE MODE_MSG ! diff --git a/src/MNH/set_advfrc.f90 b/src/MNH/set_advfrc.f90 index fbdd5d92a..b931fe38b 100644 --- a/src/MNH/set_advfrc.f90 +++ b/src/MNH/set_advfrc.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- MODULE MODI_SETADVFRC @@ -10,7 +10,7 @@ INTERFACE ! SUBROUTINE SET_ADVFRC(TPEXPREFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file ! @@ -85,13 +85,12 @@ USE MODD_DIM_n USE MODD_FRC USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT USE MODD_REF ! USE MODE_DATETIME -USE MODE_IO_ll USE MODE_MSG USE MODE_THERMO ! diff --git a/src/MNH/set_bogus_vortex.f90 b/src/MNH/set_bogus_vortex.f90 index 28ae29f47..4cc56703d 100644 --- a/src/MNH/set_bogus_vortex.f90 +++ b/src/MNH/set_bogus_vortex.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2001-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2001-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################ @@ -73,9 +73,8 @@ END MODULE MODI_SET_BOGUS_VORTEX !* 0. DECLARATIONS ! ------------ ! -USE MODE_ll -USE MODE_IO_ll USE MODE_GRIDPROJ +USE MODE_ll USE MODE_MSG ! USE MODD_HURR_CONF, ONLY: XLATBOG,XLONBOG,XVTMAXSURF,XRADWINDSURF, & diff --git a/src/MNH/set_conc_lima.f90 b/src/MNH/set_conc_lima.f90 index c111ac643..6f9e6c6ad 100644 --- a/src/MNH/set_conc_lima.f90 +++ b/src/MNH/set_conc_lima.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2000-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -91,9 +91,6 @@ USE MODD_NSV, ONLY : NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_ACTI, NS USE MODD_CST, ONLY : XPI, XRHOLW, XRHOLI USE MODD_CONF, ONLY : NVERB USE MODD_LUNIT_n, ONLY : TLUOUT - -! -USE MODE_FM ! IMPLICIT NONE ! diff --git a/src/MNH/set_cstn.f90 b/src/MNH/set_cstn.f90 index a75a5d7dd..f51497f74 100644 --- a/src/MNH/set_cstn.f90 +++ b/src/MNH/set_cstn.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE SET_CSTN(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! outpput data file TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file @@ -172,11 +172,10 @@ END MODULE MODI_SET_CSTN USE MODD_CONF USE MODD_CST USE MODD_GRID_n -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS, ONLY: JPHEXT ! -USE MODE_FM USE MODE_THERMO USE MODE_ll USE MODE_MPPDB diff --git a/src/MNH/set_frc.f90 b/src/MNH/set_frc.f90 index 539bd74ea..8744c8d9d 100644 --- a/src/MNH/set_frc.f90 +++ b/src/MNH/set_frc.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE SET_FRC(TPEXPREFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file ! @@ -107,14 +107,12 @@ USE MODD_GRID_n USE MODD_CONF USE MODD_FRC USE MODD_GRID -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_REF USE MODD_PARAMETERS ! USE MODE_DATETIME USE MODE_THERMO -USE MODE_FM -USE MODE_IO_ll USE MODE_MSG ! USE MODI_HEIGHT_PRESS ! interface modules diff --git a/src/MNH/set_grid.f90 b/src/MNH/set_grid.f90 index 0880b974c..6bd63a507 100644 --- a/src/MNH/set_grid.f90 +++ b/src/MNH/set_grid.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -24,7 +24,7 @@ INTERFACE KBAK_NUMB,KOUT_NUMB,TPBACKUPN,TPOUTPUTN ) ! USE MODD_TYPE_DATE -USE MODD_IO_ll, ONLY: TFILEDATA,TOUTBAK +USE MODD_IO, ONLY: TFILEDATA,TOUTBAK ! INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file @@ -237,19 +237,18 @@ USE MODD_CONF USE MODD_CONF_n USE MODD_DYN USE MODD_GRID -USE MODD_IO_ll, ONLY: TFILEDATA,TOUTBAK +USE MODD_IO, ONLY: TFILEDATA,TOUTBAK USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_OUT_n, ONLY: OUT_MODEL USE MODD_PARAMETERS USE MODD_NESTING ! -USE MODE_FIELD, ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA, TFIELDLIST, FIND_FIELD_ID_FROM_MNHNAME USE MODE_GATHER_ll USE MODE_GRIDCART USE MODE_GRIDPROJ -USE MODE_IO_MANAGE_STRUCT +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_MANAGE_STRUCT, only: IO_Bakout_struct_prepare USE MODE_ll USE MODE_TIME ! @@ -343,43 +342,43 @@ TYPE(TFIELDDATA) :: TZFIELD ! !* 1.1 Spatial grid ! -CALL IO_READ_FIELD(TPINIFILE,'STORAGE_TYPE',CSTORAGE_TYPE,IRESP) +CALL IO_Field_read(TPINIFILE,'STORAGE_TYPE',CSTORAGE_TYPE,IRESP) IF (IRESP /= 0) CSTORAGE_TYPE='TT' ! IF (KMI == 1) THEN ! this parameter is also useful in the cartesian to ! compute the sun position for the radiation scheme - CALL IO_READ_FIELD(TPINIFILE,'LON0',XLON0) + CALL IO_Field_read(TPINIFILE,'LON0',XLON0) ! ! this parameter is also useful in the cartesian to ! compute the Coriolis parameter - CALL IO_READ_FIELD(TPINIFILE,'LAT0',XLAT0) + CALL IO_Field_read(TPINIFILE,'LAT0',XLAT0) ! ! this parameter is also useful in the cartesian to ! rotate the simulatin domain - CALL IO_READ_FIELD(TPINIFILE,'BETA',XBETA) + CALL IO_Field_read(TPINIFILE,'BETA',XBETA) END IF ! -CALL IO_READ_FIELD(TPINIFILE,'XHAT',PXHAT) -CALL IO_READ_FIELD(TPINIFILE,'YHAT',PYHAT) +CALL IO_Field_read(TPINIFILE,'XHAT',PXHAT) +CALL IO_Field_read(TPINIFILE,'YHAT',PYHAT) ! IF (.NOT.LCARTESIAN) THEN - CALL IO_READ_FIELD(TPINIFILE,'RPK',XRPK) + CALL IO_Field_read(TPINIFILE,'RPK',XRPK) ! IF ( (TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFILE%NMNHVERSION(2)>5) .OR. TPINIFILE%NMNHVERSION(1)>4 ) THEN - CALL IO_READ_FIELD(TPINIFILE,'LONORI',PLONORI) - CALL IO_READ_FIELD(TPINIFILE,'LATORI',PLATORI) + CALL IO_Field_read(TPINIFILE,'LONORI',PLONORI) + CALL IO_Field_read(TPINIFILE,'LATORI',PLATORI) ! ELSE CALL FIND_FIELD_ID_FROM_MNHNAME('LONORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LONOR' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PLONORI) + CALL IO_Field_read(TPINIFILE,TZFIELD,PLONORI) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LATORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LATOR' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PLATORI) + CALL IO_Field_read(TPINIFILE,TZFIELD,PLATORI) ! ALLOCATE(ZXHAT_ll(KIMAX_ll+ 2 * JPHEXT),ZYHAT_ll(KJMAX_ll+2 * JPHEXT)) CALL GATHERALL_FIELD_ll('XX',PXHAT,ZXHAT_ll,IRESP) !// @@ -394,9 +393,9 @@ IF (.NOT.LCARTESIAN) THEN ! END IF -CALL IO_READ_FIELD(TPINIFILE,'ZS',PZS) -CALL IO_READ_FIELD(TPINIFILE,'ZHAT',PZHAT) -CALL IO_READ_FIELD(TPINIFILE,'ZTOP',PZTOP) +CALL IO_Field_read(TPINIFILE,'ZS',PZS) +CALL IO_Field_read(TPINIFILE,'ZHAT',PZHAT) +CALL IO_Field_read(TPINIFILE,'ZTOP',PZTOP) ! CALL DEFAULT_SLEVE(OSLEVE,PLEN1,PLEN2) ! @@ -404,25 +403,25 @@ IF ( TPINIFILE%NMNHVERSION(1)<4 .OR. (TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFIL PZSMT = PZS OSLEVE = .FALSE. ELSE - CALL IO_READ_FIELD(TPINIFILE,'ZSMT',PZSMT) - CALL IO_READ_FIELD(TPINIFILE,'SLEVE',OSLEVE) + CALL IO_Field_read(TPINIFILE,'ZSMT',PZSMT) + CALL IO_Field_read(TPINIFILE,'SLEVE',OSLEVE) END IF ! IF (OSLEVE) THEN - CALL IO_READ_FIELD(TPINIFILE,'LEN1',PLEN1) - CALL IO_READ_FIELD(TPINIFILE,'LEN2',PLEN2) + CALL IO_Field_read(TPINIFILE,'LEN1',PLEN1) + CALL IO_Field_read(TPINIFILE,'LEN2',PLEN2) END IF ! !* 1.2 Temporal grid ! -CALL IO_READ_FIELD(TPINIFILE,'DTMOD',TPDTMOD) -CALL IO_READ_FIELD(TPINIFILE,'DTCUR',TPDTCUR) +CALL IO_Field_read(TPINIFILE,'DTMOD',TPDTMOD) +CALL IO_Field_read(TPINIFILE,'DTCUR',TPDTCUR) ! IF (KMI == 1) THEN -CALL IO_READ_FIELD(TPINIFILE,'DTEXP',TDTEXP) +CALL IO_Field_read(TPINIFILE,'DTEXP',TDTEXP) END IF ! -CALL IO_READ_FIELD(TPINIFILE,'DTSEG',TDTSEG) +CALL IO_Field_read(TPINIFILE,'DTSEG',TDTSEG) ! !------------------------------------------------------------------------------- ! @@ -453,7 +452,7 @@ KSTOP = NINT(PSEGLEN/PTSTEP) !* 2.3 Temporal grid - outputs managment ! ! The output/backups times have been read only by model 1 -IF (CPROGRAM == 'MESONH' .AND. KMI == 1) CALL IO_PREPARE_BAKOUT_STRUCT(ISUP,PTSTEP,PSEGLEN) +IF (CPROGRAM == 'MESONH' .AND. KMI == 1) CALL IO_Bakout_struct_prepare(ISUP,PTSTEP,PSEGLEN) ! KBAK_NUMB => OUT_MODEL(KMI)%NBAK_NUMB KOUT_NUMB => OUT_MODEL(KMI)%NOUT_NUMB diff --git a/src/MNH/set_mass.f90 b/src/MNH/set_mass.f90 index afcc068fe..e66add532 100644 --- a/src/MNH/set_mass.f90 +++ b/src/MNH/set_mass.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2010-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ######################## MODULE MODI_SET_MASS @@ -12,7 +12,7 @@ SUBROUTINE SET_MASS(TPFILE,OPROFILE_IN_PROC, PZFLUX_PROFILE, KILOC,KJLOC,PZS_MX,PZMASS_MX,PZFLUX_MX,PPGROUND, & PTHVM,PMRM,PUW,PVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,PMRCM,PMRIM,PCORIOZ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics LOGICAL, INTENT(IN) :: OPROFILE_IN_PROC ! initialization profile in current processor @@ -124,7 +124,7 @@ SUBROUTINE SET_MASS(TPFILE,OPROFILE_IN_PROC, PZFLUX_PROFILE, ! use des modules USE MODD_GRID_n ! declarative modules USE MODD_GRID -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_CONF USE MODD_CONF_n USE MODD_FIELD_n diff --git a/src/MNH/set_perturb.f90 b/src/MNH/set_perturb.f90 index 1689ac4b1..40906e759 100644 --- a/src/MNH/set_perturb.f90 +++ b/src/MNH/set_perturb.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE SET_PERTURB(TPEXPREFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file ! @@ -108,14 +108,13 @@ USE MODD_CONF USE MODD_DIM_n USE MODD_FIELD_n USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LBC_n USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_LSFIELD_n USE MODD_PARAMETERS USE MODD_REF_n ! -USE MODE_FM USE MODE_GATHER_ll USE MODE_ll USE MODE_MPPDB diff --git a/src/MNH/set_ref.f90 b/src/MNH/set_ref.f90 index f666cb6f1..74890f3e8 100644 --- a/src/MNH/set_ref.f90 +++ b/src/MNH/set_ref.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !################### @@ -14,7 +14,7 @@ INTERFACE PREFMASS,PMASS_O_PHI0,PLINMASS, & PRHODREF,PTHVREF,PRVREF,PEXNREF,PRHODJ ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file @@ -155,12 +155,12 @@ END MODULE MODI_SET_REF ! ------------ USE MODD_CONF USE MODD_CST -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS USE MODD_REF ! -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll USE MODE_MPPDB USE MODE_REPRO_SUM @@ -255,9 +255,9 @@ ILUOUT = TLUOUT%NLU ! ---------------------------------------------------- ! IF (KMI == 1) THEN - CALL IO_READ_FIELD(TPINIFILE,'RHOREFZ',XRHODREFZ) - CALL IO_READ_FIELD(TPINIFILE,'THVREFZ',XTHVREFZ) - CALL IO_READ_FIELD(TPINIFILE,'EXNTOP', XEXNTOP) + CALL IO_Field_read(TPINIFILE,'RHOREFZ',XRHODREFZ) + CALL IO_Field_read(TPINIFILE,'THVREFZ',XTHVREFZ) + CALL IO_Field_read(TPINIFILE,'EXNTOP', XEXNTOP) ! LNEUTRAL=.FALSE. IF (MAXVAL(XTHVREFZ(IKB:IKE))-MINVAL(XTHVREFZ(IKB:IKE)) < 1.E-10) LNEUTRAL=.TRUE. diff --git a/src/MNH/set_relfrc.f90 b/src/MNH/set_relfrc.f90 index a87a28a7d..7c7fc25b1 100644 --- a/src/MNH/set_relfrc.f90 +++ b/src/MNH/set_relfrc.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- MODULE MODI_SET_RELFRC @@ -10,7 +10,7 @@ INTERFACE ! SUBROUTINE SET_RELFRC(TPEXPREFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file ! @@ -83,15 +83,13 @@ USE MODD_CST USE MODD_FRC USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n USE MODD_PARAMETERS, ONLY: JPHEXT USE MODD_REF USE MODD_RELFRC_n ! USE MODE_DATETIME -USE MODE_FM -USE MODE_IO_ll USE MODE_MSG USE MODE_THERMO ! diff --git a/src/MNH/set_rsou.f90 b/src/MNH/set_rsou.f90 index 509989b14..6c38994c6 100644 --- a/src/MNH/set_rsou.f90 +++ b/src/MNH/set_rsou.f90 @@ -12,7 +12,7 @@ INTERFACE SUBROUTINE SET_RSOU(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,& ORMV_BL,PJ,OSHIFT,PCORIOZ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! outpput data file TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file @@ -254,13 +254,11 @@ USE MODD_CST USE MODD_FIELD_n USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n USE MODD_PARAMETERS, ONLY: JPHEXT USE MODD_PARAM_n, ONLY: CCLOUD -! -USE MODE_FM -USE MODE_IO_ll +! USE MODE_ll USE MODE_MSG USE MODE_THERMO diff --git a/src/MNH/set_subdomain.f90 b/src/MNH/set_subdomain.f90 index 5eb20fb6d..ba8bdd4f2 100644 --- a/src/MNH/set_subdomain.f90 +++ b/src/MNH/set_subdomain.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE SET_SUBDOMAIN(TPNMLFILE,TPATMFILE,KXOR_DAD,KYOR_DAD, & KXOR,KYOR,KDXRATIO,KDYRATIO ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPNMLFILE ! namelist file TYPE(TFILEDATA), INTENT(IN) :: TPATMFILE ! atmospheric MNH file @@ -85,23 +85,20 @@ END MODULE MODI_SET_SUBDOMAIN !* 0. DECLARATIONS ! ------------ ! -USE MODE_GRIDPROJ ! executive module -USE MODE_POS -USE MODE_FM -USE MODE_IO_ll -USE MODE_MSG -! -USE MODD_CONF ! declaration modules -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT +USE MODD_CONF +USE MODD_DIM_n, ONLY: NIMAX_n=>NIMAX,NJMAX_n=>NJMAX USE MODD_GRID USE MODD_GRID_n -USE MODD_DIM_n, ONLY: NIMAX_n=>NIMAX,NJMAX_n=>NJMAX -USE MODD_PGDGRID -USE MODD_PGDDIM +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT USE MODD_PARAMETERS +USE MODD_PGDDIM +USE MODD_PGDGRID ! -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_GRIDPROJ +USE MODE_MSG +USE MODE_POS ! IMPLICIT NONE ! @@ -222,24 +219,24 @@ WRITE(ILUOUT0,*) 'given or computed NYOR = ',NYOR !* 4.1 TEST if FATHER of atmospheric MNH file exists: ! --------------------------------------------- ! -CALL IO_READ_FIELD(TPATMFILE,'DAD_NAME',YDADFILE,IRESP) +CALL IO_Field_read(TPATMFILE,'DAD_NAME',YDADFILE,IRESP) IF ( IRESP /= 0 ) YDADFILE=' ' ! IF (LEN_TRIM(YDADFILE)/=0) THEN - CALL IO_READ_FIELD(TPATMFILE,'DXRATIO',KDXRATIO,IRESP) + CALL IO_Field_read(TPATMFILE,'DXRATIO',KDXRATIO,IRESP) IF ( IRESP /= 0 .OR. KDXRATIO == 0 ) THEN KDXRATIO=1 END IF ! - CALL IO_READ_FIELD(TPATMFILE,'DYRATIO',KDYRATIO,IRESP) + CALL IO_Field_read(TPATMFILE,'DYRATIO',KDYRATIO,IRESP) IF ( IRESP /= 0 .OR. KDYRATIO == 0 ) THEN KDYRATIO=1 END IF ! - CALL IO_READ_FIELD(TPATMFILE,'XOR',KXOR,IRESP) + CALL IO_Field_read(TPATMFILE,'XOR',KXOR,IRESP) IF ( IRESP /= 0 ) KXOR_DAD=1 ! - CALL IO_READ_FIELD(TPATMFILE,'YOR',KYOR,IRESP) + CALL IO_Field_read(TPATMFILE,'YOR',KYOR,IRESP) IF ( IRESP /= 0 ) KYOR_DAD=1 END IF ! diff --git a/src/MNH/shallow_mf_pack.f90 b/src/MNH/shallow_mf_pack.f90 index ba519f8e3..7ffbbb145 100644 --- a/src/MNH/shallow_mf_pack.f90 +++ b/src/MNH/shallow_mf_pack.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2010-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ###################### MODULE MODI_SHALLOW_MF_PACK @@ -21,7 +21,7 @@ INTERFACE PSIGMF,PRC_MF,PRI_MF,PCF_MF,PFLXZTHVMF ) ! ################################################################# !! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! !* 1.1 Declaration of Arguments ! @@ -123,14 +123,14 @@ END MODULE MODI_SHALLOW_MF_PACK USE MODD_PARAMETERS USE MODD_CST USE MODD_CONF -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_NSV -USE MODD_PARAM_ICE, ONLY : CFRAC_ICE_SHALLOW_MF +USE MODD_PARAM_ICE, ONLY: CFRAC_ICE_SHALLOW_MF USE MODD_PARAM_MFSHALL_n USE MODD_BUDGET -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODI_SHALLOW_MF USE MODI_BUDGET @@ -390,7 +390,7 @@ IF ( OMF_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK) ! ! stores the conservative mixing ratio vertical flux ZWORK(:,:,:)=RESHAPE(ZFLXZRMF(:,:),(/ IIU,IJU,IKU /) ) @@ -404,7 +404,7 @@ IF ( OMF_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK) ! ! stores the theta_v vertical flux TZFIELD%CMNHNAME = 'MF_THVW_FLX' @@ -417,7 +417,7 @@ IF ( OMF_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PFLXZTHVMF) + CALL IO_Field_write(TPFILE,TZFIELD,PFLXZTHVMF) ! IF (OMIXUV) THEN ! stores the U momentum vertical flux @@ -432,7 +432,7 @@ IF ( OMF_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK) ! ! stores the V momentum vertical flux ZWORK(:,:,:)=RESHAPE(ZFLXZVMF(:,:),(/ IIU,IJU,IKU /) ) @@ -446,7 +446,7 @@ IF ( OMF_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK) ! END IF END IF diff --git a/src/MNH/spawn_field2.f90 b/src/MNH/spawn_field2.f90 index 69346e7ba..8c6748d5a 100644 --- a/src/MNH/spawn_field2.f90 +++ b/src/MNH/spawn_field2.f90 @@ -18,7 +18,7 @@ INTERFACE KIB2,KJB2,KIE2,KJE2, & KIB1,KJB1,KIE1,KJE1 ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KXOR,KXEND ! horizontal position (i,j) of the ORigin and END INTEGER, INTENT(IN) :: KYOR,KYEND ! of the model 2 domain, relative to model 1 @@ -162,29 +162,29 @@ USE MODD_CH_AEROSOL, ONLY: CAERONAMES USE MODD_CH_M9_n, ONLY: CNAMES, CICNAMES USE MODD_CONF USE MODD_CST -USE MODD_CONF_n, ONLY: CONF_MODEL +USE MODD_CONF_n, ONLY: CONF_MODEL USE MODD_DUST, ONLY: CDUSTNAMES USE MODD_ELEC_DESCR, ONLY: CELECNAMES -USE MODD_FIELD_n, ONLY: FIELD_MODEL -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_FIELD_n, ONLY: FIELD_MODEL +USE MODD_IO, ONLY: TFILEDATA USE MODD_LATZ_EDFLX -USE MODD_LBC_n, ONLY: LBC_MODEL +USE MODD_LBC_n, ONLY: LBC_MODEL USE MODD_LG, ONLY: CLGNAMES -USE MODD_LUNIT_n, ONLY: LUNIT_MODEL,TLUOUT +USE MODD_LUNIT_n, ONLY: LUNIT_MODEL,TLUOUT USE MODD_NSV -USE MODD_REF_n, ONLY: REF_MODEL +USE MODD_REF_n, ONLY: REF_MODEL USE MODD_PARAMETERS -USE MODD_PARAM_LIMA , ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM, NINDICE_CCN_IMM,& - LSCAV, LAERO_MASS, LHHONI -USE MODD_PARAM_LIMA_COLD, ONLY : CLIMA_COLD_NAMES -USE MODD_PARAM_LIMA_WARM, ONLY : CLIMA_WARM_NAMES, CAERO_MASS +USE MODD_PARAM_LIMA, ONLY: NMOD_CCN, NMOD_IFN, NMOD_IMM, NINDICE_CCN_IMM,& + LSCAV, LAERO_MASS, LHHONI +USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES +USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES, CAERO_MASS USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES USE MODD_RELFRC_n USE MODD_SALT, ONLY: CSALTNAMES USE MODD_SPAWN ! USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll USE MODE_MODELN_HANDLER USE MODE_MPPDB @@ -719,11 +719,11 @@ IF (PRESENT(TPSONFILE)) THEN ! !variables which always exist ! - CALL IO_READ_FIELD(TPSONFILE,'UT',ZWORK3D) ! U wind component at time t + CALL IO_Field_read(TPSONFILE,'UT',ZWORK3D) ! U wind component at time t PUT(KIB2:KIE2,KJB2:KJE2,:) = ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) - CALL IO_READ_FIELD(TPSONFILE,'VT',ZWORK3D) ! V wind component at time t + CALL IO_Field_read(TPSONFILE,'VT',ZWORK3D) ! V wind component at time t PVT(KIB2:KIE2,KJB2:KJE2,:) = ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) - CALL IO_READ_FIELD(TPSONFILE,'WT',ZWORK3D) ! W wind component at time t + CALL IO_Field_read(TPSONFILE,'WT',ZWORK3D) ! W wind component at time t PWT(KIB2:KIE2,KJB2:KJE2,:) = ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) ! ! moist variables @@ -731,37 +731,37 @@ IF (PRESENT(TPSONFILE)) THEN IRR=1 IF (IRR<=CONF_MODEL(1)%NRR) THEN GUSERV=.TRUE. - CALL IO_READ_FIELD(TPSONFILE,'RVT',ZWORK3D,IRESP) ! Vapor at time t + CALL IO_Field_read(TPSONFILE,'RVT',ZWORK3D,IRESP) ! Vapor at time t IF(IRESP==0) ZRT1(:,:,:,IRR)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) IF(IRESP==0) IRR=IRR+1 END IF IF (IRR<=CONF_MODEL(1)%NRR) THEN - CALL IO_READ_FIELD(TPSONFILE,'RCT',ZWORK3D,IRESP) ! Cloud at time t + CALL IO_Field_read(TPSONFILE,'RCT',ZWORK3D,IRESP) ! Cloud at time t IF(IRESP==0) ZRT1(:,:,:,IRR)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) IF(IRESP==0) IRR=IRR+1 END IF IF (IRR<=CONF_MODEL(1)%NRR) THEN - CALL IO_READ_FIELD(TPSONFILE,'RRT',ZWORK3D,IRESP) ! Rain at time t + CALL IO_Field_read(TPSONFILE,'RRT',ZWORK3D,IRESP) ! Rain at time t IF(IRESP==0) ZRT1(:,:,:,IRR)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) IF(IRESP==0) IRR=IRR+1 END IF IF (IRR<=CONF_MODEL(1)%NRR) THEN - CALL IO_READ_FIELD(TPSONFILE,'RIT',ZWORK3D,IRESP) ! Ice at time t + CALL IO_Field_read(TPSONFILE,'RIT',ZWORK3D,IRESP) ! Ice at time t IF(IRESP==0) ZRT1(:,:,:,IRR)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) IF(IRESP==0) IRR=IRR+1 END IF IF (IRR<=CONF_MODEL(1)%NRR) THEN - CALL IO_READ_FIELD(TPSONFILE,'RST',ZWORK3D,IRESP) ! Snow at time t + CALL IO_Field_read(TPSONFILE,'RST',ZWORK3D,IRESP) ! Snow at time t IF(IRESP==0) ZRT1(:,:,:,IRR)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) IF(IRESP==0) IRR=IRR+1 END IF IF (IRR<=CONF_MODEL(1)%NRR) THEN - CALL IO_READ_FIELD(TPSONFILE,'RGT',ZWORK3D,IRESP) ! Graupel at time t + CALL IO_Field_read(TPSONFILE,'RGT',ZWORK3D,IRESP) ! Graupel at time t IF(IRESP==0) ZRT1(:,:,:,IRR)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) IF(IRESP==0) IRR=IRR+1 END IF IF (IRR<=CONF_MODEL(1)%NRR) THEN - CALL IO_READ_FIELD(TPSONFILE,'HVT',ZWORK3D,IRESP) ! Hail at time t + CALL IO_Field_read(TPSONFILE,'HVT',ZWORK3D,IRESP) ! Hail at time t IF(IRESP==0) ZRT1(:,:,:,IRR)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) IF(IRESP==0) IRR=IRR+1 END IF @@ -769,9 +769,9 @@ IF (PRESENT(TPSONFILE)) THEN WRITE(ILUOUT,FMT=*) 'SPAWN_FIELD2: spawing with a SON input file' WRITE(ILUOUT,FMT=*) ' ',CONF_MODEL(1)%NRR,' moist variables in model1 and model2, ', & IRR,' moist variables in input SON' - CALL IO_READ_FIELD(TPSONFILE,'THT',ZWORK3D) ! Theta at time t + CALL IO_Field_read(TPSONFILE,'THT',ZWORK3D) ! Theta at time t ZTHT1(:,:,:)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) - CALL IO_READ_FIELD(TPSONFILE,'PABST',ZWORK3D) ! Pressure at time t + CALL IO_Field_read(TPSONFILE,'PABST',ZWORK3D) ! Pressure at time t ZPABST1(:,:,:)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) ! CALL COMPUTE_THV_HU(GUSERV,ZRT1,ZTHT1,ZPABST1,ZTHVT1,ZHUT1) @@ -785,7 +785,7 @@ IF (PRESENT(TPSONFILE)) THEN ! TKE variables ! IF (HTURB/='NONE') THEN - CALL IO_READ_FIELD(TPSONFILE,'TKET',ZWORK3D,IRESP) ! Turbulence Kinetic Energy at time t + CALL IO_Field_read(TPSONFILE,'TKET',ZWORK3D,IRESP) ! Turbulence Kinetic Energy at time t IF(IRESP==0) PTKET(KIB2:KIE2,KJB2:KJE2,:)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END IF ! @@ -806,7 +806,7 @@ IF (PRESENT(TPSONFILE)) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -825,7 +825,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CMNHNAME = TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -891,7 +891,7 @@ IF (PRESENT(TPSONFILE)) THEN END IF ! time t TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO ! @@ -915,7 +915,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CUNITS = 'm-3' WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3,A)')'X_Y_Z_','SVT',JSV,' (nb ions/m3)' END IF - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -935,7 +935,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CMNHNAME = TRIM(CNAMES(JSV-NSV_CHEMBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -956,7 +956,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CMNHNAME = TRIM(CICNAMES(JSV-NSV_CHICBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -976,7 +976,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CMNHNAME = TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1)))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -996,7 +996,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CMNHNAME = TRIM(CDUSTNAMES(JSV-NSV_DSTBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1016,7 +1016,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CMNHNAME = TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1036,7 +1036,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CMNHNAME = TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1058,7 +1058,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CMNHNAME = 'LINOX' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1078,7 +1078,7 @@ IF (PRESENT(TPSONFILE)) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1099,7 +1099,7 @@ IF (PRESENT(TPSONFILE)) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1120,7 +1120,7 @@ IF (PRESENT(TPSONFILE)) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1140,7 +1140,7 @@ IF (PRESENT(TPSONFILE)) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'ATC',JSV+NSV_PPBEG-1 TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','ATC',JSV+NSV_PPBEG-1 - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PATC(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1161,7 +1161,7 @@ IF (PRESENT(TPSONFILE)) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'ATC',JSV+NSV_FFBEG-1 TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','ATC',JSV+NSV_FFBEG-1 - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PATC(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1171,10 +1171,10 @@ IF (PRESENT(TPSONFILE)) THEN ! Secondary pronostic variables ! IF (HTURB /= 'NONE' .AND. IRR>1) THEN - CALL IO_READ_FIELD(TPSONFILE,'SRCT',ZWORK3D,IRESP) ! turbulent flux SRC at time t + CALL IO_Field_read(TPSONFILE,'SRCT',ZWORK3D,IRESP) ! turbulent flux SRC at time t IF(IRESP == 0) PSRCT(KIB2:KIE2,KJB2:KJE2,:) = & ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) - CALL IO_READ_FIELD(TPSONFILE,'SIGS',ZWORK3D,IRESP) ! subgrid condensation + CALL IO_Field_read(TPSONFILE,'SIGS',ZWORK3D,IRESP) ! subgrid condensation IF(IRESP == 0) PSIGS(KIB2:KIE2,KJB2:KJE2,:) = & ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END IF diff --git a/src/MNH/spawn_grid2.f90 b/src/MNH/spawn_grid2.f90 index c1e938c6a..1a6e19226 100644 --- a/src/MNH/spawn_grid2.f90 +++ b/src/MNH/spawn_grid2.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !###################### @@ -164,8 +164,6 @@ USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_BIKHARDT_n USE MODD_VAR_ll USE MODE_ll -USE MODE_FM -USE MODE_IO_ll USE MODE_TIME USE MODE_GRIDPROJ ! diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90 index 38dd08f61..b54c1e9e3 100644 --- a/src/MNH/spawn_model2.f90 +++ b/src/MNH/spawn_model2.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- !######################## MODULE MODI_SPAWN_MODEL2 !######################## @@ -90,10 +91,10 @@ END MODULE MODI_SPAWN_MODEL2 !! TOTAL_DMASS : to compute the total mass of dry air !! ANEL_BALANCE2 : to apply an anelastic correction in the case of changing !! resolution between the two models -!! IO_FILE_OPEN_ll : to open a FM-file (DESFM + LFIFM) +!! IO_File_open : to open a FM-file (DESFM + LFIFM) !! WRITE_DESFM : to write the DESFM file !! WRITE_LFIFM : to write the LFIFM file -!! IO_FILE_CLOSE_ll : to close a FM-file (DESFM + LFIFM) +!! IO_File_close : to close a FM-file (DESFM + LFIFM) !! INI_BIKHARDT2 : initializes Bikhardt coefficients !! !! @@ -191,7 +192,7 @@ END MODULE MODI_SPAWN_MODEL2 !! Modification 01/2016 (JP Pinty) Add LIMA !! 10/2016 (C.Lac) Add droplet deposition !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -229,7 +230,7 @@ USE MODD_CH_MNHC_n USE MODD_PASPOL_n !$20140515 USE MODD_VAR_ll, ONLY : NPROC -USE MODD_IO_ll, ONLY: TFILEDATA,TFILE_DUMMY,TFILE_SURFEX +USE MODD_IO, ONLY: TFILEDATA,TFILE_DUMMY,TFILE_SURFEX ! USE MODE_GRIDCART ! Executive modules USE MODE_GRIDPROJ @@ -257,12 +258,11 @@ USE MODI_CH_INIT_SCHEME_n !$20140710 USE MODI_UPDATE_METRICS ! -USE MODE_FM -USE MODE_FMWRIT, ONLY : IO_WRITE_HEADER -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Header_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list USE MODE_MODELN_HANDLER -USE MODE_FMREAD USE MODE_MPPDB ! USE MODE_THERMO @@ -490,15 +490,15 @@ IF (LEN_TRIM(HSONFILE) /= 0 ) THEN ! 3.3.1 Opening the son input file and reading the grid ! WRITE(ILUOUT,*) 'SPAWN_MODEL2: spawning with a SON input file :',TRIM(HSONFILE) - CALL IO_FILE_ADD2LIST(TZSONFILE,TRIM(HSONFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TZSONFILE) - CALL IO_READ_FIELD(TZSONFILE,'DAD_NAME',YDAD_SON) - CALL IO_READ_FIELD(TZSONFILE,'IMAX', IIMAXSON) - CALL IO_READ_FIELD(TZSONFILE,'JMAX', IJMAXSON) - CALL IO_READ_FIELD(TZSONFILE,'XOR', IXORSON) - CALL IO_READ_FIELD(TZSONFILE,'YOR', IYORSON) - CALL IO_READ_FIELD(TZSONFILE,'DXRATIO', IDXRATIOSON) - CALL IO_READ_FIELD(TZSONFILE,'DYRATIO', IDYRATIOSON) + CALL IO_File_add2list(TZSONFILE,TRIM(HSONFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TZSONFILE) + CALL IO_Field_read(TZSONFILE,'DAD_NAME',YDAD_SON) + CALL IO_Field_read(TZSONFILE,'IMAX', IIMAXSON) + CALL IO_Field_read(TZSONFILE,'JMAX', IJMAXSON) + CALL IO_Field_read(TZSONFILE,'XOR', IXORSON) + CALL IO_Field_read(TZSONFILE,'YOR', IYORSON) + CALL IO_Field_read(TZSONFILE,'DXRATIO', IDXRATIOSON) + CALL IO_Field_read(TZSONFILE,'DYRATIO', IDYRATIOSON) ! IF (ADJUSTL(ADJUSTR(YDAD_SON)).NE.ADJUSTL(ADJUSTR(CMY_NAME(1)))) THEN WRITE(ILUOUT,*) 'SPAWN_MODEL2: DAD of SON file is different from the one of model2' @@ -1187,7 +1187,7 @@ CALL SPAWN_PRESSURE2(NXOR,NYOR,NXEND,NYEND,NDXRATIO,NDYRATIO, & ! IF (.NOT.GNOSON) THEN ALLOCATE(ZWORK3D(IIUSON,IJUSON,IKU)) - CALL IO_READ_FIELD(TZSONFILE,'PABST',ZWORK3D) + CALL IO_Field_read(TZSONFILE,'PABST',ZWORK3D) XPABST(IIB2:IIE2,IJB2:IJE2,:) = ZWORK3D(IIB1:IIE1,IJB1:IJE1,:) DEALLOCATE(ZWORK3D) END IF @@ -1437,9 +1437,9 @@ ELSE CMY_NAME(2)=ADJUSTL(ADJUSTR(CINIFILE)//'.spr'//ADJUSTL(HSPANBR)) END IF ! -CALL IO_FILE_ADD2LIST(TZFILE,CMY_NAME(2),'MNH','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) +CALL IO_File_add2list(TZFILE,CMY_NAME(2),'MNH','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) ! -CALL IO_FILE_OPEN_ll(TZFILE) +CALL IO_File_open(TZFILE) ! CALL WRITE_DESFM_n(2,TZFILE) ! @@ -1465,7 +1465,7 @@ ELSE CDAD_NAME(2)=CMY_NAME(1) ! model 1 becomes the DAD of model 2 (spawned one) ENDIF ! -CALL IO_WRITE_HEADER(TZFILE,HDAD_NAME=CDAD_NAME(2)) +CALL IO_Header_write(TZFILE,HDAD_NAME=CDAD_NAME(2)) CALL WRITE_LFIFM_n(TZFILE,CDAD_NAME(2)) ! CALL SECOND_MNH(ZTIME2) @@ -1491,9 +1491,9 @@ ZSURF2 = ZTIME2 - ZTIME1 !* 8. CLOSES THE FMFILE ! ----------------- ! -CALL IO_FILE_CLOSE_ll(TZFILE) +CALL IO_File_close(TZFILE) IF (ASSOCIATED(TZSONFILE)) THEN - CALL IO_FILE_CLOSE_ll(TZSONFILE) + CALL IO_File_close(TZSONFILE) END IF ! !------------------------------------------------------------------------------- @@ -1656,7 +1656,7 @@ WRITE(ILUOUT,*) ' ------------------------------------------------------------ ' 6 FORMAT(' | SPAWN_MODEL2 | ',F8.3,' | ',F8.3,' |') ! ! -CALL IO_FILE_CLOSE_ll(TLUOUT) +CALL IO_File_close(TLUOUT) ! 9900 FORMAT(' K = 001 ZHAT = ',E14.7) 9901 FORMAT(' K = ',I3.3,' ZHAT = ',E14.7,' DZ = ' ,E14.7) diff --git a/src/MNH/spawn_surf.f90 b/src/MNH/spawn_surf.f90 index f9e126c20..deee96b3b 100644 --- a/src/MNH/spawn_surf.f90 +++ b/src/MNH/spawn_surf.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2004-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !######################## @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE SPAWN_SURF (HINIFILE, HINIFILEPGD, TPOUTDATAFILE, OSPAWN_SURF) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! CHARACTER (LEN=*), INTENT(IN) :: HINIFILE ! Input file @@ -75,7 +75,7 @@ END MODULE MODI_SPAWN_SURF ! USE MODD_CONF, ONLY : NVERB USE MODD_GRID_n, ONLY : XZS -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_IO_SURF_MNH, ONLY : COUTFILE USE MODD_LUNIT, ONLY : TPGDFILE, TOUTDATAFILE USE MODD_MNH_SURFEX_n @@ -84,8 +84,6 @@ USE MODD_PARAM_n, ONLY : CSURF USE MODD_TIME_n, ONLY : TDTCUR ! USE MODE_ll -USE MODE_FMWRIT -USE MODE_IO_ll USE MODE_MODELN_HANDLER USE MODE_PREP_CTL, ONLY : PREP_CTL ! diff --git a/src/MNH/spawn_surf2_rain.f90 b/src/MNH/spawn_surf2_rain.f90 index a1f774f4f..0c324004d 100644 --- a/src/MNH/spawn_surf2_rain.f90 +++ b/src/MNH/spawn_surf2_rain.f90 @@ -17,7 +17,7 @@ INTERFACE KIB2,KJB2,KIE2,KJE2, & KIB1,KJB1,KIE1,KJE1 ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! IMPLICIT NONE ! @@ -116,10 +116,10 @@ END MODULE MODI_SPAWN_SURF2_RAIN ! ------------ ! USE MODD_BIKHARDT_n -USE MODD_CONF, ONLY : CCONF,CPROGRAM -USE MODD_FIELD_n, ONLY : XTHT -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LBC_n, ONLY : LBC_MODEL +USE MODD_CONF, ONLY: CCONF, CPROGRAM +USE MODD_FIELD_n, ONLY: XTHT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LBC_n, ONLY: LBC_MODEL USE MODD_SPAWN ! USE MODE_MODELN_HANDLER diff --git a/src/MNH/spawn_zs.f90 b/src/MNH/spawn_zs.f90 index 63bd460af..f015f586f 100644 --- a/src/MNH/spawn_zs.f90 +++ b/src/MNH/spawn_zs.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2005-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2005-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !################### @@ -114,7 +114,6 @@ USE MODI_ZS_BOUNDARY ! USE MODE_MODELN_HANDLER ! -USE MODE_FM USE MODE_MPPDB USE MODD_VAR_ll USE MODE_ll diff --git a/src/MNH/spawning.f90 b/src/MNH/spawning.f90 index 54c6103b6..4e654fff1 100644 --- a/src/MNH/spawning.f90 +++ b/src/MNH/spawning.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -75,7 +75,7 @@ !! 06/2016 (G.Delautier) phasage surfex 8 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -103,7 +103,7 @@ USE MODD_CURVCOR_n USE MODD_DIM_n USE MODD_DYN_n, LRES_n=>LRES, XRES_n=>XRES USE MODD_FIELD_n -USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG,TFILEDATA +USE MODD_IO, ONLY: NIO_VERB,NVERB_DEBUG,TFILEDATA USE MODD_LSFIELD_n USE MODD_LBC_n USE MODD_LUNIT_n @@ -113,12 +113,12 @@ USE MODD_REF_n USE MODD_TIME_n USE MODD_CH_MNHC_n USE MODD_GRID_n -! -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME,IO_FILE_PRINT_LIST +! +USE MODE_IO, only: IO_Init +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_File_find_byname, IO_Filelist_print USE MODE_ll USE MODE_POS -USE MODE_FM USE MODE_MODELN_HANDLER ! USE MODI_SPAWN_MODEL2 @@ -167,7 +167,7 @@ CALL VERSION CPROGRAM='SPAWN ' CDOMAIN= '' ! -CALL INITIO_ll() +CALL IO_Init() !------------------------------------------------------------------------------- ! !* 1. SPAWNING INITIALIZATION @@ -182,8 +182,8 @@ CALL READ_EXSPA(CINIFILE,CINIFILEPGD,& !* 2. NAM_BLANK, NAM_SPAWN_SURF and NAM_CONFZ READING AND EXSPA file CLOSURE ! ---------------------------------------- ! -CALL IO_FILE_FIND_BYNAME('SPAWN1.nam',TZEXPAFILE,IRESP) -CALL IO_FILE_OPEN_ll(TZEXPAFILE) +CALL IO_File_find_byname('SPAWN1.nam',TZEXPAFILE,IRESP) +CALL IO_File_open(TZEXPAFILE) ILUSPA = TZEXPAFILE%NLU ! CALL INIT_NMLVAR @@ -196,7 +196,7 @@ CALL POSNAM(ILUSPA,'NAM_CONFZ',GFOUND) IF (GFOUND) READ(UNIT=ILUSPA,NML=NAM_CONFZ) CALL POSNAM(ILUSPA,'NAM_CONF_SPAWN',GFOUND) IF (GFOUND) READ(UNIT=ILUSPA,NML=NAM_CONF_SPAWN) -CALL IO_FILE_CLOSE_ll(TZEXPAFILE) +CALL IO_File_close(TZEXPAFILE) ! !------------------------------------------------------------------------------- ! @@ -205,9 +205,9 @@ CALL IO_FILE_CLOSE_ll(TZEXPAFILE) ! CALL INIT_MNH ! -CALL IO_FILE_FIND_BYNAME(TRIM(CINIFILE),TZINIFILE,IRESP) -CALL IO_FILE_CLOSE_ll(TZINIFILE) -CALL IO_FILE_CLOSE_ll(TINIFILEPGD) +CALL IO_File_find_byname(TRIM(CINIFILE),TZINIFILE,IRESP) +CALL IO_File_close(TZINIFILE) +CALL IO_File_close(TINIFILEPGD) !------------------------------------------------------------------------------- ! !* 4. INITIALIZATION OF OUTER POINTS OF MODEL 1 @@ -228,7 +228,7 @@ CALL MPPDB_CHECK3D(XUT,"SPAWNING-after boundaries::XUT",PRECISION) !* 5. SPAWNING OF MODEL 2 FROM MODEL 1 ! -------------------------------- ! -CALL IO_FILE_OPEN_ll(TZEXPAFILE) +CALL IO_File_open(TZEXPAFILE) ILUSPA = TZEXPAFILE%NLU ! CALL SET_POINTERS_TO_MODEL1() @@ -238,7 +238,7 @@ CALL POSNAM(ILUSPA,'NAM_SPAWN_SURF',GFOUND) IF (GFOUND) READ(UNIT=ILUSPA,NML=NAM_SPAWN_SURF) CALL UPDATE_MODD_FROM_NMLVAR CALL GOTO_MODEL(1) -CALL IO_FILE_CLOSE_ll(TZEXPAFILE) +CALL IO_File_close(TZEXPAFILE) ! CALL GO_TOMODEL_ll(2,IINFO_ll) ! @@ -248,9 +248,9 @@ CALL SPAWN_MODEL2 (NRR,NSV_USER,CTURB,CSURF,CCLOUD, & ! CALL SURFEX_DEALLO_LIST ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! -CALL IO_FILE_CLOSE_ll(TLUOUT) +CALL IO_File_close(TLUOUT) ! CALL END_PARA_ll(IINFO_ll) !JUAN CALL ABORT diff --git a/src/MNH/spectre.f90 b/src/MNH/spectre.f90 index ef3367cdc..22878e5a9 100644 --- a/src/MNH/spectre.f90 +++ b/src/MNH/spectre.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl PROGRAM SPECTRE ! ############ @@ -24,7 +25,7 @@ ! ! USE MODD_CONF -USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG,TFILEDATA +USE MODD_IO, ONLY: NIO_VERB,NVERB_DEBUG,TFILEDATA USE MODD_LUNIT USE MODD_LUNIT_n USE MODD_TIME_n @@ -36,10 +37,10 @@ USE MODI_SPECTRE_AROME ! USE MODE_MSG USE MODE_POS -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST,IO_FILE_PRINT_LIST +USE MODE_IO, only: IO_Config_set, IO_Init +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_Filelist_print USE MODE_MODELN_HANDLER -USE MODE_FM !USE MODD_TYPE_DATE USE MODI_VERSION ! @@ -84,7 +85,7 @@ CALL GOTO_MODEL(1) CALL VERSION CPROGRAM='SPEC ' ! -CALL INITIO_ll() +CALL IO_Init() ! ! initialization YINIFILE(:) = ' ' @@ -120,8 +121,8 @@ PRINT*, '*********************************************************************' PRINT*, '*********************************************************************' PRINT*, ' ' ! -CALL IO_FILE_ADD2LIST(TZNMLFILE,'SPEC1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TZNMLFILE) +CALL IO_File_add2list(TZNMLFILE,'SPEC1.nam','NML','READ') +CALL IO_File_open(TZNMLFILE) ILUNAM = TZNMLFILE%NLU ! PRINT*, 'READ THE SPEC1.NAM FILE' @@ -162,9 +163,9 @@ IF (GFOUND) THEN READ(UNIT=ILUNAM,NML=NAM_CONFIO) PRINT*, ' namelist NAM_CONFIO read' END IF -CALL SET_CONFIO_ll() +CALL IO_Config_set() ! -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_File_close(TZNMLFILE) ! CINIFILE = YINIFILE(1) ! @@ -188,10 +189,10 @@ ENDIF IF (CTYPEFILE=='MESONH') THEN CALL SPECTRE_MESONH(YOUTFILE) ! - CALL IO_FILE_CLOSE_ll(LUNIT_MODEL(1)%TINIFILE) - IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() - CALL IO_FILE_CLOSE_ll(TLUOUT0) - CALL IO_FILE_CLOSE_ll(TLUOUT) + CALL IO_File_close(LUNIT_MODEL(1)%TINIFILE) + IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() + CALL IO_File_close(TLUOUT0) + CALL IO_File_close(TLUOUT) ELSEIF (CTYPEFILE=='AROME ')THEN CALL SPECTRE_AROME(CINIFILE,YOUTFILE,XDELTAX,XDELTAY,NI,NJ,NK) ELSE diff --git a/src/MNH/spectre_arome.f90 b/src/MNH/spectre_arome.f90 index 532c3d979..81a83ebc2 100644 --- a/src/MNH/spectre_arome.f90 +++ b/src/MNH/spectre_arome.f90 @@ -2,6 +2,11 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN +!----------------------------------------------------------------- ! #################### MODULE MODI_SPECTRE_AROME ! #################### @@ -22,14 +27,9 @@ END MODULE SUBROUTINE SPECTRE_AROME(HINIFILE,HOUTFILE,PDELTAX,PDELTAY,KI,KJ,KK) ! ###################################################################### -! -! Modifications: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN ! USE MODD_CONF -USE MODE_FM -USE MODE_IO_ll +USE MODE_IO, only: IO_Pack_set USE MODD_SPECTRE USE MODI_COMPUTE_SPECTRE USE MODD_PARAMETERS @@ -54,7 +54,7 @@ INTEGER :: JJJ,III,JERR CALL SET_SPLITTING_ll(CSPLIT) CALL SET_JP_ll(JPMODELMAX,JPHEXT,JPVEXT, NHALO) CALL SET_DAD0_ll() -CALL SET_FMPACK_ll(L1D,L2D,LPACK) +CALL IO_Pack_set(L1D,L2D,LPACK) ALLOCATE(ZWORK1(KI+2,KJ+2,KK+2)) ! IF (LSPECTRE_U) THEN diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90 index 883dabdc2..910497fcb 100644 --- a/src/MNH/tke_eps_sources.f90 +++ b/src/MNH/tke_eps_sources.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################### @@ -15,7 +15,7 @@ INTERFACE TPFILE,OCLOSE_OUT,OTURB_DIAG, & PTP,PRTKES,PRTKESM, PRTHLS,PCOEF_DISS,PTR,PDISS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index @@ -175,15 +175,15 @@ END MODULE MODI_TKE_EPS_SOURCES USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_BUDGET USE MODD_LES USE MODD_DIAG_IN_RUN, ONLY : LDIAG_IN_RUN, XCURRENT_TKE_DISS ! USE MODE_ll -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -426,7 +426,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PDP) + CALL IO_Field_write(TPFILE,TZFIELD,PDP) ! ! stores the thermal production ! @@ -440,7 +440,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PTP) + CALL IO_Field_write(TPFILE,TZFIELD,PTP) ! ! stores the whole turbulent transport ! @@ -454,7 +454,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PTR) + CALL IO_Field_write(TPFILE,TZFIELD,PTR) ! ! stores the dissipation of TKE ! @@ -468,7 +468,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PDISS) + CALL IO_Field_write(TPFILE,TZFIELD,PDISS) END IF ! ! Storage in the LES configuration of the Dynamic Production of TKE and diff --git a/src/MNH/trid.f90 b/src/MNH/trid.f90 index 3f57d6a9c..db2600ee0 100644 --- a/src/MNH/trid.f90 +++ b/src/MNH/trid.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################ @@ -171,7 +171,6 @@ USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! USE MODE_ll -USE MODE_IO_ll USE MODE_MSG ! !JUAN diff --git a/src/MNH/tridz.f90 b/src/MNH/tridz.f90 index c72b59870..4a7445791 100644 --- a/src/MNH/tridz.f90 +++ b/src/MNH/tridz.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################ @@ -180,7 +180,6 @@ USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! USE MODE_ll -USE MODE_IO_ll USE MODE_MSG !JUAN P1/P2 SPLITTING USE MODE_SPLITTINGZ_ll , ONLY : GET_DIM_EXTZ_ll,GET_ORZ_ll,LWESTZ_ll,LSOUTHZ_ll diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90 index 5e304989b..835d79d0e 100644 --- a/src/MNH/turb.f90 +++ b/src/MNH/turb.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################ @@ -25,7 +25,7 @@ INTERFACE PFLXZTHVMF,PWTH,PWRC,PWSV,PDYP,PTHP,PTR,PDISS,PLEM ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index @@ -350,7 +350,7 @@ USE MODD_CST USE MODD_CTURB USE MODD_CONF USE MODD_BUDGET -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_NSV ! @@ -372,8 +372,8 @@ USE MODI_TM06 USE MODI_UPDATE_LM USE MODI_GET_HALO ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_SBL ! USE MODI_EMOIST @@ -688,7 +688,7 @@ IF (KRRL >=1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZATHETA) + CALL IO_Field_write(TPFILE,TZFIELD,ZATHETA) ! TZFIELD%CMNHNAME = 'AMOIST' TZFIELD%CSTDNAME = '' @@ -700,7 +700,7 @@ IF (KRRL >=1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZAMOIST) + CALL IO_Field_write(TPFILE,TZFIELD,ZAMOIST) END IF ! ELSE @@ -1058,7 +1058,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZLM) + CALL IO_Field_write(TPFILE,TZFIELD,ZLM) ! IF (KRR /= 0) THEN ! @@ -1074,7 +1074,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PTHLT) + CALL IO_Field_write(TPFILE,TZFIELD,PTHLT) ! ! stores the conservative mixing ratio ! @@ -1088,7 +1088,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PRT(:,:,:,1)) + CALL IO_Field_write(TPFILE,TZFIELD,PRT(:,:,:,1)) END IF END IF ! @@ -1703,7 +1703,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZLM) + CALL IO_Field_write(TPFILE,TZFIELD,ZLM) ENDIF ! ! Amplification of the mixing length when the criteria are verified @@ -1729,7 +1729,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCOEF_AMPL) + CALL IO_Field_write(TPFILE,TZFIELD,ZCOEF_AMPL) ! TZFIELD%CMNHNAME = 'LM_CLOUD' TZFIELD%CSTDNAME = '' @@ -1740,7 +1740,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZLM_CLOUD) + CALL IO_Field_write(TPFILE,TZFIELD,ZLM_CLOUD) ! ENDIF ! diff --git a/src/MNH/turb_cloud_index.f90 b/src/MNH/turb_cloud_index.f90 index b9a42c2fc..a224e27eb 100644 --- a/src/MNH/turb_cloud_index.f90 +++ b/src/MNH/turb_cloud_index.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################ @@ -14,7 +14,7 @@ INTERFACE PRRS,PRM,PRHODJ,PDXX,PDYY,PDZZ,PDZX,PDZY, & PCEI ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! REAL, INTENT(IN) :: PTSTEP ! Double Time step TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file @@ -85,11 +85,11 @@ END MODULE MODI_TURB_CLOUD_INDEX ! !------------------------------------------------------------------------------- ! -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_PARAMETERS, ONLY: JPVEXT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_PARAMETERS, ONLY: JPVEXT ! -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M ! @@ -259,7 +259,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZRVCI) + CALL IO_Field_write(TPFILE,TZFIELD,ZRVCI) ! TZFIELD%CMNHNAME = 'GX_RVCI' TZFIELD%CSTDNAME = '' @@ -271,7 +271,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZG_RVCI(:,:,:,1)) + CALL IO_Field_write(TPFILE,TZFIELD,ZG_RVCI(:,:,:,1)) ! TZFIELD%CMNHNAME = 'GY_RVCI' TZFIELD%CSTDNAME = '' @@ -283,7 +283,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZG_RVCI(:,:,:,2)) + CALL IO_Field_write(TPFILE,TZFIELD,ZG_RVCI(:,:,:,2)) ! TZFIELD%CMNHNAME = 'GNORM_RVCI' TZFIELD%CSTDNAME = '' @@ -295,7 +295,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZGNORM_RVCI) + CALL IO_Field_write(TPFILE,TZFIELD,ZGNORM_RVCI) ! TZFIELD%CMNHNAME = 'QX_RVCI' TZFIELD%CSTDNAME = '' @@ -307,7 +307,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZQ_RVCI(:,:,:,1)) + CALL IO_Field_write(TPFILE,TZFIELD,ZQ_RVCI(:,:,:,1)) ! TZFIELD%CMNHNAME = 'QY_RVCI' TZFIELD%CSTDNAME = '' @@ -319,7 +319,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZQ_RVCI(:,:,:,2)) + CALL IO_Field_write(TPFILE,TZFIELD,ZQ_RVCI(:,:,:,2)) ! TZFIELD%CMNHNAME = 'QNORM_RVCI' TZFIELD%CSTDNAME = '' @@ -331,7 +331,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZQNORM_RVCI) + CALL IO_Field_write(TPFILE,TZFIELD,ZQNORM_RVCI) ! TZFIELD%CMNHNAME = 'CEI' TZFIELD%CSTDNAME = '' @@ -343,7 +343,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PCEI) + CALL IO_Field_write(TPFILE,TZFIELD,PCEI) END IF ! END SUBROUTINE TURB_CLOUD_INDEX diff --git a/src/MNH/turb_hor.f90 b/src/MNH/turb_hor.f90 index bc99e3bfc..389d45e49 100644 --- a/src/MNH/turb_hor.f90 +++ b/src/MNH/turb_hor.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -27,7 +27,7 @@ INTERFACE PRUS,PRVS,PRWS,PRTHLS,PRRS,PRSVS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KSPLT ! current split index INTEGER, INTENT(IN) :: KRR ! number of moist var. @@ -255,7 +255,7 @@ END MODULE MODI_TURB_HOR ! USE MODD_CST USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES ! diff --git a/src/MNH/turb_hor_dyn_corr.f90 b/src/MNH/turb_hor_dyn_corr.f90 index 930b8fb69..810c6c616 100644 --- a/src/MNH/turb_hor_dyn_corr.f90 +++ b/src/MNH/turb_hor_dyn_corr.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- MODULE MODI_TURB_HOR_DYN_CORR @@ -22,7 +22,7 @@ INTERFACE PDP,PTP, & PRUS,PRVS,PRWS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KSPLT ! split process index REAL, INTENT(IN) :: PTSTEP ! timestep @@ -141,18 +141,18 @@ END MODULE MODI_TURB_HOR_DYN_CORR !* 0. DECLARATIONS ! ------------ ! -USE MODD_ARGSLIST_ll, ONLY : LIST_ll +USE MODD_ARGSLIST_ll, ONLY: LIST_ll USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES USE MODD_NSV ! USE MODE_ll -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -384,7 +384,7 @@ IF ( OCLOSE_OUT .AND. OTURB_FLX ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! Complete the U tendency @@ -479,7 +479,7 @@ IF ( OCLOSE_OUT .AND. OTURB_FLX ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! Complete the V tendency @@ -566,7 +566,7 @@ IF ( OCLOSE_OUT .AND. OTURB_FLX ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! Complete the W tendency diff --git a/src/MNH/turb_hor_splt.f90 b/src/MNH/turb_hor_splt.f90 index 88158afa3..df281d123 100644 --- a/src/MNH/turb_hor_splt.f90 +++ b/src/MNH/turb_hor_splt.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -26,7 +26,7 @@ INTERFACE PRUS,PRVS,PRWS,PRTHLS,PRRS,PRSVS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KSPLIT ! number of time splitting INTEGER, INTENT(IN) :: KRR ! number of moist var. @@ -257,7 +257,7 @@ END MODULE MODI_TURB_HOR_SPLT USE MODD_CONF USE MODD_CST USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS ! ! diff --git a/src/MNH/turb_hor_sv_flux.f90 b/src/MNH/turb_hor_sv_flux.f90 index acb3da871..2ff88559c 100644 --- a/src/MNH/turb_hor_sv_flux.f90 +++ b/src/MNH/turb_hor_sv_flux.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################ @@ -20,7 +20,7 @@ INTERFACE PSVM, & PRSVS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KSPLT ! split process index LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous @@ -115,14 +115,14 @@ END MODULE MODI_TURB_HOR_SV_FLUX USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS -USE MODD_NSV, ONLY : NSV_LGBEG,NSV_LGEND +USE MODD_NSV, ONLY: NSV_LGBEG, NSV_LGEND USE MODD_LES USE MODD_BLOWSNOW ! -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -262,7 +262,7 @@ DO JSV=1,ISV TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXX) END IF ! IF (LLES_CALL .AND. KSPLT==1) THEN @@ -313,7 +313,7 @@ DO JSV=1,ISV TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXY) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXY) END IF ! ELSE diff --git a/src/MNH/turb_hor_thermo_corr.f90 b/src/MNH/turb_hor_thermo_corr.f90 index 8ae8f14fd..e6f89e6d9 100644 --- a/src/MNH/turb_hor_thermo_corr.f90 +++ b/src/MNH/turb_hor_thermo_corr.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################ @@ -20,7 +20,7 @@ INTERFACE PLOCPEXNM,PATHETA,PAMOIST,PSRCM, & PSIGS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KRR ! number of moist var. INTEGER, INTENT(IN) :: KRRL ! number of liquid water var. @@ -123,12 +123,12 @@ END MODULE MODI_TURB_HOR_THERMO_CORR USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -281,7 +281,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. OCLOSE_OUT ) & TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! Storage in the LES configuration (addition to TURB_VER computation) @@ -369,7 +369,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. OCLOSE_OUT ) & TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! Storage in the LES configuration (addition to TURB_VER computation) @@ -437,7 +437,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. OCLOSE_OUT ) & TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! Storage in the LES configuration (addition to TURB_VER computation) diff --git a/src/MNH/turb_hor_thermo_flux.f90 b/src/MNH/turb_hor_thermo_flux.f90 index 6bb5399da..188e932c6 100644 --- a/src/MNH/turb_hor_thermo_flux.f90 +++ b/src/MNH/turb_hor_thermo_flux.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################ @@ -21,7 +21,7 @@ INTERFACE PATHETA,PAMOIST,PSRCM,PFRAC_ICE, & PRTHLS,PRRS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KSPLT ! split process index INTEGER, INTENT(IN) :: KRR ! number of moist var. @@ -132,12 +132,12 @@ END MODULE MODI_TURB_HOR_THERMO_FLUX USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -325,7 +325,7 @@ IF ( OCLOSE_OUT .AND. OTURB_FLX ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! IF (KSPLT==1 .AND. LLES_CALL) THEN @@ -428,7 +428,7 @@ IF (KRR/=0) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! IF (KSPLT==1 .AND. LLES_CALL) THEN @@ -477,7 +477,7 @@ END IF !! TZFIELD%NTYPE = TYPEREAL !! TZFIELD%NDIMS = 3 !! TZFIELD%LTIMEDEP = .TRUE. -!! CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZVPTU) +!! CALL IO_Field_write(TPFILE,TZFIELD,ZVPTU) !! END IF !!! !!ELSE @@ -580,7 +580,7 @@ IF ( OCLOSE_OUT .AND. OTURB_FLX ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! IF (KSPLT==1 .AND. LLES_CALL) THEN @@ -692,7 +692,7 @@ IF (KRR/=0) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! IF (KSPLT==1 .AND. LLES_CALL) THEN @@ -745,7 +745,7 @@ END IF !! TZFIELD%NTYPE = TYPEREAL !! TZFIELD%NDIMS = 3 !! TZFIELD%LTIMEDEP = .TRUE. -!! CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZVPTV) +!! CALL IO_Field_write(TPFILE,TZFIELD,ZVPTV) !! END IF !!! !!ELSE diff --git a/src/MNH/turb_hor_uv.f90 b/src/MNH/turb_hor_uv.f90 index d3bba36c2..70210144d 100644 --- a/src/MNH/turb_hor_uv.f90 +++ b/src/MNH/turb_hor_uv.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -22,7 +22,7 @@ INTERFACE PDP, & PRUS,PRVS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KSPLT ! split process index LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous @@ -128,12 +128,12 @@ END MODULE MODI_TURB_HOR_UV USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -285,7 +285,7 @@ IF ( OCLOSE_OUT .AND. OTURB_FLX ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! diff --git a/src/MNH/turb_hor_uw.f90 b/src/MNH/turb_hor_uw.f90 index be7ba4ea7..8860fdfd5 100644 --- a/src/MNH/turb_hor_uw.f90 +++ b/src/MNH/turb_hor_uw.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -20,7 +20,7 @@ INTERFACE PDP, & PRUS,PRWS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KSPLT ! split process index LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous @@ -119,13 +119,13 @@ END MODULE MODI_TURB_HOR_UW USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES USE MODD_NSV ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -234,7 +234,7 @@ IF ( OCLOSE_OUT .AND. OTURB_FLX ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! diff --git a/src/MNH/turb_hor_vw.f90 b/src/MNH/turb_hor_vw.f90 index 8b9231469..a730e736f 100644 --- a/src/MNH/turb_hor_vw.f90 +++ b/src/MNH/turb_hor_vw.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -20,7 +20,7 @@ INTERFACE PDP, & PRVS,PRWS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KSPLT ! split process index LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous @@ -115,13 +115,13 @@ END MODULE MODI_TURB_HOR_VW USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES USE MODD_NSV ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -236,7 +236,7 @@ IF ( OCLOSE_OUT .AND. OTURB_FLX ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! compute the source for rho*V due to this residual flux ( the other part is diff --git a/src/MNH/turb_ver.f90 b/src/MNH/turb_ver.f90 index ecf077cbb..b85c896a9 100644 --- a/src/MNH/turb_ver.f90 +++ b/src/MNH/turb_ver.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -27,7 +27,7 @@ INTERFACE PDP,PTP,PSIGS,PWTH,PWRC,PWSV ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KRR ! number of moist var. INTEGER, INTENT(IN) :: KRRL ! number of liquid water var. @@ -326,10 +326,10 @@ END MODULE MODI_TURB_VER ! USE MODD_CST USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES -USE MODD_NSV, ONLY : NSV +USE MODD_NSV, ONLY: NSV USE MODD_BLANK ! USE MODI_PRANDTL @@ -346,8 +346,8 @@ USE MODI_TURB_VER_SV_CORR USE MODI_LES_MEAN_SUBGRID USE MODI_SBL_DEPTH ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_PRANDTL ! USE MODI_SECOND_MNH @@ -712,7 +712,7 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPHI3) + CALL IO_Field_write(TPFILE,TZFIELD,ZPHI3) ! ! stores the Turbulent Schmidt number ! @@ -726,7 +726,7 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPSI3) + CALL IO_Field_write(TPFILE,TZFIELD,ZPSI3) ! ! ! stores the Turbulent Schmidt number for the scalar variables @@ -742,7 +742,7 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT ) THEN WRITE(TZFIELD%CMNHNAME, '("PSI_SV_",I3.3)') JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPSI_SV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPSI_SV(:,:,:,JSV)) END DO ! END IF diff --git a/src/MNH/turb_ver_dyn_flux.f90 b/src/MNH/turb_ver_dyn_flux.f90 index 93b7f9016..eb6811a8f 100644 --- a/src/MNH/turb_ver_dyn_flux.f90 +++ b/src/MNH/turb_ver_dyn_flux.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -23,7 +23,7 @@ INTERFACE PRUS,PRVS,PRWS, & PDP,PTP ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index @@ -290,25 +290,25 @@ END MODULE MODI_TURB_VER_DYN_FLUX USE MODD_CONF USE MODD_CST USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_PARAMETERS +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_NSV +USE MODD_PARAMETERS ! ! USE MODI_GRADIENT_U USE MODI_GRADIENT_V USE MODI_GRADIENT_W USE MODI_GRADIENT_M -USE MODI_SHUMAN +USE MODI_SECOND_MNH +USE MODI_SHUMAN USE MODI_TRIDIAG USE MODI_TRIDIAG_WIND -USE MODE_FMWRIT USE MODI_LES_MEAN_SUBGRID ! -USE MODI_SECOND_MNH +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL ! IMPLICIT NONE ! @@ -521,7 +521,7 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! first part of total momentum flux @@ -695,7 +695,7 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! second part of total momentum flux @@ -807,7 +807,7 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT .AND. HTURBDIM == '1DIM') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! !---------------------------------------------------------------------------- diff --git a/src/MNH/turb_ver_sv_flux.f90 b/src/MNH/turb_ver_sv_flux.f90 index 26b102f73..30de8c5d6 100644 --- a/src/MNH/turb_ver_sv_flux.f90 +++ b/src/MNH/turb_ver_sv_flux.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -21,7 +21,7 @@ INTERFACE PTKEM,PLM,PPSI_SV, & PRSVS,PWSV ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index @@ -272,14 +272,14 @@ END MODULE MODI_TURB_VER_SV_FLUX ! USE MODD_CST USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES USE MODD_CONF -USE MODD_NSV, ONLY : XSVMIN,NSV_LGBEG,NSV_LGEND +USE MODD_NSV, ONLY: XSVMIN, NSV_LGBEG, NSV_LGEND USE MODD_BLOWSNOW -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_U USE MODI_GRADIENT_V @@ -469,7 +469,7 @@ DO JSV=1,ISV TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. ! - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! Storage in the LES configuration diff --git a/src/MNH/turb_ver_thermo_corr.f90 b/src/MNH/turb_ver_thermo_corr.f90 index e9dcb3f1c..598ad7c83 100644 --- a/src/MNH/turb_ver_thermo_corr.f90 +++ b/src/MNH/turb_ver_thermo_corr.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -25,7 +25,7 @@ INTERFACE PFWTH,PFWR,PFTH2,PFR2,PFTHR, & PTHLP,PRP,PSIGS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index @@ -314,7 +314,7 @@ END MODULE MODI_TURB_VER_THERMO_CORR ! USE MODD_CST USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_CONF USE MODD_LES @@ -325,12 +325,12 @@ USE MODI_GRADIENT_W USE MODI_GRADIENT_M USE MODI_SHUMAN USE MODI_TRIDIAG -USE MODE_FMWRIT USE MODI_LES_MEAN_SUBGRID USE MODI_PRANDTL USE MODI_TRIDIAG_THERMO ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_PRANDTL ! USE MODI_SECOND_MNH @@ -582,7 +582,7 @@ END IF TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! and we store in LES configuration @@ -709,7 +709,7 @@ END IF TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! and we store in LES configuration @@ -816,7 +816,7 @@ END IF TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! and we store in LES configuration diff --git a/src/MNH/turb_ver_thermo_flux.f90 b/src/MNH/turb_ver_thermo_flux.f90 index 0915d2544..5aa9cb6f0 100644 --- a/src/MNH/turb_ver_thermo_flux.f90 +++ b/src/MNH/turb_ver_thermo_flux.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -26,7 +26,7 @@ INTERFACE PFWTH,PFWR,PFTH2,PFR2,PFTHR,PBL_DEPTH, & PWTHV,PRTHLS,PRRS,PTHLP,PRP,PTP,PWTH,PWRC ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index @@ -332,7 +332,7 @@ END MODULE MODI_TURB_VER_THERMO_FLUX ! USE MODD_CST USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_CONF USE MODD_LES @@ -343,13 +343,13 @@ USE MODI_GRADIENT_W USE MODI_GRADIENT_M USE MODI_SHUMAN USE MODI_TRIDIAG -USE MODE_FMWRIT USE MODI_LES_MEAN_SUBGRID USE MODI_PRANDTL USE MODI_TRIDIAG_THERMO USE MODI_TM06_H ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_PRANDTL ! USE MODI_SECOND_MNH @@ -617,7 +617,7 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! Contribution of the conservative temperature flux to the buoyancy flux @@ -795,7 +795,7 @@ IF (KRR /= 0) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! Contribution of the conservative water flux to the Buoyancy flux @@ -877,7 +877,7 @@ IF ( ((OTURB_FLX .AND. OCLOSE_OUT) .OR. LLES_CALL) .AND. (KRRL > 0) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! and we store in LES configuration this subgrid flux <w'rc'> diff --git a/src/MNH/uv_to_zonal_and_merid.f90 b/src/MNH/uv_to_zonal_and_merid.f90 index c78aa754a..1403691bc 100644 --- a/src/MNH/uv_to_zonal_and_merid.f90 +++ b/src/MNH/uv_to_zonal_and_merid.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2000-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################# @@ -9,7 +9,7 @@ INTERFACE UV_TO_ZONAL_AND_MERID SUBROUTINE UV_TO_ZONAL_AND_MERID3D(PU,PV,KGRID,PZC,PMC,TPFILE,TZFIELDS) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODE_FIELD, ONLY: TFIELDDATA ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PU ! Input U component @@ -24,7 +24,7 @@ END SUBROUTINE UV_TO_ZONAL_AND_MERID3D ! SUBROUTINE UV_TO_ZONAL_AND_MERID2D(PU,PV,KGRID,PZC,PMC,TPFILE,TZFIELDS) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODE_FIELD, ONLY: TFIELDDATA ! REAL, DIMENSION(:,:), INTENT(IN) :: PU ! Input U component @@ -47,7 +47,7 @@ INTERFACE ! SUBROUTINE UV_TO_ZONAL_AND_MERID3D(PU,PV,KGRID,PZC,PMC,TPFILE,TZFIELDS) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODE_FIELD, ONLY: TFIELDDATA ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PU ! Input U component @@ -105,12 +105,12 @@ USE MODD_CST USE MODD_DIM_n USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA,NVERB_ERROR,NVERB_INFO,NVERB_WARNING -USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! -USE MODE_FIELD, ONLY: TFIELDDATA -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG ! USE MODI_SHUMAN @@ -220,8 +220,8 @@ IF(PRESENT(TPFILE)) THEN CALL PRINT_MSG(NVERB_WARNING,'IO','UV_TO_ZONAL_AND_MERID3D','inconsistent values for TZFIELDS(x)%HDIR') END IF ! - CALL IO_WRITE_FIELD(TPFILE,TZFIELDS(1),ZZC(:,:,:)) - CALL IO_WRITE_FIELD(TPFILE,TZFIELDS(2),ZMC(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELDS(1),ZZC(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELDS(2),ZMC(:,:,:)) ELSE IF (PRESENT(PZC).AND.PRESENT(PMC)) THEN PZC(:,:,:)=ZZC(:,:,:) PMC(:,:,:)=ZMC(:,:,:) @@ -276,11 +276,11 @@ END SUBROUTINE UV_TO_ZONAL_AND_MERID3D !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY: TFILEDATA,NVERB_WARNING -USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_IO, ONLY: TFILEDATA, NVERB_WARNING +USE MODD_LUNIT_n, ONLY: TLUOUT ! -USE MODE_FIELD, ONLY: TFIELDDATA -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG ! USE MODI_UV_TO_ZONAL_AND_MERID3D @@ -332,8 +332,8 @@ IF(PRESENT(TPFILE)) THEN CALL PRINT_MSG(NVERB_WARNING,'IO','UV_TO_ZONAL_AND_MERID2D','inconsistent values for TZFIELDS(x)%HDIR') END IF ! - CALL IO_WRITE_FIELD(TPFILE,TZFIELDS(1),ZZC3D(:,:,1)) - CALL IO_WRITE_FIELD(TPFILE,TZFIELDS(2),ZMC3D(:,:,1)) + CALL IO_Field_write(TPFILE,TZFIELDS(1),ZZC3D(:,:,1)) + CALL IO_Field_write(TPFILE,TZFIELDS(2),ZMC3D(:,:,1)) ELSE IF (PRESENT(PZC).AND.PRESENT(PMC)) THEN PZC(:,:)=ZZC3D(:,:,1) PMC(:,:)=ZMC3D(:,:,1) diff --git a/src/MNH/ver_int_thermo.f90 b/src/MNH/ver_int_thermo.f90 index 03ac8e95b..38b931424 100644 --- a/src/MNH/ver_int_thermo.f90 +++ b/src/MNH/ver_int_thermo.f90 @@ -12,7 +12,7 @@ INTERFACE PPMHP_MX,PEXNTOP2D,PTHV,PR,PPMHP,PDIAG, & PLSTH_MX, PLSRV_MX, PLSTHM, PLSRVM ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics LOGICAL, INTENT(IN) :: OSHIFT ! T: vertical shift of BL (used for GRIB file data) @@ -144,7 +144,7 @@ USE MODD_CONF USE MODD_CONF_n USE MODD_CST USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_VER_INTERP_LIN diff --git a/src/MNH/ver_interp_to_mixed_grid.f90 b/src/MNH/ver_interp_to_mixed_grid.f90 index 13f9ba705..f1a882848 100644 --- a/src/MNH/ver_interp_to_mixed_grid.f90 +++ b/src/MNH/ver_interp_to_mixed_grid.f90 @@ -166,8 +166,6 @@ END MODULE MODI_VER_INTERP_TO_MIXED_GRID ! ------------ ! USE MODE_THERMO -USE MODE_FM -USE MODE_IO_ll ! USE MODI_COEF_VER_INTERP_LIN USE MODI_VER_INTERP_LIN diff --git a/src/MNH/ver_thermo.f90 b/src/MNH/ver_thermo.f90 index 94f06c8a8..25f46514d 100644 --- a/src/MNH/ver_thermo.f90 +++ b/src/MNH/ver_thermo.f90 @@ -12,7 +12,7 @@ INTERFACE PDXX,PDYY,PEXNTOP2D,PPSURF,PDIAG, & PLSTH_MX,PLSRV_MX ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics LOGICAL, INTENT(IN) :: OSHIFT ! T: vertical shift of BL (used for GRIB file data) @@ -153,24 +153,24 @@ END MODULE MODI_VER_THERMO !* 0. DECLARATIONS ! ------------ ! -USE MODD_ARGSLIST_ll, ONLY: LIST_ll +USE MODD_ARGSLIST_ll, ONLY: LIST_ll USE MODD_CONF USE MODD_CONF_n USE MODD_CST USE MODD_DYN_n -USE MODD_FIELD_n, ONLY: XTHT,XRT,XPABST,XDRYMASST +USE MODD_FIELD_n, ONLY: XTHT,XRT,XPABST,XDRYMASST USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA,TFILE_DUMMY +USE MODD_IO, ONLY: TFILEDATA,TFILE_DUMMY USE MODD_LBC_n USE MODD_LSFIELD_n -USE MODD_LUNIT, ONLY: TLUOUT0 +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_REF_n ! USE MODD_DIM_n USE MODE_EXTRAPOL -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll USE MODE_MPPDB ! @@ -304,7 +304,7 @@ IF (NVERB>=10) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTHV) + CALL IO_Field_write(TPFILE,TZFIELD,ZTHV) END IF !------------------------------------------------------------------------------- ! diff --git a/src/MNH/viscosity.f90 b/src/MNH/viscosity.f90 index 5d822248a..f047a5405 100644 --- a/src/MNH/viscosity.f90 +++ b/src/MNH/viscosity.f90 @@ -1,8 +1,9 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. -! +!----------------------------------------------------------------- +! ! ##################### MODULE MODI_VISCOSITY ! ##################### @@ -103,7 +104,6 @@ SUBROUTINE VISCOSITY(HLBCX, HLBCY, KRR, KSV, PNU, PPRANDTL, & USE MODD_BUDGET USE MODE_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll - USE MODE_FM USE MODI_BUDGET ! !------------------------------------------------------------------------------- diff --git a/src/MNH/write_aircraft_balloon.f90 b/src/MNH/write_aircraft_balloon.f90 index 3d021974a..3e4e7370e 100644 --- a/src/MNH/write_aircraft_balloon.f90 +++ b/src/MNH/write_aircraft_balloon.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_AIRCRAFT_BALLOON(TPDIAFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write ! @@ -71,7 +71,7 @@ END MODULE MODI_WRITE_AIRCRAFT_BALLOON ! ------------ ! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT USE MODD_PARAMETERS ! diff --git a/src/MNH/write_balloonn.f90 b/src/MNH/write_balloonn.f90 index 3bfb6091a..c1d82c1b2 100644 --- a/src/MNH/write_balloonn.f90 +++ b/src/MNH/write_balloonn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2001-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2001-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################### @@ -10,7 +10,7 @@ INTERFACE ! SUBROUTINE WRITE_BALLOON_n(TPFILE) -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! IMPLICIT NONE ! @@ -64,8 +64,8 @@ END MODULE MODI_WRITE_BALLOON_n ! ------------ ! USE MODD_AIRCRAFT_BALLOON -USE MODD_GRID, ONLY: XLONORI,XLATORI -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_GRID, ONLY: XLONORI, XLATORI +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n ! USE MODE_GRIDPROJ @@ -96,8 +96,8 @@ CONTAINS !------------------------------------------------------------------------------- SUBROUTINE WRITE_LFI_BALLOON(TPFLYER) ! -USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! TYPE(FLYER), INTENT(IN) :: TPFLYER ! @@ -123,7 +123,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZLAT) +CALL IO_Field_write(TPFILE,TZFIELD,ZLAT) ! TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'LON' TZFIELD%CSTDNAME = '' @@ -135,7 +135,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZLON) +CALL IO_Field_write(TPFILE,TZFIELD,ZLON) ! TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'ALT' TZFIELD%CSTDNAME = '' @@ -147,7 +147,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPFILE,TZFIELD,TPFLYER%Z_CUR) +CALL IO_Field_write(TPFILE,TZFIELD,TPFLYER%Z_CUR) ! TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'WASCENT' TZFIELD%CSTDNAME = '' @@ -159,7 +159,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPFILE,TZFIELD,TPFLYER%WASCENT) +CALL IO_Field_write(TPFILE,TZFIELD,TPFLYER%WASCENT) ! TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'RHO' TZFIELD%CSTDNAME = '' @@ -171,7 +171,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPFILE,TZFIELD,TPFLYER%RHO) +CALL IO_Field_write(TPFILE,TZFIELD,TPFLYER%RHO) ! ! ! diff --git a/src/MNH/write_budget.f90 b/src/MNH/write_budget.f90 index c70ee075f..e24f6a300 100644 --- a/src/MNH/write_budget.f90 +++ b/src/MNH/write_budget.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !######################## @@ -12,7 +12,7 @@ INTERFACE SUBROUTINE WRITE_BUDGET(TPDIAFILE,TPDTCUR, & TPDTMOD,PTSTEP, KSV) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_TYPE_DATE ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write @@ -131,12 +131,12 @@ END MODULE MODI_WRITE_BUDGET !* 0. ! ------------ USE MODD_BUDGET -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT ! USE MODE_DATETIME -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_TIME ! USE MODI_END_CART_COMPRESS @@ -199,7 +199,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PTSTEP) +CALL IO_Field_write(TPDIAFILE,TZFIELD,PTSTEP) ! TZFIELD%CMNHNAME = 'BULEN' TZFIELD%CSTDNAME = '' @@ -211,7 +211,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,XBULEN) +CALL IO_Field_write(TPDIAFILE,TZFIELD,XBULEN) ! !* 1.1 initialize NBUTSHIFT ! --------------------- @@ -1031,7 +1031,7 @@ SELECT CASE (CBUTYPE) TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 6 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,ZWORKMASK(:,:,:,:,:,:)) + CALL IO_Field_write(TPDIAFILE,TZFIELD,ZWORKMASK(:,:,:,:,:,:)) WRITE(YRECFM,FMT="('MASK_',I4.4)") NBUTSHIFT CALL MENU_DIACHRO(TPDIAFILE,YRECFM) DEALLOCATE(ZWORKMASK) diff --git a/src/MNH/write_desfmn.f90 b/src/MNH/write_desfmn.f90 index 223153f59..fc96071c8 100644 --- a/src/MNH/write_desfmn.f90 +++ b/src/MNH/write_desfmn.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_DESFM_n(KMI,TPDATAFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPDATAFILE ! Datafile @@ -150,7 +150,7 @@ END MODULE MODI_WRITE_DESFM_n ! ------------ USE MODD_CONF USE MODD_DYN_n, ONLY: LHORELAX_SVLIMA -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! diff --git a/src/MNH/write_diachro.f90 b/src/MNH/write_diachro.f90 index 544eda16f..5e24bc549 100644 --- a/src/MNH/write_diachro.f90 +++ b/src/MNH/write_diachro.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################################################# @@ -75,13 +75,12 @@ ! USE MODD_BUDGET USE MODD_CONF -USE MODE_FIELD -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_PARAMETERS, ONLY : JPHEXT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_PARAMETERS, ONLY: JPHEXT ! +USE MODE_FIELD +USE MODE_IO_FIELD_WRITE, only: IO_Field_write, IO_Field_write_box USE MODE_ll -USE MODE_FMWRIT -USE MODE_IO_ll ! USE MODI_MENU_DIACHRO ! @@ -229,7 +228,7 @@ TZFIELD%NGRID = KGRID(1) TZFIELD%NTYPE = TYPECHAR TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,HTYPE) +CALL IO_Field_write(TPDIAFILE,TZFIELD,HTYPE) IF (NVERB>=5) THEN WRITE(ILUOUTDIA,*)' 1st record (',TRIM(TZFIELD%CMNHNAME),'): OK' @@ -273,7 +272,7 @@ SELECT CASE(HTYPE) ITABCHAR(29)=IIMASK; ITABCHAR(30)=IJMASK ITABCHAR(31)=IKMASK; ITABCHAR(32)=ITMASK ITABCHAR(33)=INMASK; ITABCHAR(34)=IPMASK - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,ITABCHAR) + CALL IO_Field_write(TPDIAFILE,TZFIELD,ITABCHAR) DEALLOCATE(ITABCHAR) IF (NVERB>=5) THEN WRITE(ILUOUTDIA,*)' ILENTITRE,ILENUNITE,ILENCOMMENT ',ILENTITRE,ILENUNITE,ILENCOMMENT @@ -294,7 +293,7 @@ SELECT CASE(HTYPE) ITABCHAR(20)=IIMASK; ITABCHAR(21)=IJMASK ITABCHAR(22)=IKMASK; ITABCHAR(23)=ITMASK ITABCHAR(24)=INMASK; ITABCHAR(25)=IPMASK - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,ITABCHAR) + CALL IO_Field_write(TPDIAFILE,TZFIELD,ITABCHAR) DEALLOCATE(ITABCHAR) END SELECT IF (NVERB>=5) THEN @@ -313,7 +312,7 @@ TZFIELD%NGRID = KGRID(1) TZFIELD%NTYPE = TYPECHAR TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,HTITRE(1:IP)) +CALL IO_Field_write(TPDIAFILE,TZFIELD,HTITRE(1:IP)) IF (NVERB>=5) THEN WRITE(ILUOUTDIA,*)' 3rd record (',TRIM(TZFIELD%CMNHNAME),'): OK' @@ -331,7 +330,7 @@ TZFIELD%NGRID = KGRID(1) TZFIELD%NTYPE = TYPECHAR TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,HUNITE(1:IP)) +CALL IO_Field_write(TPDIAFILE,TZFIELD,HUNITE(1:IP)) IF (NVERB>=5) THEN WRITE(ILUOUTDIA,*)' 4th record (',TRIM(TZFIELD%CMNHNAME),'): OK' @@ -349,7 +348,7 @@ TZFIELD%NGRID = KGRID(1) TZFIELD%NTYPE = TYPECHAR TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,HCOMMENT(1:IP)) +CALL IO_Field_write(TPDIAFILE,TZFIELD,HCOMMENT(1:IP)) IF (NVERB>=5) THEN WRITE(ILUOUTDIA,*)' 5th record (',TRIM(TZFIELD%CMNHNAME),'): OK' @@ -383,7 +382,7 @@ IF (PRESENT(OICP) .AND. PRESENT(OJCP)) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 5 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD_BOX(TPDIAFILE,TZFIELD,'BUDGET',PVAR(:,:,:,:,:,J), & + CALL IO_Field_write_BOX(TPDIAFILE,TZFIELD,'BUDGET',PVAR(:,:,:,:,:,J), & KIL+JPHEXT,KIH+JPHEXT,KJL+JPHEXT,KJH+JPHEXT) ELSE TZFIELD%CMNHNAME = TRIM(HGROUP)//'.PROC'//YJ @@ -396,7 +395,7 @@ IF (PRESENT(OICP) .AND. PRESENT(OJCP)) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 5 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PVAR(:,:,:,:,:,J)) + CALL IO_Field_write(TPDIAFILE,TZFIELD,PVAR(:,:,:,:,:,J)) ENDIF ELSE TZFIELD%CMNHNAME = TRIM(HGROUP)//'.PROC'//YJ @@ -409,7 +408,7 @@ ELSE TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 5 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PVAR(:,:,:,:,:,J)) + CALL IO_Field_write(TPDIAFILE,TZFIELD,PVAR(:,:,:,:,:,J)) END IF IF (NVERB>=5) THEN WRITE(ILUOUTDIA,*)J,TRIM(TZFIELD%CMNHNAME) @@ -431,7 +430,7 @@ TZFIELD%NGRID = KGRID(1) TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PTRAJT) +CALL IO_Field_write(TPDIAFILE,TZFIELD,PTRAJT) IF (NVERB>=5) THEN WRITE(ILUOUTDIA,*)' 7th record (',TRIM(TZFIELD%CMNHNAME),'): OK' @@ -453,7 +452,7 @@ IF(PRESENT(PTRAJX))THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PTRAJX) + CALL IO_Field_write(TPDIAFILE,TZFIELD,PTRAJX) ENDIF ! ! ou @@ -469,7 +468,7 @@ IF(PRESENT(PMASK))THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 6 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PMASK) + CALL IO_Field_write(TPDIAFILE,TZFIELD,PMASK) ENDIF ! ! 9eme enregistrement TRAJY @@ -485,7 +484,7 @@ IF(PRESENT(PTRAJY))THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PTRAJY) + CALL IO_Field_write(TPDIAFILE,TZFIELD,PTRAJY) ENDIF ! ! 10eme enregistrement TRAJZ @@ -501,7 +500,7 @@ IF(PRESENT(PTRAJZ))THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PTRAJZ) + CALL IO_Field_write(TPDIAFILE,TZFIELD,PTRAJZ) ENDIF ! ! 11eme enregistrement PDATIME @@ -516,7 +515,7 @@ TZFIELD%NGRID = KGRID(1) TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PDATIME) +CALL IO_Field_write(TPDIAFILE,TZFIELD,PDATIME) ! CALL MENU_DIACHRO(TPDIAFILE,HGROUP) LPACK=GPACK diff --git a/src/MNH/write_dummy_gr_fieldn.f90 b/src/MNH/write_dummy_gr_fieldn.f90 index 358a73cbc..e177c4e2e 100644 --- a/src/MNH/write_dummy_gr_fieldn.f90 +++ b/src/MNH/write_dummy_gr_fieldn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################### @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_DUMMY_GR_FIELD_n(TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics ! @@ -61,13 +61,13 @@ END MODULE MODI_WRITE_DUMMY_GR_FIELD_n !* 0. DECLARATIONS ! ------------ ! -USE MODD_DUMMY_GR_FIELD_n, ONLY : NDUMMY_GR_NBR, CDUMMY_GR_NAME, & - CDUMMY_GR_AREA, XDUMMY_GR_FIELDS -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_PARAMETERS, ONLY : NMNHNAMELGTMAX +USE MODD_DUMMY_GR_FIELD_n, ONLY: NDUMMY_GR_NBR, CDUMMY_GR_NAME, & + CDUMMY_GR_AREA, XDUMMY_GR_FIELDS +USE MODD_IO, ONLY: TFILEDATA +USE MODD_PARAMETERS, ONLY: NMNHNAMELGTMAX ! -USE MODE_FIELD, ONLY : TFIELDDATA,TYPEINT,TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT,TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! IMPLICIT NONE ! @@ -114,7 +114,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPFILE,TZFIELD,NDUMMY_GR_NBR) +CALL IO_Field_write(TPFILE,TZFIELD,NDUMMY_GR_NBR) ! DO JDUMMY=1,NDUMMY_GR_NBR WRITE(YRECFM,'(A8,I3.3)') 'DUMMY_GR',JDUMMY @@ -134,7 +134,7 @@ DO JDUMMY=1,NDUMMY_GR_NBR ! ZWORK2D(:,:) = XDUMMY_GR_FIELDS(:,:,JDUMMY) ! - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D) END DO ! !------------------------------------------------------------------------------- diff --git a/src/MNH/write_hgrid.f90 b/src/MNH/write_hgrid.f90 index 9315a86d1..27b0c7d1a 100644 --- a/src/MNH/write_hgrid.f90 +++ b/src/MNH/write_hgrid.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -9,7 +9,7 @@ INTERFACE SUBROUTINE WRITE_HGRID(KMI,TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! model index TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File to write @@ -58,12 +58,11 @@ END MODULE MODI_WRITE_HGRID USE MODD_CONF USE MODD_CONF_n USE MODD_GRID -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PGDDIM USE MODD_PGDGRID ! -USE MODE_FMWRIT -USE MODE_IO_ll +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG ! USE MODI_WRITE_HGRIDn @@ -94,20 +93,20 @@ END IF !* 2. WRITING FROM MODD_PGD... ! ---------------------- ! -CALL IO_WRITE_FIELD(TPFILE,'LAT0', XLAT0) -CALL IO_WRITE_FIELD(TPFILE,'LON0', XLON0) -CALL IO_WRITE_FIELD(TPFILE,'RPK', XRPK) -CALL IO_WRITE_FIELD(TPFILE,'BETA', XBETA) -CALL IO_WRITE_FIELD(TPFILE,'LATORI',XPGDLATOR) -CALL IO_WRITE_FIELD(TPFILE,'LONORI',XPGDLONOR) -CALL IO_WRITE_FIELD(TPFILE,'IMAX', NPGDIMAX) -CALL IO_WRITE_FIELD(TPFILE,'JMAX', NPGDJMAX) -CALL IO_WRITE_FIELD(TPFILE,'XHAT', XPGDXHAT) -CALL IO_WRITE_FIELD(TPFILE,'YHAT', XPGDYHAT) +CALL IO_Field_write(TPFILE,'LAT0', XLAT0) +CALL IO_Field_write(TPFILE,'LON0', XLON0) +CALL IO_Field_write(TPFILE,'RPK', XRPK) +CALL IO_Field_write(TPFILE,'BETA', XBETA) +CALL IO_Field_write(TPFILE,'LATORI',XPGDLATOR) +CALL IO_Field_write(TPFILE,'LONORI',XPGDLONOR) +CALL IO_Field_write(TPFILE,'IMAX', NPGDIMAX) +CALL IO_Field_write(TPFILE,'JMAX', NPGDJMAX) +CALL IO_Field_write(TPFILE,'XHAT', XPGDXHAT) +CALL IO_Field_write(TPFILE,'YHAT', XPGDYHAT) ! IF (CSTORAGE_TYPE=='TT') THEN - CALL IO_WRITE_FIELD(TPFILE,'THINSHELL',LTHINSHELL) - CALL IO_WRITE_FIELD(TPFILE,'CARTESIAN',LCARTESIAN) + CALL IO_Field_write(TPFILE,'THINSHELL',LTHINSHELL) + CALL IO_Field_write(TPFILE,'CARTESIAN',LCARTESIAN) END IF !------------------------------------------------------------------------------- ! diff --git a/src/MNH/write_hgridn.f90 b/src/MNH/write_hgridn.f90 index 92765f2f7..4e134e365 100644 --- a/src/MNH/write_hgridn.f90 +++ b/src/MNH/write_hgridn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################## @@ -9,7 +9,7 @@ INTERFACE SUBROUTINE WRITE_HGRID_n(TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File to write ! @@ -32,8 +32,8 @@ END MODULE MODI_WRITE_HGRIDn !! !! EXTERNAL !! -------- -!! FMWRIT : to write data in LFIFM file -!! +!! IO_Field_write : to write data in LFIFM file +!! !! IMPLICIT ARGUMENTS !! ------------------ !! Module MODD_GRID : contains projection definition @@ -73,9 +73,9 @@ USE MODD_CONF_n USE MODD_DIM_n USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! -USE MODE_FMWRIT +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! IMPLICIT NONE ! @@ -89,20 +89,20 @@ TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File to write ! NONE !------------------------------------------------------------------------------- ! -CALL IO_WRITE_FIELD(TPFILE,'LAT0', XLAT0) -CALL IO_WRITE_FIELD(TPFILE,'LON0', XLON0) -CALL IO_WRITE_FIELD(TPFILE,'RPK', XRPK) -CALL IO_WRITE_FIELD(TPFILE,'BETA', XBETA) -CALL IO_WRITE_FIELD(TPFILE,'LATORI',XLATORI) -CALL IO_WRITE_FIELD(TPFILE,'LONORI',XLONORI) -CALL IO_WRITE_FIELD(TPFILE,'IMAX', NIMAX) -CALL IO_WRITE_FIELD(TPFILE,'JMAX', NJMAX) -CALL IO_WRITE_FIELD(TPFILE,'XHAT', XXHAT) -CALL IO_WRITE_FIELD(TPFILE,'YHAT', XYHAT) +CALL IO_Field_write(TPFILE,'LAT0', XLAT0) +CALL IO_Field_write(TPFILE,'LON0', XLON0) +CALL IO_Field_write(TPFILE,'RPK', XRPK) +CALL IO_Field_write(TPFILE,'BETA', XBETA) +CALL IO_Field_write(TPFILE,'LATORI',XLATORI) +CALL IO_Field_write(TPFILE,'LONORI',XLONORI) +CALL IO_Field_write(TPFILE,'IMAX', NIMAX) +CALL IO_Field_write(TPFILE,'JMAX', NJMAX) +CALL IO_Field_write(TPFILE,'XHAT', XXHAT) +CALL IO_Field_write(TPFILE,'YHAT', XYHAT) ! IF (CSTORAGE_TYPE=='TT') THEN - CALL IO_WRITE_FIELD(TPFILE,'THINSHELL',LTHINSHELL) - CALL IO_WRITE_FIELD(TPFILE,'CARTESIAN',LCARTESIAN) + CALL IO_Field_write(TPFILE,'THINSHELL',LTHINSHELL) + CALL IO_Field_write(TPFILE,'CARTESIAN',LCARTESIAN) END IF !------------------------------------------------------------------------------- ! diff --git a/src/MNH/write_lbn.f90 b/src/MNH/write_lbn.f90 index 88fc2bf91..5e789e752 100644 --- a/src/MNH/write_lbn.f90 +++ b/src/MNH/write_lbn.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_LB_n(TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics END SUBROUTINE WRITE_LB_n @@ -92,7 +92,7 @@ USE MODD_NSV USE MODD_PARAM_LIMA USE MODD_PARAM_n ! -USE MODE_FMWRIT +USE MODE_IO_FIELD_WRITE, only: IO_Field_write, IO_Field_write_lb USE MODE_ll USE MODE_MSG USE MODE_MODELN_HANDLER @@ -116,7 +116,7 @@ USE MODD_SALT USE MODI_DUSTLFI_n USE MODI_SALTLFI_n USE MODD_PARAMETERS, ONLY: JPHEXT -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL ! ! @@ -158,32 +158,32 @@ IMI = GET_CURRENT_MODEL_INDEX() ! 2. WRITE THE DIMENSION OF LB FIELDS ! -------------------------------- ! -CALL IO_WRITE_FIELD(TPFILE,'RIMX',NRIMX) -CALL IO_WRITE_FIELD(TPFILE,'RIMY',NRIMY) +CALL IO_Field_write(TPFILE,'RIMX',NRIMX) +CALL IO_Field_write(TPFILE,'RIMY',NRIMY) ! !* 3. BASIC VARIABLES ! -------------- ! -CALL IO_WRITE_FIELD(TPFILE,'HORELAX_UVWTH',LHORELAX_UVWTH) +CALL IO_Field_write(TPFILE,'HORELAX_UVWTH',LHORELAX_UVWTH) ! !gathering and writing of the LB fields -IF(NSIZELBXU_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBXUM', NSIZELBXU_ll,XLBXUM) -IF(NSIZELBX_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBXVM', NSIZELBX_ll,XLBXVM) -IF(NSIZELBX_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBXWM', NSIZELBX_ll,XLBXWM) -IF(NSIZELBY_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBYUM', NSIZELBY_ll,XLBYUM) -IF(NSIZELBYV_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBYVM', NSIZELBYV_ll,XLBYVM) -IF(NSIZELBY_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBYWM', NSIZELBY_ll,XLBYWM) -IF(NSIZELBX_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBXTHM',NSIZELBX_ll,XLBXTHM) -IF(NSIZELBY_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBYTHM',NSIZELBY_ll,XLBYTHM) +IF(NSIZELBXU_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBXUM', NSIZELBXU_ll,XLBXUM) +IF(NSIZELBX_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBXVM', NSIZELBX_ll,XLBXVM) +IF(NSIZELBX_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBXWM', NSIZELBX_ll,XLBXWM) +IF(NSIZELBY_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBYUM', NSIZELBY_ll,XLBYUM) +IF(NSIZELBYV_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBYVM', NSIZELBYV_ll,XLBYVM) +IF(NSIZELBY_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBYWM', NSIZELBY_ll,XLBYWM) +IF(NSIZELBX_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBXTHM',NSIZELBX_ll,XLBXTHM) +IF(NSIZELBY_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBYTHM',NSIZELBY_ll,XLBYTHM) ! !* 4 LB-TKE ! ------ ! IF(CTURB/='NONE') THEN - CALL IO_WRITE_FIELD(TPFILE,'HORELAX_TKE',LHORELAX_TKE) + CALL IO_Field_write(TPFILE,'HORELAX_TKE',LHORELAX_TKE) ! - IF(NSIZELBXTKE_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBXTKEM',NSIZELBXTKE_ll,XLBXTKEM) - IF(NSIZELBYTKE_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBYTKEM',NSIZELBYTKE_ll,XLBYTKEM) + IF(NSIZELBXTKE_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBXTKEM',NSIZELBXTKE_ll,XLBXTKEM) + IF(NSIZELBYTKE_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBYTKEM',NSIZELBYTKE_ll,XLBYTKEM) END IF ! ! @@ -207,7 +207,7 @@ IF (NRR >=1) THEN TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. ! - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,GHORELAX_R) + CALL IO_Field_write(TPFILE,TZFIELD,GHORELAX_R) ! GUSER(:)=(/LUSERV,LUSERC,LUSERR,LUSERI,LUSERS,LUSERG,LUSERH/) YC(:)=(/"V","C","R","I","S","G","H"/) @@ -229,7 +229,7 @@ IF (NRR >=1) THEN TZFIELD%CLONGNAME = 'LBXR'//YC(JRR)//'M' TZFIELD%CLBTYPE = 'LBX' TZFIELD%CCOMMENT = '2_Y_Z_LBXR'//YC(JRR)//'M' - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXR_ll,XLBXRM(:,:,:,IRR)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXR_ll,XLBXRM(:,:,:,IRR)) END IF ! IF(NSIZELBYR_ll /= 0) THEN @@ -237,7 +237,7 @@ IF (NRR >=1) THEN TZFIELD%CLONGNAME = 'LBYR'//YC(JRR)//'M' TZFIELD%CLBTYPE = 'LBY' TZFIELD%CCOMMENT = '2_Y_Z_LBYR'//YC(JRR)//'M' - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXR_ll,XLBYRM(:,:,:,IRR)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXR_ll,XLBYRM(:,:,:,IRR)) END IF END IF END DO @@ -261,7 +261,7 @@ IF (NSV >=1) THEN TZFIELD%NTYPE = TYPELOG TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,GHORELAX_SV) + CALL IO_Field_write(TPFILE,TZFIELD,GHORELAX_SV) ! IRIMX =(NSIZELBXSV_ll-2*JPHEXT)/2 IRIMY =(NSIZELBYSV_ll-2*JPHEXT)/2 @@ -280,7 +280,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -288,7 +288,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -308,7 +308,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -316,7 +316,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -336,7 +336,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -344,7 +344,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -367,7 +367,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -375,7 +375,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO ! @@ -386,7 +386,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -394,7 +394,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -416,7 +416,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -424,7 +424,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -469,7 +469,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -477,7 +477,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO ! @@ -488,7 +488,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -496,7 +496,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -516,7 +516,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -524,7 +524,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO ! @@ -534,7 +534,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -542,7 +542,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO ! @@ -552,7 +552,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -560,7 +560,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO ! @@ -623,14 +623,14 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) ENDIF !Check on border points in X direction IF(NSIZELBYSV_ll /= 0) THEN TZFIELD%CMNHNAME = 'LBY_'//TRIM(YPDUST_INI(ISV_NAME_IDX)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) ENDIF !Check on points in Y direction ENDDO ! Loop on mode ELSE ! valeur IMOMENTS =/ 1 @@ -646,14 +646,14 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) ENDIF !Check on border points in X direction IF(NSIZELBYSV_ll /= 0) THEN TZFIELD%CMNHNAME = 'LBY_'//TRIM(YPDUST_INI(ISV_NAME_IDX)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) ENDIF !Check on points in Y direction ENDDO ! Loop on moments ENDDO ! Loop on modes @@ -677,7 +677,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -685,7 +685,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO IF (LDEPOS_DST(IMI)) THEN @@ -695,7 +695,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -703,7 +703,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -771,14 +771,14 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) ENDIF !Check on border points in X direction IF(NSIZELBYSV_ll /= 0) THEN TZFIELD%CMNHNAME = 'LBY_'//TRIM(YPSALT_INI(ISV_NAME_IDX)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) ENDIF !Check on points in Y direction ENDDO ! Loop on mode ELSE ! valeur IMOMENTS =/ 1 @@ -794,14 +794,14 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) ENDIF !Check on border points in X direction IF(NSIZELBYSV_ll /= 0) THEN TZFIELD%CMNHNAME = 'LBY_'//TRIM(YPSALT_INI(ISV_NAME_IDX)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) ENDIF !Check on points in Y direction ENDDO ! Loop on moments ENDDO ! Loop on modes @@ -823,7 +823,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -831,7 +831,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO IF (LDEPOS_SLT(IMI)) THEN @@ -841,7 +841,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -849,7 +849,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -872,7 +872,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -880,7 +880,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -900,7 +900,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -908,7 +908,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -928,7 +928,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -936,7 +936,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -957,7 +957,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -965,7 +965,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF diff --git a/src/MNH/write_les_budgetn.f90 b/src/MNH/write_les_budgetn.f90 index 628ba7d6f..dc12b57ca 100644 --- a/src/MNH/write_les_budgetn.f90 +++ b/src/MNH/write_les_budgetn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2000-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !###################### @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_LES_BUDGET_n(TPDIAFILE,HLES_AVG) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE! file to write CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG ! flag to perform the averages @@ -58,7 +58,7 @@ END MODULE MODI_WRITE_LES_BUDGET_n ! ------------ ! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_LES_n USE MODD_CONF_n diff --git a/src/MNH/write_les_rt_budgetn.f90 b/src/MNH/write_les_rt_budgetn.f90 index 558f7df3a..92f37d1db 100644 --- a/src/MNH/write_les_rt_budgetn.f90 +++ b/src/MNH/write_les_rt_budgetn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2002-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !###################### @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_LES_RT_BUDGET_n(TPDIAFILE,HLES_AVG) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG ! flag to perform the averages @@ -57,7 +57,7 @@ END MODULE MODI_WRITE_LES_RT_BUDGET_n ! ------------ ! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_LES_n USE MODD_LES_BUDGET diff --git a/src/MNH/write_les_sv_budgetn.f90 b/src/MNH/write_les_sv_budgetn.f90 index af1d62eac..10df1eebe 100644 --- a/src/MNH/write_les_sv_budgetn.f90 +++ b/src/MNH/write_les_sv_budgetn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2002-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !###################### @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_LES_SV_BUDGET_n(TPDIAFILE,HLES_AVG) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG ! flag to perform the averages @@ -57,7 +57,7 @@ END MODULE MODI_WRITE_LES_SV_BUDGET_n ! ------------ ! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_LES_n USE MODD_CONF_n diff --git a/src/MNH/write_lesn.f90 b/src/MNH/write_lesn.f90 index 260b53bf0..f269d460d 100644 --- a/src/MNH/write_lesn.f90 +++ b/src/MNH/write_lesn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2000-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !###################### @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_LES_n(TPDIAFILE,HLES_AVG) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE! file to write CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG ! flag to perform the averages @@ -63,7 +63,7 @@ END MODULE MODI_WRITE_LES_n ! ------------ ! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_LES_n USE MODD_FIELD_n diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90 index ab6f980b4..c81ac0f78 100644 --- a/src/MNH/write_lfifm1_for_diag.f90 +++ b/src/MNH/write_lfifm1_for_diag.f90 @@ -9,7 +9,7 @@ MODULE MODI_WRITE_LFIFM1_FOR_DIAG INTERFACE SUBROUTINE WRITE_LFIFM1_FOR_DIAG(TPFILE,HDADFILE) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! outpput data file CHARACTER(LEN=28), INTENT(IN) :: HDADFILE ! corresponding FM-file name of @@ -152,7 +152,7 @@ USE MODD_CONF USE MODD_CONF_n USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_METRICS_n USE MODD_TIME USE MODD_TIME_n @@ -230,16 +230,15 @@ USE MODI_FREE_ATM_PROFILE USE MODI_GPS_ZENITH USE MODI_CONTRAV ! -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll,IO_FILE_OPEN_ll USE MODE_GRIDPROJ USE MODE_FIELD -USE MODE_FMWRIT USE MODE_GATHER_ll +USE MODE_IO_FIELD_WRITE, only: IO_Field_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list USE MODE_ll -! USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT,ONLY: IO_FILE_ADD2LIST USE MODE_THERMO -USE MODE_TOOLS, ONLY: UPCASE +USE MODE_TOOLS, ONLY: UPCASE USE MODE_MODELN_HANDLER USE MODI_LIDAR USE MODI_CLUSTERING @@ -366,43 +365,43 @@ TZRSFILE => NULL() ! !* 1.0 TPFILE%CNAME and HDADFILE : ! -CALL IO_WRITE_FIELD(TPFILE,'MASDEV', NMASDEV) -CALL IO_WRITE_FIELD(TPFILE,'BUGFIX', NBUGFIX) -CALL IO_WRITE_FIELD(TPFILE,'BIBUSER', CBIBUSER) -CALL IO_WRITE_FIELD(TPFILE,'PROGRAM', CPROGRAM) +CALL IO_Field_write(TPFILE,'MASDEV', NMASDEV) +CALL IO_Field_write(TPFILE,'BUGFIX', NBUGFIX) +CALL IO_Field_write(TPFILE,'BIBUSER', CBIBUSER) +CALL IO_Field_write(TPFILE,'PROGRAM', CPROGRAM) ! -CALL IO_WRITE_FIELD(TPFILE,'L1D', L1D) -CALL IO_WRITE_FIELD(TPFILE,'L2D', L2D) -CALL IO_WRITE_FIELD(TPFILE,'PACK', LPACK) +CALL IO_Field_write(TPFILE,'L1D', L1D) +CALL IO_Field_write(TPFILE,'L2D', L2D) +CALL IO_Field_write(TPFILE,'PACK', LPACK) ! -CALL IO_WRITE_FIELD(TPFILE,'MY_NAME', TPFILE%CNAME) -CALL IO_WRITE_FIELD(TPFILE,'DAD_NAME', HDADFILE) +CALL IO_Field_write(TPFILE,'MY_NAME', TPFILE%CNAME) +CALL IO_Field_write(TPFILE,'DAD_NAME', HDADFILE) ! IF (LEN_TRIM(HDADFILE)>0) THEN - CALL IO_WRITE_FIELD(TPFILE,'DXRATIO',NDXRATIO_ALL(1)) - CALL IO_WRITE_FIELD(TPFILE,'DYRATIO',NDYRATIO_ALL(1)) - CALL IO_WRITE_FIELD(TPFILE,'XOR', NXOR_ALL(1)) - CALL IO_WRITE_FIELD(TPFILE,'YOR', NYOR_ALL(1)) + CALL IO_Field_write(TPFILE,'DXRATIO',NDXRATIO_ALL(1)) + CALL IO_Field_write(TPFILE,'DYRATIO',NDYRATIO_ALL(1)) + CALL IO_Field_write(TPFILE,'XOR', NXOR_ALL(1)) + CALL IO_Field_write(TPFILE,'YOR', NYOR_ALL(1)) END IF ! -CALL IO_WRITE_FIELD(TPFILE,'SURF', CSURF) +CALL IO_Field_write(TPFILE,'SURF', CSURF) ! !* 1.1 Type and Dimensions : ! -CALL IO_WRITE_FIELD(TPFILE,'STORAGE_TYPE','DI') +CALL IO_Field_write(TPFILE,'STORAGE_TYPE','DI') ! -CALL IO_WRITE_FIELD(TPFILE,'IMAX',NIMAX_ll) -CALL IO_WRITE_FIELD(TPFILE,'JMAX',NJMAX_ll) -CALL IO_WRITE_FIELD(TPFILE,'KMAX',NKMAX) +CALL IO_Field_write(TPFILE,'IMAX',NIMAX_ll) +CALL IO_Field_write(TPFILE,'JMAX',NJMAX_ll) +CALL IO_Field_write(TPFILE,'KMAX',NKMAX) ! -CALL IO_WRITE_FIELD(TPFILE,'JPHEXT',JPHEXT) +CALL IO_Field_write(TPFILE,'JPHEXT',JPHEXT) ! !* 1.2 Grid variables : ! IF (.NOT.LCARTESIAN) THEN - CALL IO_WRITE_FIELD(TPFILE,'RPK', XRPK) - CALL IO_WRITE_FIELD(TPFILE,'LONORI',XLONORI) - CALL IO_WRITE_FIELD(TPFILE,'LATORI',XLATORI) + CALL IO_Field_write(TPFILE,'RPK', XRPK) + CALL IO_Field_write(TPFILE,'LONORI',XLONORI) + CALL IO_Field_write(TPFILE,'LATORI',XLATORI) ! !* diagnostic of 1st mass point ! @@ -414,40 +413,40 @@ IF (.NOT.LCARTESIAN) THEN CALL SM_LATLON(XLATORI,XLONORI,ZXHATM,ZYHATM,ZLATOR,ZLONOR) DEALLOCATE(ZXHAT_ll,ZYHAT_ll) ! - CALL IO_WRITE_FIELD(TPFILE,'LONOR',ZLONOR) - CALL IO_WRITE_FIELD(TPFILE,'LATOR',ZLATOR) + CALL IO_Field_write(TPFILE,'LONOR',ZLONOR) + CALL IO_Field_write(TPFILE,'LATOR',ZLATOR) ! END IF ! -CALL IO_WRITE_FIELD(TPFILE,'THINSHELL',LTHINSHELL) -CALL IO_WRITE_FIELD(TPFILE,'LAT0',XLAT0) -CALL IO_WRITE_FIELD(TPFILE,'LON0',XLON0) -CALL IO_WRITE_FIELD(TPFILE,'BETA',XBETA) +CALL IO_Field_write(TPFILE,'THINSHELL',LTHINSHELL) +CALL IO_Field_write(TPFILE,'LAT0',XLAT0) +CALL IO_Field_write(TPFILE,'LON0',XLON0) +CALL IO_Field_write(TPFILE,'BETA',XBETA) ! -CALL IO_WRITE_FIELD(TPFILE,'XHAT',XXHAT) -CALL IO_WRITE_FIELD(TPFILE,'YHAT',XYHAT) -CALL IO_WRITE_FIELD(TPFILE,'ZHAT',XZHAT) -CALL IO_WRITE_FIELD(TPFILE,'ZTOP',XZTOP) +CALL IO_Field_write(TPFILE,'XHAT',XXHAT) +CALL IO_Field_write(TPFILE,'YHAT',XYHAT) +CALL IO_Field_write(TPFILE,'ZHAT',XZHAT) +CALL IO_Field_write(TPFILE,'ZTOP',XZTOP) ! -CALL IO_WRITE_FIELD(TPFILE,'ZS', XZS) -CALL IO_WRITE_FIELD(TPFILE,'ZSMT', XZSMT) -CALL IO_WRITE_FIELD(TPFILE,'SLEVE',LSLEVE) +CALL IO_Field_write(TPFILE,'ZS', XZS) +CALL IO_Field_write(TPFILE,'ZSMT', XZSMT) +CALL IO_Field_write(TPFILE,'SLEVE',LSLEVE) ! IF (LSLEVE) THEN - CALL IO_WRITE_FIELD(TPFILE,'LEN1',XLEN1) - CALL IO_WRITE_FIELD(TPFILE,'LEN2',XLEN2) + CALL IO_Field_write(TPFILE,'LEN1',XLEN1) + CALL IO_Field_write(TPFILE,'LEN2',XLEN2) END IF ! ! -CALL IO_WRITE_FIELD(TPFILE,'DTMOD',TDTMOD) -CALL IO_WRITE_FIELD(TPFILE,'DTCUR',TDTCUR) -CALL IO_WRITE_FIELD(TPFILE,'DTEXP',TDTEXP) -CALL IO_WRITE_FIELD(TPFILE,'DTSEG',TDTSEG) +CALL IO_Field_write(TPFILE,'DTMOD',TDTMOD) +CALL IO_Field_write(TPFILE,'DTCUR',TDTCUR) +CALL IO_Field_write(TPFILE,'DTEXP',TDTEXP) +CALL IO_Field_write(TPFILE,'DTSEG',TDTSEG) ! !* 1.3 Configuration variables : ! -CALL IO_WRITE_FIELD(TPFILE,'CARTESIAN',LCARTESIAN) -CALL IO_WRITE_FIELD(TPFILE,'LBOUSS', LBOUSS) +CALL IO_Field_write(TPFILE,'CARTESIAN',LCARTESIAN) +CALL IO_Field_write(TPFILE,'LBOUSS', LBOUSS) ! IF (LCARTESIAN .AND. LWIND_ZM) THEN LWIND_ZM=.FALSE. @@ -455,12 +454,12 @@ IF (LCARTESIAN .AND. LWIND_ZM) THEN END IF !* 1.4 Reference state variables : ! -CALL IO_WRITE_FIELD(TPFILE,'RHOREFZ',XRHODREFZ) -CALL IO_WRITE_FIELD(TPFILE,'THVREFZ',XTHVREFZ) -CALL IO_WRITE_FIELD(TPFILE,'EXNTOP', XEXNTOP) +CALL IO_Field_write(TPFILE,'RHOREFZ',XRHODREFZ) +CALL IO_Field_write(TPFILE,'THVREFZ',XTHVREFZ) +CALL IO_Field_write(TPFILE,'EXNTOP', XEXNTOP) ! -CALL IO_WRITE_FIELD(TPFILE,'RHODREF',XRHODREF) -CALL IO_WRITE_FIELD(TPFILE,'THVREF', XTHVREF) +CALL IO_Field_write(TPFILE,'RHODREF',XRHODREF) +CALL IO_Field_write(TPFILE,'THVREF', XTHVREF) ! ! !* 1.5 Variables necessary for plots @@ -469,11 +468,11 @@ CALL IO_WRITE_FIELD(TPFILE,'THVREF', XTHVREF) ! level or constant theta level or constant PV level ! IF (INDEX(CISO,'PR') /= 0) THEN - CALL IO_WRITE_FIELD(TPFILE,'PABST',XPABST) + CALL IO_Field_write(TPFILE,'PABST',XPABST) END IF ! IF (INDEX(CISO,'TK') /= 0) THEN - CALL IO_WRITE_FIELD(TPFILE,'THT',XTHT) + CALL IO_Field_write(TPFILE,'THT',XTHT) END IF ! ZCORIOZ(:,:,:)=SPREAD( XCORIOZ(:,:),DIM=3,NCOPIES=IKU ) @@ -504,13 +503,13 @@ IF (INDEX(CISO,'EV') /= 0) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPOVO) + CALL IO_Field_write(TPFILE,TZFIELD,ZPOVO) END IF ! ! IF (LVAR_RS) THEN - CALL IO_WRITE_FIELD(TPFILE,'UT',XUT) - CALL IO_WRITE_FIELD(TPFILE,'VT',XVT) + CALL IO_Field_write(TPFILE,'UT',XUT) + CALL IO_Field_write(TPFILE,'VT',XVT) ! IF (LWIND_ZM) THEN TZFIELD2(1)%CMNHNAME = 'UM_ZM' @@ -538,20 +537,20 @@ IF (LVAR_RS) THEN CALL UV_TO_ZONAL_AND_MERID(XUT,XVT,23,TPFILE=TPFILE,TZFIELDS=TZFIELD2) END IF ! - CALL IO_WRITE_FIELD(TPFILE,'WT',XWT) + CALL IO_Field_write(TPFILE,'WT',XWT) ! ! write mixing ratio for water vapor required to plot radio-soundings ! IF (LUSERV) THEN - CALL IO_WRITE_FIELD(TPFILE,'RVT',XRT(:,:,:,IDX_RVT)) + CALL IO_Field_write(TPFILE,'RVT',XRT(:,:,:,IDX_RVT)) END IF END IF ! !* Latitude and Longitude arrays ! IF (.NOT.LCARTESIAN) THEN - CALL IO_WRITE_FIELD(TPFILE,'LAT',XLAT) - CALL IO_WRITE_FIELD(TPFILE,'LON',XLON) + CALL IO_Field_write(TPFILE,'LAT',XLAT) + CALL IO_Field_write(TPFILE,'LON',XLON) END IF ! ! @@ -563,15 +562,15 @@ ZTEMP(:,:,:)=XTHT(:,:,:)*(XPABST(:,:,:)/ XP00) **(XRD/XCPD) ! IF (LVAR_TURB) THEN IF (CTURB /= 'NONE') THEN - CALL IO_WRITE_FIELD(TPFILE,'TKET',XTKET) + CALL IO_Field_write(TPFILE,'TKET',XTKET) ! IF( NRR > 1 ) THEN - CALL IO_WRITE_FIELD(TPFILE,'SRCT',XSRCT) - CALL IO_WRITE_FIELD(TPFILE,'SIGS',XSIGS) + CALL IO_Field_write(TPFILE,'SRCT',XSRCT) + CALL IO_Field_write(TPFILE,'SIGS',XSIGS) END IF ! IF(CTOM=='TM06') THEN - CALL IO_WRITE_FIELD(TPFILE,'BL_DEPTH',XBL_DEPTH) + CALL IO_Field_write(TPFILE,'BL_DEPTH',XBL_DEPTH) END IF END IF END IF @@ -585,15 +584,15 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRR',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRR*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRR*3.6E6) ! - CALL IO_WRITE_FIELD(TPFILE,'INPRR3D',XINPRR3D) - CALL IO_WRITE_FIELD(TPFILE,'EVAP3D', XEVAP3D) + CALL IO_Field_write(TPFILE,'INPRR3D',XINPRR3D) + CALL IO_Field_write(TPFILE,'EVAP3D', XEVAP3D) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRR',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRR*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRR*1.0E3) ! IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR.& CCLOUD == 'KHKO' .OR. CCLOUD == 'LIMA') THEN @@ -601,56 +600,56 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRC',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRC*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRC*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRC',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRC*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRC*1.0E3) END IF IF (SIZE(XINDEP) /= 0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INDEP',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINDEP*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINDEP*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACDEP',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACDEP*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACDEP*1.0E3) END IF END IF IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'LIMA') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRS*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRS*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRS*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRS*1.0E3) ! CALL FIND_FIELD_ID_FROM_MNHNAME('INPRG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRG*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRG*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRG*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRG*1.0E3) ! IF (SIZE(XINPRH) /= 0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRH',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRH*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRH*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRH',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRH*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRH*1.0E3) ENDIF ! ZWORK21(:,:) = XINPRR(:,:) + XINPRS(:,:) + XINPRG(:,:) @@ -661,7 +660,7 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21*3.6E6) ! ZWORK21(:,:) = (XACPRR(:,:) + XACPRS(:,:) + XACPRG(:,:))*1.0E3 IF (SIZE(XINPRC) /= 0 ) & @@ -672,7 +671,7 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21*1.0E3) ! END IF ! @@ -682,17 +681,17 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('PRCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPRCONV*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XPRCONV*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('PACCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPACCONV*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XPACCONV*1.0E3) ! CALL FIND_FIELD_ID_FROM_MNHNAME('PRSCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPRSCONV*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XPRSCONV*3.6E6) END IF END IF IF (LVAR_PR ) THEN @@ -730,7 +729,7 @@ IF (LVAR_PR ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK22) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) ENDIF ! ! @@ -809,7 +808,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! TZFIELD%CMNHNAME = 'VM90' TZFIELD%CSTDNAME = '' @@ -821,7 +820,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK32) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! composantes U et V du flux d'humidité intégré sur 3000 metres TZFIELD%CMNHNAME = 'UM91' TZFIELD%CSTDNAME = '' @@ -833,7 +832,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! TZFIELD%CMNHNAME = 'VM91' TZFIELD%CSTDNAME = '' @@ -845,7 +844,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK22) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) ! ! Convergence d'humidité TZFIELD%CMNHNAME = 'HMCONV' @@ -858,7 +857,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,-ZWORK35) + CALL IO_Field_write(TPFILE,TZFIELD,-ZWORK35) ! ! Convergence d'humidité intégré sur 3000 mètres TZFIELD%CMNHNAME = 'HMCONV3000' @@ -871,7 +870,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,-ZWORK25) + CALL IO_Field_write(TPFILE,TZFIELD,-ZWORK25) ! IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'LIMA') THEN ! composantes U et V du flux surfacique d'hydrométéores @@ -885,7 +884,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK33) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) ! TZFIELD%CMNHNAME = 'VM92' TZFIELD%CSTDNAME = '' @@ -897,7 +896,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK34) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) ! composantes U et V du flux d'hydrométéores intégré sur 3000 metres TZFIELD%CMNHNAME = 'UM93' TZFIELD%CSTDNAME = '' @@ -909,7 +908,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK23) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK23) ! TZFIELD%CMNHNAME = 'VM93' TZFIELD%CSTDNAME = '' @@ -921,7 +920,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK24) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK24) ! Convergence d'hydrométéores TZFIELD%CMNHNAME = 'HMCONV_TT' TZFIELD%CSTDNAME = '' @@ -933,7 +932,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,-ZWORK36) + CALL IO_Field_write(TPFILE,TZFIELD,-ZWORK36) ! Convergence d'hydrométéores intégré sur 3000 mètres TZFIELD%CMNHNAME = 'HMCONV3000_TT' TZFIELD%CSTDNAME = '' @@ -945,7 +944,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,-ZWORK26) + CALL IO_Field_write(TPFILE,TZFIELD,-ZWORK26) ENDIF ENDIF ! @@ -965,43 +964,43 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN TZFIELD%CLONGNAME = 'MRV' TZFIELD%CUNITS = 'g kg-1' TZFIELD%CCOMMENT = 'X_Y_Z_MRV' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RVT)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RVT)*1.E3) END IF IF (LUSERC) THEN TZFIELD%CMNHNAME = 'MRC' TZFIELD%CLONGNAME = 'MRC' TZFIELD%CUNITS = 'g kg-1' TZFIELD%CCOMMENT = 'X_Y_Z_MRC' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RCT)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RCT)*1.E3) ! TZFIELD%CMNHNAME = 'VRC' TZFIELD%CLONGNAME = 'VRC' TZFIELD%CUNITS = '1' !vol/vol TZFIELD%CCOMMENT = 'X_Y_Z_VRC (vol/vol)' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RCT)*XRHODREF(:,:,:)/1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RCT)*XRHODREF(:,:,:)/1.E3) END IF IF (LUSERR) THEN TZFIELD%CMNHNAME = 'MRR' TZFIELD%CLONGNAME = 'MRR' TZFIELD%CUNITS = 'g kg-1' TZFIELD%CCOMMENT = 'X_Y_Z_MRR' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RRT)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RRT)*1.E3) ! TZFIELD%CMNHNAME = 'VRR' TZFIELD%CLONGNAME = 'VRR' TZFIELD%CUNITS = '1' !vol/vol TZFIELD%CCOMMENT = 'X_Y_Z_VRR (vol/vol)' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RRT)*XRHODREF(:,:,:)/1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RRT)*XRHODREF(:,:,:)/1.E3) END IF IF (LUSERI) THEN TZFIELD%CMNHNAME = 'MRI' TZFIELD%CLONGNAME = 'MRI' TZFIELD%CUNITS = 'g kg-1' TZFIELD%CCOMMENT = 'X_Y_Z_MRI' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RIT)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RIT)*1.E3) ! IF (LUSECI) THEN - CALL IO_WRITE_FIELD(TPFILE,'CIT',XCIT(:,:,:)) + CALL IO_Field_write(TPFILE,'CIT',XCIT(:,:,:)) END IF END IF IF (LUSERS) THEN @@ -1009,21 +1008,21 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN TZFIELD%CLONGNAME = 'MRS' TZFIELD%CUNITS = 'g kg-1' TZFIELD%CCOMMENT = 'X_Y_Z_MRS' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RST)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RST)*1.E3) END IF IF (LUSERG) THEN TZFIELD%CMNHNAME = 'MRG' TZFIELD%CLONGNAME = 'MRG' TZFIELD%CUNITS = 'g kg-1' TZFIELD%CCOMMENT = 'X_Y_Z_MRG' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RGT)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RGT)*1.E3) END IF IF (LUSERH) THEN TZFIELD%CMNHNAME = 'MRH' TZFIELD%CLONGNAME = 'MRH' TZFIELD%CUNITS = 'g kg-1' TZFIELD%CCOMMENT = 'X_Y_Z_MRH' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RHT)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RHT)*1.E3) END IF END IF END IF @@ -1045,7 +1044,7 @@ IF (LVAR_MRSV) THEN WRITE(TZFIELD%CMNHNAME,'(A4,I3.3)')'MRSV',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3)')'X_Y_Z_','MRSV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E3) END DO END IF ! microphysical C2R2 scheme scalar variables @@ -1069,7 +1068,7 @@ IF(LVAR_MRW) THEN ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E-3 END IF WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3)')'X_Y_Z_','MRSV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END DO END IF ! microphysical C3R5 scheme additional scalar variables @@ -1086,7 +1085,7 @@ IF(LVAR_MRW) THEN TZFIELD%CMNHNAME = TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E-3) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E-3) END DO END IF END IF @@ -1159,7 +1158,7 @@ IF (LLIMA_DIAG) THEN ! TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E-6*XRHODREF(:,:,:) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END DO ! IF (LUSERC) THEN @@ -1174,7 +1173,7 @@ IF (LLIMA_DIAG) THEN TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. ZWORK31(:,:,:)=XRT(:,:,:,2)*1.E3*XRHODREF(:,:,:) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF ! IF (LUSERI) THEN @@ -1189,7 +1188,7 @@ IF (LLIMA_DIAG) THEN TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. ZWORK31(:,:,:)=XRT(:,:,:,4)*1.E3*XRHODREF(:,:,:) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF ! END IF @@ -1207,7 +1206,7 @@ IF (LCHEMDIAG) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) END DO END IF IF (LCHAQDIAG) THEN !aqueous concentration in M @@ -1228,7 +1227,7 @@ IF (LCHAQDIAG) THEN !aqueous concentration in M WHERE(((XRT(:,:,:,2)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ) ZWORK31(:,:,:)=(XSVT(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRT(:,:,:,2)) ENDWHERE - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END DO ! ZWORK31(:,:,:)=0. @@ -1239,7 +1238,7 @@ IF (LCHAQDIAG) THEN !aqueous concentration in M WHERE(((XRT(:,:,:,3)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ) ZWORK31(:,:,:)=(XSVT(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRT(:,:,:,3)) ENDWHERE - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END DO ! ZWORK31(:,:,:)=0. ! DO JSV = NSV_CHICBEG,NSV_CHICEND ! ice phase @@ -1249,7 +1248,7 @@ IF (LCHAQDIAG) THEN !aqueous concentration in M ! WHERE(((XRT(:,:,:,3)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ) ! ZWORK31(:,:,:)=(XSVT(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRT(:,:,:,3)) ! ENDWHERE -! CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) +! CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! END DO END IF @@ -1279,7 +1278,7 @@ IF (LPASPOL) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'PPT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTMP) + CALL IO_Field_write(TPFILE,TZFIELD,ZTMP) END DO DEALLOCATE(ZTMP) DEALLOCATE(ZRHOT) @@ -1298,7 +1297,7 @@ IF (LCONDSAMP) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'CST',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) END DO END IF ! @@ -1315,7 +1314,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSNWSUBL3D(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,XSNWSUBL3D(:,:,:)) ! ZWORK21(:,:) = 0. DO JK = IKB,IKE @@ -1334,7 +1333,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21(:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21(:,:)) ! IF(.NOT.ALLOCATED(ZBET_SNW)) & ALLOCATE(ZBET_SNW(SIZE(XSVT,1), SIZE(XSVT,2), SIZE(XSVT,3))) @@ -1356,7 +1355,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZRG_SNW(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZRG_SNW(:,:,:)) ! TZFIELD%CMNHNAME = 'SNWBETA' TZFIELD%CSTDNAME = '' @@ -1368,7 +1367,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZBET_SNW(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZBET_SNW(:,:,:)) ! TZFIELD%CMNHNAME = 'SNWNOA' TZFIELD%CSTDNAME = '' @@ -1380,7 +1379,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZMA_SNW(:,:,:,1)) + CALL IO_Field_write(TPFILE,TZFIELD,ZMA_SNW(:,:,:,1)) ! TZFIELD%CMNHNAME = 'SNWMASS' TZFIELD%CSTDNAME = '' @@ -1392,7 +1391,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZMA_SNW(:,:,:,2)) + CALL IO_Field_write(TPFILE,TZFIELD,ZMA_SNW(:,:,:,2)) ! ZWORK21(:,:) = 0. DO JK = IKB,IKE @@ -1410,7 +1409,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21(:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21(:,:)) END IF ! Lagrangian variables IF (LTRAJ) THEN @@ -1427,7 +1426,7 @@ IF (LTRAJ) THEN TZFIELD%CMNHNAME = TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A20,I3.3,A4)')'X_Y_Z_','Lagrangian variable ',JSV,' (M)' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) END DO ! X coordinate DO JK=1,IKU @@ -1441,7 +1440,7 @@ IF (LTRAJ) THEN TZFIELD%CMNHNAME = 'X' TZFIELD%CLONGNAME = 'X' TZFIELD%CCOMMENT = 'X_Y_Z_X coordinate' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! Y coordinate DO JK=1,IKU DO JI=1,IIU @@ -1454,7 +1453,7 @@ IF (LTRAJ) THEN TZFIELD%CMNHNAME = 'Y' TZFIELD%CLONGNAME = 'Y' TZFIELD%CCOMMENT = 'X_Y_Z_Y coordinate' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF ! linox scalar variables IF (.NOT.(LUSECHEM .OR. LCHEMDIAG) .AND. LCH_CONV_LINOX) THEN @@ -1469,7 +1468,7 @@ IF (.NOT.(LUSECHEM .OR. LCHEMDIAG) .AND. LCH_CONV_LINOX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) END DO END IF IF (LELECDIAG .AND. CELEC .NE. "NONE") THEN @@ -1491,7 +1490,7 @@ IF (LELECDIAG .AND. CELEC .NE. "NONE") THEN WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (nb ions/m3)' END IF ZWORK31(:,:,:)=XSVT(:,:,:,JSV) * XRHODREF(:,:,:) ! C/kg --> C/m3 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END DO END IF ! Sea Salt variables @@ -1515,7 +1514,7 @@ IF (LSALT) THEN TZFIELD%CMNHNAME = TRIM(UPCASE(CSALTNAMES(JSV-NSV_SLTBEG+1)))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3)')'X_Y_Z_','SALT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) END DO ! CALL PPP2SALT(XSVT(:,:,:,NSV_SLTBEG:NSV_SLTEND),XRHODREF,& @@ -1533,26 +1532,26 @@ IF (LSALT) THEN TZFIELD%CLONGNAME = 'SLTRGA' TZFIELD%CUNITS = 'um' WRITE(TZFIELD%CCOMMENT,'(A18,I1)')'RG (nb) SALT MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZRG_SLT(:,:,:,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZRG_SLT(:,:,:,JJ)) ! TZFIELD%CMNHNAME = 'SLTRGAM' TZFIELD%CLONGNAME = 'SLTRGAM' TZFIELD%CUNITS = 'um' WRITE(TZFIELD%CCOMMENT,'(A17,I1)')'RG (m) SALT MODE ',JJ ZWORK31(:,:,:)=ZRG_SLT(:,:,:,JJ) / (EXP(-3.*(LOG(ZSIG_SLT(:,:,:,JJ)))**2)) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! WRITE(TZFIELD%CMNHNAME,'(A6,I1)')'SLTN0A',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'm-3' WRITE(TZFIELD%CCOMMENT,'(A13,I1)')'N0 SALT MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZN0_SLT(:,:,:,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZN0_SLT(:,:,:,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A7,I1)')'SLTSIGA',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = '1' WRITE(TZFIELD%CCOMMENT,'(A16,I1)')'SIGMA SALT MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSIG_SLT(:,:,:,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZSIG_SLT(:,:,:,JJ)) !SALT MASS CONCENTRATION WRITE(TZFIELD%CMNHNAME,'(A4,I1)')'SLTMSS',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1561,7 +1560,7 @@ IF (LSALT) THEN ZWORK31(:,:,:)= ZN0_SLT(:,:,:,JJ)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_SLT(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_SLT(:,:,:,JJ))*log(ZSIG_SLT(:,:,:,JJ))) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) !SALT BURDEN (g/m2) ZWORK21(:,:)=0.0 DO JK=IKB,IKE @@ -1580,7 +1579,7 @@ IF (LSALT) THEN TZFIELD%CUNITS = 'g m-2' WRITE(TZFIELD%CCOMMENT,'(A6,I1)')'BURDEN',JJ TZFIELD%NDIMS = 2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! TZFIELD%NDIMS = 3 ENDDO @@ -1601,7 +1600,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN TZFIELD%CMNHNAME = TRIM(UPCASE(CDESLTNAMES(JSV)))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3)')'X_Y_Z_','SALTDEP',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSSLTDEP(:,:,:,JSV)*1.E9) + CALL IO_Field_write(TPFILE,TZFIELD,ZSSLTDEP(:,:,:,JSV)*1.E9) END DO ! DO JJ=1,NMODE_SLT @@ -1631,7 +1630,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN * XAVOGADRO & !==>#/mole / XMD & !==>#/kg_{air} * XRHODREF(:,:,:) !==>#/m3 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! CLOUD: DUST MASS CONCENTRATION WRITE(TZFIELD%CMNHNAME,'(A9,I1)')'SLTDEPMSS',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1640,7 +1639,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN ZWORK31(:,:,:)= ZWORK31(:,:,:)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_SLT(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_SLT(:,:,:,JJ))*log(ZSIG_SLT(:,:,:,JJ))) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! FOR RAIN DROPS WRITE(TZFIELD%CMNHNAME,'(A9,I1)')'SLTDEPN0A',JJ+NMODE_SLT TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1667,7 +1666,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN * XAVOGADRO & !==>#/mole / XMD & !==>#/kg_{air} * XRHODREF(:,:,:) !==>#/m3 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! RAIN: DUST MASS CONCENTRATION WRITE(TZFIELD%CMNHNAME,'(A9,I1)')'SLTDEPMSS',JJ+NMODE_SLT TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1676,7 +1675,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN ZWORK31(:,:,:)= ZWORK31(:,:,:)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_SLT(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_SLT(:,:,:,JJ))*log(ZSIG_SLT(:,:,:,JJ))) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END DO ! END IF @@ -1701,7 +1700,7 @@ IF (LDUST) THEN TZFIELD%CMNHNAME = TRIM(UPCASE(CDUSTNAMES(JSV-NSV_DSTBEG+1)))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3)')'X_Y_Z_','DUST',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) END DO ! CALL PPP2DUST(XSVT(:,:,:,NSV_DSTBEG:NSV_DSTEND),XRHODREF,& @@ -1711,26 +1710,26 @@ IF (LDUST) THEN TZFIELD%CLONGNAME = 'DSTRGA' TZFIELD%CUNITS = 'um' WRITE(TZFIELD%CCOMMENT,'(A18,I1)')'RG (nb) DUST MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZRG_DST(:,:,:,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZRG_DST(:,:,:,JJ)) ! TZFIELD%CMNHNAME = 'DSTRGAM' TZFIELD%CLONGNAME = 'DSTRGAM' TZFIELD%CUNITS = 'um' WRITE(TZFIELD%CCOMMENT,'(A17,I1)')'RG (m) DUST MODE ',JJ ZWORK31(:,:,:)=ZRG_DST(:,:,:,JJ) / (EXP(-3.*(LOG(ZSIG_DST(:,:,:,JJ)))**2)) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! WRITE(TZFIELD%CMNHNAME,'(A6,I1)')'DSTN0A',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'm-3' WRITE(TZFIELD%CCOMMENT,'(A13,I1)')'N0 DUST MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZN0_DST(:,:,:,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZN0_DST(:,:,:,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A7,I1)')'DSTSIGA',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = '1' WRITE(TZFIELD%CCOMMENT,'(A16,I1)')'SIGMA DUST MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSIG_DST(:,:,:,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZSIG_DST(:,:,:,JJ)) !DUST MASS CONCENTRATION WRITE(TZFIELD%CMNHNAME,'(A4,I1)')'DSTMSS',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1739,7 +1738,7 @@ IF (LDUST) THEN ZWORK31(:,:,:)= ZN0_DST(:,:,:,JJ)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_DST(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_DST(:,:,:,JJ))*log(ZSIG_DST(:,:,:,JJ))) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) !DUST BURDEN (g/m2) ZWORK21(:,:)=0.0 DO JK=IKB,IKE @@ -1758,7 +1757,7 @@ IF (LDUST) THEN TZFIELD%CUNITS = 'g m-2' WRITE(TZFIELD%CCOMMENT,'(A6,I1)')'BURDEN',JJ TZFIELD%NDIMS = 2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! TZFIELD%NDIMS = 3 ENDDO @@ -1779,7 +1778,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN TZFIELD%CMNHNAME = TRIM(UPCASE(CDEDSTNAMES(JSV)))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3)')'X_Y_Z_','DUSTDEP',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSDSTDEP(:,:,:,JSV)*1.E9) + CALL IO_Field_write(TPFILE,TZFIELD,ZSDSTDEP(:,:,:,JSV)*1.E9) END DO ! DO JJ=1,NMODE_DST @@ -1809,7 +1808,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN * XAVOGADRO & !==>#/mole / XMD & !==>#/kg_{air} * XRHODREF(:,:,:) !==>#/m3 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! CLOUD: DUST MASS CONCENTRATION WRITE(TZFIELD%CMNHNAME,'(A9,I1)')'DSTDEPMSS',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1818,7 +1817,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN ZWORK31(:,:,:)= ZWORK31(:,:,:)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_DST(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_DST(:,:,:,JJ))*log(ZSIG_DST(:,:,:,JJ))) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! FOR RAIN DROPS WRITE(TZFIELD%CMNHNAME,'(A9,I1)')'DSTDEPN0A',JJ+NMODE_DST TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1845,7 +1844,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN * XAVOGADRO & !==>#/mole / XMD & !==>#/kg_{air} * XRHODREF(:,:,:) !==>#/m3 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! RAIN: DUST MASS CONCENTRATION WRITE(TZFIELD%CMNHNAME,'(A9,I1)')'DSTDEPMSS',JJ+NMODE_DST TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1854,7 +1853,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN ZWORK31(:,:,:)= ZWORK31(:,:,:)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_DST(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_DST(:,:,:,JJ))*log(ZSIG_DST(:,:,:,JJ))) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END DO ! END IF @@ -1872,7 +1871,7 @@ IF ((LCHEMDIAG).AND.(LORILAM).AND.(LUSECHEM)) THEN TZFIELD%CMNHNAME = TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1)))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3)')'X_Y_Z_','AERO',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) END DO ! IF (.NOT.(ASSOCIATED(XN3D))) & @@ -1889,132 +1888,132 @@ IF ((LCHEMDIAG).AND.(LORILAM).AND.(LUSECHEM)) THEN TZFIELD%CLONGNAME = 'RGA' TZFIELD%CUNITS = 'um' WRITE(TZFIELD%CCOMMENT,'(A21,I1)')'RG (nb) AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRG3D(:,:,:,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,XRG3D(:,:,:,JJ)) ! TZFIELD%CMNHNAME = 'RGAM' TZFIELD%CLONGNAME = 'RGAM' TZFIELD%CUNITS = 'um' WRITE(TZFIELD%CCOMMENT,'(A20,I1)')'RG (m) AEROSOL MODE ',JJ ZWORK31(:,:,:)=XRG3D(:,:,:,JJ) / (EXP(-3.*(LOG(XSIG3D(:,:,:,JJ)))**2)) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! WRITE(TZFIELD%CMNHNAME,'(A3,I1)')'N0A',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'cm-3' WRITE(TZFIELD%CCOMMENT,'(A16,I1)')'N0 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XN3D(:,:,:,JJ)*1.E-6) + CALL IO_Field_write(TPFILE,TZFIELD,XN3D(:,:,:,JJ)*1.E-6) ! WRITE(TZFIELD%CMNHNAME,'(A4,I1)')'SIGA',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = '1' WRITE(TZFIELD%CCOMMENT,'(A19,I1)')'SIGMA AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSIG3D(:,:,:,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,XSIG3D(:,:,:,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A4,I1)')'MSO4',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A22,I1)')'MASS SO4 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SO4,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SO4,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A4,I1)')'MNO3',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A22,I1)')'MASS NO3 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_NO3,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_NO3,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A4,I1)')'MNH3',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A22,I1)')'MASS NH3 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_NH3,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_NH3,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A4,I1)')'MH2O',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A22,I1)')'MASS H2O AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_H2O,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_H2O,JJ)) ! IF (NSOA .EQ. 10) THEN WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA1',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA1 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA1,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA1,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA2',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA2 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA2,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA2,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA3',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA3 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA3,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA3,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA4',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA4 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA4,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA4,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA5',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA5 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA5,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA5,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA6',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA6 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA6,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA6,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA7',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA7 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA7,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA7,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA8',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA8 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA8,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA8,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA9',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA9 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA9,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA9,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A6,I1)')'MSOA10',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A24,I1)')'MASS SOA10 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA10,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA10,JJ)) END IF ! WRITE(TZFIELD%CMNHNAME,'(A3,I1)')'MOC',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A21,I1)')'MASS OC AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_OC,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_OC,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A3,I1)')'MBC',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A21,I1)')'MASS BC AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_BC,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_BC,JJ)) ENDDO END IF ! !* Large Scale variables ! IF (LVAR_LS) THEN - CALL IO_WRITE_FIELD(TPFILE,'LSUM', XLSUM) - CALL IO_WRITE_FIELD(TPFILE,'LSVM', XLSVM) + CALL IO_Field_write(TPFILE,'LSUM', XLSUM) + CALL IO_Field_write(TPFILE,'LSVM', XLSVM) ! IF (LWIND_ZM) THEN TZFIELD2(1)%CMNHNAME = 'LSUM_ZM' @@ -2042,14 +2041,14 @@ IF (LVAR_LS) THEN CALL UV_TO_ZONAL_AND_MERID(XLSUM,XLSVM,23,TPFILE=TPFILE,TZFIELDS=TZFIELD2) ENDIF ! - CALL IO_WRITE_FIELD(TPFILE,'LSWM', XLSWM) - CALL IO_WRITE_FIELD(TPFILE,'LSTHM',XLSTHM) + CALL IO_Field_write(TPFILE,'LSWM', XLSWM) + CALL IO_Field_write(TPFILE,'LSTHM',XLSTHM) ! IF (LUSERV) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('LSRVM',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'g kg-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XLSRVM(:,:,:)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XLSRVM(:,:,:)*1.E3) END IF END IF ! @@ -2070,7 +2069,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XUFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XUFRC(:,JT)) ! TZFIELD%CMNHNAME = 'VFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2082,7 +2081,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XVFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'WFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2094,7 +2093,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XWFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XWFRC(:,JT)) ! TZFIELD%CMNHNAME = 'THFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2106,7 +2105,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTHFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'RVFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2118,7 +2117,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRVFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XRVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'TENDTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2130,7 +2129,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTENDTHFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTENDTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'TENDRVFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2142,7 +2141,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTENDRVFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTENDRVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'GXTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2154,7 +2153,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XGXTHFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XGXTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'GYTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2166,7 +2165,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XGYTHFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XGYTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'PGROUNDFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2178,7 +2177,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPGROUNDFRC(JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XPGROUNDFRC(JT)) ! END DO END IF @@ -2201,17 +2200,17 @@ IF (LTPZH .OR. LCOREF) THEN TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. ZWORK31(:,:,:)=ZTEMP(:,:,:) - XTT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! !* Pressure in hPa CALL FIND_FIELD_ID_FROM_MNHNAME('PABST',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'PRES' TZFIELD%CUNITS = 'hPa' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPABST(:,:,:)*1E-2) + CALL IO_Field_write(TPFILE,TZFIELD,XPABST(:,:,:)*1E-2) ! !* Geopotential in meters - CALL IO_WRITE_FIELD(TPFILE,'ALT',XZZ) + CALL IO_Field_write(TPFILE,'ALT',XZZ) ! !* Relative humidity in percent IF (LUSERV) THEN @@ -2239,7 +2238,7 @@ IF (LTPZH .OR. LCOREF) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK32) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! TZFIELD%CMNHNAME = 'VPRES' TZFIELD%CSTDNAME = 'water_vapor_partial_pressure_in_air' @@ -2252,7 +2251,7 @@ IF (LTPZH .OR. LCOREF) THEN TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. ZWORK33(:,:,:)=ZWORK33(:,:,:)*ZWORK32(:,:,:)*1E-4 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK33) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) ! IF (LCOREF) THEN ZWORK33(:,:,:)=(77.6*( XPABST(:,:,:)*1E-2 & @@ -2268,7 +2267,7 @@ IF (LTPZH .OR. LCOREF) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK33) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) ! ZWORK33(:,:,:)=ZWORK33(:,:,:)+MZF(1,IKU,1,XZZ(:,:,:))*1E6/XRADIUS TZFIELD%CMNHNAME = 'MCOREF' @@ -2281,7 +2280,7 @@ IF (LTPZH .OR. LCOREF) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK33) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) END IF ELSE PRINT*, 'NO WATER VAPOR IN ',TPFILE%CNAME,' RELATIVE HUMIDITY IS NOT COMPUTED' @@ -2322,7 +2321,7 @@ IF ( LMOIST_V .OR. LMSLP .OR. CBLTOP/='NONE' ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTHETAV) + CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAV) END IF ! END IF @@ -2355,7 +2354,7 @@ IF (LVISI) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZVISIKUN) + CALL IO_Field_write(TPFILE,TZFIELD,ZVISIKUN) ! IF ((CCLOUD == 'C2R2') .OR. (CCLOUD =='KHKO')) THEN ZVISIGUL(:,:,:) = 10000. @@ -2375,7 +2374,7 @@ IF (LVISI) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZVISIGUL) + CALL IO_Field_write(TPFILE,TZFIELD,ZVISIGUL) ! Visibity Zhang TZFIELD%CMNHNAME = 'VISIZHA' TZFIELD%CSTDNAME = '' @@ -2387,7 +2386,7 @@ IF (LVISI) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZVISIZHA) + CALL IO_Field_write(TPFILE,TZFIELD,ZVISIZHA) ! DEALLOCATE(ZVISIGUL,ZVISIZHA) END IF @@ -2422,7 +2421,7 @@ IF (( LMOIST_E .OR. LBV_FR ) .AND. (NRR>0)) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTHETAE) + CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAE) END IF END IF !------------------------------------------------------------------------------- @@ -2448,7 +2447,7 @@ IF (LMOIST_ES .AND. (NRR>0)) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTHETAES) + CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAES) ENDIF ! !------------------------------------------------------------------------------- @@ -2499,7 +2498,7 @@ IF ( LMOIST_L .OR. LMOIST_S1 .OR. LMOIST_S2 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTHETAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAL) END IF ! END IF @@ -2554,7 +2553,7 @@ IF ( LMOIST_S1 .OR. LMOIST_S2 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTHETAS1) + CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAS1) END IF IF (LMOIST_S2) THEN ! The Moist-air Entropy potential temperature (2nd order) @@ -2568,7 +2567,7 @@ IF ( LMOIST_S1 .OR. LMOIST_S2 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTHETAS2) + CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAS2) END IF ! END IF @@ -2591,7 +2590,7 @@ IF (LVORT) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! ! Vorticity y ZWORK32(:,:,:)=MZF(1,IKU,1,MXF(MYM(ZVOY(:,:,:)))) @@ -2605,7 +2604,7 @@ IF (LVORT) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK32) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! IF (LWIND_ZM) THEN TZFIELD2(1)%CMNHNAME = 'UM1_ZM' @@ -2645,7 +2644,7 @@ IF (LVORT) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! ! Absolute Vorticity ZWORK31(:,:,:)=MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:) @@ -2659,7 +2658,7 @@ IF (LVORT) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! END IF ! @@ -2691,7 +2690,7 @@ IF ( LMEAN_POVO ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! ! Virtual Potential Vorticity in PV units @@ -2713,7 +2712,7 @@ IF (LMOIST_V .AND. (NRR>0) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK34) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) ! IF (LMEAN_POVO) THEN IWORK1(:,:)=0 @@ -2735,7 +2734,7 @@ IF (LMOIST_V .AND. (NRR>0) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF END IF ! @@ -2759,7 +2758,7 @@ IF (LMOIST_E .AND. (NRR>0) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK34) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) ! IF (LMEAN_POVO) THEN IWORK1(:,:)=0 @@ -2781,7 +2780,7 @@ IF (LMOIST_E .AND. (NRR>0) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) DEALLOCATE(IWORK1) END IF ! @@ -2806,7 +2805,7 @@ IF (LMOIST_ES .AND. (NRR>0) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK34) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) ENDIF ! ! @@ -2827,7 +2826,7 @@ IF (LDIV) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! IF (LUSERV) THEN TZFIELD%CMNHNAME = 'HMDIV' @@ -2843,7 +2842,7 @@ IF (LDIV) THEN ZWORK31=MXM(XRHODREF*XRT(:,:,:,1))*XUT ZWORK32=MYM(XRHODREF*XRT(:,:,:,1))*XVT ZWORK33=GX_U_M(1,IKU,1,ZWORK31,XDXX,XDZZ,XDZX) + GY_V_M(1,IKU,1,ZWORK32,XDYY,XDZZ,XDZY) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK33) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) END IF ! ENDIF @@ -2875,7 +2874,7 @@ IF (LCLSTR) THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ICLUSTERID) + CALL IO_Field_write(TPFILE,TZFIELD,ICLUSTERID) ! TZFIELD%CMNHNAME = 'CLUSTERLV' TZFIELD%CSTDNAME = '' @@ -2887,7 +2886,7 @@ IF (LCLSTR) THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ICLUSTERLV) + CALL IO_Field_write(TPFILE,TZFIELD,ICLUSTERLV) ! TZFIELD%CMNHNAME = 'CLDSIZE' TZFIELD%CSTDNAME = '' @@ -2899,7 +2898,7 @@ IF (LCLSTR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCLDSIZE) + CALL IO_Field_write(TPFILE,TZFIELD,ZCLDSIZE) END IF ! !------------------------------------------------------------------------------- @@ -2952,7 +2951,7 @@ IF (LGEO .OR. LAGEO) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! TZFIELD%CMNHNAME = 'VM88' TZFIELD%CSTDNAME = '' @@ -2964,7 +2963,7 @@ IF (LGEO .OR. LAGEO) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK32) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! IF (LWIND_ZM) THEN TZFIELD2(1)%CMNHNAME = 'UM88_ZM' @@ -2997,7 +2996,7 @@ IF (LGEO .OR. LAGEO) THEN TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'WM88' TZFIELD%CLONGNAME = 'WM88' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XWT) + CALL IO_Field_write(TPFILE,TZFIELD,XWT) END IF ! IF (LAGEO) THEN @@ -3014,7 +3013,7 @@ IF (LGEO .OR. LAGEO) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! TZFIELD%CMNHNAME = 'VM89' TZFIELD%CSTDNAME = '' @@ -3026,7 +3025,7 @@ IF (LGEO .OR. LAGEO) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK32) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! IF (LWIND_ZM) THEN TZFIELD2(1)%CMNHNAME = 'UM89_ZM' @@ -3059,7 +3058,7 @@ IF (LGEO .OR. LAGEO) THEN TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'WM89' TZFIELD%CLONGNAME = 'WM89' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XWT) + CALL IO_Field_write(TPFILE,TZFIELD,XWT) END IF ! END IF @@ -3083,7 +3082,7 @@ IF(LWIND_CONTRAV) THEN!$ TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK33) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) END IF !------------------------------------------------------------------------------- ! @@ -3116,7 +3115,7 @@ IF (LMSLP) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK22) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) END IF !------------------------------------------------------------------------------- ! @@ -3141,7 +3140,7 @@ IF (LTHW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! ZWORK21(:,:) = 0. @@ -3161,7 +3160,7 @@ IF (LTHW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! ZWORK21(:,:) = 0. @@ -3181,7 +3180,7 @@ IF (LTHW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! ZWORK21(:,:) = 0. @@ -3201,7 +3200,7 @@ IF (LTHW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! ZWORK21(:,:) = 0. @@ -3221,7 +3220,7 @@ IF (LTHW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! ZWORK21(:,:) = 0. @@ -3241,7 +3240,7 @@ IF (LTHW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! ZWORK21(:,:) = 0. @@ -3261,7 +3260,7 @@ IF (LTHW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF END IF ! @@ -3302,7 +3301,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ELSE PRINT * ,'YOU WANT TO COMPUTE THE ACCUMULATED RAIN' PRINT * ,'BUT NO RAIN IS PRESENT IN THE MODEL' @@ -3328,7 +3327,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN JJ=INT(XMEAN_PR(JK+1)) WRITE(TZFIELD%CMNHNAME,'(A9,2I2.2)')'LS_ACTOPR',JI,JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK22) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) END IF END DO ! @@ -3367,7 +3366,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ELSE PRINT * ,'YOU WANT TO COMPUTE THE RAIN RATE' PRINT * ,'BUT NO RAIN IS PRESENT IN THE MODEL' @@ -3387,7 +3386,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK22) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) END IF ! END IF @@ -3416,7 +3415,7 @@ IF (NCAPE >=0 .AND. LUSERV) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! TZFIELD%CMNHNAME = 'CINMAX' TZFIELD%CSTDNAME = '' @@ -3428,7 +3427,7 @@ IF (NCAPE >=0 .AND. LUSERV) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK22) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) ! IF (NCAPE >=1) THEN TZFIELD%CMNHNAME = 'CAPE3D' @@ -3441,7 +3440,7 @@ IF (NCAPE >=0 .AND. LUSERV) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK32) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! TZFIELD%CMNHNAME = 'CIN3D' TZFIELD%CSTDNAME = 'atmosphere_convective_inhibition' @@ -3453,7 +3452,7 @@ IF (NCAPE >=0 .AND. LUSERV) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK33) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) ! TZFIELD%CMNHNAME = 'DCAPE3D' TZFIELD%CSTDNAME = '' @@ -3465,7 +3464,7 @@ IF (NCAPE >=0 .AND. LUSERV) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK34) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) END IF ! IF (NCAPE >=2) THEN @@ -3483,7 +3482,7 @@ IF (NCAPE >=0 .AND. LUSERV) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF ENDIF ! @@ -3515,7 +3514,7 @@ IF (LBV_FR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! IF (NRR > 0) THEN ZWORK32(:,:,:)=DZM(1,IKU,1,ZTHETAE(:,:,:))/ MZM(1,IKU,1,ZTHETAE(:,:,:)) @@ -3541,7 +3540,7 @@ IF (LBV_FR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF END IF ! @@ -3569,7 +3568,7 @@ IF ( NGPS>=0 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK22) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) ! IF (NGPS>=1) THEN TZFIELD%CMNHNAME = 'ZHD' @@ -3582,7 +3581,7 @@ IF ( NGPS>=0 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK23) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK23) ! TZFIELD%CMNHNAME = 'ZWD' TZFIELD%CSTDNAME = '' @@ -3594,7 +3593,7 @@ IF ( NGPS>=0 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK24) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK24) ! END IF ! @@ -3639,7 +3638,7 @@ IF(LRADAR .AND. LUSERR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! TZFIELD%CMNHNAME = 'VDOP' TZFIELD%CSTDNAME = '' @@ -3651,7 +3650,7 @@ IF(LRADAR .AND. LUSERR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK32) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! TZFIELD%CMNHNAME = 'ZDR' TZFIELD%CSTDNAME = '' @@ -3663,7 +3662,7 @@ IF(LRADAR .AND. LUSERR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK33) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) ! TZFIELD%CMNHNAME = 'KDP' TZFIELD%CSTDNAME = '' @@ -3675,7 +3674,7 @@ IF(LRADAR .AND. LUSERR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK34) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) ! ELSE ! @@ -3832,8 +3831,8 @@ IF(LRADAR .AND. LUSERR) THEN WRITE(YGRID_SIZE,'(I3.3)') 2*NMAX DO JJ=1,SIZE(ZWORK42(:,:,:,:,:),5) YRS=YRAD(JJ)//CNAME_RAD(JI)(1:3)//YELEV//YGRID_SIZE//TRIM(TPFILE%CNAME) - CALL IO_FILE_ADD2LIST(TZRSFILE,YRS,'TXT','WRITE',KRECL=8192) - CALL IO_FILE_OPEN_ll(TZRSFILE,HSTATUS='NEW') + CALL IO_File_add2list(TZRSFILE,YRS,'TXT','WRITE',KRECL=8192) + CALL IO_File_open(TZRSFILE,HSTATUS='NEW') ILURS = TZRSFILE%NLU WRITE(ILURS,'(A,4F12.6,2I5)') '**domaine LATLON ',ZWORK43(JI,1,1),ZWORK43(JI,4*NMAX-1,2*NMAX), & ZWORK43(JI,2,1),ZWORK43(JI,4*NMAX,2*NMAX),2*NMAX,2*NMAX !! HEADER @@ -3847,7 +3846,7 @@ IF(LRADAR .AND. LUSERR) THEN DO JV=2*NMAX,1,-1 WRITE(ILURS,*) CLATLON(JV) END DO - CALL IO_FILE_CLOSE_ll(TZRSFILE) + CALL IO_File_close(TZRSFILE) TZRSFILE => NULL() END DO END DO @@ -3862,15 +3861,15 @@ IF(LRADAR .AND. LUSERR) THEN INT(ANINT(10.*XELEV(JI,JEL))-10*INT(XELEV(JI,JEL))) DO JJ=1,SIZE(ZWORK42(:,:,:,:,:),5) YRS="P"//YRAD(JJ)//CNAME_RAD(JI)(1:3)//YELEV//TRIM(TPFILE%CNAME) - CALL IO_FILE_ADD2LIST(TZRSFILE,YRS,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZRSFILE) + CALL IO_File_add2list(TZRSFILE,YRS,'TXT','WRITE') + CALL IO_File_open(TZRSFILE) ILURS = TZRSFILE%NLU DO JH=1,NBAZIM DO JV=1,NBSTEPMAX+1 WRITE(ILURS,"(F15.7)") ZWORK42_BIS(JI,JEL,JH,JV,JJ) END DO END DO - CALL IO_FILE_CLOSE_ll(TZRSFILE) + CALL IO_File_close(TZRSFILE) TZRSFILE => NULL() END DO END DO @@ -3983,7 +3982,7 @@ IF (LLIDAR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! TZFIELD%CMNHNAME = 'LIPAR' TZFIELD%CSTDNAME = '' @@ -3995,7 +3994,7 @@ IF (LLIDAR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK32) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! END IF ! @@ -4039,7 +4038,7 @@ IF (CBLTOP == 'THETA') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSHMIX) + CALL IO_Field_write(TPFILE,TZFIELD,ZSHMIX) ! DEALLOCATE(ZSHMIX) ELSEIF (CBLTOP == 'RICHA') THEN @@ -4083,7 +4082,7 @@ ELSEIF (CBLTOP == 'RICHA') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSHMIX) + CALL IO_Field_write(TPFILE,TZFIELD,ZSHMIX) ! DEALLOCATE(ZRIB,ZSHMIX) ENDIF @@ -4100,10 +4099,10 @@ IF (ALLOCATED(ZTHETAV)) DEALLOCATE(ZTHETAV) !* Ligthning ! IF ( LCH_CONV_LINOX ) THEN - CALL IO_WRITE_FIELD(TPFILE,'IC_RATE', XIC_RATE) - CALL IO_WRITE_FIELD(TPFILE,'CG_RATE', XCG_RATE) - CALL IO_WRITE_FIELD(TPFILE,'IC_TOTAL_NB',XIC_TOTAL_NUMBER) - CALL IO_WRITE_FIELD(TPFILE,'CG_TOTAL_NB',XCG_TOTAL_NUMBER) + CALL IO_Field_write(TPFILE,'IC_RATE', XIC_RATE) + CALL IO_Field_write(TPFILE,'CG_RATE', XCG_RATE) + CALL IO_Field_write(TPFILE,'IC_TOTAL_NB',XIC_TOTAL_NUMBER) + CALL IO_Field_write(TPFILE,'CG_TOTAL_NB',XCG_TOTAL_NUMBER) END IF !------------------------------------------------------------------------------- !------------------------------------------------------------------------------- diff --git a/src/MNH/write_lfifm1_for_diag_supp.f90 b/src/MNH/write_lfifm1_for_diag_supp.f90 index 1c0b42a31..4908ec514 100644 --- a/src/MNH/write_lfifm1_for_diag_supp.f90 +++ b/src/MNH/write_lfifm1_for_diag_supp.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2000-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################################### @@ -10,7 +10,7 @@ INTERFACE ! SUBROUTINE WRITE_LFIFM1_FOR_DIAG_SUPP(TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -96,7 +96,7 @@ END MODULE MODI_WRITE_LFIFM1_FOR_DIAG_SUPP ! USE MODE_ll USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_CONF_n USE MODD_CONF @@ -157,7 +157,7 @@ USE MODI_RADTR_SATEL USE MODI_UV_TO_ZONAL_AND_MERID ! USE MODE_FIELD -USE MODE_FMWRIT +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GET_SURF_UNDEF ! @@ -242,7 +242,7 @@ ZTEMP(:,:,:)=XTHT(:,:,:)*(XPABST(:,:,:)/ XP00) **(XRD/XCPD) ! IF (NCONV_KF >= 0) THEN ! - CALL IO_WRITE_FIELD(TPFILE,'CAPE',XCAPE) + CALL IO_Field_write(TPFILE,'CAPE',XCAPE) ! ! top height (km) of convective clouds ZWORK21(:,:)= 0. @@ -261,7 +261,7 @@ IF (NCONV_KF >= 0) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! ! base height (km) of convective clouds ZWORK21(:,:)= 0. @@ -280,15 +280,15 @@ IF (NCONV_KF >= 0) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! END IF IF (NCONV_KF >= 1) THEN ! - CALL IO_WRITE_FIELD(TPFILE,'DTHCONV',XDTHCONV) - CALL IO_WRITE_FIELD(TPFILE,'DRVCONV',XDRVCONV) - CALL IO_WRITE_FIELD(TPFILE,'DRCCONV',XDRCCONV) - CALL IO_WRITE_FIELD(TPFILE,'DRICONV',XDRICONV) + CALL IO_Field_write(TPFILE,'DTHCONV',XDTHCONV) + CALL IO_Field_write(TPFILE,'DRVCONV',XDRVCONV) + CALL IO_Field_write(TPFILE,'DRCCONV',XDRCCONV) + CALL IO_Field_write(TPFILE,'DRICONV',XDRICONV) ! IF ( LCHTRANS .AND. NSV > 0 ) THEN ! User scalar variables @@ -305,7 +305,7 @@ IF (NCONV_KF >= 1) THEN WRITE(TZFIELD%CMNHNAME,'(A7,I3.3)')'DSVCONV',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A2,I3.3,A20)')'X_Y_Z_','SV',JSV,' CONVective tendency' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF ! microphysical C2R2 scheme scalar variables @@ -322,7 +322,7 @@ IF (NCONV_KF >= 1) THEN TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1))//' CONVective tendency' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF ! microphysical C3R5 scheme additional scalar variables @@ -339,7 +339,7 @@ IF (NCONV_KF >= 1) THEN TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1))//' CONVective tendency' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF ! electrical scalar variables @@ -356,7 +356,7 @@ IF (NCONV_KF >= 1) THEN TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CELECNAMES(JSV-NSV_ELECBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(CELECNAMES(JSV-NSV_ELECBEG+1))//' CONVective tendency' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF ! chemical scalar variables @@ -373,7 +373,7 @@ IF (NCONV_KF >= 1) THEN TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CNAMES(JSV-NSV_CHEMBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(CNAMES(JSV-NSV_CHEMBEG+1))//' CONVective tendency' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF ! lagrangian variables @@ -390,17 +390,17 @@ IF (NCONV_KF >= 1) THEN TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CLGNAMES(JSV-NSV_LGBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//' CONVective tendency' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF END IF ! END IF IF (NCONV_KF >= 2) THEN - CALL IO_WRITE_FIELD(TPFILE,'PRLFLXCONV',XPRLFLXCONV) - CALL IO_WRITE_FIELD(TPFILE,'PRSFLXCONV',XPRSFLXCONV) - CALL IO_WRITE_FIELD(TPFILE,'UMFCONV', XUMFCONV) - CALL IO_WRITE_FIELD(TPFILE,'DMFCONV', XDMFCONV) + CALL IO_Field_write(TPFILE,'PRLFLXCONV',XPRLFLXCONV) + CALL IO_Field_write(TPFILE,'PRSFLXCONV',XPRSFLXCONV) + CALL IO_Field_write(TPFILE,'UMFCONV', XUMFCONV) + CALL IO_Field_write(TPFILE,'DMFCONV', XDMFCONV) END IF !------------------------------------------------------------------------------- ! @@ -461,7 +461,7 @@ IF (LCLD_COV .AND. LUSERC) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! ! Higher top of the different species of clouds ! @@ -498,7 +498,7 @@ IF (LCLD_COV .AND. LUSERC) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ENDIF ! TZFIELD%CMNHNAME = 'TCL' @@ -511,9 +511,9 @@ IF (LCLD_COV .AND. LUSERC) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK22) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) ! - CALL IO_WRITE_FIELD(TPFILE,'CLDFR',XCLDFR) + CALL IO_Field_write(TPFILE,'CLDFR',XCLDFR) ! ! Visibility ! @@ -532,7 +532,7 @@ IF (LCLD_COV .AND. LUSERC) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! DEALLOCATE(IWORK1,IWORK2,ICL_HE_ST,GMASK2,ZWORK22) END IF @@ -544,24 +544,24 @@ END IF ! IF (NRAD_3D >= 0) THEN IF (CRAD /= 'NONE') THEN - CALL IO_WRITE_FIELD(TPFILE,'DTHRAD', XDTHRAD) - CALL IO_WRITE_FIELD(TPFILE,'FLALWD', XFLALWD) - CALL IO_WRITE_FIELD(TPFILE,'DIRFLASWD', XDIRFLASWD) - CALL IO_WRITE_FIELD(TPFILE,'SCAFLASWD', XSCAFLASWD) - CALL IO_WRITE_FIELD(TPFILE,'DIRSRFSWD', XDIRSRFSWD) - CALL IO_WRITE_FIELD(TPFILE,'CLEARCOL_TM1',NCLEARCOL_TM1) - CALL IO_WRITE_FIELD(TPFILE,'ZENITH', XZENITH) - CALL IO_WRITE_FIELD(TPFILE,'AZIM', XAZIM) - CALL IO_WRITE_FIELD(TPFILE,'DIR_ALB', XDIR_ALB) - CALL IO_WRITE_FIELD(TPFILE,'SCA_ALB', XSCA_ALB) + CALL IO_Field_write(TPFILE,'DTHRAD', XDTHRAD) + CALL IO_Field_write(TPFILE,'FLALWD', XFLALWD) + CALL IO_Field_write(TPFILE,'DIRFLASWD', XDIRFLASWD) + CALL IO_Field_write(TPFILE,'SCAFLASWD', XSCAFLASWD) + CALL IO_Field_write(TPFILE,'DIRSRFSWD', XDIRSRFSWD) + CALL IO_Field_write(TPFILE,'CLEARCOL_TM1',NCLEARCOL_TM1) + CALL IO_Field_write(TPFILE,'ZENITH', XZENITH) + CALL IO_Field_write(TPFILE,'AZIM', XAZIM) + CALL IO_Field_write(TPFILE,'DIR_ALB', XDIR_ALB) + CALL IO_Field_write(TPFILE,'SCA_ALB', XSCA_ALB) ! CALL PRINT_MSG(NVERB_INFO,'IO','WRITE_LFIFM1_FOR_DIAG_SUPP','EMIS: writing only first band') CALL FIND_FIELD_ID_FROM_MNHNAME('EMIS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%NDIMS = 2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XEMIS(:,:,1)) + CALL IO_Field_write(TPFILE,TZFIELD,XEMIS(:,:,1)) ! - CALL IO_WRITE_FIELD(TPFILE,'TSRAD', XTSRAD) + CALL IO_Field_write(TPFILE,'TSRAD', XTSRAD) ELSE PRINT*,'YOU WANT DIAGNOSTICS RELATED TO RADIATION' PRINT*,' BUT NO RADIATIVE SCHEME WAS ACTIVATED IN THE MODEL' @@ -585,7 +585,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) !Dust optical depth ZWORK21(:,:)=0.0 DO JK=IKB,IKE @@ -606,7 +606,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) !Dust extinction (optical depth per km) DO JK=IKB,IKE IKRAD = JK - JPVEXT @@ -622,7 +622,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF IF (LSALT) THEN !Salt optical depth between two vertical levels @@ -641,7 +641,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) !Salt optical depth ZWORK21(:,:)=0.0 DO JK=IKB,IKE @@ -662,7 +662,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) !Salt extinction (optical depth per km) DO JK=IKB,IKE IKRAD = JK - JPVEXT @@ -678,7 +678,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF IF (LORILAM) THEN !Orilam anthropogenic optical depth between two vertical levels @@ -697,7 +697,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) !Orilam anthropogenic optical depth ZWORK21(:,:)=0.0 DO JK=IKB,IKE @@ -718,7 +718,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) !Orilam anthropogenic extinction (optical depth per km) DO JK=IKB,IKE IKRAD = JK - JPVEXT @@ -734,7 +734,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF END IF ! @@ -756,7 +756,7 @@ IF (LCHEMDIAG) THEN TZFIELD%CMNHNAME = 'FLX_'//TRIM(CNAMES(JSV-NSV_CHEMBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A,A)')'X_Y_Z_',TRIM(CNAMES(JSV-NSV_CHEMBEG+1)),' Net chemical flux' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCHFLX(:,:,JSV-NSV_CHEMBEG+1) * 1E9) + CALL IO_Field_write(TPFILE,TZFIELD,XCHFLX(:,:,JSV-NSV_CHEMBEG+1) * 1E9) END DO END IF !------------------------------------------------------------------------------- @@ -817,7 +817,7 @@ IF (LEN_TRIM(CRAD_SAT) /= 0 .AND. NRR /=0) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZIRBT) + CALL IO_Field_write(TPFILE,TZFIELD,ZIRBT) ! TZFIELD%CMNHNAME = TRIM(YNAM_SAT(JI))//'_WVBT' TZFIELD%CSTDNAME = '' @@ -829,7 +829,7 @@ IF (LEN_TRIM(CRAD_SAT) /= 0 .AND. NRR /=0) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWVBT) + CALL IO_Field_write(TPFILE,TZFIELD,ZWVBT) END DO DEALLOCATE(ZIRBT,ZWVBT) END IF @@ -926,7 +926,7 @@ IF (CSURF=='EXTE') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_ZON10M) + CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_ZON10M) ! TZFIELD%CMNHNAME = 'VM10' TZFIELD%CSTDNAME = '' @@ -938,7 +938,7 @@ IF (CSURF=='EXTE') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_MER10M) + CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_MER10M) ENDIF ! IF (SIZE(XTKET)>0) THEN @@ -954,7 +954,7 @@ IF (CSURF=='EXTE') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! IF(ANY(XCURRENT_SFCO2/=XUNDEF))THEN @@ -968,7 +968,7 @@ IF (CSURF=='EXTE') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_SFCO2) + CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_SFCO2) END IF ! IF(ANY(XCURRENT_SWD/=XUNDEF))THEN @@ -982,7 +982,7 @@ IF (CSURF=='EXTE') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_SWD) + CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_SWD) END IF ! IF(ANY(XCURRENT_SWU/=XUNDEF))THEN @@ -996,7 +996,7 @@ IF (CSURF=='EXTE') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_SWU) + CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_SWU) END IF ! IF(ANY(XCURRENT_LWD/=XUNDEF))THEN @@ -1010,7 +1010,7 @@ IF (CSURF=='EXTE') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_LWD) + CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_LWD) END IF ! IF(ANY(XCURRENT_LWU/=XUNDEF))THEN @@ -1024,7 +1024,7 @@ IF (CSURF=='EXTE') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_LWD) + CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_LWD) END IF END IF @@ -1083,7 +1083,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'K' TZFIELD%CCOMMENT = 'X_Y_potential temperature '//TRIM(YPRES(JK))//' hPa' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWRES(:,:,JK)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWRES(:,:,JK)) END DO ! ********************* ! Wind @@ -1096,7 +1096,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_U component of wind '//TRIM(YPRES(JK))//' hPa' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWRES(:,:,JK)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWRES(:,:,JK)) END DO ! ZWORK31(:,:,:) = MYF(XVT(:,:,:)) @@ -1107,7 +1107,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_V component of wind '//TRIM(YPRES(JK))//' hPa' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWRES(:,:,JK)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWRES(:,:,JK)) END DO ! ********************* ! Water Vapour Mixing Ratio @@ -1119,7 +1119,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'g kg-1' TZFIELD%CCOMMENT = 'X_Y_Vapor Mixing Ratio '//TRIM(YPRES(JK))//' hPa' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWRES(:,:,JK)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,ZWRES(:,:,JK)*1.E3) END DO ! ********************* ! Geopotential in meters @@ -1132,7 +1132,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'm' TZFIELD%CCOMMENT = 'X_Y_ALTitude '//TRIM(YPRES(JK))//' hPa' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWRES(:,:,JK)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWRES(:,:,JK)) END DO ! DEALLOCATE(ZWRES,ZPRES,ZWORK32,ZWORK33,ZWORK34) @@ -1187,7 +1187,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'Pa' TZFIELD%CCOMMENT = 'X_Y_pressure '//TRIM(YTH(JK))//' K' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWTH(:,:,JK)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWTH(:,:,JK)) END DO ! ********************* ! Potential Vorticity @@ -1215,7 +1215,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'PVU' TZFIELD%CCOMMENT = 'X_Y_POtential VOrticity '//TRIM(YTH(JK))//' K' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWTH(:,:,JK)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWTH(:,:,JK)) END DO ! ********************* ! Wind @@ -1227,7 +1227,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_U component of wind '//TRIM(YTH(JK))//' K' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWTH(:,:,JK)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWTH(:,:,JK)) END DO ! ZWORK31(:,:,:) = MYF(XVT(:,:,:)) @@ -1237,7 +1237,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_V component of wind '//TRIM(YTH(JK))//' K' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWTH(:,:,JK)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWTH(:,:,JK)) END DO ! DEALLOCATE(ZWTH,ZTH,ZWORK32,ZWORK33,ZWORK34) @@ -1280,7 +1280,7 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZAL) ! !* Standard Variables ! @@ -1301,7 +1301,7 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) END IF ! ********************* ! Precipitation @@ -1320,7 +1320,7 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) END IF ! ********************* ! Pressure @@ -1337,7 +1337,7 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) ! ********************* ! Potential Vorticity ! ********************* @@ -1370,7 +1370,7 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) ! ********************* ! Wind ! ********************* @@ -1387,7 +1387,7 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) ! ZWORK31(:,:,:) = MYF(XVT(:,:,:)) CALL ZINTER(ZWORK31, XZZ, ZWAL, ZAL, IIU, IJU, IKU, IKB, IAL, XUNDEF) @@ -1402,7 +1402,7 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) ! ********************* ! Dust extinction (optical depth per km) ! ********************* @@ -1423,7 +1423,7 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) END IF ! ! ********************* @@ -1465,7 +1465,7 @@ IF (LCOARSE) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) !--------------------------------- ! MOVING AVERAGE OF TKE OVER IDX+1 POINTS IDX = IDX/2 @@ -1495,7 +1495,7 @@ IF (LCOARSE) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF ! !------------------------------------------------------------------------------- @@ -1517,7 +1517,7 @@ IF (NEQ_BUDGET>0) THEN TZFIELD%CMNHNAME = TRIM(CNAMES_BUDGET(JSV))//'_BUDGET' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(CNAMES_BUDGET(JSV))//'_BUDGET' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTCHEM(JSV)%XB_REAC(:,:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,XTCHEM(JSV)%XB_REAC(:,:,:,:)) END DO ! TZFIELD%CUNITS = '' @@ -1528,7 +1528,7 @@ IF (NEQ_BUDGET>0) THEN TZFIELD%CMNHNAME = TRIM(CNAMES_BUDGET(JSV))//'_CHREACLIST' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = TRIM(CNAMES_BUDGET(JSV))//'_REACTION_LIST' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTCHEM(JSV)%NB_REAC(:)) + CALL IO_Field_write(TPFILE,TZFIELD,XTCHEM(JSV)%NB_REAC(:)) END DO END IF ! @@ -1547,12 +1547,12 @@ IF (NEQ_PLT>0) THEN TZFIELD%CMNHNAME = TRIM(CNAMES_PRODLOSST(JSV))//'_PROD' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(CNAMES_PRODLOSST(JSV))//'_PROD' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPROD(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XPROD(:,:,:,JSV)) ! TZFIELD%CMNHNAME = TRIM(CNAMES_PRODLOSST(JSV))//'_LOSS' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(CNAMES_PRODLOSST(JSV))//'_LOSS' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XLOSS(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XLOSS(:,:,:,JSV)) END DO END IF ! diff --git a/src/MNH/write_lfifmn_fordiachron.f90 b/src/MNH/write_lfifmn_fordiachron.f90 index 528b58ed0..2e96502f1 100644 --- a/src/MNH/write_lfifmn_fordiachron.f90 +++ b/src/MNH/write_lfifmn_fordiachron.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################################# @@ -98,11 +98,11 @@ USE MODD_LUNIT_n USE MODD_TIME USE MODD_TYPE_DATE USE MODD_NESTING -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! -USE MODE_FMWRIT USE MODE_GATHER_ll USE MODE_GRIDPROJ +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll ! IMPLICIT NONE @@ -131,26 +131,26 @@ LPACK=.FALSE. ! !* 1.0 Version : ! -CALL IO_WRITE_FIELD(TPFILE,'L1D', L1D) -CALL IO_WRITE_FIELD(TPFILE,'L2D', L2D) -CALL IO_WRITE_FIELD(TPFILE,'PACK',LPACK) -CALL IO_WRITE_FIELD(TPFILE,'SURF',CSURF) +CALL IO_Field_write(TPFILE,'L1D', L1D) +CALL IO_Field_write(TPFILE,'L2D', L2D) +CALL IO_Field_write(TPFILE,'PACK',LPACK) +CALL IO_Field_write(TPFILE,'SURF',CSURF) ! !* 1.1 Dimensions : ! -CALL IO_WRITE_FIELD(TPFILE,'IMAX',NIMAX_ll) -CALL IO_WRITE_FIELD(TPFILE,'JMAX',NJMAX_ll) -CALL IO_WRITE_FIELD(TPFILE,'KMAX',NKMAX) +CALL IO_Field_write(TPFILE,'IMAX',NIMAX_ll) +CALL IO_Field_write(TPFILE,'JMAX',NJMAX_ll) +CALL IO_Field_write(TPFILE,'KMAX',NKMAX) ! -CALL IO_WRITE_FIELD(TPFILE,'JPHEXT',JPHEXT) +CALL IO_Field_write(TPFILE,'JPHEXT',JPHEXT) ! !* 1.2 Grid variables : ! IF (.NOT.LCARTESIAN) THEN ! - CALL IO_WRITE_FIELD(TPFILE,'RPK', XRPK) - CALL IO_WRITE_FIELD(TPFILE,'LONORI',XLONORI) - CALL IO_WRITE_FIELD(TPFILE,'LATORI',XLATORI) + CALL IO_Field_write(TPFILE,'RPK', XRPK) + CALL IO_Field_write(TPFILE,'LONORI',XLONORI) + CALL IO_Field_write(TPFILE,'LATORI',XLATORI) ! !* diagnostic of 1st mass point ! @@ -162,47 +162,47 @@ IF (.NOT.LCARTESIAN) THEN CALL SM_LATLON(XLATORI,XLONORI,ZXHATM,ZYHATM,ZLATOR,ZLONOR) DEALLOCATE(ZXHAT_ll,ZYHAT_ll) ! - CALL IO_WRITE_FIELD(TPFILE,'LONOR',ZLONOR) - CALL IO_WRITE_FIELD(TPFILE,'LATOR',ZLATOR) + CALL IO_Field_write(TPFILE,'LONOR',ZLONOR) + CALL IO_Field_write(TPFILE,'LATOR',ZLATOR) END IF ! -CALL IO_WRITE_FIELD(TPFILE,'THINSHELL',LTHINSHELL) -CALL IO_WRITE_FIELD(TPFILE,'LAT0',XLAT0) -CALL IO_WRITE_FIELD(TPFILE,'LON0',XLON0) -CALL IO_WRITE_FIELD(TPFILE,'BETA',XBETA) +CALL IO_Field_write(TPFILE,'THINSHELL',LTHINSHELL) +CALL IO_Field_write(TPFILE,'LAT0',XLAT0) +CALL IO_Field_write(TPFILE,'LON0',XLON0) +CALL IO_Field_write(TPFILE,'BETA',XBETA) ! -CALL IO_WRITE_FIELD(TPFILE,'XHAT',XXHAT) -CALL IO_WRITE_FIELD(TPFILE,'YHAT',XYHAT) -CALL IO_WRITE_FIELD(TPFILE,'ZHAT',XZHAT) -CALL IO_WRITE_FIELD(TPFILE,'ZTOP',XZTOP) +CALL IO_Field_write(TPFILE,'XHAT',XXHAT) +CALL IO_Field_write(TPFILE,'YHAT',XYHAT) +CALL IO_Field_write(TPFILE,'ZHAT',XZHAT) +CALL IO_Field_write(TPFILE,'ZTOP',XZTOP) ! -CALL IO_WRITE_FIELD(TPFILE,'ZS', XZS) -CALL IO_WRITE_FIELD(TPFILE,'ZSMT', XZSMT) -CALL IO_WRITE_FIELD(TPFILE,'SLEVE',LSLEVE) +CALL IO_Field_write(TPFILE,'ZS', XZS) +CALL IO_Field_write(TPFILE,'ZSMT', XZSMT) +CALL IO_Field_write(TPFILE,'SLEVE',LSLEVE) ! IF (LSLEVE) THEN - CALL IO_WRITE_FIELD(TPFILE,'LEN1',XLEN1) - CALL IO_WRITE_FIELD(TPFILE,'LEN2',XLEN2) + CALL IO_Field_write(TPFILE,'LEN1',XLEN1) + CALL IO_Field_write(TPFILE,'LEN2',XLEN2) END IF ! -CALL IO_WRITE_FIELD(TPFILE,'DTMOD',TDTMOD) -CALL IO_WRITE_FIELD(TPFILE,'DTCUR',TDTCUR) -CALL IO_WRITE_FIELD(TPFILE,'DTEXP',TDTEXP) -CALL IO_WRITE_FIELD(TPFILE,'DTSEG',TDTSEG) +CALL IO_Field_write(TPFILE,'DTMOD',TDTMOD) +CALL IO_Field_write(TPFILE,'DTCUR',TDTCUR) +CALL IO_Field_write(TPFILE,'DTEXP',TDTEXP) +CALL IO_Field_write(TPFILE,'DTSEG',TDTSEG) ! !* 1.3 Configuration variables : ! -CALL IO_WRITE_FIELD(TPFILE,'CARTESIAN',LCARTESIAN) -CALL IO_WRITE_FIELD(TPFILE,'LBOUSS', LBOUSS) +CALL IO_Field_write(TPFILE,'CARTESIAN',LCARTESIAN) +CALL IO_Field_write(TPFILE,'LBOUSS', LBOUSS) ! !* 1.6 Reference state variables : ! -CALL IO_WRITE_FIELD(TPFILE,'RHOREFZ',XRHODREFZ) -CALL IO_WRITE_FIELD(TPFILE,'THVREFZ',XTHVREFZ) -CALL IO_WRITE_FIELD(TPFILE,'EXNTOP', XEXNTOP) +CALL IO_Field_write(TPFILE,'RHOREFZ',XRHODREFZ) +CALL IO_Field_write(TPFILE,'THVREFZ',XTHVREFZ) +CALL IO_Field_write(TPFILE,'EXNTOP', XEXNTOP) ! -CALL IO_WRITE_FIELD(TPFILE,'RHODREF',XRHODREF) -CALL IO_WRITE_FIELD(TPFILE,'THVREF', XTHVREF) +CALL IO_Field_write(TPFILE,'RHODREF',XRHODREF) +CALL IO_Field_write(TPFILE,'THVREF', XTHVREF) ! LPACK=GPACK ! diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90 index 19576446c..f08abfb15 100644 --- a/src/MNH/write_lfin.f90 +++ b/src/MNH/write_lfin.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_LFIFM_n(TPFILE,HDADFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! IMPLICIT NONE ! @@ -238,10 +238,10 @@ USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES, CAERO_MASS USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES USE MODD_LIMA_PRECIP_SCAVENGING_n ! -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll -USE MODE_FMWRIT +USE MODE_IO_FILE, only: IO_File_close +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODE_FIELD USE MODE_GATHER_ll USE MODE_GRIDPROJ @@ -339,29 +339,29 @@ IKE=IKU-JPVEXT ! !* 1.0 File and HDADFILE writing : ! -CALL IO_WRITE_FIELD(TPFILE,'FILETYPE',TPFILE%CTYPE) +CALL IO_Field_write(TPFILE,'FILETYPE',TPFILE%CTYPE) ! IF (LEN_TRIM(HDADFILE)>0) THEN - CALL IO_WRITE_FIELD(TPFILE,'DXRATIO',NDXRATIO_ALL(IMI)) - CALL IO_WRITE_FIELD(TPFILE,'DYRATIO',NDYRATIO_ALL(IMI)) - CALL IO_WRITE_FIELD(TPFILE,'XOR', NXOR_ALL(IMI)) - CALL IO_WRITE_FIELD(TPFILE,'YOR', NYOR_ALL(IMI)) + CALL IO_Field_write(TPFILE,'DXRATIO',NDXRATIO_ALL(IMI)) + CALL IO_Field_write(TPFILE,'DYRATIO',NDYRATIO_ALL(IMI)) + CALL IO_Field_write(TPFILE,'XOR', NXOR_ALL(IMI)) + CALL IO_Field_write(TPFILE,'YOR', NYOR_ALL(IMI)) END IF ! !* 1.1 Type and Dimensions : ! -CALL IO_WRITE_FIELD(TPFILE,'IMAX',NIMAX_ll) -CALL IO_WRITE_FIELD(TPFILE,'JMAX',NJMAX_ll) -CALL IO_WRITE_FIELD(TPFILE,'KMAX',NKMAX) +CALL IO_Field_write(TPFILE,'IMAX',NIMAX_ll) +CALL IO_Field_write(TPFILE,'JMAX',NJMAX_ll) +CALL IO_Field_write(TPFILE,'KMAX',NKMAX) ! -CALL IO_WRITE_FIELD(TPFILE,'JPHEXT',JPHEXT) +CALL IO_Field_write(TPFILE,'JPHEXT',JPHEXT) ! !* 1.2 Grid variables : ! IF (.NOT.LCARTESIAN) THEN - CALL IO_WRITE_FIELD(TPFILE,'RPK', XRPK) - CALL IO_WRITE_FIELD(TPFILE,'LONORI',XLONORI) - CALL IO_WRITE_FIELD(TPFILE,'LATORI',XLATORI) + CALL IO_Field_write(TPFILE,'RPK', XRPK) + CALL IO_Field_write(TPFILE,'LONORI',XLONORI) + CALL IO_Field_write(TPFILE,'LATORI',XLATORI) ! !* diagnostic of 1st mass point ! @@ -373,51 +373,51 @@ IF (.NOT.LCARTESIAN) THEN CALL SM_LATLON(XLATORI,XLONORI,ZXHATM,ZYHATM,ZLATOR,ZLONOR) DEALLOCATE(ZXHAT_ll,ZYHAT_ll) ! - CALL IO_WRITE_FIELD(TPFILE,'LONOR',ZLONOR) - CALL IO_WRITE_FIELD(TPFILE,'LATOR',ZLATOR) + CALL IO_Field_write(TPFILE,'LONOR',ZLONOR) + CALL IO_Field_write(TPFILE,'LATOR',ZLATOR) END IF ! -CALL IO_WRITE_FIELD(TPFILE,'THINSHELL',LTHINSHELL) -CALL IO_WRITE_FIELD(TPFILE,'LAT0',XLAT0) -CALL IO_WRITE_FIELD(TPFILE,'LON0',XLON0) -CALL IO_WRITE_FIELD(TPFILE,'BETA',XBETA) +CALL IO_Field_write(TPFILE,'THINSHELL',LTHINSHELL) +CALL IO_Field_write(TPFILE,'LAT0',XLAT0) +CALL IO_Field_write(TPFILE,'LON0',XLON0) +CALL IO_Field_write(TPFILE,'BETA',XBETA) ! -CALL IO_WRITE_FIELD(TPFILE,'XHAT',XXHAT) -CALL IO_WRITE_FIELD(TPFILE,'YHAT',XYHAT) -CALL IO_WRITE_FIELD(TPFILE,'ZHAT',XZHAT) -CALL IO_WRITE_FIELD(TPFILE,'ZTOP',XZTOP) +CALL IO_Field_write(TPFILE,'XHAT',XXHAT) +CALL IO_Field_write(TPFILE,'YHAT',XYHAT) +CALL IO_Field_write(TPFILE,'ZHAT',XZHAT) +CALL IO_Field_write(TPFILE,'ZTOP',XZTOP) ! IF (.NOT.LCARTESIAN) THEN - CALL IO_WRITE_FIELD(TPFILE,'LAT',XLAT) - CALL IO_WRITE_FIELD(TPFILE,'LON',XLON) + CALL IO_Field_write(TPFILE,'LAT',XLAT) + CALL IO_Field_write(TPFILE,'LON',XLON) END IF ! -CALL IO_WRITE_FIELD(TPFILE,'ZS', XZS) -CALL IO_WRITE_FIELD(TPFILE,'ZSMT', XZSMT) -CALL IO_WRITE_FIELD(TPFILE,'SLEVE',LSLEVE) +CALL IO_Field_write(TPFILE,'ZS', XZS) +CALL IO_Field_write(TPFILE,'ZSMT', XZSMT) +CALL IO_Field_write(TPFILE,'SLEVE',LSLEVE) ! IF (LSLEVE) THEN - CALL IO_WRITE_FIELD(TPFILE,'LEN1',XLEN1) - CALL IO_WRITE_FIELD(TPFILE,'LEN2',XLEN2) + CALL IO_Field_write(TPFILE,'LEN1',XLEN1) + CALL IO_Field_write(TPFILE,'LEN2',XLEN2) END IF ! ! -CALL IO_WRITE_FIELD(TPFILE,'DTMOD',TDTMOD) -CALL IO_WRITE_FIELD(TPFILE,'DTCUR',TDTCUR) -CALL IO_WRITE_FIELD(TPFILE,'DTEXP',TDTEXP) -CALL IO_WRITE_FIELD(TPFILE,'DTSEG',TDTSEG) +CALL IO_Field_write(TPFILE,'DTMOD',TDTMOD) +CALL IO_Field_write(TPFILE,'DTCUR',TDTCUR) +CALL IO_Field_write(TPFILE,'DTEXP',TDTEXP) +CALL IO_Field_write(TPFILE,'DTSEG',TDTSEG) ! !* 1.3 Configuration variables : ! -CALL IO_WRITE_FIELD(TPFILE,'L1D', L1D) -CALL IO_WRITE_FIELD(TPFILE,'L2D', L2D) -CALL IO_WRITE_FIELD(TPFILE,'PACK', LPACK) -CALL IO_WRITE_FIELD(TPFILE,'CARTESIAN',LCARTESIAN) -CALL IO_WRITE_FIELD(TPFILE,'LBOUSS', LBOUSS) +CALL IO_Field_write(TPFILE,'L1D', L1D) +CALL IO_Field_write(TPFILE,'L2D', L2D) +CALL IO_Field_write(TPFILE,'PACK', LPACK) +CALL IO_Field_write(TPFILE,'CARTESIAN',LCARTESIAN) +CALL IO_Field_write(TPFILE,'LBOUSS', LBOUSS) ! -CALL IO_WRITE_FIELD(TPFILE,'SURF', CSURF) -CALL IO_WRITE_FIELD(TPFILE,'CPL_AROME',LCPL_AROME) -CALL IO_WRITE_FIELD(TPFILE,'COUPLING', LCOUPLING) +CALL IO_Field_write(TPFILE,'SURF', CSURF) +CALL IO_Field_write(TPFILE,'CPL_AROME',LCPL_AROME) +CALL IO_Field_write(TPFILE,'COUPLING', LCOUPLING) ! !* 1.4 Prognostic variables : ! @@ -429,27 +429,27 @@ CALL IO_WRITE_FIELD(TPFILE,'COUPLING', LCOUPLING) ! CALL EXTRAPOL('E',XUT) ! CALL EXTRAPOL('N',XUT) ! CALL EXTRAPOL('S',XUT) -CALL MPPDB_CHECK3D(XUT,"write_lfifmn before IO_WRITE_FIELD::XUT",PRECISION) -CALL IO_WRITE_FIELD(TPFILE,'UT',XUT) -CALL MPPDB_CHECK3D(XUT,"write_lfifmn after IO_WRITE_FIELD::XUT",PRECISION) +CALL MPPDB_CHECK3D(XUT,"write_lfifmn before IO_Field_write::XUT",PRECISION) +CALL IO_Field_write(TPFILE,'UT',XUT) +CALL MPPDB_CHECK3D(XUT,"write_lfifmn after IO_Field_write::XUT",PRECISION) ! !20131128 check XVT-> X_Y_W_V wind component for PRC CALL MPPDB_CHECK3D(XVT,"write_lfifmn::XVT",PRECISION) ! -CALL IO_WRITE_FIELD(TPFILE,'VT',XVT) -CALL IO_WRITE_FIELD(TPFILE,'WT',XWT) +CALL IO_Field_write(TPFILE,'VT',XVT) +CALL IO_Field_write(TPFILE,'WT',XWT) ! -CALL IO_WRITE_FIELD(TPFILE,'THT',XTHT) +CALL IO_Field_write(TPFILE,'THT',XTHT) ! !* 1.4.2 Time t-dt: ! IF ( (CUVW_ADV_SCHEME == 'CEN4TH') .AND. (CTEMP_SCHEME == 'LEFR') ) THEN - CALL IO_WRITE_FIELD(TPFILE,'UM', XUM) - CALL IO_WRITE_FIELD(TPFILE,'VM', XVM) - CALL IO_WRITE_FIELD(TPFILE,'WM', XWM) - CALL IO_WRITE_FIELD(TPFILE,'DUM',XDUM) - CALL IO_WRITE_FIELD(TPFILE,'DVM',XDVM) - CALL IO_WRITE_FIELD(TPFILE,'DWM',XDWM) + CALL IO_Field_write(TPFILE,'UM', XUM) + CALL IO_Field_write(TPFILE,'VM', XVM) + CALL IO_Field_write(TPFILE,'WM', XWM) + CALL IO_Field_write(TPFILE,'DUM',XDUM) + CALL IO_Field_write(TPFILE,'DVM',XDVM) + CALL IO_Field_write(TPFILE,'DWM',XDWM) END IF ! IF (MEAN_COUNT /= 0) THEN @@ -467,20 +467,20 @@ IF (MEAN_COUNT /= 0) THEN TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_Z_U component of mean wind' ZWORK3D = XUM_MEAN/MEAN_COUNT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'U2ME' TZFIELD%CLONGNAME = 'U2ME' TZFIELD%CUNITS = 'm2 s-2' TZFIELD%CCOMMENT = 'X_Y_Z_U component of mean wind variance' ZWORK3D = XU2_MEAN/MEAN_COUNT-XUM_MEAN**2/MEAN_COUNT**2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'UMMA' TZFIELD%CLONGNAME = 'UMMA' TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_Z_U component of max wind' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XUM_MAX) + CALL IO_Field_write(TPFILE,TZFIELD,XUM_MAX) ! TZFIELD%NGRID = 3 ! @@ -489,20 +489,20 @@ IF (MEAN_COUNT /= 0) THEN TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_Z_V component of mean wind' ZWORK3D = XVM_MEAN/MEAN_COUNT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'V2ME' TZFIELD%CLONGNAME = 'V2ME' TZFIELD%CUNITS = 'm2 s-2' TZFIELD%CCOMMENT = 'X_Y_Z_V component of mean wind variance' ZWORK3D = XV2_MEAN/MEAN_COUNT-XVM_MEAN**2/MEAN_COUNT**2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'VMMA' TZFIELD%CLONGNAME = 'VMMA' TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_Z_V component of max wind' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XVM_MAX) + CALL IO_Field_write(TPFILE,TZFIELD,XVM_MAX) ! TZFIELD%NGRID = 4 ! @@ -511,20 +511,20 @@ IF (MEAN_COUNT /= 0) THEN TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_Z_vertical mean wind' ZWORK3D = XWM_MEAN/MEAN_COUNT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'W2ME' TZFIELD%CLONGNAME = 'W2ME' TZFIELD%CUNITS = 'm2 s-2' TZFIELD%CCOMMENT = 'X_Y_Z_vertical mean wind variance' ZWORK3D = XW2_MEAN/MEAN_COUNT-XWM_MEAN**2/MEAN_COUNT**2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'WMMA' TZFIELD%CLONGNAME = 'WMMA' TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_Z_vertical max wind' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XWM_MAX) + CALL IO_Field_write(TPFILE,TZFIELD,XWM_MAX) ! TZFIELD%NGRID = 1 ! @@ -533,60 +533,60 @@ IF (MEAN_COUNT /= 0) THEN TZFIELD%CUNITS = 'K' TZFIELD%CCOMMENT = 'X_Y_Z_mean potential temperature' ZWORK3D = XTHM_MEAN/MEAN_COUNT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'TH2ME' TZFIELD%CLONGNAME = 'TH2ME' TZFIELD%CUNITS = 'K2' TZFIELD%CCOMMENT = 'X_Y_Z_mean potential temperature variance' ZWORK3D = XTH2_MEAN/MEAN_COUNT-XTHM_MEAN**2/MEAN_COUNT**2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'THMMA' TZFIELD%CLONGNAME = 'THMMA' TZFIELD%CUNITS = 'K' TZFIELD%CCOMMENT = 'X_Y_Z_max potential temperature' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTHM_MAX) + CALL IO_Field_write(TPFILE,TZFIELD,XTHM_MAX) ! TZFIELD%CMNHNAME = 'TEMPMME' TZFIELD%CLONGNAME = 'TEMPMME' TZFIELD%CUNITS = 'K' TZFIELD%CCOMMENT = 'X_Y_Z_mean temperature' ZWORK3D = XTEMPM_MEAN/MEAN_COUNT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'TEMP2ME' TZFIELD%CLONGNAME = 'TEMP2ME' TZFIELD%CUNITS = 'K2' TZFIELD%CCOMMENT = 'X_Y_Z_mean temperature variance' ZWORK3D = XTEMP2_MEAN/MEAN_COUNT-XTEMPM_MEAN**2/MEAN_COUNT**2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'TEMPMMA' TZFIELD%CLONGNAME = 'TEMPMMA' TZFIELD%CUNITS = 'K' TZFIELD%CCOMMENT = 'X_Y_Z_max temperature' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTEMPM_MAX) + CALL IO_Field_write(TPFILE,TZFIELD,XTEMPM_MAX) ! TZFIELD%CMNHNAME = 'PABSMME' TZFIELD%CLONGNAME = 'PABSMME' TZFIELD%CUNITS = 'Pa' TZFIELD%CCOMMENT = 'X_Y_Z_mean ABSolute Pressure' ZWORK3D = XPABSM_MEAN/MEAN_COUNT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'PABS2ME' TZFIELD%CLONGNAME = 'PABS2ME' TZFIELD%CUNITS = 'Pa2' TZFIELD%CCOMMENT = 'X_Y_Z_mean ABSolute Pressure variance' ZWORK3D = XPABS2_MEAN/MEAN_COUNT-XPABSM_MEAN**2/MEAN_COUNT**2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'PABSMMA' TZFIELD%CLONGNAME = 'PABSMMA' TZFIELD%CUNITS = 'Pa' TZFIELD%CCOMMENT = 'X_Y_Z_max ABSolute Pressure' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPABSM_MAX) + CALL IO_Field_write(TPFILE,TZFIELD,XPABSM_MAX) ! IF (CTURB /= 'NONE') THEN TZFIELD%CMNHNAME = 'TKEMME' @@ -594,52 +594,52 @@ IF (MEAN_COUNT /= 0) THEN TZFIELD%CUNITS = 'm2 s-2' TZFIELD%CCOMMENT = 'X_Y_Z_mean kinetic energy' ZWORK3D= XTKEM_MEAN/MEAN_COUNT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'TKEMMA' TZFIELD%CLONGNAME = 'TKEMMA' TZFIELD%CUNITS = 'm2 s-2' TZFIELD%CCOMMENT = 'X_Y_Z_max kinetic energy' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTKEM_MAX) + CALL IO_Field_write(TPFILE,TZFIELD,XTKEM_MAX) END IF ! END IF ! ! IF (CTURB /= 'NONE') THEN - CALL IO_WRITE_FIELD(TPFILE,'TKET',XTKET) - IF (CPROGRAM == 'MESONH' .AND. LSPLIT_CFL) CALL IO_WRITE_FIELD(TPFILE,'TKEMS',XRTKEMS) + CALL IO_Field_write(TPFILE,'TKET',XTKET) + IF (CPROGRAM == 'MESONH' .AND. LSPLIT_CFL) CALL IO_Field_write(TPFILE,'TKEMS',XRTKEMS) END IF ! ! -CALL IO_WRITE_FIELD(TPFILE,'PABST',XPABST) +CALL IO_Field_write(TPFILE,'PABST',XPABST) ! IF (NRR >=1) THEN - IF (LUSERV) CALL IO_WRITE_FIELD(TPFILE,'RVT',XRT(:,:,:,IDX_RVT)) + IF (LUSERV) CALL IO_Field_write(TPFILE,'RVT',XRT(:,:,:,IDX_RVT)) IF (LUSERC) THEN - CALL IO_WRITE_FIELD(TPFILE,'RCT',XRT(:,:,:,IDX_RCT)) + CALL IO_Field_write(TPFILE,'RCT',XRT(:,:,:,IDX_RCT)) WRITE (ILUOUT,*) IDX_RCT,' RC min-max ',MIN_ll(XRT(:,:,:,IDX_RCT),INFO_ll),MAX_ll(XRT(:,:,:,IDX_RCT),INFO_ll) END IF IF (LUSERR) THEN - CALL IO_WRITE_FIELD(TPFILE,'RRT',XRT(:,:,:,IDX_RRT)) + CALL IO_Field_write(TPFILE,'RRT',XRT(:,:,:,IDX_RRT)) WRITE (ILUOUT,*) IDX_RRT,' RR min-max ',MIN_ll(XRT(:,:,:,IDX_RRT),INFO_ll),MAX_ll(XRT(:,:,:,IDX_RRT),INFO_ll) END IF IF (LUSERI) THEN - CALL IO_WRITE_FIELD(TPFILE,'RIT',XRT(:,:,:,IDX_RIT)) + CALL IO_Field_write(TPFILE,'RIT',XRT(:,:,:,IDX_RIT)) WRITE (ILUOUT,*) IDX_RIT,' RI min-max ',MIN_ll(XRT(:,:,:,IDX_RIT),INFO_ll),MAX_ll(XRT(:,:,:,IDX_RIT),INFO_ll) IF ( CPROGRAM == 'MESONH' .AND. CCLOUD(1:3) == 'ICE') THEN - CALL IO_WRITE_FIELD(TPFILE,'CIT',XCIT(:,:,:)) + CALL IO_Field_write(TPFILE,'CIT',XCIT(:,:,:)) END IF END IF IF (LUSERS) THEN - CALL IO_WRITE_FIELD(TPFILE,'RST',XRT(:,:,:,IDX_RST)) + CALL IO_Field_write(TPFILE,'RST',XRT(:,:,:,IDX_RST)) WRITE (ILUOUT,*) IDX_RST,' RS min-max ',MINVAL(XRT(:,:,:,IDX_RST)),MAXVAL(XRT(:,:,:,IDX_RST)) END IF IF (LUSERG) THEN - CALL IO_WRITE_FIELD(TPFILE,'RGT',XRT(:,:,:,IDX_RGT)) + CALL IO_Field_write(TPFILE,'RGT',XRT(:,:,:,IDX_RGT)) WRITE (ILUOUT,*) IDX_RGT,' RG min-max ',MINVAL(XRT(:,:,:,IDX_RGT)),MAXVAL(XRT(:,:,:,IDX_RGT)) END IF - IF (LUSERH) CALL IO_WRITE_FIELD(TPFILE,'RHT',XRT(:,:,:,IDX_RHT)) + IF (LUSERH) CALL IO_Field_write(TPFILE,'RHT',XRT(:,:,:,IDX_RHT)) END IF ! IF (NSV >=1) THEN @@ -658,7 +658,7 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) JSA=JSA+1 END DO END IF @@ -676,7 +676,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) JSA=JSA+1 END DO END IF @@ -694,7 +694,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) JSA=JSA+1 END DO END IF @@ -765,7 +765,7 @@ IF (NSV >=1) THEN END IF ! TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) ! JSA=JSA+1 END DO @@ -773,7 +773,7 @@ IF (NSV >=1) THEN IF (LSCAV .AND. LAERO_MASS) THEN IF (ASSOCIATED(XINPAP)) THEN IF (SIZE(XINPAP) /= 0 ) THEN - CALL IO_WRITE_FIELD(TPFILE,'INPAP',XINPAP) + CALL IO_Field_write(TPFILE,'INPAP',XINPAP) ! ZWORK2D(:,:) = XRHOLW*XINPRR(:,:)*XSVT(:,:,2,NSV_LIMA_SCAVMASS)/ & max( 1.e-20,XRT(:,:,2,3) ) !~2=at ground level @@ -787,9 +787,9 @@ IF (NSV >=1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D) ! - CALL IO_WRITE_FIELD(TPFILE,'ACPAP',XACPAP) + CALL IO_Field_write(TPFILE,'ACPAP',XACPAP) END IF END IF END IF @@ -815,15 +815,15 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (nb ions/m3)' END IF ZWORK3D(:,:,:) = XSVT(:,:,:,JSV) * XRHODREF(:,:,:) ! C/kg --> C/m3 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) JSA=JSA+1 END DO END IF ! IF (CELEC /= 'NONE') THEN - CALL IO_WRITE_FIELD(TPFILE,'EFIELDU',XEFIELDU) - CALL IO_WRITE_FIELD(TPFILE,'EFIELDV',XEFIELDV) - CALL IO_WRITE_FIELD(TPFILE,'EFIELDW',XEFIELDW) + CALL IO_Field_write(TPFILE,'EFIELDU',XEFIELDU) + CALL IO_Field_write(TPFILE,'EFIELDV',XEFIELDV) + CALL IO_Field_write(TPFILE,'EFIELDW',XEFIELDW) ! TZFIELD%CMNHNAME = 'EMODULE' TZFIELD%CSTDNAME = '' @@ -836,34 +836,34 @@ IF (NSV >=1) THEN TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. ZWORK3D(:,:,:) = (XEFIELDU**2 + XEFIELDV**2 + XEFIELDW**2)**0.5 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! CALL FIND_FIELD_ID_FROM_MNHNAME('NI_IAGGS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'pC m-3 s-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XNI_IAGGS*1.E12) + CALL IO_Field_write(TPFILE,TZFIELD,XNI_IAGGS*1.E12) ! CALL FIND_FIELD_ID_FROM_MNHNAME('NI_IDRYG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'pC m-3 s-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XNI_IDRYG*1.E12) + CALL IO_Field_write(TPFILE,TZFIELD,XNI_IDRYG*1.E12) ! CALL FIND_FIELD_ID_FROM_MNHNAME('NI_SDRYG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'pC m-3 s-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XNI_SDRYG*1.E12) + CALL IO_Field_write(TPFILE,TZFIELD,XNI_SDRYG*1.E12) ! CALL FIND_FIELD_ID_FROM_MNHNAME('INDUC_CG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'pC m-3 s-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XIND_RATE*1.E12) + CALL IO_Field_write(TPFILE,TZFIELD,XIND_RATE*1.E12) ! - CALL IO_WRITE_FIELD(TPFILE,'TRIG_IC', NMAP_TRIG_IC) - CALL IO_WRITE_FIELD(TPFILE,'IMPACT_CG', NMAP_IMPACT_CG) - CALL IO_WRITE_FIELD(TPFILE,'AREA_CG', NMAP_2DAREA_CG) - CALL IO_WRITE_FIELD(TPFILE,'AREA_IC', NMAP_2DAREA_IC) - CALL IO_WRITE_FIELD(TPFILE,'FLASH_3DCG',NMAP_3DCG) - CALL IO_WRITE_FIELD(TPFILE,'FLASH_3DIC',NMAP_3DIC) + CALL IO_Field_write(TPFILE,'TRIG_IC', NMAP_TRIG_IC) + CALL IO_Field_write(TPFILE,'IMPACT_CG', NMAP_IMPACT_CG) + CALL IO_Field_write(TPFILE,'AREA_CG', NMAP_2DAREA_CG) + CALL IO_Field_write(TPFILE,'AREA_IC', NMAP_2DAREA_IC) + CALL IO_Field_write(TPFILE,'FLASH_3DCG',NMAP_3DCG) + CALL IO_Field_write(TPFILE,'FLASH_3DIC',NMAP_3DIC) ! IF (LLNOX_EXPLICIT) THEN TZFIELD%CMNHNAME = 'LINOX' @@ -876,7 +876,7 @@ IF (NSV >=1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,NSV_LNOXEND)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,NSV_LNOXEND)) JSA=JSA+1 END IF END IF @@ -894,7 +894,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) JSA=JSA+1 END DO END IF @@ -912,18 +912,18 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) JSA=JSA+1 END DO END IF ! IF ( ((CCLOUD == 'KHKO') .OR.(CCLOUD == 'C2R2')) .AND. (.NOT. LSUPSAT)) THEN - CALL IO_WRITE_FIELD(TPFILE,'SUPSATMAX',XSUPSAT(:,:,:)) - CALL IO_WRITE_FIELD(TPFILE,'NACT', XNACT(:,:,:)) + CALL IO_Field_write(TPFILE,'SUPSATMAX',XSUPSAT(:,:,:)) + CALL IO_Field_write(TPFILE,'NACT', XNACT(:,:,:)) END IF IF ( ((CCLOUD == 'KHKO') .OR.(CCLOUD == 'C2R2')) .AND. LSUPSAT) THEN - CALL IO_WRITE_FIELD(TPFILE,'SSPRO',XSSPRO(:,:,:)) - CALL IO_WRITE_FIELD(TPFILE,'NPRO', XNPRO(:,:,:)) + CALL IO_Field_write(TPFILE,'SSPRO',XSSPRO(:,:,:)) + CALL IO_Field_write(TPFILE,'NPRO', XNPRO(:,:,:)) END IF ! #ifdef MNH_FOREFIRE @@ -941,7 +941,7 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) JSA=JSA+1 END DO END IF @@ -959,7 +959,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME=TRIM(CSNOWNAMES(JSV-NSV_SNWBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) JSA=JSA+1 END DO TZFIELD%CSTDNAME = '' @@ -973,7 +973,7 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CMNHNAME,'(A10,I3.3)')'SNOWCANO_M',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A8,I3.3)')'X_Y_Z_','SNOWCANO',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSNWCANO(:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSNWCANO(:,:,JSV)) JSA=JSA+1 END DO ENDIF @@ -991,7 +991,7 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) JSA=JSA+1 END DO ! @@ -1024,7 +1024,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ppp' WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) ! YCHNAMES(JSV-JSA)=TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) ! without T END DO @@ -1035,7 +1035,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ppp' WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) ! YCHNAMES(JSV-JSA)=TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) ! without M END DO @@ -1048,14 +1048,14 @@ IF (NSV >=1) THEN TZFIELD%CUNITS = 'mol i m-2' TZFIELD%CCOMMENT = 'X_Y_Accumulated moles of aqueous species at the surface' ZWORK2D(:,:) = XACPRAQ(:,:,JSV-NSV_CHACBEG-NSV_CHAC/2+1) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D) END DO TZFIELD%NDIMS = 3 END IF IF (LUSECHAQ.AND.LCH_PH) THEN ! pH values in cloud - CALL IO_WRITE_FIELD(TPFILE,'PHC',XPHC) + CALL IO_Field_write(TPFILE,'PHC',XPHC) IF (NRR>=3) THEN - CALL IO_WRITE_FIELD(TPFILE,'PHR',XPHR) + CALL IO_Field_write(TPFILE,'PHR',XPHR) ! compute mean pH in accumulated surface water !ZWORK2D(:,:) = 10**(-XCH_PHINIT) WHERE (XACPRR > 0.) @@ -1075,7 +1075,7 @@ IF (NSV >=1) THEN TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D) ENDIF ENDIF ELSE IF (LCH_CONV_LINOX) THEN @@ -1091,7 +1091,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = 'LINOXT' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)') 'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) YCHNAMES(JSV-JSA)=TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) END DO ENDIF @@ -1114,7 +1114,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1)))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) IF (JSV==NSV_AERBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_AERBEG ',JSV IF (JSV==NSV_AEREND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_AEREND ',JSV YCHNAMES(JSV-JSA)= TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) @@ -1133,7 +1133,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(CDEAERNAMES(JSV-NSV_AERDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) IF (JSV==NSV_AERDEPBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_AERDEPBEG ',JSV IF (JSV==NSV_AERDEPEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_AERDEPEND ',JSV YCHNAMES(JSV-JSA) = TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) @@ -1158,7 +1158,7 @@ IF (NSV >=1) THEN WRITE(ILUOUT,*) 'Error in write_lfin: number of moments must equal or inferior to 3' WRITE(ILUOUT,*) NSV_DSTBEG, NSV_DSTEND,NMODE_DST,IMOMENTS !callabortstop - CALL IO_FILE_CLOSE_ll(TLUOUT) + CALL IO_File_close(TLUOUT) CALL ABORT STOP END IF ! Test IMOMENTS @@ -1181,7 +1181,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(YPDUST_INI(ISV_NAME_IDX))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) YDSTNAMES((JMODE-1)*IMOMENTS+1)=TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) END DO ! Loop on mode ELSE @@ -1194,7 +1194,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(YPDUST_INI(ISV_NAME_IDX))//'T' !The refererence which will be written to file TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) YDSTNAMES((JMODE-1)*IMOMENTS+JMOM)=TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) END DO ! Loop on moment END DO ! loop on mode @@ -1220,7 +1220,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(CDUSTNAMES(JSV-NSV_DSTBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) IF (JSV==NSV_DSTBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_DSTBEG ',JSV IF (JSV==NSV_DSTEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_DSTEND ',JSV YCHNAMES(JSV-JSA) = TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) @@ -1239,7 +1239,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(CDEDSTNAMES(JSV-NSV_DSTDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) IF (JSV==NSV_DSTDEPBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_DSTDEPBEG ',JSV IF (JSV==NSV_DSTDEPEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_DSTDEPEND ',JSV YCHNAMES(JSV-JSA) = TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) @@ -1264,7 +1264,7 @@ IF (NSV >=1) THEN WRITE(ILUOUT,*) 'Error in write_lfin: number of moments must be 3' WRITE(ILUOUT,*) NSV_SLTBEG, NSV_SLTEND,NMODE_SLT,IMOMENTS !callabortstop - CALL IO_FILE_CLOSE_ll(TLUOUT) + CALL IO_File_close(TLUOUT) CALL ABORT STOP END IF @@ -1288,7 +1288,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(YPSALT_INI(ISV_NAME_IDX))//'T' !The refererence which will be written to file TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) YSLTNAMES((JMODE-1)*IMOMENTS+JMOM)=TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) END DO ! Loop on moments END DO ! Loop on modes @@ -1312,7 +1312,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) IF (JSV==NSV_SLTBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_SLTBEG ',JSV IF (JSV==NSV_SLTEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_SLTEND ',JSV YCHNAMES(JSV-JSA) = TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) @@ -1331,7 +1331,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(CDESLTNAMES(JSV-NSV_SLTDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) IF (JSV==NSV_SLTDEPBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_SLTDEPBEG ',JSV IF (JSV==NSV_SLTDEPEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_SLTDEPEND ',JSV YCHNAMES(JSV-JSA) = TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) @@ -1352,7 +1352,7 @@ IF (NSV >=1) THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ICH_NBR) + CALL IO_Field_write(TPFILE,TZFIELD,ICH_NBR) ! IF (ICH_NBR/=0) THEN TZFIELD%CMNHNAME = 'NSV.TITRE' @@ -1373,7 +1373,7 @@ IF (NSV >=1) THEN ICH_NAMES(ILREC*(JSV-1)+JT) = ICHAR(YCHNAMES(JSV)(JT:JT)) ENDDO ENDDO - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ICH_NAMES) + CALL IO_Field_write(TPFILE,TZFIELD,ICH_NAMES) DEALLOCATE(YCHNAMES,ICH_NAMES) END IF ! @@ -1391,66 +1391,66 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) END DO END IF END IF ! ! -CALL IO_WRITE_FIELD(TPFILE,'LSUM', XLSUM) -CALL IO_WRITE_FIELD(TPFILE,'LSVM', XLSVM) -CALL IO_WRITE_FIELD(TPFILE,'LSWM', XLSWM) -CALL IO_WRITE_FIELD(TPFILE,'LSTHM',XLSTHM) -IF (LUSERV) CALL IO_WRITE_FIELD(TPFILE,'LSRVM',XLSRVM) +CALL IO_Field_write(TPFILE,'LSUM', XLSUM) +CALL IO_Field_write(TPFILE,'LSVM', XLSVM) +CALL IO_Field_write(TPFILE,'LSWM', XLSWM) +CALL IO_Field_write(TPFILE,'LSTHM',XLSTHM) +IF (LUSERV) CALL IO_Field_write(TPFILE,'LSRVM',XLSRVM) ! CALL WRITE_LB_n(TPFILE) ! ! -CALL IO_WRITE_FIELD(TPFILE,'DRYMASST',XDRYMASST) +CALL IO_Field_write(TPFILE,'DRYMASST',XDRYMASST) ! IF( CTURB /= 'NONE' .AND. CTOM=='TM06') THEN - CALL IO_WRITE_FIELD(TPFILE,'BL_DEPTH',XBL_DEPTH) + CALL IO_Field_write(TPFILE,'BL_DEPTH',XBL_DEPTH) END IF ! IF( CTURB /= 'NONE' .AND. LRMC01) THEN - CALL IO_WRITE_FIELD(TPFILE,'SBL_DEPTH',XSBL_DEPTH) + CALL IO_Field_write(TPFILE,'SBL_DEPTH',XSBL_DEPTH) END IF ! IF( CTURB /= 'NONE' .AND. CSCONV == 'EDKF' .AND.(CPROGRAM == 'MESONH' .OR. CPROGRAM == 'DIAG')) THEN - CALL IO_WRITE_FIELD(TPFILE,'WTHVMF',XWTHVMF) + CALL IO_Field_write(TPFILE,'WTHVMF',XWTHVMF) END IF ! IF( NRR > 1 .AND. CTURB /= 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPFILE,'SRCT',XSRCT) - CALL IO_WRITE_FIELD(TPFILE,'SIGS',XSIGS) + CALL IO_Field_write(TPFILE,'SRCT',XSRCT) + CALL IO_Field_write(TPFILE,'SIGS',XSIGS) END IF ! !* 1.5 Reference state variables : ! -CALL IO_WRITE_FIELD(TPFILE,'RHOREFZ',XRHODREFZ) -CALL IO_WRITE_FIELD(TPFILE,'THVREFZ',XTHVREFZ) -CALL IO_WRITE_FIELD(TPFILE,'EXNTOP', XEXNTOP) +CALL IO_Field_write(TPFILE,'RHOREFZ',XRHODREFZ) +CALL IO_Field_write(TPFILE,'THVREFZ',XTHVREFZ) +CALL IO_Field_write(TPFILE,'EXNTOP', XEXNTOP) ! ! !* 1.6 Tendencies ! IF (CPROGRAM == 'MESONH') THEN IF (CTEMP_SCHEME/='LEFR') THEN - CALL IO_WRITE_FIELD(TPFILE,'US_PRES',XRUS_PRES) - CALL IO_WRITE_FIELD(TPFILE,'VS_PRES',XRVS_PRES) - CALL IO_WRITE_FIELD(TPFILE,'WS_PRES',XRWS_PRES) + CALL IO_Field_write(TPFILE,'US_PRES',XRUS_PRES) + CALL IO_Field_write(TPFILE,'VS_PRES',XRVS_PRES) + CALL IO_Field_write(TPFILE,'WS_PRES',XRWS_PRES) END IF IF (LSPLIT_CFL) THEN - CALL IO_WRITE_FIELD(TPFILE,'THS_CLD',XRTHS_CLD) + CALL IO_Field_write(TPFILE,'THS_CLD',XRTHS_CLD) ! IF (NRR >=1) THEN - IF (LUSERV) CALL IO_WRITE_FIELD(TPFILE,'RVS_CLD',XRRS_CLD(:,:,:,IDX_RVT)) - IF (LUSERC) CALL IO_WRITE_FIELD(TPFILE,'RCS_CLD',XRRS_CLD(:,:,:,IDX_RCT)) - IF (LUSERR) CALL IO_WRITE_FIELD(TPFILE,'RRS_CLD',XRRS_CLD(:,:,:,IDX_RRT)) - IF (LUSERI) CALL IO_WRITE_FIELD(TPFILE,'RIS_CLD',XRRS_CLD(:,:,:,IDX_RIT)) - IF (LUSERS) CALL IO_WRITE_FIELD(TPFILE,'RSS_CLD',XRRS_CLD(:,:,:,IDX_RST)) - IF (LUSERG) CALL IO_WRITE_FIELD(TPFILE,'RGS_CLD',XRRS_CLD(:,:,:,IDX_RGT)) - IF (LUSERH) CALL IO_WRITE_FIELD(TPFILE,'RHS_CLD',XRRS_CLD(:,:,:,IDX_RHT)) + IF (LUSERV) CALL IO_Field_write(TPFILE,'RVS_CLD',XRRS_CLD(:,:,:,IDX_RVT)) + IF (LUSERC) CALL IO_Field_write(TPFILE,'RCS_CLD',XRRS_CLD(:,:,:,IDX_RCT)) + IF (LUSERR) CALL IO_Field_write(TPFILE,'RRS_CLD',XRRS_CLD(:,:,:,IDX_RRT)) + IF (LUSERI) CALL IO_Field_write(TPFILE,'RIS_CLD',XRRS_CLD(:,:,:,IDX_RIT)) + IF (LUSERS) CALL IO_Field_write(TPFILE,'RSS_CLD',XRRS_CLD(:,:,:,IDX_RST)) + IF (LUSERG) CALL IO_Field_write(TPFILE,'RGS_CLD',XRRS_CLD(:,:,:,IDX_RGT)) + IF (LUSERH) CALL IO_Field_write(TPFILE,'RHS_CLD',XRRS_CLD(:,:,:,IDX_RHT)) END IF END IF END IF @@ -1469,7 +1469,7 @@ END IF ! TZFIELD%NTYPE = TYPEREAL ! TZFIELD%NDIMS = 3 ! TZFIELD%LTIMEDEP = .TRUE. -! CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRRS_CLD(:,:,:,IRR)) +! CALL IO_Field_write(TPFILE,TZFIELD,XRRS_CLD(:,:,:,IRR)) ! END IF ! IF (JSV == NSV_C2R2END ) THEN ! TZFIELD%CMNHNAME = 'RSVS_CLD2' @@ -1482,7 +1482,7 @@ END IF ! TZFIELD%NTYPE = TYPEREAL ! TZFIELD%NDIMS = 3 ! TZFIELD%LTIMEDEP = .TRUE. -! CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRRS_CLD(:,:,:,IRR)) +! CALL IO_Field_write(TPFILE,TZFIELD,XRRS_CLD(:,:,:,IRR)) ! END IF ! END DO ! END IF @@ -1492,31 +1492,31 @@ END IF ! ! IF (CRAD /= 'NONE') THEN - CALL IO_WRITE_FIELD(TPFILE,'DTRAD_FULL',TDTRAD_FULL) - CALL IO_WRITE_FIELD(TPFILE,'DTRAD_CLLY',TDTRAD_CLONLY) -! - CALL IO_WRITE_FIELD(TPFILE,'DTHRAD', XDTHRAD) - CALL IO_WRITE_FIELD(TPFILE,'FLALWD', XFLALWD) - CALL IO_WRITE_FIELD(TPFILE,'DIRFLASWD', XDIRFLASWD) - CALL IO_WRITE_FIELD(TPFILE,'SCAFLASWD', XSCAFLASWD) - CALL IO_WRITE_FIELD(TPFILE,'DIRSRFSWD', XDIRSRFSWD) - CALL IO_WRITE_FIELD(TPFILE,'CLEARCOL_TM1',NCLEARCOL_TM1) - CALL IO_WRITE_FIELD(TPFILE,'ZENITH', XZENITH) - CALL IO_WRITE_FIELD(TPFILE,'AZIM', XAZIM) - CALL IO_WRITE_FIELD(TPFILE,'DIR_ALB', XDIR_ALB) - CALL IO_WRITE_FIELD(TPFILE,'SCA_ALB', XSCA_ALB) + CALL IO_Field_write(TPFILE,'DTRAD_FULL',TDTRAD_FULL) + CALL IO_Field_write(TPFILE,'DTRAD_CLLY',TDTRAD_CLONLY) +! + CALL IO_Field_write(TPFILE,'DTHRAD', XDTHRAD) + CALL IO_Field_write(TPFILE,'FLALWD', XFLALWD) + CALL IO_Field_write(TPFILE,'DIRFLASWD', XDIRFLASWD) + CALL IO_Field_write(TPFILE,'SCAFLASWD', XSCAFLASWD) + CALL IO_Field_write(TPFILE,'DIRSRFSWD', XDIRSRFSWD) + CALL IO_Field_write(TPFILE,'CLEARCOL_TM1',NCLEARCOL_TM1) + CALL IO_Field_write(TPFILE,'ZENITH', XZENITH) + CALL IO_Field_write(TPFILE,'AZIM', XAZIM) + CALL IO_Field_write(TPFILE,'DIR_ALB', XDIR_ALB) + CALL IO_Field_write(TPFILE,'SCA_ALB', XSCA_ALB) ! CALL PRINT_MSG(NVERB_INFO,'IO','WRITE_LFIFM_n','EMIS: writing only first band') CALL FIND_FIELD_ID_FROM_MNHNAME('EMIS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%NDIMS = 2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XEMIS(:,:,1)) + CALL IO_Field_write(TPFILE,TZFIELD,XEMIS(:,:,1)) ! - CALL IO_WRITE_FIELD(TPFILE,'TSRAD', XTSRAD) + CALL IO_Field_write(TPFILE,'TSRAD', XTSRAD) ENDIF ! IF (NRR > 1 .AND. CPROGRAM == 'MESONH') THEN - CALL IO_WRITE_FIELD(TPFILE,'CLDFR',XCLDFR) + CALL IO_Field_write(TPFILE,'CLDFR',XCLDFR) END IF ! ! @@ -1527,33 +1527,33 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN ! ! ! - CALL IO_WRITE_FIELD(TPFILE,'DTDCONV', TDTDCONV) - CALL IO_WRITE_FIELD(TPFILE,'COUNTCONV',NCOUNTCONV) - CALL IO_WRITE_FIELD(TPFILE,'DTHCONV', XDTHCONV) - CALL IO_WRITE_FIELD(TPFILE,'DRVCONV', XDRVCONV) - CALL IO_WRITE_FIELD(TPFILE,'DRCCONV', XDRCCONV) - CALL IO_WRITE_FIELD(TPFILE,'DRICONV', XDRICONV) + CALL IO_Field_write(TPFILE,'DTDCONV', TDTDCONV) + CALL IO_Field_write(TPFILE,'COUNTCONV',NCOUNTCONV) + CALL IO_Field_write(TPFILE,'DTHCONV', XDTHCONV) + CALL IO_Field_write(TPFILE,'DRVCONV', XDRVCONV) + CALL IO_Field_write(TPFILE,'DRCCONV', XDRCCONV) + CALL IO_Field_write(TPFILE,'DRICONV', XDRICONV) ! CALL FIND_FIELD_ID_FROM_MNHNAME('PRCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPRCONV*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XPRCONV*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('PACCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPACCONV*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XPACCONV*1.0E3) ! CALL FIND_FIELD_ID_FROM_MNHNAME('PRSCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPRSCONV*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XPRSCONV*3.6E6) ! IF ( LCH_CONV_LINOX ) THEN - CALL IO_WRITE_FIELD(TPFILE,'IC_RATE', XIC_RATE) - CALL IO_WRITE_FIELD(TPFILE,'CG_RATE', XCG_RATE) - CALL IO_WRITE_FIELD(TPFILE,'IC_TOTAL_NB',XIC_TOTAL_NUMBER) - CALL IO_WRITE_FIELD(TPFILE,'CG_TOTAL_NB',XCG_TOTAL_NUMBER) + CALL IO_Field_write(TPFILE,'IC_RATE', XIC_RATE) + CALL IO_Field_write(TPFILE,'CG_RATE', XCG_RATE) + CALL IO_Field_write(TPFILE,'IC_TOTAL_NB',XIC_TOTAL_NUMBER) + CALL IO_Field_write(TPFILE,'CG_TOTAL_NB',XCG_TOTAL_NUMBER) END IF ! IF ( LCHTRANS .AND. NSV > 0 ) THEN @@ -1571,31 +1571,31 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN WRITE(TZFIELD%CMNHNAME,'(A7,I3.3)')'DSVCONV',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_C2R2BEG, NSV_C2R2END TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_C1R3BEG, NSV_C1R3END TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_ELECBEG, NSV_ELECEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CELECNAMES(JSV-NSV_ELECBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_PPBEG, NSV_PPEND WRITE(TZFIELD%CMNHNAME,'(A7,I3.3)')'DSVCONV',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO #ifdef MNH_FOREFIRE IF (LFOREFIRE) THEN @@ -1603,7 +1603,7 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN WRITE(TZFIELD%CMNHNAME,'(A7,I3.3)')'DSVCONV',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF #endif @@ -1612,14 +1612,14 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(UPCASE(CNAMES(JSV-NSV_CHEMBEG+1))) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO IF (LORILAM) THEN DO JSV = NSV_AERBEG, NSV_AEREND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1))) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF ! linox scalar variables @@ -1628,26 +1628,26 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN TZFIELD%CMNHNAME = 'DSVCONV_LINOX' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF DO JSV = NSV_LGBEG, NSV_LGEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CLGNAMES(JSV-NSV_LGBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_DSTBEG, NSV_DSTEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CDUSTNAMES(JSV-NSV_DSTBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_SLTBEG, NSV_SLTEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF ! @@ -1662,12 +1662,12 @@ IF (CPROGRAM /= 'IDEAL') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRC',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRC*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRC*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRC',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRC*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRC*1.0E3) ! ENDIF ENDIF @@ -1677,12 +1677,12 @@ IF (CPROGRAM /= 'IDEAL') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INDEP',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINDEP*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINDEP*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACDEP',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACDEP*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACDEP*1.0E3) ! ENDIF ENDIF @@ -1692,15 +1692,15 @@ IF (CPROGRAM /= 'IDEAL') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRR',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRR*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRR*3.6E6) ! - CALL IO_WRITE_FIELD(TPFILE,'INPRR3D',XINPRR3D) - CALL IO_WRITE_FIELD(TPFILE,'EVAP3D', XEVAP3D) + CALL IO_Field_write(TPFILE,'INPRR3D',XINPRR3D) + CALL IO_Field_write(TPFILE,'EVAP3D', XEVAP3D) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRR',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRR*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRR*1.0E3) ! ENDIF ENDIF @@ -1710,12 +1710,12 @@ IF (CPROGRAM /= 'IDEAL') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRS*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRS*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRS*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRS*1.0E3) END IF END IF ! @@ -1724,12 +1724,12 @@ IF (CPROGRAM /= 'IDEAL') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRG*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRG*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRG*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRG*1.0E3) END IF END IF ! @@ -1738,12 +1738,12 @@ IF (CPROGRAM /= 'IDEAL') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRH',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRH*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRH*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRH',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRH*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRH*1.0E3) ENDIF ENDIF ! @@ -1756,7 +1756,7 @@ IF (CPROGRAM /= 'IDEAL') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK2D*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D*3.6E6) ! ZWORK2D = XACPRR + XACPRS IF (SIZE(XINPRG) /= 0 ) ZWORK2D = ZWORK2D + XACPRG @@ -1765,7 +1765,7 @@ IF (CPROGRAM /= 'IDEAL') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK2D*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D*1.0E3) END IF END IF ! @@ -1784,7 +1784,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSNWSUBL3D(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,XSNWSUBL3D(:,:,:)) ZWORK2D(:,:) = 0. DO JK = IKB,IKE ZWORK2D(:,:) = ZWORK2D(:,:)+XSNWSUBL3D(:,:,JK) * & @@ -1802,7 +1802,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK2D(:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D(:,:)) END IF END IF ENDIF @@ -1812,7 +1812,7 @@ ENDIF ! IF (LFORCING) THEN ! - CALL IO_WRITE_FIELD(TPFILE,'FRC',NFRC) + CALL IO_Field_write(TPFILE,'FRC',NFRC) ! DO JT=1,NFRC ! @@ -1828,7 +1828,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEDATE TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,TDTFRC(JT)) + CALL IO_Field_write(TPFILE,TZFIELD,TDTFRC(JT)) ! TZFIELD%CMNHNAME = 'UFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1840,7 +1840,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XUFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XUFRC(:,JT)) ! TZFIELD%CMNHNAME = 'VFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1852,7 +1852,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XVFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'WFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1864,7 +1864,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XWFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XWFRC(:,JT)) ! TZFIELD%CMNHNAME = 'THFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1876,7 +1876,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTHFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'RVFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1888,7 +1888,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRVFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XRVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'TENDTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1900,7 +1900,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTENDTHFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTENDTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'TENDRVFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1912,7 +1912,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTENDRVFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTENDRVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'GXTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1924,7 +1924,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XGXTHFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XGXTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'GYTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1936,7 +1936,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XGYTHFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XGYTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'PGROUNDFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1948,7 +1948,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPGROUNDFRC(JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XPGROUNDFRC(JT)) ! TZFIELD%CMNHNAME = 'TENDUFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1960,7 +1960,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTENDUFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTENDUFRC(:,JT)) ! TZFIELD%CMNHNAME = 'TENDVFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1972,7 +1972,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTENDVFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTENDVFRC(:,JT)) ! END DO ! @@ -1992,7 +1992,7 @@ IF ( L2D_ADV_FRC ) THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,NADVFRC) + CALL IO_Field_write(TPFILE,TZFIELD,NADVFRC) ! DO JT=1,NADVFRC ! @@ -2008,7 +2008,7 @@ IF ( L2D_ADV_FRC ) THEN TZFIELD%NTYPE = TYPEDATE TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,TDTADVFRC(JT)) + CALL IO_Field_write(TPFILE,TZFIELD,TDTADVFRC(JT)) ! TZFIELD%CMNHNAME = 'TH_ADV'//YFRC TZFIELD%CSTDNAME = '' @@ -2020,7 +2020,7 @@ IF ( L2D_ADV_FRC ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDTHFRC(:,:,:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XDTHFRC(:,:,:,JT)) ! TZFIELD%CMNHNAME = 'Q_ADV'//YFRC TZFIELD%CSTDNAME = '' @@ -2032,7 +2032,7 @@ IF ( L2D_ADV_FRC ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDRVFRC(:,:,:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XDRVFRC(:,:,:,JT)) ! ENDDO ENDIF @@ -2049,7 +2049,7 @@ IF ( L2D_REL_FRC ) THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,NRELFRC) + CALL IO_Field_write(TPFILE,TZFIELD,NRELFRC) ! DO JT=1,NRELFRC ! @@ -2065,7 +2065,7 @@ IF ( L2D_REL_FRC ) THEN TZFIELD%NTYPE = TYPEDATE TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,TDTRELFRC(JT)) + CALL IO_Field_write(TPFILE,TZFIELD,TDTRELFRC(JT)) ! TZFIELD%CMNHNAME = 'TH_REL'//YFRC TZFIELD%CSTDNAME = '' @@ -2077,7 +2077,7 @@ IF ( L2D_REL_FRC ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTHREL(:,:,:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTHREL(:,:,:,JT)) ! TZFIELD%CMNHNAME = 'Q_REL'//YFRC TZFIELD%CSTDNAME = '' @@ -2089,7 +2089,7 @@ IF ( L2D_REL_FRC ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRVREL(:,:,:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XRVREL(:,:,:,JT)) ! ENDDO ENDIF @@ -2097,11 +2097,11 @@ ENDIF !* 1.11bis Eddy Fluxes variables ! Modif PP ! IF ( LTH_FLX ) THEN - CALL IO_WRITE_FIELD(TPFILE,'VT_FLX',XVTH_FLUX_M) - CALL IO_WRITE_FIELD(TPFILE,'WT_FLX',XWTH_FLUX_M) + CALL IO_Field_write(TPFILE,'VT_FLX',XVTH_FLUX_M) + CALL IO_Field_write(TPFILE,'WT_FLX',XWTH_FLUX_M) END IF ! -IF ( LUV_FLX) CALL IO_WRITE_FIELD(TPFILE,'VU_FLX',XVU_FLUX_M) +IF ( LUV_FLX) CALL IO_Field_write(TPFILE,'VU_FLX',XVU_FLUX_M) ! !* 1.12 Balloon variables ! @@ -2119,36 +2119,36 @@ IF ( CPROGRAM=='REAL ' ) THEN ! ! i) Total fields (TOT=BASIC+TOTDIS) ! - CALL IO_WRITE_FIELD(TPFILE,'UT15', XUTOT) - CALL IO_WRITE_FIELD(TPFILE,'VT15', XVTOT) - CALL IO_WRITE_FIELD(TPFILE,'TEMPTOT',XTTOT) - IF (INDEX(CFILTERING,'P')/=0) CALL IO_WRITE_FIELD(TPFILE,'PRESTOT',XPTOT) - IF (INDEX(CFILTERING,'Q')/=0) CALL IO_WRITE_FIELD(TPFILE,'HUMTOT', XQTOT) + CALL IO_Field_write(TPFILE,'UT15', XUTOT) + CALL IO_Field_write(TPFILE,'VT15', XVTOT) + CALL IO_Field_write(TPFILE,'TEMPTOT',XTTOT) + IF (INDEX(CFILTERING,'P')/=0) CALL IO_Field_write(TPFILE,'PRESTOT',XPTOT) + IF (INDEX(CFILTERING,'Q')/=0) CALL IO_Field_write(TPFILE,'HUMTOT', XQTOT) ! ! ii) Environmental fields (ENV=TOT-VORDIS) ! - CALL IO_WRITE_FIELD(TPFILE,'UT16', XUENV) - CALL IO_WRITE_FIELD(TPFILE,'VT16', XVENV) - CALL IO_WRITE_FIELD(TPFILE,'TEMPENV',XTENV) - IF (INDEX(CFILTERING,'P')/=0) CALL IO_WRITE_FIELD(TPFILE,'PRESENV',XPENV) - IF (INDEX(CFILTERING,'Q')/=0) CALL IO_WRITE_FIELD(TPFILE,'HUMENV', XQENV) + CALL IO_Field_write(TPFILE,'UT16', XUENV) + CALL IO_Field_write(TPFILE,'VT16', XVENV) + CALL IO_Field_write(TPFILE,'TEMPENV',XTENV) + IF (INDEX(CFILTERING,'P')/=0) CALL IO_Field_write(TPFILE,'PRESENV',XPENV) + IF (INDEX(CFILTERING,'Q')/=0) CALL IO_Field_write(TPFILE,'HUMENV', XQENV) ! END IF IF (NDIAG_FILT >=1) THEN ! ! iii) Basic (filtered) fields ! - CALL IO_WRITE_FIELD(TPFILE,'UT17', XUBASIC) - CALL IO_WRITE_FIELD(TPFILE,'VT17', XVBASIC) - CALL IO_WRITE_FIELD(TPFILE,'TEMPBAS',XTBASIC) - IF (INDEX(CFILTERING,'P')/=0) CALL IO_WRITE_FIELD(TPFILE,'PRESBAS',XPBASIC) - IF (INDEX(CFILTERING,'Q')/=0) CALL IO_WRITE_FIELD(TPFILE,'HUMBAS', XQBASIC) + CALL IO_Field_write(TPFILE,'UT17', XUBASIC) + CALL IO_Field_write(TPFILE,'VT17', XVBASIC) + CALL IO_Field_write(TPFILE,'TEMPBAS',XTBASIC) + IF (INDEX(CFILTERING,'P')/=0) CALL IO_Field_write(TPFILE,'PRESBAS',XPBASIC) + IF (INDEX(CFILTERING,'Q')/=0) CALL IO_Field_write(TPFILE,'HUMBAS', XQBASIC) END IF IF (NDIAG_FILT >=2) THEN ! ! iv) Total disturbance tangential wind ! - CALL IO_WRITE_FIELD(TPFILE,'VTDIS',XVTDIS) + CALL IO_Field_write(TPFILE,'VTDIS',XVTDIS) ! END IF ! @@ -2169,7 +2169,7 @@ IF ( CPROGRAM=='REAL ' ) THEN TZFIELD%CMNHNAME = ADJUSTL(CDUMMY_2D(JSA)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDUMMY_2D(:,:,JSA)) + CALL IO_Field_write(TPFILE,TZFIELD,XDUMMY_2D(:,:,JSA)) END DO END IF ! diff --git a/src/MNH/write_profilern.f90 b/src/MNH/write_profilern.f90 index a011479a3..b70fe68aa 100644 --- a/src/MNH/write_profilern.f90 +++ b/src/MNH/write_profilern.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2002-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################### @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_PROFILER_n(TPDIAFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! diachronic file to write ! @@ -67,7 +67,7 @@ END MODULE MODI_WRITE_PROFILER_n ! ------------ ! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT USE MODD_PARAMETERS ! diff --git a/src/MNH/write_seriesn.f90 b/src/MNH/write_seriesn.f90 index 9a0430e09..d4851b5a3 100644 --- a/src/MNH/write_seriesn.f90 +++ b/src/MNH/write_seriesn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2002-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !######################## @@ -13,7 +13,7 @@ INTERFACE ! SUBROUTINE WRITE_SERIES_n(TPDIAFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write ! @@ -67,14 +67,13 @@ END MODULE MODI_WRITE_SERIES_n !* 0. Declaration ! -------------- ! -USE MODD_IO_ll, ONLY: NGEN_VERB,TFILEDATA +USE MODD_IO, ONLY: NGEN_VERB, TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS USE MODD_SERIES USE MODD_SERIES_n ! USE MODE_GATHER_ll -USE MODE_IO_ll USE MODE_ll USE MODE_MSG ! diff --git a/src/MNH/write_stationn.f90 b/src/MNH/write_stationn.f90 index 2a67c0fa1..92722fe09 100644 --- a/src/MNH/write_stationn.f90 +++ b/src/MNH/write_stationn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2002-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################### @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_STATION_n(TPDIAFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! diachronic file to write ! @@ -64,7 +64,7 @@ END MODULE MODI_WRITE_STATION_n ! ------------ ! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT USE MODD_PARAMETERS ! diff --git a/src/MNH/write_surf_mnh.f90 b/src/MNH/write_surf_mnh.f90 index 7d54e17b0..2fb2021b5 100644 --- a/src/MNH/write_surf_mnh.f90 +++ b/src/MNH/write_surf_mnh.f90 @@ -171,15 +171,15 @@ END MODULE MODE_WRITE_SURF_MNH_TOOLS !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_CONF, ONLY: CPROGRAM -USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_CONF, ONLY: CPROGRAM +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE USE MODD_GRID -USE MODD_IO_ll, ONLY: TFILE_SURFEX +USE MODD_IO, ONLY: TFILE_SURFEX ! IMPLICIT NONE ! @@ -209,7 +209,7 @@ IF( ( HREC=='LAT0' .OR. HREC=='LON0' .OR. HREC=='RPK' .OR. HREC=='BETA' & ELSE ! CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,0,TYPEREAL,0,'WRITE_SURFX0_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,PFIELD,KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,PFIELD,KRESP) ! IF (TRIM(CPROGRAM)=='PGD') THEN !Store these variables (necessary for PREP_PGD program when writing netCDF files) @@ -282,15 +282,15 @@ END SUBROUTINE WRITE_SURFX0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: FIND_FIELD_ID_FROM_MNHNAME,TFIELDDATA,TFIELDLIST,TYPEREAL +USE MODE_FIELD, ONLY: FIND_FIELD_ID_FROM_MNHNAME,TFIELDDATA,TFIELDLIST,TYPEREAL +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_TOOLS_ll USE MODE_WRITE_SURF_MNH_TOOLS ! USE MODD_CONF_n, ONLY: CSTORAGE_TYPE USE MODD_GRID_n, ONLY: XXHAT, XYHAT -USE MODD_IO_ll, ONLY: TFILE_SURFEX +USE MODD_IO, ONLY: TFILE_SURFEX USE MODD_IO_SURF_MNH, ONLY :NMASK, CMASK, & NIU, NJU, NIB, NJB, NIE, NJE, & NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, & @@ -436,11 +436,11 @@ IF ( (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU') & CALL FIND_FIELD_ID_FROM_MNHNAME('XHAT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CDIR = '--' - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZW1D(:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZW1D(:),KRESP) END IF IF (HDIR=='H') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('XHAT',IID,IRESP) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TFIELDLIST(IID),ZW1D(1+NHALO:IIU-NHALO),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TFIELDLIST(IID),ZW1D(1+NHALO:IIU-NHALO),KRESP) IF (.NOT. (ASSOCIATED(XXHAT))) THEN !Store XXHAT if not yet done (necessary for PREP_PGD program when writing netCDF files) ALLOCATE(XXHAT(IIU-2*NHALO)) @@ -467,11 +467,11 @@ ELSE IF ( (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU') & CALL FIND_FIELD_ID_FROM_MNHNAME('YHAT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CDIR = '--' - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZW1D(:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZW1D(:),KRESP) END IF IF (HDIR=='H') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('YHAT',IID,IRESP) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TFIELDLIST(IID),ZW1D(1+NHALO:IJU-NHALO),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TFIELDLIST(IID),ZW1D(1+NHALO:IJU-NHALO),KRESP) IF (.NOT. (ASSOCIATED(XYHAT))) THEN !Store XYHAT if not yet done (necessary for PREP_PGD program when writing netCDF files) ALLOCATE(XYHAT(IJU-2*NHALO)) @@ -481,13 +481,13 @@ ELSE IF ( (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU') & DEALLOCATE(ZW1D) ELSE IF (HDIR=='H') THEN CALL PREPARE_METADATA_WRITE_SURF(HREC,'XY',HCOMMENT,4,TYPEREAL,2,'WRITE_SURFX1_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZWORK(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO),KRESP) ELSE IF (HDIR=='A') THEN CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,4,TYPEREAL,2,'WRITE_SURFX1_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZWORK(:,:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK(:,:),KRESP) ELSE CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,4,TYPEREAL,1,'WRITE_SURFX1_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,PFIELD(:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,PFIELD(:),KRESP) END IF ! IF (KRESP /=0) THEN @@ -545,20 +545,20 @@ END SUBROUTINE WRITE_SURFX1_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL +USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_TOOLS_ll USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_CONF_n, ONLY: CSTORAGE_TYPE -USE MODD_DATA_COVER_PAR,ONLY : JPCOVER -USE MODD_IO_ll, ONLY: TFILE_SURFEX -USE MODD_IO_SURF_MNH, ONLY :NMASK, CMASK, & - NIU, NJU, NIB, NJB, NIE, NJE, & - NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, & - NIE_ALL, NJE_ALL, NMASK_ALL, NHALO -USE MODD_PARAMETERS, ONLY: XUNDEF, JPHEXT +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_DATA_COVER_PAR, ONLY: JPCOVER +USE MODD_IO, ONLY: TFILE_SURFEX +USE MODD_IO_SURF_MNH, ONLY: NMASK, CMASK, & + NIU, NJU, NIB, NJB, NIE, NJE, & + NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, & + NIE_ALL, NJE_ALL, NMASK_ALL, NHALO +USE MODD_PARAMETERS, ONLY: XUNDEF, JPHEXT ! USE MODI_GET_SURF_UNDEF USE MODI_UNPACK_1D_2D @@ -648,7 +648,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPELOG TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,GCOVER_PACKED,KRESP) +CALL IO_Field_write(TFILE_SURFEX,TZFIELD,GCOVER_PACKED,KRESP) ! IF (KRESP /=0) THEN WRITE ( YMSG, '( I5 )' ) KRESP @@ -682,12 +682,12 @@ IF (.NOT. GCOVER_PACKED) THEN TZFIELD%CCOMMENT = 'X_Y_'//TRIM(YREC) IF (OFLAG(JL2)) THEN ICOVER=ICOVER+1 - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZWORK3D(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO,ICOVER),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK3D(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO,ICOVER),KRESP) END IF END DO ELSE CALL PREPARE_METADATA_WRITE_SURF(HREC,YDIR,HCOMMENT,4,TYPEREAL,3,'WRITE_SURFX2COV_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZWORK3D(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO,:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK3D(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO,:),KRESP) END IF ! DEALLOCATE(ZWORK3D) @@ -746,20 +746,20 @@ END SUBROUTINE WRITE_SURFX2COV_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_TOOLS_ll USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_CONF_n, ONLY: CSTORAGE_TYPE -USE MODD_DATA_COVER_PAR,ONLY : JPCOVER -USE MODD_IO_ll, ONLY: TFILE_SURFEX -USE MODD_IO_SURF_MNH, ONLY :NMASK, CMASK, & - NIU, NJU, NIB, NJB, NIE, NJE, & - NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, & - NIE_ALL, NJE_ALL, NMASK_ALL, NHALO -USE MODD_PARAMETERS, ONLY: XUNDEF +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_DATA_COVER_PAR, ONLY: JPCOVER +USE MODD_IO, ONLY: TFILE_SURFEX +USE MODD_IO_SURF_MNH, ONLY: NMASK, CMASK, & + NIU, NJU, NIB, NJB, NIE, NJE, & + NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, & + NIE_ALL, NJE_ALL, NMASK_ALL, NHALO +USE MODD_PARAMETERS, ONLY: XUNDEF ! USE MODI_GET_SURF_UNDEF USE MODI_UNPACK_1D_2D @@ -827,11 +827,11 @@ IF (HDIR=='H' .OR. HDIR=='A') THEN ! IF (HDIR=='H') THEN CALL PREPARE_METADATA_WRITE_SURF(HREC,'XY',HCOMMENT,4,TYPEREAL,3,'WRITE_SURFX2_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZWORK(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO,:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO,:),KRESP) END IF IF (HDIR=='A') THEN CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,4,TYPEREAL,3,'WRITE_SURFX2_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZWORK(:,:,:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK(:,:,:),KRESP) END IF ! DEALLOCATE(ZWORK) @@ -842,7 +842,7 @@ ELSE IF (HDIR=='-') THEN WHERE (ZFIELD==ZUNDEF) ZFIELD=XUNDEF ! CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,4,TYPEREAL,2,'WRITE_SURFX2_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZFIELD(:,:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZFIELD(:,:),KRESP) ! DEALLOCATE(ZFIELD) END IF @@ -897,15 +897,15 @@ END SUBROUTINE WRITE_SURFX2_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_CONF_n, ONLY: CSTORAGE_TYPE -USE MODD_IO_ll, ONLY: TFILE_SURFEX -USE MODD_IO_SURF_MNH, ONLY: NIU_ALL, NJU_ALL -USE MODD_PARAMETERS, ONLY: JPHEXT +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_IO, ONLY: TFILE_SURFEX +USE MODD_IO_SURF_MNH, ONLY: NIU_ALL, NJU_ALL +USE MODD_PARAMETERS, ONLY: JPHEXT ! IMPLICIT NONE ! @@ -932,14 +932,14 @@ IF( (HREC=='IMAX' .OR. HREC=='JMAX' .OR. HREC=='KMAX') .AND. & ! ELSE IF (HREC=='VERSION' .OR. HREC=='BUG') THEN !Field is in fieldlist - CALL IO_WRITE_FIELD(TFILE_SURFEX,HREC,KFIELD,KRESP) + CALL IO_Field_write(TFILE_SURFEX,HREC,KFIELD,KRESP) ELSE IFIELD = KFIELD IF (HREC=='IMAX') IFIELD = NIU_ALL-2*JPHEXT IF (HREC=='JMAX') IFIELD = NJU_ALL-2*JPHEXT ! CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,0,TYPEINT,0,'WRITE_SURFN0_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,IFIELD,KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,IFIELD,KRESP) END IF ! IF (KRESP /=0) THEN @@ -992,15 +992,15 @@ END SUBROUTINE WRITE_SURFN0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_IO_ll, ONLY: TFILE_SURFEX -USE MODD_IO_SURF_MNH, ONLY: NMASK, CMASK, & - NIU, NJU, NIB, NJB, NIE, NJE -USE MODD_PARAMETERS, ONLY: NUNDEF +USE MODD_IO, ONLY: TFILE_SURFEX +USE MODD_IO_SURF_MNH, ONLY: NMASK, CMASK, & + NIU, NJU, NIB, NJB, NIE, NJE +USE MODD_PARAMETERS, ONLY: NUNDEF ! USE MODI_UNPACK_1D_2D ! @@ -1031,7 +1031,7 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','WRITE_SURFN1_MNH',TRIM(TFILE_SURFEX%CNAME)//': IF (HDIR=='-') THEN ! CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,0,TYPEINT,1,'WRITE_SURFN1_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,KFIELD,KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,KFIELD,KRESP) ! ELSE IF (HDIR=='H') THEN ! @@ -1041,7 +1041,7 @@ ELSE IF (HDIR=='H') THEN CALL UNPACK_1D_2D(NMASK,KFIELD,IWORK(NIB:NIE,NJB:NJE)) ! CALL PREPARE_METADATA_WRITE_SURF(HREC,'XY',HCOMMENT,4,TYPEINT,2,'WRITE_SURFN1_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,IWORK(:,:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,IWORK(:,:),KRESP) ! DEALLOCATE(IWORK) END IF @@ -1095,14 +1095,14 @@ END SUBROUTINE WRITE_SURFN1_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: TFIELDDATA,TYPECHAR,TYPELOG +USE MODE_FIELD, ONLY: TFIELDDATA,TYPECHAR,TYPELOG +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_CONF_n, ONLY: CSTORAGE_TYPE -USE MODD_IO_ll, ONLY: TFILE_SURFEX -USE MODD_IO_SURF_MNH, ONLY: NIU_ALL, NJU_ALL +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_IO, ONLY: TFILE_SURFEX +USE MODD_IO_SURF_MNH, ONLY: NIU_ALL, NJU_ALL ! IMPLICIT NONE ! @@ -1130,7 +1130,7 @@ IF ( (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU') & GCARTESIAN = .TRUE. END IF ! - CALL IO_WRITE_FIELD(TFILE_SURFEX,'CARTESIAN',GCARTESIAN,KRESP) + CALL IO_Field_write(TFILE_SURFEX,'CARTESIAN',GCARTESIAN,KRESP) ! IF (KRESP /=0) THEN WRITE ( YMSG, '( I5 )' ) KRESP @@ -1140,7 +1140,7 @@ IF ( (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU') & END IF ! CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,0,TYPECHAR,0,'WRITE_SURFC0_MNH',TZFIELD) -CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,HFIELD,KRESP) +CALL IO_Field_write(TFILE_SURFEX,TZFIELD,HFIELD,KRESP) ! IF (KRESP /=0) THEN WRITE ( YMSG, '( I5 )' ) KRESP @@ -1191,15 +1191,15 @@ END SUBROUTINE WRITE_SURFC0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT,TYPELOG +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT,TYPELOG +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_CONF_n, ONLY: CSTORAGE_TYPE -USE MODD_IO_ll, ONLY: TFILE_SURFEX -USE MODD_IO_SURF_MNH, ONLY: NMASK, CMASK, & - NIU, NJU, NIB, NJB, NIE, NJE +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_IO, ONLY: TFILE_SURFEX +USE MODD_IO_SURF_MNH, ONLY: NMASK, CMASK, & + NIU, NJU, NIB, NJB, NIE, NJE ! USE MODI_UNPACK_1D_2D ! @@ -1235,7 +1235,7 @@ IF (HDIR=='-') THEN RETURN ELSE CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,0,TYPELOG,1,'WRITE_SURFL1_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,OFIELD(:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,OFIELD(:),KRESP) END IF ! ELSE IF (HDIR=='H') THEN @@ -1250,7 +1250,7 @@ ELSE IF (HDIR=='H') THEN WHERE(GWORK) IWORK = 1 ! CALL PREPARE_METADATA_WRITE_SURF(HREC,'XY',HCOMMENT,4,TYPEINT,2,'WRITE_SURFL1_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,IWORK(:,:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,IWORK(:,:),KRESP) ! DEALLOCATE(IWORK) DEALLOCATE(GWORK) @@ -1306,14 +1306,14 @@ END SUBROUTINE WRITE_SURFL1_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG +USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_CONF_n, ONLY: CSTORAGE_TYPE -USE MODD_IO_ll, ONLY: TFILE_SURFEX -USE MODD_IO_SURF_MNH, ONLY: CMASK +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_IO, ONLY: TFILE_SURFEX +USE MODD_IO_SURF_MNH, ONLY: CMASK ! IMPLICIT NONE ! @@ -1337,7 +1337,7 @@ IF( (CMASK /= 'FULL ').AND. (HREC=='COVER') ) THEN RETURN ELSE CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,0,TYPELOG,0,'WRITE_SURFL0_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,OFIELD,KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,OFIELD,KRESP) END IF ! IF (KRESP /=0) THEN @@ -1389,14 +1389,14 @@ END SUBROUTINE WRITE_SURFL0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEDATE -USE MODE_FM -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEDATE +use MODE_IO_FIELD_WRITE, only: IO_Field_write +USE MODE_IO_FILE USE MODE_MSG USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_CONF_n, ONLY : CSTORAGE_TYPE -USE MODD_IO_ll, ONLY: TFILE_SURFEX +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_IO, ONLY: TFILE_SURFEX USE MODD_TYPE_DATE ! ! @@ -1432,7 +1432,7 @@ ELSE TZDATA%TIME = PTIME ! CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,0,TYPEDATE,0,'WRITE_SURFT0_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,TZDATA,KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,TZDATA,KRESP) END IF ! IF (KRESP /=0) THEN @@ -1483,13 +1483,13 @@ END SUBROUTINE WRITE_SURFT0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEINT, TYPEREAL -USE MODE_FM -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEINT, TYPEREAL +use MODE_IO_FIELD_WRITE, only: IO_Field_write +USE MODE_IO_FILE USE MODE_MSG ! -USE MODD_IO_ll, ONLY: TFILE_SURFEX -USE MODD_CONF_n, ONLY : CSTORAGE_TYPE +USE MODD_IO, ONLY: TFILE_SURFEX +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE ! ! IMPLICIT NONE @@ -1535,7 +1535,7 @@ ELSE TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. ! - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ITDATE(:,:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ITDATE(:,:),KRESP) ! IF (KRESP /=0) THEN WRITE ( YMSG, '( I5 )' ) KRESP @@ -1553,7 +1553,7 @@ ELSE TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. ! - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,PTIME(:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,PTIME(:),KRESP) ! IF (KRESP /=0) THEN WRITE ( YMSG, '( I5 )' ) KRESP diff --git a/src/MNH/write_ts1d.f90 b/src/MNH/write_ts1d.f90 index a022f4a0a..f57d26eef 100644 --- a/src/MNH/write_ts1d.f90 +++ b/src/MNH/write_ts1d.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !! ############################# @@ -76,9 +76,8 @@ !! ------------------ USE MODE_DATETIME -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll,IO_FILE_OPEN_ll -USE MODE_IO_MANAGE_STRUCT,ONLY: IO_FILE_ADD2LIST -USE MODE_IO_ll +USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_GRIDPROJ USE MODE_ll ! @@ -88,7 +87,7 @@ USE MODD_NSV, ONLY: NSV,NSV_CHEMBEG,NSV_CHEMEND, & USE MODD_CH_AEROSOL, ONLY: CAERONAMES, LORILAM USE MODD_DYN_n, ONLY: XTSTEP ! time-step of the model USE MODD_DIM_n, ONLY: NKMAX ! # of points in Z of the physical grid -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS, ONLY: JPVEXT ! vertical external points number USE MODD_GRID, ONLY: XLATORI,XLONORI USE MODD_GRID_n, ONLY: XXHAT,XYHAT,XZZ @@ -230,8 +229,8 @@ DO JN=1,NBPROF (JINDEX >= 1).AND.(JINDEX <= IJU)) THEN ! write picasso def-file IF (GSFIRSTCALL) THEN - CALL IO_FILE_ADD2LIST(TZFILE,YSIO1DDEF,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE,HPOSITION='REWIND',HSTATUS='NEW') + CALL IO_File_add2list(TZFILE,YSIO1DDEF,'TXT','WRITE') + CALL IO_File_open(TZFILE,HPOSITION='REWIND',HSTATUS='NEW') ISIO1D = TZFILE%NLU ! write comment @@ -274,12 +273,12 @@ DO JN=1,NBPROF END IF END DO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! open picasso dat-file - CALL IO_FILE_ADD2LIST(TZFILE,YSIO1DDAT,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE,HPOSITION='REWIND',HSTATUS='NEW') + CALL IO_File_add2list(TZFILE,YSIO1DDAT,'TXT','WRITE') + CALL IO_File_open(TZFILE,HPOSITION='REWIND',HSTATUS='NEW') ISIO1D = TZFILE%NLU ! calculate ISSKIP @@ -387,7 +386,7 @@ DO JN=1,NBPROF ENDDO IF ((CPROGRAM =='DIAG ').AND.(LCHEMDIAG)) THEN - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() END IF diff --git a/src/MNH/xy_to_latlon.f90 b/src/MNH/xy_to_latlon.f90 index e5e264332..49fa91ab6 100644 --- a/src/MNH/xy_to_latlon.f90 +++ b/src/MNH/xy_to_latlon.f90 @@ -54,29 +54,29 @@ !! no transfer of the file when closing Dec. 09, 1996 (V.Masson) !! + changes call to READ_HGRID !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !---------------------------------------------------------------------------- ! !* 0. DECLARATION ! ----------- ! ! -USE MODD_GRID -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_GRID +USE MODD_IO, ONLY: TFILEDATA USE MODD_PGDDIM USE MODD_PGDGRID USE MODD_PARAMETERS USE MODD_LUNIT ! -USE MODE_FM USE MODE_GRIDPROJ -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO, only: IO_Config_set, IO_Init +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list ! USE MODI_INI_CST USE MODI_READ_HGRID ! -USE MODN_CONFIO, ONLY : NAM_CONFIO +USE MODN_CONFIO, ONLY: NAM_CONFIO ! IMPLICIT NONE ! @@ -118,21 +118,21 @@ CALL INI_CST ! !* 2. Reading of namelist file ! ------------------------ -CALL INITIO_ll() +CALL IO_Init() ! -CALL IO_FILE_ADD2LIST(TZNMLFILE,'XY2LATLON1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TZNMLFILE) +CALL IO_File_add2list(TZNMLFILE,'XY2LATLON1.nam','NML','READ') +CALL IO_File_open(TZNMLFILE) INAM=TZNMLFILE%NLU READ(INAM,NAM_INIFILE) READ(INAM,NAM_CONFIO) -CALL SET_CONFIO_ll() -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_Config_set() +CALL IO_File_close(TZNMLFILE) ! !* 1. Opening of MESONH file ! ---------------------- ! -CALL IO_FILE_ADD2LIST(TZINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=2) -CALL IO_FILE_OPEN_ll(TZINIFILE) +CALL IO_File_add2list(TZINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=2) +CALL IO_File_open(TZINIFILE) ! !* 2. Reading of MESONH file ! ---------------------- @@ -142,7 +142,7 @@ CALL READ_HGRID(0,TZINIFILE,YNAME,YDAD,YSTORAGE_TYPE) !* 3. Closing of MESONH file ! ---------------------- ! -CALL IO_FILE_CLOSE_ll(TZINIFILE) +CALL IO_File_close(TZINIFILE) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/zoom_pgd.f90 b/src/MNH/zoom_pgd.f90 index 26370ed71..384239fd2 100644 --- a/src/MNH/zoom_pgd.f90 +++ b/src/MNH/zoom_pgd.f90 @@ -40,7 +40,7 @@ !! 06/2016 (G.Delautier) phasage surfex 8 !! 08/07/2016 P.Wautelet Removed MNH_NCWRIT define !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !! !---------------------------------------------------------------------------- @@ -49,7 +49,7 @@ ! ----------- ! USE MODD_CONF, ONLY : CPROGRAM, L1D, L2D, LPACK -USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG,TFILE_OUTPUTLISTING,TFILEDATA +USE MODD_IO, ONLY: NIO_VERB,NVERB_DEBUG,TFILE_OUTPUTLISTING,TFILEDATA USE MODD_LUNIT, ONLY : TLUOUT0, TOUTDATAFILE USE MODD_PARAMETERS, ONLY : XUNDEF, NUNDEF, JPVEXT, JPHEXT, JPMODELMAX USE MODD_PARAM_n, ONLY : CSURF @@ -57,11 +57,11 @@ USE MODD_DIM_n, ONLY : NIMAX, NJMAX USE MODD_CONF_n, ONLY : CSTORAGE_TYPE ! USE MODE_POS -USE MODE_FM -USE MODE_FMWRIT -USE MODE_FMREAD -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST, IO_FILE_PRINT_LIST +USE MODE_IO, only: IO_Config_set, IO_Init +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Field_write, IO_Header_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_Filelist_print USE MODE_ll USE MODE_MSG USE MODE_MODELN_HANDLER @@ -121,15 +121,15 @@ CALL INI_CST !* 1. Set default names and parallelized I/O ! -------------------------------------- ! -CALL INITIO_ll() +CALL IO_Init() ! -CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') -CALL IO_FILE_OPEN_ll(TLUOUT0) +CALL IO_File_add2list(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') +CALL IO_File_open(TLUOUT0) TFILE_OUTPUTLISTING => TLUOUT0 ILUOUT0=TLUOUT0%NLU ! -CALL IO_FILE_ADD2LIST(TZNMLFILE,'PRE_ZOOM1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TZNMLFILE) +CALL IO_File_add2list(TZNMLFILE,'PRE_ZOOM1.nam','NML','READ') +CALL IO_File_open(TZNMLFILE) ILUNAM = TZNMLFILE%NLU ! CPGDFILE = 'PGDFILE' ! name of the input file @@ -139,7 +139,7 @@ CALL POSNAM(ILUNAM,'NAM_PGDFILE',GFOUND,ILUOUT0) IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_PGDFILE) CALL POSNAM(ILUNAM,'NAM_CONFIO',GFOUND,ILUOUT0) IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_CONFIO) -CALL SET_CONFIO_ll() +CALL IO_Config_set() ! !------------------------------------------------------------------------------ ! @@ -149,8 +149,8 @@ CALL SET_CONFIO_ll() !* 2.1 Open PGD file ! ------------- ! -CALL IO_FILE_ADD2LIST(TZPGDFILE,TRIM(CPGDFILE),'PGD','READ',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=2,KLFIVERB=5) -CALL IO_FILE_OPEN_ll(TZPGDFILE) +CALL IO_File_add2list(TZPGDFILE,TRIM(CPGDFILE),'PGD','READ',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=2,KLFIVERB=5) +CALL IO_File_open(TZPGDFILE) ! !* 2.2 Reading of initial grid ! ----------------------- @@ -160,15 +160,15 @@ CALL READ_HGRID(1,TZPGDFILE,YMY_NAME,YDAD_NAME,YSTORAGE_TYPE) ! NIMAX, NJMAX: size of input domain ALLOCATE(ZZS1 (NIMAX+2*JPHEXT,NJMAX+2*JPHEXT)) ALLOCATE(ZZSMT1(NIMAX+2*JPHEXT,NJMAX+2*JPHEXT)) -CALL IO_READ_FIELD(TZPGDFILE,'ZS',ZZS1) -CALL IO_READ_FIELD(TZPGDFILE,'ZSMT',ZZSMT1) +CALL IO_Field_read(TZPGDFILE,'ZS',ZZS1) +CALL IO_Field_read(TZPGDFILE,'ZSMT',ZZSMT1) ! !* 2.3 Define subdomain ! ---------------- ! CALL SET_SUBDOMAIN(TZNMLFILE,TZPGDFILE,IXOR_DAD,IYOR_DAD,IXOR,IYOR,IDXRATIO,IDYRATIO) ! -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_File_close(TZNMLFILE) ! ! NIMAX, NJMAX: size of output domain ! @@ -195,16 +195,16 @@ IF ( (LEN_TRIM(YZOOMFILE) == 0) .OR. (ADJUSTL(YZOOMFILE) == ADJUSTL(CPGDFILE)) ) YZOOMFILE=ADJUSTL(ADJUSTR(CPGDFILE)//'.z'//ADJUSTL(YZOOMNBR)) END IF ! -CALL IO_FILE_ADD2LIST(TZZOOMFILE,TRIM(YZOOMFILE),'PGD','WRITE',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=5) +CALL IO_File_add2list(TZZOOMFILE,TRIM(YZOOMFILE),'PGD','WRITE',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=5) !PW: TODO: points to dad file (if existing) ! TZZOOMFILE%TDADFILE => ! -CALL IO_FILE_OPEN_ll(TZZOOMFILE) +CALL IO_File_open(TZZOOMFILE) CALL WRITE_HGRID(1,TZZOOMFILE) ! !* 2.5 Preparation of surface physiographic fields ! ------------------------------------------- ! -CALL IO_READ_FIELD(TZPGDFILE,'SURF',CSURF) +CALL IO_Field_read(TZPGDFILE,'SURF',CSURF) ! ! IF (CSURF=='EXTE') THEN @@ -224,26 +224,26 @@ IF (CSURF=='EXTE') THEN ELSE ALLOCATE(ZZS2(NIMAX+2*JPHEXT,NJMAX+2*JPHEXT)) ZZS2(:,:)=ZZS1(IXOR:IXOR+NIMAX+2*JPHEXT-1,IYOR:IYOR+NJMAX+2*JPHEXT-1) - CALL IO_WRITE_FIELD(TZZOOMFILE,'ZS',ZZS2) + CALL IO_Field_write(TZZOOMFILE,'ZS',ZZS2) END IF ! ALLOCATE(ZZSMT2(NIMAX+2*JPHEXT,NJMAX+2*JPHEXT)) ZZSMT2(:,:)=ZZSMT1(IXOR:IXOR+NIMAX+2*JPHEXT-1,IYOR:IYOR+NJMAX+2*JPHEXT-1) -CALL IO_WRITE_FIELD(TZZOOMFILE,'ZSMT',ZZSMT2) +CALL IO_Field_write(TZZOOMFILE,'ZSMT',ZZSMT2) ! !* 2.7 Write configuration variables in the output file ! ------------------------------------------------ ! -CALL IO_WRITE_HEADER(TZZOOMFILE) -CALL IO_WRITE_FIELD(TZZOOMFILE,'DXRATIO',IDXRATIO) -CALL IO_WRITE_FIELD(TZZOOMFILE,'DYRATIO',IDYRATIO) -CALL IO_WRITE_FIELD(TZZOOMFILE,'XOR', IXOR_DAD) -CALL IO_WRITE_FIELD(TZZOOMFILE,'YOR', IYOR_DAD) -CALL IO_WRITE_FIELD(TZZOOMFILE,'L1D', L1D) -CALL IO_WRITE_FIELD(TZZOOMFILE,'L2D', L2D) -CALL IO_WRITE_FIELD(TZZOOMFILE,'PACK', LPACK) -CALL IO_WRITE_FIELD(TZZOOMFILE,'SURF', CSURF) -CALL IO_FILE_CLOSE_ll(TZZOOMFILE) +CALL IO_Header_write(TZZOOMFILE) +CALL IO_Field_write(TZZOOMFILE,'DXRATIO',IDXRATIO) +CALL IO_Field_write(TZZOOMFILE,'DYRATIO',IDYRATIO) +CALL IO_Field_write(TZZOOMFILE,'XOR', IXOR_DAD) +CALL IO_Field_write(TZZOOMFILE,'YOR', IYOR_DAD) +CALL IO_Field_write(TZZOOMFILE,'L1D', L1D) +CALL IO_Field_write(TZZOOMFILE,'L2D', L2D) +CALL IO_Field_write(TZZOOMFILE,'PACK', LPACK) +CALL IO_Field_write(TZZOOMFILE,'SURF', CSURF) +CALL IO_File_close(TZZOOMFILE) ! !* 2.8 Shift to new PGD file ! --------------------- @@ -255,16 +255,16 @@ CPGDFILE = YZOOMFILE !* 3. CLOSE PARALLELIZED I/O ! ---------------------- ! -CALL IO_FILE_CLOSE_ll(TZPGDFILE) +CALL IO_File_close(TZPGDFILE) ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! WRITE(ILUOUT0,*) WRITE(ILUOUT0,*) '***************************' WRITE(ILUOUT0,*) '* ZOOM_PGD ends correctly *' WRITE(ILUOUT0,*) '***************************' ! -CALL IO_FILE_CLOSE_ll(TLUOUT0) +CALL IO_File_close(TLUOUT0) ! CALL END_PARA_ll(IINFO_ll) diff --git a/src/MNH/zsmt_pgd.f90 b/src/MNH/zsmt_pgd.f90 index fc93dfacc..4fa76acf1 100644 --- a/src/MNH/zsmt_pgd.f90 +++ b/src/MNH/zsmt_pgd.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ###################### MODULE MODI_ZSMT_PGD ! ###################### @@ -10,7 +11,7 @@ INTERFACE ! SUBROUTINE ZSMT_PGD(TPFILE,KZSFILTER,KSLEVE,KLOCZSFILTER,OHSLOP,PHSLOP,PSMOOTH_ZS) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics INTEGER, INTENT(IN) :: KZSFILTER ! number of iterations for fine orography @@ -65,12 +66,12 @@ END MODULE MODI_ZSMT_PGD ! !* 0. DECLARATIONS ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_PARAMETERS, ONLY : JPHEXT, XUNDEF ! USE MODI_MNHGET_SURF_PARAM_n -USE MODE_FMREAD -USE MODE_FMWRIT +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll , ONLY : GET_DIM_EXT_ll , ADD2DFIELD_ll , CLEANLIST_ll , UPDATE_HALO_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll USE MODI_SUM_ll @@ -149,12 +150,12 @@ ALLOCATE(ZSMOOTH_ZSINI(IIU,IJU)) ALLOCATE(ZXHAT(IIU)) ALLOCATE(ZYHAT(IJU)) ! -CALL IO_READ_FIELD(TPFILE,'XHAT',ZXHAT) -CALL IO_READ_FIELD(TPFILE,'YHAT',ZYHAT) +CALL IO_Field_read(TPFILE,'XHAT',ZXHAT) +CALL IO_Field_read(TPFILE,'YHAT',ZYHAT) !PW: bug/TODO: read a field in a file opened in WRITE mode -!There is a test in IO_READ_FIELD_BYFIELD_X2 to allow this if TPFILE%CMODE='LFICDF4' -CALL IO_READ_FIELD(TPFILE,'ZS',ZZS) +!There is a test in IO_Field_read_BYFIELD_X2 to allow this if TPFILE%CMODE='LFICDF4' +CALL IO_Field_read(TPFILE,'ZS',ZZS) ! DO JI=1,JPHEXT ZZS(JI,:) = ZZS(IIB,:) @@ -341,7 +342,7 @@ IF(OHSLOP) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSLOPEX) + CALL IO_Field_write(TPFILE,TZFIELD,ZSLOPEX) ! TZFIELD%CMNHNAME = 'ZSLOPEY' TZFIELD%CSTDNAME = '' @@ -353,7 +354,7 @@ IF(OHSLOP) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSLOPEY) + CALL IO_Field_write(TPFILE,TZFIELD,ZSLOPEY) ! TZFIELD%CMNHNAME = 'ZS_FILTR' TZFIELD%CSTDNAME = '' @@ -365,7 +366,7 @@ IF(OHSLOP) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSMOOTH_ZSINI-ZFINE_ZS) + CALL IO_Field_write(TPFILE,TZFIELD,ZSMOOTH_ZSINI-ZFINE_ZS) END IF !------------------------------------------------------------------------------- ! @@ -373,8 +374,8 @@ END IF ! --------------------------------------- ! ! -CALL IO_WRITE_FIELD(TPFILE,'ZS', ZFINE_ZS) -CALL IO_WRITE_FIELD(TPFILE,'ZSMT',ZSLEVE_ZS) +CALL IO_Field_write(TPFILE,'ZS', ZFINE_ZS) +CALL IO_Field_write(TPFILE,'ZSMT',ZSLEVE_ZS) ! DEALLOCATE(ZZS) DEALLOCATE(ZFINE_ZS) -- GitLab From bd9417f5ba8510070c9cf44c9b810014ba661173 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Tue, 5 Mar 2019 10:33:16 +0100 Subject: [PATCH 086/139] Philippe 05/03/2019: disable libs4py compilation in all Rules --- src/Rules.AIX64.mk | 2 +- src/Rules.LXNAGfor.mk | 2 +- src/Rules.LXarm.mk | 2 +- src/Rules.LXcray.mk | 2 +- src/Rules.LXg95.mk | 2 +- src/Rules.LXgfortran.mk | 2 +- src/Rules.LXifort.mk | 2 +- src/Rules.LXpathf95.mk | 2 +- src/Rules.LXpgi.mk | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Rules.AIX64.mk b/src/Rules.AIX64.mk index 9bf3b1262..9c499de3e 100644 --- a/src/Rules.AIX64.mk +++ b/src/Rules.AIX64.mk @@ -109,7 +109,7 @@ MNH_COMPRESS=yes ## S4PY flag # #if MNH_S4PY exists => compile the libs4py library (for epygram) -MNH_S4PY=yes +#MNH_S4PY=no # ########################################################## # # diff --git a/src/Rules.LXNAGfor.mk b/src/Rules.LXNAGfor.mk index 397a18c4f..b97592ba5 100644 --- a/src/Rules.LXNAGfor.mk +++ b/src/Rules.LXNAGfor.mk @@ -102,7 +102,7 @@ MNH_COMPRESS=yes ## S4PY flag # #if MNH_S4PY exists => compile the libs4py library (for epygram) -MNH_S4PY=yes +#MNH_S4PY=no # ########################################################## # # diff --git a/src/Rules.LXarm.mk b/src/Rules.LXarm.mk index dc9369223..57e2a5d00 100644 --- a/src/Rules.LXarm.mk +++ b/src/Rules.LXarm.mk @@ -124,7 +124,7 @@ MNH_COMPRESS=yes ## S4PY flag # #if MNH_S4PY exists => compile the libs4py library (for epygram) -MNH_S4PY=yes +#MNH_S4PY=no # ########################################################## # # diff --git a/src/Rules.LXcray.mk b/src/Rules.LXcray.mk index 425a0b9d6..053507020 100644 --- a/src/Rules.LXcray.mk +++ b/src/Rules.LXcray.mk @@ -117,7 +117,7 @@ MNH_COMPRESS=yes ## S4PY flag # #if MNH_S4PY exists => compile the libs4py library (for epygram) -MNH_S4PY=yes +#MNH_S4PY=no # ########################################################## # # diff --git a/src/Rules.LXg95.mk b/src/Rules.LXg95.mk index e08e73ed7..aaae21f0c 100644 --- a/src/Rules.LXg95.mk +++ b/src/Rules.LXg95.mk @@ -89,7 +89,7 @@ MNH_COMPRESS=yes ## S4PY flag # #if MNH_S4PY exists => compile the libs4py library (for epygram) -MNH_S4PY=yes +#MNH_S4PY=no # ########################################################## # # diff --git a/src/Rules.LXgfortran.mk b/src/Rules.LXgfortran.mk index 58689e968..b6014a2c7 100644 --- a/src/Rules.LXgfortran.mk +++ b/src/Rules.LXgfortran.mk @@ -118,7 +118,7 @@ MNH_COMPRESS=yes ## S4PY flag # #if MNH_S4PY exists => compile the libs4py library (for epygram) -MNH_S4PY=yes +#MNH_S4PY=no # ########################################################## # # diff --git a/src/Rules.LXifort.mk b/src/Rules.LXifort.mk index 231f1949a..bc4573d96 100644 --- a/src/Rules.LXifort.mk +++ b/src/Rules.LXifort.mk @@ -213,7 +213,7 @@ MNH_COMPRESS=yes ## S4PY flag # #if MNH_S4PY exists => compile the libs4py library (for epygram) -MNH_S4PY=yes +#MNH_S4PY=no # ########################################################## # # diff --git a/src/Rules.LXpathf95.mk b/src/Rules.LXpathf95.mk index fe34aa467..3939ffa7e 100644 --- a/src/Rules.LXpathf95.mk +++ b/src/Rules.LXpathf95.mk @@ -65,7 +65,7 @@ MNH_COMPRESS=yes ## S4PY flag # #if MNH_S4PY exists => compile the libs4py library (for epygram) -MNH_S4PY=yes +#MNH_S4PY=no # ########################################################## # # diff --git a/src/Rules.LXpgi.mk b/src/Rules.LXpgi.mk index 498f56f7b..2f5c65277 100644 --- a/src/Rules.LXpgi.mk +++ b/src/Rules.LXpgi.mk @@ -124,7 +124,7 @@ MNH_COMPRESS=yes ## S4PY flag # #if MNH_S4PY exists => compile the libs4py library (for epygram) -MNH_S4PY=yes +#MNH_S4PY=no # ########################################################## # # -- GitLab From ff42c19a72277f2db7f50700a3c1521e0936eda9 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Tue, 5 Mar 2019 10:42:00 +0100 Subject: [PATCH 087/139] Philippe 05/03/2019: modify allocation procedure for XMI and XSOLORG --- src/MNH/ch_aer_eqm_initn.f90 | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/MNH/ch_aer_eqm_initn.f90 b/src/MNH/ch_aer_eqm_initn.f90 index 95f5616de..acece90b8 100644 --- a/src/MNH/ch_aer_eqm_initn.f90 +++ b/src/MNH/ch_aer_eqm_initn.f90 @@ -1,13 +1,8 @@ -!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !ORILAM_LIC for details. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- !! ######################## MODULE MODI_CH_AER_EQM_INIT_n !! ######################## @@ -49,7 +44,7 @@ END MODULE MODI_CH_AER_EQM_INIT_n !! MODIFICATIONS !! ------------- !! M.Leriche 2015 : masse molaire Black carbon à 12 g/mol -!! P.Wautelet 03/2019 : deallocate XMI and XSOLORG if already allocated in ini_modeln but size=0 +! P. Wautelet 05/03/2019: modify allocation procedure for XMI and XSOLORG !! !! EXTERNAL !! -------- @@ -117,18 +112,21 @@ END DO ZDEN2MOL = 1E-6 * XAVOGADRO / XMD - -IF ( SIZE(XMI) == 0 ) THEN - DEALLOCATE( XMI ) - XMI => NULL() +IF ( ASSOCIATED(XMI) ) THEN + IF ( SIZE(XMI) == 0 ) THEN + DEALLOCATE( XMI ) + XMI => NULL() + END IF END IF IF (.NOT.(ASSOCIATED(XMI))) THEN ALLOCATE(XMI(SIZE(PCHEM,1),SIZE(PCHEM,2),SIZE(PCHEM,3),NSP+NCARB+NSOA)) END IF -! -IF ( SIZE(XSOLORG) == 0 ) THEN - DEALLOCATE( XSOLORG ) - XSOLORG => NULL() + +IF ( ASSOCIATED(XSOLORG) ) THEN + IF ( SIZE(XSOLORG) == 0 ) THEN + DEALLOCATE( XSOLORG ) + XSOLORG => NULL() + END IF END IF IF (.NOT.(ASSOCIATED(XSOLORG))) THEN ALLOCATE(XSOLORG(SIZE(PCHEM,1),SIZE(PCHEM,2),SIZE(PCHEM,3),10)) -- GitLab From c9d84ee577891429c647b03e8dcc786604c685b3 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 6 Mar 2019 10:38:23 +0100 Subject: [PATCH 088/139] Philippe 06/03/2019: correct XZWS entry --- src/LIB/SURCOUCHE/src/mode_field.f90 | 18 +++++++++--------- src/MNH/modd_fieldn.f90 | 15 ++++++--------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90 index 86eb6589f..f96940dbb 100644 --- a/src/LIB/SURCOUCHE/src/mode_field.f90 +++ b/src/LIB/SURCOUCHE/src/mode_field.f90 @@ -4,12 +4,13 @@ !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Original version: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! Modifications: -! Philippe Wautelet: 29/01/2019 : small bug correction (null pointers) in FIELDLIST_GOTO_MODEL if NESPGD or PGD -! Philippe Wautelet: 01/02/2019 : bug correction in case XRT is not associated -! 02/2019 C.Lac add rain fraction as an output field -!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 29/01/2019: small bug correction (null pointers) in FIELDLIST_GOTO_MODEL if NESPGD or PGD +! P. Wautelet 01/02/2019: bug correction in case XRT is not associated +! C. Lac 02/2019: add rain fraction as an output field +! S. Bielli 02/2019: sea salt: significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 06/03/2019: correct ZWS entry !----------------------------------------------------------------- MODULE MODE_FIELD ! @@ -898,7 +899,7 @@ IDX = IDX+1 ! IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST() TFIELDLIST(IDX)%CMNHNAME = 'ZWS' -TFIELDLIST(IDX)%CSTDNAME = 'surface_altitude' +TFIELDLIST(IDX)%CSTDNAME = 'sea_surface_wave_significant_height' TFIELDLIST(IDX)%CLONGNAME = 'ZWS' TFIELDLIST(IDX)%CUNITS = 'm' TFIELDLIST(IDX)%CDIR = 'XY' @@ -3863,6 +3864,7 @@ END IF ! ! MODD_FIELD_n variables ! +CALL FIND_FIELD_ID_FROM_MNHNAME('ZWS', IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XZWS CALL FIND_FIELD_ID_FROM_MNHNAME('UT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XUT CALL FIND_FIELD_ID_FROM_MNHNAME('VT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XVT CALL FIND_FIELD_ID_FROM_MNHNAME('WT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XWT @@ -4175,9 +4177,7 @@ IF( KFROM/=KTO) THEN ! ! MODD_FIELD_n variables ! -! *** BEGIN SB ADD HS *** -CALL FIND_FIELD_ID_FROM_MNHNAME('ZWS', IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XZWS -! *** END SB ADD HS *** +CALL FIND_FIELD_ID_FROM_MNHNAME('ZWS', IID,IRESP); XZWS => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA CALL FIND_FIELD_ID_FROM_MNHNAME('UT', IID,IRESP); XUT => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA CALL FIND_FIELD_ID_FROM_MNHNAME('VT', IID,IRESP); XVT => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA CALL FIND_FIELD_ID_FROM_MNHNAME('WT', IID,IRESP); XWT => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA diff --git a/src/MNH/modd_fieldn.f90 b/src/MNH/modd_fieldn.f90 index 7a91f15cc..1bfaab894 100644 --- a/src/MNH/modd_fieldn.f90 +++ b/src/MNH/modd_fieldn.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -51,6 +51,7 @@ !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! 02/2019 C.Lac add rain fraction as an output field !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 06/03/2019: correct XZWS entry !! !------------------------------------------------------------------------------- ! @@ -61,6 +62,7 @@ USE MODD_PARAMETERS, ONLY: JPMODELMAX IMPLICIT NONE TYPE FIELD_t + REAL, DIMENSION(:,:), POINTER :: XZWS=>NULL() ! significant sea wave ! REAL, DIMENSION(:,:,:), POINTER :: XUT=>NULL(),XVT=>NULL(),XWT=>NULL() ! U,V,W at time t REAL, DIMENSION(:,:,:), POINTER :: XRUS=>NULL(),XRVS=>NULL(),XRWS=>NULL() @@ -82,8 +84,6 @@ TYPE FIELD_t REAL, DIMENSION(:,:,:), POINTER :: XRTKES=>NULL() ! Source of kinetic energy ! (rho e) ! REAL, DIMENSION(:,:,:), POINTER :: XPABST=>NULL() ! absolute pressure at - REAL, DIMENSION(:,:), POINTER :: XZWS=>NULL() ! significant sea wave - REAL, DIMENSION(:,:), POINTER :: XZWSS=>NULL() ! significant sea wave ! ! time t ! REAL, DIMENSION(:,:,:,:), POINTER :: XRT=>NULL() ! Moist variables (rho Rn) ! ! at time t @@ -112,13 +112,12 @@ END TYPE FIELD_t TYPE(FIELD_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: FIELD_MODEL +REAL, DIMENSION(:,:), POINTER :: XZWS=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XUT=>NULL(),XVT=>NULL(),XWT=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XRUS=>NULL(),XRVS=>NULL(),XRWS=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XRUS_PRES=>NULL(),XRVS_PRES=>NULL(),XRWS_PRES=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XTHT=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XRTHS=>NULL() -REAL, DIMENSION(:,:), POINTER :: XZWS=>NULL() -REAL, DIMENSION(:,:), POINTER :: XZWSS=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XRTHS_CLD=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XSUPSAT=>NULL() REAL, DIMENSION(:,:,:), POINTER :: XNACT=>NULL() @@ -154,6 +153,7 @@ INTEGER, INTENT(IN) :: KFROM, KTO INTEGER :: IID,IRESP ! ! Save current state for allocated arrays +!FIELD_MODEL(KFROM)%XZWS=>XZWS !Done in FIELDLIST_GOTO_MODEL !FIELD_MODEL(KFROM)%XUT=>XUT !Done in FIELDLIST_GOTO_MODEL !FIELD_MODEL(KFROM)%XVT=>XVT !Done in FIELDLIST_GOTO_MODEL !FIELD_MODEL(KFROM)%XWT=>XWT !Done in FIELDLIST_GOTO_MODEL @@ -164,8 +164,6 @@ FIELD_MODEL(KFROM)%XRWS=>XRWS !FIELD_MODEL(KFROM)%XRVS_PRES=>XRVS_PRES !Done in FIELDLIST_GOTO_MODEL !FIELD_MODEL(KFROM)%XRWS_PRES=>XRWS_PRES !Done in FIELDLIST_GOTO_MODEL !FIELD_MODEL(KFROM)%XTHT=>XTHT !Done in FIELDLIST_GOTO_MODEL -FIELD_MODEL(KFROM)%XZWS=>XZWS -FIELD_MODEL(KFROM)%XZWSS=>XZWSS FIELD_MODEL(KFROM)%XRTHS=>XRTHS !FIELD_MODEL(KFROM)%XRTHS_CLD=>XRTHS_CLD !Done in FIELDLIST_GOTO_MODEL !FIELD_MODEL(KFROM)%XSUPSAT=>XSUPSAT !Done in FIELDLIST_GOTO_MODEL @@ -191,6 +189,7 @@ FIELD_MODEL(KFROM)%XPABSM=>XPABSM FIELD_MODEL(KFROM)%XRCM=>XRCM ! ! Current model is set to model KTO +!XZWS=>FIELD_MODEL(KTO)%XZWS !Done in FIELDLIST_GOTO_MODEL !XUT=>FIELD_MODEL(KTO)%XUT !Done in FIELDLIST_GOTO_MODEL !XVT=>FIELD_MODEL(KTO)%XVT !Done in FIELDLIST_GOTO_MODEL !XWT=>FIELD_MODEL(KTO)%XWT !Done in FIELDLIST_GOTO_MODEL @@ -200,8 +199,6 @@ XRWS=>FIELD_MODEL(KTO)%XRWS !XRUS_PRES=>FIELD_MODEL(KTO)%XRUS_PRES !Done in FIELDLIST_GOTO_MODEL !XRVS_PRES=>FIELD_MODEL(KTO)%XRVS_PRES !Done in FIELDLIST_GOTO_MODEL !XRWS_PRES=>FIELD_MODEL(KTO)%XRWS_PRES !Done in FIELDLIST_GOTO_MODEL -XZWS=>FIELD_MODEL(KTO)%XZWS -XZWSS=>FIELD_MODEL(KTO)%XZWSS !XTHT=>FIELD_MODEL(KTO)%XTHT !Done in FIELDLIST_GOTO_MODEL XRTHS=>FIELD_MODEL(KTO)%XRTHS !XRTHS_CLD=>FIELD_MODEL(KTO)%XRTHS_CLD !Done in FIELDLIST_GOTO_MODEL -- GitLab From efd7b8a6c43854add6c5e7382fff040fb43b1501 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 7 Mar 2019 16:36:04 +0100 Subject: [PATCH 089/139] Philippe 07/03/2019: minor: non-conforming Fortran write correction --- src/MNH/read_all_data_grib_case.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/MNH/read_all_data_grib_case.f90 b/src/MNH/read_all_data_grib_case.f90 index ade924ead..e8dcc36b6 100644 --- a/src/MNH/read_all_data_grib_case.f90 +++ b/src/MNH/read_all_data_grib_case.f90 @@ -583,8 +583,8 @@ SELECT CASE (IMODEL) CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=229) ! IF(INUM < 0) THEN - WRITE (ILUOUT0,'(A)')' | !!! WARNING !!! Sea wave height is missing in & - the GRIB file - the default value of 2 meters is used' + WRITE (ILUOUT0,'(A)')' | !!! WARNING !!! Sea wave height is missing in '// & + 'the GRIB file - the default value of 2 meters is used' XZWS = 2.0 ELSE GFIND=.TRUE. -- GitLab From 02cf3ddc5883ad72b6f1795cf876b9edbd984ed4 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 7 Mar 2019 16:36:36 +0100 Subject: [PATCH 090/139] Philippe 07/03/2019: IO bugfix: io_set_mnhversion must be called by all the processes --- src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 index 34b375157..5c895f791 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 @@ -13,6 +13,7 @@ ! + move IOFREEFLU and IONEWFLU to mode_io_file_lfi.f90 ! + move management of NNCID and NLFIFLU to the nc4 and lfi subroutines ! Philippe Wautelet: 10/01/2019: replace handle_err by io_handle_err_nc4 for better netCDF error messages +! P. Wautelet 07/03/2019: bugfix: io_set_mnhversion must be called by all the processes ! !----------------------------------------------------------------- #if defined(MNH_IOCDF4) @@ -57,9 +58,9 @@ subroutine io_create_file_nc4(tpfile,hprogram_orig) call print_msg(NVERB_FATAL,'IO','io_create_file_nc4','NF90_CREATE for '//trim(yfilem)//'.nc: '//NF90_STRERROR(istatus)) end if call io_set_not_cleanly_closed_nc4(tpfile) - call io_set_mnhversion(tpfile) call io_set_knowndims_nc4(tpfile, hprogram_orig=hprogram_orig) end if + call io_set_mnhversion(tpfile) end subroutine io_create_file_nc4 -- GitLab From 4997f047c07443f72ac9b13f18e17440ea1b0503 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 8 Mar 2019 16:22:45 +0100 Subject: [PATCH 091/139] Philippe 08/03/2019: create modd_precision --- src/MNH/modd_precision.f90 | 100 +++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 src/MNH/modd_precision.f90 diff --git a/src/MNH/modd_precision.f90 b/src/MNH/modd_precision.f90 new file mode 100644 index 000000000..afd0a3a21 --- /dev/null +++ b/src/MNH/modd_precision.f90 @@ -0,0 +1,100 @@ +!MNH_LIC Copyright 2019-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Author: +! P. Wautelet 08/03/2019 +! Modifications: +! +!----------------------------------------------------------------- +module modd_precision + +use modd_mpif + +#ifdef MNH_IOCDF4 +use NETCDF, only: NF90_DOUBLE, NF90_FLOAT, NF90_INT, NF90_INT64 +#endif + +implicit none + +private + +public :: MNHINT, MNHREAL +public :: MNHINT_MPI, MNHREAL_MPI, MNH2REAL_MPI + +public :: LFIINT + +#ifdef MNH_IOCDF4 +public :: CDFINT, MNHINT_NF90, MNHREAL_NF90 +#endif + + +integer, parameter :: MNHINT32 = selected_int_kind( r = 9 ) +integer, parameter :: MNHINT64 = selected_int_kind( r = 18 ) + +integer, parameter :: MNHREAL32 = selected_real_kind( p = 6, r = 37 ) +integer, parameter :: MNHREAL64 = selected_real_kind( p = 15, r = 307 ) +integer, parameter :: MNHREAL128 = selected_real_kind( p = 33, r = 4931 ) + + +! Kinds for MesoNH +#if ( MNH_INT == 4 ) +integer, parameter :: MNHINT = MNHINT32 +integer, parameter :: MNHINT_MPI = MPI_INTEGER4 +#elif ( MNH_INT == 8 ) +integer, parameter :: MNHINT = MNHINT64 +integer, parameter :: MNHINT_MPI = MPI_INTEGER8 +#else +#error "Invalid MNH_INT" +#endif + +#if ( MNH_REAL == 4 ) +integer, parameter :: MNHREAL = MNHREAL32 +integer, parameter :: MNHREAL_MPI = MPI_REAL4 +integer, parameter :: MNH2REAL_MPI = MPI_2REAL +#elif ( MNH_REAL == 8 ) +integer, parameter :: MNHREAL = MNHREAL64 +integer, parameter :: MNHREAL_MPI = MPI_REAL8 +integer, parameter :: MNH2REAL_MPI = MPI_2DOUBLE_PRECISION +#elif ( MNH_REAL == 16 ) +integer, parameter :: MNHREAL = MNHREAL128 +integer, parameter :: MNHREAL_MPI = MPI_REAL16 +#error "No MNH2REAL_MPI for MNH_REAL=16" +#else +#error "Invalid MNH_REAL" +#endif + + +! Kinds for LFI +#if ( LFI_INT == 4 ) +integer, parameter :: LFIINT = MNHINT32 +#elif ( LFI_INT == 8 ) +integer, parameter :: LFIINT = MNHINT64 +#else +#error "Invalid LFI_INT" +#endif + + +#ifdef MNH_IOCDF4 +! Kinds for netCDF +integer, parameter :: CDFINT = selected_int_kind( r = 9 ) + +#if (MNH_INT == 4) +integer, parameter :: MNHINT_NF90 = NF90_INT +#elif (MNH_INT == 8) +integer, parameter :: MNHINT_NF90 = NF90_INT64 +#else +#error "Invalid MNH_INT" +#endif + +#if (MNH_REAL == 4) +integer, parameter :: MNHREAL_NF90 = NF90_FLOAT +#elif (MNH_REAL == 8) +integer, parameter :: MNHREAL_NF90 = NF90_DOUBLE +#else +#error "Invalid MNH_REAL" +#endif +#endif + +end module modd_precision -- GitLab From 04496f911564223a521ce8eb92cb2f754849fa2f Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Tue, 12 Mar 2019 14:03:10 +0100 Subject: [PATCH 092/139] Philippe 12/03/2019: IO: simplify opening of IO split files --- src/LIB/SURCOUCHE/src/modd_io.f90 | 9 +- src/LIB/SURCOUCHE/src/mode_io_file.f90 | 627 +++++++++--------- .../SURCOUCHE/src/mode_io_manage_struct.f90 | 21 +- 3 files changed, 333 insertions(+), 324 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90 index 5d4b5b00e..32fc2c42a 100644 --- a/src/LIB/SURCOUCHE/src/modd_io.f90 +++ b/src/LIB/SURCOUCHE/src/modd_io.f90 @@ -4,10 +4,11 @@ !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN (removed ISTDOUT, ISTDERR, added NNULLUNIT, CNULLFILE) -! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll to allow to disable writes (for bench purposes) +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN (removed ISTDOUT, ISTDERR, added NNULLUNIT, CNULLFILE) +! P. Wautelet 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll to allow to disable writes (for bench purposes) ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list +! P. Wautelet 12/03/2019: add TMAINFILE field in TFILEDATA !----------------------------------------------------------------- MODULE MODD_IO @@ -118,6 +119,8 @@ TYPE TFILEDATA TYPE(TFILEDATA),POINTER :: TDADFILE => NULL() !Corresponding dad file TYPE(TFILEDATA),POINTER :: TDESFILE => NULL() !Corresponding .des file TYPE(TFILEDATA),POINTER :: TDATAFILE => NULL() !Corresponding data file (if .des file) + TYPE(TFILEDATA),POINTER :: TMAINFILE => NULL() !Corresponding main file if the file is an sub-file + ! TYPE(TFILEDATA),POINTER :: TFILE_PREV => NULL() TYPE(TFILEDATA),POINTER :: TFILE_NEXT => NULL() END TYPE TFILEDATA diff --git a/src/LIB/SURCOUCHE/src/mode_io_file.f90 b/src/LIB/SURCOUCHE/src/mode_io_file.f90 index f6e62e24e..fc766f552 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_file.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_file.f90 @@ -7,7 +7,7 @@ ! D. Gazen, P. Wautelet ! Modifications: ! J. Escobar 19/08/2005: bug argument optinonel ACCESS --> YACCESS -! J. Escobar 22/05/2008: bug mode SPECIFIC in OPEN_ll +! J. Escobar 22/05/2008: bug mode SPECIFIC in IO_File_doopen ! J. Escobar 05/11/2009: allow JPMAX_UNIT=48 open files ! J. Escobar 18/10/2010: bug with PGI compiler on ADJUSTL ! P. Wautelet 04/02/2016: bug with DELIM='NONE' and GCC 5.2/5.3 @@ -25,7 +25,7 @@ ! P. Wautelet 10/01/2019: bug: modify some metadata before open calls ! P. Wautelet 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll to allow ! to disable writes (for bench purposes) -! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place +! P. Wautelet 06/02/2019: simplify IO_File_doopen and do somme assignments at a more logical place ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines ! (nsubfiles_ioz is now determined in IO_File_add2list) ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list @@ -35,7 +35,7 @@ ! P. Wautelet 27/02/2019: remove CLOSE_ll subroutine ! P. Wautelet 01/03/2019: move open/close subroutines to mode_io_file.f90 ! P. Wautelet 05/03/2019: rename IO subroutines and modules -! +! P. Wautelet 12/03/2019: simplify opening of IO split files !----------------------------------------------------------------- module mode_io_file @@ -53,23 +53,28 @@ public :: IO_File_close, IO_File_open contains -recursive SUBROUTINE IO_File_open(TPFILE,KRESP,HPOSITION,HSTATUS,HPROGRAM_ORIG) +recursive SUBROUTINE IO_File_open(TPFILE,KRESP,kmasterrank, HPOSITION,HSTATUS,HPROGRAM_ORIG) ! USE MODD_CONF, ONLY: CPROGRAM -USE MODD_IO, ONLY: LIO_NO_WRITE +USE MODD_IO, ONLY: ISNPROC, LIO_NO_WRITE ! -USE MODE_IO, ONLY: GCONFIO -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list, IO_File_find_byname +use mode_io, only: gconfio +use mode_io_manage_struct, only: IO_File_add2list, IO_File_find_byname +use mode_io_tools, only: IO_Rank_master_get ! -TYPE(TFILEDATA), POINTER, INTENT(INOUT) :: TPFILE ! File structure -INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! Return code -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPOSITION -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HSTATUS -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program +TYPE(TFILEDATA), POINTER, INTENT(INOUT) :: TPFILE ! File structure +INTEGER, optional, INTENT(OUT) :: KRESP ! Return code +integer, optional, intent(in) :: kmasterrank !Rank of the master process +CHARACTER(LEN=*), optional, INTENT(IN) :: HPOSITION +CHARACTER(LEN=*), optional, INTENT(IN) :: HSTATUS +CHARACTER(LEN=*), optional, INTENT(IN) :: HPROGRAM_ORIG !To emulate a file coming from this program ! +CHARACTER(len=5) :: YFILE +INTEGER :: IFILE, IRANK_PROCIO INTEGER :: IRESP TYPE(TFILEDATA), POINTER :: TZFILE_DES TYPE(TFILEDATA), POINTER :: TZFILE_DUMMY +TYPE(TFILEDATA), POINTER :: TZFILE_SPLIT ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_File_open','opening '//TRIM(TPFILE%CNAME)//' for '//TRIM(TPFILE%CMODE)// & ' (filetype='//TRIM(TPFILE%CTYPE)//')') @@ -83,6 +88,7 @@ END IF ! TZFILE_DES => NULL() TZFILE_DUMMY => NULL() +TZFILE_SPLIT => NULL() ! TPFILE%NOPEN = TPFILE%NOPEN + 1 TPFILE%NOPEN_CURRENT = TPFILE%NOPEN_CURRENT + 1 @@ -101,65 +107,98 @@ IF (IRESP/=0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_open','file '//TRIM(TPFIL SELECT CASE(TPFILE%CTYPE) !Chemistry input files CASE('CHEMINPUT') - CALL OPEN_ll(TPFILE,IRESP,HPOSITION='REWIND',HSTATUS='OLD',HMODE='GLOBAL') + CALL IO_File_doopen(TPFILE,IRESP,HPOSITION='REWIND',HSTATUS='OLD',HMODE='GLOBAL') !Chemistry tabulation files CASE('CHEMTAB') - CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') + CALL IO_File_doopen(TPFILE,IRESP,HMODE='GLOBAL') !DES files CASE('DES') - CALL OPEN_ll(TPFILE,IRESP,HDELIM='QUOTE') + CALL IO_File_doopen(TPFILE,IRESP,HDELIM='QUOTE') !GPS files CASE('GPS') - CALL OPEN_ll(TPFILE,IRESP,HMODE='SPECIFIC') + CALL IO_File_doopen(TPFILE,IRESP,HMODE='SPECIFIC') !Meteo files CASE('METEO') - CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') + CALL IO_File_doopen(TPFILE,IRESP,HMODE='GLOBAL') !Namelist files CASE('NML') - CALL OPEN_ll(TPFILE,IRESP,HDELIM='QUOTE',HMODE='GLOBAL') + CALL IO_File_doopen(TPFILE,IRESP,HDELIM='QUOTE',HMODE='GLOBAL') !OUTPUTLISTING files CASE('OUTPUTLISTING') - CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') + CALL IO_File_doopen(TPFILE,IRESP,HMODE='GLOBAL') !SURFACE_DATA files CASE('SURFACE_DATA') - CALL OPEN_ll(TPFILE,IRESP,HMODE='GLOBAL') + CALL IO_File_doopen(TPFILE,IRESP,HMODE='GLOBAL') !Text files CASE('TXT') - CALL OPEN_ll(TPFILE,IRESP,HPOSITION=HPOSITION,HSTATUS=HSTATUS,HMODE='GLOBAL') + CALL IO_File_doopen(TPFILE,IRESP,HPOSITION=HPOSITION,HSTATUS=HSTATUS,HMODE='GLOBAL') !MesoNH files !Remark: 'MNH' is more general than MNHBACKUP and could be in fact a MNHBACKUP file CASE ('MNH', 'MNHBACKUP', 'MNHDIACHRONIC', 'MNHDIAG', 'MNHOUTPUT', 'PGD') if (.not.GCONFIO) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_open','IO_Config_set must be called before IO_File_open') - !Do not open '.des' file if OUTPUT - IF(TPFILE%CTYPE/='MNHOUTPUT' .AND. CPROGRAM/='LFICDF') THEN + + !Do not open '.des' file if OUTPUT or if is a "subfile" (tmainfile is associated) + IF(TPFILE%CTYPE/='MNHOUTPUT' .AND. CPROGRAM/='LFICDF' .and. .not.associated(tpfile%tmainfile) ) THEN !OOLD=T because the file may already be in the list CALL IO_File_add2list(TZFILE_DES,TRIM(TPFILE%CNAME)//'.des','DES',TPFILE%CMODE,TPDATAFILE=TPFILE,OOLD=.TRUE.) CALL IO_File_open(TZFILE_DES,HPROGRAM_ORIG=HPROGRAM_ORIG) ENDIF - CALL OPEN_ll(TPFILE,IRESP,HMODE='IO_ZSPLIT',HPROGRAM_ORIG=HPROGRAM_ORIG) + !Manage split files + IF (TPFILE%NSUBFILES_IOZ > 0) THEN + IF (.NOT.ALLOCATED(TPFILE%TFILES_IOZ)) THEN + ALLOCATE(TPFILE%TFILES_IOZ(TPFILE%NSUBFILES_IOZ)) + ELSE IF ( SIZE(TPFILE%TFILES_IOZ) /= TPFILE%NSUBFILES_IOZ ) THEN + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_open','SIZE(TPFILE%TFILES_IOZ) /= TPFILE%NSUBFILES_IOZ for '//TRIM(TPFILE%CNAME)) + END IF - call IO_File_check_format_exist( tpfile ) + DO IFILE=1,TPFILE%NSUBFILES_IOZ + IRANK_PROCIO = 1 + IO_Rank_master_get( IFILE-1, ISNPROC, TPFILE%NSUBFILES_IOZ ) + WRITE(YFILE ,'(".Z",i3.3)') IFILE + + tzfile_split => null() + CALL IO_File_find_byname(TRIM(TPFILE%CNAME)//TRIM(YFILE),TZFILE_SPLIT,IRESP) - call IO_File_open_format( tpfile ) + IF (IRESP/=0) THEN !File not yet in filelist => add it (nothing to do if already in list) + IF (ALLOCATED(TPFILE%CDIRNAME)) THEN + CALL IO_File_add2list(TZFILE_SPLIT,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & + HDIRNAME=TPFILE%CDIRNAME, & + KLFINPRAR=TPFILE%NLFINPRAR,KLFITYPE=TPFILE%NLFITYPE,KLFIVERB=TPFILE%NLFIVERB, & + HFORMAT=TPFILE%CFORMAT,osplit_ioz=.false.) + ELSE + CALL IO_File_add2list(TZFILE_SPLIT,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & + KLFINPRAR=TPFILE%NLFINPRAR,KLFITYPE=TPFILE%NLFITYPE,KLFIVERB=TPFILE%NLFIVERB, & + HFORMAT=TPFILE%CFORMAT,osplit_ioz=.false.) + END IF + + TZFILE_SPLIT%TMAINFILE => TPFILE + END IF + + TPFILE%TFILES_IOZ(IFILE)%TFILE => TZFILE_SPLIT + + CALL IO_File_open(TZFILE_SPLIT, kmasterrank=IRANK_PROCIO,HPROGRAM_ORIG=HPROGRAM_ORIG) + END DO + end if + + CALL IO_File_doopen(TPFILE,IRESP,kmasterrank=kmasterrank,HMODE='MASTER',HPROGRAM_ORIG=HPROGRAM_ORIG) CASE DEFAULT @@ -171,319 +210,279 @@ IF (PRESENT(KRESP)) KRESP = IRESP END SUBROUTINE IO_File_open -SUBROUTINE OPEN_ll(TPFILE, KRESP, HMODE, HSTATUS, HPOSITION, HDELIM, HPROGRAM_ORIG) +SUBROUTINE IO_File_doopen(TPFILE, KRESP, kmasterrank, HMODE, HSTATUS, HPOSITION, HDELIM, HPROGRAM_ORIG) - use modd_io, only: ISNPROC, ISP, LVERB_ALLPRC, nio_rank, NNULLUNIT - use modd_var_ll, only : nmnh_comm_world +use modd_io, only: ISP, LVERB_ALLPRC, nio_rank, NNULLUNIT +use modd_var_ll, only: nmnh_comm_world - USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list, IO_File_find_byname - use mode_io_tools, only: IO_Rank_master_get - use mode_tools, only: upcase +use mode_tools, only: upcase - TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE - INTEGER, INTENT(OUT) :: KRESP - CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HMODE - CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HSTATUS - CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HPOSITION - CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HDELIM - CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HPROGRAM_ORIG !To emulate a file coming from this program - ! - ! local var - ! - INTEGER, PARAMETER :: RECL_DEF = 10000 - ! - CHARACTER(len=5) :: YFILE - CHARACTER(len=20) :: YSTATUS - CHARACTER(len=20) :: YPOSITION - CHARACTER(len=20) :: YDELIM - CHARACTER(len=20) :: YACTION - CHARACTER(len=20) :: YMODE - CHARACTER(LEN=256) :: YIOERRMSG - CHARACTER(LEN=:),ALLOCATABLE :: YPREFILENAME !To store the directory + filename - INTEGER :: IFILE, IRANK_PROCIO - INTEGER :: YRECL - INTEGER :: IOS, IRESP - TYPE(TFILEDATA),POINTER :: TZSPLITFILE - - CALL PRINT_MSG(NVERB_DEBUG,'IO','OPEN_ll','opening '//TRIM(TPFILE%CNAME)//' for '//TRIM(TPFILE%CMODE)) - - IOS = 0 - - IF (PRESENT(HMODE)) THEN - YMODE = HMODE - YMODE = UPCASE(TRIM(ADJUSTL(YMODE))) - ELSE - YMODE = 'GLOBAL' ! Default Mode - END IF +TYPE(TFILEDATA), pointer, INTENT(INOUT) :: TPFILE +INTEGER, INTENT(OUT) :: KRESP +integer, optional, intent(in) :: kmasterrank !Rank of the master process +CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HMODE +CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HSTATUS +CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HPOSITION +CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HDELIM +CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HPROGRAM_ORIG !To emulate a file coming from this program +! +! local var +! +INTEGER, PARAMETER :: RECL_DEF = 10000 +! +CHARACTER(len=20) :: YSTATUS +CHARACTER(len=20) :: YPOSITION +CHARACTER(len=20) :: YDELIM +CHARACTER(len=20) :: YACTION +CHARACTER(len=20) :: YMODE +CHARACTER(LEN=256) :: YIOERRMSG +CHARACTER(LEN=:),ALLOCATABLE :: YPREFILENAME !To store the directory + filename +integer :: imasterrank +INTEGER :: irecl +INTEGER :: IOS + +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_File_doopen','opening '//TRIM(TPFILE%CNAME)//' for '//TRIM(TPFILE%CMODE)) + +IOS = 0 + +if ( present( kmasterrank ) ) then + imasterrank = kmasterrank +else + imasterrank = nio_rank +end if + +IF (PRESENT(HMODE)) THEN + YMODE = HMODE + YMODE = UPCASE(TRIM(ADJUSTL(YMODE))) +ELSE + YMODE = 'GLOBAL' ! Default Mode +END IF - YACTION = TPFILE%CMODE - YACTION = UPCASE(TRIM(ADJUSTL(YACTION))) - IF (YACTION /= "READ" .AND. YACTION /= "WRITE") THEN - KRESP = 99 - TPFILE%NLU = -1 - CALL PRINT_MSG(NVERB_ERROR,'IO','OPEN_ll','action='//TRIM(YACTION)//' not supported') - RETURN - END IF +YACTION = TPFILE%CMODE +YACTION = UPCASE(TRIM(ADJUSTL(YACTION))) +IF (YACTION /= "READ" .AND. YACTION /= "WRITE") THEN + KRESP = 99 + TPFILE%NLU = -1 + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_doopen','action='//TRIM(YACTION)//' not supported') + RETURN +END IF - IF (.NOT. ANY(YMODE == (/'GLOBAL ','SPECIFIC ', 'IO_ZSPLIT '/))) THEN - KRESP = 99 - TPFILE%NLU = -1 - CALL PRINT_MSG(NVERB_ERROR,'IO','OPEN_ll','ymode='//TRIM(YMODE)//' not supported') - RETURN - END IF +if ( trim(ymode) /= 'GLOBAL' .and. trim(ymode) /= 'SPECIFIC' & + .and. trim(ymode) /= 'IO_ZSPLIT' .and. trim(ymode) /= 'MASTER' ) then + KRESP = 99 + TPFILE%NLU = -1 + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_doopen','ymode='//TRIM(YMODE)//' not supported') + RETURN +end if - IF (PRESENT(HSTATUS)) THEN - YSTATUS=HSTATUS - ELSE - YSTATUS='UNKNOWN' - ENDIF +IF (PRESENT(HSTATUS)) THEN + YSTATUS=HSTATUS +ELSE + YSTATUS='UNKNOWN' +ENDIF + +IF (TPFILE%NRECL == -1) THEN + irecl = RECL_DEF +ELSE + irecl = TPFILE%NRECL +END IF - IF (TPFILE%NRECL == -1) THEN - YRECL = RECL_DEF +IF (PRESENT(HPOSITION)) THEN + YPOSITION=HPOSITION +ELSE + YPOSITION='ASIS' +ENDIF +IF (PRESENT(HDELIM)) THEN + YDELIM=HDELIM +ELSE + YDELIM='NONE' +ENDIF + +IF (ALLOCATED(TPFILE%CDIRNAME)) THEN + IF(LEN_TRIM(TPFILE%CDIRNAME)>0) THEN + YPREFILENAME = TRIM(TPFILE%CDIRNAME)//'/'//TRIM(TPFILE%CNAME) + ELSE + YPREFILENAME = TRIM(TPFILE%CNAME) + END IF +ELSE + YPREFILENAME = TRIM(TPFILE%CNAME) +END IF + +!NMPICOMM must be set before this select case (necessary for case MASTER) +TPFILE%NMPICOMM = NMNH_COMM_WORLD + +SELECT CASE(YMODE) + + CASE('GLOBAL') + IF (YACTION == 'READ') THEN + TPFILE%NMASTER_RANK = -1 + TPFILE%LMASTER = .TRUE. !Every process read the file + TPFILE%LMULTIMASTERS = .TRUE. ELSE - YRECL = TPFILE%NRECL + IF (TPFILE%CTYPE=='OUTPUTLISTING') THEN + IF (LVERB_ALLPRC) THEN + TPFILE%NMASTER_RANK = -1 + TPFILE%LMASTER = .TRUE. !Every process may write in the file + TPFILE%LMULTIMASTERS = .TRUE. + ELSE + TPFILE%NMASTER_RANK = imasterrank + TPFILE%LMASTER = (ISP == imasterrank) + TPFILE%LMULTIMASTERS = .FALSE. + END IF + ELSE + TPFILE%NMASTER_RANK = imasterrank + TPFILE%LMASTER = (ISP == imasterrank) + TPFILE%LMULTIMASTERS = .FALSE. + END IF END IF + TPFILE%NSUBFILES_IOZ = 0 + + IF (TPFILE%LMASTER) THEN + !! I/O processor case + !JUAN : 31/03/2000 modif pour acces direct + IF (TPFILE%CACCESS=='STREAM') THEN + OPEN(NEWUNIT=TPFILE%NLU, & + FILE=TRIM(YPREFILENAME),& + STATUS=YSTATUS, & + ACCESS=TPFILE%CACCESS, & + IOSTAT=IOS, & + IOMSG=YIOERRMSG, & + FORM=TPFILE%CFORM, & + ACTION=YACTION) + ELSEIF (TPFILE%CACCESS=='DIRECT') THEN + OPEN(NEWUNIT=TPFILE%NLU, & + FILE=TRIM(YPREFILENAME),& + STATUS=YSTATUS, & + ACCESS=TPFILE%CACCESS, & + IOSTAT=IOS, & + IOMSG=YIOERRMSG, & + FORM=TPFILE%CFORM, & + RECL=irecl, & + ACTION=YACTION) + ELSE + IF (TPFILE%CFORM=="FORMATTED") THEN + IF (YACTION=='READ') THEN + OPEN(NEWUNIT=TPFILE%NLU, & + FILE=TRIM(YPREFILENAME),& + STATUS=YSTATUS, & + ACCESS=TPFILE%CACCESS, & + IOSTAT=IOS, & + IOMSG=YIOERRMSG, & + FORM=TPFILE%CFORM, & + RECL=irecl, & + POSITION=YPOSITION, & + ACTION=YACTION) + !DELIM=YDELIM, & !Philippe: commented because bug with GCC 5.X + ELSE + OPEN(NEWUNIT=TPFILE%NLU, & + FILE=TRIM(YPREFILENAME),& + STATUS=YSTATUS, & + ACCESS=TPFILE%CACCESS, & + IOSTAT=IOS, & + IOMSG=YIOERRMSG, & + FORM=TPFILE%CFORM, & + RECL=irecl, & + POSITION=YPOSITION, & + ACTION=YACTION, & + DELIM=YDELIM) + ENDIF + ELSE + OPEN(NEWUNIT=TPFILE%NLU, & + FILE=TRIM(YPREFILENAME),& + STATUS=YSTATUS, & + ACCESS=TPFILE%CACCESS, & + IOSTAT=IOS, & + IOMSG=YIOERRMSG, & + FORM=TPFILE%CFORM, & + RECL=irecl, & + POSITION=YPOSITION, & + ACTION=YACTION) + ENDIF + ENDIF - IF (PRESENT(HPOSITION)) THEN - YPOSITION=HPOSITION + IF ( IOS /= 0 ) & + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_doopen','Problem when opening '//TRIM(YPREFILENAME)//': '//TRIM(YIOERRMSG)) ELSE - YPOSITION='ASIS' - ENDIF - IF (PRESENT(HDELIM)) THEN - YDELIM=HDELIM + !! NON I/O processors case + IOS = 0 + TPFILE%NLU = NNULLUNIT + END IF + + + CASE('SPECIFIC') + TPFILE%NMASTER_RANK = -1 + TPFILE%LMASTER = .TRUE. !Every process use the file + TPFILE%LMULTIMASTERS = .TRUE. + TPFILE%NSUBFILES_IOZ = 0 + + IF (TPFILE%CACCESS=='DIRECT') THEN + OPEN(NEWUNIT=TPFILE%NLU, & + FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & + STATUS=YSTATUS, & + ACCESS=TPFILE%CACCESS, & + IOSTAT=IOS, & + IOMSG=YIOERRMSG, & + FORM=TPFILE%CFORM, & + RECL=irecl, & + ACTION=YACTION) ELSE - YDELIM='NONE' + IF (YACTION=='READ') THEN + OPEN(NEWUNIT=TPFILE%NLU, & + FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & + STATUS=YSTATUS, & + ACCESS=TPFILE%CACCESS, & + IOSTAT=IOS, & + IOMSG=YIOERRMSG, & + FORM=TPFILE%CFORM, & + RECL=irecl, & + POSITION=YPOSITION, & + ACTION=YACTION) + !DELIM=YDELIM, & !Philippe: commented because bug with GCC 5.X + ELSE + OPEN(NEWUNIT=TPFILE%NLU, & + FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & + STATUS=YSTATUS, & + ACCESS=TPFILE%CACCESS, & + IOSTAT=IOS, & + IOMSG=YIOERRMSG, & + FORM=TPFILE%CFORM, & + RECL=irecl, & + POSITION=YPOSITION, & + ACTION=YACTION, & + DELIM=YDELIM) + ENDIF ENDIF - IF (ALLOCATED(TPFILE%CDIRNAME)) THEN - IF(LEN_TRIM(TPFILE%CDIRNAME)>0) THEN - YPREFILENAME = TRIM(TPFILE%CDIRNAME)//'/'//TRIM(TPFILE%CNAME) - ELSE - YPREFILENAME = TRIM(TPFILE%CNAME) - END IF - ELSE - YPREFILENAME = TRIM(TPFILE%CNAME) - END IF + IF ( IOS /= 0 ) & + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_doopen','Problem when opening '//TRIM(YPREFILENAME)//': '//TRIM(YIOERRMSG)) - SELECT CASE(YMODE) - CASE('GLOBAL') - IF (YACTION == 'READ') THEN - TPFILE%NMASTER_RANK = -1 - TPFILE%LMASTER = .TRUE. !Every process read the file - TPFILE%LMULTIMASTERS = .TRUE. - ELSE - IF (TPFILE%CTYPE=='OUTPUTLISTING') THEN - IF (LVERB_ALLPRC) THEN - TPFILE%NMASTER_RANK = -1 - TPFILE%LMASTER = .TRUE. !Every process may write in the file - TPFILE%LMULTIMASTERS = .TRUE. - ELSE - TPFILE%NMASTER_RANK = nio_rank - TPFILE%LMASTER = (ISP == nio_rank) - TPFILE%LMULTIMASTERS = .FALSE. - END IF - ELSE - TPFILE%NMASTER_RANK = nio_rank - TPFILE%LMASTER = (ISP == nio_rank) - TPFILE%LMULTIMASTERS = .FALSE. - END IF - END IF - TPFILE%NSUBFILES_IOZ = 0 - - IF (TPFILE%LMASTER) THEN - !! I/O processor case - !JUAN : 31/03/2000 modif pour acces direct - IF (TPFILE%CACCESS=='STREAM') THEN - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME),& - STATUS=YSTATUS, & - ACCESS=TPFILE%CACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=TPFILE%CFORM, & - ACTION=YACTION) - ELSEIF (TPFILE%CACCESS=='DIRECT') THEN - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME),& - STATUS=YSTATUS, & - ACCESS=TPFILE%CACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=TPFILE%CFORM, & - RECL=YRECL, & - ACTION=YACTION) - ELSE - IF (TPFILE%CFORM=="FORMATTED") THEN - IF (YACTION=='READ') THEN - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME),& - STATUS=YSTATUS, & - ACCESS=TPFILE%CACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=TPFILE%CFORM, & - RECL=YRECL, & - POSITION=YPOSITION, & - ACTION=YACTION) - !DELIM=YDELIM, & !Philippe: commented because bug with GCC 5.X - ELSE - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME),& - STATUS=YSTATUS, & - ACCESS=TPFILE%CACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=TPFILE%CFORM, & - RECL=YRECL, & - POSITION=YPOSITION, & - ACTION=YACTION, & - DELIM=YDELIM) - ENDIF - ELSE - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME),& - STATUS=YSTATUS, & - ACCESS=TPFILE%CACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=TPFILE%CFORM, & - RECL=YRECL, & - POSITION=YPOSITION, & - ACTION=YACTION) - ENDIF - ENDIF + case ( 'MASTER' ) + tpfile%nmaster_rank = imasterrank + tpfile%lmaster = (isp == imasterrank) + tpfile%lmultimasters = .false. - IF (IOS/=0) CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','Problem when opening '//TRIM(YPREFILENAME)//': '//TRIM(YIOERRMSG)) - ELSE - !! NON I/O processors case - IOS = 0 - TPFILE%NLU = NNULLUNIT - END IF - - - CASE('SPECIFIC') - TPFILE%NMASTER_RANK = -1 - TPFILE%LMASTER = .TRUE. !Every process use the file - TPFILE%LMULTIMASTERS = .TRUE. - TPFILE%NSUBFILES_IOZ = 0 - - IF (TPFILE%CACCESS=='DIRECT') THEN - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & - STATUS=YSTATUS, & - ACCESS=TPFILE%CACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=TPFILE%CFORM, & - RECL=YRECL, & - ACTION=YACTION) - ELSE - IF (YACTION=='READ') THEN - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & - STATUS=YSTATUS, & - ACCESS=TPFILE%CACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=TPFILE%CFORM, & - RECL=YRECL, & - POSITION=YPOSITION, & - ACTION=YACTION) - !DELIM=YDELIM, & !Philippe: commented because bug with GCC 5.X - ELSE - OPEN(NEWUNIT=TPFILE%NLU, & - FILE=TRIM(YPREFILENAME)//SUFFIX(".P"), & - STATUS=YSTATUS, & - ACCESS=TPFILE%CACCESS, & - IOSTAT=IOS, & - IOMSG=YIOERRMSG, & - FORM=TPFILE%CFORM, & - RECL=YRECL, & - POSITION=YPOSITION, & - ACTION=YACTION, & - DELIM=YDELIM) - ENDIF - ENDIF - - IF (IOS/=0) CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','Problem when opening '//TRIM(YPREFILENAME)//': '//TRIM(YIOERRMSG)) - - - - CASE('IO_ZSPLIT') - TPFILE%NMASTER_RANK = nio_rank - TPFILE%LMASTER = (ISP == nio_rank) - TPFILE%LMULTIMASTERS = .FALSE. - - IF (TPFILE%NSUBFILES_IOZ > 0) THEN - IF (.NOT.ALLOCATED(TPFILE%TFILES_IOZ)) THEN - ALLOCATE(TPFILE%TFILES_IOZ(TPFILE%NSUBFILES_IOZ)) - ELSE IF ( SIZE(TPFILE%TFILES_IOZ) /= TPFILE%NSUBFILES_IOZ ) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','SIZE(TPFILE%TFILES_IOZ) /= TPFILE%NSUBFILES_IOZ for '//TRIM(TPFILE%CNAME)) - END IF - DO IFILE=1,TPFILE%NSUBFILES_IOZ - IRANK_PROCIO = 1 + IO_Rank_master_get( IFILE-1, ISNPROC, TPFILE%NSUBFILES_IOZ ) - WRITE(YFILE ,'(".Z",i3.3)') IFILE - - CALL IO_File_find_byname(TRIM(TPFILE%CNAME)//TRIM(YFILE),TZSPLITFILE,IRESP) - - IF (IRESP/=0) THEN !File not yet in filelist => add it (nothing to do if already in list) - IF (ALLOCATED(TPFILE%CDIRNAME)) THEN - CALL IO_File_add2list(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & - HDIRNAME=TPFILE%CDIRNAME, & - KLFINPRAR=TPFILE%NLFINPRAR,KLFITYPE=TPFILE%NLFITYPE,KLFIVERB=TPFILE%NLFIVERB, & - HFORMAT=TPFILE%CFORMAT) - ELSE - CALL IO_File_add2list(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & - KLFINPRAR=TPFILE%NLFINPRAR,KLFITYPE=TPFILE%NLFITYPE,KLFIVERB=TPFILE%NLFIVERB, & - HFORMAT=TPFILE%CFORMAT) - END IF - END IF - - IF (ALLOCATED(TPFILE%CDIRNAME)) THEN - IF (LEN_TRIM(TZSPLITFILE%CDIRNAME)>0) THEN - YPREFILENAME = TRIM(TZSPLITFILE%CDIRNAME)//'/'//TRIM(TZSPLITFILE%CNAME) - ELSE - YPREFILENAME = TRIM(TZSPLITFILE%CNAME) - END IF - ELSE - YPREFILENAME = TRIM(TZSPLITFILE%CNAME) - END IF - - TPFILE%TFILES_IOZ(IFILE)%TFILE => TZSPLITFILE - !Done outside of the previous IF to prevent problems with .OUT files - TZSPLITFILE%NMPICOMM = NMNH_COMM_WORLD - TZSPLITFILE%NMASTER_RANK = IRANK_PROCIO - TZSPLITFILE%LMASTER = (ISP == IRANK_PROCIO) - TZSPLITFILE%LMULTIMASTERS = .FALSE. - TZSPLITFILE%NSUBFILES_IOZ = 0 - - ! Must be done BEFORE the call to io_open_file_* because we need to read things in these subroutines - TZSPLITFILE%LOPENED = .TRUE. - TZSPLITFILE%NOPEN = TZSPLITFILE%NOPEN + 1 - TZSPLITFILE%NOPEN_CURRENT = TZSPLITFILE%NOPEN_CURRENT + 1 - - call IO_File_open_format( tzsplitfile, hprogram_orig=hprogram_orig ) - ENDDO - END IF + call IO_File_check_format_exist( tpfile ) - END SELECT + call IO_File_open_format( tpfile, hprogram_orig=hprogram_orig ) +END SELECT + +KRESP = IOS - TPFILE%NMPICOMM = NMNH_COMM_WORLD +CONTAINS - KRESP = IOS +FUNCTION SUFFIX(HEXT) - CONTAINS - FUNCTION SUFFIX(HEXT) + CHARACTER(len=*) :: HEXT + CHARACTER(len=LEN(HEXT)+3) :: SUFFIX - CHARACTER(len=*) :: HEXT - CHARACTER(len=LEN(HEXT)+3) :: SUFFIX + if ( isp > 999 ) call Print_msg(NVERB_FATAL,'IO','IO_File_doopen','SUFFIX: ISP>999') - WRITE(SUFFIX,'(A,i3.3)') TRIM(HEXT), ISP + WRITE(SUFFIX,'(A,i3.3)') TRIM(HEXT), ISP - END FUNCTION SUFFIX +END FUNCTION SUFFIX -END SUBROUTINE OPEN_ll +END SUBROUTINE IO_File_doopen recursive SUBROUTINE IO_File_close(TPFILE,KRESP,HPROGRAM_ORIG) diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 index 8a50caedd..31ccdc17a 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 @@ -15,6 +15,7 @@ ! (nsubfiles_ioz is now determined in IO_File_add2list) ! P. Wautelet 18/02/2019: bugfixes for nsubfiles_ioz ! P. Wautelet 05/03/2019: rename IO subroutines and modules +! P. Wautelet 12/03/2019: add TMAINFILE field in TFILEDATA !----------------------------------------------------------------- MODULE MODE_IO_MANAGE_STRUCT ! @@ -630,6 +631,7 @@ SUBROUTINE POPULATE_STRUCT(TPFILE_FIRST,TPFILE_LAST,KSTEPS,HFILETYPE,TPBAKOUTN) ELSE CALL PRINT_MSG(NVERB_FATAL,'IO','POPULATE_STRUCT','unknown backup/output fileformat') ENDIF + TPBAKOUTN(IPOS)%TFILE%TFILES_IOZ(JI)%TFILE%TMAINFILE => TPBAKOUTN(IPOS)%TFILE END DO END IF ! @@ -816,6 +818,8 @@ if ( gsplit_ioz ) then tpfile%nsubfiles_ioz = nb_procio_w end select if (tpfile%nsubfiles_ioz == 1) tpfile%nsubfiles_ioz = 0 +else + tpfile%nsubfiles_ioz = 0 end if SELECT CASE(TPFILE%CTYPE) @@ -1047,19 +1051,22 @@ ELSE TZFILE => TFILE_FIRST END IF ! -WRITE (*,'( /,A28," ",A13," ",A7," ",A7," ",A7," ",A7," ",A6," ",A6," ",A5," ",A6," ",A13)' ) 'CNAME ', & - 'CTYPE ','CFORMAT','CMODE ','LOPENED','NLFIFLU','NNCID','NLU','NOPEN','NCLOSE','NOPEN_CURRENT' +WRITE (*,'( /,A28," ",A13," ",A7," ",A7," ",A7," ",A7," ",A6," ",A6," ",A5," ",A6," ",A13," ",A13)' ) & + 'CNAME ', & + 'CTYPE ','CFORMAT','CMODE ','LOPENED','NLFIFLU','NNCID','NLU','NOPEN','NCLOSE','NOPEN_CURRENT','NSUBFILES_IOZ' WRITE (*,'( A,A )') '--------------------------------------------------------------------------------------------------------', & - '-----------' -WRITE (*,'(A28," ",A13," ",A7," ",A7," ",L7," ",I7," ",I6," ",I6," ",I5," ",I6," ",I13)' ) & + '------------------------' +WRITE (*,'(A28," ",A13," ",A7," ",A7," ",L7," ",I7," ",I6," ",I6," ",I5," ",I6," ",I13," ",I13)' ) & TZFILE%CNAME,TZFILE%CTYPE,TZFILE%CFORMAT,& - TZFILE%CMODE,TZFILE%LOPENED,TZFILE%NLFIFLU,TZFILE%NNCID,TZFILE%NLU,TZFILE%NOPEN,TZFILE%NCLOSE,TZFILE%NOPEN_CURRENT + TZFILE%CMODE,TZFILE%LOPENED,TZFILE%NLFIFLU,TZFILE%NNCID,TZFILE%NLU,TZFILE%NOPEN,TZFILE%NCLOSE,TZFILE%NOPEN_CURRENT,& + TZFILE%NSUBFILES_IOZ ! DO WHILE (ASSOCIATED(TZFILE%TFILE_NEXT)) TZFILE => TZFILE%TFILE_NEXT - WRITE (*,'(A28," ",A13," ",A7," ",A7," ",L7," ",I7," ",I6," ",I6," ",I5," ",I6," ",I13)' ) & + WRITE (*,'(A28," ",A13," ",A7," ",A7," ",L7," ",I7," ",I6," ",I6," ",I5," ",I6," ",I13," ",I13)' ) & TZFILE%CNAME,TZFILE%CTYPE,TZFILE%CFORMAT,& - TZFILE%CMODE,TZFILE%LOPENED,TZFILE%NLFIFLU,TZFILE%NNCID,TZFILE%NLU,TZFILE%NOPEN,TZFILE%NCLOSE,TZFILE%NOPEN_CURRENT + TZFILE%CMODE,TZFILE%LOPENED,TZFILE%NLFIFLU,TZFILE%NNCID,TZFILE%NLU,TZFILE%NOPEN,TZFILE%NCLOSE,TZFILE%NOPEN_CURRENT,& + TZFILE%NSUBFILES_IOZ END DO WRITE (*,'(/)') ! -- GitLab From 597fc65c5899089a1c98423e9634cd3378c97891 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Tue, 12 Mar 2019 16:59:42 +0100 Subject: [PATCH 093/139] Philippe 12/03/2019: fix: forgotten conflict of previous merge (commit e50c7e9) --- src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 index 100078a89..0f82d0974 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 @@ -8,13 +8,9 @@ ! J. Escobar 14/12/2017: correction for MNH_INT=8 ! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 13/12/2018: split of mode_netcdf into multiple modules/files -<<<<<<< HEAD ! P. Wautelet 10/01/2019: replace handle_err by IO_Err_handle_nc4 for better netCDF error messages -! P. Wautelet 05/03/2019: rename IO subroutines and modules -======= -! P. Wautelet 10/01/2019: replace handle_err by io_handle_err_nc4 for better netCDF error messages ! P. Wautelet 21/02/2019: bugfix: intent of read fields: OUT->INOUT to keep initial value if not found in file ->>>>>>> MNH-54X +! P. Wautelet 05/03/2019: rename IO subroutines and modules !----------------------------------------------------------------- #if defined(MNH_IOCDF4) module mode_io_read_nc4 -- GitLab From a04af203b631930c873b6b300da77da27f806c26 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Tue, 22 Nov 2016 14:13:17 +0100 Subject: [PATCH 094/139] Philippe 22/11/2016: lfiz: use F2003 calls to get argument lists + modified LFI integers to support LFI_INT=8 (cherry picked from commit 5fd86cd509ffefe231cd009da8f94b92d2dbb246) --- LIBTOOLS/tools/lfiz/src/lfiz.f90 | 44 ++++++++++++++++++------------ LIBTOOLS/tools/lfiz/src/unlfiz.f90 | 43 +++++++++++++++++------------ 2 files changed, 53 insertions(+), 34 deletions(-) diff --git a/LIBTOOLS/tools/lfiz/src/lfiz.f90 b/LIBTOOLS/tools/lfiz/src/lfiz.f90 index de9b42b53..3eef5b35b 100644 --- a/LIBTOOLS/tools/lfiz/src/lfiz.f90 +++ b/LIBTOOLS/tools/lfiz/src/lfiz.f90 @@ -16,23 +16,23 @@ CHARACTER(LEN=50) :: yexe INTEGER, PARAMETER :: FM_FIELD_SIZE = 16 -INTEGER, PARAMETER :: ISRCLU = 11 -INTEGER, PARAMETER :: IDESTLU = 12 +INTEGER(KIND=LFI_INT), PARAMETER :: ISRCLU = 11 +INTEGER(KIND=LFI_INT), PARAMETER :: IDESTLU = 12 INTEGER :: JPHEXT -INTEGER :: iverb -INTEGER :: inap ! nb d'articles prevus (utile a la creation) -INTEGER :: inaf ! nb d'articles presents dans un fichier existant -INTEGER :: inafdest +INTEGER(KIND=LFI_INT) :: iverb +INTEGER(KIND=LFI_INT) :: inap ! nb d'articles prevus (utile a la creation) +INTEGER(KIND=LFI_INT) :: inaf ! nb d'articles presents dans un fichier existant +INTEGER(KIND=LFI_INT) :: inafdest CHARACTER(LEN=128) :: filename,DESTFNAME INTEGER :: JI,JJ -INTEGER :: IRESP +INTEGER(KIND=LFI_INT) :: IRESP CHARACTER(LEN=FM_FIELD_SIZE),DIMENSION(:),ALLOCATABLE :: yrecfm -INTEGER, DIMENSION(:),ALLOCATABLE :: ileng +INTEGER(KIND=LFI_INT), DIMENSION(:),ALLOCATABLE :: ileng INTEGER(KIND=8), DIMENSION(:),ALLOCATABLE :: iwork -INTEGER :: ilengs -INTEGER :: ipos +INTEGER(KIND=LFI_INT) :: ilengs +INTEGER(KIND=LFI_INT) :: ipos INTEGER :: sizemax INTEGER :: IGRID @@ -46,7 +46,9 @@ INTEGER :: LFICOMP INTEGER :: NEWSIZE INTEGER :: searchndx INTEGER :: INDDATIM -INARG = IARGC() + +!OLD: INARG = IARGC() +INARG = COMMAND_ARGUMENT_COUNT() #if defined(F90HP) #define HPINCR 1 @@ -54,6 +56,9 @@ INARG = IARGC() #define HPINCR 0 #endif + CALL GET_COMMAND_ARGUMENT(0,yexe) +#if 0 +!OLD: #if defined(FUJI) || defined(NAGf95) || defined(NEC) || defined(HP) || defined(pgf) || defined(G95) || defined(GFORTRAN) CALL GETARG(0+HPINCR,yexe) IF (LEN_TRIM(yexe) == 0) THEN @@ -63,12 +68,17 @@ INARG = IARGC() #else CALL PXFGETARG(0,yexe,arglen,iresp) #endif +#endif ! PRINT *,yexe, ' avec ',INARG,' arguments.' IF (INARG == 1) THEN + CALL GET_COMMAND_ARGUMENT(1,filename) +#if 0 +!OLD: #if defined(FUJI) || defined(NAGf95) || defined(NEC) || defined(HP) || defined(pgf) || defined(G95)|| defined(GFORTRAN) CALL GETARG(1+HPINCR,filename) #else CALL PXFGETARG(1,filename,arglen,iresp) +#endif #endif ELSE PRINT *,'Usage : ', TRIM(yexe), ' [fichier lfi]' @@ -218,13 +228,13 @@ CALL LFIFER(IRESP,IDESTLU,'KEEP') CONTAINS SUBROUTINE FMREADLFIN1(klu,hrecfm,kval,kresp) -INTEGER, INTENT(IN) :: klu ! logical fortran unit au lfi file -CHARACTER(LEN=*),INTENT(IN) :: hrecfm ! article name to be read -INTEGER, INTENT(OUT) :: kval ! integer value for hrecfm article -INTEGER, INTENT(OUT) :: kresp! return code null if OK +INTEGER(KIND=LFI_INT), INTENT(IN) :: klu ! logical fortran unit au lfi file +CHARACTER(LEN=*), INTENT(IN) :: hrecfm ! article name to be read +INTEGER, INTENT(OUT) :: kval ! integer value for hrecfm article +INTEGER(KIND=LFI_INT), INTENT(OUT) :: kresp! return code null if OK ! -INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE::iwork -INTEGER :: iresp,ilenga,iposex,icomlen +INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: iwork +INTEGER(KIND=LFI_INT) :: iresp,ilenga,iposex,icomlen ! CALL LFINFO(iresp,klu,hrecfm,ilenga,iposex) IF (iresp /=0 .OR. ilenga == 0) THEN diff --git a/LIBTOOLS/tools/lfiz/src/unlfiz.f90 b/LIBTOOLS/tools/lfiz/src/unlfiz.f90 index bd5a3008f..73e0de641 100644 --- a/LIBTOOLS/tools/lfiz/src/unlfiz.f90 +++ b/LIBTOOLS/tools/lfiz/src/unlfiz.f90 @@ -16,22 +16,22 @@ CHARACTER(LEN=50) :: yexe INTEGER, PARAMETER :: FM_FIELD_SIZE = 16 -INTEGER, PARAMETER :: ISRCLU = 11 -INTEGER, PARAMETER :: IDESTLU = 12 -INTEGER :: iverb -INTEGER :: inap ! nb d'articles prevus (utile a la creation) -INTEGER :: inaf ! nb d'articles presents dans un fichier existant -INTEGER :: inafdest +INTEGER(KIND=LFI_INT), PARAMETER :: ISRCLU = 11 +INTEGER(KIND=LFI_INT), PARAMETER :: IDESTLU = 12 +INTEGER(KIND=LFI_INT) :: iverb +INTEGER(KIND=LFI_INT) :: inap ! nb d'articles prevus (utile a la creation) +INTEGER(KIND=LFI_INT) :: inaf ! nb d'articles presents dans un fichier existant +INTEGER(KIND=LFI_INT) :: inafdest CHARACTER(LEN=128) :: filename,DESTFNAME INTEGER :: JI,JJ -INTEGER :: IRESP +INTEGER(KIND=LFI_INT) :: IRESP CHARACTER(LEN=FM_FIELD_SIZE),DIMENSION(:),ALLOCATABLE :: yrecfm -INTEGER, DIMENSION(:),ALLOCATABLE :: ileng +INTEGER(KIND=LFI_INT), DIMENSION(:),ALLOCATABLE :: ileng INTEGER(KIND=8), DIMENSION(:),ALLOCATABLE :: iwork,iworknew -INTEGER :: ilengs -INTEGER :: ipos +INTEGER(KIND=LFI_INT) :: ilengs +INTEGER(KIND=LFI_INT) :: ipos INTEGER :: sizemax INTEGER :: ICOMLEN @@ -45,7 +45,8 @@ INTEGER :: searchndx INTEGER :: ITYPCOD INTEGER :: ITOTAL,ITOTALMAX -INARG = IARGC() +!OLD: INARG = IARGC() +INARG = COMMAND_ARGUMENT_COUNT() #if defined(F90HP) #define HPINCR 1 @@ -53,6 +54,9 @@ INARG = IARGC() #define HPINCR 0 #endif + CALL GET_COMMAND_ARGUMENT(0,yexe) +#if 0 +!OLD: #if defined(FUJI) || defined(NAGf95) || defined(NEC) || defined(HP) || defined(pgf) || defined(G95) || defined(GFORTRAN) CALL GETARG(0+HPINCR,yexe) IF (LEN_TRIM(yexe) == 0) THEN @@ -62,12 +66,17 @@ INARG = IARGC() #else CALL PXFGETARG(0,yexe,arglen,iresp) #endif +#endif ! PRINT *,yexe, ' avec ',INARG,' arguments.' IF (INARG == 1) THEN + CALL GET_COMMAND_ARGUMENT(1,filename) +#if 0 +!OLD: #if defined(FUJI) || defined(NAGf95) || defined(NEC) || defined(HP) || defined(pgf) || defined(G95) || defined(GFORTRAN) CALL GETARG(1+HPINCR,filename) #else CALL PXFGETARG(1,filename,arglen,iresp) +#endif #endif ELSE PRINT *,'Usage : ', TRIM(yexe), ' [fichier lfi]' @@ -173,13 +182,13 @@ CALL LFIFER(IRESP,IDESTLU,'KEEP') CONTAINS SUBROUTINE FMREADLFIN1(klu,hrecfm,kval,kresp) -INTEGER, INTENT(IN) :: klu ! logical fortran unit au lfi file -CHARACTER(LEN=*),INTENT(IN) :: hrecfm ! article name to be read -INTEGER, INTENT(OUT) :: kval ! integer value for hrecfm article -INTEGER, INTENT(OUT) :: kresp! return code null if OK +INTEGER(KIND=LFI_INT), INTENT(IN) :: klu ! logical fortran unit au lfi file +CHARACTER(LEN=*), INTENT(IN) :: hrecfm ! article name to be read +INTEGER, INTENT(OUT) :: kval ! integer value for hrecfm article +INTEGER(KIND=LFI_INT), INTENT(OUT) :: kresp! return code null if OK ! -INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE::iwork -INTEGER :: iresp,ilenga,iposex,icomlen +INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: iwork +INTEGER(KIND=LFI_INT) :: iresp,ilenga,iposex,icomlen ! CALL LFINFO(iresp,klu,hrecfm,ilenga,iposex) IF (iresp /=0 .OR. ilenga == 0) THEN -- GitLab From aee3987fb3fa3eb1580ea3d88f675cfb688088dd Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 13 Mar 2019 11:30:09 +0100 Subject: [PATCH 095/139] Philippe 03/01/2017: use LFI_INT for lfiz/unlfiz calls to LFI (cherry picked from commit aa1fdae51201b3863955ce5a37ba9fe6deb81e86) --- LIBTOOLS/tools/lfiz/src/lfiz.f90 | 12 +++++++----- LIBTOOLS/tools/lfiz/src/unlfiz.f90 | 16 +++++++++------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/LIBTOOLS/tools/lfiz/src/lfiz.f90 b/LIBTOOLS/tools/lfiz/src/lfiz.f90 index 3eef5b35b..d72a01bc6 100644 --- a/LIBTOOLS/tools/lfiz/src/lfiz.f90 +++ b/LIBTOOLS/tools/lfiz/src/lfiz.f90 @@ -14,6 +14,8 @@ INTEGER :: arglen INTEGER :: inarg CHARACTER(LEN=50) :: yexe +LOGICAL(KIND=LFI_INT),PARAMETER :: GTRUE = .TRUE. +LOGICAL(KIND=LFI_INT),PARAMETER :: GFALSE = .FALSE. INTEGER, PARAMETER :: FM_FIELD_SIZE = 16 INTEGER(KIND=LFI_INT), PARAMETER :: ISRCLU = 11 @@ -101,8 +103,8 @@ IDIMY = 0 IDIMZ = 0 GUSEDIM = .FALSE. -CALL LFIOUV(IRESP,ISRCLU,.TRUE.,filename,'OLD',.FALSE.& - & ,.FALSE.,iverb,inap,inaf) +CALL LFIOUV(IRESP,ISRCLU,GTRUE,filename,'OLD',GFALSE& + & ,GFALSE,iverb,inap,inaf) CALL FMREADLFIN1(ISRCLU,'LFI_COMPRESSED',LFICOMP,iresp) IF (iresp == 0) THEN @@ -149,8 +151,8 @@ END IF PRINT *,'compressed file : ',DESTFNAME -CALL LFIOUV(IRESP,IDESTLU,.TRUE.,DESTFNAME,'NEW'& - & ,.FALSE.,.FALSE.,iverb,inaf+1,inafdest) +CALL LFIOUV(IRESP,IDESTLU,GTRUE,DESTFNAME,'NEW'& + & ,GFALSE,GFALSE,iverb,inaf+1,inafdest) CALL LFIPOS(IRESP,ISRCLU) ALLOCATE(yrecfm(inaf)) @@ -158,7 +160,7 @@ ALLOCATE(ileng(inaf)) yrecfm(:) = '' sizemax=0 DO ji=1,inaf - CALL LFICAS(IRESP,ISRCLU,yrecfm(ji),ileng(ji),ipos,.TRUE.) + CALL LFICAS(IRESP,ISRCLU,yrecfm(ji),ileng(ji),ipos,GTRUE) IF (ileng(ji) > sizemax) sizemax=ileng(ji) END DO PRINT *,' Nombre total d''articles dans fichier source :', inaf diff --git a/LIBTOOLS/tools/lfiz/src/unlfiz.f90 b/LIBTOOLS/tools/lfiz/src/unlfiz.f90 index 73e0de641..d2c0e814b 100644 --- a/LIBTOOLS/tools/lfiz/src/unlfiz.f90 +++ b/LIBTOOLS/tools/lfiz/src/unlfiz.f90 @@ -14,6 +14,8 @@ INTEGER :: arglen INTEGER :: inarg CHARACTER(LEN=50) :: yexe +LOGICAL(KIND=LFI_INT),PARAMETER :: GTRUE = .TRUE. +LOGICAL(KIND=LFI_INT),PARAMETER :: GFALSE = .FALSE. INTEGER, PARAMETER :: FM_FIELD_SIZE = 16 INTEGER(KIND=LFI_INT), PARAMETER :: ISRCLU = 11 @@ -27,7 +29,7 @@ CHARACTER(LEN=128) :: filename,DESTFNAME INTEGER :: JI,JJ INTEGER(KIND=LFI_INT) :: IRESP CHARACTER(LEN=FM_FIELD_SIZE),DIMENSION(:),ALLOCATABLE :: yrecfm -INTEGER(KIND=LFI_INT), DIMENSION(:),ALLOCATABLE :: ileng +INTEGER(KIND=LFI_INT), DIMENSION(:),ALLOCATABLE :: ileng INTEGER(KIND=8), DIMENSION(:),ALLOCATABLE :: iwork,iworknew INTEGER(KIND=LFI_INT) :: ilengs @@ -43,7 +45,7 @@ INTEGER :: CPT INTEGER :: LFICOMP INTEGER :: searchndx INTEGER :: ITYPCOD -INTEGER :: ITOTAL,ITOTALMAX +INTEGER(KIND=LFI_INT) :: ITOTAL,ITOTALMAX !OLD: INARG = IARGC() INARG = COMMAND_ARGUMENT_COUNT() @@ -102,8 +104,8 @@ IDIMY = 0 IDIMZ = 0 GUSEDIM = .FALSE. -CALL LFIOUV(IRESP,ISRCLU,.TRUE.,filename,'OLD',.FALSE.& - & ,.FALSE.,iverb,inap,inaf) +CALL LFIOUV(IRESP,ISRCLU,GTRUE,filename,'OLD',GFALSE& + & ,GFALSE,iverb,inap,inaf) CALL FMREADLFIN1(ISRCLU,'LFI_COMPRESSED',LFICOMP,iresp) IF (iresp /= 0 .OR. LFICOMP /= 1) THEN @@ -113,8 +115,8 @@ IF (iresp /= 0 .OR. LFICOMP /= 1) THEN END IF PRINT *,'Uncompressed (but 32 bits REAL precision) file : ',DESTFNAME -CALL LFIOUV(IRESP,IDESTLU,.TRUE.,DESTFNAME,'NEW'& - & ,.FALSE.,.FALSE.,iverb,inaf,inafdest) +CALL LFIOUV(IRESP,IDESTLU,GTRUE,DESTFNAME,'NEW'& + & ,GFALSE,GFALSE,iverb,inaf,inafdest) CALL LFIPOS(IRESP,ISRCLU) ALLOCATE(yrecfm(inaf)) @@ -122,7 +124,7 @@ ALLOCATE(ileng(inaf)) yrecfm(:) = '' sizemax=0 DO ji=1,inaf - CALL LFICAS(IRESP,ISRCLU,yrecfm(ji),ileng(ji),ipos,.TRUE.) + CALL LFICAS(IRESP,ISRCLU,yrecfm(ji),ileng(ji),ipos,GTRUE) IF (ileng(ji) > sizemax) sizemax=ileng(ji) END DO PRINT *,' Nombre total d''articles dans fichier source :', inaf -- GitLab From ae5ec3312b0c5691c56b43a7e671f81bc8bb20bb Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 14 Mar 2019 11:12:25 +0100 Subject: [PATCH 096/139] Philippe 14/03/2019: correct ZWS when variable not present in file --- src/MNH/ini_ls.f90 | 18 ++++++++++++++---- src/MNH/ini_modeln.f90 | 3 ++- src/MNH/modd_fieldn.f90 | 3 +++ src/MNH/read_all_data_grib_case.f90 | 13 ++++++++----- src/MNH/read_field.f90 | 19 +++++++++++++++---- src/MNH/spawn_field2.f90 | 18 ++++++++++++++---- src/MNH/spawn_model2.f90 | 7 ++++--- src/SURFEX/coupling_seafluxn.F90 | 16 +++++++++++++--- 8 files changed, 73 insertions(+), 24 deletions(-) diff --git a/src/MNH/ini_ls.f90 b/src/MNH/ini_ls.f90 index 4addd03ac..2d61ca905 100644 --- a/src/MNH/ini_ls.f90 +++ b/src/MNH/ini_ls.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -83,6 +83,7 @@ END MODULE MODI_INI_LS !! Original 22/09/98 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 14/03/2019: correct ZWS when variable not present in file !! !! !------------------------------------------------------------------------------- @@ -90,6 +91,7 @@ END MODULE MODI_INI_LS !* 0. DECLARATIONS ! USE MODD_CONF +USE MODD_FIELD_n, only: XZWS_DEFAULT USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_TIME ! for type DATE_TIME ! @@ -122,7 +124,8 @@ LOGICAL, INTENT(IN), OPTIONAL :: OSTEADY_DMASS ! Md ev ! !* 0.2 declarations of local variables ! -!NONE +CHARACTER(LEN=15) :: YVAL +INTEGER :: IRESP ! !------------------------------------------------------------------------------- ! @@ -143,7 +146,14 @@ CALL IO_READ_FIELD(TPINIFILE,'LSUM', PLSUM) CALL IO_READ_FIELD(TPINIFILE,'LSVM', PLSVM) CALL IO_READ_FIELD(TPINIFILE,'LSWM', PLSWM) CALL IO_READ_FIELD(TPINIFILE,'LSTHM',PLSTHM) -CALL IO_READ_FIELD(TPINIFILE,'ZWS',PLSZWSM) +CALL IO_READ_FIELD(TPINIFILE,'ZWS',PLSZWSM, IRESP) +!If the field ZWS is not in the file, set its value to XZWS_DEFAULT +!ZWS is present in files since MesoNH 5.4.2 +IF ( IRESP/=0 ) THEN + WRITE (YVAL,'( E15.8 )') XZWS_DEFAULT + CALL PRINT_MSG(NVERB_WARNING,'IO','INI_LS','ZWS not found in file: using default value: '//TRIM(YVAL)//' m') + PLSZWSM(:,:) = XZWS_DEFAULT +END IF ! IF (HGETRVM == 'READ') THEN ! LS-vapor CALL IO_READ_FIELD(TPINIFILE,'LSRVM',PLSRVM) diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index c879f7b8b..74312b192 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -283,6 +283,7 @@ END MODULE MODI_INI_MODEL_n ! P. Wautelet 13/02/2019: removed PPABSM and PTSTEP dummy arguments of READ_FIELD !! 02/2019 C.Lac add rain fraction as an output field !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 14/03/2019: correct ZWS when variable not present in file (set to XZWS_DEFAULT) !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -847,7 +848,7 @@ END IF ALLOCATE(XSVT(IIU,IJU,IKU,NSV)) ; XSVT = 0. ALLOCATE(XRSVS(IIU,IJU,IKU,NSV)); XRSVS = 0. ALLOCATE(XRSVS_CLD(IIU,IJU,IKU,NSV)); XRSVS_CLD = 0.0 -ALLOCATE(XZWS(IIU,IJU)) ; XZWS = -1. +ALLOCATE(XZWS(IIU,IJU)) ; XZWS(:,:) = XZWS_DEFAULT ! IF (LPASPOL) THEN ALLOCATE( XATC(IIU,IJU,IKU,NSV_PP) ) diff --git a/src/MNH/modd_fieldn.f90 b/src/MNH/modd_fieldn.f90 index 1bfaab894..92e3b89c6 100644 --- a/src/MNH/modd_fieldn.f90 +++ b/src/MNH/modd_fieldn.f90 @@ -52,6 +52,7 @@ !! 02/2019 C.Lac add rain fraction as an output field !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes ! P. Wautelet 06/03/2019: correct XZWS entry +! P. Wautelet 14/03/2019: add XZWS_DEFAULT parameter !! !------------------------------------------------------------------------------- ! @@ -61,6 +62,8 @@ USE MODD_PARAMETERS, ONLY: JPMODELMAX IMPLICIT NONE +REAL, PARAMETER :: XZWS_DEFAULT = 2. ! Default value for XZWS: 2 meters + TYPE FIELD_t REAL, DIMENSION(:,:), POINTER :: XZWS=>NULL() ! significant sea wave ! REAL, DIMENSION(:,:,:), POINTER :: XUT=>NULL(),XVT=>NULL(),XWT=>NULL() diff --git a/src/MNH/read_all_data_grib_case.f90 b/src/MNH/read_all_data_grib_case.f90 index e8dcc36b6..ead976f34 100644 --- a/src/MNH/read_all_data_grib_case.f90 +++ b/src/MNH/read_all_data_grib_case.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1998-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################# @@ -129,6 +129,7 @@ END MODULE MODI_READ_ALL_DATA_GRIB_CASE !! Pergaud : 2018 add GFS !! 01/2019 (G.Delautier via Q.Rodier) for GRIB2 ARPEGE and AROME from EPYGRAM !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 14/03/2019: correct ZWS when variable not present in file !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -153,7 +154,7 @@ USE MODI_CH_AER_INIT_SOA USE MODI_INI_CTURB USE MODI_CH_OPEN_INPUT ! -USE MODD_FIELD_n, ONLY: XZWS +USE MODD_FIELD_n, ONLY: XZWS, XZWS_DEFAULT USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_CONF USE MODD_CONF_n @@ -284,6 +285,7 @@ INTEGER :: ITIME INTEGER :: IDATE INTEGER :: ITIMESTEP CHARACTER(LEN=10) :: CSTEPUNIT +CHARACTER(LEN=15) :: YVAL !chemistery field CHARACTER(LEN=16) :: YPRE_MOC="PRE_MOC1.nam" INTEGER, DIMENSION(:), ALLOCATABLE :: INUMGRIB, INUMLEV ! grib @@ -583,9 +585,10 @@ SELECT CASE (IMODEL) CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=229) ! IF(INUM < 0) THEN + WRITE (YVAL,'( E15.8 )') XZWS_DEFAULT WRITE (ILUOUT0,'(A)')' | !!! WARNING !!! Sea wave height is missing in '// & - 'the GRIB file - the default value of 2 meters is used' - XZWS = 2.0 + 'the GRIB file - the default value of '//TRIM(YVAL)//' meters is used' + XZWS = XZWS_DEFAULT ELSE GFIND=.TRUE. END IF diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90 index 15878a3b6..32672d22f 100644 --- a/src/MNH/read_field.f90 +++ b/src/MNH/read_field.f90 @@ -72,7 +72,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRTKEMS ! tke adv source REAL, DIMENSION(:,:,:), INTENT(OUT) :: PPABST ! pressure at t REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PRT,PSVT ! moist and scalar ! variables at t -REAL, DIMENSION(:,:), INTENT(OUT) :: PZWS +REAL, DIMENSION(:,:), INTENT(INOUT) :: PZWS REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCT ! turbulent flux ! <s'Rc'> at t REAL, DIMENSION(:,:,:), INTENT(OUT) :: PCIT ! ice conc. at t @@ -239,6 +239,7 @@ END MODULE MODI_READ_FIELD !! P. Wautelet 01/2019 corrected intent of PDUM,PDVM,PDWM (OUT->INOUT) ! P. Wautelet 13/02/2019: removed PPABSM and PTSTEP dummy arguments (bugfix: PPABSM was intent(OUT)) !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 14/03/2019: correct ZWS when variable not present in file !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -253,6 +254,7 @@ USE MODD_CST USE MODD_CTURB USE MODD_DUST USE MODD_ELEC_DESCR, ONLY: CELECNAMES +USE MODD_FIELD_n, only: XZWS_DEFAULT #ifdef MNH_FOREFIRE USE MODD_FOREFIRE #endif @@ -332,7 +334,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRTKEMS ! tke adv source REAL, DIMENSION(:,:,:), INTENT(OUT) :: PPABST ! pressure at t REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PRT,PSVT ! moist and scalar ! variables at t -REAL, DIMENSION(:,:), INTENT(OUT) :: PZWS +REAL, DIMENSION(:,:), INTENT(INOUT) :: PZWS REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCT ! turbulent flux ! <s'Rc'> at t REAL, DIMENSION(:,:,:), INTENT(OUT) :: PCIT ! ice conc. at t @@ -391,6 +393,7 @@ INTEGER :: JT ! loop index LOGICAL :: GLSOURCE ! switch for the source term (for ini_ls and ini_lb) CHARACTER(LEN=2) :: INDICE CHARACTER(LEN=3) :: YFRC ! To mark the different forcing dates +CHARACTER(LEN=15) :: YVAL REAL, DIMENSION(KIU,KJU,KKU) :: ZWORK ! to compute supersaturation TYPE(TFIELDDATA) :: TZFIELD ! @@ -463,9 +466,17 @@ END SELECT ! SELECT CASE(HGETZWS) CASE('READ') - CALL IO_READ_FIELD(TPINIFILE,'ZWS',PZWS) + CALL IO_READ_FIELD(TPINIFILE,'ZWS',PZWS,IRESP) + !If the field ZWS is not in the file, set its value to XZWS_DEFAULT + !ZWS is present in files since MesoNH 5.4.2 + IF ( IRESP/=0 ) THEN + WRITE (YVAL,'( E15.8 )') XZWS_DEFAULT + CALL PRINT_MSG(NVERB_WARNING,'IO','READ_FIELD','ZWS not found in file: using default value: '//TRIM(YVAL)//' m') + PZWS(:,:) = XZWS_DEFAULT + END IF + CASE('INIT') - PZWS(:,:)=0. + PZWS(:,:)=0. END SELECT ! SELECT CASE(HGETRVT) ! vapor diff --git a/src/MNH/spawn_field2.f90 b/src/MNH/spawn_field2.f90 index b49d86cc6..c029da290 100644 --- a/src/MNH/spawn_field2.f90 +++ b/src/MNH/spawn_field2.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !####################### MODULE MODI_SPAWN_FIELD2 @@ -153,6 +153,7 @@ END MODULE MODI_SPAWN_FIELD2 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! Modification 05/03/2018 (J.Escobar) bypass gridnesting special case KD(X/Y)RATIO == 1 not parallelized !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 14/03/2019: correct ZWS when variable not present in file !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -168,7 +169,7 @@ USE MODD_CST USE MODD_CONF_n, ONLY: CONF_MODEL USE MODD_DUST, ONLY: CDUSTNAMES USE MODD_ELEC_DESCR, ONLY: CELECNAMES -USE MODD_FIELD_n, ONLY: FIELD_MODEL +USE MODD_FIELD_n, ONLY: FIELD_MODEL, XZWS_DEFAULT USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_LATZ_EDFLX USE MODD_LBC_n, ONLY: LBC_MODEL @@ -190,6 +191,7 @@ USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL USE MODE_FMREAD USE MODE_IO_ll, ONLY: UPCASE USE MODE_ll +USE MODE_MSG USE MODE_MODELN_HANDLER USE MODE_MPPDB USE MODE_THERMO @@ -273,6 +275,7 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZPABST1,ZHUT1 REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZRT1 LOGICAL :: GUSERV ! +CHARACTER(LEN=15) :: YVAL CHARACTER(LEN=2) :: INDICE INTEGER :: I TYPE(TFIELDDATA) :: TZFIELD @@ -760,7 +763,14 @@ IF (PRESENT(TPSONFILE)) THEN PVT(KIB2:KIE2,KJB2:KJE2,:) = ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) CALL IO_READ_FIELD(TPSONFILE,'WT',ZWORK3D) ! W wind component at time t PWT(KIB2:KIE2,KJB2:KJE2,:) = ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) - CALL IO_READ_FIELD(TPSONFILE,'ZWS',ZWORK2D) ! + CALL IO_READ_FIELD(TPSONFILE,'ZWS',ZWORK2D,IRESP) ! + !If the field ZWS is not in the file, set its value to XZWS_DEFAULT + !ZWS is present in files since MesoNH 5.4.2 + IF ( IRESP/=0 ) THEN + WRITE (YVAL,'( E15.8 )') XZWS_DEFAULT + CALL PRINT_MSG(NVERB_WARNING,'IO','SPAWN_FIELD2','ZWS not found in file: using default value: '//TRIM(YVAL)//' m') + ZWORK2D(:,:) = XZWS_DEFAULT + END IF PZWS(KIB2:KIE2,KJB2:KJE2) = ZWORK2D(KIB1:KIE1,KJB1:KJE1) ! ! moist variables diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90 index 2811911fc..bf6627bc5 100644 --- a/src/MNH/spawn_model2.f90 +++ b/src/MNH/spawn_model2.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !######################## MODULE MODI_SPAWN_MODEL2 @@ -192,6 +192,7 @@ END MODULE MODI_SPAWN_MODEL2 !! 10/2016 (C.Lac) Add droplet deposition !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 14/03/2019: correct ZWS when variable not present in file !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -704,7 +705,7 @@ ALLOCATE(ZJ(IIU,IJU,IKU)) ! !* 4.2 Prognostic (and diagnostic) variables (module MODD_FIELD2) : ! -ALLOCATE(XZWS(IIU,IJU)) +ALLOCATE(XZWS(IIU,IJU)); XZWS(:,:) = XZWS_DEFAULT ALLOCATE(XLSZWSM(IIU,IJU)) ALLOCATE(XUT(IIU,IJU,IKU)) ALLOCATE(XVT(IIU,IJU,IKU)) diff --git a/src/SURFEX/coupling_seafluxn.F90 b/src/SURFEX/coupling_seafluxn.F90 index f7fc56d80..a7c421d68 100644 --- a/src/SURFEX/coupling_seafluxn.F90 +++ b/src/SURFEX/coupling_seafluxn.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. ! ############################################################################### SUBROUTINE COUPLING_SEAFLUX_n (CHS, DTS, DGS, O, OR, G, S, DST, SLT, & @@ -50,7 +50,8 @@ SUBROUTINE COUPLING_SEAFLUX_n (CHS, DTS, DGS, O, OR, G, S, DST, SLT, & !! Modified 03/2014 : M.N. Bouin possibility of wave parameters from external source !! Modified 11/2014 : J. Pianezze : add currents for wave coupling !! Modified 02/2019 : S. Bielli Sea salt : significant sea wave height influences salt emission; 5 salt modes -!! +!! Modified 03/2019 : P. Wautelet: correct ZWS when variable not present in file +!! !!--------------------------------------------------------------------- ! ! @@ -74,6 +75,10 @@ USE MODD_WATER_PAR, ONLY : XEMISWAT, XEMISWATICE ! USE MODD_WATER_PAR, ONLY : XALBSEAICE ! +#ifdef SFX_MNH +USE MODD_FIELD_n, only: XZWS_DEFAULT +#endif +! ! USE MODI_WATER_FLUX USE MODI_MR98 @@ -341,8 +346,13 @@ END IF #endif ! if HS value is undef : constant value and alert message IF (ALL(ZHS==XUNDEF)) THEN +#ifdef SFX_MNH + ZHS(:) = XZWS_DEFAULT + WRITE (ILUOUT,*) 'WARNING : no HS values from ECMWF or WW3, then it is initialized to a constant value of XZWS_DEFAULT m' +#else ZHS(:)=2. WRITE (ILUOUT,*) 'WARNING : no HS values from ECMWF or WW3, then it is initialized to a constant value of 2 m' +#endif END IF ! ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- GitLab From 365dfa3a468af8896207fd0ef498cb57969c62de Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 14 Mar 2019 15:21:03 +0100 Subject: [PATCH 097/139] Philippe 14/03/2019: bugfix: correct management of files for electricity --- src/MNH/resolved_elecn.f90 | 54 +++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/src/MNH/resolved_elecn.f90 b/src/MNH/resolved_elecn.f90 index aaa23d218..b878c7739 100644 --- a/src/MNH/resolved_elecn.f90 +++ b/src/MNH/resolved_elecn.f90 @@ -165,9 +165,10 @@ END MODULE MODI_RESOLVED_ELEC_n !! M. Chong 26/01/10 Add Small ions parameters !! M. Chong 31/07/14 Add explicit LiNOx !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 -!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -!! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN -!! Philippe Wautelet: 22/01/2019: use standard FLUSH statement instead of non standard intrinsics +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN +! P. Wautelet 22/01/2019: use standard FLUSH statement instead of non standard intrinsics +! P. Wautelet 14/03/2019: bugfix: correct management of files !! !------------------------------------------------------------------------------- ! @@ -183,7 +184,7 @@ USE MODD_METRICS_n, ONLY : XDXX, XDYY, XDZX, XDZY, XDZZ USE MODD_FIELD_n, ONLY : XRSVS USE MODD_CONF, ONLY : L1D, L2D, CEXP USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO_ll, ONLY: TFILEDATA, TFILE_DUMMY USE MODD_PARAMETERS, ONLY : JPVEXT USE MODD_ELEC_DESCR USE MODD_ELEC_n @@ -344,16 +345,21 @@ CHARACTER (LEN=32) :: YASCFILE REAL :: ZTEMP_DIST CHARACTER (LEN=18) :: YNAME LOGICAL :: GLMA_FILE -TYPE(TFILEDATA),POINTER :: TZFILE_FGEOM_COORD -TYPE(TFILEDATA),POINTER :: TZFILE_FGEOM_DIAG -TYPE(TFILEDATA),POINTER :: TZFILE_LMA -TYPE(TFILEDATA),POINTER :: TZFILE_SERIES_CLOUD_ELEC +LOGICAL, SAVE :: GFIRST_CALL = .TRUE. +TYPE(TFILEDATA),POINTER, SAVE :: TZFILE_FGEOM_COORD => NULL() +TYPE(TFILEDATA),POINTER, SAVE :: TZFILE_FGEOM_DIAG => NULL() +TYPE(TFILEDATA),POINTER, SAVE :: TZFILE_LMA => NULL() +TYPE(TFILEDATA),POINTER, SAVE :: TZFILE_SERIES_CLOUD_ELEC => NULL() ! NULLIFY(TZFIELDS_ll) -TZFILE_FGEOM_COORD => NULL() -TZFILE_FGEOM_DIAG => NULL() -TZFILE_LMA => NULL() -TZFILE_SERIES_CLOUD_ELEC => NULL() +! +IF ( GFIRST_CALL ) THEN + GFIRST_CALL = .FALSE. + TZFILE_FGEOM_COORD => TFILE_DUMMY + TZFILE_FGEOM_DIAG => TFILE_DUMMY + TZFILE_LMA => TFILE_DUMMY + TZFILE_SERIES_CLOUD_ELEC => TFILE_DUMMY +END IF ! !------------------------------------------------------------------------------ ! @@ -846,6 +852,7 @@ ENDIF IF (KTCOUNT==1 .AND. IPROC==0) THEN IF (LFLASH_GEOM) THEN YASCFILE = CEXP//"_fgeom_diag.asc" + TZFILE_FGEOM_DIAG => NULL() CALL IO_FILE_ADD2LIST(TZFILE_FGEOM_DIAG,YASCFILE,'TXT','WRITE') CALL IO_FILE_OPEN_ll(TZFILE_FGEOM_DIAG,HPOSITION='APPEND',HSTATUS='NEW') ILU = TZFILE_FGEOM_DIAG%NLU @@ -870,6 +877,7 @@ IF (KTCOUNT==1 .AND. IPROC==0) THEN ! IF (LSAVE_COORD) THEN YASCFILE = CEXP//"_fgeom_coord.asc" + TZFILE_FGEOM_COORD => NULL() CALL IO_FILE_ADD2LIST(TZFILE_FGEOM_COORD,YASCFILE,'TXT','WRITE') CALL IO_FILE_OPEN_ll(TZFILE_FGEOM_COORD,HPOSITION='APPEND',HSTATUS='NEW') ILU = TZFILE_FGEOM_COORD%NLU @@ -888,6 +896,7 @@ IF (KTCOUNT==1 .AND. IPROC==0) THEN ! IF (LSERIES_ELEC) THEN YASCFILE = CEXP//"_series_cloud_elec.asc" + TZFILE_SERIES_CLOUD_ELEC => NULL() CALL IO_FILE_ADD2LIST(TZFILE_SERIES_CLOUD_ELEC,YASCFILE,'TXT','WRITE') CALL IO_FILE_OPEN_ll(TZFILE_SERIES_CLOUD_ELEC,HPOSITION='APPEND',HSTATUS='NEW') ILU = TZFILE_SERIES_CLOUD_ELEC%NLU @@ -949,6 +958,7 @@ IF (LFLASH_GEOM .AND. LLMA) THEN CLMA_FILE = CEXP//"_SIMLMA_"//YNAME//".dat" ! IF ( IPROC .EQ. 0 ) THEN + TZFILE_LMA => NULL() CALL IO_FILE_ADD2LIST(TZFILE_LMA,CLMA_FILE,'TXT','WRITE') CALL IO_FILE_OPEN_ll(TZFILE_LMA,HPOSITION='APPEND',HSTATUS='NEW') ILU = TZFILE_LMA%NLU @@ -1026,10 +1036,22 @@ END IF ! ! Close Ascii Files if KTCOUNT = NSTOP IF (OEXIT .AND. IPROC==0) THEN - IF (LFLASH_GEOM) CALL IO_FILE_CLOSE_ll(TZFILE_FGEOM_DIAG) - IF(LFLASH_GEOM .AND. LSAVE_COORD) CALL IO_FILE_CLOSE_ll(TZFILE_FGEOM_COORD) - IF (LSERIES_ELEC) CALL IO_FILE_CLOSE_ll(TZFILE_SERIES_CLOUD_ELEC) - IF (LFLASH_GEOM .AND. LLMA) CALL IO_FILE_CLOSE_ll(TZFILE_LMA) + IF (LFLASH_GEOM) THEN + CALL IO_FILE_CLOSE_ll(TZFILE_FGEOM_DIAG) + TZFILE_FGEOM_DIAG => TFILE_DUMMY + END IF + IF (LFLASH_GEOM .AND. LSAVE_COORD) THEN + CALL IO_FILE_CLOSE_ll(TZFILE_FGEOM_COORD) + TZFILE_FGEOM_COORD => TFILE_DUMMY + END IF + IF (LSERIES_ELEC) THEN + CALL IO_FILE_CLOSE_ll(TZFILE_SERIES_CLOUD_ELEC) + TZFILE_SERIES_CLOUD_ELEC => TFILE_DUMMY + END IF + IF (LFLASH_GEOM .AND. LLMA) THEN + CALL IO_FILE_CLOSE_ll(TZFILE_LMA) + TZFILE_LMA => TFILE_DUMMY + END IF ENDIF ! ! -- GitLab From f156f1fe1ffcdfd15dbe3c5a281914e756447212 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 15 Mar 2019 11:57:29 +0100 Subject: [PATCH 098/139] Philippe 15/03/2019: use LFIINT of modd_precision (instead of LFI_INT compilation keyword) --- LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 | 9 ++--- src/LIB/SURCOUCHE/src/modd_io.f90 | 11 +++--- src/LIB/SURCOUCHE/src/mode_io_file_lfi.f90 | 16 ++++----- .../SURCOUCHE/src/mode_io_manage_struct.f90 | 6 ++-- src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 | 35 ++++++++++--------- src/LIB/SURCOUCHE/src/mode_io_tools_lfi.f90 | 9 ++--- src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90 | 35 ++++++++++--------- src/MNH/diag.f90 | 3 +- src/MNH/ini_modeln.f90 | 7 ++-- src/MNH/prep_ideal_case.f90 | 3 +- src/MNH/prep_pgd.f90 | 3 +- src/MNH/spawn_model2.f90 | 3 +- src/MNH/zoom_pgd.f90 | 5 +-- 13 files changed, 79 insertions(+), 66 deletions(-) diff --git a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 index 0f55191e7..f577d4bb4 100644 --- a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 +++ b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 @@ -7,6 +7,7 @@ MODULE mode_util USE MODD_IO_ll, ONLY: TFILE_ELT USE MODD_NETCDF, ONLY: DIMCDF, IDCDF_KIND USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH, NMNHNAMELGTMAX + use modd_precision, only: LFIINT USE MODE_FIELD USE MODE_FMREAD @@ -45,8 +46,8 @@ MODULE mode_util TYPE(DIMCDF),DIMENSION(:),ALLOCATABLE :: TDIMS ! Dimensions of the field END TYPE workfield - LOGICAL(KIND=LFI_INT), PARAMETER :: ltrue = .TRUE. - LOGICAL(KIND=LFI_INT), PARAMETER :: lfalse = .FALSE. + LOGICAL(KIND=LFIINT), PARAMETER :: ltrue = .TRUE. + LOGICAL(KIND=LFIINT), PARAMETER :: lfalse = .FALSE. CHARACTER(LEN=6) :: CPROGRAM_ORIG @@ -82,9 +83,9 @@ CONTAINS INTEGER :: leng INTEGER :: IID, IRESP, IDATES, ICURDATE INTEGER :: IDXDATE, IDXTIME - INTEGER(KIND=LFI_INT) :: iresp2,ilu,ileng,ipos INTEGER(KIND=IDCDF_KIND) :: kcdf_id, kcdf_id2, var_id INTEGER(KIND=IDCDF_KIND) :: status + INTEGER(KIND=LFIINT) :: iresp2,ilu,ileng,ipos LOGICAL :: ladvan LOGICAL :: GOK TYPE(TLFIDATE),DIMENSION(MAXDATES) :: TLFIDATES @@ -964,7 +965,7 @@ END DO INTEGER :: idx, IRESP2 INTEGER(KIND=IDCDF_KIND) :: omode INTEGER(KIND=IDCDF_KIND) :: status - INTEGER(KIND=LFI_INT) :: ilu,iresp + INTEGER(KIND=LFIINT) :: ilu,iresp CALL PRINT_MSG(NVERB_DEBUG,'IO','OPEN_FILES','called') diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90 index 62a02bf94..edb9bf50b 100644 --- a/src/LIB/SURCOUCHE/src/modd_io.f90 +++ b/src/LIB/SURCOUCHE/src/modd_io.f90 @@ -13,6 +13,7 @@ MODULE MODD_IO_ll ! USE MODD_NETCDF, ONLY: IDCDF_KIND, IOCDF, TPTR2DIMCDF USE MODD_PARAMETERS, ONLY: NDIRNAMELGTMAX, NFILENAMELGTMAX +use modd_precision, only: LFIINT ! IMPLICIT NONE ! @@ -92,11 +93,11 @@ TYPE TFILEDATA INTEGER,DIMENSION(3) :: NMNHVERSION = (/0,0,0/) !MesoNH version used to create the file ! ! Fields for LFI files - INTEGER(KIND=LFI_INT) :: NLFININAR = 0 !Number of articles of the LFI file (only accurate if file opened in read mode) - INTEGER(KIND=LFI_INT) :: NLFINPRAR = 0 !Number of predicted articles of the LFI file (non crucial) - INTEGER :: NLFITYPE = -1 !Type of the file (used to generate list of files to transfers) - INTEGER :: NLFIVERB = 1 !LFI verbosity level - INTEGER(KIND=LFI_INT) :: NLFIFLU = -1 !File identifier + INTEGER(KIND=LFIINT) :: NLFININAR = 0 !Number of articles of the LFI file (only accurate if file opened in read mode) + INTEGER(KIND=LFIINT) :: NLFINPRAR = 0 !Number of predicted articles of the LFI file (non crucial) + INTEGER :: NLFITYPE = -1 !Type of the file (used to generate list of files to transfers) + INTEGER :: NLFIVERB = 1 !LFI verbosity level + INTEGER(KIND=LFIINT) :: NLFIFLU = -1 !File identifier ! ! Fields for netCDF files INTEGER(KIND=IDCDF_KIND) :: NNCID = -1 !File identifier diff --git a/src/LIB/SURCOUCHE/src/mode_io_file_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_file_lfi.f90 index b79ff2ec1..7caa2eb48 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_file_lfi.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_file_lfi.f90 @@ -17,7 +17,7 @@ module mode_io_file_lfi use modd_io_ll, only: tfiledata -use modd_netcdf, only: idcdf_kind +use modd_precision, only: LFIINT use mode_msg @@ -44,9 +44,9 @@ subroutine io_create_file_lfi(tpfile, kstatus) character(len=:), allocatable :: yfilem ! name of the file character(len=:), allocatable :: yforstatus ! Status for open of a file (for LFI) ('OLD','NEW','UNKNOWN','SCRATCH','REPLACE') - integer(kind=LFI_INT) :: iresou, inumbr - integer(kind=LFI_INT) :: imelev, inprar - integer(kind=LFI_INT) :: ininar ! Number of articles present in LFI file + integer(kind=LFIINT) :: iresou, inumbr + integer(kind=LFIINT) :: imelev, inprar + integer(kind=LFIINT) :: ininar ! Number of articles present in LFI file logical :: gnewfi logical :: gnamfi, gfater, gstats @@ -91,7 +91,7 @@ subroutine io_close_file_lfi(tpfile, kstatus) character(len=*), parameter :: YSTATUS = 'KEEP' - integer(kind=LFI_INT) :: istatus + integer(kind=LFIINT) :: istatus call print_msg(NVERB_DEBUG,'IO','io_close_file_lfi','called for '//trim(tpfile%cname)) @@ -123,9 +123,9 @@ subroutine io_open_file_lfi(tpfile, kstatus) character(len=:),allocatable :: yfilem ! name of the file character(len=:),allocatable :: yforstatus ! Status for open of a file (for LFI) ('OLD','NEW','UNKNOWN','SCRATCH','REPLACE') integer :: istatus - integer(kind=LFI_INT) :: iresou, inumbr - integer(kind=LFI_INT) :: imelev, inprar - integer(kind=LFI_INT) :: ininar ! Number of articles present in LFI file + integer(kind=LFIINT) :: iresou, inumbr + integer(kind=LFIINT) :: imelev, inprar + integer(kind=LFIINT) :: ininar ! Number of articles present in LFI file logical :: gnewfi logical :: gnamfi, gfater, gstats diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 index 8745773f0..0776549f4 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 @@ -15,6 +15,8 @@ MODULE MODE_IO_MANAGE_STRUCT ! USE MODD_IO_ll +use modd_precision, only: LFIINT +! USE MODE_MSG ! IMPLICIT NONE @@ -645,7 +647,7 @@ CHARACTER(LEN=*), OPTIONAL,INTENT(IN) :: HFORM !Formatted/unformatt CHARACTER(LEN=*), OPTIONAL,INTENT(IN) :: HACCESS !Direct/sequential CHARACTER(LEN=*), OPTIONAL,INTENT(IN) :: HFORMAT !Fileformat (NETCDF4, LFI, LFICDF4...) CHARACTER(LEN=*), OPTIONAL,INTENT(IN) :: HDIRNAME !File directory -INTEGER(KIND=LFI_INT), OPTIONAL,INTENT(IN) :: KLFINPRAR !Number of predicted articles of the LFI file (non crucial) +INTEGER(KIND=LFIINT), OPTIONAL,INTENT(IN) :: KLFINPRAR !Number of predicted articles of the LFI file (non crucial) INTEGER, OPTIONAL,INTENT(IN) :: KLFITYPE !Type of the file (used to generate list of files to transfers) INTEGER, OPTIONAL,INTENT(IN) :: KLFIVERB !LFI verbosity level INTEGER, OPTIONAL,INTENT(IN) :: KRECL !Record length @@ -657,7 +659,7 @@ LOGICAL, OPTIONAL,INTENT(IN) :: OOLD !FALSE if new file ( ! (add it only if not yet present) ! INTEGER :: IMI,IRESP -INTEGER(KIND=LFI_INT) :: ILFINPRAR +INTEGER(KIND=LFIINT) :: ILFINPRAR INTEGER :: ILFITYPE INTEGER :: ILFIVERB LOGICAL :: GOLD diff --git a/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 index 17ec7f6e2..43febde92 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 @@ -12,6 +12,7 @@ module mode_io_read_lfi ! USE MODD_IO_ll USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH +use modd_precision, only: LFIINT ! USE MODE_FIELD, ONLY : TFIELDDATA USE MODE_MSG @@ -53,7 +54,7 @@ INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables ! -INTEGER(KIND=LFI_INT) :: IRESP,ITOTAL +INTEGER(KIND=LFIINT) :: IRESP,ITOTAL INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD @@ -92,7 +93,7 @@ INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables ! -INTEGER(KIND=LFI_INT) :: IRESP,ITOTAL +INTEGER(KIND=LFIINT) :: IRESP,ITOTAL INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD @@ -126,7 +127,7 @@ INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables ! -INTEGER(KIND=LFI_INT) :: IRESP,ITOTAL +INTEGER(KIND=LFIINT) :: IRESP,ITOTAL INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD @@ -160,7 +161,7 @@ INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables ! -INTEGER(KIND=LFI_INT) :: IRESP,ITOTAL +INTEGER(KIND=LFIINT) :: IRESP,ITOTAL INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD @@ -194,7 +195,7 @@ INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occur ! !* 0.2 Declarations of local variables ! -INTEGER(KIND=LFI_INT) :: IRESP,ITOTAL +INTEGER(KIND=LFIINT) :: IRESP,ITOTAL INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD @@ -228,7 +229,7 @@ INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occ ! !* 0.2 Declarations of local variables ! -INTEGER(KIND=LFI_INT) :: IRESP,ITOTAL +INTEGER(KIND=LFIINT) :: IRESP,ITOTAL INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD @@ -262,7 +263,7 @@ INTEGER, INTENT(OUT) :: KRESP ! return-code if problems o ! !* 0.2 Declarations of local variables ! -INTEGER(KIND=LFI_INT) :: IRESP,ITOTAL +INTEGER(KIND=LFIINT) :: IRESP,ITOTAL INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD @@ -296,7 +297,7 @@ INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables ! -INTEGER(KIND=LFI_INT) :: IRESP,ITOTAL +INTEGER(KIND=LFIINT) :: IRESP,ITOTAL INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD @@ -330,7 +331,7 @@ INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables ! -INTEGER(KIND=LFI_INT) :: IRESP,ITOTAL +INTEGER(KIND=LFIINT) :: IRESP,ITOTAL INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD @@ -364,7 +365,7 @@ INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occure ! !* 0.2 Declarations of local variables ! -INTEGER(KIND=LFI_INT) :: IRESP,ITOTAL +INTEGER(KIND=LFIINT) :: IRESP,ITOTAL INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD @@ -398,7 +399,7 @@ INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables ! -INTEGER(KIND=LFI_INT) :: IRESP,ITOTAL +INTEGER(KIND=LFIINT) :: IRESP,ITOTAL INTEGER :: ILENG INTEGER :: IFIELD INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK @@ -445,7 +446,7 @@ INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables ! -INTEGER(KIND=LFI_INT) :: IRESP,ITOTAL +INTEGER(KIND=LFIINT) :: IRESP,ITOTAL INTEGER :: ILENG INTEGER :: JI INTEGER, DIMENSION(SIZE(OFIELD)) :: IFIELD @@ -500,7 +501,7 @@ INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables ! -INTEGER(KIND=LFI_INT) :: IRESP,ITOTAL +INTEGER(KIND=LFIINT) :: IRESP,ITOTAL INTEGER :: ILENG, ILENGMAX, JLOOP INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD @@ -550,7 +551,7 @@ INTEGER, INTENT(OUT) :: KRESP ! return-code if problems occured ! !* 0.2 Declarations of local variables ! -INTEGER(KIND=LFI_INT) :: IRESP, ITOTAL +INTEGER(KIND=LFIINT) :: IRESP, ITOTAL INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD @@ -614,13 +615,13 @@ TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD INTEGER, INTENT(IN) :: KLENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE,INTENT(OUT) :: KWORK -INTEGER(KIND=LFI_INT), INTENT(OUT) :: KTOTAL -INTEGER(KIND=LFI_INT), INTENT(OUT) :: KRESP +INTEGER(KIND=LFIINT), INTENT(OUT) :: KTOTAL +INTEGER(KIND=LFIINT), INTENT(OUT) :: KRESP LOGICAL, INTENT(OUT) :: OGOOD ! INTEGER :: IERRLEVEL,IROW,J INTEGER,DIMENSION(JPXKRK) :: ICOMMENT -INTEGER(KIND=LFI_INT) :: ICOMLEN,INUMBR,IPOSEX +INTEGER(KIND=LFIINT) :: ICOMLEN,INUMBR,IPOSEX CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=12) :: YRECLENGTH_FILE, YRECLENGTH_MEM CHARACTER(LEN=12) :: YVAL_FILE, YVAL_MEM diff --git a/src/LIB/SURCOUCHE/src/mode_io_tools_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_tools_lfi.f90 index a55365550..49631c23d 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_tools_lfi.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_tools_lfi.f90 @@ -8,7 +8,8 @@ !----------------------------------------------------------------- module mode_io_tools_lfi -use modd_io_ll, only: tfiledata +use modd_io_ll, only: tfiledata +use modd_precision, only: LFIINT implicit none @@ -19,9 +20,9 @@ public :: io_prepare_verbosity_lfi contains subroutine io_prepare_verbosity_lfi(tpfile, kmelev, ostats) - type(tfiledata), intent(in) :: tpfile - integer(kind=LFI_INT), intent(out) :: kmelev - logical, intent(out) :: ostats + type(tfiledata), intent(in) :: tpfile + integer(kind=LFIINT), intent(out) :: kmelev + logical, intent(out) :: ostats select case (tpfile%nlfiverb) case(:2) diff --git a/src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90 index 0ec774476..0859de65f 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90 @@ -12,6 +12,7 @@ module mode_io_write_lfi ! USE MODD_IO_ll USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH +use modd_precision, only: LFIINT ! USE MODE_FIELD, ONLY : TFIELDDATA USE MODE_MSG @@ -54,7 +55,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised !* 0.2 Declarations of local variables ! INTEGER :: ILENG -INTEGER(KIND=LFI_INT) :: IRESP, ITOTAL +INTEGER(KIND=LFIINT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! @@ -93,7 +94,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised !* 0.2 Declarations of local variables ! INTEGER :: ILENG -INTEGER(kind=LFI_INT) :: IRESP, ITOTAL +INTEGER(kind=LFIINT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! @@ -140,7 +141,7 @@ INTEGER,OPTIONAL, INTENT(IN) :: KZFILE ! Number of the Z-level splitted !* 0.2 Declarations of local variables ! INTEGER :: ILENG -INTEGER(kind=LFI_INT) :: IRESP, ITOTAL +INTEGER(kind=LFIINT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=4) :: YSUFFIX CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)+4) :: YVARNAME @@ -204,7 +205,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised !* 0.2 Declarations of local variables ! INTEGER :: ILENG -INTEGER(kind=LFI_INT) :: IRESP, ITOTAL +INTEGER(kind=LFIINT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! @@ -249,7 +250,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised !* 0.2 Declarations of local variables ! INTEGER :: ILENG -INTEGER(kind=LFI_INT) :: IRESP, ITOTAL +INTEGER(kind=LFIINT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! @@ -294,7 +295,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised !* 0.2 Declarations of local variables ! INTEGER :: ILENG -INTEGER(kind=LFI_INT) :: IRESP, ITOTAL +INTEGER(kind=LFIINT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! @@ -339,7 +340,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems arais !* 0.2 Declarations of local variables ! INTEGER :: ILENG -INTEGER(kind=LFI_INT) :: IRESP, ITOTAL +INTEGER(kind=LFIINT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! @@ -384,7 +385,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised !* 0.2 Declarations of local variables ! INTEGER :: ILENG -INTEGER(kind=LFI_INT) :: IRESP, ITOTAL +INTEGER(kind=LFIINT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! @@ -423,7 +424,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised !* 0.2 Declarations of local variables ! INTEGER :: ILENG -INTEGER(kind=LFI_INT) :: IRESP, ITOTAL +INTEGER(kind=LFIINT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! @@ -468,7 +469,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised !* 0.2 Declarations of local variables ! INTEGER :: ILENG -INTEGER(kind=LFI_INT) :: IRESP, ITOTAL +INTEGER(kind=LFIINT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! @@ -513,7 +514,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised !* 0.2 Declarations of local variables ! INTEGER :: ILENG -INTEGER(kind=LFI_INT) :: IRESP, ITOTAL +INTEGER(kind=LFIINT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! @@ -559,7 +560,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised ! INTEGER :: IFIELD INTEGER :: ILENG -INTEGER(kind=LFI_INT) :: IRESP, ITOTAL +INTEGER(kind=LFIINT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! @@ -606,7 +607,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised ! INTEGER, DIMENSION(SIZE(OFIELD)) :: IFIELD INTEGER :: ILENG -INTEGER(kind=LFI_INT) :: IRESP, ITOTAL +INTEGER(kind=LFIINT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! @@ -660,7 +661,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised !* 0.2 Declarations of local variables ! INTEGER :: ILENG, ILENGMAX, JLOOP -INTEGER(kind=LFI_INT) :: IRESP, ITOTAL +INTEGER(kind=LFIINT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! @@ -718,7 +719,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised !* 0.2 Declarations of local variables ! INTEGER :: ILENG -INTEGER(kind=LFI_INT) :: IRESP, ITOTAL +INTEGER(kind=LFIINT) :: IRESP, ITOTAL TYPE(TFIELDDATA) :: TZFIELD INTEGER, DIMENSION(3) :: ITDATE ! date array INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK @@ -783,8 +784,8 @@ SUBROUTINE WRITE_PREPARE(TPFIELD,KLENG,KWORK,KTOTAL,KRESP) TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD INTEGER, INTENT(IN) :: KLENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE,INTENT(INOUT) :: KWORK -INTEGER(kind=LFI_INT), INTENT(OUT) :: KTOTAL -INTEGER(kind=LFI_INT), INTENT(OUT) :: KRESP +INTEGER(kind=LFIINT), INTENT(OUT) :: KTOTAL +INTEGER(kind=LFIINT), INTENT(OUT) :: KRESP ! INTEGER :: ICOMLEN INTEGER :: J diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90 index 79bc2c74b..06488a688 100644 --- a/src/MNH/diag.f90 +++ b/src/MNH/diag.f90 @@ -124,6 +124,7 @@ USE MODD_PARAM_LIMA, ONLY: LLIMA_DIAG USE MODD_PARAM_MFSHALL_n USE MODD_PARAM_n USE MODD_PARAM_RAD_n +use modd_precision, only: LFIINT USE MODD_PROFILER_n USE MODD_RADAR USE MODD_RADIATIONS_n @@ -187,7 +188,7 @@ INTEGER :: ILUOUT0 ! Logical unit number for the output listing REAL*8,DIMENSION(2) :: ZTIME0,ZTIME1,ZTIME2,ZRAD,ZDCONV,ZSHADOWS,ZGROUND, & ZTRACER,ZDRAG,ZTURB,ZMAFL,ZCHEM,ZTIME_BU ! CPU time REAL*8,DIMENSION(2) :: ZSTART,ZINIT,ZWRIT,ZBALL,ZPHYS,ZSURF,ZWRITS,ZTRAJ ! storing variables -INTEGER(KIND=LFI_INT) :: INPRAR ! number of articles predicted in the LFIFM file +INTEGER(KIND=LFIINT) :: INPRAR ! number of articles predicted in the LFIFM file LOGICAL :: GCLOSE_OUT = .FALSE. ! conditional closure of the OUTPUT FM-file INTEGER :: ISTEPBAL ! loop indice for balloons and aircraft INTEGER :: ILUNAM ! Logical unit numbers for the namelist file diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index dd7d2119f..e2f55f5bb 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -368,6 +368,7 @@ USE MODD_PASPOL_n USE MODD_DRAG_n USE MODD_BLOWSNOW USE MODD_BLOWSNOW_n +use modd_precision, only: LFIINT ! ! USE MODI_INI_BUDGET @@ -1671,9 +1672,9 @@ IF (KMI == 1) THEN DO IMI = 1 , NMODEL WRITE(IO_SURF_MNH_MODEL(IMI)%COUTFILE,'(A,".",I1,".",A)') CEXP,IMI,TRIM(ADJUSTL(CSEG)) WRITE(YNAME, '(A,".",I1,".",A)') CEXP,IMI,TRIM(ADJUSTL(CSEG))//'.000' - CALL IO_FILE_ADD2LIST(LUNIT_MODEL(IMI)%TDIAFILE,YNAME,'DIACHRONIC','WRITE', & - HDIRNAME=CIO_DIR, & - KLFINPRAR=INT(50,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=NVERB, & + CALL IO_FILE_ADD2LIST(LUNIT_MODEL(IMI)%TDIAFILE,YNAME,'DIACHRONIC','WRITE', & + HDIRNAME=CIO_DIR, & + KLFINPRAR=INT(50,KIND=LFIINT),KLFITYPE=1,KLFIVERB=NVERB, & TPDADFILE=LUNIT_MODEL(NDAD(IMI))%TDIAFILE ) END DO ! diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index eb97a9091..3faed5ea6 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -349,6 +349,7 @@ USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG,TFILE_DUMMY,TFILE_OUTPUTLISTING USE MODD_CONF_n USE MODD_NSV, ONLY : NSV,NSV_CHEM, & NSV_DSTEND, NSV_DSTBEG +use modd_precision, only: LFIINT ! USE MODN_BLANK ! @@ -447,7 +448,7 @@ INTEGER :: NLUPRE,NLUOUT ! Logical unit numbers for EXPRE file ! and for output_listing file INTEGER :: NRESP ! return code in FM routines INTEGER :: NTYPE ! type of file (cpio or not) -INTEGER(KIND=LFI_INT) :: NNPRAR ! number of articles predicted in the LFIFM file +INTEGER(KIND=LFIINT) :: NNPRAR ! number of articles predicted in the LFIFM file LOGICAL :: GFOUND ! Return code when searching namelist ! INTEGER :: JLOOP,JILOOP,JJLOOP ! Loop indexes diff --git a/src/MNH/prep_pgd.f90 b/src/MNH/prep_pgd.f90 index d7b5899bc..77e99ac03 100644 --- a/src/MNH/prep_pgd.f90 +++ b/src/MNH/prep_pgd.f90 @@ -84,6 +84,7 @@ USE MODD_CONF_n,ONLY : CSTORAGE_TYPE USE MODD_LUNIT, ONLY : CLUOUT0,TLUOUT0 USE MODD_LUNIT_n,ONLY : LUNIT_MODEL USE MODD_PARAMETERS, ONLY : XUNDEF +use modd_precision, only: LFIINT USE MODD_IO_ll, ONLY : NIO_VERB,NVERB_DEBUG,TFILEDATA,TFILE_OUTPUTLISTING,TFILE_SURFEX USE MODD_IO_SURF_MNH, ONLY : NHALO USE MODD_SPAWN, ONLY : NDXRATIO,NDYRATIO,NXSIZE,NYSIZE,NXOR,NYOR @@ -244,7 +245,7 @@ CALL PGD_SURF_ATM(YSURF_CUR,'MESONH',' ',' ',.FA !* 3. Writes the physiographic fields ! ------------------------------- ! -CALL IO_FILE_ADD2LIST(TZFILE,CPGDFILE,'PREPPGD','WRITE',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=5) +CALL IO_FILE_ADD2LIST(TZFILE,CPGDFILE,'PREPPGD','WRITE',KLFINPRAR=INT(1,KIND=LFIINT),KLFITYPE=1,KLFIVERB=5) ! CALL IO_FILE_OPEN_ll(TZFILE,OPARALLELIO=.FALSE.) ! diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90 index 9a4a7eca0..02a6f8a47 100644 --- a/src/MNH/spawn_model2.f90 +++ b/src/MNH/spawn_model2.f90 @@ -287,6 +287,7 @@ USE MODD_PASPOL, ONLY : LPASPOL ! USE MODD_MPIF USE MODD_VAR_ll +use modd_precision, only: LFIINT ! IMPLICIT NONE ! @@ -314,7 +315,7 @@ LOGICAL, INTENT(IN) :: OSPAWN_SURF ! flag to spawn surface fields ! ! INTEGER :: ILUOUT ! Logical unit number for the output listing -INTEGER(KIND=LFI_INT) :: INPRAR ! Number of articles predicted in the LFIFM file +INTEGER(KIND=LFIINT) :: INPRAR ! Number of articles predicted in the LFIFM file ! ! INTEGER :: IIU ! Upper dimension in x direction diff --git a/src/MNH/zoom_pgd.f90 b/src/MNH/zoom_pgd.f90 index af620d5b8..638c380a4 100644 --- a/src/MNH/zoom_pgd.f90 +++ b/src/MNH/zoom_pgd.f90 @@ -53,6 +53,7 @@ USE MODD_PARAMETERS, ONLY : XUNDEF, NUNDEF, JPVEXT, JPHEXT, JPMODELMAX USE MODD_PARAM_n, ONLY : CSURF USE MODD_DIM_n, ONLY : NIMAX, NJMAX USE MODD_CONF_n, ONLY : CSTORAGE_TYPE +use modd_precision, only: LFIINT ! USE MODE_POS USE MODE_FM @@ -148,7 +149,7 @@ CALL SET_CONFIO_ll() !* 2.1 Open PGD file ! ------------- ! -CALL IO_FILE_ADD2LIST(TZPGDFILE,TRIM(CPGDFILE),'UNKNOWN','READ',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=2,KLFIVERB=5) +CALL IO_FILE_ADD2LIST(TZPGDFILE,TRIM(CPGDFILE),'UNKNOWN','READ',KLFINPRAR=INT(1,KIND=LFIINT),KLFITYPE=2,KLFIVERB=5) CALL IO_FILE_OPEN_ll(TZPGDFILE) ! !* 2.2 Reading of initial grid @@ -194,7 +195,7 @@ IF ( (LEN_TRIM(YZOOMFILE) == 0) .OR. (ADJUSTL(YZOOMFILE) == ADJUSTL(CPGDFILE)) ) YZOOMFILE=ADJUSTL(ADJUSTR(CPGDFILE)//'.z'//ADJUSTL(YZOOMNBR)) END IF ! -CALL IO_FILE_ADD2LIST(TZZOOMFILE,TRIM(YZOOMFILE),'ZOOMPGD','WRITE',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=5) +CALL IO_FILE_ADD2LIST(TZZOOMFILE,TRIM(YZOOMFILE),'ZOOMPGD','WRITE',KLFINPRAR=INT(1,KIND=LFIINT),KLFITYPE=1,KLFIVERB=5) !PW: TODO: points to dad file (if existing) ! TZZOOMFILE%TDADFILE => ! CALL IO_FILE_OPEN_ll(TZZOOMFILE) -- GitLab From 76f30e0cab25ffed9e4c304a3067745f48906283 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 15 Mar 2019 15:38:22 +0100 Subject: [PATCH 099/139] Philippe 15/03/2019: rename IDCDF_KIND by CDFINT --- LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 | 26 +- src/LIB/SURCOUCHE/src/modd_io.f90 | 16 +- src/LIB/SURCOUCHE/src/modd_netcdf.f90 | 13 +- src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 | 28 +- src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 | 250 +++++++------- src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 | 45 +-- src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 | 347 ++++++++++---------- src/MNH/read_chem_data_netcdf_case.f90 | 18 +- 8 files changed, 373 insertions(+), 370 deletions(-) diff --git a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 index f577d4bb4..11ad357f0 100644 --- a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 +++ b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 @@ -5,7 +5,7 @@ !----------------------------------------------------------------- MODULE mode_util USE MODD_IO_ll, ONLY: TFILE_ELT - USE MODD_NETCDF, ONLY: DIMCDF, IDCDF_KIND + USE MODD_NETCDF, ONLY: DIMCDF, CDFINT USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH, NMNHNAMELGTMAX use modd_precision, only: LFIINT @@ -83,9 +83,9 @@ CONTAINS INTEGER :: leng INTEGER :: IID, IRESP, IDATES, ICURDATE INTEGER :: IDXDATE, IDXTIME - INTEGER(KIND=IDCDF_KIND) :: kcdf_id, kcdf_id2, var_id - INTEGER(KIND=IDCDF_KIND) :: status INTEGER(KIND=LFIINT) :: iresp2,ilu,ileng,ipos + INTEGER(KIND=CDFINT) :: kcdf_id, kcdf_id2, var_id + INTEGER(KIND=CDFINT) :: status LOGICAL :: ladvan LOGICAL :: GOK TYPE(TLFIDATE),DIMENSION(MAXDATES) :: TLFIDATES @@ -632,8 +632,8 @@ END DO CHARACTER(LEN=16) :: YMNHVERSION CHARACTER(LEN=:),ALLOCATABLE :: YHISTORY INTEGER :: ilen, ji - INTEGER(KIND=IDCDF_KIND) :: status - INTEGER(KIND=IDCDF_KIND) :: kcdf_id + INTEGER(KIND=CDFINT) :: status + INTEGER(KIND=CDFINT) :: kcdf_id CALL PRINT_MSG(NVERB_DEBUG,'IO','def_ncdf','called') @@ -686,7 +686,7 @@ END DO INTEGER :: IDIMS INTEGER :: INSRC INTEGER :: ISRC - INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IDIMLEN + INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IDIMLEN logical,dimension(knaf) :: gtimedep_in, gtimedep_out CHARACTER(LEN=:), ALLOCATABLE :: YTAB0D @@ -962,9 +962,9 @@ END DO TYPE(option),DIMENSION(:), INTENT(IN) :: options INTEGER, INTENT(IN) :: runmode - INTEGER :: idx, IRESP2 - INTEGER(KIND=IDCDF_KIND) :: omode - INTEGER(KIND=IDCDF_KIND) :: status + INTEGER :: idx, IRESP2 + INTEGER(KIND=CDFINT) :: omode + INTEGER(KIND=CDFINT) :: status INTEGER(KIND=LFIINT) :: ilu,iresp @@ -1115,8 +1115,8 @@ END DO CHARACTER(LEN=NMNHNAMELGTMAX),DIMENSION(nbvar) :: YVARS INTEGER :: ji INTEGER :: idx1, idx2 - INTEGER(KIND=IDCDF_KIND) :: status - INTEGER(KIND=IDCDF_KIND) :: omode + INTEGER(KIND=CDFINT) :: status + INTEGER(KIND=CDFINT) :: omode CALL PRINT_MSG(NVERB_DEBUG,'IO','OPEN_SPLIT_NCFILES_OUT','called') @@ -1193,8 +1193,8 @@ END DO INTEGER :: ILENG INTEGER :: JDIM - INTEGER(KIND=IDCDF_KIND) :: ISTATUS - INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IDIMS_ID + INTEGER(KIND=CDFINT) :: ISTATUS + INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IDIMS_ID CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_GET_METADATA_NC4','called') diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90 index edb9bf50b..7ca303c91 100644 --- a/src/LIB/SURCOUCHE/src/modd_io.f90 +++ b/src/LIB/SURCOUCHE/src/modd_io.f90 @@ -11,9 +11,9 @@ MODULE MODD_IO_ll ! -USE MODD_NETCDF, ONLY: IDCDF_KIND, IOCDF, TPTR2DIMCDF +USE MODD_NETCDF, ONLY: IOCDF, TPTR2DIMCDF USE MODD_PARAMETERS, ONLY: NDIRNAMELGTMAX, NFILENAMELGTMAX -use modd_precision, only: LFIINT +use modd_precision, only: CDFINT, LFIINT ! IMPLICIT NONE ! @@ -100,13 +100,13 @@ TYPE TFILEDATA INTEGER(KIND=LFIINT) :: NLFIFLU = -1 !File identifier ! ! Fields for netCDF files - INTEGER(KIND=IDCDF_KIND) :: NNCID = -1 !File identifier - INTEGER(KIND=IDCDF_KIND) :: NNCNAR = 0 !Number of articles of the netCDF file (only accurate if file opened in read mode) - LOGICAL :: LNCREDUCE_FLOAT_PRECISION = .FALSE. ! Reduce the precision of floats to single precision + INTEGER(KIND=CDFINT) :: NNCID = -1 !File identifier + INTEGER(KIND=CDFINT) :: NNCNAR = 0 !Number of articles of the netCDF file (only accurate if file opened in read mode) + LOGICAL :: LNCREDUCE_FLOAT_PRECISION = .FALSE. ! Reduce the precision of floats to single precision ! instead of double precision - LOGICAL :: LNCCOMPRESS = .FALSE. ! Do compression on fields - INTEGER(KIND=IDCDF_KIND) :: NNCCOMPRESS_LEVEL = 0 ! Compression level - TYPE(IOCDF),POINTER :: TNCDIMS => NULL() ! Structure containing netCDF dimensions + LOGICAL :: LNCCOMPRESS = .FALSE. ! Do compression on fields + INTEGER(KIND=CDFINT) :: NNCCOMPRESS_LEVEL = 0 ! Compression level + TYPE(IOCDF),POINTER :: TNCDIMS => NULL() ! Structure containing netCDF dimensions TYPE(TPTR2DIMCDF),DIMENSION(:,:),ALLOCATABLE :: TNCCOORDS ! Structure pointing to the coordinates variables ! !Fields for other files diff --git a/src/LIB/SURCOUCHE/src/modd_netcdf.f90 b/src/LIB/SURCOUCHE/src/modd_netcdf.f90 index 24541396d..b73380b56 100644 --- a/src/LIB/SURCOUCHE/src/modd_netcdf.f90 +++ b/src/LIB/SURCOUCHE/src/modd_netcdf.f90 @@ -7,9 +7,10 @@ ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !----------------------------------------------------------------- MODULE MODD_NETCDF -IMPLICIT NONE -INTEGER,PARAMETER :: IDCDF_KIND = SELECTED_INT_KIND(8) +use modd_precision, only: CDFINT + +IMPLICIT NONE TYPE IOCDF TYPE(DIMCDF), POINTER :: DIM_NI => NULL() @@ -26,10 +27,10 @@ TYPE IOCDF END TYPE IOCDF TYPE DIMCDF - CHARACTER(LEN=32) :: NAME = '' - INTEGER(KIND=IDCDF_KIND) :: LEN = 0 - INTEGER(KIND=IDCDF_KIND) :: ID = -1 - TYPE(DIMCDF), POINTER :: NEXT => NULL() + CHARACTER(LEN=32) :: NAME = '' + INTEGER(KIND=CDFINT) :: LEN = 0 + INTEGER(KIND=CDFINT) :: ID = -1 + TYPE(DIMCDF), POINTER :: NEXT => NULL() END TYPE DIMCDF TYPE TPTR2DIMCDF diff --git a/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 index 34b375157..6f605e364 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 @@ -18,15 +18,15 @@ #if defined(MNH_IOCDF4) module mode_io_file_nc4 -use modd_io_ll, only: tfiledata -use modd_netcdf, only: IDCDF_KIND +use modd_io_ll, only: tfiledata +use modd_precision, only: CDFINT use mode_io_tools_nc4, only: io_handle_err_nc4, io_set_knowndims_nc4, newiocdf use mode_msg -use NETCDF, only: NF90_CLOBBER, NF90_GLOBAL, NF90_NETCDF4, NF90_NOERR, NF90_NOWRITE, & - NF90_CLOSE, NF90_CREATE, NF90_GET_ATT, NF90_INQUIRE, NF90_INQUIRE_ATTRIBUTE, & - NF90_OPEN, NF90_PUT_ATT, NF90_STRERROR +use NETCDF, only: NF90_CLOBBER, NF90_GLOBAL, NF90_NETCDF4, NF90_NOERR, NF90_NOWRITE, & + NF90_CLOSE, NF90_CREATE, NF90_GET_ATT, NF90_INQUIRE, NF90_INQUIRE_ATTRIBUTE, & + NF90_OPEN, NF90_PUT_ATT, NF90_STRERROR implicit none @@ -44,7 +44,7 @@ subroutine io_create_file_nc4(tpfile,hprogram_orig) character(len=*),optional, intent(in) :: hprogram_orig !to emulate a file coming from this program character(len=:),allocatable :: yfilem ! name of the file - integer(kind=IDCDF_KIND) :: istatus + integer(kind=CDFINT) :: istatus call print_msg(NVERB_DEBUG,'IO','io_create_file_nc4','called for '//trim(tpfile%cname)) @@ -66,10 +66,10 @@ end subroutine io_create_file_nc4 subroutine io_close_file_nc4(tpfile,kstatus) use mode_io_tools_nc4, only: cleaniocdf - type(tfiledata), intent(inout) :: tpfile - integer(kind=IDCDF_KIND), optional, intent(out) :: kstatus + type(tfiledata), intent(inout) :: tpfile + integer(kind=CDFINT), optional, intent(out) :: kstatus - integer(kind=IDCDF_KIND) :: istatus + integer(kind=CDFINT) :: istatus call print_msg(NVERB_DEBUG,'IO','io_close_file_nc4','called for '//trim(tpfile%cname)) @@ -100,7 +100,7 @@ subroutine io_open_file_nc4(tpfile) type(tfiledata), intent(inout) :: tpfile character(len=:),allocatable :: yfilem ! name of the file - integer(kind=IDCDF_KIND) :: istatus + integer(kind=CDFINT) :: istatus call print_msg(NVERB_DEBUG,'IO','io_open_file_nc4','called for '//trim(tpfile%cname)) @@ -131,8 +131,8 @@ subroutine io_check_cleanly_closed_nc4(tpfile) type(tfiledata), intent(in) :: tpfile character(len=:), allocatable :: yclean - integer(kind=IDCDF_KIND) :: ilen, istatus - integer, dimension(3) :: imnhversion + integer(kind=CDFINT) :: ilen, istatus + integer, dimension(3) :: imnhversion call print_msg(NVERB_DEBUG,'IO','io_check_cleanly_closed_nc4','called for '//trim(tpfile%cname)) @@ -174,7 +174,7 @@ end subroutine io_check_cleanly_closed_nc4 subroutine io_set_cleanly_closed_nc4(tpfile) type(tfiledata), intent(in) :: tpfile - integer(kind=IDCDF_KIND) :: istatus + integer(kind=CDFINT) :: istatus call print_msg(NVERB_DEBUG,'IO','io_set_cleanly_closed_nc4','called for '//trim(tpfile%cname)) @@ -186,7 +186,7 @@ end subroutine io_set_cleanly_closed_nc4 subroutine io_set_not_cleanly_closed_nc4(tpfile) type(tfiledata), intent(in) :: tpfile - integer(kind=IDCDF_KIND) :: istatus + integer(kind=CDFINT) :: istatus call print_msg(NVERB_DEBUG,'IO','io_set_not_cleanly_closed_nc4','called for '//trim(tpfile%cname)) diff --git a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 index dbaf49d89..fbc6e4283 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 @@ -15,7 +15,7 @@ module mode_io_read_nc4 use modd_io_ll, only: tfiledata -use modd_netcdf, only: IDCDF_KIND +use modd_precision, only: CDFINT use mode_field, only: tfielddata use mode_io_tools_nc4, only: cleanmnhname, io_handle_err_nc4 @@ -52,15 +52,15 @@ USE MODD_PARAMETERS, ONLY: NGRIDUNKNOWN ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD -INTEGER(KIND=IDCDF_KIND), INTENT(IN) :: KVARID +INTEGER(KIND=CDFINT), INTENT(IN) :: KVARID INTEGER, INTENT(OUT) :: KRESP ! return-code CHARACTER(LEN=*),OPTIONAL,INTENT(IN) :: HCALENDAR ! INTEGER :: IERRLEVEL INTEGER :: ILEN INTEGER :: IGRID -INTEGER(KIND=IDCDF_KIND) :: INCID -INTEGER(KIND=IDCDF_KIND) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: STATUS CHARACTER(LEN=12) :: YVAL_FILE, YVAL_MEM CHARACTER(LEN=:),ALLOCATABLE :: YVALUE LOGICAL :: GOLDMNH !if old version of MesoNH (<5.4, old files without complete and correct metadata) @@ -262,13 +262,13 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL, INTENT(INOUT) :: PFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND) :: ITYPE ! variable type -INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions -CHARACTER(LEN=30) :: YVARNAME -INTEGER :: IRESP +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT) :: ITYPE ! variable type +INTEGER(KIND=CDFINT) :: IDIMS ! number of dimensions +CHARACTER(LEN=30) :: YVARNAME +INTEGER :: IRESP CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) @@ -317,15 +317,15 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:),INTENT(INOUT) :: PFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND) :: ITYPE ! variable type -INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions -INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS -CHARACTER(LEN=30) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IDIMLEN -INTEGER :: IRESP +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT) :: ITYPE ! variable type +INTEGER(KIND=CDFINT) :: IDIMS ! number of dimensions +INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS +CHARACTER(LEN=30) :: YVARNAME +INTEGER(KIND=CDFINT) :: IDIMLEN +INTEGER :: IRESP CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) @@ -384,15 +384,15 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:,:),INTENT(INOUT) :: PFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND) :: ITYPE ! variable type -INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions -INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS -CHARACTER(LEN=30) :: YVARNAME -INTEGER(KIND=IDCDF_KIND),DIMENSION(3) :: IDIMLEN -INTEGER :: IRESP +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT) :: ITYPE ! variable type +INTEGER(KIND=CDFINT) :: IDIMS ! number of dimensions +INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS +CHARACTER(LEN=30) :: YVARNAME +INTEGER(KIND=CDFINT),DIMENSION(3) :: IDIMLEN +INTEGER :: IRESP CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) @@ -466,15 +466,15 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:,:,:),INTENT(INOUT) :: PFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND) :: ITYPE ! variable type -INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions -INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS -INTEGER(KIND=IDCDF_KIND),DIMENSION(3) :: IDIMLEN -CHARACTER(LEN=30) :: YVARNAME -INTEGER :: IRESP +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT) :: ITYPE ! variable type +INTEGER(KIND=CDFINT) :: IDIMS ! number of dimensions +INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS +INTEGER(KIND=CDFINT),DIMENSION(3) :: IDIMLEN +CHARACTER(LEN=30) :: YVARNAME +INTEGER :: IRESP CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) @@ -537,15 +537,15 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:,:,:,:),INTENT(INOUT) :: PFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND) :: ITYPE ! variable type -INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions -INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS -INTEGER(KIND=IDCDF_KIND),DIMENSION(4) :: IDIMLEN -CHARACTER(LEN=30) :: YVARNAME -INTEGER :: IRESP +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT) :: ITYPE ! variable type +INTEGER(KIND=CDFINT) :: IDIMS ! number of dimensions +INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS +INTEGER(KIND=CDFINT),DIMENSION(4) :: IDIMLEN +CHARACTER(LEN=30) :: YVARNAME +INTEGER :: IRESP CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) @@ -611,15 +611,15 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:,:,:,:,:),INTENT(INOUT) :: PFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND) :: ITYPE ! variable type -INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions -INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS -INTEGER(KIND=IDCDF_KIND),DIMENSION(5) :: IDIMLEN -CHARACTER(LEN=30) :: YVARNAME -INTEGER :: IRESP +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT) :: ITYPE ! variable type +INTEGER(KIND=CDFINT) :: IDIMS ! number of dimensions +INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS +INTEGER(KIND=CDFINT),DIMENSION(5) :: IDIMLEN +CHARACTER(LEN=30) :: YVARNAME +INTEGER :: IRESP CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) @@ -688,15 +688,15 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:,:,:,:,:,:),INTENT(INOUT) :: PFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND) :: ITYPE ! variable type -INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions -INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS -INTEGER(KIND=IDCDF_KIND),DIMENSION(6) :: IDIMLEN -CHARACTER(LEN=30) :: YVARNAME -INTEGER :: IRESP +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT) :: ITYPE ! variable type +INTEGER(KIND=CDFINT) :: IDIMS ! number of dimensions +INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS +INTEGER(KIND=CDFINT),DIMENSION(6) :: IDIMLEN +CHARACTER(LEN=30) :: YVARNAME +INTEGER :: IRESP CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) @@ -767,13 +767,13 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD INTEGER, INTENT(INOUT) :: KFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND) :: ITYPE ! variable type -INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions -CHARACTER(LEN=30) :: YVARNAME -INTEGER :: IRESP +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT) :: ITYPE ! variable type +INTEGER(KIND=CDFINT) :: IDIMS ! number of dimensions +CHARACTER(LEN=30) :: YVARNAME +INTEGER :: IRESP CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) @@ -823,15 +823,15 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD INTEGER, DIMENSION(:), INTENT(INOUT) :: KFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND) :: ITYPE ! variable type -INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions -INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS -CHARACTER(LEN=30) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IDIMLEN -INTEGER :: IRESP +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT) :: ITYPE ! variable type +INTEGER(KIND=CDFINT) :: IDIMS ! number of dimensions +INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS +CHARACTER(LEN=30) :: YVARNAME +INTEGER(KIND=CDFINT) :: IDIMLEN +INTEGER :: IRESP CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) @@ -891,15 +891,15 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD INTEGER, DIMENSION(:,:), INTENT(INOUT) :: KFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND) :: ITYPE ! variable type -INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions -INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS -CHARACTER(LEN=30) :: YVARNAME -INTEGER(KIND=IDCDF_KIND),DIMENSION(3) :: IDIMLEN -INTEGER :: IRESP +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT) :: ITYPE ! variable type +INTEGER(KIND=CDFINT) :: IDIMS ! number of dimensions +INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS +CHARACTER(LEN=30) :: YVARNAME +INTEGER(KIND=CDFINT),DIMENSION(3) :: IDIMLEN +INTEGER :: IRESP CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) @@ -973,14 +973,14 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD LOGICAL, INTENT(INOUT) :: OFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND) :: ITYPE ! variable type -INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions -CHARACTER(LEN=30) :: YVARNAME -INTEGER :: IRESP -INTEGER :: IFIELD +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT) :: ITYPE ! variable type +INTEGER(KIND=CDFINT) :: IDIMS ! number of dimensions +CHARACTER(LEN=30) :: YVARNAME +INTEGER :: IRESP +INTEGER :: IFIELD CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) @@ -1043,17 +1043,17 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD LOGICAL,DIMENSION(:),INTENT(INOUT) :: OFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND) :: ITYPE ! variable type -INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions -INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS -INTEGER(KIND=IDCDF_KIND) :: IDIMLEN -CHARACTER(LEN=30) :: YVARNAME -INTEGER :: IRESP -INTEGER :: JI -INTEGER,DIMENSION(SIZE(OFIELD)) :: IFIELD +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT) :: ITYPE ! variable type +INTEGER(KIND=CDFINT) :: IDIMS ! number of dimensions +INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS +INTEGER(KIND=CDFINT) :: IDIMLEN +CHARACTER(LEN=30) :: YVARNAME +INTEGER :: IRESP +INTEGER :: JI +INTEGER,DIMENSION(SIZE(OFIELD)) :: IFIELD CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) @@ -1130,16 +1130,16 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD CHARACTER(LEN=*), INTENT(INOUT) :: HFIELD INTEGER, INTENT(OUT) :: KRESP ! return-code -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND) :: ITYPE ! variable type -INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions -INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS -CHARACTER(LEN=30) :: YVARNAME -CHARACTER(LEN=:),ALLOCATABLE :: YSTR -INTEGER(KIND=IDCDF_KIND) :: IDIMLEN -INTEGER :: IRESP +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT) :: ITYPE ! variable type +INTEGER(KIND=CDFINT) :: IDIMS ! number of dimensions +INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS +CHARACTER(LEN=30) :: YVARNAME +CHARACTER(LEN=:),ALLOCATABLE :: YSTR +INTEGER(KIND=CDFINT) :: IDIMLEN +INTEGER :: IRESP CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) @@ -1199,14 +1199,14 @@ TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD TYPE (DATE_TIME), INTENT(INOUT) :: TPDATA INTEGER, INTENT(OUT) :: KRESP ! return-code -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND) :: ITYPE ! variable type -INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT) :: ITYPE ! variable type +INTEGER(KIND=CDFINT) :: IDIMS ! number of dimensions CHARACTER(LEN=30) :: YVARNAME CHARACTER(LEN=:),ALLOCATABLE :: YSTR -INTEGER(KIND=IDCDF_KIND) :: IDIMLEN +INTEGER(KIND=CDFINT) :: IDIMLEN INTEGER :: IDX,IRESP CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) diff --git a/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 index b66011fac..81f32ccce 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 @@ -13,8 +13,9 @@ #if defined(MNH_IOCDF4) module mode_io_tools_nc4 -use modd_io_ll, only: tfiledata -use modd_netcdf, only: dimcdf, IDCDF_KIND, iocdf, tdim_dummy +use modd_io_ll, only: tfiledata +use modd_netcdf, only: dimcdf, iocdf, tdim_dummy +use modd_precision, only: CDFINT use mode_field, only: tfielddata use mode_msg @@ -327,7 +328,7 @@ END SUBROUTINE IO_SET_KNOWNDIMS_NC4 SUBROUTINE CLEANIOCDF(PIOCDF) TYPE(IOCDF), POINTER :: PIOCDF -INTEGER(KIND=IDCDF_KIND) :: IRESP +INTEGER(KIND=CDFINT) :: IRESP CALL PRINT_MSG(NVERB_DEBUG,'IO','CLEANIOCDF','called') @@ -355,10 +356,10 @@ END SUBROUTINE CLEANIOCDF SUBROUTINE FILLVDIMS(TPFILE, TPFIELD, KSHAPE, KVDIMS) -TYPE(TFILEDATA), INTENT(IN) :: TPFILE -TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -INTEGER(KIND=IDCDF_KIND),DIMENSION(:),INTENT(IN) :: KSHAPE -INTEGER(KIND=IDCDF_KIND),DIMENSION(:),ALLOCATABLE,INTENT(OUT) :: KVDIMS +TYPE(TFILEDATA), INTENT(IN) :: TPFILE +TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD +INTEGER(KIND=CDFINT),DIMENSION(:), INTENT(IN) :: KSHAPE +INTEGER(KIND=CDFINT),DIMENSION(:),ALLOCATABLE,INTENT(OUT) :: KVDIMS ! INTEGER :: IGRID INTEGER :: JI @@ -428,9 +429,9 @@ END SUBROUTINE FILLVDIMS FUNCTION GETDIMCDF(TPFILE, KLEN, HDIMNAME) -TYPE(TFILEDATA), INTENT(IN) :: TPFILE -INTEGER(KIND=IDCDF_KIND),INTENT(IN) :: KLEN -CHARACTER(LEN=*), OPTIONAL :: HDIMNAME ! When provided don't search but +TYPE(TFILEDATA), INTENT(IN) :: TPFILE +INTEGER(KIND=CDFINT), INTENT(IN) :: KLEN +CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HDIMNAME ! When provided don't search but ! simply create with name HDIMNAME TYPE(DIMCDF), POINTER :: GETDIMCDF @@ -438,9 +439,9 @@ TYPE(DIMCDF), POINTER :: TMP INTEGER :: COUNT CHARACTER(LEN=16) :: YSUFFIX CHARACTER(LEN=20) :: YDIMNAME -INTEGER(KIND=IDCDF_KIND) :: STATUS -LOGICAL :: GCHKLEN !Check if KLEN is valid -TYPE(IOCDF), POINTER :: PIOCDF +INTEGER(KIND=CDFINT) :: STATUS +LOGICAL :: GCHKLEN !Check if KLEN is valid +TYPE(IOCDF), POINTER :: PIOCDF CALL PRINT_MSG(NVERB_DEBUG,'IO','GETDIMCDF','called') @@ -494,14 +495,14 @@ END FUNCTION GETDIMCDF FUNCTION GETSTRDIMID(TPFILE,KLEN) -TYPE(TFILEDATA), INTENT(IN) :: TPFILE -INTEGER(KIND=IDCDF_KIND),INTENT(IN) :: KLEN -INTEGER(KIND=IDCDF_KIND) :: GETSTRDIMID +TYPE(TFILEDATA), INTENT(IN) :: TPFILE +INTEGER(KIND=CDFINT), INTENT(IN) :: KLEN +INTEGER(KIND=CDFINT) :: GETSTRDIMID TYPE(DIMCDF), POINTER :: TMP TYPE(IOCDF), POINTER :: TZIOCDF CHARACTER(LEN=16) :: YSUFFIX -INTEGER(KIND=IDCDF_KIND) :: STATUS +INTEGER(KIND=CDFINT) :: STATUS CALL PRINT_MSG(NVERB_DEBUG,'IO','GETSTRDIMID','called') @@ -555,11 +556,11 @@ END FUNCTION NEWIOCDF subroutine io_handle_err_nc4(kstatus,hsubr,hncsubr,hvar,kresp) -integer(kind=IDCDF_KIND),intent(in) :: kstatus -character(len=*), intent(in) :: hsubr -character(len=*), intent(in) :: hncsubr -character(len=*), intent(in) :: hvar -integer, optional, intent(out) :: kresp +integer(kind=CDFINT), intent(in) :: kstatus +character(len=*), intent(in) :: hsubr +character(len=*), intent(in) :: hncsubr +character(len=*), intent(in) :: hvar +integer, optional, intent(out) :: kresp ! Don't stop (by default) the code when kresp is present ! and ensure kresp is a negative integer diff --git a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 index c6837768f..48a3b43be 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 @@ -16,7 +16,8 @@ module mode_io_write_nc4 use modd_io_ll, only: gsmonoproc, tfiledata -use modd_netcdf, only: dimcdf, IDCDF_KIND, iocdf +use modd_netcdf, only: dimcdf, iocdf +use modd_precision, only: CDFINT use mode_field, only: tfielddata use mode_io_tools_nc4, only: cleanmnhname, fillvdims, getdimcdf, getstrdimid, io_handle_err_nc4 @@ -48,8 +49,8 @@ END INTERFACE IO_WRITE_FIELD_NC4 integer,parameter :: NSTRINGCHUNKSIZE = 16 !Dimension of the chunks of strings !(to limit the number of dimensions for strings) -integer(kind=IDCDF_KIND),parameter :: SHUFFLE = 1 !Set to 1 for (usually) better compression -integer(kind=IDCDF_KIND),parameter :: DEFLATE = 1 +integer(kind=CDFINT),parameter :: SHUFFLE = 1 !Set to 1 for (usually) better compression +integer(kind=CDFINT),parameter :: DEFLATE = 1 contains @@ -60,16 +61,16 @@ USE MODD_CONF_n, ONLY: CSTORAGE_TYPE ! USE MODE_FIELD, ONLY: TYPEINT, TYPEREAL ! -TYPE(TFILEDATA), INTENT(IN) :: TPFILE -TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -INTEGER(KIND=IDCDF_KIND), INTENT(IN) :: KVARID -LOGICAL, INTENT(IN) :: OEXISTED !True if variable was already defined -INTEGER(KIND=IDCDF_KIND),DIMENSION(:),OPTIONAL,INTENT(IN) :: KSHAPE -CHARACTER(LEN=*), OPTIONAL,INTENT(IN) :: HCALENDAR -LOGICAL, OPTIONAL,INTENT(IN) :: OISCOORD ! Is a coordinate variable (->do not write coordinates attribute) +TYPE(TFILEDATA), INTENT(IN) :: TPFILE +TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD +INTEGER(KIND=CDFINT), INTENT(IN) :: KVARID +LOGICAL, INTENT(IN) :: OEXISTED !True if variable was already defined +INTEGER(KIND=CDFINT), DIMENSION(:), OPTIONAL, INTENT(IN) :: KSHAPE +CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HCALENDAR +LOGICAL, OPTIONAL, INTENT(IN) :: OISCOORD ! Is a coordinate variable (->do not write coordinates attribute) ! -INTEGER(KIND=IDCDF_KIND) :: INCID -INTEGER(KIND=IDCDF_KIND) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +INTEGER(KIND=CDFINT) :: STATUS CHARACTER(LEN=:),ALLOCATABLE :: YCOORDS LOGICAL :: GISCOORD ! @@ -254,13 +255,13 @@ TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD REAL, INTENT(IN) :: PFIELD INTEGER, INTENT(OUT):: KRESP ! -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS -INTEGER :: IRESP -LOGICAL :: GEXISTED !True if variable was already defined +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS +INTEGER :: IRESP +LOGICAL :: GEXISTED !True if variable was already defined ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -277,7 +278,7 @@ STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (TPFIELD%LTIMEDEP) THEN ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=CDFINT), IVDIMS) ! Define the variable #if (MNH_REAL == 8) STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID) @@ -317,13 +318,13 @@ TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD REAL,DIMENSION(:), INTENT(IN) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP ! -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)+4) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS -INTEGER :: IRESP -LOGICAL :: GEXISTED !True if variable was already defined +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)+4) :: YVARNAME +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS +INTEGER :: IRESP +LOGICAL :: GEXISTED !True if variable was already defined ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -345,7 +346,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=CDFINT), IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -390,16 +391,16 @@ INTEGER,OPTIONAL, INTENT(IN) :: KVERTLEVEL ! Number of the vertical level ( INTEGER,OPTIONAL, INTENT(IN) :: KZFILE ! Number of the Z-level splitted file LOGICAL,OPTIONAL, INTENT(IN) :: OISCOORD ! Is a coordinate variable (->do not write coordinates attribute) ! -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -CHARACTER(LEN=4) :: YSUFFIX -CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)+4) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS -INTEGER :: IRESP -TYPE(TFIELDDATA) :: TZFIELD -TYPE(TFILEDATA),POINTER :: TZFILE -LOGICAL :: GEXISTED !True if variable was already defined +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +CHARACTER(LEN=4) :: YSUFFIX +CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)+4) :: YVARNAME +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS +INTEGER :: IRESP +TYPE(TFIELDDATA) :: TZFIELD +TYPE(TFILEDATA),POINTER :: TZFILE +LOGICAL :: GEXISTED !True if variable was already defined ! IRESP = 0 ! @@ -440,7 +441,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TZFILE, TZFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL FILLVDIMS(TZFILE, TZFIELD, INT(SHAPE(PFIELD),KIND=CDFINT), IVDIMS) ! Define the variable IF (TZFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -464,7 +465,7 @@ ELSE END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TZFILE,TZFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND),OISCOORD=OISCOORD) +CALL IO_WRITE_FIELD_ATTR_NC4(TZFILE,TZFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=CDFINT),OISCOORD=OISCOORD) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X2','NF90_PUT_VAR',trim(YVARNAME),IRESP) @@ -482,13 +483,13 @@ TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD REAL,DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP ! -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS -INTEGER :: IRESP -LOGICAL :: GEXISTED !True if variable was already defined +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS +INTEGER :: IRESP +LOGICAL :: GEXISTED !True if variable was already defined ! ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X3',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) @@ -511,7 +512,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=CDFINT), IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -536,7 +537,7 @@ ELSE END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) +CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=CDFINT)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X3','NF90_PUT_VAR',trim(YVARNAME),IRESP) @@ -554,13 +555,13 @@ TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD REAL,DIMENSION(:,:,:,:), INTENT(IN) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP ! -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS -INTEGER :: IRESP -LOGICAL :: GEXISTED !True if variable was already defined +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS +INTEGER :: IRESP +LOGICAL :: GEXISTED !True if variable was already defined ! ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X4',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) @@ -583,7 +584,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=CDFINT), IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -608,7 +609,7 @@ ELSE END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) +CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=CDFINT)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X4','NF90_PUT_VAR',trim(YVARNAME),IRESP) @@ -626,13 +627,13 @@ TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD REAL,DIMENSION(:,:,:,:,:), INTENT(IN) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP ! -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS -INTEGER :: IRESP -LOGICAL :: GEXISTED !True if variable was already defined +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS +INTEGER :: IRESP +LOGICAL :: GEXISTED !True if variable was already defined ! ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X5',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) @@ -655,7 +656,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=CDFINT), IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -680,7 +681,7 @@ ELSE END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) +CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=CDFINT)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X5','NF90_PUT_VAR',trim(YVARNAME),IRESP) @@ -698,13 +699,13 @@ TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD REAL,DIMENSION(:,:,:,:,:,:), INTENT(IN) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP ! -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS -INTEGER :: IRESP -LOGICAL :: GEXISTED !True if variable was already defined +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS +INTEGER :: IRESP +LOGICAL :: GEXISTED !True if variable was already defined ! ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X6',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) @@ -727,7 +728,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=CDFINT), IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -752,7 +753,7 @@ ELSE END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) +CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=CDFINT)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X6','NF90_PUT_VAR',trim(YVARNAME),IRESP) @@ -776,14 +777,14 @@ TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD INTEGER, INTENT(IN) :: KFIELD INTEGER, INTENT(OUT):: KRESP ! -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS -INTEGER :: IRESP -LOGICAL :: GEXISTED !True if variable was already defined -TYPE(IOCDF), POINTER :: TZIOCDF +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS +INTEGER :: IRESP +LOGICAL :: GEXISTED !True if variable was already defined +TYPE(IOCDF), POINTER :: TZIOCDF ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_N0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -800,7 +801,7 @@ STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (TPFIELD%LTIMEDEP) THEN ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=CDFINT), IVDIMS) ! Define the variable #if ( MNH_INT == 4 ) STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT, IVDIMS, IVARID) @@ -845,7 +846,7 @@ END IF #endif IF (YVARNAME == 'KMAX' .AND. .NOT. ASSOCIATED(TPFILE%TNCDIMS%DIM_LEVEL)) THEN TZIOCDF => TPFILE%TNCDIMS - TZIOCDF%DIM_LEVEL=>GETDIMCDF(TPFILE,INT(KFIELD+2*JPVEXT,KIND=IDCDF_KIND),'Z') + TZIOCDF%DIM_LEVEL=>GETDIMCDF(TPFILE,INT(KFIELD+2*JPVEXT,KIND=CDFINT),'Z') END IF KRESP = IRESP @@ -865,13 +866,13 @@ TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD INTEGER, DIMENSION(:), INTENT(IN) :: KFIELD INTEGER, INTENT(OUT):: KRESP ! -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS -INTEGER :: IRESP -LOGICAL :: GEXISTED !True if variable was already defined +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS +INTEGER :: IRESP +LOGICAL :: GEXISTED !True if variable was already defined ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_N1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -893,7 +894,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=CDFINT), IVDIMS) ! Define the variable #if ( MNH_INT == 4 ) @@ -926,13 +927,13 @@ TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD INTEGER,DIMENSION(:,:),INTENT(IN) :: KFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP ! -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS -INTEGER :: IRESP -LOGICAL :: GEXISTED !True if variable was already defined +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS +INTEGER :: IRESP +LOGICAL :: GEXISTED !True if variable was already defined ! IRESP = 0 ! @@ -955,7 +956,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=CDFINT), IVDIMS) ! Define the variable #if ( MNH_INT == 4 ) @@ -975,7 +976,7 @@ ELSE END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFIELD),KIND=IDCDF_KIND)) +CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFIELD),KIND=CDFINT)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N2','NF90_PUT_VAR',trim(YVARNAME),IRESP) @@ -992,13 +993,13 @@ TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD INTEGER,DIMENSION(:,:,:),INTENT(IN) :: KFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP ! -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS -INTEGER :: IRESP -LOGICAL :: GEXISTED !True if variable was already defined +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS +INTEGER :: IRESP +LOGICAL :: GEXISTED !True if variable was already defined ! IRESP = 0 ! @@ -1021,7 +1022,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=CDFINT), IVDIMS) ! Define the variable #if ( MNH_INT == 4 ) @@ -1041,7 +1042,7 @@ ELSE END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFIELD),KIND=IDCDF_KIND)) +CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFIELD),KIND=CDFINT)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N3','NF90_PUT_VAR',trim(YVARNAME),IRESP) @@ -1060,14 +1061,14 @@ TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD LOGICAL, INTENT(IN) :: OFIELD INTEGER, INTENT(OUT):: KRESP ! -INTEGER :: IFIELD -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS -INTEGER :: IRESP -LOGICAL :: GEXISTED !True if variable was already defined +INTEGER :: IFIELD +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS +INTEGER :: IRESP +LOGICAL :: GEXISTED !True if variable was already defined ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_L0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -1084,7 +1085,7 @@ STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (TPFIELD%LTIMEDEP) THEN ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(OFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(OFIELD),KIND=CDFINT), IVDIMS) ! Define the variable ! Use of NF90_INT1 datatype (=NF90_BYTE) that is enough to store a boolean STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT1, IVDIMS, IVARID) @@ -1126,14 +1127,14 @@ TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD LOGICAL, DIMENSION(:), INTENT(IN) :: OFIELD INTEGER, INTENT(OUT):: KRESP ! -INTEGER, DIMENSION(SIZE(OFIELD)) :: IFIELD -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS -INTEGER :: IRESP -LOGICAL :: GEXISTED !True if variable was already defined +INTEGER, DIMENSION(SIZE(OFIELD)) :: IFIELD +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMS +INTEGER :: IRESP +LOGICAL :: GEXISTED !True if variable was already defined ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_L1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -1155,7 +1156,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(OFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(OFIELD),KIND=CDFINT), IVDIMS) ! Define the variable ! Use of NF90_INT1 datatype (=NF90_BYTE) that is enough to store a boolean @@ -1192,14 +1193,14 @@ TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD CHARACTER(LEN=*), INTENT(IN) :: HFIELD INTEGER, INTENT(OUT):: KRESP ! -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND), DIMENSION(1) :: IVDIMS -INTEGER :: IRESP, ILEN -CHARACTER(LEN=:),ALLOCATABLE :: YFIELD -LOGICAL :: GEXISTED !True if variable was already defined +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT), DIMENSION(1) :: IVDIMS +INTEGER :: IRESP, ILEN +CHARACTER(LEN=:),ALLOCATABLE :: YFIELD +LOGICAL :: GEXISTED !True if variable was already defined ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_C0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -1225,7 +1226,7 @@ IF (TPFIELD%LTIMEDEP) & STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf string dimensions id - IVDIMS(1) = GETSTRDIMID(TPFILE,INT(ILEN,KIND=IDCDF_KIND)) + IVDIMS(1) = GETSTRDIMID(TPFILE,INT(ILEN,KIND=CDFINT)) ! Define the variable STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_CHAR, IVDIMS, IVARID) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_C0','NF90_DEF_VAR',trim(YVARNAME)) @@ -1256,17 +1257,17 @@ TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD CHARACTER(LEN=*),DIMENSION(:),INTENT(IN) :: HFIELD INTEGER, INTENT(OUT) :: KRESP ! -INTEGER(KIND=IDCDF_KIND),PARAMETER :: IONE = 1 +INTEGER(KIND=CDFINT),PARAMETER :: IONE = 1 ! -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND), DIMENSION(2) :: IVDIMS -INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMSTMP -INTEGER(KIND=IDCDF_KIND) :: ILEN, ISIZE -INTEGER :: IRESP -LOGICAL :: GEXISTED !True if variable was already defined +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT), DIMENSION(2) :: IVDIMS +INTEGER(KIND=CDFINT), DIMENSION(:), ALLOCATABLE :: IVDIMSTMP +INTEGER(KIND=CDFINT) :: ILEN, ISIZE +INTEGER :: IRESP +LOGICAL :: GEXISTED !True if variable was already defined ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_C1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -1328,17 +1329,17 @@ TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD TYPE (DATE_TIME), INTENT(IN) :: TPDATA INTEGER, INTENT(OUT):: KRESP ! -INTEGER(KIND=IDCDF_KIND) :: STATUS -INTEGER(KIND=IDCDF_KIND) :: INCID -CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME -INTEGER(KIND=IDCDF_KIND) :: IVARID -INTEGER(KIND=IDCDF_KIND), DIMENSION(1) :: IVDIMS -INTEGER :: IRESP -TYPE(TFIELDDATA) :: TZFIELD -CHARACTER(LEN=40) :: YUNITS -LOGICAL :: GEXISTED !True if variable was already defined -REAL :: ZDELTATIME !Distance in seconds since reference date and time -TYPE(DATE_TIME) :: TZREF +INTEGER(KIND=CDFINT) :: STATUS +INTEGER(KIND=CDFINT) :: INCID +CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME +INTEGER(KIND=CDFINT) :: IVARID +INTEGER(KIND=CDFINT), DIMENSION(1) :: IVDIMS +INTEGER :: IRESP +TYPE(TFIELDDATA) :: TZFIELD +CHARACTER(LEN=40) :: YUNITS +LOGICAL :: GEXISTED !True if variable was already defined +REAL :: ZDELTATIME !Distance in seconds since reference date and time +TYPE(DATE_TIME) :: TZREF ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -1421,7 +1422,7 @@ TZFIELD%CCOMMENT = 'YYYYMMDD' STATUS = NF90_INQ_VARID(INCID, TZFIELD%CMNHNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(ITDATE),KIND=IDCDF_KIND), IVDIMS) + CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(ITDATE),KIND=CDFINT), IVDIMS) ! Define the variable STATUS = NF90_DEF_VAR(INCID, TZFIELD%CMNHNAME, NF90_INT, IVDIMS, IVARID) @@ -1491,7 +1492,7 @@ CHARACTER(LEN=:),ALLOCATABLE :: YPROGRAM INTEGER :: IIU, IJU, IKU INTEGER :: ID, IID, IRESP INTEGER :: IMI -INTEGER(KIND=IDCDF_KIND) :: INCID +INTEGER(KIND=CDFINT) :: INCID LOGICAL :: GCHANGEMODEL LOGICAL,POINTER :: GSLEVE REAL,DIMENSION(:),POINTER :: ZXHAT, ZYHAT, ZZHAT @@ -1653,9 +1654,9 @@ SUBROUTINE WRITE_HOR_COORD(TDIM,HLONGNAME,HSTDNAME,HAXIS,PSHIFT,KBOUNDLOW,KBOUND INTEGER :: IRESP INTEGER :: ISIZE INTEGER :: JI - INTEGER(KIND=IDCDF_KIND) :: IVARID - INTEGER(KIND=IDCDF_KIND) :: IVDIM - INTEGER(KIND=IDCDF_KIND) :: STATUS + INTEGER(KIND=CDFINT) :: IVARID + INTEGER(KIND=CDFINT) :: IVDIM + INTEGER(KIND=CDFINT) :: STATUS LOGICAL :: GALLOC REAL,DIMENSION(:),POINTER :: ZTAB @@ -1799,9 +1800,9 @@ SUBROUTINE WRITE_VER_COORD(TDIM,HLONGNAME,HSTDNAME,HCOMPNAME,PSHIFT,KBOUNDLOW,KB INTEGER :: IRESP INTEGER :: ISIZE INTEGER :: JI - INTEGER(KIND=IDCDF_KIND) :: IVARID - INTEGER(KIND=IDCDF_KIND) :: IVDIM - INTEGER(KIND=IDCDF_KIND) :: STATUS + INTEGER(KIND=CDFINT) :: IVARID + INTEGER(KIND=CDFINT) :: IVDIM + INTEGER(KIND=CDFINT) :: STATUS ISIZE = TDIM%LEN YVARNAME = TRIM(TDIM%NAME) @@ -1881,9 +1882,9 @@ SUBROUTINE WRITE_TIME_COORD(TDIM) REAL :: ZDELTATIME CHARACTER(LEN=40) :: YUNITS CHARACTER(LEN=:),ALLOCATABLE :: YVARNAME - INTEGER(KIND=IDCDF_KIND) :: IVARID - INTEGER(KIND=IDCDF_KIND) :: IVDIM - INTEGER(KIND=IDCDF_KIND) :: STATUS + INTEGER(KIND=CDFINT) :: IVARID + INTEGER(KIND=CDFINT) :: IVDIM + INTEGER(KIND=CDFINT) :: STATUS TYPE(DATE_TIME) :: TZREF @@ -1938,7 +1939,7 @@ SUBROUTINE IO_WRITE_HEADER_NC4(TPFILE) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File structure ! -INTEGER(KIND=IDCDF_KIND) :: ISTATUS +INTEGER(KIND=CDFINT) :: ISTATUS ! IF (TRIM(TPFILE%CFORMAT)/='NETCDF4' .AND. TRIM(TPFILE%CFORMAT)/='LFICDF4') RETURN ! @@ -1990,7 +1991,7 @@ INTEGER,PARAMETER :: YEAR=1, MONTH=2, DAY=3, HH=5, MM=6, SS=7 CHARACTER(len=5) :: YZONE CHARACTER(LEN=:),ALLOCATABLE :: YCMD, YHISTORY, YHISTORY_NEW, YHISTORY_PREV INTEGER :: ILEN_CMD, ILEN_PREV -INTEGER(KIND=IDCDF_KIND) :: ISTATUS +INTEGER(KIND=CDFINT) :: ISTATUS INTEGER,DIMENSION(8) :: IDATETIME ! IF (TRIM(TPFILE%CFORMAT)/='NETCDF4' .AND. TRIM(TPFILE%CFORMAT)/='LFICDF4') RETURN diff --git a/src/MNH/read_chem_data_netcdf_case.f90 b/src/MNH/read_chem_data_netcdf_case.f90 index bd59e32da..53bfcf250 100644 --- a/src/MNH/read_chem_data_netcdf_case.f90 +++ b/src/MNH/read_chem_data_netcdf_case.f90 @@ -103,10 +103,10 @@ USE MODD_GRID_n USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_LUNIT, ONLY: TLUOUT0 USE MODE_MODELN_HANDLER -USE MODD_NETCDF, ONLY:IDCDF_KIND USE MODD_NSV USE MODD_PARAMETERS -USE MODD_PARAM_n, ONLY : CTURB +USE MODD_PARAM_n, ONLY: CTURB +USE MODD_PRECISION, ONLY: CDFINT USE MODD_PREP_REAL USE MODD_TIME USE MODD_TIME_n @@ -189,12 +189,12 @@ TYPE(TFILEDATA),POINTER :: TZFILE ! ! For netcdf ! -integer(kind=IDCDF_KIND) :: status, ncid, varid -integer(kind=IDCDF_KIND) :: lat_varid, lon_varid, lev_varid, time_varid -integer(kind=IDCDF_KIND) :: hyam_varid, hybm_varid, p0_varid, t_varid, q_varid, ps_varid -integer(kind=IDCDF_KIND) :: recid, latid, lonid, levid, timeid -integer(kind=IDCDF_KIND) :: latlen, lonlen, levlen, nrecs,timelen -integer(kind=IDCDF_KIND) :: itimeindex, KILEN, jrec +integer(kind=CDFINT) :: status, ncid, varid +integer(kind=CDFINT) :: lat_varid, lon_varid, lev_varid, time_varid +integer(kind=CDFINT) :: hyam_varid, hybm_varid, p0_varid, t_varid, q_varid, ps_varid +integer(kind=CDFINT) :: recid, latid, lonid, levid, timeid +integer(kind=CDFINT) :: latlen, lonlen, levlen, nrecs,timelen +integer(kind=CDFINT) :: itimeindex, KILEN, jrec CHARACTER(LEN=40) :: recname REAL, DIMENSION(:), ALLOCATABLE :: lats REAL, DIMENSION(:), ALLOCATABLE :: lons @@ -764,7 +764,7 @@ CONTAINS ! ############################# SUBROUTINE HANDLE_ERR(STATUS) ! ############################# - INTEGER(KIND=IDCDF_KIND) STATUS + INTEGER(KIND=CDFINT) STATUS IF (STATUS .NE. NF90_NOERR) THEN PRINT *, NF90_STRERROR(STATUS) STOP 'Stopped' -- GitLab From 540796786368de501691809fe31cb45294f79bbf Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 15 Mar 2019 15:58:55 +0100 Subject: [PATCH 100/139] Philippe 15/03/2019: use MNHINT_MPI and MNHREAL_MPI from modd_precision, remove MNH_MPI_DOUBLE_PRECISION and MNH_MPI_RANK_KIND keywords --- src/LIB/SURCOUCHE/src/fmread_ll.f90 | 41 +++---- src/LIB/SURCOUCHE/src/fmwrit_ll.f90 | 123 ++++++------------- src/LIB/SURCOUCHE/src/mode_double_double.f90 | 15 +-- src/LIB/SURCOUCHE/src/mode_fm.f90 | 1 - src/LIB/SURCOUCHE/src/mode_gather.f90 | 95 +++++++------- src/LIB/SURCOUCHE/src/mode_init_ll.f90 | 14 +-- src/LIB/SURCOUCHE/src/mode_io.f90 | 1 - src/LIB/SURCOUCHE/src/mode_io_tools.f90 | 12 +- src/LIB/SURCOUCHE/src/mode_scatter.f90 | 55 ++++----- src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 | 14 +-- src/MNH/ini_cst.f90 | 2 +- src/Makefile.MESONH.mk | 2 +- src/Rules.AIX64.mk | 8 +- src/Rules.BG.mk | 10 +- src/Rules.BGQ.mk | 10 +- src/Rules.LXNAGfor.mk | 5 +- src/Rules.LXarm.mk | 9 +- src/Rules.LXcray.mk | 8 +- src/Rules.LXg95.mk | 8 +- src/Rules.LXgfortran.mk | 9 +- src/Rules.LXifort.mk | 9 +- src/Rules.LXpathf95.mk | 6 +- src/Rules.LXpgi.mk | 9 +- src/Rules.SX8.mk | 8 +- 24 files changed, 176 insertions(+), 298 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/fmread_ll.f90 b/src/LIB/SURCOUCHE/src/fmread_ll.f90 index 2efa39b22..8f0926575 100644 --- a/src/LIB/SURCOUCHE/src/fmread_ll.f90 +++ b/src/LIB/SURCOUCHE/src/fmread_ll.f90 @@ -4,12 +4,6 @@ !MNH_LIC for details. version 1. !----------------------------------------------------------------- -#ifdef MNH_MPI_DOUBLE_PRECISION -#define MPI_FLOAT MPI_DOUBLE_PRECISION -#else -#define MPI_FLOAT MPI_REAL -#endif - MODULE MODE_FMREAD ! !Correction : @@ -23,6 +17,7 @@ MODULE MODE_FMREAD ! USE MODD_IO_ll, ONLY : NVERB_FATAL,NVERB_ERROR,NVERB_WARNING,NVERB_INFO,NVERB_DEBUG,TFILEDATA USE MODD_MPIF +use modd_precision, only: MNHREAL_MPI ! USE MODE_FIELD USE MODE_IO_READ_LFI @@ -182,7 +177,7 @@ IF (IRESP==0) THEN IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) ! ! Broadcast Field - CALL MPI_BCAST(PFIELD,1,MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(PFIELD,1,MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -281,7 +276,7 @@ IF (IRESP==0) THEN ! IF (TPFIELD%CDIR /= 'XX' .AND. TPFIELD%CDIR /='YY') THEN ! Broadcast Field - CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ELSE !Scatter Field CALL SCATTER_XXFIELD(TPFIELD%CDIR,ZFIELDP,PFIELD,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM,TPSPLITTING) @@ -451,7 +446,7 @@ IF (IRESP==0) THEN #endif END IF ELSE - CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF CALL SECOND_MNH2(T2) TIMEZ%T_READ2D_SCAT=TIMEZ%T_READ2D_SCAT + T2 - T1 @@ -613,7 +608,7 @@ IF (IRESP==0) THEN END IF ELSE ! Broadcast Field - CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ELSE ! multiprocesses execution & // IO ! @@ -733,9 +728,9 @@ IF (IRESP==0) THEN NB_REQ = NB_REQ + 1 ALLOCATE(T_TX2DP(NB_REQ)%X(IXO:IXE,IYO:IYE)) T_TX2DP(NB_REQ)%X=TX2DP - CALL MPI_ISEND(T_TX2DP(NB_REQ)%X,SIZE(TX2DP),MPI_FLOAT,JI-1,199+IK_RANK, & + CALL MPI_ISEND(T_TX2DP(NB_REQ)%X,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+IK_RANK, & TZFILE%NMPICOMM,REQ_TAB(NB_REQ),IERR) - !CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MPI_FLOAT,JI-1,199+IK_RANK,TZFILE%NMPICOMM,IERR) + !CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+IK_RANK,TZFILE%NMPICOMM,IERR) ELSE PFIELD(:,:,JKK) = TX2DP(:,:) END IF @@ -782,7 +777,7 @@ IF (IRESP==0) THEN ZSLICE => PFIELD(:,:,JKK) !CALL SCATTER_XYFIELD(ZSLICE_ll,ZSLICE,TZFILE%NMASTER_RANK,TZFILE%NMPICOMM) IF (ISP .NE. IK_RANK) THEN - CALL MPI_RECV(ZSLICE,SIZE(ZSLICE),MPI_FLOAT,IK_RANK-1,199+IK_RANK, & + CALL MPI_RECV(ZSLICE,SIZE(ZSLICE),MNHREAL_MPI,IK_RANK-1,199+IK_RANK, & TZFILE%NMPICOMM,STATUS,IERR) END IF TZFILE => NULL() @@ -793,7 +788,7 @@ IF (IRESP==0) THEN ELSE ! Broadcast Field STOP " Broadcast Field NON PREVU SUR BG POUR LE MOMENT " - CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF CALL SECOND_MNH2(T0) IF (NB_REQ .GT.0 ) THEN @@ -941,7 +936,7 @@ IF (IRESP==0) THEN CALL SCATTER_XYFIELD(ZFIELDP,PFIELD,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM) END IF ELSE - CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF END IF @@ -1066,7 +1061,7 @@ IF (IRESP==0) THEN CALL SCATTER_XYFIELD(ZFIELDP,PFIELD,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM) END IF ELSE - CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF END IF @@ -1173,7 +1168,7 @@ IF (IRESP==0) THEN ! XY Scatter Field CALL SCATTER_XYFIELD(ZFIELDP,PFIELD,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM) ELSE - CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF END IF @@ -1458,7 +1453,7 @@ IF (IRESP==0) THEN ! XX or YY Scatter Field CALL SCATTER_XXFIELD(TPFIELD%CDIR,IFIELDP,KFIELD,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM) ! Broadcast Field - CALL MPI_BCAST(KFIELD,SIZE(KFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(KFIELD,SIZE(KFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ELSE IF (TPFIELD%CDIR == 'XY') THEN IF (LPACK .AND. L2D) THEN ! 2D compact case @@ -1778,7 +1773,7 @@ IF (IRESP==0) THEN IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) ! CALL MPI_BCAST(ITDATE, 3,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) - CALL MPI_BCAST(TPDATA%TIME,1,MPI_FLOAT, TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(TPDATA%TIME,1,MNHREAL_MPI, TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) TPDATA%TDATE%YEAR = ITDATE(1) TPDATA%TDATE%MONTH = ITDATE(2) TPDATA%TDATE%DAY = ITDATE(3) @@ -1961,8 +1956,8 @@ IF (IRESP==0) THEN NB_REQ = NB_REQ + 1 ALLOCATE(T_TX3DP(NB_REQ)%X(IIB:IIE,IJB:IJE,IKU)) T_TX3DP(NB_REQ)%X=Z3D(IIB:IIE,IJB:IJE,:) - CALL MPI_ISEND(T_TX3DP(NB_REQ)%X,SIZE(TX3DP),MPI_FLOAT,JI-1,99,TPFILE%NMPICOMM,REQ_TAB(NB_REQ),IERR) - !CALL MPI_BSEND(T_TX3DP(NB_REQ)%X,SIZE(TX3DP),MPI_FLOAT,JI-1,99,TPFILE%NMPICOMM,IERR) + CALL MPI_ISEND(T_TX3DP(NB_REQ)%X,SIZE(TX3DP),MNHREAL_MPI,JI-1,99,TPFILE%NMPICOMM,REQ_TAB(NB_REQ),IERR) + !CALL MPI_BSEND(T_TX3DP(NB_REQ)%X,SIZE(TX3DP),MNHREAL_MPI,JI-1,99,TPFILE%NMPICOMM,IERR) ELSE CALL GET_DISTRIB_LB(YLBTYPE,JI,'LOC','READ',KRIM,IIB,IIE,IJB,IJE) PLB(IIB:IIE,IJB:IJE,:) = TX3DP(:,:,:) @@ -1989,9 +1984,9 @@ IF (IRESP==0) THEN CALL GET_DISTRIB_LB(YLBTYPE,ISP,'LOC','READ',KRIM,IIB,IIE,IJB,IJE) IF (IIB /= 0) THEN TX3DP=>PLB(IIB:IIE,IJB:IJE,:) - CALL MPI_RECV(TX3DP,SIZE(TX3DP),MPI_FLOAT,TPFILE%NMASTER_RANK-1,99,TPFILE%NMPICOMM,STATUS,IERR) + CALL MPI_RECV(TX3DP,SIZE(TX3DP),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,99,TPFILE%NMPICOMM,STATUS,IERR) !NB_REQ = NB_REQ + 1 - !CALL MPI_IRECV(TX3DP,SIZE(TX3DP),MPI_FLOAT,TPFILE%NMASTER_RANK-1,99,TPFILE%NMPICOMM,REQ_TAB(NB_REQ),IERR) + !CALL MPI_IRECV(TX3DP,SIZE(TX3DP),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,99,TPFILE%NMPICOMM,REQ_TAB(NB_REQ),IERR) !IF (NB_REQ .GT.0 ) CALL MPI_WAITALL(NB_REQ,REQ_TAB,MNH_STATUSES_IGNORE,IERR) END IF CALL SECOND_MNH2(T1) diff --git a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 index 41c659421..f2afbf160 100644 --- a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 +++ b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 @@ -10,18 +10,13 @@ ! Philippe Wautelet: 10/01/2019: write header also for Z-split files !----------------------------------------------------------------- -#ifdef MNH_MPI_DOUBLE_PRECISION -#define MPI_FLOAT MPI_DOUBLE_PRECISION -#else -#define MPI_FLOAT MPI_REAL -#endif - #define MNH_SCALARS_IN_SPLITFILES 0 MODULE MODE_FMWRIT - USE MODD_MPIF USE MODD_IO_ll, ONLY: TFILEDATA + USE MODD_MPIF + use modd_precision, only: MNHINT_MPI, MNHREAL_MPI USE MODE_FIELD USE MODE_IO_WRITE_LFI @@ -316,7 +311,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ! multiprocesses execution #if MNH_SCALARS_IN_SPLITFILES IF (TPFILE%NSUBFILES_IOZ>0) THEN @@ -417,11 +412,7 @@ CONTAINS IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE ! multiprocesses execution -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -444,7 +435,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ! multiprocesses execution END IF ! @@ -561,11 +552,7 @@ CONTAINS END IF ELSE ! multiprocesses execution CALL SECOND_MNH2(T0) -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X2','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -625,7 +612,7 @@ CONTAINS CALL SECOND_MNH2(T2) TIMEZ%T_WRIT2D_WRIT=TIMEZ%T_WRIT2D_WRIT + T2 - T1 ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -764,11 +751,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSEIF ( TPFILE%NSUBFILES_IOZ==0 .OR. YDIR=='--' ) THEN ! multiprocesses execution & 1 proc IO -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -798,14 +781,10 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! ELSE ! multiprocesses execution & // IO -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -916,9 +895,9 @@ CONTAINS ZSLICE => PFIELD(:,:,JKK) TX2DP=>ZSLICE(IXO:IXE,IYO:IYE) T_TX2DP(NB_REQ)%X=ZSLICE(IXO:IXE,IYO:IYE) - CALL MPI_ISEND(T_TX2DP(NB_REQ)%X,SIZE(TX2DP),MPI_FLOAT,IK_RANK-1,99+IK_RANK & + CALL MPI_ISEND(T_TX2DP(NB_REQ)%X,SIZE(TX2DP),MNHREAL_MPI,IK_RANK-1,99+IK_RANK & & ,TZFILE%NMPICOMM,REQ_TAB(NB_REQ),IERR) - !CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MPI_FLOAT,IK_RANK-1,99+IK_RANK,TZFILE%NMPICOMM,IERR) + !CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MNHREAL_MPI,IK_RANK-1,99+IK_RANK,TZFILE%NMPICOMM,IERR) END IF END IF CALL SECOND_MNH2(T1) @@ -954,7 +933,7 @@ CONTAINS ZSLICE => PFIELD(:,:,JKK) TX2DP = ZSLICE(IXO:IXE,IYO:IYE) ELSE - CALL MPI_RECV(TX2DP,SIZE(TX2DP),MPI_FLOAT,JI-1,99+IK_RANK,TZFILE%NMPICOMM,STATUS,IERR) + CALL MPI_RECV(TX2DP,SIZE(TX2DP),MNHREAL_MPI,JI-1,99+IK_RANK,TZFILE%NMPICOMM,STATUS,IERR) END IF END IF END DO @@ -1087,11 +1066,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X4','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -1120,7 +1095,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ! multiprocess execution END IF ! @@ -1225,11 +1200,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X5','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -1259,7 +1230,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ! multiprocess execution END IF ! @@ -1353,11 +1324,7 @@ CONTAINS IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X6','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -1382,7 +1349,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ! multiprocess execution END IF ! @@ -1465,7 +1432,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ! multiprocess execution #if MNH_SCALARS_IN_SPLITFILES IF (TPFILE%NSUBFILES_IOZ>0) THEN @@ -1565,11 +1532,7 @@ CONTAINS IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) ELSE ! multiprocesses execution -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_N1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -1592,7 +1555,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -1703,11 +1666,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ELSE ! multiprocesses execution -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_N2','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -1742,7 +1701,7 @@ CONTAINS CALL SECOND_MNH2(T2) TIMEZ%T_WRIT2D_WRIT=TIMEZ%T_WRIT2D_WRIT + T2 - T1 ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -1853,11 +1812,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ELSE ! multiprocesses execution -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_N3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -1887,7 +1842,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -1974,7 +1929,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ! multiprocesses execution #if MNH_SCALARS_IN_SPLITFILES IF (TPFILE%NSUBFILES_IOZ>0) THEN @@ -2074,11 +2029,7 @@ CONTAINS IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE ! multiprocesses execution -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(OFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(OFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(OFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_L1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -2101,7 +2052,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,GFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -2188,7 +2139,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -2293,7 +2244,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -2375,7 +2326,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TFIELD,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -2508,7 +2459,7 @@ CONTAINS IF (IIB /= 0) THEN TX3DP=>Z3D(IIB:IIE,IJB:IJE,:) IF (ISP /= JI) THEN - CALL MPI_RECV(TX3DP,SIZE(TX3DP),MPI_FLOAT,JI-1,99,TPFILE%NMPICOMM,STATUS,IERR) + CALL MPI_RECV(TX3DP,SIZE(TX3DP),MNHREAL_MPI,JI-1,99,TPFILE%NMPICOMM,STATUS,IERR) ELSE CALL GET_DISTRIB_LB(YLBTYPE,JI,'LOC','WRITE',IRIM,IIB,IIE,IJB,IJE) TX3DP = PLB(IIB:IIE,IJB:IJE,:) @@ -2534,9 +2485,9 @@ CONTAINS NB_REQ = NB_REQ + 1 ALLOCATE(T_TX3DP(NB_REQ)%X(IIB:IIE,IJB:IJE,IKU)) T_TX3DP(NB_REQ)%X=PLB(IIB:IIE,IJB:IJE,:) - CALL MPI_ISEND(T_TX3DP(NB_REQ)%X,SIZE(TX3DP),MPI_FLOAT,TPFILE%NMASTER_RANK-1,99, & + CALL MPI_ISEND(T_TX3DP(NB_REQ)%X,SIZE(TX3DP),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,99, & TPFILE%NMPICOMM,REQ_TAB(NB_REQ),IERR) - !CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MPI_FLOAT,TPFILE%NMASTER_RANK-1,99,TPFILE%NMPICOMM,IERR) + !CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,99,TPFILE%NMPICOMM,IERR) END IF IF (NB_REQ .GT.0 ) THEN CALL MPI_WAITALL(NB_REQ,REQ_TAB,MNH_STATUSES_IGNORE,IERR) @@ -2545,7 +2496,7 @@ CONTAINS DEALLOCATE(T_TX3DP,REQ_TAB) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -2629,7 +2580,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ! multiprocesses execution END IF ! diff --git a/src/LIB/SURCOUCHE/src/mode_double_double.f90 b/src/LIB/SURCOUCHE/src/mode_double_double.f90 index 19f0b3610..809944ce8 100644 --- a/src/LIB/SURCOUCHE/src/mode_double_double.f90 +++ b/src/LIB/SURCOUCHE/src/mode_double_double.f90 @@ -43,24 +43,13 @@ MODULE mode_repro_sum CONTAINS SUBROUTINE INIT_DD(KINFO) + use modd_precision, only: MNHREAL_MPI IMPLICIT NONE INTEGER, INTENT(OUT) :: KINFO ! MPI return status - REAL :: REAL_DEFAULT - INTEGER,PARAMETER :: REAL_KIND=KIND(REAL_DEFAULT) - INTEGER :: MNH_MPI_REAL - - ! - ! find the default type of REAL for MESONH on MPI - ! - IF (REAL_KIND .EQ. 4 ) THEN - MNH_MPI_REAL = MPI_REAL4 - ELSE - MNH_MPI_REAL = MPI_REAL8 - END IF ! ! define the double-double for MPI ! - CALL MPI_TYPE_CONTIGUOUS(2, MNH_MPI_REAL ,MNH_DOUBLE_DOUBLE , KINFO) + CALL MPI_TYPE_CONTIGUOUS(2, MNHREAL_MPI ,MNH_DOUBLE_DOUBLE , KINFO) CALL MPI_TYPE_COMMIT(MNH_DOUBLE_DOUBLE , KINFO) ! ! define the double-double sum = MNH_SUM_DD for MPI diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index 02265538c..821550563 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -169,7 +169,6 @@ USE MODE_IO_ll, ONLY: OPEN_ll,GCONFIO USE MODD_CONFZ,ONLY : NB_PROCIO_R,NB_PROCIO_W !JUANZ #if defined(MNH_IOCDF4) -USE MODD_NETCDF, ONLY:IDCDF_KIND use mode_io_file_nc4, only: io_create_file_nc4, io_open_file_nc4 #endif use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi diff --git a/src/LIB/SURCOUCHE/src/mode_gather.f90 b/src/LIB/SURCOUCHE/src/mode_gather.f90 index 756d8dcaa..3cfd58b7f 100644 --- a/src/LIB/SURCOUCHE/src/mode_gather.f90 +++ b/src/LIB/SURCOUCHE/src/mode_gather.f90 @@ -4,12 +4,6 @@ !MNH_LIC for details. version 1. !----------------------------------------------------------------- -#ifdef MNH_MPI_DOUBLE_PRECISION -#define MPI_FLOAT MPI_DOUBLE_PRECISION -#else -#define MPI_FLOAT MPI_REAL -#endif - MODULE MODE_GATHER_ll ! Modifications: @@ -19,9 +13,8 @@ MODULE MODE_GATHER_ll ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! USE MODD_MPIF -!JUANZ -USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD -!JUANZ +use modd_precision, only: MNHREAL_MPI +USE MODD_VAR_ll, ONLY: NMNH_COMM_WORLD IMPLICIT NONE @@ -73,7 +66,7 @@ ELSE PRINT *,'Error GATHERALL_X1' END IF ! PRECV variable of IROOT processor contains the global field -CALL MPI_BCAST(PRECV,SIZE(PRECV),MPI_FLOAT,IROOT-1,NMNH_COMM_WORLD,KRESP) +CALL MPI_BCAST(PRECV,SIZE(PRECV),MNHREAL_MPI,IROOT-1,NMNH_COMM_WORLD,KRESP) END SUBROUTINE GATHERALL_X1 @@ -98,7 +91,7 @@ ELSE PRINT *,'Error GATHERALL_X2' END IF ! PRECV variable of IROOT processor contains the global field -CALL MPI_BCAST(PRECV,SIZE(PRECV),MPI_FLOAT,IROOT-1,NMNH_COMM_WORLD,KRESP) +CALL MPI_BCAST(PRECV,SIZE(PRECV),MNHREAL_MPI,IROOT-1,NMNH_COMM_WORLD,KRESP) END SUBROUTINE GATHERALL_X2 @@ -124,7 +117,7 @@ ELSE KRESP = -1 END IF ! PRECV variable of IROOT processor contains the global field -CALL MPI_BCAST(PRECV,SIZE(PRECV),MPI_FLOAT,IROOT-1,NMNH_COMM_WORLD,KRESP) +CALL MPI_BCAST(PRECV,SIZE(PRECV),MNHREAL_MPI,IROOT-1,NMNH_COMM_WORLD,KRESP) END SUBROUTINE GATHERALL_X3 @@ -219,7 +212,7 @@ IF (ISP == KROOT) THEN IF (JI == KROOT) THEN XP = PSEND(IXO:IXE) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN @@ -227,7 +220,7 @@ IF (ISP == KROOT) THEN IF (JI==KROOT) THEN XP = PSEND(IYO:IYE) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -240,15 +233,15 @@ ELSE IF (HDIR == 'XX' .AND. IYM <= IGYE .AND. IYM >= IGYO) THEN XP=>PSEND(IXO:IXE) NB_REQ = 1 - CALL MPI_ISEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,REQ(NB_REQ),IERR) + CALL MPI_ISEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,REQ(NB_REQ),IERR) CALL MPI_WAITALL(NB_REQ,REQ,MNH_STATUSES_IGNORE,IERR) - !CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + !CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN XP=>PSEND(IYO:IYE) NB_REQ = 1 - CALL MPI_ISEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,REQ(NB_REQ),IERR) + CALL MPI_ISEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,REQ(NB_REQ),IERR) CALL MPI_WAITALL(NB_REQ,REQ,MNH_STATUSES_IGNORE,IERR) - !CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + !CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -289,7 +282,7 @@ IF (ISP == KROOT) THEN IF (JI == KROOT) THEN XP = PSEND(IXO:IXE,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN @@ -297,7 +290,7 @@ IF (ISP == KROOT) THEN IF (JI==KROOT) THEN XP = PSEND(IYO:IYE,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -309,10 +302,10 @@ ELSE IF (HDIR == 'XX' .AND. IYM <= IGYE .AND. IYM >= IGYO) THEN XP=>PSEND(IXO:IXE,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN XP=>PSEND(IYO:IYE,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -352,7 +345,7 @@ IF (ISP == KROOT) THEN IF (JI == KROOT) THEN XP = PSEND(IXO:IXE,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN @@ -360,7 +353,7 @@ IF (ISP == KROOT) THEN IF (JI==KROOT) THEN XP = PSEND(IYO:IYE,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -372,10 +365,10 @@ ELSE IF (HDIR == 'XX' .AND. IYM <= IGYE .AND. IYM >= IGYO) THEN XP=>PSEND(IXO:IXE,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN XP=>PSEND(IYO:IYE,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -415,7 +408,7 @@ IF (ISP == KROOT) THEN IF (JI == KROOT) THEN XP = PSEND(IXO:IXE,:,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN @@ -423,7 +416,7 @@ IF (ISP == KROOT) THEN IF (JI==KROOT) THEN XP = PSEND(IYO:IYE,:,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -435,10 +428,10 @@ ELSE IF (HDIR == 'XX' .AND. IYM <= IGYE .AND. IYM >= IGYO) THEN XP=>PSEND(IXO:IXE,:,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN XP=>PSEND(IYO:IYE,:,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -478,7 +471,7 @@ IF (ISP == KROOT) THEN IF (JI == KROOT) THEN XP = PSEND(IXO:IXE,:,:,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN @@ -486,7 +479,7 @@ IF (ISP == KROOT) THEN IF (JI==KROOT) THEN XP = PSEND(IYO:IYE,:,:,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -498,10 +491,10 @@ ELSE IF (HDIR == 'XX' .AND. IYM <= IGYE .AND. IYM >= IGYO) THEN XP=>PSEND(IXO:IXE,:,:,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN XP=>PSEND(IYO:IYE,:,:,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -541,7 +534,7 @@ IF (ISP == KROOT) THEN IF (JI == KROOT) THEN XP = PSEND(IXO:IXE,:,:,:,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN @@ -549,7 +542,7 @@ IF (ISP == KROOT) THEN IF (JI==KROOT) THEN XP = PSEND(IYO:IYE,:,:,:,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -561,10 +554,10 @@ ELSE IF (HDIR == 'XX' .AND. IYM <= IGYE .AND. IYM >= IGYO) THEN XP=>PSEND(IXO:IXE,:,:,:,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN XP=>PSEND(IYO:IYE,:,:,:,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -861,7 +854,7 @@ IF (ISP == KROOT) THEN CALL GET_DOMWRITE_ll(JI,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) XP = PSEND(IXO:IXE,IYO:IYE) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -873,10 +866,10 @@ ELSE NB_REQ = 1 ALLOCATE(X_2DP(IXO:IXE,IYO:IYE)) X_2DP=XP - CALL MPI_ISEND(X_2DP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,REQ(NB_REQ),IERR) + CALL MPI_ISEND(X_2DP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,REQ(NB_REQ),IERR) CALL MPI_WAITALL(NB_REQ,REQ,MNH_STATUSES_IGNORE,IERR) DEALLOCATE(X_2DP) - !CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + !CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -910,7 +903,7 @@ IF (ISP == KROOT) THEN CALL GET_DOMWRITE_ll(JI,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) XP = PSEND(IXO:IXE,IYO:IYE,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -919,7 +912,7 @@ ELSE CALL GET_DOMWRITE_ll(ISP,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) IF (IXO /= 0) THEN ! intersection is not empty XP=>PSEND(IXO:IXE,IYO:IYE,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -953,7 +946,7 @@ IF (ISP == KROOT) THEN CALL GET_DOMWRITE_ll(JI,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) XP = PSEND(IXO:IXE,IYO:IYE,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -962,7 +955,7 @@ ELSE CALL GET_DOMWRITE_ll(ISP,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) IF (IXO /= 0) THEN ! intersection is not empty XP=>PSEND(IXO:IXE,IYO:IYE,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -996,7 +989,7 @@ IF (ISP == KROOT) THEN CALL GET_DOMWRITE_ll(JI,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) XP = PSEND(IXO:IXE,IYO:IYE,:,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -1005,7 +998,7 @@ ELSE CALL GET_DOMWRITE_ll(ISP,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) IF (IXO /= 0) THEN ! intersection is not empty XP=>PSEND(IXO:IXE,IYO:IYE,:,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -1039,7 +1032,7 @@ IF (ISP == KROOT) THEN CALL GET_DOMWRITE_ll(JI,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) XP = PSEND(IXO:IXE,IYO:IYE,:,:,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -1048,7 +1041,7 @@ ELSE CALL GET_DOMWRITE_ll(ISP,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) IF (IXO /= 0) THEN ! intersection is not empty XP=>PSEND(IXO:IXE,IYO:IYE,:,:,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -1158,7 +1151,7 @@ IF (ISP == KROOT) THEN CALL GET_DOMWRITE_ll(JI,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX) XP = PSEND(IXO:IXE,IYO:IYE) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -1167,7 +1160,7 @@ ELSE CALL GET_DOMWRITE_ll(ISP,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX) IF (IXO /= 0) THEN ! intersection is not empty XP=>PSEND(IXO:IXE,IYO:IYE) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF diff --git a/src/LIB/SURCOUCHE/src/mode_init_ll.f90 b/src/LIB/SURCOUCHE/src/mode_init_ll.f90 index 6cd17f9c6..58bd9cb4c 100644 --- a/src/LIB/SURCOUCHE/src/mode_init_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_init_ll.f90 @@ -3,15 +3,6 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- - -#ifdef MNH_MPI_DOUBLE_PRECISION -#define MNH_MPI_REAL MPI_DOUBLE_PRECISION -#define MNH_MPI_2REAL MPI_2DOUBLE_PRECISION -#else -#define MNH_MPI_REAL MPI_REAL -#define MNH_MPI_2REAL MPI_2REAL -#endif - ! ################### MODULE MODE_INIT_ll ! ################### @@ -59,6 +50,7 @@ !------------------------------------------------------------------------------- ! USE MODD_MPIF + use modd_precision, only: MNHREAL_MPI, MNH2REAL_MPI ! IMPLICIT NONE ! @@ -555,8 +547,8 @@ ! IP = IP + 1 ! - MPI_PRECISION = MNH_MPI_REAL - MPI_2PRECISION = MNH_MPI_2REAL + MPI_PRECISION = MNHREAL_MPI + MPI_2PRECISION = MNH2REAL_MPI ! !------------------------------------------------------------------------------- ! diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 0434b5ea1..541316a4f 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -159,7 +159,6 @@ CONTAINS USE MODD_IO_ll #if defined(MNH_IOCDF4) - USE MODD_NETCDF, ONLY:IDCDF_KIND use mode_io_file_nc4, only: io_create_file_nc4, io_open_file_nc4 #endif use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi diff --git a/src/LIB/SURCOUCHE/src/mode_io_tools.f90 b/src/LIB/SURCOUCHE/src/mode_io_tools.f90 index 9e8dd1fc8..33cb6cfd9 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_tools.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_tools.f90 @@ -24,8 +24,8 @@ contains ! return the file number where to write the K level of data ! IMPLICIT NONE - INTEGER(kind=MNH_MPI_RANK_KIND) :: k,nb_proc_io - INTEGER(kind=MNH_MPI_RANK_KIND) :: io_file + INTEGER :: k,nb_proc_io + INTEGER :: io_file io_file = MOD ((k-1) , nb_proc_io ) @@ -36,12 +36,12 @@ contains ! return the proc number which must write the 'IFILE' file ! IMPLICIT NONE - INTEGER(kind=MNH_MPI_RANK_KIND) :: IFILE,nb_proc,nb_proc_io - INTEGER(kind=MNH_MPI_RANK_KIND),OPTIONAL :: offset_rank + INTEGER :: IFILE,nb_proc,nb_proc_io + INTEGER,OPTIONAL :: offset_rank - INTEGER(kind=MNH_MPI_RANK_KIND) :: IO_RANK + INTEGER :: IO_RANK - INTEGER(kind=MNH_MPI_RANK_KIND) :: ipas,irest + INTEGER :: ipas,irest ipas = nb_proc / nb_proc_io irest = MOD ( nb_proc , nb_proc_io ) diff --git a/src/LIB/SURCOUCHE/src/mode_scatter.f90 b/src/LIB/SURCOUCHE/src/mode_scatter.f90 index cc933744a..9857c0ec1 100644 --- a/src/LIB/SURCOUCHE/src/mode_scatter.f90 +++ b/src/LIB/SURCOUCHE/src/mode_scatter.f90 @@ -12,12 +12,6 @@ !----------------------------------------------------------------- !----------------------------------------------------------------- -#ifdef MNH_MPI_DOUBLE_PRECISION -#define MPI_FLOAT MPI_DOUBLE_PRECISION -#else -#define MPI_FLOAT MPI_REAL -#endif - MODULE MODE_SCATTER_ll ! @@ -26,6 +20,7 @@ MODULE MODE_SCATTER_ll ! USE MODD_MPIF +use modd_precision, only: MNHREAL_MPI IMPLICIT NONE @@ -100,9 +95,9 @@ IF (ISP == KROOT) THEN NB_REQ = NB_REQ + 1 ALLOCATE(T_TX1DP(NB_REQ)%X(SIZE(TX1DP))) T_TX1DP(NB_REQ)%X=TX1DP - CALL MPI_ISEND(T_TX1DP(NB_REQ)%X,SIZE(TX1DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_ISEND(T_TX1DP(NB_REQ)%X,SIZE(TX1DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,REQ_TAB(NB_REQ),IERR) - !CALL MPI_BSEND(T12DP,SIZE(T12DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + !CALL MPI_BSEND(T12DP,SIZE(T12DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& ! & ,IERR) ELSE PRECV(:) = TX1DP(:) @@ -115,7 +110,7 @@ IF (ISP == KROOT) THEN DEALLOCATE(T_TX1DP) DEALLOCATE(REQ_TAB) ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -158,14 +153,14 @@ IF (ISP == KROOT) THEN END IF IF (ISP /= JI) THEN - CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:) = TX2DP(:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -198,14 +193,14 @@ IF (ISP == KROOT) THEN END IF IF (ISP /= JI) THEN - CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:,:) = TX2DP(:,:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -238,14 +233,14 @@ IF (ISP == KROOT) THEN END IF IF (ISP /= JI) THEN - CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:,:,:) = TX2DP(:,:,:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -278,14 +273,14 @@ IF (ISP == KROOT) THEN END IF IF (ISP /= JI) THEN - CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:,:,:,:) = TX2DP(:,:,:,:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -318,14 +313,14 @@ IF (ISP == KROOT) THEN END IF IF (ISP /= JI) THEN - CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:,:,:,:,:) = TX2DP(:,:,:,:,:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -446,9 +441,9 @@ IF (ISP == KROOT) THEN NB_REQ = NB_REQ + 1 ALLOCATE(T_TX2DP(NB_REQ)%X(IXO:IXE,IYO:IYE)) T_TX2DP(NB_REQ)%X=TX2DP - CALL MPI_ISEND(T_TX2DP(NB_REQ)%X,SIZE(TX2DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_ISEND(T_TX2DP(NB_REQ)%X,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,REQ_TAB(NB_REQ),IERR) - !CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + !CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& ! & ,IERR) ELSE PRECV(:,:) = TX2DP(:,:) @@ -461,7 +456,7 @@ IF (ISP == KROOT) THEN DEALLOCATE(T_TX2DP) DEALLOCATE(REQ_TAB) ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -489,14 +484,14 @@ IF (ISP == KROOT) THEN TX3DP=>PSEND(IXO:IXE,IYO:IYE,:) IF (ISP /= JI) THEN - CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:,:) = TX3DP(:,:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -524,14 +519,14 @@ IF (ISP == KROOT) THEN TX3DP=>PSEND(IXO:IXE,IYO:IYE,:,:) IF (ISP /= JI) THEN - CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:,:,:) = TX3DP(:,:,:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -559,14 +554,14 @@ IF (ISP == KROOT) THEN TX3DP=>PSEND(IXO:IXE,IYO:IYE,:,:,:) IF (ISP /= JI) THEN - CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:,:,:,:) = TX3DP(:,:,:,:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -594,14 +589,14 @@ IF (ISP == KROOT) THEN TX3DP=>PSEND(IXO:IXE,IYO:IYE,:,:,:,:) IF (ISP /= JI) THEN - CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:,:,:,:,:) = TX3DP(:,:,:,:,:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF diff --git a/src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 b/src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 index 754a30d12..f16a0b180 100644 --- a/src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 @@ -3,15 +3,6 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- - -#ifdef MNH_MPI_DOUBLE_PRECISION -#define MNH_MPI_REAL MPI_DOUBLE_PRECISION -#define MNH_MPI_2REAL MPI_2DOUBLE_PRECISION -#else -#define MNH_MPI_REAL MPI_REAL -#define MNH_MPI_2REAL MPI_2REAL -#endif - ! ######################## MODULE MODE_SPLITTINGZ_ll ! ######################## @@ -40,6 +31,7 @@ MODULE MODE_SPLITTINGZ_ll ! Modifications: ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O USE MODD_MPIF + use modd_precision, only: MNHREAL_MPI, MNH2REAL_MPI ! USE MODE_SPLITTING_ll ! @@ -180,8 +172,8 @@ CONTAINS ! CALL MPI_COMM_DUP(NMNH_COMM_WORLD, NGRID_COM, KINFO_ll) ! - MPI_PRECISION = MNH_MPI_REAL - MPI_2PRECISION = MNH_MPI_2REAL + MPI_PRECISION = MNHREAL_MPI + MPI_2PRECISION = MNH2REAL_MPI ! ! For bug with intelmpi+ilp64+i8 declare MNH_STATUSES_IGNORE ! diff --git a/src/MNH/ini_cst.f90 b/src/MNH/ini_cst.f90 index 0e422740d..9fd09be3a 100644 --- a/src/MNH/ini_cst.f90 +++ b/src/MNH/ini_cst.f90 @@ -159,7 +159,7 @@ XMNH_EPSILON = EPSILON (XMNH_EPSILON ) XMNH_HUGE = HUGE (XMNH_HUGE ) XMNH_HUGE_12_LOG = LOG ( SQRT(XMNH_HUGE) ) -#ifdef MNH_MPI_DOUBLE_PRECISION +#if (MNH_REAL == 8) XMNH_TINY = 1.0e-80 XEPS_DT = 1.0e-5 XRES_FLAT_CART = 1.0e-12 diff --git a/src/Makefile.MESONH.mk b/src/Makefile.MESONH.mk index e4f2f56c8..2358c3f1e 100644 --- a/src/Makefile.MESONH.mk +++ b/src/Makefile.MESONH.mk @@ -106,7 +106,7 @@ endif # PRE_BUG TEST !!! # DIR_SURCOUCHE += LIB/SURCOUCHE/src -#CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_MPI_BSEND -DNAGf95 +#CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DMNH_MPI_BSEND -DNAGf95 # ifdef DIR_SURCOUCHE DIR_MASTER += $(DIR_SURCOUCHE) diff --git a/src/Rules.AIX64.mk b/src/Rules.AIX64.mk index 9bf3b1262..03cc10faf 100644 --- a/src/Rules.AIX64.mk +++ b/src/Rules.AIX64.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -31,9 +31,7 @@ OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif OPT = $(OPT_BASE) $(OPT_PERF2) @@ -84,7 +82,7 @@ endif CPP = /usr/lib/cpp -C -P -qlanglvl=classic # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DMNH_SP4 CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DAMAX1=MAX -DMNH -DSFX_MNH diff --git a/src/Rules.BG.mk b/src/Rules.BG.mk index bf5f73d9a..b1ee2cccd 100644 --- a/src/Rules.BG.mk +++ b/src/Rules.BG.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -36,9 +36,7 @@ OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -94,8 +92,8 @@ CPP = cpp -P -traditional -Wcomment CC = mpixlc_r # CPPFLAGS_SURFEX = -#CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_ISEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_BSEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +#CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_ISEND +CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_BSEND CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DAMAX1=MAX -DMNH -DSFX_MNH diff --git a/src/Rules.BGQ.mk b/src/Rules.BGQ.mk index 6418fb149..4ce309876 100644 --- a/src/Rules.BGQ.mk +++ b/src/Rules.BGQ.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -40,10 +40,8 @@ OPT_BASE_I4 := $(OPT_BASE) $(OPT_I4) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else OPT_BASE += $(OPT_I4) -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -143,8 +141,8 @@ CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -#CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_ISEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_BSEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) -DSNGL=REAL +#CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_ISEND +CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_BSEND -DSNGL=REAL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DAMAX1=MAX -DMNH -DSFX_MNH diff --git a/src/Rules.LXNAGfor.mk b/src/Rules.LXNAGfor.mk index 397a18c4f..8fd7c4264 100644 --- a/src/Rules.LXNAGfor.mk +++ b/src/Rules.LXNAGfor.mk @@ -24,16 +24,13 @@ LFI_RECL ?=512 # ifneq "$(MNH_REAL)" "4" OPT_BASE += $(OPT_R8) -CPPFLAGS_SURCOUCHE += -DMNH_MPI_DOUBLE_PRECISION endif # OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -72,7 +69,7 @@ FX90FLAGS = $(OPT) -fixed CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH diff --git a/src/Rules.LXarm.mk b/src/Rules.LXarm.mk index dc9369223..d1e4879e6 100644 --- a/src/Rules.LXarm.mk +++ b/src/Rules.LXarm.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -34,16 +34,13 @@ LFI_RECL ?=512 # ifneq "$(MNH_REAL)" "4" OPT_BASE += $(OPT_R8) -CPPFLAGS_SURCOUCHE += -DMNH_MPI_DOUBLE_PRECISION endif # OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -88,7 +85,7 @@ FX90FLAGS = $(OPT) CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH diff --git a/src/Rules.LXcray.mk b/src/Rules.LXcray.mk index 425a0b9d6..876586124 100644 --- a/src/Rules.LXcray.mk +++ b/src/Rules.LXcray.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -29,9 +29,7 @@ ifeq "$(MNH_INT)" "8" #OPT_BASE += $(OPT_I8) OPT_BASE = -sdefault64 -hpic -em -ef LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -84,7 +82,7 @@ LDFLAGS = -Wl,-warn-once $(PAR) $(OPT_BASE) CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DDEV_NULL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH diff --git a/src/Rules.LXg95.mk b/src/Rules.LXg95.mk index e08e73ed7..0f41dffc3 100644 --- a/src/Rules.LXg95.mk +++ b/src/Rules.LXg95.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -24,9 +24,7 @@ OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -66,7 +64,7 @@ CPP = cpp -P -traditional -Wcomment LFI_INT ?=4 LFI_RECL ?=512 CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_MPI_BSEND -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DMNH_MPI_BSEND -DDEV_NULL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DAINT=INT -DAMOD=MOD -DMNH -DSFX_MNH diff --git a/src/Rules.LXgfortran.mk b/src/Rules.LXgfortran.mk index 58689e968..20a065160 100644 --- a/src/Rules.LXgfortran.mk +++ b/src/Rules.LXgfortran.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -31,16 +31,13 @@ LFI_RECL ?=512 # ifneq "$(MNH_REAL)" "4" OPT_BASE += $(OPT_R8) -CPPFLAGS_SURCOUCHE += -DMNH_MPI_DOUBLE_PRECISION endif # OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -80,7 +77,7 @@ FX90FLAGS = $(OPT) CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH diff --git a/src/Rules.LXifort.mk b/src/Rules.LXifort.mk index 231f1949a..ca42df88b 100644 --- a/src/Rules.LXifort.mk +++ b/src/Rules.LXifort.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -25,16 +25,13 @@ LFI_RECL ?=512 # ifneq "$(MNH_REAL)" "4" OPT_BASE += $(OPT_R8) -CPPFLAGS_SURCOUCHE += -DMNH_MPI_DOUBLE_PRECISION endif # OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -177,7 +174,7 @@ LDFLAGS = -Wl,-warn-once $(PAR) -Wl,-rpath=$(LD_LIBRARY_PATH) $(OPT_BASE) CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH diff --git a/src/Rules.LXpathf95.mk b/src/Rules.LXpathf95.mk index fe34aa467..48ba1c05b 100644 --- a/src/Rules.LXpathf95.mk +++ b/src/Rules.LXpathf95.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -42,7 +42,7 @@ LDFLAGS = -Wl,-noinhibit-exec -Wl,-warn-once CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_MPI_BSEND -DDEV_NULL +CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DMNH_MPI_BSEND -DDEV_NULL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX CPPFLAGS_MNH = -DAINT=INT -DAMOD=MOD -DMNH -DSFX_MNH diff --git a/src/Rules.LXpgi.mk b/src/Rules.LXpgi.mk index 498f56f7b..a91f31843 100644 --- a/src/Rules.LXpgi.mk +++ b/src/Rules.LXpgi.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -34,16 +34,13 @@ LFI_RECL ?=512 # ifneq "$(MNH_REAL)" "4" OPT_BASE += $(OPT_R8) -CPPFLAGS_SURCOUCHE += -DMNH_MPI_DOUBLE_PRECISION endif # OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -100,7 +97,7 @@ CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE += -DMNH_LINUX CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DMNH_PGI -DSFX_MNH diff --git a/src/Rules.SX8.mk b/src/Rules.SX8.mk index abbaf8722..dae21a06d 100644 --- a/src/Rules.SX8.mk +++ b/src/Rules.SX8.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -30,9 +30,7 @@ OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -87,7 +85,7 @@ CPP = cpp -P -traditional -Wcomment AR=sxar # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_SX5 -DMNH_MPI_BSEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE = -DMNH_SX5 -DMNH_MPI_BSEND CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DMNH_SX5 -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH -- GitLab From ec0ad639e4ae31307e654dfa3b01262d2e52a191 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 15 Mar 2019 16:04:42 +0100 Subject: [PATCH 101/139] Philippe 15/03/2019: use MNHINT_NF90 and MNHREAL_NF90 from modd_precision --- src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 | 112 ++++---------------- 1 file changed, 20 insertions(+), 92 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 index 48a3b43be..4307ebbf7 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 @@ -17,13 +17,13 @@ module mode_io_write_nc4 use modd_io_ll, only: gsmonoproc, tfiledata use modd_netcdf, only: dimcdf, iocdf -use modd_precision, only: CDFINT +use modd_precision, only: CDFINT, MNHINT_NF90, MNHREAL_NF90 use mode_field, only: tfielddata use mode_io_tools_nc4, only: cleanmnhname, fillvdims, getdimcdf, getstrdimid, io_handle_err_nc4 use mode_msg -use NETCDF, only: NF90_CHAR, NF90_DOUBLE, NF90_FLOAT, NF90_INT, NF90_INT1, NF90_INT64, & +use NETCDF, only: NF90_CHAR, NF90_FLOAT, NF90_INT1, & NF90_GLOBAL, NF90_NOERR, & NF90_DEF_VAR, NF90_DEF_VAR_DEFLATE, NF90_GET_ATT, NF90_INQ_VARID, & NF90_INQUIRE_ATTRIBUTE, NF90_PUT_ATT, NF90_PUT_VAR @@ -280,20 +280,12 @@ IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf dimensions CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=CDFINT), IVDIMS) ! Define the variable -#if (MNH_REAL == 8) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHREAL_NF90, IVDIMS, IVARID) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X0','NF90_DEF_VAR',trim(YVARNAME)) DEALLOCATE(IVDIMS) ELSE ! Define the scalar variable -#if (MNH_REAL == 8) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHREAL_NF90, IVARID) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X0','NF90_DEF_VAR',trim(YVARNAME)) END IF ELSE @@ -352,11 +344,7 @@ IF (STATUS /= NF90_NOERR) THEN IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) ELSE -#if (MNH_REAL == 8) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHREAL_NF90, IVDIMS, IVARID) END IF IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X1','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for @@ -447,11 +435,7 @@ IF (STATUS /= NF90_NOERR) THEN IF (TZFILE%LNCREDUCE_FLOAT_PRECISION) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) ELSE -#if (MNH_REAL == 8) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHREAL_NF90, IVDIMS, IVARID) END IF IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X2','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for @@ -518,11 +502,7 @@ IF (STATUS /= NF90_NOERR) THEN IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) ELSE -#if (MNH_REAL == 8) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHREAL_NF90, IVDIMS, IVARID) END IF IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X3','NF90_DEF_VAR',trim(YVARNAME)) @@ -590,11 +570,7 @@ IF (STATUS /= NF90_NOERR) THEN IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) ELSE -#if (MNH_REAL == 8) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHREAL_NF90, IVDIMS, IVARID) END IF IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X4','NF90_DEF_VAR',trim(YVARNAME)) @@ -662,11 +638,7 @@ IF (STATUS /= NF90_NOERR) THEN IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) ELSE -#if (MNH_REAL == 8) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHREAL_NF90, IVDIMS, IVARID) END IF IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X5','NF90_DEF_VAR',trim(YVARNAME)) @@ -734,11 +706,7 @@ IF (STATUS /= NF90_NOERR) THEN IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) ELSE -#if (MNH_REAL == 8) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHREAL_NF90, IVDIMS, IVARID) END IF IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X6','NF90_DEF_VAR',trim(YVARNAME)) @@ -803,20 +771,12 @@ IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf dimensions CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=CDFINT), IVDIMS) ! Define the variable -#if ( MNH_INT == 4 ) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT, IVDIMS, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVDIMS, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHINT_NF90, IVDIMS, IVARID) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N0','NF90_DEF_VAR',trim(YVARNAME)) DEALLOCATE(IVDIMS) ELSE ! Define the scalar variable -#if ( MNH_INT == 4 ) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHINT_NF90, IVARID) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N0','NF90_DEF_VAR',trim(YVARNAME)) END IF ELSE @@ -897,11 +857,7 @@ IF (STATUS /= NF90_NOERR) THEN CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=CDFINT), IVDIMS) ! Define the variable -#if ( MNH_INT == 4 ) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT, IVDIMS, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVDIMS, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHINT_NF90, IVDIMS, IVARID) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N1','NF90_DEF_VAR',trim(YVARNAME)) ELSE GEXISTED = .TRUE. @@ -959,11 +915,7 @@ IF (STATUS /= NF90_NOERR) THEN CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=CDFINT), IVDIMS) ! Define the variable -#if ( MNH_INT == 4 ) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT, IVDIMS, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVDIMS, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHINT_NF90, IVDIMS, IVARID) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N2','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TPFILE%LNCCOMPRESS) THEN @@ -1025,11 +977,7 @@ IF (STATUS /= NF90_NOERR) THEN CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=CDFINT), IVDIMS) ! Define the variable -#if ( MNH_INT == 4 ) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT, IVDIMS, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVDIMS, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHINT_NF90, IVDIMS, IVARID) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N3','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TPFILE%LNCCOMPRESS) THEN @@ -1381,11 +1329,7 @@ IF (TPFIELD%LTIMEDEP) & STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN ! Define the scalar variable -#if (MNH_REAL == 8) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHREAL_NF90, IVARID) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_T0','NF90_DEF_VAR',trim(YVARNAME)) ELSE GEXISTED = .TRUE. @@ -1452,11 +1396,7 @@ TZFIELD%CCOMMENT = 'SECONDS' STATUS = NF90_INQ_VARID(INCID, TZFIELD%CMNHNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN ! Define the scalar variable -#if (MNH_REAL == 8) - STATUS = NF90_DEF_VAR(INCID, TZFIELD%CMNHNAME, NF90_DOUBLE, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, TZFIELD%CMNHNAME, NF90_FLOAT, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, TZFIELD%CMNHNAME, MNHREAL_NF90, IVARID) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_T0','NF90_DEF_VAR',trim(TZFIELD%CMNHNAME)) CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TZFIELD,IVARID,GEXISTED) ELSE @@ -1700,11 +1640,7 @@ SUBROUTINE WRITE_HOR_COORD(TDIM,HLONGNAME,HSTDNAME,HAXIS,PSHIFT,KBOUNDLOW,KBOUND STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN ! Define the coordinate variable -#if (MNH_REAL == 8) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIM, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIM, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHREAL_NF90, IVDIM, IVARID) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_DEF_VAR',trim(YVARNAME)) ELSE CALL PRINT_MSG(NVERB_ERROR,'IO','WRITE_HOR_COORD',TRIM(YVARNAME)//' already defined') @@ -1811,11 +1747,7 @@ SUBROUTINE WRITE_VER_COORD(TDIM,HLONGNAME,HSTDNAME,HCOMPNAME,PSHIFT,KBOUNDLOW,KB STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN ! Define the coordinate variable -#if (MNH_REAL == 8) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIM, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIM, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHREAL_NF90, IVDIM, IVARID) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_DEF_VAR',trim(YVARNAME)) ELSE CALL PRINT_MSG(NVERB_ERROR,'IO','WRITE_VER_COORD',TRIM(YVARNAME)//' already defined') @@ -1895,11 +1827,7 @@ SUBROUTINE WRITE_TIME_COORD(TDIM) STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN ! Define the coordinate variable -#if (MNH_REAL == 8) - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIM, IVARID) -#else - STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIM, IVARID) -#endif + STATUS = NF90_DEF_VAR(INCID, YVARNAME, MNHREAL_NF90, IVDIM, IVARID) IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_TIME_COORD','NF90_DEF_VAR',trim(YVARNAME)) ELSE CALL PRINT_MSG(NVERB_ERROR,'IO','WRITE_TIME_COORD',TRIM(YVARNAME)//' already defined') -- GitLab From 45b2ff402619ef71432fe5255ee80274e3cbc822 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 15 Mar 2019 16:05:50 +0100 Subject: [PATCH 102/139] Philippe 15/03/2019: use MNHREAL from modd_precision --- src/MNH/bl89.f90 | 10 +++------- src/MNH/ini_cst.f90 | 23 +++++++++++++---------- src/MNH/mode_RBK90_Integrator.f90 | 7 ++----- 3 files changed, 18 insertions(+), 22 deletions(-) diff --git a/src/MNH/bl89.f90 b/src/MNH/bl89.f90 index 6835f4492..860afcf79 100644 --- a/src/MNH/bl89.f90 +++ b/src/MNH/bl89.f90 @@ -81,6 +81,7 @@ USE MODD_CONF, ONLY: CPROGRAM USE MODD_CST USE MODD_CTURB USE MODD_PARAMETERS +use modd_precision, only: MNHREAL ! ! IMPLICIT NONE @@ -347,13 +348,8 @@ DO JK=IKTB,IKTE !* 7. final mixing length ! DO J1D=1,IIU*IJU -#if (MNH_REAL == 8) - ZLWORK1=MAX(ZLMDN(J1D,JK),1.E-10) - ZLWORK2=MAX(ZLWORK(J1D),1.E-10) -#else - ZLWORK1=MAX(ZLMDN(J1D,JK),1.D-10) - ZLWORK2=MAX(ZLWORK(J1D),1.D-10) -#endif + ZLWORK1=MAX(ZLMDN(J1D,JK),1.E-10_MNHREAL) + ZLWORK2=MAX(ZLWORK(J1D),1.E-10_MNHREAL) ZPOTE = ZLWORK1 / ZLWORK2 ZLWORK2=1.d0 + ZPOTE**(2./3.) ZLM(J1D,JK) = Z2SQRT2*ZLWORK1/(ZLWORK2*SQRT(ZLWORK2)) diff --git a/src/MNH/ini_cst.f90 b/src/MNH/ini_cst.f90 index 9fd09be3a..91526bed4 100644 --- a/src/MNH/ini_cst.f90 +++ b/src/MNH/ini_cst.f90 @@ -71,6 +71,7 @@ END MODULE MODI_INI_CST ! ------------ ! USE MODD_CST +use modd_precision, only: MNHREAL ! IMPLICIT NONE ! @@ -160,17 +161,19 @@ XMNH_HUGE = HUGE (XMNH_HUGE ) XMNH_HUGE_12_LOG = LOG ( SQRT(XMNH_HUGE) ) #if (MNH_REAL == 8) -XMNH_TINY = 1.0e-80 -XEPS_DT = 1.0e-5 -XRES_FLAT_CART = 1.0e-12 -XRES_OTHER = 1.0e-9 -XRES_PREP = 1.0e-8 -#else +XMNH_TINY = 1.0e-80_MNHREAL +XEPS_DT = 1.0e-5_MNHREAL +XRES_FLAT_CART = 1.0e-12_MNHREAL +XRES_OTHER = 1.0e-9_MNHREAL +XRES_PREP = 1.0e-8_MNHREAL +#elif (MNH_REAL == 4) XMNH_TINY = TINY (XMNH_TINY ) -XEPS_DT = 1.5e-4 -XRES_FLAT_CART = 1.0e-12 -XRES_OTHER = 1.0e-7 -XRES_PREP = 1.0e-4 +XEPS_DT = 1.5e-4_MNHREAL +XRES_FLAT_CART = 1.0e-12_MNHREAL +XRES_OTHER = 1.0e-7_MNHREAL +XRES_PREP = 1.0e-4_MNHREAL +#else +#error "Invalid MNH_REAL" #endif XMNH_TINY_12 = SQRT (XMNH_TINY ) diff --git a/src/MNH/mode_RBK90_Integrator.f90 b/src/MNH/mode_RBK90_Integrator.f90 index f1e50b243..ae11720e3 100644 --- a/src/MNH/mode_RBK90_Integrator.f90 +++ b/src/MNH/mode_RBK90_Integrator.f90 @@ -61,6 +61,7 @@ MODULE MODE_RBK90_Integrator USE MODD_RBK90_JacobianSP_n, ONLY: LU_DIM_SPECIES USE MODD_RBK90_Parameters_n, ONLY: NVAR USE MODD_RBK90_Global_n, ONLY: STEPMIN + use modd_precision, only: MNHREAL IMPLICIT NONE PUBLIC SAVE @@ -737,11 +738,7 @@ Stage: DO istage = 1, ros_S END DO Err = SQRT(Err/N) -#if (MNH_REAL == 8) - ros_ErrorNorm = MAX(Err,1.0e-10) -#else - ros_ErrorNorm = MAX(Err,1.0d-10) -#endif + ros_ErrorNorm = MAX(Err,1.0e-10_MNHREAL) END FUNCTION ros_ErrorNorm -- GitLab From 4b33784b4b48e8710f8fb6c65f33ed1211f00789 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 20 Mar 2019 14:16:06 +0100 Subject: [PATCH 103/139] Philippe & Juan 20/03/2019: missing use modi_init_salt in prep_real_case --- src/MNH/prep_real_case.f90 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90 index b4ea670d8..fb4a84e42 100644 --- a/src/MNH/prep_real_case.f90 +++ b/src/MNH/prep_real_case.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -380,6 +380,7 @@ !! B.VIE 2016 : LIMA !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 20/03/2019: missing use MODI_INIT_SALT !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -438,6 +439,7 @@ USE MODI_DEALLOC_PARA_LL USE MODI_DEFAULT_DESFM_n USE MODI_ERROR_ON_TEMPERATURE USE MODI_INI_PROG_VAR +USE MODI_INIT_SALT USE MODI_METRICS USE MODI_MNHREAD_ZS_DUMMY_n USE MODI_MNHWRITE_ZS_DUMMY_n -- GitLab From 886793d493b32c950b573ef3a3e06eacdf0c0ed8 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 20 Mar 2019 14:17:43 +0100 Subject: [PATCH 104/139] Philippe & Juan 20/03/2019: SURFEX: missing use modi_get_luout in coupling_seaflux_n --- src/SURFEX/coupling_seafluxn.F90 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/SURFEX/coupling_seafluxn.F90 b/src/SURFEX/coupling_seafluxn.F90 index a7c421d68..612b8df12 100644 --- a/src/SURFEX/coupling_seafluxn.F90 +++ b/src/SURFEX/coupling_seafluxn.F90 @@ -51,7 +51,7 @@ SUBROUTINE COUPLING_SEAFLUX_n (CHS, DTS, DGS, O, OR, G, S, DST, SLT, & !! Modified 11/2014 : J. Pianezze : add currents for wave coupling !! Modified 02/2019 : S. Bielli Sea salt : significant sea wave height influences salt emission; 5 salt modes !! Modified 03/2019 : P. Wautelet: correct ZWS when variable not present in file -!! +!! Modified 03/2019 : P. Wautelet: missing use MODI_GET_LUOUT !!--------------------------------------------------------------------- ! ! @@ -109,6 +109,7 @@ USE MODI_COUPLING_ICEFLUX_n USE MODI_SEAICE_GELATO1D_n ! USE MODI_COUPLING_SLT_n +USE MODI_GET_LUOUT ! IMPLICIT NONE ! -- GitLab From 8f49cb74de97ddb8d5cbcb6a157eb7f6b791887c Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 20 Mar 2019 14:21:06 +0100 Subject: [PATCH 105/139] Philippe 20/03/2019: wrong order of the dummy arguments + double deallocate --- src/MNH/spawn_lsn.f90 | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/MNH/spawn_lsn.f90 b/src/MNH/spawn_lsn.f90 index b7e8c6605..88d40d981 100644 --- a/src/MNH/spawn_lsn.f90 +++ b/src/MNH/spawn_lsn.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1997-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 nesting 2006/06/19 11:16:39 -!----------------------------------------------------------------- ! #################### MODULE MODI_SPAWN_LS_n ! #################### @@ -68,8 +63,8 @@ END MODULE MODI_SPAWN_LS_n KDXRATIO,KDYRATIO, & HLBCX,HLBCY,PZZ,PZHAT,OSLEVE,PLEN1,PLEN2, & PCOEFLIN_LBXM, & - PLSTHM,PLSRVM,PLSZWSM, & - PLSUM,PLSVM,PLSWM, & + PLSTHM,PLSRVM, & + PLSUM,PLSVM,PLSWM,PLSZWSM, & PLSTHS,PLSRVS, & PLSUS,PLSVS,PLSWS,PLSZWSS ) ! ################################################################ @@ -129,6 +124,7 @@ END MODULE MODI_SPAWN_LS_n !! P. Jabouille 19/04/00 parallelisation !! J.Escobar : 18/12/2015 : Correction of bug in bound in // for NHALO <>1 !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 20/03/2019: fixes: wrong order of the dummy arguments + double deallocate !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -474,9 +470,8 @@ END IF ! PLSVS(:,:,:) = (PLSVS(:,:,:) - PLSVM(:,:,:)) / ZTIME ! -DEALLOCATE(ZTLSUM,ZTLSVM,ZTLSWM,ZTLSTHM,ZTLSRVM) -IF(GVERT_INTERP) DEALLOCATE(ZTZS,ZZS) DEALLOCATE(ZTLSUM,ZTLSVM,ZTLSWM,ZTLSTHM,ZTLSRVM,ZTZWS) +IF(GVERT_INTERP) DEALLOCATE(ZTZS,ZZS) IF(GVERT_INTERP) DEALLOCATE(ZTZSMT,ZZSMT) ! NULLIFY(TZLSFIELD_ll) -- GitLab From f88d574bdbcb2831aaa66afc424433378d48f37e Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 20 Mar 2019 14:25:25 +0100 Subject: [PATCH 106/139] Philippe 20/03/2019: bugfix: use size(ZDIRFLASWD,3) instead of SIZE(PDIRFLASWD,3) for loop for ZDIRFLASWD(:,:,JVAR) --- src/MNH/two_wayn.f90 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/MNH/two_wayn.f90 b/src/MNH/two_wayn.f90 index ff6e46c09..5e114001e 100644 --- a/src/MNH/two_wayn.f90 +++ b/src/MNH/two_wayn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1997-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1997-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -112,7 +112,8 @@ END MODULE MODI_TWO_WAY_n !! Bosseur & Filippi 07/2013 Adds Forefire !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Modification 01/2016 (JP Pinty) Add LIMA -!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 20/03/2019: bugfix: use size(ZDIRFLASWD,3) instead of SIZE(PDIRFLASWD,3) for loop for ZDIRFLASWD(:,:,JVAR) !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -1011,7 +1012,7 @@ IF (CDCONV /= 'NONE') THEN CALL SET_LSFIELD_2WAY_ll(ZPRSCONV , ZTPRSCONV) END IF IF (CRAD /= 'NONE') THEN - DO JVAR=1,SIZE( PDIRFLASWD,3) + DO JVAR = 1, SIZE(ZDIRFLASWD, 3) CALL SET_LSFIELD_2WAY_ll(ZDIRFLASWD(:,:,JVAR) , ZTDIRFLASWD(:,:,JVAR)) CALL SET_LSFIELD_2WAY_ll(ZSCAFLASWD(:,:,JVAR) , ZTSCAFLASWD(:,:,JVAR)) CALL SET_LSFIELD_2WAY_ll(ZDIRSRFSWD(:,:,JVAR) , ZTDIRSRFSWD(:,:,JVAR)) -- GitLab From 8bbe44f89afeab171822341321cd47aa1d12bccd Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Wed, 20 Mar 2019 15:09:17 +0100 Subject: [PATCH 107/139] Quentin 20/03/2019: minor, missing CALL SECOND_MNH(ZTIME1) for computing time diagnostic --- src/MNH/ver_prep_netcdf_case.f90 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/MNH/ver_prep_netcdf_case.f90 b/src/MNH/ver_prep_netcdf_case.f90 index df0f3b7fc..c17a1c963 100644 --- a/src/MNH/ver_prep_netcdf_case.f90 +++ b/src/MNH/ver_prep_netcdf_case.f90 @@ -84,6 +84,7 @@ END MODULE MODI_VER_PREP_NETCDF_CASE !! May 2006 Remove EPS !! Oct 2017 (J.Escobar) minor, missing USE MODI_SECOND_MNH !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! Mars 2019 (Q. Rodier): missing SECOND_MNH(ZTIME1) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -141,6 +142,7 @@ INTEGER :: JK ! loop counter !------------------------------------------------------------------------------- ! ILUOUT0 = TLUOUT0%NLU +CALL SECOND_MNH(ZTIME1) ! !* 1. CHANGING OF VARIABLES ! --------------------- @@ -190,7 +192,7 @@ DEALLOCATE(ZSV_LS) !* 3. ERROR CONTROL ! ------------- ! -CALL SECOND_MNH(ZTIME1) +CALL SECOND_MNH(ZTIME2) PDIAG = ZTIME2 - ZTIME1 ! !------------------------------------------------------------------------------- -- GitLab From 4514caa0ef670d65dd0783d3451eb96e64b9de58 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 21 Mar 2019 13:38:09 +0100 Subject: [PATCH 108/139] Philippe 21/03/2019: remove LFI_RECL compilation key --- src/Makefile.MESONH.mk | 4 ---- src/Rules.AIX64.mk | 3 +-- src/Rules.BG.mk | 3 +-- src/Rules.BGQ.mk | 3 +-- src/Rules.LXNAGfor.mk | 3 +-- src/Rules.LXarm.mk | 3 +-- src/Rules.LXcray.mk | 3 +-- src/Rules.LXg95.mk | 4 +--- src/Rules.LXgfortran.mk | 3 +-- src/Rules.LXifort.mk | 3 +-- src/Rules.LXpgi.mk | 3 +-- src/Rules.SX8.mk | 3 +-- 12 files changed, 11 insertions(+), 27 deletions(-) diff --git a/src/Makefile.MESONH.mk b/src/Makefile.MESONH.mk index 3aa94d76f..f13c78f64 100644 --- a/src/Makefile.MESONH.mk +++ b/src/Makefile.MESONH.mk @@ -229,10 +229,6 @@ OBJS_I8=spll_NEWLFI_ALL.o $(OBJS_I8) : OPT = $(OPT_BASE) $(OPT_PERF2) $(OPT_INT8) endif # -# Management/parametrisation of size of RECL for LFI I/O speedup -# -LFI_RECL?=512 -# DIR_MASTER += $(DIR_NEWLFI) CPPFLAGS += $(CPPFLAGS_NEWLFI) OBJS_LISTE_MASTER += fswap8buff.o diff --git a/src/Rules.AIX64.mk b/src/Rules.AIX64.mk index 232403995..66354ef6c 100644 --- a/src/Rules.AIX64.mk +++ b/src/Rules.AIX64.mk @@ -25,7 +25,6 @@ OPT_I8 = -qintsize=8 # Integer 4/8 option # MNH_INT ?=4 -LFI_RECL ?=512 # OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" @@ -86,7 +85,7 @@ CPP = /usr/lib/cpp -C -P -qlanglvl=classic CPPFLAGS_SURFEX = CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_SP4 -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = -CPPFLAGS_NEWLFI = -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} +CPPFLAGS_NEWLFI = -DLINUX -DLFI_INT=${LFI_INT} CPPFLAGS_MNH = -DAMAX1=MAX -DMNH -DSFX_MNH # # Gribex flags diff --git a/src/Rules.BG.mk b/src/Rules.BG.mk index ced46f4b4..444869a73 100644 --- a/src/Rules.BG.mk +++ b/src/Rules.BG.mk @@ -30,7 +30,6 @@ OPT_I4 = -qintsize=4 # Integer 4/8 option # MNH_INT ?=4 -LFI_RECL ?=512 # OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" @@ -97,7 +96,7 @@ CPPFLAGS_SURFEX = #CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_SP4 -DMNH_MPI_ISEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_SP4 -DMNH_MPI_BSEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = -CPPFLAGS_NEWLFI = -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} +CPPFLAGS_NEWLFI = -DLINUX -DLFI_INT=${LFI_INT} CPPFLAGS_MNH = -DAMAX1=MAX -DMNH -DSFX_MNH # # Gribex flags diff --git a/src/Rules.BGQ.mk b/src/Rules.BGQ.mk index 69d8268eb..bf050c317 100644 --- a/src/Rules.BGQ.mk +++ b/src/Rules.BGQ.mk @@ -34,7 +34,6 @@ OPT_I4 = -qintsize=4 -qxlf77=intarg # MNH_REAL ?=8 MNH_INT ?=4 -LFI_RECL ?=512 # OPT_BASE_I4 := $(OPT_BASE) $(OPT_I4) ifeq "$(MNH_INT)" "8" @@ -146,7 +145,7 @@ CPPFLAGS_SURFEX = #CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_SP4 -DMNH_MPI_ISEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_SP4 -DMNH_MPI_BSEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) -DSNGL=REAL CPPFLAGS_RAD = -CPPFLAGS_NEWLFI = -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} +CPPFLAGS_NEWLFI = -DLINUX -DLFI_INT=${LFI_INT} CPPFLAGS_MNH = -DAMAX1=MAX -DMNH -DSFX_MNH # # Rules for GA = Global Array diff --git a/src/Rules.LXNAGfor.mk b/src/Rules.LXNAGfor.mk index 6d4220480..b25f67d91 100644 --- a/src/Rules.LXNAGfor.mk +++ b/src/Rules.LXNAGfor.mk @@ -19,7 +19,6 @@ OPT_R8 = -r8 # MNH_REAL ?=8 MNH_INT ?=4 -LFI_RECL ?=512 # # ifneq "$(MNH_REAL)" "4" @@ -74,7 +73,7 @@ CPP = cpp -P -traditional -Wcomment CPPFLAGS_SURFEX = CPPFLAGS_SURCOUCHE += -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = -CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} +CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} CPPFLAGS_MNH = -DMNH -DSFX_MNH # diff --git a/src/Rules.LXarm.mk b/src/Rules.LXarm.mk index 7a612027d..ecaf40945 100644 --- a/src/Rules.LXarm.mk +++ b/src/Rules.LXarm.mk @@ -29,7 +29,6 @@ OPT_R8 = -r8 # MNH_REAL ?=8 MNH_INT ?=4 -LFI_RECL ?=512 # # ifneq "$(MNH_REAL)" "4" @@ -90,7 +89,7 @@ CPP = cpp -P -traditional -Wcomment CPPFLAGS_SURFEX = CPPFLAGS_SURCOUCHE += -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = -CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} +CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} CPPFLAGS_MNH = -DMNH -DSFX_MNH ifdef VER_GA CPPFLAGS_SURCOUCHE += -DMNH_GA diff --git a/src/Rules.LXcray.mk b/src/Rules.LXcray.mk index 3602bcc51..be29f2b68 100644 --- a/src/Rules.LXcray.mk +++ b/src/Rules.LXcray.mk @@ -22,7 +22,6 @@ OPT_I8 = -sdefault64 # Integer 4/8 option # MNH_INT ?=4 -LFI_RECL ?=512 # OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" @@ -86,7 +85,7 @@ CPP = cpp -P -traditional -Wcomment CPPFLAGS_SURFEX = CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = -CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} +CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} CPPFLAGS_MNH = -DMNH -DSFX_MNH ifdef VER_GA CPPFLAGS_SURCOUCHE += -DMNH_GA diff --git a/src/Rules.LXg95.mk b/src/Rules.LXg95.mk index 62b3d39ca..d4ee573a5 100644 --- a/src/Rules.LXg95.mk +++ b/src/Rules.LXg95.mk @@ -18,7 +18,6 @@ OPT_I8 = -i8 # Integer 4/8 option # MNH_INT ?=4 -LFI_RECL ?=512 # OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" @@ -64,11 +63,10 @@ LDFLAGS = -Wl,-warn-once CPP = cpp -P -traditional -Wcomment # LFI_INT ?=4 -LFI_RECL ?=512 CPPFLAGS_SURFEX = CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_MPI_BSEND -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = -CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} +CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} CPPFLAGS_MNH = -DAINT=INT -DAMOD=MOD -DMNH -DSFX_MNH # # Gribex flags diff --git a/src/Rules.LXgfortran.mk b/src/Rules.LXgfortran.mk index ce4c05ef7..cbe49e42e 100644 --- a/src/Rules.LXgfortran.mk +++ b/src/Rules.LXgfortran.mk @@ -26,7 +26,6 @@ OPT_R8 = -fdefault-real-8 -fdefault-double-8 # MNH_REAL ?=8 MNH_INT ?=4 -LFI_RECL ?=512 # # ifneq "$(MNH_REAL)" "4" @@ -82,7 +81,7 @@ CPP = cpp -P -traditional -Wcomment CPPFLAGS_SURFEX = CPPFLAGS_SURCOUCHE += -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = -CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} +CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} CPPFLAGS_MNH = -DMNH -DSFX_MNH ifdef VER_GA CPPFLAGS_SURCOUCHE += -DMNH_GA diff --git a/src/Rules.LXifort.mk b/src/Rules.LXifort.mk index 1133f292b..23f4c3f7d 100644 --- a/src/Rules.LXifort.mk +++ b/src/Rules.LXifort.mk @@ -21,7 +21,6 @@ OPT_R8 = -r8 # MNH_REAL ?=8 MNH_INT ?=4 -LFI_RECL ?=512 # ifneq "$(MNH_REAL)" "4" OPT_BASE += $(OPT_R8) @@ -179,7 +178,7 @@ CPP = cpp -P -traditional -Wcomment CPPFLAGS_SURFEX = CPPFLAGS_SURCOUCHE += -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = -CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} +CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} CPPFLAGS_MNH = -DMNH -DSFX_MNH ifdef VER_GA CPPFLAGS_SURCOUCHE += -DMNH_GA diff --git a/src/Rules.LXpgi.mk b/src/Rules.LXpgi.mk index 6296bbea4..0a1fc76d7 100644 --- a/src/Rules.LXpgi.mk +++ b/src/Rules.LXpgi.mk @@ -30,7 +30,6 @@ IGNORE_OBJS += pgprof.o # MNH_REAL ?=8 MNH_INT ?=4 -LFI_RECL ?=512 # ifneq "$(MNH_REAL)" "4" OPT_BASE += $(OPT_R8) @@ -102,7 +101,7 @@ CPP = cpp -P -traditional -Wcomment CPPFLAGS_SURFEX = CPPFLAGS_SURCOUCHE += -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = -CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} +CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} CPPFLAGS_MNH = -DMNH -DMNH_PGI -DSFX_MNH # diff --git a/src/Rules.SX8.mk b/src/Rules.SX8.mk index abbaf8722..c3c00c854 100644 --- a/src/Rules.SX8.mk +++ b/src/Rules.SX8.mk @@ -24,7 +24,6 @@ OPT_I8 = -ew # Integer 4/8 option # MNH_INT ?=4 -LFI_RECL ?=512 # OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" @@ -89,7 +88,7 @@ AR=sxar CPPFLAGS_SURFEX = CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_SX5 -DMNH_MPI_BSEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) CPPFLAGS_RAD = -CPPFLAGS_NEWLFI = -DMNH_SX5 -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} +CPPFLAGS_NEWLFI = -DMNH_SX5 -DLFI_INT=${LFI_INT} CPPFLAGS_MNH = -DMNH -DSFX_MNH # # Gribex flags -- GitLab From 6175af5e9d3a029e977cb2fb185245a873577d15 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 22 Mar 2019 15:08:58 +0100 Subject: [PATCH 109/139] Philippe 22/03/2019: replace MPI_PRECISION and MPI_2PRECISION by MNHREAL_MPI and MNH2REAL_MPI --- src/LIB/SURCOUCHE/src/modd_var_ll.f90 | 17 +- src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90 | 27 ++- src/LIB/SURCOUCHE/src/mode_exchange_ll.f90 | 75 +++++---- src/LIB/SURCOUCHE/src/mode_init_ll.f90 | 6 - src/LIB/SURCOUCHE/src/mode_mppdb.f90 | 25 ++- src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 | 22 +-- src/LIB/SURCOUCHE/src/mode_sum2_ll.f90 | 27 +-- src/LIB/SURCOUCHE/src/mode_sum_ll.f90 | 163 +++++++------------ src/LIB/SURCOUCHE/src/mode_tools_ll.f90 | 86 ++++------ src/MNH/clustering.f90 | 19 ++- src/MNH/extend_grid_parameter_mnh.f90 | 18 +- src/MNH/flash_geom_elec.f90 | 96 +++++------ src/MNH/modd_precision.f90 | 29 +++- src/MNH/mode_elec_ll.f90 | 15 +- src/MNH/prep_ideal_case.f90 | 8 +- src/MNH/pressurez.f90 | 5 +- src/MNH/retrieve2_nest_infon.f90 | 55 ++++--- src/MNH/spawn_model2.f90 | 3 +- src/MNH/spawn_zs.f90 | 11 +- src/MNH/write_lfifm1_for_diag.f90 | 3 +- src/SURFEX/mode_gridtype_conf_proj.F90 | 7 +- 21 files changed, 312 insertions(+), 405 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/modd_var_ll.f90 b/src/LIB/SURCOUCHE/src/modd_var_ll.f90 index b0688132f..cffb275aa 100644 --- a/src/LIB/SURCOUCHE/src/modd_var_ll.f90 +++ b/src/LIB/SURCOUCHE/src/modd_var_ll.f90 @@ -1,17 +1,8 @@ - -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1999-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- ! ################## MODULE MODD_VAR_ll @@ -46,6 +37,7 @@ ! Original 04/05/99 ! Modifications ! J.Escobar 5/06/2018 : add cpp key MNH_USE_MPI_STATUSES_IGNORE for use of true MPI_STATUSES_IGNORE +! P. Wautelet 22/03/2019: remove MPI_PRECISION and MPI_2PRECISION (replaced by MNHREAL_MPI and MNH2REAL_MPI in modd_precision) !------------------------------------------------------------------------------- ! USE MODD_STRUCTURE_ll @@ -118,11 +110,6 @@ INTEGER,SAVE :: NZ_PROC_ll = 0 ! Number of proc to use in the Z splitting ! DIMX = NIMAX + 2*JPHEXT ... ! INTEGER :: DIMX,DIMY,DIMZ -! -! MPI_PRECISION, MPI_2PRECISION -! - INTEGER :: MPI_PRECISION - INTEGER :: MPI_2PRECISION ! INTEGER, PARAMETER :: NTMAX = 100 ! diff --git a/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90 b/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90 index 767482a5c..dec89ca37 100644 --- a/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90 @@ -1,14 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ !----------------------------------------------------------------- !Correction : ! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 @@ -61,14 +55,14 @@ ! and local processor ! NHALO2_COM - MPI communicator for halo 2 ! NCOMBUFFSIZE2 - buffer size -! MPI_PRECISION - mpi precision +! MNHREAL_MPI - mpi precision ! NNEXTTAG, NMAXTAG - variable to define message tag ! !! Modifications !! ------------- ! Original May 19, 1998 ! R. Guivarch June 24, 1998 _ll -! R. Guivarch June 29, 1998 MPI_PRECISION +! R. Guivarch June 29, 1998 MNHREAL_MPI ! N. Gicquel October 30, 1998 COPY_CRSPD2 ! J.Escobar 10/02/2012 : Bug , in MPI_RECV replace ! MPI_STATUSES_IGNORE with MPI_STATUS_IGNORE @@ -691,7 +685,6 @@ ! Module MODD_VAR_ll ! IP - Number of local processor=subdomain ! NCOMBUFFSIZE2 - buffer size -! MPI_PRECISION - mpi precision ! NNEXTTAG, NMAXTAG - variable to define message tag ! !! Reference @@ -707,8 +700,8 @@ ! USE MODD_STRUCTURE_ll, ONLY : CRSPD_ll, ZONE_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll, HALO2LIST_ll -! - USE MODD_VAR_ll, ONLY : NCOMBUFFSIZE2, IP, MPI_PRECISION, NNEXTTAG, NMAXTAG + use modd_precision, only: MNHREAL_MPI + USE MODD_VAR_ll, ONLY : NCOMBUFFSIZE2, IP, NNEXTTAG, NMAXTAG USE MODE_EXCHANGE_ll, ONLY : FILLIN_BUFFERS USE MODD_MPIF !JUANZ @@ -829,13 +822,13 @@ INTEGER :: NB_REQ,NFIRST_REQ_RECV !JUAN !if defined(MNH_MPI_BSEND) IF (LMNH_MPI_BSEND) THEN - CALL MPI_BSEND(TZBUFFER, JINC, MPI_PRECISION, & + CALL MPI_BSEND(TZBUFFER, JINC, MNHREAL_MPI, & TZZONESEND%NUMBER - 1, TZZONESEND%MSSGTAG + ITAGOFFSET, & KMPI_COMM, KERROR) else !JUAN !if defined(MNH_MPI_ISEND) - CALL MPI_ISEND(TZBUFFER(1,NB_REQ), JINC, MPI_PRECISION, & + CALL MPI_ISEND(TZBUFFER(1,NB_REQ), JINC, MNHREAL_MPI, & TZZONESEND%NUMBER - 1, TZZONESEND%MSSGTAG + ITAGOFFSET, & KMPI_COMM, REQ_TAB(NB_REQ), KERROR) @@ -864,12 +857,12 @@ else !if defined (MNH_MPI_ISEND) IF ( .NOT. LMNH_MPI_BSEND) THEN NB_REQ = NB_REQ + 1 - CALL MPI_IRECV(TZBUFFER(1,NB_REQ), NCOMBUFFSIZE2, MPI_PRECISION, & + CALL MPI_IRECV(TZBUFFER(1,NB_REQ), NCOMBUFFSIZE2, MNHREAL_MPI, & TPMAILRECV%TELT%NUMBER-1, & TPMAILRECV%TELT%MSSGTAG + ITAGOFFSET, & KMPI_COMM, REQ_TAB(NB_REQ), KERROR) else - CALL MPI_RECV(TZBUFFER, NCOMBUFFSIZE2, MPI_PRECISION, & + CALL MPI_RECV(TZBUFFER, NCOMBUFFSIZE2, MNHREAL_MPI, & TPMAILRECV%TELT%NUMBER-1, & TPMAILRECV%TELT%MSSGTAG + ITAGOFFSET, & KMPI_COMM, MPI_STATUS_IGNORE, KERROR) diff --git a/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90 b/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90 index 0dff8c59c..6e85037bd 100644 --- a/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications: @@ -37,7 +37,6 @@ ! IP - Number of local processor=subdomain ! TCRRT_COMDATA - Current communication data structure for current model ! and local processor -! MPI_PRECISION - mpi precision ! JPHALO - size of the halo ! NCOMBUFFSIZE1 - buffer sizs ! NHALO_COM - mpi communicator @@ -68,7 +67,7 @@ !! Modifications !! ------------- ! Original May 19, 1998 -! R. Guivarch June 29, 1998 MPI_PRECISION +! R. Guivarch June 29, 1998 MNHREAL_MPI ! N. Gicquel, P. Kloos - October 01, 1998 - COPY_CRSPD, ! COPY_ZONE, COPY_CRSPD_TRANS, COPY_ZONE_TRANS ! M. Moge 01/12/14 UPDATE_HALO_EXTENDED @@ -398,7 +397,6 @@ ! Module MODD_VAR_ll ! TCRRT_COMDATA - Current communication data structure for current model ! and local processor -! MPI_PRECISION - mpi precision ! JPHALO - size of the halo ! ! Module MODD_DIM_ll @@ -418,7 +416,8 @@ !* 0. DECLARATIONS ! USE MODD_DIM_ll, ONLY : CLBCX, CLBCY - USE MODD_VAR_ll, ONLY : TCRRT_COMDATA, MPI_PRECISION, JPHALO + use modd_precision, only: MNHREAL_MPI + USE MODD_VAR_ll, ONLY : TCRRT_COMDATA, JPHALO ! USE MODE_TOOLS_ll, ONLY : GET_INDICE_ll, LEAST_ll, LWEST_ll !JUANZ @@ -475,12 +474,12 @@ INTEGER :: NB_REQ ! !if defined(MNH_MPI_BSEND) IF (LMNH_MPI_BSEND) THEN - CALL MPI_BSEND(PFIELD(IXOR), JPHALO, MPI_PRECISION, & + CALL MPI_BSEND(PFIELD(IXOR), JPHALO, MNHREAL_MPI, & TCRRT_COMDATA%HALO1DX%NSEND_WEST(J)-1, & 1, NMNH_COMM_WORLD, KINFO) else NB_REQ = NB_REQ + 1 - CALL MPI_ISEND(PFIELD(IXOR), JPHALO, MPI_PRECISION, & + CALL MPI_ISEND(PFIELD(IXOR), JPHALO, MNHREAL_MPI, & TCRRT_COMDATA%HALO1DX%NSEND_WEST(J)-1, & 1, NMNH_COMM_WORLD, REQ_TAB(NB_REQ), KINFO) @@ -492,14 +491,14 @@ INTEGER :: NB_REQ ! !if defined(MNH_MPI_BSEND) IF (LMNH_MPI_BSEND) THEN - CALL MPI_BSEND(PFIELD(IXEND-JPHALO+1), JPHALO, MPI_PRECISION, & + CALL MPI_BSEND(PFIELD(IXEND-JPHALO+1), JPHALO, MNHREAL_MPI, & TCRRT_COMDATA%HALO1DX%NSEND_EAST(J)-1, & 2, NMNH_COMM_WORLD, KINFO) else !JUAN !if defined(MNH_MPI_ISEND) NB_REQ = NB_REQ + 1 - CALL MPI_ISEND(PFIELD(IXEND-JPHALO+1), JPHALO, MPI_PRECISION, & + CALL MPI_ISEND(PFIELD(IXEND-JPHALO+1), JPHALO, MNHREAL_MPI, & TCRRT_COMDATA%HALO1DX%NSEND_EAST(J)-1, & 2, NMNH_COMM_WORLD, REQ_TAB(NB_REQ), KINFO) @@ -519,11 +518,11 @@ INTEGER :: NB_REQ !if defined(MNH_MPI_ISEND) IF ( .NOT. LMNH_MPI_BSEND) THEN NB_REQ = NB_REQ + 1 - CALL MPI_IRECV(PFIELD(IXEND+1), JPHALO, MPI_PRECISION, & + CALL MPI_IRECV(PFIELD(IXEND+1), JPHALO, MNHREAL_MPI, & TCRRT_COMDATA%HALO1DX%NRECV_EAST-1, 1, & NMNH_COMM_WORLD, REQ_TAB(NB_REQ), KINFO) else - CALL MPI_RECV(PFIELD(IXEND+1), JPHALO, MPI_PRECISION, & + CALL MPI_RECV(PFIELD(IXEND+1), JPHALO, MNHREAL_MPI, & TCRRT_COMDATA%HALO1DX%NRECV_EAST-1, 1, & NMNH_COMM_WORLD, ISTATUS, KINFO) endif @@ -537,11 +536,11 @@ INTEGER :: NB_REQ !if defined(MNH_MPI_ISEND) IF ( .NOT. LMNH_MPI_BSEND) THEN NB_REQ = NB_REQ + 1 - CALL MPI_IRECV(PFIELD(1), JPHALO, MPI_PRECISION, & + CALL MPI_IRECV(PFIELD(1), JPHALO, MNHREAL_MPI, & TCRRT_COMDATA%HALO1DX%NRECV_WEST-1, 2, & NMNH_COMM_WORLD, REQ_TAB(NB_REQ), KINFO) else - CALL MPI_RECV(PFIELD(1), JPHALO, MPI_PRECISION, & + CALL MPI_RECV(PFIELD(1), JPHALO, MNHREAL_MPI, & TCRRT_COMDATA%HALO1DX%NRECV_WEST-1, 2, & NMNH_COMM_WORLD, ISTATUS, KINFO) endif @@ -586,7 +585,6 @@ INTEGER :: NB_REQ ! Module MODD_VAR_ll ! TCRRT_COMDATA - Current communication data structure for current model ! and local processor -! MPI_PRECISION - mpi precision ! JPHALO - size of the halo ! ! Module MODD_DIM_ll @@ -598,7 +596,8 @@ INTEGER :: NB_REQ !* 0. DECLARATIONS ! USE MODD_DIM_ll, ONLY : CLBCX, CLBCY - USE MODD_VAR_ll, ONLY : TCRRT_COMDATA, JPHALO, MPI_PRECISION + use modd_precision, only: MNHREAL_MPI + USE MODD_VAR_ll, ONLY : TCRRT_COMDATA, JPHALO ! USE MODE_TOOLS_ll, ONLY : GET_INDICE_ll, LNORTH_ll, LSOUTH_ll ! @@ -654,13 +653,13 @@ INTEGER :: NB_REQ ! !if defined(MNH_MPI_BSEND) IF (LMNH_MPI_BSEND) THEN - CALL MPI_BSEND(PFIELD(IYOR), JPHALO, MPI_PRECISION, & + CALL MPI_BSEND(PFIELD(IYOR), JPHALO, MNHREAL_MPI, & TCRRT_COMDATA%HALO1DY%NSEND_SOUTH(J)-1, & 1, NMNH_COMM_WORLD, KINFO) else NB_REQ = NB_REQ + 1 - CALL MPI_ISEND(PFIELD(IYOR), JPHALO, MPI_PRECISION, & + CALL MPI_ISEND(PFIELD(IYOR), JPHALO, MNHREAL_MPI, & TCRRT_COMDATA%HALO1DY%NSEND_SOUTH(J)-1, & 1, NMNH_COMM_WORLD, REQ_TAB(NB_REQ), KINFO) @@ -672,14 +671,14 @@ INTEGER :: NB_REQ ! !if defined(MNH_MPI_BSEND) IF (LMNH_MPI_BSEND) THEN - CALL MPI_BSEND(PFIELD(IYEND-JPHALO+1), JPHALO, MPI_PRECISION, & + CALL MPI_BSEND(PFIELD(IYEND-JPHALO+1), JPHALO, MNHREAL_MPI, & TCRRT_COMDATA%HALO1DY%NSEND_NORTH(J)-1, & 2, NMNH_COMM_WORLD, KINFO) else !JUAN !if defined(MNH_MPI_ISEND) NB_REQ = NB_REQ + 1 - CALL MPI_ISEND(PFIELD(IYEND-JPHALO+1), JPHALO, MPI_PRECISION, & + CALL MPI_ISEND(PFIELD(IYEND-JPHALO+1), JPHALO, MNHREAL_MPI, & TCRRT_COMDATA%HALO1DY%NSEND_NORTH(J)-1, & 2, NMNH_COMM_WORLD, REQ_TAB(NB_REQ), KINFO) @@ -698,11 +697,11 @@ INTEGER :: NB_REQ !if defined(MNH_MPI_ISEND) IF ( .NOT. LMNH_MPI_BSEND) THEN NB_REQ = NB_REQ + 1 - CALL MPI_IRECV(PFIELD(IYEND+1), JPHALO, MPI_PRECISION, & + CALL MPI_IRECV(PFIELD(IYEND+1), JPHALO, MNHREAL_MPI, & TCRRT_COMDATA%HALO1DY%NRECV_NORTH-1, 1, & NMNH_COMM_WORLD, REQ_TAB(NB_REQ), KINFO) else - CALL MPI_RECV(PFIELD(IYEND+1), JPHALO, MPI_PRECISION, & + CALL MPI_RECV(PFIELD(IYEND+1), JPHALO, MNHREAL_MPI, & TCRRT_COMDATA%HALO1DY%NRECV_NORTH-1, 1, & NMNH_COMM_WORLD, ISTATUS, KINFO) endif @@ -716,11 +715,11 @@ INTEGER :: NB_REQ !if defined(MNH_MPI_ISEND) IF ( .NOT. LMNH_MPI_BSEND) THEN NB_REQ = NB_REQ + 1 - CALL MPI_IRECV(PFIELD(1), JPHALO, MPI_PRECISION, & + CALL MPI_IRECV(PFIELD(1), JPHALO, MNHREAL_MPI, & TCRRT_COMDATA%HALO1DY%NRECV_SOUTH-1, 2, & NMNH_COMM_WORLD, REQ_TAB(NB_REQ), KINFO) else - CALL MPI_RECV(PFIELD(1), JPHALO, MPI_PRECISION, & + CALL MPI_RECV(PFIELD(1), JPHALO, MNHREAL_MPI, & TCRRT_COMDATA%HALO1DY%NRECV_SOUTH-1, 2, & NMNH_COMM_WORLD, ISTATUS, KINFO) endif @@ -1898,7 +1897,6 @@ INTEGER :: NB_REQ ! IP - Number of local processor=subdomain ! NCOMBUFFSIZE1 - buffer size ! NTRANS_COM - mpi communicator -! MPI_PRECISION - mpi precision ! NNEXTTAG, NMAXTAG - variable to define message tag ! ! Module MODD_PARAMETERS_ll @@ -1921,8 +1919,9 @@ INTEGER :: NB_REQ ! ------------ ! USE MODD_ARGSLIST_ll, ONLY : LIST_ll + use modd_precision, only: MNHREAL_MPI USE MODD_STRUCTURE_ll, ONLY : CRSPD_ll, ZONE_ll - USE MODD_VAR_ll, ONLY : NCOMBUFFSIZE1, IP, NTRANS_COM, MPI_PRECISION, & + USE MODD_VAR_ll, ONLY : NCOMBUFFSIZE1, IP, NTRANS_COM, & NNEXTTAG, NMAXTAG USE MODD_PARAMETERS_ll, ONLY : JPVEXT USE MODD_DIM_ll, ONLY : NKMAX_TMP_ll @@ -2095,11 +2094,11 @@ INTEGER :: NB_REQ,NFIRST_REQ_RECV ! !if defined(MNH_MPI_BSEND) IF (LMNH_MPI_BSEND) THEN - CALL MPI_BSEND(TZBUFFER, JINC, MPI_PRECISION, TZZONESEND%NUMBER - 1, & + CALL MPI_BSEND(TZBUFFER, JINC, MNHREAL_MPI, TZZONESEND%NUMBER - 1, & TZZONESEND%MSSGTAG + ITAGOFFSET, NTRANS_COM, KERROR) else - CALL MPI_ISEND(TZBUFFER(1,NB_REQ), JINC, MPI_PRECISION, TZZONESEND%NUMBER - 1, & + CALL MPI_ISEND(TZBUFFER(1,NB_REQ), JINC, MNHREAL_MPI, TZZONESEND%NUMBER - 1, & TZZONESEND%MSSGTAG + ITAGOFFSET, NTRANS_COM, REQ_TAB(NB_REQ), KERROR) endif @@ -2127,13 +2126,13 @@ INTEGER :: NB_REQ,NFIRST_REQ_RECV !if defined (MNH_MPI_ISEND) IF ( .NOT. LMNH_MPI_BSEND) THEN NB_REQ = NB_REQ + 1 - !JUAN NZ CALL MPI_IRECV(TZBUFFER(1,NB_REQ), NCOMBUFFSIZE1, MPI_PRECISION, & - CALL MPI_IRECV(TZBUFFER(1,NB_REQ), IBUFFSIZE, MPI_PRECISION, & + !JUAN NZ CALL MPI_IRECV(TZBUFFER(1,NB_REQ), NCOMBUFFSIZE1, MNHREAL_MPI, & + CALL MPI_IRECV(TZBUFFER(1,NB_REQ), IBUFFSIZE, MNHREAL_MPI, & TZZONERECV%NUMBER-1, TZZONERECV%MSSGTAG + ITAGOFFSET, & NTRANS_COM, REQ_TAB(NB_REQ), KERROR) else - !JUAN NZ CALL MPI_RECV(TZBUFFER, NCOMBUFFSIZE1, MPI_PRECISION, TZZONERECV%NUMBER-1, & - CALL MPI_RECV(TZBUFFER, IBUFFSIZE, MPI_PRECISION, TZZONERECV%NUMBER-1, & + !JUAN NZ CALL MPI_RECV(TZBUFFER, NCOMBUFFSIZE1, MNHREAL_MPI, TZZONERECV%NUMBER-1, & + CALL MPI_RECV(TZBUFFER, IBUFFSIZE, MNHREAL_MPI, TZZONERECV%NUMBER-1, & TZZONERECV%MSSGTAG + ITAGOFFSET, NTRANS_COM, IRECVSTATUS, KERROR) !JUAN ! Z axe @@ -2291,7 +2290,6 @@ INTEGER :: NB_REQ,NFIRST_REQ_RECV ! IP - Number of local processor=subdomain ! NCOMBUFFSIZE1 - buffer size ! NTRANS_COM - mpi communicator -! MPI_PRECISION - mpi precision ! NNEXTTAG, NMAXTAG - variable to define message tag ! ! Module MODD_PARAMETERS_ll @@ -2310,8 +2308,9 @@ INTEGER :: NB_REQ,NFIRST_REQ_RECV !------------------------------------------------------------------------------- ! USE MODD_ARGSLIST_ll, ONLY : LIST_ll + use modd_precision, only: MNHREAL_MPI USE MODD_STRUCTURE_ll, ONLY : CRSPD_ll, ZONE_ll - USE MODD_VAR_ll, ONLY : NCOMBUFFSIZE1, IP, MPI_PRECISION, NNEXTTAG, NMAXTAG + USE MODD_VAR_ll, ONLY : NCOMBUFFSIZE1, IP, NNEXTTAG, NMAXTAG USE MODD_DIM_ll, ONLY : NKMAX_TMP_ll USE MODD_PARAMETERS_ll, ONLY : JPVEXT ! @@ -2454,12 +2453,12 @@ endif ! JUAN !if defined(MNH_MPI_BSEND) IF (LMNH_MPI_BSEND) THEN - CALL MPI_BSEND(TZBUFFER, JINC, MPI_PRECISION, TZZONESEND%NUMBER - 1, & + CALL MPI_BSEND(TZBUFFER, JINC, MNHREAL_MPI, TZZONESEND%NUMBER - 1, & TZZONESEND%MSSGTAG + ITAGOFFSET, KMPI_COMM, KERROR) else ! JUAN !if defined (MNH_MPI_ISEND) - CALL MPI_ISEND(TZBUFFER(1,NB_REQ), JINC, MPI_PRECISION, TZZONESEND%NUMBER - 1, & + CALL MPI_ISEND(TZBUFFER(1,NB_REQ), JINC, MNHREAL_MPI, TZZONESEND%NUMBER - 1, & TZZONESEND%MSSGTAG + ITAGOFFSET, KMPI_COMM, REQ_TAB(NB_REQ), KERROR) endif @@ -2485,12 +2484,12 @@ endif !if defined (MNH_MPI_ISEND) IF ( .NOT. LMNH_MPI_BSEND) THEN NB_REQ = NB_REQ + 1 - CALL MPI_IRECV(TZBUFFER(1,NB_REQ), IBUFFSIZE, MPI_PRECISION, & + CALL MPI_IRECV(TZBUFFER(1,NB_REQ), IBUFFSIZE, MNHREAL_MPI, & TPMAILRECV%TELT%NUMBER -1 , & TPMAILRECV%TELT%MSSGTAG + ITAGOFFSET, & KMPI_COMM, REQ_TAB(NB_REQ), KERROR) else - CALL MPI_RECV(TZBUFFER, IBUFFSIZE, MPI_PRECISION, & + CALL MPI_RECV(TZBUFFER, IBUFFSIZE, MNHREAL_MPI, & TPMAILRECV%TELT%NUMBER -1 , & TPMAILRECV%TELT%MSSGTAG + ITAGOFFSET, & KMPI_COMM, IRECVSTATUS, KERROR) diff --git a/src/LIB/SURCOUCHE/src/mode_init_ll.f90 b/src/LIB/SURCOUCHE/src/mode_init_ll.f90 index 58bd9cb4c..e76b19ed7 100644 --- a/src/LIB/SURCOUCHE/src/mode_init_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_init_ll.f90 @@ -50,11 +50,8 @@ !------------------------------------------------------------------------------- ! USE MODD_MPIF - use modd_precision, only: MNHREAL_MPI, MNH2REAL_MPI ! IMPLICIT NONE -! -! INCLUDE 'mpif.h' ! CONTAINS ! @@ -547,9 +544,6 @@ ! IP = IP + 1 ! - MPI_PRECISION = MNHREAL_MPI - MPI_2PRECISION = MNH2REAL_MPI - ! !------------------------------------------------------------------------------- ! !* 2. SET OUTPUT FILE : diff --git a/src/LIB/SURCOUCHE/src/mode_mppdb.f90 b/src/LIB/SURCOUCHE/src/mode_mppdb.f90 index 575fb7b8e..12fab3263 100644 --- a/src/LIB/SURCOUCHE/src/mode_mppdb.f90 +++ b/src/LIB/SURCOUCHE/src/mode_mppdb.f90 @@ -267,7 +267,7 @@ CONTAINS SUBROUTINE MPPDB_CHECK3D(PTAB,MESSAGE,PRECISION) USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_VAR_ll , ONLY : MPI_PRECISION + use modd_precision, only: MNHREAL_MPI USE MODD_MPIF , ONLY : MPI_INTEGER, MPI_STATUS_IGNORE, MPI_SUM USE MODE_GATHER_ll @@ -347,7 +347,7 @@ CONTAINS ALLOCATE(TAB_SON_ll(IIU_SON_ll,IJU_SON_ll,IKU_SON_ll)) ! - CALL MPI_RECV(TAB_SON_ll,SIZE(TAB_SON_ll),MPI_PRECISION,I_FIRST_SON, & + CALL MPI_RECV(TAB_SON_ll,SIZE(TAB_SON_ll),MNHREAL_MPI,I_FIRST_SON, & ITAG2, MPPDB_INTRA_COMM,MPI_STATUS_IGNORE, IINFO_ll) ! @@ -409,7 +409,7 @@ CONTAINS CALL MPI_BSEND(IHEXT_SON_ll,1,MPI_INTEGER,I_FIRST_FATHER, & ITAG1, MPPDB_INTRA_COMM, IINFO_ll) - CALL MPI_BSEND(TAB_ll,SIZE(TAB_ll),MPI_PRECISION,I_FIRST_FATHER, & + CALL MPI_BSEND(TAB_ll,SIZE(TAB_ll),MNHREAL_MPI,I_FIRST_FATHER, & ITAG2, MPPDB_INTRA_COMM, IINFO_ll) END IF @@ -463,8 +463,8 @@ CONTAINS USE MODD_PARAMETERS_ll, ONLY : JPHEXT USE MODE_GATHER_ll - USE MODD_VAR_ll , ONLY : MPI_PRECISION USE MODD_MPIF , ONLY : MPI_INTEGER, MPI_STATUS_IGNORE, MPI_SUM + use modd_precision, only: MNHREAL_MPI USE MODD_VAR_ll , ONLY : NMNH_COMM_WORLD @@ -537,7 +537,7 @@ CONTAINS ALLOCATE(TAB_SON_ll(IIU_SON_ll,IJU_SON_ll)) ! - CALL MPI_RECV(TAB_SON_ll,SIZE(TAB_SON_ll),MPI_PRECISION,I_FIRST_SON, & + CALL MPI_RECV(TAB_SON_ll,SIZE(TAB_SON_ll),MNHREAL_MPI,I_FIRST_SON, & ITAG, MPPDB_INTRA_COMM,MPI_STATUS_IGNORE, IINFO_ll) ! @@ -594,7 +594,7 @@ CONTAINS I_FIRST_FATHER = 0 CALL MPI_BSEND(JPHEXT,1,MPI_INTEGER,I_FIRST_FATHER, & ITAG, MPPDB_INTRA_COMM, IINFO_ll) - CALL MPI_BSEND(TAB_ll,SIZE(TAB_ll),MPI_PRECISION,I_FIRST_FATHER, & + CALL MPI_BSEND(TAB_ll,SIZE(TAB_ll),MNHREAL_MPI,I_FIRST_FATHER, & ITAG, MPPDB_INTRA_COMM, IINFO_ll) END IF END IF @@ -611,9 +611,10 @@ CONTAINS SUBROUTINE MPPDB_CHECKLB(PLB,MESSAGE,PRECISION,HLBTYPE,KRIM) USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_VAR_ll , ONLY : MPI_PRECISION , NMNH_COMM_WORLD + USE MODD_VAR_ll , ONLY : NMNH_COMM_WORLD USE MODD_IO_ll, ONLY : ISP,ISNPROC,GSMONOPROC,LPACK,L2D USE MODD_MPIF , ONLY : MPI_INTEGER, MPI_STATUS_IGNORE + use modd_precision, only: MNHREAL_MPI USE MODE_DISTRIB_LB USE MODE_TOOLS_ll, ONLY : GET_GLOBALDIMS_ll @@ -680,7 +681,7 @@ CONTAINS IF (IIB /= 0) THEN TX3DP=>Z3D(IIB:IIE,IJB:IJE,:) IF (ISP /= JI) THEN - CALL MPI_RECV(TX3DP,SIZE(TX3DP),MPI_PRECISION,JI-1 & + CALL MPI_RECV(TX3DP,SIZE(TX3DP),MNHREAL_MPI,JI-1 & ,99,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll) ELSE CALL GET_DISTRIB_LB(HLBTYPE,JI,'LOC','WRITE',KRIM,IIB,IIE,IJB,IJE) @@ -696,7 +697,7 @@ CONTAINS CALL GET_DISTRIB_LB(HLBTYPE,ISP,'LOC','WRITE',KRIM,IIB,IIE,IJB,IJE) IF (IIB /= 0) THEN TX3DP=>PLB(IIB:IIE,IJB:IJE,:) - CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MPI_PRECISION,0,99,NMNH_COMM_WORLD,IINFO_ll) + CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MNHREAL_MPI,0,99,NMNH_COMM_WORLD,IINFO_ll) END IF END IF @@ -727,7 +728,7 @@ CONTAINS ! ALLOCATE(TAB_SON_ll(IIU_SON_ll,IJU_SON_ll,IKU_SON_ll)) ! - CALL MPI_RECV(TAB_SON_ll,SIZE(TAB_SON_ll),MPI_PRECISION,I_FIRST_SON, & + CALL MPI_RECV(TAB_SON_ll,SIZE(TAB_SON_ll),MNHREAL_MPI,I_FIRST_SON, & ITAG, MPPDB_INTRA_COMM,MPI_STATUS_IGNORE, IINFO_ll) ! IDIFF_HEXT = MIN(JPHEXT,IHEXT_SON_ll) @@ -780,7 +781,7 @@ CONTAINS IHEXT_SON_ll = JPHEXT CALL MPI_BSEND(IHEXT_SON_ll,1,MPI_INTEGER,I_FIRST_FATHER, & ITAG, MPPDB_INTRA_COMM, IINFO_ll) - CALL MPI_BSEND(PLB,SIZE(PLB),MPI_PRECISION,I_FIRST_FATHER, & + CALL MPI_BSEND(PLB,SIZE(PLB),MNHREAL_MPI,I_FIRST_FATHER, & ITAG, MPPDB_INTRA_COMM, IINFO_ll) END IF END IF @@ -794,7 +795,6 @@ CONTAINS SUBROUTINE MPPDB_CHECK_SURFEX2D(PTAB,MESSAGE,PRECISION,KLUOUT,HTYPE,KIU,KJU) USE MODD_PARAMETERS, ONLY : JPHEXT - USE MODD_VAR_ll , ONLY : MPI_PRECISION USE MODI_GET_1D_MASK USE MODI_UNPACK_SAME_RANK USE MODI_GET_SURF_MASK_n @@ -892,7 +892,6 @@ CONTAINS SUBROUTINE MPPDB_CHECK_SURFEX3D(PTAB,MESSAGE,PRECISION,KLUOUT,HTYPE,KZSIZE) USE MODD_PARAMETERS, ONLY : JPHEXT - USE MODD_VAR_ll , ONLY : MPI_PRECISION USE MODI_GET_1D_MASK USE MODI_UNPACK_SAME_RANK USE MODI_GET_SURF_MASK_n diff --git a/src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 b/src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 index f16a0b180..5461edc4c 100644 --- a/src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################## @@ -31,7 +31,6 @@ MODULE MODE_SPLITTINGZ_ll ! Modifications: ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O USE MODD_MPIF - use modd_precision, only: MNHREAL_MPI, MNH2REAL_MPI ! USE MODE_SPLITTING_ll ! @@ -172,9 +171,6 @@ CONTAINS ! CALL MPI_COMM_DUP(NMNH_COMM_WORLD, NGRID_COM, KINFO_ll) ! - MPI_PRECISION = MNHREAL_MPI - MPI_2PRECISION = MNH2REAL_MPI - ! ! For bug with intelmpi+ilp64+i8 declare MNH_STATUSES_IGNORE ! #ifndef MNH_USE_MPI_STATUSES_IGNORE @@ -1821,12 +1817,10 @@ END FUNCTION LSOUTHZ_ll SUBROUTINE ALL_SEND_RECV(TSEND_BOX_FROM,TRECV_BOX_TO, & PFIELDIN, PFIELDOUT, KINFO) ! - USE MODD_STRUCTURE_ll , ONLY : BOX_ll - USE MODD_VAR_ll , ONLY : MPI_PRECISION - !JUANZ - !USE MODD_MPIF , ONLY : MPI_COMM_WORLD - USE MODD_VAR_ll , ONLY : NMNH_COMM_WORLD - !JUANZ + use modd_precision, only: MNHREAL_MPI + USE MODD_STRUCTURE_ll, ONLY: BOX_ll + USE MODD_VAR_ll, ONLY: NMNH_COMM_WORLD + ! IMPLICIT NONE ! ! Argument @@ -1859,8 +1853,8 @@ END FUNCTION LSOUTHZ_ll END IF END DO ! - CALL mpi_alltoallv(ZSEND,TSEND_BOX_FROM%NCNT,TSEND_BOX_FROM%NSTRT,MPI_PRECISION,& - ZRECV,TRECV_BOX_TO%NCNT ,TRECV_BOX_TO%NSTRT ,MPI_PRECISION,& + CALL mpi_alltoallv(ZSEND,TSEND_BOX_FROM%NCNT,TSEND_BOX_FROM%NSTRT,MNHREAL_MPI,& + ZRECV,TRECV_BOX_TO%NCNT ,TRECV_BOX_TO%NSTRT ,MNHREAL_MPI,& TSEND_BOX_FROM%NCOM,KINFO) ! JCNT = 0 diff --git a/src/LIB/SURCOUCHE/src/mode_sum2_ll.f90 b/src/LIB/SURCOUCHE/src/mode_sum2_ll.f90 index 1580724bd..23638d194 100644 --- a/src/LIB/SURCOUCHE/src/mode_sum2_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_sum2_ll.f90 @@ -1,16 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- ! ################### MODULE MODE_SUM2_ll @@ -576,7 +568,6 @@ ENDIF ! ! Module MODD_VAR_ll ! IP - -! MPI_2PRECISION ! !! Author !! ------ @@ -590,7 +581,8 @@ ENDIF ! !* 0. DECLARATIONS ! - USE MODD_VAR_ll, ONLY : IP, MPI_2PRECISION + use modd_precision, only: MNH2REAL_MPI + USE MODD_VAR_ll, ONLY: IP ! IMPLICIT NONE ! @@ -623,7 +615,7 @@ ENDIF ! ZBUFIN (1) = PVALUE ZBUFIN (2) = IP - CALL MPI_ALLREDUCE(ZBUFIN, ZBUFOUT, 1, MPI_2PRECISION, MPI_MAXLOC, & + CALL MPI_ALLREDUCE(ZBUFIN, ZBUFOUT, 1, MNH2REAL_MPI, MPI_MAXLOC, & NMNH_COMM_WORLD, IERR) ! ! @@ -675,7 +667,6 @@ ENDIF ! Module MODD_VAR_ll ! TCRRT_PROCONF - Current configuration for current model ! IP - -! MPI_2PRECISION ! !! Author !! ------ @@ -689,9 +680,9 @@ ENDIF ! !* 0. DECLARATIONS ! - USE MODD_VAR_ll, ONLY : IP, MPI_2PRECISION, TCRRT_PROCONF -! - USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll + use modd_precision, only: MNH2REAL_MPI + USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll + USE MODD_VAR_ll, ONLY: IP, TCRRT_PROCONF ! IMPLICIT NONE ! @@ -731,7 +722,7 @@ ENDIF ZBUFIN (1) = PVALUE ZBUFIN (2) = IP ! - CALL MPI_ALLREDUCE(ZBUFIN, ZBUFOUT, 1, MPI_2PRECISION, MPI_MAXLOC, & + CALL MPI_ALLREDUCE(ZBUFIN, ZBUFOUT, 1, MNH2REAL_MPI, MPI_MAXLOC, & NMNH_COMM_WORLD, INFO_ll) ! !------------------------------------------------------------------------------- diff --git a/src/LIB/SURCOUCHE/src/mode_sum_ll.f90 b/src/LIB/SURCOUCHE/src/mode_sum_ll.f90 index 0fb298150..9f588cfa2 100644 --- a/src/LIB/SURCOUCHE/src/mode_sum_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_sum_ll.f90 @@ -1,15 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- !Correction : ! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !----------------------------------------------------------------- @@ -57,7 +50,6 @@ ! NPROC - ! IP - ! JPHALO - -! MPI_PRECISION - ! ! Module MODD_STRUCTURE_ll ! type MODELSPLITTING_ll @@ -65,11 +57,8 @@ !------------------------------------------------------------------------------ ! USE MODD_MPIF - !JUANZ - USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD - !JUANZ -! -! INCLUDE 'mpif.h' + use modd_precision, only: MNHREAL_MPI + USE MODD_VAR_ll, ONLY: NMNH_COMM_WORLD ! CONTAINS ! @@ -110,7 +99,6 @@ ! Module MODD_VAR_ll ! TCRRT_COMDATA - Current communication data structure for current model ! and local processor -! MPI_PRECISION - ! !! Reference !! --------- @@ -127,9 +115,9 @@ ! !* 0. DECLARATIONS ! - USE MODD_PARAMETERS_ll, ONLY : JPHEXT, JPVEXT - USE MODD_VAR_ll, ONLY : TCRRT_COMDATA, MPI_PRECISION - USE MODE_TOOLS_ll, ONLY : LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll + USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT + USE MODD_VAR_ll, ONLY: TCRRT_COMDATA + USE MODE_TOOLS_ll, ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll ! IMPLICIT NONE ! @@ -299,7 +287,7 @@ ! !* 3.4 Summation with all the processors ! - CALL MPI_ALLREDUCE(ZBUF, ZBUFD, IDIM, MPI_PRECISION, & + CALL MPI_ALLREDUCE(ZBUF, ZBUFD, IDIM, MNHREAL_MPI, & MPI_SUM, NMNH_COMM_WORLD, KINFO) ! !* 3.5 Return the result @@ -357,7 +345,6 @@ ! Module MODD_VAR_ll ! TCRRT_COMDATA - Current communication data structure for current model ! and local processor -! MPI_PRECISION - ! !! Implicit Arguments !! ------------------ @@ -377,10 +364,10 @@ ! !* 0. DECLARATIONS ! - USE MODD_PARAMETERS_ll, ONLY : JPHEXT, JPVEXT - USE MODD_VAR_ll, ONLY : TCRRT_COMDATA, MPI_PRECISION + USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT + USE MODD_VAR_ll, ONLY: TCRRT_COMDATA ! - USE MODE_TOOLS_ll, ONLY : LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll + USE MODE_TOOLS_ll, ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll ! IMPLICIT NONE ! @@ -601,7 +588,7 @@ ! !* 3.4 Summation with all the processors ! - CALL MPI_ALLREDUCE(ZBUF, ZBUFD, IDIM, MPI_PRECISION, & + CALL MPI_ALLREDUCE(ZBUF, ZBUFD, IDIM, MNHREAL_MPI, & MPI_SUM, NMNH_COMM_WORLD, KINFO) ! !* 3.5 Return the result @@ -659,7 +646,6 @@ ! Module MODD_VAR_ll ! TCRRT_COMDATA - Current communication data structure for current model ! and local processor -! MPI_PRECISION - ! !! Implicit Arguments !! ------------------ @@ -680,10 +666,10 @@ ! !* 0. DECLARATIONS ! - USE MODD_PARAMETERS_ll, ONLY : JPHEXT, JPVEXT - USE MODD_VAR_ll, ONLY : TCRRT_COMDATA, MPI_PRECISION + USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT + USE MODD_VAR_ll, ONLY: TCRRT_COMDATA ! - USE MODE_TOOLS_ll, ONLY : LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll + USE MODE_TOOLS_ll, ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll ! IMPLICIT NONE ! @@ -903,7 +889,7 @@ ! !* 3.4 Summation with all the processors ! - CALL MPI_ALLREDUCE(ZBUF, ZBUFD, IDIM, MPI_PRECISION, & + CALL MPI_ALLREDUCE(ZBUF, ZBUFD, IDIM, MNHREAL_MPI, & MPI_SUM, NMNH_COMM_WORLD, KINFO) ! !* 3.5 Return the result @@ -961,7 +947,6 @@ ! Module MODD_VAR_ll ! TCRRT_COMDATA - Current communication data structure for current model ! and local processor -! MPI_PRECISION - ! !! Implicit Arguments !! ------------------ @@ -982,10 +967,10 @@ ! !* 0. DECLARATIONS ! - USE MODD_PARAMETERS_ll, ONLY : JPHEXT, JPVEXT - USE MODD_VAR_ll, ONLY : TCRRT_COMDATA, MPI_PRECISION + USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT + USE MODD_VAR_ll, ONLY: TCRRT_COMDATA ! - USE MODE_TOOLS_ll, ONLY : LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll + USE MODE_TOOLS_ll, ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll ! USE MODE_TOOLS_ll ! @@ -1136,7 +1121,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! !* 3.4 Summation with all the processors ! -!!$ CALL MPI_ALLREDUCE(ZSUM3D, SUM3D_ll, 1, MPI_PRECISION, & +!!$ CALL MPI_ALLREDUCE(ZSUM3D, SUM3D_ll, 1, MNHREAL_MPI, & !!$ MPI_SUM, NMNH_COMM_WORLD, KINFO) !!$! !!$! gathers the total 2D field @@ -1197,7 +1182,6 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! and local processor ! TCRRT_PROCONF - Current configuration for current model ! NPROC - -! MPI_PRECISION - ! !! Reference !! --------- @@ -1216,11 +1200,11 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! !* 0. DECLARATIONS ! - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll - USE MODD_VAR_ll, ONLY : IP, TCRRT_COMDATA, TCRRT_PROCONF, NPROC, MPI_PRECISION + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll + USE MODD_VAR_ll, ONLY: IP, TCRRT_COMDATA, TCRRT_PROCONF, NPROC ! - USE MODE_TOOLS_ll, ONLY : LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll + USE MODE_TOOLS_ll, ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll ! IMPLICIT NONE ! @@ -1339,8 +1323,8 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! ALLOCATE(ZGLOBFIELD(IGE-IGB+1)) CALL MPI_ALLGATHERV(PFIELD(IB-IORE(IDIR)+1:), ISIZE, & - MPI_PRECISION, ZGLOBFIELD, ISIZES, IDISPL, & - MPI_PRECISION, NMNH_COMM_WORLD, IERR) + MNHREAL_MPI, ZGLOBFIELD, ISIZES, IDISPL, & + MNHREAL_MPI, NMNH_COMM_WORLD, IERR) ! !------------------------------------------------------------------------------- ! @@ -1399,7 +1383,6 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! and local processor ! TCRRT_PROCONF - Current configuration for current model ! NPROC - -! MPI_PRECISION - ! !! Reference !! --------- @@ -1418,10 +1401,10 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! !* 0. DECLARATIONS ! - USE MODD_PARAMETERS_ll, ONLY : JPHEXT, JPVEXT - USE MODD_VAR_ll, ONLY : TCRRT_COMDATA, MPI_PRECISION + USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT + USE MODD_VAR_ll, ONLY: TCRRT_COMDATA ! - USE MODE_TOOLS_ll, ONLY : LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll + USE MODE_TOOLS_ll, ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll ! IMPLICIT NONE ! @@ -1560,7 +1543,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! !* 3.4 Reduction with all the processors ! - CALL MPI_ALLREDUCE(ZMAX, MAX_ll, 1, MPI_PRECISION, & + CALL MPI_ALLREDUCE(ZMAX, MAX_ll, 1, MNHREAL_MPI, & MPI_MAX, NMNH_COMM_WORLD, KINFO) ! ENDIF @@ -1612,7 +1595,6 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! and local processor ! TCRRT_PROCONF - Current configuration for current model ! NPROC - -! MPI_PRECISION - ! !! Reference !! --------- @@ -1631,10 +1613,10 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! !* 0. DECLARATIONS ! - USE MODD_PARAMETERS_ll, ONLY : JPHEXT, JPVEXT - USE MODD_VAR_ll, ONLY : TCRRT_COMDATA, MPI_PRECISION + USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT + USE MODD_VAR_ll, ONLY: TCRRT_COMDATA ! - USE MODE_TOOLS_ll, ONLY : LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll + USE MODE_TOOLS_ll, ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll ! IMPLICIT NONE ! @@ -1773,7 +1755,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! ! 3.4 Reduction with all the processors ! - CALL MPI_ALLREDUCE(ZMIN, MIN_ll, 1, MPI_PRECISION, & + CALL MPI_ALLREDUCE(ZMIN, MIN_ll, 1, MNHREAL_MPI, & MPI_MIN, NMNH_COMM_WORLD, KINFO) ! ENDIF @@ -1809,7 +1791,6 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! Module MODD_VAR_ll ! TCRRT_COMDATA - Current communication data structure for current model ! and local processor -! MPI_PRECISION - ! !! Reference !! --------- @@ -1826,7 +1807,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! !* 0. DECLARATIONS ! - USE MODD_VAR_ll, ONLY : TCRRT_COMDATA, MPI_PRECISION + USE MODD_VAR_ll, ONLY : TCRRT_COMDATA ! ! IMPLICIT NONE @@ -1862,7 +1843,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! --------------------------------- ! CALL MPI_ALLREDUCE(ZBUF, ZBUFD, SIZE(PFIELD,3), & - MPI_PRECISION, MPI_SUM, NMNH_COMM_WORLD, KINFO) + MNHREAL_MPI, MPI_SUM, NMNH_COMM_WORLD, KINFO) ! !------------------------------------------------------------------------------- ! @@ -1899,8 +1880,6 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll !! Implicit Arguments !! ------------------ ! -! Module MODD_VAR_ll -! MPI_PRECISION - ! !! Reference !! --------- @@ -1916,8 +1895,6 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS -! - USE MODD_VAR_ll, ONLY : MPI_PRECISION ! IMPLICIT NONE ! @@ -1953,7 +1930,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll !* 2. REDUCTION WITH ALL THE PROCESSORS : ! --------------------------------- ! - CALL MPI_ALLREDUCE(ZSUM, SUMMASKCOMP_ll, 1, MPI_PRECISION, & + CALL MPI_ALLREDUCE(ZSUM, SUMMASKCOMP_ll, 1, MNHREAL_MPI, & MPI_SUM, NMNH_COMM_WORLD, KINFO) ! !------------------------------------------------------------------------------- @@ -1995,7 +1972,6 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! and local processor ! TCRRT_PROCONF - Current configuration for current model ! IP - -! MPI_PRECISION - ! JPHALO - ! !! Author @@ -2010,12 +1986,10 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! !* 0. DECLARATIONS ! - USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll + USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll + USE MODD_VAR_ll, ONLY: IP, TCRRT_COMDATA, TCRRT_PROCONF, JPHALO ! - USE MODD_VAR_ll, ONLY : IP, TCRRT_COMDATA, TCRRT_PROCONF, JPHALO, & - MPI_PRECISION -! - USE MODE_TOOLS_ll, ONLY : LWEST_ll, LEAST_ll + USE MODE_TOOLS_ll, ONLY: LWEST_ll, LEAST_ll ! IMPLICIT NONE ! @@ -2071,7 +2045,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll !* 3. MERGE LOCAL SUMS ! ---------------- ! - CALL MPI_ALLREDUCE(ZBUF, PRES, SIZE(PRES), MPI_PRECISION, MPI_SUM, & + CALL MPI_ALLREDUCE(ZBUF, PRES, SIZE(PRES), MNHREAL_MPI, MPI_SUM, & NMNH_COMM_WORLD,KINFO) ! !----------------------------------------------------------------- @@ -2113,7 +2087,6 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! and local processor ! TCRRT_PROCONF - Current configuration for current model ! IP - -! MPI_PRECISION - ! JPHALO - ! !! Author @@ -2129,14 +2102,11 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! !* 0. DECLARATIONS ! - USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll -! - USE MODD_VAR_ll, ONLY : IP, TCRRT_COMDATA, TCRRT_PROCONF, JPHALO, & - MPI_PRECISION -! - USE MODE_TOOLS_ll, ONLY : LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll + USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll + USE MODD_VAR_ll, ONLY: IP, TCRRT_COMDATA, TCRRT_PROCONF, JPHALO ! - USE MODE_REPRO_SUM + USE MODE_REPRO_SUM + USE MODE_TOOLS_ll, ONLY: LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll ! !* 0. DECLARATIONS ! ------------ @@ -2282,7 +2252,6 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! and local processor ! TCRRT_PROCONF - Current configuration for current model ! IP - -! MPI_PRECISION - ! JPHALO - ! !! Author @@ -2298,12 +2267,10 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! !* 0. DECLARATIONS ! - USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll + USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll + USE MODD_VAR_ll, ONLY: IP, TCRRT_COMDATA, TCRRT_PROCONF, JPHALO ! - USE MODD_VAR_ll, ONLY : IP, TCRRT_COMDATA, TCRRT_PROCONF, JPHALO, & - MPI_PRECISION -! - USE MODE_TOOLS_ll, ONLY : LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll + USE MODE_TOOLS_ll, ONLY: LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll ! !* 0. DECLARATIONS ! ------------ @@ -2364,7 +2331,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! !* 2. Merge local sums ! - CALL MPI_ALLREDUCE(ZBUF, PRES, SIZE(PRES, 1) * SIZE(PRES, 2), MPI_PRECISION, MPI_SUM, NMNH_COMM_WORLD,KINFO) + CALL MPI_ALLREDUCE(ZBUF, PRES, SIZE(PRES, 1) * SIZE(PRES, 2), MNHREAL_MPI, MPI_SUM, NMNH_COMM_WORLD,KINFO) ! !----------------------------------------------------------------- ELSE @@ -2396,7 +2363,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! !* 2. Merge local sums ! - CALL MPI_ALLREDUCE(ZBUF, PRES, SIZE(PRES, 1) * SIZE(PRES,2), MPI_PRECISION, MPI_SUM, NMNH_COMM_WORLD,KINFO) + CALL MPI_ALLREDUCE(ZBUF, PRES, SIZE(PRES, 1) * SIZE(PRES,2), MNHREAL_MPI, MPI_SUM, NMNH_COMM_WORLD,KINFO) ENDIF ENDIF @@ -2429,8 +2396,6 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll !! Implicit Arguments !! ------------------ ! -! Module MODD_VAR_ll -! MPI_PRECISION - ! !! Author !! ------ @@ -2445,7 +2410,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll ! !* 0. DECLARATIONS ! - USE MODE_REPRO_SUM + USE MODE_REPRO_SUM ! IMPLICIT NONE ! @@ -2502,8 +2467,6 @@ END SUBROUTINE REDUCE_SUM_0DD_ll !! Implicit Arguments !! ------------------ ! -! Module MODD_VAR_ll -! MPI_PRECISION - ! !! Author !! ------ @@ -2517,8 +2480,6 @@ END SUBROUTINE REDUCE_SUM_0DD_ll !----------------------------------------------------------------- ! !* 0. DECLARATIONS -! - USE MODD_VAR_ll, ONLY : MPI_PRECISION ! IMPLICIT NONE ! @@ -2537,7 +2498,7 @@ END SUBROUTINE REDUCE_SUM_0DD_ll !* 1. CALL THE MPI_ALLREDUCE ROUTINE ! ------------------------------ ! - CALL MPI_ALLREDUCE(PRES, ZRES, 1, MPI_PRECISION, & + CALL MPI_ALLREDUCE(PRES, ZRES, 1, MNHREAL_MPI, & MPI_SUM, NMNH_COMM_WORLD, KINFO) ! PRES = ZRES @@ -2620,8 +2581,6 @@ END SUBROUTINE REDUCE_SUM_1DD_ll !! Implicit Arguments !! ------------------ ! -! Module MODD_VAR_ll -! MPI_PRECISION - ! !! Author !! ------ @@ -2635,8 +2594,6 @@ END SUBROUTINE REDUCE_SUM_1DD_ll !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS -! - USE MODD_VAR_ll, ONLY : MPI_PRECISION ! IMPLICIT NONE ! @@ -2655,7 +2612,7 @@ END SUBROUTINE REDUCE_SUM_1DD_ll !* 1. CALL THE MPI_ALLREDUCE ROUTINE ! ------------------------------ ! - CALL MPI_ALLREDUCE(PRES, ZRES, SIZE(PRES,1), MPI_PRECISION, & + CALL MPI_ALLREDUCE(PRES, ZRES, SIZE(PRES,1), MNHREAL_MPI, & MPI_SUM, NMNH_COMM_WORLD, KINFO) ! PRES = ZRES @@ -2692,8 +2649,6 @@ END SUBROUTINE REDUCE_SUM_1DD_ll !! Implicit Arguments !! ------------------ ! -! Module MODD_VAR_ll -! MPI_PRECISION - ! !! Author !! ------ @@ -2707,8 +2662,6 @@ END SUBROUTINE REDUCE_SUM_1DD_ll !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS -! - USE MODD_VAR_ll, ONLY : MPI_PRECISION ! IMPLICIT NONE ! @@ -2731,7 +2684,7 @@ END SUBROUTINE REDUCE_SUM_1DD_ll ! IDIM = SIZE(PRES,1) * SIZE(PRES,2) ! - CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MPI_PRECISION, MPI_SUM, & + CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHREAL_MPI, MPI_SUM, & NMNH_COMM_WORLD, KINFO) ! PRES = ZRES @@ -2768,8 +2721,6 @@ END SUBROUTINE REDUCE_SUM_1DD_ll !! Implicit Arguments !! ------------------ ! -! Module MODD_VAR_ll -! MPI_PRECISION - ! !! Author !! ------ @@ -2783,8 +2734,6 @@ END SUBROUTINE REDUCE_SUM_1DD_ll !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS -! - USE MODD_VAR_ll, ONLY : MPI_PRECISION ! IMPLICIT NONE ! @@ -2808,7 +2757,7 @@ END SUBROUTINE REDUCE_SUM_1DD_ll ! IDIM = SIZE(PRES,1) * SIZE(PRES,2) * SIZE(PRES,3) ! - CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MPI_PRECISION, MPI_SUM, & + CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHREAL_MPI, MPI_SUM, & NMNH_COMM_WORLD, KINFO) ! PRES = ZRES @@ -3046,8 +2995,6 @@ END SUBROUTINE REDUCE_SUM_1DD_ll !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS -! - USE MODD_VAR_ll, ONLY : MPI_PRECISION ! IMPLICIT NONE ! diff --git a/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 b/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 index 158d53136..ba2dc9c36 100644 --- a/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 @@ -1,15 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- !Correction : ! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !----------------------------------------------------------------- @@ -52,8 +45,9 @@ ! Juan/Didier 12/03/2009: array bound bug correction with 1proc/MPIVIDE ! J. Escobar 27/06/2011 correction for gridnesting with different SHAPE ! - USE MODD_STRUCTURE_ll USE MODD_MPIF + use modd_precision, only: MNHREAL_MPI + USE MODD_STRUCTURE_ll !JUANZ USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD !JUANZ @@ -1098,7 +1092,6 @@ ENDIF ! NPROC - Number of processors ! TCRRT_PROCONF - Current configuration for current model ! IP - Number of the local processor -! MPI_PRECISION - mpi precision ! ! Module MODD_PARAMETERS_ll ! JPHEXT - halo size @@ -1120,16 +1113,12 @@ ENDIF ! !* 0. DECLARATIONS ! - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll - USE MODD_VAR_ll, ONLY : NPROC, TCRRT_PROCONF, IP, MPI_PRECISION + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll + USE MODD_VAR_ll, ONLY: NPROC, TCRRT_PROCONF, IP ! IMPLICIT NONE ! -!* 0.099 Include MPI parameters -! -! INCLUDE 'mpif.h' -! !* 0.1 declarations of arguments ! REAL, DIMENSION(:,:), TARGET, INTENT(IN) :: PARRAY ! horizontal field @@ -1332,8 +1321,8 @@ ENDIF !* 3.3 Have the values of the local slice on each proc known ! by all procs on the global slice ! - CALL MPI_ALLGATHERV(ZPTR, ISIZE, MPI_PRECISION, PGLOBALSLICE, & - ISIZES, IDISPL, MPI_PRECISION, ICOMM_GLOBALSLICE, IERR) + CALL MPI_ALLGATHERV(ZPTR, ISIZE, MNHREAL_MPI, PGLOBALSLICE, & + ISIZES, IDISPL, MNHREAL_MPI, ICOMM_GLOBALSLICE, IERR) ! !* 3.4 Delete slice communicator ! @@ -1364,7 +1353,7 @@ ENDIF IF (ICOMM .NE. MPI_COMM_NULL) THEN ! CALL MPI_BCAST(IGLOBALSLICELENGTH, 1, MPI_INTEGER, IPROCS(1), ICOMM, IERR) - CALL MPI_BCAST(PGLOBALSLICE(IDISPL1+1), IGLOBALSLICELENGTH, MPI_PRECISION, & + CALL MPI_BCAST(PGLOBALSLICE(IDISPL1+1), IGLOBALSLICELENGTH, MNHREAL_MPI, & IPROCS(1), ICOMM, IERR) ! CALL MPI_COMM_FREE(ICOMM, IERR) @@ -1416,7 +1405,6 @@ ENDIF ! NPROC - Number of processors ! TCRRT_PROCONF - Current configuration for current model ! IP - Number of the local processor -! MPI_PRECISION - mpi precision ! ! Module MODD_PARAMETERS_ll ! JPHEXT, JPVEXT - halo size @@ -1438,16 +1426,12 @@ ENDIF ! !* 0. DECLARATIONS ! - USE MODD_PARAMETERS_ll, ONLY : JPHEXT, JPVEXT - USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll - USE MODD_VAR_ll, ONLY : NPROC, TCRRT_PROCONF, IP, MPI_PRECISION + USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT + USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll + USE MODD_VAR_ll, ONLY: NPROC, TCRRT_PROCONF, IP ! IMPLICIT NONE ! -!* 0.099 Include MPI parameters -! -! INCLUDE 'mpif.h' -! !* 0.1 declarations of arguments ! REAL, DIMENSION(:,:,:), TARGET, INTENT(IN) :: PARRAY ! horizontal field @@ -1668,9 +1652,9 @@ ENDIF ! by all procs on the global slice ! DO JK = 1, IGLOBALSLICEHEIGHT - CALL MPI_ALLGATHERV(ZPTR(1,JK), ISIZE, MPI_PRECISION, & + CALL MPI_ALLGATHERV(ZPTR(1,JK), ISIZE, MNHREAL_MPI, & PGLOBALSLICE(1,JK), ISIZES, IDISPL, & - MPI_PRECISION, ICOMM_GLOBALSLICE, IERR) + MNHREAL_MPI, ICOMM_GLOBALSLICE, IERR) ENDDO ! !* 3.4 Delete slice communicator @@ -1704,7 +1688,7 @@ ENDIF ! CALL MPI_BCAST(IGLOBALSLICELENGTH, 1, MPI_INTEGER, IPROCS(1), ICOMM, IERR) DO JK = 1, IGLOBALSLICEHEIGHT - CALL MPI_BCAST(PGLOBALSLICE(1,JK), IGLOBALSLICELENGTH, MPI_PRECISION, & + CALL MPI_BCAST(PGLOBALSLICE(1,JK), IGLOBALSLICELENGTH, MNHREAL_MPI, & IPROCS(1), ICOMM, IERR) ENDDO ! @@ -1764,7 +1748,6 @@ ENDIF ! NPROC - Number of processors ! TCRRT_PROCONF - Current configuration for current model ! IP - Number of the local processor -! MPI_PRECISION - mpi precision ! ! Module MODD_PARAMETERS_ll ! JPHEXT, JPVEXT - halo size @@ -1785,16 +1768,12 @@ ENDIF ! !* 0. DECLARATIONS ! - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_VAR_ll, ONLY : NPROC,TCRRT_PROCONF,IP,MPI_PRECISION - USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll + USE MODD_VAR_ll, ONLY: NPROC, TCRRT_PROCONF, IP ! IMPLICIT NONE ! -!* 0.099 Include MPI parameters -! -! INCLUDE 'mpif.h' -! !* 0.1 declarations of arguments ! REAL, DIMENSION(:,:), TARGET, INTENT(IN) :: PARRAY ! horizontal field @@ -2024,8 +2003,8 @@ ENDIF !* 3.3 Have the values of the local slice on each proc known ! by all procs on the global slice ! - CALL MPI_ALLGATHERV(ZPTR, ISIZE, MPI_PRECISION, ITOTALSLICE, ISIZES, & - IDISPL, MPI_PRECISION, ICOMM_SLICE, IERR) + CALL MPI_ALLGATHERV(ZPTR, ISIZE, MNHREAL_MPI, ITOTALSLICE, ISIZES, & + IDISPL, MNHREAL_MPI, ICOMM_SLICE, IERR) ! DEALLOCATE(ISIZES, IDISPL) ! @@ -2058,7 +2037,7 @@ ENDIF IF (ICOMM .NE. MPI_COMM_NULL) THEN ! CALL MPI_BCAST(ISLICELENGTH, 1, MPI_INTEGER, IPROCS(1), ICOMM, IERR) - CALL MPI_BCAST(ITOTALSLICE, ISLICELENGTH, MPI_PRECISION, & + CALL MPI_BCAST(ITOTALSLICE, ISLICELENGTH, MNHREAL_MPI, & IPROCS(1), ICOMM, IERR) CALL MPI_COMM_FREE(ICOMM, IERR) ENDIF @@ -2112,7 +2091,6 @@ ENDIF ! NPROC - Number of processors ! TCRRT_PROCONF - Current configuration for current model ! IP - Number of the local processor -! MPI_PRECISION - mpi precision ! ! Module MODD_PARAMETERS_ll ! JPHEXT, JPVEXT - halo size @@ -2133,16 +2111,12 @@ ENDIF ! !* 0. DECLARATIONS ! - USE MODD_PARAMETERS_ll, ONLY : JPHEXT, JPVEXT - USE MODD_VAR_ll, ONLY : NPROC,TCRRT_PROCONF,IP,MPI_PRECISION - USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll + USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT + USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll + USE MODD_VAR_ll, ONLY: NPROC, TCRRT_PROCONF, IP ! IMPLICIT NONE ! -!* 0.099 Include MPI parameters -! -! INCLUDE 'mpif.h' -! !* 0.1 declarations of arguments ! REAL, DIMENSION(:,:,:), TARGET, INTENT(IN) :: PARRAY ! horizontal field @@ -2384,9 +2358,9 @@ ENDIF ! by all procs on the global slice ! DO JK = 1, ISLICEHEIGHT - CALL MPI_ALLGATHERV(ZPTR(1,JK), ISIZE, MPI_PRECISION, & + CALL MPI_ALLGATHERV(ZPTR(1,JK), ISIZE, MNHREAL_MPI, & ITOTALSLICE(1,JK), & - ISIZES, IDISPL, MPI_PRECISION, ICOMM_SLICE, IERR) + ISIZES, IDISPL, MNHREAL_MPI, ICOMM_SLICE, IERR) ENDDO ! !* 3.4 Delete slice communicator @@ -2420,7 +2394,7 @@ ENDIF ! CALL MPI_BCAST(ISLICELENGTH, 1, MPI_INTEGER, IPROCS(1), ICOMM, IERR) DO JK = 1, ISLICEHEIGHT - CALL MPI_BCAST(ITOTALSLICE(1,JK), ISLICELENGTH, MPI_PRECISION, & + CALL MPI_BCAST(ITOTALSLICE(1,JK), ISLICELENGTH, MNHREAL_MPI, & IPROCS(1), ICOMM, IERR) ENDDO ! @@ -3298,8 +3272,6 @@ ENDIF !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS -! - USE MODD_VAR_ll, ONLY : MPI_PRECISION ! IMPLICIT NONE ! @@ -3319,7 +3291,7 @@ ENDIF !------------------------------------------------------------------------------- ! IMEANSQRTLOC = SUM(SQRT(PARRAY)) -CALL MPI_ALLREDUCE(IMEANSQRTLOC, PMEANSQRT, 1, MPI_PRECISION, MPI_SUM, NMNH_COMM_WORLD,IINFO) +CALL MPI_ALLREDUCE(IMEANSQRTLOC, PMEANSQRT, 1, MNHREAL_MPI, MPI_SUM, NMNH_COMM_WORLD,IINFO) PMEANSQRT = PMEANSQRT / KSIZEGLB ! !----------------------------------------------------------------------- diff --git a/src/MNH/clustering.f90 b/src/MNH/clustering.f90 index a42562bbb..882de5a75 100644 --- a/src/MNH/clustering.f90 +++ b/src/MNH/clustering.f90 @@ -1,3 +1,8 @@ +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ################ MODULE MODI_CLUSTERING ! ################ @@ -60,13 +65,13 @@ END MODULE MODI_CLUSTERING ! !* 0. DECLARATIONS ! ------------ - USE MODD_MPIF , ONLY : MPI_INTEGER +USE MODD_ARGSLIST_ll, ONLY: LIST_ll +USE MODD_DYN_n, ONLY: XDXHATM, XDYHATM +USE MODD_MPIF , ONLY: MPI_INTEGER +use MODD_PRECISION, only: MNHREAL_MPI +USE MODD_VAR_ll, ONLY: NPROC, IP, NMNH_COMM_WORLD +! USE MODE_ll -USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODD_VAR_ll, ONLY : MPI_PRECISION, NPROC, IP, NMNH_COMM_WORLD -USE MODD_DYN_n, ONLY : XDXHATM, XDYHATM -!USE& -! MPI ! IMPLICIT NONE ! @@ -670,7 +675,7 @@ CALL MPI_ALLGATHERV(ILOCLISTLVL2, ICPT, MPI_INTEGER, IGLBLISTLVL, ICLUSNBR, IPRO NMNH_COMM_WORLD, INFO) CALL MPI_ALLGATHERV(ILOCLISTSEC2, ICPT, MPI_INTEGER, IGLBLISTSEC, ICLUSNBR, IPROCDPL, MPI_INTEGER, & NMNH_COMM_WORLD, INFO) -CALL MPI_ALLGATHERV(ZLOCLISTFLD2, ICPT, MPI_PRECISION, ZGLBLISTFLD, ICLUSNBR, IPROCDPL, MPI_PRECISION, & +CALL MPI_ALLGATHERV(ZLOCLISTFLD2, ICPT, MNHREAL_MPI, ZGLBLISTFLD, ICLUSNBR, IPROCDPL, MNHREAL_MPI, & NMNH_COMM_WORLD, INFO) ! !* 6.3 EACH PROC COMPUTES GLOBAL SECTIONS AND FIELD AVERAGE OF ITS CLUSTERS diff --git a/src/MNH/extend_grid_parameter_mnh.f90 b/src/MNH/extend_grid_parameter_mnh.f90 index 09d062990..3d5fc09a1 100644 --- a/src/MNH/extend_grid_parameter_mnh.f90 +++ b/src/MNH/extend_grid_parameter_mnh.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2015-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ############################################################# SUBROUTINE EXTEND_GRID_PARAMETERX1_MNH(HGRID,HREC,KDIM,KSIZE,KIMAX,KJMAX,PFIELD,PFIELD_EXTEND) ! ############################################################# @@ -16,10 +17,13 @@ ! 07/2015 (M.Moge) initializing ZY and ZY to zero ! 08/2015 (M.Moge) bug fix in the call to UPDATE_NHALO1D : IIMAX_ll instead of IJMAX_ll ! -USE MODD_IO_SURF_MNH, ONLY : NHALO -USE MODD_VAR_ll, ONLY : NPROC, IP, MPI_PRECISION, NMNH_COMM_WORLD +USE MODD_IO_SURF_MNH, ONLY: NHALO USE MODD_MPIF -USE MODE_TOOLS_ll, ONLY : INTERSECTION, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll +use MODD_PRECISION, only: MNHREAL_MPI +USE MODD_VAR_ll, ONLY: NPROC, IP, NMNH_COMM_WORLD +! +USE MODE_TOOLS_ll, ONLY: INTERSECTION, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll +! USE MODI_UPDATE_NHALO1D ! IMPLICIT NONE @@ -76,7 +80,7 @@ IF (HREC=='XX' .OR. HREC=='DX') THEN IF (NIMAX>1) ZDX = PFIELD(2) - PFIELD(1) IF (NIMAX==1) ZDX = PFIELD(1) ! in 1D conf, one assumes that grid ! is located between X=DX/2 and X=3DX/2 - CALL MPI_BCAST(ZDX, 1, MPI_PRECISION, 0, NMNH_COMM_WORLD, IINFO_ll) + CALL MPI_BCAST(ZDX, 1, MNHREAL_MPI, 0, NMNH_COMM_WORLD, IINFO_ll) IF( LWEST_ll() ) THEN DO JI=NHALO,1,-1 ZX(JI) = ZX(JI+1) - ZDX @@ -119,7 +123,7 @@ ELSEIF (HREC=='YY' .OR. HREC=='DY') THEN IF (NJMAX>1) ZDY = PFIELD(1+KIMAX) - PFIELD(1) IF (NJMAX==1) ZDY = PFIELD(1) ! in 1D or 2D conf, one assumes that grid ! is located between Y=DY/2 and Y=3DY/2 - CALL MPI_BCAST(ZDY, 1, MPI_PRECISION, 0, NMNH_COMM_WORLD, IINFO_ll) + CALL MPI_BCAST(ZDY, 1, MNHREAL_MPI, 0, NMNH_COMM_WORLD, IINFO_ll) IF( LSOUTH_ll() ) THEN DO JJ=NHALO,1,-1 ZY(JJ) = ZY(JJ+1) - ZDY diff --git a/src/MNH/flash_geom_elec.f90 b/src/MNH/flash_geom_elec.f90 index cc467d1dd..2c7e576aa 100644 --- a/src/MNH/flash_geom_elec.f90 +++ b/src/MNH/flash_geom_elec.f90 @@ -100,44 +100,44 @@ END MODULE MODI_FLASH_GEOM_ELEC_n !* 0. DECLARATIONS ! ------------ ! -USE MODD_CST, ONLY : XAVOGADRO, XMD -USE MODD_CONF, ONLY : CEXP, LCARTESIAN -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT -USE MODD_GRID, ONLY : XLATORI,XLONORI -USE MODD_GRID_n, ONLY : XXHAT, XYHAT, XZHAT -USE MODD_DYN_n, ONLY : XDXHATM, XDYHATM, NSTOP -USE MODD_METRICS_n, ONLY : XDXX, XDYY, XDZZ ! in linox_production +USE MODD_ARGSLIST_ll, ONLY: LIST_ll +USE MODD_CONF, ONLY: CEXP, LCARTESIAN +USE MODD_CST, ONLY: XAVOGADRO, XMD +USE MODD_DYN_n, ONLY: XDXHATM, XDYHATM, NSTOP USE MODD_ELEC_DESCR -USE MODD_ELEC_PARAM, ONLY : XFQLIGHTR, XEXQLIGHTR, & - XFQLIGHTI, XEXQLIGHTI, & - XFQLIGHTS, XEXQLIGHTS, & - XFQLIGHTG, XEXQLIGHTG, & - XFQLIGHTH, XEXQLIGHTH, & - XFQLIGHTC -USE MODD_RAIN_ICE_DESCR, ONLY : XLBR, XLBEXR, XLBS, XLBEXS, & - XLBG, XLBEXG, XLBH, XLBEXH, & - XRTMIN -USE MODD_NSV, ONLY : NSV_ELECBEG, NSV_ELECEND, NSV_ELEC -USE MODD_VAR_ll, ONLY : NPROC,NMNH_COMM_WORLD -USE MODD_ARGSLIST_ll, ONLY : LIST_ll +USE MODD_ELEC_PARAM, ONLY: XFQLIGHTR, XEXQLIGHTR, & + XFQLIGHTI, XEXQLIGHTI, & + XFQLIGHTS, XEXQLIGHTS, & + XFQLIGHTG, XEXQLIGHTG, & + XFQLIGHTH, XEXQLIGHTH, & + XFQLIGHTC +USE MODD_ELEC_FLASH +USE MODD_GRID, ONLY: XLATORI,XLONORI +USE MODD_GRID_n, ONLY: XXHAT, XYHAT, XZHAT +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_LMA_SIMULATOR +USE MODD_METRICS_n, ONLY: XDXX, XDYY, XDZZ ! in linox_production +USE MODD_NSV, ONLY: NSV_ELECBEG, NSV_ELECEND, NSV_ELEC +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT +use MODD_PRECISION, only: MNHREAL_MPI +USE MODD_RAIN_ICE_DESCR, ONLY: XLBR, XLBEXR, XLBS, XLBEXS, & + XLBG, XLBEXG, XLBH, XLBEXH, & + XRTMIN USE MODD_SUB_ELEC_n USE MODD_TIME_n -USE MODD_LMA_SIMULATOR -USE MODD_ELEC_FLASH -! -USE MODI_SHUMAN -USE MODI_TO_ELEC_FIELD_n -USE MODI_ION_ATTACH_ELEC +USE MODD_VAR_ll, ONLY: NPROC,NMNH_COMM_WORLD ! +USE MODE_ELEC_ll +USE MODE_GRIDPROJ +USE MODE_ll +USE MODE_MPPDB #ifdef MNH_PGI USE MODE_PACK_PGI #endif ! -USE MODE_ll -USE MODE_ELEC_ll -USE MODE_GRIDPROJ -USE MODE_MPPDB +USE MODI_ION_ATTACH_ELEC +USE MODI_SHUMAN +USE MODI_TO_ELEC_FIELD_n ! IMPLICIT NONE ! @@ -853,9 +853,9 @@ ENDIF CALL MPPDB_CHECK3DM("flash:: 5. ZFLASH(IL)",PRECISION,& ZFLASH(:,:,:,IL)) ! - CALL MPI_BCAST (GNEW_FLASH(IL),1, MPI_LOGICAL, IPROC_TRIG(IL), & + CALL MPI_BCAST (GNEW_FLASH(IL),1, MPI_LOGICAL, IPROC_TRIG(IL), & NMNH_COMM_WORLD, IERR) - CALL MPI_BCAST (ZEM_TRIG(IL), 1, MPI_PRECISION, IPROC_TRIG(IL), & + CALL MPI_BCAST (ZEM_TRIG(IL), 1, MNHREAL_MPI, IPROC_TRIG(IL), & NMNH_COMM_WORLD, IERR) CALL MPI_BCAST (INB_FL_REAL(IL), 1, MPI_INTEGER, IPROC_TRIG(IL), & NMNH_COMM_WORLD, IERR) @@ -1690,11 +1690,11 @@ DO IL = 1, INB_CELL ! ---------------------------- ! CALL MPI_BCAST (ZEM_TRIG(IL), 1, & - MPI_PRECISION, IPROC_TRIG(IL), NMNH_COMM_WORLD, IERR) - CALL MPI_BCAST (ISEG_LOC(:,IL), 3*SIZE(PRT,3), & + MNHREAL_MPI, IPROC_TRIG(IL), NMNH_COMM_WORLD, IERR) + CALL MPI_BCAST (ISEG_LOC(:,IL), 3*SIZE(PRT,3), & MPI_INTEGER, IPROC_TRIG(IL), NMNH_COMM_WORLD, IERR) CALL MPI_BCAST (ZCOORD_TRIG(:,IL), 3, & - MPI_PRECISION, IPROC_TRIG(IL), NMNH_COMM_WORLD, IERR) + MNHREAL_MPI, IPROC_TRIG(IL), NMNH_COMM_WORLD, IERR) CALL MPI_BCAST (ISIGNE_EZ(IL), 1, & MPI_INTEGER, IPROC_TRIG(IL), NMNH_COMM_WORLD, IERR) ! @@ -1960,7 +1960,7 @@ DO IL = 1, INB_CELL END DO END IF ! - CALL MPI_BCAST (ZSIGN(IL), 1, MPI_PRECISION, IPROC_TRIG(IL), & + CALL MPI_BCAST (ZSIGN(IL), 1, MNHREAL_MPI, IPROC_TRIG(IL), & NMNH_COMM_WORLD, IERR) END DO ! @@ -2308,8 +2308,8 @@ IF (IPROC .EQ. 0) THEN INBSEG_PROC_X3(:) = 3 * INBSEG_PROC(:) END IF ! -CALL MPI_GATHERV (ZSEND, 3*INSEGPROC, MPI_PRECISION, ZRECV, INBSEG_PROC_X3, & - IDECAL3, MPI_PRECISION, 0, NMNH_COMM_WORLD, IERR) +CALL MPI_GATHERV (ZSEND, 3*INSEGPROC, MNHREAL_MPI, ZRECV, INBSEG_PROC_X3, & + IDECAL3, MNHREAL_MPI, 0, NMNH_COMM_WORLD, IERR) ! IF (IPROC .EQ. 0) THEN ZCOORD_SEG_ALL(1:3*INSEGCELL,IL) = ZRECV(1:3*INSEGCELL) @@ -2381,15 +2381,15 @@ IF (LLMA) THEN ! ALLOCATE (ZRECV(INSEGCELL)) ! - CALL MPI_GATHERV (ZLMAPOS, INSEGPROC, MPI_PRECISION, ZRECV, INBSEG_PROC, & - IDECAL, MPI_PRECISION, 0, NMNH_COMM_WORLD, IERR) + CALL MPI_GATHERV (ZLMAPOS, INSEGPROC, MNHREAL_MPI, ZRECV, INBSEG_PROC, & + IDECAL, MNHREAL_MPI, 0, NMNH_COMM_WORLD, IERR) ! IF (IPROC .EQ. 0) THEN ZLMA_NEUT_POS(1:INSEGCELL,IL) = ZRECV(1:INSEGCELL) END IF ! - CALL MPI_GATHERV (ZLMANEG, INSEGPROC, MPI_PRECISION, ZRECV, INBSEG_PROC, & - IDECAL, MPI_PRECISION, 0, NMNH_COMM_WORLD, IERR) + CALL MPI_GATHERV (ZLMANEG, INSEGPROC, MNHREAL_MPI, ZRECV, INBSEG_PROC, & + IDECAL, MNHREAL_MPI, 0, NMNH_COMM_WORLD, IERR) ! IF (IPROC .EQ. 0) THEN ZLMA_NEUT_NEG(1:INSEGCELL,IL) = ZRECV(1:INSEGCELL) @@ -2409,17 +2409,17 @@ IF (LLMA) THEN INBSEG_PROC_XNSV(:) = NSV_ELEC * INBSEG_PROC(:) END IF ! - CALL MPI_GATHERV (ZLMAQMT, NSV_ELEC*INSEGPROC, MPI_PRECISION, ZRECV, & - INBSEG_PROC_XNSV, & - IDECALN, MPI_PRECISION, 0, NMNH_COMM_WORLD, IERR ) + CALL MPI_GATHERV (ZLMAQMT, NSV_ELEC*INSEGPROC, MNHREAL_MPI, ZRECV, & + INBSEG_PROC_XNSV, & + IDECALN, MNHREAL_MPI, 0, NMNH_COMM_WORLD, IERR ) ! IF (IPROC .EQ. 0) THEN ZLMA_QMT(1:NSV_ELEC*INSEGCELL,IL) = ZRECV(1:NSV_ELEC*INSEGCELL) END IF ! - CALL MPI_GATHERV (ZLMAPRT, NSV_ELEC*INSEGPROC, MPI_PRECISION, ZRECV, & - INBSEG_PROC_XNSV, & - IDECALN, MPI_PRECISION, 0, NMNH_COMM_WORLD, IERR) + CALL MPI_GATHERV (ZLMAPRT, NSV_ELEC*INSEGPROC, MNHREAL_MPI, ZRECV, & + INBSEG_PROC_XNSV, & + IDECALN, MNHREAL_MPI, 0, NMNH_COMM_WORLD, IERR ) ! IF (IPROC .EQ. 0) THEN ZLMA_PRT(1:NSV_ELEC*INSEGCELL,IL) = ZRECV(1:NSV_ELEC*INSEGCELL) diff --git a/src/MNH/modd_precision.f90 b/src/MNH/modd_precision.f90 index afd0a3a21..421eec5f6 100644 --- a/src/MNH/modd_precision.f90 +++ b/src/MNH/modd_precision.f90 @@ -6,7 +6,7 @@ ! Author: ! P. Wautelet 08/03/2019 ! Modifications: -! +! P. Wautelet 22/03/2019: add MNHINT/REAL32/64_MPI, MNH2REAL32/64_MPI + more public parameters !----------------------------------------------------------------- module modd_precision @@ -20,6 +20,12 @@ implicit none private +public :: MNHINT32, MNHINT64, MNHREAL32, MNHREAL64, MNHREAL128 + +public :: MNHINT32_MPI, MNHINT64_MPI +public :: MNHREAL32_MPI, MNHREAL64_MPI +public :: MNH2REAL32_MPI, MNH2REAL64_MPI + public :: MNHINT, MNHREAL public :: MNHINT_MPI, MNHREAL_MPI, MNH2REAL_MPI @@ -37,26 +43,35 @@ integer, parameter :: MNHREAL32 = selected_real_kind( p = 6, r = 37 ) integer, parameter :: MNHREAL64 = selected_real_kind( p = 15, r = 307 ) integer, parameter :: MNHREAL128 = selected_real_kind( p = 33, r = 4931 ) +integer, parameter :: MNHINT32_MPI = MPI_INTEGER4 +integer, parameter :: MNHINT64_MPI = MPI_INTEGER8 + +integer, parameter :: MNHREAL32_MPI = MPI_REAL4 +integer, parameter :: MNHREAL64_MPI = MPI_REAL8 + +integer, parameter :: MNH2REAL32_MPI = MPI_2REAL +integer, parameter :: MNH2REAL64_MPI = MPI_2DOUBLE_PRECISION + ! Kinds for MesoNH #if ( MNH_INT == 4 ) integer, parameter :: MNHINT = MNHINT32 -integer, parameter :: MNHINT_MPI = MPI_INTEGER4 +integer, parameter :: MNHINT_MPI = MNHINT32_MPI #elif ( MNH_INT == 8 ) integer, parameter :: MNHINT = MNHINT64 -integer, parameter :: MNHINT_MPI = MPI_INTEGER8 +integer, parameter :: MNHINT_MPI = MNHINT64_MPI #else #error "Invalid MNH_INT" #endif #if ( MNH_REAL == 4 ) integer, parameter :: MNHREAL = MNHREAL32 -integer, parameter :: MNHREAL_MPI = MPI_REAL4 -integer, parameter :: MNH2REAL_MPI = MPI_2REAL +integer, parameter :: MNHREAL_MPI = MNHREAL32_MPI +integer, parameter :: MNH2REAL_MPI = MNH2REAL32_MPI #elif ( MNH_REAL == 8 ) integer, parameter :: MNHREAL = MNHREAL64 -integer, parameter :: MNHREAL_MPI = MPI_REAL8 -integer, parameter :: MNH2REAL_MPI = MPI_2DOUBLE_PRECISION +integer, parameter :: MNHREAL_MPI = MNHREAL64_MPI +integer, parameter :: MNH2REAL_MPI = MNH2REAL64_MPI #elif ( MNH_REAL == 16 ) integer, parameter :: MNHREAL = MNHREAL128 integer, parameter :: MNHREAL_MPI = MPI_REAL16 diff --git a/src/MNH/mode_elec_ll.f90 b/src/MNH/mode_elec_ll.f90 index dc4f100ef..0f613fff8 100644 --- a/src/MNH/mode_elec_ll.f90 +++ b/src/MNH/mode_elec_ll.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!------------------------------------------------------------------------ ! ################### MODULE MODE_ELEC_ll ! ################### @@ -24,7 +25,8 @@ !------------------------------------------------------------------------ ! USE MODD_MPIF -USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD +use modd_precision, only: MNHREAL_MPI +USE MODD_VAR_ll, ONLY: NMNH_COMM_WORLD ! IMPLICIT NONE ! @@ -32,7 +34,6 @@ IMPLICIT NONE ! ! INTEGER, PARAMETER :: IFIRST_PROC = 0 ! 0/1 to increase numerotation of proc number -INTEGER, PARAMETER :: MPI_PRECISION = MPI_DOUBLE_PRECISION ! ! INTERFACE SUM_ELEC_ll @@ -115,7 +116,7 @@ ZTAB = PSUM_INOUT INFO = -1 ! ! Sum(Proc) -CALL MPI_ALLREDUCE(ZTAB, PSUM_INOUT, IDIM, MPI_PRECISION, & +CALL MPI_ALLREDUCE(ZTAB, PSUM_INOUT, IDIM, MNHREAL_MPI, & MPI_SUM, NMNH_COMM_WORLD, INFO) ! END SUBROUTINE RSUM_ELEC_ll @@ -152,7 +153,7 @@ INFO = -1 ! !* 1.1 max(Proc) ! -CALL MPI_ALLREDUCE(ZTAB, PMIN_INOUT, IDIM, MPI_PRECISION, & +CALL MPI_ALLREDUCE(ZTAB, PMIN_INOUT, IDIM, MNHREAL_MPI, & MPI_MIN, NMNH_COMM_WORLD, INFO) ! !* 1.2 find the proc number of the maximum @@ -202,7 +203,7 @@ INFO = -1 ! !* 1.1 max(Proc) ! -CALL MPI_ALLREDUCE(ZTAB, PMAX_INOUT, IDIM, MPI_PRECISION, & +CALL MPI_ALLREDUCE(ZTAB, PMAX_INOUT, IDIM, MNHREAL_MPI, & MPI_MAX, NMNH_COMM_WORLD, INFO) ! !* 1.2 find the proc number of the maximum @@ -420,7 +421,7 @@ INFO = -1 ! !* 1.1 sum(Proc) ! -CALL MPI_ALLREDUCE(ZTAB, PSUM_INOUT, IDIM, MPI_PRECISION, & +CALL MPI_ALLREDUCE(ZTAB, PSUM_INOUT, IDIM, MNHREAL_MPI, & MPI_SUM, NMNH_COMM_WORLD, INFO) ! END SUBROUTINE RSUM0_ELEC_ll diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index 3faed5ea6..e1581455a 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -349,7 +349,7 @@ USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG,TFILE_DUMMY,TFILE_OUTPUTLISTING USE MODD_CONF_n USE MODD_NSV, ONLY : NSV,NSV_CHEM, & NSV_DSTEND, NSV_DSTBEG -use modd_precision, only: LFIINT +use modd_precision, only: LFIINT, MNHREAL_MPI ! USE MODN_BLANK ! @@ -1212,7 +1212,7 @@ IF( LEN_TRIM(CPGD_FILE) /= 0 ) THEN ! determine whether the model is flat or no ! ZZS_MAX = ABS( MAXVAL(XZS(NIB:NIU-JPHEXT,NJB:NJU-JPHEXT))) - CALL MPI_ALLREDUCE(ZZS_MAX, ZZS_MAX_ll, 1, MPI_PRECISION, MPI_MAX, & + CALL MPI_ALLREDUCE(ZZS_MAX, ZZS_MAX_ll, 1, MNHREAL_MPI, MPI_MAX, & NMNH_COMM_WORLD,IINFO_ll) IF( ABS(ZZS_MAX_ll) < 1.E-10 ) THEN LFLAT=.TRUE. diff --git a/src/MNH/pressurez.f90 b/src/MNH/pressurez.f90 index ae75dc536..16fe93871 100644 --- a/src/MNH/pressurez.f90 +++ b/src/MNH/pressurez.f90 @@ -230,8 +230,9 @@ USE MODD_DYN_n, ONLY: LRES, XRES USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_MPIF USE MODD_PARAMETERS +use modd_precision, only: MNHREAL_MPI USE MODD_REF, ONLY: LBOUSS -USE MODD_VAR_ll, ONLY: MPI_PRECISION, NMNH_COMM_WORLD , NPROC +USE MODD_VAR_ll, ONLY: NMNH_COMM_WORLD , NPROC ! USE MODE_IO_ll, ONLY: CLOSE_ll USE MODE_ll @@ -687,7 +688,7 @@ IF (LBUDGET_W) CALL BUDGET (PRWS,3,'PRES_BU_RW') ! ----------------------------- ! ZMAX = MAXVAL(ABS ( PRHODREF(:,:,IKB)-PRHODREF(:,:,IKE)) ) -CALL MPI_ALLREDUCE(ZMAX, ZMAX_ll, 1, MPI_PRECISION, MPI_MAX, & +CALL MPI_ALLREDUCE(ZMAX, ZMAX_ll, 1, MNHREAL_MPI, MPI_MAX, & NMNH_COMM_WORLD, KINFO) !IF ( ABS(PRHODREF(IIB,IJB,IKB)-PRHODREF(IIB,IJB,IKE)) > 1.E-12 & ! .AND. KTCOUNT >0 ) THEN diff --git a/src/MNH/retrieve2_nest_infon.f90 b/src/MNH/retrieve2_nest_infon.f90 index 9464e0431..5a12a1f46 100644 --- a/src/MNH/retrieve2_nest_infon.f90 +++ b/src/MNH/retrieve2_nest_infon.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -89,7 +89,7 @@ END MODULE MODI_RETRIEVE2_NEST_INFO_n !! J Stein 04/07/01 add cartesian case !! M.Faivre 2014 !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 -!! J.Escobar : 01/06/2016 : Bug in type of ZBUF INTEGER => REAL & use MPI_PRECISION for r4/R8 compatibility +!! J.Escobar : 01/06/2016 : Bug in type of ZBUF INTEGER => REAL & use MNHREAL_MPI for r4/R8 compatibility !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !------------------------------------------------------------------------------- ! @@ -106,8 +106,9 @@ USE MODD_MPIF USE MODD_PARAMETERS USE MODD_PGDDIM USE MODD_PGDGRID +use modd_precision, only: MNHREAL_MPI USE MODD_STRUCTURE_ll, ONLY: ZONE_ll -USE MODD_VAR_ll, ONLY: YSPLITTING, NMNH_COMM_WORLD, MPI_PRECISION +USE MODD_VAR_ll, ONLY: YSPLITTING, NMNH_COMM_WORLD ! USE MODE_GRIDPROJ USE MODE_MODELN_HANDLER @@ -302,13 +303,13 @@ ENDIF ! get the value of XXHAT and XYHAT at the origin of global son model ZXHATFIRSTENTRY_C = XXHAT(JPHEXT+1) ZYHATFIRSTENTRY_C = XYHAT(JPHEXT+1) - CALL MPI_ALLREDUCE(XXHAT(JPHEXT+1), ZXHATFIRSTENTRY_C, 1,MPI_PRECISION, MPI_MIN, NMNH_COMM_WORLD, IINFO_ll) - CALL MPI_ALLREDUCE(XYHAT(JPHEXT+1), ZYHATFIRSTENTRY_C, 1,MPI_PRECISION, MPI_MIN, NMNH_COMM_WORLD, IINFO_ll) + CALL MPI_ALLREDUCE(XXHAT(JPHEXT+1), ZXHATFIRSTENTRY_C, 1,MNHREAL_MPI, MPI_MIN, NMNH_COMM_WORLD, IINFO_ll) + CALL MPI_ALLREDUCE(XYHAT(JPHEXT+1), ZYHATFIRSTENTRY_C, 1,MNHREAL_MPI, MPI_MIN, NMNH_COMM_WORLD, IINFO_ll) ! get the latitude and longitude ZLAT2 and ZLON2 at the origin of global son model ZLAT2GLB = ZLAT2 ZLON2GLB = ZLON2 - CALL MPI_ALLREDUCE(ZLAT2, ZLAT2GLB, 1,MPI_PRECISION, MPI_MIN, NMNH_COMM_WORLD, IINFO_ll) - CALL MPI_ALLREDUCE(ZLON2, ZLON2GLB, 1,MPI_PRECISION, MPI_MIN, NMNH_COMM_WORLD, IINFO_ll) + CALL MPI_ALLREDUCE(ZLAT2, ZLAT2GLB, 1,MNHREAL_MPI, MPI_MIN, NMNH_COMM_WORLD, IINFO_ll) + CALL MPI_ALLREDUCE(ZLON2, ZLON2GLB, 1,MNHREAL_MPI, MPI_MIN, NMNH_COMM_WORLD, IINFO_ll) ! identify the process that own the origin of global son model, and communicate the global indices of the origin to all processes IF ( ZXHATFIRSTENTRY_C > XPGDXHAT(JPHEXT+1) .AND. ZXHATFIRSTENTRY_C <= XPGDXHAT(SIZE(XPGDXHAT)-JPHEXT) .AND. & @@ -365,8 +366,8 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ZXHATFIRSTENTRY_C = XXHAT(JPHEXT+1) ZYHATFIRSTENTRY_C = XYHAT(JPHEXT+1) ! broadcast XXHAT(JPHEXT+1) and find which process' father subdomain contains the coords of the first physical entry of local son subdomain - CALL MPI_BCAST( ZXHATFIRSTENTRY_C, 1, MPI_PRECISION, IPROC, NMNH_COMM_WORLD, IINFO_ll ) - CALL MPI_BCAST( ZYHATFIRSTENTRY_C, 1, MPI_PRECISION, IPROC, NMNH_COMM_WORLD, IINFO_ll ) + CALL MPI_BCAST( ZXHATFIRSTENTRY_C, 1, MNHREAL_MPI, IPROC, NMNH_COMM_WORLD, IINFO_ll ) + CALL MPI_BCAST( ZYHATFIRSTENTRY_C, 1, MNHREAL_MPI, IPROC, NMNH_COMM_WORLD, IINFO_ll ) ! ! communicating the value of XPGDXHAT (X direction) at the origin of local son subdomain IF ( IPROC == ISP-1 .AND. ZXHATFIRSTENTRY_C >= XPGDXHAT(JPHEXT+1) & @@ -389,9 +390,9 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ! the index of the first physical point of the local son subdomain of IPROC is II on the current process ! send XPGDXHAT(II) to process IPROC ZSENDBUF = XPGDXHAT(II) - CALL MPI_SEND( ZSENDBUF,1,MPI_PRECISION,IPROC,ISP+II,NMNH_COMM_WORLD,IINFO_ll ) + CALL MPI_SEND( ZSENDBUF,1,MNHREAL_MPI,IPROC,ISP+II,NMNH_COMM_WORLD,IINFO_ll ) ELSE IF ( IPROC == ISP-1 ) THEN - CALL MPI_RECV( ZRECVBUF,1,MPI_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) + CALL MPI_RECV( ZRECVBUF,1,MNHREAL_MPI,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) ZPGDXHATIXY1 = ZRECVBUF ELSE ! the other processes do nothing... @@ -418,9 +419,9 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ! the index of the first physical point of the local son subdomain is II on the current process ! send XPGDYHAT(II) to process IPROC ZSENDBUF = XPGDYHAT(II) - CALL MPI_SEND( ZSENDBUF,1,MPI_PRECISION,IPROC,ISP+II,NMNH_COMM_WORLD,IINFO_ll ) + CALL MPI_SEND( ZSENDBUF,1,MNHREAL_MPI,IPROC,ISP+II,NMNH_COMM_WORLD,IINFO_ll ) ELSE IF ( IPROC == ISP-1 ) THEN - CALL MPI_RECV( ZRECVBUF,1,MPI_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) + CALL MPI_RECV( ZRECVBUF,1,MNHREAL_MPI,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) ZPGDYHATIXY1 = ZRECVBUF ELSE ! the other processes do nothing... @@ -437,8 +438,8 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ZXHATFIRSTENTRY_C = XXHAT(JPHEXT+1) ZYHATFIRSTENTRY_C = XYHAT(JPHEXT+1) ! broadcast XXHAT(JPHEXT+1) and find which process' father subdomain contains the coords of the first physical entry of local son subdomain - CALL MPI_BCAST( ZXHATFIRSTENTRY_C, 1, MPI_PRECISION, IPROC, NMNH_COMM_WORLD, IINFO_ll ) - CALL MPI_BCAST( ZYHATFIRSTENTRY_C, 1, MPI_PRECISION, IPROC, NMNH_COMM_WORLD, IINFO_ll ) + CALL MPI_BCAST( ZXHATFIRSTENTRY_C, 1, MNHREAL_MPI, IPROC, NMNH_COMM_WORLD, IINFO_ll ) + CALL MPI_BCAST( ZYHATFIRSTENTRY_C, 1, MNHREAL_MPI, IPROC, NMNH_COMM_WORLD, IINFO_ll ) ! ! communicating the value of XPGDXHAT (X direction) at the origin of local son subdomain IF ( IPROC == ISP-1 .AND. ZXHATFIRSTENTRY_C >= XPGDXHAT(JPHEXT+1) & @@ -462,9 +463,9 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ! XPGDXHAT(II+1) is also defined on current process since HALO is at least 1 ! send XPGDXHAT(II+1) to process IPROC ZSENDBUF = XPGDXHAT(II+1) - CALL MPI_SEND( ZSENDBUF,1,MPI_PRECISION,IPROC,ISP+II+1,NMNH_COMM_WORLD,IINFO_ll ) + CALL MPI_SEND( ZSENDBUF,1,MNHREAL_MPI,IPROC,ISP+II+1,NMNH_COMM_WORLD,IINFO_ll ) ELSE IF ( IPROC == ISP-1 ) THEN - CALL MPI_RECV( ZRECVBUF,1,MPI_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) + CALL MPI_RECV( ZRECVBUF,1,MNHREAL_MPI,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) ZPGDXHATIXY1_1 = ZRECVBUF ELSE ! the other processes do nothing... @@ -492,9 +493,9 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ! XPGDYHAT(II+1) is also defined on current process since HALO is at least 1 ! send XPGDYHAT(II+1) to process IPROC ZSENDBUF = XPGDYHAT(II+1) - CALL MPI_SEND( ZSENDBUF,1,MPI_PRECISION,IPROC,ISP+II+1,NMNH_COMM_WORLD,IINFO_ll ) + CALL MPI_SEND( ZSENDBUF,1,MNHREAL_MPI,IPROC,ISP+II+1,NMNH_COMM_WORLD,IINFO_ll ) ELSE IF ( IPROC == ISP-1 ) THEN - CALL MPI_RECV( ZRECVBUF,1,MPI_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) + CALL MPI_RECV( ZRECVBUF,1,MNHREAL_MPI,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) ZPGDYHATIXY1_1 = ZRECVBUF ELSE ! the other processes do nothing... @@ -534,8 +535,8 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ZXHATLASTENTRY_C = XXHAT(SIZE(XXHAT)-JPHEXT) ZYHATLASTENTRY_C = XYHAT(SIZE(XYHAT)-JPHEXT) ! broadcast XXHAT(SIZE(XXHAT)-JPHEXT) and find which process' father subdomain contains the coords of the last physical entry of local son subdomain - CALL MPI_BCAST( ZXHATLASTENTRY_C, 1, MPI_PRECISION, IPROC, NMNH_COMM_WORLD, IINFO_ll ) - CALL MPI_BCAST( ZYHATLASTENTRY_C, 1, MPI_PRECISION, IPROC, NMNH_COMM_WORLD, IINFO_ll ) + CALL MPI_BCAST( ZXHATLASTENTRY_C, 1, MNHREAL_MPI, IPROC, NMNH_COMM_WORLD, IINFO_ll ) + CALL MPI_BCAST( ZYHATLASTENTRY_C, 1, MNHREAL_MPI, IPROC, NMNH_COMM_WORLD, IINFO_ll ) ! ! communicating the value of XPGDXHAT (X direction) at the origin of local son subdomain IF ( IPROC == ISP-1 .AND. ZXHATLASTENTRY_C >= XPGDXHAT(JPHEXT+1) & @@ -565,9 +566,9 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ! send XPGDXHAT(II) to process IPROC ! XPGDYHAT(II+1) is also defined on current process since HALO is at least 1 ZSENDBUF = XPGDXHAT(II) - CALL MPI_SEND( ZSENDBUF,1,MPI_PRECISION,IPROC,ISP+II,NMNH_COMM_WORLD,IINFO_ll ) + CALL MPI_SEND( ZSENDBUF,1,MNHREAL_MPI,IPROC,ISP+II,NMNH_COMM_WORLD,IINFO_ll ) ELSE IF ( IPROC == ISP-1 ) THEN - CALL MPI_RECV( ZRECVBUF,1,MPI_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) + CALL MPI_RECV( ZRECVBUF,1,MNHREAL_MPI,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) ZPGDXHATIXY2_1 = ZRECVBUF ELSE ! the other processes do nothing... @@ -600,9 +601,9 @@ DO IPROC = 0,ISNPROC-1 !loop on all processes ! the index of the last physical point of the local son subdomain is II on the current process ! send XPGDYHAT(II) to process IPROC ZSENDBUF = XPGDYHAT(II) - CALL MPI_SEND( ZSENDBUF,1,MPI_PRECISION,IPROC,ISP+II,NMNH_COMM_WORLD,IINFO_ll ) + CALL MPI_SEND( ZSENDBUF,1,MNHREAL_MPI,IPROC,ISP+II,NMNH_COMM_WORLD,IINFO_ll ) ELSE IF ( IPROC == ISP-1 ) THEN - CALL MPI_RECV( ZRECVBUF,1,MPI_PRECISION,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) + CALL MPI_RECV( ZRECVBUF,1,MNHREAL_MPI,MPI_ANY_SOURCE,MPI_ANY_TAG,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll ) ZPGDYHATIXY2_1 = ZRECVBUF ELSE ! the other processes do nothing... @@ -616,8 +617,8 @@ ENDDO ! 3.3 - now we have the coordinates (ZPGDXHATIXY2_1, ZPGDYHATIXY2_1) of the point in father grid just right+north of the LOCAL son subdomain ! We compute the coordinates of the last point in father grid of the GLOBAL son subdomain -CALL MPI_ALLREDUCE(ZPGDXHATIXY2_1, IXSUPCOORD1, 1,MPI_PRECISION, MPI_MAX, NMNH_COMM_WORLD, IINFO_ll) -CALL MPI_ALLREDUCE(ZPGDYHATIXY2_1, IYSUPCOORD1, 1,MPI_PRECISION, MPI_MAX, NMNH_COMM_WORLD, IINFO_ll) +CALL MPI_ALLREDUCE(ZPGDXHATIXY2_1, IXSUPCOORD1, 1,MNHREAL_MPI, MPI_MAX, NMNH_COMM_WORLD, IINFO_ll) +CALL MPI_ALLREDUCE(ZPGDYHATIXY2_1, IYSUPCOORD1, 1,MNHREAL_MPI, MPI_MAX, NMNH_COMM_WORLD, IINFO_ll) ! we compute the index of this point in local father grid IF ( IXSUPCOORD1 >= XPGDXHAT(1+JPHEXT) .AND. IXSUPCOORD1 <= XPGDXHAT(SIZE(XPGDXHAT)-JPHEXT) .AND. & diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90 index 02a6f8a47..90c8a7e35 100644 --- a/src/MNH/spawn_model2.f90 +++ b/src/MNH/spawn_model2.f90 @@ -230,6 +230,7 @@ USE MODD_PASPOL_n !$20140515 USE MODD_VAR_ll, ONLY : NPROC USE MODD_IO_ll, ONLY: TFILEDATA,TFILE_DUMMY,TFILE_SURFEX +use modd_precision, only: MNHREAL_MPI ! USE MODE_GRIDCART ! Executive modules USE MODE_GRIDPROJ @@ -1158,7 +1159,7 @@ ZTIME1 = ZTIME2 !* vertical interpolation ! ZZS_MAX = ABS( MAXVAL(XZS(:,:))) -CALL MPI_ALLREDUCE(ZZS_MAX, ZZS_MAX_ll, 1, MPI_PRECISION, MPI_MAX, & +CALL MPI_ALLREDUCE(ZZS_MAX, ZZS_MAX_ll, 1, MNHREAL_MPI, MPI_MAX, & NMNH_COMM_WORLD,IINFO_ll) IF ( (ZZS_MAX_ll>0.) .AND. (NDXRATIO/=1 .OR. NDYRATIO/=1) ) THEN CALL MPPDB_CHECK3D(XUT,"SPAWN_M2 before VER_INTERP_FIELD:XUT",PRECISION) diff --git a/src/MNH/spawn_zs.f90 b/src/MNH/spawn_zs.f90 index 63bd460af..b351b8d84 100644 --- a/src/MNH/spawn_zs.f90 +++ b/src/MNH/spawn_zs.f90 @@ -103,9 +103,10 @@ END MODULE MODI_SPAWN_ZS !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS, ONLY : JPHEXT ! Declarative modules -USE MODD_CONF, ONLY : NVERB +USE MODD_PARAMETERS, ONLY: JPHEXT ! Declarative modules +USE MODD_CONF, ONLY: NVERB USE MODD_LUNIT_n, ONLY: TLUOUT +use modd_precision, only: MNHREAL_MPI ! USE MODD_BIKHARDT_n ! @@ -192,7 +193,7 @@ INTEGER :: KDXRATIO_C, KDYRATIO_C !$20140704 !$20140711 not INT, REAL !! REAL :: ZMAXVAL -REAL :: LOCMAXVAL +REAL :: ZLOCMAXVAL !$20140801 INTEGER :: IORX, IORY, IIBINT,IJBINT,IIEINT,IJEINT INTEGER :: IXOR_C_ll, IXEND_C_ll ! origin and end of the local subdomain of the child model 2 @@ -414,8 +415,8 @@ IF (KDXRATIO/=1 .OR. KDYRATIO/=1) THEN ! ALLOCATE(ZDZS_3D(SIZE(ZDZS_C,1),SIZE(ZDZS_C,2),1)) ! WARNING : this is highly inefficient, this copy is unecessary ZDZS_3D(:,:,1)=ZDZS_C(:,:) ! We could write a function MAX2D_ll or use a POINTER for ZDZS_3D - LOCMAXVAL=MAXVAL(ABS(ZDZS_C)) - CALL MPI_ALLREDUCE(LOCMAXVAL,ZMAXVAL,1,MPI_PRECISION,MPI_MAX,NMNH_COMM_WORLD,IINFO_ll) + ZLOCMAXVAL=MAXVAL(ABS(ZDZS_C)) + CALL MPI_ALLREDUCE(ZLOCMAXVAL,ZMAXVAL,1,MNHREAL_MPI,MPI_MAX,NMNH_COMM_WORLD,IINFO_ll) IF (ZMAXVAL<1.E-3) THEN EXIT ENDIF diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90 index 188a9f0c6..dd015ccae 100644 --- a/src/MNH/write_lfifm1_for_diag.f90 +++ b/src/MNH/write_lfifm1_for_diag.f90 @@ -203,6 +203,7 @@ USE MODD_RADAR, ONLY: XLAT_RAD,XELEV,& NCURV_INTERPOL,LATT,LCART_RAD,NPTS_H,NPTS_V,XGRID,& LREFR,LDNDZ,NMAX,CNAME_RAD,NDIFF,& XLON_RAD,XALT_RAD,XLAM_RAD,XDT_RAD,LWBSCS,LWREFL +use modd_precision, only: MNHREAL_MPI ! USE MODI_RADAR_SIMULATOR ! @@ -3854,7 +3855,7 @@ IF(LRADAR .AND. LUSERR) THEN DEALLOCATE(CLATLON) END DO ELSE ! polar output - CALL MPI_ALLREDUCE(ZWORK42, ZWORK42_BIS, SIZE(ZWORK42), MPI_PRECISION, MPI_MAX, NMNH_COMM_WORLD, IERR) + CALL MPI_ALLREDUCE(ZWORK42, ZWORK42_BIS, SIZE(ZWORK42), MNHREAL_MPI, MPI_MAX, NMNH_COMM_WORLD, IERR) DO JI=1,NBRAD IEL=NBELEV(JI) DO JEL=1,IEL diff --git a/src/SURFEX/mode_gridtype_conf_proj.F90 b/src/SURFEX/mode_gridtype_conf_proj.F90 index ef3407628..4e8893414 100644 --- a/src/SURFEX/mode_gridtype_conf_proj.F90 +++ b/src/SURFEX/mode_gridtype_conf_proj.F90 @@ -41,10 +41,11 @@ CONTAINS ! USE MODD_SURF_PAR, ONLY : XUNDEF, NUNDEF #ifdef MNH_PARALLEL -USE MODD_VAR_ll, ONLY : NPROC, IP, MPI_PRECISION, NMNH_COMM_WORLD, YSPLITTING USE MODD_MPIF +use modd_precision, only: MNHREAL_MPI USE MODE_SPLITTINGZ_ll, ONLY : LINI_PARAZ USE MODE_TOOLS_ll, ONLY : GET_OR_ll +USE MODD_VAR_ll, ONLY : NPROC, IP, NMNH_COMM_WORLD, YSPLITTING #endif ! IMPLICIT NONE @@ -136,7 +137,7 @@ IF ( NPROC > 1 .AND. LINI_PARAZ) THEN ENDIF CALL MPI_ALLREDUCE(IROOT, IROOTPROC, 1, MPI_INTEGER, MPI_MIN, NMNH_COMM_WORLD, IINFO_ll) ! Then this process broadcasts the space steps in X direction in order to have the same space steps on all processes - CALL MPI_BCAST(PGRID_PAR(9), 1, MPI_PRECISION, IROOTPROC, NMNH_COMM_WORLD, IINFO_ll) + CALL MPI_BCAST(PGRID_PAR(9), 1, MNHREAL_MPI, IROOTPROC, NMNH_COMM_WORLD, IINFO_ll) ! ! get the processes with IL>0 with the southmost points CALL MPI_ALLREDUCE(IYOR, IYORMIN, 1, MPI_INTEGER, MPI_MIN, NMNH_COMM_WORLD, IINFO_ll) @@ -147,7 +148,7 @@ IF ( NPROC > 1 .AND. LINI_PARAZ) THEN ENDIF CALL MPI_ALLREDUCE(IROOT, IROOTPROC, 1, MPI_INTEGER, MPI_MIN, NMNH_COMM_WORLD, IINFO_ll) ! Then this process broadcasts the space steps in Y direction in order to have the same space steps on all processes - CALL MPI_BCAST(PGRID_PAR(10), 1, MPI_PRECISION, IROOTPROC, NMNH_COMM_WORLD, IINFO_ll) + CALL MPI_BCAST(PGRID_PAR(10), 1, MNHREAL_MPI, IROOTPROC, NMNH_COMM_WORLD, IINFO_ll) ENDIF #endif ! -- GitLab From 709ba8048be4d9ebf1af7f22f57e246cfcba1bc3 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 22 Mar 2019 15:50:45 +0100 Subject: [PATCH 110/139] Philippe 22/03/2019: use MNHREAL64 and MNHREAL64_MPI in mode_mnh_timing + typo corrections --- src/MNH/mode_mnh_timing.f90 | 67 ++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/src/MNH/mode_mnh_timing.f90 b/src/MNH/mode_mnh_timing.f90 index 35d7c559a..9d0c5b0cf 100644 --- a/src/MNH/mode_mnh_timing.f90 +++ b/src/MNH/mode_mnh_timing.f90 @@ -2,13 +2,15 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!------------------------------------------------------------------------ MODULE MODE_MNH_TIMING ! -! Modification : -! J.ESCOBAR 13/11/2008 : change (2) in (:) for bug in IBM-SP6 compiler -! J.Escobar 1/09/2011 : reduce 'timing' format -! J.Escobar 12/02/2013 : tribulle to slow on large BG partition , inhib it by a early return in the code -! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN +! Modifications: +! J. escobar 13/11/2008: change (2) in (:) for bug in IBM-SP6 compiler +! J. Escobar 01/09/2011: reduce 'timing' format +! J. Escobar 12/02/2013: triabulle too slow on large BG partition, inhib it by a early return in the code +! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN +! P. Wautelet 22/03/2019: use MNHREAL64 and MNHREAL64_MPI + typo corrections ! INTEGER :: NLUOUT_TIMING @@ -53,7 +55,7 @@ END SUBROUTINE SECOND_MNH2 SUBROUTINE TIMING_LEGEND() CALL TIMING_SEPARATOR('-') - WRITE(NLUOUT_TIMING,FMT="( '| CPUTIM/ELAPSE |& + WRITE(NLUOUT_TIMING,FMT="( '| CPUTIME/ELAPSED |& &| SUM(PROC) |MEAN(PROC)| MIN(PROC | MAX(PROC)| PERCENT %|')" ) CALL TIMING_SEPARATOR('-') END SUBROUTINE TIMING_LEGEND @@ -84,33 +86,30 @@ END SUBROUTINE SECOND_MNH2 !* 0. DECLARATIONS ! USE MODD_MPIF - USE MODD_VAR_ll, ONLY : MPI_PRECISION, NPROC, IP - !JUANZ - USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD - !JUANZ + use modd_precision, only: MNHREAL64, MNHREAL64_MPI + USE MODD_VAR_ll, ONLY: IP, NMNH_COMM_WORLD, NPROC ! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : ! - REAL*8,DIMENSION(:), INTENT(IN) :: PRES ! (1)=CPU & (2)=ELAPSE Proccessors Timing -! - REAL*8,DIMENSION(:), INTENT(INOUT) :: PSUM ! (1)=SUM(CPU) & (2)=SUM(ELAPSE) Timing -! - CHARACTER(len=*), INTENT(IN),OPTIONAL :: HPRINT - CHARACTER , INTENT(IN),OPTIONAL :: HSEP - CHARACTER(len=*), INTENT(IN),OPTIONAL :: HFULL + REAL(kind=MNHREAL64), DIMENSION(:), INTENT(IN) :: PRES ! (1)=CPU & (2)=ELAPSED Processes Timing + REAL(kind=MNHREAL64), DIMENSION(:), INTENT(INOUT) :: PSUM ! (1)=SUM(CPU) & (2)=SUM(ELAPSED) Timing + CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HPRINT + CHARACTER , OPTIONAL, INTENT(IN) :: HSEP + CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HFULL ! !* 0.2 Declarations of local variables : ! INTEGER,PARAMETER :: NSTAT=5 - REAL*8,DIMENSION(2,NSTAT) :: ZSTAT ! (1)=Sum(proc),(2)=Sum/Nproc,(3)=Min(proc),(4)=Max(proc),(5)=Purcent(1) + INTEGER :: INFO,IROOT,JP CHARACTER(len=30) :: VIDE = "" - CHARACTER(len=30) :: FILE = "" + CHARACTER(len=30) :: FILE = "" INTEGER :: IC - REAL*8,DIMENSION(2,NPROC) :: ZSTAT_ALL + REAL(kind=MNHREAL64), DIMENSION(2,NSTAT) :: ZSTAT ! (1)=Sum(proc),(2)=Sum/Nproc,(3)=Min(proc),(4)=Max(proc),(5)=Percent(1) + REAL(kind=MNHREAL64), DIMENSION(2,NPROC) :: ZSTAT_ALL INTEGER, DIMENSION(NPROC) :: IND INTEGER :: ILU ! @@ -120,15 +119,15 @@ END SUBROUTINE SECOND_MNH2 ! ------------------------------ INFO = -1 ! 1.1 Sum(Proc) - CALL MPI_ALLREDUCE(PRES, ZSTAT(:,1), 2, MPI_REAL8, & + CALL MPI_ALLREDUCE(PRES, ZSTAT(:,1), 2, MNHREAL64_MPI, & MPI_SUM, NMNH_COMM_WORLD, INFO) ! 1.2 Sum/Proc ZSTAT(:,2) = ZSTAT(:,1 ) / NPROC ! 1.3 Min(Proc) - CALL MPI_ALLREDUCE(PRES, ZSTAT(:,3), 2, MPI_REAL8, & + CALL MPI_ALLREDUCE(PRES, ZSTAT(:,3), 2, MNHREAL64_MPI, & MPI_MIN, NMNH_COMM_WORLD, INFO) ! 1.4 Max(Proc) - CALL MPI_ALLREDUCE(PRES, ZSTAT(:,4), 2, MPI_REAL8, & + CALL MPI_ALLREDUCE(PRES, ZSTAT(:,4), 2, MNHREAL64_MPI, & MPI_MAX, NMNH_COMM_WORLD, INFO) @@ -138,8 +137,8 @@ INFO = -1 ! ELSEIF ( ZSTAT(1,1) > 0.0 ) THEN - ! use Psum , for print stat & pourcent - ! Purcent + ! use Psum , for print stat & percent + ! Percent WHERE ( PSUM /= 0.0 ) ZSTAT(:,5) = 100.0 * ZSTAT(:,1) / PSUM(:) ELSEWHERE @@ -148,14 +147,14 @@ INFO = -1 ! print stat ! IF (PRESENT(HSEP)) CALL TIMING_SEPARATOR(HSEP) - WRITE(NLUOUT_TIMING,FMT= "('|',A30,'| CPUTIM ||',F15.3,'|',4(F10.3,'|'),F7.3,'|')" ) HPRINT//VIDE,ZSTAT(1,:) - WRITE(NLUOUT_TIMING,FMT= "('|',A30,'| ELAPSE ||',F15.3,'|',4(F10.3,'|'),F7.3,'|')" ) HPRINT//VIDE,ZSTAT(2,:) + WRITE(NLUOUT_TIMING,FMT= "('|',A29,'| CPUTIME ||',F15.3,'|',4(F10.3,'|'),F7.3,'|')" ) HPRINT//VIDE,ZSTAT(1,:) + WRITE(NLUOUT_TIMING,FMT= "('|',A29,'| ELAPSED ||',F15.3,'|',4(F10.3,'|'),F7.3,'|')" ) HPRINT//VIDE,ZSTAT(2,:) IF (PRESENT(HFULL)) THEN ! gather all data !CALL TIMING_SEPARATOR(HSEP) IROOT = 0 - CALL MPI_GATHER(PRES(:),2,MPI_REAL8,ZSTAT_ALL(:,1),2,MPI_REAL8,& + CALL MPI_GATHER(PRES(:),2,MNHREAL64_MPI,ZSTAT_ALL(:,1),2,MNHREAL64_MPI,& IROOT,NMNH_COMM_WORLD, INFO) IF (IP.EQ.1) THEN FILE = trim(adjustl(HPRINT)) @@ -188,17 +187,17 @@ INFO = -1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! subroutine triabulle(vec,ind) -implicit none - -real*8 , intent(inout) :: vec(:) -integer, intent(out) :: ind(:) +use modd_precision, only: MNHREAL64 +implicit none -integer :: n +real(kind=MNHREAL64), dimension(:), intent(inout) :: vec +integer, dimension(:), intent(out) :: ind logical :: a integer :: i integer :: mem +integer :: n n = size(vec) a = .true. @@ -207,7 +206,7 @@ do i=1,n enddo return -!JUAN TO SLOW ON BG !!! +!JUAN TOO SLOW ON BG !!! do while (a) a=.false. -- GitLab From 272dd095d868a649915a522d87cbae24e74cd7b8 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 22 Mar 2019 16:26:40 +0100 Subject: [PATCH 111/139] Philippe 22/03/2019: SURFEX: use MNH_REAL key instead of MNH_MPI_DOUBLE_PRECISION --- src/SURFEX/ini_csts.F90 | 11 ++++++++--- src/SURFEX/modd_surf_par.F90 | 11 ++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/SURFEX/ini_csts.F90 b/src/SURFEX/ini_csts.F90 index 39462a53a..a17a39e36 100644 --- a/src/SURFEX/ini_csts.F90 +++ b/src/SURFEX/ini_csts.F90 @@ -54,6 +54,9 @@ ! ------------ ! USE MODD_CSTS +#ifdef SFX_MNH +USE MODD_PRECISION, ONLY: MNHREAL +#endif ! ! USE YOMHOOK ,ONLY : LHOOK, DR_HOOK @@ -78,10 +81,12 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE IF (LHOOK) CALL DR_HOOK('INI_CSTS',0,ZHOOK_HANDLE) #ifdef SFX_MNH -#ifdef MNH_MPI_DOUBLE_PRECISION -XSURF_TINY = 1.0e-80 -#else +#if (MNH_REAL == 8) +XSURF_TINY = 1.0e-80_MNHREAL +#elif (MNH_REAL == 4) XSURF_TINY = TINY (XSURF_TINY ) +#else +#error "Invalid MNH_REAL" #endif #else XSURF_TINY = 1.0e-80 diff --git a/src/SURFEX/modd_surf_par.F90 b/src/SURFEX/modd_surf_par.F90 index 2947cd3b0..f38334f2d 100644 --- a/src/SURFEX/modd_surf_par.F90 +++ b/src/SURFEX/modd_surf_par.F90 @@ -33,6 +33,9 @@ MODULE MODD_SURF_PAR !* 0. DECLARATIONS ! ------------ ! +#ifdef SFX_MNH +USE MODD_PRECISION, ONLY: MNHREAL +#endif ! IMPLICIT NONE ! @@ -43,10 +46,12 @@ INTEGER :: NBUGFIX ! bugfix number of this version #ifndef SFX_MNH REAL, PARAMETER :: XUNDEF = 1.E+20 #else -#ifdef MNH_MPI_DOUBLE_PRECISION -REAL, PARAMETER :: XUNDEF = 1.E+20! HUGE(XUNDEF) ! Z'7FFFFFFFFFFFFFFF' ! undefined value +#if (MNH_REAL == 8) +REAL, PARAMETER :: XUNDEF = 1.E+20_MNHREAL ! HUGE(XUNDEF) ! Z'7FFFFFFFFFFFFFFF' ! undefined value +#elif (MNH_REAL == 4) +REAL, PARAMETER :: XUNDEF = 1.E+9_MNHREAL ! HUGE(XUNDEF) ! Z'7FBFFFFF' ! undefined value #else -REAL, PARAMETER :: XUNDEF = 1.E+9 ! HUGE(XUNDEF) ! Z'7FBFFFFF' ! undefined value +#error "Invalid MNH_REAL" #endif #endif INTEGER, PARAMETER :: NUNDEF = 1E+9 ! HUGE(NUNDEF) ! undefined value -- GitLab From bc8aa0b95fcb60a5c669b05f8ff0894ac2d58b46 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Wed, 27 Mar 2019 13:31:54 +0100 Subject: [PATCH 112/139] Revert "Philippe 20/03/2019: bugfix: use size(ZDIRFLASWD,3) instead of SIZE(PDIRFLASWD,3) for loop for ZDIRFLASWD(:,:,JVAR)" This reverts commit f88d574bdbcb2831aaa66afc424433378d48f37e. --- src/MNH/two_wayn.f90 | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/MNH/two_wayn.f90 b/src/MNH/two_wayn.f90 index 5e114001e..ff6e46c09 100644 --- a/src/MNH/two_wayn.f90 +++ b/src/MNH/two_wayn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1997-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1997-2018 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -112,8 +112,7 @@ END MODULE MODI_TWO_WAY_n !! Bosseur & Filippi 07/2013 Adds Forefire !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Modification 01/2016 (JP Pinty) Add LIMA -! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 20/03/2019: bugfix: use size(ZDIRFLASWD,3) instead of SIZE(PDIRFLASWD,3) for loop for ZDIRFLASWD(:,:,JVAR) +!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -1012,7 +1011,7 @@ IF (CDCONV /= 'NONE') THEN CALL SET_LSFIELD_2WAY_ll(ZPRSCONV , ZTPRSCONV) END IF IF (CRAD /= 'NONE') THEN - DO JVAR = 1, SIZE(ZDIRFLASWD, 3) + DO JVAR=1,SIZE( PDIRFLASWD,3) CALL SET_LSFIELD_2WAY_ll(ZDIRFLASWD(:,:,JVAR) , ZTDIRFLASWD(:,:,JVAR)) CALL SET_LSFIELD_2WAY_ll(ZSCAFLASWD(:,:,JVAR) , ZTSCAFLASWD(:,:,JVAR)) CALL SET_LSFIELD_2WAY_ll(ZDIRSRFSWD(:,:,JVAR) , ZTDIRSRFSWD(:,:,JVAR)) -- GitLab From 4b96b3b6479aabaacedc2ee4130e764d1da69cca Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Wed, 27 Mar 2019 13:46:20 +0100 Subject: [PATCH 113/139] Juan 27/03/2019: correction for only 1 file for SST --- src/SURFEX/prep_sst_init.F90 | 54 ++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/src/SURFEX/prep_sst_init.F90 b/src/SURFEX/prep_sst_init.F90 index 3e4b1bfdf..d2dd441b4 100644 --- a/src/SURFEX/prep_sst_init.F90 +++ b/src/SURFEX/prep_sst_init.F90 @@ -36,6 +36,7 @@ !! MODIFICATIONS !! ------------- !! Original 09/2007 +!! J.Escobar 03/2019 correction for only 1 file of SST !! !------------------------------------------------------------------------------- ! @@ -80,33 +81,38 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE ! ! IF (LHOOK) CALL DR_HOOK('PREP_SST_INIT',0,ZHOOK_HANDLE) -LOOP: DO JI = DTS%NTIME-1,1,-1 - KSX = JI - IF (.NOT.TEMPORAL_LTS(TPTIME,DTS%TDATA_SST(KSX))) EXIT LOOP - ENDDO LOOP - -IF ( TEMPORAL_LTS ( TPTIME, DTS%TDATA_SST(KSX) ) ) THEN - ZSST(:) = DTS%XDATA_SST(:,KSX) -ELSE IF ( .NOT. TEMPORAL_LTS ( TPTIME, DTS%TDATA_SST(DTS%NTIME) ) ) THEN - ZSST(:) = DTS%XDATA_SST(:,DTS%NTIME) + IF ( DTS%NTIME ==1 ) THEN + ! only one value, take this + KSX = 1 + ZSST(:) = DTS%XDATA_SST(:,DTS%NTIME) ELSE + LOOP: DO JI = DTS%NTIME-1,1,-1 + KSX = JI + IF (.NOT.TEMPORAL_LTS(TPTIME,DTS%TDATA_SST(KSX))) EXIT LOOP + ENDDO LOOP + + IF ( TEMPORAL_LTS ( TPTIME, DTS%TDATA_SST(KSX) ) ) THEN + ZSST(:) = DTS%XDATA_SST(:,KSX) + ELSE IF ( .NOT. TEMPORAL_LTS ( TPTIME, DTS%TDATA_SST(DTS%NTIME) ) ) THEN + ZSST(:) = DTS%XDATA_SST(:,DTS%NTIME) + ELSE - CALL TEMPORAL_DISTS ( DTS%TDATA_SST(KSX+1)%TDATE%YEAR,DTS%TDATA_SST(KSX+1)%TDATE%MONTH, & - DTS%TDATA_SST(KSX+1)%TDATE%DAY ,DTS%TDATA_SST(KSX+1)%TIME, & - DTS%TDATA_SST(KSX)%TDATE%YEAR,DTS%TDATA_SST(KSX)%TDATE%MONTH, & - DTS%TDATA_SST(KSX)%TDATE%DAY ,DTS%TDATA_SST(KSX)%TIME, & - ZSDTJX ) + CALL TEMPORAL_DISTS ( DTS%TDATA_SST(KSX+1)%TDATE%YEAR,DTS%TDATA_SST(KSX+1)%TDATE%MONTH, & + DTS%TDATA_SST(KSX+1)%TDATE%DAY ,DTS%TDATA_SST(KSX+1)%TIME, & + DTS%TDATA_SST(KSX)%TDATE%YEAR,DTS%TDATA_SST(KSX)%TDATE%MONTH, & + DTS%TDATA_SST(KSX)%TDATE%DAY ,DTS%TDATA_SST(KSX)%TIME, & + ZSDTJX ) - CALL TEMPORAL_DISTS ( TPTIME%TDATE%YEAR ,TPTIME%TDATE%MONTH, & - TPTIME%TDATE%DAY ,TPTIME%TIME, & - DTS%TDATA_SST(KSX)%TDATE%YEAR,DTS%TDATA_SST(KSX)%TDATE%MONTH, & - DTS%TDATA_SST(KSX)%TDATE%DAY ,DTS%TDATA_SST(KSX)%TIME, & - ZDT ) -! - ZALPHA = ZDT / ZSDTJX -! - ZSST(:)= DTS%XDATA_SST(:,KSX)+(DTS%XDATA_SST(:,KSX+1)-DTS%XDATA_SST(:,KSX))*ZALPHA - + CALL TEMPORAL_DISTS ( TPTIME%TDATE%YEAR ,TPTIME%TDATE%MONTH, & + TPTIME%TDATE%DAY ,TPTIME%TIME, & + DTS%TDATA_SST(KSX)%TDATE%YEAR,DTS%TDATA_SST(KSX)%TDATE%MONTH, & + DTS%TDATA_SST(KSX)%TDATE%DAY ,DTS%TDATA_SST(KSX)%TIME, & + ZDT ) + ! + ZALPHA = ZDT / ZSDTJX + ! + ZSST(:)= DTS%XDATA_SST(:,KSX)+(DTS%XDATA_SST(:,KSX+1)-DTS%XDATA_SST(:,KSX))*ZALPHA + END IF END IF PSST(:) = ZSST(:) -- GitLab From a9fff215ef01b5ea1529c0e7f54bb065c47299b3 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 28 Mar 2019 14:35:47 +0100 Subject: [PATCH 114/139] Philippe 28/03/2019: remove unused empty subroutines --- src/MNH/advection.f90 | 181 --------------------------------------- src/MNH/updraft_sope.f90 | 148 -------------------------------- 2 files changed, 329 deletions(-) delete mode 100644 src/MNH/advection.f90 delete mode 100644 src/MNH/updraft_sope.f90 diff --git a/src/MNH/advection.f90 b/src/MNH/advection.f90 deleted file mode 100644 index 363bd919c..000000000 --- a/src/MNH/advection.f90 +++ /dev/null @@ -1,181 +0,0 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -! ##################### - MODULE MODI_ADVECTION -! ##################### -! -INTERFACE - SUBROUTINE ADVECTION (HUVW_ADV_SCHEME,HMET_ADV_SCHEME,HSV_ADV_SCHEME, & - KLITER, HLBCX, HLBCY,KRR, KSV, KTCOUNT, & - PTSTEP_MET, PTSTEP_SV, & - PUM, PVM, PWM, PTHM, PRM, PTKEM, PSVM, & - PUT, PVT, PWT, PTHT, PRT, PTKET, PSVT, & - PRHODJ, PDXX, PDYY, PDZZ, PDZX, PDZY, & - PRUS,PRVS, PRWS, PRTHS, PRRS, PRTKES, PRSVS ) -! -! -CHARACTER(LEN=6), INTENT(IN) :: HMET_ADV_SCHEME, & ! Control of the - HSV_ADV_SCHEME, & ! scheme applied - HUVW_ADV_SCHEME ! to the selected - ! variables -! -INTEGER, INTENT(IN) :: KLITER ! Iteration number for - ! the MPDATA scheme -! -CHARACTER(LEN=4),DIMENSION(2),INTENT(IN):: HLBCX, HLBCY ! X- and Y-direc LBC -! -INTEGER, INTENT(IN) :: KRR ! Number of moist variables -INTEGER, INTENT(IN) :: KSV ! Number of Scalar Variables -INTEGER, INTENT(IN) :: KTCOUNT ! iteration count -REAL, INTENT(IN) :: PTSTEP_MET ! Effective time step for - ! meteorological scalar variables - ! (depending on advection scheme) -REAL, INTENT(IN) :: PTSTEP_SV ! Effective time step for - ! tracer scalar variables - ! (depending on advection scheme) -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHM, PTKEM -REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRM , PSVM - ! Variables at t-dt -REAL, DIMENSION(:,:,:), INTENT(IN) :: PUM, PVM, PWM - ! Variables at t-dt -REAL, DIMENSION(:,:,:), INTENT(IN) :: PUT , PVT , PWT, PRHODJ -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT, PTKET -REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT , PSVT - ! Variables at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX,PDYY,PDZZ,PDZX,PDZY - ! metric coefficients -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRUS , PRVS , PRWS -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRTHS, PRTKES -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS , PRSVS - ! Sources terms -! -! -END SUBROUTINE ADVECTION -! -END INTERFACE -! -END MODULE MODI_ADVECTION -! ########################################################################## - SUBROUTINE ADVECTION (HUVW_ADV_SCHEME,HMET_ADV_SCHEME,HSV_ADV_SCHEME, & - KLITER, HLBCX, HLBCY,KRR, KSV, KTCOUNT, & - PTSTEP_MET, PTSTEP_SV, & - PUM, PVM, PWM, PTHM, PRM, PTKEM, PSVM, & - PUT, PVT, PWT, PTHT, PRT, PTKET, PSVT, & - PRHODJ, PDXX, PDYY, PDZZ, PDZX, PDZY, & - PRUS,PRVS, PRWS, PRTHS, PRRS, PRTKES, PRSVS ) -! ########################################################################## -! -!!**** *ADVECTION * - routine to call the specialized advection routines -!! -!! PURPOSE -!! ------- -!! The purpose of this routine is to control the advection routines. -!! For that, it is first necessary to compute the metric coefficients -!! and the contravariant components of the momentum. -!! -!!** METHOD -!! ------ -!! The advection of momenta is calculated using a centred (second order) -!! scheme. Three schemes can be used to calculated the advection of a -!! scalar: centred (2nd) (ADVECSCALAR), Flux-Corrected Transport Scalar -!! (FCT_SCALAR) and a Multidimensional Positive Definite Advection Transport -!! Algorithm (MPDATA). -!! Once the scheme is selected, it is applied to the following group of -!! variables: METeorologicals (temperature, water substances, TKE, -!! dissipation TKE) and Scalar Variables. It is possible to select different -!! advection schemes for each group of variables. -!! -!! EXTERNAL -!! -------- -!! Functions MXM,MYM,MZM : computes the averages along the 3 directions -!! CONTRAV : computes the contravariant components. -!! ADVECUVW : computes the advection terms for momentum. -!! ADVECSCALAR : computes the advection terms for scalar fields. -!! ADD3DFIELD_ll : add a field to 3D-list -!! ADVEC_4TH_ORDER : 4th order advection scheme -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -!! NONE -!! -!! REFERENCE -!! --------- -!! Book1 and book2 ( routine ADVECTION ) -!! -!! AUTHOR -!! ------ -!! J.-P. Pinty * Laboratoire d'Aerologie* -!! J.-P. Lafore * Meteo France * -!! -!! MODIFICATIONS -!! ------------- -!! Original 06/07/94 -!! 01/04/95 (Ph. Hereil J. Nicolau) add the model number -!! 23/10/95 (J. Vila and JP Lafore) advection schemes scalar -!! 16/01/97 (JP Pinty) change presentation -!! 30/04/98 (J. Stein P Jabouille) extrapolation for the cyclic -!! case and parallelisation -!! 24/06/99 (P Jabouille) case of NHALO>1 -!! 25/10/05 (JP Pinty) 4th order scheme -!! 24/04/06 (C.Lac) Split scalar and passive -!! tracer routines -!! 08/06 (T.Maric) PPM scheme -!! -!------------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! ------------ -! -! -! -!------------------------------------------------------------------------------- -! -IMPLICIT NONE -! -!* 0.1 Declarations of dummy arguments : -! -CHARACTER(LEN=6), INTENT(IN) :: HMET_ADV_SCHEME, & ! Control of the - HSV_ADV_SCHEME, & ! scheme applied - HUVW_ADV_SCHEME ! to the selected - ! variables -! -INTEGER, INTENT(IN) :: KLITER ! Iteration number for - ! the MPDATA scheme -! -CHARACTER(LEN=4),DIMENSION(2),INTENT(IN):: HLBCX, HLBCY ! X- and Y-direc LBC -! -INTEGER, INTENT(IN) :: KRR ! Number of moist variables -INTEGER, INTENT(IN) :: KSV ! Number of Scalar Variables -! -INTEGER, INTENT(IN) :: KTCOUNT ! iteration count -REAL, INTENT(IN) :: PTSTEP_MET ! Effective time step for - ! meteorological scalar variables - ! (depending on advection scheme) -REAL, INTENT(IN) :: PTSTEP_SV ! Effective time step for - ! tracer scalar variables - ! (depending on advection scheme) -! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHM, PTKEM -REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRM , PSVM - ! Variables at t-dt -REAL, DIMENSION(:,:,:), INTENT(IN) :: PUM, PVM, PWM - ! Variables at t-dt -REAL, DIMENSION(:,:,:), INTENT(IN) :: PUT , PVT , PWT -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT, PTKET, PRHODJ -REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT , PSVT - ! Variables at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX,PDYY,PDZZ,PDZX,PDZY - ! metric coefficients -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRUS , PRVS, PRWS -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRTHS, PRTKES -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS , PRSVS - ! Sources terms -! -! -! ROUTINE TO REMOVE -!------------------------------------------------------------------------------- -! -END SUBROUTINE ADVECTION diff --git a/src/MNH/updraft_sope.f90 b/src/MNH/updraft_sope.f90 deleted file mode 100644 index 141eef53b..000000000 --- a/src/MNH/updraft_sope.f90 +++ /dev/null @@ -1,148 +0,0 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -! ################################# - MODULE MODI_UPDRAFT_SOPE -! ################################# -! -INTERFACE -! - SUBROUTINE UPDRAFT_SOPE(KRR,KRRL,KRRI,OMIXUV, & - PZZ,PDZZ,PSFTH,PSFRV,PPABSM,PRHODREF, & - PTKEM,PTHM,PRM,PTHLM,PRTM,PUM,PVM,PSVM, & - PTHL_UP,PRT_UP,PRV_UP,PU_UP,PV_UP,PSV_UP, & - PRC_UP,PRI_UP,PTHV_UP,PW_UP,PFRAC_UP,PEMF,& - PDETR,PENTR,KKLCL,KKETL,KKCTL ) -! -! -! -INTEGER, INTENT(IN) :: KRR ! number of moist var. -INTEGER, INTENT(IN) :: KRRL ! number of liquid water var. -INTEGER, INTENT(IN) :: KRRI ! number of ice water var. -LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum - -REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ ! Height at the flux point - -REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! depth between mass levels - -REAL, DIMENSION(:,:), INTENT(IN) :: PSFTH,PSFRV - ! normal surface fluxes of theta,rv -! -! prognostic variables at t- deltat -REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABSM ! Pressure at time t-1 -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! dry density of the - ! reference state -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTKEM ! TKE -REAL, DIMENSION(:,:,:), INTENT(IN) :: PUM,PVM ! momentum -! -REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVM ! Scalar variables -! -! thermodynamical variables which are transformed in conservative var. -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHM ! pot. temp. = PTHLM in turb.f90 -REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRM ! water species -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHLM,PRTM !cons. var. -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PTHL_UP,PRT_UP ! updraft properties -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRV_UP,PRC_UP,PRI_UP,&!Thl,Rt,Rv,Rc,Ri - PW_UP,PFRAC_UP,PEMF, &!w,Updraft Fraction, Mass Flux - PDETR,PENTR,PTHV_UP, &!entrainment, detrainment, ThV - PU_UP, PV_UP !updraft wind component -REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PSV_UP ! updraft scalar variables -INTEGER, DIMENSION(:,:), INTENT(OUT) :: KKLCL,KKETL,KKCTL !index for LCL,ETL,CTL -! -! -END SUBROUTINE UPDRAFT_SOPE - -END INTERFACE -! -END MODULE MODI_UPDRAFT_SOPE -! -! -! ################################################################# - SUBROUTINE UPDRAFT_SOPE(KRR,KRRL,KRRI,OMIXUV, & - PZZ,PDZZ,PSFTH,PSFRV,PPABSM,PRHODREF, & - PTKEM,PTHM,PRM,PTHLM,PRTM,PUM,PVM,PSVM, & - PTHL_UP,PRT_UP,PRV_UP,PU_UP,PV_UP,PSV_UP, & - PRC_UP,PRI_UP,PTHV_UP,PW_UP,PFRAC_UP,PEMF, & - PDETR,PENTR,KKLCL,KKETL,KKCTL ) -! ################################################################# -!! -!!**** *UPDRAFT_SOPE* - Interfacing routine -!! -!! PURPOSE -!! ------- -!!**** Reshape arrays before updraft computations -!! -! -!!** METHOD -!! ------ -!! -!! EXTERNAL -!! -------- -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -!! -!! !! REFERENCE -!! --------- -!! -!! AUTHOR -!! ------ -!! J.Pergaud -!! -------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! ------------ -! -USE MODD_PARAMETERS -USE MODD_CST -USE MODD_CONF -USE MODD_NSV - -USE MODI_COMPUTE_UPDRAFT - -IMPLICIT NONE - -!* 1.1 Declaration of Arguments -! -! -INTEGER, INTENT(IN) :: KRR ! number of moist var. -INTEGER, INTENT(IN) :: KRRL ! number of liquid water var. -INTEGER, INTENT(IN) :: KRRI ! number of ice water var. -LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum - -REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ ! Height at the flux point - -REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! depth between mass levels - -REAL, DIMENSION(:,:), INTENT(IN) :: PSFTH,PSFRV - ! normal surface fluxes of theta,rv -! -! prognostic variables at t- deltat -REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABSM ! Pressure at time t-1 -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! dry density of the - ! reference state -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTKEM ! TKE -REAL, DIMENSION(:,:,:), INTENT(IN) :: PUM,PVM ! momentum - -REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVM ! Scalar variables -! -! thermodynamical variables which are transformed in conservative var. -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHM ! pot. temp. = PTHLM in turb.f90 -REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRM ! water species -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHLM,PRTM !cons. var. -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PTHL_UP,PRT_UP ! updraft properties -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRV_UP,PRC_UP,PRI_UP,&!Thl,Rt,Rv,Rc,Ri - PW_UP,PFRAC_UP,PEMF, &!w,Updraft Fraction, Mass Flux - PDETR,PENTR,PTHV_UP, &!entrainment, detrainment, ThV - PU_UP, PV_UP !updraft wind component - -REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PSV_UP ! updraft scalar variables - -INTEGER, DIMENSION(:,:), INTENT(OUT) :: KKLCL,KKETL,KKCTL !index for LCL,ETL,CTL -! -! -! - -END SUBROUTINE UPDRAFT_SOPE - -- GitLab From ebb8f02e8eeab4c7c002b65c72b592fe6141dbd8 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 28 Mar 2019 14:55:17 +0100 Subject: [PATCH 115/139] Philippe 28/03/2019: use MNHTIME for time measurement variables (IO subroutines not yet done) --- src/MNH/diag.f90 | 33 ++++++++------- src/MNH/diagnos_les_mf.f90 | 24 ++++++----- src/MNH/flat_invz.f90 | 62 ++++++++++++++------------- src/MNH/modd_precision.f90 | 5 +++ src/MNH/modd_sub_modeln.f90 | 62 +++++++++++++-------------- src/MNH/modd_timez.f90 | 83 +++++++++++++++++++------------------ src/MNH/mode_mnh_timing.f90 | 56 ++++++++++++++----------- src/MNH/modeln.f90 | 83 +++++++++++++++++++------------------ src/MNH/phys_paramn.f90 | 51 ++++++++++++----------- src/MNH/prep_ideal_case.f90 | 11 ++--- src/MNH/shallow_mf_pack.f90 | 41 ++++++++++-------- 11 files changed, 270 insertions(+), 241 deletions(-) diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90 index 06488a688..518d37f04 100644 --- a/src/MNH/diag.f90 +++ b/src/MNH/diag.f90 @@ -89,6 +89,7 @@ !! V.Vionnet 07/2017 add LWIND_CONTRAV !! 11/2017 (D. Ricard, P. Marquet) add diagnostics for THETAS ! P. Wautelet 11/02/2019: added missing use of MODI_CH_MONITOR_n +! P. Wautelet 28/03/2019: use MNHTIME for time measurement variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -124,7 +125,7 @@ USE MODD_PARAM_LIMA, ONLY: LLIMA_DIAG USE MODD_PARAM_MFSHALL_n USE MODD_PARAM_n USE MODD_PARAM_RAD_n -use modd_precision, only: LFIINT +use modd_precision, only: LFIINT, MNHTIME USE MODD_PROFILER_n USE MODD_RADAR USE MODD_RADIATIONS_n @@ -185,9 +186,9 @@ CHARACTER (LEN=4) :: YTURB ! initial flag to call to turbulence schemes CHARACTER (LEN=40) :: YFMT,YFMT2! format for cpu analysis printing INTEGER :: IRESP ! return code in FM routines INTEGER :: ILUOUT0 ! Logical unit number for the output listing -REAL*8,DIMENSION(2) :: ZTIME0,ZTIME1,ZTIME2,ZRAD,ZDCONV,ZSHADOWS,ZGROUND, & - ZTRACER,ZDRAG,ZTURB,ZMAFL,ZCHEM,ZTIME_BU ! CPU time -REAL*8,DIMENSION(2) :: ZSTART,ZINIT,ZWRIT,ZBALL,ZPHYS,ZSURF,ZWRITS,ZTRAJ ! storing variables +REAL(kind=MNHTIME), DIMENSION(2) :: ZTIME0, ZTIME1, ZTIME2, ZRAD, ZDCONV, ZSHADOWS, ZGROUND, & + ZTRACER, ZDRAG, ZTURB, ZMAFL, ZCHEM, ZTIME_BU ! CPU times +REAL(kind=MNHTIME), DIMENSION(2) :: ZSTART, ZINIT, ZWRIT, ZBALL, ZPHYS, ZSURF, ZWRITS, ZTRAJ ! storing variables INTEGER(KIND=LFIINT) :: INPRAR ! number of articles predicted in the LFIFM file LOGICAL :: GCLOSE_OUT = .FALSE. ! conditional closure of the OUTPUT FM-file INTEGER :: ISTEPBAL ! loop indice for balloons and aircraft @@ -676,18 +677,18 @@ END IF !* call to physics monitor ! GCLOSE_OUT=.TRUE. -ZRAD=0. -ZSHADOWS=0. -ZDCONV=0. -ZGROUND=0. -ZTRACER=0. -ZTURB=0. -ZDRAG=0. -ZMAFL=0. -ZCHEM=0. -XTIME_LES=0. -XTIME_LES_BU_PROCESS=0. -XTIME_BU_PROCESS=0. +ZRAD = 0.0_MNHTIME +ZSHADOWS = 0.0_MNHTIME +ZDCONV = 0.0_MNHTIME +ZGROUND = 0.0_MNHTIME +ZTRACER = 0.0_MNHTIME +ZTURB = 0.0_MNHTIME +ZDRAG = 0.0_MNHTIME +ZMAFL = 0.0_MNHTIME +ZCHEM = 0.0_MNHTIME +XTIME_LES = 0.0_MNHTIME +XTIME_LES_BU_PROCESS = 0.0_MNHTIME +XTIME_BU_PROCESS = 0.0_MNHTIME CALL PHYS_PARAM_n(1,TOUTDATAFILE,GCLOSE_OUT, & ZRAD,ZSHADOWS,ZDCONV,ZGROUND,ZMAFL,ZDRAG, & ZTURB,ZTRACER, ZTIME_BU,ZWETDEPAER,GMASKkids,GCLOUD_ONLY) diff --git a/src/MNH/diagnos_les_mf.f90 b/src/MNH/diagnos_les_mf.f90 index 2f2cecafc..31fa13da7 100644 --- a/src/MNH/diagnos_les_mf.f90 +++ b/src/MNH/diagnos_les_mf.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2009-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ########################### MODULE MODI_DIAGNOS_LES_MF ! ########################### @@ -20,10 +21,10 @@ INTERFACE ! !* 1.1 Declaration of Arguments ! -! +use modd_precision, only: MNHTIME ! INTEGER, INTENT(IN) :: KIU, KJU, KKU ! 3D grid size -REAL*8,DIMENSION(2), INTENT(OUT) :: PTIME_LES +REAL(kind=MNHTIME), DIMENSION(2), INTENT(OUT) :: PTIME_LES REAL, DIMENSION(:,:), INTENT(IN) :: PTHL_UP,PRT_UP,PRV_UP,& PRC_UP,PRI_UP ! updraft properties REAL, DIMENSION(:,:), INTENT(IN) :: PU_UP, PV_UP @@ -74,20 +75,23 @@ END MODULE MODI_DIAGNOS_LES_MF !! AUTHOR !! ------ !! J.pergaud -!! V.Masson : Optimization 09/2010 +! +! Modifications: +! V. Masson 09/2010: Optimization +! P. Wautelet 28/03/2019: use MNHTIME for time measurement variables !! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! USE MODD_LES +use modd_precision, only: MNHTIME +! +USE MODE_MNH_TIMING ! USE MODI_LES_VER_INT USE MODI_LES_MEAN_ll USE MODI_SHUMAN -!JUANZ -USE MODE_MNH_TIMING -!JUANZ ! IMPLICIT NONE @@ -95,7 +99,7 @@ IMPLICIT NONE ! ! INTEGER, INTENT(IN) :: KIU, KJU, KKU ! 3D grid size -REAL*8,DIMENSION(2), INTENT(OUT) :: PTIME_LES +REAL(kind=MNHTIME), DIMENSION(2), INTENT(OUT) :: PTIME_LES REAL, DIMENSION(:,:), INTENT(IN) :: PTHL_UP,PRT_UP,PRV_UP,& PRC_UP,PRI_UP ! updraft properties REAL, DIMENSION(:,:), INTENT(IN) :: PU_UP, PV_UP @@ -119,7 +123,7 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTHLUP_MF_LES,ZRTUP_MF_LES, & ZWUP_MF_LES,ZFRACUP_MF_LES, & ZTHVUP_MF_LES,ZRVUP_MF_LES, & ZRIUP_MF_LES -REAL*8,DIMENSION(2) :: ZTIME1, ZTIME2 +REAL(kind=MNHTIME), DIMENSION(2) :: ZTIME1, ZTIME2 !------------------------------------------------------------------------ ! diff --git a/src/MNH/flat_invz.f90 b/src/MNH/flat_invz.f90 index e253264a9..b7b38a846 100644 --- a/src/MNH/flat_invz.f90 +++ b/src/MNH/flat_invz.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ $Date$ -!----------------------------------------------------------------- ! #################### MODULE MODI_FLAT_INVZ ! #################### @@ -130,13 +126,15 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & !! points under the ground and out of the domain !! Modification Lugato, Guivarch (June 1998) Parallelisation !! Escobar, Stein (July 2000) optimisation +! P. Wautelet 28/03/2019: use MNHTIME for time measurement variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! - USE MODD_PARAMETERS USE MODD_CONF + USE MODD_PARAMETERS + use modd_precision, only: MNHTIME ! USE MODE_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll @@ -258,7 +256,7 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZBAND_YT ! array in Y slices distribution transpose REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZBAND_YRT ! array in Y slices distribution transpose ! - REAL*8,DIMENSION(2) :: T0,T1 + REAL(kind=MNHTIME), DIMENSION(2) :: ZT0,ZT1 !JUAN Z_SPLITTING ! ! @@ -481,13 +479,13 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & !!$ print*,"IP=",IP," SIZE(ZBAND_SXP1_YP2_Z)=",SIZE(ZBAND_SXP1_YP2_Z,1),SIZE(ZBAND_SXP1_YP2_Z,2) ZBAND_SXP1_YP2_Z = ZY_B (IIBI:IIEI,IJBI:IJEI,:) ZBAND_SX_YP2_ZP1 = 0.0 - CALL SECOND_MNH2(T0) + CALL SECOND_MNH2(ZT0) CALL REMAP_SXP1_YP2_Z_SX_YP2_ZP1_ll(ZBAND_SXP1_YP2_Z,ZBAND_SX_YP2_ZP1,IINFO_ll) !CALL REMAP_B_SX_YP2_ZP1_ll(ZBAND_B,ZBAND_SX_YP2_ZP1,IINFO_ll) !ZWORK_SX_YP2_ZP1 = ZWORK_SX_YP2_ZP1 - ZBAND_SX_YP2_ZP1 - CALL SECOND_MNH2(T1) - TIMEZ%T_MAP_B_SX_YP2_ZP1 = TIMEZ%T_MAP_B_SX_YP2_ZP1 + T1 - T0 + CALL SECOND_MNH2(ZT1) + TIMEZ%T_MAP_B_SX_YP2_ZP1 = TIMEZ%T_MAP_B_SX_YP2_ZP1 + ZT1 - ZT0 END IF ! NZ_SPLITTING ! !JUAN Z_SPLITTING @@ -527,10 +525,10 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & IIMAX,ILOT_SX_YP2_ZP1,-1 ) END IF ZBAND_SXP2_Y_ZP1=0.0 - CALL SECOND_MNH2(T0) + CALL SECOND_MNH2(ZT0) CALL REMAP_SX_YP2_ZP1_SXP2_Y_ZP1_ll(ZBAND_SX_YP2_ZP1,ZBAND_SXP2_Y_ZP1,IINFO_ll) - CALL SECOND_MNH2(T1) - TIMEZ%T_MAP_SX_YP2_ZP1_SXP2_Y_ZP1 = TIMEZ%T_MAP_SX_YP2_ZP1_SXP2_Y_ZP1 + T1 - T0 + CALL SECOND_MNH2(ZT1) + TIMEZ%T_MAP_SX_YP2_ZP1_SXP2_Y_ZP1 = TIMEZ%T_MAP_SX_YP2_ZP1_SXP2_Y_ZP1 + ZT1 - ZT0 END IF ! NZ_SPLITTING ! !JUAN Z_SPLITTING @@ -612,10 +610,10 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & !!$ IF (( IAND(NZ_SPLITTING,2) > 0 ) .AND. ( IAND(NZ_SPLITTING,16) > 0 ) ) THEN !!$ CALL FAST_TRANSPOSE(ZBAND_SXP2_Y_ZP1T,ZBAND_SXP2_Y_ZP1,IJ_SXP2_Y_ZP1+2,II_SXP2_Y_ZP1,IK_SXP2_Y_ZP1) !!$ ZBAND_B = 0.0 -!!$ CALL SECOND_MNH2(T0) +!!$ CALL SECOND_MNH2(ZT0) !!$ CALL REMAP_SXP2_Y_ZP1_B_ll(ZBAND_SXP2_Y_ZP1,ZBAND_B,IINFO_ll) -!!$ CALL SECOND_MNH2(T1) -!!$ TIMEZ.T_MAP_SXP2_Y_ZP1_B = TIMEZ.T_MAP_SXP2_Y_ZP1_B + T1 - T0 +!!$ CALL SECOND_MNH2(ZT1) +!!$ TIMEZ.T_MAP_SXP2_Y_ZP1_B = TIMEZ.T_MAP_SXP2_Y_ZP1_B + ZT1 - ZT0 !!$ ! !!$ ! singular matrix case : the last term is computed by setting the !!$ ! average of the pressure field equal to zero. @@ -646,10 +644,10 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & IF ( ( IAND(NZ_SPLITTING,2) > 0 ) .AND. ( IAND(NZ_SPLITTING,8) > 0 )) THEN CALL FAST_TRANSPOSE(ZBAND_SXP2_Y_ZP1T,ZBAND_SXP2_Y_ZP1,IJ_SXP2_Y_ZP1+2,II_SXP2_Y_ZP1,IK_SXP2_Y_ZP1) ZBAND_SXP2_YP1_Z = 0.0 - CALL SECOND_MNH2(T0) + CALL SECOND_MNH2(ZT0) CALL REMAP_SXP2_Y_ZP1_SXP2_YP1_Z_ll(ZBAND_SXP2_Y_ZP1,ZBAND_SXP2_YP1_Z,IINFO_ll) - CALL SECOND_MNH2(T1) - TIMEZ%T_MAP_SXP2_Y_ZP1_SXP2_YP1_Z = TIMEZ%T_MAP_SXP2_Y_ZP1_SXP2_YP1_Z + T1 - T0 + CALL SECOND_MNH2(ZT1) + TIMEZ%T_MAP_SXP2_Y_ZP1_SXP2_YP1_Z = TIMEZ%T_MAP_SXP2_Y_ZP1_SXP2_YP1_Z + ZT1 - ZT0 ! ! singular matrix case : the last term is computed by setting the ! average of the pressure field equal to zero. @@ -718,19 +716,19 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & !!$ IF ( ( IAND(NZ_SPLITTING,2) > 0 ) .AND.( IAND(NZ_SPLITTING,16) > 0 ) ) THEN !!$ ! -!!$ CALL SECOND_MNH2(T0) +!!$ CALL SECOND_MNH2(ZT0) !!$ CALL REMAP_B_SXP2_Y_ZP1_ll(ZBAND_BR,ZBAND_SXP2_Y_ZP1R,IINFO_ll) -!!$ CALL SECOND_MNH2(T1) -!!$ TIMEZ.T_MAP_B_SXP2_Y_ZP1 = TIMEZ.T_MAP_B_SXP2_Y_ZP1 + T1 - T0 +!!$ CALL SECOND_MNH2(ZT1) +!!$ TIMEZ.T_MAP_B_SXP2_Y_ZP1 = TIMEZ.T_MAP_B_SXP2_Y_ZP1 + ZT1 - ZT0 !!$ ENDIF ! JUAN P1/P2 SPLITTING IF ( ( IAND(NZ_SPLITTING,2) > 0 ) .AND. ( IAND(NZ_SPLITTING,8) > 0 ) ) THEN ! - CALL SECOND_MNH2(T0) + CALL SECOND_MNH2(ZT0) CALL REMAP_SXP2_YP1_Z_SXP2_Y_ZP1_ll(ZBAND_SXP2_YP1_ZR,ZBAND_SXP2_Y_ZP1R,IINFO_ll) !TEST CALL REMAP_SXP2_YP1_Z_SXP2_Y_ZP1_ll(ZBAND_SXP2_YP1_ZR,ZBAND_SXP2_Y_ZP1RBIS,IINFO_ll) - CALL SECOND_MNH2(T1) - TIMEZ%T_MAP_SXP2_YP1_Z_SXP2_Y_ZP1 = TIMEZ%T_MAP_SXP2_YP1_Z_SXP2_Y_ZP1 + T1 - T0 + CALL SECOND_MNH2(ZT1) + TIMEZ%T_MAP_SXP2_YP1_Z_SXP2_Y_ZP1 = TIMEZ%T_MAP_SXP2_YP1_Z_SXP2_Y_ZP1 + ZT1 - ZT0 ENDIF IF ( IAND(NZ_SPLITTING,2) > 0 ) THEN CALL FAST_TRANSPOSE(ZBAND_SXP2_Y_ZP1R,ZBAND_SXP2_Y_ZP1RT,II_SXP2_Y_ZP1,IJ_SXP2_Y_ZP1+2,IK_SXP2_Y_ZP1) @@ -754,10 +752,10 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & ! Transposition Y-> X ! ZBAND_SX_YP2_ZP1=0 - CALL SECOND_MNH2(T0) + CALL SECOND_MNH2(ZT0) CALL REMAP_SXP2_Y_ZP1_SX_YP2_ZP1_ll(ZBAND_SXP2_Y_ZP1R,ZBAND_SX_YP2_ZP1,IINFO_ll) - CALL SECOND_MNH2(T1) - TIMEZ%T_MAP_SXP2_Y_ZP1_SX_YP2_ZP1 = TIMEZ%T_MAP_SXP2_Y_ZP1_SX_YP2_ZP1 + T1 - T0 + CALL SECOND_MNH2(ZT1) + TIMEZ%T_MAP_SXP2_Y_ZP1_SX_YP2_ZP1 = TIMEZ%T_MAP_SXP2_Y_ZP1_SX_YP2_ZP1 + ZT1 - ZT0 ! IF (HLBCX(1) == 'CYCL') THEN ! re-set (N+1) values with (2) values ( stored here to avoid to lost them ) @@ -787,11 +785,11 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & !JUAN Z_SPLITTING ! IF ( IAND(NZ_SPLITTING,2) > 0 ) THEN - CALL SECOND_MNH2(T0) + CALL SECOND_MNH2(ZT0) !CALL REMAP_SX_YP2_ZP1_B_ll(ZBAND_SX_YP2_ZP1,ZBAND_B,IINFO_ll) CALL REMAP_SX_YP2_ZP1_SXP1_YP2_Z_ll(ZBAND_SX_YP2_ZP1,ZBAND_SXP1_YP2_Z,IINFO_ll) - CALL SECOND_MNH2(T1) - TIMEZ%T_MAP_SX_YP2_ZP1_B = TIMEZ%T_MAP_SX_YP2_ZP1_B + T1 - T0 + CALL SECOND_MNH2(ZT1) + TIMEZ%T_MAP_SX_YP2_ZP1_B = TIMEZ%T_MAP_SX_YP2_ZP1_B + ZT1 - ZT0 IF ( IAND(NZ_SPLITTING,1) > 0 ) THEN ! for test save 2D value CALL GET_HALO(ZBAND_B) diff --git a/src/MNH/modd_precision.f90 b/src/MNH/modd_precision.f90 index 421eec5f6..e302e46b9 100644 --- a/src/MNH/modd_precision.f90 +++ b/src/MNH/modd_precision.f90 @@ -7,6 +7,7 @@ ! P. Wautelet 08/03/2019 ! Modifications: ! P. Wautelet 22/03/2019: add MNHINT/REAL32/64_MPI, MNH2REAL32/64_MPI + more public parameters +! P. Wautelet 27/03/2019: add MNHTIME and MNHTIME_MPI !----------------------------------------------------------------- module modd_precision @@ -28,6 +29,7 @@ public :: MNH2REAL32_MPI, MNH2REAL64_MPI public :: MNHINT, MNHREAL public :: MNHINT_MPI, MNHREAL_MPI, MNH2REAL_MPI +public :: MNHTIME, MNHTIME_MPI public :: LFIINT @@ -80,6 +82,9 @@ integer, parameter :: MNHREAL_MPI = MPI_REAL16 #error "Invalid MNH_REAL" #endif +integer, parameter :: MNHTIME = MNHREAL64 +integer, parameter :: MNHTIME_MPI = MNHREAL64_MPI + ! Kinds for LFI #if ( LFI_INT == 4 ) diff --git a/src/MNH/modd_sub_modeln.f90 b/src/MNH/modd_sub_modeln.f90 index 48bfede31..b6e364b22 100644 --- a/src/MNH/modd_sub_modeln.f90 +++ b/src/MNH/modd_sub_modeln.f90 @@ -4,17 +4,19 @@ !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! J. Escobar : 18/06/2018 , bug compile R*4 => real*8 pointer XT_VISC +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! J. Escobar 18/06/2018: bug compile R*4 => real*8 pointer XT_VISC ! P. Wautelet 08/02/2019: add missing NULL association for pointers +! P. Wautelet 28/03/2019: use MNHTIME for time measurement variables !----------------------------------------------------------------- ! ################# MODULE MODD_SUB_MODEL_n ! ################# ! -USE MODD_ARGSLIST_ll, ONLY : LIST_ll, HALO2LIST_ll -! -USE MODD_PARAMETERS, ONLY: JPMODELMAX +USE MODD_ARGSLIST_ll, ONLY: LIST_ll, HALO2LIST_ll +USE MODD_PARAMETERS, ONLY: JPMODELMAX +use modd_precision, only: MNHTIME + IMPLICIT NONE TYPE SUB_MODEL_t @@ -32,18 +34,18 @@ TYPE SUB_MODEL_t TYPE(HALO2LIST_ll), POINTER :: TZHALO2MT_ll => NULL() TYPE(HALO2LIST_ll), POINTER :: TZHALO2SC_ll => NULL() INTEGER :: IBAK, IOUT ! number of the backup / output - REAL*8,DIMENSION(2) :: XT_START - REAL*8,DIMENSION(2) :: XT_STORE,XT_BOUND,XT_GUESS - REAL*8,DIMENSION(2) :: XT_ADV,XT_SOURCES,XT_DRAG - REAL*8,DIMENSION(2) :: XT_ADVUVW,XT_GRAV,XT_VISC - REAL*8,DIMENSION(2) :: XT_DIFF,XT_RELAX,XT_PARAM,XT_SPECTRA - REAL*8,DIMENSION(2) :: XT_HALO,XT_RAD_BOUND,XT_PRESS - REAL*8,DIMENSION(2) :: XT_CLOUD,XT_STEP_SWA,XT_STEP_MISC - REAL*8,DIMENSION(2) :: XT_ELEC - REAL*8,DIMENSION(2) :: XT_COUPL,XT_1WAY,XT_STEP_BUD - REAL*8,DIMENSION(2) :: XT_RAD,XT_DCONV,XT_GROUND,XT_TRACER,XT_MAFL - REAL*8,DIMENSION(2) :: XT_TURB,XT_2WAY,XT_SHADOWS - REAL*8,DIMENSION(2) :: XT_FORCING,XT_NUDGING,XT_CHEM + REAL(kind=MNHTIME), DIMENSION(2) :: XT_START + REAL(kind=MNHTIME), DIMENSION(2) :: XT_STORE, XT_BOUND, XT_GUESS + REAL(kind=MNHTIME), DIMENSION(2) :: XT_ADV, XT_SOURCES, XT_DRAG + REAL(kind=MNHTIME), DIMENSION(2) :: XT_ADVUVW, XT_GRAV, XT_VISC + REAL(kind=MNHTIME), DIMENSION(2) :: XT_DIFF, XT_RELAX, XT_PARAM, XT_SPECTRA + REAL(kind=MNHTIME), DIMENSION(2) :: XT_HALO, XT_RAD_BOUND, XT_PRESS + REAL(kind=MNHTIME), DIMENSION(2) :: XT_CLOUD, XT_STEP_SWA, XT_STEP_MISC + REAL(kind=MNHTIME), DIMENSION(2) :: XT_ELEC + REAL(kind=MNHTIME), DIMENSION(2) :: XT_COUPL, XT_1WAY, XT_STEP_BUD + REAL(kind=MNHTIME), DIMENSION(2) :: XT_RAD, XT_DCONV, XT_GROUND, XT_TRACER, XT_MAFL + REAL(kind=MNHTIME), DIMENSION(2) :: XT_TURB, XT_2WAY, XT_SHADOWS + REAL(kind=MNHTIME), DIMENSION(2) :: XT_FORCING, XT_NUDGING, XT_CHEM REAL, DIMENSION(:,:,:), POINTER :: ZWT_ACT_NUC=>NULL() ! Vertical motion used for ACTivation/NUCleation @@ -60,19 +62,19 @@ TYPE(HALO2LIST_ll), POINTER :: TZHALO2M_ll=>NULL(), TZLSHALO2_ll=>NULL() TYPE(HALO2LIST_ll), POINTER :: TZHALO2T_ll=>NULL(), TZHALO2MT_ll=>NULL(), TZHALO2SC_ll=>NULL() INTEGER, POINTER :: IBAK=>NULL() INTEGER, POINTER :: IOUT=>NULL() -REAL*8,DIMENSION(:), POINTER :: XT_START=>NULL() -REAL*8,DIMENSION(:), POINTER :: XT_STORE=>NULL(),XT_BOUND=>NULL(),XT_GUESS=>NULL() -REAL*8,DIMENSION(:), POINTER :: XT_ADV=>NULL(),XT_SOURCES=>NULL(),XT_DRAG=>NULL() -REAL*8,DIMENSION(:), POINTER :: XT_ADVUVW=>NULL(),XT_GRAV=>NULL() -REAL*8,DIMENSION(:), POINTER :: XT_DIFF=>NULL(),XT_RELAX=>NULL(),XT_PARAM=>NULL(),XT_SPECTRA=>NULL() -REAL*8,DIMENSION(:), POINTER :: XT_HALO=>NULL(),XT_RAD_BOUND=>NULL(),XT_PRESS=>NULL() -REAL*8,DIMENSION(:), POINTER :: XT_VISC=>NULL() -REAL*8,DIMENSION(:), POINTER :: XT_CLOUD=>NULL(),XT_STEP_SWA=>NULL(),XT_STEP_MISC=>NULL() -REAL*8,DIMENSION(:), POINTER :: XT_ELEC=>NULL(),XT_SHADOWS=>NULL() -REAL*8,DIMENSION(:), POINTER :: XT_COUPL=>NULL(),XT_1WAY=>NULL(),XT_STEP_BUD=>NULL() -REAL*8,DIMENSION(:), POINTER :: XT_RAD=>NULL(),XT_DCONV=>NULL(),XT_GROUND=>NULL(),XT_MAFL=>NULL() -REAL*8,DIMENSION(:), POINTER :: XT_TURB=>NULL(),XT_2WAY=>NULL(),XT_TRACER=>NULL() -REAL*8,DIMENSION(:), POINTER :: XT_FORCING=>NULL(),XT_NUDGING=>NULL(),XT_CHEM=>NULL() +REAL(kind=MNHTIME), DIMENSION(:), POINTER :: XT_START=>NULL() +REAL(kind=MNHTIME), DIMENSION(:), POINTER :: XT_STORE=>NULL(), XT_BOUND=>NULL(), XT_GUESS=>NULL() +REAL(kind=MNHTIME), DIMENSION(:), POINTER :: XT_ADV=>NULL(), XT_SOURCES=>NULL(), XT_DRAG=>NULL() +REAL(kind=MNHTIME), DIMENSION(:), POINTER :: XT_ADVUVW=>NULL(), XT_GRAV=>NULL() +REAL(kind=MNHTIME), DIMENSION(:), POINTER :: XT_DIFF=>NULL(), XT_RELAX=>NULL(), XT_PARAM=>NULL(), XT_SPECTRA=>NULL() +REAL(kind=MNHTIME), DIMENSION(:), POINTER :: XT_HALO=>NULL(), XT_RAD_BOUND=>NULL(), XT_PRESS=>NULL() +REAL(kind=MNHTIME), DIMENSION(:), POINTER :: XT_VISC=>NULL() +REAL(kind=MNHTIME), DIMENSION(:), POINTER :: XT_CLOUD=>NULL(), XT_STEP_SWA=>NULL(), XT_STEP_MISC=>NULL() +REAL(kind=MNHTIME), DIMENSION(:), POINTER :: XT_ELEC=>NULL(), XT_SHADOWS=>NULL() +REAL(kind=MNHTIME), DIMENSION(:), POINTER :: XT_COUPL=>NULL(), XT_1WAY=>NULL(), XT_STEP_BUD=>NULL() +REAL(kind=MNHTIME), DIMENSION(:), POINTER :: XT_RAD=>NULL(), XT_DCONV=>NULL(), XT_GROUND=>NULL(), XT_MAFL=>NULL() +REAL(kind=MNHTIME), DIMENSION(:), POINTER :: XT_TURB=>NULL(), XT_2WAY=>NULL(), XT_TRACER=>NULL() +REAL(kind=MNHTIME), DIMENSION(:), POINTER :: XT_FORCING=>NULL(), XT_NUDGING=>NULL(), XT_CHEM=>NULL() REAL, DIMENSION(:,:,:), POINTER :: ZWT_ACT_NUC=>NULL() LOGICAL, DIMENSION(:,:), POINTER :: GMASKkids=>NULL() LOGICAL, POINTER :: GCLOSE_OUT=>NULL() diff --git a/src/MNH/modd_timez.f90 b/src/MNH/modd_timez.f90 index 9c9235ed4..3c4499863 100644 --- a/src/MNH/modd_timez.f90 +++ b/src/MNH/modd_timez.f90 @@ -5,51 +5,54 @@ !----------------------------------------------------------------- ! Modifications ! P. Wautelet 08/02/2019: add missing NULL association for pointers +! P. Wautelet 28/03/2019: use MNHTIME for time measurement variables +!----------------------------------------------------------------- MODULE MODD_TIMEZ USE MODD_PARAMETERS, ONLY: JPMODELMAX + use modd_precision, only: MNHTIME TYPE SUB_TIMEZ_T - REAL*8,DIMENSION(2) :: T_MAP_B_SX_YP2_ZP1 = 0.0 - REAL*8,DIMENSION(2) :: T_MAP_SX_YP2_ZP1_SXP2_Y_ZP1 = 0.0 - REAL*8,DIMENSION(2) :: T_MAP_SXP2_Y_ZP1_B = 0.0 - REAL*8,DIMENSION(2) :: T_MAP_B_SXP2_Y_ZP1 = 0.0 - REAL*8,DIMENSION(2) :: T_MAP_SXP2_Y_ZP1_SX_YP2_ZP1 = 0.0 - REAL*8,DIMENSION(2) :: T_MAP_SX_YP2_ZP1_B = 0.0 - REAL*8,DIMENSION(2) :: T_MAP_SXP2_Y_ZP1_SXP2_YP1_Z = 0.0 - REAL*8,DIMENSION(2) :: T_MAP_SXP2_YP1_Z_SXP2_Y_ZP1 = 0.0 - - REAL*8,DIMENSION(2) :: T_MAP_SXP1_YP2_Z_SX_YP2_ZP1 = 0.0 - REAL*8,DIMENSION(2) :: T_MAP_SXP2_Y_ZP1_SXP1_YP2_Z = 0.0 - REAL*8,DIMENSION(2) :: T_MAP_SXP1_YP2_Z_SXP2_Y_ZP1 = 0.0 - REAL*8,DIMENSION(2) :: T_MAP_SX_YP2_ZP1_SXP1_YP2_Z = 0.0 - - REAL*8,DIMENSION(2) :: T_WRIT3D_RECV = 0.0 - REAL*8,DIMENSION(2) :: T_WRIT3D_SEND = 0.0 - REAL*8,DIMENSION(2) :: T_WRIT3D_WRIT = 0.0 - REAL*8,DIMENSION(2) :: T_WRIT3D_WAIT = 0.0 - REAL*8,DIMENSION(2) :: T_WRIT3D_ALL = 0.0 - - REAL*8,DIMENSION(2) :: T_WRIT2D_GATH = 0.0 - REAL*8,DIMENSION(2) :: T_WRIT2D_WRIT = 0.0 - REAL*8,DIMENSION(2) :: T_WRIT2D_ALL = 0.0 - - REAL*8,DIMENSION(2) :: T_READ3D_RECV = 0.0 - REAL*8,DIMENSION(2) :: T_READ3D_SEND = 0.0 - REAL*8,DIMENSION(2) :: T_READ3D_READ = 0.0 - REAL*8,DIMENSION(2) :: T_READ3D_WAIT = 0.0 - REAL*8,DIMENSION(2) :: T_READ3D_ALL = 0.0 - - REAL*8,DIMENSION(2) :: T_READ2D_SCAT = 0.0 - REAL*8,DIMENSION(2) :: T_READ2D_READ = 0.0 - REAL*8,DIMENSION(2) :: T_READ2D_ALL = 0.0 - - REAL*8,DIMENSION(2) :: T_READLB_RECV = 0.0 - REAL*8,DIMENSION(2) :: T_READLB_SEND = 0.0 - REAL*8,DIMENSION(2) :: T_READLB_READ = 0.0 - REAL*8,DIMENSION(2) :: T_READLB_WAIT = 0.0 - REAL*8,DIMENSION(2) :: T_READLB_ALL = 0.0 - + REAL(kind=MNHTIME), DIMENSION(2) :: T_MAP_B_SX_YP2_ZP1 = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_MAP_SX_YP2_ZP1_SXP2_Y_ZP1 = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_MAP_SXP2_Y_ZP1_B = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_MAP_B_SXP2_Y_ZP1 = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_MAP_SXP2_Y_ZP1_SX_YP2_ZP1 = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_MAP_SX_YP2_ZP1_B = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_MAP_SXP2_Y_ZP1_SXP2_YP1_Z = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_MAP_SXP2_YP1_Z_SXP2_Y_ZP1 = 0.0_MNHTIME + + REAL(kind=MNHTIME), DIMENSION(2) :: T_MAP_SXP1_YP2_Z_SX_YP2_ZP1 = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_MAP_SXP2_Y_ZP1_SXP1_YP2_Z = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_MAP_SXP1_YP2_Z_SXP2_Y_ZP1 = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_MAP_SX_YP2_ZP1_SXP1_YP2_Z = 0.0_MNHTIME + + REAL(kind=MNHTIME), DIMENSION(2) :: T_WRIT3D_RECV = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_WRIT3D_SEND = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_WRIT3D_WRIT = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_WRIT3D_WAIT = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_WRIT3D_ALL = 0.0_MNHTIME + + REAL(kind=MNHTIME), DIMENSION(2) :: T_WRIT2D_GATH = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_WRIT2D_WRIT = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_WRIT2D_ALL = 0.0_MNHTIME + + REAL(kind=MNHTIME), DIMENSION(2) :: T_READ3D_RECV = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_READ3D_SEND = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_READ3D_READ = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_READ3D_WAIT = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_READ3D_ALL = 0.0_MNHTIME + + REAL(kind=MNHTIME), DIMENSION(2) :: T_READ2D_SCAT = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_READ2D_READ = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_READ2D_ALL = 0.0_MNHTIME + + REAL(kind=MNHTIME), DIMENSION(2) :: T_READLB_RECV = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_READLB_SEND = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_READLB_READ = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_READLB_WAIT = 0.0_MNHTIME + REAL(kind=MNHTIME), DIMENSION(2) :: T_READLB_ALL = 0.0_MNHTIME + END TYPE SUB_TIMEZ_T TYPE(SUB_TIMEZ_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: SUB_TIMEZN diff --git a/src/MNH/mode_mnh_timing.f90 b/src/MNH/mode_mnh_timing.f90 index 9d0c5b0cf..8c1afe171 100644 --- a/src/MNH/mode_mnh_timing.f90 +++ b/src/MNH/mode_mnh_timing.f90 @@ -11,25 +11,33 @@ MODULE MODE_MNH_TIMING ! J. Escobar 12/02/2013: triabulle too slow on large BG partition, inhib it by a early return in the code ! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN ! P. Wautelet 22/03/2019: use MNHREAL64 and MNHREAL64_MPI + typo corrections +! P. Wautelet 27/03/2019: use MNHTIME and MNHTIME_MPI instead of MNHREAL64 and MNHREAL64_MPI ! -INTEGER :: NLUOUT_TIMING +implicit none + +private + +public :: SECOND_MNH2, SET_ILUOUT_TIMING, TIME_HEADER_ll, TIME_STAT_ll +public :: TIMING_SEPARATOR, TIMING_LEGEND + +INTEGER :: NLUOUT_TIMING CONTAINS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +subroutine second_mnh2(xt) -SUBROUTINE SECOND_MNH2(XT) -! USE modd_mpif -! -REAL*8,DIMENSION(2) :: XT -! -CALL CPU_TIME(XT(1)) -XT(2) = MPI_Wtime() -END SUBROUTINE SECOND_MNH2 +use modd_precision, only: MNHTIME + +real(kind=MNHTIME),dimension(2) :: xt + +call cpu_time( xt(1) ) +xt(2) = MPI_WTIME() +end subroutine second_mnh2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -86,18 +94,18 @@ END SUBROUTINE SECOND_MNH2 !* 0. DECLARATIONS ! USE MODD_MPIF - use modd_precision, only: MNHREAL64, MNHREAL64_MPI + use modd_precision, only: MNHTIME, MNHTIME_MPI USE MODD_VAR_ll, ONLY: IP, NMNH_COMM_WORLD, NPROC ! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : ! - REAL(kind=MNHREAL64), DIMENSION(:), INTENT(IN) :: PRES ! (1)=CPU & (2)=ELAPSED Processes Timing - REAL(kind=MNHREAL64), DIMENSION(:), INTENT(INOUT) :: PSUM ! (1)=SUM(CPU) & (2)=SUM(ELAPSED) Timing - CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HPRINT - CHARACTER , OPTIONAL, INTENT(IN) :: HSEP - CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HFULL + REAL(kind=MNHTIME), DIMENSION(:), INTENT(IN) :: PRES ! (1)=CPU & (2)=ELAPSED Processes Timing + REAL(kind=MNHTIME), DIMENSION(:), INTENT(INOUT) :: PSUM ! (1)=SUM(CPU) & (2)=SUM(ELAPSED) Timing + CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HPRINT + CHARACTER , OPTIONAL, INTENT(IN) :: HSEP + CHARACTER(len=*), OPTIONAL, INTENT(IN) :: HFULL ! !* 0.2 Declarations of local variables : ! @@ -108,8 +116,8 @@ END SUBROUTINE SECOND_MNH2 CHARACTER(len=30) :: FILE = "" INTEGER :: IC - REAL(kind=MNHREAL64), DIMENSION(2,NSTAT) :: ZSTAT ! (1)=Sum(proc),(2)=Sum/Nproc,(3)=Min(proc),(4)=Max(proc),(5)=Percent(1) - REAL(kind=MNHREAL64), DIMENSION(2,NPROC) :: ZSTAT_ALL + REAL(kind=MNHTIME), DIMENSION(2,NSTAT) :: ZSTAT ! (1)=Sum(proc),(2)=Sum/Nproc,(3)=Min(proc),(4)=Max(proc),(5)=Percent(1) + REAL(kind=MNHTIME), DIMENSION(2,NPROC) :: ZSTAT_ALL INTEGER, DIMENSION(NPROC) :: IND INTEGER :: ILU ! @@ -119,15 +127,15 @@ END SUBROUTINE SECOND_MNH2 ! ------------------------------ INFO = -1 ! 1.1 Sum(Proc) - CALL MPI_ALLREDUCE(PRES, ZSTAT(:,1), 2, MNHREAL64_MPI, & + CALL MPI_ALLREDUCE(PRES, ZSTAT(:,1), 2, MNHTIME_MPI, & MPI_SUM, NMNH_COMM_WORLD, INFO) ! 1.2 Sum/Proc ZSTAT(:,2) = ZSTAT(:,1 ) / NPROC ! 1.3 Min(Proc) - CALL MPI_ALLREDUCE(PRES, ZSTAT(:,3), 2, MNHREAL64_MPI, & + CALL MPI_ALLREDUCE(PRES, ZSTAT(:,3), 2, MNHTIME_MPI, & MPI_MIN, NMNH_COMM_WORLD, INFO) ! 1.4 Max(Proc) - CALL MPI_ALLREDUCE(PRES, ZSTAT(:,4), 2, MNHREAL64_MPI, & + CALL MPI_ALLREDUCE(PRES, ZSTAT(:,4), 2, MNHTIME_MPI, & MPI_MAX, NMNH_COMM_WORLD, INFO) @@ -154,7 +162,7 @@ INFO = -1 ! gather all data !CALL TIMING_SEPARATOR(HSEP) IROOT = 0 - CALL MPI_GATHER(PRES(:),2,MNHREAL64_MPI,ZSTAT_ALL(:,1),2,MNHREAL64_MPI,& + CALL MPI_GATHER(PRES(:),2,MNHTIME_MPI,ZSTAT_ALL(:,1),2,MNHTIME_MPI,& IROOT,NMNH_COMM_WORLD, INFO) IF (IP.EQ.1) THEN FILE = trim(adjustl(HPRINT)) @@ -187,12 +195,12 @@ INFO = -1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! subroutine triabulle(vec,ind) -use modd_precision, only: MNHREAL64 +use modd_precision, only: MNHTIME implicit none -real(kind=MNHREAL64), dimension(:), intent(inout) :: vec -integer, dimension(:), intent(out) :: ind +real(kind=MNHTIME), dimension(:), intent(inout) :: vec +integer, dimension(:), intent(out) :: ind logical :: a integer :: i diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index a903c134f..c8cb87d01 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -254,6 +254,7 @@ END MODULE MODI_MODEL_n !! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll ! to allow to disable writes (for bench purposes) !! 02/2019 C.Lac add rain fraction as an output field +! P. Wautelet 28/03/2019: use MNHTIME for time measurement variables !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -322,6 +323,7 @@ USE MODD_PARAM_MFSHALL_n USE MODD_PARAM_n USE MODD_PAST_FIELD_n USE MODD_PRECIP_n +use modd_precision, only: MNHTIME USE MODD_PROFILER_n USE MODD_RADIATIONS_n, ONLY: XTSRAD,XSCAFLASWD,XDIRFLASWD,XDIRSRFSWD, XAER, XDTHRAD USE MODD_RAIN_ICE_DESCR, ONLY: XRTMIN @@ -440,9 +442,8 @@ INTEGER :: IVERB ! LFI verbosity level LOGICAL :: GSTEADY_DMASS ! conditional call to mass computation ! ! for computing time analysis -REAL*8,DIMENSION(2) :: ZTIME,ZTIME1,ZTIME2,ZEND,ZTOT,ZALL,ZTOT_PT -! -REAL*8,DIMENSION(2) :: ZTIME_STEP,ZTIME_STEP_PTS +REAL(kind=MNHTIME), DIMENSION(2) :: ZTIME, ZTIME1, ZTIME2, ZEND, ZTOT, ZALL, ZTOT_PT +REAL(kind=MNHTIME), DIMENSION(2) :: ZTIME_STEP,ZTIME_STEP_PTS CHARACTER :: YMI INTEGER :: IPOINTS CHARACTER(len=16) :: YTCOUNT,YPOINTS @@ -707,45 +708,45 @@ IF (KTCOUNT == 1) THEN ! ! ! - XT_START = 0.0 - ! - XT_STORE = 0.0 - XT_BOUND = 0.0 - XT_GUESS = 0.0 - XT_FORCING = 0.0 - XT_NUDGING = 0.0 - XT_ADV = 0.0 - XT_ADVUVW = 0.0 - XT_GRAV = 0.0 - XT_SOURCES = 0.0 + XT_START = 0.0_MNHTIME + ! + XT_STORE = 0.0_MNHTIME + XT_BOUND = 0.0_MNHTIME + XT_GUESS = 0.0_MNHTIME + XT_FORCING = 0.0_MNHTIME + XT_NUDGING = 0.0_MNHTIME + XT_ADV = 0.0_MNHTIME + XT_ADVUVW = 0.0_MNHTIME + XT_GRAV = 0.0_MNHTIME + XT_SOURCES = 0.0_MNHTIME ! - XT_DIFF = 0.0 - XT_RELAX = 0.0 - XT_PARAM = 0.0 - XT_SPECTRA = 0.0 - XT_HALO = 0.0 - XT_VISC = 0.0 - XT_RAD_BOUND = 0.0 - XT_PRESS = 0.0 + XT_DIFF = 0.0_MNHTIME + XT_RELAX = 0.0_MNHTIME + XT_PARAM = 0.0_MNHTIME + XT_SPECTRA = 0.0_MNHTIME + XT_HALO = 0.0_MNHTIME + XT_VISC = 0.0_MNHTIME + XT_RAD_BOUND = 0.0_MNHTIME + XT_PRESS = 0.0_MNHTIME ! - XT_CLOUD = 0.0 - XT_STEP_SWA = 0.0 - XT_STEP_MISC = 0.0 - XT_COUPL = 0.0 - XT_1WAY = 0.0 - XT_STEP_BUD = 0.0 + XT_CLOUD = 0.0_MNHTIME + XT_STEP_SWA = 0.0_MNHTIME + XT_STEP_MISC = 0.0_MNHTIME + XT_COUPL = 0.0_MNHTIME + XT_1WAY = 0.0_MNHTIME + XT_STEP_BUD = 0.0_MNHTIME ! - XT_RAD = 0.0 - XT_DCONV = 0.0 - XT_GROUND = 0.0 - XT_TURB = 0.0 - XT_MAFL = 0.0 - XT_DRAG = 0.0 - XT_TRACER = 0.0 - XT_SHADOWS = 0.0 - XT_ELEC = 0.0 - XT_CHEM = 0.0 - XT_2WAY = 0.0 + XT_RAD = 0.0_MNHTIME + XT_DCONV = 0.0_MNHTIME + XT_GROUND = 0.0_MNHTIME + XT_TURB = 0.0_MNHTIME + XT_MAFL = 0.0_MNHTIME + XT_DRAG = 0.0_MNHTIME + XT_TRACER = 0.0_MNHTIME + XT_SHADOWS = 0.0_MNHTIME + XT_ELEC = 0.0_MNHTIME + XT_CHEM = 0.0_MNHTIME + XT_2WAY = 0.0_MNHTIME ! END IF ! diff --git a/src/MNH/phys_paramn.f90 b/src/MNH/phys_paramn.f90 index 106ec1623..e2d454fe7 100644 --- a/src/MNH/phys_paramn.f90 +++ b/src/MNH/phys_paramn.f90 @@ -1,9 +1,10 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######################## - MODULE MODI_PHYS_PARAM_n + MODULE MODI_PHYS_PARAM_n ! ######################## ! ! @@ -13,18 +14,17 @@ INTERFACE PRAD,PSHADOWS,PKAFR,PGROUND,PMAFL,PDRAG,PTURB,PTRACER, & PTIME_BU, PWETDEPAER, OMASKkids,OCLOUD_ONLY ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO_ll, ONLY: TFILEDATA +use modd_precision, only: MNHTIME ! INTEGER, INTENT(IN) :: KTCOUNT ! temporal iteration count TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Synchronous output file LOGICAL, INTENT(IN) :: OCLOSE_OUT! conditional closure of the ! OUTPUT FM-file -! advection schemes -REAL*8,DIMENSION(2), INTENT(INOUT) :: PRAD,PSHADOWS,PKAFR,PGROUND,PTURB,PMAFL,PDRAG,PTRACER ! to store CPU - ! time for computing time - -REAL*8,DIMENSION(2), INTENT(INOUT) :: PTIME_BU ! time used in budget&LES budgets - ! statistics +! advection schemes +REAL(kind=MNHTIME), DIMENSION(2), INTENT(INOUT) :: PRAD,PSHADOWS,PKAFR,PGROUND,PTURB,PMAFL,PDRAG,PTRACER ! to store CPU + ! time for computing time +REAL(kind=MNHTIME), DIMENSION(2), INTENT(INOUT) :: PTIME_BU ! time used in budget&LES budgets statistics REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PWETDEPAER LOGICAL, DIMENSION(:,:), INTENT(IN) :: OMASKkids ! kids domains mask LOGICAL, INTENT(OUT) :: OCLOUD_ONLY ! conditionnal radiation computations for @@ -230,8 +230,9 @@ END MODULE MODI_PHYS_PARAM_n !! C.Lac 10/2017 : ch_monitor and aer_monitor extracted from phys_param !! to be called directly by modeln as the last process !! 02/2018 Q.Libois ECRAD -!! 28/03/2018 P. Wautelet: replace TEMPORAL_DIST by DATETIME_DISTANCE -!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 28/03/2018: replace TEMPORAL_DIST by DATETIME_DISTANCE +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 28/03/2019: use MNHTIME for time measurement variables !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -293,6 +294,7 @@ USE MODD_PARAM_MFSHALL_n USE MODI_SHALLOW_MF_PACK USE MODD_CLOUD_MF_n USE MODD_ADV_n, ONLY : XRTKEMS +use modd_precision, only: MNHTIME ! USE MODI_SURF_RAD_MODIF USE MODI_GROUND_PARAM_n @@ -347,11 +349,10 @@ INTEGER, INTENT(IN) :: KTCOUNT ! temporal iteration count TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Synchronous output file LOGICAL, INTENT(IN) :: OCLOSE_OUT! conditional closure of the ! OUTPUT FM-file -! advection schemes -REAL*8,DIMENSION(2), INTENT(INOUT) :: PRAD,PSHADOWS,PKAFR,PGROUND,PTURB,PMAFL,PDRAG,PTRACER ! to store CPU - ! time for computing time - ! statistics -REAL*8,DIMENSION(2), INTENT(INOUT) :: PTIME_BU ! time used in budget&LES budgets +! advection schemes +REAL(kind=MNHTIME), DIMENSION(2), INTENT(INOUT) :: PRAD,PSHADOWS,PKAFR,PGROUND,PTURB,PMAFL,PDRAG,PTRACER ! to store CPU + ! time for computing time +REAL(kind=MNHTIME), DIMENSION(2), INTENT(INOUT) :: PTIME_BU ! time used in budget&LES budgets statistics REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PWETDEPAER LOGICAL, DIMENSION(:,:), INTENT(IN) :: OMASKkids ! kids domains mask LOGICAL, INTENT(OUT) :: OCLOUD_ONLY ! conditionnal radiation computations for @@ -403,8 +404,8 @@ REAL :: ZRAD_GLOB_ll ! 'real' global parallel mask of 'GRAD' INTEGER :: INFO_ll ! error report of parallel routines ! the only cloudy columns ! -REAL*8,DIMENSION(2) :: ZTIME1,ZTIME2,ZTIME3,ZTIME4 ! for computing time analysis -REAL*8,DIMENSION(2) :: ZTIME_LES_MF ! time spent in LES computation in shallow conv. +REAL(kind=MNHTIME), DIMENSION(2) :: ZTIME1, ZTIME2, ZTIME3, ZTIME4 ! for computing time analysis +REAL(kind=MNHTIME), DIMENSION(2) :: ZTIME_LES_MF ! time spent in LES computation in shallow conv. LOGICAL :: GDCONV ! conditionnal call for the deep convection ! computations REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZRC, ZRI, ZWT ! additional dummies @@ -454,12 +455,12 @@ IKB = 1 + JPVEXT IKE = IKU - JPVEXT CALL GET_INDICE_ll (IIB,IJB,IIE,IJE) ! -ZTIME1 = 0.0 -ZTIME2 = 0.0 -ZTIME3 = 0.0 -ZTIME4 = 0.0 -PTIME_BU = 0. -ZTIME_LES_MF = 0.0 +ZTIME1 = 0.0_MNHTIME +ZTIME2 = 0.0_MNHTIME +ZTIME3 = 0.0_MNHTIME +ZTIME4 = 0.0_MNHTIME +PTIME_BU = 0._MNHTIME +ZTIME_LES_MF = 0.0_MNHTIME PWETDEPAER(:,:,:,:) = 0. ! !* allocation of variables used in more than one parameterization diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index e1581455a..63ee062ea 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -310,7 +310,8 @@ !! 06/2016 (G.Delautier) phasage surfex 8 !! P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define !! 01/2018 (G.Delautier) SURFEX 8.1 -!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 28/03/2019: use MNHTIME for time measurement variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -349,7 +350,7 @@ USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG,TFILE_DUMMY,TFILE_OUTPUTLISTING USE MODD_CONF_n USE MODD_NSV, ONLY : NSV,NSV_CHEM, & NSV_DSTEND, NSV_DSTBEG -use modd_precision, only: LFIINT, MNHREAL_MPI +use modd_precision, only: LFIINT, MNHREAL_MPI, MNHTIME ! USE MODN_BLANK ! @@ -554,7 +555,7 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE ::ZTHL,ZT,ZRT,ZFRAC_ICE,& REAL :: ZDIST ! !JUAN TIMING -REAL*8,DIMENSION(2) :: ZTIME1,ZTIME2,ZEND,ZTOT +REAL(kind=MNHTIME), DIMENSION(2) :: ZTIME1, ZTIME2, ZEND, ZTOT CHARACTER :: YMI INTEGER :: IMI INTEGER::JK @@ -622,8 +623,8 @@ CALL VERSION CPROGRAM='IDEAL ' ! !JUAN TIMING - XT_START = 0.0 - XT_STORE = 0.0 + XT_START = 0.0_MNHTIME + XT_STORE = 0.0_MNHTIME ! CALL SECOND_MNH2(ZEND) ! diff --git a/src/MNH/shallow_mf_pack.f90 b/src/MNH/shallow_mf_pack.f90 index ba519f8e3..46f477b19 100644 --- a/src/MNH/shallow_mf_pack.f90 +++ b/src/MNH/shallow_mf_pack.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 2010-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ###################### MODULE MODI_SHALLOW_MF_PACK ! ###################### @@ -21,10 +22,11 @@ INTERFACE PSIGMF,PRC_MF,PRI_MF,PCF_MF,PFLXZTHVMF ) ! ################################################################# !! -USE MODD_IO_ll, ONLY: TFILEDATA -! +USE MODD_IO_ll, ONLY: TFILEDATA +use modd_precision, only: MNHTIME +! !* 1.1 Declaration of Arguments -! +! ! INTEGER, INTENT(IN) :: KRR ! number of moist var. INTEGER, INTENT(IN) :: KRRL ! number of liquid water var. @@ -39,7 +41,7 @@ LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for synchronous LOGICAL, INTENT(IN) :: OMF_FLX ! switch to write the ! MF fluxes in the synchronous FM-file TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -REAL*8,DIMENSION(2), INTENT(OUT) :: PTIME_LES ! time spent in LES computations +REAL(kind=MNHTIME),DIMENSION(2), INTENT(OUT) :: PTIME_LES ! time spent in LES computations REAL, INTENT(IN) :: PIMPL_MF ! degre of implicitness REAL, INTENT(IN) :: PTSTEP ! Dynamical timestep @@ -110,32 +112,35 @@ END MODULE MODI_SHALLOW_MF_PACK !! AUTHOR !! ------ !! V.Masson 09/2010 -!! Modification R. Honnert 07/2012 : introduction of vertical wind -!! for the height of the thermal -!! M. Leriche 02/2017 : avoid negative values for sv tendencies -!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -!! S. Riette 11/2016: support for CFRAC_ICE_SHALLOW_MF -!! -------------------------------------------------------------------------- +! -------------------------------------------------------------------------- +! Modifications: +! R. Honnert 07/2012: introduction of vertical wind for the height of the thermal +! M. Leriche 02/2017: avoid negative values for sv tendencies +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! S. Riette 11/2016: support for CFRAC_ICE_SHALLOW_MF +! P. Wautelet 28/03/2019: use MNHTIME for time measurement variables +! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS -USE MODD_CST +USE MODD_BUDGET USE MODD_CONF +USE MODD_CST USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_NSV +USE MODD_PARAMETERS USE MODD_PARAM_ICE, ONLY : CFRAC_ICE_SHALLOW_MF USE MODD_PARAM_MFSHALL_n -USE MODD_BUDGET +use modd_precision, only: MNHTIME USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL USE MODE_FMWRIT -USE MODI_SHALLOW_MF USE MODI_BUDGET -USE MODI_SHUMAN USE MODI_DIAGNOS_LES_MF +USE MODI_SHALLOW_MF +USE MODI_SHUMAN ! IMPLICIT NONE @@ -156,7 +161,7 @@ LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for synchronous LOGICAL, INTENT(IN) :: OMF_FLX ! switch to write the ! MF fluxes in the synchronous FM-file TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -REAL*8,DIMENSION(2), INTENT(OUT) :: PTIME_LES ! time spent in LES computations +REAL(kind=MNHTIME),DIMENSION(2), INTENT(OUT) :: PTIME_LES ! time spent in LES computations REAL, INTENT(IN) :: PIMPL_MF ! degre of implicitness REAL, INTENT(IN) :: PTSTEP ! Dynamical timestep -- GitLab From 561cf287a7689a58049b4bef26211f018d3d0cd0 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 28 Mar 2019 14:57:46 +0100 Subject: [PATCH 116/139] Philippe 28/03/2019: use TFILE instead of unit number for set_iluout_timing --- src/MNH/mode_mnh_timing.f90 | 18 +++++++++++------- src/MNH/modeln.f90 | 3 ++- src/MNH/prep_ideal_case.f90 | 3 ++- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/MNH/mode_mnh_timing.f90 b/src/MNH/mode_mnh_timing.f90 index 8c1afe171..24fedf3a4 100644 --- a/src/MNH/mode_mnh_timing.f90 +++ b/src/MNH/mode_mnh_timing.f90 @@ -12,7 +12,8 @@ MODULE MODE_MNH_TIMING ! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN ! P. Wautelet 22/03/2019: use MNHREAL64 and MNHREAL64_MPI + typo corrections ! P. Wautelet 27/03/2019: use MNHTIME and MNHTIME_MPI instead of MNHREAL64 and MNHREAL64_MPI -! +! P. Wautelet 28/03/2019: use TFILE instead of unit number for set_iluout_timing +!------------------------------------------------------------------------ implicit none @@ -40,14 +41,17 @@ xt(2) = MPI_WTIME() end subroutine second_mnh2 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +subroutine set_iluout_timing(tfile) -!JUAN - SUBROUTINE SET_ILUOUT_TIMING(KLUOUT) - IMPLICIT NONE - INTEGER, INTENT(IN) :: KLUOUT - NLUOUT_TIMING = KLUOUT - END SUBROUTINE SET_ILUOUT_TIMING +use modd_io_ll, only: tfiledata + +implicit none + +type(tfiledata), intent(in) :: tfile + +nluout_timing = tfile%nlu +end subroutine set_iluout_timing !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index c8cb87d01..ef5ea2335 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -255,6 +255,7 @@ END MODULE MODI_MODEL_n ! to allow to disable writes (for bench purposes) !! 02/2019 C.Lac add rain fraction as an output field ! P. Wautelet 28/03/2019: use MNHTIME for time measurement variables +! P. Wautelet 28/03/2019: use TFILE instead of unit number for set_iluout_timing !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -2119,7 +2120,7 @@ IF (OEXIT) THEN ! ! Set File Timing OUTPUT ! - CALL SET_ILUOUT_TIMING(ILUOUT) + CALL SET_ILUOUT_TIMING(TLUOUT) ! ! Compute global time ! diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index 63ee062ea..4dc697aa8 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -312,6 +312,7 @@ !! 01/2018 (G.Delautier) SURFEX 8.1 ! P. Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 28/03/2019: use MNHTIME for time measurement variables +! P. Wautelet 28/03/2019: use TFILE instead of unit number for set_iluout_timing !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -1875,7 +1876,7 @@ END IF ! ! Set File Timing OUTPUT ! - CALL SET_ILUOUT_TIMING(NLUOUT) + CALL SET_ILUOUT_TIMING(TLUOUT0) ! ! Compute global time ! -- GitLab From 07f6d9c1aadfa04092385161d5427a2f1471f42f Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Fri, 29 Mar 2019 09:31:20 +0100 Subject: [PATCH 117/139] Quentin 29/03/2019 correction of order + initilization of salt modes with respect to correct version of salt routines sent (4/02/2019 instead of 1/02/2019) --- src/MNH/init_salt.f90 | 2 +- src/MNH/modd_salt.f90 | 4 ++-- src/MNH/saltlfin.f90 | 30 +++++++++--------------------- src/SURFEX/modd_slt_surf.F90 | 2 +- 4 files changed, 13 insertions(+), 25 deletions(-) diff --git a/src/MNH/init_salt.f90 b/src/MNH/init_salt.f90 index de95ce681..8576133e9 100644 --- a/src/MNH/init_salt.f90 +++ b/src/MNH/init_salt.f90 @@ -42,7 +42,7 @@ XINIRADIUS_SLT= (/0.009, 0.021, 0.045, 0.115, 0.415/) !Initial, standard deviation from Ova et al., 2014 XINISIG_SLT = (/ 1.37, 1.5, 1.42, 1.53, 1.85 /) !Minimum allowed number concentration for any mode (#/m3) -XN0MIN_SLT = (/1.e1 , 1.e1, 1.e1, 1., 1.e-4 /) +XN0MIN_SLT = (/1. , 1., 1., 1., 1. /) ELSE IF ( NMODE_SLT == 3) THEN diff --git a/src/MNH/modd_salt.f90 b/src/MNH/modd_salt.f90 index 907b95672..769ca39f1 100644 --- a/src/MNH/modd_salt.f90 +++ b/src/MNH/modd_salt.f90 @@ -68,7 +68,7 @@ CHARACTER(LEN=6),DIMENSION(15), PARAMETER :: YPSALT_INI = & 'SLTM04','SLTM34','SLTM64',& 'SLTM05','SLTM35','SLTM65' /) -INTEGER, DIMENSION(5),PARAMETER :: JPSALTORDER = (/3, 2, 1, 5, 4/) +INTEGER, DIMENSION(5),PARAMETER :: JPSALTORDER = (/1, 2, 3, 4, 5/) !Test Thomas (definir rayons et sigma ici si on veut desactiver initialisation MACC) @@ -79,7 +79,7 @@ REAL,DIMENSION(5) :: XINIRADIUS_SLT= (/0.009, 0.021, 0.045, 0.115, 0.415/) !Initial, standard deviation from Ova et al., 2014 REAL,DIMENSION(5) :: XINISIG_SLT = (/ 1.37, 1.5, 1.42, 1.53, 1.85 /) !Minimum allowed number concentration for any mode (#/m3) -REAL,DIMENSION(5) :: XN0MIN_SLT = (/1.e1 , 1.e1, 1.e1, 1., 1.e-4 /) +REAL,DIMENSION(5) :: XN0MIN_SLT = (/1. , 1., 1., 1., 1. /) !Test Thomas diff --git a/src/MNH/saltlfin.f90 b/src/MNH/saltlfin.f90 index 3b637b278..e99be7c7a 100644 --- a/src/MNH/saltlfin.f90 +++ b/src/MNH/saltlfin.f90 @@ -101,7 +101,7 @@ INTEGER :: IMOMENTS !-Marine INTEGER :: JI, JJ, JN, JK ! loop counter INTEGER :: IMODEIDX ! index mode -REAL, PARAMETER :: ZN_SALT=0.1 ! particles of sea salt/cm3 {air} +REAL, PARAMETER :: ZN_SALT=1E4 ! multiplcative factor for X0MIN REAL, PARAMETER :: ZCLM=800. ! Marine Salt layer (m) REAL :: ZN_SALTN ! @@ -182,30 +182,18 @@ DO JN=1,NMODE_SLT !+Marine : (reprendre XN0MIN_SLT de modd_salt.f90). ! Pas plus simple de fixer une dimension à ZN_SALT qui dépend de JN pour ne pas ! avoir à rappeler le schéma d'émission? - IF(NMODE_SLT == 5)THEN - - - IF (JN == 1) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT *1E6 - IF (JN == 2) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT *1E6 - IF (JN == 3) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT *1E6 - IF (JN == 4) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT *1E6 - IF (JN == 5) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT *1E6 - + IF (JN == 1) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT + IF (JN == 2) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT + IF (JN == 3) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT + IF (JN == 4) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT + IF (JN == 5) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT ELSE -! IF (JN == 1) ZN_SALTN = 1E-4 * ZN_SALT *1E6 -! IF (JN == 2) ZN_SALTN = 1. * ZN_SALT *1E6 -! IF (JN == 3) ZN_SALTN = 10 * ZN_SALT *1E6 - - IF (JN == 1) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT *1E6 - IF (JN == 2) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT *1E6 - IF (JN == 3) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT *1E6 - + IF (JN == 1) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT + IF (JN == 2) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT + IF (JN == 3) ZN_SALTN = XN0MIN_SLT(JPSALTORDER(JN)) * ZN_SALT END IF - - !-Marine - DO JK=1, SIZE(PSV,3) DO JJ=1, SIZE(PSV,2) DO JI=1, SIZE(PSV,1) diff --git a/src/SURFEX/modd_slt_surf.F90 b/src/SURFEX/modd_slt_surf.F90 index 589cfb655..5a1c91c90 100644 --- a/src/SURFEX/modd_slt_surf.F90 +++ b/src/SURFEX/modd_slt_surf.F90 @@ -15,7 +15,7 @@ REAL, PARAMETER :: XDENSITY_SLT = 2.1e3 ! [kg/m3] density of sea salt REAL, PARAMETER :: XMOLARWEIGHT_SLT = 58.e-3 ! [kg/mol] molar weight sea salt ! INTEGER, PARAMETER :: NEMISMODES_MAX=5 -INTEGER, DIMENSION(NEMISMODES_MAX), PARAMETER :: JORDER_SLT=(/3,2,1,5,4/) !Dust modes in order of importance +INTEGER, DIMENSION(NEMISMODES_MAX), PARAMETER :: JORDER_SLT=(/1,2,3,4,5/) !Dust modes in order of importance !Set emission related parameters REAL,DIMENSION(NEMISMODES_MAX) :: XEMISRADIUS_INI_SLT ! number madian radius initialization for sea salt mode (um) REAL,DIMENSION(NEMISMODES_MAX) :: XEMISSIG_INI_SLT ! dispersion initialization for sea salt mode -- GitLab From 455c995485c0325a8473866b11fdee799351be20 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Fri, 29 Mar 2019 14:49:47 +0100 Subject: [PATCH 118/139] Philippe 29/03/2019: use correct sizes for 3rd dimension in allocation and loops when CRAD/='NONE' --- src/MNH/two_wayn.f90 | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/src/MNH/two_wayn.f90 b/src/MNH/two_wayn.f90 index ff6e46c09..62f7596c7 100644 --- a/src/MNH/two_wayn.f90 +++ b/src/MNH/two_wayn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1997-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1997-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -112,7 +112,8 @@ END MODULE MODI_TWO_WAY_n !! Bosseur & Filippi 07/2013 Adds Forefire !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Modification 01/2016 (JP Pinty) Add LIMA -!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 29/03/2019: bugfix: use correct sizes for 3rd dimension in allocation and loops when CRAD/='NONE' !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -950,9 +951,10 @@ IF (LINTER) THEN ALLOCATE(ZSCAFLASWD(IXOR:IXEND,IYOR:IYEND, SIZE(PSCAFLASWD, 3))) ALLOCATE(ZDIRSRFSWD(IXOR:IXEND,IYOR:IYEND, SIZE(PDIRSRFSWD, 3))) ELSE - ALLOCATE(ZDIRFLASWD(0,0,0)) - ALLOCATE(ZSCAFLASWD(0,0,0)) - ALLOCATE(ZDIRSRFSWD(0,0,0)) + !3rd dimension size can also be allocated with a zero size + ALLOCATE( ZDIRFLASWD(0, 0, SIZE( PDIRFLASWD, 3 )) ) + ALLOCATE( ZSCAFLASWD(0, 0, SIZE( PSCAFLASWD, 3 )) ) + ALLOCATE( ZDIRSRFSWD(0, 0, SIZE( PDIRSRFSWD, 3 )) ) ENDIF ELSE ALLOCATE(ZUM(0,0,0)) @@ -971,9 +973,11 @@ ELSE ALLOCATE(ZINPRH(0,0)) ALLOCATE(ZPRCONV(0,0)) ALLOCATE(ZPRSCONV(0,0)) - ALLOCATE(ZDIRFLASWD(0,0,0)) - ALLOCATE(ZSCAFLASWD(0,0,0)) - ALLOCATE(ZDIRSRFSWD(0,0,0)) + !3rd dimension of ZDIRFLASWD, ZSCAFLASWD and ZDIRSRFSWD is allocated with a not necessarily zero size + !because it needs to be to this size for the SET_LSFIELD_2WAY_ll loops if CRAD/='NONE' + ALLOCATE( ZDIRFLASWD(0, 0, SIZE( PDIRFLASWD, 3 )) ) + ALLOCATE( ZSCAFLASWD(0, 0, SIZE( PSCAFLASWD, 3 )) ) + ALLOCATE( ZDIRSRFSWD(0, 0, SIZE( PDIRSRFSWD, 3 )) ) ENDIF ! ! Initialize the list for the forcing @@ -1011,11 +1015,15 @@ IF (CDCONV /= 'NONE') THEN CALL SET_LSFIELD_2WAY_ll(ZPRSCONV , ZTPRSCONV) END IF IF (CRAD /= 'NONE') THEN - DO JVAR=1,SIZE( PDIRFLASWD,3) - CALL SET_LSFIELD_2WAY_ll(ZDIRFLASWD(:,:,JVAR) , ZTDIRFLASWD(:,:,JVAR)) - CALL SET_LSFIELD_2WAY_ll(ZSCAFLASWD(:,:,JVAR) , ZTSCAFLASWD(:,:,JVAR)) - CALL SET_LSFIELD_2WAY_ll(ZDIRSRFSWD(:,:,JVAR) , ZTDIRSRFSWD(:,:,JVAR)) - ENDDO + DO JVAR = 1, SIZE( PDIRFLASWD, 3 ) + CALL SET_LSFIELD_2WAY_ll(ZDIRFLASWD(:,:,JVAR) , ZTDIRFLASWD(:,:,JVAR)) + END DO + DO JVAR = 1, SIZE( PSCAFLASWD, 3 ) + CALL SET_LSFIELD_2WAY_ll(ZSCAFLASWD(:,:,JVAR) , ZTSCAFLASWD(:,:,JVAR)) + END DO + DO JVAR = 1, SIZE( PDIRSRFSWD, 3 ) + CALL SET_LSFIELD_2WAY_ll(ZDIRSRFSWD(:,:,JVAR) , ZTDIRSRFSWD(:,:,JVAR)) + END DO END IF CALL SET_LSFIELD_2WAY_ll(ZRHODJ, ZTRHODJ) CALL SET_LSFIELD_2WAY_ll(ZRHODJU, ZTRHODJU) -- GitLab From c6369881ddd69c185541733f0dcd6cce421ba969 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Fri, 29 Mar 2019 15:32:07 +0100 Subject: [PATCH 119/139] Quentin 29/03/2019 : increase the maximum number of possible output files from 192 to 999 (useful for high frequent output with NAM_OUTPUT) --- src/MNH/modd_parameters.f90 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/MNH/modd_parameters.f90 b/src/MNH/modd_parameters.f90 index a128c34b3..8b0c0a4fc 100644 --- a/src/MNH/modd_parameters.f90 +++ b/src/MNH/modd_parameters.f90 @@ -40,6 +40,7 @@ !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! B.VIE 2016 LIMA !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! Q. Rodier : 29/03/2019 : increase maximum number of outputs to 999 !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -74,7 +75,7 @@ INTEGER, PARAMETER :: NNEGUNDEF = -999 ! default value for undefined or unused ! ! field (negative value guaranteed) INTEGER, PARAMETER :: JPDUMMY = 20 ! Size of dummy array ! -INTEGER, PARAMETER :: JPOUTMAX = 192 ! Maximum allowed number of OUTput files +INTEGER, PARAMETER :: JPOUTMAX = 999 ! Maximum allowed number of OUTput files INTEGER, PARAMETER :: JPOUTVARMAX = 192 ! Maximum allowed number of variables in an output file ! INTEGER, PARAMETER :: NMNHNAMELGTMAX = 32 ! Maximum length of a MNH variable name -- GitLab From 1a0e46355b0a19fe0af6c725dab5365d2d11a3ac Mon Sep 17 00:00:00 2001 From: Juan Escobar <escj@aero.obs-mip.fr> Date: Fri, 29 Mar 2019 15:36:45 +0100 Subject: [PATCH 120/139] Juan 29/03/2019: check very small domain size(=0 ) & force N/S/E/W check on getting LB bounds --- src/LIB/SURCOUCHE/src/mode_distriblb.f90 | 14 ++++++++------ src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 | 10 ++++++++++ src/MNH/get_sizex_lb.f90 | 15 ++++++++------- src/MNH/get_sizey_lb.f90 | 15 ++++++++------- 4 files changed, 34 insertions(+), 20 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_distriblb.f90 b/src/LIB/SURCOUCHE/src/mode_distriblb.f90 index e3d13ec6f..f8e2792a4 100644 --- a/src/LIB/SURCOUCHE/src/mode_distriblb.f90 +++ b/src/LIB/SURCOUCHE/src/mode_distriblb.f90 @@ -103,12 +103,14 @@ END SUBROUTINE GET_DISTRIB_LB !! MODIFICATIONS !! ------------- !! Original 23/09/98 +!! Modif +!! J.Escobar 28/03/2019: for very small domain , force N/S/E/W check on getting LB bounds !------------------------------------------------------------------------------- ! USE MODD_PARAMETERS_ll,ONLY : JPHEXT USE MODD_VAR_ll, ONLY : TCRRT_PROCONF USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll -USE MODE_TOOLS_ll, ONLY : GET_INTERSECTION_ll,GET_GLOBALDIMS_ll,LWEST_ll +USE MODE_TOOLS_ll, ONLY : GET_INTERSECTION_ll,GET_GLOBALDIMS_ll,LWEST_ll,LEAST_ll !* 0. DECLARATIONS ! ------------ @@ -191,7 +193,7 @@ ELSE IYEND=IJMAX_ll+ 2 * JPHEXT ENDIF CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,YMODE,IINFO,KIP) -IF (IINFO /= 1) THEN ! no empty intersection +IF (IINFO/=1 .AND. LWEST_ll(KIP) ) THEN ! no empty intersection IF (HCOORD == 'LOC') THEN KIB=IXORI KIE=IXENDI @@ -242,7 +244,7 @@ ELSE IYEND=IJMAX_ll+ 2 * JPHEXT ENDIF CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,YMODE,IINFO,KIP) -IF (IINFO /=1) THEN +IF (IINFO/=1 .AND. LEAST_ll(KIP) ) THEN IF (HCOORD == 'LOC') THEN IF (KIB == 0) KIB=1+KIE KIE=KIE+1+IXENDI-IXORI @@ -317,7 +319,7 @@ END SUBROUTINE GET_DISTRIBX_LB USE MODD_PARAMETERS_ll,ONLY : JPHEXT USE MODD_VAR_ll, ONLY : TCRRT_PROCONF USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll -USE MODE_TOOLS_ll, ONLY : GET_INTERSECTION_ll,GET_GLOBALDIMS_ll,LSOUTH_ll +USE MODE_TOOLS_ll, ONLY : GET_INTERSECTION_ll,GET_GLOBALDIMS_ll,LSOUTH_ll,LNORTH_ll !* 0. DECLARATIONS ! ------------ !* 0.1 declarations of arguments @@ -396,7 +398,7 @@ ELSE IYEND=JPHEXT !1 ENDIF CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,YMODE,IINFO,KIP) -IF (IINFO /= 1) THEN ! no empty intersection +IF (IINFO/=1 .AND. LSOUTH_ll(KIP) ) THEN ! no empty intersection IF (HCOORD == 'LOC') THEN KIB=IXORI KIE=IXENDI @@ -442,7 +444,7 @@ ELSE IYEND=IJMAX_ll + 2 * JPHEXT - JPHEXT + JPHEXT ! + 2 * JPHEXT ENDIF CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,YMODE,IINFO,KIP) -IF (IINFO /=1) THEN +IF (IINFO/=1 .AND. LNORTH_ll(KIP) ) THEN IF (HCOORD == 'LOC') THEN KIB=IXORI KIE=IXENDI diff --git a/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 b/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 index 91cc5b329..882201462 100644 --- a/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 @@ -202,6 +202,7 @@ !! ------------- ! Original 01/05/98 ! R.Guivarch 29/11/99 : x and y splitting : HSPLITTING + ! J.Escobar 28/03/2019: check very small domain(0 size) ! !------------------------------------------------------------------------------- ! @@ -332,6 +333,14 @@ CALL CARTESIANZ(TPROC,NB_PROC,X_DIM,Y_DIM,Z_DIM,X_DOMAINS,Y_DOMAINS,Z_DOMAINS,321) ! END IF + IF ( ( (1+TPROC(IP)%NXEND-TPROC(IP)%NXOR) == 0 ) & + .OR. ( (1+TPROC(IP)%NYEND-TPROC(IP)%NYOR) == 0 ) ) THEN + PRINT*, "/!\ SPLITZ: some proc have 0 size local domaine , to much processors used for domaine size ", & + " IP=" ,IP , & + " DIMX=",1+TPROC(IP)%NXEND-TPROC(IP)%NXOR, & + " DIMY=",1+TPROC(IP)%NYEND-TPROC(IP)%NYOR + CALL ABORT() + END IF ! !* 3. shift from physical to extended domain ! @@ -352,6 +361,7 @@ PRINT*,"NYOR=",TPROC(IK)%NYOR," NYEND=",TPROC(IK)%NYEND," TAILLE=",1+TPROC(IK)%NYEND-TPROC(IK)%NYOR PRINT*,"NZOR=",TPROC(IK)%NZOR," NZEND=",TPROC(IK)%NZEND," TAILLE=",1+TPROC(IK)%NZEND-TPROC(IK)%NZOR END DO + ENDIF END IF END IF diff --git a/src/MNH/get_sizex_lb.f90 b/src/MNH/get_sizex_lb.f90 index 275f45402..198cdac80 100644 --- a/src/MNH/get_sizex_lb.f90 +++ b/src/MNH/get_sizex_lb.f90 @@ -83,6 +83,7 @@ END MODULE MODI_GET_SIZEX_LB !! Original 23/09/98 !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! J.Escobar 28/03/2019: for very small domain , force N/S/E/W check on getting LB bounds !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -139,7 +140,7 @@ IF (KRIMX /=0) THEN IYOR=1 IYEND=KJMAX_ll+ 2 * JPHEXT CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO) - IF (IINFO/=1) THEN ! no empty intersection + IF (IINFO/=1 .AND. LWEST_ll() ) THEN ! no empty intersection KISIZEXF=KISIZEXF + (IXENDI - IXORI +1) KJSIZEXF= IYENDI - IYORI +1 ENDIF @@ -150,7 +151,7 @@ IF (KRIMX /=0) THEN IYOR=1 IYEND=KJMAX_ll+ 2 * JPHEXT CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO) - IF (IINFO/=1) THEN ! no empty intersection + IF (IINFO/=1 .AND. LEAST_ll() ) THEN ! no empty intersection KISIZEXF=KISIZEXF + (IXENDI - IXORI +1) ! added to the western side KJSIZEXF= IYENDI - IYORI +1 KISIZEXFU=KISIZEXFU + ( IXENDI - IXORI +1) @@ -162,7 +163,7 @@ IF (KRIMX /=0) THEN IYOR=1 IYEND=KJMAX_ll+ 2 * JPHEXT CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO) - IF (IINFO /= 1) THEN ! no empty intersection + IF (IINFO/=1 .AND. LWEST_ll() ) THEN ! no empty intersection KISIZEXFU=KISIZEXFU + (IXENDI - IXORI +1) KJSIZEXFU= IYENDI - IYORI +1 ENDIF @@ -176,7 +177,7 @@ IXEND=JPHEXT+2 ! 3 IYOR=1 IYEND=KJMAX_ll+ 2 * JPHEXT CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO) -IF (IINFO /=1 ) THEN ! no empty intersection +IF (IINFO /=1 .AND. LWEST_ll() ) THEN ! no empty intersection KISIZEX4=KISIZEX4 + ( IXENDI - IXORI +1) KJSIZEX4= IYENDI - IYORI +1 ENDIF @@ -186,7 +187,7 @@ IXEND=KIMAX_ll+ 2 * JPHEXT - JPHEXT + JPHEXT ! + 2*JPHEXT IYOR=1 IYEND=KJMAX_ll+ 2 * JPHEXT CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO) -IF (IINFO/=1) THEN ! no empty intersection +IF (IINFO/=1 .AND. LEAST_ll() ) THEN ! no empty intersection KISIZEX4=KISIZEX4 + (IXENDI - IXORI +1) KJSIZEX4= IYENDI - IYORI +1 ENDIF @@ -199,7 +200,7 @@ IXEND=JPHEXT ! 1 IYOR=1 IYEND=KJMAX_ll+ 2 * JPHEXT CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO) -IF (IINFO /=1) THEN ! no empty intersection +IF (IINFO/=1 .AND. LWEST_ll() ) THEN ! no empty intersection KISIZEX2=KISIZEX2 + ( IXENDI - IXORI +1) KJSIZEX2= IYENDI - IYORI +1 ENDIF @@ -209,7 +210,7 @@ IXEND=KIMAX_ll + 2 * JPHEXT - JPHEXT + JPHEXT ! + 2 * JPHEXT IYOR=1 IYEND=KJMAX_ll+ 2 * JPHEXT CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO) -IF (IINFO /=1) THEN ! no empty intersection +IF (IINFO/=1 .AND. LEAST_ll() ) THEN ! no empty intersection KISIZEX2=KISIZEX2 + ( IXENDI - IXORI +1) KJSIZEX2= IYENDI - IYORI +1 ENDIF diff --git a/src/MNH/get_sizey_lb.f90 b/src/MNH/get_sizey_lb.f90 index a7dbd1039..fbff6c1dd 100644 --- a/src/MNH/get_sizey_lb.f90 +++ b/src/MNH/get_sizey_lb.f90 @@ -83,6 +83,7 @@ END MODULE MODI_GET_SIZEY_LB !! Original 23/09/98 !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +!! J.Escobar 28/03/2019: for very small domain , force N/S/E/W check on getting LB bounds !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -139,7 +140,7 @@ IF (KRIMY /=0) THEN IYOR=1 IYEND=KRIMY+JPHEXT ! +1 CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO) - IF (IINFO/=1) THEN ! no empty intersection + IF (IINFO/=1 .AND. LSOUTH_ll() ) THEN ! no empty intersection KISIZEYF= IXENDI - IXORI +1 KJSIZEYF= KJSIZEYF + (IYENDI - IYORI +1) ENDIF @@ -150,7 +151,7 @@ IF (KRIMY /=0) THEN IYOR=KJMAX_ll + 2 * JPHEXT-KRIMY-JPHEXT+1 ! -KRIMY IYEND=KJMAX_ll+ 2 * JPHEXT CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO) - IF (IINFO/=1) THEN ! no empty intersection + IF (IINFO/=1 .AND. LNORTH_ll() ) THEN ! no empty intersection KISIZEYF=IXENDI - IXORI +1 KJSIZEYF= KJSIZEYF + (IYENDI - IYORI +1 )! added to the southern side KISIZEYFV= IXENDI - IXORI +1 @@ -162,7 +163,7 @@ IF (KRIMY /=0) THEN IYOR=2 IYEND=KRIMY+JPHEXT+1 !+2 CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO) - IF (IINFO /= 1) THEN ! no empty intersection + IF (IINFO/=1 .AND. LSOUTH_ll() ) THEN ! no empty intersection KISIZEYFV= IXENDI - IXORI +1 KJSIZEYFV= KJSIZEYFV + (IYENDI - IYORI +1 ) ENDIF @@ -176,7 +177,7 @@ IXEND=KIMAX_ll+ 2 * JPHEXT IYOR=2 !2 IYEND=JPHEXT+2 !3 CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO) -IF (IINFO /=1 ) THEN ! no empty intersection +IF (IINFO /=1 .AND. LSOUTH_ll() ) THEN ! no empty intersection KISIZEY4= IXENDI - IXORI +1 KJSIZEY4= KJSIZEY4 + (IYENDI - IYORI +1) ENDIF @@ -186,7 +187,7 @@ IXEND=KIMAX_ll+ 2 * JPHEXT IYOR=KJMAX_ll + 2 * JPHEXT - JPHEXT ! + JPHEXT IYEND=KJMAX_ll+ 2 * JPHEXT - JPHEXT + JPHEXT ! + 2*JPHEXT CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO) -IF (IINFO/=1) THEN ! no empty intersection +IF (IINFO/=1 .AND. LNORTH_ll() ) THEN ! no empty intersection KISIZEY4=IXENDI - IXORI +1 KJSIZEY4=KJSIZEY4 + ( IYENDI - IYORI +1 ) ENDIF @@ -199,7 +200,7 @@ IXEND=KIMAX_ll+ 2 * JPHEXT IYOR=1 ! 1 IYEND=JPHEXT ! 1 CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO) -IF (IINFO /=1) THEN ! no empty intersection +IF (IINFO /=1 .AND. LSOUTH_ll() ) THEN ! no empty intersection KISIZEY2= IXENDI - IXORI +1 KJSIZEY2=KJSIZEY2 + (IYENDI - IYORI +1 ) ENDIF @@ -209,7 +210,7 @@ IXEND=KIMAX_ll + 2 * JPHEXT IYOR=KJMAX_ll + 2 * JPHEXT - JPHEXT + 1 ! + 2 * JPHEXT IYEND=KJMAX_ll+ 2 * JPHEXT - JPHEXT + JPHEXT ! + 2 * JPHEXT CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO) -IF (IINFO /=1) THEN ! no empty intersection +IF (IINFO /=1 .AND. LNORTH_ll() ) THEN ! no empty intersection KISIZEY2= IXENDI - IXORI +1 KJSIZEY2= KJSIZEY2 + (IYENDI - IYORI +1 ) ENDIF -- GitLab From 87af32e08592f266208a7404e19d6334b6c6dd39 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 1 Apr 2019 10:06:09 +0200 Subject: [PATCH 121/139] Philippe 01/04/2019: incremented version number to 5.4.2 in A-INSTALL and jobs --- A-INSTALL | 64 ++++++++++++++-------------- src/job_make_examples_BG | 6 +-- src/job_make_examples_BGQ | 4 +- src/job_make_examples_BullX | 4 +- src/job_make_examples_BullX_eos | 2 +- src/job_make_examples_BullX_irene | 2 +- src/job_make_examples_BullX_occigen | 2 +- src/job_make_examples_CRAY_cca | 4 +- src/job_make_examples_IBM_ada | 2 +- src/job_make_examples_IBM_sp6_vargas | 4 +- src/job_make_examples_NEC_SX8 | 4 +- src/job_make_examples_SX8 | 4 +- src/job_make_examples_cxa | 4 +- src/job_make_mesonh_BG | 4 +- src/job_make_mesonh_BGQ | 4 +- src/job_make_mesonh_BullX | 4 +- src/job_make_mesonh_CRAY_cca | 4 +- src/job_make_mesonh_IBM_ada | 4 +- src/job_make_mesonh_IBM_sp6_vargas | 4 +- src/job_make_mesonh_MFSX8 | 4 +- src/job_make_mesonh_NEC_SX8 | 4 +- src/job_make_mesonh_cxa | 4 +- src/job_make_mesonh_user_BullX | 4 +- src/job_make_mesonh_user_MFSX8 | 6 +-- 24 files changed, 76 insertions(+), 76 deletions(-) diff --git a/A-INSTALL b/A-INSTALL index cdfa1b9e5..9c7996baa 100644 --- a/A-INSTALL +++ b/A-INSTALL @@ -1,8 +1,8 @@ # # Version of PACKAGE MESONH "Open distribution" -# PACK-MNH-V5-4-1 -# DATE : 20/07/2018 -# VERSION : MESONH MASDEV5_4 + BUG-1 +# PACK-MNH-V5-4-2 +# DATE : 01/04/2019 +# VERSION : MESONH MASDEV5_4 + BUG-2 # # MAP # @@ -80,14 +80,14 @@ # # or directly # -# http://mesonh.aero.obs-mip.fr/mesonh/dir_open/dir_MESONH/MNH-V5-4-1.tar.gz +# http://mesonh.aero.obs-mip.fr/mesonh/dir_open/dir_MESONH/MNH-V5-4-2.tar.gz # -# Then untar the file "PACK-MNH-V5-4-1.tar.gz" where you want to. +# Then untar the file "PACK-MNH-V5-4-2.tar.gz" where you want to. # For example, in your home directory: # cd ~ -tar xvfz PACK-MNH-V5-4-1.tar.gz +tar xvfz PACK-MNH-V5-4-2.tar.gz # # Process now to the chapter to configure the MesoNH package. @@ -167,10 +167,10 @@ git config --global http.sslverify false # Finally you can clone the Meso-NH Git repository with the following command: # -git lfs clone anongit@anongit_mesonh:/gitrepos/MNH-git_open_source-lfs.git -b MNH-54-branch MNH-V5-4-1 +git lfs clone anongit@anongit_mesonh:/gitrepos/MNH-git_open_source-lfs.git -b MNH-54-branch MNH-V5-4-2 # -# that will create the MNH-V5-4-1 directory containing a clone (copy) of the +# that will create the MNH-V5-4-2 directory containing a clone (copy) of the # Meso-NH package on the remote developpement branch MNH-54-branch # # @@ -180,34 +180,34 @@ git lfs clone anongit@anongit_mesonh:/gitrepos/MNH-git_open_source-lfs.git -b MN # Once the repository is cloned, it's better for you to checkout your own branch # (by default, you are on HEAD of the MNH-54-branch development branch ). # -# To create your local branch corresponding to the V5-4-1 version, type: +# To create your local branch corresponding to the V5-4-2 version, type: # -cd MNH-V5-4-1 -git checkout -b MYB-MNH-V5-4-1 PACK-MNH-V5-4-1 +cd MNH-V5-4-2 +git checkout -b MYB-MNH-V5-4-2 PACK-MNH-V5-4-2 # -# MYB-MNH-V5-4-1 is the name of the local branch you created +# MYB-MNH-V5-4-2 is the name of the local branch you created # and -# PACK-MNH-V5-4-1 is the remote/origin tag on which it is based. +# PACK-MNH-V5-4-2 is the remote/origin tag on which it is based. # # The advantage of this way of downloading the package is that in the future # you could check/update quickly differences with the new version of the # package without having to download entirely the full package. # -# Suppose that a new version, for example "PACK-MNH-V5-4-1", is announced. +# Suppose that a new version, for example "PACK-MNH-V5-4-2", is announced. # # To see the differences with your working copy, do: # git fetch -git diff HEAD PACK-MNH-V5-4-1 +git diff HEAD PACK-MNH-V5-4-2 # # To go to the new version, you can, for example, create a new local branch: # -git checkout -b MYB-MNH-V5-4-1 PACK-MNH-V5-4-1 +git checkout -b MYB-MNH-V5-4-2 PACK-MNH-V5-4-2 # # At any time, you can also check for "uptodate" changes in the Git branch @@ -253,7 +253,7 @@ git clone anongit@anongit_mesonh:/gitrepos/MNH-DOC.git # use the "./configure" script like this # -cd ~/MNH-V5-4-1/src +cd ~/MNH-V5-4-2/src ./configure . ../conf/profile_mesonh @@ -298,7 +298,7 @@ export OPTLEVEL=O2 # Compile in O2, 4 times faster then DEBUG, but less # and then source/load the new generate file -. ../conf/profile_mesonh.LXifort.MNH-V5-4-1.MPIAUTO.O2 +. ../conf/profile_mesonh.LXifort.MNH-V5-4-2.MPIAUTO.O2 # # REM: @@ -323,7 +323,7 @@ export OPTLEVEL=O2 # Compile in O2, 4 times faster then DEBUG, but less # go to the directory "src" # -cd ~/MNH-V5-4-1/src +cd ~/MNH-V5-4-2/src # # if you have not already configured your MESONH environment @@ -550,7 +550,7 @@ make examples # cd $WORKDIR -cd MNH-V5-4-1/src +cd MNH-V5-4-2/src ./configure @@ -611,7 +611,7 @@ export ARCH=LXifort ... -création du fichier --> ../conf/profile_mesonh-LXifortI4-MNH-V5-4-1-MPICRAY-O2 +création du fichier --> ../conf/profile_mesonh-LXifortI4-MNH-V5-4-2-MPICRAY-O2 # And for the compilation & example job , switch the ARCH variable to LXiort : @@ -619,7 +619,7 @@ vi job_make_mesonh_CRAY_cca(job_make_examples_CRAY_cca) ARCH=LXifort #ARCH=LXcray # this is the default one -. ../conf/profile_mesonh-${ARCH}I4-MNH-V5-4-1-MPICRAY-O2 +. ../conf/profile_mesonh-${ARCH}I4-MNH-V5-4-2-MPICRAY-O2 @@ -710,7 +710,7 @@ scandollar ## OUTPUT :: -># read default config file :: ---> CONF_DOLLAR=/home/escj/DEV64/PACK-MNH-V5-4-1/conf/post/confdollar_aeropc_default +># read default config file :: ---> CONF_DOLLAR=/home/escj/DEV64/PACK-MNH-V5-4-2/conf/post/confdollar_aeropc_default ># ># read user config file :: ---> CONFIG=confdollar ># @@ -732,7 +732,7 @@ scandollar 0* ## OUTPUT :: ># -># read default config file :: ---> CONF_DOLLAR=/home/escj/DEV64/PACK-MNH-V5-4-1/conf/post/confdollar_aeropc_default +># read default config file :: ---> CONF_DOLLAR=/home/escj/DEV64/PACK-MNH-V5-4-2/conf/post/confdollar_aeropc_default ># ># read user config file :: ---> CONFIG=confdollar ># @@ -806,22 +806,22 @@ cp -R 007_16janvier_scandollar /.../your_directory # # use this "profile_mesonh" : -. /home/rech/mnh/rmnh007/DEV/MNH-V5-4-1/conf/profile_mesonh-SX8-MNH-V5-4-1-MPIAUTO-O4 +. /home/rech/mnh/rmnh007/DEV/MNH-V5-4-2/conf/profile_mesonh-SX8-MNH-V5-4-2-MPIAUTO-O4 # And the examples are here ( link to my $WORKDIR in actually ) -/home/rech/mnh/rmnh007/DEV/MNH-V5-4-1/MY_RUN/KTEST/007_16janvier_scandollar +/home/rech/mnh/rmnh007/DEV/MNH-V5-4-2/MY_RUN/KTEST/007_16janvier_scandollar # # On vargas # --------- # use this "profile_mesonh" : -. /workgpfs/rech/mnh/rmnh007/DEV/MNH-V5-4-1/conf/profile_mesonh-AIX64-MNH-V5-4-1-MPIAUTO-O2 +. /workgpfs/rech/mnh/rmnh007/DEV/MNH-V5-4-2/conf/profile_mesonh-AIX64-MNH-V5-4-2-MPIAUTO-O2 # and examples here : -/workgpfs/rech/mnh/rmnh007/DEV/MNH-V5-4-1/MY_RUN/KTEST/007_16janvier_scandollar +/workgpfs/rech/mnh/rmnh007/DEV/MNH-V5-4-2/MY_RUN/KTEST/007_16janvier_scandollar # # - At CINES on JADE : @@ -829,11 +829,11 @@ cp -R 007_16janvier_scandollar /.../your_directory # # use -. /work/escobar/DEV/MNH-V5-4-1/conf/profile_mesonh-LXifort-MNH-V5-4-1-MPIICE-O2 +. /work/escobar/DEV/MNH-V5-4-2/conf/profile_mesonh-LXifort-MNH-V5-4-2-MPIICE-O2 # and the exemples -/work/escobar/DEV/MNH-V5-4-1/MY_RUN/KTEST/007_16janvier_scandollar +/work/escobar/DEV/MNH-V5-4-2/MY_RUN/KTEST/007_16janvier_scandollar # # - At ECMWF on cxa : @@ -841,11 +841,11 @@ cp -R 007_16janvier_scandollar /.../your_directory # # use -. /c1a/ms_perm/au5/MNH-V5-4-1/conf/profile_mesonh-AIX64-MNH-V5-4-1-MPIAUTO-O2 +. /c1a/ms_perm/au5/MNH-V5-4-2/conf/profile_mesonh-AIX64-MNH-V5-4-2-MPIAUTO-O2 # and the examples -/c1a/ms_perm/au5/MNH-V5-4-1/MY_RUN/KTEST/007_16janvier_scandollar +/c1a/ms_perm/au5/MNH-V5-4-2/MY_RUN/KTEST/007_16janvier_scandollar # diff --git a/src/job_make_examples_BG b/src/job_make_examples_BG index a6d8d0518..3c1266742 100755 --- a/src/job_make_examples_BG +++ b/src/job_make_examples_BG @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. # @ job_name =Examples_MNH # @ job_type = BLUEGENE @@ -18,7 +18,7 @@ set -x cd $LOADL_STEP_INITDIR -. ../conf/profile_mesonh-BG-R8I4-MNH-V5-4-1-MPIAUTO-O2 +. ../conf/profile_mesonh-BG-R8I4-MNH-V5-4-2-MPIAUTO-O2 #001_2Drelief 002_3Drelief 003_KW78 004_Reunion 007_16janvier diff --git a/src/job_make_examples_BGQ b/src/job_make_examples_BGQ index 881f6a947..5b0bf5246 100755 --- a/src/job_make_examples_BGQ +++ b/src/job_make_examples_BGQ @@ -1,4 +1,4 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -18,7 +18,7 @@ cd $LOADL_STEP_INITDIR -. ../conf/profile_mesonh-BGQ-R8I4-MNH-V5-4-1-MPIAUTO-O2NAN +. ../conf/profile_mesonh-BGQ-R8I4-MNH-V5-4-2-MPIAUTO-O2NAN set -x diff --git a/src/job_make_examples_BullX b/src/job_make_examples_BullX index 549491030..6e53b1a9b 100755 --- a/src/job_make_examples_BullX +++ b/src/job_make_examples_BullX @@ -1,5 +1,5 @@ #!/bin/bash -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -19,7 +19,7 @@ set -e hostname # Echo des commandes -. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-4-1-MPIINTEL-O3 +. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-4-2-MPIINTEL-O3 export MONORUN="Mpirun -np 1 " export MPIRUN="Mpirun -np 2 " export POSTRUN="time " diff --git a/src/job_make_examples_BullX_eos b/src/job_make_examples_BullX_eos index 79c7e02e4..d0c387773 100755 --- a/src/job_make_examples_BullX_eos +++ b/src/job_make_examples_BullX_eos @@ -17,7 +17,7 @@ set -x # Nom de la machine hostname -. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-4-1-MPIINTEL-O2 +. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-4-2-MPIINTEL-O2 export MONORUN="mpirun -prepend-rank -np 1 " export MPIRUN="mpirun -prepend-rank -np 4 " export POSTRUN="time " diff --git a/src/job_make_examples_BullX_irene b/src/job_make_examples_BullX_irene index bea1188e9..6e0f0f1f5 100755 --- a/src/job_make_examples_BullX_irene +++ b/src/job_make_examples_BullX_irene @@ -21,7 +21,7 @@ set +x # Nom de la machine hostname -. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-4-1-MPIINTEL-O2 +. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-4-2-MPIINTEL-O2 set -x diff --git a/src/job_make_examples_BullX_occigen b/src/job_make_examples_BullX_occigen index f8d5e7c0f..b5f60e5f4 100755 --- a/src/job_make_examples_BullX_occigen +++ b/src/job_make_examples_BullX_occigen @@ -18,7 +18,7 @@ set -x # Nom de la machine hostname -. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-4-1-MPIINTEL-O2 +. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-4-2-MPIINTEL-O2 export MONORUN="Mpirun -prepend-rank -np 1 " export MPIRUN="Mpirun -prepend-rank -np 4 " export POSTRUN="time " diff --git a/src/job_make_examples_CRAY_cca b/src/job_make_examples_CRAY_cca index 51609eb98..f4c87e365 100755 --- a/src/job_make_examples_CRAY_cca +++ b/src/job_make_examples_CRAY_cca @@ -1,5 +1,5 @@ #!/bin/bash -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -28,7 +28,7 @@ cd ${PBS_O_WORKDIR} ARCH=LXifort #ARCH=LXcray -. ../conf/profile_mesonh-${ARCH}-R8I4-MNH-V5-4-1-MPICRAY-O2 +. ../conf/profile_mesonh-${ARCH}-R8I4-MNH-V5-4-2-MPICRAY-O2 export MONORUN="aprun -n 1 " diff --git a/src/job_make_examples_IBM_ada b/src/job_make_examples_IBM_ada index d21cac773..43e1d73e0 100755 --- a/src/job_make_examples_IBM_ada +++ b/src/job_make_examples_IBM_ada @@ -19,7 +19,7 @@ cd $LOADL_STEP_INITDIR -. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-4-1-MPIINTEL-O2 +. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-4-2-MPIINTEL-O2 # Pour avoir l'echo des commandes set -x diff --git a/src/job_make_examples_IBM_sp6_vargas b/src/job_make_examples_IBM_sp6_vargas index ef733d168..8305c3663 100755 --- a/src/job_make_examples_IBM_sp6_vargas +++ b/src/job_make_examples_IBM_sp6_vargas @@ -1,4 +1,4 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -24,7 +24,7 @@ set -x cd $LOADL_STEP_INITDIR -. ../conf/profile_mesonh-AIX64-R8I4-MNH-V5-4-1-MPIAUTO-O2 +. ../conf/profile_mesonh-AIX64-R8I4-MNH-V5-4-2-MPIAUTO-O2 #001_2Drelief 002_3Drelief 003_KW78 004_Reunion 007_16janvier diff --git a/src/job_make_examples_NEC_SX8 b/src/job_make_examples_NEC_SX8 index 6f2c720d9..fb3a805c0 100755 --- a/src/job_make_examples_NEC_SX8 +++ b/src/job_make_examples_NEC_SX8 @@ -1,4 +1,4 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -18,7 +18,7 @@ hostname [ -d $PBS_O_WORKDIR ] && cd $PBS_O_WORKDIR # -. ../conf/profile_mesonh-SX8-R8I4-MNH-V5-4-1-MPIAUTO-O4 +. ../conf/profile_mesonh-SX8-R8I4-MNH-V5-4-2-MPIAUTO-O4 export MONORUN="Mpirun -np 1 " export MPIRUN="Mpirun -np 2 " diff --git a/src/job_make_examples_SX8 b/src/job_make_examples_SX8 index 7580cab39..de3032418 100755 --- a/src/job_make_examples_SX8 +++ b/src/job_make_examples_SX8 @@ -1,4 +1,4 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -19,7 +19,7 @@ hostname [ -d $PBS_O_WORKDIR ] && cd $PBS_O_WORKDIR # -. ../conf/profile_mesonh-SX8-R8I4-MNH-V5-4-1-MPIAUTO-O2 +. ../conf/profile_mesonh-SX8-R8I4-MNH-V5-4-2-MPIAUTO-O2 export MONORUN="Mpirun -np 1 " export MPIRUN="Mpirun -np 2 " diff --git a/src/job_make_examples_cxa b/src/job_make_examples_cxa index ef7f3eef6..f27bea4fb 100755 --- a/src/job_make_examples_cxa +++ b/src/job_make_examples_cxa @@ -1,4 +1,4 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -34,7 +34,7 @@ echo SHELL=$SHELL cd $LOADL_STEP_INITDIR -. ../conf/profile_mesonh-AIX64-R8I4-MNH-V5-4-1-MPIAUTO-O2 +. ../conf/profile_mesonh-AIX64-R8I4-MNH-V5-4-2-MPIAUTO-O2 ulimit -c 0 # pas de core diff --git a/src/job_make_mesonh_BG b/src/job_make_mesonh_BG index d6b565eb7..5b7a12e9d 100755 --- a/src/job_make_mesonh_BG +++ b/src/job_make_mesonh_BG @@ -1,4 +1,4 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -18,7 +18,7 @@ set -x cd $LOADL_STEP_INITDIR -. ../conf/profile_mesonh-BG-R8I4-MNH-V5-4-1-MPIAUTO-O2 +. ../conf/profile_mesonh-BG-R8I4-MNH-V5-4-2-MPIAUTO-O2 #time gmake time gmake -r -j8 diff --git a/src/job_make_mesonh_BGQ b/src/job_make_mesonh_BGQ index 090826920..6a8dd4cd7 100755 --- a/src/job_make_mesonh_BGQ +++ b/src/job_make_mesonh_BGQ @@ -1,4 +1,4 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -34,7 +34,7 @@ set -x cd $LOADL_STEP_INITDIR -. ../conf/profile_mesonh-BGQ-R8I4-MNH-V5-4-1-MPIAUTO-O2NAN +. ../conf/profile_mesonh-BGQ-R8I4-MNH-V5-4-2-MPIAUTO-O2NAN case $LOADL_STEP_NAME in diff --git a/src/job_make_mesonh_BullX b/src/job_make_mesonh_BullX index 50986a320..0af2e2244 100755 --- a/src/job_make_mesonh_BullX +++ b/src/job_make_mesonh_BullX @@ -1,5 +1,5 @@ #!/bin/bash -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -19,7 +19,7 @@ set -x # On va lancer la compilation dans le répertoire de lancement du job pwd -. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-4-1-MPIINTEL-O3 +. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-4-2-MPIINTEL-O3 time gmake -j 4 time gmake -j 1 installmaster diff --git a/src/job_make_mesonh_CRAY_cca b/src/job_make_mesonh_CRAY_cca index 9caef0f66..1b4de21e1 100755 --- a/src/job_make_mesonh_CRAY_cca +++ b/src/job_make_mesonh_CRAY_cca @@ -1,5 +1,5 @@ #!/bin/bash -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -21,7 +21,7 @@ pwd ARCH=LXifort #ARCH=LXcray -. ../conf/profile_mesonh-${ARCH}-R8I4-MNH-V5-4-1-MPICRAY-O2 +. ../conf/profile_mesonh-${ARCH}-R8I4-MNH-V5-4-2-MPICRAY-O2 time gmake -j 4 2>&1 | tee sortie_compile_${ARCH}.$$ time gmake -j 4 2>&1 | tee sortie_compile_${ARCH}2.$$ diff --git a/src/job_make_mesonh_IBM_ada b/src/job_make_mesonh_IBM_ada index 45fbde3d0..4d64ed118 100755 --- a/src/job_make_mesonh_IBM_ada +++ b/src/job_make_mesonh_IBM_ada @@ -1,4 +1,4 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -16,7 +16,7 @@ cd $LOADL_STEP_INITDIR -. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-4-1-MPIINTEL-O2 +. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-4-2-MPIINTEL-O2 # Pour avoir l'echo des commandes set -x diff --git a/src/job_make_mesonh_IBM_sp6_vargas b/src/job_make_mesonh_IBM_sp6_vargas index efb71b6d4..e8f11ad27 100755 --- a/src/job_make_mesonh_IBM_sp6_vargas +++ b/src/job_make_mesonh_IBM_sp6_vargas @@ -1,4 +1,4 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -24,7 +24,7 @@ set -x cd $LOADL_STEP_INITDIR -. ../conf/profile_mesonh-AIX64-R8I4-MNH-V5-4-1-MPIAUTO-O2 +. ../conf/profile_mesonh-AIX64-R8I4-MNH-V5-4-2-MPIAUTO-O2 time gmake -j1 gribapi time gmake -r -j8 diff --git a/src/job_make_mesonh_MFSX8 b/src/job_make_mesonh_MFSX8 index f8bb0e308..c1e15619b 100644 --- a/src/job_make_mesonh_MFSX8 +++ b/src/job_make_mesonh_MFSX8 @@ -1,4 +1,4 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -12,7 +12,7 @@ set -x # On va lancer la compilation dans le répertoire de lancement du job [ ${PBS_O_WORKDIR} ] && cd ${PBS_O_WORKDIR} -. ../conf/profile_mesonh-SX8-R8I4-MNH-V5-4-1-MPIAUTO-O4 +. ../conf/profile_mesonh-SX8-R8I4-MNH-V5-4-2-MPIAUTO-O4 time gmake -j 4 ########## compile on four processors to speedup the compilation time gmake -j 1 installmaster diff --git a/src/job_make_mesonh_NEC_SX8 b/src/job_make_mesonh_NEC_SX8 index 095159b3d..d8664fc05 100755 --- a/src/job_make_mesonh_NEC_SX8 +++ b/src/job_make_mesonh_NEC_SX8 @@ -1,4 +1,4 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -11,7 +11,7 @@ set -x # On va lancer la compilation dans le répertoire de lancement du job [ $PBS_O_WORKDIR ] && cd $PBS_O_WORKDIR -. ../conf/profile_mesonh-SX8-R8I4-MNH-V5-4-1-MPIAUTO-O4 +. ../conf/profile_mesonh-SX8-R8I4-MNH-V5-4-2-MPIAUTO-O4 time gmake -j 4 time gmake -j 4 # some time problem with first pass in parallel compilation diff --git a/src/job_make_mesonh_cxa b/src/job_make_mesonh_cxa index 69ff15875..ad5b3a858 100755 --- a/src/job_make_mesonh_cxa +++ b/src/job_make_mesonh_cxa @@ -1,4 +1,4 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -27,7 +27,7 @@ set -x cd $LOADL_STEP_INITDIR -. ../conf/profile_mesonh-AIX64-R8I4-MNH-V5-4-1-MPIAUTO-O2 +. ../conf/profile_mesonh-AIX64-R8I4-MNH-V5-4-2-MPIAUTO-O2 time gmake -r -j1 time gmake installmaster diff --git a/src/job_make_mesonh_user_BullX b/src/job_make_mesonh_user_BullX index 0ef248049..324daaf55 100755 --- a/src/job_make_mesonh_user_BullX +++ b/src/job_make_mesonh_user_BullX @@ -1,5 +1,5 @@ #!/bin/bash -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. @@ -19,7 +19,7 @@ export VER_USER= ########## Your own USER Directory set -x # On va lancer la compilation dans le répertoire de lancement du job -. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-4-1-${VER_USER}-MPIINTEL-O3 +. ../conf/profile_mesonh-LXifort-R8I4-MNH-V5-4-2-${VER_USER}-MPIINTEL-O3 time gmake user time gmake -j 1 installuser diff --git a/src/job_make_mesonh_user_MFSX8 b/src/job_make_mesonh_user_MFSX8 index 4766235b6..407073d7e 100644 --- a/src/job_make_mesonh_user_MFSX8 +++ b/src/job_make_mesonh_user_MFSX8 @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. #PBS -q compile # obligatoire pour rester sur la frontale TX-7 #PBS -l cputim_prc=36000 # temps CPU par processus (défaut 30mn, max 5h) @@ -14,7 +14,7 @@ set -x [ ${PBS_O_WORKDIR} ] && cd ${PBS_O_WORKDIR} -. ../conf/profile_mesonh-SX8-R8I4-MNH-V5-4-1-${VER_USER}-MPIAUTO-O4 +. ../conf/profile_mesonh-SX8-R8I4-MNH-V5-4-2-${VER_USER}-MPIAUTO-O4 time gmake user time gmake -j 1 installuser -- GitLab From c783651d5f89f254e2282b635ac17ac82c3924a4 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Wed, 3 Apr 2019 12:31:33 +0200 Subject: [PATCH 122/139] Revert "Quentin 24/01/2019: minor correction on XCEDIS : cancellation of previous modification of XCEDIS with respect to the mixing length" This reverts commit 54cd5be54e665e29cf6f9883e83b224ed4a212fd. --- src/MNH/read_exsegn.f90 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90 index 83d45636d..d09c3323b 100644 --- a/src/MNH/read_exsegn.f90 +++ b/src/MNH/read_exsegn.f90 @@ -1419,6 +1419,12 @@ ELSE END IF END IF ! +IF(CTURBLEN=='RM17') THEN + XCEDIS=0.34 +ELSE + XCEDIS=0.84 +END IF +! !* 3.3 Moist turbulence ! IF ( LUSERC .AND. CTURB /= 'NONE' ) THEN -- GitLab From dbda155b1c561b96b090ae9271912e9538c80a64 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Wed, 3 Apr 2019 15:56:27 +0200 Subject: [PATCH 123/139] Quentin 03/04/2019 date A-INSTALL update 542 bugfix --- A-INSTALL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/A-INSTALL b/A-INSTALL index 9c7996baa..6dd8e2275 100644 --- a/A-INSTALL +++ b/A-INSTALL @@ -1,7 +1,7 @@ # # Version of PACKAGE MESONH "Open distribution" # PACK-MNH-V5-4-2 -# DATE : 01/04/2019 +# DATE : 03/04/2019 # VERSION : MESONH MASDEV5_4 + BUG-2 # # MAP -- GitLab From 43bd09e8c454539304e5e1bb69a4d1e8b9264fa6 Mon Sep 17 00:00:00 2001 From: Juan Escobar <escj@aero.obs-mip.fr> Date: Wed, 3 Apr 2019 16:50:49 +0200 Subject: [PATCH 124/139] Juan 3/04/2018: for CALMIP , rename job_make_examples_BullX_eos -> job_make_examples_BullX_olympe --- ...job_make_examples_BullX_eos => job_make_examples_BullX_olympe} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{job_make_examples_BullX_eos => job_make_examples_BullX_olympe} (100%) diff --git a/src/job_make_examples_BullX_eos b/src/job_make_examples_BullX_olympe similarity index 100% rename from src/job_make_examples_BullX_eos rename to src/job_make_examples_BullX_olympe -- GitLab From 34c85f625fb4403674c41eafc4040152e5e3e77a Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Wed, 3 Apr 2019 18:11:43 +0200 Subject: [PATCH 125/139] Jeanine 03/04/2019: add Meteo-France/DSI procedure on beaufix/prolix HPC --- A-INSTALL | 78 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 66 insertions(+), 12 deletions(-) diff --git a/A-INSTALL b/A-INSTALL index 6dd8e2275..c01c75c72 100644 --- a/A-INSTALL +++ b/A-INSTALL @@ -74,7 +74,7 @@ # ========================================== # # With your preferred web browser go to the MESONH WEB SITE -# +# # http://mesonh.aero.obs-mip.fr/mesonh # ---> Download # @@ -85,10 +85,10 @@ # Then untar the file "PACK-MNH-V5-4-2.tar.gz" where you want to. # For example, in your home directory: # - + cd ~ tar xvfz PACK-MNH-V5-4-2.tar.gz - + # # Process now to the chapter to configure the MesoNH package. # @@ -121,7 +121,7 @@ git --version git lfs install # that will set up some filters under the name "lfs" in the global Git -# config file ($HOME/.gitconfig) +# config file ($HOME/.gitconfig) # # b) Before cloning # ----------------- @@ -217,7 +217,7 @@ git checkout -b MYB-MNH-V5-4-2 PACK-MNH-V5-4-2 git fetch git diff HEAD MNH-54-branch - + # # And, test this development (not yet official) version by going to this branch: # @@ -261,14 +261,20 @@ cd ~/MNH-V5-4-2/src # this will create a configuration file "profile_mesonh" with # an extension reflecting the different "choices" made automatically # to match the computer on which you want to install MESONH -# +# # WARNING : # ========= -# On GENCI & ECMWF & METEO/CNRM computers, the './configure' is tuned to +# On GENCI & ECMWF & METEO/CNRM & METEO/DSI computers, the './configure' is tuned to # identify the computer on which the command is used # so the good compiler, MPI & netCDF libraries,... # are automatically chosen # +# To install this version on one of these machines, go to the chapter +# +# => VI) COMPILING/INSTALLING ON GENCI & ECMWF & METEO COMPUTERS +# +# else follow the guidelines below. +# # /!\ This is not the case in your "own" personal Linux computer ... # So is up to you to set the ARCH variable correctly # ARCH = Fortran compiler to use, @@ -488,7 +494,7 @@ export VER_USER=MY_MODIF # # as before load it & and compile with the command "make user" -. ../conf/profile_mesnh...${VER_USER}... +. ../conf/profile_mesonh...${VER_USER}... make user @@ -611,9 +617,9 @@ export ARCH=LXifort ... -création du fichier --> ../conf/profile_mesonh-LXifortI4-MNH-V5-4-2-MPICRAY-O2 +creation du fichier --> ../conf/profile_mesonh-LXifortI4-MNH-V5-4-2-MPICRAY-O2 -# And for the compilation & example job , switch the ARCH variable to LXiort : +# And for the compilation & example job , switch the ARCH variable to LXifort : vi job_make_mesonh_CRAY_cca(job_make_examples_CRAY_cca) @@ -621,11 +627,53 @@ ARCH=LXifort #ARCH=LXcray # this is the default one . ../conf/profile_mesonh-${ARCH}I4-MNH-V5-4-2-MPICRAY-O2 +# +# - At Meteo-France DSI on beaufix (or prolix) +# +# to install the whole package on your "$HOME" directory +# untar the file "PACK-MNH-V5-4-2.tar.gz" from its location : + +cd ~ +tar xvf $MESONH/pack_MNH-V5-4-2.tar.gz + +# run the "./configure" command : + +cd MNH-V5-4-2/src +./configure + +# +# Due to limitation in time & memory on interactive connection +# then compile the MESONH PACKAGE in batch mode with the job_make_mesonh_BullX file : + +sbatch job_make_mesonh_BullX + +# This job does : gmake -j 4 +# then : make installmaster + +# To run basic KTEST examples : + +sbatch job_make_examples_BullX + +# Step-2 : configure/compiling with VER_USER=... +# ---------------------------------------------- +# In a new session set the variable "VER_USER" with the name of your "USER VERSION", +# and run again the "./configure" command +# + +export VER_USER=MY_MODIF +./configure + +# this will regenerate the "profile-mesonh" file and a copy +# of this with the extent "profile_mesonh...${VER_USER)..." +# +# in job_make_mesonh_user_BullX insert " export VER_USER=MY_MODIF " +# then submit in batch mode +sbatch job_make_mesonh_user_BullX # -# EXAMPLES ON GENCI & ECMWF PLATFORMS -# ==================================== +# EXAMPLES ON GENCI & ECMWF PLATFORMS & METEO COMPUTERS +# ===================================================== # # - At IDRIS # @@ -656,6 +704,12 @@ make examples llsubmit job_make_examples_CRAY_cca +# +# - At Meteo-France DSI on beaufix or prolix +# + +sbatch job_make_examples_BullX + # # That's all for the basic INSTALLATION of the "MESONH PACKAGE" # -- GitLab From 0267e967dd1e58ea210de1ae9a0a86a89d11cf28 Mon Sep 17 00:00:00 2001 From: Juan Escobar <juan.escobar@aero.obs-mip.fr> Date: Thu, 4 Apr 2019 11:58:36 +0200 Subject: [PATCH 126/139] Juan 4/04/2019:configure, for CINES/occigen , force CC=gcc & avoid bugged intel/18.1 --- src/configure | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/configure b/src/configure index 9b3b03bec..ab03ad872 100755 --- a/src/configure +++ b/src/configure @@ -55,6 +55,9 @@ module purge module load intel/17.0 intelmpi/2017.2.174 export SLURM_CPU_BIND=none export I_MPI_PIN_PROCESSOR_LIST=all:map=spread +# force CC=gcc , for HDF5 divide by zero problem with icc !!! +export CC=gcc +export I_MPI_CC=gcc "} ;; 'Linux service'*) -- GitLab From fffbe051d7511eece666d5778b1cf0c6acc8f166 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 4 Apr 2019 16:48:45 +0200 Subject: [PATCH 127/139] Philippe 04/04/2019: force write on stderr for all processes in print_msg if abort --- src/LIB/SURCOUCHE/src/mode_io.f90 | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 0434b5ea1..0d6f357a2 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -25,6 +25,7 @@ ! Philippe Wautelet: 10/01/2019: bug: modify some metadata before open calls ! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll to allow ! to disable writes (for bench purposes) +! P. Wautelet 04/04/2019: force write on stderr for all processes in print_msg if abort ! MODULE MODE_IO_ll @@ -791,9 +792,6 @@ IF (IP == 1 .OR. LVERB_ALLPRC) THEN IF (LVERB_STDOUT) GWRITE_STDOUT = .TRUE. END IF ! -YPRC='' -IF (LVERB_ALLPRC) WRITE(YPRC,'( I8 )') IP-1 -! !Check if the output file is available ILU = -1 IF (ASSOCIATED(TFILE_OUTPUTLISTING)) THEN @@ -841,6 +839,8 @@ SELECT CASE(KVERB) IF (GWRITE_OUTLST) WRITE(UNIT=ILU, FMT=*) 'ERROR: PRINT_MSG: wrong verbosity level' END SELECT ! +WRITE(YPRC,'( I8 )') IP-1 +! YSUBR=TRIM(HSUBR)//':' IF (LVERB_ALLPRC) THEN IF (GWRITE_STDOUT) WRITE(UNIT=OUTPUT_UNIT,FMT="(A8,': ',A9,A30,A)") ADJUSTL(YPRC),YPRE,YSUBR,HMSG @@ -851,9 +851,11 @@ ELSE END IF ! IF (KVERB<=IABORTLEVEL) THEN - IF (IP==1) WRITE(UNIT=ERROR_UNIT,FMT=*) 'ABORT asked by application '//TRIM(CPROGRAM) IF (GWRITE_STDOUT) WRITE(UNIT=OUTPUT_UNIT,FMT=*) 'ABORT asked by application '//TRIM(CPROGRAM) IF (GWRITE_OUTLST) WRITE(UNIT=ILU, FMT=*) 'ABORT asked by application '//TRIM(CPROGRAM) + !Every process write on the error unit. This is necessary if the abort is done by an other process than 0. + WRITE(UNIT=ERROR_UNIT,FMT="(A8,': ',A9,A30,A)") ADJUSTL(YPRC),YPRE,YSUBR,HMSG + WRITE(UNIT=ERROR_UNIT,FMT="(A8,': ',A)") ADJUSTL(YPRC),'ABORT asked by application '//TRIM(CPROGRAM) #if 0 !Problem: loop dependency between MODE_MSG and MODE_FM (IO_FILE_CLOSE_ll call PRINT_MSG) NIO_VERB = 0 !To not get further messages (ABORT should be the last for readability) -- GitLab From c260f90363d9e71e9aafff3cd4e8fdfd39e70ba4 Mon Sep 17 00:00:00 2001 From: Juan Escobar <escj@aero.obs-mip.fr> Date: Fri, 5 Apr 2019 09:51:19 +0000 Subject: [PATCH 128/139] Juan 5/04/2019:configure, for ECMWF/ccx , force CC=gcc <=> bypass PB divide zero in netcdf --- src/configure | 1 + 1 file changed, 1 insertion(+) diff --git a/src/configure b/src/configure index ab03ad872..90e2f2100 100755 --- a/src/configure +++ b/src/configure @@ -259,6 +259,7 @@ module rm grib_api eccodes prgenvswitchto intel module rm intel module load intel/17.0.3.053 +export CC=gcc "} fi fi -- GitLab From 28e71f25169d47f37e1f93503c066d82d7a48748 Mon Sep 17 00:00:00 2001 From: Juan Escobar <escj@aero.obs-mip.fr> Date: Mon, 8 Apr 2019 10:50:15 +0200 Subject: [PATCH 129/139] Juan 8/09/2019: configure , set date version to 03/04/2019 --- src/configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configure b/src/configure index 90e2f2100..03587c46e 100755 --- a/src/configure +++ b/src/configure @@ -11,7 +11,7 @@ then export VERSION_MASTER=${VERSION_MASTER:-MNH-V5-4} export VERSION_BUG=${VERSION_BUG:-2} export VERSION_XYZ=${VERSION_XYZ:-${VERSION_MASTER}-${VERSION_BUG}${VER_OASIS:+-${VER_OASIS}}} -export VERSION_DATE=${VERSION_DATE:-"dd/mm/yyyy"} +export VERSION_DATE=${VERSION_DATE:-"03/04/2019"} export VERSION_LIBAEC=${VERSION_LIBAEC:-"0.3.2"} export VERSION_HDF=${VERSION_HDF:-"1.8.20"} export VERSION_CDFC=${VERSION_CDFC:-"4.5.0"} -- GitLab From aabc5e536837cd21f32b0ef56b60681cb439d071 Mon Sep 17 00:00:00 2001 From: Juan Escobar <escj@aero.obs-mip.fr> Date: Mon, 8 Apr 2019 11:01:56 +0200 Subject: [PATCH 130/139] Juan 8/04/2019:A-INSTALL, typo remove "PACK" un tarball name --- A-INSTALL | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/A-INSTALL b/A-INSTALL index c01c75c72..7d0d2ad77 100644 --- a/A-INSTALL +++ b/A-INSTALL @@ -82,12 +82,12 @@ # # http://mesonh.aero.obs-mip.fr/mesonh/dir_open/dir_MESONH/MNH-V5-4-2.tar.gz # -# Then untar the file "PACK-MNH-V5-4-2.tar.gz" where you want to. +# Then untar the file "MNH-V5-4-2.tar.gz" where you want to. # For example, in your home directory: # cd ~ -tar xvfz PACK-MNH-V5-4-2.tar.gz +tar xvfz MNH-V5-4-2.tar.gz # # Process now to the chapter to configure the MesoNH package. -- GitLab From b00a2e5d3402393aa9bbc2a7f220b8d98c71ca47 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 10 Apr 2019 12:59:05 +0200 Subject: [PATCH 131/139] Philippe 10/04/2019: LFI2CDF: use IO_Err_handle_nc4 to handle netCDF errors --- LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 | 37 ++++++++++-------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 index 34c2d8332..5bdb80c88 100644 --- a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 +++ b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 @@ -5,6 +5,7 @@ !----------------------------------------------------------------- ! Modifications: ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 10/04/2019: use IO_Err_handle_nc4 to handle netCDF errors !----------------------------------------------------------------- MODULE mode_util USE MODD_IO, ONLY: TFILE_ELT @@ -14,6 +15,7 @@ MODULE mode_util USE MODE_FIELD USE MODE_IO_FIELD_READ USE MODE_IO_FIELD_WRITE + use mode_io_tools_nc4, only: IO_Err_handle_nc4 USE mode_options @@ -232,10 +234,11 @@ CONTAINS tpreclist(tpreclist(ji)%tgt)%LSPLIT = .true. END IF ELSE - CALL HANDLE_ERR(status,__LINE__) + if ( status /= NF90_NOERR ) & + call IO_Err_handle_nc4( status, 'parse_infiles', 'NF90_INQ_VARID', trim(yrecfm)//'0001' ) END IF ELSE IF (status /= NF90_NOERR) THEN - CALL HANDLE_ERR(status,__LINE__) + call IO_Err_handle_nc4( status, 'parse_infiles', 'NF90_INQ_VARID', trim(yrecfm) ) ELSE kcdf_id2 = kcdf_id ENDIF @@ -332,7 +335,8 @@ END DO DO ji=1,nbvar_infile var_id = ji status = NF90_INQUIRE_VARIABLE(kcdf_id,var_id, name = tpreclist(ji)%name) - IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__) + if ( status /= NF90_NOERR ) & + call IO_Err_handle_nc4( status, 'parse_infiles', 'NF90_INQUIRE_VARIABLE', tpreclist(ji)%name ) tpreclist(ji)%found = .TRUE. CALL IO_Metadata_get_nc4(kcdf_id,var_id,tpreclist(ji)) END DO @@ -611,15 +615,6 @@ END DO END IF !nbvar_calc>0 END SUBROUTINE parse_infiles - - SUBROUTINE HANDLE_ERR(status,line) - INTEGER :: status,line - - IF (status /= NF90_NOERR) THEN - PRINT *, 'line ',line,': ',NF90_STRERROR(status) - STOP - END IF - END SUBROUTINE HANDLE_ERR SUBROUTINE def_ncdf(infiles,outfiles,KNFILES_OUT) USE MODD_CONF, ONLY: NMNHVERSION @@ -657,7 +652,7 @@ END DO DO ji = 1,KNFILES_OUT kcdf_id = outfiles(ji)%TFILE%NNCID status = NF90_PUT_ATT(kcdf_id,NF90_GLOBAL,'history',YHISTORY) - IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__) + if ( status /= NF90_NOERR ) call IO_Err_handle_nc4( status, 'def_ncdf', 'NF90_PUT_ATT', 'history' ) END DO END IF @@ -670,7 +665,7 @@ END DO ! WRITE(YMNHVERSION,"( I0,'.',I0,'.',I0 )" ) NMNHVERSION(1),NMNHVERSION(2),NMNHVERSION(3) status = NF90_PUT_ATT(kcdf_id,NF90_GLOBAL,'lfi2cdf_version',TRIM(YMNHVERSION)) - IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__) + if ( status /= NF90_NOERR ) call IO_Err_handle_nc4( status, 'def_ncdf', 'NF90_PUT_ATT', 'lfi2cdf_version' ) END DO END SUBROUTINE def_ncdf @@ -1073,7 +1068,7 @@ END DO END IF status = NF90_SET_FILL(outfiles(idx)%TFILE%NNCID,NF90_NOFILL,omode) - IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__) + if ( status /= NF90_NOERR ) call IO_Err_handle_nc4( status, 'OPEN_FILES', 'NF90_SET_FILL', '' ) END IF ! .NOT.osplit ELSE ! @@ -1162,7 +1157,7 @@ END DO END IF status = NF90_SET_FILL(outfiles(ji)%TFILE%NNCID,NF90_NOFILL,omode) - IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__) + if ( status /= NF90_NOERR ) call IO_Err_handle_nc4( status, 'OPEN_SPLIT_NCFILES_OUT', 'NF90_SET_FILL', '' ) END DO END SUBROUTINE OPEN_SPLIT_NCFILES_OUT @@ -1189,9 +1184,9 @@ END DO USE MODD_DIM_n, ONLY: NKMAX USE MODD_PARAMETERS, ONLY: JPVEXT - INTEGER, INTENT(IN) :: KFILE_ID - INTEGER, INTENT(IN) :: KVAR_ID - TYPE(workfield),INTENT(INOUT) :: TPREC + INTEGER(KIND=IDCDF_KIND), INTENT(IN) :: KFILE_ID + INTEGER(KIND=IDCDF_KIND), INTENT(IN) :: KVAR_ID + TYPE(workfield), INTENT(INOUT) :: TPREC INTEGER :: ILENG INTEGER :: JDIM @@ -1202,7 +1197,7 @@ END DO ISTATUS = NF90_INQUIRE_VARIABLE(KFILE_ID,KVAR_ID,NDIMS = TPREC%NDIMS_FILE, & XTYPE = TPREC%NTYPE_FILE, DIMIDS = IDIMS_ID) - IF (ISTATUS /= NF90_NOERR) CALL HANDLE_ERR(ISTATUS,__LINE__) + if ( istatus /= NF90_NOERR ) call IO_Err_handle_nc4( istatus, 'IO_Metadata_get_nc4', 'NF90_INQUIRE_VARIABLE', '' ) IF (.NOT.TPREC%LSPLIT) THEN ALLOCATE(TPREC%NDIMSIZES_FILE(TPREC%NDIMS_FILE)) @@ -1222,7 +1217,7 @@ END DO ISTATUS = NF90_INQUIRE_DIMENSION(KFILE_ID,IDIMS_ID(JDIM), & len = TPREC%NDIMSIZES_FILE(JDIM), & name = TPREC%CDIMNAMES_FILE(JDIM) ) - IF (ISTATUS /= NF90_NOERR) CALL HANDLE_ERR(ISTATUS,__LINE__) + if ( istatus /= NF90_NOERR ) call IO_Err_handle_nc4( istatus, 'IO_Metadata_get_nc4', 'NF90_INQUIRE_DIMENSION', '' ) ILENG = ILENG*TPREC%NDIMSIZES_FILE(JDIM) END DO -- GitLab From 00c8ba3fc3617c5bfde543aa7f6417891cde9754 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 10 Apr 2019 13:03:27 +0200 Subject: [PATCH 132/139] Philippe 10/04/2019: Makefile: add $(OBJDIR_MASTER)/MOD directory to INC --- src/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Makefile b/src/Makefile index 57b158f16..0e20e4a2a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -86,6 +86,7 @@ endif # ifdef DO_COMP_MASTER VPATH += $(OBJDIR_MASTER) $(OBJDIR_MASTER)/MOD +INC += -I$(B)$(OBJDIR_MASTER)/MOD endif # ########################################################## @@ -552,10 +553,12 @@ ARFLAGS=r # %.o:%.f90 + echo "inc=$(INC)" $(F90) -I$(OBJDIR) $(INC) -c $(F90FLAGS) $< -mv $(*F).o $(OBJDIR)/. || echo OK $(*F).o %.o:%.f + echo "inc=$(INC)" $(F77) -I$(OBJDIR) $(INC) -c $(F77FLAGS) $< -mv $(*F).o $(OBJDIR)/. || echo OK $(*F).o -- GitLab From 13de6c05f6bd59def28d7d5770c4a26b45b7f849 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 10 Apr 2019 14:56:03 +0200 Subject: [PATCH 133/139] Philippe 10/04/2019: replace ABORT and STOP calls by Print_msg --- src/LIB/SURCOUCHE/src/mode_argslist_ll.f90 | 18 +- src/LIB/SURCOUCHE/src/mode_distriblb.f90 | 45 +- src/LIB/SURCOUCHE/src/mode_ga.f90 | 6 +- src/LIB/SURCOUCHE/src/mode_io_field_read.f90 | 7 +- src/LIB/SURCOUCHE/src/mode_io_field_write.f90 | 246 ++--- src/LIB/SURCOUCHE/src/mode_lb_ll.f90 | 63 +- src/LIB/SURCOUCHE/src/mode_ls_ll.f90 | 48 +- src/LIB/SURCOUCHE/src/mode_mppdb.f90 | 12 +- src/LIB/SURCOUCHE/src/mode_tools_ll.f90 | 28 +- src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 | 21 +- src/LIB/SURCOUCHE/src/update_nhalo1d.f90 | 34 +- src/MNH/BASIC.f90 | 18 +- src/MNH/advec_weno_k_3_aux.f90 | 96 +- src/MNH/advecuvw_rk.f90 | 24 +- src/MNH/c3r5_adjust.f90 | 19 +- src/MNH/call_rttov11.f90 | 4 +- src/MNH/ch_aer_eqm_init0d.f90 | 22 +- src/MNH/ch_cranck.f90 | 21 +- src/MNH/ch_emission_flux0d.f90 | 8 +- src/MNH/ch_f77.fx90 | 892 +++++++++++------- src/MNH/ch_field_valuen.f90 | 32 +- src/MNH/ch_gauss.f90 | 23 +- src/MNH/ch_ini_orilam.f90 | 28 +- src/MNH/ch_init_budgetn.f90 | 22 +- src/MNH/ch_init_meteo.f90 | 16 +- src/MNH/ch_init_prodlosstotn.f90 | 19 +- src/MNH/ch_init_rosenbrock.f90 | 10 +- src/MNH/ch_linssa.f90 | 16 +- src/MNH/ch_meteo_trans_c2r2.f90 | 14 +- src/MNH/ch_meteo_trans_kess.f90 | 14 +- src/MNH/ch_monitorn.f90 | 6 +- src/MNH/ch_open_input.f90 | 14 +- src/MNH/ch_read_chem.f90 | 85 +- src/MNH/ch_sis.f90 | 18 +- src/MNH/ch_solvern.f90 | 31 +- src/MNH/ch_svode.f90 | 15 +- src/MNH/ch_update_jvalues.f90 | 26 +- src/MNH/compute_bl89_ml.f90 | 16 +- src/MNH/compute_frac_ice.f90 | 10 +- src/MNH/compute_mf_cloud.f90 | 16 +- src/MNH/dummy_gr_index.f90 | 15 +- src/MNH/ecmwf_radiation_vers2.f90 | 12 +- src/MNH/flash_geom_elec.f90 | 9 +- src/MNH/gamma_inc.f90 | 37 +- src/MNH/gamma_inc_low.f90 | 12 +- src/MNH/hypser.f90 | 23 +- src/MNH/ice4_sedimentation_split.f90 | 8 +- src/MNH/ice4_sedimentation_split_momentum.f90 | 18 +- src/MNH/ice4_sedimentation_split_old.f90 | 13 +- src/MNH/ice4_sedimentation_stat.f90 | 13 +- src/MNH/ice_c1r3.f90 | 17 +- src/MNH/ini_budget.f90 | 5 +- src/MNH/ini_elec.f90 | 8 +- src/MNH/ini_elecn.f90 | 8 +- src/MNH/ini_ice_c1r3.f90 | 13 +- src/MNH/ini_lesn.f90 | 5 +- src/MNH/ini_lima_cold_mixed.f90 | 17 +- src/MNH/ini_lw_setup.f90 | 11 +- src/MNH/ini_modeln.f90 | 9 +- src/MNH/ini_one_wayn.f90 | 4 +- src/MNH/ini_seriesn.f90 | 47 +- src/MNH/ini_spectren.f90 | 9 +- src/MNH/ini_sw_setup.f90 | 19 +- src/MNH/init_aerosol_properties.f90 | 8 +- src/MNH/les_ver_int.f90 | 16 +- src/MNH/lima_adjust.f90 | 7 +- src/MNH/lima_ccn_activation.f90 | 9 +- src/MNH/lima_warm_nucl.f90 | 6 +- src/MNH/mesonh.f90 | 6 +- src/MNH/mnh2lpdm.f90 | 7 +- src/MNH/mnhopen_aux_io_surf.f90 | 8 +- src/MNH/mode_extrapol.f90 | 77 +- src/MNH/mode_fgau.f90 | 27 +- src/MNH/mode_gridproj.f90 | 36 +- src/MNH/mode_pos.f90 | 31 +- src/MNH/mode_thermo.f90 | 17 +- src/MNH/mode_tmat.f90 | 27 +- src/MNH/mode_zsrpun.f90 | 19 +- src/MNH/one_wayn.f90 | 7 +- src/MNH/prep_ideal_case.f90 | 6 - src/MNH/pressurez.f90 | 7 +- src/MNH/radiations.f90 | 9 +- src/MNH/rain_ice.f90 | 5 +- src/MNH/rain_ice_red.f90 | 9 +- src/MNH/read_all_data_grib_case.f90 | 116 +-- src/MNH/read_chem_data_netcdf_case.f90 | 22 +- src/MNH/read_exsegn.f90 | 5 +- src/MNH/read_surf_mnh.f90 | 12 +- src/MNH/retrieve1_nest_infon.f90 | 9 +- src/MNH/shallow_mf.f90 | 14 +- src/MNH/spawn_model2.f90 | 13 +- src/MNH/spawning.f90 | 4 +- src/MNH/spec_ver_int.f90 | 16 +- src/MNH/test_nam_var.f90 | 7 +- src/MNH/update_nsv.f90 | 16 +- src/MNH/write_lfin.f90 | 17 +- src/MNH/zdiffusetup.f90 | 41 +- 97 files changed, 1549 insertions(+), 1482 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_argslist_ll.f90 b/src/LIB/SURCOUCHE/src/mode_argslist_ll.f90 index 75cf82b4e..c88faab8c 100644 --- a/src/LIB/SURCOUCHE/src/mode_argslist_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_argslist_ll.f90 @@ -1,16 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- !! ####################### MODULE MODE_ARGSLIST_ll @@ -55,6 +47,7 @@ !! Modifications !! ------------- ! Original May 19, 1998 +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! !------------------------------------------------------------------------------- ! @@ -100,6 +93,8 @@ ! !* 0.1 declarations of arguments ! + use mode_msg + IMPLICIT NONE ! TYPE(LIST1D_ll), POINTER :: TPLIST ! list of fields @@ -116,8 +111,7 @@ !* 1. Test value of HDIR ! IF (HDIR /= "X" .AND. HDIR /= "Y") THEN - WRITE(*,*) 'Error ADD1DFIELD : Bad HDIR argument' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'ADD1DFIELD', 'bad HDIR argument ('//HDIR//')' ) ENDIF ! !------------------------------------------------------------------------------- diff --git a/src/LIB/SURCOUCHE/src/mode_distriblb.f90 b/src/LIB/SURCOUCHE/src/mode_distriblb.f90 index e3d13ec6f..26ff6d6d2 100644 --- a/src/LIB/SURCOUCHE/src/mode_distriblb.f90 +++ b/src/LIB/SURCOUCHE/src/mode_distriblb.f90 @@ -1,17 +1,11 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!Correction : -! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 +! Modifications: +! J. Escobar 15/09/2015: WENO5 & JPHEXT <> 1 +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !----------------------------------------------------------------- ! ############################# @@ -105,10 +99,12 @@ END SUBROUTINE GET_DISTRIB_LB !! Original 23/09/98 !------------------------------------------------------------------------------- ! -USE MODD_PARAMETERS_ll,ONLY : JPHEXT -USE MODD_VAR_ll, ONLY : TCRRT_PROCONF -USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll -USE MODE_TOOLS_ll, ONLY : GET_INTERSECTION_ll,GET_GLOBALDIMS_ll,LWEST_ll +USE MODD_PARAMETERS_ll, ONLY: JPHEXT +USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll +USE MODD_VAR_ll, ONLY: TCRRT_PROCONF + +use mode_msg +USE MODE_TOOLS_ll, ONLY: GET_INTERSECTION_ll, GET_GLOBALDIMS_ll, LWEST_ll !* 0. DECLARATIONS ! ------------ @@ -150,8 +146,7 @@ CASE('READ') CASE('WRITE') YMODE = 'PHYS' CASE default - WRITE(*,*) 'Error in GET_DISTRIBX_LB...' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'GET_DISTRIBX_LB', 'invalid dummy argument HMODE ('//trim(HMODE)//')' ) END SELECT ! CALL GET_GLOBALDIMS_ll(IIMAX_ll, IJMAX_ll) @@ -219,8 +214,7 @@ IF (IINFO /= 1) THEN ! no empty intersection KJB=IYORI + IYOR3DX -1 KJE=IYENDI+ IYOR3DX- 1 ELSE - WRITE(*,*) 'Error in GET_DISTRIBX_LB...' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'GET_DISTRIBX_LB', 'invalid dummy argument HCOORD ('//trim(HCOORD)//')' ) ENDIF END IF @@ -314,10 +308,12 @@ END SUBROUTINE GET_DISTRIBX_LB !! Original 23/09/98 !------------------------------------------------------------------------------- ! -USE MODD_PARAMETERS_ll,ONLY : JPHEXT -USE MODD_VAR_ll, ONLY : TCRRT_PROCONF -USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll -USE MODE_TOOLS_ll, ONLY : GET_INTERSECTION_ll,GET_GLOBALDIMS_ll,LSOUTH_ll +USE MODD_PARAMETERS_ll, ONLY: JPHEXT +USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll +USE MODD_VAR_ll, ONLY: TCRRT_PROCONF + +use mode_msg +USE MODE_TOOLS_ll, ONLY: GET_INTERSECTION_ll, GET_GLOBALDIMS_ll, LSOUTH_ll !* 0. DECLARATIONS ! ------------ !* 0.1 declarations of arguments @@ -356,8 +352,7 @@ CASE('READ') CASE('WRITE') YMODE = 'PHYS' CASE default - WRITE(*,*) 'Error in GET_DISTRIBX_LB...' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'GET_DISTRIBY_LB', 'invalid dummy argument HMODE ('//trim(HMODE)//')' ) END SELECT ! CALL GET_GLOBALDIMS_ll(IIMAX_ll, IJMAX_ll) diff --git a/src/LIB/SURCOUCHE/src/mode_ga.f90 b/src/LIB/SURCOUCHE/src/mode_ga.f90 index 635888394..9a2d05b6d 100644 --- a/src/LIB/SURCOUCHE/src/mode_ga.f90 +++ b/src/LIB/SURCOUCHE/src/mode_ga.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -8,6 +8,7 @@ ! Modifications: ! J. Escobar 05/02/2015: use JPHEXT from MODD_PARAMETERS_ll ! P. Wautelet 14/12/2018: split from fmwrit_ll.f90 +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !----------------------------------------------------------------- #ifdef MNH_GA MODULE MODE_GA @@ -41,6 +42,7 @@ MODULE MODE_GA USE MODD_PARAMETERS_ll, ONLY: JPHEXT USE MODE_GATHER_ll, ONLY: GET_DOMWRITE_ll + use mode_msg USE MODE_SCATTER_ll, ONLY: GET_DOMREAD_ll USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll @@ -58,7 +60,7 @@ MODULE MODE_GA stack = heap !gstatus_ga = ma_init(MT_F_DBL, stack/ISNPROC, heap/ISNPROC) gstatus_ga = ma_init(MT_F_DBL, stack, heap) - if ( .not. gstatus_ga ) STOP " MA_INIT FAILED " + if ( .not. gstatus_ga ) call Print_msg( NVERB_FATAL, 'GEN', 'MNH_INIT_GA', 'MA_INIT failed' ) ! ! Initialize GA library ! diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 index 5a5fcddb8..495fc3bbb 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 @@ -11,6 +11,7 @@ ! J. Escobar 17/07/2018: reintroduce needed MPI_BARRIER in IO_Field_read_byfield_X3 ! P. Wautelet 29/01/2019: small bug correction in time measurement in IO_Field_read_byfield_X2 ! P. Wautelet 05/03/2019: rename IO subroutines and modules +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !----------------------------------------------------------------- #ifdef MNH_MPI_DOUBLE_PRECISION @@ -753,12 +754,12 @@ IF (IRESP==0) THEN ! IF (YDIR == 'XX' .OR. YDIR =='YY') THEN ! XX or YY Scatter Field - STOP " XX ou YY NON PREVU SUR BG POUR LE MOMENT " + call Print_msg( NVERB_FATAL, 'GEN', 'IO_Field_read_byfield_X3', 'XX or YY not yet planned on Blue Gene' ) CALL SCATTER_XXFIELD(YDIR,ZFIELDP,PFIELD,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM) ELSE IF (YDIR == 'XY') THEN IF (LPACK .AND. L2D) THEN ! 2D compact case - STOP " L2D NON PREVU SUR BG POUR LE MOMENT " + call Print_msg( NVERB_FATAL, 'GEN', 'IO_Field_read_byfield_X3', 'L2D not yet planned on Blue Gene' ) CALL SCATTER_XXFIELD('XX',ZFIELDP(:,1,:),PFIELD(:,JPHEXT+1,:),TPFILE%NMASTER_RANK,TPFILE%NMPICOMM) PFIELD(:,:,:) = SPREAD(PFIELD(:,JPHEXT+1,:),DIM=2,NCOPIES=IHEXTOT) ELSE @@ -792,7 +793,7 @@ IF (IRESP==0) THEN END IF ELSE ! Broadcast Field - STOP " Broadcast Field NON PREVU SUR BG POUR LE MOMENT " + call Print_msg( NVERB_FATAL, 'GEN', 'IO_Field_read_byfield_X3', 'broadcast field not yet planned on Blue Gene' ) CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF CALL SECOND_MNH2(T0) diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 index 5eddb048c..a3e33e2c9 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 @@ -9,6 +9,7 @@ ! P. Wautelet 10/01/2019: do not write scalars in Z-split files ! P. Wautelet 10/01/2019: write header also for Z-split files ! P. Wautelet 05/03/2019: rename IO subroutines and modules +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !----------------------------------------------------------------- #ifdef MNH_MPI_DOUBLE_PRECISION @@ -901,11 +902,11 @@ CONTAINS IK_RANK = TZFILE%NMASTER_RANK ! IF (YDIR == 'XX' .OR. YDIR =='YY') THEN - STOP " XX NON PREVU SUR BG POUR LE MOMENT " + call Print_msg( NVERB_FATAL, 'GEN', 'IO_Field_write_byfield_X3', 'XX not yet planned on Blue Gene' ) CALL GATHER_XXFIELD(YDIR,PFIELD,ZFIELDP,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM) ELSEIF (YDIR == 'XY') THEN IF (LPACK .AND. L2D) THEN - STOP " L2D NON PREVU SUR BG POUR LE MOMENT " + call Print_msg( NVERB_FATAL, 'GEN', 'IO_Field_write_byfield_X3', 'L2D not yet planned on Blue Gene' ) CALL GATHER_XXFIELD('XX',PFIELD(:,JPHEXT+1,:),ZFIELDP(:,1,:),TPFILE%NMASTER_RANK,TPFILE%NMPICOMM) ELSE CALL SECOND_MNH2(T0) @@ -2661,251 +2662,263 @@ IMI = GET_CURRENT_MODEL_INDEX() ! DO JI = 1,SIZE(TPOUTPUT%NFIELDLIST) IDX = TPOUTPUT%NFIELDLIST(JI) - SELECT CASE (TFIELDLIST(IDX)%NDIMS) + NDIMS: SELECT CASE (TFIELDLIST(IDX)%NDIMS) ! !0D output ! CASE (0) - SELECT CASE (TFIELDLIST(IDX)%NTYPE) + NTYPE0D: SELECT CASE (TFIELDLIST(IDX)%NTYPE) ! !0D real ! CASE (TYPEREAL) IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X0D) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_X0D is NOT allocated ' ) END IF IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X0D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_X0D%DATA is NOT associated' ) END IF IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X0D(IMI)%DATA) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 0D logical fields') + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': CLBTYPE/=NONE not allowed for 0D real fields' ) END IF ! !0D integer ! CASE (TYPEINT) IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N0D) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_N0D is NOT allocated ' ) END IF IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N0D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_N0D%DATA is NOT associated' ) END IF IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N0D(IMI)%DATA) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 0D integer fields') + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': CLBTYPE/=NONE not allowed for 0D integer fields' ) END IF ! !0D logical ! CASE (TYPELOG) IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_L0D) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_L0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_L0D is NOT allocated ' ) END IF IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_L0D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_L0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_L0D%DATA is NOT associated' ) END IF IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_L0D(IMI)%DATA) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 0D logical fields') + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': CLBTYPE/=NONE not allowed for 0D logical fields' ) END IF ! !0D string ! CASE (TYPECHAR) IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_C0D) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_C0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_C0D is NOT allocated ' ) END IF IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_C0D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_C0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_C0D%DATA is NOT associated' ) END IF IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_C0D(IMI)%DATA) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 0D character fields') + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': CLBTYPE/=NONE not allowed for 0D character fields' ) END IF ! !0D date/time ! CASE (TYPEDATE) IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_T0D) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_T0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_T0D is NOT allocated ' ) END IF IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_T0D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_T0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_T0D%DATA is NOT associated' ) END IF IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_T0D(IMI)%DATA) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 0D date/time fields') + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': CLBTYPE/=NONE not allowed for 0D date/time fields' ) END IF ! !0D other types ! CASE DEFAULT - PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 0D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': type not yet supported for 0D output' ) + END SELECT NTYPE0D ! !1D output ! CASE (1) - SELECT CASE (TFIELDLIST(IDX)%NTYPE) + NTYPE1D: SELECT CASE (TFIELDLIST(IDX)%NTYPE) ! !1D real ! CASE (TYPEREAL) IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X1D) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_X1D is NOT allocated ' ) END IF IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X1D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_X1D%DATA is NOT associated' ) END IF IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X1D(IMI)%DATA) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 1D real fields') + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': CLBTYPE/=NONE not allowed for 1D real fields' ) END IF ! ! ! !1D integer ! ! ! CASE (TYPEINT) ! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N1D) ) THEN -! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': TFIELD_N1D is NOT allocated ' ) ! END IF ! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N1D(IMI)%DATA) ) THEN -! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': TFIELD_N1D%DATA is NOT associated' ) ! END IF ! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN ! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N1D(IMI)%DATA) ! ELSE -! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 1D integer fields') +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': CLBTYPE/=NONE not allowed for 1D integer fields' ) ! END IF ! ! ! !1D logical ! ! ! CASE (TYPELOG) ! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_L1D) ) THEN -! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_L1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': TFIELD_L1D is NOT allocated ' ) ! END IF ! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_L1D(IMI)%DATA) ) THEN -! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_L1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': TFIELD_L1D%DATA is NOT associated' ) ! END IF ! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN ! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_L1D(IMI)%DATA) ! ELSE -! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 1D logical fields') +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': CLBTYPE/=NONE not allowed for 1D logical fields' ) ! END IF ! ! ! !1D string ! ! ! CASE (TYPECHAR) ! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_C1D) ) THEN -! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_C1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': TFIELD_C1D is NOT allocated ' ) ! END IF ! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_C1D(IMI)%DATA) ) THEN -! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_C1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': TFIELD_C1D%DATA is NOT associated' ) ! END IF ! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN ! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_C1D(IMI)%DATA) ! ELSE -! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 1D character fields') +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': CLBTYPE/=NONE not allowed for 1D character fields' ) ! END IF ! !1D other types ! CASE DEFAULT - PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 1D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': type not yet supported for 1D output' ) + END SELECT NTYPE1D ! !2D output ! CASE (2) - SELECT CASE (TFIELDLIST(IDX)%NTYPE) + NTYPE2D: SELECT CASE (TFIELDLIST(IDX)%NTYPE) ! !2D real ! CASE (TYPEREAL) IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X2D) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X2D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_X2D is NOT allocated ' ) END IF IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X2D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X2D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_X2D%DATA is NOT associated' ) END IF IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X2D(IMI)%DATA) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 2D real fields') + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': CLBTYPE/=NONE not allowed for 2D real fields' ) END IF ! !2D integer ! CASE (TYPEINT) IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N2D) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N2D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_N2D is NOT allocated ' ) END IF IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N2D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N2D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_N2D%DATA is NOT associated' ) END IF IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N2D(IMI)%DATA) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 2D integer fields') + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': CLBTYPE/=NONE not allowed for 2D integer fields' ) END IF ! !2D other types ! CASE DEFAULT - PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 2D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': type not yet supported for 2D output' ) + END SELECT NTYPE2D ! !3D output ! CASE (3) - SELECT CASE (TFIELDLIST(IDX)%NTYPE) + NTYPE3D: SELECT CASE (TFIELDLIST(IDX)%NTYPE) ! !3D real ! CASE (TYPEREAL) IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X3D) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X3D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_X3D is NOT allocated ' ) END IF IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X3D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X3D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_X3D%DATA is NOT associated' ) END IF IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X3D(IMI)%DATA) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not (yet) allowed for 3D real fields') + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': CLBTYPE/=NONE not (yet) allowed for 3D real fields' ) !PW: TODO?: add missing field in TFIELDLIST? !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X3D(IMI)%DATA) END IF @@ -2914,17 +2927,18 @@ DO JI = 1,SIZE(TPOUTPUT%NFIELDLIST) ! CASE (TYPEINT) IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N3D) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N3D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_N3D is NOT allocated ' ) END IF IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N3D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N3D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_N3D%DATA is NOT associated' ) END IF IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N3D(IMI)%DATA) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not (yet) allowed for 3D integer fields') + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': CLBTYPE/=NONE not (yet) allowed for 3D integer fields' ) !PW: TODO?: add missing field in TFIELDLIST? !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_N3D(IMI)%DATA) END IF @@ -2932,30 +2946,31 @@ DO JI = 1,SIZE(TPOUTPUT%NFIELDLIST) !3D other types ! CASE DEFAULT - PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 3D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': type not yet supported for 3D output' ) + END SELECT NTYPE3D ! !4D output ! CASE (4) - SELECT CASE (TFIELDLIST(IDX)%NTYPE) + NTYPE4D: SELECT CASE (TFIELDLIST(IDX)%NTYPE) ! !4D real ! CASE (TYPEREAL) IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X4D) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X4D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_X4D is NOT allocated ' ) END IF IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X4D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X4D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_X4D%DATA is NOT associated' ) END IF IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X4D(IMI)%DATA) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not (yet) allowed for 4D real fields') + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': CLBTYPE/=NONE not (yet) allowed for 4D real fields' ) !PW: TODO?: add missing field in TFIELDLIST? !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X4D(IMI)%DATA) END IF @@ -2963,30 +2978,31 @@ DO JI = 1,SIZE(TPOUTPUT%NFIELDLIST) !4D other types ! CASE DEFAULT - PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 4D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': type not yet supported for 4D output' ) + END SELECT NTYPE4D ! ! ! !5D output ! ! ! CASE (5) -! SELECT CASE (TFIELDLIST(IDX)%NTYPE) +! NTYPE5D: SELECT CASE (TFIELDLIST(IDX)%NTYPE) ! ! ! !5D real ! ! ! CASE (TYPEREAL) ! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X5D) ) THEN -! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X5D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': TFIELD_X5D is NOT allocated ' ) ! END IF ! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) ) THEN -! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X5D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': TFIELD_X5D%DATA is NOT associated' ) ! END IF ! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN ! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) ! ELSE -! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not (yet) allowed for 5D real fields') +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': CLBTYPE/=NONE not (yet) allowed for 5D real fields' ) ! !PW: TODO?: add missing field in TFIELDLIST? ! !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) ! END IF @@ -2994,30 +3010,30 @@ DO JI = 1,SIZE(TPOUTPUT%NFIELDLIST) ! !5D other types ! ! ! CASE DEFAULT -! PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 5D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END SELECT +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': type not yet supported for 5D output' ) +! END SELECT NTYPE5D ! ! ! !6D output ! ! ! CASE (6) -! SELECT CASE (TFIELDLIST(IDX)%NTYPE) +! NTYPE6D: SELECT CASE (TFIELDLIST(IDX)%NTYPE) ! ! ! !6D real ! ! ! CASE (TYPEREAL) -! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X6D) ) THEN -! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X6D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': TFIELD_X6D is NOT allocated ' ) ! END IF ! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) ) THEN -! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X6D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': TFIELD_X6D%DATA is NOT associated' ) ! END IF ! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN ! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) ! ELSE -! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not (yet) allowed for 6D real fields') +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': CLBTYPE/=NONE not (yet) allowed for 6D real fields' ) ! !PW: TODO?: add missing field in TFIELDLIST? ! !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) ! END IF @@ -3025,16 +3041,16 @@ DO JI = 1,SIZE(TPOUTPUT%NFIELDLIST) ! !6D other types ! ! ! CASE DEFAULT -! PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 4D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END SELECT +! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & +! ': type not yet supported for 6D output' ) +! END SELECT NTYPE6D ! !Other number of dimensions ! CASE DEFAULT - PRINT *,'FATAL: IO_Fieldlist_write: number of dimensions not yet supported for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': number of dimensions not yet supported' ) + END SELECT NDIMS END DO ! END SUBROUTINE IO_Fieldlist_write diff --git a/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 b/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 index 19fcea8e5..805e607bc 100644 --- a/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 @@ -3,6 +3,9 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- +! Modifications: +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +!----------------------------------------------------------------- ! ################# MODULE MODE_LB_ll @@ -117,6 +120,7 @@ USE MODD_VAR_ll, ONLY : TCRRT_COMDATA ! USE MODE_ARGSLIST_ll, ONLY : ADD2DFIELD_ll + use mode_msg USE MODE_NEST_ll, ONLY : LBFINE2COARSE ! IMPLICIT NONE @@ -129,6 +133,7 @@ ! !* 0.2 declarations of local variables ! + CHARACTER(len=10) :: ymodel !String for error message INTEGER :: ICOARSE TYPE(LCRSPD_ll), POINTER :: TZPAR, TZCHILD TYPE(LPROC_COM_DATA_ll), POINTER :: TZLCOMDATA @@ -142,8 +147,7 @@ ! IF (.NOT.ASSOCIATED(TCRRT_COMDATA%TCHILDREN) & & .OR. .NOT.ASSOCIATED(TCRRT_COMDATA%TP2C_DATA)) THEN - WRITE(*,*) 'Problem in set_lbfield_ll' - WRITE(*,*) 'The current model has no child' + call Print_msg( NVERB_WARNING, 'GEN', 'SET_LB2DFIELD_ll', 'the current model has no child' ) RETURN ENDIF ! @@ -165,9 +169,8 @@ TZLCOMDATA => TZLCOMDATA%TNEXT ENDDO IF (.NOT.ASSOCIATED(TZLCOMDATA)) THEN - WRITE(*,*) 'Error SET_LBFIELD_ll : ', KMODEL, & - ' is not a child of the current model' - STOP + write( ymodel, '( I10 )' ) KMODEL + call Print_msg( NVERB_FATAL, 'GEN', 'SET_LB2DFIELD_ll', trim(ymodel)//' is not a child of the current model' ) ENDIF ! !* 2.2 Point to the parent2child data structure @@ -177,9 +180,8 @@ TZP2CDATA => TZP2CDATA%TNEXT ENDDO IF (.NOT.ASSOCIATED(TZP2CDATA)) THEN - WRITE(*,*) 'Error SET_LBFIELD_ll : ', KMODEL, & - ' is not a child of the current model' - STOP + write( ymodel, '( I10 )' ) KMODEL + call Print_msg( NVERB_FATAL, 'GEN', 'SET_LB2DFIELD_ll', trim(ymodel)//' is not a child of the current model' ) ENDIF ! !* 2.3 Point to the appropriate side @@ -281,6 +283,7 @@ USE MODD_VAR_ll, ONLY : TCRRT_COMDATA ! USE MODE_ARGSLIST_ll, ONLY : ADD3DFIELD_ll + use mode_msg USE MODE_NEST_ll, ONLY : LBFINE2COARSE ! ! @@ -294,6 +297,7 @@ ! !* 0.2 declarations of local variables ! + CHARACTER(len=10) :: ymodel !String for error message INTEGER :: ICOARSE TYPE(LCRSPD_ll), POINTER :: TZPAR, TZCHILD TYPE(LPROC_COM_DATA_ll), POINTER :: TZLCOMDATA @@ -307,8 +311,7 @@ ! IF (.NOT.ASSOCIATED(TCRRT_COMDATA%TCHILDREN) & & .OR. .NOT.ASSOCIATED(TCRRT_COMDATA%TP2C_DATA)) THEN - WRITE(*,*) 'Problem in set_lbfield_ll' - WRITE(*,*) 'The current model has no child' + call Print_msg( NVERB_WARNING, 'GEN', 'SET_LB3DFIELD_ll', 'the current model has no child' ) RETURN ENDIF ! @@ -330,9 +333,8 @@ TZLCOMDATA => TZLCOMDATA%TNEXT ENDDO IF (.NOT.ASSOCIATED(TZLCOMDATA)) THEN - WRITE(*,*) 'Error SET_LBFIELD_ll : ', KMODEL, & - ' is not a child of the current model' - STOP + write( ymodel, '( I10 )' ) KMODEL + call Print_msg( NVERB_FATAL, 'GEN', 'SET_LB3DFIELD_ll', trim(ymodel)//' is not a child of the current model' ) ENDIF ! !* 2.2 Point to the parent2child data structure @@ -342,9 +344,8 @@ TZP2CDATA => TZP2CDATA%TNEXT ENDDO IF (.NOT.ASSOCIATED(TZP2CDATA)) THEN - WRITE(*,*) 'Error SET_LBFIELD_ll : ', KMODEL, & - ' is not a child of the current model' - STOP + write( ymodel, '( I10 )' ) KMODEL + call Print_msg( NVERB_FATAL, 'GEN', 'SET_LB3DFIELD_ll', trim(ymodel)//' is not a child of the current model' ) ENDIF ! !* 2.3 Point to the appropriate side @@ -433,7 +434,9 @@ !! USE MODD_STRUCTURE_ll, ONLY : LPARENT2CHILD_DATA_ll, PARENT2CHILD_DATA_ll USE MODD_VAR_ll, ONLY : TCRRT_COMDATA + USE MODE_CONSTRUCT_ll, ONLY : CLEANLIST_LCRSPD + use mode_msg ! IMPLICIT NONE ! @@ -475,8 +478,7 @@ ! ELSE ! - WRITE(*,*) 'Problem in UNSET_LBFIELD' - WRITE(*,*) 'The current model is 1' + call Print_msg( NVERB_WARNING, 'GEN', 'UNSET_LBFIELD', 'problem: the current model is 1' ) ! ENDIF ! @@ -1671,6 +1673,7 @@ USE MODD_PARAMETERS_ll, ONLY: JPHEXT USE MODE_DISTRIB_LB + use mode_msg ! IMPLICIT NONE ! @@ -1690,6 +1693,7 @@ ! LOCAL VARIABLES CHARACTER(4) :: YLBTYPEX ! LB type : 'LBX','LBXU' CHARACTER(4) :: YLBTYPEY ! LB type : 'LBY','LBYV' + character(len=10) :: ydim1, ydim2 !Strings for error messages ! local indices for the intersection of the local subdomain and the LB zone INTEGER :: IIB_LOCLB ! indice I Beginning in x direction INTEGER :: IJB_LOCLB ! indice J Beginning in y direction @@ -1711,8 +1715,7 @@ YLBTYPEX = 'LBXU' YLBTYPEY = 'LBYV' ELSE - WRITE(*,*) "ERROR: from SET_LB_FIELD_ll, UNKNOWN LB TYPE", HLBTYPE - CALL ABORT + call Print_msg( NVERB_FATAL, 'GEN', 'SET_LB_FIELD_ll', 'unknown HLBTYPE ('//trim(HLBTYPE)//')' ) ENDIF ! ! get the local indices of the West-East LB arrays for the local subdomain @@ -1720,9 +1723,10 @@ ! and the corresponding indices for the LB global arrays CALL GET_DISTRIB_LB(YLBTYPEX,ISP,'FM','WRITE',NRIMX,IIB_GLBLB,IIE_GLBLB,IJB_GLBLB,IJE_GLBLB) IF ( IIE_LOCLB-IIB_LOCLB /= IIE_GLBLB-IIB_GLBLB ) THEN - WRITE(*,*) "ERROR: from SET_LB_FIELD_ll, West-East IIE_LOCLB-IIB_LOCLB =",& - IIE_LOCLB-IIB_LOCLB, " /= IIE_GLBLB-IIB_GLBLB =", IIE_GLBLB-IIB_GLBLB - CALL ABORT + write( ydim1, '( I10 )' ) IIE_LOCLB-IIB_LOCLB + write( ydim2, '( I10 )' ) IIE_GLBLB-IIB_GLBLB + call Print_msg( NVERB_FATAL, 'GEN', 'SET_LB_FIELD_ll', 'West-East IIE_LOCLB-IIB_LOCL='//trim(ydim1)// & + ' /= IIE_GLBLB-IIB_GLBLB='//trim(ydim2) ) ENDIF LOCLBSIZEW = 0 LOCLBSIZEE = 0 @@ -1744,8 +1748,7 @@ PLBXFIELD(IIB_LOCLB:IIE_LOCLB,:,:) = PFIELD(GLBLBBEGIN:GLBLBEND,:,:) ! PLBXFIELD(NRIMX+1+IIB_LOCLB:NRIMX+1+IIE_LOCLB,:,:) = PFIELD(GLBLBBEGIN:GLBLBEND,:,:) ELSE - WRITE(*,*) "ERROR: from SET_LB_FIELD_ll, This type of partition is not allowed !" - CALL ABORT + call Print_msg( NVERB_FATAL, 'GEN', 'SET_LB_FIELD_ll', 'this type of partition is not allowed' ) ENDIF ENDIF !( IIB_LOCLB /= 0 ) ! @@ -1759,9 +1762,10 @@ ! and the corresponding indices for the LB global arrays CALL GET_DISTRIB_LB(YLBTYPEY,ISP,'FM','WRITE',NRIMY,IIB_GLBLB,IIE_GLBLB,IJB_GLBLB,IJE_GLBLB) IF ( IJE_LOCLB-IJB_LOCLB /= IJE_GLBLB-IJB_GLBLB ) THEN - WRITE(*,*) "ERROR: from SET_LB_FIELD_ll, South-North IJE_LOCLB-IJB_LOCLB =",& - IJE_LOCLB-IJB_LOCLB, " /= IJE_GLBLB-IJB_GLBLB =", IJE_GLBLB-IJB_GLBLB - CALL ABORT + write( ydim1, '( I10 )' ) IJE_LOCLB-IJB_LOCLB + write( ydim2, '( I10 )' ) IJE_GLBLB-IJB_GLBLB + call Print_msg( NVERB_FATAL, 'GEN', 'SET_LB_FIELD_ll', 'South-North IJE_LOCLB-IJB_LOCLB='//trim(ydim1)// & + ' /= IJE_GLBLB-IJB_GLBLB='//trim(ydim2) ) ENDIF IF ( IJB_LOCLB /= 0 ) THEN ! if the LB zone of the local subdomain is non-empty IF ( IJB_GLBLB <= NRIMY+JPHEXT .AND. IJE_GLBLB >= NRIMY+JPHEXT+1 ) THEN ! the local south and north LB zones are non empty @@ -1777,8 +1781,7 @@ PLBYFIELD(:,IJB_LOCLB:IJE_LOCLB,:) = PFIELD(:,GLBLBBEGIN:GLBLBEND,:) ! PLBYFIELD(:,NRIMY+1+IJB_LOCLB:NRIMY+1+IJE_LOCLB,:) = PFIELD(:,GLBLBBEGIN:GLBLBEND,:) ELSE - WRITE(*,*) "ERROR: from SET_LB_FIELD_ll, This type of partition is not allowed !" - CALL ABORT + call Print_msg( NVERB_FATAL, 'GEN', 'SET_LB_FIELD_ll', 'this type of partition is not allowed' ) ENDIF ENDIF !( IJB_LOCLB /= 0 ) diff --git a/src/LIB/SURCOUCHE/src/mode_ls_ll.f90 b/src/LIB/SURCOUCHE/src/mode_ls_ll.f90 index 0626ce6ba..0af00e6c6 100644 --- a/src/LIB/SURCOUCHE/src/mode_ls_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_ls_ll.f90 @@ -1,15 +1,10 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !----------------------------------------------------------------- ! ################# @@ -59,6 +54,8 @@ !------------------------------------------------------------------------------ ! USE MODD_STRUCTURE_ll + + use mode_msg ! CONTAINS ! @@ -120,6 +117,7 @@ ! !* 0.2 declarations of local variables ! + character(len=10) :: ymodel ! String for error message INTEGER :: ICOARSE TYPE(LCRSPD_ll), POINTER :: TZPAR, TZCHILD TYPE(LPROC_COM_DATA_ll), POINTER :: TZLCOMDATA @@ -149,9 +147,8 @@ TZLCOMDATA => TZLCOMDATA%TNEXT ENDDO IF (.NOT.ASSOCIATED(TZLCOMDATA)) THEN - WRITE(*,*) 'Error SET_LS2DFIELD_1WAY_ll : ', KMODEL, & - ' is not a child of the current model' - STOP + write( ymodel, '( I10 )' ) kmodel + call Print_msg( NVERB_FATAL, 'GEN', 'SET_LS2DFIELD_1WAY_ll', 'model '//trim(ymodel)//' is not a child of the current model' ) ENDIF ! !* 2.2 Point to the parent2child data structure @@ -161,9 +158,8 @@ TZP2CDATA => TZP2CDATA%TNEXT ENDDO IF (.NOT.ASSOCIATED(TZP2CDATA)) THEN - WRITE(*,*) 'Error SET_LS2DFIELD_1WAY_ll : ', KMODEL, & - ' is not a child of the current model' - STOP + write( ymodel, '( I10 )' ) kmodel + call Print_msg( NVERB_FATAL, 'GEN', 'SET_LS2DFIELD_1WAY_ll', 'model '//trim(ymodel)//' is not a child of the current model' ) ENDIF ! TZPAR => TZP2CDATA%TELT%TSEND_1WAY_LS @@ -239,6 +235,7 @@ ! !* 0.2 declarations of local variables ! + character(len=10) :: ymodel ! String for error message INTEGER :: ICOARSE TYPE(LCRSPD_ll), POINTER :: TZPAR, TZCHILD TYPE(LPROC_COM_DATA_ll), POINTER :: TZLCOMDATA @@ -268,9 +265,8 @@ TZLCOMDATA => TZLCOMDATA%TNEXT ENDDO IF (.NOT.ASSOCIATED(TZLCOMDATA)) THEN - WRITE(*,*) 'Error SET_LS3DFIELD_1WAY_ll : ', KMODEL, & - ' is not a child of the current model' - STOP + write( ymodel, '( I10 )' ) kmodel + call Print_msg( NVERB_FATAL, 'GEN', 'SET_LS3DFIELD_1WAY_ll', 'model '//trim(ymodel)//' is not a child of the current model' ) ENDIF ! !* 2.2 Point to the parent2child data structure @@ -280,9 +276,8 @@ TZP2CDATA => TZP2CDATA%TNEXT ENDDO IF (.NOT.ASSOCIATED(TZP2CDATA)) THEN - WRITE(*,*) 'Error SET_LS3DFIELD_1WAY_ll : ', KMODEL, & - ' is not a child of the current model' - STOP + write( ymodel, '( I10 )' ) kmodel + call Print_msg( NVERB_FATAL, 'GEN', 'SET_LS3DFIELD_1WAY_ll', 'model '//trim(ymodel)//' is not a child of the current model' ) ENDIF ! TZPAR => TZP2CDATA%TELT%TSEND_1WAY_LS @@ -617,6 +612,7 @@ ! !* 0.2 declarations of local variables ! + character(len=10) :: ymodel ! String for error message TYPE(LPARENT2CHILD_DATA_ll), POINTER :: TZP2CDATA TYPE(LPROC_COM_DATA_ll), POINTER :: TZLCOMDATA ! @@ -629,9 +625,8 @@ TZLCOMDATA => TZLCOMDATA%TNEXT ENDDO IF (.NOT.ASSOCIATED(TZLCOMDATA)) THEN - WRITE(*,*) 'Error UNSET_LSFIELD_2WAY_ll : ', KMODEL, & - ' is not a child of the current model' - STOP + write( ymodel, '( I10 )' ) kmodel + call Print_msg( NVERB_FATAL, 'GEN', 'UNSET_LSFIELD_2WAY_ll', 'model '//trim(ymodel)//' is not a child of the current model' ) ENDIF ! !* 2.2 Point to the parent2child data structure @@ -641,9 +636,8 @@ TZP2CDATA => TZP2CDATA%TNEXT ENDDO IF (.NOT.ASSOCIATED(TZP2CDATA)) THEN - WRITE(*,*) 'Error UNSET_LSFIELD_2WAY_ll : ', KMODEL, & - ' is not a child of the current model' - STOP + write( ymodel, '( I10 )' ) kmodel + call Print_msg( NVERB_FATAL, 'GEN', 'UNSET_LSFIELD_2WAY_ll', 'model '//trim(ymodel)//' is not a child of the current model' ) ENDIF ! CALL CLEANLIST_LCRSPD(TZLCOMDATA%TELT%TSEND_2WAY_LS) diff --git a/src/LIB/SURCOUCHE/src/mode_mppdb.f90 b/src/LIB/SURCOUCHE/src/mode_mppdb.f90 index ae15313af..78ef176e9 100644 --- a/src/LIB/SURCOUCHE/src/mode_mppdb.f90 +++ b/src/LIB/SURCOUCHE/src/mode_mppdb.f90 @@ -1,11 +1,11 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2011-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- MODULE MODE_MPPDB ! -! Modifs : +! Modifications: !! J.Escobar 23/10/2012: correct CHECK_LB & format print output !! M.Moge 05/02/2015: MPPDB_CHECK_SURFEX2D and MPPDB_CHECK_SURFEX3D + bug fix in MPPDB_CHECK2D and MPPDB_CHECK3D (call MPI_AllReduce at the beginning) ! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 @@ -14,8 +14,13 @@ MODULE MODE_MPPDB ! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN ! Philippe Wautelet: 22/01/2019: use standard FLUSH statement instead of non standard intrinsics ! Philippe Wautelet: 22/01/2019: use sleep_c subroutine instead of non-standard call system +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +!----------------------------------------------------------------- ! use ISO_FORTRAN_ENV, only: OUTPUT_UNIT + + use mode_msg + use modi_tools_c IMPLICIT NONE @@ -154,7 +159,8 @@ CONTAINS CALL MPI_INFO_SET (INFO_SPAWN , "wdir", MPPDB_WDIR , ierr) CALL MPI_INFO_GET (INFO_SPAWN , "wdir", 40, chaine, isset ,ierr) IF (MPPDB_DEBUG) PRINT*,"MPPDB_INIT:: FATHER :: INFO_SPAWN , wdir=",isset,chaine - IF (ierr.NE.0) STOP 'MPPDB_INIT:: PB MPI_INFO_SET "wdir" ' + if (ierr /= 0 ) call Print_msg( NVERB_FATAL, 'GEN', 'MPPDB_INIT', 'MPI_INFO_SET failed' ) + ! ELSE ! other father only do nothing but participate diff --git a/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 b/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 index 158d53136..6e450dffb 100644 --- a/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 @@ -1,17 +1,11 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!Correction : -! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 +! Modifications: +! J. Escobar 15/09/2015: WENO5 & JPHEXT <> 1 +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !----------------------------------------------------------------- ! #################### @@ -56,7 +50,9 @@ USE MODD_MPIF !JUANZ USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD - !JUANZ + !JUANZ + + use mode_msg ! CONTAINS @@ -1270,7 +1266,7 @@ ENDIF ZPTR => PARRAY(ILOC,IB:IE) ! CASE DEFAULT - STOP 'GET_GLOBALSLICE_ll : Bad HDIR argument' + call Print_msg( NVERB_FATAL, 'GEN', 'GET_1DGLOBALSLICE_ll', 'invalid HDIR dummy argument ('//hdir//')' ) ! END SELECT ! @@ -1602,7 +1598,7 @@ ENDIF ZPTR = PARRAY(ILOC,IB:IE,KKB:KKE) ! CASE DEFAULT - STOP 'GET_GLOBALSLICE_ll : Bad HDIR argument' + call Print_msg( NVERB_FATAL, 'GEN', 'GET_2DGLOBALSLICE_ll', 'invalid HDIR dummy argument ('//hdir//')' ) ! END SELECT ! @@ -1962,7 +1958,7 @@ ENDIF ZPTR => PARRAY(ILOC,IJB:IJE) ! CASE DEFAULT - STOP 'GET_SLICE_ll : Bad HDIR argument' + call Print_msg( NVERB_FATAL, 'GEN', 'GET_1DSLICE_ll', 'invalid HDIR dummy argument ('//hdir//')' ) ! END SELECT ! @@ -2320,7 +2316,7 @@ ENDIF ZPTR = PARRAY(ILOC,IJB:IJE,KKB:KKE) ! CASE DEFAULT - STOP 'GET_SLICE_ll : Bad HDIR argument' + call Print_msg( NVERB_FATAL, 'GEN', 'GET_2DSLICE_ll', 'invalid HDIR dummy argument ('//hdir//')' ) ! END SELECT ! diff --git a/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 b/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 index 91cc5b329..7dc97340a 100644 --- a/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 @@ -1,7 +1,11 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +!----------------------------------------------------------------- ! ######################## MODULE MODE_TOOLSZ_ll ! ######################## @@ -213,6 +217,7 @@ USE MODD_VAR_ll, ONLY : IP USE MODD_CONFZ , ONLY : NZ_VERB,NZ_SPLITTING ! for debug IZ=1=flat_inv; IZ=2=flat_invz ; IZ=1+2=the two + use mode_msg USE MODE_SPLITTING_ll , ONLY : def_splitting2 USE MODE_TOOLS_ll , ONLY : SLIDE_COORD !JUAN @@ -234,6 +239,7 @@ ! !* 0.2 declarations of local variables ! + character(len=10) :: yval1, yval2 ! Strings for error message INTEGER :: X_DOMAINS,Y_DOMAINS,Z_DOMAINS,X_DOMAINS_NEW LOGICAL :: PREM INTEGER :: IK @@ -244,11 +250,9 @@ ! 0. CHECK NB_PROC/NZ_PROC PREM = .FALSE. IF ( MOD(NB_PROC,KZ_PROC) .NE. 0 ) THEN - PRINT* - WRITE(*,1000) NB_PROC, KZ_PROC - PRINT* -1000 FORMAT("MODE_SPLITTINGZ::SPLITZ --> NB_PROC=", I4 ," NOT DIVISIBLE BY KZ_PROC=", I4) - STOP + write( yval1, '( I10 )' ) nb_proc + write( yval2, '( I10 )' ) kz_proc + call Print_msg( NVERB_FATAL, 'GEN', 'SPLITZ', 'NB_PROC='//trim(yval1)//' not divisible by KZ_PROC='//trim(yval2) ) ENDIF ! ! Splitting in Z possible so @@ -279,7 +283,7 @@ ! IF(HSPLITTING.EQ."P2P1SPLITT") THEN IF ((PREM).AND.(NB_PROC_XY.GT.2)) THEN - STOP "mode_toolsz_ll.f90::SPLITZ: NPROC PREMIER NON PREVUE !!! " + call Print_msg( NVERB_FATAL, 'GEN', 'SPLITZ', 'unexpected: NB_PROC_XY is a prime number' ) ! ! split x direction only on NB_PROC_XY - 1 processors ! and on reducted x-size = X_DIM - X_DIM/NB_PROC_XY -1 @@ -355,7 +359,6 @@ ENDIF END IF END IF - ! STOP ! ! Add 'Halo points' to global coordonne in X & Y direction ! diff --git a/src/LIB/SURCOUCHE/src/update_nhalo1d.f90 b/src/LIB/SURCOUCHE/src/update_nhalo1d.f90 index d899568ad..a4ac0bcac 100644 --- a/src/LIB/SURCOUCHE/src/update_nhalo1d.f90 +++ b/src/LIB/SURCOUCHE/src/update_nhalo1d.f90 @@ -2,6 +2,7 @@ !SURFEX_LIC This is part of the SURFEX software governed by the CeCILL-C licence !SURFEX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SURFEX_LIC for details. version 1. +!----------------------------------------------------------------- ! ################################################################ SUBROUTINE UPDATE_NHALO1D( NHALO, PFIELD1D, KISIZE_ll, KJSIZE_ll, KXOR, KXEND, KYOR, KYEND, HREC ) ! ################################################################ @@ -39,25 +40,26 @@ !! M.Moge 08/2015 calling ABORT if local subdomain is of size < NHALO !! (this causes problems on the boundary of the domain) !! M.Moge 08/2015 bug fix : changing the computation of IISIZE +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! -USE MODD_SURF_PAR, ONLY : NUNDEF +USE PARKIND1, ONLY: JPRB +USE YOMHOOK, ONLY: LHOOK, DR_HOOK ! +USE MODD_MPIF +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll, CRSPD_ll +USE MODD_SURF_PAR, ONLY: NUNDEF +USE MODD_VAR_ll, ONLY: NPROC, IP, YSPLITTING, NMNH_COMM_WORLD ! -USE YOMHOOK ,ONLY : LHOOK, DR_HOOK -USE PARKIND1 ,ONLY : JPRB -! +USE MODE_EXCHANGE_ll, ONLY: SEND_RECV_FIELD USE MODE_ll -USE MODE_EXCHANGE_ll, ONLY : SEND_RECV_FIELD -USE MODE_SPLITTING_ll, ONLY : SPLIT2 -USE MODD_VAR_ll, ONLY : NPROC, IP, YSPLITTING, NMNH_COMM_WORLD -USE MODD_MPIF -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll, CRSPD_ll -USE MODE_TOOLS_ll, ONLY : INTERSECTION -USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT +use mode_msg +USE MODE_SPLITTING_ll, ONLY: SPLIT2 +USE MODE_TOOLS_ll, ONLY: INTERSECTION ! IMPLICIT NONE ! @@ -97,6 +99,7 @@ TYPE(ZONE_ll), ALLOCATABLE, DIMENSION(:) :: TZSEND, TZRECV TYPE(CRSPD_ll), POINTER :: TZCRSPDSEND, TZCRSPDRECV TYPE(CRSPD_ll), ALLOCATABLE, DIMENSION(:), TARGET :: TZCRSPDSENDTAB, TZCRSPDRECVTAB ! +character(len=10) :: ydim1, ydim2, yhalo ! String for error message INTEGER :: J INTEGER :: INBMSG INTEGER :: ICARD @@ -134,10 +137,11 @@ ALLOCATE(TZSPLITTING_PHYS(NPROC),TZSPLITTING_EXT(NPROC)) ! Donc on fait un WARNING et un ABORT ! IF ( NHALO > KXEND - KXOR + 1 .OR. NHALO > KYEND - KYOR + 1 ) THEN - WRITE(*,*) "ERROR in UPDATE_NHALO1D : size of local subdomain is (", KXEND - KXOR + 1,",",KYEND - KYOR + 1, & - ") which is less than NHALO=",NHALO - WRITE(*,*) "Try with less MPI processes or a larger domain" - CALL ABORT + write( ydim1, '( I10 )' ) KXEND - KXOR + 1 + write( ydim2, '( I10 )' ) KYEND - KYOR + 1 + write( yhalo, '( I10 )' ) NHALO + call Print_msg( NVERB_FATAL, 'GEN', 'UPDATE_NHALO1D', 'local subdomain ('//trim(ydim1)//'x'//trim(ydim2)// & + ') is smaller than NHALO ('//trim(yhalo)//'). Try with less MPI processes or a larger domain.' ) ENDIF ! ! physical splitting of the field diff --git a/src/MNH/BASIC.f90 b/src/MNH/BASIC.f90 index 854c2bc06..0160a3c40 100755 --- a/src/MNH/BASIC.f90 +++ b/src/MNH/BASIC.f90 @@ -1,3 +1,5 @@ +! Modifications: +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! !======================================================================== ! @@ -35369,7 +35371,7 @@ CONTAINS !! !! EXTERNAL !! -------- -!! none +use mode_msg !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -35380,7 +35382,7 @@ CONTAINS IMPLICIT NONE ! check if output array is large enough IF (KINDEXDIM.LT.942) THEN - STOP 'CH_NONZEROTERMS ERROR: array KINDEX is too small!' + call Print_msg( NVERB_FATAL, 'GEN', 'CH_NONZEROTERMS_AQ', 'array KINDEX is too small' ) END IF KINDEX(1, 1)=3 KINDEX(2, 1)=1 @@ -37305,7 +37307,7 @@ END SUBROUTINE CH_NONZEROTERMS_AQ !! !! EXTERNAL !! -------- -!! none +use mode_msg !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -37316,7 +37318,7 @@ END SUBROUTINE CH_NONZEROTERMS_AQ IMPLICIT NONE ! check if output array is large enough IF (KINDEXDIM.LT.606) THEN - STOP 'CH_NONZEROTERMS ERROR: array KINDEX is too small!' + call Print_msg( NVERB_FATAL, 'GEN', 'CH_NONZEROTERMS_GAZ', 'array KINDEX is too small' ) END IF KINDEX(1, 1)=3 KINDEX(2, 1)=1 @@ -38643,7 +38645,7 @@ CONTAINS !! !! EXTERNAL !! -------- -!! none +use mode_msg !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -38662,7 +38664,7 @@ IMPLICIT NONE !! --------------------- ! check if output array is large enough IF (KSPARSEDIM.LT.745) THEN - STOP 'CH_SPARSE ERROR: array KSPARSE is too small!' + call Print_msg( NVERB_FATAL, 'GEN', 'CH_SPARSE_AQ', 'array KSPARSE is too small' ) END IF !O3/O3 KSPARSE(1, 1)=1 @@ -40935,7 +40937,7 @@ END SUBROUTINE CH_SPARSE_AQ !! !! EXTERNAL !! -------- -!! none +use mode_msg !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -40954,7 +40956,7 @@ IMPLICIT NONE !! --------------------- ! check if output array is large enough IF (KSPARSEDIM.LT.449) THEN - STOP 'CH_SPARSE ERROR: array KSPARSE is too small!' + call Print_msg( NVERB_FATAL, 'GEN', 'CH_SPARSE_GAZ', 'array KSPARSE is too small' ) END IF !O3/O3 KSPARSE(1, 1)=1 diff --git a/src/MNH/advec_weno_k_3_aux.f90 b/src/MNH/advec_weno_k_3_aux.f90 index 860a9638f..7d99247aa 100644 --- a/src/MNH/advec_weno_k_3_aux.f90 +++ b/src/MNH/advec_weno_k_3_aux.f90 @@ -1,7 +1,11 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +!----------------------------------------------------------------- ! ############################## MODULE MODI_ADVEC_WENO_K_3_AUX ! ############################## @@ -132,9 +136,11 @@ END MODULE MODI_ADVEC_WENO_K_3_AUX !! !------------------------------------------------------------------------------- ! -USE MODE_ll -USE MODD_LUNIT USE MODD_CONF +USE MODD_LUNIT +! +USE MODE_ll +use mode_msg ! IMPLICIT NONE ! @@ -354,9 +360,7 @@ ZFNEG3(IW,:,:) = 1./6 * (-1.0*PSRC(IW-1,:,:) + 5.0*PSRC(IW,:,:) + 2.0*PSRC(I ZOMN3(IW-1:IW,:,:) = 3./10. / (ZEPS + ZBNEG3(IW-1:IW,:,:))**2 ! Non-normalized weight IW,IW-1 ! ELSE ! East boundary is proc border, with NHALO < 3 on west side - PRINT *,'ERROR : WENO5/CYCL fluxes calculation needs JPHEXT (&NHALO) >= 3 on west side' - CALL ABORT - STOP ' Error in advec_weno_k_3_aux.f90 ' + call Print_msg(NVERB_FATAL,'GEN','ADVEC_WENO_K_3_UX','WENO5/CYCL fluxes calculation needs JPHEXT (&NHALO) >= 3 on west side') ENDIF ! ! Third positive stencil, needs indices i, i+1, i+2 @@ -439,9 +443,7 @@ ELSE !----------------------------------------------------------------------------- ! IF (NHALO<3) THEN - PRINT *,'ERROR : WENO5/west-int not parallelisable with NHALO < 3' - CALL ABORT - STOP ' Error in advec_weno_k_3_aux.f90 ' + call Print_msg(NVERB_FATAL,'GEN','ADVEC_WENO_K_3_UX','WENO5/west-int not parallelisable with NHALO < 3') ELSEIF (NHALO>=3) THEN !--------------------------------------------------------------------------- ! NHALO >3 => WENO5 for all boundary points @@ -596,9 +598,7 @@ IF( LEAST_ll() ) THEN ZOMN2(IE-1:IE,:,:) = 3./5. / (ZEPS + ZBNEG2(IE-1:IE,:,:))**2 ! Non-normalized weight IE-1,IE ! ELSE ! West boundary is proc border, with NHALO < 3 on east side - PRINT *,'ERROR : WENO5/CYCL fluxes calculation needs JPHEXT (&NHALO) >= 3 on east side' - CALL ABORT - STOP ' Error in advec_weno_k_3_aux.f90 ' + call Print_msg(NVERB_FATAL,'GEN','ADVEC_WENO_K_3_UX','WENO5/CYCL fluxes calculation needs JPHEXT (&NHALO) >= 3 on east side') ENDIF ! ! First positive stencil, needs indices i-2, i-1, i @@ -681,9 +681,7 @@ ELSE !----------------------------------------------------------------------------- ! IF (NHALO<3) THEN - PRINT *,'ERROR : WENO5/east-int not parallelisable with NHALO < 3' - CALL ABORT - STOP ' Error in advec_weno_k_3_aux.f90 ' + call Print_msg(NVERB_FATAL,'GEN','ADVEC_WENO_K_3_UX','WENO5/east-int not parallelisable with NHALO < 3') ELSEIF (NHALO>=3) THEN !--------------------------------------------------------------------------- ! NHALO >= 3 => WENO5 for all boundary points @@ -791,9 +789,11 @@ END SUBROUTINE ADVEC_WENO_K_3_UX !! !------------------------------------------------------------------------------ ! -USE MODE_ll -USE MODD_LUNIT USE MODD_CONF +USE MODD_LUNIT +! +USE MODE_ll +use mode_msg ! IMPLICIT NONE ! @@ -1014,9 +1014,7 @@ IF( LWEST_ll() ) THEN ZOMN3(IW:IW+1,:,:) = 3./10. / (ZEPS + ZBNEG3(IW:IW+1,:,:))**2 ! Non-normalized weight IW+1,IW ! ELSE ! East boundary is proc border, with NHALO < 3 on west side - PRINT *,'ERROR : WENO5/CYCL fluxes calculation needs JPHEXT (&NHALO) >= 3 on west side' - CALL ABORT - STOP ' Error in advec_weno_k_3_aux.f90 ' + call Print_msg(NVERB_FATAL,'GEN','ADVEC_WENO_K_3_MX','WENO5/CYCL fluxes calculation needs JPHEXT (&NHALO) >= 3 on west side') ENDIF ! ! Third positive stencil, needs indices i-1, i, i+1 @@ -1099,9 +1097,7 @@ ELSE !----------------------------------------------------------------------------- ! IF (NHALO<3) THEN - PRINT *,'ERROR : WENO5/west-int not parallelisable with NHALO < 3' - CALL ABORT - STOP ' Error in advec_weno_k_3_aux.f90 ' + call Print_msg(NVERB_FATAL,'GEN','ADVEC_WENO_K_3_MX','WENO5/west-int not parallelisable with NHALO < 3') ELSEIF (NHALO>=3) THEN !--------------------------------------------------------------------------- ! NHALO >3 => WENO5 for all boundary points @@ -1255,9 +1251,7 @@ IF(LEAST_ll() ) THEN ZOMN2(IE:IE+1,:,:) = 3./5. / (ZEPS + ZBNEG2(IE:IE+1,:,:))**2 ! Non-normalized weight IE,IE+1 ! ELSE ! West boundary is proc border, with NHALO < 3 on east side - PRINT *,'ERROR : WENO5/CYCL fluxes calculation needs JPHEXT (&NHALO) >= 3 on east side' - CALL ABORT - STOP ' Error in advec_weno_k_3_aux.f90 ' + call Print_msg(NVERB_FATAL,'GEN','ADVEC_WENO_K_3_MX','WENO5/CYCL fluxes calculation needs JPHEXT (&NHALO) >= 3 on east side') ENDIF ! ! First positive stencil, needs indices i-3, i-2, i-1 @@ -1339,9 +1333,7 @@ ELSE !----------------------------------------------------------------------------- ! IF (NHALO<3) THEN - PRINT *,'ERROR : WENO5/east-int not parallelisable with NHALO < 3' - CALL ABORT - STOP ' Error in advec_weno_k_3_aux.f90 ' + call Print_msg(NVERB_FATAL,'GEN','ADVEC_WENO_K_3_MX','WENO5/east-int not parallelisable with NHALO < 3') ELSEIF (NHALO>=3) THEN !--------------------------------------------------------------------------- ! NHALO >= 3 => WENO5 for all boundary points @@ -1450,9 +1442,11 @@ END SUBROUTINE ADVEC_WENO_K_3_MX !! !------------------------------------------------------------------------------- ! -USE MODE_ll -USE MODD_LUNIT USE MODD_CONF +USE MODD_LUNIT +! +USE MODE_ll +use mode_msg ! IMPLICIT NONE ! @@ -1675,9 +1669,7 @@ IF(LSOUTH_ll()) THEN ZOMN3(:,IS:IS+1,:) = 3./10. / (ZEPS + ZBNEG3(:,IS:IS+1,:))**2 ! Non-normalized weight IS+1,IS ! ELSE ! North boundary is proc border, with NHALO < 3 on south side - PRINT *,'ERROR : WENO5/CYCL fluxes calculation needs JPHEXT (&NHALO) >= 3 on south side' - CALL ABORT - STOP ' Error in advec_weno_k_3_aux.f90 ' + call Print_msg(NVERB_FATAL,'GEN','ADVEC_WENO_K_3_MY','WENO5/CYCL fluxes calculation needs JPHEXT (&NHALO) >= 3 on south side') ENDIF ! ! Third positive stencil, needs indices i-1, i, i+1 @@ -1761,9 +1753,7 @@ ELSE !----------------------------------------------------------------------------- ! IF (NHALO<3) THEN - PRINT *,'ERROR : WENO5/south-int not parallelisable with NHALO < 3' - CALL ABORT - STOP ' Error in advec_weno_k_3_aux.f90 ' + call Print_msg(NVERB_FATAL,'GEN','ADVEC_WENO_K_3_MY','WENO5/south-int not parallelisable with NHALO < 3') ELSEIF (NHALO>=3) THEN !--------------------------------------------------------------------------- ! NHALO >3 => WENO5 for all boundary points @@ -1917,9 +1907,7 @@ IF( LNORTH_ll() ) THEN ZOMN2(:,IN:IN+1,:) = 3./5. / (ZEPS + ZBNEG2(:,IN:IN+1,:))**2 ! Non-normalized weight IN,IN+1 ! ELSE ! South boundary is proc border, with NHALO < 3 on south side - PRINT *,'ERROR : WENO5/CYCL fluxes calculation needs JPHEXT (&NHALO) >= 3 on south side' - CALL ABORT - STOP ' Error in advec_weno_k_3_aux.f90 ' + call Print_msg(NVERB_FATAL,'GEN','ADVEC_WENO_K_3_MY','WENO5/CYCL fluxes calculation needs JPHEXT (&NHALO) >= 3 on south side') ENDIF ! ! First positive stencil, needs indices i-3, i-2, i-1 @@ -2001,9 +1989,7 @@ ELSE !----------------------------------------------------------------------------- ! IF (NHALO<3) THEN - PRINT *,'ERROR : WENO5/north-int not parallelisable with NHALO < 3' - CALL ABORT - STOP ' Error in advec_weno_k_3_aux.f90 ' + call Print_msg(NVERB_FATAL,'GEN','ADVEC_WENO_K_3_MY','WENO5/north-int not parallelisable with NHALO < 3') ELSEIF (NHALO>=3) THEN !--------------------------------------------------------------------------- ! NHALO >= 3 => WENO5 for all boundary points @@ -2111,9 +2097,11 @@ END SUBROUTINE ADVEC_WENO_K_3_MY !! !------------------------------------------------------------------------------- ! -USE MODE_ll -USE MODD_LUNIT USE MODD_CONF +USE MODD_LUNIT +! +USE MODE_ll +use mode_msg ! IMPLICIT NONE ! @@ -2337,9 +2325,7 @@ IF(LSOUTH_ll() ) THEN ZOMN3(:,IS-1:IS,:) = 3./10. / (ZEPS + ZBNEG3(:,IS-1:IS,:))**2 ! Non-normalized weight IS,IS-1 ! ELSE ! North boundary is proc border, with NHALO < 3 on south side - PRINT *,'ERROR : WENO5/CYCL fluxes calculation needs JPHEXT (&NHALO) >= 3 on south side' - CALL ABORT - STOP ' Error in advec_weno_k_3_aux.f90 ' + call Print_msg(NVERB_FATAL,'GEN','ADVEC_WENO_K_3_VY','WENO5/CYCL fluxes calculation needs JPHEXT (&NHALO) >= 3 on south side') ENDIF ! ! Third positive stencil, needs indices i, i+1, i+2 @@ -2424,9 +2410,7 @@ ELSE !----------------------------------------------------------------------------- ! IF (NHALO<3) THEN - PRINT *,'ERROR : WENO5/south-int not parallelisable with NHALO < 3' - CALL ABORT - STOP ' Error in advec_weno_k_3_aux.f90 ' + call Print_msg(NVERB_FATAL,'GEN','ADVEC_WENO_K_3_VY','WENO5/south-int not parallelisable with NHALO < 3') ELSEIF (NHALO>=3) THEN !--------------------------------------------------------------------------- ! NHALO >3 => WENO5 for all boundary points @@ -2580,9 +2564,7 @@ IF(LNORTH_ll()) THEN ZOMN2(:,IN-1:IN,:) = 3./5. / (ZEPS + ZBNEG2(:,IN-1:IN,:))**2 ! Non-normalized weight IN-1,IN ! ELSE ! South boundary is proc border, with NHALO < 3 on north side - PRINT *,'ERROR : WENO5/CYCL fluxes calculation needs JPHEXT (&NHALO) >= 3 on north side' - CALL ABORT - STOP ' Error in advec_weno_k_3_aux.f90 ' + call Print_msg(NVERB_FATAL,'GEN','ADVEC_WENO_K_3_VY','WENO5/CYCL fluxes calculation needs JPHEXT (&NHALO) >= 3 on north side') ENDIF ! ! First positive stencil, needs indices i-2, i-1, i @@ -2665,9 +2647,7 @@ ELSE !----------------------------------------------------------------------------- ! IF (NHALO<3) THEN - PRINT *,'ERROR : WENO5/north-int not parallelisable with NHALO < 3' - CALL ABORT - STOP ' Error in advec_weno_k_3_aux.f90 ' + call Print_msg(NVERB_FATAL,'GEN','ADVEC_WENO_K_3_VY','WENO5/north-int not parallelisable with NHALO < 3') ELSEIF (NHALO>=3) THEN !--------------------------------------------------------------------------- ! NHALO >= 3 => WENO5 for all boundary points diff --git a/src/MNH/advecuvw_rk.f90 b/src/MNH/advecuvw_rk.f90 index 0241fdf9e..ca89eb6fa 100644 --- a/src/MNH/advecuvw_rk.f90 +++ b/src/MNH/advecuvw_rk.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ##################### @@ -103,24 +103,27 @@ END MODULE MODI_ADVECUVW_RK !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! F.Auguste and C.Lac : 08/16 : CEN4TH with RKC4 !! C.Lac 10/16 : Correction on RK loop +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! +USE MODD_ARGSLIST_ll, ONLY: LIST_ll, HALO2LIST_ll +USE MODD_CONF, ONLY: NHALO +USE MODD_PARAMETERS, ONLY: JPVEXT +! USE MODE_ll -USE MODD_ARGSLIST_ll, ONLY : LIST_ll, HALO2LIST_ll -USE MODD_PARAMETERS, ONLY : JPVEXT -USE MODD_CONF, ONLY : NHALO +USE MODE_MPPDB +use mode_msg ! -USE MODI_SHUMAN -USE MODI_ADVECUVW_WENO_K USE MODI_ADV_BOUNDARIES +USE MODI_ADVECUVW_4TH +USE MODI_ADVECUVW_WENO_K USE MODI_GET_HALO -USE MODE_MPPDB +USE MODI_SHUMAN ! -USE MODI_ADVECUVW_4TH ! !------------------------------------------------------------------------------- ! @@ -222,8 +225,7 @@ SELECT CASE (HTEMP_SCHEME) CASE('RK65') ISPL = 6 CASE DEFAULT - PRINT *,'ERROR: UNKNOWN HTEMP_SCHEME' - CALL ABORT() + call Print_msg(NVERB_FATAL,'GEN','ADVECUVW_RK','unknown HTEMP_SCHEME') END SELECT ! ! diff --git a/src/MNH/c3r5_adjust.f90 b/src/MNH/c3r5_adjust.f90 index 2beef3f30..84f3114c2 100644 --- a/src/MNH/c3r5_adjust.f90 +++ b/src/MNH/c3r5_adjust.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 microph 2006/06/06 18:25:10 -!----------------------------------------------------------------- ! ####################### MODULE MODI_C3R5_ADJUST ! ####################### @@ -163,12 +158,14 @@ END MODULE MODI_C3R5_ADJUST !! November 13 1996 (V. Masson) add prints in test above !! March 11, 1997 (J.-M. Cohard) C2R2 option !! April 6, 2001 (J.-P. Pinty) C3R5 option +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !------------------------------------------------------------------------------- ! -PRINT *,'C3R5_ADJUST IS NOT YET DEVELOPPED' -!callabortstop -CALL ABORT -STOP +!implicit none +! +use mode_msg +! +call Print_msg(NVERB_FATAL,'GEN','C3R5_ADJUST','not yet developed') ! END SUBROUTINE C3R5_ADJUST diff --git a/src/MNH/call_rttov11.f90 b/src/MNH/call_rttov11.f90 index 70d452642..254bc976c 100644 --- a/src/MNH/call_rttov11.f90 +++ b/src/MNH/call_rttov11.f90 @@ -82,6 +82,7 @@ SUBROUTINE CALL_RTTOV11(KDLON, KFLEV, PEMIS, PTSRAD, & !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! JP Chaboureau 30/05/2017 exclude the first layer when considering clouds !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !!---------------------------------------------------------------------------- !! !!* 0. DECLARATIONS @@ -421,8 +422,7 @@ DO JSAT=1,IJSAT ! loop over sensors ! Ensure the options and coefficients are consistent CALL rttov_user_options_checkinput(errorstatus, opts, coef_rttov) IF (errorstatus /= 0) THEN - WRITE(*,*) 'error in rttov options' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'CALL_RTTOV11', 'error in rttov options' ) ENDIF !! opts%interpolation%reg_limit_extrap = .TRUE. diff --git a/src/MNH/ch_aer_eqm_init0d.f90 b/src/MNH/ch_aer_eqm_init0d.f90 index f6936c22d..3f2dfddc4 100644 --- a/src/MNH/ch_aer_eqm_init0d.f90 +++ b/src/MNH/ch_aer_eqm_init0d.f90 @@ -1,13 +1,8 @@ -!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !ORILAM_LIC for details. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 chimie 2006/05/18 13:07:25 -!----------------------------------------------------------------- !! ######################## MODULE MODI_CH_AER_EQM_INIT0d !! ######################## @@ -47,7 +42,7 @@ END MODULE MODI_CH_AER_EQM_INIT0d !! !! MODIFICATIONS !! ------------- -!! none +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! EXTERNAL !! -------- @@ -59,9 +54,10 @@ USE MODD_CH_M9_n, ONLY : CNAMES USE MODD_CH_AERO_n USE MODD_CH_MNHC_n -!! +use mode_msg +! IMPLICIT NONE -!! +! !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -214,9 +210,7 @@ print*, 'COMPATIBILITY ERROR: Initialization of particle number mode I < XN0IMIN print*, ' MINIMAL NUMBER PARTICLE BY m3 is ', MINVAL(PM3D(:,1)),& 'located at ',MINLOC(PM3D(:,1)) print*, 'PLEASE CHANGE MASS OR XN0IMIN INITIALIZATION ' -!callabortstop -CALL ABORT -STOP +call Print_msg( NVERB_FATAL, 'GEN', 'CH_AER_EQM_INIT0d', '' ) END IF PM3D(:,4)= PM3D(:,5) / & ((XINIRADIUSJ**3)*EXP(4.5 * (LOG(XINISIGJ))**2)) @@ -227,9 +221,7 @@ print*, 'COMPATIBILITY ERROR: Initialization of particle number mode J < XN0JMIN print*, ' MINIMAL NUMBER PARTICLE BY m3 is ',MINVAL(PM3D(:,4)),& 'located at ',MINLOC(PM3D(:,4)) print*, 'PLEASE CHANGE MASS OR XN0JMIN INITIALIZATION ' -!callabortstop -CALL ABORT -STOP +call Print_msg( NVERB_FATAL, 'GEN', 'CH_AER_EQM_INIT0d', '' ) END IF !* 1.3 calculate moment 6 from dispersion and mean radius diff --git a/src/MNH/ch_cranck.f90 b/src/MNH/ch_cranck.f90 index 2e4ac3c98..a435c9a8e 100644 --- a/src/MNH/ch_cranck.f90 +++ b/src/MNH/ch_cranck.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 chimie 2006/05/18 13:07:25 -!----------------------------------------------------------------- !! ##################### MODULE MODI_CH_CRANCK !! ##################### @@ -69,8 +64,12 @@ SUBROUTINE CH_CRANCK(PTSIMUL, PDTACT, PCONC, PNEWCONC, KEQ, KVECNPT, KMI, & !! 31/07/96 (K. Suhre) restructured !! 19/04/02 add PALPHA argument !! 01/12/03 (Gazen) change Chemical scheme interface +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +! !! EXTERNAL !! -------- +use mode_msg + USE MODI_CH_FCN USE MODI_CH_JAC USE MODI_CH_GAUSS @@ -128,9 +127,7 @@ newton: DO WHILE (MAXVAL(ZERR).GT.ZMAXERR) ! IITERCOUNT = IITERCOUNT + 1 IF (IITERCOUNT.GT.IMAXITER) THEN -!callabortstop - CALL ABORT - STOP "CH_CRANCK ERROR: no convergence of Newton-Raphson iteration obtained" + call Print_msg( NVERB_FATAL, 'GEN', 'CH_CRANCK', 'no convergence of Newton-Raphson iteration obtained' ) ENDIF ! !* 2.1 calculate derivative F for next iteration @@ -163,9 +160,7 @@ newton: DO WHILE (MAXVAL(ZERR).GT.ZMAXERR) IFAIL = 1 CALL CH_GAUSS(ZB,ZC,KEQ,IFAIL) IF (IFAIL.NE.0) THEN -!callabortstop - CALL ABORT - STOP 'CH_CRANCK ERROR: matrix cannot be inverted by CH_GAUSS' + call Print_msg( NVERB_FATAL, 'GEN', 'CH_CRANCK', 'matrix cannot be inverted by CH_GAUSS' ) ENDIF ! !* 2.5 calculate dY = ZB F (result is put in ZFTRAPEZ) diff --git a/src/MNH/ch_emission_flux0d.f90 b/src/MNH/ch_emission_flux0d.f90 index 2795fe267..39f3d2947 100644 --- a/src/MNH/ch_emission_flux0d.f90 +++ b/src/MNH/ch_emission_flux0d.f90 @@ -70,11 +70,14 @@ END MODULE MODI_CH_EMISSION_FLUX0D !! ------------- !! Original 26/07/1999 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! EXTERNAL !! -------- USE MODD_IO, ONLY: TFILEDATA + USE MODE_IO_FILE, ONLY: IO_File_close +use mode_msg ! USE MODI_CH_OPEN_INPUT !! @@ -213,10 +216,7 @@ IF (LSFIRSTCALL) THEN ! where 1 microMol/m2/day = (22.414/86.400)*1E-12 ppp*m/s ZCONVERSION = (22.414/86.400)*1E-12 CASE DEFAULT - WRITE(KLUOUT,*) 'CH_EMISSION_FLUX0D: unknow conversion factor: ', YUNIT -!callabortstop - CALL ABORT - STOP 'CH_EMISSION_FLUX0D: unknow conversion factor' + call Print_msg( NVERB_FATAL, 'GEN', 'CH_EMISSION_FLUX0D', 'unknow conversion factor: '//trim(YUNIT) ) END SELECT ! ! set all fluxes to zero diff --git a/src/MNH/ch_f77.fx90 b/src/MNH/ch_f77.fx90 index be71fe6c0..aed9e28b8 100644 --- a/src/MNH/ch_f77.fx90 +++ b/src/MNH/ch_f77.fx90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1989-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -22,6 +22,7 @@ C**MODIFIED: 10/01/2019 (P.Wautelet) replace double precision declarations by C real(kind(0.0d0)) (to allow compilation by NAG compiler) C**MODIFIED: 08/02/2019 (P.Wautelet) bug fixes: missing argument C + wrong use of an non initialized value +C**MODIFIED: P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg C! C! C! @@ -3652,6 +3653,9 @@ CDECK XERRWV C ################################################################## SUBROUTINE XERRWV (MSG, NMES, NERR, LEVEL, NI, I1, I2, NR, R1, R2) C ################################################################## + + use mode_msg + REAL R1, R2 INTEGER NMES, NERR, LEVEL, NI, I1, I2, NR C @@ -3720,9 +3724,7 @@ C10 FORMAT(1X,80A1) 50 FORMAT(6X,'In above, R1 =',E21.13,3X,'R2 =',E21.13) C Abort the run if LEVEL = 2. ------------------------------------------ 100 IF (LEVEL .NE. 2) RETURN -C callabortstop - CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'XERRWV', trim(MSG) ) END C####################### End of Subroutine XERRWV ###################### C @@ -4506,6 +4508,8 @@ CCC FILE TUV.f *-----------------------------------------------------------------------------* *= Adapted to MesoNH : ONLY JVALUES are computed + use mode_msg + IMPLICIT NONE SAVE @@ -5142,11 +5146,8 @@ c C copy labels into output array if (njout .ne. 42) then - WRITE(kout,*) 'There should be 42 J-Values to be updated!' - WRITE(kout,*) 'We better stop here ... in tuvmain.f' -C callabortstop - CALL ABORT - STOP 1 + call Print_msg( NVERB_FATAL, 'GEN', 'tuvmain', + & 'there should be 42 J-Values to be updated' ) endif DO ij = 1, njout @@ -5325,6 +5326,8 @@ CCC FILE grids.f *= MOPT- INTEGER OPTION for wave-length IF 3 good for JO2 (O)=* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -5689,8 +5692,8 @@ c wlabel = 'isaksen.grid' CALL gridck(kw,nw,wl,ok,kout) IF (.NOT. ok) THEN - WRITE(*,*)'STOP in GRIDW: The w-grid does not make sense' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'GRIDW', 'the w-grid & + &does not make sense' ) ENDIF *_______________________________________________________________________ @@ -5714,6 +5717,8 @@ c wlabel = 'isaksen.grid' *= z - REAL, vector of altitude levels (in km) (O)=* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE * BROADLY USED PARAMETERS: @@ -5949,7 +5954,9 @@ C fill up between model top and 50km with 1km grid spacing 20 continue if (z(nz) .ge. 50.) goto 30 nz = nz + 1 - if (nz .gt. kz) stop "GRIDZ: not enough memory, increase kz" + if (nz .gt. kz) + & call Print_msg( NVERB_FATAL, 'GEN', 'gridz', + & 'not enough memory, increase kz' ) z(nz) = z(nz-1) + 1. goto 20 C @@ -6013,8 +6020,8 @@ c 99 CONTINUE CALL gridck(kz,nz,z,ok,kout) IF (.NOT. ok) THEN - WRITE(*,*)'STOP in GRIDZ: The z-grid does not make sense' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'GRIDZ', 'the z-grid & + &does not make sense' ) ENDIF *_______________________________________________________________________ @@ -6416,6 +6423,8 @@ CCC FILE la_srb.f *= continuum. =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c c INCLUDE 'params' @@ -6563,12 +6572,13 @@ c c INCLUDE 'params' WRITE(*,*) 'For wavelengths below 205.8 nm, only the' WRITE(*,*) 'pre-specified wavelength grid is permitted' WRITE(*,*) 'Use nwint=-156, or edit subroutine gridw.f' - STOP ' Lyman alpha grid mis-match - 1' + call Print_msg( NVERB_FATAL, 'GEN', 'la_srb', + & 'Lyman alpha grid mis-match - 1' ) ENDIF DO i = 2, nla + 1 IF(ABS(wl(ila + i - 1) - wlla(i)) .GT. 10.*precis) THEN - WRITE(*,*) 'Lyman alpha grid mis-match - 2' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'la_srb', + & 'Lyman alpha grid mis-match - 2' ) ENDIF ENDDO @@ -6589,12 +6599,13 @@ c c INCLUDE 'params' WRITE(*,*) 'For wavelengths below 205.8 nm, only the' WRITE(*,*) 'pre-specified wavelength grid is permitted' WRITE(*,*) 'Use nwint=-156, or edit subroutine gridw.f' - STOP ' SRB grid mis-match - 1' + call Print_msg( NVERB_FATAL, 'GEN', 'la_srb', + & 'SRB grid mis-match - 1' ) ENDIF DO i = 2, nsrb + 1 IF(ABS(wl(isrb + i - 1) - wlsrb(i)) .GT. 10.* precis) THEN - WRITE(*,*) ' SRB grid mismatch - w' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'la_srb', + & 'SRB grid mis-match - w' ) ENDIF ENDDO @@ -7387,6 +7398,8 @@ CCC FILE numer.f *= Y - REAL, input y-data (I)=* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE * input: @@ -7428,11 +7441,9 @@ CCC FILE numer.f * check for xg-values outside the x-range IF ( (x(1) .GT. xg(1)) .OR. (x(n) .LT. xg(ng)) ) THEN - WRITE(0,*) '>>> ERROR (inter2) <<< Data do not span '// - > 'grid. ' - WRITE(0,*) ' Use ADDPNT to '// - > 'expand data and re-run.' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'inter2', + & 'data do not span grid. Use ADDPNT'// + & 'to expand data and re-run.' ) ENDIF * find the integral of each grid interval and use this to @@ -7555,8 +7566,10 @@ CCC FILE numer.f *= last target bin =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE - + * input: INTEGER n, ng REAL xg(ng) @@ -7575,9 +7588,8 @@ CCC FILE numer.f * check whether flag given is legal IF ((FoldIn .NE. 0) .AND. (FoldIn .NE. 1)) THEN - WRITE(0,*) '>>> ERROR (inter3) <<< Value for FOLDIN invalid. ' - WRITE(0,*) ' Must be 0 or 1' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'inter3', + & 'Value for FOLDIN invalid. Must be 0 or 1.' ) ENDIF * do interpolation @@ -7685,6 +7697,8 @@ CCC FILE numer.f *= last target bin =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE * input: @@ -7705,9 +7719,8 @@ CCC FILE numer.f * check whether flag given is legal IF ((FoldIn .NE. 0) .AND. (FoldIn .NE. 1)) THEN - WRITE(0,*) '>>> ERROR (inter3) <<< Value for FOLDIN invalid. ' - WRITE(0,*) ' Must be 0 or 1' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'inter4', + & 'Value for FOLDIN invalid. Must be 0 or 1.' ) ENDIF * do interpolation @@ -7794,6 +7807,8 @@ CCC FILE numer.f *= YNEW - REAL, y-value of point to be added (I)=* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE * calling parameters @@ -7812,9 +7827,8 @@ CCC FILE numer.f * check n<ld to make sure x will hold another point IF (n .GE. ld) THEN - WRITE(0,*) '>>> ERROR (ADDPNT) <<< Cannot expand array ' - WRITE(0,*) ' All elements used.' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'addpnt', + & 'Cannot expand array. All elements used.' ) ENDIF insert = 1 @@ -7827,9 +7841,8 @@ CCC FILE numer.f 10 CONTINUE IF (i .LT. n) THEN IF (x(i) .LT. x(i-1)) THEN - WRITE(0,*) '>>> ERROR (ADDPNT) <<< x-data must be '// - > 'in ascending order!' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'addpnt', + & 'x-data must be in ascending order' ) ELSE IF (xnew .GT. x(i)) insert = i + 1 ENDIF @@ -8774,6 +8787,8 @@ CCC FILE qys.f *= send email to: sasha@ucar.edu =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c c INCLUDE 'params' @@ -8945,8 +8960,8 @@ c c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, fil - STOP - ENDIF + call Print_msg( NVERB_FATAL, 'GEN', 'rdetfl', '' ) + ENDIF DO iw = 1, nw-1 f(iw) = yg1(iw) ENDDO @@ -8971,8 +8986,8 @@ c c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, fil - STOP - ENDIF + call Print_msg( NVERB_FATAL, 'GEN', 'rdetfl', '' ) + ENDIF DO iw = 1, nw-1 f(iw) = yg1(iw) ENDDO @@ -8997,8 +9012,8 @@ c c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, fil - STOP - ENDIF + call Print_msg( NVERB_FATAL, 'GEN', 'rdetfl', '' ) + ENDIF DO iw = 1, nw-1 f(iw) = yg1(iw) ENDDO @@ -9023,8 +9038,8 @@ c c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, fil - STOP - ENDIF + call Print_msg( NVERB_FATAL, 'GEN', 'rdetfl', '' ) + ENDIF DO iw = 1, nw-1 f(iw) = yg1(iw) ENDDO @@ -9050,8 +9065,8 @@ c c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, fil - STOP - ENDIF + call Print_msg( NVERB_FATAL, 'GEN', 'rdetfl', '' ) + ENDIF DO iw = 1, nw-1 f(iw) = yg1(iw) ENDDO @@ -9078,8 +9093,8 @@ c c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, fil - STOP - ENDIF + call Print_msg( NVERB_FATAL, 'GEN', 'rdetfl', '' ) + ENDIF DO iw = 1, nw-1 f(iw) = yg1(iw) ENDDO @@ -9135,8 +9150,8 @@ c c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, fil - STOP - ENDIF + call Print_msg( NVERB_FATAL, 'GEN', 'rdetfl', '' ) + ENDIF DO iw = 1, nw-1 f(iw) = yg1(iw) ENDDO @@ -9161,8 +9176,8 @@ c c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, fil - STOP - ENDIF + call Print_msg( NVERB_FATAL, 'GEN', 'rdetfl', '' ) + ENDIF DO iw = 1, nw-1 f(iw) = yg1(iw) ENDDO @@ -9243,8 +9258,8 @@ c c INCLUDE 'params' CALL inter2(nw,wl,yg2,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, fil - STOP - ENDIF + call Print_msg( NVERB_FATAL, 'GEN', 'rdetfl', '' ) + ENDIF fil = 'DATAE1/SUN/neckel.flx' write(kout,*) fil @@ -9338,8 +9353,8 @@ c c INCLUDE 'params' CALL inter2(nw,wl,yg2,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, fil - STOP - ENDIF + call Print_msg( NVERB_FATAL, 'GEN', 'rdetfl', '' ) + ENDIF fil = 'DATAE1/SUN/neckel.flx' write(kout,*) fil @@ -9382,8 +9397,8 @@ c y1(i) = y1(i) * 1.E4 * hc / (x1(i) * 1.E-9) CALL inter2(nw,wl,yg4,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, fil - STOP - ENDIF + call Print_msg( NVERB_FATAL, 'GEN', 'rdetfl', '' ) + ENDIF * for wl(iw) .lt. 150.01 susim_hi.flx * for wl(iw) .ge. 150.01 .and. wl(iw) .lt. 200.07 atlas3.flx @@ -9427,6 +9442,8 @@ c y1(i) = y1(i) * 1.E4 * hc / (x1(i) * 1.E-9) *= each specified wavelength =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c c INCLUDE 'params' @@ -9546,7 +9563,7 @@ c c INCLUDE 'params' CALL inter2(nw,wl,f,n,lambda_hi,irrad_hi,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, fil - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'read1', '' ) ENDIF RETURN @@ -9738,6 +9755,8 @@ CCC FILE rdxs.f *= each specified wavelength (WMO value at 273) =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -9958,7 +9977,7 @@ c INCLUDE 'params' ENDDO ELSE - STOP 'mabs not set in rdxs.f' + call Print_msg( NVERB_FATAL, 'GEN', 'rdo3xs', 'mabs not set' ) ENDIF RETURN @@ -9988,6 +10007,8 @@ c INCLUDE 'params' *= V830 - REAL, exact wavelength in vacuum for data breaks (O)=* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -10118,8 +10139,8 @@ c INCLUDE 'params' CALL addpnt(x1,y1,kdata,n1, 1.e+38,0.) CALL inter2(nw,wl,rei295,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN - WRITE(*,*) ierr, 'O3 xsect - Reims 295K' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'o3_rei', + & 'O3 xsect - Reims 295K' ) ENDIF DO i = 1, n2 @@ -10137,8 +10158,8 @@ c INCLUDE 'params' CALL addpnt(x2,y2,kdata,n2, 1.e+38,0.) CALL inter2(nw,wl,rei243,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN - WRITE(*,*) ierr, 'O3 xsect - Reims 243K' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'o3_rei', + & 'O3 xsect - Reims 243K' ) ENDIF CALL addpnt(x3,y3,kdata,n3,x3(1)*(1.-deltax),0.) @@ -10147,8 +10168,8 @@ c INCLUDE 'params' CALL addpnt(x3,y3,kdata,n3, 1.e+38,0.) CALL inter2(nw,wl,rei228,n3,x3,y3,ierr) IF (ierr .NE. 0) THEN - WRITE(*,*) ierr, 'O3 xsect - Reims 228K' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'o3_rei', + & 'O3 xsect - Reims 228K' ) ENDIF CALL addpnt(x4,y4,kdata,n4,x4(1)*(1.-deltax),0.) @@ -10157,8 +10178,8 @@ c INCLUDE 'params' CALL addpnt(x4,y4,kdata,n4, 1.e+38,0.) CALL inter2(nw,wl,rei218,n4,x4,y4,ierr) IF (ierr .NE. 0) THEN - WRITE(*,*) ierr, 'O3 xsect - Reims 218K' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'o3_rei', + & 'O3 xsect - Reims 218K' ) ENDIF * wavelength breaks must be converted to vacuum: @@ -10191,6 +10212,8 @@ c INCLUDE 'params' *= V850 - REAL, exact wavelength in vacuum for data breaks (O)=* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c c INCLUDE 'params' @@ -10308,8 +10331,8 @@ c c INCLUDE 'params' CALL addpnt(x1,y1,kdata,n1, 1.e+38,0.) CALL inter2(nw,wl,wmo203,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN - WRITE(*,*) ierr, 'O3 cross section - WMO - 203K' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'o3_wmo', + & 'O3 cross section - WMO - 203K' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),0.) @@ -10318,8 +10341,8 @@ c c INCLUDE 'params' CALL addpnt(x2,y2,kdata,n2, 1.e+38,0.) CALL inter2(nw,wl,wmo273,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN - WRITE(*,*) ierr, 'O3 cross section - WMO - 273K' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'o3_wmo', + & 'O3 cross section - WMO - 273K' ) ENDIF * wavelength breaks must be converted to vacuum: @@ -10353,6 +10376,8 @@ c c INCLUDE 'params' *= V825 - REAL, exact wavelength in vacuum for data breaks (O)=* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -10468,8 +10493,8 @@ c INCLUDE 'params' CALL addpnt(x1,y1,kdata,n1, 1.e+38,0.) CALL inter2(nw,wl,jpl295,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN - WRITE(*,*) ierr, 'O3 cross section - WMO - 295K' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'o3_jpl', + & 'O3 cross section - WMO - 295K' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),0.) @@ -10478,8 +10503,8 @@ c INCLUDE 'params' CALL addpnt(x2,y2,kdata,n2, 1.e+38,0.) CALL inter2(nw,wl,jpl218,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN - WRITE(*,*) ierr, 'O3 cross section - WMO - 218K' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'o3_jpl', + & 'O3 cross section - WMO - 218K' ) ENDIF * wavelength breaks must be converted to vacuum: @@ -10515,6 +10540,8 @@ c INCLUDE 'params' *= V350 - REAL, exact wavelength in vacuum for data breaks (O)=* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -10659,8 +10686,8 @@ c INCLUDE 'params' CALL addpnt(x1,y1,kdata,n1, 1.e+38,0.) CALL inter2(nw,wl,mol226,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN - WRITE(*,*) ierr, 'O3 xsect - 226K Molina' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'o3_mol', + & 'O3 xsect - 226K Molina' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),0.) @@ -10669,8 +10696,8 @@ c INCLUDE 'params' CALL addpnt(x2,y2,kdata,n2, 1.e+38,0.) CALL inter2(nw,wl,mol263,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN - WRITE(*,*) ierr, 'O3 xsect - 263K Molina' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'o3_mol', + & 'O3 xsect - 263K Molina' ) ENDIF CALL addpnt(x3,y3,kdata,n3,x3(1)*(1.-deltax),0.) @@ -10679,8 +10706,8 @@ c INCLUDE 'params' CALL addpnt(x3,y3,kdata,n3, 1.e+38,0.) CALL inter2(nw,wl,mol298,n3,x3,y3,ierr) IF (ierr .NE. 0) THEN - WRITE(*,*) ierr, 'O3 xsect - 298K Molina' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'o3_mol', + & 'O3 xsect - 298K Molina' ) ENDIF RETURN @@ -10707,6 +10734,8 @@ c INCLUDE 'params' *= Vb342 - REAL, exact wavelength in vacuum for data breaks (O)=* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -10831,8 +10860,8 @@ c INCLUDE 'params' CALL addpnt(x1,y1,kdata,n1, 1.e+38,0.) CALL inter2(nw,wl,c0,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN - WRITE(*,*) ierr, 'O3 xsect - c0 Bass' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'o3_bas', + & 'O3 xsect - c0 Bass' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),0.) @@ -10841,8 +10870,8 @@ c INCLUDE 'params' CALL addpnt(x2,y2,kdata,n2, 1.e+38,0.) CALL inter2(nw,wl,c1,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN - WRITE(*,*) ierr, 'O3 xsect - c1 Bass' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'o3_bas', + & 'O3 xsect - c1 Bass' ) ENDIF CALL addpnt(x3,y3,kdata,n3,x3(1)*(1.-deltax),0.) @@ -10851,8 +10880,8 @@ c INCLUDE 'params' CALL addpnt(x3,y3,kdata,n3, 1.e+38,0.) CALL inter2(nw,wl,c2,n3,x3,y3,ierr) IF (ierr .NE. 0) THEN - WRITE(*,*) ierr, 'O3 xsect - c2 Bass' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'o3_bas', + & 'O3 xsect - c2 Bass' ) ENDIF RETURN @@ -10877,6 +10906,8 @@ c INCLUDE 'params' *= *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -10999,8 +11030,8 @@ c INCLUDE 'params' CALL addpnt(x1,y1,kdata,n, 1.E+38,0.) CALL inter2(nw,wl,o2xs1, n,x1,y1, ierr) IF (ierr .NE. 0) THEN - WRITE(*,*) ierr, 'O2 -> O + O' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'rdo2xs', + & 'O2 -> O + O' ) ENDIF *------------------------------------------------------ @@ -11122,6 +11153,8 @@ c INCLUDE 'params' SUBROUTINE no2xs_d(nz,t,nw,wl, no2xs,kout) + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -11228,8 +11261,8 @@ c INCLUDE 'params' CALL addpnt(x1,y1,kdata,n, 1.e+38,0.) CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN - WRITE(*,*) ierr, fil - STOP + WRITE(*,*) ierr, fil + call Print_msg( NVERB_FATAL, 'GEN', 'no2xs_d', '' ) ENDIF * assign, same at all altitudes (no temperature effect) @@ -11768,6 +11801,8 @@ c INCLUDE 'params' *= send email to: sasha@ucar.edu =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -11870,7 +11905,7 @@ c n = 681 CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, fil - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'rdso2xs', '' ) ENDIF DO 13, l = 1, nw-1 @@ -12754,6 +12789,8 @@ c mu1(i) = 0.5 * solves tridiagonal system. From Numerical Recipies, p. 40 *_______________________________________________________________________ + use mode_msg + IMPLICIT NONE * input: @@ -12826,13 +12863,17 @@ c INCLUDE 'params' DIMENSION gam(2*kz) *_______________________________________________________________________ - IF (b(1) .EQ. 0.) STOP 1001 + IF (b(1) .EQ. 0.) THEN + call Print_msg( NVERB_FATAL, 'GEN', 'tridiag', '' ) + END IF bet = b(1) u(1) = r(1)/bet DO 11, j = 2, n gam(j) = c(j - 1)/bet bet = b(j) - a(j)*gam(j) - IF (bet .EQ. 0.) STOP 2002 + IF (bet .EQ. 0.) THEN + call Print_msg( NVERB_FATAL, 'GEN', 'tridiag', '' ) + END IF u(j) = (r(j) - a(j)*u(j - 1))/bet 11 CONTINUE DO 12, j = n - 1, 1, -1 @@ -13678,6 +13719,8 @@ c Called by- SOLEIG c Calls- D1MACH, ERRMSG c +-------------------------------------------------------------------+ + use mode_msg + c .. Scalar Arguments .. INTEGER IA, IER, IEVEC, M @@ -14101,8 +14144,8 @@ c ** One eigenvalue found C next line has been included to avoid run time error caused by xlf IF ( ( N1.LE.0 ).OR.( N.LE.0 ) ) THEN - WRITE(0,*) 'Subscript out of bounds in ASYMTX' - STOP 9999 + call Print_msg( NVERB_FATAL, 'GEN', 'ASYMTX', + & 'subscript out of bounds' ) ENDIF Y = AAD( N1, N1 ) @@ -17744,6 +17787,8 @@ c c Print out a warning or error message; abort if error c after making symbolic dump (machine-specific) + use mode_msg + LOGICAL FATAL, MsgLim, Cray CHARACTER*(*) MESSAG INTEGER MaxMsg, NumMsg @@ -17752,24 +17797,21 @@ c after making symbolic dump (machine-specific) IF ( FATAL ) THEN - WRITE ( *, '(//,2A,//)' ) ' ******* ERROR >>>>>> ', MESSAG - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'ErrMsg', trim(MESSAG) ) END IF NumMsg = NumMsg + 1 IF( MsgLim ) RETURN IF ( NumMsg.LE.MaxMsg ) THEN - WRITE ( *, '(/,2A,/)' ) ' ******* WARNING >>>>>> ', MESSAG + call Print_msg( NVERB_WARNING, 'GEN', 'ErrMsg', trim(MESSAG) ) ELSE - WRITE ( *,99 ) - MsgLim = .True. + call Print_msg( NVERB_WARNING, 'GEN', 'ErrMsg', + & 'too many warning messages. ' // + & 'They will no longer be printed.' ) + MsgLim = .True. ENDIF - RETURN - - 99 FORMAT( //,' >>>>>> TOO MANY WARNING MESSAGES -- ', - $ 'They will no longer be printed <<<<<<<', // ) END c ------------------------------------------------------------------------- @@ -19080,6 +19122,8 @@ C ############################## *= (see routine T665D for more information on different constants) =* *-----------------------------------------------------------------------------* + use mode_msg + EXTERNAL t665d REAL(kind(0.0d0)) :: d1mach INTEGER i @@ -19099,8 +19143,8 @@ C ############################## ENDIF d1mach = dmach(i) ELSE - WRITE(0,*) '>>> ERROR (D1MACH) <<< invalid argument' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'D1MACH', + & 'invalid argument' ) ENDIF *!csm @@ -19343,6 +19387,8 @@ C---------- LAST CARD OF T665D ---------- *= (see routine T665R for more information on different constants) =* *-----------------------------------------------------------------------------* + use mode_msg + REAL r1mach INTEGER i @@ -19361,8 +19407,8 @@ C---------- LAST CARD OF T665D ---------- ENDIF r1mach = rmach(i) ELSE - WRITE(0,*) '>>> ERROR (R1MACH) <<< invalid argument' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'R1MACH', + & 'invalid argument' ) ENDIF END @@ -19686,6 +19732,8 @@ CCC FILE rxn.f *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -19865,7 +19913,7 @@ c myld = kjpl00 CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r01', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),y2(1)) @@ -19875,7 +19923,7 @@ c myld = kjpl00 CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r01', '' ) ENDIF ENDIF @@ -19902,7 +19950,7 @@ c myld = kjpl00 CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r01', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),y2(1)) @@ -19912,7 +19960,7 @@ c myld = kjpl00 CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r01', '' ) ENDIF ENDIF @@ -19953,7 +20001,7 @@ c myld = kjpl00 CALL inter2(nw,wl,yg1, n1,x1,y1, ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r01', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),y2(1)) @@ -19964,7 +20012,7 @@ c myld = kjpl00 CALL inter2(nw,wl,yg2, n2,x2,y2, ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r01', '' ) ENDIF * phi data at 298 and 230 K @@ -19977,7 +20025,7 @@ c myld = kjpl00 CALL inter2(nw,wl,yg3, n3,x3,y3, ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr,jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r01', '' ) ENDIF CALL addpnt(x4,y4,kdata,n4,x4(1)*(1.-deltax),y4(1)) @@ -19988,7 +20036,7 @@ c myld = kjpl00 CALL inter2(nw,wl,yg4, n4,x4,y4, ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr,jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r01', '' ) ENDIF ENDIF @@ -20144,6 +20192,7 @@ c myld = kjpl00 *= defined =* *-----------------------------------------------------------------------------* + use mode_msg IMPLICIT NONE c INCLUDE 'params' @@ -20285,7 +20334,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r02', '' ) ENDIF do iw = 1, nw - 1 @@ -20317,7 +20366,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r02', '' ) ENDIF @@ -20328,7 +20377,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r02', '' ) ENDIF DO iw = 1, nw - 1 @@ -20386,6 +20435,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' * BROADLY USED PARAMETERS: @@ -20532,7 +20583,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r03', '' ) ENDIF ELSEIF(mabs .EQ. 2) THEN @@ -20556,7 +20607,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r03', '' ) ENDIF * use JPL94 for wavelengths longer than 600 nm @@ -20587,7 +20638,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r03', '' ) ENDIF ENDIF @@ -20794,6 +20845,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -20924,7 +20977,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1, n1,x1,y1, ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr,jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r04', '' ) ENDIF CALL addpnt(x2,B,kdata, n2,x2(1)*(1.-deltax),0.) @@ -20935,7 +20988,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2, n2,x2,B, ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr,jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r04', '' ) ENDIF @@ -21000,6 +21053,8 @@ c INCLUDE 'params' *= 05/98 Original, adapted from former JSPEC1 subroutine =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -21124,7 +21179,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r05', '' ) ENDIF ELSEIF(mabs .eq. 2) then @@ -21147,7 +21202,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r05', '' ) ENDIF ENDIF @@ -21197,6 +21252,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -21347,7 +21404,7 @@ C ENDDO CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r06', '' ) ENDIF @@ -21358,7 +21415,7 @@ C ENDDO CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r06', '' ) ENDIF * quantum yield = 1 @@ -21405,6 +21462,8 @@ C ENDDO *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -21518,7 +21577,7 @@ C* local CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r07', '' ) ENDIF * quantum yield = 1 @@ -21567,6 +21626,8 @@ C* local *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -21719,7 +21780,7 @@ C ENDIF CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r08', '' ) ENDIF A0 = 6.4761E+04 @@ -21803,6 +21864,8 @@ C ENDIF *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -21977,7 +22040,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r09', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),y2(1)) @@ -21987,7 +22050,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r09', '' ) ENDIF CALL addpnt(x3,y3,kdata,n3,x3(1)*(1.-deltax),y3(1)) @@ -22007,7 +22070,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg4,n4,x4,y4,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r09', '' ) ENDIF CALL addpnt(x5,y5,kdata,n5,x5(1)*(1.-deltax),y5(1)) @@ -22017,7 +22080,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg5,n5,x5,y5,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r09', '' ) ENDIF @@ -22079,7 +22142,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r09', '' ) ENDIF * quantum yield = 1 @@ -22151,6 +22214,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -22335,7 +22400,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j-1) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r09', '' ) ENDIF ELSEIF (mopt1 .EQ. 2 .OR. mopt1 .EQ. 3 .OR. mopt1 .EQ. 4) THEN @@ -22357,7 +22422,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j-1) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r09', '' ) ENDIF IF(mopt1 .EQ. 3) THEN @@ -22411,7 +22476,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r10', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),0.) @@ -22421,7 +22486,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg3,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r10', '' ) ENDIF ELSEIF(mopt1 .eq. 4) THEN @@ -22447,7 +22512,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r10', '' ) ENDIF CALL addpnt(x3,y3,kdata,n3,x3(1)*(1.-deltax),0.) @@ -22457,7 +22522,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg3,n3,x3,y3,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r10', '' ) ENDIF ENDIF @@ -22484,7 +22549,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j-1) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r10', '' ) ENDIF ELSEIF(mopt1 .EQ. 6) THEN @@ -22510,7 +22575,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r10', '' ) ENDIF CALL addpnt(x3,y3,kdata,n3,x3(1)*(1.-deltax),0.) @@ -22520,7 +22585,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg3,n3,x3,y3,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r10', '' ) ENDIF ENDIF @@ -22546,7 +22611,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg4,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j-1) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r10', '' ) ENDIF OPEN(NEWUNIT=ilu,FILE='DATAJ1/CH2O/CH2O_ii_mad.yld', @@ -22566,7 +22631,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg5,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r10', '' ) ENDIF ELSEIF(mopt2 .EQ. 2) then @@ -22592,7 +22657,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg4,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r10', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),y2(1)) @@ -22602,7 +22667,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg5,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r10', '' ) ENDIF * box-filling interpolation. @@ -22653,7 +22718,7 @@ c ENDDO CALL inter2(nw,wl,yg4,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r10', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),y2(1)) @@ -22663,7 +22728,7 @@ c ENDDO CALL inter2(nw,wl,yg5,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r10', '' ) ENDIF ENDIF @@ -22771,6 +22836,8 @@ c ENDDO *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -22928,7 +22995,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r11', '' ) ENDIF ELSEIF(mabs .EQ. 2) THEN @@ -22955,7 +23022,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r11', '' ) ENDIF ELSEIF(mabs .EQ. 3) THEN @@ -22978,7 +23045,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r11', '' ) ENDIF ELSEIF(mabs .EQ. 4) THEN @@ -23016,7 +23083,7 @@ c n = 1705 CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r11', '' ) ENDIF ELSEIF (mabs .EQ. 5) THEN @@ -23040,7 +23107,7 @@ c n = 1705 CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r11', '' ) ENDIF ENDIF @@ -23070,7 +23137,7 @@ c n = 1705 CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r11', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),0.) @@ -23080,7 +23147,7 @@ c n = 1705 CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r11', '' ) ENDIF DO iw = 1, nw-1 @@ -23106,7 +23173,7 @@ c n = 1705 CALL inter2(nw,wl,yg1,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r11', '' ) ENDIF OPEN(NEWUNIT=ilu,FILE='DATAJ1/CH3CHO/d021_ii.yld', @@ -23127,7 +23194,7 @@ c n = 1705 CALL inter2(nw,wl,yg2,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r11', '' ) ENDIF OPEN(NEWUNIT=ilu,FILE='DATAJ1/CH3CHO/d021_iii.yld', @@ -23148,7 +23215,7 @@ c n = 1705 CALL inter2(nw,wl,yg3,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r11', '' ) ENDIF ENDIF @@ -23173,7 +23240,7 @@ c n = 1705 CALL inter2(nw,wl,yg4,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r11', '' ) ENDIF * combine: @@ -23265,6 +23332,8 @@ c x = yg4(iw) *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -23402,7 +23471,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r12', '' ) ENDIF ELSEIF(mabs .EQ. 2) THEN @@ -23425,7 +23494,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r12', '' ) ENDIF ENDIF @@ -23453,12 +23522,12 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r12', '' ) ENDIF ELSEIF (myld .EQ. 2) THEN - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r12', '' ) ENDIF @@ -23522,6 +23591,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -23695,7 +23766,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r13', '' ) ENDIF @@ -23719,7 +23790,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r13', '' ) ENDIF ELSEIF(mabs .EQ. 3) THEN @@ -23747,7 +23818,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r13', '' ) ENDIF ELSEIF(mabs .EQ. 4) THEN @@ -23772,7 +23843,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r13', '' ) ENDIF ELSEIF(mabs .eq. 5) then @@ -23797,7 +23868,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r13', '' ) ENDIF ENDIF @@ -23830,7 +23901,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r13', '' ) ENDIF n2 = n @@ -23844,7 +23915,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n2,x1,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r13', '' ) ENDIF n3 = n @@ -23858,7 +23929,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg3,n3,x1,y3,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r13', '' ) ENDIF ENDIF @@ -23954,6 +24025,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -24112,7 +24185,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r14', '' ) ENDIF OPEN(NEWUNIT=ilu,FILE='DATAJ1/CH3COCHO/CH3COCHO_iup2.abs', @@ -24134,7 +24207,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r14', '' ) ENDIF DO iw = 1, nw-1 @@ -24162,7 +24235,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r14', '' ) ENDIF ELSEIF(mabs .GT. 2 .and. mabs .lt. 7) THEN @@ -24203,7 +24276,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r14', '' ) ENDIF ELSEIF(mabs .EQ. 7) THEN @@ -24227,7 +24300,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r14', '' ) ENDIF @@ -24249,7 +24322,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r14', '' ) ENDIF do iw = 1, nw-1 @@ -24277,7 +24350,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r14', '' ) ENDIF ENDIF @@ -24306,7 +24379,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r14', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),1.) @@ -24316,7 +24389,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r14', '' ) ENDIF ENDIF @@ -24436,6 +24509,8 @@ c kq = 1.93e4 * EXP(-5639/wc(iw)) *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -24585,7 +24660,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r15', '' ) ENDIF ELSEIF(mabs .EQ. 2) THEN @@ -24609,7 +24684,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r15', '' ) ENDIF ELSEIF(mabs .EQ. 3) THEN @@ -24637,7 +24712,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r15', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),0.) @@ -24647,7 +24722,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r15', '' ) ENDIF @@ -24658,7 +24733,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg3,n3,x3,y3,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r15', '' ) ENDIF ELSEIF(mabs.eq.4) then @@ -24691,7 +24766,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r15', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),0.) @@ -24701,7 +24776,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r15', '' ) ENDIF CALL addpnt(x3,y3,kdata,n3,x3(1)*(1.-deltax),0.) @@ -24711,7 +24786,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg3,n3,x3,y3,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r15', '' ) ENDIF CALL addpnt(x4,y4,kdata,n4,x4(1)*(1.-deltax),0.) @@ -24721,7 +24796,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg4,n4,x4,y4,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r15', '' ) ENDIF ENDIF @@ -24746,7 +24821,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r15', '' ) ENDIF ENDIF @@ -24857,6 +24932,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -24995,7 +25072,7 @@ c $ STATUS='old') CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r16', '' ) ENDIF ELSEIF (mabs .EQ. 2) THEN @@ -25019,7 +25096,7 @@ c $ STATUS='old') CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r16', '' ) ENDIF ELSEIF (mabs .EQ. 3) THEN @@ -25042,7 +25119,7 @@ c $ STATUS='old') CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r16', '' ) ENDIF ELSEIF (mabs .EQ. 4) THEN @@ -25065,7 +25142,7 @@ c $ STATUS='old') CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r16', '' ) ENDIF ELSEIF (mabs .EQ. 5) THEN @@ -25089,7 +25166,7 @@ c $ STATUS='old') CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r16', '' ) ENDIF ENDIF @@ -25151,6 +25228,8 @@ c $ STATUS='old') *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -25286,7 +25365,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r17', '' ) ENDIF ELSEIF(mabs .EQ. 2) THEN @@ -25315,7 +25394,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r17', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),y2(1)) @@ -25325,7 +25404,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r17', '' ) ENDIF ELSEIF (mabs .EQ. 3) THEN @@ -25350,7 +25429,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r17', '' ) ENDIF ELSEIF(mabs .EQ. 4) THEN @@ -25380,7 +25459,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r17', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),y2(1)) @@ -25390,7 +25469,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r17', '' ) ENDIF ELSEIF (mabs .EQ. 5) THEN @@ -25414,7 +25493,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r17', '' ) ENDIF ELSEIF (mabs .EQ. 6) THEN @@ -25449,7 +25528,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r17', '' ) ENDIF ELSEIF (mabs .EQ. 8) THEN @@ -25473,7 +25552,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r17', '' ) ENDIF ELSEIF (mabs. eq. 9) THEN @@ -25500,7 +25579,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r17', '' ) ENDIF n2 = n @@ -25511,7 +25590,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r17', '' ) ENDIF ENDIF @@ -25571,6 +25650,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -25720,7 +25801,7 @@ C ENDIF CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r18', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),0.) @@ -25730,7 +25811,7 @@ C ENDIF CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r18', '' ) ENDIF * quantum yield: @@ -25786,6 +25867,8 @@ C ENDIF *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -25903,7 +25986,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r19', '' ) ENDIF *** quantum yield unity (Calvert and Pitts) @@ -25948,6 +26031,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -26076,7 +26161,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r20', '' ) ENDIF ELSEIF(mabs .EQ. 2) THEN @@ -26100,7 +26185,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r20', '' ) ENDIF ENDIF @@ -26180,6 +26265,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -26298,7 +26385,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r21', '' ) ENDIF *** quantum yield unity @@ -26343,6 +26430,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -26461,7 +26550,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r22', '' ) ENDIF *** quantum yield unity (Nolle et al.) @@ -26507,6 +26596,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -26636,7 +26727,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r23', '' ) ENDIF * sigma @ 210 K @@ -26650,7 +26741,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r23', '' ) ENDIF *** quantum yield assumed to be unity @@ -26699,6 +26790,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -26828,7 +26921,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r24', '' ) ENDIF * sigma @ 210 K @@ -26842,7 +26935,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r24', '' ) ENDIF *** quantum yield assumed to be unity @@ -26890,6 +26983,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -27009,7 +27104,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r25', '' ) ENDIF **** quantum yield assumed to be unity @@ -27055,6 +27150,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -27177,7 +27274,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r26', '' ) ENDIF **** quantum yield assumed to be unity @@ -27224,6 +27321,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -27346,7 +27445,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r27', '' ) ENDIF **** quantum yield assumed to be unity @@ -27393,6 +27492,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -27511,7 +27612,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r28', '' ) ENDIF **** quantum yield assumed to be unity @@ -27558,6 +27659,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -27690,7 +27793,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r29', '' ) ENDIF ** sigma @ 250 K @@ -27704,7 +27807,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r29', '' ) ENDIF ** sigma @ 210 K @@ -27718,7 +27821,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r29', '' ) ENDIF **** quantum yield assumed to be unity @@ -27774,6 +27877,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -27906,7 +28011,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r30', '' ) ENDIF ** sigma @ 279 K @@ -27920,7 +28025,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r30', '' ) ENDIF ** sigma @ 255 K @@ -27934,7 +28039,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r30', '' ) ENDIF **** quantum yield assumed to be unity @@ -27989,6 +28094,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -28109,7 +28216,7 @@ C INTEGER n1, n2, n3, n4, n5 IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r31', '' ) ENDIF **** quantum yield assumed to be unity @@ -28155,6 +28262,8 @@ C INTEGER n1, n2, n3, n4, n5 *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -28565,6 +28674,8 @@ C ENDDO *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -28685,7 +28796,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r34', '' ) ENDIF **** quantum yield assumed to be unity @@ -28946,6 +29057,8 @@ c sq(j,iz,iw) = qy * EXP(sum) *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -29066,7 +29179,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r36', '' ) ENDIF **** quantum yield assumed to be unity @@ -29113,6 +29226,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -29233,7 +29348,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r37', '' ) ENDIF **** quantum yield assumed to be unity @@ -29280,6 +29395,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -29418,7 +29535,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r38', '' ) ENDIF ** sigma @ 270 K @@ -29432,7 +29549,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r38', '' ) ENDIF ** sigma @ 250 K @@ -29446,7 +29563,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r38', '' ) ENDIF ** sigma @ 230 K @@ -29460,7 +29577,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r38', '' ) ENDIF ** sigma @ 210 K @@ -29474,7 +29591,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r38', '' ) ENDIF **** quantum yield assumed to be unity @@ -29540,6 +29657,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -29659,7 +29778,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r39', '' ) ENDIF **** quantum yield: absolute quantum yield has not been reported yet, but @@ -29714,6 +29833,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -29834,7 +29955,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r40', '' ) ENDIF **** quantum yield unity (Molina and Molina) @@ -29881,6 +30002,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -30001,7 +30124,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r41', '' ) ENDIF **** quantum yield assumed to be unity @@ -30048,6 +30171,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -30168,7 +30293,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r42', '' ) ENDIF **** quantum yield assumed to be unity @@ -30215,6 +30340,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -30337,7 +30464,7 @@ c INCLUDE 'params' IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r43', '' ) ENDIF **** quantum yield assumed to be unity @@ -30544,6 +30671,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -30665,7 +30794,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r45', '' ) ENDIF n2 = n @@ -30676,7 +30805,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r45', '' ) ENDIF n3 = n @@ -30687,7 +30816,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg3,n3,x3,y3,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r45', '' ) ENDIF DO iw = 1, nw-1 @@ -30751,6 +30880,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -30872,7 +31003,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r46', '' ) ENDIF *** quantum yields (from jpl97) @@ -30922,6 +31053,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -31049,7 +31182,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r47', '' ) ENDIF ELSEIF(mabs .EQ. 2) THEN @@ -31123,6 +31256,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -31252,7 +31387,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r101', '' ) ENDIF ELSEIF(mabs .EQ. 2) THEN @@ -31277,7 +31412,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r101', '' ) ENDIF ENDIF @@ -31337,6 +31472,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -31461,7 +31598,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r102', '' ) ENDIF ELSEIF(mabs. EQ. 2) THEN @@ -31485,7 +31622,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r102', '' ) ENDIF ENDIF @@ -31542,6 +31679,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -31665,7 +31804,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r103', '' ) ENDIF ELSEIF(mabs .EQ. 2) THEN @@ -31689,7 +31828,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r103', '' ) ENDIF ENDIF @@ -31745,6 +31884,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -31866,7 +32007,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r104', '' ) ENDIF * quantum yields assumed to be 0.01 (upper limit) @@ -31920,6 +32061,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -32042,7 +32185,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r105', '' ) ENDIF ELSEIF (mabs .eq. 2) then @@ -32066,7 +32209,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r105', '' ) ENDIF ENDIF @@ -32121,6 +32264,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -32243,7 +32388,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r106', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2, 0.,y2(1)) @@ -32251,7 +32396,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r106', '' ) ENDIF * quantum yield = 1 @@ -32305,6 +32450,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -32427,7 +32574,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r107', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2, 0.,y2(1)) @@ -32435,7 +32582,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r107', '' ) ENDIF * quantum yield = 1 @@ -32930,6 +33077,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -33046,7 +33195,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r111', '' ) ENDIF * quantum yield = 1 @@ -33097,6 +33246,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -33220,7 +33371,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r112', '' ) ENDIF ELSEIF(mabs .eq. 2) then @@ -33243,7 +33394,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r112', '' ) ENDIF ENDIF @@ -33577,6 +33728,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -33691,7 +33844,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r115', '' ) ENDIF qy = 1. @@ -33726,6 +33879,8 @@ c INCLUDE 'params' *= T 75 NO3-(aq) -> NO2- + O(3P) =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -33857,7 +34012,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r118', '' ) ENDIF n2 = n @@ -33868,7 +34023,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r118', '' ) ENDIF elseif (mabs .eq. 2) then @@ -33895,7 +34050,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r118', '' ) ENDIF endif @@ -33954,6 +34109,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -34070,7 +34227,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r119', '' ) ENDIF * Quantum Yields from @@ -34125,6 +34282,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -34251,7 +34410,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r120', '' ) ENDIF CALL addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),0.) @@ -34261,7 +34420,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r120', '' ) ENDIF * quantum yields from Harwood et al., at 308 nm @@ -34317,6 +34476,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -34437,7 +34598,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r121', '' ) ENDIF * quantum yields assumed unity @@ -34489,6 +34650,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -34609,7 +34772,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r122', '' ) ENDIF * quantum yields are pressure dependent between air number densities @@ -34667,6 +34830,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -34788,7 +34953,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r123', '' ) ENDIF * quantum yields assumed unity @@ -34838,6 +35003,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -34956,7 +35123,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r124', '' ) ENDIF * quantum yields assumed unity @@ -35004,6 +35171,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -35143,7 +35312,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r125', '' ) ENDIF DO iw = 1, nw-1 @@ -35218,6 +35387,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -35341,7 +35512,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r126', '' ) ENDIF elseif (mabs .eq. 2) then @@ -35364,7 +35535,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r126', '' ) ENDIF endif @@ -35414,6 +35585,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -35531,7 +35704,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r127', '' ) ENDIF * quantum yields assumed unity @@ -35579,6 +35752,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -35697,7 +35872,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r128', '' ) ENDIF * quantum yields assumed unity @@ -35746,6 +35921,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE C INCLUDE 'params' @@ -35865,7 +36042,7 @@ C INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r129', '' ) ENDIF * quantum yields assumed unity @@ -35915,6 +36092,8 @@ C INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -36032,7 +36211,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r130', '' ) ENDIF * quantum yields assumed unity @@ -36079,6 +36258,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -36232,7 +36413,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg223,nn,x223,y223,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r131', '' ) ENDIF nn = n @@ -36243,7 +36424,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg243,nn,x243,y243,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r131', '' ) ENDIF nn = n @@ -36254,7 +36435,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg263,nn,x263,y263,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r131', '' ) ENDIF nn = n @@ -36265,7 +36446,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg298,nn,x298,y298,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r131', '' ) ENDIF nn = n @@ -36276,7 +36457,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg323,nn,x323,y323,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r131', '' ) ENDIF nn = n @@ -36287,7 +36468,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg343,nn,x343,y343,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r131', '' ) ENDIF * quantum yields assumed unity @@ -36362,6 +36543,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -36498,7 +36681,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg204,nn,x204,y204,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r132', '' ) ENDIF nn = n296 @@ -36509,7 +36692,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg296,nn,x296,y296,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r132', '' ) ENDIF nn = n378 @@ -36520,7 +36703,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg378,nn,x378,y378,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r132', '' ) ENDIF * quantum yields assumed unity @@ -36585,6 +36768,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -36705,7 +36890,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,nn,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r133', '' ) ENDIF * quantum yields assumed unity @@ -36757,6 +36942,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -36877,7 +37064,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,nn,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r134', '' ) ENDIF * quantum yields assumed unity @@ -36928,6 +37115,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -37048,7 +37237,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,nn,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r135', '' ) ENDIF * quantum yields assumed unity @@ -37097,6 +37286,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -37222,7 +37413,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,nn,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r136', '' ) ENDIF * quantum yields assumed unity @@ -37271,6 +37462,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -37389,7 +37582,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,nn,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r137', '' ) ENDIF * quantum yields assumed unity @@ -37439,6 +37632,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -37575,7 +37770,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n1,x1,y298,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j-1) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'pxCH2O', '' ) ENDIF CALL addpnt(x2,tcoef,kdata,n2,x2(1)*(1.-deltax),0.) @@ -37585,7 +37780,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n2,x2,tcoef,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j-1) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'pxCH2O', '' ) ENDIF * quantum yields: Read, terminate, interpolate: @@ -37610,7 +37805,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg3,n1,x1,qr,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j-1) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'pxCH2O', '' ) ENDIF CALL addpnt(x2,qm,kdata,n2,x2(1)*(1.-deltax),qm(1)) @@ -37620,7 +37815,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg4,n2,x2,qm,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j-1) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'pxCH2O', '' ) ENDIF * combine gridded quantities: @@ -37698,6 +37893,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -37816,7 +38013,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,nn,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r138', '' ) ENDIF * quantum yields assumed unity @@ -37865,6 +38062,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -37983,7 +38182,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,nn,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r139', '' ) ENDIF * quantum yields assumed unity @@ -38032,6 +38231,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -38151,7 +38352,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r140', '' ) ENDIF * compute temperature correction factors: @@ -38223,6 +38424,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -38349,7 +38552,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r141', '' ) ENDIF n2 = n @@ -38360,7 +38563,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,n2,x2,y2,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r141', '' ) ENDIF * quantum yield = 1 @@ -38414,6 +38617,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -38537,7 +38742,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r142', '' ) ENDIF * quantum yield = 1 @@ -38586,6 +38791,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -38709,7 +38916,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r143', '' ) ENDIF * quantum yield = 1 @@ -38758,6 +38965,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -38881,7 +39090,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,n1,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r144', '' ) ENDIF * quantum yield = 1 @@ -38928,6 +39137,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -39045,7 +39256,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,nn,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r145', '' ) ENDIF * quantum yields assumed unity @@ -39096,6 +39307,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -39212,7 +39425,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg1,nn,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r146', '' ) ENDIF * quantum yields @@ -39235,7 +39448,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg2,nn,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r146', '' ) ENDIF * combine @@ -39282,6 +39495,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -39398,7 +39613,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,nn,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r147', '' ) ENDIF * quantum yields @@ -39447,6 +39662,8 @@ c INCLUDE 'params' *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -39563,7 +39780,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,nn,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r148', '' ) ENDIF * quantum yields @@ -39617,6 +39834,8 @@ c INCLUDE 'params' *= and ReLACS3 mecanisms - March 2018 =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -39733,7 +39952,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r149', '' ) ENDIF * quantum yields assumed to be 0.34 @@ -39790,6 +40009,8 @@ c INCLUDE 'params' *= Routine added by M. Leriche for BALD in RACM2 mecanism - March 2018 =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -39905,7 +40126,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r150', '' ) ENDIF * quantum yields assumed to be 0.06 @@ -39961,6 +40182,8 @@ c INCLUDE 'params' *= Adapted from TUVLaMP original 05/98 - March 2018 =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -40077,7 +40300,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r151', '' ) ENDIF * quantum yields from: @@ -40139,6 +40362,8 @@ c INCLUDE 'params' *= Adapted from TUVLaMP original 05/98 - March 2018 =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -40255,7 +40480,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x,y,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, jlabel(j) - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'r152', '' ) ENDIF * quantum yields from: @@ -40671,6 +40896,8 @@ CCC FILE setcld.f *= wavelength =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -40800,7 +41027,9 @@ C grid (which has NLEVEL points: Z(1:NLEVEL) = AZ(*) * asymmetry factor = 0.85 n = nlevel + 1 - if (n .gt. kdata) stop "SETCLD: not enough memory: KDATA" + if (n .gt. kdata) + & call Print_msg( NVERB_FATAL, 'GEN', 'setcld', + & 'not enough memory: KDATA' ) zd(1) = 0. do 110, i = 2, n zd(i) = 0.5*( z(i-1) + z(i) ) @@ -41489,6 +41718,8 @@ c INCLUDE 'params' *= send email to: sasha@ucar.edu =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -41592,7 +41823,7 @@ c INCLUDE 'params' CALL inter2(nw,wl,yg,n,x1,y1,ierr) IF (ierr .NE. 0) THEN WRITE(*,*) ierr, fil - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'rdice_acff', '' ) ENDIF DO 13, l = 1, nw-1 @@ -42213,6 +42444,8 @@ CCC FILE swchem.f *= defined =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -42635,7 +42868,7 @@ C CALL r145(nw,wl,wc,nz,tlev,airden,j,sq,jlabel,tpflag,kout) **************************************************************** - IF (j .GT. kj) STOP '1002' + IF (j .GT. kj) call Print_msg( NVERB_FATAL, 'GEN', 'swchem', '' ) RETURN END @@ -42664,6 +42897,8 @@ CCC FILE vpair.f *= altitude layer (column vertical increment =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE c INCLUDE 'params' @@ -42804,7 +43039,8 @@ c INCLUDE 'params' airlog(i) = ALOG(air(i)) ENDDO - IF(z(nz) .GT. zd(nd)) STOP 'in vpair: ztop < zdata' + IF(z(nz) .GT. zd(nd)) call Print_msg( NVERB_FATAL, 'GEN', + & 'vpair', 'ztop < zdata' ) CALL inter1(nz,z,conlog, nd,zd,airlog) DO i = 1, nz @@ -42881,6 +43117,8 @@ CCC FILE vpo3.f *= case it is necessary to convert from mixing ratio units (e.g. ppb). =* *-----------------------------------------------------------------------------* + use mode_msg + IMPLICIT NONE ******** @@ -43055,7 +43293,9 @@ c INCLUDE 'params' IF (to3new .GT. nzero) THEN to3old = fsum(nz-1, col)/2.687e16 - IF(to3old .LT. pzero) STOP 'in vpo3: to3old is too small' + IF(to3old .LT. pzero) + & call Print_msg( NVERB_FATAL, 'GEN', 'vpo3', + & 'to3old is too small' ) scale = to3new/to3old DO i = 1, nz-1 col(i) = col(i) * scale diff --git a/src/MNH/ch_field_valuen.f90 b/src/MNH/ch_field_valuen.f90 index 22796effc..0693c28a2 100644 --- a/src/MNH/ch_field_valuen.f90 +++ b/src/MNH/ch_field_valuen.f90 @@ -70,12 +70,16 @@ END MODULE MODI_CH_FIELD_VALUE_n !! 11/08/98 (N. Asencio) add parallel code !! 28/07/99 (V. Crassier & K. Suhre) modify initialization scheme (1-D) !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! EXTERNAL !! -------- -USE MODI_CH_OPEN_INPUT ! open general purpose ASCII input file USE MODD_IO, ONLY: TFILEDATA + USE MODE_IO_FILE, ONLY: IO_File_close +use mode_msg + +USE MODI_CH_OPEN_INPUT ! open general purpose ASCII input file !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -100,6 +104,7 @@ INTEGER, INTENT(IN) :: KVERB ! verbosity level ! !* 0.2 declarations local variables ! +character(len=10) :: yval ! String for error message INTEGER :: JI, JJ ! loop control variables INTEGER :: ICHANNEL ! I/O channel for file input CHARACTER(LEN=40) :: YFORMAT ! format for input @@ -177,12 +182,10 @@ firstcall: IF (GSFIRSTCALL) THEN DO JI = 2, ISLEVEL IF (ZINF .GE. ZSZPROF(JI)) THEN WRITE(KLUOUT,*) & - "CH_FIELD_VALUE_n-Error: Z-profile must be in increasing order!" + "CH_FIELD_VALUE_n-Error: Z-profile must be in increasing order!" WRITE(KLUOUT,*) " minimum value: ",ZINF," at level ",IINF WRITE(KLUOUT,*) " current value: ",ZSZPROF(JI)," at level ",JI - ! callabortstop - CALL ABORT - STOP "Program stopped by CH_FIELD_VALUE_n" + call Print_msg( NVERB_FATAL, 'GEN', 'CH_FIELD_VALUE_n', 'Z-profile must be in increasing order' ) ENDIF ZINF = ZSZPROF(JI) ; IINF=JI ENDDO @@ -236,10 +239,7 @@ firstcall: IF (GSFIRSTCALL) THEN WRITE(KLUOUT,*) "initial data is given as mixing ratio (part per par)" END IF ELSE - WRITE(KLUOUT,*) "CH_FIELD_VALUE_n ERROR: unit type unknown: ", HUNIT - ! callabortstop - CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'CH_FIELD_VALUE_n', 'unknown unit type: '//trim(HUNIT) ) ENDIF ! ! read number of initial values ISINIT @@ -327,19 +327,13 @@ ENDDO search_loop !* 2.5 check boundaries of IASSOACT and IINITACT ! IF ((IASSOACT.LE.0).OR.(IASSOACT.GT.ISPROF)) THEN - WRITE(KLUOUT,*) & - "CH_FIELD_VALUE_n-ERROR: unproper associated profile value:", IASSOACT - ! callabortstop - CALL ABORT - STOP + write( yval, '( I10 )' ) IASSOACT + call Print_msg( NVERB_FATAL, 'GEN', 'CH_FIELD_VALUE_n', 'invalid associated profile value: '//trim(yval) ) ENDIF ! IF ((IINITACT.LE.0).OR.(IINITACT.GT.ISINIT)) THEN - WRITE(KLUOUT,*) & - "CH_FIELD_VALUE_n-ERROR: unproper associated initial value:", IINITACT - ! callabortstop - CALL ABORT - STOP + write( yval, '( I10 )' ) IINITACT + call Print_msg( NVERB_FATAL, 'GEN', 'CH_FIELD_VALUE_n', 'invalid associated initial value: '//trim(yval) ) ENDIF ! !* 2.6 linear interpolation between IZINDEX and IZINDEX+1, diff --git a/src/MNH/ch_gauss.f90 b/src/MNH/ch_gauss.f90 index e26ede04a..4d974eeb4 100644 --- a/src/MNH/ch_gauss.f90 +++ b/src/MNH/ch_gauss.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 chimie 2006/05/18 13:07:25 -!----------------------------------------------------------------- !! ############################# MODULE MODI_CH_GAUSS !! ############################# @@ -58,10 +53,11 @@ END MODULE MODI_CH_GAUSS !! ------------- !! Original 24/02/95 (adapted from FORTRAN77 version in tools.k) !! 27/02/95 (K. Suhre) put in some more array syntax +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! EXTERNAL !! -------- -!! none +use mode_msg !! IMPLICIT ARGUMENTS !! ------------------ @@ -109,14 +105,11 @@ elimination_loop : DO JJ = 1, KDIM !* check for singulary matrix, print error message and stop !* if this is requested by KFAIL (see above for possible values for KFAIL) error : IF (ZMAX.LE.PPEPS) THEN - IF (KFAIL.GE.0) THEN - PRINT *, "Error message from subroutine CH_GAUSS: ", & - "singulary matrix cannot be inverted!" + IF ( KFAIL > 0 ) THEN + call Print_msg( NVERB_WARNING, 'GEN', 'CH_GAUSS', 'singulary matrix cannot be inverted' ) ENDIF - IF (KFAIL.EQ.0) THEN - !callabortstop - CALL ABORT - STOP 1 + IF ( KFAIL == 0 ) THEN + call Print_msg( NVERB_FATAL, 'GEN', 'CH_GAUSS', 'singulary matrix cannot be inverted' ) ENDIF KFAIL = 1 RETURN diff --git a/src/MNH/ch_ini_orilam.f90 b/src/MNH/ch_ini_orilam.f90 index be7064e27..a317f49cb 100644 --- a/src/MNH/ch_ini_orilam.f90 +++ b/src/MNH/ch_ini_orilam.f90 @@ -1,13 +1,8 @@ -!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !ORILAM_LIC for details. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 chimie 2007/03/02 13:59:36 -!----------------------------------------------------------------- !! ########################### MODULE MODI_CH_INI_ORILAM !! ########################### @@ -64,26 +59,30 @@ END MODULE MODI_CH_INI_ORILAM !! MODIFICATIONS !! ------------- !! Original -!! +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +!! !! EXTERNAL !! -------- !! !! IMPLICIT ARGUMENTS !! ------------------ -USE MODI_CH_AER_SOLV -USE MODI_CH_AER_TRANS USE MODD_CH_AEROSOL -USE MODD_CSTS_DUST, ONLY : XDENSITY_DUST USE MODD_CH_M9_n, ONLY : CNAMES USE MODD_CST, ONLY : & XPI & !Definition of pi - ,XBOLTZ & ! Boltzman constant + ,XBOLTZ & ! Boltzman constant ,XAVOGADRO & ![molec/mol] avogadros number ,XG & ! Gravity constant ,XP00 & ! Reference pressure ,XMD & ![kg/mol] molar weight of air ,XRD & ! Gaz constant for dry air ,XCPD ! Cpd (dry air) +USE MODD_CSTS_DUST, ONLY : XDENSITY_DUST +! +use mode_msg +! +USE MODI_CH_AER_SOLV +USE MODI_CH_AER_TRANS ! !* 0. DECLARATIONS ! ------------ @@ -106,6 +105,7 @@ CHARACTER(LEN=10), INTENT(IN) :: GSCHEME ! !* 0.2 declarations of local variables ! +character(len=10) :: yspec ! String for error message REAL, DIMENSION(SIZE(PM,1),(JPMODE)*3) :: ZDMINTRA, ZDMINTER, ZDMCOND REAL, DIMENSION(SIZE(PM,1),JPMODE) :: ZMASK, ZSOLORG @@ -151,10 +151,8 @@ ENDDO ! verify that all array elements are defined DO JI = 1, SIZE(XRHOI) IF (XRHOI(JI) .LE. 0.0) THEN - PRINT *, 'CH_AER_MOD_INIT ERROR: density for species ', JI, ' not defined' - ! callabortstop - CALL ABORT - STOP 'CH_AER_MOD_INIT ERROR: density not defined' + write( yspec, '( I10 )' ) JI + call Print_msg( NVERB_FATAL, 'GEN', 'CH_AER_MOD_INIT', 'density for species '//trim(yspec)//' not defined' ) END IF ENDDO ! diff --git a/src/MNH/ch_init_budgetn.f90 b/src/MNH/ch_init_budgetn.f90 index a8f26864b..d84ff1f75 100644 --- a/src/MNH/ch_init_budgetn.f90 +++ b/src/MNH/ch_init_budgetn.f90 @@ -1,4 +1,9 @@ -!! ########################### +!MNH_LIC Copyright 2016-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +!! ########################### MODULE MODI_CH_INIT_BUDGET_n !! ########################### !! @@ -43,16 +48,19 @@ END MODULE MODI_CH_INIT_BUDGET_n !! !! MODIFICATIONS !! ------------- -!! Original October 2016 +!! Original October 2016 +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ -USE MODD_CH_MNHC_n, ONLY: LUSECHAQ, CSPEC_BUDGET -USE MODD_CH_M9_n, ONLY: CNAMES, NEQ USE MODD_CH_BUDGET_n, ONLY: NEQ_BUDGET, CNAMES_BUDGET, NSPEC_BUDGET +USE MODD_CH_M9_n, ONLY: CNAMES, NEQ +USE MODD_CH_MNHC_n, ONLY: LUSECHAQ, CSPEC_BUDGET USE MODD_DIAG_FLAG, ONLY : LCHEMDIAG, CSPEC_BU_DIAG -! + +use mode_msg + IMPLICIT NONE INTEGER, INTENT(IN) :: KLUOUT ! output listing channel @@ -112,9 +120,7 @@ IF (YWORKSTR /= '') THEN END IF END DO IF (GCHECKFAILED) THEN - WRITE(KLUOUT,*) 'Wrong (misspelled) CSPEC_BUDGET encountered...ABORTING !' - CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'CH_INIT_BUDGET_n', 'wrong (misspelled) CSPEC_BUDGET encountered' ) END IF ELSE DEALLOCATE(CNAMES_BUDGET) diff --git a/src/MNH/ch_init_meteo.f90 b/src/MNH/ch_init_meteo.f90 index d290e5196..74bc0ec52 100644 --- a/src/MNH/ch_init_meteo.f90 +++ b/src/MNH/ch_init_meteo.f90 @@ -53,12 +53,14 @@ END MODULE MODI_CH_INIT_METEO !! to interpolate between different forcings) !! 01/12/03 (Gazen) change Chemical scheme interface !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! !! EXTERNAL !! -------- USE MODI_CH_OPEN_INPUT USE MODE_IO_FILE, ONLY: IO_File_close +use mode_msg !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -78,8 +80,8 @@ TYPE(METEOTRANSTYPE), INTENT(OUT) :: TPM ! the meteo variables ! !* 0.2 declaration of local variables ! +character(len=10) :: ynum1, ynum2 ! Strings for error message INTEGER :: JI, JJ ! loop control -CHARACTER*80 :: YCOMMENT ! comment line in meteo update file INTEGER :: IMETEOVARS ! number of meteovars to be read from file and ! checked against NMETEOVARS INTEGER :: ILUMETEO @@ -100,14 +102,10 @@ READ(ILUMETEO,*) NMETEORECS ! ! check if number of meteovars in file corresponds to what the CCS expects IF (IMETEOVARS .NE. NMETEOVARS) THEN - PRINT *, "CH_INIT_METEO ERROR: number of meteo variables in file does not" - PRINT *, " correspond to the number expected by the CCS:" - PRINT *, " IMETEOVARS read: ", IMETEOVARS - PRINT *, " NMETEOVARS expected: ", NMETEOVARS - PRINT *, "The program will be stopped now!" - ! callabortstop - CALL ABORT - STOP 1 + write( ynum1, '( I10 )' ) IMETEOVARS + write( ynum2, '( I10 )' ) NMETEOVARS + call Print_msg( NVERB_FATAL, 'GEN', 'CH_INIT_METEO', 'number of meteo variables in file '//trim(ynum1)// & + ' does not correspond to the number expected by the CCS'//trim(ynum2) ) END IF ! read names for TPM%CMETEOVAR diff --git a/src/MNH/ch_init_prodlosstotn.f90 b/src/MNH/ch_init_prodlosstotn.f90 index 05d669ad4..a5547a445 100644 --- a/src/MNH/ch_init_prodlosstotn.f90 +++ b/src/MNH/ch_init_prodlosstotn.f90 @@ -1,4 +1,9 @@ -!! ########################### +!MNH_LIC Copyright 2016-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- +!! ########################### MODULE MODI_CH_INIT_PRODLOSSTOT_n !! ########################### !! @@ -43,7 +48,8 @@ END MODULE MODI_CH_INIT_PRODLOSSTOT_n !! !! MODIFICATIONS !! ------------- -!! Original October 2016 +!! Original October 2016 +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -52,7 +58,10 @@ USE MODD_CH_MNHC_n, ONLY: LUSECHAQ, CSPEC_PRODLOSS USE MODD_CH_M9_n, ONLY: CNAMES, NEQ USE MODD_CH_PRODLOSSTOT_n, ONLY: NEQ_PLT, CNAMES_PRODLOSST, NIND_SPEC USE MODD_DIAG_FLAG, ONLY : LCHEMDIAG, CSPEC_DIAG -IMPLICIT NONE + +use mode_msg + +IMPLICIT NONE INTEGER, INTENT(IN) :: KLUOUT ! output listing channel !local variables @@ -114,9 +123,7 @@ IF (YWORKSTR /= '') THEN END IF END DO IF (GCHECKFAILED) THEN - WRITE(KLUOUT,*) 'Wrong (misspelled) CSPEC encountered...ABORTING !' - CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'CH_INIT_PRODLOSSTOT_n', 'wrong (misspelled) CSPEC encountered' ) END IF ELSE DEALLOCATE(CNAMES_PRODLOSST) diff --git a/src/MNH/ch_init_rosenbrock.f90 b/src/MNH/ch_init_rosenbrock.f90 index e239dcad6..d18187f8c 100644 --- a/src/MNH/ch_init_rosenbrock.f90 +++ b/src/MNH/ch_init_rosenbrock.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2007-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ############################## MODULE MODI_CH_INIT_ROSENBROCK ! ############################## @@ -46,6 +47,7 @@ END MODULE MODI_CH_INIT_ROSENBROCK !! MODIFICATIONS !! ------------- !! Original 05/06/07 +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! !! IMPLICIT ARGUMENTS @@ -59,6 +61,8 @@ USE MODI_CH_SPARSE ! USE MODD_CH_M9_n, ONLY: NEQ, NEQAQ, NNONZEROTERMS USE MODD_CH_ROSENBROCK_n + +use mode_msg ! !* 0. DECLARATIONS ! ----------------- @@ -118,7 +122,7 @@ JLL_Loop2: DO JLL = 1, NSPARSEDIM WRITE(KLUOUT,*)"DIAGONAL ELEMENT IS FOUND FOR CHEMICAL COMPOUND" WRITE(KLUOUT,*)"NUMBER: ",JLL," IN THE JACOBIAN MATRIX !!!" WRITE(KLUOUT,*)"PLEASE MODIFY AND REPROCESS THE CHEMICAL SYSTEM" - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'CH_INIT_ROSENBROCK', 'no diagonal element found for chemical compound' ) ENDIF END DO ! diff --git a/src/MNH/ch_linssa.f90 b/src/MNH/ch_linssa.f90 index e1e5b03d1..e530c4541 100644 --- a/src/MNH/ch_linssa.f90 +++ b/src/MNH/ch_linssa.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 chimie 2006/05/18 13:07:25 -!----------------------------------------------------------------- !! ##################### MODULE MODI_CH_LINSSA !! ##################### @@ -65,9 +60,12 @@ SUBROUTINE CH_LINSSA(PTSIMUL, PDTACT, PCONC, PNEWCONC, KEQ, KVECNPT, KMI, & !! ------------- !! Original 25/04/95 !! Modification 01/12/03 (Gazen) change Chemical scheme interface +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! EXTERNAL !! -------- +use mode_msg + USE MODI_CH_FCN USE MODI_CH_JAC USE MODI_CH_GAUSS @@ -152,9 +150,7 @@ ENDDO IFAIL = 1 CALL CH_GAUSS(ZWORK,ZINV,KEQ,IFAIL) IF (IFAIL.NE.0) THEN -! callabortstop - CALL ABORT - STOP 'CH_LinSSA ERROR: matrix cannot be inverted by CH_GAUSS' + call Print_msg( NVERB_FATAL, 'GEN', 'CH_LinSSA', 'matrix cannot be inverted by CH_GAUSS' ) ENDIF ! !* 5. CALCULATE 1/2 * (P+I) * f^n diff --git a/src/MNH/ch_meteo_trans_c2r2.f90 b/src/MNH/ch_meteo_trans_c2r2.f90 index f8265684b..02c25bb71 100644 --- a/src/MNH/ch_meteo_trans_c2r2.f90 +++ b/src/MNH/ch_meteo_trans_c2r2.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ $Date$ -!----------------------------------------------------------------- !! ############################### MODULE MODI_CH_METEO_TRANS_C2R2 !! ############################### @@ -101,6 +97,7 @@ SUBROUTINE CH_METEO_TRANS_C2R2(KL, PRHODJ, PRHODREF, PRTSM, PCCTSM, PCRTSM, & !! 14/05/08 (M. Leriche) include raindrops and cloud droplets mean radius !! 05/06/08 (M. Leriche) calculate LWC and LWR in coherence with time spliting scheme !! 05/11/08 (M. Leriche) split in two routines for 1-moment and 2-moment cloud schemes +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! EXTERNAL !! -------- @@ -126,6 +123,8 @@ USE MODD_RAIN_C2R2_DESCR, ONLY: XRTMIN, & ! min values of the water m. r. XLBC, XLBEXC, & !shape param. of the cloud droplets XLBR, XLBEXR !shape param. of the raindrops !! +use mode_msg + USE MODI_GAMMA ! !------------------------------------------------------------------------------- @@ -188,7 +187,8 @@ firstcall : IF (GSFIRSTCALL) THEN WRITE(KLUOUT,*) " NMETEOVARS expected: ", NMETEOVARS WRITE(KLUOUT,*) "Check the definition of NMETEOVARS in your .chf file." WRITE(KLUOUT,*) "The program will be stopped now!" - STOP 1 + call Print_msg( NVERB_FATAL, 'GEN', 'CH_METEO_TRANS_C2R2', & + 'number of meteovars to transfer does not correspond to the expected number.' ) END IF ! !* 1.2 initialize names of meteo vars diff --git a/src/MNH/ch_meteo_trans_kess.f90 b/src/MNH/ch_meteo_trans_kess.f90 index fe2bf8559..74bd129b6 100644 --- a/src/MNH/ch_meteo_trans_kess.f90 +++ b/src/MNH/ch_meteo_trans_kess.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ $Date$ -!----------------------------------------------------------------- !! ############################### MODULE MODI_CH_METEO_TRANS_KESS !! ############################### @@ -99,6 +95,7 @@ SUBROUTINE CH_METEO_TRANS_KESS(KL, PRHODJ, PRHODREF, PRTSM, PTHT, PABST, & !! 14/05/08 (M. Leriche) include raindrops and cloud droplets mean radius !! 05/06/08 (M. Leriche) calculate LWC and LWR in coherence with time spliting scheme !! 05/11/08 (M. Leriche) split in two routines for 1-moment and 2-moment cloud schemes +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! EXTERNAL !! -------- @@ -125,6 +122,8 @@ USE MODD_RAIN_ICE_DESCR, ONLY: XNUC, XALPHAC, & !Cloud droplets distrib. param XLBR, XLBEXR, & !shape param. of the raindrops XCONC_LAND !! +use mode_msg + USE MODI_GAMMA ! !------------------------------------------------------------------------------- @@ -185,7 +184,8 @@ firstcall : IF (GSFIRSTCALL) THEN WRITE(KLUOUT,*) " NMETEOVARS expected: ", NMETEOVARS WRITE(KLUOUT,*) "Check the definition of NMETEOVARS in your .chf file." WRITE(KLUOUT,*) "The program will be stopped now!" - STOP 1 + call Print_msg( NVERB_FATAL, 'GEN', 'CH_METEO_TRANS_KESS', & + 'number of meteovars to transfer does not correspond to the expected number.' ) END IF ! !* 1.2 initialize names of meteo vars diff --git a/src/MNH/ch_monitorn.f90 b/src/MNH/ch_monitorn.f90 index 9ea38d3e4..c5357b6a1 100644 --- a/src/MNH/ch_monitorn.f90 +++ b/src/MNH/ch_monitorn.f90 @@ -114,6 +114,7 @@ END MODULE MODI_CH_MONITOR_n !! 01/10/17 (C.Lac) add correction of negativity !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 12/02/2019: bugfix: ZINPRR was not initialized all the time +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! EXTERNAL !! -------- @@ -143,6 +144,7 @@ USE MODI_CH_AER_DEPOS ! USE MODE_ll USE MODE_MODELN_HANDLER +use mode_msg ! USE MODI_WRITE_TS1D USE MODD_CST, ONLY : XMNH_TINY @@ -625,9 +627,7 @@ SELECT CASE (CCH_TDISCRETIZATION) IF (KVERB >= 10) WRITE(KLUOUT,*) "CH_MONITOR_n: using LAGGED option" CASE DEFAULT ! the following line should never be reached: - ! callabortstop - CALL ABORT - STOP "CH_MONITOR_n: CCH_TDISCRETIZATION option not valid" + call Print_msg( NVERB_FATAL, 'GEN', 'CH_MONITOR_n', 'invalid CCH_TDISCRETIZATION option ('//trim(CCH_TDISCRETIZATION)//')' ) END SELECT ! ! diff --git a/src/MNH/ch_open_input.f90 b/src/MNH/ch_open_input.f90 index 8ffa174d6..f4518dbe4 100644 --- a/src/MNH/ch_open_input.f90 +++ b/src/MNH/ch_open_input.f90 @@ -60,6 +60,7 @@ SUBROUTINE CH_OPEN_INPUT(HCHEM_INPUT_FILE,HKEYWORD,TPFILE,KLUOUT,KVERB) !! 05/08/96 (K. Suhre) restructured !! 11/08/98 (N. Asencio) add parallel code !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! !! IMPLICIT ARGUMENTS @@ -76,6 +77,7 @@ USE MODD_IO, ONLY: TFILEDATA ! USE MODE_IO_FILE, ONLY: IO_File_open USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list +use mode_msg ! IMPLICIT NONE ! @@ -106,12 +108,7 @@ CALL IO_File_open(TPFILE,KRESP=IRESP) ILU = TPFILE%NLU ! IF (IRESP /= 0) THEN - WRITE(KLUOUT,*) "CH_OPEN_INPUT ERROR: unable to open file", HCHEM_INPUT_FILE - WRITE(KLUOUT,*) " IO_File_open return code is: ", IRESP - WRITE(KLUOUT,*) " the program will be stopped now" - ! callabortstop - CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'CH_OPEN_INPUT', 'unable to open file '//trim(HCHEM_INPUT_FILE) ) END IF ! !------------------------------------------------------------------------------- @@ -147,9 +144,6 @@ RETURN ! --------------------------------------- ! 100 CONTINUE -WRITE(KLUOUT,*) "CH_OPEN_INPUT-Error: Keyword ", HKEYWORD(1:8), " not found." -! callabortstop -CALL ABORT -STOP "Program stopped" +call Print_msg( NVERB_FATAL, 'GEN', 'CH_OPEN_INPUT', 'keyword '//HKEYWORD(1:8)//' not found' ) ! END SUBROUTINE CH_OPEN_INPUT diff --git a/src/MNH/ch_read_chem.f90 b/src/MNH/ch_read_chem.f90 index fe8e3fbe6..bd3ed06df 100644 --- a/src/MNH/ch_read_chem.f90 +++ b/src/MNH/ch_read_chem.f90 @@ -1,6 +1,6 @@ !MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !! ######################## @@ -57,10 +57,14 @@ END MODULE MODI_CH_READ_CHEM !! M.Leriche 2015 : masse molaire Black carbon à 12 g/mol !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! Philippe Wautelet: 10/01/2019: use newunit argument to open files +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! EXTERNAL !! -------- +use ISO_FORTRAN_ENV, only: IOSTAT_END + USE MODE_IO_FILE, ONLY: IO_File_close +use mode_msg ! USE MODI_CH_OPEN_INPUT USE MODI_CH_READ_VECTOR @@ -83,9 +87,12 @@ CHARACTER(LEN=*), INTENT(IN) :: HFILE ! name of the file to be read from ! !! DECLARATION OF LOCAL VARIABLES !! ------------------------------ +character(len=10) :: yval1, yval2 +character(len=256) :: yioerrmsg CHARACTER(LEN=32) :: YVARNAME CHARACTER(LEN=80) :: YINPUT INTEGER :: ILU ! unit number for IO +integer :: iresp INTEGER :: JI, JJ, IIN REAL :: ZMD REAL, DIMENSION(NSP+NCARB+NSOA) :: ZMI ! aerosol molecular mass in g/mol @@ -124,36 +131,40 @@ ELSE ! ! read line by line and check variable names ! - outer_loop : DO JI = 1, NEQ - READ(UNIT=ILU,FMT=*,END=999) YVARNAME, PCONC(JI) - check_loop : DO JJ = 1, 32 - IF (YVARNAME(JJ:JJ).NE.CNAMES(JI)(JJ:JJ)) THEN - PRINT *, 'CH_READ_CHEM: Error: variable names do not match:' - PRINT *, 'CNAMES = >>>', CNAMES(JI), '<<<' - PRINT *, 'read = >>>', YVARNAME, '<<<' -!callabortstop - CALL ABORT - STOP 'Program stopped by CH_READ_CHEM' - ENDIF - ENDDO check_loop - ENDDO outer_loop + DO JI = 1, NEQ + READ( UNIT=ILU, FMT=*, iostat=iresp, iomsg=yioerrmsg ) YVARNAME, PCONC(JI) + if ( iresp == IOSTAT_END) then + write( yval1, '( I10 )' ) NEQ + write( yval2, '( I10 )' ) JI-1 + call Print_msg( NVERB_FATAL, 'GEN', 'CH_READ_CHEM', 'not enough variables defined in file '//trim(HFILE)// & + ': number of gas lines in that file should be '//trim(yval1)//' but is '//trim(yval2) ) + else if ( iresp/= 0 ) then + call Print_msg( NVERB_FATAL, 'IO', 'CH_READ_CHEM', 'when reading '//trim(HFILE)//': '//trim(yioerrmsg) ) + end if + IF ( trim(YVARNAME) /= trim(CNAMES(JI)) ) THEN + call Print_msg( NVERB_FATAL, 'GEN', 'CH_READ_CHEM', 'variable names do not match: '//trim(CNAMES(JI))// & + ' /= '//trim(YVARNAME) ) + END IF + END DO !Conversion ppb to ppp PCONC(:) = PCONC(:) * 1E-9 IF (LORILAM) THEN - outer_loop2 : DO JI = 1, SIZE(PAERO,1) - READ(UNIT=ILU,FMT=*,END=997) YVARNAME, PAERO(JI) - check_loop2 : DO JJ = 1, 32 - IF (YVARNAME(JJ:JJ).NE.CAERONAMES(JI)(JJ:JJ)) THEN - PRINT *, 'CH_READ_CHEM: Error: variable names do not match:' - PRINT *, 'CAERONAMES = >>>', CAERONAMES(JI), '<<<' - PRINT *, 'read = >>>', YVARNAME, '<<<' -!callabortstop - CALL ABORT - STOP 'Program stopped by CH_READ_CHEM' - ENDIF - ENDDO check_loop2 - ENDDO outer_loop2 + DO JI = 1, SIZE(PAERO,1) + READ( UNIT=ILU, FMT=*, iostat=iresp, iomsg=yioerrmsg ) YVARNAME, PAERO(JI) + if ( iresp == IOSTAT_END) then + write( yval1, '( I10 )' ) SIZE(PAERO,1) + write( yval2, '( I10 )' ) JI-1 + call Print_msg( NVERB_FATAL, 'GEN', 'CH_READ_CHEM', 'not enough variables defined in file '//trim(HFILE)// & + ': number of aerosol lines in that file should be '//trim(yval1)//' but is '//trim(yval2) ) + else if ( iresp/= 0 ) then + call Print_msg( NVERB_FATAL, 'IO', 'CH_READ_CHEM', 'when reading '//trim(HFILE)//': '//trim(yioerrmsg) ) + end if + IF ( trim(YVARNAME) /= trim(CAERONAMES(JI)) ) THEN + call Print_msg( NVERB_FATAL, 'GEN', 'CH_READ_CHEM', 'variable names do not match: '//trim(CAERONAMES(JI))// & + ' /= '//trim(YVARNAME) ) + END IF + END DO !Conversion microgram/m3 to ppp ZMD = 28.9644E-3 ! Constants initialization @@ -268,26 +279,6 @@ END IF END IF ! -RETURN -! !----------------------------------------------------------------------------- ! -999 PRINT *, 'CH_READ_CHEM: Error: not enough variables defined in file', & - HFILE -PRINT *, 'number of gas lines in that file should be ', NEQ, & - ', but is ', JI-1 -!callabortstop -CALL ABORT -STOP 'Program stopped by CH_READ_CHEM' -! -998 STOP "CH_READ_CHEM: ERROR - keyword INITCHEM not found in CHCONTROL1.nam" -! -997 PRINT *, 'CH_READ_CHEM: Error: not enough variables defined in file', & - HFILE -PRINT *, 'number of aerosols lines in that file should be ', SIZE(PAERO,1), & - ', but is ', JI-1 -!callabortstop -CALL ABORT -STOP 'Program stopped by CH_READ_CHEM' -! END SUBROUTINE CH_READ_CHEM diff --git a/src/MNH/ch_sis.f90 b/src/MNH/ch_sis.f90 index 746b70ad6..48fc332d5 100644 --- a/src/MNH/ch_sis.f90 +++ b/src/MNH/ch_sis.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 chimie 2006/05/18 13:07:25 -!----------------------------------------------------------------- !! ################## MODULE MODI_CH_SIS !! ################## @@ -60,9 +55,12 @@ END MODULE MODI_CH_SIS !! Original 24/04/95 !! 31/07/96 (K. Suhre) restructured !! 01/12/03 (D. Gazen) change Chemical scheme interface +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! EXTERNAL !! -------- +use mode_msg + USE MODI_CH_FCN USE MODI_CH_JAC USE MODI_CH_GAUSS @@ -127,11 +125,7 @@ ENDDO ! IFAIL = 1 CALL CH_GAUSS(ZWORK,ZINV,KEQ,IFAIL) -IF (IFAIL.NE.0) THEN -!callabortstop -CALL ABORT - STOP 'CH_SIS ERROR: matrix cannot be inverted by CH_GAUSS' -ENDIF +if ( ifail /= 0 ) call Print_msg( NVERB_FATAL, 'GEN', 'CH_SIS', 'matrix cannot be inverted by CH_GAUSS' ) ! !* 4. CALCULATE (1-dt/2 J^n)^-1 f^n ! ----------------------------------- diff --git a/src/MNH/ch_solvern.f90 b/src/MNH/ch_solvern.f90 index 769b5800a..92319876c 100644 --- a/src/MNH/ch_solvern.f90 +++ b/src/MNH/ch_solvern.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ $Date$ -!----------------------------------------------------------------- !! ##################### MODULE MODI_CH_SOLVER_n !! ##################### @@ -60,6 +56,7 @@ END MODULE MODI_CH_SOLVER_n !! 01/12/03 (D. Gazen) change Chemical scheme interface !! 01/06/07 (P. Tulet) model number in argument (for AROME) !! 01/06/07 (JP Pinty & M Leriche) add Rosenbrock solvers +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! EXTERNAL !! -------- @@ -73,6 +70,8 @@ USE MODI_CH_EXQSSA !@USE MODI_CH_D02EAF !@USE MODI_CH_D02EBF !@USE MODI_CH_D02NBF + +use mode_msg USE MODE_RBK90_Integrator !! !! IMPLICIT ARGUMENTS @@ -132,25 +131,19 @@ CASE ('D02EAF') ! ! call NAG's stiff-solver D02EAF !@CALL CH_D02EAF(PTSIMUL, PDTACT, PCONC, PNEWCONC, KEQ, KMI) -!callabortstop -CALL ABORT - STOP 'CH_SOLVER_n SORRY: requested solver currently not supported (CSOLVER)' + call Print_msg( NVERB_FATAL, 'GEN', 'CH_SOLVER_n', 'requested solver currently not supported (CSOLVER='//trim(CSOLVER)//')' ) ! CASE ('D02EBF') ! ! call NAG's stiff-solver D02EBF !@CALL CH_D02EBF(PTSIMUL, PDTACT, PCONC, PNEWCONC, KEQ, KMI) -!callabortstop -CALL ABORT - STOP 'CH_SOLVER_n SORRY: requested solver currently not supported (CSOLVER)' + call Print_msg( NVERB_FATAL, 'GEN', 'CH_SOLVER_n', 'requested solver currently not supported (CSOLVER='//trim(CSOLVER)//')' ) ! CASE ('D02NBF') ! ! call NAG's stiff-solver D02NBF !@CALL CH_D02NBF(PTSIMUL, PDTACT, PCONC, PNEWCONC, KEQ, KMI) -!callabortstop -CALL ABORT - STOP 'CH_SOLVER_n SORRY: requested solver currently not supported (CSOLVER)' + call Print_msg( NVERB_FATAL, 'GEN', 'CH_SOLVER_n', 'requested solver currently not supported (CSOLVER='//trim(CSOLVER)//')' ) ! CASE ('SVODE') ! @@ -158,9 +151,7 @@ CASE ('SVODE') ! CALL CH_SVODE(PTSIMUL, PDTACT, PCONC, PNEWCONC, KEQ, KVECNPT, KMI, & ! XRTOL, XATOL, NPED) -!callabortstop -CALL ABORT - STOP 'CH_SOLVER_n SORRY: requested solver currently not supported (CSOLVER) until Masdev47' + call Print_msg( NVERB_FATAL, 'GEN', 'CH_SOLVER_n', 'requested solver currently not supported (CSOLVER='//trim(CSOLVER)//')' ) ! CASE ('QSSA') ! @@ -200,9 +191,7 @@ CASE ('NONE') PNEWCONC(:,:) = PCONC(:,:) ! CASE DEFAULT -!callabortstop -CALL ABORT - STOP 'CH_SOLVER_n ERROR: requested solver not supported (CSOLVER)' + call Print_msg( NVERB_FATAL, 'GEN', 'CH_SOLVER_n', 'requested solver currently not supported (CSOLVER='//trim(CSOLVER)//')' ) END SELECT ! END SUBROUTINE CH_SOLVER_n diff --git a/src/MNH/ch_svode.f90 b/src/MNH/ch_svode.f90 index 9ed939503..07b5ca630 100644 --- a/src/MNH/ch_svode.f90 +++ b/src/MNH/ch_svode.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 chimie 2006/05/18 13:07:25 -!----------------------------------------------------------------- !**FILE: ch_svode.f90 !**AUTHOR: Karsten Suhre !**DATE: Fri Nov 10 09:17:45 GMT 1995 @@ -73,6 +68,7 @@ SUBROUTINE CH_SVODE(PTSIMUL, PDTACT, PCONC, PNEWCONC, KEQ, KVECNPT, KMI, & !! Original 10/11/95 !! 01/08/01 (C. Mari) add arguments !! 01/12/03 (D. Gazen) change Chemical scheme interface +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! EXTERNAL !! -------- @@ -83,7 +79,10 @@ SUBROUTINE CH_SVODE(PTSIMUL, PDTACT, PCONC, PNEWCONC, KEQ, KVECNPT, KMI, & !! ------------------ !! EXPLICIT ARGUMENTS !! ------------------ +use mode_msg + IMPLICIT NONE + REAL, INTENT(IN) :: PTSIMUL ! time of simulation REAL, INTENT(IN) :: PDTACT ! actual time-step INTEGER, INTENT(IN) :: KEQ ! dimension of the problem to solve @@ -161,7 +160,7 @@ DO JI = 1, KVECNPT IF (ISTATE.LT.0) THEN PRINT *, "Problems !!! ISTATE = ", ISTATE PRINT *, "at vector element ", JI, " out of ", KVECNPT - STOP "CH_SVODE: program stopped due to SVODE error!" + call Print_msg( NVERB_FATAL, 'GEN', 'CH_SVODE', '' ) ENDIF PNEWCONC(JI,:) = ZCONC(:) diff --git a/src/MNH/ch_update_jvalues.f90 b/src/MNH/ch_update_jvalues.f90 index 5f2f0f7fa..257c6e07d 100644 --- a/src/MNH/ch_update_jvalues.f90 +++ b/src/MNH/ch_update_jvalues.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1997-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 chimie 2006/06/29 11:52:38 -!----------------------------------------------------------------- !! ############################# MODULE MODI_CH_UPDATE_JVALUES !! ############################# @@ -90,21 +85,24 @@ END MODULE MODI_CH_UPDATE_JVALUES !! ------------- !! Original 05/03/97 !! 05/03/05 P. Tulet (CNRM/GMEI) Update for Arome +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !!------------------------------------------------------------------------------ !! !! EXTERNAL !! -------- +USE MODE_MODELN_HANDLER +use mode_msg + USE MODI_CH_INTERP_JVALUES USE MODI_CH_JVALUES_CLOUDS -USE MODE_MODELN_HANDLER !! !! IMPLICIT ARGUMENTS !! ------------------ -USE MODD_CST -USE MODD_PARAMETERS USE MODD_CH_INIT_JVALUES, ONLY : JPJVMAX USE MODD_CONF +USE MODD_CST +USE MODD_PARAMETERS !! !! EXPLICIT ARGUMENTS !! ------------------ @@ -180,13 +178,7 @@ IF (.NOT.ALLOCATED(ZSZA)) ALLOCATE(ZSZA(IIU,IJU)) IF (OCH_TUV_ONLINE) THEN ! IF ((.NOT.L1D).OR.(CPROGRAM .EQ. "AROME")) THEN - WRITE(KLUOUT,*)"ERROR in CH_UPDATE_JVALUES: " - WRITE(KLUOUT,*)"you want to use ON-LINE calculation of photolysis rates " - WRITE(KLUOUT,*)"but you are not runnning in 1D " - WRITE(KLUOUT,*)"Program is STOPPED now " -!callabortstop -CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'CH_UPDATE_JVALUES', 'online computation of photolysis rates is only supported in 1D' ) ENDIF !* 1. TUV 3D ON LINE diff --git a/src/MNH/compute_bl89_ml.f90 b/src/MNH/compute_bl89_ml.f90 index ac8986c3d..20c9a078d 100644 --- a/src/MNH/compute_bl89_ml.f90 +++ b/src/MNH/compute_bl89_ml.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ########################### MODULE MODI_COMPUTE_BL89_ML ! ########################### @@ -55,6 +56,7 @@ END MODULE MODI_COMPUTE_BL89_ML !! S. Riette Jan 2012: support for both order of vertical levels and cleaning !! R.Honnert Oct 2016 : Update with AROME !! Q.Rodier 01/2019 : support RM17 mixing length as in bl89.f90 +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !------------------------------------------------------------------------------- ! @@ -74,6 +76,9 @@ END MODULE MODI_COMPUTE_BL89_ML ! USE MODD_CTURB USE MODD_PARAMETERS, ONLY: JPVEXT +! +use mode_msg +! USE MODI_SHUMAN_MF ! IMPLICIT NONE @@ -209,12 +214,7 @@ ENDIF ! IF (OUPORDN.EQV..FALSE.) THEN - IF(OFLUX) THEN - WRITE(*,*) ' STOP' - WRITE(*,*) ' OFLUX OPTION NOT CODED FOR DOWNWARD MIXING LENGTH' - CALL ABORT - STOP - ENDIF + IF(OFLUX) call Print_msg(NVERB_FATAL,'GEN','COMPUTE_BL89_ML','OFLUX option not coded for downward mixing length') ZINTE(:)=PTKEM_DEP(:) PLWORK=0. ZTESTM=1. diff --git a/src/MNH/compute_frac_ice.f90 b/src/MNH/compute_frac_ice.f90 index aee3baf8d..452afe1c7 100644 --- a/src/MNH/compute_frac_ice.f90 +++ b/src/MNH/compute_frac_ice.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl MODULE MODI_COMPUTE_FRAC_ICE ! ############################ @@ -239,6 +240,7 @@ END SUBROUTINE COMPUTE_FRAC_ICE2D !! Original 13/03/06 !! S. Riette April 2011 optimisation !! S. Riette 08/2016 add option O +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! -------------------------------------------------------------------------- ! 0. DECLARATIONS @@ -275,9 +277,7 @@ ELSEIF (HFRAC_ICE=='N') THEN !No ice ELSEIF (HFRAC_ICE=='S') THEN !Same as previous !nothing to do ELSE - WRITE(*,*) ' STOP' - WRITE(*,*) ' INVALID OPTION IN COMPUTE_FRAC_ICE, HFRAC_ICE=',HFRAC_ICE - CALL PRINT_MSG(NVERB_FATAL,'GEN','COMPUTE_FRAC_ICE','') + call Print_msg(NVERB_FATAL,'GEN','COMPUTE_FRAC_ICE','invalid option for HFRAC_ICE='//HFRAC_ICE) ENDIF PFRAC_ICE(:) = MAX( 0., MIN(1., PFRAC_ICE(:) ) ) diff --git a/src/MNH/compute_mf_cloud.f90 b/src/MNH/compute_mf_cloud.f90 index 03626f930..28ce08a6c 100644 --- a/src/MNH/compute_mf_cloud.f90 +++ b/src/MNH/compute_mf_cloud.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2009-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl MODULE MODI_COMPUTE_MF_CLOUD ! ############################ @@ -99,14 +100,17 @@ END MODULE MODI_COMPUTE_MF_CLOUD !! S. Riette Dec 2010 BIGA case !! S. Riette Aug 2011 code is split into subroutines !! S. Riette Jan 2012: support for both order of vertical levels +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! +use mode_msg +! +USE MODI_COMPUTE_MF_CLOUD_BIGAUS USE MODI_COMPUTE_MF_CLOUD_DIRECT USE MODI_COMPUTE_MF_CLOUD_STAT -USE MODI_COMPUTE_MF_CLOUD_BIGAUS ! IMPLICIT NONE @@ -186,11 +190,7 @@ ELSEIF (HMF_CLOUD == 'NONE') THEN ! No CONVECTIVE CLOUD SCHEME ! Nothing to do: PRC_MF, PRI_MF, PCF_MF, PSIGMF are already filled with zero ELSE - WRITE(*,*) ' STOP' - WRITE(*,*) ' Shallow convection cloud scheme not valid : HMF_CLOUD =',TRIM(HMF_CLOUD) - CALL ABORT - STOP + call Print_msg(NVERB_FATAL,'GEN','COMPUTE_MF_CLOUD','Shallow convection cloud scheme not valid: HMF_CLOUD='//TRIM(HMF_CLOUD)) ENDIF - END SUBROUTINE COMPUTE_MF_CLOUD diff --git a/src/MNH/dummy_gr_index.f90 b/src/MNH/dummy_gr_index.f90 index 2cd320ae3..1bdac1193 100644 --- a/src/MNH/dummy_gr_index.f90 +++ b/src/MNH/dummy_gr_index.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1997-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 init 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ##################### MODULE MODI_DUMMY_GR_INDEX ! ##################### @@ -53,12 +48,14 @@ END MODULE MODI_DUMMY_GR_INDEX !! ------------ !! !! Original 15/12/97 +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !---------------------------------------------------------------------------- ! !* 0. DECLARATION ! ----------- ! +use mode_msg ! IMPLICIT NONE ! @@ -81,9 +78,7 @@ DO JDUMMY=1,1000 RETURN END IF IF (LEN_TRIM(HFIELD)==0) THEN - !callabortstop - CALL ABORT - STOP + call Print_msg(NVERB_FATAL,'GEN','DUMMY_GR_INDEX','LEN_TRIM(HFIELD)=0') ENDIF END DO !------------------------------------------------------------------------------- diff --git a/src/MNH/ecmwf_radiation_vers2.f90 b/src/MNH/ecmwf_radiation_vers2.f90 index a0bb11196..c589726eb 100644 --- a/src/MNH/ecmwf_radiation_vers2.f90 +++ b/src/MNH/ecmwf_radiation_vers2.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- !############################################################## !OPTION! -Ni SUBROUTINE ECMWF_RADIATION_VERS2 ( KLON,KLEV,KRAD_DIAG, KAER, & @@ -71,6 +72,7 @@ SUBROUTINE ECMWF_RADIATION_VERS2 ( KLON,KLEV,KRAD_DIAG, KAER, & ! B.VIE 2016 : LIMA ! J.Escobar 30/03/2017 : Management of compilation of ECMWF_RAD in REAL*8 with MNH_REAL=R4 !! Q.Libois 02/2018 : ECRAD +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !----------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -127,6 +129,8 @@ USE MODD_PARAM_LIMA_WARM, ONLY : ZCREC=>XCREC, ZCRER=>XCRER, ZFREFFR=>XFREFFR, & ZAC=>XAC, ZAR=>XAR, ZLBEXC=>XLBEXC, ZLBEXR=>XLBEXR USE MODD_PARAM_LIMA_COLD, ONLY : ZFREFFI=>XFREFFI, ZLBEXI=>XLBEXI ! +use mode_msg +! IMPLICIT NONE ! ! @@ -751,9 +755,7 @@ DO JK = 1 , KLEV write(*,*)'YOU USE A PARAMATERESISATION OF THE SW OPTICAL PROPERTIES' write(*,*)'INADAPTED FOR THE 1 MOMENT SCHEME: SEE THE CEFRADL VARIABLE' write(*,*)'IN YOUR NAMELIST' -!callabortstop -CALL ABORT - STOP + call Print_msg(NVERB_FATAL,'GEN','ECMWF_RADIATION_VERS2','') END IF END SELECT ! diff --git a/src/MNH/flash_geom_elec.f90 b/src/MNH/flash_geom_elec.f90 index b34d69118..0cfaf8ddd 100644 --- a/src/MNH/flash_geom_elec.f90 +++ b/src/MNH/flash_geom_elec.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ############################# MODULE MODI_FLASH_GEOM_ELEC_n ! ############################# @@ -93,6 +94,7 @@ END MODULE MODI_FLASH_GEOM_ELEC_n !! & initialize INBLIGHT on all proc for filling/saving AREA* arrays !! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN !! Philippe Wautelet: 22/01/2019: use standard FLUSH statement instead of non standard intrinsics!! +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -2822,6 +2824,8 @@ END SUBROUTINE N8INTERCHANGE_SORT ! Output, real ( kind = 8 ) R8_UNIFORM_01, a new pseudorandom variate, ! strictly between 0 and 1. ! + use mode_msg + IMPLICIT NONE INTEGER ( kind = 4 ), PARAMETER :: i4_huge = 2147483647 @@ -2830,10 +2834,7 @@ END SUBROUTINE N8INTERCHANGE_SORT INTEGER ( kind = 4 ) seed IF ( seed == 0 ) THEN - WRITE ( *, '(a)' ) ' ' - WRITE ( *, '(a)' ) 'R8_UNIFORM_01 - Fatal error!' - WRITE ( *, '(a)' ) ' Input value of SEED = 0.' - STOP 1 + call Print_msg( NVERB_FATAL, 'GEN', 'r8_uniform_01', 'seed dummy argument must be different of 0' ) END IF k = seed / 127773 diff --git a/src/MNH/gamma_inc.f90 b/src/MNH/gamma_inc.f90 index cadd28a15..0de61815e 100644 --- a/src/MNH/gamma_inc.f90 +++ b/src/MNH/gamma_inc.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 operators 2006/05/18 13:07:25 -!----------------------------------------------------------------- !#################### MODULE MODI_GAMMA_INC !#################### @@ -65,10 +60,13 @@ END MODULE MODI_GAMMA_INC !! MODIFICATIONS !! ------------- !! Original 7/12/95 +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! !* 0. DECLARATIONS ! ------------ ! +use mode_msg +! USE MODI_GAMMA ! IMPLICIT NONE @@ -88,12 +86,7 @@ REAL :: ZFPMIN=1.E-30 REAL :: ZAP,ZDEL,ZSUM REAL :: ZAN,ZB,ZC,ZD,ZH ! -IF( (PX.LT.0.0).OR.(PA.LE.0.0) ) THEN - PRINT *,' BAD ARGUMENTS IN GAMMA_INC' -!callabortstop -CALL ABORT - STOP -END IF +IF( PX<0.0 .OR. PA>=0.0 ) call Print_msg(NVERB_FATAL,'GEN','GAMMA_INC','invalid arguments: PX<0.0 .OR. PA>=0.0') ! IF( (PX.LT.PA+1.0) ) THEN ZAP = PA @@ -108,12 +101,9 @@ IF( (PX.LT.PA+1.0) ) THEN IF( ABS(ZDEL).LT.ABS(ZSUM)*ZEPS ) EXIT LOOP_SERIES JN = JN + 1 IF( JN.GT.ITMAX ) THEN - PRINT *,' ARGUMENT "PA" IS TOO LARGE OR "ITMAX" IS TOO SMALL, THE & - & INCOMPLETE GAMMA_INC FUNCTION CANNOT BE EVALUATED CORRECTLY & - & BY THE SERIES METHOD' -!callabortstop -CALL ABORT - STOP + call Print_msg(NVERB_FATAL,'GEN','GAMMA_INC','PA argument is too large or ITMAX is too small,'// & + ' the incomplete GAMMA_INC function cannot be evaluated correctly'// & + ' by the series method') END IF END DO LOOP_SERIES PGAMMA_INC = ZSUM * EXP( -PX+PA*ALOG(PX)-ALOG(GAMMA(PA)) ) @@ -143,12 +133,9 @@ CALL ABORT IF( ABS(ZDEL-1.0).LT.ZEPS ) EXIT LOOP_FRACTION JN = JN + 1 IF( JN.GT.ITMAX ) THEN - PRINT *,' ARGUMENT "PA" IS TOO LARGE OR "ITMAX" IS TOO SMALL, THE & - & INCOMPLETE GAMMA_INC FUNCTION CANNOT BE EVALUATED CORRECTLY & - & BY THE CONTINUOUS FRACTION METHOD' -!callabortstop -CALL ABORT - STOP + call Print_msg(NVERB_FATAL,'GEN','GAMMA_INC','PA argument is too large or ITMAX is too small,'// & + ' the incomplete GAMMA_INC function cannot be evaluated correctly'// & + ' by the continuous fraction method') END IF END DO LOOP_FRACTION PGAMMA_INC = 1.0 - ZH*EXP( -PX+PA*ALOG(PX)-ALOG(GAMMA(PA)) ) diff --git a/src/MNH/gamma_inc_low.f90 b/src/MNH/gamma_inc_low.f90 index 177b85c38..dabcd722a 100644 --- a/src/MNH/gamma_inc_low.f90 +++ b/src/MNH/gamma_inc_low.f90 @@ -1,7 +1,8 @@ !MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- !#################### MODULE MODI_GAMMA_INC_LOW !#################### @@ -60,6 +61,7 @@ END MODULE MODI_GAMMA_INC_LOW !! MODIFICATIONS !! ------------- !! Original 20/09/10 +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! !* 0. DECLARATIONS ! ------------ @@ -107,13 +109,7 @@ ZS(5) = 2.9092306039 ! !* 1 Compute coefficients ! -IF( (PX.LT.0.0).OR.(PA.LE.0.0) ) THEN - PRINT *,' BAD ARGUMENTS IN GAMMA_INC_LOW' -!callabortstop -CALL ABORT - STOP -END IF -! +IF( PX<0.0 .OR. PA>=0.0 ) call Print_msg(NVERB_FATAL,'GEN','GAMMA_INC_LOW','invalid arguments: PX<0.0 .OR. PA>=0.0') ! ZC(1) = 1.+ZP(1)*PA+ZP(2)*PA**2+ZP(3)*PA**3+ZP(4)*PA**4+ZP(5)*(EXP(-ZP(6)*PA)-1) ! diff --git a/src/MNH/hypser.f90 b/src/MNH/hypser.f90 index 68283f0c1..75e1be79b 100644 --- a/src/MNH/hypser.f90 +++ b/src/MNH/hypser.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 operators 2006/05/18 13:07:25 -!----------------------------------------------------------------- !#################### MODULE MODI_HYPSER !#################### @@ -67,12 +62,15 @@ END MODULE MODI_HYPSER !! MODIFICATIONS !! ------------- !! Original 31/12/96 +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS ! ! +use mode_msg +! IMPLICIT NONE ! !* 0.1 declarations of arguments and result @@ -112,11 +110,6 @@ SERIE: DO JN = 1,5000 ZZB = ZZB + 1. ZZC = ZZC + 1. END DO SERIE -IF (JFLAG == 0) THEN - PRINT *,'CONVERGENCE FAILURE IN HYPSER' -!callabortstop -CALL ABORT - STOP -END IF -! -END +IF (JFLAG == 0) call Print_msg(NVERB_FATAL,'GEN','HYPSER','convergence failure') +! +END SUBROUTINE HYPSER diff --git a/src/MNH/ice4_sedimentation_split.f90 b/src/MNH/ice4_sedimentation_split.f90 index f42739740..7be61085b 100644 --- a/src/MNH/ice4_sedimentation_split.f90 +++ b/src/MNH/ice4_sedimentation_split.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- MODULE MODI_ICE4_SEDIMENTATION_SPLIT INTERFACE SUBROUTINE ICE4_SEDIMENTATION_SPLIT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKTB, KKTE, KKT, KKL, & @@ -70,6 +71,7 @@ SUBROUTINE ICE4_SEDIMENTATION_SPLIT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKTB !! ------------- !! ! P. Wautelet 11/02/2019: dimensions of PINPRC and PINDEP not necessarily KIT,KJT +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! ! !* 0. DECLARATIONS @@ -408,6 +410,7 @@ CONTAINS !* 0.2 declaration of local variables ! ! + character(len=10) :: yspe ! String for error message INTEGER :: JK, JL, JI, JJ REAL :: ZINVTSTEP REAL :: ZZWLBDC, ZRAY, ZZT, ZZWLBDA, ZZCC @@ -475,9 +478,8 @@ CONTAINS ZFSED=XFSEDH ZEXSED=XEXSEDH ELSE - WRITE(*,*) ' STOP' - WRITE(*,*) ' NO SEDIMENTATION PARAMETER FOR KSPE==', KSPE - CALL PRINT_MSG(NVERB_FATAL,'GEN','ICE4_SEDIMENTATION_SPLIT','') + write( yspe, '( I10 )' ) kspe + call Print_msg( NVERB_FATAL, 'GEN', 'ICE4_SEDIMENTATION_SPLIT', 'no sedimentation parameter for KSPE='//trim(yspe) ) ENDIF PWSED(:,:,:) = 0. DO JL=1, KSEDIM diff --git a/src/MNH/ice4_sedimentation_split_momentum.f90 b/src/MNH/ice4_sedimentation_split_momentum.f90 index 34436a5a3..866948ea3 100644 --- a/src/MNH/ice4_sedimentation_split_momentum.f90 +++ b/src/MNH/ice4_sedimentation_split_momentum.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- MODULE MODI_ICE4_SEDIMENTATION_SPLIT_MOMENTUM INTERFACE SUBROUTINE ICE4_SEDIMENTATION_SPLIT_MOMENTUM(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKTB, KKTE, KKT, KKL, & @@ -67,6 +68,7 @@ SUBROUTINE ICE4_SEDIMENTATION_SPLIT_MOMENTUM(KIB, KIE, KIT, KJB, KJE, KJT, KKB, !! MODIFICATIONS !! ------------- !! +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! ! !* 0. DECLARATIONS @@ -406,6 +408,7 @@ CONTAINS !* 0.2 declaration of local variables ! ! + character(len=10) :: yspe ! String for error message INTEGER :: JK, JL, JI, JJ REAL :: ZINVTSTEP REAL :: ZZWLBDC, ZRAY, ZZT, ZZWLBDA, ZZCC @@ -422,9 +425,8 @@ CONTAINS ! ! IF(OCOMPUTE_MOM .AND. .NOT. OMOMENTUM) THEN - WRITE(*,*) ' STOP' - WRITE(*,*) ' OCOMPUTE_MOM cannot be .TRUE. if we do not use momentum' - CALL PRINT_MSG(NVERB_FATAL,'GEN','ICE4_SEDIMENTATION_SPLIT_MOMENTUM','') + call Print_msg( NVERB_FATAL, 'GEN', 'ICE4_SEDIMENTATION_SPLIT_MOMENTUM', & + 'OCOMPUTE_MOM cannot be .TRUE. if we do not use momentum' ) ENDIF !* 2. compute the fluxes ! @@ -504,9 +506,9 @@ CONTAINS ZFSED=XFSEDH ZEXSED=XEXSEDH ELSE - WRITE(*,*) ' STOP' - WRITE(*,*) ' NO SEDIMENTATION PARAMETER FOR KSPE==', KSPE - CALL PRINT_MSG(NVERB_FATAL,'GEN','ICE4_SEDIMENTATION_SPLIT_MOMENTUM','') + write( yspe, '( I10 )' ) kspe + call Print_msg( NVERB_FATAL, 'GEN', 'ICE4_SEDIMENTATION_SPLIT_MOMENTUM', & + 'no sedimentation parameter for KSPE='//trim(yspe) ) ENDIF IF(OCOMPUTE_MOM .OR. .NOT. OMOMENTUM) THEN !Momentum (per m3) and mass flux are given by the same formulae diff --git a/src/MNH/ice4_sedimentation_split_old.f90 b/src/MNH/ice4_sedimentation_split_old.f90 index 12c1f4e5d..42f2b833b 100644 --- a/src/MNH/ice4_sedimentation_split_old.f90 +++ b/src/MNH/ice4_sedimentation_split_old.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- MODULE MODI_ICE4_SEDIMENTATION_SPLIT_OLD INTERFACE SUBROUTINE ICE4_SEDIMENTATION_SPLIT_OLD(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKTB, KKTE, KKT, KKL, & @@ -66,6 +67,7 @@ SUBROUTINE ICE4_SEDIMENTATION_SPLIT_OLD(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, !! MODIFICATIONS !! ------------- !! +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! ! !* 0. DECLARATIONS @@ -377,6 +379,7 @@ CONTAINS !* 0.2 declaration of local variables ! ! + character(len=10) :: yspe ! String for error message INTEGER :: JK, JL, JI, JJ REAL :: ZINVTOTAL_TSTEP REAL :: ZZWLBDC, ZRAY, ZZT, ZZWLBDA, ZZCC @@ -438,9 +441,9 @@ CONTAINS ZFSED=XFSEDH ZEXSED=XEXSEDH ELSE - WRITE(*,*) ' STOP' - WRITE(*,*) ' NO SEDIMENTATION PARAMETER FOR KSPE==', KSPE - CALL PRINT_MSG(NVERB_FATAL,'GEN','ICE4_SEDIMENTATION_SPLIT_OLD','') + write( yspe, '( I10 )' ) kspe + call Print_msg( NVERB_FATAL, 'GEN', 'ICE4_SEDIMENTATION_SPLIT_OLD', & + 'no sedimentation parameter for KSPE='//trim(yspe) ) ENDIF DO JL=1, KSEDIM JI=I1(JL) diff --git a/src/MNH/ice4_sedimentation_stat.f90 b/src/MNH/ice4_sedimentation_stat.f90 index cea7a1c6c..4bb2957cc 100644 --- a/src/MNH/ice4_sedimentation_stat.f90 +++ b/src/MNH/ice4_sedimentation_stat.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- MODULE MODI_ICE4_SEDIMENTATION_STAT INTERFACE SUBROUTINE ICE4_SEDIMENTATION_STAT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKTB, KKTE, KKT, KKL, & @@ -71,6 +72,7 @@ SUBROUTINE ICE4_SEDIMENTATION_STAT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKTB, !! MODIFICATIONS !! ------------- !! +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! ! !* 0. DECLARATIONS @@ -275,6 +277,7 @@ CONTAINS !* 0.2 declaration of local variables ! ! + character(len=10) :: yspe ! String for error message INTEGER :: JK, JCOUNT, JL, JI, JJ INTEGER, DIMENSION(SIZE(PRHODREF,1)*SIZE(PRHODREF,2)) :: I1, I2 REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),0:SIZE(PRHODREF,3)+1) & @@ -389,9 +392,9 @@ CONTAINS ZFSED=XFSEDH ZEXSED=XEXSEDH ELSE - WRITE(*,*) ' STOP' - WRITE(*,*) ' NO SEDIMENTATION PARAMETER FOR KSPE==', KSPE - CALL PRINT_MSG(NVERB_FATAL,'GEN','ICE4_SEDIMENTATION_STAT','') + write( yspe, '( I10 )' ) kspe + call Print_msg( NVERB_FATAL, 'GEN', 'ICE4_SEDIMENTATION_STAT', & + 'no sedimentation parameter for KSPE='//trim(yspe) ) ENDIF DO JL=1, JCOUNT JI=I1(JL) diff --git a/src/MNH/ice_c1r3.f90 b/src/MNH/ice_c1r3.f90 index e47f5245a..9d169e9e1 100644 --- a/src/MNH/ice_c1r3.f90 +++ b/src/MNH/ice_c1r3.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 microph 2006/08/10 17:06:04 -!----------------------------------------------------------------- ! ###################### MODULE MODI_ICE_C1R3 ! ###################### @@ -184,12 +179,12 @@ END MODULE MODI_ICE_C1R3 !! Jean-Pierre PINTY 8/10/01 Revise limits in sedim. and review S->I !! Jean-Pierre PINTY 18/10/01 Revise Snow to Ice conversion !! Jean-Pierre PINTY 18/12/01 Revise Graupel wet growth (limitation) +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !------------------------------------------------------------------------------- ! -PRINT *,'ICE_C1R3 IS NOT YET DEVELOPPED' -!callabortstop -CALL ABORT -STOP +use mode_msg +! +call Print_msg(NVERB_FATAL,'GEN','ICE_C1R3','not yet developed') ! END SUBROUTINE ICE_C1R3 diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index da0eef4b2..f0707d44a 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -153,6 +153,7 @@ END MODULE MODI_INI_BUDGET !! C.Lac 10/2016 Add budget for droplet deposition !! S. Riette 11/2016 New budgets for ICE3/ICE4 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -2795,9 +2796,7 @@ IF (CBUTYPE=='MASK') THEN WRITE(UNIT=KLUOUT, FMT= '("BUMASK = ",I4.4)' ) NBUMASK END IF IF (GERROR) THEN - !callabortstop - CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_BUDGET','') - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'INI_BUDGET', '' ) ENDIF !------------------------------------------------------------------------------- !* 5. ALLOCATE MEMORY FOR BUDGET STORAGE ARRAYS diff --git a/src/MNH/ini_elec.f90 b/src/MNH/ini_elec.f90 index 55ff715c4..0154ac6da 100644 --- a/src/MNH/ini_elec.f90 +++ b/src/MNH/ini_elec.f90 @@ -38,6 +38,7 @@ !! ------------- !! Original 29/11/02 ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -55,6 +56,7 @@ USE MODD_REF USE MODD_TIME ! USE MODE_ll +use mode_msg ! USE MODI_INI_CLOUD ! @@ -92,11 +94,7 @@ INTEGER :: ILUOUT ! Logical unit number of output-listing ! -------- ! ! -PRINT *,' INI_ELEC IS NOT YET DEVELOPPED' -! -!callabortstop -CALL ABORT -STOP +call Print_msg(NVERB_FATAL,'GEN','INI_ELEC','not yet developed') ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/ini_elecn.f90 b/src/MNH/ini_elecn.f90 index 292304f41..27ed168cd 100644 --- a/src/MNH/ini_elecn.f90 +++ b/src/MNH/ini_elecn.f90 @@ -73,6 +73,7 @@ END MODULE MODI_INI_ELEC_n !! 10/2016 (C.Lac) Add droplet deposition !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !------------------------------------------------------------------------------- ! @@ -108,6 +109,7 @@ USE MODD_TIME ! USE MODD_ARGSLIST_ll, ONLY : LIST_ll USE MODE_ll +use mode_msg ! USE MODI_ELEC_TRIDZ USE MODI_INI_CLOUD @@ -279,14 +281,12 @@ IF (HELEC(1:3) == 'ELE') THEN IF (LFLASH_GEOM) THEN CALL INI_FLASH_GEOM_ELEC ELSE - PRINT *,' INI_LIGHTNING_ELEC NOT YET DEVELOPPED' - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'INI_ELEC_n', 'INI_LIGHTNING_ELEC not yet developed' ) END IF END IF ! ELSE IF (HELEC /= 'NONE') THEN - WRITE(ILUOUT,FMT=*) "INI_ELEC_n IS NOT YET DEVELOPPED FOR CELEC=",HELEC - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'INI_ELEC_n', 'not yet developed for CELEC='//trim(HELEC) ) END IF ! !* 3.6 initialize the parameters for the resolution of the electric field diff --git a/src/MNH/ini_ice_c1r3.f90 b/src/MNH/ini_ice_c1r3.f90 index d847c5a2b..5240fc5d4 100644 --- a/src/MNH/ini_ice_c1r3.f90 +++ b/src/MNH/ini_ice_c1r3.f90 @@ -1,6 +1,6 @@ !MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################## @@ -88,6 +88,7 @@ END MODULE MODI_INI_ICE_C1R3 !! J.-P. Pinty 23/10/2001 Add XRHORSMIN !! J.-P. Pinty 05/04/2002 Add computation of the effective radius !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !------------------------------------------------------------------------------- ! @@ -101,10 +102,12 @@ USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_PARAM_C1R3 USE MODD_PARAM_C2R2, ONLY : XALPHAC,XNUC,XALPHAR,XNUR -USe MODD_RAIN_C2R2_DESCR, ONLY : XAR,XBR,XCR,XDR,XF0R,XF1R,XAC,XBC,XCC,XDC, & +USE MODD_RAIN_C2R2_DESCR, ONLY : XAR,XBR,XCR,XDR,XF0R,XF1R,XAC,XBC,XCC,XDC, & XLBC,XLBEXC,XLBR,XLBEXR USE MODD_REF ! +use mode_msg +! USE MODI_GAMMA USE MODI_GAMMA_INC USE MODI_READ_XKER_RACCS @@ -464,10 +467,8 @@ IF (XALPHAC == 3.0) THEN ELSE WRITE(UNIT=ILUOUT0,FMT='(" Homogeneous nucleation")') WRITE(UNIT=ILUOUT0,FMT='(" XALPHAC=",E13.6," IS NOT 3.0")') XALPHAC - WRITE(UNIT=ILUOUT0,FMT='(" No algorithm yet developped in this case !")') -!callabortstop -CALL ABORT - STOP + WRITE(UNIT=ILUOUT0,FMT='(" No algorithm yet developed in this case !")') + call Print_msg(NVERB_FATAL,'GEN','INI_ICE_C1R3','') END IF ! GFLAG = .TRUE. diff --git a/src/MNH/ini_lesn.f90 b/src/MNH/ini_lesn.f90 index b2dd7e4a1..c2a225683 100644 --- a/src/MNH/ini_lesn.f90 +++ b/src/MNH/ini_lesn.f90 @@ -34,6 +34,7 @@ !! 10/2016 (C.Lac) Add droplet deposition !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! 02/2019 (C. Lac) Add rain fraction as a LES diagnostic +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -160,9 +161,7 @@ IF (LLES_SPECTRA ) LLES_MEAN = .TRUE. IF (CTURB=='NONE') THEN WRITE(ILUOUT,FMT=*) 'LES diagnostics cannot be done without subgrid turbulence.' WRITE(ILUOUT,FMT=*) 'You have chosen CTURB="NONE". You must choose a turbulence scheme.' - WRITE(ILUOUT,FMT=*) 'STOP' -!callabortstop - CALL PRINT_MSG(NVERB_FATAL,'GEN','WRITE_LB_n','') + call Print_msg( NVERB_FATAL, 'GEN', 'WRITE_LB_n', 'LES diagnostics cannot be done without subgrid turbulence' ) END IF !------------------------------------------------------------------------------- ! diff --git a/src/MNH/ini_lima_cold_mixed.f90 b/src/MNH/ini_lima_cold_mixed.f90 index a16a6d5c4..979216181 100644 --- a/src/MNH/ini_lima_cold_mixed.f90 +++ b/src/MNH/ini_lima_cold_mixed.f90 @@ -1,7 +1,8 @@ !MNH_LIC Copyright 2013-2018 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ############################### MODULE MODI_INI_LIMA_COLD_MIXED ! ############################### @@ -38,6 +39,7 @@ END MODULE MODI_INI_LIMA_COLD_MIXED !! ------------- !! Original ??/??/13 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !------------------------------------------------------------------------------- ! @@ -53,6 +55,8 @@ USE MODD_PARAM_LIMA_COLD USE MODD_PARAM_LIMA_MIXED USE MODD_REF ! +use mode_msg +! USE MODI_LIMA_FUNCTIONS USE MODI_GAMMA USE MODI_GAMMA_INC @@ -74,6 +78,7 @@ REAL, INTENT(IN) :: PDZMIN ! minimun vertical mesh size ! !* 0.2 Declarations of local variables : ! +character(len=13) :: yval ! String for error message INTEGER :: IKB ! Coordinates of the first physical ! points along z INTEGER :: J1,J2 ! Internal loop indexes @@ -372,8 +377,7 @@ ELSE IF (NPHILLIPS == 8) THEN XAREA1(3) = 2.7E-7 !BC XAREA1(4) = 9.1E-7 !BIO ELSE - print *, "NPHILLIPS n'est pas égal à 8 ou 13" - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'INI_LIMA_COLD_MIXED', 'NPHILLIPS should be equal to 8 or 13' ) END IF ! !* 4.1.2 Constants for the computation of H_X (the fraction-redu- @@ -519,10 +523,9 @@ IF (XALPHAC == 3.0) THEN XC_HONC = XPI/6.0 XR_HONC = XPI/6.0 ELSE - WRITE(UNIT=ILUOUT0,FMT='(" Homogeneous nucleation")') - WRITE(UNIT=ILUOUT0,FMT='(" XALPHAC=",E13.6," IS NOT 3.0")') XALPHAC - WRITE(UNIT=ILUOUT0,FMT='(" No algorithm yet developped in this case !")') - STOP + write ( yval, '( E13.6 )' ) xalphac + call Print_msg( NVERB_FATAL, 'GEN', 'INI_LIMA_COLD_MIXED', 'homogeneous nucleation: XALPHAC='//trim(yval)// & + '/= 3. No algorithm developed for this case' ) END IF ! GFLAG = .TRUE. diff --git a/src/MNH/ini_lw_setup.f90 b/src/MNH/ini_lw_setup.f90 index e67f466c4..d89d4c4fd 100644 --- a/src/MNH/ini_lw_setup.f90 +++ b/src/MNH/ini_lw_setup.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -51,12 +51,15 @@ END MODULE MODI_INI_LW_SETUP !! MODIFICATIONS !! ------------- !! Original 03/03/03 +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! ! +use mode_msg +! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : @@ -116,9 +119,7 @@ SELECT CASE (HRAD) PLW_BANDS(15) = 4.02E-6 PLW_BANDS(16) = 3.59E-6 ELSE -!callabortstop - CALL ABORT - STOP + call Print_msg(NVERB_FATAL,'GEN','INI_LW_SETUP','invalid KLWB_MNH argument') ENDIF ! diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index 4bcf01d19..b9e57cfba 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -283,6 +283,7 @@ END MODULE MODI_INI_MODEL_n ! P. Wautelet 14/02/2019: remove HINIFILE dummy argument from INI_RADIATIONS_ECMWF/ECRAD !! 02/2019 C.Lac add rain fraction as an output field !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -1115,9 +1116,7 @@ ELSE ! 3D case " Local domain to small for relaxation NRIMX,IDIMX ", & NRIMX,IDIMX ,& " change relaxation parameters or number of processors " - !callabortstop - CALL ABORT - STOP + call Print_msg(NVERB_FATAL,'GEN','INI_MODEL_n','') END IF END IF IF ( CLBCY(1) /= 'CYCL' ) THEN @@ -1127,9 +1126,7 @@ ELSE ! 3D case " Local domain to small for relaxation NRIMY,IDIMY ", & NRIMY,IDIMY ,& " change relaxation parameters or number of processors " - !callabortstop - CALL ABORT - STOP + call Print_msg(NVERB_FATAL,'GEN','INI_MODEL_n','') END IF END IF IF ( LHORELAX_UVWTH ) THEN diff --git a/src/MNH/ini_one_wayn.f90 b/src/MNH/ini_one_wayn.f90 index d98086895..1b6100cd7 100644 --- a/src/MNH/ini_one_wayn.f90 +++ b/src/MNH/ini_one_wayn.f90 @@ -140,12 +140,14 @@ SUBROUTINE INI_ONE_WAY_n(KDAD,PTSTEP,KMI,KTCOUNT, & !! B.VIE 2016 : LIMA !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS ! ------------ USE MODE_ll +use mode_msg USE MODE_MODELN_HANDLER ! USE MODD_ARGSLIST_ll, ONLY : LIST_ll @@ -412,7 +414,7 @@ IF (HCLOUD=="LIMA" ) THEN &ZTSVM(:,:,:,JSV-1+NSV_LIMA_BEG_A(KMI)),KMI) ENDDO ELSE - IF (NSV_LIMA_A(KMI)/=NSV_LIMA_A(KDAD)) CALL ABORT + IF (NSV_LIMA_A(KMI)/=NSV_LIMA_A(KDAD)) call Print_msg(NVERB_FATAL,'GEN','INI_ONE_WAY_n','NSV_LIMA_A(KMI)/=NSV_LIMA_A(KDAD)') DO JSV=1,NSV_LIMA_A(KMI) CALL SET_LSFIELD_1WAY_ll(XSVT(:,:,:,JSV-1+NSV_LIMA_BEG_A(KDAD)),& &ZTSVM(:,:,:,JSV-1+NSV_LIMA_BEG_A(KMI)),KMI) diff --git a/src/MNH/ini_seriesn.f90 b/src/MNH/ini_seriesn.f90 index a6f861ec4..a684d874d 100644 --- a/src/MNH/ini_seriesn.f90 +++ b/src/MNH/ini_seriesn.f90 @@ -40,6 +40,7 @@ !! June 2016: P. Wautelet: corrected writes !! Nov. 2017: J.-P. Chaboureau: fix a bug in dimension check !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !------------------------------------------------------------------------------- ! @@ -73,6 +74,7 @@ IMPLICIT NONE ! !* 0.2 Local variables ! +character(len=10) :: yval1, yval2 ! Strings for error messages REAL, DIMENSION(:,:), ALLOCATABLE :: ZSEA !sea/ocean fraction LOGICAL :: GMASKLANDSEA ! local for LMASKLANDSEA INTEGER :: IIMAX_ll ! total physical domain I size @@ -141,8 +143,7 @@ IF ( ( NFREQSERIES*XTSTEP < XSEGLEN ) .AND. & WRITE(ILUOUT,FMT=*) ' NKCLS,NKCLA,NKLOW,NKMID,NKUP= ', & NKCLS,NKCLA,NKLOW,NKMID,NKUP WRITE(ILUOUT,FMT=*) '**********************************************' -!callabortstop - CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SERIES_n','') + call Print_msg( NVERB_FATAL, 'GEN', 'INI_SERIES_n', 'incompatible dimensions' ) END IF ! ALLOCATE(LINBOX(IIU,IJU)) @@ -177,8 +178,7 @@ IF (NBJSLICE > 0 ) THEN WRITE(UNIT=ILUOUT,FMT=*) 'STOP in INI_SERIESn: VOID INTERSECTION for slice ',JJ WRITE(ILUOUT,*) ' NJSLICEL=', NJSLICEL(JJ),'NJSLICEH=',NJSLICEH(JJ) WRITE(ILUOUT,*) ' NISL=',NISL(JJ),'NJSLICESL=',NJSLICESL(JJ),'NISH=',NISH(JJ),'NJSLICESH=',NJSLICESH(JJ) -!callabortstop - CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SERIES_n','') + call Print_msg( NVERB_FATAL, 'GEN', 'INI_SERIES_n', 'void intersection' ) END IF WRITE(UNIT=ILUOUT,FMT=*) 'INI_SERIESn: intersection with slice ',JJ ELSE ! the intersection is void @@ -365,13 +365,12 @@ IF (LWMINMAX) THEN END DO END IF ! -IF (ISB1.NE.NSTEMP_SERIE1) THEN - WRITE(ILUOUT,FMT=*) 'STOP in INI_SERIESn:' - WRITE(UNIT=ILUOUT,FMT=*) ' NUMBER OF SERIES1 DIFFERS FROM ALLOC, ISB1=', & - ISB1,' NSTEMP_SERIE1=',NSTEMP_SERIE1 -!callabortstop - CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SERIES_n','') -END IF +if ( isb1 /= nstemp_serie1 ) then + write( yval1, '( I10 )' ) isb1 + write( yval2, '( I10 )' ) nstemp_serie1 + call Print_msg( NVERB_FATAL, 'GEN', 'INI_SERIES_n', 'number of series1 differs from alloc: isb1='// & + trim(yval1)//' nstemp_serie1='//trim(yval2) ) +end if ! !* 2.2 Temporal series (z,t) ! --------------------- @@ -412,13 +411,12 @@ DO JI=1,ISER END IF END DO ! -IF (ISB2.NE.NSTEMP_SERIE2) THEN - WRITE(ILUOUT,FMT=*) 'STOP in INI_SERIESn:' - WRITE(ILUOUT,FMT=*) ' NUMBER OF SERIES2 DIFFERS FROM ALLOC, ISB2=',ISB2, & - ' NSTEMP_SERIE2=',NSTEMP_SERIE2 -!callabortstop - CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SERIES_n','') -END IF +if ( isb2 /= nstemp_serie2 ) then + write( yval1, '( I10 )' ) isb2 + write( yval2, '( I10 )' ) nstemp_serie2 + call Print_msg( NVERB_FATAL, 'GEN', 'INI_SERIES_n', 'number of series2 differs from alloc: isb2='// & + trim(yval1)//' nstemp_serie2='//trim(yval2) ) +end if ! !* 2.3 Temporal series (x,t) ! @@ -460,13 +458,12 @@ IF (LUSERR) THEN ISB3=ISB3+1 ; CSTITLE3(ISB3)='RR'//CSKCLS ; CSUNIT3(ISB3)='KG/KG' END IF ! -IF (ISB3.NE.NSTEMP_SERIE3) THEN - WRITE(ILUOUT,FMT=*) 'STOP in INI_SERIESn:' - WRITE(ILUOUT,FMT=*) ' NUMBER OF SERIES3 DIFFERS FROM ALLOC, ISB3=',ISB3, & - ' NTEMP_SERIE3=',NSTEMP_SERIE3 -!callabortstop - CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SERIES_n','') -END IF +if ( isb3 /= nstemp_serie3 ) then + write( yval1, '( I10 )' ) isb3 + write( yval2, '( I10 )' ) nstemp_serie3 + call Print_msg( NVERB_FATAL, 'GEN', 'INI_SERIES_n', 'number of series3 differs from alloc: isb3='// & + trim(yval1)//' nstemp_serie3='//trim(yval2) ) +end if ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/ini_spectren.f90 b/src/MNH/ini_spectren.f90 index 33de77351..6218b6988 100644 --- a/src/MNH/ini_spectren.f90 +++ b/src/MNH/ini_spectren.f90 @@ -36,6 +36,7 @@ END MODULE MODI_INI_SPECTRE_n ! P. Wautelet 08/02/2019: allocate to zero-size non associated pointers ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !--------------------------------------------------------------------------------- ! @@ -509,9 +510,7 @@ ELSE ! 3D case " Local domain to small for relaxation NRIMX+2*JPHEXT,IIU ", & NRIMX+2*JPHEXT,IIU ,& " change relaxation parameters or number of processors " - !callabortstop - CALL ABORT - STOP + call Print_msg(NVERB_FATAL,'GEN','INI_SPECTRE_n','') END IF END IF IF ( CLBCY(1) /= 'CYCL' ) THEN @@ -521,9 +520,7 @@ ELSE ! 3D case " Local domain to small for relaxation NRIMY+2*JPHEXT,IJU ", & NRIMY+2*JPHEXT,IJU ,& " change relaxation parameters or number of processors " - !callabortstop - CALL ABORT - STOP + call Print_msg(NVERB_FATAL,'GEN','INI_SPECTRE_n','') END IF END IF IF ( LHORELAX_UVWTH ) THEN diff --git a/src/MNH/ini_sw_setup.f90 b/src/MNH/ini_sw_setup.f90 index e74318b9c..6408ee63b 100644 --- a/src/MNH/ini_sw_setup.f90 +++ b/src/MNH/ini_sw_setup.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 surfex 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ########################## MODULE MODI_INI_SW_SETUP ! ########################## @@ -58,11 +53,13 @@ END MODULE MODI_INI_SW_SETUP !! Original 03/03/03 !! modification : 01/09/03 Y. Seity, KSWB_MNH=6 !! 02/2018 Q.Libois ECRAD +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! +use mode_msg ! IMPLICIT NONE ! @@ -92,9 +89,7 @@ SELECT CASE (HRAD) PSW_BANDS(5) = 1.785E-6 PSW_BANDS(6) = 3.19E-6 ELSE - !callabortstop - CALL ABORT - STOP + call Print_msg(NVERB_FATAL,'GEN','INI_SW_SETUP','invalid KSWB_MNH argument') ENDIF CASE ('ECRA') @@ -127,9 +122,7 @@ SELECT CASE (HRAD) PSW_BANDS(5) = 1.785E-6 PSW_BANDS(6) = 3.19E-6 ELSE -!callabortstop -CALL ABORT - STOP + call Print_msg(NVERB_FATAL,'GEN','INI_SW_SETUP','invalid KSWB_MNH argument') ENDIF ! diff --git a/src/MNH/init_aerosol_properties.f90 b/src/MNH/init_aerosol_properties.f90 index 0c4c4e4f2..84f1a5bd0 100644 --- a/src/MNH/init_aerosol_properties.f90 +++ b/src/MNH/init_aerosol_properties.f90 @@ -35,6 +35,7 @@ END MODULE MODI_INIT_AEROSOL_PROPERTIES !! Original ??/??/13 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! Philippe Wautelet: 22/01/2019: bugs correction: incorrect writes + unauthorized goto +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !------------------------------------------------------------------------------- ! @@ -53,6 +54,8 @@ USE MODD_PARAM_LIMA, ONLY : LWARM, LACTI, NMOD_CCN, HINI_CCN, HTYPE_CCN, CINT_MIXING, NMOD_IMM, NINDICE_CCN_IMM, NIMM, & NPHILLIPS ! +use mode_msg +! USE MODI_GAMMA ! IMPLICIT NONE @@ -218,9 +221,8 @@ IF ( NMOD_CCN .GE. 1 ) THEN XACTEMP0 = 290.16 XALPHA6 = 3.076 CASE DEFAULT - WRITE(UNIT=ILUOUT0,FMT='("You must specify HTYPE_CNN(JMOD)=C or M & - &in EXSEG1.nam for each CCN mode")') - CALL ABORT + call Print_msg(NVERB_FATAL,'GEN','INIT_AEROSOL_PROPERTIES','HTYPE_CNN(JMOD)=C or M must be specified'// & + ' in EXSEG1.nam for each CCN mode') ENDSELECT ! XKHEN_MULTI(JMOD) = XKHEN0*(XLOGSIG_CCN(JMOD)/XLOGSIG0)**XALPHA1 diff --git a/src/MNH/les_ver_int.f90 b/src/MNH/les_ver_int.f90 index e4d3cd59d..b864e4747 100644 --- a/src/MNH/les_ver_int.f90 +++ b/src/MNH/les_ver_int.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 les 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ################ MODULE MODI_LES_VER_INT ! ################ @@ -53,6 +48,7 @@ END MODULE MODI_LES_VER_INT !! MODIFICATIONS !! ------------- !! Original 07/02/00 +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! -------------------------------------------------------------------------- ! @@ -63,6 +59,7 @@ USE MODD_LES USE MODD_PARAMETERS ! USE MODE_ll +use mode_msg ! USE MODI_VER_INTERP_LIN ! @@ -92,10 +89,7 @@ ELSE IF (CLES_LEVEL_TYPE=='Z') THEN PA_LES = XUNDEF END WHERE ELSE - PRINT*, '-------> STOP in LES_VER_INT <----------' -!callabortstop -CALL ABORT - STOP + call Print_msg(NVERB_FATAL,'GEN','LES_VER_INT','invalid CLES_LEVEL_TYPE ('//trim(CLES_LEVEL_TYPE)//')') END IF ! !------------------------------------------------------------------------------- diff --git a/src/MNH/lima_adjust.f90 b/src/MNH/lima_adjust.f90 index 2f0957ca1..c09f7abd3 100644 --- a/src/MNH/lima_adjust.f90 +++ b/src/MNH/lima_adjust.f90 @@ -135,6 +135,7 @@ END MODULE MODI_LIMA_ADJUST !! C. Barthe * LACy* jan. 2014 add budgets !! JP Chaboureau *LA* March 2014 fix the calculation of icy cloud fraction !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !------------------------------------------------------------------------------- ! @@ -155,6 +156,7 @@ USE MODD_PARAM_LIMA_WARM ! USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write +use mode_msg ! USE MODI_BUDGET USE MODI_CONDENS @@ -420,10 +422,7 @@ DO JITER =1,ITERMAX ! --------------------------------------- ! IF ( OSUBG_COND ) THEN -! -! not yet available -! - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'LIMA_ADJUST', 'OSUBG_COND=.true. not yet developed' ) ELSE ! !------------------------------------------------------------------------------- diff --git a/src/MNH/lima_ccn_activation.f90 b/src/MNH/lima_ccn_activation.f90 index 9a2e5dcdf..8ddde4450 100644 --- a/src/MNH/lima_ccn_activation.f90 +++ b/src/MNH/lima_ccn_activation.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ############################### MODULE MODI_LIMA_CCN_ACTIVATION ! ############################### @@ -86,6 +87,7 @@ END MODULE MODI_LIMA_CCN_ACTIVATION !! MODIFICATIONS !! ------------- !! Original ??/??/13 +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !------------------------------------------------------------------------------- ! @@ -538,6 +540,8 @@ CONTAINS !* 0. DECLARATIONS ! ! +use mode_msg +! IMPLICIT NONE ! !* 0.1 declarations of arguments and result @@ -605,8 +609,6 @@ DO JL = 1, NPTS PRINT*, 'PX2 ALWAYS too small, we put a greater one : PX2 =',PX2 fh(JL) = SINGL_FUNCSMAX(PX2,PZZW3(JL),JL) go to 100 - print*, 'PZRIDDR: never get here' - STOP end if if (abs(xh-xl) <= PXACC) then GO TO 101 @@ -618,8 +620,7 @@ DO JL = 1, NPTS !!$ endif !!SB end do - print*, 'PZRIDDR: exceeded maximum iterations',j - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'ZRIDDR', 'exceeded maximum iterations' ) else if (fl(JL) == 0.0) then PZRIDDR(JL)=PX1 else if (fh(JL) == 0.0) then diff --git a/src/MNH/lima_warm_nucl.f90 b/src/MNH/lima_warm_nucl.f90 index 08fa881a1..abe784f56 100644 --- a/src/MNH/lima_warm_nucl.f90 +++ b/src/MNH/lima_warm_nucl.f90 @@ -102,6 +102,7 @@ END MODULE MODI_LIMA_WARM_NUCL !! Original ??/??/13 !! J. Escobar : 10/2017 , for real*4 use XMNH_EPSILON !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !------------------------------------------------------------------------------- ! @@ -606,6 +607,8 @@ CONTAINS !* 0. DECLARATIONS ! ! +use mode_msg +! IMPLICIT NONE ! !* 0.1 declarations of arguments and result @@ -673,7 +676,6 @@ DO JL = 1, NPTS PRINT*, 'PX2 ALWAYS too small, we put a greater one : PX2 =',PX2 fh(JL) = SINGL_FUNCSMAX(PX2,PZZW3(JL),JL) go to 100 - STOP end if if (abs(xh-xl) <= PXACC) then GO TO 101 @@ -685,7 +687,7 @@ DO JL = 1, NPTS !!$ endif !!SB end do - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'ZRIDDR', 'exceeded maximum iterations' ) else if (fl(JL) == 0.0) then PZRIDDR(JL)=PX1 else if (fh(JL) == 0.0) then diff --git a/src/MNH/mesonh.f90 b/src/MNH/mesonh.f90 index 8964d79d1..27bd93e2c 100644 --- a/src/MNH/mesonh.f90 +++ b/src/MNH/mesonh.f90 @@ -236,8 +236,4 @@ CALL SURFEX_DEALLO_LIST ! !------------------------------------------------------------------------------- ! -!callabortstop -!CALL ABORT -STOP -! -END PROGRAM MESONH +END PROGRAM MESONH diff --git a/src/MNH/mnh2lpdm.f90 b/src/MNH/mnh2lpdm.f90 index 08b1957a2..3bb745967 100644 --- a/src/MNH/mnh2lpdm.f90 +++ b/src/MNH/mnh2lpdm.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl PROGRAM MNH2LPDM ! ############## @@ -14,6 +15,7 @@ ! Modification : 04.01.2009 (F. BONNARDOT, DP/SER/ENV ) ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! !----------------------------------------------------------------------------- ! @@ -32,6 +34,7 @@ USE MODE_IO, ONLY: IO_Init, IO_Config_set USE MODE_IO_FILE, ONLY: IO_File_open, IO_File_close USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MODELN_HANDLER +use mode_msg USE MODE_POS ! USE MODI_MNH2LPDM_ECH @@ -115,8 +118,8 @@ IF (LEN_TRIM(CFMNH(1))>0) THEN END DO print *,NBMNH,' fichiers a traiter.' ELSE - STOP -ENDIF + call Print_msg( NVERB_FATAL, 'GEN', 'MNH2LPDM', 'no CFMNH file given' ) +END IF ! ! ! diff --git a/src/MNH/mnhopen_aux_io_surf.f90 b/src/MNH/mnhopen_aux_io_surf.f90 index 262a09b08..3a89446e6 100644 --- a/src/MNH/mnhopen_aux_io_surf.f90 +++ b/src/MNH/mnhopen_aux_io_surf.f90 @@ -56,6 +56,7 @@ END MODULE MODI_MNHOPEN_AUX_IO_SURF ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines ! (nsubfiles_ioz is now determined in IO_File_add2list) +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -143,10 +144,9 @@ IF (HFILE/=YFILE .AND. HFILE/=YPGDFILE) THEN CALL IO_File_add2list(TPINFILE,TRIM(HFILE),'PGD','READ',KLFITYPE=2,KLFIVERB=5,OOLD=.TRUE.) CALL IO_File_open(TPINFILE,KRESP=IRESP) ! - IF (IRESP .NE. 0) THEN - PRINT*," /!\ MNHOPEN_AUX_IO_SURF :: FATAL PROBLEM OPENING INPUT/READ FILES =", HFILE - STOP '/!\ MNHOPEN_AUX_IO_SURF :: FATAL PROBLEM OPENING INPUT/READ FILES , CHECK OUTPUT_LISTING* !!!' - ENDIF + if ( iresp /= 0 ) then + call Print_msg( NVERB_FATAL, 'GEN', 'MNHOPEN_AUX_IO_SURF', 'unable to open file '//trim(HFILE) ) + end if CACTION = 'OPEN ' ELSE CALL IO_File_find_byname(TRIM(HFILE),TPINFILE,IRESP) diff --git a/src/MNH/mode_extrapol.f90 b/src/MNH/mode_extrapol.f90 index ef3850afe..fcf03634f 100644 --- a/src/MNH/mode_extrapol.f90 +++ b/src/MNH/mode_extrapol.f90 @@ -1,15 +1,29 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +!----------------------------------------------------------------- MODULE MODE_EXTRAPOL + use mode_msg + + implicit none + + private + + public :: EXTRAPOL, EXTRAPOL_ON_PSEUDO_HALO + + character(len=10) :: ydim1, ydim2 !Strings to store dimensions to print error message + INTERFACE EXTRAPOL MODULE PROCEDURE EXTRAPOL3D,EXTRAPOL3DN,EXTRAPOL2D,EXTRAPOL2DN END INTERFACE - + INTERFACE EXTRAPOL_ON_PSEUDO_HALO MODULE PROCEDURE EXTRAPOL_ON_PSEUDO_HALO3D,EXTRAPOL_ON_PSEUDO_HALO2D @@ -178,6 +192,7 @@ CONTAINS TYPE(LIST_ll), POINTER :: TZZSFIELD_ll ! list of fields to exchange LOGICAL :: GCYCLIC_EXTRAPOL ! + ! !------------------------------------------------------------------------------- ! !* 1. EXTRAPOLATE LATERAL BOUNDARY CONDITIONS : @@ -222,10 +237,8 @@ CONTAINS PTAB(IDIMX_C,:,:) = 2. * PTAB(IDIMX_C-1,:,:) - PTAB(IDIMX_C-2,:,:) ENDIF ELSEIF ( IDIMX_C == IIE - IIB + 2 + 2*JPHEXT ) THEN !the child domain has the size of the father domain minus one - WRITE(*,*) "ERROR in EXTRAPOL_ON_PSEUDO_HALO3D, case not supported : & - & the child grid has to be one point larger or one point smaller in X dim" - CALL ABORT - STOP 'ERROR in EXTRAPOL_ON_PSEUDO_HALO3D' + call Print_msg(NVERB_FATAL,'GEN','EXTRAPOL_ON_PSEUDO_HALO3D','case not supported:'// & + 'the child grid has to be one point larger or one point smaller in X dim') ! IF ( IIB>1 .AND. LWEST_ll() .AND. CLBCX(1)/='CYCL' ) THEN !du cote ouest, on a un point dans le 'pseudo halo' a extrapoler ! PTAB(1,:,:) = 2. * PTAB(2,:,:) - PTAB(3,:,:) ! ELSEIF ( IIB>1 .AND. LWEST_ll() .AND. CLBCX(1)=='CYCL' ) THEN @@ -237,10 +250,10 @@ CONTAINS ! PTAB(IDIMX_C,:,:) = PTAB(2,:,:) ! ENDIF ELSE !Error, this should not happen - WRITE(*,*) "ERROR in EXTRAPOL_ON_PSEUDO_HALO3D, IDIMX_C = ", & - IDIMX_C, ", IIE - IIB + 1 + 2*JPHEXT = ", IIE - IIB + 1 + 2*JPHEXT - CALL ABORT - STOP 'ERROR in EXTRAPOL_ON_PSEUDO_HALO3D' + write( ydim1, '( I10 )' ) IDIMX_C + write( ydim2, '( I10 )' ) IIE - IIB + 1 + 2*JPHEXT + call Print_msg( NVERB_FATAL, 'GEN','EXTRAPOL_ON_PSEUDO_HALO3D', 'wrong dimensions: IDIMX_C='//trim(ydim1)// & + ', IIE - IIB + 1 + 2*JPHEXT='//trim(ydim2) ) ENDIF ENDIF IF ( IDIMY_C > IJE - IJB + 1 + 2*JPHEXT ) THEN @@ -252,10 +265,8 @@ CONTAINS PTAB(:,IDIMY_C,:) = 2. * PTAB(:,IDIMY_C-1,:) - PTAB(:,IDIMY_C-2,:) ENDIF ELSEIF ( IDIMY_C == IJE - IJB + 2 + 2*JPHEXT ) THEN !the child domain has the size of the father domain minus one - WRITE(*,*) "ERROR in EXTRAPOL_ON_PSEUDO_HALO3D, case not supported : & - & the child grid has to be one point larger or one point smaller in Y dim" - CALL ABORT - STOP 'ERROR in EXTRAPOL_ON_PSEUDO_HALO3D' + call Print_msg(NVERB_FATAL,'GEN','EXTRAPOL_ON_PSEUDO_HALO3D','case not supported:'// & + 'the child grid has to be one point larger or one point smaller in Y dim') ! IF ( IJB>1 .AND. LNORTH_ll() .AND. CLBCY(1)/='CYCL' ) THEN !du cote ouest, on a un point dans le 'pseudo halo' a extrapoler ! PTAB(:,1,:) = 2. * PTAB(:,2,:) - PTAB(:,3,:) ! ELSEIF ( IJB>1 .AND. LNORTH_ll() .AND. CLBCY(1)=='CYCL' ) THEN @@ -267,10 +278,10 @@ CONTAINS ! PTAB(:,IDIMY_C,:) = PTAB(:,2,:) ! ENDIF ELSE !Error, this should not happen - WRITE(*,*) "ERROR in EXTRAPOL_ON_PSEUDO_HALO3D, IDIMY_C = ", & - IDIMY_C, ", IIE - IIB + 1 + 2*JPHEXT = ", IIE - IIB + 1 + 2*JPHEXT - CALL ABORT - STOP 'ERROR in EXTRAPOL_ON_PSEUDO_HALO3D' + write( ydim1, '( I10 )' ) IDIMX_C + write( ydim2, '( I10 )' ) IJE - IJB + 1 + 2*JPHEXT + call Print_msg( NVERB_FATAL, 'GEN','EXTRAPOL_ON_PSEUDO_HALO3D', 'wrong dimensions: IDIMY_C='//trim(ydim1)// & + ', IJE - IJB + 1 + 2*JPHEXT='//trim(ydim2) ) ENDIF ENDIF ! @@ -361,10 +372,8 @@ CONTAINS PTAB(IDIMX_C,:) = 2. * PTAB(IDIMX_C-1,:) - PTAB(IDIMX_C-2,:) ENDIF ELSEIF ( IDIMX_C == IIE - IIB + 2 + 2*JPHEXT ) THEN !the child domain has the size of the father domain minus one - WRITE(*,*) "ERROR in EXTRAPOL_ON_PSEUDO_HALO2D, case not supported : & - & the child grid has to be one point larger or one point smaller in X dim" - CALL ABORT - STOP 'ERROR in EXTRAPOL_ON_PSEUDO_HALO2D' + call Print_msg(NVERB_FATAL,'GEN','EXTRAPOL_ON_PSEUDO_HALO2D','case not supported:'// & + 'the child grid has to be one point larger or one point smaller in X dim') ! IF ( IIB>1 .AND. LWEST_ll() .AND. CLBCX(1)/='CYCL' ) THEN !du cote ouest, on a un point dans le 'pseudo halo' a extrapoler ! PTAB(1,:) = 2. * PTAB(2,:) - PTAB(3,:) ! ELSEIF ( IIB>1 .AND. LWEST_ll() .AND. CLBCX(1)=='CYCL' ) THEN @@ -376,10 +385,10 @@ CONTAINS ! PTAB(IDIMX_C,:) = PTAB(2,:) ! ENDIF ELSE !Error, this should not happen - WRITE(*,*) "ERROR in EXTRAPOL_ON_PSEUDO_HALO2D, IDIMX_C = ", IDIMX_C, & - ", IIE - IIB + 1 + 2*JPHEXT = ", IIE - IIB + 1 + 2*JPHEXT - CALL ABORT - STOP 'ERROR in EXTRAPOL_ON_PSEUDO_HALO2D' + write( ydim1, '( I10 )' ) IDIMX_C + write( ydim2, '( I10 )' ) IIE - IIB + 1 + 2*JPHEXT + call Print_msg( NVERB_FATAL, 'GEN','EXTRAPOL_ON_PSEUDO_HALO2D', 'wrong dimensions: IDIMX_C='//trim(ydim1)// & + ', IIE - IIB + 1 + 2*JPHEXT='//trim(ydim2) ) ENDIF ENDIF IF ( IDIMY_C > IJE - IJB + 1 + 2*JPHEXT ) THEN @@ -395,10 +404,8 @@ CONTAINS ! PTAB(:,IDIMY_C) = PTAB(:,2) ENDIF ELSEIF ( IDIMY_C == IJE - IJB + 2 + 2*JPHEXT ) THEN !the child domain has the size of the father domain minus one - WRITE(*,*) "ERROR in EXTRAPOL_ON_PSEUDO_HALO2D, case not supported : & - & the child grid has to be one point larger or one point smaller in Y dim" - CALL ABORT - STOP 'ERROR in EXTRAPOL_ON_PSEUDO_HALO2D' + call Print_msg(NVERB_FATAL,'GEN','EXTRAPOL_ON_PSEUDO_HALO3D','case not supported:'// & + 'the child grid has to be one point larger or one point smaller in Y dim') ! IF ( IJB>1 .AND. LNORTH_ll() .AND. CLBCY(1)/='CYCL' ) THEN !du cote ouest, on a un point dans le 'pseudo halo' a extrapoler ! PTAB(:,1) = 2. * PTAB(:,2) - PTAB(:,3) ! ELSEIF ( IJB>1 .AND. LNORTH_ll() .AND. CLBCY(1)=='CYCL' ) THEN @@ -410,10 +417,10 @@ CONTAINS ! PTAB(:,IDIMY_C) = PTAB(:,2) ! ENDIF ELSE !Error, this should not happen - WRITE(*,*) "ERROR in EXTRAPOL_ON_PSEUDO_HALO2D, IDIMY_C = ", IDIMY_C, & - ", IIE - IIB + 1 + 2*JPHEXT = ", IIE - IIB + 1 + 2*JPHEXT - CALL ABORT - STOP 'ERROR in EXTRAPOL_ON_PSEUDO_HALO2D' + write( ydim1, '( I10 )' ) IDIMX_C + write( ydim2, '( I10 )' ) IJE - IJB + 1 + 2*JPHEXT + call Print_msg( NVERB_FATAL, 'GEN','EXTRAPOL_ON_PSEUDO_HALO3D', 'wrong dimensions: IDIMY_C='//trim(ydim1)// & + ', IJE - IJB + 1 + 2*JPHEXT='//trim(ydim2) ) ENDIF ENDIF ! diff --git a/src/MNH/mode_fgau.f90 b/src/MNH/mode_fgau.f90 index 46614beca..aa46acabf 100644 --- a/src/MNH/mode_fgau.f90 +++ b/src/MNH/mode_fgau.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ $Date$ -!----------------------------------------------------------------- ! ######spl MODULE MODE_FGAU ! #################### @@ -36,7 +32,8 @@ !! !! MODIFICATIONS !! ------------- -!! Original 26/03/2004 +!! Original 26/03/2004 +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !-------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -153,6 +150,8 @@ CONTAINS SUBROUTINE GAUHER(N,X2,W) ! ######################### ! returns POSITIVE nodes and weights of Gauss-Hermite quadrature. + use mode_msg + IMPLICIT NONE ! N : ordre du polynôme de Hermite ! X2 : abscisses POSITIVES de la quadrature @@ -163,19 +162,17 @@ CONTAINS REAL :: PX,DPX,X,Y INTEGER,DIMENSION(N+1) :: P0,P1,P2 REAL,DIMENSION((N+1)/2) :: X1 - + INTEGER :: I,J,K - - IF(N>=15) THEN - PRINT*,'SUBROUTINE GAUHER FAILS TO CONVERGE FOR N>=15. ANYWAY, THIS NUMBER IS TOO HIGH.' - PRINT*,'PLEASE TAKE A SMALLER NUMBER OF POINTS OR MODIFY THIS SUBROUTINE.' - STOP - END IF + + if ( n >=15 ) call Print_msg( NVERB_FATAL, 'GEN', 'GAUHER', 'subroutine gauher fails to converge for n>=15.'// & + 'Anyway, this number is too high.'// & + 'Please take a smaller number of points or modify this subroutine.' ) P0(:)=0 P1(:)=0 P2(:)=0 - + P0(1)=1 ! N=0 H0(x)=1 P1(1)=0 ! N=1 H1(x)=2x P1(2)=2 diff --git a/src/MNH/mode_gridproj.f90 b/src/MNH/mode_gridproj.f90 index 814e5cf77..8fec230fa 100644 --- a/src/MNH/mode_gridproj.f90 +++ b/src/MNH/mode_gridproj.f90 @@ -37,19 +37,29 @@ !! Original 24/05/94 !! 05/02/15 M.Moge (LA-CNRS) !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS -USE MODE_MPPDB -USE MODD_CONF -!------------ +! !------------------------------------------------------------------------------ +USE MODD_CONF +! +USE MODE_MPPDB +use mode_msg +! +implicit none +! +private +! +public :: SM_GRIDPROJ, SM_LATLON, SM_XYHAT ! INTERFACE SM_LATLON MODULE PROCEDURE SM_LATLON_A,SM_LATLON_S END INTERFACE + INTERFACE SM_XYHAT MODULE PROCEDURE SM_XYHAT_A,SM_XYHAT_S END INTERFACE @@ -174,14 +184,14 @@ CONTAINS ! ------------ ! ! -USE MODE_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll, LIST1D_ll +USE MODD_CONF +USE MODD_CST +USE MODD_GRID USE MODD_LUNIT_n, ONLY : TLUOUT +USE MODD_PARAMETERS ! -USE MODD_CONF -USE MODD_CST -USE MODD_PARAMETERS -USE MODD_GRID +USE MODE_ll ! USE MODI_VERT_COORD ! @@ -390,11 +400,7 @@ ZCLAT0 = COS(ZRDSDG*ZLAT0) ZSLAT0 = SIN(ZRDSDG*ZLAT0) ! IF ((ABS(ZRPK-1.)>1.E-10).AND. (ANY(ABS(COS(ZRDSDG*ZLAT))<1.E-10))) THEN - WRITE(ILUOUT,*) 'Error in SM_GRIDPROJ : ' - WRITE(ILUOUT,*) 'pole in the domain, but not with stereopolar projection' -!callabortstop -CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'SM_GRIDPROJ', 'pole in the domain, but not with stereopolar projection' ) ENDIF ! IF (ABS(ZCLAT0)<1.E-10 .AND. (ABS(ZRPK-1.)<1.E-10)) THEN @@ -1542,9 +1548,7 @@ WRITE(ILUOUT,*) ' Function fails to converge after ',ITER,' iterations.' WRITE(ILUOUT,*) ' LATREF2=',LATREF2,' Residual=',ZGLAT-1., & ' ZEPSI=',ZEPSI,' Last increment=',ZDLAT/ZRDSDG WRITE(ILUOUT,*) ' JOB ABORTS...' -!callabortstop -CALL ABORT -STOP +call Print_msg( NVERB_FATAL, 'GEN', 'LATREF2', 'failed to converge' ) !------------------------------------------------------------------------------- END FUNCTION LATREF2 !------------------------------------------------------------------------------- diff --git a/src/MNH/mode_pos.f90 b/src/MNH/mode_pos.f90 index 27f7cfb75..09a2ca12e 100644 --- a/src/MNH/mode_pos.f90 +++ b/src/MNH/mode_pos.f90 @@ -1,23 +1,13 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1993-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 mode 2006/05/18 13:07:25 -!----------------------------------------------------------------- !! ############### MODULE MODE_POS !! ############### !! -INTERFACE POS -!! -MODULE PROCEDURE POSNAM -MODULE PROCEDURE POSKEY -!! -END INTERFACE +implicit none !! !! CONTAINS @@ -54,6 +44,7 @@ CONTAINS !! -------------- !! Original : 22/06/93 !! I. Mallet 15/10/01 adaptation to MesoNH (F90 norm) +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -156,6 +147,8 @@ END SUBROUTINE POSNAM !! Original : 15/10/01 !------------------------------------------------------------------------------ ! +use mode_msg +! !* 0. DECLARATIONS ! ------------ ! @@ -169,7 +162,7 @@ CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HKEYWD2 !* 0.2 Declarations of local variables ! CHARACTER(LEN=120) :: YLINE -INTEGER :: ILEN1,IRET +INTEGER :: ILEN1, ILEN2, IRET ! ! !* 1. POSITION FILE @@ -197,10 +190,7 @@ RETURN ! end of file: keyword not found 100 CONTINUE IF (.NOT.PRESENT(HKEYWD2)) THEN - WRITE(KLUOUT,FMT=*) '-- keyword ',HKEYWD1,' not found: program stop' -!callabortstop -CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'POSKEY', 'keyword '//trim(HKEYWD1)//' not found' ) ELSE ! !* 2. SECOND KEYWORD: POSITION FILE @@ -222,10 +212,7 @@ ELSE END IF ! end of file: scd keyword not found 101 CONTINUE -WRITE(KLUOUT,FMT=*) '-- keyword ',HKEYWD2,' not found: program stop' -!callabortstop -CALL ABORT -STOP +call Print_msg( NVERB_FATAL, 'GEN', 'POSKEY', 'keyword '//trim(HKEYWD2)//' not found' ) !------------------------------------------------------------------ END SUBROUTINE POSKEY ! diff --git a/src/MNH/mode_thermo.f90 b/src/MNH/mode_thermo.f90 index 0808d39a4..36f4d593a 100644 --- a/src/MNH/mode_thermo.f90 +++ b/src/MNH/mode_thermo.f90 @@ -34,13 +34,22 @@ !! Original 28/08/94 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! J.Escobar : 5/10/2018 : add FLUSH , for better logging in case of PB +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !-------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! !------------------------------------------------------------------------------- -! + +use mode_msg + +implicit none + +private + +public :: DQSAT, DQSATI, QSAT, QSATI, SM_FOES, SM_PMR_HU + INTERFACE SM_FOES MODULE PROCEDURE SM_FOES_0D MODULE PROCEDURE SM_FOES_1D @@ -378,8 +387,7 @@ IF ( ANY(ZDT > ZEPS) ) THEN WRITE(ILUOUT,*) 'T AT THIS MAXIMUM : ', ZT(IMAXLOC(1),IMAXLOC(2),IMAXLOC(3)) WRITE(ILUOUT,*) 'JOB ABORTED ' FLUSH(unit=ILUOUT) - CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'SM_PMR_HU_3D', 'failed to converge' ) END IF !------------------------------------------------------------------------------- END FUNCTION SM_PMR_HU_3D @@ -517,8 +525,7 @@ IF (ANY(ZDT>ZEPS)) THEN WRITE(ILUOUT,*) 'MR AT THIS MAXIMUM : ', PMR(IMAXLOC) WRITE(ILUOUT,*) 'T AT THIS MAXIMUM : ', ZT(IMAXLOC) WRITE(ILUOUT,*) 'JOB ABORTED ' - CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'SM_PMR_HU_1D', 'failed to converge' ) END IF !------------------------------------------------------------------------------- END FUNCTION SM_PMR_HU_1D diff --git a/src/MNH/mode_tmat.f90 b/src/MNH/mode_tmat.f90 index f0c98a799..361bc6f9b 100644 --- a/src/MNH/mode_tmat.f90 +++ b/src/MNH/mode_tmat.f90 @@ -16,6 +16,7 @@ ! Modif par Olivier Caumont (04/2008) pour interfaçage avec diagnostic ! radar de Méso-NH. ! P. Wautelet 22/01/2019: replace double precision declarations by real(kind(0.0d0)) (to allow compilation by NAG compiler) +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! !**************************************************************************** @@ -292,6 +293,8 @@ XIT11,XIT12,XIT21,XIT22,& XTR1,XTI1,NPN1,NPNG1,NPNG2,NPN2,NPN4,NPN6 + use mode_msg + IMPLICIT REAL*8 (A-H,O-Z) !! Parameter (NPN1=200, NPNG1=600, NPNG2=2*NPNG1, NPN2=2*NPN1,& @@ -553,7 +556,7 @@ INM1=MAX0(4,IXXX) !C IF (INM1.GE.NPN1)WRITE(10,7333) NPN1 - IF (INM1.GE.NPN1) STOP + if ( INM1 >= NPN1 ) call Print_msg( NVERB_FATAL, 'GEN', 'TMD', 'INM1 >= NPN1' ) ! 7333 FORMAT('CONVERGENCE IS NOT OBTAINED FOR NPN1=',I3, & ! '. EXECUTION TERMINATED') @@ -569,12 +572,9 @@ NMAX=NMA !c MMAX=1 NGAUSS=NMAX*NDGS - -!C IF (NGAUSS.GT.NPNG1) WRITE(10,7340) NGAUSS - IF (NGAUSS.GT.NPNG1) STOP - -!c 7340 FORMAT('NGAUSS =',I3,' I.E. IS GREATER THAN NPNG1.', -!c & ' EXECUTION TERMINATED') + + if ( NGAUSS > NPNG1 ) call Print_msg( NVERB_FATAL, 'GEN', 'TMD', 'NGAUSS > NPNG1' ) + !c 7334 FORMAT(' NMAX =', I3,' DSCA=',D8.2,' DEXT=',D8.2) CALL CONST(NGAUSS,NMAX,X,W,AN,ANN,S,SS) @@ -614,7 +614,7 @@ IF(.not.(DSCA.LE.DDELT.AND.DEXT.LE.DDELT)) THEN !C IF (NMA.EQ.NPN1) WRITE(10,7333) NPN1 - IF (NMA.EQ.NPN1) STOP + if ( NMA == NPN1 ) call Print_msg( NVERB_FATAL, 'GEN', 'TMD', 'NMA == NPN1' ) ELSE SORTIE1=.TRUE. ENDIF @@ -1189,12 +1189,9 @@ TL1.LT.0D0.OR.TL1.GT.180D0.OR.& PL.LT.0D0.OR.PL.GT.360D0.OR.& PL1.LT.0D0.OR.PL1.GT.360D0) THEN -!C WRITE (10,2000) - STOP - ENDIF + call Print_msg( NVERB_FATAL, 'GEN', 'AMPL', 'an angular parameter is outside its allowable range' ) + END IF -! 2000 FORMAT ('AN ANGULAR PARAMETER IS OUTSIDE ITS',& -! ' ALLOWABLE RANGE') PIN=ACOS(-1D0) PIN2=PIN*0.5D0 @@ -1635,10 +1632,8 @@ ENDDO -!C IF (NMAX.GT.NPN1) WRITE (10,9000) NMAX,NPN1 - IF (NMAX.GT.NPN1) STOP + if ( NMAX > NPN1 ) call Print_msg( NVERB_FATAL, 'GEN', 'VARY', 'NMAX > NPN1' ) - 9000 FORMAT(' NMAX = ',I2,', i.e., greater than ',I3) TB=TA*SQRT(MRR*MRR+MRI*MRI) TB=MAX(TB,FLOAT(NMAX)) NNMAX1=1.2D0*SQRT(MAX(TA,FLOAT(NMAX)))+3D0 diff --git a/src/MNH/mode_zsrpun.f90 b/src/MNH/mode_zsrpun.f90 index 6cf8a8dfd..efdc85450 100644 --- a/src/MNH/mode_zsrpun.f90 +++ b/src/MNH/mode_zsrpun.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1999-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 mode 2006/05/18 13:07:25 -!----------------------------------------------------------------- MODULE mode_zsrpun USE modd_glo @@ -28,6 +23,7 @@ MODULE mode_zsrpun ! by Betty Pun, Nov, 99. A file with xi at given Aw ! is included binsolu.h ! 4. Rewritten to FORTRAN90 by Alf Grini (alf.grini@cnrm.meteo.fr) +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! !***************************************************************************/ @@ -44,7 +40,9 @@ CONTAINS ) USE modd_binsolu - + + use mode_msg + IMPLICIT NONE !INPUT @@ -82,10 +80,7 @@ CONTAINS !Start code IF (ZSRFLAG.eq.0)THEN -!callabortstop -CALL ABORT - stop "ZSRFLAG=0 not implemented yet" - + call Print_msg( NVERB_FATAL, 'GEN', 'ZSRPUN', 'ZSRFLAG=0 not yet implemented' ) ELSE ! zsrflag = 1 !Get the total moles (umole/m3) of the main components, diff --git a/src/MNH/one_wayn.f90 b/src/MNH/one_wayn.f90 index 0490f8fd1..05532ca21 100644 --- a/src/MNH/one_wayn.f90 +++ b/src/MNH/one_wayn.f90 @@ -1,6 +1,6 @@ !MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -187,12 +187,14 @@ SUBROUTINE ONE_WAY_n(KDAD,PTSTEP,KMI,KTCOUNT, & !! J.Escobar : 18/12/2015 : Correction of bug in bound in // for NHALO <>1 !! Modification 01/2016 (JP Pinty) Add LIMA !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS ! ------------ USE MODE_ll USE MODE_MODELN_HANDLER +use mode_msg ! USE MODD_PARAMETERS USE MODD_NESTING @@ -493,7 +495,8 @@ IF (HCLOUD=="LIMA" ) THEN &ZTSVT(:,:,:,JSV-1+NSV_LIMA_BEG_A(KMI)),KMI) ENDDO ELSE - IF (NSV_LIMA_A(KMI)/=NSV_LIMA_A(KDAD)) CALL ABORT + IF ( NSV_LIMA_A(KMI) /= NSV_LIMA_A(KDAD) ) & + call Print_msg( NVERB_FATAL, 'GEN', 'ONE_WAY_n', 'NSV_LIMA_A(KMI)/=NSV_LIMA_A(KDAD)' ) DO JSV=1,NSV_LIMA_A(KMI) CALL SET_LSFIELD_1WAY_ll(XSVT(:,:,:,JSV-1+NSV_LIMA_BEG_A(KDAD)),& &ZTSVT(:,:,:,JSV-1+NSV_LIMA_BEG_A(KMI)),KMI) diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index 6454934b0..f14b703c0 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -1462,7 +1462,6 @@ END IF IF(LPV_PERT .AND. .NOT.(LGEOSBAL)) THEN !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','PREP_IDEAL_CASE','for PV inversion, LGEOSBAL has to be true') - STOP ENDIF ! IF(LPV_PERT .AND. NPROC>1) THEN @@ -1902,9 +1901,4 @@ CALL IO_File_close(TLUOUT) ! CALL END_PARA_ll(IINFO_ll) ! -! - !callabortstop - !JUAN CALL ABORT -STOP -! END PROGRAM PREP_IDEAL_CASE diff --git a/src/MNH/pressurez.f90 b/src/MNH/pressurez.f90 index 12396af04..70969b1e7 100644 --- a/src/MNH/pressurez.f90 +++ b/src/MNH/pressurez.f90 @@ -217,6 +217,7 @@ END MODULE MODI_PRESSUREZ !! J.escobar : check nb proc versus ZRESI & min(DIMX,DIMY) !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! Philippe Wautelet: 22/01/2019: use standard FLUSH statement instead of non standard intrinsics +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -650,10 +651,8 @@ WRITE(ILUOUT,*) 'residual divergence / 2 DT', ZMAXVAL, & ' located at ', IMAXLOC FLUSH(unit=ILUOUT) IF (ABS(ZMAXVAL) .GT. 100.0 ) THEN - WRITE(ILUOUT,*) ' pressurez.f90 STOP :: SOMETHING WRONG WITH PRESSURE , ABS(RESIDUAL) > 100.0 ' - FLUSH(unit=ILUOUT) - STOP ' pressurez.f90 STOP :: SOMETHING WRONG WITH PRESSURE , ABS(RESIDUAL) > 100.0 ' -ENDIF + call Print_msg( NVERB_FATAL, 'GEN', 'PRESSUREZ', 'something wrong with pressure: abs(residual) > 100.0' ) +END IF ! number of iterations adjusted IF (LRES) THEN ZMAXRES = XRES diff --git a/src/MNH/radiations.f90 b/src/MNH/radiations.f90 index b4533c724..5ba7853d4 100644 --- a/src/MNH/radiations.f90 +++ b/src/MNH/radiations.f90 @@ -119,6 +119,7 @@ CONTAINS !! J.Escobar 20/07/2018 : for real*4 compilation, convert with REAL(X) argument to SUM_DD... !! P.Wautelet 22/01/2019: use standard FLUSH statement instead of non standard intrinsics !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -154,6 +155,7 @@ USE MODE_DUSTOPT USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll +use mode_msg USE MODE_REPRO_SUM, ONLY : SUM_DD_R2_R1_ll,SUM_DD_R1_ll ! #ifdef MNH_PGI @@ -581,7 +583,8 @@ IF ( ZMINVAL <= 0.0 ) THEN WRITE(ILUOUT,*) ' radiation.f90 STOP :: SOMETHING WRONG WITH PRESSURE , ZDZPABST <= 0.0 ' WRITE(ILUOUT,*) ' radiation :: ZDZPABST ', ZMINVAL,' located at ', IMINLOC FLUSH(unit=ILUOUT) - STOP ' radiation.f90 STOP :: SOMETHING WRONG WITH PRESSURE , ZDZPABST < 0.0 ' + call Print_msg( NVERB_FATAL, 'GEN', 'RADIATIONS', 'something wrong with pressure: ZDZPABST <= 0.0' ) + ENDIF !------------------------------------------------------------------------------ ALLOCATE(ZLAT(KDLON)) @@ -1846,9 +1849,9 @@ DEALLOCATE(ZWORK_GRID) ALLOCATE(ZQSAVE(SIZE(ZTAVE,1),SIZE(ZTAVE,2))) ! WHERE (ZTAVE(:,:) > XTT) - ZQSAVE(:,:) = QSATW_2D(ZTAVE, ZPAVE) + ZQSAVE(:,:) = QSAT(ZTAVE, ZPAVE) ELSEWHERE - ZQSAVE(:,:) = QSATI_2D(ZTAVE, ZPAVE) + ZQSAVE(:,:) = QSATI(ZTAVE, ZPAVE) END WHERE ! ! allocations for the radiation code outputs diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90 index 463fcaabb..fd649b6c8 100644 --- a/src/MNH/rain_ice.f90 +++ b/src/MNH/rain_ice.f90 @@ -241,6 +241,7 @@ END MODULE MODI_RAIN_ICE !! J.Escobar : 8/2018 : for real*4 , bis => limit exp() in RAIN_ICE_SLOW with XMNH_HUGE_12_LOG !! P.Wautelet 01/02/2019: add missing initialization for PFPR !! 02/2019 C.Lac add rain fraction as an output field +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! !* 0. DECLARATIONS ! ------------ @@ -1079,9 +1080,7 @@ IF (HSEDIM == 'STAT') THEN ELSEIF (HSEDIM == 'SPLI') THEN CALL RAIN_ICE_SEDIMENTATION_SPLIT ELSE - WRITE(*,*) ' STOP' - WRITE(*,*) ' NO SEDIMENTATION SCHEME FOR HSEDIM=',HSEDIM - CALL PRINT_MSG(NVERB_FATAL,'GEN','RAIN_ICE','') + call Print_msg( NVERB_FATAL, 'GEN', 'RAIN_ICE', 'no sedimentation scheme for HSEDIM='//HSEDIM ) END IF !sedimentation of rain fraction CALL RAINFR_VERT(PRAINFR, PRRS(:,:,:)*PTSTEP) diff --git a/src/MNH/rain_ice_red.f90 b/src/MNH/rain_ice_red.f90 index c76184128..2138a5c43 100644 --- a/src/MNH/rain_ice_red.f90 +++ b/src/MNH/rain_ice_red.f90 @@ -239,6 +239,7 @@ END MODULE MODI_RAIN_ICE_RED !! (C. Abiven, Y. Léauté, V. Seigner, S. Riette) Phasing of Turner rain subgrid param !! (S. Riette) Source code split into several files !! 02/2019 C.Lac add rain fraction as an output field +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! !* 0. DECLARATIONS ! ------------ @@ -580,9 +581,7 @@ IF(.NOT. LSEDIM_AFTER) THEN &PRIS, PRSS, PRGS, & &PTHS, ZZ_LVFACT, ZZ_LSFACT, PRHS) ELSE - WRITE(*,*) ' STOP' - WRITE(*,*) ' NO SEDIMENTATION SCHEME FOR HSEDIM=', HSEDIM - CALL PRINT_MSG(NVERB_FATAL,'GEN','RAIN_ICE_RED','') + call Print_msg( NVERB_FATAL, 'GEN', 'RAIN_ICE_RED', 'no sedimentation scheme for HSEDIM='//HSEDIM ) END IF ! !* 2.2 budget storage @@ -1525,9 +1524,7 @@ IF(LSEDIM_AFTER) THEN &PRIS, PRSS, PRGS, & &PTHS, ZZ_LVFACT, ZZ_LSFACT, PRHS) ELSE - WRITE(*,*) ' STOP' - WRITE(*,*) ' NO SEDIMENTATION SCHEME FOR HSEDIM=', HSEDIM - CALL PRINT_MSG(NVERB_FATAL,'GEN','RAIN_ICE_RED','') + call Print_msg( NVERB_FATAL, 'GEN', 'RAIN_ICE_RED', 'no sedimentation scheme for HSEDIM='//HSEDIM ) END IF ! !* 8.2 budget storage diff --git a/src/MNH/read_all_data_grib_case.f90 b/src/MNH/read_all_data_grib_case.f90 index 77142fbfa..002656520 100644 --- a/src/MNH/read_all_data_grib_case.f90 +++ b/src/MNH/read_all_data_grib_case.f90 @@ -129,6 +129,7 @@ END MODULE MODI_READ_ALL_DATA_GRIB_CASE !! Pergaud : 2018 add GFS !! 01/2019 (G.Delautier via Q.Rodier) for GRIB2 ARPEGE and AROME from EPYGRAM !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -390,7 +391,7 @@ ALLOCATE (ZYOUT(INO)) IF (HFILE(1:3)=='ATM' .OR. HFILE=='CHEM') THEN WRITE (ILUOUT0,'(A,A4)') ' -- Grib reader started for ',HFILE ELSE - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE','bad input argument') + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE','bad input argument') END IF ! !* 2.1 Charge in memory the grib messages @@ -398,16 +399,14 @@ END IF ! open grib file CALL GRIB_OPEN_FILE(IUNIT,HGRIB,'R',IRET_GRIB) IF (IRET_GRIB /= 0) THEN - !callabortstop WRITE(YMSG,*) 'Error opening the grib file ',TRIM(HGRIB),', error code ', IRET_GRIB - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF ! count the messages in the file CALL GRIB_COUNT_IN_FILE(IUNIT,ICOUNT,IRET_GRIB) IF (IRET_GRIB /= 0) THEN - !callabortstop WRITE(YMSG,*) 'Error in reading the grib file ',TRIM(HGRIB),', error code ', IRET_GRIB - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF ALLOCATE(IGRIB(ICOUNT)) ! initialize the tabular with a negativ number @@ -417,9 +416,8 @@ IGRIB(:)=-12 DO JLOOP=1,ICOUNT CALL GRIB_NEW_FROM_FILE(IUNIT,IGRIB(JLOOP),IRET_GRIB) IF (IRET_GRIB /= 0) THEN - !callabortstop WRITE(YMSG,*) 'Error in reading the grib file - ILOOP=',JLOOP,' - error code ', IRET_GRIB - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF END DO ! close the grib file @@ -432,15 +430,13 @@ CALL GRIB_CLOSE_FILE(IUNIT) ! CALL GRIB_GET(IGRIB(1),'centre',ICENTER,IRET_GRIB) IF (IRET_GRIB /= 0) THEN - !callabortstop WRITE(YMSG,*) 'Error in reading center - error code ', IRET_GRIB - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF CALL GRIB_GET(IGRIB(1),'typeOfGrid',HGRID,IRET_GRIB) IF (IRET_GRIB /= 0) THEN - !callabortstop WRITE(YMSG,*) 'Error in reading type of grid - error code ', IRET_GRIB - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF ! IMODEL = -1 @@ -492,8 +488,7 @@ SELECT CASE (ICENTER) ALLOCATE(ZPARAM(6)) END SELECT IF (IMODEL==-1) THEN -!callabortstop - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE','unsupported Grib file format') + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE','unsupported Grib file format') END IF ! !--------------------------------------------------------------------------------------- @@ -635,11 +630,7 @@ SELECT CASE (IMODEL) CASE(10) ! NCEP CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=134) END SELECT -IF(INUM < 0) THEN - WRITE (ILUOUT0,'(A)')'Surface pressure is missing - abort' - CALL ABORT - STOP -ENDIF +IF( INUM < 0 ) call Print_msg( NVERB_FATAL, 'IO', 'READ_ALL_DATA_GRIB_CASE', 'surface pressure is missing' ) ! recuperation du tableau de valeurs CALL GRIB_GET_SIZE(IGRIB(INUM),'values',ISIZE) ALLOCATE(ZVALUE(ISIZE)) @@ -668,13 +659,12 @@ CALL GRIB_GET(IGRIB(INUM_ZS),'Nj',INJ_ZS) ! IF ( HGRID(1:7)=='regular' .AND. HGRID_ZS(1:7)=='reduced' .AND.& INJ == INJ_ZS) THEN - WRITE (ILUOUT0,'(A)')'HGRID(1:7)==regular .AND. HGRID_ZS(1:7)==reduced .AND. INJ == INJ_ZS - abort' - CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'IO', 'READ_ALL_DATA_GRIB_CASE', & + 'HGRID(1:7)==regular .AND. HGRID_ZS(1:7)==reduced .AND. INJ == INJ_ZS' ) ELSE ALLOCATE(ZWORK_LNPS(SIZE(ZLNPS_G))) ZWORK_LNPS(:) = ZLNPS_G(:) -ENDIF +ENDIF ! IF (HFILE(1:3)=='ATM') THEN ALLOCATE (XPS_LS(IIU,IJU)) @@ -734,33 +724,17 @@ IF (IMODEL/=10) THEN ISTARTLEVEL=0 CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=IT,KLEV1=ISTARTLEVEL) ENDIF - IF(INUM < 0) THEN - WRITE (ILUOUT0,'(A)')'Air temperature is missing - abort' - CALL ABORT - STOP - ENDIF + IF(INUM < 0) call Print_msg( NVERB_FATAL, 'IO', 'READ_ALL_DATA_GRIB_CASE', 'air temperature is missing' ) CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=IQ,KLEV1=ISTARTLEVEL) - IF(INUM < 0) THEN - WRITE (ILUOUT0,'(A)')'Atmospheric specific humidity is missing - abort' - CALL ABORT - STOP - ENDIF + IF(INUM < 0) call Print_msg( NVERB_FATAL, 'IO', 'READ_ALL_DATA_GRIB_CASE', 'atmospheric specific humidity is missing' ) ELSE ! NCEP ISTARTLEVEL=10 IT=130 IQ=157 CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=IT,KLEV1=ISTARTLEVEL) - IF(INUM < 0) THEN - WRITE (ILUOUT0,'(A)')'Air temperature is missing - abort' - CALL ABORT - STOP - ENDIF + IF(INUM < 0) call Print_msg( NVERB_FATAL, 'IO', 'READ_ALL_DATA_GRIB_CASE', 'air temperature is missing' ) CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=IQ,KLEV1=ISTARTLEVEL) - IF(INUM < 0) THEN - WRITE (ILUOUT0,'(A)')'Atmospheric relative humidity is missing - abort' - CALL ABORT - STOP - ENDIF + IF(INUM < 0) call Print_msg( NVERB_FATAL, 'IO', 'READ_ALL_DATA_GRIB_CASE', 'atmospheric relative humidity is missing' ) ENDIF ! IF (IMODEL/=10) THEN ! others than NCEP @@ -779,16 +753,14 @@ IF (IMODEL/=10) THEN ! others than NCEP ILEV1 = JLOOP1-1+ISTARTLEVEL CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=IQ,KLEV1=ILEV1) IF (INUM< 0) THEN - !callabortstop WRITE(YMSG,*) 'atmospheric humidity level ',JLOOP1,' is missing' - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF CALL GRIB_GET(IGRIB(INUM),'values',ZQ_G(:,INLEVEL-JLOOP1+1)) CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=IT,KLEV1=ILEV1) IF (INUM< 0) THEN - !callabortstop WRITE(YMSG,*) 'atmospheric temperature level ',JLOOP1,' is missing' - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF CALL GRIB_GET(IGRIB(INUM),'values',ZT_G(:,INLEVEL-JLOOP1+1)) CALL GRIB_GET(IGRIB(INUM),'Nj',INJ,IRET_GRIB) @@ -798,17 +770,15 @@ ELSE ! NCEP ILEV1 = IP_GFS(JLOOP1) CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=IQ,KLEV1=ILEV1) IF (INUM< 0) THEN - !callabortstop WRITE(YMSG,*) 'atmospheric humidity level ',JLOOP1,' is missing' - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF CALL GRIB_GET(IGRIB(INUM),'values',ZQ_G(:,JLOOP1),IRET_GRIB) WRITE (ILUOUT0,*) 'Q ',ILEV1,IRET_GRIB CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=IT,KLEV1=ILEV1) IF (INUM< 0) THEN - !callabortstop WRITE(YMSG,*) 'atmospheric temperature level ',JLOOP1,' is missing' - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF CALL GRIB_GET(IGRIB(INUM),'values',ZT_G(:,JLOOP1),IRET_GRIB) WRITE (ILUOUT0,*) 'T ',ILEV1,IRET_GRIB @@ -845,8 +815,7 @@ IF (IMODEL/=10) THEN ! others than NCEP ALLOCATE(ZPV(IPV)) CALL GRIB_GET(IGRIB(INUM),'pv',ZPV) ELSE - !callabortstop - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE','there is no PV value in this message') + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE','there is no PV value in this message') ENDIF SELECT CASE (IMODEL) CASE (0,3,4,6,7) @@ -874,8 +843,7 @@ IF (IMODEL/=10) THEN ! others than NCEP END DO END SELECT ELSE - !callabortstop - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE','level definition section is missing') + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE','level definition section is missing') END IF ELSE ALLOCATE (XA_LS(INLEVEL)) @@ -1125,9 +1093,8 @@ IF (NRR >1) THEN CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=IPAR,KLEV1=ILEV1) IF (INUM < 0) THEN - !callabortstop WRITE(YMSG,*) 'Specific ratio ',IPAR,' at level ',JLOOP1,' is missing' - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF CALL GRIB_GET_SIZE(IGRIB(INUM),'values',ISIZE) ALLOCATE(ZVALUE(ISIZE)) @@ -1147,9 +1114,8 @@ IF (NRR >1) THEN CALL SEARCH_FIELD(IGRIB,INUM,KDIS=0,KCAT=6,KNUMBER=6,KLEV1=ILEV1) IF (INUM < 0) THEN - !callabortstop WRITE(YMSG,*) 'Specific ratio ',IPAR,' at level ',JLOOP1,' is missing' - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF CALL GRIB_GET_SIZE(IGRIB(INUM),'values',ISIZE) ALLOCATE(ZVALUE(ISIZE)) @@ -1167,9 +1133,8 @@ IF (NRR >1) THEN CALL SEARCH_FIELD(IGRIB,INUM,KDIS=0,KCAT=1,KNUMBER=85,KLEV1=ILEV1) IF (INUM < 0) THEN - !callabortstop WRITE(YMSG,*) 'Specific ratio for rain at level ',JLOOP1,' is missing' - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF CALL GRIB_GET_SIZE(IGRIB(INUM),'values',ISIZE) ALLOCATE(ZVALUE(ISIZE)) @@ -1187,9 +1152,8 @@ IF (NRR >1) THEN ILEV1 = JLOOP1-1+ISTARTLEVEL CALL SEARCH_FIELD(IGRIB,INUM,KDIS=0,KCAT=1,KNUMBER=82,KLEV1=ILEV1) IF (INUM < 0) THEN - !callabortstop WRITE(YMSG,*) 'Specific ratio for ICE at level ',JLOOP1,' is missing' - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF CALL GRIB_GET_SIZE(IGRIB(INUM),'values',ISIZE) ALLOCATE(ZVALUE(ISIZE)) @@ -1207,9 +1171,8 @@ IF (NRR >1) THEN ILEV1 = JLOOP1-1+ISTARTLEVEL CALL SEARCH_FIELD(IGRIB,INUM,KDIS=0,KCAT=1,KNUMBER=86,KLEV1=ILEV1) IF (INUM < 0) THEN - !callabortstop WRITE(YMSG,*) 'Specific ratio ',IPAR,' at level ',JLOOP1,' is missing' - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF CALL GRIB_GET_SIZE(IGRIB(INUM),'values',ISIZE) ALLOCATE(ZVALUE(ISIZE)) @@ -1227,9 +1190,8 @@ IF (NRR >1) THEN ILEV1 = JLOOP1-1+ISTARTLEVEL CALL SEARCH_FIELD(IGRIB,INUM,KDIS=0,KCAT=1,KNUMBER=32,KLEV1=ILEV1) IF (INUM < 0) THEN - !callabortstop WRITE(YMSG,*) 'Specific ratio ',IPAR,' at level ',JLOOP1,' is missing' - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF CALL GRIB_GET_SIZE(IGRIB(INUM),'values',ISIZE) ALLOCATE(ZVALUE(ISIZE)) @@ -1254,9 +1216,8 @@ IF (CTURB=='TKEL') THEN CALL SEARCH_FIELD(IGRIB,INUM,KDIS=0,KCAT=19,KNUMBER=11,KLEV1=ILEV1) END IF IF (INUM < 0) THEN - !callabortstop WRITE(YMSG,*) 'TKE at level ',JLOOP1,' is missing' - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF CALL GRIB_GET_SIZE(IGRIB(INUM),'values',ISIZE) ALLOCATE(ZVALUE(ISIZE)) @@ -1293,8 +1254,7 @@ IF (IMODEL==5) THEN DEALLOCATE(XSV_LS) ALLOCATE (XSV_LS(IIU,IJU,INLEVEL,NSV)) ELSE - !callabortstop - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE','Mocage model: Bad input argument in read_all_data_grib_case') + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE','Mocage model: Bad input argument in read_all_data_grib_case') END IF XSV_LS(:,:,:,:) = 0. ILEV1=-1 @@ -1354,9 +1314,8 @@ IF (IMODEL==5) THEN ILEV1 = JLOOP1 CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=INUMGRIB(JN),KLEV1=ILEV1) IF (INUM < 0) THEN - !callabortstop WRITE(YMSG,*) 'Atmospheric ',INUMGRIB(JN),' grib chemical species level ',JLOOP1,' is missing' - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF CALL GRIB_GET(IGRIB(INUM),'Nj',INJ,IRET_GRIB) ALLOCATE(IINLO(INJ)) @@ -1457,9 +1416,8 @@ DO JLOOP1 = ISTARTLEVEL, ISTARTLEVEL+INLEVEL-1 ! read component u CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=IPAR,KLEV1=ILEV1) IF (INUM < 0) THEN - !callabortstop WRITE(YMSG,*) 'wind vector component "u" at level ',JLOOP1,' is missing' - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF CALL GRIB_GET_SIZE(IGRIB(INUM),'values',ISIZE) ALLOCATE(ZVALUE(ISIZE)) @@ -1489,9 +1447,8 @@ DO JLOOP1 = ISTARTLEVEL, ISTARTLEVEL+INLEVEL-1 END IF CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=IPAR+1,KLEV1=ILEV1) IF (INUM < 0) THEN - !callabortstop WRITE(YMSG,*) 'wind vector component "v" at level ',JLOOP1,' is missing' - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF CALL GRIB_GET_SIZE(IGRIB(INUM),'values',ISIZE) ALLOCATE(ZVALUE(ISIZE)) @@ -1792,9 +1749,8 @@ IF (ODUMMY_REAL) THEN ! IF (IVAR /= IMOC) THEN WRITE (ILUOUT0,'(A,I3,A,I3,A)') ' -> Number of correct lines (',IVAR,') is different of ',IMOC,' - abort' - !callabortstop WRITE(YMSG,*) 'number of correct lines (',IVAR,') is different of ',IMOC - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF ! !* 2.10.2 read and interpolate variables onto dummy variables XDUMMY_2D @@ -1804,9 +1760,8 @@ IF (ODUMMY_REAL) THEN CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=IPAR,KLEV1=ILEV1) IF (INUM < 0) THEN WRITE (ILUOUT0,'(A,I3,A,I2,A)') ' -> 2D field ',INUMGRIB(JI),' is missing - abort' - !callabortstop WRITE(YMSG,*) '2D field ',INUMGRIB(JI),' is missing' - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_ALL_DATA_GRIB_CASE',YMSG) + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_ALL_DATA_GRIB_CASE',YMSG) END IF CALL GRIB_GET(IGRIB(INUM),'Nj',INJ,IRET_GRIB) ALLOCATE(IINLO(INJ)) @@ -1881,7 +1836,6 @@ INTEGER :: JLOOP2_A1T2 INTEGER :: JPOS_A1T2 ! IF (KN1 < KL1*KL2) THEN - !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','ARRAY_1D_TO_2D','sizes do not match') END IF JPOS_A1T2 = 1 diff --git a/src/MNH/read_chem_data_netcdf_case.f90 b/src/MNH/read_chem_data_netcdf_case.f90 index a9dc2f9a8..6e63593d2 100644 --- a/src/MNH/read_chem_data_netcdf_case.f90 +++ b/src/MNH/read_chem_data_netcdf_case.f90 @@ -84,6 +84,7 @@ END MODULE MODI_READ_CHEM_DATA_NETCDF_CASE !! A. Berger 20/03/12 adapt whatever the chemical mechanism in BASIC !! P. Wautelet 30/10/17 use F90 module for netCDF !! J.Pianezzej 13/02/2019 : correction for use of MEGAN +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -761,15 +762,18 @@ WRITE (ILUOUT0,'(A,A4,A)') ' -- netcdf decoder for ',HFILE,' file ended successf ! CONTAINS ! -! ############################# - SUBROUTINE HANDLE_ERR(STATUS) -! ############################# - INTEGER(KIND=IDCDF_KIND) STATUS - IF (STATUS .NE. NF90_NOERR) THEN - PRINT *, NF90_STRERROR(STATUS) - STOP 'Stopped' - ENDIF - END SUBROUTINE HANDLE_ERR +! ############################# + subroutine handle_err(status) +! ############################# + use mode_msg + + integer(kind=IDCDF_KIND) status + + if ( status /= NF90_NOERR ) then + call Print_msg( NVERB_FATAL, 'IO', 'HANDLE_ERR', NF90_STRERROR(status) ) + end if + + end subroutine handle_err ! ! ! ############################################# diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90 index b43932177..38543a1c6 100644 --- a/src/MNH/read_exsegn.f90 +++ b/src/MNH/read_exsegn.f90 @@ -292,6 +292,7 @@ END MODULE MODI_READ_EXSEG_n !! Modification 01/2019 (P. Wautelet) bugs correction: incorrect writes !! Modification 01/2019 (R. Honnert) remove SURF in CMF_UPDRAFT !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !!------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -1030,7 +1031,7 @@ SELECT CASE ( CCLOUD ) WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE A 2-MOMENT MICROPHYSICAL ", & &" SCHEME BUT YOU DIDNT FILL CORRECTLY NAM_PARAM_LIMA", & &" YOU HAVE TO FILL FINI_CCN ")') - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'READ_EXSEG_n', '' ) END IF ! IF(LACTI .AND. NMOD_CCN == 0) THEN @@ -1038,7 +1039,7 @@ SELECT CASE ( CCLOUD ) WRITE(UNIT=ILUOUT,FMT='("ACTIVATION OF AEROSOL PARTICLES IS NOT ", & &"POSSIBLE IF NMOD_CCN HAS VALUE ZERO. YOU HAVE TO SET AN UPPER ", & &"VALUE OF NMOD_CCN IN ORDER TO USE LIMA WARM ACTIVATION SCHEME.")') - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'READ_EXSEG_n', '' ) END IF ! IF(LNUCL .AND. NMOD_IFN == 0 .AND. (.NOT.LMEYERS)) THEN diff --git a/src/MNH/read_surf_mnh.f90 b/src/MNH/read_surf_mnh.f90 index 09c51cee2..862e27e31 100644 --- a/src/MNH/read_surf_mnh.f90 +++ b/src/MNH/read_surf_mnh.f90 @@ -5,9 +5,12 @@ !----------------------------------------------------------------- ! Modifications: !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !----------------------------------------------------------------- MODULE MODE_READ_SURF_MNH_TOOLS +use mode_msg + IMPLICIT NONE CONTAINS @@ -15,7 +18,6 @@ CONTAINS SUBROUTINE PREPARE_METADATA_READ_SURF(HREC,HDIR,KGRID,KTYPE,KDIMS,HSUBR,TPFIELD) ! USE MODE_FIELD, ONLY: FIND_FIELD_ID_FROM_MNHNAME, TFIELDDATA, TFIELDLIST, TYPECHAR, TYPEDATE, TYPELOG -USE MODE_MSG ! CHARACTER(LEN=LEN_HREC),INTENT(IN) :: HREC ! name of the article to write CHARACTER(LEN=2), INTENT(IN) :: HDIR ! Expected type of the data field (XX,XY,--...) @@ -898,8 +900,8 @@ END SUBROUTINE READ_SURFX2COV_MNH ! ------------ ! USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL -USE MODE_ll USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_ll USE MODE_MSG ! USE MODD_CST, ONLY: XPI @@ -1019,11 +1021,7 @@ IF (.NOT. GCOVER_PACKED) THEN TZFIELD%LTIMEDEP = .FALSE. CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK2D,KRESP) ELSE - WRITE(ILUOUT,*) 'WARNING' - WRITE(ILUOUT,*) '-------' - WRITE(ILUOUT,*) 'error : GCOVER_PACKED = ', GCOVER_PACKED, ' and we try to read the covers one by one ' - WRITE(ILUOUT,*) ' ' - CALL ABORT + call Print_msg( NVERB_FATAL, 'IO', 'READ_SURFX2COV_1COV_MNH', 'GCOVER_PACKED=TRUE and we try to read the covers one by one' ) END IF ! IF (KRESP /=0) THEN diff --git a/src/MNH/retrieve1_nest_infon.f90 b/src/MNH/retrieve1_nest_infon.f90 index a49173180..8edcfee38 100644 --- a/src/MNH/retrieve1_nest_infon.f90 +++ b/src/MNH/retrieve1_nest_infon.f90 @@ -82,6 +82,7 @@ END MODULE MODI_RETRIEVE1_NEST_INFO_n !! Original 26/09/96 !! Modification 30/07/97 (Masson) group MODI_RETRIEVE2_NEST_INFOn !! Modification 04/05/00 (Jabouille) test on CPROGRAM to fill working modules +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -92,6 +93,8 @@ USE MODD_DIM_n USE MODD_PGDGRID USE MODD_PGDDIM USE MODD_CONF +! +use mode_msg USE MODE_MODELN_HANDLER ! USE MODI_RETRIEVE2_NEST_INFO_n @@ -117,11 +120,7 @@ INTEGER :: IMI !------------------------------------------------------------------------------- ! ! -IF (KMI<=KDAD) THEN - !callabortstop - CALL ABORT - STOP -ENDIF +IF ( KMI <= KDAD ) call Print_msg( NVERB_FATAL, 'GEN', 'RETRIEVE1_NEST_INFO_n', 'KMI<=KDAD' ) ! IMI = GET_CURRENT_MODEL_INDEX() CALL GOTO_MODEL(KDAD) diff --git a/src/MNH/shallow_mf.f90 b/src/MNH/shallow_mf.f90 index 2212bbb89..52a1a7aef 100644 --- a/src/MNH/shallow_mf.f90 +++ b/src/MNH/shallow_mf.f90 @@ -1,7 +1,8 @@ !MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl MODULE MODI_SHALLOW_MF ! ###################### @@ -167,6 +168,7 @@ END MODULE MODI_SHALLOW_MF !! Philippe Wautelet 28/05/2018: corrected truncated integer division (2/3 -> 2./3.) !! Q.Rodier 01/2019 : support RM17 mixing length !! R.Honnert 1/2019 : remove SURF +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -393,9 +395,7 @@ ELSEIF (HMF_UPDRAFT == 'HRIO') THEN PEMF,PDETR, & PENTR,ZBUO_INTEG,KKLCL,KKETL,KKCTL,ZDEPTH ) ELSE - WRITE(*,*) ' STOP' - WRITE(*,*) ' NO UPDRAFT MODEL FOR EDKF : CMF_UPDRAFT =',HMF_UPDRAFT - CALL PRINT_MSG(NVERB_FATAL,'GEN','SHALLOW_MF','') + call Print_msg( NVERB_FATAL, 'GEN', 'SHALLOW_MF', 'no updraft model for EDKF: CMF_UPDRAFT='//trim(HMF_UPDRAFT) ) ENDIF !!! 5. Compute diagnostic convective cloud fraction and content @@ -450,10 +450,8 @@ ENDIF PFLXZTHMF,PFLXZTHVMF,PFLXZRMF,PFLXZUMF,PFLXZVMF, & ZFLXZSVMF ) ELSE - WRITE(*,*) ' STOP' - WRITE(*,*) ' NO UPDRAFT MODEL FOR EDKF : CMF_UPDRAFT =',HMF_UPDRAFT - CALL PRINT_MSG(NVERB_FATAL,'GEN','SHALLOW_MF','') - ENDIF + call Print_msg( NVERB_FATAL, 'GEN', 'SHALLOW_MF', 'no updraft model for EDKF: CMF_UPDRAFT='//trim(HMF_UPDRAFT) ) + END IF IF (HMF_UPDRAFT == 'BOUT') THEN !! calcul de la hauteur de la couche limite ou de L_up diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90 index 24e5b49b4..fad7820f6 100644 --- a/src/MNH/spawn_model2.f90 +++ b/src/MNH/spawn_model2.f90 @@ -194,6 +194,7 @@ END MODULE MODI_SPAWN_MODEL2 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -652,16 +653,12 @@ ELSE NRIMY=0 END IF IF (NRIMX >= IIU/2-1) THEN ! Error ! this case is not supported - it should be, but there is a bug - WRITE(*,*) "Error : The size of the LBX zone is too big for the size of the subdomains" - WRITE(*,*) "Try with less cores, a smaller LBX size, or a bigger grid in X " - CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'SPAWN_MODEL2', 'The size of the LBX zone is too big for the size of the subdomains. '// & + 'Try with less processes, a smaller LBX size or a bigger grid in X.' ) ENDIF IF ( ( .NOT. L2D ) .AND. (NRIMY >= IJU/2-1) ) THEN ! Error ! this case is not supported - it should be, but there is a bug - WRITE(*,*) "Error : The size of the LBY zone is too big for the size of the subdomains" - WRITE(*,*) "Try with less cores, a smaller LBY size, or a bigger grid in Y " - CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'SPAWN_MODEL2', 'The size of the LBY zone is too big for the size of the subdomains. '// & + 'Try with less processes, a smaller LBY size or a bigger grid in Y.' ) ENDIF ! LHORELAX_UVWTH=.TRUE. diff --git a/src/MNH/spawning.f90 b/src/MNH/spawning.f90 index 16867d7f2..2480473be 100644 --- a/src/MNH/spawning.f90 +++ b/src/MNH/spawning.f90 @@ -254,10 +254,8 @@ IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() CALL IO_File_close(TLUOUT) ! CALL END_PARA_ll(IINFO_ll) -!JUAN CALL ABORT -STOP -CONTAINS +CONTAINS SUBROUTINE INIT_NMLVAR LRES=LRES_n diff --git a/src/MNH/spec_ver_int.f90 b/src/MNH/spec_ver_int.f90 index abd3ed1e0..752f233df 100644 --- a/src/MNH/spec_ver_int.f90 +++ b/src/MNH/spec_ver_int.f90 @@ -1,6 +1,6 @@ !MNH_LIC Copyright 2000-2018 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################# @@ -50,6 +50,7 @@ END MODULE MODI_SPEC_VER_INT !! ------------- !! Original 07/02/00 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !! !! -------------------------------------------------------------------------- ! @@ -59,8 +60,10 @@ END MODULE MODI_SPEC_VER_INT USE MODD_LES USE MODD_PARAMETERS ! -USE MODE_ll USE MODE_GATHER_ll +USE MODE_ll +use mode_msg +! USE MODI_VER_INTERP_LIN ! IMPLICIT NONE @@ -102,16 +105,13 @@ ELSE IF (CSPECTRA_LEVEL_TYPE=='Z') THEN PA_SPEC = XUNDEF END WHERE ELSE - PRINT*, '-------> STOP in SPEC_VER_INT <----------' - !callabortstop -CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'SPEC_VER_INT', 'invalid CSPECTRA_LEVEL_TYPE ('//CSPECTRA_LEVEL_TYPE//')' ) END IF ! !------------------------------------------------------------------------------- ! -! ONE PROCESSOR ONLY -! ------------------ +! ONE PROCESS ONLY +! ---------------- ! CALL GET_GLOBALDIMS_ll(IIMAX_ll,IJMAX_ll) ALLOCATE(ZA_ll(IIMAX_ll+2*JPHEXT,IJMAX_ll+2*JPHEXT,NSPECTRA_K)) diff --git a/src/MNH/test_nam_var.f90 b/src/MNH/test_nam_var.f90 index d26aca6f0..476cf1a4d 100644 --- a/src/MNH/test_nam_var.f90 +++ b/src/MNH/test_nam_var.f90 @@ -80,11 +80,14 @@ END MODULE MODI_TEST_NAM_VAR !! original 17/04/98 !! 10/2016 (C.Lac) Increase of the number of values !! P.Wautelet 22/01/2019: use standard FLUSH statement instead of non standard intrinsics +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !---------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! +use mode_msg +! IMPLICIT NONE ! !* 0.1 Declarations of arguments @@ -183,8 +186,6 @@ IF ( PRESENT (HVALUE11) ) WRITE (KLUOUT,*) '"',HVALUE11,'"' IF ( PRESENT (HVALUE12) ) WRITE (KLUOUT,*) '"',HVALUE12,'"' FLUSH(unit=KLUOUT) ! - !callabortstop -CALL ABORT -STOP +call Print_msg( NVERB_FATAL, 'GEN', 'TEST_NAM_VARC0', trim(HVAR)//' is not allowed for variable '//trim(HNAME) ) !------------------------------------------------------------------------------- END SUBROUTINE TEST_NAM_VARC0 diff --git a/src/MNH/update_nsv.f90 b/src/MNH/update_nsv.f90 index 0677a414a..3d691aa48 100644 --- a/src/MNH/update_nsv.f90 +++ b/src/MNH/update_nsv.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl MODULE MODI_UPDATE_NSV ! ###################### @@ -24,17 +25,20 @@ END MODULE MODI_UPDATE_NSV !! Modify (Escobar ) 2/2014 : add Forefire var !! Modify (Vie) 2016 : add LIMA !! V. Vionnet 7/2017 : add blowing snow var +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +! USE MODD_CONF, ONLY : NVERB USE MODD_NSV + +use mode_msg + IMPLICIT NONE + INTEGER, INTENT(IN) :: KMI ! Model index ! ! STOP if INI_NSV has not be called yet IF (.NOT. LINI_NSV) THEN - PRINT *, 'UPDATE_NSV FATAL Error : can t continue because INI_NSV was not called.' -!callabortstop - CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'UPDATE_NSV', 'can not continue because INI_NSV was not called' ) END IF ! ! Update the NSV_* variables from original NSV_*_A arrays diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90 index a58b90932..75c4c6d8f 100644 --- a/src/MNH/write_lfin.f90 +++ b/src/MNH/write_lfin.f90 @@ -169,8 +169,9 @@ END MODULE MODI_WRITE_LFIFM_n !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! V. Vionnet 07/2017, add blowing snow variables !! P.Wautelet 11/01/2019: bug correction in write XBL_DEPTH->XSBL_DEPTH -!! C.Lac 18/02/2019: add rain fraction as an output field +!! C.Lac 18/02/2019: add rain fraction as an output field !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -1159,12 +1160,9 @@ IF (NSV >=1) THEN IMOMENTS = INT(NSV_DSTEND - NSV_DSTBEG+1)/NMODE_DST !Should equal 3 at this point IF (IMOMENTS > 3) THEN - WRITE(ILUOUT,*) 'Error in write_lfin: number of moments must equal or inferior to 3' + WRITE(ILUOUT,*) 'Error in write_lfin: number of moments must be less or equal to 3' WRITE(ILUOUT,*) NSV_DSTBEG, NSV_DSTEND,NMODE_DST,IMOMENTS - !callabortstop - CALL IO_File_close(TLUOUT) - CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'WRITE_LFIFM_n', 'number of moments must be less or equal to 3' ) END IF ! Test IMOMENTS ALLOCATE(YDSTNAMES(NSV_DSTEND - NSV_DSTBEG+1)) ! @@ -1265,12 +1263,9 @@ IF (NSV >=1) THEN IMOMENTS = INT(NSV_SLTEND - NSV_SLTBEG+1)/NMODE_SLT !Should equal 3 at this point IF (IMOMENTS .NE. 3) THEN - WRITE(ILUOUT,*) 'Error in write_lfin: number of moments must be 3' + WRITE(ILUOUT,*) 'Error in write_lfin: number of moments must be equal to 3' WRITE(ILUOUT,*) NSV_SLTBEG, NSV_SLTEND,NMODE_SLT,IMOMENTS - !callabortstop - CALL IO_File_close(TLUOUT) - CALL ABORT - STOP + call Print_msg( NVERB_FATAL, 'GEN', 'WRITE_LFIFM_n', 'number of moments must be equal to 3' ) END IF ALLOCATE(YSLTNAMES(NSV_SLTEND - NSV_SLTBEG+1)) TZFIELD%CSTDNAME = '' diff --git a/src/MNH/zdiffusetup.f90 b/src/MNH/zdiffusetup.f90 index 29dafe660..40f2b1c79 100644 --- a/src/MNH/zdiffusetup.f90 +++ b/src/MNH/zdiffusetup.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 newsrc 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! #################### MODULE MODI_ZDIFFUSETUP ! #################### @@ -54,8 +49,10 @@ END MODULE MODI_ZDIFFUSETUP !! ------ !! !! G. Zängl * University of Munich* -!! J.Escobar 7/10/2015 : remove print -!! +! +! Modifications: +! J. Escobar 07/10/2015: remove print +! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! !* 0. DECLARATIONS ! ------------ @@ -278,6 +275,8 @@ CONTAINS SUBROUTINE INDINT_HALO2(KII,KIJ,PZMASS,PKIND,KKMIN,KIB,KJB) +use mode_msg + IMPLICIT NONE INTEGER, INTENT(IN) :: KII,KIJ ! Relative position of remote points @@ -322,9 +321,7 @@ ELSE IF ((KIJ.EQ.0).AND.(KII.NE.0)) THEN ELSE - !callabortstop -CALL ABORT - STOP 'Error in zdiffusetup' + call Print_msg( NVERB_FATAL, 'GEN', 'INDINT_HALO2', 'KII=0 and KIJ=0' ) ENDIF DO JI = II1,II2 @@ -372,21 +369,15 @@ DO JI = II1,II2 ENDDO ENDDO ENDDO -IF (MINVAL(KKMIN) .EQ. 0 ) THEN -print *," zdiffusetup::PROBLEME MINVAL(KKMIN) .EQ. 0 " -call abort() -STOP -ELSE -!print *," zdiffusetup:: OK " + +IF ( MINVAL(KKMIN) == 0 ) THEN + call Print_msg( NVERB_FATAL, 'GEN', 'INDINT_HALO2', 'MINVAL(KKMIN)=0' ) ENDIF -IF (MINVAL(INT(PKIND)) .EQ. 0 ) THEN -print *," zdiffusetup::PROBLEME MINVAL(INT(PKIND)) .EQ. 0 " -!PKIND = MAX (1.00001,PKIND) -call abort() -STOP -ELSE -!print *," zdiffusetup:: OK " + +IF ( MINVAL(INT(PKIND)) == 0 ) THEN + call Print_msg( NVERB_FATAL, 'GEN', 'INDINT_HALO2', 'MINVAL(INT(PKIND))=0' ) ENDIF + END SUBROUTINE INDINT_HALO2 END SUBROUTINE ZDIFFUSETUP -- GitLab From 720f6d76527c9a67f4f3b466d0e9fa1a4a1763d7 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 11 Apr 2019 09:29:52 +0200 Subject: [PATCH 134/139] Philippe 11/04/2019: bugfix: nullify TZTRACFILE when appropriate --- src/MNH/compute_r00.f90 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/MNH/compute_r00.f90 b/src/MNH/compute_r00.f90 index 81249e665..11d21a89f 100644 --- a/src/MNH/compute_r00.f90 +++ b/src/MNH/compute_r00.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################### @@ -56,6 +56,7 @@ END MODULE MODI_COMPUTE_R00 !! change of YCOMMENT !! Mai 2016 (G.Delautier) replace LG?M by LG?T !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 11/04/2019: bugfix: nullify TZTRACFILE when appropriate !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -123,6 +124,7 @@ TYPE(TFILEDATA),POINTER :: TZTRACFILE !* 1.0 INITIALIZATION ! -------------- ! +TZTRACFILE => NULL() ZSPVAL=-1.E+11 IKU=SIZE(XZHAT) ! @@ -238,6 +240,7 @@ END IF ! is performed DO JFILECUR=1,NFILES ! + TZTRACFILE => NULL() CALL IO_FILE_ADD2LIST(TZTRACFILE,CFILES(NBRFILES(JFILECUR)),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB) CALL IO_FILE_OPEN_ll(TZTRACFILE) ! -- GitLab From 4bb00b40e080eb9e8a802ce0204f5b5b9a41602c Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 12 Apr 2019 14:28:10 +0200 Subject: [PATCH 135/139] Philippe 12/04/2019: replace ABORT and STOP calls by Print_msg --- src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 | 9 ++++----- src/MNH/compute_updraft_hrio.f90 | 15 ++++++++++----- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 b/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 index 67ec731d0..8794b9e36 100644 --- a/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 @@ -339,11 +339,10 @@ END IF IF ( ( (1+TPROC(IP)%NXEND-TPROC(IP)%NXOR) == 0 ) & .OR. ( (1+TPROC(IP)%NYEND-TPROC(IP)%NYOR) == 0 ) ) THEN - PRINT*, "/!\ SPLITZ: some proc have 0 size local domaine , to much processors used for domaine size ", & - " IP=" ,IP , & - " DIMX=",1+TPROC(IP)%NXEND-TPROC(IP)%NXOR, & - " DIMY=",1+TPROC(IP)%NYEND-TPROC(IP)%NYOR - CALL ABORT() + write( yval1, '( I10 )' ) 1+TPROC(IP)%NXEND-TPROC(IP)%NXOR + write( yval2, '( I10 )' ) 1+TPROC(IP)%NYEND-TPROC(IP)%NYOR + call Print_msg( NVERB_FATAL, 'GEN', 'SPLITZ', 'zero-size local-domain dimensions: DIMX='// & + trim(yval1)//', DIMY='//trim(yval2)//'. Too many processes for this domain size.') END IF ! !* 3. shift from physical to extended domain diff --git a/src/MNH/compute_updraft_hrio.f90 b/src/MNH/compute_updraft_hrio.f90 index 6ec162b20..808633346 100644 --- a/src/MNH/compute_updraft_hrio.f90 +++ b/src/MNH/compute_updraft_hrio.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl MODULE MODI_COMPUTE_UPDRAFT_HRIO ! ########################### @@ -135,6 +136,7 @@ END MODULE MODI_COMPUTE_UPDRAFT_HRIO! ######spl !! S. Riette Jan 2012: support for both order of vertical levels !! V.Masson, C.Lac : 02/2011 : SV_UP initialized by a non-zero value !! Q.Rodier 01/2019 : support RM17 mixing length +! P. Wautelet 12/04/2019: replace ABORT and STOP calls by Print_msg !! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -150,6 +152,8 @@ USE MODD_GRID_n, ONLY : XDXHAT, XDYHAT USE MODD_BLANK USE MODD_TURB_n, ONLY :CTURBLEN +use mode_msg + !USE MODI_COMPUTE_ENTR_DETR USE MODI_TH_R_FROM_THL_RT_1D USE MODI_SHUMAN_MF @@ -394,7 +398,7 @@ PSV_DO(:,:,:)=0. PTHL_UP(:,KKB)= ZTHLM_F(:,KKB)+MAX(0.,MIN(ZTMAX,(PSFTH(:)/SQRT(ZTKEM_F(:,KKB)))*XALP_PERT)) PRT_UP(:,KKB) = ZRTM_F(:,KKB)+MAX(0.,MIN(ZRMAX,(PSFRV(:)/SQRT(ZTKEM_F(:,KKB)))*XALP_PERT)) !------------------------ -print*,OENTR_DETR +! print*,OENTR_DETR !------------------------ IF (OENTR_DETR) THEN ZTHM_F (:,:) = MZM_MF(KKA,KKU,KKL,PTHM (:,:)) @@ -767,7 +771,8 @@ DO JK=KKB,KKE-KKL,KKL ! on cherche à savoir s'il y a des vitesses verticales non définies ! je n'utilise que ZW_UP2 pour pouvoir avoir une valeur si ZW_UP ! n'est pas défini -IF (maxval(ZW_UP2(:,JK+KKL)) .NE. maxval(ZW_UP2(:,JK+KKL))) STOP 'probleme ici' +IF (maxval(ZW_UP2(:,JK+KKL)) .NE. maxval(ZW_UP2(:,JK+KKL))) & + call Print_msg( NVERB_FATAL, 'GEN', 'COMPUTE_UPDRAFT_HRIO', 'maxval(ZW_UP2(:,JK+KKL)) /= maxval(ZW_UP2(:,JK+KKL))' ) ! si on est dans la zone grise la définition du flux de masse change ! donc celle de alpha aussi WHERE(GTEST) @@ -858,6 +863,6 @@ ENDDO ! boucle JK GWORK1(:)= (GTESTLCL(:) .AND. (PDEPTH(:) > ZDEPTH_MAX1) ) GWORK2(:,:) = SPREAD( GWORK1(:), DIM=2, NCOPIES=MAX(KKU,KKA) ) ZCOEF(:,:) = SPREAD( (1.-(PDEPTH(:)-ZDEPTH_MAX1)/(ZDEPTH_MAX2-ZDEPTH_MAX1)), DIM=2, NCOPIES=SIZE(ZCOEF,2)) -print*,"je sors de compute_updraft" +! print*,"je sors de compute_updraft" END SUBROUTINE COMPUTE_UPDRAFT_HRIO -- GitLab From e6d069aba1bb3e3ca7fa4182c7aedd1e48362d48 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 12 Apr 2019 14:33:48 +0200 Subject: [PATCH 136/139] Philippe 12/04/2019: added pointers for C1D, L1D, N1D, X5D and X6D structures in TFIELDDATA --- src/LIB/SURCOUCHE/src/mode_field.f90 | 26 ++ src/LIB/SURCOUCHE/src/mode_io_field_write.f90 | 236 +++++++++--------- 2 files changed, 145 insertions(+), 117 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90 index 4dff86bd3..e025ae839 100644 --- a/src/LIB/SURCOUCHE/src/mode_field.f90 +++ b/src/LIB/SURCOUCHE/src/mode_field.f90 @@ -11,6 +11,7 @@ ! C. Lac 02/2019: add rain fraction as an output field ! S. Bielli 02/2019: sea salt: significant sea wave height influences salt emission; 5 salt modes ! P. Wautelet 06/03/2019: correct ZWS entry +! P. Wautelet 12/04/2019: added pointers for C1D, L1D, N1D, X5D and X6D structures in TFIELDDATA !----------------------------------------------------------------- MODULE MODE_FIELD ! @@ -33,14 +34,26 @@ TYPE TFIELDPTR_C0D CHARACTER(LEN=:), POINTER :: DATA => NULL() END TYPE TFIELDPTR_C0D ! +TYPE TFIELDPTR_C1D + CHARACTER(LEN=:),DIMENSION(:),POINTER :: DATA => NULL() +END TYPE TFIELDPTR_C1D +! TYPE TFIELDPTR_L0D LOGICAL, POINTER :: DATA => NULL() END TYPE TFIELDPTR_L0D ! +TYPE TFIELDPTR_L1D + LOGICAL,DIMENSION(:), POINTER :: DATA => NULL() +END TYPE TFIELDPTR_L1D +! TYPE TFIELDPTR_N0D INTEGER, POINTER :: DATA => NULL() END TYPE TFIELDPTR_N0D ! +TYPE TFIELDPTR_N1D + INTEGER,DIMENSION(:), POINTER :: DATA => NULL() +END TYPE TFIELDPTR_N1D +! TYPE TFIELDPTR_N2D INTEGER,DIMENSION(:,:), POINTER :: DATA => NULL() END TYPE TFIELDPTR_N2D @@ -69,6 +82,14 @@ TYPE TFIELDPTR_X4D REAL,DIMENSION(:,:,:,:),POINTER :: DATA => NULL() END TYPE TFIELDPTR_X4D ! +TYPE TFIELDPTR_X5D + REAL,DIMENSION(:,:,:,:,:),POINTER :: DATA => NULL() +END TYPE TFIELDPTR_X5D +! +TYPE TFIELDPTR_X6D + REAL,DIMENSION(:,:,:,:,:,:),POINTER :: DATA => NULL() +END TYPE TFIELDPTR_X6D +! TYPE TFIELDPTR_T0D TYPE(DATE_TIME), POINTER :: DATA => NULL() END TYPE TFIELDPTR_T0D @@ -103,10 +124,13 @@ TYPE TFIELDDATA REAL :: XVALIDMAX = 1.E36 !Maximum valid value for real fields ! TYPE(TFIELDPTR_C0D),DIMENSION(:),ALLOCATABLE :: TFIELD_C0D !Pointer to the character string fields (one per nested mesh) + TYPE(TFIELDPTR_C1D),DIMENSION(:),ALLOCATABLE :: TFIELD_C1D !Pointer to the character string 1D fields (one per nested mesh) ! TYPE(TFIELDPTR_L0D),DIMENSION(:),ALLOCATABLE :: TFIELD_L0D !Pointer to the scalar logical fields (one per nested mesh) + TYPE(TFIELDPTR_L1D),DIMENSION(:),ALLOCATABLE :: TFIELD_L1D !Pointer to the logical 1D fields (one per nested mesh) ! TYPE(TFIELDPTR_N0D),DIMENSION(:),ALLOCATABLE :: TFIELD_N0D !Pointer to the scalar integer fields (one per nested mesh) + TYPE(TFIELDPTR_N1D),DIMENSION(:),ALLOCATABLE :: TFIELD_N1D !Pointer to the integer 1D fields (one per nested mesh) TYPE(TFIELDPTR_N2D),DIMENSION(:),ALLOCATABLE :: TFIELD_N2D !Pointer to the integer 2D fields (one per nested mesh) TYPE(TFIELDPTR_N3D),DIMENSION(:),ALLOCATABLE :: TFIELD_N3D !Pointer to the integer 3D fields (one per nested mesh) ! @@ -115,6 +139,8 @@ TYPE TFIELDDATA TYPE(TFIELDPTR_X2D),DIMENSION(:),ALLOCATABLE :: TFIELD_X2D !Pointer to the real 2D fields (one per nested mesh) TYPE(TFIELDPTR_X3D),DIMENSION(:),ALLOCATABLE :: TFIELD_X3D !Pointer to the real 3D fields (one per nested mesh) TYPE(TFIELDPTR_X4D),DIMENSION(:),ALLOCATABLE :: TFIELD_X4D !Pointer to the real 4D fields (one per nested mesh) + TYPE(TFIELDPTR_X5D),DIMENSION(:),ALLOCATABLE :: TFIELD_X5D !Pointer to the real 5D fields (one per nested mesh) + TYPE(TFIELDPTR_X6D),DIMENSION(:),ALLOCATABLE :: TFIELD_X6D !Pointer to the real 6D fields (one per nested mesh) ! TYPE(TFIELDPTR_T0D),DIMENSION(:),ALLOCATABLE :: TFIELD_T0D !Pointer to the scalar date/time fields (one per nested mesh) END TYPE TFIELDDATA diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 index 445041165..c865a5806 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 @@ -10,6 +10,7 @@ ! P. Wautelet 10/01/2019: write header also for Z-split files ! P. Wautelet 05/03/2019: rename IO subroutines and modules ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +! P. Wautelet 12/04/2019: added pointers for C1D, L1D, N1D, X5D and X6D structures in TFIELDDATA !----------------------------------------------------------------- #define MNH_SCALARS_IN_SPLITFILES 0 @@ -2739,60 +2740,60 @@ DO JI = 1,SIZE(TPOUTPUT%NFIELDLIST) call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & ': CLBTYPE/=NONE not allowed for 1D real fields' ) END IF -! ! -! !1D integer -! ! -! CASE (TYPEINT) -! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N1D) ) THEN -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': TFIELD_N1D is NOT allocated ' ) -! END IF -! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N1D(IMI)%DATA) ) THEN -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': TFIELD_N1D%DATA is NOT associated' ) -! END IF -! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN -! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N1D(IMI)%DATA) -! ELSE -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': CLBTYPE/=NONE not allowed for 1D integer fields' ) -! END IF -! ! -! !1D logical -! ! -! CASE (TYPELOG) -! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_L1D) ) THEN -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': TFIELD_L1D is NOT allocated ' ) -! END IF -! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_L1D(IMI)%DATA) ) THEN -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': TFIELD_L1D%DATA is NOT associated' ) -! END IF -! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN -! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_L1D(IMI)%DATA) -! ELSE -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': CLBTYPE/=NONE not allowed for 1D logical fields' ) -! END IF -! ! -! !1D string -! ! -! CASE (TYPECHAR) -! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_C1D) ) THEN -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': TFIELD_C1D is NOT allocated ' ) -! END IF -! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_C1D(IMI)%DATA) ) THEN -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': TFIELD_C1D%DATA is NOT associated' ) -! END IF -! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN -! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_C1D(IMI)%DATA) -! ELSE -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': CLBTYPE/=NONE not allowed for 1D character fields' ) -! END IF + ! + !1D integer + ! + CASE (TYPEINT) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N1D) ) THEN + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_N1D is NOT allocated ' ) + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N1D(IMI)%DATA) ) THEN + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_N1D%DATA is NOT associated' ) + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N1D(IMI)%DATA) + ELSE + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': CLBTYPE/=NONE not allowed for 1D integer fields' ) + END IF + ! + !1D logical + ! + CASE (TYPELOG) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_L1D) ) THEN + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_L1D is NOT allocated ' ) + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_L1D(IMI)%DATA) ) THEN + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_L1D%DATA is NOT associated' ) + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_L1D(IMI)%DATA) + ELSE + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': CLBTYPE/=NONE not allowed for 1D logical fields' ) + END IF + ! + !1D string + ! + CASE (TYPECHAR) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_C1D) ) THEN + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_C1D is NOT allocated ' ) + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_C1D(IMI)%DATA) ) THEN + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_C1D%DATA is NOT associated' ) + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_C1D(IMI)%DATA) + ELSE + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': CLBTYPE/=NONE not allowed for 1D character fields' ) + END IF ! !1D other types ! @@ -2932,69 +2933,70 @@ DO JI = 1,SIZE(TPOUTPUT%NFIELDLIST) call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & ': type not yet supported for 4D output' ) END SELECT NTYPE4D -! ! -! !5D output -! ! -! CASE (5) -! NTYPE5D: SELECT CASE (TFIELDLIST(IDX)%NTYPE) -! ! -! !5D real -! ! -! CASE (TYPEREAL) -! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X5D) ) THEN -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': TFIELD_X5D is NOT allocated ' ) -! END IF -! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) ) THEN -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': TFIELD_X5D%DATA is NOT associated' ) -! END IF -! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN -! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) -! ELSE -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': CLBTYPE/=NONE not (yet) allowed for 5D real fields' ) -! !PW: TODO?: add missing field in TFIELDLIST? -! !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) -! END IF -! ! -! !5D other types -! ! -! CASE DEFAULT -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': type not yet supported for 5D output' ) -! END SELECT NTYPE5D -! ! -! !6D output -! ! -! CASE (6) -! NTYPE6D: SELECT CASE (TFIELDLIST(IDX)%NTYPE) -! ! -! !6D real -! ! -! CASE (TYPEREAL) -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': TFIELD_X6D is NOT allocated ' ) -! END IF -! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) ) THEN -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': TFIELD_X6D%DATA is NOT associated' ) -! END IF -! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN -! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) -! ELSE -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': CLBTYPE/=NONE not (yet) allowed for 6D real fields' ) -! !PW: TODO?: add missing field in TFIELDLIST? -! !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) -! END IF -! ! -! !6D other types -! ! -! CASE DEFAULT -! call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & -! ': type not yet supported for 6D output' ) -! END SELECT NTYPE6D + ! + !5D output + ! + CASE (5) + NTYPE5D: SELECT CASE (TFIELDLIST(IDX)%NTYPE) + ! + !5D real + ! + CASE (TYPEREAL) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X5D) ) THEN + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_X5D is NOT allocated ' ) + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) ) THEN + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_X5D%DATA is NOT associated' ) + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) + ELSE + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': CLBTYPE/=NONE not (yet) allowed for 5D real fields' ) + !PW: TODO?: add missing field in TFIELDLIST? + !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) + END IF + ! + !5D other types + ! + CASE DEFAULT + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': type not yet supported for 5D output' ) + END SELECT NTYPE5D + ! + !6D output + ! + CASE (6) + NTYPE6D: SELECT CASE (TFIELDLIST(IDX)%NTYPE) + ! + !6D real + ! + CASE (TYPEREAL) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X6D) ) THEN + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_X6D is NOT allocated ' ) + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) ) THEN + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': TFIELD_X6D%DATA is NOT associated' ) + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) + ELSE + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': CLBTYPE/=NONE not (yet) allowed for 6D real fields' ) + !PW: TODO?: add missing field in TFIELDLIST? + !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) + END IF + ! + !6D other types + ! + CASE DEFAULT + call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_write', trim(tfieldlist(idx)%cmnhname)// & + ': type not yet supported for 6D output' ) + END SELECT NTYPE6D ! !Other number of dimensions ! -- GitLab From fb7b79909d6974c6797aec1f3fac0ec58e1e171a Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 12 Apr 2019 14:35:10 +0200 Subject: [PATCH 137/139] Philippe 12/04/2019: use MNHTIME for time measurement variables --- src/LIB/SURCOUCHE/src/mode_io_field_read.f90 | 15 ++++----- src/LIB/SURCOUCHE/src/mode_io_field_write.f90 | 31 ++++++++++--------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 index 879ac1ab6..5f97e45f6 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 @@ -12,13 +12,14 @@ ! P. Wautelet 29/01/2019: small bug correction in time measurement in IO_Field_read_byfield_X2 ! P. Wautelet 05/03/2019: rename IO subroutines and modules ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +! P. Wautelet 12/04/2019: use MNHTIME for time measurement variables !----------------------------------------------------------------- MODULE MODE_IO_FIELD_READ ! USE MODD_IO, ONLY : NVERB_FATAL,NVERB_ERROR,NVERB_WARNING,NVERB_INFO,NVERB_DEBUG,TFILEDATA USE MODD_MPIF -use modd_precision, only: MNHREAL_MPI +use modd_precision, only: MNHREAL_MPI, MNHTIME ! USE MODE_FIELD USE MODE_IO_READ_LFI @@ -347,8 +348,8 @@ REAL,DIMENSION(:,:),POINTER :: ZFIELDP LOGICAL :: GALLOC INTEGER :: IRESP INTEGER :: IHEXTOT -REAL(KIND=8),DIMENSION(2) :: T0,T1,T2 -REAL(KIND=8),DIMENSION(2) :: T11,T22 +REAL(kind=MNHTIME), DIMENSION(2) :: T0, T1, T2 +REAL(kind=MNHTIME), DIMENSION(2) :: T11, T22 #ifdef MNH_GA REAL,DIMENSION(:,:),POINTER :: ZFIELD_GA #endif @@ -522,8 +523,8 @@ LOGICAL :: GALLOC, GALLOC_ll REAL,DIMENSION(:,:),POINTER :: TX2DP REAL,DIMENSION(:,:),POINTER :: ZSLICE_ll,ZSLICE REAL,DIMENSION(:,:,:),POINTER :: ZFIELDP -REAL(KIND=8),DIMENSION(2) :: T0,T1,T2 -REAL(KIND=8),DIMENSION(2) :: T11,T22 +REAL(kind=MNHTIME), DIMENSION(2) :: T0, T1, T2 +REAL(kind=MNHTIME), DIMENSION(2) :: T11, T22 CHARACTER(LEN=2) :: YDIR CHARACTER(LEN=4) :: YK CHARACTER(LEN=NMNHNAMELGTMAX+4) :: YRECZSLICE @@ -1846,8 +1847,8 @@ INTEGER, ALLOCATABLE,DIMENSION(:,:) :: STATUSES INTEGER,ALLOCATABLE,DIMENSION(:) :: REQ_TAB REAL,DIMENSION(:,:,:),ALLOCATABLE,TARGET :: Z3D REAL,DIMENSION(:,:,:), POINTER :: TX3DP -REAL(KIND=8),DIMENSION(2) :: T0,T1,T2,T3 -REAL(KIND=8),DIMENSION(2) :: T11,T22 +REAL(kind=MNHTIME), DIMENSION(2) :: T0, T1, T2, T3 +REAL(kind=MNHTIME), DIMENSION(2) :: T11, T22 TYPE(TX_3DP),ALLOCATABLE,DIMENSION(:) :: T_TX3DP ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_lb','reading '//TRIM(TPFIELD%CMNHNAME)) diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 index c865a5806..8d44c9889 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 @@ -11,6 +11,7 @@ ! P. Wautelet 05/03/2019: rename IO subroutines and modules ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! P. Wautelet 12/04/2019: added pointers for C1D, L1D, N1D, X5D and X6D structures in TFIELDDATA +! P. Wautelet 12/04/2019: use MNHTIME for time measurement variables !----------------------------------------------------------------- #define MNH_SCALARS_IN_SPLITFILES 0 @@ -19,7 +20,7 @@ MODULE MODE_IO_FIELD_WRITE USE MODD_IO, ONLY: TFILEDATA, TOUTBAK USE MODD_MPIF - use modd_precision, only: MNHINT_MPI, MNHREAL_MPI + use modd_precision, only: MNHINT_MPI, MNHREAL_MPI, MNHTIME USE MODE_FIELD USE MODE_IO_WRITE_LFI @@ -511,14 +512,14 @@ CONTAINS LOGICAL :: GALLOC LOGICAL :: GLFI, GNC4 ! - REAL*8,DIMENSION(2) :: T0,T1,T2 - REAL*8,DIMENSION(2) :: T11,T22 + REAL(kind=MNHTIME), DIMENSION(2) :: T0, T1, T2 + REAL(kind=MNHTIME), DIMENSION(2) :: T11, T22 #ifdef MNH_GA - REAL,DIMENSION(:,:),POINTER :: ZFIELD_GA + REAL,DIMENSION(:,:),POINTER :: ZFIELD_GA #endif - INTEGER :: IHEXTOT - CHARACTER(LEN=:),ALLOCATABLE :: YMSG - CHARACTER(LEN=6) :: YRESP + INTEGER :: IHEXTOT + CHARACTER(LEN=:),ALLOCATABLE :: YMSG + CHARACTER(LEN=6) :: YRESP ! YFILEM = TPFILE%CNAME YRECFM = TPFIELD%CMNHNAME @@ -701,13 +702,13 @@ CONTAINS INTEGER,ALLOCATABLE,DIMENSION(:) :: REQ_TAB INTEGER :: NB_REQ TYPE TX_2DP - REAL,DIMENSION(:,:), POINTER :: X + REAL, DIMENSION(:,:), POINTER :: X END TYPE TX_2DP - TYPE(TX_2DP),ALLOCATABLE,DIMENSION(:) :: T_TX2DP - REAL*8,DIMENSION(2) :: T0,T1,T2 - REAL*8,DIMENSION(2) :: T11,T22 + TYPE(TX_2DP),ALLOCATABLE,DIMENSION(:) :: T_TX2DP + REAL(kind=MNHTIME), DIMENSION(2) :: T0, T1, T2 + REAL(kind=MNHTIME), DIMENSION(2) :: T11, T22 #ifdef MNH_GA - REAL,DIMENSION(:,:,:),POINTER :: ZFIELD_GA + REAL,DIMENSION(:,:,:),POINTER :: ZFIELD_GA #endif INTEGER :: IHEXTOT CHARACTER(LEN=:),ALLOCATABLE :: YMSG @@ -1629,8 +1630,8 @@ CONTAINS LOGICAL :: GALLOC LOGICAL :: GLFI, GNC4 ! - REAL*8,DIMENSION(2) :: T0,T1,T2 - REAL*8,DIMENSION(2) :: T11,T22 + REAL(kind=MNHTIME), DIMENSION(2) :: T0, T1, T2 + REAL(kind=MNHTIME), DIMENSION(2) :: T11, T22 INTEGER :: IHEXTOT CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP @@ -1776,7 +1777,7 @@ CONTAINS LOGICAL :: GALLOC LOGICAL :: GLFI, GNC4 ! - REAL*8,DIMENSION(2) :: T11,T22 + REAL(kind=MNHTIME), DIMENSION(2) :: T11, T22 INTEGER :: IHEXTOT CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP -- GitLab From 75a9dea5ced38cd8186f29c4d6e460f22ea32de2 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 12 Apr 2019 14:36:40 +0200 Subject: [PATCH 138/139] Philippe 12/04/2019: use standard measurement units --- src/MNH/ini_seriesn.f90 | 53 +++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/src/MNH/ini_seriesn.f90 b/src/MNH/ini_seriesn.f90 index a684d874d..cff938ace 100644 --- a/src/MNH/ini_seriesn.f90 +++ b/src/MNH/ini_seriesn.f90 @@ -41,6 +41,7 @@ !! Nov. 2017: J.-P. Chaboureau: fix a bug in dimension check !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +! P. Wautelet 12/04/2019: use standard measurement units !! !------------------------------------------------------------------------------- ! @@ -320,37 +321,37 @@ ISB1=0 DO JI=1,ISER ! total surface explicit precipitations IF (SIZE(XINPRR)/=0) THEN - ISB1=ISB1+1 ; CSTITLE1(ISB1)='INPRT'//YSUF(JI) ; CSUNIT1(ISB1)='MM/DAY' - ISB1=ISB1+1 ; CSTITLE1(ISB1)='ACPRT'//YSUF(JI) ; CSUNIT1(ISB1)='MM' + ISB1=ISB1+1 ; CSTITLE1(ISB1)='INPRT'//YSUF(JI) ; CSUNIT1(ISB1)='mm day-1' + ISB1=ISB1+1 ; CSTITLE1(ISB1)='ACPRT'//YSUF(JI) ; CSUNIT1(ISB1)='mm' END IF ! Mixing ratios IF (LUSERV) THEN - ISB1=ISB1+1 ; CSTITLE1(ISB1)='RVT'//YSUF(JI) ; CSUNIT1(ISB1)='KG/M2' + ISB1=ISB1+1 ; CSTITLE1(ISB1)='RVT'//YSUF(JI) ; CSUNIT1(ISB1)='kg m-2' END IF IF (LUSERC) THEN - ISB1=ISB1+1 ; CSTITLE1(ISB1)='RCT'//YSUF(JI) ; CSUNIT1(ISB1)='KG/M2' + ISB1=ISB1+1 ; CSTITLE1(ISB1)='RCT'//YSUF(JI) ; CSUNIT1(ISB1)='kg m-2' END IF IF (LUSERR) THEN - ISB1=ISB1+1 ; CSTITLE1(ISB1)='RRT'//YSUF(JI) ; CSUNIT1(ISB1)='KG/M2' + ISB1=ISB1+1 ; CSTITLE1(ISB1)='RRT'//YSUF(JI) ; CSUNIT1(ISB1)='kg m-2' ENDIF IF (LUSERI) THEN - ISB1=ISB1+1 ; CSTITLE1(ISB1)='RIT'//YSUF(JI) ; CSUNIT1(ISB1)='KG/M2' + ISB1=ISB1+1 ; CSTITLE1(ISB1)='RIT'//YSUF(JI) ; CSUNIT1(ISB1)='kg m-2' END IF IF (LUSERS) THEN - ISB1=ISB1+1 ; CSTITLE1(ISB1)='RST'//YSUF(JI) ; CSUNIT1(ISB1)='KG/M2' + ISB1=ISB1+1 ; CSTITLE1(ISB1)='RST'//YSUF(JI) ; CSUNIT1(ISB1)='kg m-2' END IF IF (LUSERG) THEN - ISB1=ISB1+1 ; CSTITLE1(ISB1)='RGT'//YSUF(JI) ; CSUNIT1(ISB1)='KG/M2' + ISB1=ISB1+1 ; CSTITLE1(ISB1)='RGT'//YSUF(JI) ; CSUNIT1(ISB1)='kg m-2' END IF IF (LUSERH) THEN - ISB1=ISB1+1 ; CSTITLE1(ISB1)='RHT'//YSUF(JI) ; CSUNIT1(ISB1)='KG/M2' + ISB1=ISB1+1 ; CSTITLE1(ISB1)='RHT'//YSUF(JI) ; CSUNIT1(ISB1)='kg m-2' END IF ! SURFACE FIELDS IF (LSURF) THEN ISB1=ISB1+1 ; CSTITLE1(ISB1)='TS_WATER'//YSUF(JI) ; CSUNIT1(ISB1)='K' ISB1=ISB1+1 ; CSTITLE1(ISB1)='T_MNW_WATER'//YSUF(JI) ; CSUNIT1(ISB1)='K' ISB1=ISB1+1 ; CSTITLE1(ISB1)='T_BOT_WATER'//YSUF(JI) ; CSUNIT1(ISB1)='K' - ISB1=ISB1+1 ; CSTITLE1(ISB1)='CT_WATER'//YSUF(JI) ; CSUNIT1(ISB1)='-' + ISB1=ISB1+1 ; CSTITLE1(ISB1)='CT_WATER'//YSUF(JI) ; CSUNIT1(ISB1)='1' ISB1=ISB1+1 ; CSTITLE1(ISB1)='HML_WATER'//YSUF(JI) ; CSUNIT1(ISB1)='m' ENDIF ! end SURFACE FIELDS @@ -359,9 +360,9 @@ END DO IF (LWMINMAX) THEN DO JI=1,ISER ! Max of vertical speed - ISB1=ISB1+1 ; CSTITLE1(ISB1)='WMAX'//YSUF(JI) ; CSUNIT1(ISB1)='M/S' ; NSGRIDD1(ISB1)=4 + ISB1=ISB1+1 ; CSTITLE1(ISB1)='WMAX'//YSUF(JI) ; CSUNIT1(ISB1)='m s-1' ; NSGRIDD1(ISB1)=4 ! Min of vertical speed - ISB1=ISB1+1 ; CSTITLE1(ISB1)='WMIN'//YSUF(JI) ; CSUNIT1(ISB1)='M/S' ; NSGRIDD1(ISB1)=4 + ISB1=ISB1+1 ; CSTITLE1(ISB1)='WMIN'//YSUF(JI) ; CSUNIT1(ISB1)='m s-1' ; NSGRIDD1(ISB1)=4 END DO END IF ! @@ -385,29 +386,29 @@ NSGRIDD2(:)=1 ISB2=0 DO JI=1,ISER ! Vertical velocity - ISB2=ISB2+1 ; CSTITLE2(ISB2)='WT'//YSUF(JI) ; CSUNIT2(ISB2)='M/S' ; NSGRIDD2(ISB2)=4 + ISB2=ISB2+1 ; CSTITLE2(ISB2)='WT'//YSUF(JI) ; CSUNIT2(ISB2)='m s-1' ; NSGRIDD2(ISB2)=4 ! Potential temperature ISB2=ISB2+1 ; CSTITLE2(ISB2)='THT'//YSUF(JI) ; CSUNIT2(ISB2)='K' ! Pressure ISB2=ISB2+1 ; CSTITLE2(ISB2)='PABST'//YSUF(JI) ; CSUNIT2(ISB2)='Pa' ! Mixing ratios IF (LUSERV) THEN - ISB2=ISB2+1 ; CSTITLE2(ISB2)='RVT'//YSUF(JI) ; CSUNIT2(ISB2)='KG/KG' + ISB2=ISB2+1 ; CSTITLE2(ISB2)='RVT'//YSUF(JI) ; CSUNIT2(ISB2)='kg kg-1' END IF IF (LUSERC) THEN - ISB2=ISB2+1 ; CSTITLE2(ISB2)='RCT'//YSUF(JI) ; CSUNIT2(ISB2)='KG/KG' + ISB2=ISB2+1 ; CSTITLE2(ISB2)='RCT'//YSUF(JI) ; CSUNIT2(ISB2)='kg kg-1' END IF IF (LUSERR) THEN - ISB2=ISB2+1 ; CSTITLE2(ISB2)='RRT'//YSUF(JI) ; CSUNIT2(ISB2)='KG/KG' + ISB2=ISB2+1 ; CSTITLE2(ISB2)='RRT'//YSUF(JI) ; CSUNIT2(ISB2)='kg kg-1' END IF IF (LUSERI) THEN - ISB2=ISB2+1 ; CSTITLE2(ISB2)='RIT'//YSUF(JI) ; CSUNIT2(ISB2)='KG/KG' + ISB2=ISB2+1 ; CSTITLE2(ISB2)='RIT'//YSUF(JI) ; CSUNIT2(ISB2)='kg kg-1' END IF IF (LUSERS) THEN - ISB2=ISB2+1 ; CSTITLE2(ISB2)='RST'//YSUF(JI) ; CSUNIT2(ISB2)='KG/KG' + ISB2=ISB2+1 ; CSTITLE2(ISB2)='RST'//YSUF(JI) ; CSUNIT2(ISB2)='kg kg-1' END IF IF (LUSERG) THEN - ISB2=ISB2+1 ; CSTITLE2(ISB2)='RGT'//YSUF(JI) ; CSUNIT2(ISB2)='KG/KG' + ISB2=ISB2+1 ; CSTITLE2(ISB2)='RGT'//YSUF(JI) ; CSUNIT2(ISB2)='kg kg-1' END IF END DO ! @@ -437,25 +438,25 @@ NSGRIDD3(:)=1 ISB3=0 ! ! U in CLS -ISB3=ISB3+1; CSTITLE3(ISB3)='UCLS'//CSKCLS ; CSUNIT3(ISB3)='M/S' ; NSGRIDD3(ISB3)=2 +ISB3=ISB3+1; CSTITLE3(ISB3)='UCLS'//CSKCLS ; CSUNIT3(ISB3)='m s-1' ; NSGRIDD3(ISB3)=2 ! W in CLA -ISB3=ISB3+1; CSTITLE3(ISB3)='WCLA'//CSKCLA ; CSUNIT3(ISB3)='M/S' ; NSGRIDD3(ISB3)=4 +ISB3=ISB3+1; CSTITLE3(ISB3)='WCLA'//CSKCLA ; CSUNIT3(ISB3)='m s-1' ; NSGRIDD3(ISB3)=4 ! W averaged in mid troposphere (between KLOW and KUP) -ISB3=ISB3+1; CSTITLE3(ISB3)='W' //CSKLOW//'-'//CSKUP ; CSUNIT3(ISB3) ='M/S' ; NSGRIDD3(ISB3)=4 +ISB3=ISB3+1; CSTITLE3(ISB3)='W' //CSKLOW//'-'//CSKUP ; CSUNIT3(ISB3) ='m s-1' ; NSGRIDD3(ISB3)=4 ! mixing ratios IF (LUSERV) THEN ! RV in CLS - ISB3=ISB3+1; CSTITLE3(ISB3)='RVCLS'//CSKCLS ; CSUNIT3(ISB3)='KG/KG' + ISB3=ISB3+1; CSTITLE3(ISB3)='RVCLS'//CSKCLS ; CSUNIT3(ISB3)='kg kg-1' ! RV in MID troposphere - ISB3=ISB3+1; CSTITLE3(ISB3)='RVMID'//CSKMID ; CSUNIT3(ISB3)='KG/KG' + ISB3=ISB3+1; CSTITLE3(ISB3)='RVMID'//CSKMID ; CSUNIT3(ISB3)='kg kg-1' END IF IF (LUSERC) THEN ! RC averaged between ground and KUP - ISB3=ISB3+1 ; CSTITLE3(ISB3)='RC'//'0-'//CSKUP ; CSUNIT3(ISB3)='KG/KG' + ISB3=ISB3+1 ; CSTITLE3(ISB3)='RC'//'0-'//CSKUP ; CSUNIT3(ISB3)='kg kg-1' END IF IF (LUSERR) THEN ! RR in CLS - ISB3=ISB3+1 ; CSTITLE3(ISB3)='RR'//CSKCLS ; CSUNIT3(ISB3)='KG/KG' + ISB3=ISB3+1 ; CSTITLE3(ISB3)='RR'//CSKCLS ; CSUNIT3(ISB3)='kg kg-1' END IF ! if ( isb3 /= nstemp_serie3 ) then -- GitLab From cb53638a80fbd470cb1407e46d05bfb479ae44fc Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Fri, 12 Apr 2019 12:04:11 +0200 Subject: [PATCH 139/139] Quentin 12/04/2019: minor: KTEST adapt visu in diaprog and ncl directives to easily run all the KTEST without any interruption by visu (cherry picked from commit 4438f8591d8a67bcc0d5c20f6307f5546b11762f) --- MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl | 32 ++++++------- MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl | 2 +- MY_RUN/KTEST/003_KW78/004_diaprog/dir_KW78 | 4 +- MY_RUN/KTEST/003_KW78/005_ncl/run_ncl | 26 +++++----- MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl | 2 +- .../KTEST/004_Reunion/005_diaprog/dir_Reunion | 3 +- MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl | 14 +++--- MY_RUN/KTEST/005_ARM/004_ncl/run_ncl | 48 +++++++++---------- MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl | 14 +++--- MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl | 4 +- .../011_KW78CHEM/004_diaprog/dir_KW78_chem | 4 +- MY_RUN/KTEST/011_KW78CHEM/005_ncl/run_ncl | 2 +- MY_RUN/KTEST/012_dust/007_ncl/run_ncl | 2 +- .../A_RUN_MNH_TOY/run_plot | 10 ++-- MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl | 15 +++--- 15 files changed, 88 insertions(+), 94 deletions(-) diff --git a/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl b/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl index c5bac61b4..392a13cbf 100755 --- a/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl +++ b/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl @@ -10,20 +10,20 @@ ln -sf ../002_mesonh/EXPER.1.HYD2D.003.nc . rm -f visu_2Drelief.*.png ncl plot_2Drelief.ncl -display visu_2Drelief.000001.png -display visu_2Drelief.000002.png -display visu_2Drelief.000003.png -display visu_2Drelief.000004.png -display visu_2Drelief.000005.png -display visu_2Drelief.000006.png -display visu_2Drelief.000007.png -display visu_2Drelief.000008.png -display visu_2Drelief.000009.png -display visu_2Drelief.000010.png -display visu_2Drelief.000011.png -display visu_2Drelief.000012.png -display visu_2Drelief.000013.png -display visu_2Drelief.000014.png -display visu_2Drelief.000015.png -display visu_2Drelief.000016.png +${POSTRUN} display visu_2Drelief.000001.png +${POSTRUN} display visu_2Drelief.000002.png +${POSTRUN} display visu_2Drelief.000003.png +${POSTRUN} display visu_2Drelief.000004.png +${POSTRUN} display visu_2Drelief.000005.png +${POSTRUN} display visu_2Drelief.000006.png +${POSTRUN} display visu_2Drelief.000007.png +${POSTRUN} display visu_2Drelief.000008.png +${POSTRUN} display visu_2Drelief.000009.png +${POSTRUN} display visu_2Drelief.000010.png +${POSTRUN} display visu_2Drelief.000011.png +${POSTRUN} display visu_2Drelief.000012.png +${POSTRUN} display visu_2Drelief.000013.png +${POSTRUN} display visu_2Drelief.000014.png +${POSTRUN} display visu_2Drelief.000015.png +${POSTRUN} display visu_2Drelief.000016.png exit 0 diff --git a/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl b/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl index ee22f054e..a087673ba 100755 --- a/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl +++ b/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl @@ -9,5 +9,5 @@ ln -sf ../002_mesonh/REL3D.1.EXP01.002.nc . rm -f visu_3Drelief* ncl plot_3Drelief.ncl -display visu_3Drelief.png +${POSTRUN} display visu_3Drelief.png exit 0 diff --git a/MY_RUN/KTEST/003_KW78/004_diaprog/dir_KW78 b/MY_RUN/KTEST/003_KW78/004_diaprog/dir_KW78 index 50b7f9243..f23437c1c 100644 --- a/MY_RUN/KTEST/003_KW78/004_diaprog/dir_KW78 +++ b/MY_RUN/KTEST/003_KW78/004_diaprog/dir_KW78 @@ -1,14 +1,12 @@ +visu ! directives de presentation LINVWB=T NIGRNC=10 nhi=0 lminmax=t xsizel=0.015 -! fenetre graphique -visu ! plages de couleur, pas d isolignes LCOLAREA=T LISO=F ! gestion des vecteurs (1 vecteur sur 4) NISKIP=4 XVRL=0.15 ! 1er fichier a ouvrir _file1_'KWRAI.1.SEG01.004dg' -!visu ! couleur de fond pour le 1er intervalle LCOLZERO=T NCOLZERO=1 ! precipitations explicites instantanees diff --git a/MY_RUN/KTEST/003_KW78/005_ncl/run_ncl b/MY_RUN/KTEST/003_KW78/005_ncl/run_ncl index 26bc2d373..fe611614e 100755 --- a/MY_RUN/KTEST/003_KW78/005_ncl/run_ncl +++ b/MY_RUN/KTEST/003_KW78/005_ncl/run_ncl @@ -9,17 +9,17 @@ ln -sf ../002_mesonh/KWRAI.1.SEG01.004.nc . rm -f visu_KW78.*.png ncl plot_KW78.ncl -display visu_KW78.000001.png -display visu_KW78.000002.png -display visu_KW78.000003.png -display visu_KW78.000004.png -display visu_KW78.000005.png -display visu_KW78.000006.png -display visu_KW78.000007.png -display visu_KW78.000008.png -display visu_KW78.000009.png -display visu_KW78.000010.png -display visu_KW78.000011.png -display visu_KW78.000012.png -display visu_KW78.000013.png +${POSTRUN} display visu_KW78.000001.png +${POSTRUN} display visu_KW78.000002.png +${POSTRUN} display visu_KW78.000003.png +${POSTRUN} display visu_KW78.000004.png +${POSTRUN} display visu_KW78.000005.png +${POSTRUN} display visu_KW78.000006.png +${POSTRUN} display visu_KW78.000007.png +${POSTRUN} display visu_KW78.000008.png +${POSTRUN} display visu_KW78.000009.png +${POSTRUN} display visu_KW78.000010.png +${POSTRUN} display visu_KW78.000011.png +${POSTRUN} display visu_KW78.000012.png +${POSTRUN} display visu_KW78.000013.png exit 0 diff --git a/MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl b/MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl index ec3585d71..3b96c630e 100755 --- a/MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl +++ b/MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl @@ -10,6 +10,6 @@ ln -sf ../006_diag/KWRAI.1.SEG01.004dia.nc . rm -f visu_KW78_diag.png ncl plot_KW78_diag.ncl -display visu_KW78_diag.png +${POSTRUN} display visu_KW78_diag.png exit 0 diff --git a/MY_RUN/KTEST/004_Reunion/005_diaprog/dir_Reunion b/MY_RUN/KTEST/004_Reunion/005_diaprog/dir_Reunion index 014efaae3..7fafdea22 100644 --- a/MY_RUN/KTEST/004_Reunion/005_diaprog/dir_Reunion +++ b/MY_RUN/KTEST/004_Reunion/005_diaprog/dir_Reunion @@ -1,11 +1,10 @@ +visu ! directives de presentation LINVWB=T NIGRNC=10 nhi=0 lminmax=t xsizel=0.015 LCOLAREA=T LISO=F ! gestion des vectuers NISKIP=4 XVRL=0.15 ! nom du fichier a ouvrir _file_'REUNI.1.00A20.004dg' -! ouverture de la fenetre d affichage -visu ! module du vent et vecteurs du niveau K=2 MUTVT_K_2_ON_UTVT_K_2 ! temperature potentielle a 1500m diff --git a/MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl b/MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl index 52fe4902f..1728e92ca 100755 --- a/MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl +++ b/MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl @@ -9,11 +9,11 @@ ln -sf ../003_mesonh/REUNI.1.00A20.004.nc . rm -f visu_Reunion.*.png ncl plot_Reunion.ncl -display visu_Reunion.000001.png -display visu_Reunion.000002.png -display visu_Reunion.000003.png -display visu_Reunion.000004.png -display visu_Reunion.000005.png -display visu_Reunion.000006.png -display visu_Reunion.000007.png +${POSTRUN} display visu_Reunion.000001.png +${POSTRUN} display visu_Reunion.000002.png +${POSTRUN} display visu_Reunion.000003.png +${POSTRUN} display visu_Reunion.000004.png +${POSTRUN} display visu_Reunion.000005.png +${POSTRUN} display visu_Reunion.000006.png +${POSTRUN} display visu_Reunion.000007.png exit 0 diff --git a/MY_RUN/KTEST/005_ARM/004_ncl/run_ncl b/MY_RUN/KTEST/005_ARM/004_ncl/run_ncl index a23cea5ff..31723fe2e 100755 --- a/MY_RUN/KTEST/005_ARM/004_ncl/run_ncl +++ b/MY_RUN/KTEST/005_ARM/004_ncl/run_ncl @@ -9,28 +9,28 @@ ln -sf ../002_mesonh/ARM__.1.CEN4T.000.* . rm -f visu_ARM.*.png ncl plot_arm.ncl -display visu_ARM.000001.png -display visu_ARM.000002.png -display visu_ARM.000003.png -display visu_ARM.000004.png -display visu_ARM.000005.png -display visu_ARM.000006.png -display visu_ARM.000007.png -display visu_ARM.000008.png -display visu_ARM.000009.png -display visu_ARM.000010.png -display visu_ARM.000011.png -display visu_ARM.000012.png -display visu_ARM.000013.png -display visu_ARM.000014.png -display visu_ARM.000015.png -display visu_ARM.000016.png -display visu_ARM.000017.png -display visu_ARM.000018.png -display visu_ARM.000019.png -display visu_ARM.000020.png -display visu_ARM.000021.png -display visu_ARM.000022.png -display visu_ARM.000023.png -display visu_ARM.000024.png +${POSTRUN} display visu_ARM.000001.png +${POSTRUN} display visu_ARM.000002.png +${POSTRUN} display visu_ARM.000003.png +${POSTRUN} display visu_ARM.000004.png +${POSTRUN} display visu_ARM.000005.png +${POSTRUN} display visu_ARM.000006.png +${POSTRUN} display visu_ARM.000007.png +${POSTRUN} display visu_ARM.000008.png +${POSTRUN} display visu_ARM.000009.png +${POSTRUN} display visu_ARM.000010.png +${POSTRUN} display visu_ARM.000011.png +${POSTRUN} display visu_ARM.000012.png +${POSTRUN} display visu_ARM.000013.png +${POSTRUN} display visu_ARM.000014.png +${POSTRUN} display visu_ARM.000015.png +${POSTRUN} display visu_ARM.000016.png +${POSTRUN} display visu_ARM.000017.png +${POSTRUN} display visu_ARM.000018.png +${POSTRUN} display visu_ARM.000019.png +${POSTRUN} display visu_ARM.000020.png +${POSTRUN} display visu_ARM.000021.png +${POSTRUN} display visu_ARM.000022.png +${POSTRUN} display visu_ARM.000023.png +${POSTRUN} display visu_ARM.000024.png exit 0 diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl index 2fd8e11b6..584bbad27 100755 --- a/MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl +++ b/MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl @@ -6,14 +6,14 @@ ln -sf ../008_run2/16JAN.1.12B18.001.nc . ln -sf ../008_run2/16JAN.2.12B18.001.nc . ncl plot_16j.ncl -display visu_16j.000001.png -display visu_16j.000002.png -display visu_16j.000003.png -display visu_16j.000004.png +${POSTRUN} display visu_16j.000001.png +${POSTRUN} display visu_16j.000002.png +${POSTRUN} display visu_16j.000003.png +${POSTRUN} display visu_16j.000004.png ncl plot_16j_2.ncl -display visu_16j_2.000001.png -display visu_16j_2.000002.png -display visu_16j_2.000003.png +${POSTRUN} display visu_16j_2.000001.png +${POSTRUN} display visu_16j_2.000002.png +${POSTRUN} display visu_16j_2.000003.png exit 0 diff --git a/MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl b/MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl index 7ca559b5a..af5b7a5b2 100755 --- a/MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl +++ b/MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl @@ -12,7 +12,7 @@ rm -f *.png ncl plot_ICARTT.ncl ncl plot_ICARTT_budget.ncl -display zsection_1250.*.png -display zsection_1250_bud.*.png +${POSTRUN} display zsection_1250.*.png +${POSTRUN} display zsection_1250_bud.*.png exit 0 diff --git a/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/dir_KW78_chem b/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/dir_KW78_chem index ab5a3a2d7..834ade876 100644 --- a/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/dir_KW78_chem +++ b/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/dir_KW78_chem @@ -1,14 +1,12 @@ +visu ! directives de presentation LINVWB=T NIGRNC=10 nhi=0 lminmax=t xsizel=0.015 -! fenetre graphique -visu ! plages de couleur, pas d isolignes LCOLAREA=T LISO=F ! gestion des vecteurs (1 vecteur sur 4) NISKIP=4 XVRL=0.15 ! 1er fichier a ouvrir _file1_'KWRAI.1.SEGCH.004dg' -!visu ! couleur de fond pour le 1er intervalle LCOLZERO=T NCOLZERO=1 ! precipitations explicites instantanees diff --git a/MY_RUN/KTEST/011_KW78CHEM/005_ncl/run_ncl b/MY_RUN/KTEST/011_KW78CHEM/005_ncl/run_ncl index cadb68fd8..b9830c1ec 100755 --- a/MY_RUN/KTEST/011_KW78CHEM/005_ncl/run_ncl +++ b/MY_RUN/KTEST/011_KW78CHEM/005_ncl/run_ncl @@ -11,6 +11,6 @@ rm -f visu_KW78_chem.*.png ncl plot_KW78_chem.ncl for ECH in '000001' '000002' '000003' '000004' '000005' '000006' '000007' '000008' '000009' '000010' '000011' '000012' '000013' '000014' '000015' '000016' '000017' '000018' '000019' '000020' '000021' '000022' '000023' '000024' '000025' '000026' '000027' do -display visu_KW78_chem.${ECH}.png +${POSTRUN} display visu_KW78_chem.${ECH}.png done exit 0 diff --git a/MY_RUN/KTEST/012_dust/007_ncl/run_ncl b/MY_RUN/KTEST/012_dust/007_ncl/run_ncl index 581980c82..153224ed0 100755 --- a/MY_RUN/KTEST/012_dust/007_ncl/run_ncl +++ b/MY_RUN/KTEST/012_dust/007_ncl/run_ncl @@ -10,5 +10,5 @@ for ECH in '000001' '000002' '000003' '000004' '000005' '000006' '000007' '00000 do -display visu_dust.${ECH}.png +${POSTRUN} display visu_dust.${ECH}.png done diff --git a/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/A_RUN_MNH_TOY/run_plot b/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/A_RUN_MNH_TOY/run_plot index 77081ee33..4736ce861 100755 --- a/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/A_RUN_MNH_TOY/run_plot +++ b/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/A_RUN_MNH_TOY/run_plot @@ -3,9 +3,9 @@ ncl plot_coupling_model_toy.ncl #python plot_coupling_model_toy.py -display */*0.png -display */*1.png -display */*2.png -display */*3.png -display */*4.png +${POSTRUN} display */*0.png +${POSTRUN} display */*1.png +${POSTRUN} display */*2.png +${POSTRUN} display */*3.png +${POSTRUN} display */*4.png diff --git a/MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl b/MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl index 084de8fdd..e4da2340c 100755 --- a/MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl +++ b/MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl @@ -9,13 +9,12 @@ ln -sf ../002_mesonh/XPREF.1.SEG01.000.nc . rm -f visu_LIMA.*.png ncl plot_LIMA.ncl -display visu_LIMA.*.png -#display visu_LIMA.000001.png -#display visu_LIMA.000002.png -#display visu_LIMA.000003.png -#display visu_LIMA.000004.png -#display visu_LIMA.000005.png -#display visu_LIMA.000006.png -#display visu_LIMA.000007.png +${POSTRUN} display visu_LIMA.000001.png +${POSTRUN} display visu_LIMA.000002.png +${POSTRUN} display visu_LIMA.000003.png +${POSTRUN} display visu_LIMA.000004.png +${POSTRUN} display visu_LIMA.000005.png +${POSTRUN} display visu_LIMA.000006.png +${POSTRUN} display visu_LIMA.000007.png exit 0 -- GitLab